Che materia stai cercando?

Tesina Architettura dei Calcolatori Elettronici

Tesina scritta da me per l'esame di ADcE. Piena di Esempi e riferimenti al programma del corso.

Indice:
- Codifiche
- Circuiti
- Moduli Combinatori
- Memorie
- ALU
- Architetture Von Neumann
- Architettura MIPS
- Input/Output
- BUS
- Prestazioni di un'architettura
- Gerarchie di Memoria
- Cenni di Programmazione Assembler

p.s. con questa... Vedi di più

Esame di Architettura dei calcolatori elettronici docente Prof. M. Carpentieri

Anteprima

ESTRATTO DOCUMENTO

Circuiti

Il calcolatore puo’ essere visto come una rete logica cioè come un insieme di

dispositivi chiamati porte logiche connessi. I circuiti logici sono componenti

hardware che manipolano informazione binaria. I circuiti di base sono detti

PORTE LOGICHE (logical gate). Le porte logiche sono dispositivi in grado di

eseguire operazioni logiche su segnali binari. I segnali binari sono livelli di

tensione. Il valore esatto della tensione del segnale non è significativo: conta

l’appartenenza ad un livello contrassegnato alto e ad un livello contrassegnato

basso.

Questi livelli sono identificati tramite una coppia di simboli:

0 1

Low High

False True

Open Close

L’algebra che useremo è dovuta a Boole ed è detta ALGEBRA BOOLEANA. Le

variabili di questa algebra sono binarie, possono assumere solo due valori (0,1).

Le variabili si indicano con le lettere A,B,C,X,Y,W,Z. Le operazioni base sono

AND ( • ), OR ( + ) ,NOT ( ¯ ) Possiamo definire questi operatori tramite la

tabella di verità: AND Prodotto logico

OR – Somma logica

NOT Negazione logica

I Circuiti digitali possono essere classificati in:

Circuiti logici combinatori dove i valori presenti in uscita in tali circuiti

 dipendono esclusivamente dalle combinazioni binarie in ingresso e non

pag. 8

dalla sequenza temporale con cui tali combinazioni vengono fornite al

circuito.

