Bagaimana cara menentukan ukuran blok Nand erase SSD?

14

Saya baru-baru ini mengambil SSD M500 240GB Krusial (20nm NAND) dan saya mencoba mencari cara terbaik untuk mempartisi itu. Saat ini, saya menggunakan fdisk -cumulai dari sektor 2048.

Saya percaya nand page size16KB.

Saya tidak dapat menemukan apa pun nand erase block sizeuntuk itu.

Adakah yang tahu jawaban untuk ini atau saran umum tentang mempartisi seri SSD tertentu ini?

Dacto
sumber
1
Membuka drive dan mencari nomor komponen pada chip NAND mungkin diperlukan.
LawrenceC

Jawaban:

7

Informasi ini kadang-kadang diterbitkan dalam spesifikasi pabrikan SSD, tetapi terkadang tidak ada di sana, terutama untuk kartu memori CF atau SD. Pendek menggunakan Google untuk mencari orang lain yang telah melakukan penelitian, Anda dapat mencoba memperkirakannya sendiri menggunakan FlashBench. Unduh di sini: https://github.com/bradfa/flashbench

Alat ini membaca acak pada SSD dan akan menampilkan tabel yang menunjukkan waktu baca. (Anda seharusnya sudah melakukan beberapa penulisan ke SSD, karena membaca halaman yang dihapus sering disimulasikan oleh chip pengontrol.) Dengan mencari jeda waktu menurut ukuran blok, Anda dapat menyimpulkan berapa ukuran blok hapus itu. Berikut adalah contoh dari README:

== Tebak hapus blok dan ukuran halaman ==

''flashbench -a <device>''

Ini adalah tes hanya baca sederhana yang melakukan pembacaan kecil melintasi batas berbagai ukuran. Contoh:

$ sudo ./flashbench -a /dev/mmcblk0  --blocksize=1024
align 134217728 pre 735µs       on 1.08ms       post 780µs      diff 324µs
align 67108864  pre 736µs       on 1.05ms       post 763µs      diff 300µs
align 33554432  pre 722µs       on 1.04ms       post 763µs      diff 294µs
align 16777216  pre 727µs       on 1.05ms       post 772µs      diff 302µs
align 8388608   pre 724µs       on 1.04ms       post 768µs      diff 299µs
align 4194304   pre 741µs       on 1.08ms       post 788µs      diff 317µs
align 2097152   pre 745µs       on 950µs        post 811µs      diff 171µs
align 1048576   pre 745µs       on 945µs        post 807µs      diff 169µs
align 524288    pre 743µs       on 936µs        post 799µs      diff 165µs
align 262144    pre 746µs       on 948µs        post 809µs      diff 171µs
align 131072    pre 737µs       on 935µs        post 804µs      diff 165µs
align 65536     pre 735µs       on 925µs        post 796µs      diff 159µs
align 32768     pre 735µs       on 925µs        post 800µs      diff 157µs
align 16384     pre 745µs       on 911µs        post 781µs      diff 148µs
align 8192      pre 785µs       on 808µs        post 725µs      diff 53.3µs
align 4096      pre 784µs       on 788µs        post 779µs      diff 5.85µs
align 2048      pre 787µs       on 793µs        post 789µs      diff 4.65µs

Ini menunjukkan waktu akses untuk melakukan dua bacaan 1024 byte di sekitar batas blok blok power-of-two. Membaca pada akhir unit 128 MB membutuhkan sekitar 735 mikrodetik, membaca blok terakhir dari unit ini bersama dengan blok pertama dari yang berikutnya membutuhkan sekitar 1080 mikrodetik dan membaca dua blok pertama dalam unit 128 MB membutuhkan sekitar 780 mikrodetik.

Angka yang paling menarik di sini adalah yang terakhir, perbedaan antara angka kedua dan rata-rata yang pertama dan ketiga adalah 324 mikrodetik. Semua angka ini kira-kira sama untuk semua unit antara 4 MB dan 128 MB.

Namun, dari 2 MB hingga 16 KB, kolom terakhir memiliki nilai yang jauh lebih rendah. Ini menunjukkan bahwa apa pun yang dilakukan kartu memori pada batas 4 MB tidak terjadi pada batas lainnya. Tebakan berpendidikan di sini adalah bahwa 4 MB adalah ukuran blok hapus, juga disebut ukuran segmen atau unit alokasi. Penghapusan blocksize ini perlu digunakan dalam tes lain setelah ini.

Demikian pula, batas 16 KB dan 8 KB adalah istimewa. Penjelasan logis untuk ini adalah bahwa kartu memiliki 8 halaman KB, tetapi dapat menggunakan akses multi-pesawat untuk membaca dua halaman 8 KB secara bersamaan.

Beberapa kartu hanya menunjukkan pola yang jelas menggunakan akses dengan ukuran blok tertentu, kartu lain tidak menunjukkan pola apa pun, yang berarti bahwa angka-angka perlu ditentukan secara berbeda.

Selain itu, kartu yang tidak pernah sepenuhnya ditulis dapat menunjukkan perilaku yang berbeda karena waktu akses pada segmen yang telah dihapus berbeda dari yang telah ditulis.

Greg Kennedy
sumber
2

Upaya lain adalah untuk menyelaraskan pada batas yang merupakan kelipatan dari ukuran blok praktis.

Dengan konsep ini, paling umum untuk menyelaraskan pada batas 1MB, jadi tidak masalah jika ukuran blok adalah 4 atau 16kb; semua ini akan menjadi mulitplys dari 2 dan di bawah 1M sehingga menyelaraskan pada batas itu akan cocok untuk semuanya.

Namun, menerapkan konsep ini tergantung pada apa yang Anda selaraskan; kehilangan 1MB pada awal perangkat penyimpanan massal benar-benar dapat diterima sementara kehilangan itu berkali-kali dalam skenario yang berbeda mungkin tidak.

Manuel Arwed Schmidt
sumber
1

Ukuran blok hapus tidak ada kaitannya pada perataan, dan M500 mendukung pengumpulan sampah, sehingga kinerja tidak menjadi masalah. Silakan merujuk ke halaman ke-2 dari PDF ini dari situs mikron yang akan membantu Anda menentukan ukuran blokir berdasarkan NAND yang digunakan pada M500 Anda.

sejauh saran penyelarasan, silakan lihat Superuser Post yang fantastis ini .

Berikut screenshot halaman: masukkan deskripsi gambar di sini

G Koe
sumber
2
Jadi dalam kasus ini, di mana dalam diagram ini akan diberikan ukuran blok hapus?
hbogert