Bài giảng Kiến trúc máy tính - Chương 6: Bộ xử lý trung tâm - Nguyễn Kim Khánh

pdf 47 trang phuongnguyen 2890
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 6: Bộ xử lý trung tâm - Nguyễn Kim Khánh", để 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_6_bo_xu_ly_trung_tam_ngu.pdf

Nội dung text: Bài giảng Kiến trúc máy tính - Chương 6: Bộ xử lý trung tâm - Nguyễn Kim Khánh

  1. NKK-HUT Kiến trúc máy tính Chương 6 BỘ XỬ LÝ TRUNG TÂM (Central Processing Unit - CPU) Nguyễn Kim Khánh Trường Đại học Bách khoa Hà Nội 26 May 2012 IT3030 1
  2. NKK-HUT Nội dung học phần  Chương 1. Giới thiệu chung  Chương 2. Cơ bản về logic số  Chương 3. Hệ thống máy tính  Chương 4. Kiến trúc tập lệnh  Chương 5. Số học máy tính  Chương 6. Bộ xử lý  Chương 7. Bộ nhớ  Chương 8. Vào-ra  Chương 9. Kiến trúc máy tính tiên tiến 2626 May May 2012 2012 IT3030 2
  3. NKK-HUT Nội dung 6.1. Tổ chức của CPU 6.2. Thiết kế đơn vị điều khiển 6.3. Kỹ thuật đường ống lệnh 6.4. Cấu trúc bộ xử lý tiên tiến 6.5. Các kiến trúc song song mức lệnh 26 May 2012 IT3030 3
  4. NKK-HUT 6.1. Tổ chức của CPU 1. Cấu trúc cơ bản của CPU  Nhiệm vụ của CPU:  Nhận lệnh (Fetch Instruction): CPU đọc lệnh từ bộ nhớ.  Giải mã lệnh (Decode Instruction): xác định thao tác mà lệnh yêu cầu.  Nhận dữ liệu (Fetch Data): nhận dữ liệu từ bộ nhớ hoặc các cổng vào-ra.  Xử lý dữ liệu (Process Data): thực hiện phép toán số học hay phép toán logic với các dữ liệu.  Ghi dữ liệu (Write Data): ghi dữ liệu ra bộ nhớ hay cổng vào-ra 26 May 2012 IT3030 4
  5. NKK-HUT Sơ đồ cấu trúc cơ bản của CPU §¬n vÞ §¬n vÞ TËp c¸c sè häc vµ ®iÒu khiÓn thanh ghi logic (CU) (RF) (ALU) bus bªn trong §¬n vÞ nèi ghÐp bus (BIU) bus ®iÒu khiÓn bus d÷ liÖu bus ®Þa chØ 26 May 2012 IT3030 5
  6. NKK-HUT Các thành phần cơ bản của CPU  Đơn vị điều khiển (Control Unit - CU)  Đơn vị số học và logic (Arithmetic and Logic Unit - ALU)  Tập thanh ghi (Register File - RF)  Đơn vị nối ghép bus (Bus Interface Unit - BIU)  Bus bên trong (Internal Bus) 26 May 2012 IT3030 6
  7. NKK-HUT Đơn vị số học và logic  Chức năng: Thực hiện các phép toán số học và phép toán logic:  Số học: cộng, trừ, nhân, chia, tăng, giảm, đảo dấu  Logic: AND, OR, XOR, NOT, phép dịch bit. 26 May 2012 IT3030 7
  8. NKK-HUT Mô hình kết nối ALU D÷ liÖu vµo tõ D÷ liÖu ra ®Õn c¸c thanh ghi c¸c thanh ghi §¬n vÞ C¸c tÝn hiÖu sè häc vµ logic tõ ®¬n vÞ (ALU) ®iÒu khiÓn Thanh ghi cê 26 May 2012 IT3030 8
  9. NKK-HUT Đơn vị điều khiển  Chức năng  Điều khiển nhận lệnh từ bộ nhớ đưa vào thanh ghi lệnh  Tăng nội dung của PC để trỏ sang lệnh kế tiếp  Giải mã lệnh đã được nhận để xác định thao tác mà lệnh yêu cầu  Phát ra các tín hiệu điều khiển thực hiện lệnh  Nhận các tín hiệu yêu cầu từ bus hệ thống và đáp ứng với các yêu cầu đó. 26 May 2012 IT3030 9
  10. NKK-HUT Mô hình kết nối đơn vị điều khiển Thanh ghi lÖnh C¸c tÝn hiÖu C¸c cê ®iÒu khiÓn §¬n vÞ bªn trong CPU ®iÒu khiÓn Clock C¸c tÝn hiÖu C¸c tÝn hiÖu yªu cÇu tõ ®iÒu khiÓn ®Õn bus hÖ thèng bus hÖ thèng Bus ®iÒu khiÓn 26 May 2012 IT3030 10
  11. NKK-HUT Các tín hiệu đưa đến đơn vị điều khiển  Clock: tín hiệu nhịp từ mạch tạo dao động bên ngoài.  Mã lệnh từ thanh ghi lệnh đưa đến để giải mã.  Các cờ từ thanh ghi cờ cho biết trạng thái của CPU.  Các tín hiệu yêu cầu từ bus điều khiển 26 May 2012 IT3030 11
  12. NKK-HUT Các tín hiệu phát ra từ đơn vị điều khiển  Các tín hiệu điều khiển bên trong CPU:  Điều khiển các thanh ghi  Điều khiển ALU  Các tín hiệu điều khiển bên ngoài CPU:  Điều khiển bộ nhớ  Điều khiển các mô-đun vào-ra 26 May 2012 IT3030 12
  13. NKK-HUT 2. Hoạt động của chu trình lệnh Chu trình lệnh  Nhận lệnh  Giải mã lệnh  Nhận toán hạng  Thực hiện lệnh  Cất toán hạng  Ngắt 26 May 2012 IT3030 13
  14. NKK-HUT Giản đồ trạng thái chu trình lệnh NhËn CÊt NhËn lÖnh to¸n h¹ng to¸n h¹ng NhiÒu NhiÒu to¸n to¸n h¹ng h¹ng Cã TÝnh Gi¶i m· TÝnh TÝnh Ng¾t Thao t¸c KiÓm tra ®Þa chØ thao t¸c ®Þa chØ ®Þa chØ Ng¾t d÷ liÖu ng¾t cña lÖnh lÖnh to¸n h¹ng to¸n h¹ng Kh«ng LÖnh hoµn thµnh, Quay l¹i víi d÷ liÖu Ng¾t nhËn lÖnh tiÕp theo String hoÆc Vector 26 May 2012 IT3030 14
  15. NKK-HUT Nhận lệnh  CPU đưa địa chỉ của lệnh cần nhận từ bộ đếm chương trình PC ra bus địa chỉ  CPU phát tín hiệu điều khiển đọc bộ nhớ  Lệnh từ bộ nhớ được đặt lên bus dữ liệu và được CPU copy vào thanh ghi lệnh IR  CPU tăng nội dung PC để trỏ sang lệnh kế tiếp 26 May 2012 IT3030 15
  16. NKK-HUT Sơ đồ mô tả quá trình nhận lệnh CPU PC Bé nhí §¬n vÞ ®iÒu khiÓn IR PC: Bé ®Õm ch•¬ng tr×nh Bus Bus Bus IR: Thanh ghi lÖnh ®Þa d÷ ®iÒu chØ liÖu khiÓn 26 May 2012 IT3030 16
  17. NKK-HUT Giải mã lệnh  Lệnh từ thanh ghi lệnh IR được đưa đến đơn vị điều khiển  Đơn vị điều khiển tiến hành giải mã lệnh để xác định thao tác phải thực hiện  Giải mã lệnh xảy ra bên trong CPU 26 May 2012 IT3030 17
  18. NKK-HUT Nhận dữ liệu  CPU đưa địa chỉ của toán hạng ra bus địa chỉ  CPU phát tín hiệu điều khiển đọc  Toán hạng được đọc vào CPU  Tương tự như nhận lệnh 26 May 2012 IT3030 18
  19. NKK-HUT Nhận dữ liệu gián tiếp  CPU đưa địa chỉ ra bus địa chỉ  CPU phát tín hiệu điều khiển đọc  Nội dung ngăn nhớ được đọc vào CPU, đó chính là địa chỉ của toán hạng  Địa chỉ này được CPU phát ra bus địa chỉ để tìm ra toán hạng  CPU phát tín hiệu điều khiển đọc  Toán hạng được đọc vào CPU 26 May 2012 IT3030 19
  20. NKK-HUT Sơ đồ tả nhận toán hạng gián tiếp CPU MAR §¬n vÞ Bé nhí ®iÒu khiÓn MBR MAR: Thanh ghi ®Þa chØ bé nhí Bus Bus Bus MBR: Thanh ghi ®Öm bé nhí ®Þa d÷ ®iÒu chØ liÖu khiÓn 26 May 2012 IT3030 20
  21. NKK-HUT Thực hiện lệnh  Có nhiều dạng tuỳ thuộc vào lệnh  Có thể là:  Đọc/Ghi bộ nhớ  Vào/Ra  Chuyển giữa các thanh ghi  Thao tác số học/logic  Chuyển điều khiển (rẽ nhánh)  26 May 2012 IT3030 21
  22. NKK-HUT Ghi toán hạng  CPU đưa địa chỉ ra bus địa chỉ  CPU đưa dữ liệu cần ghi ra bus dữ liệu  CPU phát tín hiệu điều khiển ghi  Dữ liệu trên bus dữ liệu được copy đến vị trí xác định 26 May 2012 IT3030 22
  23. NKK-HUT Sơ đồ mô tả quá trình ghi toán hạng CPU MAR §¬n vÞ Bé nhí ®iÒu khiÓn MBR MAR: Thanh ghi ®Þa chØ bé nhí Bus Bus Bus MBR: Thanh ghi ®Öm bé nhí ®Þa d÷ ®iÒu chØ liÖu khiÓn 26 May 2012 IT3030 23
  24. NKK-HUT Ngắt  Nội dung của bộ đếm chương trình PC (địa chỉ trở về sau khi ngắt) được đưa ra bus dữ liệu  CPU đưa địa chỉ (thường được lấy từ con trỏ ngăn xếp SP) ra bus địa chỉ  CPU phát tín hiệu điều khiển ghi bộ nhớ  Địa chỉ trở về trên bus dữ liệu được ghi ra vị trí xác định (ở ngăn xếp)  Địa chỉ lệnh đầu tiên của chương trình con điều khiển ngắt được nạp vào PC 26 May 2012 IT3030 24
  25. NKK-HUT Sơ đồ mô tả chu trình ngắt CPU SP MAR PC §¬n vÞ Bé nhí ®iÒu khiÓn MBR MAR: Thanh ghi ®Þa chØ bé nhí MBR: Thanh ghi ®Öm bé nhí Bus Bus Bus PC: Bé ®Õm ch•¬ng tr×nh ®Þa d÷ ®iÒu SP: Con trá ng¨n xÕp chØ liÖu khiÓn 26 May 2012 IT3030 25
  26. NKK-HUT 6.2. Thiết kế đơn vị điều khiển  Đơn vị điều khiển vi chương trình (Microprogrammed Control Unit)  Đơn vị điều khiển nối kết cứng (Hardwired Control Unit) 26 May 2012 IT3030 26
  27. NKK-HUT Đơn vị điều khiển vi chương trình Thanh ghi lÖnh  Bộ nhớ vi chương trình (ROM) lưu trữ các vi C¸c tÝn hiÖu ®iÒu khiÓn Bé gi¶i m· chương trình tõ bus hÖ thèng (microprogram) Clock M¹ch d·y Thanh ghi ®i¹ chØ vi lÖnh  Một vi chương trình bao C¸c cê gồm các vi lệnh Bé nhí (microinstruction) vi ch•¬ng tr×nh  Mỗi vi lệnh mã hoá cho Vi lÖnh một vi thao tác tiÕp (microoperation) theo Thanh ghi ®Öm vi lÖnh  Để hoàn thành một lệnh Bé gi¶i m· vi lÖnh cần thực hiện một hoặc C¸c tÝn hiÖu C¸c tÝn hiÖu một vài vi chương trình ®iÒu khiÓn ®iÒu khiÓn bªn trong CPU ®Õn bus hÖ thèng  Tốc độ chậm 26 May 2012 IT3030 27
  28. NKK-HUT Đơn vị điều khiển nối kết cứng  Sử dụng mạch Thanh ghi lÖnh cứng để giải mã và tạo các Bé gi¶i m· tín hiệu điều khiển thực hiện T1 lệnh M¹ch T2 Clock §¬n vÞ . C¸c ph©n chia . .  . ®iÒu khiÓn cê Tốc độ nhanh thêi gian  Đơn vị điều Tn khiển phức tạp C C . . . C 0 1 m-1 C¸c tÝn hiÖu ®iÒu khiÓn 26 May 2012 IT3030 28
  29. NKK-HUT 6.3. Kỹ thuật đường ống lệnh (Instruction Pipelining)  Chia chu trình lệnh thành các công đoạn và cho phép thực hiện gối lên nhau (như dây chuyền lắp ráp)  Chẳng hạn có 6 công đoạn:  Nhận lệnh (Fetch Instruction - FI)  Giải mã lệnh (Decode Instruction - DI)  Tính địa chỉ toán hạng (Calculate Operand Address-CO)  Nhận toán hạng (Fetch Operands - FO)  Thực hiện lệnh (Execute Instruction - EI)  Ghi toán hạng (Write Operands - WO) 26 May 2012 IT3030 29
  30. NKK-HUT Biểu đồ thời gian của đường ống lệnh 1 2 3 4 5 6 7 8 9 10 11 12 13 t FI DI CO FO EI WO lÖnh 1 FI DI CO FO EI WO lÖnh 2 FI DI CO FO EI WO lÖnh 3 FI DI CO FO EI WO lÖnh 4 FI DI CO FO EI WO lÖnh 5 FI DI CO FO EI WO lÖnh 6 FI DI CO FO EI WO lÖnh 7 FI DI CO FO EI WO lÖnh 8 26 May 2012 IT3030 30
  31. NKK-HUT Các Hazard (trở ngại) của đường ống lệnh  Hazard cấu trúc: do nhiều công đoạn dùng chung một tài nguyên  Hazard dữ liệu: lệnh sau sử dụng dữ liệu kết quả của lệnh trước  Hazard điều khiển: do rẽ nhánh gây ra 26 May 2012 IT3030 31
  32. NKK-HUT Hazard về cấu trúc  Nguyên nhân: Dùng chung tài nguyên  Khắc phục:  nhân tài nguyên để tránh xung đột  Làm trễ Ví dụ:  Bus dữ liệu: truyền lệnh và dữ liệu Bus lệnh riêng, bus dữ liệu riêng (cache lệnh và cache dữ liệu) 26 May 2012 IT3030 32
  33. NKK-HUT Ví dụ Hazard về cấu trúc 3 clocks necessary for multiplication conflict on arithmetic unit MULT A,B,C I D F E E E W MULT D,E,F I D F F F E E E W cache miss stall TLB miss 26 May 2012 IT3030 33
  34. NKK-HUT Hazard về dữ liệu  Nguyên nhân: lệnh sau sử dụng dữ liệu kết quả của lệnh trước  Các dạng:  RAW (Read After Write)  WAR (Write After Read)  WAW (Write After Write) 26 May 2012 IT3030 34
  35. NKK-HUT Sự phụ thuộc về dữ liệu RAW ADD A,B,C Write-A must be earlier than ADD E,A,D Read-A WAR ADD A,B,C Read-B must be earlier than ADD B,D,E Write-B First Write-A must be earlier WAW ADD A,B,C Than second Write-A ADD A,D,E 26 May 2012 IT3030 35
  36. NKK-HUT WAR and WAW Read B WAR ADD A,B,C I D F E W ADD B,D,E I D F E W Read-B is earlier than Write-B Write B Write A WAW ADD A,B,C I D F E W ADD A,D,E I D F E W first Write-A is earlier than second Write-A Write A no conflict at in-order pipeline conflict at out-of-order pipeline 26 May 2012 IT3030 36
  37. NKK-HUT RAW Write A ADD A,B,C I D F E W ADD E,A,D I D F E C Read A Write-A must be earlier Write A Than Read-A I D F E W I D D D F E W Read A stall 26 May 2012 IT3030 37
  38. NKK-HUT Hazard điều khiển Wait for branch address set PC calculation BEQ A, B, Label I D F E C LOAD C, X I D F E C ・・・・ stall Label: LOAD C, Y next instruction to a branch instruction cannot be fetched until branch condition defined and PC updated 26 May 2012 IT3030 38
  39. NKK-HUT 6.4. Cấu trúc chung của các bộ xử lý tiên tiến Cache lÖnh L1 §¬n vÞ nhËn lÖnh (I-Cache) §¬n vÞ gi¶i m· vµ ®iÒu phèi thùc hiÖn lÖnh Bus §¬n vÞ bªn ngoµi nèi ghÐp Cache bus L2 (BIU) text text text ALteUxst FPteUxst SFteUxst TËp thanh ghi TËp thanh ghi TËp thanh ghi sè dÊu d÷ liÖu sè nguyªn §¬n vÞ phÈy ®éng chuyªn dông qu¶n lý bé nhí bus bªn trong (MMU) Cache d÷ liÖu L1 (D-Cache) 26 May 2012 IT3030 39
  40. NKK-HUT Các đơn vị xử lý dữ liệu  Các đơn vị số nguyên (ALU)  Các đơn vị số dấu phẩy động (FPU – Floating Point Unit)  Các đơn vị chức năng đặc biệt (SFU Special Function Unit)  Đơn vị xử lý dữ liệu âm thanh  Đơn vị xử lý dữ liệu hình ảnh  Đơn vị xử lý dữ liệu vector 26 May 2012 IT3030 40
  41. NKK-HUT Bộ nhớ cache  Được tích hợp trên chip vi xử lý  Bao gồm hai mức cache:  Cache L1 gồm hai phần tách rời:  Cache lệnh  Cache dữ liệu giải quyết xung đột khi nhận lệnh và dữ liệu  Cache L2: chung cho lệnh và dữ liệu 26 May 2012 IT3030 41
  42. NKK-HUT Đơn vị quản lý bộ nhớ MMU – Memory Mangement Unit  Chuyển đổi địa chỉ ảo thành địa chỉ vật lý  Cung cấp cơ chế phân trang/phân đoạn  Cung cấp chế độ bảo vệ bộ nhớ 26 May 2012 IT3030 42
  43. NKK-HUT 6.5. Các kiến trúc song song mức lệnh  Siêu đường ống (Superpipeline & Hyperpipeline)  Siêu vô hướng (Superscalar)  VLIW (Very Long Instruction Word) 26 May 2012 IT3030 43
  44. NKK-HUT Superpipeline LÖnh 1 FI DI CO FO EI WO LÖnh 2 FI DI CO FO EI WO LÖnh 3 FI DI CO FO EI WO LÖnh 4 FI DI CO FO EI WO 26 May 2012 IT3030 44
  45. NKK-HUT Superscalar LÖnh 1 FI DI CO FO EI WO LÖnh 2 FI DI CO FO EI WO LÖnh 3 FI DI CO FO EI WO LÖnh 4 FI DI CO FO EI WO LÖnh 5 FI DI CO FO EI WO LÖnh 6 FI DI CO FO EI WO 26 May 2012 IT3030 45
  46. NKK-HUT VLIW (Very Long Instruction Word) Tõ lÖnh th«ng th•êng Opcode Operands Tõ lÖnh dµi Opcode 1 Opcode 2 Opcode 3 Operands Operands Operands 26 May 2012 IT3030 46
  47. NKK-HUT Hết chương 6 26 May 2012 IT3030 47