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
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