Bài giảng Kiến trúc máy tính - Chương 4: Thiết kế bộ nhớ - Vũ Đức Lung

pdf 36 trang ngocly 3570
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 - Chương 4: Thiết kế bộ nhớ - Vũ Đức Lung", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên

Tài liệu đính kèm:

  • pdfbai_giang_kien_truc_may_tinh_chuong_4_thiet_ke_bo_nho_vu_duc.pdf

Nội dung text: Bài giảng Kiến trúc máy tính - Chương 4: Thiết kế bộ nhớ - Vũ Đức Lung

  1. CHƯƠNG4:THITKBNH  Khái niệm cơ bản  Bộ nhớ Cache  Bộ nhớ trong  Bộ nhớ ảo Khoa KTMT Vũ Đc Lung 1
  2. Khái nim cơ bn  Các cấp bộ nhớ cơ bản: – Thanh ghi – Cache – Bộ nhớ chính – Bộ nhớ thứ cấp Khoa KTMT Vũ Đc Lung 2
  3. Khái nim cơ bn  Thứ tự thực hiện tìm một itemtrong bộ nhớ: – Tìm Itemtrong bộ nhớ mức cao nhất của các cấp bộ nhớ (xác suất tìm thấy itemtrong đó gọi là hitratio h1 ,không tìm thấy là missratio (1 h1) ) – Khi không tìm thấy thì tìm ởcấp thấp hơn (h2,(1h2)) – Quá trình tiếp diễn cho đến khi tìm thấy hoặc hết cấp bộ nhớ – Khi tìm thấy Itemsẽ được chuyển cho Bộ xử lý  Giả sử Các cấp bộ nhớ có 3cấp.Thời gian truy cập bộ nhớ trung bình được tính: tav =h 1*t 1 +(1h1)*[t 1+h 2*t 2+(1h2)*(t 2+t3)] =t 1 +(1h1)*[t 2 +(1h2)*t 3] Khoa KTMT Vũ Đc Lung 3
  4. Nguyên tc t chc b nh  Thống kê:90%thời gian thi hành 10%số lệnh của chương trình  Nguyên tắc không gian: – Khibộxửlý thâm nhập vào ônhớnào đó =>nhiều khảnăng sẽthâm nhập vào những ônhớcóđịa chỉkếtiếp trong thời gian sau đó  Nguyên tắc vềthời gian : – Các ônhớđược hệthống xửlý thâm nhập có khảnăng sẽđược thâm nhập lại trong tương laigần.Thôngthường chỉcó một sốlệnh và một phần sốliệuđược thâm nhập nhiều nhất mà thôi.Ví dụnhư một lệnh trong một vòng lặp của chương trình Khoa KTMT Vũ Đc Lung 4
  5. CacheMemory  asmallhighspeedmemorythatisneartheCPU  Thành công cache (cachehit )  Thất bại cache (cachemiss)  Tỷ số thành công cache hc(cache hitratio)  Tỷ số thất bại cache (1hc)(cachemissratio ) Khoa KTMT Vũ Đc Lung 5
  6. CacheMemory(2)  Ảnh hưởng của nguyên lý lân cận thời gian nt+ t t t=c m = t + m avn c n  Ảnh hưởng của nguyên lý lân cận không gian mtt+ t t=c m = t + m avm c m  Ảnh hưởng tổ hợp của hai nguyên lý mt+ t t (c m )+− (ntt 1) ++− m ( nt 1) c c c t t =m = m =+t m av n nc nm Khoa KTMT Vũ Đc Lung 6
  7. T chc b nh cache(0) Khoa KTMT Vũ Đc Lung 7
  8. T chc b nh cache(1) Phải để một khối bộ nhớ vào chỗ nào của cache(sắp xếp khối)?  Có 3kỹ thuật tổ chức : – Kiểu tương ứng trực tiếp (DirectMapping) – Kiểu hoàn toàn phối hợp (FullyAssociativeMapping) – Kiểu phối hợp theo tập hợp (Set– AssociativeMapping)  Dựa trên hai khía cạnh: – Cách đặt vào cachemột khối nhớ từ bộ nhớ trong – Cách thay thế một khối cache(khi cacheđầy) Khoa KTMT Vũ Đc Lung 8
  9. T chc b nh cache(2)  Kiểu tương ứng trực tiếp – Nếu mỗi khối bộ nhớ chỉ có một vị trí đặt khối duy nhất trong cache được xác định theo công thức: K=imodn Trong đó:K:vị trí khối đặt trong cache i:số thứ tự của khối trong bộ nhớ trong n:số khối của cache  Kiểu hoàn toàn phối hợp : Một khối trong bộ nhớ trong có thể được đặt vào vị trí bất kỳ trong cache . Khoa KTMT Vũ Đc Lung 9
  10. T chc b nh cache(3)  Kiểu phối hợp theo tập hợp : cachebao gồm các tập hợp của các khối cache.Mỗi tập hợp của các khối cachechứa số khối như nhau.Một khối của bộ nhớ trong có thể được đặt vào một số vị trí khối giới hạn trong tập hợp được xác định bởi công thức : K=imods Trong đó: K:vị trí khối đặt trong cache i:số thứ tự của khối trong bộ nhớ trong s:số lượng tập hợp trong cache. Khoa KTMT Vũ Đc Lung 10
  11. T chc b nh cache(4) Ví dụ 1: Bộ nhớ trong có 32khối,cache có 8khối,mỗi khối gồm 32 byte,khối thứ 12của bộ nhớ trong được đưa vào cache Khoa KTMT Vũ Đc Lung 11
  12. T chc b nh cache(5)  Kiểu tương ứng trực tiếp: Ví dụ 2:Mainmemory:4Kblocks Cache:128blocks Blocksize:16words Ánh xạ khối bộ nhớ trong vào khối cache Khoa KTMT Vũ Đc Lung 12
  13. T chc b nh cache(6)  Địa chỉ mà bộ xử lý đưa ra có thể phân tích thành hai thành phần:phần nhận dạng số thứ tự khối và phần xác định vị trí từ cần đọc trong khối.  Căn cứ vào số từ trong một khối bộ nhớ mà số bittrong trường địa chỉ sẽ xác định vị trí từ cần đọc trong khối.  Phần nhận dạng số thứ tự khối sẽ khác nhau tuỳ thuộc vào cách xếp đặt khối,trường chỉ số khối được sosánh với nhãn của cacheđể xác định khối trong cache. Khoa KTMT Vũ Đc Lung 13
  14. T chc b nh cache(7)  Kiểu tương ứng trực tiếp: – Ưu điểm:đơn giản – Nhược điểm:không hiệu quả sử dụng cache  MMUdiễn giải địa chỉ phát ra từ CPU: – Địa chỉ từ cần đọc trong khối (Wordfield)= log 2B,B – kích thước khối theo từ – Chỉ số khối cache(Blockfield)= log 2N,N kích thước cachetheo block – Nhãn (Tagfield)= log 2(M/N),M kích thước bộ nhớ trong theo khối – Số bittrong trường địa chỉ bộ nhớ trong = log 2(B.M) Khoa KTMT Vũ Đc Lung 14
  15. T chc b nh cache(8)  VD: Xét trường hợp bộ nhớ trong chứa 4Kkhối,bộ nhớ cachechứa 128khối và mối khối có kích thước 16từ nhớ. Khoa KTMT Vũ Đc Lung 15
  16. T chc b nh cache(9)  Quá trình phân tích địa chỉ và trả lời yêu cầu từ CPU 2 3 1 Khoa KTMT4 Vũ Đc Lung 16
  17. T chc b nh cache(10)  Kiểu hoàn toàn phối hợp – Chỉ số khối trong bộ nhớ (Wordfield)= log 2 B – Địa chỉ từ cần đọc trong khối (Tagfield)= log 2 M – Số bittrong trường địa chỉ bộ nhớ trong = log 2(B.M)  Ví dụ tìm số bitcho các trường ởVD1&2 Khoa KTMT Vũ Đc Lung 17
  18. T chc b nh cache(11)  Kiểu hoàn toàn phối hợp Khoa KTMT Vũ Đc Lung 18
  19. T chc b nh cache(12)  Kiểu phối hợp theo tập hợp – Wordfield= log 2 B – Setfield= log 2 S,S – số tập hợp trong cache – Tagfield= log 2 (M/S),S=N/Bs,Bs số khối trong một tập hợp – Số bittrong trường địa chỉ bộ nhớ trong = log 2(B.M)  Ví dụ tìm số bitcho các trường ởVD1&2giả sử số khối trong một tập tương ứng là 2và 4 Khoa KTMT Vũ Đc Lung 19
  20. T chc b nh cache(13)  Kiểu phối hợp theo tập hợp Khoa KTMT Vũ Đc Lung 20
  21. K thut thay th khi  Thay thế ngẫu nhiên: để phân bố đồng đều việc thay thế,các khối cần thay thế trong cacheđược chọn ngẫu nhiên.  Khối xưa nhất (LRU:LeastRecentlyUsed):các khối đã được thâm nhập sẽ được đánh dấu và khối bị thay thế là khối không được dùng từ lâu nhất.  Vào trước ra trước (FIFO:FirstInFirstOut):Khối được đưa vào cacheđầu tiên,nếu bị thay thế,khối đó sẽ được thay thế trước nhất.  Tần số sử dụng ít nhất (LFU:LeastFrequentlyUsed):Khối trong cacheđược tham chiếu ít nhất Khoa KTMT Vũ Đc Lung 21
  22. K thut thay th khi Ví d: Matrn s 4x8.Gi s mi s lưu trong mt t và các phn t matrn lưu theo th t t đa ch 1000đn 1031.Cachecha 8khi,mi khi 2 t.Áp dng k thut LRU.Th t yêu cu t CPU: Khoa KTMT Vũ Đc Lung 22
  23. K thut thay th khi – Direct mapping Khoa KTMT Vũ Đc Lung 23
  24. K thut thay th khi – Fully associative mapping Khoa KTMT Vũ Đc Lung 24
  25. K thut thay th khi – Set Associative mapping Khoa KTMT Vũ Đc Lung 25
  26. Chin thut ghi cache  Chiến lược với cachehit: – Ghi đồng thời (writethrough) : Thông tinđược ghi đồng thời vào khối của cachevà khối của bộ nhớ trong . – Ghi lại (writeback) : Thông tincần ghi chỉ được ghi vào khối trong cache. • Sử dụng bittrạng thái (DirtybithayUpdatebit). • Khi một khối bị thay thế,khối này sẽ được ghi lại vào bộ nhớ trong chỉ khi bittrạng thái đã được thiết lập .  Chiến lược với cachemiss Ghi có nạp (writeallocate) :khối cần ghi từ bộ nhớ trong được nạp vào trong cachenhư mô tả ởtrên.Cách này thường được dùng trong cách ghi lại. Ghi không nạp (writenoallocate) :khối được thay đổi ởbộ nhớ trong không được đưa vào cache.Cách này được dùng trong cách ghi đồng thời Khoa KTMT Vũ Đc Lung 26
  27. CÁCLOICACHE  Cacheduy nhất để chứa đồng thời cả lệnh và dữ liệu  Cacheriêng lẻ bằng cách sử dụng một cachelệnh riêng và một cachedữ liệu riêng (ví dụ Pentium,Pentium4,Itanium,PowerPC620,IBMSP, )  Cachemức một (L1cache):thường là cachetrong (onchipcache;nằm bên trong CPU).Cachenày có kích thước nhỏ nhất và vì nằm gần CPUnhất nên dữ liệu nằm trên nó sẽ được xử lý nhanh nhất.  • Cachemức hai (L2cache)thường là cachengoài (offchipcache;cache này nằm bên ngoài CPU).Như vậy nếu các CPUđược thiết kế trên cùng một lõi có thể được cài đặt cacheL2có kích thước khác nhau.  •Ngoài ra,trong một số hệ thống (PowerPCG4,IBMS/390G4,Itanium của Intel)còn có tổ chức cachemức ba (L3cache),đây là mức cachetrung gian giữa cacheL2và một thẻ bộ nhớ. Khoa KTMT Vũ Đc Lung 27
  28. VD:IntelPentium4CPUCache  MainMemorysize16MB,CPUaddressingByteaddressable  Sử dụng 2Levelcache: L1: L2: CacheorganizationSet CacheorganizationSet associative associative CacheL1size8KB CacheL1size256KB Numberofblocksperset 4 Numberofblocksperset 8 blocksize=64byte blocksize=128byte Khoa KTMT Vũ Đc Lung 28
  29. MainMemory Khoa KTMT Vũ Đc Lung 29
  30. Tchc b nh trong Khoa KTMT Vũ Đc Lung 30
  31. SRAM DRAM Khoa KTMT Vũ Đc Lung 31
  32. VirtualMemory  Giải quyết vấn đề về kích thước bộ nhớ vật lý không đủ chứa cả hệ điều hành cùng với các chương trình của người sử dụng  Vấn đề các vùng nhớ phải được bảo vệ một cách chắc chắn để khỏi bị chương trình của người sử dụng làm hỏng.  Bộ nhớ ảo dựa trên sự kết hợp các bộ nhớ với tốc độ rất cao như bộ nhớ trong (RAM)và bộ nhớ có tốc độ chậm như bộ nhớ phụ  Dưới quan điểm của người lập trình và đối với người sử dụng thì tập hợp các bộ nhớ trên được quan niệm là một bộ nhớ thuần nhất với dunglượng lớn (gần hoặc bằng dunglượng ổ đĩa cứng)nhưng lại làm việc ởtốc độ cao (gần bằng tốc độ bộ nhớ trong). Khoa KTMT Vũ Đc Lung 32
  33. VirtualMemory  Bộ nhớ ảo có thể được quản lý bằng cách chia bộ nhớ thành các mảng nhỏ có độ lớn tính theo đoạn ,cơ chế này gọi là phân đoạn (đối với họ Intelcó từ các bộ VXL80286trở đi)hoặc trang ,cơ chế này gọi là phân trang (đối với họ Intelcó từ các bộ VXL80386)trở đi  Trong các máy tính hiện đại 1đoạn có thể có độ lớn từ 1byte đến 4GBcòn 1trang thông thường có độ lớn từ 2KBđến 16K bytes. Khoa KTMT Vũ Đc Lung 33
  34. VirtualMemory  Tổ chức bộ nhớ ảo: – Một khối bộ nhớ ngoài sẽ được đặt tại đâu trong bộ nhớ trong? – Làm thế nào để tìm một khối khi nó đang nằm trong bộ nhớ trong? – Khối nào phải được thay thế khi có thất bại trang? – Việc gì xảy ra khi cần ghi số liệu? Khoa KTMT Vũ Đc Lung 34
  35. VirtualMemory Khoa KTMT Vũ Đc Lung 35
  36. Ví d tng quát Cho một bộ nhớ cachetương ứng trực tiếp có 8khối,mỗi khối có 16byte(word).Bộ nhớ trong có 64khối.Giả sử lúc khởi động máy,8khối đầu tiên của bộ nhớ trong được đưa lên cache. a.Viết bảng nhãn của các khối hiện đang nằm trong cache b.CPUlần lượt đưa các địa chỉ sau đây để đọc số liệu:O4AH, 3F5H,27CH.Nếu thất bại thì cập nhật bãng nhãn. c.CPUdùng cách ghi lại.Khi thất bại cache,CPUdùng cách ghi có nạp.Mô tả công việc của bộ quản lý cachekhi CPUđưa ra các từ sau đây để ghi vào bộ nhớ trong:0C3H,05AH,1C5H. Khoa KTMT Vũ Đc Lung 36