• Non ci sono risultati.

Architettura degli Elaboratori Architettura degli Elaboratori

N/A
N/A
Protected

Academic year: 2022

Condividi "Architettura degli Elaboratori Architettura degli Elaboratori"

Copied!
8
0
0

Testo completo

(1)

Anno Accademico 2003-2004 Architetture degli Elaboratori 1

Corso di Corso di

Architettura degli Elaboratori Architettura degli Elaboratori

Il livello logico digitale:

Algebra Booleana e Circuiti logici digitali di base

Anno Accademico 2003-2004 Architetture degli Elaboratori 2

Porte logiche (I) Porte logiche (I)

Invertitore a transistor: quando Vin è basso, Vout è alto e viceversa

Pochi nanosecondi per passare da uno stato all'altro: “alto”

(tensione VCC) 1 logico, “basso” (terra) 0 logico

Vout

Vin Comportamento transistor in condizioni di saturazione

Porte logiche (II) Porte logiche (II)

Logica positiva (0 = bassa tensione; 1= alta tensione)

 (b) una porta NAND: due transistor collegati in serie

 (c) una porta NOR: due transistor collegati in parallelo

Logica negativa (0 = alta tensione; 1 = bassa tensione)

 (b) una porta NOR: due transistor collegati in serie

 (c) una porta NAND: due transistor collegati in parallelo

V2

V1 Vout

0 1 0 1 0 1 1 0 1 0 0 1 1 0 1 0

1 0 1 01 0 0 1 (b)

V2

V1 Vout

(c) 0 1 0 1 0 1 1 0 1 0 0 1 1 0 1 0

1 00 1 0 1 0 1

Porte logiche (III) Porte logiche (III)

 NOT: un transistor (invertitore)

 NAND e NOR: due transistor

 AND e OR: tre transistor (quelli del NAND e NOR, rispettivamente, più un invertitore)

 XOR: 8 transistor (A XOR B = (A OR B) AND (A NAND B))

(2)

Anno Accademico 2003-2004 Architetture degli Elaboratori 5

Funzioni Booleane Funzioni Booleane



Funzioni a due soli valori, 0 e 1(George Boole, 1815-1864)



Forme di rappresentazione:



Tabelle di verità



Formule algebriche



Mappe di Karnaugh



Binary Decision Diagrams (BDDs)



tutte “equivalenti”

Anno Accademico 2003-2004 Architetture degli Elaboratori 6

Tabelle di Verit Tabelle di Verità à

Tabelle di verità: descrivono completamente il valore di una funzione Booleana attraverso tutte le combinazioni di input; n input corrispondono a 2n combinazioni (righe)

È finito l'insieme delle funzioni Booleane di n input:

funzioni (es., se n = 2 allora 16 funzioni diverse)  uso limitato a poche variabili in ingresso

Forma canonica: righe ordinate per valori crescenti degli ingressi interpretando i valori delle variabili di ingresso come cifre di una codifica binaria

...

...

0 0 0

0 0 1

1 1 1

n variabili di input

2n combinazioni possibili (2n righe)

22n

Algebra Booleana: formule algebriche Algebra Booleana: formule algebriche

Due valori 0 e 1

Funzione unaria “NOT”:

 A = NOT A

Funzioni binarie “AND” e “OR”:

 AB = A AND B

 A + B = A OR B

Le funzioni Booleane possono essere espresse in termini di funzioni elementari:

Esempio: AB + BC

(è vera solo quando A = 1 e B = 0 oppure B = 1 e C = 0)

Proprietà:

Algebra Booleana: forme canoniche Algebra Booleana: forme canoniche

 Formula normale disgiuntiva (FND):

 sommatoria di termini ciascuno dei quali è una produttoria di letterali costituiti da nomi di variabili di ingresso o da negazioni dei nomi di variabili di ingresso

 È minimale quando, applicando le proprietà algebriche di equivalenza non è possibile ottenere una FND equivalente contenente un numero di letterali inferiore

