Bài giảng Kiến trúc máy tính & hợp ngữ - Vũ Minh Trí

Phân loại

5

 Phương pháp truy cập

 Tuần tự (băng từ)

 Trực tiếp (các loại đĩa)

 Ngẫu nhiên (bộ nhớ bán dẫn như RAM, ROM)

 Liên kết (cache)

 Kiểu vật lý

 Bộ nhớ bán dẫn (cache, thanh ghi, RAM, ROM)

 Bộ nhớ từ (HDD, FDD)

 Bộ nhớ quang (CD-ROM, DVD)

pdf 53 trang phuongnguyen 7320
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Kiến trúc máy tính & hợp ngữ - Vũ Minh Trí", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

Tóm tắt nội dung tài liệu: Bài giảng Kiến trúc máy tính & hợp ngữ - Vũ Minh Trí

Bài giảng Kiến trúc máy tính & hợp ngữ - Vũ Minh Trí
KIẾN TRÚC MÁY TÍNH & 
HỢP NGỮ 
10 – Bộ nhớ 
ThS Vũ Minh Trí – vmtri@fit.hcmus.edu.vn 
Tổng quan về bộ nhớ 
2 
 Từ trái sang phải: 
 Dung lượng tăng dần 
 Tốc độ giảm dần 
 Giá thành trên 1 bit giảm dần 
Bộ nhớ trong 
3 
Ví dụ 
4 
Phân loại 
5 
 Phương pháp truy cập 
 Tuần tự (băng từ) 
 Trực tiếp (các loại đĩa) 
 Ngẫu nhiên (bộ nhớ bán dẫn như RAM, ROM) 
 Liên kết (cache) 
 Kiểu vật lý 
 Bộ nhớ bán dẫn (cache, thanh ghi, RAM, ROM) 
 Bộ nhớ từ (HDD, FDD) 
 Bộ nhớ quang (CD-ROM, DVD) 
Bộ nhớ ngoài 
6 
 Một số bộ nhớ ngoài thông dụng: 
 Băng từ (Magnetic tape) 
Đĩa từ (Magnetic disk) 
Đĩa quang (Optical disk) 
 Flash disk 
Băng từ 
7 
Đĩa từ: Đĩa mềm 
8 
Đĩa từ: Đĩa cứng 
9 
Đĩa quang: CD 
10 
Đĩa quang: DVD 
11 
 Digital Video Disk: chỉ 
dùng trên ổ đĩa xem 
video 
 Ghi 1 hoặc 2 mặt, mỗi 
mặt có 1 (single layer) 
hoặc 2 lớp (double 
layer) 
 Thông dụng: 4.7 GB/lớp 
HD-DVD & Blue-ray Disc 
12 
Flash disk 
13 
Memory card 
14 
Hệ thống nhớ lưu trữ lớn: RAID 
15 
 Redundant Array of Inexpensive 
(Independent) Disks 
 Tập các đĩa cứng vật lý được OS xem 
như 1 ổ logic duy nhất có dung lượng 
lớn 
 Dữ liệu được lưu trữ phân tán trên các ổ 
đĩa vật lý truy cập song song (nhanh) 
 Có thể sử dụng dung lượng dư thừa để 
lưu trữ các thông tin kiểm tra chẵn lẻ, 
cho phép khôi phục lại thông tin khi đĩa 
bị hỏng an toàn thông tin 
 Có 7 loại phổ biến (RAID 0 – 6) 
RAID 0, 1, 2 
16 
RAID 3, 4 
17 
RAID 5, 6 
18 
Ánh xạ dữ liệu của RAID 0 
19 
Bộ nhớ trong 
20 
 Bộ nhớ chính 
 Tồn tại dưới dạng các module nhớ DRAM 
(Dynamic Random Access Memory) 
 Bộ nhớ đệm 
 Tích hợp trên chip của CPU 
 Sử dụng công nghệ lưu trữ SRAM (Static Random 
Access Memory) 
Phân loại RAM 
21 
SRAM (Static RAM) DRAM (Dynamic RAM) 
- Các bit được lưu trữ bằng các Flip-
Flop Thông tin ổn định 
- Cấu trúc phức tạp 
- Dung lượng chip nhỏ 
- Tốc độ nhanh 
- Đắt tiền 
- Dùng làm bộ nhớ Cache 
- Các bit được lưu trữ trên tụ điện 
Cần phải có mạch refresh 
- Cấu trúc đơn giản 
- Dung lượng lớn 
- Tốc độ chậm hơn 
- Rẻ tiền hơn 
- Dùng làm bộ nhớ chính 
Bộ nhớ chính 
22 
 Chứa các chương trình đang thực hiện và các dữ liệu 
