ブリッター

ウィキペディアから、無料の百科事典
ナビゲーションにジャンプ 検索にジャンプ

ブリッタは時には、回路であり、コプロセッサ又は論理ブロック、マイクロプロセッサ、コンピュータの中のデータの迅速な動きと変形に専用のメモリ。ブリッターは、CPUのより複雑な機能を他の操作のために解放しながら、あるメモリ領域から別のメモリ領域に大量のデータを比較的迅速に、CPUと並行してコピーできます。ブリッターの一般的な用途は、グラフィカルユーザーインターフェイスのウィンドウやフォント、2Dビデオゲームの画像や背景などのビットマップの移動です。名前は1973年のゼロックスアルトのビットブリット操作に由来し ます[1]これはビットブロック転送を表します。[2]ブリット操作は、バイトアラインされていないデータ(したがってビットインビットブリット)、透明ピクセル(宛先を上書きしてはならないピクセル)の処理、およびさまざまな組み合わせ方法を含む可能性があるため、メモリコピー以上のものです。ソースと宛先のデータ。

ブリッターは、主にプログラム可能なグラフィックス処理ユニットに取って代わられました

歴史

ハードウェアアクセラレーションされたラスターグラフィックスのないコンピューターでは、1970年代と1980年代のほとんどの家庭用コンピューターと1990年代半ばまでのIBM PC互換機が含まれフレームバッファー通常、CPUアクセス可能なメモリに保存されます。描画は、ソフトウェアを介してフレームバッファを更新することによって実行されます。小さい画像を大きい画像に合成する(ビデオゲームなど)、塗りつぶされた長方形を描画するなどの基本的なグラフィックルーチンの場合、大量のメモリを操作する必要があり、負荷の短いループのフェッチとデコードに多くのサイクルが費やされます。指示を保存します。キャッシュのないCPUの場合、命令のバス要件はデータと同じくらい重要です。フレームバッファのサイズを小さくするために、1バイトは必ずしもピクセルに対応しているとは限りませんが、8つのシングルビットピクセル、4つの2ビットピクセル、または16ビットピクセルのペアが含まれている場合があります。パックされたピクセルを操作するには、CPUで追加のシフトおよびマスキング操作が必要です。

ブリッターは、CPUが可能なよりも速くデータをコピーしたり、メモリのブロックを埋めたりする反復的なタスクをオフロードするために開発されました。これはCPUと並行して実行でき、透明としてマークされたピクセルをスキップしたり、バイトアラインされていないデータを処理したりするなど、手動でコーディングすると大幅に遅くなる特殊なケースも処理できます。

コンピュータやビデオゲームのブリッター

1973:ゼロックスアルト用語、ビットブリットは起源が、ビットブロック転送命令に実装しているマイクロはるかに高速CPUに書き込まれた同一の操作よりも、それを行います。[1]マイクロコードは、により実施されたダンインガルス[1]

1982:形状プリミティブの描画に加えて、NEC µPD7220ビデオディスプレイプロセッサは、ダイレクトメモリアクセス介して長方形のビットマップをディスプレイメモリに転送し、画面の長方形の部分を埋めることができます。[3] [4]

1982年:WilliamsElectronicsTheRobotron:2084アーケードビデオゲームには、最大80個の同時に移動するオブジェクトをゲームに搭載できる2つのブリッターチップが含まれています。[5]パフォーマンスは約910KB /秒で測定されました。[5]ブリッターは、色0が透明である4ビット(16色)ピクセルで動作し、非長方形の形状を可能にします。[6] Williamsは、SinistarJoustなど、当時の他のゲームでも同じハードウェアを使用していました[6]

1984:MS-DOS互換考え方パーソナルコンピュータは、カスタム含まVLSIのビットマップの矩形セクションを移動するチップ。ハードウェアは、ソースデータと宛先データを組み合わせるための透過性と8つのモードを処理します。[7]マインドセットは、当時のPCよりも最大50倍高速なグラフィックスを備えていると主張されていましたが[8]、システムは成功しませんでした。

1985年:Amigaパーソナルコンピュータのハードウェアコプロセッサの1つがブリッターです。ブリッターという用語を使用した最初の米国特許出願は、Commodore-Amiga、Inc。に割り当てられた「ビットマップ画像データのブロック転送用のパーソナルコンピューター装置」でした。[9]ブリッターは、サイズの3つのビットベクトルに対して任意のブール演算を実行します。 16:

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

1986:TMS34010は、追加のブリッタ状のビットマップデータを操作するための命令と、汎用32ビット・プロセッサです。透明ピクセルの処理、バイト整列されていないデータの処理、ビット深度間の変換など、CPUで余分な処理が必要な場合に最適化されています。 TMS34010は1988年に始まるアーケードゲームの数のCPUとGPUの両方を務めNARCとを含むハードのdrivin'、」、スマッシュテレビモータルコンバット、そしてNBAジャム[10]また、プロレベルのグラフィックスアクセラレータで使用されました1990年代のボード。