Formula normale congiuntiva (FNC)

 Concetto “duale” del precedente ossia è una produttoria di termini ciascuno dei quali è una sommatoria di letterali costituiti da nomi di variabili di ingresso o da negazioni di nomi di variabili di ingresso

(3)

Anno Accademico 2003-2004 Architetture degli Elaboratori 9

Da tabella di verit

Da tabella di verità a à a formula algebrica formula algebrica

 Funzione di maggioranza su tre input: restituisce 1 se la maggioranza degli input è 1, 0 altrimenti

 La funzione produce 1 nella quarta, sesta, settima e ottava riga

 La funzione M è 1 nelle righe: ABC, ABC, ABC, ABC

 M = ABC + ABC + ABC + ABC

Anno Accademico 2003-2004 Architetture degli Elaboratori 10

Da formula algebrica a tabella di verit Da formula algebrica a tabella di verità à

 Elencare tutte le possibili configurazioni delle n variabili di ingresso

 Per ogni configurazione, valutare i valori di uscita delle funzioni elementari NOT, AND e NOT che compongono l’espressione

 Assumendo l’espressione iniziale una FND (FNC), l’uscita della funzione OR (AND) rappresenta il valore da inserire nella corrispondente riga della tabella che si sta costruendo

Tabella di verità Formula algebrica

Realizzazione di funzioni Booleane Realizzazione di funzioni Booleane

1. Scrivere la tabella di verità per la funzione 2. Disporre gli invertitori

per generare il complemento di ogni input

3. Introdurre una porta AND per ogni termine con un 1 nella colonna dei risultati

4. Collegare le porte AND agli input appropriati 5. Inviare l'output di tutte

le porte AND in una porta OR

ABC + ABC + ABC + ABC

Realizzazione di funzioni Booleane Realizzazione di funzioni Booleane

 Sostituire le porte con più input con dei circuiti equivalenti che usano porte a due input

 Convertire il circuito in un solo tipo di porta (per convenienza)

 NAND e NOR sono porte complete

 Nota: in generale non si ottiene il circuito ottimale (per numero di porte impiegate)

(4)

Anno Accademico 2003-2004 Architetture degli Elaboratori 13

Realizzazione di funzioni Booleane Realizzazione di funzioni Booleane

 Equivalenza di circuiti:

esistono più circuiti che realizzano la stessa funzione booleana

 È importante trovare quella più semplice nel senso del numero di porte

 Usare a tal fine le proprietà dell'algebra Booleana

Anno Accademico 2003-2004 Architetture degli Elaboratori 14

Rappresentazione alternativa alle tabelle di verità più compatta che permette di identificare la FND minimale: si usa uno spazio bidimensionale per la rappresentazione delle configurazioni di ingresso

L’insieme delle variabili di ingresso viene partizionato in due sottoinsiemi P1 e P2 (di dimensioni il più possibile “bilanciate”):

Un sottoinsieme definisce la coordinata orizzontale (es. P2) e l’altro la coordinata verticale (es.P1)

Mappe di Karnaugh (I) Mappe di Karnaugh (I)

A B C 0 0 0 1 1 0 1 1

1 0

0 0

0 1

0 1

1 1

Esempio: mappa equivalente alla tabella di verità corrispondente alla funzione M =ABC + ABC + ABC + ABC con P1={A,B} e P2= {C}

Mappe di Karnaugh (II) Mappe di Karnaugh (II)

 Per ottenere una formula algebrica minimale si ordinano le combinazioni dei valori di ingresso secondo il Codice Gray, ossia codifiche adiacenti hanno distanza di Hamming unitaria

 Si identificano gruppi (di dimensione una potenza di 2) di celle adiacenti con valore 1 come prodotto logico (AND) di letterali

omettendo quelli corrispondenti alle variabili che assumono valore diverso nella coppia

 Si procede finchè l’unione i gruppi di celle adiacenti non copre completamente tutte e sole le caselle della mappa con valore 1

 La FND minimale della funzione di partenza è data sommando logicamente (OR) i termini corrispondenti alle coppie di celle adiacenti identificate

A B C 0 0 0 1 1 1 1 0

1 0

0 0

0 1

1 1

0 1

