Por dentro do microprocessador secional multi-chip Am2901 da AMD nos anos 70

No microprocessador secional com vários chips AMD Am2901 da década de 1970,

você pode estar familiarizado com os processadores avançados fabricados pela Advanced Micro Devices. Mas a AMD começou a produzir processadores em 1975, quando lançou seu Am2901. Foi o chamado processador secional de vários chips: cada chip processou 4 bits e, para aumentar o tamanho da palavra, vários chips foram usados ​​simultaneamente. Essa abordagem foi usada nas décadas de 1970 e 1980 para criar processadores de 16, 32 ou 64 bits (por exemplo), quando eles não podiam colocar o processador inteiro em um chip rápido. Havia processadores no mesmo chip, mas seus MOSTransistores trabalhavam mais devagar. Com o tempo, os processadores CMOS se tornaram mais rápidos que os transistores bipolares e, quando sua velocidade cresceu o suficiente, quase todos os fabricantes passaram a utilizá-los. Foto de um cristal com um chip Am2901. As camadas de metal do chip são visíveis; o silício está no fundo. Nas bordas do cristal, pequenos condutores conectam o chip a contatos externos.




O chip Am2901 ganhou grande popularidade, foi usado em uma variedade de sistemas, do videogame Battlezone ao minicomputador VAX-11/730, da estação de trabalho Xerox Star ao computador de bordo Magic 372 do caça F-16. Uma versão mais rápida desse processador, Am2901C, usava a lógica acoplada a emissor (ESL) para melhorar o desempenho. Neste artigo, eu dissecarei o Am2901C, examino seu cristal sob um microscópio e explico como os circuitos ESL tornam possível implementar uma unidade lógica aritmética (ALU).

A propósito, na documentação do Atari Battlezone, não há menção a um modelo específico do chip Am2901, no entanto, há uma nota de rodapé para o número de peça 137004-001, que eles chamam de "matriz de transistor". Além disso, distorções intencionais foram feitas no diagrama de pinagem fornecido, e 20 pinos de endereço e 8 pinos de dados são mostrados para fazer com que o chip pareça ROM (ao contrário, por exemplo, dos chips da série 7400 descritos exatamente). A Atari pode ter tentado impedir a clonagem de seus videogames, ocultando os modelos de alguns chips-chave.

Uma alternativa popular para o Am2901 em muitos microcomputadores foi o chip ALU 74181 . Ele forneceu as mesmas funções aritméticas e lógicas que o Am2901, mas não seus registros.

Microprocessador secional com vários chips


Você pode estar se perguntando como vários chips de processador podem trabalhar juntos e suportar palavras de tamanho arbitrário. A conclusão é que a seção do microprocessador (MS) é um bloco de construção, não o processador inteiro, e precisa de circuitos separados para decodificar instruções e controlar o sistema. O MS possuía registros, realizava operações aritméticas e lógicas com dados, e o chip de controle (como o Am2901) dizia ao MS o que fazer. Cada instrução da máquina foi dividida em etapas menores, micro instruções armazenadas no microcódigo ROM. Nesse caso, o conjunto de instruções foi determinado pelo microcódigo, e não pela Am2901; portanto, quase todo conjunto de instruções poderia ser suportado .

Devido ao fato de as seções em um processador não serem completamente independentes uma da outra, certas dificuldades surgem durante a operação do processador. Por exemplo, ao adicionar dois números, a transferência de uma seção deve ser transferida para outra. Além disso, o trabalho conjunto de várias seções requer operações como verificar um sinal ou verificar um resultado zero. O chip Am2901 possui saídas especiais para suportar essas funções.

O Am2901 é um microprocessador? Do meu ponto de vista, o Am2901 é apenas uma parte do processador, mas tudo depende de como determinar o "microprocessador" (descrevi meus pensamentos sobre isso em detalhes em outro artigo)) Curiosamente, na URSS eles estavam mais inclinados a microprocessadores seccionais do que nos EUA. E se no Ocidente a palavra “microprocessador” geralmente significa um processador em um único chip, na URSS processadores em um único chip ou em várias seções geralmente não são diferenciados .

