(57)【特許請求の範囲】
【請求項１】
システムのユーザーから入力を受け取る入力装置（２２；２６）と、
前記入力装置とインターフェースし、表示データを含む出力を生成するプロセス機能を遂行することにより前記入力に対応している中央処理装置（２８）(CPU)と、
前記CPUから出力を受け取り、知覚可能な出力応答を出力する出力装置（１４，２４）と、
前記出力装置は、少なくも一対の表示装置を含み、各表示装置は前記表示データに応答して、前記ユーザに異なった視覚可能な画像を出力する構成となっており、
表示データプロセス回路(DDPC)（１２０）を含むビデオ表示コントローラ（３６）(VDC)と、
前記VDCを経由して前記CPUとインターフェースし、一時格納するための表示データを受け取るダイナミックRAM（３８）(DRAM)とを有しており、
前記VDCは、少なくも一対の表示ファースト・イン・ファースト・アウト(FIFO)メモリ（５６）を含んでおり、そのFIFOメモリは、前記一対の表示装置の対応する１つにすぐに出力されるビデオデータを受け取り、一時保留するため前記DRAMとインターフェースする構成となっており、
前記少なくも一対の表示FIFOは、さらに前記DDPCとインターフェースし、それらに前記少なくも一対の表示装置のそれぞれに対応して送られるデータを出力しており、
前記DDPCは、複数の表示データ・デコード及びオーバー・スキャン(DDOS)部（１２４，１２４'）を含んでおり、前記複数のDDOSの各々は、前記少なくも一対の表示FIFOの１つに対応し、前記ビデオデータをそれより受け取っており、前記複数のDDOS部の各々は、第１のビット語形式で前記ビデオデータを入力し、それに対応して選択された第２のビット語形式で前記表示データを前記少なくも一対の表示装置の１つに出力するディマルチプレクサ回路（１２８）を提供しており、前記第１のビット語形式の各語からディマルチプレクサされた前記第２のビット語形式の語数をカウントするカウンタを有することを特徴とするコンピュータ・システム。
【請求項２】
第１及び第２のビデオ表示手段（１４，２４）と、
前記第１及び第２のビデオ表示手段に表示するための第１及び第２の画像に対応する、第１及び第２のビデオデータをそれぞれ格納するためのメモリ手段（５６）であって、ここで前記第１及び第２のビデオデータは第１の形式となっており、
前記メモリ手段から第１及び第２のビデオデータを読むためのプロセッサ手段（２８）と、
第１の形式の第１及び第２のビデオデータを、第２及び第３の形式の第１及び第２の表示データにそれぞれ変換し、
第１の形式の第１及び第２のビデオデータを、第２の形式の第１の表示データ及び第３の形式の第２の表示データにそれぞれ変換し、
前記第１及び第２の表示データを、前記第１及び第２の表示手段にそれぞれ出力するように構成された、第１及び第２の変換手段（１２４，１２４'）とを備えており、前記第１の変換手段は、前記第１のビデオデータの各語から前記第１の表示データの語を順次ディマルチプレクスするためのディマルチプレクサを有しており、
前記第１の変換手段は、前記第１のビデオデータの各語からディマルチプレクサされた前記第１の表示データの語数をカウントするカウンタを、さらに有することを特徴とするビデオ表示システム。
【請求項３】
請求項２に記載のシステムにおいて、第２及び第３の形式は同一であることを特徴とする。
【請求項４】
請求項２に記載のシステムにおいて、第２及び第３の形式は異なっていることを特徴とする。
【請求項５】
請求項２に記載のシステムにおいて、
第１の形式はビットの第１の数の語長を有し、
第２の形式は、ビットの前記第１の数よりも小さな、ビットの第２の数の語長を有することを特徴とする。
【請求項６】
請求項５に記載のシステムにおいて、
前記第１の数は、前記第２の数の少なくも２倍であり、
前記第１のビデオデータの１語から前記第１の表示データの全語がディマルチプレクスされたときデータ要求信号を発生する手段（１３６）を有することを特徴とする。
【請求項７】
請求項２に記載のシステムにおいて、前記第１の変換手段は、前記第１の表示データの各語に対し所定の最上位ビットを加えるための加算手段を備えることを特徴とする。
【請求項８】
請求項７に記載のシステムにおいて、前記加算手段は、前記最上位ビットを格納するためのレジスタを備えることを特徴とする。
【請求項９】
請求項５に記載のシステムにおいて、前記第１の数は、前記第２の数の整数倍であることを特徴とする。
【請求項１０】
請求項２に記載のシステムにおいて、前記第１及び第２の変換手段は、それぞれ構成変更可能なデータ・デコード及びオーバー・スキャン・サイト(DDOS)手段であることを特徴とする。
【請求項１１】
請求項２に記載のシステムにおいて、前記第１及び第２の変換手段は、それぞれ前記第１及び第２のビデオを一時的に格納する第１及び第２のメモリに接続されていることを特徴とする。
【請求項１２】
請求項１１に記載のシステムにおいて、前記第１及び第２のメモリはファースト・イン・ファースト・アウト(FIFO)であることを特徴とする。
【請求項１３】
請求項２に記載のシステムに適用され、ビデオ形式のビデオデータを、表示形式の表示データに変換する構成変換可能なビデオデータ変換器であって、前記ビデオ形式は、ビットの第１の数の語長を持っており、前記表示形式は、ビットの前記第１の数より小さな、ビットの第２の数の語長を持っており、
ビデオデータの各語から表示データの語を順次ディマルチプレクスするためのディマルチプレクサ（１２８）と、
ビデオデータの各語からディマルチプレクスされた表示データの語数をカウントするカウンタ（１３４）と、
ビデオデータの１語から表示データの全語がディマルチプレクスされたときデータ要求信号を発生する手段（１３６）とを有することを特徴とする構成変換可能なビデオデータ変換器。
【請求項１４】
請求項１３に記載の変換器において、表示データの各語に対し所定の最上位ビットを加えるための加算手段をさらに備えることを特徴とする。
【請求項１５】
請求項１４に記載の変換器において、前記加算手段は、前記最上位ビットを格納するためのレジスタを備えることを特徴とする。
【請求項１６】
請求項１３に記載の変換器において、前記第１の数は、前記第２の数の整数倍であることを特徴とする。
【請求項１７】
請求項１３に記載の変換器において、構成変更可能なデータ・デコード及びオーバー・スキャン・サイト(DDOS)手段であることを特徴とする。
【請求項１８】
請求項１３に記載の変換器において、前記ビデオデータを一時的に格納するメモリに接続されていることを特徴とする。
【請求項１９】
請求項１８に記載の変換器において、前記メモリはファースト・イン・ファースト・アウト(FIFO)であることを特徴とする。
【請求項２０】
(a)第１及び第２のビデオ表示手段を提供するステップと、
(b)前記第１及び第２のビデオ表示手段に表示するための第１及び第２の画像に対応する第１及び第２のビデオデータを１つのメモリ手段に格納するためのステップであって、ここで前記第１及び第２のビデオデータは第１の形式となっており、
(c)前記メモリ手段から前記第１及び第２のビデオデータを読むステップと、
(d)前記第１の形式の前記第１及び第２のビデオデータを、第２の形式の第１の表示データ及び第３の形式の第２の表示データにそれぞれ変換するステップと、
(e)前記第１及び第２の表示データを、前記第１及び第２のビデオ表示手段にそれぞれ出力するステップとを備えており、
ステップ(d)は、前記第１のビデオデータの各語から前記第１の表示データの語を順次ディマルチプレクサするステップを含んでおり、
ステップ(d)は、
(d1)前記第１のビデオデータの各語からディマルチプレクサされた前記第１の表示データの語数をカウントするサブステップを有することを特徴とするビデオデータを表示する方法。
【請求項２１】
請求項２０に記載のビデオデータを表示する方法において、前記第２及び第３の形式は同一であることを特徴とする。
【請求項２２】
請求項２０に記載のビデオデータを表示する方法において、前記第２及び第３の形式は異なっていることを特徴とする。
【請求項２３】
請求項２０に記載のビデオデータを表示する方法において、
前記第１の形式は、ビットの第１の数の語長を有し、前記第２の形式は、ビットの前記第１の数よりも小さな、ビットの第２の数の語長を有することを特徴とする。
【請求項２４】
請求項２３に記載のビデオデータを表示する方法において、
前記第１の数は、前記第２の数の少なくも２倍であり、
ステップ(d)は、
(d2)第１のビデオデータの１語から第１の表示データの全語がディマルチプレクスされたときにデータ要求信号を発生するサブステップをさらに有することを特徴とする。
【請求項２５】
請求項２０に記載のビデオデータを表示する方法において、ステップ(d)はさらに、第１の表示データの各語に対し所定の最上位ビットを加えるステップを有することを特徴とする。
【請求項２６】
請求項２５に記載のビデオデータを表示する方法において、ステップ(d)はさらに、前記最上位ビットをレジスタに格納することを特徴とする。
【請求項２７】
請求項２３に記載のビデオデータを表示する方法において、前記第１の数は、前記第２の数の整数倍であることを特徴とする。
【発明の詳細な説明】
［技術分野］
本発明は、１台又は２台の陰極線管(CRT)、１台または２台の液晶表示装置(LCD)、又は１台のCRT及び１台のLCDの組み合わせのような、一般に２台の表示装置を持つコンピュータ・システムに関するものである。このような二重表示装置により、コンピュータ・システムのユーザーはテキスト又はグラフィックスのようなコンピュータ・データの表示を得ることが出来る。二重表示装置の各々は異なった画像を表示することも出来る。特に、本発明は、そのようなコンピュータ・システムにおいて、グラフィックス発生器及びビデオ表示コントローラ(VDC)を持つコンピュータ・システムの分野に関するものである。VDCは、プロセッサ(CPU)で生成されたり、CPUでコンピュータ・システムの他の装置（例えばCD-ROM）から検索されたテキスト又はグラフィックスのような画像情報をバスインターフェイスを経由して入力し、２台のCRT、２台のLCD、又は１台のCRT及び１台のLCDのような二重表示装置を駆動する信号を出力する。
［関連出願］
本出願の対象は、「節電モードを有するビデオ表示コントローラを備えたコンピュータ・システム」と題する米国特許出願番号08/487,121、「表示装置を備えたコンピュータ・システム」と題する米国特許出願番号08/487,117、「DRAMアクセス要求の発行及び取り消し機構を含んだ表示FIFOモジュール」と題する出願番号08/485,876、及び「２台のLCDカラー・パネル表示装置を備えたコンピュータ・システム」と題する出願番号08/487,120で開示された対象に関係する。これらは全て同一の日付で出願され、本出願と同一の譲受人に譲渡されている。
［従来の技術］
従来のバス調停回路は、1984年６月５日にラルフ・エル・アドック(Ralph L.Adcock)に発行された米国特許4,453,214(以後特許'214と呼ぶ)により公知である。特許'214によれば、バス調停者とメモリ・マネージャ(BAMM)はコンピュータ・システムの競合して動作するユニット間に優先順位を設定する。BAMMは、メモリへのアクセス要求を優先順位に従って分類し、一番高い優先順位を持つ装置を他のものより先にアクセスさせる。特許'214によると、ある装置がメモリへのアクセスを一旦許可されると、このアクセスへの割り込みは、特許'214のBAMMが優先順位の高い他の装置からの要求を入力しても、許可されないようである。メモリアクセスを獲得していた装置のアクセスが終了したとき、その装置は「使用終了宣言」信号を出力する。それに続き、BAMMは、アクセスを要求し優先順位が一番高い装置にメモリアクセスを許可するのである。
特許'214で開示されたタイプのBAMMでは、コンピュータ・システムの表示FIFOが表示すべき情報がほとんどなくなったとき或いは全くなくなったときでも、表示FIFOは、DRAMへのアクセスを恐らく拒否されるであろう。従って、コンピュータ・システムの連続した表示動作が中断される。このような表示動作の中断はコンピュータ・システムのユーザにとって気がかりで困惑するものである。
グラフィックス・コントローラとDRAMコントローラを備えた従来の他のグラフィックス・システムは、1991年２月５日にジャン・ミシェル・カルミン(Jean-Michel Callemyn)に発行された米国特許4,991,112（以後特許'112と呼ぶ）により公知である。特許'112によると、DRAMコントローラは、リフレッシュ要求及びDRAMへのアクセス要求をバーストで入力し、それら要求同士を調停する。表示の段階中では、予備的な読み出しに続き、最優先順位は表示FIFOに与えられる。FIFOが一杯のときには、DRAMのバーストでの読み出しは中断されるかもしれない。この場合、優先権は予備的読み出しに与えられる。予備的読み出しの要求がない場合、CPUによる要求が認められ、DRAMへのアクセスがCPUに対して行われる。しかし、FIFOがアクセスの要求を行えば、CPUのアクセスは中断され、先に中断されたFIFOのバーストでの読み出しが再開される。ライン・リターンの段階中では、異なった優先順位がDRAMへのアクセスに対して設定される。即ち、最優先順位はDRAMをリフレッシュするのに与えられ、その次は、表示FIFOを満たすことである。第３の優先順位はグラフィックス・プロセッサからの要求で、その次に、CPUの要求である。しかし、特許'112では、このアクセスが許可されると、DRAMへのアクセスの割込みは、前述した割り込み以外許可されないと思われる。さらに、特許'112が許可する割込みは、FIFOが一杯なため、FIFOのデータが新しいデータで書き換えられるのを防ぐために必要な固有の割り込みである。
バス調停方式を備えた従来の他のDRAMリフレッシュ・コントローラは、1994年９月６日にゾオヤオ・チャン（Tzoyao Chan）及びミルトン・チュング(Milton Cheung)に発行された米国特許5,345,577（以後特許'577と呼ぶ）により公知である。特許'577によれば、キャッシュ・コントローラはバースト・リフレッシュモード及び隠れたリフレッシュ・モードが与えられる。リフレッシュ要求の数が数えられるが、ある決められた数の要求が入力されるまでメモリアクセスを許可することにより実行されない。他方、隠れたリフレッシュは、リフレッシュが行われている間は保留信号をCPUに送ることなく実行される。リフレッシュが完了するまで、遠隔メモリ・アクセスではなくローカルメモリ・アクセスが許されている。この結果、CPUは、隠れたリフレッシュの間メモリアクセスが禁止されているが、CPUは、メモリへすぐにアクセスすることを始めから期待していないので、隠れたリフレッシュはCPU動作と干渉しないといってよい。一旦許可されたメモリアクセスへの割り込みはこの特許の特長とは思えない。
一般的に考慮して、一般的に前述したVDCのようなグラフィックス・コントローラにおいて、システム中のいくつかの装置がDRAMにインターフェイス（アクセス）するのを調停することはコントローラの最も重要な役割である。DRAMへのアクセスが、ビット-BLTエンジン、表示FIFO、及びローカル・バス（即ち、CPU）のような装置がDRAMへのアクセスする方法と時刻を決定する。CPU及びbit-BLTからのアクセス要求はお互いに排他的であるので、同時には発生しない。通常、ある装置のDRAMへのアクセスが終わり、他の装置のアクセスが許容されるとき、DRAMの新しい頁がアクセスされなくてはならない。即ち、DRAMはメモリ・ロケーションに関する２次元アレイと見なしてもよい。このメモリは、メモリ・ロケーション（メモリセル）の行と列を行ポインタと列ポインタと共に用いる。メモリへのアクセスがメモリの一つの行に対して行われ、その行のアドレス・ロケーションへデータが書き込まれたりそれからデータを読み出したりするとき列ポインタが単に行に沿って動く限り、メモリへの単一ページ・アクセスが行われ、ページブレークは不要である。しかし、メモリのもうひとつの行（即ち、もうひとつのページ）をアクセスする必要がある場合には、メモリ・ロケーションの次の行にアクセスする準備として一連のプリチャージを行わなくてはならない。この一連のプリチャージは時間が掛かるので、メモリアクセスの時間間隔中に書き込みまたは読み出しをするデータ量という点で、複数ページのメモリ・アクセスは単一ページのアクセスに比べて非効率的である。
従って、ランダム・アクセスでは多くのページ・ブレークが必要なため、DRAMへのページ・モード・アクセスはDRAMへのランダム・アクセスに比べ、時間利用の点において著しく効率的である。DRAMに対してページ・モードが維持されていない場合、DRAMのもう一つの異なったページにアクセスをするため、少なくも１回の予備的プリチャージを、メモリセルへのデータの書き込み又はメモリセルからのデータの読み出しに要する時間に加えて、行わなくてはならない。ビット-BLTのDRAMへのアクセスは通常、非常に時間のかかる複数ページのアクセスであるが、このアクセスは、DRAMへ即座にアクセスすることを要求しない。他方、CPU（ローカルバス）のDRAMへのアクセスは通常単一ページのアクセスで、ビット-BLTのアクセスに比べ著しく短時間しか要しない。しかも即座のアクセスの要求もおこなわない。しかし、CPUがDRAMへのアクセスを待つことになると、システムのスループットは減少し、コンピュータ・システムのWINMARKS（業界の標準性能ベンチマーク）も同様に減少する。
さらに、グラフィックス・コントローラの表示FIFOもまたDRAMへのアクセスを要求する。このFIFOは、底から一定の速度で排出し、たまに上部から注ぎ足す貯水（データ）タンクと見なす事ができるかもしれない。表示FIFOは表示装置（即ち、例えば、CRT又はLCD）に転送する画像情報を格納する。表示FIFOからデータを排出する速度は表示動作のモードに依存する。表示が、ピクセル当たり４ビットを要する白黒モードの場合、表示FIFOは非常に速くデータを排出しない。他方、表示がカラーモードで動作している場合、表示の各ピクセルは８ビット、又は16ビット、或いはそれ以上の情報を必要とするため、表示FIFOはそれに応じて高速にデータを排出する。
注ぎ足しを行う場合、表示FIFOの注ぎ足し速度は排出速度に比べ著しく速い。しかし、注ぎ足しは間欠的で、DRAMへのアクセスが必要な他の動作を行うため中断される場合もある。さらに、FIFOが注ぎ足されるとき３２ビットの二重語の完全なデータがDRAMから入力されなくてはならない事に注意する必要がある。ある時点で、３２ビットの二重語の完全なデータを入力する十分な空きが表示FIFOの上部にない場合、表示FIFOの既存データの一部が上書きされ、失われてしまう。従来、表示FIFOの上部に少なくとも一つの３２ビットの二重語のデータ分の空きができると、表示装置に送られるのを待機中の既存データは上書きされないので、表示FIFOはDRAMコントローラに対しFIFOLO（優先順位の低いDRAMアクセス）を発行する。
従って、このFIFOLO要求に対応して、表示FIFOは１つ以上のDRAMへのアクセスが許可される。この要求は、FIFOが一杯になるまでクリアされない。FIFOLO要求に対応して表示FIFOが適切に満たされなかった場合、表示FIFOが最後の３２ビットの二重語を表示に書き始めると同時に，DRAMへのアクセスを要求するFIFOHIを発行する。このFIFOHIは直ちに受け入れられる。前述したのと同様、このFIFOHIの要求はFIFOが完全に満たされるまでクリアされない。従って、通常のDRAMコントローラは、FIFOHI要求が発行されると、FIFOLO及びFIFOHIの双方を同時にクリアする。繰り返すと、DRAMへのアクセス要求は、通常、FIFOが完全に新しいデータで完全に満たされるまでクリアされない。
図１のライン１はタイミング図で、表示FIFOとビット-BLTエンジンが交互にVDCのDRAMへのアクセスを行う理想的順序を示している。同様に、図１のライン２は、表示FIFOとCPUのDRAMへのアクセスの理想的順序を示している。これらの理想化したタイミング図は、ビット-BLTもCPUもDRAMアクセスをする際待つことを要求されないこと、DRAMはアイドル時間がないこと、ビット-BLTに許されるアクセス時間は比較的長く複数ページのアクセスが可能なことを示している。従来のコンピュータ・システムのグラフィック・コントローラはDRAMアクセスに関してそのような理想化した管理は行えない。
さらに、実際のコンピュータ・システムのグラフィック・コントローラ（即ち、VDC）では、DRAMへのアクセス要求と実際に許可されたDRAMへのアクセス要求の順番は理想化されていない。従って、従来の実際のコンピュータ・システムのグラフィック・コントローラで得られるだろう仮想的タイミング図を図２（従来技術と記す）に示す。図２を参照して、３つのタイミングラインの最初のものはCPUからDRAMへのアクセス要求を示している。次の２つのラインは表示FIFOからのアクセス要求を示す。最初のものは、優先順位が低いもの(FIFOLO)で、表示FIFOの表示情報が十分減少しており、既存のデータを上書きせずにこのFIFOに少なくも１つの３２ビットの二重語の新しい情報を書き込むことが可能であることを示している。
次のものは優先順位が高いもの(FIFOHI)で、表示FIFOは最後の３２ビットの二重語の情報を使っているところで、表示装置（即ち、例えば、CRT又はLCD）を用いてユーザーに提供する情報がなくなる危険性があることを示している。これらのFIFOLOやFIFOHIの要求は、表示FIFOがDRAMへのアクセスを許可され且つFIFOが完全に満たされるまでクリアされない(即ち、取り除かれたり、打ち切られたりしない)。この従来のグラフィック・コントローラでは、優先順位が一番高いDRAMへのアクセスは表示FIFOHI要求に与えられ、CPUやコンピュータ・システムの他の装置に許可が既に与えられていてもそれに割込みを掛けるのである。
図２を参照して、間隔#１ではCPUがDRAMへのアクセスを許可され、その後使用終了宣言を出す。間隔＃２ではDRAMはアイドルしている。間隔#3の始めの部分は、表示FIFOが空になり表示グラフィック・プロセスが開始され、FIFOLO及びFIFOHIが同時の発行されることを示している。FIFOHIの要求が許可されるが、これらの要求（FIFOLO及びFIFOHI）は、表示FIFOがデータで完全に満たされるまでクリアされない。その結果、間隔#4の最初の部分は、FIFOHI要求がクリアされるまでCPUからDRAMへのアクセス要求が拒否されることを示している。間隔#4はCPUの待ち時間を示している。間隔#4の終わりの部分は、FIFOLO及びFIFOHIが共にクリアされるところ、又、間隔#5の始めはCPUがやっとDRAMへのアクセスを許可されるところを示している。間隔#9は、表示FIFOからDRAMへのアクセス要求FIFOLOの発行を示す。FIFOLOに応答して不十分なデータが表示FIFOに供給された（例えば、ビット-BLTのような他の装置がDRAMへのアクセスをしようとし、FIFOLOの要求が完全には達成されなかった）ため、表示FIFOは間隔#10の始めにFIFOHI要求を発行する。このFIFOHI要求は間隔#10で即座に許可される。このようにして、CPUのDRAMへのアクセスが拒否されるもうひとつの間隔(間隔#10)ができる。間隔#10の終わりの部分でFIFOLO及びFIFOHI要求が共に同時にクリアされ、CPUのDRAMへのアクセスが許可される。
さらに、図２は、従来の調停方式は,DRAMがときにアイドルになったり（間隔2、6、及び8）、CPU又は表示FIFOがDRAMへのアクセスのために待機する状態を生むことを示している。FIFOHI要求が発せられると、表示FIFOが十分なデータを入力し表示装置へ送るデータがなくなるという危険性がなくても、CPUは、表示FIFOが完全に満たされ、DRAMへのアクセスがCPUに許可されるまで待機することが要求される。この従来のグラフィック・コントローラはDRAMのページモードを維持できないだけでなく、コンピュータ・システムのスループット速度も減少させる。
従って、グラフィック・コントローラのDRAMへのアクセスを調停するより有効で高率のよい方法の必要性が長い間感じられていた。
さらに、従来の表示コントローラは、1992年８月11日にトミヤス・ユーイチ（Yuichi Tomiyasu）に発行された米国特許5,138,305（以後特許'305と呼ぶ）により公知である。特許'305は、CRT用に設計されたVGAフォーマットを用いてLCDを駆動する表示コントローラを教示していると考えられるが、それぞれ異なった画像を表示する２つの表示装置を同時に駆動することは無関係と考えられる。
他の公知のVGAコントローラ・カードは、1992年９月22日にウエーン・エフ・ベリー(Wayne F.Berry)に発行された米国特許5,150,109（以後特許'109と呼ぶ）である。特許'109は、LCD又はCRTの駆動、又はLCD及びCRTの同時駆動が可能なIBMコンパティブル・コンピュータ用のバス・マウント可能なVGAコントローラ・カードを開示していると思われる。しかし、両方の表示装置とも同じ画像を示す。従って、特許'109は、それぞれが異なった画像を表示する２つの表示装置を同時に駆動することには無関係と考えられる。
自動センタリング及び画像圧縮機能を備えたラスタ画像用の従来からある他のシステムは、1994年３月８日サバス・エス・パティル(Sabus S.Patil)に発行された米国特許5,293,474（以後特許'474と呼ぶ）により公知である。特許'474は、画面に表示される画像の水平または垂直、又はその両方のセンタリング機能、及びメモリ・フレーム・バッファを用いずに表示サイズに合わす画像圧縮機能を持つビデオ表示コントロール・システムに関係あると思われる。特許'474は、それぞれが異なった画像を表示する２つの表示装置を同時に駆動することには無関係と考えられる。
［発明の開示］
従来の技術の欠点に鑑み、本発明の目的は、これらの欠点を１つ以上除いたグラフィックス・コントローラを有するコンピュータ・システムを提供することである。
本発明の他の目的は、テキストまたはグラフィックスのような画像情報を入力し、表示装置を駆動する信号を出力するビデオ表示コントローラ(VDC)を有するコンピュータ・システムを提供することである。
特に，本発明は、CPU、ファースト・イン・ファースト・アウト(FIFO)型のビデオメモリ、ビット-BLT、及びコンピュータ・システムの他の装置がVDCのDRAMへアクセスするのを調整する順序子(シーケンサー)及びコントローラ(SEQC)をもつVDCを提供することを目的とする。
本発明の他の目的は、２台の表示装置を同時に駆動し且つそれぞれに異なった画像を表示することが可能なビデオ表示コントローラを提供することである。
従って、本発明はグラフィックス・コントローラ（即ち、ビデオ表示コントローラVDC）を有するコンピュータ・システムを提供することで、このVDCは順序子―コントローラ(SEQC)を持ち、さらにこのSEQCは、VDCのDRAMへの種々のアクセス要求を２層の優先順位に分類し、上部層に属する各要求は下部層のDRAMへのアクセスに割込むことが許されるが、下部層の要求はそのような割り込みが許されない。そして割込まれたアクセス及びDRAMへのアクセスを持つ要求は、この２層優先順位方式の順番に従って待ち行列を作る。その結果、コンピュータ・システムの種々の装置のDRAMへのアクセス要求に割り当てられた優先順位の順番と論理、及びコンピュータ・システムの他の装置によるDRAMへのアクセスへの割り込みの許可不許可によりDRAMへのアクセスがより効果的になる。ある動作条件では、比較的長く数ページにわたるDRAMへのアクセスはこのような方法で行われる。しかし、他の動作条件では、これらのアクセスは短いアクセスになり、DRAMへの優先度の高い要求がタイムリーに行われることを常に保証する。即ち、例えば、高優先度ベースの表示FIFOのアクセス要求及びマウス画像を描写する要求はDRAMへのアクセスが即座に許可される。表示用アクセス要求及びマウス画像要求は決して同時には発生しない。
本発明はまた、複数の（少なくも２つ）表示FIFO及び表示パイプラインをもつビデオ表示コントローラを備えたコンピュータ・システムを提供する。このパイプラインは可変に構成可能で、少なくも２台の表示装置を同時に駆動しそれぞれに異なった画像を与える表示データを入力することを可能にする。
本発明の他の面では、本発明は、以下の装置を含むコンピュータ・システムを提供する。即ち、コンピュータ・システムのユーザーからの入力を受け取る入力装置、入力装置とインターフェースし、入力に対し表示データを含む出力を生成するプロセス機能を行う中央処理装置(CPU)、CPUにインターフェースし、CPUが用いる命令及びデータの記憶を行うメモリ装置、CPUが生成した出力を入力し感覚可能な出力を出す出力装置、出力装置は表示データに対応してユーザーに視覚画像を出力する表示装置を含み、CPU及び出力装置とインターフェースし、視覚画像の一部を与える追加的表示データを出力するグラフィック生成装置(GG)を含んだビデオ表示コントローラ(VDC)、VDCを経由してCPUとインターフェースし、追加的表示データを含む表示データを一時記憶のため入力するDRAM、DRAMはまた、CPU及びGGとインターフェースし、プロセス機能及び追加的データの出力に用いるデータの一時記憶に供し、VDCは、DRAMとインターフェースし、追加的データを含む表示データを入力し一時的に保留し、表示装置に即座に出力する表示ファースト・イン・ファースト・アウト(FIFO)メモリを含み、表示FIFOは、ある記憶容量をもち連続的にデータを表示装置に出力する一方DRAMからは間欠的にのみデータを入力し、表示FIFOはさらに、表示FIFOのデータ・レベルがFIFOLOポインタの下にあるかFIFOHIポインタの下にあるかに従ってそれぞれ低優先度ベース(FIFOLO)又は高優先度ベース(FIFOHI)でDRAMへのアクセス要求を発行する、CPU及びGGの各々もまたDRAMへのアクセス要求を発行し、順序子及びコントローラ・ユニット(SEQC)は、CPU、GG、及び表示FIFOからのDRAMへのアクセスを調停し、多層優先度方式が各層内の要求を優先度に従って順序付け、下部層及び下部層の上の層を含み、下部層の要求は既存のDRAMへのアクセスに割込むことは許されないが、下部層の上の層の要求は、同一層で下の順位にある要求又は下部層の要求に応答してSEQCが許可した既存のDRAMへのアクセスに割込むことが許される。
本発明のもう一つの他の面は、本発明は、以下の装置を含むシステムを提供する。即ち、前記システムのユーザーからの入力を受け取る入力装置、前記入力装置とインターフェースし、前記入力に対し表示データを含む出力を生成するプロセス機能を行う中央処理装置(CPU)、前記CPUが生成した前記出力を入力し感覚可能な出力を出す出力装置、前記出力装置は少なくも一対の表示装置を含み、各表示装置は前記表示データに対応してユーザーに異なった視覚画像を出力し、表示データ・プロセス回路(DDPC)を含んだビデオ表示コントローラ(VDC)、前記VDCを経由して前記CPUとインターフェースし、前記追加的表示データを含む前記表示データを一時記憶のため入力するDRAM、前記VDCは、前記DRAMとインターフェースし、前記追加的データを含む表示データを入力し一時的に保留し、それらを前記少なくも一対の表示装置の各々に即座に出力する少なくも一対の表示ファースト・イン・ファースト・アウト(FIFO)メモリを含み、前記少なくも一対の表示FIFOは、前記DDPCとインターフェースし、前記少なくも一対の表示装置の各々に行くべきデータをそれに出力し、前記DDPCは、少なくも一対の表示FIFOの各々に対応し且つそれから前記ビデオデータを入力する複数の表示データ・デコード及びオーバ・スキャン(DDOS)部を含み、前記複数のDDOS部の各々は、前記ビデオデータを第１のビット語形式で入力し且つそれに対応して選択された第２のビット語形式で表示データを前記少なくも一対の表示装置の各々に出力するデマルティプレクサを持つ。
本発明の他の目的及び利点は、以下の本発明の好適な実施例の詳細な説明を、添付した図面を参照して読むことにより明らかであろう。当図面では、同一の参照番号は構造又は機能において同様な物を表わす。
［本発明を実施するための最良の形態］
図３を参照して、コンピュータ・システム10はノートブック・コンピュータ12及びケーブル16でノートブック・コンピュータにインターフェースしたもうひとつの表示装置14を含む。このもうひとつの表示装置14は従来のテレビジョンのように示されている。当業者には、テレビジョンはNTSCフォーマットを入力し、インタレースした画像を表示することは明らかであろう。或いは、コンピュータ・システム10は、RGB信号（並びに水平及び垂直同期信号）を用いインタレースをしない従来のCRTモニタとインターフェースしてもよい。ノートブック・コンピュータは、キーボード18、フロッピディスク・ドライブ20、トラック・ボール22のような種々の入力装置を含む。当業者には、トラック・ボールは実質的に備え付けのマウス入力装置と同様であることは明らかであろう。コンピュータ・システム10は、ハードディスク・ドライブ、CD-ROM装置、シリアル入出力(I/O)ポートのような他の入力装置を含む場合もある。これらの装置のいくつかは、液晶表示装置24と共に出力装置として機能する。以下に説明するように、表示装置24は二重パネル型として示されている。ここで、ノートブック・コンピュータは多重タスク操作を行うように用いられる。例えば、ノートブック・コンピュータ12を財政分析を行うのに用い、そのデータはLCD24に表示し、それを図表化したものはCRT14に表示するようにすることができる。
図４は、コンピュータ・システム10の概念的ブロック図であるが、入力装置は全て一つの代表ブロック26に包含されているものとする。入力装置はマイクロプロセッサ28とインターフェースし、マイクロプロセッサは記憶装置30とインターフェースする。記憶装置30は、フロッピディスク・ドライブ20を含み、ハードディスク・ドライブ、CD-ROM装置、及び他の装置を含む場合もある。データ・バス32はマイクロプロセッサ28とインターフェースし、LCD及びCRT画像表示装置24及び14を含む出力装置ともインターフェースする。コンピュータ・システム10の他の出力装置はブロック34に一括して包含するものとする。画像表示装置24及び14とのインターフェースを容易にするため、コンピュータ・システム10は、バス32とインターフェースし、LCD24及びCRT14へ駆動信号を出力するビデオ表示コントローラ（VDC）36を含む。VDCは、図４中でブロック38で示したダイナミック・ランダム・アクセス・メモリ(DRAM)とインターフェースする。また、VDCは、コンピュータ・システム10の電力管理設備40とインターフェースする。専用クロック42がVDC36に参照クロック速度を出力する。
次に図５を参照して、VDC36は、専用クロック42からのクロック信号を参照し、VDCのビデオ部46にクロック信号を出力する内部クロック44を含む。内部クロック44が出力するクロック信号には、ピクセル・クロック(Pclk)及びメモリ・クロック(Mclk)を含んでもよい。これらの用途に関しては以下で述べる。ビデオ部46をバス32、従ってマイクロプロセッサ28とインターフェースするため、ビデオ部46はプログラム可能なホスト・インターフェース48を含む。ホスト・インターフェース48はプログラム可能で、VDC36が多くの通常のバス構成にインターフェースできるようにする。例えば、ホスト・インターフェース48は、インテル486DXローカルバス、VLバス、及びPCIインターフェース・バスとインターフェースするように構成することができる。ホスト・インターフェース48は、バス32をVDC36のVGAコア部50とインターフェースする。このVGAコア部50には、以下に説明する順序子、CRTコントローラ(CRTC)、グラフィック・コントローラ、属性コントローラ、及び通常のVGA回路が含まれる。
VGAコア部50が、テキスト、グラフィックス、及びCRT及びLCDに表示する他の視覚要素（例えば、カーサー及びアイコン）を生成し制御するため、VGAコアは、ハードウエア・カーサー発生器52、ビット-BLTエンジン54、及び表示FIFO56とインターフェースする。さらに２つの表示FIFO56'及び56″も又VGAコア部50とインターフェースする。ただ一つの表示装置（LCD又はCRT）のみをサポートするVDC36のもうひとつの実施例には、ただ一つの表示FIFOだけが含まれるが、これに付いては以下に述べる。２つの表示装置（１つのLCD及び１つのCRT）をサポートする他の実施例には２つの表示FIFO56及び56'が含まれる。この実施例はLCD又はCRTの１つの表示装置だけがある場合も勿論サポートする。以下に説明するように、表示FIFO56並びにさらに２つの表示FIFO56'及び56″を含む実施例は、３図を参照して第２の表示装置として標準テレビジョンを用いて説明したように、コンピュータ・システム10の二重表示動作をサポートするのに使用される。
インタレースした画像を出す表示装置をインタレースされていない画像を表示するのに用いると、画像には多くのフリッカーが生じる。しかし、コンピュータ・システム10（VDC36）にはさらに２つの表示FIFO56'及び56″があり、これらはインタレースされていない画像の交互のラインを格納し、これらの交互の画像ラインを順番にテレビジョン24に出力し、フリッカーのないインタレースした画像を表示する。従って、以後表示FIF56が述べられるときには、これは同時に表示FIFO56'及び56″も含んでいるものとする。以下に述べるように、１つの表示FIFOのみを持つ本発明の他の実施例では、DRAM38へのアクセスを許可するとき、簡単な判定方式を採用してもよい。
ハードウエア・カーサー52は大きなサイズ（例えば、通常の２倍の大きさ）のカーサーを選択的に出力するが、これは、マイクロプロセッサ28上で走るソフトウエア・プログラムが決めたカーサーの選択された速度を検出し、カーサーが表示画面内を動くときそれを容易に目で追うことができるようにする。このように、コンピュータ・システム10のユーザがマウス又はキーボードを用いてプログラムのカーサーを動かすとき、カーサーの速度が予め選ばれた閾値になると、カーサーは２倍かそれ以上の大きさになる。ビット-BLTエンジンは、前述したように、CRTやLCDの画面14及び24上にグラフィックス又はそのような他のキャラクタを出力するために生成されたビットのブロック転送をする。
より具体的には、ビット-BLTエンジンは、これらのキャラクタ、フィル、受け側反転、パータン・フィル等を表わすビットの読み出し、書き込み、及びブロック転送をする。ビット-BLTエンジンは、全てのデータ・アライメント及びブロック転送されたキャラクタの境界でのマスキング、並びに白黒画像の書き込みを加速するためのテキスト拡張等を行う。前述したように、表示FIFOは、情報ビットを３２ビットの二重語の単位即ちレベルの整数倍で一時的に格納し、これらのビットを表示装置14及び24のピクセルに書き込むため待機する。表示FIFO56は８段階のFIFOで、CRTやLCDの画面14及び24に出力する32ビットの二重語の表示情報を８つ格納することが好ましい。
ハードウエア・カーサー発生器52、ビット-BLT54、及び表示FIFO56の各々はまた、DRAMコントローラ58にインターフェースする。以下で述べるように、このDRAMコントローラ58は、先に一般的に述べたようなDRAMコントローラ/シークエンサの機能を持ち、VDC36の他の部分を含むコンピュータ・システム10の種々の機能ユニットからのDRAMへのアクセス要求を調停し実行する。図５に見られるように、DRAMコントローラ58はDRAM38とインターフェースする。図を簡単にするためDRAM38は図５では１つの機能ブロックとして表わされている。しかし、当業者は、このDRAMが１つ以上のDRAMチップからなることが分かるであろう。表示FIFO56は、（VGAコア部50及びDRAMコントローラ58をそれぞれ経由して）パレット・コントローラ60及び液晶表示装置(LCD)コントローラ62の双方とインターフェースする。パレット・コントローラ60はディジタル・アナログ・コンバータ(DAC)61とインターフェースする。パレット・コントローラ６０は標準の256x18ＶＧＡパレットを行い、LCDコントローラ６２は、単色モードの動作で64段階のグレイスケールに対するフレーム・モジュレーション及びディザリングを行い、カラーモードの動作で256Kのフルカラーに対するディザリングと共に4Kカラーを行う。
図４で示される構造の説明を全て行うためであるが、VDC36はパワー・ダウン・コントローラ64を含んでいる。このパワー・ダウン・コントローラはパワー・ダウン・レジスタ65と接続し、このレジスタはそれ自身VDC36内で一般的接続を持つ。このパワー・ダウン・レジスタ65の一般的接続は、図５中のレジスタ65から出る複数の矢印で表わされている。パワー・ダウン・レジスタ65のこれらの接続はVDC36中を行き渡り、レジスタを種々の動作モード及びそれに対応する種々のパワー・ダウン・モードに合うような構成にすることができる。また、パワー・ダウン・コントローラ64はLCD24とインターフェースし、コンピュータ・システム10のユーザが設定するパラメータの制御の下で行うLCDバックライト「オフ」及びLCD表示「オフ」のような電力節約機能を容易にする。
次に図６には表示FIFO56を簡単化した図式で示している。このFIFO56は、32ビットの二重語即ちレベルを８つ持つことが好ましい。これらのレベルは、図６の左側に沿って1−8の数字で示されている。表示FIFOに対し他の記憶容量を採用しても本発明の精神及び範囲から逸脱することはない。表示装置14又は24が動作中には、この表示FIFOの底からデータが連続して表示装置に流れる。その速度は前述したようにモードに依存する。
表示FIFOの上部は、DRAM38の速度及びVDCのメモリクロックの速度（さらに、コンピュータ・システム10の他のパラメータ）に依存した速度で間欠的に満たされていく。表示FIFOのこの補充は不連続的で、以下に詳しく述べるようにDRAM38の可用性に基づいて行われる。図６のグラフの右側に沿って２つの可動ポインタがある。その内の一つ（ポインター66）は、FIFOのデータレベルがこのポインターより下にくれば、DRAMから新たなデータを供給してもらうためFIFOLO要求が発行されることを表わしている。このポインター66の許される位置は４から７までである。他のポインター68はDRAMから新たなデータを供給してもらうためFIFOHI要求が発行されることを表わしている。このポインター66の許される位置は０から７までである。どちらの場合でも、FIFOLO又はFIFOHI要求は、FIFO56が少なくも１つの新たな３２ビットの二重語を入力できることを示している。
FIFO56に沿ったポインター68の位置は、表示装置14及び24の動作モード(FIFO56の排出速度を表わす)及びこのFIFOを補充する速度（VDCのピクセル・クロック及びメモリ・クロックの間隔、DRAM38の速度、及びVDCの他の接続間隔及びデータ転送間隔により決められる）に依存するので、FIFOHI要求は、FIFOのデータがなくならないような保証がある限り、レベル７の初期の時刻からFIFO56のデータレベルが０になるまでの時刻にわたる広範囲の時間内のいかなる時刻に行ってもよい。前述したように、FIFOHIが発行されれば、DRAM38への他のアクセスは中断される。従って、表示FIFOがゆっくりと排出し、コンピュータ・システムがFIFOを高速で補充することができるなら、ポインター68の位置をゼロに設定しても、表示装置はデータの不足を生じなくすることができる。
ポインター66の位置は表示動作のモード及びコンピュータ・システム10の同様なパラメータに依存する。FIFOHIの要求の発行をできるだけ少なくしFIFO56を早く補充するため、且つコンピュータ・システムの他の装置がDRAM38にできるだけアクセスできるように、このポインターを４から７の範囲に設定するのがよい。FIFOLO要求(ポインター68)の設定位置は、FIFOHIの設定位置ほど重要ではない。又、後に見られるように、このFIFOLO要求ポインターのレベルは、DRAMコントローラ58が設ける下部層順位設定法に合致している。しかし、FIFOLO要求は、DRAMへの十分なアクセスが得られ、FIFOHI要求の発行が必要としないような、即ちFIFOHI要求間の間隔が最大になるようなFIFOのレベルで発行される。
後に分かるように、アドレス・ステート・マシンは、FIFO56に入ってきたデータの新しいレベル（３２ビットの二重語）を絶えず勘定し、選択された数のデータのレベルをFIFOに補充した際、FIFOLO又はFIFOHI要求を取り除くかどうかの判定を行う。これ以外のときにはFIFO56からのデータ要求はクリアされない。FIFOLO又はFIFOHI要求をクリアにするのに表示FIFOを完全に満たす必要はない。
次に図７には、DRAMコントローラ58とDRAM３８がコンピュータ・システム10の種々の装置と接続している様子を示す機能的ブロック・ダイアグラムが示されている。番号70はDRAMリフレッシュ・サイクルの要求を表わし、この要求はVDC38のクロック(図５の″Drclk″)により周期的に発行される。したがって、この要求は確実に受け入れられる。当要求と他の要求との時間的順序に関しては不確実である。同様に、番号72は、LCDコントローラ62の半フレーム・バッファ(図５では62'で表わされている)からのDRAMへのアクセス要求である。この半フレーム・バッファは、LCD24のパネルに書き込まれるDRAM38のピクセル値を入力し一時的に格納する。これらのピクセル値のリフレッシュが必要なときには、一つのパネルがLCDコントローラ62を経由してそれに付随した表示FIFOから新しい情報を入力する。他のパネルは、半フレーム・バッファ62'により以前DRAMに一時的に格納されていた前のピクセル値の繰り返しを入力する。
LCD24のパネルは、表示FIFO及び半フレーム・バッファ62'から交互に新しい画像データを入力する。半フレーム・バッファは、表示装置24の一つのパネルをリフレッシュするのに用いるためDRAM38の新しいピクセル値を一時的に格納し、２つのパネルの内のもう一方は新しい画像データを入力する。この半フレーム・バッファは、限られた量の内部メモリしか持っていない。従って、DRAM38へのアクセス中に、半フレーム・バッファ62'は、表示装置24のいくつかのピクセルをリフレッシュするのに十分なピクセル値を入力する。LCD24のピクセルをリフレッシュするのに使われ、半フレーム・バッファの限られた量のメモリ容量中に残っているデータの量に依存して、半フレーム・バッファは、FRAMELO(低い優先順位)又はFRAMEHI(高い優先順位)のDRAMへのアクセス要求を発行する。
ブロック28の番号74は、CPU28からDRAM38へのアクセス要求を表わす。ブロック54の番号76は、ビット-BLTエンジン54からDRAM38へのアクセス要求を表わし、ブロック56の番号78は、表示FIFO56が表示装置14及び24に転送するため一時的に格納する新しいデータを求める要素（FIFOLO又はFIFOHI）を表わす。さらに後に述べるように、このFIFO要求は、FIFO56、56'、及び56″のそれぞれからのFIFOLO又はFIFOHI要求も含む。要求は一旦なされると、それが満足されるまで、或いはFIFOLO及びFIFOHIの場合にはクリアされるまで続けられる(保留される)。
図７の番号80は、(上述したような)マウス画像発生回路がマウスの画像を描くために行うDRAM38へのアクセス要求を表わす。番号82はアドレス発生器で、FIFOのデータ要求に対応してDRAM38から表示FIFOへのデータの読み出しに用いるためアドレスを発生することにより表示FIFO56(又はFIFO56、56'、及び56″)にサービスを行う。当業者には，複数の表示FIFO56，56'等を持つ実施例では、各表示FIFOがそれぞれ異なったアドレス発生器82を持つことが分かるであろう。
DRAMアドレス・マルチプレクサ84は発生したアドレスをDRAM38に供給する。このアドレス・マルチプレクサはまた、発生したアドレスがDRAM38中でいつページ・ブレークが必要かを見つけるための機能を含み、ページ・ブレーク信号(88の番号の付いた矢印)をSEQC86に出力する。この信号は、DRAM38の異なったページをアクセスするためにこのメモリで必要なプリチャージ動作を開始するのに用いられる。新しいデータの列アドレスとDRAM38へ入力された最後のデータの列アドレスが異なっているとき、このページ・ブレーク信号が必要である。新しいデータが同じ列アドレスを持つ場合には、ページ・ブレーク信号は発行されなく、DRAMのページ・モード動作がプリチャージ動作のためのロスタイムなしで維持される。このことは、以前で最後のデータと新データがコンピュータ10の異なった装置から来る場合でも同様である。
即ち、DRAM38へアクセスする装置が変わってもDRAM38でのページ・ブレークが必ずしも生じなくてもよいことを意味する。
SEQC86内には優先順位論理ユニット90があるが、これは、図８及び10に示すように、DRAM38へのアクセス要求で保留になっているものの間で論理選択プロセスを行う。図８は、１つの表示FIFO56のみを持つDRAMコントローラで簡単なものを表わしており、最初に考察する。図８で、DRAM38への保留されたアクセス要求は、後に述べるように、まず最初に、２つの層(上部層及び下部層)の内の１つに割り当てられる。上部層内では保留された要求は優先順にならべられる(1uから5u)。同様に、下部層内でも保留された要求は優先順に並べられる(1lから3l)。このような一列に順位付けされたDRAM38への保留されたアクセス要求の論理構造内において、上部層の各要求は、上部層に属しそれより低い順位を持つ要求に対して許可され現在行われているDRAM38へのアクセス要求に割込むことができ、また、全ての下部層の要求に対して許可されたアクセスにも割込むことができる。従って、表示FIFOのDRAMへのアクセスがFIFOLO要求(順位1l)に対して実行されているとき、SEQCがDRAMのリフレッシュ要求(順位4u)を入力すると、表示FIFOが中断され，DRAMがリフレッシュされる。
しかし、このDRAMがリフレッシュされている間にCPUからDRAMへのアクセス要求(順位5u)が入力されても、CPUはDRAMへのアクセスを待たなくてはならない。その理由は、SEQCはCPUの要求が上部層にあっても低い順位のものの割り込みを許さないからである。他方、FIFOHIの要求（順位2u）が、DRAM38がリフレッシュされている間に入力されると、この要求は許可される。即ち、DRAMリフレッシュが中断され、表示するべき新しいデータを入力するため表示FIFOによるDRAMへのアクセスが許可される。下部層内では、現在実行中のDRAM38へのアクセスへの割込みは一切許されない。これらの下部層の要求は優先度の順番に従ってDRAMへのアクセスが許され、上部層のどの要求にも割り込みをされる。例えば、ビット-BLTの要求（順位31）に対して許可されたDRAM38へのアクセスは下部層のどの要求からも割込みをされないが、上部層のどの要求にも中断される。
前述のことを続けて、図９は、DRAMコントローラ58が、レベルカウンター92（図７を参照）を用いて行うもう１つの機能を図示している。ここで、表示FIFO56とDRAMコントローラ58が共にVDC36内にあり、お互いにつながっていることに注意。レベルカウンター92は、DRAM38内のデータにアクセスするため生成されたアドレスを絶えずモニターしている。このアドレスはデータを表示FIFO56に書き込むときにも用いられる。N番目のデータ・レベルを勘定する度に(ここで「Ｎ」は、表示FIFO56に供給されるデータ・レベル数で選択された整数である)、レベルカウンター92は、SEQC86のフラッグ即ちレジスタをリセットする。図９で示すように、DRAMコントローラ58は、２つの異なった判定を同時に且つ独立にテストする。１つの判定は、表示FIFO56のデータ・レベルがFIFOLOポインターより下にあるかどうかである。判定が″NO″の場合には、同じ質問が繰返される。判定が″YES″の場合には、FIFOLO要求が発行される。N番目のデータ・レベルが表示FIFO56に書き込まれる度に(上述したフラッグ又はレジスタのリセットで示される)、その質問が繰り返され、判定が″NO″の場合には、FIFOLO要求がクリアされる。従って、FIFOLOは、表示FIFOがデータで完全に満たされなくてもクリアされる。
同様に、もう１つの判定は、表示FIFO56のデータ・レベルががFIFOHIポインターより下にあるかどうかである。判定が″NO″の場合には、同じ質問が繰り返される。判定が″YES″の場合には、FIFOHI要求が発行される。上述したように、FIFOHI（図８で2uの順番）は、マウス要求（1uの順番）以外のDRAMへの他の全てのアクセス要求に割り込みを掛ける。従って、FIFOHIが発行されると、短時間で、データがDRAM38内でアクセスされ、表示FIFO56に書き込まれることになる。N番目のデータ・レベルが表示FIFO56に書き込まれる度に(上述したフラッグ又はレジスタのリセットで示される)、その質問が繰り返され、判定が″NO″の場合には、FIFOHI要求がクリアされる。従って、FIFOHIは、表示FIFOがデータで完全に満たされなくても、或いは、FIFOLOポインターの位置まですら満たされていなくてもクリアされる。表示FIFOにN個のデータ・レベルを書き込んだとき、表示FIFO56がFIFOHIポインターより上のレベルまで満たされているだけでいいのである。
「N」の値を４に選ぶのが好ましい。Nに対するこの値は、上述した８つのレベルを持ち、各レベルが32ビットを持つ表示FIFOに対して便利である。あるVGA動作モードでは、各ピクセルは４ビットを持ち、フレーム・バッファはLCD表示装置を32ピクセルずつリフレッシュする。従って、これらの動作モードで、フレーム・リフレッシュの順序動作とN個のデータ・レベル表示FIFOへの書き込みとの間に都合のよい相関関係があることになる。勿論、表示FIFOは８つのレベルを持つ必要はないし、Nを４に選択する必要もない。Nの値は、表示FIFOの大きさとデータがアクセスされ（DRAM速度）表示FIFOに書き込まれる速度との間の関係、並びに表示FIFOからデータが出ていく速度及びこの特定のシステムの他の装置がDRAMへアクセスする条件等を考えて選択される。
２つ以上の表示FIFO56、56'、56″等を持つより複雑なDRAMコントローラに優先順位論理ユニット90が行う優先順位論理方式が図10に図示されている。図10で、DRAM38への保留されたアクセス要求は、後に述べるように、まず最初に、３つの層(上部層、中間層、及び下部層)の内の１つに割り当てられる。上部層内では保留された要求は優先順にならべられる(1uから3u)。この層には、後で詳しく述べるように、同一の優先レベルにいくつかの同格の要求があることに注意。中間層では、要求は1mから2mまでに順位付けられる。下部層内でも保留された要求は1lから3lの優先順に並べられる。このような一列に順位付けされたDRAM38への保留されたアクセス要求の論理構造内において、上部層の各要求はその層の要求待ち行列内に置かれる。
これらDRAM38へのアクセス要求はその行列内の位置の順番に従って受け付けられる。上部層の要求は、他の上部層要求に対して既に許可され現在実行中のDRAM38へのアクセス要求に割込みをしない。これらの上部層要求1u-3uには、いくつかの同格の要求を含む順位2uが含まれていることに注意。即ち、上部層順位2uには複数の要求FIFOHInが含まれており、ここで下付きの「n」は、いくつかのFIFO561-nのうち要求をしているひとつを表わしている。図５を参照して、FIFO56、56'、56″はそれぞれ数字の識別子1-3を持つが、これら識別子は、図10のFIFOアクセス要求の元を示すのに用いられる。他方、上部層の要求は、中間層又は下部層の要求に対して許可され現在実行中のDRAMへの全てのアクセスに割込むことができる。中間層の要求は上部層の要求を中断させることはできないが、それより低い順位の中間層の要求又は下部層の全てのDRAMへのアクセス要求を中断することができる。下部層の要求はDRAMへのいかなるアクセス要求にも割込むことができなく、待ち行列内に置かれるだけである。これらの下部層の要求にはいくつかの同格の要求が属する順位（1l）が含まれていることに注意。即ち、下部層順位1lには複数の要求FIFOLOnが含まれており、ここで下付きの「n」は同様に、いくつかのFIFO561-nのうち要求をしているひとつを表わしている。
図11及び12は、本コンピュータ・システムのSEQCが行うDRAMへのアクセスに対する２層調停の結果を（例として）示すタイミング図である。同様な結果が、図10に示されるような３層調停方式にも得られるであろう。まず図11を参照して、間隔#1でビット-BLTがDRAMへのアクセス要求をし、許可される。間隔#2の始めで表示FIFOがDRAMへのアクセス要求をする。FIFOLO及びFIFOHIの両方が同時に発行されたということは、表示FIFOの表示データがなくなってしまったことを示している。間隔#2では表示FIFOはビット-BLTの要求を無効にし（図８の優先順位方式を参照のこと）、FIFOHI要求がキャンセルされるのに十分な表示データを入力する(図９のフロー・チャートで行われるテストを参照のこと)。間隔#3では、表示FIFOはDRAMのサービスをまだ受けているが、その理由は、FIFOLO要求(まだ保留中)が保留中のビット-BLTの要求より優先順位が高いからである。
間隔#4では、FIFOLO要求はキャンセルされ(これはFIFOが満たされたのではなく、FIFOのレベルがFIFOLOポインターよりも上にあることを示している)、ビット-BLTの要求が認められる。間隔#5の始めにFIFOLOの要求が発行されるが、ビット-BLTエンジンはDRAMへのアクセスを維持する。それは、下部層の要求はお互いに割込むことができないからである(図８参照)。間隔#6でFIFOHIが発行され、それはビット-BLTのアクセスを中断する。間隔#7は、FIFOHI要求がキャンセルされたが、表示FIFOはDRAMへのアクセスをまだ維持していることを示している。これは、保留中のビット-BLTもまた下部層の要求であり、まだ保留中のFIFOLO要求には割込めないからである。間隔#8は、FIFOLOがキャンセルされると、保留中のビット-BLTの要求が許可されることを示している。
図12は同様な調停例を示しているが、今度はCPUと表示FIFOの間をSEQCが調停する。図12を参照して、間隔#1はCPUのDRAMへのアクセス要求を示している。この要求は許可され、CPUは使用終了宣言をする。間隔#2ではDRAMはアイドルしているが、間隔#3では、表示FIFOがDRAMへのアクセス要求をする。先に述べたのと同様、FIFOLO及びFIFOHIの両方が同時に発行されたということは、表示FIFOの表示データがなくなってしまったことを示している。間隔#3では、表示FIFOはCPUの要求を無効にし(図８の優先順位方式を参照)、FIFOHI要求がキャンセルされるのに十分な表示データを入力する(図９のフロー・チャートで行われるテストを参照のこと)。
間隔#4では、CPUはDRAMへのアクセスを許可されるが、その理由は、上部層の要求は下部層の要求に許可されたアクセスを中断することができるからである(FIFOLOは下部層の要求である)。間隔#5では、CPUはDRAM使用終了宣言をし、FIFOLO要求が許可される。間隔#6では、CPUがDRAMへのアクセス要求をし、それが表示FIFOのアクセスを中断させる。その理由は、FIFOLOのみが保留中であるからである。CPUがDRAM使用終了宣言をすると(間隔#7)、DRAMへのアクセスは表示FIFOに返還される。間隔#8の始めにFIFOHI要求が発行され、許可される。この間隔にはCPUのDRAMへのアクセス要求も発行されるが、CPUは上部層の要求でそれより高い順位を持つ要求を中断することができないため、許可されない。間隔#9では、FIFOHIがクリアされ、CPUのアクセスが許可される。その理由は、保留中のFIFOLOに基づく表示FIFOの要求をCPUは中断できるからである。
SEQC86及び表示FIFO56の動作を考えてきたので、次に、２台の表示装置に駆動信号を出力するVDC36のアーキテクチャに注意を向ける。上述したように、２つの表示装置は１台または２台のCRT、１台または２台のLCD、又は１台のCRT及び１台のLCDの組み合わせを含み、それぞれ異なった画像を表示する。或いは、テレビにNTSC信号を出力するためインターレーシング操作を行う表示FIFO56'及び56″に関連して先に述べたように、通常のテレビがCRTを置き換えてもよい。図13を参照して、当図には、コンピュータ・システム94の従来からのアーキテクチャが示されている。この従来のアーキテクチャにはDRAM96が含まれ、その中で仮想メモリ・デスクトップ・スペース98が定義されている。デスクトップ・スペース98の中で２つの表示メモリ・スペース100及び102が定義されており、一つが#1、もうひとつが#2と名付けられているが、これは、それぞれのメモリ・スペースが２つの表示装置のどちらに対応するかを示している。コンピュータ・システム94のユーザは、２つのメモリ・スペース100及び102をデスクトップ・スペース98の中で移動し、選択された位置に設定することができる。メモリ・スペース100及び102のデスクトップ・スペース98上の選択された位置は、各メモリ・スペースの参照コーナー104及び106の位置を特定することにより行われる。ユーザはさらに、それぞれの表示装置のサイズを特定する必要がある。そして、各メモリー・スペースも対応する表示装置と同じ仮想サイズを持つようにする。
仮想デスクトップは十分に大きく、ユーザはメモリ・スペース100及び102の相対的位置を、例えば、上下又は左右に並べることができる。メモリ・スペース100及び102の近接する端を隣同士に配置すれば、画像は、一つの表示画面からもう一つの画面へ切れ目無しに続き、例えば、カーサーをメモリ・スペース98中を横に動かすと、カーサーは、一つの表示装置を出ると直ちにもうひとつの表示装置に現れるようになる。従来のアーキテクチャがこの二重表示機能をどのように行うかを考えると、コンピュータ・システムには順序子108が含まれることが分かるであろう。この順序子はDRAM96へのアクセスを許可し、一般に110及び112で表わされた一対の専用表示プロセス・チャネル即ちパイプラインに表示データを供給する。通常、これらの表示パイプラインはそれぞれ、表示FIFO114、及び表示プロセッサ116を含み、又それぞれは表示駆動信号を２つの表示装置（共に118で表わす）の一つに出力する。
容易に分かるように、コンピュータ・システムのこの通常のアーキテクチャでは、非常に多くの回路及び部品が重複している。例えば、過去においては、二重表示装置を持つコンピュータ・システムを動かすのに、一つの表示装置に対し専用のビデオ・コントロール・カード（白黒又はカラー）を備えるのが普通であった。従って、コンピュータ・システム構成の修正は簡単に行えないことが分かるであろう。さらに、コンピュータ・システムがノードブック又は単一表示装置（通常、LCD薄膜表示装置）を有する携帯用の構成である場合、テレビジョン・セットであれ、CRTモニタであれ、そのコンピュータ・システムの二重表示機能を用いようとする場所にある表示装置とそのコンピュータ・システムをインターフェースすることは容易でない。
図14にはVDCの内部アーキテクチャの他の部分が示されている。同図にはコンピュータ・システム10の関連装置との接続も示されている。図14から図18で示す構造を説明するのに用いられる部品参照番号に関して、上記の構造と同一の構造又は上記の構造と構造又は機能の点で等価な構造に対しては上記のものと同じ参照番号が用いられ、混乱する可能性のある場合にはダッシュ（'）が付けられる。この場合、２台の表示装置の参照番号は14/24及び14/24'で、それぞれの表示装置はCRTか又はLCDかのどちらかであることを示している。図14に示されるコンピュータ・システムの構成は、CRTの代りとして通常のテレビジョンを駆動するように意図されているものではない。しかし、前述したように、SEQCは３つの（2つだけではなく）表示FIFO56（56'及び56″）を含んでもよく、従ってインターレースした画像信号を通常のテレビに出力することが可能である。さらに、重複した部品には、上と同じ番号を用い、それに一つ以上のダッシュが加えてある。従って、当業者は、図14に関して説明されたアーキテクチャは通常のテレビを駆動するように拡張することができることが理解できるであろう。
図14を参照して、VDCは一対の表示FIFO（56及び56'）を持ち、その各々は付随した表示FIFOカウンタ92，92'、及び付随したアドレス発生器82，82'を有する。図を簡明にするため、図14では、ホストとのインターフェース48は単に点線ラインの境界として示されている。DRAM38の内部には図13に関連して説明したような仮想デスク・トップが生成されている。仮想デスク・トップは異なったメモリ・スペース100'及び102'を含み、それぞれは２台の表示装置14/24の一つに対応している。DRAMコントローラ58のSEQC86に関連して上で説明したように、このSEQCは、仮想デスク・トップ並びにメモリ・スペース100'及び102'へのアクセスを含むDRAMへのアクセス要求を調停する。表示FIFO56はメモリ・スペース100'から表示データを得、このデータを、対応する表示装置14/24に転送するため、番号120で表わした表示データ・プロセス・パイプライン（以下「パイプライン」）に出力する。当業者には、パイプライン120は実際はパイプではなく、後で詳しく述べるように、複雑な表示データ・プロセス回路(DDPC)であることが分かるであろう。同様に、表示FIFO56'はメモリ・スペース102'から表示データを得、同じプロセス・パイプライン120を通して対応する表示装置14/24'にそのデータを転送する。
プロセス・パイプライン（DDPC）120は、表示FIFO56及び56'の一つから表示データを入力し、対応する表示装置14/24及び14/24'を駆動する信号を出力する。前述したように、VDCは２つ以上の表示FIFOを有するので、SEQC86は、DRAM38へのアクセスを調停するために、上述した３層の優先順位方式を採用する。しかし、表示FIFO56及び56'はDRAM38へ十分にアクセス可能で、FIFOに、メモリ・スペース100'及び102'からの表示データがなくなることはない。従って、DRAM38へのアクセスは、表示FIFO56及び56'のどちらに対しても間欠的であるが、表示装置14/24及び14/24'はそれぞれ異なった表示データを同時に供給される。即ち、コンピュータ・システム10のユーザは、表示装置14及び24に異なった画像が同時に現れるのを見ることになる。種々のCRTと動作できるよう、表示パイプライン120の構成を設定する変数の一部を制御するため、VDC36にはCRTカウンタ(CRTCNTR)122が含まれている。コンピュータ・システム10とインターフェースしている特定のCRTの機能に依存するが、CRTCNTR122は、そのモニタがもつ解像度の線数を読むことが可能な場合がある。他の場合、即ち、このデータを読込む通信バスを持たないモニタがコンピュータ10とインターフェースしている場合には、ユーザーがこの情報を入力しなくてはならない。
図15は、表示プロセス・パイプライン(DDPC)120の高級機能ブロック図である。この表示プロセス・パイプラインは、それぞれが表示FIFO56又は56'の内の一つに対応する２つの分離したプロセス・チャネルを表わすように見えるが、これらのプロセス・チャネルは、種々に構成可能で複雑な回路の機能的に協力する素子の中で規定されている。即ち、プロセス・パイプライン120は種々に構成可能で、動作モード及びそれにインターフェースされる表示装置のプロセス条件に合わせることが可能である。一般的に表現すると、表示パイプライン120は、表示FIFO56及び56'のそれぞれに専用で種々に構成可能な一対のデータ・デコード及びオーバー・スキャン（DDOS）124又は124'を提供する。
表示FIFO56の動作に関して先に述べたように、表示データは32ビットの二重語を単位として出力される。各々のDDOS124は32ビットの二重語のデータを入力し、メモリ・スペース100'又は102'からの画像を表示する特定の型の表示装置14/24が認識可能で入力可能なデータ形式にこのデータを加工する。このことに関しては後に詳しく述べる。例えば、表示装置14/24の１つが16カラーモードで動作しているときには、各ピクセルは、DRAM38の表示メモリ・スペース100'又は102'から４ビットのデータが必要である。この場合、各32ビットの二重語は、それぞれが４ビットでなるピクセル値を８つ持つことになる。他方、表示装置が256カラーモードで動作しているときには、各ピクセルは８ビットの表示データを取る。この場合には、各32ビットの二重語は、それぞれが８ビットでなるピクセル値を４つ持つことになる。さらに、64Kカラーモードでは、各ピクセルは18ビット（16プラス2）が必要であり、32ビットの二重語は、それぞれが16ビットでなるピクセル値を２つ持つことになる。各ピクセルに対してさらに２ビットを加えることについては以下で述べる。
DDOS124又は124'のそれぞれは、フリップ・フロップ126又は126'にピクセル値を出力する。次いで、これらのフリップ・フロップ126及び126'はそれぞれ、表示装置がLCD14であればLCDインターフェース62に、また、表示装置がCRTであればDAC61に出力する。図16は、パイプライン120内のDDOS124に対するいくつかの可能な構成の内の１つを示す。この構成では、３２ビットの二重語のデータが、８チャネルのディマルチプレクサ128のそれぞれの位置（図16中0−7）に入力される。ディマルチプレクサ128からフリップ・フロップ１３０を通して一度に４ビットずつが送られ、８ビット語の最下位の４ビットを構成する。残る４ビット（即ち、最上位ビット）に対してはレジスタ132がすべて０を加える。これは、表示動作の16カラーモードに対して必要なビット-ワード形式である。この表示装置は16カラーモードで動作する。従って、前述したように、DDOSはLCDインターフェース62'に８ビット語の表示データを出力することになる。カウンタ134はディマルチプレクサ128の入力と出力を記録しており、次の32ビットの表示データがそれに付随した表示FIFO56又は56'から送られてもよいときに要求発生器136に信号を出力する。
図17は、パイプライン120内のDDOS124'に対する可能な構成の１つを示す。この場合には、表示装置は256カラーモードで動作する。ディマルチプレクサ128'は４チャネル構成である。この結果一度に８ビットがフリップ・フロップ130'を経由して表示装置に送られる。LCDインターフェース62'は８ビット語の表示データを入力し、今度は256カラーモード動作を行う。
最後に、図18は、パイプライン120内のDDOS124″に対するもう１つの可能な構成を示す機能ブロック図である。この場合には、表示FIFO56又は56'からの表示データは64Kのカラーモード画像に復号される。したがって、各ピクセル値に対して18ビットが必要となる。最下位の16ビットは２チャネル・ディマルチプレクサ128'の対応する位置から得られる。レジスタ132″が、各表示データ語に対して必要な最上位ビットを与える。こうして得られた18ビットデータ語がDAC61'、従ってCRTに送られる。
前述のことから、当業者は、DDOS124、124'、及び124″には多くの類似点があることに気づくであろう。ディマルチプレクサ128、128'、128″のチャネル数が、これらのDDOS構成で最も大きな差異であろう。ディマルチプレクサ128で使われるチャネル数に従って、各カウンタ134、134'、及び134″に対応したカウント値が用いられる。従って、特定の表示装置の動作モード及び表示装置の型が構成の変化に対し、図16−18に見られるように一般に同じ構成を保ちながらいくつかの要素を変化させて、表示パイプライン120の内部DDOSの構成を変化させて対応する。このようにして、１つの構成可変な表示プロセス・パイプラインは、前述し図13で示した専用の表示パイプライン回路構成が必要とするより低いコスト及び大きな柔軟性で用いることができる。
勿論、図面と共に先に与えた記述を詳しく調べることにより、異なった画像を同時に表示する２つの表示装置をもつ前述のコンピュータ・システムの動作の原理、特長、及び方法が、表示装置を備えたインテリジェント装置、ユーザ表示装置をもつ埋め込まれたマイクロ・コントローラ、及び表示装置をもつインテリジェントな入出力プロセス機構を含むがこれらに限定されない他のシステムや装置に簡単に応用できることは、当業者には自明であろう。
本発明は、特に好ましい実施例を参照して説明され定義されたが、そのような実施例は本発明に対する制限を与えるものではなく、又そのような制限を示唆しているものでもない。当業者が思い付くように、本発明を、修正すること、変化させること、又は機能と形態において等価なものを形成することは可能である。
ここで述べた好ましい実施例は例として述べられたものであって、本発明の範囲を網羅しているものではない。それ故本発明は以下の特許請求項の精神と範囲によってのみ制限されるのであり、全ての点において等価のものに全認知を与える。
【図面の簡単な説明】
図１は、ビット・ブロック転送（bit-BLT）エンジン及び中央処理装置(CPU)によるDRAMへの理想的アクセスをグラフ的に示すものである。
図２は、通常のグラフィックス・コントローラをもつ従来のコンピュータ・システムで行われる仮想的タイミング図である。
図３は、第１の画像を表示するLCD表示装置を備えたノートブック型コンピュータを含むコンピュータ・システム及びコンピュータ・システム10の表示装置として用いられ第２の異なった画像を表示するテレビジョンを示す絵画である。
図４は、図１のコンピュータ・システムの機能ブロック概略図である。
図５は、前述の図で見られるコンピュータ・システムのビデオ表示コントローラ（VDC）の機能ブロック概略図である。
図６は、前述の図で見られるコンピュータ・システムのファースト・イン・ファースト・アウト表示メモリをグラフ的に表わすものである。
図７は、本コンピュータ・システムの順序子(シーケンサー)及びコントローラ(SEQC)の機能ブロック概略図である。
図８は、本コンピュータ・システムのDRAMへアクセスを許可するために作られた二層優先順位化調停方式の表を示す。
図９は、本発明のSEQCがDRAMへのアクセスを調停するために行う２つの同時に走るフローチャートである。
図１０は、本コンピュータ・システムの他の実施例のDRAMへのアクセスを許可するために作られた三層優先順位化調停方式の表を示す。
図１１及び図１２は、本コンピュータ・システムのSEQCが行うDRAMへのアクセス調停の結果を示すタイミング図である。
図１３は、異なった画像を表示する２台の表示装置を駆動する機能を有し、コンピュータ・システムのDRAMから表示装置へ転送される画像情報に対して分離したプロセス・チャネルを有する従来のコンピュータ・システムの機能ブロック図である。
図１４は、本発明を具体化するコンピュータ・システムのVDCの一部の機能ブロック図である。
図１５は、図１４のVDCの一部の機能ブロック図である。
図１６、図１７及び図１８は、図１４及び図１５のVDCの一部の機能ブロック図である。
【図１】
0003728754.tif 000002
【図２】
0003728754.tif 000003
【図３】
0003728754.tif 000004
【図４】
0003728754.tif 000005
【図５】
0003728754.tif 000006
【図６】
0003728754.tif 000007
【図７】
0003728754.tif 000008
【図８】
0003728754.tif 000009
【図９】
0003728754.tif 000010
【図１０】
0003728754.tif 000011
【図１１】
0003728754.tif 000012
【図１２】
0003728754.tif 000013
【図１３】
0003728754.tif 000014
【図１４】
0003728754.tif 000015
【図１５】
0003728754.tif 000016
【図１６】
0003728754.tif 000017
【図１７】
0003728754.tif 000018
【図１８】
0003728754.tif 000019