SSブログ

本格化するグラフィックスプロセッサ(月刊ASCII 1987年2月号8) [月刊アスキー廃棄(スクラップ)]

特集「87年のOS環境を占う」のスクラップの続き。
本格化するグラフィックスプロセッサ

縦書きのあおりを引用する。

パーソナルコンピュータにとってグラフィックスは標準的な機能の一つであるといっても過言ではない。しかし、グラフィックス処理はCPUに負担をかける反面、充実したユーザーインターフェイスや視覚的にデータを把握するためには欠かせない処理であり、その高速化もユーザーの望むところである。ここでは、最新のグラフィックスプロセッサ動向を見ることにする。

以下本文をスクラップする。
描画デバイスの
新しいコンセプト

 パーソナルコンピュータでは,標準的にグラフィックスをサポートしている機種がほとんどですが,グラフィックスには大きなCPUパワーを要求され,高度なユーザーインターフェイスや,ウィンドウマネージャを走らせると,かなり負荷のかかる仕事になってしまいます.そこで登場したのが,描画専用デバイスです.最初に登場したものは,直線や円弧などの描画機能を持ったものでした.
 このデバイスの登場でパーソナルコンピュータのグラフィックスはかなり高速化されました.しかし,リアルタイムのグラフィックス処理や高度なウィンドウ環境の構築になると,クリッピングや図形の拡大,縮小などのグラフィックス操作に加えて,複数のプロセス管理やメモリ管理などの処理があり,CPUの負荷はますます増えてきます.
 そこで登場したのが現在のグラフィックス描画プロセッサです.メインメモリとは別のメモリをグラフィックスバッファとし,外部からは仮想座標の指定で描画を行ったり,表示範囲を指定するだけでクリッピングを行うなどの機能をハードウェアでサポートし,ビットマップで文字表示を行うなどの機能を持ち,いま-までCPUが行っていた画面を管理するという作業をかなり肩代わりするデバイスが登場したのです.
 具体的には,日立のHD63484 ACRTCやインテルの82786,TiのTMS34010GSPなどがこれに当たります.これらは,直線描画を1~3Mピクセル/Secで行う能力をもっています。ここではこのうち最新のデバイスであるTMS34010を中心に最新のグラフィックスプロセッサを見てみましょう.
34年前のグラフィックスプロセッサはPC-9801VX2のEGCしか知らなかった。TMS34010は全く知らなかった。
グラフィックスプロセッサ
のネック

 グラフィックスプロセッサとしてまず問題になるのは,その描画能力もさることながら,ホストCPUとのインターフェイスです。描画スピードが速いものであっても,この部分が脆弱だと,かえってCPUの負担が増えてしまいます.
 さて実際のデバイスを見てみましょう.ACRTや日電のμPD7220では,コマンドをI/Oポートを介し,内部のFIFOに取り込みます.しかし,この方法では常にステータスを監視する必要がある(7220の場合),あるいはFIFOが空になるたびにCPUに割り込みが掛かるなどの理由で負担が大きくなります.これに対して82786の場合には,コマンド列をメインメモリに格納しておき,このアドレスをグラフィックスプロセッサに渡すという方法を取ります.グラフィックスプロセッサがシステムバスを使ってメインメモリ内のコマンド列をアクセスし,そのコマンドを実行するわけです.これにより一連の処理をまとめて実行することができ,CPUの負荷が軽減されるので「す.そして82786のコマンド体系は,グラフィックスデバイスとのインターフェイスを規定したANSIのCGIに近いものとなっており,CGIを実現するのが簡単になっています.
 しかし,こうしたコマンド方式の欠点としてコマンドが汎用なので冗長になる,コマンドの組合せで処理できない場合に直接描画する必要があるなどがあげられます.