A B C 0 0 0 1 1 1 1 0

1 0

0 0

0 1

1 1

0 1 AC

BC AB

Mmin = BC+AB+AC

Circuiti di base Circuiti di base

 Circuiti integrati (IC) o chip

 Dual Inline Package (DIP)

 I chip si suddividono in:

 SSI (Small Scale Integrated): da 1 a 10 porte

 MSI (Medium Scale Integrated): da 10 a 100 porte

 LSI (Large Scale Integrated): da 100 a 100.000 porte

 VLSI (Very Large Scale Integrated): piu` di 100.000 porte

(5)

Anno Accademico 2003-2004 Architetture degli Elaboratori 17

Circuiti combinatori: decoder Circuiti combinatori: decoder

Circuito combinatorio:

l'output viene determinato solo dagli input del momento

Decoder: prende un numero di n bit come input e lo usa per selezionare (mettere a 1) una delle 2n linee di output

Può essere utilizzato per attivare una certa

componente (vedi ALU più avanti), oppure un banco di

memoria, ecc. A, B e C “segnali di controllo”

Anno Accademico 2003-2004 Architetture degli Elaboratori 18

Circuiti combinatori: multiplexer Circuiti combinatori: multiplexer

Multiplexer: 2n input, 1 output e n segnali di controllo

Le linee di controllo determinano quale dei 2n input deve essere selezionato per essere inviato all'output

Circuiti combinatori: multiplexer Circuiti combinatori: multiplexer

Un multiplexer è composto da un decoder più una porta AND per ogni output del decoder e l'OR finale

Decoder

Circuiti combinatori: multiplexer Circuiti combinatori: multiplexer

Un multiplexer con n segnali di controllo può essere utilizzato per realizzare una qualsiasi

funzione booleana n-aria Positivo Terra

D0

D7

(6)

Anno Accademico 2003-2004 Architetture degli Elaboratori 21

Circuiti combinatori: demultiplexer Circuiti combinatori: demultiplexer

Inverso del multiplexer: invia il segnale di input ad uno dei 2n output, a seconda dei valori delle n linee di controllo

Per convenzione, le uscite non attivate assumono il valore costante 0 indipendentemente dal valore assunto dall’ ingresso Esempio: demultiplexer a 8 uscite (con 3 segnali di controllo A,B,C) in grado di commutare informazioni codificate su 1 bit

Anno Accademico 2003-2004 Architetture degli Elaboratori 22

Circuiti numerici: comparatori Circuiti numerici: comparatori

 Confronta “bit a bit” due serie di bit in input:

produce 1 se gli input sono uguali, 0 altrimenti

 Utilizza la XOR: OR esclusivo

NOR: output di un OR invertito

Circuiti logici programmabili (PLA) Circuiti logici programmabili (PLA)

Programmable Logic Array (PLA)

Permette di implementare una tabella di verità qualsiasi

(compatibilmente con gli input e output presenti nel chip) Fa uso dei fusibili Oggi non più convenienti per produzione in larga scala

Circuiti combinatori: shifter Circuiti combinatori: shifter

 L’output è l’input spostato di un bit

 Il controllo C determina la direzione dello “shift”, a sinistra se C vale 0 , a destra se C vale 1

Attiva la porta AND che sposta a sinistra

Attiva la porta AND che sposta a destra

(7)

Anno Accademico 2003-2004 Architetture degli Elaboratori 25

Circuiti numerici: addizionatori Circuiti numerici: addizionatori

 Half adder: somma due bit in input restituendo l'eventuale riporto

È uno XOR È un AND

Anno Accademico 2003-2004 Architetture degli Elaboratori 26

Circuiti numerici: addizionatori Circuiti numerici: addizionatori

 Full adder

 Il “semi addizionatore” va bene solo per sommare due bit che si trovano all'inizio di una sequenza di bit (devo tenere conto del riporto generato a destra!)

 L’ addizionatore completo ad 1 bit è composto da due “semi addizionatori”

 modularizzazione

Circuiti numerici: addizionatori Circuiti numerici: addizionatori

n bit Full-adder: un addizionatore completo a n bit si può ottenere replicando in serie n volte un addizionatore completo ad 1 bit

Il riporto (carry out) di un bit si usa come carry in dell’addizionatore completo alla sua sinistra

1-bit full adder

Riporto Controllo

sull'overflow:

se discordi l'output è 1, 0 altrimenti

Circuiti aritmetici: 1-bit ALU Circuiti aritmetici: 1-bit ALU

Arithmetic Logic Unit (ALU)

Dati A e B è in grado di calcolare: A “AND” B, A

“OR” B, “NOT” B, A + B (somma aritmetica)

Input function select (un decoder!) per

l'abilitazione dell'operazione desiderata (del corrispondente output)

(8)

Anno Accademico 2003-2004 Architetture degli Elaboratori 29

Circuiti aritmetici: 1-bit ALU Circuiti aritmetici: 1-bit ALU

 Segnali di

abilitazione anche per gli input A e B (ENA e ENB)

 Se INVA è a 1 viene passato in input il complemento di A anzichè A stesso

 Condizioni normali:

ENA e ENB

impostati a 1, INVA a 0

 Bit slice

Anno Accademico 2003-2004 Architetture degli Elaboratori 30

Circuiti aritmetici: 8-bit ALU Circuiti aritmetici: 8-bit ALU

 Una n-bit ALU si ottiene collegando in serie n bit slice

 Il carry in del bit meno significativo può essere usato come segnale di INC: nell’addizione incrementa il risultato di 1 (A + B + 1, A + 1)

Segnale di INC

Circuiti aritmetici: 8-bit ALU with Z N Circuiti aritmetici: 8-bit ALU with Z N

 Segnali di output Z e N [Tanenbaum, Structured Computer Organization, Third Edition, pag. 166, sez.4.1.4]:

Z vale 1 se l’output è uguale a zero, 0 altrimenti N vale 1 se l’output è un numero negativo, 0 altrimenti N è copia

del bit di output più significativo

Z è il NOR dei bit in output

Circuiti aritmetici: 8-bit ALU with Z N Circuiti aritmetici: 8-bit ALU with Z N

 Il libro contiene due errori: si veda la pagina del corso per le

spiegazioni

F0 F1 ENA ENB INVA INC Funzione

0 1 1 0 0 0 A

0 1 0 1 0 0 B

0 1 1 0 1 0 A

1 0 1 1 0 0 B

1 1 1 1 0 0 A + B

1 1 1 1 0 1 A + B + 1

1 1 1 0 0 1 A + 1

1 1 0 1 0 1 B + 1

1 1 1 1 1 1 B – A

1 1 0 1 1 0 B – 1

1 1 1 0 1 1 -A

0 0 1 1 0 0 A and B

0 1 1 1 0 0 A or B

0 1 0 0 0 0 0

1 1 0 0 0 1 1

0 1 0 0 1 0 -1

Riferimenti

Documenti correlati

Per evitare confusione (ADA è un nome, ma può essere anche un numero esadecimale; oppure: 139 potrebbe esprimere un numero in base 10 oppure 16) si usano delle

case particolare: come convertire fra base 2 e base 8 o 16 Tutti i comuni algoritmi per effettuare operazioni fra numeri scritti in base 10 sono generalizzabili a base qualunque.

Hit Rate (tasso di successo): numero di accessi a memoria che trovano il dato nel livello superiore sul numero totale di accessi Hit Time (tempo di successo): tempo per accedere

I control hazards sono fra i più difficili da gestire, e i più dannosi per le performance del pipeline. specie quelli dovuti a salti condizionati (es «branch on equal»)

•  NOTA: ciascuna somma vale 0 solo per quella data combinazione degli addendi (dei valori delle variabili in input)... Dalle forme canoniche ai circuiti

  VLSI (Very Large Scale Integrated): > 100.000 porte!. Con tecnologia SSI, gli IC contenevano poche porte, direttamente collegate ai

•  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

  ogni passo da eseguire in un ciclo di clock (ciclo più corto rispetto alla CPU a ciclo singolo)!..   importante il bilanciamento della quantità di