Chương 3 - Tập lệnh máy tính
...

#1 - Khái niệm lệnh máy tính
...

  • Nếu coi phần mạch điện tử của CPU là "phần xác" thì tập lệnh (Instruction Set) chính là "phần hồn" của bộ não máy tính

  • Lệnh máy tính (Computer Instruction) là một từ nhị nhân (binary word) được gán một nhiệm vụ cụ thể, bao gồm:

    • Nhóm lệnh vận chuyển dữ liệu (Data Movement)
    • Nhóm lệnh tính toán (Computational)
    • Nhóm các lệnh điều kiện và rẽ nhánh (Conditional and branching)
    • Một số lệnh khác...
  • Mỗi lệnh có thể thực hiện theo 4 giai đoạn

    1. Đọc lệnh (Instruction fetch - IF)
    2. Giải mã (Instruction decode - ID)
    3. Thực hiện lệnh (Instruction execution - EX)
    4. Lưu kết quả (Write back - WB)
  • Chu kỳ thực hiện lệnh (Instruction execution recycle) được định nghĩa là khoảng thời gian mà CPU thực hiện xong một lệnh. Cụ thể một chu kỳ thực hiện lệnh có thể gồm các thành phần sau:

    • Chu kỳ đọc lệnh
    • Chu kỳ đọc bộ nhớ
    • Chu kỳ ghi bộ nhớ
    • Chu kỳ đọc thiết bị ngoại vi
    • Chu kỳ ghi thiết bị ngoại vi

Một lệnh máy tính gồm có 2 phần chính: Mã lệnh (Opcode - Operation code) và địa chỉ các các toán hạng (Addresses of Operands). Mỗi lệnh có một mã lệnh riêng và được biểu diễn bằng một số bit

#2 - Các dạng địa chỉ / Toán hạng
...

  • Toán hạng dạng 3 địa chỉ [1]
  • Toán hạng dạng 2 địa chỉ
  • Toán hạng dạng 1 địa chỉ: sử dụng thanh ghi tích lũy
  • Toán hạng dạng 1,5 địa chỉ: là dạng toán hạn hỗn hợp giữa ô nhớ và thanh ghi
  • Toán hạng dạng 0 địa chỉ: là dạng toán hạng thường được sử dụng trong các lệnh thao tác với ngăn xếp (PUSH và POP)

2.1 - Các chế độ địa chỉ
...

  • Chế độ địa chỉ (Addressing modes) là phương thức hoặc cách thực CPU tổ chức các toán hạng của lệnh
    1. Tức thì (Immediate): Sử dụng giá trị hằng của toán hạng nguồn
    2. Trực tiếp (Direct): Sử dụng 1 hằng để biểu diễn địa chỉ của một ô nhớ
    3. Gián tiếp (Indirect): Sử dụng 1 thanh ghi hoặc 1 ô nhớ để lưu địa chỉ một ô nhớ hoặc một toán hạng
      • Chế độ địa chỉ gián tiếp qua thanh ghi: địa chỉ của ô nhớ được lưu trữ trong thanh ghi
      • Chế độ địa chỉ gián tiếp qua ô nhớ: địa chỉ của ô nhớ được lưu trong 1 ô nhớ khác
    4. Chỉ số (Indexed): Địa chỉ của một toán hạng được tạo thành bởi phép cộng giữa 1 hằng và thanh ghi chỉ số
    5. Tương đối (Relative): Địa chỉ của một toán hạng được tạo thành bởi phép cộng giữa 1 hằng và bộ đếm chương trình PC

#3 - Một số dạng lệnh thông dụng
...

3.1 - Các lệnh vận chuyển dữ liệu
...

3.2 - Các lệnh toán học và logic
...

3.3 - Các lệnh điều khiển chương trình
...

3.4 - Các lệnh vào ra
...

  • Các lệnh vào ra (I/O instructions) được sử dụng để vận chuyển dữ liệu giữa máy tính và các thiết bị ngoại vi
  • Các thiết bị ngoại vi giao tiếp với máy tính thông qua các cổng vào ra chuyên dụng (IO dedicated ports)
  • Có 2 lệnh vào ra cơ bản
    • INPUT
    • OUTPUT

#4 - Cơ chế ống lệnh (PIPELINE)
...

  • Cơ chế ống lệnh (PIPELINE) là cơ chế thực hiện xen kẽ các lệnh của chương tình, cho phép thực hiện đồng thời nhiều lệnh, giảm thời gian trung bình thực hiện mỗi lệnh và tăng hiệu năng xử lý lệnh của CPU

  • Với cơ chế thực hiện PIPELINE, có nhiều lệnh đồng thời được thực hiện gối nhau trong CPU và hầu hết các đơn vị chức năng của CPU liên tục tham gia vào quá trình xử lý lệnh

  • Các vấn đề của cơ chế ống lệnh

    • Vấn đề xung đột tài nguyên
      • Vấn đề xung đột tài nguyên xảy ra khi hệ thống không cung cấp đủ tài nguyên phần cứng phục vụ CPU thực hiện đồng thời nhiều lệnh trong cơ chế ống lệnh
      • Hai xung đột tài nguyên thường gặp nhất là xung đột truy cập bộ nhớ và xung đột truy cập thanh ghi
      • Giải pháp: nâng cao năng lực phục vụ tài nguyên phần cứng, sử dụng bộ nhớ cache, tăng số lượng thanh ghi vật lý
    • Vấn đề tranh chấp dữ liệu
    • Vấn đề nảy sinh do các lệnh rẽ nhánh

  1. M[..] : Quy ước là phép tham chiếu nội dung ô nhớ↩︎