Sei sulla pagina 1di 43

Legge Di Moore

Architettura modulo 1

La legge di Moore dice che ogni 18 mesi raddoppiano: 1. Le prestazioni 2. Il numero di transistor 3. Le capacit delle memorie (DRAM)

Larchitettura di riferimento rappresentata dal modello proposto nel 1946 da JOHN VON NEUMANN ed quello impiegato per tutti gli elaboratori convenzionali. Il "cuore" dell' elaboratore costituito da due componenti: 1. La memoria, che contiene il programma da eseguire e i dati da esso utilizzati, 2. Il processore, cio l'esecutore. Il processore opera ripetendo ciclicamente le seguenti operazioni: 1. Preleva dalla memoria la prossima istruzione da eseguire (FASE DI FETCH) 2. Interpreta l' istruzione, cio ne riconosce il significato (FASE DI DECODE) 3. Esegue le operazioni corrispondenti all'istruzione (FASE DI EXECUTE) Possiamo subito osservare che le istruzioni da eseguire, e dunque i programmi, devono essere scritti in un linguaggio comprensibile dal processore, detto linguaggio macchina. Inoltre il processore non in grado di elaborare direttamente i dati contenuti nella memoria centrale, ma pu operare solo su dati che si trovano all'interno di appositi registri contenuti nel processore stesso. Pertanto, per effettuare un 'operazione su dati contenuti nella memoria, necessario trasferire i dati dalla memoria nei registri del processore, effettuare l' operazione utilizzando i registri e trasferire il risultato nella memoria.

Architettura Di Riferimento

La velocit di accesso alla memoria cresce molto pi lentamente.

Struttura Di Un Elaboratore

Gli elementi principali di un elaboratore: 1. Unit centrale di elaborazione (Central Processing Unit- CPU). 2. Memoria di lavoro o memoria principale (Main Memory - MM) e dischi. I collegamenti principali di un calcolatore sulla motherboard: 1. Bus di sistema (dati, indirizzi, controllo) 2. Interfacce per i dispositivi di Input/Output - I/O: il terminale, la memoria di massa (di solito dischi magnetici), le stampanti,

CPU

La CPU provvede ad eseguire le istruzioni che costituiscono i diversi programmi elaborati dal calcolatore. Eseguire unistruzione vuol dire operare delle scelte, eseguire dei calcoli a seconda dellistruzione e dei dati a disposizione. Gli elementi principali della CPU (Unit centrale di elaborazione): 1. BANCO DI REGISTRI (Register File) ad accesso rapido, in cui memorizzare i dati di utilizzo pi frequente. Il tempo di accesso ai registri circa 10 volte pi veloce del tempo di accesso alla memoria principale. Il register file evoluto in cache + registri. 1

Architettura modulo 1
a. Registro Program Counter (PC). Contiene lindirizzo dellistruzione corrente da aggiornare durante levoluzione del programma, in modo da prelevare dalla memoria la corretta sequenza di istruzione; b. Registro Instruction Register (IR). Contiene listruzione in corso di esecuzione. 2. UNIT PER LESECUZIONE DELLE OPERAZIONI ARITMETICO-LOGICHE (Arithmetic Logic Unit - ALU). I dati forniti allALU provengono direttamente da registri interni alla CPU. Possono provenire anche dalla memoria, ma in questo caso devono essere prima trasferiti in registri interni alla CPU. Dipende dalle modalit di indirizzamento previste; 3. UNIT AGGIUNTIVE PER ELABORAZIONI PARTICOLARI COME UNIT ARITMETICHE PER DATI IN VIRGOLA MOBILE (Floating Point Unit FPU), sommatori ausiliari, ecc.; 4. UNIT DI CONTROLLO. Controlla il flusso e determina le operazioni di ciascun blocco

Ciclo Di Esecuzione Di Un Istruzione MIPS

LETTURA DELLISTRUZIONE (FETCH) Istruzioni e dati risiedono nella memoria principale, dove sono stati caricati attraverso ununit di ingresso. Lesecuzione di un programma inizia quando il registro PC punta alla (contiene lindirizzo della) prima istruzione del programma in memoria. Il segnale di controllo per la lettura (READ) viene inviato alla memoria. Trascorso il tempo necessario allaccesso in memoria, la parola indirizzata (in questo caso la prima istruzione del programma) viene letta dalla memoria e trasferita nel registro IR. Il contenuto del PC viene incrementato in modo da puntare allistruzione successiva. DECODIFICA DELLISTRUZIONE Listruzione contenuta nel registro IR viene decodificata per essere eseguita. Alla fase di decodifica corrisponde la predisposizione della CPU (apertura delle vie di comunicazione appropriate) allesecuzione dellistruzione. In questa fase vengono anche recuperati gli operandi. Nelle architetture MIPS gli operandi possono essere solamente nel Register File oppure letti dalla memoria. Architetture a registri: 1. Se un operando risiede in memoria, deve essere prelevato caricando lindirizzo delloperando nel registro MAR della memoria e attivando un ciclo di READ della memoria. 2. Loperando letto dalla memoria viene posto nel registro della memoria MDR per essere trasferito alla ALU, che esegue loperazione. Nelle architetture MIPS, loperando viene trasferito nel Register file nella fase di Scrittura. Architetture LOAD/STORE: 1. Le istruzioni di caricamento dalla memoria sono separate da quelle aritmetico/logiche. CALCOLO DELLISTRUZIONE (ESECUZIONE) Viene selezionato il circuito / i circuiti combinatori appropriati per lesecuzione delle operazioni previste dallistruzione e determinate in fase di decodifica. Tra le operazioni previste, c anche la formazione dellindirizzo di memoria da cui leggere o su cui scrivere un dato. LETTURA / SCRITTURA IN MEMORIA In questa fase il dato presente in un registro, viene scritto in memoria oppure viene letto dalla memoria un dato e trasferito ad un registro. Questa fase non richiesta da tutte le istruzioni! 2

Architettura modulo 1
Nel caso particolare di Architetture LOAD/STORE, quali MIPS, le istruzioni di caricamento dalla memoria sono separate da quelle aritmetico/logiche. Se effettuo una Lettura / Scrittura, non eseguo operazioni aritmetico logiche sui dati. Sistema di memoria sganciato dalla coppia register-file + CPU. SCRITTURA IN REGISTER FILE (WRITEBACK) Il risultato delloperazione pu essere memorizzato nei registri ad uso generale oppure in memoria. Non appena terminato il ciclo di esecuzione dellistruzione corrente (termina la fase di Write Back), si preleva listruzione successiva dalla memoria.

ARCHITETTURA - LEZIONE 1I
La rappresentazione in virgola mobile standard IEEE 754 a singola precisione (32 bit): la rappresentazione del valore zero data da un'esponente uguale a zero mantissa uguale a zero La rappresentazione dei numeri in virgola mobile ha come esponente un valore compreso tra 1 e 254 e come mantissa un qualsiasi numero diverso da 0. la rappresentazione dei valori + ha come esponente il valore massimo (255 quindi in binario 11111111) e come mantissa 0 e naturalmente come segno 1 o 0 a seconda se pi o meno infinito. Lo standard IEEE 754 ha anche un simbolo per il risultato di una operazione non consentita, come 0/0 o la sottrazione di infinito da infinito. Questo simbolo NaN, che sta per NotANumber (NonNumero).La sua rappresentazione abbiamo il campo dell'esponente riempito di "1" e un numero diverso da zero nel campo della mantissa.

Usando il formato IEEE 754 standard, in prossimit dello zero avremo un cambiamento nella linearit della quantizzazione: da 0 al pi piccolo numero positivo rappresentabile ci sar un salto dellordine di 10-38 mentre per passi successivi i salti saranno dellordine di 10-45. La rappresentazione in formato IEEE 754 standard del pi piccolo numero positivo : <0,00000001,00000000000000000000000> Usando il formato IEEE 754 denormalizzato, in prossimit dello zero la quantizzazione risulta lineare: da 0 al pi piccolo successivo ci sar un salto dellordine di 10-45 La rappresentazione in formato IEEE 754 denormalizzato del pi piccolo numero positivo : <0,00000000,00000000000000000000001> Perci nel tentativo di spremere ogni bit di precisione lo standard permette ad alcuni numeri di essere rappresentati in forma non normalizzata. Essi hanno lo stesso esponente dello zero, ma una mantissa non-nulla.

