stringtranslate.com

cambio de banco

Un mapa de memoria hipotético de memoria conmutada por banco para un procesador que sólo puede direccionar 64 KB. Este esquema muestra 200 KB de memoria, de los cuales el procesador solo puede acceder en cualquier momento a 64 KB. El sistema operativo debe gestionar la operación de cambio de banco para garantizar que la ejecución del programa pueda continuar cuando parte de la memoria no sea accesible para el procesador.

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 utilizar para configurar un sistema de manera diferente en diferentes momentos; por ejemplo, una ROM necesaria para iniciar un sistema desde un disquete podría desconectarse cuando ya no sea necesaria. 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 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 . La conmutación de banco también se puede utilizar para solucionar las limitaciones en el ancho del bus de direcciones, donde algunas restricciones de hardware impiden la adición directa de más líneas de dirección, y para solucionar las limitaciones en 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 conmutación 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 se deben utilizar en cada instrucción.

A diferencia de la gestión de memoria mediante paginación , 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 memoria a la que actualmente no puede acceder el procesador (aunque puede ser accesible desde la pantalla de video, el controlador DMA u otros subsistemas de la computadora) sin el uso de instrucciones de prefijo especiales.

Técnica

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

A menudo, una única base de datos abarca varios bancos y surge la necesidad de mover registros entre bancos (como para clasificarlos). Si sólo 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 utilizar 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 o sistema operativo en ejecución; 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.

uso de microcomputadoras

Se utilizó el interruptor de selección de banco en la placa de memoria Cromemco para asignar la memoria a uno o más de 8 bancos distintos de 64 KB. [7]

Los procesadores con direccionamiento de 16 bits ( 8080 , Z80 , 6502 , 6809 , etc.) comúnmente utilizados en las primeras consolas de videojuegos y computadoras domésticas pueden direccionar directamente solo 64  KB . Los sistemas con más memoria tenían que dividir el espacio de direcciones en una serie de bloques que podían asignarse dinámicamente a partes de un espacio de direcciones más grande. Se utilizó el cambio de banco para lograr este mayor espacio de direcciones organizando la memoria en bancos separados de hasta 64 KB cada uno. [8] Se activaban y eliminaban bloques de varios tamaños mediante registros de selección de banco o mecanismos similares. Cromemco fue el primer fabricante de microcomputadoras en utilizar conmutación de bancos, admitiendo 8 bancos de 64 KB en sus sistemas. [9]

Al utilizar la conmutación de banco se requería cierta precaución para no corromper el manejo de llamadas de subrutinas , interrupciones , la pila de la máquina , etc. Si bien el contenido de la memoria desconectada temporalmente de la CPU era inaccesible para el procesador, podía ser utilizado por otro hardware, como pantalla de video, DMA , dispositivos de E/S , etc. CP/M-80 3.0 lanzado en 1983 y el Los TRS-80 basados ​​en Z80, el Modelo 4 y el Modelo II , admitían la conmutación de banco para permitir el uso de más de 64 KB de memoria que el procesador 8080 o Z80 podía abordar. [10]

El cambio de banco permitió agregar memoria y funciones adicionales al diseño de una computadora sin el gasto y la incompatibilidad de cambiar a un procesador con un bus de direcciones más amplio . Por ejemplo, el C64 usaba conmutación de banco para permitir 64 KB completos de RAM y aún así proporcionar ROM y E/S asignadas en memoria . El Atari 130XE podría permitir que sus dos procesadores (el 6502 y el ANTIC ) accedan a bancos de RAM separados, permitiendo a los programadores crear grandes campos de juego y otros objetos gráficos sin consumir la memoria visible para la CPU.

Microcontroladores

Los microcontroladores (microprocesadores con importante hardware de entrada/salida integrado en el chip) pueden usar conmutación de banco, por ejemplo, para acceder a múltiples registros de configuración o memoria de lectura/escritura en el chip. Un ejemplo es el microcontrolador PIC . Esto permite que las palabras de instrucción cortas ahorren espacio durante la ejecución rutinaria del programa, a costa de instrucciones adicionales necesarias para acceder a registros utilizados con relativa poca frecuencia, como los utilizados para la configuración del sistema al inicio.

