Il processore minimo S. Salvatori - Microelettronica marzo 209 (50)
Il processore minimo Il tipo più semplice di processore prevederà: un, Program Counter, per puntare all istruzione da eseguire un, Instruction Register, che mantiene il codice dell istruzione da eseguire un registro, Accumulatore, in grado di immagazzinare il dato su cui lavorare in un certo istante una ALU, Arithmetic Logic Unit, in grado di eseguire operazioni elementari una unità di decodifica e controllo che imposterà le azioni in funzione dell istruzione..6 S. Salvatori - Microelettronica marzo 209 (5)
Esempio di processore minimo Per il più semplice processore prevediamo per l'istruzione un formato a 6 bit; Nei 6 bit sono inclusi l' a 4 bit e un campo d'indirizzo a 2 bit: 4 bits 2 bits S istruzioni a 6 bit I dati sono a 6 bit (ALU) 2 bit d indirizzo -> 4096x6 = 8 kbyte di spazio di memoria S. Salvatori - Microelettronica marzo 209 (52)
Il set di istruzioni è anch'esso minimo: Istruzione Opcode Effetto LDA S 0000 := mem 6 [S] STO S 000 mem 6 [S] := ADD S 000 := + mem 6 [S] SUB S 00 := - mem 6 [S] JMP S 000 := S JGE S 00 if >= 0 := S JNE S 00 if!=0 := S STP 0 stop S. Salvatori - Microelettronica marzo 209 (53)
Il progetto della logica è divisibile in due passi fondamentali: datapath tutti gli elementi che lavorano su parole (acc.,, ALU, ) fanno parte del datapath per questi elementi si usa uno stile di progetto di tipo Register Transfer level (RTL), basato su registri, MUX, logica di controllo tutto ciò che non è incluso nel datapath, farà parte della logica di decodifica/controllo il progetto si basa su FSM (Finite State Machine) S. Salvatori - Microelettronica marzo 209 (54)
Progetto a livello di datapath S. Salvatori - Microelettronica marzo 209 (55)
datapath 2 6 S. Salvatori - Microelettronica marzo 209 (56)
datapath 2 6 S. Salvatori - Microelettronica marzo 209 (57)
datapath 2 6 S. Salvatori - Microelettronica marzo 209 (58)
datapath 2 6 S. Salvatori - Microelettronica marzo 209 (59)
datapath 2 6 S. Salvatori - Microelettronica marzo 209 (60)
datapath 2 6 S. Salvatori - Microelettronica marzo 209 (6)
datapath 2 6 S. Salvatori - Microelettronica marzo 209 (62)
datapath? 2 6 S. Salvatori - Microelettronica marzo 209 (63)
datapath l esecuzione dell istruzione prevede un un numero di di cicli di di clock pari agli agli accessi in in memoria necessari 2 accessi accesso Instruzione Opcode Effetto LDA S 0000 := mem 6 [S] STO S 000 mem 6 [S] := ADD S 000 := + mem 6 [S] SUB S 00 := - mem 6 [S] JMP S 000 := S JGE S 00 if >= 0 := S JNE S 00 if!=0 := S STP 0 stop S. Salvatori - Microelettronica marzo 209 (64)
datapath 2 6 S. Salvatori - Microelettronica marzo 209 (65)
datapath 2 L'incremento del può essere svolto dalla stessa ALU (più avanti i dettagli) 6 S. Salvatori - Microelettronica marzo 209 (66)
datapath 2 6 S. Salvatori - Microelettronica marzo 209 (67)
datapath design assunto che l istruzione sia stata caricata, il progetto a livello di datapath prevede due passi fondamentali:. accesso all operando in memoria esce l indirizzo da l operando e l'accumulatore giungono alla ALU il risultato fornito dalla ALU è caricato nell accumulatore stesso oppure il contenuto dell accumulatore è scritto in memoria 2. fetch della nuova istruzione ( o 2 hanno l indirizzo della locazione per la nuova istruzione) il contenuto è incrementato dalla ALU il nuovo valore è salvato in Comunque: inizializzazione (il processore deve iniziare da uno stato noto) input di RESET per esempio: azzerata l uscita della ALU, caricarne poi il valore in S. Salvatori - Microelettronica marzo 209 (68)
Progetto a livello RTL (Register Transfer Level) S. Salvatori - Microelettronica marzo 209 (69)
Organizzazione RTL MEMrq MEMrq RnW RnW buffer per la connessione su data-bus Segnali di selezione Segnali di controllo ce ce ALU B ALU B A A z z oe oe segnali di abilitazione per i registri Stabiliamo che il dato venga caricato nel registro in corrispondenza del fronte negativo di clock S. Salvatori - Microelettronica marzo 209 (70)
Progetto della logica di controllo Decodifica dell'istruzione corrente; Generare i segnali di controllo all'interno del datapath; Si intuisce che il progetto prevede quello di una FSM: la rappresentazione mediante il diagramma degli stati è superflua vi sono solo due stati: Fetch e Execute solo bit di stato Progetto FSM S. Salvatori - Microelettronica marzo 209 (7)
Progetto della FSM z z ce ce ALU B ALU A B A oe oe Bit di stato Ex/ft: execute = 0 fetch = tabella degli stati: input output instruction Op-code Ex/ft 5 Reset z ce oe MEMrq EX/ft R/nW S. Salvatori - Microelettronica marzo 209 (72)
FSM: istruzione LDA S z z ce ce ALU B ALU A B A oe oe fase di execute preparo memorizz. nell accumulatore instruction input Op-code Ex/ft 5 Reset z LDA S 0000 0 0 x x output ce oe MEMrq EX/ft R/nW 0 0 0 = B La prossima è il fetch dell'istruzione succ. S. Salvatori - Microelettronica marzo 209 (73)
FSM: istruzione LDA S ce ce + B B ALU ALU A A z z oe oe fase di fetch della successiva <- + instruction input Op-code Ex/ft 5 Reset z LDA S 0000 0 x x output ce oe MEMrq EX/ft R/nW 0 0 0 0 0 B+ preparo memorizzazione dell istruzione S. Salvatori - Microelettronica marzo 209 (74)
FSM: istruzione STO S ce ce oe oe R / W ALU B ALU A B A z z preparo memorizz. in memoria instruction input Op-code Ex/ft 5 Reset z output ce oe MEMrq EX/ft R/nW STO S 000 0 0 x x x 0 0 0 x 0 STO S 000 0 x x 0 0 0 0 B+ 0 S. Salvatori - Microelettronica marzo 209 (75)
FSM: istruzione ADD S ce ce oe oe z z ALU B ALU A B A instruction input Op-code Ex/ft 5 Reset z output ce oe MEMrq EX/ft R/nW ADD S 000 0 0 x x 0 0 0 A+B ADD S 000 0 x x 0 0 0 0 B+ 0 S. Salvatori - Microelettronica marzo 209 (76)
FSM: istruzione SUB S ce ce oe oe z z ALU B ALU A B A instruction input Op-code Ex/ft 5 Reset z output ce oe MEMrq EX/ft R/nW SUB S 00 0 0 x x 0 0 0 A-B SUB S 00 0 x x 0 0 0 0 B+ 0 S. Salvatori - Microelettronica marzo 209 (77)
FSM: istruzione JMP S ce ce oe oe z z ALU B ALU A B A instruction input Op-code Ex/ft 5 Reset z output ce oe MEMrq EX/ft R/nW JMP S 000 0 x x x 0 0 0 B+ 0 S. Salvatori - Microelettronica marzo 209 (78)
FSM: istruzione JGE S ce ce oe oe z z ALU B ALU A B A instruction input Op-code Ex/ft 5 Reset z output ce oe MEMrq EX/ft R/nW JGE S 00 0 x x 0 0 0 0 B+ 0 cond. verificata JGE S 00 0 x x 0 0 0 0 B+ 0 cond. non verificata S. Salvatori - Microelettronica marzo 209 (79)
FSM: istruzione JNE S ce ce oe oe z z ALU B ALU A B A instruction input Op-code Ex/ft 5 Reset z output ce oe MEMrq EX/ft R/nW JNE S 00 0 x 0 x 0 0 0 B+ 0 JNE S 00 0 x x 0 0 0 0 B+ 0 S. Salvatori - Microelettronica marzo 209 (80)
FSM: istruzione STP ce ce oe oe z z ALU B ALU A B A instruction input STP 0 Op-code Ex/ft 5 Reset z output ce oe MEMrq EX/ft R/nW 0 x x x x 0 0 0 0 x 0 0 S. Salvatori - Microelettronica marzo 209 (8)
FSM: RESET z z ce ce ALU B ALU A B A oe oe N.B.: in e viene memorizzato 0 (per tutti i periodi di clock in cui RST è alto). RST CLK instruction input - - - xxxx Op-code Ex/ft 5 Reset z output ce oe MEMrq EX/ft R/nW x x x 0 0 0 = 0 0 S. Salvatori - Microelettronica marzo 209 (82)
FSM: sintesi ce ce ALU B ALU A B A z z oe oe organizzazione RTL fetch dell istruzione corrente e incremento di => coincidono S. Salvatori - Microelettronica marzo 209 (83)
Sviluppi futuri per il MUn Aumentare il numero di linee di indirizzo; Aumentare i modi di indirizzamento; Consentire il salvataggio di (subroutines); Aggiungere altri registri interni; inserire linee di interrupt; S. Salvatori - Microelettronica marzo 209 (84)