Os microprocessadores seccionais com vários chips (MSMs) estavam em algum lugar entre os chips do microprocessador e um computador feito de TTLs simplessalgadinhos. Naquela época, montar um computador a partir de chips TTL era muito mais rápido do que fabricar um microprocessador, mas isso exigia muitas placas com chips. O uso do MSM permitiu manter a vantagem na velocidade, enquanto reduz o número de chips usados. O MSM também forneceu maior flexibilidade em comparação com o microprocessador, permitindo ao designer personalizar o conjunto de instruções e outros recursos arquitetônicos.

Visão geral do Crystal


A foto abaixo mostra o cristal Am2901 e destaca os principais blocos funcionais. Para esta foto, removi as camadas de metal para que pudessem ser vistos silício e transistores. O maior bloco funcional do chip é a memória de registro no centro. O chip possui 16 registros de 4 bits (você pode ver 16 colunas e 4 linhas na matriz de memória). À esquerda e à direita do bloco de memória estão os circuitos do driver de memória que controlam a escrita e a leitura. Foto cristal Am2901; Os blocos de funções principais estão marcados. Os circuitos externos consistem principalmente em buffers que convertem sinais entre TTLs externos e ESLs internos. Fluxograma completo Am2901







O dispositivo lógico aritmético (ALU) do chip está envolvido em operações aritméticas (adição e subtração) e lógicas (AND, OR, excluindo OR). A primeira seção da ALU é um grande bloco no canto inferior esquerdo; consiste em quatro linhas, pois é uma ALU de 4 bits. A ALU também possui lógica que gera uma saída de transporte para adição e usa uma técnica rápida chamada "carry lookahead". Em seguida, a ALU usa os valores transferidos para gerar a soma em paralelo. Finalmente, os circuitos de saída processam e armazenam em buffer a quantidade e enviam para o contato de saída.

Uma transferência com uma pré-visualização usa os sinais Gerar e Propagar para determinar se um bit em cada posição produz sua própria transferência ou passa na entrada. Por exemplo, se você adicionar 0 + 0 + C (C é a transferência), a transferência não poderá ser eliminada dessa adição, independentemente do tamanho. Por outro lado, se você adicionar 1 + 1 + C, a transferência aparecerá de qualquer maneira, independentemente do que seja C. Por fim, nos casos 0 + 1 + C (ou 1 + 0 + C), a transferência será transferida ainda mais. se C fosse diferente de zero. Como resultado, portas lógicas simples criam um sinal G (Gerar) para cada bit se ambos os bits forem iguais a 1 e um sinal P (Propagar) se ambos os bits não forem iguais a 0.

A fórmula de transferência depende da localização do bit. Por exemplo, considere a transferência do bit 0 para o bit 1. Isso acontecerá se o sinalizador P0 estiver definido (ou seja, a transferência tiver surgido ou estiver sendo transmitida) e se a sua transferência aparecer nesse bit ou se houver outros bits. Então C1 = P0 AND (Cin OR G0). Na hifenização de ordem superior, o número de opções está aumentando e sua complexidade está aumentando constantemente. Por exemplo, considere uma transferência para o bit 2. Primeiro, P1 deve ser armado para que a transferência vá do bit 1. Além disso, a transferência foi criada pelo bit 1 ou transferida do bit 0. Finalmente, a primeira transferência também teve que vir de algum lugar pegue: foi uma transferência que veio do bit 0 ou uma transferência gerada pelo bit 1. Se você colocar tudo isso em uma fórmula, obtém a função usada no Am2901: C2 = P1 AND (G1 OU P0) AND (C0 OU G0 OU G1).As fórmulas para as diferentes transferências e os P e G externos são dados emespecificações , fig. 9.

Retângulos vazios nas bordas do chip são áreas para conectar o chip ao mundo externo. Ao lado deles estão os esquemas para enviar e receber sinais. Em particular, como o chip se comunica com circuitos externos usando sinais TTL, mas usa ESL internamente, esses circuitos se convertem entre as tensões TTL e ESL.

