Inglês Elétrico DEUCE - English Electric DEUCE

DEUCE
Também conhecido como Motor Eletrônico Digital de Computação Universal
Fabricante Elétrica Inglesa
Data de lançamento 1955 ( 1955 )
Interrompido 1964 ( 1964 )
Unidades enviadas 33
CPU com base em válvula termiônica
Memória linhas de atraso de mercúrio
384 palavras de 32 bits (Mark I e Mark II)
608 palavras de 32 bits (Mark IIA)
Armazenar Tambor magnético de 8192 palavras
Exibição 2 × CRTs
Antecessor Pilot ACE

O DEUCE ( Computing Motor Universal Eletrônica Digital ) foi um dos primeiros britânicos comercialmente disponíveis computadores , construído pelo Inglês elétrica a partir de 1955. Foi a versão de produção do Piloto ACE ,-se uma versão reduzida do Alan Turing 's ACE .

Descrição do hardware

O DEUCE tinha 1450 válvulas termiônicas e usava linhas de retardo de mercúrio para sua memória principal ; cada uma das 12 linhas de atraso pode armazenar 32 instruções ou palavras de dados de 32 bits cada. Ele adotou a então alta taxa de clock de 1 megahertz do Pilot ACE. A entrada / saída foi via equipamento de cartão perfurado Hollerith de 80 colunas. O leitor lia cartões a uma taxa de 200 por minuto, enquanto a taxa de perfuração do cartão era de 100 cartões por minuto. O DEUCE também tinha um tambor magnético de 8192 palavras para armazenamento principal. Para acessar qualquer uma das 256 faixas de 32 palavras, o tambor tinha um grupo de 16 cabeças de leitura e um grupo de 16 cabeças de gravação, cada grupo em braços móveis independentes, cada um capaz de se mover para uma das 16 posições. O tempo de acesso era de 15 milissegundos se os cabeçotes já estivessem na posição; mais 35 milissegundos adicionais eram necessários se as cabeças tivessem que ser movidas. Não houve atraso de rotação durante a leitura e gravação no tambor. Os dados foram transferidos entre o tambor e uma das linhas de atraso de 32 palavras.

O DEUCE pode ser equipado com equipamento de fita de papel ; a velocidade do leitor foi de 850 caracteres por segundo, enquanto a velocidade de saída da fita de papel foi de 25 caracteres por segundo. (O DEUCE da Universidade de New South Wales {UTECOM} tinha um teleimpressor Siemens M100 conectado em 1964, dando entrada / saída de 10 caracteres por segundo). As unidades de fita magnética Decca também podem ser conectadas. O multiplicador e divisor automáticos operaram de forma assíncrona (ou seja, outras instruções poderiam ser executadas enquanto a unidade multiplicadora / divisora ​​estava em operação). Duas unidades aritméticas foram fornecidas para operações inteiras: uma de 32 bits e outra capaz de realizar operações de 32 bits e operações de 64 bits. Auto-incremento e auto-decremento foram fornecidos em oito registradores por volta de 1957. Aritmética de array e transferências de dados de array eram permitidos. Comparado com contemporâneos como o Manchester Mark 1 , o DEUCE era cerca de dez vezes mais rápido.

As palavras individuais dos registradores quádruplos foram associadas a um recurso de incremento / decremento automático. Essa facilidade pode ser usada para contar e modificar instruções (para indexação, controle de loop e para alterar o endereço de origem ou destino de uma instrução).

Sendo uma máquina serial, o tempo de acesso a um único registrador era de 32 microssegundos, um registrador duplo de 64 microssegundos e um registrador quádruplo de 128 microssegundos. Isso para uma linha de atraso era de 1024 microssegundos.

Os tempos de instrução foram: adição, subtração, operações lógicas: 64 microssegundos para palavras de 32 bits; 96 microssegundos de precisão dupla; multiplicação e divisão 2 milissegundos. Para aritmética de matriz e operações de transferência, o tempo por palavra foi de 33 microssegundos por palavra para 32 palavras.

As operações de ponto flutuante foram fornecidas por software; tempos: 6 milissegundos para adição e subtração, média de 5½ milissegundos para multiplicação e média de 4½ milissegundos para divisão.

