SSD - JeuAzarru.com

Anuncio
Universidad Católica
”Nuestra Señora de la Asunción”
Ingenierı́a informática
Teorı́a y Aplicación de la Informática 2
SSD
Profesor:
Ing. Juan Eduardo Urraza
Mario Acosta
29 de Noviembre de 2015
LATEX
TAI2
Solid States Drives
Índice
1.
2.
3.
4.
4.1.
4.2.
4.3.
4.4.
5.
6.
6.1.
7.
7.1.
7.2.
7.3.
8.
8.1.
8.2.
9.
9.1.
9.2.
9.3.
9.4.
9.5.
Jerarquia de Memoria . . . . . . . . .
SSD . . . . . . . . . . . . . . . . . . .
Primeras etapas . . . . . . . . . . . . .
Componentes . . . . . . . . . . . . . .
Controlador . . . . . . . . . . . . . . .
Memoria . . . . . . . . . . . . . . . . .
4.2.1. DRAM-based . . . . . . . . . .
4.2.2. Flash-memory-based . . . . . .
4.2.3. NAND . . . . . . . . . . . . . .
4.2.4. NOR . . . . . . . . . . . . . . .
4.2.5. Cache . . . . . . . . . . . . . .
Tipos de NAND . . . . . . . . . . . .
4.3.1. Celda de nivel individual (SLC)
4.3.2. Celda de nivel múltiple (MLC)
4.3.3. Triple bit por celda (TLC) . .
Interfaz . . . . . . . . . . . . . . . . .
Bloques y páginas . . . . . . . . . . .
Garbage Collection . . . . . . . . . . .
Introduciendo TRIM . . . . . . . . . .
Configuraciones(Form Factors) . . . .
HDD Standards . . . . . . . . . . . . .
Card Standards . . . . . . . . . . . . .
7.2.1. mSATA . . . . . . . . . . . . .
7.2.2. M.2 . . . . . . . . . . . . . . .
Disk-on-a-module Standards . . . . . .
Modos de Comandos . . . . . . . . . .
AHCI . . . . . . . . . . . . . . . . . .
NVMe . . . . . . . . . . . . . . . . . .
8.2.1. Problemas de Booteo . . . . . .
SSD vs HDD (Ventajas y Desventajas)
Costo . . . . . . . . . . . . . . . . . .
Capacidad . . . . . . . . . . . . . . . .
Velocidad . . . . . . . . . . . . . . . .
Fragmentación . . . . . . . . . . . . .
Ruidos . . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
2
3
4
4
5
6
6
6
7
7
8
9
9
9
10
10
11
12
14
15
15
15
15
15
16
16
17
17
17
18
18
18
19
19
19
Página 1
Solid States Drives
1.
TAI2
Jerarquia de Memoria
Para entender la relevancia de los SSD o unidades de estado sólido dentro de la informática
hoy es importante entender cual es el lugar que ocupan los dispositivos de almacenamiento dentro
de la jerarquı́a de memoria según la siguiente figura.[1]
Fig. 1: Jerarquı́a de Memoria.
Los registros son los que se encuentran directamente dentro del procesador y su tiempo de
acceso es de 0 ciclos del mismo, por lo tanto son de acceso prácticamente instantáneo. Además
de los registros existen distintos niveles de caché en el mismo pero el acceso a los mismos tiene
un tiempo de espera de 3 a 4 ciclos para la caché L1, 7 a 20 ciclos para la caché L2 y aún más
ciclos para la caché L3 cuyo tamaño es ampliamente superior, en el orden de magnitud de varios
Megabytes (MB).
La memoria principal (RAM) posee un tiempo de acceso de 5 nanosegundos para las DDR3
convencionales pero debido a que dicha memoria no se encuentra dentro del procesador sino más
alejada fı́sicamente, los tiempos de acceso reales aumentan hasta los 40-80 nanosegundos hasta
llegar al procesador.
Es un axioma dentro de la jerarquı́a de memoria que a medida que descendemos en la misma
los tamaños van aumentando al igual que los tiempos de acceso mientras que los costos disminuyen
drásticamente hasta llegar al nivel más bajo que es el de almancenamiento. Es imposible dejar
de notar como el tiempo de acceso varió del orden de algunos nanosegunos hasta llegar a la cifra
de varios millones.
Los discos duros hoy en dı́a poseen una basta capacidad pero también son drásticamente
mas lentos comparado a los otros niveles dentro de la jerarquı́a de memoria, mientras que el
procesador espera datos de la memoria principal transcurren algunos ciclos, por debajo de los
100 ciclos, pero la espera de datos que provienen del disco duro la espera es de algunos millones
de ciclos.
Además de ello, el tiempo de respuesta de un disco duro es variable debido a que el medio
se encuentra en movimiento por lo cual una aplicación puede requerir acceder a datos que se
encuentran en distintas posiciones por lo cual se necesita de cierto tiempo a que el cabezal se
ubique en la pista necesaria y luego esperar la rotación del mismo para comenzar a leer los datos,
sin embargo existen varias soluciones para disminuir la cantidad de tiempo de espera como por
Página 2
TAI2
Solid States Drives
ejemplo predecir los próximos datos a ser requeridos y cargarlos en la memoria principal antes
que sean pedidos.
De cierta forma a los ojos del humano no existe demasiada diferencia entre la transición de
algunos mili, micro o nanosegundos. Una billonésima parte de un segundo transcurre casi tan
instantáneamente como una milésima de segundo, pero siendo la computadora un dispositivo
capaz de realizar millones de tareas por segundo, dichas fracciones de segundo pueden generar
diferencias subjetivas y demoras mayores para ciertas tareas que involucran acceder a varios
archivos de tamaños muy pequeños y ubicados en ubicaciones aleatorias para tareas como iniciar
el sistema.
2.
SSD
Las unidades de estado sólido o SSD son dispositivos de almacenamiento de datos que utilizan
memoria no volátil (No necesita de corriente eléctrica para mantener los datos). Se los denomina
de estado sólido debido a que utilizan solamente circuitos eléctricos para el almacenamiento de
los datos, a diferencia de los discos normales que utilizan partes mecánicas en movimiento para
acceder a datos de un disco giratorio.[2]
Los SSD proveen un aumento significativo e inmediato sobre la velocidad subjetiva de un
computador debido a que descarta casi la mayorı́a del tiempo de espera de los discos rı́gidos,
en primer lugar debido a que no posee cabezales que alinear ni platos girando, cada bloque es
accesible a la misma velocidad que el resto sin importar si estos sean consecutivos o no. Por lo
tanto con un SSD la computadora obtiene los datos con un tiempo de espera mucho menor y a
una tasa de transferencia mayor.
El impacto del SSD sobre la velocidad subjetiva del computador se acentúa debido a que
compone la mayor brecha entre los distintos peldaños de la jerarquı́a de memoria, sin importar
que la velocidad entre la memoria y el procesador sea 10 veces más rápida, esto aún serı́a un
cambio menor en la velocidad subjetiva debido a todo el tiempo de espera generado por un
disco rı́gido, en otra palabras, todo beneficio ganado entre los peldaños superiores siempre se
verán afectados por la gran brecha a nivel de almacenamiento que es el camino final de toda la
información computada, ya sea un programa ejecutado, un MP3 siendo reproducido o cualquier
tipo particular de dato siendo accedido por la computadora.
Página 3
Solid States Drives
TAI2
Fig. 2: La latencia afecta al rendimiento permitiendo acceder a mayor cantidad de datos en una
cantidad menor de tiempo, la figura indica que la mayor parte del tiempo un disco rı́gido
se pasa esperando al cabezal y al plato giratorio para leer el dato buscado.
Sin embargo no es una regla que un SSD sea siempre mejor que un disco rı́gido, puede ser
definido un Benchmark o test sintético que sature la escritura y reescritura de los bloques de
datos de un SSD sin darle tiempo al mismo de realizar operaciones de limpieza y recolección de
basura lo que puede degradar el funcionamiento del mismo aunque en aplicaciones reales casi
no existen escenarios donde un disco rı́gido mejore la velocidad subjetivo de la computadora de
mayor manera que un SSD.
3.
Primeras etapas
Los SSD tuvieron su aparición en los años 50’ con el desarrollo de 2 tecnologı́as muy similares,
las memorias de núcleo magnético (Magnetic Core Memory) y los CCROS (Charged Capacitor
Read-Only Storage). Ambas tecnologı́as son unidades de memoria auxiliar que surgieron en la
época donde aún se utilizaban las computadoras con tubos al vacı́o.
Mas adelante en los 70’ y 80’ los SSD fueron implementados sobre memoria utilizando semiconductores pero presentaban un precio excesivamente alto con un desempeño que no lo justificaba. Tambien General Instruments desarrolló una ROM alterable eléctricamente (EAROM) con
un funcionamiento simiar a las memorias NAND Flash actuales. Todas estas tecnologı́as hacen
referencia a SSD basados en RAM.
Llegado los 90’s aparecieron los primeros SSD basados en las recientes memorias flash NAND,
para el año 1991 la empresa SanDisk creó un SSD basado en memorias flash con un tamaño de
20MB a un precio de 1000$ dando inicio a una era de constantes cambios tecnológicas hasta llegar
a nuestros tiempos donde la asequibilidad de los mismos aumentó compitiendo directamente con
los medios magnéticos tradicionales y dejándolos de lado en forma paulatina.
4.
Componentes
La arquitectura de los SSD dicta 2 partes principales, un controlador y la memoria principal
donde se almacenan los datos.
Página 4
TAI2
4.1.
Solid States Drives
Controlador
El controlador es un componente indispensable de los SSD cuya función es actuar de intermediario entre la memoria del SSD y el computador [3], es un procesador empotrado que realiza
funciones para salvaguardar el performance de la unidad como el cacheo, encriptación, mapeo y
demás funciones para aumentar el tiempo de vida útil del mismo. Las velocidades de escritura
y lectura pueden verse beneficiados con la paralelización de una mayor cantidades de chips de
memoria.
Fig. 3: El controlador, tambien llamado procesador ejecuta todas las operaciones a nivel de Firmware, dicho software es exclusivo para cada dispositivo y en la mayorı́a de los casos es
actualizable.
Un controlador se vuelve a componer de ciertos elementos de forma integrada:
Procesador empotrado: Generalmente un microprocesador de 32 bits.
EEROM: ROM del firmware borrable eléctricamente.
Memoria RAM
ECC: Error Correction Code (Necesario para memorias de tipo NAND)
Flash Component Interface: Por lo general una interfaz como el Open NAND Flash Interface
ONFI
Host Electrical Interface: Interfaz de conexión, por lo general SATA u otros.
Página 5
Solid States Drives
TAI2
Ciertos fabricantes de controladores como Intel y Micron implementaron el desglosamiento de
los datos (Data Striping) en forma similar a la utilizada en un RAID 0 para crear controladores
con velocidades de hasta 250MB/s llegando ası́ al limite de la interfaz SATA II, más adelante
llegando a los 500MB/s con la utilización de la interfaz SATA III.
4.2.
Memoria
Es el componente principal del SSD y puede subdividirse según el tipo.
4.2.1.
DRAM-based
Los SSD basados en DRAM son de memoria volátil y están caracterizados por ser de acceso
ultra rápido y su uso principal es para acelerar otras aplicaciones que necesitan de mayor velocidad de acceso que los SSD tradicionales basados en flash o discos rı́gidos, además incorporan una
baterı́a para salvaguardar los datos en caso de pérdida de energı́a. Fueron utilizados inicialmente
para los SSD de tipo consumer hasta que en el 2004 el costo de la memoria flash disminuyó por
debajo del costo de los DRAM aumentando su popularidad por los costos bajos.
Desde el punto de vista de la fiabilidad los DRAM poseen una ventaja por sobre los Flash,
el acceso y escritura de datos es más simple y por ello no cuentan con un ECC y debido a ello
su uso popular es en aquellos hosts con amplia cantidad de servidores virtuales que necesitan de
una alta fiabilidad en el ambiente en el que opera.
Es recomendable adquirir unidades DRAM based cuando existe un factor de generación de
revenue por los IOPS (Input/Output Operations per Second) o cuando la fiabilidad es un factor
crı́tico como servidores de aplicación para transacciones online.[4]
4.2.2.
Flash-memory-based
La memoria Flash fue inventada por el Dr. Fujio Masuoka en 1980 en Toshiba. Puede ser
dividida en 2 tipos, la memoria de tipo NOR y NAND based.
Fig. 4: Esquema básico de una celda de una memoria Flash. Dependiendo de la carga almacenada
en el Floating Gate pueden ser almacenados 1, 2 o 3 bits de datos.
Página 6
TAI2
4.2.3.
Solid States Drives
NAND
La memoria NAND based posee ventajas en tamaño, el tamaño de una celda es de la mitad
de una celda NOR y es ideal para soluciones de alta capacidad de almacenamiento de datos.
Ofrece alto rendimiento en velocidades de lectura y escritura de datos pero carece de la
facilidad de acceso a los datos del NOR. Los datos deben ser leı́dos de forma serial en bloques,
cada bloque posee cientos de miles de bits. Dicha caracterı́stica hace que la NAND no sea un
candidato para reemplazar a las memorias ROM pues necesita de un acceso por niveles, por ello
es utilizado en otros tipos de almacenamiento secundario como USB Flash Drives.
Fig. 5: MicroSD Sandisk de 32GB de Clase 10.
4.2.4.
NOR
La memoria NOR based provee un alto rendimiento de lectura debido a que posee direccionamiento completo y acceso de bus de datos directo, por ello soporta XIP (eXecution In Place) lo
que permite a la aplicación correr directamente desde la memoria flash sin pasar por la memoria
RAM. Su mayor ventaja es la facilidad del acceso a los datos.
Su desventaja es que posee tiempos extremadamente bajos en escritura y borrado de datos
y un tamaño de celda mayor en comparación a la NAND based lo que lo hace muy efectivo
en almacenamiento de bajo porte raras veces modificado como en el caso de una BIOS de un
computador.
Página 7
Solid States Drives
TAI2
Fig. 6: Esquemáttocp de los circuitos básicos para flash NOR y NAND.
Además de ellos la alta densidad de datos en un espacio reducido permitió el surgimiento de
tarjetas de memoria de tamaños muy reducido como el MicroSD que ocupa un area de 1.5 cm2
con un grosor menor a 1mm y capacidades de 32GB, 64GB y hasta 128GB.
Actualmente es la más utilizada por la mayorı́a de los fabricantes de SSD, las memorias flash
de tipo NAND son considerablemente más económicas que las DRAM utilizadas inicialmente
además poseen un menor tamaño posibilitando conseguir discos de factores 1.8, 2.5 y 3.5 pulgadas.
4.2.5.
Cache
Es una pequeña cantidad de memoria utilizada por los SSD basados en flash, su función es
acelerar aún más el acceso a ciertas porciones de la unidad utilizados más frecuentemente o de
forma consecutiva, también puede ser utilizado un algoritmo de predicción, esto es controlado
por el controlador.
Generalmente el tipo de memoria utilizado es la DRAM para las operaciones pendientes,
algunos fabricantes como Intel y Sandforce utilizan SRAM, ambos tipos de memoria son volátiles,
por lo que una pérdida de energı́a eléctrica puede ocasionar pérdida de datos.
Por ello surge una solución tecnológica por parte de Sandisk-Toshiba que elimina este riesgo
mediante la utilización de una porción de la NAND como caché.[5]
Página 8
TAI2
4.3.
Solid States Drives
Tipos de NAND
Los SSD basados en NAND almacenan la información no volátil en celdas, dichas celdas
pueden ser de alguno de los siguientes 3 tipos: SLC,MLC o TLC.
Fig. 7: Tipos de celdas y valores que pueden almacenar
4.3.1.
Celda de nivel individual (SLC)
Para este tipo de celda, los datos se almacenan por bits individuales, cada celda tiene 2 posibles
estados, teniendo como ventaja mayores velocidades de lectura y escritura de datos, menor tasa
de consumo y una mayor durabilidad, por ello no están orientadas al sector consumer sino al
enterprise, su tiempo de vida es de 100.000 ciclos.[6]
Fig. 8: OCZ Vertex EX SLC. 2009
4.3.2.
Celda de nivel múltiple (MLC)
Estas celdas de nivel multiples son capaces de almacenar 2 bits de forma simultánea, posibilitando hasta 4 estados distintos, gracias a la mayor densidad de datos tiene un costo menor en
comparación a las SLC, su tiempo de vida es de 10.000 ciclos y 30.000 para los entreprise-based
MLC.
Página 9
Solid States Drives
TAI2
Fig. 9: OCZ Vertex 3 MLC. 2011
4.3.3.
Triple bit por celda (TLC)
Tambien denominado 3bit MLC, es un tipo de celda de 3 bits, capaz de soportar 8 estados
distintos, dicho aumento de densidad disminuye aun mas los costos de fabricación pero disminuyendo la vida útil garantizada de las celdas a solo 1.000 ciclos garantizados, dicha cantidad sigue
siendo bastante representativa para un SSD orientado a consumidores finales, en situaciones de
prueba reales dicho valor fue incluso triplicado antes de expirar la vida útil de los mismos[7].
Fig. 10: OCZ Trion 100 TLC. 2015
4.4.
Interfaz
Además de los componentes principales del SSD se debe considerar la conectividad del mismo,
para ellos tomamos en cuenta la interfaz del mismo que puede ser uno de los siguientes:
1. Parallel ATA (IDE)
2. Parallel SCSI (>40Mbps)
3. Serial ATA (I=1.5Gbps, II=3.0Gbps, III=6.0Gbps)
4. Serial Attached SCSI o SAS (SAS>3Gbps)
5. PCI Express (PCIe >2.0Gbps)
6. Fibre Channel (>200Mbps)
7. USB (2.0>480mbps, 3.0>5Gbps)
Página 10
TAI2
5.
Solid States Drives
Bloques y páginas
La forma más sencilla de usar los transistores es interconectando las columnas y las filas para
permitir la lectura de cada bit por separado teniendo una fila (word line) y una columna (bit
line). De esta misma manera están interconectadas las memorias volátiles SDRAM.
Fig. 11: Interconexión de celdas para una memoria flash NOR
Mientras que el funcionamiento se ve bastante simple la interconexión de todas las celdas no
lo es debido a la gran cantidad de cableado complejo que debe hacerse por las conexiones en
paralelo de los Bit Line.
Para reducir dichas complicaciones y reducir el cableado se vuelve a crear una nueva interconexión entre las filas de la misma manera pero las columnas serán conectadas en serie y no en
paralelo para facilitar la conectividad.
Dicha solución facilita el cableado pero para acceder a la información la unidad mı́nima ya
no será una sola celda sino todas las celdas de un word line creando ası́ el concepto de página.
Página 11
Solid States Drives
TAI2
Fig. 12: Interconexión de celdas para una memoria flash NAND
Un bloque está compuesto con un conjunto de páginas. El borrado se hace por bloques y la
escritura por páginas lo cual genera un nuevo problema para el funcionamiento de los SSD.[8]
6.
Garbage Collection
Todo tipo de dispositivo de almacenamiento moderno ya sea un SSD o un Flash Drive USB
posee 2 capas distintas de organización interna. La primera de ellas conocida como la capa de
”bloques”que son definidos durante el proceso de fabricación. En un SSD un bloque está constituido fı́sicamente por un número fijo de páginas, comúnmente de 8KB y representa la unidad
mı́nima que un SSD puede leer o escribir.
Sin embargo los sistemas operativos no trabajan a nivel de bloques, dicha tarea corresponde
al controlador del SSD. Los SO poseen sus propios esquemas de organización llamados Sistemas
de Ficheros o filesystems, en Windows NTFS, OS X utiliza HFS+ y Linux generalmente ext4.
Exista una barrera entre ambas capas ya que el sistema operativo no puede controlar la
manera en la que el controlador del SSD realiza su trabajo o que bloques utiliza o se encuentran
libres. Ni el controlador tiene conocimiento de que bloques pertenecen a que archivos. A la hora
Página 12
TAI2
Solid States Drives
de eliminar archivos se complica aún más dicha tarea debido a que el borrado se realiza por
bloques y no por páginas.
Fig. 13: El borrado se realiza por bloques enteros.
El sistema de Garbage Collection se encarga de que siempre exista la mayor cantidad de
bloques vacı́os en reservaçomo sea posible. Para ello involucra al controlador en la tarea de
buscar páginas catalogadas como .obsoletas.o Stale mover las páginas útiles a otros bloques y
ası́ ”limpiar”dicho bloque y volver a mantenerlo en estado disponible para escritura.
Esto lo realiza debido a que resulta imposible cambiar el estado de una página obsoleta a vacı́a
sin tener que borrar el bloque entero debido al peligro que involucra para el alto voltaje necesario
para las celdas correlativas a la misma poniendo ası́ en peligro la integridad de la información.
Página 13
Solid States Drives
6.1.
TAI2
Introduciendo TRIM
TRIM es un comando ATA que el sistema operativo puede mandar al SSD mediante el AHCI
cuando borra un archivo ya que el Garbage Collector no reconoce los archivos borrados por el
sistema operativo, solo los .obsoletos.o Stale, de ésta manera el TRIM mejora el trabajo realizado
por el GC gracias a una comunicación antes inexistente entre el SO y el SSD.
Fig. 14: Sin TRIM el GC no reconoce archivos borrados por el sistema y los copia a un bloque
nuevo pese a ser inservibles, pero con TRIM ya puede reconcerlos y no los copia a un
bloque nuevo.
TRIM mejora la labor del GC del SSD pero no es imprescindible para el funcionamiento del
SSD, de hecho Apple no lo soporta debido a que implementa sistemas similares y propietarios
bastante eficientes a nivel de sistema operativo.[9]
Página 14
TAI2
7.
Solid States Drives
Configuraciones(Form Factors)
7.1.
HDD Standards
Debido al gran tamaño de los HDD convencionales y la miniaturización de los SSD existe
una gran flexibilidad de parte de los mismos con respecto a adaptabilidad de tamaños, entre los
cuales podemos encontrar 5.25”, 3.5”, 2.5 1.8”, siendo 2.5.el tamaño más común y tambien el
utilizado en las laptops.[10]
2
7.2.
Card Standards
Estos estándares de tamaño son de aún menores dimensiones y son encontrados comunmente
en las laptops de tipo ultrabook y tablets. Dicha categorı́a de form factor vuelve a desglosarse
en distintas interfaces.
7.2.1.
mSATA
Fue anunciado inicialmente por la Serial ATA International Organization en el 2009, entre
las aplicaciones principales se incluı́an netbooks y dispositivos similares con muy poco espacio
disponible. Es eléctricamente compatible con la interfaz PCI Express Mini.[11]
Fig. 15: SATA vs mSATA
7.2.2.
M.2
Actualmente la interfaz SATA III se encuentra limitando el rendimiento de los SSD. Por lo
que nace una nueva interfaz denominada NGFF (Next Gen Form Factor) derivado de la interfaz
mSATA que finalmente fue estandarizada como M.2 bajo las especificaciones de la interfaz SATA
3.2
Mientras que el tamaño es un factor relevante para el desarrollo de nuevas interfaces, de la
misma manera es importante la velocidad de la misma, las especificaciones de la interfaz SATA
Página 15
Solid States Drives
TAI2
III llega a un lı́mite de 600MBps mientras que PCI-Express alcanza velocidades de hasta 1GBps
por lane, M.2 soporta el uso de hasta 4 lanes totalizando 4GBps lo cual seria duplicado a la
eventual llegada del PCI-Express 4.0.[12]
Sin embargo no todos los sistemas soportan ambas especificaciones por lo cual es importante
si ambas especificaciones son soportadas o tan solo alguna de ellas. La interfaz SATA limitada a
600MBps o la PCI-E limitada a 1GBps por lane pudiendo utilizar 2 o 4 lanes.[13]
Fig. 16: Samsung 950 PRO M2
7.3.
Disk-on-a-module Standards
Es un estándar que utiliza las interfaces PATA o SATA de 40/44 pines respectivamente,
mayormente utilizado en sistemas empotrados preensamblados cuyas prestaciones requieren de
componentes silenciosos o de mayor eficiencia energética.
Fig. 17: Disk on a Module
8.
Modos de Comandos
Todas las interfaces necesitan de una interfaz de comunicación entre el host y el sistema operativo, inicialmente fue desarrollado el IDE (Integrated Drive Electronics) utilizado especialmente
para unidades PATA, pero luego fueron surgiendo unidades cada vez más potentes y capaces de
Página 16
TAI2
Solid States Drives
desarrollar más tareas por lo que necesitaban de una mejor interfaz de comunicación entre los
dispositivos.[14]
8.1.
AHCI
AHCI (Advanced Host Controller Interface) es un estándar técnico definido por Intel para
operar con hosts de especificación SATA, permite una cola de comandos nativos para el disco
como Hot Swapping.
La estructura de comandos que brinda el AHCI permite comunicar instrucciones a los dispositivos de almacenamiento y viene integrado a los sistemas operativos modernos sin la necesidad
de drivers especiales.[15]
Ha funcionado de manera correcta debido a que fue desarrollado en una época donde los
discos no necesitaban de una gran cantidad de instrucciones y una cola de comandos de 32 bits
era suficiente, sin embargo el problema radica en que los SSD son capaces de realizar una mayor
cantidad de tareas pero se encuentran limitados por dicha interfaz. Para eliminar este cuello de
botella y mejorar el rendimiento surge el NVMe.
8.2.
NVMe
El NVMe (Non-Volatile Memory Express) es una estructura de comandos y controladores
desarrollado para eliminar el problema de restricción del AHCI con los SSD, aumenta de una
cola de 32bits a 65.536 colas con 65.536 comandos por cada una de ellas, permitiendo aprovechar
el procesamiento paralelo de los pedidos de lectura y escritura.
Mientras que el AHCI se encuentra estandarizado en los sistemas operativos modernos, el
NVMe aún no lo está, por lo que se necesitan de controladores que no se encuentran disponibles
para sistemas operativos un poco más añejos. Pero gracias a las especificaciones del M.2 es posible
elegir entre los modos de comando NVMe y AHCI para compatibilidad.[16]
8.2.1.
Problemas de Booteo
La interfaz M.2 es un gran avance en lo que respecta a almacenamiento pero existe un
problema con la adopción tempranera de dicha tecnologı́a. Para obtener el mejor resultado de la
misma se debe utilizar el bus PCI-E, de otra manera funcionarı́a como un dispositivo SATA 3.0
Esto no parece ser un problema muy significativo pero de hecho lo es para las primeras placas
madres que soportan esta tecnologı́a ya que ciertos sistemas operativos tienen problema para
arrancar desde el bus PCI-E lo cual es necesario para sacar el máximo provecho a la unidad.
Sin embargo no todos los sistemas tienen problemas con el booteo. Por ejemplo, Apple desarrolló OS X de modo que pueda utilizar el bus PCI-E para particiones Root debido a que utiliza
SSD PCI-E desde la MacBook Air 2013, antes que las especificaciones de M.2 estén terminadas.
Microsoft por otra parte ha actualizado Windows 10 de modo a que soporte las nuevas unidades
PCI-E y drivers NVMe de forma nativa sin la necesidad de drivers de terceros.
Además de ello la BIOS debe ser capaz de soportar el booteo de unidades con NVMe [16]
Página 17
Solid States Drives
TAI2
Fig. 18: Intel 750 SSD PCI-E con soporte NVMe
Fig. 19: Samsung 950 Pro con soporte NVMe
9.
9.1.
SSD vs HDD (Ventajas y Desventajas)
Costo
Actualmente para el sector consumer el costo por GB de los HDD es de 0.05$ por GB
mientras que un SSD tiene un costo de 0.09$ por GB, casi el doble de costo del anterior. Como
los HDD estan basados en una tecnologı́a más asentada y desarrollada poseen un costo bajo
que no tenderá a variar en el futuro cercano, sin embargo para los SSD se tiende a desarrollar
tecnologı́as que permiten abaratar los costos cada dı́a más.
9.2.
Capacidad
El SSD de mayor tamaño adquirible a la fecha es de 2TB pero con un costo de 0.36$ por
GB, considerablemente más costoso que los de menor capacidad, mientras que el HDD de mayor
Página 18
TAI2
Solid States Drives
capacidad es de 8TB a un costo de 0.03$ por GB. Siendo la prioridad mayor capacidad no existe
dudas de que la mejor opción actualmente es un HDD.[17]
9.3.
Velocidad
Debido a la carencia de componentes mecánicos, el tiempo de respuesta es mucho más pequeño
en un SSD, esto se traduce en tiempos de booteo significativamente menores (5-7 segundos) en
comparación a un HDD tradicional (40-50 segundos), además de ello las tasas de transferencia
de datos inclinan la balanza de vuelta hacia los SSD con velocidad en promedio de 500MBps
vs 150MBps de los discos tradicionales, dicha diferencia solo se da en datos de mayor volumen
por la consecutividad de los datos, en casos de archivos de menor volumen, el HDD disminuye
abruptamente su performance.[18]
9.4.
Fragmentación
Debido a que un HDD trabaja con piezas móviles rotacionales, los datos que se encuentren
muy fragmentados necesitan de mayores tiempos de búsqueda disminuyendo ası́ las tasas de
transferencia, dicho fenómeno se encuentra ausente en los SSD.
9.5.
Ruidos
La carencia de partes mecánicas hace que un SSD prácticamente no emita ruido alguno,
mientras que un HDD emite muchos dependiendo de la velocidad de rotación y la tarea que se
encuentre desarrollando o de su encendido/apagado. Es por eso que en lugares como estudios de
grabación profesional optan por esta nueva tecnologı́a.
Página 19
Solid States Drives
Referencias
[1] Arstechnica. Inside the ssd revolution, 2015.
[2] Notebook Review. An introduction guide to ssd storage, 2015.
[3] Storage Review. An introduction guide to ssd storage, 2015.
[4] Storage Switzerland. The advantages of dram ssd, 2012.
[5] Anandtech. The advantages of dram ssd, 2011.
[6] Techtarget. Slc-vs-mlc-explained, 2015.
[7] hardware.info. Hardware.info tests lifespan of samsung ssd 840 250gb tlc ssd, 2015.
[8] Arstechnica. Blocks and pages, 2015.
[9] SearchSolidStateStorage. The state of ssd trim today, 2015.
[10] PCMAG. Ssd vs. hdd: What’s the difference?, 2015.
[11] Superuser. What is the difference between msata and sata ssd, 2015.
[12] Arstechnica. Undestanding m.2 the interface that will speed up your next ssd, 2015.
[13] Arstechnica. M.2 pcie lanes, 2015.
[14] MSI Forum. Ide, sata and ahci, all you need to know, 2011.
[15] Diffen.com. Ahci vs ide, 2015.
[16] Compreviews. What is m.2, 2015.
[17] Computerhoy. Discos duros ssd 2tb samsung, 2015.
[18] SSDReview.com. Ssd throughput latency iops explained, 2015.
Página 20
TAI2
Descargar