# IBM 700/7000

A Série IBM 700/7000 foi uma série de computadores de grande tamanho (Mainframe) construída pela IBM desde a década de 1950 até ao início da década de 1960. A série incluía várias arquiteturas de processador incompatíveis. Os 700s usavam lógica de tubos de vácuo e voltaram-se obsoletos com a introdução dos 7000s transistorizados. Os 7000s, em seu momento, foram substituídos pelo System/360, o qual foi anunciado em 1964. No entanto o 360/65, o primeiro 360 completo capaz de substituir aos 7000s, não esteve disponível até novembro de 1965. Problemas iniciais com o VOS/360 e o alto custo de converter o software manteve em serviço muitos dos computadores 7000s por vários anos.

## Arquiteturas

A série IBM 700/7000 tinha seis formas completamente diferentes de alojar dados e instruções:
* Primeiro (palavras de 36/18 bit): 701 (Computador de Defesa)
* Cientista (palavras de 36 bit): 704, 709, 7090, 7094, 7040, 7044
* Comercial (correntes de caracteres de longo variável): 702, 705, 7080
* Série 1400 (correntes de caracteres de longo variável): 7010
* Decimal (palavras de 10 dígitos): 7070, 7072, 7074
* Supercomputador (palavras de 64 bit): 7030 "Stretch" ("esticada")
A classe 700 usava válvulas termoiônicas, a classe 7000 estava transistorizada. Todas as máquinas usavam (como muitos computadores da época) memória de núcleo magnético; excepto nos primeiros modelos 701 e 702, os quais usavam memória CRT. Enquanto as arquiteturas eram diferentes, as máquinas compartilhavam a mesma classe de tecnologia electrónica e geralmente usavam os mesmos periféricos incluindo as unidades de fita (IBM 727 e IBM 729), leitores de cartões, perfuradoras de cartões e impressoras. Os primeiros periféricos adoptaram a tecnologia das máquina de contabilidade da IBM e inclusive usavam os plugboards. Posteriormente os periféricos foram adoptados pela série IBM 1400 de linha média.
Os primeiros computadores venderam-se sem software. Quando surgiram os sistemas operativos, com quatro diferentes arquiteturas de mainframes mais a arquitetura de linha média da série 1400, se converteu num importante problema para a IBM, já que significava pelo menos quatro desenvolvimentos de software diferentes.
O System/360 combinava as melhores características da arquitetura das séries 7000 e 1400 num só desenho, no entanto alguns modelos 360 tinham características opcionais que permitiam emular as instruções do 1400 e 7000. Um dos argumentos de venda do IBM System/370 foi a emulação da série 1400/7000 melhorada (permitia o fazer baixo controle do sistema operativo, em lugar de reiniciar o sistema e arrancar em modo emulação, como se fazia com o 360).

## Primeira Arquitetura (701)

Conhecido como o Computador de Defesa durante o desenvolvimento no laboratório da IBM em Poughkeepsie, esta máquina se deu a conhecer oficialmente a 7 de abril de 1953 como a Máquina de Processamento de Dados Electrónica IBM 701.

### Formatos de Dados

Os números tinham uma longitude de 36 ou 18 bits, e só de vírgula fixa. (Ver: Porquê palavras de 36 bits?)
* Os números de vírgula fixa eram armazenados em binário com formato de sinal/magnitude.

### Formato de Instruções

As instruções eram de 18 bits de comprimento, de direcionamento simples.
* Sinal (1 bit) - Direcionamento de operandos de palavra completa (-) ou média palavra (+)
* Opcode (5 bits) - 32 instruções
* Direcionamento (12 bits) - 4096 direcções em media palavra
Para expandir a memória de 2048 a 4096 palavras, uma 33ª instrução acrescentava-se para usar o bit mais significativo do campo de direção para seleccionar o banco (Esta instrução foi criada provavelmente usando a instrução "No OP", a qual parece ter sido a única instrução com bits não usados, e que originalmente ignorava seu campo de direcção. No entanto, a documentação sobre esta nova instrução não está disponível atualmente).

### Registos

Os registos do processador consistiam em :
* AC - Acumulador de 38-bit
* MQ - Coeficiente multiplicador de 36-bit

### Memória

2.048 ou 4.096 palavras binárias de 36 bits, com caracteres de 6 bits

