Da Turing a Von Neumann La macchina di Turing • • • • Un nastro di lunghezza infinita da cui leggere i dati e su cui scrivere i risultati Il nastro può muoversi verso destra e verso sinistra Una testina di lettura/scrittura Il programma composta da istruzioni nel seguente formato : • • [state],[character],[new state],[new character],[direction] http://www.igs.net/~tril/tm/tm.html 2 Modello di Von Neumann Modello di riferimento per gran parte dei sistemi attuali. Proposto da un ricercatore americano, Von Neumann, nei tardi anni ’40 all’Institute for Advanced Study di Princeton. 3 Modello di Von Neumann Bus di informazioni CPU Memoria Periferiche centrale di I/O Bus di controlli 4 Schematizzazione dell’hardware INPUT CPU Memoria OUTPUT 5 Hardware Una prima scomposizione in elementi funzionali: Unità centrale di elaborazione (CPU) Processori Pentium, Celeron, etc. Memoria M. Centrale di tipo elettronico e M. di massa Dispositivi di Input ed Output Tastiera, mouse, monitor, stampante, etc. 6 Il software Tutto ciò che può essere preteso dall’hardware (definizione ampia) Software di Base (es. Sistema Operativo) Software applicativo 7 Il ruolo del software Solo hardware hardware+software ferraglia inerme macchina capace di elaborare 8 Central Processing Unit Svolge le funzioni di controllo di tutto il sistema: Esegue calcoli Svolge operazioni logiche Controlla le operazioni di tutte le unità operative Coordina e controlla la sequenza delle operazioni 9 I MICROPROCESSORI 10 Componenti della CPU Unità di Controllo (Control Unit) che controlla e coordina l’attività della CPU controlla il trasferimento delle istruzioni dalla memoria centrale ai registri della CPU Interpreta le istruzioni attiva i segnali per gli organi preposti all’esecuzione ALU (Arithmetic Logic Unit) che esegue le operazioni aritmetiche e logiche 11 Memoria centrale Serve a conservare (memorizzare) dati e programmi. Ha dimensioni limitate, è volatile (perde il suo contenuto quando si spegne il calcolatore) e consente un accesso alle informazioni in tempi molto brevi. La CPU esegue solo i programmi che trova in memoria e tratta solo i dati in essa contenuti 12 I registri di memoria La memoria è organizzata in contenitori di informazioni. Ognuno di essi è detto registro e in molti sistemi coincide con il byte Il numero di registri è detto capacità di memoria I registri vengono individuati dalla loro posizione (un numero) che viene detto indirizzo 13 Dispositivi di input ed output Senza di essi la CPU non potrebbe comunicare con l’esterno Dati e programmi possono così essere inseriti in memoria I risultati possono fluire dalla memoria verso i dispositivi di output 14 Memoria di massa Alla memoria centrale si affianca una memoria secondaria per: Memorizzare grandi quantità di informazioni Rendere persistente la loro memorizzazione Dischi magnetici o ottici Però, con un accesso meno rapido ad esse Le informazioni per essere elaborate devono essere sempre portate nella memoria centrale 15 I bus Tutti i componenti del modello sono collegati tra loro per scambiarsi informazioni La CPU è collegata a tutti i componenti per abilitarne l’attivazione in modo sincronizzato e coordinato 16 Schema di dettaglio Processore (CPU) Unità di controllo Unità Aritmetica Memoria centrale Unità di ingresso Unità di uscita Memoria di massa Controllo Informazioni 17 I registri interni Per rendere più veloce il funzionamento della CPU, un pò di memoria (alcuni registri) è stata inserita direttamente in essa PC CU ALU op1 op2 R IR Informazioni Controli 18 Un esempio di funzionamento In memoria è collocato un piccolo programma: I1 - Input primo numero I2 - Input secondo numero I3 - Somma i due numeri I4 - Output risultato 19 Esecuzione di I1 CU Input 150 ALU 1 I1 I1 I2 I3 I4 150 Output 20 Esecuzione di I2 CU Input 330 ALU 2 1 I1 I2 I1 I2 I3 I4 150 330 Output 21 Esecuzione di I3 CU Input ALU 3 1 2 I1 I2 I3 150 330 480 I1 I2 I3 I4 150 330 480 Output 22 Esecuzione di I4 CU Input ALU 4 1 2 3 I1 I2 I3 I4 150 330 480 I1 I2 I3 I4 150 330 480 Output 480 23 Il clock Tutte le attività vengono sincronizzate da un segnale generato in modo regolare da un orologio interno. Più velocemente è scandito il tempo più velocemente il sistema opera 24 Il clock Il clock è un segnale periodico generato utilizzando un cristallo al quarzo e si misura in MHz Oggi anche 3000 MHz Il clock dà la base dei tempi necessaria per mantenere il sincronismo fra le operazioni, in particolare fornisce la tempistica da rispettare per i trasferimenti dei dati all’interno e all’esterno della CPU. 25 Caratteristiche Le caratteristiche di una macchina di Von Neumann sono: Flessibilità operativa Grande velocità elaborativa Affidabilità enorme Costi adeguati Grande capacità di memoria Flessibilità di collegamenti di input e output Schema di funzionamento semplice 26 Velocità I parametri che mettono in luce la velocità di calcolo sono: MIPS milioni di istruzioni base eseguite in un secondo MFLOP milioni di istruzioni in virgola mobile eseguite in un secondo 27 Velocità SPECint: indice di riferimento ottenuto eseguendo un insieme di programmi prestabilito orientati alle applicazioni commmerciali SPECfp: indice di riferimento ottenuto eseguendo un insieme di programmi prestabilito orientati alle applicazioni scientifiche (float point) 28 Affidabilità Esecutori fedeli dell’algoritmo in memoria Sia se esso descriva correttamente il processo desiderato Sia se ciò non è vero! Un ciuccio sapiente 29 Tolleranza ai guasti Errori dovuti a malfunzionamento dell’Hardware possono essere rilevati in maniera automatica Alcuni sistemi vengono progettati in modo da garantire la continuità del funzionamento in presenza di guasti Ridondanza delle parti essenziali (ad es. due processori) 30 Flessibilità operativa Cambiando l’algoritmo in memoria, si cambia il comportamento del sistema Calcola la contabilità Esegue disegni in scale diverse Studia le deformazioni di una trave …… Un infinità di macchine virtuali diverse 31 Costo dei sistemi I costi dei sistemi spaziano in un intervallo molto ampio Fissata una famiglia di sistemi si nota che i costi dell’hardware diminuiscono rapidamente nel tempo I costi del software hanno, invece una tendenza diversa: crescono! In generale si può affermare che il costo di un sistema è basso se confrontato con il lavoro umano necessario a portare a termine la stessa mole di lavoro 32