-
Notifications
You must be signed in to change notification settings - Fork 3
/
3-9-06.txt
420 lines (267 loc) · 4.19 KB
/
3-9-06.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
Segmented Virtual Memory of Pentium
MMU translates the Virtual Address to Physical address.
Memory contains a number of program segments. Each
segment has a segment descriptor stored in an
appropriate segment register.
CS
segment descriptor
Descriptor
Table
DS
segment descriptor
Memory
Management
Unit
1
Segment descriptor
A segment register contains a 16-bit selector
Index
GDT/
LDT
13
1
Privilege
Level
2
Pentium selector
descriptor
descriptor
descriptor
Descriptor Table
LDT (Local Descriptor Table): one per process
GDT (Global Descriptor Table): one for the system
Pentium can support (1) pure segmentation or (2)
segmentation and paging
2
M
Example of a descriptor
Descriptor loaded into MMU.
16
16
Base
0-15
Base
Limit
24-31 G D 0 16-19
Limit
0-15
A Code
Base
16-23
P DPL Type
Descriptor
Segment type
Granularity bit
16/32 bit segment
Privilege level
Presence bit
Segment table entry
Index
Base
Limit
3
P
G
Others
Selector
Offset
Base
Limit
Others
32-bit Linear Address
Page mode off
32-bit address is the physical address.
Page mode on
32-bit address is a virtual address, and the segment is
divided into pages.
4
Physical address computed by a 2-level translation.
10
Directory
index
10
12
Offset in
page table
Offset in
page
Directory
Always in M
Pages of
Page Table
in M
PGD
PMD
5
Pages of program/data
Implementing Protection through VM
User mode
User cannot modify some system states, or execute
certain instructions. The restriction is important so that
user programs cannot cheat
Supervisor mode (or kernel mode or privileged
mode)
The OS takes control
A single bit distinguished between the two modes.
Return from exception
User mode
Supervisor mode
System Call
6
Memory protection in Pentium
user
library
Systems call
Kernel
0
1
2
3
Each segment belongs to a ring with a designated
privilege level. Lower numbered rings have higher
security.
7
Mode switch examples
Calls towards segments of lower security are
unrestricted. However, a call to a segment of higher
security is controlled using call gates. When such a
call is allowed, the calling process temporarily
acquires the privilege level of the called program. This
can open the gates for Trojan horse attacks, but there
are safeguards against such attacks.
8
Alpha AXP 21264 Virtual Memory
64–bit virtual address
21
10
10
Segment level 1
select
10
level 2
13
level 3
offset
+
+
+
Page table
base register
Block
offset
Physical address
Page table entry (PTE)
Notes
Each page table entry is of 64 bits, i.e. 8 bytes.
Page size = 8 KB, so we need 13 bits for the offset.
The size of the page table at each level is 1 page.
A TLB miss can cost up to three levels of memory access.
Linux on IA-64 uses three-level page tables
9
Advanced Pipelining Techniques
1. Dynamic Scheduling
2. Loop Unrolling
3. Software Pipelining
4. Dynamic Branch Prediction Units
5. Register Renaming
6. Superscalar Processors
7. VLIW (Very Large Instruction Word) Processors
8. EPIC (Explicitly Parallel Instruction Computers)
9. IA-64 Features
10
Dynamic Scheduling: CDC 6600 Style
F
D
X
M
W
restructure
F
I
R
X
M
the pipeline
W
Issue (I) = decode & wait for all
structural hazards to clear
Read (R) = read operands
F
I
R
X
M
W
F
I
R
X
M
W
In a dynamic pipeline, instructions can be issued
out-of-order and they can complete out-of-order.
First used in CDC 6600.
Dynamic pipelining will need additional buffer space
between stages, but will also speedup computation.
11
The Impact of Dynamic Scheduling
Assume that the processor has an add/subtract unit (2 cycles), a
multiplier (3 cycles) and a division unit (5 cycles).
Example 1 (speedup)
With static scheduling
1. F2 := F4 / F6
2. F10 := F2 + F8
F I R X X X X X M W
F I
3. F12 := F6 – F14
F
o
o
o
o
o
o
o
o
o
o
o
o
o o
R X X M W
o o
o
I
R X X
With dynamic scheduling
1. F2 := F4 / F6
2. F10 := F2 + F8
3. F12 := F6 – F14
F I R X X X X X M W
F I
o
o
o
o
o
o
F I R X X M W
12
o
R X X M W
Example 2 (Possibility of new hazards)
1. F2 := F4 * F6
2. F8 := F10 * F12
3. F8 := F14 / F6
F I R X X X M W
F
o
o
o
o
I
R X X X M W
F I R X X X X X M W*
Note. Verify that this WAW hazard was not possible with
static scheduling.
13