Architettura di un sistema informatico Hardware PARTE II Architettura di un sistema informatico Hardware Informatica Generale
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
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
PC: architettura di riferimento Macchina di Von Neumann Bus I/O int. I/O int. I/O int. . . . CPU Memoria centrale Elaborazione e controllo Memorizzazione Informatica Generale
Un Personal Computer (PC) Informatica Generale
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
Funzione di memorizzazione Memoria della CPU Cache RAM Memorie di massa (es. dischi) Velocità CPU Cache RAM Memorie di massa Costo/bit Informatica Generale
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
RAM (organizzazione logica) 32 bit 4 8 12 . 64M-4 Indirizzi (k bit) 2k dimensione della memoria Informatica Generale
RAM (funzionamento) Bus Indirizzi D e c o d i f i c a t o r e 1 1 1 1 . Bus Indirizzi D e c o d i f i c a t o r e 1 1 1 1 1 . Bus di controllo R/W 1 1 1 1 Bus dati Informatica Generale
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
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
Gerarchia a due livelli Sistema di memoria L2 RAM CPU Informatica Generale
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
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
Struttura della CPU Unità di controllo M A R IR PC PSW M D R ALU Informatica Generale
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 Codice assembly Codice macchina (vero e proprio) {<etichetta>} <codice simbolico> <op1> {<op2>} Esempi: SUB R1,R2 LOAD R,M STORE R,M Informatica Generale
Linguaggio macchina (2) 8 bit 8 bit 16bit Codice operativo Operando1 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 20000 Informatica Generale
Ciclo fondamentale della CPU (rivisto) 1) FETCH (lettura dell’istruzione all’indirizzo 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
Traduzione (o compilazione) 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]; 00000000000000000000000000000011 00000000000000000000000000000010 00000000000000000000000000000101 11111111111111111111111111111101 00000000000000000000000000001100 00000000000000000000000000000111 00000000000000000000000000000110 00000101000000010100111000100000 00000101000000100100111000100100 00100111000000010000000000000010 Informatica Generale
Un primo passaggio Leggi x[1] Leggi x[2] Calcola x[1]-x[2] Se positivo scrivi x[2] in z Se negativo scrivi x[1] in z Leggi n Scrivi 3 in i Calcola p=i-n Se p>0 vai 7 istruzioni avanti Leggi x[i], Leggi z Calcola p=x[i]-z Se p<0 scrivi x[i] in z Incrementa i di un’unità Torna 7 istruzioni indietro …………………………….. Un primo passaggio 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]; Commenti - “Leggere” significa copiare un dato dalla RAM in un registro della CPU - Il segno del risultato viene memoriz- zato in un bit del registro PSW -“vai 7 istruzioni avanti” e “torna 7 istruzioni indietro” sono comandi che modificano l’ordine di esecuzione Informatica Generale
Un altro passo verso il codice macchina Copia in R1 il contenuto della cella di indirizzo x Copia in R2 il 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 R1 nella cella x+36 Copia in R3 il contenuto della cella x+32 ……………….. Informatica Generale
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
Programma in linguaggio macchina 00000000 00000000 0000000000000011 00000000 00000000 0000000000000010 00000000 00000000 0000000000000101 …………………………………….……. 00000101 00000001 0100111000100000 00000101 00000010 0100111000100100 00100111 00000001 0000000000000010 10100011 00000000 0101001000100000 00000110 00000010 0100111001000100 10100010 00000000 0101001000101000 00000110 00000001 0100111001000100 00000101 00000011 0100111001000000 Indirizzo 20000 (Inizio dati) Indirizzo 21000 (Inizio programma) Indirizzo 21024 Indirizzo 21032 Informatica Generale
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
Dispositivi di memorizzazione di massa Dischi magnetici (hard disk) Memorizzazione “permanente” di 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
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
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
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
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
Principali unità periferiche Dispositivi di ingresso (input) Tastiera Mouse e altri disp. di puntamento Scanner Dispositivi di uscita (output) Video Stampante Modem Informatica Generale
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
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
Scanner Dispositivo per l’acquisizione di immagini (sotto forma di mappe di bit, bitmap) Informatica Generale
Video (display) Alfanumerici: es. 25 righe 80 caratteri 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) Memoria RAM associata Tecnologia (raggi catodici o cristalli liquidi) Griglia di 4 4 pixel Informatica Generale
Stampante Stampanti ad aghi Stampanti a getto di inchiostro 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
Stampanti (prestazioni) Informatica Generale
Modem Modulatore/demodulatore Effettua conversioni digitale/analogico e viceversa per trasmissioni su linea telefonica Velocità tipica attuale 56Kbit/sec Informatica Generale
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
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
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