O chip possui dois registros de deslocamento capazes de mudar a palavra um pouco para a direita ou esquerda. Registrar Q - Um registro de 4 bits baseado em gatilhos. Finalmente, o circuito de tensão de referência gera as tensões de referência exatas necessárias para a operação do ESL.

Como ver um cristal


Para olhar para dentro do chip, você geralmente precisa dissolver sua caixa de plástico em ácidos perigosos. No entanto, não comprei o chip Am2901 em uma caixa de plástico, mas em uma caixa de cerâmica. Eu apenas andei pela costura do chip com um formão e desconectei as duas metades, o que me permitiu chegar ao cristal lá dentro. Um cristal de silício é um pequeno retângulo no centro do chip. Os condutores finos conectam as pastilhas de cristal ao quadro de condutores, o que leva a 40 contatos de chip externos.


Am2901, depois de desconectar as duas metades do corpo de cerâmica.Para

obter fotos de alta resolução do chip, usei um microscópio metalográfico especial. Na foto abaixo, você pode ver o logotipo da AMD. Acima está um condutor soldado ao local. O chip possui duas camadas de metal que criam um circuito elétrico, visível na foto à direita.


Foto em close-up do chip - pode-se ver a inscrição 4301X (provavelmente o número da peça) e a AMD 1983. Coletei

uma grande foto de alta resolução de várias pequenas imagens de microscópio (leia mais sobre o processo de criação de fotos em cristal aqui ). Depois tirei as camadas de metal e tirei outro conjunto de fotografias de silicone.

A foto em close abaixo mostra quatro transistores e três resistores. Áreas diferentes de silicone têm impurezas diferentes, dando-lhes propriedades diferentes, e essas áreas são visíveis ao microscópio. O chip é baseado em bipolarTransistores NPN diferentes dos transistores MOS dos computadores modernos. O transistor base (silício do tipo p), o emissor (silício do tipo n) e o coletor (silício do tipo n) estão marcados no transistor esquerdo [B, E, C]. Retângulos leves são os contatos de silício e a camada de metal que costumava estar no topo. Os dois transistores à direita têm um coletor grande comum. Nesse chip, freqüentemente são encontrados transistores com um coletor comum.



Abaixo estão três resistores. Um resistor é obtido adicionando impurezas ao silício que aumentam sua resistência. A precisão dos resistores nos CIs geralmente é baixa. Eles também se mostram relativamente grandes - aqui eles são do mesmo tamanho dos transistores, enquanto outros são muito maiores. Portanto, ao projetar CIs, eles tentam minimizar o número de resistores.

Lógica relacionada ao emissor


Os esquemas lógicos podem ser criados de maneiras muito diferentes. Quase todos os computadores modernos usam o sistema lógico CMOS (uma estrutura complementar de óxido de metal-semicondutor ), onde as válvulas são constituídas por transistores MOS. Na era dos minicomputadores, o TTL era muito popular. ESL era um esquema mais rápido, mas menos comum. A desvantagem do ESL era o maior consumo de energia (o supercomputador Cray-2 de 1985 usava válvulas ESL para aumentar sua velocidade, mas precisava ser resfriado com líquido freon).

A maioria das vantagens do ESL na velocidade se deve ao fato de os transistores não estarem totalmente ligados. Isso permitiu que os transistores mudassem muito rapidamente os caminhos atuais. Além disso, a diferença entre a tensão para os valores 0 e 1 era pequena (da ordem de 0,8 V), de modo que os sinais pudessem alternar rapidamente. Por exemplo, nas válvulas TTL, a diferença de tensão é de cerca de 3,2 V (os sinais podem mudar a uma velocidade de cerca de 1 V por nanossegundo, portanto, com uma grande diferença de tensão, há atrasos de vários nanossegundos). Por outro lado, uma pequena diferença de tensão levou a um aumento na sensibilidade da ESL ao ruído elétrico.

As primeiras versões do Am2901 usavam TTL, mas em 1979 a AMD lançou sua versão mais rápida, Am2901C. O Am2901C usava ESL internamente para velocidade, mas por fora mantinha a tensão TTL, facilitando o uso em computadores TTL. Esta publicação descreve a variante Am2901C.

