Chương 2 - Khối xử lí trung tâm
...

#1 - Sơ đồ khối tổng quát và chu trình xử lí lệnh
...

  • Các thành phần của CPU theo sơ đồ này bao gồm
    • Bộ điều khiển (Control Unit - CU)
    • Bộ tính toán số học và logic (Arithmetic and Logic Unit)
    • Bus trong CPU (CPU Internal Bus)
    • Các thanh ghi của CPU
      • Thanh ghi tích lũy A (Accummulator)
      • Bộ đếm chương trình PC (Program Counter)
      • Thanh ghi lệnh IR (Instruction Register)
      • Thanh ghi địa chỉ bộ nhớ MAR (Memory Address Register)
      • Thành ghi đệm dữ liệu MBR (Memory Buffer Register)
      • Các thành ghi tạm thời Y và Z
      • Thanh ghi cờ FR (Flag Register)

Khoảng thời gian để CPU thực hiện xong một lệnh kể từ khi CPU cấp phát tín hiệu địa chỉ ô nhớ chứa lệnh đến khi nó hoàn tất việc thực hiện lệnh được gọi là chu kỳ lệnh (Instrution Cycle)

  • Chu trình xử lí lệnh
    1. Khi một chương trình được kích hoạt, hệ điều hành (OS - Operating System) nạp mã chương trình vào bộ nhớ trong[1]
    2. Địa chỉ của ô nhớ chứa lệnh của chương trình được nạp vào bộ đếm chương trình (Program Counter)
    3. Địa chỉ ô nhớ chứa lệnh từ PC được chuyển đến bus địa chỉ thông qua thanh ghi MAR
    4. Bus địa chỉ chuyển địa chỉ ô nhớ đến đơn vị quản lý bộ nhớ (MMU - Memory Management Unit)
    5. MMU chọn ra ô nhớ và thực hiện lệnh đọc nội dung ô nhớ để chuyển tiếp đến thanh ghi MBR
    6. MBR chuyển lệnh đến thành ghi lệnh IR; IR chuyển lệnh vào bộ điều khiển CU
    7. CU giải mã lệnh và sinh ra các tín hiệu điều khiển cần thiết, yêu cầu các bộ phận chức năng của CPU, như ALU thực hiện lệnh
    8. Giá trị địa chỉ trong bộ đến PC được tăng lên 1 đơn vị lệnh và nó trỏ đến địa chỉ của ô nhớ chứa lệnh tiếp theo

#2 - Các thanh ghi
...

Thanh ghi (Registers) là các ô nhớ bên trong CPU, có nhiệm vụ lưu trữ tạm thời lệnh và dữ liệu cho CPU xử lý

2.1 - Thanh tích lũy A
...

  • Thanh tích lũy A (Accummulator) là một trong những thanh ghi quan trọng nhất của CPU
  • Thanh ghi A được sử dụng để lưu toán hạng vào và chứa kết quả ra

2.2 - Bộ đếm chương trình PC
...

  • Bộ đếm chương trình PC (Program Counter) hoặc còn được gọi là con trỏ lệnh (IP - Instruction pointer) chứa địa chỉ của ô nhớ chứa lệnh kế tiếp được thực hiện

2.3 - Thanh ghi lệnh IR
...

  • Thanh ghi lệnh IR (Instruction register) lưu lệnh đang thực hiện. IR nhận lệnh từ MBR và chuyển tiếp lệnh đến CU giải mã và thực hiện

2.4 - Các thanh ghi MAR và MBR
...

  • MAR là thanh ghi địa chỉ bộ nhớ (Memory address register) có chức năng nhận địa chỉ ô nhớ chứa lệnh tiếp theo từ PC và chuyển tiếp ra bus địa chỉ
  • MBR là thanh ghi đệm dữ liệu (Memory buffer register) nhận lệnh từ bus địa chỉ và chuyển tiếp lệnh đến IR thông qua bus trong CPU[2]

2.5 - Các thanh ghi tạm thời
...

  • Các thanh ghi tạm thời được sử dụng để chứa toán hạng đầu vào và kết quả đầu ra
    • Hỗ trợ xử lí song song (thực hiện nhiều lệnh cùng một thời điểm)
    • Hỗ trợ thực hiện lệnh theo cơ chế thực hiện tiên tiến kiểu không theo trật tự (OOO - Out Of Order execution)
Out of order execution

