Home - cpu2bit

Cpu a 2 bit: un po' di storia

Fin da piccolo (!!!) avevo sempre voluto costruire un intero computer partendo (quasi) dal nulla. Il primo passo era costruire il processore, così cercai maggiori informazioni. Riuscii a trovare qualcosa, ma la mancanza di conoscenze mi fece abbandonare il progetto.
Qualche tempo dopo tornai sull'idea, ma decisi di lasciare stare la CPU e usarne una già pronta, lo Zilog Z80. Era il periodo in cui iniziai ad interessarmi al retrocomputing. Feci molti progetti basati su questo processore, e mi informai molto grazie a internet (e al mio modem 56k, velocità reale max. 24 kbps!), ma sopratutto imparai l'assembly su questo processore. Ciò mi diede conoscenze approfondite di come un processore dovesse essere.
Grazie a un programma freeware chiamato Multimedia Logic, ora potevo fare simulazioni di circuiti logici, e presto l'idea di un processore tornò. Feci un piccolo schema di una cpu a 4 bit in archittettura Harvard: istruzioni a 8 bit, di cui 4 per l'opcode, e 4 per scegliere uno dei 16 registri, o un dato immediato. Cercai di implementarne una versione simile, ma senza un solido progetto, il tutto non funzionò mai.
[INSERIRE IMMAGINE]
Continuai nel progettare un computer Z80, finchè un giorno, dopo aver visto una presentazione in PowerPoint del funzionamento dello Z80, dove si mostravano i registri nascosti, disegnai un altro prototipo di processore, con 3 registri (A,X,Y), il PC e lo SP, in architettura Von Neumann. Ma la cosa più importante, fù l'invenzione (nel mio piccolo) del microcodice. Ora sapevo come far interagire i vari elementi della CPU in modo semplice e controllato! Una semplice rom, con le linee di indirizzo collegate all'uscita dell' IR e a un contatore a 4 bit, e le linee del bus dati che comandavano i vari elementi del processore. Lo chiamai "microcodice", parola che avevo letto nel web, forse riferita a un vecchio computer IBM. Grazie a questa idea riuscii a creare (sempre con Multimedia Logic) una cpu a 2 bit (solo 2 poichè il simulatore non ha i bus, e ogni linea deve essere fatta con un filo separato; in più ogni registro deve essere creato a partire da flip-flops). Questa cpu era programmata interamente in microcodice, che veniva caricato nelle 2 ROM prima dell'esecuzione.

Schema semplificato
Finestra principale - clicca per vedere in grande Registri - clicca per vedere in grande ALU - clicca per vedere in grande
Pannello principale Registri Alu
Bus di collegamento - clicca per vedere in grande Microcodice - clicca per vedere in grande Input/Output - clicca per vedere in grande
Bus di collegamento Microcodice Gestione I/O

Wow! Avevo creato un processore! Ovviamente passai subito alla realizzazione di un processore a 8 bit, ma non andai lontano neanche 'sta volta. Allora decisi di progettare attentamente il processore nei vari dettagli prima di realizzarlo.

Clicca qui per scaricare il file per il simulatore, piĆ¹ 3 programmi di esempio e il "set istruzioni"

Valid XHTML 1.0 Strict