Introducción a SSD. Parte 2. Interfaz

Introducción a SSD. Parte 2. Interfaz

В ultima parte En el ciclo “Introducción a los SSD” hablamos sobre la historia de la aparición de los discos. La segunda parte hablará sobre las interfaces para interactuar con las unidades.

La comunicación entre el procesador y los periféricos ocurre de acuerdo con convenciones predefinidas llamadas interfaces. Estos acuerdos regulan el nivel físico y de software de la interacción.

Interfaz: un conjunto de medios, métodos y reglas de interacción entre los elementos del sistema.

La implementación física de una interfaz afecta a los siguientes parámetros:

  • rendimiento del canal de comunicación;
  • el número máximo de dispositivos conectados simultáneamente;
  • el número de errores que se producen.

Las interfaces de disco se basan en puertos de E/S, que es lo opuesto a la E/S de memoria y no ocupa espacio en el espacio de direcciones del procesador.

Puertos paralelos y seriales

Según el método de intercambio de datos, los puertos de E/S se dividen en dos tipos:

  • paralelo
  • coherente.

Como su nombre lo indica, el puerto paralelo envía una palabra de máquina a la vez, que consta de varios bits. Un puerto paralelo es la forma más fácil de intercambiar datos, ya que no requiere soluciones de circuitos complejos. En el caso más simple, cada bit de la palabra de la máquina se envía en su propia línea de señal y se utilizan dos líneas de señal de servicio para la retroalimentación: Datos listos и Datos aceptados.

Introducción a SSD. Parte 2. Interfaz
Los puertos paralelos, a primera vista, escalan bien: más líneas de señal: se transmiten más bits a la vez y, por lo tanto, mayor rendimiento. Sin embargo, debido al aumento del número de líneas de señal, se producen interferencias entre ellas, lo que provoca la distorsión de los mensajes transmitidos.

Los puertos seriales son lo opuesto a los paralelos. Los datos se envían un bit a la vez, lo que reduce el número total de líneas de señal, pero complica el controlador de E/S. El controlador del transmisor recibe la palabra de la máquina a la vez y debe transmitir un bit a la vez, y el controlador del receptor, a su vez, debe recibir los bits y almacenarlos en el mismo orden.

Introducción a SSD. Parte 2. Interfaz
Una pequeña cantidad de líneas de señal le permite aumentar la frecuencia de transmisión de mensajes sin interferencias.

SCSI

Introducción a SSD. Parte 2. Interfaz
Small Computer Systems Interface (SCSI) apareció en 1978 y se diseñó originalmente para combinar dispositivos de varios perfiles en un solo sistema. La especificación SCSI-1 preveía la conexión de hasta 8 dispositivos (junto con el controlador), tales como:

  • escáneres
  • unidades de cinta (transmisores);
  • unidades ópticas;
  • unidades de disco y otros dispositivos.

SCSI originalmente se llamó Shugart Associates System Interface (SASI), pero el comité de estándares no aprobó un nombre después de la empresa y, después de un día de intercambio de ideas, nació el nombre Small Computer Systems Interface (SCSI). El "padre" de SCSI, Larry Boucher, pretendía que el acrónimo se pronunciara "sexy", pero dal allan lea "sсuzzy" ("decir"). Posteriormente, la pronunciación de "tell" quedó firmemente arraigada en este estándar.

En la terminología SCSI, los dispositivos conectados se dividen en dos tipos:

  • iniciadores;
  • dispositivos de destino.

El iniciador envía un comando al dispositivo de destino, que luego envía una respuesta al iniciador. Los iniciadores y los destinos están conectados a un bus SCSI común, que tiene un ancho de banda de 1 MB/s en el estándar SCSI-5.

La topología de "bus común" utilizada impone una serie de restricciones:

  • en los extremos del bus, se necesitan dispositivos especiales: terminadores;
  • el ancho de banda del bus se comparte entre todos los dispositivos;
  • El número máximo de dispositivos conectados simultáneamente es limitado.

