Thực thi lệnh và thực hiện chương trình

Một phần của tài liệu Giáo trình kiến trúc máy tính nguyễn trung đồng (Trang 77 - 78)

Chương IV Chương trình và thực hiện chương trình

4.2.Thực thi lệnh và thực hiện chương trình

3. Kiến trúc thanh ghi của CPU

4.2.Thực thi lệnh và thực hiện chương trình

Quá trình thực thi chương trình gồm việc thực hiện từng lệnh. Khoảng thời gian từ khi nhận lệnh cho đến khi thực hiện xong một lệnh được gọi là một chu kỳ lệnh. Độ dài của các chu kỳ này không nhất thiết như nhau và tùy thuộc vào bản chất của từng lệnh. Một chu kỳ lệnh xảy ra trên nhiều chu kỳ nhịp đồng hồ của CPU.

Chu kỳ lệnh được chia làm hai chu kỳ nhỏ: Đọc lệnh và thực thi lệnh. Đọc lệnh là một hoạt động của CPU đối với từng lệnh và là việc "nhặt (Fetching)" một lệnh từ một vị trí được xác định trước trong bộ nhớ, địa chỉ của ô nhớ chứa lệnh chính là nội dung thanh đếm chương trình PC. Thực thi lệnh có thể bao gồm nhiều hoạt động và tùy thuộc vào nội dung cụ thể của lệnh.

Việc thực thi chương trình chỉ dừng lại khi máy bị tắt, có một lỗi xảy ra hay một lệnh của chương trình làm ngừng hoạt động của máy tính, v.v.

Như vậy ta thấy rằng bên cạnh đơn vị số học-logic và đơn vị điều khiển, CPU phải lưu trữ tạm thời ở đâu đó các lệnh được đọc vào từ bộ nhớ. Các lệnh này sau đó phải được tách ra thành mã lệnh và địa chỉ của toán hạng, cuối cùng mã lệnh và địa chỉ của toán hạng cũng phải được lưu lại trong quá trình thực thi lệnh.

Mặt khác, sau khi thực hiện xong một lệnh, CPU cũng cần được thông báo rằng lệnh tiếp theo cần phải thực hiện được lưu ở địa chỉ nào trong bộ nhớ. Thông thường lệnh tiếp theo đó được lưu tại địa chỉ ngay sau địa chỉ của lệnh vừa được thực hiện. Điều này phù hựp hoàn toàn với nguyên lý kiến trúc do Von Neumann đề xuất. Tuy nhiên có những lệnh rẽ nhánh (BRANCH) hoặc lệnh nhảy (JUMP) lại chỉ dẫn CPU đến một địa chỉ khác. Do đó cũng cần phải có nơi lưu địa chỉ của lệnh tiếp theo mà CPU cần thực hiện.

Rõ ràng là để thực thi lệnh và chương trình, các máy tính số không thể thiếu được các thành phần sau đây:

Thanh ghi lệnh (Instruction Register – IR): Thanh ghi lệnh được

sử dụng để nạp các lệnh được lấy về từ bộ nhớ.

Con trỏ lệnh (Instruction Pointer – IP): Con trỏ lệnh là thanh

ghi chứa dữ liệu cần thiết để tạo nên địa chỉ của lệnh tiếp theo cần thực hiện theo tuần tự chương trình.

Trong kiến trúc của các máy tính trước kia, con trỏ lệnh được gọi là

trước kia chứa phần địa chỉ của lệnh vừa được nạp vào thanh ghi lệnh, do đó nó phải có độ dài (tức là số bit) bằng độ dài của phần địa chỉ trong một lệnh. Tương tự, thanh ghi lệnh thông thường có độ dài bằng độ dài của một từ lệnh trong bộ nhớ. Trong các máy tính ngày nay con trỏ lệnh có thể không chứa đầy đủ phần địa chỉ của lệnh vừa được nạp mà có thể chỉ chứa những thông tin căn bản làm cơ sở để tính toán địa chỉ lệnh tiếp theo.

Bộ đếm chương trình có thể được đặt lại giá trị 0 (nghĩa là thực hiện lệnh đầu tiên của chương trình) hoặc tăng lên một đơn vị (tức là trỏ vào lệnh tiếp theo nằm ở địa chỉ ngay sau đó). Trong trường hợp lệnh rẽ nhánh bộ đếm chương trình sẽ được nạp phần địa chỉ của lệnh.

Một phần của tài liệu Giáo trình kiến trúc máy tính nguyễn trung đồng (Trang 77 - 78)