architettura degli elaboratori - unife

Post on 24-Nov-2021

3 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Architettura degli Elaboratori

Componenti CombinatoriStandard

Davide BertozziDipartimento di IngegneriaUniversità of Ferrara

Riassunto: Semplificazione Primo procedimento: utilizzo di tecniche algebriche

2

Forma canonica SOP: Semplificazione per via algebrica:

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

Esercizio Semplificare la seguente funzione logica sia attraverso la

semplificazione algebrica sia attraverso le K-maps

4

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

Decoder

6

DECN

DECxy

abcd

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

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»

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

Multiplexer

9

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à

Implementazione Intuitiva Combinazione di un decoder e di un selettore:

11

ab

fcd

x y

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

Differenza Decoder - Multiplexer

13

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

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

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

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

Simulazione funzionale L’Half-Adder in azione:

18

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

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»

Sintesi di un Full Adder

21

Notare che somma e riporto hanno un termine in comune

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

22

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

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

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

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

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

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)

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:

Complemento a 2

30

(1)

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

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

Esercizio Effettuare le seguenti conversioni da decimale a binario,

utilizzando la rappresentazione in complemento a 2:

33

Aritmetica Binaria in Complemento a 2

34

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:

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:

Esempi: Sforamento del Range

37

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+

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

top related