Por que os SSDs têm tamanhos estranhos?

82

Por que os SSDs têm tamanhos como 240 GB ou 120 GB, em vez dos 256 GB ou 512 GB normais? Esses números fazem muito mais sentido do que 240 ou 120.

Dudemanword
fonte
45
Por que esses números fazem mais sentido?
Matthew Williams
8
@ MatthewWilliams Eu pensaria porque são divisões fracionárias da medida de armazenamento maior. 256 GB é 1/4 de um terabyte, 512 GB é 1/2 e assim por diante.
Moisés
44
@MatthewWilliams disse que, por causa da base 2 aritmética: 2 ^ 8 = 256, 2 ^ 9 = 512, assim por diante e assim por diante
Dudemanword
17
Esperar que as unidades sejam dimensionadas em uma potência de 2 é tolo, pois as unidades nunca foram dimensionadas em potências de 2. Uma unidade de 1 TB não tem 2 40 bytes, é normalmente 10 12 bytes.
precisa
7
@ Zoredache Isso faz sentido para os HDDs, mas estamos falando de SSDs. Seu armazenamento é basicamente transistores que podem conter apenas 2 estados. Então, na minha mente SSDs deve ser sempre Radix 2. As respostas ajudou a esclarecer a ambigüidade embora
Dudemanword

Respostas:

101

Enquanto muitos SSDs modernos, como a série 840 EVO, fornecem os tamanhos que você costuma gostar, os mencionados 256 GB, os fabricantes costumavam preservar um pouco de armazenamento para mecanismos que combatem quedas e defeitos no desempenho.

Se você, por exemplo, comprou uma unidade de 120 GB, pode ter certeza de que ela é realmente de 128 GB internamente. O espaço preservado simplesmente oferece ao controlador / firmware espaço para itens como TRIM, Garbage Collection e Wear Leveling. É prática comum deixar um pouco de espaço não particionado - além do espaço que já foi invisível pelo controlador - quando os SSDs chegaram ao mercado pela primeira vez, mas os algoritmos ficaram significativamente melhores, portanto você não precisa faça mais isso.

EDIT: Houve alguns comentários sobre o fato de que esse fenômeno deve ser explicado com a discrepância entre o espaço anunciado, declarado em GigaBytes (por exemplo, 128x 10 ^ 9 Bytes) versus o valor GibiByte que o sistema operacional mostra, que é - na maioria das vezes tempo - uma potência de dois, calculando para 119,2 Gibibyte neste exemplo.

Pelo que sei, isso é algo que vem além das coisas já explicadas acima. Embora eu certamente não possa afirmar quais algoritmos exatos precisam da maior parte desse espaço extra, o cálculo permanece o mesmo. O fabricante monta um SSD que realmente usa uma potência de dois números de células flash (ou uma combinação delas), embora o controlador não torne todo esse espaço visível para o sistema operacional. O espaço restante é anunciado como Gigabytes, gerando 111 Gibibyte neste exemplo.

Patrick R.
fonte
2
Exceto que alguns SSDs agora usam estados TLC (três níveis) e, na verdade, precisam de mais espaço reservado do que as unidades anteriores devido às taxas de erro mais altas. O software Magician para minha unidade Samsung EVO recomendou reservar mais espaço quando eu fiz a instalação. Então, em vez de um terabyte, são apenas 920 GB.
Zan Lynx
2
Você quer dizer discrepância entre Gibibyte e Gigabyte? Eu entendi a pergunta de maneira diferente, pois essa discrepância vem além do fenômeno de 120 x 128 GB. A compra de um SSD com tamanho anunciado de 120 GB renderá ainda menos espaço útil exibido no sistema operacional.
Patrick R.
4
@ Matthew Bem, era isso que eu estava tentando dizer - posso confirmar que isso não parou. Meu 512G Samsung 840 me dá apenas um pouco mais de 465G de espaço útil. Desculpe pela confusão. Portanto, para resumir, um SSD anunciado como 120 GB pode ter fisicamente 128.000.000.000 bytes, 120.000.000.000 como espaço utilizável para partições - levando a ~ 110 exibido pelo sistema operacional.
Patrick R.
27
O termo técnico é superprovisionamento .
Ben Voigt
1
@ADTC Por que 8 GB de 128 GB devem ser demais? As células especialmente multiníveis tendem a viver não pelo tempo que você deseja. Como os fabricantes não querem que você devolva seu SSD dentro do prazo de garantia, definitivamente faz sentido reservar tanto espaço. A publicidade falsa também já foi discutida antes, isso é algo que vem em cima. Você compra 120 GB anunciados e obtém 128 x 10 ^ 9 bytes, com uma rede de ~ 110 Gibibyte exibido no sistema operacional.
Patrick R.
23

