(57)【特許請求の範囲】
【請求項１】
複数の独立のフレーム・バッファのそれぞれごとの垂直ブランキング信号を同期させる装置であって、
複数のＲＡＭＤＡＣを備え、それらはそれぞれ、対応するレンダリング制御装置およびディスプレイ・モニタに結合されており、１つが、マスタとして動作し、他がスレーブとして動作し、それぞれ、垂直ブランキング信号を生成する論理機構を含み、それぞれのスレーブＲＡＭＤＡＣは、前記垂直ブランキング信号論理機構をリセットする信号を生成するリセット論理を備え、
マスタとして動作する前記ＲＡＭＤＡＣは、さらに、スレーブとして動作する前記複数のＲＡＭＤＡＣのそれぞれに供給するフィールド信号を生成するフィールド信号ジェネレータを備え、
さらに、
ａ）ＶＳＡＰ（垂直同期アサート・ポイント）レジスタと、ＶＳＮＰ（垂直同期否定ポイント）レジスタと、ＥＩＡＰ（等化間隔アサート・ポイント）レジスタと、ＥＩＮＰ（等化間隔否定ポイント）レジスタと、ＶＢＡＰ（垂直ブランク・アサート・ポイント）レジスタと、ＶＢＮＰ（垂直ブランク否定ポイント）レジスタとを含む１組のレジスタと、
ｂ）前記１組のレジスタおよび前記フィールド信号ジェネレータに結合された水平カウンタおよび垂直カウンタと、
ｃ）前記水平カウンタおよび垂直カウンタならびに前記１組のレジスタに結合された等性比較器と、
ｄ）前記等性比較器および前記１組のレジスタに結合された事象レジスタと
を備え、
前記フィールド信号を受け取った各スレーブＲＡＭＤＡＣは、前記リセット論理機構を動作させ、それによって対応する表示モニタに供給されるビデオ信号を同期させることを特徴とする装置。
【請求項２】
前記１組のレジスタは、さらに、ＨＳＮＰ（垂直同期否定ポイント）レジスタと、ＨＢＮＰ（水平ブランク否定ポイント）レジスタと、ＨＢＡＰ（水平ブランク・アサート・ポイント）レジスタと、そしてＨＳＡＰ（水平同期アサート・ポイント）レジスタとを備え、それらのレジスタはそれぞれ、０＜ＨＳＮＰ＜ＨＢＮＰ＜ＨＢＡＰ＜ＨＳＡＰの関係を有する値を含むことを特徴とする請求項１に記載の装置。
【請求項３】
ＶＳＮＰ、ＥＩＮＰ、ＶＢＮＰ、ＶＢＡＰ、ＥＩＡＰそしてＶＳＡＰレジスタはそれぞれ、０＜ＶＳＮＰ＜ＥＩＮＰ＜ＶＢＮＰ＜ＶＢＡＰ≦ＥＩＡＰ≦ＶＳＡＰの関係を有する値を含むことを特徴とする請求項１に記載の装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、コンピュータ・システムに関し、詳細には、データをフレーム・バッファから出力表示装置へ送り処理するために使用されるＲＡＭＤＡＣ（ランダム・アクセス・メモリ・ディジタル−アナログ変換器）に関する。
【０００２】
【従来の技術】
デスクトップ・コンピュータの動作速度の増加に伴う１つの重要な問題は、情報を出力表示装置へ送る速度を増加させる方法を見つけることであった。現在利用できる多数の様々なデータの形式は、大量のデータを送る必要がある。たとえば、コンピュータ出力表示モニタが、画面上に一度に１２８０×１０２４画素が表示され、各画素を決めるために３２ビットが使用されるカラー・モードで動作している場合、表示される個別の各画像（「フレーム」と呼ばれる）に対して合計で４００万ビットを超える情報を画面へ送らなければならない。通常、毎秒５億ビットが表示され、したがって、そのようなシステムでは毎秒１５億ビットを送らなければならない。これには非常に大量の処理能力が必要である。
【０００３】
そのような大量の情報を出力表示装置供給供するために、コンピュータ・システムは通常、出力ディスプレイ上に表示すべき画素データを保持するフレーム・バッファを使用する。
【０００４】
通常、フレーム・バッファは、表示すべき１データ・フレームを記憶するためにかなりの量のランダム・アクセス・メモリを必要とする。フレーム・バッファ中の情報は、フレーム・バッファからディスプレイへ毎秒６０回以上送られる。各転送後（または転送中）、フレーム・バッファ中の画素データは、次のフレームに表示すべき新しい情報で更新される。
【０００５】
ＤＲＡＭフレーム・バッファでは、画素データは、それが書き込まれたときと同じポートから読み取ることができる。ＶＲＡＭフレーム・バッファでは、主画素ポートがレンダリング用に解放されたままになるように別のビデオ・データ・ポートが追加される。情報をフレーム・バッファからディスプレイへ送り、同時に、他の情報をフレーム・バッファにロードすることができるように、２ポート付きビデオ・ランダム・アクセス・メモリ（ＶＲＡＭ）またはフレーム・バッファ・ランダム・アクセス・メモリ（ＦＢＲＡＭ）で動的ランダム・アクセス・メモリを代替させている。
【０００６】
ＶＲＡＭから得たデータは、それを出力表示装置が使用できる形に変換する回路に入力される。図１は、本発明を使用できるコンピュータ・システムを示す。この場合、ホストＣＰＵ１２から得たメモリ１１中のデータがホスト・バス１３上に置かれ、レンダリング制御装置１４によって、図１にＶＲＡＭ１５ａないし１５ｄとして示したフレーム・バッファに渡される。ただし、ＦＢＲＡＭを使用することもできる。ＲＡＭＤＡＣ２１は、レンダリング制御装置を介してホスト・バスに結合され、かつフレーム・バッファに結合され、フレーム・バッファから得た１６ビット・データを、モニタ２５中の画素位置で組み合わされたときにその画素で所望の色を形成する赤色、青色、緑色用の電圧レベルを表す３つのアナログ信号としてディジタル−アナログ変換器（ＤＡＣ）によって変換される６４ビットまたは１２８ビットのディジタルＲＧＢ信号に変換するためのルックアップ・テーブル（またはＬＵＴ、すなわちＲＡＭＤＡＣのＲＡＭ部分）およびその他の要素を含む。フレーム・バッファ、レンダリング制御装置、モニタの構成要素の詳細は、当業者には周知であり、本発明を適切に理解するために必要なものを除いて本明細書では説明しない。なお、本発明は主として、本発明の改良された機能を提供するＲＡＭＤＡＣ２１のある種の改良に関するものである。
【０００７】
【発明が解決しようとする課題】
ステレオ・ディスプレイ、バーチャル・リアリティ、ビデオ記録を含むある種の応用分野では、複数のフレーム・バッファの垂直ブランキングを同期させる必要がある。フレーム・バッファは同じコンピュータ上に存在することも、あるいは別々のコンピュータ上に存在することもできる。
【０００８】
テレビ・スタジオでは、これと同様ではあるがずっと複雑な同期問題に出会い解決している。この場合、カメラ、エンコーダ、特殊効果ジェネレータ、レコーダ、変調器を同期動作させる必要がある。マスタ・ジェネレータは、装置の全体的な構造のための、Ｇｅｎｌｏｃｋと呼ばれるタイミング基準および周波数基準を提供する。しかし、Ｇｅｎｌｏｃｋ信号を生成するには、ビデオ同期フィルタリング及び獲得ハードウェアが必要であり、そのため、システムにコストが追加されることがある。
【０００９】
同期すべきグループ中のすべてのフレーム・バッファは、それ自体のタイミング・ジェネレータを含む。すべてのフレーム・バッファは、同じビデオ・タイミングを使用するようにプログラムされる。各フレーム・バッファが使用する基準周波数が変動すると、フレーム・バッファのビデオ・タイミングが他のフレーム・バッファに対してドリフトする。さらに、垂直同期事象を同期させる機構がない場合、すべてのフレーム・バッファにおいてこの事象の時間がずれることになる。
【００１０】
【課題を解決するための手段】
本発明は、１つのフレーム・バッファがマスタになる。マスタ・フレーム・バッファは、それ自体上でのあらゆる垂直同期事象の開始時に状態を変化させる（０から１へ、あるいは１から０へ）ＦＩＥＬＤと呼ばれる信号を提供する。他のすべてのフレーム・バッファはスレーブになるようにセットされる。これらのフレーム・バッファのタイミング・ジェネレータはマスタのフィールド信号をサンプリングする。タイミング・ジェネレータは、マスタのフィールド信号が状態を変化させたことを検出すると、それ自体の内部タイミングを一致するように設定する。本発明の実施態様によれば、すべてのフレーム・バッファは、非零値から零までの内部カウンタの遷移を垂直同期事象として使用する。スレーブ・フレーム・バッファは、その垂直カウンタを零に設定し、マスタのフィールド信号の変化を検出したときにその内部フィールド信号状態をマスタの内部フィールド信号状態にセットする。
【００１１】
これによって、フレームを同期させる非常に廉価な技法が提供される。これは、Ｇｅｎｌｏｃｋほど厳密なものではないが、実施がずっと簡単である。
【００１２】
【発明の実施の形態】
２台以上のコンピュータによって生成された関連画像または連続画像を表示する２台以上のビデオ・モニタを使用するシステムは、コンピュータが単一のタイミング基準で動作しないので、表示される画像に収差を示すことがある。本発明は、表示される画像中のそのような収差を著しく低減させる簡単で低コストの技法を提供するものである。
【００１３】
図２は、３つのシステムを有する仮説的な構成を表す。システムの数は、議論中の原則に影響を与えずに増減させることができる。これらのシステムはそれぞれ、ＲＡＭＤＡＣ２１、またはグラフィックス・エンジン、またはレンダリング制御装置１４、フレーム・バッファ・メモリ１５、ホスト・コンピュータ１２など他のビデオ・データ源を含む。ＲＡＭＤＡＣ以外の構成要素は、完全なシステム中のＲＡＭＤＡＣの実施態様の例として含まれる。図の一番上には、３つのビデオ・ディスプレイ上に表示されたビジュアル・データを観測する人を表すビューアというボックスがある。
【００１４】
この構成の１つの重要な特徴は、表示されるビデオ・データの性質である。データは互いに関係しており、したがって、完全なシーンを表すには、すべての３つのディスプレイが必要である。表示されるデータが静的なものではなく、動きの印象を伝えることも重要である。たとえば、そのような構成は、ビデオ・ディスプレイ２がシミュレータ・コックピットの前方の視野を提供し、ビデオ・ディスプレイ１および３が左および右の視野を提供するフライト・シミュレータの一部として使用することができる。これらのディスプレイはそれぞれ、シミュレーションにかなりの「リアリティ」を与える立体ディスプレイである。この場合、各ビデオ・ディスプレイは交互にかつ同期的に左目の視野および右目の視野を与えなければならない。ビューアは、各目ごとのシャッタとして働き、交互にかつ同期的に左側データを左目に受け入れ、右側データを右目に受け入れる特殊なゴーグルを装着する。同期が必要であるのは明らかであるが、同期は、図２に示したように３つのディスプレイを並置したことの当然の結果ではない。これにはいつかの理由があり、それらはすべて、ＲＡＭＤＡＣ、グラフィックス・エンジン、ホストＣＰＵで処理が行われる速度と、グラフィックス・エンジンによってフレーム・バッファに対してレンダリングされるデータの量を調整するクロックに関係するものである。
【００１５】
単一のシステム、すなわち、図２に示した３つのシステムのうちの１つを考える。そのようなシステムのすべての構成要素が１つのクロック周波数で動作するようにすることは実際的ではない。ＣＰＵおよびグラフィックス・エンジンはそれぞれ、最大クロック周波数で動作するように設計されるが、これらの周波数はそれぞれ異なる。それぞれ、様々なビデオ表示フォーマットによって決まるある種の基本時間単位、すなわち画素周期に関係する、いくつかの周波数で動作するにはＲＡＭＤＡＣが必要である。したがって、ビデオ・データがレンダリングされる速度は、ビデオ・データが表示しなければならない速度とは関係がない。この差は、グラフィックス・エンジンからのレンダリング済みデータをある速度で受け入れ、このデータをＲＡＭＤＡＣへ異なる速度、通常はより高速で送るフレーム・バッファによって調整される。これは、表示されるデータが静的画像を生成する場合はうまくいく。動き（アニメーション）が必要である場合は、より大規模なフレーム・バッファが必要である。この大規模なバッファは、２つの部分に分割される。これらの部分を都合上バッファＡおよびＢと呼ぶ。これらのバッファはそれぞれ、グラフィックス・エンジンおよびＲＡＭＤＡＣに接続される。この二重バッファリング方式は下記のように機能する。アニメーション・シーケンスの第１の視野がバッファＡにレンダリングされる。レンダリングが完了すると、ＲＡＭＤＡＣは、ビデオ・タイミング・ジェネレータの垂直ブランキング・ポイントに同期する制御機構から、バッファＡからのデータを表示するよう命令される。これが行われた後、ＣＰＵおよびグラフィックス・エンジンは、次の視野に関するデータのバッファＢへのレンダリングを開始する。レンダリングが完了すると、バッファＡとバッファＢの役割（レンダリングおよび表示）が逆になる。このプロセスが継続し、その結果、顕著な収差なしで円滑な動きのイリュージョンが得られる（レンダリング速度が十分に高いものとする）。バッファの切替が行われるポイントは、レンダリングが完了し、次のビデオ垂直ブランキング間隔に到達することによってトリガされる。後者の事象は、ＲＡＭＤＡＣのタイミング・ジェネレータ回路によってもたらされ、外部には、フィールド信号と呼ばれる信号として現れる。フィールド信号の遷移は、新しいビデオ・フレーム（フレームとは１つの完全な画像である）が開始することを示す。本明細書で説明する実施形態では、非インタレース・モノスコープ表示の場合のフィールド信号遷移の方向は無関係である。しかし、立体表示およびインタレース表示の場合は、遷移の方向は非常に重要である。前者の場合、フィールド信号のレベルは、ＲＡＭＤＡＣ、ビデオ・ディスプレイ、立体ゴーグルがもしあれば、それらによってどちらの立体視野を処理し、表示すべきであるか、すなわち左側を処理して表示すべきか、それとも右側を処理して表示すべきであるかを示す。後者の場合、フィールド信号のレベルは、現フィールドを奇数フィールドまたは偶数フィールドとして識別する。
【００１６】
二重バッファ・フレーム・バッファは、立体モードで使用されるときは再構成される。バッファＡおよびＢは保持されるが、それぞれ、再び２つのバッファに分割される。これらのバッファのうちの一方は、左目の視野に属するデータを保持し、他方は右目の視野に属するデータを保持する。前述のレンダリング動作および表示動作は、立体モードでも適用される。
【００１７】
図２は、関連ビデオ・データまたは連続ビデオ・データを表示しなければならない３つのシステムを示す。したがって、すべてのシステムは、バッファ切替動作を同時にトリガできるように、特定のビデオ・フレームのレンダリングが完了した際にそれを知る必要がある。各システムが、レンダリング作業のそのシステムの部分を完了するのに必要な時間は主として、レンダリング中のシーンの内容に依存する。このような内容は３つのシステム間で異なる。したがって、完了時間はそれぞれ異なる。ソフトウェアおよびローカル・エリア・ネットワーク１７を使用して３つのシステム中のレンダリングの進行が監視される。すべてのシステムがそのレンダリング作業をトリガした後、バッファ切替動作はローカル・エリア・ネットワークを介してトリガされる。この機能は、同期問題の１つの局面を解決する。３つのＲＡＭＤＡＣ用のタイミング基準（クロック）が相互に独立しているので、他の問題が存在する。バッファ切替動作用のトリガはほぼ同時に行うことができるが、前述の回路によって３つのフィールド信号の同時遷移を確保することはできない。
【００１８】
３つのＲＡＭＤＡＣはそれぞれ、単一の公称周波数で動作する３つの独立した結晶制御式発振器（図２には図示せず）によって生成されたクロック信号を受け取る。これらの発振器によって生成される実際の周波数は、結晶共振器の交差および温度や電圧（ある程度）などのローカル条件に依存する値の範囲内で変動する。原則的に、かつ実際上、２つ以上のそのような発振器が長期間にわたって同じ周波数を生成するようにすることは不可能である。たとえば、３つのそのような発振器が、ビデオ・ディスプレイではなく、３つの時計によって使用される３つのカウンタ回路に接続されると仮定する。すべての３つのシステムを同じ瞬間にオンにし、数時間動作させた後にクロックを比較する場合、示される時間はそれぞれ異なり、この差は時間の経過と共に増大する。図２に示した前述の仮説的システムでも同じ現象が発生する。十分な時間を与えた場合、３つのシステムは、フィールド信号によって示されるビデオ垂直ブランキング間隔をそれぞれの異なる時間に開始する。これをモノスコープ・システムで行った場合、影響は顕著なものになる。立体システムでは、左目と右目がすべての３つのシステムにおいてコヒーレントであるわけではないので、影響が甚大である。
【００１９】
本発明によって提供される解決策は、３つの発振器を同期させようとするものではない。その代わりに、本発明は、（発振器の基準となる）３つのＲＡＭＤＡＣのビデオ・タイミング・ジェネレータ回路で生成される事象を同期させる。この手法は、発振器間の差が、小さな時間間隔にわたって測定された場合には小さいということを利用するものである。連続フィールド信号間の周期は、そのように短い間隔である（周期は、特定のビデオ・フォーマットの関数として変化し、通常の実施形態でサポートされるビデオ・フォーマットでは最大で２０ミリ秒であり、最小で約１３ミリ秒である）。図の仮説的な構成では、システム１はマスタとして働くようにプログラムされ、システム２および３はスレーブとして働くようにプログラムされる。図中の矢印が示すように、マスタ・システムはフィールド信号を放出し、スレーブ・システムがそれを受け取る。したがって、システム１は、垂直間隔タイミング基準の供給源となり、立体モードでは、立体ゴーグル用の制御信号の供給源になる。スレーブは、水平同期、垂直同期、ブランキングなどのビデオ・タイミング信号を生成するカウンタ（水平次元および垂直次元）をリセットすることによって、受け取ったフィールド信号に応答する。リセット状態は、マスタＲＡＭＤＡＣがフィールド信号で遷移を放出し、すなわち必要な同期を行った時点でマスタＲＡＭＤＡＣに存在する状態と同じ状態として定義される。３つのシステムを観測した場合、垂直ブランキング（またはフレームの始め）がほぼ同時に発生することが分かる。これらの事象が発生する時間の差は、相互接続ケーブルにおいてカウンタが実際にリセットされる瞬間に発生する遅延によってもたらされる。このような差は非常に小さく（マイクロ秒台）、ビューアは知覚することはできない。本発明は、このように同期を行う方法と、使用する回路素子に関するものである。
【００２０】
図３は、本発明を実施するために使用できるＲＡＭＤＡＣ２１の構成要素を示す。ＲＡＭＤＡＣは、ＣＰＵポート、インタフェース論理機構、アドレス・ポインタ、データ・レジスタ３１、画素ポート、画素入力レジスタ、直列化機構３３、陰影及びＲＡＭルックアップ・テーブル、転送制御及びオーバレイ・アンダレイ論理機構３５、色モデル選択機構３７、カーソル論理直列化機構３９、モニタ直列ポート４１、診断レジスタ及び制御論理機構４３、ディジタル−アナログ変換器（ＤＡＣ）４５ａないし４５ｃ、ＰＬＬクロック・シンセサイザ、画素クロック・ディバイダ、ビデオ・タイミング・ジェネレータ４９の各機能ブロックを含む。本発明は主として、他のＲＡＭＤＡＣが前述のように使用して同期を行うためのフィールド信号を生成するＰＬＬクロック・シンセサイザ、画素クロック・ディバイダ、ビデオ・タイミング・ジェネレータ４９のビデオ・タイミング・ジェネレータ構成要素の実施態様に関するものである。したがって、下記の説明は、ビデオ・タイミング・ジェネレータに限られ、ＲＡＭＤＡＣの他の構成要素に関する情報は、本発明を理解するための必要に応じてのみ提供される。図３に示した他の構成要素は、それぞれの異なる製造業者のＲＡＭＤＡＣ間で異なるが、当業者なら、このような様々な構成要素を認識しており、かつそれらまたはその等価物をどのように実施できるかが分かっていよう。
【００２１】
フレーム・バッファ・データが、画素ポート信号として画素ポートに与えられる。その際、画素入力は、それぞれ４つの群からなる、ＡおよびＢと呼ばれる２つのポートに分割される。さらに、各群は、上部バイトと下部バイトに分割される。したがって、画素ポートは、群０ないし７に含まれる合計で１２８画素ビットを備える。表１は、この割り当てを示す。
【表１】
0003795569.tif 000002
【００２２】
しかし、フレーム・バッファ画素データをＲＡＭＤＡＣの画素ポートに提供する方法の詳細は変更することができ、本発明を理解するうえで重大なものではない。
【００２３】
ビデオ・タイミング・ジェネレータ
本発明は、順次クロックで動作しビデオ表示信号およびビデオ・メモリ・タイミング基準信号を提供するプログラム可能なタイミング・ジェネレータを使用する。
【００２４】
タイミング・ジェネレータは、下記に説明する信号を生成する。タイミング・ジェネレータは、２つの次元、具体的には、ビデオ表示フォーマットの水平走査に対応する水平次元とビデオ表示フォーマットの垂直走査に対応する垂直次元で動作する。水平同期など水平次元での事象は、順次クロック周期によって規定される境界上に配置される。非インタレース表示の場合は水平走査の総数、インタレース表示の場合は水平走査の半数によって決まる境界上に配置される。水平走査内の順次クロック周期の数は可変であり、ビデオ・フレーム内の水平走査の数は可変である。タイミング・ジェネレータの設計では、ジェネレータの出力は、ＲＡＭＤＡＣの出力で観測されたときに、画素ポートに入力中のビデオ・データに対して正しく配置する必要がある。たとえば、ジェネレータが、画素番号ｐに一致するある事象をアサートするようにプログラムされている場合、その事象は、ＲＡＭＤＡＣ出力では、画素番号ｐに対応する位置で発生しているように見える。タイミング・ジェネレータは、後述の基本フレーム同期機構を備える。最後に、タイミング・ジェネレータは下記の表２「タイミング・ジェネレータ制御レジスタ」に示した制御レジスタ・ビット定義を有するタイミング・ジェネレータ制御レジスタを備える。このレジスタは、多重化データ／アドレス・バスＤ［０７：００］に結合されたＣＰＵポートおよびインタフェース論理機構を通じホストＣＰＵ１２の制御の下で読み取られ書き込まれる。
【表２】
0003795569.tif 000003
【００２５】
フレーム同期
タイミング・ジェネレータによって、いくつかの表示のビデオ・フレーム同期が可能になる。タイミング・ジェネレータは、タイミング・ジェネレータ制御レジスタのビット５の指定に応じてマスタとして動作することも、あるいはスレーブとして動作することもできる。
【００２６】
タイミング・ジェネレータがマスタとして動作するとき、フィールド信号は、下記の表３「タイミング・ジェネレータの信号の説明」に記載した周期関数を生成する出力である。
【００２７】
タイミング・ジェネレータがスレーブとして動作するとき、フィールド信号は、ジェネレータの水平要素および垂直要素を垂直同期の始めに対応するように設定するように働く入力である。スレーブ・モードで動作するタイミング・ジェネレータは、フィールド信号をドライブしない。スレーブ・モードの詳細を下記に記載する。
【００２８】
システム・リセット
システム・リセット信号ＲＳ* は、アサートされたときに下記の３つの効果をもたらす。
【００２９】
システム・リセットをアサートすることによって、Ｖｉｄｅｏ  Ｅｎａｂｌｅ（タイミング・ジェネレータ制御レジスタのビット０）が強制的にディスエーブル状態にされる。この条件は、システム・リセットが否定された後も持続し、ＣＰＵポートを介して上書きされるまでディスエーブル状態のままである。Ｖｉｄｅｏ  Ｅｎａｂｌｅは、ディスエーブル状態（すなわち、リセット）のとき、ビデオ・モニタが黒色のままになるようにＲＡＭＤＡＣ内の複合ブランキングをアサートし、たとえば、構成データおよび制御データがタイミング・ジェネレータにロードされるシステム・ブート時にランダム・パターンまたはフラッシングがディスプレイ上に表示されるのを防止する。
【００３０】
システム・リセットは、アサートされたとき、下記のようにタイミング・ジェネレータに強制的に既知の状態をとらせる。システム・リセットをアサートすることによって、Ｔｉｍｉｎｇ  Ｇｅｎｅｒａｔｏｒ  Ｅｎａｂｌｅ（タイミング・ジェネレータ制御レジスタのビット１）は強制的にディスエーブル状態になる。この条件は、システム・リセットが否定された後も持続し、ＣＰＵポートを介して上書きされるまでディスエーブル状態のままである。この目的は、タイミング・ジェネレータがプログラムされているときにタイミング・ジェネレータを既知の状態に保持し、それによって、そのようなプログラミング中にランダムフィールド信号、ＳＣ信号、ＳＣｅｎ信号が他の構成要素に供給されないようにすることである。
【００３１】
システム・リセットは、アサートされたときにタイミング・ジェネレータをスレーブ・モードにする。タイミング・ジェネレータがスレーブ・モードになると、フィールド信号は高インピーダンス・モードになる。
【００３２】
タイミング・ジェネレータの信号
タイミング・ジェネレータの信号を下記の表３「タイミング・ジェネレータの信号の説明」で説明する。
【表３】
0003795569.tif 000004
【００３３】
タイミング・ジェネレータ表示フォーマット
タイミング・ジェネレータは、タイミング・ジェネレータ制御レジスタに適当な値をプログラムすることによって制御される。これらのレジスタを下記の表４「構成関数」にリストする。
【表４】
0003795569.tif 000005
【００３４】
インタレース動作モードと非インタレースモードの両方がサポートされる。すべての水平レジスタ値は順次クロック・レートの単位である。すべての垂直レジスタ値は水平線の単位である。通常の実施形態では、レジスタにロードすべき値は所望のカウントまたは継続時間よりも１だけ小さい。このようなモードのプログラミングについて下記のパラグラフで説明する。
【００３５】
非インタレースモード
ＲＡＭＤＡＣは、インタレースモードのセレーテッド同期サポートだけでなく、非インタレースモード向けのセレーテッド同期のセレーテッド同期の生成もサポートする。複合同期は、垂直同期間隔の外側で水平同期を使用し、垂直同期間隔中にセレーテッド同期波形を使用することによって得られる。下記の説明に関する図４「タイミング生成−非インタレース・フォーマット」にこのことを図示する。
【００３６】
水平タイミング生成
水平同期信号およびセレーテッド同期信号を生成するには、ＨＳＡＰ（水平同期アサート・ポイント）レジスタ、ＨＳＮＰ（水平同期否定ポイント）レジスタ、ＨＳＥＲＮＰ（水平セレーション否定ポイント）レジスタに所望の継続時間をＳＣ* クロック単位（後述の順次クロック）でプログラムする。すべてのパラメータは、所望の継続時間よりも１だけ小さな値としてプログラムすべきである。
【００３７】
この動作は下記のように説明することができる。水平カウンタが値零から開始し、ＨＳＹＮＣ* 波形およびＳＥＲＲＡＴＩＯＮ* 波形が活動状態になる（すなわち低くなる）。カウンタがＨＳＮＰ値に達すると、次の順次クロックでＨＳＹＮＣ* がデアサートされる。水平カウンタは、プログラムされたＨＳＥＲＮＰ値に達するまでカウントを継続し、達した時点で、次の順次クロックでＳＥＲＲＡＴＩＯＮ* 波形がデアサートされる。水平カウンタは、ＨＳＡＰ値に達するまで継続し、その後、次の順次クロックで零から再開する。活動画面領域に関係する相対レジスタ値を示す図を図４「タイミング生成−非インタレースフォーマット」に示す。複合同期の生成に関するタイミング図を図５「水平タイミングおよび複合同期生成−非インタレースフォーマット」に示す。
【００３８】
水平ブランキング信号の生成は比較的簡単であり、水平カウンタがＨＢＡＰ（水平ブランク・アサート・ポイント）レジスタにプログラムされた値に達した後、次の順次クロックでＨＢＬＡＮＫ* がアサートされる。次いで、水平カウンタがＨＢＮＰ（水平ブランク否定ポイント）レジスタにプログラムされた値に達した後、次の順次クロックでＨＢＬＮＫ* がデアサートされる。
【００３９】
水平タイミングレジスタ値は下記の関係を満たすべきである。
０＜ＨＳＮＰ＜ＨＢＮＰ＜ＨＢＡＰ＜ＨＳＡＰ
【００４０】
垂直タイミング生成
ＶＳＹＮＣ* 垂直タイミング信号は、ＶＳＮＰ（垂直同期否定ポイント）レジスタおよびＶＳＡＰ（垂直同期アサート・ポイント）レジスタに含まれる値を使用して生成される。ＶＢＬＡＮＫ* 垂直タイミング信号は、ＶＢＡＰ（垂直ブランク・アサート・ポイント）レジスタおよびＶＢＮＰ（垂直ブランク否定ポイント）レジスタに含まれる値を使用して生成される。非インタレースモードでは、すべての垂直タイミング・レジスタ間隔が水平線の単位（すなわちロード周期* ＨＳＡＰ）で指定される。垂直タイミング・カウンタは各水平同期アサート時間で増分される。その後、垂直タイミング信号が遷移できるのは、ＨＳＹＮＣ* がアサートされたときだけである。
【００４１】
垂直タイミング・レジスタは、下記の関係を満たすようにプログラムすべきである。
０＜ＶＳＮＰ＜ＶＢＮＰ＜ＶＢＡＰ＜ＶＳＡＰ
【００４２】
複合ブランキング信号は、ＨＢＬＡＮＫ* とＶＢＬＡＮＫ* との論理和をとることによって得られる。
【００４３】
インタレースモード
インタレースモードでは、等化間隔および垂直同期間隔中の複合同期及びビデオ信号の性質のために、タイミング事象はハーフライン量に基づくものとなる。
【００４４】
水平タイミング生成
ＨＳＹＮＣ* 波形およびＳＥＲＲＡＴＩＯＮ* 波形は、非インタレースモードの場合と同じ波形として生成される。ただし、ＨＳＹＮＣ* 波形およびＳＥＲＲＡＴＩＯＮ* 波形は各走査線ごとに２回発生する。インタレースモード向けの複合同期／ビデオ波形の生成に対するこれらの信号の寄与について以下説明する。ＨＳＹＮＣ* 波形およびＳＥＲＲＡＴＩＯＮ* 波形は、走査線にもフィールド信号の状態にも依存しないで、水平カウンタの内容のみを使用して生成される。しかし、ＨＢＬＡＮＫ* の生成は、現ＦＩＥＬＤと垂直走査線カウンタの関数でもある。プログラムされたレジスタ値と波形との間の関係を図６「水平タイミング波形−インタレースフォーマット」に示す。この図では、偶数フィールドの場合、ｎの値は偶数であり、奇数フィールドの場合、ｎの値は奇数である。水平ブランキング信号を生成するための真理値表を表５に示す。
【表５】
0003795569.tif 000006
【００４５】
垂直タイミング生成
インタレースモードでの垂直事象に使用されるレジスタは、ＶＳＡＰ（垂直同期アサート・ポイント）、ＶＳＮＰ（垂直同期否定ポイント）、ＥＩＡＰ（等化間隔アサート・ポイント）、ＥＩＮＰ（等化間隔否定ポイント）、ＶＢＡＰ（垂直ブランク・アサート・ポイント）、ＶＢＮＰ（垂直ブランク否定ポイント）である。いくつかの垂直タイミング信号は、垂直カウンタ値（ＶＳＹＮＣ* ，ＥＱＵＡＬＩＺＡＴＩＯＮ* ）にしか依存せず、その他の垂直タイミング信号は現フィールド（ＶＢＬＡＮＫ* ，ＦＩＥＬＤ）にも依存する。
【００４６】
垂直カウンタは内部ＨＳＹＮＣ* 信号の各立上りで増分される。したがって、すべての垂直タイミング・レジスタはハーフライン量（たとえば、ＮＴＳＣ用のＶＳＡＰは５２５本のハーフラインを有する。５２５本のハーフラインの場合、５２４としてプログラムされる）を使用してプログラムしなければならない。垂直ブランキング信号を生成するための真理値表を下記の表６「垂直ブランク生成−インタレースモード」に示す。
【表６】
0003795569.tif 000007
【００４７】
垂直タイミング・レジスタは下記の関係を満たすべきである。
０＜ＶＳＮＰ＜ＥＩＮＰ＜ＶＢＮＰ＜ＶＢＡＰ≦ＥＩＡＰ≦ＶＳＡＰ
【００４８】
複合同期生成
様々なフレーム間隔中の複合同期信号の構成を下記の表７「複合同期生成−インタレースフォーマット」に示す。ＶＢＬＡＮＫ* 信号、ＶＳＹＮＣ* 信号、ＥＱＵＡＬＩＺＡＴＩＯＮ* 信号に対するＨＳＹＮＣ* 信号とＳＥＲＲＡＴＩＯＮ* 信号との間の関係を図７の「ＮＴＳＣビデオ・タイミング」に示す。
【表７】
0003795569.tif 000008
【００４９】
表２「タイミング・ジェネレータ制御レジスタ」に示す制御信号によってＨＳＹＮＣ* またはＶＳＹＮＣ* 、あるいはその両方をディスエーブルすると、複合ＳＹＮＣは表８「ＨＳＹＮＣ* およびＶＳＹＮＣ* をイネーブル／ディスエーブルしたときの複合同期出力」に示したようになる。
【表８】
0003795569.tif 000009
【００５０】
出力信号
ＲＡＭＤＡＣは、ＳＣ* 、ＳＣｅｎ* 、ＳＴＳＣＡＮ、ＦＩＥＬＤ、ＣＳＹＮＣ* の各タイミング・ジェネレータ出力を提供する。複合信号波形は前述のとおりであり、ＣＳＹＮＣ* 出力ピンでのタイミングはアナログＤＡＣ出力に整合する。
【００５１】
ＦＩＥＬＤ出力
フィールド信号は、マスタ・モードのとき、内部ＶＳＹＮＣ* の立上りと共に遷移する。また、インタレースモードのとき、この信号のレベルを使用して現フィールドが出力される（論理零＝偶数フィールド、論理１＝奇数フィールド）。非インタレースモードでは、この信号の遷移エッジは依然としてあらゆるＶＳＹＮＣ* の立上り付近で発生するが、フィールド信号のレベルは意味を有さない。外部では、レベルを使用してステレオ表示の左側視野と右側視野とを区別することができる。
【００５２】
ＳＴＳＣＡＮ出力
この出力は、内部で生成される信号である。この信号は、フレーム・バッファ直列ポート用の適切な行転送アドレス・タイミングを決定するためにホストＣＰＵのメモリ制御装置によって使用することができる。ＳＴＳＣＡＮ論理機構は、次のラインが可視である場合にはＳＣｅｎの立下りでＳＴＳＣＡＮをセットし、ＳＣｅｎの立上りでＳＴＳＣＡＮをリセットする。
【００５３】
ＳＣｅｎ出力
ＳＣｅｎ（順次クロック・イネーブル）出力は、フレーム・バッファ・メモリからの順次データのクロックをイネーブルするために使用される。ＳＣｅｎのアサートは、タイミング・ジェネレータレジスタＶＢＮＰ、ＶＢＡＰ、ＨＳＣｅｎＡＰ（水平順次クロック・イネーブル・アサート・ポイント）、ＨＳＣｅｎＮＰ（水平順次クロック・イネーブル否定ポイント）をプログラムすることによって制御される。
【００５４】
スレーブ・モード動作
タイミング・ジェネレータ制御レジスタがスレーブ・モードにプログラムされているとき、タイミング・ジェネレータはフィールド信号を入力として受け入れる。このモードでは、この入力で発生する遷移のために、次に水平同期が行われる際に垂直カウンタがリセットされる。ＲＡＭＤＡＣがインタレースモードである場合、フィールド信号入力が遷移するレベルは、現フィールドがどのフィールドになるかを決定する（すなわち、ハイ・ロー遷移のために、タイミング・ジェネレータは、次のＨＳＹＮＣ* 立上りで偶数フィールドの最上位から開始する）。水平カウンタがリセットされないので、クロック・ドリフトのために、スレーブに対する垂直同期が１ラインだけ長くなり、ブランク・フロント・ポーチが１ラインだけ短くなる。
【００５５】
図８は、本発明のビデオ・タイミング・ジェネレータ５０に入力され、ビデオ・タイミング・ジェネレータ５０から出力される信号を示す概略ブロック図である。図の信号は、レジスタ・アドレスが、Ｄ［０７：００］上に置かれ、Ｄ［０７：００］に置かれたデータに乗じられるアドレスであることを除いて、前記で図３に関して説明した同じ名前の信号に対応する。ビデオ・クロック信号および順次クロック信号は、ディジタル−アナログ変換器（ＤＡＣ）４５ａないし４５ｃのＰＬＬクロック・シンセサイザ構成要素および画素クロック・ディバイダ構成要素と、図３に示したＰＬＬクロック・シンセサイザ、画素クロック・ディバイダ、ビデオ・タイミング・ジェネレータ４９によって、当業者に周知のように結晶発振器入力から生成される。順次クロック信号（ＳＣ* ）は、ＶＲＡＭフレーム・バッファの外部クロッキングおよびビデオ・タイミング・ジェネレータの内部クロッキングのために生成される。
【００５６】
図８は、ビデオ・タイミング・ジェネレータ５０、ＶＲＡＭバッファ１５ａないし１５ｄ、レンダリング制御装置１４を接続するインタフェースを示す。この図の目的は、フィールド信号が使用するすべての経路を示すことである。レンダリング制御装置との接続は、左目ビデオ・データおよび右目ビデオ・データがどのようにフレーム・バッファから得られるかを説明するために与えられている。レンダリング制御装置では、フィールド信号は、ビデオ・データをメイン・メモリから直列シフト・レジスタにコピーするためにフレーム・バッファに渡されるアドレスの一部として機能する。ビデオ・データは、順次クロックＳＣ* 信号および順次クロック・イネーブルＳＣｅｎ* 信号の動作によってこれらのシフト・レジスタからクロック出力される。
【００５７】
立体モードが活動状態であるとき、フレーム・バッファ・メモリは、アドレスの単一ビットが、左目ビデオ・データを含むメモリ位置と右目データ位置を含むメモリ位置とを区別するのに十分なものとなるように構成される。
【００５８】
図９は、本発明によるタイミング・ジェネレータを実施するために使用される様々な機能ブロックを示す詳細なブロック図である。機能とは、レジスタ５１、水平カウンタおよび垂直カウンタ５３、フィールドジェネレータ５５、相等性比較器５７、事象レジスタ５９である。この場合も、図の信号は、前記で図３に関して説明した同じ名前の信号に対応する。水平基数および垂直基数はそれぞれ、ＲＡＭＤＡＣに接続されたビデオ・ディスプレイの各走査線上の画素の数および走査線の数に設定される。垂直カウントは現走査線であり、水平カウントは現走査線上の現画素である。事象アサート・ポイントおよび否定ポイントは、表３に示したようにレジスタ５１に記憶される値であり、ホストＣＰＵによってロードされる。相等性比較器５７は、１組の比較器であり、水平カウントおよび垂直カウントをそのそれぞれの基数値と比較する。水平カウントおよび垂直カウントはビデオ・クロック境界上で変化する。相等性比較器５７の動作によって、図９に事象レジスタ５９として示した対応するフリップフロップがトグルされる。フリップフロップの出力は、ＣＳＹＮＣ* 信号、ＳＴＳＣＡＮ信号、ＳＣｅｎ* 信号、複合ブランキング信号をもたらす。
【００５９】
図１０を参照すると分かるように、フィールドジェネレータ５５は下記のようにフィールド信号を生成する。相等性比較器６１（Ｍ１）が垂直カウンタの出力ＶＣＯＵＮＴおよび垂直基数ＶＲＡＤＩＸを受け取る。前者は連続的に変化するが、後者は、プログラム可能なレジスタに含まれる静的な値である。Ｍ１の出力は、２つの入力値の大きさが等しいときにアサートされる。ＶＣＯＵＮＴは、現在処理中のビデオ・ラインの番号を表す。したがって、Ｍ１の出力は、１ビデオ走査線に等しい時間にわたってアサートされたままである。結果的に得られる信号が、Ｍ１出力アサートの立上りの基準とされ、持続時間が１ビデオ・クロック周期になり、Ｍ１出力を否定しても影響を受けないように、Ｍ１の出力を処理する必要がある。これを行わない場合、フリップフロップ６３（Ｍ５）は、そのクロック・イネーブル入力がアサートされないかぎりトグルし続ける。フリップフロップ６５（Ｍ２）とフリップフロップ６７（Ｍ３）とＡＮＤゲート６９（Ｍ４）とで構成された回路は、この作業を実行するエッジ・ディスクリミネータとして動作する。
【００６０】
エッジ・ディスクリミネータ（Ｍ４）の出力は、フリップフロップＭ５のクロック・イネーブル入力であり、フリップフロップＭ５の出力は、クロック・イネーブルがアサートされている間トグルする。クロック・イネーブル信号の持続時間が１クロック周期にされるので、フリップフロップＭ５の出力は、１ビデオ・フィールドごとに一度状態を変化する。三状態ドライバ７１（Ｍ６）は、フリップフロップＭ５の出力を受け取り、マスタ・モードが選択されている場合はフィールド信号をドライブする。
【００６１】
エッジ・ディスクリミネータＭ４の出力がマルチプレクサ７３（Ｍ１１）のＡ入力に接続されることに留意されたい。マスタ・モードが選択されると、マルチプレクサはエッジ・ディスクリミネータの出力を渡す。この結果得られる信号をフィールド・リセットと呼ぶ。この信号は、ビデオ・タイミング・ジェネレータの水平カウンタおよび垂直カウンタをリセットするために使用される。
【００６２】
回路がスレーブ・モードになった場合、三状態ドライバＭ６は高インピーダンス状態に入り、フィールド信号をドライブしない。その代わり、フィールド信号はフィールド・ジェネレータ５５への入力になる。スレーブ・モードを選択すると、マルチプレクサＭ１１のＢ入力も選択される（マスタ・モードでは、フリップフロップＭ７、Ｍ８、Ｍ９およびゲートＭ１０の動作は重要ではない）。
【００６３】
（この場合に）外部から供給されるフィールド信号は、ローカル・クロックと同じ公称周波数で動作する（他のシステム中の）クロックの基準とされる。しかし、ローカル・クロックと外部クロックとの位相関係およびこれらのクロックから得られる信号は、可変としてしか定義できない。したがって、不安定にならないようにする必要がある。フリップフロップ７５および７７（Ｍ７およびＭ８）は、不安定にならないように強化されており、外部から供給されたフィールド信号をローカル・クロックに同期させるために使用される（そのような強化されたフリップフロップはＡＳＩＣセル・ライブラリで一般的に使用されている）。
【００６４】
フィールド信号は、遷移ポイントが垂直同期に一致する方形波である。従って、各遷移ポイントは、ＶＣＯＵＮＴがＶＲＡＤＩＸに等しい時点に対応する。垂直カウンタおよび水平カウンタを正しくリセットするには、このような遷移を検出する必要がある。フリップフロップ７９（Ｍ９）およびＸＯＲゲート８１（Ｍ１０）は、継続時間が１ビデオ・クロック周期の出力パルスを生成する遷移の方向の影響を受けない遷移検出器を形成する。スレーブ・モードが選択されているので、マルチプレクサＭ１１は、ゲートＭ１０の出力を渡しフィールド・リセット信号をドライブする。
【００６５】
等性比較器５７の動作に関する詳細を図１１に関して説明する。図１１は、ビデオ・タイミング・ジェネレータの特定のタイミング信号を生成するために実行される比較を表す。カウンタ５３ａにタイミング信号の基数がロードされる。カウンタ５３ａは各ビデオ・クロックを増分し、そのカウントが比較器５７ａおよび５７ｂに提供される。比較器５７ａおよび５７ｂは、前にそれぞれ、レジスタ５１ａおよび５１ｂにロードされたアサート・ポイント値および否定値と現カウントを比較する。比較器は、比較の結果に基づいて、事象レジスタ５９ａ、すなわちＪＫフリップフロップをトグルし、フリップフロップの出力が特定のタイミング信号をもたらす。
【００６６】
図１２は、フィールドジェネレータ５５内でマスタ・モード・タイミング用に生成される信号のタイミングを示す。図１３は、フィールドジェネレータ５５内でスレーブ・モード・タイミング用に生成される信号のタイミングを示す。
【図面の簡単な説明】
【図１】  本発明のＲＡＭＤＡＣを使用することができるシステムを示す概略ブロック図である。
【図２】  本発明を使用して相互に同期して動作する３つのシステムを示す概略ブロック図である。
【図３】  ＲＡＭＤＡＣの詳細なブロック図である。
【図４】  非インタレースフォーマットに関するタイミング生成を示す図である。
【図５】  非インタレースフォーマットに関する水平タイミングおよび複合同期生成を示す図である。
【図６】  インタレースフォーマットに関する水平タイミング波形を示す図である。
【図７】  ＮＴＳＣビデオ・タイミングを示す図である。
【図８】  本発明のビデオ・タイミング・ジェネレータの概略ブロック図である。
【図９】  本発明のビデオ・タイミング・ジェネレータの詳細なブロック図である。
【図１０】  本発明のビデオ・タイミング・ジェネレータの論理ゲート実施態様を示す図である。
【図１１】  相当性比較器の動作を示す詳細なブロック図である。
【図１２】  フィールドジェネレータマスタ・モード・タイミングを示す図である。
【図１３】  フィールドジェネレータスレーブ・モード・タイミングを示す図である。
【符号の説明】
１  ビデオ・ディスプレイ
１２  ホスト・コンピュータ
１４  レンダリング制御装置
１５  フレーム・バッファ・メモリ
１７  ローカル・エリア・ネットワーク
２１  ＲＡＭＤＡＣ
３１  ＣＰＵポート、インタフェース論理機構、アドレス・ポインタ、データ・レジスタ
３３  画素ポート、画素入力レジスタ、直列化機構
３５  陰影ルックアップ・テーブルおよびＲＡＭルックアップ・テーブル、転送制御論理機構、オーバレイ・アンダレイ論理機構
３７  色モデル選択機構
３９  カーソル論理直列化機構
４１  モニタ直列ポート
４３  診断レジスタおよび制御論理機構
４５  ディジタル−アナログ変換器
４９  ＰＬＬクロック・シンセサイザ、画素クロック・ディバイダ、ビデオ・タイミング・ジェネレータ
５０  ビデオ・タイミング・ジェネレータ
５１  レジスタ
５３  水平カウンタおよび垂直カウンタ
５５  フィールドジェネレータ
５７  等性比較器
５９  事象レジスタ
６３  フリップフロップ
６９  ＡＮＤゲート
７１  三状態ドライバ
７３  マルチプレクサ
８１  ＸＯＲゲート
【図１】
0003795569.tif 000010
【図２】
0003795569.tif 000011
【図３】
0003795569.tif 000012
【図４】
0003795569.tif 000013
【図５】
0003795569.tif 000014
【図６】
0003795569.tif 000015
【図７】
0003795569.tif 000016
【図８】
0003795569.tif 000017
【図９】
0003795569.tif 000018
【図１０】
0003795569.tif 000019
【図１１】
0003795569.tif 000020
【図１２】
0003795569.tif 000021
【図１３】
0003795569.tif 000022