Introdução ao SSD. Parte 2. Interface

Introdução ao SSD. Parte 2. Interface

В última parte Na série “Introdução ao SSD”, falamos sobre a história do surgimento dos discos. A segunda parte falará sobre interfaces para interação com drives.

A comunicação entre o processador e os dispositivos periféricos ocorre de acordo com convenções predefinidas chamadas interfaces. Esses acordos regulam o nível de interação física e de software.

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

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

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

Interfaces de disco são construídas Portas de E/S, que é o oposto da E/S de memória e não ocupa espaço no espaço de endereço do processador.

Portas paralelas e seriais

De acordo com o método de troca de dados, as portas de E/S são divididas em dois tipos:

  • paralelo;
  • consistente.

Como o nome sugere, uma porta paralela envia uma palavra de máquina que consiste em vários bits por vez. Uma porta paralela é a maneira mais simples de trocar dados, pois não requer soluções de circuitos complexos. No caso mais simples, cada bit de uma palavra de máquina é enviado ao longo de sua própria linha de sinal e duas linhas de sinal de serviço são usadas para feedback: Dados prontos и Dados aceitos.

Introdução ao SSD. Parte 2. Interface
As portas paralelas parecem escalar muito bem à primeira vista: mais linhas de sinal significam que mais bits são transferidos por vez e, portanto, maior rendimento. Porém, devido ao aumento do número de linhas de sinal, ocorre interferência entre elas, levando à distorção das mensagens transmitidas.

As portas seriais são o oposto das portas paralelas. Os dados são enviados um bit por vez, o que reduz o número total de linhas de sinal, mas adiciona complexidade ao controlador de E/S. O controlador transmissor recebe uma palavra de máquina por vez e deve transmitir um bit por vez, e o controlador receptor, por sua vez, 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 a frequência de transmissão de mensagens sem interferência.

SCSI

Introdução ao SSD. Parte 2. Interface
A Small Computer Systems Interface (SCSI) apareceu em 1978 e foi originalmente projetada para combinar dispositivos de vários perfis em um único sistema. A especificação SCSI-1 prevê a conexão de até 8 dispositivos (junto com o controlador), como:

  • scanners;
  • unidades de fita (streamers);
  • unidades ópticas;
  • unidades de disco e outros dispositivos.

SCSI foi originalmente chamado de Shugart Associates System Interface (SASI), mas o comitê de padrões não aprovou o nome da empresa e, após um dia de brainstorming, nasceu o nome Small Computer Systems Interface (SCSI). O "pai" do SCSI, Larry Boucher, pretendia que a sigla fosse pronunciada "sexy", mas Dal Allan Eu li “scuzzy” (“diga-me”). Posteriormente, a pronúncia de “skazi” foi firmemente atribuída a este padrão.

Na terminologia SCSI, os dispositivos conectados são divididos em dois tipos:

  • iniciadores;
  • dispositivos alvo.

O iniciador envia um comando ao dispositivo de destino, que então envia uma resposta ao iniciador. Iniciadores e destinos são conectados a um barramento SCSI comum, que possui largura de banda de 1 MB/s no padrão SCSI-5.

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

  • Nas extremidades do barramento, são necessários dispositivos especiais - terminadores;
  • 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 exclusivo chamado ID de destino SCSI. Cada unidade SCSI no sistema é representada por pelo menos um dispositivo lógico, que é endereçado usando um número exclusivo dentro do dispositivo físico. Número da Unidade Lógica (LUN).

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

  • Obrigatório - deve ser suportado pelo dispositivo;
  • Opcional - pode ser implementado;
  • Específico do fornecedor - utilizado por um fabricante específico;
  • Obsoleto - comandos desatualizados.

Dentre os diversos comandos, apenas três deles são obrigatórios para dispositivos:

  • UNIDADE DE TESTE PRONTA — verificar a prontidão do dispositivo;
  • SOLICITAR SENTIDO — solicita o código de erro do comando anterior;
  • MENSAGEM — solicitação de características básicas do dispositivo.

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