Nas primeiras máquinas, todas as instruções envolvendo o tambor magnético eram interligadas enquanto uma operação estava em andamento. Assim, se as cabeças de leitura fossem movidas, qualquer operação magnética subsequente, como ler uma trilha ou escrever uma trilha, era proibida de prosseguir até que a primeira fosse concluída. Por volta de 1957, uma nova unidade, chamada "magnetismo racionalizado" foi disponibilizada. Esta unidade eliminou travamentos desnecessários. Assim, era possível executar uma instrução que movia os cabeçotes de leitura: se seguida por uma instrução para mover os cabeçotes de gravação, ou para escrever uma trilha, tais instruções não eram travadas e podiam prosseguir em paralelo com o movimento dos cabeçotes de leitura.

O painel frontal do DEUCE apresentava dois visores CRT : um exibia o conteúdo atual dos registradores, enquanto o outro exibia o conteúdo de qualquer um dos armazenamentos da linha de retardo de mercúrio.

Por volta de 1958, sete linhas de atraso extras puderam ser anexadas, dando mais 224 palavras de armazenamento de alta velocidade. Um IBM 528 combinado leitor-punção poderia substituir o equipamento Hollerith, dando as mesmas velocidades de entrada / saída, caso em que a máquina foi chamada de Mark II. A conversão automática de dados alfanuméricos em BCD foi fornecida na entrada, e a operação reversa na saída, para todas as oitenta colunas de cartão. Nesse equipamento, a leitura e a perfuração poderiam ocorrer simultaneamente, se necessário, e assim poderiam ser utilizadas para a leitura de um registro, atualizá-lo e, em seguida, puncionar um registro atualizado simultaneamente com a leitura do próximo registro. Com as sete linhas de atraso extras, o DEUCE foi denominado Mark IIA.

Programas

As principais linguagens de programação de alto nível foram GEORGE (General Order Generator), ALPHACODE, STEVE, TIP, GIP e ALGOL . Os tradutores da linguagem Assembler incluíram ZP43 e STAC.

Inventado por Charles Leonard Hamblin em 1957, GEORGE era o que mais se aproximava das linguagens de programação atuais. Ele usava notação polonesa reversa . Por exemplo, para avaliar e = ay 2 + por + c, escreveu-se

a y dup × × b y × + c + (e).

onde "dup" duplica a entrada anterior, sendo o mesmo que usar "y" aqui.

GEORGE forneceu um acumulador de 12 posições como uma pilha pop-up push-down. Usar um nome de variável em um programa (por exemplo, 'd') trouxe o valor da variável 'd' para o acumulador (ou seja, empurrou d para o topo da pilha), enquanto colocava um nome entre parênteses {por exemplo, (d )} atribuído à variável 'd' o valor no topo da pilha (acumulador). Para destruir (pop e descartar) o valor no topo da pilha, o ponto-e-vírgula (;) foi usado. O seguinte programa GEORGE lê dez números e imprime seus quadrados:

1, 10 rep (i)
   read
   dup ×
   punch
   ;
]

No programa acima, o comando "dup" duplicou o topo da pilha, de forma que havia então duas cópias do valor no topo da pilha.

GIP (General Interpretive Program) era um programa de controle para manipular programas chamados "tijolos". Seu principal serviço consistia na execução de programas das várias centenas da biblioteca de álgebra linear do DEUCE . A preparação de tal programa envolveu selecionar os tijolos necessários (em cartões perfurados), copiá-los e GIP em um perfurador de reprodução e montar as cópias em um baralho de cartas. Em seguida, palavras-código simples seriam escritas para usar os tijolos para realizar tarefas como: multiplicação de matrizes; inversão de matriz; aritmética de matriz termo a termo (adição, subtração, multiplicação e divisão); resolver equações simultâneas; entrada; e saída. As dimensões das matrizes nunca foram especificadas nas palavras-código. As dimensões foram tiradas das próprias matrizes, de um cartão anterior aos cartões de dados ou das matrizes armazenadas no tambor. Portanto, os programas eram inteiramente gerais. Uma vez escrito, tal programa lidava com qualquer tamanho de matrizes (até a capacidade do tambor, é claro). Um programa curto para ler uma matriz de cartões, transpor a matriz e perfurar os resultados em cartões requer as seguintes palavras-código:

