Processador de dados numéricos 8087

Processador de dados numéricos 8087 também é conhecido como Math co-processor, Numeric processor extension e Floating point unit. Foi o primeiro coprocessador matemático projetado pela Intel para emparelhar com 8086/8088, resultando em um cálculo mais fácil e rápido.

Depois que as instruções são identificadas pelo processador 8086/8088, elas são atribuídas ao coprocessador 8087 para execução posterior.

Os tipos de dados suportados pelo 8087 são -

  • Inteiros binários
  • Números decimais compactados
  • Numeros reais
  • Formato real temporário

As características mais proeminentes do processador de dados numéricos 8087 são as seguintes -

  • Ele suporta dados do tipo inteiro, flutuante e tipos reais que variam de 2 a 10 bytes.

  • A velocidade de processamento é tão alta que pode calcular a multiplicação de dois números reais de 64 bits em ~ 27 µs e também pode calcular a raiz quadrada em ~ 35 µs.

  • Ele segue os padrões de ponto flutuante IEEE.

Arquitetura 8087

A arquitetura 8087 é dividida em dois grupos, ou seja, Control Unit (CU) e Numeric Extension Unit (NEU).

  • o control unit lida com toda a comunicação entre o processador e a memória, tal como recebe e decodifica instruções, lê e escreve operandos na memória, mantém a fila paralela, etc. Todas as instruções do coprocessador são instruções ESC, ou seja, começam com 'F', apenas o coprocessador executa as instruções ESC enquanto outras instruções são executadas pelo microprocessador.

  • o numeric extension unitlida com todas as instruções do processador numérico, como instruções aritméticas, lógicas, transcendentais e de transferência de dados. Possui 8 pilha de registradores, que contém os operandos para instruções e seus resultados.

A arquitetura do coprocessador 8087 é a seguinte -

Descrição do pino 8087

Vamos primeiro dar uma olhada no diagrama de pinos de 8087 -

A lista a seguir fornece a descrição do pino 8087 -

  • AD0 – AD15 - Estas são as linhas de endereço / dados multiplexadas no tempo, que transportam endereços durante o primeiro ciclo de clock e dados do segundo ciclo de clock em diante.

  • A19 / S6 – A16/S- Essas linhas são as linhas de endereço / status multiplexadas no tempo. Ele funciona de forma semelhante aos pinos correspondentes do 8086. O S 6 , S 4 e S3 estão permanentemente altos, enquanto o S 5 está permanentemente baixo.

  • $\overline{BHE}$/S7- Durante o primeiro ciclo de clock, $ \ overline {BHE} $ / S 7 é usado para habilitar os dados para o byte mais alto do barramento de dados do 8086 e depois disso funciona como linha de status S 7 .

  • QS1, QS0 - Estes são sinais de entrada de status da fila que fornecem o status da fila de instruções, suas condições conforme mostrado na tabela a seguir -

QS 0 QS 1 Status
0 0 Nenhuma operação
0 1 Primeiro byte de opcode da fila
1 0 Esvazie a fila
1 1 Byte subsequente da fila
  • INT - É um sinal de interrupção, que muda para alto quando uma exceção não mascarada é recebida durante a execução.

  • BUSY - É um sinal de saída, quando alto indica estado de ocupado para a UCP.

  • READY - É um sinal de entrada utilizado para informar ao coprocessador se o barramento está pronto para receber dados ou não.

  • RESET - É um sinal de entrada usado para rejeitar as atividades internas do coprocessador e prepará-lo para posterior execução sempre que solicitado pela CPU.

  • CLK - A entrada CLK fornece os tempos básicos para a operação do processador.

  • VCC - É um sinal de alimentação, que requer alimentação de + 5V para o funcionamento do circuito.

  • S0, S1, S2- Estes são os sinais de status que fornecem o status da operação que é usado pelo Bus Controller 8087 para gerar memória e sinais de controle de E / S. Esses sinais estão ativos durante o quarto ciclo do clock.

S 2 S 1 S 0 Status da fila
0 X X Não utilizado
1 0 0 Não utilizado
1 0 1 Memória lida
1 1 0 Gravação de memória
1 1 1 Passiva
  • RQ/GT1 & RQ/GT0 - Estes são os Request/Grant sinais usados ​​pelos processadores 8087 para obter controle do barramento do processador host 8086/8088 para transferências de operando.