Comè lui? Lui è alto. Comè lei? Lei è alta. Comè lui? Lui è basso.
Comè fatto un elaboratore? Elaboratori basati sulla Architettura di Von Neumann che consiste di:...
-
Upload
battista-boscolo -
Category
Documents
-
view
216 -
download
0
Transcript of Comè fatto un elaboratore? Elaboratori basati sulla Architettura di Von Neumann che consiste di:...
![Page 1: Comè fatto un elaboratore? Elaboratori basati sulla Architettura di Von Neumann che consiste di: Ununità di Elaborazione (CPU) Memoria Centrale (RAM) per.](https://reader035.fdocument.pub/reader035/viewer/2022062512/5542eb58497959361e8c32c4/html5/thumbnails/1.jpg)
Com’è fatto un elaboratore? Elaboratori basati sulla
Architettura di Von Neumannche consiste di: Un’unità di Elaborazione (CPU) Memoria Centrale (RAM) per istruzioni e
dati memorizzati come sequenze di dati Periferiche Bus di Sistema
![Page 2: Comè fatto un elaboratore? Elaboratori basati sulla Architettura di Von Neumann che consiste di: Ununità di Elaborazione (CPU) Memoria Centrale (RAM) per.](https://reader035.fdocument.pub/reader035/viewer/2022062512/5542eb58497959361e8c32c4/html5/thumbnails/2.jpg)
Programmi e dati I programmi (seq. istruzioni) e i dati
sono memorizzati in memoria di massa (lenta)
Per essere eseguito, un programma deve essere caricato in memoria centrale (veloce)
Occorre anche allocare spazio per i dati utilizzati dal programma (es. Variabili N,Ris) in memoria centrale
![Page 3: Comè fatto un elaboratore? Elaboratori basati sulla Architettura di Von Neumann che consiste di: Ununità di Elaborazione (CPU) Memoria Centrale (RAM) per.](https://reader035.fdocument.pub/reader035/viewer/2022062512/5542eb58497959361e8c32c4/html5/thumbnails/3.jpg)
Come funziona l’elaboratore? Un programma viene caricato in memoria
centrale Si alloca lo spazio per i dati necessari al
programma La CPU estrae le istruzioni e dati dalla memoria
centrale, le decodifica e le esegue utilizzando registri interni (accesso veloce)
L’esecuzione può comportare il trasferimento di dati in input e output tra memoria centrale e periferiche attraverso il bus di sistema
L’esecuzione viene scandita dal clock
![Page 4: Comè fatto un elaboratore? Elaboratori basati sulla Architettura di Von Neumann che consiste di: Ununità di Elaborazione (CPU) Memoria Centrale (RAM) per.](https://reader035.fdocument.pub/reader035/viewer/2022062512/5542eb58497959361e8c32c4/html5/thumbnails/4.jpg)
Memoria Centrale (RAM) Organizzata come una tabella di
celle Cella = parola di memoria Parola = sequenza di byte Es. memoria da
16 bit (2 byte) 32 bit 64 bit
![Page 5: Comè fatto un elaboratore? Elaboratori basati sulla Architettura di Von Neumann che consiste di: Ununità di Elaborazione (CPU) Memoria Centrale (RAM) per.](https://reader035.fdocument.pub/reader035/viewer/2022062512/5542eb58497959361e8c32c4/html5/thumbnails/5.jpg)
Indirizzo di memoria Indirizzo di memoria = posizione
relativa alla prima cella della memoria La CPU utilizza due registri di controllo:
Registro di indirizzamento (RI) serve per recuperare le parole di
memoria Registro dati (RD)
mantiene dati input e output
![Page 6: Comè fatto un elaboratore? Elaboratori basati sulla Architettura di Von Neumann che consiste di: Ununità di Elaborazione (CPU) Memoria Centrale (RAM) per.](https://reader035.fdocument.pub/reader035/viewer/2022062512/5542eb58497959361e8c32c4/html5/thumbnails/6.jpg)
Funzionamento RAM
RI RD
MEMORIA: parole da 16 bit
REG.INDIRIZZIK bit:
REG. DATI. 16 bit
012
:
K2
m12...0 K
![Page 7: Comè fatto un elaboratore? Elaboratori basati sulla Architettura di Von Neumann che consiste di: Ununità di Elaborazione (CPU) Memoria Centrale (RAM) per.](https://reader035.fdocument.pub/reader035/viewer/2022062512/5542eb58497959361e8c32c4/html5/thumbnails/7.jpg)
Tipi di Memoria Memoria RAM (Random Access):
Volatile, veloce, utilizzata per dalla CPU Memoria ROM (Read only):
Si può solo leggere, per operazioni critiche
Memoria EROM, EPROM: Cancellabili, cancellabili e
programmabili
![Page 8: Comè fatto un elaboratore? Elaboratori basati sulla Architettura di Von Neumann che consiste di: Ununità di Elaborazione (CPU) Memoria Centrale (RAM) per.](https://reader035.fdocument.pub/reader035/viewer/2022062512/5542eb58497959361e8c32c4/html5/thumbnails/8.jpg)
CPU: Central Processing Unit Rappresenta il cuore
dell’elaboratore Unità Aritmetico-Logica (ALU)
Circuiti per calcolo vero e proprio Registri
Accumulatore, Program Counter, ... Decodificatore di istruzioni
Tabella che estrae istruzioni
![Page 9: Comè fatto un elaboratore? Elaboratori basati sulla Architettura di Von Neumann che consiste di: Ununità di Elaborazione (CPU) Memoria Centrale (RAM) per.](https://reader035.fdocument.pub/reader035/viewer/2022062512/5542eb58497959361e8c32c4/html5/thumbnails/9.jpg)
Registri Registro istruzione corrente (RIC)
contiene l’istruzione correntemente eseguita Contatore di Programma (PC)
indirizzo della prossima istruzione da eseguire Registro interruzioni (RINT)
contiene informazioni riguardo lo status delle periferiche
Accumulatore (ACC) Contiene valori utilizzati durante operazioni
![Page 10: Comè fatto un elaboratore? Elaboratori basati sulla Architettura di Von Neumann che consiste di: Ununità di Elaborazione (CPU) Memoria Centrale (RAM) per.](https://reader035.fdocument.pub/reader035/viewer/2022062512/5542eb58497959361e8c32c4/html5/thumbnails/10.jpg)
Modello Semplificato
2:1:0:
:
RAM
decoder
RIC
PC
ACC
ALU
![Page 11: Comè fatto un elaboratore? Elaboratori basati sulla Architettura di Von Neumann che consiste di: Ununità di Elaborazione (CPU) Memoria Centrale (RAM) per.](https://reader035.fdocument.pub/reader035/viewer/2022062512/5542eb58497959361e8c32c4/html5/thumbnails/11.jpg)
Istruzioni della Macchina Le istruzioni della macchina sono
codificate in forma numerica ed inserite insieme agli altri dati nella memoria centrale
Istruzione = operazione di base sui registri e sulla RAM
Codifica delle istruzioni = Elenco ordinato Identificatore di un istruzione ~ Numero
d’ordine
![Page 12: Comè fatto un elaboratore? Elaboratori basati sulla Architettura di Von Neumann che consiste di: Ununità di Elaborazione (CPU) Memoria Centrale (RAM) per.](https://reader035.fdocument.pub/reader035/viewer/2022062512/5542eb58497959361e8c32c4/html5/thumbnails/12.jpg)
Rappresentazione RAM Utilizzeremo la notazione
RAM[0] RAM[1] ...
Per rappresentare le celle della RAM(RAM[i]=contenuto della cella con indirizzo i)
![Page 13: Comè fatto un elaboratore? Elaboratori basati sulla Architettura di Von Neumann che consiste di: Ununità di Elaborazione (CPU) Memoria Centrale (RAM) per.](https://reader035.fdocument.pub/reader035/viewer/2022062512/5542eb58497959361e8c32c4/html5/thumbnails/13.jpg)
Operatori e parametri Alcune istruzioni richiedono un parametro che
viene passato al momento della esecuzione Per rappresentare codice + operandi possiamo
utilizzare una codifica del tipo: In rapp. decimale: CODICE*N+OPERANDO dove
N dipende dalla grandezza delle celle di memoria
Ad es. 2*1000+5=205 identifica l’istruzione2 con parametro N=5
In binario: sequenza di bit composta da CODICE OPERANDO (es. 0010 0101)
![Page 14: Comè fatto un elaboratore? Elaboratori basati sulla Architettura di Von Neumann che consiste di: Ununità di Elaborazione (CPU) Memoria Centrale (RAM) per.](https://reader035.fdocument.pub/reader035/viewer/2022062512/5542eb58497959361e8c32c4/html5/thumbnails/14.jpg)
Esempio di Set Istruzioni Istruzione 1 con parametro N
Nuovo valore del reg. ACC = ACC + RAM[N] Istruzione 2 con parametro N
Nuovo valore di RAM[N] = ACC Istruzione 3 con parametro N
Se ACC=0 allora nuovo PC = RAM[N] Istruzione 4 con parametro N
Nuovo valore di ACC = RAM[N] Istruzione 5: termina l’esecuzione
![Page 15: Comè fatto un elaboratore? Elaboratori basati sulla Architettura di Von Neumann che consiste di: Ununità di Elaborazione (CPU) Memoria Centrale (RAM) per.](https://reader035.fdocument.pub/reader035/viewer/2022062512/5542eb58497959361e8c32c4/html5/thumbnails/15.jpg)
Programma in Linguaggio Macchina
Sequenza di istruzioni codificate Un programma viene interpretato infatti
sequenzialmenteattraverso il registro PC che identifica la prossima istruzione da eseguire
L’istruzione 3 (…PC = RAM[N]) permette di saltare in un qualsiasi punto del programma
Per capire meglio occore introdurre il ciclo di interpretazione dei programmi
![Page 16: Comè fatto un elaboratore? Elaboratori basati sulla Architettura di Von Neumann che consiste di: Ununità di Elaborazione (CPU) Memoria Centrale (RAM) per.](https://reader035.fdocument.pub/reader035/viewer/2022062512/5542eb58497959361e8c32c4/html5/thumbnails/16.jpg)
Stato iniziale della macchina Supponiamo di aver caricato le
istruzioni nella RAM a partire dalla cella con indirizzo 0
Inoltre supponiamo di avere a disposizione una tabella che ci permette di recuperare l’istruzione e i relativi parameteri a partire dal suo encoding (Codice*N+Parametro)
![Page 17: Comè fatto un elaboratore? Elaboratori basati sulla Architettura di Von Neumann che consiste di: Ununità di Elaborazione (CPU) Memoria Centrale (RAM) per.](https://reader035.fdocument.pub/reader035/viewer/2022062512/5542eb58497959361e8c32c4/html5/thumbnails/17.jpg)
Esecuzione tramite ciclo di fetch
Inizializzazione: memorizza 0 nel registro PC Ciclo di Fetch:
1. Recupera il valore nella cella con indirizzo PC nella RAM e lo memorizza nel registro RIC (registro istruzione corrente)
2. Somma 1 al valore contenuto in PC e lo memorizza in PC
3. Decodifica il valore contenuto in RIC (estrae il codice operazione e il parametro)
4. Esegui l’istruzione 5. Torna al punto 1 a meno che l’istruzione non sia
quella di `fine programma’
![Page 18: Comè fatto un elaboratore? Elaboratori basati sulla Architettura di Von Neumann che consiste di: Ununità di Elaborazione (CPU) Memoria Centrale (RAM) per.](https://reader035.fdocument.pub/reader035/viewer/2022062512/5542eb58497959361e8c32c4/html5/thumbnails/18.jpg)
Osservazioni Il ciclo di fetch permette di eseguire
programmi in modo sequenziale: Prima istruzione RIC = RAM[0] Incremento PC Istruzione seguent RIC = RAM[1], ecc.
Posso ottenere dei cicli ottengono cambiando il valore del registro PC tramite l’istruzione 3 …PC = RAM[4] Incremento PC
![Page 19: Comè fatto un elaboratore? Elaboratori basati sulla Architettura di Von Neumann che consiste di: Ununità di Elaborazione (CPU) Memoria Centrale (RAM) per.](https://reader035.fdocument.pub/reader035/viewer/2022062512/5542eb58497959361e8c32c4/html5/thumbnails/19.jpg)
Esempio di programma Considerate la seguente conf. iniziale della RAM:
RAM[0]= 4004 RAM[1]= 1005 RAM[2]= 2004 RAM[3]= 5 RAM[4]= 21 RAM[5]= 9
dove Istr. 1: ACC ’ = ACC + RAM[N] Istr. 2: RAM[N] ’ = ACC Istr. 4: ACC ’ = RAM[N] Istr. 5: termina esecuzione (N=parametro)
Cosa fa il programma?
![Page 20: Comè fatto un elaboratore? Elaboratori basati sulla Architettura di Von Neumann che consiste di: Ununità di Elaborazione (CPU) Memoria Centrale (RAM) per.](https://reader035.fdocument.pub/reader035/viewer/2022062512/5542eb58497959361e8c32c4/html5/thumbnails/20.jpg)
Soluzione Il programma precedente esegue i seguenti
passi: Copia il valore della cella 4 (=21) nel reg. ACC Somma il val. della cella 5 (=9) al valore in ACC e lo
memorizza di nuovo in ACC (=30) Copia il valore del reg. ACC nella cella 4 (=30)
Alla fine abbiamo che: ACC e RAM[4] contengono 30 RAM[5] contiene ancora 9
![Page 21: Comè fatto un elaboratore? Elaboratori basati sulla Architettura di Von Neumann che consiste di: Ununità di Elaborazione (CPU) Memoria Centrale (RAM) per.](https://reader035.fdocument.pub/reader035/viewer/2022062512/5542eb58497959361e8c32c4/html5/thumbnails/21.jpg)
Ciclo Per simulare un ciclo dobbiamo usare
Istr. 3: se ACC=0 allora PC ’=RAM[N] Istr. 6: PC ’ = RAM[N]
Esempio ciclo che va da 5 a 0: RAM[0] = 4004 (ACC=5 nota: programma come dato!) RAM[1] = 3006 (se ACC=0 go to 4) RAM[2] = 1007 (ACC’=ACC-1) RAM[3] = 6005 (go to 1) RAM[4] = 5 (halt) RAM[5] = 1 RAM[6] = 4 RAM[7] = -1
![Page 22: Comè fatto un elaboratore? Elaboratori basati sulla Architettura di Von Neumann che consiste di: Ununità di Elaborazione (CPU) Memoria Centrale (RAM) per.](https://reader035.fdocument.pub/reader035/viewer/2022062512/5542eb58497959361e8c32c4/html5/thumbnails/22.jpg)
Moltiplicazione? Supponiamo che i valori di A ed N
siano contenuti in due celle fissate della RAM
Vogliamo scrivere un programma che calcola A*N
Provate a casa cercando di capire quali altri istruzioni vi possono servire!
![Page 23: Comè fatto un elaboratore? Elaboratori basati sulla Architettura di Von Neumann che consiste di: Ununità di Elaborazione (CPU) Memoria Centrale (RAM) per.](https://reader035.fdocument.pub/reader035/viewer/2022062512/5542eb58497959361e8c32c4/html5/thumbnails/23.jpg)
Istruzioni e dati La CPU applica il ciclo di fetch e decodifica in modo
indiscriminato istruzioni o dati Si possono definire programmi automodificanti che
utilizzano dati come istruzioni (ad es. memorizzano dei dati in una cella e poi la interpretano come un’istruzione)
Nella macchina di Von Neumann alcuni problemi si possono risolvere solo con programmi automodificanti
Ad esempio provate a fare un programma che legge dall’esterno e scrive in una sequenza di celle(occorre modificare l’istruzione di scrittura)
![Page 24: Comè fatto un elaboratore? Elaboratori basati sulla Architettura di Von Neumann che consiste di: Ununità di Elaborazione (CPU) Memoria Centrale (RAM) per.](https://reader035.fdocument.pub/reader035/viewer/2022062512/5542eb58497959361e8c32c4/html5/thumbnails/24.jpg)
Inizializzazione della RAM Finora abbiamo assunto che tutti i
programmi risiedono gia in memoria Un set di programmi predefiniti (Sistema
Operativo) fornito insieme all’elaboratore si occupa di caricare ed eseguire i nostri programmi
Un programma speciale chiamato Bootstrap si incarica a sua volta di caricare il sistema operativo al momento dell’accensione della macchina
![Page 25: Comè fatto un elaboratore? Elaboratori basati sulla Architettura di Von Neumann che consiste di: Ununità di Elaborazione (CPU) Memoria Centrale (RAM) per.](https://reader035.fdocument.pub/reader035/viewer/2022062512/5542eb58497959361e8c32c4/html5/thumbnails/25.jpg)
Elaboratore Moderno
BUS
CPURAM
I/O Controller Disk Controller
DiskINPUT
OUTPUT
![Page 26: Comè fatto un elaboratore? Elaboratori basati sulla Architettura di Von Neumann che consiste di: Ununità di Elaborazione (CPU) Memoria Centrale (RAM) per.](https://reader035.fdocument.pub/reader035/viewer/2022062512/5542eb58497959361e8c32c4/html5/thumbnails/26.jpg)
Elaboratore Moderno L’attivita della CPU e’ svincolata dagli
altri dispositivi La comunicazione avviene tramite il bus di
sistema I controllori dei dispositivi quali disco fisso
hanno la possibilità di accedere direttamente alla RAM
Altre estensioni: Co-processori dedicati a compiti specifici Cache memory (memoria veloce) Multi-processori
![Page 27: Comè fatto un elaboratore? Elaboratori basati sulla Architettura di Von Neumann che consiste di: Ununità di Elaborazione (CPU) Memoria Centrale (RAM) per.](https://reader035.fdocument.pub/reader035/viewer/2022062512/5542eb58497959361e8c32c4/html5/thumbnails/27.jpg)
Bus di sistema Collegamento tra le varie componenti
sempre sotto il controllo della CPU Il bus viene assegnato alle
componenti per un certo intervallo di tempo in modo che possano scambiare dati Bus dati Bus indirizzi Bus comandi
![Page 28: Comè fatto un elaboratore? Elaboratori basati sulla Architettura di Von Neumann che consiste di: Ununità di Elaborazione (CPU) Memoria Centrale (RAM) per.](https://reader035.fdocument.pub/reader035/viewer/2022062512/5542eb58497959361e8c32c4/html5/thumbnails/28.jpg)
Interfacce di ingresso/uscita Circuiti che gestiscono le
periferiche Registro dati (da e per la CPU)
collegato al bus dati Registro comandi per la periferica
collegato al bus comandi Informazioni sullo stato della
periferiche (ad es collegato al reg. RINT)
![Page 29: Comè fatto un elaboratore? Elaboratori basati sulla Architettura di Von Neumann che consiste di: Ununità di Elaborazione (CPU) Memoria Centrale (RAM) per.](https://reader035.fdocument.pub/reader035/viewer/2022062512/5542eb58497959361e8c32c4/html5/thumbnails/29.jpg)
Periferiche: Terminali Terminali consistono di
Tastiera per acquisire dati in ingresso (input)
Video per mostrare dati immessi ed elaborati; il cursore seleziona una posizione nel video dove vengono immessi i dati
Mouse per controllare il cursore Caratteristiche: numero di colori,
dimensioni, risoluzione, capacità grafica
![Page 30: Comè fatto un elaboratore? Elaboratori basati sulla Architettura di Von Neumann che consiste di: Ununità di Elaborazione (CPU) Memoria Centrale (RAM) per.](https://reader035.fdocument.pub/reader035/viewer/2022062512/5542eb58497959361e8c32c4/html5/thumbnails/30.jpg)
Periferiche: Stampanti Producono su carta i risultati
dell’elaboraz. Vari tipi:
A margherita Ad aghi A getto d’inchiostro Laser
Caratteristiche: velocità, risoluzione, set di caratteri, capacità grafica (colori ecc)
![Page 31: Comè fatto un elaboratore? Elaboratori basati sulla Architettura di Von Neumann che consiste di: Ununità di Elaborazione (CPU) Memoria Centrale (RAM) per.](https://reader035.fdocument.pub/reader035/viewer/2022062512/5542eb58497959361e8c32c4/html5/thumbnails/31.jpg)
Elaboratori PC IBM-compatibile
CPU 386, 486 a 32 bit Sistema Operativi:
MS DOS (Microsotf) OS 2 (Sun)
McIntosh (Apple) Workstations Sun, HP, Apollo Sistema Operativo:
Unix