JPH0731586B2 - ディスプレイ・アダプタ・インターフェース装置及び方法 - Google Patents

ディスプレイ・アダプタ・インターフェース装置及び方法

Info

Publication number
JPH0731586B2
JPH0731586B2 JP4155294A JP15529492A JPH0731586B2 JP H0731586 B2 JPH0731586 B2 JP H0731586B2 JP 4155294 A JP4155294 A JP 4155294A JP 15529492 A JP15529492 A JP 15529492A JP H0731586 B2 JPH0731586 B2 JP H0731586B2
Authority
JP
Japan
Prior art keywords
display
adapter
display adapter
interface
providing
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
JP4155294A
Other languages
English (en)
Other versions
JPH05189192A (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 JPH05189192A publication Critical patent/JPH05189192A/ja
Publication of JPH0731586B2 publication Critical patent/JPH0731586B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • G—PHYSICS
    • G06—COMPUTING OR CALCULATING; COUNTING
    • G06F—ELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00—Input 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/14—Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • G—PHYSICS
    • G06—COMPUTING OR CALCULATING; COUNTING
    • G06F—ELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00—Input 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/14—Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • G06F3/1423—Digital output to display device ; Cooperation and interconnection of the display device with other functional units controlling a plurality of local displays, e.g. CRT and flat panel display
    • G06F3/1438—Digital output to display device ; Cooperation and interconnection of the display device with other functional units controlling a plurality of local displays, e.g. CRT and flat panel display using more than one graphics controller

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Digital Computer Display Output (AREA)
  • Controls And Circuits For Display Device (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、広くはコンピュータ・
グラフィクス環境において使用するディスプレイ・サブ
システムのアーキテクチャに関し、より詳しくは、ディ
スプレイ・アダプタ用の標準インターフェースを提供す
るということに関するものである。
【0002】
【従来の技術】図1は、従来の典型的なグラフィクス・
システムの一例を示したブロック図であり、このグラフ
ィクス・システムは、2つのグラフィクス・アプリケー
ション(即ちプログラム)と、3つのディスプレイ・ア
ダプタとを備えたシステムである。2つのグラフィクス
・アプリケーションのうち、第1のグラフィクス・アプ
リケーション100は、図示の如く2次元(2−D)グ
ラフィクス用のソフトウェア・パッケージであり、ま
た、第2のグラフィクス・アプリケーション110は、
図示の如く3次元(3−D)グラフィクス用のソフトウ
ェア・パッケージである。これらグラフィクス・アプリ
ケーション100と110とはいずれも、ディスプレイ
・アダプタ170、180、及び190との通信を行な
うには、夫々アプリケーション・プログラミング・イン
ターフェース(API)120ないし130に頼ってい
る。これらAPIは、夫々のアプリケーションがディス
プレイ・アダプタに実行させようとする、様々な機能並
びに制御を定義しており、これらAPIを使用すること
によって、ディスプレイ・アダプタを直接的な対象とし
てプログラミングする場合に可能なグラフィクス管理の
方法と比較して、より高度に抽象化されたより強力なグ
ラフィクス管理の方法を実現することができる。図示の
従来例においては、API120と130とが包含して
いるコードは、典型的な場合にそうであるように、ディ
スプレイ・アダプタ170、180、及び190に適合
するように構成したデバイス・ドライバ124、12
6、128、132、134、及び136を形成してい
る。
【0003】この従来例においては、一般的に、API
からディスプレイ・アダプタへの情報の流れは、アプリ
ケーション・プログラムの関知しないものとしている。
こうすることによって、アプリケーション・プログラム
をプログラミングする作業を簡単化し、また、そのアプ
リケーション・プログラムの利用を容易にしているので
ある。例えば、2−Dグラフィクス・アプリケーション
100は、ディスプレイ・アダプタ(B)180に対し
て通信を行なう際には、API120を介して情報を送
信する。この場合、API120は、内部のデバイス・
ドライバ126を介して、その情報をディスプレイ・ア
ダプタ180へ送信する。そして、この従来例におい
て、グラフィクス・アプリケーション100は、通常の
場合には、API120と、その内部のデバイス・ドラ
イバ126との間のデータの流れにも、また、そのデバ
イス・ドライバ126とディスプレイ・アダプタ180
との間のデータの流れにも関知していない。
【0004】図2は、図1の従来例よりも更に新しい従
来例の技法を示したブロック図であり、この図2の従来
例は、1990年2月12日付出願の、発明の名称を
「グラフィクス・アダプタ・インターフェースを備えた
ディスプレイ・サブシステムのアーキテクチャ(Displa
y Subsystem Architecture Having a Graphics Adapter
Interface)」とした、米国特許出願第07/4783
84号に記載されている技法である。この従来例のグラ
フィクス・システムでは、例えば3つのグラフィクス・
アプリケーション200、205、及び210を装備す
ることができる。そして、特に図示例では、それら3つ
のグラフィクス・アプリケーションは、MITの「X-Wi
ndows 」と、シリコン・グラフィクス社の「GL」と、
IBM社の「graPHIGS」との3つとしてある。これらア
プリケーションの各々は、みずからに適合した構成のA
PI220、225、ないしは230を使用するように
設計されている。更にこれらAPI220、225、及
び230の各々は、グラフィクス・アダプタ・インター
フェース(以後「GAI」という)300との間で通信
を行なう。これらAPIは、その各々が、1つずつのG
AIドライバ221、226、231を内蔵しており、
そのGAIドライバを使用して、GAI300の中の互
いに異なったデバイス・ドライバ・ライブラリ320、
330、ないし340との間で通信を行なう。そして更
にこれらGAIデバイス・ドライバ・ライブラリ32
0、330、340が、ディスプレイ・アダプタ26
0、265、270との間で通信を行なう。図示例で
は、3つのGAIデバイス・ドライバ・ライブラリに
は、夫々GAI/2Dライブラリ320、GAI/3D
M1ライブラリ330、それにGAI/3DM2ライブ
ラリ340と名付けてある。これら3つのGAIデバイ
ス・ドライバ・ライブラリの各々が、3つのディスプレ
イ・アダプタ260、265、270の各々に対して、
1つずつの特定ディスプレイ・アダプタ向けコードを、
使用すべく内蔵しているため、それらコードは合計で9
つ(321、322、323、331、332、33
3、341、342、343)ある。また、同じ1つの
GAIデバイス・ドライバ・ライブラリの中に包含され
ている、3つの特定デバイス向けディスプレイ・ドライ
バ(即ち、特定ディスプレイ・アダプタ向けコード)
は、特定の1つのAPIに対するインターフェースとし
て、それら3つのコードの間で共通の1つのプログラミ
ング・インターフェースを共用するようにしている。即
ち、図示例では、GAIデバイス・ドライバ・ライブラ
リ320、330、及び340が、夫々、ライブラリ・
インターフェース(2−D)325、(3DM1)33
5、(3DM2)345を使用している。
【0005】以下、GAIデバイス・ドライバ・ライブ
ラリのことを、単に「GAIライブラリ」といい、ま
た、特定ディスプレイ・アダプタ向けコードのことを、
「特定デバイス向けディスプレイ・ドライバ」或いは単
に「ディスプレイ・ドライバ」という。以上から分るよ
うに、各々のGAIライブラリは、複数の特定デバイス
向けディスプレイ・ドライバを含んでいる。例えば、G
AI/2Dライブラリ320は3つのディスプレイ・ド
ライバ321、322、及び323を含んでおり、これ
らディスプレイ・ドライバは、その各々が、夫々の目的
ディスプレイ・アダプタ260、265、及び270に
合わせて作成されている。この図2の従来例において
は、あるアプリケーションが、そのアプリケーションに
対応したAPIに、1つのGAIライブラリを選択させ
たときに、そのAPIが、そのGAIの中のどのディス
プレイ・ドライバを目的ディスプレイ・ドライバとすべ
きかを、併せて選択するようにしてある。例えば、ある
マシンの上で、GLアプリケーション205が実行され
ていたものとし、また、そのマシンには、ディスプレイ
・アダプタ(B)265が内蔵されていたものとすれ
ば、先ず、そのGLアプリケーション205は、3D/
API(GL)225を使用する。そして、この3D/
API(GL)225は、GAIデバイス・ドライバ2
26を内蔵している。このGAIデバイス・ドライバ2
26とGAI300との間で対話が行なわれ、その結
果、GAI/3DM2ライブラリ340が選択される。
このGAI/3DM2ライブラリ340のプログラミン
グ・インターフェースと機能内容とは、GAIデバイス
・ドライバ226と、ディスプレイ・アダプタ265を
目的としたディスプレイ・ドライバ342の特定デバイ
ス向きコードとの、動的結合によって実現される。
【0006】
【発明が解決しようとする課題】本発明の目的は、ディ
スプレイ・アダプタ用の標準インターフェースを提供す
ることにある。
【0007】
【課題を解決するための手段】本発明は、複数のアプリ
ケーション・プログラムと、ディスプレイをサポートす
る機能を有する少なくとも1つのディスプレイ・アダプ
タとの間の、インターフェースを行なうための装置を含
むものである。この装置は、前記複数のアプリケーショ
ン・プログラムのうちの第1アプリケーション・プログ
ラムからディスプレイ・アダプタの機能へのインターフ
ェースを提供する第1ドライバ手段と、前記複数のアプ
リケーション・プログラムのうちの第2アプリケーショ
ン・プログラムから前記ディスプレイ・アダプタの機能
へのインターフェースを提供する第2ドライバ手段と、
前記第1及び第2ドライバ手段と前記ディスプレイ・ア
ダプタとに結合した、前記第1及び第2ドライバ手段の
双方に、前記ディスプレイ・アダプタの選択した機能へ
の共通のアクセスを提供するアクセス手段と、を含んで
いる装置である。更に本発明は、複数のアプリケーショ
ン・プログラムと、ディスプレイをサポートする機能を
有する少なくとも1つのディスプレイ・アダプタとの間
の、インターフェースを行なう方法をも、含むものであ
る。この方法は、前記複数のアプリケーション・プログ
ラムのうちの第1アプリケーション・プログラムからデ
ィスプレイ・アダプタの機能へのインターフェースであ
る、第1インターフェースを提供するステップと、前記
複数のアプリケーション・プログラムのうちの第2アプ
リケーション・プログラムから前記ディスプレイ・アダ
プタの機能へのインターフェースである、第2インター
フェースを提供するステップと、前記第1及び第2イン
ターフェースから前記ディスプレイ・アダプタの選択し
た機能への共通のアクセスを提供する、共通アクセス提
供ステップと、を含んでいる方法である。本発明の本質
並びに利点を更に深く理解するためには、本明細書の以
下の説明並びに添付図面を参照されたい。
【0008】
【実施例】図3は、本発明の好適実施例を用いることの
できる典型的なディジタル・コンピュータ400のブロ
ック図である。コンピュータ400は、ホスト・コンピ
ュータ405を含んでいる。更にこのホスト・コンピュ
ータ405は、(1つまたは複数の)メイン・プロセッ
サ410を含んでおり、メイン・プロセッサ410は、
メモリ420と、(1つまたは複数の)入力デバイス4
30と、(1つまたは複数の)出力デバイス440とに
結合している。メイン・プロセッサ410はただ1つの
プロセッサから構成されたものであっても良く、或いは
複数のプロセッサから構成された、マルチ・プロセッサ
構成のものであっても良い。入力デバイス430は、例
えば、キーボード、マウス、タブレット、等々の様々な
種類の入力デバイスである。出力デバイス440は、例
えば、テキスト・モニタ、プロッタ、等々の様々な種類
の出力デバイスである。メイン・プロセッサ410は更
に、ディスプレイ・アダプタ500を介して、グラフィ
クス・ディスプレイ等の(1つまたは複数の)出力デバ
イス450にも結合し得るものである。ディスプレイ・
アダプタ500は、グラフィクスに関する様々な命令
を、メイン・プロセッサ410から、バス450を介し
て受け取る。そして、受け取ったそれら命令を、例え
ば、一時的にFIFO(先入れ先出し)キュー505の
中に記憶する。続いてディスプレイ・アダプタ500
は、それら命令を、アダプタ・メモリ530に結合した
(1つまたは複数の)アダプタ・プロセッサ520によ
って実行する。このディスプレイ・アダプタ500は、
メイン・プロセッサ410から受け取った命令に応じて
実行するための複数の機能から成る機能集合を備えてい
る。それら複数の機能は、一般的には、マイクロコード
命令の形で、アダプタ・メモリ530の中に記憶されて
おり、アダプタ・プロセッサ520によって実行される
ものである。また、それら機能のうちには、ディスプレ
イ上に原始要素を描画することも含まれる。アダプタ・
プロセッサ520は、与えられた命令を実行し、そし
て、その命令に基づいて(1つまたは複数の)フレーム
・バッファ540を更新する。フレーム・バッファ54
0は、出力デバイス上に表示すべき全てのピクセルのデ
ータを、保持している。そして、RAMDAC(ランダ
ム・アクセス・メモリ・ディジタル・アナログ・コンバ
ータ)550が、フレーム・バッファ540の中に保持
されているそのディジタル・データを、RGB信号へ変
換した上で、ディスプレイ450へ供給する。これによ
って、メイン・プロセッサ410からの、ディスプレイ
のための所望の出力が描画される。
【0009】図4は、本発明の好適実施例を採用したグ
ラフィクス・システムのブロック図である。この実施例
におけるグラフィクス・システムは、3つのアプリケー
ション(即ちアプリケーション・プログラム)600、
605、及び610を装備しており、また、それらアプ
リケーションの各々に対応した、API615、62
0、及び625を備えている。この実施例では、それら
アプリケーションは、MITの「X-Windows 」、シリコ
ン・グラフィクス社の「GL」、それにIBM社の「gr
aPHIGS」である。API615、620、及び625
は、夫々、GAIドライバ616、621、及び626
を内蔵しており、そのGAIドライバを使用することに
よって、GAI650の中にあるGAIデバイス・ドラ
イバ・ライブラリ660、670、及び680と、通信
をし、且つ動的結合をする。また、GAIデバイス・ド
ライバ・ライブラリ660、670、及び680の各々
は、ライブラリ・インターフェース665、675、及
び685を含んでおり、これらライブラリ・インターフ
ェースを介して、夫々のAPIとデバイス・ドライバと
の間の通信が行なわれる。
【0010】アダプタ・インターフェース・レイヤ70
0が、GAI650と、ディスプレイ・アダプタ77
0、780、及び790との間に備えられている。ま
た、GAIディスプレイ・ドライバ661、662、6
63、671、672、673、681、682、68
3の中には、夫々に特定デバイス向けコードが包含され
ており、それら特定デバイス向けコードは、アダプタ・
インターフェース・レイヤ700との間でインターフェ
ースできるように、また、このアダプタ・インターフェ
ース・レイヤ700を利用することによって、信号ライ
ン711、721、及び731を介してディスプレイ・
アダプタの機能にアクセスできるように、プログラムさ
れている。ただし、GAI650は、このアダプタ・イ
ンターフェース・レイヤ700を利用せずとも、信号ラ
イン715、725、735を介してディスプレイ・ア
ダプタ770、780、及び790と通信をすることが
できるようにしてあり、これによって、デバイス・ドラ
イバを構築する上での融通性を確保している。アダプタ
・インターフェース・レイヤ700は、3つのコード集
合710、720、及び730を含んでおり、各々のコ
ード集合は、特定の1つのディスプレイ・アダプタを利
用するためのコード集合として作成されている。これら
3つのコード集合の各々は、ここではそれをルーチンと
呼ぶが、夫々に対応したディスプレイ・アダプタ77
0、780、及び790を利用するための、コード部
分、マクロ、サブルーチン、及び/または、プログラム
を含むものである。
【0011】この図4の実施例においては、GAI65
0の中には、特定デバイス向けに作成されたソフトウェ
アを包含しているディスプレイ・デバイス・ドライバが
複数設けられており、それらのうち、特にディスプレイ
・アダプタ790に合わせて作成されたソフトウェアを
包含しているディスプレイ・デバイス・ドライバは、3
つ(663、673、及び683)存在している。そし
て、これら3つのディスプレイ・デバイス・ドライバ6
63、673、及び683の夫々は、アダプタ・インタ
ーフェース・レイヤ700の中の、同一のコード集合7
30を利用することになる。複数のプログラマがチーム
を組んで作業をする場合には、プログラマ達は、これら
3つのディスプレイ・デバイス・ドライバ663、67
3、及び683の夫々の構成部分の間で、ソフトウェア
を流用したり交換したりすることができる。何故なら
ば、同一のディスプレイ・アダプタをアクセスする方法
は共通だからである。また、ディスプレイ・アダプタ7
90に変更が加えられたときには、アダプタ・インター
フェース・レイヤ730を修正するだけで、その変更に
対処することができる。更に、ディスプレイ・ドライバ
とディスプレイ・アダプタとの間のデータ交換をより好
適に行なえるような、すばらしく優れた技法が開発され
たときには、その技法をルーチンの形にして組み込むこ
とができ、それによって、その技法をプログラマの仲間
内で利用することができるようになり、また、その技法
を組み込むために個々のディスプレイ・ドライバを別々
に設計し直さねばならないということもなくなる。
【0012】この図4の好適実施例では、コード集合7
10、720、ないし730の中の夫々のルーチンは、
個々のディスプレイ・アダプタに対応したデバイス・ド
ライバをコンパイルするときに、一緒にそのデバイス・
ドライバの中にコンパイルして組み込むようにしてい
る。そのため、デバイス・ドライバの各々が、ディスプ
レイ・アダプタを利用しまたディスプレイ・アダプタと
インターフェースするために必要なコードを入手するの
は、実行時間ではなく、コンパイルするときである。こ
の点に関する別の具体例としては、実行時にだけ使用す
る別個のルーチンをディスプレイ・アダプタの中から取
り出して用いるという方法もある。使用するルーチンの
様々な具体例、それらの使用の仕方、並びに、それらの
別実施態様については、後に更に詳細に説明する。
【0013】図5は、図4のアダプタ・インターフェー
ス・レイヤ700とは異なった使い方をしているアダプ
タ・インターフェース・レイヤ900のブロック図であ
る。この実施例におけるグラフィック・システムは、2
つのアプリケーション800及び810を装備してお
り、また、それらアプリケーションの各々に対応した、
API820及び830を備えている。この実施例で
は、それら2つのアプリケーションのうち、第1のアプ
リケーション800は「2−D」グラフィック・システ
ムであり、第2のアプリケーション810は「3−D」
グラフィック・システムである。API820は、3つ
のディスプレイ・アダプタ870、880、及び890
の各々に対応した、3つのデバイス・ドライバ822、
824、及び826を含んでおり、またAPI830
も、同様に、3つのディスプレイ・アダプタ870、8
80、及び890の各々に対応した、3つのデバイス・
ドライバ832、834、836を含んでいる。
【0014】アダプタ・インターフェース・レイヤ90
0は、それら合計6つのデバイス・ドライバと、3つの
ディスプレイ・アダプタとの間に備えられている。夫々
のデバイス・ドライバは、アダプタ・インターフェース
・レイヤ900との間でインターフェースできるよう
に、また、このアダプタ・インターフェース・レイヤ9
00を利用してディスプレイ・アダプタの機能にアクセ
スできるように、プログラムされている。ただし、夫々
のデバイス・ドライバは、このアダプタ・インターフェ
ース・レイヤ900を利用せずとも、信号ライン91
5、916、925、926、935、及び936を介
してディスプレイ・アダプタと通信をすることができる
ようにしてあり、これによって、デバイス・ドライバを
構築する際の融通性を得ている。アダプタ・インターフ
ェース・レイヤ900は、3つのコード集合910、9
20、及び930を含んでおり、各々のコード集合は、
特定の1つのディスプレイ・アダプタを利用するための
コード集合として作成されている。これら3つのコード
集合の各々は、ここではそれをルーチンと呼ぶが、夫々
に対応したディスプレイ・アダプタ870、880、及
び890を利用するための、コード部分、マクロ、サブ
ルーチン、及び/または、プログラムを含むものであ
る。
【0015】図6は、アダプタ・インターフェース・レ
イヤ1000(図4のアダプタ・インターフェース・レ
イヤ700、ないしは図5のアダプタ・インターフェー
ス・レイヤ900に相当)を構成する様々なコードのう
ちに含められることのあるコード(ルーチン)を例示し
たブロック図である。この図6に示した具体例には、バ
ッファ遅延ルーチン1010、FIFOルーチン102
0、レジスタ・アクセス・ルーチン1030、DMAア
クセス・ルーチン1040、それに、PIOアクセス・
ルーチン1050が含められており、更にその他のルー
チン1060が含められることもある。
【0016】アダプタ・インターフェース・レイヤ10
00に含められることのある、バッファ遅延ルーチン1
010は、ディスプレイ・アダプタへ転送されるデータ
の、その転送を遅延させるためのルーチンである。様々
なグラフィクス・システムのうちには、ホスト・コンピ
ュータからバスを介してディスプレイ・アダプタへデー
タを転送する際に、一度に転送するデータ量が少ない
と、大量のデータを転送するときと比較してデータの転
送効率が甚だしく悪化するようなグラフィクス・システ
ムがある。そのような場合には、バスを介して転送先へ
データを書込む動作を遅延させることによって、一旦、
大量のデータを蓄積し、その後にそのデータの書込みを
行なわせるようにすれば良い。このバッファ遅延ルーチ
ン1010は、データをバッファへ入れて遅延させるた
めと、そのバッファから、蓄積したデータを一度に送出
する動作を制御するためとに用いられる。更に、このル
ーチンには、システムのデバッギング並びにパフォーマ
ンス・チューニングを行なう際の助けとなるように、ト
レース機能を付加しておいても良い。このバッファ遅延
ルーチンは、各々のデバイス・ドライバが個別にこのル
ーチンを利用することができるようなルーチンにしてお
いても良く、或いは、一般的なプログラミング技法を用
いて、同じ1つのディスプレイ・アダプタに対応した複
数のデバイス・ドライバが、共通のバッファを共用する
ことができるようなルーチンにしておいても良い。
【0017】アダプタ・インターフェース・レイヤ10
00に含められることのある、FIFO(先入れ先出
し)ルーチン1020は、ディスプレイ・アダプタへデ
ータを転送する際に、そのディスプレイ・アダプタ内の
FIFOキューをオーバーフローもアンダーフローもさ
せることなく、データ転送を行なえるようにするための
ルーチンである。様々なディスプレイ・アダプタのうち
には、そのディスプレイ・アダプタへの入力データを一
旦記憶させておくために使用しているFIFOキュー
が、特別に設計された特殊な構造のFIFOキューであ
るようなディスプレイ・アダプタもある。また、ディス
プレイ・アダプタ内のFIFOキューをオーバーフロー
もアンダーフローもさせることなく、データ転送を行な
うためには、予め満足しておかねばならないバス・プロ
グラミングに関する条件が存在している。ディスプレイ
・アダプタ内のFIFOの用い方についての、更に詳細
な説明は、1990年2月12日付出願の、発明の名称
を「複数プロセスのための先入れ先出しバッファ・キュ
ー管理(First-In/First-out Buffer Queue Management
for Multiple Processes )」とした、米国特許出願第
07/480181号の中に示されており、この米国特
許出願はこの言及をもって本開示に包含するものとす
る。複数のマクロから成るマクロ集合を利用することに
より、FIFOの動作速度(ペース)を制御し、また、
FIFOキューの制御にその他のシステム・ソフトウェ
ア上の条件を付加することができる。FIFOルーチン
1020は、ディスプレイ・アダプタのFIFOキュー
505の中にデータを書込み、そしてこのFIFOのペ
ースを制御するものであり、また更に、システムのデバ
ッギング並びにパフォーマンス・チューニングのために
使用するトレース機能も提供し得るようにしたルーチン
である。
【0018】アダプタ・インターフェース・レイヤ10
00に含められることのある、レジスタ・アクセス・ル
ーチン1030は、ディスプレイ・アダプタ内のレジス
タに記憶しておくデータの、書込みと読出しとを高速か
つ効率的に行なうためのルーチンである。このルーチン
は更に、システムのデバッギング並びにパフォーマンス
・チューニングに使用するトレース機能も提供し得るよ
うにしてある。直接メモリ・アクセス(DMA)機構で
あるDMAアクセス・ルーチン1040は、GAIから
ディスプレイ・アダプタへ、或いは、GAIが使用され
ていない場合にはAPIからディスプレイ・アダプタ
へ、そのDMA機能を発揮して、情報を転送する能力を
提供するために備えられることのあるルーチンである。
また、バス・メモリのプログラム式入出力ルーチン(Pr
ogrammed Input/Output routine:PIOルーチン)10
50は、もう1つの別の、ローレベルのアクセス機能と
して備えられることのあるルーチンであり、この機能
は、バス・レジスタ・アクセス・ルーチン1030の機
能と良く似ている。その他のルーチン1060も、この
アダプタ・インターフェース・レイヤ1000の中に含
められることがある。
【0019】図7は、本発明を用いて、ホスト・コンピ
ュータとディスプレイ・アダプタとの間のデータ交換を
最適化するための共通ハイレベル制御を提供する際の動
作を図示したフローチャートである。このフローチャー
トは、図6に関して上で説明したアダプタ・インターフ
ェース・レイヤ1000の中に含まれるルーチンのうち
の幾つかを使用した動作を示したものである。最初のス
テップ1100では、アプリケーションが、ディスプレ
イ・アダプタに実行させる命令をAPIへ送信する。続
いて第2番目のステップ1110では、APIが、その
命令をGAIへ送信し、その命令を受け取ったGAI
は、アダプタ・インターフェース・レイヤのルーチンを
使用する。即ち、ステップ1120において、GAIが
WRITE TO FIFOマクロを実行する。この WRITE TO FIFO
マクロは、ディスプレイ・アダプタ内のFIFOのオー
バーフロー及びアンダーフロー状態に注意しつつ、その
FIFOの中に、命令並びにデータを効率的に書き込む
ためのマクロである。この動作を行なうためには、ディ
スプレイ・アダプタ内のFIFOへのロードを行なって
いる間、ディスプレイ・アダプタの機能のうちの幾つか
にアクセスして、それら機能を利用するようにする。こ
の WRITE TO FIFOマクロは、特定アダプタ向けという性
質が極めて濃厚なマクロであり、そのため好適実施例に
おいては、このマクロをアダプタ・インターフェース・
レイヤの中に置くという、好適な構成にしてある。この
WRITE TO FIFOマクロについては、以下に図8〜図10
を参照しつつ、更に詳細に説明する。ステップ1120
を実行完了したならば、ステップ1130において、ア
プリケーションへリターン信号を返す。
【0020】図8は、図7を参照して上で説明した WRI
TE TO FIFOマクロを図示したフローチャートである。こ
の WRITE TO FIFOマクロは、ステップ1200から始ま
る。ステップ1210では、データ(先に遅延させてお
いたデータを含む)をDMA方式でディスプレイ・アダ
プタへ転送するための然るべき基準条件が、満足されて
いるか否かを判断する。この判断の結果が否定的(N
O)であったならば、続いてステップ1220で、遅延
させたデータが現在存在しているか否かを判断する。こ
のステップ1220での判断の結果が肯定的(YES)
であったならば、続いてステップ1230で FLUSH DEF
ERBUF マクロを実行する。この FLUSH DEFERBUF マクロ
は、ディスプレイ・アダプタへ送信すべき情報を保持し
ている遅延バッファからその情報を送出させて、その遅
延バッファをクリアし、そして、その情報を効率的にデ
ィスプレイ・アダプタへ送信して、ディスプレイ・アダ
プタがその情報に関する動作を実行できるようにするマ
クロである。この FLUSH DEFERBUF マクロについては、
後に図10を参照しつつ更に詳細に説明する。このステ
ップ1230を実行完了したならば、ステップ1240
へ進み、また、先のステップ1220での判断の結果が
否定的(NO)であった場合には、そこから直接、ステ
ップ1240へ進む。このステップ1240では PIO W
RITE TO FIFOマクロを実行する。この PIO WRITE TO FI
FOマクロは、ディスプレイ・アダプタ内のFIFOの様
々な状態に注意を払いつつ、そのFIFOの中へ情報を
書き込むマクロである。また、先のステップ1210で
の判断の結果が肯定的(YES)であったならば、そこ
からステップ1250へ進み、このステップ1250で
はWRITE TO DEFERBUFマクロを実行する。この WRITE TO
DEFERBUFマクロは、ディスプレイ・アダプタへ送信す
べき命令及びデータを、遅延バッファの中に蓄積するマ
クロである。これによって、ホスト・コンピュータか
ら、ディスプレイ・アダプタの中へ、情報のブロックを
効率的に書込むことができるようになる。この蓄積バッ
ファは一般的には、ホスト・コンピュータのメモリの中
に設けておくようにする。また、この WRITE TO DEFERB
UFマクロについては、以下に図9を参照しつつ、更に詳
細に説明する。続いてステップ1260において DMA W
RITE TO FIFOマクロを実行する。この DMA WRITE TO FIF
Oマクロは、ディスプレイ・アダプタ内のFIFOの様
々な状態に注意を払いつつ、そのFIFOの中へ情報を
書き込むマクロである。続いてステップ1270におい
て、ホスト・コンピュータのメモリの中の、ポインタ及
びサイズ変数の必要な更新を行なう。そして、ステップ
1280では、処理の実行を図7のステップ1120へ
返す。
【0021】図9は、上で説明した WRITE TO DEFERBUF
マクロのフローチャートである。この WRITE TO DEFERB
UFマクロはステップ1300から始まる。ステップ13
10では、遅延バッファの中に、更に多くの入力データ
を記憶する余地が残っているか否かを判別する。この判
断の結果が否定的(NO)であったならば、続いてステ
ップ1320で FLUSH DEFERBUF マクロを実行する。こ
のステップ1320を実行完了したならば、ステップ1
330へ進む。また、先のステップ1310での判断の
結果が肯定的(YES)であった場合には、そこから直
接、このステップ1330へ進む。このステップ133
0では、遅延バッファにデータを書き込む。続いてステ
ップ1340では、ポインタ及びサイズ変数の、必要な
更新を行なう。そして、ステップ1350では、この W
RITE TO DEFERBUFマクロをコールしたステップへ処理の
実行を返す。
【0022】図10は、上で説明した FLUSH DEFERBUF
マクロを図示したフローチャートである。この FLUSH D
EFERBUF マクロは、ステップ1400から始まる。ステ
ップ1410では、DMA方式でデータの転送を行なう
ための然るべき基準条件が、満足されているか否かを判
断する。この判断の結果が肯定的(YES)であったな
らば、ステップ1430で DMA WRITE TO FIFOマクロを
実行する。一方、このステップ1410での判断の結果
が否定的(NO)であったならば、ステップ1420で
PIO WRITE TO FIFOマクロを実行する。これらステップ
1420とステップ1430との、いずれの処理を実行
完了した場合にも、続いてステップ1440において、
ポインタ及びサイズ変数の、必要な更新を行なう。そし
て、ステップ1450では、この FLUSH DEFERBUF マク
ロをコールしたルーチンへ処理の実行を返す。
【0023】
【発明の効果】本発明は、従来例との比較において多く
の利点を提供するものとなっている。即ち、アダプタ・
インターフェース・レイヤを備えたため、従来はデバイ
ス・ドライバが実行していた様々な機能のうちの、多く
の機能の標準化が可能になっている。そのため、新たな
アプリケーション、及び/または、新たなディスプレイ
・アダプタをコンピュータ・システムに接続する際に
は、従来そのために必要とされていた作業負担と較べ
て、より軽い作業負担でその接続を行なうことができ
る。更に加えて、アダプタ・インターフェース・レイヤ
の共通の機能即ちルーチンを利用できるようにしてある
ため、バッファ遅延やトレース作業等の、高度で相互関
連性を有する機能を提供し得るものとなっている。本発
明は更に、コンピュータ・システムの保守を、より容易
にするものでもある。また、アダプタ・インターフェー
ス・レイヤを構成する様々なルーチンは、個々のディス
プレイ・ドライバのプログラマよりも、ディスプレイ・
アダプタのことをより深く知悉したプログラマに作成さ
せることができる。そのため、新たなアプリケーション
をシステムに接続する際にも、その接続作業を、誤りを
より少なくし、より短時間で完了することができ、より
効率的なプログラミングが行なえるようになる。
【0024】以上、本発明をその幾つかの具体的な実施
例に即して詳細に説明したが、当業者であれば、それら
実施例以外の別実施例にも容易に想到し得ることは明ら
かである。例えば、本発明は、画像処理や、撮像及び画
像再生に関するアプリケーションにも適用し得るもので
ある。従って、本発明の範囲は、以上に説明した実施例
に限定されるものではない。
【図面の簡単な説明】
【図1】2つのグラフィクス・アプリケーションと3つ
のディスプレイ・アダプタとを備えた従来の典型的なグ
ラフィクス・システムを示したブロック図である。
【図2】図1の従来のグラフィクス・システムより新し
い、別の従来のグラフィクス・システムのブロック図で
ある
【図3】本発明の好適実施例を用いることのできる典型
的なディジタル・コンピュータのブロック図である。
【図4】本発明の好適実施例を用いたグラフィクス・シ
ステムを示したブロック図である。
【図5】アダプタ・インターフェース・レイヤの、図4
とは別の用い方を示したブロック図である。
【図6】アダプタ・インターフェース・レイヤの中に包
含することのできるコードの種類を例示したブロック図
である。
【図7】本発明を採用したシステムの動作の一部を例示
したフローチャートである。
【図8】本発明を採用したシステムの動作の一部を例示
したフローチャートである。
【図9】本発明を採用したシステムの動作の一部を例示
したフローチャートである。
【図10】本発明を採用したシステムの動作の一部を例
示したフローチャートである。
【符号の説明】
600、605、610 アプリケーション・プログラ
ム 615、620、625 アプリケーション・プログラ
ミング・インターフェース(API) 650 グラフィクス・アダプタ・インターフェース
(GAI) 700 アダプタ・インターフェース・レイヤ 710、720、730 コード集合 770、780、790 ディスプレイ・アダプタ 800、810 アプリケーション・プログラム 820、830 アプリケーション・プログラミング・
インターフェース(API) 870、880、890 ディスプレイ・アダプタ 900 アダプタ・インターフェース・レイヤ 910、920、930 コード集合
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ステファニー・リン・ジェンセン アメリカ合衆国78750、テキサス州 オー スチン、ハイ・ハロウ・ドライブ 7802番 地 (72)発明者 ジェームズ・アラン・ミラー アメリカ合衆国78613、テキサス州 シー ダー・パーク、ペイント・ブラッシュ・ト レイル 1113番地 (72)発明者 ゲーリー・リー・ワイズマン アメリカ合衆国78729、テキサス州 オー スチン、ラボック・レーン 13104番地

Claims (9)

    【特許請求の範囲】
  1. 【請求項1】 複数のアプリケーション・プログラム
    と、ディスプレイをサポートする機能を有する少なくと
    も1つのディスプレイ・アダプタとの間の、インターフ
    ェースを行なうための装置において、 a)前記複数のアプリケーション・プログラムのうちの
    第1アプリケーション・プログラムからディスプレイ・
    アダプタの機能へのインターフェースを提供する第1ド
    ライバ手段と、 b)前記複数のアプリケーション・プログラムのうちの
    第2アプリケーション・プログラムから前記ディスプレ
    イ・アダプタの機能へのインターフェースを提供する第
    2ドライバ手段と、 c)前記第1及び第2ドライバ手段と前記ディスプレイ
    ・アダプタとに結合した、前記第1及び第2ドライバ手
    段の双方に、前記ディスプレイ・アダプタの選択した機
    能への共通のアクセスを提供する、アクセス手段と、 を備えたことを特徴とする装置。
  2. 【請求項2】 前記アクセス手段が、前記第1及び第2
    ドライバ手段のうちの少なくとも一方のドライバ手段か
    ら受け取った、前記ディスプレイ・アダプタの機能への
    アクセス要求を、記憶しておくための記憶手段を含んで
    いることを特徴とする請求項1の装置。
  3. 【請求項3】 a)前記第1アプリケーション・プログ
    ラムから第2ディスプレイ・アダプタの機能へのインタ
    ーフェースを提供する第3ドライバ手段と、 b)前記第2アプリケーション・プログラムから前記第
    2ディスプレイ・アダプタの機能へのインターフェース
    を提供する第4ドライバ手段と、を更に備えており、 前記アクセス手段が、前記第3及び第4ドライバ手段と
    前記ディスプレイ・アダプタとに結合した、前記第3及
    び第4ドライバ手段の双方に、前記第2ディスプレイ・
    アダプタの選択した機能への共通のアクセスを提供する
    手段を含んでいる、ことを特徴とする請求項1の装置。
  4. 【請求項4】 複数のアプリケーション・プログラム
    と、ディスプレイをサポートする機能を有する少なくと
    も1つのディスプレイ・アダプタとの間の、インターフ
    ェースを行なう方法において、 a)前記複数のアプリケーション・プログラムのうちの
    第1アプリケーション・プログラムからディスプレイ・
    アダプタの機能へのインターフェースである、第1イン
    ターフェースを提供するステップと、 b)前記複数のアプリケーション・プログラムのうちの
    第2アプリケーション・プログラムから前記ディスプレ
    イ・アダプタの機能へのインターフェースである、第2
    インターフェースを提供するステップと、 c)前記第1及び第2インターフェースから前記ディス
    プレイ・アダプタの選択した機能への共通のアクセスを
    提供する、共通アクセス提供ステップと、 を含んでいることを特徴とする方法。
  5. 【請求項5】 前記共通アクセス提供ステップが、前記
    ドライバ手段のうちの少なくとも1つのドライバ手段か
    ら受け取った、前記ディスプレイ・アダプタの機能への
    アクセス要求を、記憶するステップを含んでいることを
    特徴とする請求項4の方法。
  6. 【請求項6】 a)前記第1アプリケーション・プログ
    ラムから第2ディスプレイ・アダプタの機能へのインタ
    ーフェースである、第3インターフェースを提供するス
    テップと、 b)前記第2アプリケーション・プログラムから前記第
    2ディスプレイ・アダプタの機能へのインターフェース
    である、第4インターフェースを提供するステップと、
    を更に含んでおり、 前記共通アクセス提供ステップが、前記第3及び第4イ
    ンターフェースから前記第2ディスプレイ・アダプタの
    選択した機能への共通のアクセスを提供するステップを
    含んでいる、ことを特徴とする請求項4の方法。
  7. 【請求項7】 データ処理システムにおいて、 a)ディスプレイをサポートする機能を有するディスプ
    レイ・アダプタと、 b)ホスト・コンピュータと、を備え、 前記ホスト・コンピュータが、 イ)第1アプリケーション・プログラム及び第2アプリ
    ケーション・プログラムと、 ロ)前記第1アプリケーション・プログラムから前記デ
    ィスプレイ・アダプタの機能へのインターフェースを提
    供する第1ドライバ手段と、 ハ)前記第2アプリケーション・プログラムから前記デ
    ィスプレイ・アダプタの機能へのインターフェースを提
    供する第2ドライバ手段と、 ニ)前記第1及び第2ドライバ手段と前記ディスプレイ
    ・アダプタとに結合した、前記第1及び第2ドライバ手
    段の双方に、前記ディスプレイ・アダプタの選択した機
    能への共通のアクセスを提供するアクセス手段と、を含
    んでいるホスト・コンピュータである、ことを特徴とす
    るデータ処理システム。
  8. 【請求項8】 前記アクセス手段が、前記第1及び第2
    ドライバ手段のうちの少なくとも一方のドライバ手段か
    ら受け取った、前記ディスプレイ・アダプタの機能への
    アクセス要求を、記憶しておくための記憶手段を含んで
    いることを特徴とする請求項7のデータ処理システム。
  9. 【請求項9】 ディスプレイをサポートする機能を有す
    る第2ディスプレイ・アダプタを備え、前記ホスト・コ
    ンピュータが更に、 a)前記第1アプリケーション・プログラムから前記第
    2ディスプレイ・アダプタの機能へのインターフェース
    を提供する第3ドライバ手段と、 b)前記第2アプリケーション・プログラムから前記第
    2ディスプレイ・アダプタの機能へのインターフェース
    を提供する第4ドライバ手段と、を備え、 前記アクセス手段が、前記第3及び第4ドライバ手段と
    前記ディスプレイ・アダプタとに結合した、前記第3及
    び第4ドライバ手段の双方に、前記第2ディスプレイ・
    アダプタの選択した機能への共通のアクセスを提供する
    手段を含んでいる、ことを特徴とする請求項7のデータ
    処理システム。
