Motorola 6809

Da Wikipedia, l'enciclopedia libera.
Motorola 6809
Central processing unit
KL Motorola MC6809.jpg
Un Motorola 6809P in package DIP40
Prodotto 1977[1]
Frequenza CPU MHz
Package DIP40

Il Motorola 6809 è un microprocessore prodotto da Motorola a partire dal 1979 come evoluzione del predecessore Motorola 6800 per rispondere al MOS 6502 di MOS Technology. Fu progettato come processore ad 8 bit ma alcuni suoi registri interni furono impostati a 16 bit.

Descrizione[modifica | modifica sorgente]

Architettura dei registri interni del 6809

Fra le migliorie più significative del 6809 rispetto alle famiglie di processori che lo avevano preceduto c'erano la presenza di 2 accumulatori a 8 bit (il 6502 ne aveva solo 1) che potevano essere uniti per realizzare un singolo accumulatore a 16 bit. Era dotato anche di 2 registri indirizzi a 16 bit e di 2 puntatori di stack (il 6502 ne aveva 1 solo) e di metodi di indirizzamento molto avanzati.

Il 6809 era compatibile a livello di codice con il 6800, sebbene questo avesse un set di 78 istruzioni mentre il 6809 ne avesse solamente 59. Molte istruzioni eliminate erano state sostituite da istruzioni più generiche ed alcune istruzioni erano state sostituite da ulteriori modi di indirizzamento. L'assemblatore provvedeva a leggere l'assembly del 6800 e a convertirlo in codice macchina 6809 applicando le opportune conversioni. L'assembly nativo del 6809 era molto ortogonale: infatti era molto più semplice da programmare rispetto ai prodotti della concorrenza.

Altra caratteristica significativa era quella di essere stato il primo processore ad implementare in hardware l'operazione di moltiplicazione. Era dotato di un'aritmetica completa a 16 bit nonché di un veloce gestore degli interrupt. Questo processore era molto più veloce dei processori della serie 6800 (mediamente 5 volte più veloce) e, come questi, conteneva una istruzione non documentata che poteva danneggiare seriamente il bus del sistema (Halt and Catch Fire).

Le ottimizzazioni del 6809 erano molto diverse da quelle moderne. I processori moderni sono tutti internamente di tipo RISC, quindi sono in grado di eseguire un numero ridotto di istruzioni ma in modo molto rapido. I processori come il 6809 erano processori di tipo CISC, cioè processori dotati di molte istruzioni. Per poter eseguire molte istruzioni con molti modi di indirizzamento senza utilizzare milioni di transistor i progettisti realizzavano entro i processori delle unità generiche che venivano opportunamente programmate con il micro codice in modo da riconoscere e eseguire correttamente tutte le istruzioni assembly. Quindi un'ottimizzazione per il 6809 consisteva in un miglioramento del micro codice.

Lo Zilog Z80 era probabilmente il contendente diretto del 6809, anche se la loro struttura interna era fondamentalmente diversa. Ad esempio l'operazione "ADD A,63" richiedeva 7 cicli di clock allo Z80 contro i 3 del 6809. Quindi lo Z80, per ottenere le stesse prestazioni del 6809, operava a frequenze maggiori del 6809. Un altro esempio è costituito dal fatto che lo Z80, per leggere un dato in memoria, utilizzava un ciclo di clock di tipo "memoria", diversamente da molti altri microprocessori del tempo che utilizzavano un ciclo di clock interno. Quindi una lettura della memoria dello Z80 si sviluppava su più cicli di clock contro un unico ciclo necessario al 6800/6809. Questo diversa strategia di gestione interna dei vari microprocessori era comunque bilanciata dal clock massimo possibile. I processori da "un ciclo"/operazione erano limitati a 1-2 MHz di frequenza massima, lo Z80 impiegava più cicli ma poteva essere clocckato a 4-6 MHz, a seconda delle versioni.

Il 6809 era dotato internamente di un generatore di clock (necessitava ovviamente di un quarzo esterno). Il 6809E necessitava invece del generatore di clock esterno. Esistevano la varianti 68A09(E) e 68B09(E): la lettera serviva a indicare la diversa velocità di clock supportata.

Storia[modifica | modifica sorgente]

Motorola produsse originariamente il 6809 nelle versioni a 1 MHz e 2 MHz: versioni più veloci furono prodotte in seguito. È considerato il precursore "morale" della famiglia 68000, dato che il progetto del 68000 sembra una versione estesa e integrata del disegno del 6809.

Il 6809 venne utilizzato da Commodore nel suo computer con 2 CPU SuperPET e nella incarnazone del 68A09 nell'unica console vettoriale, la Vectrex, che, oltre a essere basata su una gestione della grafica di tipo vettoriale, era dotata anche di uno schermo integrato. Il 6809E venne utilizzato anche nel TRS-80 Color Computer (CoCo), nei computer Acorn System 2/3/4, nei cloni del CoCo prodotti in Inghilterra e nell'home computer Dragon 32/64.

L'azienda produttrice di software Microwave sviluppò il sistema operativo originale, l'OS-9 (da non confondere con il Mac OS 9) per il 6809 che, in seguito, venne convertito anche per i processori della serie 68000.

L'Hitachi 6309 era una versione avanzata del 6809 con più registri e più istruzioni. Tra le istruzioni aggiunte vi era quella per lo spostamento di interi blocchi di memoria, per moltiplicazioni multiple e la divisione implementata in hardware. Venne utilizzato nella versione non ufficiale del CoCo 3 e venne realizzata una versione dell'OS 9 in grado di avvantagiarsi delle sue peculiarità.

Sfortunatamente ne' Motorola ne' Hitachi portarono avanti lo sviluppo del 6809 pur essendo un processore molto valido ed in grado di essere utilizzato praticamente in qualsiasi ambito. Molte delle sue innovazioni vennero riprese e utilizzate nei processori progettati successivamente da Motorola.

Bibliografia[modifica | modifica sorgente]

Note[modifica | modifica sorgente]

  1. ^ Foto e dati del Motorola 6809, CPU-Collection.de. URL consultato il 23/01/2011.
informatica Portale Informatica: accedi alle voci di Wikipedia che trattano di informatica