A ESL é baseada em um sistema de pares diferenciais - os amplificadores operacionais funcionam de maneira semelhante . A idéia de um par diferencial (veja abaixo) é que um sentido fixo flui de acordo com o esquema. Se a tensão na entrada à esquerda for maior que à direita, o transistor esquerdo será ligado e a maior parte da corrente passará pelo ramo esquerdo. E vice-versa (observe que os emissores de transistor estão conectados - daí o nome da lógica acoplada ao emissor.


Par diferencial. Se a tensão na entrada esquerda (vermelho) for maior, a maior parte da corrente irá ao longo do caminho esquerdo e vice-versa.

Algumas modificações permitem transformar um par diferencial em uma válvula ESL. Primeiramente, a tensão em uma ramificação é fixa e se torna referência, em algum lugar no intervalo entre os níveis 0 e 1. Então, se a entrada for maior que a tensão de referência, ela será considerada como 1 e se menor - como 0. Então, a saída é conectada à ramificação transistor (verde), que fornece o sinal de saída protegendo a tensão do ramo. O circuito do inversor é mostrado abaixo, porque se a tensão de entrada for alta, a corrente através do resistor esquerdo reduzirá a saída. Para aumentar o desempenho, o resistor inferior foi substituído por um dreno (magenta), composto por um transistor e um resistor.

O dreno na parte inferior da válvula ESL fornece, de fato, uma corrente constante controlada pela tensão de entrada V CS . Esta opção é melhor que um resistor simples, porque a corrente através do resistor varia dependendo da tensão, dependendo das tensões de entrada. Além disso, esse circuito economiza espaço, pois usa um resistor menor.


Inversor de ESL. O resistor superior direito pode ser omitido porque não está conectado a lugar algum.

Você pode construir uma válvula ESL mais complexa adicionando mais entradas. No diagrama abaixo, um segundo transistor de entrada (2) é adicionado paralelo ao primeiro (1). A corrente fluirá através do resistor R1 se houver 1 na entrada A ou B (ou seja, a tensão será maior que a referência). Nesse caso, a saída é reduzida e obtemos a válvula NOR. Usando outras configurações, você pode fabricar válvulas AND, XOR ou circuitos mais complexos.


Válvula ESL NOR

O diagrama acima mostra um portão NOR - como é implementado em um chip. A foto abaixo mostra o diagrama físico correspondente da válvula. À esquerda, há uma camada de cristal de silício, onde transistores e resistores são visíveis. À direita, existem faixas de metal na mesma parte do chip. Acima estão os transistores 1 e 2, recebendo um sinal de entrada. Cada um deles tem uma base no topo e um emissor no meio. Os transistores têm um coletor comum - um retângulo branco abaixo. Os resistores R1 e R2 são retângulos de silício. Todos os transistores no meio (incluindo 3 e 4) têm um coletor comum conectado duas vezes ao sinal de adição (transistores e resistores não numerados pertencem a outras válvulas).


Válvula NOR implementada no cristal Am2901

Pode ser visto pelos condutores à direita que a camada superior fornece a conexão de condutores horizontais às sinalizações de mais, tensões de referência, dreno de VCS e menos (pode ser visto que o sinal de mais e menos são ampliados para suportar altas correntes). Abaixo estão os condutores que conectam os transistores. Acima, as entradas A e B são conectadas às bases dos transistores. O restante da fiação é mais difícil de rastrear, pois é coberto pela camada superior. Mas você pode, por exemplo, ver a conexão entre o transistor 4, o coletor dos transistores 1 e 2 e R1. Ao estudar cuidadosamente as fotografias do cristal, você pode entender toda a fiação e fazer engenharia reversa da lógica do chip.

Unidade lógica aritmética (ALU)


A Unidade Lógica Aritmética (ALU) no chip Am2901 executa operações aritméticas ou lógicas de 4 bits. Ele suporta 8 operações diferentes: adição, subtração e operações lógicas bit a bit (não lida com multiplicação e divisão).

O diagrama de blocos abaixo mostra a estrutura do AL29 Am2901. Primeiro, o seletor (multiplexador) seleciona duas entradas de fontes potenciais. O valor de D é transmitido aos contatos de dados do chip, geralmente ao barramento de dados do processador. A - este é o valor de uma das 16 entradas no arquivo de registro de chips, selecionada pelos contatos A0-A3; B funciona de maneira semelhante. Um valor constante de 0 pode ser alimentado na ALU. Finalmente, Q é o conteúdo do registro Q (registro separado opcional). Muitas fontes de dados dão ao chip mais flexibilidade.


Diagrama em bloco do ALU Am2901 da especificação de chip. A ALU executa uma das oito funções em duas entradas de 4 bits, R e S. À direita, existem várias saídas do chip: G, P, saída de carga, sinal, estouro, teste zero.

Dois valores selecionados, R e S, são alimentados na ALU, que executa a operação selecionada e envia o resultado para F. Além disso, a ALU aceita a quantidade de entrada e transfere o valor de saída (CN + 4) ; isso permite combinar várias ALUs para lidar com palavras mais longas. As saídas G e P são usadas para transferir com uma visualização, e o sinal, excesso e teste de zeros podem ser usados ​​como códigos condicionais do processador.

Descreva brevemente o circuito da ULA, começando pelo seletor. As duas primeiras caixas do seletor abaixo (D e A) selecionam o primeiro argumento da ALU e as três últimas (A, Q e B) selecionam o segundo argumento. Cada seletor implementa a função Select • (Value ⊕ Invert), onde Value é o valor potencial de entrada, Select é 1 para selecionar esse valor e Invert é 1 para inverter o valor (como ALU é de 4 bits, são selecionados 4 bits; cada seletor é implementado usando quatro Válvulas ESL).

O valor desejado é selecionado incluindo uma das linhas Selecionar. Se nenhum deles estiver ativado, o valor que chega à ULA será 0. Além disso, o seletor pode inverter a entrada; o chip executa subtração adicionando o valor invertido.


A primeira parte da ALU consiste em quatro camadas horizontais, uma por bit

O diagrama abaixo mostra o circuito AND-XOR usado na ALU AM2901, que implementa a operação A '• (B ⊕ C). Descreverei brevemente como funciona. Se a tensão na entrada A for alta, a corrente flui através dos transistores esquerdos, puxando a saída para baixo. Se B e C forem de alta tensão, a corrente através dos transistores esquerdos B e C reduz a saída. Se a tensão em V e C for baixa, a corrente através dos transistores V ref diminui a saída. Se B e C tiverem uma tensão diferente, a corrente passa dos transistores + e a saída permanece alta tensão. A conclusão é que uma única válvula ESL pode implementar funcionalidades complexas. Na maioria das portas lógicas, o XOR é mais difícil de implementar. Para mim, pessoalmente, a lógica ESL se assemelha ao relé da década de 1920, porque alterna entre os dois caminhos atuais, e não apenas liga e desliga.



Após selecionar duas entradas para a ALU, ele calcula os bits “Propagar” (P) e “Gerar” (G) para cada par de bits recebidos. Isso faz parte do procedimento de transferência de visualização usado para adição rápida.

A foto abaixo mostra as partes restantes do circuito da ALU (para variar, essa foto tem uma camada de metal, ao contrário das fotos anteriores, onde havia apenas silício). Os sinais P e G do circuito anterior passam para dois blocos de computação de transferência. A unidade de transferência inferior calcula o sinal P, G e de transferência externo com uma visualização de vários chips; isso permite que você adicione rapidamente palavras longas.

A técnica de transferência com visualização pode ser implementada em vários chips para adicionar rapidamente números maiores que 4 bits. Cada chip gera sinais de Gerar e Propagar, informando se irá gerar uma transferência ou transmitir uma transferência de entrada. Esses sinais são combinados com um chip gerador de transferência com uma visualização - como a do Am2902.

A unidade de transferência superior calcula as transferências internas. O esquema “soma” calcula a soma de cada bit usando a hifenização e os valores de P e G. É importante que, devido à hifenização da hifenização, a soma de cada bit possa ser calculada em paralelo. Finalmente, o circuito de saída converte os sinais ESL internos em sinais TTL e controla os quatro contatos de saída.


O resto do circuito ALU

O chip usa algumas técnicas interessantes que permitem usar o somador por oito operações. O circuito seletor descrito anteriormente pode complementar opcionalmente sua entrada. Isso é usado para subtração, bem como para algumas das funções lógicas. Ao calcular funções lógicas (em vez de adicionar / subtrair), o cálculo de transferência é desativado. Durante operações lógicas, os bits não são afetados pelo que acontece com outros bits. Finalmente, o circuito XOR do somador se transforma no circuito AND aumentando os sinais P ao máximo. Assim, em vez de usar oito circuitos diferentes para oito operações da ULA, o chip usa um único circuito com alguns ajustes cuidadosamente selecionados.

O chip usa os valores de P e G para gerar a soma das entradas R e S com o carry C. A soma (R ⊕ S ⊕ C) 'é calculada como ((P ∨ G) ⊕ C)', onde P = R ∨S G = R • S. Se P é igual a 1, então (P '∨ G) reduz para G igual a R • S. Acontece que, alterando P, o mesmo circuito pode ser usado para calcular AND a partir dos valores de entrada de R e S.

A tabela abaixo mostra as 8 operações realizadas pela ALU. Três bits de instruções são alimentados no chip e usados ​​para selecionar a operação: I5, I4 e I3. A coluna "função" mostra as funções de acordo com a documentação e a coluna "cálculo" mostra como cada um dos bits é calculado. Observe que todas as operações são reduzidas a OR (⊕) ou AND (∧) exclusivas. A adição é feita pelo XOR bit a bit dos dois argumentos e carrega bits. A subtração é realizada através da adição do argumento e da adição subsequente. Por exemplo, adicionar o complemento R (R ') é o mesmo que subtrair R. O bit I3 complementa R e o bit I4 complementa S. Operações com OR exclusivo (EXOR e EXNOR) usam os mesmos elementos que a adição, mas com bloqueio de cálculo de transferência. A operação AND é realizada bloqueando o sinal G. Finalmente, OR é calculado de acordo com a lei de Morgan, R '∧ S'= (R ∨ S) '. O ponto é que o Am2901 não requer elementos separados para adição, subtração, AND, OR e EXOR - a maioria dos elementos é usada em cada uma das operações.

Notação simbólicaI5I4I3FunçãoCálculo
ADICIONAR0 00 00 0R mais sR ⊕ S ⊕ Carry
SUBR0 00 01 1S menos rR '⊕ S ⊕ Transporte
SUBSÍDIOS0 01 10 0R menos sR ⊕ S '⊕ Carry
OU0 01 11 1R OR S(R '∧ S') ⊕ 1
E1 10 00 0R AND SR ∧ S
NOTRS1 10 01 1R 'E SR '∧ S
EXOR1 11 10 0R EX OU SR ⊕ S '⊕ 1
EXNOR1 11 11 1R EX NOR SR '⊕ S' ⊕ 1


Conclusão


O chip Am2901C é interessante como um exemplo de ESL de alta velocidade, uma família lógica relativamente rara. O chip ALU é distribuído na parte inferior do chip, implementa oito funções diferentes e usa a transferência de visualização para acelerar o trabalho. Embora o chip seja bastante complexo, um exame cuidadoso ao microscópio ajuda a entender seu trabalho.

Os processadores seccionais com vários chips, como o Am2901, foram usados ​​em microcomputadores e em muitos outros sistemas nas décadas de 1970 e 1980. No entanto, no final, as melhorias na tecnologia CMOS permitiram a implementação de um processador rápido em um único chip, o que tornou essa tecnologia obsoleta. E enquanto o Am2901 provavelmente contém cerca de mil transistores, e ele roda em 16 MHz, atualmente a AMD fabrica processadores contendo bilhões de transistores e operando a 4 GHz.

All Articles