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.
- 32
- 16
- 12,5
- 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…
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.
Com o VBR, o WHDLoad consegue voltar ao Workbench quando carregas na tecla de saída, coisa que num 68000 não é possível.
O modo de ciclo funciona como uma cache minúscula: guarda apenas duas instruções, a do trabalho e a do salto.
A folha técnica da Motorola anuncia 57 tipos de instrução, mais um do que o 68000.
Houve donos de Atari ST e de Mega Drive a fazer a mesma troca de processador que se faz no A500.
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.