CDC 7600 - CDC 7600

CDC 7600
CDC7600 main overview.png
Renderização 3D com uma figura como escala
Projeto
Fabricante Control Data Corporation
Designer Seymour Cray
Data de lançamento Junho de 1967
Unidades vendidas +75
Preço $ 62 - $ 155 mil (aluguel mensal em 1968)
Invólucro
Dimensões Altura: 188 cm (74 pol.)
Largura: 302 cm (119 pol.)
Poder 95 kW a 208 V 400 Hz
Sistema
Sistema operacional Chippewa, SCOPE, KRONOS
CPU Processador de 60 bits a 36 MHz
Memória 3,84 Megabytes (até 512000 palavras de 60 bits)
MIPS 15 MIPS
FLOPS 36 MFLOPS
Antecessor CDC 6600
Sucessor CDC Cyber

O CDC 7600 foi o sucessor projetado por Seymour Cray do CDC 6600 , estendendo o domínio da Control Data no campo dos supercomputadores até a década de 1970. O 7600 funcionou a 36,4 MHz (ciclo de clock de 27,5 ns) e tinha uma memória primária de 65 Kword (com tamanho de palavra de 60 bits) usando núcleo magnético e memória secundária de tamanho variável (até 512 Kword) (dependendo do local). Geralmente era cerca de dez vezes mais rápido que o CDC 6600 e podia entregar cerca de 10 MFLOPS em código compilado manualmente, com um pico de 36 MFLOPS. Além disso, em testes de benchmark no início de 1970, mostrou-se um pouco mais rápido do que seu rival IBM , o IBM System / 360 , Modelo 195. Quando o sistema foi lançado em 1967, era vendido por cerca de US $ 5 milhões em configurações básicas, e consideravelmente mais à medida que opções e recursos foram adicionados.

Entre as notáveis ​​contribuições de última geração do 7600, além da extensa tubulação , estava a forma física em C, que tanto reduzia o espaço físico quanto aumentava drasticamente o desempenho, reduzindo a distância que os sinais precisavam viajar.

Projeto

À medida que o 6600 se aproximava da qualidade de produção, Cray perdeu o interesse nele e começou a projetar sua substituição. Tornar uma máquina "um pouco" mais rápida não seria muito difícil no final dos anos 1960; a introdução de circuitos integrados permitiu um empacotamento mais denso de componentes e, por sua vez, uma maior velocidade de clock. Os transistores em geral também estavam ficando um pouco mais rápidos à medida que os processos de produção e a qualidade melhoravam. Pode-se esperar que esses tipos de melhorias tornem uma máquina duas vezes mais rápida, talvez até cinco vezes. No entanto, como com o design da 6600, Cray estabeleceu para si mesmo a meta de produzir uma máquina com dez vezes o desempenho.

Uma das razões pelas quais o 6600 era muito mais rápido do que seus contemporâneos é que ele tinha várias unidades funcionais que podiam operar em paralelo. Por exemplo, a máquina pode realizar uma adição de dois números ao mesmo tempo em que multiplica dois outros. No entanto, qualquer instrução precisava completar sua viagem pela unidade antes que a próxima pudesse ser alimentada, o que causava um gargalo quando o sistema do planejador ficava sem instruções. Adicionar mais unidades funcionais não melhoraria o desempenho, a menos que o planejador também fosse muito melhorado, especialmente em termos de permitir que ele tenha mais memória, para que pudesse procurar mais instruções para aquelas que poderiam ser alimentadas nas unidades paralelas. Isso parecia ser um grande problema.

Para resolver esse problema, Cray voltou-se para o conceito de pipeline de instruções . Cada unidade funcional consistia em várias seções que operavam sucessivamente, por exemplo, uma unidade de adição pode ter circuitos dedicados a recuperar os operandos da memória, depois a unidade matemática real e, finalmente, outra para enviar os resultados de volta à memória. Em qualquer instância, apenas uma parte da unidade estava ativa, enquanto o resto esperava sua vez. Um pipeline melhora isso alimentando a próxima instrução antes que a primeira seja concluída, usando todo o tempo ocioso. Por exemplo, enquanto uma instrução está sendo adicionada, os operandos para a próxima instrução adicionada podem ser buscados. Dessa forma, assim que a instrução atual for concluída e passar para o circuito de saída, os operandos para a próxima adição já estarão esperando para serem adicionados. Desta forma, cada unidade funcional funciona em "paralelo", assim como a máquina como um todo. A melhoria no desempenho geralmente depende do número de etapas que a unidade leva para concluir. Por exemplo, a unidade de multiplicação do 6600 levou 10 ciclos para completar uma instrução, portanto, ao canalizar as unidades, poderia ser esperado que ganhasse cerca de 10 vezes a velocidade.

