Bài giảng Vi xử lý nâng cao - Phần 1: Thiết kế CPU RISC - Bài 13: Hệ thống thứ bậc của bộ

Cách biệt hiệu suất bộ xử lý-bộ nhớ
 Giới hạn bộ nhớ là 64KB DRAM vào năm 1980, cải
thiện hiệu suất tăng mỗi 3 năm cho thế hệ tiếp theo
cho đến năm 1996, và rồi hai năm sau đó là 7% mỗi
năm.
 Bộ xử lý giả định cải thiện hiệu suất 35% mỗi năm
cho đến 1986, rồi 55% cho đến 2003, kế đến 5% mỗi
năm.
Cần cung cấp một lệnh và một dữ liệu mỗi chu kỳ
clock.
 Vào năm 1980 ta chưa có cache (cũng không có nhu
cầu), khoảng năm 1995 hầu hết các hệ thống đều có
cache hai mức (e.g., 60% số transistor trên Alpha
21164 ở trong cache)
pdf 59 trang thamphan 27/12/2022 1700
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Vi xử lý nâng cao - Phần 1: Thiết kế CPU RISC - Bài 13: Hệ thống thứ bậc của bộ", để tải tài liệu gốc về máy hãy click vào nút Download ở trên.

File đính kèm:

  • pdfbai_13_he_thong_thu_bac_cua_bo.pdf
  • pptLec13.ppt

