1 RELAZIONE FINALE ANNO 2002 FABIO BARONCINI CINZIA MARCACCI CALCOLATORI.

30
1 RELAZIONE FINALE ANNO 2002 FABIO BARONCINI CINZIA MARCACCI CALCOLATORI

Transcript of 1 RELAZIONE FINALE ANNO 2002 FABIO BARONCINI CINZIA MARCACCI CALCOLATORI.

Page 1: 1 RELAZIONE FINALE ANNO 2002 FABIO BARONCINI CINZIA MARCACCI CALCOLATORI.

1

RELAZIONE FINALE

ANNO 2002

FABIO BARONCINICINZIA MARCACCI

CALCOLATORI

Page 2: 1 RELAZIONE FINALE ANNO 2002 FABIO BARONCINI CINZIA MARCACCI CALCOLATORI.

2

Controllo

Unità Aritmetico

logica

Registri

Memoria Principale

UnitàDisco Display

Unità centrale CPU

Dispositivi di ingresso\uscita

bus

Un calcolatore digitale è composto da CPU,

memorie e dispositivi di input/output.

Page 3: 1 RELAZIONE FINALE ANNO 2002 FABIO BARONCINI CINZIA MARCACCI CALCOLATORI.

3

Central Processing Unit

Organizzazione

Descrizione

Funzionamento

Page 4: 1 RELAZIONE FINALE ANNO 2002 FABIO BARONCINI CINZIA MARCACCI CALCOLATORI.

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:

- l’unita’ di controllo: legge le istruzioni della memoria

- l’unità aritmetico logica: esegue le operazioni aritmetiche (come addizione e sottrazione) e logiche (come AND e OR)

- una piccola memoria.

Page 5: 1 RELAZIONE FINALE ANNO 2002 FABIO BARONCINI CINZIA MARCACCI CALCOLATORI.

5

Un 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.

Page 6: 1 RELAZIONE FINALE ANNO 2002 FABIO BARONCINI CINZIA MARCACCI CALCOLATORI.

6

A+B

A

B

A B

ALU

A+B

Registri

Registro ALU dell’ingresso

Bus di ingresso dell’ALU

Registro di uscita dell’ALU

L’organizzazione interna di una CPU è caratterizzata dal data path, che è costituito da una serie di componenti, tra i quali l’ALU, i registri, e molti bus di comunicazione. I registri memorizzano i dati che vengono poi utilizzati e rielaborati dall’ALU che, a sua volta, riscrive i risultati delle elaborazioni nei registri stessi attraverso i bus di accesso ai registri.

l registri più importanti sono:•il Program Counter (PC) che indica la precisa istruzione da recuperare e eseguire•l’Instruction Register (IR) che memorizza le istruzioni che vengono eseguite in quel momento

Page 7: 1 RELAZIONE FINALE ANNO 2002 FABIO BARONCINI CINZIA MARCACCI CALCOLATORI.

7

Arithmetic Logic UnitL’ALU 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.

Page 8: 1 RELAZIONE FINALE ANNO 2002 FABIO BARONCINI CINZIA MARCACCI CALCOLATORI.

8

La 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 all’interno della CPU.

Page 9: 1 RELAZIONE FINALE ANNO 2002 FABIO BARONCINI CINZIA MARCACCI CALCOLATORI.

9

Il funzionamento della CPU si basa su una sequenza di operazioni, che insieme prendono il nome di fetch-decode-execute:

1 prelievo delle istruzioni dalla memoria, e immissione di queste nel registro delle istruzioni; Caricamento del nuovo program counter

2 determinazione del tipo di istruzione3 ricerca operandi ed esegui l’istruzione.

Il programma utilizzato dalla CPU per compiere il fetch-decode-execute è una procedura guidata dall’unita’ 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.

Page 10: 1 RELAZIONE FINALE ANNO 2002 FABIO BARONCINI CINZIA MARCACCI CALCOLATORI.

10

