Blitter

Last updated

A blitter is a circuit, sometimes as a coprocessor or a logic block on a microprocessor, dedicated to the rapid movement and modification of data within a computer's memory. A blitter can copy large quantities of data from one memory area to another relatively quickly, and in parallel with the CPU, while freeing up the CPU's more complex capabilities for other operations. A typical use for a blitter is the movement of a bitmap, such as windows and icons in a graphical user interface or images and backgrounds in a 2D video game. The name comes from the bit blit operation of the 1973 Xerox Alto, [1] which stands for bit-block transfer. [2] A blit operation is more than a memory copy, because it can involve data that's not byte aligned (hence the bit in bit blit), handling transparent pixels (pixels which should not overwrite the destination), and various ways of combining the source and destination data.

Contents

Blitters have largely been superseded by programmable graphics processing units.

History

In computers without hardware accelerated raster graphics, which includes most 1970s and 1980s home computers and IBM PC compatibles through the mid-1990s, the frame buffer is commonly stored in CPU-accessible memory. Drawing is accomplished by updating the frame buffer via software. For basic graphics routines, like compositing a smaller image into a larger one (such as for a video game) or drawing a filled rectangle, large amounts of memory need to be manipulated, and many cycles are spent fetching and decoding short loops of load/store instructions. For CPUs without caches, the bus requirement for instructions is as significant as data. To reduce the size of the frame buffer, a single byte may not necessarily correspond to a pixel, but contain 8 single-bit pixels, 4 two-bit pixels, or a pair of 4-bit pixels. Manipulating packed pixels requires extra shifting and masking operations on the CPU.

Blitters were developed to offload repetitive tasks of copying data or filling blocks of memory faster than possible by the CPU. This can be done in parallel with the CPU and also handle special cases which would be significantly slower if coded by hand, such as skipping over pixels marked as transparent or handling data that isn't byte-aligned.

Blitters in computers and video games

1973: The Xerox Alto, where the term bit blit originated, has a bit block transfer instruction implemented in microcode, making it much faster than the same operation written on the CPU. [1] The microcode was implemented by Dan Ingalls. [1]

1982: In addition to drawing shape primitives, the NEC µPD7220 video display processor can transfer rectangular bitmaps to display memory via direct memory access and fill rectangular portions of the screen. [3] [4]

1982: The Robotron: 2084 arcade video game from Williams Electronics includes two blitter chips which allow the game to have up to 80 simultaneously moving objects. [5] Performance was measured at roughly 910 KB/second. [5] The blitter operates on 4-bit (16 color) pixels where color 0 is transparent, allowing for non-rectangular shapes. [6] Williams used the same hardware in other games from the time period, including Sinistar and Joust . [6]

1984: The MS-DOS compatible Mindset personal computer contains a custom VLSI chip to move rectangular sections of a bitmap. The hardware handles transparency and eight modes for combining the source and destination data. [7] The Mindset was claimed to have graphics up to 50x faster than IBM PC compatibles of the time, [8] but the system was not successful.

1985: One of the coprocessors in the Amiga personal computer is a blitter. The first US patent filing to use the term blitter was "Personal computer apparatus for block transfer of bit-mapped image data," assigned to Commodore-Amiga, Inc. [9] The blitter performs an arbitrary boolean operation on three bit vectors of size 16:

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

1986: The TMS34010 is a general purpose 32-bit processor with built-in instructions, including PIXBLT (Pixel Block Transfer), for manipulating bitmap data. It is optimized for cases that would take extra processing if implemented in software, such as handling transparent pixels, working with non-byte aligned data, and converting between bit depths. PIXBLT provides 22 ways of combining the source and destination data. [10] The TMS34010 serves as both CPU and GPU for a number of arcade games starting in 1988 with Narc and including Hard Drivin' , Smash TV , Mortal Kombat , and NBA Jam , [11] It was also used in graphics accelerator boards in the 1990s.

