architettura degli elaboratori - unife

39
Architettura degli Elaboratori Componenti Combinatori Standard Davide Bertozzi Dipartimento di Ingegneria Università of Ferrara

Upload: others

Post on 24-Nov-2021

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Architettura degli Elaboratori - Unife

Architettura degli Elaboratori

Componenti CombinatoriStandard

Davide BertozziDipartimento di IngegneriaUniversità of Ferrara

Page 2: Architettura degli Elaboratori - Unife

Riassunto: Semplificazione Primo procedimento: utilizzo di tecniche algebriche

2

Forma canonica SOP: Semplificazione per via algebrica:

Page 3: Architettura degli Elaboratori - Unife

Riassunto: Semplificazione

3

Secondo procedimento: utilizzo di K-mapsAB

C 00 01

0

1

11 10

Mintermini su K-map a tre variabili

1 1

1

Page 4: Architettura degli Elaboratori - Unife

Esercizio Semplificare la seguente funzione logica sia attraverso la

semplificazione algebrica sia attraverso le K-maps

4

Page 5: Architettura degli Elaboratori - Unife

Componenti Combinatori Standard Abbiamo visto i principi fondamentali della sintesi di

qualunque funzione logica combinatoria Esistono funzioni logiche di particolare interesse ai fini delle

applicazioni pratiche Queste funzioni sono trattate, nelle reti logiche, come veri e

propri «componenti standard» Decoders Encoders Multiplexers Half-adders Full-adders

5

Rete logica con componenti di diverso tipo

Page 6: Architettura degli Elaboratori - Unife

Decoder

6

DECN

DECxy

abcd

Page 7: Architettura degli Elaboratori - Unife

Decoder

Volendo fare la sintesi delle espressioni logiche delle uscite, in questa tabella di verità non si può semplificare nulla: Esiste solo un minterm implicante per ogni uscita! Gli implicanti danno direttamente la sintesi dell’uscita:

7

Page 8: Architettura degli Elaboratori - Unife

Decoder - Generalizzazione

8

DEC3-in

8-out

xy

abcd

zefgh

xyz

L’ingresso è la codifica binaria dell’uscita selezionata

Uscita no. 6 => in binario «110»

Page 9: Architettura degli Elaboratori - Unife

Se Sel=0 allora out = I0Se Sel=1 allora out=I1

Multiplexer

9

Page 10: Architettura degli Elaboratori - Unife

Multiplexer 4:1

10

Se (a,b)=(0,0) allora Q=ASe (a,b)=(0,1) allora Q=BSe (a,b)=(1,0) allora Q=CSe (a,b)=(1,1) allora Q=D

a b Q0 0 A0 1 B1 0 C1 1 DTabella di verità

Page 11: Architettura degli Elaboratori - Unife

Implementazione Intuitiva Combinazione di un decoder e di un selettore:

11

ab

fcd

x y

Page 12: Architettura degli Elaboratori - Unife

Implementazione Ottimizzata - Sintesi Occorre partire dalla funzione logica in forma estesa:

12

A B S Q0 0 0 00 0 1 00 1 0 00 1 1 11 0 0 11 0 1 01 1 0 11 1 1 1

Forma canonica, e semplificazione: Q = A’BS+AB’S’+ABS’+ABS = AS’(B+B’) + BS(A+A’) = AS’ + BS

Page 13: Architettura degli Elaboratori - Unife

Differenza Decoder - Multiplexer

13

Page 14: Architettura degli Elaboratori - Unife

Circuiti Aritmetici Binari Un addizionatore binario è un blocco significativo di una

CPU. In realtà la CPU contiene un blocco più complicato chiamato

unità aritmetico-logica (ALU), che è un circuito logico combinatorio che può sommare, sottrarre o eseguire operazioni logiche (AND, OR, NOT, ecc.).

Consideriamo le regole dell’addizione di due numeri: I numeri sono sommati per colonne, cominciando dalla destra. Se la somma di una colonna è un numero a 2 digit, quello a destra

viene messo nella colonna corrente, mentre quello a sinistra (sempre un «1») diviene un «carry» (o riporto) per la prossima colonna più a sinistra.

L’addizione per colonna include sempre il carry dalla più vicina colonna a destra.

La somma per ogni colonna fornirà sempre solo un singolo digit.14

Page 15: Architettura degli Elaboratori - Unife

Principio della somma Esempio di somma in decimale:

I numeri binari si sommano esattamente allo stesso modo:

Principi per la somma ad n-colonne: Somma le righe della colonna i, includendo il carry della colonna i-1 (ci-1) Se il risultato ha un digit, esso è il risultato della colonna i (si) Se il risultato ha due digit, il digit a destra è si. Il digit a sinistra è il carry

i-esimo, ovvero ci. Il carry della colonna i sarà sommato alla colonna i+1.

15

Page 16: Architettura degli Elaboratori - Unife

