1 ISTITUTO DI ISTRUZIONE SUPERIORE ANGIOY ARCHITETTURA DELL ELABORATORE Prof. G. Ciaschetti 1. Tipi di computer Nella vita di tutti giorni, abbiamo a che fare con tanti tipi di computer, da piccoli o piccolissimi fino ad arrivare ai più grandi. In generale, li distinguiamo in: - computer tascabili: rientrano in questa categoria i palmari, gli smartphone, i lettori mp3, e tutti quelli di piccole dimensioni dedicati a qualche compito specifico (videogiochi, domotica, personal assistant, ecc.). - personal computer (PC): rientrano in questa categoria i tablet, i netbook, i notebook o laptop, i desktop. Non sono dedicati a specifici compiti, e sono usati in genere da un solo utente alla volta. - mainframe: sono i grandi computer dipartimentali con grandi capacità di calcolo e di memoria (centro ricerche, sistemi informativi aziendali, grandi archivi, ecc.). Sono usati da più utenti alla volta. Tutti questi computer funzionano e sono costruiti allo stesso modo: cambiano soltanto le dimensioni fisiche, le capacità di calcolo e di memoria, e gli usi che se ne fanno. Il modello base a partire dal quale è costruito ogni computer è il modello di Von Neumann. 2. Il modello di Von Neumann Secondo questo modello, ogni computer è organizzato come segue: Come possiamo vedere, ci sono: - una Unità di Elaborazione Centrale (CPU, Central Processing Unit) - una Memoria Centrale (CM, Central Memory) - una o più Unità di Input/Output (I/O)
2 che comunicano tra loro per mezzo di bus di comunicazione: dei cavi che portano corrente (cioè informazioni 0 significa non c è corrente, 1 significa c è corrente) da una parte all altra. L Unità di Elaborazione Centrale (CPU) E il cosiddetto microprocessore, e si occupa dello svolgimento di tutte le operazioni, da quelle più semplici fino all esecuzione di programmi complessi. Lavora a una velocità di circa 10-9 secondi. Essa comprende: - Unità Aritmetico/Logica (ALU: Arithmetic Logic Unit): è quella parte della CPU che esegue i calcoli veri e propri, sia aritmetici (somma, differenza, prodotto, divisione, modulo) sia logici (AND, OR, NOT). - Unità di Controllo (CU: Control Unit): è quella parte della CPU che si occupa di prelevare dati e istruzioni da compiere nella memoria RAM, di comandare all ALU di compiere le operazioni richieste, e di scrivere nella memoria RAM i risultati delle operazioni. - Registri: sono delle memorie piccolissime (pochi byte) presenti nella CPU che servono per memorizzare i dati su cui l ALU deve effettuare le operazioni, e i risultati trovati. La Memoria Centrale (CM) Si compone di diverse memorie: - RAM (Random Access Memory): è la memoria di lavoro del computer: qui devono trovarsi tutti i dati e le istruzioni che servono per l esecuzione di un programma. E una memoria volatile, di tipo a condensatore. Ogni byte di memoria ha un suo proprio indirizzo. - ROM (Read Only Memory): è una memoria non volatile che memorizza il BIOS, il programma che deve partire all avvio (bootstrap) del computer. Il BIOS conosce tutte le componenti hardware del computer, e dove andare a caricare il sistema operativo - CACHE: è una memoria temporanea utilizzata per velocizzare l accesso della CPU alla RAM (lo vedremo tra poco). Le Unità di Input/Output (I/O) Sono anche dette unità periferiche (per distinguerle da quelle centrali), e servono per inserire dati nel computer input - o per rendere disponibili all esterno dei dati che si trovano all interno del computer output. Esempi di unità di input sono: la tastiera, lo scanner, la fotocamera digitale, il microfono.
3 Esempi di unità di output sono: lo schermo, la stampante, le cuffie. Esempi di unità che sono sia di input che di output sono: le memorie di massa (tutte le memorie permanenti, come l hard disk, le pendrive, le memorie SD, i CD-ROM e i DVD, ecc.), il modem, il touchscreen. I Bus di collegamento Ci sono diversi tipi di bus. Una prima distinzione è quella che separa i bus della parte nord dai bus della parte sud, come nello schema seguente: I bus della parte nord sono controllati dal Northbridge Chipset, e sono usati per la comunicazione tra la CPU e la Memoria Centrale. Tra questi ci sono: - il front-side-bus: è detto anche bus di sistema, trasporta dati e istruzioni tra la CPU e la RAM a una velocità di 10-8 sec. Su questo bus si poggia anche il bus AGP per il collegamento con la scheda video. - il back-side-bus: trasporta dati e istruzioni tra la CPU e la Cache a una velocità di 10-9 sec. I bus della parte sud sono invece controllati dal Southbridge Chipset, e sono usati per la comunicazione tra la CPU e le unità di Input/Output. Tra questi ci sono: - il bus ATA/EIDE: trasporta informazioni tra la RAM e l Hard-disk (ma ci si possono collegare anche il DVD-ROM e il floppy) a una velocità di 10-3 sec. - il bus PCI: attualmente nella versione express (PCIe) lavora fino a 266MHz. - Il bus USB: serve per il collegamento di periferiche esterne, permette connessioni a caldo e attualmente nella versione 3.0 trasporta fino a 4.8Gbit al secondo. Ognuno dei bus che abbiamo visto, sia quelli della parte nord che quelli della parte sud, è composto di tre parti: - bus dati: è la parte dove viaggiano i dati e le istruzioni - bus indirizzi: è la parte dove vengono inviati gli indirizzi dove andare a leggere/scrivere
4 - bus di controllo: in genere è costituita da un solo bit. Il valore 0 corrisponde all operazione di lettura, il valore 1 equivale all operazione di scrittura. Il numero di bit usati dal bus dati indica la massima quantità di informazione che è possibile trasferire in una sola volta (con n bit ricordate le regole?) Il numero di bit usati dal bus indirizzi indica la massima quantità di memoria che è possibile indirizzare (e quindi avere) nel computer. Con n bit, si possono indirizzare fino a 2 n byte. Ad esempio, se la parte indirizzi del front-side-bus è di 16 bit, possiamo avere una RAM fino a 2 16 = 65Kbyte, mentre se è di 32 bit, possiamo avere una RAM fino a 2 32 = 4Gbyte). 3. Il ciclo di clock Tutte le operazioni che vengono svolte dal computer avvengono solo in determinati istanti di tempo, detti di clock alto. Il clock è un orologio di sistema che dà il tempo (come un direttore d orchestra) a tutti i componenti, per fare in modo che lavorino insieme in modo sincrono. 4. Il ciclo di un istruzione Perché un programma possa essere eseguito esso deve risiedere nella memoria di lavoro RAM. Quando facciamo doppio click sull icona di un programma nel computer, stiamo chiedendo al sistema operativo di caricare quel programma in RAM per iniziare la sua esecuzione. Un programma è una sequenza di istruzioni che vengono eseguite una dopo l altra dalla CPU. L esecuzione di ogni istruzione (che può richiedere più cicli di clock) avviene in tre fasi: - Fetch: l Unità di Controllo che conosce l indirizzo della prossima istruzione da eseguire preleva l istruzione dalla RAM e preleva anche i dati su cui l istruzione deve operare, ponendoli nei registri della CPU. - Decode: l Unità di Controllo riconosce di che istruzione si tratta - Execute: l Unità di Controllo ordina all ALU di eseguire l istruzione Ad esempio, se in un programma ad un certo punto c è la seguente istruzione: S = A + B; /* assegna alla variabile S il risultato della somma tra le variabili A e B */ nella fase fetch viene prelevata dalla RAM l istruzione, e vengono prelevati i valori delle variabili A e B che sono posti nei registri; nella fase decode la CPU capisce che bisogna eseguire una somma; nella fase execute viene eseguita la somma, e poi assegnato il risultato alla variabile S nella RAM. Si noti come viene utilizzato, nelle varie fasi del ciclo dell istruzione, il bus:
Poiché il tempo di accesso alla memoria RAM è maggiore (circa 10-8 sec.) della velocità del processore (circa 10-9 sec.), la CPU utilizza la memoria Cache come anticamera prima di cercare nella RAM. Il tempo di accesso alla Cache è quello del back-side-bus, e cioè pari alla velocità del processore. 5