1986: The Intel 82786 is a programmable graphics processor with a BIT_BLT instruction to move rectangular sections of bitmaps. [12]

1987: The IBM 8514/A display adapter, introduced with the IBM Personal System/2 computers in April 1987, includes bit block transfer hardware. [13]

Atari ST BLiTTER chip Atari Blitter.jpg
Atari ST BLiTTER chip

1987: The Atari Mega ST 2 ships with a blitter chip. [14] Officially called the "Atari ST Bit-Block Transfer Processor", stylized as BLiTTER, it provides 16 options for merging source and destination data. [15] The blitter is supported on most subsequent ST machines.

1989: The short-lived Atari Transputer Workstation contains blitter hardware as part of its (Mega ST-based) "Blossom" video system. [16]

1989: The Atari Lynx color handheld game system has a custom blitter with scaling and distortion effects.

1993: The Atari Jaguar game console has blitter hardware as part of the custom "Tom" chip. [17]

1996: The VESA Group introduced a standardized way to access features like hardware Bit Block transfers with VBE/accelerator functions (VBE/AF) on IBM PC compatibles.

Operation

Sprites (left) and associated masks Blit dot.gif
Sprites (left) and associated masks

Typically, a computer program puts information into certain hardware registers describing what memory transfer needs to be completed and the logical operations to perform on the data. The CPU then triggers the blitter to begin operating. The CPU is free for other processing while the blitter is working, though the blit running in parallel uses memory bandwidth.

To copy data with fully transparent pixels—such as sprites—some hardware allows a specific pixel value to be ignored, such as color 0, during the blit. Those pixels are not written to the destination.

Another approach on some systems is to have a second 1 bit per pixel image used as a mask to indicate which pixels to transfer and which to leave untouched. The mask operates like a stencil. The logical operation is:

destination := (background AND NOT mask) OR sprite

Other approaches

Hardware sprites are small bitmaps which can be positioned independently and are composited together with the background on-the-fly by the video chip. The frame buffer is not modified. [18] The downside of sprites is a limit of moving graphics per scanline, which can range from three (Atari 2600) to eight (Commodore 64 and Atari 8-bit family) to significantly higher for 16-bit consoles and arcade hardware (the Neo Geo can display 96 sprites per line), and the inability to update a permanent bitmap (making them unsuitable for general desktop GUI acceleration).

See also

Related Research Articles

<span class="mw-page-title-main">Original Chip Set</span> Chipset used in Amiga personal computer

The Original Chip Set (OCS) is a chipset used in the earliest Commodore Amiga computers and defined the Amiga's graphics and sound capabilities. It was succeeded by the slightly improved Enhanced Chip Set (ECS) and the greatly improved Advanced Graphics Architecture (AGA).

Direct memory access (DMA) is a feature of computer systems that allows certain hardware subsystems to access main system memory independently of the central processing unit (CPU).

<span class="mw-page-title-main">IBM 8514</span> IBM graphics card and computer display standard

IBM 8514 is a graphics card manufactured by IBM and introduced with the IBM PS/2 line of personal computers in 1987. It supports a display resolution of 1024 × 768 pixels with 256 colors at 43.5 Hz (interlaced), or 640 × 480 at 60 Hz (non-interlaced). 8514 usually refers to the display controller hardware. However, IBM sold the companion CRT monitor which carries the same designation, 8514.

<span class="mw-page-title-main">Atari 8-bit family</span> Home computer series introduced in 1979

The Atari 8-bit family is a series of 8-bit home computers introduced by Atari, Inc. in 1979 with the Atari 400 and Atari 800. As the first home computer architecture with coprocessors, it has graphics and sound more advanced than most of its contemporaries. Video games were a major appeal, and first-person space combat simulator Star Raiders is considered the platform's killer app. The "Atari 8-bit family" label was not contemporaneous. Atari, Inc., used the term "Atari 800 [or 400] home computer system", often combining the model names into "Atari 400/800" or "Atari home computers".

