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

3

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

consider a system with 10 values representing the decimal digits. In such a system, the voltages available—say, 0 to 1.0 volts—could be divided into 10 ranges, each of length 0.1 volt. A circuit would provide an output voltage within each of these 10 ranges. An input of a circuit would need to determine in which of the 10 ranges an applied voltage lies. If we wish to allow for noise on the voltages, then output voltage might be permitted to range over less than 0.05 volt for a given digit representation, and boundaries between inputs could vary by less than 0.05 volt. This would require complex and costly electronic circuits, and the output still could be disturbed by small “noise" voltages or small variations in the circuits occurring during their manufacture or use.

Então, se fosse possível detectar uma mudança de 0,05v com precisão e proteger contra o ruído, usaríamos computadores com 10 estados? Se sim, então é só uma questão de inventar esse equipamento que pode detectar uma mudança de 0,05v? Por que não apenas aumentar a escala? por exemplo, fazer o intervalo de 0-50 volts e ter um estado cada múltiplo de 5 (por exemplo, 0,5,10,15, ..., 50) e permitir um +/- 2V para o ruído?

    
por Celeritas 17.09.2015 / 09:52

3 respostas

11

O motivo subjacente é: é mais fácil construir lógica de dois estados, e em 99% do tempo qualquer coisa mais complicada não traz vantagem prática.

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

Quaisquer melhorias futuras na tecnologia podem melhorar a memória 1-de-10, sim. Mas os mesmos desenvolvimentos tecnológicos também podem ser aplicados a circuitos binários, tornando-os menores, mais confiáveis e usando menos energia. Os circuitos binários irão melhorar mais rapidamente do que os circuitos de um de dez níveis de tensão, porque os circuitos binários executam um trabalho fundamentalmente mais simples. Então os dez circuitos podem nunca alcançar.

O uso de voltagens mais altas é um não-inicial. Você aumentará o consumo de energia; e quanto mais altas as tensões estiverem em suas linhas de sinal, mais ruído elas irradiarão (assim, é mais provável que corrompam outros sinais). Na verdade, estamos atualmente executando sinais de sinal tão próximos uns dos outros que, a 50 volts, você teria que se preocupar com arco, não apenas acoplamento capacitivo! A tendência nas CPUs modernas é usar tensões mais baixas e mais baixas, 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 de somador binária é um projeto muito, muito mais simples (e mais confiável) do que um somador que usaria níveis de voltagem 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 da lógica digital binária para implementar o restante do processador do computador.

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

Vale a pena notar que havia alguns computadores muito antigos que armazenavam números como dígitos decimais. Mas eles não fizeram isso com vários níveis de voltagem. Em vez disso, eles usavam circuitos chamados "contadores de anel" que eram, na verdade, dez bits de memória configurados para que apenas um dos dez pudesse ser "1" por vez. (Olhe para cima "dekatron".)

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

Em suma, embora a representação decimal pareça fazer mais sentido, é apenas porque estamos acostumados a isso como uma civilização. A representação binária faz mais sentido para os circuitos de computador por todas as medidas de engenharia. (E de qualquer maneira, se tivéssemos sido um pouco mais inteligentes, teríamos crescido usando nossos dedos para contar em binário, e poderíamos contar não apenas para 10, mas para 1023! :))

    
por 17.09.2015 / 10:15
6

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

As principais razões para o uso de representação binária para armazenamento e transmissão de dados eletrônicos é o nível de complexidade dos circuitos e das 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 eficientemente qualquer dado em binário sem nenhuma sobrecarga. Usar mais estados do que 2 resultaria freqüentemente na sobrecarga ao tentar representar dados muito simples (por exemplo, binários)

Quanto à última parte da sua pergunta, tenho que lembrar que à medida que a indústria de componentes eletrônicos progride, estamos nos movendo em direção a tensões mais baixas, não mais altas. Ter 50 Volts nos pinos IO de memória principal do computador seria muito pouco prático, perigoso e caro. A moderna memória de computador usuauly usa algo em torno de 1.5V.

Eu recomendo a seguinte leitura:

por 17.09.2015 / 10:09
1

A memória é baseada em transistores, que, embora sejam de natureza analógica, são usados de maneira binária e acoplados a um sinal de clock (o MHz). A memória mais simples que se pode ter é um flip-flop J / K (Q / Q '). Esse arranjo de 4 portas NAND simples é o bit 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 do relógio, que fornece o travamento dos valores. Há um tempo em que os valores mudam e a saída é indeterminada. O sinal do relógio é escolhido para ser um pouco mais longo que o tempo que leva para a saída se estabilizar. Isso trava os valores e a computação continua. Quando os valores não são ajustados no tempo para o pulso do relógio, o valor incorreto é transportado e o computador trava.

    
por 17.09.2015 / 10:29

Tags