Bài giảng Kiến trúc máy tính - Chương 6: Bộ xử lý - Nguyễn Kim Khánh
6.1. Tổ chức của CPU
n Nhiệm vụ của CPU:
n Nhận lệnh (Fetch Instruction): CPU đọc lệnh từ bộ
nhớ
n Giải mã lệnh (Decode Instruction): xác định thao tác
mà lệnh yêu cầu
n Nhận dữ liệu (Fetch Data): nhận dữ liệu từ bộ nhớ
hoặc các cổng vào-ra
n 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
n Ghi dữ liệu (Write Data): ghi dữ liệu ra bộ nhớ hay
cổng vào-ra
Trang 1
Trang 2
Trang 3
Trang 4
Trang 5
Trang 6
Trang 7
Trang 8
Trang 9
Trang 10
Tải về để xem bản đầy đủ
Bạn đang xem 10 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ý - Nguyễn Kim Khánh", để tải tài liệu gốc về máy hãy click vào nút Download ở trên
Tóm tắt nội dung tài liệu: Bài giảng Kiến trúc máy tính - Chương 6: Bộ xử lý - Nguyễn Kim Khánh
NKK-HUST Kiến trúc máy tính Chương 6 BỘ XỬ LÝ Nguyễn Kim Khánh Trường Đại học Bách khoa Hà Nội 2017 Kiến trúc máy tính 310 NKK-HUST 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. Số học máy tính Chương 5. Kiến trúc tập lệnh Chương 6. Bộ xử lý Chương 7. Bộ nhớ máy tính Chương 8. Hệ thống vào-ra Chương 9. Các kiến trúc song song 2017 Kiến trúc máy tính 311 NKK-HUST 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. Ví dụ thiết kế bộ xử lý theo kiến trúc MIPS (*) (*) dành cho Chương trình Tài năng và Chất lượng cao Nội dung của chương 6 2017 Kiến trúc máy tính 312 NKK-HUST 6.1. Tổ chức của CPU n Nhiệm vụ của CPU: n Nhận lệnh (Fetch Instruction): CPU đọc lệnh từ bộ nhớ n Giải mã lệnh (Decode Instruction): xác định thao tác mà lệnh yêu cầu n Nhận dữ liệu (Fetch Data): nhận dữ liệu từ bộ nhớ hoặc các cổng vào-ra n 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 n 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 2017 Kiến trúc máy tính 313 NKK-HUST Sơ đồ cấu trúc cơ bản của CPU 2017 Kiến trúc máy tính 314 Đơn vị điều khiển (CU) Đơn vị số học và logic (ALU) Tập 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-HUST 2. Đơn vị số học và logic n Chức năng: Thực hiện các phép toán số học và phép toán logic: n Số học: cộng, trừ, nhân, chia, đảo dấu n Logic: AND, OR, XOR, NOT, phép dịch bit 2017 Kiến trúc máy tính 315 NKK-HUST Mô hình kết nối ALU Đơn vị số học và logic (ALU) Dữ liệu từ các thanh ghi Các tín hiệu từ đơn vị điều khiển Thanh ghi cờ Dữ liệu đến các thanh ghi 2017 Kiến trúc máy tính 316 Thanh ghi cờ: hiển thị trạng thái của kết quả phép toán NKK-HUST 3. Đơn vị điều khiển n Chức năng n Điều khiển nhận lệnh từ bộ nhớ đưa vào CPU n Tăng nội dung của PC để trỏ sang lệnh kế tiếp n Giải mã lệnh đã được nhận để xác định thao tác mà lệnh yêu cầu n Phát ra các tín hiệu điều khiển thực hiện lệnh n 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 đó. 2017 Kiến trúc máy tính 317 NKK-HUST 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 điều khiển từ bus hệ thống 2017 Kiến trúc máy tính 318 NKK-HUST Các tín hiệu đưa đến đơn vị điều khiển n Clock: tín hiệu nhịp từ mạch tạo dao động bên ngoài n Lệnh từ thanh ghi lệnh đưa đến để giải mã n Các cờ từ thanh ghi cờ cho biết trạng thái của CPU n Các tín hiệu yêu cầu từ bus điều khiển 2017 Kiến trúc máy tính 319 NKK-HUST Các tín hiệu phát ra từ đơn vị điều khiển n Các tín hiệu điều khiển bên trong CPU: n Điều khiển các thanh ghi n Điều khiển ALU n Các tín hiệu điều khiển bên ngoài CPU: n Điều khiển bộ nhớ n Điều khiển các mô-đun vào-ra 2017 Kiến trúc máy tính 320 NKK-HUST 4. Hoạt động của chu trình lệnh Chu trình lệnh n Nhận lệnh n Giải mã lệnh n Nhận toán hạng n Thực hiện lệnh n Cất toán hạng n Ngắt 2017 Kiến trúc máy tính 321 NKK-HUST 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 2017 Kiến trúc máy tính 322 NKK-HUST Nhận lệnh n CPU đưa địa chỉ của lệnh cần nhận từ bộ đếm chương trình PC ra bus địa chỉ n CPU phát tín hiệu điều khiển đọc bộ nhớ n Lệnh từ bộ nhớ được đặt lên bus dữ liệu và được CPU copy vào thanh ghi lệnh IR n CPU tăng nội dung PC để trỏ sang lệnh kế tiếp 2017 Kiến trúc máy tính 323 NKK-HUST 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 2017 Kiến trúc máy tính 324 NKK-HUST Giải mã lệnh n Lệnh từ thanh ghi lệnh IR được đưa đến đơn vị điều khiển 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 n Giải mã lệnh xảy ra bên trong CPU 2017 Kiến trúc máy tính 325 NKK-HUST Nhận dữ liệu từ bộ nhớ n CPU đưa địa chỉ của toán hạng ra bus địa chỉ n CPU phát tín hiệu điều khiển đọc n Toán hạng được đọc vào CPU n Tương tự như nhận lệnh 2017 Kiến trúc máy tính 326 NKK-HUST Sơ đồ mô tả nhận dữ liệu từ bộ nhớ 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ớ 2017 Kiến trúc máy tính 327 NKK-HUST Thực hiện lệnh n Có nhiều dạng tuỳ thuộc vào lệnh n Có thể là: n Đọc/Ghi bộ nhớ n Vào/Ra n Chuyển giữa các thanh ghi n Phép toán số học/logic n Chuyển điều khiển (rẽ nhánh) n ... 2017 Kiến trúc máy tính 328 NKK-HUST Ghi toán hạng n CPU đưa địa chỉ ra bus địa chỉ n CPU đưa dữ liệu cần ghi ra bus dữ liệu n CPU phát tín hiệu điều khiển ghi n Dữ liệu trên bus dữ liệu được copy đến vị trí xác định 2017 Kiến trúc máy tính 329 NKK-HUST 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ớ 2017 Kiến trúc máy tính 330 NKK-HUST Ngắt n 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 n CPU đưa địa chỉ (thường được lấy từ con trỏ ngăn xếp SP) ra bus địa chỉ n CPU phát tín hiệu điều khiển ghi bộ nhớ n Địa chỉ trở về trên bus dữ liệu được ghi ra vị trí xác định (ở ngăn xếp) n Đị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 2017 Kiến trúc máy tính 331 NKK-HUST Sơ đồ mô tả chu trình ngắt CPU MAR MBR Bộ nhớ PC Đơn vị điều khiển SP 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 2017 Kiến trúc máy tính 332 NKK-HUST 6.2. Các phương pháp thiết kế đơn vị điều khiển n Đơn vị điều khiển vi chương trình (Microprogrammed Control Unit) n Đơn vị điều khiển nối kết cứng (Hardwired Control Unit) 2017 Kiến trúc máy tính 333 NKK-HUST 1. Đơn vị điều khiển vi chương trình n Bộ nhớ vi chương trình (ROM) lưu trữ các vi chương trình (microprogram) n Một vi chương trình bao gồm các vi lệnh (microinstruction) n Mỗi vi lệnh mã hoá cho một vi thao tác (microoperation) n Để 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 n Tốc độ chậm Bộ nhớ vi chương trình Thanh ghi lệnh Tín hiệu điều khiển bên trong CPU Các cờ Clock Tín hiệu điều khiển đến bus hệ thống Thanh ghi địa 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 2017 Kiến trúc máy tính 334 NKK-HUST 2. Đơn vị điều khiển nối kết cứng n 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 n Tốc độ nhanh n Đơn vị điều khiển phức tạp Đơ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 T1 ... ... C0 . . . Thanh ghi lệnh T2 Tn Cm-1C1 2017 Kiến trúc máy tính 335 NKK-HUST 6.3. Kỹ thuật đường ống lệnh n 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) n Chẳng hạn bộ xử lý MIPS có 5 công đoạn: 1. IF: Instruction fetch from memory – Nhận lệnh từ bộ nhớ 2. ID: Instruction decode & register read – Giải mã lệnh và đọc thanh ghi 3. EX: Execute operation or calculate address – Thực hiện thao tác hoặc tính toán địa chỉ 4. MEM: Access memory operand – Truy nhập toán hạng bộ nhớ 5. WB: Write result back to register – Ghi kết quả trả về thanh ghi 2017 Kiến trúc máy tính 336 NKK-HUST Biểu đồ thời gian của đường ống lệnh 2017 Kiến trúc máy tính 337 1 765432 t1098 WBlệnh 1 lệnh 2 lệnh 3 lệnh 4 lệnh 5 lệnh 6 lệnh 7 lệnh 8 IF ID EX MEM WBIF ID EX MEM WBIF ID EX MEM WBIF ID EX MEM WBIF ID EX MEM WBIF ID EX MEM 11 12 WBIF ID EX MEM WBIF ID EX MEM Thời gian thực hiện 1 công đoạn = T Thời gian thực hiện tuần tự 8 lệnh: 8 x 5T = 40T Thời gian thực hiện đường ống 8 lệnh: (1 x 5T) + [ (8-1) x T ] = 12T NKK-HUST Các mối trở ngại (Hazard) của đường ống lệnh n Hazard: Tình huống ngăn cản bắt đầu của lệnh tiếp theo ở chu kỳ tiếp theo n Hazard cấu trúc: do tài nguyên được yêu cầu đang bận n Hazard dữ liệu: cần phải đợi để lệnh trước hoàn thành việc đọc/ghi dữ liệu n Hazard điều khiển: do rẽ nhánh gây ra 2017 Kiến trúc máy tính 338 NKK-HUST Hazard cấu trúc n Xung đột khi sử dụng tài nguyên n Trong đường ống của MIPS với một bộ nhớ dùng chung n Lệnh Load/store yêu cầu truy cập dữ liệu n Nhận lệnh cần trì hoãn cho chu kỳ đó n Bởi vậy, datapath kiểu đường ống yêu cầu bộ nhớ lệnh và bộ nhớ dữ liệu tách rời (hoặc cache lệnh/cache dữ liệu tách rời) 2017 Kiến trúc máy tính 339 NKK-HUST Hazard dữ liệu n Lệnh phụ thuộc vào việc hoàn thành truy cập dữ liệu của lệnh trước đó add $s0, $t0, $t1 sub $t2, $s0, $t3 2017 Kiến trúc máy tính 340 NKK-HUST Forwarding (gửi vượt trước) n Sử dụng kết quả ngay sau khi nó được tính n Không đợi đến khi kết quả được lưu đến thanh ghi n Yêu cầu có đường kết nối thêm trong datapath 2017 Kiến trúc máy tính 341 NKK-HUST Hazard dữ liệu với lệnh load n Không phải luôn luôn có thể tránh trì hoãn bằng cách forwarding n Nếu giá trị chưa được tính khi cần thiết n Không thể chuyển ngược thời gian n Cần chèn bước trì hoãn (stall hay bubble) 2017 Kiến trúc máy tính 342 NKK-HUST Lập lịch mã để tránh trì hoãn n Thay đổi trình tự mã để tránh sử dụng kết quả load ở lệnh tiếp theo n Mã C: a = b + e; c = b + f; lw $t1, 0($t0) lw $t2, 4($t0) add $t3, $t1, $t2 sw $t3, 12($t0) lw $t4, 8($t0) add $t5, $t1, $t4 sw $t5, 16($t0) stall stall lw $t1, 0($t0) lw $t2, 4($t0) lw $t4, 8($t0) add $t3, $t1, $t2 sw $t3, 12($t0) add $t5, $t1, $t4 sw $t5, 16($t0) 11 cycles13 cycles 2017 Kiến trúc máy tính 343 NKK-HUST Hazard điều khiển n Rẽ nhánh xác định luồng điều khiển n Nhận lệnh tiếp theo phụ thuộc vào kết quả rẽ nhánh n Đường ống không thể luôn nhận đúng lệnh n Vẫn đang làm ở công đoạn giải mã lệnh (ID) của lệnh rẽ nhánh n Với đường ống của MIPS n Cần so sánh thanh ghi và tính địa chỉ đích sớm trong đường ống n Thêm phần cứng để thực hiện việc đó trong công đoạn ID 2017 Kiến trúc máy tính 344 NKK-HUST Trì hoãn khi rẽ nhánh n Đợi cho đến khi kết quả rẽ nhánh đã được xác định trước khi nhận lệnh tiếp theo 2017 Kiến trúc máy tính 345 NKK-HUST Dự đoán rẽ nhánh n Những đường ống dài hơn không thể sớm xác định dễ dàng kết quả rẽ nhánh n Cách trì hoãn không đáp ứng được n Dự đoán kết quả rẽ nhánh n Chỉ trì hoãn khi dự đoán là sai n Với MIPS n Có thể dự đoán rẽ nhánh không xẩy ra n Nhận lệnh ngay sau lệnh rẽ nhánh (không làm trễ) 2017 Kiến trúc máy tính 346 NKK-HUST MIPS với dự đoán rẽ nhánh không xẩy ra Prediction correct Prediction incorrect 2017 Kiến trúc máy tính 347 NKK-HUST Đặc điểm của đường ống n Kỹ thuật đường ống cải thiện hiệu năng bằng cách tăng số lệnh thực hiện n Thực hiện nhiều lệnh đồng thời n Mỗi lệnh có cùng thời gian thực hiện n Các dạng hazard: n Cấu trúc, dữ liệu, điều khiển n Thiết kế tập lệnh ảnh hưởng đến độ phức tạp của việc thực hiện đường ống 2017 Kiến trúc máy tính 348 NKK-HUST Tăng cường khả năng song song mức lệnh 2017 Kiến trúc máy tính 349 n Tăng số công đoạn của đường ống n Siêu vô hướng (Superscalar) Lệnh 1 Lệnh 4 Lệnh 3 Lệnh 2 Lệnh 5 Lệnh 6 Lệnh 1 Lệnh 4 Lệnh 3 Lệnh 2 Lệnh 6 Lệnh 5 NKK-HUST 6.4. Thiết kế bộ xử lý theo kiến trúc MIPS(*) Dành riêng cho Chương trình Tài năng và Chất lượng cao MIPS.pptx 2017 Kiến trúc máy tính 350 NKK-HUST Hết chương 6 2017 Kiến trúc máy tính 351
File đính kèm:
- bai_giang_kien_truc_may_tinh_chuong_6_bo_xu_ly_nguyen_kim_kh.pdf