Bài giảng Kiến trúc máy tính - Chương 2: Cơ bản về logic số
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Kiến trúc máy tính - Chương 2: Cơ bản về logic số", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
Tài liệu đính kèm:
- bai_giang_kien_truc_may_tinh_chuong_2_co_ban_ve_logic_so.pdf
Nội dung text: Bài giảng Kiến trúc máy tính - Chương 2: Cơ bản về logic số
- NKK-HUT Kiến trúc máy tính Chương 2 CƠ BẢN VỀ LOGIC SỐ Nguyễn Kim Khánh Trường Đại học Bách khoa Hà Nội 3 May 2012 IT3030 1
- NKK-HUT Nội dung học phần Chương 1. Giới thiệu chung Chương 2. Cơ bản về logic số Chương 3. Hệ thống máy tính Chương 4. Kiến trúc tập lệnh Chương 5. Số học máy tính Chương 6. Bộ xử lý Chương 7. Bộ nhớ Chương 8. Vào-ra Chương 9. Kiến trúc máy tính tiên tiến 3 May 2012 IT3030 2
- NKK-HUT Nội dung của chương 2 2.1. Các hệ đếm cơ bản 2.2. Đại số Boole 2.3. Cổng logic 2.4. Mạch tổ hợp 2.5. Mạch dãy 3 May 2012 IT3030 3
- NKK-HUT 2.1. Các hệ đếm cơ bản Hệ thập phân (Decimal System) con người sử dụng Hệ nhị phân (Binary System) máy tính sử dụng Hệ mười sáu (Hexadecimal System) dùng để viết gọn cho số nhị phân 3 May 2012 IT3030 4
- NKK-HUT 1. Hệ thập phân Cơ số 10 10 chữ số: 0,1,2,3,4,5,6,7,8,9 Dùng n chữ số thập phân có thể biểu diễn được 10n giá trị khác nhau: 00 000 = 0 n 99 999 = 10 - 1 3 May 2012 IT3030 5
- NKK-HUT Dạng tổng quát của số thập phân A a n a n 1 a 1 a 0 , a 1 a m Giá trị của A được hiểu như sau: n n 1 1 0 1 m A a n 10 a n 1 10 a 1 10 a 0 10 a 1 10 a m 10 n A a 10 i i i m 3 May 2012 IT3030 6
- NKK-HUT Ví dụ số thập phân 472.38 = 4x102 + 7x101 + 2x100 + 3x10-1 + 8x10-2 Các chữ số của phần nguyên: 472 : 10 = 47 dư 2 47 : 10 = 4 dư 7 4 : 10 = 0 dư 4 Các chữ số của phần lẻ: 0.38 x 10 = 3.8 phần nguyên = 3 0.8 x 10 = 8.0 phần nguyên = 8 3 May 2012 IT3030 7
- NKK-HUT 2. Hệ nhị phân Cơ số 2 2 chữ số nhị phân: 0 và 1 chữ số nhị phân gọi là bit (binary digit) Bit là đơn vị thông tin nhỏ nhất n Dùng n bit có thể biểu diễn được 2 giá trị khác nhau: 00 000 = 0 n 11 111 = 2 - 1 3 May 2012 IT3030 8
- NKK-HUT Dạng tổng quát của số nhị phân Có một số nhị phân A như sau: A a n a n 1 a 1 a 0 , a 1 a m Giá trị của A được tính như sau: n n 1 1 0 1 m A a n 2 a n 1 2 a 1 2 a 0 2 a 1 2 a m 2 n A a 2 i i i m 3 May 2012 IT3030 9
- NKK-HUT Ví dụ số nhị phân 1101001.1011(2) = 6 5 4 3 2 1 0 -1 -2 -3 -4 = 26 + 25 + 23 + 20 + 2-1 + 2-3 + 2-4 = 64 + 32 + 8 + 1 + 0.5 + 0.125 + 0.0625 = 105.6875(10) 3 May 2012 IT3030 10
- NKK-HUT Chuyển đổi số nguyên thập phân sang nhị phân Phương pháp 1: chia dần cho 2 rồi lấy phần dư Phương pháp 2: Phân tích thành tổng của các số 2i nhanh hơn 3 May 2012 IT3030 11
- NKK-HUT Phương pháp chia dần cho 2 Ví dụ: chuyển đổi 105(10) 105 : 2 = 52 dư 1 52 : 2 = 26 dư 0 26 : 2 = 13 dư 0 13 : 2 = 6 dư 1 6 : 2 = 3 dư 0 3 : 2 = 1 dư 1 1 : 2 = 0 dư 1 Kết quả: 105(10) = 1101001(2) 3 May 2012 IT3030 12
- NKK-HUT Phương pháp phân tích thành tổng của các 2i Ví dụ 1: chuyển đổi 105(10) 6 5 3 0 105 = 64 + 32 + 8 +1 = 2 + 2 + 2 + 2 27 26 25 24 23 22 21 20 128 64 32 16 8 4 2 1 0 1 1 0 1 0 0 1 Kết quả: 105(10) = 0110 1001(2) Ví dụ 2: 17000(10) = 16384 + 512 + 64 + 32 + 8 = 214 + 29 + 26 + 25 + 23 17000(10) = 0100 0010 0110 1000(2) 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 3 May 2012 IT3030 13
- NKK-HUT Chuyển đổi số lẻ thập phân sang nhị phân Ví dụ 1: chuyển đổi 0.6875(10) 0.6875 x 2 = 1.375 phần nguyên = 1 0.375 x 2 = 0.75 phần nguyên = 0 0.75 x 2 = 1.5 phần nguyên = 1 0.5 x 2 = 1.0 phần nguyên = 1 Kết quả : 0.6875(10)= 0.1011(2) 3 May 2012 IT3030 14
- NKK-HUT Chuyển đổi số lẻ thập phân sang nhị phân (tiếp) Ví dụ 2: chuyển đổi 0.81(10) 0.81 x 2 = 1.62 phần nguyên = 1 0.62 x 2 = 1.24 phần nguyên = 1 0.24 x 2 = 0.48 phần nguyên = 0 0.48 x 2 = 0.96 phần nguyên = 0 0.96 x 2 = 1.92 phần nguyên = 1 0.92 x 2 = 1.84 phần nguyên = 1 0.84 x 2 = 1.68 phần nguyên = 1 0.81(10) 0.1100111(2) 3 May 2012 IT3030 15
- NKK-HUT Chuyển đổi số lẻ thập phân sang nhị phân (tiếp) Ví dụ 3: chuyển đổi 0.2(10) 0.2 x 2 = 0.4 phần nguyên = 0 0.4 x 2 = 0.8 phần nguyên = 0 0.8 x 2 = 1.6 phần nguyên = 1 0.6 x 2 = 1.2 phần nguyên = 1 0.2 x 2 = 0.4 phần nguyên = 0 0.4 x 2 = 0.8 phần nguyên = 0 0.8 x 2 = 1.6 phần nguyên = 1 0.6 x 2 = 1.2 phần nguyên = 1 0.2(10) 0.00110011 (2) 3 May 2012 IT3030 16
- NKK-HUT 3. Hệ mười sáu (Hexa) Cơ số 16 16 chữ số: 0,1,2,3,4,5,6,7,8,9, A,B,C,D,E,F Dùng để viết gọn cho số nhị phân: cứ một nhóm 4-bit sẽ được thay bằng một chữ số Hexa 3 May 2012 IT3030 17
- NKK-HUT Quan hệ giữa số nhị phân và số Hexa 4-bit Chữ số Hexa 0000 0 Ví dụ chuyển đổi số nhị phân số Hexa: 0001 1 1011 00112 = B316 0010 2 0011 3 0000 00002 = 0016 0100 4 0101 5 0110 6 0010 1101 1001 10102 = 2D9A16 0111 7 1111 1111 1111 11112 = FFFF16 1000 8 1001 9 1010 A 1011 B 1100 C 1101 D 1110 E 1111 F 3 May 2012 IT3030 18
- NKK-HUT 2.2. Đại số Boole Đại số Boole sử dụng các biến logic và phép toán logic Biến logic có thể nhận giá trị 1 (TRUE) hoặc 0 (FALSE) Phép toán logic cơ bản là AND, OR và NOT với ký hiệu như sau: A AND B : A•B A OR B : A + B NOT A : A Thứ tự ưu tiên: NOT > AND > OR 3 May 2012 IT3030 19
- NKK-HUT Các phép toán logic (tiếp) Các phép toán NAND, NOR, XOR: A NAND B : A•B A NOR B : A + B A XOR B: A B = A • B + A • B 3 May 2012 IT3030 20
- NKK-HUT Phép toán đại số Boole P Q P P.Q P+Q 0 0 1 0 0 0 1 1 0 1 1 0 0 0 1 1 1 0 1 1 P Q PQ P.Q P+Q 0 0 0 1 1 0 1 1 1 0 1 0 1 1 0 1 1 0 0 0 3 May 2012 IT3030 21
- NKK-HUT Các đồng nhất thức của đại số Boole A • B = B • A A + B = B + A A • (B + C) = (A • B) + (A • C) A + (B • C) = (A + B) • ( A + C) 1 • A = A 0 + A = A A • A = 0 A + A = 1 0 • A = 0 1 + A = 1 A • A = A A + A = A A • (B • C) = (A • B) • C A + (B + C) = (A + B) + C A • B = A + B (Định lý De A + B = A • B (Định lý De Morgan) Morgan) 3 May 2012 IT3030 22
- NKK-HUT 2.3. Các cổng logic (Gate) Các cổng cơ bản AND OR NOT Chức năng có thể biểu diễn bằng bảng thật (truth table) 3 May 2012 IT3030 23
- NKK-HUT Các cổng logic (tiếp) Các cổng NAND NOR XOR 3 May 2012 IT3030 24
- NKK-HUT Tập đầy đủ Là tập các cổng có thể thực hiện được bất kỳ hàm logic nào từ các cổng của tập đó. Một số ví dụ về tập đầy đủ: {AND, OR, NOT} {AND, NOT} {OR, NOT} {NAND} {NOR} 3 May 2012 IT3030 25
- NKK-HUT Sử dụng cổng NAND 3 May 2012 IT3030 26
- NKK-HUT Sử dụng cổng NOR 3 May 2012 IT3030 27
- NKK-HUT Một số ví dụ vi mạch logic 3 May 2012 IT3030 28
- NKK-HUT Hàm logic Hàm logic có thể được biểu diễn theo một vài cách: Bảng thật (Truth table) Bìa Cac-nô Biểu thức logic Dạng sơ đồ 3 May 2012 IT3030 29
- NKK-HUT 2.4. Mạch tổ hợp Mạch tổ hợp là mạch logic trong đó tín hiệu ra chỉ phụ thuộc tín hiệu vào ở thời điểm hiện tại. Là mạch không nhớ và được thực hiện bằng các cổng logic cơ bản Mạch tổ hợp có thể được định nghĩa theo ba cách: Bảng thật Dạng sơ đồ Phương trình Boole 3 May 2012 IT3030 30
- NKK-HUT Bộ dồn kênh (Multiplexer-MUX) Multiplexer n 4-data input MUX 2 đầu vào dữ liệu n đầu vào chọn 1 đầu ra Đầu vào chọn (S) xác định đầu vào nào (I) sẽ được nối với đầu ra. 3 May 2012 IT3030 31
- NKK-HUT Multiplexer (tiếp) Thực hiện MUX bốn đầu vào dữ liệu 3 May 2012 IT3030 32
- NKK-HUT Bộ phân kênh (Demultiplexer – DeMUX) 3 May 2012 IT3030 33
- NKK-HUT Bộ giải mã (Decoder) Bộ giải mã chọn một đầu ra tương ứng với một tổ hợp của N đầu vào. 3 May 2012 IT3030 34
- NKK-HUT Bộ giải mã (tiếp) 3 May 2012 IT3030 35
- NKK-HUT Bộ giải mã 74LS139 3 May 2012 IT3030 36
- NKK-HUT Bộ mã hóa (Encoder) 3 May 2012 IT3030 37
- NKK-HUT Bộ cộng (Adder) Bộ bán tổng (Half-adder) Cộng hai bit tạo ra bit tổng và bit nhớ Bộ toàn tổng (Full-adder) Cộng 3 bit Cho phép xây dựng bộ cộng N-bit 3 May 2012 IT3030 38
- NKK-HUT Bộ cộng (tiếp) 3 May 2012 IT3030 39
- NKK-HUT Bộ cộng 16-bit A 16-bit ripple-carry adder 3 May 2012 IT3030 40
- NKK-HUT 2.5. Mạch dãy Mạch dãy là mạch logic trong đó tín hiệu ra phụ thuộc tín hiệu vào ở hiện tại và quá khứ Là mạch có nhớ, được thực hiện bằng phần tử nhớ (Latch, Flip-Flop) và có thể kết hợp với các cổng logic cơ bản Mạch dãy bao gồm: Mạch tổ hợp Mạch hồi tiếp 3 May 2012 IT3030 41
- NKK-HUT Các thành phần chính của mạch dãy 3 May 2012 IT3030 42
- NKK-HUT Chốt (Latch) Có khả năng nhớ bit 3 May 2012 IT3030 43
- NKK-HUT Chốt (tiếp) 3 May 2012 IT3030 44
- NKK-HUT D Latch D Latch (đồng bộ theo mức) Tránh tổ hợp SR = 11 3 May 2012 IT3030 45
- NKK-HUT Flip-Flops D Flip-Flop (Đồng bộ theo sườn) (Flip-Flop D đồng bộ theo sườn dương) 3 May 2012 IT3030 46
- NKK-HUT Flip-Flops (tiếp) Latches Flip-flops Low level High level Positive edge Negative edge 3 May 2012 IT3030 47
- NKK-HUT JK Flip-Flop J K Qn+1 0 0 Qn 0 1 0 1 0 1 1 1 Qn 3 May 2012 IT3030 48
- NKK-HUT Ví dụ chip D latches JK flip-flops 3 May 2012 IT3030 49
- NKK-HUT Thanh ghi dịch Có chức năng lưu trữ và dịch số liệu 3 May 2012 IT3030 50
- NKK-HUT Chip thanh ghi 74164 shift Register chip 3 May 2012 IT3030 51
- NKK-HUT Bộ đếm Bộ đếm nhị phân Thiết kế đơn giản B B bits có thể đếm từ 0 đến 2 1 Bộ đếm không đồng bộ (Ripple counter) Bộ đếm đồng bộ 3 May 2012 IT3030 52
- NKK-HUT Ví dụ bộ đếm không đồng bộ (ripple counter) LSB A modulo-8 binary ripple counter 3 May 2012 IT3030 53
- NKK-HUT Ví dụ bộ đếm đồng bộ Được thiết kế dựa trên nguyên tắc sau: Thay đổi đầu ra nếu bit đếm trước đó là 1 Q1 thay đổi khi Q0 = 1 Q2 thay đổi khi Q1Q0 = 11 3 May 2012 IT3030 54
- NKK-HUT Hết chương 2 3 May 2012 IT3030 55