EDSAC

format_list_bulleted Contenido keyboard_arrow_down
ImprimirCitar
1940s-1950s computador britânico

O Electronic Delay Storage Automatic Calculator (EDSAC) foi um dos primeiros computadores britânicos. Inspirado pelo seminal Primeiro rascunho de um relatório sobre o EDVAC de John von Neumann, a máquina foi construída por Maurice Wilkes e sua equipe no Laboratório de Matemática da Universidade de Cambridge, na Inglaterra. O EDSAC foi o segundo computador digital eletrônico com programa armazenado a entrar em serviço regular.

Mais tarde, o projeto foi apoiado pela J. Lyons & Co. Ltd., com a intenção de desenvolver um computador aplicado comercialmente e com sucesso em Lyons' desenvolvimento do LEO I, baseado no projeto EDSAC. O trabalho no EDSAC começou em 1947 e executou seus primeiros programas em 6 de maio de 1949, quando calculou uma tabela de números quadrados e uma lista de números primos. O EDSAC foi finalmente fechado em 11 de julho de 1958, tendo sido substituído pelo EDSAC 2, que permaneceu em uso até 1965.

Visão geral técnica

Componentes físicos

Tubos de 9 polegadas usados para monitoramento
William Renwick com leitor de fita de 5 buracos e teleprinter Creed

Assim que o EDSAC entrou em operação, ele começou a atender às necessidades de pesquisa da universidade. Ele usava linhas de atraso de mercúrio para memória e tubos de vácuo reduzidos para lógica. O consumo de energia foi de 11 kW de eletricidade. O tempo de ciclo foi de 1,5 ms para todas as instruções comuns, 6 ms para multiplicação. A entrada era feita por meio de fita perfurada de cinco orifícios e a saída por meio de um teleimpressor.

Inicialmente, os registradores eram limitados a um registrador acumulador e um registrador multiplicador. Em 1953, David Wheeler, retornando de uma estadia na Universidade de Illinois, projetou um registrador de índice como uma extensão do hardware EDSAC original.

Uma unidade de fita magnética foi adicionada em 1952, mas nunca funcionou suficientemente bem para ser de uso real.

Até 1952, a memória principal disponível (instruções e dados) era de apenas 512 palavras de 18 bits e não havia armazenamento de apoio. As linhas de atraso (ou "tanques") foram organizadas em duas baterias fornecendo 512 palavras cada. A segunda bateria entrou em operação em 1952.

O armazenamento completo da linha de atraso de 1024 palavras não estava disponível até 1955 ou início de 1956, limitando os programas a cerca de 800 palavras até então.

John Lindley (estudante de diploma de 1958–1959) mencionou "a incrível dificuldade que sempre tivemos para produzir um único pedaço correto de fita de papel com o equipamento caseiro de perfuração, impressão e verificação grosseiro e não confiável disponível no final anos 50".

Memória e instruções

Maurice Wilkes inspecionando a linha de atraso de mercúrio do EDSAC em construção
Maurice Wilkes e Bill Renwick em frente ao EDSAC completo

A memória principal do EDSAC consistia em 1024 locais, embora apenas 512 locais tenham sido inicialmente instalados. Cada um continha 18 bits, mas o bit superior estava sempre indisponível devido a problemas de tempo, então apenas 17 bits foram usados. Uma instrução consistia em um código de instrução de 5 bits, 1 bit sobressalente, um operando de 10 bits (geralmente um endereço de memória) e 1 bit de comprimento para controlar se a instrução usava um operando de 17 ou 35 bits (dois bits consecutivos). palavras, little-endian). Todos os códigos de instrução foram por design representados por uma letra mnemônica, de modo que a instrução Adicionar, por exemplo, usou o código de caractere EDSAC para a letra A.

Internamente, o EDSAC usava números binários em complemento de dois. Os números tinham 17 bits (uma palavra) ou 35 bits (duas palavras). Excepcionalmente, o multiplicador foi projetado para tratar números como frações de ponto fixo no intervalo −1 ≤ x < 1, ou seja, o ponto binário estava imediatamente à direita do sinal. O acumulador pode conter 71 bits, incluindo o sinal, permitindo que dois números longos (35 bits) sejam multiplicados sem perda de precisão.