Introducción a SSD. Parte 2. Interfaz

Los dispositivos en el bus se identifican con un número único llamado ID de destino SCSI. Cada unidad SCSI en el sistema está representada por al menos un dispositivo lógico, que está direccionado por un número único dentro del dispositivo físico. Número de unidad lógica (LUN).

Introducción a SSD. Parte 2. Interfaz
Los comandos en SCSI se envían en el formulario bloques de descripción de comando (Command Descriptor Block, CDB), que consta de un código de operación y parámetros de comando. El estándar describe más de 200 comandos, divididos en cuatro categorías:

  • Obligatorio — debe ser compatible con el dispositivo;
  • Opcional - puede ser implementado;
  • Específico del proveedor - utilizado por un fabricante específico;
  • Obsoleto - Comandos obsoletos.

Entre los muchos comandos, solo tres de ellos son obligatorios para los dispositivos:

  • UNIDAD DE PRUEBA LISTA — verificar la preparación del dispositivo;
  • SENTIDO DE SOLICITUD — solicita el código de error del comando anterior;
  • examen — solicitar las principales características del dispositivo.

Después de recibir y procesar el comando, el dispositivo de destino envía un código de estado al iniciador, que describe el resultado de la ejecución.

La mejora adicional de SCSI (especificaciones SCSI-2 y Ultra SCSI) amplió la lista de comandos utilizados y aumentó la cantidad de dispositivos conectados hasta 16, y la tasa de intercambio de datos en el bus hasta 640 MB/s. Dado que SCSI es una interfaz paralela, el aumento de la frecuencia del intercambio de datos se asoció con una disminución en la longitud máxima del cable y generó inconvenientes en el uso.

Comenzando con el estándar Ultra-3 SCSI, apareció el soporte para "conexión en caliente": conectar dispositivos cuando está encendido.

El primer SSD SCSI conocido fue el M-Systems FFD-350, lanzado en 1995. El disco tuvo un alto costo y no fue muy utilizado.

Actualmente, SCSI paralelo no es una interfaz de disco popular, pero el conjunto de comandos todavía se usa activamente en las interfaces USB y SAS.

ATA/PATA

Introducción a SSD. Parte 2. Interfaz
Interfaz ATA (Accesorio de Tecnología Avanzada), también conocido como PATA (Parallel ATA) fue desarrollado por Western Digital en 1986. El nombre comercial del estándar IDE (Ing. Integrated Drive Electronics - "electrónica integrada en la unidad") enfatizó una innovación importante: el controlador de la unidad estaba integrado en la unidad y no en una placa de expansión separada.

La decisión de colocar el controlador dentro de la unidad resolvió varios problemas a la vez. Primero, la distancia desde la unidad hasta el controlador ha disminuido, lo que afectó positivamente el rendimiento de la unidad. En segundo lugar, el controlador incorporado se "afiló" solo para un cierto tipo de unidad y, en consecuencia, era más barato.

Introducción a SSD. Parte 2. Interfaz
ATA, como SCSI, utiliza un método de E/S paralelo, que se refleja en los cables utilizados. La conexión de unidades mediante la interfaz IDE requiere cables de 40 hilos, también conocidos como cables planos. Las especificaciones más recientes utilizan terminales de 80 hilos, más de la mitad de los cuales son bucles de tierra para reducir la interferencia a altas frecuencias.

Hay de dos a cuatro conectores en el cable ATA, uno de los cuales está conectado a la placa base y el resto a las unidades. Al conectar dos dispositivos en un lazo, uno de ellos debe configurarse como Dominar, y el segundo como Esclavo. El tercer dispositivo solo se puede conectar en modo de solo lectura.

Introducción a SSD. Parte 2. Interfaz
La posición del puente determina la función de un dispositivo en particular. Los términos Maestro y Esclavo en relación a los dispositivos no son del todo correctos, ya que en relación al controlador, todos los dispositivos conectados son Esclavos.