MINTERMINE: un implicante che contiene tutte le N variabili della funzione IMPLICANTE: prodotto delle variabili (in forma naturale o negata) per le quali la funzione vale 1 L' OVERFLOW dovuto a delle operazioni aritmetiche che generano un risultato di valore troppo grande per essere rappresentato all'interno dei bits a disposizione CODIFICA BINARIA INTERA: La propriet caratteristica della codifica intera la distanza costante tra due numeri RAPPRESENTAZIONE IN VIRGOLA FISSA (FIXED-POINT): La rappresentazione in virgola fissa consiste nel rappresentare un numero reale con segno tramite N bit, supponendo fissa la posizione della virgola. In un numero rappresentato in virgola fissa a N bits, viene utilizzato un bit per il segno, I bits per rappresentare la parte intera e D bits per rappresentare la parte decimale (ovviamente sar N = I + D +1). Questo metodo di rappresentazione dei numeri reali macchina non conveniente in quanto i valori rappresentabili sono relativamente pochi e la precisione che si ottiene non elevata. Il limite della rappresentazione in virgola fissa risiede proprio nella rigidit della posizione assegnata alla virgola. Infatti stato visto che nella rappresentazione in Virgola Fissa, il numero di bits assegnati per codificare la parte intera e quelli assegnati per codificare la parte frazionaria sono fissi. Quindi, se per esempio si fissa la virgola in modo tale che la gran parte dei bits dedicata per codificare la parte intera, allora la precisione nel codificare numeri piccoli sar molto bassa. campo di valori rappresentabili relativamente ristretto - valori rappresentabili distribuiti uniformemente - errori di approssimazione costanti in tutto lintervallo rappresentato

RAPPRESENTAZIONE IN VIRGOLA MOBILE (FLOATING-POINT): 32 bit (singola precisione) 1 bit per segno, 8 bits per lesponente, 23 bits mantissa 64 bit (doppia precisione) 1 bit per segno, 11 bits per lesponente, 52 bits mantissa Utilizza la cosiddetta notazione scientifica (esponenziale) Permette di rappresentare numeri con ordini di grandezza molto differenti utilizzando per la rappresentazione un insieme limitato di cifre. Il numero di cifre usate per lesponente determina di quante posizioni posso spostare la virgola rispetto alla posizione standard (a sinistra della cifra pi significativa della mantissa) Lo spostamento della virgola pu avvenire sia verso destra che verso sinistra. Quando il numero di cifre necessarie per una rappresentazione corretta del risultato di unoperazione maggiore del numero di cifre a disposizione (overflow), il numero viene troncato: si trascurano cio le cifre meno significative per le quali non c spazio. Nella codifica IEEE 754 standard, in prossimit dello zero avremo un cambiamento nella linearit della quantizzazione: da 0 al pi piccolo numero positivo rappresentabile ci sar un salto dell'ordine di 10-38 mentre per passi successivi i salti saranno dell'ordine di 10-45. Usando il formato IEEE 754 DENORMALIZZATO, in prossimit dello zero la quantizzazione risulta lineare: da 0 al pi piccolo successivo ci sar un salto dell'ordine di 10-45 cos come per passi successivi. il salto tra 0 ed il primo positivo successivo risulta minore e quindi migliore in termini di precisione ottenibile nei calcoli, rispetto al formato IEEE 754 standard. Lo svantaggio maggiore del formato denormalizzato rispetto al formato standard che richiede per l'esecuzione dei calcoli aritmetici di algoritmi pi complicati.

CONFIGURAZIONI NOTEVOLI: 0 + NaN (not a number) Numero denormalizzato Mantissa: 0 Mantissa: 0 Mantissa: 0 Mantissa: 0 Esponente: 00000000 Esponente: 11111111 Esponente: 11111111 Esponente: 00000000

ARCHITETTURA - LEZIONE 3
L'algebra di BOOLE, sviluppata nel 1854 da George BOOLE, un matematico inglese (1815-1864), assume un ruolo importante in vari ambiti, in particolare nella logica matematica e nell'elettronica digitale. l'algebra di BOOLE, anche detta algebra BOOLEANA, un ramo dell'algebra astratta che opera con solo due variabili 0 e 1 (Falso, Vero), dette BOOLEANE o logiche. Qualunque funzione BOOLEANA (logica) pu essere espressa combinando opportunamente tre operazioni logiche elementari. AND

OR

NOT

Si dice anche che AND, OR, NOT formano un set completo. Il valore di una funzione logica (BOOLEANA) pu essere rappresentato in 3 modi: Circuito Tabella della verit Espressione simbolica [es. F = (A and B) or (B and not(c)) ] Operatore NOT L'operatore NOT restituisce il valore inverso a quello in entrata. Una concatenazione di NOT semplificabile con un solo NOT in caso di dispari ripetizioni o con nessuno nel caso di pari. Viene detto anche INVERTER LOGICO

A la variabile in ingresso Y il valore calcolato dal nostro operatore se A vero (TRUE=1), NOT A falso (FALSE=0) _ Y=NOT A = A = !A simboli alternativi: ~,! ,, Le tabelle della verit sono tabelle matematiche usate nella logica per determinare se, attribuiti i valori di verit alle proposizioni che la compongono, una determinata proposizione vera o falsa. Tabella della verit A 0 1 NOT A 1 0

Operatore AND L'operazione AND d come valore 1 se tutti gli operandi hanno valore 1, mentre restituisce 0 in tutti gli altri casi. Tale operazione anche detta PRODOTTO LOGICO. A B A e B sono le variabili in ingresso Y il valore calcolato dal nostro operatore Y = A AND B = AB = AB simboli alternativi: *, AND, ^ Y

ARCHITETTURA - LEZIONE 3
Tabella della verit A 0 0 1 1 B 0 1 0 1 A and B 0 0 0 1

Operatore OR L'operazione logica OR restituisce 1 se almeno uno degli elementi 1, mentre restituisce 0 in tutti gli altri casi. Tale operazione anche detta SOMMA LOGICA A B A e B sono le variabili in ingresso Y il valore calcolato dal nostro operatore Y = A or B = A+B simboli alternativi: +, |, v Tabella della verit A 0 0 1 1 B 0 1 0 1 A or B 0 1 1 1 Y

Concatenazione del NOT

Inserire un cerchietto allingresso corrisponde a negare la variabile in ingresso. Inserire un cerchietto alluscita corrisponde a negare (complementare) luscita. Operatore NOR L'operatore NOR (Operatore OR negato), la negazione del risultato dell'operazione OR, restituisce 1 se e solo se tutti gli elementi sono 0, mentre restituisce 0 in tutti gli altri casi. A B A e B sono le variabili in ingresso Y il valore calcolato dal nostro operatore ___ Y = A nor B = A+B = not(or(A,B)) simboli alternativi:

ARCHITETTURA - LEZIONE 3
Tabella della verit A 0 0 1 1 B 0 1 0 1 A nor B 1 0 0 0 Operatore NAND

L'operatore NAND (Operatore AND negato), la negazione del risultato dell'operazione AND, restituisce 0 se e solo se tutti gli elementi sono 1, mentre restituisce 1 in tutti gli altri casi. A B A e B sono le variabili in ingresso Y il valore calcolato dal nostro operatore ___ Y = A nand B = AB = not(and(A,B)) simboli alternativi: Tabella della verit A 0 0 1 1 B 0 1 0 1 A nand B 1 1 1 0

Nella concatenazione degli operatori gli stessi hanno priorit differenti. In assenza di parentesi la negazione (NOT) ha la priorit su tutti e AND ha la priorit su OR. Anche sulle negazioni esiste una gerarchia: Es. A+BC = A+(BC) NOT AC = (NOT(A))C ___ ____ __ _ _ A BC = [(A) (B)]C

Regole algebriche Doppia Inversione ~(~x) = x Identit Elemento nullo Idempotenza Inverso Commutativa Associativa Distributiva *Assorbimento De Morgan AND 1x=x 0x=0 xx=x _ xx=0 xy=yx (xy)z=x(yz) AND rispetto a OR x(y+z) = xy+xz x(x+y)=x OR 0+x=x 1+x=1 x+x=x _ x+x=1 x+y=y+x (x+y)+z= x+(y+z) OR rispetto a AND x+yz = (x+y)(x+z) x+xy=x

ARCHITETTURA - LEZIONE 3
Teoremi di De Morgan