As instruções disponíveis eram:

  • Adicionar
  • Substância
  • Multiplica-e-add
  • E-e-add (chamado "Collate")
  • Shift esquerda
  • Mudança aritmética direita
  • Registo de multiplicador de carga
  • Acumulador de loja (e opcionalmente claro)
  • Goto condicional
  • Leia fita de entrada
  • Característica de impressão
  • acumulador redondo
  • Não.
  • Pára!

Não havia nenhuma instrução de divisão (mas várias sub-rotinas de divisão foram fornecidas) e nenhuma maneira de carregar diretamente um número no acumulador (uma instrução "sTore e zero acumulador" seguida por um "Adicionar" 34; instrução era necessária para isso). Não havia instrução de salto incondicional, nem instrução de chamada de procedimento - ainda não havia sido inventado.

Maurice Wilkes discutiu os modos de endereçamento relativos para o EDSAC em um artigo publicado em 1953. Ele estava fazendo as propostas para facilitar o uso de sub-rotinas.

Software do sistema

As ordens iniciais foram conectadas em um conjunto de interruptores uniseletores e carregadas nas palavras baixas da memória na inicialização. Em maio de 1949, os pedidos iniciais forneciam um montador de realocação primitivo aproveitando o design mnemônico descrito acima, tudo em 31 palavras. Este foi o primeiro montador do mundo e, sem dúvida, o início da indústria global de software. Existe uma simulação do EDSAC disponível e uma descrição completa dos pedidos iniciais e dos primeiros programas.

O primeiro cálculo feito pelo EDSAC foi um programa de números quadrados executado em 6 de maio de 1949. O programa foi escrito por Beatrice Worsley, que viajou do Canadá para estudar a máquina.

A máquina foi usada por outros membros da universidade para resolver problemas reais, e muitas técnicas iniciais foram desenvolvidas que agora estão incluídas nos sistemas operacionais.

Os usuários preparavam seus programas perfurando-os (no assembler) em uma fita de papel. Eles logo se tornaram bons em segurar a fita de papel contra a luz e ler os códigos. Quando um programa estava pronto, era pendurado em um pedaço de linha perto do leitor de fita de papel. Os operadores das máquinas, presentes durante o dia, selecionavam a próxima fita da linha e a carregavam no EDSAC. É claro que isso é bem conhecido hoje como filas de trabalho. Se imprimisse algo, a fita e a impressão eram devolvidas ao usuário, caso contrário, ele era informado em qual local da memória havia parado. Os depuradores demoraram algum tempo, mas uma tela de tubo de raios catódicos poderia ser configurada para exibir o conteúdo de uma parte específica da memória. Isso foi usado para ver se um número estava convergindo, por exemplo. Um alto-falante foi conectado ao bit de sinal do acumulador; usuários experientes conheciam sons saudáveis e não saudáveis de programas, particularmente programas "hung" em um loop.

Após o horário comercial, determinados "usuários autorizados" foram autorizados a operar a máquina por conta própria, o que durou até tarde da noite até que uma válvula estourou - o que geralmente acontecia de acordo com um desses usuários. Isso é mencionado por Fred Hoyle em seu romance The Black Cloud.

Técnica de programação

EDSAC mesa de monitoramento

Os primeiros programadores tiveram que fazer uso de técnicas desaprovadas hoje - em particular, o uso de código automodificável. Como não havia registro de índice até muito mais tarde, a única maneira de acessar um array era alterar a localização da memória que uma determinada instrução estava referenciando.