Nội dung text: Bài giảng Vi xử lý nâng cao - Phần 1: Thiết kế CPU RISC - Bài 13: Hệ thống thứ bậc của bộ

  1. Bài giảng “Vi xử lý nâng cao” Phần 1: Thiết kế CPU RISC Bài 13: Hệ thống thứ bậc của bộ nhớ 1
  2. Cách biệt hiệu suất bộ xử lý-bộ nhớ µProc 55%/ năm 10000 (2X/1.5 năm) “Luật Moore” 1000 Cách biệt hiệu suất 100 bộ xử lý-bộ nhớ (tăng 50 %/năm) Performance 10 DRAM 7%/ năm 1 (2X/10 năm) 1980 1984 1988 1992 1996 2000 2004 Year 3
  3. “Thành lũy bộ nhớ”  Cách biệt giữa tốc độ mạch logic và DRAM tiếp tục tăng. 1000 100 10 Core Memory 1 Số clock mỗi lệnh mỗiclock Số 0.1 0.01 Số clock mỗi truy cập DRAM cập truy mỗiclock Số VAX/1980 PPro/1996 2010+ 5
  4. Mục đích của hệ thống thứ bậc bộ nhớ  Sự kiện: Các bộ nhớ lớn thì chậm còn các bộ nhớ nhanh thì nhỏ.  Bằng cách nào ta tạo ra một bộ nhớ cho ta ảo tưởng lớn, rẻ và nhanh (trong phần lớn thời gian)?  Với hệ thống thứ bậc.  Với cơ chế song song. 7
  5. Các kỹ thuật thứ bậc bộ nhớ  Công nghệ mà ta sử dụng để xây dựng thứ bậc bộ nhớ có thể được chia thành 2 loại : truy cập random (ngẫu nhiên) và truy cập non-so random.  Không giống như mọi khía cạnh khác của cuộc sống ở đó từ “ngẫu nhiên” thường kết hợp với những điều xấu; ngẫu nhiên, khi kết hợp với việc truy cập bộ nhớ, là do thiếu từ tốt hơn!  Do việc truy cập ngẫu nhiên có nghĩa là ta có thể truy cập vị trí ngẫu nhiên bất kỳ ở thời điểm bất kỳ, thời gian truy cập sẽ bằng nhau với các vị trí ngẫu nhiên khác nhau.  Điều này không đúng với các đĩa hoặc băng từ ở đó thời gian truy cập đối với một vị trí cho trước, ở thời điểm bất kỳ sẽ khác với các vị trí ngẫu nhiên khác và ở thời điểm ngẫu nhiên khác.  Trong chừng mực công nghệ truy cập ngẫu nhiên được quan tâm, ta sẽ tập trung vào 2 công nghệ cụ thể: RAM động (dynamic RAM) và RAM tĩnh (static RAM). 9
  6. Bộ nhớ RAM và các thông số hiệu suất  Cache sử dụng SRAM để truy cập nhanh.  Bộ nhớ chính là DRAM để có mật độ cao.  Địa chỉ được chia thành 2 nửa (hàng và cột). - RAS hay Row Access Strobe kích mạch giải mã hàng. - CAS hay Column Access Strobe kích mạch chọn cột.  Các thông số hiệu suất của bộ nhớ.  Độ trễ ( latency) : Thời gian truy cập một từ. - Thời gian truy cập ( access time) : thời gian giữa yêu cầu và lúc từ được đọc hoặc ghi (thời gian đọc và ghi có thể khác nhau). - Thời gian chu kỳ ( cycle time) : thời gian giữa những yêu cầu (đọc hoặc ghi) liên tiếp. - Thông thường thời gian chu kỳ > thời gian truy cập.  Băng thông ( bandwidth) : Bao nhiêu dữ liệu được cung cấp mỗi đơn vị thời gian. - Bề rộng của kênh dữ liệu * tốc độ ở đó dữ liệu được sử dụng. 11
  7. Thứ bậc bộ nhớ điển hình  Thật vậy, hệ thống nhớ của máy tính hiện đại bao gồm chuỗi các hộp đen có tầm từ nhanh nhất đến chậm nhất.  Bên cạnh sự khác nhau về tốc độ, các hộp đen này cũng khác nhau về kích thước (từ nhỏ nhất đến lớn nhất) và giá thành.  Điều gì làm cho kiểu sắp xếp này hoạt động là một trong những nguyên tắc quan trọng của việc thiết kế máy tính, nguyên tắc tính cục bộ. Nguyên tắc tính cục bộ phát biểu rằng, các chương trình truy cập một phần tương đối nhỏ của không gian địa chỉ trong một khoảng thời gian nào đó.  Mục tiêu của thiết kế là cung cấp cho người sử dụng nhiều bộ nhớ sẵn có theo công nghệ rẻ nhất (chỉ đĩa).  Mặc dù tận dụng nguyên tắc tính cục bộ, ta muốn cung cấp cho người sử dụng tốc độ truy cập trung bình rất gần với tốc độ được cung cấp bởi công nghệ nhanh nhất. 13
  8. Các kỹ thuật thứ bậc bộ nhớ  Cache sử dụng SRAM cho 21 tốc độ và tương thích công Address nghệ. CS SRAM 16  Mật độ thấp (cell 6- OE 2M x 16 Dout[15-0] transistor), công suất cao , đắt , WE nhanh. Din[15-0] 16  Tĩnh : nội dung tồn tại (cho đến khi mất cung cấp điện).  Bộ nhớ chính sử dụng DRAM cho kích thước (mật độ).  Mật độ cao (cell 1-transistor), công suất thấp , rẻ, chậm.  Động : cần được “làm tươi” đều đặn (~ mỗi 4 ms). - 1% đến 2% chu kỳ tích cực của DRAM.  Địa chỉ được chia thành 2 nửa (hàng và cột). - RAS hoặc Row Access Strobe kích mạch giải mã hàng. - CAS hoặc Column Access Strobe kích mạch chọn cột. 15
  9. Tổ chức RAM kinh điển (~vuông)  Đặt nhiều từ trong một hàng của bộ nhớ – chia đơn vị giải mã thành hai mạch giải mã (hàng và cột) và thực hiện lõi bộ nhớ dạng vuông để làm giảm chiều dài các đường bit (nhưng làm tăng chiều dài các đường từ). Phần lsb của địa chỉ đi đến mạch giải mã cột (e.g., 6 bit sao cho 64 từ được gán đến một hàng (với 32 bit mỗi từ sẽ cho 2 11 cặp đường bit ), để lại 14 bit cho mạch giải mã hàng (cung cấp 2 14 đường từ) cho một dải không hoàn toàn vuông . Sơ đồ này chỉ tốt cho bộ nhớ khoảng từ 64 Kb đến 256 Kb. Đối với các bộ nhớ lớn hơn, sơ đồ này sẽ rất chậm do các đường từ và bit quá dài.  SRAM cho phép ta đọc từ đầu đến cuối toàn bộ một hàng ở một thời điểm tại một từ.  Mỗi đường điều khiển hàng được tham chiếu như là đường từ và mỗi đường dữ liệu dọc được tham chiếu như là đường bit. 17
  10. Tổ chức DRAM điển hình (~các mặt vuông)  Giống như SRAM, DRAM được tổ chức thành các hàng và cột . Nhưng không giống SRAM, cho phép ta đọc từ đầu đến cuối toàn bộ một hàng ở một thời điểm tại một từ, DRAM kinh điển chỉ cho phép ta đọc một bit ở một thời điểm. Do vậy ta cần vài mặt trong số các mặt để lưu một từ. Lý do cho điều này là tiết kiệm công suất cũng như diện tích. Nhớ rằng hiện nay cell DRAM rất nhỏ, ta có nhiều cell theo chiều ngang . Do vậy sẽ khó xây dựng mạch khuếch đại nhận biết (s ense amplifier) cho từng cột do ràng buộc diện tích, chưa kể đến việc có mạch khuếch đại nhận biết mỗi cột sẽ tiêu thụ nhiều công suất.  Ta chọn bit mà ta muốn đọc hoặc ghi bằng cách cung cấp địa chỉ hàng rồi địa chỉ cột. Giống như SRAM, mỗi đường điều khiển hàng được tham chiếu như là đường từ còn mỗi đường dữ liệu dọc được tham chiếu như là đường bit. 19
  11. Hoạt động của DRAM kinh điển  Thực hiện khác tăng cường cho DRAM là hoạt động chế độ trang nhanh.  Trong DRAM bình thường, ta chỉ có thể đọc hoặc ghi M-bit do chỉ có một hàng và một cột được chọn ở thời điểm bất kỳ thông qua địa chỉ hàng và cột. 1) RAS 2) Latch 3) CAS 4) Latch 5) Data  Nói cách khác, đối với mỗi truy cập M-bit bộ nhớ, ta phải cung cấp địa chỉ hàng được theo sau bởi địa chỉ cột. Tiêu phí rất nhiều thời gian.  Do vậy các kỹ sư nói: “Tại sao ta không đặt thanh ghi N x M ở đây để có thể giữ lại toàn bộ hàng bên trong mỗi khi truy cập một hàng?” 21
  12. Hoạt động DRAM ở chế độ trang  Do vậy với thanh ghi đặt đúng chỗ này , tất cả những gì ta cần làm là xác lập RAS đến mạch chốt trong địa chỉ hàng , kế đến toàn bộ hàng được đọc từ đầu đến cuối và được lưu vào trong thanh ghi này.  Sau đó, ta chỉ cần cung cấp địa chỉ cột và xác lập CAS cần để truy cập M-bit khác bên trong cùng hàng này.  Kiểu hoạt động này, ở đó RAS vẫn được xác lập trong khi CAS thay đổi trạng thái để đưa vào địa chỉ cột mới được gọi là hoạt động chế độ trang (page mode operation).  Việc lưu trữ do vậy không phải lặp lại : SRAM. 23
  13. Các kiến trúc DRAM khác  Double Data Rate SDRAM – DDR-SDRAM ( và DDR- SRAM).  Tăng gấp đôi tốc độ dữ liệu do chúng truyền dữ liệu trên cả hai cạnh tăng và cạnh giảm của clock.  Dạng được sử dụng rộng rãi nhất của SDRAM.  DDR2-SDRAM. main.swf 25
  14. Hệ thống bộ nhớ hỗ trợ cache  Liên kết nối bên ngoài chip và kiến trúc bộ nhớ sẽ ảnh hưởng đến hiệu suất toàn bộ hệ thống theo nhiều cách. on-chip Tổ chức bộ nhớ rộng một CPU từ (bus rộng một từ và bộ nhớ rộng một từ).  Giả định Cache 1. 1 chu kỳ clock để truyền địa chỉ. 2. 25 chu kỳ clock cho thời gian chu kỳ dữ liệu 32- bus bit DRAM, 8 chu kỳ clock cho thời gian truy & cập . địa chỉ 32- Memory bit 3. 1 chu kỳ clock để trả về một từ dữ liệu. mỗi chu kỳ  Băng thông bus-bộ nhớ đến cache.  số byte được truy cập từ bộ nhớ và được chuyển đến cache/CPU mỗi chu kỳ clock. 27
  15. Tổ chức bộ nhớ rộng một từ (tiếp theo)  Nếu kích thước khối là 4 từ thì sao ? on-chip 1 chu kỳ để truyền địa chỉ đầu tiên. CPU 4 x 25 = 100 chu kỳ để đọc DRAM. 1 chu kỳ để trả về từ dữ liệu sau cùng. Cache 102 chu kỳ clock miss penalty. bus 25 cycles 25 cycles 25 cycles Memory 25 cycles  Số byte được truyền mỗi chu kỳ clock (băng thông) đối với miss đơn là (4 x 4)/102 = 0.157 byte mỗi clock. 29
  16. Tổ chức bộ nhớ xen kẽ  Đối với kích thước khối 4 từ on-chip 1 chu kỳ để truyền địa chỉ đầu tiên CPU 25 + 3 = 28 chu kỳ để đọc DRAM. 1 chu kỳ để trả về từ dữ liệu sau cùng. Cache 30 chu kỳ clock miss penalty bus 25 cycles 25 cycles Memory Memory Memory Memory 25 cycles bank 0 bank 1 bank 2 bank 3 25 cycles Memory bank: dải nhớ.  Số byte được truyền mỗi chu kỳ clock (băng thông) đối với miss đơn là (4 x 4)/30 = 0.533 byte mỗi clock. 31
  17. Cache  Hai câu hỏi cần lời giải (về phần cứng):  Q1: Làm cách nào ta biết có phải thành phần dữ liệu đang ở trong cache?  Q2: Nếu đúng , làm cách nào tìm thành phần dữ liệu này ?  Ánh xạ trực tiếp (d irect mapped)  Với mỗi thành phần dữ liệu ở mức thấp , có chính xác một vị trí trong cache chứa thành phần này – do vậy, nhiều thành phần ở mức thấp phải chia sẻ các vị trí ở mức cao.  Ánh xạ địa chỉ : (địa chỉ khối) modulo (# số khối trong cache )  Trước tiên khảo sát các kích thước khối một từ. 33
  18. Cache ánh xạ trực tiếp  Khảo sát chuỗi tham chiếu từ ( word ) của bộ nhớ chính. Bắt đầu bằng cache rỗng – mọi 0 1 2 3 4 3 4 15 khối ban đầu được đánh dấu là không hợp lệ. 0miss 1 miss 2 miss 3 miss 00 Mem(0) 00 Mem(0)00 Mem(0) 00 Mem(0) 00 Mem(1) 00 Mem(1) 00 Mem(1) 00 Mem(2) 00 Mem(2) 00 Mem(3) 4 miss 3hit 4 hit 15 miss 01 4 00 Mem(0) 01 Mem(4) 01 Mem(4) 01 Mem(4) 00 Mem(1) 00 Mem(1) 00 Mem(1) 00 Mem(1) 00 Mem(2) 00 Mem(2) 00 Mem(2) 00 Mem(2) 00 Mem(3) 00 Mem(3) 00 Mem(3) 00 Mem(3) 11 15  8 yêu cầu , 6 bỏ lỡ ( miss ).  hit : đạt được. 35
  19. Thí dụ cache ánh xạ trực tiếp của MIPS  Ta hãy sử dụng một thí dụ cụ thể với các con số thực tế: giả định ta có cache 1 K từ (4Kbyte) ánh xạ trực tiếp với kích thước khối bằng 4 byte (1 từ).  Nói cách khác , mỗi khối kết hợp với tag của cache sẽ có 4 byte trong khối (Row 1).  Với kích thước khối bằng 4 byte, 2 bit có trọng số thấp nhất của địa chỉ sẽ được sử dụng để chọn byte bên trong khối của cache .  Vì kích thước cache là 1K từ, phần bên trên 32 trừ 10+2 bit hay 20 bit của địa chỉ sẽ được lưu giữ dưới dạng tag của cache .  10 bit còn lại ở giữa , đó là các bit từ 2 đến 11, sẽ được dùng làm chỉ số ( index) của cache để lựa chọn điểm nhập thích hợp của cache. 37
  20. Nhắc lại : Tại sao đường ống? Cho thông lượng!  Việc tránh hazard cấu trúc cần 2 cache trên chip : một cho lệnh (I$) và một cho dữ liệu (D$). Thời gian (chu kỳ clock) Để giữ cho đường ống ALU hoạt động ở I Inst 0 I$ Reg D$ Reg tốc độ tối n đa, cả I$ lẫn s ALU Inst 1 I$ Reg D$ Reg D$ cần thỏa t yêu cầu từ r. ALU đường dữ Inst 2 I$ Reg D$ Reg O liệu mỗi chu r ALU kỳ. d Inst 3 I$ Reg D$ Reg Điều gì xảy e r ALU ra khi chúng Inst 4 I$ Reg D$ Reg không thực hiện điều đó?39
  21. Các nguyên nhân của cache miss  Cưỡng bách ( compulsory) (khởi động lạnh hoặc di trú quá trình, tham chiếu lần đầu tiên):  Truy cập lần đầu tiên đến một khối , sự kiện “lạnh” .  Nếu ta sẽ chạy hàng triệu lệnh , các miss cưỡng bách không có ý nghĩa.  Xung đột ( conflict)  Nhiều vị trí nhớ được ánh xạ đến cùng vị trí cache: - Giải pháp 1: tăng kích thước cache. - Giải pháp 2: tăng tính kết hợp.  Dung lượng ( capacity)  Cache không thể chứa tất cả khối được truy cập bởi chương trình. - Giải pháp: tăng kích thước cache. 41
  22. Các nguyên nhân của cache miss  Thí dụ, sử dụng 2-way set associative cache thay cho cache ánh xạ trực tiếp.  Nhưng cần ghi nhớ rằng tốc độ cache miss chỉ là một phần của vấn đề. Ta cũng cần quan tâm đến thời gian truy cập cache và miss penalty. Không được tối ưu hóa tốc độ miss riêng rẽ.  Sau cùng , có một nguyên nhân khác của các cache miss mà ta sẽ không đề cập đến. Chúng được xem như là các miss không căn cứ gây ra bởi quá trình khác , như là IO, cập nhật bộ nhớ chính nên ta phải flush cache để tránh sự mâu thuẫn giữa bộ nhớ và cache . 43
  23. Xử lý cache miss  Ta hãy xem xét cache ánh xạ trực tiếp 1KB một lần nữa .  Giả định ta thực hiện việc ghi 16-bit đến vị trí nhớ 0x000000 và gây ra một cache miss trong cache ánh xạ trực tiếp 1KB, cache này có lựa chọn khối 32-byte.  Sau khi ta ghi cache tag vào trong cache và ghi dữ liệu 16-bit vào trong byte 0 và byte 1, có phải ta cần đọc phần còn lại của khối (byte 2, 3, byte 31) từ bộ nhớ?  Nếu ta cần đọc phần còn lại của khối , điều này được gọi là chỉ định ghi ( write allocate). Nhưng, có thật sự cần thiết đưa vào phần còn lại của khối trên một miss ghi (write miss)?  Đúng , nguyên tắc của tính cục bộ không gian kéo theo rằng ta có khả năng truy cập chúng ngay. 45
  24. Cache ánh xạ trực tiếp khối nhiều từ  Bốn từ/khối , kích thước cache = 1K từ. 31 30 . . . 13 12 11 . . . 4 3 2 1 0 Byte Hit offset Data Tag 20 8 Block offset Index IndexValid Tag Data 0 1 2 . . . 253 254 255 20 32 Loại tính cục bộ nào ta sẽ tận dụng? 47
  25. Tỉ lệ miss, kích thước khối và kích thước cache 10 8 KB 16 KB 5 64 KB 256 KB Miss rate (%) Miss rate 0 8 16 32 64 128 256 Block size (bytes)  Tỉ lệ miss sẽ tăng nếu kích thước khối trở thành một phần có ý nghĩa của kích thước cache, do số khối có thể được lưu trong cache cùng kích thước sẽ nhỏ hơn (làm tăng miss dung lượng ). 49
  26. Thỏa hiệp kích thước khối  Như đã nói trước đây , kích thước khối là một sự thỏa hiệp. Tổng quát , kích thước khối lớn sẽ làm giảm tỉ lệ miss do điều này tận dụng tính cục bộ không gian.  Nhưng cần nhớ, tỉ lệ miss không phải là đại lượng hiệu suất duy nhất . Ta cũng phải quan tâm đến miss penalty.  Khi ta tăng kích thước khối , miss penalty của ta sẽ tăng do khi khối càng lớn, ta sẽ cần thời gian lâu hơn để làm đầy khối .  Khi ta tăng kích thước khối , giả định vẫn duy trì kích thước cache không đổi , tỉ lệ miss sẽ giảm nhanh vào lúc bắt đầu do tính cục bộ không gian. 51
  27. Xem xét khối nhiều từ  Các read miss (I$ and D$)  Được xử lý tương tự như đối với các khối từ đơn – một miss trả về “toàn bộ khối” từ bộ nhớ.  Miss penalty tăng khi kích thước khối tăng. - Khởi động lại sớm ( early restart) – đường dữ liệu tiếp tục thực thi ngay khi từ (word) được yêu cầu của khối được trả về. - Từ được yêu cầu đầu tiên ( requested word first ) – từ (word) yêu cầu được chuyển từ bộ nhớ đến cache (và đường dữ liệu) đầu tiên .  Cache không chận ( nonblocking cache) – cho phép đường dữ liệu tiếp tục truy cập cache trong khi cache đang xử lý một miss trước đó.  Các write miss (D$)  Không thể sử dụng write allocate hoặc sẽ kết thúc với khối “sai lệch” trong cache (e.g., đối với khối 4 từ, một tag mới , một từ dữ liệu từ khối mới và 3 từ dữ liệu từ khối cũ), nên phải tìm nạp khối từ bộ nhớ trước tiên và trả giá bằng thời gian stall. 53
  28. Phương pháp khác làm giảm tốc độ miss  Cache kết hợp đầy đủ: cache trong đó dữ liệu từ bất kỳ địa chỉ nào cũng có thể được lưu giữ trong vị trí cache bất kỳ. Toàn bộ địa chỉ phải được sử dụng làm tag. Mọi tag phải được so sánh đồng thời (associatively) với địa chỉ được yêu cầu và nếu một tag tương thích thì dữ liệu kết hợp với tag này được truy cập. Điều này yêu cầu một bộ nhớ kết hợp để chứa các tag , làm cho dạng cache này đắt hơn. Tuy nhiên dạng cache này phải giải quyết vấn đề tranh đua đối với các vị trí cache (cache conflict ) do nhu cầu khối chỉ bị flush khi toàn bộ cache đầy và kế đến khối cần flush có thể được lựa chọn theo cách hiệu quả hơn. 55
  29. Tóm tắt cache  Hệ thống thứ bậc bộ nhớ hoạt động theo nguyên tắc của tính cục bộ nói rằng, một chương trình sẽ truy cập một phần tương đối nhỏ của không gian địa chỉ trong một khoảng thời gian nào đó. Có hai loại tính cục bộ: tính cục bộ (theo) không gian và tính cục bộ (theo) thời gian.  Cho đến lúc này, ta đã đề cập đến 3 loại cache miss chính.  Các miss cưỡng bách là các cache miss do khởi động lạnh (cold start). Ta không thể tránh được các miss này nhưng nếu ta sẽ chạy hàng triệu lệnh, miss cưỡng bách thường không làm ta lo lắng. 57
  30. Tóm tắt cache  Có hai chính sách ghi trong chừng mực việc ghi cache có liên quan. Việc ghi yêu cầu một bộ đệm ghi và kịch bản là khi việc lưu giữ xảy ra thường xuyên đến nỗi làm bão hòa bộ đệm ghi.  Chính sách ghi thứ hai là ghi trở về ( write back). Trong trường hợp này , ta chỉ ghi đến cache và chỉ khi khối cache được thay thế, ta ghi khối cache trở về bộ nhớ.  Không có chính sách thay thế nào được cần đến đối với cache ánh xạ trực tiếp. Rắc rối ở chỗ, điều gây ra phiền toái của cache ánh xạ trực tiếp trước tiên là – chỉ có một nơi để đi vào cache, gây ra các miss xung đột. 59