Pergunta bastante direta e fundamental, embora ingênua:
Ter 4 estados por "bit" em vez de 2 significaria o dobro do espaço de armazenamento? Caso isso não esteja claro, quero dizer como se toda "estrutura de armazenamento", em vez de representar apenas 2 valores (base 2: 0, 1), pudesse representar 4 valores (base 4: 0, 1, 2, 3 )
Respostas:
A palavra que você está procurando não é "bit", mas "símbolo". "Símbolo" é a palavra usada para descrever o processo de mapeamento de sinais de hardware (como tensões ou padrões magnéticos) em bits lógicos. Se um símbolo pode ter 4 estados, pode codificar 2 bits em informações.
Obviamente, não estamos dizendo nada sobre o uso de recursos do símbolo nesse argumento. Se você estiver enviando símbolos ao longo de um fio como voltagens, os diferentes símbolos parecerão cada vez mais semelhantes à medida que você aumenta o número de estados por símbolo. Se eu tiver um fio de 0-5V e 2 estados por símbolo (1 bit), meus dois estados serão 0V e 5V, com 5V entre cada símbolo. Se eu tiver o mesmo fio, mas codificar 4 estados por símbolo (2 bits), meus estados serão 0V, 1,66V, 3,33V e 5V. Isso é 1,66V entre cada símbolo. Agora ficou mais fácil o ruído corromper meu sinal.
Existe uma lei que os relaciona, conhecida como Lei de Shannon, que relaciona a largura de banda (em bits) à taxa de erros que ocorrem devido ao ruído na linha. Acontece que há um limite para quantos bits você pode prender em um fio. O uso de mais símbolos leva a mais erros, exigindo mais correção de erros.
Nós usamos essa técnica na vida real. A televisão digital usa QAM-64, com 64 estados (e, portanto, 6 bits por símbolo). A Ethernet usa 4 níveis de tensão, portanto, 2 bits por símbolo.
Editar: usei taxas de transmissão de bits em vez de armazenamento, porque é mais comum ver símbolos com mais estados na transmissão, para que eu pudesse tornar a história mais clara. Se alguém deseja examinar especificamente armazenamento e armazenamento sozinho, pode-se observar células de vários níveis na memória flash, como Alguém em algum lugar mencionado nos comentários. Essa memória usa exatamente a mesma abordagem, armazenando 3 bits como 16 níveis de carga diferentes de um capacitor. (ou mais!)
fonte
Uma célula de memória trimestral pode armazenar exatamente tanta informação quanto duas células de memória binária:
Portanto, se você tiver o mesmo número de células de memória, mas elas forem trimestrais, terá duas vezes mais memória. Mas se essa célula quádrupla ocupa duas vezes mais espaço em um chip, não há benefício.
Ou, de outro modo, se você tivesse 1 gigaquad de algum armazenamento quartenário, ele poderia armazenar tanta informação quanto 2 gigabits de memória binária normal, porque cada quad poderia ser expresso com dois bits.
De certa forma, toda essa linha de pensamento é apenas de interesse acadêmico. Você já pode pensar que os chips de memória armazenam, por exemplo, 2 ^ 32 células de estado, porque você não pode buscar 1 bit delas, sempre recebe uma palavra completa. E se, no futuro, alguém descobrisse uma maneira de armazenar essa palavra nas células físicas de quatro estados com mais eficiência do que nas células de dois estados, isso seria usado, mas não seria visível fora do chip de memória, ainda assim seria capaz de lidar com isso. somente palavras com memória cheia, que podem ter, por exemplo, 2 ^ 32 estados diferentes.
fonte
Na teoria básica, sim. Na realidade, não - porque na verdade não armazenamos dados em bits (nos HDDs). Cort Ammon cobre muito bem os problemas de transmissão de dados. RAM, cache e SSDs armazenam dados como bits, mas os HDDs são diferentes devido à natureza de seu material físico e aos nossos esforços para compactar mais dados neles. A maioria dos dados ainda é armazenada em HDs, então vou focar neles. Vou muito além da explicação que você encontrará na maioria das fontes, mas tentarei citar fontes onde eu puder. Essas fontes devem ser desenterradas das profundezas antigas da Internet, porque é - em grande parte - conhecimento verdadeiramente esquecido.
Primeiro, os discos rígidos armazenam informações com campos magnéticos na superfície dos pratos da unidade. A cabeça de acionamento lê esses dados detectando o fluxo da mudança naquele campo - isso é muito mais fácil de medir do que a direção e a força reais do campo magnético. mas se o campo tiver 50 dos mesmos segmentos consecutivos, não será possível contar que houve 50 - ele leu um pico de fluxo ao ler o primeiro segmento, depois nenhum fluxo por um tempo depois e não pode rastrear o tempo com precisão suficiente para ter certeza de que o campo não foi alterado para 50 segmentos.
Portanto, o modelo básico (simplificado) é armazenar um pouco como um par de campos magnéticos. O primeiro seria sempre uma alternância do segmento anterior e o segundo seria um flip para representar 1 ou nenhum flip para representar 0. Portanto, 0 é FN (flip-null) e 1 é FF (flip-flip). O tempo do inversor é preciso o suficiente para reconhecer a diferença entre um pico de fluxo e dois pontos de fluxo dentro de um segmento. Este formato é chamado de modulação de frequência. Portanto, isso fornece sinais claros, mas significa que cada bit de memória requer dois espaços na unidade - isso é muito ineficiente. Portanto, nenhum disco rígido realmente tinha essa forma mais básica de codificação; usou truques simples de compressão. A mais simples é a Modulação de Frequência Modificada, que altera o padrão para que o flip magnético extra seja usado apenas se um 0 for precedido por outro 0. Isso permite que os engenheiros agrupem quase o dobro de dados no mesmo espaço e, portanto, foram usados nos primeiros HDDs, e é o formato em disquetes. Depois disso, um sistema mais avançado chamado Run Length Limited foi desenvolvido com uma idéia geral semelhante, na qual não vou entrar porque fica muito mais complicado e há várias implementações.
Mas não usamos nenhum sistema como esse hoje. Em vez disso, usamos um sistema chamado Resposta Parcial, Máxima Verossimilhança (PRML). O PRML exige que o cabeçote leia um comprimento e colete a amostra magnética e, em seguida, compare-o com um conjunto de referência de amostras armazenadas para determinar qual delas corresponde melhor. Ele renuncia a todo o conceito de picos de fluxo e usa a correspondência de padrões (simplifico demais, mas a simplificação excessiva vale a pena), e o padrão corresponde a um conjunto de bits. Ele usa filtros de ruído e outras tecnologias para remover possíveis erros. É melhor pensar nisso como uma forma de onda complexa, e o HDD sabe como converter cada forma de onda em um conjunto de bits. Nesse sentido, os dados são realmente armazenados mais em formato analógico do que digital,
O melhor guia para isso está em http://www.pcguide.com/ref/hdd/geom/data.htm (pressione o botão Avançar algumas vezes para ler tudo) e existem algumas outras fontes - principalmente de pessoas que criaram repositórios maciços de conhecimentos de informática que ninguém tem motivos para conhecer. Uma fonte adicional decente (que é boa, mas não 100% perfeita, tanto quanto eu sei) está em http://www.tomshardware.com/reviews/hard-drive-magnetic-storage-hdd,3005-6.html
TL; DR: Os discos do disco rígido não armazenam dados em um formato como 1 e 0; eles usam um processamento de sinal complexo para amontoar os sinais no menor espaço possível e decodificá-los ao ler. Então, eles são realmente agnósticos.
Eu não ficaria surpreso se o armazenamento base-4 fosse tentado em SSDs ou RAM em algum momento. Tudo depende da física e química dos materiais. Os engenheiros e cientistas empurrarão esses materiais o máximo que puderem e seguirão o caminho que produz os melhores resultados.
fonte
Sim, ter mais estados permitirá que cada "célula" de armazenamento ou cada símbolo em uma linha de transmissão de dados leve mais informações.
Mas não há almoço grátis, precisamos realmente distinguir esses estados. Acontece que é fácil construir portas lógicas binárias e muito mais difícil construir portas que distinguem, processam e regeneram mais de dois níveis lógicos.
E depois há a questão dos sinais atenuados. Em um sistema de dois níveis, você pode simplesmente projetar seu limite para que ele funcione com a atenuação do pior caso, em um sistema de quatro estados em que é esperada uma atenuação significativa. É necessário adaptar seus limites à atenuação específica do sistema, não apenas ao pior atenuação em caixa. Na prática, isso significa que você precisa adicionar um sistema de medição de atenuação ao seu sistema de comunicações.
Tudo o que disse, há situações em que a complexidade extra FAZ faz sentido. Muitos SSDs agora usam mais de dois níveis por célula flash (conhecida como MLC ou TLC); os protocolos modernos de comunicação de alta velocidade também quase sempre usam codificações em vários níveis.
fonte
Você pode estar interessado em saber que os russos desenvolveram um chip que era ternário , em vez de binário. Isso significa que cada símbolo pode ter os valores de
-1
,0
ou1
. Portanto, cada porta física poderia armazenar "três" valores, em vez de "dois".Quando você começa a suspeitar, pode haver uma maneira mais eficiente de implementar um sistema de numeração de base. (Embora essa capacidade de expressar isso de forma mais eficiente dependa de nossa capacidade de fabricar fisicamente o material.) Acontece que a constante
e
, a base do log natural (~ 2,71828), tem a melhor economia de raiz, seguida por 3 e 2, então 4.Economia Radix é a quantidade de número que você pode representar versus quantos símbolos você precisa usar para fazer isso.
Por exemplo, o número matemático três é representado como
3
na base 10, mas como11
na base 2 (binária). A base 10 pode expressar números maiores com menos símbolos que a lata binária, mas a tabela de símbolos da base 10 é 5x maior (0 ... 9) do que a tabela de símbolos da base 2 (0, 1). A comparação da potência expressiva com o tamanho do conjunto de símbolos é denominada "economia de raiz" (raiz sendo o número da base, por exemplo, 2 em binário ou "base 2"). A pergunta natural a seguir é: onde eu quero estar em termos dessa troca? Que número devo adotar como raiz? Posso otimizar a troca entre poder expressivo e tamanho do conjunto de símbolos?Se você olhar para o gráfico no artigo de economia básica na wikipedia, poderá comparar as economias de várias bases. Em nosso exemplo, a base 2 tem uma economia de raiz de 1,0615, enquanto a base 10 tem uma economia de 1,5977. Quanto menor o número, melhor, portanto, a base 2 é mais eficiente que a base 10.
Sua pergunta sobre a base 4 tem uma eficiência de 1,0615, que é do mesmo tamanho da base 2 (ou binária), portanto, adotá-la sobre a base 2 fornece apenas o mesmo tamanho exato de armazenamento por número, em média.
Se você está se perguntando, existe um número ideal para adotar como base, este gráfico mostra que, não é um número inteiro, mas a constante matemática
e
(~ 2,71828) que é a melhor, com uma economia de 1,0. Isso significa que é o mais eficiente possível. Para qualquer conjunto de números, em média, a basee
fornecerá o melhor tamanho de representação, considerando sua tabela de símbolos. É o melhor "retorno do seu investimento".Portanto, embora você ache que sua pergunta talvez seja simples e básica, ela é realmente sutilmente complexa e é uma questão muito interessante a considerar ao projetar computadores. Se você pudesse projetar um computador discreto ideal, usar a base 4 oferece o mesmo negócio - o mesmo espaço de custo - que o binário (base 2); o uso da base 3, ou ternário, oferece um acordo melhor do que o binário (e os russos construíram um computador físico e funcional com representação da base 3 em transistores); mas, idealmente, você usaria a base e. Não sei se alguém construiu um computador físico funcional com base e, mas matematicamente, ele ofereceria uma melhor quantidade de espaço do que o binário e o ternário - na verdade, o melhor negócio de todos os números reais.
fonte
Você acreditaria que posso codificar a soma total do conhecimento humano com uma única correspondência?
Se eu codificar um pouco em uma única correspondência, os símbolos podem ficar assim:
Com fósforos suficientes, posso dizer qualquer coisa. Mas posso dizer o dobro da mesma correspondência se adicionar mais dois símbolos. Que pode ser assim:
O dobro de informações com a mesma correspondência! Bem, porque não? Bem, por que parar? Gire cada símbolo 45 graus e dobramos novamente. 30, 15 e assim por diante. Em breve tenho símbolos suficientes para dizer tudo e qualquer coisa com apenas uma partida! Uma vez que faço isso, temos um problema. O que esta partida diz?
Como você pode ter certeza exatamente de qual símbolo está agora? Quanto tempo você precisa ter certeza? Esse é o problema. Quanto mais símbolos adicionar, mais esforço será necessário para diferenciá-los.
Se estamos falando por partida, com certeza. Mas, mesmo que isso não diminua a velocidade da leitura, agora estamos ocupando mais espaço no meu balcão da cozinha. Sempre é alguma coisa.
fonte
Se um bit tivesse 4 estados em vez de dois em um símbolo (bit), sim, você teria o dobro da quantidade de memória. Isso pode ou não ocupar o dobro de espaço, dependendo da tecnologia usada.
Há um exemplo da vida real que você tem diante de seus olhos todos os dias: Ethernet (que não é memória, mas é semelhante na medida em que transmite dados), você tem, entre outros, o "fast ethernet" comum a 100 MBit 100BASE -TX, e você tem 1GbE Ethernet.
Claramente, 1GbE requer frequências 10 vezes mais altas que 100 MBit (como 100 MBit requer frequência 10 vezes maior que 10 MBit), é por isso que você também precisa de cabos mais caros. Obviamente.
Opa ... isso não é verdade .
Ethernet de 100 MBit transmite mais de dois pares de cabos a 100 MHz, enquanto GbE transmite a 125 MHz e mais de 4 pares de cabos.
Espere, então o GbE é realmente apenas duas vezes e meia mais rápido que a Ethernet de 100 Mbit? Eu só ganho 250 MBit / s?
Não, ele também usa a codificação 5-PAM, que pode codificar 2,32 bits por pulso por par de cabos, dos quais 2 bits são usados como informações reais e o restante torna o sinal mais resistente ao ruído. Graças a esses bits fracionários, o 1000BASE-T também pode eliminar a codificação 8B10B.
Então, você dobrou o número de fios e aumentou um pouco a frequência, mas obtém 10 vezes mais taxa de transferência!
Agora, se você acha que isso é pura mágica, veja como a televisão digital a cabo funciona e, se ainda não está convencido, veja o ADSL, que usa 32768-QAM para codificar 15 bits em um símbolo.
O mesmo velho fio de cobre, a mesma banda de frequência, 15 vezes mais coisas passando.
EDIT:
Outro exemplo muito óbvio da vida real que eu esqueci completamente (já que é óbvio demais!) Que você tem diante de seus olhos todos os dias é: pendrives USB.
Aqueles geralmente usam memória flash MLC . O que é isso? É um tipo de célula de memória que armazena um dos quatro níveis de carga diferentes. Essa é a menor unidade que você pode acessar em um nível de hardware. Então, você poderia dizer que seus "bits" realmente têm 4 estados (eles não têm , você realmente só sai dois bits em vez de um, e você só pode ler setores completos do dispositivo de qualquer maneira ... mas você poderia discuti-lo dessa maneira).
Mesmo número de células, mas o dobro da memória. Mais barato, menor, um pouco menos confiável, mas ... acima de tudo, mais barato .
fonte
Ter 4 símbolos por dígito em vez de dois significa que você pode armazenar o dobro de informações em um único dígito. No entanto, à medida que aumenta a quantidade de dígitos, você pode armazenar exponencialmente mais informações:
Quaisquer n dígitos na base 2 podem codificar 2 ^ n estados, enquanto a base 4 pode codificar 4 ^ n.
fonte
(4^n) / (2^n) = 2^n
o que significa que você pode representar exponencialmente (2^n
vezes) mais estados, mas isso representa apenas duas vezes (log2(4^n) / log2(2^n) = 2n / n = 2
) mais armazenamento. Lembre-se dissostorage capacity in bits = log2(number of states)