L unità di elaborazione PC: MAR/MDR IR: R0 Rn: TEMP, V, Z

Documenti analoghi
Data-path. ad un solo bus interno. Struttura del processore. L unità di elaborazione

Struttura del processore. Funzionamento del processore

Introduzione alla Microprogrammazione

Esercizio n. 7 - Microcodice

Architettura degli elaboratori Tema d esame del 20/01/2016

Architettura degli elaboratori - CPU multiciclo A.A. 2016/17. Architettura degli elaboratori

Capitolo 5 Elementi architetturali di base

che vengano generati nell ordine corretto i sistema (es., la memoria, l unità aritmetico-

Sistemi e reti CPU Concetti di base

Richiami sull architettura del processore MIPS a 32 bit

Richiami sull architettura del processore MIPS a 32 bit

Elementi di informatica

Esercitazione del 05/05/ Soluzioni

Esercizi su microistruzioni. 1 Esercizi con architettura a 1 bus

Lezione 29 Il processore: unità di controllo (2)

Il processore: unità di controllo

Il processore: unità di elaborazione

Elementi di informatica

Progettazione dell unità di elaborazioni dati e prestazioni. Il processore: unità di elaborazione. I passi per progettare un processore

Capitolo 5 Struttura di base del processore

Realizzazione del controllo

Pinout PD32. Memoria di lavoro esterna. tramite l indirizzo ad esse associato. e possono essere lette o scritte: Le singole celle sono distinguibili

Componenti principali

Componenti principali. Programma cablato. Architettura di Von Neumann. Programma cablato. Cos e un programma? Componenti e connessioni

L unità di controllo di CPU a singolo ciclo

Architettura degli Elaboratori Lez. 8 CPU MIPS a 1 colpo di clock. Prof. Andrea Sterbini

ARCHITETTURA DI UN ELABORATORE! Ispirata al modello della Macchina di Von Neumann (Princeton, Institute for Advanced Study, anni 40).!

Struttura CPU. Struttura e Funzione del Processore. Capitolo 12. Compiti CPU:

Processore. Memoria I/O. Control (Parte di controllo) Datapath (Parte operativa)

Linguaggio macchina. 3 tipi di istruzioni macchina. Istruzioni per trasferimento dati. Istruzioni logico/aritmetiche

CPU pipeline hazards

1 Esercizi con architettura a 1 bus

Il processore. Istituzionii di Informatica -- Rossano Gaeta

Macchina di von Neumann

Componenti e connessioni. Capitolo 3

Architettura di un calcolatore e linguaggio macchina. Primo modulo Tecniche della programmazione

Il calcolatore. È un sistema complesso costituito da un numero elevato di componenti. è strutturato in forma gerarchica

CPU a ciclo multiplo

L'architettura del processore MIPS

Corso di Alfabetizzazione Informatica 2001/2002. La CPU. F. Tortorella Università degli Studi. di Cassino

(a) INTRODUZIONE ALLE ARCHITETTURE E ALLA SIMULAZIONE VERILOG DI PROCESSORI

Componenti di un processore

Architettura del microprocessore. Introduzione Architettura a bus singolo Architettura a due bus Architettura a tre bus

La CPU a singolo ciclo

Processore. Memoria I/O. Control (Parte di controllo) Datapath (Parte operativa)

Argomenti. Processori microprogrammati. Architetture CISC Architetture RISC. » Pipeline» Architetture superscalari

Indirettezza. Fetch/Execute. Fetch/Execute. Introduzione della Indirettezza (indirect)

Architettura degli Elaboratori

Tecniche della Programmazione, , Parte1

CPU a ciclo multiplo

Corso di Fondamenti di Informatica Elementi di Architettura

Architettura dei calcolatori e sistemi operativi. Il processore Capitolo 4 P&H

La CPU e la Memoria. Sistemi e Tecnologie Informatiche 1. Struttura del computer. Sistemi e Tecnologie Informatiche 2

CPUSim. Laboratorio 30/11/2016

Lezione 15. L elaboratore Elettronico

ARCHITETTURA DI UN ELABORATORE

Il Ciclo Fetch-Decode-Execute. C Nyssen/Aberdeen College 2003

Struttura di un elaboratore

ARCHITETTURA DI UN ELABORATORE

AXO - Architettura dei Calcolatori e Sistema Operativo. organizzazione strutturata dei calcolatori

Architettura dei Calcolatori Elettronici

Il set istruzioni di MIPS Modalità di indirizzamento. Proff. A. Borghese, F. Pedersini

Architettura dei Calcolatori. Macchina di von Neumann /2. Macchina di von Neumann /1. Architettura dei Calcolatori

Macchine Astratte. Luca Abeni. February 22, 2017

Architettura dei calcolatori

Architettura di un processore basato su registri generali.

Architettura di un calcolatore e ciclo macchina. Appunti per la classe 3 Dinf

Il Processore: l unità di controllo

ARCHITETTURA DI UN SISTEMA DI ELABORAZIONE

L ARCHITETTURA DEI CALCOLATORI. Il processore La memoria centrale La memoria di massa Le periferiche di I/O

Università degli Studi di Cassino

Il pipelining: tecniche di base

Calcolatori Elettronici

ARCHITETTURA DI UN ELABORATORE

Lezione 12: L architettura LC-3

Il pipelining: tecniche di base

Corso di Calcolatori Elettronici MIPS: Istruzioni di confronto Istruzioni di controllo Formato delle istruzioni in L.M.

Architettura dei computer

Architettura hardware

Linguaggio assembler e linguaggio macchina (caso di studio: processore MIPS)

Problemi del ciclo singolo

L insieme delle istruzioni (6)

Macchina di von Neumann/Turing

ISA (Instruction Set Architecture) della CPU MIPS

Progetto CPU (ciclo singolo) Salvatore Orlando

Sommario FONDAMENTI DI INFORMATICA. Architettura di Von Neumann. Algoritmi e programmi ESERCITAZIONE PYTHON ARCHITETTURA DEI CALCOLATORI

Microelettronica Corso introduttivo di progettazione di sistemi embedded

Elementi base per la realizzazione dell unità di calcolo

Architettura di una CPU

Architettura dei sistemi di elaborazione: La CPU: Architettura (parte1)

Linguaggio Assembly e linguaggio macchina

ISA DLX: Implementazione Tramite Struttura Sequenziale

HARDWARE 1.4a: (Processore)

HSA HSA HARDWARE SYSTEM ARCHITECTURE. Livelli. Livello assemblativo. Livello di. Sistema Operativo. Livello di. linguaggio macchina.

Le memorie Cache n-associative

Architettura di un calcolatore: Introduzione parte 2

Università degli Studi di Cassino Corso di Fondamenti di Informatica Elementi di Architettura. Anno Accademico 2010/2011 Francesco Tortorella

Corso di Laurea in Informatica Architetture degli Elaboratori

Processore: Datapath & Control. Progetto CPU (ciclo singolo) Rivediamo i formati delle istruzioni. ISA di un MIPS-lite

Università degli studi di Bologna Anno Accademico 2000/2001 Corso di Architettura degli elaboratori

Transcript:

Struttura del processore L unità di elaborazione Corso ACSO prof. Cristina SILVANO Politecnico di Milano Datapath ad un solo bus interno Faremo riferimento ad una generica CPU e a una memoria con parole da 32 bit (istruzioni e dati) I registri: i PC: Program Counter registro contatore di programma; MAR/MDR (registri per accesso a memoria): Memory Address Register e Memory Data Register IR: Instruction Register registro istruzione in esecuzione; R Rn: Registri del banco di registri; TEMP, V, Z (registri interni non visibili al programmatore); L unità di controllo: Decodifica le istruzioni; Emette i segnali di controllo interni e esterni (bus per accesso a memoria e periferiche); Può essere cablata o microprogrammata. 2 Pag.

bus interno del processore comandi ordini PC linee di indirizzo bus di memoria linee di dato MAR MDR decodificatore di istruzioni e circuito di controllo IR costante 4 V R select MUX banco di registri linee di comando della ALU add sub and A ALU R B riporto in ingresso R n TEMP Z 3 Collegamenti registri e bus interno del processore Riin bus interno del processore Ri Riout Vin V costante da 4 bit select MUX A ALU R B Zin Z Zout 4 Pag. 2 2

Il registro MDR: collegamenti con bus esterno di memoria e con bus interno del processore linee di dato del bus esterno di memoria MDRoutE MDRout bus interno del processore MDR MDRinE MDRin Sequenza di controllo La sequenza di controllo per eseguire una istruzione assembly è composta da diversi passi, uno per ogni ciclo di clock del processore: Fetch (prelievo); Decode (decodifica); Execute (esecuzione). Ad ogni passo (ciclo di clock) vengono generati i comandi (attivi in parallelo) Esempi di comandi: Lettura di un registro (dal registro al bus interno) R out Scrittura su un registro (dal bus interno al registro) R in Operazione dell ALU: add, sub,... Lettura e scrittura in memoria: read, write Comandi mutuamente esclusivi Lettura da registro: un solo registro alla volta può essere caricato sul bus interno Singola operazione dell ALU 5 6 Pag. 3 3

Esempio di operazione aritmetica: R3 < [R] + [R2] Passo Comandi Operazione (in RTL). R out V < [R] 2. R2 out, select V, add, Z in Z < [V] + [R2] 3. Z out, R3 in R3 < [Z] RTL: Register Transfer Level o livello di trasferimento tra registri Esempio di caricamento da memoria (LOAD): move (R), R2! R2 < [[R]] Passo Comandi Operazione (in RTL). R out, MAR in, read MAR < [R], read 2. MDR ine, WMFC MDR < [data bus], wait 3. MDR out, R2 in R2 < [MDR] WMFC: Wait for Memory Function Completion 7 8 Pag. 4 4

Esempio di memorizzazione: (STORE): move R2, (R)![R] < [R2] Passo Comandi Operazione (in RTL). R out, MAR in MAR < [R] 2. R2 out, MDR in, write MDR < [R2], write 3. MDR oute, WMFC data_bus < [MDR], wait WMFC: Wait for Memory Function Completion 9 Accesso a memoria Riscontro del completamento dell operazione Segnale MFC (Memory function completion) E attivato dallo slave e indica il completamento dell operazione Ad esempio in lettura indica che il dato è presente sul bus Comando WMFC (wait for MFC): questo ordine blocca l avanzamento dei passi di controllo finché il processore non riceve il segnale MFC. Lettura da memoria: l uso del registro MDR può avvenire solo al passo successivo a quello associato a WMFC. In generale quindi l ordine WFMC viene emesso al passo precedente a quello in cui si utilizza il registro MDR Scrittura in memoria: l ordine WMFC viene emesso in generale nello stesso passo in cui viene emesso il segnale di write Clock e temporizzazione: Il fronte attivo per la memorizzazione in un registro è quello di salita Pag. 5 5

passo 2 3 Temporizzazione dell operazione di caricamento (lettura) da memoria (LOAD) clock MARin indirizzo i read 2 3 4 5 R / W MDRinE dato MFC (riscontra) MDRout Ottimizzazione del trasferimento da memoria Passo Comandi Operazione (in RTL). R out, MAR in, read, WMFC MAR < [R], read, wait 2. MDR out, R2 in R2 < [MDR] WMFC: Wait for Memory Function Completion 2 Pag. 6 6

Sequenza di controllo completa: ADD R, R Consideriamo l istruzione ASM ADD R, R! R< [R] + [R] Fetch (identica per tutte le istruzioni): Passo Comandi Operazione (in RTL). PC out, MAR in, read, select 4, add, Z in MAR < [PC], Z < [PC] + 4, read 2. Z out, WMFC PC < [Z], V< [Z], wait 3. MDR out, IR in IR < [MDR] Decode: decodificare l IR; Execute: 4. R out V < [R] 5. R out, select V, add, Z in Z < [V] + [R] 6. Z out, R in, end R < [Z] 3 Sequenza di controllo completa: ADD (R3), R Consideriamo l istruzione ASM ADD (R3), R!R < [[R3]] + [R] Fetch (identica per tutte le istruzioni): Passo Comandi Operazione (in RTL). PC out, MAR in, read, select 4, add, Z in MAR < [PC], Z < [PC] + 4, read 2. Z out, WMFC PC < [Z], V< [Z], wait 3. MDR out, IR in IR < [MDR] Decode: decodificare l IR; Execute: 4. R3 out, MAR in, read MAR < [R3], read 5. R out, WMFC V < [R], wait 6. MDR out, select V, add, Z in Z < [V] + [MDR] 7. Z out, R in, end R < [Z] 4 Pag. 7 7

Sequenza di controllo completa: MOVE (R), R2 Consideriamo l istruzione ASM MOVE (R), R2! R2 < [[R]] Fetch (identica per tutte le istruzioni): Passo Comandi Operazione (in RTL). PC out, MAR in, read, select 4, add, Z in MAR < [PC], Z < [PC] + 4, read 2. Z out, WMFC PC < [Z], V< [Z], wait 3. MDR out, IR in IR < [MDR] Decode: decodificare l IR; Execute: 4. R out, MAR in, read MAR < [R], read 5. MDR ine, WMFC MDR < [data bus], wait 6. MDR out, R2 in, end R2 < [MDR] 5 Sequenza di controllo completa: MOVE #costante, R Consideriamo l istruzione ASM MOVE #costante, R (istruzione codificata su 2 parole) : R < costante Passo Fetch Comandi (identica per tutte tte le istruzioni): ioni): Operazione (in RTL). PC out, MAR in, read, select 4, add, Z in MAR < [PC], Z < [PC] + 4, read 2. Z out, WMFC PC < [Z], V< [Z], wait 3. MDR out, IR in IR < [MDR] Decode: decodificare l IR; Execute: 4. PC out, MAR in, read, select 4, add, Z in MAR < [PC], Z < [PC] + 4, read 5. Z out, WMFC PC < [Z], wait 6. MDR out, R in, end R < [MDR] 6 Pag. 8 8

Sequenza di controllo completa: salto incondizionato Consideriamo l istruzione ASM: JMP offset(pc)! PC offset + [PC] Fetch (identica per tutte le istruzioni): Passo Comandi Operazione (in RTL). PC out, MAR in, read, select 4, add, Z in MAR < [PC], Z < [PC] + 4, read 2. Z out, WMFC PC < [Z], V < [Z], wait 3. MDR out, IR in IR < [MDR] Decode: decodificare l IR; Execute: 4. Offset of IR out, Select V, Add, Z in Z < [V] + offset_ir out 5. Z out, end PC < [Z] 7 Sequenza di controllo completa: salto condizionato Consideriamo l istruzione ASM: BCC < offset(pc)! BCC < PC offset + [PC] Fetch (identica per tutte le istruzioni): Passo Comandi Operazione (in RTL). PC out, MAR in, read, select 4, add, Z in MAR < [PC], Z < [PC] + 4, read 2. Z out, WMFC PC < [Z], V < [Z], wait 3. MDR out, IR in IR < [MDR] Decode: decodificare l IR; Execute: 4. Offset of IR out, Select V, Add, Z in if bit N= end Z < [V] + offset_ir out if bit N= end 5. Z out, end PC < [Z] 8 Pag. 9 9

Le istruzioni ISA di salto condizionato BRA LABEL (long istruzione codificata su 2 parole) PC < LABEL + [PC] Passo Comandi Operazione (in RTL). PC out, MAR in, read, select 4, add, Z in MAR < [PC], Z < [PC] + 4, read 2. Z out, WMFC PC < [Z], V< [Z], wait 3. MDR out, IR in IR < [MDR] 4. PC out, MAR in, read, select 4, add, Z in MAR < [PC], Z < [PC] + 4, read 5. Z out, Vin, WMFC PC < [Z], V < [Z], wait 6. MDR out, Select V, Add, Z in Z < [V] + [MDR] 7. Z out, end PC < [Z] 9 Le istruzioni ISA di salto condizionato Bcc < OFFSET (long istruzione codificata su 2 parole) Passo Comandi Operazione (in RTL). PC out, MAR in, read, select 4, add, Z in MAR < [PC], Z < [PC] + 4, read 2. Z out, WMFC PC < [Z], V< [Z], wait 3. MDR out, IR in IR < [MDR] 4. PC out, MAR in, read, select 4, add, Z in MAR < [PC], Z < [PC] + 4, read 5. Z out, Vin, WMFC, if bit N= end PC < [Z], V < [Z], wait, if bit N= end 6. MDR out, Select V, Add, Z in Z < [V] + [MDR] 7. Z out, end PC < [Z] 2 Pag.

Struttura del processore L unità di controllo Unità di controllo L unità di controllo emette i segnali di controllo (comandi) che regolano il funzionamento del datapath. L unità di controllo può essere: cablata: costruita adhoc; basata su decodificatore di istruzioni (che utilizza l IR), contatore (per scandire la successione dei passi di controllo), codici di condizione, segnali esterni e rete combinatoria in grado di generare i comandi ad ogni passo di controllo. microprogrammata: decodifica difi le istruzioni i i e legge in una memoria di controllo (controlstore) tramite micropc una microparola con i segnali di controllo da emettere. 22 Pag.

Unità di controllo cablata clock blocca il conteggio contatore passi di controllo decodificatore di passo ripristina lo stato iniziale T T 2 T n IR decodificatore di istruzione ISTR ISTR 2 ISTR m generatore di ordini segnali esterni bit di esito (codici di cond.) run (WMFC) end 23 ordini Esempio: Generazione segnale Z in Z in = T OR T4 AND "IR=branch" OR T6 AND "IR=add" OR branch add T 4 T 6 T Z in 24 Pag. 2 2

Unità di controllo microprogrammata Il comportamento dell unità di controllo microprogrammata dipende esclusivamente dal contenuto della memoria di controllo (control store) detta anche memoria di microprogramma. I bit di controllo di ogni passo sono memorizzati in una parola di memoria della control store Ogni parola di memoria viene chiamata microistruzione La sequenza di microistruzioni corrispondenti ai passi di controllo per l esecuzione di un istruzione ISA costituisce una microroutine L insieme di microroutine costituisce il microprogramma I calcolatori dove è possibile modificare il contenuto del control store sono detti microprogrammabili Vediamo un esempio di control store per l istruzione ADD (R3), R 25 Passo Comandi per ADD (R3), R Operazione (in RTL). PC out, MAR in, read, select 4, add, Z in MAR < [PC], Z < [PC] + 4, read Esempio di control store 2. Z out, WMFC PC < [Z], V< [Z], wait 3. MDR out, IR in IR < [MDR] 4. R3 out, MAR in, read MAR < [R3], read 5. R out, WMFC V < [R], wait 6. MDR out, select V, add, Z in Z < [V] + [MDR] 7. Z out, R in, end R < [Z] μ istruz. 2 PCin PCout MARin read MDRout IRin Vin select add Zin Zout Rout Rin R3out WMFC end 3 4 5 6 7 26 Pag. 3 3

Struttura unità di controllo μprogrammata IR generatore di μ indirizzo iniziale e di micro salto ingressi esterni (bus) bit di esito (codici di cond.) clock μ PC memoria di μ programma 27 μ istruzione (ordini al processore) Esempio di micro routine. PC out, MAR in, Read, select 4, Z in Add 2. Z out,wmfc 3. MDR out, IR in 4. Salta al microindirizzo della micro routine appropriata (decodifica IR)... 25.PC out, MAR in, Read, select 4, Add, Z in 26.Z out,wmfc, if bit N= end (goto microistr. ) 27.MDR out, select V, Add, Z in 28.Z out, end (goto microistr. ) 28 Pag. 4 4

Formato μistruzione (codificata) Per ridurre la lunghezza della microistruzione (e della relativa control store) > cerchiamo di applicare una codifica dei bit di controllo contenuti nella microistruzione suddividendola in campi di bit corrispondenti a gruppi di comandi mutuamente esclusivi μ istruzione suddivisa in campi di bit C i (C i codifica un gruppo di ordini mutuamente esclusivi) C C 2 C 3 C 4 C 5 C 6 C 7 C 8 Ovviamente, occorreranno, a valle della control store, dei circuiti di decodifica per rigenerare i bit di controllo 29 Formato μistruzione (codificata) Codifica registri in uscita su bus interno Codifica bus interno su ingresso registri MAR, MDR, TEMP, V Codifica bus interno su ingresso registri PC, IR, Z, Ri 3 Codifica su 4 bit dei 6 comandi dell ALU Pag. 5 5

Formato μistruzione (codificata) Codifica idle/ read/write Codifica selez. MUX in ingresso porta A dell ALU Codifica WMFC Codifica end 3 Salti e calcolo del prossimo microindirizzo () Per ottimizzare la struttura del microcodice Riuso di parti del microcodice per scrivere le micro routine associate alla fase di esecuzione di ogni istruzione ISA Ad esempio per gestire le varie modalità di indirizzamento parti comuni a diverse modalità di indirizzamento Tecnica: mascheratura del microindirizzo Il microindirizzo generale (o base) viene modificato mascherando alcuni bit per generare gli indirizzi corretti 32 Pag. 6 6

Salti e calcolo del prossimo microindirizzo (2) Aumento delle prestazioni Le microistruzioni di salto non svolgono alcuna operazione utile ma pilotano solo il flusso di esecuzione del programma (altrimenti governato dal micro PC) Sono cicli macchina persi ai fini dell esecuzione di una istruzione ISA Soluzione alternativa di gestione del sequenziamento Ogni microistruzione contiene il microindirizzo di quella successiva da eseguire > inutile il registro micro PC Il sequenziamento puro è tradotto in un micro salto alla microistruzione successiva I micro salti incondizionati si realizzano codificando il microindirizzo della microistruzione cui saltare E chiaro che i salti condizionati rimangono 33 Struttura unità di controllo microprogrammata Ogni μistruzione contiene il μindirizzo di quella successiva da eseguire > inutile il registro μpc sostituito da μmar aggiornato ad ogni ciclo con il μindirizzo proveniente dal campo μindirizzo della μistruzione (anche per esecuzione di istruzioni in sequenza) che può essere modificato tramite i bit di mascheratura 34 Pag. 7 7

IR ingressi esterni (bus) bit di esito (cod. di cond.) circuiti di mascheratura e decodifica Bit di mascheratura schiera di porte OR μ MAR memoria di μ programma Microindirizzo incorporato nella microistruzione μ indirizzo campi di μ istruzione decodificatore di μ ordini μ IR μ ordini controllo delle funzioni (diretti al processore) di mascheratura e 35 decdifica del μ indirizzo Formato μistruzione (codificata) μ istruzione suddivisa in campi di bit C i (C i codifica un gruppo di ordini mutuamente esclusivi) C C C2 C3 C4 C5 C6 C7 C8 C9 C 36 Pag. 8 8

Formato μistruzione (codificata) Codifica registri in uscita su bus interno Codifica bus interno su ingresso registri PC, IR, Z, Ri Codifica bus interno su ingresso registri MAR, MDR, TEMP, V 37 Formato μistruzione (codificata) Codifica su 4 bit dei 6 comandi dell ALU Codifica idle/ read/write Codifica selez. MUX in ingresso porta A dell ALU Codifica WMFC Codifica opcode IR Codifica maschera bit del campo MODO di IR per specificare il modo di indirizzamento di Rsorgente Codifica maschera bit 8 di IR del campo modo di IR 38 Pag. 9 9

Utilizzo campi C8, C9, C Se C8, C9, C inattivi: il prossimo μindirizzo è dato dal campo μindirizzo C della μistruzione corrente: μprogramma avanza in modo sequenziale (C= μindirizzo corrente +) μprogramma effettua il μsalto condizionato (C= indirizzo di destinazione μsalto) Se C8 o C9 o C attivi si effettua il μsalto condizionato secondo le modalità seguenti: Se C8 inattivo e C9 o C attivi: μsalto condizionato con μindirizzo i i base di μsalto dato da C + bit di mascheratura Se C8 attivo e C9 o C attivi: μsalto condizionato con μindirizzo base di μsalto dato da decodifica opcode di IR + bit di mascheratura 39 Esempio di memoria di controllo ind. ottale C C C 2 C 3 C 4 C 5 C 6 C 7 C 8 C 9 C 2 3 2 2 2 7 7 7 2 7 3 4 Pag. 2 2

Struttura del processore L unità di elaborazione a tre bus Costi vs prestazioni La definizione della microarchitettura dipende da un compromesso tra costi e prestazioni. Incremento della prestazioni determinato da: tecnologia; architettura. Costi difficili da definire (progetto, dimensioni, produzione, resa...). 42 Pag. 2 2

Incremento delle prestazioni Ipotesi: definite tecnologia e ISA. Approcci microarchitetturali per migliorare prestazioni: riduzione del numero di cicli di clock per l esecuzione di ogni istruzione; riduzione della durata del ciclo di clock semplificando l organizzazione dell architettura; sovrapposizione dell esecuzione delle istruzioni (pipelining). 43 Esecuzione di un istruzione L esecuzione di ogni istruzione richiede: lettura dell istruzione dalla memoria; decodifica difi dei campi dell istruzione. i In termini di microistruzioni: PC passa attraverso la ALU e viene incrementato; PC viene usato per leggere la parola seguente nel programma; PC ed ALU vengono usati per leggere gli eventuali operandi. La ALU è utilizzata per diversi cicli di clock: per operazioni non legate alla esecuzione di una istruzione ma piuttosto al suo caricamento; per caricare un operando in attesa che sia poi disponibilie il secondo operando. Ciò comporta un notevole spreco di tempo. 44 Pag. 22 22

Riduzione del numero di cicli di clock Replicazione di moduli hardware per evitare conflitti di risorse. Soluzione : inserire un sommatore aggiuntivo per incrementare il PC: costoso in termini di area sul silicio; non si verifica un vantaggio sostanziale: incremento del PC avviene durante la fase di lettura dell istruzione e quindi la ALU non è impegnata. Soluzione 2: aggiungere percorsi addizionali: ad esempio percorsi diretti fra alcuni registri; aumento del numero dei segnali di controllo; microistruzioni e microcodice più complessi. Soluzione 3: aggiungere un bus addizionale. 45 Architettura a tre bus Le operazioni aritmetiche richiedono: un primo ciclo di clock per caricare un operando nel registro V; durante tale ciclo la ALU non viene utilizzata; un secondo ciclo di clock per eseguire l operazione. Un possibile miglioramento consiste nel rendere possibile la connessione diretta di tutti i registri con entrambi gli ingressi dati della ALU. Questa soluzione richiede l aggiunta di un ulteriore bus. L architettura risultante è dotata di tre bus: BUS A: lettura dei registri sull operando A della ALU BUS B: lettura dei registri i sull operando B della ALU BUS C: scrittura dell uscita della ALU sui registri L'unità di controllo deve oportunamente essere modificata per controllare correttamente un processore dotato di tre bus. 46 Pag. 23 23

bus A bus B bus C incrementatore PC banco di registri costante 4 M U X A B ALU R decodificatore di istruzioni IR MDR MAR linee di dato 47 linee di indirizzo Sequenza di controllo completa (3 bus) Consideriamo l istruzione ASM: ADD R, R Fetch (identica per tutte le istruzioni): Passo Comandi Operazione (in RTL). PC outb, MAR inc, enable B, read, PCinc Decode: MAR < [PC], PC < [PC] + 4, R = B, read 2. WMFC wait 3. MDR outb, enableb, IR in R = B, IR < [MDR] decodificare l IR; Execute: 4. R outa, R outb, Add, R inc, goto(fetch) R < [R] + [R] 48 Pag. 24 24