informaticab ingegneria+elettrica+ · dipartimento+di+elettronica,informazione+e+bioingegneria+...
TRANSCRIPT
DIPARTIMENTO DI ELETTRONICA, INFORMAZIONE E BIOINGEGNERIA
INFORMATICA B Ingegneria Elettrica
L’architettura del calcolatore
DIPARTIMENTO DI ELETTRONICA, INFORMAZIONE E BIOINGEGNERIA
Hardware
• Componenti fisiche: circuiti, schede, memorie, periferiche, stampanti, monitor...
2
DIPARTIMENTO DI ELETTRONICA, INFORMAZIONE E BIOINGEGNERIA
Software
• I programmi eseguibili (istruzioni e dati) che consentono all'hardware di compiere determinate funzioni
3
DIPARTIMENTO DI ELETTRONICA, INFORMAZIONE E BIOINGEGNERIA
La macchina di Von Neumann
RAM MEMORIA
CENTRALE
BUS INDIRIZZI BUS DATI BUS DI CONTROLLO
INTERFACCE UNITA’
PERIFERICHE
CPU
MM OUTPUT INPUT INPUT
4
DIPARTIMENTO DI ELETTRONICA, INFORMAZIONE E BIOINGEGNERIA
Elementi principali
• CPU o Unità di elaborazione • Elabora dati, coordina trasferimento dei dati • Esegue i programmi, cioè interpreta ed esegue le loro istruzioni
• Memoria Centrale • Memorizza dati e programmi in esecuzione • Capacità limitata
– Volatile – Accesso all’informazione molto rapido
5
DIPARTIMENTO DI ELETTRONICA, INFORMAZIONE E BIOINGEGNERIA
Elementi principali
• Memoria secondaria o memoria di massa § Memorizza grandi quantità di dati e programmi § Persistente § Accesso molto meno rapido della memoria centrale
• Unità periferiche (I/O) § Comunicazione con l’ambiente esterno § Tastiera, mouse, video, altoparlanti, stampanti § L’ambiente esterno non è sempre un utente umano (impianti
industriali, robot, strumenti di controllo)
• Bus di sistema § Collega i componenti e consente scambio di dati
6
DIPARTIMENTO DI ELETTRONICA, INFORMAZIONE E BIOINGEGNERIA
Architettura del calcolatore
RAM MEMORIA
CENTRALE
BUS INDIRIZZI BUS DATI BUS DI CONTROLLO
INTERFACCE UNITA’
PERIFERICHE
CPU
MM OUTPUT INPUT INPUT
7
DIPARTIMENTO DI ELETTRONICA, INFORMAZIONE E BIOINGEGNERIA
Le memorie di massa
• L’informazione è memorizzata su supporto magnetico (o ottico o altro...) di costo contenuto
• Memoria permanente: le informazioni sono strutturate in file gestiti dal sistema operativo
• Tipi di memorie di massa: § Dischi rigidi: tempi di accesso dell’ordine della decina di millisecondi;
DIMENSIONE: Terabyte § Dischi stato solido (SSD): tempi d’accesso ridotti 0.1 millisecondi;
DIMENSIONI: centinaia di Megabyte § Nastri e Cartucce: per memorizzare informazioni “storiche” (back-‐up) § Chiavette USB: basate su memorie flash (2-‐64 GB) § CD-‐ROM e DVD-‐ROM: sola lettura
8
DIPARTIMENTO DI ELETTRONICA, INFORMAZIONE E BIOINGEGNERIA
Struttura dei dischi rigidi (HardDisk)
• Struttura: § Il disco è composto da una serie di piatti ricoperti da una pellicola
magnetica § Ogni piatto ha due superfici su cui vengono memorizzati i dati § Ogni superficie è organizzata in cerchi concentrici detti tracce § Le tracce sono divise in spicchi di grandezza uguale detti settori ciascuno
dei quali memorizza una data quantità di informazioni § Le operazioni di lettura e scrittura vengono effettuate tramite le testine § Il controller è un componente elettromeccanico che esegue le operazioni
di lettura e scrittura
contro
ller
9
DIPARTIMENTO DI ELETTRONICA, INFORMAZIONE E BIOINGEGNERIA
Architettura del calcolatore
RAM MEMORIA
CENTRALE
BUS INDIRIZZI BUS DATI BUS DI CONTROLLO
INTERFACCE UNITA’
PERIFERICHE
CPU
MM OUTPUT INPUT INPUT
10
DIPARTIMENTO DI ELETTRONICA, INFORMAZIONE E BIOINGEGNERIA
La memoria centrale
• Contiene le istruzioni e i dati su cui la CPU può operare § Contiene, cioè, sia i dati che i programmi § Tutta l’informazione, per poter essere elaborata, deve passare dalla
memoria centrale (e successivamente caricata in uno dei registri della CPU)
• Rispetto alla memoria di massa § Memoria a breve-‐medio periodo § Volatile
11
DIPARTIMENTO DI ELETTRONICA, INFORMAZIONE E BIOINGEGNERIA
• Dimensioni ridotte § Ordine dei GigaByte
• Tempi di accesso § ordine delle decine di nanosecondi
• circa centinaia di migliaia di volte più veloce delle memorie di massa
• È un insieme ordinato di parole (celle) § Una parola = n elementi di memoria binari (8, 16, 32, 64 bit) § La posizione di ogni parola è identificata da un indirizzo
• La capacità di indirizzamento in memoria è definita dalle dimensioni del bus indirizzi e del registro indirizzi
La memoria centrale
12
DIPARTIMENTO DI ELETTRONICA, INFORMAZIONE E BIOINGEGNERIA
RAM e ROM
• RAM: Random Access Memory § Le celle sono indirizzabili in un ordine qualunque (accesso random =
diretto) § Il tempo di accesso non dipende dalla cella
• ROM: Read-‐Only Memory § Per programmi protetti e definiti dal costruttore
• Il BIOS (Basic I/O System) che carica in memoria il sistema operativo quando la macchina viene accesa
§ Esistono di diversi tipi • “Erasable”, “Programmable”, (EPROM) • Memorie flash (evoluzione delle EPROM) • Una via intermedia tra Hardware e Software (Firmware)
13
DIPARTIMENTO DI ELETTRONICA, INFORMAZIONE E BIOINGEGNERIA
Tecnologie di memoria centrale
• La memoria RAM § È realizzata mediante circuiti a transistori § È modificabile (leggibile e scrivibile) ma deve essere continuamente
alimentata per mantenere le informazioni (volatile) § All’accensione il suo contenuto è una sequenza casuale di 0 e 1
• La memoria ROM § È solo leggibile: le informazioni sono di solito scritte in modo
permanente dal costruttore § È caricata al momento della produzione del calcolatore § Vi si accede ogni qualvolta questo viene acceso § Contiene il bootstrap, un programma contenente le prime istruzioni
che la CPU deve eseguire
14
DIPARTIMENTO DI ELETTRONICA, INFORMAZIONE E BIOINGEGNERIA
Indirizzamento della memoria centrale
• Esiste un registro (registro indirizzi -‐ AR) della CPU per indirizzare la memoria
• Registro di k bit: può indirizzare 2k celle § Con 10 bit indirizzo 1.024 celle
• 1 “kilo-‐parole” § Con 20 bit, 1.048.576 parole
• 1 “mega” parole § 30(giga), 40(tera), 50(peta)
Celle - hanno un indirizzo - contengono parole
15
DIPARTIMENTO DI ELETTRONICA, INFORMAZIONE E BIOINGEGNERIA
Registro Indirizzi (AR)
Registro Dati (DR)
h =16 bit
cella selezionata
k = 12 bit h = 16 bit
Esempio di RAM da 8 KByte
4.096 parole
000100110010
1001011001010010
1001011001010010
0
562
4.095
indirizzi delle celle
Indirizzamento della memoria centrale
16
DIPARTIMENTO DI ELETTRONICA, INFORMAZIONE E BIOINGEGNERIA
Architettura del calcolatore
RAM MEMORIA
CENTRALE
BUS INDIRIZZI BUS DATI BUS DI CONTROLLO
INTERFACCE UNITA’
PERIFERICHE
CPU
MM OUTPUT INPUT INPUT
17
DIPARTIMENTO DI ELETTRONICA, INFORMAZIONE E BIOINGEGNERIA
La CPU
18
DIPARTIMENTO DI ELETTRONICA, INFORMAZIONE E BIOINGEGNERIA
La CPU
• Contiene gli elementi circuitali che regolano il funzionamento del calcolatore: § L’unità di controllo è responsabile della decodifica e dell’esecuzione delle
istruzioni. È la parte che “dirige” l’esecuzione di tutte le altre parti § L’orologio di sistema (clock) permette di sincronizzare le operazioni
temporizzando il funzionamento del calcolatore § L’unità aritmetico-‐logica (ALU) realizza le operazioni aritmetiche e logiche
eventualmente richieste per l’esecuzione dell’istruzione. È priva di facoltà di scelta
§ I registri sono piccole memorie velocemente accessibili, utilizzate per memorizzare risultati parziali o informazioni necessarie al controllo. L’insieme dei valori contenuti nell'insieme di tutti i registri in un dato istante dell’elaborazione viene chiamato contesto
19
DIPARTIMENTO DI ELETTRONICA, INFORMAZIONE E BIOINGEGNERIA
La CPU
• I registri della CPU: § Registro contatore di programma (PC) contiene l’indirizzo di memoria della
prossima istruzione da eseguire § Registro istruzione corrente (CIR) contiene l’istruzione correntemente in
esecuzione § Registri operandi (A, B) contiene gli operando su cui eseguire la prossima
operazione con la ALU § Registri di lavoro contengono i dati utilizzati di frequente nelle operazioni o
risultati intermedi (in genere i registri operandi e i registri di lavoro sono stati uniti in un’unica struttura contenente una serie di registri chiamato banco di registri)
§ Registro di stato (SR) contiene alcune informazioni sull’esecuzione dell’ultima operazione della ALU (bit di overflow, bit di segno, bit zero)
§ Registro indirizzi (AR) contiene un indirizzo di memoria in cui fare un’operazione di lettura/scrittura
§ Registro dati (DR) contiene un dato da trasferire alla memoria o ricevuto dalla memoria
§ Registro interruzioni (INTR) contiene informazioni sullo stato di funzionamento delle periferiche
§ Registro stack pointer (SP) indica l’indirizzo di memoria in cima alla stack del programma in esecuzione
20
DIPARTIMENTO DI ELETTRONICA, INFORMAZIONE E BIOINGEGNERIA
Formato delle istruzioni in linguaggio macchina
• Costituite (ovviamente) da sequenze di 0 e 1 § Campo codice operativo (obbligatorio) specifica l’operazione da
eseguire § Campo operandi (facoltativo) indica i dati da utilizzare (gli operandi
possono essere uno o due) • Può contenere direttamente il valore o l’indirizzo della cella che contiene
il valore (riferimento a una variabile) § FORMATO ISTRUZIONE:
Cod. operativo Operandi
21
DIPARTIMENTO DI ELETTRONICA, INFORMAZIONE E BIOINGEGNERIA
Formato delle istruzioni in linguaggio macchina
• Istruzioni di elaborazione dei dati § Eseguono un’operazione aritmetico/logica/relazionale su due dati
specificati in due registri (in genere A e B) o in un registro ed una costante e salvano il risultato in un registro (A)
• Istruzioni di trasferimento dei dati § Eseguono un’operazione di trasferimento di un dato da un registro di
lavoro alla memoria o viceversa
• Istruzioni di salto (modifica del flusso di controllo) § Valutano una condizione semplice (in genere confrontano il
contenuto di un registro con il valore 0) e se la condizione risulta vera modificano il contenuto del registro PC con un valore contenuto in un altro registro o specificato nell’istruzione stessa
22
DIPARTIMENTO DI ELETTRONICA, INFORMAZIONE E BIOINGEGNERIA
Fasi del Ciclo di CPU
• La CPU esegue ciclicamente tre fasi § Durante una fase viene eseguita un’istruzione
• Prelievo (o Fetch): § Contenuto di registro PC trasferito in registro AR § Lettura da memoria centrale trasferito in registro DR § Contenuto del registro DR trasferito in registro CIR § Incremento del contenuto di registro PC
• Decodifica: interpretazione codice operativo • Esecuzione: attivazione esecuzione pertinente all’operazione
§ Dipendono dal tipo di istruzione
23
DIPARTIMENTO DI ELETTRONICA, INFORMAZIONE E BIOINGEGNERIA
Fasi del Ciclo di CPU
• Esecuzione delle istruzioni di elaborazione § Il contenuto di due registri (A e B o anche un registro di lavoro) viene inviato alla ALU § L’ALU esegue l’operazione § Il risultato viene salvato in un registro di lavoro (A o B o un altro registro di lavoro)
• Esecuzione delle istruzioni di scrittura in memoria § Il contenuto di un registro di lavoro viene trasferito al registro DR § L’indirizzo viene trasferito nel registro AR § Viene richiesta l’operazione di scrittura
• Esecuzione delle istruzioni di lettura da memoria § L’indirizzo viene trasferito nel registro AR § Viene richiesta l’operazione di lettura § Il contenuto del registro DR viene trasferito in un registro di lavoro
• Esecuzione delle istruzioni di salto § Il contenuto di un registro viene inviato alla ALU § La ALU valuta la condizione (e.g. valore del registro == 0 ?) § Se il risultato è vero (si controlla il registro di stato), il contenuto del registro PC viene
modificato copiandoci il contenuto di un altro registro di lavoro o una costante specificata nell’istruzione
24
DIPARTIMENTO DI ELETTRONICA, INFORMAZIONE E BIOINGEGNERIA
Esempio di esecuzione di un programma
• Esempio di codice C: scanf(“%d”,&a);
scanf(“%d”,&b); scanf(“%d”,&c);
scanf(“%d”,&d);
z=(a+b)*(c+d);
printf(“%d”,z);
25
DIPARTIMENTO DI ELETTRONICA, INFORMAZIONE E BIOINGEGNERIA
Esempio di esecuzione di un programma
• Codice macchina risultante:
26
0100000000010000 Leggi un valore dall’input e mettilo nella cella 16 (a) 0100000000010001 Leggi un valore dall’input e mettilo nella cella 17 (b) 0100000000010010 Leggi un valore dall’input e mettilo nella cella 18 (c) 0100000000010011 Leggi un valore dall’input e mettilo nella cella 19 (d) 0000000000010000 Carica il contenuto della cella 16 (a) nel registro A 0001000000010001 Carica il contenuto della cella 17 (b) nel registro B 0110000000000000 Somma i registri A e B 0010000000010100 Scarica il contenuto di A nella cella 20 (z) (ris.parziale) 0000000000010010 Carica il contenito della cella 18 (c) nel registro A 0001000000010011 Carica il contenito della cella 19 (d) nel registro B 0110000000000000 Somma i registri A e B 0001000000010011 Carica il contenuto della cella 20 (z) (ris. parziale) in B 1000000000000000 Moltiplica i registri A e B 0010000000010100 Scarica il contenuto di A nella cella 20 (z) (ris. totale) 0101000000010100 Scrivi il contenuto della cella 20 (z) (ris. totale) in output 1101000000000000 Halt
DIPARTIMENTO DI ELETTRONICA, INFORMAZIONE E BIOINGEGNERIA
Esempio di esecuzione di un programma
27
0100000000010000 0100000000010001 0100000000010010 0100000000010011 0000000000010000 0001000000010001 0110000000000000 0010000000010100 0000000000010010 0001000000010011 0110000000000000 0001000000010011 1000000000000000 0010000000010100 0101000000010100 1101000000000000
Cella 0 1 2 3 4 5 6 7 8 9
10 11 12 13 14 15
Spazio riservato per a 16 Spazio riservato per b 17 Spazio riservato per c 18 Spazio riservato per d 19 Spazio riservato per z 20
• Organizzazione dei dati in memoria:
DIPARTIMENTO DI ELETTRONICA, INFORMAZIONE E BIOINGEGNERIA
Esempio di esecuzione di un programma
• Fetch della prima istruzione:
28
0000000000 PC
AR
0100000000010000
Memoria centrale (MM)
0
DR
1023
CIR
0000000000
0100000000010000
0100000000010000
Passo 1 Passo 2
Passo 3
Passo 4 Il valore di PC viene incrementato
0000000001
DIPARTIMENTO DI ELETTRONICA, INFORMAZIONE E BIOINGEGNERIA
Esempio di esecuzione di un programma
• Decode della prima istruzione:
29
0100000000010000 CIR
Codice operativo 0100 = leggi da input
DIPARTIMENTO DI ELETTRONICA, INFORMAZIONE E BIOINGEGNERIA
Esempio di esecuzione di un programma
• Execute della prima istruzione:
30
AR
Memoria centrale (MM)
0
DR
1023
0001000000011111 PDR
0100000000010000 CIR 16
Valore di a letto dall’input (es. 4127)
Indirizzo operando 00000010000 = cella 16
0000010000
0001000000011111
0001000000011111
Passo 1
Passo 2
Passo 3
DIPARTIMENTO DI ELETTRONICA, INFORMAZIONE E BIOINGEGNERIA
Architettura del calcolatore
RAM MEMORIA
CENTRALE
BUS INDIRIZZI BUS DATI BUS DI CONTROLLO
INTERFACCE UNITA’
PERIFERICHE
CPU
MM OUTPUT INPUT INPUT
31
DIPARTIMENTO DI ELETTRONICA, INFORMAZIONE E BIOINGEGNERIA
Il bus di sistema
• Insieme di connettori (conduttori elettrici) che trasportano bit di informazioni collegando fra di loro l’unità di elaborazione, la memoria e le varie interfacce di ingresso/uscita
• I trasferimenti sono gestiti dalla CPU (modalità master/slave) e si chiamano cicli del bus, che con la sua capacità ne determina la velocità
32
DIPARTIMENTO DI ELETTRONICA, INFORMAZIONE E BIOINGEGNERIA
Componenti del bus di sistema
• Bus Dati § Trasferisce dati da master a slave e viceversa
• Bus Indirizzi § Trasferisce indirizzi, per esempio l’indirizzo di un dato dal registro
indirizzi alla memoria, per accedere al dato stesso
• Bus di Controllo § Read/Write § Errore § Richiesta e risposta (lavoro eseguito) § Memoria o I/O
33
DIPARTIMENTO DI ELETTRONICA, INFORMAZIONE E BIOINGEGNERIA
Componenti del bus di sistema
34
Registro istruzione corrente (CIR)
Registro dati (DR) Registro indirizzi
(AR)
Registro contatore di programma (PC)
Registro di stato (SR)
Registro interruzioni (INTR)
A
B
Unità di controllo (CU)
Clock
Unità aritmetico logica (ALU)
CPU
Bus di sistema
DIPARTIMENTO DI ELETTRONICA, INFORMAZIONE E BIOINGEGNERIA
Operazioni di trasferimento sul bus
• Operazione di lettura da memoria centrale (LOAD): 1. la CPU carica l’indirizzo della parola di memoria nel registro AR e lo
trasmette alla memoria via bus indirizzi 2. la CPU invia il comando di Read Memory sul bus di controllo 3. la memoria trasmette sul bus dati il contenuto della parola verso il
registro DR 4. la memoria segnala al processore sul bus di controllo che l’operazione
è stata completata con successo: il dato si trova nel registro dati
35
DIPARTIMENTO DI ELETTRONICA, INFORMAZIONE E BIOINGEGNERIA
Operazioni di trasferimento sul bus
36
CIR
DR AR
PC SR
INTR A
B
CU Ck
ALU
0
1023
123 42 123
123
Passo 1
READ
Passo 2
42
Passo 3
OK
Passo 4
DIPARTIMENTO DI ELETTRONICA, INFORMAZIONE E BIOINGEGNERIA
Operazioni di trasferimento sul bus
• Operazione di scrittura in memoria centrale (STORE): 1. la CPU carica indirizzo della parola di memoria dove si vuole scrivere
nel registro AR e lo trasmette alla memoria via bus indirizzi 2. la CPU carica nel registro DR la parola da scrivere in memoria 3. la CPU invia il comando di Write Memory sul bus di controllo 4. la CPU trasmette sul bus dati il contenuto del registro DR verso
l’indirizzo di memoria segnalato 5. la memoria segnala al processore sul bus di controllo che l’operazione
è stata completata con successo: il dato si trova nella parola di memoria destinazione
37
DIPARTIMENTO DI ELETTRONICA, INFORMAZIONE E BIOINGEGNERIA
Operazioni di trasferimento sul bus
38
CIR
DR AR
PC SR
INTR A
B
CU Ck
ALU
0
1023
123 42 123
123
Passo 1
WRITE
Passo 3
OK
Passo 5
70
Passo 2
70
Passo 4
DIPARTIMENTO DI ELETTRONICA, INFORMAZIONE E BIOINGEGNERIA
Architettura del calcolatore
RAM MEMORIA
CENTRALE
BUS INDIRIZZI BUS DATI BUS DI CONTROLLO
INTERFACCE UNITA’
PERIFERICHE
CPU
MM OUTPUT INPUT INPUT
39
DIPARTIMENTO DI ELETTRONICA, INFORMAZIONE E BIOINGEGNERIA
Interfacce di I/O
• Consentono il collegamento tra elaboratore e periferiche • Possono essere dispositivi elettromeccanici • Contengono registri accessibili dalla CPU per
§ Inviare comandi alla periferica • Registro comandi periferica (PCR) – collegato al bus di controllo
§ Scambiare dati • Registro dati della periferica (PDR) –
collegato al bus dati
§ Controllare il funzionamento della periferica • Registro stato periferica (PSR) – pronto,
occupato, errore, ...
40
Bus di sistema
Peripheral Data Register (PDR)
Peripheral Command Register (PCR)
Peripheral State Register (PSR)
Interfaccia periferica 1
DIPARTIMENTO DI ELETTRONICA, INFORMAZIONE E BIOINGEGNERIA
Il sistema operativo
• Il sistema operativo è un programma che viene utilizzato per far fronte alla complessità della gestione del calcolatore
• Obiettivi: § Gestione delle risorse § Fornire una visione di macchina semplificata ed estesa ad i programmi in
esecuzione
• Macchina semplificata: fornisce ai programmi una serie di funzioni di alto livello per interagire con il calcolatore
• Macchina estesa: mostra al programma una macchina con maggiori risorse rispetto a quelle reali
• Funzioni: § Gestione dei processi: gestisce più programmi in esecuzione
contemporaneamente § Gestione della memoria: gestisce la memoria principale che viene utilizzata dai
programmi in esecuzione § Gestione dei dispositivi: fornisce un’interfaccia semplificata (basata su driver) per
l’utilizzo delle periferiche § Gestione del file system: organizza in modo strutturato le informazioni sulla
memoria di massa
41