## Arquitetura Científica (704/709/7090/7094)
### Formatos de Dados

Os números são de 36 bits, com vírgula fixa e flutuante.
* Os números de vírgula fixa são guardadas em binário em formato de sinal/magnitude.
* Os números de precisão simples vírgula flutuante tinham signo, 8-bit excesso/128 bit de expoente, e magnitude de 29 bits
* Os números de dupla precisão, introduzidos em 7094, tinham sinal, 17-bit excesso-65536 expoente, e uma magnitude de 54
* Os caracteres alfanuméricos tinham 6-bit em formato BCD
O formato de instruções básico tinha 3 bit de prefixo, 15 bit de decremento, 3 bit de etiqueta("tag"), e 15 bit de direcionamento. O campo de prefixo especificava o tipo de instrução. O campo de decremento com frequência continha um operando imediato que modificava o resultado da operação, ou era usado para definir o tipo de instrução. Os 3 bits de etiqueta especificavam três (sete no 7094) índices de registo, o conteúdo da cada um era restado da direção para obter a direção efectiva. O campo de direção continha tanto uma direção como um operando imediato.
Os registos do processador consistiam em:
* AC - Acumulador de 38-bit
* MQ - Coeficiente multiplicador de 36-bit
* XR - Índice de registo de 15-bit (três ou sete)
* SE - Indicador de estado de 36-bit
Os registo do acumulador (e o coeficiente multiplicador) estavam em formato de sinal/magnitude.
Os Índices de registos operavam usando o formato de complemento a 2 e quando se usavam para modificar uma direcção de instrução eram restados da direção na instrução. Em máquinas com três índices de registo, se a etiqueta ("tag") tinha um conjunto de 2 ou 3 bits (p.e. selecção de múltiplos registos) então seus valores eram juntados antes subtraindo. O IBM 7094, com sete índices de registo tinha um modo "compatibilidade" para poder usar os programas das primeiras máquinas.
Os indicadores de estado permitiam interactuar com o operador através de um painel com interruptores e luzes.
* 704
** 4.096, 8.192 ou 32.768; palavras binárias de 36 bit com caracteres de 6 bit
* 709, 7090, 7094, 7094 II
** 32.768; 36-bit palavras binárias de 36 bit com caracteres de 6 bit

### Entrada/Saída

A série 709/7090 usava Canais Sincronizadores de Dados para a entrada/saída de alta velocidade, como fita e discos. Os CSDs executavam seus próprios programas simples da memória do computador que controlavam a transferência de dados entre a memória e os dispositivos de E/S. A E/S da perfuradora de cartões e da impressora de alta velocidade eram com frequência transferidos a fitas magnéticas e manejada desde uma IBM 1401 separada. Mais adiante, os canais de dados foram usados para ligar um 7094 e um 7044 para formar o IBM 7094/7044 Direct Coupled System (DCS) ("Sistema Directo Acoplado"). Nesta configuração, o 7044 manejava principalmente a E/S.

### Programa Montador FORTRAN

O Programa Montador FORTRAN (FORTRAN Assembly Program, FAP) foi o macro montador por padrão para o 709, 7090, e o 7094.
Sua pseudo-operação BSS, usada para reservar memória, é a origem do nome comum da "secção BSS", que ainda se usa em muitas linguagens montadoras hoje em dia para designar faixas de direcções de memória reservada do tipo que não tem que ser gravada na imagem executável.

## Arquitetura Comercial (702/705/7080)

O IBM 702 e o IBM 705 eram similares e o 705 podia correr muitos dos programas do 702 sem modificações, mas não eram totalmente compatíveis.
O IBM 7080 foi a versão transitorizada do 705, com várias melhoras. Para compatibilidade para abaixo, podia correr em modo 705 I, modo 705 II, modo 705 III ou em modo 7080 completo.

### Formato de Dados