El ordenador IBM

Memoria ampliada en el IBM PC

En 1985, las empresas Lotus e Intel introdujeron la Especificación de memoria expandida (EMS) 3.0 para su uso en computadoras compatibles con IBM PC que ejecutaban MS-DOS . Microsoft se unió a las versiones 3.2 en 1986 y 4.0 en 1987 y la especificación pasó a ser conocida como Lotus-Intel-Microsoft EMS o LIM EMS. [6] [11] [12] Es una forma de técnica de conmutación de banco que permite más de los 640 KB de RAM definidos por la arquitectura original de IBM PC, dejándolo aparecer por partes en una "ventana" de 64 KB ubicada en la parte superior . Área de Memoria . [13] Los 64 KB se dividen en cuatro "páginas" de 16 KB, cada una de las cuales se puede cambiar de forma independiente. Algunos juegos de computadora hicieron uso de esto, y aunque EMS está obsoleto, hoy en día la característica es emulada por sistemas operativos posteriores de Microsoft Windows para brindar compatibilidad con versiones anteriores de esos programas.

La posterior Especificación de memoria extendida (XMS), también ahora obsoleta, es un estándar para, en principio, simular el cambio de banco para memoria superior a 1 MB (llamada " memoria extendida "), que no se puede direccionar directamente en el modo real de los procesadores x86 en que ejecuta MS-DOS. XMS permite copiar la memoria extendida en cualquier lugar de la memoria convencional, por lo que los límites de los "bancos" no son fijos, pero en todos los demás aspectos funciona como el cambio de banco de EMS , desde la perspectiva de un programa que lo utiliza. Las versiones posteriores de MS-DOS (a partir de la versión 5.0) incluían el controlador EMM386, que simula la memoria EMS usando XMS, permitiendo que los programas usen memoria extendida incluso si fueron escritos para EMS. Microsoft Windows también emula XMS, para aquellos programas que lo requieran.

Juegos de consolas

El cambio de banco también se utilizó en algunas consolas de videojuegos . [14] El Atari 2600 , por ejemplo, sólo podía manejar 4 KB de ROM, por lo que los cartuchos de juego 2600 posteriores contenían su propio hardware de conmutación de banco para permitir el uso de más ROM y así permitir juegos más sofisticados (a través de más código de programa). e, igualmente importante, mayores cantidades de datos del juego, como gráficos y diferentes etapas del juego). [15] El Nintendo Entertainment System contenía un 6502 modificado , pero sus cartuchos a veces contenían un megabit o más de ROM, direccionado mediante conmutación de banco llamado controlador de memoria múltiple . Los cartuchos de Game Boy usaban un chip llamado MBC (Memory Bank Controller), que no solo ofrecía conmutación de banco ROM, sino también conmutación de banco SRAM de cartucho , e incluso acceso a periféricos como enlaces infrarrojos o motores resonantes. El cambio de banco todavía se utilizaba en sistemas de juego posteriores. Varios cartuchos de Sega Mega Drive , como Super Street Fighter II, tenían un tamaño superior a 4 MB y requerían el uso de esta técnica (siendo 4 MB el tamaño máximo de dirección). La computadora de mano GP2X de Gamepark Holdings utiliza conmutación de banco para controlar la dirección de inicio (o compensación de memoria) para el segundo procesador.

Procesamiento de vídeo

En algunos tipos de pantallas de vídeo de computadora, se puede utilizar la técnica relacionada de doble almacenamiento en búfer para mejorar el rendimiento del vídeo. En este caso, mientras el procesador actualiza el contenido de un conjunto de ubicaciones de memoria física, el hardware de generación de vídeo accede y muestra el contenido de un segundo conjunto. Cuando el procesador ha completado su actualización, puede indicarle al hardware de visualización de video que intercambie los bancos activos, de modo que la transición visible en la pantalla esté libre de artefactos o distorsiones. En este caso, el procesador puede tener acceso a toda la memoria a la vez, pero el hardware de visualización de video cambia de banco entre partes de la memoria de video. Si los dos (o más) bancos de memoria de video contienen imágenes ligeramente diferentes, el cambio rápido de página entre ellos puede crear animaciones u otros efectos visuales que, de otro modo, el procesador sería demasiado lento para realizar directamente.

