Blitter - Blitter

Blitter je obvod, někdy jako koprocesor nebo logickém bloku na mikroprocesoru , věnované rychlým pohybem a modifikaci dat v rámci počítače paměti . Blitter může kopírovat velké množství dat z jedné paměťové oblasti do druhé relativně rychle a souběžně s CPU , přičemž uvolňuje komplexnější možnosti CPU pro další operace. Typickým použitím pro bitter je pohyb bitmapy , jako jsou okna a písma v grafickém uživatelském rozhraní nebo obrázky a pozadí ve 2D videohře. Název pochází z operace bit blit zařízení Xerox Alto z roku 1973 , což znamená přenos bitových bloků. Operace Blit je více než kopie paměti, protože může zahrnovat data, která nejsou zarovnána na bajty (tedy bit v bit blit ), zpracování transparentních pixelů (pixelů, které by neměly přepsat cíl) a různé způsoby kombinace zdroje a cíle data.

Blittery byly z velké části nahrazeny programovatelnými jednotkami pro zpracování grafiky .

Dějiny

V počítačích bez hardwarově akcelerované rastrové grafiky , která zahrnuje většinu domácích počítačů sedmdesátých a osmdesátých let a kompatibilní s počítači IBM PC do poloviny devadesátých let, je vyrovnávací paměť rámců běžně uložena v paměti přístupné pro CPU. Kreslení se provádí aktualizací vyrovnávací paměti snímků pomocí softwaru. U základních grafických rutin, jako je skládání menšího obrazu do většího (například pro videohry) nebo kreslení vyplněného obdélníku, je třeba manipulovat s velkým množstvím paměti a mnoho cyklů je věnováno načítání a dekódování krátkých smyček zatížení/ uložit pokyny. U CPU bez mezipaměti je požadavek sběrnice na instrukce stejně důležitý jako data. Aby se zmenšila velikost vyrovnávací paměti snímků, jeden bajt nemusí nutně odpovídat pixelu, ale obsahuje 8 jednobitových pixelů, 4 dvoubitové pixely nebo dvojici 16bitových pixelů. Manipulace s zabalenými pixely vyžaduje další operace řazení a maskování na CPU.

Blittery byly vyvinuty tak, aby uvolňovaly opakující se úlohy kopírování dat nebo zaplňování bloků paměti rychleji, než je možné pomocí CPU. To lze provést souběžně s procesorem a také zpracovat speciální případy, které by byly výrazně pomalejší, pokud by byly kódovány ručně, například přeskakování pixelů označených jako transparentní nebo zpracování dat, která nejsou zarovnána s bajty.

Blittery v počítačích a videohrách

1973: Xerox Alto , kde termín bit blit vznikl, má instrukce bit přenosu bloku implementována v mikrokódu , takže je mnohem rychlejší než stejné operace napsané na CPU. Mikrokód implementoval Dan Ingalls .

1982: Kromě kreslení tvarových primitiv může video zobrazovací procesor NEC µPD7220 přenášet obdélníkové bitmapy do paměti displeje prostřednictvím přímého přístupu do paměti a vyplňovat obdélníkové části obrazovky.

1982: Robotron: 2084 pasáž videohry od Williams elektroniky obsahuje dva Blitter čipy, které umožňují, aby hra mít až 80 současně pohybujících se objektů. Výkon byl naměřen zhruba 910 KB/s. Blitter pracuje na 4bitových (16 barevných) pixelech, kde barva 0 je průhledná, což umožňuje použití ne obdélníkových tvarů. Williams použil stejný hardware v jiných hrách z daného období, včetně Sinistar a Joust .

1984: MS-DOS kompatibilní myšlení osobní počítač obsahuje vlastní VLSI čip se pohybovat obdélníkové části bitmapu. Hardware zpracovává průhlednost a osm režimů pro kombinování zdrojových a cílových dat. Mindset tvrdil, že má grafiku až 50krát rychlejší než počítače té doby, ale systém nebyl úspěšný.

1985: Jeden z hardwarových koprocesorů v osobním počítači Amiga je blitter. První patentová přihláška v USA, která používala termín blitter, byla „Zařízení osobního počítače pro blokový přenos bitových mapovaných obrazových dat“, přiřazené společnosti Commodore-Amiga, Inc. Blitter provádí libovolnou booleovskou operaci na třech bitových vektorech velikosti 16:

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

1986: tms34010 je univerzální 32-bitový procesor s přídavným blitteru-jako instrukce pro manipulaci s data bitmapy. Je optimalizován pro případy, které vyžadují další zpracování na CPU, jako je manipulace s průhlednými pixely, práce s nebajtovými zarovnanými daty a převod mezi bitovými hloubkami. TMS34010 sloužil jako CPU i GPU pro řadu arkádových her počínaje rokem 1988 s Narc a zahrnující Hard Drivin ' ,', Smash TV , Mortal Kombat a NBA Jam . Byl také použit v deskách grafického akcelerátoru na profesionální úrovni v 90. léta 20. století.

1986: Intel 82786 je programovatelný grafický procesor s BIT_BLTinstrukcí pro přesun obdélníkových částí bitmap.

1987: IBM 8514 / A grafický adaptér, který byl zaveden s IBM Personal System / 2 počítačích, v dubnu 1987, zahrnuje hardware přenosový bit bloku.

Atari ST Blitter čip

1987: Atari Mega ST 2 je dodáván s Blitter čipu. Oficiálně se nazývá „Atari ST Bit-Block Transfer Processor“, stylizovaný jako BLiTTER, a nabízí 16 možností pro sloučení zdrojových a cílových dat. Blitter je podporován na většině následujících strojů ST, včetně pozdějších revizí domácích počítačů STfm vstupní úrovně.