Un circuito «Half-Adder» Progettiamo un sommatore digitale per due numeri binari Poiché l’addizione viene fatta per colonne, ciò che serve per sommare due

numeri ad N-bit è l’utilizzo di un «sommatore di colonna» per ognuno degli N bit. Per sommare due numeri ad 8 bit, dobbiamo utilizzare 8 sommatori di

colonna. Il sommatore di colonna per la colonna più a destra si chiama «half-adder»

(somma due bit senza alcun riporto in ingresso). Tabella di verità per la somma S e il carry C0 di due bit a & b:

16

Page 17: Architettura degli Elaboratori - Unife

Half-Adder

17

Passiamo alla tabella di verità

E’ un EXOR!

Il carry out rimane inalterato

Non è più la forma canonica SOP, ma una implementazione semplificata

Page 18: Architettura degli Elaboratori - Unife

Simulazione funzionale L’Half-Adder in azione:

18

Page 19: Architettura degli Elaboratori - Unife

Full Adder L’Half-Adder non contempla un «carry in», e in quanto tale

serve solo come «sommatore di colonna» più a destra. Tutti gli altri sommatori di colonna sono sommatori a 3 bit!

Ingressi ai, bi e carryi-1 Il sommatore a 3 bit viene chiamato «Full Adder» Molti sommatori usano Full Adders anche per le colonne più a

destra.

19Sommatori per colonna

Page 20: Architettura degli Elaboratori - Unife

Sintesi di un Full Adder Tabella di verità e forma canonica SOP

Forme canoniche SOP:

20

* Per semplicità, nella forma canonica «carry-in» viene indicato con «c»

Page 21: Architettura degli Elaboratori - Unife

Sintesi di un Full Adder

21

Notare che somma e riporto hanno un termine in comune

Page 22: Architettura degli Elaboratori - Unife

Sintesi alternativa del Full Adder Cerchiamo per via algebrica di utilizzare porte logiche XOR:

22

Page 23: Architettura degli Elaboratori - Unife

Adder a 32 bit

23

32 sommatori di colonna a 3 bit sono collegati in serie in modo che ognuno di essi svolga il ruolo di sommatore di colonna per ognuna delle 32 colonne.

Un Half-Adder può essere utilizzato nella prima colonna.

1-digit (3-bit)Full Adder

32-digit adder

Page 24: Architettura degli Elaboratori - Unife

Ripple-Carry Adder

24

Sommatore a 4 bit dei numeri binari (A3,A2,A1,A0) con (B3,B2,B1,B0):

Considerando il ritardo di propagazione (nell’elettronica) di ogni Full Adder, quanto occorre attendere affinchè la somma sia «valida»?

Il percorso più lento («critico») passa attraverso il calcolo dei carry

Il tempo di attesa totale è lineare nel numero di bit

Prima di quel tempo la somma non deve considerarsi valida

Page 25: Architettura degli Elaboratori - Unife

Architetture di Sommatori Il Ripple-Carry Adder è un sommatore semplice e poco ingombrante, ma

spesso non abbastanza veloce per sistemi digitali con requisiti prestazionali stringenti

Nel corso degli anni, sono state proposte in letteratura strutture di sommatori molto più veloci, tra cui spiccano: Carry Skip Adder Carry Lookahead Adder Carry Select Adder …..(tantissimi altri)

Ogni architettura realizza dei trade-off tra performance, area e consumo di potenza

25

Power 32 Bit

0,00E+000

1,00E-003

2,00E-003

3,00E-003

4,00E-0035,00E-003

6,00E-003

7,00E-003

8,00E-003

9,00E-003

1,00E-002

330 341 385 418 979 1199 3500

Period [ps]

Tota

l Pow

er

CLFBKPPARCHCLACSMRPCSRPL

«Period» è il tempo disponibile per l’elaborazione

Sommatori più veloci consumano anche di più, e viceversa

Page 26: Architettura degli Elaboratori - Unife

Power 32 Bit

0,00E+000

1,00E-003

2,00E-003

3,00E-003

4,00E-0035,00E-003

6,00E-003

7,00E-003

8,00E-003

9,00E-003

1,00E-002

330 341 385 418 979 1199 3500

Period [ps]To

tal P

ower

CLFBKPPARCHCLACSMRPCSRPL

Architetture di Sommatori - Dettaglio Problema di un progettista hardware:Data una libreria tecnologica (es. 130nm), utilizzando porte logiche veloci dalla

libreria della fonderia, Il sommatore CLF può lavorare nel caso migliore con un ritardo di 330 ps.

Tuttavia, può essere realizzato anche con porte logiche più lente, lavorando anche a 341, 385, ….. ps.

Man mano che aumenta il ritardo, il consumo di potenza cala.

A 385 ps, entra in scena anche il circuito CLA. Tuttavia, consuma di più..

…però a 979ps CLA consuma meno di CLF!

Invece, CSM consuma sempre più di CLF!

