FONDAMENTI DI INFORMATICA
Prof. PIER LUCA MONTESSORO Facoltà di Ingegneria
Università degli Studi di Udine
Architettura e funzionamento del
calcolatore
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 degli autori.
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
Nota di Copyright
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
Architettura del processore
Address bus
CPU
Control UnitArithmetic and Logic PC Unit
IR R0
R1
R15
Memoria Dispositivi di I/O
00000001 0002 0003 0004 0005 0006 0007
...
...
Data bus
SPflags
16 fili
3 fili
16 fili
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)
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”)
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
Unità di controllo
sequential logic circuits
instruction register clock
status signals from processor
control
signals to processor
...
instruction
decoder
Unità aritmetico-logica
combinational circuits
data registers and control
signals from control unit
...
status signals to control unit
flags
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
Memoria RAM
0000 0001 0002 0003 0004 0005 0006 0007
...
Address
bus Data
Control bus bus
R/W, M/IO, W/B
address decoder
.. .
Dispositivi di I/O
Address Control Data
address
decoder R/W, M/IO, W/B
Indirizzo monitor 0000
Indirizzo tastiera
0001
Address bus
CPU
Control UnitArithmetic 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
SPflags
0003
R0 R1
R15
M/IO = 1 (memory), R/W = 1 (read) W/B = 1 (word)
Instruction fetch (II)
Address bus
CPU
Control UnitArithmetic and Logic PC Unit
1000 IR
Memoria Dispositivi di I/O
00000001 0002 0003 0004 0005 0006 0007
...
...
Data bus
SPflags
in cremen t
00 10
1000
CF 36 0005
R0 R1
R15
Address bus
CPU
Control UnitArithmetic and Logic PC Unit
IR
Memoria Dispositivi di I/O
00000001 0002 0003 0004 0005 0006 0007
...
...
Data bus
Control
SPflags 1000
0005 00
10 CF 36
0005
R0 R1
R15
M/IO = 1 (memory), R/W = 1 (read) W/B = 1 (word)
Operand fetch - op. immediato (II)
Address bus
CPU
Control UnitArithmetic and Logic PC Unit
IR 36CF
Memoria Dispositivi di I/O
00000001 0002 0003 0004 0005 0006 0007
...
...
Data bus
SPflags 1000
00 10 CF 36
36CF
in cremen t
0007
R0 R1
R15
Address bus
CPU
Control UnitArithmetic and Logic PC Unit
IR
Memoria Dispositivi di I/O
00000001 0002 0003 0004 0005 0006 0007
...
...
Data bus
Control
SPflags 2000
0005 00
20 00 00
0005
A8 51
R0 R1
R15
M/IO = 1 (memory), R/W = 1 (read) W/B = 1 (word)
Operand fetch - ind. assoluto (II)
Address bus
CPU
Control UnitArithmetic and Logic PC Unit
IR
Memoria Dispositivi di I/O
00000001 0002 0003 0004 0005 0006 0007
...
...
Data bus
SPflags 2000
00 20 00 00
0000 0000
in cremen t
0007
A8 51
R0 R1
R15
M/IO = 1 (memory), R/W = 1 (read) W/B = 1 (word)
Address bus
CPU
Control UnitArithmetic and Logic PC Unit
IR 51A8
Memoria Dispositivi di I/O
A80000 51 0001 0002 0003 0004 0005 0006 0007
...
...
Data bus
Control
SPflags 2000
0007 00
20 00 00
51A8
R0 R1
R15
Operand fetch - ind. in registro (I)
Address bus
CPU
Control UnitArithmetic and Logic PC Unit
IR
0006
Memoria Dispositivi di I/O
00000001 0002 0003 0004 0005 0006 0007
...
...
Data bus
SPflags
97 22
3001 R0
R1
R15
M/IO = 1 (memory), R/W = 1 (read) W/B = 1 (word)
Address bus
CPU
Control UnitArithmetic and Logic PC Unit
IR 2297
Memoria Dispositivi di I/O
97 22 0000 0001 0002 0003 0004 0005 0006 0007
...
...
Data bus
Control
SPflags
2297
0006
3001 R0
R1
R15
Memory store - ind. assoluto (I)
Address bus
CPU
Control UnitArithmetic and Logic PC Unit
IR 3003
Memoria Dispositivi di I/O
00000001 0002 0003 0004 0005 0006 0007
...
...
Data bus
SPflags 2200
0005 00
22 00 00
0005
R0 R1
R15
M/IO = 1 (memory), R/W = 1 (read) W/B = 1 (word)
Address bus
CPU
Control UnitArithmetic and Logic PC Unit
IR
Memoria Dispositivi di I/O
00000001 0002 0003 0004 0005 0006 0007
...
...
Data bus
Control
SPflags 2200
00 22 00 00
0000 0000
cremen in t
30030007
R0 R1
R15
M/IO = 1 (memory), R/W = 0 (write) W/B = 1 (word)
Memory store - ind. assoluto (III)
Address bus
CPU
Control UnitArithmetic and Logic PC Unit
IR
Memoria Dispositivi di I/O
030000 30 0001 0002 0003 0004 0005 0006 0007
...
...
Data bus
SPflags 2200
0007 00
22 00 00
3003
3003 R0 R1
R15
Address bus
CPU
Control UnitArithmetic and Logic PC Unit
IR 2297
0006
Memoria Dispositivi di I/O
00000001 0002 0003 0004 0005 0006 0007
...
...
Data bus
Control
SPflags
3201 R0
R1
R15
M/IO = 1 (memory), R/W = 0 (write) W/B = 1 (word)
Memory store - ind. in registro (II)
Address bus
CPU
Control UnitArithmetic and Logic PC Unit
IR 2297
Memoria Dispositivi di I/O
97 22 0000 0001 0002 0003 0004 0005 0006 0007
...
...
Data bus
SPflags
2297
0006
3201 R0
R1
R15