ALGORITMI E MACCHINA DI VON NEUMANN 1
COMPUTER= ELABORATORE NON CERVELLO ELETTRONICO CERVELLO: Capacità decisionali ELABORATORE: Incapacità di effettuare scelte autonome di fronte a situazioni impreviste 2
L elaboratore è un dispositivo capace di: immagazzinare una grossa quantità di informazioni eseguire su di esse, in modo automatico, una sequenza di operazioni prestabilite I problemi che si prestano particolarmente ad essere risolti o gestiti con un elaboratore sono essenzialmente: Problemi di natura ripetitiva Problemi che necessitano di un controllo continuo nella loro evoluzione 3
ESEMPIO 1: Elaborazione di tipo ripetitivo COMPUTER assegni bancari (Lettore di assegni) INPUT Informazioni sui conti correnti memorizzati nel computer Elaborazione dei dati contenuti negli assegni OUTPUT estratto conto Depositi bancari 4
ESEMPIO 2: Controllo di un processo in continua evoluzione velocità, distanze, etc. misurate con strumenti di bordo I N P U T Informazioni sui piani di volo Confronto tra piano di volo attuale e previsto O UT P UT Modifica rotta: flap, accelerazione, etc. Autopilota di un aereo 5
L elaboratore è inoltre un valido strumento di aiuto nella: Documentazione automatica (information retrieval) Scrittura di testi (word processing) CAD/CAM (Computer Aided Design/ Manufacturing):Progettazione e realizzazione di oggetti per il disegno e per la produzione industriale CAI (Computer Aided Instruction): Ausilio alla didattica 6
ESEMPIO 3: non Testo presente OUTPUT I N P U T Informazioni sui libri della biblioteca e sui loro argomenti Automazione di biblioteche (Information retrieval) 7
8
9
Risoluzione di un Problema mediante elaboratore Precisa formulazione del problema Ricerca dell Algoritmo, cioè di un procedimento non ambiguo, formato da un numero finito di azioni sufficientemente semplici che risolva il problema dato Descrizione dell algoritmo mediante un insieme di frasi (Programma) appartenenti ad un linguaggio comprensibile dall elaboratore (Linguaggio di programmazione) Esecuzione del programma 10
DATI DEL PROBLEMA ALGORITMO RISULTATO 11
PROBLEMA: Somma di 5 numeri Dati del problema: - Algoritmi ed esecutori di algoritmi - 5 7 10-2 -1 ISTRUZIONI Poni il totale a 0 Somma il primo numero al totale Somma il secondo numero al totale... Somma il quinto numero al totale NUMERO 5 7 10-2 -1 12 TOTALE 0 5 12 22 20 19
ALGORITMO Poni il totale uguale a zero; mentre ci sono altri numeri, somma il prossimo numero al totale. INIZIO Azzera il totale ci sono altri numeri V leggi un numero F stampa il totale FINE somma il numero al totale 13
Definizione di Algoritmo Un algoritmo è un procedimento per la risoluzione di una classe di problemi, costituito da un insieme finito di direttive non ambigue che specificano una sequenza finita di operazioni da eseguire su un insieme finito di dati ETIMOLOGIA: da Al Khuwarizmi, nome del matematico persiano del IX sec. che descrisse gli algoritmi per le operazioni aritmetiche sui numeri decimali 14
Un algoritmo definisce non solo il flusso delle operazioni da compiere, ma anche i dati su cui tali operazioni vanno eseguite Un esecutore di algoritmi deve essere quindi in grado di: immagazzinare dati (di input, intermedi e di output) e istruzioni effettuare operazioni aritmetiche e logiche su tali dati controllare il flusso delle operazioni 15
Il concetto di non ambiguità impone che siano note a priori le capacità logiche ed operative dell esecutore dell algoritmo. 16
SCHEMA UOMO controllo memoria libro di testo compito SCHEMA MACCHINA DI VON NEUMANN controllo MEMORIA unità di input unità logico aritmetica unità di output 17
I componenti fondamentali di un Memoria calcolatore sono: Unità di controllo Unità logico - aritmetica Unità di input e output 18
LA MEMORIA è il supporto fisico che permette di immagazzinare informazioni (istruzioni e dati) La memoria è organizzata come una lista sequenziale di LOCAZIONI 19
Ogni locazione è costituita da una sequenza finita di componenti elementari (BIT) ciascuno dei quali può rappresentare una cifra binaria (0 oppure 1) esempio: locazione a 8bit (byte) 1 1 1 0 1 1 1 0 BIT LOCAZIONE 20
Le locazioni sono univocamente individuate in memoria da INDIRIZZI schema della memoria 1 0 0 0 1 0 1 1 1 0 1 0 1 1 0 0 0 1 1 1 0 0 0 1 0 0 0 1 1 1 0 1 1 0 0 1 1 1 0 1 0 0 0 0 1 1 1 1 0010 0011 0100 0101 0111 1000 21
Nel seguito faremo indifferentemente uso dei termini: parola o voce per indicare l insieme di una o più locazioni consecutive, in cui è memorizzata una informazione. 22
OPERAZIONI SULLA MEMORIA lettura (prelevare il contenuto di una o piu locazioni di memoria) scrittura (definire il contenuto di una o piu locazioni di memoria ) 23
Parametri di valutazione della memoria: N: capacità (numero di locazioni) generalmente misurata in potenze del byte: Kbyte = 1024 byte ~ 10 3 byte Mbyte ~ 10 6 byte Gbyte ~ 10 9 byte Tbyte ~ 10 12 byte W: ampiezza della voce (numero di bit) è di solito misurata in bit: 16 bit, 32 bit, 64 bit C: tempo di accesso (tempo per prelevare un informazione) è di solito misurato in nanosecondi: 1 ns = 10-9 sec. 24
UNITÀ DI CONTROLLO (CU) può essere vista come: Unità funzionale che istruisce e guida le altre componenti del sistema nell esecuzione delle loro attività Dispositivo di temporizzazione e sequenzializzazione di tutte le attività del sistema è il punto da cui in sequenza partono le direttive per tutto il sistema 25
L unità di controllo preleva una istruzione per volta dalla memoria interpreta l istruzione provvede all esecuzione determina la successiva istruzione da eseguire CICLO FETCH 26
UNITÀ LOGICO ARITMETICA (ALU) è l esecutore delle operazioni aritmetiche e logiche sui dati Prima dell esecuzione la CPU trasferisce i dati dalla memoria a speciali voci dell ALU (registri) dalla memoria alla memoria registro registro + * / - registro unità logico aritmetica 27
unità di controllo + unità logico aritmetica = CPU (Central Processing Unit) = PROCESSORE Caratteristica della CPU: velocità operativa (tempo di esecuzione di una istruzione) 28
Per sincronizzare le attività del sistema si utilizza un circuito elementare (clock) che emette degli impulsi a precisi intervalli di tempo. L intervallo tra due impulsi consecutivi è chiamato tempo di ciclo di clock ciclo di clock tra 10 nsec e 1 nsec frequenza tra 100 e 1000 MHz (1 MHertz = 10 6 Hertz) La tecnologia attuale consente di produrre processori fino a 2 GHz valori tipici sono: 400,1200,1400, 1600, 1800MHz 29
misure della velocità operativa: MIPS Milioni di Istruzioni Per Secondo MFLOPS Milioni di operazioni FLOating-Point al Secondo In generale una istruzione viene eseguita in un ciclo di clock Ad esempio un processore a 1200MHz ha una velocità operativa di 1200 MIPS 30
UNITÀ DI INPUT-OUTPUT è l interfaccia del calcolatore con il mondo esterno Esempi: video tastiera, stampante mouse plotter scanner... 31
Unità di Controllo C P U Unità logico aritmetica Unità di input Memoria Unità di output controllo informazione Schema funzionale di una macchina di Von Newmann 32
Poiché in un algoritmo tratta due entità logicamente distinte, istruzioni e dati, risulta evidente che un esecutore di algoritmi debba poter rappresentare in qualche forma i dati e le istruzioni Caratteristica fondamentale degli elaboratori è che l insieme delle istruzioni, codificato opportunamente, viene memorizzato in forma analoga a quella dei dati e insieme ad essi. 33