0,   0,   5, 1
5,   0, 120, 2
120, 0,   0, 3

Em cada uma das palavras-código, o quarto número é o número do bloco. A primeira palavra-código especifica que a matriz é lida dos cartões e armazenada no endereço 5 do cilindro; a segunda palavra de código especifica que a matriz no endereço de tambor 5 é transposta e o resultado é armazenado no endereço de tambor 120; e o terceiro socos que resultam em cartas.

STAC era um macro-assembler. A maioria das instruções foi escrita na forma de transferência, em decimal, como 13-16, o que significa copiar a palavra do registro 13 para o registro 16. A localização da instrução não foi especificada. STAC alocou uma instrução para uma palavra em uma linha de retardo e calculou os seis componentes da instrução binária. Ele alocou a próxima instrução para um local que fosse ótimo, para ser executada assim que a instrução anterior fosse concluída, se possível.

O programa a seguir lê um valor n e, em seguida, lê n inteiros binários. Ele perfura o número inteiro e seu quadrado. Comentários em minúsculas explicam a instrução.

1.0 12-24      start the card reader. The location of the program is specified as 1.0.
     0-13X     read one number (n) from the card reader. The letter X causes the computer to wait
               until the first row of the card has arrived at the reading station.
R2  12-24      start or re-start the card reader.
     0-16X     read one number to be squared, store it in the multiplier register.
     9-24      stop the card reader.
    16-21.3    copy the number to the multiplicand register.
    30-21.2    clear the low-order bits of the multiplicand register.
     MULT
    10-24      start the card punch.
    21.2-29X   send the square to the card punch.
     9-24      stop the card punch.
    27-26      decrement n.
    13-28  R1  test for zero. Branch on zero to R1; branch on not zero to R2.
R1   1-1X      halt; the program is complete.

STAC produziria as seguintes instruções (além do programa binário). A localização da memória de cada instrução é mostrada à esquerda.

1.0  12-24
1.2   0-13X
1.4  12-24
1.6   0-16X
1.8   9-24
1.10 16-21.3
1.13 30-21.2
1.16  0-24    wait 1
1.18  1-1     wait 1
1.20 10-24
1.22 21.2-29X
1.24  9-24
1.26 27-26
1.28 13-28 1.3
1.3   1-1X

Os números de espera e de tempo não são mostrados, exceto para a multiplicação.

Programação

Programar o DEUCE era diferente de outros computadores. A natureza serial das Linhas de Atraso exigia que as instruções fossem ordenadas de forma que, quando uma instrução completasse a execução, a próxima estivesse pronta para emergir de uma Linha de Atraso. Para operações nos registradores únicos, o primeiro tempo em que a próxima instrução poderia ser obedecida foi 64 microssegundos após a presente. Assim, as instruções não foram executadas a partir de locais sequenciais. Em geral, as instruções podem transferir uma ou mais palavras. Consequentemente, cada instrução especificava a localização da próxima instrução. A programação ideal significava que, à medida que cada instrução era executada, a próxima estava emergindo de uma Linha de Atraso. A posição das instruções na loja pode afetar muito o desempenho se a localização de uma instrução não for a ideal.

A leitura dos dados do leitor de cartão era feita em tempo real - cada linha precisava ser lida à medida que passava pelos pincéis de leitura, sem parar. Da mesma forma para o perfurador de cartão; a palavra para uma determinada linha foi preparada com antecedência e tinha que estar pronta quando uma determinada linha do cartão estivesse em posição sob as facas de soco. O modo normal de leitura e perfuração era binário. A entrada e a saída decimais foram realizadas via software.