* Teorema dell'assorbimento Primo teorema dell'assorbimento: A(A+B) = AA+AB = A+AB = A(1+B) = A A+AB = A(1+B) = A Secondo teorema dell'assorbimento: A+~AB = (A+~A) (A+B) = 1(A+B) = A+B A(!A+B) = A~A+AB = AB Semplificazioni notevoli

Principio di dualit Nellalgebra di Boole vale il principio di dualit. Il duale di una funzione booleana si ottiene sostituendo AND ad OR, OR ad AND, gli 0 agli 1 e gli 1 agli 0. Esempi: Identit 1 x = x 0 + x = x Elemento nullo 0 x = 0 1 + x = 1

ARCHITETTURA - LEZIONE 3

XOR

L'operatore XOR, detto anche OR esclusivo o disgiunzione esclusiva, restituisce 1 se e solo se uno degli operandi uguale a 1, mentre restituisce 0 in tutti gli altri casi. Il simbolo di una porta XOR : A B Y

Tabella della verit A 0 0 1 1 B 0 1 0 1 A XOR B 0 1 1 0

A XOR = (A~B) + (A~B) B simboli alternativi: XNOR L'operatore XNOR, detto anche EX-NOR, la negazione del risultato dell'operazione XOR; restituisce 1 se gli operandi sono uguali mentre restituisce o in tutti gli altri casi. Il simbolo di una porta XNOR : A Tabella della verit A 0 0 1 1 B 0 1 0 1 A XNOR B 1 0 0 1 B Y

composta da un NOT in serie ad un XOR. ~(A XOR B) = A XNOR B

ARCHITETTURA - LEZIONE 4
2
Circuiti combinatori sono circuiti logici digitali in cui le operazioni (logiche) dipendono solo da una combinazione degli input. i Circuiti combinatori sono senza memoria. Ogni volta che si inseriscono in ingresso gli stessi valori, si ottengono le stesse uscite. I Circuiti combinatori descrivono delle funzioni Booleane (es. F = A B + B~C). Queste funzioni si ottengono combinando tra loro (in parallelo o in cascata) gli operatori logici: NOT, AND, OR. Il loro funzionamento pu essere descritto dalla Tabella della Verit. Come nelle funzioni algebriche, il risultato aggiornato immediatamente dopo il cambiamento dellinput (si suppone il tempo di commutazione trascurabile, tempo di attesa prima di guardare loutput sufficientemente ampio per permettere a tutti i circuiti la commutazione). la combinazione di operatori logici che implementa la funzione Booleana implementata . Ad ogni espressione logica associato un ben preciso circuito.

F = A B + B~C = (~A+~B)(~B+C)
Ad ogni espressione logica corrisponde un circuito, ad ogni circuito corrisponde una tabella delle verit, ad ogni tabella della verit, in generale, non corrisponde un unico circuito possibile.

Regole algebriche
Doppia Inversione ~(~x) = x

AND
Identit Elemento nullo Idempotenza Inverso Commutativa Associativa 1x=x 0x=0 xx=x x~x=0 xy=yx (xy)z=x(yz) AND rispetto a OR x(y+z) = xy+xz x(x+y)=x

OR
0+x=x 1+x=1 x+x=x x+~x=1 x+y=y+x (x+y)+z= x+(y+z) OR rispetto a AND x+yz = (x+y)(x+z) x+xy=x

Distributiva *Assorbimento De Morgan

X nand Y= ~X or ~Y

X nor Y= ~X and ~Y

Regole algebriche si pi variabili AND OR


Commutativa Distributiva De Morgan xyz=yxz=zxy x+y+z=y+x+z=z+x+y rispetto ad xh + yz = (xh+y) (xh+z) ~ (X+Y+Z) = ~X ~Y ~Z

AND

rispetto ad x (yh+z) = xyh+xz ~(XYZ) = ~X + ~Y + ~Z

OR OR

AND
1

ARCHITETTURA - LEZIONE 4

La prima forma canonica (SOP)


Prendiamo una funzione logica come F =~AB~C + AB dove AB l'IMPLICANTE cio il prodotto delle variabili (in forma naturale o negata) per le quali la funzione vale 1 e dove ~AB~C il MINITERMINE cio un implicante che contiene tutte le variabili della funzione. Il percorso classico consiste nel: compilare la tabella della verit trovare i minitermini ricavo la SOP semplificare (ottimizzazione)

La SOP la prima forma canonica

La forma canonica di una funzione la somma dei suoi MINTERMINI. Qualunque funzione esprimibile in forma canonica. Come si procede per determinare i minitermini di una funzione? Si compila la tabella della verit e in ogni caso in cui risulti vera la funzione si aggiunge un minitermine che composto dal prodotto delle variabili e dove quest'ultime saranno in forma naturale o negata a seconda del valore che hanno assunto caso specifico. es. Primo passo compiliamo la tabella della verit per questa funzione: F =~AB~C + AB A 0 0 0 0 1 1 1 1 B 0 0 1 1 0 0 1 1 C 0 1 0 1 0 1 0 1 F 0 0 1 Inserisco il minitermine (dove la variabile risulta 0 nel minitermine assumer la forma negata) ~AB~C 0 0 0 1 Inserisco il minitermine (dove la variabile risulta 0 nel minitermine assumer la forma negata) AB~C 1 Inserisco il minitermine (dove la variabile risulta 0 nel minitermine assumer la forma negata) ABC

quindi otterremo la SOP:


F=~AB~C + AB~C + ABC La SOP si pu ottenere mediante la manipolazione algebrica della funzione.

F =~AB~C + AB dalla funzione notiamo che la somma logica di un MINITERMINE e di un IMPLICANTE quindi dobbiamo trasformare l'implicante in minitermine. Sfruttando Il teorema dell'Identit (AB = AB1) per non modificare il valore di AB avremo: F =~AB~C + AB1 Sfruttando Il teorema dell' Inverso (C+~C=1): F =~AB~C + AB (C+~C) Semplificando otterremo la SOP: F=~AB~C + AB~C + ABC 2

ARCHITETTURA - LEZIONE 4
La SOP una forma canonica perch la Forma universale mediante la quale possibile rappresentare qualunque funzione booleana. La forma canonica non una forma ottima, ma un punto di partenza per lottimizzazione. E una funzione booleana a n ingressi che vale 1 in corrispondenza della sola iesima configurazione di ingresso. Al massimo, 2n MINTERMINI per ogni n variabili. Ogni MINTERMINE rappresentabile con un AND con n ingressi.

Vantaggi della SOP


Dalla forma canonica (somma di MINTERMINI) facile passare al circuito: ogni MINTERMINE un AND Tutti gli AND entrano in un OR. un'implementazione regolare, a due livelli di porte.

Cammino Critico
Gli elementi costruttivi sono porte a due ingressi. Quindi una porta a N ingressi uguale a N-1 porte a 2 ingressi in serie. Ogni circuito logico caratterizzato da un tempo di commutazione. Pi porte devo attraversare, pi lungo il tempo della transizione del circuito nel suo complesso. Il CAMMINO CRITICO rappresentato dal massimo numero di porte da attraversare da ingresso a uscita (porte in serie). Nel calcolare il cammino critico non si contano gli INVERTERS che sono inclusi nelle porte. es. calcoliamo numero di porte totali e cammino critico

Cammino critico pari a 11: cammino pi lungo in circuiti con porte a 2 ingressi. Numero di porte: 35. Il cammino critico pu essere ridotto attraverso la manipolazione algebrica della funzione. 3

ARCHITETTURA - LEZIONE 4
es. F = ~XY~Z~V + ~XY~ZV = ~XY~Z(~V +V) = ~XY~Z

Cammino critico pari a 10. Numero di porte pari a 30. Possiamo in questo caso ridurre il cammino critico riorganizzando gli OR

Cammino critico pari a 6. Numero di porte pari a 30.

ARCHITETTURA - LEZIONE 5
2

Circuiti combinatori
I circuiti logici presenti nei sistemi digitali possono essere sequenziali o combinatori. I circuiti sequenziali impiegano elementi di memoria e le loro uscite sono in funzione sia dei valori assunti dagli ingressi sia dei valori immagazzinati negli elementi di memoria. Nei Circuiti combinatori le operazioni (logiche) dipendono solo da una combinazione degli input visto che sono circuiti senza memoria. Ogni volta che si inseriscono in ingresso gli stessi valori, si ottengono le stesse uscite. Il risultato non dipende dallo stato del circuito.

