Đơn vị điều khiển

Một phần của tài liệu Bài giảng kiến trúc máy tính it02 Đại học mở hà nội (Trang 41 - 48)

BÀI 2: ĐƠN VỊ XỬ LÝ TRUNG TÂM

2.3 Đơn vị điều khiển

2.3.1 Chu kỳ lệnh

Chức năng của máy tính là thực hiện chương trình. Thực hiện chương trình thực

Kiến trúc máy tính – Bài 2 Trang 20 chất là thực hiện một chuỗi lệnh máy kế tiếp nhau. Mỗi một lệnh máy được thực hiện trong một chu kỳ lệnh. Mỗi chu kỳ lệnh bao gồm các tiểu chu kỳ như chu kỳ nhập lệnh, chu

kỳ gián tiếp, chu kỳ thực hiện lệnh và chu kỳ ngắt, trong đó chu kỳ thực hiện lệnh bao gồm các giai đoạn giải mã lệnh, tạo địa chỉ toán hạng và nhập toán hạng (nếu cần), thực thi lệnh và ghi kết quả. Mỗi một tiểu chu kỳ lại bao gồm các thao tác nhỏ hơn, được gọi là vi thao tác. Vi thao tác là thao tác cơ bản nhất của đơn vị xử lý trung tâm. Đơn vị điều khiển

có chức năng gây ra chuỗi các vi thao tác này.

- Chu kỳ nhập lệnh

Chu kỳ nhập lệnh là tiểu chu kỳ đầu tiên trong chu kỳ lệnh. Lệnh được nhập trong chu kỳ này và từ nơi PC trỏ đến. Trong đơn vị xử trung tâm CPU (Hình 13) có 4 thanh ghi tham gia trong chu kỳ này là PC, MAR, MBR

và IR.

Chu kỳ nhập lệnh gồm ba bước và bốn vi thao tác, mỗi vi thao tác thực hiện chuyển một dữ liệu vào hoặc ra một thanh ghi.

t1: MAR ← PC

Kiến trúc máy tính – Bài 2 Trang 21 t2: MBR ← bộ nhớ

t3: PC ← PC + 1

IR ← MBR

Mỗi một vi thao tác được thực hiện trong một khoảng thời gian, xác định bằng một chu kỳ nhịp đồng hồ hệ thống, gọi là đơn vị thời gian hệ thống t. Ký hiệu t1, t2, t3 mô tả các đơn vị thời gian kế tiếp nhau. Trong chu kỳ nhập lệnh, nội dung PC được đưa ra MAR, xác định vị trí ô nhớ chứa lệnh. Nội dung ô nhớ chứa lệnh (lệnh máy) được nhập và chuyển đến thanh ghi lệnh IR của đơn

vị xử lý trung tâm. Đồng thời nội dung của con trỏ lệnh PC tăng thêm 1, trỏ đến ô chứa lệnh tiếp theo, chuẩn bị cho chu kỳ nhập lệnh tiếp theo.

- Chu kỳ gián tiếp

Giả định ta đang khảo sát việc thực hiện loại lệnh có một phần địa chỉ. Trong trường hợp này sẽ có hai kiểu xác định địa chỉ toán hạng có thể được dùng, là trực tiếp và gián tiếp. Nếu mã lệnh xác định kiểu địa chỉ gián tiếp thì chu kỳ gián tiếp sẽ được thực hiện. Chu kỳ gián tiếp sẽ gồm các vi thao tác sau:

t1: MAR ← (phần địa chỉ của lệnh) t2: MBR ← bộ nhớ

t3: MAR ← MBR

Trong chu kỳ gián tiếp, phần địa chỉ của lệnh được dùng để nhập địa chỉ của toán hạng. Sau khi địa chỉ toán hạng được nhập vào và chuyển đến MAR, toán hạng sẽ được nhập. Chu kỳ tiếp theo sẽ là chu kỳ thực hiện lệnh.

- Chu kỳ thực hiện lệnh

Chu kỳ thực hiện lệnh bao gồm nhiều vi thao tác như giải mã lệnh, tạo địa chỉ toán hạng, nhập toán hạng, thực thi lệnh và ghi kết quả. Trình tự và loại vi thao tác được thực hiện phụ thuộc vào từng lệnh cụ thể.

Kiến trúc máy tính – Bài 2 Trang 22 Sau đây là một vài ví dụ về các vi thao tác trong chu kỳ thực hiện lệnh. Ví dụ 1: ADD X Lệnh ADD X thực hiện cộng nội dung ô nhớ có địa chỉ X với ACC, kết quả chứa vào ACC, với giả thiết toán hạng thứ nhất đã được nhập vào ACC. Sau giải mã lệnh, các vi thao tác được tuần tự thực hiện như sau: t1: MAR ← (phần địa chỉ của lệnh - X)

t2: MBR ← M(MAR)

Ký pháp M(MAR) mô tả ô nhớ M cần truy nhập có địa chỉ xác định bởi MAR t3: ACC ← ACC + MBR

Ví dụ 2: STORE xxxx

Lệnh STORE xxx thực hiện sao lưu nội dung ACC ra ô nhớ có địa chỉ X. Sau giải mã lệnh, các vi thao tác được tuần tự được thực hiện như sau: t1: MAR ← (phần địa chỉ của lệnh - X)

t2: MBR ← ACC

t3: M(MAR) ← MBR

- Chu kỳ ngắt

Cuối chu kỳ thực hiện lệnh, đơn vị xử lý trung tâm (ĐVXLTT) luôn kiểm tra xem có sự kiện báo ngắt nào không. Nếu có báo ngắt thì chu kỳ ngắt được thực hiện. Trong chu kỳ ngắt một chuỗi các vi thao tác được thực hiện, nhằm bảo vệ địa chỉ trở về và chuyển sang chương trình con phục vụ ngắt.

