Bank Switching
Als Bank Switching bezeichnet man das Erweitern 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.
Das Problem setze 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 ausreichend Adressierungsraum für Speicher mit sich bringen.