Cơ chế Out of order execution là một kỹ thuật tối ưu hóa hiệu năng của CPU, cho phép CPU thực hiện các lệnh không theo thứ tự xuất hiện trong chương trình, mà theo thứ tự tối ưu nhất cho việc sử dụng các tài nguyên bên trong. Các thanh ghi tạm thời trong CPU là những thanh ghi được sử dụng để lưu trữ các giá trị trung gian trong quá trình tính toán, hoặc để lưu trữ các kết quả tạm thời trước khi ghi vào thanh ghi chính.

  • CPU sẽ tìm nạp các lệnh từ bộ nhớ và đưa vào một bộ đệm lệnh, nơi các lệnh được giải mã và phân loại theo loại (số học, logic, nhảy, ghi, đọc, v.v.).
  • CPU sẽ sắp xếp lại thứ tự của các lệnh trong bộ đệm lệnh, dựa trên các yếu tố như sự phụ thuộc dữ liệu, sự sẵn có của các đơn vị thực thi, sự trễ của các lệnh, v.v. Mục tiêu là giảm thiểu thời gian chờ đợi và tăng khả năng song song hóa của các lệnh.
  • CPU sẽ gửi các lệnh đã được sắp xếp lại đến các đơn vị thực thi tương ứng, nơi các lệnh sẽ được thực hiện và kết quả sẽ được lưu trữ trong các thanh ghi tạm thời. Các thanh ghi tạm thời này có thể được sử dụng cho các lệnh tiếp theo nếu cần, hoặc để lưu trữ các kết quả chưa được ghi vào thanh ghi chính.
  • CPU sẽ ghi lại các kết quả từ các thanh ghi tạm thời vào các thanh ghi chính, theo thứ tự xuất hiện ban đầu của các lệnh trong chương trình. Điều này đảm bảo tính nhất quán và đúng đắn của chương trình, bất kể thứ tự thực thi của các lệnh.

Cơ chế Out of order execution giúp CPU tận dụng tối đa các tài nguyên bên trong, giảm thiểu thời gian rảnh rỗi, và tăng tốc độ xử lý. Tuy nhiên, cơ chế này cũng đòi hỏi CPU phải có nhiều phần cứng phức tạp hơn, như bộ đệm lệnh, bộ sắp xếp lại, các thanh ghi tạm thời, v.v.

2.6 - Thanh ghi trạng thái FR
...

  • Thanh ghi trạng thái (SR - Status Register) hoặc thanh ghi cờ (FR - Flag Register) giúp lưu trạng thái của kết quả phép tính
  • Có hai loại bit cờ: cờ trạng thái và cờ điều khiển
  • Ý nghĩa của các loại cờ
    • ZF: Cờ Zero, ZF=1 nếu kết quả=0 và ZF=0 nếu kết quả<>0
    • SF: Cờ dấu, SF=1 nếu kết quả âm và SF=0 nếu kết quả dương
    • CF: Cờ nhớ, CF=1 nếu có nhớ/mượn, CF=0 trong trường hợp khác
    • AF: Cờ nhớ phụ, AF=1 nếu có nhớ/mượn ở nửa thấp của toán hạng
    • OF: Cờ tràn, OF=1 nếu xảy ra tràn, OF=0 trong trường hợp khác
    • PF: Cờ chẵn lẻ, PF=1 nếu tổng số bit 1 trong kết quả là lẻ và PF=0 nếu tổng số bit 1 trong kết quả là chẵn
    • IF: Cờ ngắt, IF=1: cho phép ngắt, IF=0: cấm ngắt

#3 - Khối điều khiển CU
...

  • Khối điều khiển (Control Unit – CU) là một trong các khối quan trọng nhất của CPU
  • CU đảm nhiệm việc điều khiển toàn bộ các hoạt động của CPU theo xung nhịp đồng hồ

#4 - Khối số học và logic
...

  • Khối số học và logic (ALU) đảm nhiệm chức năng tính toán trong CPU
    • Bộ cộng (ADD), bộ trừ (SUB), bộ nhân (MUL), bộ chia (DIV)
    • Các bộ dịch (SHIFT) và quay (ROTATE)
    • Bộ phủ định (NOT), bộ và (AND), bộ hoặc (OR) và bộ hoặc loại trừ (XOR)


  1. Địa chỉ ô nhớ chứa lệnh là địa chỉ của ô nhớ trong bộ nhớ chính (RAM) mà CPU sẽ đọc lệnh tiếp theo. Địa chỉ này có thể được lưu trữ trong một thanh ghi đặc biệt gọi là PC (Program counter) hoặc IC (Instruction counter). PC sẽ tăng lên sau mỗi lệnh được thực hiện, để trỏ đến lệnh kế tiếp↩︎
  2. Bộ nhớ đệm là một loại bộ nhớ tạm thời, có tốc độ truy xuất cao hơn so với bộ nhớ chính (RAM) hoặc ổ đĩa cứng (HDD/SSD). Bộ nhớ đệm giúp việc đọc ghi nhanh hơn bằng cách lưu trữ những dữ liệu hay được sử dụng lại, giảm thiểu thời gian truy xuất từ bộ nhớ chính hoặc ổ đĩa↩︎