Date n variabili di ingresso, esistono 2n possibili combinazioni binarie in ingresso, per ciascuna delle quali il circuito genera gli m valori binari delle uscite. Di conseguenza, un circuito combinatorio pu essere descritto da una tabella di verit che elenca i valori assunti dalle uscite per ogni combinazione delle variabili di ingresso. I circuiti combinatori descrivono delle funzioni Booleane. Queste funzioni si ottengono combinando tra loro (in parallelo o in cascata) gli operatori logici: NOT, AND, OR. Come nelle funzioni algebriche, il risultato aggiornato immediatamente dopo il cambiamento dellinput (si suppone il tempo di commutazione trascurabile, tempo di attesa prima di guardare loutput sufficientemente ampio per permettere a tutti i circuiti la commutazione).

Funzioni in forma complementata


Il complemento di una funzione F, indicato con ~F. si ottiene complementando i valori assunti da F nella tabella di verit. Il complemento di una funzione pu anche essere derivato algebricamente applicando il teorema di DeMorgan. La forma generale di questo teorema stabilisce che il complemento di un'espressione si ottiene scambiando le operazioni AND e OR, complementando ogni variabile e constante e mantenendo, nella trasformazione, le precedenze implicite ed esplicite presenti. Una funzione booleana in forma algebrica, pu essere espressa in molte forme tra loro equivalenti: alcune di queste vengono chiamate forme canoniche. Esistono 2 forme canoniche (equivalenti) che garantiscono di poter implementare una qualunque tabella di verit con solo due livelli di porte OR, AND e NOT.

Prima forma canonica (SOP)


La prima forma canonica costituita dalla somma logica dei mintermini associati alle righe della tabella nelle quali luscita assume valore 1. I mintermini sono caratterizzati dal contenere tutte le variabili in ingresso tra loro moltiplicate, prese complementate se valgono 0 e non complementate se valgono 1. Per la definizione di somma logica, tale funzione detta somma canonica assume infatti valore 1 quando uno qualsiasi dei suoi addendi vale 1 (quindi in corrispondenza delle righe considerate) e valore 0 quando nessuno dei suoi addendi vale 1 (quindi in corrispondenza di tutte le altre righe). La prima forma canonica non la rappresentazione pi compatta della funzione, ma facilmente ottenibile. Per ottenere una forma pi compatta occorre semplificare.

Seconda forma canonica (POS)


la seconda forma canonica costituita dal prodotto logico dei maxtermini associati alle righe della tabella nelle quali luscita assume valore 0. I maxtermini sono caratterizzati dal contenere tutte le variabili in ingresso tra loro addizionate, prese complementate se valgono 1 e non complementate se valgono 0. Per la definizione di prodotto logico, tale funzione detta prodotto canonico assume infatti valore 0 quando uno qualsiasi dei suoi fattori vale 0 (quindi in corrispondenza delle righe considerate) e valore 1 quando nessuno dei suoi addendi vale 0 (quindi in corrispondenza di tutte le altre righe). La forma canonica pu essere implementata facilmente da un algoritmo e si presta bene a essere mappata in un'architettura a 2 livelli.

ARCHITETTURA - LEZIONE 5
Le Logiche programmabili
Sono dispositivi hardware che mettono a disposizione componenti logici pi o meno complessi che possono essere connessi tra loro (programmazione delle connessioni) a seconda delle esigenze di progetto. Dispongono di Componenti logici (Porte logiche) e Linee di connessione Le Logiche programmabili a 2 livelli sono usate per realizzare funzioni a due livelli (SOP) Dispongono di Un numero di ingressi e di uscite fissato Un piano AND, per la costruzione dei mintermini Un piano OR, per la somma dei mintermini Sono tre i tipi principali di Logiche programmabili a 2 livelli: PLA (Programmable Logic Array) Piani AND e OR programmabili Si costruiscono solo i mintermini necessari PAL (Programmable Array Logic) Solo il piano AND programmabile Si costruiscono solo i mintermini necessari ROM (Read-Only Memory) Piano AND pre-programmato mediante un decoder Sono disponibili tutti i mintermini

PLA

Le PLA sono architetture a 2 livelli con un certo numero di porte di entrata e di uscite. Nel primo livello avremo un numero di porte AND (K) in parallelo pari al numero di mintermini della SOP corrispondente al circuito che vogliamo realizzare. Sappiamo che se indichiamo con N il numero di entrate e con K il numero delle porte AND avremo che k dovr essere minore di 2N. Nel secondo livello avremo un numero di porte OR pari al numero di uscite. Nella PLA c' un dispositivo Hardware che seleziona le connessioni ovverosia brucia le connessioni che non servono. Questo significa che nelle porte AND arrivano i segnali delle varie entrate sia nella versione normale che nella versione negata quindi quando programmo la PLA vado a interrompere le connessioni che portano i segnali nella versione che non mi interessa. Stessa cosa succede per gli OR infatti agli OR arrivano tutte le uscite dei mintermini (AND), se un determinato OR dovesse riguardare solo alcuni mintermini le altre connessioni superflue verrebbero interrotte. Le PLA possono quindi realizzare qualsiasi circuito che rientri nel proprio budget.

DECODER (decodificatore)
Il decoder un circuito combinatorio dotato di N linee di input e di 2N linee di output. Per ciascuna delle possibili combinazioni di ingresso solo una delle uscite assume il valore 1 mentre le altre sono uguali a 0. l'uscita che assume il valore 1 ha come indice il valore decimale corrispondente al valore binario espresso dai bit di ingresso. es. decoder a 3-bit di ingresso

A 0 0 0 0 1 1 1 1

B 0 0 1 1 0 0 1 1

C 0 1 0 1 0 1 0 1

Y0 1 0 0 0 0 0 0 0

Y1 0 1 0 0 0 0 0 0

Y2 0 0 1 0 0 0 0 0

Y3 0 0 0 1 0 0 0 0

Y4 0 0 0 0 1 0 0 0

Y5 0 0 0 0 0 1 0 0

Y6 0 0 0 0 0 0 1 0

Y7 0 0 0 0 0 0 0 1

Y0=~A~B~C Y1=~A~BC Y2=~AB~C Y3=~ABC Y4=A~B~C Y5=A~BC Y6=AB~C Y7=ABC

ARCHITETTURA - LEZIONE 5

Il Decoder fatto da 8 porte AND in parallelo visto che sono 8 mintermini in parallelo. Il Decoder utilizzato per indirizzare la memoria (ROM).

ROM
Una ROM (Memoria A Sola Lettura / Read Only Memory ) detta "memoria" poich dispone di un insieme di locazioni che possono essere lette; tuttavia il contenuto di tali locazioni fisso, determinato al momento della creazione della ROM stessa. In una ROM, una congurazione di ingresso, denominata indirizzo, associata una congurazione di uscita (m), denominata parola (ampiezza della ROM). La ROM una Logica programmabile a 2 livelli dove il primo livello costituito da un decodificatore di indirizzi (piano AND fissato) e il secondo livello costituito da una matrice di m porte OR (piano programmabile).