Melhorias adicionais do SCSI (especificações SCSI-2 e Ultra SCSI) expandiram a lista de comandos usados ​​e aumentaram o número de dispositivos conectados para 16, e a velocidade de troca de dados no barramento para 640 MB/s. Como o SCSI é uma interface paralela, o aumento da frequência de troca de dados foi associado a uma diminuição no comprimento máximo do cabo e gerou inconvenientes no uso.

Começando com o padrão Ultra-3 SCSI, apareceu o suporte para “hot plugging” - conectando dispositivos enquanto a energia está ligada.

O primeiro drive SSD conhecido com interface SCSI pode ser considerado o M-Systems FFD-350, lançado em 1995. O disco tinha um custo alto e não era muito difundido.

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

ATA/PATA

Introdução ao SSD. Parte 2. Interface
Interface. ATA (Anexo de Tecnologia Avançada), também conhecido como PATA (ATA Paralelo) foi desenvolvido pela Western Digital em 1986. O nome comercial do padrão IDE (Integrated Drive Electronics) enfatizou uma inovação importante: o controlador do drive foi integrado ao 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. Em primeiro lugar, a distância do inversor ao controlador diminuiu, o que tem um efeito positivo nas características do inversor. Em segundo lugar, o controlador integrado foi “adaptado” apenas para um determinado tipo de unidade e, portanto, era mais barato.

Introdução ao SSD. Parte 2. Interface
O ATA, assim como o SCSI, usa um método de E/S paralela, que afeta os cabos usados. Para conectar unidades usando a interface IDE, são necessários cabos de 40 fios, também chamados de cabos. Especificações mais recentes usam loops de 80 fios: mais da metade dos quais são aterrados para reduzir a interferência em altas frequências.

O cabo ATA possui de dois a quatro conectores, um dos quais está conectado à placa-mãe e o restante aos drives. Ao conectar dois dispositivos com um cabo, um deles deve ser configurado como Mestre, e o segundo - como Escravo. O terceiro dispositivo pode ser conectado exclusivamente no modo somente leitura.

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

Uma inovação especial no ATA-3 é a aparência Auto-monitoramento, Tecnologia de Análise e Relatórios (SMART). Cinco empresas (IBM, Seagate, Quantum, Conner e Western Digital) uniram forças e padronizaram tecnologia para avaliar a integridade das unidades.

O suporte para unidades de estado sólido apareceu com a quarta versão do padrão, lançada em 1998. Esta versão do padrão forneceu velocidades de transferência de dados de até 33.3 MB/s.

A norma apresenta requisitos rigorosos para cabos ATA:

  • o trem deve ser plano;
  • o comprimento máximo do trem é de 18 polegadas (45.7 centímetros).

O trem curto e largo era inconveniente e atrapalhava o resfriamento. Aumentar a frequência de transmissão tornou-se cada vez mais difícil a cada versão subsequente do padrão, e o ATA-7 resolveu o problema radicalmente: a interface paralela foi substituída por uma serial. Depois disso, o ATA adquiriu a palavra Parallel e passou a ser conhecido como PATA, e a sétima versão do padrão recebeu um nome diferente - Serial ATA. A numeração das versões SATA começou em um.

SATA

Introdução ao SSD. Parte 2. Interface
O padrão Serial ATA (SATA) foi introduzido em 7 de janeiro de 2003 e solucionou os problemas de seu antecessor com as seguintes alterações:

  • a porta paralela foi substituída por uma serial;
  • o cabo largo de 80 fios é substituído por um de 7 fios;
  • A topologia “barramento comum” foi substituída por uma conexão “ponto a ponto”.

Apesar do padrão SATA 1.0 (SATA/150, 150 MB/s) ser ligeiramente mais rápido que o ATA-6 (UltraDMA/130, 130 MB/s), a transição para um método de troca de dados serial “preparou o terreno” para velocidades aumentadas

As dezesseis linhas de sinal para transmissão de dados no ATA foram substituídas por dois pares trançados: um para transmissão e outro para recepção. Os conectores SATA são projetados para serem mais resistentes a múltiplas reconexões, e a especificação SATA 1.0 tornou possível o Hot Plug.

