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
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:
 bai_giang_kien_truc_may_tinh_chuong_6_bo_xu_ly_trung_tam_ngu.pdf bai_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
- 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
- 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 2626 May May 2012 2012 IT3030 2
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- NKK-HUT Hết chương 6 26 May 2012 IT3030 47





