Rss

quinta-feira, 13 de setembro de 2012

Computadores de relés

Vimos na coluna anterior que, ao fim e ao cabo, um computador digital não passa de um conjunto de chaveadores de corrente judiciosamente combinados.
Talvez o leitor imagine que estou simplificando excessivamente a coisa. Ou que isto apenas valia para os primeiros computadores digitais, fabricados nos anos trinta e quarenta do século passado, sendo os de hoje máquinas muitíssimo mais complexas. Mas não é assim. No que diz respeito ao objetivo essencial dos computadores, o processamento de dados, ela permanece válida inclusive para as máquinas de última geração.
Creio que isto deve surpreender muita gente. E mais: imagino que haja quem duvide e queira provas. E, mesmo entre os que não duvidam, haverá muitos que gostariam de saber como máquinas aparentemente tão complexas e com tamanho poder de processamento podem ser concebidas meramente combinando chaveadores de corrente que, afinal, nada mais são que simples interruptores acionados eletricamente. Tanto assim que, em uma das redes sociais que costumo usar para divulgar a publicação de minhas colunas, uma leitora postou um comentário mais ou menos do tipo “tudo bem, agora só falta explicar como funciona”.
Bem, aqui não dá. Afinal a proposta inicial desta série de colunas foi discorrer sobre os transistores (que como sabem os que a vêm acompanhando, em nossos computadores funcionam como chaveadores de corrente) e sua importância para a sociedade moderna usando sempre uma linguagem acessível a leigos e totalmente despida de detalhes técnicos desnecessários. Mas eu compreendo que nem todos os leitores são leigos e que há aqueles que não se contentarão com explicações tão sucintas e estão ávidos por detalhes.
Ora, mas se não dá para inclui-los aqui, nada me impede de informar onde eles podem ser encontrados (sempre usando uma linguagem tão simples quanto possível). Então vamos nessa.
Para saber o que é um transistor e como ele funciona basta consultar a segunda coluna desta série, “Transistores para principiantes”. E para saber como interliga-los de forma que um transistor seja controlado por outro leia a terceira, “Controlando um transistor com outro”.
Quem quiser saber na prática como transistores podem ser combinados para emular portas lógicas pode obter detalhes na coluna “Misturando transistores” que publiquei alhures há alguns anos e que costumo distribuir como material de consulta a meus alunos da disciplina “Arquitetura de Computadores” (juntamente com as demais citadas neste parágrafo). E quem desejar entender como estas portas lógicas, constituídas de transistores, podem ser conectadas para materializar os circuitos que representam expressões da Álgebra Booleana pode consultar a coluna “Portas Lógicas” e a subsequente, “Diagramas Lógicos”. E, finalmente, quem desejar resolver o aparente mistério de como é possível efetuar operações aritméticas, decodificar instruções e montar células de memória apenas usando portas lógicas, pode fazê-lo lendo, nesta ordem, as colunas “Aprendendo a Somar” e “Multiplexadores, decodificadores e flip-flops”.
Pronto. Agora, que os mais ávidos por detalhes já sabem como saciar sua curiosidade técnica, vamos adiante no caminho dos leigos.
A tese de mestrado de Shannon, considerada a mais importante do século passado, abriu caminho para a fabricação dos computadores digitais usando relés.
O primeiro deles foi a máquina desenvolvida por Howard Aiken de 1944 a 1947 na Universidade de Harvard e conhecido por Harvard Mark II por se tratar do segundo modelo de computador desenvolvido por Aiken (antes dele, em 1944, Aiken finalizou a montagem de uma máquina analógica, o Mark I, um computador eletromecânico que, além de relés, empregava comutadores, eixos rotativos e engrenagens, com quase 800 mil componentes e pesando quatro e meia toneladas).
O Mark II, de cujo projeto participou Grace Hopper, era uma máquina inteiramente digital usando relés eletromagnéticos de alta velocidade que levava 0,125 segundos para efetuar uma soma e 0,75 segundos para uma multiplicação na frequência de 8 Hz. Por extenso para deixar claro que não foi erro de digitação: oito Hertz. Quem hoje tem em sua mesa de trabalho computadores de 4 GHz, quinhentos milhões de vezes mais rápidos, não estranhe: afinal o Mark II usava relés e o seu usa transistores.
Figura 1: Harvard Mark IIFigura 1: Harvard Mark II (Foto: Reprodução)
Embora não fosse ainda uma máquina de programa armazenado (para os especialistas: não adotava a arquitetura de Von Neumann, concebida alguns anos depois), o Mark II pode ser considerado um “computador” segundo os conceitos modernos, já que era uma máquina programável (usava a “Arquitetura Harvard”, na qual as instruções eram lidas sequencialmente de uma fita perfurada). Assim, o Mark II foi o primeiro computador digital que usava relés fabricado nas Américas.
Aos que se interessam por curiosidades: como mencionei, Grace Hopper participou do projeto do Mark II. Mas não apenas do projeto. Foi esta mulher admirável quem editou o manual de operação e programação da máquina, um formidável volume de mais de quinhentas páginas, e também foi ela que, após a máquina ter sido entregue à Marinha dos EUA que a havia encomendado (Grace Hopper seguiu a carreira militar e atingiu o posto de Almirante), foi responsável por sua operação.
Durante o tempo em que desenvolvia programas e os executava no Mark II, Hopper se destacou por duas razões. A primeira, praticamente esquecida, foi a concepção da linguagem Assembly. Até então, toda a programação dos computadores era feita usando diretamente a chamada “linguagem de máquina”, na qual as instruções e operandos são representados diretamente por seus valores numéricos em binário. Ao criar a linguagem Assembly, Hopper facilitou enormemente a programação substituindo estes números por palavras que faziam alusão a eles, ou seja, pelo uso de instruções na forma de “mnemônicos”.
A segunda razão – e, por esta, Grace é lembrada até hoje – foi o fato de ela ter sido responsável pela primeira menção do termo “bug” correlacionado a um erro de programação. Isto porque, sendo o Mark II um computador de relés, certa feita uma mariposa (um inseto, “bug” em inglês) se intrometeu entre dois contatos de um deles, provocando um erro intermitente. Após muito examinar a máquina, Grace encontrou a mariposa e a prendeu com fita adesiva ao livro de ocorrências, informando ser aquele o “bug” que provocava o erro no programa. Mais detalhes sobre a vida desta mulher formidável e sobre a história do primeiro “bug” podem ser encontrados na coluna “A almirante e a mariposa”.
Estranhou a menção feita pouco acima informando ter sido o Mark II o primeiro computador digital que usava relés “fabricado nas Américas”? Bem, acontece que antes dele houve outros, que nada tinham a ver com os trabalhos de Shannon, fabricados na Europa. Mais precisamente na Alemanha por um esquecido pioneiro da informática mas nem por isto menos genial: Konrad Zuse. Que, dois anos antes da publicação da tese de Shannon, iniciou o projeto de um computador digital também usando relés, cujo protótipo, que batizou de V1 (de “Versuchsmodell”, modelo experimental), foi concluído em 1938.
Figura 2: Z1, o protótipo da máquina de Zuse.Figura 2: Z1, o protótipo da máquina de Zuse (Foto: Reprodução)
Aqueles eram tempos difíceis na Europa, particularmente na Alemanha que se preparava para a segunda guerra mundial. Zuse apresentou seu projeto às autoridades do governo que não o acharam suficientemente importante para receber apoio na época em que todos os recursos do país estavam voltados para o esforço de guerra. Zuse tocou então seu projeto sem qualquer apoio oficial. O V1 foi, literalmente, uma máquina “feita em casa”. Veja na Figura 2, obtida do sítio History of Computers de Georgi Dalakov, a máquina montada no quarto de Zuse na casa de seus pais.
Há quem considere, aparentemente com justiça, que o V1 (cujo nome anos mais tarde foi alterado pelo próprio Zuse para Z1 para evitar associações indevidas com as “bombas voadoras” desenvolvida pelos alemães no final da Segunda Guerra Mundial) o primeiro computador digital com relés. Em 1939 Zuse montou o Z2, um aperfeiçoamento de seu primeiro modelo e, em 1941, já em plena guerra, montou e demonstrou o Z3, uma máquina digital programável fabricada totalmente com relés (um total de 2.400 deles, 1.400 usados na memória primária, 600 para a unidade lógica e aritmética e 400 na unidade de controle). Efetivamente o Z3 foi o primeiro computador digital de programa armazenado inteiramente funcional. Mas pouco se fala dele pois em tempos de guerra não havia intercâmbio técnico e científico entre os adversários e a história é escrita pelos vencedores,
Mas não só por isto: como Zuse trabalhava praticamente isolado na Alemanha, suas realizações não integraram o encadeamento de ideias que levou ao desenvolvimento dos computadores modernos que foi todo feito nos EUA. Porém, mesmo não tendo participado dos esforços conjuntos que levaram às máquinas modernas, o papel de Zuse como pioneiro da informática não pode ser desprezado. Foi um gênio e, como tal, merece todo nosso respeito, admiração e homenagens. A quem quiser saber mais sobre os feitos deste admirável pioneiro, sugiro a leitura do artigo “Konrad Zuse—the first relay computer”.
Houve outras máquinas com relés, mas nenhuma delas teve muita importância. Isto porque embora excelentes chaveadores de corrente, os relés eram lentos e logo foram substituídos por um componente muito mais rápido.
Qual foi este componente e quais as máquinas fabricadas com ele veremos na próxima coluna.
via techtudo