Motorola 68010
# Motorola 68010

L'MC68010, comunemente noto come Motorola 68010, è un microprocessore a 16/32 bit sviluppato da Motorola all'inizio degli anni ottanta.

Il processore è composto da 84 000 transistor ed è molto simile al predecessore Motorola 68000; l'unica differenza rispetto al 68000 è data dall'aggiunta di un gruppo di istruzioni che permettono di gestire i breakpoint e controllare i registri, consentendo di memorizzare lo stato e salvarlo durante un interrupt o una exception. Questa caratteristica può essere utilizzata per implementare una gestione della memoria virtuale che il 68000 non poteva implementare. Il 68010 normalmente non usa il chip 68451 che è un'unità MMU, perché un errato progetto iniziale rende molto lento il processore in congiunzione con la MMU. L'utilizzo della MMU esterna avrebbe introdotto un ciclo di clock di penalità per ogni accesso alla memoria. Questa penalità rendeva la MMU esterna molto impopolare infatti solo poche aziende utilizzavano il 68451 e solo quando l'uso della MMU non era evitabile.

Il 68010 non è mai stato popolare come il 68000. Le componenti aggiuntive lo rendevano più costoso del predecessore, ma le stesse componenti non erano considerate utili nella maggior parte dei progetti. Chi voleva una gestione della memoria virtuale normalmente si rivolgeva a modelli che meglio gestivano la MMU come il 68020. Comunque il 68010 è stato prodotto a frequenze maggiori del 68000 e un certo numero di workstation e di macchine unix alla fine lo hanno utilizzato per ottenere delle prestazioni più elevate. Un particolare modello di 68010 con piedinatura compatibile col 68000 è diventato per un certo periodo molto popolare tra gli utenti Amiga dato che consentiva di aumentare la velocità della macchina con un costo molto accessibile e con il mero scambio dell'integrato che, peraltro, era zoccolato sulla scheda madre rendendo semplice l'operazione. Il guadagno di velocità, se si considera che nessun'altra modifica interveniva sul sistema, era puramente dovuto al fatto che i microcodici di alcune istruzioni del 68010 erano state ottimizzate rispetto al 68000. In particolare la moltiplicazione richiedeva 14 cicli in meno e la divisione 32. Inoltre il 68010 aveva una sorta di acceleratore di mini-loop che, incontrando un ciclo costituito da due istruzioni più un salto, era in grado di mantenere tali istruzioni nei registri di fetch e prefetch con una maggior velocità d'esecuzione del loop stesso, stimata tra il 20% e l'80%. Per l'Amiga il guadagno di velocità dovuto alla mera sostituzione del processore 68000 con un 68010 dipendeva ovviamente dal tipo di programma considerato (uso intensivo di moltiplicazioni, divisioni e salti). In generale è stato stimato essere mediamente tra il 5% e il 10%.

