O Manchester Baby, também chamado de Small-Scale Experimental Machine (SSEM), foi o primeiro computador eletrônico com programa armazenado. Foi construído na pelos pesquisadores Frederic Calland Williams, Tom Kilburn e , e executou seu primeiro programa em 21 de junho de 1948.

O Baby não foi concebido para ser um motor de computação prático, mas sim como um banco de ensaio para o tubo de Williams, a primeira memória de acesso aleatório verdadeiramente aleatório. Descrito como “pequeno e primitivo”, cinquenta anos após a sua criação, foi a primeira máquina funcional a conter todos os elementos essenciais a um computador digital eletrônico moderno. Assim que o Baby demonstrou a viabilidade de seu projeto, foi iniciado um projeto na universidade para desenvolvê-lo em uma máquina operacional em escala real, o Manchester Mark I. O Mark I, por sua vez, rapidamente se tornou o protótipo do , o primeiro computador de uso geral comercialmente disponível no mundo.

O Baby tinha um comprimento de palavra de 32 bits e uma memória de 32 palavras (1 kibibit, 1.024 bits). Como foi projetado para ser o computador com programa armazenado mais simples possível, as únicas operações aritméticas implementadas no hardware eram subtração e inverso aditivo; outras operações aritméticas eram implementadas no software. O primeiro dos três programas escritos para a máquina calculava o maior divisor próprio de 218 (262.144), testando todos os números inteiros de 218 para baixo. Esse algoritmo levaria muito tempo para ser executado, e assim provaria a confiabilidade do computador, já que a divisão era implementada pela subtração repetida do divisor. O programa consistia em 17 instruções e foi executado por cerca de 52 minutos antes de chegar à resposta correta de 131.072, depois que o Baby realizou cerca de 3,5 milhões de operações (para uma velocidade efetiva da CPU de cerca de 1.100 ).

Contexto

miniaturadaimagem|Representação artística de uma máquina de Turing O primeiro projeto de um computador controlado por programa foi a Máquina Analítica desenvolvida pelo britânico Charles Babbage, na década de 1830, com a matemática britânica Ada Lovelace concebendo a ideia do primeiro programa teórico para calcular os números de Bernoulli. Após um século, em 1936, o também matemático britânico Alan Turing publicou sua descrição do que ficou conhecido como máquina de Turing, um conceito teórico destinado a explorar os limites da computação mecânica. Turing não estava imaginando uma máquina física, mas uma pessoa que ele chamou de “computador”, que agia de acordo com as instruções fornecidas por uma fita na qual símbolos podiam ser lidos e escritos sequencialmente à medida que a fita se movia sob um cabeçote. Turing provou que, se um algoritmo pode ser escrito para resolver um problema matemático, então uma máquina de Turing pode executar esse algoritmo.

O Z3, concebido pelo pesquisador alemão Konrad Zuse foi o primeiro computador programável e totalmente automático do mundo, com lógica aritmética digital binária, mas não possuía o ramal condicional de uma máquina de Turing. Em 12 de maio de 1941, o Z3 foi apresentado com sucesso a uma plateia de cientistas do Deutsche Versuchsanstalt für Luftfahrt em Berlim. O Z3 armazenava seu programa em uma fita externa, mas era eletromecânico, e não eletrônico. Os primeiros dispositivos eletrônicos de computação foram o computador Atanasoff–Berry, testado com sucesso em 1942, e o Colossus, de 1943, mas nenhum deles era uma máquina com programa armazenado.

O ENIAC, de 1946, foi o primeiro computador automático que era eletrônico e de uso geral. Era Turing completo, com ramificação condicional e programável para resolver uma ampla gama de problemas, mas seu programa era mantido no estado de interruptores em cabos de conexão, em vez de memória alterável pela máquina, e podia levar vários dias para ser reprogramado. Pesquisadores como Turing e Zuse investigaram a ideia de usar a memória do computador para armazenar o programa, bem como os dados em que estava trabalhando, e foi o matemático John von Neumann quem escreveu um artigo amplamente divulgado descrevendo essa arquitetura de computador, ainda usada em quase todos os computadores.

