Argomento: Arithmetic Logic Unit (1 bit ALU e 8 bit ALU) Corso: Fondamenti di informatica

25
Argomento: Arithmetic Logic Unit (1 bit ALU e 8 bit ALU) Corso: Fondamenti di informatica Professore: Gregorio Cosentino Autori: Enrico Santorio Luca Macchi Matteo Langeli Pierluigi Abiuso Alessio Calicchia Carlo Marchetti Tesina di fine corso

description

Tesina di fine corso. Argomento: Arithmetic Logic Unit (1 bit ALU e 8 bit ALU) Corso: Fondamenti di informatica Professore: Gregorio Cosentino Autori: Enrico Santorio Luca Macchi Matteo Langeli Pierluigi Abiuso Alessio Calicchia Carlo Marchetti. Prima di iniziare: - PowerPoint PPT Presentation

Transcript of Argomento: Arithmetic Logic Unit (1 bit ALU e 8 bit ALU) Corso: Fondamenti di informatica

Page 1: Argomento: Arithmetic Logic Unit (1 bit ALU e 8 bit ALU) Corso: Fondamenti di informatica

Argomento: Arithmetic Logic Unit (1 bit ALU e 8 bit ALU)

Corso:Fondamenti di informatica

Professore:Gregorio Cosentino

Autori:Enrico Santorio

Luca Macchi

Matteo Langeli

Pierluigi Abiuso

Alessio Calicchia

Carlo Marchetti

Tesina di fine corso

Page 2: Argomento: Arithmetic Logic Unit (1 bit ALU e 8 bit ALU) Corso: Fondamenti di informatica

Prima di iniziare:

È importante ricordare le funzioni degli operatori di base; in particolare:

•Il NOT complementa la variabile in entrata

•L’AND esegue il prodotto tra variabili in entrata

•L’OR esegue la somma tra variabili in entrata

•Il NAND complementa le funzioni in uscita dell’AND

•Il NOR complementa le funzioni in uscita dell’OR

•L’OR esclusivo rimanda 1 in uscita se e solo se le variabili in entrata sono diverse.

Page 3: Argomento: Arithmetic Logic Unit (1 bit ALU e 8 bit ALU) Corso: Fondamenti di informatica

L'unità aritmetica logica (spesso noto come arithmetic logic unit o ALU) è un'unità digitale preposta all'esecuzione di operazioni aritmetiche o logiche. L'ALU è un elemento fondamentale dei moderni microprocessori che contengono almeno un'unità ALU al suo interno. Le moderne CPU e GPU sono dotate di unità ALU molto sofisticate, un singolo processore spesso contiene più ALU.Il matematico John von Neumann propose il concetto di ALU nel 1945 mentre sviluppava le basi del computer EDVAC.Nel 1946 von Neumann lavorò con i suoi colleghi allo sviluppo di un computer per il Princeton Institute of Advanced Studies (IAS). L'IAS machine fu un sistema che fu utilizzato come esempio dalla maggior parte dei computer successivi. Durante lo sviluppo delineò l'architettura generica della macchina che comprendeva il concetto di ALU.Egli ideò inoltre il concetto di ALU in modo da consentire al computer di eseguire le operazioni aritmetiche elementari come somma, sottrazione, divisione e moltiplicazione ritenendo ragionevole sviluppare un'unità specializzata allo scopo.

Sistema numerico :L'ALU deve processare i numeri utilizzando lo stesso sistema numerico utilizzato dai rimanenti componenti del computer. Nei moderni computer questa è praticamente sempre la notazione binaria in complemento a due. I primi computer invece utilizzavano una varietà molto ampia di sistemi di numerazione come la notazione decimale la notazione con segno e il complemento a uno.A seconda del sistema di rappresentazione utilizzato lo schema deLL'ALU può variare significativamente.

Page 4: Argomento: Arithmetic Logic Unit (1 bit ALU e 8 bit ALU) Corso: Fondamenti di informatica

