MEMORY
KTMT
– NHĨM THUYẾT
SYSTEMS
TRÌNH 3
Meet our
team
Nguyễn Đình Minh
Nguyễn Xuân Giang
Nguyễn Văn Hải
Nguyễn Duy Thường
Powerpoint creator
Information Provider
Presenter
Information Provider
1.
1.1
1.2
1.3
1.4
2.
2.1
2.2
2.3
2.4
2.5
2.6
What is Cache ?
Cache là thành phần nhớ trong
Để bộ nhớ cache có tỉ lệ miss rate
tính, thường được sử dụng để
thấp nhất, bộ nhớ cache sử dụng hai
lưu trữ dữ liệu và có dung
ngun
lý để dự
đốn dữ
liệu:
+ Temporal
locality
(cục
bộ về thời
lượng nhỏ hơn nhiều so với bộ
gian)
nhớ chính.
block
1.1 What is
Cache
Cahe?
+ Spatial locality (cục bộ về không
gian)
sơ đồ phân cấp bộ nhớ máy
- Ánh xạ trực tiếp (direct mapping)
- Trong
Ánh bộ
xạnhớ
tậpcache
kết đa
sử dụng
đường
ánh
(N-way
xạ trựcset
tiếp
mỗi set
gồm
đúng một
associative
mapping)
- (direct
Ánh xạmapping),
tập
kết đầy
đủ bao
(fully
associative
block, vì vậy mà cache có S=B set.
mapping)
MỗiAddress
địa chỉ bộ nhớ ánh xạ với chính xác một set
trong
cache.mem[0xFFFFFFFC]
11…11111100
11…11111000
11…11110100
11…11110000
11…11101100
11…11101000
11…11100100
11…11100000
mem[0xFFFFFFF8]
mem[0xFFFFFFF4]
mem[0xFFFFFFF0]
mem[0xFFFFFFEC]
mem[0xFFFFFFE8]
mem[0xFFFFFFE4]
mem[0xFFFFFFE0]
00…00100100
00…00100000
00…00011100
00…00011000
00…00010100
00…00010000
00…00001100
00…00001000
00…00000100
00…00000000
mem[0x00000024]
mem[0x00000020]
mem[0x0000001C]
mem[0x00000018]
mem[0x00000014]
mem[0x00000010]
mem[0x0000000C]
mem[0x00000008]
mem[0x00000004]
mem[0x00000000]
230-Word
Main
1.2 How is
data
found?
23-Word
Set 7
(111)
Set 6
(110)
Set 5
(101)
Set 4
(100)
Set 3
(011)
Set 2
(010)
Set 1
(001)
Set 0
(000)
How is data
Dữ liệu sẽ được tìm thấy thơng qua việc ánh xạ
(mapping) giữa địa chỉ của dữ liệu trong bộ nhớ
chính và vị trí của chúng trong cache.
Dữ liệu sẽ được tìm thấy thơng qua việc ánh xạ
(mapping) giữa địa chỉ của dữ liệu trong bộ nhớ
chính và vị trí của chúng trong cache.
Trong bộ nhớ cache sử dụng ánh xạ trực tiếp
(direct mapping), mỗi set bao gồm đúng một
block, vì vậy mà cache có S=B set.
Mỗi địa chỉ bộ nhớ ánh xạ với chính xác một set
Byte
trong cache.
Offs
Memory
Address
Tag
111…111
FFFF
Set
001
E
et
00
4
Hai bit ít quan trọng nhất trong số 32 bit địa
chỉ được gọi là byte offset.
Ba bit tiếp theo được gọi là set bit bởi vì
chúng chỉ ra set mà địa chỉ ánh xạ tới (thông
thường, số lượng set bit sẽ là log2S).
27 tag bit còn lại chỉ ra địa chỉ bộ nhớ của dữ
liệu được lưu trong một cache set nhất định.
How is data
- Ánh xạ trực tiếp (direct mapping)
Dữ liệu sẽ được tìm thấy thơng qua việc ánh xạ
(mapping) giữa địa chỉ của dữ liệu trong bộ nhớ
chính và vị trí của chúng trong cache.
- Ánh xạ trực tiếp (direct mapping)
cho mỗi set để chỉ ra liệu set đó chứa dữ liệu có
Byte
nghĩa (meaningful
data) hay khơng.
Memory
Address
Tag
Offs
et
00
Set
2
7
3
V
Tag
Data
Set
Set
Set
Set
Set
Set
Set
Set
2
7
3
2
=
Data
Hit
7
6
5
4
3
2
1
0
Ưu điểm:
Đơn giản
trong thiết kế, nhanh chỉ cần 1 phép so sánh
Nhược điểm: Có thể xảy
ra xung đột.
How is data
Bộ nhớ cache sử dụng một valid bit (bit giá trị)
Dữ liệu sẽ được tìm thấy thơng qua việc ánh xạ
(mapping) giữa địa chỉ của dữ liệu trong bộ nhớ
chính và vị trí của chúng trong cache.
- Ánh xạ tập kết hợp đa đường. (Multiway
Associative)
Byteánh xạ tập kết hợp đa đường
Set
Phương
pháp
Offs
Set
Memory
et N block trong mỗi set nơi mà
cách Tag
cung
cấp
00
Way 0
Way 1
Address
dữ liệu 2ánh 2xạ Vtới
có thể
Tagset
Data
V Tagđược
Data tìm thấy.
8
Set 7
0
1
Set một
6
Mỗi địa chỉ bộ nhỡ vẫn chỉ ánh xạ với
set
Set 5
xác định nhưng nó có thể ánh xạ Set
tới4 bất kì
3
2
3
block nào trong số N block
trong
2
set.
8
2
Ưu điểm: Có tỉ lệ miss
=
=
rate thấp hơn ánh xạ
trực tiếp, Có ít xung
đột xảy ra hơn
3
2
Hit
Hit0
1
Hit
Data
Nhược điểm: Chậm và
đắt hơn
How is data
- Ánh xạ trực tiếp (direct mapping)
Dữ liệu sẽ được tìm thấy thơng qua việc ánh xạ
(mapping) giữa địa chỉ của dữ liệu trong bộ nhớ
chính và vị trí của chúng trong cache.
- Ánh xạ trực tiếp (direct mapping)
Bộ nhớ cache sử dụng phương pháp tập
kết hợp đầy đủ có duy nhất một set với
B way, trong đó B là số lượng block
(number of blocks).
Một địa chỉ bộ nhớ có thể ánh xạ tới
một
theo
bất
nào.
Way
7 block
Way
6
Waykì
5 wayWay
4
Way 3
V
Tag
Dat
a
V
Tag
Dat
a
V
Tag
Dat
a
V
Tag
Dat
a
V
Tag
Dat
a
Way 2
V
Tag
Dat
a
Way 1
V
Tag
Dat
a
Way 0
V
Tag
Dat
a
How is data
- Ánh xạ tập kết hợp đa đường. (Multiway
Set
Associative)
- Ánh
xạ kết hợp đầy đủ. (Fully associative)
What is data is Replaced
?
Cache sử dụng nguyên tắc LRU (least recently used )
để thay thế, loại bỏ các block ít được sử dụng gần đây
nhất.
Trong bộ đệm ẩn liên kết tập hợp hai chiều, một use bit, U,
cho biết khối nào trong tập hợp ít được sử dụng gần đây nhất.
Mỗi khi một trong các khối được sử dụng, U được điều chỉnh
để chỉ ra khối cịn lại.
Ví dụ 1.1: NGUYÊN TẮC THAY THẾ LRU
1.3 How is
data
found?
Hiển thị nội dung của bộ đệm kết hợp gồm
tám từ hai chiều sau khi thực thi mã sau.
Giả sử thay thế LRU, kích thước khối là một
từ và bộ đệm trống ban đầu.
Way 1
addi t0, zero, 0
lw s1, 0x4(t0)
lw s2, 0x24(t0)
V U
Tag
0 0
0 0
1 0 00…010
0 0
(a)
lw s3, 0x54(t0)
Data
mem[0x00…
24]
V
0
0
1
0
Tag
Data
00…
000
mem[0x00…
04]
Way 1
V U
Tag
0 0
0 0
1 1 00…010
0 0
(b)
Data
mem[0x00…
24]
Way 0
Set 3
Set 2
(11)
Set 1
(10)
Set 0
(01)
(00)
Way 0
V
0
0
1
0
Tag
Data
00…
101
mem[0x00…
54]
Set 3
Set 2
(11)
Set 1
(10)
Set 0
(01)
(00)
Advanced Cahe
Design
Bộ nhớ đệm nhiều cấp độ (Multiple-Level
Caches)
Bộ nhớ đệm lớn có lợi vì chúng có nhiều
khả năng chứa dữ liệu hơn lãi suất và do
Speed
-
L1
Cache
1.4
Advanced
Cache
Design
đó, có tỷ lệ lệch thấp hơn.
L2 Cache
Main Memory
Tuy nhiên, các bộ nhớ đệm lớn có xu hướng
chậm hơn các bộ nhớ đệm nhỏ. Các hệ
Virtual Memory
thống hiện đại thường sử dụng ít nhất hai
mức bộ nhớ đệm.
Capacity
Advanced Cahe
Design
-
Bộ nhớ đệm nhiều cấp độ (Multiple-Level
Caches)
- Giảm Miss Rate (Reducing Miss Rate)
Cache misses có thể được giảm bớt bằng
cách thay đổi dung lượng, kích thước khối
và tính
kết.
Khi
kích liên
thước
bộ nhớ cache tăng lên,
lệch dung lượng sẽ giảm.
Tính liên kết tăng lên, đặc biệt là đối với
các bộ nhớ đệm nhỏ, làm giảm số lần
lệch xung đột được hiển thị dọc theo đầu
đường cong.
Advanced Cahe
Design
-
Bộ nhớ đệm nhiều cấp độ (Multiple-Level
Caches)
- Giảm Miss Rate (Reducing Miss Rate)
- Nguyên tắc ghi (Write Policy)
Bộ nhớ đệm được phân loại là write-through hoặc write-back.
Trong write-through cache , dữ liệu được ghi vào một khối bộ
đệm được đồng thời ghi vào bộ nhớ chính.
Trong write-back cache, một bit ghi đè (dirty bit) (D) được
liên kết với mỗi khối bộ đệm. D là 1 khi khối bộ nhớ cache đã
được ghi và 0 nếu không được ghi.
What is Virtual
memory ?
Các
chương
trình
thể
dữlượng
liệu trong
bộ
Bộ nhớ
ảo tạo
ra có
một
bộtruy
nhớcập
dung
lớn, ít
nhớ
ảo bằng
cách
dụng
Bộ
tốn kém
trong
khiphải
vẫn sử
cung
cấpcác
tốcđịa
độchỉ
bộảo.
nhớ
nhớ
vậthơn
lý cho
chứacác
một
phần
truypháp
cập tạm
gần tạm
nhất
nhanh
truy
cập,các
là giải
vào
ảo.
Theo hợp
cáchhết
này,
bộ lượng
nhớ vật
lý vật
hoạt
thời bộ
đề nhớ
tránh
trường
dung
RAM
Bộ nhớ ảo là bộ nhớ hệ thống
Quá trình xác định địa chỉ
được tạo ra từ hệ điều hành và
vật lý từ địa chỉ ảo được gọi
nằm trong ổ cứng. Nó sẽ liên
là q trình dịch địa chỉ. Hệ
kết địa chỉ ô nhớ dùng bởi phần
thống bộ nhớ ảo sử dụng
mềm gọi là các địa chỉ ảo tới
page table để thực hiện
tới địa chỉ vật lý trong bộ nhớ
dịch địa chỉ.
máy tính .
2.1 What is
Virtual
Virtual
memory
memory ?
động
như một bộ nhớ cache cho bộ nhớ ảo.
lí.
Address
translation
Virtual
Page
Virtual AddressesNumber
Trong một hệ thống bao gồm bộ nhớ ảo, các
chương trình sử dụng các địa chỉ ảo để chúng
có thể truy cập vào bộ nhớ. Máy tính phải dịch
các địa chỉ ảo này để tìm địa chỉ trong bộ nhớ
2.2 Address
Translation
vật lý hoặc lấy page fault và tìm nạp dữ liệu
từ ổ cứng.
Virtual
30 29 28Memory
… 14 13
Physical
12
Page
VPN
Number Physical
19
0x7FFF0007FFF
Addresses
0x7FFFFFF
7FFE
Bộ nhớ ảo và bộ nhớ vật lý được chia thành
các page 4KB.
Các bit quan trọng nhất của địa chỉ ảo hoặc
0001
0000
0x7FFE000Translation
0x7FFEFFF
15
VPN
0x000100026 25 24 … 13
0x0001FFF
12
0x00000000x0000FFF
Physical
Memory
0x7FFFF0000x7FFFFFFF
0x7FFFE0000x7FFFEFFF
0x7FFFD0000x7FFFDFFF
0x7FFFC0000x7FFFCFFF
0x7FFFB0000x7FFFBFFF
0x7FFFA0000x7FFFAFFF
11 10 90x7FFF9000…2
1 00x7FFF9FFF
Page Offset
0x0000600012
0x00006FFF
0x000050000x00005FFF
0x000040000x00004FFF
0x000030000x00003FFF
0x00002000Page Offset
0x00002FFF
11 10 90x00001000…2
0x00001FFF
1 00x000000000x00000FFF
Physical Memory
Virtual Memory
7FFFF
7FFFE
7FFFD
7FFFC
7FFFB
7FFFA
7FFF9
00006
00005
00004
00003
00002
00001
00000
địa chỉ vật lý chỉ định virtual page number
(VPN) hoặc physical page number (PPN).
Các bit mang ít quan trọng nhất gọi là page
offset
15
địa chỉ ảo sang địa chỉ vật lý. Bảng trang
chứa một đầu vào cho mỗi trang ảo. Đầu vào
Virtual
Pagesố
chứa
pagelưu
vàtrữ
một
bit
-này
Page
table
rất
lớnphysical
có thể được
ở bất
Page một
Offset
Virtual Number
0x000
Addres
02
s
19
47C
hợp
lệ. trong bộ
kỳ
đâu
nhớ vật lý.
12
V
0
0
1
1
0
0
Virtual
Page
Number
0x0000
0x7FFE
7FFFF
7FFFE
7FFFD
7FFFC
7FFFB
7FFFA
0
0
1
0
0
1
0
0
2.3 Page Table
Physical
00007
00006
00005
00004
00003
00002
00001
00000
dụ: Tìm
vật lý từ
- Bộ xử lý thường V sửPage
dụng một Víthanh
ghi địa chỉ0x0001
0
0
1
1
0
0
Number
địaregister,
chỉ ảo 0x247C
sử dụng
chuyên dụng, được gọi là page table
0x7FFF
0x0000
0x7FFE
để lưu trữ địa chỉ cơ sở của page hình
table2.8
trong
bộ nhớ vật lý.
0
0
1
0
0
1
0
0
Page Table
Quá trình dịch địa chỉ ảo
0x247C sang địa chỉ vật lí.
12 bit page offset khơng
0x0001
u cầu dịch.
0x7FFF
19 bit còn lại của địa chỉ
15
12
Hit
Physic
al
Addres
s
0x7FF
FF
47C
ảo là số bit virtual page
Page Table
Bộ xử lý sử dụng một page table để dịch các
Physical
Page
Number
The Translation Lookaside
Buffer
TLB: bộ đệm chuyển đổi làm nhiệm vụ tăng
tốc quá trình tìm kiếm page tables trong bộ
Virtual Page
Page
offse
Number
t
0x0000
47C
2
1
1
9
2
Một
nhớ
vậtTLB
lý. thì được tổ chức như một bộ nhớ
cache liên
Virtual
kếtAdress
đầy
es
2.4 The
Translation
Lookaside Buffer
đủ và thường chứa 16
đến 512 mục (entries).
Entry 1
Virtual
TLB được truy cập bằng số trang ảo
Page
V
1
Numb
er
0x7FFF
D
Entry 0
Virtual
Page
Numb
er
0x0000
3
2
V
TLB được thiết kế đủ nhở để nó có thể được 1
truy cập trong chưa đầy một chu kỳ
=
Virtual
Page
Numb
er
0x0000
2
2
8
Virtual
Page
Numb
er
0x7FFF
3
2
=
0
1
Hit
Hit0
1
Hit
Physic
al
Adress
es
1
5
0x7FFF
1
2
47C
Memory
Protection
Khi xảy ra lỗi trang, bộ xử lý sẽ
Các
thống
bộ những
nhớ ảo
cung
thay hệ
ra một
trong
trang
cho
chương
nhấtmỗi
bằng
trang trình
ảo bị khơng
thiếu. gian
2.4 Memory
Protection
địa chỉ ảo của riêng nó
Để hỗ trợ các chính sách thay
Mỗi
trình
cónhập
thể sử
dụng
thế chương
này, mỗi
mục
bảng
tồn
khơng
địa chỉ
trang bộ
chứa
hai gian
bit trạng
tháiảo
của
nó màbit
khơng
lắng
bổ sung:
dirty phải
D vàlobit
usevề
vị
U. trí của các chương trình khác.
Tuy
nhiên,
chương
chỉ
Bit dirty
là một
1 nếu
bất kỳ trình
hướng
có
truy
những
trangđổi
vật
dẫnthể
lưu
trữcập
nào
đã thay
lý
đượcvật
ánh
trang
lýxạ
kểtrong
từ khi nó được
đọc từ ổ cứng
Bit use là 1 nếu trang vật lý đã
Replacement
Policies
cấp
khả
năng sử
bảo
vệ bằng
cách
vật lý
ít được
dụng
gần đây
Để tiết kiệm bộ nhớ vật lý, các
trang
thành
nhiều
có
thể
được
(thường
là
chia
hai)
levels.
The first-level page table luôn
2.5 Multilevel
Page Tables
được giữ trong bộ nhớ vật lý. Nó
chỉ ra nơi các bảng trang nhỏ
cấp hai được lưu trữ trong bộ
nhớ ảo.
The second-level page table có
chứa các bản dịch hiện tại cho
một loạt các trang ảo.
Số trang ảo được chia thành hai
phần:
số
bảng
trang
(page
table number) và phần bù của
Multilevel Page
bảng