Una innovación especial en ATA-3 es la apariencia Autocontrol, Tecnología de análisis e informes (SMART). Cinco empresas (IBM, Seagate, Quantum, Conner y Western Digital) han unido fuerzas y han estandarizado la tecnología de evaluación del estado de la unidad.

El soporte para unidades de estado sólido existe desde la versión 1998 del estándar, lanzada en 33.3. Esta versión del estándar proporcionó velocidades de transferencia de datos de hasta XNUMX MB/s.

El estándar establece requisitos estrictos para los cables ATA:

  • la pluma debe ser plana;
  • longitud máxima del tren 18 pulgadas (45.7 centímetros).

El tren corto y ancho era inconveniente e interfería con el enfriamiento. Se hizo cada vez más difícil aumentar la frecuencia de transmisión con cada versión posterior del estándar, y ATA-7 resolvió el problema radicalmente: la interfaz paralela fue reemplazada por una serial. Después de eso, ATA adquirió la palabra Parallel y se hizo conocido como PATA, y la séptima versión del estándar recibió un nombre diferente: Serial ATA. La numeración de la versión SATA comenzó desde uno.

SATA

Introducción a SSD. Parte 2. Interfaz
El estándar Serial ATA (SATA) se introdujo el 7 de enero de 2003 y abordó los problemas de su predecesor con los siguientes cambios:

  • puerto paralelo reemplazado por serial;
  • cable ancho de 80 hilos reemplazado por 7 hilos;
  • la topología de "bus común" ha sido reemplazada por una conexión "punto a punto".

Aunque SATA 1.0 (SATA/150, 150 MB/s) era un poco más rápido que ATA-6 (UltraDMA/130, 130 MB/s), el cambio a la comunicación en serie estaba "preparando el terreno" para las velocidades.

Se reemplazaron dieciséis líneas de señal para transmisión de datos en ATA con dos pares trenzados: uno para transmisión, el segundo para recepción. Los conectores SATA están diseñados para ser más resistentes a múltiples reconexiones, y la especificación SATA 1.0 hizo posible la conexión en caliente.

Algunas patillas de las unidades son más cortas que las demás. Esto se hace para admitir "intercambio en caliente" (Hot Swap). Durante el proceso de reemplazo, el dispositivo "pierde" y "encuentra" las líneas en un orden predeterminado.

Poco más de un año después, en abril de 2004, se lanzó la segunda versión de la especificación SATA. Además de acelerar hasta 3 Gb/s, la tecnología SATA 2.0 introdujo Cola de comandos nativos (NCQ). Los dispositivos compatibles con NCQ pueden organizar de forma independiente el orden de ejecución de los comandos entrantes para lograr el máximo rendimiento.

Introducción a SSD. Parte 2. Interfaz
Los siguientes tres años, el grupo de trabajo de SATA trabajó para mejorar la especificación existente y la versión 2.6 introdujo conectores compactos Slimline y micro SATA (uSATA). Estos conectores son una versión más pequeña del conector SATA original y están diseñados para unidades ópticas y unidades pequeñas en computadoras portátiles.

Si bien el SATA de segunda generación tenía suficiente ancho de banda para los HDD, los SSD exigían más. En mayo de 2009, se lanzó la tercera versión de la especificación SATA con un ancho de banda aumentado a 6 Gb/s.

Introducción a SSD. Parte 2. Interfaz
Se prestó especial atención a las unidades de estado sólido en la edición SATA 3.1. Ha aparecido un conector Mini-SATA (mSATA), diseñado para conectar unidades de estado sólido en computadoras portátiles. A diferencia de Slimline y uSATA, el nuevo conector parecía un PCIe Mini, aunque no era eléctricamente compatible con PCIe. Además del nuevo conector, SATA 3.1 contaba con la capacidad de poner en cola los comandos TRIM con comandos de lectura y escritura.

El comando TRIM notifica al SSD sobre bloques de datos que no llevan una carga útil. Antes de SATA 3.1, este comando vacía las memorias caché y suspende las operaciones de E/S, seguido de un comando TRIM. Este enfoque degradó el rendimiento del disco durante las operaciones de eliminación.

