Bank Switching Article Index for
Bank
Limousines in
Bank
Website Links For
Bank
 

Information About

Bank Switching




Bank switching (also known as "paging", but only loosely related to the ordinary meaning of " Paging " in computing) was a technique common in 8-bit Microcomputer systems, to increase the amount of addressable RAM and ROM without extending the address bus.

Since 8-bit CPU s such as the Zilog Z80 and the MOS Technology 6502 series, with their 16-bit address registers, could only address a maximum of 64 KB of memory (in case of a single address being an 8-bit element, see Address Bus ), 8-bit systems containing more than 64 KB of memory addressed the memory in 64 KB banks (or "pages") — in other words, although the system may have contained 128 KB or more, only 64 KB was ever addressed directly at one time. This scheme offered access to more memory at the cost of more complicated programming and somewhat poorer performance.

While bank switching was less efficient than switching to a processor with a wider address bus would have been, it was an inexpensive way to increase the shelf life of several computer lines of the ), and Apple III could run software written for the Apple II+, and the Commodore 128 could run practically all of the software written for its much more prevalent predecessor, the C64 (which had already employed bank switching to allow for 64KB of RAM and still provide for ROM as well). Running code in the lower 64 KB part of memory on a C128 is as simple as addressing the first (lowest) bank. To access data or execute code in the upper 64 KB, it's perhaps easiest to just use the KERNAL ROM routines provided for this purpose. Alternatively, the programmer can use the MMU to establish a shared block of memory, set up a few control-transfer routines there, and then use those routines as needed. Furthermore, the 40-column VIC-IIe display chip can be configured to read from either bank of RAM. Similarly, the Atari 130XE could allow its two processors (the 6502 and the ANTIC ) to access separate RAM banks, allowing programmers on both machines to make large playfields and other graphic objects without using up the memory visible to the CPU.

In 1988 the companies Lotus , Intel and Microsoft agreed on a specification called Expanded Memory System (EMS, also stated as LIM-EMS) for use in IBM PC Compatible computers running MS-DOS . It was a form of bank switching technique that allowed more than the 640 KB of RAM foreseen by the original IBM PC architecture, by letting it appear piecewise in a 64KB "window" located in the Upper Memory Area . Some Computer Game s made use of this, and the feature is nowadays Emulate d by later Microsoft Windows Operating System s to provide backwards compatibility with those programs.

Bank switching was also utilized in some Video Game Console s. The Atari 2600 , for instance, could only address 4 KB of ROM, so later 2600 game Cartridge s contained their own bank switching hardware in order to permit the use of more ROM and thus allow for more sophisticated games (via more program code and, equally important, larger amounts of gameworld data such as graphics and sound). The Nintendo Entertainment System contained a modified 6502 but its cartridges sometimes contained a Megabit or more of ROM, addressed via bank switching called a Multi-Memory Controller . Game Boy cartridges used a chip called MBC (Memory Bank Controller), which not only offered ROM bank switching, but also cartridge SRAM bank switching, and even access to such features as infrared links or rumble motors.

Bank switching was later replaced by Segmentation in 16-bit systems,
which in turn was replaced by Paging Memory Management Unit s.


COMPUTERS USING BANK SWITCHING



EXTERNAL LINKS

Story about bank switching in the Apple II.