David Wheeler, que obteve o primeiro PhD em Ciência da Computação do mundo trabalhando no projeto, é considerado o inventor do conceito de sub-rotina. Os usuários escreviam programas que chamavam uma rotina saltando para o início da sub-rotina com o endereço de retorno (ou seja, a localização mais um do próprio salto) no acumulador (um Wheeler Jump). Por convenção, a sub-rotina esperava isso, e a primeira coisa que fez foi modificar sua instrução de salto final para aquele endereço de retorno. Sub-rotinas múltiplas e aninhadas podem ser chamadas desde que o usuário saiba o comprimento de cada uma para calcular o local para o qual saltar; chamadas recursivas eram proibidas. O usuário então copiava o código para a sub-rotina de uma fita master para sua própria fita após o final de seu próprio programa. (No entanto, Turing discutiu sub-rotinas em um artigo de 1945 sobre propostas de design para o NPL ACE, chegando ao ponto de inventar o conceito de uma pilha de endereço de retorno, que permitiria a recursão.)

A falta de um registrador de índice também representava um problema para o criador de uma sub-rotina, pois eles não podiam saber com antecedência onde a sub-rotina seria carregada na memória e, portanto, não podiam saber como endereçar nenhuma região do código que foram utilizados para armazenamento de dados (as chamadas "pseudo-ordens"). Isso foi resolvido com o uso de uma rotina de entrada inicial, responsável por carregar as sub-rotinas da fita perfurada na memória. Ao carregar uma sub-rotina, ele anotaria o local inicial e incrementaria as referências de memória interna conforme necessário. Assim, como escreveu Wilkes, “o código usado para representar ordens fora da máquina difere daquele usado dentro da máquina, sendo as diferenças ditadas pelos diferentes requisitos do programador, por um lado, e dos circuitos de controle da máquina, por outro. o outro".

Os programadores do EDSAC usaram técnicas especiais para fazer o melhor uso da limitada memória disponível. Por exemplo, no momento de carregar uma sub-rotina de uma fita perfurada na memória, pode acontecer que uma determinada constante tenha que ser calculada, uma constante que não precise de recálculo subseqüentemente. Nesta situação, a constante seria calculada em um "interlúdio". O código necessário para calcular a constante seria fornecido junto com a sub-rotina completa. Após a rotina de entrada inicial ter carregado o código de cálculo, ela transferiria o controle para esse código. Depois que a constante foi calculada e gravada na memória, o controle retornaria à rotina de entrada inicial, que continuaria a gravar o restante da sub-rotina na memória, mas primeiro ajustando seu ponto de partida para sobrescrever o código que calculou a constante. Isso permitia que ajustes bastante complicados fossem feitos em uma sub-rotina de propósito geral sem tornar sua pegada final na memória maior do que se tivesse sido adaptada para uma circunstância específica.

Software aplicativo

O conceito de sub-rotina levou à disponibilidade de uma biblioteca substancial de sub-rotina. Em 1951, 87 sub-rotinas nas seguintes categorias estavam disponíveis para uso geral: aritmética de ponto flutuante; operações aritméticas em números complexos; verificação; divisão; exponenciação; rotinas relativas a funções; equações diferenciais; funções especiais; série de potências; logaritmos; Diversos; impressão e diagramação; quadratura; ler (entrada); nésima raiz; funções trigonométricas; operações de contagem (simulando loops repeat until, while loops e for loops); vetores; e matrizes.

A primeira linguagem assembly apareceu para o EDSAC e inspirou várias outras linguagens assembly:

Ano Nome Desenvolvedor chefe, empresa
1951 Língua da Assembleia Regional Maurice Wilkes
1951 Montador de vento Charles Adams e Jack Gilmore no MIT
1951 Montador de Rochester Nat Rochester

Aplicações do EDSAC

O EDSAC foi concebido especificamente para fazer parte do serviço de apoio ao cálculo do Laboratório de Matemática. O primeiro artigo científico a ser publicado usando um computador para cálculos foi de Ronald Fisher. Wilkes e Wheeler usaram o EDSAC para resolver uma equação diferencial relacionada às frequências gênicas para ele. Em 1951, Miller e Wheeler usaram a máquina para descobrir um primo de 79 dígitos - o maior conhecido na época.