In computer graphics, planar is the method of arranging pixel data into several bitplanes of RAM. Each bit in a bitplane is related to one pixel on the screen. Unlike packed, high color, or true color graphics, the whole dataset for an individual pixel is not in one specific location in RAM, but spread across the bitplanes that make up the display. Planar arrangement determines how pixel data is laid out in memory, not how the data for a pixel is interpreted; pixel data in a planar arrangement could encode either indexed or direct color.

Bit blit is a data operation commonly used in computer graphics in which several bitmaps are combined into one using a boolean function.

<span class="mw-page-title-main">TI-99/4A</span> Home computer by Texas Instruments

The TI-99/4 and TI-99/4A are home computers released by Texas Instruments in 1979 and 1981, respectively. The TI-99 series competed against major home computers such as the Apple II, TRS-80, and the later Atari 400/800 series and VIC-20.

<span class="mw-page-title-main">Graphics processing unit</span> Specialized electronic circuit; graphics accelerator

A graphics processing unit (GPU) is a specialized electronic circuit initially designed to accelerate computer graphics and image processing. After their initial design, GPUs were found to be useful for non-graphic calculations involving embarrassingly parallel problems due to their parallel structure. Other non-graphical uses include the training of neural networks and cryptocurrency mining.

<span class="mw-page-title-main">MOS Technology VIC-II</span> Video microchip in the Commodore 64 and C128 home computers

The VIC-II, specifically known as the MOS Technology 6567/6566/8562/8564, 6569/8565/8566 (PAL), is the microchip tasked with generating Y/C video signals and DRAM refresh signals in the Commodore 64 and Commodore 128 home computers.

<span class="mw-page-title-main">X68000</span> 1987 home computer

The X68000 is a home computer created by Sharp Corporation. It was first released in 1987 and sold only in Japan.

<span class="mw-page-title-main">Television Interface Adaptor</span> Video/audio/input chip of the Atari 2600

The Television Interface Adaptor (TIA) is the custom computer chip, along with a variant of the MOS Technology 6502 constituting the heart of the 1977 Atari Video Computer System game console. The TIA generates the screen display, sound effects, and reads the controllers. At the time the Atari VCS was designed, even small amounts of RAM were expensive. The chip was designed around not having a frame buffer, instead requiring detailed programming to create even a simple display.

<span class="mw-page-title-main">TMS9918</span> Video display controller

The TMS9918 is a video display controller (VDC) manufactured by Texas Instruments, in manuals referenced as "Video Display Processor" (VDP) and introduced in 1979. The TMS9918 and its variants were used in the ColecoVision, CreatiVision, Memotech MTX, MSX, NABU Personal Computer, SG-1000/SC-3000, Spectravideo SV-318, SV-328, Sord M5, Tatung Einstein, TI-99/4, Casio PV-2000, Coleco Adam, Hanimex Pencil II, and Tomy Tutor.

<span class="mw-page-title-main">Sprite (computer graphics)</span> 2D bitmap displayed on top of a larger scene

In computer graphics, a sprite is a two-dimensional bitmap that is integrated into a larger scene, most often in a 2D video game. Originally, the term sprite referred to fixed-sized objects composited together, by hardware, with a background. Use of the term has since become more general.

<span class="mw-page-title-main">CTIA and GTIA</span>

Color Television Interface Adaptor (CTIA) and its successor Graphic Television Interface Adaptor (GTIA) are custom chips used in the Atari 8-bit family of computers and in the Atari 5200 home video game console. In these systems, a CTIA or GTIA chip works together with ANTIC to produce the video display. ANTIC generates the playfield graphics while CTIA/GTIA provides the color for the playfield and adds overlay objects known as player/missile graphics (sprites). Under the direction of Jay Miner, the CTIA/GTIA chips were designed by George McLeod with technical assistance of Steve Smith.

A display list is a series of graphics commands that define an output image. The image is created (rendered) by executing the commands to combine various primitives. This activity is most often performed by specialized display or processing hardware partly or completely independent of the system's CPU for the purpose of freeing the CPU from the overhead of maintaining the display, and may provide output features or speed beyond the CPU's capability.

