Bank Switching
Bank Switching und Adressspeicherumschaltung (ASU) sind synonyme Begriffe für die Erweiterung des Computerspeichers eines Computers (RAM oder ROM) über seine natürlichen Adressierungsräume hinaus durch das, durch Software gesteuerte, aber in Hardware umgesetzte Umschalten einzelner Speicherbereiche. Diese Technik ist entweder integraler Bestandteil eines Mikroprozessors oder wird davon unabhängig in Computersysteme integriert. Um Bank Switching zu ermöglichen, wird entweder der gesamte oder auch nur ein Teil des Speicherbereichs reserviert. In diesen reservierten Speicherbereich (Bank) wird jeweils ein entsprechend großer Bereich aus einem anderen Speicher eingeblendet.Bank Switching wurde bereits bei frühen 8-Bit Computersystemen eingesetzt, z. B. dem C64, da diese nur 64 KiB Speicher adressieren konnten, viele Firmen aber 64 KiB oder noch mehr RAM und zusätzlich auch noch ROM einbauen wollten und teilweise Memory Mapped I/O verwendeten, welches beides auch Adressraum belegt. Auch Spielmodule für Videokonsolen (z. B. Atari 2600) verwendeten diese Technik, um den Programmspeicher über das ursprünglich vorgesehene Maß hinaus zu vergrößern. Bei MSX-Computern mit dem Z80-Prozessor wurde der Speicher in 4 Bänke zu 16 KiB eingeteilt und nach Bedarf RAM oder ROM eingeblendet.
Bei einem anderen 8-Bit-System, das vor allem sehr viel ROM-Platz benötigte, wurde es beispielsweise so realisiert, dass die unteren 32 KiB des Adressraums unverändert blieben und neben dem kompletten RAM sowie dem Memory Mapped I/O vor allem die Grundroutinen des Betriebssystems und die Bank-Umschaltroutinen enthielten. Die komplette obere 32-KiB-Hälfte des Adressraums war dann umschaltbar eingerichtet, wohin wahlweise eine von bis zu 8 verschiedenen 32-KiB-ROM-Bänken eingeblendet wurde. Das einzige Problem trat dann auf, wenn ein Programmteil aus dieser oberen Adresshälfte eine Subroutine aus einer anderen Bank der oberen Hälfte aufrufen wollte. Dafür gab es dann eben spezielle Unterstützungsroutinen in der festen unteren Hälfte, die diese heikle Operation zu organisieren halfen.
Das Problem setzte sich später auf dem IBM-PC fort. Ältere PCs waren vom Prinzip her auf maximal 640 KiB RAM beschränkt. Daher wurde 1988 das Expanded Memory System (EMS) von den Firmen Lotus, Intel und Microsoft ("LIM") spezifiziert. RAM-Steckkarten, die nach diesem LIM-EMS Standard gebaut waren, konnten dann von Programmen verwendet werden, um den Speicher des PCs in 64 KiB großen Bänken zu erweitern. Diese Bänke konnten von einem Programm einzeln in den Adressraum "eingeblendet" werden
Die Technik des Bank Switching gilt als unelegant und als eine Quelle für schwer zu findende Programmfehler. Sie wird daher nur dann verwendet, wenn einem von der Computerarchitektur entsprechende Grenzen gesetzt sind. Mit der zunehmenden Verbreitung von 32- und 64-Bit Computersystemen entfällt der Bedarf für Bank Switching zunehmend, da diese Architekturen meist ausreichend Adressierungsraum für Speicher mit sich bringen.

