Pensate ad un ssd come un foglio a quadretti bello grande; alcuni quadretti sono occupati/neri, alcuni quadretti sono liberi/bianchi.
Quadretti neri vicini possono, come no, avere spezzoni dello stesso file.
Quando c'è un comando di lettura, il controller quasi istantaneamente recupera i dati dai quadretti neri che servono.
La velocità è data dall'elaborazione che ci impiega il controller a recepire il comando e "assemblare" il dato da inviare alla CPU.
Se arriva un comando di scrittura il file (grande, piccolo) viene diviso in quadretti e smistato su tutta la superficie del foglio.
La velocità in questo caso dipende sempre dalla velocità di elaborazione del controller, dai quadretti liberi disponibili, dall'aggiornamento (dell'indice) mappatura.
La lettura dell'ssd è quanto mai uniforme in velocità.
La scrittura, poichè la maggior parte degli ssd ha una cache SLC, anche (ok, che poi dopo un tot di dati scende, perchè non ci sono abbastanza quadretti liberi/bianchi, o perchè la mappatura è lenta). Esaurita la cache SLC abbiamo ancora delle differenze di velocità a seconda di altri fattori (ma è un altro discorso).
Per gli hdd pensate ad un disco che ruota (no! Davvero?!) anche in questo caso suddiviso in quadretti/settori che dall'esterno in un percorso a spirale, portano verso il centro.
Immaginate una serie di quadretti neri che fitti, fitti, partono dal bordo esterno e a spirale mamo a mano occupano cerchi interi per poi diradarsi; alcuni spicchi del disco sono pieni di quadretti neri, altri hanno dei buchi. Man mano che ci si avvicina al centro i quadretti bianchi superano quelli neri.
Negli hdd, quadretti vicini, in più del 50% delle volte, sono allocati spezzoni dello stesso file.
Quando c'è un comando di lettura, il controller
quasi istantaneamente recupera i dati dai quadretti neri che servono pensa.... elabora per la testina il percorso più breve che gli consente con il minimo di oscillazioni del braccetto di "passare fisicamente" su tutti i quadretti neri che servono.
La velocità è data fondamentalmente da 3 fattori:
1) latenza meccanica (una tara del sistema controller/elaborazione/movimenti del braccetto/numero di dischi (parallelizzazione)
2) deframmentazione del file da recuperare e leggere nell'interezza
3) velocità rpm del disco
Invece con un comando di scrittura, il controller di un hdd si pone il problema di "dove" memorizzare.
Le testine scrivono veloci solo se il file è scritto sequenzialmente... quadratino nero, nero, nero, nero.... saltare da un punto all'altro vuol dire riposizionare (movimento braccetto); inoltre un hdd non può (fino all'invenzione degli smr) spostare i quadratini neri per creare spazzi scrivibili consecutivamente, ciò vuol dire che la scrittura su hdd è fortemente variabile da fattori imprevedibili.
La velocità dipende dal grado di frammentazione del disco, dal numero di piatti disponibili, dalla dimensione del file e quindi dal numero di spezzoni a cui occorre cercare un posto consecutivamente... non dalla velocità di elaborazione del controller ne dall'aggiornamento della mappatura che nella lentezza delle ricerche precedenti hanno tutto il tempo di essere elaborate/aggiornate.
Alla fine dunque
la lettura dell'hdd è imprevedibile perchè dipende dalla frammentazione, ma sicuramente ci sono degli elementi che accrescono la velocità, ovvero lo spin o velocità di rotazione del disco e la posizione degli spezzoni, se sono verso il bordo del disco piuttosto che verso l'interno (ci sono anche dei terzi fattori, cioè il numero di piatti paralleli, densità areale, ecc).
Anche
la scrittura su hdd è sempre imprevedibile. Voi direte: "ma nei bench ho sempre gli stessi numeri".
Eh.. il bench sequenziale di CDM è 1MiB sequenziale, cioè "solo" 256 quadratini, a cui un disco trova spazio facilmente; non ci sono fattori ostici di mezzo tranne una latenza caratteristica dell'hdd o dell'hdd in quel momento esatto se stà facendo altro.
La scrittura casuale su hdd è un casino e nel bench neanche si vede quanto nella realtà, stiamo ancora più bassi...ma di molto.
CDM prende uno spazio solitamente di 1GiB e in quello spazio fa scrivere dati casuali misurandone la velocità. Nella realtà lo spazio da 1GB potrebbe non starci tutto quanto sequenzialmente ma spezzettarsi a sua volta facendo crollare in giù la velocità.
PS.

ho scritto troppo e non mi ricordo più dove volevo arrivare...a si quanto molto ma molto indicative siano le cifre sui datasheet degli hdd rispetto alla realtà e che gli rpm sono un fattore positivo nell'uso del disco hdd come secondario (app inside).