Architettura dei sistemi di elaborazione Prima parte: HD e Software
Esempi di applicazione di sistemi di elaborazione Regolazione del riscaldamento Sportello Bancomat Prenotazione dei voli Computer di bordo nell’auto Previsioni meteorologiche
Esempi di applicazione di sistemi di elaborazione Negli esempi precedenti abbiamo: Un sistema di acquisizione dati dal mondo esterno Un sistema capace di elaborarli e di memorizzarli Un sistema capace di fornire, sulla base delle elaborazioni svolte, informazioni utili all’utente finale
Schema di un generico sistema di elaborazione Informazione in uscita Dati in ingresso Unità di elaborazione Dispositivo di INPUT Dispositivo di OUTPUT Memoria di massa (non volatile)
Tipologie di computer Sistemi “embedded” Personal Computer Workstation Minicomputer Mainframe Supercomputer Varia il livello di potenza e complessità
Sistemi “embedded” Es. computer che controlla le funzioni del motore e si adatta ai combiamenti delle condizioni di guida Agiscono all’interno di sistemi meccanici o elettrici più grandi e complessi senza il diretto controllo dell’operatore Ricevono gli input da sensori ed attivano meccanismi per controllare le condizioni operative, eseguendo un numero limitato di istruzioni preprogramate Si trovano all’interno di piccoli elettrodomestici, aerei, stereo, etc.
Personal Computer Desktop, laptop, notebook, palmari Tipicamente hanno un microprocessore “General Purpose” Velocità: 30-120 MIPS RAM: 32-128 MB
Workstation Stazioni di lavoro molto potenti con notevoli capacità grafiche Utilizzo “stand-alone” Supportano il lavoro di progettazione tecnica (CAD – Computer Aided Design) Velocità: 200-300 MIPS RAM: 128-256 MB
Minicomputer Utilizzo in piccole aziende o divisioni di grandi compagnie Possono gestire centinaia di utenti Es. gestione delle transazioni Gestione del magazzino Fatturazione
Mainframe Utilizzo in grandi compagnie, università, etc. Possono gestire migliaia di utenti Es. Banche , catena di alberghi Compagnie aeree, di assicurazioni.. Gestiscono numerose periferiche, tipicamente dischi.
Schema di un generico sistema di elaborazione Informazione in uscita Dati in ingresso Unità di elaborazione Dispositivo di INPUT Dispositivo di OUTPUT Memoria di massa (non volatile)
Architettura di una CPU Memoria RAM Registri interni Unità Aritmetico/Logica ALU Unità di Controllo Clock CPU
Unità Aritmetico/Logica Memoria Ram Random Access Memory E’ costituita da locazioni singolarmente indirizzabili Ciascuna locazione contiene istruzioni o dati Memoria RAM Unità Aritmetico/Logica ALU Unità di Controllo Clock CPU
Caratteristiche della memoria Tempo di accesso Velocità di trasferimento dei dati Ciclo di memoria (n. accessi nell’unità di tempo) dimensioni Tempo accesso Velocità di trasferimento Registri < 1K <0.5 ns 20.000 -100.000 MB/s CAche <1MB <10 ns 5.000-10.000 Ram 64 –256 MB 40 ns 1000 -5000 Mb/s Dischi 10-20 GB 10 ms 20-40 Mb/s
Tipi di memoria ROM (Read Only Memory) memoria dal contenuto fisso, non riscrivibile. PROM (Programmable ROM) si possono scrivere una sola volta. EPROM (Erasable PROM) si possono scrivere e ricancellare esponendole ai raggi UV. Memorie FLASH ROM, PROM, EPROM non perdono il contenuto quando il calcolatore viene spento.
ROM e BIOS Quando il calcolatore viene acceso, la RAM è vuota. Tuttavia la CPU deve poter trovare da qualche parte una sequenza di istruzioni (programma) da eseguire. In ogni computer c’è una ROM che contiene il BIOS (Basic Input/Output System). Il BIOS contiene un piccolo programma che consente di trasferire dalla memoria di massa a quella centrale il sistema operativo e altri dati essenziali (fase di caricamento o di boot) che mettono il computer in grado di funzionare.
Memoria centrale e memoria di massa Differiscono per la volatilita dei dati e per le funzioni che svolgono Per la tecnologia di realizzazione
Memoria centrale e memoria di massa Volatilita’ La memoria centrale tiene i dati fino a quando e alimentata Nella memoria di massa i dati sono immagazzinati permanentemente
Memoria centrale e memoria di massa Funzione: LA memoria centrale contiene i programmi in esecuzione e i relativi dati LA velocita’ di accesso influenza notevolmente le prestazioni del sistema La memoria di massa contiene elevate quantita’ di dati che non devono essere utilizzate frequentemente
Memoria centrale e memoria di massa Tecnologia: LA memoria centrale e’ realizzata con tecnologie elettroniche (VLSI) Le memoria di massa vengono realizzate con tecnologie magnetiche oppure ottiche.
memoria di massa Varie tipologie: Nastri DAT (digital audio tape) (fino a qualche giga) DISCHI
memoria di massa: Hard disk Varie tipologie: Nastri DAT (digital audio tape) (fino a qualche giga) DISCHI
Modalità di esecuzione della CPU Fase di “fetch”: Acquisizione dalla RAM dell’ istruzione da eseguire Decodifica dell’istruzione Esecuzione dell’istruzione Memoria RAM Unità Aritmetico/Logica ALU Unità di Controllo Clock CPU Ciclo Macchina
Come è fatta un’istruzione Memoria RAM 0 1 2 3 4 ……. 256 Codice operativo Operando1 Operando2 Es. Somma Indirizzo Op1 Indirizzo Op2
Uno sguardo ai registri PC (Program Counter) Tiene traccia della prossima istruzione da eseguire IC (Instruction Register) Contiene una copia della istruzione corrente da eseguire MAR (Memory Address register) Contiene l’indirizzo dal quale estrarre o dove trascrivere un dato MDR (memory Data register) Contiene una copia del dato da trattare PSW (Processor Status Word) Informazioni sullo stato del processore Memoria RAM Unità Aritmetico/Logica ALU IC PC Unità di Controllo MAR Clock PSW MDR CPU
Uno sguardo ai registri Inoltre l’ALU contiene un proprio set di registri usati per svolgere le elaborazioni intermedie sui dati Memoria RAM Unità Aritmetico/Logica ALU IC PC Unità di Controllo MAR Clock PSW MDR CPU R1 R2 Rn ….
Steps del Ciclo macchina Unità di Controllo Memoria RAM Recupero istruzione dalla RAM Decodifica Istruzione Parte posta nel registro istruzioni Parte posta nel registro indirizzi Risultati posti nell’ accumulatore ALU effettua l’operazione ALU riceve il comando di effettuare l’operazione Dati spostati dalla RAM al registro MDR ALU
Tipologie di istruzioni Trasferimento dati tra CPU e RAM Trasferimento dati tra CPU e interfaccia di Ingresso/Uscita Elaborazione dati Controllo del flusso delle istruzioni
Istruzioni di elaborazione dati Operazioni aritmetiche somma, prodotto, ... Operazioni relazionali confronto tra dati Operazioni su caratteri e valori di verità (booleani) Altre operazioni numeriche calcolo di logaritmi e funzioni trigonometriche
Bus di collegamento Collegamento fisico tra i componenti: occorrono tre tipologie di BUS BUS Dati BUS Indirizzi BUS Controllo La CPU ha il compito fondamentale di coordinare l’accesso ai Bus da parte dei vari componenti dei sistema
Ancora sui BUS Il bus di controllo fa transitare i segnali che identificano sorgente e destinatario dei dati e direzione del flusso (es. lettura o scrittura) L’ampiezza del bus è la quantità di dati che possono essere trasferiti contemporaneamente (32 bit, 64 bit)
Funzionamento del bus Memoria RAM CPU ALU PSW R1 R2 Rn 0000 Unità di Controllo 0001 0002 0003 IR MAR Clock 0004 0005 PC 0006 MDR INDIRIZZI DATI CONTROLLO
Fase di fetch Memoria RAM CPU ALU PSW R1 R2 Rn 0000 Unità di Controllo 0001 0002 0003 3F IR MAR Clock 0004 A8 0005 PC 0003 0006 MDR 0003 INDIRIZZI DATI CONTROLLO
Fase di fetch Memoria RAM CPU ALU PSW R1 R2 Rn 0000 Unità di Controllo 0001 0002 0003 3F IR MAR Clock 0004 A8 0005 PC 0003 0006 MDR 0003 INDIRIZZI DATI LEGGI CONTROLLO
Fase di fetch Memoria RAM CPU ALU PSW R1 R2 Rn 0000 Unità di Controllo 0001 0002 0003 3F IR MAR Clock 0004 A8 0005 PC 0003 0006 MDR 0003 INDIRIZZI 3FA8 DATI LEGGI CONTROLLO
Fase di decodifica Preleva il dato dalla prossima Memoria RAM CPU Locazione di memoria e mettilo Nel registro R1 Memoria RAM CPU PSW ALU R1 R2 Rn 0000 Unità di Controllo 0001 0002 3FA8 0003 3F IR MAR Clock 0004 A8 0005 PC 0003 0006 MDR INDIRIZZI 3FA8 DATI CONTROLLO
Incremento del program counter Memoria RAM CPU PSW ALU R1 R2 Rn 0000 Unità di Controllo 0001 0002 3FA8 0003 3F IR 0005 Clock 0004 A8 0005 PC 0007 0006 MDR 0005 INDIRIZZI DATI LEGGI CONTROLLO
Prelievo del dato Memoria RAM CPU ALU PSW R1 R2 Rn 0000 Unità di Controllo 0001 0002 0003 3F IR 3FA8 0005 Clock 0004 A8 0005 00 PC 0007 0006 01 MDR INDIRIZZI 0001 DATI LEGGI CONTROLLO
Scrittura nel registro della ALU Memoria RAM CPU PSW ALU R1 R2 Rn 0001 0000 Unità di Controllo 0001 0002 0003 3F IR 3FA8 0005 Clock 0004 A8 0005 00 PC 0007 0006 01 MDR INDIRIZZI 0001 DATI scrivi CONTROLLO
Porta seriale e parallela Dispositivo di INPUT PORTA Memoria RAM CPU Dati Indirizzi Controllo Controllers N Memoria ROM Clock Dispositivo di OUTPUT PORTA
Interfaccia di Ingresso/uscita Buffer dati Periferica Controller Porta Registro Di stato INDIRIZZI DATI controllo
Gestione delle periferiche Le periferiche possono funzionare con tre tecniche: Ciclo di “polling” Interrupt Accesso diretto alla memoria (DMA)
chiamante la periferica Ciclo di polling Interfaccia di ingresso/uscita Buffer dati Periferica Controller Registro Di stato P interroga ciclicamente il registro di stato Quando il registro di stato segnala che i dati sono stati trasferiti P trasmette nuovi dati al buffer dei dati CPU P Processo chiamante la periferica INDIRIZZI DATI controllo
Gestione con interrupt Interfaccia di ingresso/uscita Periferica Buffer dati Controller Cavo di collegamento Registro Di stato P lancia il comando alla periferica e invia I primi dati Si sospende P Processo chiamante la periferica CPU
Gestione con interrupt Interfaccia di ingresso/uscita Periferica Buffer dati Controller Cavo di collegamento Registro Di stato La cpu passa ad un altro processo Il controller notifica con un interrupt la CPU che è pronto a ricevere altri dati P Processo chiamante la periferica CPU
Gestione con interrupt Interfaccia di ingresso/uscita Periferica Buffer dati Controller Cavo di collegamento Registro Di stato La CPU attiva il programma di risposta a interruzione, che attiverà il driver fisico della stampante per effettuare il successivo trasferimento dati Driver fisico P Processo chiamante la periferica CPU
Accesso diretto alla memoria Interfaccia di ingresso/uscita Periferica Buffer dati Controller Cavo di collegamento Registro Di stato DMA RAM CPU INDIRIZZI DATI CONTROLLO
Periferiche e caratteristiche Monitor (CRT e LCD) Risoluzione Memoria Schede acceleratrici Stampanti Inkjet Laser (DPI, PPM)
Scheda madre Alloggia il processore La Ram La cache memory Ha slots di espansione (upgrades, schede grafiche, etc.) Un dispositivo di raffreddamento Un sistema di alimentazione
Valutazione delle Prestazioni di un sistema Velocità Lavoro svolto nell’unità di tempo (throughput) Affidabilità MTTF (Mean Time to Failure) MTTR (mean time to recovery) Un sistema è tanto affidabile quanto il meno affidabile dei suoi componenti
Valutazione delle Prestazioni di un sistema La valutazione delle prestazioni può essere svolta o in termini di distribuzioni di probabilità o in termini di valori medi (+ semplice) Lavoro svolto nell’unità di tempo (throughput) Elapsed time (tempo trascorso) CPU time (tempo di elaborazione impiegato dalla CPU)
Prestazioni della CPU Velocità del CLOCK: si misura in megahertz (MHZ) Maggiore è la frequenza, piu’ cicli macchina possono essere effettuati nell’unità di tempo MIPS (MILIONI DI ISTRUZIONI AL SECONDO) 100-1000 MFLOPS (MILIONI DI OP. IN VIRGOLA MOBILE AL SECONDO) 10-100 MFLOPS <= MIPS <= FREQ. DI CLOCK
Prestazioni della CPU Tcpu = Nclock X Tclock Nclock= n cicli necessari per il completamento del processo CPI = n cicli richiesti per completare un’istruzione (valore medio) N(i) numero istruzioni eseguite per completare un processo Tcpu = CPI X N(i) / Fclock
Prestazioni della CPU Le prestazioni dipendono comunque anche dal set di istruzioni proprio della CPU
Set di istruzioni e tipo di architettura utilizzata CISC (Complex Instruction Set Computer) RISC (Reduced Instruction Set Computer) Tipo di cpu cisc risc Cpi Cicli clock per istruzione alto basso N (i) F clock media alta
Prestazioni della CPU I MIPS non sono un parametro affidabile In realtà occorre considerare il tipo di lavoro che la CPU deve svolgere abitualmente Si utilizzano i benchmark Programmi campione scritti in linguaggi di programmazione ad alto livello Definiti dalla SPEC (Standard Performance Evaluation Corporation)
Caratteristiche principali di un microprocessore Repertorio di istruzioni le istruzioni del linguaggio macchina del processore velocità (misurata come frequenza del clock) l’esecuzione di ciascuna istruzione richiede solitamente più cicli macchina Ampiezza del bus numero di bit nel bus interno del processore Co-processore i moderni processori sono integrati a co-processori specializzati (ad esempio, il co-processore matematico) Cache una memoria veloce locale al processore, che consente un’accelerazione nell’esecuzione dei programmi
Fattori collegati all’ampiezza del bus e dei registri Lunghezza delle parole binarie che la CPU e' in grado di elaborare, espressa in numero di bit (8, 16, 32, 64) Lunghezza delle parole binarie che e' in grado di scambiare con l'esterno con un'unica operazione (8, 16, 32, 64) Capacita' di indirizzamento (MB, GB) (spesso riferita come memoria RIM - Registro Istruzioni Memoria)
Estensioni all'architettura di Von Neumann processori dedicati o co-processori per eseguire in modo particolarmente efficiente e in parallelo alla CPU particolari operazioni, come quelle aritmetiche (processore aritmetico) o per la presentazione della grafica sul video (processore grafico, vulgo scheda grafica). possibilità di eseguire alcune istruzioni parzialmente in parallelo uso di gerarchie di memorie con prestazioni e costi decrescenti, come una memoria cache in cui tenere copia di parte dei dati della memoria centrale con accesso più rapido.
Estensioni all'architettura di Von Neumann macchine aventi diverse CPU che agiscono contemporaneamente (macchine parallele o multiprocessore), come i supercomputer per eseguire calcoli complicatissimi molto velocemente.
Evoluzione del PC Inizi anni 80 (Personal Computer IBM AT) Legge di Moore: La potenza dei calcolatori raddoppia ogni 18 mesi. Inizi anni 80 (Personal Computer IBM AT) Architettura 16 bit interna, 8 bit esterna (Intel 8088) Clock 4.77 MHz, RAM 512 kB, Hard Disk 10 Mb Prezzo: oltre 10 milioni (dell’epoca) Ieri (configurazione tipica di un PC di fascia media) Architettura 32 bit (Intel P III/AMD Athlon) Clock 1.2 GHz, RAM 128 MB, Hard Disk 20 Gb Prezzo: meno di 2 milioni
Riferimenti bibliografici Introduzione ai sistemi informatici Sciuto, Buonanno, Fornaciari, Mari Mc Graw Hill Capitoli N.3 e N.8 (I edizione) Capitolo 4 (II edizione)
Introduzione alla programmazione Algoritmo Programma Linguaggio di programmazione
Descrivere un programma con un diagramma di flusso start Leggi x e y Calcolare il max fra due numeri K x - y si no K >0 Scrivi Max = x Scrivi Max = y fine
Descrivere un programma con un diagramma di flusso start Lettura/ scrittura Leggi x e y Calcolare il max fra due numeri elaborazione K x - y no decisione K >0 Scrivi Max = x Scrivi Max = y fine
Prendi I primi due numeri x1 e x2 start Calcolare il max in una lista numeri Leggi la lista x1…xn Prendi I primi due numeri x1 e x2 m max (x1,x2) no si Altri numeri da esaminare Prendi il successivo xi Scrivi Max = m m max (m,xi) fine
Nell’esempio precedente notiamo il concetto di chiamata a sottoprogramma (ovvero un programma in grado di calcolare il max fra due numeri)
Tipologie di istruzioni Istruzioni di ingresso/uscita Istruzioni aritmetico logiche Istruzioni di controllo
Linguaggio di programmazione E’ caratterizzato da: Sintassi Lessico La scrittura degli enunciati di un programma e’ regolata dalla sintassi Un enunciato racchiude una serie di istruzioni
Linguaggio di programmazione In un linguaggio di programmazione sono importanti: I tipi di dati disponibili Gli operatori Le variabili e le operazioni di assegnazione di valori alle variabili I costrutti di programmazione