As coisas nunca são tão simples, no entanto. O pipelining requer que os componentes internos da unidade possam ser efetivamente separados até o ponto em que cada etapa da operação seja executada em circuitos completamente separados. Isso raramente é possível no mundo real. No entanto, o uso de pipelining no 7600 melhorou o desempenho em relação ao 6600 por um fator de cerca de 3. Para atingir o resto da meta, a máquina teria que funcionar a uma velocidade mais rápida, agora possível usando novos designs de transistor. No entanto, há um limite físico para o desempenho devido ao tempo que os sinais levam para se mover entre as partes da máquina, que por sua vez é definido por seu tamanho físico. Como sempre, o trabalho de design de Cray despendeu um esforço considerável neste problema e, portanto, permite frequências de operação mais altas. Para o 7600, cada módulo de circuito consistia, na verdade, em até seis placas de circuito impresso , cada uma preenchida com resistores subminiatura, diodos e transistores. As seis placas foram empilhadas e, em seguida, interconectadas ao longo de suas bordas, formando um módulo muito compacto, mas basicamente irreparável.

No entanto, a mesma embalagem densa também levou ao maior problema da máquina - o calor. Para o 7600, Cray mais uma vez recorreu a seu engenheiro de refrigeração, Dean Roush, ex- integrante da empresa Amana . Roush acrescentou uma placa de alumínio na parte de trás de cada lado da pilha de lenha , que por sua vez era resfriada por um sistema de freon líquido que passava pelo núcleo da máquina. Como este sistema era mecânico e, portanto, sujeito a falhas, o 7600 foi redesenhado em uma grande forma de "C" para permitir o acesso aos módulos em ambos os lados da tubulação de resfriamento, entrando no interior do "C" e abrindo o gabinete .

Arquitetura

O 7600 foi um marco arquitetônico e a maioria de seus recursos ainda são partes padrão do design do computador. É um computador com conjunto de instruções reduzido com uma palavra de instrução de 15 bits contendo um código de operação de 6 bits. Existem apenas 64 códigos de máquina, incluindo um código sem operação , sem operações de multiplicação ou divisão de ponto fixo no processador central.

O 7600 tem duas memórias principais. A memória de núcleo pequeno contém as instruções que estão sendo executadas e os dados que estão sendo processados. Ele tem um tempo de acesso de 10 dos ciclos menores de 27,5 ns e um comprimento de palavra de 60 bits. A memória de núcleo grande mantém os dados prontos para transferência para a memória de núcleo pequeno. Tem um tempo de acesso de 60 dos ciclos menores de 27,5 ns e um comprimento de palavra de 480 bits (512 bits com paridade). Os acessos são totalmente pipeline e armazenados em buffer, de forma que os dois tenham a mesma taxa de transferência sequencial de 60 bits a cada 27,5 ns. Os dois funcionam em paralelo, de modo que a taxa de transferência sequencial de um para o outro é de 60 bits por ciclo menor de 27,5 ns. Em uma chamada de sistema operacional, o conteúdo da memória central pequena é trocado e substituído da memória central grande pelo sistema operacional e restaurado posteriormente.

Há um pipeline de instrução de 12 palavras, chamado pilha de palavras de instrução na documentação do CDC. Todos os endereços na pilha são buscados, sem esperar que o campo de instrução seja processado. Portanto, a busca da instrução de destino de uma ramificação condicional precede a avaliação da condição de ramificação. Durante a execução de um loop de 10 palavras (até 40 instruções), todas as instruções necessárias permanecem na pilha, portanto, nenhuma instrução é buscada, deixando uma pequena memória central livre para transferências de dados.

Existem oito registradores de 60 bits, cada um com um registrador de endereço. Mover um endereço para um registrador de endereço inicia uma pequena leitura ou gravação da memória central. As instruções aritméticas e lógicas têm esses registros como fontes e destinos. O programador ou compilador tenta buscar dados a tempo de serem usados ​​e armazená-los antes que mais dados precisem do mesmo registro, mas se não estiver pronto, o processador entra em um estado de espera até que esteja. Ele também espera se uma das quatro unidades aritméticas de ponto flutuante não estiver pronta quando solicitada, mas devido ao pipelining, isso geralmente não acontece.

Relacionamento com o CDC 6600

O CDC 7600 "foi projetado para ser compatível com o código de máquina do 6600, mas para fornecer um aumento substancial no desempenho". Um usuário disse: "A maioria dos usuários pode executar em qualquer sistema sem alterações."

