Bài giảng Kỹ thuật Vi xử lý - Chương 4: Bộ nhớ

ppt 117 trang phuongnguyen 80
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Kỹ thuật Vi xử lý - Chương 4: Bộ nhớ", để 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_ky_thuat_vi_xu_ly_chuong_4_bo_nho.ppt

Nội dung text: Bài giảng Kỹ thuật Vi xử lý - Chương 4: Bộ nhớ

  1. Kỹ thuật Vi xử lý Điện tử-Viễn thông Đại học Bách khoa Đà Nẵng
  2. Chương 4 4.1 Phân loại bộ nhớ bán dẫn 4.2 Hoạt động của các chip EPROM 4.3 Hoạt động của các chip SRAM 4.4 Bus hệ thống của hệ vi xử lý 8088 4.5 Bài toán thiết kế bộ nhớ
  3. Mục tiêu và biện pháp thiết kế ◼ Ghép nối các chip nhớ EPROM và SRAM với Bus hệ thống sao cho không xảy ra xung đột: Các chip nhớ bị cấm khi vi xử lý truy cập các cổng I/O Chỉ có một chip nhớ hoạt động khi vi xử lý truy cập bộ nhớ ◼ Thực hiện một mạch giải mã địa chỉ bộ nhớ dùng các chip giải mã hoặc các cổng logic hoặc kết hợp cả hai
  4. 4.1 Phân loại bộ nhớ bán dẫn Bộ nhớ bán dẫn (Semiconductor memory) SAM RAM (Sequential Access Memory) (Random Access Memory) ROM (Read Only Memory) RWM (Read Write memory) PROM EPROM SRAM DRAM EEPROM Flash ROM
  5. 4.2 Các chip EPROM A0 D0 A1 D1 A2 D2 A3 D3 m chân dữ liệu A4 D4 p chân địa chỉ A5 D5 A6 D6 A7 Dm-1 A8 EPROM A p-1 Điều khiển đọc OE PGM Chọn chip CE Vpp Các chân điều khiển
  6. Dung lượng của 1 chip nhớ ◼ Một chip nhớ được xem như một mảng gồm n ô nhớ. Mỗi ô nhớ lưu trữ được m-bit dữ liệu ◼ Dung lượng của chip thường được biểu diễn: nxm Ví dụ: Một chip có dung lượng 2Kx8 nghĩa là chip đó có 2048 ô nhớ và mỗi ô nhớ có thể lưu trữ được 1 byte dữ liệu ◼ m chính là số chân dữ liệu của chip ◼ log2(n) = p là số chân địa chỉ của chip
  7. Hoạt động ghi dữ liệu vào EPROM ◼ Việc ghi dữ liệu vào EPROM được gọi là lập trình cho EPROM ◼ Được thực hiện bằng thiết bị chuyên dụng gọi là Bộ nạp EPROM ◼ Chân Vpp được cấp điện áp tương ứng với từng loại chip gọi là điện áp lập trình ◼ Dữ liệu tại các chân dữ liệu sẽ được ghi vào một ô nhớ xác định nhờ các tín hiệu đưa vào ở các chân địa chỉ và một xung (thường gọi là xung lập trình) đưa vào chân PGM
  8. Hoạt động đọc dữ liệu từ một chip EPROM Để đọc dữ liệu từ 1 ô nhớ nào đó của 1 chip EPROM nào đó, Bộ vi xử lý cần phải: ◼ Chọn chip đó: 0 > CE ◼ Áp các tín hiệu địa chỉ của ô nhớ cần đọc vào các chân địa chỉ Ap-1 – A0 ◼ Đọc: 0 > OE ◼ Kết quả là m bit dữ liệu cần đọc xuất hiện ở các chân dữ liệu Dm-1 – D0
  9. Họ EPROM thông dụng 27x Số hiệu của chip Dung lượng 2716 2Kx8 2732 4Kx8 2764 8Kx8 27128 16Kx8 27256 32Kx8 27512 64Kx8 Bảng 4.1 Họ EPROM 27x
  10. EPROM 2716 2732 1 24 A7 Vcc 2 23 A6 A8 3 22 ◼ Sơ đồ chân A5 A9 4 21 của 2716 A4 Vpp A11 5 20 __ __ và 2732 A3 OE OE / Vpp 6 19 A2 A10 __ 7 18 A1 CE/PGM 8 17 A0 D7 9 16 D0 D6 10 15 D1 D5 11 14 D2 D4 12 13 GND D3
  11. EPROM 2764 Các chân địa chỉ Các chân dữ liệu Chọn chip Điều khiển đọc
  12. EPROM 2764
  13. Lập trình cho 2764 ◼ Trước hết cần phải xoá • Xoá một chip tức là làm cho tất cả các bit = 1 ◼ Xoá một chip EPROM bằng tia cực tím ◼ Lập trình bằng cách: • VPP mắc ở mức 12.5V • E và P đều ở mức thấp TTL ◼ Các bit dữ liệu đưa vào các chân dữ liệu ◼ Các bit địa chỉ đưa vào các chân địa chỉ
  14. 4.3 Các chip SRAM A0 D0 A1 D1 A2 D2 A3 D3 A4 D4 m chân dữ liệu P chân địa chỉ A5 D5 A6 D6 A7 Dm-1 A8 SRAM A p-1 Điều khiển đọc OE Chọn chip CS Điều khiển ghi WE
  15. Đọc dữ liệu từ một chip SRAM Để đọc dữ liệu từ 1 ô nhớ nào đó của 1 chip SRAM nào đó, vi xử lý cần phải: ◼ Chọn chip đó: 0 > CS ◼ Áp các tín hiệu địa chỉ vào Ap-1 – A0 ◼ Đọc: 0 > OE Kết quả là m bit dữ liệu cần đọc xuất hiện ở các chân dữ liệu Dm-1 – D0
  16. Ghi dữ liệu vào một chip SRAM Để ghi m bit dữ liệu vào 1 ô nhớ nào đó của 1 chip SRAM nào đó, vi xử lý cần phải: ◼ Chọn chip đó: 0 > CS ◼ Áp các tín hiệu địa chỉ vào Ap-1 – A0 ◼ Áp m bit dữ liệu cần ghi vào các chân dữ liệu Dm-1 – D0 ◼ Ghi: 0 > WE Kết quả là các bit dữ liệu ở các chân dữ liệu sẽ được ghi vào ô nhớ đã chọn
  17. SRAM 6264 ◼ Dung lượng 8Kx8 A0 I/O0 A1 I/O1 ◼ 8 chân dữ liệu A2 I/O2 A3 I/O3 ◼ A4 I/O4 13 chân địa chỉ A5 I/O5 A6 I/O6 ◼ Hai chân chọn A7 I/O7 A8 chip A9 6264 A10 ◼ Chân điều khiển A11 đọc A12 OE ◼ Chân điều khiển WE CS1 ghi CS2
  18. 32K x 8 Static RAM 1 28 A14 Vcc 2 __ 27 A12 WE 3 26 A7 A13 4 25 A6 A8 5 24 A5 A9 6 23 A4 A11 7 __ 22 A3 OE 8 21 A2 A10 9 __ 20 A1 CE 10 19 A0 D7 11 18 D0 D6 12 17 D1 D5 13 16 D2 D4 14 15 GND D3 51256S
  19. Sơ đồ khối 6264
  20. Chức năng của 6264
  21. 4.4 Bus hệ thống của 8088 ◼ Bus địa chỉ 20-bit: gồm các đường địa chỉ được ký hiệu từ A19 đến A0 ◼ Bus dữ liệu 8-bit: gồm các đường dữ liệu được ký hiệu từ D7 đến D0 ◼ Bus điều khiển gồm các đường điều khiển riêng lẽ phục vụ cho hoạt động truy cập bộ nhớ và các cổng I/O, mỗi đường thường được ký hiệu bằng tên của tín hiệu điều khiển ◼ Bus hệ thống không nối trực tiếp với các chân của 8088: thông qua các mạch đệm, chốt.
  22. 80x86 Microprocessors Product 8008 808 808 808 808 8028 80386 80486 Pent. Pent. 0 5 6 8 6 Pro Year Introduced 1972 1974 1976 1978 1979 1982 1985 1989 1992 1995 Technology PMOS NMO NMO NMO NMO NMOS CMOS CMOS BICMO BICMO S S S S S S Clock Rate 0.5- 2-3 3-8 5-10 5-8 10- 16-40 66 60- 150 0.8 16? 66+ Number of Pins 18 40 40 40 40 132 168 273 387 Number of 3000 4500 6500 29K 29K 130K 275K 1.2M 3M 5.5M transistors Number of 66 111 113 133 133 instructions Physical Memory 16K 64K 64K 1M 1M 16M 16M4GB 4GB 4GB 64G Virtual Memory none none none none none 1G 64T 64T 64T 64T Internal Data Bus 8 8 8 16 16 16 32 32 64 32 External Data Bus 8 8 8 16 8 16 16,32 32 64 64 Address Bus 8 16 16 20 20 24 24,32 32 32 36 Data Types 8 8 8 8,16 8,16 8,16 8,16,32 8,16,3 8,16,3 8,16,3 2 2 2
  23. 8088/8086 Microprocessor ◼ DIP 40 pin ◼ Data bus • Bus dữ liệu trong :16 bit • Bus dữ liệu ngoài của 8088: 8 bit dùng AD0-AD7 • Bus dữ liệu ngoài của 8086:16 bit dùng AD0-AD15 • ALE (Address Latch Enable)
  24. 8088/8086 Microprocessor ◼ Bus địa chỉ • ALE = 1 • Sử dụng 74LS373 để tách và chốt địa chỉ ◼ Đầu vào: AD0-AD7 (8088) hoặc AD0-AD15 (8086) và ALE ◼ Đầu ra: A0-A7 (8088) hoặc A0-A15 (8086)
  25. Sơ đồ chân của 8088
  26. Sơ đồ chân 8088/8086 (Min Mode)
  27. Minimum/Maximum Mode ◼ Ảnh hưởng đến các chân 24-31 ◼ Minimum Mode • Các chân 24-31 là các tín hiệu điều khiển I/O và bộ nhớ • Các tín hiệu điều khiển đều từ 8088/8086 • Tương tự với 8085A ◼ Maximum Mode • Một số tín hiệu điều khiển được tạo ra từ ngoài • Một số chân có thêm chức năng mới • Khi có dùng bộ đồng xử lý toán 8087
  28. Sơ đồ chân của 8088 MN / MX AD0 AD1 READY AD2 CLK AD3 RESET AD4 AD5 TEST AD6 AD7 HLDA A8 HOLD A9 NMI A10 A11 A12 A13 A14 8088 A15 A16 / S3 A17 / S4 A18 / S5 A19 / S6 SSO DEN DT / R IO / M RD WR ALE INTR INTA
  29. Tín hiệu ở các chân của 8088 MN / MX AD0 AD1 READY AD2 CLK AD3 Các chân Địa chỉ/Dữ liệu RESET AD4 AD5 TEST AD6 AD7 HLDA A8 HOLD A9 NMI A10 A11 A12 Các chân địa chỉ A13 A14 8088 A15 A16 / S3 A17 / S4 Các chân Địa chỉ/Trạng thái A18 / S5 A19 / S6 SSO DEN DT / R IO / M RD WR ALE Cho phép chốt Địa chỉ INTR INTA
  30. Các chân Địa chỉ/Dữ liệu ◼ Các chân AD7 đến AD0 ◼ Kỹ thuật Multiplexing: Tín hiệu ở các chân này lúc này là tín hiệu địa chỉ, lúc khác là tín hiệu dữ liệu phụ thuộc vào tín hiệu điều khiển ALE (Address Latch Enable): ◼ ALE = 1: AD7 đến AD0 = A7 đến A0 ◼ ALE = 0: AD7 đến AD0 = D7 đến D0
  31. Các chân Địa chỉ và Các chân Địa chỉ/Trạng thái ◼ Các chân địa chỉ: A15 đến A8 ◼ Tín hiệu ở các chân này luôn là tín hiệu địa chỉ ◼ Các chân địa chỉ/trạng thái: A19/S6 đến A16/S3: ◼ ALE = 1: A19 đến A16 ◼ ALE = 0: S6 đến S3
  32. Processor Timing Diagram of 8088 (Minimum Mode) for Memory or I/O Read (with 74245) T1 T2 T3 T4 CLOCK __ DT/R ALE D7 - D0 D7 - D0 (from memory) from memory to 74LS245 D7 - D0 from garbage AD7 - AD0 A7 - A0 74LS245 A15 - A8 A15 - A8 A19/S6 - A16/S3 A19 - A16 S6 - S3 A19 - A0 A19 - A0 from 74LS373 from 74LS373 to memory __ IO/M if I/O ACCESS this is HIGH, if MEMORY ACCESS this is LOW ___ RD ___ DEN
  33. Mô tả chân ◼ BHE ◼ Bus High Enable ◼ Phân biệt byte thấp và byte cao của một từ (chỉ với 8086)
  34. Mô tả chân ◼ NMI ◼ Non Maskable Interrupt ◼ Đầu vào ngắt không che được
  35. Mô tả chân ◼ INTR ◼ Interrupt Request ◼ Đầu vào ngắt che được ◼ Nối với chip điều khiển ngắt 8259 ◼ INTA: chấp nhận ngắt
  36. Mô tả chân ◼ CLK ◼ Clock ◼ Đầu vào đồng hồ ◼ Nối với chip 8284
  37. Mô tả chân ◼ RESET ◼ Kết thúc hoạt động hiện thời và huy bỏ mọi thứ ◼ Sau khi reset • CS=FFFFH • DS=0000H • SS=0000H • ES=0000H • IP=0000H • Các cờ bị xoá • Hàng đợI lệnh rỗng
  38. Mô tả chân ◼ READY ◼ Chèn thêm một trạng thái đợi (wait state)
  39. Mô tả chân ◼ TEST ◼ Đến từ 8087 (Bộ đồng xử lý) ◼ Đồng bộ 8088 và 8087
  40. Mô tả chân ◼ MN/MX ◼ Minimum mode = +5V ◼ Maximum mode = Gnd
  41. Mô tả chân – Max ◼ QS0, QS1 ◼ Queue status ◼ Trạng thái của hàng đợi lệnh: • 00 – No operation • 01 – first byte of opcode from queue • 10 – empty the queue • 11 – subsequent byte from queue
  42. Mô tả chân – Max ◼ S0, S1, S2 ◼ Status Signal Pins (S2- S0) • 000 – INTA – interrupt acknowledge • 001 – IORC – read I/O port • 010 – IOWC – write I/O port • 011 – none - halt • 100 – MRDC – code access • 101 – MRDC – read memory • 110 – MWTC – write memory • 111 – none - passive
  43. Mô tả chân – Max ◼ LOCK ◼ Locks processor to system bus ◼ Gain the lock by using LOCK prefix on an assembly instruction ◼ Used with status signals to prevent DMA from gaining control of the buses
  44. Mô tả chân – Max ◼ RQ/GT0, RQ/GT1 ◼ Request/Grant ◼ Bi-directional ◼ Gain control of local bus ◼ RQ/GT0 normally permanently high (disabled) ◼ RQ/GT1 is connected to the 8087
  45. Mô tả chân – Min ◼ INTA ◼ Interrupt acknowledge ◼ Chấp nhận ngắt
  46. Mô tả chân – Min ◼ ALE ◼ Address Latch Enable ◼ Tín hiệu ở các chân Địa chỉ/Dữ liệu và các chân Địa chỉ/Trạng thái lúc ALE = 1 là các tín hiệu địa chỉ
  47. Mô tả chân ◼ AD0-AD7 ◼ Các chân Địa chỉ/Dữ liệu ◼ Tín hiệu ở các chân này là 8 bit địa chỉ thấp A0 đến A7 khi ALE =1, là 8 bit dữ liệu D0 đến D7 khi ALE = 0
  48. 74LS373 D0 Q0 D1 Q1 D2 Q2 D3 Q3 D4 Q4 D5 74LS373 Q5 D6 Q6 D7 Q7 OE LE
  49. 74LS373
  50. Dùng 74LS373 để tách và chốt địa chỉ
  51. Mô tả chân – Min ◼ DEN ◼ Data Enable ◼ Dữ liệu có nghĩa
  52. Mô tả chân – Min ◼ DT/R ◼ Điều khiển hướng của tín hiệu dữ liệu: ◼ 1: Tín hiệu dữ liệu đi ra từ 8088 ◼ 0: Tín hiệu dữ liệu đi vào 8088
  53. Mô tả chân – Min ◼ IO/M ◼ Phân biệt: truy cập I/O hay Bộ nhớ • 1: 8088 truy cập I/O • 0: 8088 truy cập bộ nhớ
  54. Mô tả chân – Min ◼ WR ◼ 0: Tín hiệu trên bus dữ liệu được ghi vào bộ nhớ hoặc I/O ◼ Ghi bộ nhớ: ? ◼ Xuất dữ liệu ra cổng: ?
  55. Mô tả chân – Min ◼ HLDA ◼ Hold Acknowledge ◼ 0: Chấp nhận yêu cầu DMA ở HOLD • Báo cho Bộ điều khiển DMA được phép sử dụng bus hệ thống
  56. Mô tả chân – Min ◼ HOLD ◼ Nhận tín hiệu yêu cầu DMA từ Bộ điều khiển DMA (DMAC) ◼ DMAC muốn sử dụng bus hệ thống
  57. Mô tả chân – Min ◼ SSO ◼ 8088 ◼ Dùng với IO/M và DT/R để xác định trạng thái của chu kỳ bus hiện thời
  58. Các tín hiệu điều khiển ◼ Có thể sử dụng các cổng logic để tạo ra các tín hiệu điều khiển khác từ các tín hiệu điều khiển sẵn có • 3 Tín hiệu: ◼ RD, WR and IO/M RD W IO/M Signal R 0 1 0 MEMR 1 0 0 MEMW 0 1 1 IOR 1 0 1 IOW 0 0 X Never happens
  59. Tạo ra các tín hiêụ điều khiển (Min Mode)
  60. Tạo ra các tín hiêụ điều khiển (Min Mode)
  61. 8088 Bus – Min Mode
  62. 74LS245 A0 B0 A1 B1 A2 B2 A3 B3 A4 B4 A5 74LS245 B5 A6 B6 A7 B7 E DIR
  63. Bus hệ thống của hệ 8088 ở Mode Minimum A7 - A0 B7 - B0 D7 - D0 DEN E Bus dữ liệu DT / R DIR 74LS245 Bus địa chỉ AD7 - AD0 D7 - D0 Q7 - Q0 A7 - A0 A15 - A8 GND OE A19 - A16 LE 74LS373 A15 - A8 D7 - D0 Q7 - Q0 GND OE MEMORY 8088 LE 74LS373 A19/S6 - A16/ D7 - D4 Q7 - Q4 S3 D3 - D0 Q3 - Q0 GND OE ALE LE 74LS373 RD RD MEMR IO / M WR WR MEMW
  64. Minimum Mode 8088 D7 - D0 D7 - D0 A19 - A0 A19 - A0 MEMORY 8088 Minimum Bộ nhớ được chọn khi nào? Mode MEMR RD MEMW WR
  65. Minimum Mode 8088 220 ô nhớ (1MB) D7 - D0 D7 - D0 A19 - A0 A19 - A0 MEMORY 8088 Minimum Mode MEMR RD MEMW WR CS
  66. Không gian địa chỉ bộ nhớ 1M A19 AAAA AAAA AAAA AAAA AAAA đến 1111 1111 1198 7654 3210 A0 9876 5432 1000 (HEX) 00000 0000 0000 0000 0000 0000 FFFFF 1111 1111 1111 1111 1111 Ví dụ: Một địa chỉ bất kỳ 34FD0h 0011 0100 11111 1101 0000
  67. Bộ nhớ đầy đủ 1MB AX 3F1C FFFFF 36 BX 0023 FFFFE 25 CX 0000 FFFFD 19 DX FCA1 : : A19 A19 : : : : CS XXXX 20023 13 A0 A0 SS XXXX 20022 7D DS 2000 20021 12 ES XXXX 20020 29 : : D7 D7 BP XXXX : : : : SP XXXX 10008 8A D0 D0 10007 F4 SI XXXX 10006 07 DI XXXX 10005 88 10004 42 MEMR RD IP XXXX 10003 39 10002 27 10001 98 10000 45 : : MEMW WR : : 00001 95 CS 00000 23
  68. Nếu chỉ cần bộ nhớ có dung lượng nhỏ hơn 1MB thì giải quyết như thế nào? ◼ Phụ thuộc vào các chip nhớ sẵn có ◼ Phụ thuộc yêu cầu phân bố địa chỉ cho các loại bộ nhớ vật lý khác nhau ◼
  69. 512K đầu tiên của không gian địa chỉ bộ nhớ (Các địa chỉ có bit cao nhất A19 = 0) A18 AAAA AAAA AAAA AAAA AAAA đến 1111 1111 1198 7654 3210 A0 9876 5432 1000 (HEX) 00000 0000 0000 0000 0000 0000 7FFFF 0111 1111 1111 1111 1111
  70. 512K tiếp theo của không gian địa chỉ bộ nhớ (Các địa chỉ có bit cao nhất A19 = 1) A18 AAAA AAAA AAAA AAAA AAAA đến 1111 1111 1198 7654 3210 A0 9876 5432 1000 (HEX) 80000 1000 0000 0000 0000 0000 FFFFF 1111 1111 1111 1111 1111
  71. Bộ nhớ 512KB AX 3F1C BX 0023 Làm gì với A19? CX 0000 A19 DX FCA1 A18 A18 7FFFF 36 : : 7FFFE 25 CS XXXX A0 A0 7FFFD 19 SS XXXX : : DS 2000 D7 D7 : : ES XXXX : : 20023 13 D0 D0 20022 7D BP XXXX 20021 12 SP XXXX MEMR RD 20020 29 : : SI XXXX MEMW WR : : DI XXXX 00001 95 CS 00000 23 IP XXXX
  72. Điều gì xảy ra nếu 8088 đọc ô nhớ A0023h? AX 3F1C BX 0023 CX 0000 A19 DX FCA1 A18 A18 7FFFF 36 : : 7FFFE 25 CS XXXX A0 A0 7FFFD 19 SS XXXX : : DS A000 D7 D7 : : ES XXXX : : 20023 13 D0 D0 20022 7D BP XXXX 20021 12 SP XXXX MEMR RD 20020 29 : : SI XXXX MEMW WR : : DI XXXX 00001 95 CS 00000 23 IP XXXX MOV AH, [BX]
  73. Điều gì xảy ra nếu 8088 đọc ô nhớ A0023h? A19 AAAA AAAA AAAA AAAA AAAA đến 1111 1111 1198 7654 3210 A0 9876 5432 1000 (HEX) A0023 1010 0000 0000 0010 0011 A19 không được nối đến bộ nhớ nên nếu 8088 phát logic “1” trên A19 thì bộ nhớ cũng không nhận biết được.
  74. Điều gì xảy ra nếu 8088 đọc ô nhớ 20023h? A18 AAAA AAAA AAAA AAAA AAAA đến 1111 1111 1198 7654 3210 A0 9876 5432 1000 (HEX) 20023 0010 0000 0000 0010 0011 Với bộ nhớ tình hình không có gì khác!
  75. Nếu Bộ nhớ gồm 2 khối 512KB như thế này? AX 3F1C A19 7FFFF 36 BX 0023 A18 A18 7FFFE 25 CX 0000 : : 7FFFD 19 DX FCA1 A0 A0 : : 20023 13 D7 D7 CS XXXX 20022 7D : : SS XXXX 20021 12 D0 D0 DS 2000 20020 29 ES XXXX MEMR RD : : MEMW WR 00001 95 BP XXXX CS 00000 23 SP XXXX SI XXXX 7FFFF 12 DI XXXX A18 7FFFE 98 : 7FFFD 2C IP XXXX A0 : : 20023 33 D7 20022 45 : 20021 92 D0 20020 A3 RD : : WR 00001 D4 CS 00000 97
  76. Có vấn đề !!! ◼ Vấn đề là: Xung đột Bus. Hai khối nhớ sẽ cung cấp dữ liệu cùng một lúc khi 8088 đọc bộ nhớ ◼ Giải pháp: Dùng A19 làm “người phân xử” để giải quyết xung đột trên bus. Nếu A19 ở mức logic “1” thì khối nhớ trên hoạt động (khối nhớ dưới bị cấm) và ngược lại
  77. Bộ nhớ gồm hai khối nhớ 512KB AX 3F1C A19 7FFFF 36 BX 0023 A18 A18 7FFFE 25 CX 0000 : : 7FFFD 19 DX FCA1 A0 A0 : : 20023 13 D7 D7 CS XXXX 20022 7D : : SS XXXX 20021 12 D0 D0 DS 2000 20020 29 ES XXXX MEMR RD : : MEMW WR 00001 95 BP XXXX CS 00000 23 SP XXXX SI XXXX 7FFFF 12 DI XXXX A18 7FFFE 98 : 7FFFD 2C IP XXXX A0 : : 20023 33 D7 20022 45 : 20021 92 D0 20020 A3 RD : : WR 00001 D4 CS 00000 97
  78. Không gian địa chỉ bộ nhớ 1M A19 AAAA AAAA AAAA AAAA AAAA đến 1111 1111 1198 7654 3210 A0 9876 5432 1000 (HEX) 00000 0000 0000 0000 0000 0000 7FFFF 0111 1111 1111 1111 1111 80000 1000 0000 0000 0000 0000 FFFFF 1111 1111 1111 1111 1111
  79. Bộ nhớ gồm hai khối nhớ 512KB AX 3F1C A19 7FFFF 36 BX 0023 A18 A18 7FFFE 25 CX 0000 : : 7FFFD 19 DX FCA1 A0 A0 : : 20023 13 D7 D7 CS XXXX 20022 7D : : SS XXXX 20021 12 D0 D0 DS 2000 20020 29 ES XXXX MEMR RD : : MEMW WR 00001 95 BP XXXX Khi P xuất một địa CS 00000 23 SP XXXX chỉ từ 80000h00000h tođến SI XXXX FFFFFh7FFFFh, Bộ nhớ này 7FFFF 12 DI XXXX A18 7FFFE 98 hoạt động : 7FFFD 2C IP XXXX A0 : : 20023 33 D7 20022 45 : 20021 92 D0 20020 A3 RD : : WR 00001 D4 CS 00000 97
  80. Bộ nhớ gồm hai khối nhớ 512KB AX 3F1C A19 7FFFF 36 BX 0023 A18 A18 7FFFE 25 CX 0000 : : 7FFFD 19 DX FCA1 A0 A0 : : 20023 13 D7 D7 CS XXXX 20022 7D : : SS XXXX 20021 12 D0 D0 DS 2000 20020 29 ES XXXX MEMR RD : : MEMW WR 00001 95 BP XXXX CS 00000 23 SP XXXX SI XXXX 7FFFF 12 DI XXXX A18 7FFFE 98 : 7FFFD 2C IP XXXX A0 : : 20023 33 D7 20022 45 : 20021 92 D0 20020 A3 RD : : WR 00001 D4 CS 00000 97
  81. Thiết kế Bộ nhớ cho Hệ vi xử lý AX 3F1C A19 A19 7FFFF 36 BX 0023 A18 A18 A18 7FFFE 25 CX 0000 : : : 7FFFD 19 DX FCA1 A0 A0 A0 : : 20023 13 D7 D7 D7 CS XXXX 20022 7D : : : SS XXXX 20021 12 D0 D0 D0 DS 2000 20020 29 ES XXXX MEMR RD Ghép nối các chipRD nhớ: : MEMW WR riêng lẽ với BusWR hệ 00001 95 BP XXXX CS 00000 23 SP XXXX thống sao cho không SI XXXX xảy ra xung đột nhờ7FFFF 12 DI XXXX A18 7FFFE 98 mạch giải mã địa: chỉ7FFFD 2C IP XXXX bộ nhớ A0 : : 20023 33 D7 20022 45 : 20021 92 D0 20020 A3 RD : : WR 00001 D4 CS 00000 97
  82. Nếu bỏ đi khối nhớ bên dưới? AX 3F1C A19 7FFFF 36 BX 0023 A18 A18 7FFFE 25 CX 0000 : : 7FFFD 19 DX FCA1 A0 A0 : : 20023 13 D7 D7 CS XXXX 20022 7D : : SS XXXX 20021 12 D0 D0 DS 2000 20020 29 ES XXXX MEMR RD : : MEMW WR 00001 95 BP XXXX CS 00000 23 SP XXXX SI XXXX 7FFFF 12 DI XXXX A18 7FFFE 98 : 7FFFD 2C IP XXXX A0 : : 20023 33 D7 20022 45 : 20021 92 D0 20020 A3 RD : : WR 00001 D4 CS 00000 97
  83. Nếu bỏ đi khối nhớ bên dưới thì AX 3F1C A19 7FFFF 36 BX 0023 A18 A18 7FFFE 25 CX 0000 : : 7FFFD 19 DX FCA1 A0 A0 : : 20023 13 D7 D7 CS XXXX 20022 7D : : SS XXXX 20021 12 D0 D0 DS 2000 20020 29 ES XXXX MEMR RD : : MEMW Khi P xuất ra một địadịa WR 00001 95 BP XXXX chỉ từ 00000h đến CS 00000 23 SP XXXX chỉ từ 80000h đến 7FFFFh, Không có SI XXXX FFFFFh, Chip nhớ DI XXXX nàychip hoạt nhớ độngnào hoạt động! IP XXXX !
  84. Giải mã đầy đủ và không đầy đủ ◼ Giải mã đầy đủ (Full Decoding) • Tất cả các đường địa chỉ có nghĩa đều được sử dụng vào mạch giải mã • Mỗi ô nhớ chỉ có một địa chỉ vật lý duy nhất ◼ Giải mã không đầy đủ (Partial Decoding) • Không phải tất cả các đường địa chỉ có nghĩa đều được sử dụng vào mạch giải mã • Một ô nhớ có hơn một địa chỉ vật lý
  85. Giải mã đầy đủ AX 3F1C A19 7FFFF 36 BX 0023 A18 A18 7FFFE 25 CX 0000 : : 7FFFD 19 DX FCA1 A0 A0 : : 20023 13 D7 D7 CS XXXX 20022 7D : : SS XXXX 20021 12 D0 D0 DS 2000 20020 29 ES XXXX MEMR RD : : MEMW WR 00001 95 BP XXXX CS 00000 23 SP XXXX SI XXXX DI XXXX IP XXXX
  86. Giải mã đầy đủ A19 AAAA AAAA AAAA AAAA AAAA đến 1111 1111 1198 7654 3210 A0 9876 5432 1000 (HEX) 80000 1000 0000 0000 0000 0000 FFFFF 1111 1111 1111 1111 1111 A19 phải ở mức “1” thì chip nhớ mới hoạt động (được chọn)
  87. Giải mã đầy đủ A19 AAAA AAAA AAAA AAAA AAAA đến 1111 1111 1198 7654 3210 A0 9876 5432 1000 (HEX) 00000 0000 0000 0000 0000 0000 7FFFF 0111 1111 1111 1111 1111 Do đó, nếu vi xử lý phát ra một địa chỉ từ 00000h đến 7FFFFh (A19 ở mức logic “0”) chip nhớ sẽ không được chọn.
  88. Giải mã không đầy đủ AX 3F1C BX 0023 CX 0000 A19 DX FCA1 A18 A18 7FFFF 36 : : 7FFFE 25 CS XXXX A0 A0 7FFFD 19 SS XXXX : : DS 2000 D7 D7 : : ES XXXX : : 20023 13 D0 D0 20022 7D BP XXXX 20021 12 SP XXXX MEMR RD 20020 29 : : SI XXXX MEMW WR : : DI XXXX 00001 95 CS 00000 23 IP XXXX
  89. Giải mã không đầy đủ A19 AAAA AAAA AAAA AAAA AAAA đến 1111 1111 1198 7654 3210 A0 9876 5432 1000 (HEX) 00000 0000 0000 0000 0000 0000 7FFFF 0111 1111 1111 1111 1111 80000 1000 0000 0000 0000 0000 FFFFF 1111 1111 1111 1111 1111 A19 không có ý nghĩa với chip nhớ
  90. Giải mã không đầy đủ A19 AAAA AAAA AAAA AAAA AAAA đến 1111 1111 1198 7654 3210 A0 9876 5432 1000 (HEX) 00000 0000 0000 0000 0000 0000 7FFFF 0111 1111 1111 1111 1111 80000 1000 0000 0000 0000 0000 FFFFF 1111 1111 1111 1111 1111 Địa chỉ thực tế
  91. Giải mã không đầy đủ A19 AAAA AAAA AAAA AAAA AAAA đến 1111 1111 1198 7654 3210 A0 9876 5432 1000 (HEX) 00000 0000 0000 0000 0000 0000 7FFFF 0111 1111 1111 1111 1111 80000 1000 0000 0000 0000 0000 FFFFF 1111 1111 1111 1111 1111 Địa chỉ thực tế
  92. Bộ nhớ gồm 2 chip 512Kx8 A19 A18 A18 : : A0 A0 D7 D7 512KB : : #2 D0 D0 MEMR RD MEMW WR 8088 CS Minimum Mode A18 : A0 D7 512KB : #1 D0 RD WR CS
  93. Bộ nhớ chỉ có một chip 512Kx8 (Ver. 1) A19 A18 A18 : : A0 A0 D7 D7 : : 512KB D0 D0 MEMR RD MEMW WR 8088 CS Minimum Mode
  94. Bộ nhớ chỉ có một chip 512Kx8 (Ver. 2) A19 A18 A18 : : A0 A0 D7 D7 : : 512KB D0 D0 MEMR RD MEMW WR 8088 CS Minimum Mode
  95. Bộ nhớ chỉ có một chip 512Kx8 (Ver. 3) A19 A18 A18 : : A0 A0 D7 D7 : : 512KB D0 D0 MEMR RD MEMW WR 8088 CS Minimum Mode
  96. A17 : Bộ nhớ gồm 4 chip 256Kx8 A0 D7 256KB : D0 #4 RD WR A19 CS A18 A17 A17 : : A0 A0 D7 D7 256KB : : D0 D0 #3 MEMR RD MEMW WR 8088 CS Minimum Mode A17 : A0 D7 256KB : D0 #2 RD WR CS A17 : A0 D7 256KB : D0 #1 RD WR CS
  97. A17 : Bộ nhớ gồm 4 chip 256Kx8 A0 D7 256KB : D0 #4 RD WR A19 CS A18 A17 A17 : : A0 A0 D7 D7 256KB : : D0 D0 #3 MEMR RD MEMW WR 8088 CS Minimum Mode A17 : A0 D7 256KB : D0 #2 RD WR CS A17 : A0 D7 256KB : D0 #1 RD WR CS
  98. Dải địa chỉ của chip #1 A19 AAAA AAAA AAAA AAAA AAAA đến 1111 1111 1198 7654 3210 A0 9876 5432 1000 (HEX)
  99. Dải địa chỉ của chip #2 A19 AAAA AAAA AAAA AAAA AAAA đến 1111 1111 1198 7654 3210 A0 9876 5432 1000 (HEX)
  100. Dải địa chỉ của chip #3 A19 AAAA AAAA AAAA AAAA AAAA đến 1111 1111 1198 7654 3210 A0 9876 5432 1000 (HEX)
  101. Dải địa chỉ của chip #4 A19 AAAA AAAA AAAA AAAA AAAA đến 1111 1111 1198 7654 3210 A0 9876 5432 1000 (HEX)
  102. A17 : Bộ nhớ gồm 4 chip 256Kx8 A0 D7 256KB dùng các cổng logic : D0 #4 RD WR A19 CS A18 A17 A17 : : A0 A0 D7 D7 256KB : : D0 D0 #3 MEMR RD MEMW WR 8088 CS Minimum Mode A17 : A0 D7 256KB : D0 #2 RD WR CS A17 : A0 D7 256KB : D0 #1 RD WR CS
  103. A17 : Bộ nhớ gồm 4 chip 256Kx8 A0 D7 256KB dùng các cổng logic : D0 #4 RD WR A19 CS A18 A17 A17 : : A0 A0 D7 D7 256KB : : D0 D0 #3 MEMR RD MEMW WR 8088 CS Minimum Mode A17 : A0 D7 256KB : D0 #2 RD WR CS A17 : A0 D7 256KB : D0 #1 RD WR CS
  104. A17 : Bộ nhớ gồm 4 chip 256Kx8 A0 D7 256KB dùng một chip giải mã 2-4 : D0 #4 RD WR A19 I1 O3 CS A18 I0 A17 A17 : : A0 A0 D7 D7 256KB : : D0 D0 #3 MEMR RD MEMW WR 8088 O2 CS Minimum Mode A17 : A0 D7 256KB : D0 #2 RD WR O1 CS A17 : A0 D7 256KB : D0 #1 RD WR O0 CS
  105. A12 : Ghép nối các chip A0 A19 D7 8KB A18 : #? nhớ 8Kx8 với P A17 D0 A16 RD A15 WR 8088 A14 CS A13 A12 : A0 D7 : : D0 MEMR 8088 MEMW : Minimum Mode A12 : A0 D7 8KB : D0 #2 RD WR CS A12 : A0 D7 8KB : D0 #1 RD WR CS
  106. A12 : A0 A19 D7 8KB Bộ nhớ gồm 128 A18 : A17 D0 #128 chip 8Kx8 A16 RD A15 WR A14 CS A13 A12 : A0 D7 : : D0 MEMR 8088 MEMW : Minimum Mode A12 : A0 D7 8KB : D0 #2 RD WR CS A12 : A0 D7 8KB : D0 #1 RD WR CS
  107. A12 : A0 A19 D7 8KB Bộ nhớ gồm 128 A18 : A17 D0 #128 chip 8Kx8 A16 RD A15 WR A14 CS A13 A12 : A0 D7 : : D0 MEMR 8088 MEMW : Minimum Mode A12 : A0 D7 8KB : D0 #2 RD WR CS A12 : A0 D7 8KB : D0 #1 RD WR CS
  108. Dải địa chỉ của Chip #__ A19 AAAA AAAA AAAA AAAA AAAA đến 1111 1111 1198 7654 3210 A0 9876 5432 1000 (HEX)
  109. A12 : A0 A19 D7 8KB Bộ nhớ gồm 128 A18 : A17 D0 #128 chip 8Kx8 A16 RD A15 WR A14 CS A13 A12 : A0 D7 : : D0 MEMR 8088 MEMW : Minimum Mode A12 : A0 D7 8KB : D0 #2 RD WR CS A12 : A0 D7 8KB : D0 #1 RD WR CS
  110. Phát biểu bài toán ◼ Thiết kế bộ nhớ cho hệ vi xử lý 8088 thoả mãn các yêu cầu: ◼ ROM có dung lượng 2Kx8 chiếm dụng các địa chỉ từ FFFFFh trở xuống ◼ RWM có dung lượng 2Kx8 chiếm dụng các địa chỉ tiếp theo ngay sau ROM ◼ Chỉ được phép sử dụng: EPROM 2716 2Kx8, SRAM 4016 2Kx8 Chip giải mã 74LS138 và các cổng logic
  111. Bước 1: Vẽ bản đồ bộ nhớ cần thiết kế FFFFFh ROM 2K FF800h FF7FFh Các Địa chỉ biên RWM 2K FF000h Chưa sử dụng 00000h
  112. Bước 2: Chuyển các địa chỉ biên từ H sang B A19 AAAA AAAA AAAA AAAA AAAA đến 1111 1111 1198 7654 3210 A0 9876 5432 1000 (HEX) FF800 1111 1111 1000 0000 0000 FFFFF 1111 1111 1111 1111 1111
  113. Bước 2: Chuyển các địa chỉ biên từ H sang B A19 AAAA AAAA AAAA AAAA AAAA đến 1111 1111 1198 7654 3210 A0 9876 5432 1000 (HEX) FF000 1111 1111 0000 0000 0000 FF7FF 1111 1111 0111 1111 1111
  114. Nhận xét ◼ Khi các địa chỉ dành cho ROM được phát lên A-Bus: A19 – A12 = 1 và A11 = 1 ◼ Khi các địa chỉ dành cho RWM được phát lên A-Bus: A19 – A12 = 1 và A11 = 0
  115. Bước 3: Vẽ mạch giải mã địa chỉ bộ nhớ ◼ Ghép các chân dữ liệu của các chip nhớ với D-Bus ◼ Ghép các chân địa chỉ và các chân điều khiển: Khi vi xử lý truy cập các cổng I/O thì các chip nhớ bị cấm (Khi IO/M = 1) Khi vi xử lý truy cập bộ nhớ (IO/M = 0) thì chỉ có một chip nhớ làm việc ◼ Có thể có nhiều lời giải khác nhau
  116. 74LS138: Một chip giải mã 3-8 C Y0 U1 B Y1 74LS138 74LS138 A Y2 A2 Q7 A1 Q6 Y3 A0 Q5 74LS138 Q4 Y4 Q3 E3 Q2 E2 Q1 G1 Y5 E1 Q0 G2A Y6 G2B Y7
  117. Bộ nhớ cần thiết kế A11 : A0 A19 D7 A18 2Kx8 C Y0 : A17 D0 4016 : OE A0 B Y1 WE D7 CS : A Y2 D0 MEMR MEMW 74LS138 Y3 8088 Y4 Minimum Mode G1 Y5 A11 : G2A Y6 A0 D7 2Kx8 : G2B Y7 D0 2716 OE CE