Operazioni basilari: La maggior parte delle ALU sono in grado di eseguire:Operazioni aritmetiche su numeri intero (addizione, sottrazione, e spesso moltiplicazione e divisione a volte tramite l'utilizzo di sottrazioni o somme multiple).Operazioni logiche (AND, OR, NOT).Operazioni di scorrimento binarie tramite registri a scorrimento.

Operazioni complesse :Un ingegnere elettronico può progettare un'ALU in grado di eseguire tutte le operazioni logiche e matematiche immaginabili ma questo comporterebbe degli enormi problemi dato che l'unita sarebbe molto costosa e lenta. Quindi gli ingegneri devono effettuare delle scelte cercando di realizzare delle unità potenti ma nello stesso tempo non troppo complesse. Anche le ALU semplici sono in grado di eseguire operazioni complesse ma richiedono molti cicli di clock per svolgere le operazioni mentre le ALU complesse eseguono le operazioni in un solo ciclo di clock.

Input e Output:Gli input (ingressi) dell'ALU sono i dati da processare (gli operandi) e il codice che attiva l'unità di controllo che gestisce l'ALU. L'output sono i risultati delle operazioni.Spesso le ALU sono progettate per generare ingressi e uscite in funzione dei dati elaborati. Questi dati vengono usualmente raccolti in un registro di stato e sono utilizzati per indicare la presenza di resto, la divisione per zero, l'overflow etc.

Page 5: Argomento: Arithmetic Logic Unit (1 bit ALU e 8 bit ALU) Corso: Fondamenti di informatica

1 111

1 111

0F 1FLe funzioni e determinano quale operazione dovrà svolgere l’ALU (in questo caso somma), disabilitando i fili che vanno negli AND degli altri operatori (AND, OR, NOT)

Page 6: Argomento: Arithmetic Logic Unit (1 bit ALU e 8 bit ALU) Corso: Fondamenti di informatica

111

11

111

000

0

Page 7: Argomento: Arithmetic Logic Unit (1 bit ALU e 8 bit ALU) Corso: Fondamenti di informatica

0

0

0

1

Essendo operatori “and” che in input ricevono uno zero,

indipendentemente dal secondo input, il

risultato sarà zero.

0

Il decodificare (decoder) ha così svolto il compito che gli avevamo assegnato, ovvero quello di disabilitare operatori che non fossero di somma.

Page 8: Argomento: Arithmetic Logic Unit (1 bit ALU e 8 bit ALU) Corso: Fondamenti di informatica

1

11

1

0

1

0

Supponiamo di calcolare la somma tra le variabili in ingresso:

A=1

B=1

Ricordiamo che di default:

EnA=1

EnB=1

InvA=0

Page 9: Argomento: Arithmetic Logic Unit (1 bit ALU e 8 bit ALU) Corso: Fondamenti di informatica

01

11

111

1

0

11

Ricordiamo che i valori entranti dei tre operatori della logical unit possono essere trascurati, perché disabilitati.

Page 10: Argomento: Arithmetic Logic Unit (1 bit ALU e 8 bit ALU) Corso: Fondamenti di informatica

1

1111

11

0

0

Page 11: Argomento: Arithmetic Logic Unit (1 bit ALU e 8 bit ALU) Corso: Fondamenti di informatica

0

1111

10

11

0

Il full adder, valutando le variabili in ingresso e non dimenticandosi del carry in, elabora i risultati relativi al carry out e sum che andrà nell’OR finale.

Page 12: Argomento: Arithmetic Logic Unit (1 bit ALU e 8 bit ALU) Corso: Fondamenti di informatica

1

1

0

1

1

1

0

Page 13: Argomento: Arithmetic Logic Unit (1 bit ALU e 8 bit ALU) Corso: Fondamenti di informatica

1

1

Page 14: Argomento: Arithmetic Logic Unit (1 bit ALU e 8 bit ALU) Corso: Fondamenti di informatica

1

1Output: 1 + 1 = Carry in: 1 Carry out 1 + 1 =

Ecco così i nostri risultati!

Page 15: Argomento: Arithmetic Logic Unit (1 bit ALU e 8 bit ALU) Corso: Fondamenti di informatica

La tavola di verità

Con la tavola di verità si rappresentano tutte le possibili combinazioni in uscita a partire dalle diverse variabili in entrata, tenendo conto di eventuali carry in.

In particolare, studiamo il caso in cui il valore delle variabili in ingresso non cambia, ma il carry in è uguale a “0”.

Page 16: Argomento: Arithmetic Logic Unit (1 bit ALU e 8 bit ALU) Corso: Fondamenti di informatica

0

1111

10

0

00

Page 17: Argomento: Arithmetic Logic Unit (1 bit ALU e 8 bit ALU) Corso: Fondamenti di informatica

1

0

0

1

1

0

0

Page 18: Argomento: Arithmetic Logic Unit (1 bit ALU e 8 bit ALU) Corso: Fondamenti di informatica

1

0

Page 19: Argomento: Arithmetic Logic Unit (1 bit ALU e 8 bit ALU) Corso: Fondamenti di informatica

Output (1 + 1)= Carry in: 0 Carry out (1 + 1)=

0

1

C.V.D.

Page 20: Argomento: Arithmetic Logic Unit (1 bit ALU e 8 bit ALU) Corso: Fondamenti di informatica

8 bit ALU

VERSO DI LETTURA

Page 21: Argomento: Arithmetic Logic Unit (1 bit ALU e 8 bit ALU) Corso: Fondamenti di informatica

)F (F controllo di Segnali 10

Ad ogni ALU arrivano le stesse istruzioni dei segnali di controllo

Page 22: Argomento: Arithmetic Logic Unit (1 bit ALU e 8 bit ALU) Corso: Fondamenti di informatica

Variabili in ingresso ( A, B )

Le variabili in ingresso A e B si dividono in due famiglie che rappresentano i due numeri da 8 digit che noi stiamo , per esempio, sommando. Tra tre slide vedremo come ognuno di questi digit avrà un peso diverso nella funzione in uscita.

Page 23: Argomento: Arithmetic Logic Unit (1 bit ALU e 8 bit ALU) Corso: Fondamenti di informatica

I Valori di default: EnA, EnB, InvA

Tali valori vengono assunti di default come: InvA=0 EnA=1 EnB=1

Page 24: Argomento: Arithmetic Logic Unit (1 bit ALU e 8 bit ALU) Corso: Fondamenti di informatica

Carry Out e Carry In

Le funzioni di Carry in e Carry out si muovono tra coppie consecutive di ALU, una volta che il primo Carry in è stato introdotto (di default=0).

L’overflow è generato delle operazioni aritmetiche che danno un risultato troppo grande per essere memorizzato nello spazio che il programmatore aveva messo a disposizione per il risultato stesso.

Page 25: Argomento: Arithmetic Logic Unit (1 bit ALU e 8 bit ALU) Corso: Fondamenti di informatica

Variabili in uscita (output)

Il valore finale delle variabili in uscita compone un numero di otto digit che, per esempio, è il risultato di una somma. Ogni cifra, l’output di ciascun ALU, ha un peso diverso all’interno del numero, ovvero rappresenta una diversa potenza di due in codice binario. Quindi è importante il verso di lettura di un 8-bit ALU, perché ci da l’ordine delle potenze.