Technique[ edit ] Bank switching can be considered as a way of extending the address bus of a processor with some external register. If an external latch was added to the system, it could be used to control which of two sets of memory devices, each with addresses, could be accessed. The processor could change which set is in current use by setting or clearing the latch bit. Several bank-switching control bits could be gathered into a register, approximately doubling the available memory spaces with each additional bit in the register. Because the external bank-selecting latch or register is not directly connected with the program counter of the processor, it does not automatically change state when the program counter overflows; this cannot be detected by the external latch since the program counter is an internal register of the processor.
|Published (Last):||24 May 2006|
|PDF File Size:||16.42 Mb|
|ePub File Size:||2.11 Mb|
|Price:||Free* [*Free Regsitration Required]|
Technique[ edit ] Bank switching can be considered as a way of extending the address bus of a processor with some external register. If an external latch was added to the system, it could be used to control which of two sets of memory devices, each with addresses, could be accessed.
The processor could change which set is in current use by setting or clearing the latch bit. Several bank-switching control bits could be gathered into a register, approximately doubling the available memory spaces with each additional bit in the register.
Because the external bank-selecting latch or register is not directly connected with the program counter of the processor, it does not automatically change state when the program counter overflows; this cannot be detected by the external latch since the program counter is an internal register of the processor. The extra memory is not seamlessly available to programs. Internal registers of the processor remain at their original length, so the processor cannot directly span all of bank-switched memory by, for example, incrementing an internal register.
There are other limitations. Generally a bank-switching system will have one block of program memory that is common to all banks; no matter which bank is currently active, for part of the address space only one set of memory locations will be used. This area would be used to hold code that manages the transitions between banks, and also to process interrupts. Often a single database spans several banks, and the need arises to move records between banks as for sorting. If only one bank is accessible at a time, it would be necessary to move each byte twice: first into the common memory area, perform a bank switch to the destination bank, and then actually to move the byte into the destination bank.
If the computer architecture has a DMA engine or a second CPU, and its bank access restrictions differ, whichever subsystem can transfer data directly between banks should be used. Unlike a virtual memory scheme, bank-switching must be explicitly managed by the running program or operating system; the processor hardware cannot automatically detect that data not currently mapped into the active bank is required. The application program must keep track of which memory bank holds a required piece of data, and then call the bank-switching routine to make that bank active.
Systems with more memory had to divide the address space into a number of blocks that could be dynamically mapped into parts of a larger address space. An example is the PIC microcontroller. This allows short instruction words to save space during routine program execution, at the cost of extra instructions required to access relatively infrequently used registers, such as those used for system configuration at start-up.
Microsoft joined for versions 3. Some computer games made use of this, and though EMS is obsolete, the feature is nowadays emulated by later Microsoft Windows operating systems to provide backwards compatibility with those programs. XMS allows extended memory to be copied anywhere in conventional memory, so the boundaries of the "banks" are not fixed, but in every other way it works like the bank switching of EMS , from the perspective of a program that uses it.
Microsoft Windows emulates XMS also, for those programs that require it. Video game consoles[ edit ] Bank switching was also used in some video game consoles. Bank switching was still being used on later game systems. The GP2X handheld from Gamepark Holdings uses bank switching in order to control the start address or memory offset for the second processor.
Video processing[ edit ] In some types of computer video displays , the related technique of double buffering may be used to improve video performance. In this case, while the processor is updating the contents of one set of physical memory locations, the video generation hardware is accessing and displaying the contents of a second set. When the processor has completed its update, it can signal to the video display hardware to swap active banks, so that the transition visible on screen is free of artifacts or distortion.
In this case, the processor may have access to all the memory at once, but the video display hardware is bank-switched between parts of the video memory. If the two or more banks of video memory contain slightly different images, rapidly cycling page-flipping between them can create animation or other visual effects that the processor might otherwise be too slow to carry out directly.
Alternative and successor techniques[ edit ] Bank switching was later supplanted by segmentation in many bit systems , which in turn gave way to paging memory management units.
In embedded systems, however, bank switching is still often used for its simplicity, low cost, and often better adaptation to those contexts than to general purpose computing.
Current sales of new consoles is consolidated around 3 major companies and their proprietary platforms: Nintendo, Sony and Microsoft. In addition, there is an enormous installed "retro gaming" base of Ataria and Sega console enthusiasts. This book, written by a team led by Joe Grand, author of "Hardware Hacking: Have Fun While Voiding Your Warranty", provides hard-core gamers with they keys to the kingdom: specific instructions on how to crack into their console and make it do things it was never designed to do. By definition, video console game players like to have fun. Most of them are addicted to the adrenaline rush associated with "winning", and even more so when the "winning" involves beating the system by discovering the multitude of "cheats" built into most video games. Now, they can have the ultimate adrenaline rushactually messing around with the soul of the machine and configuring it to behave exactly as the command.
Hardware Hacking: Limited Edition!