Scaricare la presentazione
La presentazione è in caricamento. Aspetta per favore
PubblicatoGeltrude Fumagalli Modificato 10 anni fa
1
1 RELAZIONE FINALE ANNO 2002 FABIO BARONCINI CINZIA MARCACCI CALCOLATORI
2
2 Controllo Unità Aritmetico logica Registri Memoria Principale Unità DiscoDisplay Unità centrale CPU Dispositivi di ingresso\uscita bus Un calcolatore digitale è composto da CPU,CPU memoriememorie e dispositivi di input/output.
3
3 Central Processing Unit Organizzazione Descrizione Funzionamento
4
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.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.memoria
5
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.
6
6 A+B A B AB ALU A+B Registri Registro ALU dellingresso Bus di ingresso dellALU Registro di uscita dellALU 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.ALU 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
7
7 Arithmetic 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.ciclo del data path
8
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 allinterno della CPU.
9
9 Il funzionamento della CPU si basa su una sequenza di operazioni, che insieme prendono il nome di fetch-decode-execute: 1prelievo delle istruzioni dalla memoria, e immissione di queste nel registro delle istruzioni; Caricamento del nuovo program counter 2determinazione del tipo di istruzione 3ricerca 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.hardwaresoftware
10
10 Lhardware e linsieme degli elementi costitutivi di un elaboratore Il 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.
11
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. 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
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 dallhardwareTutte le istruzioni vengono eseguite direttamente dallhardware 2)Ottimizzare la velocita con la quale vengono iniziate le istruzioniOttimizzare la velocita con la quale vengono iniziate le istruzioni 3)Le istruzioni dovrebbero essere facilmente decodificabiliLe istruzioni dovrebbero essere facilmente decodificabili 4)Solo le istruzioni di load e store dovrebbero contenere indirizzi di memoriaSolo le istruzioni di load e store dovrebbero contenere indirizzi di memoria 5) Disporre di molti registri.Disporre di molti registri I progettisti, per migliorare le prestazioni delle macchine, utilizzano il parallelismo.parallelismo.
13
13 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
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 quellordine ma se due istruzioni usano uno stesso registro bisogna sempre controllare che la seconda istruzione usi il registro dopo della prima.
15
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.
16
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;
17
17 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.
18
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 secondolivello di istruzioni 2 - a livello di processore facendo lavorare CPU multiple sullo stesso programma.livello di processore
19
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 lesecuzione delle istruzioni in molte fasi, ognuna delle quali viene gestita da una parte di hardware. Ogni fase e chimata stadio.pipeline 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 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).
20
20 Oltre ad una pipeline singola che divide lesecuzione delle istruzioni in molte fasi esistono anche delle pipeline doppie. Stadio di lettura delle istruzioni Stadio di decodifica delle istruzioni Stadio di lettura degli operandi Stadio di esecuzione delle istruzioni 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.pipeline multiple
21
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 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.
22
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 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.
23
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
24
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 ce` accede alla memoria centrale. In questo modo i tempi di accesso medi si riducono notevolmente.
25
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
26
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.
27
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.
28
28 Testina di lettura e scrittura Braccio del disco preambolo Gap fra settori dato ( 512 byte ) codice di correzione SETTORESETTORE Direzione del movimento del braccio ECCECC
29
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.
30
30 … …… Simboli di 14 bit 42 Simboli fanno un frame ECC Dati preambolo 98 Frame fanno 1 settore Frame di 588 bit, ciascuno contenente 24 byte di dati Settore di tipo 1 (2352 byte )
Presentazioni simili
© 2024 SlidePlayer.it Inc.
All rights reserved.