A construção de um computador von Neumann dependia da disponibilidade de um dispositivo de memória adequado para armazenar o programa. Durante a Segunda Guerra Mundial, pesquisadores que trabalhavam no problema de remover o ruído dos sinais de radar desenvolveram uma forma de memória de linha de atraso, cuja primeira aplicação prática foi a de mercúrio, desenvolvida por John Presper Eckert. Os transmissores de radar enviam pulsos regulares e breves de energia de rádio, cujos reflexos são exibidos em uma tela CRT. Como os operadores geralmente estão interessados apenas em alvos móveis, era desejável filtrar quaisquer reflexos perturbadores de objetos estacionários. A filtragem era obtida comparando cada pulso recebido com o pulso anterior e rejeitando ambos se fossem idênticos, deixando um sinal contendo apenas as imagens de quaisquer objetos em movimento. Para armazenar cada pulso recebido para comparação posterior, ele era passado por uma linha de transmissão, atrasando-o exatamente pelo tempo entre os pulsos transmitidos.

Turing ingressou no Laboratório Nacional de Física (NPL) em outubro de 1945, época em que os cientistas do Ministério do Abastecimento concluíram que a Grã-Bretanha precisava de um Laboratório Nacional de Matemática para coordenar os cálculos auxiliados por máquinas. Foi criada uma Divisão de Matemática no NPL e, em 19 de fevereiro de 1946, Turing apresentou um artigo descrevendo seu projeto para um computador eletrônico com programa armazenado, que ficaria conhecido como Automatic Computing Engine (ACE). Esse foi um dos vários projetos criados nos anos após o término da Segunda Guerra Mundial com o objetivo de construir um computador com programa armazenado. Na mesma época, o EDVAC estava em desenvolvimento na da Universidade da Pensilvânia, e o estava trabalhando no EDSAC.

O NPL não tinha o conhecimento necessário para construir uma máquina como a ACE, então entraram em contato com , do Laboratório de (GPO). Flowers, o projetista do Colossus, o primeiro computador eletrônico programável do mundo, estava comprometido com outro projeto e não pôde participar do projeto, embora sua equipe tenha construído algumas linhas de atraso de mercúrio para o ACE. O (TRE) também foi procurado para ajudar, assim como Maurice Wilkes, do .

O departamento governamental responsável pelo NPL decidiu que, de todo o trabalho realizado pelo TRE em seu nome, o ACE deveria receber a máxima prioridade. A decisão do NPL levou a uma visita do superintendente da Divisão de Física do TRE em 22 de novembro de 1946, acompanhado por Frederic Calland Williams e A. M. Uttley, também do TRE. Williams liderava um grupo de desenvolvimento do TRE que trabalhava em armazenamentos CRT para aplicações de radar, como alternativa às linhas de atraso. Williams não estava disponível para trabalhar no ACE porque já havia aceitado um cargo de professor na , e a maioria de seus técnicos de circuitos estava em processo de transferência para o Departamento de Energia Atômica. O TRE concordou em destacar um pequeno número de técnicos para trabalhar sob a direção de Williams na universidade e apoiar outro pequeno grupo que trabalhava com Uttley no TRE.

Tubo de Williams

