Architettura degli Elaboratori

Documenti analoghi
Addizionatori: metodo Carry-Lookahead. Costruzione di circuiti combinatori. Standard IEEE754

Unità Aritmetico-Logica

Architettura degli Elaboratori

Aritmetica binaria e circuiti aritmetici

senza stato una ed una sola

Architettura degli Elaboratori

Somma di numeri floating point. Algoritmi di moltiplicazione e divisione per numeri interi

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

LEZIONE N 91. Introduzione agli elementi architetturali principali. Roberto Giorgi, Universita di Siena, C116L91, Slide 1

Appunti di informatica. Lezione 3 anno accademico Mario Verdicchio

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

0ROWLSOLFD]LRQHH'LYLVLRQH WUDQXPHULUHODWLYL

Moltiplicazione e Divisione tra numeri relativi

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

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

Laboratorio di Architettura degli Elaboratori A.A. 2016/17 Circuiti Logici

Lezione 7 Sommatori e Moltiplicatori

Rappresentazione dell Informazione

Dalla tabella alla funzione canonica

Implementazione semplificata

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

Progetto CPU (ciclo singolo) Salvatore Orlando

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

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

Corso di Informatica Generale (C. L. Economia e Commercio) Ing. Valerio Lacagnina Rappresentazione dei numeri relativi

Reti logiche: analisi, sintesi e minimizzazione Esercitazione. Venerdì 9 ottobre 2015

Reti Logiche Combinatorie

Esercitazioni su rappresentazione dei numeri e aritmetica. Interi unsigned in base 2

Elementi base per la realizzazione dell unità di calcolo

Lezione2: Circuiti Logici

Un circuito integrato è una piastrina di silicio (o chip), quadrata o rettangolare, sulla cui superficie vengono realizzati e collegati

Esercitazioni di Reti Logiche

Istruzioni assembler Istruzione N Registri

Conversione binario-decimale. Interi unsigned in base 2. Esercitazioni su rappresentazione. dei numeri e aritmetica

Esercitazioni di Reti Logiche. Lezione 4

Circuiti Combinatori

Aritmetica dei calcolatori. La rappresentazione dei numeri

Rappresentazione di numeri relativi (interi con segno) Rappresentazione di numeri interi relativi (con N bit) Segno e Valore Assoluto

Porte logiche. Porte logiche. Corso di Architettura degli Elaboratori. Algebra Booleana

Codifica e aritmetica binaria

Costruzione di. circuiti combinatori

Cap. 2 - Rappresentazione in base 2 dei numeri interi

Rappresentazione dei numeri interi in un calcolatore

Aritmetica dei Calcolatori

Esercitazioni di Reti Logiche. Lezione 1 Rappresentazione dell'informazione. Zeynep KIZILTAN zkiziltan@deis.unibo.it

La codifica. dell informazione

Lezione 7 ALU: Moltiplicazione e divisione

Reti Combinatorie: sintesi

Fondamenti di Informatica - 1. Prof. B.Buttarazzi A.A. 2011/2012

Lezione 3. I numeri relativi

Esercizi svolti e da svolgere sugli argomenti trattati nella lezione 25

Progetto di Circuiti Aritmetici

Riassunto. Riassunto. Ciclo fetch&execute. Concetto di programma memorizzato. Istruzioni aritmetiche add, sub, mult, div

Rappresentazione in complemento a 2: caratteristiche generali

Elettronica digitale: cenni

Lezione 4. Sommario. L artimetica binaria: I numeri relativi e frazionari. I numeri relativi I numeri frazionari

CALCOLATORI ELETTRONICI 15 aprile 2014

Moltiplicazioni e Divisioni. G. Michele Pinna (1)

SISTEMI. impostazione SISTEMI. progettazione. Saper utilizzare modelli di circuiti combinatori

La codifica binaria. Informatica B. Daniele Loiacono

Somma di numeri binari

CPU pipeline hazards

Il livello logico digitale

La codifica digitale

La codifica. dell informazione

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

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

I Circuiti combinatori: LOGISIM

Richiami sull architettura del processore MIPS a 32 bit

Transcript:

circuiti combinatori: ALU slide a cura di Salvatore Orlando, Marta Simeoni, Andrea Torsello 1

ALU ALU (Arithmetic Logic Unit) circuito combinatorio all interno del processore per l esecuzione di istruzioni macchina di tipo aritmetico/logiche Esempi di istruzioni aritmetico/logiche (e di confronto) and $2, $3, $4 # $2 = $3 and $4 or $2, $3, $4 # $2 = $3 or $4 add $2, $3, $4 # $2 = $3 + $4 sub $2, $3, $4 # $2 = $3 - $4 slt $2, $3, $4 # if ($3<$4) $2=1 else $2=0 bne $4,$5,Label # Se $4 $5, prossima istr. caricata dall indirizzo Label beq $4,$5,Label # Se $4 = $5, prossima istr. caricata dall indirizzo Label 2

