SSD - jeuazarru.comjeuazarru.com/wp-content/uploads/2015/11/SSD.pdf · capaz de realizar millones...
Transcript of SSD - jeuazarru.comjeuazarru.com/wp-content/uploads/2015/11/SSD.pdf · capaz de realizar millones...
Universidad Catolica”Nuestra Senora de la Asuncion”
Ingenierıa informatica
Teorıa y Aplicacion de la Informatica 2
SSD
Mario AcostaProfesor:
Ing. Juan Eduardo Urraza
29 de Noviembre de 2015
LATEX
TAI2 Solid States Drives
Indice
1. Jerarquia de Memoria . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
2. SSD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
3. Primeras etapas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
4. Componentes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
4.1. Controlador . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
4.2. Memoria . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
4.2.1. DRAM-based . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
4.2.2. Flash-memory-based . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
4.2.3. NAND . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
4.2.4. NOR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
4.2.5. Cache . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
4.3. Tipos de NAND . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
4.3.1. Celda de nivel individual (SLC) . . . . . . . . . . . . . . . . . . . . . . . . 9
4.3.2. Celda de nivel multiple (MLC) . . . . . . . . . . . . . . . . . . . . . . . . 9
4.3.3. Triple bit por celda (TLC) . . . . . . . . . . . . . . . . . . . . . . . . . . 10
4.4. Interfaz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
5. Bloques y paginas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
6. Garbage Collection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
6.1. Introduciendo TRIM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
7. Configuraciones(Form Factors) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
7.1. HDD Standards . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
7.2. Card Standards . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
7.2.1. mSATA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
7.2.2. M.2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
7.3. Disk-on-a-module Standards . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
8. Modos de Comandos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
8.1. AHCI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
8.2. NVMe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
8.2.1. Problemas de Booteo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
9. SSD vs HDD (Ventajas y Desventajas) . . . . . . . . . . . . . . . . . . . . . . . . 18
9.1. Costo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
9.2. Capacidad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
9.3. Velocidad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
9.4. Fragmentacion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
9.5. Ruidos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
Pagina 1
Solid States Drives TAI2
1. Jerarquia de Memoria
Para entender la relevancia de los SSD o unidades de estado solido dentro de la informatica
hoy es importante entender cual es el lugar que ocupan los dispositivos de almacenamiento dentro
de la jerarquıa de memoria segun 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 practicamente instantaneo. Ademas
de los registros existen distintos niveles de cache en el mismo pero el acceso a los mismos tiene
un tiempo de espera de 3 a 4 ciclos para la cache L1, 7 a 20 ciclos para la cache L2 y aun mas
ciclos para la cache L3 cuyo tamano 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 mas
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 tamanos van aumentando al igual que los tiempos de acceso mientras que los costos disminuyen
drasticamente hasta llegar al nivel mas bajo que es el de almancenamiento. Es imposible dejar
de notar como el tiempo de acceso vario 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 tambien son drasticamente
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.
Ademas 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 aplicacion 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 rotacion del mismo para comenzar a leer los datos,
sin embargo existen varias soluciones para disminuir la cantidad de tiempo de espera como por
Pagina 2
TAI2 Solid States Drives
ejemplo predecir los proximos 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 transicion de
algunos mili, micro o nanosegundos. Una billonesima parte de un segundo transcurre casi tan
instantaneamente como una milesima 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 tamanos muy pequenos y ubicados en ubicaciones aleatorias para tareas como iniciar
el sistema.
2. SSD
Las unidades de estado solido o SSD son dispositivos de almacenamiento de datos que utilizan
memoria no volatil (No necesita de corriente electrica para mantener los datos). Se los denomina
de estado solido debido a que utilizan solamente circuitos electricos para el almacenamiento de
los datos, a diferencia de los discos normales que utilizan partes mecanicas 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 acentua debido a que
compone la mayor brecha entre los distintos peldanos de la jerarquıa de memoria, sin importar
que la velocidad entre la memoria y el procesador sea 10 veces mas rapida, esto aun 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 peldanos superiores siempre se
veran afectados por la gran brecha a nivel de almacenamiento que es el camino final de toda la
informacion computada, ya sea un programa ejecutado, un MP3 siendo reproducido o cualquier
tipo particular de dato siendo accedido por la computadora.
Pagina 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 sintetico 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 recoleccion 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 aparicion en los anos 50’ con el desarrollo de 2 tecnologıas muy similares,
las memorias de nucleo magnetico (Magnetic Core Memory) y los CCROS (Charged Capacitor
Read-Only Storage). Ambas tecnologıas son unidades de memoria auxiliar que surgieron en la
epoca donde aun se utilizaban las computadoras con tubos al vacıo.
Mas adelante en los 70’ y 80’ los SSD fueron implementados sobre memoria utilizando semi-
conductores pero presentaban un precio excesivamente alto con un desempeno que no lo justifi-
caba. Tambien General Instruments desarrollo una ROM alterable electricamente (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 ano 1991 la empresa SanDisk creo un SSD basado en memorias flash con un tamano de
20MB a un precio de 1000$ dando inicio a una era de constantes cambios tecnologicas hasta llegar
a nuestros tiempos donde la asequibilidad de los mismos aumento compitiendo directamente con
los medios magneticos tradicionales y dejandolos 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.
Pagina 4
TAI2 Solid States Drives
4.1. Controlador
El controlador es un componente indispensable de los SSD cuya funcion es actuar de inter-
mediario 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, encriptacion, mapeo y
demas funciones para aumentar el tiempo de vida util del mismo. Las velocidades de escritura
y lectura pueden verse beneficiados con la paralelizacion de una mayor cantidades de chips de
memoria.
Fig. 3: El controlador, tambien llamado procesador ejecuta todas las operaciones a nivel de Firm-
ware, 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 electricamente.
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 conexion, por lo general SATA u otros.
Pagina 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, mas adelante
llegando a los 500MB/s con la utilizacion de la interfaz SATA III.
4.2. Memoria
Es el componente principal del SSD y puede subdividirse segun el tipo.
4.2.1. DRAM-based
Los SSD basados en DRAM son de memoria volatil y estan caracterizados por ser de acceso
ultra rapido y su uso principal es para acelerar otras aplicaciones que necesitan de mayor veloci-
dad de acceso que los SSD tradicionales basados en flash o discos rıgidos, ademas incorporan una
baterıa para salvaguardar los datos en caso de perdida de energıa. Fueron utilizados inicialmente
para los SSD de tipo consumer hasta que en el 2004 el costo de la memoria flash disminuyo 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 mas 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 generacion de
revenue por los IOPS (Input/Output Operations per Second) o cuando la fiabilidad es un factor
crıtico como servidores de aplicacion 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 basico 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.
Pagina 6
TAI2 Solid States Drives
4.2.3. NAND
La memoria NAND based posee ventajas en tamano, el tamano 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 direcciona-
miento completo y acceso de bus de datos directo, por ello soporta XIP (eXecution In Place) lo
que permite a la aplicacion 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 tamano de celda mayor en comparacion 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.
Pagina 7
Solid States Drives TAI2
Fig. 6: Esquemattocp de los circuitos basicos para flash NOR y NAND.
Ademas de ellos la alta densidad de datos en un espacio reducido permitio el surgimiento de
tarjetas de memoria de tamanos 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 mas utilizada por la mayorıa de los fabricantes de SSD, las memorias flash
de tipo NAND son considerablemente mas economicas que las DRAM utilizadas inicialmente
ademas poseen un menor tamano posibilitando conseguir discos de factores 1.8, 2.5 y 3.5 pulgadas.
4.2.5. Cache
Es una pequena cantidad de memoria utilizada por los SSD basados en flash, su funcion es
acelerar aun mas el acceso a ciertas porciones de la unidad utilizados mas frecuentemente o de
forma consecutiva, tambien puede ser utilizado un algoritmo de prediccion, 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 volatiles,
por lo que una perdida de energıa electrica puede ocasionar perdida de datos.
Por ello surge una solucion tecnologica por parte de Sandisk-Toshiba que elimina este riesgo
mediante la utilizacion de una porcion de la NAND como cache.[5]
Pagina 8
TAI2 Solid States Drives
4.3. Tipos de NAND
Los SSD basados en NAND almacenan la informacion no volatil 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 estan 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 multiple (MLC)
Estas celdas de nivel multiples son capaces de almacenar 2 bits de forma simultanea, posibi-
litando hasta 4 estados distintos, gracias a la mayor densidad de datos tiene un costo menor en
comparacion a las SLC, su tiempo de vida es de 10.000 ciclos y 30.000 para los entreprise-based
MLC.
Pagina 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 fabricacion pero disminu-
yendo la vida util 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 util de los mismos[7].
Fig. 10: OCZ Trion 100 TLC. 2015
4.4. Interfaz
Ademas 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)
Pagina 10
TAI2 Solid States Drives
5. Bloques y paginas
La forma mas 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 estan interconectadas las memorias volatiles SDRAM.
Fig. 11: Interconexion de celdas para una memoria flash NOR
Mientras que el funcionamiento se ve bastante simple la interconexion 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 inter-
conexion entre las filas de la misma manera pero las columnas seran conectadas en serie y no en
paralelo para facilitar la conectividad.
Dicha solucion facilita el cableado pero para acceder a la informacion la unidad mınima ya
no sera una sola celda sino todas las celdas de un word line creando ası el concepto de pagina.
Pagina 11
Solid States Drives TAI2
Fig. 12: Interconexion de celdas para una memoria flash NAND
Un bloque esta compuesto con un conjunto de paginas. El borrado se hace por bloques y la
escritura por paginas 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 organizacion interna. La primera de ellas conocida como la capa de
”bloques”que son definidos durante el proceso de fabricacion. En un SSD un bloque esta cons-
tituido fısicamente por un numero fijo de paginas, comunmente 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 organizacion 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
Pagina 12
TAI2 Solid States Drives
de eliminar archivos se complica aun mas dicha tarea debido a que el borrado se realiza por
bloques y no por paginas.
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 reservacomo sea posible. Para ello involucra al controlador en la tarea de
buscar paginas catalogadas como .obsoletas.o Stale mover las paginas utiles 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 pagina 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 informacion.
Pagina 13
Solid States Drives TAI2
6.1. 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 esta manera el TRIM mejora el trabajo realizado
por el GC gracias a una comunicacion 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]
Pagina 14
TAI2 Solid States Drives
7. Configuraciones(Form Factors)
7.1. HDD Standards
Debido al gran tamano de los HDD convencionales y la miniaturizacion de los SSD existe
una gran flexibilidad de parte de los mismos con respecto a adaptabilidad de tamanos, entre los
cuales podemos encontrar 5.25”, 3.5”, 2.5 21.8”, siendo 2.5.el tamano mas comun y tambien el
utilizado en las laptops.[10]
7.2. Card Standards
Estos estandares de tamano son de aun 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 electricamente 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 tamano 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
Pagina 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 estandar 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 energetica.
Fig. 17: Disk on a Module
8. Modos de Comandos
Todas las interfaces necesitan de una interfaz de comunicacion entre el host y el sistema opera-
tivo, inicialmente fue desarrollado el IDE (Integrated Drive Electronics) utilizado especialmente
para unidades PATA, pero luego fueron surgiendo unidades cada vez mas potentes y capaces de
Pagina 16
TAI2 Solid States Drives
desarrollar mas tareas por lo que necesitaban de una mejor interfaz de comunicacion entre los
dispositivos.[14]
8.1. AHCI
AHCI (Advanced Host Controller Interface) es un estandar tecnico definido por Intel para
operar con hosts de especificacion 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 dispo-
sitivos 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 epoca 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 restriccion 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 aun no lo esta, por lo que se necesitan de controladores que no se encuentran disponibles
para sistemas operativos un poco mas anejos. 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 adopcion 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 maximo provecho a la unidad.
Sin embargo no todos los sistemas tienen problemas con el booteo. Por ejemplo, Apple desa-
rrollo 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 esten 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.
Ademas de ello la BIOS debe ser capaz de soportar el booteo de unidades con NVMe [16]
Pagina 17
Solid States Drives TAI2
Fig. 18: Intel 750 SSD PCI-E con soporte NVMe
Fig. 19: Samsung 950 Pro con soporte NVMe
9. SSD vs HDD (Ventajas y Desventajas)
9.1. 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 mas asentada y desarrollada poseen un costo bajo
que no tendera 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 mas.
9.2. Capacidad
El SSD de mayor tamano adquirible a la fecha es de 2TB pero con un costo de 0.36$ por
GB, considerablemente mas costoso que los de menor capacidad, mientras que el HDD de mayor
Pagina 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 opcion actualmente es un HDD.[17]
9.3. Velocidad
Debido a la carencia de componentes mecanicos, el tiempo de respuesta es mucho mas pequeno
en un SSD, esto se traduce en tiempos de booteo significativamente menores (5-7 segundos) en
comparacion a un HDD tradicional (40-50 segundos), ademas 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. Fragmentacion
Debido a que un HDD trabaja con piezas moviles rotacionales, los datos que se encuentren
muy fragmentados necesitan de mayores tiempos de busqueda disminuyendo ası las tasas de
transferencia, dicho fenomeno se encuentra ausente en los SSD.
9.5. Ruidos
La carencia de partes mecanicas hace que un SSD practicamente no emita ruido alguno,
mientras que un HDD emite muchos dependiendo de la velocidad de rotacion y la tarea que se
encuentre desarrollando o de su encendido/apagado. Es por eso que en lugares como estudios de
grabacion profesional optan por esta nueva tecnologıa.
Pagina 19
Solid States Drives TAI2
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.
Pagina 20