Os dados eram representados por cadeias de longitude variáveis finalizadas com uma marca de gravação.
Cinco caracteres: um carácter de opcode e 4 caracteres de direcção - OAAAA
* 702
** dois acumuladores (A & B) - 512 caracteres
* 705
** um acumulador - 256 caracteres
** 14 unidades de armazenamento auxiliar - 16 caracteres
** 1 unidades de armazenamento auxiliar - 32 caracteres
* 7080
** 1 acumulador - 256 caracteres
** 30 unidades de armazenamento auxiliar - 512 caracteres
** 32 unidades de armazenamento de comunicação - 8 caracteres
* 702
** 2.000 to 10.000 caracteres em tubo de Williams (em incrementos de 2.000 caracteres)
** Taxa de ciclo de caracteres - 23 microsegundos
* 705 (modelos I, II, ou III)
** 20.000 ou 40.000 ou 80.000 caracteres de memória de núcleo magnético
** Taxa de ciclo de caracteres - 17 microsegundos ou 9,8 microsegundos
* 7080
** 80.000 ou 160.000 caracteres de memória de núcleo magnético
** Taxa de ciclo de caracteres - 2,18 microsegundos

## Arquitetura Série 1400 (7010)

A arquitetura comercial do 700/7000 estava inspirada na muito exitosa Série IBM 1400 de computadores administrativos de linha média. Posteriormente a IBM introduziu a versão mainframe do IBM 1410 chamado IBM 7010.
Os dados eram representados por cadeias de longitude variáveis finalizadas com uma marca de palavra
Comprimento variável: 1, 2, 6, 7, 11, ou 12 caracteres.
Nenhum, todas as instruções operavam na memória.
100.000 caracteres.

## Arquitetura Decimal (7070/7072/7074)

O IBM 7070, IBM 7072 e o IBM 7074 eram máquinas decimais, com palavras de comprimento fixo. Usavam 10 dígitos como o pequeno e mais antigo IBM 650, mas o seu jogo de instruções não era compatível com este.
* Comprimento de palavra - 10 dígitos decimais mais o sinal
* Codificação de Dígito - código two-out-of-five
* Vírgula Flutuante - opcional. Expoente de dois dígitos.
* Três sinais para a cada palavra - Mais, Menos e Alfa
** Mais e Menos indicavam valores numéricos de 10 dígitos.
** Alfa indicava 5 caracteres de textos codificados por pares de dígitos. 61 = A, 91 = 1.
* Todas as instruções eram de uma palavra
* 2 dígitos de op code (incluindo só sinal, Mais ou Menos)
* 2 dígitos de índice de registo
* 2 dígitos para campo de controle - permitia selecionar o conjunto de dígitos, deslocação à esquerda ou direita
* 4 dígitos de direção
* Todos os registos eram de uma palavra, podiam ser direcionados como memória
* Acumuladores - 3 (direções 9991, 9992, e 9993 - padrão; 99991, 99992, e 99993 - 7074 estendido)
* Registo de Programa - 1 (direção 9995 - regular; 99995 - 7074 estendido)
** Direccionáveis da consola somente. Aloja a direção atual.
* Contador de Instrução - 1 (direção 9999 - regular; 99999 - 7074 estendido)
** Direccional da consola somente.
* Índice de Registo - 99 (direções 0001-0099)
* 5.000 a 9.990 palavras (regular)
* 15.000 a 30.000 palavras (7074 estendido)
* Tempo de Acesso - 6 microsegundos (7070/7072), 4 microsegundos (7074)
* Tempo de soma - 72 microsegundos (7070), 12 microsegundos (7072), 10 microsegundos (7074)

## Série IBM 700, valvulares, década de 1950

* IBM 701 - Primeiro computador electrónico de IBM - introduzido em 1952
* IBM 702 - comercial - introduzido em 1953
* IBM 704 - científico - introduzido em 1954
* IBM 705 - comercial - introduzido em 1954
* IBM 709 - científico - introduzido em 1958

## série IBM 7000, transistorizados, década de 1960

* IBM 7010 - Versão de faixa alta do IBM 1410 - introduzido em 1962
* IBM 7030 - Supercomputador ampliado - introduzido em 1961
* IBM 7040 - científico - introduzido em 1963
* IBM 7044 - científico - introduzido em 1963
* IBM 7070 - decimal - introduzido em 1960
* IBM 7072 - decimal - introduzido em 1962
* IBM 7074 - decimal - introduzido em 1961; usado pelo Internal Revenue Service dos E.U.A. em 1962
* IBM 7080 - comercial - introduzido em 1961
* IBM 7090 - científico - introduzido em 1959
* IBM 7094 - científico - introduzido em 1962
* IBM 7094 II - científico - introduzido em 1964