Blitter
「ブリッター」
ブリッタは時には、回路であり、コプロセッサ又は論理ブロックに、マイクロプロセッサ、コンピュータの中のデータの迅速な動きと変形に専用のメモリ。ブリッターは、CPUのより複雑な機能を他の操作のために解放しながら、あるメモリ領域から別のメモリ領域に大量のデータを比較的迅速に、CPUと並行してコピーできます。ブリッターの一般的な用途は、グラフィカルユーザーインターフェイスのウィンドウやフォント、2Dビデオゲームの画像や背景などのビットマップの移動です。名前は1973年のゼロックスアルトのビットブリット操作に由来します、これはビットブロック転送を表します。ブリット操作は、バイトアラインされていないデータ(したがってビットインビットブリット)、透明ピクセル(宛先を上書きしてはならないピクセル)の処理、およびさまざまな組み合わせ方法を含む可能性があるため、メモリコピー以上のものです。ソースと宛先のデータ。
ブリッターは、主にプログラム可能なグラフィックス処理ユニットに取って代わられました。
コンテンツ
1 歴史
1.1 コンピューターやビデオゲームのブリッター
2 手術
3 その他のアプローチ
4 も参照してください
5 参考文献
歴史
1970年代と1980年代のほとんどの家庭用コンピュータと1990年代半ばまでのIBMPC互換を含む、ハードウェアアクセラレーションラスターグラフィックスのないコンピュータでは、フレームバッファは通常CPUアクセス可能なメモリに格納されます。描画は、ソフトウェアを介してフレームバッファを更新することによって実行されます。小さい画像を大きい画像に合成する(ビデオゲームなど)、塗りつぶされた長方形を描画するなどの基本的なグラフィックルーチンの場合、大量のメモリを操作する必要があり、負荷の短いループのフェッチとデコードに多くのサイクルが費やされます。指示を保存します。キャッシュのないCPUの場合、命令のバス要件はデータと同じくらい重要です。フレームバッファのサイズを小さくするために、1バイトは必ずしもピクセルに対応しているとは限りませんが、8つのシングルビットピクセル、4つの2ビットピクセル、または16ビットピクセルのペアが含まれている場合がパックされたピクセルを操作するには、CPUで追加のシフトおよびマスキング操作が必要です。
ブリッターは、CPUが可能なよりも速くデータをコピーしたり、メモリのブロックを埋めたりする反復的なタスクをオフロードするために開発されました。これはCPUと並行して実行でき、透明としてマークされたピクセルをスキップしたり、バイトアラインされていないデータを処理したりするなど、手動でコーディングすると大幅に遅くなる特殊なケースも処理できます。
コンピューターやビデオゲームのブリッター
1973:ゼロックスアルト用語、ビットブリットは起源が、ビットブロック転送命令に実装しているマイクロはるかに高速CPUに書き込まれた同一の操作よりも、それを行います。マイクロコードは、により実施されたダンインガルス。
1982:形状プリミティブの描画に加えて、NEC µPD7220ビデオディスプレイプロセッサは、ダイレクトメモリアクセスを介して長方形のビットマップをディスプレイメモリに転送し、画面の長方形の部分を埋めることができます。
1982年:WilliamsElectronicsのTheRobotron:2084アーケードビデオゲームには、最大80個の同時に移動するオブジェクトをゲームに搭載できる2つのブリッターチップが含まれています。パフォーマンスは約910KB /秒で測定されました。ブリッターは、色0が透明である4ビット(16色)ピクセルで動作し、非長方形の形状を可能にします。 Williamsは、SinistarやJoustなど、当時の他のゲームでも同じハードウェアを使用していました。
1984:MS-DOS互換考え方パーソナルコンピュータは、カスタム含まVLSIのビットマップの矩形セクションを移動するチップ。ハードウェアは、ソースデータと宛先データを組み合わせるための透過性と8つのモードを処理します。マインドセットは、当時のPCよりも最大50倍高速なグラフィックスを備えていると主張されていましたが、システムは成功しませんでした。
1985年:Amigaパーソナルコンピュータのハードウェアコプロセッサの1つがブリッターです。ブリッターという用語を使用した最初の米国特許出願は、Commodore-Amiga、Inc。に割り当てられた「ビットマップ画像データのブロック転送用のパーソナルコンピュータ装置」でした。ブリッターは、サイズの3つのビットベクトルに対して任意のブール演算を実行します。 16:
destination := op(source A, source B, source C)
1986:TMS34010は、追加のブリッタ状のビットマップデータを操作するための命令と、汎用32ビット・プロセッサです。透明ピクセルの処理、バイト整列されていないデータの処理、ビット深度間の変換など、CPUで余分な処理が必要な場合に最適化されています。TMS34010は1988年に始まるアーケードゲームの数のCPUとGPUの両方を務めNARCとを含むハードのdrivin’、」、スマッシュテレビ、モータルコンバット、そしてNBAジャム、また、プロレベルのグラフィックスアクセラレータで使用されました1990年代のボード。
1986: Intel 82786は、BIT_BLTビットマップの長方形セクションを移動する命令を備えたプログラム可能なグラフィックプロセッサです。
1987:IBM 8514 /で導入ディスプレイアダプタ、IBMパーソナル・システム/ 2 1987年4月のコンピュータは、ビットブロック転送ハードウェアを含みます。
AtariSTブリッターチップ
1987:アタリメガST 2隻のブリッタ・チップを搭載した船。正式には「AtariSTビットブロック転送プロセッサ」と呼ばれ、BLiTTERとして定型化されており、ソースデータと宛先データをマージするための16のオプションを提供します。ブリッターは、エントリーレベルのSTfmホームコンピューターのその後のリビジョンを含む、後続のほとんどのSTマシンでサポートされています。
1989年:短命のAtari Transputer Workstationには、(Mega STベースの)「Blossom」ビデオシステムの一部としてブリッターハードウェアが含まれています。
1993年:アタリコーポレーションが製造した最後のゲームコンソールであるジャガーは、カスタムの「トム」チップの一部としてブリッターハードウェアが付属しています。
手術
通常、コンピュータプログラムは、実行する必要のあるメモリ転送とデータに対して実行する論理演算を説明する情報を特定のレジスタに格納します。次に、CPUがブリッターをトリガーして動作を開始します。並列で実行されているブリットはメモリ帯域幅を使用しますが、ブリッターが動作している間、CPUは他の処理のために解放されます。
スプライトなどの透明な部分を含むデータをコピーするには、ブリット中に無視されるように色を指定できます(色0など)。他のシステムでは、ピクセルあたり2番目の1ビットの画像を「マスク」として使用して、転送するピクセルとそのままにしておくピクセルを示すことができます(右の画像を参照)。マスクはステンシルのように機能します。透明色システムの論理演算(OR-ピクセルビットを合計して、そのピクセルがカラー0であるかどうかを判断した後)はdestination := (background AND NOT mask) OR spriteです。マスクされたピクセルとマスクされていないピクセルの両方が0ビットと1ビットの任意のパレットエントリ/組み合わせである可能性がある(前の操作では、マスクアウトされていると思われる場合でも背景と衝突する可能性がある)別の事前計算されたマスクプレーンの場合、操作はdestination := (background AND NOT mask) OR (sprite AND mask)(まだ3つの入力ですが、そのうちの1つを2回使用します)、ソフトウェアレンダリングで採用されているXORベースの方法(初期のモノクロまたはカラービットプレーンGUIの1ビットプラスマスクマウスポインターなど)と同様の操作です。追加のビットプレーンはすべて、マスクされた領域で0にクランプされます)。
その他のアプローチ
スプライト(コンピューターグラフィックス)
ハードウェアスプライトは、独立して配置できる小さなビットマップであり、ビデオチップによってオンザフライで背景と合成されるため、フレームバッファの実際の変更は発生しません。スプライトシステムはグラフィックスの移動に効率的であり、CPU命令ではなく画像データのみをフェッチする必要があり、その後の合成はオンチップで行われるため、通常はメモリサイクルの1/3が必要です。スプライトの欠点は、スキャンラインごとのグラフィックスの移動の制限です。これは、3(Atari 2600)から8(Commodore64およびAtari8ビットファミリー)の範囲で、16ビットアーケードハードウェアおよびコンソールでは大幅に高くなります。永続的なビットマップを更新できない(一般的なデスクトップGUIの高速化には不適切になります)。
も参照してください
ダイレクトメモリアクセス(DMA)
参考文献
^ シリフ、ケン。「YCombinatorのXeroxAlto 5日目の復元:ロジックアナライザーを使用したマイクロコードトレース」。ケン・シリフのブログ。
^ 「BitBlt関数」。Windows DevNetwork。Microsoft 。
^ ペディ、ジョン。「有名なグラフィックチップ:NEC µPD7220グラフィックディスプレイコントローラー」。computer.org。
^ 「ユーザーズマニュアル:NEC µPD7220 / 7220A」(PDF)。NECエレクトロニクス。1985年12月。2012年6月16日のオリジナル(PDF)からアーカイブ。
^ Wolf、Mark JP。クラッシュの前:初期のビデオゲームの歴史。ウェイン州立大学プレス。NS。185. ISBN
9780814334508。
^ なぞなぞ、ショーン。「ブリッター情報」。
^ ウィリアムズ、グレッグ(1984年4月)。「製品プレビュー:マインドセットパーソナルコンピュータ」。バイトマガジン。9(4):278–280。
^ アンダーソン、ジョンJ.(1985年2月)。「マインドセットマイクロ:限界を押し上げる、またはイノベーションに何が起こったのか?」。クリエイティブコンピューティング。11(2):50。
^ “”米国特許4874164″”ビットマップ画像データのブロック転送用のパーソナルコンピュータ装置” “。
^ 「TMS34010プロセッサで実行されているゲームのゲームリスト」。mamedb.com。
^ 82786グラフィックコプロセッサユーザーズマニュアル。インテル。1988.p。2-29。
^ ネカセック、マイケル。「8514 / Aグラフィックスアクセラレータ」。OS / 2ミュージアム。
^ 「アタリメガST2」。コンピューティング履歴センター。
^ 「AtariSTビットブロック転送プロセッサのユーザーマニュアル」。archive.org。アタリコーポレーション。1987年6月17日。
^ ローゼンタール、マーシャルM.(1989年11月)。「トランスピュータ接続:ペリヘリオンのティムキング博士への独占インタビュー」。STart。4(4)。
^ 「テクニカルリファレンスマニュアルトムとジェリー」(PDF)。2001年2月。4–5ページ。
^ ハーグ、ジェームズ。「なぜ専用ゲーム機が存在するのですか?」。21世紀のプログラミング。2019-09-03を取得しました。”