Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
12
Astrazione ............................................................. 3
Calcolatore ............................................................ 3
Istruzione .............................................................. 3
Operazione ............................................................ 3
Legge di Moor ....................................................... 3
Linguaggio ............................................................. 3
Linguaggio macchina ............................................. 3
Patch ..................................................................... 4
Interpretazione ..................................................... 4
Compilazione......................................................... 4
Macchina Virtuale ................................................. 4
Indipendenza dalla macchina ............................... 4
Relazione tra una macchina e il relativo linguaggio
macchina ............................................................... 4
*Cross compilatore ............................................... 5
La macchina .......................................................... 5
Hardware e Software ............................................ 6
Conversione tra basi ............................................. 6
Overflow................................................................ 7
Complemento a 2.................................................. 7
Scoprire Overflow ................................................. 7
Codice Eccesso ...................................................... 7
Numeri Reali.......................................................... 8
Virgola mobile ....................................................... 8
Numeri binari frazionari ........................................ 8
Lo standard IEEE 754............................................. 9
*Codice ASCII ........................................................ 9
*ISO 8859/1 o ISO Latin - 1 ................................... 9
Porta logica ........................................................... 9
Porta AND o Prodotto Logico .............................. 10
Porta OR o Somma Logica ................................... 10
Codice di Parita' pari .......................................... 10
Algebra di Boole .................................................. 10
Metodo di Sintesi Canonica ................................ 11
Il Tempo nelle porte logiche ............................... 11
Porta XOR o disuguaglianza ................................ 12
Cache ................................................................... 26
Il calcolatore pu essere descritto ( costruito) come una gerarchia di macchine astratte (virtuali):
Ogni livello maschera (nasconde) i dettagli dei livelli sottostanti
Utile per la descrizione: mi interessa capire il funzionamento del livello in esame, non dei sottostanti (ed
essere in grado di progettarlo).
Lastrazione utile anche in fase di costruzione:
Ad es. costruire una macchina powerpoint direttamente con transistor sarebbe di complessit
proibitiva
Soluzione:
1. Costruiamo una prima macchina (lelaboratore) in grado di eseguire istruzioni elementari.
2. Utilizziamo queste istruzioni elementari per scrivere un programma (il Sistema Operativo) in
grado di eseguire comandi pi complessi Il programmatore del S.O. non conosce i dettagli relativi
alla tecnologia realizzativa del microprocessore
3. Scriviamo programmi che si basano sulle funzioni messe a disposizione dal S.O. il programmatore
di powerpoint non conosce i dettagli costruttivi del S.O.
Un esecutore definito in base a tre elementi:
linsieme delle operazioni che capace di compiere;
linsieme delle istruzioni che capisce (sintassi);
quali operazioni associa ad ogni istruzione che riconosce (semantica).
Comando dato
Il linguaggio linsieme delle istruzioni (comandi) che un esecutore in grado di comprendere ed eseguire.
NB: nel descrivere un linguaggio non rilevante sapere come viene eseguita listruzione (cio ad es. a quale
sequenza di operazioni lesecutore ricorre)
Il linguaggio macchina il linguaggio compreso dal processore Ovviamente esistono tanti linguaggi
macchina quanti sono i processori: (Zilog Z80, DEC Alpha, Intel 8080, 80386, Pentium IV, ecc.)
Uninteressante eccezione: la compatibilit
Caratteristiche del linguaggio macchina:
Un apposito programma (interprete) esamina il programma PL1, scritto in linguaggio L1, e, istruzione per
istruzione, lo traduce nel linguaggio L0 e lo esegue.
Il calcolatore reale (macchina M0) riconosce programmi scritti nel linguaggio, L0 realizzare una macchina
reale capace di comprendere il linguaggio L1 sarebbe troppo costoso e/o poco efficiente
La compilazione o linterpretazione permettono di realizzare una macchina virtuale M1 capace di
comprendere il linguaggio L1. per rendere comoda ed efficiente la traduzione, la distanza tra L1 e L0 (e
quindi tra M1 e M0) non pu essere elevata; non detto che M1 sia la soluzione desiderata (potrebbe
essere ancora troppo distante dal livello umano). Cos si possono creare altre macchine virtuali fino a
raggiungere un livello di usabilit desiderato
Avendo costruito una macchina Mn che capisce il linguaggio Ln, dobbiamo disporre della capacit di
tradurre Ln in Ln-1.
Possono esistere pi macchine virtuali che mettono a disposizione dei linguaggi in grado di fungere da Ln1.
Esempio: stesso S.O. su HW diversi, stessa applicazione su S.O. diversi, ecc.
La figura precedente ammette ramificazioni!
*************************************************
*Per migliorare le prestazioni: i livelli 2 e 3 vengono sempre interpretati; i livelli 4 e 5 vengono (quasi)
sempre compilati.
**Per questioni di efficienza e di usabilit: i linguaggi dei livelli 2 e 3 sono in codifica binaria; i linguaggi
dei livelli 4 e 5 sono testuali (simbolici) cio composti da parole hanno un senso per luomo.
Per Passare al LV. 4 c una traduzione (assemblatore)
LV. 4 Linguaggio assemblatore
o Rappresentazione simbolica di uno dei livelli sottostanti.
I linguaggi binari dei livelli bassi sono difficili da usare per un programmatore (... errori
di trascrizione ...).
A ogni istruzione del linguaggio assemblatore corrisponde una istruzione del linguaggio
macchina.
o I programmi in linguaggio assemblatore vengono tradotti in un linguaggio di livello inferiore
e poi eseguiti. Il programma che esegue la traduzione si chiama assemblatore.
Per passare al LV. 5 c una traduzione (compilatore)
LV. 5 Linguaggi applicativi
o Linguaggi di alto livello
o Utilizzati per realizzare programmi
o La traduzione affidata a un compilatore, raramente a un interprete (Java)
Hardware
Software
oggetti tangibili che compongono un calcolatore
indipendentemente dal supporto su cui sono
(circuiti elettronici, memoria, dispositivi di I/O, ...).
memorizzati (HD, RAM, CD, ...).
Hardware e software sono logicamente equivalenti
qualsiasi operazione effettuata dal software pu essere inglobata nellhardware (hardware =
software pietrificato);
qualsiasi istruzione eseguita dallhardware pu essere simulata dal software;
la decisione di realizzare una funzione in hardware o in software dipende da parametri quali il
costo, la velocit, laffidabilit, la fre
La base 2 multipla della base 8 in particolare 8 = 23 quindi prendendo i numeri in binario a tre a
tre e trasformandoli si ottiene il numero in base 8:
Es. 001 111 011 111 100 vale in base 8 a 17374
La base 2 multipla della base 16 in particolare 8 = 24 quindi prendendo i numeri in binario a
quattro a quattro e trasformandoli si ottiene il numero in base 16:
Es. 0001 1110 1111 1100 vale in base 16 a 1EFC
Si definisce Overflow Quando le operazioni danno un risultato che richiederebbe pi bit di quanti c ne a
disposizione
In Linguaggio macchina loverflow segnalato con un apposito flag
Presi n bit scrivo un numero che occupa tutti i bit vale : a20+ b21+ c20+ d23+ .-n2n-1
Es. 4 bit 1 1 0 1 questo numero in base 10 equivale a 1*20+0*21+1*22 - 1*23
Se due numeri in complemento a due con lo stesso segno danno come risultato un numero di segno
opposto allora c stato un overflow
Esempio:
Con k=4 bit, la stringa 1101 denota il valore 4 + 1 = 5, poich il bit 3 che ha peso +8 viene
compensato dalla sottrazione di 23 =8.
I numeri negativi sono codificati con il MSB = 0.
o Infatti se
dk-1 = 0 la formula v = - 2k-1 + 2k-1*dk-1 + 2k-2*dk-2 +... + 21*d1 + 20*d0
o Si riduce a
v = - 2k-1 + 2k-2*dk-2 +... + 21*d1 + 20*d0
o Poich
2k-2*dk-2 +... + 21*d1 + 20*d0 < 2k-1, v<0
Esempio: Con k=4 bit, la stringa 0101 denota il valore -8 + 4 + 1 = -3.
Complessivamente si rappresenta lintervallo [-2k-1 .. 2k-1-1]
02 - Slide 70 p. 35
*************************************************
*************************************************
I circuiti digitali sono formati da componenti digitali elementari, chiamati porte logiche
Le porte logiche sono i circuiti minimi per lelaborazione di segnali binari
Lelemento funzionale fondamentale per la costruzione di porte logiche il transistor
La macchina a volte perde dati, per scoprire se c stata perdita di dati si aggiunge un bit che fa in modo
che i numeri di 1 contenuti in una stringa sono pari, se essi sono dispari allora c stata perdita di dati.
Componenti
Operatori Booleani
Regole di trasformazione ed equivalenza tra operazioni
Operatori
Inversione: NOT
Somma logica: OR
Prodotto logico: AND
Y+/YZ=Y+Z
(Y+Y/Z=Y)
Porta Nand:
Prima forma canonica: Presi gli uni della tavola di verit della funzione si scrivono come prodotti, si
sommano tutti i prodotti ottenuti
Seconda forma canonica: Come la prima per con gli 0 invece che con gli 1 e si scrive come somma poi si
moltiplicano tutte le somme
Principio di adiacenza: possibile la semplificazione solo tra due gruppi di bit che hanno tra loro un solo
bit di differenza
Mappa di Karnough:
Condizioni di indifferenza
Quando nella Mappa di Karnough esistono dei bit che possono anche essere delle X perch non sono
necessari
AND
OR
Multiplexer
Ingressi (Input): due gruppi
Ingressi di selezione n 1
Ingressi dati 2n
Uscite (Output): un uscita che viene selezionata dagli ingressi di selezione tre gli ingressi dati
Software
Hardware
Confrontatore:
Ingressi (Input): due gruppi di ingressi n 1
Uscite (Output): tre uscite:
A<B
A=B
A>B
Semisommatore
A 2 ingressi:
******************************************
o se Q = 1 il bistabile memorizza 1
o se Q = 0 il bistabile memorizza 0
La capacit di memoria del bistabile SR dunque di un bit (cio memorizza uno dei due possibili
valori per un bit)
Il bistabile D sincronizzato
Nel bistabile D sincronizzato:
Se il clock vale 0, lingresso D non ha alcun
effetto, e il bistabile mantiene memorizzato il
suo stato corrente
Se il clock vale 1, lingresso D efficace, e il
bistabile memorizza il valore logico (0 oppure
1) presente sullingresso D
Lo stato del bistabile pu cambiare solo
nellintervallo alto del clock
Flip-Flop Master-Slave
I flip-flop cosiddetti master-slave (o a memoria ausiliaria) sono molto usati per eliminare il fenomeno
della trasparenza, realizzano un ottimo compromesso tra complessit, costo ed efficacia.
Funzionamento normale:
o Il bistabile principale memorizza lingresso D
= D1 durante lintervallo alto del clock, lo
emette sulluscita Q1 e lo manda
allingresso D2 del bistabile ausiliario
o Durante lintervallo alto del clock, lo slave
mantiene luscita costante, essendo CK2
basso.
o Il bistabile ausiliario memorizza lingresso
D2 durante lintervallo basso del clock e lo
emette sulluscita Q2 = Q
o Dopo di che, durante lintervallo basso del clock, lo slave continua a leggere D2 e a propagarlo su
Q2, ma D2 = Q1 costante, perch CK1 basso.
o Dunque luscita generale Q pu variare solo nellistante del fronte di discesa del clock
Evitare la trasparenza:
o Nellintervallo basso del clock, il bistabile SLAVE in stato di trasparenza
o Nellintervallo alto del clock, il bistabile MASTER in stato di trasparenza
o Se lingresso D varia durante lintervallo alto del clock, il bistabile MASTER si comporta in modo
trasparente
o Ma il bistabile SLAVE no, perch il suo clock si trova nellintervallo basso
Un circuito digitale di tipo sequenziale se le sue uscite dipendono non solo dai valori correnti degli
ingressi, ma anche da (alcuni di) quelli passati Un circuito digitale sequenziale (o rete sequenziale)
pertanto dotato, in ogni istante di tempo, di uno stato che, insieme ai valori degli ingressi, ne
determina il comportamento futuro
Lo stato di un circuito sequenziale rappresenta, in un certo senso, una forma di memoria: esso contiene
una sorta di descrizione della storia passata del circuito stesso
Lelemento funzionale elementare per la realizzazione di circuiti sequenziali pertanto il bistabile, che
in grado di memorizzare un bit di informazione
Registro a scorrimento:
(Banco di registri)
(Memoria)
Spesso occorre utilizzare un certo numero di registri paralleli tutti aventi le stesse dimensioni e le stesse
funzioni
Invece di piazzare tanti registri paralleli indipendenti, allora preferibile organizzare i registri in una
struttura a vettore, chiamata banco dei registri
Il banco dei registri permette anche di ridurre i collegamenti necessari
in stato di bassa impedenza consente di avere in uscita o il livello alto (1) o il livello basso (0)
in stato di alta impedenza (Z) isola elettricamente luscita
luscita tri-state viene gestita da un apposito ingresso di controllo (Ouput Enable) che, se non
attivo, forza lo stato di alta impedenza
Organizzazione a matrice
Le memorie vengono viste come vettori (1dimensionali) di parole.
Ma le memorie di elevata capacit possono
in realt avere una struttura interna a
matrice (2-dimensionale), allo scopo di
ridurre i collegamenti interni. In tal caso
sono di solito presenti due comandi aggiuntivi (RAS e CAS), per laccesso alla memoria
Per ottenere memorie di capacit elevata, occorre aggregare pi componenti di memoria, realizzando un
banco di memoria. I banchi di memoria hanno una struttura a matrice di chip. Per aumentare la lunghezza
della parola di memoria, si compone una riga di chip di memoria, da usare in parallelo. Per aumentare il
numero di parole della memoria, si compone una colonna di chip di memoria, da usare in esclusione.
Rom
Specifiche:
Memoria ROM (Read Only Memory), realizzata come matrice di transistor
Capacit grande-grandissima
Tempo di accesso medio
Funziona in sola lettura
Persistente: il contenuto permane anche in assenza di alimentazione
Usi: per memorizzare programmi permanenti, non modificabili; grandi volumi di produzione
Memoria Flash
Specifiche:
Capacit e tempo simili alla DRAM (o solo di poco inferiori)
Funziona in lettura e scrittura (la scrittura per a blocchi di byte)
Persistente: il contenuto permane anche in assenza di alimentazione
Usi: dati multimediali (p. es. immagini statiche, sequenze video), programmi fissi ma
periodicamente aggiornabili
Tabella Riassuntiva
Le gerarchie di memoria
Affinch si possa sfruttare la potente CPU a un prezzo accessibile, invece che realizzare una DRAM molto
potente e molto costosa, si realizzano memorie intermedie pi piccole e veloci
Il principio di localit
Localit: in ogni istante di tempo un programma accede a una parte relativamente piccola del suo spazio di
indirizzamento
Localit temporale: se un dato viene referenziato in un dato istante, probabile che lo stesso dato
venga nuovamente richiesto entro breve
Localit Spaziale: Se un dato viene utilizzato in un dato istante, probabile che dati posizionati in
celle di memoria adiacenti vengano anchessi richiesti (entro breve)
Negli ultimi 15 anni, le tecniche di miglioramento delle prestazioni nellhardware si sono basate sul
principio di localit
Cache Set-Associativa
Identificazione di un blocco
Indirizzamento diretto:
Determina posizione
Confronta etichetta trovata con quella cercata etichetta e verifica bit valido
Completamente associativo:
Confronta etichetta in ogni blocco e verifica bit valido
Set-associativo:
Identifica insieme
Confronta etichette dellinsieme e verifica bit valido
Write back: Linformazione viene scritta solo nel blocco di livello superiore. Il livello inferiore viene
aggiornato solo quando avviene la sostituzione del blocco di livello superiore.
Memoria virtuale
Sfruttando sempre il principio della localit si pu fare in modo che la CPU veda uno spazio (codice +
dati) per ogni programma pi grande della memoria disponibile.
Parte del programma sta su disco Viene caricato in memoria quando necessario, Stesso principio della
memoria cache, ma tra memoria e disco
Progettiamo un processore a ciclo singolo Cio che esegue una istruzione in un (solo) ciclo di clock
Vantaggi
Svantaggi
semplicit di progettazione
CPI basso
Passo 1
Formato delle istruzioni
Le istruzioni sono lunghe 32 bit:
Passo 2
Requisiti per lesecuzione delle istruzioni
Memoria
o Istruzioni
o Dati
* Separate, perch
dobbiamo leggere
listruzione da eseguire e
leggere o scrivere dati nello stesso ciclo di clock
*Temporizzazione
Estensione (in segno o zero)
Somma, sottrazione, or bitwise di registri o di immediato (esteso a 32 bit)
o Il confronto richiesto da BEQ una sottrazione di cui guardiamo se il risultato nullo
Somma del valore 4 o di un immediato esteso e shiftato al PC
Fetch:
0. PCout, MARin, read, select 4, add, Zin
1. Zout, PCin, Vin, WMFC
2. MDRout, IRin, goto op_code