Design a Memory System Using Four Memory Chips
- The processor can usually address a memory space that is much larger than the memory space covered by an individual memory chip.
- In order to splice a memory device into the address space of the processor, decoding is necessary.
- For example, the 8088 issues 20-bit addresses for a total of 1MB of memory address space.
- However, the BIOS on a 2716 EPROM has only 2KB of memory and 11 address pins.
- A decoder can be used to decode the additional 9 address pins and allow the EPROM to be placed in any 2KB section of the 1MB address space.
- To determine the address range that a device is mapped into:
- This 2KB memory segment maps into the reset location of the 8086/8088 (FFFF0H).
- NAND gate decoders are not often used.
- Rather the 3-to-8 Line Decoder (74LS138) is more common.
- The 3-to-8 Line Decoder (74LS138)
- Note that all three Enables (G2A, G2B, and G1) must be active, e.g. low, low and high, respectively.
- Each output of the decoder can be attached to an 2764 EPROM ( 8K X 8 ).
- The EPROMs cover a 64KB section of memory.
- Yet a third possibility is a PLD (Programmable Logic Device).
- PLDs come in three varieties:
- PLA (Programmable Logic Array)
- PAL (Programmable Array Logic)
- GAL (Gated Array Logic)
- PLDs have been around since the mid-1970s but have only recently appeared in memory systems (PALs have replaced PROM address decoders).
- PALs and PLAs are fuse-programmed (like the PROM).
- Some are erasable (like the EPROM).
- A PAL example (16L8) is shown in the text and is commonly used to decode the memory address, particularly for 32-bit addresses generated by the 80386DX and above.
- AMD 16L8 PAL decoder.
- It has 10 fixed inputs (Pins 1-9, 11), two fixed outputs (Pins 12 and 19) and 6 pins that can be either (Pins 13-18).
- AND/NOR device with logic expressions (outputs) with up to 16 ANDed inputs and 7 ORed product terms.
- The memory systems "sees" the 8088 as a device with:
- 20 address connections (A19 to A0).
- 8 data bus connections (AD7 to AD0).
- 3 control signals, IO/M, RD, and WR.
- We'll look at interfacing the 8088 with:
- 32K of EPROM (at addresses F8000H through FFFFFH).
- 512K of SRAM (at addresses 00000H through 7FFFFH).
- The EPROM interface uses a 74LS138 (3-to-8 line decoder) plus 8 2732 ( 4K X 8 ) EPROMs.
- The EPROM will also require the generation of a wait state.
- The EPROM has an access time of 450ns .
- The 74LS138 requires 12ns to decode.
- The 8088 runs at 5MHz and only allows 460ns for memory to access data.
- A wait state adds 200ns of additional time.
- The 8088 cold starts execution at FFFF0H . JMP to F8000H occurs here.
- The 16 62256s on the previous slide are actually SRAMs.
- Access times are on order of 10ns .
- Flash memory can also be interfaced to the 8088 (see text).
- However, the write time ( 400ms !) is too slow to be used as RAM (as shown in the text).
- Parity Checking:
- Parity checking is used to detect single bit errors in the memory.
- The current trend is away from parity checking.
- Parity checking adds 1 bit for every 8 data bits.
- For EVEN parity, the 9th bit is set to yield an even number of 1's in all 9 bits.
- For ODD parity, the 9th bit is set to make this number odd.
- For 72-pin SIMMs, the number of data bits is 32 + 4 = 36 ( 4 parity bits).
- 74AS280 Parity Generator/Checker
- This circuit generates EVEN or ODD parity for the 9-bit number placed on its inputs.
- Typically, for generation, the 9th input bit is set to 0.
- This circuit also checks EVEN or ODD parity for the 9-bit number.
- In this case, the 9th input bit is connected to the 9th bit of memory.
- For example, if the original byte has an even # of 1's (with 9th bit at GND), the parity bit is set to 1 (from the EVEN output).
- If the EVEN output goes high during the check, then an error occurred.
- This parity scheme can only detect a single bit error.
- Block-Check Character ( BCC ) or Checksum.
- Can detect multiple bit errors.
- This is simply the two's complement sum (the negative of the sum) of the sequence of bytes.
- No error occurred if adding the data values and the checksum produces a 0.
- For example:
- This is not fool proof.
- If 45 changes to 44 AND 04 changes to 05, the error is missed.
- Cyclic Redundancy Check ( CRC ).
- Commonly used to check data transfers in hardware such as harddrives.
- Treats data as a stream of serial data n-bits long.
- The bits are treated as coefficients of a characteristic polynomial , M(X) of the form:
- Cyclic Redundancy Check ( CRC ) (cont.)
- The CRC is found by applying the following equation.
- G(X) is the called the generator polynomial and has special properties.
- A commonly used polynomial is:
- The remainder R(X) is appended to the data block.
- When the CRC and R(X) is computed by the receiver, R(X) should be zero.
- Since G(X) is of power 16, the remainder, R(X) , cannot be of order higher than 15.
- Therefore, no more than 2 bytes are needed independent of the data block size.
- Cyclic Redundancy Check ( CRC )(cont.)
- Parity , BCC and CRC are only mechanisms for error detection.
- The system is halted if an error is found in memory.
- Error correction is starting to show up in new systems.
- SDRAM has ECC (Error Correction Code).
- Correction will allow the system can continue operating.
- If two errors occur, they can be detected but not corrected .
- Error correction will of course cost more in terms of extra bits.
- Error correction is based on Hamming Codes .
- There is lots of theory here but our focus will be on implementation.
- The objective is to correct any single bit errors in an 8-bit data byte.
- In other words, we need 4 parity bits to correct single bit errors.
- Note that the parity bits are at bit positions that are powers of 2 .
- Hamming Codes (cont).
- P1 is generated by computing the parity of X 3 , X 5 , X 7 , X 9 , X 11 , X 13 , X 15 .
- These numbers have a 1 in bit position 1 of the subscript in binary.
- Hamming Codes (cont).
- The 74LS636 corrects errors by storing 5 parity bits with each byte of data.
- The pinout consists of:
- 8 data I/O pins
- 5 check bit I/O pins
- 2 control pins
- 2 error outputs
- Single error flag ( SEF )
- Double error flag ( DEF ).
- See the text for an example of its use in a circuit.
Design a Memory System Using Four Memory Chips
Source: https://ece-research.unm.edu/jimp/310/slides/8086_memory2.html
0 Response to "Design a Memory System Using Four Memory Chips"
Post a Comment