Title: Presentazione di PowerPoint
1RELAZIONE FINALE
ANNO 2002
CALCOLATORI
FABIO BARONCINI CINZIA MARCACCI
2 Unità centrale CPU
Un calcolatore digitale è composto da CPU,
memorie e dispositivi di input/output.
Controllo
Unità Aritmetico logica
Dispositivi di ingresso\uscita
Registri
Memoria Principale
Unità Disco
Display
bus
3Central Processing Unit
Descrizione
Organizzazione
Funzionamento
4- La CPU e il cervello del calcolatore e il suo
compito è quello di eseguire i programmi,
residenti nella memoria, leggendo ed eseguendo
le loro istruzioni. - I componenti sono collegati tra loro attraverso
dei bus. - Questa è composta da diverse parti
- - lunita di controllo legge le istruzioni
della memoria - lunità aritmetico logica esegue le operazioni
aritmetiche (come addizione e sottrazione) e
logiche (come AND e OR) - una piccola memoria.
5Un bus, che è un gruppo di fili tra loro
paralleli, ha il compito di trasportare segnali
di controllo, dati e indirizzi. Il Bus puo
essere esterno alla CPU e ha lo scopo di
permettere la comunicazione tra la memoria e i
dispositivi di I\O.
6AB
Lorganizzazione interna di una CPU è
caratterizzata dal data path, che è costituito da
una serie di componenti, tra i quali lALU, i
registri, e molti bus di comunicazione. I
registri memorizzano i dati che vengono poi
utilizzati e rielaborati dallALU che, a sua
volta, riscrive i risultati delle elaborazioni
nei registri stessi attraverso i bus di accesso
ai registri.
Registri
A
B
Registro ALU dellingresso
A
B
- l registri più importanti sono
- il Program Counter (PC) che indica la precisa
istruzione da recuperare e eseguire - lInstruction Register (IR) che memorizza le
istruzioni che vengono eseguite in quel momento
Bus di ingresso dellALU
ALU
Registro di uscita dellALU
AB
7Arithmetic Logic Unit
LALU esegue dei calcoli matematici sui dati e
poi memorizza il risultato in un registro in
uscita. I dati hanno due possibilità di percorsi
registro-memoria i dati vengono trasportati dal
registro di uscita alle memoria e/o
viceversa registro-registro i dati vengono
riportati nei registri iniziali per essere
successivamente rielaborati questo processo è
chiamato ciclo del data path, che è il centro del
funzionamento delle CPU.
8La memoria della CPU, che è ad alta velocità ,
viene utilizzata per memorizzare temporaneamente
istruzioni e dati piu frequentemente acceduti.
Questa memoria è composta da una serie di celle
ad accesso Random, sulle quali si può leggere e
scrivere rapidamente perché si trovano
allinterno della CPU.
9- Il funzionamento della CPU si basa su una
sequenza di operazioni, che insieme prendono il
nome di fetch-decode-execute - prelievo delle istruzioni dalla memoria, e
immissione di queste nel registro
delle istruzioni Caricamento del nuovo program
counter - determinazione del tipo di istruzione
- ricerca operandi ed esegui listruzione.
- Il programma utilizzato dalla CPU per compiere il
fetch-decode-execute è una procedura guidata
dallunita di controllo. - Questa interpretazione delle istruzioni può
essere eseguita da un hardware o da un programma
software (microcodice) che legge, decodifica ed
esegue istruzioni piu semplici.
10Lhardware e linsieme degli elementi
costitutivi di un elaboratoreIl software serve
per utilizzare il calcolatore.Il software
suddivide le istruzioni in piccole porzioni che
esegue in modo più semplice attraverso un
interprete, mentre lhardware le esegue
direttamente. Lutilizzo del software è meno
costoso, e il risparmio si ha soprattutto quando
le istruzioni sono molto complicate. Inoltre il
software ha la possibilità di correggere
limplementazione di istruzioni eseguite in modo
sbagliato, di aggiungere nuove istruzioni a costi
minimi e infine di permettere lo sviluppo di
informazioni più elaborate, come nei processori
attuali.
11Durante gli anni 70 dello scorso secolo il
mercato dei calcolatori era in pieno sviluppo e
aumentava sempre di piu la richiesta di
calcolatori a basso costo. Lo sviluppo di
software eliminava i limiti di costo inerenti
alla esecuzione di istruzioni complesse. Venne
creato il calcolatore VAX della Digital Equipment
Corporation, la cui CPU aveva migliaia di
istruzioni e piu di 200 modi diversi per
accedere ai dati in memoria. Verso la fine degli
anni 70 un gruppo tento di creare un
minicomputer ad alto rendimento, che venne
chiamato 801. Nellambito di un nuovo studio, un
gruppo di Berkeley progetto una CPU su chip VLSI
che non utilizzava linterpretazione (tramite
microcodice) e la chiamarono RISC (Reduced
Instruction Set Computer). Poco dopo venne creato
un nuovo chip che prese il nome di MIPS. Questi
processori erano molto diversi da quelli in
commercio e ben presto si capi limportanza di
proggettare processori che eseguissero le
istruzioni velocemente. Inizio quindi una lotta
tra RISC e CISC (Complex Istruction Set Computer)
tuttora aperta.
12- Principi di progettazione
- per i calcolatori moderni
- Ci sono dei principi di progettazione chiamati
principi di progettazione RISC, che gli
architetti delle CPU possono seguire. Tra i piu
importanti troviamo - Tutte le istruzioni vengono eseguite direttamente
dallhardware - Ottimizzare la velocita con la quale vengono
iniziate le istruzioni - Le istruzioni dovrebbero essere facilmente
decodificabili - Solo le istruzioni di load e store dovrebbero
contenere indirizzi di memoria - 5) Disporre di molti registri.
I progettisti, per migliorare le prestazioni
delle macchine, utilizzano il parallelismo.
13- Tutte le istruzioni vengono eseguite
- direttamente dall'hardware
Tutte le istruzioni comuni vengono eseguite
direttamente dallhardware e non vengono
interpretate da microcodice, per cui il sistema
e piu veloce. Mentre per i calcolatori che
implementano istruction set CISC le istruzioni
vengono scomposte in miscroistruzioni anche se
questo passaggio rallenta la macchina.
14- Ottimizzare la velocita' con la quale
- vengono iniziate le istruzioni
I calcolatori moderni cercano di iniziare piu
istruzioni possibili al secondo. Il parallelismo
svolge quindi un ruolo fondamentale nel
miglioramento delle prestazioni perche inviare
una grossa quantita di istruzioni lente a
intervalli brevi e possibile solo se istruzioni
multiple si possono eseguire contemporaneamente.
Anche se le istruzioni devono sempre essere
eseguite nello stesso ordine specificato dal
programma, esse non vengono sempre iniziate e
finite in quellordine ma se due istruzioni
usano uno stesso registro bisogna sempre
controllare che la seconda istruzione usi il
registro dopo della prima.
15- Le istruzioni dovrebbero essere
- facilmente decodificabili
Una limitazione della velocita con la quale
vengono mandate in esecuzione le istruzioni e
dovuta alla decodifica delle istruzioni. Per
eliminare questo problema bisogna usare
istruzioni con struttura regolare, di lunghezza
fissa, con un numero limitato di campi e con
formati molto simili.
16- Solo le istruzioni di load e store
- dovrebbero contenere indirizzi
La maggior parte delle operazioni di load e store
trasferiscono dati tra la memoria e i registri.
Queste operazioni di trasferimento sono piu
lente e quindi talvolta si sovrappongono con le
altre istruzioni
17- Disporre di molti registri
Poiche laccesso alla memoria e molto lento e
necessario disporre di molti registri, almeno 32,
in modo che unistruzione, una volta letta, possa
essere conservata in un registro fin quando non
e piu necessaria.
18Un modo per accelerare il funzionamento dei chip
e aumentare la velocita del clock e i
ricercatori utilizzano il parallelismo, nel
tentativo di eseguire due o piu operazioni
contemporaneamente per ottenere maggiori
prestazioni con la frequenza di clock a
disposizione.Ci sono due tipi di parallelismo1
- a livello di istruzioni, in modo da eseguire
piu istruzioni al secondo 2 - a livello di
processore facendo lavorare CPU multiple sullo
stesso programma.
19- Parallelismo a livello di istruzioni
Per eseguire piu istruzioni parallelamente si
usava un prefetch buffer, che le prelevava invece
di aspettare la lettura completa della memoria.
Quindi il processo si divideva in due parti
lettura della memoria e esecuzione. Mentre la
tecnica di pipeline divide lesecuzione delle
istruzioni in molte fasi, ognuna delle quali
viene gestita da una parte di hardware . Ogni
fase e chimata stadio.
Stadio di decodifica delle istruzioni
Stadio di lettura degli operandi
Stadio di esecuzione delle istruzioni
Stadio di lettura delle istruzioni
Stadio di scrittura
Il primo stadio legge le istruzioni della memoria
e le mette in un buffer, il secondo decodifica
listruzione determinandone il tipo e gli
operandi. Mentre il terzo stadio individua e
recupera gli operandi dai registri o dalla
memoria, il quarto esegue le istruzioni facendo
passare gli operandi nel data path. Infine
lultimo stadio invia i risultati al registro
adatto. In questo modo ad ogni clock possono
essere eseguite fino a 5 istruzioni differenti.
La pipeline permette un compromesso tra la
latenza (tempo impiegato per eseguire
unistruzione) e la capacita elaborativa del
processore (quanti MIPS Mega Instruction Per
Second - ha la CPU).
20Oltre ad una pipeline singola che divide
lesecuzione delle istruzioni in molte fasi
esistono anche delle pipeline doppie.
Stadio di decodifica delle istruzioni
Stadio di esecuzione delle istruzioni
Stadio di scrittura
Stadio di lettura degli operandi
Stadio di lettura delle istruzioni
Stadio di decodifica delle istruzioni
Stadio di esecuzione delle istruzioni
Stadio di letturadegli operandi
Stadio di scrittura
Nella CPU e possibile configurare una doppia
pipeline in questo caso nello stadio di lettura
vengono lette due istruzioni alla volta. Le due
istruzioni non devono pero entrare in conflitto
sulluso delle risorse e devono essere tra loro
indipendenti. La pipeline principale prende il
nome di pipeline U, mentre la secondaria prende
il nome di pipeline V. Quando le due istruzioni
non possono essere lette parallelamente viene
utilizzata soltanto la prima pipeline. Con
lottimizzazione delle pipeline si sono creati
anche processori conteneti pipeline multiple.
21Con le CPU di piu alto livello, viene utilizzata
una singola pipeline con unita funzionali
multiple. Ad esempio il Pentium II ha un
processore con cinque unita funzionali.
ALU
ALU
Stadio di lettura delle istruzioni
Stadio di lettura operandi
Stadio di decodifica
Stadio di scrittura
LOAD
STORE
Floating point
Le unita funzionali dello stadio 4 richiedono
molto piu tempo di un ciclo di clock,
soprattutto quelle che eseguono il
floating-point.
22- Parallelismo a livello di processori
Il parallelismo delle istruzioni non riesce a
velocizzare molto il processore e quindi possono
essere usati anche processori paralleli.Un array
processor e composto da un gran numero di
processori identici che eseguono la stessa
sequenza di istruzioni su un insieme di dati
diverso. Il primo esempio di array processor fu
quello delluniversita dellIllinois chiamto
ILLIAC IV.Un vector processor appare al
programmatore come un array processor molto
efficente ma tutte le operazioni di addizione
vengono eseguite da un sommatore unico dotato di
molte pipeline. Sia larray processor sia il
vector processor lavorano su array (matrici) di
dati. Entrambi eseguono singole istruzioni
mentre il primo lo fa avendo tanti sommatori
quanti elementi ci sono nel vettore. Il vector
processor ha un registro vettoriale, cioe un
insieme di registri tradizionali che si possono
leggere dalla memoria in una sola istruzione.
Mentre gli array processor sono in diminuzione, I
processori vettoriali si possono aggiungere ad
altri processori il risultato e che le parti
del programma che si possono vettorizzare sono
eseguite piu velocemente mentre le altre sono
eseguite su un processore tradizionale.
23Una gerarchia di memoria
Registri
lente
Cache
Da 32KB a alcuni MB
capacitadi memorizzazione
Memoria principale
Da 16MB a decine di GB
Dischi magnetici
Da alcuni GB a decine di TB
Nastri
Dischi ottici
Memorizzazione di archivi
Memorizzazione permanente
24Memoria cache
- Storicamente la capacita di accesso ai dati
da parte delle CPU e sempre stata limitata dalla
velocita di I/O della memoria. - In realtanon si tratta di un problema
tecnologico, ma economico gli ingegneri sono in
grado di costruire memorie veloci come le CPU, ma
il costo complessivo del sistema sarebbe molto
elevato. - Pertanto si tratta di scegliere fra una memoria
piccola, ma veloce oppure una memoria grande ma
lenta. - Ultimamente perole tecniche esistenti
permettono di combinare una piccola - quantita di memoria veloce con una grossa
quantita di memoria lenta. La memoria piccola e
veloce si chiama cache. Lidea principale dietro
le cache - esemplice le parole di memoria piuusate
vengono tenute in cache. Quando - la CPU ha bisogno di una parola, prima
controlla nella cache e solo se la - parola non ce accede alla memoria
centrale. - In questo modo i tempi di accesso medi si
riducono notevolmente.
25- La validita di questo metodo dipende dalla
quantita di parole che si trovano - nella cache. Statisticamente i programmi non
accedono alla memoria a caso - se La CPU richiede un dato della memoria di
indirizzo A, e assai probabile che - laccesso seguente si trovera nelle vicinanze
di A. - Losservazione che gli accessi in memoria
eseguiti a corti intervalli di tempo - tendono a usare solo una piccola parte di
memoria, viene chiamata principio di - localita, ed e alla base del criterio di
gestione della memoria organizzata
gerarchicamente. - Lidea generale e che quando viene
- indirizzata una parola, la pagina di
- memoria contenente tale parola, viene
- trasportata dalla memoria principale
- verso la cache, in modo che la volta
- seguente la parola sia accessibile
- piuvelocemente.
Memoria principale
CPU
cache
bus
Configurazione comune di CPU, cache e memoria
26La memoria equella parte del calcolatore dove
vengono immagazzinati i programmi e i dati.
Alcuni ricercatori del settore usano il termine
store (magazzino) o storage (immagazzinamento)
invece di memoria, anche se il termine storage
solitamente si riferisce alla memorizzazione su
disco. Senza una memoria da cui i processori
possano leggere e copiare le informazioni, i
calcolatori digitali non potrebbero contenere il
proprio programma. Lunita di base della memoria
eun numero binario chiamato bit che puo
contenere un uno logico o uno zero logico.
27Dischi magnetici
Un disco magnetico si compone di uno o piu
piatti di alluminio con rivestimento
magnetizzabile, attualmente hanno dimensioni che
vanno dai 3 ai 12 cm, mentre i dischi per i
notebook computer sono giasotto ai 3 cm e si
stanno ancora rimpicciolendo. La testina di un
disco, contenente un induttore, e sospesa appena
sopra la superficie e viene sostenuta da un
cuscino daria (nei floppy disk tocca la
superficie). Quando passa una corrente negativa o
positiva, la superficie appena sotto la testina
viene magnetizzata, poi quando la testina passa
sopra questarea magnetizzata viene indotta una
corrente (positiva o negativa) nella testina ,
ciopermette di rileggere i bit memorizzati
precedentemente.
28- Geometria di una traccia
- di un disco
S E T T O R E
Gap fra settori
codice di correzione
dato (512 byte)
E C C
preambolo
Testina di lettura e scrittura
Direzione del movimento del braccio
Braccio del disco
29Dischi ottici
Negli anni sono apparsi sul mercato i dischi
ottici (CD o CD-Rom), che hanno densita di
registrazione mediamente piu basse dei dischi
magnetici tradizionali. Poichele loro capacita
sono potenzialmente grandi, i dischi ottici sono
stati logetto di molta ricerca e si sono evoluti
in modo incredibilmente rapido. I CD vengono
prodotti usando un laser a raggi infrarossi ad
alta potenza che brucia fori di 0,8 micron di
diametro in un disco master di vetro ricoperto.
Da questo master viene poi ricavato uno stampo
con degli incavi in corrispondenza dei fori fatti
dal laser. In questo stampo viene iniettata
resina liquida di policarbonato che forma unCD
con la stesa saquenza di fori del master in vetro.
30- Organizzazione dei dati
- su un CD-Rom
Simboli di 14 bit
42 Simboli fanno un frame
Frame di 588 bit, ciascuno contenente 24 byte di
dati
Settore di tipo 1 (2352 byte )
98 Frame fanno 1 settore
preambolo
Dati
ECC