RETRODREAMSAMIGA & SPECTRUM
Menu

← Todos os chips

68010.chip

DIP-64 · MC68010P10 · desenho, não fotografia

Motorola 68000Motorola

1982

Motorola 68010

O 68000 corrigido: memória virtual a sério e um truque para ciclos curtos.

O 68010, de 1982, encaixa no mesmo socket do 68000 e corrige o que faltava para memória virtual e máquinas virtuais. Nenhum Amiga o trazia de origem, mas é a atualização mais simples que se pode fazer a um A500.

bits por dentro
32
bits de bus
16
MHz no máximo
12,5
endereçáveis
16 MB

O que faltava ao 68000

O 68000 tinha um problema para quem queria memória virtual, a técnica em que o sistema finge ter mais memória do que tem e vai buscar ao disco o que falta. Quando uma instrução tenta ler memória que não está lá, o processador tem de parar, esperar que o sistema a traga e depois continuar. O 68000 não guardava informação suficiente para retomar a instrução a meio.

O 68010, lançado em 1982, resolve isso: em caso de erro de barramento guarda o seu estado interno na pilha e consegue continuar a instrução depois. Foi o que permitiu a sistemas Unix como os da Sun usarem memória virtual com um processador da família.

As diferenças por dentro

A instrução MOVE from SR, que lê o registo de estado do processador, passou a ser privilegiada: um programa normal que a use provoca uma exceção. Com isso, o 68010 cumpre os requisitos de Popek e Goldberg para virtualização, e um sistema pode correr outro por cima sem que este dê pela diferença. Para compensar, apareceu a MOVE from CCR, que lê só a parte que interessa aos programas.

Acrescentou um registo novo, o VBR, que diz onde começa a tabela de exceções, em vez de ela estar sempre no endereço zero. E acrescentou o modo de ciclo (loop mode): se um ciclo for feito de uma só instrução curta seguida de um DBcc, o processador guarda-o por dentro e deixa de o ir buscar à memória a cada volta. Numa cópia de memória simples, isto poupa muito tempo.

Por fora é quase igual ao 68000: barramento de dados de 16 bits, 24 bits de endereços e 16 MB. A Motorola vendia-o a 8, 10 e 12,5 MHz, em DIP de 64 pinos, PLCC de 68 e PGA de 68. Existiu também o 68012, com 31 bits de endereços, até 2 GB.

Onde foi usado

Esteve em estações de trabalho da Sun (Sun-2), da Apollo (DN300 e DN320), no HP 9000 modelo 310 e no AT&T UNIX PC (3B1). Nas arcadas, a Atari usou-o, por exemplo, no Marble Madness de 1984.

Nos computadores domésticos ficou na sombra do 68000, mais barato, e o 68020 chegou logo em 1984.

O 68010 no Amiga

Nenhum Amiga saiu da fábrica com um 68010. Mas como é compatível pino a pino com o 68000 em DIP de 64, basta tirar um e pôr o outro num A500, A1000 ou A2000. O AmigaOS reconhece o processador sem nada a instalar.

O ganho geral anda pelos 10% à mesma velocidade de relógio. Nos ciclos curtos o modo de ciclo pode dar bastante mais, e há jogos que fazem muito trabalho com o processador em que a diferença se nota.

O preço a pagar é a MOVE from SR. Alguns programas antigos usam-na em modo de utilizador e passam a dar erro. Para esses casos há programas como o DeciGEL, que apanham a exceção e fazem o trabalho em vez da instrução.

Sabias que…

  1. A instrução que partiu programas no 68010 é a mesma que dá problemas em todos os processadores da família que vieram depois: 68020, 68030, 68040 e 68060.

  2. Com o VBR, o WHDLoad consegue voltar ao Workbench quando carregas na tecla de saída, coisa que num 68000 não é possível.

  3. O modo de ciclo funciona como uma cache minúscula: guarda apenas duas instruções, a do trabalho e a do salto.

  4. A folha técnica da Motorola anuncia 57 tipos de instrução, mais um do que o 68000.

  5. Houve donos de Atari ST e de Mega Drive a fazer a mesma troca de processador que se faz no A500.

  6. A Sun passou do 68000, na Sun-1, para o 68010 na segunda geração, a Sun-2.

Onde está

Nenhuma das máquinas do site saiu de fábrica com este processador: chegou aos Amiga em placas aceleradoras, que também instalamos.