Các bước xử lý của CPU

Dù CPU được thiết kế như thế nào thì hoạt động cơ bản của hầu hết CPU là như nhau, đó là thực hiện một chuỗi các lệnh đã được lưu trữ gọi là chương trình. Các lệnh thực hiện được lưu trữ trong bộ nhớ máy tính. Gần như tất cả các CPU đều giám sát các bước tìm nạp, giãi mã và thực hiện trong hoạt động của nó, được gọi là chu kỳ lệnh – instruction cycle.

CPU thực hiện bốn bước cơ bản;

Hình Sơ đồ mô tả các bước xử lý của CPU và quá trình lưu kết quả

Tìm nạp: Mỗi lệnh được lưu trữ trong bộ nhớ và có địa chỉ riêng. Bộ xử lý lấy số địa chỉ này từ bộ đếm chương trình, bộ đếm này chịu trách nhiệm theo dõi các lệnh nào mà CPU sẽ thực thi tiếp theo.

Cụ thể hơn, bước đầu tiên là việc lấy ra một lệnh (được đại diện bởi một số hoặc một dãy số) từ bộ nhớ chương trình. Vị trí của lệnh (địa chỉ) trong bộ nhớ chương trình được xác định bởi bộ đếm chương trình (program counter), nơi lưu trữ một số để xác định địa chỉ của lệnh tiếp theo sẽ được tìm nạp. Sau khi lệnh được tìm nạp, máy tính sẽ được tăng lên theo chiều dài của lệnh để nó sẽ chứa địa chỉ của lệnh kế tiếp trong chuỗi lệnh. Thông thường, lệnh được lấy ra từ bộ nhớ tương đối chậm, làm cho CPU bị đứng lại trong khi chờ đợi cho các lệnh được trả về. Vấn đề này phần lớn được đề cập trong bộ vi xử lý hiện đại bằng các bộ nhớ cache và các cấu trúc đường ống.

Giải mã: Lệnh mà CPU lấy từ bộ nhớ xác định CPU sẽ làm gì? Trong bước giải mã, sẽ được thực hiện bởi các mạch được gọi là bộ giải mã (instruction decoder), lệnh được chuyển đổi thành các tín hiệu điều khiển các bộ phận khác của CPU.

Cách thức diễn giải lệnh được xác định bởi “instruction set architecture” (ISA) của CPU. Thông thường một nhóm bit (tức là “trường” – filed) trong lệnh, gọi là opcode, cho biết hoạt động nào được thực hiện, trong khi các trường còn lại cung cấp thông tin bổ sung cần thiết cho hoạt động, chẳng hạn như toán hạng. Các toán hạng đó có thể được chỉ định bởi một giá trị không đổi, hoặc là vị trí của một giá trị (có thể là thanh ghi hoặc địa chỉ bộ nhớ).

Trong một số thiết kế CPU, bộ giải mã chỉ thị thực hiện như là một mạch điện không thể thay thế. Trong khi một số khác, một microprogram được sử dụng để dịch các lệnh thành tập hợp các tín hiệu cấu hình CPU được áp dụng tuần tự qua nhiều tín hiệu xung clock. Trong một số trường hợp, bộ nhớ lưu trữ microprogram là ghi lại được, làm cho nó có thể thay đổi cách mà CPU giải mã các lệnh.

Thực thi: Sau khi lấy mã và giải mã, bước thực thi được tiến hành. Tùy thuộc vào kiến trúc CPU, điều này có thể bao gồm một hành động hoặc một chuỗi hành động. Trong mỗi hành động, các bộ phận khác nhau của CPU được kết nối lại với nhau để chúng có thể thực hiện một phần hoặc toàn bộ hoạt động mong muốn, sau đó lệnh được hoàn thành, điển hình là đáp ứng xung clock. Các kết quả được ghi vào thanh ghi nội của CPU để truy cập nhanh bằng các lệnh tiếp theo. Trong các trường hợp khác, kết quả có thể được ghi vào bộ nhớ chính nhưng chậm hơn, bù lại chúng có chi phí thấp và dung lượng cao hơn.

Ví dụ, nếu một lệnh bổ sung được thực hiện, các đầu vào ALU được kết nối đến một cặp nguồn toán hạng, ALU được cấu hình để thực hiện thao tác bổ sung sao cho tổng của nó sẽ xuất hiện ở đầu ra. Đầu ra của ALU được kết nối với bộ nhớ (thanh ghi hoặc bộ nhớ) sẽ nhận được kết quả của tổng. Khi xung clock xảy ra, tổng sẽ được chuyển sang lưu trữ, nếu tổng quá lớn (nghĩa là lớn hơn kích thước đầu ra của ALU), một cờ tràn sẽ được bật lên.

Lưu trữ: CPU phải đưa ra phản hồi sau khi thực hiện một lệnh. Hình H.2

  • 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 à Lưu trữ kết quả trong thanh ghi đích.