1986: Intel 82786は、BIT_BLTビットマップの長方形セクションを移動する命令を備えたプログラム可能なグラフィックプロセッサです[11]

1987:IBM 8514 /で導入ディスプレイアダプタ、IBMパーソナル・システム/ 2 1987年4月のコンピュータは、ビットブロック転送ハードウェアを含みます。[12]

AtariSTブリッターチップ

1987:アタリメガST 2隻のブリッタ・チップを搭載した船。[13]正式には「AtariSTビットブロック転送プロセッサ」と呼ばれ、BLiTTERとして定型化されており、ソースデータと宛先データをマージするための16のオプションを提供します。[14]ブリッターは、エントリーレベルのSTfmホームコンピューターのその後のリビジョンを含む、後続のほとんどのSTマシンでサポートされています。

1989年:短命のAtari Transputer Workstationには、(Mega STベースの)「Blossom」ビデオシステムの一部としてブリッターハードウェアが含まれてます。[15]

1993年:アタリコーポレーションが製造した最後のゲームコンソールであるジャガーは、カスタムの「トム」チップの一部としてブリッターハードウェアが付属しています。[16]

操作

スプライト(左)とマスク(右)

通常、コンピュータプログラムは、実行する必要のあるメモリ転送とデータに対して実行する論理演算を説明する情報を特定のレジスタに格納します。次に、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にクランプされます)。

その他のアプローチ

ハードウェアスプライトは、独立して配置できる小さなビットマップであり、ビデオチップによってオンザフライで背景と合成されるため、フレームバッファの実際の変更は発生しません。[17]スプライトシステムはグラフィックスの移動に効率的であり、CPU命令ではなく画像データのみをフェッチする必要があり、その後の合成はオンチップで行われるため、通常はメモリサイクルの1/3が必要です。[要出典]スプライトの欠点は、スキャンラインごとに移動するグラフィックの制限であり、3(Atari 2600)から8(Commodore64およびAtari8ビットファミリー)の範囲である可能性があります。)16ビットのアーケードハードウェアとコンソールでは大幅に高くなり、永続的なビットマップを更新できなくなります(一般的なデスクトップGUIアクセラレーションには不適切になります)。

も参照してください

参考文献

  1. ^ a b c シリフ、ケン。「YCombinatorのXeroxAlto 5日目の復元:ロジックアナライザーを使用したマイクロコードトレース」ケン・シリフのブログ
  2. ^ 「BitBlt関数」Windows DevNetworkMicrosoft 検索された10月2日に2016
  3. ^ ペディ、ジョン。「有名なグラフィックチップ:NEC µPD7220グラフィックディスプレイコントローラー」computer.org
  4. ^ 「ユーザーズマニュアル:NEC µPD7220 / 7220A」(PDF)NECエレクトロニクス。1985年12月。2012年6月16日のオリジナル(PDF)からアーカイブ
  5. ^ a b Wolf、Mark JP(2012年6月)。クラッシュの前:初期のビデオゲームの歴史ウェイン州立大学プレス。NS。185. ISBN 9780814334508
  6. ^ a b なぞなぞ、ショーン。「ブリッター情報」
  7. ^ ウィリアムズ、グレッグ(1984年4月)。「製品プレビュー:マインドセットパーソナルコンピュータ」バイトマガジン9(4):278–280。
  8. ^ アンダーソン、ジョンJ.(1985年2月)。「マインドセットマイクロ:限界を押し上げる、またはイノベーションに何が起こったのか?」クリエイティブコンピューティング11(2):50。
  9. ^ "米国特許4874164"ビットマップ画像データのブロック転送用のパーソナルコンピュータ装置" "
  10. ^ 「TMS34010プロセッサで実行されているゲームのゲームリスト」mamedb.com2016年3月4日にオリジナルからアーカイブされまし取得した2016年5月15日を
  11. ^ 82786グラフィックコプロセッサユーザーズマニュアルインテル。1988.p。2-29。
  12. ^ ネカセック、マイケル。「8514 / Aグラフィックスアクセラレータ」OS / 2ミュージアム
  13. ^ 「アタリメガST2」コンピューティング履歴センター
  14. ^ 「AtariSTビットブロック転送プロセッサのユーザーマニュアル」archive.orgアタリコーポレーション。1987年6月17日。
  15. ^ ローゼンタール、マーシャルM.(1989年11月)。「トランスピュータ接続:ペリヘリオンのティムキング博士への独占インタビュー」STart4(4)。
  16. ^ 「テクニカルリファレンスマニュアルトムとジェリー」(PDF)2001年2月。4–5ページ。
  17. ^ ハーグ、ジェームズ。「なぜ専用ゲーム機が存在するのですか?」21世紀のプログラミングアーカイブされたオリジナルの2018年4月23日に2019-09-03を取得しました