đang thao tác 
 Tồn tại trên mọi hệ thống máy tính 
 Bao gồm các ngăn nhớ được đánh địa chỉ trực tiếp 
bởi CPU 
 Dung lượng của bộ nhớ chính < Không gian địa chỉ 
bộ nhớ mà CPU quản lý 
 Sử dụng công nghệ lưu trữ DRAM 
Phân loại DRAM 
23 
 SIMM (Single Inline Memory Module): Cũ, chậm 
 DIMM (Dual Inline Memory Module): Phổ biến 
 RIMM (Rhombus Inline Memory Module): Mới, nhanh nhất 
Bộ nhớ đệm 
24 
 Là loại bộ nhớ trung gian giữa CPU và bộ nhớ chính, có 
tác dụng làm giảm thời gian truy xuất bộ nhớ RAM 
Bộ nhớ đệm 
25 
 Khi cần đọc 1 ô nhớ từ bộ nhớ: 
 Kiểm tra xem có trong cache chưa? 
 Nếu chưa có (cache miss): chép ô nhớ đó và 1 số ô nhớ lân 
cận từ bộ nhớ chính vào cache 
 Nếu đã có (cache hit): đọc từ cache, không cần truy xuất bộ 
nhớ chính 
 Cache là bản copy một phần của bộ nhớ chính 
 Cache (dùng công nghệ SRAM) có tốc độ truy xuất 
cao hơn so với bộ nhớ chính (dùng công nghệ DRAM) 
Hai nguyên lý cơ sở khi truy xuất 
26 
 Temporal locality (Cục bộ về thời gian) 
 Nếu một ô nhớ được dùng đến ở thời điểm hiện tại, 
nó dễ có khả năng được dùng đến lần nữa trong 
tương lai gần 
 Spatial locality (Cục bộ về không gian) 
 Nếu một ô nhớ được dùng đến ở thời điểm hiện tại, 
những ô lân cận dễ có khả năng sắp được dùng đến 
Các vấn đề đặt ra 
27 
 Khi cần truy xuất 1 ô nhớ, làm sao biết ô nhớ 
đó đã có trong cache hay chưa? Nếu đã có thì 
ở chỗ nào trong cache? 
 Những ô nhớ nào sẽ được lựa chọn để đưa 
vào cache? Việc lựa chọn xảy ra khi nào? 
28 
Ý nghĩa 
29 
 Bộ nhớ chính có 2n byte nhớ, đánh số từ 0 2n – 1 
 Bộ nhớ chính và Cache được chia thành thành các khối có 
kích thước bằng nhau 
 1 Block của bộ nhớ chính = 1 Line của cache 
 Một số Block của bộ nhớ chính được nạp vào các Line của 
cache 
 Nội dung Tag (thẻ nhớ) cho biết Block nào của bộ nhớ chính 
hiện đang được chứa ở Line đó (chứ không phải số thứ tự 
của Line đó trong Cache) 
Các phương pháp ánh xạ 
30 
 Direct mapping (ánh xạ trực tiếp) 
 Associative mapping (ánh xạ liên kết toàn phần) 
 Set associative mapping (ánh xạ liên kết tập 
hợp) 
Direct mapping 
31 
 Mỗi Block của BNC chỉ có thể được nạp 
vào 1 Line của cache: 
 B0 L0 
 B1 L1 
  
 Bm-1 Lm-1 
 Bm L0 
 Bm+1 L1 
  
 Tổng quát: 
 Bj chỉ có thể nạp vào Lj mod m 
 m là số Line của cache 
Direct mapping 
32 
 Mỗi một địa chỉ X trong bộ nhớ chính gồm N 
bit chia thành 3 trường: 
 Trường Word gồm W bit xác định kích thước 1 từ 
nhớ (ô) trong 1 Block = 1 Line: 
 Kích thước của Block / Line = 2W 
 Trường Line gồm L bit xác định địa chỉ 1 Line 
trong cache 
 Số Line trong cache = 2L 
 Trường Tag gồm T bit 
 T = N – (W + L) 
 Xác định X có nằm trong Cache không (cache 
hit) hay vẫn đang nằm ở bộ nhớ chính (cache 
miss) 
Ví dụ 
33 
 Không gian địa chỉ bộ nhớ chính = 4 GB 
 Dung lượng cache = 256 KB 
 Kích thước 1 Line = 1 Block = 32 byte 
 Xác định cụ thể số bit cho 3 trường địa chỉ 
