Architettura dei computer • In un computer possiamo distinguere quattro unità funzionali: – il processore (CPU) – la memoria principale (RAM) – la memoria secondaria – i dispositivi di input/output • Il processore e la memoria principale costituiscono l’unità centrale Componenti principali di un computer Memoria principale (centrale) Processore Bus Controller Stampante Video/display Periferiche di input/output Memorie di massa (secondarie) Organizzazione fisica attuale Periferiche per l’input Unità centrale e memorie Periferiche per l’output Hard Disk Lettore CD Floppy Disk Tastiera e mouse RAM Scanner CPU CPU + HD, CD, Floppy Le idee ed i pionieri Architettura dei computer • Le varie componenti comunicano attraverso uno o più insiemi di collegamenti detti bus • Nei computer moderni: – c’e’ un collegamento dedicato detto bus di sistema per la comunicazione tra cpu e memoria principale – ci sono collegamenti per le altre periferiche detti bus locali con i loro adattatori (memorie secondarie, dispositivi di I/O e di rete) • Babbage • Turing • von Neuman Il computer è un calcolatore digitale programmabile dotato di memoria dati e programmi risiedono in memoria 1 La memoria principale • Fornisce la capacità di “memorizzare” le informazioni (i dati e i programmi) • Può essere vista come una lunga sequenza di componenti elementari, ognuna delle quali può contenere un’unità di informazione (un bit) La memoria principale 0 1 2 3 4 • Ciascuna cella è caratterizzata da un indirizzo • Gli indirizzi corrispondono all’ordinamento delle celle nella sequenza • Gli indirizzi sono numeri interi (partono da 0) • Gli indirizzi non sono scritti da nessuna parte, sono determinati dall’ordinamento consecutivo • Le componenti elementari della memoria sono aggregate tra di loro e formano strutture complesse dette celle che possono contenere otto bit (un byte) • La memoria può essere vista come una sequenza di celle • Un altro nome con cui viene indicata la memoria principale è memoria RAM (Random Access Memory) • Questa definizione indica che il tempo di accesso ad una cella è lo stesso indipendentemente dalla posizione della cella • Le operazioni che un Processore può effettuare sulla memoria sono le operazioni di lettura e scrittura di informazioni nelle celle N • L’ indirizzo di una cella è un numero intero e quindi lo si può codificare in binario • Il numero di celle di memoria determina il numero di bit necessari a rappresentare l’indirizzo • Viceversa il numero di bit destinati all’indirizzo determina il numero di celle indirizzabili • questo numero viene chiamato Spazio di indirizzamento Dimensioni della Memoria • Le dimensioni della memoria principale variano a seconda del tipo di computer • Nei computer attuali le dimensioni tipiche della memoria principale vanno da 128MB a 2GB (1MB = 220 byte ~ 1.000.000 byte, 1GB = 230 byte ~ 1.000.000.000 byte) 2 Parola di memoria Spazio di indirizzamento • Nei computer attuali lo spazio di indirizzamento è di almeno 32 bit, con cui si possono indirizzare 232 byte = 4GB • Lo spazio di indirizzamento è maggiore della memoria esistente • Una parola di memoria è, a seconda del tipo di computer, un aggregato di (due) quattro o otto byte, sul quale si può operare (leggere e scrivere) come su un blocco unico • Per eseguire le operazioni di lettura e scrittura sulla memoria, si deve specificare l’indirizzo della parola su cui si vuole operare • Gli indirizzi delle parole devono essere multipli del numero di celle (byte) che le compongono Indirizzamento • La cella è l’unità minima di memoria indirizzabile, non sono indirizzabili i singoli bit • La parola è l’unità massima di memoria che è possibile leggere e scrivere in un colpo solo (mediante un’unica istruzione) • La memoria è caratterizzata dal tempo di accesso (tempo necessario per leggere o scrivere un’informazione in una parola) • Le memorie principali dei computer attuali sono molto veloci e i loro tempi di accesso sono di pochi nanosecondi (1 nanosecondo= 10-9 sec, un miliardesimo di secondo) • Le memorie principali sono relativamente costose, (128MB costano qualche decina di euro) Memoria Cache • La memoria principale perde ogni suo contenuto quando si interrompe l’alimentazione elettrica. Questa caratteristica viene chiamata volatilità • È quindi necessario per conservare le informazioni (programmi e dati) avere altri tipi di memoria (memoria secondaria) che conservano il contenuto anche senza alimentazione elettrica • Memoria molto veloce intermedia tra RAM e CPU • i dati di uso piu’ frequente sono mantenuti nella memoria Cache per minimizzare i trasferimenti tra RAM e CPU • Principio di Localita’ alla base dell’architettura con cache: – Localita’ spaziale: il processore utilizza con alta probabilita’ dati che risiedono in locazioni di memoria contigue – Localita’ temporale: se il processore utilizza un dato in memoria, e’ altamente probabile che lo riutilizzi nuovamente in breve tempo 3 Il Processore Riassunto caratteristiche Memoria RAM La memoria RAM è: – veloce (accesso nell’ordine dei nanosecondi) – relativamente costosa – ha dimensioni limitate – è volatile (non può mantenere dati permanenti – è ad accesso diretto (si può accedere a qualsiasi cella senza accedere alle altre) Componenti di un processore Bus Interno REGISTRI Program Counter (PC) Registro di Stato (PS) Unità di Controllo Registro Istruzioni (RI) Registri Generali (16 o 64) Unità AritmeticoLogica Registro Indirizzi Memoria (RIM) Registro Dati Memoria (RDM) Registro di Controllo (RC) • La frequenza con cui vengono eseguiti i cicli di esecuzione è scandita da una componente detta clock • Ad ogni impulso di clock la UC esegue una istruzione macchina • La velocità di elaborazione di un processore dipende dalla frequenza del suo clock • I processori attuali hanno frequenze di clock dell’ordine di 1-3 GHerz (1-3 miliardi di impulsi al secondo) • Il processore è la componente dell’unità centrale che elabora le informazioni contenute nella memoria principale • L’elaborazione avviene eseguendo sequenze di istruzioni (istruzioni macchina) • Il linguaggio in cui si scrivono queste istruzioni viene chiamato linguaggio macchina • Il ruolo del processore è quindi quello di eseguire programmi in linguaggio macchina L’unità di controllo • L’Unità di Controllo (UC) si occupa di coordinare le diverse attività che vengono svolte all’interno del processore • Il processore svolge la sua attività in modo ciclico: ad ogni ciclo corrisponde generalmente l’esecuzione di una istruzione macchina • Ad ogni ciclo vengono svolte diverse attività controllate e coordinate dalla UC n si legge dalla memoria principale la prossima istruzione da eseguire o si decodifica l’istruzione letta p si esegue l’istruzione Il Processore: i registri • Il processore contiene al suo interno un certo numero di registri: unità di memoria estremamente veloci per memorizzare i dati di uso immediato • Le dimensioni di un registro sono tipicamente quelle di una parola di memoria (ad esempio 4 o 8 byte) 4 I registri speciali Esistono due tipi di registri: – i registri speciali utilizzati dalla UC per scopi particolari: • controllo dell’esecuzione del programma • scambio di dati con la memoria centrale – i registri generali utilizzati per contenere dati e risultati di operazioni aritmetiche o logiche • PC: program counter, contiene l’indirizzo della prossima istruzione da eseguire • RI: registro istruzioni, contiene l’istruzione in esecuzione • RS: registro di stato, informazione sullo stato dell’esecuzione e possibili errori • RC: registro di controllo, contiene il codice dell’operazione da eseguire Registri di collegamento con la memoria • RDM: registro dati memoria, contiene il dato da trasferire in o dalla cella di memoria in esame • RIM: registro indirizzi di memoria, contiene l’indirizzo di memoria della cella (parola) in esame Formato delle instruzioni 100 Codice op. Argomento1 Argomento2 Formato istruzione (esempio) • Il registro RDM accede direttamente (senza esaminare altre celle) alla cella il cui indirizzo e’ specificato dal registro RIM Contenuto della memoria principale 0 1 2 cod. op.mem. Ind1/Reg1 Ind2/Reg2 ... Il ciclo di esecuzione di un programma inizio RS:= start PC:= ind. 1a istr. istr. lettura (load)/scrittura (store) in memoria-registri cod. op. reg. Reg1 ... Gli argomenti possono essere indirizzi Reg2 istr. per operazione tra due registri no RS = stop? si RI:= istr ind. in PC PC:=PC+1 RC:= cod. istr. in RI esegui istruzione + -2 00003752 k dato, ad esempio: numero rappr.con segno, esponente e mantissa fine 5 Supporto alla ALU Per operazioni con Floating Point ci puo’ essere accanto alla ALU: • Un modulo interno alla CPU per operazioni con i floating point (FPU) Oppure • Un processore addizionale specifico chiamato coprocessore matematico Le unità di ingresso/uscita (Input/Output) • Le unità di ingresso/uscita (anche dette periferiche), permettono di realizzare l'interazione tra il computer e l'ambiente (compreso l'utente umano) • La loro funzione primaria è quella di consentire l'immissione dei dati all'interno dell'elaboratore (ingresso), o l'uscita dei dati dall'elaboratore (uscita) • Solitamente hanno un autonomia limitata rispetto al processore centrale (sono completamente controllati e coordinati dal processore) Collegamento con perficeriche I/O (esterne esempio stampante) Tipi di processori • Processori CISC (Complex Instruction Set Computer) – il linguaggio macchina ha molte istruzioni piuttosto complesse (piu’ lente da eseguire possono richiedere piu’ cicli di clock) – Esempio Pentium, Macintosh 68000 • Processori RISC (Reduced Instruction Set Computer) – Il linguaggio macchina ha poche istruzioni molto semplici (piu’ veloci da eseguire, eseguite in un unico ciclo di clock) – Esempio Macintosh PowerPC Il controller • Ogni dispositivo di I/O è collegato ad un dispositivo elettronico (il CONTROLLER) che gestisce il coordinamento tra processore, memoria e dispositivo in modo da garantire il corretto trasferimento di dati • Il controller è parte del computer, non del dispositivo • Lo stesso vale per i dispositivi di memoria secondaria Architettura aperta e flessibile CAVO controller computer dispositivo (es. stampante) Dati e segnali di controllo • Il computer deve essere espandibile e configurabile a seconda delle esigenze dell’utente • L’architettura deve avere la massima compatibilita’ rispetto all’ hardware esistente (anche per ragioni commerciali) 6 Unità di I/O Unità di ingresso (input) • tastiera • mouse (dispositivi di puntamento) • scanner (OCR riconoscitori di caratteri) • altri (fotocamere, sensori, lettori di codice a barre, microfono) Unità di uscita (output) • video • stampante • casse • Schede audio (Sound blaster) La Tastiera • La tastiera è il principale dispositivo di input • I tasti possono essere così raggruppati : – tasti alfanumerici; – tasti speciali (il tasto ENTER, il tasto BACK SPACE); – frecce direzionali; – tasti funzione • • • • • • • La tastiera non ha capacità di elaborazione, l'unica cosa che è in grado di fare è di avvertire (interrupt) il processore ogni volta che un carattere è disponibile in ingresso, • Il carattere viene depositato in una memoria temporanea (buffer) e i dati raccolti nella memoria temporanea vengono poi inviati al programma cui erano destinati • La tastiera è un dispositivo di ingresso cieco, nel senso che l'utente non può vedere i dati immessi nel calcolatore • E’ compito del processore riprodurre sul video tutte le informazioni fornite in ingresso tramite la tastiera. La tastiera e il video non sono pero’ direttamente collegati tra loro. A: tasti funzione B: tasti di spostamento nel testo C: indicatori luminosi D,E: scorciatoie e applicazioni F: frecce di movimento G: tastierino numerico Dispositivi di puntamento: Il mouse • Oggi quasi tutti i computer hanno un dispositivo di puntamento: il mouse • Una freccia indica la posizione del mouse sul video e lo spostamento del mouse sul tavolo viene comunicato al processore, che produce lo spostamento corrispondente della freccia sul video • Una volta raggiunta la posizione desiderata, premendo uno dei pulsanti del mouse si genera un segnale che può corrispondere a diverse funzioni • Ci sono vari tipi di mouse, meccanici e ottici • altri dispositivi di puntamento, trackball, tavolette grafiche, schermi sensibili (touchscreen), joystick 7 video • Dal punto di vista Ilfisico, un video può essere visto come una matrice di punti illuminati con diversa intensità • Ogni punto sullo schermo è un pixel e un'immagine viene composta accendendo o spegnendo i pixel sullo schermo • Oggi sono comuni video con un numero di colori che va da 256 fino a 16 milioni (profondità di colore) Standard del video • VGA (Video Graphic Arrays) 640x 480 colori a 8 bit (256 colori) • SVGA (Super VGA) 600x800 fino a 24 bit (16 milioni di colori) • XGA (Extended Graphic Arrays) 1024x 768 fino a 24 bit (16 milioni di colori) Parametri del video • Risoluzione: nei personal sono oggi comuni video con risoluzioni che vanno da 640X480 fino a 4096X3300 pixel (altissima risoluzione) • Dot-pitch: Parametro correlato, è la distanza tra due pixel: più è piccola più l’immagine è nitida • Frequenza di refresh: (refresh rate) che indica la frequenza con cui le immagini sono ridisegnate sullo schermo. (Frequenze dai 70Hz garantiscono un’immagine stabile senza tremolio) Hardware specifico • L’immagine (codificata) che vediamo sul video, viene memorizzata in una memoria specializzata detta MEMORIA VIDEO (VRAM) che è parte della scheda video. • L’animazione e la grafica 3D richiedono inoltre una quantità enorme di dati che devono essere trasferiti ed elaborati per la visualizzazione • Nei computer attuali è presente spesso un processore autonomo che gestisce l’elaborazione grafica in modo da sgravare la CPU (Acceleratore grafico) Tipi di video • La dimensione di un video viene misurata in pollici e fa riferimento alla lunghezza della diagonale • Ad esempio, quando si parla di un video a 14 pollici, indicati come 14", si intende un video con una diagonale lunga 14 pollici • C’è un rapporto ottimale tra dimensioni del video e risoluzione, non necessariamente una risoluzione elevata è adatta a video di piccole dimensioni • CRT (Raggi catodici) come i televisori • LCD (Cristalli liquidi) – a matrice attiva – a matrice passiva (vecchio) • PDP (Plasma) 8 La stampante I Parametri di valutazione delle prestazioni di una stampante sono: • La velocità di stampa, che viene solitamente misurata in pagine al minuto (ppm), o linee al minuto (lpm) o in caratteri al secondo (cps), Esistono diversi tipi di stampanti; i più comuni sono: – Stampanti ad aghi – Stampanti a getto di inchiostro – Stampanti laser • la risoluzione (qualità) di stampa, che indica quanto precisa è la riproduzione e si misura in punti per pollice (dpi= dots per inch) Stampanti a getto di inchiostro Stampanti ad aghi (obsolete) • Il simbolo da stampare è determinato da una matrice di aghi da cui esce l’inchiostro • La forma del simbolo da stampare è determinata dagli aghi sporgenti che vengono a contatto con la carta • Qualità di stampa mediocre, stampanti economiche, usate ancora per moduli continui, copie carbone, stampa multipla • Risoluzione ~ 100-200 dpi • Velocità < 20 ppm • La stampa è determinata da inchiostro liquido spruzzato sulla carta da ugelli molto piccoli contenuti in una testina • Mediante la magnetizzazione dell’inchiostro è possibile controllare la sua distribuzione sulla carta • Qualità buona, stampanti economiche, costo elevato dell’inchiostro, facile usura • Risoluzione ~600dpi • Velocità <6 ppm Stampanti laser Procedimento simile a quello di una fotocopiatrice: • L’inchiostro solido viene fissato sulla carta mediante riscaldamento facendo passare il foglio di carta su un tamburo rivestito di materiale fotovoltaico • I punti del tamburo sono caricati elettricamente mediante un fascio laser di dimensioni molto ridotte • I punti caricati elettricamente attraggono particelle di inchiostro • qualità elevata di stampa costi relativamente alti • Risoluzione ~ 600-1200 dpi, • velocità <30 ppm Altri dispositivi di ingresso/uscita • Scanner (I) bitmap/OCR • Lettori di codici a barre (I) • Modem (I/O) • Microfono (I) • Altoparlanti - Schede audio (O) (Sound blaster) • Plotter (O) (usati per disegni tecnici di grandi dimensioni • ....................... • Sensori e strumenti di varia natura 9