La especificación SATA no se ha mantenido al día con el rápido crecimiento de las velocidades de acceso para SSD, lo que llevó a un compromiso en 2013 llamado SATA Express en el estándar SATA 3.2. En lugar de volver a duplicar el ancho de banda de SATA, los desarrolladores han utilizado el ampliamente utilizado bus PCIe, cuya velocidad supera los 6 Gb/s. Las unidades compatibles con SATA Express han adquirido su propio factor de forma denominado M.2.

SAS

Introducción a SSD. Parte 2. Interfaz
El estándar SCSI, "compitiendo" con ATA, tampoco se quedó quieto y apenas un año después de la aparición de Serial ATA, en 2004, renacía en una interfaz serial. El nombre de la nueva interfaz es Serial Attached SCSI (JUNCIA).

Aunque SAS heredó el conjunto de comandos SCSI, los cambios fueron significativos:

  • Interfaz de serie;
  • cable de 29 hilos con fuente de alimentación;
  • conexión punto a punto

La terminología SCSI también se ha heredado. El controlador todavía se denomina iniciador y los dispositivos conectados se denominan destino. Todos los dispositivos de destino y el iniciador forman un dominio SAS. En SAS, el ancho de banda de conexión no depende de la cantidad de dispositivos en el dominio, ya que cada dispositivo usa su propio canal dedicado.

El número máximo de dispositivos conectados simultáneamente en un dominio SAS, según la especificación, supera los 16 mil, y en lugar de una ID SCSI, se utiliza un identificador para el direccionamiento. Nombre mundial (WWN).

WWN es un identificador único de 16 bytes de longitud, similar a la dirección MAC de los dispositivos SAS.

Introducción a SSD. Parte 2. Interfaz
A pesar de las similitudes entre los conectores SAS y SATA, estos estándares no son totalmente compatibles. Sin embargo, una unidad SATA se puede conectar a un conector SAS, pero no al revés. La compatibilidad entre las unidades SATA y el dominio SAS se garantiza mediante el protocolo de tunelización SATA (STP).

La primera versión del estándar SAS-1 tiene un ancho de banda de 3 Gb/s, y la más moderna, SAS-4, ha mejorado esta cifra en 7 veces: 22,5 Gb/s.

PCIe

Introducción a SSD. Parte 2. Interfaz
Peripheral Component Interconnect Express (PCI Express, PCIe) es una interfaz serial para la transferencia de datos, que apareció en 2002. El desarrollo fue iniciado por Intel y posteriormente transferido a una organización especial: el Grupo de Interés Especial PCI.

La interfaz serial PCIe no fue una excepción y se convirtió en una continuación lógica de la PCI paralela, que está diseñada para conectar tarjetas de expansión.

PCI Express es significativamente diferente de SATA y SAS. La interfaz PCIe tiene un número variable de carriles. El número de líneas es igual a potencias de dos y varía de 1 a 16.

El término "carril" en PCIe no se refiere a un carril de señal específico, sino a un enlace de comunicación dúplex completo separado que consta de los siguientes carriles de señal:

  • recibir+ y recibir-;
  • transmisión+ y transmisión-;
  • cuatro cables de tierra.

La cantidad de carriles PCIe afecta directamente el ancho de banda máximo de la conexión. El estándar PCI Express 4.0 actual te permite alcanzar 1.9 GB/s en una sola línea, y 31.5 GB/s cuando usas 16 líneas.

Introducción a SSD. Parte 2. Interfaz
Los "apetitos" de las unidades de estado sólido están creciendo muy rápidamente. Tanto SATA como SAS no han podido aumentar su ancho de banda para seguir el ritmo de los SSD, lo que ha llevado a la introducción de SSD conectados a PCIe.

Aunque las tarjetas complementarias PCIe están atornilladas, PCIe es intercambiable en caliente. Los pines cortos PRSNT (presente en inglés - presente) asegúrese de que la tarjeta esté completamente instalada en la ranura.

