JPH0792654B2 - ビデオ・データ・フレーム伝送方法および装置 - Google Patents

ビデオ・データ・フレーム伝送方法および装置

Info

Publication number
JPH0792654B2
JPH0792654B2 JP5238555A JP23855593A JPH0792654B2 JP H0792654 B2 JPH0792654 B2 JP H0792654B2 JP 5238555 A JP5238555 A JP 5238555A JP 23855593 A JP23855593 A JP 23855593A JP H0792654 B2 JPH0792654 B2 JP H0792654B2
Authority
JP
Japan
Prior art keywords
data
video data
vtc
buffer
master
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
JP5238555A
Other languages
English (en)
Other versions
JPH06215117A (ja
Inventor
ガーランド マッキニス アレグザンダー
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH06215117A publication Critical patent/JPH06215117A/ja
Publication of JPH0792654B2 publication Critical patent/JPH0792654B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/36Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
    • G09G5/39Control of the bit-mapped memory
    • G09G5/393Arrangements for updating the contents of the bit-mapped memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2360/00Aspects of the architecture of display systems
    • G09G2360/04Display device controller operating with a plurality of display units

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Digital Computer Display Output (AREA)
  • Information Transfer Systems (AREA)
  • Image Input (AREA)
  • Controls And Circuits For Display Device (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】関連特許出願 以下に列挙した特許出願は、本出願に関連して出願さ
れ、現在継続中の特許出願であり、本明細書中で引用す
ることにより、本明細書の一部を構成するものである。
【0002】(1)米国特許出願第967489号、1
992年10月23日出願(本出願の基礎になる米国特
許出願と同日出願)、発明の名称「リモート・バス上の
データ通路を使用許可する方法および装置」(Meth
od and Apparatus for Enab
ling Data Paths on a Remo
te Bus)。
【0003】(2)米国特許出願第967488号、1
992年10月23日出願(本出願の基礎になる米国特
許出願と同日出願)、発明の名称「バス・ブリッジを介
したデータ通信方法および装置」(Method an
d Apparatus for Communica
ting Data Across a Bus Br
idge)。
【0004】本発明はデータ伝送の過負荷を処理するこ
とに関し、さらに具体的には、マルチフレーム・イメー
ジを徐々に品質低下(gradual degrada
tion)させる技術に関するものである。
【0005】なお、本明細書の記述は本件出願の優先権
の基礎たる米国特許出願第07/967,487号(1
992年10月23日出願)の明細書の記載に基づくも
のであって、当該米国特許出願の番号を参照することに
よって当該米国特許出願の明細書の記載内容が本明細書
の一部分を構成するものとする。
【0006】
【従来の技術】現在のコンピュータ・システムでは、多
種多様のグラフィックス、ビデオ、およびその他の形体
のデータを同時に表示している。しかし、多くのコンピ
ュータ・システムは、これらのすべてのタイプのデータ
をディスプレイ上で同時に更新し、表示するのに十分な
バンド幅の資源をもっていない。
【0007】あるコンピュータ・システムでは、単に処
理できる以上のデータをユーザが要求するのを禁止する
ことにより、この問題を解決している。すなわち、コン
ピュータ・システムは、このような過負荷が起こるのを
禁止するために、まずすべてのソースより起こるピーク
要求量が最小限使用可能な資源をこえないようにしてい
る。例えば、ユーザがディスプレイ上に任意の時点にオ
ープンできるビデオ・ウィンドウの数が制限される場合
がある。しかしこの解決法によると、ソースまたはウィ
ンドウの数とビデオ表示品質との間のトレードオフの関
係において、ユーザがどれだけのデータ・ソースを表示
するかを判断することができない。また、要求量は常に
ピークであるとは限らず、また供給量は常に最小である
とは限らないので、使用可能な資源を効率よく使用する
ことができない。
【0008】他のシステムでは、表示されるデータの各
フレームを、必要とするバンド幅を小さくするために品
質低下(degrade)させる種々の手法を採用して
いる。例えば、米国特許第4,703,439号では、
表示されるイメージの解像度を変えることによって過負
荷を回避している。しかし、このような手法によるとき
は、視覚的不快感を与えないような形で、解像度を低下
させるためには大量のビデオ処理が必要になる。
【0009】別の公知手法では、到来ビデオ・ソースの
フレーム・レート(frame rate)を変えてい
る。例えば、毎秒16フレームのビデオ・ソースを毎秒
8フレームのビデオ・ソースに変更してから、表示のた
めに伝送している。しかし、フレーム・レートが異なる
複数のビデオ・ソースが同時にスクリーンに表示される
場合があるので、どのビデオ・ソースのフレーム・レー
トを調整し、またはフレーム・レートの調整に割り振る
かが困難である。加えて、過負荷は非常に一時的な過負
荷である場合があり、フレーム・レートの調整が不要で
ある場合がある。
【0010】
【発明が解決しようとする課題】本発明は上述した従来
技術の問題を解決することを目的にしている。
【0011】
【課題を解決するための手段】このような目的を達成す
るために、請求項1に記載の発明は、表示すべきビデオ
・データのフレームを伝送する方法であって、 a)ビデオ・データのフレームの少なくとも一部を受信
するステップと、 b)受信したビデオ・データをバッファにストアできる
かどうかを判断するステップと、 c)受信したビデオ・データをバッファにストアできる
と判断した場合は、受信したビデオ・データをバッファ
にストアするステップと、 d)受信したビデオ・データをバッファにストアできな
いと判断した場合は、ビデオ・データのフレームのどの
ビデオ・データも消去するステップと を具えたことを特徴とする。
【0012】請求項2に記載の発明は、請求項1に記載
のビデオ・データ・フレーム伝送方法において、前記ス
トアするステップは、受信したビデオ・データを待ち行
列バッファにストアするステップと、待ち行列バッファ
を指しているポインタを更新するステップとを含むこと
を特徴とする。
【0013】請求項3に記載の発明は、請求項2に記載
のビデオ・データ・フレーム伝送方法において、前記消
去するステップは、待ち行列バッファ内のロケーション
を指しているポインタを、消去するデータ・フレームの
前に移動するステップを含むことを特徴とする。
【0014】請求項4に記載の発明は、請求項3に記載
のビデオ・データ・フレーム伝送方法において、ストア
されたビデオ・データを表示するステップをさらに具え
たことを特徴とする。
【0015】請求項5に記載の発明は、請求項4に記載
のビデオ・データ・フレーム伝送方法において、ストア
されたビデオ・データを、該ビデオ・データの表示の前
にディスプレイ・アダプタへ伝送するステップをさらに
具えたことを特徴とする。
【0016】請求項6に記載の発明は、請求項5に記載
のビデオ・データ・フレーム伝送方法において、受信し
たビデオ・データをディジタル化するステップをさらに
具えたことを特徴とする。
【0017】請求項7に記載の発明は、表示すべきビデ
オ・データのフレームを伝送する装置であって、 a)ビデオ・データのフレームの少なくとも一部を受信
する手段と、 b)受信したビデオ・データをバッファにストアできる
かどうかを判断する手段と、 c)受信したビデオ・データをバッファにストアできる
と判断した場合は、受信したビデオ・データをバッファ
にストアする手段と、 d)受信したビデオ・データをバッファにストアできな
いと判断した場合は、ビデオ・データのフレームのどの
ビデオ・データも消去する手段と を具えたことを特徴とする。
【0018】請求項8に記載の発明は、請求項7に記載
のビデオ・データ・フレーム伝送装置において、前記ス
トアする手段は、受信したビデオ・データを待ち行列バ
ッファにストアする手段と、待ち行列バッファを指して
いるポインタを更新する手段とを含むことを特徴とす
る。
【0019】請求項9に記載の発明は、請求項8に記載
のビデオ・データ・フレーム伝送装置において、前記消
去する手段は、待ち行列バッファ内のロケーションを指
しているポインタを、消去するデータ・フレームの前に
移動する手段を含むことを特徴とする。
【0020】請求項10に記載の発明は、請求項9に記
載のビデオ・データ・フレーム伝送装置において、スト
アされたビデオ・データを表示する手段をさらに具えた
ことを特徴とする。
【0021】請求項11に記載の発明は、請求項10に
記載のビデオ・データ・フレーム伝送装置において、ス
トアされたビデオ・データを、該ビデオ・データの表示
の前にディスプレイ・アダプタへ転送する手段をさらに
具えたことを特徴とする。
【0022】請求項12に記載の発明は、請求項11に
記載のビデオ・データ・フレーム伝送装置において、受
信したビデオ・データをディジタル化する手段をさらに
具えたことを特徴とする。
【0023】請求項13に記載の発明は、表示すべきビ
デオ・データのフレームを伝送するデータ処理システム
であって、 a)データを処理するプロセッサと、 b)処理すべきデータをストアするメモリと、 c)前記プロセッサに接続されたビデオ・アダプタであ
って、 i)ビデオ・データのフレームの少なくとも一部を受信
する手段と、 ii)受信したビデオ・データをバッファにストアでき
るかどうかを判断する手段と、 iii)受信したビデオ・データをバッファにストアで
きると判断した場合は、受信したビデオ・データをバッ
ファにストアする手段と、 iv)受信したビデオ・データをバッファにストアでき
ないと判断された場合は、ビデオ・データのフレームの
どのビデオ・データも消去する手段とを有するビデオ・
アダプタと、 d)ストアされたビデオ・データを、前記プロセッサの
指示を受けて前記ビデオ・アダプタから表示するディス
プレイと を具えたことを特徴とする。
【0024】
【実施例】以下では、本発明の特徴および利点をさらに
理解するために、添付図面を参照して、本発明について
詳しく説明する。
【0025】図1は、本発明の好適実施例で使用される
代表的なディジタル・コンピュータ100を示すハイレ
ベル・ブロック図である。コンピュータはメイン・プロ
セッサ110を含み、メイン・プロセッサ110はメモ
リ120、入力デバイス130および出力デバイス14
0に接続されている。メイン・プロセッサ110はシン
グル・プロセッサで構成することも、マルチプロセッサ
で構成することも可能である。入力デバイス130とし
ては、キーボード、マウス、タブレットその他のタイプ
の入力デバイスにすることが可能である。出力デバイス
140としては、テキスト・モニタ、プロッタ、その他
のタイプの出力デバイスにすることが可能である。メイ
ン・プロセッサは、グラフィックス・ディスプレイなど
のグラフィックス出力デバイス150にグラフィックス
・アダプタ200を介して接続することも可能である。
グラフィックス・アダプタ200は、グラフィックスに
関する命令を、バス160を通してメイン・プロセッサ
110から受信する。バス160は、他のアダプタと通
信するためにも使用できる。バス160経由でメイン・
プロセッサから命令を受け取ると、グラフィックス・ア
ダプタは、グラフィックス・アダプタ・メモリ230に
接続されたグラフィックス・アダプタ・プロセッサ22
0と共にその命令を実行する。グラフィックス・アダプ
タ内のグラフィックス・プロセッサはこれらの命令を実
行し、その命令に基づいてフレーム・バッファ240を
更新する。グラフィックス・プロセッサ220として
は、描写(rendering)すべき特定タイプのプ
リミティブを描写する専用描写・ハードウェアを有して
もよい。フレーム・バッファ240は、グラフィックス
出力デバイスに表示するピクセルごとにそのデータを収
めている。RAMDAC(ランダム・アクセス・メモリ
D/A(ディジタル−アナログ・コンバータ)250
は、フレーム・バッファにストアされたディジタル・デ
ータを、グラフィックス・ディスプレイ150に送るR
GB信号に変換することによって、メイン・プロセッサ
からの所望グラフィックス出力を描写する。グラフィッ
クス・アダプタは、メイン・プロセッサ・バス160に
直結されていないマルチメディア・バス260経由で他
のアダプタと通信することも可能である。本発明は、マ
ルチメディア・バス260を使用することを目的として
いる。
【0026】本発明によるマルチメディア・バス260
の好適実施例として、2つの場合について説明するが、
必要とするシステムの特性に応じて一方が好適となる。
1つは、ビデオ転送チャネル(video trans
fer channel:VTC)の場合の実施例であ
り、もう1つは、ビデオ転送チャネル−独立型(vid
eo transfer channel−stand
alone:VTC−SA)の場合の実施例である。
これらのチャネルの各々は共通する機能をいくつか備
え、また異なる機能をいくつか備えているが、これらに
ついても以下で説明する。
【0027】図2は、メイン・プロセッサ・バス305
と並列のVTC300を示すハイレベル・ブロック図で
ある。メイン・プロセッサ・バスはメイン・プロセッサ
315に接続されると共に、グラフィックス・アダプタ
310および他のアダプタ320、330に接続され、
可能ならば、他のアダプタにも接続されている。VTC
はまたグラフィックス・アダプタ310および他のアダ
プタ320、330にも接続され、可能ならば、他のア
ダプタにも接続されている。アダプタ320、330と
しては、ビデオ・コンプレッサ(video comp
ressor)、外部アナログ・ソースのビデオ・ディ
ジタイザ(video digitizer)、ビデオ
・デコンプレッサ(video decompress
or)、または、多数の他のタイプのマルチメディア・
アダプタ(MIDIミュージック・アダプタなど)の1
つにすることができる。この実施例では、メイン・プロ
セッサ・バスはVTCに接続されていない他のアダプタ
に接続することが可能である。しかしながらこの実施例
では、VTCはメイン・プロセッサ・バス上のアダプタ
にだけ接続することができる。
【0028】図3は、メイン・プロセッサ・バス355
に並列のVTC−SA350を示すハイレベル・ブロッ
ク図である。メイン・プロセッサ・バスはメイン・プロ
セッサ365に接続されると共に、グラフィックス・ア
ダプタ360に接続されている。メイン・プロセッサ・
バスは他のアダプタ370、380に接続されていな
い。VTC−SAはグラフィックス・アダプタ360と
マルチメディア・アダプタ370、380に接続され、
他のマルチメディア・アダプタに接続されている場合も
ある。アダプタ370、380は、ビデオ・コンプレッ
サ、外部アナログ・ソースのビデオ・ディジタイザ、ビ
デオ・デコンプレッサ、または、多数の他のタイプのマ
ルチメディア・アダプタ(MIDIミュージック・イン
タフェースなど)の1つにすることができる。この実施
例では、メイン・プロセッサ・バスは、VTCに接続さ
れていない他のアダプタに接続することが可能である。
さらに、この実施例では、VTC−SAは、メイン・プ
ロセッサ・バス上にないマルチメディア・アダプタに接
続することができる。従って、この実施例は独立型(ス
タンドアローン)である。
【0029】以下では、VTCおよびVTC−SAにつ
いて詳しく説明する。
【0030】ビデオ転送チャネル(VTC) VTCは、タイム・クリティカル(time−crit
ical−即時処理)データ、特にビデオ表示データお
よび可能ならば、オーディオ・データのアダプタ相互間
における高速な通信を目的としたバスである。VTC
は、マイクロ・チャネル(Micro Channe
l)や他のコンピュータI/Oまたはメモリ・バスに従
属するものと見ることができるが、その動作は完全に独
立したクロックとコントロールの下で行われる。これに
対してVTC−SAは、自己完結型(self−con
tained)バスとして動作することができる。この
中には、コマンド、応答、および圧縮されたマルチメデ
ィア・データの通信が含まれる。
【0031】VTC−SA以外のインプリメンテーショ
ンでは、VTCは、一般的には、自己完結型コンピュー
タ・バスではない。すなわち、一般的には、メイン・プ
ロセッサ・バスまたはマイクロ・チャネル(Micro
Channel−IBM社の商標)などの制御チャネ
ルを介してアダプタを初期設定し、制御する必要があ
る。PCファミリ1(ISA)バスや他のローカルに定
義されたバスなどの、他のバスを使用することも可能で
ある。VTC上には、データ、およびアダプタ間の直接
通路上でデータを転送するために最小限必要な情報が搬
送される。
【0032】VTCの使用する際の互換性は、いくつか
の異なるレベルになっている。カードのプラグ互換性
(plug−compatibility)をもたせる
ためには、VTC自体は別として、パッケージング、コ
ネクタ、電源、冷却、ソフトウェア・モデルその他の、
多くの面で互換性がなければならない。これらは、個々
のインプリメンテーションの詳細によって保証すること
ができる。VTCに接続されるチップは、同じ電子的お
よび入出力モデルに従っていれば、異なるVTC接続カ
ードに使用することが可能である。これらの点で異なる
チップは、その基礎となるVTCロジック・アーキテク
チャが一定であるので、同じVTC設計マクロを使用す
ることができる。VTCは、IBM PS/2(IBM
社の商標)に見られる補助ビデオ拡張機能(Auxil
iary Video Externsion)とは異
なる、固有の機能を備えているが、VTCをこの拡張機
能と共存させることが可能である。
【0033】VTCは、非圧縮(uncompress
ed)のユーザ表示情報、特にピクセルをマシン内でや
りとりすることを主目標としている。VTCは他のデー
タを搬送する能力も備えている。典型的には、ビデオ・
アダプタに対する総入出力要求は、同じアダプタに要求
される非圧縮ビデオ・データ量の1%のオーダであるの
で、一般的には、VTC上には、入出力データと制御信
号を搬送する十分なバンド幅があまる。
【0034】VTCは、各種の表示機能に使用できるア
ーキテクチャに基づくインタフェースである。このアー
キテクチャによれば、広範囲にわたるシステムおよび機
能、ならびに、広範囲のパフォーマンス能力にわたって
互換性を保つことができる。
【0035】本発明の好適実施例では、VTCは論理的
に32ビット・バスであり、暗黙アドレスがマルチプレ
ックス制御フィールドに指定されている。また、同時並
行リアルタイム・オペレーションを直接にサポートする
マルチマスタ、マルチスレーブ・バスにすることが好ま
しい。バス上の信号とオペレーションはすべて、クロッ
ク同期式にすることが好ましい。VTCは、提供される
機能に必要な信号ライン数を最小化する設計になってい
る。好適実施例では、16データ・ビットおよび64デ
ータ・ビット構成のインプリテーションもサポートして
いる。
【0036】物理層と電気層は、種々のプロダクト群で
想定されているテクノロジ群の特性と整合する高データ
・レートを実現する設計になっている。その結果、バス
信号ライン当たりのスループットは、多くの従来バスの
設計による場合よりも高くなっている。
【0037】VTCは例えば、ディスプレイ・アダプタ
およびいくつかの処理機構や入出力機構といった、複数
のデバイスに接続することができる、双方向データ・チ
ャネルにするのが好ましい。VTCが目標とする主なデ
ータ・タイプは、非圧縮ディジタル・ビデオまたはグラ
フィックスである。VTCはディスプレイ・アダプタの
ディスプレイ・メモリに対するアクセスを提供し、その
場合、VTC経由のデータ転送のタイミングを、モニタ
・スキャン・レートといった、すべての動作上のディス
プレイ・パラメータから独立させることができる。ま
た、VTCは、関係するデバイス間におけるビデオの通
信経路も提供する。
【0038】好適実施例では、VTCまたはVTC−S
Aに接続されるハードウェアは、マスタ・デバイスにす
ることも、スレーブ・デバイスにすることもできる。マ
スタ・デバイスとは、別のデバイスとの間でやりとりさ
れるデータの転送を開始するデバイスである。マスタ・
デバイスの代表例としては、生の(raw)ディジタル
・ビデオのソース(発生源)がある。スレーブ・デバイ
スとは、マスタ・デバイスによって読み書きされるデバ
イスである。スレーブ・デバイスの代表例としては、デ
ィスプレイ・アダプタがある。
【0039】単一の物理デバイスをマスタとしても、ス
レーブとしても動作させることも可能である。ディスプ
レイ・アダプタ・スレーブは、VTCを通してディスプ
レイ・メモリにアクセスすることができる。スレーブが
RBGやオーバレイ・プレーン(overlay pl
ane)またはグラフィックス・イメージや自然イメー
ジなどの複数の層を有する場合は、好適実施例では、こ
れらのすべてをVTC経由でアクセス可能にして、最大
の機能が発揮されるようにしている。マスタは、スレー
ブのアドレスを指定し、読み書きするサンプルの開始ア
ドレスおよび量を、制御フィールドに入っている他の関
係情報と一緒に指定することによって、すべての転送を
開始する。これらについては、制御フィールドを参照し
ながら、あとで詳しく説明する。好適実施例では、VT
Cスレーブは、スレーブとやりとりする個別マスタの各
々のためにコンテキスト・メモリをもつ必要がない。転
送のために必要なコンテキスト情報は、マスタが制御フ
ィールドに入れて提供する。マスタとスレーブの間で通
信するために必要な追加コンテキスト情報はマスタに保
存されている。複数のマスタをVTCに同時に接続する
ことが可能である。複数のマスタはそれぞれのアクセス
を時間的にインタリーブするので、複数の低速チャネル
を同時に動作させるのと同等のパフォーマンスが得られ
る。同様に、複数のスレーブをVTCに接続することが
可能である。これらのアドレス指定は、VTC転送オペ
レーション時に行われる。
【0040】VTCの共用は、ラウンド・ロビン非優先
ハードウェア仲裁方式(round−robin,no
n−preemptive hardware arb
itration)で行うことが好ましく、その変更は
行動パラメータ(behavioral parame
ter)の使用によって行われる。その結果の仲裁行動
は、階層化した複数ラウンド・ロビン・リングのそれと
同じである。ラウンド・ロビンの行動パラメータと順序
は、ソフトウェアで実現することが好ましいスケジュー
リング・アルゴリズムによって判断される。このソフト
ウェアによって判断されるパラメータは、デバイスと必
要物(例えば、ウィンドウ)の構成が与えられていると
き静的であるので、複数のマスタが同時に活動するよう
に動的に再構成するとき必要になる場合があることを除
けば、ソフトウェアをリアルタイムにする必要はない。
【0041】あるマスタがVTCを許可されたとき、そ
のマスタは、明示にVTCを放棄するまで制御権を保持
していることが好ましい。この場合、VTCを放棄した
時点で、そのマスタからリング内の次のマスタへ制御権
(仲裁トークン)が渡される。ラウンド・ロビンのアク
ションを変更する行動パラメータには、各マスタがVT
Cを許可されたあとVTCを保持することのできる最大
時間量と、以前に許可されたときから再び同じマスタが
許可を得ることができるまでの最小遅れ時間(mini
mum delay)とがある。仲裁方式の詳しい説明
は後述する。行動パラメータをマスタで実行するための
レジスタについても後述する。
【0042】マスタがデータをスレーブへ送るときのよ
うに、転送の際に、あるマスタからのデータを複数のス
レーブに同時に「ブロードキャスト」することが可能で
ある。これは、VTC上のどの信号も駆動することな
く、追加のスレーブ(直接にアドレス指定されたスレー
ブ以外の)がVTC上で転送されるデータを受信するこ
とによって実現される。このアクションはVTCのオペ
レーションに影響を及ぼすことがなく、以下では、この
アクションを「スヌーピング」(snooping)と
呼ぶことにする。スヌープ・デバイス(snoopin
g device)は必要時にピクセル開始アドレスを
変換することを受け持ち、マスタとスレーブのVTC転
送に干渉してはならない。つまり、スヌープ・デバイス
はどのラインも、特にどのペーシング(pacing−
歩調合わせ)ラインも駆動することができない。
【0043】VTCは、基本入出力バスをマイクロ・チ
ャネル(IBM社の商標)として使用することが好まし
いが、その用途を種々の入出力バスまで拡張できるの
で、どの入出力バスなしでも使用することができる。そ
の場合は、レジスタ・マッピング、割込みの使用、その
他の理由により、アーキテクチャのシステム・インタフ
ェース層が変更される場合がある。例えば、エントリ・
レベルのPS/2は、ファミリ1(AT)バスをもつシ
ステムにVTCを採用することを選択することができ
る。マイクロ・チャネルや関係ホスト入出力バスに直接
にアクセスできないゲスト・カード(ベース・カード上
の)は、シリアル・バス(例えば、I−squared
−C)の可能性を含めて、ローカル入出力バスと一緒に
VTCを実装するように設計することが可能である。そ
のような場合には、アーキテクチャの物理層および電気
層を実装バージョンは、ここで説明している基本バージ
ョンと異なる場合がある。
【0044】ビデオ転送チャネル−独立型(VTC−SA) VTC−SAは、コンピュータ内の他のどのバスにも接
続することができない、接続されたビデオ・デバイスと
直接に通信できるようにする。VTC−SAコマンドと
共に、コマンドに対する応答と圧縮ビデオ・データは、
通常の非圧縮ビデオ・ピクセルと一緒にバス上を搬送さ
れる。この付加的な補助データの総バンド幅は、ビデオ
・ピクセルの負荷量と比べると、ほとんど重要でない。
単にビデオ・ピクセルと接続するためにだけ必要なピン
数は少なくすることができ、これらのピンは、その他の
必要な通信を行うためにも使用できるので、この構成に
よると、グラフィックス・アダプタおよびビデオ機構の
双方のためのピン数を少なくすることができる。この付
加的な補助データは、VTCについて上述した同じ制御
メカニズムを使用してVTC−SA上を送信される。グ
ラフィックス・アダプタは他の機構のホストの役割を果
たし、システム・バスとVTC−SA間の単純で、効果
的な通信インタフェースとなると同時に、VTC−SA
スレーブとして働く。ある種の機能、行動、およびコマ
ンドは、ホストを除くすべてのVTC−SAデバイスに
ついて定義されているので、CPUからの開始作業は統
一化されている。
【0045】好適実施例では、どの時点においても、ア
クティブ・マスタは最大でも1つであり、スレーブも1
つである。しかし、複数のマスタとスレーブを時分割多
重化(time−domain multiplexe
d)することが可能である。マスタは、仲裁トークンを
受信し、受諾することによってアクティブ・マスタとな
り、仲裁トークンを送出することによってアクティブ・
マスタであることを停止する。スレーブは、アクティブ
・マスタによってアドレス指定されると、アクティブ・
スレーブになる。スレーブは、別のスレーブがアクティ
ブ・マスタによってアドレス指定されるか、仲裁トーク
ンがアクティブ・マスタから送信されると、アクティブ
・スレーブであるこを停止する。アクティブ・マスタ
は、1つまたは2つ以上のスレーブとのデータ転送を開
始し、実行する。すべての転送の開始、管理、および実
行は、下述するバス・ラインを使用して行われる。
【0046】VTC−SAは、マイクロ・チャネルなど
の汎用入出力バスとの直接接続が困難であるビデオ機構
(video features)を構築するという問
題を解決することが動機となっている。このような問題
が起こる理由としては、パッケージング(実装技術)、
電気的負荷、コスト、接続できるこの種のバスの欠如な
どのように、いくつかある。動機しては、さらに、コス
トの主な要因であるピンをグラフィックス・アダプタに
追加しないで、ビデオ機構のコストを最小化または低減
化するという要求がある。VTC自体のパフォーマンス
だけではなく、入出力バスや、通信プロトコルを処理
し、ビデオ機構および他のタスク間を流れるデータ・フ
ローを管理する必要のあるCPUソフトウェア・システ
ムのパフォーマンスも重要な考慮事項になっている。
【0047】VTCは、マイクロ・チャネルなどの既存
の入出力チャネルに対する単なる付属品ではない。VT
Cは、グラフィックス・アダプタを含む、VTC接続デ
バイス間で非圧縮すなわち生のビデオ・ピクセルを搬送
するからである。このような構成が適している場合とし
ては、ビデオ機構とディスプレイ・アダプタがなんらか
の方法でマイクロ・チャネルに接続している場合があ
る。その場合には、VTCはアダプタ間で受渡しされる
生のビデオの最適化通路となると同時に、アーキテクチ
ャに基づくこれらのアダプタの統一インタフェースとな
る。しかし、多くのシステムでは、パッケージングや他
のアーキテクチャ上の制約があるために、ダイヤグラム
を構築する際に使用される上記想定は変更されている。
【0048】VTC−SAでは、ビデオ機構はグラフィ
ックス・サブシステムの一部と見られ、マイクロ・チャ
ネルにも、他のシステムや入出力バスにも接続されな
い。実際には、グラフィックス・アダプタはマイクロ・
チャネルにではなく、システム・バスに接続される。そ
の場合、ビデオ機構をマイクロ・チャネルに接続する必
要がある場合であっても、ビデオ機構とグラフィックス
・アダプタの間に比較的長いフレキシブル・ケーブルが
必要とされるので、パフォーマンスが不当に低下すると
いう問題が起こる。ビデオ機構をグラフィックス・アダ
プタ・システムの一部と見るこの見方は、パッケージン
グに反映させることが可能であり、その場合は、ビデオ
機構はグラフィックス・アダプタ上のゲスト・カードと
なる。補助データ・フローをサポートするために追加バ
スを構築することも可能であるが、本発明を動機づけた
のは、既存のピンとインタフェース・ロジックおよび使
用可能なバンド幅をその目的のために使用することであ
る。従って、ビデオ機構をグラフィックス・アダプタ・
システム内に置いて、動作できるようにするアーキテク
チャが必要になる。
【0049】多くの重大な理由から、VTCの使用は、
ビデオ機構をグラフィックス・ハードウェア環境に統合
化するという問題を解決する好適な解決手法としてすで
に受け取られている。この決定の背景となった理由を説
明することは簡単であるが、これは本明細書の範囲外で
あるので、その説明を省略する。
【0050】VTC−SAの設計で取り上げた非常に重
要な要件の1つは、この構成を実現するために必要なグ
ラフィックス・アダプタ機能の設計をできるかぎり単純
に維持することである。この理由のために、いくつかの
トレードオフが生じ、ビデオ機構とソフトウェアの負担
が可能な限りの最小限の負担より若干大きくなってい
る。その結果として得た設計は、グラフィックス・アダ
プタに容易に実現することができ、これはバッファ付き
直接メモリ・アクセス(DMA)機能に見える。同様
に、すべてのビデオ機構にも、ソフトウェアにも容易に
実現することができる。ソフトウェアがキュー(待ち行
列)を管理する必要があるが、キューのアーキテクチャ
(設計構造)は統一化されており、ソフトウェアがビデ
オ機構へのPIO(programmed I/O−プ
ログラム式入出力)またはソフトウェア制御のDMAを
実行する必要がないので、入出力マップ式またはメモリ
・マップ式ビデオ機構に比べると、全体的にパフォーマ
ンスが向上し、より単純化する。
【0051】VTCがビデオ機構とグラフィックス・ア
ダプタの間に置かれていて、VTC用のピンがすでに割
り振られていて、VTCインタフェースが存在している
とすると、ビデオ・サブシステムがどのような目的を必
要としているかに関係なく、VTCバンド幅全体を利用
して、VTC−SAを実現することができる。
【0052】ビデオ機構に対する追加のバスを使用する
かどうかに関係なく、正しい接続メカニズムを設計する
ためには、サポートする必要のあるデータ・フローの理
解が必要である。ビデオ機構に受け渡しされるデータ・
フローには、一般的に、ホストからビデオ機構へのコマ
ンド、これらのコマンドに対する応答、ホストシステム
から、ビデオ機構への圧縮データ(ビデオ)、ビデオ機
構からホストへの圧縮データ(ビデオ)、ビデオ機構か
らグラフィックス・アダプタへの非圧縮ピクセル、グラ
フィックス・アダプタからビデオ機構への非圧縮ピクセ
ル、ビデオ機構間の非圧縮ビデオ、およびグラフィック
ス・アダプタとビデオ機構間の情報通知(双方向)があ
る。
【0053】これらはすべてが、すべてのビデオ・アダ
プタで必要になるとは限らない。例えば、圧縮データを
必要とするのは、コンプレッサ(圧縮)とデコンプレッ
サ(圧縮解除)だけであることは明らかである。グラフ
ィックス・アダプタとビデオ機構間の情報通知は、更新
タイミングとマルチバッファ表示管理を切れ目なく行う
ためのものである。
【0054】しかし、これらのデータ・フローの最初の
2つ、つまりコマンドと応答はすべての機構で必要にな
る。最低限、ビデオ機構はPOR(パワー・オン・リセ
ット)時または構成時に診断を実行できるように構成さ
れていなければならない。また、CPUとすべての機構
の間でユーザとスクリーンの管理制御が実現されている
ことも必要である。
【0055】これらのデータ・フローの各々に必要なバ
ンド幅を調べることは有用である。VTCが取り扱った
主要問題は、非圧縮または生のビデオ・ピクセルを搬送
することである。これらのフローのバンド幅は、表示さ
れるウィンドウのサイズに大きく依存する。
【0056】どのビデオ・ウィンドウの場合も、必要と
するバンド幅は、若干の例外はあるが、大部分がウィン
ドウ・サイズを関数となる。好適実施例では、バンド幅
はウィンドウの面積に比例している。従って、必要とす
るバンド幅は、ウィンドウ・サイズを管理することによ
ってある程度管理が可能である。
【0057】単一ウィンドウからのバンド幅は、毎秒当
たりのフレーム数(fps)を減らしても容易には減少
しない。そのようにすると、フレーム全体をビデオ機構
のバッファに入れる必要が起こると同時に、更新が遅い
ために起こる人為的なモーションの低下をそのまま受け
入れる必要が起こることになる。複数ウィンドウは、シ
ステムの能力を過負荷にする傾向にあるが、一部のフレ
ームまたはフレームの部分を必要時に動的に除去するよ
うにすると、利点が得られる。しかし、機構に追加的な
ローカル・メモリが必要になり、イメージ品質が低下す
るという犠牲を伴うことになる。
【0058】複数の生のビデオのデータ・フローが同時
に存在する場合がある。例えば、ビデオ・ホンCODE
Cは、リモート・ビデオ・ソースをあるサイズのウィン
ドウに表示し、ローカル・ビデオ・ソースを別サイズの
別のウィンドウに表示することができる。ある設計で
は、アナログ・ビデオ入力回路は、ディジタル化ローカ
ル・ビデオ信号をVTC経由でコンプレッサに渡すこと
も可能になっている。例えば、テープに記録するために
NTSCを出力するビデオ出力アダプタは、グラフィッ
ク・オーバレイを含む、ウィンドウの内容を抽出するこ
とが可能になっている。同時並行オペレーションに必要
なこれらのバンド幅は、すべて付加的なものである。V
TC−SAに接続されたデバイスとCPUとの間のコマ
ンドおよび制御のために、ある程度の付加的バンド幅が
必要である。
【0059】どのハードウェア設計の場合も、つ過負荷
状態となるシナリオが常に存在する。まり、VTC自体
ではなければ、ディスプレイ・メモリのバンド幅におい
てである。従って、ソフトウェアは資源管理を行って、
正しく実行されるように保証できるアクティビティだけ
が活動化されるように保証しなければならない。このよ
うな保証を得るには、様々な方法が可能である。例え
ば、表示されるビデオ・ウィンドウのサイズを制限する
方法、表示される(しかし、通常はディジタルまたはア
ナログの出力でない)ウィンドウの品質を徐々に低下さ
せる方法がある。VTCを使用しながらウィンドウの品
質を低下させる方法については、後述する。
【0060】VTC−SA構造の好適実施例の主要な特
徴としては、VTCへOUTする補助データおよびVT
CからINする補助データ用にシステム・メモリに設け
た2つの単方向キューがある。グラフィックス・アダプ
タは第一の部分的DMA(バス・マスタ)を実行しこれ
らのキューをアクセスする。グラフィックス・アダプタ
はデータ・ストリームを入出力する小容量のオンチップ
・バッファを備えており、VTCデバイスは入出力バッ
ファをVTCマスタとしてアクセスする(グラフィック
ス・アダプタがVTCスレーブである)。VTCと受け
渡しされるすべての補助データは定義されたインタリー
ブ形式を用いてインタリーブされて、2つのシステム・
キューに入れられ、CPU(または他のデバイス)がビ
デオ機構とのすべての通信のためにシステム・キューを
読み書きする。グラフィックス・アダプタはシステム・
キューおよびオンチップ・バッファのためのポインタ・
レジスタを内蔵している。
【0061】VTCおよびVTC−SAバス・ラインの定義 好適実施例では、VTCおよびVTC−SAは32ビッ
ト・データ・チャネルを有し、これに3つの制御ライン
とクロックが加わっている。これらは論理的に32ビッ
ト幅になっている。この場合、16ビット電気規格バー
ジョンでは、32ビット情報は直列化されて、1対の1
6ビット短ワードが得れる。好適実施例では、ビット番
号付けは、「ビッグ・エンディアン」(big end
ian)とも呼ばれる、標準規則に従っている。
【0062】バスのラインは、好ましくは32ビットで
あり、次のとおりである。
【0063】DATA(0−31):双方向データ。
【0064】CLOCK(32):連続動作のマスタ・
クロック。単一のデバイスにより駆動され、すべてのマ
スタおよびスレーブ・ロジックへ入力される。
【0065】DATA/−CTL(33):アクティブ
なマスタによって駆動され、VTC経由で書かれるデー
タが制御フィールドであるかデータであるかを示してい
る。 MASTERRDY(34):アクティブなマスタによ
ってアクティブに駆動され、ライト(書込み)転送時に
は有効なデータを提示していることを示し、リード(読
取り)転送時にはデータを受け取る用意にあることを示
している。
【0066】SLAVERDY(35):アクティブな
スレーブによって駆動され、ライト転送時にはデータを
受け取る用意にあることを示し、リード転送時には有効
なデータを提示していることを示している。
【0067】DATA(0−31)がアクティブなマス
タによって駆動されるのは、アクティブ・マスタがVT
Cライト転送を実行したり、制御フィールドを書いた
り、仲裁トークンを送出したりするときである。また、
DATAラインがアクティブ・スレーブによって駆動さ
れるのは、VTCリード転送が進行中のときである。マ
スタとスレーブのドライバは、好ましくは、トライ・ス
テート(tri−state)になっている。CLOC
K(32)は、連続動作の定周波数クロックであること
が好ましい。この信号は、VTCのすべてのオペレーシ
ョンのために使用される。すべてのVTCインタフェー
ス・ロジックはCLOCKラインを、タイミングをとる
ための入力として使用する。1つのクロック・ドライバ
がアクティブになっていることが好ましい。DATA/
−CTL(33)は、マスタがDATAライン上でデー
タを駆動しているか、または制御フィールドおよび仲裁
トークンを駆動しているかを示している。どのマスタも
DATAラインを駆動していないとき、あるいはアクテ
ィブ・マスタがデータ(例えば、ピクセル)値を駆動し
ているとき、DATA/−CTLラインは“DATA”
(高)状態にある。アクティブ・マスタがDATAライ
ン上で制御フィールドまたは仲裁トークンを駆動してい
るとき、DATA/−CTLラインは“CTL”(低)
状態にある。以下では、好適実施例による制御フィール
ドおよび仲裁トークンについて説明する。ドライバはト
ライ・ステートであることが好ましい。すべてのマスタ
がDATA/−CTLラインをトライ・ステートのまま
にしておくときのあいまいさを避けるために、DATA
/−CTLラインには少なくとも1つのパッシブ・プル
アップ(passive pull−up)が存在す
る。MASTERRDYは、ライト転送時には、アクテ
ィブに駆動され、現クロック・サイクル期間にマスタが
DATAライン上で有効なデータを駆動していることを
示す。このデータはアクティブ・スレーブによって受信
されるものと期待される。MASTERRDYラインが
インアクティブのときは、DATAライン上の値が有効
でなく、スレーブによって無視すべきであることを示し
ている。リード転送時には、MASTERRDYライン
のアクティブ状態は、次のクロック・サイクル後のクロ
ック・サイクル期間に有効なデータが受け付けられるこ
とを示し、MASTERRDYラインのインアクティブ
状態は、その後の2クロック・サイクル期間に存在する
データは受け付けられないず、参加するスレーブはその
サイクル期間に有効データを駆動してはならないことを
示している。有効でないDATAラインの値は「無視し
てよい」(‘don’t care’)。好ましくは、
ドライバはトライ・ステートになっている。すべてのマ
スタがMASTERRDYラインをトライ・ステートの
ままにしておくときの、あいまいさを避けるために、M
ASTERRDYラインには少なくとも1つのパッシブ
・プルアップが存在する。SLAVERDYラインは、
リードとライトがあり、またマスタとスレーブが反対に
なっている点を除けば、MASTERRDYラインと同
じように定義されている。リード転送時には、有効なデ
ータがスレーブによってDATAライン上に駆動されて
いることを示している。ライト転送時には、アクティブ
状態は、次のクロック・サイクルのあとのクロック・サ
イクル期間に提示されたデータが受け付けられることを
示している。SLAVERDYラインのインアクティブ
状態は、アクティブ・マスタがその後の2クロック・サ
イクル期間にDATAライン上で有効データを駆動して
はならないことを示している。この場合も、ドライバは
トライ・ステートであることが好ましい。すべてのスレ
ーブがSLAVERDYラインをトライ・ステートのま
まにしておくときの、あいまいさを避けるために、SL
AVERDYライン上に少なくとも1つのパッシブ・プ
ルアップが存在している。
【0068】VTCの16ビット電気規格バージョン
は、DATAラインが16本だけである点を除けば、バ
ス・ライン定義を上述したものと同じにすることが好ま
しい。16ビット・バージョンでは、完全32ビット・
バージョンのDATAライン上に現れる32ビット値
は、1対の16ビット値に直列化される。好適実施例で
は、16ビットを使用するVTCのオペレーションは、
32ビット・オペレーションを直列化したバージョンで
ある。16ビット・デバイスとの間で受け渡しされるデ
ータは、好ましくは、16ビット短ワードの対として送
信される整数個の32ビット・ワードからなっている。
その場合、最初の短ワードは上位16ビット(0−1
5)すなわち等価的にバイト0と1からなっている。各
対からの2番目の短ワードは下位ビット(16−31)
すなわち等価的にバイト2と3からなっている。
【0069】32ビットと16ビット間の相互接続は可
能であるが、必ずしも、すべての32ビットまたは16
ビット実装バージョンでサポートする必要はない。16
ビット・バージョンと32ビット・バージョンが相互接
続されるときは、16ビット・デバイスの16データ・
ラインは完全32ビットVTCの上位ビット(0−1
5)に接続される。32ビット・デバイスは16ビット
・デバイスへ送られるすべての32ビット・ワードを直
列化する一方で、32ビット・デバイスは、データが他
の32ビット・デバイスだけに送られるとき、すべての
32ビット・ワードを駆動することができる。すべての
16ビット・マスタとスレーブは制御フィールドの16
個のMSB(上位16ビット)の値(DATA/−CT
Lを「低」にして送られるデータ)を記録しておき、情
報または仲裁トークンが自分宛に送られてきたものかど
うかを判断し、制御フィールドが32ビット・ワードと
して送られてきたか、2個の16ビット短ワードとして
送られてきたかを判断する。32ビット・マスタとスレ
ーブは、16ビット・スレーブおよびマスタと通信する
とき、16ビット形式を使用する。他の場合と同様に、
マスタは、マスタが通信するスレーブの特性をサポート
し、これらの特性を示したコンテキスト情報をスレーブ
から受信しない。16ビット転送は、制御フィールドの
中のビットによって示される。
【0070】VTCの64ビット電気規格バージョン
は、DATAラインが64本である点を除けば、バス・
ライン定義を32ビット・バージョンと同じにすること
が好ましい。64ビット・デバイスと16ビット・デバ
イス間の相互接続のサポートはオプションである。サポ
ートする場合は、その要件は、16ビット・スレーブと
マスタ間を上述したように相互接続する場合と同じであ
る。64ビット・バージョンのVTCは、32ビット・
バージョンと同じ方法で制御フィールド情報を伝え、そ
の考慮点は16ビット・デバイスと相互接続する場合と
同じである。32ビット制御ワードは32ビット・ワー
ドとして送信されるが、DATA(32−63)は未定
義のままである。共に64データ・ビットをサポートす
るマスタとスレーブは、各クロック・サイクルでデータ
を32ビット・ワードの対として転送する。その順序
は、DATA(0−31)のワードがDATA(32−
63)のワードの前に置かれるようになっている。マス
タは、どのスレーブが64ビット転送をサポートしてい
るかを知っていなければならない。64ビット転送は制
御フィールドの中のビットによって示される。
【0071】VTCおよびVTC−SAのオペレーション 以下では、ライト転送、リード転送、データ転送、およ
びペーシング(歩調合わせ)の好適プロシージャについ
て説明する。
【0072】ライト転送 図4を参照して、好適実施例におけるライト転送につい
て説明する。最初のステップにおいて、転送が進行中で
はないときは、MASTERRDYとSLAVERDY
はインアクティブ(高)になっている。第2ステップに
おいて、前のアクティブ・マスタは、データ・ライン上
の仲裁トークンを次のマスタへ送ることによって、バス
制御権を次のマスタへ引き渡す。トークンは、DATA
/−CTLが低にあるときのDATAライン上の予約さ
れた値セットの1つである。つまり、特殊制御フィール
ドである。前のマスタは、MASTERRDYとDAT
A/−CTLを共に低に駆動することによって、DAT
Aライン上のトークン値と一緒に仲裁トークンを送信す
る。次のマスタは、仲裁トークン制御フィールドの「次
マスタ」サブフィールドが自身のIDと一致しているこ
とを認めると、仲裁トークンを受け取る。この時点で
は、どのデバイスもSLAVERDYを駆動せず、その
値はすべてのマスタによって無視される(SLAVER
DYは、前のスレーブによってインアクティブに駆動さ
れているので、この時点では一般的にインアクティブに
なっている)。第3ステップにおいて、トークンを受け
取ったマスタは、転送を開始するか、あるいは第2ステ
ップと同様にトークンを次のマスタへ引き渡す。第4ス
テップにおいて、新しいアクティブ・マスタはセットア
ップ情報をVTC制御フィールド値の形で、選択したス
レーブ・デバイスへ送信する。この情報は、DATA/
−CTLを低にし、MASTERRDYをアクティブに
してDATAライン上を送信される。このセットアップ
情報は、目標となるスレーブのアドレスを含んでいる。
第5ステップにおいて、スレーブは初期状態ではどのラ
インも駆動していない。第1制御フィールドを通してア
ドレス指定されると、SLAVERDYをアクティブ
(低)に駆動し、その入力FIFOがいっぱいことを確
認して、追加データを受け取る用意があることを通知す
る。制御情報の最初の2ワードがマスタから送信される
と、スレーブはSLAVERDYを使用してデータ・フ
ローを歩調合わせする。第6ステップにおいて、必要と
する制御フィールドがすべてスレーブに渡されると、マ
スタはデータ・ワードのクロックをとってVTC上を送
出する。マスタは各クロック・サイクルごとにMAST
ERRDYをアクティブに駆動し、その時DATAライ
ン上の有効データを駆動する。有効データが準備状態に
ないときは、MASTERRDYをインアクティブに駆
動するので、バス上にアイドル・サイクルが現れる。第
7ステップにおいて、スレーブが受信した制御ワードと
データ・ワードがそのVTC入力FIFOバッファに入
れられる。FIFOバッファがほぼいっぱいになると、
スレーブはSLAVERDYをインアクティブ(高)に
駆動し、マスタがその後の2クロック・サイクルの間、
データ・ワードを書くことを禁止する。第8ステップに
おいて、スレーブは転送されてきたデータを、制御フィ
ールドで指示されたようにアドレスにストアする。第9
ステップにおいて、一度転送が開始されると、マスタと
スレーブは、転送が完了するまで転送の処理を続けなけ
ればならない。第10ステップにおいて、転送が完了し
たとき、マスタはVTCをそのまま保持することも、手
放すこともできる。マスタがVTCを保持するときは、
必要とする制御フィールド(つまり、少なくとも1つ
の、前の転送と異なるフィールド)とそのあとに置かれ
た必要なデータを書くことによって別の転送を行うこと
ができる。マスタは、仲裁トークンを次のマスタへ送る
ことによってVTCを手放す。転送が完了すると、スレ
ーブはSLAVERDYをインアクティブに駆動し、こ
のラインをトライ・ステートにする。
【0073】リード転送 図5を参照して、好適実施例におけるリード転送につい
て説明する。リード転送は、次の例外を除き、ライト転
送と同じである。第一に、マスタからスレーブへ書かれ
る制御フィールドは、リード転送が要求されたことを示
している。第二に、マスタは制御フィールドをスレーブ
へ送った後、MASTERRDYを高に駆動し、DAT
Aラインをトライ・ステートにし、スレーブが応答して
データを返してくるのを待つ。マスタは、少なくとも1
サイクルの間、SLAVERDYがインアクティブにな
るのを待ってから、DATAライン上の値を有効な返却
データであると解釈する。スレーブは少なくとも1サイ
クルの間、SLAVERDYをインアクティブに駆動し
てからデータを送信する。第三に、転送要求に応答して
マスタへ送るべきデータがスレーブにあると、スレーブ
はDATAライン上のデータを駆動し、SLAVERD
Yラインをアクティブに駆動して、有効データがDAT
Aライン上にあることを示す。第四に、マスタはSLA
VERDYがインアクティブであることを検出すると、
データを受け取ることができることに応じて、MAST
ERRDYの駆動を開始する。スレーブは、制御フィー
ルドを受信した後、最初にSLAVERDYをインアク
ティブに駆動した後の最初の2クロック周期の間、歩調
をとる目的で、MASTERRDYの値を無視する。第
五に、スレーブは、DATAライン上に有効データを駆
動する時に、SLAVERDYをアクティブに駆動す
る。送るべき有効データがないと、スレーブはSLAV
ERDYをインアクティブに駆動する。第六に、スレー
ブは、制御フィールドF0中の長さサブフィールド中に
指定されている数と同数のデータ項目(例えば、ピクセ
ル)を送信する。第七に、リード転送が完了すると、マ
スタはMASTERRDYをインアクティブに駆動し、
スレーブはSLAVERDYをインアクティブに駆動す
る。第八に、マスタは、DATA、DATA/−CTL
および関連のMASTERRDYを駆動する前に、SL
AVERDYがインアクティブであることを検出してい
なければならない。第九に、マスタは仲裁トークンを次
のマスタへ送出することによってVTCを手放すか、あ
るいは少なくとも一つの制御フィールドを送信すること
によって別の転送を開始する。
【0074】データ転送プロシージャ スレーブに入力されまたは出力されるデータは、スレー
ブが生成したすべてのローカル・アドレスを用いてその
ローカル・メモリまたはレジスタに入出力される。好適
実施例では、ピクセルのアドレス指定は、水平線セグメ
ントの形で行われるので、単一のピクセルに縮減するこ
とができる。個別データ・ワードまたはピクセルのアド
レス指定は、各転送の開始時に制御フィールドに入れて
送られる開始アドレスおよび他の情報に基づいて、スレ
ーブによって内部で行われる。
【0075】データが転送される前に、該当制御フィー
ルドをスレーブに送らなければならない。これらのフィ
ールドは、マスタおよびスレーブのID、アドレス指定
情報、転送の方向(リードまたはライト)、ならびにそ
の他の情報を収めている。ある種のスレーブの実施例で
は、転送を行うために必要な情報の一部をローカル・メ
モリに置いておき、送信される情報、つまり、マスタ・
デバイスIDまたは転送元ウィンドウID(WID)を
使用して間接的に参照することができる。
【0076】このことは、VTCおよび他のすべてのデ
バイスから見える。
【0077】制御フィールドの送信は、同じバス・タイ
ミングを用いており、データ書込みオペレーションと似
ているが、制御フィールドがバス上を送信されるクロッ
ク・サイクル期間にDATA/−CTLがマスタによっ
て低に駆動される点が異なる。
【0078】同一または異なるスレーブとの間でマスタ
が行うことができる連続転送の数とサイズは、本好適実
施例のアーキテクチャでは、マスタにVTCを許可でき
る最大時間の長さ(クロック・サイクルの数)を制限す
る仲裁行動パラメータだけによって制限される。各転送
のサイズは、0から制御フィールドF0に指定可能な最
大値までであり、これもまた同じ仲裁行動パラメータに
よって制限される。
【0079】歩調合わせ すべてのスレーブは、データと制御情報を受け入れるた
めの入力FIFO機能を備えていることが好ましい。F
IFOのサイズはVTCアーキテクチャでは規定されて
いない。これはスレーブの設計に特有のものである。す
べてのスレーブは、制御フィールドの送信を含めて、す
べてのオペレーション時に特定された歩調合わせメカニ
ズムをサポートできる必要がある。各スレーブが必要と
する総FIFOサイズは、VTC転送要求を引き受ける
ときの内部待ち時間やスピードなどの要因に依存する。
【0080】データ転送は、通常、VTCマスタ・クロ
ックの各サイクル毎に1ワード行われる。アクティブ・
マスタとアクティブ・スレーブのどちらも、バス上の1
または2以上のサイクルを強制的にアイドル・サイクル
にすることによって実効データ・レートを低下させるこ
とが可能である。この作用は、MASTERRDYライ
ンとSLAVERDYラインを使用し、それぞれアクテ
ィブ・マスタとアクティブ・スレーブが駆動することに
よって制御される。どちらのデバイスがこれらの2ライ
ンのどちらを駆動するかの選択は、リード転送とライト
転送のどちらも同じであるが、これらのラインの意味
は、データ・フローの方向によって変化する。
【0081】ライト転送時とマスタによる制御フィール
ドの書込み時に、アクティブ・マスタはMASTERR
DYをアクティブ(低)に駆動して、DATAライン上
で有効データを駆動していることを示す。送信すべき有
効データがないときのように、有効データを駆動しない
ときはいつでも、MASTERRDYをインアクティブ
に駆動する。VTCを手放すときは仲裁トークンを送信
したあと、MASTERRDYを1サイクルの間インア
クティブに駆動し、このラインをトライ・ステートにす
る。制御情報(フィールドF0)の送信によって、スレ
ーブがマスタによってアドレス指定されると、スレーブ
はSLAVERDYを駆動して、マスタが各連続するク
ロック・サイクル期間にデータの送信を続けることがで
きるか、あるいはできないかを示す。ライト転送のバス
・サイクル期間におけるSLAVERDYのアクティブ
(低)は、そのあとに続く次のサイクル期間に送信され
たデータが受け取られることを示している。バス・サイ
クル期間にSLAVERDYの値がインアクティブであ
ることは、そのあとに続くサイクルの次のバス・サイク
ルには有効データが含まれていないので、そのサイクル
期間のDATAライン上の値が無視されることを示して
いる。
【0082】VTCリード転送は、データ・フロー(制
御フィールドではない)の方向が反対になり、同じよう
に、MASTERRDYとSLAVERDYの役割がデ
ータ読取り転送時に反対になる点を除けば、ライト転送
と同じである。スレーブはSLAVERDYをアクティ
ブに駆動して、DATAライン上で有効なデータを駆動
していることを示し、インアクティブに駆動して、有効
データがないことを示す。マスタはMASTERRDY
をアクティブに駆動して、そのあとに続くデータの次の
データ・ワードが受け取られることを示し、インアクテ
ィブに駆動して、その後に続くデータの次のバス・サイ
クルはSLAVERDYをインアクティブにしてアイド
ルにすべきであることを示す。好適実施例では、以上説
明してきたことには、3つの例外がある。第1の例外
は、スレーブが制御フィールドF0を通してアクティブ
・マスタによって初めてアドレス指定されたとき、その
スレーブは、パイプライン遅延が原因で2クロック・サ
イクルの間、SLAVERDYをインアクティブのまま
にできることである。これは、ライト転送の場合にも、
リード転送のときの制御フィールドの書込みの場合にも
適用される。マスタは、これらの2クロック・サイクル
期間にSLAVERDYがアクティブであったものとし
て、制御フィールドとデータの送信を続けることができ
る。またスレーブは、このデータを受信して処理できな
ければならない。第3サイクルから始まって、歩調合わ
せが上述したように行われる。第2の例外は、上記と同
様に、スレーブが要求データを返却する準備状態にある
ときにおいて、制御フィールドがスレーブによって受信
された後のリード転送の開始時にSLAVERDYがイ
ンアクティブにされるとスレーブは、最初のサイクルか
らの2クロック・サイクルの間MASTERRDYの値
を無視することである。従ってマスタは、スレーブから
送られてくるデータを受信して処理できなければならな
い。第3の例外は、仲裁トークンは、SLAVERDY
の値に関係なく送信されることである。これが必要なの
は、この時間の間、SLAVERDYを常にインアクテ
ィブで、トライ・ステートにしておくべきであり、仲裁
トークンがマスタ(スレーブではない)によって受信さ
れるためである。
【0083】リードまたはライト転送が完了すると、ア
クティブ・スレーブは1サイクルの間SLAVERDY
をインアクティブ(高)に駆動し、このラインをトライ
・ステートにする。各転送が終了すると、アクティブ・
マスタはライト転送およびリード転送において説明した
ようにMASTERRDYを駆動する。
【0084】VTCおよびVTC−SA制御フィールド マスタ・デバイスによりスレーブへ送られる制御情報
は、VTC制御フィールドと呼ばれるワードに編成され
ている。これらは、VTC経由の転送を行うために必要
な情報のすべてを収めており、F0,F1,F2などの
ように名前が付けられている。これらの制御フィールド
は図6〜図12に示されており、その説明は以下のとお
りである。
【0085】好適実施例では、仲裁トークンは制御フィ
ールドと同じメカニズムを使用して送信される。各フィ
ールドの最初(上位)の4ビットはフィールドF0〜F
14のIDを指定しており、残りの28ビットはワード
の内容が入っている。4個のMSB(上位ビット)の値
は、Fn制御フィールド名の数字部分に一致している。
仲裁トークンは制御フィールドの特殊ケースであり、独
自の番号15、つまり、‘1111’bをもち、これは
4個のMSBに示されている。
【0086】好適実施例では、3つのフィールド、F
0,F1,F2があり、これらはVTCのオペレーショ
ンを定めるために指定される。マスタにVTCが許可さ
れる毎に、マスタはピクセルの転送を開始するためにこ
れらの3フィールドを送信する(スレーブの場合は、2
4ビットより大きい開始アドレスを必要とするので、2
4個のMSBを指定するためにF3も書く必要があ
る)。F0は必ず最初に書かなければならない。F0は
マスタだけでなく、スレーブのアドレスも収めており、
正しいスレーブが残りのフィールドとデータを受信し
て、それに応答できるようにするために必要である。フ
ィールドが転送で必要のない場合は、例えばピクセルを
含んでいない転送におけるF1は、省略することが可能
である。他のフィールドはどの順序に書くことも可能で
ある。マスタがVTCの制御権を受け取ったとき、マス
タは、マスタまたは別のデバイスが以前に書いていた可
能性のあるフィールドの内容についてなにも想定するこ
とはできない。アドレス指定したデバイスとの間で転送
を行うために必要なフィールド値がある場合は、マスタ
がその値を送信してからでなければ、どの転送を行うこ
ともできない。
【0087】マスタは該当のVTC制御フィールドを書
いたあと、データ転送を開始する。その転送が完了した
あと、マスタは別の転送を開始することができる。この
ように転送を連続して開始するには、マスタは少なくと
も1つのVTC制御フィールドを送信しなければならな
い。後続の転送が別のスレーブに対するものである場合
は、F0が他の制御フィールドの前に置かれていなけれ
ばならない。後続の転送が同じスレーブに対するもので
ある場合は、フィールドはどの順序であっても構わな
い。送信されないフィールドには前の値が暗黙的に残っ
ている。短い転送を多数行うときのパフォーマンスを最
大にするために、マスタは、値が変更されたフィールド
(例えば、開始アドレス)だけを送信することを選択す
ることが可能である。
【0088】F0制御フィールド 以下では、図6を参照してこの制御フィールドについて
説明する。好適実施例では、制御フィールドのビットは
次のとおりである。
【0089】ビット0−3:(4ビット)フィールドI
D=‘0000’b(F0を表す)。すべてのビットが
すべてのスレーブによってデコードされる。
【0090】ビット4:32ビット制御フィールド。こ
のビットが‘1’のときは、この制御フィールドが単一
32ビット・ワードとしてVTC上に与えられることを
示す。‘0’のときは、このフィールドが2つの連続す
る16ビット・ハーフ・ワードとして与えられることを
示す。
【0091】ビット5:R/−W(リード/ライト)転
送。このビットが‘1’のときは、リード転送が後に続
くことを示す。‘0’のときは、ライト転送であること
を示す。ビット6:32ビット転送。このビットが
‘1’のときは、後続の転送がDATAライン0〜31
を使用することを示す。‘0’のときは、DATAライ
ン0〜15が使用され、DATAライン16〜31は無
視されること(“don’t care”)を示す。1
6ビット構成では、‘0’にセットしておかなければな
らない。
【0092】ビット7:64ビット転送。このビットが
‘1’のときは、後続の転送がDATAライン0〜63
を使用することを示す。‘0’のときは、「32ビット
転送」の値に応じて、DATAライン0〜31または0
〜15が使用され、残りのDATAライン(16〜6
3)または(32〜63)は無視されることを示す。制
御フィールドはDATAライン(32〜63)を使用し
ない。このビットは、32ビット構成と16ビット構成
では‘0’にセットしておかなければならない。
【0093】ビット8−11:(4ビット)スレーブI
D。アドレス指定するスレーブ・デバイスの4ビット・
アドレスを指定する。
【0094】ビット12−15:(4ビット)マスタI
D。この制御フィールドを書いて後続の転送を行う、マ
スタ・デバイスの4ビット・アドレスを指定する。
【0095】ビット16、17:アドレス指定モード。
F2(およびF3)に指定された開始アドレスの意味を
指定する。
【0096】00:ピクセル・モード。開始アドレス
は、ビット・マップ・ウィンドウのベースを基準とした
ピクセルであり、Length(長さ)はピクセル・カ
ウントである。「ビット・マップ」は、アダプタとウィ
ンドウ環境に応じて、スクリーン全体または特定のウィ
ンドウを意味する。ピクセル・カウントとワード・カウ
ントとの関係はFormat(書式)で指定する。
【0097】01:絶対データ・モード。開始アドレス
は、アダプタ・メモリのベースを基準としたバイトであ
り、length(長さ)はバイト・カウントである。
データ・ワード当たり4バイト(最大Lengthの合
計まで)がある。MBS(ビット0−7)が最初であ
る。ウィンドウID、フレーム・バッファID、書式、
クリップおよびストライドは、このモードでは無視され
る。
【0098】10:予約済。
【0099】11:レジスタ・モード。開始アドレス
は、アダプタのレジスタ・アドレス空間のベースであ
る。その他は、絶対データ・モードと同じである。
【0100】ビット18−31:(14ビット)Len
gth(長さ)。そのあとに続く転送の長さをピクセル
数またはバイト数で指定する。上述のアドレス指定モー
ドを参照。Lengthは符号なし2進整数であり、そ
の範囲は0から2**14−1(2の14−1乗)でで
ある。Length=0のときは、転送データ(F0で
はクリップ、R/−W、アドレス指定モード、F1では
64ビット転送、32ビット転送、F2とF3では開始
アドレス)を記述するパラメータは未定義であるので、
その値は無視される(“don’t care”)。
【0101】F1制御フィールド 図7を参照して、この制御フィールドについて説明す
る。好適実施例では、制御フィールドのビットは次のと
おりである。
【0102】ビット0−3(4ビット)フィールドID
=‘0001’b(F1を表す)。
【0103】ビット4:32ビット制御フィールド。
‘1’のときは、この制御フィールドが単一の32ビッ
ト・ワードとしてVTC上を送られることを示す。
‘0’のときは、このフィールドが2つの連続する16
ビット・ハーフ・ワードとして送られることを示す。
【0104】ビット5:クリップ。このビットが‘1’
のときは、転送されるデータがメモリに書かれないピク
セルを含んでいる場合があり、スレーブは内部でクリッ
ピングを行う必要があることを示す。‘0’のときマス
クは、必要なクリッピングがマスタによって行われたの
で、スレーブは内部クリッピングを行う必要がないこと
を示す。このビットは、ピクセル・アドレス指定モード
のライト転送の場合にだけ定義される。
【0105】ビット6:予約済。マスタは‘0’と書い
ておかなければならない。スレーブは無視しなければな
らない。
【0106】ビット7:ストライド。‘1’のときは、
スレーブは、開始アドレスから始まって、2ずつインク
リメントするアドレスに転送ピクセルをストアする。
‘0’のときは、アドレスは転送されるピクセルごとに
1ピクセルずつインクリメントする。ピクセル・モード
のライト転送の場合だけ定義される。その他の場合は、
マスタは‘0’と書いておかなければならない。
【0107】ビット8−15:(8ビット)FB I
D:フレーム・バッファID。このピクセル・アドレス
のどのバッファをアドレス指定するかを指定する。2つ
以上のバッファをもつディスプレイ・アダプタの場合に
有用である。この値はスレーブに特有のものである。
【0108】ビット16−23:(8ビット)WID:
ウィンドウID。スレーブで使用されるウィンドウID
値を指定する。どのウィンドウがアドレス指定されるか
を示している。この値はスレーブに特有のものであり、
必ずしも、ウィンドウ管理ソフトウェアで使用されるW
ID値と同じである必要はない。スレーブが直接に、あ
るいは間接に使用して、このウィンドウまたは他のウィ
ンドウのピクセルを保護することができる。
【0109】ビット24−31:(8ビット)Form
at(形式):ピクセルのデータ書式であり、ピクセル
当たりのビット数およびワード当たりのピクセル数が含
まれる。データ書式はピクセル転送の場合にのみを意味
する。つまり、アドレス指定モードがF1=0x00の
ときだけである。他のアドレス指定モードの場合は、ピ
クセルのデータ形式は適用外である。データ形式につい
ては、あとで詳しく説明する。
【0110】F2制御フィールド 図8を参照して、この制御フィールドについて説明す
る。好ましくは、制御フィールドのビットは次のとおり
である。
【0111】ビット0−3:(4ビット)フィールドI
D=‘0010’b(F2を表す)。
【0112】ビット4:32ビット制御フィールド。
‘1’のときは、この制御フィールドが単一32ビット
・ワードとしてVTC上に与えられることを示す。
‘0’のときは、このフィールドは2つの連続16ビッ
ト・ハーフ・ワードとして与えられることを示す。
【0113】ビット5−7:予約済。マスタは‘00
0’と書いておかなければならない。スレーブは無視し
なければならない。
【0114】ビット8−31:(24ビット)開始アド
レス。上記のF1に指定されたアドレス指定モードに応
じて、ピクセル数またはバイト数で指定する。転送に必
要な開始アドレスの長さが24ビットをこえている場合
は、F2は最下位24ビットを収めている。
【0115】F3制御フィールド 好適実施例では、F3はオプションである。これが使用
されるのは、開始アドレスを指定するのに24ビット以
上を必要とするスレーブをアドレス指定するときだけで
ある。以下では、図9を参照して、この制御フィールド
について説明する。好適実施例では、制御フィールドの
ビットは次のとおりである。
【0116】ビット0−3:(4ビット)フィールドI
D=‘0011’b(F3を表す)。
【0117】ビット4:32ビット制御フィールド。
‘1’のときは、この制御フィールドが単一32ビット
・ワードとしてVTC上にあたえられることを示す。
‘0’のときは、このフィールドは2つの連続16ビッ
ト・ハーフ・ワードとして与えられることを示す。
【0118】ビット5−7:予約済。マスタは‘00
0’と書いておかなければならない。スレーブは無視し
なければならない。
【0119】ビット8−31:(24ビット)開始アド
レス。上記のF1に指定されたアドレス指定モードに応
じて、ピクセル数またはバイト数で指定する。上位24
ビットはF3の内容と結合されて、48ビットの開始ア
ドレスが得られる。
【0120】F4制御フィールド F4は、デバイス間で特定のステータス情報を通知する
ために使用される。これは、データ転送を開始する場合
には不要である。通知転送は、Length=0のF0
だけからなる場合と、F0とF4からなる場合とがあ
る。この場合、マスタは代表的なデータ転送でアドレス
指定されるスレーブと同じデバイスにすることが可能で
ある。以下では、図10を参照して、この制御フィール
ドについて説明する。好ましくは、制御フィールドのビ
ットは次のとおりである。
【0121】ビット0−3:(4ビット)フィールドI
D=‘0100’b(F4を表す)。すべてのビットが
すべてのスレーブによりデコードされる。
【0122】ビット4:32ビット制御フィールド。
‘1’のときは、この制御フィールドが単一32ビット
・ワードとしてVTC上に与えられることを示す。
‘0’のときは、このフィールドが2つの連続16ビッ
ト・ハーフ・ワードとして与えられることを示す。
【0123】ビット5:コマンド:FB IDへスイッ
チ。‘1’のときは、マスタは、WIDで指定されたウ
ィンドウIDをFB IDで指定されたフレーム・バッ
ファIDへスイッチするようにスレーブに指示する。こ
れらのフィールドはフィールドF1で定義されているも
のと同じ意味をもっている。「スイッチ」とは、スレー
ブからのディスプレイまたは他の出力で使用されるFB
IDをスイッチすることを意味し、データ転送で行わ
れるアドレス指定とアクセスには影響しない。‘0’の
ときは、コマンドの指定がないものとみなされる。
【0124】ビット6:ステータス:FB IDへのス
イッチ完了。‘1’のときは、マスタは、フレーム・バ
ッファへのスイッチが完了したことをスレーブに通知
し、その意味は上記コマンドと同じである。この場合の
マスタを、上記のコマンドの場合にアドレス指定される
スレーブと同じデバイスにすること、およびその逆にす
ることが可能である。‘0’のときは、ステータスの指
定がないものとみなされる。
【0125】ビット7:ステータス:FB IDへの退
避(drawing)完了。このビットが‘1’のとき
は、マスタは、退避が完了し、WIDで指定された個所
のフレーム・バッファFB ID中で一時的に中止され
ていることを通知する。これは、スレーブが競合するこ
となく、この個所(FB IDとWID)を読み書きで
きることをスレーブに通知するために使用される。この
場合のマスタを上記のコマンドの場合にアドレス指定さ
れるスレーブにすること、およびその逆にすることが可
能である。‘0’のときは、ステータスの指定がないも
のとみなされる。
【0126】ビット8−15:(8ビット)FB I
D。通知されたフレーム・バッファのID番号。意味は
フィールドF1の場合と同じである。
【0127】ビット16−23:(8ビット)WID。
通知されたウィンドウID番号。意味はフィールドF1
の場合と同じである。
【0128】ビット24−31:(8ビット)予約済。
マスタは‘0’と書いておかなければならない。スレー
ブは無視しなければならない。
【0129】F5制御フィールド F5は、デバイス間で特定のタイミング情報を通知する
ために使用される。これは、データ転送を開始する場合
には不要である。通知転送は、Length=0のF0
だけからなる場合と、F0とF5からなる場合とがあ
る。この場合のマスタは代表的なデータ転送でアドレス
指定されるスレーブと同じデバイスにすることが可能で
ある。以下では、図6Fを参照して、この制御フィール
ドについて説明する。好ましくは、制御フィールドのビ
ットは次のとおりである。
【0130】ビット0−3:(4ビット)フィールドI
D=‘0100’b(F5を表す)。すべてのビットは
すべてのスレーブでデコードされる。
【0131】ビット4:32ビット制御フィールド。
‘1’のときは、この制御フィールドが単一32ビット
・ワードとしてVTC上に与えられることを示す。
‘0’のときは、このフィールドは2つの連続16ビッ
ト・ハーフ・ワードとして与えられることを示す。
【0132】ビット5−16:(12ビット)予約済。
マスタは‘0’と書いておかなければならない。スレー
ブは無視しなければならない。
【0133】ビット17:偶数/奇数。‘1’のとき
は、マスタは、「VBI開始」(ビット18)がインタ
レース形式でそのあとに続く偶数フィールドを参照する
ことを通知する。‘0’のときは、マスタは、奇数フィ
ールドが参照されることを通知する。非インタレース・
システムは‘1’と書いておかなければならない。ビッ
ト18が‘0’のときは、このビットは未定義であるの
で、スレーブは無視しなければならない。
【0134】ビット18:VBI開始。‘1’のときマ
スタは、そのディスプレイ機能の垂直ブランク・インタ
ーバル(VBI)が最近開始されたことを通知する。イ
ンタレース・システムでは、あとに続くフィールドが偶
数であるか、奇数であるかは、ビット17で示される。
‘0’のときは、ステータスが指定されていない。
【0135】ビット19:ライン開始。‘1’のとき
は、マスタは、ラインの表示が最近開始されたことを通
知する。参照されるラインはライン番号ビット(20−
31)に示されている。‘0’のときは、ステータスが
指定がされていない。
【0136】ビット20−31:(12ビット)ライン
番号。最近表示を開始したものとしてビット19で参照
されるライン番号を示す。番号付けは、非インタレース
・システムでは、最初に表示されるラインを‘0’とし
て開始する。
【0137】F6−F14制御フィールド 好適実施例では、これらの制御フィールドは将来の使用
に備えて予約されている。マスタは、これらの制御フィ
ールドを使用してはならない。
【0138】仲裁トークン(F15) 以下では、図6Fを参照してこの制御フィールドについ
て説明する。好適実施例では、制御フィールドのビット
は次のとおりである。
【0139】ビット0−3:(4ビット)フィールドI
D=‘1111’b(仲裁トークン(F15)を表
す)。
【0140】ビット4:32制御フィールド。‘1’の
ときは、この制御フィールドが単一32ビット・ワード
としてVTC上に与えられることを示す。‘0’のとき
は、このフィールドは2つの連続16ビット・ハーフ・
ワードとして与えられることを示す。
【0141】ビット5−7:予約済。マスタは‘00
0’と書いておかなければならない。スレーブは無視し
なければならない。
【0142】ビット8−15:(8ビット)次マスタI
D。ビット(12−15)は、仲裁トークンが送られる
マスタのIDである。ビット(8−11)は予約済であ
り、0にしておかなければならない。デバイスはビット
(8−11)=‘0000’を含む全8ビットをデコー
ドしなければならない。
【0143】ビット16−23:(8ビット)前マスタ
ID。ビット(20−23)は、仲裁トークンを送るマ
スタのIDである。ビット(16−19)は予約済であ
り、0にしておかなければならない。デバイスはビット
(16−19)=‘000’を含む全8ビットをデコー
ドしなければならない。
【0144】ビット24−31:予約済。マスタは0を
送信しなければならない。スレーブは無視しなければな
らない。
【0145】VTCおよびVTC−SAの仲裁 VTCの仲裁機能はラウンド・ロビン方式になってお
り、これは行動パラメータによって変更される。ラウン
ド・ロビンは、トークン・パッシング・メカニズムによ
って行われる。現在アクティブのVTCマスタデバイス
がバスを手放すときは、本明細書で「ネクスト・レデ
ィ」(Next Ready)と呼ぶ別のマスタに仲裁
トークンを送る。トークンの受取側、つまり、宛先は、
IDがトークンを受け渡すマスタによって指定されたマ
スタである。マスタの各々におけるトークン宛先の値
は、オペレーション状態にあるすべてのマスタが論理的
リング内に置かれ、リングを通る各サイクルごとに一
回、トークンがすべてのマスタを通過するように、ソフ
トウェアによって配置されている。別の実施例では、実
装されたスケジューリング・アルゴリズムに従って異な
るマスタにトークンを渡すことも可能である。
【0146】トークンを受け取る側のマスタがVTCを
使用する必要がないとき、あるいはそのときVTCを使
用することが禁止されていた(仲裁行動パラメータによ
って)場合は、論理的リング内の次のマスタへトークン
を渡す。仲裁トークンの初期設定は、各デバイスがテス
トされたあと行われ、そのトークン宛先とスケジューリ
ング行動でプログラムされる。その時点でトークンがシ
ステムにないときは、仲裁トークンを送るようにソフト
ウェアによって任意のマスタ・デバイスが指示され、仲
裁トークンの論理的リング・メカニズムを初期設定する
ことができる。VTCデバイス内のタイムアウト例外条
件検出機能は、初期設定前に禁止される。
【0147】VTC−SAでは、ホスト(グラフィック
ス)アダプタは、可能とされるVTCデバイスの各々へ
トークンの送出を開始し、各デバイスがその応答として
初期設定確認ができるようにする。各デバイスが以後の
初期設定作業を行うためには、デバイスはCPUからV
TC経由で送られてきたデータを受信する必要があり、
応答は同じメカニズムを使用してVTC経由で返送され
る。
【0148】ラウンド・ロビン・アクションを変更する
行動パラメータは、各マスタにVTCが許可されたあと
VTCを保持できる最大時間量と、以前に許可を得たあ
と、再び同じマスタがVTCの許可を得ることができる
までの最小待ち時間がある。これらの時間量は、VTC
クロック信号のサイクル数で指定する。これらは、各マ
スタ・デバイスのレジスタに指定される。
【0149】仲裁行動の制限は、ソフトウェアによっ
て、あるいはデバイス設計によって設定された行動ルー
ルによって課される。マスタデバイスがどれだけの時間
VTCの制御権を保持できるかについては、電気的に
も、物理的にも、内在的制限はない。
【0150】好適実施例では、アクティブ・マスタとス
レーブは、あるイベント(事象)が起こったときに指定
された時間制限内に、ある種のアクションをとらなけれ
ばならない。すべての制限は、クロック信号のサイクル
単位になっている。第一に、仲裁トークンを受け取った
とき、マスタは例えば(2)サイクル以内に転送を開始
するか、あるいは例えば(2)サイクル以内にトークン
を次のマスタへ渡さなければならない。第二に、転送が
完了したとき、マスタは例えば(2)サイクル以内にト
ークンを送信するか、あるいは別の転送を開始しなけれ
ばならない。第三に、フィールドF0でアドレス指定さ
れたとき、アクティブ・スレーブは例えば(10)サイ
クル以内にSLAVERDYをアクティブにして応答し
なければならない。
【0151】起こり得る例外条件によっては、注意が必
要になるものもある。第一は、トークンを受け取ったと
き、マスタが転送を開始したり、トークンを渡したりし
ない場合である。第二は、転送を完了したとき、マスタ
がトークンを送信できない場合である。第三は、転送が
完了しなかったとき、マスタがトークンを送信した場合
である。第四は、アクティブ・マスタでないとき、マス
タがトークンを送信した場合である。第五は、リード転
送またはライト転送において、スレーブがF0でアドレ
ス指定されたとき、それに応答しない場合である。第六
は、正しくないデータまたは制御フィールドの値がスレ
ーブによって受信された場合である。第七は、実際の送
信長さがF0のLengthフィールドに一致していな
い場合である。第八は、VTCバス経由で受信した値が
送信されたものと同じでない場合である。
【0152】どのマスタまたはスレーブも、いくつかの
例外条件を検出できるようにすることが可能である。転
送またはトークン・パッシングに参加していないデバイ
スによって検出できる条件としては、次のものがある。
第一は、仲裁トークンが送信されたが、次のマスタがク
ロック・サイクルの好適時間制源内に応答しない場合で
ある。第二は、クロック・サイクルの好適制限をこえて
MASTERRDYがインアクティブにある間、仲裁ト
ークンが送信されない場合である。第三は、仲裁トーク
ンが送信されたあと制御フィールドが送信される前にデ
ータが送信された場合である。第四は、「前の」マスタ
が前の「次の」マスタと同じでない場合に仲裁トークン
が送信された場合である。第五は、FOでアドレス指定
されたあと、スレーブがクロック・サイクルの好適制源
内にSLAVERDYをアクティブに駆動しなかった場
合である。第六は、SLAVERDYが転送期間にクロ
ック・サイクルの好適制限をこえて(‘Length’
項目が転送される前)インアクティブであった場合であ
る。第七は、いずれかの転送期間に(SLAVERDY
をアクティブにして)‘Length’データ項目より
多い項目が生成された場合である。
【0153】グラフィックス・アダプタ VTC−SA接続デバイスのホストの働きをするグラフ
ィックス・アダプタはVTC−SAの好適実施例を実現
するためには、ある種の機能を特定の方法で実行しなけ
ればならない。グラフィックス・アダプタは、指定され
た機能のほかに、VTCを通してそのディスプレイ・バ
ッファをアクセスできるようになっていなければならな
い。ディスプレイ・バッファをアクセスする機能の説明
は、ここでは省略する。代表例として、グラフィックス
・アダプタはディスプレイ・バッファをアクセスVTC
スレーブとして働く。
【0154】ローカル・バッファ メイン・メモリ中の出力(Out)バッファは、そのあ
とでデータをVTC経由でVTCデバイスが取得する前
にシステム・バス上でシステム・メモリから取得したデ
ータをストアしておくためのものである。メイン・メモ
リ中の入力(In)バッファは、データがシステム・バ
スを経由してシステム・メモリに書かれる前にVTC経
由でVTCデバイスから送られてきたデータをストアし
ておくためのものである。これらのバッファの各々は、
少なくとも32バイト(8ワード)長であることが好ま
しい。原理的には、もっと小さいバッファも可能である
が、バッファを小さくすると、システム・パフォーマン
スが低下することになるので、望ましくない。入力バッ
ファと出力バッファは、それぞれ2つの異なるプロセ
ス、つまり、バス・インタフェースとVTCインタフェ
ースによりアクセスできるが、これらは、同時デュアル
・ポート読み書きアクセスをサポートする必要はない。
【0155】これらの2つのバッファは、各々に関連す
るカウント・レジスタをもっている。出力(Out)カ
ウント・レジスタは、出力バッファに入れることができ
るデータの量を示している。入力(In)カウント・レ
ジスタは、入力バッファに入れることができるデータ空
間の量を示している。これらのレジスタはどちらも、V
TC経由で読み取ることができる。バッファのアドレス
指定方式は、いろいろな方法が可能である。カウント・
レジスタは、単一ポート・バッファに実際の現アドレス
を格納するようにすることも、独立のリード(Rea
d)ポインタとライト(Write)ポインタとの差を
格納するようにすることもできる。
【0156】システム・バス・インタフェース 本発明が目的とするVTC−SAの応用例では、グラフ
ィックス・アダプタはCPUバス上のバス・マスタにな
っている。グラフィックス・アダプタは、VTC−SA
をサポートするために専用化された2つのシステム・キ
ュー(待ち行列)をアクセスする。そのために、グラフ
ィックス・アダプタは、これらのキューをポイントする
2組のポインタをボード上に有する。これらのポインタ
の代表的なものは、各キューのトップ、ボトム、リー
ド、およびライト位置を指しているので、キューごとに
4つのレジスタが必要である。レジスタのサイズは、シ
ステム設計によって決まる。ポインタは実メモリ・アド
レスを使用する。
【0157】グラフィックス・アダプタ上のシステム・
キュー・ポインタを用いて、グラフィックス・アダプタ
は、各キューに残っているデータ量とスペース量を容易
に確かめることができる。また、これらのポインタ・レ
ジスタをソフトウェアで調べて、各キューに残っている
スペース量とデータ量を確かめることもできる。
【0158】グラフィックス・アダプタは、キュー・バ
ス・マスタのアクティビティを禁止するプログラム機能
を有することが必要である。これが必要とされるのは、
バス・マスタのアクティビティが必要であるとグラフィ
ックス・アダプタに誤って通知しないようにシステムが
システム・キュー・ポインタをリダイレクトして、正し
くないアドレス範囲がアクセスされるのを防止するため
である。
【0159】好適実施例では、VTC−SAをサポート
するキューの中のすべてのデータが32ビット(1ワー
ド)の整数倍になっており、ワード全体の境界、つま
り、4の整数倍のバイト・アドレス上に境界合わせされ
ていれば、その実現は簡単である。グラフィックス・ア
ダプタは、VTC−SAの両方のシステム・キューにお
いてこの定数の後に続いて置かれているデータを頼るこ
とができるので、バイト回転などを行う必要がない。こ
のバイト回転などは、任意的なアドレスが許容される場
合に必要になるものである。
【0160】システム・バス・マスタであり、バス・マ
スタの権限を使用してVTC−SAキューとバッファを
管理するグラフィックス・アダプタはそれがサポートす
るように設計されている他のプロセスのほかに、VTC
−SAの目的のために2つのプロセスをサポートしてい
る。これらとしては、出力バッファをいっぱいに保ち、
関連の出力キューを空に保つプロセスおよび入力バッフ
ァを空に保ち、関連の入力キューをいっぱいに保つプロ
セスがある。
【0161】手順としては、グラフィックス・アダプタ
は、システム・キューおよびVTC−SAオンボード・
バッファを次のように管理する。出力バッファに利用可
能なスペースがあり、出力キューに利用可能なデータが
あると、グラフィックス・アダプタはシステム・バスの
仲裁を試みる。仲裁が許可されると、グラフィックス・
アダプタは、バッファ中のスペース量とキュー中のデー
タ量のうち少ない方を、バス許可期間のリミットまでキ
ューからバッファへ転送する。
【0162】入力バッファに利用可能なデータがあり、
入力キューに利用可能なスペースがあると、グラフィッ
クス・アダプタはシステム・バスの仲裁を試みる。仲裁
が許可されると、グラフィックス・アダプタは、バッフ
ァ中のデータ量とキュー中のスペース量のうち少ない方
を、バス許可期間のリミットまでバッファからキューへ
転送する。
【0163】バッファが単一ポートであり、システム・
バスが許可された時点で必要とするバッファがVTCア
クティビティで使用中であれば、グラフィックス・アダ
プタは、バスおよびバス・インタフェース回路の設計に
応じて、バス・アクティビティを中止または歩調合わせ
する必要がある。
【0164】出力キューからのデータ読取りが完了する
と、出力キューのリード・ポインタはグラフィックス・
アダプタによって更新される。これにより、CPUは出
力キュー中の利用可能な新しい空間の量を判断すること
ができる。これと同時に、グラフィックス・アダプタは
出力バッファに関連する利用可能なデータ・カウントを
更新し、VTCデバイスがこのバッファ中の利用可能な
データ量を判断できるようにする。
【0165】入力キューへのデータ書込みが完了する
と、入力キューのライト・ポインタはグラフィックス・
アダプタによって更新される。これにより、CPUは入
力キュー中の利用可能な新しい空間の量を判断すること
ができる。これと同時に、グラフィックス・アダプタは
入力バッファに関連する利用可能な空間のカウントを更
新し、VTCデバイスがこのバッファ中の利用可能なデ
ータ量を判断できるようにする。
【0166】入力バッファ中に利用可能なデータがある
かどうか、あるいは出力バッファ中に利用可能な空間が
あるかどうか、その結果、システム・バス・アクティビ
ティが必要であるかどうかの判断は、カウンタ・レジス
タまたは同じような機能をもつ他の回路に基づいて行わ
れる。この判断は、それぞれ入力バッファまたは出力バ
ッファとの間のアクティブVTC転送が完了がしたあと
行うべきである。その理由は、そのようにしないと、転
送量の見積もりを行うのが早すぎるために、システム・
バス・マスタが通常のバーストよりも少ない量のデータ
を転送し、その結果システム・バスの使用効率が低下
し、場合によっては、VTCの使用効率が低下し、待ち
時間が増加するためである。
【0167】例えば、入力バッファが初期状態において
空であり、VTCデバイスが32バイト(8ワード)の
転送を開始する場合は、グラフィックス・アダプタのバ
ス・マスタは、8ワードすべてが入力バッファに置かれ
るまでは転送を開始してはならない。この結果は、VT
C転送が完了するまでバス仲裁が開始されないようにす
れば、保証される。
【0168】これと同時に、重要なケースとして、シス
テム・バス上またはVTC上を転送されるデータ量が8
ワード未満である場合がある。つまり、例えば、32バ
イトの倍数のデータ・ストリームであることが保障され
ない場合がある。バッファとの間の現在のVTC転送が
完了したとき、システム・バス・インタフェースは、そ
の結果通常のバーストよりも短いシステム・バス転送と
なる場合であっても、以後のVTC転送を待つことな
く、バッファの全内容を処理しなければならない。さも
ないと、少量の重要データに許容し得ない待ち時間が生
じることになる。
【0169】グラフィックス・アダプタは、バス・マス
タ権限機能の使用を争奪する複数の内部タスクを有する
場合があるため、仲裁方式が必要になる。VTC−SA
キューおよびバッファ管理プロセスは、グラフィックス
・アダプタのバス・マスタ権限内で最高優先度のタスク
である必要がある。これは、VTC補助データが通常リ
アルタイムであり、バッファ・オーバフローまたはアン
ダフローを避けるために達成しなければならないデッド
ラインがあり、頻繁なサービスが必要であるという事実
に基づくものである。同様に、グラフィックス・アダプ
タには、CPUバスまたはマイクロ・チャネル上で高い
優先度をもたせて、タイムリーなサービスを保障する必
要がある。この場合も、これは、頻繁なサービスが必要
なためである。
【0170】同様に、システム・キューを管理するソフ
トウェアは実行頻度を高くする必要があるので、高い優
先度あるいは保障された高いスケジューリング頻度を有
する。
【0171】グラフィックス・アダプタからCPUに割
込みをかける必要性は、一般的には確立されていない。
これはシステムに依存するパフォーマンス上の問題であ
り、この一般的アーキテクチャの範囲をこえている。例
えば、出力キューが空であること、あるいは入力キュー
がいっぱいであることを通知するといった、割込みはキ
ューのサービスをタイムリーに行うことを保証するため
に、ある種のソフトウェア・アーキテクチャで有用であ
る。
【0172】システム・データ・バッファを指すポイン
タを含めることによって、間接的処置(indirec
tion)レベルを利用するキューを実装することが可
能である。これは、VTCインタフェースには影響しな
い。
【0173】VTCインタフェース 好適実施例では、補助データがグラフィックス・アダプ
タとVTCデバイスとの間で受け渡しされる転送におい
ては、グラフィックス・アダプタはVTCスレーブとし
て働く。
【0174】出力バッファからデータを取り出す場合
は、VTCデバイスはマスタとして働く。データを取り
出す前に、VTCデバイスはVTCを介して出力カウン
ト(Out Count)レジスタを読み取って、出力
バッファにデータがどれだけ残っているかを判断する。
その時点で(またはあとで)、VTCデバイスは、受信
した出力カウント・レジスタ値に指定されたデータ量ま
でのリード転送を、グラフィックス・アダプタからVT
C経由で行うことができる。出力バッファは、VTCデ
バイスによってFIFOとして扱われる。従って、固定
開始アドレスがそのような転送のために用いられる。
【0175】インバウンド・データの送信も同じように
行われる。すなわち、VTCデバイスはVTCの制御権
を受け取り、グラフィックス・アダプタから入力カウン
ト(In Count)レジスタを読み取る。そのあ
と、受信した入力カウント値に示されたデータ・スペー
ス量までのライト転送をグラフィックス・アダプタに対
して行うことができる。出力転送の場合と同様に、入力
バッファ・ライト転送でも固定アドレスが使用される。
【0176】入力バッファおよび出力バッファのカウン
ト・レジスタは、32ビット・ワードの個数またはデー
タもしくはスペースのうち、該当するものを符号なし2
進整数で示している。これらの各々は、単一VTCワー
ド内の16ビット・フィールドに置かれている。
【0177】通常は、グラフィックス・アダプタは、カ
ウント・レジスタ内の有意情報用として4〜6ビットだ
けを必要とする。より上位の定数ビットはゼロとしてお
くべきである。例えば、8ワード・バッファのときは、
取り得る値は0〜8までの9個であるので、4ビットが
必要である。
【0178】カウント・フィールドは32ビット・ワー
ドの個数を示しているが、メモリ・アドレス指定および
レジスタ・アドレス指定モードでのVTC転送では、長
さをバイト・カウントで指定している。VTCのバイト
・カウントは、他のアプリケーションでも使用できる。
補助的なデータ転送を行うVTCデバイスは、上記の長
さフィールドからVTC F0制御ワード内の長さフィ
ールドに変換するとき、その差、つまり、係数4を考慮
に入れる。
【0179】入力および出力カウント・レジスタならび
に入力および出力バッファの上記機能を実行するため
に、VTC上に2つのアドレスが指定される。入力カウ
ント・レジスタと出力カウント・レジスタは、上述した
ように、カウント・フィールドの1つのリード転送とし
てアクセスされる。一実施例では、カウント・レジスタ
は、現在予約済になっているアドレス・モード‘10’
と開始アドレス‘0’にマップされる。入力と出力バッ
ファは同じアドレスを用いてアクセスされる。出力はリ
ード転送を使用し、入力はライト転送を使用する。別の
実施例では、入力と出力バッファは、アドレス・モード
‘11’、レジスタ・モード、および開始アドレス
‘0’にマップされる。上記実施例の両方が用いられる
場合は、そのような転送時にVTCの開始アドレス・フ
ィールド(F2)を完全に無視できるので、VTC上の
オーバヘッドが最小になる。
【0180】グラフィックス・アダプタは、VTC−S
Aホスト・アダプタを実現するために、非常に基本的な
VTCマスタ機能を必要とする。その機能とは、仲裁ト
ークンを指定したVTC IDへ送信し、仲裁トークン
を受信した時それを同じVTC IDへ継続的に再送す
るか、あるいはその受信時にVTC仲裁トークンを中止
し、トークンを受信したことをシステムに通知する機能
である。これらの機能により、システムは、どのVTC
IDがデバイスを導入しているかを判断して、すべて
のVTCデバイスを初期設定することができる。定常状
態のオペレーションでは、初期化が終わると、グラフィ
ックス・アダプタは、他のVTCマスタ・アクティビテ
ィを実行することなく、トークンが受信されるたびにト
ークンを指定したIDへ継続的に再送する。VTC−S
Aの要求を越える他の理由からVTCマスタ機能が必要
であれば、その機能をグラフィックス・アダプタに組み
入れることが可能である。
【0181】VTCは本来的にマスタとスレーブの双方
によるすべての転送の歩調合わせを行うが、バス効率と
システム・パフォーマンスを維持するために、補助デー
タ転送のパフォーマンスを向上するための機能も含まれ
ている。
【0182】カウント・レジスタの読取りは、できる限
り高速に完了させる必要がある。カウント・データ値を
アクティブな状態でVTC上に送出する前に、グラフィ
ックス・アダプタがVTCラインのSLAVERDYを
ノン・レディ(non−ready)状態に保持したま
ま、VTCクロック・サイクルを通過させることが可能
である。出力バッファからのリード転送では、アクティ
ブな返却データをVTC上に送出し始める前にVTCク
ロック・サイクルをノン・レディ状態にすることが可能
である。そのあと、要求されたリード転送データは、2
クロック・サイクル当たり1ワードの割合で、あるいは
もっと高速に転送する必要がある。16ビットVTCで
は、これは各クロック・サイクルごとに1個のハーフ・
ワードが転送されることを意味する。32ビットVTC
では、これは、最大でも1個のノン・レディ・サイクル
との交互に発生するサイクルで1ワードが転送されるこ
とを意味する。入力バッファへライト転送するときに必
要なタイミング条件も同じである。つまり、VTCマス
タ・デバイスは、VTC制御フィールドを書いた直後に
データを書き始めることができる。グラフィックス・ア
ダプタ(VTCスレーブ)はいくつかのノット・レディ
・サイクルを発生することができる。これらは、そのよ
うな期間に転送されるワード数に例えば3を加えたもの
までに制限しておく必要がある。上記には例外がある。
それは、グラフィックス・アダプタのVTC FIFO
が直前のディスプレイ・バッファをアクセスするVTC
転送ですでに占有されている場合である。グラフィック
ス・アダプタは、指定された値よりも大か等しいインタ
ーバルが、カウント・レジスタの連続する読取りの間に
存在するものと想定することができる。
【0183】ビデオ機構の機能 VTC接続のビデオ機構は、ホスト・システムとのデー
タ通信をすべて、出力キューおよびバッファならびに入
力キーおよびバッファを有するアウトバウンド・データ
通路とインバウンド・データ通路を経由して行う。以下
では、VTCデバイスとの間で受け渡す補助データ・ス
トリームに適用されるデータ書式およびその依存関係に
ついて説明する。
【0184】VTC−SAアーキテクチャは、1または
2以上のVTCデバイスが接続されている構成の場合に
すぐれたパフォーマンスを発揮する。説明を簡単にする
ために、最初に、1台のデバイスだけからなる構成の場
合について説明する。そのあとのセクションでは、複数
のデバイスを使用するときのデバイス要件と行動につい
て説明する。
【0185】VTCデバイスはグラフィックス・アダプ
タにポーリングして、出力バッファ中のデータ量と入力
バッファ中のスペース量を判断する。出力バッファにデ
ータが残っていて、VTCデバイスがそのデータを受け
入れるための空間をもっていると、VTCデバイスはV
TCリード転送を行って、そのデータを読み取る。デバ
イスは、内部バッファに残っているスペースの方が少な
ければ、残っているデータ量よりも少ないデータを読み
取ることが可能である。VTCデバイスがデータ用のス
ペースを常に残しておくように配慮したシステム設計が
望ましいが、その場合は、このアーキテクチャの範囲を
こえる非常に多数の要因によって左右されるので、この
アーキテクチャでは保証されない。
【0186】VTCデバイスは、受信したデータについ
て、データ・タイプに応じて、見合った処理を行う。つ
まり、どのデータがコマンドを構成し、どれがビデオの
ような圧縮データであるかを判断し、その判断に従って
コマンドまたは圧縮データを処理する。
【0187】VTCデバイスはシステムへ送るべきデー
タをもっていると、グラフィックス・アダプタをポーリ
ングして入力バッファに残っているスペースの量を判断
する。そのあと、VTCデバイスは、送信待ちになって
いるデータ量と入力バッファに残っているスペース量の
うち少ない方を、VTCライト転送を使用してVTC経
由で入力バッファへ転送する。
【0188】多くの場合、2つ以上のVTC接続機構を
同時にサポートする必要はない。従って、複数のVTC
デバイスの場合の以下に列挙した機能は、この種のシス
テムを意図したアダプタでは、実装させる必要はない。
【0189】接続されたVTC機構が2つ以上あるとき
は、1つのVTC機構は初期設定時にディストリビュー
タ(Distributor)として指定され、他のデ
バイスはすべて代替デバイス(Alternate)と
して参照される。ディストリビュータはすべてのアウト
バウンド・データを処理し、これは適切な代替デバイス
へ渡される。代替デバイスは、ディストリビュータの制
御の下で、インバウンド・データを直接に入力バッファ
に(従って、入力キューにも)送り込む。ディストリビ
ュータの働きは単独のVTCデバイスと全く同じである
が、追加機能として、アウトバウンド・データを代替デ
バイスへ転送し、代替デバイスからのインバウンド・デ
ータ転送を必要時に制御する。
【0190】すべてのVTCデバイスは、初めて初期設
定されるとき、初期状態では単独のVTCデバイスであ
るかのように動作する。事実、好適実施例では、これが
必要であるのは、CPUからコマンドを受け取るまで
は、これらのデバイスに異なった動作を行うように指示
できないためである。
【0191】リード転送でディストリビュータが受信す
るアウトバウンド・データの一部が別の(代替)デバイ
スあてのパケットのヘッダである場合は、そのプロトコ
ルは次のようになっている。第一に、ディストリビュー
タは取り出すべきパケットの存在と長さを示したメッセ
ージをターゲット代替デバイスに引き渡す(初期状態で
は、パケット全体をディストリビュータに保持させる必
要はない)。第二に、代替デバイスはディストリビュー
タからのデータを読み取る。パケット全体が読み取られ
るまで、必要に応じて読取りが繰返し行われる。第三
に、代替デバイスはパケットの受信を完了したことを示
したメッセージをディストリビュータへ送信する。
【0192】パケットをディストリビュータから代替デ
バイスへ転送するとき、ディストリビュータは、グラフ
ィックス・アダプタが補助データをVTCデバイスへ転
送するときと同じように行動する。しかし、ディストリ
ビュータは、データ・ストリームにコーディングされた
宛先フィールドと長さフィールドを調べることによっ
て、代替デバイスあてのデータだけが代替デバイスへ送
信されるように配慮し、同じように、代替デバイスは自
分あてのデータ量だけを読み取るように配慮される。一
般的には、ディストリビュータは、補助データを他のV
TCデバイスへ再送するとき使用される、別のデータ・
バッファを備えている。
【0193】パケットを代替デバイスへリダイレクトす
るには、ディストリビュータに若干の待ち時間が生じる
ことになる。つまり、解析(parsing)とリダイ
レクトのためには、十分なバッファ能力があり、総待ち
時間がシステム・レベルの問題を引き起こさない限り、
オンボード・プロセッサの援助が必要になることがあ
る。プロセッサ援助によるリダイレクトを行ったとき、
単純設計で起こる追加待ち時間が通常約10usをこえ
てはならない。追加待ち時間が100us〜1msのオ
ーダのとき、通常問題が起こってはならない。
【0194】複数のVTCデバイスが導入されていて、
ディストリビュータ以外のデバイス(代替)がシステム
へ送るデータをもっている場合は、そのプロトコルは次
のとおりである。第一に、代替デバイスは入力バッファ
の使用を要求するメッセージをディストリビュータへ送
信する。第二に、ディストリビュータはその現パケット
の送信を完了すると、ディストリビュータは、入力バッ
ファが代替デバイスによって現在所有されていることを
示すメッセージを代替デバイスへ返送する。第三に、代
替デバイスはディトリビュータと全く同様に行動し、残
っているデータとスペースの量に従ってデータを入力バ
ッファに書き出す。第四に、代替デバイスがデータを入
力バッファに書くのを完了すると、代替デバイスはメッ
セージをディストリビュータへ送って、入力バッファの
制御権を返却する。代替デバイスが入力バッファを使用
している間は、ディストリビュータを含む、他のどのデ
バイスも、データを入力バッファに書くことはできな
い。これには例外がある。それは、入力キューを所有で
きる時間制限に代替デバイスが違反するというエラー条
件が起こったときである。そのような場合は、ディスト
リビュータは優先使用(Preempt)メッセージを
代替デバイスへ送って、パケットを入力バッファに書く
ことを始める。おそらくこのようなパケットは、エラー
が検出されたことを示す。そのようなエラーが起こっ
て、回復が行われると、システムの入力キューの中に
は、記述ワード内の前の長さフィールドが指示していな
いロケーションに次のパケット・フラグが入っている可
能性がある。解析ソフトウェアは、新しいフラグ・ワー
ドを見つけ、長さと後続のフラグ・ワードを通して確か
めることによって、回復を行う必要がある。
【0195】ディストリビュータは、その現パケットの
送信を完了するまでは、入力バッファの所有権を要求側
代替デバイスへ渡すことはできない。そのために必要に
なる時間量は、入力バッファをアクセスするときのパケ
ット・サイズ、頻度および待ち時間、グラフィックス・
アダプタが入力バッファを入力キューに解放するときの
待ち時間、および入力キューにスペースがあるかどうか
によって左右される。また、入力バッファの使用を要求
する代替デバイスが2つ以上のときは、一定の順序でア
クセス権を与える必要があるので、一部の代替デバイス
に追加の待ちが生じすることになる。以上の理由のため
に、代替デバイスが入力バッファを獲得するときの待ち
時間の保証は、入力キューを解析するソフトウェアを含
めて、システム全体のパフォーマンスが問題となるので
なければ、本明細書の範囲をこえるものである。
【0196】システムといずれかのVTCデバイス(デ
ィストリビュータだけでなく)間でやり取りされるデー
タは、パケットの形になっている。パケット・サイズ
は、システムキューまたは入力および出力バッファのサ
イズに関係がるとは限らない。従ってVTCデータ転送
のサイズと関係があるとは限らない。データを代替デバ
イスへ配布し、代替デバイスからデータを収集する場合
の上述の説明では、ディトリビュータから取り出される
データ量や代替デバイスからグラフィックス・アダプタ
へ送信されるデータ量は、それぞれこれらのデータ・パ
ケットによって決まる。複数のVTCデバイスが存在す
るときは、代替デバイスはパケット全体だけを取り出す
ように指示される。同様に、代替デバイスがデータを入
力キューに書くときは、代替デバイスが入力キューを制
御している期間の間に、パケット全体だけを書くことが
できる。しかし、パケットを1回のVTC転送でやりと
りする必要がなく、一般にそうすることは実用的でな
い。
【0197】バスの初期設定 好適実施例では、VTCおよびVTC−SAデバイス
は、VTC上で静止状態で電源が投入される。デバイス
は、設計とスロット配線に依存する。VTCデバイスI
Dを使用して電源が投入される。例えば、ある種のシス
テムでは、最大4台のVTCデバイスが導入されている
場合がある。この場合は、各デバイスはチップ設計また
はカード配線によって、2個のIDビットを除くビット
はすべて固定され、この他の2ビットはVTCコネクタ
に配線されるように設計されている。最大4個までの各
コネクタは、これらの2ビットについて固有の値を有す
る。
【0198】VTCデバイスのホストとなるグラフィッ
クス・アダプタは、固定VTC IDにハード布線され
ていることが好ましい。グラフィックス・アダプタのI
Dは電源投入により通信するデバイスとして設計時にす
べてのVTC−SAデバイスに組み込まれる。CPUの
指示を受けて、グラフィックス・アダプタは、VTCト
ークンを可能とされる各VTC IDへ送り、その見返
りとして、トークンが返却されたかどうかを確かめ、こ
れによりVTCデバイスが存在することを検出する。デ
バイスを初期設定するために、CPUは初期設定コマン
ドを出力キューに置き、GA内の出力キューをセットア
ップし、出力キューを使用可能にし、その特定のVTC
デバイスへトークンを継続的に送るようにグラフィック
ス・アダプタに指示する。すべてのVTCデバイスは、
トークンを送るときに使用される固定の初期次マスタI
Dを使用して電源が投入されるが、このIDはホストと
なるすべてのグラフィックス・アダプタで使用されるも
のと同じである。その指定されたVTCデバイスは、次
に、出力バッファにデータが存在するかどうかを問い合
わせるためにグラフィックス・アダプタをポーリング
し、そのあと、CPUからのデータ・パケットを出力バ
ッファから読み取る。返すことのできる応答があるとき
は、入力バッファを経由してその応答を返送する。他の
デバイスを初期設定するために、CPUの指示を受け
て、グラフィックス・アダプタは最初のデバイスへトー
クンを送信することを中止し、他のデバイスの各々につ
いて上記オペレーションが繰り返される。
【0199】デバイスが2以上存在するとき、すべての
デバイスが初期設定されると、1つのデバイスがディス
トリビュータとして指名され、他のデバイスはすべて代
替デバイスとして指名される。各デバイスに次マスタ値
がセットされ、トークンを特定されたデバイスへ送信す
る。これによりすべてのデバイスはラウンド・ロビン構
成に配置される。
【0200】複数のデバイスが存在する場合は、代替デ
バイスは、以下に説明する場合を除き、出力キューを照
会したり、入力キューへデータを送信したりすることは
できない。ディトリビュータ以外のデバイスの場合は、
出力キューはディストリビュータに置かれており、入力
キューはディストリビュータが許可したときだけ使用で
きる。
【0201】段階的品質低下 本発明は、過負荷状態において必要に応じて動作して、
VTCまたはVTC−SAのバンド幅の利用効率を向上
させると共に、ソースの数およびタイプと表示品質との
間のバランスをユーザが判断できるようにする段階的品
質低下を目的としている。図13は、本発明の好適実施
例をグラフィックス・アダプタと併用してビデオを表示
するためのビデオ・アダプタを示している。ビデオ・ア
ダプタ600はビデオ入力バス605上のビデオ入力信
号を受信する。ビデオ入力信号はNTSCアナログ信号
または類似する信号にすることができる。ビデオ・プロ
セッサ615はアナログ・ビデオ入力信号を受信し、デ
ィジタル化して、そのディジタル化の結果をバッファ6
20にストアしておく。データは、そのあとで、VT
C、VTC−SAまたはその他のタイプのバスであるバ
ス610上を転送される。好適実施例では、バッファは
循環バッファであり、ヘッド・ポインタ(head p
ointer)625とテール・ポインタ(tail
pointer)630でビデオ・データがバッファの
どこにストアされているかを示している。到来アナログ
・データがディジタル化されると、そのデータはバッフ
ァ620にストアされ、ヘッド・ポインタを更新する。
バスが許していると、アダプタ・プロセッサはバッファ
620からデータを読み取り、テール・ポインタ630
を更新し、データをバス610経由でグラフィックスプ
ロセッサへ送信する。好適実施例では、バッファは循環
メモリであり、1フレーム相当のビデオ・データを保持
している。グラフィックス・アダプタ650はグラフィ
ックス・プロセッサ655を含んでおり、このプロセッ
サはビデオ・アダプタ600のほかに、他のソースから
もデータをビデオ・バス経由で受信し、そのビデオ・デ
ータをフレーム・バッファ660にロードして、ディス
プレイ665上に表示する。
【0202】図14は、表示されるデータの品質を徐々
に低下させる好適方法を示すフローチャートである。第
一ステップ700において、アダプタ・プロセッサ61
5はビデオ入力バス605上のアナログ・ビデオ入力デ
ータを受信し、将来の表示のためにそのデータをディジ
タル化する。ステップ705において、ビデオ・アダプ
タは、ヘッド・ポインタとテール・ポインタを比較し、
ヘッド・ポインタが折り返されてテール・ポインタまで
達していたかどうかを確かめることによって、バッファ
620がいっぱいかどうかを判断する。フレーム・バッ
ファがいっぱいでなければ、ステップ710において、
アダプタ・プロセッサはディジタル化したデータをバッ
ファ620にロードし、テール・ポインタ630を更新
する。このプロセスはステップ700,705および7
10の間で続けられ、その間、アダプタ・プロセッサも
データをバッファからバス610を経由してグラフィッ
クス・アダプタへ転送している。
【0203】バッファ620がいっぱいであって、ビデ
オ・アダプタが以前に格納したディジタル化されたデー
タをグラフィックス・アダプタへ送ることができないと
きは、処理はステップ715まで続けられる。ステップ
715において、アダプタ・プロセッサはバッファにス
トアされている現フレームを消去する。アダプタ・プロ
セッサは消去を、単にテール・ポインタをバッファにス
トアされている前のフレームまたはその一部の最後に移
動することにより行う。ステップ720において、アダ
プタ・プロセッサは、ディジタル化されたばかりのデー
タを破棄する。ステップ725において、アダプタ・プ
ロセッサは追加のアナログ・データを受信して、そのデ
ータをディジタル化する。ステップ730において、最
後にディジタル化したデータが破棄されたものと同じフ
レームからのものであれば、処理はステップ720まで
続けられ、そこでその新しいフレームデータは再び破棄
される。しかし、最後にディジタル化されたデータが新
しいフレームからのものであれば、処理はステップ70
5へ戻り、アダプタ・プロセッサは、バッファがいっぱ
いであるかどうかを再び判断する。殆どの場合、バッフ
ァには、別のビデオ・フレームの受け入れを開始するだ
けの十分な余地を用意しておく必要がある。
【0204】好適実施例による段階的品質低下手法の利
点の1つは、ビデオ・フレームまたは他のタイプのデー
タ・グループが必要時にだけ破棄されることである。す
なわち、フレームが破棄されるのは、ビデオ・アダプタ
がすべての到来データのストアおよび送信をできないと
きだけである。さらに、種々のアダプタに高い優先度を
もたせることができる別の種類の優先方式によれば、優
先度の低いビデオ・アダプタは、過負荷状態が起こった
とき、破棄されるフレームが多くなるのが一般的であ
る。
【0205】システム・キュー 好適実施例では、VTC−SA用のシステム・キューに
は、出力キューと入力キューの2つがある。キューをも
っと増やすことも可能である。ハードウェアから見たと
きの、これらのキューの実際のアドレスは、ソフトウェ
ア制御の下で動的に変更することが可能である。しか
し、各方向別にもう1つのキューがある。キュー・ポイ
ンタを動的に位置付けると、データ収集機能が得られ
る。これらの2つのキューは図15に示すように、メイ
ン・メモリに置かれている。すべてのアドレスは、全ワ
ード(32ビット)境界上に、つまり、4の整数倍の位
置に置いておくのが好ましい。好適実施例では、単純化
のためワードの端数が送受されない。
【0206】トップ・ポインタとボトム・ポインタは、
各キューがアクティブの間固定されているが、場合によ
っては、キューがディスエーブルである間に変更するこ
とも可能である。リード・ポインタとライト・ポインタ
はそれぞれキューからデータを読み、またはキューにデ
ータを書くプロセス(システムまたはグラフィックス・
アダプタ)によって使用され、更新される。
【0207】キューの中のデータはパケットに編成され
る。出力データの場合は、システムは完全なパケットを
一を他の後に続けて組み立てて、それを出力キューに入
れる。各パケットは分類を容易にするためのフラグ・ワ
ードならびに、パケットの長さと宛先(VTCデバイス
ID)およびデータ内容がコマンドであるかデータであ
るかを示す標識を収めた記述ワードから始まる。これら
のワードの詳細は「データ形式」の個所に説明されてい
る。VTCデバイスへ送られるデータとコマンドの組合
せはこのメカニズムを用いて単一出力キューにインタリ
ーブされる。
【0208】出力キューに置かれた全データは、フラグ
・ワードおよび正しい値の記述ワードと共に、完全なパ
ケットに入っている。この制約は、初期設定時に出力キ
ューに置かれた最初のデータを含めて、すべてのデータ
に適用される。これにより、VTCデバイスは、高信頼
で、フォルト・トレラントなデータ解析を行うことがで
きる。この制約は、完全なパケットを一度にキューに置
かなければならないことを意味するものではない。パケ
ットが完成されるまで、パケットを部分的に追加してい
くことが可能である。
【0209】入力キューに置かれたすべてのデータも、
出力キューのデータと同じように制約される。入力キュ
ーは完全なパケットを有する。各パケットはフラグ・ワ
ードから始まり、長さ、VTCソース・デバイス、およ
び応答またはデータを示す記述ワードがそのあとに置か
れている。
【0210】任意のVTCデバイスによって入力キュー
に置かれた全てのデータは完全なパケットからなってい
る。この制約は、初期設定時にキューに置かれた最初の
データを含めて、すべてのデータに適用され、データが
複数のVTCデバイスから生じる場合であっても適用さ
れる。この制約があるため、ソフトウェアは入力キュー
を高信頼で、フォルト・トレラントな解析を行うことが
できる。出力キューの場合と同様に、この制約は、完全
パケットを一度にキューに置かなければならないことを
意味するものではない。パケットが完成されるまで、パ
ケットを部分的に追加していくことが可能である。
【0211】解析タスクは入力キューに置かれた最初の
ワードとしてのフラグおよび次のフラグを指すオフセッ
トである長さを探し出す。このようにして、高信頼の解
析が保証される。ソースIDおよび応答またはデータ標
識は、入力キューに置かれたデータを処理する他のタス
クまたはルーチンへデータを送るために使用することが
できる。メモリの複数の区域が入力キュー用に使用され
ている場合は、ポインタを使用すると、参照によってデ
ータを送ることが可能である。
【0212】例えば、4KBページの仮想メモリ・シス
テムでは、各キューは、一定順序のページ・ベース・ア
ドレスからなる別テーブルを設計に含めることによっ
て、1ページより大きくすることが可能である。このテ
ーブルはグラフィックス・アダプタとCPUの両方がア
クセスできること、およびその値が固定していることが
必要である。
【0213】入力キューは、まだ解析されていないデー
タが保存されていて、解析タスクがすべてのデータを順
番に解析することを完了しているかぎり、キューを一時
的に使用禁止することによって、いつでも再マッピング
することができる。
【0214】出力キューと異なり、入力キューがキュー
・ポインタを用いて動的に移動されたときは、一般に、
メモリの各独立領域に完全なパケットが置かれることが
保障できない。VTCデバイスとグラフィックス・アダ
プタは、必要時にデータを入力キューに入れ、一般的
に、グラフィックス・アダプタによるメモリ・アクセス
はパケット・エンド・ポイントに位置合わせされない。
入力キュー用に使用されるメモリの各独立領域が完全な
パケットだけを有することの確認は、データがグラフィ
ックス・アダプタから受信されたあと必要に応じてソフ
トウェアでデータをメモリ領域間で移動させれば、行う
ことができる。
【0215】キューは、システム・メモリ内の追加デー
タ・バッファを指すポインタ・セットとして実現するこ
とが可能である。柔軟性とシステム・パフォーマンスの
面で利点が得られる。間接的キューが実現されているか
否かは、VTCインタフェースに影響を与えない。間接
的キューはシステム依存オプションである。
【0216】キューは、間接データと直接データの組合
せとして実現することも可能である。例えば、メイン・
キューには、直接か間接かを示すコマンド・ワード(こ
れはフォルト・トレラント解析を行う上でも役立つ)、
ポインタ・ワード(これは間接データのときだけ存在す
る)、直接か間接かに関係なく、実際のデータの長さを
示す長さワード、およびこのパケットに直接モードが使
用されている場合は、直接データからなるパケットが置
かれる。
【0217】図15は、VTC−SAバス上のメイン・
プロセッサとアダプタ間でやりとりされるメッセージま
たはデータのブリッジとなるキューイング・システムの
好適実施例を示す図である。メイン・プロセッサ400
はメイン・メモリ410に接続され、メイン・メモリ4
10は入力キュー412と出力キュー414を含んでい
る。メイン・プロセッサはシステム・バス418を挟ん
でグラフィックス・アダプタ420のグラフィックス・
プロセッサ425にも接続されている。グラフィックス
・プロセッサはグラフィックス・メモリ430に接続さ
れ、グラフィックス・メモリ430は、入力キューのト
ップ、ボトム、ヘッドおよびテール、出力キューのトッ
プ、ボトム、ヘッドおよびテールなどを含む複数のブリ
ッジ・レジスタ、および入力バッファと出力バッファを
各バッファのカウントと共に含んでいる。グラフィック
ス・プロセッサはVTC−SA 450を挟んで第1ア
ダプタ440と第2アダプタ445にも接続されてい
る。
【0218】メイン・メモリ中の出力キューは、メイン
・プロセッサからVTC−SA上のアダプタの1つに送
られるメッセージまたはデータを収めている。入力キュ
ーは、VTC−SA上のアダプタの1つからメイン・プ
ロセッサへ送られるメッセージを収めている。グラフィ
ックス・メモリに置かれたブリッジ・レジスタは、メイ
ン・メモリ内の入力キューと出力キューを指すポインタ
を含んでいる。グラフィックス・メモリ内の入力バッフ
ァと出力バッファは、メイン・プロセッサとアダプタ間
でメッセージのパケットを受け渡すために使用される。
【0219】図16は、キューイング・システムを使用
してメッセージまたはデータをメイン・プロセッサから
アダプタの1つへ送信するときのステップを示すフロー
チャートである。最初のステップ500において、メイ
ン・プロセッサはメッセージをメイン・メモリ内の出力
キューにロードし、そのあとメッセージを直接にグラフ
ィックス・アダプタへ送って出力キューのヘッド・レジ
スタを更新し、メッセージが出力キューに追加されたこ
とを通知する。ステップ505において、グラフィック
ス・アダプタは、グラフィックス・メモリ内の出力バッ
ファがいっぱいであるかどうかを、出力バッファ・カウ
ントを調べることによって定期的に判断する。いっぱい
であれば、グラフィックス・アダプタのプロセッサは再
び定期的にバッファをポーリングし、データを出力バッ
ファに入れることができるかどうかを判断する。出力バ
ッファがいっぱいでなければ、ステップ510におい
て、グラフィックス・プロセッサはメイン・メモリ内の
出力キューにまだデータがあるかどうかを、出力キュー
のヘッド・ポインタがテール・ポインタ・アドレスに1
を加えた値に等しいかどうかを確かめることによって判
断する。等しければ、メイン・メモリ内の出力キューに
メッセージが残っていない。出力キューにデータが残っ
ていれば、グラフィックス・アダプタは、システム・バ
スを通して出力キューからデータを読み取って、それを
出力バッファにロードできるので、出力バッファ・カウ
ントが増加する。さらに、グラフィックス・アダプタ
は、出力キューの一部が読み取られたことを示すよう
に、出力キューのテール・レジスタを更新する。
【0220】ステップ520において、アダプタは、出
力バッファにメッセージまたはデータがあるかどうかに
ついて、グラフィックス・プロセッサに定期的に照会す
る。出力バッファにデータがあれば、ステップ525に
おいて、アダプタはグラフィックス・プロセッサを通し
て出力バッファを読み取る。出力バッファに入っている
データがその出力バッファを読み取ったアダプタに対す
るものであれば、アダプタはその部分のデータの処理を
完了している。そうでなければ、アダプタはそのデータ
を該当するアダプタへ送るか、あるいはデータがあるこ
とを該当するアダプタに通知し、要求があったとき、そ
のデータを該当するアダプタへ送る。どちらの場合も、
処理はステップ520へ戻り、そこで、アダプタはグラ
フィックス・プロセッサへの照会を続け、出力バッファ
にデータが残っているかどうかを確かめる。
【0221】図17は、アダプタがキューイング・シス
テムを使用してメッセージまたはデータをメイン・プロ
セッサへ送信するときのステップを示すフローチャート
である。最初のステップ550において、アダプタはメ
ッセージまたはデータをグラフィックス・メモリ内の入
力バッファにグラフィックス・プロセッサ425を通し
てロードする。入力バッファに残っているスペース・カ
ウントは、その分だけ減少する。ステップ560におい
て、グラフィックス・アダプタはメッセージを入力バッ
ファからメイン・プロセッサ400を通してメイン・メ
モリ内の入力キューにロードする。次にグラフィックス
・プロセッサは入力レジスタのヘッド・ポインタと入力
バッファのカウントを更新する。
【0222】ステップ570において、メイン・プロセ
ッサは、入力キューで待ちになっているメッセージがあ
るかどうかを確かめるために、グラフィックス・アダプ
タを定期的にポーリングする。入力キューで待ちになっ
ているメッセージがなければ、メイン・プロセッサは、
待ちになっているメッセージがあるかどうか確かめるた
めに、グラフィックス・プロセッサの入力ポインタを定
期的にポーリングし続ける。別の実施例では、メイン・
プロセッサが単にメッセージを待つことも、メッセージ
が待ちにあるとことを示す割込みがグラフィックス・プ
ロセッサから送られてくるのを待つこともできる。メッ
セージが待ちにあると、ステップ580において、メイ
ン・プロセッサはそのメッセージを入力キューから読み
取って、グラフィックス・プロセッサがグラフィックス
・メモリ内の入力キューの該当テール・レジスタを更新
するように要求する。
【0223】別の実施例では、ブリッジ・レジスタに、
バス上の各アダプタごとに1つまたはそれ以上の割合
で、複数の入力バッファと出力バッファを含めることが
可能である。さらに、複数の入力キューと出力キュー
を、この場合も各アダプタごとに1つのまたはそれ以上
の割合でメイン・メモリに置いておくことも可能であ
る。さらに、データが送られるアドレスを示すために、
別のレジスタをグラフィックス・メモリに含めることも
可能である。さらに、ブリッジ・レジスタと他の処理機
能用のプロセッサを、VTC−SA上の別のアダプタ中
に配置することも可能である。さらに、ブリッジ自体を
VTC−SA上の別アダプタとすることも可能である。
【0224】好適実施例では、VTC−SAバス上のア
ダプタの1つは、バス・ディストリビュータとして指名
されており、このディストリビュータはVTC−SA上
のアダプタのいずれかで待ちになっているメッセージが
あるかどうかを確かめるために、グラフィックス・アダ
プタに定期的に照会する。これは好ましくはVTC−S
Aバスの初期化の間にセットアップされる。しかし、メ
イン・プロセッサは、別のアダプタがバス・ディストリ
ビュータになることを定期的に要求することができる。
さらに、マルチディストリビュータ環境を利用すること
も可能である。このような環境では、各アダプタは、出
力バッファに待ちになっているメッセージがあるかどう
かを定期的に照会し、待ちになっているメッセージがあ
ると、そのことを該当するアダプタに通知する。
【0225】バス・データ通路の確立 好適実施例では、メイン・プロセッサは、リモートVT
CまたはVTC−SAビデオ・バス上でどのデータ通路
をセットアップするかを制御する。メイン・プロセッサ
とシステム・バスのどちらもリモート・バス上に置かれ
ていないので、VTCおよびVTC−SAバスはメイン
・プロセッサから離れている。つまり、メイン・プロセ
ッサは、リモート・バスと通信するためにはバス・ブリ
ッジまたは類似手段を利用しなければならない。メイン
・プロセッサは、ビデオ・バス上のアダプタ間の接続要
求がユーザまたはアプリケーションから出されると、そ
の要求に応答することによって、中央制御システムをユ
ーザ・アプリケーションの制御下に置いている。
【0226】図18は、本発明の好適実施例を使用して
これらのデータ通路がどのようにセットアップされるか
を示すフローチャートである。最初のステップ800に
おいて、メイン・プロセッサは初期設定時にビデオ・バ
ス上のアダプタのリストを作成する。ステップ510に
おいて、メイン・プロセッサはVTCまたはVTC−S
Aバス上の種々のアダプタのアドレスをセットアップす
るが、これは初期設定時に行うことも可能である。ビデ
オ・バス上の種々アダプタはこれらのアドレスを使用し
て、相互に通信を行う。初期設定プロセスの詳細は上述
したとおりである。ステップ820において、メイン・
プロセッサはバス上の所望データ通路を使用可能または
使用禁止する要求をユーザまたはアプリケーションから
受け取る。メイン・プロセッサは、メッセージ送信の場
合の上述したプロセスを用いて、VTCまたはVTC−
SAバス上のアダプタの1つからこの要求を受け取るこ
とも可能である。ステップ830において、メイン・プ
ロセッサは、要求された所望データ通路を使用可能にす
るか、使用禁止にするかを判断する。各種の判断基準が
使用できる。例えば、VTCまたはVTC−SAバス
は、要求を処理するだけの十分なバンド幅をもっていな
い場合がある。プロセッサは、使用可能にされた各種デ
ータ・ストリーム間で優先方式を設定することも可能で
ある。メイン・プロセッサがデータ通路を使用可能また
は使用禁止にしないと判断したときは、メイン・プロセ
ッサはそのことをユーザまたはアプリケーションに返答
し、処理はステップ820に戻って、メイン・プロセッ
サは使用可能または使用禁止要求に対する別の要求を待
つことになる。
【0227】データ通路を使用可能または使用禁止にす
るとプロセッサが判断すると、メイン・プロセッサはメ
ッセージ送信の場合の上述したプロセスを用いてデータ
通路を開始または終了するようにビデオ・バス上のアダ
プタに通知する。メイン・プロセッサは、使用可能にし
たデータ通路に時間制限またはその他の制限のみを設定
することができる。例えば、メイン・プロセッサは、ビ
デオ・アダプタが到来ビデオ信号を10秒間ビデオ表示
するように要求することができる。さらに、メイン・プ
ロセッサは、アダプタが後の指示を受け取るまで、到来
ビデオ信号を特定のフレーム上に凍結するようにビデオ
・アダプタに要求することができる。ステップ850に
おいて、メイン・プロセッサは、データ・ストリームが
到来していることをグラフィックス・アダプタに通知す
ることができる。グラフィックス・アダプタが常にビデ
オ・バス上のスレーブである場合は、このような通知は
必ずしも必要でない。しかし、このような通知がある
と、グラフィックス・アダプタは到来データ・ストリー
ムを予想して、そのデータ・ストリームが現れるのを促
進するなんらかの適切な処置をとることができる。
【0228】ビデオ・アダプタは、到来データ・ストリ
ームが終わる時まで、あるいはプロセッサがデータ処理
を一時中止または終了するようにビデオ・アダプタに要
求するまで、データ処理を続け、データ・ストリームを
グラフィックス・アダプタへまたは互いに送り続ける。
【0229】データ形式 ここでは、VTCおよびVTC−SAアーキテクチャの
データ書式層について説明する。フィールドF1ビット
がある書式の形式を指定することを示すのはビット(2
4−27)であり、これは、(1、2、4、8、12、
16、24、32)で始まるリストからの、ピクセル当
たりのビット数を示し、ビット(24−27)の値は1
から始まる。従って、RGBa32は‘8’すなわち
‘1000’bである。もっと大きなピクセル・サイズ
を割り振ることが可能である。ビット(28−31)は
ピクセル書式のタイプを指定する。RGBはタイプ
‘0’であり、インデックスはタイプ‘1’である。他
のタイプを割り振ることも可能である。以上説明した書
式を図19〜図20に示す。
【0230】RGBalpha32 以下では、図19を参照して、このデータ書式について
説明する。フィールド・ビットは、好ましくはフィール
ドF1ビット(24−31)=‘1000 0000’
となっており、レッド、グリーン、ブルー、およびアル
ファの各々は8ビットになっている。32ビット・ワー
ドは図示のように1個のRGBaピクセルを収めてい
る。レッド、グリーンおよびブルーはガンマ補正(非線
形)値であり、0〜255の範囲の8ビット2進符号な
し整数で表されている。アルファは混色パラメータであ
り、ライト転送が完了すると、宛先ピクセルは次のよう
になる。
【0231】 alpha*(転送データ値)+(1−alpha)* (「他の」バッファに置かれた値) 上記において、「他の」バッファとは、スレーブが想定
する別のフレーム・バッファであり、この他のバッファ
中のピクセル・アドレスはライト転送で使用されるもの
と同じである。スレーブはアルファ混色を行う必要はな
い。リード転送では、アルファは未定義であるので、ス
レーブは‘0’と書いておかなければならない。
【0232】RGB16 以下では、図20を参照して、このデータ書式について
説明する。フィールド・ビットは、好ましくはフィール
ドF1ビット(24−31)=‘0110 0000’
となっており、レッド5ビット、グリーン6ビット、ブ
ルー5ビットになっている。32ビット・ワードは2個
のRGB16ピクセルを収めている。1個の32ビット
・ワードに入っている2個のピクセルは、ディスプレイ
に左から右へ現れる順序になっており、左端ピクセルは
VTCデータ・ワードのビット0から始まり、右端ピク
セルはビット16から始まっている。
【0233】RGB8 以下では、図21を参照して、このデータ書式について
説明する。フィールド・ビットは、好ましくはフィール
ドF1ビット(24−31)=‘0100 0000’
となっており、レッド3ビット、グリーン3ビット、ブ
ルー2ビットになっている。32ビット・ワードは、図
示のように4個のRGB8ピクセルを収めている。1個
の32ビット・ワードに入っている4個のピクセルは、
ディスプレイに左から右へ現れる順序になっており、左
端ピクセルはVTCデータ・ワードのビット0から始ま
り、右端ピクセルはビット24から始まっている。
【0234】Index8 以下では、図22を参照して、このデータ書式について
説明する。フィールド・ビットは、好ましくはフィール
ドF1ビット(24−31)=‘0100 0001’
となっており、パレット・インデックスは8ビットにな
っている。パレット内容はVTCでは指定されない。こ
の内容は他の手段で指定するか、その内容に一致させて
おく必要がある。32ビットワードは4個のIndex
8ピクセルを含む。上記のピクセル(0、1、2、4)
の順序はディスプレイに左から右へ表示される順序にな
っている。RGB8は実際には、Index8の特定の
値としてグラフィックス・アダプタに取り入れることが
できるが、RGB8はビットの特定のコード化を定義
し、パレットが使用されていれば、パレットの特定の設
定値を定義するものである。他方、Index8はどの
特定パレット設定値も意味していない。従って、Ind
ex8を使用しただけでは、スクリーンに表示されると
きデータ値は正しく解釈されない。
【0235】データ書式、つまり、構文と意味は、VT
C−SAオペレーションの次の3つの面でオペレーショ
ンを統一化するために必要になるものである。第一は、
フラグと記述ワード、長さその他の制約条件を含むパケ
ットにおいてである。第二は、VTCデバイスに対する
コマンドとその応答においてである。第三は、複数のV
TCデバイス間のメッセージにおいてである。VTCデ
バイスへ送られる圧縮データはここでは指定する必要は
ない。これらの形式はコード化またはデコードされる標
準に依存し、場合によって、CODECシステムがどの
ように構築され、構成されるかによって左右される。
【0236】PACKETS 好適実施例では、パケットは2つのヘッダ・ワード、つ
まり、フラグ・ワードおよび記述ワードを有し、そのあ
とに複数のデータ・ワードが続く。パケットに含まれる
ワードの数は、記述ワードに示されている。ワードは、
本明細書では、32ビットになっている。パケットはデ
ータか、1つまたは2つ以上のコマンドまたは応答のど
ちらかを収めている。データは、コマンドおよび応答と
同じパケットに混在することはない。
【0237】パケットの構文は、フラグ、記述子、およ
びデータ内容(記述子の長さフィールドで指定されたワ
ード数)からなっている。パケットのフラグ、記述子、
およびデータ部分は次のように定義されている。フラグ
・ワードの値は0x000001FFになっている。記
述子ビットは次のとおりである。
【0238】ビット0:データ/−コマンド:値が
‘1’のときは、そのあとに続くパケットはデータ、例
えば、圧縮ビデオを含んでいることを意味する。値が
‘0’のときは、パケットがVTCデバイスへ送出され
る場合は、コマンドまたはコマンド列を含んでいること
を意味する。また、値が‘0’のときは、パケットがV
TCデバイスから送られてくる場合は、メッセージまた
は前に出されたコマンドに対する応答を含んでいること
を意味する。
【0239】ビット1−3および8−15:予約済:パ
ケットを生成するデバイスおよびタスクは‘0’と書い
ておく。データの受信側はこの値を無視する。
【0240】ビット16−31:長さ:このフィールド
は、次のフラグ・ワードの前のこのワードのあとに続く
データのワード(各32ビット)数を指定した符号なし
整数を含んでいる。値がゼロのときは、次のワードがフ
ラグ・ワードであることを示す。
【0241】パケット・データは、長さフィールドに指
定された数のデータ・ワードから構成されている。VT
Cインタフェースから見たとき、各ワードの最初のバイ
トは左端にあり、ビット0から始まる。つまり、キュー
先頭がキュー終端よりも下位アドレスにあり、データの
バイトが1ずつ増えていく上位バイトに追加される場合
は、各ワード内の下位アドレスはVTCワードの左部分
にマッピングされる。16ビットVTC構成では、左の
ハーフ・ワードは右のハーフ・ワードより先に送信され
る。
【0242】送信されるパケットのサイズは、コード化
およびデコード・プロセスにおけるバッファ管理ならび
にキューに置かれた複数のプロセスの待ち時間といった
理由により、大部分のアプリケーションにおいて制限を
される必要がある。あるプロセスにおいてパケットが長
いことは、他の全てプロセスにおいてパケットがない時
間が長くなり、バッファ要求量と待ち時間が増加するこ
とを意味する。他方、パケットが短いときは、オーバヘ
ッドが増加する。オーバヘッドはシステム・キューを解
析し、構築するソフトウェアにおいて最も発生しやす
い。2つのワード・パケット・ヘッダが原因で起こるV
TCオーバヘッドは、大部分のパケットが非常に小さい
サイズに近づかなければ、無視し得るものである。最大
バンド幅ストリームについての最適なパケット・サイズ
は、ソフトウェア・アーキテクチャ全体およびネットワ
ークならびにそのパケット・サイズを含む使用されるD
ASDプロトコルに左右されるものである。
【0243】絶対的パケット・サイズの制約に関係な
く、つまり、アプリケーション依存の制約を発生する公
式に関係なく、このアーキテクチャで必要なのはTBD
である。VTC−SAの一部として指定されるかどうか
に関係なく、待ち時間の理由からパケット・サイズに十
分な注意が必要である。
【0244】結論 特定の実施例を参照して本発明について詳しく説明して
きたが、他の実施例も可能であることは当業者に明らか
である。将来の要件によっては、バンド幅を大きくしま
たデバイス数を増やし、場合によっては、多かれ少なけ
れ、デバイス間の通信が必要になることがある。同時
に、与えられたデータ・ライン数において、バンド幅を
大きくするためにクロック速度を高速化する別のテクノ
ロジが開発される場合もある。ブリッジを備えた複数の
VTCが実現すれば、VTC数に相当する係数倍の実効
スループットが得られるであろう。例えば、光を利用し
たボックス間バスへのブリッジが作られるかもしれな
い。これまでに述べたロジック定義は、発明者の知る範
囲において、このような拡張に適している。VTCまた
はVTC−SAに対する要求と並行して、テクノロジが
進歩すると、現在普及している電気的ロジック水準の使
用は時代後れとなるであろう。将来、低電圧電気信号レ
ベルまたは光信号が可能になることは明らかであり、現
在の信号レベル、従って初期のインプリメンテーション
とプラグ・コンパチブルでなくなることは明らかであ
る。従って、上述の説明は、特許請求の範囲に明確化さ
れている本発明の範囲を限定するものではない。
【0245】
【発明の効果】本発明によれば、過負荷状態において必
要に応じて動作して、VTCまたはVTC−SAのバン
ド幅の利用効率を向上させると共に、ソースの数および
タイプと表示品質との間のバランスをユーザが判断でき
るようにする段階的品質低下が可能となる。
【図面の簡単な説明】
【図1】本発明の好適実施例で使用される代表的なディ
ジタル・コンピュータを示すハイレベル・ブロック図で
ある。
【図2】本発明の第1好適実施例によるビデオ転送チャ
ネル(VTC)およびこれと並列のメイン・プロセッサ
・バスを示すハイレベル・ブロック図である。
【図3】本発明の第2好適実施例によるビデオ転送チャ
ネル−独立型(VTC−SA)およびこれと並列のメイ
ン・プロセッサ・バスを示すハイレベル・ブロック図で
ある。
【図4】本発明の好適実施例によるライト(書込み)転
送を示すタイミング図である。
【図5】本発明の好適実施例によるリード(読取り)転
送を示すタイミング図である。
【図6】本発明の好適実施例で使用される各種制御フィ
ールドを示す図である。
【図7】本発明の好適実施例で使用される各種制御フィ
ールドを示す図である。
【図8】本発明の好適実施例で使用される各種制御フィ
ールドを示す図である。
【図9】本発明の好適実施例で使用される各種制御フィ
ールドを示す図である。
【図10】本発明の好適実施例で使用される各種制御フ
ィールドを示す図である。
【図11】本発明の好適実施例で使用される各種制御フ
ィールドを示す図である。
【図12】本発明の好適実施例で使用される各種制御フ
ィールドを示す図である。
【図13】本発明の好適実施例で使用される好適グラフ
ィックス・アダプタとビデオ・アダプタを示すブロック
図である。
【図14】表示されるデータを徐々に品質低下(deg
rade)させるための好適方法を示すフローチャート
である。
【図15】本発明の好適実施例による表示システムを示
すブロック図である。
【図16】本発明の好適実施例によるキュー(queu
eing−待ち行列)システムの使用を示すフローチャ
ートである。
【図17】本発明の好適実施例によるキュー(queu
eing−待ち行列)システムの使用を示すフローチャ
ートである。
【図18】本発明の好適実施例によるデータ通路を使用
禁止または使用可能にするステップを示すフローチャー
トである。
【図19】本発明の好適実施例によるデータ形式を示す
図である。
【図20】本発明の好適実施例によるデータ形式を示す
図である。
【図21】本発明の好適実施例によるデータ形式を示す
図である。
【図22】本発明の好適実施例によるデータ形式を示す
図である。
【符号の説明】
100 ディジタル・コンピュータ 110 メイン・プロセッサ 120 メモリ 130 入力デバイス 140 出力デバイス 150 グラフィックス出力デバイス 160 バス 200 グラフィックス・アダプタ 220 グラフィックス・アダプタ・プロセッサ 230 グラフィックス・アダプタ・メモリ 240 フレーム・バッファ 250 RMADAC 260 マルチメディア・バス 300 VTC 305 メイン・プロセッサ・バス 310 グラフィックス・アダプタ 315 メイン・プロセッサ 320 アダプタ 330 アダプタ 350 VTC−SA 355 メイン・プロセッサ・バス 360 グラフィックス・アダプタ 365 メイン・プロセッサ 370 アダプタ 380 アダプタ 400 メイン・プロセッサ 410 メイン・メモリ 412 入力キュー 414 出力キュー 418 システム・バス 420 グラフィックス・アダプタ 425 グラフィックス・プロセッサ 430 グラフィックス・メモリ 440 第1アダプタ 445 第2アダプタ 450 VTC−SA 600 ビデオ・アダプタ 605 ビデオ入力バス 610 バス 615 ビデオ・プロセッサ 620 バッファ 625 ヘッド・ポインタ 630 テール・ポインタ 650 グラフィックス・アダプタ 655 グラフィックス・プロセッサ 660 バッファ
───────────────────────────────────────────────────── フロントページの続き (51)Int.Cl.6 識別記号 庁内整理番号 FI 技術表示箇所 G09G 5/12 9471−5G

Claims (13)

    【特許請求の範囲】
  1. 【請求項1】 表示すべきビデオ・データのフレームを
    伝送する方法であって、 a)ビデオ・データのフレームの少なくとも一部を受信
    するステップと、 b)受信したビデオ・データをバッファにストアできる
    かどうかを判断するステップと、 c)受信したビデオ・データをバッファにストアできる
    と判断した場合は、受信したビデオ・データをバッファ
    にストアするステップと、 d)受信したビデオ・データをバッファにストアできな
    いと判断した場合は、ビデオ・データのフレームのどの
    ビデオ・データも消去するステップと を具えたことを特徴とするビデオ・データ・フレーム伝
    送方法。
  2. 【請求項2】 請求項1に記載のビデオ・データ・フレ
    ーム伝送方法において、前記ストアするステップは、受
    信したビデオ・データを待ち行列バッファにストアする
    ステップと、待ち行列バッファを指しているポインタを
    更新するステップとを含むことを特徴とするビデオ・デ
    ータ・フレーム伝送方法。
  3. 【請求項3】 請求項2に記載のビデオ・データ・フレ
    ーム伝送方法において、前記消去するステップは、待ち
    行列バッファ内のロケーションを指しているポインタ
    を、消去するデータ・フレームの前に移動するステップ
    を含むことを特徴とするビデオ・データ・フレーム伝送
    方法。
  4. 【請求項4】 請求項3に記載のビデオ・データ・フレ
    ーム伝送方法において、ストアされたビデオ・データを
    表示するステップをさらに具えたことを特徴とするビデ
    オ・データ・フレーム伝送方法。
  5. 【請求項5】 請求項4に記載のビデオ・データ・フレ
    ーム伝送方法において、ストアされたビデオ・データ
    を、該ビデオ・データの表示の前にディスプレイ・アダ
    プタへ伝送するステップをさらに具えたことを特徴とす
    るビデオ・データ・フレーム伝送方法。
  6. 【請求項6】 請求項5に記載のビデオ・データ・フレ
    ーム伝送方法において、受信したビデオ・データをディ
    ジタル化するステップをさらに具えたことを特徴とする
    ビデオ・データ・フレーム伝送方法。
  7. 【請求項7】 表示すべきビデオ・データのフレームを
    伝送する装置であって、 a)ビデオ・データのフレームの少なくとも一部を受信
    する手段と、 b)受信したビデオ・データをバッファにストアできる
    かどうかを判断する手段と、 c)受信したビデオ・データをバッファにストアできる
    と判断した場合は、受信したビデオ・データをバッファ
    にストアする手段と、 d)受信したビデオ・データをバッファにストアできな
    いと判断した場合は、ビデオ・データのフレームのどの
    ビデオ・データも消去する手段と を具えたことを特徴とするビデオ・データ・フレーム伝
    送装置。
  8. 【請求項8】 請求項7に記載のビデオ・データ・フレ
    ーム伝送装置において、前記ストアする手段は、受信し
    たビデオ・データを待ち行列バッファにストアする手段
    と、待ち行列バッファを指しているポインタを更新する
    手段とを含むことを特徴とするビデオ・データ・フレー
    ム伝送装置。
  9. 【請求項9】 請求項8に記載のビデオ・データ・フレ
    ーム伝送装置において、前記消去する手段は、待ち行列
    バッファ内のロケーションを指しているポインタを、消
    去するデータ・フレームの前に移動する手段を含むこと
    を特徴とするビデオ・データ・フレーム伝送装置。
  10. 【請求項10】 請求項9に記載のビデオ・データ・フ
    レーム伝送装置において、ストアされたビデオ・データ
    を表示する手段をさらに具えたことを特徴とするビデオ
    ・データ・フレーム伝送装置。
  11. 【請求項11】 請求項10に記載のビデオ・データ・
    フレーム伝送装置において、ストアされたビデオ・デー
    タを、該ビデオ・データの表示の前にディスプレイ・ア
    ダプタへ転送する手段をさらに具えたことを特徴とする
    ビデオ・データ・フレーム伝送装置。
  12. 【請求項12】 請求項11に記載のビデオ・データ・
    フレーム伝送装置において、受信したビデオ・データを
    ディジタル化する手段をさらに具えたことを特徴とする
    ビデオ・データ・フレーム伝送装置。
  13. 【請求項13】 表示すべきビデオ・データのフレーム
    を伝送するデータ処理システムであって、 a)データを処理するプロセッサと、 b)処理すべきデータをストアするメモリと、 c)前記プロセッサに接続されたビデオ・アダプタであ
    って、 i)ビデオ・データのフレームの少なくとも一部を受信
    する手段と、 ii)受信したビデオ・データをバッファにストアでき
    るかどうかを判断する手段と、 iii)受信したビデオ・データをバッファにストアで
    きると判断した場合は、受信したビデオ・データをバッ
    ファにストアする手段と、 iv)受信したビデオ・データをバッファにストアでき
    ないと判断された場合は、ビデオ・データのフレームの
    どのビデオ・データも消去する手段とを有するビデオ・
    アダプタと、 d)ストアされたビデオ・データを、前記プロセッサの
    指示を受けて前記ビデオ・アダプタから表示するディス
    プレイとを具えたことを特徴とするデータ処理システ
    ム。
