Introdução ao SSD. Parte 2. Interface

Introdução ao SSD. Parte 2. Interface

Em parte anterior No ciclo "Introdução ao SSD", falamos sobre a história do surgimento dos discos. A segunda parte abordará as interfaces de interação com os armazenadores.

A comunicação entre o processador e os dispositivos periféricos ocorre de acordo com convenções previamente definidas, chamadas de interfaces. Essas convenções regulam o nível físico e o nível de programação da interação.

Interface é o conjunto de meios, métodos e regras de interação entre os elementos do sistema.

A implementação física da interface influencia os seguintes parâmetros:

  • a largura de banda do canal de comunicação;
  • o número máximo de dispositivos conectados simultaneamente;
  • o número de erros que ocorrem.

As interfaces de disco são construídas sobre portas de entrada e saída, que é a oposição à entrada e saída através da memória e não ocupa espaço no espaço de endereçamento do processador.

Portas paralelas e seriais

De acordo com o método de troca de dados, as portas de entrada e saída são divididas em dois tipos:

  • paralelas;
  • seriais.

Como o nome sugere, a porta paralela envia de uma vez uma palavra de máquina composta por vários bits. A porta paralela é a forma mais simples de troca de dados, pois não requer esquemas técnicos complicados. No caso mais simples, cada bit da palavra de máquina é enviado por sua própria linha de sinal, e para a comunicação de retorno, duas linhas de sinal de controle são usadas: Dados prontos e Dados recebidos.

Introdução ao SSD. Parte 2. Interface
As portas paralelas, à primeira vista, escalam muito bem: mais linhas de sinal resultam em mais bits transmitidos de uma vez e, portanto, maior largura de banda. No entanto, devido ao aumento do número de linhas de sinal, ocorrem interações de interferência entre elas, levando à distorção das mensagens transmitidas.

As portas seriais são o oposto das portas paralelas. O envio de dados ocorre um bit de cada vez, o que reduz o número total de linhas de sinal, mas complica o controlador de entrada e saída. O controlador do transmissor recebe uma palavra de máquina de cada vez e deve transmitir um bit por vez, enquanto o controlador do receptor deve receber os bits e armazená-los na mesma ordem.

Introdução ao SSD. Parte 2. Interface
Um pequeno número de linhas de sinal permite aumentar sem interferências a frequência de transmissão da mensagem.

SCSI

Introdução ao SSD. Parte 2. Interface
A Interface de Sistemas de Computadores Pequenos (SCSI) surgiu em 1978 e foi originalmente desenvolvida para integrar dispositivos de diferentes tipos em um único sistema. A especificação SCSI-1 previa a conexão de até 8 dispositivos (incluindo o controlador), como:

  • scanners;
  • unidades de fita (streamers);
  • unidades ópticas;
  • discos rígidos e outros dispositivos.

Originalmente, o SCSI era chamado de Interface de Sistema da Shugart Associates (SASI), mas o comitê de padronização não aceitaria um nome em homenagem à empresa, e após um dia de brainstorming, nasceu o nome Interface de Sistemas de Computadores Pequenos (SCSI). O 'pai' do SCSI, Larry Boucher, pretendia que a sigla fosse pronunciada como 'sexy', mas Dal Allan leu como 'sсuzzy'. Com o tempo, a pronúncia 'sсuzzy' ficou firmemente ligada a esse padrão.

Na terminologia SCSI, os dispositivos conectáveis são divididos em dois tipos:

  • iniciadores;
  • dispositivos alvo.

O iniciador envia um comando ao dispositivo alvo, que então envia uma resposta de volta ao iniciador. Iniciadores e dispositivos alvo estão conectados a um barramento SCSI comum, cuja largura de banda no padrão SCSI-1 é de 5 MB/s.

A topologia 'barramento comum' impõe uma série de restrições:

  • dispositivos terminadores especiais são necessários nas extremidades do barramento;
  • a largura de banda do barramento é compartilhada entre todos os dispositivos;
  • o número máximo de dispositivos conectados simultaneamente é limitado.

