3.0. Mở đầu

(cid:122) Vi tác vụ: tác vụ xử lý dữ liệu lưu trên thanh ghi. (cid:122) Kết quả là thay thế dữ liệu đã lưu hoặc chuyển sang

Chương 3. Kiến trúc tập lệnh

VI TÁC VỤ

thanh ghi khác (cid:122) Có 4 loại vi tác vụ: (cid:122) Vi tác vụ thanh ghi

(cid:131) chuyển thông tin từ thanh ghi này sang th/ghi khác

(cid:122) Vi tác vụ số học

(cid:131) Thực hiện phép tính số học với dữ liệu số trên thanh ghi

(cid:122) Vi tác vụ luận lý

(cid:131) Thực hiện các tác vụ thao tác bit với dữ liệu phi số trên thanh ghi

(cid:122) Vi tác vụ dịch

(cid:131) Thực hiện các tác vụ dịch dữ liệu trên thanh ghi

3.1. Vi tác vụ thanh ghi

Chuyển thông tin nhị phân từ thanh ghi này sang th/ghi khác. (cid:122) Ký hiệu mô tả dãy vi tác vụ: (cid:122) Mệnh đề (vi lệnh) chuyển thông tin

(cid:122) Tác vụ truyền từ thanh ghi sang thanh ghi (hình 6.2)

(cid:131) R2 (cid:197) R1

(cid:122) Mệnh đề If – then

(cid:131)

(cid:131) P: R2 (cid:197) R1

Ký hiệu

Diễn giải

Ví dụ

Chữ (và số)

Thanh ghi

MAR, R2

Ngoặc ( )

Một phần thanh ghi

R2 (0 – 7), R2 (L)

Mũi tên

Chuyển thông tin

R2 (cid:197) R1

Dấu phẩy

Hai tác vụ riêng

R2 (cid:197) R1, R1 (cid:197) R2

(cid:122) Đặt thanh ghi lên Bus:

(cid:131) VD: Hệ thống Bus dùng cho 4 thanh ghi 4 bit (h 6.3) (cid:131) Hệ thống Bus dùng cho k th/ghi n bit sẽ có n mạch dồn k – 1.

(cid:122) Truyền qua bus

(cid:122) Bus: tập các đường truyền dẫn tín hiệu (cid:131) Thường dùng bus cho chung mọi thanh ghi (cid:131) Tín hiệu điều khiển sẽ xác định thanh ghi nào được truyền

If (P = 1) then (R2 (cid:197) R1)

1

(cid:122) Truyền từ Bus vào thanh ghi: nối Bus với đường nhập

của thanh ghi và có tín hiệu nạp. (cid:131) Truyền từ thanh ghi C sang thanh ghi R1:

Bus (cid:197) C, R1 (cid:197) Bus

(cid:122) Bus 3 trạng thái

(cid:122) Có thể tạo Bus bằng cổng 3 trạng thái thay cho mạch dồn (cid:122) Cổng 3 trạng thái: bổ sung tr/thái thứ 3: trở kháng cao, ngõ ra bị ngắt (cid:122) Thường dùng cổng đệm để thiết kế Bus (h 6.4) (cid:122) Bus dùng cổng đệm 3 trạng thái thay cho mạch dồn (h 6.5)

(cid:131)

(So sánh với dùng mạch dồn)

(cid:122) Truyền thông tin từ một từ nhớ ra ngoài: tác vụ Đọc (cid:122) Đưa thông tin từ ngoài vào bộ nhớ: tác vụ Ghi (cid:122) Ký hiệu: Từ nhớ có địa chỉ lưu trong thanh ghi AR: M[AR] (cid:122) VD: Đọc / Ghi bộ nhớ với địa chỉ chứa trong th/ghi AR, với

thanh ghi DR (cid:131) Tác vụ Đọc: Read: DR (cid:197) M[AR] (cid:131) Tác vụ Ghi: Write: M[AR] (cid:197) DR

(cid:122) Truyền qua bộ nhớ

2

(cid:122) Mạch cộng trừ nhị phân

3.2. Vi tác vụ số học

(cid:122) Thực hiện phép tính số học với dữ liệu số trên thanh ghi

