Unità Aritmetico-Logica

Похожие документы
Elementi base per la realizzazione dell unità di calcolo

Appunti di informatica. Lezione 3 anno accademico Mario Verdicchio

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

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

Architettura degli Elaboratori

Rappresentazione dell Informazione

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

ARCHITETTURA DI UN SISTEMA DI ELABORAZIONE

Conversione di base. Conversione decimale binario. Si calcolano i resti delle divisioni per due

Laboratorio di Architettura degli Elaboratori LabArch 2007 Terzo Quadimestre, a.a Docente: H. Muccini

Le operazioni. di somma. e sottrazione

04 Aritmetica del calcolatore

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

Cap. 2 - Rappresentazione in base 2 dei numeri interi

Calcolo numerico e programmazione Rappresentazione dei numeri

Rappresentazione di numeri interi

Codifica binaria. Rappresentazioni medianti basi diverse

Sistemi di numerazione

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

CONVERSIONE BINARIO DECIMALE NB: Convertire in decimale il numero binario N = N =

Reti Combinatorie: sintesi

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

Implementazione semplificata

Rappresentazione in complemento a 2: caratteristiche generali

Numeri interi relativi

Operazioni in N Le quattro operazioni Definizioni e Proprietà

Sviluppo di programmi

Esercitazioni di Reti Logiche. Lezione 4

Nel microprocessore 8086 abbiamo una gran quantità di registri

Aritmetica dei Calcolatori

Notazione scientifica e inversione di formule

Il concetto di calcolatore e di algoritmo

35 è congruo a 11 modulo 12

UNITÀ DIDATTICA 6 LE PROPORZIONI NUMERICHE

La divisione di numeri naturali: esercizi svolti

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

La codifica. dell informazione

x + y = t x y = t x y = t x : y = t a b c = a (b c) (a b) : c = a (b: c) b : c am bn = (ab) m+n a : b

Codifica dei Numeri. Informatica ICA (LC) 12 Novembre 2015 Giacomo Boracchi

I numeri relativi. Definizioni Rappresentazione Operazioni Espressioni Esercizi. Materia: Matematica Autore: Mario De Leo

ESERCIZIARIO DI MATEMATICA

Richiami di aritmetica

La tabella dell addizione Completa la tabella e poi rispondi alle domande.

Architettura generale del calcolatore Hardware (tutto ciò che e tangibile) Software (tutto ciò che non e tangibile)

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

Richiami di Algebra di Commutazione

4 + 7 = 11. Possiamo quindi dire che:

Componenti di un processore

Calcolo letterale. è impossibile (*) x y. per x = -25; impossibile per y= Impossibile. 15 y

Algebra di Boole Algebra di Boole

Lezione 3. I numeri relativi

CALCOLO LETTERALE I MONOMI. Il primo tipo di oggetto che incontriamo nel calcolo letterale è il MONOMIO.

Informatica/ Ing. Meccanica/ Edile/ Prof. Verdicchio/ 30/06/2016/ Foglio delle domande / VERSIONE 1

5 - Istruzioni condizionali

Errori di misura Teoria

Corso di Architettura degli Elaboratori

Richiami di aritmetica (1)

Somma di numeri binari

Numeri frazionari. sistema posizionale. due modi: virgola fissa virgola mobile. posizionale, decimale

Le operazioni fondamentali con i numeri relativi

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

4 0 = 4 2 = 4 4 = 4 6 = 0.

Somma di due o più numeri naturali

Prontuario degli argomenti di Algebra

Rappresentazione dei Dati

Istruzioni assembler Istruzione N Registri

Problema: dati i voti di tutti gli studenti di una classe determinare il voto medio della classe.

Richiami di aritmetica(2)

Formule e funzioni. Manuale d uso

Informatica Generale 1 - Esercitazioni Flowgraph, algebra di Boole e calcolo binario

In molte applicazioni sorge il problema di sapere in quanti modi possibili si può presentare un certo fenomeno.

La tabella dell addizione Completa la tabella e poi rispondi alle domande.

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

La proprietà associativa Applica la proprietà associativa, come nell esempio.

Conoscenze. 1. L addizione è l operazione che associa a due numeri, detti, un... numero, detto, che si ottiene...

Laboratorio di programmazione

= < < < < < Matematica 1

