L’hardware del PC Componenti dell’elaboratore Hardware Parte fisica del sistema Dispositivi fisici Software Parte logica del sistema Programmi e dati 2 Hardware dell’elaboratore 3 L'architettura del calcolatore 4 Il modello di Von Neumann 5 Il computer “moderno” Unita' di elaborazione, processore, CPU (Central Processing Unit) Memoria centrale, RAM (Random Access Memory) Memoria secondaria, memoria di massa Bus di sistema (collega tutti gli altri componenti) Periferiche di I/O (mouse, tastiera, terminali, stampanti, scanner, ecc.) 6 Lo schema di un computer La comunicazione fra le varie componenti avviene attraverso il bus di sistema. Tramite il bus la CPU legge\scrive dati e istruzioni in memoria, trasferisce da\a la memoria ai 7 dispositivi di I/O, … La struttura di un PC 8 Il bus Il bus è una linea a cui sono contemporaneamente connesse tutte le unità del calcolatore e che consente il trasferimento di dati tra tali unità. Cosa succede se mentre la CPU sta accedendo alla memoria per leggere un dato contemporaneamente da una interfaccia di ingresso/uscita arrivano dei dati che devono transitare sullo stesso bus ? 9 Lo schema di riferimento Schermo Tastiera Mouse Altre periferiche Interfaccia I/O Interfaccia I/O Interfaccia I/O Interfacce I/O Memoria centrale CPU Bus Dati Bus Indirizzi Bus di Controllo 10 Organizzazione di un calcolatore “bus oriented” Dispositivi di I/O Unità di controllo Terminale Unità aritmetico logica (ALU) Registri Memoria centrale Stampante Unità disco BUS 11 Caratteristiche del collegamento a BUS Vantaggi Semplicità: unica linea di connessione implica costi ridotti Estendibilità: aggiunta di nuovi dispositivi molto semplice Standardizzabilità: regole precise di comunicazione tra dispositivi diversi Svantaggi Lentezza: il bus è utilizzabile solo in mutua esclusione Limitata capacità: al crescere del n. di dispositivi collegati Sovraccarico del processore: la CPU funge infatti da master sul controllo del bus 12 La scheda madre (motherboard) Collega tra di loro tutte le componenti del computer (CPU, RAM, hard disk, floppy disk, etc.) zoccoli o slot per le schede zoccolo per il processore zoccolo per la memoria 13 case motherboard 14 Slots per interfacce CPU (Processore) Plugs per dispositivi I/O Memoria temporanea RAM Unità di controllo Memoria di sistema permanente ROM Motherboard 15 La CPU ha il ruolo di master La CPU ha il compito di gestire (si dice che ha il ruolo di master) l’intero sistema e in particolare l’accesso al bus, impedendo alle unità periferiche la possibilità di accedervi autonomamente. Ogni trasferimento di dati attraverso il bus avviene sotto la supervisione della CPU che sincronizza con segnali di controllo i dispositivi che devono colloquiare. 16 IL MICROPROCESSORE (CPU) 17 La CPU (o processore) Si occupa di: fare i calcoli controllare le altre componenti E' il cuore del computer! Esistono diversi tipi di processore (Pentium, Alpha, AMD (Athlon), etc.) 18 Come e' fatto il processore? 19 La struttura del processore L’unità aritmetico-logica (Arithmetic-Logic Unit, ALU) effettua le operazioni di tipo aritmetico e logico sugli operandi forniti ai suoi ingressi. I registri sono piccole celle di memoria interne alla CPU su cui vengono memorizzate le informazioni necessarie per l’esecuzione delle istruzioni (es., l’istruzione che il processore sta elaborando, i dati su cui opera l’istruzione corrente, l’indirizzo della prossima istruzione da eseguire, …) L’unità di controllo coordina le varie unità nell’esecuzione dei programmi, comandando opportunamente i segnali di controllo dei registri, dell’ALU e dei bus che interfacciano la memoria. 20 Microprocessore Con il termine microprocessore si intende un processore realizzato interamente su un unico chip (CPU integrata). Un chip o circuito integrato è costituito da milioni di transistor collegati da sottilissimi fili di alluminio, il tutto all'interno di una piastrina di silicio. Un transistor è un dispositivo elettronico a due stati, una sorta di microscopico interruttore che può essere acceso o spento. 21 Tutte le sue operazioni sono sincronizzate da un clock. Le varie componenti della CPU devono operare in modo coordinato anche dal punto di vista della temporizzazione degli eventi. Questo si ottiene grazie ad un orologio (clock) che fornisce una cadenza temporale a cui tutte le attività elementari sono sincronizzate. 22 Frequenza del clock La frequenza del clock, cioè il numero delle attività elementari che vengono eseguite nell’unità di tempo (tale frequenza viene misurata in hertz, Hz), determina la velocità di elaborazione della CPU. Più alta è la frequenza di clock, maggiore è la velocità di elaborazione del computer. I calcolatori sono perciò caratterizzati non solo dal tipo di CPU che adottano ma anche dalla frequenza del loro clock: frequenze tipiche sono dell’ordine dei 100 MHz per i processori più lenti, sino ai calcolatori più potenti che superano il GHz (1000 MHz). 23 Larghezza del bus La velocità e la potenza di un computer dipendono anche dalla larghezza del bus, ovvero dal numero di bit (lunghezza del singolo dato) che il processore è in grado di ricevere e di elaborare simultaneamente. I primi processori potevano elaborare solo dati di 8 bit. In breve si passò prima a 16 e poi a 32 bit. Oggi tutti i processori sono in grado di elaborare dati rappresentati con 64 bit. 24 La memoria Supporto alla CPU: deve fornire alla CPU dati e istruzioni il più rapidamente possibile Archivio: deve consentire di archiviare dati e programmi garantendone la conservazione e la reperibilità anche dopo elevati periodi di tempo Diverse esigenze: Velocità per il supporto alla CPU Non volatilità ed elevate dimensioni per l’archivio 25 Le memorie Cosa può fare la tecnologia ? Memorie elettroniche relativamente piccole e veloci, volatili, a costo medio alto RAM : lettura e scrittura nell’ordine delle decine di nanosecondi per parola Memorie magnetiche e ottiche, grandi, molto capienti, persistenti e lente Dischi rigidi : lettura e scrittura nell’ordine di alcuni millisecondi per blocco CD ROM, DVD 26 Le memorie I computer usano quindi supporti di memorizzazione di più tipi : una memoria centrale, RAM : contiene i programmi durante la loro esecuzione ed i dati relativi altrimenti il processore sarebbe per la maggior parte del tempo fermo in attesa di dati da/per la memoria una o più memorie di massa (dischi etc.) : che mantengono tutti i dati ed i programmi in attesa di essere eseguiti in modo persistente, anche dopo lo spegnimento del calcolatore 27 La memoria centrale E' la RAM (Random Access Memory) Memorizza: I programmi in esecuzione I dati dei programmi in esecuzione Viene cancellata ogni volta che si spegne il computer. 28 La notazione binaria Tutte le informazioni vengono rappresentate mediante sequenze di 0 e di 1 bit: binary digit Per esigenze logico-costruttive, i bit tra RAM e CPU fluiscono a gruppi di 8. Altra unità di misura utilizzata: byte (sequenza di otto bit) Un byte è la più piccola unità accessibilie singolarmente. 29 Quantità in byte Valore in base 10 Quantità di informazioni testuali 1 byte 100 Un carattere 1 kilobyte 103 Una pagina di testo 1 megabyte 106 Due o tre racconti 1 gigabyte 109 Una biblioteca di facoltà 1 terabyte 1012 La biblioteca di una grande Università 1 petabyte 1015 Tutto il materiale stampato in tutte le biblioteche degli USA 1 exabyte 1018 Tutte le parole stampate nella storia dell’uomo 1 zattabyte 1021 … 1 yottabyte 1024 … 30 La struttura della memoria I bit nella memoria sono raggruppati in celle (o registri) Tutte le celle sono formate dallo stesso numero di bit Ogni cella ha un indirizzo che serve per accedere all’informazione contenuta nella cella La cella è l’unità indirizzabile più piccola 31 Uno schema della memoria 0 ........ 32 bit Registri 32 bit RAM ........ ........ 1023 32 Operazioni sulla memoria Si possono eseguire solo due operazioni: lettura e scrittura Lettura: con questa operazione si accede al contenuto di una cella di memoria che viene trasferito, senza essere modificato, alla CPU. Scrittura: con questa operazione il contenuto di una cella di memoria viene modificato, e viene sostituito con dati provenienti dalla CPU. 33 Caratteristiche della memoria RAM Il nome random access (accesso casuale) deriva dal fatto che in una memoria RAM si può accedere ai dati in qualunque posizione si desideri, specificandone l’indirizzo. La memoria RAM di un computer domestico può contenere fino a qualche GigaByte, mentre nelle macchine professionali si arriva anche a decine di GigaByte. Il tempo di accesso è dell’ordine di pochi miliardesimi di secondo. 34 Il ciclo fetch-decode-execute Il processore esegue le istruzioni di un programma una alla volta in sequenza: estrae le istruzioni dalla memoria, le interpreta e le esegue una dopo l’altra. Un programma indica la sequenza di istruzioni da eseguire per ottenere la soluzione ad un dato problema. Il processore esegue ogni istruzione mediante una sequenza ben definita di operazioni detta ciclo di istruzione o ciclo macchina. Estrazione di una istruzione (fase di fetch) Decodifica dell’istruzione (fase di decode) Esecuzione dell’istruzione (fase di execute) Ripetendo questa semplice sequenza di operazioni, il processore è in grado di eseguire programmi comunque complessi. 35 Il ciclo fetch-decode-execute Per ogni istruzione da eseguire, il processore estrae l'istruzione, la decodifica, e la esegue. 36 Processore e RAM La connessione tra memoria e processore rappresenta un limite degli elaboratori di Von Neumann. Limite architetturale: permette l’accesso ad una sola informazione per volta (“collo di bottiglia”). Limite tecnologico: la velocità con cui il processore ottiene le informazioni dalla memoria centrale (velocità di accesso della RAM) è inferiore alla velocità con cui è in grado di elaborarle. Soluzioni: Allargamento del bus di dati, in modo da poter estrarre più istruzioni e/o dati per volta. Superamento del limite tecnologico mediante l’introduzione di una memoria intermedia tra memoria centrale e processore che approssimi la velocità del processore. 37 La memoria Cache Piccola RAM molto veloce, interposta tra CPU e memoria principale per migliorare le prestazioni del sistema. Quando viene indirizzata una parola, quella parola e alcune di quelle vicine vengono trasferite dalla lenta memoria centrale nella più piccola e veloce memoria cache, in modo che la parola successiva sia accessibile più velocemente. 38 Memoria cache Memoria piccola e molto veloce Processore Cache RAM 39 Memoria cache Memoria piccola e molto veloce Processore Cache Copia dei dati usati di recente RAM Tutti i dati 40 41 Memoria cache I computer attuali hanno tutti uno o più livelli di cache per ottimizzare le prestazioni della CPU. La memoria cache viene collegata direttamente alla CPU, senza che i dati debbano passare attraverso il bus. 42 Altre memorie elettroniche 43 Memorie secondarie o di massa Le memorie secondarie o di massa sono utilizzate per memorizzare grandi volumi di dati in modo permanente. La caratteristica principale di tali memorie è la non volatilità. Consentono la memorizzazione di dati e programmi che non sono istantaneamente utilizzati ma che possono essere reperiti nel momento in cui la CPU ne fa richiesta. Tali memorie comprendono due elementi distinti: il supporto di memorizzazione, ovvero il componente fisico su cui vengono memorizzati i dati; Dischetto, CD-Rom… il drive, ovvero il relativo dispositivo di funzionamento e di memorizzazione. Unità floppy disk, masterizzatore… 44 Memorie secondarie o di massa Le caratteristiche principali sono: non volatilità: mantengono le informazioni anche a computer spento grande capacità Le memorie secondarie o di massa sono basate principalmente su tecnologie magnetiche e ottiche. ES. Hard disk, floppy disk, CDROM, DVD, etc. I dati sono organizzati in file e gestiti dal file system 45 Dischi magnetici Un disco magnetico si compone di uno o più piatti di alluminio rivestiti di un sottile strato di materiale ferromagnetico. L’informazione viene registrata magnetizzando la superficie del disco. Ogni bit occupa una piccola area sulla superficie. Il disco per funzionare deve essere affiancato da un dispositivo chiamato controller, in genere presente sotto forma di scheda, che si occupa di posizionare la testina sul disco e prelevare le informazioni richieste. Il disco deve essere formattato prima di essere usato. La formattazione consiste nella suddivisione della superficie del disco in tracce e settori. 46 47 Un hard disk 48 49 CDROM 50 Gerarchie di memorie 51 CPU, RAM e Hard Disk sono... ...componenti fisiche, fatte di circuiti e parti meccaniche. L'insieme di tutte le componenti fisiche e' detto hardware 52 Quanto “potente” è il mio PC? Frequenza del processore Dimensione della RAM Dimensione della memoria di massa Velocità di accesso (bus) Grandezza della cache Numero e tipo di porte 53 Dispositivi di I/O Le unità di ingresso/uscita, dette periferiche di input/output permettono di realizzare l'interazione tra l'uomo e la macchina. La loro funzione primaria è quella di consentire l'immissione dei dati all'interno dell'elaboratore (Input), o l'uscita dei dati dall'elaboratore (Output). 54 Il concetto di macchina astratta Alla base di un moderno computer c’è l’idea di rappresentare i programmi in forma digitale. L'elaboratore diviene una macchina “universale” in grado di eseguire qualsiasi compito “calcolabile”, semplicemente inserendo un nuovo programma. Il progettista hw definisce il set di istruzioni dell’elaboratore, ovvero un linguaggio minimo (L1) mediante il quale l’elaboratore può essere programmato A sua volta, anche L1 può essere limitato e difficile da usare, ma si può usare per realizzare un nuovo linguaggio, L2, che consente di eseguire operazioni più sofisticate di L1, e quindi semplifica la programmazione dell’elaboratore 55 Architettura di un computer 56 … come una cipolla 57 Mettendo assieme le cose... I programmi che non sono in esecuzione sono memorizzati nella memoria secondaria Cache CPU RAM Disk App SO Bus 58 Software: SO Il sistema operativo è caricato dalla memoria secondaria in memoria principale quando viene acceso il computer, e vi rimane finché non viene spento. Cache CPU RAM SO Disk App SO Bus Il SO agisce come “manager” del sistema, garantendo che ogni dispositivo hw dialoghi correttamente con gli altri dispositivi. Offre l’interfaccia perché l’utente interagisca con il computer. Esempi: MacOS, WindowsXP, UNIX, Linux, Solaris, ... 59 Lanciare un programma Quando si lancia un programma il sistema operativo controlla la CPU e carica il programma dalla memoria secondaria alla RAM. SO Disk RAM SO App Cache CPU App SO Bus 60 Esecuzione Quando il programma è in esecuzione, carica ad ogni passo una nuova istruzione (dalla memoria o dalla cache), la esegue, e memorizza il risultato nella memoria. App Disk RAM SO App Cache CPU App SO Bus 61 Archittetture non Von Neumann Collo di bottiglia di Von Neumann: limite all’aumento della velcità del processore. 1. 2. Impossibilità fisiche di rimpicciolire i circuiti (ad oggi i transistor sono separati da distanze inferiori a 0.0001 cm) Il tempo richiesto per inviare segnali tra due parti del computer è limitato dal fatto che i segnali elettronici non possono viaggiare a velocità superiori a 299 792 458 metri al secondo (velocità della luce) Se è impossibile costruire qualcosa che lavori due volte più veloce, conviene costruire due cose per volta. Il risultato sarà identico. 62 Elaborazione parallela SIMD (Single Instruction stream/Multiple Data stream): esiste un singolo programma le cui istruzioni sono prelevate/decodificate/eseguite in modo sequenziale da una sola unità di controllo. L’ALU è replicata più volte, con una propria memoria locale. Quando l’unità di controllo legge un’istruzione la distribuisce a ogni ALU che la esegue sui propri dati locali. MIMD (Multiple Instruction stream/Multiple Data Stream): si replica l’itero processore e ogni processore è in grado di eseguire il proprio programma separato nella propria memoria separata. Ognuno dei processori si occupa di una parte del problema complessivo. 63