(cid:122) Thêm cổng XOR. (cid:122) Khi M = 0, cộng. Khi M = 1, trừ (h 6.7)

(cid:122) (Yêu cầu giải thích)

(cid:122) Dùng mạch toàn cộng (h 6.6)

(cid:122) Mạch cộng nhị phân

(cid:122) Dùng mạch cộng song

song (h 6.9)

(cid:122) Có thể dùng mạch đếm (cid:122) Tăng 1 cho thanh ghi:

Mạch tăng nhị phân (dùng mạch nửa cộng) (h 6.8)

(cid:122) Mạch tăng nhị phân (cid:122) Mạch số học

3.3. Vi tác vụ luận lý

(cid:122) Thực hiện các tác vụ thao tác bit với dữ liệu phi số trên thanh ghi (cid:122) Có 16 tác vụ luận lý khác nhau thực hiện trên 2 bit nhị phân

(b 6.6)

tác vụ luận lý (cid:122) Chỉ cần các cổng AND, OR, XOR, NOT (h 6.10)

(cid:122) Mạch thực hiện vi

3

3.4. Vi tác vụ dịch

(cid:122) Vi tác vụ luận lý cho phép thao tác riêng từng bit hoặc một phần

(cid:122) Thực hiện các tác vụ dịch dữ liệu trên thanh ghi (cid:122) Dùng để truyền tuần tự dữ liệu

của thanh ghi

hoặc phối hợp với tác vụ số học, luận lý và tác vụ khác

(cid:122) Tác vụ Chọn đặt (thiết lập có chọn lựa):

(cid:122) Ứng dụng:

(cid:122) Quay vòng các bit ở 2 đầu thanh ghi (nối ngõ xuất dãy với ngõ

nhập dãy)

(cid:122) Dịch luận lý (shl / shr : shift) (cid:122) Chuyển 0 qua ngõ nhập dãy (cid:122) Dịch vòng / quay (cil / cir : circular shift)

đặt 1 vào các bit trong A tương ứng với vị trí các bit 1 trong B: A (cid:197) A ∨ B (cid:122) A 1 0 1 0 B 1 1 0 0 A 1 1 1 0 (cid:122) Tác vụ Chọn bù (cid:122) Tác vụ Chọn xóa (cid:122) Tác vụ Mặt nạ (cid:122) Tác vụ Thay (đưa trị mới vào nhóm bit)

(cid:122) Khi thanh ghi lưu 1 số nhị phân có dấu (cid:122) Dịch trái: nhân đôi - Dịch phải: chia đôi (cid:122) Khi dịch phải, bit dấu được bảo toàn. VD: 1000 (-8) (cid:198) 1100 (-4) (cid:122) Khi dịch trái, tràn nếu R n – 1 ≠ R n – 2

(cid:122) Dịch số học (ashl / ashr : arithmetic shift)

3.5. ALU

(cid:122) Đơn vị luận lý – số học (Arithmetic Logic Unit)

(cid:122) Có thể dùng

thanh ghi dịch 2 chiều nạp song song.

tác vụ Dùng các thanh ghi lưu trữ nối với 1 đơn vị thao tác chung: ALU

(cid:122) Mạch dịch (cid:122) Thay vì dùng các thanh ghi riêng để thực hiện các vi

(cid:122) Dùng mạch tổ hợp cho tác vụ dịch sẽ tốt hơn (cid:122) VD: Mạch dịch tổ hợp 4 bit (h 6.12)

(cid:122) Để thực hiện 1 vi tác vụ, nội dung th/ghi được đưa vào ngõ nhập ALU, ALU thực hiện xong tác vụ, chuyển kết quả cho th/ghi đích.

(cid:122) Các tác vụ của ALU (b 6.8) (cid:131) 8 tác vụ số học: với S3S2 = 00 (cid:131) 4 tác vụ luận lý: với S3S2 = 01 (cid:131) 2 tác vụ dịch: với S3S2 = 10 và 11

(cid:122) Một phần của ALU (h 6.13)

4

Bài tập

(cid:122) BT 48, 49, 50, 51 (trang 92)

5