PC-9801VX2でEGCを使うときはI/Oポートを叩くのだがデータがEGCに取り込まれるのを待って次のコマンドをI/Oポートに乗せるには80286にWaitをかける必要があったが、80286にはパイプラインがあるので単純なWaitは効かず、次の番地にジャンプしてパイプラインを切断してクロック数を調整していた。
ASCII1987(02)c14OS環境占う_画面_W520.jpg
TMS34010の
アーキテクチャ

 これらに対してTMS34010 GSPは,汎用のCPUにグラフィックス処理機能を付加した構成になっており(図1),その動作は汎用CPUのようにメモリから命令を取り込み実行するようになっています.つまり条件分岐や四則演算などの命令の中にラスタオペレーションや直線を引くなどの命令があるのです.
 GSPのレジスタ構成は、32bitの汎用レジスタが16本(内1つはスタックポインタ)あり,さらにグラフィックス処理命令のための32bitレジスタが16本となっています.また128ワードのキャッシュを持ち,汎用CPUとして見ても十分なアーキテクチャを持っているといえるでしょう.メモリ空間は1Gbit,つまりこのCPUのアドレス指定はビット単位で行えるのです.
 ホストCPUとのインターフェイスは,16bitのインターフェイスバスを使って行いますが,これは固定されたコマンドを送るのではなく,GSP側のプログラムによって,コマンドメッセージあるいはGSPの実行すべきプログラムとさまざまに変化します.つまり2つのCPU間にある双方向ポートと考えればよいでしょう。さらにホスト側のDMAコントローラにより,GSPのローカルメモリにプログラム/データの転送も可能です.
 従来の方式に比べ,こうした方式では,処理内容によってプログラムを変えることで最適な処理が行えるという利点があります.さらに単独のグラフィック・ターミナルやレーザープリンタのドライバとして、ホストCPUを使わずに独立した装置を組み上げることも可能です.
 しかし,命令取り込み実行という過程を経るので,コマンド方式のものに比べ描画速度などが若干劣るという欠点も持っています.つまりハードワイヤードのコントローラとマイクロプロセッサ利用のコントローラという関係と同じです.

ASCII1987(02)c06OS環境占う_図1_W708.jpg
グラフィックスインターフェイス
の標準化

 いままでのパーソナルコンピュータでも描画ルーチンはたいていBIOS内にあり,これを利用することで自社の他機種との互換性を保証しているのですが,速度的に問題があるのが現状です.しかし,描画をこのようなグラフィックスプロセッサが行うようになると、機種依存しないようなコマンド体系を決めておき,それを個々の機種用のコマンドに変換するドライバを用意すれば、機種依存しないソフトウェアを作ることが可能になります.そうした提案としてはANSIのVDIなどがあります.現在ではこうした規格に準拠したソフトウェア(ファームウェア)がいくつか登場しています.
 GSS社のGDISは,インテルの82786とGSPを同時にサポートするソフトウェアです.これはVDIやMS-WINDOWSのGDIなどを基にそれらの主要な機能をサポートするもので,個々の方式による出力とGDISとの間に簡単なドライバを入れるだけで,複数の規格に対応可能なファームウェアなのです.
 いままでは,すべてをソフトウェアで実現していたので,こうした標準化は,アプリケーションの速度を低下させ,ひいてはそのパフォーマンスさえ下げてしまいました.しかし,描画を高速で行えるグラフィックスプロセッサが登場したことで、単にコマンドコードの変換を行うだけの簡単な処理を描画と並行して行うだけとなったのです.つまり,グラフィックスプロセッサの登場により,異機種間でのソフトウェアの互換性を保てるようになったわけです.
 DOSの登場でディスク装置に関する互換性が生まれ,他機種とデータや,いくつかのソフトウェアを共有することができるようになりました.こうしたソフトウェアの登場で今度はグラフィックス処理に互換性が生まれ,さらに共有できる範囲がひろがる可能性が出てきたといえるでしょう。
PC-9801シリーズしか使っていないからこのような新しいグラフィックスプロセッサの恩恵は得られず主に事務処理では文字データの処理ばかり行っていた。趣味ではグラフィックスはマシン語でVRAMを直接叩くようなゴリゴリな描画プログラムを書いてアニメーションもどきのプログラムを書いていた。


nice!(0)  コメント(0) 
共通テーマ:パソコン・インターネット

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。