Kiến trúc máy tính - Chương 6: Bộ xử lý trung tâm

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ớ

pdf47 trang | Chia sẻ: tuanhd28 | Lượt xem: 2431 | Lượt tải: 2download
Bạn đang xem trước 20 trang tài liệu Kiến trúc máy tính - Chương 6: Bộ xử lý trung tâm, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
NKK-HUT 26 May 2012 IT3030 1 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 NKK-HUT 2 26 May 2012  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 IT3030 26 May 2012 NKK-HUT 26 May 2012 IT3030 3 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 Nội dung NKK-HUT 26 May 2012 IT3030 4 6.1. Tổ chức 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 1. Cấu trúc cơ bản của CPU NKK-HUT 26 May 2012 IT3030 5 Sơ đồ cấu trúc cơ bản của CPU §¬n vÞ ®iÒu khiÓn (CU) §¬n vÞ sè häc vµ logic (ALU) TËp c¸c thanh ghi (RF) §¬n vÞ nèi ghÐp bus (BIU) bus d÷ liÖu bus bªn trong bus ®Þa chØbus ®iÒu khiÓn NKK-HUT 26 May 2012 IT3030 6  Đơ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) Các thành phần cơ bản của CPU NKK-HUT 26 May 2012 IT3030 7 Đơ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. NKK-HUT 26 May 2012 IT3030 8 Mô hình kết nối ALU §¬n vÞ sè häc vµ logic (ALU) D÷ liÖu vµo tõ c¸c thanh ghi C¸c tÝn hiÖu tõ ®¬n vÞ ®iÒu khiÓn Thanh ghi cê D÷ liÖu ra ®Õn c¸c thanh ghi NKK-HUT 26 May 2012 IT3030 9 Đơ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 đó. NKK-HUT 26 May 2012 IT3030 10 Mô hình kết nối đơn vị điều khiển §¬n vÞ ®iÒu khiÓn Thanh ghi lÖnh Bus ®iÒu khiÓn C¸c tÝn hiÖu ®iÒu khiÓn bªn trong CPU C¸c cê Clock C¸c tÝn hiÖu ®iÒu khiÓn ®Õn bus hÖ thèng C¸c tÝn hiÖu yªu cÇu tõ bus hÖ thèng NKK-HUT 26 May 2012 IT3030 11 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 NKK-HUT 26 May 2012 IT3030 12 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 NKK-HUT 26 May 2012 IT3030 13 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 NKK-HUT 26 May 2012 IT3030 14 Giản đồ trạng thái chu trình lệnh NhËn lÖnh TÝnh ®Þa chØ cña lÖnh Gi¶i m· thao t¸c lÖnh NhËn to¸n h¹ng TÝnh ®Þa chØ to¸n h¹ng Thao t¸c d÷ liÖu CÊt to¸n h¹ng TÝnh ®Þa chØ to¸n h¹ng KiÓm tra ng¾t Ng¾t LÖnh hoµn thµnh, nhËn lÖnh tiÕp theo Quay l¹i víi d÷ liÖu String hoÆc Vector Kh«ng Ng¾t NhiÒu to¸n h¹ng NhiÒu to¸n h¹ng Cã Ng¾t NKK-HUT 26 May 2012 IT3030 15 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 NKK-HUT 26 May 2012 IT3030 16 Sơ đồ mô tả quá trình nhận lệnh CPU PC §¬n vÞ ®iÒu khiÓn IR Bé nhí Bus ®Þa chØ Bus ®iÒu khiÓn Bus d÷ liÖu PC: Bé ®Õm ch-¬ng tr×nh IR: Thanh ghi lÖnh NKK-HUT 26 May 2012 IT3030 17 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 NKK-HUT 26 May 2012 IT3030 18 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 NKK-HUT 26 May 2012 IT3030 19 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 NKK-HUT 26 May 2012 IT3030 20 Sơ đồ tả nhận toán hạng gián tiếp CPU MAR §¬n vÞ ®iÒu khiÓn MBR Bé nhí Bus ®Þa chØ Bus ®iÒu khiÓn Bus d÷ liÖu MAR: Thanh ghi ®Þa chØ bé nhí MBR: Thanh ghi ®Öm bé nhí NKK-HUT 26 May 2012 IT3030 21 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)  ... NKK-HUT 26 May 2012 IT3030 22 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 NKK-HUT 26 May 2012 IT3030 23 Sơ đồ mô tả quá trình ghi toán hạng CPU MAR §¬n vÞ ®iÒu khiÓn MBR Bé nhí Bus ®Þa chØ Bus ®iÒu khiÓn Bus d÷ liÖu MAR: Thanh ghi ®Þa chØ bé nhí MBR: Thanh ghi ®Öm bé nhí NKK-HUT 26 May 2012 IT3030 24 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 NKK-HUT 26 May 2012 IT3030 25 Sơ đồ mô tả chu trình ngắt CPU MAR MBR Bé nhí Bus ®Þa chØ Bus ®iÒu khiÓn Bus d÷ liÖu MAR: Thanh ghi ®Þa chØ bé nhí MBR: Thanh ghi ®Öm bé nhí PC: Bé ®Õm ch-¬ng tr×nh SP: Con trá ng¨n xÕp PC §¬n vÞ ®iÒu khiÓn SP NKK-HUT 26 May 2012 IT3030 26 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) NKK-HUT 26 May 2012 IT3030 27 Đơn vị điều khiển vi chương trình Bé nhí vi ch-¬ng tr×nh Thanh ghi lÖnh C¸c tÝn hiÖu ®iÒu khiÓn bªn trong CPU C¸c cê Clock C¸c tÝn hiÖu ®iÒu khiÓn ®Õn bus hÖ thèng Thanh ghi ®i¹ chØ vi lÖnhM¹ch d·y Bé gi¶i m· Bé gi¶i m· vi lÖnh Thanh ghi ®Öm vi lÖnh C¸c tÝn hiÖu ®iÒu khiÓn tõ bus hÖ thèng Vi lÖnh tiÕp theo  Bộ nhớ vi chương trình (ROM) lưu trữ các vi chương trình (microprogram)  Một vi chương trình bao gồm các vi lệnh (microinstruction)  Mỗi vi lệnh mã hoá cho một vi thao tác (microoperation)  Để hoàn thành một lệnh cần thực hiện một hoặc một vài vi chương trình  Tốc độ chậm NKK-HUT 26 May 2012 IT3030 28 Đơn vị điều khiển nối kết cứng §¬n vÞ ®iÒu khiÓn Bé gi¶i m· C¸c cê Clock C¸c tÝn hiÖu ®iÒu khiÓn M¹ch ph©n chia thêi gian T 1 ... ... C 0 . . . Thanh ghi lÖnh T 2 T n C m-1 C 1  Sử dụng mạch cứng để giải mã và tạo các tín hiệu điều khiển thực hiện lệnh  Tốc độ nhanh  Đơn vị điều khiển phức tạp NKK-HUT 26 May 2012 IT3030 29 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) NKK-HUT 26 May 2012 IT3030 30 Biểu đồ thời gian của đường ống lệnh 1 109875432 6 t131211 FI EIFOCODI WO FI EIFOCODI WO FI EIFOCODI WO FI EIFOCODI WO FI EIFOCODI WO FI EIFOCODI WO FI EIFOCODI WO FI EIFOCODI WO lÖnh 1 lÖnh 2 lÖnh 3 lÖnh 4 lÖnh 5 lÖnh 6 lÖnh 7 lÖnh 8 NKK-HUT 26 May 2012 IT3030 31 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 NKK-HUT 26 May 2012 IT3030 32 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) NKK-HUT 26 May 2012 IT3030 33 Ví dụ Hazard về cấu trúc conflict on arithmetic unit cache miss TLB miss MULT A,B,C MULT D,E,F I D F E E E W I D F F F E E E W 3 clocks necessary for multiplication stall NKK-HUT 26 May 2012 IT3030 34 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) NKK-HUT 26 May 2012 IT3030 35 Sự phụ thuộc về dữ liệu RAW WAR WAW ADD A,B,C ADD E,A,D ADD A,B,C ADD B,D,E ADD A,B,C ADD A,D,E Write-A must be earlier than Read-A Read-B must be earlier than Write-B First Write-A must be earlier Than second Write-A NKK-HUT 26 May 2012 IT3030 36 WAR and WAW WAR WAW ADD A,B,C ADD B,D,E ADD A,B,C ADD A,D,E Read-B is earlier than Write-B first Write-A is earlier than second Write-A I D F E W I D F E W Write B Read B I D F E W I D F E W Write A Write A no conflict at in-order pipeline conflict at out-of-order pipeline NKK-HUT 26 May 2012 IT3030 37 RAW ADD A,B,C ADD E,A,D I D F E W I D F E C I D F E W I D D D F E W Read A Write A stall Write-A must be earlier Than Read-A Write A Read A NKK-HUT 26 May 2012 IT3030 38 Hazard điều khiển BEQ A, B, Label LOAD C, X ・・・・ Label: LOAD C, Y I D F E C I D F E C set PC stall Wait for branch address calculation next instruction to a branch instruction cannot be fetched until branch condition defined and PC updated NKK-HUT 26 May 2012 IT3030 39 6.4. Cấu trúc chung của các bộ xử lý tiên tiến texttext §¬n vÞ nèi ghÐp bus (BIU) Cache L2 Cache lÖnh L1 (I-Cache) Cache d÷ liÖu L1 (D-Cache) §¬n vÞ nhËn lÖnh §¬n vÞ qu¶n lý bé nhí (MMU) texttext §¬n vÞ gi¶i m· vµ ®iÒu phèi thùc hiÖn lÖnh ALUs FPUs texttextSFUs TËp thanh ghi sè nguyªn TËp thanh ghi d÷ liÖu chuyªn dông TËp thanh ghi sè dÊu phÈy ®éng Bus bªn ngoµi bus bªn trong NKK-HUT 26 May 2012 IT3030 40 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 NKK-HUT 26 May 2012 IT3030 41 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 NKK-HUT 26 May 2012 IT3030 42 Đơ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ớ NKK-HUT 26 May 2012 IT3030 43 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) NKK-HUT 26 May 2012 IT3030 44 Superpipeline COLÖnh 1 FI DI FO EI WO COFI DI FO EI WO COFI DI FO EI WO COFI DI FO EI WOLÖnh 4 LÖnh 3 LÖnh 2 NKK-HUT 26 May 2012 IT3030 45 Superscalar COLÖnh 1 FI DI FO EI WO COFI DI FO EI WO COFI DI FO EI WO COFI DI FO EI WOLÖnh 4 LÖnh 3 LÖnh 2 COFI DI FO EI WO COFI DI FO EI WOLÖnh 6 LÖnh 5 NKK-HUT 26 May 2012 IT3030 46 VLIW (Very Long Instruction Word) Opcode Operands Opcode 3Opcode 1 Opcode 2 Operands Operands Operands Tõ lÖnh dµi Tõ lÖnh th«ng th-êng NKK-HUT 26 May 2012 IT3030 47 Hết chương 6

Các file đính kèm theo tài liệu này:

  • pdfca6_6311.pdf