Il Processore: l Unità di Controllo della ALU Barbara Masucci

Documenti analoghi
Il Processore: l Unità di Controllo Principale Barbara Masucci

Implementazione semplificata

Architettura degli Elaboratori. Classe 3 Prof.ssa Anselmo. Appello del 20 Giugno Attenzione:

Architettura degli Elaboratori. Classe 3 Prof.ssa Anselmo. Appello del 19 Febbraio Attenzione:

Architettura degli Elaboratori e Laboratorio. Matteo Manzali Università degli Studi di Ferrara Anno Accademico

Architettura degli Elaboratori. Classe 3 Prof.ssa Anselmo. Appello del 26 Gennaio Attenzione:

Architettura degli Elaboratori

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

Architettura degli Elaboratori. Classe 3 Prof.ssa Anselmo. Appello del 10 Febbraio Attenzione:

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

CALCOLATORI ELETTRONICI 27 giugno 2017

Circuti AND, OR, NOT Porte logiche AND

Architettura degli Elaboratori. Classe 3 Prof.ssa Anselmo. Appello dell 11 Settembre Attenzione:

Il processore: unità di elaborazione

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

Moduli combinatori Barbara Masucci

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

Unità Aritmetico-Logica

Multiplexer. Multiplexer 2 a 1 (a 1 bit) e sua implementazione. Multiplexer 2 a 1 (a 32 bit) e sua implementazione

Architettura degli Elaboratori A Modulo 2

Architettura degli Elaboratori. Classe 3 Prof.ssa Anselmo. Appello del 22 giugno Attenzione:

Progetto CPU (ciclo singolo)

Progetto CPU (ciclo singolo) Salvatore Orlando

1. L istruzione li $a0, è un istruzione standard del processore MIPS? Se no, a quali istruzioni corrisponde e come viene eseguita?

La Microarchitettura. Davide Bertozzi

Calcolatori Elettronici

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

L unità di controllo di CPU a singolo ciclo

Pipelining: Unità di Elaborazione e di Controllo Barbara Masucci

1. Si effettui la divisione di 7/5 utilizzando un efficiente algoritmo e illustrando la corrispondente architettura hardware.

Architettura degli Elaboratori. Classe 3 Prof.ssa Anselmo. Pre-appello del 12 Gennaio Attenzione:

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

Architettura degli Elaboratori B. Introduzione al corso. Componenti di un calcolatore convenzionale. (ciclo singolo) Progetto CPU. Contenuti del corso

Architettura degli Elaboratori B Introduzione al corso

Astrazione dell implementazione. Il processore: unità di elaborazione e unità di controllo (2) Il controllo della ALU.

Elementi base per la realizzazione dell unità di calcolo

L unità di controllo di CPU a singolo ciclo

circuiti combinatori: ALU

Richiami sull architettura del processore MIPS a 32 bit

31!30!29!28!27!26!25!24!23!22!21!20!19!18!17!16!15!14!13!12!11!10! 9! 8! 7! 6! 5! 4! 3! 2! 1! 0! !

Architettura degli Elaboratori. Classe 3 Prof.ssa Anselmo. Pre-appello del 14 Gennaio Attenzione:

Architettura degli Elaboratori. Classe 3 Prof.ssa Anselmo. Pre-appello del 17 Gennaio Attenzione:

Circuiti combinatori notevoli

Richiami sull architettura del processore MIPS a 32 bit

Architettura degli Elaboratori. Classe 3 Prof.ssa Anselmo. Appello del 12 Gennaio Attenzione:

CPU a singolo ciclo. Lezione 18. Sommario. Architettura degli Elaboratori e delle Reti. Proff. A. Borghese, F. Pedersini

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

CALCOLATORI ELETTRONICI 15 aprile 2014

Architettura degli Elaboratori

L'architettura del processore MIPS

CPU a singolo ciclo. Lezione 18. Sommario. Architettura degli Elaboratori e delle Reti

Rappresentazione dell informazione

Progetto CPU a singolo ciclo

Circuiti combinatori ALU

Il Livello Logico-Digitale. Blocchi funzionali combinatori

Prova intermedia di Architettura degli elaboratori canale MZ Sterbini Compito A

Aritmetica in virgola mobile Algebra di Boole e reti logiche Esercizi. Mercoledì 8 ottobre 2014

Calcolatori Elettronici

Architettura degli Elaboratori

CALCOLATORI ELETTRONICI 14 giugno 2010

Architettura degli elaboratori MZ Compito A

Progetto CPU a singolo ciclo

Architettura degli Elaboratori. Classe 3 Prof.ssa Anselmo. Appello del 25 Febbraio Attenzione:

CPU a singolo ciclo: l unità di controllo, esecuzione istruzioni tipo J

Architettura degli Elaboratori. Classe 3 Prof.ssa Anselmo. Appello del 8 novembre Attenzione:

Logica binaria. Moreno Marzolla Dipartimento di Informatica Scienza e Ingegneria (DISI) Università di Bologna

Le etichette nei programmi. Istruzioni di branch: beq. Istruzioni di branch: bne. Istruzioni di jump: j

Circuiti Sequenziali