JP4155294A 1991-07-23 1992-06-15 ディスプレイ・アダプタ・インターフェース装置及び方法 Expired - Lifetime JPH0731586B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US734427 1985-05-16
US73442791A 1991-07-23 1991-07-23

Publications (2)

Publication Number Publication Date
JPH05189192A JPH05189192A (ja) 1993-07-30
JPH0731586B2 true JPH0731586B2 (ja) 1995-04-10

Family

ID=24951655

Family Applications (1)

Application Number Title Priority Date Filing Date
JP4155294A Expired - Lifetime JPH0731586B2 (ja) 1991-07-23 1992-06-15 ディスプレイ・アダプタ・インターフェース装置及び方法

Country Status (2)

Country Link
US (1) US5513365A (ja)
JP (1) JPH0731586B2 (ja)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0778043A (ja) * 1993-09-07 1995-03-20 Olympus Optical Co Ltd 画像処理装置
US5745762A (en) * 1994-12-15 1998-04-28 International Business Machines Corporation Advanced graphics driver architecture supporting multiple system emulations
US5715459A (en) * 1994-12-15 1998-02-03 International Business Machines Corporation Advanced graphics driver architecture
US5745761A (en) * 1994-12-15 1998-04-28 International Business Machines Corporation Advanced graphics driver architecture with extension capability
US5915131A (en) * 1995-05-05 1999-06-22 Apple Computer, Inc. Method and apparatus for handling I/O requests utilizing separate programming interfaces to access separate I/O services
US6333750B1 (en) 1997-03-12 2001-12-25 Cybex Computer Products Corporation Multi-sourced video distribution hub
US6104414A (en) * 1997-03-12 2000-08-15 Cybex Computer Products Corporation Video distribution hub
JPH11249949A (ja) * 1998-03-04 1999-09-17 Sharp Corp ファイル転送方法およびファイル転送装置ならびにファイル転送プログラムを記録したコンピュータで読取可能な記録媒体
US7460086B1 (en) * 1999-12-13 2008-12-02 Honeywell International Inc. Multiple and hybrid graphics display types
US20040268359A1 (en) * 2003-06-27 2004-12-30 Hanes David H. Computer-readable medium, method and computer system for processing input/output requests
US8013804B2 (en) * 2007-05-30 2011-09-06 Lenovo (Singapore) Pte. Ltd, System and method for graphics remapping in hypervisor

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4509113A (en) * 1982-02-02 1985-04-02 International Business Machines Corporation Peripheral interface adapter circuit for use in I/O controller card having multiple modes of operation
US4477695A (en) * 1982-09-30 1984-10-16 Electronic Mail Corporation Of America Microprocessor operated telecommunications interface for a terminal of an automatic teletypewriter switching service
US4622633A (en) * 1983-12-06 1986-11-11 Tri Sigma Corporation Object building method for self configuring computer network
US4606001A (en) * 1984-05-22 1986-08-12 General Electric Company Customized canned cycles for computer numerical control system
JPS6226535A (ja) * 1985-07-22 1987-02-04 インタ−ナショナル ビジネス マシ−ンズ コ−ポレ−ション プログラム内の変換テ−ブルの修正方法
US4855936A (en) * 1987-09-25 1989-08-08 International Business Machines Corp. Full-screen input/output application program interface
US4965559A (en) * 1988-05-31 1990-10-23 Motorola, Inc. Multi-channel graphics controller