Las unidades de estado sólido conectadas a través de PCIe están reguladas por un estándar separado Especificación de interfaz de controlador de host de memoria no volátil y están incorporados en una variedad de factores de forma, pero hablaremos de ellos en la siguiente parte.

Unidades remotas

Al crear grandes almacenes de datos, se necesitaban protocolos que permitieran conectar unidades ubicadas fuera del servidor. La primera solución en esta área fue InternetSCSI (iSCSI), desarrollado por IBM y Cisco en 1998.

La idea detrás del protocolo iSCSI es simple: los comandos SCSI se "envuelven" en paquetes TCP/IP y se envían a la red. A pesar de la conexión remota, da la ilusión a los clientes de que la unidad está conectada localmente. La red de área de almacenamiento (SAN), basada en iSCSI, se puede construir en la infraestructura de red existente. El uso de iSCSI reduce significativamente el costo de organizar una SAN.

iSCSI tiene una opción "premium" - Protocolo de canal de fibra (FCP). SAN que utiliza FCP se basa en líneas de comunicación de fibra óptica dedicadas. Este enfoque requiere equipo de red óptica adicional, pero es estable y de alto rendimiento.

Existen muchos protocolos para enviar comandos SCSI a través de redes informáticas. Sin embargo, solo hay un estándar que resuelve el problema opuesto y le permite enviar paquetes IP a través del bus SCSI: IP sobre SCSI.

La mayoría de los protocolos SAN usan el conjunto de comandos SCSI para administrar unidades, pero hay excepciones, como el simple ATA sobre Ethernet (AOE). El protocolo AoE envía comandos ATA en paquetes Ethernet, pero las unidades aparecen como SCSI en el sistema.

Con la llegada de las unidades NVM Express, los protocolos iSCSI y FCP ya no cumplen con los crecientes requisitos de las unidades SSD. Surgieron dos soluciones:

  • eliminación del bus PCI Express fuera del servidor;
  • creación del protocolo NVMe over Fabrics.

Quitar el bus PCIe crea hardware de conmutación complejo pero no cambia el protocolo.

El protocolo NVMe over Fabrics se ha convertido en una buena alternativa a iSCSI y FCP. NVMe-oF utiliza un enlace de fibra óptica y el conjunto de comandos NVM Express.

DDR-T

Introducción a SSD. Parte 2. Interfaz
Los estándares iSCSI y NVMe-oF resuelven el problema de conectar unidades remotas como unidades locales, mientras que Intel hizo lo contrario y acercó la unidad local lo más posible al procesador. La elección recayó en las ranuras DIMM en las que se conecta la RAM. El ancho de banda DDR4 máximo es de 25 GB/s, que es mucho más rápido que el bus PCIe. Así nació la SSD de memoria persistente Intel® Optane™ DC.

Se inventó un protocolo para conectar una unidad a las ranuras DIMM DDR-T, física y eléctricamente compatible con DDR4, pero que requiere un controlador especial que ve la diferencia entre una barra de memoria y una unidad. La velocidad de acceso a la unidad es menor que la de la RAM, pero mayor que la de NVMe.

DDR-T solo está disponible con procesadores de generación Intel® Cascade Lake o posterior.

Conclusión

Casi todas las interfaces han recorrido un largo camino desde la transmisión de datos en serie a la paralela. Las velocidades de los SSD se están disparando, ayer los SSD eran una curiosidad y hoy NVMe ya no es una sorpresa.

En nuestro laboratorio Laboratorio Selectel puede probar las unidades SSD y NVMe usted mismo.

Solo los usuarios registrados pueden participar en la encuesta. Registrarsepor favor

¿Las unidades NVMe reemplazarán a las SSD clásicas en un futuro cercano?

  • 55.5%Sí100

  • 44.4%No80

180 usuarios votaron. 28 usuarios se abstuvieron.

Fuente: habr.com

Añadir un comentario