É fato que o “bem” mais precioso atualmente em nossa sociedade é a
informação, seja ela relacionada aos hábitos de consumo, entretenimento, clima, comportamento social, internet, bolsa de valores ou qualquer outro segmento. Não é de surpreender que as maiores empresas do mundo estão no ramo das
tecnologias de informação. Mas afinal o que é informação? Conceitualmente, informação pode ser definida, de forma simplista, como um conjunto de dados que possui algum significado. Na natureza a informação é codificada de várias formas e tem sido o maior desafio do homem descobrir como decodificá-la e aplicá-la em benefício próprio. Um bom exemplo de informação codificada naturalmente é o
genoma. No genoma a informação é codificada numa sequência composta pelos elementos orgânicos citosina, timina, adenina, guanina, (C T A G). Sabemos que essa sequência é utilizada na reprodução de um indivíduo biológico, atribuindo a ele características que o tornam pertencente a uma espécie em particular. Dependendo de quais e onde esses símbolos estão dispostos na sequência genética. Desse modo, podemos considerar o
código genético como uma “linguagem de computador da mãe natureza” composta pelos 4 símbolos CTAG já citados. No processo reprodutivo, esse código é executado por uma máquina biológica, gerando uma pseudo cópia de si mesma. O curioso é que essa máquina biológica possui um comportamento muito semelhante a uma
máquina de Turing.

