Olhando para dentro do coprocessador Intel 8087

Um pouco de história do desenvolvimento da linha de processadores de oito bits fabricados pela Intel


A linha de processadores de oito bits inicia sua história em abril de 1972. O Intel 8008 foi originalmente planejado para uso em calculadoras, dispositivos de entrada e saída, mas o fabricante, após uma boa "reflexão", decidiu encontrar um novo destino para a programação - ser o processador central de um PC. Dependendo das modificações dos processadores, a frequência do relógio era de 500 ou 800 KHz e o desempenho era de 45000-160000 operações por segundo.


Intel C8008

Em abril de 1974, Federico Faggini e Masatoshi Shima desenvolveram uma nova linha de processadores - Intel 8080 . 6.000 transistores foram alojados em um pacote cerâmico de 40 pinos, um barramento de endereço de 16 bits e um barramento de dados de 8 bits, memória endereçável de 64 KB. A frequência do relógio era de 2 MHz e o desempenho era de 500.000 operações por segundo. Para que o processador se tornasse “confortável”, um coprocessador aritmético, um gerador de clock, modeladores de barramento, um temporizador, controladores de dispositivos periféricos etc. foram desenvolvidos.


Intel 8080A

Dois anos depois, em março de 1976, a linha Intel 8085 viu a luz: 6500 transistores foram colocados em uma caixa de cerâmica de 40 pinos (ou plástico). A frequência do relógio variou de 3 a 8 MHz, a largura do barramento de dados foi de 8 bits, a largura do barramento de endereço foi de 16 bits e a memória endereçável foi de 64 Kb. Esta linha foi "envolvida" com sucesso no PC ou na forma de microcontroladores.



Em junho de 1978, a produção começou na primeira linha de processadores de 16 bits da empresa - Intel 8086 : 29.000 transistores foram colocados em um chip de 5,5 x 5,5 mm. A frequência do relógio variou de 5 a 10 MHz, o desempenho variou de 330 a 750 mil operações por segundo, a largura do barramento de dados foi de 16 bits e a largura do barramento de endereço foi de 20 bits.


Intel 8086

Um ano depois, no verão de 1979, a Intel lançou a linha 8088 - um link de transição entre processadores de 8 e 16 bits: 29.000 transistores, a frequência do relógio era de 5 a 10 MHz. Mas a linha 8088 não se tornou popular devido ao seu alto custo.


Intel P8088

Coprocessadores 8087


Em junho de 1980, a linha de coprocessadores Intel 8087 foi lançada para o Intel 8086, 8088. Esses coprocessadores continham 45.000 transistores, a freqüência do relógio em várias versões variava de 4 a 10 MHz.


Intel C8087

O coprocessador matemático é um módulo especial para executar operações de ponto flutuante, que funciona em conjunto com o processador central.

Para economizar dinheiro com um luxo como um coprocessador, eles simplesmente recusaram. Mas, para resolver tarefas que exigem muito trabalho, por exemplo, os mesmos cálculos de engenharia, é necessário melhorar o desempenho do computador. Eles conseguiram aumentar o desempenho devido a um módulo tão especial - um coprocessador matemático.

Segundo a INTEL, um coprocessador matemático pode reduzir o tempo necessário para concluir as operações matemáticas, como multiplicação, divisão e exponenciação, em 80% ou mais. A velocidade de executar operações matemáticas simples, como adição e subtração, não muda.


Dentro do chip do microprocessador Intel 8087


Olhando para dentro do ponto flutuante Intel 8087, notei um recurso interessante no chip: o esquema de formação de polarização do substrato. Neste artigo, explicarei como esse circuito é implementado usando circuitos analógicos e digitais para criar tensão negativa.

A Intel desenvolveu o chip 8087 em 1980, a fim de melhorar o desempenho dos PCs com processadores de linha 8086/8088 (como o IBM PC) ao executar operações de ponto flutuante. Como os primeiros microprocessadores foram projetados para executar operações com números inteiros, a execução de operações com números de ponto flutuante foi lenta, ou seja, sobre o desempenho de operações transcendentais, como funções trigonométricas ou logaritmos. O coprocessador 8087 aumentou significativamente a velocidade de execução de tarefas de ponto flutuante; tudo foi feito quase 100 vezes mais rápido. A arquitetura 8087 também foi implementada nos processadores Intel posteriores, e as instruções 8087 ainda são usadas nos PCs x86 modernos.
Mais de 60 novas instruções foram introduzidas para o coprocessador, cujo nome começou com "F" para distingui-las das instruções inteiras da Intel 8086.
Abri o chip 8087 e, usando um microscópio de alto desempenho, tirei fotografias, como resultado do layout, consegui a seguinte imagem:



O cristal 8087 é muito complexo, contendo 40.000 transistores (de acordo com a Intel) ou 45.000 (de acordo com a Wikipedia). Na foto há uma camada de metal do chip, as conexões estão localizadas na parte superior do chip. As linhas brancas mais grossas fornecem energia e aterramento para todas as partes do chip. Sob a camada de metal, há polissilício ou silício, a partir do qual os transistores do chip são formados.

Na metade inferior do chip, há um circuito aritmético estendido de 80 bits: somador, registradores, comutadores, constantes matemáticas. O grande retângulo no meio do chip é um microcódigo que implementa um conjunto de instruções do processador. Na parte superior, existem circuitos lógicos e um circuito de barramento emparelhado com o processador 8086.

As linhas pretas ao redor do chip na foto são pequenos compostos de termocompressão que conectam as pastilhas de contato IC (seções condutoras metalizadas de forma quadrada ou retangular, localizadas principalmente em torno da periferia do cristal ou substrato) com 40 contatos no chip. Estudando a descrição técnica 8087, não é difícil determinar qual área de contato na matriz corresponde a qual contato do microcircuito; 40 pinos do chip (numerados no sentido anti-horário) são conectados a 40 blocos no chip.

Abaixo está uma imagem ampliada de uma parte da matriz, nela podemos considerar melhor as pastilhas de contato. (Observe que os terminais de aterramento e os pads de +5 V possuem várias conexões ao mesmo tempo, o que aumenta a quantidade de corrente fornecida). Mas aqui está uma "surpresa" - há um contato adicional e conexão localizados entre os contatos 40 e 1, e não associados a nenhum dos contatos do microcircuito.



Observando a conexão de termocompressão dos fios no chip (a imagem abaixo), o misterioso bloco de contatos não está conectado a nenhum contato, mas a um pequeno bloco em forma de cubo. Este "cubo" está localizado na mesma base de metal que o cristal, conectado ao substrato de silício do chip, a placa.

Fiz uma análise de engenharia da tecnologia de fabricação com o objetivo de revelar os “segredos da empresa” e cheguei à conclusão de que isso faz parte do circuito de polarização do substrato 8087 no qual esse composto é usado para aplicar tensão negativa ao substrato. Como esse circuito funciona?



O que é um deslocamento de substrato?


Na década de 1970, circuitos integrados de alta densidade foram construídos a partir de transistores n-MOS (um transistor de efeito de campo com uma porta isolada e um canal do tipo n). A imagem abaixo demonstra claramente sua estrutura. A base do chip é um substrato de silício. Os transistores, por sua vez, também são feitos de silício. Para alterar o tipo de condutividade e a concentração de transportadores no volume do semicondutor para obter as propriedades desejadas, as regiões de silício são dopadas com impurezas para criar regiões de difusão com as propriedades desejadas. O transistor pode ser considerado como um resistor, permitindo que a corrente flua entre duas áreas de difusão da fonte e do dreno. O transistor é controlado por um portão feito de polissilício. A tensão de entrada no portão controla o fluxo de corrente da fonte ao dreno: um sinal de alta tensão no portão permite que a corrente flua da fonte ao dreno, enquanto um sinal de baixa tensão bloqueia a corrente. Uma camada de óxido isolante separa a porta do silicone por baixo; a importância dessa camada será considerada um pouco mais tarde. Esses minúsculos transistores podem ser combinados para formar portas lógicas, componentes de microprocessadores e outros cristais digitais de CI.



Em circuitos integrados de alto desempenho, era vantajoso usar um "viés" negativo da tensão no substrato. Para obter a tensão de polarização do substrato, muitos chips na década de 1970 tiveram um contato externo conectado a -5V. No entanto, os engenheiros não gostaram dos chips que precisavam de voltagem adicional. Os chips daquela época geralmente precisavam de três fontes de alimentação. Além disso, o número de contatos no IC era limitado (como regra, apenas 18 contatos para chips de memória). Portanto, o uso de mais dois contatos para tensão adicional não foi uma boa solução. Uma solução parcial foi encontrada no final dos anos 70: os chips geravam uma tensão de polarização negativa no interior. Portanto, havia chips nos quais uma conveniente fonte de alimentação de + 5V era usada, e isso claramente permitia que os engenheiros ficassem "mais felizes".