<span class="mw-page-title-main">Video display controller</span> Type of integrated circuit

A video display controller or VDC is an integrated circuit which is the main component in a video-signal generator, a device responsible for the production of a TV video signal in a computing or game system. Some VDCs also generate an audio signal, but that is not their main function.

<span class="mw-page-title-main">TMS34010</span> Microprocessor with dedicated graphics instructions

The TMS34010, developed by Texas Instruments and released in 1986, was the first programmable graphics processor integrated circuit. While specialized graphics hardware existed earlier, such as blitters, the TMS34010 chip is a microprocessor which includes graphics-oriented instructions, making it a combination of a CPU and what would later be called a GPU. It found use in arcade video games from the late 1980s through the mid 1990s, including Mortal Kombat and NBA Jam, and computer workstation video accelerator boards. TI later released the TMS34020 with an emphasis on 3D rendering.

The AAA chipset was intended to be the next-generation Amiga multimedia system designed by Commodore International. Initially begun as a secret project, the first design discussions were started in 1988, and after many revisions and redesigns the first silicon versions were fabricated in 1992–1993. The project was stymied in 1993 based on a lack of funds for chip revisions.

<span class="mw-page-title-main">Atari Sierra</span>

Sierra was the code name for a 16-bit/32-bit personal computer designed by the Sunnyvale Research Lab (SRL) of Atari, Inc. starting around 1983. The design was one of several new 16-bit computer systems proposing to use a new chipset from Atari Corporate Research.

References

  1. 1 2 3 Shirriff, Ken. "Restoring YCombinator's Xerox Alto day 5: Microcode tracing with a logic analyzer". Ken Shirriff's Blog.
  2. "BitBlt function". Windows Dev Network. Microsoft. Retrieved 2 October 2016.
  3. Peddie, Jon. "Famous Graphics Chips: NEC µPD7220 Graphics Display Controller". computer.org.
  4. "User's Manual: NEC µPD7220/7220A" (PDF). NEC Electronics. December 1985. Archived from the original (PDF) on 2012-06-16.
  5. 1 2 Wolf, Mark J.P. (June 2012). Before the Crash: Early Video Game History. Wayne State University Press. p. 185. ISBN   9780814334508.
  6. 1 2 Riddle, Sean. "Blitter Information".
  7. Williams, Gregg (April 1984). "Product Preview: The Mindset Personal Computer". Byte Magazine. 9 (4): 278–280.
  8. Anderson, John J. (February 1985). "Mindset Micro: Pushing the envelope, or whatever happened to innovation?". Creative Computing. 11 (2): 50.
  9. "US Patent 4874164 "Personal computer apparatus for block transfer of bit-mapped image data"".[ permanent dead link ]
  10. Killebrew Jr., Carrell R. (December 1986). "The TMS34010 Graphics System Processor". Byte. Vol. 11, no. 13. p. 204.
  11. "Game listing for games running on the TMS34010 processor". mamedb.com. Archived from the original on 2016-03-04. Retrieved 2016-05-15.
  12. 82786 Graphics Coprocessor User's Manual. Intel. 1988. p. 2-29.
  13. Necasek, Michael. "The 8514/A Graphics Accelerator". OS/2 Museum.
  14. "Atari Mega ST 2". Centre for Computing History.
  15. "User Manual for the Atari ST Bit Block Transfer Processor". archive.org. Atari Corporation. June 17, 1987.
  16. Rosenthal, Marshal M. (November 1989). "The Transputer Connection: An Exclusive Interview with Perihelion's Dr. Tim King". STart. 4 (4).
  17. "Technical Reference Manual Tom & Jerry" (PDF). February 2001. pp. 4–5.
  18. Hague, James. "Why Do Dedicated Game Consoles Exist?". Programming in the 21st Century. Archived from the original on 2018-04-23. Retrieved 2019-09-03.