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 or I ...
or a logic block 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 circ ...
, 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 remember ...
. A blitter can copy large quantities of data from one memory area to another relatively quickly, and in parallel with the
CPU A central processing unit (CPU), also called a central processor, main processor or just processor, is the electronic circuitry that executes instructions comprising a computer program. The CPU performs basic arithmetic, logic, controlling, a ...
, 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 or bitmap index. As a noun, the term "bitmap" is very often used to refer to a particular bitmapping application: t ...
, 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, ins ...
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, m ...
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 la ...
, 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 tha ...
. 1982: In addition to drawing shape primitives, the NEC µPD7220 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 ...
and fill rectangular portions of the screen. 1982: The ''
Robotron: 2084 ''Robotron: 2084'' (also referred to as ''Robotron'') is a multidirectional shooter developed by Eugene Jarvis and Larry DeMar of Vid Kidz and released in arcades by Williams Electronics in 1982. The game is set in the year 2084 in a fictional wo ...
'' arcade video game from Williams Electronics 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 opponen ...
''. 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 o ...
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 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 International, 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 sign ...
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 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''', ''
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 ...
'', and ''
NBA Jam ''NBA Jam'' (sometimes "Jam" for short) is a long-running basketball video game series based on the National Basketball Association (NBA). Initially developed as arcade games by Midway, the game found popularity with its photorealistic digiti ...
'', 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 The Atari Transputer Workstation (also known as ATW-800, or simply ATW) is a workstation class computer released by Atari Corporation in the late 1980s, based on the INMOS transputer. It was introduced in 1987 as the Abaq, but the name was changed ...
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 pra ...
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 microprocesso ...
) 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 W ...
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 ...
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 ...
(DMA)


References

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