Introdução ao SSD. Parte 2. Interface

Os dispositivos no barramento são identificados por um número único, chamado SCSI Target ID. Cada unidade SCSI no sistema é representada por pelo menos uma unidade lógica, cuja endereçamento é feito por um número exclusivo dentro do dispositivo físico chamado Logical Unit Number (LUN).

Introdução ao SSD. Parte 2. Interface
Os comandos em SCSI são enviados na forma de blocos de descrição de comando (Command Descriptor Block, CDB), consistindo em um código de operação e parâmetros do comando. O padrão descreve mais de 200 comandos, divididos em quatro categorias:

  • Mandatory — devem ser suportados pelo dispositivo;
  • Optional — podem ser implementados;
  • Vendor-specific — usados por um fabricante específico;
  • Obsolete — comandos obsoletos.

Entre os muitos comandos, apenas três são obrigatórios para os dispositivos:

  • TEST UNIT READY — verifica a prontidão do dispositivo;
  • REQUEST SENSE — solicita o código de erro do comando anterior;
  • INQUIRY — solicita as características principais do dispositivo.

Após receber e processar o comando, o dispositivo de destino envia ao iniciador um código de status que descreve o resultado da execução.

O posterior aprimoramento do SCSI (especificações SCSI-2 e Ultra SCSI) ampliou a lista de comandos utilizados e aumentou o número de dispositivos conectados para 16, além de elevar a velocidade de troca de dados na bus para 640 MB/s. Como o SCSI é uma interface paralela, o aumento da frequência de troca de dados foi acompanhado pela redução do comprimento máximo do cabo, o que gerava inconvenientes na utilização.

A partir do padrão Ultra-3 SCSI, foi introduzido o suporte para 'conexão ao vivo' — a conexão de dispositivos com a alimentação ligada.

O primeiro SSD conhecido com interface SCSI é considerado o M-Systems FFD-350, lançado em 1995. O disco tinha um alto custo e não se popularizou amplamente.

Atualmente, o SCSI paralelo não é uma interface popular para a conexão de discos, mas o conjunto de comandos ainda é ativamente utilizado em interfaces USB e SAS.

ATA / PATA

Introdução ao SSD. Parte 2. Interface
Interface ATA (Advanced Technology Attachment), também conhecido como PATA (Parallel ATA) foi desenvolvido pela Western Digital em 1986. O nome de marketing do padrão IDE (em inglês Integrated Drive Electronics - 'eletrônica integrada ao drive') ressaltou uma importante inovação: o controlador do drive foi incorporado ao próprio drive, em vez de estar em uma placa de expansão separada.

A decisão de colocar o controlador dentro do drive resolveu vários problemas de uma só vez. Primeiro, reduziu a distância entre o armazenamento e o controlador, o que teve um efeito positivo nas características do armazenamento. Em segundo lugar, o controlador embutido foi 'otimizado' apenas para um tipo específico de drive e, portanto, custou menos.

Introdução ao SSD. Parte 2. Interface
ATA, assim como SCSI, utiliza um método paralelo de entrada e saída, o que se reflete nos cabos utilizados. Para conectar discos com a interface IDE, são necessários cabos de 40 fios, também conhecidos como fitas. Nas especificações mais recentes, são utilizados cabos de 80 fios: mais da metade dos quais são aterramentos para reduzir a interferência em altas frequências.

Na fita ATA, há de dois a quatro conectores, um dos quais é conectado à placa-mãe e os outros aos dispositivos de armazenamento. Ao conectar dois dispositivos com uma única fita, um deles deve ser configurado como Master, e o outro como Slave. O terceiro dispositivo pode ser conectado apenas no modo de "somente leitura".

Introdução ao SSD. Parte 2. Interface
A posição do jumper determina a função de cada dispositivo. Os termos Master e Slave em relação aos dispositivos não são totalmente precisos, pois, em relação ao controlador, todos os dispositivos conectados são Slaves.