Os vencedores de três prêmios Nobel – John Kendrew e Max Perutz (Química, 1962), Andrew Huxley (Medicina, 1963) e Martin Ryle (Física, 1974) – se beneficiaram do revolucionário poder de computação da EDSAC. Em seus discursos de premiação, cada um reconheceu o papel que o EDSAC desempenhou em sua pesquisa.

No início dos anos 1960, Peter Swinnerton-Dyer usou o computador EDSAC para calcular o número de pontos módulo p (indicado por Np) para um grande número de primos p em curvas elípticas cujo posto era conhecido. Com base nesses resultados numéricos, Birch & Swinnerton-Dyer (1965) conjecturou que Np para uma curva E com posto r obedece a uma lei assintótica, a conjectura de Birch e Swinnerton-Dyer, considerada um dos principais problemas não resolvidos da matemática em 2022.

O "cérebro" [computador] pode um dia descer ao nosso nível [das pessoas comuns] e ajudar com os nossos cálculos de renda e contabilidade. Mas isso é especulação e não há sinal disso até agora.

Jornal britânico A Estrela em um artigo de notícias de junho de 1949 sobre o computador EDSAC, muito antes da era dos computadores pessoais.

Jogos

Em 1952, Sandy Douglas desenvolveu OXO, uma versão do jogo da velha (jogo da velha) para o EDSAC, com saída gráfica para um VCR97 6" tubo de raios catódicos. Este pode muito bem ter sido o primeiro videogame do mundo.

Outro videogame foi criado por Stanley Gill e envolvia um ponto (denominado ovelha) se aproximando de uma linha na qual um dos dois portões poderia ser aberto. O jogo de Stanley Gill era controlado pelo feixe de luz do leitor de fita de papel do EDSAC. Interrompê-lo (como pelo jogador colocando a mão nele) abriria o portão superior. Deixar o feixe ininterrupto resultaria na abertura do portão inferior.

Outros desenvolvimentos

O sucessor do EDSAC, o EDSAC 2, foi comissionado em 1958.

Em 1961, uma versão EDSAC 2 do Autocode, uma linguagem de programação de alto nível semelhante a ALGOL para cientistas e engenheiros, foi desenvolvida por David Hartley.

Em meados da década de 1960, um sucessor do EDSAC 2 foi planejado, mas a mudança foi feita para o Titan, um protótipo do Atlas 2 desenvolvido a partir do Computador Atlas da Universidade de Manchester, Ferranti e Plessey.

Projeto de réplica EDSAC

EDSAC réplica em outubro de 2018

Em 13 de janeiro de 2011, a Computer Conservation Society anunciou que planejava construir uma réplica funcional do EDSAC, no National Museum of Computing (TNMoC) em Bletchley Park, supervisionado por Andrew Herbert, que estudou com Maurice Wilkes. As primeiras partes da réplica foram ligadas em novembro de 2014. O projeto em andamento está aberto aos visitantes do museu. Em 2016, duas operadoras originais do EDSAC, Margaret Marrs e Joyce Wheeler, visitaram o museu para auxiliar no projeto. Em novembro de 2016, o comissionamento do estado totalmente concluído e operacional da réplica foi estimado para o outono de 2017. No entanto, atrasos imprevistos no projeto resultaram em uma data desconhecida para uma máquina concluída e totalmente operacional.

Contenido relacionado

Engelbert Dollfuss

Engelbert Dollfuß foi um político austríaco da Frente Pátria que serviu como chanceler da Áustria entre 1932 e 1934. Tendo servido como Ministro das...

Abner Doubleday

Abner Doubleday foi um oficial de carreira do Exército dos Estados Unidos e major-general da União na Guerra Civil Americana. Ele disparou o primeiro tiro...

Sintetizador digital

Um sintetizador digital é um sintetizador que usa técnicas de processamento de sinal digital para produzir sons musicais. Isso contrasta com os...
Más resultados...
Tamaño del texto:
undoredo
format_boldformat_italicformat_underlinedstrikethrough_ssuperscriptsubscriptlink
save