CALCOLATORI ELETTRONICI
Giovanni Danese
Tel. 0382 985364
e-mail: [email protected]
Corsi di Laurea in Ingegneria Biomedica, in
Ingegneria Elettronica e Informatica
orario delle lezioni:
Lunedì 16-18 aula 8, Mercoledì 9-11 aula 4
orario di ricevimento:
Martedì 16.45-17.45, Giovedì 16.45-17.45
Università di Pavia - corso di Calcolatori Elettronici
1
Materiale didattico consigliato
• Testo Consigliato:
David A. Patterson, John L. Hennessy,
Struttura e progetto dei calcolatori
Zanichelli, 2014, Bologna, IV edizione.
(David A. Patterson, John L. Hennessy, “Computer
Organization and Design”
Elsevier – Morgan Kaufmann, 2014, V edition)
• David A. Patterson, John L. Hennessy,
Struttura, organizzazione e progetto dei calcolatori
Jackson libri, 1999, Milano, II edizione.
• Documentazione varia è reperibile al sito:
mclab.unipv.it/index.php/corsi
Università di Pavia - corso di Calcolatori Elettronici
2
Argomenti del corso:
•1. Architettura dei calcolatori
•2. Architettura di una CPU
•3. Linguaggio assemblativo
•4. L’aritmetica dei calcolatori
•5. L’ambiente di sviluppo dei progetti
Prerequisiti
Devono essere noti gli argomenti trattati nei corsi Fondamenti di Informatica e
Fondamenti di Informatica (laboratorio)
Università di Pavia - corso di Calcolatori Elettronici
3
Architettura di un computer
Application
Operating
System
Compiler
Firmware
Instruction Set
Instr. Set Proc. I/O system
Datapath & Control
Digital Design
Circuit Design
Layout
Diversi livelli di astrazione
Università di Pavia - corso di Calcolatori Elettronici
4
Rappresentazione delle istruzioni
Linguaggio ad alto
livello (HLL)
temp = v[k];
v[k] = v[k+1];
Compilatore
v[k+1] = temp;
lw $15,
lw $16,
sw $16,
sw $15,
Linguaggio Assembly
Assemblatore
Linguaggio Macchina
0000
1010
1100
0101
1001
1111
0110
1000
1100
0101
1010
0000
0($2)
4($2)
0($2)
4($2)
0110
1000
1111
1001
1010
0000
0101
1100
1111
1001
1000
0110
0101
1100
0000
1010
1000
0110
1001
1111
Interpretazione macchina
Segnali di controllo
°
°
Università di Pavia - corso di Calcolatori Elettronici
5
Struttura del software (1)
•
I linguaggi HLL permettono
– progettazione in linguaggio ~ a quello naturale
– una maggior concisione rispetto al linguaggio macchina
– indipendenza dal calcolatore
•
Riutilizzo routine frequentemente impiegate  librerie di subroutine
•
Un programma separato che supervisiona l’utilizzo della macchina da
parte dei programmi utente  sistema operativo
•
Software di sistema= insieme di programmi che forniscono servizi
(Sistema Operativo, compilatori, assemblatori)
•
Software applicativo=programmi utente o mirati all’utente (editors,
spreadsheet)
Università di Pavia - corso di Calcolatori Elettronici
6
Struttura del software (2)
Sw applicativo
SOFTWARE
Software appl.
Software sistema
HW
Word
Sw sistema
Compilatori
Memoria
virtuale
Sist. Op.
File
System
Assembl.
I/O
drivers
Università di Pavia - corso di Calcolatori Elettronici
7
Architettura del Set di Istruzioni
Un importante livello di astrazione
– interfaccia fra hardware e software di basso livello
– standardizza il formato delle istruzioni e i pattern di bit a livello di
linguaggio macchina
– vantaggi: differenti implementazioni della stessa architettura
– svantaggi: talora impossibilità di avvalersi di innovazioni
tecnologiche
Architetture moderne di set di istruzioni
– Digital Alpha (v1, v3)
– HP PA-RISC
(v1.1, v2.0)
– Sun Sparc
(v8, v9)
– SGI MIPS
(MIPS I, II, III, IV, V)
– Intel
(8086,80286,80386,
80486, Pentium, MMX, ...)
1992-97
1986-96
1987-95
1986-96
1978-96
Università di Pavia - corso di Calcolatori Elettronici
8
Di cosa ci occuperemo
•Le istruzioni: il linguaggio dei calcolatori (Cap. 2
Zanich, 3 Jacks)
•L’aritmetica dei calcolatori (Cap. 3 Zanichelli, Cap. 4
Jackson)
•Assemblatori, linker ed il simulatore SPIM (App. B
Zanichelli e App. A Jackson)
•Fondamenti sulla progettazione di reti logiche (App. C
CD Zanichelli e Jackson)
Università di Pavia - corso di Calcolatori Elettronici
9
Architettura della macchina di Von
Neumann
Unità di ingresso
Programmi e
dati
Memoria
Unità di uscita
ALU
Risultati
Unità di
controllo
CPU
Unità centrale
Università di Pavia - corso di Calcolatori Elettronici
10
Unità Centrale
A
D
ALU
D
B
B
U
U
S
S
D
controllo
A
T
MBR
MAR
S
S
B
U
A
Unità di
R
E
C
O
N
T
R
O
L
CPU
Memoria ROM
MBR
MAR
Memoria RAM
S
Università di Pavia - corso di Calcolatori Elettronici
11
Microprocessori e Bus
•
I microprocessori sono dispositivi elettronici che implementano in
un unico circuito integrato le funzioni di una intera CPU. I
microprocessori attuali hanno bus dati a 8, 16, 32, 64 bit.
•
Il bus dati (data bus) esprime la capacità di elaborazione del
processore (quanti bit possono essere elaborati in parallelo)
•
Il bus indirizzi (address bus) esprime la capacità di memorizzazione
del processore (2m celle di memoria, se m è il numero dei bit del
bus)
•
La capacità di indirizzamento indica il numero di celle diverse cui si
può accedere:
210 Byte = 1024 byte = 1 KByte
220 Byte = 1048576 byte = 1 Mbyte
230 Byte = 1073741824 byte = 1 GByte
Università di Pavia - corso di Calcolatori Elettronici
12
Un Esempio
•
Variazione nella precisione di misura di 1 Kg. in un sistema di
pesatura basato su microprocessori con diversa dimensione del bus
dati
Numero di bit bus dati
4
8
16
Dati rappresentabili
24=16
28= 256
216= 65536
Precisione relativa
6.25%
~3.9 ‰
~0.015‰
Precisione max.
62.5 gr
~3.9 gr
~0.015 gr
Università di Pavia - corso di Calcolatori Elettronici
13
Osservazioni
•
I microprocessori a 8 bit di dato hanno tipicamente bus indirizzi a 16
bit con capacità di indirizzamento di 64 KB
•
I microprocessori a 16 bit di dato hanno tipicamente bus indirizzi a
20-24 bit con capacità di indirizzamento di 1-16 MB
•
I microprocessori a 64 bit di dato hanno bus indirizzi a 64 bit con
capacità di indirizzamento fino a circa 1019 byte
•
I microprocessori Single Chip riuniscono in un unico circuito
integrato più di uno dei blocchi costituenti un microcalcolatore
(eventualmente tutti).
Università di Pavia - corso di Calcolatori Elettronici
14
Architettura di una CPU
BUS DATI ESTERNO
BUS DATI INTERNO
ACC
SP
PC
R
F
…. e
g
g
L
R
e
0
N
A
G
ALU
C
D
I
O
E
N
N
C
S
T
O
T.
R.
D.
R
E
G.
BUS INDIRIZZI INTERNO
BUS IND. ESTERNO
Università di Pavia - corso di Calcolatori Elettronici
15
Ciclo di esecuzione di un’istruzione
•FETCH (prelevamento dell’istruzione)
•DECODIFICA
•ESECUZIONE
La memoria (ROM e RAM) contiene il programma e i dati sui quali opera
la CPU. Il Program Counter (PC) contiene l’indirizzo della cella di
memoria con la prossima istruzione da eseguire.
FORMATO DELLE ISTRUZIONI
Codice Operativo
Campo che caratterizza
le varie istruzioni
Operando 1
Operando 2
Gli operandi possono
essere 0, 1, 2
Università di Pavia - corso di Calcolatori Elettronici
16
Sequenza di operazioni elementari per
l’esecuzione di ogni singola istruzione
•FETCH: vengono letti i campi che costituiscono l’istruzione:
1)
(PC)MAR
2)
((MAR)) MBR; (PC)+1 PC
3)
(MBR) IR
I passi 1, 2, 3 permettono di caricare in IR (instruction register) il codice
operativo (OP Code) dell’istruzione corrente. Passi analoghi permettono
di caricare in opportuni registri della CPU gli operandi presenti
nell’istruzione. In tal caso, nel passo 3 la destinazione del dato
proveniente dalla memoria non è più IR, ma opportuni registri.
•DECODE: viene identificata l’istruzione corrente sulla base dell’OP Code
•EXECUTE: è diversa a seconda del tipo di istruzione. In pratica consiste
nell’inviare comandi e dati alle unità interessate.
•P.S. MAR= Memory Address Register; MBR: Memory Buffer Register
•Notazione: (X) Y significa: “Il contenuto del registro X viene trasferito
nel registro Y
Università di Pavia - corso di Calcolatori Elettronici
17
Formato delle istruzioni
•
•
•
•
•
Le istruzioni sono codificate da stringhe di bit.
Una volta caricata nell’IR, un’istruzione deve essere decodificata ed
eseguita. A tal scopo l’unità di controllo deve conoscere:
codice operativo
sorgente: dati su cui operare
destinatario: dove porre il risultato e, se sorgente e destinazione sono
in memoria, la modalità di indirizzamento
Codice Operativo
Sorgente
Destinazione Mod. indirizzamento
Esempio 1: Somma tra il contenuto del registro R2 e il contenuto
dell’accumulatore. Il risultato va nell’accumulatore
FORMATO
codice operativo
FETCH
come in precedenza
ESECUZIONE
(R2)+(ACC)ACC
Università di Pavia - corso di Calcolatori Elettronici
18
Esempio di esecuzione di istruzioni complete
Esempio 2: somma tra il contenuto della cella di memoria il cui indirizzo
è specificato nell’istruzione ed il contenuto dell’accumulatore; il
risultato va nell’accumulatore
•FORMATO: codice operativo+operando
•FETCH:
1) (PC)MAR
2) ((MAR)) MBR; (PC)+1 PC
3) (MBR) IR
4) (PC)MAR
5) ((MAR)) MBR; (PC)+1 PC
6) (MBR) Rn
•EXECUTE:
1) (Rn) MAR
2) ((MAR)) MBR
3) (MBR) Rn
4) (Rn)+(ACC) ACC
Università di Pavia - corso di Calcolatori Elettronici
19
Esempio di esecuzione di istruzioni complete
Esempio 3: saltare all’istruzione che è memorizzata nella cella il cui
indirizzo è specificato all’interno dell’istruzione corrente:
•FORMATO: codice operativo+operando
•FETCH:
1) (PC)MAR
2) ((MAR)) MBR; (PC)+1 PC
3) (MBR) IR
4) (PC)MAR
5) ((MAR)) MBR; (PC)+1 PC
6) (MBR) Rn
•EXECUTE:
1) (Rn) PC
Università di Pavia - corso di Calcolatori Elettronici
20
Scarica

introduzione