Uma inovação importante no ATA-3 é a introdução do Self-Monitoring, Analysis and Reporting Technology (S.M.A.R.T.). Cinco empresas (IBM, Seagate, Quantum, Conner e Western Digital) uniram esforços e padronizaram a tecnologia de avaliação da condição dos dispositivos.

O suporte para unidades de estado sólido foi introduzido com a quarta versão do padrão, lançada em 1998. Esta versão do padrão proporcionava uma taxa de transferência de dados de até 33,3 MB/s.

O padrão estabelece requisitos rigorosos para os cabos ATA:

  • o cabo deve ser necessariamente plano;
  • o comprimento máximo do cabo é de 18 polegadas (45,7 centímetros).

Um cabo curto e largo era inconveniente e dificultava a refrigeração. Aumentar a frequência de transferência com cada nova versão do padrão tornou-se cada vez mais difícil, e o ATA-7 resolveu o problema de forma radical: a interface paralela foi substituída por uma sequencial. Após isso, o ATA ganhou a palavra Parallel e passou a ser chamado de PATA, e a sétima versão do padrão recebeu um novo nome — Serial ATA. A numeração das versões SATA começou a partir da versão um.

SATA

Introdução ao SSD. Parte 2. Interface
O padrão Serial ATA (SATA) foi apresentado em 7 de janeiro de 2003 e abordou os problemas de seu predecessor com as seguintes mudanças:

  • a porta paralela foi substituída por uma sequencial;
  • o cabo largo de 80 fios foi substituído por um de 7 fios;
  • a topologia de "barramento compartilhado" foi substituída pela conexão "ponto a ponto".

Embora o padrão SATA 1.0 (SATA/150, 150 MB/s) tenha sido apenas ligeiramente mais rápido que o ATA-6 (UltraDMA/130, 130 MB/s), a transição para um método de transferência de dados sequencial foi um "preparativo para" velocidades superiores.

Dezesseis linhas de sinal para transferência de dados no ATA foram substituídas por dois pares trançados: um para transmissão e o outro para recepção. Os conectores SATA foram projetados para maior resistência a múltiplas reconexões, e a especificação SATA 1.0 possibilitou a "conexão a quente" (Hot Plug).

Alguns pinos nos discos são mais curtos que os demais. Isso foi feito para suportar a "substituição a quente" (Hot Swap). Durante o processo de troca, o dispositivo "perde" e "encontra" as linhas em uma ordem pré-definida.

Pouco mais de um ano depois, em abril de 2004, foi lançada a segunda versão da especificação SATA. Além de proporcionar uma taxa de transferência de até 3 Gbit/s, o SATA 2.0 introduziu a tecnologia Native Command Queuing (NCQ). Dispositivos com suporte a NCQ conseguem organizar de forma autônoma a ordem de execução dos comandos recebidos para alcançar o máximo desempenho.

Introdução ao SSD. Parte 2. Interface
Nos três anos seguintes, o SATA Working Group trabalhou para melhorar a especificação existente e, na versão 2.6, surgiram conectores compactos Slimline e micro SATA (uSATA). Esses conectores são uma versão reduzida do conector original SATA e foram desenvolvidos para unidades ópticas e discos pequenos em notebooks.

Apesar de a largura de banda da segunda geração do SATA ser suficiente para discos rígidos, os drives de estado sólido exigiam mais. Em maio de 2009, foi lançada a terceira versão da especificação SATA com largura de banda aumentada para 6 Gbit/s.

Introdução ao SSD. Parte 2. Interface
Uma atenção especial aos drives de estado sólido foi dada na versão SATA 3.1. Foi introduzido o conector Mini-SATA (mSATA), destinado a conectar drives de estado sólido em notebooks. Diferentemente do Slimline e do uSATA, o novo conector era semelhante ao PCIe Mini, embora não fosse eletricamente compatível com o PCIe. Além do novo conector, o SATA 3.1 também se destacou pela capacidade de enfileirar comandos TRIM junto com comandos de leitura e gravação.

