In precedenza ci siamo occupati di due microprocessori a 8 bit estremamente diffusi e popolari, che sono rimasti nell’immaginario collettivo di moltissima gente: il MOS 6502 e lo Zilog Z80.
Eppure, nonostante siano state introdotte più di 30 anni fa (a metà degli anni ’70), queste CPU non sono state le prime a calcare la scena: l’onnipresente Intel è stata, infatti, la casa che ha dato inizio all’era degli 8 bit col suo 8080.
In realtà Intel aveva già tentato la strada con un altro microprocessore, l’8008, che però non aveva avuto fortuna a causa di non pochi problemi. In particolare i bug che avevano afflitto i primi esemplari avevano costretto CTC (l’azienda che le aveva commissionato il chip che doveva esser inserito in un suo dispositivo) ad abbandonarlo.
Nonostante ciò Intel ne continuò la sviluppo e arrivò alla commercializzazione, ma l’8008 era difficile da integrare in un sistema a causa dell’elevato numero di componenti che richiedeva per l’interfacciamento; inoltre l’architettura non era semplice da programmare.
Tutto ciò spinse il solito, geniale, Federico Faggin a proporre il design dell’8080 a Intel che, dopo un po’ di tempo, diede il via libera per questo ambizioso progetto. In effetti un chip con le caratteristiche dell’8080 non può che essere considerato tale, se consideriamo l’epoca in cui è stato pensato e poi realizzato.
Gli elementi chiave che lo contraddistinguono sono i seguenti:
- 7 registri a 8 bit (A, B, C, D, E, H e L);
- 6 di questi registri si possono combinare per formare 3 registri a 16 bit (BC, DE, HL);
- stack pointer a 16 bit (capace, quindi, di indirizzare anche tutta la memoria);
- indirizzamento indiretto della memoria tramite registro a 16 bit (HL);
- capacità (limita) di eseguire operazioni a 16 bit;
- indirizzamento delle porte di I/O su uno spazio d’indirizzamento riservato (non veniva, quindi, occupato spazio nella memoria);
- bus dati a 8 bit e bus indirizzi a 16 bit separati.
In particolare quest’ultima è degna di menzione, poiché permetteva di semplificare notevolmente il layout delle schede madri, necessitando di poca logica rispetto ai sistemi in voga a quei tempi, che erano per lo più multiplexati (in pratica gli stessi pin del chip venivano usati per funzioni diverse; ad esempio per far passare sia gli indirizzi che i dati, e ciò costringeva a utilizzare della logica esterna per “separare” queste informazioni). Ovviamente ciò comportava un costo più elevato per il chip, perché il package risultava più grande dovendo contenere un elevato numero di piedini.
Altrettanto importante era, a mio avviso, la possibilità di eseguire operazioni a 16 bit, sebbene fossero pochissime le istruzioni allo scopo. Più che importante si potrebbe affermare che fosse anomalo, considerato che la CPU era progettata per effettuare operazioni a 8 bit, ma rappresenta un punto di forza per questo processore, che i programmatori avranno apprezzato sicuramente.
Il vantaggio principale, però, è sicuramente quello di essere arrivato per primo. Chi è pioniere in un determinato settore è, infatti, facile che ne diventi anche il leader, dominando il mercato.
Vedremo che, in questo caso, l’aver aperto la strada per primi non ha giovato come si penserebbe a questa creatura di Intel, sebbene essa e i suoi successori siano stati impiegati in diversi progetti e usati come microcontrollori.