Motorola 68881 - Motorola 68881

FPU Motorola 68881

O Motorola 68881 e o Motorola 68882 são unidades de ponto flutuante (FPUs) usadas em alguns sistemas de computador em conjunto com os microprocessadores 68020 ou 68030 de 32 bits da Motorola . Esses coprocessadores são chips externos, projetados antes que a matemática de ponto flutuante se tornasse padrão nas CPUs. O Motorola 68881 foi lançado em 1984. O 68882 é uma versão de alto desempenho produzida posteriormente.

Visão geral

Um Motorola 68882 FPU

As CPUs 68020 e 68030 foram projetadas com o chip 68881 separado em mente. Seus conjuntos de instruções reservaram as instruções "linha F" - ou seja, todos os opcodes começando com o dígito hexadecimal "F" poderiam ser encaminhados para um coprocessador externo ou usados ​​como "armadilhas" que lançariam uma exceção , entregando o controle ao sistema operacional do computador . Se uma FPU não estiver presente no sistema, o SO chamaria um emulador de FPU para executar o equivalente da instrução usando o código de software baseado em número inteiro 68020, retornaria um erro ao programa, encerraria o programa ou travaria e exigiria uma reinicialização.

Arquitetura

Die of Motorola 68881

O 68881 tem oito registradores de dados de 80 bits (uma mantissa de 64 bits mais um bit de sinal e um expoente assinado de 15 bits). Ele permite sete modos diferentes de representação numérica, incluindo precisão única, precisão dupla e precisão estendida, conforme definido pelo padrão de ponto flutuante IEEE , IEEE 754 . Ele foi projetado especificamente para matemática de ponto flutuante e não é uma CPU de uso geral. Por exemplo, quando uma instrução requer qualquer cálculo de endereço, a CPU principal trata deles antes que o 68881 assuma o controle.

O par CPU / FPU é projetado de forma que ambos possam ser executados ao mesmo tempo. Quando a CPU encontra uma instrução 68881, ela entrega à FPU todos os operandos necessários para aquela instrução e, em seguida, a FPU libera a CPU para prosseguir e executar a próxima instrução.

68882

Die of Motorola 68882

O 68882 é uma versão aprimorada do 68881, com melhor pipelining e, eventualmente, disponível em velocidades de clock mais altas . Seu conjunto de instruções é exatamente o mesmo. A Motorola afirmou em alguma literatura de marketing que executa algumas instruções 40% mais rápido que um 68881 na mesma velocidade de clock, embora isso não reflita o desempenho típico, como visto por sua melhoria mais modesta na tabela abaixo. O 68882 é compatível com o pino 68881 e pode ser usado como uma substituição direta na maioria dos sistemas. A incompatibilidade de software mais importante é que o 68882 usa um quadro de estado FSAVE maior, que afeta o UNIX e outros sistemas operacionais multitarefa preemptivos que tiveram que ser modificados para alocar mais espaço para ele.

Uso

Os 68881 ou 68882 foram usados ​​nas estações de trabalho Sun Microsystems Sun-3 , estações de trabalho IBM RT PC , família Apple Computer Macintosh II , NeXT Computer , Sharp X68000 , Amiga 3000 , Convergent Technologies MightyFrame, Atari Mega STE , TT e Falcon . Alguns produtos Amiga e Atari de terceiros usaram o 68881 ou 68882 como um periférico mapeado na memória para o 68000 .

Versões

68881

  • 155.000 transistores no chip
  • Versão de 12 MHz
  • A versão de 16 MHz funcionou a 160 k FLOPS
  • A versão de 20 MHz rodou a 192 kFLOPS
  • A versão de 25 MHz funcionou a 240 kFLOPS

68882

  • 176.000 transistores no chip
  • A versão de 25 MHz funcionou a 264 kFLOPS
  • A versão de 33 MHz funcionou a 352 kFLOPS
  • A versão de 40 MHz rodou a 422 kFLOPS
  • A versão de 50 MHz funcionou a 528 kFLOPS

Essas estatísticas vieram das Perguntas frequentes do comp.sys.m68k . Não há estatísticas listadas para 16 MHz e 20 MHz 68882, embora esses chips tenham sido produzidos.

Legado

Começando com o Motorola 68040 , o suporte de ponto flutuante foi incluído na própria CPU.

Referências

Notas