Blitter
   HOME

TheInfoList



OR:

A blitter is a circuit, sometimes as a
coprocessor A coprocessor is a computer processor used to supplement the functions of the primary processor (the CPU). Operations performed by the coprocessor may be floating-point arithmetic, graphics, signal processing, string processing, cryptography o ...
or a
logic block In computing, a logic block or configurable logic block (CLB) is a fundamental building block of field-programmable gate array (FPGA) technology. Logic blocks can be configured by the engineer to provide reconfigurable logic gates. Logic blocks ...
on a
microprocessor A microprocessor is a computer processor where the data processing logic and control is included on a single integrated circuit, or a small number of integrated circuits. The microprocessor contains the arithmetic, logic, and control circu ...
, dedicated to the rapid movement and modification of data within a computer's
memory Memory is the faculty of the mind by which data or information is encoded, stored, and retrieved when needed. It is the retention of information over time for the purpose of influencing future action. If past events could not be remembered, ...
. 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 In computing, a bitmap is a mapping from some domain (for example, a range of integers) to bits. It is also called a bit array A bit array (also known as bitmask, bit map, bit set, bit string, or bit vector) is an array data structure that c ...
, such as windows and fonts in a
graphical user interface The GUI ( "UI" by itself is still usually pronounced . or ), graphical user interface, is a form of user interface that allows users to interact with electronic devices through graphical icons and audio indicator such as primary notation, inste ...
or images and backgrounds in a 2D video game. The name comes from the
bit blit Bit blit (also written BITBLT, BIT BLT, BitBLT, Bit BLT, Bit Blt etc., which stands for ''bit block transfer'') is a data operation commonly used in computer graphics in which several bitmaps are combined into one using a '' boolean function''. Th ...
operation of the 1973
Xerox Alto The Xerox Alto is a computer designed from its inception to support an operating system based on a graphical user interface (GUI), later using the desktop metaphor. The first machines were introduced on 1 March 1973, a decade before mass-market ...
, which stands for bit-block transfer. 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. Blitters have largely been superseded by programmable
graphics processing unit A graphics processing unit (GPU) is a specialized electronic circuit designed to manipulate and alter memory to accelerate the creation of images in a frame buffer intended for output to a display device. GPUs are used in embedded systems, mobi ...
s.


History

