IBM 1620 - IBM 1620

IBM 1620 Modelo I, Nível H
Máquina de processamento de dados IBM 1620 com plotter IBM 1627 , em exibição na Feira Mundial de Seattle de 1962

O IBM 1620 foi anunciado pela IBM em 21 de outubro de 1959 e comercializado como um "computador científico" barato. Após uma produção total de cerca de duas mil máquinas, ele foi retirado em 19 de novembro de 1970. Versões modificadas do 1620 foram usadas como CPU dos Sistemas de Controle de Processos Industriais IBM 1710 e IBM 1720 (tornando-o o primeiro computador digital considerado confiável o suficiente para controle de processo em tempo real de equipamentos de fábrica).

Sendo decimal de comprimento de palavra variável , em oposição ao binário puro de comprimento de palavra fixo, tornou-se um primeiro computador especialmente atraente para aprender - e centenas de milhares de alunos tiveram suas primeiras experiências com um computador no IBM 1620.

Os tempos de ciclo da memória do núcleo eram de 20 microssegundos para o (anterior) Modelo I , 10 microssegundos para o Modelo II (cerca de mil vezes mais lento do que a memória principal de computador típica em 2006). O Modelo II foi lançado em 1962.

Arquitetura

Memória

O IBM 1620 era um computador decimal de comprimento de " palavra " variável ( BCD ) com uma memória de núcleo magnético que podia conter:

  • 20.000 dígitos decimais
  • 40.000 dígitos decimais (memória básica mais IBM 1623 Storage Unit, Model 1)
  • 60.000 dígitos decimais (memória básica mais IBM 1623 Storage Unit, Model 2).

O acima foi no Modelo I. O Modelo II implantou a unidade de memória de armazenamento de núcleo IBM 1625, cujo tempo de ciclo de memória foi reduzido pela metade usando núcleos mais rápidos, em comparação com o Modelo I (interno ou unidade de memória 1623): para 10 µs (ou seja, , a velocidade do ciclo foi aumentada para 100 kHz).

Embora os endereços de 5 dígitos de qualquer um dos modelos possam ter endereçado 100.000 dígitos decimais, nenhuma máquina com mais de 60.000 dígitos decimais foi comercializada.

Acesso à memória

A memória foi acessada dois dígitos decimais ao mesmo tempo (par de dígitos pares-ímpares para dados numéricos ou um caractere alfamérico para dados de texto). Cada dígito decimal era de 6 bits, composto por um bit C heck de paridade ímpar , um bit F lag e quatro bits BCD para o valor do dígito no seguinte formato:

  C F 8 4 2 1

O bit F lag tinha vários usos:

  • No dígito menos significativo foi definido para indicar um número negativo ( magnitude com sinal ).
  • Ele foi definido para marcar o dígito mais significativo de um número (marca da palavra ).
  • No dígito menos significativo de endereços de 5 dígitos, ele foi definido para endereçamento indireto (uma opção no Modelo I , padrão no Modelo 1620 II). A indireção multinível pode ser usada (você pode até mesmo colocar a máquina em um loop de endereçamento indireto infinito).
  • Nos três dígitos do meio de endereços de 5 dígitos (no 1620 II ), eles foram configurados para selecionar um dos sete registradores de índice .

Além dos valores de dígitos BCD válidos, havia três valores de dígitos especiais (estes NÃO podiam ser usados ​​em cálculos):

  C F 8 4 2 1
      1 0 1 0  –  Record Mark (right most end of record, prints as a double dagger symbol, ‡)
      1 1 0 0  –  Numeric Blank (blank for punched card output formatting)
      1 1 1 1  –  Group Mark (right most end of a group of records for disk I/O)

As instruções tinham comprimento fixo (12 dígitos decimais), consistindo em um " código operacional " de 2 dígitos , um "Endereço P" de 5 dígitos (geralmente o endereço de destino ) e um "Endereço Q" de 5 dígitos (geralmente o endereço de origem ou o valor imediato da fonte ). Algumas instruções, como a instrução B (desvio), usavam apenas o endereço P, e montadores inteligentes posteriores incluíram uma instrução "B7" que gerou uma instrução de desvio de 7 dígitos (código op, endereço P e um dígito extra porque o próximo instrução teve que começar em um dígito de numeração par).

As "palavras" de dados de ponto fixo podem ter qualquer tamanho, desde dois dígitos decimais até toda a memória não usada para outros fins.

As "palavras" de dados de ponto flutuante (usando a opção de ponto flutuante do hardware ) podem ter qualquer tamanho, desde 4 dígitos decimais até 102 dígitos decimais (2 a 100 dígitos para a mantissa e 2 dígitos para o expoente ).

O compilador Fortran II ofereceu acesso limitado a essa flexibilidade por meio de um "Cartão de controle do programa de origem" precedendo a origem do fortran em um formato fixo:

*ffkks

O * na coluna um, ff o número de dígitos para a mantissa de números de ponto flutuante (permitindo 02 a 28), kk o número de dígitos para números de ponto fixo (permitindo 04 a 10) es é para especificar o tamanho da memória do computador para executar o código se não for o computador atual: 2, 4 ou 6 para memórias de 20.000 ou 40.000 ou 60.000 dígitos.

A máquina não tinha registros acessíveis pelo programador: todas as operações eram de memória para memória (incluindo os registros de índice do 1620 II ).

Consulte a seção de dificuldades arquitetônicas

Códigos de caracteres e operações

A tabela abaixo lista os caracteres do modo alfa-mérico (e códigos op).