Il decodicatore degli indirizzi nelle memorie ROM realizza tutti i 2n mintermini (l'altezza della ROM), a partire da n variabili di ingresso (indirizzi). Una ed una sola uscita del decoder attiva alla volta. Il numero totale di bit in una ROM pari al prodotto tra altezza ed ampiezza; questi due parametri sono indicati complessivamente come la forma della ROM. es. Schema logico di una ROM a 3 ingressi e 4 uscite (non programmata).

Le ROM sono dispositivi completamente decodificati, ossia contengono un'intera parola di uscita per tutte le possibili combinazioni di ingresso, mentre le PLA sono solo parzialmente decodificate. Ci significa che una ROM conterr sempre pi elementi: la ROM contiene gli elementi relativi a tutti i possibili ingressi, mentre la PLA contiene solo i termini prodotto utili. Al crescere del numero di ingressi, il numero di elementi di una ROM cresce esponenzialmente, mentre per la maggior parte delle funzioni logiche il numero di termini prodotto cresce molto pi lentamente. Tale differenza rende in genere le PLA pi efficienti ai fini della realizzazione delle funzioni logiche combinatorie. il vantaggio della ROM quello di poter facilmente modificare il contenuto della ROM stessa se la funzione logica dovesse cambiare, poich la dimensione della ROM rester immutata.

ARCHITETTURA - LEZIONE 5
Condizioni Di Indifferenza
Nell'implementazione della logica combinatoria nascono spesso delle situazioni in cui indifferente il valore di qualche uscita. Tali situazioni vengono denominate condizioni di indifferenza e si rivelano molto importanti ai fini dell'ottimizzazione della realizzazione delle funzioni logiche. vengono rappresentate con delle X nella parte relativa alle uscite della tabella di verit. La minimizzazione delle funzioni logiche fondamentale per ottenere delle implementazioni efficienti.

es.
Viste le condizioni di indifferenza si determini l'implementazione pi efficiente.
A 0 0 0 0 1 1 1 1 B 0 0 1 1 0 0 1 1 C 0 1 0 1 0 1 0 1 Y 0 0 0 1 X 0 X 1

Ho 4 possibilit: 1. La prima e la seconda X uguale a zero. Avremo la funzione Y = ~ABC + ABC = BC(~A+A) = BC 2. La prima X uguale a uno e la seconda X uguale a zero. Avremo la funzione Y = ~ABC + A~B~C + ABC = BC(~A+A) = BC + A~B~C. 3. La prima X uguale a zero e la seconda X uguale a uno. Avremo la funzione Y = ~ABC + AB~C + ABC = ~ABC +AB = B(~ AC+ A) = B(A+C) = AB + AC 4. La prima e la seconda X uguale a uno. Avremo la funzione Y = ~ABC+ A~B~C + AB~C + ABC = BC + A~C L'implementazione pi efficiente si ha ponendo la prima e la seconda X uguale a zero

ENCODER (codificatore)
Il codificatore (o encoder) un circuito logico che calcola la funzione inversa del decodificatore, ricevendo N ingressi e producendo un numero di uscite pari al log 2 N. Il segnale di uscita indicher (in binario) l` indice (espresso in decimale) della linea di ingresso che e stata attivata (gli indici delle linee in ingresso partono da 0 e vanno da destra a sinistra).
I3 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 I2 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 I1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 I0 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 A X 0 0 X 1 X X X 1 X X X X X X X B X 0 1 X 0 X X X 1 X X X X X X X

Sar cura del progettista di far in modo che nel circuito sar attiva solo una linea di ingresso alla volta (e non meno di una) altrimenti il circuito non funzionerebbe. Tutte le altre combinazioni, come potete notare dalla tabella della verit, non si dovranno mai verificare e quindi saranno considerate condizioni di indifferenza. La funzione encoder sar

A = ~I 3 I 2 ~I 1 ~ I 0 + I 3 ~ I 2 ~I 1 ~ I 0 = ~I 1 ~ I 0 (~I 3 I 2 + I 3 ~ I 2 ) = ~I 1 ~ I 0 (I 3 I 2 ) B = ~I 3 ~I 2 I 1 ~ I 0 + I 3 ~ I 2 ~I 1 ~ I 0 = ~I 2 ~ I 0 (~I 3 I 1 + I 3 ~ I 1 ) = ~I 2 ~ I 0 (I 3 I 1 ) A = I3 I2 B = I3 I1
Viste le condizioni di indifferenza quale sar l'implementazione migliore?

MULTIPLEXER (MUX)
Un multiplexer (selettore) un circuito combinatorio in cui un segnale di selezione S (un segnale in ingresso) permette di portare sull'uscita y uno degli N segnali d'ingresso . I segnali di selezione che servono sono il log 2 N. Il segnale di selezione S apre la porta opportuna cio chiude il cammino opportuno quindi il MUX si comporta come un interruttore.

ARCHITETTURA - LEZIONE 5
S 0 0 0 0 1 1 1 1 X0 0 0 1 1 0 0 1 1 X1 0 1 0 1 0 1 0 1 Y 0 0 1 1 0 1 0 1 Dalla tabella della verit otteniamo i maxtermini (m) e quindi la POS: Y= (S +X 0 +X 1 )(S+ X 0 +~X 1 )(~ S+ X 0 +X 1 )(~ S+ ~X 0 +X 1 ) Definisco A = S +X 0 B = ~S +X 1 Y=(A +X 1 )(A +~X 1 )(B+ X 0 )(B+~X 0 ) Y=(AA+A~X 1 +AX 1 + X 1 ~X 1 )(BB+B~X 0 + BX 0 + X 1 ~X 1 ) Y=(A+A~X 1 +AX 1 )(B+B~X 0 + BX 0 ) Y=[A+A(~X 1 +X 1 )][B+B(~X 0 + X 0 )] Y=(A+A)(B+B) Y=AB Y=(S +X 0 )( ~S +X 1 ) Y=S~S +~SX 0 + SX 1 +X 0 X 1 Y=~SX 0 + SX 1

QUANDO S=0 Y=X 0 QUANDO S=1 Y=X 1

Dalla tabella della verit otteniamo i mintermini (m) e quindi la SOP: Y = m 2 +m 3 +m 5 +m 7 Y = ~S X 0 ~X 1 + ~S X 0 X 1 + S ~X 0 X 1 + S X 0 X 1 Y= ~S X 0 (~X 1 + X 1 ) + S X 1 (~X 0 + X 0 ) Y= ~S X 0 + S X 1

MUX a pi vie

COMPARATORE

Il Comparatore un circuito combinatorio caratterizzato da 2 insiemi di N linee in ingresso ciascuno e un output. La funzione fondamentale di un comparatore quella di confrontare 2 insiemi di bit, segnalando quando hanno valori uguali.

ARCHITETTURA - LEZIONE 5
il Comparatore si realizza con una porta XNOR per confrontare i singoli bit, dove si ha come output 1 quando i due bit hanno ugual valore e 0 quando invece hanno valore diverso, e una porta AND dove entrano le uscite di tutte le porte XNOR. In tal modo se tutti confronti dei singoli bit risultano di uscita 1 (cio bit uguali) si avr come output del circuito 1 ci significa che i due insiemi di bit risultano uguali.

A0 0 0 1 1

B0 0 1 0 1

C0 1 0 0 1

A1 0 0 1 1

B1 0 1 0 1

C1 1 0 0 1

C0 0 0 1 1

C1 0 1 0 1

C 0 0 0 1

C = C 0 C 1 ..... C n1

________ C K= AK B K XNOR

F=AB+B!C Sop ABC+AB!C+!AB!C Pos (A+B+C) (A+B+!C) (A+!B+!C) (!A+B+C) (!A+B+!C) passaggio da Pos a Sop Pos (A+B+C) (A+B+!C) (A+!B+!C) (!A+B+C) (!A+B+!C) Inizio A Semplificare I Primi 2 Maxtermini (A+B+C) (A+B+!C) AA+AB+A!C+AB+BB+B!C+AC+BC+C!C A+AB+A!C+AB+B+B!C+AC+BC+C!C A+AB+A!C+B+B!C+AC+BC+C!C A+AB+A!C+B+B!C+AC+BC A+AB+A+B+B A+AB+B A(1+B)+B A+B Semplificare Il 4 Con Il 5 Maxtermini !A!A+!AB+!A!C+!AB+BB+B!C+!AC+BC+C!C !A+!AB+!A!C+!AB+B+B!C+!AC+BC !A+!AB+!A!C +B+B!C+!AC+BC !A+!AB+!A+B+B !A+!AB+ B !A(1+B)+B !A+B Procedo Semplificando Il Primo Termine Ottenuto Con Il Secondo (A+B)( !A+B) A!A+AB+!AB+BB AB+!AB+B B(A+!A)+B B+B B Infine Il Risultato Ottenuto Lo Moltiplico Con Il Maxtermine Rimanente B(A+!B+!C) AB+B!B+B!C AB+B!C AB(1)+B!C C+!C=1 ABC+AB!C+(1)B!C A+!A=1 ABC+AB!C+AB!C+!AB!C

ABC+AB!C+!AB!C

ARCHITETTURA - LEZIONE 6
2
Un circuito aritmetico un circuito combinatorio che esegue operazioni aritmetiche quali addizioni, sottrazioni, moltiplicazioni e divisioni con numeri binari o con numeri decimali espressi in codice binario. Partendo dalla somma di due cifre binarie avremo quattro operazioni elementari: 0+0=0 0+1=1 1+0=1 1+1=10 Le prime tre operazioni producono una somma che necessita di un bit soltanto. Nell'ultimo caso, la somma di due bit con il valore 1 produce una somma binaria di due bit, un bit somma e un bit riporto (posizionati rispettivamente da destra verso sinistra). Il riporto ottenuto dalla somma di due bit verr aggiunto alla coppia successiva di bit da sommare.

SOMMATORI BINARI

HALF ADDER

Un Half Adder un circuito aritmetico che costruisce la somma di due numeri binari a l bit. Il circuito possiede due ingressi, per i due bit addendi, e due uscite, di cui uno il bit somma e l'altro il bit riporto. Procediamo con la compilazione della Tabella della Verit (TT) del circuito Half Adder.

A 0 0 1 1 S = m1 + m2 = ~AB + A~B = A B R = m3 = AB

B S (somma) R (riporto) minitermini 0 0 0 m0 1 1 0 m1 0 1 0 m2 1 0 1 m3

Allora dalla tabella calcoliamoci la SOP della somma e del riporto

Cammino Critico (C.C.) = 1 Complessit (tot. porte) = 1 porta

Cammino Critico (C.C.) = 1 Complessit (tot. porte) = 1 porta

ARCHITETTURA - LEZIONE 6
FULL ADDER

Il Full Adder un circuito combinatorio che esegue la somma di tre numeri da un bit, ovvero somma ai due addendi, da un bit ciascuno il riporto, sempre di un bit, eventualmente generato da una somma in una colonna precedente meno significativa. Procediamo con la compilazione della Tabella della Verit (TT) del circuito Full Adder.

A 0 0 1 1 0 0 1 1

B R in S (somma) R out (riporto) minitermini 0 0 0 0 m0 1 0 1 0 m1 0 0 1 0 m2 1 0 0 1 m3 0 1 1 0 m4 1 1 0 1 m5 0 1 0 1 m6 1 1 1 1 m7

Allora dalla tabella calcoliamoci la SOP della somma e del riporto

S = m1 + m2 + m4 + m7 S = ~AB~R in + A~B~R in +~ A~BR in + ABR in S = ~ R in (~AB + A~B) + R in (~ A~B + AB) S =~R in (AB) + R in ~(AB) S = R in (AB)

R out = m3 + m5 + m6 + m7 R = AB~R in + ~ABR in + A~BR in + ABR in R = AB(~R in + R in ) + R in (A~B +~AB ) R = AB+ R in (AB)

Cammino Critico (C.C.) = 2 Complessit (tot. porte) = 2 porta

Cammino Critico (C.C.) = 3 Complessit (tot. porte) = 4 porta

ARCHITETTURA - LEZIONE 6
SHIFTING (scorrimento)
Durante l'esecuzione delle operazioni di moltiplicazione esistono dei passi intermedi che richiedono lo scorrimento verso destra oppure verso sinistra dei numeri. Lo SHIFTING di k posizioni verso sinistra di un numero in una determinata base (B) ha l'effetto di moltiplicare il numero K per B . Lo SHIFTING di k posizioni verso destra di un numero in una determinata base (B) ha l'effetto di moltiplicare il numero -K per B .

MOLTIPLICAZIONE BINARIA
Il procedimento di moltiplicazione binaria tra due numeri di un solo bit descritto dal prodotto logico (AND).

A 0 0 1
1

B P (prodotto) 0 0 1 0 0 0
1 1

Il procedimento di moltiplicazione binaria tra due numeri positivi di pi bit analogo al processo manuale usato per la moltiplicazione tra numeri decimali basato sulla somma di prodotti parziali.

In pratica, dati il Moltiplicando e il Moltiplicatore si ottengono i prodotti parziali moltiplicando ogni bit del moltiplicatore (partendo dal bit meno significativo / posizione 0) per il moltiplicando. il tutto verr incolonnato tenendo conto che per ogni prodotto parziale che si andr a calcolare dovremo applicare lo SHIFTING che sar pari alla posizione del bit del moltiplicatore che stiamo considerando.

ARCHITETTURA - LEZIONE 6

Si esegue quindi la somma dei prodotti parziali ottenendo il prodotto finale. Analogamente alla moltiplicazione decimale, anche per il caso binario si possono distinguere due fasi: la determinazione di una matrice dei prodotti parziali e la somma degli elementi di tale matrice. In binario i prodotti parziali sono degli AND. Prodotto = A X B es A e B numeri binari a 4 bit ciascuno La matrice dei prodotti parziali di questi due numeri la potremmo rappresentare come nell' immagine qui a fianco. Il Cammino Critico di questa matrice uguale a 1 visto che gli AND sono in parallelo. 2 la Complessit di questa matrice uguale a N [quando moltiplicando e moltiplicatore hanno stesso numero di bit altrimenti N*M (dove n il numero di bit del moltiplicando e m il numero di bit del moltiplicatore)] visto che gli AND sono in parallelo.

In genere l'unit ALU pu sommare solo due numeri binari alla volta. Per questo motivo, i prodotti parziali formati durante la moltiplicazione non possono essere sommati tutti insieme in una sola volta alla fine. Invece, essi vengono sommati due alla volta: cio il primo viene aggiunto al secondo, la loro somma viene aggiunta al terzo e cos via come illustrato dalla sequenza qui a fianco.

ARCHITETTURA - LEZIONE 6
Piano Somma dei prodotti parziali costituito dalla combinazione di circuiti Half Adder e Full Adder. continuando con l'esempio di prima.

Somma Parziale Tra 1 e 2 Prodotto Parziale

La Complessit del Piano di Somma dei prodotti parziali si pu calcolare innanzitutto sapendo che la complessit del circuito Half Adder pari a 2 mentre la complessit del circuito Full Adder pari a 5. 5

ARCHITETTURA - LEZIONE 6
Sappiamo che la prima riga di sommatori costituita da 2 HA e N-2 FA e che le altre righe sono costituite da 1 HA e da N-1 FA. Numero Porte Prima Riga = (N-2)*5 + (2*2) Numero Porte altre Righe = (M-2)*[(N-1)*5 + (2*1)] Complessit del Piano di Somma dei prodotti parziali = Numero Porte Prima Riga + Numero Porte altre Righe.

{(N-2)*5 + (2*2)} +{(M-2)*[(N-1)*5 + (2*1)]}

Il Cammino critico (c.c.) del piano di Somma dei prodotti parziali

ARCHITETTURA - LEZIONE 7
2

LA ALU
La ALU integrata nel processore. Allinizio degli anni 90 stata rivoluzionaria la sua introduzione con il nome di co-processore matematico. Esegue le operazioni aritmetico-logiche. E costituita da circuiti combinatori. Utilizza i blocchi di base gi visti. Opera su parole (MIPS 32 bit). Le ALU non compaiono solamente nei micro-processori. Le problematiche di progetto sono quelle dei circuiti integrati: Noi vogliamo avere una ALU Veloce che non costi molto, che sia bene integrabile con gli altri componenti, che sia affidabile e che si possa debuggare cio che esista una struttura per cui il progettista hardware se verifica un malfunzionamento, sopratutto in fase di progettazione, in grado di capire dov' quel malfunzionamento. Questo anche uno dei motivi per cui anche per le ALU si usa una progettazione strutturata modulare. La ALU in grado di svolgere operazioni diverse. La ALU ha un' architettura a due livelli dove entrano due dati su un certo numero di bit (a k e b k ) e da dove esce il risultato su lo stesso numero di bit (s k ) pi un certo numero di segnali aggiuntivi (altre informazioni). Il primo livello il livello di calcolo vero e proprio e il secondo livello un livello di selezione.

Nella parte di calcolo vengono implementati i circuiti combinatori associati a tutte le funzioni che sono calcolate dalla ALU. La parte di selezione un selettore, un Multiplexer, che manda in uscita uno dei risultati interni prodotti dai diversi circuiti di calcolo. Vista la presenza di un circuito di selezione ci sar un segnale di selezione (SEL) che avr h bit dove h log 2 del numero di operazioni che sono implementate nella ALU. Ogni volta che c' da fare un'operazione la ALU le fa tutte le operazioni visto che sono in parallelo.

ALU 1 bit
Incominciamo a vedere una ALU che consente le operazioni logiche AND e OR e che lavora su un bit.

ARCHITETTURA - LEZIONE 7

Questa ALU sar costituita da una porta AND, una OR e da un selettore (MUX) a un bit (visto che il segnale di selezione ha come numero di bit il log 2 di 2 operazioni). SEL = 0 S = a AND b SEL = 1 S = a OR b
a 0 0 1 1 b 0 1 0 1 Tabella della verit a AND b a OR b 0 0 0 1 0 1 1 1

Ora vediamo una ALU che consente le operazioni logiche AND e OR e Somma Algebrica che lavora su un bit.

Questa ALU sar costituita da una porta AND, una OR, e da un circuito Full Adder e da un selettore (MUX) a due bit (visto che il segnale di selezione ha come numero di bit il log 2 di 3 operazioni). SEL = 0 0 S = a AND b SEL = 0 1 S = a OR b SEL = 1 0 S = a [FA] b Possiamo definire un cammino critico e una complessit per questo circuito. Come sappiamo la complessit la calcoliamo sommando tutte le porte logiche presenti nel circuito combinatorio: 1 and + 1 or + 5 [FA] + 4 [MUX] = 11 C.C. si calcola il numero massimo di porte che vengono attraversate: C.C. AND =1 C.C. OR =1 C.C. FA della somma = 2 C.C. FA della riporto = 3 C.C. MUX =2 Il cammino critico dato dal C.C. FA della somma = 2 + C.C. MUX =2 quindi 4

ARCHITETTURA - LEZIONE 7

ALU a 32 bit
Per ottenere un ALU mettiamo 32 ALU a 1 bit in serie/parallelo

Complessit della ALU a 32 bit la complessit della ALU da 1 bit per 32. 11 X 32 = 352 Mentre il cammino critico della ALU 32 dato dal riporto dei primi 31 FA + il cammino critico dell'ultima ALU. Il c.c. del riporto 3 e si moltiplicher per 31 e il prodotto lo sommeremo con 4. 31 X 3 = 93 93 + 4 = 97

SOTTRAZIONE
i numeri negativi in base due sono rappresentati in complemento a 2. In complemento a 2 diventa unaddizione A B = A + (B + 1) = (A + B) + 1. Le ALU per implementare la sottrazione hanno bisogno di un inverter ( NOT) e in pi lALU che calcola il bit meno significativo (ALU 0 ) necessita di una costante 1. Per la costante 1 viene utilizzato il 0 (in ingresso nel primo FA) Occorre utilizzare un Full Adder anche per il bit meno significativo (ALU 0 ).

ARCHITETTURA - LEZIONE 7

Quindi la ALU iesima (bit intermedi) che consente le operazioni logiche AND e OR e Somma e Sottrazione ha la seguente struttura:

Il secondo bit in ingresso deve entrare nel circuito di somma sia in versione normale che in versione negata ci permetter di fare sia la somma che la sottrazione. Ecco perch verr impiegata una porta NOT e un selettore (MUX) detto invertiB. Come detto prima per effettuare la sottrazione avremo anche bisogno nella ALU del bit meno significativo (ALU 0 ) di una costante 1 e per questo verr utilizzato il R 0 (Riporto in ingresso nel primo FA) Nella ALU 0 l'invertiB entrer anche in R 0 in modo che nel caso della sottrazione R 0 = InvertiB = 1 InvertiB e R 0 sono lo stesso segnale, si pu ancora ottimizzare. R 0 entra solo in ALU 0 InvertiB entra in tutte le ALU i InvertiB= 1 = sottrazione InvertiB= 0 = somma Operazioni AND OR SOMMA SOTTRAZIONE SEL 00 01 10 10

E possibile programmare questa ALU per eseguire a AND ~b oppure: a OR ~b posizionando invertiB su 1 e il SEL su 00 oppure su 01.

ARCHITETTURA - LEZIONE 7

COMPARAZIONE - SET ON LESS THAN (SLT)


L operazione di confronto fondamentale per dirigere il flusso di esecuzione (test, cicli....) . Sono istruzioni critiche per le CPU perch il risultato non si pu sapere se non durante lesecuzione. IF A < B THEN che verr sviluppato come IF (A B) < 0 THEN. Se A<B in uscita dovr avere tutti 0 e un 1 nel bit meno significativo (FLAG). Mentre se A non minore di B in uscita avr tutti 0 e sar 0 anche il bit meno significativo. Questa operazione di confronto si realizzer in due tempi. In un primo momento calcoleremo (A B) e la nostra ALU sar gi in grado di compiere questo tipo di operazione. In un secondo momento dovremo confrontare il risultato della sottrazione con zero. Sappiamo che se il risultato della sottrazione avr segno negativo (A B) sar minore di zero, mentre se il risultato della sottrazione avr segno positivo (A B) sar maggiore di zero. Visto che il bit di segno il bit pi significativo (-= 1 ; += 0) prenderemo il segnale in uscita dal FA della ALU 31 e lo porteremo nella ALU 0 .

Le modifiche che dovremo apportare alla nostra ALU sono: 1. Il selettore (Mux) da 3 diventa a 4 uscite 2. La linea Less delle ALU i e della ALU 31 sar collegata a zero ( ). 3. La linea Less della ALU 0 sar collegata alluscita del FA della ALU 31 (il bit + significativo esprime il segno)

Operazioni AND OR ADD SUB SLT

SEL 00 01 10 10 11

Operazioni AND OR ADD SUB SLT

InvertiB 0 0 0 1 1

ARCHITETTURA - LEZIONE 7

TEST DI UGUAGLIANZA
Il test di uguaglianza IF (A = B) THEN verr sviluppato come IF (A - B) = 0 THEN. Anche qui In un primo momento calcoleremo (A B), mentre in un secondo momento dovremo verificare che il risultato della sottrazione sia zero quindi tutti gli S (bit di uscita dal FA) dovrebbero essere zero. Il segnale di questo Test (detto ZERO) essendo molto importante per il funzionamento delle Architetture un segnale che esce singolo (quindi senza passare dal Selettore). Il segnale viene generato prendendo le uscite dei FA dalla ALU 0 alla ALU 31 e facendole passare per una porta NOR avendo cos in uscita un segnale pari a 1 (FLAG) se A-B =0 e quindi A=B. Diversamente il segnale sar pari a 0.

OVERFLOW
Quindi si ha OVERFLOW nella somma quando: 1. si sommano due numeri positivi e ottengo un numero negativo. 2. si sommano due numeri negativi e ottengo un numero positivo. Il segno indicato dal bit pi significativo perci il controllo dellOVERFLOW viene fatto nella ALU 31 . Perci gli attori principali sono A 31 B 31 S 31 . Per implementare il circuito di riconoscimento dellOVERFLOW procedo compilando la tabella della verit.
A 31 0 0 0 0 1 1 1 1 B 31 0 0 1 1 0 0 1 1 S 31 0 1 0 1 0 1 0 1 OVERFLOW 0 1 0 0 0 0 1 0

Condizione necessaria ma non sufficiente: che segni di A e B siano uguali. Loverflow c lho quando il segno di A e B diverso dal segno di S. 31 31 + 31 31 31 31

ARCHITETTURA - LEZIONE 7

ARCHITETTURA - LEZIONE 8
2
SOMMATORI AD ANTICIPAZIONE DI RIPORTO / CARRY LOOK-AHEAD ADDER

Il Full Adder con propagazione del riporto lento: Infatti il riporto si propaga sequenzialmente perci sia allungano i tempi di commutazione. Analisi del singolo stadio (FA).

Rout K = A K B K + (A K B K ) Rin K

Quando si genera un riporto in uscita? 1. Quando sia A che B sono uguali a uno (A and B) Questo primo termine viene chiamato GENERAZIONE (G K ). GK = AK BK 2. Quando A o B, in maniera esclusiva, uguale a uno viene propagato il segnale di riporto cio se il riporto in ingresso sar uguale a uno lo sar Tale condizione identificata da (A K B K ) R K Questo secondo termine viene chiamato PROPAGAZIONE (P K ). P K =(A K B K )

anche il riporto in uscita.

in

Posso scrivere Semplicemente R

out

= GK + PK R

in

possiamo costruire un circuito che si chiama Circuito Ad Anticipazione Di Riporto. Lo scopo sar quello di pre-calcolare il riporto senza aspettare che fluisca su tutti gli stadi dei sommatori. Rout K = A K B K + (A K B K ) Rin K Rout K = G K + P K Rin K Rout 0 = G 0 + P 0 Rin 0 Rout 1 = G 1 + P 1 Rin 1 in out Dove R 1 = R 0 Rout 1 = G 1 + P 1 (G 0 + P 0 Rin 0 ) = G 1 + P 1 G 0 + in P1P0R 0 Rout 2 = G 2 + P 2 Rin 2 in out Dove R 2 = R 1 Rout 2 = G 2 + P 2 (G 1 + P 1 G 0 + P 1 P 0 Rin 0 ) = in = G2 + P2G1 + P2P1G0 + P2P1P0R 0 Rout 3 = G 3 + P 3 Rin 3 in out Dove R 3 = R 2 Rout 3 = G 3 + P 3 (G 2 + P 2 G 1 + P 2 P 1 G 0 + in P2P1P0R 0) =
=G 3 + P 3 G 2 + P 3 P 2 G 1 + P 3 P 2 P 1 G 0 + in P3P2P1P0R 0

Con questa struttura ricavata dallanalisi della funzione di R

out

Determinazione del cammino critico di Rout 3 = G 3 + P 3 G 2 + P 3 P 2 G 1 + P 3 P 2 P 1 G 0 + P 3 P 2 P 1 P 0 Rin 0

4 FULL ADDER in serie, 3 C.C del singolo FA

ARCHITETTURA - LEZIONE 8
Ecco perch si adottano gli ADDIZIONATORI MODULARI dove la complessit del circuito viene tollerata A favore di minor tempo di commutazione del segnale. Sono dei moduli elementari a 4 bit che verranno collegati in cascata.

Cammino critico = 6 * N/4. Per 32 bit, 48. Senza parallelizzazione, per 32 bit, N * 3 = 96.

FIRMWARE
Nellapproccio firmware, viene inserita nella ALU una unit di controllo e dei registri. Lunit di controllo attiva opportunamente le unit aritmetiche ed il trasferimento da/verso i registri. Nella moltiplicazione utilizzando Somma e Shift utilizzer un registro Prodotto (P) da 64 bit, inizializzato a 0. Il registro Prodotto (P) conterr prima le somme parziali e al termine conterr la somma totale, cio il risultato del prodotto.

K = contatore n = numero di bit. In questo caso n = 5 Per limplementazione circuitale di questo algoritmo abbiamo bisogno di 3 registri dove vengono memorizzati rispettivamente il: 1. Moltiplicando (A) 2. Moltiplicatore (B) 3. Prodotto (P) (memorizza prima le somme parziali) Poi ci servir una ALU (funzione di sommatore) e ununit di controllo.

ARCHITETTURA - LEZIONE 8
Lunit di controllo inizializzer k = 0. Lunit di controllo dovr fare il test sul moltiplicatore (B k =0?). quindi poi deve ricevere il moltiplicatore e far il test.

Se il bit k uguale a uno lunit di controllo dar il comando di somma (P+A) e il risultato lo scrive in P. lunit di controllo shifter a sinistra di un bit A, incrementer k di uno e far anche il test k=n. Se k= n interromper lesecuzione altrimenti lesecuzione riprender dal test sul moltiplicatore (B k =0?). Se B k =0 shifter a sinistra di un bit A e incrementer k di uno e far il test k=n. Dimensioniamo questi componenti . Segnale dallunit di controllo al moltiplicando e quello alla ALU sono a 1 bit (segnali di controllo). 1. Registro Moltiplicatore (B) n bit 2. Registro Moltiplicando (A) 2n bit perch a ogni passo shiftero a sinistra di un bit A, quindi a avr bisogno di spazio. 3. Registro prodotto 2n bit. 4. La ALU Lavora su 2n bit 5. bus che da B va allunit di controllo ha n bit Questo circuito abbastanza inefficiente quindi occorre ottimizzarlo diminuendo il traffico sul bus interno che va da B allunit di controllo qui voglio far passare un unico bit visto che il test B k =0 lo faccio su un unico bit. Posso modificare il circuito in modo che ogni volta che analizzo B k non debba trasferire tutto B nell UC shiftando a destra di un bit il Moltiplicatore B. Il bit analizzato in precedenza non mi servir pi tanto vale eliminarlo. Cos analizzer sempre B 0 .

ARCHITETTURA - LEZIONE 8
possibile ottimizzare ulteriormente il circuito rivalutando lo svolgimento della moltiplicazione. Ogni volta che shiftiamo a sx il Moltiplicando (A), nella somma successiva notiamo che nel PRODOTTO il bit a sinistra rispetto a quello allineato con il bit meno significativo di A non viene pi modificato. Ci ci suggerisce che potremmo utilizzare una minor capacit calcolo. Se noi shiftassimo a dx il PRODOTTO invece di shiftare a sx il Moltiplicando (A) otterremo gli stessi allineamenti e potremmo quindi risparmiare spazio nel Registro del Moltiplicando (A) passando da 2n bit a n bit. Potremmo utilizzare una ALU a n bit visto che andremo a sommare sempre gli n bit pi significativi del Prodotto con gli n bit del moltiplicando (A). Il Registro del Prodotto avr sempre 2n bit per poterlo Shiftare. Il Registro del Prodotto sar diviso in due. Una parte modificabile dove ci saranno gli n bit pi significativi che verranno utilizzati dalla ALU per calcolare le somme parziali e una parte non modificabile di n bit utile allo shifting.

Visto che Il Moltiplicando (A) allineato sempre ai N bit pi significativi del Prodotto e a ogni iterazione, il prodotto si allarga nella stessa misura in cui il Moltiplicatore (B) si restringe possibile utilizzare la parte non modificabile del Prodotto come registro del Moltiplicatore (B)

ARCHITETTURA - LEZIONE 8

ARCHITETTURA - LEZIONE 9
2
FIRMWARE DIVISIONE

Questo circuito avr 3 registri: 1. Il Divisore (D) - 64 bit 2. Il resto (R) che allinizio contiene 0 e il dividendo - 64 bit 3. Il quoziente - 32 bit

ARCHITETTURA - LEZIONE 9
Ci sono N+1 passi di divisione, il primo dar sempre 0 e si potrebbe omettere. Occorre quindi effettuare: Shift quoziente a sx ad ogni passo. Scrittura di 1 o 0 nel registro quoziente. Shift del divisore verso dx ad ogni passo.. Utilizzo un unico registro per dividendo e resto, considerando che il primo resto parziale uguale al dividendo.

OTTIMIZZAZIONE CIRCUITO
Il divisore si sposta verso DX di un bit ad ogni passo. Spostiamo il resto parziale a SX di un bit ad ogni passo e lasciando Fisso il divisore otterremo gli stessi allineamenti e potremmo quindi risparmiare spazio nel Registro del Divisore passando da 2n bit a n bit (da 64 a 32 bits). Potremmo utilizzare una ALU a n bit (32 bit). Il quoziente si sposta verso SX ad ogni passo. Inizializziamo il resto come RESTO = 0 | DIVIDENDO Ad ogni passo sposto il dividendo di una posizione a SX ed inserisco un bit del quoziente.

ARCHITETTURA - LEZIONE 9
Inizializzazione Shift sx Resto R=R-Divisore R < 0 - R=R+Divisore Shift sx Resto write 0 R=R-Divisore R < 0 - R=R+Divisore Shift sx Resto write 0 R=R-Divisore Shift sx Resto write 1 R=R-Divisore Shift sx Resto write 1 Shift dx della parte sx del Registro in uscita Resto 0000|0111 0000|1110 1110|1110 0000|1110 0001|1100 1111|1100 0001|1100 0011|1000 0001|1000 0011|0001 0001|0001 0010|0011 0001|0011 Divisore 0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 Esempio 7 : 2 = 3 Resto 1 0111 : 0010 = 0011 Resto 0001

1 2 3 4
Bit Terminati

IL SEGNO DELLA DIVISIONE


Dividendo = Quoziente * Divisore + Resto

+ + -

+ +

+ + -

+ + -

Osserviamo che il quoziente positivo se i segni di Divisore e Dividendo sono concordi. Il resto ha il segno del Dividendo.

SOMMA IN VIRGOLA MOBILE (IEEE 754)


1. Trasformare i due numeri in modo che le due rappresentazioni abbiano la stessa base. Cio il numero che ha la base con lesponente + basso nel numero con lesponente pi alto in modo da evitare di sforare la forma normalizzata. 2. Effettuare la somma delle mantisse. 3. Se il numero risultante normalizzato termino qui. Altrimenti: 4. Normalizzare il risultato.