Title: CALCOLATORI ELETTRONICI
1CALCOLATORI ELETTRONICI
- Giovanni Danese
- Tel. 0382 985364
- e-mail gianni.danese_at_unipv.it
- 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
2Materiale didattico consigliato
- Testo Consigliato David A. Patterson, John L.
Hennessy, - Struttura e progetto dei calcolatoriZanichelli,
2015, 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
calcolatoriJackson libri, 1999, Milano, II
edizione. - Documentazione varia è reperibile al sito
- mclab.unipv.it/index.php/corsi
3Argomenti del corso
- 1. Architettura dei calcolatori
- 2. Architettura di una CPU
- 3. Linguaggio assemblativo
- 4. Laritmetica dei calcolatori
- 5. Lambiente di sviluppo dei progetti
- Prerequisiti
- Devono essere noti gli argomenti trattati nei
corsi Fondamenti di Informatica e Fondamenti di
Informatica (laboratorio)
4Architettura di un computer
Instruction Set
- Diversi livelli di astrazione
5Rappresentazione delle istruzioni
Linguaggio ad alto livello (HLL)
temp vk vk vk1 vk1 temp
Compilatore
lw 15, 0(2) lw 16, 4(2) sw 16, 0(2) sw 15,
4(2)
Linguaggio Assembly
Assemblatore
0000 1001 1100 0110 1010 1111 0101 1000 1010 1111
0101 1000 0000 1001 1100 0110 1100 0110 1010
1111 0101 1000 0000 1001 0101 1000 0000 1001
1100 0110 1010 1111
Linguaggio Macchina
Interpretazione macchina
Segnali di controllo
6Struttura 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 lutilizzo
della macchina da parte dei programmi utente ?
sistema operativo - Software di sistema insieme di programmi che
forniscono servizi (Sistema Operativo,
compilatori, assemblatori) - Software applicativoprogrammi utente o mirati
allutente (editors, spreadsheet)
7Struttura del software (2)
Sw applicativo
SOFTWARE
Software appl. Software sistema
Word Compilatori Sist. Op. Assembl.
Memoria File I/O virtuale System drivers
8Architettura 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) 1992-97
- HP PA-RISC (v1.1, v2.0) 1986-96
- Sun Sparc (v8, v9) 1987-95
- SGI MIPS (MIPS I, II, III, IV, V) 1986-96
- Intel (8086,80286,80386, 1978-96 80486,
Pentium, MMX, ...)
9Di cosa ci occuperemo
- Le istruzioni il linguaggio dei calcolatori
(Cap. 2 Zanich, 3 Jacks) - Laritmetica 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)
10Architettura della macchina di Von Neumann
Unità di ingresso
Unità di uscita
Memoria
Risultati
Programmi e dati
CPU
Unità centrale
11Unità Centrale
D A T A B U S
CONTROL B U S
AD D R E SS B U S
12Microprocessori 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
13Un 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 2416 28 256 216 65536
- Precisione relativa 6.25 3.9 0.015
- Precisione max. 62.5 gr 3.9 gr 0.015 gr
14Osservazioni
- 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).
15Architettura di una CPU
BUS DATI ESTERNO
BUS DATI INTERNO
ACC
C O N T R.
D E C O D.
I N S T. R E G.
SP
PC
R e g 0
R e g N
F L A G
.
ALU
BUS INDIRIZZI INTERNO
BUS IND. ESTERNO
16Ciclo di esecuzione di unistruzione
- FETCH (prelevamento dellistruzione)
- DECODIFICA
- ESECUZIONE
- La memoria (ROM e RAM) contiene il programma e i
dati sui quali opera la CPU. Il Program Counter
(PC) contiene lindirizzo della cella di memoria
con la prossima istruzione da eseguire. - FORMATO DELLE ISTRUZIONI
Campo che caratterizza le varie istruzioni
Gli operandi possono essere 0, 1, 2
17Sequenza di operazioni elementari per
lesecuzione di ogni singola istruzione
- FETCH vengono letti i campi che costituiscono
listruzione - 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) dellistruzione corrente. Passi analoghi
permettono di caricare in opportuni registri
della CPU gli operandi presenti nellistruzione.
In tal caso, nel passo 3 la destinazione del dato
proveniente dalla memoria non è più IR, ma
opportuni registri. - DECODE viene identificata listruzione corrente
sulla base dellOP Code - EXECUTE è diversa a seconda del tipo di
istruzione. In pratica consiste nellinviare
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
18Formato delle istruzioni
- Le istruzioni sono codificate da stringhe di bit.
- Una volta caricata nellIR, unistruzione deve
essere decodificata ed eseguita. A tal scopo
lunità 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
Esempio 1 Somma tra il contenuto del registro R2
e il contenuto dellaccumulatore. Il risultato va
nellaccumulatore FORMATO codice
operativo FETCH come in precedenza ESECUZIONE (R2
)(ACC)?ACC
19Esempio di esecuzione di istruzioni complete
- Esempio 2 somma tra il contenuto della cella di
memoria il cui indirizzo è specificato
nellistruzione ed il contenuto
dellaccumulatore il risultato va
nellaccumulatore - FORMATO codice operativooperando
- FETCH
- 1) (PC)?MAR 4) (PC)?MAR
- 2) ((MAR)) ?MBR (PC)1 ?PC 5) ((MAR)) ?MBR
(PC)1 ?PC - 3) (MBR) ?IR 6) (MBR) ?Rn
- EXECUTE
- 1) (Rn) ?MAR 3) (MBR) ?Rn
- 2) ((MAR)) ?MBR 4) (Rn)(ACC) ?ACC
20Esempio di esecuzione di istruzioni complete
- Esempio 3 saltare allistruzione che è
memorizzata nella cella il cui indirizzo è
specificato allinterno dellistruzione corrente - FORMATO codice operativooperando
- FETCH
- 1) (PC)?MAR 4) (PC)?MAR
- 2) ((MAR)) ?MBR (PC)1 ?PC 5) ((MAR)) ?MBR
(PC)1 ?PC - 3) (MBR) ?IR 6) (MBR) ?Rn
- EXECUTE
- 1) (Rn) ?PC