a cura di
Gerardo BONELLI
52228
pag. 1
➔ Introduzione 4
➔ Codifiche 4
✓ Codifica binaria
✓ Conversione decimale binario
✓ Conversione binario decimale
✓ Codifica in modulo e segno
✓ Codifica in complemento a due
✓ Notazione scientifica
✓ Standard IEEE 754
✓ Codifica esadecimale
✓ Codifica alfanumerica ASCII
➔ Circuiti 8
✓ Elementi di base dell’algebra di commutazione
✓ Teorema fondamentale dell’algebra di commutazione
✓ Teorema fondamentale duale
➔ Moduli combinatori 11
✓ Codificatore
✓ Decodificatore
✓ Multiplatore
✓ Demultiplatore
✓ ROM
✓ PLA
➔ Memorie 13
✓ Latch
✓ Flip Flop
✓ Registri
✓ Ram
➔ ALU 17
✓ Aritmetica binaria
● Addizione
● Sottrazione
● Moltiplicazione
● Divisione
✓ Celle addizionatrici
✓ Operazioni effettuate dai circuiti ALU
➔ Architettura di Von Neumann 19
✓ Istruzioni
✓ Fetch ed execute
Cenni di multiprogrammazione
➔ Architettura MIPS 21
✓ Assembler MIPS
✓ Planimetria
➔ Input/output 24
✓ Tipologie di I/O
✓ Esempi di periferiche
➔ BUS 26
✓ BUS processore-memoria
✓ BUS di I/O
✓ BUS backplane
✓ BUS sincroni e asincroni pag. 2
✓ Tecniche di arbitraggio
Centralizzato parallelo
Distribuito per autoselezione
Recupero delle collisioni
Concatenamento a festone
➔ Prestazioni di un’architettura 29
✓ ANALISI DELLE PRESTAZIONI
✓ CPI
✓ MIPS
✓ MFLOPS
✓ OVERCLOCKING
➔ Gerarchie di memoria 30
➔ Cenni di Programmazione Assembler 31
Introduzione
L’Architettura dei Calcolatori Elettronici è la disciplina che studia, idea e
progetta calcolatori
elettronici più o meno complessi, in maniera da ottenere la massima resa
possibile con una
spesa sempre più contenuta. La composizione di un calcolatore elettronico si
basa sul modello di Von Neumann e quindi su 4 componenti fondamentali quali
CPU, RAM, Input e Output.
pag. 3
Chi si occupa di architettura dei calcolatori ha il compito di costruire sistemi di
elaborazione di diversa complessità (da una semplice scheda elettronica a un
complesso sistema con grossa potenza di calcolo) mettendo insieme questi
componenti elementari.
Un problema assai discusso agli albori dei calcolatori elettronici furono le
modalità di
programmazione. Nel 1944 Von Neumann si unì al progetto ENIAC proprio con
l’intento di semplificare le modalità di programmazione, fissando le basi dei
calcolatori odierni. Oggi, per poter gestire l’hardware di un calcolatore bisogna
conoscere il suo linguaggio; ogni calcolatore è infatti in grado di comprendere
un unico set di istruzioni, e sulla base del set di istruzioni definiamo
architetture di varia natura. Il software eseguibile su un dato calcolatore non
può essere eseguito su un calcolatore che non è in grado di interpretare lo
stesso set di istruzioni; il passaggio di Apple da processori PowerPC a Intel ha
reso inutilizzabile tutto il software scritto per hardware precedente, tanto per
fare un esempio tangibile. Nonostante cio’, tutti i linguaggi assembler sono
relativamente simili, poiché le architetture si basano sugli stessi principi di base
e alcune operazioni devono poter essere eseguite da ogni calcolatore.
Prenderemo per lo più in esame il set di istruzioni che proviene da processori
MIPS. Codifiche
La matematica alla base di un calcolatore elettronico si basa sul sistema
sistema numerico posizionale
numerico binario. Si tratta di un a base 2, che
ammette solo due simboli, quali “0” ed “1”. E’ sensibilmente diverso rispetto al
unità, decine, centinaia,
sistema decimale1, pertanto al posto di (...) avremo
unità, duine, quattrine, ottine, (...), e potranno assumere solo valori {0,1}.
Codifica Binaria
La Codifica Binaria è il più semplice sistema di codifica che utilizza l’alfabeto
binario.
bit
Un di memoria è il più piccolo spazio di memoria presente all’interno di un
variabile binaria booleana,
calcolatore. Può ospitare una o ovvero una variabile
che possiede due soli stati (0 ed 1). Utilizzando K bit di memoria, si ottengono 2
byte.
k combinazioni differenti; il susseguirsi di 8 bit forma 1 Sulla base di ciò,
si è arrivati a considerare il bit ed il byte, con i corrispondenti multipli, come
unità di misura dello spazio occupato da una certa informazione.
multipli fondamentali
Nome Simbolo Multiplo Nome Simbolo Multiplo
3 10
kilobyte kB 10 kibibyte KiB 2
6 20
megabyte MB 10 mebibyte MiB 2
9 30
gigabyte GB 10 gibibyte GiB 2 pag. 4
12 40
terabyte TB 10 tebibyte TiB 2
Conversione Decimale-Binario
La conversione da Decimale a Binario si effettua mediante ripetute divisioni per
due,
considerando solo il resto (1 o 0). Il corrispondente numero in forma binaria
sarà dato dal susseguirsi di tutti i resti ottenuti, a partire dall’ultimo.
Per esempio: Conversione Binario-Decimale
Per convertire un numero binario in un numero decimale basta sommare fra
loro le singole cifre ciascuna moltiplicata per il proprio peso.
Per esempio:
Abbiamo dunque:
1 x 32 + 0 x 16 + 1 x 8 + 1 x 4 + 0 x 2 + 1 x 1 = 45
Ovviamente il procedimento può essere reso più rapido sommando solo i bit
uguali a 1 (infatti il contributo dei bit zero è nullo).
Codifica in modulo e segno
Nella codifica numerica è opportuno indicare tanto il modulo del numero di
codifica in modulo e segno
interesse quanto il suo segno. La permette di
conseguire quest’obiettivo. La tecnica prevede che il primo bit venga utilizzato
per indicare il segno; mentre i restanti bit per il modulo. pag. 5
Questa tecnica prevede che venga utilizzato il primo bit del dato per indicare il
segno (0 se
positivo, 1 se negativo) e i restanti bit per codificare il valore assoluto.
Prendiamo il valore precedentemente calcolato 101101 . Con la codifica in
2
modulo e segno è necessario aggiungere un bit sulla sinistra: se per esempio
volessimo rappresentare 45 , con questa codifica avremmo: 1101101 . La
10 2
cifra in rosso rappresenta il segno.
Codifica in complemento a due
Con il complemento a due, il bit iniziale può avere un valore positivo oppure
negativo, e da questo deriva il fatto che tutti i numeri che cominciano con un
"1" sono numeri binari negativi, mentre quelli che iniziano con "0" sono numeri
binari positivi. Attraverso questo metodo è possibile avere un'unica
rappresentazione dello zero e poter eseguire efficacemente le addizioni o le
sottrazioni sempre avendo il primo bit che ci indicherà il relativo segno.
Si vuole rappresentare il numero -5 su 6 bit.
10
Iniziamo col rappresentare il modulo di 5.
5 = 000101
10 2
Calcoliamone il complemento:
¬ 000101 = 111010
Aggiungiamo 1
111010 + 000001 = 111011 = -5 10
Notazione Scientifica
La notazione scientifica è un modo conciso di esprimere i numeri reali
utilizzando le potenze intere della base utilizzata per la notazione posizionale. Il
principale vantaggio è quello di permettere di utilizzare grandezze molto grandi
o molto piccole senza memorizzare lunghe sequenze di 0, infatti viene
considerata una sola cifra intera diversa da 0, seguita dalla parte decimale del
numero di interesse, il tutto moltiplicato per 10 K , con K intero che può essere
sia positivo che negativo. Standard IEEE 754
Lo standard IEEE per il calcolo in virgola mobile è lo standard più diffuso
nel campo del calcolo automatico. Questo standard definisce il formato per la
rappresentazione dei numeri in virgola mobile ed un set di operazioni
effettuabili su questi. Specifica inoltre quattro metodi di arrotondamento e ne
descrive cinque eccezioni.
Un numero in virgola mobile, secondo lo standard IEEE è rappresentato su
parole di 32, 64 o 128 bit divisi in tre parti: pag. 6
s;
un bit di segno
e;
un campo di esponente
m;
un campo di mantissa
Il numero cercato, con la codifica secondo lo standard IEEE 754 sarà dato dalla
giustapposizione dei tre campi.
Codifica Esadecimale
Il sistema numerico esadecimale (spesso abbreviato come esa o hex) è
un sistema numerico posizionale in base 16, cioè che utilizza 16 simboli invece
dei 10 del sistema numerico decimale tradizionale. Per l'esadecimale si usano
in genere simboli da 0 a 9 per le prime dieci cifre, e poi le lettere da A a F per le
successive sei cifre, per un totale di 16 simboli.
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F
Codifica ASCII Codice Standard
ASCII (American Standard Code for Information Interchange,
Americano per lo Scambio di Informazioni ) è un codice per la codifica di
caratteri.
La codifica ASCII di base rappresentava i caratteri su 7 bit (cioè 128 caratteri
possibili, da 0 a 127). pag. 7
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),
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
-
Tesina Architettura dei calcolatori
-
Tesina di Architettura dei Calcolatori Elettronici
-
Tesina Architettura dei calcolatori elettronici
-
Riassunto esame Calcolatori Elettronici, Prof. Colombo Carlo, libro consigliato Architettura e organizzazione dei c…