26

CSM

CLACLF

Il fattore di «scaling» della potenza in funzione del ritardo dipende unicamente dalla rete logica del sommatore e dalle porte logiche disponibili nella libreria tecnologica

Page 27: Architettura degli Elaboratori - Unife

Sottrazione Prima occorre un accenno alla rappresentazione di numeri

con segno (aritmetica binaria con segno) Soluzioni più comuni:

Rappresentazione di segno e modulo. rappresentazione in complemento a 1. Rappresentazione in complemento a 2.

27

Page 28: Architettura degli Elaboratori - Unife

Rappresentazione di Numeri Binari con Segno Rappr. di segno e modulo: Il bit più a sinistra

rappresenta il segno

Semplice da realizzare Utile per la

rappresentazione in virgola mobile

Il bit di segno è indipendente dal modulo

Potrebbe rappresentare anche +0 e -0! Rende l’aritmetica binaria complicata

per il calcolatore.

VantaggiSvantaggi

Complemento a 1: il numero negativo dello stesso modulo di un qualunque numero positivo è rappresentato dal suo complemento a 1: Il primo bit rappresenta sempre il segno.

Anche in questo metodo ci sono due «zeri»: «00000000» e «11111111»

Tutti i bit a destra rappresentano il modulo del numero

Bit del segno (0 = +; 1 = -)

(+76) (-76)

Page 29: Architettura degli Elaboratori - Unife

Complemento a 2 A causa dei problemi precedenti, un altro approccio è

diventato lo standard per la rappresentazione del segno dei numeri binari «fixed point» nei moderni calcolatori.

Definizione - Complemento a 2 di un numero binario: è il complemento a 1 del numero cui va sommato uno

In un numero a N bit, tutti gli N bit sono necessari per capire il segno, perché il bit di segno è quello più a sinistra (0 = +; 1 = -)

29

da cui:da cui:da cui:da cui:

Page 30: Architettura degli Elaboratori - Unife

Complemento a 2

30

(1)

Page 31: Architettura degli Elaboratori - Unife

Esercizi Per convertire un numero decimale negativo in un numero

binario in complemento a 2: Convertire il numero decimale in un numero binario positivo Fare il complemento a 1 del numero binario Aggiungere 1 al risultato

I numeri decimali positivi vengono convertiti normalmente senza alcun complemento:

31

Page 32: Architettura degli Elaboratori - Unife

Conversione inversa Per convertire un numero binario in complemento a 2 in un numero

decimale: Se il numero è positivo (bit di segno uguale a 0):

convertire direttamente in binario

Se il numero è negativo (bit di segno uguale a 1): fare il complemento a due del numero Convertire il numero binario positivo risultante in decimale, e aggiungere

il segno «-»:

32

Page 33: Architettura degli Elaboratori - Unife

Esercizio Effettuare le seguenti conversioni da decimale a binario,

utilizzando la rappresentazione in complemento a 2:

33

Page 34: Architettura degli Elaboratori - Unife

Aritmetica Binaria in Complemento a 2

34

Page 35: Architettura degli Elaboratori - Unife

Esempi Sottrarre «0111 0101» da «0111 1100»:

Il complemento a 2 di «0111 0101» vale «1000 1011»

Sommare «1100 0001» a «0110 1110»:

35

Il bit addizionale viene scartato

Controllo:

Il bit addizionale viene scartato

Controllo:

Page 36: Architettura degli Elaboratori - Unife

Esempi Sottrarre «1101 1101» da «0101 1100»:

Il complemento a 2 di «1101 1101» vale «0010 0011»

Sommare «1000 0001» a «0111 0010»:

36

Controllo:

Controllo:

Page 37: Architettura degli Elaboratori - Unife

Esempi: Sforamento del Range

37

Page 38: Architettura degli Elaboratori - Unife

La Sottrazione in Pratica Come fare la sottrazione con un Ripple-Carry Adder?

38

Carry_in

Invertire b (si può fare attraverso delle porte XOR con un ingresso a 1) Settare il carry_in del sommatore più a destra ad 1 (ecco perché anche il

sommatore della prima colonna viene di norma implementato mediante un Full Adder.

Introdurre due segnali di selezione: «inversione» – dispone la selezione dell’ingresso b in forma vera o negata «seleziona carry» – dispone di settare il carry_in a 1, anziché a 0.

Si può fare tutto con un unico segnale di controllo Add-/Sub+

Page 39: Architettura degli Elaboratori - Unife

Rete per le Somme e le Sottrazioni

39

Se Add-/Sub+ è alto, le porte XOR invertono l’ingresso B, altrimenti B rimane invariato

Nota che Add-/Sub+ deve andare in XOR con il carry C3 affinchè esso sia corretto per il caso della sottrazzione

Selettore Add/Subtract Adder a 4-bit

1-Bit Full Adder(usato 4 volte)

Carry_in = 1 perla sottrazione