vixulychuong4 - Kỹ thuật Vi xử lý Điện...

Info iconThis preview shows page 1. Sign up to view the full content.

View Full Document Right Arrow Icon
This is the end of the preview. Sign up to access the rest of the document.

Unformatted text preview: Kỹ thuật Vi xử lý Điện tử­Viễn thông Đại học Bách khoa Đà Nẵng Chương 4 4.1 Phân loại bộ nhớ bán dẫn 4.1 Ph 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ớ 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.1 Phân loại bộ nhớ bán dẫn Bộ nhớ bán dẫn (Semiconductor memory) SAM (Sequential Access Memory) ROM (Read Only Memory) PROM EEPROM RAM (Random Access Memory) RWM (Read Write memory) SRAM DRAM EPROM Flash ROM 4.2 Các chip EPROM A0 A1 A2 A3 A4 A5 A6 A7 A8 D0 D1 D2 D3 D4 D5 D6 D m-1 m chân dữ liệu p chân địa chỉ EPRO A p-1 M Điều khiển đọc Chọn chip Các chân điều khiển OE PGM CE Vpp 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 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 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 địa chỉ Ap­1 – A0 Áp các tín hiệu địa chỉ của ô nhớ cần đọc vào các chân Đọ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 Họ EPROM thông dụng 27x Số hiệu của chip 2716 2732 2764 27128 27256 27512 Bảng 4.1 Họ EPROM 27x Dung lượng 2Kx8 4Kx8 8Kx8 16Kx8 32Kx8 64Kx8 EPROM 1 2 2716 Vcc A8 A9 24 23 22 21 20 A10 __ 19 Vpp __ 2732 A7 A6 A5 A4 A3 A2 A1 A0 D0 D1 D2 GND Sơ đồ chân của 2716 và 2732 3 4 5 6 7 8 9 10 11 12 A11 OE / Vpp OE __ CE/PGM 18 D7 D6 D5 D4 D3 17 16 15 14 13 EPROM 2764 Các chân địa chỉ Các chân dữ liệu Chọn chip Điều khiển đọc EPROM 2764 Lập trình cho 2764 Trước hết cần phải xoá 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 • Xoá một chip tức là làm cho tất cả các bit = 1 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ỉ 4.3 Các chip SRAM A0 A1 A2 A3 A4 A5 A6 A7 A8 A D0 D1 D2 D3 D4 D5 D6 P chân địa chỉ m chân dữ liệu SRAM D m-1 p-1 Điều khiển đọc Chọn chip Điều khiển ghi OE CS WE Đọ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 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 A – A p­1 0 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 Áp m bit dữ liệu cần ghi vào các chân dữ liệu Dm­ 1 – D0 SRAM 6264 Dung lượng 8Kx8 8 chân dữ liệu 13 chân địa chỉ Hai chân chọn chip Chân điều khiển đọc Chân điều khiển ghi A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 A 10 A 11 A 12 OE WE CS1 CS2 I/O0 I/O I/O I/O I/O I/O I/O I/O 1 2 3 4 5 6 7 6264 32K x 8 Static RAM 1 2 3 4 5 6 7 8 9 10 11 12 13 14 A14 A12 A7 A6 A5 A4 A3 A2 A1 A0 D0 D1 D2 GND Vcc __ A13 28 27 26 25 24 23 22 21 20 19 18 17 16 15 WE A8 A9 A11 __ OE A10 CE __ D7 D6 D5 D4 D3 51256S Sơ đồ khối 6264 Chức năng của 6264 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. 80x86 Microprocessors Product Year Introduced Technology Clock Rate Number of Pins Number of transistors Number of instructions Physical Memory Virtual Memory Internal Data Bus External Data Bus Address Bus Data Types 8008 1972 PMOS 0.5­0.8 18 3000 66 16K none 8 8 8 8 8080 1974 NMO S 2­3 40 4500 111 64K none 8 8 16 8 8085 1976 NMO S 3­8 40 6500 113 64K none 8 8 16 8 8086 1978 NMO S 5­10 40 29K 133 1M none 16 16 20 8088 1979 NMO S 5­8 40 29K 133 1M none 16 8 20 80286 1982 NMOS 10­16? 80386 1985 CMOS 16­40 132 80486 1989 CMOS 66 168 1.2M Pent. 1992 BICMO S 60­66+ 273 3M Pent. Pro 1995 BICMO S 150 387 5.5M 130K 275K 16M 1G 16 16 24 8,16 16M4GB 64T 32 16,32 24,32 8,16,32 4GB 64T 32 32 32 8,16,32 4GB 64T 64 64 32 8,16,32 64G 64T 32 64 36 8,16,32 8,16 8,16 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) 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) Sơ đồ chân của 8088 Sơ đồ chân 8088/8086 (Min Mode) Minimum/Maximum Mode Ảnh hưởng đến các chân 24­31 Minimum Mode Maximum 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 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 Sơ đồ chân của 8088 MN / MX READY CLK RESET TEST HLDA A8 HOLD NMI A9 A 10 A 11 A A A A A A A A 16 / S3 17 / S4 18 / S5 19 / S6 SSO DEN DT / R IO / M RD 12 13 14 15 AD0 AD 1 AD 2 AD 3 AD AD AD AD 4 5 6 7 8088 INTR WR ALE INTA Tín hiệu ở các chân của 8088 MN / MX READY CLK RESET TEST HLDA A8 HOLD NMI A9 A 10 A 11 A A A A A A A A 16 / S3 17 / S4 18 / S5 19 / S6 SSO DEN DT / R IO / M RD WR ALE INTA 12 13 14 15 AD0 AD 1 AD 2 AD 3 AD AD AD AD 4 5 6 7 Các chân Địa chỉ/Dữ liệu Các chân địa chỉ 8088 Các chân Địa chỉ/Trạng thái INTR Cho phép chốt Địa chỉ 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 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 Processor Timing Diagram of 8088 (Minimum Mode) for Memory or I/O Read (with 74245) T1 CLOCK __ T2 T3 T4 DT/R ALE D7 - D0 from memory to 74LS245 D7 - D0 (from memory) A7 - A0 D7 - D0 from 74LS245 AD7 - AD0 A15 - A8 A19/S6 - A16/S3 A19 - A0 from 74LS373 to memory __ garbage A15 - A8 A19 - A16 S6 - S3 A19 - A0 from 74LS373 if I/O ACCESS this is HIGH, if MEMORY ACCESS this is LOW IO/M ____ RD ______ DEN 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) Mô tả chân NMI Non Maskable Interrupt Đầu vào ngắt không che được 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 Mô tả chân CLK Clock Đầu vào đồng hồ Nối với chip 8284 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 Mô tả chân READY Chèn thêm một trạng thái đợi (wait state) Mô tả chân TEST Đến từ 8087 (Bộ đồng xử lý) Đồng bộ 8088 và 8087 Mô tả chân MN/MX Minimum mode = +5V Maximum mode = Gnd 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 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 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 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 Mô tả chân – Min INTA Interrupt acknowledge Chấp nhận ngắt 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ỉ 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 74LS373 D0 D1 D2 D3 D4 D5 D6 D7 OE LE Q0 Q1 Q2 Q3 74LS373 Q4 Q5 Q6 Q7 74LS373 Dùng 74LS373 để tách và chốt địa chỉ Mô tả chân – Min DEN Data Enable Dữ liệu có nghĩa 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 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ớ 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: ? 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 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 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 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 R 0 1 0 1 0 IO/M 0 0 1 1 X Signal MEMR MEMW IOR IOW Never happens 1 0 1 0 0 Tạo ra các tín hiêụ điều khiển (Min Mode) Tạo ra các tín hiêụ điều khiển (Min Mode) 8088 Bus – Min Mode 74LS245 A0 A1 A2 A3 A4 A5 A6 A7 B0 B1 B2 B3 B4 B5 B6 B7 74LS245 E DIR Bus hệ thống của hệ 8088 ở Mode Minimum A7 - A0 DEN DT / R E DIR B7 - B0 D7 - D0 74LS245 Q7 - Q0 Bus dữ liệu Bus địa chỉ AD7 - AD0 GND D7 - D0 OE LE 74LS373 Q7 - Q0 A7 - A0 A15 - A8 A19 - A16 A15 - A8 D7 - D0 GND OE LE 8088 A19/S6 - A16/ S3 74LS373 Q7 - Q4 Q3 - Q0 MEMORY D7 - D4 D3 - D0 GND OE LE ALE RD IO / M WR 74LS373 MEMR MEMW RD WR Minimum Mode 8088 D7 - D0 D7 - D0 A19 - A0 A19 - A0 8088 Minimum Mode Bộ nhớ được chọn khi nào? MEMORY MEMR RD MEMW WR Minimum Mode Minimum 8088 8088 D7 - D0 2 ô nhớ (1MB) D7 - D0 A19 - A0 A19 - A0 8088 Minimum Mode MEMORY MEMR RD MEMW WR CS Không gian địa chỉ bộ nhớ 1M A19 đến A0 (HEX) 00000 FFFFF AAAA 1111 9876 0000 1111 AAAA 1111 5432 0000 1111 AAAA 1198 1000 0000 1111 AAAA 7654 AAAA 3210 0000 1111 0000 1111 Ví dụ: Một địa chỉ bất kỳ 34FD0h 0011 0100 11111 1101 0000 Bộ nhớ đầy đủ 1MB AX BX CX DX CS SS DS ES BP SP SI DI IP 3F1C 0023 0000 FCA1 XXXX XXXX 2000 XXXX XXXX XXXX XXXX XXXX XXXX MEMR RD D7 : D0 D7 : D0 10008 10007 10006 10005 10004 10003 10002 10001 10000 MEMW WR 00001 CS FFFFF FFFFE FFFFD A19 : A0 A19 : A0 20023 20022 20021 20020 : : : : 36 25 19 : : 13 7D 12 29 : : 8A F4 07 88 42 39 27 98 45 : : : : 95 23 00000 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 … 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 đến A0 (HEX) 00000 7FFFF AAAA 1111 9876 0000 0111 AAAA 1111 5432 0000 1111 AAAA 1198 1000 0000 1111 AAAA 7654 AAAA 3210 0000 1111 0000 1111 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 đến A0 (HEX) 80000 FFFFF AAAA 1111 9876 1000 1111 AAAA 1111 5432 0000 1111 AAAA 1198 1000 0000 1111 AAAA 7654 AAAA 3210 0000 1111 0000 1111 Bộ nhớ 512KB AX BX CX DX CS SS DS ES BP SP SI DI IP 3F1C 0023 0000 FCA1 XXXX XXXX 2000 XXXX XXXX XXXX XXXX XXXX XXXX Làm gì với A19? A19 A18 : A0 D7 : D0 MEMR MEMW A18 : A0 D7 : D0 RD WR 00001 00000 7FFFF 7FFFE 7FFFD : : 20023 20022 20021 20020 : : 36 25 19 : : 13 7D 12 29 : : 95 23 CS Điều gì xảy ra nếu 8088 đọc ô nhớ A0023h? AX BX CX DX CS SS DS ES BP SP SI DI IP 3F1C 0023 0000 FCA1 XXXX XXXX A000 XXXX XXXX XXXX XXXX XXXX XXXX A19 A18 : A0 D7 : D0 MEMR MEMW A18 : A0 D7 : D0 RD WR 7FFFF 7FFFE 7FFFD : : 20023 20022 20021 20020 : : 00001 00000 36 25 19 : : 13 7D 12 29 : : 95 23 CS MOV AH, [BX] Điều gì xảy ra nếu 8088 đọc ô nhớ A0023h? A19 đến A0 (HEX) A0023 AAAA 1111 9876 1010 AAAA 1111 5432 0000 AAAA 1198 1000 0000 AAAA 7654 AAAA 3210 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. Điều gì xảy ra nếu 8088 đọc ô nhớ 20023h? A18 đến A0 (HEX) 20023 AAAA 1111 9876 0010 AAAA 1111 5432 0000 AAAA 1198 1000 0000 AAAA 7654 AAAA 3210 0010 0011 Với bộ nhớ tình hình không có gì khác! Nếu Bộ nhớ gồm 2 khối 512KB như thế này? AX BX CX DX CS SS DS ES BP SP SI DI IP 3F1C 0023 0000 FCA1 XXXX XXXX 2000 XXXX XXXX XXXX XXXX XXXX XXXX A19 A18 : A0 D7 : D0 MEMR MEMW A18 : A0 D7 : D0 RD WR CS 7FFFF 7FFFE 7FFFD : 20023 20022 20021 20020 : 00001 00000 36 25 19 : 13 7D 12 29 : 95 23 A18 : A0 D7 : D0 RD WR CS 7FFFF 7FFFE 7FFFD : 20023 20022 20021 20020 : 00001 00000 12 98 2C : 33 45 92 A3 : D4 97 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 Bộ nhớ gồm hai khối nhớ 512KB AX BX CX DX CS SS DS ES BP SP SI DI IP 3F1C 0023 0000 FCA1 XXXX XXXX 2000 XXXX XXXX XXXX XXXX XXXX XXXX A18 : A0 D7 : D0 RD WR CS A19 A18 : A0 D7 : D0 MEMR MEMW A18 : A0 D7 : D0 RD WR CS 7FFFF 7FFFE 7FFFD : 20023 20022 20021 20020 : 00001 00000 36 25 19 : 13 7D 12 29 : 95 23 7FFFF 7FFFE 7FFFD : 20023 20022 20021 20020 : 00001 00000 12 98 2C : 33 45 92 A3 : D4 97 Không gian địa chỉ bộ nhớ 1M A19 đến A0 (HEX) 00000 7FFFF 80000 FFFFF AAAA 1111 9876 0000 0111 1000 1111 AAAA 1111 5432 0000 1111 0000 1111 AAAA 1198 1000 0000 1111 0000 1111 AAAA 7654 AAAA 3210 0000 1111 0000 1111 0000 1111 0000 1111 Bộ nhớ gồm hai khối nhớ 512KB AX BX CX DX CS SS DS ES BP SP SI DI IP 3F1C 0023 0000 FCA1 XXXX XXXX 2000 XXXX XXXX XXXX XXXX XXXX XXXX A19 A18 : A0 D7 : D0 MEMR MEMW A18 : A0 D7 : D0 RD 20023 20022 20021 20020 : 00001 00000 7FFFF 7FFFE 7FFFD : 36 25 19 : 13 7D 12 29 : 95 23 Khi µ P xuất một địa chỉ từ 80000h to n 00000h đế 7FFFFh FFFFFh, Bộ nhớ này hoạt động WR CS A18 : A0 D7 : D0 RD WR CS 7FFFF 7FFFE 7FFFD : 20023 20022 20021 20020 : 00001 00000 12 98 2C : 33 45 92 A3 : D4 97 Bộ nhớ gồm hai khối nhớ 512KB AX BX CX DX CS SS DS ES BP SP SI DI IP 3F1C 0023 0000 FCA1 XXXX XXXX 2000 XXXX XXXX XXXX XXXX XXXX XXXX A19 A18 : A0 D7 : D0 MEMR MEMW A18 : A0 D7 : D0 RD WR CS 20023 20022 20021 20020 : 00001 00000 7FFFF 7FFFE 7FFFD : 36 25 19 : 13 7D 12 29 : 95 23 A18 : A0 D7 : D0 RD WR CS 7FFFF 7FFFE 7FFFD : 20023 20022 20021 20020 : 00001 00000 12 98 2C : 33 45 92 A3 : D4 97 Thiết kế Bộ nhớ cho Hệ vi xử lý AX BX CX DX CS SS DS ES BP SP SI DI IP 3F1C 0023 0000 FCA1 XXXX XXXX 2000 XXXX XXXX XXXX XXXX XXXX XXXX A19 A18 : A0 D7 : D0 MEMR MEMW A19 A18 : A0 D7 : D0 RD WR A18 : A0 D7 : D0 7FFFF 7FFFE 7FFFD : 20023 20022 20021 20020 36 25 19 : 13 7D 12 29 : 95 23 Ghép nối các chip RD : nhớ riêng lẽ vWR i Bus ớ 00001 CS 00000 hệ thống sao cho không xảy ra xung 7FFFF đột nhờ mạchA18giải 7FFFE : 7FFFD : mã địa chỉ bộ A0 ớ nh D7 : D0 RD WR CS 20023 20022 20021 20020 00001 00000 : 12 98 2C : 33 45 92 A3 : D4 97 Nếu bỏ đi khối nhớ bên dưới? AX BX CX DX CS SS DS ES BP SP SI DI IP 3F1C 0023 0000 FCA1 XXXX XXXX 2000 XXXX XXXX XXXX XXXX XXXX XXXX A19 A18 : A0 D7 : D0 MEMR MEMW A18 : A0 D7 : D0 RD WR CS 00001 00000 20023 20022 20021 20020 : 7FFFF 7FFFE 7FFFD : 36 25 19 : 13 7D 12 29 : 95 23 A18 : A0 D7 : D0 RD WR CS 7FFFF 7FFFE 7FFFD : 20023 20022 20021 20020 : 00001 00000 12 98 2C : 33 45 92 A3 : D4 97 Nếu bỏ đi khối nhớ bên dưới thì … AX BX CX DX CS SS DS ES BP SP SI DI IP 3F1C 0023 0000 FCA1 XXXX XXXX 2000 XXXX XXXX XXXX XXXX XXXX XXXX A19 A18 : A0 D7 : D0 MEMR MEMW A18 : A0 D7 : D0 20023 20022 20021 20020 : 00001 00000 7FFFF 7FFFE 7FFFD : 36 25 19 : 13 7D 12 29 : 95 23 Khi µ P xuất ra một Khi µ P xuất ra một dịa chỉ từ 00000h địa chỉ từ 80000h đến 7FFFFh, Không đến FFFFFh, Chip có ớ nàynhớ nào hoạt nh chip hoạt động động! RD WR CS ! Giải mã đầy đủ và không đầy đủ Giải mã đầy đủ (Full Decoding) Giải mã không đầy đủ (Partial 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 • 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ý Giải mã đầy đủ AX BX CX DX CS SS DS ES BP SP SI DI IP 3F1C 0023 0000 FCA1 XXXX XXXX 2000 XXXX XXXX XXXX XXXX XXXX XXXX A19 A18 : A0 D7 : D0 MEMR MEMW A18 : A0 D7 : D0 RD WR CS 00001 00000 20023 20022 20021 20020 : 7FFFF 7FFFE 7FFFD : 36 25 19 : 13 7D 12 29 : 95 23 Giải mã đầy đủ A19 đến A0 (HEX) 80000 FFFFF AAAA 1111 9876 1000 1111 AAAA 1111 5432 0000 1111 AAAA 1198 1000 0000 1111 AAAA 7654 AAAA 3210 0000 1111 0000 1111 A19 phải ở mức “1” thì chip nhớ mới hoạt động (được chọn) Giải mã đầy đủ A19 đến A0 (HEX) 00000 7FFFF AAAA 1111 9876 0000 0111 AAAA 1111 5432 0000 1111 AAAA 1198 1000 0000 1111 AAAA 7654 AAAA 3210 0000 1111 0000 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. Giải mã không đầy đủ AX BX CX DX CS SS DS ES BP SP SI DI IP 3F1C 0023 0000 FCA1 XXXX XXXX 2000 XXXX XXXX XXXX XXXX XXXX XXXX A19 A18 : A0 D7 : D0 MEMR MEMW A18 : A0 D7 : D0 RD WR 00001 00000 7FFFF 7FFFE 7FFFD : : 20023 20022 20021 20020 : : 36 25 19 : : 13 7D 12 29 : : 95 23 CS Giải mã không đầy đủ A19 đến A0 (HEX) 00000 7FFFF 80000 FFFFF AAAA 1111 9876 0000 0111 1000 1111 AAAA 1111 5432 0000 1111 0000 1111 AAAA 1198 1000 0000 1111 0000 1111 AAAA 7654 AAAA 3210 0000 1111 0000 1111 0000 1111 0000 1111 A19 không có ý nghĩa với chip nhớ Giải mã không đầy đủ A19 đến A0 (HEX) 00000 7FFFF 80000 FFFFF AAAA 1111 9876 0000 0111 1000 1111 AAAA 1111 5432 0000 1111 0000 1111 AAAA 1198 1000 0000 1111 0000 1111 AAAA 7654 AAAA 3210 0000 1111 0000 1111 0000 1111 0000 1111 Địa chỉ thực tế Giải mã không đầy đủ A19 đến A0 (HEX) 00000 7FFFF 80000 FFFFF AAAA 1111 9876 0000 0111 1000 1111 AAAA 1111 5432 0000 1111 0000 1111 AAAA 1198 1000 0000 1111 0000 1111 AAAA 7654 AAAA 3210 0000 1111 0000 1111 0000 1111 0000 1111 Địa chỉ thực tế Bộ nhớ gồm 2 chip 512Kx8 A19 A18 : A0 D7 : D0 MEMR MEMW A18 : A0 D7 : D0 RD WR CS 512KB #2 8088 Minimum Mode A18 : A0 D7 : D0 RD WR CS 512KB #1 Bộ nhớ chỉ có một chip 512Kx8 (Ver. 1) A19 A18 : A0 D7 : D0 MEMR MEMW A18 : A0 D7 : D0 RD WR CS 512KB 8088 Minimum Mode Bộ nhớ chỉ có một chip 512Kx8 (Ver. 2) A19 A18 : A0 D7 : D0 MEMR MEMW A18 : A0 D7 : D0 RD WR CS 512KB 8088 Minimum Mode Bộ nhớ chỉ có một chip 512Kx8 (Ver. 3) A19 A18 : A0 D7 : D0 MEMR MEMW A18 : A0 D7 : D0 RD WR CS 512KB 8088 Minimum Mode A17 Bộ nhớ gồm 4 chip 256Kx8 A19 A18 A17 : : A0 D7 : D0 RD WR CS A17 : 256KB #4 A0 D7 : A0 D7 : D0 MEMR MEMW D0 RD WR CS A17 : 256KB #3 8088 Minimum Mode A0 D7 : D0 RD WR CS A17 : 256KB #2 A0 D7 : D0 RD WR CS 256KB #1 A17 Bộ nhớ gồm 4 chip 256Kx8 A19 A18 A17 : : A0 D7 : D0 RD WR CS A17 : 256KB #4 A0 D7 : A0 D7 : D0 MEMR MEMW D0 RD WR CS A17 : 256KB #3 8088 Minimum Mode A0 D7 : D0 RD WR CS A17 : 256KB #2 A0 D7 : D0 RD WR CS 256KB #1 Dải địa chỉ của chip #1 A19 AAAA đến 1111 A0 9876 (HEX) ----- ---AAAA 1111 5432 AAAA 1198 1000 AAAA 7654 AAAA 3210 ---- ---- ---- ---- ----- --- --- ---- ---- ---- Dải địa chỉ của chip #2 A19 AAAA đến 1111 A0 9876 (HEX) ----- ---AAAA 1111 5432 AAAA 1198 1000 AAAA 7654 AAAA 3210 ---- ---- ---- ---- ----- --- --- ---- ---- ---- Dải địa chỉ của chip #3 A19 AAAA đến 1111 A0 9876 (HEX) ----- ---AAAA 1111 5432 AAAA 1198 1000 AAAA 7654 AAAA 3210 ---- ---- ---- ---- ----- --- --- ---- ---- ---- Dải địa chỉ của chip #4 A19 AAAA đến 1111 A0 9876 (HEX) ----- ---AAAA 1111 5432 AAAA 1198 1000 AAAA 7654 AAAA 3210 ---- ---- ---- ---- ----- --- --- ---- ---- ---- Bộ nhớ gồm 4 chip 256Kx8 dùng các cổng logic A19 A18 A17 : A17 : A0 D7 : D0 RD WR CS A17 : 256KB #4 A0 D7 : A0 D7 : D0 MEMR MEMW D0 RD WR CS A17 : 256KB #3 8088 Minimum Mode A0 D7 : D0 RD WR CS A17 : 256KB #2 A0 D7 : D0 RD WR CS 256KB #1 Bộ nhớ gồm 4 chip 256Kx8 dùng các cổng logic A19 A18 A17 : A17 : A0 D7 : D0 RD WR CS A17 : 256KB #4 A0 D7 : A0 D7 : D0 MEMR MEMW D0 RD WR CS A17 : 256KB #3 8088 Minimum Mode A0 D7 : D0 RD WR CS A17 : 256KB #2 A0 D7 : D0 RD WR 256KB #1 CS Bộ nhớ gồm 4 chip 256Kx8 dùng một chip giải mã 2-4 A19 A18 A17 : A17 : A0 D7 : D0 RD WR I1 I0 O3 CS A17 : 256KB #4 A0 D7 : A0 D7 : D0 MEMR MEMW D0 RD WR O2 CS A17 : 256KB #3 8088 Minimum Mode A0 D7 : D0 RD WR O1 CS A17 : 256KB #2 A0 D7 : D0 RD WR 256KB #1 O0 CS A12 Ghép nối các chip nhớ 8Kx8 với µ P 8088 8088 : A19 A18 A17 A16 A15 A14 A13 A12 : A0 D7 : D0 RD WR CS 8KB #? A0 D7 : 8088 Minimum Mode D0 MEMR MEMW : : A12 : A0 D7 : D0 RD WR CS A12 : 8KB #2 A0 D7 : D0 RD WR CS 8KB #1 A12 : Bộ nhớ gồm 128 chip 8Kx8 A19 A18 A17 A16 A15 A14 A13 A12 : A0 D7 : D0 RD WR CS 8KB #128 A0 D7 : 8088 Minimum Mode D0 MEMR MEMW : : A12 : A0 D7 : D0 RD WR CS A12 : 8KB #2 A0 D7 : D0 RD WR CS 8KB #1 A12 : Bộ nhớ gồm 128 chip 8Kx8 A19 A18 A17 A16 A15 A14 A13 A12 : A0 D7 : D0 RD WR CS 8KB #128 A0 D7 : 8088 Minimum Mode D0 MEMR MEMW : : A12 : A0 D7 : D0 RD WR CS A12 : 8KB #2 A0 D7 : D0 RD WR CS 8KB #1 Dải địa chỉ của Chip #__ A19 AAAA đến 1111 A0 9876 (HEX) ----- ---AAAA 1111 5432 AAAA 1198 1000 AAAA 7654 AAAA 3210 ---- ---- ---- ---- ----- --- --- ---- ---- ---- A12 : Bộ nhớ gồm 128 chip 8Kx8 A19 A18 A17 A16 A15 A14 A13 A12 : A0 D7 : D0 RD WR CS 8KB #128 A0 D7 : 8088 Minimum Mode D0 MEMR MEMW : : A12 : A0 D7 : D0 RD WR CS A12 : 8KB #2 A0 D7 : D0 RD WR CS 8KB #1 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 Bước 1: Vẽ bản đồ bộ nhớ cần thiết kế FFFFFh ROM 2K FF800h FF7FFh RWM Các Địa chỉ biên 2K FF000h Chưa sử dụng 00000h Bước 2: Chuyển các địa chỉ biên từ H sang B A19 đến A0 (HEX) FF800 FFFFF AAAA 1111 9876 1111 1111 AAAA 1111 5432 1111 1111 AAAA 1198 1000 1000 1111 AAAA 7654 AAAA 3210 0000 1111 0000 1111 Bước 2: Chuyển các địa chỉ biên từ H sang B A19 đến A0 (HEX) FF000 FF7FF AAAA 1111 9876 1111 1111 AAAA 1111 5432 1111 1111 AAAA 1198 1000 0000 0111 AAAA 7654 AAAA 3210 0000 1111 0000 1111 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 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 74LS138: Một chip giải mã 3-8 C B A Y0 Y1 Y2 U1 74LS138 74LS138 A2 A1 A0 E3 E2 E1 Q7 Q6 Q5 Q4 Q3 Q2 Q1 Q0 Y3 74LS138 Y4 Y5 G1 G2A G2B Y6 Y7 Bộ nhớ cần thiết kế A11 : A19 A18 A17 : A0 D7 : D0 MEMR MEMW C B A 74LS138 8088 Minimum Mode G1 G2A G2B Y0 Y1 Y2 Y3 Y4 Y5 Y6 Y7 A0 D7 : 2Kx8 4016 D0 OE WE CS A11 : A0 D7 : 2Kx8 2716 D0 OE CE ...
View Full Document

Ask a homework question - tutors are online