In computers without hardware accelerated
raster graphics upright=1, The Smiley, smiley face in the top left corner is a raster image. When enlarged, individual pixels appear as squares. Enlarging further, each pixel can be analyzed, with their colors constructed through combination of the values for ...
, which includes most 1970s and 1980s home computers and
IBM PC compatible IBM PC compatible computers are similar to the original IBM PC, XT, and AT, all from computer giant IBM, that are able to use the same software and expansion cards. Such computers were referred to as PC clones, IBM clones or IBM PC clones. ...
s through the mid-1990s, the
frame buffer A framebuffer (frame buffer, or sometimes framestore) is a portion of random-access memory (RAM) containing a bitmap that drives a video display. It is a memory buffer containing data representing all the pixels in a complete video frame. Mode ...
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 The Xerox Alto is a computer designed from its inception to support an operating system based on a graphical user interface (GUI), later using the desktop metaphor. The first machines were introduced on 1 March 1973, a decade before mass-market ...
, where the term
bit blit Bit blit (also written BITBLT, BIT BLT, BitBLT, Bit BLT, Bit Blt etc., which stands for ''bit block transfer'') is a data operation commonly used in computer graphics in which several bitmaps are combined into one using a '' boolean function''. Th ...
originated, has a bit block transfer instruction implemented in
microcode In processor design, microcode (μcode) is a technique that interposes a layer of computer organization between the central processing unit (CPU) hardware and the programmer-visible instruction set architecture of a computer. Microcode is a laye ...
, making it much faster than the same operation written on the CPU. The microcode was implemented by
Dan Ingalls Daniel Henry Holmes Ingalls Jr. (born 1944) is a pioneer of object-oriented computer programming and the principal architect, designer and implementer of five generations of Smalltalk environments. He designed the bytecoded virtual machine that ...
. 1982: In addition to drawing shape primitives, the
NEC µPD7220 The High-Performance Graphics Display Controller 7220 (commonly μPD7220 or NEC 7220) is a video display processor capable of drawing lines, circles, arcs, and character graphics to a bit-mapped display. It was developed by NEC in order to supp ...
video display processor can transfer rectangular bitmaps to display memory via
direct memory access Direct memory access (DMA) is a feature of computer systems and allows certain hardware subsystems to access main system memory independently of the central processing unit (CPU). Without DMA, when the CPU is using programmed input/output, it is t ...
and fill rectangular portions of the screen. 1982: The '' Robotron: 2084'' arcade video game from
Williams Electronics WMS Industries, Inc. was an American electronic gaming and amusement manufacturer in Enterprise, Nevada. It was merged into Scientific Games in 2016. WMS's predecessor was the Williams Manufacturing Company, founded in 1943 by Harry E. Williams ...
includes two blitter chips which allow the game to have up to 80 simultaneously moving objects. Performance was measured at roughly 910 KB/second. The blitter operates on 4-bit (16 color) pixels where color 0 is transparent, allowing for non-rectangular shapes. Williams used the same hardware in other games from the time period, including ''
Sinistar ''Sinistar'' is a 1983 multidirectional shooter arcade game developed and manufactured by Williams Electronics. It was created by Sam Dicker, Jack Haeger, Noah Falstein, RJ Mical, Python Anghelo, and Richard Witt. Players control a spacecraft ...
'' and ''
Joust Jousting is a martial game or hastilude between two horse riders wielding lances with blunted tips, often as part of a tournament. The primary aim was to replicate a clash of heavy cavalry, with each participant trying to strike the opponent w ...
''. 1984: The
MS-DOS MS-DOS ( ; acronym for Microsoft Disk Operating System, also known as Microsoft DOS) is an operating system for x86-based personal computers mostly developed by Microsoft. Collectively, MS-DOS, its rebranding as IBM PC DOS, and a few ope ...
compatible
Mindset Mindset is an "established set of attitudes, esp. regarded as typical of a particular group's social or cultural values; the outlook, philosophy, or values of a person; (now also more generally) frame of mind, attitude, ecte: anddisposition." ...
personal computer contains a custom
VLSI Very large-scale integration (VLSI) is the process of creating an integrated circuit (IC) by combining millions or billions of MOS transistors onto a single chip. VLSI began in the 1970s when MOS integrated circuit (Metal Oxide Semiconductor) c ...
chip to move rectangular sections of a bitmap. The hardware handles transparency and eight modes for combining the source and destination data. The Mindset was claimed to have graphics up to 50x faster than
IBM PC compatible IBM PC compatible computers are similar to the original IBM PC, XT, and AT, all from computer giant IBM, that are able to use the same software and expansion cards. Such computers were referred to as PC clones, IBM clones or IBM PC clones. ...
s of the time, but the system was not successful. 1985: One of the coprocessors in the
Amiga Amiga is a family of personal computers introduced by Commodore in 1985. The original model is one of a number of mid-1980s computers with 16- or 32-bit processors, 256 KB or more of RAM, mouse-based GUIs, and significantly improved graphi ...
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. 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 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 ...
is a general purpose 32-bit processor with additional blitter-like instructions for manipulating bitmap data. It is optimized for cases that take extra processing on the CPU, such as handling transparent pixels, working with non-byte aligned data, and converting between bit depths. The TMS34010 served as both CPU and GPU for a number of arcade games starting in 1988 with '' Narc'' and including ''
Hard Drivin' ''Hard Drivin'' is a driving simulation video game developed by Atari Games in 1989. It invites players to test drive a sports car on courses that emphasize stunts and speed. The game features one of the first 3D polygon driving environments v ...
'', ''
Smash TV ''Smash TV'' is a 1990 arcade video game created by Eugene Jarvis and Mark Turmell for Williams Electronics Games. It is a dual-stick shooter (one for moving and the other for firing) in the same vein as 1982's ''Robotron: 2084'' (co-created b ...
'', ''
Mortal Kombat ''Mortal Kombat'' is an American media franchise centered on a series of video games originally developed by Midway Games in 1992. The development of the first game was originally based on an idea that Ed Boon and John Tobias had of making a v ...
'', and ''
NBA Jam ''NBA Jam'' (sometimes "Jam" for short) is a long-running List of basketball video games, basketball video game series based on the National Basketball Association (NBA). Initially developed as arcade games by Midway Games, Midway, the game foun ...
'', It was also used in professional-level 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. 1987: The IBM 8514/A display adapter, introduced with the
IBM Personal System/2 The Personal System/2 or PS/2 is IBM's second generation of personal computers. Released in 1987, it officially replaced the IBM PC, XT, AT, and PC Convertible in IBM's lineup. Many of the PS/2's innovations, such as the 16550 UART (serial p ...
computers in April 1987, includes bit block transfer hardware. 1987: The Atari Mega ST 2 ships with a blitter chip. Officially called the "Atari ST Bit-Block Transfer Processor", stylized as BLiTTER, it provides 16 options for merging source and destination data. 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. 1993: The last game console produced by Atari Corporation, the
Jaguar The jaguar (''Panthera onca'') is a large cat species and the only living member of the genus '' Panthera'' native to the Americas. With a body length of up to and a weight of up to , it is the largest cat species in the Americas and the th ...
, ships with blitter hardware as part of the custom "Tom" chip. 1996: The
VESA VESA (), formally known as Video Electronics Standards Association, is an American technical standards organization for computer display standards. The organization was incorporated in California in July 1989To retrieve the information, searc ...
Group introduced a common standardized way to access features like hardware Bit Block transfers (Bit Blt) with VBE/accelerator functions (VBE/AF) on PCs. Before that time, each DOS application required to ship with specific video card drivers. On Windows each video card had its own driver and a standardized API to use them.