miniaturadaimagem|Placa comemorativa do Instituto de Engenheiros Elétricos e Eletrônicos (IEEE) em homenagem ao Manchester Baby e seus derivados. A legenda diz: "MARCO DO IEEE: Computador “Baby” da Universidade de Manchester e seus derivados, 1948-1951. Neste local, em 21 de junho de 1948, o “Baby” se tornou o primeiro computador a executar um programa armazenado em memória eletrônica endereçável de leitura e gravação. O “Baby” validou as memórias de acesso aleatório Tubo de Williams, posteriormente amplamente utilizadas, e levou ao Manchester Mark I de 1949, pioneiro em registros de índice. Em fevereiro de 1951, o derivado comercial da Ferranti Ltd tornou-se o primeiro computador eletrônico comercializado como um produto padrão entregue a um cliente. Junho de 2022". Embora alguns dos primeiros computadores, como o EDSAC, inspirado no design do EDVAC, tenham posteriormente utilizado com sucesso a memória de linha de atraso de mercúrio, a tecnologia apresentava várias desvantagens: era pesada, de alto custo e não permitia o acesso aleatório aos dados. Além disso, como os dados eram armazenados como uma sequência de ondas acústicas propagadas através de uma coluna de mercúrio, a temperatura do dispositivo tinha que ser controlada com muito cuidado, pois a velocidade do som através de um meio varia com a temperatura. Williams tinha visto um experimento na Bell Labs que demonstrava a eficácia dos tubos de raios catódicos (CRT) como alternativa à linha de atraso para remover ecos terrestres dos sinais de radar. Enquanto trabalhava na TRE, pouco antes de ingressar na Universidade de Manchester em dezembro de 1946, Williams e Tom Kilburn desenvolveram uma forma de memória eletrônica conhecida como tubo de Williams ou tubo Williams-Kilburn, baseada em um CRT padrão: o primeiro dispositivo eletrônico de armazenamento digital de acesso aleatório. O Baby foi projetado para mostrar que era um dispositivo de armazenamento prático, demonstrando que os dados armazenados nele podiam ser lidos e gravados de forma confiável a uma velocidade adequada para uso em um computador.

Para ser usado em um computador digital binário, o tubo precisava ser capaz de armazenar um dos dois estados em cada um dos seus locais de memória, correspondendo aos dígitos binários (bits) 0 e 1. Ele explorava a carga elétrica positiva ou negativa gerada pela exibição de um traço ou um ponto em qualquer posição na tela do CRT, um fenômeno conhecido como . Um traço gerava uma carga positiva e um ponto uma carga negativa, qualquer uma das quais podia ser captada por uma placa detectora na frente da tela; uma carga negativa representava 0 e uma carga positiva 1. A carga se dissipava em cerca de 0,2 segundos, mas podia ser atualizada automaticamente a partir dos dados captados pelo detector.

O tubo de Williams utilizado no Baby baseava-se no CV1131, um CRT comercialmente disponível com 12 polegadas (300 mm) de diâmetro, mas no foi utilizado um tubo mais pequeno, com 6 polegadas (150 mm), o CV1097.

Gênese do projeto esquerda|miniaturadaimagem|Uma placa em homenagem a Williams e Kilburn na Universidade de Manchester Após desenvolver o computador Colossus para decifrar códigos em Bletchley Park durante a Segunda Guerra Mundial, Max Newman dedicou-se ao desenvolvimento de um computador que incorporasse tanto os conceitos matemáticos de Alan Turing quanto o conceito de programa armazenado descrito por John von Neumann. No ano de 1945, ele foi nomeado para a Cátedra Fielden de Matemática Pura na Universidade de Manchester; ele levou seus colegas do projeto Colossus, Irving John Good e David Rees, para Manchester com ele, e lá eles recrutaram F. C. Williams para ser o “especialista em circuitos” de um novo projeto de computador para o qual ele havia garantido financiamento da Royal Society.

Após sua nomeação ser professor no curso de Engenharia Elétrica na Universidade de Manchester, Williams recrutou seu colega da TRE, Tom Kilburn, em regime de destacamento. No outono de 1947, a dupla aumentou a capacidade de armazenamento do tubo de Williams de um bit para 2.048, dispostos em uma matriz de 64 por 32 bits, e demonstrou que ele era capaz de armazenar esses bits por quatro horas. O engenheiro juntou-se à equipe em regime de empréstimo da TRE em setembro de 1947 e permaneceu destacado até abril de 1949. Kilburn teve dificuldade em lembrar as influências no design de sua máquina: