calcolatori elettronici e sistemi operativi -...
Post on 15-Feb-2019
225 Views
Preview:
TRANSCRIPT
1
Calcolatori Elettronici e Sistemi Operativi
modulo Calcolatori Elettronici
Prof.ssa Laura Tarantino
Dipartimento di Ingegneria Elettrica e dell’Informa zione
Lezione 1Introduzione al modulo
L. Tarantino – a.a. 2008/2009 3
Organizzazione del modulo (1)LIBRO DI TESTO:
Patterson, HennessyStruttura, organizzazione e progetto dei calcolatoriSeconda edizione Zanichelli
Si possono usare anche l’edizione precedente italiana Jackson (ma non la 1ª edizione Zanichelli):
Patterson, HennessyStruttura, organizzazione e progetto dei calcolatoriJackson libri (disponibile in biblioteca)
o le edizioni originali:
titolo originale Computer organization and design - 2nd o 3rd edition
editore originale Morgan Kaufmann
2
L. Tarantino – a.a. 2008/2009 5
Organizzazione del modulo (2)
ALTRO MATERIALE DIDATTICO
lucidi in formato elettronico su www.didattica.univaq.it
esercizi svolti e raccolta di domande (verranno caricati)
L. Tarantino – a.a. 2008/2009 7
Informazioni sugli esami
� Modalità di esame
— L'esame prevede solo una prova scritta (comprende sia esercizi che domande teoriche)
3
L. Tarantino – a.a. 2008/2009 8
Finalità del modulo Calcolatori Elettronici
� Il modulo si propone di fornire le nozioni necessarie alla comprensione del funzionamento dei calcolatori.
� A tale scopo vengono introdotti:
— l'aritmetica dell'elaboratore
— il linguaggio dell'elaboratore
— la CPU
— il sistema di memoria
— cenni su periferiche e interconnessioni
� Gli argomenti vengono trattati sia da un punto di vista metodologico generale, che con riferimento a processori reali diffusi sul mercato.
L. Tarantino – a.a. 2008/2009 9
Informatica
informazione automatica
rappresentazioneconservazioneelaborazione
relazionetra datideleghiamo uno strumento
Trattamento automatico dell’informazione
deve esistere un linguaggio comune tra delegante e delegato
4
L. Tarantino – a.a. 2008/2009 10
� lo stesso concetto può essere rappresentato in modi diversi:
— se posso scrivere: cinque
5
— se ho dei sassolini
Rappresentazione dei dati (1)
La rappresentazione dipende dal supporto
L. Tarantino – a.a. 2008/2009 11
Rappresentazione dei dati (2)
Alfabeto + interpretazione+ regole di composizione
sintassi e semantica
� In ogni caso abbiamo bisogno di:
5
L. Tarantino – a.a. 2008/2009 13
Requisiti del supporto
il supporto deve poter assumere
configurazioni differenti
L’informazione consiste indifferenze che fanno la differenza (Edward Tufte)
Il trattamento prevede la memorizzazione
il supporto deve poter conservare le
configurazioni nel tempo(es., la carta è
adeguata, l’aria no)
L. Tarantino – a.a. 2008/2009 14
Requisiti della codifica (1)
� La costruzione di una codifica richiede la definizione di una corrispondenza biunivoca tra:
— un insieme di partenza (gli oggetti da rappresentare) e
— un insieme di arrivo (le configurazioni del supporto)
per cui:
— ad oggetti distinti corrispondono configurazioni distinte,
— data una configurazione, si individua in modo univoco l’oggetto rappresentato
6
L. Tarantino – a.a. 2008/2009 15
Requisiti della codifica (2)
� Una codifica che permette di riconoscere distinzioni èclassificatoria.
� Ai fini del calcolo occorre anche poter:
— stabilire relazioni d’ordine (“questo valore è maggiore di quello”)
— stabilire metriche (“questo dista TOT da quest’altro”)
L. Tarantino – a.a. 2008/2009 16
La rappresentazione nel sistema di calcolo (1)
� Il supporto è basato su circuiti elettronici
� Abbiamo a che fare con grandezze elettriche (tensione e corrente)
Se vogliamo rappresentare dati numerici possiamo decidere di associare le cifre con opportuni valori
delle grandezze elettriche
7
L. Tarantino – a.a. 2008/2009 17
Osservazione
� si parte con lo studio della codifica di dati numerici
� per qualunque insieme di dati non numerici da rappresentare può essere individuata una codifica numerica
Esempi
� i giorni della settimana
(lun mar mer gio ven sab dom ) -> (1 2 3 4 5 6 7 )
� i mesi dell’anno
(gen feb mar … dic ) -> (1 2 3 … 12 )
L. Tarantino – a.a. 2008/2009 18
Rappresentazione nel sistema di calcolo (2)
01
23
45
67
89
Svantaggi
� nessun sistema fisico può essere isolato dall’ambiente
� sbalzi di tensione/corrente (rumore) possono alterare lo stato del sistema portandolo in una fascia diversa da quella corretta
� ammettere tutti i valori di V nel range previsto impedisce di identificare il rumore0
Vmax
Approccio banale
8
L. Tarantino – a.a. 2008/2009 19
Rappresentazione nel sistema di calcolo (3)
Obiettivo
� minimizzare la probabilità di errore
In altre parole
� minimizzare il numero di fasce nel range prescelto
Prevedo DUE fasce perché deve esistere distinzione
L. Tarantino – a.a. 2008/2009 20
Rappresentazione nel sistema di calcolo (4)
0
Vmax
0
1
Componenti digitali Rappresentazione binaria≡
� a parità di range di tensione col caso precedente, si divide l’intervallo in due sole fasce
� si impone che i soli valori leciti siano quelli prossimi a 0 e a Vmax (componenti digitali)rumore
Vantaggio� si può identificare il rumore ed
eliminarlo con buona probabilità di correttezza
9
L. Tarantino – a.a. 2008/2009 21
Rappresentazione binaria (1)
Alfabeto = { 0, 1 }
cifra binaria (Binary digIT = BIT)
BIT = unità di misura della quantità di informazione
Definizione: il bit è la quantità di informazione che si acquisisce quando si conosce quale tra due eventi equiprobabili e
indipendenti tra loro si è verificato o è stato scelto
in senso lato, un bit è una grandezza fisica che può assumere solo due valori quindi è la quantità elementare di informazione manipolabile da un calcolatore DIGITALE
L. Tarantino – a.a. 2008/2009 22
Rappresentazione binaria (2)
� con 1 bit posso distinguere tra 2 oggetti distinti:
0 1
� con 2 bit posso costruire 4 configurazioni distinte:
00 01 10 11
� con 3 bit posso costruire 8 configurazioni distinte:
000 001 010 011 100 101 110 111
10
L. Tarantino – a.a. 2008/2009 23
Rappresentazione binaria (3)
n bit0 0 1 1 0 1.. .. .. ..
bit menosignificativo
bit piùsignificativo
con n bit posso costruire 2n configurazioni distinte
� generalizzando:
Viceversaservono log2 m bit per distinguere tra m oggetti distinti
L. Tarantino – a.a. 2008/2009 24
Codifica binaria dei primi 10 numeri interi
Osservazione
� per semplicità gli zeri in testa sono omessi
11
L. Tarantino – a.a. 2008/2009 25
Flusso tradizionale dell’informazione
ambiente
ElaborazioneControllo
Trasferimento
Memorizzazione
L. Tarantino – a.a. 2008/2009 26
La macchina di Von Neumann (1)
Sistema di calcolo
Dispositivi
Input
Output
Memoria(passiva)
Processore(attivo)
Central Processing Unit (CPU)
12
L. Tarantino – a.a. 2008/2009 27
La macchina di Von Neumann (2)
Sistema di calcolo
MemoriaDispositivi
Input
Output Unità dicalcolo
Processore
Unità dicontrollo
L. Tarantino – a.a. 2008/2009 28
La memoria - generalità
� Funzioni:— Supporto alla CPU: deve fornire dati ed istruzioni il più
rapidamente possibile— Archiviazione: deve consentire di archiviare dati e
programmi, garantendone la conservazione e la reperibilità anche dopo elevati periodi di tempo
� Esigenze diverse:— velocità per il supporto alla CPU— non volatilità e capacità per l’archiviazione
� Tecnologie diverse:— elettronica: veloce, ma costosa e volatile— magnetica e ottica: non volatile ed economica, ma
molto lenta
13
L. Tarantino – a.a. 2008/2009 29
La macchina di Von Neumann (3)
Sistema di calcolo
MemoriaprincipaleDispositivi
Input
Output Unità dicalcolo
Processore
Unità dicontrollo
Memoriasecondaria
L. Tarantino – a.a. 2008/2009 30
Conservare in memoria - i componenti
� la memoria principale è una successione ordinata di componenti digitali che possono assumere uno tra due valori e conservarlo stabile nel tempo finché c’èalimentazione
� ogni componente elementare della memoria può rappresentare e conservare un bit
14
L. Tarantino – a.a. 2008/2009 31
Conservare in memoria - le celle
� i bit nella memoria sono raggruppati in celle— tutte le celle della memoria sono composte dallo
stesso numero di bit— se una cella è composta da k bit può assumere 2k
configurazioni distinte8 bit
Esempio
� se una cella è composta da 8 bit (che costituiscono un byte) può assumere 28 = 256 configurazioni distinte
� possiamo ad esempio rappresentare i numeri assoluti nell’intervallo [0, 255]
L. Tarantino – a.a. 2008/2009 32
Conservare in memoria - gli indirizzi (1)
� bisogna poter accedere a celle selezionate, e non casualmente
— ogni cella della memoria viene associata ad un identificatore univoco detto indirizzo della cella
— se la memoria contiene N celle gli indirizzi vanno da 0 a N-1
Esempio
� se abbiamo una memoria con 8 parole gli indirizzi vanno da 0 a 7
0
1
2
3
4
5
6
7
8 bit
15
L. Tarantino – a.a. 2008/2009 33
Conservare in memoria - gli indirizzi (2)
� la cella è la più piccola unità di memoria indirizzabile
� nella maggior parte dei calcolatori una cella è composta da un byte (8 bit)
� si parla quindi di memoria indirizzabile al byte
L. Tarantino – a.a. 2008/2009 34
Conservare in memoria - le parole
� per la maggior parte delle elaborazioni reali il potere rappresentazionale del byte (255 configurazioni) èinsufficiente
� i byte vengono quindi raggruppati per formare stringhe di bit più lunghe, dette parole
— tutte le parole della memoria sono composte dallo stesso numero di byte
— nei calcolatori attuali le parole sono composte da 32 bit (4 byte)
32 bit
16
L. Tarantino – a.a. 2008/2009 35
Terminologia - unità di misura (1)
� bit (quantità minima di informazione)
� 8 bit = 1 byte
� 16 bit = 2 byte = mezza parola
� 32 bit = 4 byte = 1 parola
� 64 bit = 8 byte = parola doppia
L. Tarantino – a.a. 2008/2009 36
Terminologia - unità di misura (2)
� 1 kilobyte = 210 byte = 1024 byte
� 1 megabyte = 220 byte = circa un milione di byte
� 1 gigabyte = 230 byte = circa un miliardo di byte
� 1 terabyte = 240 byte = circa mille miliardi di byte
17
L. Tarantino – a.a. 2008/2009 37
Conservare in memoria - indirizzi (3)
� l’indirizzo della parola è l’indirizzo di uno dei suoi byte
0
4
8
12
...
32 bit
L. Tarantino – a.a. 2008/2009 38
Conservare in memoria - indirizzi (4)
MSB(most significant byte)
LSB(least significant byte)
little endian
big endian
3 2 1 0
0 1 2 3
Little Endian: la parola ha l’indirizzo del byte meno significativo(Intel 80x86)
Come vengono numerati i byte di una parola?
Big Endian : la parola ha l’indirizzo del byte più significativo(IBM/Motorola PowerPC, Sparc)
18
L. Tarantino – a.a. 2008/2009 39
Conservare in memoria - indirizzi (5)
� Gli indirizzi in memoria sono codificati in binario
� Con k bit si possono costruire 2k configurazioni diverse, quindi con un indirizzo da k bit si possono indirizzare:— 2k byte, ossia— 2k/4 = 2k-2 parole (ricorda: 1 parola = 4 byte)
Esempio
� con 8 bit si possono indirizzare— 28 = 256 byte, ossia— 28/4 = 26 = 64 parole
L. Tarantino – a.a. 2008/2009 40
Organizzazione della memoria
0 1 2 3
Allineata
NonAllineata
Allineata se tutte le parole iniziano ad indirizzi che sonomultipli di 4
19
L. Tarantino – a.a. 2008/2009 41
Elaborare
� attuare una procedura che genera nuovi dati sulla base di dati di partenza, passo dopo passo
Tipiche attività elementari di un passo della procedura
� alcuni dati di partenza vengono:— letti in memoria— portati all’interno della CPU— usati come operandi da parte dell’unità di calcolo
� il risultato prodotto viene scritto in memoria
L. Tarantino – a.a. 2008/2009 42
Linguaggio macchina
� Linguaggio direttamente comprensibile ed eseguibile dall’elaboratore, senza nessuna traduzione:
— istruzioni ed operandi presenti in memoria— tutto è espresso in forma binaria
difficile da usare
20
L. Tarantino – a.a. 2008/2009 43
Linguaggio macchina (esempio “giocattolo”)
00
01
10
11
8 bit
+ 00- 01* 10/ 11
Op Codice
a = b + c
00 10 01
Cod Ris 1° op 2° op
2 2 2 2
0 0 0 0 1 0 0 1
0 0 0 0 1 0 0 1
L. Tarantino – a.a. 2008/2009 44
Nelle macchine reali
� Memoria più capacees., 256 MB = 256 220 B = 256 220 B / 4B par. = 64 220 par.
� Istruzioni più complesserappresentazione delle “funzioni”e degli operandi
� Formato istruzione:— a lunghezza fissa (es., una parola)— a lunghezza variabile (da 1 a n byte, a seconda della
natura dell’istruzione)
� Programmi lunghi— occupano una sequenza di locazioni consecutive della
memoria— il processore esegue una istruzione alla volta
21
L. Tarantino – a.a. 2008/2009 45
Programmain memoria
Esecuzione di un’istruzione - Ipotesi
.
.
.
i
1. formato istruzione a lunghezza fissa
2. lunghezza dell’istruzione pari ad una parola
l’esecuzione dell’istruzione all’indirizzo i sarà seguita dall’esecuzione dell’istruzione
all’indirizzo i+4
n istruzioni =
n parole consecutive
1 parola = 4 byte
L. Tarantino – a.a. 2008/2009 46
Esecuzione di un’istruzione - fasi
� In tutte le macchine l’esecuzione di una singola istruzione si basa sulla ripetizione di 3 fasi:
— Prelievo (FETCH)acquisizione dell’istruzione dalla memoria
— Decodifica del “codice operativo” (DECODE)identificazione dell’istruzione tra quelle che compongono il linguaggio
— Esecuzione (EXECUTE)effettuazione delle operazioni corrispondenti all’istruzione, incluso l’eventuale recupero dalla memora degli operandi
22
L. Tarantino – a.a. 2008/2009 47
Programmain memoria
Fetch - decode - execute (1)
.
.
.
i
1. prelievo ( fetch ) dell’istruzione di indirizzo i
2. decodifica ( decode ) dell’istruzione
3. esecuzione ( execute ) dell’istruzione
4. predisponi per il prelievo della prossima istruzione e torna al passo 1
unità di controllo
unità di calcolo
unità di controllo memoria+
unità di controllo
L. Tarantino – a.a. 2008/2009 48
Fetch - decode - execute (2)
Programmain memoria
.
.
.
i
1. prelievo ( fetch ) dell’istruzione di indirizzo i
4. predisponi per il prelievo della prossima istruzione e torna al passo 1
i Program Counter (PC) come un puntatore!
Instruction Register (IR)
nel processore
IR ←←←← Mem [PC]
PC ←←←← PC + 4 “quasi sempre”
23
L. Tarantino – a.a. 2008/2009 49
Terminologia - tipi di linguaggi di programm.
Linguaggio a basso livello
� linguaggio legato ai dettagli dell’architettura hw
Linguaggio ad alto livello
� linguaggio orientato all’utente informatico: il programmatore può astrarre dai dettagli dell’architettura e esprimere gli algoritmi in modo simbolico
L. Tarantino – a.a. 2008/2009 50
Nella comunicazione reale ..
� se due soggetti parlano due linguaggi diversi è necessario che un interprete che conosce entrambi i linguaggi funga da intermediario
Soggetto1Soggetto2
da Soggetto1a Intermediario
da Intermediarioa Soggetto2
24
L. Tarantino – a.a. 2008/2009 51
Il traduttore nella comunicazione col sistema
� le istruzioni hanno una forma numerica
� un programma in linguaggio macchina è composto da una sequenza di stringhe di bit posta in memoria
� si può immaginare di avere un programma (traduttore) che generi questa sequenza a partire da un testo scritto in un linguaggio diverso (posto che siano note sintassi e semantica dell’altro linguaggio)
L. Tarantino – a.a. 2008/2009 52
Traduttori
Traduttore EsecutoreP(LM)P(L)dati output
datiinput
Elaboratore
P(L) dati output
datiinput
25
L. Tarantino – a.a. 2008/2009 53
Terminologia - Due tipi di traduttori
Compilatori
� accettano in ingresso l’intero programma e producono in uscita la rappresentazione dell’intero programma in linguaggio macchina
Interpreti
� traducono ed eseguono direttamente ciascuna istruzione del programma sorgente, una dopo l’altra
L. Tarantino – a.a. 2008/2009 54
Gerarchia di livelli (1)
� se i due linguaggi sono troppo diversi è complicato costruire il traduttore
� si preferisce allora progettare linguaggi “intermedi” e prevedere una successione di traduzioni da un linguaggio ad un altro non troppo lontano da quello di partenza
26
L. Tarantino – a.a. 2008/2009 55
Gerarchia di livelli (2)
LM
T(LM)
L1
T(L1)
L2
.
.
Macchina M con linguaggio macchina LM
Macchina M1 conlinguaggio L1
Macchina M2 conlinguaggio L2
Macchina Mn conlinguaggio Ln
Livello 0
Livello 1
Livello 2
Livello n
L. Tarantino – a.a. 2008/2009 56
Livelli di astrazione (1)temp = v[k];
v[k] = v[k+1];
v[k+1] = temp;
lw $t0, 0($2)lw $t1, 4($2)sw $t1, 0($2)sw $t0, 4($2)
0000 1001 1100 0110 1010 1111 0101 10001010 1111 0101 1000 0000 1001 1100 0110 1100 0110 1010 1111 0101 1000 0000 1001 0101 1000 0000 1001 1100 0110 1010 1111
Linguaggio adalto livello (es., C)
Linguaggio assemblativo
Linguaggio macchina
Segnali di controllo
Compilatore
Assemblatore
Interpretazionedella macchina
software
HW
27
L. Tarantino – a.a. 2008/2009 57
Livelli di astrazione (2)
Linguaggio ad alto livello
� il programmatore può astrarre dai dettagli dell’architettura e esprimere gli algoritmi in modo simbolico
Linguaggio assemblativo
� è una forma simbolica del linguaggio macchina
Linguaggio macchina
� è fortemente legato ai dettagli dell’architettura hw
L. Tarantino – a.a. 2008/2009 58
Livelli di astrazione (3)
CompilatoriSistema
operativo(es., Windows)
Software applicativo
Hardware
Software Assemblatore
28
L. Tarantino – a.a. 2008/2009 59
Terminologia -Tassonomia dei sist. informatici
Classe Applicazione Utenti Software
PC Elaborazioni Piccole imprese Preconfezionatopersonali Privati
Workstation Elaborazioni Piccole imprese Preconfezionato ografiche - CAD Ambienti di ricerca Sviluppato ad hoc
Minicalcolatore Elaborazioni Medie e grandi Preconfezionatolocali imprese
Mainframe Elaborazioni Grandi imprese Sviluppatodi massa internamente
Supercalcolatore Elaborazioni di Gruppi di ricerca Sviluppato ad hocelevata complessità
top related