ALU Quindi l ALU deve essere in grado di eseguire: somme (add) sottrazioni (sub) istruzioni di confronto (slt, beq, bne) funzioni logiche (and, or) Vediamo come viene costruita 3

Addizionatore L ALU deve includere un addizionatore per realizzare le somme di numeri interi in complemento a 2 Potremmo costruire un unico circuito combinatorio che implementa un addizionatore a n bit n dati 2*n input: A n-1 A 0 B n-1 B 0 n n+1 diverse funzioni di output: Rip C n-1 C 0 n solo due livelli di logica, ma con porte AND e OR con molti input Ø fan-in delle porte molto elevato (non ammissibile) 4

Addizionatore Soluzione di compromesso, basata su una serie di 1-bit adder collegati in sequenza n il segnale deve attraversare più livelli di logica n porte con fan-in limitato (ammissibile) n circuito che usa lo stesso metodo usato dall algoritmo carta e penna a cui siamo abituati 5

Addizionatore a singolo bit La tabella di verità dell addizionatore a singolo bit A B Rip Sum Rip_out 0 0 0 0 0 0 0 1 1 0 0 1 0 1 0 0 1 1 0 1 1 0 0 1 0 1 0 1 0 1 1 1 0 0 1 1 1 1 1 1 Sum AB Rip 00 01 11 10 0 1 1 1 1 1 Sum = ~A ~B Rip + ~A B ~Rip + A B Rip + A ~B ~Rip Rip_out AB Rip 00 01 11 10 0 1 1 1 1 1 Rip_out = Rip B + A B + Rip A 6

Addizionatore a singolo bit La funzione Sum non può essere semplificata ben 4 porte AND La costruzione di un 1-bit adder diventa più semplice impiegando porte XOR funzione logica che vale 0 (F) se entrambi gli ingressi sono uguali, ovvero entrambi 0 (F) o entrambi 1 (T) esempio di or esclusivo (XOR) nel linguaggio comune: o rimango a casa oppure vado al cinema Porta XOR A xor B esprime esattamente la somma di A e B 7

1-bit adder usando porte XOR Visto che la somma tra una coppia di bit A e B si esprime con A xor B abbiamo: Sum = (A xor B) xor Rip Rip_out = A B + (A xor B) Rip Rip A B Sum Rip A B + Sum Rip_out Rip_out 8

1-bit ALU 1-bit ALU usata per eseguire le istruzioni macchina seguenti: and $2, $3, $4 or $2, $3, $4 add $2, $3, $4 Operation è un segnale di controllo a 2 bit usato per selezionare quale ingresso del multiplexer deve uscire determina il tipo di operazione che l ALU deve eseguire l ALU è la tipica componente che fa parte del Datapath (Parte operativa) del processore La Parte Controllo comanda l esecuzione delle varie istruzioni settando opportunamente i segnali di controllo dell ALU (e delle altre componenti della Parte operativa) a b Operation CarryIn 0 1 2 CarryOut Result 9

32-bit ALU 32-bit ALU catena di 1-bit ALU con propagazione del Carry segnali di controllo per determinare l operazione che l ALU deve eseguire Operation: propagato a tutte le 1-bit ALU 10

Inversione e sottrazione La 1-bit ALU precedente può essere resa più complessa per poter eseguire: sub $2, $3, $4 Operazione di sottrazione: $2 = $3 - $4 trasformata in: $2 = $3 + (-$4) (-$4) significa che bisogna prima determinare l opposto (il complemento a 2) del numero signed contenuto in $4 il complemento a 2 si ottiene 1. effettuando l inversione dei bit (complemento a 1 bit-a-bit) 2. sommando 1 l ALU deve quindi possedere i circuiti predisposti per invertire il secondo operando e sommare 1 per sommare 1, basta porre ad 1 il carry-in dell ALU Binvert Operation Istruzione 0 00 and 0 01 or 0 10 sum 1 10 sub 11

Istruzioni di confronto slt $2, $3, $4 (set less than) $2=1 se è vero che $3 < $4 $2=0 altrimenti Se $3 < $4 allora $3 - $4 < 0 Quindi, per effettuare il confronto, possiamo semplicemente: sottrarre e controllare il bit di segno se non c è overflow durante la sottrazione il valore del bit di segno del risultato della sottrazione può essere semplicemente assegnato al bit meno significativo dei 32 bit in output tutti gli altri bit in output devono essere posti a 0 Tutte le 1-bit ALU devono quindi avere un ingresso in più l input Less, che verrà posto a 0 o a 1 sulla base del risultato dell istruzione slt 12

