Bài giảng môn Cấu trúc máy tính - Vi tác vụ thanh ghi

Một hệ thống số là một kết nối các đơn thể phần cứng nhằm thực hiện một tác vụ xử lý thông tin nào đó. Các đơn thể được tạo từ các thành phần số như thanh ghi, mạch giải mã, các phần tử tính toán. Tác vụ xử lý dữ liệu lưu trên thanh ghi gọi là một vi tác vụ.

ppt48 trang | Chia sẻ: lylyngoc | Lượt xem: 1672 | Lượt tải: 0download
Bạn đang xem trước 20 trang tài liệu Bài giảng môn Cấu trúc máy tính - Vi tác vụ thanh ghi, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
VI TÁC VỤ VI TÁC VỤ THANH GHI Một hệ thống số là một kết nối các đơn thể phần cứng nhằm thực hiện một tác vụ xử lý thông tin nào đó. Các đơn thể được tạo từ các thành phần số như thanh ghi, mạch giải mã, các phần tử tính toán. Tác vụ xử lý dữ liệu lưu trên thanh ghi gọi là một vi tác vụ. VI TÁC VỤ THANH GHI (tt) Kết quả vi tác vụ có thể thay thế dữ liệu đã lưu trước đó hoặc chuyển qua thanh ghi khác. Ví dụ các vi tác vụ: dịch, đếm, xóa và nạp. Một số thanh ghi đã xét trước đây được dùng cho vi tác vụ. Ví dụ mạch đếm nạp song song có thể thực hiện vi tác vụ tăng và nạp. Thanh ghi dịch 2 chiều có khả năng thực hiện các vi tác vụ dịch phải và trái. VI TÁC VỤ THANH GHI (tt) Thường có 4 loại vi tác vụ: - Vi tác vụ thanh ghi chuyển thông tin nhị phân từ thanh ghi này qua thanh ghi khác. - Vi tác vụ số học thực hiện các phép tính số học với dữ liệu số trên thanh ghi. - Vi tác vụ luận lý thực hiện các tác vụ thao tác bit với dữ liệu phi số trên thanh ghi. - Vi tác vụ dịch thực hiện các tác vụ dịch dữ liệu trên thanh ghi. VI TÁC VỤ THANH GHI (tt) Có thể mô tả dãy vi tác vụ bằng lời, nhưng thường dài dòng. Thường dùng ký hiệu phù hợp để mô tả. Quy tắc thông dụng: - Các thanh ghi được ghi bằng chữ hoa (đôi khi kèm theo một số) thể hiện chức năng của nó. - Ví dụ: MAR – thanh ghi lưu địa chỉ bộ nhớ PC – thanh ghi đếm chương trình. IR – thanh ghi lệnh. R1 – thanh ghi xử lý (các mạch lật trong thanh ghi n-bit được đánh số từ 0 đến n-1 tính từ phải qua trái) VI TÁC VỤ THANH GHI (tt) Lược đồ khối thanh ghi VI TÁC VỤ THANH GHI (tt) Mệnh đề (hoặc vi lệnh) chuyển thanh ghi R1 sang R2 (dùng toán tử thay thế ), R1 không đổi: R2  R1 Mệnh đề IF – Then với P là tín hiệu điều khiển (khi P =1 truyền R1 sang R2): If (P =1) then (R2  R1) Dùng hàm điều khiển (là biến boolean) có trị 1 hoặc 0, khi P =1, truyền R1 sang R2: P: R2  R1 TRUYỀN QUA BUS Bus là một tập các đường truyền dẫn các tín hiệu từ nơi này sang nơi khác. Thường dùng bus chung cho mọi thanh ghi và tín hiệu điều khiển sẽ xác định thanh ghi nào được truyền. TRUYỀN QUA BUS (tt) Bảng trên cho thấy thanh ghi nào được truyền lên Bus qua điều khiển của S1S0 TRUYỀN QUA BUS (tt) Tổng quát hệ thống Bus dùng cho k thanh ghi n-bit sẽ có n mạch dồn k-1. Ví dụ Bus cho 8 thanh ghi 16-bit cần 16 mạch dồn 8-1 với 3 đường chọn. Để truyền từ Bus vào thanh ghi phải nối Bus với đường nhập của thanh ghi và có tín hiệu điều khiển nạp. Như vậy muốn truyền từ thanh ghi này qua thanh ghi kia (R1  C) phải thực hiện: Bus  C, R1  Bus TRUYỀN QUA BUS (tt) Hệ thống bus cho 4 thanh ghi BUS 3 TRẠNG THÁI Có thể tạo Bus bằng cổng 3 trạng thái thay cho mạch dồn. Cổng 3 trạng thái là mạch số 3 trạng thái. Hai trạng thái là tín hiệu tương đương luận lý 1 và 0 như cổng bình thường, trạng thái 3 là trạng thái trở kháng cao. Trạng thái trở kháng cao hoạt động như mạch hở, lúc đó ngõ ra bị ngắt. BUS 3 TRẠNG THÁI (tt) Cổng 3 trạng thái có thể thực hiện mọi luận lý quy ước như: AND hoặc NAND. Tuy nhiên người ta thường dùng cổng đệm (buffer gate) để thiết kế Bus Cổng đệm 3 trạng thái khác với cổng đệm bình thường là có thêm ngõ điều khiển, khi bằng 1 – hoạt động như cổng đệm thường; khi bằng 0 – cổng có trạng thái trở kháng cao, ngõ ra bị cấm. BUS 3 TRẠNG THÁI (tt) Ký hiệu cổng 3 trạng thái BUS 3 TRẠNG THÁI (tt) Bus dùng cổng 3 trạng thái thay cho mạch dồn Bộ giải mã BUS 3 TRẠNG THÁI (tt) Khi ngõ nhập E = 0, mạch không hoạt động. Khi E = 1, tùy theo ngõ nhập chọn S1S0, các bit A0/B0/C0/D0 của thanh ghi A/B/C/D sẽ chuyển sang đường bus TRUYỀN QUA BỘ NHỚ Truyền thông tin từ một từ nhớ ra ngoài gọi là tác vụ đọc, đưa thông tin mới vào bộ nhớ gọi là viết (ghi). Đặt M là ký hiệu của một từ nhớ. Trước khi truyền phải xác định địa chỉ của M, đặt AR là thanh ghi chứa địa chỉ của từ nhớ và DR là thanh ghi nhận thông tin đọc từ M. Ký hiệu: Read: DR  M[AR] Tác vụ truyền nội dung thanh ghi R1 vào M (tác vụ viết) có địa chỉ trong thanh ghi AR. Ký hiệu: Write: M[AR]  R1 VI TÁC VỤ SỐ HỌC Mạch cộng nhị phân: Để cài đặt vi tác vụ cộng với phần cứng cần có các thanh ghi và mạch thực hiện phép cộng số học. Vi tác vụ số học VI TÁC VỤ SỐ HỌC (tt) Mạch cộng nhị phân 4 bit MẠCH CỘNG TRỪ NHỊ PHÂN Phép cộng và trừ có thể kết hợp vào một mạch bằng cách thêm cổng XOR vào mỗi mạch toàn cộng. Khi M = 0, mạch thực hiện phép cộng. Khi M = 1, mạch thực hiện phép trừ Mạch tăng nhị phân 4 bit MẠCH TĂNG NHỊ PHÂN Việc tăng lên 1 có thể thực hiện bằng mạch đếm. Tuy nhiên, tác vụ tăng 1 thường áp cho bất kỳ thanh ghi nào nên thường dùng mạch tăng nhị phân được tạo từ mạch nửa cộng. MẠCH SỐ HỌC Các vi tác vụ số học có thể thực hiện qua một mạch ghép số học. Thành phần cơ bản của mạch này là mạch cộng song song. Qua các ngõ vào mạch cộng có thể điều khiển mạch thực hiện các phép tính khác nhau MẠCH SỐ HỌC Bảng hàm mạch số học VI TÁC VỤ LUẬN LÝ Vi tác vụ luận lý là tác vụ nhị phân trên chuỗi bit trong thanh ghi. Có 16 tác vụ luận lý khác nhau thực hiện trên 2 biến nhị phân, vì với 2bit sẽ có 22 = 4 tổ hợp 00, 01, 10, 11 và 24 = 16 tổ hợp trị tính được từ 4 tổ hợp trị biến. Bảng sau cho thấy 16 trị luận lý tính từ 2 bit. VI TÁC VỤ LUẬN LÝ Bảng chân trị 16 hàm theo 2 biến VI TÁC VỤ LUẬN LÝ Mười sáu vi tác vụ luận lý MẠCH THỰC HIỆN VI TÁC VỤ LL Chỉ cần các cổng AND, OR, XOR và bù để thực hiện các phép tính trên. Một phần mạch dùng cho 1-bit, với thanh ghi n-bit sẽ cần n mạch như vậy. Mỗi mạch gồm 4 cổng cho 4 phép tính luận lý và một mạch dồn, các ngõ nhập chọn S1, S0 giúp chọn phép tính. Ứng dụng Các vi tác vụ cho phép thao tác riêng từng bit hoặc một phần từ trên thanh ghi. Có thể thay đổi trị bit, xóa một nhóm bit hoặc thay bit khác vào thanh ghi. Các ví dụ sau thực hiện các vi tác vụ trên 2 thanh ghi A và B, kết quả trả về A. Tác vụ Chọn đặt, đặt 1 vào các bit trong A tương ứng với bit 1 trong B bằng: A  A  B A = 1010 B = 1100 A = 1110 Ứng dụng (tt) Một tầng mạch luận lý Ứng dụng (tt) - Tác vụ Chọn bù, làm bù các bit trong A tương ứng với bit 1 trong B bằng: A  A  B. A = 1010 B = 1100 A = 0110 - Tác vụ Chọn xóa, xóa các bit trong A tương ứng với bit 1 trong B bằng: A  A  B’ A = 1010 B’ = 0011 (B = 1100) A = 0010 Ứng dụng (tt) Tác vụ Mặt nạ, tương tự như chọn xóa nhưng các bit trong A bị xóa tương ứng với bit 0 (thay vì 1) trong B (điều này thuận tiện hơn vì chỉ cần cổng AND) A = 1010 B = 1100 A = 1000 Ứng dụng (tt) Tác vụ thay, đưa trị mới vào nhóm bit bằng cách xóa nhóm bit đó rồi OR với trị mới. Ví dụ thay 4 bit trái của A = 0110 1010 bằng 1001 A = 0101 1010 B = 0000 1111 A = 0000 1010 A = 0101 1010 B = 1001 0000 A = 1001 1010 Ứng dụng (tt) Tác vụ Xóa, so sánh A và B, kết quả bằng 0 nếu A = B: A  A  B A = 1010 B = 1010 A = 0000 VI TÁC VỤ DỊCH Dùng để truyền tuần tự dữ liệu hoặc phối hợp với tác vụ số học, luận lý và tác vụ khác. Nội dung thanh ghi dịch qua trái hoặc qua phải. Cùng với tác động dịch, mạch lật đầu tiên được thay bằng ngõ nhập dãy. Thông tin truyền qua ngõ nhập dãy xác định loại dịch: luận lý, vòng /quay và số học. VI TÁC VỤ DỊCH (tt) Vi tác vụ dịch DỊCH LUẬN LÝ Dịch luận lý chuyển 0 qua ngõ nhập dãy. Khi dịch trái, bit 0 từ ngõ nhập dãy đưa vào vị trí cực phải thanh ghi. Khi dịch phải, bit 0 đưa vào vị trí cực trái thanh ghi. Ví dụ: R1  shl R1 R2  shr R2 DỊCH VÒNG/ QUAY Dịch vòng/ quay, quay vòng các bit qua hai đầu thanh ghi. Để thực hiện vi tác vụ này, chỉ cần nối ngõ xuất dãy với ngõ nhập dãy thanh ghi dịch. DỊCH SỐ HỌC Dịch số học được dùng khi thanh ghi lưu một số nhị phân có dấu. Khi dịch trái số được nhân đôi, khi dịch phải số được chia đôi. Ví dụ: 0010 (2) dịch trái thành 0100 (4) 0110 (6) dịch phải thành 0011 (3) DỊCH SỐ HỌC (tt) Khi dịch trái, tràn xảy ra nếu Rn-1 ≠ Rn-2 Ví dụ: 0100 (4) dịch trái thành 1000 (-8). Có thể dùng mạch lật Vs = Rn-1  Rn-2 để phát hiện tràn. Khi Vs = 0 không tràn; Vs = 1 tràn. Dịch phải số học MẠCH DỊCH Có thể dùng thanh ghi dịch hai chiều với nạp song song làm mạch dịch. Trong mạch xử lý có nhiều thanh ghi, dùng mạch tổ hợp cho tác vụ dịch sẽ tốt hơn. Theo cách này, thanh ghi cần dịch được đưa lên bus có ngõ ra nối với mạch dịch tổ hợp, dịch xong trả lại vào thanh ghi. MẠCH DỊCH (tt) MẠCH DỊCH (tt) Là mạch tổ hợp 4bit gồm 4 ngõ nhập Ai và 4 ngõ xuất Hi. Hai ngõ nhập dãy IL cho dịch trái, IR cho dịch phải. Khi ngõ nhập chọn S = 0, dịch phải (xuống), S = 1 dịch trái (lên) Mạch dịch có n ngõ nhập dữ liệu, cần n mạch dồn. Có thể điều khiển hai ngõ nhập dãy để tạo 3 loại tác vụ. ALU Thay vì dùng thanh ghi riêng thực hiện các vi tác vụ, các máy tính thường dùng các thanh ghi lưu ghi lưu trữ nối với một đơn vị thao tác chung gọi là đơn vị luận lý số học (ALU) Để thực hiện một vi tác vụ, nội dung thanh ghi đưa vào ngõ nhập ALU. ALU thực hiện xong tác vụ, chuyển kết quả cho thanh ghi đích. ALU (tt) ALU là mạch tổ hợp cho phép thực hiện tác vụ chuyển thanh ghi từ nguồn sang đích thông qua ALU chỉ trong một chu kỳ đồng hồ. Các mạch số học, luận lý và dịch được kết hợp vào ALU (tt) Một tầng đơn vị dịch luận lý số học ALU (tt) Bảng hàm của ALU ALU (tt) - Các ngõ vào Ai, Bi đưa vào cả 2 mạch số học và luận lý. - S1S0 sẽ xác định vi tác vụ. - Với ALU n-bit sẽ gồm n mạch nối nhau. Ngõ ra Ci+1 nối với ngõ vào Ci của phần kế tiếp và Ci đầu tiên là Cin - Bảng sau là tác vụ của ALU. 8 tác vụ số học được chọn với S3S3 = 00, 4 tác vụ kế là luận lý với S3S2 = 10 và 2 tác vụ cuối là dịch với S3S2 = 10 và 11