JP5238555A 1992-10-23 1993-09-24 ビデオ・データ・フレーム伝送方法および装置 Expired - Lifetime JPH0792654B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US96748792A 1992-10-23 1992-10-23
US967487 1992-10-23

Publications (2)

Publication Number Publication Date
JPH06215117A JPH06215117A (ja) 1994-08-05
JPH0792654B2 true JPH0792654B2 (ja) 1995-10-09

Family

ID=25512876

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5238555A Expired - Lifetime JPH0792654B2 (ja) 1992-10-23 1993-09-24 ビデオ・データ・フレーム伝送方法および装置

Country Status (4)

Country Link
US (1) US5392396A (ja)
EP (1) EP0597262B1 (ja)
JP (1) JPH0792654B2 (ja)
DE (1) DE69319544T2 (ja)

Families Citing this family (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5748627A (en) * 1994-06-10 1998-05-05 Harris Corporation Integrated network switch with flexible serial data packet transfer system
US5764964A (en) * 1994-10-13 1998-06-09 International Business Machines Corporation Device for protecting selected information in multi-media workstations
US5646651A (en) * 1994-12-14 1997-07-08 Spannaus; John Block mode, multiple access multi-media/graphics memory
US5872936A (en) * 1995-05-08 1999-02-16 Apple Computer, Inc. Apparatus for and method of arbitrating bus conflicts
AU6905496A (en) * 1995-09-01 1997-03-27 Philips Electronics North America Corporation Method and apparatus for custom operations of a processor
US5841994A (en) * 1996-06-14 1998-11-24 Texas Instruments Incorporated Portable computer with multiple zoom port interface
US5819114A (en) * 1996-08-15 1998-10-06 National Semiconductor Corporation Interrupption recovery and resynchronization of events in a computer
WO1998018074A1 (en) * 1996-10-22 1998-04-30 Philips Electronics North America Corporation System for providing custom operations of a processor for multimedia functions
US6480541B1 (en) 1996-11-27 2002-11-12 Realnetworks, Inc. Method and apparatus for providing scalable pre-compressed digital video with reduced quantization based artifacts
US5961659A (en) * 1997-06-30 1999-10-05 International Business Machines Corporation Independent simultaneous queueing of message descriptors
US5951706A (en) * 1997-06-30 1999-09-14 International Business Machines Corporation Method of independent simultaneous queueing of message descriptors
JP4095152B2 (ja) * 1998-03-09 2008-06-04 キヤノン株式会社 画像管理装置およびその方法、画像管理システム、記憶媒体
US7051287B1 (en) * 1998-12-14 2006-05-23 Canon Kabushiki Kaisha Display device with frame reduction, display control method thereof, and storage medium
US7549056B2 (en) 1999-03-19 2009-06-16 Broadcom Corporation System and method for processing and protecting content
US7797550B2 (en) * 2002-09-25 2010-09-14 Broadcom Corporation System and method for securely buffering content
JP4268290B2 (ja) * 1999-10-29 2009-05-27 パナソニック株式会社 受信装置および受信方法
US6580435B1 (en) * 2000-06-28 2003-06-17 Intel Corporation Overlay early scan line watermark access mechanism
GB0127234D0 (en) 2001-11-13 2002-01-02 British Sky Broadcasting Ltd Improvements in receivers for television signals
US7660512B2 (en) * 2003-10-16 2010-02-09 Microsoft Corporation Systems and methods for managing frame rates during multimedia playback
US7571246B2 (en) * 2004-07-29 2009-08-04 Microsoft Corporation Media transrating over a bandwidth-limited network
US20060184697A1 (en) * 2005-02-11 2006-08-17 Microsoft Corporation Detecting clock drift in networked devices through monitoring client buffer fullness
US7743183B2 (en) * 2005-05-23 2010-06-22 Microsoft Corporation Flow control for media streaming
JP5023709B2 (ja) 2006-04-03 2012-09-12 株式会社デンソー 通信システム及び通信装置
US20070268298A1 (en) * 2006-05-22 2007-11-22 Alben Jonah M Delayed frame buffer merging with compression
US8565083B2 (en) * 2008-07-25 2013-10-22 Telefonaktiebolaget Lm Ericsson (Publ) Thinning of packet-switched video data
US9530189B2 (en) 2009-12-31 2016-12-27 Nvidia Corporation Alternate reduction ratios and threshold mechanisms for framebuffer compression
US8443097B2 (en) * 2010-04-12 2013-05-14 Alcatel Lucent Queue management unit and method for streaming video packets in a wireless network
US8823719B2 (en) * 2010-05-13 2014-09-02 Mediatek Inc. Graphics processing method applied to a plurality of buffers and graphics processing apparatus thereof
US9014497B2 (en) 2010-12-14 2015-04-21 Telefonaktiebolaget L M Ericsson (Publ) Tile encoding and decoding
US10043234B2 (en) 2012-12-31 2018-08-07 Nvidia Corporation System and method for frame buffer decompression and/or compression
US9591309B2 (en) 2012-12-31 2017-03-07 Nvidia Corporation Progressive lossy memory compression
US9607407B2 (en) 2012-12-31 2017-03-28 Nvidia Corporation Variable-width differential memory compression
US9832388B2 (en) 2014-08-04 2017-11-28 Nvidia Corporation Deinterleaving interleaved high dynamic range image by using YUV interpolation

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4511965A (en) * 1983-03-21 1985-04-16 Zenith Electronics Corporation Video ram accessing system
US4646261A (en) * 1983-09-27 1987-02-24 Motorola Computer Systems, Inc. Local video controller with video memory update detection scanner
US4642794A (en) * 1983-09-27 1987-02-10 Motorola Computer Systems, Inc. Video update FIFO buffer
US5130810A (en) * 1983-11-23 1992-07-14 Macrovision Corporation Method and apparatus for processing a video signal so as to prohibit the making of acceptable videotape recordings
US4703439A (en) * 1984-12-05 1987-10-27 The Singer Company Video processor for real time operation without overload in a computer-generated image system
US4777486A (en) * 1986-05-09 1988-10-11 A-Squared Systems Video signal receiver for computer graphics system
US4985848A (en) * 1987-09-14 1991-01-15 Visual Information Technologies, Inc. High speed image processing system using separate data processor and address generator
US4885703A (en) * 1987-11-04 1989-12-05 Schlumberger Systems, Inc. 3-D graphics display system using triangle processor pipeline
US4962463A (en) * 1988-07-01 1990-10-09 Digital Equipment Corporation Video imaging device with image altering controls and related method
US5229852A (en) * 1989-12-05 1993-07-20 Rasterops Corporation Real time video converter providing special effects
GB2265733A (en) * 1992-03-26 1993-10-06 Ibm Buffering and computer display of video signals.

Also Published As

Publication number Publication date
DE69319544D1 (de) 1998-08-13
JPH06215117A (ja) 1994-08-05
DE69319544T2 (de) 1999-03-04
EP0597262A2 (en) 1994-05-18
EP0597262A3 (en) 1996-05-15
EP0597262B1 (en) 1998-07-08
US5392396A (en) 1995-02-21

Similar Documents

Publication Publication Date Title
US5511165A (en) Method and apparatus for communicating data across a bus bridge upon request
US5392396A (en) Method and apparatus for gradually degrading video data
US5655112A (en) Method and apparatus for enabling data paths on a remote bus
USRE38134E1 (en) System for communications where first priority data transfer is not disturbed by second priority data transfer and where allocated bandwidth is removed when process terminates abnormally
US6425021B1 (en) System for transferring data packets of different context utilizing single interface and concurrently processing data packets of different contexts
US6052744A (en) System and method for transferring concurrent multi-media streams over a loosely coupled I/O bus
US5870622A (en) Computer system and method for transferring commands and data to a dedicated multimedia engine
US5793996A (en) Bridge for interconnecting a computer system bus, an expansion bus and a video frame buffer
US7124207B1 (en) I2O command and status batching
US6985484B1 (en) Packetized data transmissions in a switched router architecture
JP3336816B2 (ja) マルチメディア通信装置及び方法
US7496699B2 (en) DMA descriptor queue read and cache write pointer arrangement
US5692211A (en) Computer system and method having a dedicated multimedia engine and including separate command and data paths
US6247084B1 (en) Integrated circuit with unified memory system and dual bus architecture
US7200695B2 (en) Method, system, and program for processing packets utilizing descriptors
EP0834136B1 (en) Computer system having a dedicated multimedia engine including multimedia memory
US20090259789A1 (en) Multi-processor, direct memory access controller, and serial data transmitting/receiving apparatus
US6954818B2 (en) Providing a burst mode data transfer proxy for bridging a bus
KR19990082226A (ko) 버스 구조 위에서의 데이터 전달 및 버스 관리를 위한 응용 프로그래밍 인터페이스
EP0898751B1 (en) Computer system having a multimedia engine coupled to a real-time data cache
JPH06266649A (ja) 複数のデータチャネルを介してデータを転送する方法及びその回路アーキテクチャ
US20040117516A1 (en) System controller using plural CPU's
US6532019B1 (en) Input/output integrated circuit hub incorporating a RAMDAC
JP4798849B2 (ja) グラフィックスエンジンマスターモード動作の改良
US20020178274A1 (en) System for digital stream transmission and method thereof