Os discos rígidos mecânicos e de estado sólido têm capacidade bruta maior que a capacidade nominal. A capacidade "extra" é mantida de lado para substituir setores defeituosos, para que as unidades não precisem ser perfeitas da linha de montagem e para que setores defeituosos possam ser re-mapeados posteriormente durante o uso para os setores sobressalentes. Durante os testes iniciais na fábrica, quaisquer setores defeituosos são mapeados para os setores sobressalentes. À medida que a unidade é usada, ela monitora os setores (usando rotinas de correção de erros para detectar erros no nível de bits) e, quando um setor começa a ficar ruim, ele copia o setor para um sobressalente e o remapea. Sempre que esse setor é solicitado, a unidade passa para o novo setor, e não para o setor original.

Em unidades mecânicas, eles podem adicionar quantidades arbitrárias de armazenamento sobressalente, pois controlam a codificação de servo, cabeçote e prato, para que possam ter um armazenamento classificado de 1 terabyte com 1 gigabyte adicional de espaço livre para o remapeamento do setor.

No entanto, os SSDs usam memória flash, que é sempre fabricada em potências de dois. O silício necessário para decodificar um endereço é o mesmo para um endereço de 8 bits que acessa 200 bytes que um endereço de 8 bits que acessa 256 bytes. Como essa parte do silício não muda de tamanho, o uso mais eficiente do setor imobiliário é usar potências de dois na capacidade real do flash.

Portanto, os fabricantes de unidades estão presos a uma capacidade bruta total em potências de 2, mas ainda precisam reservar uma parte da capacidade bruta para o remapeamento do setor. Isso leva a 256 GB de capacidade bruta, fornecendo apenas 240 GB de capacidade utilizável, por exemplo.

Adam Davis
fonte
6

Simplificando, todos os SSDs não são, na base, o que anunciam. O que eles anunciam é o espaço em disco "utilizável". Para a maioria das unidades com 120 GB de armazenamento "utilizável", a unidade base é na verdade uma unidade de 128 GB. 8 GB são reservados para algumas tarefas específicas de gerenciamento em segundo plano, conforme declarado anteriormente.

Agora, tecnicamente, eles poderiam colocar outro chip na peça para oferecer 128 GB de espaço "utilizável", mas isso custa mais dinheiro. As empresas que fabricam unidades perceberam que as pessoas se preocupam mais com o tamanho da unidade do que se o espaço útil é realmente um múltiplo de 2.

Sidenote - na verdade, existem algumas maneiras de escrever o código de sistema necessário, e é por isso que você verá unidades de 120, 124 e 128 GB de diferentes fabricantes. Todos eles têm 128 GB de espaço "bruto", mas lidam com o material de plano de fundo necessário de maneira diferente. Nenhuma versão da codificação da unidade é tão melhor que as outras que você notaria na maioria dos casos. Você pode notar uma pequena diferença nos benchmarks de desempenho, mas é muito improvável que a note, a menos que seu computador esteja fazendo algum trabalho pesado e você saiba o que procurar.

user319078
fonte
5
não múltiplo de 2, mas o poder de 2.
Keltari
2

