cambio de banco


El cambio de banco es una técnica utilizada en el diseño de computadoras para aumentar la cantidad de memoria utilizable más allá de la cantidad directamente direccionable por las instrucciones del procesador [1] . Se puede usar para configurar un sistema de manera diferente en diferentes momentos; por ejemplo, una ROM requerida para iniciar un sistema desde un disquete podría cambiarse cuando ya no se necesite. En los sistemas de videojuegos, el cambio de banco permitió desarrollar juegos más grandes para jugar en las consolas existentes.

El cambio de banco se originó en los sistemas de minicomputadoras . [2] Muchos microcontroladores y microprocesadores modernos utilizan la conmutación de bancos para administrar la memoria de acceso aleatorio , la memoria no volátil, los dispositivos de entrada y salida y los registros de administración del sistema en pequeños sistemas integrados . La técnica era común en los sistemas de microcomputadoras de 8 bits . El cambio de banco también se puede usar para sortear las limitaciones en el ancho del bus de direcciones, donde alguna restricción de hardware impide la adición directa de más líneas de dirección, y para sortear las limitaciones en el ISA., donde las direcciones generadas son más estrechas que el ancho del bus de direcciones. Algunos microprocesadores orientados al control utilizan una técnica de cambio de banco para acceder a las E/S internas y a los registros de control, lo que limita el número de bits de dirección de registro que deben utilizarse en cada instrucción.

A diferencia de la gestión de memoria mediante paginación , [ cita requerida ] los datos no se intercambian con un dispositivo de almacenamiento masivo como el almacenamiento en disco . Los datos permanecen en almacenamiento inactivo en un área de la memoria que actualmente no es accesible para el procesador (aunque puede ser accesible para la pantalla de video, el controlador DMA u otros subsistemas de la computadora) sin el uso de instrucciones especiales de prefijo.

El cambio de banco se puede considerar como una forma de ampliar el espacio de direcciones de las instrucciones del procesador con algún registro. Ejemplos:

A menudo, una sola base de datos abarca varios bancos y surge la necesidad de mover registros entre bancos (como para clasificar). Si solo se puede acceder a un banco a la vez, sería necesario mover cada byte dos veces: primero al área de memoria común, realizar un cambio de banco al banco de destino y luego mover el byte al banco de destino. Si la arquitectura de la computadora tiene un motor DMA o una segunda CPU, y sus restricciones de acceso al banco difieren, se debe usar cualquier subsistema que pueda transferir datos directamente entre bancos.

A diferencia de un esquema de memoria virtual , el cambio de banco debe ser administrado explícitamente por el programa en ejecución o el sistema operativo; el hardware del procesador no puede detectar automáticamente que se requieren datos que no están asignados actualmente al banco activo. El programa de aplicación debe realizar un seguimiento de qué banco de memoria contiene un dato requerido y luego llamar a la rutina de cambio de banco para activar ese banco. [6] Sin embargo, el cambio de banco puede acceder a los datos mucho más rápido que, por ejemplo, recuperar los datos del almacenamiento en disco.


Un mapa de memoria hipotético de memoria con conmutación de banco para un procesador que solo puede direccionar 64 KB. Este esquema muestra 200 KB de memoria, de los cuales el procesador solo puede acceder a 64 KB en cualquier momento. El sistema operativo debe administrar la operación de cambio de banco para garantizar que la ejecución del programa pueda continuar cuando el procesador no puede acceder a parte de la memoria.
El interruptor de selección de banco en la placa de memoria Cromemco se usó para mapear la memoria en uno o más de 8 bancos distintos de 64 KB. [7]
Memoria expandida en la PC IBM