Valutazione delle Prestazioni Barbara Masucci

Reti combinatorie. Reti combinatorie (segue)

CALCOLATORI ELETTRONICI 29 giugno 2015

Reti combinatorie (segue) Reti combinatorie. Lezione 2. Architettura degli Elaboratori A. Sperduti 1

CPU a singolo ciclo: l unità di controllo, istruzioni tipo J

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

Architettura degli Elaboratori. Classe 3 Prof.ssa Anselmo. Appello del 18 Febbraio Attenzione:

CALCOLATORI ELETTRONICI 30 agosto 2010

Linguaggio macchina. Architettura degli Elaboratori e delle Reti. Il linguaggio macchina. Lezione 16. Proff. A. Borghese, F.

Minimizzazione di reti/funzioni logiche con le Mappe di Karnaugh. 12 ottobre 2015


Architettura degli elaboratori CPU a ciclo singolo

Esercitazione 06 Progettazione di una CPU RISC-V

Circuiti integrati. Circuiti combinatori ALU. Esempio di chip SSI. Circuiti combinatori

Arch. Elab. - S. Orlando 2. circuiti comunemente incontrati nel progetto di un computer. Con tecnologia MSI, gli IC contenevano alcuni componenti base

Arithmetic Logic Unit

Il linguaggio macchina

Informazioni varie. Lezione 18 Il Set di Istruzioni (5) Dove siamo nel corso. Un quadro della situazione

CALCOLATORI ELETTRONICI A 25 gennaio 2011

Moltiplicatori HW e ALU

Informatica e Bioinformatica: Circuiti

Università degli Studi di Cassino

Architettura degli Elaboratori e Laboratorio. Matteo Manzali Università degli Studi di Ferrara Anno Accademico

Architettura dei calcolatori e sistemi operativi. Pipelining e Hazard Capitolo 4 P&H

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

Un quadro della situazione. Lezione 15 Il Set di Istruzioni (3) Dove siamo nel corso. Organizzazione della lezione. Cosa abbiamo fatto

La CPU a singolo ciclo

ESERCITAZIONE 4.5. Approfondimento Circuiti Logici e Sequenziali

Lezione 17 Il Set di Istruzioni (3)

Il processore: unità di controllo

Transcript:

Architettura degli Elaboratori Il Processore: l Unità di Controllo della ALU Barbara Masucci

Punto della situazione Abbiamo visto come costruire l Unità di Elaborazione Dati (Datapath) del processore MIPS Oggi aggiungeremo all Unità di Elaborazione Dati costruita, la relativa Unità di Controllo Inizieremo con la costruzione di una piccola unità, detta Unità di Controllo della ALU, per generare i segnali di controllo per la ALU Poi costruiremo l Unità di Controllo principale, che in funzione del codice operativo dell istruzione da eseguire, genera, oltre a vari segnali di controllo, anche gli input per l unità di controllo della ALU

La ALU del MIPS La ALU prevede le 6 seguenti combinazioni dei suoi 4 segnali di controllo Ainvert (1 bit), Bnegate (1 bit), Opera3on (2bit) Ignoriamo l istruzione NOR (e il segnale Ainvert) perché non fa parte del set di istruzioni considerate

La ALU del MIPS La ALU deve eseguire Una somma, per calcolare l indirizzo di memoria, quando sono eseguite le istruzioni lw e sw (formato I) Una sottrazione, per eseguire l istruzione beq (formato I) Una delle 5 operazioni (AND, OR, add, sub, slt) in funzione del campo funct, per le istruzioni di tipo R

La ALU Control Per generare i segnali di controllo per la ALU possiamo utilizzare una piccola unità di controllo (ALU Control o Contollore ALU) che Riceve in ingresso il campo funct dell istruzione e un campo di controllo su 2 bit, detto ALUOp, che indica l operazione da eseguire Fornisce in output i segnali di controllo della ALU ALUOp 2 Funct 6 ALU Control Controllo ALU=ALU operation Ignoriamo il segnale Ainvert

La ALU Control Il segnale di input ALUOp per la ALU Control varia a seconda dell istruzione da eseguire Per lw e sw, ALUOp=00 (operazione per l ALU: somma) Per beq, ALUOp=01 (operazione per l ALU: sottrazione) Per istruzioni in formato R, ALUOp=10 (operazione per l ALU: dipende dal campo funct) ALUOp 2 Funct 6 ALU Control Controllo ALU=ALU operation Ignoriamo il segnale Ainvert

MIPS: implementazione di base All Unità di Elaborazione costruita

MIPS: implementazione di base aggiungiamo la ALU Control

In realtà nella slide precedente la ALU Control non è l unica aggiunta E stato aggiunto anche un multiplexer per selezionare il registro di scrittura (target) La necessità sorge dal fatto che il registro target si trova in posizioni diverse a seconda del tipo dell istruzione MIPS: implementazione di base Posizione dei bit da 15 a 11 per istruzioni di tipo R Posizione dei bit da 20 a 16 per istruzioni lw, sw registro target

MIPS: implementazione di base