Crescer por potências de dois é um conceito estritamente matemático que facilita os atalhos de matemática em um computador baseado em dois estados. Ou seja, um computador pode executar a multiplicação ou divisão de números inteiros por um fator de dois tão facilmente quanto você pode multiplicar ou dividir um número por 10. Você simplesmente muda os dígitos para a esquerda ou para a direita sem precisar realizar um cálculo.

Cada linguagem de programação tem uma operadores para estas operações simples, em linguagens C-like, que são n >> maka shift n right m bitsaka divide n by 2^m, e n << maka shift leftaka multiply n by 2^m. Dentro do processador, essa operação geralmente leva um ciclo e acontece com os dados no local. Qualquer outra operação aritmética, como multiplicar por 3, requer que uma ALU [Unidade Lógica Aritmética] gaste um ciclo extra ou dois organizando os bits e copiando o resultado de volta para um determinado registro. Deus o ajude se você precisar de precisão de ponto decimal e a FPU [Unidade de ponto flutuante] se envolver.

De qualquer forma, é por isso que o seu computador gosta de se referir a tudo internamente como potências de dois. Se a máquina tivesse que ir para uma operação de ALU toda vez que desejasse fazer algumas contas simples para calcular um deslocamento de ponteiro de memória, o computador estaria executando uma ordem de magnitude mais lenta.

O crescimento do armazenamento físico, por outro lado, é governado menos pela matemática binária bruta do que pela física, engenharia e * engasga com a palavra * marketing. Com um disco de eixo, a capacidade é determinada por: número de pratos, tamanho dos pratos, tamanho dos "cilindros" e número de setores que podem caber em um cilindro. Geralmente, eles são determinados mais pelos recursos físicos do hardware e pela precisão das cabeças de leitura / gravação do que qualquer outra coisa.

Não estou tão familiarizado com as características internas dos SSDs, mas imagino que o dimensionamento seja baseado: podemos construir uma matriz de setores N x M NAND, mergulhá-los K profundamente em um chip e encaixá-los em J um gabinete de disco rígido de 2,5 ". Reserve H% deles para otimização do desempenho, arredonde o número para o múltiplo mais próximo de 5/10/20, e essa é a capacidade da unidade que imprimiremos na caixa.

Fazer com que qualquer um desses cálculos funcione com uma potência mínima de dois será um acaso completo e de pouco benefício para qualquer um.

Sammitch
fonte
Gostaria de observar que a facilidade de uso desses operadores de turnos também depende do comportamento do preenchimento (pad 0 ou pad 1) da arquitetura que você está direcionando. Evidentemente, este não é um problema com linguagens de alto nível de hoje
Dudemanword
Pelo que ouvi um bom compilador vai mesmo ir em frente e substituir operações matemáticas errantes como var = var / 256com var >> 8para você estes dias.
Sammitch
2
Os chips de memória são sempre dimensionados como potências de dois, para que o número de endereços válidos seja exatamente limitado pelo número de sinais de endereço. Isso evita a necessidade de um sinal de erro "chip selecionado por endereço fora da faixa" e também facilita a detecção de tamanho. A unidade geral pode não ter uma potência de 2 se o número de chips de memória não for (os primeiros SSDs da Intel usavam 10 canais cada um com 128 GB, para um total de 160 GB, para uma pequena vantagem sobre os modelos de 128 GB dos concorrentes)
Ben Voigt
-8

Nos SSDs mais antigos, a capacidade era de múltiplos de 8 porque há 8 "bits" (0/1) em um "byte". Assim como nas unidades flash, esse era o momento em que as pessoas não viam os benefícios de um SSD, e todo "bit" ajudava.

Agora que os consumidores estão mais conscientes da tecnologia SSD e também com os avanços da tecnologia, os fabricantes de SSD estão levando-os de volta aos números mais familiares através de uma combinação de "estimativa" de tamanho, assim como o mercado de HDD, e combinando chips de tamanhos diferentes para obter um número par 10 (por exemplo, 6 GB + 4 GB = 10 GB)

Charles Keisler
fonte
Talvez você esteja confundindo bits e bytes?
James McLeod