JP3002302B2 - データ処理装置 - Google Patents

データ処理装置

Info

Publication number
JP3002302B2
JP3002302B2 JP3207274A JP20727491A JP3002302B2 JP 3002302 B2 JP3002302 B2 JP 3002302B2 JP 3207274 A JP3207274 A JP 3207274A JP 20727491 A JP20727491 A JP 20727491A JP 3002302 B2 JP3002302 B2 JP 3002302B2
Authority
JP
Japan
Prior art keywords
event
hardware event
data processing
graphic
hardware
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 - Fee Related
Application number
JP3207274A
Other languages
English (en)
Other versions
JPH0535835A (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.)
Canon Inc
Original Assignee
Canon Inc
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 Canon Inc filed Critical Canon Inc
Priority to JP3207274A priority Critical patent/JP3002302B2/ja
Priority to EP92306722A priority patent/EP0526098B1/en
Priority to DE69228152T priority patent/DE69228152T2/de
Priority to AT92306722T priority patent/ATE175791T1/de
Publication of JPH0535835A publication Critical patent/JPH0535835A/ja
Priority to US08/434,983 priority patent/US5642509A/en
Application granted granted Critical
Publication of JP3002302B2 publication Critical patent/JP3002302B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/542Event management; Broadcasting; Multicasting; Notifications
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3877Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor
    • G06F9/3879Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor for non-native instruction execution, e.g. executing a command; for Java instruction set
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/543Local
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/545Gui

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Human Computer Interaction (AREA)
  • Processing Or Creating Images (AREA)
  • Digital Computer Display Output (AREA)
  • Programmable Controllers (AREA)
  • Multi Processors (AREA)
  • Liquid Crystal Display Device Control (AREA)
  • Image Processing (AREA)
  • Studio Circuits (AREA)
  • Controls And Circuits For Display Device (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、ディスプレイ装置を有
するデータ処理装置に関し、特にマウスのようなポイン
ティングデバイスと共に使用されるマルチタスクオペレ
ーション−マルチウィンドウのデータ処理装置に関する
ものである。
【0002】
【従来技術】
(背景技術)UNIXまたはOS/2(「UNIX」お
よび「OS/2」はそれぞれ米国AT&Tベル研究所の
登録商標および米国IBM社の商標である)のようなマ
ルチタスク・オペレーションシステムにおいては、タス
クは同時に非同期的に処理される。例えば、システムが
そのディスプレイの制御に従事している際にも同時に複
数のタスクを処理し得る。また、ネットワークを介して
相互接続されたいくつかのホストコンピュータのグルー
プにおいて、タスクは1つのホストから他のホストへと
送り実行され得る。そして、マルチウィンドウシステム
では進行中の各タスクに関する情報は単一のスクリーン
上のそれぞれのウィンドウに同時に表示される。Xウィ
ンドウはそのようなマルチウィンドウシステムの現在の
代表的なものの1つである(「Xウィンドウ」は米国マ
サチューセッツ工科大学の登録商標である)。
【0003】コンピュータ端末ディスプレイ装置として
従来リフレッシュ走査型CRT(陰極線管:Cathode Ra
y Tube)が一般的に用いられてきた。そして、メモリ性
を有するベクトル走査型CRTはCAD(コンピュータ
・エイデッド・デザイン)に関する大きなサイズの高細
度ディスプレイとしてしばしば用いられている。
【0004】ベクトル走査型CRTでは、あるイメージ
が一度表示されると次のスクリーンリフレッシュ(全画
面のリフレッシュ)がなされるまでメモリ機能によって
そのイメージを維持している。しかし、その動作速度が
比較的低いという理由から、移動するカーソル表示、移
動するアイコン表示、マウスのようなポインティングデ
バイスまたはエディタ表示のようなリアルタイムのマン
−マシン・インタフェース・ディスプレイとしては適当
ではなかった。
【0005】一方、リフレッシュ走査型CRTはメモリ
機能を有していないから一定のフレーム周波数でのリフ
レッシュ・サイクルが必要である。このリフレッシュ・
サイクルによりフレーム周波数毎にディスプレイに新し
い画面が供給される。その周波数はフレーム当たりの走
査線数と各ラインの水平走査時間の積の逆数であり、フ
リッカ防止のためには60Hz以上が望まれる。
【0006】ノン・インタレース走査法は両方のタイプ
に共通に採用されており、画面におけるデータの移動表
示例えばアイコンの移動表示がユーザがそれを観測し追
従するのに適するようにしている。
【0007】上述のCRTの両方のタイプのいずれにお
いても、例えばマルチウィンドウを適切に表示するなど
の理由で、所望の表示解像度が高くなる程ディスプレイ
装置は大型となり消費電力も大きくなる。さらに駆動回
路も高価となってくる。そのような大型の高解像度CR
Tは種々の不都合な面があり、そのため最近はフラット
パネル型のディスプレイが開発されるようになってき
た。
【0008】現在、種々のフラットディスプレイ・パネ
ルがあるが、その1つはスーパツイストネマチック液晶
(STN)を用いた高多重駆動システムを採用するもの
である。また、その変形として白/黒ディスプレイとし
たものおよびプラズマディスプレイがある。これらの全
ては、CRTシステムの画像データ転送方式およびスク
リーンリフレッシュに60Hzまたはそれより高い周波
数によるノン・インタレース走査方式を採用している。
したがって、一つの全画面について400〜480本の
走査ライン程度が得られるだけである。例えば、100
0本以上の走査ラインを有するものなど、より大型のフ
ラットディスプレイパネルは尚実用段階にはない。この
原因はフリッカを防止するため、60Hz以上のフレー
ム周波数でリフレッシュサイクルをしなければならない
が、そうすると1ライン当たり10〜50μsec 以下の
走査時間となるため良好なコントラストを得ることがで
きないからである。
【0009】CRTであると、蛍光スクリーン上に形成
されたイメージは蛍光特性のためにある時間維持され
る。TN型LCD(ツイストネマチック型液晶)では、
イメージは十分な駆動電圧の印加による光透過率の変化
を用いて形成される。いずれのタイプであっても、少な
くとも30Hz以上の高いフレーム周波数を用いること
が必要である。
【0010】例えば走査ライン数が1920本でライン
当たり2560画素、すなわち一画面で4,915,2
00画素数のCRTディスプレイまたはTN型LCDで
は、約17.5μsec の水平走査時間となり、そして水
平ドットクロック周波数は約147MHzとなる。CR
Tの場合、147MHzの水平ドットクロック周波数
は、現在入手できるピクチャーチューブで用いられてい
るビームガンの最大電子ビーム変調周波数をかなり越え
たものとなる。その結果、正確なイメージ形成は達成さ
れない。TN型LCDの場合、1920本の走査ライン
を駆動するということは、現在可能とされる約1/40
0の最小デューティファクタよりかなり低い1/192
0のデューティファクタに該当してしまう。一方、現実
的な水平走査速度での駆動が用いられると、そのフレー
ム周波数は30Hzより低くなり、フリッカが表示品質
を損なってしまう。これらの理由で、CRTやTN型L
CDで得られる画面の大型化と高細度化は、走査ライン
数が十分に増加できないため限られてしまっていた。
【0011】最近になってクラークとラガーウォール
は、高速応答性とメモリ性(双安定性)の両方の特性を
有する強誘電体液晶装置(FLCD)を提案した(米国
特許第4,367,924号)。FLCDは、個有温度
でスメチックC相(SmC* )またはH相(SmH* )
を示し、光学的な双方安定状態を有する。またFLCD
は、印加電界に応じて高速な状態変化を示し、高速メモ
リ性ディスプレイ装置として広く用いられることが期待
されている。
【0012】FLCDは、上述したフラットパネルディ
スプレイ装置を著しく凌ぐ大型高細度ディスプレイ装置
に可能性を与えている。比較的低いフレーム周波数での
駆動が必要であるから、適切なマン−マシーン・インタ
フェース・ディスプレイとするため、そのメモリ機能を
利用し部分書き換え走査を採用している。部分書き込み
走査とは、スクリーン上の書き換えられるべき領域のみ
が走査されそこに新しい描画を行なうというものであ
る。そのような部分書き換え走査は米国特許第4,65
5,561号に開示されている。FLCDの双安定性機
能を用いたディスプレイとして(走査線数1920)×
(ライン当たりの画素数2560)のフラットパネルが
実現されている。
【0013】FLCDのライン走査方式では、フレーム
リフレッシュ周波数は走査線が増加するほど低くなる。
例えば、50μsec /ラインの速度のFLCDに関する
フレーム周波数は、 1920 (ライン)×50(μsec/ライン)=96(msec)=10(Hz) である。
【0014】一方、コンピュータの操作性上ポインティ
ングデバイスの動きおよびキーボード入力のリアルタイ
ム応答性と滑らかさは重要な要素である。ポインティン
グデバイス指標(例えば、マウスフォント)とか文字は
スクリーン上の画面に対し比較的小さいものであるが、
それを表示するのに高速応答性が要求される。例えば、
マウスフォントは60Hzで、そして文字は30Hzの
速さで通常扱われなければならない。それ故、10Hz
のフレーム周波数ではそのような動作に関し十分ではな
い。
【0015】前述の「部分書き換え走査技術」は、新し
い描画をディスプレイの必要な領域についてのみ書き換
えるというもので、描画を更新するに必要な時間を大幅
に減ずることができる。もしマウスフォントが32×3
2ビットデータとして画成されるとするなら、そのデー
タの表示速度は、 32 (ライン)×50(μsec/ライン)=1.6(msec)=625(Hz) となる。しかし、この「部分書き換え走査技術」を実際
に用いるには、「部分書き換え要求」を認識しそして書
き換えられるべき走査線数をディスプレイに指示するこ
とが必要である。さらに、その他いくつかの要因から部
分書き換えにおける現実の周波数は約300Hz程度で
ある。この程度の周波数で部分書き換えを行えば、大型
のディスプレイにおいてマウスフォント等の表示のリア
ルタイム化に大きな改善がもたらされる。 (従来の技術)ここで、前述した部分書き換え走査技術
を用いたディスプレイ上にUNIX環境でXウィンドウ
のようなウィンドウシステムを動作させる場合について
考える。ウィンドウシステムにおいて、Xサーバはマウ
ス等のポインティングデバイス(以下、「マウス」で代
表させることとする)やキーボードを通してユーザの入
力(ハードウェアイベント)を検出し、それを適切なク
ライアント・プロセスに対してXプロトコルにもとづい
て通知する。この際、従来のXサーバはなるべく頻繁に
このハードウェアイベントの有無を調べて、迅速にクラ
イアント・プロセスに対して通知していた。そして、そ
の手法はサーバ内部のループ中で一定のステップにおい
て定期的に行なわれていた。これは、サーバはできるだ
けきめ細かくイベントをクライアントに通知して、その
処理はクライアントに任せるべきであるという考え方に
則った方法であり、従来CRTディスプレイ用のXサー
バで一般的に用いられてきた方法をそのまま流用したも
のである。
【0016】
【発明が解決しようとする課題】しかしながら、従来の
ハードウェアイベント検出および通知手法では、マウス
を活用したグラフィカルユーザインタフェースにおい
て、マウス操作のレスポンス上ある問題が存在する。
【0017】例えば、図11はスクリーン上の、ある図
形オブジェクトをマウスのドラッギングによって移動し
ている場合を示している。このとき、いわゆる「直接操
作的な」ユーザインタフェースを採用して、マウスの移
動に合わせて常にオブジェクトの表示を新しい位置に更
新していくものとする。
【0018】図8は、その一連の動作における、ハード
ウェア(マウス)イベントの発生からディスプレイへの
描画までの時間的な処理の流れを概念的に示したもので
ある。図8において、まず発生したマウスイベントは直
ちにハードウェア(H/W)イベントキューに格納され
た後に、しかるべきクライアント・プロセスに通知され
る。イベントの通知を受けたクライアント・プロセスは
H/Wイベントを解析し、描画リクエストを生成する。
これを受けてウィンドウシステムのサーバは、クライア
ント・プロセスからの描画リクエストを処理し、リモー
トプロセッサ(グラフィックデバイスプロセッサ)に対
していくつかの描画コマンドを発行する。一方、リモー
トプロセッサはサーバの発行した描画コマンドを処理
し、実際にディスプレイに描画(フレームバッファへの
描画)を行なう。
【0019】ところがここにおいて、イベントの発生か
らディスプレイへの描画に至るまでの過程のうちどこか
のステップで時間的な遅延が生じると、イベントの発生
とディスプレイへの描画の間に時間的なずれが長くなる
ことになる。例えば、最終的な描画コマンドの処理時間
が、主としてハードウェアの特性によってコマンド発行
の速さに追い付かなくなることがありうる。また、マル
チタスクの環境においては何らかの理由で、前述のプロ
セスに与えられるCPUの割当時間が短くなることもあ
りうる。それらの要因により、図8に見られるようにハ
ードウェアイベントの発生時からグラフィックデバイス
プロセッサの描画処理までの間に大きな時間差が生じて
しまう。その結果、マウス操作者にとっては、リアルタ
イム性の低い使いにくいシステムになってしまう。
【0020】上述したような時間的なずれは、グラフィ
ックデバイスのハードウェア的な動作速度の改善のほ
か、先に述べた部分書き換え走査技術のようなソフトウ
ェアによる改善で補う必要がある。いわゆる「直接操作
的」ユーザインタフェースは、近年のグラフィカルユー
ザインタフェースの重要性の高まりと共に今後多く用い
られると予想される。したがって、上記問題を解決する
ことは必要不可欠と言える。
【0021】コンピュータ操作にあたってマウスやキー
ボードからの入力はハードウェア(H/W)イベントと
称されるが、H/Wイベントのリアルタイム処理はコン
ピュータシステムにとって、できる限り保証されている
ことが必要である。なぜならば、このようなH/Wイベ
ントは操作者の操作に直接関係しており、H/Wイベン
トのリアルタイム性は操作性そのものを意味しているか
らである。
【0022】本発明は、上述の従来形における問題点に
鑑み、マウスやキーボードなどからのH/Wイベントの
発生時からそのイベントに応じた描画処理までの時間を
短くし、操作者にとって使いやすいリアルタイム性の高
いデータ処理装置を提供することを目的とする。
【0023】
【課題を解決するための手段】上述の目的を解決するた
め、本発明に係るデータ処理装置は、複数のプロセスを
タイムシェアリングにおいて実行させるマルチタスク手
段、複数のプロセス中のしかるべきものに対してハード
ウェアイベントの発生を知らせるイベント通知手段、お
よび複数のプロセスからグラフィックデバイスへの描画
要求をスケジューリングして描画要求各々にかかわる単
一の系列を形成するスケジューリング手段を論理的に構
成しているホストプロセッサ、およびスケジューリング
手段の単一の系列から転送された所定単位の描画命令に
従ってグラフィックデバイスを制御して描画を行なうグ
ラフィックデバイス・プロセッサからなり、イベント通
知手段はグラフィックデバイスにおける所定単位の描画
命令の実行状態をモニタし、実行状態が所定の程度を越
えた場合、イベントを圧縮した後にしかるべきプロセス
に通知することを特徴とする。
【0024】
【作用】グラフィックデバイスにおける所定単位の描画
命令の実行状態をモニタし、実行状態が所定の程度を越
えた場合には、イベントを圧縮した後にしかるべきプロ
セスに通知するようにしているので、描画までの処理時
間が短縮される。
【0025】
【実施例】以下、図面を用いて本発明の実施例を説明す
る。ここで説明する実施例はFLCDをディスプレイと
するコンピュータシステムである。 (ハードウェア構成)図1に、本発明の一実施例に係る
データ処理装置のハードウェア構成の概略を示す。シス
テムはホスト側プロセッサ(CPU)1で制御されてい
る部分とグラフィックプロセッサで制御されている部分
とからなり、ホスト側とグラフィックデバイス13とは
それぞれ独立した動作をしている。ここで、グラフィッ
クデバイス13とは、グラフィックカード8(グラフィ
ックプロセッサ、VRAM等を実装している)、グラフ
ィックコントローラ9、FLCDパネル12を含むデバ
イス全体を意味する。
【0026】ホストすなわちコンピュータ本体にはOS
が実装され、プロセスをタイムシェアリング的に走行さ
せる。プロセスによって生成された描画命令は、ATバ
スインタフェース7を介してグラフィックデバイス13
内のグラフィックカード8に転送される。グラフィック
カード8は、描画命令に応じて描画内容をビデオRAM
(VRAM)に展開する機能と共にその描画内容によっ
てFLCDパネル12に対して固有の部分書き換えの管
理機能を有している。グラフィックカード8は、次段の
グラフィックスコントローラ9にVRAMの内容をデジ
タル信号として渡す。グラフィックスコントローラ9
は、部分書き換え情報を有するこのVRAM情報内容の
デジタル信号からFLCDパネル12上の所定のアドレ
ス位置に実際にドライバIC10−11を介して図形な
どを表示する駆動信号を形成する。
【0027】図2は、図1のハードウェア上に実装され
る論理モジュールの構成を示す。図2において、Xサー
バ14とXクライアント15は図1のCPU1、RAM
2、ディスク3上にソフトウェアによって論理的に形成
されるモジュールである。また、入力デバイス16はキ
ーボードデバイス4およびマウスデバイス5をまとめて
称している。これらは、入力デバイス16からのユーザ
入力を検出しながら図1のFLCDパネル12上にXウ
ィンドウシステムによるマルチウィンドウ環境を実現す
るものである。
【0028】図3は、グラフィックカード8のブロック
構成を示す。グラフィックカード8は、グラフィックプ
ロセッサ20、インタフェース28、およびメモリ34
のためのメモリコントローラ22などからなる。メモリ
34は、命令を蓄積するRAM34−1、ビデオ出力を
蓄積するVRAM34−2,34−3およびグラフィッ
クプロセッサ20のための初期制御命令を蓄積するRO
M34−4からなる。なお、後述するグラフィックデバ
イス13のグラフィックコマンドキューはRAM34−
1に論理的に構成される。また、これらメモリのいくつ
かはホスト側の主メモリ上に構成されうるものである。
【0029】データはプロセッサ20とメモリ34との
間でメモリコントローラ22を介して通信される。ビデ
オタイミングユニット32はグラフィックプロセッサ2
0に同期信号を提供し、クロック30がグラフィックプ
ロセッサ20のタイミング信号として与えられる。VR
AM34−1と34−2の出力は出力インタフェース5
0へ入力として与えられる。
【0030】出力インタフェース50において、入力さ
れたデータはマルチプレクサ36を経て適当なグレース
ケールまたはカラー信号レベルが与えられる。さらに、
カラー/グレースケールパレット38を通ってデジタル
インタフェース40に入る。デジタルインタフェース4
0は、スクリーン上のアドレスデータとイメージデータ
(信号線PD0−PD7)、アドレスデータとイメージ
データを識別する信号AH/DLおよびタイミング信号
CLKを作成して、次段のグラフィックコントローラ9
へ送る。
【0031】グラフィックプロセッサ20は、例えばテ
キサスインスツルメント社製のTMS34010であ
り、これはグラフィック命令と一般命令の両方を実行す
ることができる。インタフェース28はIBM「ATバ
ス」である。これはパーソナルコンピュータ業界では広
く知られているものである。TMS34010の詳細は
テキサスインスツルメント社により刊行されているTM
S34010ユーザズガイド(刊行番号SPVU00
7)に記述されている。
【0032】図4は、グラフィックカード8からの描画
データを得てFLCDパネル12を駆動するグラフィッ
クコントローラのブロック構成を示す。FLCDパネル
12は1920本の走査電極と2560本のデータ電極
からなるマトリックス構造である。走査電極は走査電極
駆動回路62に、そしてデータ電極はデータ電極駆動回
路64に接続されている。走査電極駆動回路62はデコ
ーダ78、ラインアドレスメモリ80およびアドレス検
出回路88を含む。データ電極駆動回路64はシフトレ
ジスタ72、ラインバッファ(メモリ)74およびバッ
ファ70を含む。
【0033】描画位置をパネルスクリーン上に指定する
走査電極をアドレスするための走査電極アドレスデータ
(A0、A1、A2……A15)とイメージデータ(D
0、D1、D2……D2559)が同一の信号線PD0
−PD7を介して送られるから、送信データがアドレス
データかイメージデータかを識別する信号AH/DLが
同時にプロセッサ89に送られる。制御回路68はAH
/DL信号がハイレベルの時にはPD0−PD7上の信
号を走査電極アドレスデータであるとしてアドレス検出
回路88に取り込ませ、ローレベルの時にはイメージデ
ータであるとしてラインバッファ70に取り込ませる。
AH/DL信号は、またデータを転送する転送開始信号
でもある。
【0034】ラインバッファに取り込まれたイメージデ
ータは一時的に蓄えられ、水平走査期間に合わせてシフ
トレジスタ72、ラインバッファ74を経てデータ電極
駆動装置76に与えられる。アドレス検出回路88で検
出されたアドレスデータは、デコーダ78によりアドレ
スデータに従う走査電極の駆動信号とされ、ラインアド
レスメモリ80を経て走査電極駆動装置82に印加され
る。
【0035】本実施例では、表示パネル12の駆動とグ
ラフィックカード8内のプロセッサによる走査電極アド
レスデータA0−A15およびイメージデータD0−D
2559の発生は同期していないため、データ転送時に
制御回路68とグラフィックプロセッサを同期させる必
要がある。この目的のために、同期信号Hsync が各水平
走査時に制御回路で発生される。このHsync 信号はAH
/DL信号と関連を有している。グラフィックプロセッ
サ20はHsync 信号をモニタし、Hsync がHighからLow
に遷移するのを検出した後データ転送の準備に入り、A
H/DL信号をLow からHighに立ち上げて走査電極アド
レスデータを転送し、AH/DL信号を再びHighからLo
w に立ち下げて画像データを転送する。
【0036】図5は、その詳細な信号波形を示す。
【0037】本実施例は図1のようなグラフィックデバ
イス13にあってH/Wイベント処理の即時性(リアル
タイム性)を改善するものである。本実施例の特徴はホ
スト側におけるグラフィックデバイス13への論理的な
インタフェース構成に係わるものである。 (ソフトウェア(論理)構成)本発明の論理構成は、U
NIX(「UNIX」はAT&Tの登録商標)オペレー
ション・システム(OS)環境で動作するXウィンドウ
システム(XWindow System は、Massachusetts Inst
itute of Technology の登録商標)を用い、図1のハー
ドウェアに実装される。UNIXおよびXウィンドウシ
ステムともそれぞれの領域において既に標準の地位を確
保しているといってよい。
【0038】UNIXは、プロセスの管理、ファイルシ
ステムの管理、ハードウェア入出力、およびプロセス間
通信等の機能をカーネルと呼ばれる中核部分によって提
供する、マルチタスク、マルチユーザを特徴としたシス
テムソフトウェアである。実際にハードウェア入出力を
直接に制御するのはデバイスドライバと呼ばれるモジュ
ールである。デバイスドライバによって、UNIXは各
アプリケーションソフトウェアに対して共通の論理的な
インタフェースを提供し、それによってアプリケーショ
ンソフトウェアの移植性を維持している。ディスプレイ
の場合も例外でなく、ディスプレイドライバと呼ばれる
モジュールが用意される。ただし、デバイスドライバは
カーネルにリンクされて一つのイメージとなるが、各ハ
ードウェアに依存するためUNIX固有の部分ではな
い。
【0039】Xウィンドウシステムは、周知のようにビ
ットマップディスプレイ上にマルチウィンドウ環境を実
現するためのソフトウェアである。その動作概念を図6
に示す。Xウィンドウシステム全体は、一つのXサーバ
14(以後、単にサーバ14と略す)と複数のXクライ
アント15(以後単にクライアントと呼ぶ。また、図2
では一つだけ図示しあとは省略した)で構成される。サ
ーバ14は、キーボードデバイス(以後、キーボードと
略す)、マウスデバイス(以後、マウスと略す)等の入
力デバイス16からのユーザ入力(ハードウェアイベン
ト)の受理、クライアント15との通信、そしてグラフ
ィックデバイス13への描画コマンドの発行を行なう。
【0040】図7に示したように、サーバ14はDI
X、OS、DDX、EXTの四つの部分で構成されてい
る(EXTは省略した)。DIXはデバイスやOSに依
存しない部分であり、イベント待ちおよび処理への分岐
のためのループの形成、様々なリソースの管理等を行な
っている。OSは、クライアント15との通信、ファイ
ルシステムへのアクセスを行なうための、広い意味での
OSとのインタフェースとなる部分である。DDXは、
キーボード4、マウス5、ディスプレイ等のデバイスに
依存する部分である。EXTは、後述するXプロトコル
の拡張をサポートする部分で、特殊な機能を盛り込まな
い限り通常は関与しない。一方、クライアント15は、
Xウィンドウシステム上で動作するアプリケーションで
ある。クライアント15は図6にもあるように、サーバ
14が動作しているマシンではなく、ネットワークで接
続された別のマシン上で動作していてもよい。
【0041】以下にサーバ14、クライアント15を軸
としたXウィンドウシステムの動作概要を記す。
【0042】まず、サーバ14はハードウェアイベント
を検出しそれをクライアント15に通知する。クライア
ント15は受け取ったイベントに応じた処理を行ない、
その中で描画等のリクエストをサーバ14に対して発行
する。サーバ14は、クライアント15からのリクエス
トに応じて処理を行ない、ディスプレイドライバを介し
てグラフィックデバイス13に対して描画コマンドを発
行するか、あるいはクライアント15に求められた情報
を渡す。Xウィンドウシステムはこのようなサーバ/ク
ライアント間通信を中心として動作している。サーバ1
4とクライアント15の間の情報の受け渡しはXプロト
コルと呼ばれる一定の規約にしたがって行なわれる。こ
のXプロトコルは、特定のハードウェアデバイスやOS
からの独立、ネットワーク透過性等を特徴としており、
Xウィンドウシステムを定義づけているものである。な
お、クライアントプログラムのサーバ14とのインタフ
ェースとして、Xライブラリ(Xlib )が用意されてお
り、デバイスに依存しないプログラミングが可能になっ
ている。
【0043】Xウィンドウシステムは、前述したUNI
Xのマルチタスク機能やネットワーク機能を活用してお
り、現在UNIXを用いたシステム上の標準ウィンドウ
システムの地位を固めている。本発明の実施例に係わる
図1でXウィンドウシステムはホストコンピュータにお
けるもので、グラフィックデバイス13のハードウェア
的属性はそのDDXおよびOS部分に記述される。
【0044】以下、サーバによるハードウェアイベント
とクライアントリクエストの処理につき説明する。
【0045】サーバ14は、一つのワークステーション
(スクリーン、キーボード4、マウス5)を制御するの
に対応付けられたプロセスであるが、複数のプロセスす
なわち複数のクライアント15へサービスを提供してい
る。尚、ここでプロセスとはプログラムが実行される環
境である。一つのプロセスとは、命令セグメント、ユー
ザデータセグメント、システムデータセグメントの三つ
のセグメントから構成される。プログラムは命令とユー
ザデータを初期化するために用いられる一つのプログラ
ムが時間的に並行した複数のプロセスで実行されうる。
マルチタスクシステムは複数のプロセスをタイムシェア
リングで並行して実行する。この複数のプロセスに対す
るタイムシェアリング自体はUNIXカーネルが担当し
ている。一方、サーバ14におけるスケジューリングと
は発生した描画リクエストの処理、ハードウェア(H/
W)イベント処理などの順序を規定するものである。
【0046】図10に、クライアント15へのサービス
を行なうための本発明の実施例におけるキュー(待ち行
列)システムを示す。
【0047】一般にクライアント15は、イベント駆動
型のプログラムとしてなりたっている。すなわち、クラ
イアント15はユーザのキーボード4やマウス5等の入
力に応じて所定の処理ルーチンを呼び出してディスプレ
イに出力を行なう。そのために、サーバ14はキーボー
ド4やマウス5等のH/Wイベントを検出し、それをし
かるべきクライアント15に対して、サーバ/クライア
ント間のプロトコルで定められた形で通知する。本実施
例においては、サーバ14は定期的にH/Wイベントキ
ュー102内に蓄積されたH/Wイベントの有無をチェ
ックし、もしH/Wイベントがあればそれを順次取り出
してクライアント15に対して通知している。クライア
ント15はH/Wイベントに応じて処理を行ない(必要
に応じて)サーバ14に対する描画リクエストを生成
し、それを各クライアント15毎のクライアントキュー
101に作成順に登録する。
【0048】複数のクライアント15によって登録され
た多くの描画リクエストは、サーバ14によってある方
針に従って順次読み出され処理される。すなわち、サー
バ14はクライアントキュー101に描画リクエストの
入っているクライアント15について順に最大Nmaxreq
個連続して読み出し、これを描画コマンドに変換してグ
ラフィックデバイス13側のグラフィックコマンドキュ
ー103に転送する。これにより複数のクライアント1
5が生成した複数の描画リクエストは、サーバ14によ
ってシングルタスク的に順次処理されることになる。以
上の処理によって、グラフィックコマンドキュー103
に転送されたコマンドは、グラフィックデバイスプロセ
ッサ20によって、サーバ14とは基本的には非同期に
処理される。従って、このキューに転送されたコマンド
は、それより以前に転送されたコマンドの処理が全て終
わってから処理されることになる。なお、グラフィック
コマンドキュー103へのホストプロセッサ1側による
コマンド書き込み、およびグラフィックデバイスプロセ
ッサ20による同キューからのコマンド読み出し方法に
ついては後述する。
【0049】ところで、図11に示すように、マウス5
のイベントのようなH/Wイベントにかかわる描画がリ
アルタイムに実行できなくなるのは、グラフィックデバ
イス13以降の処理速度が描画命令発生の速さに対し十
分でなく、そのイベント発生時にグラフィックコマンド
キュー103に未処理コマンドが多く残っているからで
ある。そこで、描画のリアルタイム性の向上を図るに
は、サーバ14がクライアント15に通知するマウスイ
ベントを減少させることにより実現しうるものと考えら
れる。(一般にマウス移動イベントは、複数の移動変位
をベクトル的に加えることによって、結果的にサンプリ
ングを粗くしたのと同様、イベント発生数を少なくする
ことができる。)なぜならば、発行される描画コマンド
の数は、サーバ14がクライアント15に通知するマウ
スイベントの数に依存するからである。つまり、マウス
イベントの数が減ればクライアント15により生成され
る描画リクエストも減り、それによりサーバ14が発行
するコマンド数も減り、グラフィックデバイスプロセッ
サ20の負荷が低減されることになる。その結果、グラ
フィックデバイス13以降の処理速度が描画命令発生の
速さに十分追いつくことができるようになる。
【0050】サーバ14は、前述のようにH/Wイベン
ト(マウスイベントを含む)をしかるべきクライアント
15に通知するが、これはサーバ14のDDXレイヤに
含まれるProcessInputEvents()ルーチンで行なわれる。
このルーチンは、サーバ14のDIXレイヤに含まれる
Dispatch()ルーチン中のDispatchループと呼ばれるルー
プで定期的に呼び出される。また、このDispatchループ
は一般に複数のクライアント15で生成されたリクエス
トをあるスケジューリング方針に従ってクライアントキ
ュー101から読み出してそれぞれのリクエストの種類
に応じた処理ルーチンを起動する。リクエストが描画リ
クエストの場合は、最終的にはDDXレイヤ中のルーチ
ンが呼ばれ、グラフィックデバイス13に対してコマン
ドが送られる。
【0051】ここで、図12のフローチャートを参照し
て、DispatchループにおけるH/Wイベントおよびクラ
イアントリクエストの処理の各ステップについて説明す
る。Dispatchループでは、まずステップS1でH/Wイ
ベントがH/Wイベントキュー102にあれば、Proces
sInputEvents()関数を呼んでキュー内の全てのイベント
の処理を行なう。すなわち、プロトコルに従ってイベン
トをしかるべきクライアント15に通知する。次に、ス
テップS2で次に挙げる事象のうちのどれかが発生する
まで待つ。 (i) H/Wイベントが発生する。 (ii)サーバ14にすでに接続されているクライアント1
5からリクエストが来る。 (iii) まだサーバ14と接続されていない新しいクライ
アント15が接続を要求する。
【0052】これらのうちのいずれかが発生したら必要
な情報を設定してから次のステップS3に進む。
【0053】ステップS3では、前のステップで、新し
いクライアント15の接続要求があった場合に接続処理
を行なう。次に、ステップS4で処理待ちのリクエスト
が残っているクライアント15があるかどうかを調べ
る。リクエストがクライアントキュー101に残ってい
るクライアント15が無ければステップS1に戻る。リ
クエストがクライアントキュー101に残っているクラ
イアント15があれば、以後のステップS5でリクエス
トを処理する対象となるクライアント15を設定する。
【0054】ステップS5ののち、ステップS6で別の
クライアント15のリクエストの処理に移るべきかどう
か判断する。移る場合は、ステップS4に戻る。移らな
い場合は、ステップS7に進みProcessInputEvents()関
数をコールする。次に、ステップS8で現在のリクエス
ト処理対象のクライアント15のクライアントキュー1
01に処理待ちのリクエストがまだ残っているかどうか
を調べる。残っていない場合はステップS4に戻り、残
っている場合はステップS9に進む。ステップS9でRe
adRequestFromClient() 関数を呼び出して、リクエスト
をクライアントキュー101から読み出す。次に、ステ
ップS10でリクエストが正しく読み出されたかどうか
を判断する。正しく読み出されなかった場合はステップ
S6に戻り、正しく読み出された場合はステップS11
でリクエストの種類に応じた処理ルーチンを起動する。
その後、再びステップS8に戻る。
【0055】このアルゴリズムでは、ある時点でサーバ
14の処理を待っているリクエストを持ったクライアン
ト15を調べ、各クライアント15ごとに順番にリクエ
ストを処理していく。そのとき、サーバ14はあるクラ
イアント15のリクエスト処理を続けて最大Nmaxreq 個
処理したら、そのクライアント15のリクエストの処理
を中断して他のクライアント15のリクエストの処理に
移るようにしている。
【0056】図12から分かるようにH/Wイベントの
処理は、各リクエスト処理の前で毎回行なわれる。これ
は、サーバ14は発生したH/Wイベントをなるべく迅
速にかつ頻繁にクライアント15に通知するべきである
という考え方に基づいている。しかしながら、サーバ1
4がグラフィックデバイス13におけるコマンド処理状
態にかかわらずH/Wイベントを次つぎにクライアント
15に通知してしまうと、図8に示されるような問題、
すなわちH/Wイベントの発生と描画との間の時間的な
ずれが生じてしまうことは明らかである。よって、何ら
かの手段によってグラフィックデバイス13におけるコ
マンド処理状態に応じたH/Wイベントの処理が必要に
なる。本発明はこの点に着目し ReadRequestFromClien
t() 関数によりグラフィックデバイス側のグラフィック
コマンドキュー103の未処理コマンド数をモニタする
ことによってそのコマンド処理状態を調べ、それに応じ
てProcessInputEvents()関数においてH/Wイベントの
クライアント15への通知を制御することにより、前述
の問題の改善を図るものである。
【0057】次に、グラフィックコマンドキューの構造
と扱いを説明する。
【0058】ここで、ReadRequestFromClient() 関数お
よび ProcessInputEvents() 関数の説明に入る前にグラ
フィックコマンドキュー103の構造とその扱い方につ
いて説明する。
【0059】図13は、グラフィックコマンドキュー1
03の構造を示す。キューはNbufsiz 個のセルから成
っており、それぞれセル番号「0」〜セル番号「Nbufs
iz−1」で参照される。各セルはグラフィックコマンド
のヘッダ部のみを格納しており、コマンドの引数および
データは他のメモリ領域に存在し、ヘッダ部はそのアド
レスを持っている。
【0060】ホストプロセッサ1は、図14に示すよう
にグラフィックコマンド(正確にはそのヘッダ部である
が、以後簡単のためグラフィックコマンドと称すること
にする)を、0番目のセルからセル番号が増加する方向
に次々に書き込んでゆく。このとき、図15に示すよう
に最終のセルに到達したら再び0番目のセルに戻る。一
方、グラフィックデバイスプロセッサ20は、図16,
17に示すようにホストプロセッサ1が格納した順序で
ホストプロセッサ1の書き込んだ後を追うようにしてコ
マンドを読み出して処理を行なってゆく。
【0061】ここで、ホストプロセッサ1による書き込
みとグラフィックデバイスプロセッサ20による読み出
し位置を制御するために変数headおよび変数tailを用意
する。図13のように、変数headはホストプロセッサ1
が最も新しく書き込んだセルの次のセル番号を記憶し、
変数tailはグラフィックデバイスプロセッサ20が次に
読み出すセルのセル番号を記憶する。すなわち、ホスト
プロセッサ1はグラフィックコマンドを一つ書き込むご
とに変数headを1インクリメントし、一方グラフィック
デバイスプロセッサ20は一つ読み出すごとに変数tail
を1インクリメントする。ただし、図15,17に示し
たように、キューの最終セルに達した次は再び先頭に戻
るためいずれも0にクリアする。書き込み時も読み出し
時も、head≠tailであればそのまま動作を行なってよ
い。しかし、head=tailの時には特別な配慮が必要であ
る。すなわち、図18,19に示すようにキューが一杯
の状態と空の状態ではともにhead=tailとなるため、書
き込み時にはオーバーライトを避けるために、グラフィ
ックデバイスプロセッサ20がアイドル状態であること
を確認した上で書き込みを行なわなければならない。
【0062】アイドル状態を確認するためには、例えば
グラフィックデバイスプロセッサ20が、自分がアイド
ル状態にある時には常にある二つのフラグを等しい値に
セットするようにすればよい。そうすれば、ホストプロ
セッサ1がこの二つのフラグに異なった値をセットした
後、このフラグの値を調べた時、それらがグラフィック
デバイスプロセッサ20によって等しい値にセットされ
ていればアイドル状態にあることが確認できる。逆に、
ある期間をおいてもフラグの値が異なったままであれ
ば、アイドル状態ではないと判断できる。
【0063】一方、グラフィックデバイスプロセッサ2
0側はhead≠tailの場合はそのまま読み出しを行なって
よいが、head=tailの場合は次のようにして判断すれば
よい。すなわち、グラフィックデバイスプロセッサ20
はグラフィックコマンドを読み出して変数tailをインク
リメントする直前で、head=tail+1となる場合はある
フラグをセットする。そうしておいて、グラフィックデ
バイスプロセッサ20がコマンドを読み出そうとした時
にhead=tailであった場合、このフラグを参照し、セッ
トされていればキューは空であり読み出してはいけな
い。また、フラグがセットされていなければキューは一
杯であるので、読み出しを行なう。このフラグを用いる
場合にはhead≠tailの場合、フラグの値にかかわらず必
ずクリアしなければならない。
【0064】次に図12で示されたDispatchループから
呼ばれるProcessInputEvents()関数およびReadRequestF
romClient() 関数について説明する。
【0065】図20にReadRequestFromClient() 関数の
実施例を示す。図20において、ReadRequestFromClien
t() 関数は、まずステップS21でPeekDevQueue()関数
を呼ぶ。PeekDevQueue()関数は後に図21で説明するよ
うに、グラフィックデバイス13のための仮想デバイス
をオープンして前述の変数head、tailの値を得、これら
の値をもとにして現在グラフィックコマンドキュー10
3中の未処理のまま残っているグラフィックコマンドの
数を算出してリターンする。ステップS21では、Peek
DevQueue()関数からリターンされた値が既定の値N1よ
りも大きいか否か判別し、大きかった場合には、再びス
テップS22でPeekDevQueue()関数を呼ぶ。そのリター
ン値が既定の値N2よりも小さくなるまで繰り返しステ
ップS22を実行し待ってから、ステップS23でフラ
グGDevbusyを真(TRUE)にセットし、リターンする。一
方ステップS21で最初のPeekDevQueue()関数のリター
ン値がN1以下であれば、ステップS24でクライアン
トキューからリクエストを読み出してからリターンす
る。
【0066】上記で説明したReadRequestFromClient()
関数の意味するところは、グラフィックコマンドキュー
103中にある既定の数より多くのコマンドが未処理の
まま残っているとき、すなわちグラフィックデバイス1
3における処理速度がコマンド発行速度に追いつかなく
なっているときに、フラグGDevbusyを真にセットすると
いうことである。また同時に、未処理コマンド数が別の
ある既定の数より少なくなるまで待つことにより、グラ
フィックデバイス13へのコマンドの発行速度を押さえ
ている。
【0067】図21を参照して、PeekDevQueue()関数を
説明する。PeekDevQueue()関数では、まずステップS3
1でグラフィックデバイス13のための仮想デバイスを
オープンする。次に、ステップS32でオープンに成功
したか否か判別し、成功した場合はステップS33に進
み、失敗した場合はステップS40で「0」をリターン
値としてリターンする。
【0068】ステップS33で前述の変数headを得、ス
テップS34で変数tailの値を得、ステップS35でデ
バイスをクローズする。ステップS36で変数headが変
数tailより大きいか否かを判別し、大きい場合はステッ
プS37で変数numUnproc にhead−tailを格納する。ス
テップS36で変数headが変数tailより大きくない場合
は、ステップS38で変数numUnproc にNbufsiz−(he
ad−tail)を格納する。すなわち、ステップS36〜S
38では変数headおよび変数tailの値をもとにして現在
グラフィックコマンドキュー103中の未処理のまま残
っているグラフィックコマンドの数を算出している。ス
テップS37の後、およびステップS38の後、ステッ
プS39で変数numUnproc をリターン値としてリターン
する。
【0069】一方のProcessInputEvents()関数では、図
22に示されるように、まずステップS51で図20の
ReadRequestFromClient() 関数でTRUEがセットされてい
るかも知れないフラグGDevBusyを参照する。TRUEがセッ
トされていればステップS52に、セットされていなけ
ればステップS55に、それぞれ進む。ステップS52
で変数NSKIP の値が0より大きいか否か判別する。NSKI
P >0ならばステップS54に分岐する。ステップS5
2でNSKIP >0でないときは、ステップS53で、変数
NSKIP にある定数値NADDを加算し、ステップS54でGD
evBusyをクリア(FALSE の設定)する。次に、ステップ
S55で変数NSKIP の値が0より大きいか否か判別す
る。最初でGDevBusyがセットされていなかった場合も含
めて、NSKIP >0ならば、ステップS56で変数NSKIP
を1デクリメントしてからリターンする。もし、ステッ
プS55でNSKIP =0であれば、ステップS57でHand
leEvents()関数を呼んでからリターンする。HandleEven
ts()関数では、図23に示されるように、まずステップ
S61でバッファにH/Wイベントがあるか否か判別す
る。H/Wイベントがある場合は、ステップS62でH
/Wイベントキュー102に溜まっているH/Wイベン
トを一つずつ読み出し、WriteToClient() 関数によって
しかるべきクライアント15に通知している。すなわ
ち、ステップS62でH/Wイベントを読み出したの
ち、ステップS63でキーボードイベントか否か判別す
る。キーボードイベントである場合は、ステップS66
でキーボードイベントの処理を行い、ステップS61に
戻る。ステップS63でキーボードイベントでない場合
は、ステップS64でマウスボタンイベントか否か判別
する。マウスボタンイベントである場合は、ステップS
67でマウスボタンイベントの処理を行い、ステップS
61に戻る。ステップS64でマウスボタンイベントで
ない場合は、ステップS65でマウス移動量を累積加算
し、ステップS61に戻る。ステップS61でバッファ
にH/Wイベントがない場合は、ステップS68でマウ
ス移動イベントの処理を行った後、リターンする。
【0070】図22のProcessInputEvents()関数では、
もしNSKIP >0であればHandleEvents()関数を呼ばずに
リターンしてしまう。すなわち、ハードウェアイベント
キューからのイベントの読み出しおよびクライアントへ
の通知を行なわない。HandleEvents()関数で注目すべき
は、キーイベントとマウスボタンイベントは読み出され
た直後にクライアント15に通知されるが、マウス移動
イベントは複数のイベントの移動量をベクトル的に加算
していき、H/Wイベントキュー102に溜まった全て
のイベントが読みだされてから一つのマウス移動イベン
トとしてクライアント15に通知されている点である。
これにより、複数のマウス移動イベントは一つのマウス
移動イベントになり、クライアントに通知されるマウス
移動イベントの数が減少する。
【0071】本発明の新規性は、グラフィックデバイス
におけるコマンド処理状態に応じてハードウェアイベン
トの読み出しおよびクライアントの通知を所定の期間ス
キップし続けることである。すなわち、ReadRequestFro
mClient() 関数中においてグラフィックデバイス13の
処理速度が相対的に下がったと判断された場合、それは
フラグGDevBusyを通してProcessInputEvents()関数に伝
えられる。するとProcessInputEvents()関数内ではいっ
たんGDevBusyがセットされると、以降ProcessInputEven
ts()関数が呼ばれるごとにH/Wイベントの処理関数Ha
ndleEvents()が連続NADD回(NADDは適当な大きさの値を
用いる)だけスキップされる。H/Wイベントの処理が
スキップされることによって、H/Wイベントキュー1
02にさらに多くのイベントが溜まるようになり、次に
H/Wイベントの処理が行なわれる時に読み出されるイ
ベントの数が増す。図23に示されるように、一回のHa
ndleEvents()関数で読み出されるイベントの数が増える
ほど、マウス移動イベントの数の減少程度は大きくな
る。それにより、クライアント15に対して通知される
マウス移動イベントが減少し、クライアント15により
生成されるリクエストが減少し、最終的にグラフィック
デバイス13が処理すべき描画コマンドも減少する。そ
れ故グラフィックコマンドキュー103にコマンドが格
納されたときに、未処理のまま残っているコマンドの数
が減少するため、格納されてから処理されるまでの時間
が短縮する。例えば図11のような例では、H/Wイベ
ントの検出から描画までの時間的な処理の流れが図8の
ような状況から図9のような状況に変わる。それによっ
て、図9では検出されたイベントに係わる描画とイベン
ト検出の間の時間が図8より短縮されていることが分か
る。
【0072】
【発明の効果】以上説明したように、本発明によれば、
描画命令の実行状態をモニタし、その実行状態が所定の
程度を越えた場合に、以後のハードウェアイベントの通
知処理を所定期間の間スキップするようにしているの
で、ハードウェアイベントの発生から描画までの時間が
短縮されレスポンスがよくリアルタイム性の高いシステ
ムが実現される。
【図面の簡単な説明】
【図1】 本発明の一実施例に係るデータ処理装置のハ
ードウェア構成を示すブロック図、
【図2】 図1のハードウェア上に実装される論理構成
のブロック図、
【図3】 図1のグラフィックカードの詳細を示すブロ
ック図、
【図4】 図1のグラフィックコントローラの詳細を示
すブロック図、
【図5】 図3のグラフィックカードにおける信号波形
を示す図、
【図6】 本実施例の動作する環境であるXウィンドウ
システムの構成を示す図、
【図7】 Xウィンドウシステムのモジュール構成を示
す図、
【図8】 従来例における、ハードウェアイベント発生
から実際の描画までの各モジュールの時間的な動作状態
変化を示す図、
【図9】 図8の従来例と比較した、本実施例によるハ
ードウェアイベント発生から実際の描画までの各モジュ
ールの時間的な動作状態変化を示す図、
【図10】 本実施例におけるキューシステムを示すブ
ロック図、
【図11】 マウスを用いた「直接操作的な」ユーザイ
ンタフェースを説明するための図、
【図12】 XサーバにおけるDispatchループのフロー
チャート図、
【図13】 グラフィックデバイスのおけるグラフィッ
クコマンドキューの構造を示す図、
【図14】 グラフィックコマンドキューへのアクセス
方法を示す図、
【図15】 グラフィックコマンドキューへのアクセス
方法を示す図、
【図16】 グラフィックコマンドキューへのアクセス
方法を示す図、
【図17】 グラフィックコマンドキューへのアクセス
方法を示す図、
【図18】 グラフィックコマンドキューの状態を示す
図、
【図19】 グラフィックコマンドキューの状態を示す
図、
【図20】 図12におけるReadRequestFromClient()
ルーチンのフローチャート図、
【図21】 図20におけるPeekDevQueue()ルーチンの
フローチャート図、
【図22】 図12におけるProcessInputEvents()ルー
チンのフローチャート図、
【図23】 図22におけるHandleEvents処理のフロー
チャート図。
【符号の説明】
14:Xサーバ、15:Xクライアント、101:クラ
イアントキュー、102:H/Wイベントキュー、10
3:グラフィックコマンドキュー。

Claims (17)

    (57)【特許請求の範囲】
  1. 【請求項1】 複数のアプリケーションプログラムプロ
    セスをタイムシェアリングにおいて実行させるマルチタ
    スク手段と、ハードウェアイベントの発生を検知するハ
    ードウェアイベント検知手段と、発生したハードウェア
    イベントを複数のクライアントプログラムプロセス中の
    所定のものに対して通知するハードウェアイベント通知
    手段と、該複数のアプリケーションプログラムプロセス
    からグラフィックデバイスへの描画要求をスケジューリ
    ングして該描画要求各々を単一の系列に形成するスケジ
    ューリング手段とを論理的に構成しているホストプロセ
    ッサ手段、および該スケジューリング手段の単一の系列
    から転送された所定単位の描画命令に従ってディスプレ
    イ装置を制御して描画を行なうグラフィックデバイスを
    有するデータ処理装置において、該イベント通知手段
    は、該グラフィックデバイスにおける所定単位の描画命
    令の実行状態をモニタし、該実行状態が所定の程度を越
    えた場合、以後該ハードウェアイベントの通知処理を所
    定期間の間スキップし続けることを特徴とするデータ処
    理装置。
  2. 【請求項2】 前記イベント検知手段が、ハードウェア
    イベントが発生したとき他の処理に優先して処理する、
    すなわち該ハードウェアイベントをハードウェアイベン
    トキューに順次蓄積しているものである請求項1に記載
    のデータ処理装置。
  3. 【請求項3】 前記ハードウェアイベントが、キーボー
    ド等のキー入力装置と、マウス、ライトペン、スタイラ
    ス、タッチスクリーンまたはトラックボール等の指示装
    置の操作に応じて発生されるものである請求項2に記載
    のデータ処理装置。
  4. 【請求項4】 前記ハードウェアイベント通知手段が、
    該ハードウェアイベントキューに蓄積された該ハードウ
    ェアイベントを読みだして、それに関する情報を複数の
    該アプリケーションプログラムプロセス中のしかるべき
    ものに通知するものである請求項1に記載のデータ処理
    装置。
  5. 【請求項5】 前記スケジューリング手段が、該グラフ
    ィックデバイスの一つのスクリーン上にマルチウィンド
    ウを構成する請求項1に記載のデータ処理装置。
  6. 【請求項6】 前記グラフィックデバイス手段が、描画
    コマンドに従いスクリーン上の表示を行なっている請求
    項1に記載のデータ処理装置。
  7. 【請求項7】 前記ホストプロセッサが、該スケジュー
    リング手段を一つのプロセスとして走行させている請求
    項1に記載のデータ処理装置。
  8. 【請求項8】 前記スケジューリング手段が複数の該ア
    プリケーションプログラムプロセスから描画要求を読み
    取って、これに応じてコマンドを作成し、該グラフィッ
    クデバイスへと転送している請求項1に記載のデータ処
    理装置。
  9. 【請求項9】 前記スケジューリング手段が一つのアプ
    リケーションプログラムプロセスからの複数の該描画要
    求を、所定の回数を最大数として連続的に処理し、これ
    を複数のプロセスについて順次行なっている請求項8に
    記載のデータ処理装置。
  10. 【請求項10】 前記ハードウェアイベント通知手段
    が、該グラフィックデバイス手段に転送された描画コマ
    ンドの処理状態をモニタし、該処理状態に応じてハード
    ウェアイベントキュー中のハードウェアイベントの読み
    出しおよび該走行プロセスへの通知処理を制御している
    請求項2ないし9に記載のデータ処理装置。
  11. 【請求項11】 前記ハードウェアイベント通知手段
    が、ハードウェアイベントキュー中に複数の指示装置移
    動イベントが含まれている場合、それらが保持している
    マウス移動量をベクトル的に加算して一つの移動イベン
    トに変換する機能を有している請求項10に記載のデー
    タ処理装置。
  12. 【請求項12】 前記ハードウェアイベント通知手段
    が、該グラフィックデバイス手段に転送された描画コマ
    ンドが所定の数以上未処理であった場合、所定の期間ハ
    ードウェアイベントキューからのハードウェアイベント
    の読み出しを保留している請求項10に記載のデータ装
    置。
  13. 【請求項13】 前記ハードウェアイベント通知手段
    が、ハードウェアイベントの読み出しを保留している期
    間において、ハードウェアイベントの読み出しの保留期
    間の設定を再度重ねて行なわない機能を有している請求
    項12に記載のデータ処理装置。
  14. 【請求項14】 前記グラフィックデバイス手段が、強
    誘電体液晶ディスプレイパネル装置を含むものである請
    求項10ないし13に記載のデータ処理装置。
  15. 【請求項15】 ディスプレイパネルと該ディスプレイ
    パネルを描画コマンドに従って駆動してディスプレイ上
    に描画を行なうローカルプロセッサとからなるグラフィ
    ックデバイスハードウェアイベントを発生させるオペレ
    ータ操作デバイス、描画プロセスを走行させるクライア
    ント実行手段、および該プロセスからの描画要求と該ハ
    ードウェアイベントを読み出し該描画要求をスケジュー
    リングし、その結果発行される描画コマンドを該ローカ
    ルプロセッサに転送し、一方該ハードウェアイベントを
    該クライアントのプロセスに通知するサーバ手段とを論
    理的に構成しているホストコンピュータプロセッサを備
    えたデータ処理装置であって、該サーバ手段は該ローカ
    ルプロセッサの描画コマンド処理状態を調べ、未処理コ
    マンド数が値を上回っているとき、該ハードウェアイベ
    ントの読み出しおよび該クライアントのプロセスへの通
    知を所定の期間行なわず、その後にハードウェアイベン
    トキューに蓄積された複数の指示装置移動イベントを一
    つの指示装置移動イベントに変換して該クライアントの
    プロセスに通知していることを特徴とするデータ処理装
    置。
  16. 【請求項16】 前記ディスプレイが強誘電体液晶パネ
    ルディスプレイである請求項15に記載のデータ処理装
    置。
  17. 【請求項17】 前記サーバが、該ディスプレイ上にマ
    ルチウィンドウを形成する描画コマンドを該ローカルプ
    ロセッサに提供しているものである請求項15に記載の
    データ処理装置。
JP3207274A 1991-07-25 1991-07-25 データ処理装置 Expired - Fee Related JP3002302B2 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP3207274A JP3002302B2 (ja) 1991-07-25 1991-07-25 データ処理装置
EP92306722A EP0526098B1 (en) 1991-07-25 1992-07-23 Picture draw command scheduling in multitasking data processing apparatus
DE69228152T DE69228152T2 (de) 1991-07-25 1992-07-23 Ablauffolgeplanung von Zeichenbefehlen in einem multitasking Datenverarbeitungssystem
AT92306722T ATE175791T1 (de) 1991-07-25 1992-07-23 Ablauffolgeplanung von zeichenbefehlen in einem multitasking datenverarbeitungssystem
US08/434,983 US5642509A (en) 1991-07-25 1995-05-04 Data processing apparatus with event notification and picture drawing scheduling

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP3207274A JP3002302B2 (ja) 1991-07-25 1991-07-25 データ処理装置

Publications (2)

Publication Number Publication Date
JPH0535835A JPH0535835A (ja) 1993-02-12
JP3002302B2 true JP3002302B2 (ja) 2000-01-24

Family

ID=16537083

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3207274A Expired - Fee Related JP3002302B2 (ja) 1991-07-25 1991-07-25 データ処理装置

Country Status (5)

Country Link
US (1) US5642509A (ja)
EP (1) EP0526098B1 (ja)
JP (1) JP3002302B2 (ja)
AT (1) ATE175791T1 (ja)
DE (1) DE69228152T2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102557297B (zh) * 2011-12-31 2013-10-02 重庆重冶铜业有限公司 一种印刷电路板铜镀层清洗后的废液的处理方法

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5848418A (en) * 1997-02-19 1998-12-08 Watchsoft, Inc. Electronic file analyzer and selector
US6633313B1 (en) * 1997-05-08 2003-10-14 Apple Computer, Inc. Event routing mechanism in a computer system
US6185639B1 (en) * 1998-06-05 2001-02-06 International Business Machines Corporation System and method to reduce a computer system's interrupt processing overhead
US6823523B1 (en) * 1999-07-29 2004-11-23 International Business Machines Corporations Process and system for blocking unnecessary callbacks to empty paint methods of graphical user interface components
US7234144B2 (en) * 2002-01-04 2007-06-19 Microsoft Corporation Methods and system for managing computational resources of a coprocessor in a computing system
US7962552B2 (en) * 2005-11-14 2011-06-14 Red Hat, Inc. Borrow and give back of windows
US9049176B2 (en) 2011-06-22 2015-06-02 Dropbox, Inc. File sharing via link generation
WO2013084728A1 (ja) * 2011-12-07 2013-06-13 三菱電機株式会社 制御装置及びリモコン装置
DE112013001051T5 (de) * 2012-02-20 2014-12-11 Mitsubishi Electric Corp. Grafikdatenverarbeitungsgerät und Grafikdatenverarbeitungssystem
TWI516982B (zh) * 2014-04-22 2016-01-11 晨星半導體股份有限公司 計算裝置及計算裝置之處理安全服務之方法
CN114153364A (zh) * 2021-11-30 2022-03-08 联想(北京)有限公司 一种数据处理方法、装置及电子设备
CN114359025B (zh) * 2022-01-10 2023-05-02 成都智元汇信息技术股份有限公司 一种图片分流调度到中心的方法、边缘识图盒子及***

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4367924A (en) * 1980-01-08 1983-01-11 Clark Noel A Chiral smectic C or H liquid crystal electro-optical device
US4655561A (en) * 1983-04-19 1987-04-07 Canon Kabushiki Kaisha Method of driving optical modulation device using ferroelectric liquid crystal
GB2226432B (en) * 1988-12-22 1993-02-03 Sun Microsystems Inc Memory mapped mouse.
JPH02242418A (ja) * 1989-03-16 1990-09-26 Fuji Xerox Co Ltd カーソルの移動量変更装置
US5146558A (en) * 1990-01-19 1992-09-08 Canon Kabushiki Kaisha Data processing system and apparatus
US5253340A (en) * 1990-01-19 1993-10-12 Canon Kabushiki Kaisha Data processing apparatus having a graphics device with priority scheduling of drawing requests
US5305454A (en) * 1991-08-12 1994-04-19 International Business Machines Corporation Notification of event handlers in broadcast or propagation mode by event management services in a computer system
US5438659A (en) * 1992-10-08 1995-08-01 Hewlett-Packard Company Object-action user interface management system

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102557297B (zh) * 2011-12-31 2013-10-02 重庆重冶铜业有限公司 一种印刷电路板铜镀层清洗后的废液的处理方法

Also Published As

Publication number Publication date
JPH0535835A (ja) 1993-02-12
EP0526098A2 (en) 1993-02-03
EP0526098A3 (en) 1993-07-14
DE69228152D1 (de) 1999-02-25
EP0526098B1 (en) 1999-01-13
US5642509A (en) 1997-06-24
ATE175791T1 (de) 1999-01-15
DE69228152T2 (de) 1999-06-24

Similar Documents

Publication Publication Date Title
JP3002302B2 (ja) データ処理装置
EP0438152B1 (en) Data processing apparatus with display device
US5481274A (en) Display control device
US5253340A (en) Data processing apparatus having a graphics device with priority scheduling of drawing requests
JPS6329290B2 (ja)
KR940001109B1 (ko) 정보처리장치 및 디스플레이 시스템
EP0312720A2 (en) Double buffered graphics design system
US5446840A (en) System and methods for optimized screen writing
JP3245229B2 (ja) 表示制御装置および表示制御方法
US5812150A (en) Device synchronization on a graphics accelerator
JP3245230B2 (ja) 表示制御装置および表示制御方法
JPH09179713A (ja) ウィンドウ表示方式及びデータ処理システム
JPH07199889A (ja) 表示制御装置
JP3227200B2 (ja) 表示制御装置及び方法
JP2633032B2 (ja) 情報処理システム及び装置
JP3264520B2 (ja) 表示制御装置
JP2729049B2 (ja) 表示装置
JP2770961B2 (ja) 情報処理装置
JP3109892B2 (ja) 表示制御装置及び方法
JP3140803B2 (ja) 表示制御装置および表示制御方法
JP2801218B2 (ja) 表示装置
JP3229341B2 (ja) 表示制御装置および表示制御方法
JPH08123651A (ja) マルチウィンドウディスプレイ装置
JP3262361B2 (ja) 表示制御装置及び方法
JPH03189723A (ja) Crtコントローラ

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees