Architettura dei sistemi di elaborazione Prima parte: HD e Software Sistemi di Elaborazione 2001 Esempi di applicazione di sistemi di elaborazione • • • • • Regolazione del riscaldamento Sportello Bancomat Prenotazione dei voli Computer di bordo nell’auto Previsioni meteorologiche Sistemi di Elaborazione 2001 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 Sistemi di Elaborazione 2001 Schema di un generico sistema di elaborazione Informazione in uscita Dati in ingresso Dispositivo di INPUT Unità di elaborazione Dispositivo di OUTPUT Memoria di massa (non volatile) Sistemi di Elaborazione 2001 Tipologie di computer • • • • • • Sistemi “embedded” Personal Computer Workstation Minicomputer Mainframe Supercomputer Varia il livello di potenza e complessità Sistemi di Elaborazione 2001 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. Sistemi di Elaborazione 2001 Personal Computer • Desktop, laptop, notebook, palmari • Tipicamente hanno un microprocessore • “General Purpose” • Velocità: 30-120 MIPS • RAM: 32-128 MB Sistemi di Elaborazione 2001 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 Sistemi di Elaborazione 2001 Minicomputer • Utilizzo in piccole aziende o divisioni di grandi compagnie • Possono gestire centinaia di utenti • Es. – gestione delle transazioni – Gestione del magazzino – Fatturazione Sistemi di Elaborazione 2001 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. Sistemi di Elaborazione 2001 Schema di un generico sistema di elaborazione Informazione in uscita Dati in ingresso Dispositivo di INPUT Unità di elaborazione Dispositivo di OUTPUT Memoria di massa (non volatile) Sistemi di Elaborazione 2001 Architettura di una CPU Memoria RAM Unità Aritmetico/Logica ALU Unità di Controllo Registri interni Clock CPU Sistemi di Elaborazione 2001 Memoria Ram Random Access Memory Memoria RAM Unità Aritmetico/Logica ALU Unità di Controllo • E’ costituita da locazioni singolarmente indirizzabili • Ciascuna locazione contiene istruzioni o dati Clock CPU Sistemi di Elaborazione 2001 Caratteristiche della memoria • Tempo di accesso • Velocità di trasferimento dei dati • Ciclo di memoria (n. accessi nell’unità di tempo) dimensioni Tempo Velocità di accesso 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 10-20 GB 10 ms 20-40 Mb/s Dischi Sistemi di Elaborazione 2001 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. Sistemi di Elaborazione 2001 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. Sistemi di Elaborazione 2001 Memoria centrale e memoria di massa • Differiscono per la – volatilita dei dati e per – le funzioni che svolgono – Per la tecnologia di realizzazione Sistemi di Elaborazione 2001 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 Sistemi di Elaborazione 2001 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 Sistemi di Elaborazione 2001 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. Sistemi di Elaborazione 2001 memoria di massa Varie tipologie: • Nastri • DAT (digital audio tape) (fino a qualche giga) • DISCHI Sistemi di Elaborazione 2001 memoria di massa: Hard disk Varie tipologie: • Nastri • DAT (digital audio tape) (fino a qualche giga) • DISCHI Sistemi di Elaborazione 2001 Modalità di esecuzione della CPU Memoria RAM Unità Aritmetico/Logica ALU Unità di Controllo Clock • Fase di “fetch”: Acquisizione dalla RAM dell’ istruzione da eseguire • Decodifica dell’istruzione • Esecuzione dell’istruzione CPU Ciclo Macchina Sistemi di Elaborazione 2001 Come è fatta un’istruzione Memoria RAM 0 1 2 3 4 ……. 256 Codice operativo Operando1 Es. Somma Operando2 Indirizzo Op1 Indirizzo Op2 Sistemi di Elaborazione 2001 Uno sguardo ai registri • PC (Program Counter) Tiene traccia della prossima istruzione da eseguire Memoria RAM Unità Aritmetico/Logica ALU Unità di Controllo PSW CPU IC PC MAR Clock MDR • 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 Sistemi di Elaborazione 2001 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 Unità di Controllo PSW CPU IC PC MAR Clock MDR R1 R2 …. Rn Sistemi di Elaborazione 2001 Steps del Ciclo macchina Unità di Controllo Memoria RAM Recupero istruzione dalla RAM Risultati posti nell’ accumulatore ALU ALU effettua l’operazione Decodifica Istruzione Parte posta nel registro istruzioni Parte posta nel registro indirizzi ALU riceve il comando di effettuare l’operazione Dati spostati dalla RAM al registro MDR Sistemi di Elaborazione 2001 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 Sistemi di Elaborazione 2001 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 Sistemi di Elaborazione 2001 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 Sistemi di Elaborazione 2001 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) Sistemi di Elaborazione 2001 Funzionamento del bus PSW CPU Unità di Controllo R1 IR MAR Clock PC ALU MDR R2 Rn Memoria RAM 0000 0001 0002 0003 0004 0005 0006 INDIRIZZI DATI CONTROLLO Sistemi di Elaborazione 2001 Fase di fetch PSW CPU Unità di Controllo ALU 0000 0001 0002 0003 0004 0005 0006 R1 IR MAR Clock PC 0003 Memoria RAM MDR R2 Rn 0003 3F A8 INDIRIZZI DATI CONTROLLO Sistemi di Elaborazione 2001 Fase di fetch PSW CPU Unità di Controllo ALU 0000 0001 0002 0003 0004 0005 0006 R1 IR MAR Clock PC 0003 Memoria RAM MDR R2 Rn 0003 3F A8 INDIRIZZI DATI LEGGI CONTROLLO Sistemi di Elaborazione 2001 Fase di fetch PSW CPU Unità di Controllo ALU 0000 0001 0002 0003 0004 0005 0006 R1 IR MAR Clock PC 0003 Memoria RAM MDR R2 Rn 0003 3FA8 LEGGI 3F A8 INDIRIZZI DATI CONTROLLO Sistemi di Elaborazione 2001 Fase di decodifica Preleva il dato dalla prossima CPU PSWLocazione di memoriaALU e mettilo Unità di Nel registro R1 R1 Controllo IR 3FA8 MAR Clock PC 0003 MDR R2 Rn Memoria RAM 0000 0001 0002 0003 0004 0005 0006 3F A8 INDIRIZZI 3FA8 DATI CONTROLLO Sistemi di Elaborazione 2001 Incremento del program counter PSW CPU Unità di Controllo ALU 0000 0001 0002 0003 0004 0005 0006 R1 IR 3FA8 0005 Clock PC 0007 Memoria RAM MDR R2 Rn 0005 3F A8 INDIRIZZI DATI LEGGI CONTROLLO Sistemi di Elaborazione 2001 Prelievo del dato PSW CPU Unità di Controllo ALU 0000 0001 0002 0003 0004 0005 0006 R1 IR 3FA8 0005 Clock PC 0007 Memoria RAM MDR R2 Rn 3F A8 00 01 INDIRIZZI 0001 LEGGI DATI CONTROLLO Sistemi di Elaborazione 2001 Scrittura nel registro della ALU PSW CPU Unità di Controllo 0005 Clock PC 0007 ALU R1 IR 3FA8 MDR Memoria RAM 0000 0001 0002 0003 0004 0005 0006 0001 R2 Rn 3F A8 00 01 INDIRIZZI 0001 scrivi DATI CONTROLLO Sistemi di Elaborazione 2001 Porta seriale e parallela Dispositivo di INPUT PORTA CPU Memoria RAM Dati Indirizzi Controllo Dispositivo di OUTPUT PORTA Clock Controllers N Memoria ROM Sistemi di Elaborazione 2001 Interfaccia di Ingresso/uscita Buffer dati Controller Porta Periferica Registro Di stato INDIRIZZI DATI controlloSistemi di Elaborazione 2001 Gestione delle periferiche Le periferiche possono funzionare con tre tecniche: – Ciclo di “polling” – Interrupt – Accesso diretto alla memoria (DMA) Sistemi di Elaborazione 2001 Ciclo di polling Interfaccia di ingresso/uscita Buffer dati Controller Registro Di stato CPU P Processo chiamante la periferica Periferica - 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 INDIRIZZI DATI controlloSistemi di Elaborazione 2001 Gestione con interrupt Interfaccia di ingresso/uscita Controller Buffer dati Periferica Cavo di collegamento Registro Di stato P Processo chiamante la periferica - P lancia il comando alla periferica e invia I primi dati -Si sospende CPU Sistemi di Elaborazione 2001 Gestione con interrupt Interfaccia di ingresso/uscita Controller Buffer dati Periferica Cavo di collegamento Registro Di stato P Processo chiamante la periferica CPU -La cpu passa ad un altro processo -Il controller notifica con un interrupt la CPU che è pronto a ricevere altri dati Sistemi di Elaborazione 2001 Gestione con interrupt Interfaccia di ingresso/uscita Controller Buffer dati Periferica Cavo di collegamento Registro Di stato Driver fisico P Processo chiamante la periferica CPU -La CPU attiva il programma di risposta a interruzione, che attiverà il driver fisico della stampante per effettuare il successivo trasferimento dati Sistemi di Elaborazione 2001 Accesso diretto alla memoria Interfaccia di ingresso/uscita Buffer dati Controller Periferica Cavo di collegamento Registro Di stato CPU DMA RAM INDIRIZZI DATI CONTROLLO Sistemi di Elaborazione 2001 Periferiche e caratteristiche • Monitor (CRT e LCD) – Risoluzione – Memoria – Schede acceleratrici • Stampanti – Inkjet – Laser – (DPI, PPM) Sistemi di Elaborazione 2001 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 Sistemi di Elaborazione 2001 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 Sistemi di Elaborazione 2001 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) Sistemi di Elaborazione 2001 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 Sistemi di Elaborazione 2001 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 Sistemi di Elaborazione 2001 Prestazioni della CPU • Le prestazioni dipendono comunque anche dal set di istruzioni proprio della CPU Sistemi di Elaborazione 2001 Set di istruzioni e tipo di architettura utilizzata CISC (Complex Instruction Set Computer) RISC (Reduced Instruction Set Computer) Tipo di cpu cisc risc Cpi alto basso N (i) basso alto F clock media alta Cicli clock per istruzione Sistemi di Elaborazione 2001 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) Sistemi di Elaborazione 2001 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 coprocessori specializzati (ad esempio, il coprocessore matematico) • Cache – una memoria veloce locale al processore, che consente un’accelerazione nell’esecuzione dei programmi Sistemi di Elaborazione 2001 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) Sistemi di Elaborazione 2001 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. Sistemi di Elaborazione 2001 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. Sistemi di Elaborazione 2001 Evoluzione del PC 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 Sistemi di Elaborazione 2001 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) Sistemi di Elaborazione 2001 Introduzione alla programmazione • Algoritmo • Programma • Linguaggio di programmazione Sistemi di Elaborazione 2001 Descrivere un programma con un diagramma di flusso start Leggi x e y Calcolare il max fra due numeri Kx-y si K >0 Scrivi Max = x no Scrivi Max = y fine Sistemi di Elaborazione 2001 Descrivere un programma con un diagramma di flusso start Lettura/ scrittura elaborazione decisione Leggi x e y Calcolare il max fra due numeri Kx-y no K >0 Scrivi Max = x Scrivi Max = y fine Sistemi di Elaborazione 2001 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) si Altri numeri da esaminare Prendi il successivo xi no Scrivi Max = m m max (m,xi) fine Sistemi di Elaborazione 2001 • Nell’esempio precedente notiamo il concetto di chiamata a sottoprogramma (ovvero un programma in grado di calcolare il max fra due numeri) Sistemi di Elaborazione 2001 Tipologie di istruzioni • Istruzioni di ingresso/uscita • Istruzioni aritmetico logiche • Istruzioni di controllo Sistemi di Elaborazione 2001 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 Sistemi di Elaborazione 2001 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 Sistemi di Elaborazione 2001