© 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 1
FONDAMENTI DI INFORMATICA
Prof. PIER LUCA MONTESSORO
Facoltà di Ingegneria Università degli Studi di Udine
Architettura e funzionamento del calcolatore
© 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 2 Questo insieme di trasparenze (detto nel seguito slide) è protetto dalle leggi sul copyright e dalle disposizioni dei trattati internazionali. Il titolo ed i copyright relativi alle slides (ivi inclusi, ma non limitatamente, ogni immagine, fotografia, animazione, video, audio, musica e testo) sono di proprietà dell’autore prof. Pier Luca Montessoro, Università degli Studi di Udine.
Le slide possono essere riprodotte ed utilizzate liberamente dagli istituti di ricerca, scolastici ed universitari afferenti al Ministero della Pubblica Istruzione e al Ministero dell’Università e Ricerca Scientifica e Tecnologica, per scopi istituzionali, non a fine di lucro. In tal caso non è richiesta alcuna autorizzazione.
Ogni altro utilizzo o riproduzione (ivi incluse, ma non limitatamente, le riproduzioni su supporti magnetici, su reti di calcolatori e stampe) in toto o in parte è vietata, se non esplicitamente autorizzata per iscritto, a priori, da parte dell’autore.
L’informazione contenuta in queste slide è ritenuta essere accurata alla data della pubblicazione. Essa è fornita per scopi meramente didattici e non per essere utilizzata in progetti di impianti, prodotti, reti, ecc. In ogni caso essa è soggetta a cambiamenti senza preavviso. L’autore non assume alcuna responsabilità per il contenuto di queste slide (ivi incluse, ma non limitatamente, la correttezza, completezza, applicabilità, aggiornamento dell’informazione).
In ogni caso non può essere dichiarata conformità all’informazione contenuta in queste slide.
In ogni caso questa nota di copyright e il suo richiamo in calce ad ogni slide non devono mai essere rimossi e devono essere riportati anche in utilizzi parziali.
Nota di Copyright
Fondamenti di Informatica - Il funzionamento del calcolatore
© 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 3
Modello di calcolatore
• Si farà uso di un modello semplificato di elaboratore di tipo RISC (Reduced Instruction Set Computer)
• Per esso vengono nel seguito definiti:
– architettura
– linguaggio macchina/linguaggio assembler
Fondamenti di Informatica - Il funzionamento del calcolatore
© 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 4
Architettura del processore
Address bus CPU
Control Unit
Arithmetic and Logic PC Unit
IR R0
R1
R15
Memoria Dispositivi di I/O 0000
0001 0002 0003 0004 0005 0006 0007
.. . .. .
Data bus Control bus SP
flags
16 fili
3 fili 16 fili
Fondamenti di Informatica - Il funzionamento del calcolatore
© 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 5
Caratteristiche del processore
• Parallelismo: 16 bit
• 16 registri general purpose da 16 bit
• 3 registri special purpose non
direttamente indirizzabili dalle istruzioni Program Counter (PC)
Instruction Register (IR) Stack Pointer (SP)
• flag:
Z (zero) N (negative)
C (carry: Cn) V (overflow: Cn-1 ⊕ Cn)
Fondamenti di Informatica - Il funzionamento del calcolatore
© 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 6
Caratteristiche del processore
• Isolated I/O: 16 bit per gli indirizzi di I/O
• Macchina “load & store”:
– le uniche istruzioni che possono accedere alla memoria sono quelle che trasferiscono i dati da e verso i registri
– tutte le altre operazioni operano soltanto sui registri
• Nell’accesso alla memoria l’indirizzo
può essere espresso in tre modi (“modi
di indirizzamento”)
© 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 7
Modi di indirizzamento
• Operando immediato
– la parola che segue l’istruzione contiene il dato (e quindi l’indirizzo del dato è contenuto nel PC)
• Indirizzo assoluto
– la parola che segue l’istruzione (indirizzo nel PC) contiene l’indirizzo del dato
• Indirizzo in registro
– l’indirizzo del dato è contenuto nel registro specificato dal codice dell’istruzione
© 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 8
Unità di controllo
sequential logic circuits
instruction register clock
status signals from processor
control signals to processor
...
instruction decoder
Fondamenti di Informatica - Il funzionamento del calcolatore
© 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 9
Unità aritmetico-logica
combinational circuits
and data registers control
signals from control unit
...
status signals to control unit
flags
Fondamenti di Informatica - Il funzionamento del calcolatore
© 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 10
Il control bus
R/W
La CU lo pone a 1 per le operazioni di lettura, a 0 per le operazioni di scrittura
M/IO
La CU lo pone a 1 per le operazioni di lettura o scrittura in memoria, a 0 per le operazioni di lettura o scrittura su dispositivi di input/output
W/B
La CU lo pone a 1 per le operazioni di lettura/scrittura di 1 word, a 0 per le operazioni di lettura/scrittura di 1 byte
Fondamenti di Informatica - Il funzionamento del calcolatore
© 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 11
Memoria RAM
0000 0001 0002 0003 0004 0005 0006 0007
.. .
Address bus
Data bus Control
bus R/W, M/IO, W/B address
decoder
.. .
Fondamenti di Informatica - Il funzionamento del calcolatore
© 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 12
Dispositivi di I/O
Address bus
Data bus Control
bus address
decoder R/W, M/IO, W/B
Indirizzo monitor 0000
Indirizzo tastiera
0001
© 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 13
Instruction fetch (I)
Address bus CPU
Control Unit
Arithmetic and Logic 0003 PC Unit
IR
Memoria Dispositivi di I/O
00 10 CF 36 0000 0001 0002 0003 0004 0005 0006 0007
.. . .. .
Data bus Control bus SP
flags
0003
R0 R1R15
M/IO = 1 (memory), R/W = 1 (read) W/B = 1 (word)
© 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 14
Instruction fetch (II)
Address bus CPU
Control Unit
Arithmetic and Logic PC Unit
1000 IR
Memoria Dispositivi di I/O 0000
0001 0002 0003 0004 0005 0006 0007
.. . .. .
Data bus Control bus SP
flags
increment 00
10
1000
CF 36 0005R0 R1
R15
Fondamenti di Informatica - Il funzionamento del calcolatore
© 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 15
Operand fetch - op. immediato (I)
Address bus CPU
Control Unit
Arithmetic and Logic PC Unit
IR
Memoria Dispositivi di I/O 0000
0001 0002 0003 0004 0005 0006 0007
.. . .. .
Data bus Control bus SP
flags 1000
0005 00
10 CF 36
0005
R0 R1R15
M/IO = 1 (memory), R/W = 1 (read) W/B = 1 (word)
Fondamenti di Informatica - Il funzionamento del calcolatore
© 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 16
Operand fetch - op. immediato (II)
Address bus CPU
Control Unit
Arithmetic and Logic PC Unit
IR 36CF
Memoria Dispositivi di I/O 0000
0001 0002 0003 0004 0005 0006 0007
.. . .. .
Data bus Control bus SP
flags 1000
00 10 CF 36
36CF
increment
0007
R0 R1
R15
Fondamenti di Informatica - Il funzionamento del calcolatore
© 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 17
Operand fetch - ind. assoluto (I)
Address bus CPU
Control Unit
Arithmetic and Logic PC Unit
IR
Memoria Dispositivi di I/O 0000
0001 0002 0003 0004 0005 0006 0007
.. . .. .
Data bus Control bus SP
flags 2000
0005 00
20 00 00
0005
A8 51R0 R1
R15
M/IO = 1 (memory), R/W = 1 (read) W/B = 1 (word)
Fondamenti di Informatica - Il funzionamento del calcolatore
© 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 18
Operand fetch - ind. assoluto (II)
Address bus CPU
Control Unit
Arithmetic and Logic PC Unit
IR
Memoria Dispositivi di I/O 0000
0001 0002 0003 0004 0005 0006 0007
.. . .. .
Data bus Control bus SP
flags 2000
00 20 00 00
0000 0000
increment
0007
A8 51
R0 R1
R15
M/IO = 1 (memory), R/W = 1 (read) W/B = 1 (word)
© 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 19
Operand fetch - ind. assoluto (III)
Address bus CPU
Control Unit
Arithmetic and Logic PC Unit
IR 51A8
Memoria Dispositivi di I/O A8
51 0000 0001 0002 0003 0004 0005 0006 0007
.. . .. .
Data bus Control bus SP
flags 2000
0007 00
20 00 00
51A8
R0 R1R15
© 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 20
Operand fetch - ind. in registro (I)
Address bus CPU
Control Unit
Arithmetic and Logic PC Unit
IR 0006
Memoria Dispositivi di I/O 0000
0001 0002 0003 0004 0005 0006 0007
.. . .. .
Data bus Control bus SP
flags
97 22
3001 R0
R1
R15
M/IO = 1 (memory), R/W = 1 (read) W/B = 1 (word)
Fondamenti di Informatica - Il funzionamento del calcolatore
© 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 21
Operand fetch - ind. in registro (II)
Address bus CPU
Control Unit
Arithmetic and Logic PC Unit
IR 2297
Memoria Dispositivi di I/O
97 22 0000 0001 0002 0003 0004 0005 0006 0007
.. . .. .
Data bus Control bus SP
flags
2297
00063001 R0
R1
R15
Fondamenti di Informatica - Il funzionamento del calcolatore
© 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 22
Memory store - ind. assoluto (I)
Address bus CPU
Control Unit
Arithmetic and Logic PC Unit
IR 3003
Memoria Dispositivi di I/O 0000
0001 0002 0003 0004 0005 0006 0007
.. . .. .
Data bus Control bus SP
flags 2200
0005 00
22 00 00
0005
R0 R1R15
M/IO = 1 (memory), R/W = 1 (read) W/B = 1 (word)
Fondamenti di Informatica - Il funzionamento del calcolatore
© 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 23
Memory store - ind. assoluto (II)
Address bus CPU
Control Unit
Arithmetic and Logic PC Unit
IR
Memoria Dispositivi di I/O 0000
0001 0002 0003 0004 0005 0006 0007
.. . .. .
Data bus Control bus SP
flags 2200
00 22 00 00
0000 0000
increment 30030007
R0 R1
R15
M/IO = 1 (memory), R/W = 0 (write) W/B = 1 (word)
Fondamenti di Informatica - Il funzionamento del calcolatore
© 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 24
Memory store - ind. assoluto (III)
Address bus CPU
Control Unit
Arithmetic and Logic PC Unit
IR
Memoria Dispositivi di I/O 03
30 0000 0001 0002 0003 0004 0005 0006 0007
.. . .. .
Data bus Control bus SP
flags 2200
0007 00
22 00 00
3003
3003 R0R1
R15
© 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 25
Memory store - ind. in registro (I)
Address bus CPU
Control Unit
Arithmetic and Logic PC Unit
IR 2297
0006
Memoria Dispositivi di I/O 0000
0001 0002 0003 0004 0005 0006 0007
.. . .. .
Data bus Control bus SP
flags
3201 R0
R1
R15
M/IO = 1 (memory), R/W = 0 (write) W/B = 1 (word)
© 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 26
Memory store - ind. in registro (II)
Address bus CPU
Control Unit
Arithmetic and Logic PC Unit
IR 2297
Memoria Dispositivi di I/O
97 22 0000 0001 0002 0003 0004 0005 0006 0007
.. . .. .
Data bus Control bus SP
flags
2297
00063201 R0
R1
R15