1 / 30

RELAZIONE FINALE

RELAZIONE FINALE. ANNO 2002. CALCOLATORI. FABIO BARONCINI CINZIA MARCACCI. CALCOLATORE. Unità centrale CPU. Un calcolatore digitale è composto da CPU , memorie e dispositivi di input/output. . Controllo. Unità Aritmetico logica. Dispositivi di ingressouscita. Registri.

laurel
Download Presentation

RELAZIONE FINALE

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. RELAZIONE FINALE ANNO 2002 CALCOLATORI FABIO BARONCINI CINZIA MARCACCI

  2. CALCOLATORE 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

  3. Central Processing Unit CPU Descrizione Organizzazione Funzionamento

  4. Descrizione CPU 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.

  5. Bus 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. Organizzazione della CPU Data Path A+B 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’ALUche, a sua volta, riscrive i risultati delle elaborazioni nei registri stessi attraverso i bus di accesso ai registri. Registri A B Registro ALU dell’ingresso A B 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 Bus di ingresso dell’ALU ALU Registro di uscita dell’ALU A+B

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

  8. Memoria CPU 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.

  9. Funzionamento della CPU 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 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 hardwareo da un programma software(microcodice) che legge, decodifica ed esegue istruzioni piu semplici.

  10. Hardware e Software 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’hardwarele 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.

  11. Storia della CPU 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.

  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 dall’hardware • 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 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.

  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 quell’ordine 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 di memoria 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 sisovrappongono con le altre istruzioni;

  17. Disporre di molti registri 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.

  18. Parallelismo 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.

  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 l’esecuzione 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 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).

  20. Pipeline Oltre ad una pipeline singola che divide l’esecuzione 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 sull’uso delle risorse e devono essere tra loro indipendenti. La pipeline principale prende il nome dipipeline 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.

  21. Pipeline multiple 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. 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 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.

  23. Una gerarchia di memoria Registri +lente Cache Da 32KB a alcuni MB +capacita`di 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

  24. Memoria cache 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, maeconomico; 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` dimemoria 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, primacontrolla 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.

  25. La validita’ di questo metodo dipende dalla quantita` di parole che si trovano nella cache. Statisticamente i programmi non accedono alla memoriaa 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 indirizzatauna parola, la pagina di memoria contenente tale parola, viene trasportata dallamemoria principale verso la cache,in modo che la volta seguente la parolasia accessibile piu`velocemente. Memoria principale CPU cache bus Configurazione comune di CPU, cache e memoria

  26. Memoria principale 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. Dischi 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 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. 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

  29. Dischi 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. 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. 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

More Related