Personagem BCD Máquina de escrever Impressora Fita  Cartão  Essencial MNEMÔNICO e operação Definição e notas
No Fora Fora No Fora No Fora Até Ímpar
Em branco       C C          
inválido   Ж ❚   1 FADD Floating Add Recurso especial opcional.
inválido   Ж ❚   FSUB Floating Subtract Recurso especial opcional.
. . . .  X0 8 21  X0 8 21 12-3-8
12-1-2-8
12-3-8 21 FMUL Floating Multiply Recurso especial opcional.
) ) ) )  X0C84  X0C84 12-4-8 12-4-8 4    
inválido   Ж ❚   4 1 FSL Floating Shift Left Recurso especial opcional.
inválido   Ж ❚   42  Flutuante de transmissão TFL Recurso especial opcional.
inválido   Ж ❚   421 BTFL Branch and Transmit Floating Recurso especial opcional.
inválido   Ж ❚    8 FSR Floating Shift Right Recurso especial opcional.
inválido   Ж ❚    81 Divisão Flutuante FDIV Recurso especial opcional.
+ + + +  X0C  X0C 12 12 1   Filial BTAM e endereço de transmissão imediato (Modelo II)
inválido   Ж ❚   1 1 AM Adicionar Imediato  
inválido   Ж ❚   1 SM Subtrair Imediato  
$ $ $ $  X C8 21  X C8 21 11-3-8
11-1-2-8
11-3-8 1 21 MM Multiply Immediate  
* * * *  X84  X84 11-4-8 11-4-8 1 4 CM Compare Immediate  
inválido   Ж ❚   1 4 1 TDM Transmit Dígito Imediato  
inválido   Ж ❚   1 42  Campo de transmissão TFM imediato  
inválido   Ж ❚   1 421 Ramificação BTM e transmissão imediata  
inválido   Ж ❚   1  8 LDM Load Dividend Immediate Recurso especial opcional (Modelo I).
Padrão (Modelo II).
inválido   Ж ❚   1  81 DM Divide Immediate Recurso especial opcional (Modelo I).
Padrão (Modelo II).
- - - -  X  X 11 11   Filial BTA e endereço de transmissão (Modelo II)
/ / / / 0C1 0C1 0-1 0-1 1 Um Adicionar  
inválido   Ж ❚   S Subtrair  
, , , , 0C8 21 0C8 21 0-3-8
0-1-2-8
0-3-8 21 M Multiply  
( ( ( ( 0 84 0 84 0-4-8 0-4-8 4 C Compare  
inválido   Ж ❚   4 1 Dígito de transmissão TD  
inválido   Ж ❚   42  Campo de transmissão TF  
inválido   Ж ❚   421 BT Branch and Transmit  
inválido   Ж ❚    8 LD Load Dividend Recurso especial opcional (Modelo I).
Padrão (Modelo II).
inválido   Ж ❚    81 D Dividir Recurso especial opcional (Modelo I).
Padrão (Modelo II).
inválido   Ж ❚   21   TRNM Transmit Record No RM (Modelo II)
inválido   Ж ❚   21 1 Registro de transmissão TR  
inválido   Ж ❚   21 SF Definir Bandeira  
= = = = 8 21 8 21 3-8
1-2-8
3-8 21 21 CF Clear Flag  
@ @ @ @ C84 C84 4-8 4-8 21 4 Controle K (dispositivo de E / S)  
inválido   Ж ❚   21 4 1 DN Dump Numérico  
inválido   Ж ❚   21 42  RN Leitura Numérica  
inválido   Ж ❚   21 421 RA Read Alphameric  
inválido   Ж ❚   21  8 WN Write Numérico  
inválido   Ж ❚   21  81 WA Write Alphameric  
UMA UMA UMA UMA  X01  X01 12-1 12-1  4 1 NOP Sem Operação  
B B B B  X02   X02  12-2 12-2  4 BB Branch Back  
C C C C  X0C21  X0C21 12-3
12-1-2
12-3  4 21 BD Branch On Digit  
D D D D  X04  X04 12-4 12-4  4 4 BNF Branch Sem Bandeira  
E E E E  X0C 4 1  X0C 4 1 12-5
12-1-4
12-5  4 4 1 BNR Branch Sem Marca de Registro  
F F F F  X0C 42   X0C 42  12-6
12-2-4
12-6  4 42  Indicador de filial de BI  
UMK Unmask
MK Mask
1710 recurso de interrupção. Modificadores no campo Q.
G G G G  X0421  X0421 12-7
12-1-2-4
12-7  4 421 BNI Branch Sem Indicador  
BO Branch Out
BOLD Branch Out e Carregar
1710 recurso de interrupção. Modificadores no campo Q.
H H H H  X0 8  X0 8 12-8 12-8  4  8 H Halt  
eu eu eu eu  X0C81  X0C81 12-9
12-1-8
12-9  4  81 Branch B  
-0 N / D - - N / D  X 11-0 11-0  4 1      
J
-1
J J J  X C1  X C1 11-1 11-1  4 1 1    
K
-2
K K K  X C2   X C2  11-2 11-2  4 1    
L
-3
eu eu eu  X21  X21 11-3
11-1-2
11-3  4 1 21    
M
-4
M M M  X C 4  X C 4 11-4 11-4  4 1 4    
N
-5
N N N  X4 1  X4 1 11-5
11-1-4
11-5  4 1 4 1 Filial BNG Sem Marca de Grupo Recurso especial opcional.
O
-6
O O O  X42   X42  11-6
11-2-4
11-6  4 1 42     
P
-7
P P P  X C 421  X C 421 11-7
11-1-2-4
11-7  4 1 421    
Q
-8
Q Q Q  X C8  X C8 11-8 11-8  4 1  8 WAIT Espera pela Interrupção 1710 recurso de interrupção.
R
-9
R R R  X81  X81 11-9
11-1-8
11-9  4 1  81    
inválido   Ж ❚    42    BS Branch and Select (Modelo II)
inválido   Ж ❚    42  1 BX Branch e Modify Index Register Recurso especial opcional (Modelo II).
S S S S 0C2  0C2  0-2 0-2  42  BXM Branch e Modify Index Register Imediato Recurso especial opcional (Modelo II).
T T T T 021 021 0-3
0-1-2
0-3  42  21 BCX Branch Condicionalmente e Modificar Registro de Índice Recurso especial opcional (Modelo II).
você você você você 0C 4 0C 4 0-4 0-4  42  4 BCXM Branch Condicionalmente e Modificar Registro de Índice Imediato Recurso especial opcional (Modelo II).
V V V V 04 1 04 1 0-5
0-1-4
0-5  42  4 1 Registro BLX de Filial e Índice de Carga Recurso especial opcional (Modelo II).
C C C C 042  042  0-6
0-2-4
0-6  42  42  Ramo BLXM e registro de índice de carga imediato Recurso especial opcional (Modelo II).
X X X X 0C 421 0C 421 0-7
0-1-2-4
0-7  42  421 BSX Branch and Store Index Register Recurso especial opcional (Modelo II).
Y Y Y Y 0C8 0C8 0-8 0-8  42   8    
Z Z Z Z 0 81 0 81 0-9
0-1-8
0-9  42   81    
0 0 0 0 0
12-0
0  421   Endereço de mudança MA Recurso especial opcional (Modelo II).
1 1 1 1 1 1 1 1  421 1 MF Move Flag Recurso especial opcional (Modelo I).
Padrão (Modelo II).
2 2 2 2 2 2  421 Faixa Numérica de Transmissão TNS Recurso especial opcional (Modelo I).
Padrão (Modelo II).
3 3 3 3 C21 C21 3 3  421 21 TNF Transmitir Preenchimento Numérico Recurso especial opcional (Modelo I).
Padrão (Modelo II).
4 4 4 4  4  4 4 4  421 4    
5 5 5 5 C 4 1 C 4 1 5 5  421 4 1    
6 6 6 6 C 42  C 42  6 6  421 42     
7 7 7 7  421  421 7 7  421 421    
8 8 8 8 8 8 8 8  421  8    
9 9 9 9 C81 C81 9 9  421  81    
inválido   Ж ❚   8 4 SA Selecionar Endereço
SACO Selecionar Endereço, Contactar Operar
SAOS Selecionar Sinal de Saída Analógica
Recurso 1710. Modificadores no campo Q
inválido   Ж ❚   8 42  SLTA Selecionar TAS
SLAR Selecionar ADC Registrar
SLTC Selecionar relógio em tempo real
SLIC Selecionar canal de entrada
SLCB Selecionar bloco de contato
SLME Selecionar entrada manual
Recurso 1710. Modificadores no campo Q
inválido   Ж ❚   8 F 42  Canal de entrada numérica de leitura RNIC Recurso 1710. Modificadores no campo Q
inválido   Ж ❚   8 F 421 RAIC Ler Canal de Entrada Alphameric Recurso 1710. Modificadores no campo Q
inválido   Ж ❚   8  8 Canal de saída numérica de gravação WNOC Recurso 1710. Modificadores no campo Q
inválido   Ж ❚   8  81 WAOC Write Alphameric Output Channel Recurso 1710. Modificadores no campo Q
inválido   Ж ❚   81   BBT Branch on Bit Recurso especial opcional (Modelo II).
inválido   Ж ❚   81 1 BMK Branch on Mask Recurso especial opcional (Modelo II).
inválido   Ж ❚   81 ORF OU para o campo Recurso especial opcional (Modelo II).
inválido   Ж ❚   81 21 ANDF AND to Field Recurso especial opcional (Modelo II).
inválido   Ж ❚   81 4 Campo octal do complemento CPLF Recurso especial opcional (Modelo II).
inválido   Ж ❚   81 4 1 EORF Exclusivo OU para Campo Recurso especial opcional (Modelo II).
inválido   Ж ❚   81 42  Conversão OTD de Octal em Decimal Recurso especial opcional (Modelo II).
inválido   Ж ❚   81 421 Conversão DTO Decimal para Octal Recurso especial opcional (Modelo II).
RM (Pare) (Pare) 0 8 2  E
(parar)
0-2-8 0-2-8  8 2    Marca de registro
GM IBM 1401 Group Mark.GIF (Pare) (Pare) 0 8421 E
(parar)
0-7-8 1-2-4-8  8421   Marca de Grupo

A tabela a seguir lista os caracteres do modo numérico.

Personagem Máquina de escrever Impressora Fita  Cartão  Essencial Definição e notas
No Fora Fora Jogar fora No Fora No Fora
Em branco   0 0 0 C   0  
0 0 0 0 0 0
12-0
12
0  
1 1 1 1 1 1 1 1
12-1
1  1  
2 2 2 2 2 2
12-1
2  
3 3 3 3 3 C21 C21 3
12-3
1-2
12-1-2
3 C21  
4 4 4 4 4  4  4 4
12-4
4 4  
5 5 5 5 5 C 4 1 C 4 1 5
12-5
1-4
12-1-4
5 C4 1  
6 6 6 6 6 C 42  C 42  6
12-6
2-4
12-2-4
6 C42   
7 7 7 7 7  421  421 7
12-7
1-2-4
12-1-2-4
7 421  
8 8 8 8 8 8 8 8
12-8
8 8  
9 9 9 9 9 C81 C81 9
12-9
1-8
12-1-8
9 C 81  
-0 0 0 - -  X
 X0C
 X 11-0 11-0  F  
-1 1 1 J J  X C1  X C1 11-1 11-1 CF1  
-2 2 2 K K  X C2   X C2  11-2 11-2 CF2   
-3 3 3 eu eu  X21  X21 11-3
11-1-2
11-3  F21  
-4 4 4 M M  X C 4  X C 4 11-4 11-4 CF 4  
-5 5 5 N N  X4 1  X4 1 11-5
11-1-4
11-5  F 4 1  
-6 6 6 O O  X42   X42  11-6
11-2-4
11-6  F 42   
-7 7 7 P P  X C 421  X C 421 11-7
11-1-2-4
11-7 CF 421  
-8 8 8 Q Q  X C8  X C8 11-8 11-8 CF8  
-9 9 9 R R  X81  X81 11-9
11-1-8
11-9  F81  
RM (Pare, WN)

(DN)
(Pare) 0 8 2  E
(Parar, WN)
0 8 2 
(DN)
0-2-8 0-2-8 C 8 2  Record Mark
Na fita, um WN dá um soco no EOL!
sinalizar RM (Pare, WN)

(DN)
(Pare) C  X8 2  E
(Parar, WN)
 X8 2 
(DN)
11-2-8
12-2-8
11-2-8  F8 2  Marca de registro sinalizada
Na fita, um WN dá EOL em vez disso!
EOL (Pare, WN)

(DN)
(Pare) E E
(WN)
0 8 2 
(DN)
0-2-8 0-2-8 C 8 2  Fim da linha Apenas fita.
Nota: Na memória está uma marca de registro!
GM IBM 1401 Group Mark.GIF (Pare, WN) (DN)
IBM 1401 Group Mark.GIF
(Pare) G 0 8421 0 8421 0-7-8 0-7-8 C 8421 Marca de Grupo
bandeira GM IBM 1401 Group Mark.GIF (Pare, WN) (DN)
IBM 1401 Group Mark.GIF
(Pare) X  X8421  X8421 12-7-8 12-7-8  F8421 Marca de grupo sinalizado
NB @ @ @ C84 C84 4-8 C 84 Numérico em Branco
bandeira NB @ @ *  X84  X84 11-4-8  F84 Numérico em branco sinalizado

Caractere inválido

O modelo I usou o caractere cirílico Ж (pronunciado zh) na máquina de escrever como um caractere inválido de uso geral com paridade correta (paridade inválida sendo indicada com um sinal de "-"). Em cerca de 1620 instalações foi chamado de SMERSH, como usado nos romances de James Bond que se tornaram populares no final dos anos 1960. O Modelo II usou um novo caractere ❚ (chamado "travesseiro") como um caractere inválido de uso geral com paridade correta.

Dificuldades arquitetônicas

Embora a arquitetura do IBM 1620 fosse muito popular na comunidade científica e de engenharia, o cientista da computação Edsger Dijkstra apontou várias falhas em seu design no EWD37, "Uma revisão do sistema de processamento de dados IBM 1620". Entre eles estão que as instruções Branch e Transmit da máquina junto com o Branch Back permitem um total geral de um nível de chamada de sub-rotina aninhada, forçando o programador de qualquer código com mais de um nível a decidir onde o uso deste "recurso" seria mais eficaz. Ele também mostrou como o suporte de leitura de fita de papel da máquina não conseguia ler corretamente fitas contendo marcas de registro, uma vez que as marcas de registro são usadas para encerrar os caracteres lidos no armazenamento. Um efeito disso é que o 1620 não pode duplicar uma fita com marcas de gravação de uma maneira direta: quando a marca de gravação é encontrada, a instrução de soco perfura um caractere EOL em vez disso e termina. No entanto, este não foi um problema incapacitante:

  • os dados podem ser copiados para o final da memória e digitados literalmente com uma instrução DN em vez de WN
  • as fitas geralmente eram duplicadas offline .

A maioria das instalações do 1620 usa a entrada / saída de cartão perfurado mais conveniente, em vez de fita de papel.

O sucessor do 1620, o IBM 1130 , era baseado em uma arquitetura binária de 16 bits totalmente diferente. (A linha 1130 manteve um periférico 1620, o IBM 1627 drum plotter.)

Programas

Cartão IBM 1620 SPS

A IBM forneceu o seguinte software para o 1620:

  • 1620 Symbolic Programming System (SPS) ( linguagem assembly )
  • FORTRAN
  • FORTRAN II - requer 40.000 dígitos ou mais de memória

  • GOTRAN - versão simplificada e interpretada de FORTRAN para operação "carregar e seguir"
  • Monitor I e Monitor II - sistemas operacionais de disco .

Os monitores forneceram versões baseadas em disco de 1620 SPS IId, FORTRAN IId, bem como um DUP (Disk Utility Program). Ambos os sistemas Monitor exigiam 20.000 dígitos ou mais de memória e uma ou mais 1311 unidades de disco .

Uma coleção de manuais relacionados ao IBM 1620 em formato PDF existe no bitsavers.

1620 aritmética não decimal

Uma vez que o Modelo I usou tabelas de pesquisa na memória para adição / subtração, bases limitadas (5 a 9) aritmética de números sem sinal podem ser realizadas alterando o conteúdo dessas tabelas, mas observando que o hardware incluiu um complementador de dez para subtração (e adição de números com sinais opostos).

Para fazer adição e subtração totalmente assinadas nas bases 2 a 4, era necessário um entendimento detalhado do hardware para criar uma tabela de adição "dobrada" que falsificaria o complementador e a lógica de transporte.

Além disso, a tabela de adição teria que ser recarregada para a operação normal da base 10 toda vez que cálculos de endereço fossem necessários no programa e, em seguida, recarregada novamente para a base alternativa. Isso tornou o "truque" um pouco menos do que útil para qualquer aplicação prática.

Como o Modelo II tinha adição e subtração totalmente implementadas no hardware, alterar a tabela na memória não poderia ser usado como um "truque" para alterar as bases aritméticas. No entanto, um recurso especial opcional no hardware para entrada / saída octal, operações lógicas e conversão de base para / de decimal estava disponível.

Embora as bases diferentes de 8 e 10 não fossem suportadas, isso tornava o Modelo II muito prático para aplicativos que precisavam manipular dados formatados em octal por outros computadores (por exemplo, o IBM 7090).

Modelo I

Desenho mostrando o layout interno dos "portões"

O IBM 1620 Model I (comumente chamado de "1620" de 1959 até a introdução do Model II em 1962 ) era o original. Foi produzido o mais barato possível, para manter o preço baixo .

  • Faltava hardware ALU convencional : a aritmética era feita por consulta à tabela de memória . Adição e subtração usaram uma tabela de 100 dígitos (no endereço 00300..00399). A multiplicação usou uma tabela de 200 dígitos (no endereço 00100..00299). A máquina básica usava sub-rotinas de software para divisão, embora um hardware opcional de divisão pudesse ser instalado que usasse um algoritmo de subtração repetido. Instruções aritméticas de vírgula flutuante eram uma opção disponível (se a opção dividir estivesse instalada).
  • Os primeiros 20.000 dígitos decimais da memória de núcleo magnético eram internos à própria CPU (o que reduzia os requisitos de espaço físico do sistema básico). A expansão para 40.000 ou 60.000 dígitos decimais exigiu a adição de uma unidade IBM 1623 Memory. O tempo de ciclo da memória foi de 20  μs (ou seja, a velocidade da memória foi de 50  kHz = 1/20 de a MHz). Uma operação de leitura, limpeza ou gravação de memória do Núcleo de Armazenamento de Registro de Endereço de Memória (MARS) levou 2 μs e cada operação de gravação foi automaticamente (mas não necessariamente imediatamente) precedida por uma operação de leitura ou limpeza do (s) mesmo (s) "registrador (es)" durante o Ciclo de memória de 20 μs.
  • A velocidade do clock do processador central era de 1  MHz , que foi dividido por 20 por um contador de anel de 10 posições para fornecer a temporização do sistema e os sinais de controle. As instruções levaram oito ciclos de memória (160 μs) para buscar e um número variável de ciclos de memória para executar. O endereçamento indireto adicionou quatro ciclos de memória (80 μs) para cada nível de indireção.
  • Ele pesava cerca de 1.210 libras (550 kg).

Modelo II

O IBM 1620 Model II (comumente chamado simplesmente de Modelo II) foi uma implementação amplamente aprimorada, em comparação com o Modelo I original . O Modelo II foi lançado em 1962.

  • Ele tinha hardware ALU básico para adição e subtração, mas a multiplicação ainda era feita por consulta de tabela de memória in-core , usando uma tabela de 200 dígitos (no endereço 00100..00299). Os endereços de memória no endereço 00300..00399 foram liberados pela substituição da tabela de adição pelo hardware, resultando no armazenamento de duas "bandas" selecionáveis ​​de sete registradores de índice de 5 dígitos .
  • Em vez de ser uma opção disponível, como no Modelo I, o hardware de divisão usando um algoritmo de subtração repetida foi integrado. A aritmética de ponto flutuante era uma opção disponível, assim como a entrada / saída octal, operações lógicas e conversão de base para / de instruções decimais.
  • Toda a memória central estava na unidade de memória IBM 1625. O tempo de ciclo da memória foi reduzido pela metade em comparação com o Modelo I (unidade de memória interna ou 1623), para 10  µs (ou seja, a velocidade do ciclo foi elevada para 100  kHz ) usando núcleos mais rápidos. Uma operação de leitura, limpeza ou gravação da memória de núcleo do Memory Address Register Storage (MARS) levou 1,5 µs e cada operação de gravação foi automaticamente (mas não necessariamente imediatamente) precedida por uma operação de leitura ou limpeza do mesmo "registrador (es)" durante o Ciclo de memória de 10 µs.
  • A velocidade do clock do processador também foi duplicada, para 2  MHz , que ainda era dividida por 20 por um contador de anel de 10 posições para fornecer os sinais de controle / temporização do sistema. O mecanismo de busca / execução foi completamente redesenhado, otimizando o tempo e permitindo buscas parciais quando os campos P ou Q não eram necessários. As instruções levaram 1, 4 ou 6 ciclos de memória (10 µs, 40 µs ou 60 µs) para buscar e um número variável de ciclos de memória para executar. O endereçamento indireto adicionou três ciclos de memória (30 µs) para cada nível de indireção . O endereçamento indexado adicionou cinco ciclos de memória (50 µs) para cada nível de indexação. O endereçamento indireto e indexado pode ser combinado em qualquer nível de indireção ou indexação.

Consoles modelos I e II

Enquanto o console inferior para os sistemas Modelo 1 e Modelo 2 IBM 1620 tinham as mesmas lâmpadas e interruptores, o console superior do par era parcialmente diferente.

Console superior

Modelo I (console superior) #Lâmpadas Modelo II (console superior) #Lâmpadas
Ciclo de instrução e execução 60 Portões de controle 60
Portões de controle 35 Entrada-Saída 35
Entrada-Saída 15 Ciclo Inst e Exec 15 -

O equilíbrio do console superior foi o mesmo em ambos os modelos:

  • Registro de operação - 25 lâmpadas
  • Registro de buffer de memória - 30 lâmpadas
  • Registro de endereço de memória - 25 lâmpadas
  • Seletor de exibição de registro de endereço de memória - chave rotativa, 12 posições

Console inferior

  • Desligamento de emergência - puxar o interruptor
  • Verifique as lâmpadas / interruptores de status de condição - 15 lâmpadas e 5 interruptores
  • Chaves de programa - 4 chaves de alternância
  • Luzes / interruptores do operador do console - 13 luzes, 1 interruptor de energia e 12 botões

Máquina de escrever console

A máquina de escrever do console Modelo I era um Modelo B1 modificado , com interface por um conjunto de relés e digitava apenas 10 caracteres por segundo.

Havia um conjunto de instruções que escrevia para a máquina de escrever ou lia dela. As instruções gerais RN (ler numérico) e WN (escrever numérico) tinham mnemônicos em linguagem assembly que forneciam o código do "dispositivo" no segundo campo de endereço e o código de controle no dígito de ordem inferior do segundo campo de endereço.

  • WNTY : W rito N umeric TY pewriter: cada localização de memória contido um caractere de 6 bits na gama de 000.000-001.001; com esta instrução, cada local de memória foi processado como um dos caracteres de "0" a "9".
  • Waty : W rito Um lphanumeric TY pewriter: cada par de localizações de memória continha dois dígitos de 6 bits que apareceram sobre a máquina de escrever como um dos 64 caracteres que podem aparecer.
  • RNTY : R ead N umeric TY pewriter: ler um valor numérico a partir do teclado de máquina de escrever
  • Räty : R ead A lphanumeric TY pewriter: ler um caractere do teclado e loja como um caractere alfanumérico de 2 dígitos
  • TBTY : T a B TY pewriter. As guias precisavam ser definidas manualmente, portanto, essa instrução raramente era usada.
  • RCTY : R eturn C arriage TY pewriter: Fez com que a máquina de escrever fizesse o que agora chamamos de sequência CR / LF.

Para simplificar a entrada e a saída, havia duas instruções:

  • TNS : T ransmit N umeric S viagem: Converte uma representação alfanumérica de dois dígitos de "0" a "9" a uma representação de um dígito
  • TNF : T ransmit N umeric F doente: Converte uma representação de um dígito de dígitos para uma sequência de dois dígitos sequência alfanumérica que representado "0" a "9"

O Modelo II usava uma máquina de escrever Selectric modificada , que podia digitar a 15,5 cps - uma melhoria de 55%.

Periféricos

Plotter de tambor IBM 1627

Os periféricos disponíveis eram:

  • IBM 1621  - Leitor de fita de papel
  • IBM 1622  - Leitor / perfurador de cartão perfurado
  • IBM 1624  - Perfurador de fita de papel (colocado dentro do 1621 em uma prateleira)
  • IBM 1626  - controlador de plotadora
  • IBM 1627  - Plotter
  • IBM 1311  - Unidade de disco: unidade mestre Modelo 3 controlando até 3 unidades escravas Modelo 2.
  • IBM 1443  - Impressora , barra tipo móvel
  • IBM 1405  - Unidade de disco disponível como RPQ (solicitar cotação de preço)

O mecanismo padrão de "saída" de um programa era perfurar os cartões, o que era mais rápido do que usar a máquina de escrever. Esses cartões perfurados eram então alimentados por meio de uma calculadora mecânica IBM 407 que poderia ser programada para imprimir dois cartões, podendo assim usar as colunas de impressão adicionais disponíveis no 407. Toda a saída era síncrona e o processador parava enquanto o dispositivo de E / S produzia a saída, de forma que a saída da máquina de escrever pudesse dominar completamente o tempo de execução do programa.

Uma opção de saída mais rápida, a impressora IBM 1443 foi lançada em 6 de maio de 1963, e sua capacidade de 150–600 linhas / minuto estava disponível para uso com qualquer um dos modelos da 1620.

Ele pode imprimir 120 ou 144 colunas. A largura dos caracteres foi fixada, então foi o tamanho do papel que mudou; a impressora imprimiu 10 caracteres por polegada, portanto, uma impressora poderia imprimir no máximo 12 polegadas ou 14,4 polegadas de texto. Além disso, a impressora tinha um buffer, então o atraso de E / S para o processador foi reduzido. No entanto, a instrução de impressão seria bloqueada se a linha não tivesse sido concluída.

Procedimentos operacionais

O "sistema operacional" para o computador constituía o operador humano, que usaria os controles do console do computador , que consistia em um painel frontal e uma máquina de escrever, para carregar programas da mídia de armazenamento em massa disponível, como baralhos de cartões perfurados ou rolos de papel fitas que foram mantidas em armários próximos. Posteriormente, o dispositivo de armazenamento de disco modelo 1311 conectado ao computador permitiu uma redução na busca e transporte de baralhos de cartas ou rolos de fita de papel, e um sistema operacional simples "Monitor" pode ser carregado para ajudar na seleção do que carregar do disco.

Uma preliminar padrão era limpar a memória do computador de qualquer detrito do usuário anterior - sendo núcleos magnéticos, a memória retinha seu último estado, mesmo se a energia tivesse sido desligada. Isso foi realizado usando as facilidades do console para carregar um programa de computador simples digitando seu código de máquina na máquina de escrever do console, executando-o e interrompendo-o. Isso não foi desafiador, pois apenas uma instrução era necessária, como 160001000000, carregada no endereço zero e seguintes. Isso significava transmitir campo imediato (os 16: códigos operacionais de dois dígitos) para o endereço 00010, o campo constante imediato tendo o valor 00000 (campos de operando de cinco dígitos, sendo o segundo do endereço 11 de volta para 7), diminuindo os endereços de origem e destino até que um dígito com uma "bandeira" fosse copiado. Esse era o meio normal do código de máquina de copiar uma constante de até cinco dígitos. A sequência de dígitos foi endereçada em sua extremidade de ordem inferior e estendida por meio de endereços inferiores até que um dígito com uma bandeira marcasse seu final. Mas, para esta instrução, nenhum sinalizador seria encontrado porque os dígitos de origem foram substituídos pouco antes por dígitos sem um sinalizador. Assim, a operação rolaria pela memória (mesmo sobrescrevendo-se) enchendo-a com zeros até que o operador se cansasse de observar a turbulência das luzes indicadoras e pressionasse o botão Instant Stop - Single Cycle Execute . Cada módulo de memória de 20.000 dígitos levou pouco menos de um segundo para limpar. No 1620 II esta instrução NÃO funcionaria (devido a certas otimizações na implementação). Em vez disso, havia um botão no console chamado Modificar que, quando pressionado junto com o botão Verificar Reinicialização , quando o computador estava no modo Manual, colocava o computador em um modo que limparia toda a memória em um décimo de segundo, independentemente de como muita memória que você teve; quando você pressionou Iniciar . Ele também parava automaticamente quando a memória era limpa, em vez de exigir que o operador o parasse.

Além de digitar o código da máquina no console, um programa pode ser carregado por meio do leitor de fita de papel, do leitor de cartão ou de qualquer unidade de disco. O carregamento da fita ou do disco exigia primeiro a digitação de uma rotina de " bootstrap " na máquina de escrever do console.

O leitor de cartão tornou as coisas mais fáceis porque tinha um botão especial Carregar para significar que o primeiro cartão deveria ser lido na memória do computador (começando no endereço 00000) e executado (ao invés de apenas iniciar o leitor de cartão, que então aguarda comandos de o computador para ler cartões) - este é o processo de "bootstrap" que entra no computador apenas o código suficiente para ler o resto do código (do leitor de cartão, ou disco, ou ...) que constitui o carregador que irá leia e execute o programa desejado.

Os programas foram preparados com antecedência, off-line, em fita de papel ou cartões perfurados. Mas normalmente os programadores tinham permissão para executar os programas pessoalmente, na prática, em vez de submetê-los aos operadores, como era o caso dos computadores mainframe naquela época. E a máquina de escrever do console permitia inserir dados e obter saída de forma interativa, em vez de apenas obter a saída impressa normal de um lote cego executado em um conjunto de dados pré-empacotado. Da mesma forma, havia quatro opções de programa no console cujo estado um programa em execução poderia testar e, portanto, seu comportamento era dirigido por seu usuário. O operador do computador também poderia interromper um programa em execução (ou ele poderia parar deliberadamente programado) e então investigar ou modificar o conteúdo da memória: sendo baseado em decimal, isso era muito fácil; mesmo os números de ponto flutuante podem ser lidos de relance. A execução poderia então ser retomada, a partir de qualquer ponto desejado. Além da depuração, a programação científica é tipicamente exploratória, em contraste com o processamento de dados comerciais, onde o mesmo trabalho é repetido em um cronograma regular.

Console

Chave seletora de exibição de registro de endereço de memória IBM 1620

Os itens mais importantes no console do 1620 eram um par de botões rotulados Insert & Release e a máquina de escrever do console.

  • Inserir - Pressionar esta tecla com o computador no modo Manual redefinir o contador do programa (na memória central MARS) para zero, mudar o computador para os modos Automático e Inserir e simular a execução de uma leitura numérica da máquina de escrever para o endereço zero (desbloqueado o teclado da máquina de escrever, mudou a máquina de escrever para o modo numérico). Nota: ao contrário de uma leitura numérica real da máquina de escrever, o modo Inserir forçaria uma versão após 100 dígitos terem sido digitados para evitar sobrescrever as tabelas aritméticas.
  • Liberar - pressionar esta tecla ao fazer uma leitura da máquina de escrever encerrou a leitura, colocou o computador no modo manual e travou o teclado da máquina de escrever.

A máquina de escrever é usada para entrada / saída do operador, tanto como o controle do console principal do computador quanto para entrada / saída controlada por programa. Modelos posteriores da máquina de escrever tinham uma tecla especial marcada com RS que combinava as funções dos botões Release e Start do console (isso seria considerado equivalente a uma tecla Enter em um teclado moderno). Nota: várias teclas da máquina de escrever não geravam caracteres de entrada, incluindo Tab e Return (os conjuntos de caracteres BCD alfaméricos e numéricos de 1620 não tinham códigos de caracteres para essas teclas).

Os próximos itens mais importantes no console foram os botões rotulados Start , Stop-SIE e Instant Stop-SCE .

  • Iniciar - Pressionar esta tecla com o computador no modo Manual muda o computador para o modo Automático (fazendo com que o computador comece a executar no endereço no contador do programa).
  • Stop-SIE - Pressionar esta tecla com o computador no modo Automático alternou o computador para o modo Manual quando a instrução em execução no momento for concluída. Pressionar esta tecla com o computador no modo Manual muda o computador para o modo Automático para uma instrução.
  • Instant Stop-SCE - Pressionar esta tecla com o computador no modo Automático muda o computador para o modo Automático / Manual no final do ciclo de memória atual. Pressionar esta tecla com o computador no modo Manual ou Automático / Manual muda o computador para o modo Automático / Manual e executa um ciclo de memória.

Para depuração do programa, havia os botões rotulados Salvar e Exibir MAR .

  • Salvar - Pressionar esta tecla com o computador no modo Manual salvou o contador do programa em outro registro na memória principal do MARS e ativou o modo Salvar .

Quando uma instrução Branch Back era executada no modo Salvar , ela copiava o valor salvo de volta para o contador do programa (em vez de copiar o registro do endereço de retorno como fazia normalmente) e desativava o modo Salvar .

Isso foi usado durante a depuração para lembrar onde o programa havia sido interrompido para permitir que ele fosse retomado após as instruções de depuração que o operador havia digitado na máquina de escrever. Nota: o registrador MARS usado para salvar o contador do programa também era usado pela instrução Multiply , portanto, esta instrução e o modo Salvar eram incompatíveis! No entanto, não havia necessidade de usar multiplicação no código de depuração, portanto, isso não foi considerado um problema.

  • Exibir MAR - Pressionar esta tecla com o computador no modo Manual exibe o registro MARS selecionado e o conteúdo da memória naquele endereço nas lâmpadas do console.
Procedimento de "ponto de interrupção" Notas
Pressione Stop-SIE Pare o computador no final da instrução atual.
Pressione Salvar Salve o endereço para retomar a execução em.
Pressione Inserir Desbloqueia o teclado da máquina de escrever e muda para o modo numérico.
Digite 35xxxxx0010036xxxxx0010042
 
xxxxx é o endereço no qual você planeja definir o ponto de interrupção.
imprensa lançamento Bloqueia o teclado da máquina de escrever.
Pressione Iniciar Comece a execução. Permita que a instrução de 12 dígitos seja impressa.
imprensa lançamento Interrompe o despejo numérico.
Pressione Iniciar Comece a execução.
Tipo 48 Substitua o opcode da instrução para "interromper" em por um opcode Halt.
imprensa lançamento Bloqueia o teclado da máquina de escrever.
Pressione Iniciar Retome a execução. Espere até que o computador pare no "ponto de interrupção".
Pressione Inserir Desbloqueia o teclado da máquina de escrever e muda para o modo numérico.
Digite 36xxxxx0010049xxxxx
 
xxxxx é o endereço que você definiu anteriormente para o ponto de interrupção, agora você irá apagá-lo.
imprensa lançamento Bloqueia o teclado da máquina de escrever.
Pressione Iniciar Comece a execução.
Digite oo oo é o opcode de 2 dígitos da instrução original de 12 dígitos impressa anteriormente.
imprensa lançamento Bloqueia o teclado da máquina de escrever.
Pressione Stop-SIE A máquina agora está pronta para retomar a execução a partir do local do (agora apagado) "ponto de interrupção". Você pode executar qualquer ação de depuração necessária agora, antes de continuar.

Toda a memória principal poderia ser apagada do console inserindo e executando uma instrução de transferência do endereço para o endereço +1, isso sobrescreveria qualquer marca de palavra, que normalmente interromperia uma instrução de transferência e voltaria ao final da memória. Depois de um momento, pressionar Parar interromperia a instrução de transferência e a memória seria limpa.

Leitor / perfurador de fita de papel IBM 1621/1624

O IBM 1621 Paper Tape Reader podia ler no máximo 150 caracteres por segundo;
O IBM 1624 Paper Tape Punch pode produzir no máximo 15 caracteres / segundo.

Ambas as unidades:

  • poderia lidar com fita de papel de oito canais
  • realizada autoverificação para garantir a precisão
  • acomodou informações numéricas e alfabéticas na codificação de um único caractere.

O leitor de fita 1621 e o perfurador de fita 1624 incluem controles para:

  • Botão liga / desliga - Se "ligado", o leitor da unidade é ligado quando a CPU é ligada.
  • Interruptor Reel-Strip - Este interruptor seleciona se são usados ​​rolos ou tiras de fita de papel.
  • Tecla de alimentação da bobina - Aplica energia às bobinas de alimentação e recepção para posicionar a fita para leitura e coloca o leitor no estado pronto.
  • Chave de saída de não processo - alimenta a fita até que o leitor esteja vazio e tire o leitor do estado de pronto.
Procedimento de bootstrap Notas
Pressione Inserir Desbloqueia o teclado da máquina de escrever e muda para o modo numérico.
Digite 36xxxxx0030049yyyyy
 
xxxxx é o endereço para carregar a fita.
yyyyy é o endereço para iniciar a execução.
imprensa lançamento Bloqueia o teclado da máquina de escrever.
Pressione Iniciar Comece a execução.

Leitor / perfurador de cartão IBM 1622

O leitor / perfurador de cartão IBM 1622 poderia:

  • leia no máximo 250 cartas por minuto
  • perfure um máximo de 125 cartões / minuto.

Os controles do 1622 foram divididos em três grupos: 3 interruptores de controle do soco, 6 botões e 2 interruptores de controle do leitor.

Interruptores Punch Rocker:

  • Punch Off / Punch On - Este botão giratório liga ou desliga o mecanismo de punção.
  • Selecionar Sem Parar / Selecionar Parar - Este balanceiro é selecionado se os cartões mal perfurados (depositados no empilhador de seleção com erro de perfuração em vez do empilhador de seleção normal) deixam a perfuração continuar ou causam uma interrupção na verificação.
  • Fora do processo - Este rocker com o reservatório de perfuração vazio, "esgotou" os cartões restantes do mecanismo de perfuração.

Botões:

  • Iniciar o soco - Pressionar esta tecla com o soco ocioso e ligado, inicia o soco. O computador agora pode perfurar cartões.
  • Parar o soco - Pressionar esta tecla com o soco ativo interrompe o soco.
  • Verificar redefinição - Pressionar esta tecla redefine todas as condições de "verificação de erro" no leitor e na punção.
  • Carregar - Pressionar esta tecla com o leitor inativo e ligado e o computador no modo Manual inicia o leitor, zera o contador do programa (na memória central MARS), lê um cartão no buffer do leitor e verifica se há erros no cartão, e simulou a execução de uma leitura numérica do leitor de cartão para o endereço zero (lendo os 80 caracteres do buffer do leitor nos endereços de memória 00000 a 00079), depois mudou o computador para o modo automático (iniciando a execução no endereço no contador do programa).
  • Parar leitor - Pressionar esta tecla com o leitor ativo interrompe o leitor.
  • Iniciar leitor - Pressionar esta tecla com o leitor inativo e ligado, inicie o leitor e leia um cartão no buffer do leitor e verifique se há erros no cartão. O computador agora pode ler cartas.

Interruptores do Reader Rocker:

  • Non-Process Runout - Este rocker com o reservatório de leitura vazio, "esgotou" os cartões restantes do mecanismo do leitor.
  • Reader Off / Reader On - Este botão liga ou desliga o mecanismo do leitor.
Procedimento de bootstrap Notas
Pressione Carregar

Unidades de disco

Unidades de disco IBM 1311 - Modelo 2 (Escravo) e Modelo 3 (Mestre), conectado a um IBM 1620 II

Os 1311 controles da unidade de disco.

  • Luz do módulo - esta luz mostra o número do inversor. Quando acende, a unidade está pronta para acesso.
  • Chave de desabilitação de comparação - Quando esta chave (somente mestre) está na posição LIGADA e o botão Gravar endereço é pressionado, uma gravação completa da trilha pode ser realizada sem comparar os endereços. Usado para formatar pacotes de disco.
  • Selecione a luz de bloqueio - Quando esta luz (somente mestre), uma ou mais unidades não está funcionando corretamente. Nenhum acesso ao disco pode ser executado.
  • Botão / luz Gravar endereço - Esta tecla (somente mestre) controla a gravação de endereços de setor. Pressioná-lo alterna essa habilitação e liga / desliga sua luz.
  • Chave seletora de habilitação-desabilitação - Esta chave habilita ou desabilita o acesso ao inversor. Se essa chave for desabilitada no mestre, todas as unidades serão desabilitadas, independentemente do estado de suas próprias chaves. Também controla o (s) medidor (es) de tempo de uso do disco.
  • Botão Start Stop - Pressionar esta tecla inicia ou pára o motor da unidade de disco. O motor deve ser parado para abrir a tampa e trocar os pacotes de discos.
Procedimento de bootstrap Notas
Pressione Inserir Desbloqueia o teclado da máquina de escrever e muda para o modo numérico.
Digite 3400032007013600032007024902402
x
y1963611300102
x - Especifica a origem dos cartões de controle do Monitor: 1 = máquina de escrever, 3 = fita de papel, 5 = cartões
y - Especifica a unidade de disco em que o Monitor reside: 1, 3, 5, 7
02402 é o endereço do ponto de entrada do programa Monitor .
imprensa lançamento Bloqueia o teclado da máquina de escrever.
Pressione Iniciar Comece a execução.
Procedimento de reinicialização Notas
Pressione Inserir Desbloqueia o teclado da máquina de escrever e muda para o modo numérico.
Tipo 490225 FLG 6
 
02256̅ é o endereço do local que contém o endereço do ponto de reinicialização do programa Monitor.
Nota: este procedimento assume que o monitor já está carregado na memória
imprensa lançamento Bloqueia o teclado da máquina de escrever.
Pressione Iniciar Comece a execução.

Em geral

O compilador FORTRAN II e o montador SPS eram um tanto complicados de usar pelos padrões modernos, porém, com a repetição, o procedimento logo se tornou automático e você não pensou mais nos detalhes envolvidos.

Procedimento de compilação FORTRAN II Notas
Defina as opções de programa da seguinte forma:
  1. DESLIGADO (sem lista de fontes)
  2. OFF (sem compilação em lote)
  3. DESLIGADO (a fonte é inserida nos cartões)
  4. DESLIGADO (usado apenas se 3 estiver LIGADO )
Passei opções
Defina o interruptor de verificação de estouro para Programa e todos os outros para Parar
Pressione Reset
Carregue os cartões em branco (com a face 12 para baixo primeiro) no reservatório de perfuração e pressione Iniciar perfuração
Carregue a passagem I do compilador (com a face 9 para baixo primeiro) no reservatório de leitura e pressione Carregar Aguarde o Passe I carregar e imprimir na máquina de escrever "ENTRE NO PROGRAMA FONTE, PRESSIONE INICIAR"
Remova a passagem I do compilador do empilhador de leitura
Carregue o deck de origem do programa (com a face 9 para baixo primeiro) no reservatório de leitura e pressione Iniciar Aguarde a conclusão da passagem I e imprima na máquina de escrever "LIGUE O SW 1 PARA A TABELA DE SÍMBOLOS, PRESSIONE INICIAR"
Vire Programa Chave 1 OFF seguida, pressione Iniciar Se uma lista símbolo tabela é desejado para a depuração, ligue interruptor Programa 1 ON vez. A listagem da tabela de símbolos será impressa na máquina de escrever.
Aguarde a passagem I imprimir na máquina de escrever "FIM DA PASSE 1"
Defina as opções de programa da seguinte forma:
  1. OFF (sem número de declaração / lista de endereços)
  2. OFF (não usado)
  3. OFF (sem rastreio para declarações IF)
  4. OFF (sem rastros para declarações aritméticas)
Opções de passe II
Defina o interruptor de verificação de estouro para Programa e todos os outros para Parar
Pressione Reset
Carregue os cartões em branco (com a face 12 para baixo primeiro) no reservatório de perfuração e pressione Iniciar perfuração
Carregue a passagem II do compilador (com a face 9 para baixo primeiro) no reservatório de leitura e pressione Carregar Espere que a passagem II carregue
Remova a passagem II do compilador do empilhador de leitura
Remova a saída intermediária da Passagem I do empilhador de perfuração, em seguida, carregue-a (com a face 9 para baixo primeiro) no reservatório de Leitura e pressione Iniciar Leitor e, em seguida, Iniciar Aguarde a conclusão da passagem II e imprima na máquina de escrever "SW 1 ON TO PUNCH SUBROUTINES, PRESS START"
Remova a saída intermediária do empilhador do leitor
Vire Programa Chave 1 ON , carregue o Subroutine convés (face para baixo 9-edge primeiro) no funil Read, pressione Leitor Iniciar , em seguida, Iniciar Aguarde até que a passagem II imprima na máquina de escrever "FIM DA PASSAGEM II"
Remova o deck de subrotina do empilhador Reader e o deck de objetos completo do empilhador Punch

GOTRAN era muito mais simples de usar, pois produzia diretamente um executável na memória. No entanto, não foi uma implementação completa do FORTRAN.

Para melhorar isso, vários compiladores FORTRAN de terceiros foram desenvolvidos. Um deles foi desenvolvido por Bob Richardson, um programador da Rice University , o compilador FLAG (FORTRAN Load-and-Go). Depois que o deck FLAG foi carregado, tudo o que foi necessário foi carregar o deck de origem para chegar diretamente ao deck de saída; FLAG permaneceu na memória, então estava imediatamente pronto para aceitar o próximo deck de origem. Isso era particularmente conveniente para lidar com muitos trabalhos pequenos. Por exemplo, na Universidade de Auckland, um processador de trabalhos em lote para atribuições de alunos (normalmente, muitos programas pequenos que não requerem muita memória) percorria um lote de classe um pouco mais rápido do que o IBM 1130 posterior fez com seu sistema baseado em disco. O compilador permaneceu na memória e o programa do aluno teve sua chance na memória restante de ser bem-sucedido ou falhar, embora uma falha grave pudesse interromper o compilador residente.

Posteriormente, os dispositivos de armazenamento em disco foram introduzidos, eliminando a necessidade de armazenamento operacional nos baralhos de cartas. Os vários baralhos de cartas que constituem o compilador e o carregador não precisam mais ser buscados em seus gabinetes, mas podem ser armazenados em disco e carregados sob o controle de um sistema operacional simples baseado em disco: muita atividade se torna menos visível, mas ainda continua .

Uma vez que o lado perfurado do leitor de cartão não imprimia os caracteres na parte superior dos cartões, era necessário levar todos os decks de saída para uma máquina separada , normalmente um IBM 557 Alphabetic Interpreter, que lia cada cartão e imprimiu seu conteúdo na parte superior. As listagens geralmente eram geradas perfurando um baralho de listagem e usando uma máquina de contabilidade IBM 407 para imprimir o baralho.

Implementação de hardware

Um cartão de sistema modular padrão (SMS)

A maior parte do circuito lógico do 1620 era um tipo de lógica resistor-transistor (RTL) usando transistores "drift" (um tipo de transistor inventado por Herbert Kroemer em 1953) para sua velocidade, que a IBM chamou de Saturated Drift Transistor Resistor Logic (SDTRL). Outros tipos de circuitos IBM usados ​​foram chamados de: Liga (alguma lógica, mas principalmente várias funções não lógicas, nomeadas para o tipo de transistores usados), CTRL (outro tipo de RTL, mas mais lento que SDTRL ), CTDL (um tipo de lógica de diodo-transistor (DTL) e DL (outro tipo de RTL, nomeado para o tipo de transistor usado, transistores "drift"). Os níveis lógicos típicos de todos esses circuitos ( Nível S ) eram altos: 0 V a -0,5 V, baixo: -6 V a -12 V. Os níveis lógicos da linha de transmissão dos circuitos SDTRL ( Nível C ) eram altos: 1 V, baixo: -1 V. Circuitos de relé usados ​​de dois níveis lógicos ( Nível T ) alto: 51 V a 46 V, baixo: 16 V a 0 V ou ( Nível W ) alto: 24 V, baixo: 0 V.

Esses circuitos foram construídos de componentes individuais discretos montados em placas de circuito impresso de papel epóxi de um lado 2,5 por 4,5 polegadas (64 por 114 milímetros) com um conector de borda folheado a ouro de 16 pinos , que a IBM chamou de cartões SMS ( Sistema Modular Padrão ) A quantidade de lógica em uma placa era semelhante à de um SSI série 7400 ou pacote MSI mais simples (por exemplo, 3 a 5 portas lógicas ou alguns flip-flops).

Essas placas eram inseridas em soquetes montados em racks semelhantes a portas, que a IBM chamava de portas . A máquina tinha as seguintes "portas" em sua configuração básica:

  • "Portão A" - Portão com dobradiças dianteiro que se abre na parte de trás para acesso, após o "Portão B".
  • "Portão B" - Portão traseiro com dobradiças que se abre na parte de trás para acesso.
  • "Portão C" - desliza para fora para acesso. Interface do console da máquina de escrever. Principalmente lógica de relé .
  • "Portão D" - desliza para fora para acesso. Interface de E / S padrão.

Havia dois tipos diferentes de memória central usados ​​em 1620:

  • Memória principal
    • Endereçamento de linha XY atual coincidente
      • 20.000, 40.000 ou 60.000 dígitos
    • Par de dígitos pares e ímpares de 12 bits
    • 12 planos de um bit em cada módulo, 1 a 3 módulos
      • 10.000 núcleos por plano
  • Memória de armazenamento de registro de endereço de memória (MARS)
    • Endereçamento Word Line
      • 16 palavras, mínimo de oito usadas na configuração básica
      • Leitura de uma única palavra, limpeza / gravação de várias palavras
    • Endereço de memória decimal de 24 bits e 5 dígitos (não 8 - Dez mil bits armazenados)
    • 1 avião
      • 384 núcleos

A lógica de decodificação de endereço da memória principal também usou dois planos de 100 núcleos de transformador de pulso por módulo para gerar os pulsos de meia-corrente da Linha XY.

Havia dois modelos do 1620, cada um com implementações de hardware totalmente diferentes:

História de desenvolvimento

Um computador para o "pequeno mercado científico"

Em 1958, a IBM montou uma equipe em Poughkeepsie, laboratório de desenvolvimento de Nova York para estudar o "pequeno mercado científico". Inicialmente, a equipe era formada por Wayne Winger (Gerente), Robert C. Jackson e William H. Rhodes.

Requisitos e design

Os computadores concorrentes neste mercado foram o Librascope LGP-30 e o Bendix G-15 ; ambos eram máquinas de memória de tambor . O menor computador da IBM na época era o popular IBM 650 , uma máquina decimal de comprimento fixo de palavra que também usava memória de tambor. Todos os três tubos de vácuo usados . Concluiu-se que a IBM não poderia oferecer nada realmente novo nessa área. Para competir com eficácia, seria necessário o uso de tecnologias que a IBM havia desenvolvido para computadores maiores, mas a máquina teria que ser produzida com o menor custo possível.

Para cumprir esse objetivo, a equipe definiu os seguintes requisitos:

  • Memória central
  • Conjunto de instruções restritas
    • Sem instruções de divisão ou ponto flutuante, use sub-rotinas no "pacote de programa geral"
  • Sempre que possível, substitua o hardware por funções lógicas de máquina existentes
    • Sem circuitos aritméticos, use tabelas na memória central
  • Entrada / saída menos cara possível
    • Sem cartões perfurados, use fita de papel
    • Sem impressora, use a máquina de escrever do console do operador

O protótipo

A equipe se expandiu com a adição de Anne Deckman, Kelly B. Day, William Florac e James Brenza. Eles completaram o protótipo CADET (codinome) na primavera de 1959.

Enquanto isso, a instalação de San Jose, Califórnia , estava trabalhando em uma proposta própria. A IBM só poderia construir um dos dois e a proposta de Poughkeepsie venceu porque "a versão San Jose é top de linha e não é expansível, enquanto sua proposta tem todos os tipos de capacidade de expansão - nunca ofereça uma máquina que não possa ser expandida".

IBM1620A.jpg
IBM 1620 Modelo I Nível A (protótipo), como apareceu

no anúncio da máquina da IBM.

A gerência não estava totalmente convencida de que a memória central pudesse funcionar em máquinas pequenas, então Gerry Ottaway foi emprestado à equipe para projetar uma memória de bateria como backup. Durante o teste de aceitação pelo Laboratório de Teste de Produto, repetidas falhas de memória central foram encontradas e parecia provável que as previsões da administração se tornariam realidade. No entanto, no último minuto, descobriu-se que o ventilador de muffin usado para soprar ar quente através da pilha de núcleos estava com defeito, fazendo com que o núcleo captasse pulsos de ruído e não conseguisse ler corretamente. Depois que o problema do ventilador foi corrigido, não houve mais problemas com a memória do núcleo e o esforço de design da memória do tambor foi descontinuado por desnecessário.

Transferido para San Jose para produção

Após o anúncio do IBM 1620 em 21 de outubro de 1959, devido a uma reorganização interna da IBM, foi decidido transferir o computador da Divisão de Processamento de Dados em Poughkeepsie (somente computadores mainframe de grande escala) para a Divisão de Produtos Gerais em San Jose ( pequenos computadores e produtos de suporte apenas) para fabricação.

Após a transferência para San Jose, alguém lá brincando sugeriu que o codinome CADET na verdade significava " C an't A dd, D oesn't E ven T ry", referindo-se ao uso de tabelas de adição na memória em vez de circuitos de adição dedicados (e SDTRL na verdade significava " S old D own T he R iver L ogic" tornou-se uma piada comum entre os CEs). Isso pegou e se tornou muito conhecido entre a comunidade de usuários.

"Níveis" de implementação

  • Modelo I
    • Nível A; protótipo.
      • Todos os flip-flops no projeto eram versões transistorizadas do circuito de gatilho Eccles-Jordan original . Embora esta máquina estivesse totalmente funcional, descobriu-se que o acoplamento do capacitor usado nelas provou ser problemático no ambiente de sinal ruidoso de relés e interruptores acionados por came de temporização usados ​​para acionar o console da máquina de escrever. Isso exigiu um redesenho completo da máquina para usar flip-flops SR em vez disso (exceto para dois gatilhos usados ​​para gerar relógios para os flip-flops SR ). No entanto, o uso do termo Trigger foi mantido em toda a documentação quando se referia a um flip-flop, pois era o termo convencional da IBM (como alphamerics era seu termo para alfanuméricos).
      • Este é o único nível que usa um painel de controle vertical de uma peça, quando o design foi transferido de Poughkeepsie para San Jose, ele foi redesenhado para o painel de controle angular de duas peças usado em todos os modelos de produção.
    • Nível B; primeira produção.
      • Este é o único nível que usa um painel de controle inferior de alumínio polido, os níveis posteriores terminam este painel com branco.
    • Nível C; introdução do leitor / perfurador de cartão 1622.
    • Nível D; introdução de 1311 drives de disco e adição de "Gate J" opcional contendo lógica de controle de disco.
    • Nível E; introdução da opção de Ponto Flutuante.
    • Nível F
    • Nível G; introdução da opção de interrupção (necessária para IBM 1710 ).
      • Não suportava sub-rotinas BT e BB no código de interrupção!
      • Lógica de controle de disco na lógica "Gate J" mesclada em "Gate A" e "Gate B".
        • Tornado possível porque grande parte da lógica foi compactada usando cartões projetados para o Modelo II.
    • Nível H; opção de interrupção aprimorada que oferece suporte a sub-rotinas BT e BB no código de interrupção.
      • Versão final do Modelo I.
  • Modelo II (nenhuma informação sobre "Níveis" disponível no momento)
O 1620 Modelo II introduziu hardware ALU básico para adição e subtração (tornando " C an't A dd, D oesn't E ven T ry" não mais aplicável) e registradores de índice .
  • Modelo III
    • O trabalho foi iniciado em um 1620 Model III, mas o projeto foi rapidamente cancelado porque a IBM queria promover as vendas de seu novo System / 360 e descontinuar as linhas antigas.

Patentes

  • Patente dos EUA 3.049.295  - Multiplicando Computador
    • Pedido de patente: 20 de dezembro de 1960
    • Patente emitida: 14 de agosto de 1962
    • Inventores
      • William H. Rhodes
      • James G. Brenza
      • Wayne D. Winger
      • Robert C. Jackson
    • Reivindicações e referências da arte anterior
      • 21 reivindicações
      • Sem arte anterior
    • Diagramas e Texto
      • 156 folhas de diagramas (Descreve 1620 em detalhes completos.)
      • 31 folhas de texto
  • Patente dos EUA 3.328.767  - Tabela de consulta de dados compactos
    • Pedido de patente: 31 de dezembro de 1963
    • Patente emitida: 27 de junho de 1967
    • Inventores
      • Gerald H. Ottaway
    • Reivindicações e referências da arte anterior
      • 11 reivindicações
      • 5 arte anterior
    • Diagramas e Texto
      • 5 folhas de diagramas
      • 4 folhas de texto
  • Patente dos EUA 3.199.085  - Computador com recurso de unidade aritmética de pesquisa de tabela
    • Pedido de patente: 20 de dezembro de 1960
    • Patente emitida: 3 de agosto de 1965
    • Inventores
      • William H. Rhodes
      • James G. Brenza
      • Wayne D. Winger
    • Reivindicações e referências da arte anterior
      • 21 reivindicações
      • 5 arte anterior
    • Diagramas e Texto
      • 156 folhas de diagramas (Descreve 1620 em detalhes completos.)
      • 31 folhas de texto
  • Patente dos EUA 3.239.654  - Computador de divisão
    • Pedido de patente: 8 de fevereiro de 1961
    • Patente emitida: 8 de março de 1966
    • Inventores
      • Robert C. Jackson
      • William A. Florac
      • Wayne D. Winger
    • Reivindicações e referências da arte anterior
      • 9 reivindicações
      • 1 arte anterior
      • 3 publicações
    • Diagramas e Texto
      • 13 folhas de diagramas
      • 19 folhas de texto

Usos notáveis

Um IBM 1620 modelo II foi usado por Vearl N. Huff, sede da NASA (FOB 10B, Washington DC) para programar uma simulação tridimensional em Fortran da cápsula Gemini amarrada - módulo de foguete Agena problema de dois corpos em um momento em que era não completamente compreendido se era seguro amarrar dois objetos juntos no espaço devido a possíveis colisões induzidas por amarração elástica. O mesmo computador também foi usado para simular as órbitas dos voos da Gemini, produzindo gráficos de impressão de cada órbita. Essas simulações foram feitas durante a noite e os dados examinados no dia seguinte.

Em 1963, um IBM 1620 foi instalado no IIT Kanpur, proporcionando o melhoramento para as proezas de software da Índia.

Em 1964, na Australian National University, Martin Ward usou um IBM 1620 modelo I para calcular a ordem do grupo Janko J 1 .

Em 1966, a ITU produziu um filme explicativo em um sistema de 1963 para composição por computador no Washington Evening Star , usando um IBM 1620 e um fotocompositor Linofilm .

Uso no cinema e na televisão

  • Um programa de rádio foi desenvolvido pelo DJ Rege Cordic para a KDKA Pittsburgh, baseado em um simulador de jogo de beisebol desenvolvido por John Burgeson, da IBM e seu irmão, Paul, então alferes da Marinha dos Estados Unidos. Este programa foi usado em vários eventos de demonstração nos anos 1960 a 1963 como um exemplo do poder dos computadores para realizar exercícios de simulação.
  • O computador fictício Colossus of Colossus: O Projeto Forbin usou cerca de uma dúzia de 1620 painéis frontais sucateados adquiridos no mercado de excedentes, em várias orientações.
  • Um arranjo semelhante foi usado em um último episódio de TV e um filme de The Man from UNCLE para retratar um supercomputador THRUSH .

Primeiros encontros de alunos

  • O Dr. James Oliver, professor de química da University of Southwestern Louisiana, obteve uma bolsa e comprou um 1620 em 1959 e ministrou o primeiro curso de informática da universidade naquele ano.
  • A Oklahoma State University tinha um IBM 1620 para estudantes de engenharia na década de 1960.
  • A Bronx High School of Science da cidade de Nova York disponibilizou seu IBM 1620 para os alunos de cursos técnicos avançados.

Anedotas

CADETE

Muitos na comunidade de usuários se lembram do 1620 sendo referido como CADET , brincando que significa " C an't A dd, D oesn't E ven T ry", referindo-se ao uso de tabelas de adição na memória em vez de circuitos de adição dedicados.

Consulte o histórico de desenvolvimento para obter uma explicação de todas as três interpretações conhecidas do nome de código da máquina.

O nome de código interno CADET foi selecionado para a máquina. Um dos desenvolvedores diz que isso significava " C omputer com AD vanced E conomic T ecnologia", no entanto os outros recuperá-lo como sendo simplesmente um meio de "ESPAÇO - CADETE" , onde ESPAÇO era o nome de código interno do IBM 1401 máquina, também então em desenvolvimento.

Referências

links externos