Circuito de polarização do substrato interno 8087


Você pode se perguntar como um chip pode transformar uma voltagem positiva em negativa. A resposta é um circuito de bomba de carga chamado bomba de carga. Usa capacitores como dispositivos de armazenamento de carga, que são transferidos de um capacitor para outro usando um sistema de comutadores. O "gerador de polarização" em 8087 possui duas bombas de carga por vez. Os diagramas abaixo mostram a operação de uma dessas bombas de carga. A bomba de carga é controlada por um sinal oscilante (Q) e sua inversão (Q). No primeiro estágio, o transistor superior é ligado, como resultado do qual o capacitor é carregado até 5 volts em relação ao terra. O segundo estágio é onde a mágica acontece. O transistor inferior é ligado ao conectar o lado de alta tensão do capacitor ao terra. Como o capacitor ainda está carregando até 5 volts, a parte inferior do capacitor agora deve ser de -5 volts, criando a tensão de saída negativa desejada. Quando o oscilador vira novamente, o transistor superior liga e o ciclo se repete. A bomba de carregamento recebeu esse nome, pois bombeia a carga da saída para o solo. A bomba de carga é semelhante a uma bomba de água manual.



Examinei o chip ao microscópio. A camada de metal esconde os transistores abaixo, e isso dificulta a visualização do circuito. Mas, depois de remover a camada de metal com ácido clorídrico, cheguei às camadas de polissilício e silício, transistores e capacitores "descobertos", mostrados abaixo (as áreas coloridas são apenas ruído, pois alguns óxidos não foram completamente removidos). A foto abaixo mostra duas bombas de carga: uma à esquerda do bloco de contato e a segunda abaixo. Cada bomba de carga de acordo com o esquema possui dois diodos, um capacitor grande e dois transistores.



Capacitores são a “característica” mais notável do circuito de polarização do substrato. Embora, de fato, seus tamanhos sejam microscópicos, eles são enormes para os padrões de medição das dimensões do chip. A área do capacitor é aproximadamente igual à memória de registro de 72 bits (mais de 400 transistores). Cada capacitor consiste em polissilício sobre uma parte de silício separada por um óxido isolante; placas de capacitor em forma de polissilício e silício. Na foto, os capacitores são pontilhados com quadrados; esses quadrados são os contatos entre o polissilício (ou silício) e a camada de metal na parte superior. (A camada de metal não é visível porque foi apagada).

Quatro transistores de controle são transistores de alta potência. Seus tamanhos são superiores aos transistores convencionais. Linhas vermelhas são compostos de polissilício que formam um obturador. Linhas verdes - contatos com a camada de metal, conectando transistores a +5 V ou terra. Diodos próximos ao bloco de contato são formados por transistores quando o portão e o dreno estão conectados.

As bombas de carga são acionadas por um oscilador circular, como mostra a imagem abaixo. Este oscilador circular consiste em cinco inversores em um curto-circuito. Como o número de inversores é ímpar, o sistema é instável e oscilará. Por exemplo, se a entrada do primeiro inversor for 0, a saída do quinto inversor será 1. Para diminuir a velocidade de oscilação, existem dois circuitos resistivos-capacitivos em um círculo. Como leva algum tempo para carregar e descarregar o capacitor, as oscilações diminuem, o que dará tempo para a bomba de carga funcionar.



Antes de decompor as informações em um oscilador circular, demonstrarei como um inversor NMOS padrão em silício é implementado. Abaixo, é mostrado um inversor, sua representação esquemática e como ele é implementado em um chip. O inversor usa um transistor e um resistor de carga (que na verdade é um transistor). Se o sinal de entrada estiver baixo, o transistor estiver desligado, o resistor de carga fornecerá +5 V. Se o sinal de entrada estiver alto, o transistor está ligado, a tensão de saída é fornecida ao terra. Assim, o circuito inverte a entrada.



O silício dopado na imagem possui grandes áreas de cor bege. Manchas amarelas finas próximas às violetas são de polissilício. A entrada é um fio de polissilício. Onde ele se cruza com o silício dopado, forma uma porta de transistor entre o solo (abaixo da entrada) e a saída (acima da entrada). Um resistor de carga é implementado em um transistor que possui uma porta e um dreno conectados juntos; esse contato forma essa conexão entre a porta de silício policristalino do transistor e seu dreno de silício. O polissilício também forma um fio de saída. Assim, o inversor no chip é implementado com dois transistores.