1-bit ALU per il bit più significativo La 1-bit ALU che determina la cifra più significativa è più complessa poiché deve controllare l overflow deve fornire, come ulteriore output, il bit di segno del risultato della sottrazione (Set) questo per permettere l implementazione di slt Set deve essere ridiretto verso la 1-bit ALU che fornirà in output il bit meno significativo del risultato Il blocco che controlla l overflow lo fa sulla base del tipo di operazione (sum o sub), identificata tramite Binvert i segni degli operandi il segno del risultato 13

Alu complessiva Output Set dell ultima 1-bit ALU viene ridiretto sull input Less della prima 1-bit ALU Tutti i bit Less delle varie 1-bit ALU (eccetto la prima) vengono posti a 0 Segnali di controllo: Binvert e Carryin vengono entrambi asserted (affermati) per sottrarre (sub e slt) I bit di Operation sono posti a 11 per far passare in output l ultimo bit in ingresso ai Multiplexer 4:1 Binvert Carryin Operation Istruzione 0 0 00 and 0 0 01 or 0 0 10 sum 1 1 10 sub 1 1 11 slt 14

slt e overflow Il circuito proposto per implementare l ultima 1-bit ALU della catena potrebbe NON FUNZIONARE per il slt nel caso di overflow non è ottimale per quanto riguarda l overflow Caso di malfunzionamento relativo a slt: slt $2, $3, $4 se $3>0 e $4<0 potremmo concludere direttamente che è vero che $3>$4 => $2=0 se invece sottraiamo per implementare slt, finiamo per sommare due numeri positivi ($3 + (-$4))» potremmo avere overflow, ottenendo così un bit di segno (Set) non valido (uguale a 1, invece che uguale a 0) un ragionamento analogo può essere fatto nel caso in cui $3<0 e $4>0 15

Circuito per slt Set deve essere determinato in modo da evitare il malfunzionamento precedente, relativo a un overflow non voluto Siano a = a 31.a 0 e b = b 31.b 0 i due numeri da confrontare res = res 31.res 0 il risultato degli 1-bit adder c = c 31.c 0 il risultato della ALU, che potrà solo essere: 0.01 oppure 0.00 Se a>=0 e b<0, allora a>b, e possiamo porre direttamente Set = 0 Se a<0 e b>=0, allora a<b, e possiamo porre direttamente Set = 1 nei 2 casi di sopra, all ALU viene comandato di eseguire una sottrazione, ma l eventuale OVERFLOW verrà ignorato Se a>0 e b>0, oppure se a<0 e b<0, allora possiamo considerare il risultato della sottrazione, e possiamo porre Set = res 31 in questi casi non si può verificare OVERFLOW, per cui res 31 conterrà il bit di segno corretto 16

Circuito corretto per slt a 31 b 31 res 31 Set 0 0 0 0 0 0 1 1 1 1 0 0 1 1 1 1 0 1 X 0 1 0 X 1 a>=0 e b<0 a<0 e b>=0 res 31 a 31 b 31 0 1 00 01 1 11 10 1 1 1 Set = a 31 ~b 31 + ~b 31 res 31 + a 31 res 31 Set a 31 b 31 res 31 17

Alu finale Abbiamo risparmiato un bit di controllo Bnegate al posto di: (Binvert, Carryin) Nell ALU precedente, infatti, (Binvert, Carryin) venivano sempre asserted o deasserted assieme Abbiamo ulteriormente specializzato l ALU per l esecuzione delle istruzioni di branch condizionato beq e bne devo controllare se a=b oppure se a b posso comandare alla ALU di sottrarre, e controllare se a-b=0 oppure se a-b 0 Zero=1 a-b==0 (a=b) 18

Componente combinatoria: ALU Simbolo usato per rappresentare la componente ALU nel progetto della CPU. Alu operation comprende i segnali di controllo Bnegate e Operation. Gli ingressi a, b e l uscita Result sono a 32 bit. 19

ALU e Somma veloce Considerazioni sulla velocità dell ALU nell eseguire la somma: n l ingresso CarryIn di ogni 1-bit adder dipende dal valore calcolato dall 1-bit adder precedente n il bit più significativo della somma deve quindi attendere 32 volte il tempo di attraversamento del segnale attraverso i vari sommatori LENTO... ci sono metodi per velocizzare il calcolo del riporto? n si, il metodo del Carry Lookahead n si cerca di far passare il segnale per un numero minore di porte, per anticipare il riporto n non lo vediamo a lezione, lo trovate comunque sul libro di testo (Appendice C per la terza edizione; appendice B per la seconda edizione) 20