O comando TRIM informa o drive de estado sólido sobre blocos de dados que não têm carga útil. Antes do SATA 3.1, a execução desse comando resultava na limpeza de caches e na suspensão de operações de entrada/saída para, em seguida, executar o comando TRIM. Essa abordagem prejudicava o desempenho do disco durante operações de exclusão.

A especificação SATA não acompanhava o rápido aumento da velocidade dos drives de estado sólido, o que levou ao surgimento, em 2013, de um compromisso chamado SATA Express no padrão SATA 3.2. Em vez de dobrar mais uma vez a largura de banda do SATA, os desenvolvedores utilizaram o barramento PCIe amplamente disponível, cuja velocidade excede 6 Gbit/s. Os drives com suporte a SATA Express adquiriram seu próprio formato chamado M.2.

SAS

Introdução ao SSD. Parte 2. Interface
O padrão SCSI, que concorria com o ATA, também não ficou parado e apenas um ano após o surgimento do Serial ATA, em 2004, se reestruturou como uma interface serial. O novo nome para essa interface é Serial Attached SCSI (SAS).

Apesar de o SAS ter herdado o conjunto de comandos SCSI, as mudanças foram significativas:

  • interface serial;
  • cabo de 29 fios com alimentação;
  • conexão ponto a ponto

A terminologia SCSI também foi herdada. O controlador ainda é chamado de iniciador e os dispositivos conectados são chamados de alvos. Todos os dispositivos alvo e o iniciador formam um domínio SAS. Na SAS, a largura de banda da conexão não depende do número de dispositivos no domínio, pois cada dispositivo usa seu próprio canal dedicado.

O número máximo de dispositivos conectados simultaneamente em um domínio SAS, segundo a especificação, ultrapassa 16 mil, e ao invés do ID SCSI, é utilizado um identificador World-Wide Name (WWN).

WWN é um identificador único de 16 bytes, semelhante ao endereço MAC para dispositivos SAS.

Introdução ao SSD. Parte 2. Interface
Apesar da semelhança entre os conectores SAS e SATA, esses padrões não são totalmente compatíveis. No entanto, um disco SATA pode ser conectado a um conector SAS, mas não o contrário. A compatibilidade entre discos SATA e o domínio SAS é garantida pelo protocolo SATA Tunneling Protocol (STP).

A primeira versão do padrão SAS-1 tem uma largura de banda de 3 Gbit/s, enquanto a versão mais recente, SAS-4, melhorou esse número em 7 vezes: 22,5 Gbit/s.

PCIe

Introdução ao SSD. Parte 2. Interface
Peripheral Component Interconnect Express (PCI Express, PCIe) é uma interface serial para transmissão de dados, surgida em 2002. O desenvolvimento foi iniciado pela Intel e posteriormente transferido para a PCI Special Interest Group.

A interface serial PCIe não foi uma exceção e tornou-se a continuação lógica do PCI paralelo, projetado para conectar placas de expansão.

O PCI Express difere significativamente do SATA e SAS. A interface PCIe tem um número variável de linhas. O número de linhas é igual a potências de dois e varia de 1 a 16.

O termo "linha" no PCIe refere-se não a uma linha de sinal específica, mas a um canal de comunicação de duplex total, composto pelas seguintes linhas de sinal:

  • recepção+ e recepção-;
  • transmissão+ e transmissão-;
  • quatro fios de aterramento.

O número de linhas PCIe afeta diretamente a largura de banda máxima da conexão. O padrão moderno PCI Express 4.0 permite alcançar 1,9 GB/s por linha, e 31,5 GB/s ao usar 16 linhas.

Introdução ao SSD. Parte 2. Interface
Os "apetites" dos drives de estado sólido estão crescendo muito rapidamente. Tanto SATA quanto SAS não conseguem aumentar sua largura de banda para "acompanhar" os SSDs, resultando no surgimento de SSDs que utilizam conexão PCIe.

Embora os cartões PCIe Add-In sejam fixados com parafusos, o PCIe suporta "substituição a quente". Pinos curtos PRSNT (do inglês present - presente) garantem que o cartão esteja completamente instalado no slot.