Ilustração de genoma (Wikipédia)
Nós, seres humanos, utilizamos de várias formas para transmitir informação. A forma mais comum é a linguagem natural onde adotamos um conjunto de símbolos em particular conhecido como
alfabeto. Nosso
alfabeto latino básico possui 26 símbolos, também conhecidos como letras. Através desses símbolos construímos sentenças pelas quais é possível o intercâmbio de informação entre pessoas.
Uma das formas mais simples de alfabeto possível para se codificar informação é o alfabeto binário, ou seja, um alfabeto que contém cardinalidade igual a 2 (apenas dois símbolos no conjunto). Um alfabeto binário pode ter de gerar sequencias maiores de que um alfabeto de 10 ou 26 símbolos para codificar a mesma quantidade de informação, mas em compensação a geração, interpretação e processamento desses símbolos acaba por se tornar algo bem mais simples. A imagem abaixo mostra a quantidade de símbolos usada na representação de uma mesma informação (no caso o número decimal 2548693521).
Sistemas hexadecimal, decimal e binário representando informação
A simplicidade simbólica dos
códigos binários levou a criação de máquinas que conseguiam representar, processar e interpretar esses símbolos. Isso em grande parte decorreu do fato de que quando codificamos a informação assumindo somente um alfabeto de dois símbolos, ou duas possibilidades de representação possíveis, podemos utilizar de lógica (verdadeiro e falso) para resolver nossos problemas. Provavelmente pela natureza e a forma como os computadores digitais surgiram, essencialmente para realizar cálculos como grandes calculadoras militares, os símbolos adotados no alfabeto binário usado no desenvolvimento de programas de baixo nível para essas máquinas acabaram sendo os números 0 e 1.
Em um artigo anterior intitulado “
Portas Lógicas, o lego do mundo eletrônico” falamos sobre os elementos lógicos básicos responsáveis pelo funcionamento dos processadores, porém não entramos em muitos detalhes em relação a como zeros e uns são representados pela eletrônica contida nos chips. Sabemos que o processador é o componente principal de um computador, pois cabe a ele entender e executar as instruções contidas em um alfabeto binário de programação, mas como os símbolos são representados dentro do chip ainda é um mistério para muitos. Não podemos dar lápis, papel e borracha para um processador executar seus programas, mas podemos dar a ele algo muito melhor...
eletricidade!
Num primeiro momento pode ser difícil criar uma relação entre a eletricidade e a codificação de informação, mas acredite, isso não é algo tão difícil quanto parece. No artigo “
Fontes, porque precisamos delas” explico superficialmente como a
corrente elétrica se comporta em a relação tensão elétrica. Esse conhecimento pode ajudar ao tentarmos entender o funcionamento interno de um processador em seu nível eletrônico.
Como posso criar uma representação do alfabeto de 0s e 1s se só disponho de eletricidade para isso? Bem, como expliquei no artigo sobre fontes, é possível controlar o fluxo de corrente elétrica em um circuito controlando sua tensão elétrica. Dessa maneira é possível, por exemplo, aplicar 0 volts na saída de um circuito para representar o símbolo 0 e depois trocar para 5 volts para representar o símbolo 1. Mas isso nos deixa uma outra pergunta: Como realizar eletronicamente as trocas entre 0 e 5 volts, ou seja, zeros e uns?
Para resolver o problema do chaveamento (troca) entre os zeros e uns dentro dos circuitos do processador utilizamos um componente eletrônico inventado em 1947, cujo projeto levou seus inventores ao prêmio Nobel de física alguns anos depois. O invento revolucionário foi batizado de
transistor. O transistor possui basicamente dois modos de operação, o primeiro como chave eletrônica e o segundo como amplificador de sinais elétricos. No caso dos processadores, é a propriedade de chave que é utilizada para realizar as mudanças entre os zeros e uns dentro do circuito.
O
transistor bipolar possui um símbolo semelhante a letra K e possui 3 terminais, sendo eles o coletor, emissor e a base. O coletor e emissor são terminais por onde a corrente elétrica passa ou é bloqueada, dependo do sinal que é aplicado no terminal base. No símbolo, o emissor é o terminal representado por uma seta, a base é a linha conectada nas “costas” da “letra K” e o coletor fica na posição verticalmente oposta ao emissor.
Transistor bipolar real e seu símbolo
Na imagem acima, o transistor da esquerda é um componente discreto fabricado para ser usado em circuitos eletrônicos, note que ele possui 3 terminais (base, coletor, emissor) para soldagem em uma placa de
circuito impresso (existem inúmeros outros tipos, de tamanhos e formas diferentes). Ao lado direito da figura é possível observar o símbolo representando um transistor bipolar. A representação simbólica do transistor também pode incluir um círculo em volta da “letra K”.
Para entender como um transistor pode controlar nossos zeros e uns precisamos de um circuito eletrônico para caso de estudo. Vou optar inicialmente por um dos circuitos mais simples, o que executa a função NOT, ou seja, a implementação eletrônica da
porta lógica NOT. Observe a imagem abaixo:
Circuito eletrônico que implementa a função NOT
O circuito exibido no diagrama esquemático acima é responsável pela realização da operação lógica NOT onde o valor de entrada (base do transistor) é invertido na saída. O componente em vermelho (R1, R2) é chamado de
resistor e é responsável por limitar a corrente elétrica assim como uma válvula hidráulica limita o fluxo de água em um cano. O componente em azul (T1) é um transistor bipolar que atua como chave (liga/desliga). Note que ligado ao coletor do transistor temos uma tensão de 5 volts, e ligado ao emissor temos o terra (0 volts). A imagem abaixo exibe como a corrente elétrica se comporta em relação à tensão aplicada na entrada do circuito (adotando o
sentido convencional).
Circuitos em funcionamento para entradas diferentes
Na imagem acima, o diagrama do lado esquerdo exibe o fluxo de saída da corrente elétrica em decorrência de uma entrada de 0 volts aplicada na base do transistor. Como esse sinal não o excita para conduzir dizemos que ele está em corte e por esse motivo a ligação com o terra é cortada, fazendo a corrente optar pelo outro caminho. A corrente saindo do circuito à esquerda nos gera um nível lógico igual a 1, ou seja, uma entrada lógica 0 se tornou 1, que é o que consta na primeira linha da tabela verdade da porta lógica NOT. No caso do circuito do lado direito o processo é inverso, como a entrada agora é de 5 volts (que representa o nosso 1 lógico) o transistor é excitado e passa a conduzir num estado conhecido como saturação. Em decorrência disso temos uma ligação direta entre o terra e a saída do circuito, atribuindo zero a ela e fazendo a corrente entrar ao invés de sair, o que nos daria a saída 0 para uma entrada igual a 1 (segunda linha da tabela verdade da porta lógica NOT). Nesse diagrama tomei a liberdade de ignorar a outro fluxo de corrente que segue do polo 5Vcc para o terra, mas ele também existe.
Necessitaríamos de uma boa aula de eletricidade básica aqui para entender todas as particularidades da corrente elétrica em um circuito como esse. Em prol da didática podemos simplificar um pouco as coisas assumindo que a corrente “escolhe” sempre o caminho de menor resistência. Por isso, quando o transistor fecha o circuito (entrada = 1) a corrente ignora o polo de 5 volts com o resistor R1 em série e segue para o terra, por esse ser o caminho de menor resistência. No caso do transistor estar em corte (entrada = 0) a corrente não tem escolha a não ser seguir pelo único caminho disponível, passando pelo resistor e seguindo para a saída. As setas vermelhas no diagrama indicam o sentido convencional da corrente elétrica (do polo positivo para o negativo). Obviamente a corrente que entra ou sai tem de vir ou ir para algum lugar e ela normalmente vem ou vai de outro circuito lógico, cuja entrada está ligada na saída do circuito anterior. Ao trocar de zero para um e vice versa o que o circuito faz na verdade é mudar o sentido da corrente elétrica. Na prática os 5 volts na saída do circuito é na verdade um pouco menor devido a quedas de tensão nos componentes do circuito.
Alguns podem cometer o erro de achar que quando o nível lógico de uma entrada ou saída é zero não há corrente circulando. Isso não é verdade, já que sem corrente elétrica não há trabalho. A ausência de corrente só ocorre quando um circuito está num terceiro estado chamado de alta impedância (resistência infinita a passagem de corrente elétrica), que normalmente só ocorre quando queremos isolar um circuito do outro. Um exemplo disso é quando temos vários chips de memória ligados a um único
barramento (que é o que acontece nos PCs) e queremos ler um dado que está situado em um chip em particular. Como estão todos “pendurados” no mesmo conjunto de fios, estes por sua vez receberão as mesmas requisições de leitura do endereço e vão todos querer responder ao mesmo tempo. Para resolver esse problema, deixamos as saídas dos demais chips no estado de alta impedância e somente o chip que desejamos ler fica ligado ao barramento, evitando o conflito de dados. Pra quem entende um pouco de memórias, isso na verdade é o que barramento de controle faz, além de outras coisas.
A próxima imagem exibe o diagrama do circuito lógico NAND que é uma porta
AND com a saída invertida (NotAND). O que ocorre aqui é que agora temos dois transistores em série e será necessário ligar os dois ao mesmo tempo para a saída ser aterrada e ficar em 0 volts. Isso significa que somente quando as duas entradas A e B forem iguais a 5 volts (1 lógico), e os dois transistores forem excitados, a saída será 0.
Circuito eletrônico que implementa a função NAND
O circuito lógico NOR (
OR invertido) é representado através do esquemático da figura abaixo. Note pela sua tabela verdade que somente quando ambas as entradas estiverem em 0 a saída será 1. Isso ocorre porque é necessário acionar apenas um dos dois transistores para realizar o aterramento da saída, já que ambos estão em paralelo.
Circuito eletrônico que implementa a função NOR
Esses três circuitos que vimos até agora são os mais simples por utilizarem um menor número de transistores e também porque através dos dois últimos é possível construir qualquer circuito lógico, inclusive outras portas lógicas. Por esse motivo, alguns chips são construídos usando somente portas NAND e NOR.
Nas pastilhas dos processadores são implementados milhões de circuitos lógicos semelhantes a esses usando transistores em escala nanométrica, criados em um
processo litográfico. A interligação desses circuitos faz os zeros e uns circularem por eles sendo processados a cada passagem, resultando nas tarefas que o computador e capaz de executar. Quando falamos de circuitos digitais, os níveis lógicos armazenados nos circuitos eletrônicos passam a receber o nome de bit (binary digit), um termo que já estamos muito acostumados a ouvir. É importante salientar que a tecnologia bipolar não é a única usada para construir transistores, também existem os transistores de tecnologia MOS (
Metal Oxide Silicon), entre outros, que são também muito aplicados na construção dos chips modernos.
Nesse artigo tentei mostrar um pouquinho sobre como um computador digital manipula informação de forma binária em seu nível eletrônico. Os zeros e uns são simples o suficiente para a criação de circuitos que os representem e os processem de forma satisfatória.
Hoje em dia a eletrônica evoluiu a um patamar em que é possível representar eletronicamente mais de dois estados, onde seria possível obter sistemas ternários ou até com mais símbolos. Isso envolveria uma matemática mais complexa e uma mudança radical no projeto dos chips, dos compiladores, e até mesmo das linguagens de programação, o que talvez ainda não seja viável.
Vimos que os transistores possuem um papel fundamental na construção das portas lógicas que por sua vez constituem circuitos mais complexos que são usados na criação dos processadores. Se levarmos em consideração a densidade atual dos chips de microprocessadores (bilhões de transistores), já dá pra ter uma ideia do nível tecnológico que chegamos em nossa jornada pelo domínio da tão preciosa informação.