Operation

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 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 A mask is an object normally worn on the face, typically for protection, disguise, performance, or entertainment and often they have been employed for rituals and rights. Masks have been used since antiquity for both ceremonial and practic ...
to indicate which pixels to transfer and which to leave untouched. The mask operates like a
stencil Stencilling produces an image or pattern on a surface, by applying pigment to a surface through an intermediate object, with designed holes in the intermediate object, to create a pattern or image on a surface, by allowing the pigment to reach ...
. The logical operation is: :destination := (background AND NOT mask) OR sprite


Other approaches

Hardware sprites are small bitmaps that can be positioned independently, composited together with the background on-the-fly by the video chip, so no actual modification of the frame buffer occurs. The downside of sprites is a limit of moving graphics per scanline, which can range from three (
Atari 2600 The Atari 2600, initially branded as the Atari Video Computer System (Atari VCS) from its release until November 1982, is a home video game console developed and produced by Atari, Inc. Released in September 1977, it popularized microprocessor- ...
) to eight (
Commodore 64 The Commodore 64, also known as the C64, is an 8-bit home computer introduced in January 1982 by Commodore International (first shown at the Consumer Electronics Show, January 7–10, 1982, in Las Vegas). It has been listed in the Guinness ...
and
Atari 8-bit family The Atari 8-bit family is a series of 8-bit home computers introduced by Atari, Inc. in 1979 as the Atari 400 and Atari 800. The series was successively upgraded to Atari 1200XL , Atari 600XL, Atari 800XL, Atari 65XE, Atari 130XE, Atari 800XE, ...
) to significantly higher for 16-bit consoles and arcade hardware (the
Neo Geo Neo Geo is a family of video game hardware developed by SNK. On the market from 1990 to 2004, the brand originated with the release of an arcade system, the Neo Geo MVS and its home console counterpart, the Neo Geo AES. The Neo Geo MVS was su ...
can display 96 sprites per line), and the inability to update a permanent bitmap (making them unsuitable for general desktop GUI acceleration).


See also

*
Direct Memory Access Direct memory access (DMA) is a feature of computer systems and allows certain hardware subsystems to access main system memory independently of the central processing unit (CPU). Without DMA, when the CPU is using programmed input/output, it is t ...
(DMA)


References

{{Graphics Processing Unit Coprocessors Graphics chips Graphics processing units Hardware acceleration