Alguns pinos nos discos são mais curtos que todos os outros. Isso é feito para oferecer suporte ao Hot Swap. Durante o processo de substituição, o dispositivo “perde” e “encontra” linhas em uma ordem pré-determinada.

Pouco mais de um ano depois, em abril de 2004, foi lançada a segunda versão da especificação SATA. Além da aceleração até 3 Gbit/s, SATA 2.0 introduziu tecnologia Enfileiramento de comandos nativos (NCQ). Dispositivos com suporte NCQ são capazes de organizar de forma independente a ordem em que os comandos recebidos são executados para obter desempenho máximo.

Introdução ao SSD. Parte 2. Interface
Nos três anos seguintes, o Grupo de Trabalho SATA trabalhou para melhorar as especificações existentes e a versão 2.6 introduziu conectores compactos Slimline e micro SATA (uSATA). Esses conectores são uma versão menor do conector SATA original e são projetados para unidades ópticas e pequenas unidades em laptops.

Embora a segunda geração de SATA tivesse largura de banda suficiente para discos rígidos, os SSDs exigiam mais. Em maio de 2009, a terceira versão da especificação SATA foi lançada com largura de banda aumentada para 6 Gbit/s.

Introdução ao SSD. Parte 2. Interface
Foi dada especial atenção às unidades de estado sólido na edição SATA 3.1. Surgiu um conector Mini-SATA (mSATA), projetado para conectar unidades de estado sólido em laptops. Ao contrário do Slimline e do uSATA, o novo conector era semelhante ao PCIe Mini, embora não fosse eletricamente compatível com PCIe. Além do novo conector, o SATA 3.1 ostentava a capacidade de enfileirar comandos TRIM com comandos de leitura e gravação.

O comando TRIM notifica o SSD sobre blocos de dados que não carregam uma carga útil. Antes do SATA 3.1, a execução deste comando fazia com que os caches fossem liberados e a E/S fosse suspensa, seguida por um comando TRIM. Essa abordagem degradou o desempenho do disco durante operações de exclusão.

A especificação SATA não conseguiu acompanhar o rápido crescimento das velocidades de acesso para unidades de estado sólido, o que levou ao surgimento em 2013 de um compromisso denominado SATA Express no padrão SATA 3.2. Em vez de duplicar novamente a largura de banda SATA, os desenvolvedores usaram o barramento PCIe amplamente utilizado, cuja velocidade excede 6 Gbps. As unidades que suportam SATA Express adquiriram seu próprio formato chamado M.2.

SAS

Introdução ao SSD. Parte 2. Interface
O padrão SCSI, “concorrendo” com o ATA, também não parou e apenas um ano após o surgimento do Serial ATA, em 2004, renasceu como uma interface serial. O nome da nova interface é SCSI Serial Attached (SAS).

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

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

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

O número máximo de dispositivos conectados simultaneamente em um domínio SAS de acordo com a especificação ultrapassa 16 mil, e em vez de um ID SCSI, um identificador é usado para endereçamento Nome Mundial (WWN).

WWN é um identificador exclusivo de 16 bytes, análogo a um endereço MAC para dispositivos SAS.

Introdução ao SSD. Parte 2. Interface
Apesar da semelhança dos conectores SAS e SATA, esses padrões não são totalmente compatíveis. No entanto, uma unidade SATA pode ser conectada a um conector SAS, mas não vice-versa. A compatibilidade entre unidades SATA e o domínio SAS é garantida usando o SATA Tunneling Protocol (STP).

A primeira versão do padrão SAS-1 tem taxa de transferência de 3 Gbit/s, e a mais moderna, 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 transferência de dados que apareceu em 2002. O desenvolvimento foi iniciado pela Intel e posteriormente transferido para uma organização especial - PCI Special Interest Group.

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

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

O termo "lane" em PCIe não se refere a uma linha de sinal específica, mas a um único canal de comunicação full-duplex que consiste nas seguintes linhas de sinal:

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

O número de pistas PCIe afeta diretamente o rendimento máximo da conexão. O moderno padrão PCI Express 4.0 permite atingir 1.9 GB/s em uma linha e 31.5 GB/s ao usar 16 linhas.