của X (W, L, T) nếu tổ chức theo kiểu direct 
mapping 
Đáp án 
34 
 Bộ nhớ chính = 4 GB = 232 byte N = 32 bit 
 Cache = 256 KB = 218 byte 
 Ta có thể dùng 18 bit để đánh địa chỉ từng từ nhớ (ô) trong Cache 
 Line (bao gồm nhiều từ nhớ) = 32 byte = 25 byte W = 5 bit 
(Dùng 5 bit để đánh địa chỉ nội bộ các từ nhớ (ô) trong 1 Line) 
 Số Line trong cache = 218 / 25 = 213 Line 
 L = 13 bit (Dùng 13 bit để đánh địa chỉ từng Line trong Cache) 
 Tag = T = N – (L + W) = 32 – (13 + 5) = 14 bit 
Nhận xét 
35 
 Ta có thể suy ra tổng số Block trong bộ nhớ chính 
 = Kích thước bộ nhớ chính / Kích thước 1 block 
 = 232 / 25 = 227 
 Dùng 27 bit để đánh địa chỉ 1 Block (= 14 + 13) 
 Giả sử ta có Block thứ M (27 bit, giá trị từ 0 227 - 
1) muốn lưu vào cache thì sẽ lưu ở: 
 Line thứ: L = M % Số Line trong cache = M % 213 (13 bit) 
 Tag tại Line đó: T = M / Số Line trong cache = M / 213 (14 
bit) 
36 
Đánh giá Direct mapping 
37 
 Bộ so sánh đơn giản 
 Xác suất cache hit thấp 
 Giả sử muốn truy xuất đồng thời từ nhớ (ô) X tại 
Block thứ 0 và ô thứ Y tại Block thứ 2L thì sao? 
 (L: Tổng số Line trong Cache) 
 Bị xung đột thì cả 2 ô này đều sẽ được lưu ở Line 
thứ 0 
 (0 % 2L = 2L % 2L = 0) 
Associative mapping 
38 
 Mỗi Block có thể nạp vào bất kỳ Line 
nào của Cache 
 Địa chỉ của bộ nhớ chính bao gồm 2 
trường 
 Trường Word giống như trường hợp 
Direct Mapping 
 Trường Tag dùng để xác định số thứ tự 
Block của bộ nhớ chính được lưu ở 
Cache 
 Tag xác định Block nào trong bộ nhớ 
chính đang nằm ở Line đó 
Ví dụ 
39 
 Không gian địa chỉ bộ nhớ chính = 4 GB 
 Kích thước 1 Line = 1 Block = 32 byte 
 Xác định cụ thể số bit cho 2 trường địa chỉ 
của X (W, T) nếu tổ chức theo kiểu associative 
mapping 
Đáp án 
40 
 Bộ nhớ chính = 4 GB = 232 byte N = 32 bit 
 Line (bao gồm nhiều từ nhớ) = 32 byte = 25 
byte W = 5 bit (Dùng 5 bit để đánh địa chỉ 
nội bộ các từ nhớ (ô) trong 1 Line) 
 Tag = T = N – W = 32 – 5 = 27 bit 
Nhận xét 
41 
 Ta có thể suy ra tổng số Block trong bộ nhớ chính 
 = Kích thước bộ nhớ chính / Kích thước 1 block 
 = 232 / 25 = 227 
 Dùng 27 bit để đánh địa chỉ 1 Block (= 14 + 13) 
 Giả sử ta có Block thứ M (27 bit, giá trị từ 0 227 
- 1) muốn lưu vào cache thì sẽ lưu ở bất kỳ Line 
nào miễn sao có Tag tại Line đó là: 
 T = M (27 bit) 
42 
Đánh giá Associative mapping 
43 
 Để tìm ra Line chứa nội dung của 1 Block, cần 
dò tìm và so sánh lần lượt với Tag của tất cả 
các Line của Cache 
 Mất nhiều thời gian 
 Xác suất cache hit cao 
 Cần bộ so sánh phức tạp 
Set associative mapping 
44 
 Cache được chia thành các Tập (Set) 
 Mỗi một Set chứa 1 số Line (2,4,8,16 Line) 
 Ví dụ: 4 Line / Set 4-way associative mapping 
 Ánh xạ theo nguyên tắc sau: 
 B0 S0 
 B1 S1 
 B2 S2 
  
 Địa chỉ của bộ nhớ chính bao gồm 3 trường 
 Trường Word xác định kích thước 1 Block (= 1 Line) 
 Trường Set xác định thứ tự Set trong Cache 
 Trường Tag dùng để xác định số thứ tự Block của bộ nhớ 
