Um controlador SSD, também chamado de processador, inclui os componentes eletrônicos que ligam os componentes da memória Flash às interfaces de entrada/saída do SSD. O controlador é um processador integrado que executa software de nível de firmware. O firmware do SSD é específico do dispositivo e, na maioria dos casos, pode ser atualizado.
Um controlador SSD, também chamado de processador, inclui os componentes eletrônicos que ligam os componentes da memória Flash às interfaces de entrada/saída do SSD. O controlador é um processador integrado que executa software de nível de firmware. O firmware do SSD é específico do dispositivo e, na maioria dos casos, pode ser atualizado.
Os controladores SSD convencionais incluem os seguintes elementos elétricos, muitas vezes contidos em um único Circuito Integrado (IC):
- Processador embutido - geralmente um microcontrolador de 32 bits
- ROM de firmware de dados apagáveis eletricamente
- RAM do sistema
- Suporte para RAM externa – geralmente DDR/DDR2 como SDRAM
- Circuito de código de correção de erro (ECC)
- Interface do componente Flash – geralmente uma interface padrão, como a Open NAND Flash Interface (ONFI)
- Interface elétrica do host – geralmente SATA, USB, SAS ou combinação
Embora a maioria dos produtos SSD no mercado use componentes Flash padrão, existem novos componentes Flash disponíveis que integram o ECC e, em alguns casos, toda a função do controlador dentro dos próprios chips Flash. Para este artigo, vamos nos concentrar nas facções de controladores tradicionais listadas acima.
Elementos típicos do controlador SSD
A tabela abaixo descreve cada um desses elementos com mais detalhes.
Elementos do Controlador
|
Descrição
|
Uso
|
Subcontratante
|
Microcontrolador embutido de 16 ou 32 bits, programado em C na maioria dos casos e compilado para executar no mecanismo de CPU de destino.
|
Execução de firmware para o aplicativo Flash principal, bem como diagnóstico (SMART), nivelamento de desgaste (coleta de lixo/TRIM), cache e funções de segurança.
|
Correção de Erros (ECC)
|
Uma função de hardware que anexa bits de redundância a cada byte armazenado para fornecer detecção e correção de erros de dados na leitura.
|
A detecção e correção de erro de dados é realizada automaticamente no hardware ECC para atingir uma taxa de erro de confiabilidade de dados da ordem de 1 bit 10E-12.
|
Controlador Flash
|
Contém o endereçamento, barramento de dados e controle para gerenciar um ou mais componentes Flash. Um controlador SSD típico gerencia até 512 GB de Flash.
|
Normalmente, a Open NAND Flash Interface (ONFI) de 8 bits para flash NAND padrão.
Normalmente pode controlar até 16 componentes Flash.
|
Controlador DRAM
|
Contém o endereçamento, barramento de dados e controle para gerenciar um ou mais componentes DRAM. Um controlador SSD típico pode gerenciar até 256 MB de DRAM.
|
A DRAM é usada principalmente como um buffer de memória para corresponder ao fluxo de dados da matriz Flash para a interface de E/S. Essa memória também pode ser utilizada como um cache de dados para melhorar o desempenho geral. Isso requer programação de firmware
|
Interface de E/S (ou seja: SATA)
|
Contém a interface elétrica nativa de acordo com um padrão de sistema aberto específico, como SATA, USB ou SAS. A interface é controlada pelo driver de firmware do controlador. O endereçamento básico e o handshaking são feitos no hardware.
|
Alguns controladores permitem a transferência de dados entre interfaces, como USB e SATA, sem intervenção do controlador no fluxo de dados.
|
Memória do Controlador
|
Composto por memória programada (ROM) e RAM de rascunho/buffer fortemente acoplado ao processador. Esta memória é usada pelo controlador para a execução do programa e para armazenar os valores do scratchpad. Em alguns aplicativos de custo limitado, a RAM atua como o único buffer de dados para o SSD.
|
Normalmente é 32-64 KB ROM e 128-256 KB ou RAM.
|
Configuração do chip
|
Estabelece a configuração para tipos e velocidades de peças de memória usadas, entradas de relógio, E/S de diagnóstico e saídas de status de LED.
|
Varia de acordo com o fornecedor.
|
I / O geral
|
Pinos programáveis de uso geral disponíveis para o aplicativo.
|
Normalmente 4-16 pinos fornecidos.
|
Embalagens
|
|
BGA de 281 pinos é comum
LQFP de 208 pinos é comum
|
Controladores SSD comumente usados
Os controladores SSD comuns no mercado desde o início de 2010 incluem:
- Indilinx "Barefoot ECO" IDX110MO1
- Indilinx "pés descalços" IDX110M00
- Intel PC29AS21BA0
- JMicron JMF602
- JMicron JMF612
- Marvel 88SS9174-BJP2
- Samsung S3C29RBB01-YK40
- SandForce SF-1200
- SandForce SF-1500
- Toshiba T6UG1XBG
Os projetistas de sistemas realizam uma série de compensações ao selecionar um fornecedor e um controlador específico para seu produto-alvo e mercado(s)-alvo.
As compensações incluem:
- Programática – custo, cronograma, suporte, garantia e disponibilidade.
- Técnico – desempenho, potência, opções de pacote, recursos, escalabilidade e flexibilidade.
- Outros – semelhança, compatibilidade, documentação, suporte ao desenvolvimento, teste e reputação.
No processo de seleção do controlador, o projetista do sistema também faz a mesma análise para as peças do Flash e outras peças necessárias no projeto. É um processo iterativo para encontrar a combinação certa de fornecedores e componentes para melhor atender aos requisitos de um produto específico.
Devido a questões de propriedade, nem todos os dados do projeto do controlador estão disponíveis para o público em geral na Internet. No entanto, há uma quantidade significativa de detalhes de aplicativos que podem ser aprendidos para cada um dos controladores de SSD no mercado, estudando seu uso em SSDs existentes.
Comentários sobre StorageReview.com e em outros lugares ajudará a discernir as vantagens de cada controlador e seu efeito no SSD. Essas referências contextuais são importantes porque, por mais crítico que o controlador seja no desempenho de um SSD, o desempenho dos SSDs pode variar entre dois fornecedores diferentes, mesmo que usem exatamente o mesmo componente do controlador de SSD.
Geralmente, essa variação de desempenho ocorre porque os dois designs usaram partes Flash diferentes, um número diferente de partes Flash, uma quantidade diferente de memória de buffer de cache ou talvez firmware otimizado de alguma forma. O que quero dizer é que o controlador SDD é apenas uma parte do design geral do sistema SSD e, embora seja essencial para o desempenho, não é o único fator a ser considerado ao tomar uma decisão de compra de SSD.
Guias Relacionados:
Retorne para Guia de SSD