stringtranslate.com

Blitter

Un blitter es un circuito, a veces como coprocesador o bloque lógico en un microprocesador , dedicado al rápido movimiento y modificación de datos dentro de la memoria de una computadora . Un blitter puede copiar grandes cantidades de datos de un área de memoria a otra con relativa rapidez y en paralelo con la CPU , al tiempo que libera capacidades más complejas de la CPU para otras operaciones. Un uso típico de un blitter es el movimiento de un mapa de bits , como ventanas e íconos en una interfaz gráfica de usuario o imágenes y fondos en un videojuego 2D. El nombre proviene de la operación bit blit de la Xerox Alto de 1973 , [1] que significa transferencia de bloques de bits. [2] Una operación blit es más que una copia de memoria, porque puede involucrar datos que no están alineados en bytes (de ahí el bit en bit blit ), manejo de píxeles transparentes (píxeles que no deben sobrescribir el destino) y varias formas de combinar el datos de origen y destino.

Los blitters han sido reemplazados en gran medida por unidades de procesamiento de gráficos programables .

Historia

En las computadoras sin gráficos rasterizados acelerados por hardware , que incluyen la mayoría de las computadoras domésticas de las décadas de 1970 y 1980 y las PC compatibles con IBM hasta mediados de la década de 1990, el búfer de cuadros se almacena comúnmente en una memoria accesible a la CPU. El dibujo se logra actualizando el frame buffer mediante software. Para rutinas gráficas básicas, como componer una imagen más pequeña en una más grande (como para un videojuego) o dibujar un rectángulo relleno, es necesario manipular grandes cantidades de memoria y se dedican muchos ciclos a buscar y decodificar bucles cortos de carga/ instrucciones de la tienda. Para las CPU sin caché, el requisito del bus para las instrucciones es tan importante como los datos. Para reducir el tamaño del búfer de fotogramas, es posible que un solo byte no corresponda necesariamente a un píxel, sino que contenga 8 píxeles de un solo bit, 4 píxeles de dos bits o un par de píxeles de 4 bits. La manipulación de píxeles empaquetados requiere operaciones adicionales de desplazamiento y enmascaramiento en la CPU.

Los Blitters se desarrollaron para descargar tareas repetitivas de copiar datos o llenar bloques de memoria más rápido de lo posible por la CPU. Esto se puede hacer en paralelo con la CPU y también manejar casos especiales que serían significativamente más lentos si se codificaran a mano, como omitir píxeles marcados como transparentes o manejar datos que no están alineados en bytes.

Blitters en ordenadores y videojuegos.

1973: Xerox Alto , donde se originó el término bit blit , tiene una instrucción de transferencia de bloques de bits implementada en microcódigo , lo que la hace mucho más rápida que la misma operación escrita en la CPU. [1] El microcódigo fue implementado por Dan Ingalls . [1]

1982: Además de dibujar primitivas de formas, el procesador de visualización de vídeo NEC µPD7220 puede transferir mapas de bits rectangulares a la memoria de visualización mediante acceso directo a la memoria y llenar porciones rectangulares de la pantalla. [3] [4]

1982: El videojuego arcade Robotron: 2084 de Williams Electronics incluye dos chips blitter que permiten que el juego tenga hasta 80 objetos en movimiento simultáneamente. [5] El rendimiento se midió a aproximadamente 910 KB/segundo. [5] El blitter funciona con píxeles de 4 bits (16 colores) donde el color 0 es transparente, lo que permite formas no rectangulares. [6] Williams usó el mismo hardware en otros juegos de la época, incluidos Sinistar y Joust . [6]

1984: La computadora personal Mindset compatible con MS-DOS contiene un chip VLSI personalizado para mover secciones rectangulares de un mapa de bits. El hardware maneja la transparencia y ocho modos para combinar los datos de origen y destino. [7] Se afirmó que Mindset tenía gráficos hasta 50 veces más rápidos que los PC compatibles con IBM de la época, [8] pero el sistema no tuvo éxito.

1985: Uno de los coprocesadores de la computadora personal Amiga es un blitter. La primera solicitud de patente estadounidense que utilizó el término blitter fue "Aparato de computadora personal para la transferencia en bloque de datos de imágenes en mapas de bits", asignada a Commodore-Amiga, Inc. [9] El blitter realiza una operación booleana arbitraria en tres vectores de bits de tamaño dieciséis:

destination := op(source A, source B, source C)

1986: El TMS34010 es un procesador de 32 bits de uso general con instrucciones integradas, incluida PIXBLT(Pixel Block Transfer), para manipular datos de mapas de bits. Está optimizado para casos que requerirían procesamiento adicional si se implementaran en software, como el manejo de píxeles transparentes, el trabajo con datos alineados sin bytes y la conversión entre profundidades de bits. PIXBLTproporciona 22 formas de combinar los datos de origen y destino. [10] El TMS34010 sirve como CPU y GPU para varios juegos de arcade que comenzaron en 1988 con Narc e incluyen Hard Drivin' , Smash TV , Mortal Kombat y NBA Jam . [11] También se usó en placas aceleradoras de gráficos en la década de 1990.

1986: El Intel 82786 es un procesador de gráficos programable con BIT_BLTinstrucciones para mover secciones rectangulares de mapas de bits. [12]

1987: El adaptador de pantalla IBM 8514/A , presentado con las computadoras IBM Personal System/2 en abril de 1987, incluye hardware de transferencia de bloques de bits. [13]

