Impianto di elaborazione dell`informazione Il concetto di modello

Politecnico
di Milano
Impianto di elaborazione
dell’informazione
• Con il termine “impianto di elaborazione
dell’informazione” (o “sistema informativo”) ci si
riferisce a sistemi molto diversi
– Che vanno dal palmtop...
– ... ad una rete geografica con milioni di nodi
• Studiare l’architettura di un siffatto sistema significa
individuarne i componenti e le loro relazioni
• Ciò si realizza attraverso la creazione di un insieme di
modelli
• Il nostro studio procederà identificando i diversi strati
che identificano la macchina virtuale “sistema
informativo” a partire dall’HW di base
Gianpaolo Cugola - Impianti di Elaborazione dell'Informazione
Politecnico
di Milano
7
Il concetto di modello
• Modello = Astrazione di una certa realtà
• Astrazione → trascurare concetti irrilevanti al
fine della comprensione del problema...
• ... per concentrarsi sugli aspetti maggiormente
critici
• Esempi
–
–
–
–
Il progetto di una nuova autovettura
Un organigramma aziendale
La descrizione di un processo di produzione
Una formula chimica
Gianpaolo Cugola - Impianti di Elaborazione dell'Informazione
Gianpaolo Cugola - Impianti di Elaborazione dell'Informazione
8
Politecnico
di Milano
Il concetto di macchina virtuale
• Macchina virtuale = Esecutore “virtuale”
di algoritmi
• Con il termine “virtuale” si identifica la
caratteristica non reale
– N el qual caso si parla anche di “modello”
• O non “fisica” della macchina
• Esempi
– La macchina virtuale “Esecutore C”
Gianpaolo Cugola - Impianti di Elaborazione dell'Informazione
Politecnico
di Milano
9
Gli “strati” che compongono
un sistema informativo
Software applicativo
Software applicativo
Software di base (S.O.)
hardware
S.O. di rete + middleware
S.O.
hardware
S.O.
hardware
rete
Gianpaolo Cugola - Impianti di Elaborazione dell'Informazione
Gianpaolo Cugola - Impianti di Elaborazione dell'Informazione
hardware
10
Politecnico
di Milano
Tipologie di calcolatori - 1
• Esistono diversi tipi di calcolatori
– Handheld computer
• Di dimensioni molto limitate
• Usualmente privi di memorie di massa
– Personal computer
• Dotati di monitor e tastiera separati dall’unità
centrale
• Dotati di diversi dispositivi di memoria di massa
interni o esterni all’unità centrale
– N otebook
• Versione portatile del personal computer
• Usualmente dotata di caratteristiche inferiori in
termini di potenza di calcolo e memorizzazione
Gianpaolo Cugola - Impianti di Elaborazione dell'Informazione
Politecnico
di Milano
11
Tipologie di calcolatori - 2
– Workstation
• Versione “potente” dei personal computer
• Dotate di monitor di dimensioni superiori
• Per lo più orientate alle applicazioni grafiche
o di CAD
• Spesso condivise da più utenti (non
necessariamente in contemporanea)
– Mainframe
• Calcolatori di elevata potenza di calcolo e
memorizzazione
• Orientati all’elaborazione di dati per l’intera
azienda
• Condivisibili da più utenti in contemporanea
Gianpaolo Cugola - Impianti di Elaborazione dell'Informazione
Gianpaolo Cugola - Impianti di Elaborazione dell'Informazione
12
Politecnico
di Milano
Tipologie di S.O.
• N egli anni diversi S.O. hanno visto la luce
– I primi calcolatori non avevano un vero e proprio
S.O. ma solo un sottile strato di sw di base che
gestiva l’accesso all’hw
• Tipologie di S.O.
– Monoutente vs. multiutente
– Single tasking vs. multi tasking
• Principali S.O. oggi presenti sul mercato:
– DOS, Windows 9x, Windows N T, Unix (nei suoi
cento dialetti), OS/ 2, MacOS
Gianpaolo Cugola - Impianti di Elaborazione dell'Informazione
Politecnico
di Milano
13
Tipologie applicative
•
•
•
•
Applicazioni numeriche
Applicazioni gestionali
Applicazioni per l’automazione d’ufficio
Applicazioni telematiche
– Applicazioni di workgroup
• Applicazioni di automazione industriale
– CAD, CAM
• Applicazioni multimediali e di intrattenimento
Gianpaolo Cugola - Impianti di Elaborazione dell'Informazione
Gianpaolo Cugola - Impianti di Elaborazione dell'Informazione
14
Politecnico
di Milano
Architettura del calcolatore: il modello
di Von Neumann
• Tutte le diverse tipologie di calcolatori sono
accomunati dalla medesima architettura logica
• Schematizzata dal modello di Von N eumann
del calcolatore
Bus di sistema
Processore
(CPU)
Memoria
centrale
Interfaccia
delle
periferiche
Gianpaolo Cugola - Impianti di Elaborazione dell'Informazione
Politecnico
di Milano
15
Funzionamento della macchina di Von
Neumann
• Il processore estrae le istruzioni dalla memoria e le
esegue
– Le istruzioni possono comportare operazioni di manipolazione
dei dati
– Oppure operazioni di trasferimento dei dati
• I trasferimenti di dati attraverso elementi funzionali
diversi avvengono attraverso il bus di sistema
• Le fasi di elaborazione si susseguono in modo sincrono
rispetto ad un orologio di sistema
• Durante ogni intervallo di tempo l’unità di controllo
(parte del processore) stabilisce la funzione da svolgere
• L’intera macchina opera in maniera sequenziale
Gianpaolo Cugola - Impianti di Elaborazione dell'Informazione
Gianpaolo Cugola - Impianti di Elaborazione dell'Informazione
16
Politecnico
di Milano
Il processore: schema architetturale
Registro di stato
PC
A
Registro Istruz.
Corrente
B
ALU
segnali
di controllo
Ro
.....
Registro interr.
Rn
Registro dati
Unità di
controllo (UC)
Registro indirizzi
Gianpaolo Cugola - Impianti di Elaborazione dell'Informazione
Politecnico
di Milano
clock
17
Il processore: descrizione degli
elementi principali - 1
• Unità di controllo (UC) : decodifica le istruzioni e
controlla il funzionamento del sistema attraverso
opportuni segnali
• Unità aritmetico logica (ALU) : esegue le operazioni
aritmetiche
• Clock : sincronizza il funzionamento dei diversi
elementi
• Bus della CPU : collega i diversi elementi della CPU (da
non confondere con il bus di sistema)
• Program Counter (PC) : mantiene l’indirizzo della
prossima istruzione da eseguire
• Registro istruzione corrente : mantiene l’istruzione
attualmente in fase di esecuzione
Gianpaolo Cugola - Impianti di Elaborazione dell'Informazione
Gianpaolo Cugola - Impianti di Elaborazione dell'Informazione
18
Politecnico
di Milano
Il processore: descrizione degli
elementi principali - 2
• Registro delle interruzioni : indica l’avvenuta richiesta
di una interruzione
• Registro di stato : indica lo stato dell’ultima istruzione
eseguita dalla ALU
• Registro indirizzi : contiene l’indirizzo del prossimo
dato da leggere/ scrivere in memoria
• Registro dati : contiene l’ultimo dato letto o il prossimo
dato da scrivere in memoria
• Registri A e B : registri contenenti i dati su cui opera la
ALU
• Registri R0, ..., Rn : registri di uso generale
Gianpaolo Cugola - Impianti di Elaborazione dell'Informazione
Politecnico
di Milano
19
Il processore: funzionamento - 1
• L’esecuzione di un programma ha inizio con il
caricamento della locazione della prima istruzione nel
PC
• La UC manda un segnale di controllo affinché il
contenuto del PC sia spostato nel registro degli indirizzi
• Viene inviato un segnale di controllo (read) alla
memoria per effettuare la lettura del dato posto
all’indirizzo specificato nel registro indirizzi
• In conseguenza del passo precedente il dato viene reso
disponibile nel registro dati (la UC attende fino
all’arrivo del segnale MFC - memory function
completed)
Gianpaolo Cugola - Impianti di Elaborazione dell'Informazione
Gianpaolo Cugola - Impianti di Elaborazione dell'Informazione
20
Politecnico
di Milano
Il processore: funzionamento - 2
• La UC manda un segnale di controllo affinché il
contenuto del registro dati sia spostato nel
registro istruzione corrente
• La UC decodifica l’istruzione corrente
• La UC genera la sequenza di segnali di
controllo necessari ad eseguire l’istruzione
– Esempio:
caricamento di un dato presente in memoria nel
registro A
• Il valore del PC incrementato di 1 viene spostato nel registro
indirizzi
Gianpaolo Cugola - Impianti di Elaborazione dell'Informazione
Politecnico
di Milano
21
Il processore: funzionamento - 3
– Esempio (continua)
• Viene inviato un segnale di controllo (read) alla memoria
per effettuare la lettura del dato posto all’indirizzo
specificato nel registro indirizzi
• In conseguenza del passo precedente il dato viene reso
disponibile nel registro dati (la UC attende il segnale MFC)
• La UC manda un segnale di controllo affinché il contenuto
del registro dati sia spostato nel registro A
• Il PC viene incrementato al fine di puntare alla
prossima istruzione
Gianpaolo Cugola - Impianti di Elaborazione dell'Informazione
Gianpaolo Cugola - Impianti di Elaborazione dell'Informazione
22
Politecnico
di Milano
Il processore: tipologia di istruzioni
eseguibili
• Le istruzioni eseguite dal processore
possono essere classificate in tre
categorie principali:
– Istruzioni aritmetiche
• Somme, sottrazioni, moltiplicazioni, divisioni,
shift ecc.
– Istruzioni di salto condizionale
– Istruzioni di trasferimento dei dati
• Da un registro all’altro
• Da uno dei registri alla memoria o viceversa
Gianpaolo Cugola - Impianti di Elaborazione dell'Informazione
Politecnico
di Milano
23
Il processore: le interruzioni
• Al fine di gestire richieste provenienti dalle periferiche
può essere necessario interrompere la normale
esecuzione di un programma
• La periferica segnala sue particolari necessità attraverso
una interruzione
• Ad ogni passo di esecuzione la UC verifica lo stato del
registro delle interruzioni
• Se si è verificata una interruzione:
– Lo stato del processore (registri) viene salvato in memoria
– Viene attivata una speciale procedura di gestione delle
interruzioni
– Quando la procedura di gestione delle interruzioni termina lo
stato del processore viene ripristinato ed il programma viene
ripreso
Gianpaolo Cugola - Impianti di Elaborazione dell'Informazione
Gianpaolo Cugola - Impianti di Elaborazione dell'Informazione
24
Politecnico
di Milano
La memoria centrale - 1
• La memoria centrale è destinata ad accogliere dati e
programmi sui quali opera il calcolatore
• Concettualmente è composta da una sequenza di celle
ognuna delle quali contiene una parola (word )
– Ogni cella può essere acceduta direttamente (specificandone
l’indirizzo) per leggere o scrivere (in un unico passo) il valore
ivi contenuto
– Una parola è composta da un numero di bit che dipende dalla
macchina
• Esempio: Pentium: 32, 80286: 16, PowerPC: 32, Ultra SPARC: 64
– Le memorie in uso nei calcolatori moderni permettono
l’indirizzamento di un singolo byte oltre che di un’intera parola
(memorie byte-addressable)
• Un apposita linea di controllo del bus indica alla memoria se si
voglia accedere ad un’intera parola o ad un singolo byte
Gianpaolo Cugola - Impianti di Elaborazione dell'Informazione
Politecnico
di Milano
25
La memoria centrale - 2
• Il numero di bit che costituiscono l’indirizzo di un byte
all’interno della memoria è caratteristico del
microprocessore e identifica lo spazio di indirizzamento
del microprocessore
– Esempio: Pentium 32 bit
– Avendo a disposizione k bit è possibile indirizzare 2k byte
– Si ricorda che:
210 byte = 1 Kilo Byte
220 byte = 1 Mega Byte
230 byte = 1 Giga Byte
240 byte = 1 Tera Byte
• N ell’accesso ad una parola, il sistema di gestione delle
memorie byte-addressable considera solo i k-n bit più
significativi - dove n=sqrt(lungh. parola in byte)
Gianpaolo Cugola - Impianti di Elaborazione dell'Informazione
Gianpaolo Cugola - Impianti di Elaborazione dell'Informazione
26
Politecnico
di Milano
La memoria centrale - 3
• La memoria centrale si chiama usualmente ram o
memoria ad accesso casuale
– Viene cosi detta una memoria il cui tempo di accesso sia
indipendente dall’indirizzo della parola alla quale si vuole
accedere
– Si tratta di una memoria volatile
• Altri tipi di memoria presenti in un calcolatore sono le
rom
–
–
–
–
Hanno caratteristiche generali simili alle ram
Un tempo di accesso notevolmente maggiore
Si tratta di memorie permanenti
Sono tipicamente utilizzate per memorizzare quei dati e
programmi che servono al momento dell’accensione
dell’elaboratore, prima del caricamento del S.O.
Gianpaolo Cugola - Impianti di Elaborazione dell'Informazione
Politecnico
di Milano
27
Il bus di sistema
• Il bus di sistema collega tra loro i vari elementi del
calcolatore
• In ogni istante il bus è dedicato a collegare due unità,
una trasmette ed una riceve
– Il processore seleziona la connessione da attivare e indica
l’operazione da svolgere (bus mastering)
• Il bus è suddiviso in tre insiemi di linee:
– Bus dati
– Bus indirizzi
– Linee di controllo: trasportano informazioni relative alla
modalità di trasferimento e alla temporizzazione
• Esempio di uso del bus scrittura di un dato presente in
un registro del processore in memoria
Gianpaolo Cugola - Impianti di Elaborazione dell'Informazione
Gianpaolo Cugola - Impianti di Elaborazione dell'Informazione
28
Politecnico
di Milano
Bus sincroni e asincroni
• Bus sincrono:
– Le linee di controllo includono una linea di clock
– Periferica, memoria e processore operano sul bus in maniera
sincrona rispetto a tale “orologio” comune
• Durante ogni ciclo di bus può avvenire un singolo trasferimento
dati
• Bus asincrono
– Basato su handshake
– Le linee di controllo includono una linea ready ed una linea
accept
• La linea ready indica la richiesta di una operazione da parte
dell’unità master (processore) e viene tenuta a 1 fino al
completamento dell’operazione da parte dell’unità master
• La linea accept indica il completamento dell’operazione richiesta
da parte dell’unità slave e viene tenuta ad 1 fino a quando l’unità
slave non vede la transizione da 1 a 0 del segnale ready
Gianpaolo Cugola - Impianti di Elaborazione dell'Informazione
Politecnico
di Milano
29
L’interfaccia delle periferiche
• Concettualmente si occupa della gestione dello scambio
di dati tra processore e periferiche
• In generale contiene:
– Un registro dati della periferica (RDP)
– Un registro di comando della periferica (RCP)
– Un registro di stato
• Talvolta collegato al registro delle interruzioni del processore
• A seconda del processore, i registri delle periferiche
possono:
– Condividere lo spazio di indirizzi della memoria (memory
mapped I/ O)
– Adottare uno spazio di indirizzi distinti
Gianpaolo Cugola - Impianti di Elaborazione dell'Informazione
Gianpaolo Cugola - Impianti di Elaborazione dell'Informazione
30
Politecnico
di Milano
L’interfaccia delle periferiche:
schematizzazione grafica
Linee degli indirizzi
BUS
Linee dei dati
Linee di controllo
Decodificatore
degli indirizzi
Circuiti di
controllo
Registri dei dati
e di stato
Interfaccia di I/ O
Periferica
Gianpaolo Cugola - Impianti di Elaborazione dell'Informazione
Politecnico
di Milano
31
Interfacce standard
• E’ possibile avere una interfaccia diversa per ogni
periferica
– ma è più logico avere delle interfacce standard per periferiche
simili
• Esempi di interfacce standard:
–
–
–
–
–
–
–
Interfaccia seriale RS-232-C
Interfaccia PS2
Interfaccia USB (Universal Serial Bus)
Interfaccia parallela Centronix
Interfaccia ISA
Interfaccia SCSI
Interfaccia EIDE
Gianpaolo Cugola - Impianti di Elaborazione dell'Informazione
Gianpaolo Cugola - Impianti di Elaborazione dell'Informazione
32
Politecnico
di Milano
Gestione delle periferiche da parte del
processore - 1
• I moderni processori operano a velocità notevolmente
maggiori di ogni altra periferica
– Sorge la necessità di sincronizzare le operazioni di processore e
periferiche
• Due approcci possibili: a controllo di programma
(polling) o mediante interrupt
• La gestione a polling: un esempio di lettura da memoria
di massa
– Il processore invia sul bus il comando di lettura e si pone in
attesa che il dato sia disponibile sul registro dati della periferica
– Durante l’attesa il processore esegue un ciclo verificando il
valore del registro di stato della periferica
– Appena il dato è pronto il processore lo trasferisce dal registro
dati della periferica in uno dei suoi registri interni e da qui in
memoria
Gianpaolo Cugola - Impianti di Elaborazione dell'Informazione
Politecnico
di Milano
33
Gestione delle periferiche da
parte del processore - 2
• Difetti dell’approccio a polling
– Il processore resta impegnato in un ciclo in attesa del dato
• La gestione a interrupt: un esempio di lettura da
memoria di massa
– Il processore invia sul bus il comando di lettura e procede nelle
sue operazioni
– Quando il dato è disponibile la periferica “solleva” un
interruzione
– Il processore interrompe le sue operazioni, salva il proprio stato
ed esegue una opportuna routine di gestione delle interruzioni
(parte del S.O.)
– La routine di gestione delle interruzioni verifica che un dato è
disponibile sulla periferica e lo trasferisce dal registro dati della
periferica in uno dei registri interni del processore e da qui in
memoria
Gianpaolo Cugola - Impianti di Elaborazione dell'Informazione
Gianpaolo Cugola - Impianti di Elaborazione dell'Informazione
34
Politecnico
di Milano
Periferiche: memorie di massa
• Con il termine memoria di massa ci si riferisce ad un dispositivo di
memorizzazione permanente capace di contenere grosse quantità
di dati
• Esiste un numero grandissimo di dispositivi di tale tipo
• Possibili categorizzazioni
– Dispositivi ad accesso sequenziale o casuale
– Dispositivi in sola lettura (RO), in lettura e scrittura (RW) o WORM
(Write Once Read Many)
– Dispositivi magnetici, ottici o magneto-ottici
• Dimensioni tipiche delle principali memorie di massa odierne
–
–
–
–
–
FDD: 1.44 MB
CD: 650 MB
DVD: 4 GB
H ard-Disk: 4÷
÷30 GB
N astri: QIC80: 350 MB, DAT 4÷
÷20+ GB
Gianpaolo Cugola - Impianti di Elaborazione dell'Informazione
Politecnico
di Milano
35
Memorie di massa: HD - 1
Gianpaolo Cugola - Impianti di Elaborazione dell'Informazione
Gianpaolo Cugola - Impianti di Elaborazione dell'Informazione
36
Politecnico
di Milano
Memorie di massa: HD - 2
• Schema di memorizzazione
(creato in fase di formattazione
di basso livello)
– Ogni superficie è divisa in
tracce concentriche
• In ogni traccia i dati sono
memorizzati in maniera
sequenziale
– Ogni traccia è divisa in settori
– L’insieme delle tracce omologhe
poste sulle diverse facce è detto
cilindro
• Esempio: il disco IBM Deskstar
25GP
– 5 dischi, 10 testine, 15.302
cilindri (utente), 512 byte per
settore
Gianpaolo Cugola - Impianti di Elaborazione dell'Informazione
Politecnico
di Milano
37
Memorie di massa: HD - 3
• Caratteristiche prestazionali di un HD
– Tempo di posizionamento (seek time): il tempo necessario a
posizionare le testine sulla traccia richiesta
• N ell’ordine di 8-10 ms
– Tempo di latenza o di rotazione (latency time): il tempo
affinché il settore richiesto “passi” sotto la testina (dipende
dalla velocità di rotazione del disco)
• N ell’ordine di 2-4 ms
– Tempo di trasferimento: il tempo per trasferire i dati dal disco
alla memoria
• In genere trascurabile
– Tempo di accesso (la somma dei tre tempi precedenti)
Gianpaolo Cugola - Impianti di Elaborazione dell'Informazione
Gianpaolo Cugola - Impianti di Elaborazione dell'Informazione
38
Politecnico
di Milano
Memorie di massa: HD - 4
• Esempi:
– Il disco IBM Deskstar 25GP (EIDE)
• Caratteristiche costruttive: 25 GB disposti su 5 dischi (10
testine) suddivisi in 15.302 cilindri (utente) con 512 byte per
settore. 5400 rpm
• Caratteristiche prestazionali:
– Tempo di posizionamento: 9.0 ms (2.2 ms track-to-track)
– Tempo di latenza: 5.56 ms
– Il disco Seagate Cheetah ST118202LW (UW SCSI 2)
• Caratteristiche costruttive: 18 GB disposti su 12 dischi (24
testine) con 512 byte per settore. 10000 rpm
• Caratteristiche prestazionali:
– Tempo di posizionamento: 5.2 ms
– Tempo di latenza: 2.99 ms
Gianpaolo Cugola - Impianti di Elaborazione dell'Informazione
Politecnico
di Milano
39
Memorie di massa: gli array di
dischi
• Per aumentare le prestazioni dei sistemi a disco
è possibile raggruppare più dischi in un sistema
RAID (Redundant Array of Inexpensive Disks)
• Il sistema RAID suddivide ogni file in blocchi
registrati su dischi diversi per aumentare le
prestazioni (data striping)
• Il sistema RAID viene anche utilizzato per
incrementare l'affidabilità dei sistemi a disco
attraverso un meccanismo di ridondanza
Gianpaolo Cugola - Impianti di Elaborazione dell'Informazione
Gianpaolo Cugola - Impianti di Elaborazione dell'Informazione
40
Politecnico
di Milano
Periferiche: terminali
• Caratterizzati da una tastiera, un video e,
talvolta, un mouse o altri dispositivi di
puntamento simili
• N ei PC e nelle workstation tali dispositivi sono
integrati nello stesso calcolatore
• Video: caratteristiche salienti
–
–
–
–
Dimensione: misura della diagonale in pollici
Risoluzione: dimensione in pixel x pixel
Dot pitch: dimensione del singolo punto in mm
Frequenza di refresh ad una certa risoluzione:
misurata in hz
Gianpaolo Cugola - Impianti di Elaborazione dell'Informazione
Politecnico
di Milano
41
Periferiche: stampanti
• Permettono di stampare su carta i dati prodotti
al calcolatore
• Caratteristiche salienti:
– Velocità: in ppm
– Risoluzione: in punti per pollice (DPI)
• Principali tipi di stampanti:
–
–
–
–
A margherita (solo testo)
Ad aghi
A getto di inchiostro
Laser
Gianpaolo Cugola - Impianti di Elaborazione dell'Informazione
Gianpaolo Cugola - Impianti di Elaborazione dell'Informazione
42
Politecnico
di Milano
Estensioni alla macchina di
Von Neumann
• Uso di processori dedicati
• Uso di meccanismi di pipelining per
parallelizzare le attività all’interno del
singolo processore
• Uso di gerarchie di memorie
• Uso di canali di DMA per la gestione
dell’I/ O
• Uso di bus multipli
Gianpaolo Cugola - Impianti di Elaborazione dell'Informazione
Politecnico
di Milano
43
I processori dedicati
• All’interno di un moderno calcolatore esistono, in realtà,
numerosi processori che svolgono funzioni specifiche:
– Processori per la gestione dei canali di I/ O
– Processori grafici
• 2D e 3D
– Processori per la sintesi e l’acquisizione di suoni
• Taluni di questi processori possono essere anche molto
complessi
– Il chip grafico 3dfx III è composto da 8.2 milioni di transistor
(il Pentium II ne ha 7.5)
• I diversi processori operano sotto il controllo del
processore centrale con il quale “competono” per
l’accesso alla memoria e al bus
Gianpaolo Cugola - Impianti di Elaborazione dell'Informazione
Gianpaolo Cugola - Impianti di Elaborazione dell'Informazione
44
Politecnico
di Milano
Le pipeline - 1
• Il principio della catena di montaggio:
– Decomporre una attività complessa che si debba ripetere
sempre eguale in più attività semplici...
– ... e parallelizzare tali attività semplici
• Applicazioni ai processori:
– L’esecuzione di una istruzione può essere decomposta in un
certo numero di attività più semplici
– Da eseguire in parallelo per le diverse istruzioni che
compongono il programma
– Ogni stadio della pipeline esegue una di queste attività
elementari
Gianpaolo Cugola - Impianti di Elaborazione dell'Informazione
Politecnico
di Milano
45
Le pipeline - 2
• Il problema dei salti
– N el caso di salti condizionali non esiste un unica sequenza di
istruzioni
– Soluzione: la branch prediction
• Il problema della dipendenza dei valori
– L’esecuzione di un’istruzione può dipendere dal risultato della
precedente, ciò riduce la possibilità di eseguire le due istruzioni
in parallelo
– Soluzione: l’esecuzione fuori ordine
• Un esempio: il processore PowerPC 620
– Due pipeline distinte per operazioni intere e in virgola mobile
• Formate da 4 stadi la prima e 6 la seconda
– Fino ad un massimo di 4 istruzioni per ciclo di clock
Gianpaolo Cugola - Impianti di Elaborazione dell'Informazione
Gianpaolo Cugola - Impianti di Elaborazione dell'Informazione
46
Politecnico
di Milano
Le memorie cache
• Il problema:
– Le memorie non reggono più la velocità dei moderni processori
• Una memoria PC100 ha un tempo di accesso dell’ordine dei 7 ns,
insufficiente per processori moderni (500 Mhz)
– E’ possibile costruire memorie più veloci ma a costi molto alti
(memorie statiche)
• La soluzione:
– Una gerarchia di memorie via via meno veloci e più capienti
processore
cache interna
al processore (L1)
cache di secondo
livello (L2)
Memoria
principale
bus
Gianpaolo Cugola - Impianti di Elaborazione dell'Informazione
Politecnico
di Milano
47
Memoria cache: un esempio pratico
• Un caso pratico: un moderno PC con Pentium
II 400
– Cache L1:
• 32 Kb interna al processore
• Operante a piena frequenza (400 Mhz)
– Cache L2
• 512 Kb sulla scheda che ospita il processore
• Operante a frequenza pari alla metà del processore (200
Mhz)
– Memoria:
• 32-512 Mb sulla scheda madre
• Operante alla frequenza del bus esterno alla CPU (100 Mhz)
Gianpaolo Cugola - Impianti di Elaborazione dell'Informazione
Gianpaolo Cugola - Impianti di Elaborazione dell'Informazione
48
Politecnico
di Milano
I canali DMA - 1
• Problema:
eseguire le operazioni di I/ O sotto lo stretto controllo del
processore richiede risorse di calcolo
– Il processore deve richiedere il dato (singola parola) all’interfaccia
delle periferiche, attendere la disponibilità del dato, leggerlo e
spostarlo in memoria
– Il problema viene in parte risolto attraverso l’uso di interrupt, ma
ancora la lettura è svolta un dato per volta
• Soluzione:
i controllori DMA integrati nelle interfacce delle periferiche
– Il controllore DMA integrato nell’interfaccia si occupa di trasferire in
maniera autonoma i dati richiesti dal processore in memoria (a
blocchi)
– Il processore viene informato quando tutti i dati richiesti sono stati
trasferiti (attraverso un’interrupt)
Gianpaolo Cugola - Impianti di Elaborazione dell'Informazione
Politecnico
di Milano
49
I canali DMA - 2
• Effetto dell’uso del DMA
– Diversi dispositivi possono accedere
autonomamente al bus
• Il processore
• I controllori DMA
– Di conseguenza si possono manifestare dei
conflitti nell’uso del bus
– Tali conflitti vengono risolti attraverso un
meccanismo di arbitraggio del bus
Gianpaolo Cugola - Impianti di Elaborazione dell'Informazione
Gianpaolo Cugola - Impianti di Elaborazione dell'Informazione
50
Politecnico
di Milano
Le architetture a bus multipli
• I moderni calcolatori contengono spesso più bus
– Uno o più bus del processore (il caso del Pentium II)
– Uno o più bus al quale collegare schede di espansione (es. ISA,
PCI, AGP)
– Uno o più bus delle periferiche (Es. EIDE, SCSI, USB)
• I diversi bus operano spesso a frequenze diverse sotto il
controllo del processore
– Concettualmente si tratta sempre di un unico bus ma suddiviso
in più “tratti” operanti a velocità differente
• Opportuni processori di controllo (Es. chipset della
scheda madre) si occupano di gestire i passaggi di dati
tra i diversi bus
Gianpaolo Cugola - Impianti di Elaborazione dell'Informazione
Politecnico
di Milano
51
Un moderno PC x86: schema
architetturale
processore
cache L1
processore
video
scheda video
RAM
video
cache L2
RAM
bus AGP
bus esterno
bus PCI
bus ISA
controller dischi
(EIDE o SCSI)
controller
periferiche
scheda PCI
bus dischi
scheda ISA
H D1
Gianpaolo Cugola - Impianti di Elaborazione dell'Informazione
Gianpaolo Cugola - Impianti di Elaborazione dell'Informazione
...
H Dn
CD
52
Politecnico
di Milano
Una scheda madre socket 7
ZIF socket 7 batteria tampone
slot ISA
ROM BIOS
cache L2
chipset
slot PCI
slot AGP
bus fdd
slot
DIMM
slot
SIMM
presa
tastiera
alimentazione
bus EIDE
Gianpaolo Cugola - Impianti di Elaborazione dell'Informazione
Politecnico
di Milano
53
Una scheda madre slot 1
slot 1
Gianpaolo Cugola - Impianti di Elaborazione dell'Informazione
Gianpaolo Cugola - Impianti di Elaborazione dell'Informazione
54
Politecnico
di Milano
Una scheda madre dual slot 1
slot 1
Gianpaolo Cugola - Impianti di Elaborazione dell'Informazione
Politecnico
di Milano
55
Alcuni processori x86
Celeron 400
socket 370
Celeron 400
slot 1
PII 400
Gianpaolo Cugola - Impianti di Elaborazione dell'Informazione
Gianpaolo Cugola - Impianti di Elaborazione dell'Informazione
56
Politecnico
di Milano
Caratteristiche architetturali di
alcuni processori x86 - 1
•
Intel 486
•
8 registri interni a 32 bit
8 kbyte cache L1 unificata
1 istruzione per ciclo di clock
Clock interno: 33, 66 e 100 Mhz
Bus esterno 33 Mhz
1.2 - 1.8 (DX4) milioni di
transistor
– 1 - 0.8 micron
•
Intel Pentium MMX
–
–
–
–
–
–
8 registri interni a 32 bit
16+16 kbyte cache L1
2 istruzioni per ciclo di clock
Clock interno: fino a 300 Mhz
Bus esterno 66 Mhz
3.5 milioni di transistor (0.35 µ)
Intel Pentium II
registri interni a 32 bit
16+16 kbyte cache L1
3 istruzioni per ciclo di clock
Clock interno: fino a 450 Mhz
Cache L2 integrata nel package
(512 Kbyte operanti alla metà
della frequenza del clock interno)
– Bus esterno 100 Mhz
– 7.5 milioni di transistor (0.25 µ)
–
–
–
–
–
–
–
–
–
–
–
•
Intel Celeron “mendocino”
– Come sopra ma con 128 Kbyte di
cache L2 “on die” operanti a
piena frequenza...
– ... e bus esterno a 66 Mhz
– Disponibile in versione slot 1 o
socket 370
Gianpaolo Cugola - Impianti di Elaborazione dell'Informazione
Politecnico
di Milano
57
Caratteristiche architetturali di
alcuni processori x86 - 2
• Intel Pentium III
– Come Pentium II ma con
un set esteso di istruzione
(KN I)
– Annunciato anche in
tecnologia 0.18 µ e bus
esterno a 133 Mhz
• IBM PowerPC 750
–
–
–
–
–
–
• AMD K6-2
–
–
–
–
–
–
–
registri interni a 32 bit
32+32 kbyte cache L1
3 istruzioni per ciclo di clock
Clock interno: fino a 450 Mhz
Bus esterno 100 Mhz
9.300.000 transistor (0.25 µ)
Dispone di un set di istruzioni
supplementare (3DN ow!)
architettura RISC
registri interni a 32 bit
32+ 32 Kbyte cache L1
4 istruzioni per ciclo di clock
Clock interno fino a 400 Mhz
Bus cache L2 operante alla
metà della velocità del
processore (fino a 1 MB)
– 6.350.000 transistor (0.22 µ)
Gianpaolo Cugola - Impianti di Elaborazione dell'Informazione
Gianpaolo Cugola - Impianti di Elaborazione dell'Informazione
58