Calcolatori Elettronici B a.a. 2006/2007

APPUNTI DI INFORMATICA

Транскрипт:

Unità Aritmetico-Logica A ritmethic L ogic U nit E l unità che esegue le operazioni aritmetiche e le operazioni logiche AND e OR 1-bit ALU : è una componente dell ALU che produce un singolo bit sui 32 della parola del MIPS. Per le operazioni logiche la 1-bit ALU realizza i blocchi logici: AND-gate, OR-gate e NOT-gate. Un selettore (multiplexer) permette di operare la scelta tra le due operazioni logiche AND e OR. Operazione a 0 b 1 Quando il segnale di controllo Operazione è 0 viene eseguita la AND tra a e b, quando è 1 viene eseguita la OR.

Addizione Quandi si esegue l addizione bit-a-bit sulla parola di 32 bit, con l eccezione del bit0, si deve tener conto di un eventuale riporto 0000000000000000 0001 1 1 1 1 0 0 1 1 0 1 0 0 riporto 0000000000000000 0000 1 0 1 1 1 1 0 0 1 0 1 1 + 0000000000000000 0000 0 1 1 0 1 0 0 1 1 0 1 0 = 0000000000000000 0001 0 0 1 0 0 1 1 0 0 1 0 1 La 1-bit ALU che esegue l addizione ha in ingresso, oltre ai due bit da sommare, anche un bit che indica il riporto. R-in a b + Somma R-out Poiché il riporto dovrà essere propagato come input per la somma dei due bit successivi, si deve prevedere anche un secondo valore in uscita che rappresenta il riporto da propagare.

a b R-in R-out Somma 0 0 0 0 0 0 0 1 0 1 0 1 0 0 1 0 1 1 1 0 1 0 0 0 1 1 0 1 1 0 1 1 0 1 0 1 1 1 1 1 Le configurazioni in cui la funzione R-out vale 1 sono: 0 1 1 a b R-in 1 0 1 a b R-in b R-in 1 1 0 a b R-in a R-in 1 1 1 a b R-in a b R-out = a R-in + b R-in + a b R-in a R-out b

Le configurazioni in cui la funzione Somma vale 1 sono: 0 0 1 a b R-in 0 1 0 a b R-in 1 0 0 a b R-in 1 1 1 a b R-in Somma = a b R-in + a b R-in + a b R-in + a b R-in Per la funzione Somma, si può anche verificare che: Somma = R-out (a + b + R-in) + a b R-in Infatti Somma = R-out eccetto nelle configurazioni 000 in cui R-out = 0 = Somma 111 in cui R-out = 1 = Somma Nella configurazione: 000 (a + b + R-in) = 0 e a b R-in = 0 111 a b R-in =1 In tutte le altre configurazioni: (a + b + R-in) = 1 (c e sempre almeno un 1) e a b R-in = 0 (c e sempre almeno uno 0).

R-in Operazione a 0 1 b + 2 R-out R-in Operazione ALU0 Output-0 ALU1 Output-1 ALU31 Output-31

Sottrazione a - b = a + ( b + 1) Cosa accade se R-in per ALU0 viene posto uguale a 1? Anziché aumentare il numero di ingressi del multiplexer, possiamo aggiungere un selettore e un ingresso Binvert. Binvert R-in Operazione 0 1 0 1 + 2 Funzione Binvert R-in Operazione Sottrazione a - b 1 1 2

Set on Less Than Per eseguire questa istruzione si devono poter azzerare tutti i bit dal bit-1 al bit-31 ed assegnare al bit-0 il valore: 1 se A < B 0 altrimenti Nell ipotesi che NON ci sia overflow A < B A - B < 0 (A - B) è negativo bit-31 di (A - B) =1 ALU0 0 ALU1 0 ALU31

Test di overflow Casi di overflow: (A - B) > 0 e bit-31 di (A - B) = 1 oppure (A - B) < 0 e bit-31 di (A - B) = 0 Ovvero: bit-31(a) = 0, bit-31(b) = 1 bit-31(a - B) = 1 oppure bit-31(a) = 1, bit-31(b) = 0 bit-31(a - B) = 0 Per realizzare il controllo di overflow è sufficiente agire sulla componente ALU 31 e produrre l uscita overflow = a b output + a b output Ottenuto il valore della funzione overflow, è possibile correggere anche la realizzazione della funzione Set, tenendo conto del valore di overflow. a31 b31 out31 overflow Set 0 0 0 0 0 0 0 1 0 1 0 1 0 0 0 0 1 1 1 0 1 0 0 1 1 1 0 1 0 1 1 1 0 0 0 1 1 1 0 1 Set = overflow output + overflow output

