20 years ago: A line of EPROMs with bank-select registers on-chip offers an alternative to the traditional methods of increasing controller performance.
By John L. Nichols
The following article first appeared in the September 1989 issue of Embedded Systems Programming magazine.
Suppose the marketing department asks you to add some new features to an existing product that uses an eight-bit 8085 or Z80 microprocessor as a dedicated controller. How can you upgrade the product with minimal changes to the hardware?
In many cases, the performance of an eight-bit, CPU-based dedicated controller can be increased simply by expanding the program. Larger programs can often perform more complex tasks and execute data-processing tasks faster. If memory space is available, the product can probably be upgraded with little or no change to the hardware. For example, controllers using standard cards often have a vacant ROM socket or one that can be jumpered for a larger ROM. In these cases, you're home free--aside, of course, from the minor technical details of creating the new software.
Banking to the rescue
If the entire memory space is being used, expanding the program presents a more difficult problem. The traditional solution is to add a bank-select register to the design. The program can load that register to select the mapping of the expanded memory into the CPU's address space. Until recently, this approach meant substantial hardware changes.
Intel has come to the rescue with a line of EPROMs that feature on-chip bank-select registers. The 27513, for example, has 64 kbytes of memory organized as four banks of 16 kbytes each. A two-bit register selects the bank to appear in the CPU's memory space. The bank-select register is loaded by writing to the EPROM's memory.
If you'll be writing to the EPROM, it must be connected to the write signal. For some controllers this entails only a minor change to the hardware. Standard cards often provide 28-pin sockets that can be used for either RAM or ROM simply by changing a few jumpers. In that case, the socket for the 27513 EPROM can be jumpered as if it were to be used as a 16-kbyte RAM.