L’hardware e’ l’insieme 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 l’hardware le esegue direttamente. L’utilizzo del software è meno costoso, e il risparmio si ha soprattutto quando le istruzioni sono molto complicate. Inoltre il software ha la possibilità di correggere l’implementazione 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.

Page 11: 1 RELAZIONE FINALE ANNO 2002 FABIO BARONCINI CINZIA MARCACCI CALCOLATORI.

11

Durante 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. Nell’ambito di un nuovo studio, un gruppo di Berkeley progetto’ una CPU su chip VLSI che non utilizzava l’interpretazione (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’ l’importanza di proggettare processori che eseguissero le istruzioni velocemente. Inizio’ quindi una lotta tra RISC e CISC (Complex Istruction Set Computer) tuttora aperta.

Page 12: 1 RELAZIONE FINALE ANNO 2002 FABIO BARONCINI CINZIA MARCACCI CALCOLATORI.

12

Ci sono dei principi di progettazione chiamati principi di progettazione RISC, che gli architetti delle CPU possono seguire. Tra i piu’ importanti troviamo:

1) Tutte le istruzioni vengono eseguite direttamente dall’hardware

2) Ottimizzare la velocita’ con la quale vengono iniziate le istruzioni

3) Le istruzioni dovrebbero essere facilmente decodificabili

4) 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.

Page 13: 1 RELAZIONE FINALE ANNO 2002 FABIO BARONCINI CINZIA MARCACCI CALCOLATORI.

13

Tutte le istruzioni comuni vengono eseguite direttamente dall’hardware 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.

Page 14: 1 RELAZIONE FINALE ANNO 2002 FABIO BARONCINI CINZIA MARCACCI CALCOLATORI.

14

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 quell’ordine ma se due istruzioni usano uno stesso registro bisogna sempre controllare che la seconda istruzione usi il registro dopo della prima.

Page 15: 1 RELAZIONE FINALE ANNO 2002 FABIO BARONCINI CINZIA MARCACCI CALCOLATORI.

15

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.

Page 16: 1 RELAZIONE FINALE ANNO 2002 FABIO BARONCINI CINZIA MARCACCI CALCOLATORI.

16

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;

Page 17: 1 RELAZIONE FINALE ANNO 2002 FABIO BARONCINI CINZIA MARCACCI CALCOLATORI.

17

Poiche’ l’accesso alla memoria e’ molto lento e’ necessario disporre di molti registri, almeno 32, in modo che un’istruzione, una volta letta, possa essere conservata in un registro fin quando non e’ piu’ necessaria.

Page 18: 1 RELAZIONE FINALE ANNO 2002 FABIO BARONCINI CINZIA MARCACCI CALCOLATORI.

18

Un 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 parallelismo:1 - a livello di istruzioni, in modo da eseguire piu’ istruzioni al secondo

2 - a livello di processore facendo lavorare CPU multiple sullo stesso programma.

Page 19: 1 RELAZIONE FINALE ANNO 2002 FABIO BARONCINI CINZIA MARCACCI CALCOLATORI.

19

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 l’esecuzione delle istruzioni in molte fasi, ognuna delle quali viene gestita da una parte di hardware . Ogni fase e’ chimata stadio.

Stadio di lettura delle istruzioni

Stadio di decodifica delle istruzioni

Stadio di lettura degli operandi

Stadio di esecuzione delle istruzioni

Stadio di

scrittura

Il primo stadio legge le istruzioni della memoria e le mette in un buffer, il secondo decodifica l’istruzione 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 l’ultimo 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 un’istruzione) e la capacita’ elaborativa del processore (quanti MIPS – Mega Instruction Per Second - ha la CPU).

Page 20: 1 RELAZIONE FINALE ANNO 2002 FABIO BARONCINI CINZIA MARCACCI CALCOLATORI.

20

Oltre ad una pipeline singola che divide l’esecuzione delle istruzioni in molte fasi esistono anche delle pipeline doppie.

Stadio di lettura delle istruzioni

Stadio di decodifica delle istruzioni

Stadio di decodifica delle istruzioni

Stadio di lettura degli operandi

Stadio di letturadegli operandi