Also Published As

Publication number Publication date
US5513365A (en) 1996-04-30
JPH05189192A (ja) 1993-07-30

Similar Documents

Publication Publication Date Title
US6046752A (en) Peer-to-peer parallel processing graphics accelerator
KR100501289B1 (ko) 입력/출력 서브-프로세서와의 비동기 인터페이스를 통한 입력/출력 성능 개선 방법
US4792896A (en) Storage controller emulator providing transparent resource sharing in a computer system
CN103678201B (zh) 具有逻辑设备能力的pci express切换器
KR100285956B1 (ko) 고속직렬버스에연결된동기식및비동기식장치의제어시스템과제어방법
KR100570138B1 (ko) 복수의 프로세서들에 소프트웨어를 로딩하는 시스템 및 방법
JP2003345612A (ja) 演算処理システム、コンピュータ・システム上でのタスク制御方法、並びにコンピュータ・プログラム
JPH05189192A (ja) ディスプレイ・アダプタ・インターフェース装置及び方法
US6222846B1 (en) Method and system for employing a non-masking interrupt as an input-output processor interrupt
US5790887A (en) Method and apparatus for processing programmed input/output (PIO) operations in a computer system
US7409478B2 (en) Peripheral hardware devices providing multiple interfaces and related systems and methods
JP3431941B2 (ja) データ処理システムにおける命令の実行順序を決定する方法および装置
EP0361434B1 (en) Display emulating system
US5016161A (en) Method and apparatus for the flow control of devices
JPH07191935A (ja) データ処理システム及びデータ転送方法
US5835957A (en) System and method for a fast data write from a computer system to a storage system by overlapping transfer operations
US7558901B2 (en) Apparatus and method for connecting processor to bus
JPH06214945A (ja) コンピュータシステム及び情報の高速転送方法
CN108958903A (zh) 嵌入式多核中央处理器任务调度方法与装置
CN1234550B (zh) 一种输入/输出总线系统
CN108958905A (zh) 嵌入式多核中央处理器的轻量级操作系统
JP2906958B2 (ja) ユーザプログラムロード方式
EP0766171A1 (en) Information handling system including efficient power on initialization
JP2001111651A (ja) データ伝送装置およびその方法
US5680646A (en) Input/output control system