A foto acima mostra como um oscilador circular é formado em um cristal. Todos os cinco inversores são mostrados. Cada inversor possui uma direção diferente, o que otimiza a estrutura, sendo também indicados resistores e capacitores do circuito RC. Os resistores são simplesmente transistores com uma grande distância entre a fonte e o dreno, o que reduz o movimento da corrente. Os capacitores são projetados como capacitores da bomba de carga, mas muito menores em tamanho; silício no fundo e polissilício no topo formam placas capacitoras separadas por uma fina camada de óxido isolante.

Conclusões


O gerador de tensão de polarização do substrato no chip 8087 é uma combinação interessante de um circuito digital (um oscilador circular formado a partir de inversores) e uma bomba de carga analógica. Os circuitos do gerador de tensão de polarização do substrato foram introduzidos no final da década de 1970, o que possibilitou que chips de memória e microprocessadores operassem a partir de uma única fonte de alimentação de +5 V. Isso era muito mais conveniente do que usar três fontes de tensão diferentes. O gerador de polarização do substrato gera uma tensão negativa a partir de uma tensão de alimentação positiva usando uma bomba de carga.

Embora o gerador de viés de tensão possa parecer um momento obscuro na história dos computadores da década de 1970, esse processo ainda faz parte dos circuitos integrados modernos, embora tudo tenha se tornado muito mais complicado.

Apesar do fato de o chip de ponto flutuante Intel 8087 ter sido desenvolvido e colocado em operação há 38 anos, sua "influência" é palpável atualmente. Graças à sua aparência, o padrão IEEE 754, o “padrão IEEE que descreve o formato para representar números de ponto flutuante, foi adotado. É usado em implementações de software (compiladores de diferentes linguagens de programação) e hardware (CPU e FPU) de operações aritméticas (operações matemáticas). " As instruções do 8087 permanecem parte dos processadores x86.



Notas e links


1. Mais de 60 novas instruções foram introduzidas para o coprocessador, cujo nome começou com "F", a fim de distingui-las das instruções inteiras Intel 8086. Por exemplo, os análogos dos comandos ADD / MUL / CMP em 8087 pareciam FADD / FMUL / FCOM . Essas instruções foram implementadas usando o comando "escape" do 8086 ESC, que foi projetado para permitir que o processador 8086 se comunique com o coprocessador.

O advento do coprocessador levou à criação do padrão IEEE 754 em 1985 para aritmética de ponto flutuante;

2. A aplicação de uma tensão de polarização negativa ao substrato tem várias vantagens. Essa capacitância perdida reduzida, que acelerou a operação do chip, tornou a tensão limite do transistor mais previsível e reduziu a corrente de fuga.

3. Anteriormente, os chips DRAM e microprocessadores geralmente exigiam três fontes de tensão: + 5 V (Vcc), + 12V (Vdd) e -5V (Vbb). No final da década de 1970, a avançada tecnologia de chips permitiu o uso de uma única fonte de energia. Por exemplo, o MK4116 da Mostek (DRAM de 16 kilobytes desde 1977) exigia três fontes de tensão, enquanto o avançado MK4516 (1981) trabalhava apenas em +5 V, simplificando assim os projetos de hardware. O mesmo aconteceu com os chips Intel: 2116 DRAM (16K, 1977) usando três voltagens e melhorando 2118 (1979) - uma voltagem. O conhecido microprocessador Intel 8080 (1974) usava transistores operando no modo de enriquecimento; portanto, eram necessárias três voltagens. Uma versão aprimorada, 8085 (1976), usava transistores de depleção e era alimentada por uma única fonte de alimentação de +5 V.

4. A terceira fonte de alimentação (+12 V) em chips antigos não está relacionada ao viés do substrato. Esta fonte foi usada porque nos primeiros circuitos integrados do MOS havia transistores operando no modo de enriquecimento, aumentando a tensão nos portões. +5 , +12 . 1970- ( ) , +12 .

5. . - , , -3 , -5 . . , .

, . ? ? , 30% entry-level , : VPS (KVM) E5-2650 v4 (6 Cores) 10GB DDR4 240GB SSD 1Gbps $20 ? ( RAID1 RAID10, 24 40GB DDR4).

VPS (KVM) E5-2650 v4 (6 Cores) 10GB DDR4 240GB SSD 1Gbps , .

Dell R730xd 2 ? 2 Intel Dodeca-Core Xeon E5-2650v4 128GB DDR4 6x480GB SSD 1Gbps 100 $249 ! . c Dell R730xd 5-2650 v4 9000 ?

Source: https://habr.com/ru/post/pt424889/


All Articles