Các phân mức bộ nhớ- Hệ thống phân cấp bộ nhớ là một cải tiến để tổ chức bộ nhớ sao cho có thể giảm thiểu thời gian truy cập.. - Mức 1: Cache bao gồm: + Cache sơ cấp L1 primary cache là
Trang 1ĐẠI H C QUỌ ỐC GIA HÀ NỘI
TRƯỜNG ĐẠI H C CÔNG NGH Ọ Ệ
KHOA ĐIỆN TỬ VIỄN THÔNG _
TIỂU LUẬN
Giảng viên hướng dẫn : GV Trần Hiếu
Sinh viên th c hi n : ự ệ Đoàn Văn Hiệp
Mã s sinh viên : 19020542 ố
Môn học : Các vấn đề hi n i cệ đạ ủa kỹ thu t máy tí ậ nh
Mã l p h c phớ ọ ần : ELT3241_21
Hanoi, 2022
Trang 2Em xin chân thành cảm ơn Trường đại học Công Nghệ - Đại học Quốc Gia
Hà Nội đã tạo điều kiện thuận lợi cho chúng em học tập môn học Các vấn đề hiện đại của kỹ thuật máy tính Em xin bày tỏ lòng biết ơn sâu sắc tới các th cầy ác cô
đã tận tình hướng dẫn chỉ bảo chúng em trong quá trình giảng dạy cũng như thực hiện bài tiểu luận.Em xin chân thành cảm ơn quý thầy cô trong khoa Điện tử Viễn thông đã tận tình giảng dạy , trang bị cho em những kiến thức quý báu trong những năm vừa qua Em xin cảm ơn sự quan tâm giúp đỡ và ủng hộ của gia đình, anh chị
và bạn bè trong quá trình thực hiện bài tiểu luận
Mặc dù đã cố gắng hoàn thành bài tiểu luận trong phạm vi và khả năng cho phép nhưng chắc chắn sẽ không tránh khỏi những thiếu sót Em rất mong nhận được
sự thông cảm, góp ý và tận tình chỉ bảo của thầy cô và các bạn
Em xin chân thành cảm ơn !
Hà Nội, ngày 10 tháng 12 năm 2022
Sinh viên thực hiện:
Hiệp Đoàn văn Hiệp
Trang 33
MỤC L C Ụ
PART I: Giới thiệu về phân cấp bộ nhớ 4
1 Đặt vấn đề, giới thi u v phân cệ ề ấp b ộ nhớ 4
PART II: N i dung chính ộ 6
1 Phân cấp b ộ nhớ tận d ng nguyên t c c c bụ ắ ụ ộ (Locality) 6
2 Các phân m c bứ ộ nhớ 8
3 Truy cập dữ liệu trong phân cấp bộ nhớ 10
PART III: K T LU N Ế Ậ 14
1 Tóm tắt 14
2 Ý nghĩa 14
3 Ứng dụng 14
CHÚ THÍCH: : Một vài khái niệm phân cấp bộ nhớ: 15
TÀI LIỆU THAM KH O Ả 16
Trang 4PART I: Giới thiệu về phân cấp bộ nhớ
1. Đặt vấn đề, gi ới thiệu về ph ân cấp bộ nhớ
Người l p trình mu n có m t b nh ậ ố ộ ộ ớ thật nhanh v i chi phớ í đầu tư giới h n.Các ạ
bộ nh nhanh t ti n hớ đắ ề ơn các b nh ộ ớ chậm M c tiêu lụ à thi t k m t h ế ế ộ ệ thống
bộ nh hi u su t cao nh t v i giá thành ớ ệ ấ ấ ớ thấp nh t ấ Giải pháp hi u quệ ả được đưa ra là “phân c p bộ nhớ”: ấ
- ó là cách k t h p c ki u b nh nhanh và ch m l i v i nhau B ng Đ ế ợ ác ể ộ ớ ậ ạ ớ ằ
việc sư dụng b nh kộ ớ ết hợp, v mới ỗi tốc độ truy cập và dung l ng khác ượ nhau, 1 h ệ thống máy tính có hi u su t nâng cao v i chi phí r g n nh vệ ấ ớ ẻ ầ ư ới
b nh ộ ớ chậm nh t vấ à t c d g n nhố ộ ầ ư bộ nh nhanh nhớ ất được kết h p vợ ào
- Hệ thống phân c p b nhấ ộ ớ được tổ chức thành nhi u c p - m i c p ề ấ ỗ ấ cao
h nh ơn ỏ hơn, nhanh hơn và đắt hơn trên mỗi byte h so v i c p thơn ớ ấ ấp hơn
tiếp theo, c p ấ thấp h nơn ày cũng xa b x ở ộ ử lý hơn
- Mỗi cấp ở thấp hơn ánh xạ ộ m t ph n ầ địa chỉ ào c v ác ô nh cớ ủa mình vào
địa ch c a ô nhớ cấp trên trực tiếp có cỉ ủ ó tốc độ nhanh hơn, các cấp bộ
nh có cớ ơ chế qu n lý, kiả ểm tra các địa ch ỉ ánh xạ
- Trong những năm gần đây, chúng ta đã nhìn thấy rất nhi u c i ti n trong ề ả ế
b x ộ ử lý - CPU Như vậy bộ nh ớ cũng phải phát triển để theo kịp được tốc
độ của CPU, trong đó bộ nhớ chính là b nhộ ớ chậm nh t Hình 1 ấ ở dưới cho th y s chênh l ch l n v hiấ ự ệ ớ ề ệu năng của bộ xử lý và b nh Vì vộ ớ ậy
vi c c i ti n b nhệ ả ế ộ ớ chính để theo k p v i CPU là vị ớ ấn đề thực s quan ự trọng và c p bách Và gi i pháp hi u qu ấ ả ệ ả để tăng hiệu năng chung của máy tính và gi i quy t sả ế ự chênh l ch hiệ ệu năng của bộ ử x lý và bộ nh là phân ớ cấp b nh ộ ớ (MEMORY HIERARCHY)
Trang 55
Hình 1: Bi u di n s chênh l ch v hiể ễ ự ệ ề ệu năng giữa b nh và b xộ ớ ộ ử lý theo thời gian
* Lưu ý: trục thẳng đứng bi u di n hiể ễ ệu năng xử lý được chia theo hệ cơ số 10 Đường Memory b t dắ ầu cơ sở v i b nh ớ ộ ớ là 64B DRAM năm 1980, với hiệu suất cải thiện 1.07 mỗi năm Đường Procesor giả định cải thi n hiệ ệu năng 1.25 mỗi năm cho đến năm 1986, cải thiện 1.52 cho đến năm 2004 và cải thiện 1.20 cho
những năm sau đó
Máy tính ngày nay có bộ nh nh tớ ỏ ốc độ cao gọi là cache, nơi mà dữ liệu được lưu trữ thường xuyên Cache kết nối tới bộ nhớ lớn hơn - bộ nhớ chính, bộ nhớ
có tốc độ ầ t m trung B nhộ ớ này được b sung b 1 b nh ph , k t h p vổ ởi ộ ớ ụ ế ợ ới hard disk và các phương tiện có thể tháo dời khác nhau (various removable media) Bằng vi c s d ng hệ ử ụ ệ thống phân c p, I bấ ộ nh có thớ ể nâng cao tốc độ truy c p, ch s d ng 1 s nh chip tậ ỉ ử ụ ố ỏ ốc độ nhanh Nó cho phép người thi t k ế ế
t o ra máy tính hi u suạ ệ ất chấp nhận dược với giá thành h p lý ợ
Trang 6PART II: Nội dung chính
1 Phân cấp bộ nhớ ận dụ t ng nguyên tắc cục bộ (Locality)
- T ng quan, chúng ta phân c p b nh dổ ấ ộ ớ ựa trên “khoảng cách” từ nó t i b ớ ộ
xử lý, v i khoớ ảng cách được định nghĩa bằng s ố vòng máy đòi hỏi để truy c p ậ
Bộ nhớ càng ầg n b xộ ử lý thì càng nhanh Và ngượ ạc l i Công nghệ chậm sẽ
s d ng b nh xa còn công ngh nhanh s s d ng b nh g n b vi x ử ụ ộ ớ ở ệ ẽ ử ụ ộ ớ ầ ộ ử lý Công ngh càng t t, b nh càng nhanh và cệ ố ộ ớ ảng đắt tiền Bộ nhớ nhanh hơn thì sẽ nh ỏ hơn bộ nh ớ chậm và giá thành càng cao
Hình 2: Các m c phân c p b nhứ ấ ộ ớ điển hình trong h nhúng, Destop và máy ệ chủ
Lưu ý T: ừ trái sang phải: dung lượng tăng dần, tốc độ gi m d n, giá thành ả ầ trên 1bit hoặc byte giảm dần
Với d ữ liệu bất kì, bộ ử lý sẽ ửi yêu cầ x g u c a tủ ới phần b nh nhanh nh tộ ớ ấ (cache, bởi vì register dành cho mục đích đặc biệt hơn) Nếu d ữ liệu được tìm thấy trong cache, nó sẽ được đưa vào CPU Nếu nó không ở trong cache, yêu cầu sẽ được gửi tới bộ nh ớ thấp hơn, quá trình tìm kiếm l i b t ạ ắ đầu N u d ế ữ liệu được tìm th y c p ấ ở ấ
độ này, m t khối dữ liệu dó sẽ ộ ở được đưa vào cache, và cứ thế tiếp tục Ý tưởng chính là khi cấp độ thấp hơn của hệ thống phân cấp tr lả ời yêu cầu t cừ ấp độcao hơn cho nội dung ở vị trí A, chúng cũng gửi đi cùng 1 thời điểm, dữ liệu được đặt ở
địa ch A+1, A+2 Nỉ hư vậy, gửi toàn b kh i dữ liệu t i cấp độ b nh cao hơn Hi ộ ố ớ ộ ớ vọng r ng d ằ ữ liệu thêm này s ẽ được tham chiếu tới trong tương lai gần B nh ộ ớ chia
sẻ thiết thực bởi vì các chương trình có xu hướng s h u m t vùng biở ữ ộ ết đến cục bộ
Trang 77
(locality), cái mà thường xuyên cho phép b xử lý truy cập t i dữ ộ ớ liệu được trả ại l cho địa chỉ X+1, A+2 Vì v y, mậ ặc dù đó là 1 miss, vẫn có th ểcó 1 số hit trong b ộ
nh ớ trên khối mới đư c truy xuất.ợ
- Tận d ng nguyên tụ ắc cục bộ người dùng , có b ộ nhớ kich th c l n ướ ớ nhưng có tốc độ cao ần như b nh nhanh g ộ ớ
(Nguyên lý cục bộ: Chương trình có thể truy nhập vào một phần khá nh không ỏ gian địa chỉ tại một thời điểm.)
Cục b ộ theo thời gian :
• Nếu m t v b nh ộ ị trí ộ ớ đượ truy ậ thìc c p nó s s m ẽ ớ đượ truy ậ ạc c p l i ->Lưu các ữ liệ d u v a ừ đượ truy ậc c p nhi u nh t g n b x ề ấ ở ầ ộ ử lý
Cục b ộ theo không gian :
• Nếu m t vộ ị trí ộ b nhớ đượ truy ậ thì các ị c c p v trí có đị chỉ ầ đó ẽa g n s
s m ớ đượ truy ậc c p
->Đưa các kh i b nh ố ộ ớ chứ các ừ ạa t c nh nhau n g n b x đế ầ ộ ử lý hơn
*Hình minh họa thể ệ hi n rõ hơn về ính cục bộ : t
Hình 3.Tính c c bụ ộ
Trang 82 Các phân mức bộ nhớ
- Hệ thống phân cấp bộ nhớ là một cải tiến để tổ chức bộ nhớ sao cho có thể giảm thiểu thời gian truy cập Hệ thống phân cấp bộ nhớ được phát triển dựa trên hành vi của chương trình được gọi là vị trí của các tham chiếu Hình bên dưới minh họa rõ ràng các cấp độ khác nhau của hệ thống phân cấp bộ nhớ:
Hình 4 Memory hierachy design
Mức độ Thanh ghi Bộ nhớ
Băng thông 4k đến 32k
MB/giây 800 đến 5k MB/giây 400 đến 2k MB/giây 4 đến 32 MB/giây
Thời gian truy
cập
2 đến 5 giây 3 đến 10
giây 80 đến 400 giây 5ms Được quản lý
bởi
Trình biên
dịch Phần cứng Hệ điều hành hệ điều hành/ người dùng
Bảng 1 Tốc độ , k ch thước, Thời gian truy cí ập,… của các ức bộm nh ớ
Trang 99
*Lưu ý : Các mức (LEVEL):
- Mức 0: Tập các thanh ghi (Register) bên trong bộ vi xử lý là mức nhớ thấp nhất
- Mức 1: Cache bao gồm:
+ Cache sơ cấp L1 (primary cache) là bộ nhớ có tốc độ truy
cập nhanh gần bằng tốc độ truyền dữ liệu trong bộ vi xử lý nhưng dung
lượng nhỏ và được tích hợp ngay trên chip đối với những bộ vi xử lý hiện đại
+ Cache thứ cấp L2 (secondary cache) là bộ nhớ truy cập nhanh nhưng dung lượng nhỏ hơn bộ nhớ chính và thường nằm ngoài chip vi xử lý
- Mức : Bộ nhớ chính (Main memory) được bộ vi xử lý đánh địa chỉ trực tiếp, chứa 2
dữ liệu và các chương trình đang được sử dụng
- Mức : Là phương tiện chủ yếu lưu trữ dữ liệu lâu dài, thông thường toàn bộ cơ sở 3
dữ liệu được lưu trữ trên đĩa từ Để xử lý dữ liệu trên đĩa từ, dữ liệu phải được
chuyển sang bộ nhớ chính (Main Memory)
- Mức : là thiết bị lưu trữ cung cấp cách lưu trữ dữ liệu trong thời gian dài được 4 phân loại theo danh mục thiết bị lưu trữ thứ cấp
- Các đặc tính như lượng thông tin lưu trữ, thời gian thâm nhập bộ nhớ, chu kỳ ộ b nhớ, giá tiền mỗi bit nhớ khiến ta phải phân biệt các cấp bộ nhớ: các bộ nhớ nhanh với dung lượng ít đến các bộ nhớ chậm với dung lượng lớn
- Các đặc tính chính của các cấp bộ nhớ dẫn đến hai mức chính là: mức cache bộ - nhớ trong và mức bộ nhớ ảo (bao gồm bộ nhớ trong và không gian cấp phát trên đĩa cứng) ới cV ách tổ chức này, người sử dụng chỉ thấy duy nhất một không gian định
vị ô nhớ, độc lập với vị trí thực tế của các lệnh và dữ liệu cần truy cập, đọc/ghi
Trang 103 Truy cập dữ liệu trong phân cấp bộ nhớ
Cache là bộ nhớ nhanh, nó chứa lệnh và dữ liệu thường xuyên dùng đến Việc lựa chọn lệnh và dữ liệu cần đặt vào cache dựa vào các nguyên tắc sau đây:
- Một chương trình mất 90% thời gian thi hành lệnh của nó để thi hành 10% số lệnh của chương trình
Nguyên tắc trên cũng được áp dụng cho việc thâm nhập dữ liệu, nhưng ít hiệu nghiệm hơn việc thâm nhập lệnh Như vậy có hai nguyên tắc: nguyên tắc về không gian và nguyên tắc về thời gian
-Nguyên tắc về thời gian: cho biết các ô nhớ được hệ thống xử lý thâm nhập có khả năng sẽ được thâm nhập trong tương lai gần Thật vậy, các chương trình được cấu tạo với phần chính là phần được thi hành nhiều nhất và các phần phụ dùng để xử lý các trường hợp ngoại lệ Còn số liệu luôn có cấu trúc và thông thường chỉ có một phần số liệu được thâm nhập nhiều nhất mà thôi
-Nguyên tắc về không gian: cho biết, bộ xử lý thâm nhập vào một ô nhớ thì có nhiều khả năng thâm nhập vào ô nhớ có địa chỉ kế tiếp do các lệnh được sắp xếp thành chuỗi có thứ tự
-> Tổ chức các cấp bộ nhớ sao cho các lệnh và dữ liệu thường dùng được nằm trong
bộ nhớ cache, điều này làm tăng hiệu quả của máy tính một cách đáng kể: Mỗi cấp bộ nhớ có dung lượng lớn hơn cấp(mức) trên mình, ánh xạ một phần địa chỉ các ô nhớ của mình vào địa chỉ ô nhớ của cấp trên trực tiếp có tốc độ nhanh hơn,
và các cấp bộ nhớ phải có cơ chế quản lý và kiểm tra các địa chỉ ánh xạ
Khi một từ không tìm thấy trong Cache, từ ấy phải tìm từ bộ nhớ và đặt vào trong Cache để tiếp tục công việc trước đấy
Nhiều từ được gọi là một khối (hoặc dòng) Được di chuyển vì lý do hiệu quả Mỗi khối bộ nhớ Cache bao gồm 1 Tag để xem địa chỉ bộ nhớ tương ứng
Các khối (hoặc dòng) có thể đặt trong một bộ nhớ Cache Sự phối hợp theo hệ thống phổ biến nhất là tập liên kết (Set Associative) 1 tập liên kết gồm nhóm các khối trong bộ nhớ Cache Khối A là lần đầu tiên ánh xạ vào 1tập và sau đó khối có thể đặt bất kỳ ở đâu trong tập đó Tìm một khối bao gồm ánh xạ địa chỉ khối để thiết
Trang 1111
lập, và sau đó tìm kiếm trong bộ thường song song để tìm thấy các khối, các tập hợp được chọn theo địa chỉ dữ liệu: Địa chỉ khối MOD Số tập hợp trong Cache
Nếu có n các khối trong tập hợp, sự sắp đặt của Cache được gọi là kết hợp n đường (n- way set associative) Các điểm cuối của tập liên kết có tên riêng của họ
Ở bộ đệm ánh xạ trực tiếp 1 khối bộ nhớ được ánh xạ vào chính xác một khối bộ đệm (Do đó một khối luôn được đặt ở 1 vị trí nhất định)
Ở bộ đệ kết hợp toàn phần (fully associative cache ) 1 khối bộ nhớ có thể được ánh
xạ vào bất cứ khối bộ đệm nào (Vì vậy khối có thể đặt ở mọi nơi)
Dữ liệu bộ nhớ đệm chỉ được đọc dễ dàng khi các bản sao trong bộ nhớ Cache và
bộ nhớ chính giống hệt nhau Để ghi dữ liệu trong Cache là một việc khó, làm thế nào để sao chép trong bộ nhớ Cache và bộ nhớ chính để lưu giữ phù hợp??? Có 2 chiến lược chính để ghi:
Một là Write through – ghi xuyên: Cache được cập nhật các mục trong Cache và ghi xuyên vào cập nhật trong bộ nhớ chính Hay thông tin được ghi vào mục dữ liệu ở
cả mức bộ nhớ hiện tại và mức bộ nhớ kế tiếp trong phân cấp bộ nhớ
Một là Write Back – ghi sau: thông tin chỉ được cập nhật trong Cache hay thông tin chỉ được ghi vào mục dữ liệu ở mức bộ nhớ hiện tại Mục bị thay đổi được ghi vào mức bộ nhớ kế tiếp khi nó bị thay thế
Cả hai chiến lược ghi có thể sử dụng bộ đệm ghi (write buffer) để cho phép bộ nhhớ cache tiến hành ngay sau khi dữ liệu đặt trong bộ đệm chứ không phải chờ độ trễ đầy đủ để ghi các dữ liệu vào bộ nhớ
Một đơn vị đo lợi ích của tổ chức Cache là Miss rate Để có được những hiểu biết
về nguyên nhân của Miss Rate: Có 3 nguyên nhân sau:
Nguyên nhân không tránh được: do Lần đầu truy cập khối Giải pháp: tăng kích thước khối (làm tăng tổn thất trượt, khối rất lớn làm tăng tỉ lệ trượt)
Dung lượng: Bộ đệm không thể chứa toàn bộ các khối truy cập bởi chương trình Giải pháp: tăng kích thước bộ đệm (có thể làm tăng thời gian truy cập)
Xung đột: nhiều vị trí bộ nhớ cùng được ánh xạ vào 1 vị trí bộ đệm Giải pháp: tăng kích thước bộ đệm hoặc tăng độ kết hợp trong bộ đệm (có thể tăng thời gian truy cập) Một biện pháp tốt hơn là dùng : Thời gian truy cập bộ nhớ trung bình(AMAT)
Trang 12(Average Memory Access Time -AMAT) là thời gian truy cập bộ nhớ khi tính cả 2 trường hợp trúng và trượt bộ đệm average memory access time:
Hit time L1 + Miss rate L1 × (Hit time L2 + Miss rate L2 × Miss penalty L2) Ngoài
ra ta còn phải quan tâm đến việc tối ưu hóa hiệu năng bộ đệm hay cải thiện hiệu năng bộ đệm bằng một trong các cách:
1 Tăng kích thước khối để giảm tỉ lệ trượt
2 Cache lớn hơn để giảm Miss rate
3 Liên kết cao hơn để giảm Miss rate
4 Lưu trữ đa hình để giảm Miss rate
5 Ưu tiên đọc nhớ hơn viết để giảm Cache miss
6 Tránh dịch địa chỉ trong quá trình lập chỉ mục của bộ nhớ Cache để giảm Hit time
Cache phải đối phó với các bản dịch của một địa chỉ ảo từ xử lý 1 địa chỉ vật lý để truy cập bộ nhớ
Hình 4 cho thấy một mối quan hệ điển hình giữa cache, các (TLBs), và bộ nhớ ảo Một phổ biến tối ưu hóa để sử dụng bù đắp một phần mà là giống hệt nhau trong cả hai ảo và vật lý địa chỉ chỉ số bộ nhớ cache Phần ảo của địa chỉ là dịch trong khi bộ nhớ cache được đọc bằng cách sử dụng chỉ số, do đó trận đấu thẻ có thể sử dụng vật
lý địa chỉ Chương trình này cho phép bộ nhớ cache đọc để bắt đầu ngay lập tức, và
so sánh thẻ vẫn sử dụng địa chỉ vật lý Hạn chế này hầu như lập chỉ mục, thể chất được gắn thẻ tối ưu hóa là kích thước của trang giới hạn kích thước của bộ nhớ cache Ví dụ, một bộ nhớ cache ánh xạ trực tiếp có thể là không có lớn hơn kích thước trang Cao hơn associativity có thể giữ cho các chỉ số bộ nhớ cache vật lý một phần của địa chỉ nhưng vẫn hỗ trợ một bộ nhớ cache lớn hơn một trang