En blitter (förkortning av engelska: block image transferrer) är en krets eller del av en krets som är specialkonstruerad för att flytta bitmapgrafik i datorns minne (alternativt ett minne avsett för grafik). En blitter kan kopiera stora mängder data från ett minnesområde till ett annat relativt snabbt, och parallellt med CPU:n, samtidigt som den frigör CPU:ns mer komplexa kapacitet för andra operationer. En typisk användning för en blitter är förflyttningen av en bitmap, som fönster och ikoner i ett grafiskt användargränssnitt eller bilder och bakgrunder i ett 2D-videospel. Namnet kommer från bitblit-driften av 1973 Xerox Alto,[1] som står för bit-block transfer.[2] En blitoperation är mer än en minneskopia, eftersom den kan involvera data som inte är bytejusterad (därav biten i bit blit), hantering av transparenta pixlar (pixlar som inte ska skriva över destinationen) och olika sätt att kombinera käll- och destinationsdata. Blitter har till stor del ersatts av programmerbara grafikprocessorer.
Historik
I datorer utan hårdvaruaccelererad rastergrafik, som gäller de flesta hemdatorer från 1970- och 1980-talen och IBM PC-kompatibla till mitten av 1990-talet, lagras rambufferten vanligtvis i ett CPU-tillgängligt minne. Ritning åstadkoms genom att uppdatera rambufferten via mjukvara. För grundläggande grafikrutiner, som att sammansätta en mindre bild till en större (som för ett videospel) eller rita en fylld rektangel, måste stora mängder minne manipuleras, och många cykler går åt till att hämta och avkoda korta slingor av laddnings-/förvaringsinstruktioner. För processorer utan cachar är busskravet för instruktioner lika betydande som data. För att minska storleken på rambufferten behöver en enstaka byte inte nödvändigtvis motsvara en pixel, utan innehåller 8 enbitars pixlar, 4 tvåbitars pixlar eller ett par 4-bitars pixlar. Att manipulera packade pixlar kräver extra skift- och maskeringsoperationer på CPU:n.
Blitter utvecklades för att avlasta repetitiva uppgifter att kopiera data eller fylla minnesblock snabbare än möjligt för CPU:n. Detta kan göras parallellt med CPU:n och även hantera speciella fall som skulle vara betydligt långsammare om de kodades för hand, som att hoppa över pixlar markerade som transparenta eller hantera data som inte är bytejusterad.
Blitter i datorer och TV-spel
1973: Xerox Alto, där termen bit blit har sitt ursprung, har en instruktion för överföring av bitblock implementerad i mikrokod, vilket gör den mycket snabbare än samma operation som skrivits på processorn.[1]Mikrokoden infördes av Dan Ingalls.[1]
1978: Bally Astrocade- hemkonsolen levereras med primitiv blitter-hårdvara.[3]
1982: Förutom att rita formprimitiver kan NEC μPD7220-videodisplayprocessorn överföra rektangulära bitmappar till visningsminnet via direkt minnesåtkomst och fylla rektangulära delar av skärmen.[4][5] Konstruktionen licensierades av Intel och såldes som 82720 grafikskärmskontroller.
1982: Arkadspelet Robotron: 2084 från Williams Electronics innehåller två blitter-chips som gör att spelet kan ha upp till 80 objekt som rör sig samtidigt.[6] Prestanda mättes till ungefär 910 KB/sekund.[6] Blittern fungerar på 4-bitars (16 färger) pixlar där färg 0 är transparent, vilket tillåter icke-rektangulära former.[7]Williams använde samma hårdvara i andra spel från tidsperioden, som Sinistar och Joust.[7]
1984: Den MS-DOS-kompatibla Mindset- ersondatorn innehåller ett anpassat VLSI- chip för att flytta rektangulära delar av en bitmap. Hårdvaran hanterar transparens och åtta lägen för att kombinera käll- och destinationsdata.[8] The Mindset påstods ha grafik upp till 50 gånger snabbare än dåtidens IBM PC-kompatibla,[9] men systemet blev inte framgångsrikt.
1985: En av samprocessorerna i Amigas persondator är en blitter. Den första amerikanska patentansökan som använde termen blitter var "Personal computer apparatus for block transfer of bitmapped image data," tilldelad Commodore-Amiga, Inc.[10] Blittern utför en godtycklig boolesk operation på trebitsvektorer av storlek 16: destination := op(source A, source B, source C)
1986: TMS34010 är en allmän 32-bitarsprocessor med inbyggda instruktioner, som PIXBLT
(Pixel Block Transfer), för att manipulera bitmappsdata. Den är optimerad för fall som skulle kräva extra bearbetning om den lades in i programvara, till exempel hantering av transparenta pixlar, arbete med icke-bytejusterade data och konvertering mellan bitdjup. PIXBLTger 22 sätt att kombinera käll- och destinationsdata.[11] TMS34010 fungerar som både CPU och GPU för ett antal arkadspel som började 1988 med Narc och spel som Hard Drivin', Smash TV, Mortal Kombat och NBA Jam,[12] Den användes också i grafikacceleratorkort på 1990-talet.
1987: IBM 8514/A-skärmadaptern, som introducerades med IBM Personal System/2-datorerna i april 1987, har hårdvara för bitblocksöverföring.[13]