La ALU Control L ultima colonna mostra i valori da assegnare ai segnali di controllo della ALU in funzione di ALUOp (2 bit) Campo funct (6 bit) Mai 11 Inizia sempre per 10 Non finisce mai per 11 Quando ALUOp=00 oppure 01, l operazione che la ALU deve eseguire non dipende dal campo funct: tale valore è indifferente e viene indicato con XXXXXX

La ALU Control Come implementare la corrispondenza tra i 2 bit di ALUOp e i 6 bit del campo funct con i 4 bit dei segnali di controllo della ALU? Innanzitutto, il campo funct viene considerato solo quando ALUOp=10 Inoltre, ci interessa solo un piccolo sottoinsieme dei 2 6 valori possibili che possono essere assunti dal campo funct Possiamo utilizzare un piccolo circuito logico che riconosca il sottoinsieme dei valori possibili e imposti i bit di controllo della ALU in modo corretto Per costruire questo circuito, scriviamo innanzitutto la tavola di verità della funzione Operation (4 bit, di cui consideriamo solo gli ultimi tre) Poiché la tavola ha 2+6=8 input, ci sono 2 8 =256 righe, ma molte di queste possono essere omesse perché corrispondenti ad input che non possono presentarsi (indifferenti)

Tavola di verità per Operation Somma per lw, sw Sub per beq add sub and or slt Siccome ALUOp non è mai 11, la tabella coneene le combinazioni X1 e 1X Inoltre, poiché quando si uelizza il campo Funct F5F4 è sempre 10, quese due bit sono sosetuie con XX ALUOp=00 ALUOp=01 ALUOp=10 somma per lw e sw sottrazione per beq formato R spec. dal campo funct 0000 = and 0001 = or 0010 = add 0110 = sub 0111 = slt (1100 = nor)

Dalla tavola di verità nella slide precedente possiamo omettere il primo bit di output e considerare solo gli altri tre: Operation2, Operation1, Operation0 Tavola di verità per Operation Per ciascuno di questi output possiamo considerare solo le righe della tavola in corrispondenza dei quali l output vale 1 Inoltre, possiamo compattare le tabelle risultanti, considerando solo gli input non indifferenti

Tavola di verità per Operation2 Input Output ALUOp Funct field Operation ALUOp1 ALUOp0 F5 F4 F3 F2 F1 F0 0 0 X X X X X X 010 X 1 X X X X X X 110 1 X X X 0 0 0 0 010 1 X X X 0 0 1 0 110 1 X X X 0 1 0 0 000 1 X X X 0 1 0 1 001 1 X X X 1 0 1 0 111 Operation2 0 1 0 1 0 0 1 La prima riga di input in cui Operation2=1 è riportata giù (con ALUOp1=X) Le altre 2 righe di input in cui Operation2=1, fra tutte quelle che iniziano per 1X, sono tutte e sole quelle in cui F1 = 1

Tavola di verità per Operation1 Input Output ALUOp Funct field Operation ALUOp1 ALUOp0 F5 F4 F3 F2 F1 F0 0 0 X X X X X X 010 0 1 X X X X X X 110 1 X X X 0 0 0 0 010 1 X X X 0 0 1 0 110 1 X X X 0 1 0 0 000 1 X X X 0 1 0 1 001 1 X X X 1 0 1 0 111 Le prime 2 righe di input in cui Operation1=1 sono tutte e sole quelle con ALUOp1 = 0 Le altre 3 righe di input in cui Operation1=1, fra tutte quelle che iniziano per 1X, sono tutte e sole quelle in cui F2 = 0

Tavola di verità per Operation0 Input Output ALUOp Funct field Operation ALUOp1 ALUOp0 F5 F4 F3 F2 F1 F0 0 0 X X X X X X 010 0 1 X X X X X X 110 1 X X X 0 0 0 0 010 1 X X X 0 0 1 0 110 1 X X X 0 1 0 0 000 1 X X X 0 1 0 1 001 1 X X X 1 0 1 0 111 Fra tutte le righe con ALUOp = 1X: la prima riga di input in cui Operation0 = 1, è l unica con F0 = 1; la seconda riga di input in cui Operation0 = 1 è l unica con F3 = 1

Tavole di verità compresse per i tre bit di Operation Tavola di verità per Operation 2 + Tavola di verità per Operation 1 Tavola di verità per Operation 0

Funzioni corrispondenti Operation2 = ALUOp0+ALUOp1 F1 + Operation1 = ALUOp1 + F2 Operation0 = ALUOp1 F0+ALUOp1 F3 = ALUOp1 (F0+F3)

Un circuito per Operation Ecco il circuito che realizza le tre funzioni Operation2 = ALUOp0+ALUOp1 F1 Operation1 = ALUOp1 + F2 Operation0 = ALUOp1 F0+ALUOp1 F3 = ALUOp1 (F0+F3) ALUOp ALUOp0 ALUOp1 ALU control block F3 Operation2 F (5 0) F2 F1 F0 Operation1 Operation0 Operation

Riepilogo e riferimenti Abbiamo studiato il funzionamento dell Unità di Controllo per la ALU [PH] parr. 4.4 (prima parte) Appendice D.1, D.2 (ottimizzazione del circuito per Operation)