chính được lưu ở Cache 
Ví dụ 
45 
 Không gian địa chỉ bộ nhớ chính = 4 GB 
 Dung lượng cache = 256 KB 
 Kích thước 1 Line = 1 Block = 32 byte 
 Xác định cụ thể số bit cho 3 trường địa chỉ 
của X (W, S, T) nếu tổ chức theo kiểu 4-way 
associative mapping 
Đáp án 
46 
 Bộ nhớ chính = 4 GB = 232 byte N = 32 bit 
 Cache = 256 KB = 218 byte 
 Ta có thể dùng 18 bit để đánh địa chỉ từng từ nhớ (ô) trong Cache 
 Line (bao gồm nhiều từ nhớ) = 32 byte = 25 byte W = 5 bit (Dùng 5 bit 
để đánh địa chỉ nội bộ các từ nhớ (ô) trong 1 Line) 
 Số Line trong cache = 218 / 25 = 213 Line 
 L = 13 bit (Dùng 13 bit để đánh địa chỉ từng Line trong Cache) 
 Một Set trong Cache có 4 Line = 22 Line 
 Số Set trong Cache = 213 / 22 = 211 Set S = 11 bit (Dùng 11 bit để địa 
chỉ các Set trong Cache) 
 Tag = T = N – (S+ W) = 32 – (11 + 5) = 16 bit 
47 
Các tham số ảnh hưởng hiệu suất Cache 
48 
 Block size 
 Nhỏ quá: giảm tính lân cận (spatial locality) 
 Lớn quá: số lượng block trong cache ít, thời gian chuyển block vào 
cache lâu (miss penalty) 
 Cache size 
 Nhỏ quá: số lượng Block có thể lưu trong cache quá ít, làm tăng tỷ lệ 
cache miss 
 Lớn quá: tỷ lệ giữa vùng nhớ thực sự cần thiết so với vùng nhớ lưu vào 
cache sẽ thấp, nghĩa là overhead (tổng chi phí) sẽ cao, tốc độ truy cập 
cache giảm 
Thuật toán thay thế 
(Replacement Algorithm) 
49 
 Khi cần chuyển 1 Block mới vào trong Cache mà không tìm được 
Line trống, vậy phải bỏ Line nào ra? 
 Một số cách chọn: 
 Random: Thay thế ngẫu nhiên 
 FIFO (First In First Out): Thay thế Line nào nằm lâu nhất trong 
Cache 
 LFU (Least Frequently Used): Thay thế Line nào trong Cache có số 
lần truy cập ít nhất trong cùng 1 khoảng thời gian 
 LRU (Least Recently Used): Thay thế Line nào trong Cache có thời 
gian lâu nhất không được tham chiếu đến 
 Tối ưu nhất: LRU 
Write Policy 
50 
 Nếu 1 Line bị thay đổi trong Cache, khi nào sẽ thực hiện thao tác 
ghi lên lại RAM ? 
 Write Through: ngay lập tức 
 Write Back: khi Line này bị thay thế 
 Nếu nhiều processor chia sẻ RAM, mỗi processor có cache riêng: 
 Bus watching with WT: loại bỏ Line khi bị thay đổi trong 1 cache 
khác 
 Hardware transparency: tự động cập nhật các cache khác khi Line bị 
1 cache thay đổi 
 Noncacheable shared memory: phần bộ nhớ dùng chung sẽ không 
được đưa vào cache 
Số lượng và Loại cache 
51 
 Có thể sử dụng nhiều mức cache (gọi là level): 
L1, L2, L3 
 Các cache ở mức thấp gọi có thể là on-chip, trong 
khi cache mức cao thường là off-chip và được truy 
cập thông qua external bus hoặc bus dành riêng 
 Cache có thể dùng chung cho cả data và 
instruction hoặc riêng cho từng loại 
Cache trên các bộ xử lý Intel 
52 
 80486: 8 KB cache L1 trên chip (on-chip) 
 Pentium: có 2 cache L1 trên chip 
 Cache lệnh: 8 KB 
 Cache dữ liệu: 8 KB 
 Pentium 4 (2000): có 2 level cache L1 và L2 trên chip 
 Cache L1: 
 2 cache, mỗi cache 8 KB 
 Kích thước Line = 64 byte 
 4-way associative mapping 
 Cache L2: 
 256 KB 
 Kích thước Line = 128 byte 
 8-way associative mapping 
Sơ đồ bộ nhớ Pentium 4 
53 

File đính kèm:

  • pdfkien_truc_may_tinh_hop_ngu_vu_minh_tri.pdf