Capire le prestazioni d'archiviazione, continua

Test – Confronto tra SSD e hard disk con i videogiochi.

Avatar di Tom's Hardware

a cura di Tom's Hardware

Dimensioni del trasferimento

A livello fisico ogni die NAND consiste di un numero di blocchi, ognuno dei quali si compone di un certo numero di "pagine"; queste sono le unità base usate per le operazioni di lettura e scrittura. Una pagina però non si può cancellare individualmente, ma bisogna rimuovere i dati di un intero blocco. Se su un blocco abbiamo alcuni dati da cancellare e altri da conservare, quindi, questi ultimi andranno eliminati e successivamente riscritti.

L'architettura è molto diversa rispetto a un hard disk, che "sa" esattamente dove sono i blocchi di dati grazie a un sistema logico per la gestione e l'individuazione dei blocchi (logical block addressing). I sistemi operativi si aspettano che si tratti di un sistema basato su interi (integer), e  comprensibilmente con gli SSD si rende necessario un aggiramento del problema, in un mondo dove l'archiviazione magnetica è ancora predominante.

Un SSD usa una cosa chiamata flash translation layer per mappare i settori che Windows od OS X indirizzano in una locazione fisica sul drive SSD. Il firmware gioca un ruolo di punta in questo processo, e per questo viene tenuto segreto; Intel, Marvell e SandForce usano tutti un mapping a livello di pagina nei rispettivi controller, ma rimangono vaghe sulle specifiche. Naturalmente ci sono diversi modi per implementare questa funzione, e questa è una ragione per cui vedete differenze nelle prestazioni degli SSD.

Distanza di ricerca

La distanza di ricerca determina se l'accesso al vostro disco è sequenziale o casuale. In un hard disk gli accessi casuali si verificano quando l'hard disk accede a settori non adiacenti. Sono chiamati casuali perché i dati sono sparsi nei vari settori. Quando parlate di dischi con piatti rotanti diventa ovviamente più difficile recuperare un'informazione distribuita sulla superficie del piatto.

La testina di lettura ha bisogno di tempo per muoversi, e questo prende il nome di tempo di ricerca; è il parametro che limita più di tutto le prestazioni casuali degli hard disk. Maggiore è la distanza tra i settori richiesti, più lungo è il tempo di ricerca. Solitamente potete aspettarvi di vedere un throughput sequenziale inferiore ai 5 MB/s con un hard disk che sposta blocchi da 4 KB con una queue depth di uno.

Se l'informazione si trova in settori adiacenti quindi la distanza di ricerca è zero, la testina non deve muoversi affatto. Questo si traduce in un trasferimento sequenziale, che vediamo tipicamente con l'archiviazione di film e altri grandi file.

La differenza tra trasferimenti casuali e sequenziali è talmente rilevante che spesso vediamo hard disk capaci di spingere trasferimenti sequenziali oltre i 150 MB/s. Questo è il motivo per cui riprodurre un film con bit rate elevato da un hard disk non è un problema. Lo stesso film, archiviato casualmente lungo il disco, non sarebbe così bello da vedere.

Le specifiche degli SSD non contemplano il tempo di ricerca perché non hanno testine fisiche di lettura/scrittura che si muovono creando latenza. Come con gli hard disk, i dati sequenziali su un SSD sono immagazzinati affinché siano adiacenti (in pagine piuttosto che settori). Tuttavia il dato casuale è gestito in modo leggermente diverso da ogni architettura di SSD. Qui è dove il firmware gioca nuovamente il suo ruolo nell'influenzare le prestazioni. Nel tempo, anche se state scrivendo dati casuali su differenti settori a livello del sistema operativo, il firmware dell'SSD può riorganizzare i dati, spostandoli in modo da ridurre gli accessi casuali in favore di quelli sequenziali.