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