Stadio di esecuzione delle istruzioni

Stadio di esecuzione delle istruzioni

Stadio di scrittura

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 sull’uso 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 l’ottimizzazione delle pipeline si sono creati anche processori conteneti pipeline multiple.

Page 21: 1 RELAZIONE FINALE ANNO 2002 FABIO BARONCINI CINZIA MARCACCI CALCOLATORI.

21

Con 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.

Stadio di lettura delle istruzioni

Stadio di decodifica

Stadio di lettura operandi

ALU

ALU

LOAD

STORE

Floating point

Stadio di scrittura

Le unita’ funzionali dello stadio 4 richiedono molto piu’ tempo di un ciclo di clock, soprattutto quelle che eseguono il floating-point.

Page 22: 1 RELAZIONE FINALE ANNO 2002 FABIO BARONCINI CINZIA MARCACCI CALCOLATORI.

22

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 dell’universita’ dell’Illinois 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 l’array 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.

Page 23: 1 RELAZIONE FINALE ANNO 2002 FABIO BARONCINI CINZIA MARCACCI CALCOLATORI.

23

Registri

Cache

Memoria principale

Dischi magnetici

Nastri Dischi ottici

+lente+capacita`di memorizzazione

Da 32KB a alcuni MB

Da 16MB a decine di GB

Da alcuni GB a decine di TB

Memorizzazione di archivi

Memorizzazione permanente

Page 24: 1 RELAZIONE FINALE ANNO 2002 FABIO BARONCINI CINZIA MARCACCI CALCOLATORI.

24

Storicamente la capacita’ di accesso ai dati da parte delle CPU e’ sempre stata limitata dalla velocita’ di I/O della memoria.In realta`non 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 pero`le 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. L`idea principale dietro le cache

e`semplice: le parole di memoria piu`usate vengono tenute in cache. Quando la CPU ha bisogno di una parola, prima controlla nella cache e solo se la parola non c’e` accede alla memoria centrale. In questo modo i tempi di accesso medi si riducono notevolmente.

Page 25: 1 RELAZIONE FINALE ANNO 2002 FABIO BARONCINI CINZIA MARCACCI CALCOLATORI.

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

l`accesso seguente si trovera` nelle vicinanze di A. L`osservazione 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.

L`idea 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 piu`velocemente.

CPU

cache

Memoria principale

bus

Configurazione comune di CPU, cache e memoria

Page 26: 1 RELAZIONE FINALE ANNO 2002 FABIO BARONCINI CINZIA MARCACCI CALCOLATORI.

26

La memoria e`quella 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. L`unita` di base della memoria e`un numero binario chiamato bit che puo’ contenere un uno logico o uno zero logico.

Page 27: 1 RELAZIONE FINALE ANNO 2002 FABIO BARONCINI CINZIA MARCACCI CALCOLATORI.

27

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 gia`sotto 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 d`aria (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 quest`area magnetizzata viene indotta una corrente (positiva o negativa) nella testina , cio`permette di rileggere i bit memorizzati precedentemente.

Page 28: 1 RELAZIONE FINALE ANNO 2002 FABIO BARONCINI CINZIA MARCACCI CALCOLATORI.

28

Testina di lettura e scrittura

Braccio del disco

preambolo

Gap fra settori

dato (512 byte)

codice di correzioneSETTORE

Direzione del movimento

del braccio

E

C

C

Page 29: 1 RELAZIONE FINALE ANNO 2002 FABIO BARONCINI CINZIA MARCACCI CALCOLATORI.

29

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. Poiche`le loro capacita` sono potenzialmente grandi, i dischi ottici sono stati l`ogetto 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.

Page 30: 1 RELAZIONE FINALE ANNO 2002 FABIO BARONCINI CINZIA MARCACCI CALCOLATORI.

30

……

Simboli di 14 bit

42 Simboli fanno un frame

ECCDati

preambolo98 Frame fanno 1 settore

Frame di 588 bit, ciascuno contenente 24 byte di dati

Settore di tipo 1 (2352 byte )