t1: MBR ← PC

t2: MAR ← Địa chỉ của nơi cất giữ thông tin (địa chỉ đỉnh ngăn xếp) PC ← Địa chỉ chương trình con phục vụ ngắt

t3: Nơi cất giữ thông tin (đỉnh ngăn xếp) ← MBR

Sau vi thao tác ở bước t3 ĐVXLTT sẵn sàng bắt đầu chu kỳ nhập lệnh tiếp theo, từ chỗ

PC trỏ đến. Đây là nơi chứa lệnh đầu tiên của chương trình con phục vụ ngắt.

Kiến trúc máy tính – Bài 2 Trang 23

Không cho phép ngắt

Không Có Dưới đây là lưu đồ một chu kỳ lệnh (Hình 14)

Hình 14

2.3.2 Phân loại đơn vị điều khiển

Chức năng của đơn vị điều khiển (control unit - CU) là giải mã lệnh, sinh

ra chuỗi các tín hiệu điều khiển và điều phối hoạt động của các khối chức năng khác nhau trong máy tính, nhằm thực hiện được lệnh máy. Lệnh máy được thực hiện bởi một tập hợp nhiều nhóm vi thao tác. Mỗi một vi thao tác liên quan đến một tín hiệu điều khiển. Các tín hiệu điều khiển này được hoạt hoá theo một trình tự quy định để kích hoạt các vi thao tác. Ví dụ, việc chuyển

Bắt đầu

Nhập lệnh tiếp theo

Thực hiện lệnh

Kiểm tra báo ngắt

Chuyển đến chương trình phục vụ ngắt Cho phép ngắt

Kiến trúc máy tính – Bài 2 Trang 24 nội dung bộ đếm chương trình PC vào thanh ghi MAR là một vi thao tác. Việc tăng nội dung PC thêm 1 cũng là một vi thao tác. Mỗi một vi thao tác đều được kích hoạt bởi một tín hiệu điều khiển được phát ra từ đơn vị điều khiển

CU, bằng cách CU phát tín hiệu này ở mức tích cực lên đường truyền.

Có hai phương pháp thiết kế và tạo đơn vị điều khiển. Cách thứ nhất là xem đơn vị điều khiển như là một mạch logic tuần tự, nơi tạo ra chuỗi các tín hiệu điều khiển ở đầu ra của mạch logic tuần tự tương ứng với mã lệnh ở đầu vào mạch logic tuần tự (Hình 15).

Phương pháp thiết kế này được áp dụng khi mục tiêu là tốc độ thao tác của đơn vị điều khiển. Một khi đơn vị điều khiển đã được thiết kế và chế tạo thì khó có thể thay đổi hoặc thêm bớt chức năng của nó, vì nếu muốn thế thì phải thực hiện quy trình thiết kế lại

từ đầu. Chính vì vậy cách tiếp cận này được gọi là cứng hoá.

Một cách tiếp cận khác trong thiết kế đơn vị điều khiển là vi lập trình (microprogramming). Thành phần cốt lõi của đơn vị điều khiển được vi lập trình (microprogrammed control unit) là một bộ nhớ điều khiển (control memory - CM), trong đó chứa tập các vi chương trình được thiết kế để thực hiện hành vi của lệnh. Mỗi một lệnh máy làm kích hoạt một đoạn vi chương trình và từ đó các tín hiệu điều khiển tương ứng được tạo ra. Cách tiếp cận theo vi lập trình làm cho việc thiết kế đơn vị điều khiển có tính hệ thống hơn,

Thanh ghi lệnh IR

Mạch logic tuần tự Xung nhịp

Các tín hiệu

trạng thái

Các tín hiệu điều khiển

Kiến trúc máy tính – Bài 2 Trang 25 nhờ việc tổ chức tập các tín hiệu điều khiển thành các vi lệnh. Các tín hiệu điều khiển được nhúng (biểu hiện) trong các vi lệnh. Chuỗi các tín hiệu điều khiển được sinh ra từ vi chương trình. Với cách tiếp cận vi lập trình, việc thay đổi chức năng

và thiết kế của đơn vị điều khiển có thể được thực hiện khá dễ dàng bằng việc đổi nội dung của bộ nhớ điều khiển. Đơn vị điều khiển được vi lập trình cũng có nhược điểm là giá thành cao và có xu hướng chậm đi do cần có thời gian đọc vi lệnh từ bộ nhớ điều khiển.

2.3.3 Đơn vị điều khiển cứng hoá

Việc thiết kế đơn vị điều khiển CU cứng hóa khá phức tạp. Ở đây ta sẽ khảo sát quá trình thiết kế một đơn vị điều khiển CU cho đơn vị xử lý trung tâm sau (Hình 16).

Đơn vị xử lý trung tâm được thiết kế để thực hiện 10 lệnh (Bảng 2). Để đơn giản hóa việc thiết kế đơn vị điều khiển CU, các lệnh ADD, SUB, AND và OR được chọn là loại

Kiến trúc máy tính – Bài 2 Trang 26 không có phần địa chỉ tường minh. Các toán hạng của các lệnh ADD, SUB, AND và

OR được nhập vào trước bằng các lệnh LOAD và MOV1.

Bảng 2:

Loại lệnh Lệnh dạng ngôn

ngữ tượng trưng

Chức năng của lệnh

Chuyển dữ liệu LOAD X

Một phần của tài liệu Bài giảng kiến trúc máy tính it02 Đại học mở hà nội (Trang 41 - 48)

Tải bản đầy đủ (PDF)

(222 trang)