Programmazione in C Hardware Architettura dell’elaboratore Hardware Macchina di Von Neumann Unità di ingresso e uscita Unità operativa Unità di controllo Memoria Struttura a bus 2 © 2006 Politecnico di Torino 1 Programmazione in C Hardware Hardware Macchina di Von Neumann Processore Blocco batterie (clock del BIOS) Connettori ISA BIOS tastiera Chipset USB Slot PCI BIOS (scheda madre) Chipset northern Connettori IDE per controller HD Connettore parallelo Connettore tastiera, mouse e modem Espansione cache Ventola raffreddamento del processore Cache statica Cache statica Slot SIMM (72 pin) Chipset southern Cache statica Cache statica Slot DIM (128 pin) Alimentazione scheda madre AT Connettore floppy disk 4 © 2006 Politecnico di Torino 2 Programmazione in C Hardware Macchina di Von Neumann John Von Neumann (1903–1957) Matematico ungherese Concepì (1940-1950) la possibilità di sfruttare un unico codice e un unico sistema di memoria per memorizzare dati e istruzioni La struttura così congegnata Semplificò l’architettura hardware Aumentò la versatilità e la potenza di calcolo Lo schema concettuale è valido ancora oggi 5 Schema a blocchi Dati Memoria Unità ingresso Unità operativa Unità uscita Unità controllo Ordini © 2006 Politecnico di Torino CPU (Central Process Unit) Stato 6 3 Programmazione in C Hardware Hardware Unità di ingresso (1/2) Dispositivi dedicati all'introduzione delle informazioni nel calcolatore Tastiera Scanner Mouse Lettore CD/DVD 8 © 2006 Politecnico di Torino 4 Programmazione in C Hardware Unità di ingresso (2/2) Interfaccia verso l’elaboratore Trasforma le informazioni Dal mondo umano Segnali meccanici–fisici, analogici, asincroni Nessun riferimento temporale globale Continuo – proporzionale Al mondo dell’elaboratore Segnali elettronici, digitali, sincroni Numerico Segnale (segnali) di riferimento 9 temporale (Clock) Schema interno Essenzialmente costituita da Una parte meccanica o elettro–meccanica Una parte elettronica (interfaccia) Buffer (memoria locale) Parte meccanica o elettro–meccanica Dati Logica di controllo Parte elettronica © 2006 Politecnico di Torino Dati Ordini Stato 10 5 Programmazione in C Hardware Unità di uscita Dispositivo duale all’unità di ingresso Trasforma le informazioni dal sistema di elaborazione al mondo esterno Video Masterizzatore CD/DVD Stampante 11 Schema interno Essenzialmente costituita da Una parte meccanica o elettro–meccanica Una parte elettronica (interfaccia) Buffer (memoria locale) Parte meccanica o elettro–meccanica Dati Logica di controllo Parte elettronica © 2006 Politecnico di Torino Dati Ordini Stato 12 6 Programmazione in C Hardware Hardware Unità di processo centrale Dati Manipolazione dei dati Ordini Unità operativa Unità controllo CPU (Central Process Unit) © 2006 Politecnico di Torino Stato Gestione del controllo 14 7 Programmazione in C Hardware Unità di processo centrale Dati Manipolazione dei dati Unità operativa Ordini Stato Unità controllo Gestione del controllo CPU (Central Process Unit) 15 Schema interno Dati (operandi) Registro B Registro A ALU Ordini (operazione, destinazione, etc.) © 2006 Politecnico di Torino F Stato (Flag) 16 8 Programmazione in C Hardware Registri Elementi di memoria Registro B Registro A Quantità limitata Memorizzazione temporanea ALU F Conservano i dati per uso interno Operandi di una operazione Risultati parziali Etc. Poco numerosi (8, 32, etc.) Dimensione di una parola (word), multiplo del byte (32 bit, 64 bit, etc.) 17 ALU Arithmetic Logic Unit Unità Aritmetico-Logica Svolge Registro B Registro A ALU F Tutti i calcoli aritmetici (somme, sottrazioni, etc.) Tutte le operazioni logiche (not, and, or, etc.) La manipolazione dei dati (shift, etc.) Realizza operazioni in virgola fissa (fixed–point) in singola e doppia precisione È affiancata da altre unità per operazioni più complesse (e.g., operazioni floating–point) 18 © 2006 Politecnico di Torino 9 Programmazione in C Hardware Flag Singoli bit Interpretati come valori logici (booleani) Condizioni falso/vero (0/1) Registro B Registro A ALU F Indicatori di stato del risultato di una operazione Solitamente raggruppati in un registro Flag più comuni Z OW C N (zero) (overflow) (carry) (negative) 19 Hardware © 2006 Politecnico di Torino 10 Programmazione in C Hardware Unità di processo centrale Dati Manipolazione dei dati Unità operativa Ordini Unità controllo Stato Gestione del controllo CPU (Central Process Unit) 21 Unità di processo centrale Dati Manipolazione dei dati Ordini Unità operativa Unità controllo CPU (Central Process Unit) © 2006 Politecnico di Torino Stato Gestione del controllo 22 11 Programmazione in C Hardware Schema interno +1 PC Memoria IR Stato Logica di controllo Ordini 23 Funzionalità Coordina tutte le attività della macchina Gestisce le informazioni di stato Impartisce gli opportuni ordini Garantisce la corretta sequenza delle operazioni Flusso di esecuzione corretto Eventuali condizioni di errore, eccezioni, etc. +1 PC Memoria IR Logica di controllo © 2006 Politecnico di Torino Stato 24 Ordini 12 Programmazione in C Hardware PC Program Counter Contatore di Programma Contiene l’indirizzo dell’istruzione successiva in memoria Una volta prelevata tale istruzione viene incrementato di un valore tale da poter individuare l’istruzione successiva Le istruzioni possono avere lunghezze diverse (occupare una o più word) +1 Æ +(lunghezza dell’istruzione) +1 PC Memoria IR Logica di controllo Stato 25 Ordini IR Instruction Register Registro Istruzioni Contiene l’istruzione corrente (trasferita dalla memoria) Facilita le operazioni logiche di Decodifica (interpretazione) dell’istruzione Esecuzione delle operazioni relative +1 PC Memoria IR Logica di controllo © 2006 Politecnico di Torino Stato 26 Ordini 13 Programmazione in C Hardware Ciclo macchina (1/2) Esegue una istruzione dietro l’altra, effettuando un ciclo operativo per ogni istruzione Ogni ciclo operativo è costituito da tre fasi distinte Instruction fetching Preleva una istruzione dalla memoria Instruction decoding Interpreta l’istruzione analizzandone il codice operativo Instruction execution Genera i segnali con le tempistiche opportune per eseguire l’istruzione 27 Ciclo macchina (2/2) Preleva una istruzione dalla memoria Fetch Interpreta l’istruzione Decode Ordini Å decode (IR) Esegue l’istruzione IR Å Memoria [PC] PC Å PC + 1 Execute Ready? Go! +1 Stop PC IR Logica di controllo © 2006 Politecnico di Torino Memoria Stato 28 Ordini 14 Programmazione in C Hardware Hardware Schema interno Memoria Ordini Dati (e istruzioni) Stato Memorizza il software, ovvero Dati Istruzioni 30 © 2006 Politecnico di Torino 15 Programmazione in C Hardware Schema interno Memoria Ordini Dati (e istruzioni) Indirizzo Operazione (Read, Write) Stato Ready Busy 31 Schema interno Memoria Ordini Dati (e istruzioni) Stato Classificabile in Memoria interna Memoria esterna 32 © 2006 Politecnico di Torino 16 Programmazione in C Hardware Memoria interna Memorizza i dati (spesso temporaneamente) durante il funzionamento dell’elaboratore “Interna” Circuiti integrati Allo stato solido (chip) Considerata “non” rimuovibile Veloce Limitata in quantità Relativamente costosa Schede memoria 33 Memoria esterna Effettua la memorizzazione dei dati in maniera permanente Floppy-disk “Esterna” Non elettronica (magnetica, ottica, etc.) Talvolta rimovibile Denominata “di massa” Lenta Disponibile in quantità elevate Economica Memoria USB © 2006 Politecnico di Torino Hard-disk CD/DVD 34 17 Programmazione in C Hardware Organizzazione della memoria interna Insieme di locazioni (dette anche celle o elementi) contigue e disposte in sequenza È caratterizzata da Indirizzamento Parallelismo Tipologia di accesso Permanenza dell’informazione … … 35 Indirizzamento A ogni cella di memoria è associato un indirizzo (numerico) per identificarla univocamente … Indirizzo Il numero di bit dell’indirizzo determina il numero di celle © 2006 Politecnico di Torino Dato 36 18 Programmazione in C Hardware Parallelismo Ogni cella di memoria contiene una quantità fissa di bit Identica per tutte le celle Accessibile con un’unica istruzione È un multiplo del byte … Indirizzo Il numero di bit del dato determina la dimensione di ogni cella Dato 37 Tipologia di accesso Accesso casuale Il tempo di accesso alla memoria è costante (indipendente, o quasi, dalla posizione della cella) Ta = costante Anche detta RAM - Random Access Memory Accesso sequenziale Il tempo di accesso dipende dalla posizione della cella Spesso la dipendenza è lineare Ta = costante ⋅ indirizzo 38 © 2006 Politecnico di Torino 19 Programmazione in C Hardware Permanenza dell’informazione RAM – Random Access Memory Memoria ad accesso casuale Oramai sinonimo di memoria interna volatile casuale a lettura e scrittura Circuiti integrati ROM – Read Only Memory Memoria di sola lettura Interna non volatile casuale a sola lettura (non riscrivibile) Circuiti integrati PROM, EPROM, EAROM, etc. 39 Dischi magnetici Costituiti da uno o più supporti circolari (piatti) di tipo Flessibile (floppy–disk) Rigido (hard–disk) Ricoperti di materiale magnetico su una o entrambe le facce Il piatto (o i piatti) vengono mantenuti in rotazione a velocità costante Ogni faccia magnetizzata è dotata di una testina di lettura/scrittura che si muove in modo radiale 40 © 2006 Politecnico di Torino 20 Programmazione in C Hardware Geometria dei dischi (1/3) Facce suddivise in tracce (cerchi concentrici) Ogni traccia è organizzata in settori (archi di circonferenza) I settori sono separati da gap (intervalli) (archi di circonferenza) traccia gap settore 41 Geometria dei dischi (2/3) Tracce corrispondenti (su facce diverse, ovvero, 2 facce per piatto e/o più piatti) individuano i cilindri … traccia (cilindro) gap … settore 42 © 2006 Politecnico di Torino 21 Programmazione in C Hardware Geometria dei dischi (3/3) piatto testina braccio 43 Parametri geometrici Parametri geometrici principali #f #t #s #b : : : : Numero Numero Numero Numero di di di di facce (o testine) per ogni piatto tracce (o cilindri) per ogni faccia settori per ogni traccia byte per ogni settore ([Byte]) #t (es. 4) #s (es. 4) #f (es. 6) #b (es. 1024) 44 © 2006 Politecnico di Torino 22 Programmazione in C Hardware Parametri geometrici Parametri geometrici principali #f #t #s #b : : : : Numero Numero Numero Numero di di di di facce (o testine) per ogni disco tracce (o cilindri) per ogni faccia settori per ogni traccia byte per ogni settore ([Byte]) Capacità del disco (C) C = #f ⋅ #t ⋅ #s ⋅ #b Unità di misura: KByte, MByte, GByte 45 Parametri temporali Parametri temporali principali tp : Tempo di posizionamento (seek time, [s]) tl : Tempo di latenza (latency time, [s]) vt : Velocità di trasferimento (transfer rate, [Byte/s]) tp Memoria vt tl Funzione della velocità di rotazione (vr, [RPM]) 46 © 2006 Politecnico di Torino 23 Programmazione in C Hardware Parametri temporali Parametri temporali principali tp : Tempo di posizionamento (seek time, [s]) tl : Tempo di latenza (latency time, [s]) vt : Velocità di trasferimento (transfer rate, [Byte/s]) Tempo di trasferimento di un settore (Tt) #b vt Unità di misura: s, ms, μs Tt = tp + t l + Tempo di trasferimento totale (T) T = Σper ogni settore Tt © 2006 Politecnico di Torino #b : Numero di byte per settore Ipotesi pessimistiche / ottimistiche 47 24