Kiến trúc máy tính - Chương 0: Tổng quan nhập môn mạch số

pdf 81 trang vanle 1690
Bạn đang xem 20 trang mẫu của tài liệu "Kiến trúc máy tính - Chương 0: Tổng quan nhập môn mạch 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:

  • pdfkien_truc_may_tinh_chuong_0_tong_quan_nhap_mon_mach_so.pdf

Nội dung text: Kiến trúc máy tính - Chương 0: Tổng quan nhập môn mạch số

  1. Kiến trúc máy tính • ThS. Hà Lê Hoài Trung • kientrucmaytinh/cq_he_2014 • trunghlh@uit.edu.vn
  2. Nội Dung • Chương 0 - Tổng quan nhập môn mạch số • Chương 1 - Máy tính - các khái niệm và công nghệ • Chương 2 – Assembly MIPS • Chương 3 - Phép toán số học trên máy tính • Chương 4 - Đường dữ liệu
  3. Một số quy tắc • Giữa kỳ: 30% • Cuối kỳ: 70% • Vào lớp trật tự.
  4. KIẾN TRÚC MÁY TÍNH Chương 0 Tổng Quan Nhập Môn Mạch Số
  5. Nội Dung 1. Giới thiệu các hệ thống số 2. Chuyển đổi giữa các hệ thống số 3. Các cổng Logics cơ bản 4. Mạch Logic 5. Mạch tích hợp
  6. 1. Giới thiệu các hệ thống số • Số Thập Phân • Số Nhị Phân • Số Thập Lục Phân • Số Bát Phân
  7. Các Hệ thống số cơ bản Hệ thống số Cơ số Chữ số Thập Phân 10 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 Nhị Phân 2 0, 1 Bát Phân 8 0, 1, 2, 3, 4, 5, 6, 7 Thập Lục 16 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 A, B, C, D, E, F
  8. Số Thập Phân Ví dụ: 2745.21410 Decimal point weight weight weight weight weight
  9. Số Thập Phân • Phân tích số thập phân : 2745.21410 • 2745.21410 = 2 * 103 + 7 * 102 + 4 * 101 + 5 * 100 + 2 * 10-1 + 1 * 10-2 + 4 * 10-3
  10. Số Nhị Phân Ví dụ: 1011.1012 Binary point weight weight weight weight weight
  11. Số Nhị Phân • Phân tích số nhị phân 1011.1012 Binary point 3 2 1 0 • 1011.1012 = 1 * 2 + 0 * 2 + 1 * 2 + 1 * 2 + 1 * 2-1 + 0 * 2-2 + 1 * 2-3 = 11.62510
  12. Số Bát Phân • Số Bát Phân : 3728 2 1 0 • 3728 = 3 * 8 + 7 * 8 + 2 * 8 = 25010
  13. Số Thập Lục Phân • Phân tích số thập lục phân : 3BA16 2 1 0 • 3BA16 = 3 * 16 + 11 * 16 + 10 * 16 = 95410
  14. 2. Chuyển đổi giữa các hệ thống số
  15. Chuyển đổi sang số thập phân • Nhân mỗi chữ số (digit) với trọng số (weight)
  16. Ví Dụ • Biểu diễn 37028 sang số thập phân • Biểu diễn 1A2F16 sang số thập phân
  17. Số Thập Phân => Số Nhị Phân Decimal Binary • Chia số thập phân với 2 và sau đó viết ra phần dư còn lại – Chia cho đến khi có thương số là 0. • Phần số dư đầu tiên gọi là LSB (Bit có trọng số thấp nhất) • Phần số dư cuối cùng gọi là MSB (Bit có trọng số cao nhất)
  18. Ví dụ : 2510 => Số Nhị Phân
  19. Số Thập Phân => Số Thập Lục Phân Decimal Hexadecimal • Chia số thập phân cho 16 và viết ra phần dư còn lại – Chia cho đến khi có thương số là 0. • Phần số dư đầu tiên gọi là LSD (Số có trọng số thấp nhất) • Phần số dư cuối cùng gọi là MSD (Số có trọng số cao nhất)
  20. Ví Dụ: 42310 => Thập Lục Phân
  21. Thập Phân => Bát Phân Decimal Octal • Chia số thập phân cho 8 và viết ra phần dư còn lại – Chia cho đến khi có thương số là 0. • Phần số dư đầu tiên gọi là LSD (Số có trọng số thấp nhất) • Phần số dư cuối cùng gọi là MSD (Số có trọng số lớn nhất)
  22. Bát Phân => Nhị Phân Octal Binary • Chuyển đổi lần lượt mỗi chữ số ở dạng Bát Phân sang nhóm 3 bits Nhị Phân Octal 0 1 2 3 4 5 6 7 Binary 000 001 010 011 100 101 110 111 • VD:
  23. Thập Lục Phân => Nhị Phân Hex Bin 0 0000 Hexadecimal Binary 1 0001 2 0010 3 0011 4 0100 • Chuyển đổi lần lượt mỗi chữ số ở dạng Thập Lục 5 0101 6 0110 Phân sang nhóm 4 bits Nhị Phân 7 0111 8 1000 9 1001 • VD: A 1010 B 1011 C 1100 D 1101 E 1110 F 1111
  24. Nhị Phân => Bát Phân Binary Octal • Nhóm 3 bits bắt đầu từ ngoài cùng bên phải của số • Chuyển đổi mỗi nhóm trên sang dạng chữ số của Bát Phân • VD: 10110101112 => Bát Phân 13278
  25. Nhị Phân => Thập Lục Phân Binary Hexadecimal • Nhóm 4 bits từ phía ngoài cùng bên phải của số • Chuyển đổi mỗi nhóm trên sang 1 chữ số Thập Lục • VD: 101011010101110011010102 => Thập Lục Phân 56AE6A16
  26. Bát Phân Thập Lục Phân Binary Octal Hexadecimal • Chuyển đổi thông qua trung gian là số Nhị Phân
  27. Ví dụ: 1F0C16 => Bát Phân Chuyển đổi từ Thập Lục Phân sang Nhị Phân 1F0C16 = 1_1111_0000_11002 Chuyển đổi từ Nhị Phân sang Bát Phân 1_111_100_001_1002 = 174148
  28. Ví Dụ: 10768 => Thập Lục phân Chuyển đổi từ Bát Phân sang Nhị Phân 10768 = 1_000_111_1102 Chuyển đổi từ Nhị Phân sang Thập Lục Phân 10_0011_11102 = 23E16
  29. Ví Dụ • Thực hiện phép chuyển đổi giữa các hệ thống số Decimal Binary Octal Hexadecimal 35 1101101 712 1AF
  30. Chuyển phần thập phân sang Nhị Phân • Phần thập phân => Số Nhị Phân
  31. Ví dụ: 189.02310 => Số Nhị Phân
  32. Ví Dụ • Thực hiện phép chuyển đổi giữa các hệ thống số Decimal Binary Octal Hexadecimal 29.8 110.1101 3.07 C.82 32
  33. Các phép tính số nhị phân • Phép Cộng • Phép Nhân • Phép Trừ
  34. Phép Cộng • Cộng 2 số nhị phân 1-bit A B A + B 0 0 0 0 1 1 1 0 1 1 1 10
  35. Phép Cộng • Phép cộng 2 số nhị phân không dấu
  36. Phép Nhân • Nhân 2 số nhị phân 1-bit A B A * B 0 0 0 0 1 0 1 0 0 1 1 1
  37. Phép Nhân • Phép nhân 2 số nhị phân không dấu
  38. Phép Trừ • Quy tắc thực hiện phép trừ như sau: 0 - 0 = 0 1 - 1 = 0 1 - 0 = 1 [1]0 - 1 = 1 Mượn1 • VD: Thực hiện phép trừ 2 số nhị phân 5 bits: 00111 từ 10101 10101 21 00111 7 0 11 1 0 = 14
  39. 3. Các cổng Logics Cơ Bản
  40. NỘI DUNG • Cổng Logic cơ bản AND, OR, NOT • Mạch Logic => Biểu thức Đại Số
  41. Tổng Quát • Đại Số Boolean chỉ xử lý 2 giá trị duy nhất (2 trạng thái logic): 0 và 1 • 3 cổng logic cơ bản: – OR, AND và NOT
  42. Bảng Sự thật / Chân trị • Mô tả các mối quan hệ giữa inputs và outputs của một mạch logic • Số lượng các mục tương ứng với số inputs – A 2-input bảng sẽ có 22 ?= 4 mục – A 3-input bảng sẽ có 23 ?= 8 mục
  43. Cổng Logic OR • Biểu thức Boolean cho cổng logic OR có hoạt động: – X = A + B — Đọc là ―X bằng A OR B‖ Dấu + không có nghĩa là phép cộng thông thường , mà là ký hiệu cho cổng logic OR • Bảng sự thật và biểu diễn cổng logic OR có 2 inputs:
  44. Cổng Logic AND • Cổng logic AND thực hiện tương tự như phép nhân: – X = A B — Đọc là ―X bằng A AND B‖ Dấu không có nghĩa là phép nhân thông thường , mà là ký hiệu cho cổng logic AND . • Bảng sự thật và biểu diễn cổng logic AND có 2 inputs:
  45. OR vs AND Ký hiệu của cổng logic OR có nghĩa là output sẽ có trạng thái là HIGH khi có bất kỳ input nào có trạng thái là HIGH Ký hiệu của cổng logic AND có nghĩa là output sẽ có trạng thái là HIGH khi tất cả các input đều có trạng thái là HIGH
  46. Cổng Logic NOT • Biểu thức Boolean đối với cổng logic NOT X = A — Đọc là: ―X bằng NOT A‖ Dấu thanh ngang phía ―X là đảo ngược của A‖ trên là ký hiệu cho cổng ―X là phần bù của A‖ logic NOT A' = A Có thể thay thế ký hiệu cổng logic NOT bằng dấu phẩy (') Bảng sự thật cổng Logic NOT
  47. Cổng Logic NOT • Cổng logic NOT có thể gọi chung là INVERTER Dấu đảo ngược Cổng logic này luôn luôn chỉ có duy nhất 1 input, và trạng thái của output sẽ đối nghịch với trạng thái của input
  48. Cổng Logic NOT Cổng INVERTER nghịch đảo (phần bù) trạng thái tín hiệu của các inputs tại các điểm trong cùng bước sóng Bất cứ khi nào có: input = 0, output = 1, và ngược lại
  49. Cổng Logic Cơ Bản Ba cổng logic Boolean cơ bản có thể mô tả được bất kỳ mạch logic nào
  50. Mạch Logic => Biểu thức đại số
  51. Mô tả mạch logic đại số • Nếu một biểu thức có chứa cả hai cổng Logic AND và OR, thì cổng logic AND sẽ được thực hiện trước : • Trừ khi có một dấu ngoặc trong biểu thức
  52. Mô tả mạch logic đại số • Bất cứ khi nào có sự xuất hiện của cổng logic INVERTER trong mạch, output sẽ có giá trị tương đương với input, kèm theo dấu thanh ngang trên đầu của output – Input A qua một inverter sẽ có output là A
  53. Đánh giá OUTPUTs của mạch logic • Ex: X = ABC(D + E) + FG Quy tắc đánh giá một biểu thức Boolean:  Thực hiện tất cả đảo ngược đối với các inputs đơn trước  Thực hiện xử lý tất cả các phép tính trong ngoặc trước  Thực hiện xử lý cổng logic AND trước rồi mới đến cổng logic OR, trừ khi trường hợp cổng logic OR ở trong ngoặc trước  Nếu cả một biểu thức có thanh ngang trên đầu, thực hiện các phép tính bên trong biểu thức trước, và sau đó đảo ngược kết quả lại
  54. Đánh giá OUTPUTs của mạch logic • Cách tốt nhất để phân tích một mạch gồm có nhiều cổng logic khác nhau là sử dụng bảng sự thật – Cho phép chúng ta có thể phân tích một cổng hoặc một tổ hợp các cổng logic có trong mạch cùng một lúc – Cho phép chúng ta dễ dàng kiểm tra lại hoạt động của mạch logic tổ hợp một cách chính xác nhất – Bảng sự thật giúp ích trong việc phát hiện và xử lý lỗi hay sự cố xuất hiện có trong mạch logic tổ hợp
  55. Đánh giá OUTPUTs của mạch logic • Đánh giá outputs của mạch logic sau:
  56. Đánh giá OUTPUTs của mạch logic • Bước 1: Liệt kê tất cả các inputs có trong mạch logic tổ hợp • Bước 2: Tạo ra một cột trong bảng sự thật cho mỗi tín hiệu trung gian (node) Node u đã được điền vào như là kết quả của phần bù của tín hiệu input A
  57. Đánh giá OUTPUTs của mạch logic • Bước 3: điền vào các giá trị tín hiệu của cột node v v =AB — Node v sẽ có giá trị HIGH Khi A (node u) là HIGH và B là HIGH
  58. Đánh giá OUTPUTs của mạch logic • Bước 4: Dự đoán trước giá trị tín hiệu của node w là outputs của cổng logic BC Cột này là HIGH khi và chỉ khi B là HIGH và cả C là HIGH
  59. Đánh giá OUTPUTs của mạch logic • Bước cuối cùng: kết hợp một cách logic 2 cột v và w để dự đoán cho output x Từ biểu thức x = v + w, thì x output sẽ là HIGH khi v OR w là HIGH
  60. Đánh giá OUTPUTS của mạch logic • Ví dụ:
  61. Ví Dụ • ImplementVẽ sơ đồ mạch a logic circuit với output with nh outputư sau: y = AC + BC+ ABC • Answer: – A circuit with output y = AC + BC+ ABC contains three terms which are ORed together and requires a three-input OR gate
  62. 5. Mạch Tổ Hợp
  63. Nội dung • Mạch giải mã (Decoder)/ Mạch mã hoá (Encoder) • Mạch dồn kênh (Multiplexer)/ Mạch chia kênh (Demultiplexer)
  64. Decoder/ Encoder
  65. Mạch giải mã (Decoder) • Nhiều ngõ vào/ nhiều ngõ ra • Ngõ vào (n) thông thường ít hơn ngõ ra (m) • Chuyển mã ngõ vào thành mã ngõ ra • Ánh xạ 1-1: – Mỗi mã ngõ vào chỉ tạo ra một mã ngõ ra • Các mã ngõ vào: – Mã nhị phân enable – Your Code! inputs • Các mã ngõ ra: – 1-trong-m – Gray Code – BCD Code
  66. Mạch giải mã nhị phân (Binary Decoders) • Mạch giải mã n-ra-2n: n ngõ vào và 2n ngõ ra – Mã đầu vào: n bit nhị phân – Mã đầu ra: 1-trong-2n • Ví dụ: n=2, mạch giải mã 2-ra-4 Chú ý ―x‖ (kí hiệu ngõ vào don’t care)
  67. Giải mã nhị phân 2-ra-4
  68. Ứng dụng của mạch giải mã • Một ứng dụng phổ biến là giải mã địa chỉ cho các chip nhớ
  69. Mạch mã hoá • Nhiều ngõ vào/ nhiều ngõ ra output • Chức năng ngược lại với input code mạch giải mã code ENCODER • Outputs (m) ít hơn inputs (n) • Chuyển mã ngõ vào thành mã ngõ ra
  70. Encoders vs. Decoders Decoder Encoder decoders/encoders nhị phân  n-ra-2^n  2^n-ra-n  Input code: Mã nhị phân  Input code: 1-trong-2^n  Output code:1-trong-2^n  Output code: Mã nhị phân
  71. Mạch mã hoá nhị phân (Binary Encoder) • 2^n-ra-n encoder: 2^n ngõ vào và n ngõ ra – Input code: 1-trong-2^n Binary encoder – Output code: Mã nhị phân I0 I1 • Ví dụ: n=3, mạch mã hóa 8-ra-3 I2 Y0 I3 Y1 Ngõ vào Ngõ ra I4 Y2 I0 I1 I2 I3 I4 I5 I6 I7 Y2 Y1 Y0 I5 1 0 0 0 0 0 0 0 0 0 0 I6 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 I7 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 0 0 0 1 0 1 1 0 0 0 0 0 0 0 0 1 1 1 1
  72. Hiện thực mạch mã hóa 8-ra-3 Ngõ vào Ngõ ra I0 I1 I2 I3 I4 I5 I6 I7 Y2 Y1 Y0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 0 0 0 1 0 1 1 0 0 0 0 0 0 0 0 1 1 1 1 I0 Y2 • Rút gọn: I1 Y0 = I1 + I3 + I5 + I7 I2 Y1 = I2 + I3 + I6 + I7 Y1 Y2 = I4 + I5 + I6 + I7 I3 I4 I5 I6 Y0 I7
  73. Multiplexer (MUX)/ Demultiplexer (DeMUX)
  74. Multiplexer • Multiplexer (MUX) truyền một trong những ngõ vào của nó làm ngõ ra dựa trên tín hiệu Select Ngõ vào SELECT sẽ xác định ngõ vào nào được truyền ra Z
  75. 2-ra-1 Multiplexer Out =I0 * Sel + I1 *Sel Sel Out 0 I0 1 I1
  76. 4-ra-1 Mux • 4-ra-1 Mux xuất ra một trong bốn ngõ vào dựa trên giá trị của 2 tín hiệu select
  77. Xây dựng MUX 4-ra-1 • Từ MUX 2-ra-1
  78. Demultiplexer • Demultiplexer (DEMUX) lấy ngõ vào duy nhất và phân phối nó ra một ngõ ra. – Mã ngõ vào SELECT sẽ xác định ngõ ra nào mà ngõ vào DATA sẽ truyền qua DATA được truyền ra một và chỉ một ngõ ra được xác định bởi mã của ngõ vào SELECT
  79. DEMUX 1-ra-8 demultiplexer Chú ý: I là ngõ vào DATA
  80. Bài tập • Xây dựng bộ Mux 16 – 1, chỉ sử dụng các bộ mux 4 – 1 • Xây dựng bộ Mux 8 – 1, chỉ sử dụng các bộ mux 2 – 1 • Xây dựng bộ Mux 8 – 1, chỉ sử dụng 1 bộ mux 2 – 1, và 1 bộ mux 4 – 1.