Chip Atari ST BLiTTER

1987: El Atari Mega ST 2 se envía con un chip blitter. [14] Oficialmente llamado "Procesador de transferencia de bloques de bits Atari ST", estilizado como BLiTTER, proporciona 16 opciones para fusionar datos de origen y destino. [15] El blitter es compatible con la mayoría de las máquinas ST posteriores.

1989: La estación de trabajo Atari Transputer de corta duración contiene hardware blitter como parte de su sistema de vídeo "Blossom" (basado en Mega ST). [dieciséis]

1989: El sistema de juegos portátil en color Atari Lynx tiene un blitter personalizado con efectos de escala y distorsión.

1993: La consola de juegos Atari Jaguar tiene hardware blitter como parte del chip personalizado "Tom". [17]

1996: El Grupo VESA introdujo una forma estandarizada de acceder a funciones como transferencias de bloques de bits de hardware con funciones VBE/acelerador (VBE/AF) en PC compatibles con IBM.

Operación

Sprites (izquierda) y máscaras asociadas

Por lo general, un programa de computadora coloca información en ciertos registros de hardware que describen qué transferencia de memoria debe completarse y las operaciones lógicas que se deben realizar con los datos. Luego, la CPU activa el blitter para que comience a funcionar. La CPU está libre para otros procesamientos mientras el blitter está funcionando, aunque el blit que se ejecuta en paralelo utiliza ancho de banda de memoria.

Para copiar datos con píxeles totalmente transparentes, como sprites, algunos hardware permiten ignorar un valor de píxel específico, como el color 0, durante el blit. Esos píxeles no se escriben en el destino.

Otro enfoque en algunos sistemas es utilizar una segunda imagen de 1 bit por píxel como máscara para indicar qué píxeles transferir y cuáles dejar intactos. La máscara funciona como una plantilla . La operación lógica es:

destination := (background AND NOT mask) OR sprite

Otros enfoques

Los sprites de hardware son pequeños mapas de bits que se pueden colocar de forma independiente y que el chip de vídeo los compone junto con el fondo sobre la marcha. El frame buffer no se modifica. [18] La desventaja de los sprites es un límite de gráficos en movimiento por línea de escaneo, que puede variar de tres ( Atari 2600 ) a ocho ( Commodore 64 y la familia Atari de 8 bits ) y significativamente más alto para consolas de 16 bits y hardware arcade (el Neo Geo puede mostrar 96 sprites por línea) y la incapacidad de actualizar un mapa de bits permanente (lo que los hace inadecuados para la aceleración general de GUI de escritorio).

Ver también

Referencias

  1. ^ abc Comisario, Ken. "Restauración de Xerox Alto de YCombinator día 5: seguimiento de microcódigo con un analizador lógico". Blog de Ken Shirriff .
  2. ^ "Función BitBlt". Red de desarrollo de Windows . Microsoft . Consultado el 2 de octubre de 2016 .
  3. ^ Pedidie, Jon. "Chips gráficos famosos: controlador de pantalla gráfica NEC µPD7220". computadora.org .
  4. ^ "Manual de usuario: NEC µPD7220/7220A" (PDF) . Electrónica NEC. Diciembre de 1985. Archivado desde el original (PDF) el 16 de junio de 2012.
  5. ^ ab Wolf, Mark JP (junio de 2012). Antes del colapso: historia temprana de los videojuegos. Prensa de la Universidad Estatal de Wayne. pag. 185.ISBN _ 9780814334508.
  6. ^ ab Acertijo, Sean. "Información amarga".
  7. ^ Williams, Gregg (abril de 1984). "Vista previa del producto: la computadora personal Mindset". Revista Byte . 9 (4): 278–280.
  8. ^ Anderson, John J. (febrero de 1985). "Mindset Micro: ¿Ir más allá o qué pasó con la innovación?". Computación creativa . 11 (2): 50.
  9. ^ "Patente de EE. UU. 4874164" Aparato de computadora personal para transferencia en bloques de datos de imágenes en mapas de bits"".[ enlace muerto permanente ]
  10. ^ Killebrew Jr., Carrell R. (diciembre de 1986). "El procesador del sistema de gráficos TMS34010". Byte . vol. 11, núm. 13. pág. 204.
  11. ^ "Listado de juegos que se ejecutan en el procesador TMS34010". mamedb.com . Archivado desde el original el 4 de marzo de 2016 . Consultado el 15 de mayo de 2016 .
  12. ^ Manual del usuario del coprocesador de gráficos 82786. Intel. 1988. pág. 2-29.
  13. ^ Necasek, Michael. "El acelerador de gráficos 8514/A". Museo OS/2 .
  14. ^ "Atari Mega ST 2". Centro de Historia de la Computación .
  15. ^ "Manual de usuario del procesador de transferencia de bloques de bits Atari ST". archivo.org . Corporación Atari. 17 de junio de 1987.
  16. ^ Rosenthal, Marshal M. (noviembre de 1989). "The Transputer Connection: una entrevista exclusiva con el Dr. Tim King de Perihelion". Comenzar . 4 (4).
  17. ^ "Manual de referencia técnica Tom & Jerry" (PDF) . Febrero de 2001. págs. 4–5.
  18. ^ La Haya, James. "¿Por qué existen las consolas de juegos dedicadas?". Programación en el siglo XXI . Archivado desde el original el 23 de abril de 2018 . Consultado el 3 de septiembre de 2019 .