Introdução ao SSD. Parte 2. Interface
O apetite por unidades de estado sólido está a crescer muito rapidamente. Tanto SATA quanto SAS não têm tempo para aumentar sua largura de banda para “acompanhar” os SSDs, o que levou ao surgimento de unidades SSD com conexões PCIe.

Embora as placas PCIe Add-In sejam aparafusadas, o PCIe pode ser trocado a quente. Pinos PRSNT curtos (presente em inglês - presente) permitem garantir que a placa esteja completamente instalada no slot.

Unidades de estado sólido conectadas via PCIe são regulamentadas por um padrão separado Especificação de interface de controlador de host de memória não volátil e estão incorporados em uma variedade de formatos, mas falaremos sobre eles na próxima parte.

Unidades remotas

Ao criar grandes data warehouses, surgiu a necessidade de protocolos que permitissem conectar drives localizados fora do servidor. A primeira solução nesta área foi Internet SCSI (iSCSI), desenvolvido pela IBM e Cisco em 1998.

A ideia do protocolo iSCSI é simples: os comandos SCSI são “embrulhados” em pacotes TCP/IP e transmitidos para a rede. Apesar da conexão remota, cria-se para os clientes a ilusão de que o drive está conectado localmente. Uma rede de área de armazenamento (SAN) baseada em iSCSI pode ser construída na infraestrutura de rede existente. O uso do iSCSI reduz significativamente o custo de organização de uma SAN.

iSCSI tem uma opção “premium” - Protocolo Fibre Channel (FCP). Uma SAN usando FCP é construída em linhas de comunicação de fibra óptica dedicadas. Essa abordagem requer equipamento de rede óptica adicional, mas é estável e possui alto rendimento.

Existem muitos protocolos para enviar comandos SCSI em redes de computadores. No entanto, existe apenas um padrão que resolve o problema oposto e permite que pacotes IP sejam enviados pelo barramento SCSI - IP sobre SCSI.

A maioria dos protocolos SAN usa o conjunto de comandos SCSI para gerenciar unidades, mas há exceções, como simples ATA sobre Ethernet (AoE). O protocolo AoE envia comandos ATA em pacotes Ethernet, mas as unidades aparecem como SCSI no sistema.

Com o advento das unidades NVM Express, os protocolos iSCSI e FCP não atendem mais às crescentes demandas de SSDs. Duas soluções apareceram:

  • mover o barramento PCI Express para fora do servidor;
  • criação do protocolo NVMe over Fabrics.

A remoção do barramento PCIe envolve a criação de equipamentos de comutação complexos, mas não altera o protocolo.

O protocolo NVMe over Fabrics tornou-se uma boa alternativa ao iSCSI e FCP. O NVMe-oF usa um link de fibra óptica e o conjunto de instruções 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 locais, mas a Intel seguiu um caminho diferente e aproximou o disco local o mais próximo possível do processador. A escolha recaiu sobre os slots DIMM nos quais a RAM está conectada. A largura de banda máxima de um canal DDR4 é de 25 GB/s, o que é significativamente maior que a velocidade do barramento PCIe. Foi assim que nasceu o SSD de memória persistente Intel® Optane™ DC.

Um protocolo foi inventado para conectar unidades a slots DIMM DDR-T, compatível física e eletricamente com DDR4, mas exigindo um controlador especial que veja a diferença entre o cartão de memória e o drive. A velocidade de acesso da unidade é mais lenta que a RAM, mas mais rápida que o NVMe.

DDR-T está disponível apenas com processadores Intel® Cascade Lake ou posteriores.

Conclusão

Quase todas as interfaces percorreram um longo caminho desde os métodos de transferência de dados seriais até os paralelos. As velocidades dos SSDs estão crescendo rapidamente; ontem os SSDs eram uma novidade, mas hoje o NVMe não é mais particularmente surpreendente.

Em nosso laboratório Laboratório Selectel você mesmo pode testar unidades SSD e NVMe.

Apenas usuários registrados podem participar da pesquisa. Entrarpor favor

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

  • 55.5%sim100

  • 44.4%No80

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

Fonte: habr.com

Adicionar um comentário