Tải bản đầy đủ (.pptx) (20 trang)

Bộ nhớ cache và bộ nhớ ảo

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.07 MB, 20 trang )

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

truy
những
trangđổi
vật

dẫnthể
lưu
trữcập
nào
đã thay

đượ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



thể

được

(thường



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




×