Técnicas alternativas y sucesoras.

Posteriormente, en muchos sistemas de 16 bits , la conmutación de bancos fue reemplazada por la segmentación , que a su vez dio paso a las unidades de gestión de memoria de paginación . Sin embargo, en los sistemas integrados, la conmutación de bancos todavía se utiliza a menudo por su simplicidad, bajo costo y, a menudo, mejor adaptación a esos contextos que la informática de propósito general.

Ver también

Referencias

  1. ^ Aspinall, D., ed. (1978). El Microprocesador y su aplicación: un curso avanzado . Archivo COPA. págs. 47–50. ISBN 0-521-22241-9.
  2. ^ Campana, C. Gordon; Newell, Allen (1971). Estructuras informáticas: lecturas y ejemplos . McGraw-Hill . págs.156.
  3. ^ "Control de almacenamiento". Manual de programación de computadora de datos de control 160-A (PDF) . CENTROS PARA EL CONTROL Y LA PREVENCIÓN DE ENFERMEDADES. Marzo de 1963. p. 2-09. 145e.
  4. ^ Manual de referencia del sistema informático Control Data 3600 (PDF) . CENTROS PARA EL CONTROL Y LA PREVENCIÓN DE ENFERMEDADES. 60021300E.
  5. ^ Salud, Steve (2003). Diseño de sistemas empotrados . Newnes. págs.242. ISBN 0-7506-5546-1.
  6. ^ ab Mueller, Scott (1992). Actualización y reparación de PC (2 ed.). Que libros. págs. 699–700. ISBN 0-88022-856-3. Consultado el 8 de febrero de 2020 .
  7. ^ Garland, Harry (marzo de 1977). "Innovaciones de diseño en computadoras personales". Computadora . Sociedad de Computación IEEE . 10 (3): 25. doi :10.1109/cm.1977.217669. S2CID  32243439 . Consultado el 8 de febrero de 2020 . Se utiliza un interruptor DIP de ocho posiciones en dichas tarjetas para seleccionar uno (o más) de los ocho bancos de memoria.
  8. ^ Guirnalda, Harry (1979). Introducción al diseño de sistemas microprocesadores . Compañía de libros McGraw-Hill . pag. 93.ISBN _ 0-07-022871-X. Consultado el 8 de febrero de 2020 . Con la selección del banco de memoria, el espacio de la memoria se organiza en varios bancos separados de hasta 64 K cada uno.
  9. ^ Hogan, Thom (8 de junio de 1981). "Compartir y compartir por igual: explicación del hardware multiusuario". InfoMundo . vol. 3, núm. 11. pág. 18 . Consultado el 8 de febrero de 2020 . Cromemco fue el primer fabricante de microcomputadoras en perfeccionar y explotar la conmutación bancaria.
  10. ^ Freiberger, Paul (25 de octubre de 1982). "Digital Research ofrece actualización CP/M". InfoMundo . pag. 1.
  11. ^ "El nuevo 1-2-3 obtiene 4 megabytes de memoria, Lotus e Intel rompen la barrera de la memoria DOS de la PC". InfoMundo . 29 de abril de 1985.
  12. ^ "La actualización de EMS ofrece una multitarea mejorada para DOS". InfoMundo . 1987-08-17.
  13. ^ Ross, Paul W., ed. (1995). El manual de software para ingenieros y científicos . Prensa CRC . pag. 26.ISBN _ 0-8493-2530-7.
  14. ^ Sinofsky, Brian (2002). Carey, Charles W. (ed.). Inventores, emprendedores y visionarios empresariales estadounidenses. Publicación de bases de datos . págs. 322–324. ISBN 0-8160-4559-3. Consultado el 8 de febrero de 2020 .
  15. ^ Genial, Joe; Russell, Ryan; Mitnick, Kevin D. (2004). Hackeo de hardware: diviértete mientras anulas tu garantía. Singreso. págs.229. ISBN 1-932266-83-6. Consultado el 8 de febrero de 2020 .

enlaces externos