Bài giảng Kiến trúc máy tính - Chương 3: Mức logic số

ppt 153 trang phuongnguyen 3200
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 3: Mức 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:

  • pptbai_giang_kien_truc_may_tinh_chuong_3_muc_logic_so.ppt

Nội dung text: Bài giảng Kiến trúc máy tính - Chương 3: Mức logic số

  1. CHƯƠNG 3 MỨC LOGIC SỐ
  2. GIỚI THIỆU 3.1. CÁC CỔNG VÀ ĐẠI SỐ LOGIC 3.2. CÁC MẠCH LOGIC SỐ CƠ BẢN n Mạch tích hợp n Các mạch tổ hợp ¨ Tổng quát ¨ Mạch cộng ¨ Bộ dồn kênh ¨ Bộ phân kênh ¨ Mạch giải mã/mạch mã hoá 3.3 BỘ NHỚ 3.4 CHIP VÀ HỆ THỐNG BUS BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ 2
  3. CÁC CỔNG CƠ BẢN BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ 3
  4. Hàm Logic n Hàm Logic có thể được biểu diễn dưới một số cách như sau: ¨ Bảng chân lý ¨ Biểu thức Logic ¨ Biểu đồ BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ 4
  5. Hàm Logic n Hàm biểu diễn 3 giá trị đầu vào Dạng biểu diễn của hàm F = A B + B C + A C A B C F 0 0 0 0 0 0 1 0 0 1 0 0 0 1 1 1 1 0 0 0 1 0 1 1 1 1 0 1 1 1 1 1 BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ 5
  6. Hàm Logic tương đương – VD n Ba mạch a,b,c đều đưa ra kết quả : F = A B BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ 6
  7. Hàm Logic tương đương n Kiểm tra sự tương đương giữa các mạch? ¨Sử dụng bảng chân lý n Với mọi tổ hợp đầu vào, nếu có cùng kết quả đầu ra  hai hàm tương đương n Chỉ có thể áp dụng khi các hàm logic có số biến ít ¨Sử dụng đại số Bool BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ 7
  8. Các mạch logic số cơ bản n Mạch tích hợp n Mạch tổ hợp n Mạch số học BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ 8
  9. Các mạch tích hợp – IC n Là mạch mà một đơn vị có nhiều cổng n Thường phân loại chip theo số lượng cổng: Ký hiệu Số cổng/chip SSI (Small Scale Integrated) 1-10 MSI (Medium Scale Integrated) 10-100 LSI (Large Scale Integrated) 100-100.000 VLSI (Very Large Scale Integrated) > 100.000 BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ 9
  10. Các mạch tổ hợp n Là mạch có nhiều đầu vào và nhiều đầu ra, các giá trị ra được xác định bằng các giá trị đầu vào tại thời điểm hiện thời n Mạch giải mã, mạch mã hóa, mạch ưu tiên, mạch dồn kênh, mạch phân kênh, mạch cộng .v v BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ 10
  11. Bộ dồn kênh (Multiplexers) n Multiplexer 4-data input MUX ¨ 2n đầu vào dữ liệu ¨ n lối vào điều khiển ¨ Một đầu ra n Dựa vào tín hiệu điều khiển để xác định đầu vào nào sẽ là tín hiệu đưa ra BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ 11
  12. Bộ dồn kênh (Multiplexers) I0 I1 I2 I3 Bộ dồn kênh cho 4 đường dữ liệu vào S1 So BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ 12
  13. Bộ phân kênh (Demultiplexers) • Có một đầu vào • Đầu ra là một trong số 2n đầu ra tuỳ theo tín hiệu điều khiển O0 C1 C0 O1 0 0 O0=I I 0 1 O1=I O2 1 0 O2=I O 1 1 O3=I 3 C1 C0 BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ 13
  14. Bộ phân kênh (Demultiplexers) 74138 có thể được sử dụng như bộ phân kênh và bộ giải mã a. Bộ dồn kênh b. Bộ phân kênh BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ 14
  15. Mạch giải mã (Decoder) n Mạch được ứng dụng vào giải mã chọn địa chỉ n Đầu vào: n bit n Đầu ra: 2n (lựa chọn 1 trong số các đầu ra) n Ví dụ: n=3, 2n = 8 I0 I1 I2 In-2 In-1 n đầu vào n 2n đầu ra O0 O1 O2 O2 -1 BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ 15
  16. Mạch giải mã (Decoder) n Xét I0=1,I1=1,I2=1. Theo sơ đồ ta có O7=111. n Những chân xuất từ O0, ,O6 là 000 do có cổng NOT nên biến 1 0, 0 1 I2 I1 I0 I2 I1 I0 0 0 0 O0 0 0 1 O1 0 1 0 O2 0 1 1 O3 1 0 0 O4 1 0 1 O5 1 1 0 O6 1 1 1 O7 O7 O6 O5 O4 O3 O2 O1 O0 BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ 16
  17. Mạch giải mã (Decoder) 74138 có thể được sử dụng như bộ phân kênh và bộ giải mã BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ 17
  18. Mạch giải mã (Decoder) n Mạch Decoder 2 - 4 BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ 18
  19. Mạch giải mã (Decoder) Logic function BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ 19
  20. Mạch giải mã (Decoder) 74139: Dual decoder chip BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ 20
  21. Mạch mã hóa (Encoder) n Ngược với mạch giải mã n Đầu vào: 2n n Đầu ra: n n Ví dụ: n=3, k=2n = 8 BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ 21
  22. Mạch mã hóa 8 đường ra 3 đường BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ 22
  23. Mạch mã hóa (Encoder) n 8 cổng vào chuyển thành 3 cổng ra dạng số nhị phân 3 bit. Chỉ có 1 cổng vào ở mức tích cực tương ứng với chỉ một tổ hợp mã số 3 cổng ra n Từ bảng bên, ta có Y0 = I1 + I3 + I5 + I7 Y1 = I2 + I3 + I6 + I7 Y2 = I4 + I5 + I6 +I7 BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ 23
  24. Mạch mã hóa (Encoder) BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ 24
  25. Mạch mã hóa (Encoder)(4-2) BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ 25
  26. Mạch mã hóa (Encoder) n Priority encoders BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ 26
  27. Bộ so sánh • So sánh 2 từ nhị phân bằng cách so sánh các cặp bit tương ứng. VD: A = A3A2A1A0, B = B3B2B1B0 • Đầu ra A=B sẽ có giá trị 1 nếu 2 từ đưa vào là bằng nhau, ngược lại sẽ có giá trị 0. BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ 27
  28. Các mạch số học n Bộ dịch n Bộ cộng n Bộ số học và logic ALU n Bộ tạo tín hiệu thời gian (clock) BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ 28
  29. Bộ dịch - shifter n VD: Bộ dịch bit 8 bit: ¨ 8 đầu vào: D0 D7; 8 đầu ra: S0 S7 ¨ C xác định hướng dịch chuyển của các bit, nếu C=1: dịch phải một vị trí, nếu C=0: dịch trái một vị trí BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ 29
  30. Bộ cộng (Adders) n Bộ cộng nửa (Half-adder) ¨Cộng hai bit ¨Trả lại tổng và số nhớ carry out ¨Không có lối vào cho số nhớ carry – in nên không dùng để cộng các bit bậc cao hơn 0 n Bộ cộng đủ (Full-adder) ¨Cộng hai bit vào và bit nhớ carry – in ¨Trả lại tổng và số nhớ carry out ¨Cho phép xây dựng bộ cộng có kích thước lớn N bit BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ 30
  31. Bộ cộng (Adders) BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ 31
  32. Bộ cộng (Adders) A 16-bit ripple-carry adder BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ 32
  33. Bộ cộng (Adders) BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ 33
  34. Bộ số học và logic - ALU n VD: ¨ F0F1=00: A AND B ¨ F0F1=01: A OR B ¨ F0F1=10: NOT B (đảo B) ¨ F0F1=11: A + B 11 BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ 34
  35. Bộ số học và logic - ALU 11 ALU 8-bit được xây dựng từ 8 bộ ALU kiểu bit-slices BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ 35
  36. Mạch tạo xung Clock n Các mạch của máy tính được điều khiển bởi một mạch tạo các chuỗi xung tuần hoàn gọi là xung Clock n Xung Clock xác định các chu kỳ của máy tính ¨ Ví dụ: n Một chu kỳ được ấn định để thực hiện một vi lệnh n Các ngõ vào của ALU phải có giá trị ổn định khi kết quả ngõ ra được lưu trữ. 1 2 3 4 5 6 7 8 9 10 12 11 Q0 delay delay Q1 delay Q2 Q3 BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ 36
  37. 3.3 Bộ nhớ BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ 37
  38. Thanh ghi chốt RS n Lối vào ¨ S (set): Thiết lập Q=1 ¨ R (Reset): Xoá Q=0 n Lối ra: Q và n R=S=0: Trong khi Thanh ghi RS đang ở một trong 2 trạng thái cân bằng ổn định, Q sẽ không thay đổi n S=1, R=0 trong khi Q=0 Q=1 n R=1, S=0 Q=0 không phụ thuộc trạng thái trước đó n R=S=1 : Cấm BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ 38
  39. Thanh ghi chốt RS hoạt động theo nhịp xung đồng hồ n Sử dụng thêm tín hiệu clock n Mục đích: làm thanh ghi RS chỉ có thể chuyển trạng thái vào những khoảng thời gian xác định n Bình thường clock = 0: không thể chuyển trạng thái n Clock = 1: thanh ghi phản ứng theo S và R BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ 39
  40. Thanh ghi chốt D hoạt động theo nhịp xung đồng hồ n Mục đích: loại trừ tổ hợp R = S = 1 bị cấm n D=1, clock = 1: Q =1 n D=0, clock = 1: Q = 0 n Qn+1 = Dn BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ 40
  41. 3.3.2 Flip-flop và thanh ghi 3.3.2.1 Flip-flop D n Flip-flop D là một biến thể của thanh ghi chốt D, có khả năng trong khoảng thời gian ứng với xung đồng hồ rất ngắn trên lối vào clock, ghi nhận được giá trị ở lối vào D n Thời gian kéo dài xung không quan trọng, chỉ cần sự chuyển trạng thái xảy ra đủ nhanh. BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ 41
  42. 3.3.2.1 Flip-flop D Ký hiệu chuẩn của một số thanh ghi chốt và flip-flop. ¨ Hình a) là thanh ghi chốt D, chuyển trạng thái khi tín hiệu CK=1, bình thường CK=0. (chuyển mạch theo mức.) ¨ Hình b) là thanh ghi chốt D, chuyển trạng thái khi tín hiệu CK=0, bình thường CK=1. (chuyển mạch theo mức.) ¨ Hình c) và d) là các Flip-flop, ở lối vào clock của chúng được vẽ ký hiệu đầu mũi tên ‘>‘. ¨ Hình (e): Nhiều thanh ghi chốt và flip-flop ngoài đầu ra Q còn có đầu ra và có thêm các đầu vào Set hoặc Preset (để thiết lập Q=1) và Reset hay Clear (để thiết lập Q=0) BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ 42
  43. 3.3.2.1 Flip-flop D n Hình a: chip có chứa 2 flip-flop D độc lập với nhau, có các chân clear và preset. n Hình b: một loại chip khác chứa 8 flip-flop D BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ 43
  44. Một số loại Flip-Flop điển hình n Tìm hiểu và mô tả chi tiết hoạt động (bao gồm cả bảng trạng thái) của một số loại Flip-Flop sau BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ 44
  45. 3.3.2.2 Thanh ghi - Register n Là một nhóm các phần tử nhớ cơ bản cùng hoạt động như một đơn vị. n Thanh ghi thực hiện các nhiệm vụ: nhớ, tính toán số học - dịch trái, dịch phải hoặc các thao tác khác phức tạp hơn nữa. n Các thanh ghi làm nhiệm vụ nhớ thường được xây dựng từ các flip-flop, chúng cần có khả năng hoạt động ở tốc độ cao hơn các thanh ghi được sử dụng trong bộ nhớ chính. BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ 45
  46. 3.3.2.2 Thanh ghi - Register Thanh ghi đệm 4-bit, sử dụng 4 flip-flop D. BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ 46
  47. 3.3.3 Bộ nhớ ROM n ROM (Read Only Memory) là bộ nhớ giữ thông tin cố định, không thay đổi nội dung ngay cả khi ngắt nguồn điện nuôi: ¨ ROM mặt nạ (Maskable ROM) ¨ ROM có thể nạp chương trình (PROM - Programmable ROM) ¨ ROM có thể xoá (Erasable ROM) BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ 47
  48. 3.3.3.1 ROM mặt nạ n Thường được tổ chức dưới dạng ma trận. ¨ Có đi-ốt tại vị trí (i,j): 1 ¨ Không có: 0 ¨ Mỗi hàng i: 1 word ¨ Dây địa chỉ Ai được sử dụng để chọn lấy một từ ¨ Đưa nội dung ra ngoài: D3D2D1D0. n Hình 3-25b: một "ô nhớ“ n Hình 3-25c: bảng chân lý BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ 48
  49. 3.3.3.2 PROM - ROM có thể nạp chương trình n Giống ROM mặt nạ: ¨ Các phần tử nhớ được bố trí ở giao điểm của các dây hàng và cột ¨ Một cầu chì sẽ đóng vai trò của công tắc có hai trạng thái là đóng, mở. n Khác ROM mặt nạ: ¨ Chip PROM khi xuất xưởng chưa được ghi nội dung, tất cả các cầu chì đều chưa đứt. ¨ NSD có thể tự ghi nội dung bằng một thiết bị chuyên dụng – ROM Writer. BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ 49
  50. 3.3.3.3 EPROM - ROM có thể xoá và ghi lại n Phần tử nhớ là 1 transistor MOS, có 3 cực: S (nguồn), D (góp), Gốc). n Giá thành cao hơn PROM. BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ 50
  51. Tổ chức bộ nhớ n Phần tử nhớ là các mạch D-latch n Tổ hợp các bits thành các words Điều khiển Điều khiển Dữ liệu Dữ liệu Chọn Chọn Ô nhớ vào Ô nhớ ra BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ 51
  52. BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ 52
  53. Tổ chức bộ nhớ n Tổ chức chip nhớ A0 D0 A D 1 . 1 . CHIP . . . NHỚ . . An - 1 . CS Dm - 1 WE OE BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ 53
  54. Tổ chức bộ nhớ n Tổ chức chip nhớ ¨ Các đường địa chỉ: A0  An - 1 có 2n ngăn nhớ. ¨ Các đường dữ liệu: D0  Dm - 1 độ dài ngăn nhớ là m bit. A D ¨ Dung lượng chip nhớ: 2n x m bit 0 0 A1 . D1 ¨ Các đường điều khiển: . CHIP . n Tín hiệu chọn chip: CS (Chip Select) . . . NHỚ . n Tín hiệu điều khiển đọc: RD / OE An - 1 . CS Dm - 1 n Tín hiệu điều khiển ghi: WR / WE WE OE BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ 54
  55. Tổ chức của DRAM n Dùng n đường địa chỉ dồn kênh cho phép truyền 2n bit địa chỉ n Tín hiệu chọn địa chỉ hàng RAS (Row Address Select) n Tín hiệu chọn địa chỉ cột CAS (Column Address Select) n Dung lượng của DRAM: 2n x m bit BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ 55
  56. Thiết kế module nhớ bán dẫn n Đặt vấn đề ¨Dung lượng chip nhớ là 2n x m bit ¨Cần thiết kế để tăng dung lượng: n Tăng độ dài ngăn nhớ (tăng m) n Tăng số lượng ngăn nhớ (tăng n) n Kết hợp cả hai loại (tăng m và n) BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ 56
  57. Thiết kế module nhớ bán dẫn n Tăng độ dài ngăn nhớ (tăng m) ¨Ví dụ 1: n Cho chip nhớ SRAM: 8K x 4 bit n Hãy thiết kế modul nhớ 8K x 8 bit n Dung lượng chip nhớ: ? n Chip nhớ có: ? đường địa chỉ và ? đường dữ liệu n Modul nhớ cần có:? đường địa chỉ và ? đường dữ liệu BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ 57
  58. Thiết kế module nhớ bán dẫn n Tăng độ dài ngăn nhớ (tăng m) ¨Ví dụ 1: n Cho chip nhớ SRAM: 8K x 4 bit n Hãy thiết kế modul nhớ 8K x 8 bit ¨Giải: n Dung lượng chip nhớ: 213 x 4 bit n Chip nhớ có: ¨ 13 đường địa chỉ (A0  A12), 4 đường dữ liệu (D0  D3) n Modul nhớ cần có: ¨ 13 đường địa chỉ (A0  A12), 8 đường dữ liệu (D0  D7) BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ 58
  59. Thiết kế module nhớ bán dẫn A0  A12 A0  A12 A0  A12 8K x 4 bit 8K x 4 bit D4D7 D0  D3 D0  D3 D0D3 CS CS WE OE WE OE CS WE OE BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ 59
  60. Thiết kế module nhớ bán dẫn n Tăng độ dài ngăn nhớ (tăng m) ¨Bài toán tăng độ dài tổng quát: n Cho chip nhớ 2n x m bit n Cần thiết kế modul nhớ 2n x (k.m) bit Cần ghép nối k chip nhớ BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ 60
  61. Thiết kế module nhớ bán dẫn n Tăng số lượng ngăn nhớ (tăng n) n Ví dụ 2: ¨Cho chip nhớ SRAM: 4K x 4 bit ¨Hãy thiết kế modul nhớ 8K x 4 bit : ¨Dung lượng chip nhớ: ? ¨Chip nhớ có: n ? đường địa chỉ và ? đường dữ liệu ¨Modul nhớ cần có: n ? đường địa chỉ, ? đường dữ liệu BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ 61
  62. Thiết kế module nhớ bán dẫn n Tăng số lượng ngăn nhớ (tăng n) n Ví dụ 2: ¨ Cho chip nhớ SRAM: 4K x 4 bit ¨ Hãy thiết kế modul nhớ 8K x 4 bit n Giải: ¨ Dung lượng chip nhớ: 212 x 4 bit ¨ Chip nhớ có: n 12 đường địa chỉ (A0  A11), 4 đường dữ liệu (D0  D3) ¨ Modul nhớ cần có: n 13 đường địa chỉ (A0  A12), 4 đường dữ liệu (D0  D3) n 212+1=213 ý tưởng xây dựng mạch như thế nào?, sử dụng thêm mạch gì? BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ 62
  63. Thiết kế module nhớ bán dẫn A0A11 A0  A11 D0D3 CS WE OE A 12 A Y0 D0  D3 A0A11 CS G Y1 D0D3 CS G A Y1 Y0 WE OE 0 0 0 1 0 1 1 0 WE 1 X 1 1 OE BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ 63
  64. Thiết kế module nhớ bán dẫn n Tăng số lượng ngăn nhớ (tăng n) tổng quát ¨Cho chip nhớ 2n x m bit ¨Cần ghép nối modul nhớ: 2k+n x m bit Cần ghép nối 2k chip và phải dùng bộ giải mã k: 2k (k 2k) BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ 64
  65. Thiết kế module nhớ bán dẫn n Kết hợp cả hai loại (tăng m và n) ¨Ví dụ 3: n Cho chip nhớ SRAM: 8K x 4 bit n Hãy thiết kế modul nhớ 16K x 8 bit n Dung lượng chip nhớ: ? n Chip nhớ có: ? đường địa chỉ, ? đường dữ liệu n Modul nhớ cần có: ? đường địa chỉ , ? đường dữ liệu BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ 65
  66. Thiết kế module nhớ bán dẫn n Kết hợp cả hai loại (tăng m và n) ¨Ví dụ 3: n Cho chip nhớ SRAM: 8K x 4 bit n Hãy thiết kế modul nhớ 16K x 8 bit ¨Giải: n Dung lượng chip nhớ: 213 x 4 bit n Chip nhớ có: ¨ 13 đường địa chỉ (A0  A12), 4 đường dữ liệu (D0  D3) n Modul nhớ cần có: ¨ 14 đường địa chỉ (A0  A13), 8 đường dữ liệu (D0  D7) BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ 66
  67. Thiết kế module nhớ bán dẫn A0A12 A0A12 A0A12 D4D7 D0D3 D0D3 CS CS D0D3 WE OE WE OE A13 A Y0 CS A A G Y1 A0A12 0 12 D4D7 D D D0D3 0 3 CS CS D0D3 WE OE WE OE WE OE BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ 67
  68. Thiết kế module nhớ bán dẫn n Bài toán tăng số lượng và độ dài tổng quát: n Cho chip nhớ 2n x m bit n Cần ghép nối modul nhớ: 2p+n x (q.m) bit n Cần ghép nối q.2p chip thành 2p bộ, mỗi bộ q chip và phải dùng bộ giải mã p: 2p (p 2p) BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ 68
  69. Không gian nhớ Segment (16 bit) Offset (16) n 216 = 64K 20 xxxx xxxx xxxx xxxx 0000 2 = 1MB Tghi 16 bit dịch trái 4 không gian xxxx xxxx xxxx xxxx xxxx nhớ 20 bit x Địa chỉ vật lý = segment x 24 + offset x +1 16 byte • segment = 16 bit số lượng segment: 216 = 64k đoạn • offset = 16 bit kích thước tối đa của đoạn: 64KB Không gian logic: 216 x 216 = 64 kđoạn x 64kB ~ 4G >> 1M vật lý BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ 69
  70. Giải mã địa chỉ Lý do cần giải mã địa chỉ khi ghép nối các vi mạch nhớ với VXL: n Gán địa chỉ cụ thể (trong toàn bộ không gian địa chỉ của bộ nhớ) cho từng mạch nhớ. n Nếu không có bộ giải mã địa chỉ thì chỉ nối được một phần vi mạch nhớ tới bộ VXL n VD: Khi ghép nối vi mạch nhớ EPROM 2716 2Kx8 tới bộ VXL 8088. ¨ Số chân địa chỉ của 8088: ? ¨ Số chân địa chỉ của 2716: ? Dung lượng tối đa mà 8088 có thể sử dụng khi dùng: n Bộ giải mã n Không dùng bộ giải mã BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ 70
  71. Giải mã địa chỉ Lý do cần giải mã địa chỉ khi ghép nối các vi mạch nhớ với VXL: n Gán địa chỉ cụ thể (trong toàn bộ không gian địa chỉ của bộ nhớ) cho từng mạch nhớ. n Nếu không có bộ giải mã địa chỉ thì chỉ nối được một phần vi mạch nhớ tới bộ VXL n VD: Khi ghép nối vi mạch nhớ EPROM 2716 2Kx8 tới bộ VXL 8088. ¨ Số chân địa chỉ của 8088: 20 chân ¨ Số chân địa chỉ của 2716: 11 chân bộ VXL 8088 sẽ gửi địa chỉ trên 20 bit trên bus địa chỉ. Nếu chỉ nối 11 chân địa chỉ của 8088 với 2716 thì 8088 chỉ nhìn thấy 2KB bộ nhớ thay vì 1MB như nó có thể BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ 71
  72. Giải mã địa chỉ - Bộ giải mã cổng NAND n Sử dụng 1 cổng NAND để giải mã n VD: giải mã địa chỉ cho vi mạch nhớ EPROM 2716 2Kx8 ghép nối với 8088 n Phân tích, vẽ sơ đồ mạch? ¨Số đường địa chỉ, đường dữ liệu của chip nhớ? ¨Số đường địa chỉ của 8088? ¨Phương pháp nối? ¨Vẽ sơ đồ mạch. BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ 72
  73. Giải mã địa chỉ - Bộ giải mã cổng NAND n VD: giải mã địa chỉ cho vi mạch nhớ EPROM 2716 2Kx8 ghép nối với 8088 Phân tích: n EPROM 2716 2Kx8 11 đường địa chỉ: A10 – A0, 8 đường dữ liệu D7 – D0 n 8088 có 20 đường địa chỉ: A19-A0 n Các chân từ A10-A0 của 8088 được nối với đầu vào địa chỉ từ A10 – A0 của 2716 n Các chân A19 – A11 được nối với đầu vào của bộ giải mã cổng NAND BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ 73
  74. Giải mã địa chỉ - Bộ giải mã cổng NAND D7 BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ 74
  75. Giải mã địa chỉ - Bộ giải mã cổng NAND n Đầu ra NAND = 0 khi các chân A19 – A11 = 1 và IO/M =0. n 20 bit địa chỉ của các ô nhớ trong EPROM có dạng: 1111 1111 1XXX XXXX XXXX n Khoảng địa chỉ dành cho EPROM là từ: 1111 1111 1000 0000 0000 = FF800H Đến: 1111 1111 1111 1111 1111 = FFFFF H BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ 75
  76. Giải mã địa chỉ - Bộ giải mã 74LS138 n Mạch giải mã 74LS138 BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ 76
  77. Giải mã địa chỉ - Bộ giải mã 74LS138 n Bảng chân lý của 74LS138 BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ 77
  78. Giải mã địa chỉ - Bộ giải mã 74LS138 n Nhận xét: ¨ Tại bất kỳ thời điểm nào cũng chỉ có một đầu ra bằng 0 ¨ Để bộ giải mã hoạt động thì G2A = 0, G2B=0, G1=1 ¨ A, B, C sẽ chọn đầu ra nào =0. Đầu ra bộ giải mã được nối với CE hay CS của vi mạch nhớ BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ 78
  79. Giải mã địa chỉ - Bộ giải mã 74LS138 n Ví dụ: Giải mã địa chỉ cho bộ nhớ 64Kx8 (gồm 8 EPROM 2764 – 8Kx8) trong hệ VXL 8088 BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ 79
  80. Giải mã địa chỉ - Bộ giải mã 74LS138 BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ 80
  81. Giải mã địa chỉ - Bộ giải mã 74LS138 n Nhận xét: ¨ Các đầu ra của 74LS138 được nối với CE ¨Tại bất kỳ thời điểm nào cũng chỉ có một đầu ra bằng 0 chỉ có một vi mạch nhớ được chọn và gửi dữ liệu của nó trên bus dữ liệu khi RD = 0 ¨Khi A19 – A16 đều =1, IO/M=0 G2A=0, G2B=0, G1=1 kích hoạt bộ giải mã ¨Khi bộ giải mã hoạt động A15 – A13 xác định đầu ra nào = 0, và tương ứng một vi mạch nhớ sẽ được chọn BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ 81
  82. Giải mã địa chỉ - Bộ giải mã 74LS138 n Dạng địa chỉ một ô nhớ được giải mã: 1111 XXXX XXXX XXXX XXXX n Khoảng địa chỉ ô nhớ từ: 1111 0000 0000 0000 0000 = F0000H n Đến: 1111 1111 1111 1111 1111= FFFFFH BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ 82
  83. Giải mã địa chỉ - Bộ giải mã 74LS138 n Khoảng địa chỉ của vi mạch nhớ nối tới đầu ra của bộ giải mã n VD: xác định khoảng địa chỉ của vi mạch nhớ nối tới đầu ra 0, vi mạch này được chọn khi CBA = 000 BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ 83
  84. Giải mã địa chỉ - Bộ giải mã 74LS138 n Dạng địa chỉ vi mạch nhớ: 1111 000X XXXX XXXX XXXX n Khoảng địa chỉ 1111 0000 0000 0000 0000 = F0000H Đến: 1111 0001 11111111 1111 = F1FFFH BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ 84
  85. Giải mã địa chỉ - Bộ giải mã 74LS138 n Về nhà: Đọc về bộ giải mã kép 2- 4 (74LS139) BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ 85
  86. Bộ nhớ đệm (Bộ nhớ Cache) n Thiết bị có truy cập dữ liệu hay thực thi các chương trình trực tiếp từ ổ đĩa cứng không? n Tại sao bộ nhớ chính không được thiết kế để có thể đạt được tốc độ như thanh ghi ? BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ 86
  87. Ý tưởng chung: n Khi cần truy cập một từ, từ đó sẽ được chuyển từ bộ nhớ lớn tốc độ thấp (bộ nhớ chính - main memory) về bộ nhớ nhỏ tốc độ cao (bộ nhớ cache), để lần sau nếu được sử dụng thì có thể truy cập nhanh hơn. BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ 87
  88. Bộ nhớ đệm (Bộ nhớ Cache) n Là một lượng nhỏ các đơn vị nhớ tốc độ cao n Nằm giữa bộ nhớ chính và CPU n Mục đích là làm tăng tốc độ xử lý n Có thể nằm trong chip CPU hoặc ngay trên bản mạch CPU n Cache hoạt động theo sự điều khiển của vi chương trình BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ 88
  89. Bộ nhớ đệm (Bộ nhớ Cache) n Bộ nhớ cache thường là một phân đoạn dùng với bus riêng được nối với CPU n Dùng để lưu giữ dữ liệu và mã lệnh mà CPU hay truy cập đến BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ 89
  90. Bộ nhớ đệm (Bộ nhớ Cache) n Phân mức Cache n Cache L1 (level 1) n Cache L2 (level 2) n Một số máy tính hiện đại còn có cache L3 (vd: CPU Pentium 4 Extreme Edition ) BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ 90
  91. Bộ nhớ đệm (Bộ nhớ Cache) n Ở thế hệ máy cũ, L2 còn nằm trên mainboard n Ngày nay, L1, L2 đều được tích hợp trên CPU BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ 91
  92. Bộ nhớ đệm (Bộ nhớ Cache) n Trên CPU đa lõi: ¨Với các CPU dual-core Pentium D và AMD được xây dựng trên kiến trúc K8, mỗi lõi của CPU lại có Cache nhớ L2 riêng của chính nó. Chính vì vậy mỗi một lõi làm việc như nó đang làm việc cho một CPU độc lập. ¨Các CPU dual-core của Intel được xây dựng trên kiến trúc Core và Pentium M thì hai Cache nhớ L2 lại có thể được chia sẻ giữa hai lõi BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ 92
  93. Bộ nhớ đệm (Bộ nhớ Cache) n Hoạt động của bộ nhớ Cache ¨CPU yêu cầu nội dung của một vùng nhớ nào đó ¨Kiểm tra cache xem có nội dung đó chưa? ¨Nếu có, đọc ngay từ cache (Hit Cache) ¨Nếu không có, đọc khối nhớ từ bộ nhớ chính và cache (miss cache) ¨Sau đó chuyển từ cache vào CPU BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ 93
  94. Bộ nhớ đệm (Bộ nhớ Cache) n Tổ chức Cache ¨Nguyên lý cục bộ về không gian: khi một phần tử nào đó được truy xuất thì các phần tử tiếp theo cũng có thể được truy xuất n Ví dụ: Các chỉ thị trong chương trình thường được truy cập tuần tự n Truy cập một phần tử của mảng ¨Nguyên lý cục bộ về thời gian: nếu một phần tử nào đó được truy xuất thì nó có thể được truy xuất lại trong một khoảng thời gian ngay sau đó n Ví dụ: vòng lặp của chương trình BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ 94
  95. Bộ nhớ đệm (Bộ nhớ Cache) n Phân chia bộ nhớ thành các khối. ¨Bộ nhớ chính lưu trữ theo các word theo một địa chỉ tuần tự ¨Cache lại không sắp xếp như vậy ¨Vì thế lược đồ địa chỉ của bộ nhớ chính được sử dụng để xác định các khối của từ nhớ và các phương thức định vị của khối nhớ đó BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ 95
  96. Bộ nhớ đệm (Bộ nhớ Cache) n Cấu trúc bộ nhớ cache BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ 96
  97. Bộ nhớ đệm (Bộ nhớ Cache) n Cache: ¨ Chia thành các Line: Tag và Block ¨ Tag: lưu địa chỉ của ô nhớ được chuyển vào cache từ main memmory (RAM). ¨ Block lưu dữ liệu của block chuyển từ MainMem vào. n Main Memory: ¨ Chia thành các block có kích thước bằng block trên Cache. ¨ Trong mỗi block lại được chia thành k word. n Vậy: ¨ Trên MainMem có 2n word => số block = 2n/k ¨ Kích thước của cache = C * k word BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ 97
  98. Bộ nhớ đệm (Bộ nhớ Cache) l Phân chia bộ nhớ thành các khối. BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ 98
  99. Bộ nhớ đệm (Bộ nhớ Cache) n Nhận xét: Trong hình trên: ¨Cần sử dụng bao nhiêu bit để biểu diễn địa chỉ bộ nhớ? ¨Một block có bao nhiêu word? ¨Cần sử dụng bao nhiêu bit để xác định vị trí word? ¨Cần bao nhiêu bit để biểu diễn block_id? BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ 99
  100. Bộ nhớ đệm (Bộ nhớ Cache) n Nhận xét: Trong hình trên: ¨Cần sử dụng 20 bit để biểu diễn địa chỉ bộ nhớ ¨Một block có 4 word ¨Cần sử dụng 2 bit để xác định vị trí word ¨Còn 20-2=18 bit để biểu diễn block_id BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ 100
  101. Bộ nhớ đệm (Bộ nhớ Cache) n Một địa chỉ bộ nhớ sẽ được chia thành 2 phần: ¨Một để biểu diễn số khối: sử dụng các bit cao để biểu diễn ¨Một để xác định vị trí của word trong khối: sử dụng bit thấp để biểu diễn BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ 101
  102. Bộ nhớ đệm (Bộ nhớ Cache) n Ví dụ: Chia địa chỉ A5696 theo khối kích thước 4 word. Xác định vị trí word và block id? BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ 102
  103. Bộ nhớ đệm (Bộ nhớ Cache) n Ví dụ: Chia địa chỉ A5696 theo khối kích thước 4 word BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ 103
  104. Bộ nhớ đệm (Bộ nhớ Cache) n Ví dụ: Có bao nhiêu khối kích thước 8 word trong 1Gig bộ nhớ? BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ 104
  105. Bộ nhớ đệm (Bộ nhớ Cache) n Ví dụ: Có bao nhiêu khối kích thước 8 word trong 1Gig bộ nhớ? ¨ 8 word: 3bit để xác định vị trí của khối. ¨ Kích thước bộ nhớ là 1Gig (230): cần phải có 30 đường địa chỉ. ¨ Đã sử dụng 3 đường để biểu diễn vị trí word, còn lại 27 đường để biểu diễn số khối số khối: 227 = 134217728 BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ 105
  106. Bộ nhớ đệm (Bộ nhớ Cache) n Chức năng ánh xạ (Mapping Function) ¨Ánh xạ trực tiếp ¨Ánh xạ liên kết ¨Ánh xạ liên kết thành bộ BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ 106
  107. Bộ nhớ đệm (Bộ nhớ Cache) n Lý do cần phải ánh xạ: ¨ Bộ nhớ đệm nhanh lưu trữ những dữ liệu có ích tuy nhiên nó sẽ trở thành vô ích nếu CPU không tìm thấy nó. ¨ Khi truy cập vào dữ liệu hoặc các tập lệnh, CPU lần đầu tiên tạo ra một địa chỉ bộ nhớ chính. ¨ Nếu dữ liệu đã được sao chép vào bộ nhớ cache, các địa chỉ của dữ liệu trong bộ nhớ cache không giống như là địa chỉ chính của bộ nhớ. ¨ Làm thế nào CPU tìm ra dữ liệu khi nó đã được sao chép vào bộ nhớ đệm? CPU sử dụng một chương trình ánh xạ "chuyển đổi" các địa chỉ của bộ nhớ chính vào một vị trí bộ nhớ cache. BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ 107
  108. Bộ nhớ đệm (Bộ nhớ Cache) n Giả sử, bộ nhớ chính được chia thành n khối, và cache chứa được m khối (với m<n). Số lần lấp đầy vào cache = Integer (n/m) n Ví dụ: bộ nhớ chính có kích thước là 128Mg, được chia thành các khối kích thước là 4. bộ nhớ Cache có kích thước là 256K, các khối trong Cache cũng được chia thành các khối có kích thước là 4. Vậy sau bao nhiêu lần truy xuất thì bộ nhớ chính sẽ lấp đầy Cache? BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ 108
  109. Bộ nhớ đệm (Bộ nhớ Cache) n Ví dụ: bộ nhớ chính có kích thước là 128Mg, được chia thành các khối kích thước là 4. bộ nhớ Cache có kích thước là 256K, các khối trong Cache cũng dược chia thành các khối có kích thước là 4. Vậy sau bao nhiêu lần truy xuất thì bộ nhớ chính sẽ lấp đầy Cache? n Giải: ¨ Nếu bộ nhớ chính có kích thước là 128Meg (227), kích thước của khối là 4 (22), vì thế bộ nhớ chính có thể lưu n= 227-2=225 khối. ¨ Nếu hệ thống Cache lưu trữ được 256K (218) từ nhớ, Ta có m=218-2=216 khối. Số lần lấp đầy Cache: n/m=225/216=29=512 lần BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ 109
  110. Bộ nhớ đệm (Bộ nhớ Cache) n Ánh xạ trực tiếp: ¨ Mỗi Block của BNC chỉ được ánh xạ vào một Line duy nhất: i = j mod m ¨ i: số hiệu Line trong cache ¨ j: số hiệu Block trong BNC ¨ m: số lượng Line trong cache n Cụ thể: B0 L0 Bm L0 B1 L1 Bm+1 L1. . . . . . Bm-1 Lm-1 B2m-1 Lm-1 . . . n Như vậy L0 : B0, Bm, B2m, , Bnm L1 : B1, Bm+1, B2m+1, , Bnm+1 . . . . . Lm-1: Bm-1, B2m-1, B3m-1, , B(n+1)m-1 BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ 110
  111. Ánh xạ trực tiếp BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ 111
  112. Ánh xạ trực tiếp n Khi đó, địa chỉ do CPU phát ra gồm 3 trường: Tag Line Word t bit r bit w bit ¨ Word: xác định số hiệu ngăn nhớ trong Block (vị trí word trong block) Block (Line) có 2w ngăn nhớ ¨ Line: xác định số hiệu Line để lưu khối trong cache Cache có 2r Line, cache chứa 2r + w ngăn nhớ ¨ Tag: xác định vị trí Block trong bộ nhớ BNC chứa 2t + r + w ngăn nhớ BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ 112
  113. Ví dụ n Cho máy tính có dung lượng: ¨BNC = 128 MB, cache = 256 KB, line = 32 byte, ¨Độ dài ngăn nhớ = 1 byte. n Tìm dạng địa chỉ do BXL phát ra? BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ 113
  114. Ví dụ n Cho máy tính có dung lượng: ¨ BNC = 128 MB, cache = 256 KB, line = 32 byte, ¨ Độ dài ngăn nhớ = 1 byte. n Tìm dạng địa chỉ do BXL phát ra? n Giải: Ta có: ¨ BNC = 128 MB = 27 * 220 byte = 227 byte ¨ Cache = 256 KB = 28 * 210 byte = 218 byte ¨ Line = 32 byte = 25 byte w = 5 ¨ Số lượng Line trong cache: 218/ 25 = 213 r = 13 ¨ Số bit của phần Tag: t= 27 - 13 - 5 = 9 9 13 5 BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ 114
  115. Ví dụ n Cho máy tính có dung lượng: ¨BNC = 256 MB, cache = 64 KB, line = 16 byte, ¨Độ dài ngăn nhớ = 4 byte. n Tìm dạng địa chỉ do BXL phát ra? BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ 115
  116. Ví dụ n Cho máy tính có dung lượng: ¨BNC = 256 MB, cache = 64 KB, line = 16 byte, ¨Độ dài ngăn nhớ = 4 byte. n Tìm dạng địa chỉ do BXL phát ra? n Giải: Ta có: ¨BNC = 256 MB = 228 byte = 228/22 = 226 ng/nhớ ¨Cache = 64 KB = 216 byte = 216 /22 = 214 ng/nhớ ¨Line = 16 byte =24/ 22 = 22 ng/nhớ w = 2 ¨Số lượng Line trong cache: 214 / 22 = 212 r = 12 ¨Số bit của phần Tag: t= 26 - 12 - 2 = 12 BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ 116
  117. Ví dụ n Hãy xác định giá trị của Line(block), Tag và Word trong địa chỉ có kích thước 32 bit là 3FE9704Ah, biết rằng: ¨Bộ nhớ sử dụng cơ chế ánh xạ trực tiếp. ¨1 word=2 byte: ¨Kích thước cache 16K line ¨Kích thước của 1 bock = 1 line = 16 word BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ 117
  118. Ví dụ ¨ 3FE9704Ah = 0011 1111 1110 1001 0111 0000 0100 1010 b ¨ Kích thước cache 16K line = 214 line => L=14 bit ¨ Kích thước 1 block = 16 word = 24 => k = 4 bit ¨ => Số bít cho trường Tag = 32 – 4 – 14 = 14 Tag Line Word Size 14 bit 14 bit 4 bit Hệ nhị phân 0011 1111 1110 10 01 0111 0000 0100 1010 Hệ 10 4090 5892 10 BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ 118
  119. Bộ nhớ đệm (Bộ nhớ Cache) n Ví dụ: 10 line đầu tiên của cache có 256 line, được liệt kê ra như bảng dưới đây. Hãy xác định địa chỉ của dữ liệu D8. biết rằng trong cache này lưu thành các khối 4word. BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ 119
  120. Bộ nhớ đệm (Bộ nhớ Cache) n Tag: 110011 n Line: 4 0100 n Word: 10 Tag: 110011 Line 0100 Word 10 t bit r bit w bit n 1100 1101 0010 CD2 BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ 120
  121. Đánh giá n Ưu điểm: ¨Dễ thực hiện, vì một Block được ánh xạ cố định vào một Line không cần thuật toán chọn Line. ¨Thiết kế mạch đơn giản. n Nhược điểm: ¨Xác suất cache hit thấp và hiệu xuất của cache không cao vì mỗi một block chỉ có thể đưa vào một vị trí xác định trong khi các vị trí khác có thể đang trống. BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ 121
  122. Bộ nhớ đệm (Bộ nhớ Cache) n Ánh xạ liên kết: Mỗi Block trong BNC được ánh xạ vào một Line bất kỳ trong Cache n Khi đó, địa chỉ do BXL phát ra có dạng: Tag Word s bit w bit ¨ Word: xác định ngăn nhớ trong Block Block có 2w ngăn nhớ ¨ Tag: xác định Block đang ở trong Line Số lượng Block: 2s Dung lượng BNC: 2s + w ngăn nhớ BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ 122
  123. n Ưu điểm: ¨Tỉ lệ cache hit cao hơn ánh xạ trực tiếp vì một Block được phép vào một Line bất kỳ. n Nhược điểm: ¨Thiết kế mạch tương đối phức tạp, thể hiện ở mạch so sánh. BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ 123
  124. Bộ nhớ đệm (Bộ nhớ Cache) n Ví dụ: bảng sau đây biểu diễn 5 line trong một Cache sử dụng cơ chế ánh xạ liên kết, biết rằng kích thước của mỗi khối là 8. Hãy xác định địa chỉ của dữ liệu C9 BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ 124
  125. Bộ nhớ đệm (Bộ nhớ Cache) n Giải: tại địa chỉ C9 có Tag : 0100011010101 Word: 001 Kết hợp hai phần này ta xác định được địa chỉ trong bộ nhớ chính khi ánh xạ vào trong cache là: 0100 0110 1010 1001=46A9 BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ 125
  126. Bộ nhớ đệm (Bộ nhớ Cache) n Ví dụ: dữ liệu trong bộ nhớ có địa chỉ là 1E65 sẽ tương ứng với địa chỉ nào trong bảng sau BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ 126
  127. Bộ nhớ đệm (Bộ nhớ Cache) n Ví dụ: dữ liệu trong bộ nhớ có địa chỉ là 1E65 sẽ tương ứng với địa chỉ nào trong bảng trên n Giải: Chuyển địa chỉ 1E65 sang giá trị nhị phân ta có 0001 1110 0110 0101 Theo cơ chế ánh xạ trên ta có thể phân chia địa chỉ này như sau: 0001111001100 101 Tag ID Word ID Tương ứng với 9E BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ 127
  128. Bộ nhớ đệm (Bộ nhớ Cache) n Cache liên kết thành bộ ¨ Là sự kết hợp giữa cache ánh xạ trực tiếp và cache ánh xạ liên kết bằng cách nhóm các line cùng nhau vào trong một set ¨ Cache được chia thành nhiều Set, mỗi Set gồm nhiều Line liên tiếp ¨ Một Block của BNC chỉ được ánh xạ vào một Set duy nhất trong cache, nhưng được ánh xạ vào Line bất kỳ trong set đó: i = j mod v n i: số hiệu Set trong cache n j: số hiệu Block trong BNC n v: số lượng Set trong cache BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ 128
  129. Bộ nhớ đệm (Bộ nhớ Cache) ¨Ví dụ: một hệ thống sử dụng một cache với 29=512 line, một khối trong bộ nhớ có kích thước 23=8 word chứa trong một không gian nhớ là 230= 1gig. Xét sự kết hợp giữa hai kiểu ánh xạ trên để tạo thành cơ chế ánh xạ liên kết thành bộ BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ 129
  130. n Khi đó, địa chỉ do BXL phát ra gồm: Tag Set Word t bit d bit w bit ¨Word: xác định số hiệu ngăn nhớ trong Block Block (Line) có 2w ngăn nhớ ¨Set: xác định số hiệu Set trong cache Cache có 2d Set ¨Tag: xác định Block nào đang ở trong Line BNC chứa 2t + d + w ngăn nhớ BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ 130
  131. Bộ nhớ đệm (Bộ nhớ Cache) BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ 131
  132. n Cho máy tính có dung lượng: ¨BNC = 512 MB, cache = 128 KB, line = 32 byte, ¨Set = 8 Line, độ dài ngăn nhớ = 1 byte. n Tìm dạng địa chỉ do BXL phát ra? BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ 132
  133. n Cho máy tính có dung lượng: ¨ BNC = 512 MB, cache = 128 KB, line = 32 byte, ¨ Set = 8 Line, độ dài ngăn nhớ = 1 byte. n Tìm dạng địa chỉ do BXL phát ra? n Giải: Ta có: ¨ BNC = 512 MB = 229 byte; Cache = 128 KB = 217 byte Line = 25 byte w = 5 Set = 8 line = 23 line ¨ Dung lượng Set: 23 * 25 = 28 byte số lượng Set trong Cache: 217/28 = 29 d = 9 ¨ Số bit của phần Tag: t= 29 - 9 - 5 = 15 BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ 133
  134. n Cho máy tính có dung lượng: ¨BNC = 256 MB, cache = 128 KB, line = 64 byte, ¨Set = 4 Line, độ dài ngăn nhớ = 4 byte. n Tìm dạng địa chỉ do BXL phát ra? BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ 134
  135. n Cho máy tính có dung lượng: ¨BNC = 256 MB, cache = 128 KB, line = 64 byte, ¨Set = 4 Line, độ dài ngăn nhớ = 4 byte. n Tìm dạng địa chỉ do BXL phát ra? n Giải: Ta có: ¨BNC = 228 byte = 228/22 = 226 ng/nhớ ¨Cache = 217 byte = 217/22 = 215 ng/nhớ ¨Line = 26/22 = 24 ng/nhớ w = 4 ¨D/l Set: 22 * 24= 26 s/l Set: 215/26 = 29 d = 9 ¨Số bit của phần Tag: t= 26 - 9 - 4 = 13 BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ 135
  136. Bộ nhớ đệm (Bộ nhớ Cache) n Ví dụ. Hãy xác định số set trong Block có địa chỉ là 29ABCDE8 Hãy cho biết số Tag, địa chỉ thấp nhất và cao nhất của Block . Biết rằng đây là Cache 4 đường, mỗi Block chứa 16 word. Số lượng line trong Cache là 4K line Kích thước của bộ nhớ chính là 1Gig BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ 136
  137. Bộ nhớ đệm (Bộ nhớ Cache) n Do bộ nhớ có kích thước là 1Gig: cần 30 đường địa chỉ, vậy 4 bit được sử dụng để xác định cho 16 word trong block n Do đây là cache 4 đường và số lượng các Line trong cache là 4K=212. Vậy số set để lưu sẽ là: 212/22=210 cần 10 bit để xác định số Set n 30 bit địa chỉ trên được chia thành: BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ 137
  138. Bộ nhớ đệm (Bộ nhớ Cache) n Địa chỉ: 29ABCDE8 = 0010 1001 1010 1011 1100 1101 1110 1000 ¨ 16 bit đầu tiên để biểu diễn cho Tag ¨ 10 bit tiếp theo để số set sẽ lưu block ¨ 4 bit cuối cùng biểu diễn vị trí của word trong block ¨ Địa chỉ thấp nhất tương ứng với word có địa chỉ là : 0000. Hay chính là địa chỉ 29ADCBE0 ¨ Địa chỉ cao nhất tương ứng với word có địa chỉ là : 1111 Hay chính là địa chỉ 29ADCBEF BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ 138
  139. n Ưu điểm: ¨Tỉ lệ cache hit cao vì một Block được phép vào một Line bất kỳ trong Set, và dễ so sánh. ¨Đây là kỹ thuật ánh xạ tốt nhất trong 3 kỹ thuật. n Nhược điểm: ¨Thiết kế mạch phức tạp. BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ 139
  140. Các thuật toán thay thế n Hai kỹ thuật ánh xạ liên kết: có 4 thuật toán ¨Random: thay ngẫu nhiên một Block cũ nào đó Dễ thực hiện, nhanh nhất, tỉ lệ cache hit thấp. ¨FIFO (First In - First Out): thay Block ở đầu tiên trong số các Block đang có trong cache tỉ lệ cache hit không cao ¨LFU (Least Frequently Used): thay Block được dùng với tần suất ít nhất tỉ lệ cache hit tương đối cao ¨LRU (Least Recently Used): thay Block được dùng gần đây ít nhất tỉ lệ cache hit cao BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ 140
  141. Hoạt động của cache n Đọc: ¨Nếu cache hit: đọc ngăn nhớ từ cache ¨Nếu cache miss: thay Block cache hit n Ghi: ¨Nếu cache hit: có 2 phương pháp: n Write through: ghi dữ liệu vào cả cache và cả BNC n không cần thiết, tốc độ chậm, mạch đơn giản. n Write back: chỉ ghi vào cache, khi nào Block (trong cache) được ghi bị thay đi ghi vào BNC n tốc độ nhanh, mạch phức tạp. ¨Nếu cache miss: thay Block cache hit BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ 141
  142. Hoạt động của cache BXL Cache BNC a) Write Through BXL Cache BNC b) Write Back BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ 142
  143. Ví dụ cache trên các bộ xử lý Intel n 80386: không có cache trên chip n 80486: • 8KB, kích thước Line: 16 byte • Ánh xạ liên kết tập hợp 4 đường n Pentium: có hai cache L1 trên chip ¨ Cache lệnh: 8KB, cache dữ liệu: 8KB: n Petium 4: cache L1 (2 loại) và L2 trên chip: ¨ Cache L1: + Mỗi cache: 8KB, kích thước Line: 64 byte + Ánh xạ liên kết tập hợp 4 đường ¨ Cache L2: + 256KB, kích thước Line: 128 byte + Ánh xạ liên kết tập hợp 8 đường BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ 143
  144. BÀI TẬP n BÀI 1: có bao nhiêu khối kích thước 16word/block được lưu trong một không gian nhớ là 256Gig n BÀI 2: hãy xác định số line, số tag và vị trí của word trong mỗi địa chỉ dưới đây BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ 144
  145. 3.4.2 Các bus của máy tính (Phân loại theo loại tín hiệu truyền trên bus) BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ 145
  146. Bus địa chỉ n Chức năng: vận chuyển địa chỉ để xác định ngăn nhớ hay cổng vào-ra. n Độ rộng bus địa chỉ: xác định dung lượng bộ nhớ cực đại của hệ thống. BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ 146
  147. Bus dữ liệu n Chức năng: vận chuyển lệnh từ bộ nhớ đến CPU vận chuyển dữ liệu giữa CPU, các môđun nhớ và môđun vào-ra. n Độ rộng bus dữ liệu: xác định số bit dữ liệu có thể được trao đổi đồng thời. BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ 147
  148. Bus điều khiển n Chức năng: vận chuyển các tín hiệu điều khiển n Các loại tín hiệu điều khiển + Các tín hiệu phát ra từ CPU để điều khiển môđun nhớ và môđun vào-ra + Các tín hiệu từ môđun nhớ hay môđun vào-ra gửi đến yêu cầu CPU. BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ 148
  149. 3.4.6 Việc xử lý ngắt n Một ứng dụng quan trọng nữa của bus là để xử lý ngắt: ¨ Khi CPU ra lệnh cho một thiết bị I/O làm một việc gì đó, nó thường chờ đợi tín hiệu ngắt do thiết bị I/O phát ra khi hoàn thành công việc được CPU yêu cầu. ¨ Khi nhận được tín hiệu ngắt, CPU sẽ phản ứng ngay, đó có thể là việc nhận dữ liệu do thiết bị I/O đã truyền về, cũng có thể là việc gửi tiếp dữ liệu ra thiết bị I/O hoặc CPU sẽ sử dụng bus cho một thao tác khác BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ 149
  150. Xử lý ngắt (Interrupts) n Khái niệm: Ngắt là cơ chế cho phép CPU tạm dừng chương trình đang thực hiện để chuyển sang thực hiện một chương trình khác, gọi là chương trình con phục vụ ngắt. n Các loại ngắt + Ngắt do lỗi khi thực hiện chương trình, ví dụ: tràn số, chia cho 0 + Ngắt do lỗi phần cứng, ví dụ: lỗi bộ nhớ RAM + Ngắt do môđun vào-ra phát tín hiệu ngắt đến CPU yêu cầu trao đổi dữ liệu. BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ 150
  151. Chu trình lệnh thực hiện lệnh ngắt BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ 151
  152. Hoạt động ngắt (tiếp) BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ 152
  153. Hết Chương 3 BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ 153