Esplora E-book
Categorie
Esplora Audiolibri
Categorie
Esplora Riviste
Categorie
Esplora Documenti
Categorie
Maggio 2011
1 / 100
Outline
1
Introduzione
Tipi di dati
Indirizzamento
Tipi di istruzioni
2 / 99
Introduzione
3 / 99
Introduzione
Il livello ISA
4 / 99
Introduzione
6 / 99
7 / 99
8 / 99
Modelli di memoria
9 / 99
Modelli di memoria
leggere la parola da 0 a 7
leggere la parola da 8 a 15
estrarre i 4 byte di interesse
concatenarli nel giusto ordine
10 / 99
Modelli di memoria
11 / 99
12 / 99
Registri
13 / 99
Registri
Oltre ai registri del livello ISA, esiste un numero di registri
specializzati visibile soltanto in modalit`a kernel: possono
essere impiegati soltanto dal sistema operativo
il registro di flag o PSW, Program Status Word `e una via
di mezzo tra modalit`a kernel e modalit`a utente. Contiene vari
bit necessari alla CPU, tra cui:
N, posto a 1 dopo un risultato negativo
Z, posto a 1 dopo un risultato nullo
V, posto a 1 in caso di overflow
C, posto a 1 in caso di riporto
A, posto a 1 in caso di riporto oltre il terzo bit
P, posto a 1 se il risultato `e pari
Istruzioni
Evoluzione storica
Istruzioni
Evoluzione storica /2
Istruzioni
Modalit`
a operative
0:
1:
2:
3:
modalit`
a kernel
utilizzato raramente
utilizzato raramente
modalit`
a utente
17 / 99
Istruzioni
Gestione della memoria
18 / 99
Istruzioni
Registri
Istruzioni
Registri /2
Tipi di dati
Introduzione
21 / 99
Tipi di dati
numerici: servono per rappresentare numeri con segno o
senza segno
alcune architetture supportano entrambi i formati
di solito sono supportati anche i numeri in virgola mobile, per
la rappresentazione di numeri decimali
alcune architetture supportano anche il formato BCD (Binary
Coded Decimal), in cui ogni cifra decimale viene
rappresentata con 4 bit
22 / 99
Tipi di dati
Dati booleani
23 / 99
Tipi di dati
Dati numerici di Pentium 4 e UltraSPARC III
24 / 99
25 / 99
nessun indirizzo
1 indirizzo
2 indirizzi
3 indirizzi
26 / 99
lestendibilit`
a futura del set di istruzioni
maggiore il numero di bit dedicato allopcode, maggiore la
possibilit`a di estensioni future, minore il numero di bit dedicato
agli indirizzi
27 / 99
1 Bisogna rappresentare 15
istruzioni con 3 operandi
Con 3 indirizzi da 4 bit
ciascuno, il codice operativo pu`o
essere lungo al massimo 4 bit
tramite 4 bit si possono
rappresentare fino a 16 opcode
(0000, 0001, ..., 1110) ...
... pi`
u lultima combinazione
(1111) che viene interpretata
come indicazione che lopcode si
trova nei bit [8-15]
31 / 99
2 Bisogna rappresentare 14
istruzioni con 2 operandi
i primi 4 bit sono settati a 1
i bit [8-11] ospitano le
combinazioni 0000, 0001, ...,
1101
le due ultime combinazioni
(1110 e 1111) vengono
interpretare come indicazione
che lopcode si trova nei bit
[4-15]
32 / 99
3 Bisogna rappresentare 31
istruzioni con 1 operando
i 7 bit pi`
u significativi sono tutti
settati a 1
i 5 bit [4-8] contengono 31
combinazioni (0000 0, 0000 1,
..., 1111 0) ...
... pi`
u lultima (1111 1) che
viene interpretata come
indicazione che lopcode si trova
nei bit [0-15]
33 / 99
3 Bisogna rappresentare 16
istruzioni con 0 operandi
i primi 12 bit sono tutti settati a
1
gli ultimi 4 contengono le 16
possibili combinazioni (0000,
0001, ..., 1111)
34 / 99
35 / 99
36 / 99
Indirizzamento
Introduzione
37 / 99
Indirizzamento
Indirizzamento immediato
38 / 99
Indirizzamento
Indirizzamento diretto
39 / 99
Indirizzamento
Indirizzamento a registro
40 / 99
Indirizzamento
Indirizzamento a registro indiretto
41 / 99
Indirizzamento
Indirizzamento a registro indiretto / Esempio
si somma al contenuto di R1 il
valore puntato dallindirizzo
contenuto in R2
si aggiunge 4 al contenuto di R2
si confronta R2 con R3
Indirizzamento
Indirizzamento indicizzato
43 / 99
Indirizzamento
Indirizzamento indicizzato / Esempio
44 / 99
Indirizzamento
Indirizzamento indicizzato esteso
45 / 99
Indirizzamento
Indirizzamento a stack
46 / 99
47 / 99
48 / 99
49 / 99
50 / 99
Tipi di istruzioni
Introduzione
51 / 99
Tipi di istruzioni
Istruzioni di trasferimento dati
52 / 99
Tipi di istruzioni
Istruzioni di trasferimento dati / 2
53 / 99
Tipi di istruzioni
Istruzioni binarie
54 / 99
Tipi di istruzioni
Istruzioni binarie
55 / 99
Tipi di istruzioni
Istruzioni unarie
56 / 99
Tipi di istruzioni
Istruzioni unarie / 2
57 / 99
Tipi di istruzioni
Istruzioni unarie / 3
58 / 99
Tipi di istruzioni
Istruzioni unarie / 4
59 / 99
Tipi di istruzioni
Confronti e salti condizionati
60 / 99
Tipi di istruzioni
Confronti e salti condizionati / 2
61 / 99
Tipi di istruzioni
Invocazioni di procedura
62 / 99
Tipi di istruzioni
Invocazioni di procedura / 2
63 / 99
Tipi di istruzioni
Istruzioni di ciclo
64 / 99
Tipi di istruzioni
Istruzioni di ciclo / 2
a) verifica in coda
b) verifica in testa
65 / 99
Tipi di istruzioni
Istruzioni di Input/Output
66 / 99
Tipi di istruzioni
Istruzioni di Input/Output - busy waiting
67 / 99
Tipi di istruzioni
Istruzioni di Input/Output - busy waiting / 2
68 / 99
Tipi di istruzioni
Istruzioni di Input/Output - busy waiting / 3
69 / 99
Tipi di istruzioni
Istruzioni di Input/Output - busy waiting / 4
70 / 99
Tipi di istruzioni
Istruzioni di Input/Output - interrupt driven
71 / 99
Tipi di istruzioni
Istruzioni di Input/Output - DMA
72 / 99
Tipi di istruzioni
Istruzioni di Input/Output - DMA / 2
73 / 99
Tipi di istruzioni
Istruzioni di Input/Output - DMA / 3
Tipi di istruzioni
Istruzioni di Input/Output - DMA / 4
75 / 99
76 / 99
77 / 99
78 / 99
Procedure
La torre di Hanoi
79 / 99
Procedure
La torre di Hanoi / 2
80 / 99
Procedure
La torre di Hanoi / 4
La soluzione pu`
o essere implementata mediante una procedura che
permette di spostare n dischi dal piolo i al piolo j:
towers(n, i, j)
81 / 99
Procedure
La torre di Hanoi / 5
towers(1, 1, 3)
towers(2, 2, 3), che a sua volta implica:
towers(1, 2, 1)
towers(1, 2, 3)
towers(1, 1, 3)
82 / 99
Procedure
La torre di Hanoi / 6
Procedure
La torre di Hanoi / 7
Procedure
La torre di Hanoi / 8
Procedure
La torre di Hanoi / 9
Procedure
La torre di Hanoi / 10
87 / 99
Procedure
La torre di Hanoi / 11
88 / 99
Procedure
La torre di Hanoi / 12
89 / 99
Procedure
Coroutine
Normalmente, `e possibile
distinguere in modo netto
tra procedura chiamante e
procedura chiamata
la dierenza deriva
dallasimmetria nel
rapporto tra le due
procedure:
la procedura chiamata
inizia sempre la sua
esecuzione dallinizio
la procedura chiamante
prosegue dallistruzione
successiva alla
chiamata
90 / 99
Procedure
Coroutine / 2
Pu`
o essere utile, in alcune
situazioni, disporre di un
rapporto simmetrico
alla seconda invocazione
della procedura chiamata,
lesecuzione non
ricomincia dallinizio, ma
dallistruzione successiva
allultima istruzione
eseguita in precedenza
due procedure che
operano in questo modo
si chiamano coroutine
il loro utilizzo `e limitato
alla simulazione di
esecuzioni parallele in
91 / 99
Procedure
Trap
92 / 99
Procedure
Trap / 2
93 / 99
Procedure
Interrupt
94 / 99
Procedure
Interrupt / 2
95 / 99
Procedure
Interrupt / 3
2
3
4
5
96 / 99
Procedure
Interrupt / 4
3
4
5
6
7
97 / 99
Procedure
Interrupt / 5
98 / 99
Procedure
Interrupt / 6
99 / 99
Riferimenti
NOTA: Le slide sono tratte dalle slide degli scorsi anni e da diverse fonti
disponibili in rete presso altre universit e libri di testo.
Questopera stata rilasciata sotto la licenza Creative Commons Attribuzione-Non
commerciale-Condividi allo stesso modo 2.5 Italia. Per leggere una copia della
licenza visita il sito web http://creativecommons.org/licenses/by-nc-sa/2.5/it/ o
spedisci una lettera a Creative Commons, 171 Second Street, Suite 300, San Francisco, California, 94105, USA.
100 / 100