Os drives de estado sólido conectados via PCIe são regulamentados por um padrão separado. Especificação da Interface do Controlador de Memória Não Volátil. e são disponíveis em várias formas, mas falaremos sobre isso na próxima parte.

Drives remotos.

Com a criação de grandes repositórios de dados, surgiu a necessidade de protocolos que permitissem conectar drives localizados fora do servidor. A primeira solução nessa área foi o Internet SCSI (iSCSI), desenvolvido pelas empresas IBM e Cisco em 1998.

A ideia do protocolo iSCSI é simples: comandos SCSI são "encapsulados" em pacotes TCP/IP e transmitidos pela rede. Apesar da conexão remota, os clientes têm a ilusão de que o drive está conectado localmente. Uma Rede de Armazenamento (Storage Area Network, SAN) baseada em iSCSI pode ser construída sobre a infraestrutura de rede existente. O uso de iSCSI reduz significativamente os custos de implementação de uma SAN.

O iSCSI possui uma versão "premium" - Fibre Channel Protocol (FCP). A SAN que utiliza FCP é construída em linhas dedicadas de fibra óptica. Essa abordagem exige equipamentos de rede óptica adicionais, mas é mais estável e tem alta largura de banda.

Existem muitos protocolos para enviar comandos SCSI por redes de computadores. No entanto, há apenas um padrão que resolve o problema oposto e permite enviar pacotes IP pela bus SCSI - IP-over-SCSI.

A maioria dos protocolos para organização de SAN utiliza um conjunto de comandos SCSI para gerenciar drives, mas existem exceções, como o simples ATA over Ethernet (AoE). O protocolo AoE envia comandos ATA em pacotes Ethernet, mas no sistema, os drives aparecem como SCSI.

Com o surgimento dos drives NVM Express, os protocolos iSCSI e FCP deixaram de atender à demanda crescente dos drives de estado sólido. Surgiram duas soluções:

  • levar o barramento PCI Express para fora do servidor;
  • criar um protocolo NVMe over Fabrics.

A extração do barramento PCIe está associada à criação de equipamentos de comutação complexos, mas não altera o protocolo.

O protocolo NVMe over Fabrics se tornou uma boa alternativa ao iSCSI e FCP. No NVMe-oF são utilizadas linhas de comunicação de fibra óptica e um conjunto de comandos NVM Express.

DDR-T

Introdução ao SSD. Parte 2. Interface
Os padrões iSCSI e NVMe-oF resolvem o problema de conectar discos remotos como se fossem locais, enquanto a Intel seguiu um caminho diferente, aproximando o disco local do processador. A escolha recaiu sobre os slots DIMM, onde a memória RAM é conectada. A largura de banda máxima do canal DDR4 é de 25 GB/s, o que excede significativamente a velocidade do barramento PCIe. Assim, surgiu o Intel® Optane™ DC Persistent Memory.

Para conectar o dispositivo nos slots DIMM, foi inventado um protocolo DDR-T, fisicamente e eletricamente compatível com DDR4, mas requer um controlador especial que perceba a diferença entre um módulo de memória e um dispositivo de armazenamento. A velocidade de acesso ao dispositivo de armazenamento é menor do que a da memória RAM, mas maior do que a do NVMe.

O protocolo DDR-T está disponível apenas com processadores Intel® da geração Cascade Lake ou mais recente.

Conclusão

Quase todas as interfaces passaram por um longo desenvolvimento, desde métodos de transmissão de dados seriais até paralelos. As velocidades dos dispositivos de armazenamento em estado sólido estão aumentando rapidamente; ontem os SSDs eram uma raridade, e hoje o NVMe já não causa tanta surpresa.

Em nosso laboratório Selectel Lab você pode testar SSDs e discos NVMe por conta própria.

Apenas usuários registrados podem participar da pesquisa. Entre, por favor.

Os discos NVMe substituirão os SSDs clássicos em um futuro próximo?

  • 55.5%Sim100

  • 44.4%Não80

Votaram 180 usuários. 28 usuários se abstiveram.

Fonte: habr.com

Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS 🔥 Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS | ProHoster