1987: Atari Mega ST 2 levereras med ett blitter-chip.[14] Officiellt kallad "Atari ST Bit-Block Transfer Processor", stiliserad som BLiTTER, ger den 16 alternativ för att slå samman käll- och destinationsdata.[15] Blittern stöds på de flesta efterföljande ST-maskiner.
1989: Den kortlivade Atari Transputer Workstation innehåller blitter-hårdvara som en del av dess (Mega ST-baserade) "Blossom" videosystem.[16]
1989: Atari Lynx handhållna färgspelsystem har en anpassad blitter med skalnings- och distorsionseffekter.
1993: Atari Jaguar-spelkonsolen har blivit mer hårdvara som en del av det anpassade "Tom"-chippet.[17]
1996: VESA-gruppen introducerade ett standardiserat sätt att komma åt funktioner som hårdvarubitblocksöverföringar med VBE/acceleratorfunktioner (VBE/AF) på IBM PC-kompatibla.
Drift

Vanligtvis lägger ett datorprogram in information i vissa hårdvaruregister som beskriver vilken minnesöverföring som behöver slutföras och de logiska operationerna som ska utföras på datan. CPU:n utlöser sedan blittern att börja fungera. CPU:n är fri för annan bearbetning medan blittern arbetar, även om blitten som körs parallellt använder minnesbandbredd. För att kopiera data med helt genomskinliga pixlar – som sprites – tillåter viss hårdvara att ett specifikt pixelvärde ignoreras, till exempel färg 0, under blitten. Dessa pixlar skrivs inte till destinationen.
Ett annat tillvägagångssätt på vissa system är att ha en andra bild med 1 bit per pixel som används som en mask för att indikera vilka pixlar som ska överföras och vilka som ska lämnas orörda. Masken fungerar som en stencil. Den logiska operationen är: destination := (background AND NOT mask) OR sprite
Andra tillvägagångssätt
Hårdvarusprites är små bitmappar som kan placeras oberoende av varandra och är sammansatta tillsammans med bakgrunden i farten av videochippet. Rambufferten är inte modifierad. [ 18 ] Nackdelen med sprites är en gräns för rörlig grafik per skanningslinje, som kan sträcka sig från tre (Atari 2600) till åtta (Commodore 64 och Atari 8-bitars datorer) till betydligt högre för 16-bitars konsoler och arkadhårdvara (Neo Geo kan visa 96 bitars sprites per rad). Oförmågan att uppdatera en permanent bitmapp gör dem olämpliga för allmän acceleration av skrivbordsgränssnitt.
Se även
- Direct Memory Access (DMA)
Referenser
- Den här artikeln är helt eller delvis baserad på material från engelskspråkiga Wikipedia, Blitter, 10 oktober 2024.
Noter
- ^ [a b c] Shirriff, Ken. ”Restoring YCombinator's Xerox Alto day 5: Microcode tracing with a logic analyzer”. Ken Shirriff's Blog. http://www.righto.com/2016/09/xerox-alto-restoration-day-5-smoke-and.html.
- ^ ”BitBlt function”. Windows Dev Network. Microsoft. https://msdn.microsoft.com/en-us/library/windows/desktop/dd183370(v=vs.85).aspx.
- ^ Squire, Lance. ”Bally's Blitter”. Bally's Blitter. https://ballyalley.com/ballyalley/articles/bally_blitter.txt.
- ^ Peddie, Jon. ”Famous Graphics Chips: NEC μPD7220 Graphics Display Controller”. computer.org. https://www.computer.org/publications/tech-news/chasing-pixels/famous-graphics-chips.
- ^ ”User's Manual: NEC μPD7220/7220A”. User's Manual: NEC μPD7220/7220A. NEC Electronics. December 1985. http://bitsavers.org/pdf/nec/uPD7220-uPD7220A_User_Manual_Dec85.pdf.
- ^ [a b] Wolf, Mark J.P. (June 2012). Before the Crash: Early Video Game History. Wayne State University Press. sid. 185. ISBN 9780814334508. https://books.google.com/books?id=oK3D4i5ldKgC&q=early+blitter+hardware&pg=PA185
- ^ [a b] Riddle, Sean. ”Blitter Information”. Blitter Information. http://seanriddle.com/blitter.html.
- ^ Williams, Gregg (April 1984). ”Product Preview: The Mindset Personal Computer”. Byte Magazine 9 (4): sid. 278–280. https://archive.org/stream/byte-magazine-1984-04/1984_04_BYTE_09-04_Real-World_Interfacing#page/n270/mode/2up.
- ^ Anderson, John J. (February 1985). ”Mindset Micro: Pushing the envelope, or whatever happened to innovation?”. Creative Computing 11 (2): sid. 50. http://www.atarimagazines.com/creative/v11n2/50_Mindset_micro_pushing_th.php.
- ^ ”US Patent 4874164 "Personal computer apparatus for block transfer of bit-mapped image data"”. US Patent 4874164 "Personal computer apparatus for block transfer of bit-mapped image data". https://patents.google.com/patent/US4874164.
- ^ Killebrew Jr., Carrell R. (December 1986), ”The TMS34010 Graphics System Processor”, Byte 11 (13): 204, https://archive.org/details/byte-magazine-1986-12/page/n199/mode/2up
- ^ ”Game listing for games running on the TMS34010 processor”. mamedb.com. http://www.mamedb.com/cpu/TMS34010?start=0.
- ^ Necasek, Michael. ”The 8514/A Graphics Accelerator”. OS/2 Museum. http://www.os2museum.com/wp/the-8514a-graphics-accelerator/.
- ^ ”Atari Mega ST 2”. Centre for Computing History. http://www.computinghistory.org.uk/det/28563/Atari-Mega-ST-2/.
- ^ ”User Manual for the Atari ST Bit Block Transfer Processor”. archive.org. Atari Corporation. June 17, 1987. https://archive.org/details/User_Manual_for_the_Atari_ST_Bit-Block_Transfer_Processor_BLiTTER_Jun_17_1987/mode/2up.
- ^ Rosenthal, Marshal M. (November 1989). ”The Transputer Connection: An Exclusive Interview with Perihelion's Dr. Tim King”. STart 4 (4). http://www.atarimagazines.com/startv4n4/transputer.html.
- ^ ”Technical Reference Manual Tom & Jerry”. Technical Reference Manual Tom & Jerry. February 2001. 4–5. https://www.hillsoftware.com/files/atari/jaguar/jag_v8.pdf.
Externa länkar
Wikimedia Commons har media som rör Blitter.