Por que a memória do computador tem apenas dois estados?

Por que a memória do computador tem apenas dois estados?

Por que os computadores usam binários, no sentido de por que usam bits que só podem representar um estado alto e um estado baixo? Eu estava lendo "Logic & Computer Design Fundamentals" (de M. Morris Mano, Charles R. Kime (autor) e Tom Martin) e não entendi o motivo:

considere um sistema com 10 valores representando os dígitos decimais. Nesse sistema, as tensões disponíveis – digamos, 0 a 1,0 volts – poderiam ser divididas em 10 faixas, cada uma com comprimento de 0,1 volt. Um circuito forneceria uma tensão de saída dentro de cada uma dessas 10 faixas. Uma entrada de um circuito precisaria determinar em qual das 10 faixas está uma tensão aplicada. Se desejarmos permitir ruído nas tensões, então a tensão de saída poderá variar em menos de 0,05 volt para uma determinada representação de dígitos, e os limites entre as entradas poderão variar em menos de 0,05 volt. Isto exigiria circuitos eletrônicos complexos e caros, e a saída ainda poderia ser perturbada por pequenas tensões de “ruído” ou pequenas variações nos circuitos que ocorrem durante sua fabricação ou uso.

Então, se fosse possível detectar com precisão uma alteração de 0,05 V e proteger contra ruídos, usaríamos computadores com 10 estados? Se sim, então é apenas uma questão de inventar um equipamento que possa detectar uma mudança de 0,05 V? Por que não apenas aumentar a escala; por exemplo, faça a faixa de 0 a 50 volts e tenha um estado cada múltiplo de 5 (por exemplo, 0,5,10,15,...,50) e permita +/- 2V para ruído?

Responder1

A razão subjacente é: é mais fácil construir uma lógica de dois estados e, em 99% das vezes, qualquer coisa mais complicada não oferece nenhuma vantagem prática.

Na verdade, édistantemais fácil (ou seja, menor, mais barato e mais confiável) construir quatro unidades de memória, cada uma com dois estados (que podem ser usados ​​para armazenar um dígito decimal na notação BCD) do que construir uma única unidade de memória que possa armazenar e ler em 10 estados.

Quaisquer melhorias tecnológicas futuras podem melhorar a memória de 1 em 10, sim. Mas, os mesmos desenvolvimentos tecnológicos também poderiam ser aplicados a circuitos binários, tornando-os menores, mais confiáveis ​​e consumindo menos energia. Os circuitos binários melhorarão mais rapidamente do que os circuitos de nível de tensão um em dez, porque os circuitos binários realizam um trabalho fundamentalmente mais simples. Portanto, os circuitos um em dez podemnuncaalcançar.

Usar tensões mais altas é um fracasso. Você aumentará o consumo de energia; e quanto mais altas as tensões nas linhas de sinal, mais ruído elas irradiam (portanto, é mais provável que corrompam outros sinais). Na verdade, atualmente estamos executando rastreamentos de sinal tão próximos uns dos outros que, a 50 volts, você teria que se preocupar com o arco elétrico, não apenas com o acoplamento capacitivo! A tendência nas CPUs modernas é usar tensões cada vez mais baixas, e não mais altas.

Além disso, a codificação binária, embora pareça estranha à primeira vista, é extremamente conveniente em muitos aspectos. Um circuito somador binário é um projeto muito, muito mais simples (e mais confiável) do que um somador que usaria níveis de tensão variados, como os descritos. (E eu nem quero pensar em como você faria multiplicação, divisão ou ponto flutuante.) Além disso, você precisa de lógica digital binária para implementar o resto do processador do computador de qualquer maneira.

O fato de os humanos preferirem lidar com computadores usando números decimais é praticamente irrelevante: a conversão entre binário e decimal é um código trivial.

É importante notar que existiam alguns computadores antigos que armazenavam números como dígitos decimais. Mas eles não fizeram isso com níveis de tensão variados. Em vez disso, usaram circuitos chamados “contadores de anel” que eram, na verdade, dez bits de memória configurados para que apenas um dos dez pudesse ser “1” de cada vez. (Procure "dekatron".)

Posteriormente, surgiram computadores "decimais", como o IBM 1401 e o IBM 1620, mas, novamente, todos eles usavam fundamentalmente armazenamento binário. Os bits foram usados ​​apenas para representar dígitos decimais de várias maneiras. por exemplo, o 1401 usou "decimal codificado em binário", no qual um conjunto de quatro bits foi usado para codificar cada dígito decimal. Computadores como esse tiveram muito sucesso em sua época, e a maioria das calculadoras ainda funciona dessa maneira.

Em suma, embora a representação decimal pareça fazer mais sentido, isso acontece apenas porque é a isso que nós, como civilização, estamos acostumados. A representação binária faz mais sentido para circuitos de computador em todos os aspectos da engenharia. (E de qualquer forma, se tivéssemos sido um pouco mais espertos, teríamos crescido usando os dedos para contar em binário e seríamos capazes de contar não apenas até 10, mas até 1023! :))

Responder2

O artigo que você citou responde muito bem à sua pergunta, basta pensar um pouco mais.

As principais razões para usar a representação binária para armazenamento e transmissão eletrônica de dados são o nível de complexidade dos circuitos e as margens de ruído.

Outra razão importante é que, para fins de armazenamento de dados, o binário é o menor denominador comum. Você pode representar com eficiência qualquer dado em binário sem qualquer sobrecarga. Usar mais estados do que 2 muitas vezes resultaria em sobrecarga ao tentar representar dados muito simples (por exemplo, binários).

Quanto à última parte da sua pergunta, devo lembrá-lo que, à medida que a indústria de componentes eletrônicos avança, caminhamos para tensões mais baixas, e não mais altas. Ter 50 Volts nos pinos IO da memória principal do computador seria muito impraticável, perigoso e caro. A memória do computador moderno geralmente usa algo em torno de 1,5V.

Recomendo a seguinte leitura:

Responder3

A memória é baseada em transistores, que embora sejam de natureza analógica, são usados ​​de forma binária e acoplados a um sinal de clock (o MHz). A memória mais simples que existe é um flip-flop J/K (Q/Q'). Este arranjo de 4 portas NAND simples é a parte fundamental do armazenamento digital - é o que armazena 1 ou 0. O flip-flop não tem capacidade de armazenar valores não digitais ou múltiplos.

Outro aspecto é o sinal de clock, que proporciona o travamento de valores. Chega um momento em que os valores mudam e a saída é indeterminada. O sinal do clock é escolhido para ser um pouco maior que o tempo que leva para a saída se estabilizar. Isso então trava os valores e o cálculo prossegue. Quando os valores não são ajustados a tempo para o pulso do clock, o valor errado é transportado e o computador trava.

informação relacionada