1989: Krátkodobá pracovní stanice Atari Transputer Workstation obsahuje blitterový hardware jako součást video systému „Blossom“ (na bázi Mega ST).

1993: Poslední herní konzole vyráběná společností Atari Corporation, Jaguar , je dodávána s blitterovým hardwarem jako součást vlastního čipu „Tom“.

Úkon

Skřítci (vlevo) a masky (vpravo)

Počítačový program obvykle vkládá informace do určitých registrů, které popisují, jaký přenos paměti je třeba dokončit a logické operace, které je třeba s daty provést. CPU poté spustí blitter a začne pracovat. CPU je zdarma pro další zpracování, zatímco blitter funguje, ačkoli paralelně běžící blit využívá šířku pásma paměti.

Chcete -li kopírovat data s průhlednými částmi - například sprites -, lze určit barvu, která bude během blit ignorována (například barva 0). V jiných systémech lze jako „masku“ použít druhý obraz o velikosti 1 bit na pixel, který označuje, které pixely se mají přenášet a které ponechat nedotčené (viz obrázek vpravo). Maska funguje jako šablona . Logická operace pro systém transparentních barev (po OR součtu bitů pixelů k určení, zda je pixelem barva 0) je destination := (background AND NOT mask) OR sprite. U samostatné, předem vypočítané roviny masky, kde maskovanými i nemaskovanými pixely může být jakýkoli vstup / kombinace palety 0 a 1 bitů (a v předchozí operaci by se potenciálně střetly s pozadím, i když jsou údajně maskované), operace je destination := (background AND NOT mask) OR (sprite AND mask)(stále tři vstupy, ale jeden z nich je použit dvakrát), podobná operaci jako metoda založená na XOR používaná softwarovým vykreslováním (např. ukazatele myši s 1-bitovou maskou plus v raných černobílých nebo barevných bitplane GUI, s libovolným další bitplany všechny upnuté na 0 v maskovaných oblastech).

Jiné přístupy

Hardwarové skřítky jsou malé bitmapy, které lze umístit nezávisle, složené společně s pozadím za běhu pomocí video čipu, takže nedochází k žádné skutečné úpravě vyrovnávací paměti snímků. Systémy Sprite jsou efektivnější při přesouvání grafiky, obvykle vyžadují 1/3 paměťových cyklů, protože je třeba načíst pouze obrazová data-nikoli instrukce CPU-s následným skládáním na čipu. Stinnou stránkou skřítků je limit pohyblivé grafiky na scanline, který se může pohybovat od tří ( Atari 2600 ) do osmi ( Commodore 64 a Atari 8bitová rodina ) až po výrazně vyšší u 16bitového arkádového hardwaru a konzolí a neschopnost aktualizovat trvalou bitmapu (což je činí nevhodnými pro obecné zrychlení grafického uživatelského rozhraní pro stolní počítače).

Viz také

Reference

  1. ^ a b c Shirriff, Ken. „Obnovení Xerox Alto den 5 YCombinator: Trasování mikrokódu pomocí logického analyzátoru“ . Blog Ken Shirriffa .
  2. ^ "Funkce BitBlt" . Windows Dev Network . Microsoft . Citováno 2. října 2016 .
  3. ^ Peddie, Jone. „Slavné grafické čipy: řadič grafického displeje NEC µPD7220“ . computer.org .
  4. ^ "Uživatelská příručka: NEC µPD7220/7220A" (PDF) . NEC Electronics. Prosinec 1985. Archivováno z originálu (PDF) dne 2012-06-16.
  5. ^ a b Wolf, Mark JP (červen 2012). Before the Crash: Early Video Game History . Wayne State University Press. p. 185. ISBN 9780814334508.
  6. ^ a b Riddle, Sean. „Blitter Information“ .
  7. ^ Williams, Gregg (duben 1984). „Náhled produktu: Osobní počítač myšlení“ . Časopis Byte . 9 (4): 278–280.
  8. ^ Anderson, John J. (únor 1985). „Mindset Micro: tlačení obálky, nebo co se stalo inovaci?“ . Kreativní výpočetní technika . 11 (2): 50.
  9. ^ "US Patent 4874164" Přístroj osobního počítače pro blokový přenos bitových mapovaných obrazových dat " " .
  10. ^ "Seznam her pro hry běžící na procesoru TMS34010" . mamedb.com . Archivováno od originálu dne 2016-03-04 . Citováno 2016-05-15 .
  11. ^ 82786 Grafický koprocesor Uživatelská příručka . Intel. 1988. s. 2-29.
  12. ^ Necasek, Michael. „Grafický akcelerátor 8514/A“ . Muzeum OS/2 .
  13. ^ "Atari Mega ST 2" . Centrum výpočetní historie .
  14. ^ "Uživatelská příručka pro procesor Atari ST Bit Block Transfer" . archive.org . Atari Corporation. 17. června 1987.
  15. ^ Rosenthal, maršál M. (listopad 1989). „Připojení transputeru: Exkluzivní rozhovor s Dr. Timem Kingem z Perihelionu“ . START . 4 odst.
  16. ^ "Technický referenční manuál Tom & Jerry" (PDF) . Únor 2001. s. 4–5.
  17. ^ Haag, James. „Proč existují vyhrazené herní konzole?“ . Programování v 21. století . Archivovány od originálu na 2018-04-23 . Citováno 2019-09-03 .