PARTE II Architettura di un sistema informatico Hardware Informatica Generale 1 La gerarchia di computer Mainframe (es. IBM 3090) – Grandi sistemi informativi ( 100 terminali) Supercomputer (es. CRAY T3E) – Calcolo scientifico intensivo Minicomputer (es. IBM AS/400) – Sistemi informativi aziendali medio/piccoli ( 10 terminali) Workstation (es. Sparcstation SUN) – Applicazioni ingegneristiche, grafica Personal computer Informatica Generale 2 Funzioni e architettura Funzioni generali di un elaboratore – elaborazione dati – memorizzazione dati – trasferimento dei dati – controllo Architettura – Componenti e interconnessioni – Funzioni di ciascun componente Informatica Generale 3 PC: architettura di riferimento Macchina di Von Neumann Bus CPU Memoria centrale I/O int. I/O int. ... I/O int. Elaborazione e controllo Memorizzazione Informatica Generale 4 Un Personal Computer (PC) Informatica Generale 5 PC: componenti interni e periferiche Scheda madre – – – – – CPU RAM Bus Cache ROM Drive (Hard e floppy disk, CD-ROM) Schede di espansione – Scheda grafica – Scheda audio – Modem interno Tastiera Mouse Monitor Stampanti Scanner Altoparlanti Unità disco esterne Modem esterno Informatica Generale 6 Funzione di memorizzazione Memoria della CPU Cache RAM Velocità CPU Memorie di massa (es. dischi) Costo/bit Cache RAM Memorie di massa Informatica Generale 7 Memoria centrale (RAM) Sequenza di elementi binari (bistabili) raggruppati in unità minime indirizzabili (celle) – Elemento binario bit – Cella word (parola) 1W corrisponde a 8, 16, 32 oppure 64 bit Dim. tipiche su PC attuali 32÷256 Mbyte (NB: in linguaggio informatico, 1K=1024, 1M=1024K, 1G=1024M) Informatica Generale 8 32 bit RAM (organizzazione logica) Indirizzi (k bit) 0 4 8 12 . . . 64M-4 2k dimensione della memoria Informatica Generale 9 Bus Indirizzi Decodificatore RAM 0 0 (funzionamento) 0 . . . 1 0 0 1 1 0 1 0 1 . . . 0 Bus di controllo R/W 0 0 1 1 0 1 0 1 Bus dati Informatica Generale 10 Caratteristiche e prestazioni Volatilità Staticità e dinamicità – SRAM vs DRAM – Attualmente RAM = DRAM Tempo di accesso (770 ns) Temporizzazione del “sottosistema di memoria” (15 cicli per accesso) Velocità di trasferimento (picco: 264 528 MB/sec) Informatica Generale 11 Memoria cache Il cosiddetto CPU/RAM “bottleneck” Principi di località – spaziale – temporale Memorie cache di primo e secondo livello – dimensioni (64KB1MB) – prestazioni (tempo di accesso 4 ns) Informatica Generale 12 Gerarchia a due livelli Sistema di memoria L2 CPU RAM Informatica Generale 13 CPU (esecutore del linguaggio macchina) Programmi e dati risiedono nella RAM La CPU esegue continuamente il seguente ciclo: – Legge un’istruzione dalla memoria – Decodifica l’istruzione – Legge dalla memoria i dati utilizzati dall’istruzione – Esegue l’istruzione – Scrive in memoria i risultati calcolati Informatica Generale 14 Componenti della CPU Unità aritmetico logica (detta ALU) operazioni aritmetiche e logiche Unità di controllo ordine di esecuzione, istruzioni di “salto” Registri generali (memoria della CPU) dati delle istruzioni aritmetico/logiche Registri speciali (Program Counter, Instruction Register, Process Status Word, Memory Address Register, Memory Data Register) Informatica Generale 15 Struttura della CPU M A R Unità di controllo IR PC M D R PSW ALU Informatica Generale 16 Linguaggio macchina Istruzioni molto semplici, formate da un codice operativo e (al più) 2 operandi – Codice operativo azione da eseguire – Operandi dati su cui agire {<etichetta>} <codice simbolico> <op1> {<op2>} Codice assembly Esempi: SUB R1,R2 LOAD R,M STORE R,M Codice macchina (vero e proprio) Informatica Generale 17 Linguaggio macchina (2) 8 bit 8 bit Codice operativo Operando1 16bit Operando2 - 256 possibili codici operativi - Operando1 denota uno fra 256 possibili registri interni alla CPU (R0 R255) - Operando2 denota un indirizzo fra 0 e 216-1 Esempio: 00000101 00000001 0100111000100000 LOAD R1 Informatica Generale 20000 18 Ciclo fondamentale della CPU 1) FETCH (lettura dell’istruzione all’indirizzo (rivisto) contenuto nel Program Counter) PC MAR RAM RAM MDR IR 2) Incremento del PC (PC := PC+4) 3) DECODE (decodifica dell’istruzione nell’Instruction Register) 4) EXECUTE (esecuzione dell’istruzione) 3a) Recupero operandi 3b) Esecuzione vera e propria 3c) Memorizzazione dei risultati 5) Torna al passo 1) Informatica Generale 19 Traduzione (o compilazione) 00000000000000000000000000000011 var x: array [1..7] of integer; var i,n,z: integer; if x[1]<x[2] then z := x[1] else z := x[2]; for i := 3 to n do if x[i] < z then z := x[i]; 00000000000000000000000000000010 00000000000000000000000000000101 11111111111111111111111111111101 00000000000000000000000000001100 00000000000000000000000000000011 00000000000000000000000000000111 00000000000000000000000000000110 00000000000000000000000000000111 11111111111111111111111111111101 00000101000000010100111000100000 00000101000000100100111000100100 00100111000000010000000000000010 Informatica Generale 20 Leggi x[1] Leggi x[2] Calcola x[1]-x[2] if x[1]<x[2] then z:=x[1] Se positivo scrivi x[2] in z else z:=x[2]; Se negativo scrivi x[1] in z for i := 3 to n do Leggi n if x[i]<z then z:=x[i]; Scrivi 3 in i Calcola p=i-n Se p>0 vai 7 istruzioni avanti Commenti - “Leggere” significa copiare un dato Leggi x[i], dalla RAM in un registro della CPU Leggi z - Il segno del risultato viene memoriz- Calcola p=x[i]-z zato in un bit del registro PSW Se p<0 scrivi x[i] in z -“vai 7 istruzioni avanti” e “torna 7 Incrementa i di un’unità istruzioni indietro” sono comandi che Torna 7 istruzioni indietro modificano l’ordine di esecuzione …………………………….. Un primo passaggio Informatica Generale 21 Un altro passo verso il codice Copia in R1 il contenuto della cella di indirizzo x Copia in R2 il macchina contenuto della cella di indirizzo x+4 Sottrai (il contenuto di) R2 da R1 ( s := segno(R1-R2) ) Se s=1 salta 3 istruzioni avanti ( PC := PC+8) Copia R2 nella cella (di indirizzo) x+36 Salta due istruzioni avanti ( PC := PC+4) Copia in R1 il contenuto della cella di indirizzo x Copia R1 nella cella x+36 Copia in R3 il contenuto della cella x+32 ……………….. Informatica Generale 22 Codice assembly Formato tipico di una istruzione: {<etichetta>:} <codice simbolico><op1>{<op2>} load R1,x load R2,x+4 sub R1,R2 jmpneg avanti store R2,x+36 jmp piùavanti avanti: load R1,x store R1,x+36 piùavanti: load R3,x+32 …………………………. Informatica Generale 23 Programma in linguaggio 00000000 00000000 0000000000000011 Indirizzo macchina 00000000 00000000 0000000000000010 20000 (Inizio dati) Indirizzo 21000 (Inizio programma) Indirizzo 21024 Indirizzo 21032 00000000 00000000 0000000000000101 …………………………………….……. 00000101 00000001 0100111000100000 00000101 00000010 0100111000100100 00100111 00000001 0000000000000010 10100011 00000000 0101001000100000 00000110 00000010 0100111001000100 10100010 00000000 0101001000101000 00000101 00000001 0100111000100000 00000110 00000001 0100111001000100 00000101 00000011 0100111001000000 …………………………………….……. Informatica Generale 24 Parametri di valutazione delle CPU Set di istruzioni (RISC vs CISC) Frequenza dell’orologio interno di sincronizzazione (clock) (233500 MHz) Banda di elaborazione ( numero di istruzioni eseguite al secondo) Spazio di memoria indirizzabile Presenza di coprocessore matematico, memoria cache di primo livello, ecc. Informatica Generale 25 Dispositivi di memorizzazione Dischi magnetici (hard disk) Memorizzazione “permanente” di di massa programmi e dati Dischi magnetici (floppy disk) Trasferimento dati fra computer Nastri magnetici Backup dei dati Dischi ottici (CD ROM) Distribuzione di programmi, giochi, archivi storici, ecc. Informatica Generale 26 Dischi rigidi (hard disk) Supporti circolari magnetizzati in continua rotazione (5400 10000 giri/min) Formato a tracce e settori (valori tipici: 400 tracce, 32 settori) Testina di lettura a movimento radiale Tempo di accesso (5 10 msec) vicino al limite fisico Capacità elevate (> 4 GB) Costo contenuto (40 150 lire/MB) Informatica Generale 27 Dischetti rimovibili (floppy disk) Supporti circolari (diametro 3.5 o 5.25 pollici) magnetizzati, in rotazione solo al momento dell’accesso Velocità di rotazione bassa (300 360 giri/min Tempo di accesso elevato (decimi di sec.) Capacità limitata (1.44 MB) Costo unità contenuto (poche decine di migliaia di lire) Informatica Generale 28 Nastri magnetici Organizzazione sequenziale con blocchi (detti record fisici) multitraccia Accesso sequenziale Densità di registrazione 800 6250 Byte per pollice (bpi) Tempo di accesso molto elevato (può essere dell’ordine dei minuti) Uso per copie di sicurezza (backup) Costo elevato ( 2 Mlire per unità DAT) Informatica Generale 29 Lettori ottici (CD ROM) Supporti circolari non riscrivibili Formato a spirale Lettura mediante raggio laser Tempo di accesso (70 100 msec) Capacità elevate in rapporto ai floppy disk ( 650 MB) Costo unità contenuto (100 500 Mlire) Informatica Generale 30 Principali unità periferiche Dispositivi di ingresso (input) – Tastiera – Mouse e altri disp. di puntamento – Scanner Dispositivi di uscita (output) – Video – Stampante Modem Informatica Generale 31 Tastiera Tasti alfanumerici (lettere e cifre, punteggiatura, parentesi) Tasti speciali: return o enter (invio), ctrl (control), esc (escape), ... Tasti direzionali: , , , , ... Tasti funzionali: F1,F2,... Informatica Generale 32 Mouse Il movimento del mouse si ripercuote nel movimento di un cursore sul video La pressione di un tasto comporta l’esecuzione di una qualche azione Mouse + interfacce grafiche sostituiscono in molti casi la tastiera Informatica Generale 33 Scanner Dispositivo per l’acquisizione di immagini (sotto forma di mappe di bit, bitmap) Informatica Generale 34 Alfanumerici: 25 righe 80 caratteri Videoes.(display) Grafici: risoluzione misurata in numero di pixel (picture element) nelle due dimensioni: es. 1024 768, 4096 4096 Pixel: bianco e nero (1 bit) o colore (es. 8 bit) Griglia di 4 4 pixel Memoria RAM associata Tecnologia (raggi catodici o cristalli liquidi) Informatica Generale 35 Stampanti Stampante ad aghi – 9 24 aghi – Tecnica ad impatto copie multiple – Fogli singoli o modulo continuo Stampanti a getto di inchiostro – Ottima qualità anche in grafica – Colore a basso prezzo Stampanti laser – Ottima qualità, costo elevato del colore Informatica Generale 36 Stampanti (prestazioni) Risoluzione Velocità Uso tipico 100200 dpi 200400 Modulo continuo, car/sec copie cc Personal Ink jet 300720 dpi 16 pag/min Computing Professional Laser Da 600 dpi 420 jet pag/min Computing Aghi Informatica Generale Colore Bassa qualità Buona qualità Costo elevato 37 Modulatore/demodulatore Modem Effettua conversioni digitale/analogico e viceversa per trasmissioni su linea telefonica Velocità tipica attuale 56Kbit/sec Informatica Generale 38 Interfaccia di I/O Scheda di interfaccia (fra bus e periferica) Modalità di trasferimento – seriale: mouse, tastiera (standard RS-232C) – parallelo: stampante (standard centronics) Gestione dell’I/O – a controllo di programma – mediante interruzione – con accesso diretto alla memoria (Direct Memory Address, o DMA) Informatica Generale 39 Esempio di gestione della stampa di una riga A controllo di programma Il processore invia un carattere alla scheda di interfaccia, attende che questa segnali l’avvenuta stampa, quindi invia il carattere successivo. Mediante interruzione Il processore invia un carattere alla scheda, quindi si “occupa d’altro”. Quando la stampa termina, l’interfaccia manda un segnale di interruzione al processore per segnalare la nuova disponibilità dell’unità periferica. Con accesso diretto alla memoria Il processore invia ad una opportuna unità DMA l’indirizzo di memoria e la lunghezza del blocco dati da stampare. L’unità DMA gestisce quindi l’I/O. Informatica Generale 40 Bus di sistema Ogni informazione fra dispositivi differenti passa attraverso il bus È la risorsa critica per eccellenza Ha una sua temporizzazione fissa (attualmente 66 o 100 MHz) Informatica Generale 41