Bài giảng Kiến trúc máy tính - Chương 2: Cơ bản về logic số

pdf 55 trang huongle 3090
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:

  • pdfbai_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ố

  1. 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
  2. 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
  3. 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
  4. 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
  5. 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
  6. 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
  7. 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
  8. 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
  9. 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
  10. 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
  11. 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
  12. 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
  13. 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
  14. 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
  15. 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
  16. 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
  17. 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
  18. 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
  19. 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
  20. 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
  21. 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 PQ 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
  22. 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
  23. 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
  24. NKK-HUT Các cổng logic (tiếp)  Các cổng  NAND  NOR  XOR 3 May 2012 IT3030 24
  25. 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
  26. NKK-HUT Sử dụng cổng NAND 3 May 2012 IT3030 26
  27. NKK-HUT Sử dụng cổng NOR 3 May 2012 IT3030 27
  28. NKK-HUT Một số ví dụ vi mạch logic 3 May 2012 IT3030 28
  29. 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
  30. 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
  31. 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
  32. NKK-HUT Multiplexer (tiếp) Thực hiện MUX bốn đầu vào dữ liệu 3 May 2012 IT3030 32
  33. NKK-HUT Bộ phân kênh (Demultiplexer – DeMUX) 3 May 2012 IT3030 33
  34. 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
  35. NKK-HUT Bộ giải mã (tiếp) 3 May 2012 IT3030 35
  36. NKK-HUT Bộ giải mã 74LS139 3 May 2012 IT3030 36
  37. NKK-HUT Bộ mã hóa (Encoder) 3 May 2012 IT3030 37
  38. 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
  39. NKK-HUT Bộ cộng (tiếp) 3 May 2012 IT3030 39
  40. NKK-HUT Bộ cộng 16-bit A 16-bit ripple-carry adder 3 May 2012 IT3030 40
  41. 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
  42. NKK-HUT Các thành phần chính của mạch dãy 3 May 2012 IT3030 42
  43. NKK-HUT Chốt (Latch)  Có khả năng nhớ bit 3 May 2012 IT3030 43
  44. NKK-HUT Chốt (tiếp) 3 May 2012 IT3030 44
  45. NKK-HUT D Latch  D Latch (đồng bộ theo mức)  Tránh tổ hợp SR = 11 3 May 2012 IT3030 45
  46. 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
  47. NKK-HUT Flip-Flops (tiếp) Latches Flip-flops Low level High level Positive edge Negative edge 3 May 2012 IT3030 47
  48. 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
  49. NKK-HUT Ví dụ chip D latches JK flip-flops 3 May 2012 IT3030 49
  50. 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
  51. NKK-HUT Chip thanh ghi 74164 shift Register chip 3 May 2012 IT3030 51
  52. 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
  53. NKK-HUT Ví dụ bộ đếm không đồng bộ (ripple counter) LSB A modulo-8 binary ripple counter 3 May 2012 IT3030 53
  54. 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
  55. NKK-HUT Hết chương 2 3 May 2012 IT3030 55