Come determinare la dimensione del blocco Nand di SSD?


14

Di recente ho preso un SSD Crucial M500 da 240 GB (20nm NAND) e sto cercando di capire il modo migliore per partizionarlo. Attualmente sto usando a fdisk -cupartire dal settore 2048.

Credo che nand page sizesia di 16 KB.

Non riesco a trovare da nessuna parte a cosa nand erase block sizeserve.

Qualcuno conosce la risposta a questo o consigli generali sul partizionamento di questa particolare serie di SSD?


1
Potrebbe essere necessario aprire l'unità e cercare su Google i numeri di parte sui chip NAND.
LawrenceC

Risposte:


7

Questa informazione è talvolta pubblicata nelle specifiche del produttore SSD, ma altre volte non è presente, specialmente per le schede di memoria CF o SD. A meno di utilizzare Google per cercare qualcun altro che ha effettuato la ricerca, puoi provare a stimarlo tu stesso utilizzando FlashBench. Scaricalo qui: https://github.com/bradfa/flashbench

Questo strumento esegue letture casuali su un SSD e traccia una tabella che mostra i tempi di lettura. (Dovresti aver già scritto alcune volte sull'SSD, perché la lettura di tutte le pagine cancellate è spesso simulata dal chip del controller.) Cercando interruzioni nel tempo per dimensione del blocco, puoi dedurre qual è la dimensione del blocco di cancellazione. Ecco un esempio dal README:

== Indovina cancellare il blocco e le dimensioni della pagina ==

''flashbench -a <device>''

Questo è un semplice test di sola lettura che esegue piccole letture oltre i confini di varie dimensioni. Esempio:

$ 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

Questo mostra i tempi di accesso per eseguire due letture da 1024 byte attorno ai confini dei blocchi allineati di potenza di due. La lettura alla fine di un'unità da 128 MB richiede circa 735 microsecondi, la lettura dell'ultimo blocco di questa unità insieme al primo blocco del successivo richiede circa 1080 microsecondi e la lettura dei primi due blocchi in un'unità da 128 MB richiede circa 780 microsecondi.

Il numero più interessante qui è l'ultimo, la differenza tra il secondo numero e la media del primo e del terzo è 324 microsecondi. Tutti questi numeri rimangono pressoché uguali per tutte le unità tra 4 MB e 128 MB.

Tuttavia, da 2 MB fino a 16 KB, l'ultima colonna ha un valore molto più basso. Ciò indica che qualunque cosa la memory card faccia su un limite di 4 MB non accade su altri confini. L'ipotesi plausibile qui è che 4 MB siano le dimensioni del blocco di cancellazione, chiamate anche dimensioni del segmento o unità di allocazione. Questa cancellazione di blocchi dovrà essere utilizzata in altri test successivi a questo.

Allo stesso modo, entrambi i limiti di 16 KB e 8 KB sono speciali. La spiegazione logica di ciò è che la scheda ha pagine da 8 KB, ma può utilizzare accessi su più piani per leggere contemporaneamente due pagine da 8 KB.

Alcune carte mostrano solo un modello chiaro usando accessi con determinate dimensioni di blocco, altre carte non mostrano alcun modello, il che significa che i numeri devono essere determinati in modo diverso.

Inoltre, le carte che non sono mai state completamente scritte possono mostrare un comportamento diverso perché i tempi di accesso su segmenti pre-cancellati sono diversi da quelli che sono stati scritti.


2

Un altro tentativo è quello di allinearsi su un confine che è una moltiplicazione di qualsiasi dimensione pratica del blocco.

Con questo concetto, è più comune allinearsi sul limite di 1 MB, quindi non importa se la dimensione del blocco è 4 o 16kb; tutti questi saranno mulitplys di 2 e al di sotto di 1 M, quindi l'allineamento su quel confine si adatterà a tutti.

Tuttavia, l'applicazione di questo concetto dipende da ciò che si sta allineando; perdere 1 MB all'inizio di un dispositivo di archiviazione di massa è totalmente accettabile, mentre perdere molte volte in uno scenario diverso potrebbe non esserlo.


1

Le dimensioni del blocco di cancellazione non influiscono sull'allineamento e l'M500 supporta la garbage collection, quindi le prestazioni non sono un problema. Fare riferimento alla seconda pagina di questo PDF dal sito di micron che vi aiuterà a determinare la dimensione del blocco di cancellazione in base alla NAND utilizzata nell'M500.

per quanto riguarda i consigli sull'allineamento, dai un'occhiata a questo fantastico post Superuser .

Ecco lo screenshot della pagina: inserisci qui la descrizione dell'immagine


2
Quindi, in questo caso, dove in questo diagramma verrebbe data la dimensione del blocco di cancellazione?
hbogert,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.