Cosa c'è di nuovo?
HWReload

Registrati e partecipa alle attività del forum

RISOLTO CrystalDiskMark: significato "Code" e "Processi"

Stato
Discussione chiusa ad ulteriori risposte.

Antro97

Moderatore
Staff
Iscritto dal:
13 Marzo 2021
Messaggi
171
Salve,
qualcuno di voi sa dirmi cosa vogliano dire "code" e "processi" nella schermata di impostazioni di CrystalDiskMark 8? Grazie :)

crystaldiskmark8.jpg
 

Liupen

Moderatore
Staff
Iscritto dal:
23 Dicembre 2017
Messaggi
533
Ciao Antro, la prendo un po da lontano per raccontarti per sommi capi come funziona un test fatto da Crystaldiskmark8.

Premesse per chiarire:
  1. 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).
  2. 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

1621163231639.png

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ì
1621163913700.png

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
1621164163107.png

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).
1621164444675.png


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" è
1621166711463.png


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
1621167751348.png

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.
1621168316630.png

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ì! :keith:
 
Ultima modifica:

Antro97

Moderatore
Staff
Iscritto dal:
13 Marzo 2021
Messaggi
171
Credo di aver capito tutto, hai risposto a molto più di quello che avevo chiesto quindi ti ringrazio moltissimo <3
 
Stato
Discussione chiusa ad ulteriori risposte.
Top