Circuiti sequenziali dove le uscite dipendono anche dalla sequenza

 (cioè dall'ordine con cui vengono forniti gli ingressi). Per fare un esempio,

una porta AND è un circuito combinatorio, in quanto non ha nessuna

importanza l'ordine con cui vengono forniti i due valori di ingresso:

l'uscita dipende semplicemente dalla combinazione (00, 01, 10 o 11)

presente in ingresso. Porte logiche

Le porte logiche derivano direttamente dagli operatori dell’algebra booleana

quali AND, OR e NOT. NOT – complemento di un bit

AND – prodotto di due bit

OR – somma logica di due bit (il caso 1 + 1 restituisce sempre valore logico

alto)

NOR (NAND) – complemento dell’OR(NAND)

XOR – somma modulo di due bit

XNOR – complemento di XOR

Attraverso queste porte possiamo esprimere funzioni differenti.

Ogni funzione ammette due forme canoniche che sono, rispettivamente, la

forma somma di prodotti (SoP) e quella prodotto di somme (PoS).

Le forme SOP sono somme di prodotti (sum of product), ovvero OR di minterm.

Un Minterm è una funzione booleana che assume il valore 1 in corrispondenza

di un'unica configurazione di variabili (booleane) in ingresso indipendenti.

Le forme POS sono prodotti di somme (product of sum), ovvero AND di

maxterm.

Si definisce Maxterm una funzione di n variabili booleane, che vale 0 in

corrispondenza di una ed una sola configurazione delle variabili indipendenti di

ingresso. pag. 9

Algebra di Commutazione

L'algebra di commutazione è l'insieme delle operazioni dell'algebra

booleana a due valori. È anche detta algebra commutativa. Le tre operazioni

logiche elementari dell'algebra di commutazione sono gli operatori AND, OR e

NOT, da cui è possibile derivare anche altre funzioni booleane e operatori logici

composti. Teorema fondamentale dell'algebra di commutazione

Una qualunque funzione booleana di n variabili indipendenti a valori in {0, 1},

può essere

dichiarata come sequenza di m forme canoniche SOP, definite dall'OR dei

mintermini resi veri dagli assegnamenti dove la f vale uno.

Teorema fondamentale duale

Una qualunque funzione booleana di n variabili indipendenti a valori in {0, 1},

può essere

dichiarata da espressioni canoniche POS definite dall’AND dei maxtermini resi

falsi dagli

assegnamenti dove la funzione vale zero.

Mappa di Karnaugh

La mappa di Karnaugh è un metodo di rappresentazione esatta di sintesi di reti

combinatorie a uno o più livelli. Essa costituisce una rappresentazione visiva di

una funzione booleana in grado di mettere in evidenza le coppie di minterm o

di maxterm a distanza di Hamming unitaria (ovvero di termini che differiscono

per una sola variabile binaria (o booleana)).

La mappa di Karnaugh è un metodo grafico che ha come obiettivo quello di

ridurre la complessità delle funzioni booleane espresse in forme canoniche.

Essa si costruisce a partire dalla tabella della verità di una funzione booleana,

nel processo di sintesi di una rete combinatoria.

Inoltre essa permette di costruire la forma minima di una funzione come

somma di prodotti logici (forma disgiuntiva) o come prodotto di somme logiche

(forma congiuntiva) e quindi semplificazioni della funzione booleana spesso più

immediate di quelle ottenibili con modifiche algebriche. pag. 10

Moduli Combinatori

I circuiti combinatori non memorizzano informazioni ma sostanzialmente, date

alcune variabili d’ingresso, l’uscita o le uscite sono solamente funzione dello

stato attuale degli ingressi.

Il decodificatore è un modulo ad n segnali di ingresso e 2^n segnali di uscita.

Viene utilizzato come riconoscitore di stringhe binarie. Se riceve in entrata un

certo codice (per esempio un numero binario 100, 4 in base dieci) esso abiliterà

la quarta linea di uscita. Una sola linea di output sarà abilitata.

Il codificatore ha la funzionalità inversa rispetto a quella del decodificatore.

Ricevendo n bit in entrata di cui uno solo vale uno, il codificatore produrrà in

uscita la codifica binaria della linea attiva in quel momento. Ovviamente le

linee di uscita saranno log n.

Il multiplexer è un altro modulo combinatorio utile per la selezione dei segnali

di ingresso (switch). Attraverso delle linee di SELECT "dico" al multiplexer di

mandare in uscita la linea di DATA (ingresso) che desidero. Utilissimo nella

progettazione di reti MESH per il trasferimento dati nei registri. Largamente

usato anche in sostituzione delle porte logiche per la realizzazione di un

circuito combinatorio. Come mostra la tabella di verità, il multiplexer avrà in

entrata n bit e al massimo log n segnali di controllo; in uscita avrà un solo bit.

pag. 11

Il demultiplexer è un'altro modulo combinatorio con funzionalità inversa

rispetto al multiplexer. Esso riceve in ingresso una sola linea e log n segnali di

controllo che selezionano la linea di uscita alla quale deve essere connessa la

linea i. ROM

Il termine ROM (Read Only Memory) significa memoria di sola lettura. Questo

tipo di memoria non può essere cancellata o riscritta; d’altro canto conserva il

proprio valore (non volatile) anche se non alimentata. Pertanto la ROM viene

solitamente utilizzata per la memorizzazione permanente di programmi stabili.

Queste memorie sono realizzabili collegando le uscite di un decodificatore per

mezzo di porte Or. Si tratta di moduli in grado di calcolare una qualunque

funzione booleana. PLA

Il termine PLA (Programmable Logic Array) ovvero matrice logica

programmabile è un dispositivo logico programmabile usato per

implementare circuiti logici combinatori.

La struttura di una PLA è basata sul fatto che qualsiasi funzione logica può

essere descritta tramite somme di prodotti logici. Un PLA è composto da una

matrice d'ingresso di porte logiche AND programmabili, collegate con una serie

di OR programmabili, che possono essere condizionalmente complementati per

produrre un'uscita. Tale struttura permette di sintetizzare un gran numero di

funzioni logiche nella loro forma disgiuntiva o, talvolta, congiuntiva,

minimizzata tramite tecniche quali la mappa di Karnaugh. pag. 12

Memorie

I circuiti elettronici capaci di memorizzare un singolo bit sono essenzialmente di

due tipi:

Latch e Flip-Flop.

Ciascuno di questi circuiti è caratterizzato dalle seguenti proprietà:

• è bistabile: a secondo dell’ingresso memorizza 0 o 1 che mantiene (stati

stabili) in assenza di input;

• ha due output (etichettati Q e Q) che sono sempre l’uno il complemento

dell’altro. Latch

Realizzato con due porte NOR o due porte NAND, è dotato di due linee di

ingresso

set (S) e reset (R) e di due line di uscita Q uscita e Q’uscita negata che sono

complementari.

Le caratteristiche funzionali del Latch RS possono essere sintetizzate dalla

seguente Tabella di Verità, ove Q e Q indicano rispettivamente lo stato del

t t+1

morsetto Q prima e dopo la commutazione di uno degli ingressi. pag. 13

La tabella di verità del Latch SR ci dice che il circuito può ricevere in input per

SR solo le configurazioni 00,01,10 (in quanto 11 non è ammessa) e può

produrre in uscita (sul morsetto Q) due valori 0 o 1.

Se riceve 01 (cioè R=1 reset) produce in uscita (su Q) il valore 0, se riceve 10

(cioè S=1set ) produce in uscita (su Q) il valore 1, se riceve 00 produce in

uscita (su Q) lo stesso valore del passo precedente.

Abbiamo quindi dimostrato una proprietà che distingue nettamente i circuiti

sequenziali dai circuiti combinatori. In un circuito combinatorio il valore delle

uscite é univocamente determinato dai valori attuali delle variabili di ingresso.

Flip-Flop

I flip-flop (o bistabili) sono circuiti elettronici sequenziali semplici, utilizzati

nell'elettronica digitale come dispositivi di memoria elementare. Flip-Flop

deriva dal rumore che facevano i primi circuiti di questo tipo, costruiti

con relè che permettevano il cambiamento di stato.

A differenza di un latch, un flip-flop non è mai trasparente. Il funzionamento di

un flip-flop è scandito non dal livello del segnale di clock, ma dai suoi fronti di

commutazione.

I flip-flop vengono creati a partire dai latch; ne esistono di vari tipi: il set reset,

il masterslave, l'edge triggered e il tipo D.

Esempio di Flip-Flop Set-Reset pag. 14

Il Flip-Flop Set-Reset è il più semplice dal punto di vista circuitale. Possiede,

come i latch, due ingressi Set-Reset, ed un ingresso per il clock.

Nei Flip-Flop Set-Reset non è possibile garantire che i segnali restino costanti

durante l’impulso di clock. Per risolvere questo problema vengono utilizzati i

Flip-Flop MasterSlave ed Edge Triggered.

FLIP- FLOP Master Slave

Essi vengono usati se i segnali in ingresso cambiano dopo il fronte di discesa

del clock, ovvero quando passa da 1 a 0.

FLIP- FLOP Edge Triggered

sono usati per campionare i segnali in ingresso durante il fronte di salita del

clock, ovvero quando passa da 0 a 1.

Per ultimo abbiamo il FLIP-FLOP D (Delay)

Ha un ingresso per il dato, un ingresso di sincronizzazione (clock) e un'uscita. In

corrispondenza del comando di clock, trasferisce l'ingresso in uscita e ve lo

mantiene fin quando non cambia il suddetto ingresso.

Nei flip-flop visti precedentemente, il valore può cambiare solo in

corrispondenza di un fronte di clock in base alla costruzione del flip-flop stesso.

Nei flip-flop di tipo D invece, poiché l'ingresso D è campionato ad ogni fronte

del clock, deve rimanere valido in un adeguato intervallo di tempo prima e

dopo il fronte del clock. Questi due intervalli di tempo, prendono il nome di

setup hold

tempo di (preparazione) e tempo di (mantenimento).

Registri pag. 15

Un registro è una piccola parte di memoria utilizzata per velocizzare

l'esecuzione dei programmi fornendo un rapido accesso ai valori usati più

frequentemente.

L’unità di elaborazione è strutturata attorno a register file(s). Un register file è

un insieme di registri che possono essere scritti o letti fornendo il numero del

registro interessato.

E’ possibile realizzare un register file attraverso un decodificatore per ogni

porta di scrittura o lettura ed una matrice di registri costruiti a partire da flip-

flop di tipo Delay.

L’operazione di scrittura necessita invece di tre ingressi: numero di registro,

dato da scrivere ed un segnale di clock. La porta in scrittura può venire

implementata usando un decodificatore per generare un segnale in grado di

determinare in quale registro scrivere.

Leggere un registro invece, ne lascia immutato lo stato; l’operazione di lettura,

pertanto, dato in input il numero associato al registro di interesse, restituirà

direttamente in output il contenuto del registro stesso. Le porte in lettura si

possono implementare con due multiplexer di ampiezza pari al numero di bit

nel register file. RAM

La RAM (Random Access Memory, memoria ad accesso casuale) è un tipo

di memoria volatile caratterizzata dal permettere l'accesso diretto a

qualunque indirizzo di memoria con lo stesso tempo di accesso. Si presenta in

genere sottoforma di moduli intercambiabili, al fine di permetterne la

sostituzione e l’ampliamento. E’ una memoria volatile: i dati vengono

mantenuti in memoria solo finché il modulo resta sotto tensione. Le

informazioni possono essere lette o scritte sotto forma di 0 e 1 logici. I suoi

registri si dividono in MAR (Memory Address Register) e MBR (Memory Buffer

Register). Il MBR contiene i dati da leggere/scrivere. Il MAR invece, è sede di

registri contenenti gli indirizzi delle celle di memoria presenti.

ALU

L’ALU (Unità Aritmetico-Logica) è una componente fondamentale della CPU,

della GPU e del DSP, ed è presente nell'architettura di Von Neumann.

ARITMETICA BINARIA

L'aritmetica binaria consiste nelle operazioni di somma, di sottrazione, di

divisione e di moltiplicazione tra numeri binari. L'aritmetica binaria si basa sugli

stessi principi dell'aritmetica decimale applicate su due cifre ( due bit ) anziché

dieci. pag. 16

Addizione binaria. L'addizione nel calcolo binario consiste nella somma dei

due bit con riporto di 1 quando la somma degli addendi è superiore a 1. La

seguente tabella mostra tutti i casi possibili:

Sottrazione binaria. La sottrazione nel calcolo binario consiste nella

differenza tra due numeri binari con eventuale prestito di 1 quando il

sottraendo è maggiore del minuendo. La tabella seguente mostra i vari casi

possibili:

Moltiplicazione binaria. La moltiplicazione nel calcolo binario è del tutto

identica alla moltiplicazione decimale. La tabella seguente mostra i vari casi

possibili:

Divisione binaria. La divisione nel calcolo binario è identica alla divisione decimale. La tabella

seguente mostra tutti i casi possibili. pag. 17

CELLE ADDIZIONATRICI

Una cella addizionatrice è un modulo combinatorio formato da 3 ingressi e 2

uscite. Riceve in input 2 iesimi bit di due parole binarie da sommare e il bit di

riporto della iterazione precedente. Alla prima iterazione il riporto vale 0.

CIRCUITI ALU

I circuiti ALU sono i protagonisti nel calcolo delle divisioni e delle moltiplicazioni,

grazie ai circuiti divisori e moltiplicatori.

Iniziamo col considerare il prodotto di un operando “c” di N cifre binarie per un

operando “b” rappresentato da un bit. Quindi:

Se b = 0 ⇒ c*b = 0; Se b = 1 ⇒ c*b = c

Dal punto di vista circuitale, potremmo implementare questo risultato mediante

N porte AND a 2 ingressi, ciascuna delle quali riceverà una cifra diversa da c e

l’unica di b.

Ogni funzione produrrà in uscita una cifra del prodotto.

Prendendo in considerazione il caso precedente, con un operando B espresso

su M bit. B può essere espresso come la somma della sua prima cifra da destra

con le successive generiche b , ciascuna delle quali moltiplicata per 2 , dove i

i i

individua l’indice delle M cifre, a partire da 0 fino ad M - 1.

M-1 2 1 0

B = 2 *b , … + 2 *b + 2 *b + 2 *b

M-1 2 1 0

Nel caso di M = 2 bit, quindi, ad esempio, il prodotto a*B può essere

decomposto in A*b +

0

A*b *2. L’operazione di moltiplicazione per 2 viene realizzata mediante lo

1

scorrimento della

rappresentazione del numero di una cifra verso sinistra.

Possiamo pertanto immaginare un circuito moltiplicatore tra due numeri di N

bit ed M bit come un circuito che fa solo uso di circuiti sommatori e funzioni

AND.

Un circuito moltiplicatore mantiene questa logica: consiste in un registro

prodotto inizializzato nei suoi LSB (Least Significant Bit) ovvero bit con peso

pag. 18

minore, con il moltiplicatore, un registro moltiplicando ed un sommatore,

comandati dalla unità di controllo.

L’unità di controllo (CU) esegue ciclicamente le seguenti operazioni:

Controlla se il LSB del registro prodotto (RP) è uno, somma agli MSB

 (Most Significant

Bit) ovvero bit con peso maggiore, il contenuto del registro moltiplicando;

Scorre il contenuto del registro prodotto sulla destra.

Il circuito divisore consiste di un registro resto/quoziente inizializzato con il

dividendo, un

registro divisore ed un sommatore, il tutto comandato dalla unità di controllo.

La divisione viene eseguita testando se il divisore è contenuto 0 o 1 volte nei

resti parziali man mano che si procede nell'operazione. Il test di contenimento

può essere effettuato sottraendo dal resto parziale il divisore: se il risultato è 1

allora il bit di quoziente è 1, altrimenti 0.

Modello di Von Neumann

Con l'espressione architettura di von Neumann ci si riferisce a uno schema di

progettazione di calcolatori elettronici che prende nome dal matematico John

von Neumann. Il modello di Von Neumann è quanto di più prossimo alla reale

struttura di un calcolatore; può essere considerato il modello base di tutti i

moderni calcolatori.

Lo schema di Von Neumann è costituito da 4 componenti fondamentali:

Memoria Centrale : Memorizza e fornisce l’accesso a dati e programmi.

 Unità Centrale di Elaborazione (CPU) : Esegue istruzioni per

 l’elaborazione dei dati e svolge anche funzioni di controllo.

Interfacce di Ingresso e Uscita (o periferiche).

 Bus: Trasferisce dati ed informazioni di controllo tra le componenti

 suddette. pag. 19

BUS

L’obbiettivo principale del bus è quello di permettere lo scambio di informazioni

tra le varie componenti funzionali del calcolatore. Esso dunque svolge alcune

funzioni:

Trasferimento dei dati e delle informazioni di controllo;

 -L’utilizzo di un BUS favorisce la modularità e l’espandibilità del

calcolatore;

Il bus di sistema assicura l’interconnessione tra gli elementi della

 macchina di Von Neumann;

Tutti i trasferimenti avvengono attraverso il BUS.

I programmi eseguiti dai calcolatori sono sequenze finite di istruzioni. Le

istruzioni da eseguire sono contenute in locazioni consecutive di RAM, a partire

da un indirizzo iniziale. Le istruzioni sono codificate da stringhe binarie di

lunghezza finita e costante.

E’ possibile distinguere le istruzioni in diverse categorie:

Accesso alla memoria, atte al trasferimento di informazioni tra RAM e

 CPU.

Aritmetico-logiche, che denotano operazioni di elaborazione combinatoria

 e logica sugli operandi.

Controllo di flusso, in grado di alterare l’ordine di esecuzione delle

 istruzioni stesse.

Input/output, idonee al trasferimento di informazioni sia in ingresso che in

 uscita.

La CU esegue ogni istruzione in una sequenza di microeventi, e dunque

microfasi successive che comportano fetch ed execute. pag. 20


PAGINE

31

PESO

1.45 MB

AUTORE

Koeda_s

PUBBLICATO

5 mesi fa


DESCRIZIONE APPUNTO

Tesina scritta da me per l'esame di ADcE. Piena di Esempi e riferimenti al programma del corso.

Indice:
- Codifiche
- Circuiti
- Moduli Combinatori
- Memorie
- ALU
- Architetture Von Neumann
- Architettura MIPS
- Input/Output
- BUS
- Prestazioni di un'architettura
- Gerarchie di Memoria
- Cenni di Programmazione Assembler

p.s. con questa tesina ho ottenuto una votazione di 28/30esimi (Questo giustifica il costo :P)


DETTAGLI
Corso di laurea: Corso di laurea in Scienze e tecnologie informatiche
SSD:
A.A.: 2017-2018

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher Koeda_s di informazioni apprese con la frequenza delle lezioni di Architettura dei calcolatori elettronici e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Basilicata - Unibas o del prof Carpentieri Marco.

Acquista con carta o conto PayPal

Scarica il file tutte le volte che vuoi

Paga con un conto PayPal per usufruire della garanzia Soddisfatto o rimborsato

Recensioni
Ti è piaciuto questo appunto? Valutalo!

Altri appunti di Architettura dei calcolatori elettronici

Riassunto Architettura dei calcolatori elettronici
Appunto
Appunti Architettura dei Calcolatori Elettronici
Appunto
Reti dei calcolatori - Appunti
Appunto
Reti dei calcolatori - Sintesi
Appunto