Embora o 7600 compartilhasse muitos recursos do 6600, incluindo hardware, instruções e seu tamanho de palavra de 60 bits, ele não era compatível com o código-objeto do CDC 6600. Além disso, não era totalmente compatível com o código-fonte ( COMPASS ), como algumas instruções no 7600 não existiam no 6600 e vice-versa. Ele havia sido originalmente chamado de CDC 6800, mas foi alterado para 7600 quando Cray decidiu que não poderia ser totalmente compatível. No entanto, devido ao design do sistema operacional do 7600, o 6600 e o 7600 compartilhavam um "ambiente de software uniforme", apesar das diferenças de baixo nível.

Na verdade, de uma perspectiva de alto nível, o 7600 era bastante semelhante ao 6600. Na época, a memória do computador podia ser organizada em blocos com caminhos de acesso independentes, e os projetos de Cray usaram isso a seu favor. Enquanto a maioria das máquinas usaria uma única CPU para executar todas as funcionalidades do sistema, Cray percebeu que isso significava que cada bloco de memória passava uma quantidade considerável de tempo ocioso enquanto a CPU processava instruções e acessava outros blocos. Para tirar proveito disso, o 6600 e o 7600 deixaram tarefas domésticas rotineiras, impressão ou leitura de cartões perfurados , por exemplo, para uma série de dez máquinas menores de 12 bits baseadas no CDC 160A conhecidas como "Unidades de processamento periférico", ou PPUs. Para qualquer ciclo da máquina, uma das PPUs estava no controle, alimentando dados na memória enquanto o processador principal processava os números. Quando o ciclo foi concluído, o próximo PPU recebeu o controle. Desta forma a memória sempre mantinha informações atualizadas para o processador principal trabalhar (barrando atrasos nos próprios dispositivos externos), eliminando atrasos nos dados, além de permitir que a CPU fosse construída para desempenho matemático e nada mais . O PPU poderia ser chamado de um "canal de comunicação" muito inteligente.

Como o 6600, o 7600 usava palavras de 60 bits com instruções que geralmente tinham 15 bits de comprimento, embora também houvesse instruções de 30 bits. As instruções foram compactadas em palavras de 60 bits, mas uma instrução de 30 bits não poderia abranger duas palavras e o controle só poderia ser transferido para a primeira instrução em uma palavra. No entanto, o próprio conjunto de instruções foi alterado para refletir o novo layout da memória interna, tornando-o incompatível com o 6600 anterior. As máquinas eram semelhantes o suficiente para possibilitar a portabilidade de compiladores e sistemas operacionais sem muitos problemas. A máquina inicialmente não veio com software; os sites deveriam estar dispostos a escrever seu próprio sistema operacional, como LTSS, NCAROS e outros; e compiladores como LRLTRAN (versão do Fortran de Livermore com gerenciamento de memória dinâmica e outros recursos não padronizados).

O CDC também fabricou dois computadores multiprocessadores baseados no 7600, com o número do modelo 7700. Eles consistiam em duas máquinas 7600 em uma configuração assimétrica: uma central e uma auxiliar. Eles foram usados ​​para lançamento de mísseis e rastreamento de entrada de ICBMs da URSS . O simulador de radar era um simulador em tempo real com um CDC 6400 para entrada / saída front-end. Esses sistemas deveriam ser usados ​​no Pacific Missile Range . Um computador foi instalado na TRW em Redondo Beach CA (mais tarde mudou-se para Kwajalein Atoll, Pacífico Sul), e o segundo foi instalado em McDonnell Douglas em Huntington Beach, Califórnia . Eles eram 7600s reais conectados pelo chassi 25 para torná-los um 7600 MP.

Recepção e uso

De 1969 a 1975, o CDC 7600 foi geralmente considerado o computador mais rápido do mundo, exceto por unidades especializadas. No entanto, mesmo com a mecânica avançada e o resfriamento, o 7600 estava sujeito a falhas. Tanto o LLNL quanto o NCAR relataram que a máquina quebrava pelo menos uma vez por dia, e freqüentemente quatro ou cinco vezes. A aceitação nos locais de instalação levou anos enquanto os bugs eram resolvidos e, embora a máquina geralmente vendesse bem devido ao seu nicho "sofisticado", é improvável que a máquina gerasse qualquer tipo de lucro real para o CDC. O sucessor CDC 8600 nunca foi concluído e Seymour Cray formou sua própria empresa, a Cray Research .

Um 7600 sobrevivente está parcialmente em exibição no Museu de História do Computador . Seu tamanho simples permite que apenas duas unidades de canto sejam mostradas. O resto está guardado. Outro 7600 está em exibição no Museu de Indústria e Tecnologia de Chippewa Falls , junto com seu console e um controlador de fita.

Referências

links externos

Fotos

Registros
Precedido por
CDC 6600
3 megaflops
O supercomputador mais poderoso do mundo
1969-1975
Sucesso por
Cray-1
136 megaflops