0 1 0 1 + 2 3 a 31 b 31 operazione Output 31 Set Set Test di overflow Binvert R-in Operazione Funzione 0 0 0 AND 0 0 1 OR 0 0 2 addizione 1 1 2 sottrazione 1 1 3 less

Binvert R-in Bnegate Operazione Funzione Controllo 0 0 0 0 AND 0 00 0 0 0 1 OR 0 01 0 0 0 2 addizione 0 10 1 1 1 2 sottrazione 1 10 1 1 1 3 less 1 11

Test di uguaglianza A = B A B = 0

Operazione A B ALU R-out zero output overflow Problema del riporto Con lo schema precedente l ALU 31 deve aspettare il riporto calcolato dall ALU30, che deve aspettare quello calcolato dall ALU29, La propagazione dei riporti crea un ritardo. Teoricamente è possibile tener conto di tutte le configurazioni dei 32 bit e costruire una rete a due livelli, ma.

Addizionatore veloce Si noti prima che considerando le possibili configurazioni delle prime due coppie di bit, è possibile prevedere il valore del riporto in ingresso per ALU1 e ALU2 a0 b0 r0 r1 0 0 0 0 0 0 1 0 0 1 0 0 r1 = a0 r0 + b0 r0 + a0 b0 0 1 1 1 1 0 0 0 1 0 1 1 1 1 0 1 1 1 1 1 a1 b1 r1 r2 0 0 0 0 0 0 1 0 0 1 0 0 r2 = a1 r1 + b1 r1 + a1 b1 1 1 1 1 0 0 0 1 0 1 1 1 1 0 1 1 1 1 1 In generale: r(i+1) = ai ri + bi ri + ai bi = (ai + bi) ri + ai bi

r(i+1) = (ai + bi) ri + ai bi Siano pi = ai + bi fattore di propagazione gi = ai bi fattore di generazione Allora r(i+1) = pi ri + gi Si noti che se gi =1 allora r(i+1) =1, viene generato un riporto indipendentemente dal valore di pi ri. Se gi = 0 la generazione del riporto dipende invece dal fattore di propagazione pi, il riporto precedente viene propagato in avanti. I riporti r1, r2, r3, e r4 possono essere espressi come r1 = g0 + p0 r0 r2 = g1 + p1 r1 = g1 + p1 (g0 + p0 r0) = g1 + p1 g0 + p1 p0 r0 r3 = g2 + p2 r2 = g2 + p2 (g1 + p1 g0 + p1 p0 r0) = g2 + p2 g1 + p2 p1 g0 + p2 p1 p0 r0 r4 = g3 + p3 r3 = g3 + p3 (g2 + p2 g1 + p2 p1 g0 + p2 p1 p0 r0) = g3 + p3g2 + p3p2 g1 + p3 p2 p1 g0 + p3p2 p1 p0 r0 Si possono usare queste espressioni per operare sui primi 4 bit in modo piu veloce. Piu in generale, si potrebbe dividere la parola in blocchi di 4 bit, velocizzare ciascun blocco e poi comporre i blocchi come già visto precedentemente (composizione delle 1-bit ALU).

Output 0 3 R1 Output 4 7 R2 Output 8 11 R3 Output 12 15 R4 E chiaramente preferibile ripetere la stessa velocizzazione applicata ai 4 blocchi di 1-bit ALU associando i blocchi appena costruiti 4 a 4. Si tratta di esprimere R1, R2, R3, R4 in funzione di nuovo fattori di propagazione (Pi) e generazione (Gi) che possono essere calcolati dai singoli blocchi.

P0 G0 Output 0-3 R1 P3 G3 Output 12-15 R4 Il calcolo dei valori Pi e Gi è abbastanza complesso. Esempio R1 = r4 = g3 + p3 g2 + p3 p2 g1 + p3 p2 p1 g0 + p3 p2 p1 p0 r0 = G0 + P0 r0