O armazenamento de alta velocidade consistia em quatro registradores de palavra única de 32 bits cada, três registradores de palavra dupla e dois registradores de palavra quádrupla. Cada palavra de 32 bits dos registradores de palavra dupla e quádrupla pode ser endereçada separadamente. Eles também podem ser acessados ​​como um par e - no caso dos registradores quádruplos - como um grupo de três ou quatro. O armazenamento de instruções consistia em doze linhas de retardo de mercúrio, cada uma com 32 palavras, e numeradas de 1 a 12. A Linha de retardo 11 (DL11) servia como buffer entre o tambor magnético e o armazenamento de alta velocidade. Sendo uma "máquina de transferência", os dados podem ser transferidos uma palavra por vez, um par de palavras por vez e qualquer número de palavras até 33 por vez. Assim, por exemplo, 32 palavras lidas do tambor podem ser transferidas como um bloco para qualquer uma das outras linhas de retardo; quatro palavras poderiam ser transferidas como um bloco de um registrador quádruplo para o outro, ou entre um registrador quádruplo e uma linha de retardo - tudo com uma instrução. As 32 palavras de uma linha de atraso podem ser somadas passando-as para o somador de comprimento único (por meio de uma única instrução).

Por um link especial entre DL10 e um registro, a saber, registro 16, DL10 pode ser usado como uma pilha push-down.

Produção

As três primeiras máquinas foram entregues na primavera de 1955; no final de 1958, um modelo aprimorado DEUCE Mark II apareceu. Esta versão empregava um leitor de cartão e um perfurador combinados. O leitor IBM 528 e o punção combinados se comportaram como as unidades Hollerith separadas nas máquinas DEUCE Mark I anteriores; no entanto, também foi fornecido com conversão de hardware de dados alfanuméricos para BCD na entrada e vice-versa na saída. Os dados também podem ser lidos e perfurados simultaneamente a 100 cartões por minuto. O DEUCE Mark IIA forneceu sete linhas de atraso de mercúrio extras, cada uma com 32 palavras.

Um total de 33 máquinas DEUCE foram vendidas entre 1955 e 1964, sendo duas adquiridas pelo fabricante de motores Bristol Siddeley .

O sucesso do DEUCE foi devido à sua biblioteca de programas com mais de 1000 programas e sub-rotinas.

Características de hardware

DEUCE Mark 0 e I:

Clock rate         1 MHz
Word size         32 bits
High speed store 384 words
Arithmetic:
  one 32-bit accumulator;
  one 64-bit accumulator that could be used also as two 32-bit accumulators.
  addition/subtraction
     64 microseconds single length,
     96 microseconds double precision
     Addition of a single-length number to a double-length number,
     with automatic sign extension, 64 microseconds.
  multiplication 2080 microseconds
  division       2112 microseconds
magnetic drum 8192 words
  separate read heads and write heads
  Track read time  15 ms
  Head shift time  35 ms
card reader speed 200 cards per minute
card punch speed  100 cards per minute
paper tape reader speed 850 character/second
  tape: 5, 7, 8-row tape.
  stopping time:    ½ millisecond (m.s.)
  start time       20 milliseconds
paper tape punch speed 25 characters/second
  tape: 5 or 7 rows
Software floating-point (average times):
  addition/subtraction 6  m.s.
  multiplication       5½ m.s.
  division             4½ m.s.

DEUCE MARK II:

  As for DEUCE Mark I.
  A combined IBM 528 card reader and punch could read cards at 200 per minute, and punch at 100 cards per minute.  When simultaneously started, the reader and punch ran at 100 cards per minute. Automatic conversion to and from 6-bit characters was provided. This mode was in addition to the programmed conversion provided by the Mark I DEUCE.

DEUCE MARK IA E IIA:

  As above, with 7 extra delay lines providing 224 words of high-speed store.

Notas: O multiplicador e o divisor eram assíncronos. Vários inteiros podem ser multiplicados em uma única execução da instrução de multiplicação, inserindo números inteiros no multiplicador ou registradores de multiplicando durante a multiplicação e extraindo resultados durante a multiplicação. Outros efeitos especiais incluem contar os bits em uma palavra e converter Binary Coded Decimal (BCD) em binário. Da mesma forma para a divisão, que pode ser usada para converter inteiros em decimais codificados em binários (BCD) e para converter libras, xelins e pence em pence.

Veja também

Referências

links externos