Giáo trình Kiến trúc máy tính - Chương 4: Bộ xử lý trung tâm (CPU)

pdf 67 trang huongle 5020
Bạn đang xem 20 trang mẫu của tài liệu "Giáo trình Kiến trúc máy tính - Chương 4: Bộ xử lý trung tâm (CPU)", để 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:

  • pdfgiao_trinh_kien_truc_may_tinh_chuong_4_bo_xu_ly_trung_tam_cp.pdf

Nội dung text: Giáo trình Kiến trúc máy tính - Chương 4: Bộ xử lý trung tâm (CPU)

  1. Kiến trúc máy tính Chương 4 BỘ XỬ LÝ TRUNG TÂM (CPU) 1
  2. Nội dung chương 4  Cấu trúc chung của bộ xử lý  Kh ối điều khiển  Kh ối số học & logic  Ho?t d?ng c?a CPU  RISC & CISC Phan Trung Kiên 2
  3. Sơ đồ cấu trúc cơ bản của CPU Phan Trung Kiên 3
  4. Cấu trúc chung của bộ xử lý (BXL)  Cấu trúc  Đơ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 thanh ghi (Registers) Phan Trung Kiên 4
  5. Cấu trúc chung của bộ xử lý (BXL)  Chức năng  Điều khiển toàn bộ hoạt động của hệ thống  Xử lý dữ liệu  Nguyên tắc ho ạt động  BXL hoạt động dựa theo chương trình nằm sẵn trong bộ nhớ Phan Trung Kiên 5
  6. Cấu trúc chung của bộ xử lý (BXL)  Các nhiệm vụ của BXL  Nhận lệnh: nhận lệnh từ bộ nhớ  Giải mã lệnh: Giải mã lệnh được nhận vào để biết lệnh làm gì  Nhận dữ liệu: Lệnh có thể yêu cầu nhận dữ liệu từ bên ngoài vào  Xử lý dữ liệu: Lệnh có thể yêu cầu thực hiện một phép toán nào đó  Ghi dữ liệu: Lệnh có thể yêu cầu cất kết quả ra ngoài Ngoài ra, trong quá trình thực hiện chươ ng trình còn nhận các yêu cầu từ bên ngoài, xử lý các yêu cầu đó Phan Trung Kiên 6
  7. BXL với bus hệ thống Phan Trung Kiên 7
  8. Cấu trúc bên trong của BXL Phan Trung Kiên 8
  9. Phân tích nhiệm vụ của BXL  Nhận lệnh (Fetch Instructions - FI)  Địa chỉ của lệnh cần thực hiện nằm trong bộ đếm ch ương trình (PC - Program Counter), được đưa qua bộ đệm địa chỉ, qua bus địa chỉ để tìm ra ngăn nhớ chứa lệnh  Tiếp theo, BXL phát ra tín hiệu đọc ngăn nhớ vừa tìm đượ c  Nội dung của ngăn nhớ được chuyển qua bus dữ liệu và đưa đến thanh ghi lệnh (Instruction Reg.) Phan Trung Kiên 9
  10. Phân tích nhiệm vụ của BXL  Giải mã lệnh (Interpret Instructions - II)  Lệnh từ thanh ghi lệnh được đưa đến kh ối điều khiển  Tạ i đây, lệnh được giải mã để xác định thao tác mà lệnh yêu cầu  Khi đó, khối điều khiển sẽ phát ra tín hiệu điều khiển tươ ng ứng với lệnh đó. Phan Trung Kiên 10
  11. Phân tích nhiệm vụ của BXL  Nhận dữ liệu (Fetch Data - FD)  BXL phát ra địa chỉ của ngăn nhớ/cổng vào ra chứa dữ liệu cần nhận  BXL phát ra tín hiệu điều khiển đọc ngăn nhớ/cổng vào ra tương ứng  Dữ liệu được chuyển qua bus dữ liệu đưa vào tập thanh ghi bên trong Phan Trung Kiên 11
  12. Phân tích nhiệm vụ của BXL  Xử lý dữ liệu (Process Data - PD)  Dữ li ệu đượ c chuyển từ các thanh ghi vào ALU  ALU s ẽ thực hiện các phép toán dưới sự điều khiển củ a khối đi ều khiển  Kết quả phép toán được cất tạm thời vào thanh ghi dữ liệu Phan Trung Kiên 12
  13. Khối điều khiển (CU)  Chức năng  ĐK nhận lệnh tiếp theo từ bộ nhớ, đưa vào thanh ghi lệnh  Tăng nội dung của PC để trỏ sang lệnh tiếp theo  Gi ải mã lệnh nằm trong thanh ghi lệnh để 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 tín hiệu yêu cầu từ bên ngoài, xử lý các tín hiệu đó. Phan Trung Kiên 13
  14. Mô hình kết nối KĐK Thanh ghi lệnh Các t/h điều khiển bên trong BXL Các cờ . . . Các t/h điều khiển từ bus hệ thống Khối điều Các t/h điều khiển khiển đến bus hệ thống Xung nhịp Bus hệ thống Phan Trung Kiên 14
  15. Các tín hiệu đưa đến KĐK  Nhịp: tín hiệu đồng hồ từ mạch tạo nhịp bên ngoài: T0  T0 là chu kỳ của xung nhịp  Mỗi thao tác của BXL cần k.T0 , k ? N  Tần số xung đồng hồ: f0 = 1/T0  Ví dụ: máy tính dùng BXL có tốc độ 5GHz 9 9 Ta có: f0 = 5GHz = 5*10 Hz ? T0 = 1/f0 = 1/(5*10 ) = 0.2 ns  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 BXL  Các tín hiệu điều khiển từ bus điều khiển yêu cầu BXL Phan Trung Kiên 15
  16. Các tín hiệu phát ra từ KĐK  Các tín hiệu điều khiển bên trong BXL:  Đ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 BXL:  Điều khiển bộ nhớ  Đi ều khiển các modul vào-ra Phan Trung Kiên 16
  17. Các phương pháp thiết kế KĐK  KĐK vi chương trình (Microprogrammed Control Unit)  KĐK nối kết cứng (Hardwired Control Unit) Phan Trung Kiên 17
  18. Đơn vị điều khiển vi chương trình Phan Trung Kiên 18
  19. Đơn vị điều khiển vi chương trình  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 Phan Trung Kiên 19
  20. Đơn vị điều khiển nối kết cứng Phan Trung Kiên 20
  21. Đơn vị điều khiển nối kết cứng  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 Phan Trung Kiên 21
  22. Khối số học và logic (ALU)  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, NOT, XOR, dịch bit, quay bit Phan Trung Kiên 22
  23. Mô hình kết nối ALU Dữ liệu vào từ các thanh ghi Dữ liệu ra đến các thanh ghi ALU T/h điều khiển từ KĐK Thanh ghi cờ Phan Trung Kiên 23
  24. Hoạt động của CPU  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 Phan Trung Kiên 24
  25. Giản đồ trạng thái của chu kỳ lệnh Nhận toán Cất toán Nhận lệnh hạng hạng Nhiều Nhiều toán kết hạng quả Tính toán Giải mã Tính toán Tính toán Xử lý dữ Kiểm tra địa chỉ thao tác địa chỉ địa chỉ Ngắt liệu ngắt lệnh lệnh toán hạng toán hạng Kết thúc lênh, DL dạng Không nhận lệnh xâu hoặc có ngắt tiếp theo vectơ Phan Trung Kiên 25
  26. 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 Phan Trung Kiên 26
  27. Sơ đồ mô tả quá trình nhận lệnh Phan Trung Kiên 27
  28. 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 Phan Trung Kiên 28
  29. 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 Phan Trung Kiên 29
  30. 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 Phan Trung Kiên 30
  31. Sơ đồ tả nhận toán hạng gián tiếp Phan Trung Kiên 31
  32. 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)  Phan Trung Kiên 32
  33. 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 Phan Trung Kiên 33
  34. Sơ đồ mô tả quá trình ghi toán hạng Phan Trung Kiên 34
  35. 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 Phan Trung Kiên 35
  36. Sơ đồ mô tả chu trình ngắt Phan Trung Kiên 36
  37. Đườ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) Phan Trung Kiên 37
  38. Biểu đồ thời gian của đường ống lệnh Phan Trung Kiên 38
  39. Các xung đột của đường ống lệch:  Xung đột có cấu trúc: do nhiều công đoạn dùng chung 1 tài nguyên  Xung đột dữ liệu: lệnh sau sử dụng kết quả của lệnh trước  Xung đột điều khiển: do rẽ nhánh gây ra Phan Trung Kiên 39
  40. Rẽ nhánh trong Pipelining Phan Trung Kiên 40
  41. Các kỹ thuật tiên tiến của bộ xử lý  Cấu trúc chung của các bộ xử lý tiên tiến  Các kiến trúc song song mức lệnh  Ki ến trúc RISC Phan Trung Kiên 41
  42. Cấu trúc chung của các bộ xử lý tiên tiến Phan Trung Kiên 42
  43. Các đơn vị xử lý dữ liệu  Các đơn vị số nguyên  Các đơn vị số dấ u phẩy động  Các đơn vị ch ức năng đặc biệt  Đơ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 Phan Trung Kiên 43
  44. 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 Phan Trung Kiên 44
  45. Đơn vị quản lý bộ nhớ (MMU)  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ớ Phan Trung Kiên 45
  46. 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) Phan Trung Kiên 46
  47. Superpipeline Phan Trung Kiên 47
  48. Superscalar Phan Trung Kiên 48
  49. VLIW (Very Long Instruction Word) Phan Trung Kiên 49
  50. RISC  CISC và RISC  CISC Complex Instruction Set Computer:  Máy tính với tập lệnh phức tạp  Các bộ xử lý truyền thống: x86, 680x0  RISC Reduced Instruction Set Computer:  Máy tính với tập lệnh thu gọn  SunSPARC, Power PC,  RISC đối nghịch với CISC Phan Trung Kiên 50
  51. Các đặc trưng của RISC  Số lượng lệnh ít  Hầ u hết các lệnh truy nhập toán hạng ở các thanh ghi  Truy nhập bộ nhớ bằng các lệnh LOAD/STORE  Th ời gian thực hi ện l ệnh là một chu kỳ máy  Các lệnh có độ dài cố định (32 bit) Phan Trung Kiên 51
  52. Các đặc trưng của RISC  Số lượng khuôn dạng lệnh là ít (<=4)  CPU có tập thanh ghi lớn  Có ít mode địa chỉ (<=4)  Hỗ trợ các thao tác c ủa ngôn ngữ bậc cao  Đề u đượ c thiết kế kiểu pipeline lệnh Phan Trung Kiên 52
  53. Cửa sổ thanh ghi Phan Trung Kiên 53
  54. Kiến trúc Intel  Kiến trúc 4-bit: 4004  Ki ến trúc 8-bit: 8008,8080,8085  Ki ến trúc 16-bit: 8086/8088,80186,80286  Ki ến trúc 32-bit: 80386, 80486, Pentium,Pentium II, Celeron, Pentium III, Pentium 4  Kiến trúc 64-bit: Itanium, Core 2 Duo Phan Trung Kiên 54
  55. Kiến trúc 16-bit (IA-16)  Các thanh ghi bên trong: 16-bit  Xử lý các phép toán số nguyên với 16-bit  Qu ản lý bộ nhớ theo đoạn 64KBytes  M ở đầu cho dòng máy tính IBM-PC Phan Trung Kiên 55
  56. Kiến trúc 32-bit (IA-32)  Các thanh ghi bên trong: 32-bit  Xử lý các phép toán số nguyên với 32-bit  Có ba chế độ làm việc:  Chế độ 8086 thự c (Real 8086 mode): làm việc như một bộ xử lý 8086  Chế độ 8086 ảo (Virtual 8086 mode): làm việc như nhiều bộ xử lý 8086 (đa nhiệm 16-bit)  Chế độ bảo vệ (Protected mode)  Đa nhiệm 32-bit  Quản lý bộ nhớảo  Xử lý các phép toán số dấu phẩy động (từ 80486) Phan Trung Kiên 56
  57. Kiến trúc 64-bit (IA-64)  Các thanh ghi bên trong: 64-bit  Xử lý các phép toán số nguyên với 64-bit  Xử lý các phép toán số dấ u phẩy động  Không tương thích phần cứng với các bộ xử lý trướ c đó  Tương thích phần mềm bằng cách giả lập môi trườ ng Phan Trung Kiên 57
  58. Sù ph¸t triÓn cña BXL hä Intel Year Chip L transistors 1971 4004 10µm 2.3K 1974 8080 6µm 6.0K 1976 8088 3µm 29K 1982 80286 1.5µm 134K 1985 80386 1.5µm 275K 1989 80486 0.8µm 1.2M 1993 Pentium® 0.8µm 3.1M 1995 Pentium® Pro 0.6µm 15.5M 1999 Mobile PII 0.25µm 27.4 2000 Pentium® 4 0.18µm 42M 2002 Pentium® 4 (N) 0.13µm 55M 2003 Itanium® 2 (M) 0.13µm 410M Phan Trung Kiên 58
  59. Minh häa mét sè BXL Intel 8088 Intel 4004 - 1970s (LSI Microprocessor) (First Microprocessor) Phan Trung Kiên 59
  60. Minh häa mét sè BXL Pentium® III PowerPC 7400 (G4) 28M transistors / 733MHz-1Gz / 13-26W 6.5M transistors / 450MHz / 8-10W L=0.25µm shrunk to L=0.18µm L=0.15µm Phan Trung Kiên 60
  61. Minh häa mét sè BXL Co l¹i Pentium® 4 Pentium® 4 “Northwood” 42M transistors / 1.3-1.8GHz / 49-55W 55M transistors / 2-2.5GHz L=0.18µm L=0.13µm Area=131mm 2 Phan Trung Kiên 61
  62. Minh häa mét sè BXL PowerPC® 940 (G5) 58M transistors / 2GHz / 97W L=0.13µm Area=118mm 2 Image courtesy International Business Machines Intel Itanium® 2 All Rights Reserved 410M transistors / 1.3GHz / 130W L=0.13µm Area=374mm2 Image source: Intel Corporation www.intel.com Phan Trung Kiên 62
  63. Minh häa mét sè BXL Phan Trung Kiên 63
  64. Phan Trung Kiên 64
  65. Phan Trung Kiên 65
  66. Phan Trung Kiên 66
  67. Phan Trung Kiên 67