Ciao Antro, la prendo un po da lontano per raccontarti per sommi capi come funziona un test fatto da Crystaldiskmark8.
Premesse per chiarire:
- L'hardware interessato è rappresentato dalla sinergia di: controller (una cpu single o multi-core, con una determinata frequenza di clock), una memoria volatile di supporto (se va bene integrata nel pcb oppure allocata nella memoria di sistema del pc), ed infine la memoria NAND Flash (con le mila varianti: planare, 3D, V, TLC, QLC, 64 Layer, 96...1xx).
- Si misura, di un SSD NVMe in questo caso, la velocità con cui elabora i dati in entrata (scrittura) e in uscita (lettura).
Cosa fà il bench?
Prende un determinato spazio di memoria nel nostro storage e scrive dei dati casuali
Come vedi 1GiB (1 GiB = 1,074 GB), ma con questa ultima versione si può arrivare fino a 64 GiB occupati.
Più grande è lo spazio occupato, e, teoricamente più in difficoltà viene messo l'SSD, perchè il dato deve essere cercato (quindi si parla della sola lettura) su uno spazio più grande oppure scritto più assiduamente (andando oltre la dimensione della cache dinamica che ormai tutti gli SSD usano per velocizzare proprio la scrittura).
L'elemento a fianco, il 5, lo ritrovi anche quì
cioè l'intervallo di tempo tra un test e l'altro.
Il test come vedi si divide sostanzialmente in due tipologie: la misura della scrittura e lettura sequenziale e la scrittura e la lettura casuale
la differenza consiste nell'utilizzare file di dimensioni diverse: 1 MiB (file "grande" per il sequenziale, e 4 KiB cioè la misura media dello spazio LBA cluster "logico" di un comune sistema operativo).
Passiamo quindi nello specifico a quello che chiedi.
Mettiamo che sia la scrittura quello che stai testando.
Crystal prepara dei set di comandi. Ogni "pacchetto" di comandi (che sarà del tipo "scrittura" visto ch abbiamo detto che misuriamo la scrittura) consiste in una raffica di dati da 1MiB o 4Kib a seconda del tipo di bench, da scrivere nello spazio che il software ha opzionato sul nostro storage NVMe.
Il "pacchetto" è
Ogni processo (tecnicamente THREAD) è un test a se, è se ne mettiamo 2 si calcola la media aritmetica.
All'interno di ogni processo si configura la "coda dei comandi" (tecnicamente QUEUE DEPTH).
Cosa è?
Pensa a come memorizza un disco magnetico HDD cioè la testina parte da ferma, va sulla parte vuota del disco e inizia a scrivere sequenzialmente.
AHCI ha introdotto con la funzione NCQ il grande pregio di poter scrivere (ma soprattutto leggere) più velocemente, passando tra un settore ed un altro di quelli ancora vuoti. Quindi la testina va sul punto vuoto e scrive, va su un altro pezzo vuoto, scrive ancora, e così via.
All'SSD che è fatto per memorizzare i dati proprio in maniera discontinua, serve necessariamente NCQ. Quando i dati da leggere o scrivere superano la capienza dei comandi memorizzabili dal sistema operativo, questi li accoda (o crea, appunto, una coda di comandi).
In un HDD vuol dire quasi sicuramente un freeze, in un ssd, che è più veloce ad elaborare, e può farlo parallelamente, significa anche...andare più veloce.
Un esempio banale. Mettiamo che io dia da scrivere 33 comandi consecutivamente. Il sistema operativo riconosce "solo" 32 comandi in un Thread quindi il 33esimo viene messo in coda e svolto solo quando i primi 32 comandi sono fatti.
Questione di millesimi di secondo per un SSD ovviamente
Questa è la coda
Cosa comporta?
Una coda singola di un comando breve, evidenza la latenza del dispositivo (cioè il tempo impiegato a prepararsi a effettuare l'unico comando che abbiamo ordinato al controller di eseguire)
Una coda alta non solo rende la latenza meno importante come fattore di rallentamento, ma addirittura fa si che il controller possa sfruttare non un solo canale (proprio inteso il canale, la pista, su cui passa il dato in lettura o scrittura), ma due o più... abbreviando i tempi (=migliorando la velocità).
Per finire una cosa che trovi in CrystalDM come valore da cambiare.
Il tempo del test.
Vedi, CrystalDM è un bench molto diffuso ed ha la sua utilità di controllo a grandi linee... ma non mette granché sotto pressione l'SSD.
I 5 secondi di default di un test standard, dicono già tutto.
Aumentando di parecchio il tempo di bench si può sottoporre l'SSD veramente a grande stress, arrivando anche a superare la soglia di thermal throttling (se si verifica un calo nelle prestazioni altrimenti normali).
Spero di essere stato esaustivo.
Se hai domande, siamo quì!