JP3190003B2 - 適応ポーリング・システム及び周辺装置を効率的にサポートする方法 - Google Patents

適応ポーリング・システム及び周辺装置を効率的にサポートする方法

Info

Publication number
JP3190003B2
JP3190003B2 JP11808995A JP11808995A JP3190003B2 JP 3190003 B2 JP3190003 B2 JP 3190003B2 JP 11808995 A JP11808995 A JP 11808995A JP 11808995 A JP11808995 A JP 11808995A JP 3190003 B2 JP3190003 B2 JP 3190003B2
Authority
JP
Japan
Prior art keywords
interval
peripheral device
polling
delay
status
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
JP11808995A
Other languages
English (en)
Other versions
JPH086891A (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 JPH086891A publication Critical patent/JPH086891A/ja
Application granted granted Critical
Publication of JP3190003B2 publication Critical patent/JP3190003B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/22Handling requests for interconnection or transfer for access to input/output bus using successive scanning, e.g. polling

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、コンピュータ・システ
ムにおける入出力(I/O)管理装置及び方法に関し、
特にこのようなコンピュータ・システムにおける周辺装
置をサポートするポーリング装置及び方法に関する。
【0002】
【従来の技術】コンピュータ(CPU)の発展において、
コンピュータとプリンタ、プロッタ、ディスク・ドライ
ブ等のような周辺装置との間のインタフェースを取り扱
う2つのシステムが開発された。
【0003】このような第1のシステムは、当該技術分
野において「割込」駆動システムとして知られている。
並列プリンタは、以下で詳細に述べる理由のために、し
ばしば不必要に高いCPU使用及びシステム応答の悪さに
帰結するプリンタ及び並列ポートを取り扱う割込駆動の
ポート・デバイス・ドライバを通常採用していた。
【0004】本発明により得られる効果はこのような並
列ポートを介して動作する従来のプリンタの例に関して
最も容易に理解されるが、本発明は限定することを意図
するものではなく、他の装置及び直列ポートのような他
のポートに関連した入出力問題への適用を認めている。
【0005】割込駆動されるプリンタ・デバイス・ドラ
イバのような従来の動作によれば、1バイトのデータが
プリンタに対してストローブされ、このプリンタが肯定
応答即ち「ACK」ラインをパルス駆動することにより通
常、応答し、これによって対応するCPUの割込ルーチン
によりサービスされる「割込」を発生する。その後、デ
バイス・ドライバの割込ルーチンはプリンタ用の次のデ
ータ・バイトをストローブして、サイクルが続く。
【0006】初期のコンピュータでは、比較的に簡単な
システム、例えば4MHzの比較的に低い公称クロック速度
の8ビットCPUを採用しているシステムにおいて、非常
によく作動する並列ポートが提供されていた。これらの
プリンタは、割込駆動されるように設計されていたの
で、割込により印刷すべき各キャラクタをCPUに提供さ
れていた。このCPUは、プリンタに送出するために各割
込用のキャラクタに対応するメモリから1バイトをフェ
ッチし、次いでこれらが印刷された。このような割込駆
動プリンタは、比較的に低速度かつインテリジェントで
ないものであって、比較的に低いデータ・スループット
を示していたが、大体のところ許容された。これが許容
し得たことは、部分的には、前述した比較的に簡単さ
と、他のタスクのパフォーマンスが遅くなる結果のため
であった。
【0007】しかし、割込駆動システムにおけるこのよ
うな解決方法での一つの問題は、非同期のハードウエア
割込がCPU利用に関しては比較的に「費用が掛かる」と
いうことである。タイミングがよい方法で割込に応答す
るためには、CPUのオペレーティング・システムは、現
在のマシン状態を直ちにセーブし、適当な割込ハンドラ
を実行し、次いでマシン状態を復元させる必要がある。
【0008】極めて単純な条件において、これは、割込
の完了の際にコンピュータ・システムがその現在の処理
(例えば図面のトレース)を終了し、割込サービス・ル
ーチンに入り、ルーチン(例えば、プリンタ等にバイト
を書き込むルーチン等)を取り扱うために必要などのよ
うな処理であってもこれを実行すると共に、マシン環境
の状態変数を格納し、かつ復元させなければならなず、
従って適当な位置で割込された処理を再起動することが
できることを意味する。このような状態変数には、勿
論、多数のCPUレジスタ及びスタックが含まれる。従っ
て、CPUが並列ポートからの割込を取り扱うためにその
システム機能及び役割のパフォーマンスを中断させる必
要があり、これがそのシステムを過度に負荷する点で問
題となる場合が発生することが理解されるであろう。
【0009】前述のように、初期のシステムは、プリン
タ・コプロセッサ等によっている限り、CPUが一時に1
バイトをデータを転送していても、ハードウエアの支援
なしに周辺装置へ簡単なデータ転送(例えば1バイトの
ASCIIキャラクタ)を取り扱っており、合理的に許容で
きるものであった。しかし、究極的に、低速のデータ速
度及び割込を原因とするプロセッサ負荷の問題は、実際
に受け入れできなくなる点で、十分に認識し得ることに
なった。
【0010】非常に実際的な例である割込によりCPUを
負荷させる問題それ自体を如何に表し、かつ悪化させる
かは、周辺装置そのものの複雑さの展開に関連してい
る。例えば、プリンタがより強力になるに従って(例え
ばポストスクリプト言語と両立可能かつ複雑な図形を提
供するもの)、完全にその潜在能力を利用するために、
プリンタに対してより大きなスループットに関する要求
が大きくなった。増加したスループットのための能力
は、一部は、割り付けたプロセッサ、及びプリンタその
のものに提供されているバッファによるものでであっ
た。毎秒50,000キャラクタ又は更に多くのキャラクタを
受け取って、このような膨大なデータ速度でCPUからプ
リンタへダンプされる必要がある10メガバイト又は更に
多くの程度により膨大なポストスクリプト・グラフィッ
ク・ファイルを取り扱うことができるプリンタに遭遇す
るのは、今日では稀ではない。従って、周辺装置用に5
0,000割込/秒以上も取り扱わなければならないCPUは、
他の必要な機能を実行する能力に大きく影響しているこ
とが理解される。
【0011】このような割込駆動システムにおける基本
的な問題のうちの一つは、ある事象(例えば、所望のキ
ャラクタを印刷すること)が発生すると、割込が発生し
てこの所望事象をCPUに搬送することである。しか
し、それでも周辺装置、この場合は例えばプリンタは、
種々の理由(紙切れ、ライン・フィード又はシート・フ
ィード、誤動作等)のために、割込の時点でキャラクタ
を印刷できない可能性がある。これにも拘わらず、CPU
は、割込ハンドラを呼び出し、正味の結果が第1に割込
を促すタスクを実行する能力がなくとも、割込を処理す
る。これらの割込の速度が増加するに従って、これは、
しばしば、CPUの帯域幅の相当量がこれらの割込を処理
する際に不必要に無駄にされる結果となり、これらの割
込が周辺装置の特定の状態のために、作動なしに帰結す
ることは、容易に理解される。
【0012】「ポーリング」システムのような技術分野
では、複数のコンピュータと周辺装置との間の干渉を取
り扱う他の基本的なシステムが知られている。このよう
なポーリング・システムにおいて、周辺装置は周期的に
複数の期間でポーリングされてCPUからのデータ・ス
ループットに対してその状態及び受入れ能力をチェック
する。これは、ある種のシステムでは作動するかのよう
に見えるが、それにも拘わらず、基本的な問題が存在し
ており、ここでもプリンタ例を用いて説明することがで
きる。多くの周辺装置は与えられた時間で実行している
特定の機能に依存した広範囲変動する遅延特性を有す
る。例えば、一方で非常に簡単なASCIIテキストを取り
扱う最近のレーザ・プリンタ、又はポストスクリプト・
ファイルに関連したタスクように前述の高度に複雑なグ
ラフィック・タスクに関連していても、遅延における差
を理解することができる。周辺装置におけるこれらの遅
延特性は、プリンタの場合では、この種のいくつかのプ
リンタにおいて、割り付けられたプロセッサであって
も、特定の印刷エンジンのように多数の要素に大きく依
存する。スループットは、プリンタそれ自体がごく僅か
の処理を実行すればよいグラフィック・ファイルでは比
較的に高速になり得る。しかし、ポストスクリプト・フ
ァイルは、プリンタが有するポストスクリプト・データ
を専用のプロセッサが解釈しなければならないので、プ
リンタが相対的に長い時間でビジーとなってしまう恐れ
がある。以上から、ポーリング・システムは前述の割込
システムに関連したいくつかの問題を回避できる(割込
がCPUを不必要に拘束しない)ことを理解すべきであっ
て、ポーリング・システムそれ自体は、このように広範
に変動するタイミング条件により周辺装置を取り扱うこ
とに困難がある。
【0013】ポーリングされたシステムにおけるこの問
題は、システム負荷とデータ・スループットとの間で最
適なバランスが得られるように、このようにポーリング
されたシステムを調整することが必要となる。このよう
な解決方法の説明例を米国特許第5,081,577号に見出す
ことができる。そのシステムはポーリング間の代表的な
固定遅延の最適化を求めるものであって、この遅延は特
定の周辺装置の特徴に基づいて適切に選択される。ポー
リング間隔は、余り頻繁(周辺装置がビジーのときに余
りに頻繁に発生するようなこと)にならないように、か
つ間隔が開き過ぎ(周辺装置がポーリングを待機してア
イドル状態になるために、スループットに逆効果)とな
らないように、最適化される。
【0014】この解決方法は割込駆動システムよりも優
れているように見えるが、システムが極めて柔軟性に欠
けているということがこのシステムの固有の弱点である
ことは明らかである。各周辺装置はその特定の機能に基
づいて異なる遅延特性を有する。前記米国特許による周
辺装置を変更したときは、最適化したポーリング間隔は
完全に不適当なものとなり、従って最適化を必要とする
結果となる。ユーザにより設定可能なポーリング・パラ
メータは提供されていない。例えこれが可能であったと
しても、それはユーザが周辺装置についてある程度の知
識を有することを想定している。実際問題として、これ
は非現実的である。従って、デバイス・ドライバの供給
者が適当なポーリング期間を提供するように周辺装置を
よく知っているか、又は前記米国特許と同様のシステム
をポーリング期間を最適化させるかということが前提と
なっていた。
【0015】しかし、レーザ・プリンタの場合に丁度見
られるように、多くの周辺装置は広範に種々の遅延特性
を有する。従って、システムに異なる周辺装置を取り付
けるときは、固定されたポーリング間隔は適当ではな
い。特定の周辺装置に関しても、前記米国特許の方法に
より固定したポーリング期間を最適化する試みは、しば
しばCPUにおいては受け入れられないシステム負荷かつ
/又は周辺装置にとっては低いデータ・スループットに
帰着する。
【0016】
【発明が解決しようとする課題】以上述べた全ての理由
により、ハードウエアがデータを改善された速度で周辺
装置へ転送しようとするシステムに対して、かつこのシ
ステムが割込又はポーリング処理でCPU時間を取り過ぎ
るということに対して改善が要求されていた。
【0017】更に、それぞれ固有の遅延特性範囲を有
し、異なる複数の周辺装置に適用可能なシステムが要求
されていたが、システム負荷とデータ・スループットと
の間であり得たより良い妥協が通常のシステム、例えば
前記米国特許の方法による最適化した規則的なポーリン
グ間隔を採用したものにより提供される。
【0018】
【課題を解決するための手段】従って、本発明の目的
は、ダイナミックに変化する遅延を提供することであっ
て、これによって例えばプリンタが高速で動作している
ときに、スループット遅延は最小化され、かつシステム
はプリンタと同期を保持することになり、もしプリンタ
・バッファが満杯となれば、ポーリング遅延はシステム
が過度にポーリングされないように適応化され、他の機
能を自由に実行できる余地を残す。
【0019】要するに、低いシステム負荷と共に、改善
されたデータ・スループットを示せる周辺装置を用いた
システムを提供することが望ましいものであった。
【0020】本発明のこれら及び他の目的は、以下の図
面を参照して更に詳細に説明されるものにより達成され
る。
【0021】中央処理装置(CPU)により設定されるシ
ステム・タイマは、周辺装置の使用可能性に機能的に適
応され、かつ関連された可変待機時間を提供する。待機
時間は周辺装置のパフォーマンスをシステムに対して更
に正確に一致させるように反復的かつダイナミックに調
整され、これによってCPU負荷を軽減させてデータ・ス
ループットを高めると共に、データ出力ルーチンが割込
レベルよりも処理レベルで実行する。
【0022】好ましい実施例において、次のデータ入力
用の開始点として用いる実行平均遅延を形成するため
に、周辺装置がデータに使用できない前の待機時間が累
積される。大きな遅延は、頻繁でない長い事象にとって
早過ぎる歪んだ平均待機時間を回避するように、重み付
けされる。従って、データのスループットは増加され、
システムから出力がない不必要な休止期間を回避し、同
一時間で、過度のシステム・ポーリングを回避すること
により、CPU負荷を減少させる。
【0023】
【実施例】まず、本発明の動作の概要説明を行い、次い
で好ましい実施例の更に詳細な説明を行う。本発明は、
極めて一般的な意味で、割込に基づくシステムに関連す
る問題を回避する。このようなシステムにおける所要の
データ・スループットを保持するために、これは、しば
しばコンピュータ・システムを拘束してしまう過剰な回
数の割込に残念ながら帰着することが想起される。これ
によって、このシステムは他の機能を実行することを妨
げられた。割込は処理されるが、このようなデータを受
け取ることができない状態にある周辺装置のために、デ
ータを出力するに至らなかった。
【0024】従って、本発明による適応ポーリング技術
は、プリンタに関連されるプリンタ割込のような当たり
前の割込を使用するものではない。その逆に、システム
・タイマを設けて、例えばプリンタの場合では、システ
ムを「スリープ」にさせて、その間はプリンタがデータ
を受け取るように利用可能状態にならない。このような
割込駆動システムとの隔たりは、並列ポートを取り扱う
従来の方法が例えば低速度印刷の高いCPU利用と、十分
でないシステム応答を原因とするものであった。
【0025】逆に、本発明によれば、高いデータ・スル
ープット、低いCPU負荷、かつ良好なシステム応答が得
られる。本発明の要旨により、システム・スリープの時
間量は、可能な限り正確に周辺装置(例えばプリンタ)
の速度と一致するように反復的に調整され、これによっ
てCPU負荷を最小化し、かつデータ・スループットを最
大化させるものである。データ出力ルーチンは、割込レ
ベルよりも処理レベルで走行する。かくして割込がディ
セーブルされることは決してないので、システム応答が
改善される。プリンタ又は他の適用可能な周辺装置はレ
ディー(実行可能状態)であれば、システム・スリープ
が実行されることはないので、与えられたCPU速度にお
いて理論的に最大値に近い最大データ・スループットを
可能にする。
【0026】本発明による適応ポーリング技術の新しい
特徴は、周辺装置のビジー待機時間をダイナミックに計
算する方法である。一般的な意味において、プリンタ、
他の周辺装置がレディーとなるのを待機することでCPU
が費やす総計時間は、累算されて用いられて実行平均遅
延を保持させる。その後、この平均は次のポーリング遅
延用の開始点として用いられる。以下で更に詳細に説明
するように、与えられた周辺装置の特徴に関連した比較
的に大きな遅延は、頻繁でない事象(例えば周辺装置の
場合におけるフォーム・フィード)にとって余りに急激
に増大するスキューを回避するように、重み付けされて
もよい。本発明の技術は、本質的に、データ・スループ
ットを最大化するために(例えば過度のスリープ期間を
許容しないために)、及び同時にCPU負荷を最小化する
ように(例えば過度の「ビジー」ポーリング)を最小化
するように、設計される。
【0027】従って、以上概要的に説明した本発明の適
応ポーリング技術は、首尾良く実施され、かつ以下に続
くデータにより明らかにされる通常の割込駆動デバイス
・ドライバと比較された。典型的な印刷ジョブ(IBM 402
9プリンタに出力される800Kファイル)で動作するモデ
ル530及びモデル601 RISCシステム/6000コンピュータ(I
BMコーポレーションにより製造されたもの)、及び以下
のデータを用いた試験例では、下記のものが得られた。
【0028】
【表1】 ==================================== CPUモデル 最大データ・スループット(KB/S) 本発明の 割込駆動システム ポーリング・システム 530 15.9 27.1 601 34.9 102.1 CPU負荷(800Kファイル、KB/S) 割込駆動システム 本発明のポー リング・システム 530 14.3 23.8(47%) ===================================
【0029】図1の種々の機能ブロックを更に詳細に説
明しよう。図1は適当なオペレーティング・システム、
例えばIBMコーポレーションにより提供されるAIXTMシス
テム(IBMコーポレーションの商標)と連係して動作する
代表的なコンピュータ・システム、例えばこれもIBMコ
ーポレーションにより製造されたIBM RISCシステム/600
0モデル520を示すことを意図している。通常、このよう
なシステムでは、適当な時間にCPU12へ矢印により示さ
れた時間割込18を送出するために、ハードウェアのタイ
マ10が備えられる。更に、図1のようなシステムでは、
タイマ10が矢印20を介してCPU12によりセットされ、予
め選択した実時間量を経過した後に、割込が発生するこ
とが通常的なことである。更に、このようなタイマは、
典型的には、CPU12により呼出可能なソフトウェア・サ
ービスに関連させてタイマ10をセットさせていた。オペ
レーティング・システムのレベルでは、CPUは、処理に
より要求され、従ってこのような時間にタイマをセット
するために必要な時間を最短にするために、矢印20によ
り示すように、タイマをプログラミングする。実際に
は、サービスされなければならない多数のタイマが存在
し得ると共もに、これらに関連したタイマ・サービス・
ルーチンを有し、処理のために全て同時に呼びだされる
可能性がある。要するに、CPU12は矢印20を介してタイ
マ10に所望の時間間隔を送出し、かつタイマ10を読み取
り、矢印18により示す時間割込の表示により、どの程度
遅延が経過したか、かつ各ルーチンを何時実行するのが
適当かが判断される。
【0030】更に図1を参照すると、CPU12に接続され
た並列ポート・インタフェース14が示されており、本発
明によれば、並列ポート・インタフェース14は、CPU12
と周辺装置、例えば並列ポート・プリンタ16との間でハ
ードウエアの入出力を支援している。図1にプリンタを
示したが、本発明の教えが本質的に他の周辺装置にも適
用可能であり、従って本発明がそのような限定を意図す
るものではないことは、容易に理解されるであろう。並
列ポート・インタフェース14は、CPU12と並列ポート・
プリンタ16との間に相互接続され、CPU12の制御に従っ
て以下で詳細に説明する方法により並列ポート・プリン
タ16を制御し、かつ協調させる。
【0031】代表的なこの種の並列ポート・インタフェ
ース14は、典型的には、データ・レジスタ36、制御レジ
スタ34、及びステータス・レジスタ32を含む。データ・
レジスタ36は、典型的な実施では、キャラクタが並列ポ
ート・プリンタ16により印刷されるのが望ましいとき
は、CPU12が線24を介して書き込む8ビットのレジスタ
であってもよく、従ってこのレジスタは与えられたキャ
ラクタに関連したデータを記憶する。同じようにして、
制御レジスタ34は、通常の技術により、例えばデータ・
レジスタ36内に並列ポート・プリンタ16に利用可能なデ
ータが存在するときは、ストローブ線30を介して並列ポ
ート・プリンタ16へ送出してプリンタに表示させるため
に用いるストローブ・ビットにより、いくつかのビット
を保持している。線28を介して並列ポート・プリンタ16
により駆動されるステータス・レジスタ32を用いて、こ
のステータス・レジスタ32内のデータをCPU12に供給
し、並列ポート・プリンタ16のステータス、例えば並列
ポート・プリンタ16がオン・ラインか又はオフ・ライ
ン、エラー状態の紙切れ、線26上のキャラクタ・デー
タを受け取るためにレディー(可能状態)であるかを表
示する。このようなステータスは線22を介してCPU12
にフィードバックされる。
【0032】図1のCPU12は、オペレーティング・シス
テム、例えば前述のAIX UNIXに基づくシステムにより制
御されるが、本発明はこのようなオペレーティング・シ
ステムに限定されることを意図するものではない。しか
し、このようなオペレーティング・システムの有益な特
徴のうちの一つは、マルチタスク機能であり、本発明が
低いシステム負荷及び改善されたデータ・スループット
を得るのに寄与するものとになる。
【0033】ここで図3を参照すると、フローチャート
が示されており、実行されたとき、及び図1のシステム
と連係して動作したときは、前述の改善されたシステム
負荷及びスループットが得られる。まず、図3には分割
線が示されており、説明する種々の動作のソフトウェア
・モジュールを2つの基本的な区分、例えば処理モード
71において動作するソフトウェアの部分と、タイマ・モ
ード72においてソフトウェアの部分とに区分したものが
示されていることに注意すべきである。
【0034】「処理モード」はUNIXの用語であり、モー
ドの実行が可能な処理実行を指し、割込可能、かつ優先
使用可能なスケジュールは与えられたタスクを優先し、
しかも他のタスクを実行することができる。これは、図
1のシステム上で動作するプログラムが実行する通常モ
ードである。図3の「タイマ・モード」72を参照する
と、図1を参照して先に説明したように、タイマが切れ
たときにCPU12に時間割込18を行うタイマ10が通常的に
備えられている。このタイマ・モード72は、タイマ割込
サービス・ルーチンそのものの詳細を表示するために設
けられている。このルーチンは、処理モード71と逆に、
割込不可能ルーチンであり、その実体はループするとい
うよりも、実行により抜け出す。
【0035】図1のシステムはタイマ割込サービス・ル
ーチンを実行するということを既に述べた。このルーチ
ンは、タイマを要求する処理モード71において動作する
このような全ての処理のリストを含み、周期的に時間切
れになったか否かを調べ、かつを一つずつによりその全
てを呼出す。マルチタスク処理システムの有益な点は、
1以上のタイマ・ルーチンの1タイマ割込についてサー
ビスできるように、これらのタイマを最適化することで
ある。従って、システム割込はタイマを要求したあらゆ
る単独処理について受け取ってはいないので、効率的と
なり得る。従って、タイマ割込をこのように用いること
により、より高い効率が得られる。
【0036】要するに、高度に、処理とタイマ・モード
との間の割算は、タイマ・モードの動作がある処理によ
り優先することができないことを示している。しかし、
このようなタイマ・モードでは、その実行中は他の割込
が保留されるので、処理に入り、速やかに抜け出さなけ
ればならない。逆に、処理モードにより実行していると
きのソフトウェアは、割込が可能であり、かつ前述のタ
スク・スケジュールが与えられた処理をスワップして他
の割込に関連した機能(例えばキー・ボード及びマウス
・ルーチン)をエネーブルにすることができる限り、シ
ステム・パフォーマンスの問題を発生させることはな
い。
【0037】ルーチンのデータ出力部分を更に詳細に説
明するために、ここで図3を参照する。ブロック70でこ
のルーチンに入り、処理モードにより達成される第1の
ものは、参照番号72で示すように、(それがプリンタで
あろうと、又はそのようなものであろうと)周辺装置が
データをデータを受け取るのにレディーか否かを判断す
ることである。これは、CPUがステータス・レジスタ32
をチェックすることにより物理的に行うことができ、続
いてステータス・レジスタ32が並列ポート・プリンタ16
から線28を介してステータス情報を受け取ることが想
起される。周辺装置がレディーであるときは、ブロック
74において、実際にデータが周辺装置に書き込まれる。
次いで、ブロック76においてデータ・レジスタ36即ちバ
ッファのチェックを行い、データ、例えば周辺装置へ送
出されるべきキャラクタがバッファに残されているか否
かを判断する。イエスであれば、処理はブロック72に戻
って反復される。しかし、このようにデータが残されて
いないときは、ブロック78でルーチンを抜け出し、制御
は制御処理に戻される。
【0038】図3を引き続いて参照すると、プリンタの
質問ステータスに応答して、CPUは周辺装置がレディー
でないことを判断し、ブロック80において以下で説明す
る遅延80を計算して、タイマを起動させ、ブロック82に
おいて呼出処理を中断させる。要するに、この時点で、
遅延セットのためにタイマ割込を要求し、周辺装置に書
き込みをしようとした呼出処理を中断し、又はCPUとの
対話に従って、処理は「スリープに設定」される。しか
しこれにも拘わらず、図1のシステムはこの時点で他の
処理を実行可能なので、システム負荷が悪影響を及ぼす
ことはない。以下で更に説明するが、タイマ・サービス
・ルーチンが適当な「目覚まし」信号を供給し、その
後、制御は中断されていた処理に戻される。ブロック80
においてタイマがセットされ、ブロック82において処理
が中断されたときは、タイマ・モード72における開始の
ブロック84でタイマが時間切れになれば、制御が再開さ
れる。
【0039】次に処理モード71を参照して要約すると、
最初、周辺装置は通常、レディーであり、データが送出
されて、処理はブロック72に戻り、周辺装置はある点で
レディーでない状態になるまでデータを送出し続ける。
レディーである限り、処理モード71の左のループを実行
して、CPUがデータを周辺装置へ送出し得ると同様の速
さのデータ・スループットを可能にする。システムが処
理モードにある間は、大きなシステム負荷は存在しな
い。印刷等のための呼出処理はCPUを使用するが、他の
処理がCPUを必要とするときは、印刷処理は割込されて
スケジュールに組み込まれ、かつシステムが動作してい
る周辺装置のみに「凍結」されないように、他の処理が
スケジュールに組み込まれてもよい。
【0040】図3を参照し続ける。タイマが時間切れに
なると、ブロック84でタイマ・モード72に入ることに注
意すべきである。まず、システムはブロック86でチェッ
ク(ブロック72におけるチェックと同様のもの)を実行
して周辺装置がレディーにあるか否かを判断する。イエ
スならば、ブロック88でデータが同様に出力される。更
に、処理モードと同様に、ブロック90でデータ・レジス
タ即ちバッファをチェックしてまだデータが残っている
か否かを判断する。このようなデータがこれ以上得られ
ないときは、「ノー」の分岐によりブロック90から抜け
出して図3の「目覚まし処理」のブロック94を実行する
結果となる。図3において、処理モードのブロック82で
中断した「スリープ処理」がブロック94で「目覚め」即
ち活性化され、ブロック100でタイマ・モード72用のタ
イマ・ルーチンを抜け出す。このような形式の実行によ
りタイマを再度起動したので、処理が活性化されて制御
がブロック80に戻され、ブロック76で送出すべきデータ
が残っていなければ、ブロック78で処理を抜け出す。
【0041】図3のブロック90に説明を戻すと、送出す
べきデータが残っているときは、ブロック92に進む。タ
イマ・モード72の分岐は、最後の「スリープ」がシステ
ムにおける特定周辺装置の特性に基づく経験的な設定値
より小さいか否かを判断する機能を実行する。処理モー
ド71へ何時戻るのかを判断するしきい値が得られる。
【0042】ブロック86に説明を戻すと、周辺装置がデ
ータを受け取る状態になっていないときは、フローがブ
ロック96へ進み、統計的な遅延データを更新させてタイ
マを更新させ、タイマ・モード72により処理が継続す
る。図3のタイマ・モード72の右端分岐において、シス
テムが周辺装置へデータを出力するのをどの程度待機し
なければならないかの実行平均が保持される。例えば、
システムが次のキャラクタを出力するまでの間で、どの
程度待機しなければならないかの実行平均を計算する。
ブロック96でこの遅延が更新され、ブロック98で新しい
遅延が計算され、例えば、システムは次のデータを出力
するまでにどの程度待機することになるかが計算され、
その後にタイマ10をリセットし、ブロック100でタイマ
・モード72の処理制御を抜け出す。計算した遅延が時間
切れになる度に、ブロック84において再びタイマ・モ
ード72に入る。
【0043】ここで、好ましい実施例においてどのよう
にして遅延を計算するのかに関連し、ブロック96及び98
を更に詳細に参照する。図4には、図3のブロック図96
及び98を実行するフローチャートが更に詳細に説明され
ている。特に、図3のブロック96に進むことに対応した
矢印116により、図4のサブプロセスに進む。同様に、
図4の矢印118は、図3のブロック98を抜け出す矢印に
対応している。
【0044】図4では、ブロック116により副処理に入
った後、まずブロック102において、最後のデータを出
力してから、周辺装置がレディーでない状態であるとい
う表示が最初に発生したものであるか否かについて判断
する。本質的にこの時点で判断すべきことは、現在の待
機又は遅延(例えば、データ出力に対してシステムがエ
ネーブルされた最後の時から累積された総合待機)は、
計算されている平均遅延に到達しそうか否かである。ブ
ロック102において判断されるように、これは、システ
ムが周辺装置へキャラクタ又はデータを送出して以来、
最初に発生する周辺装置のビジーであるときは、図4の
システムはブロック102の右へ抜け出して、ブロック108
で総合待機遅延を用いて平均遅延を計算する。換言すれ
ば、最後の待機値を実行平均に加算又は係数を掛けて新
しい平均になるように、実行平均を保持し、ブロック11
0でその実行平均に設定された現在の待機期間を2によ
り割算する。実行平均を2により割算する理由は以下の
ようである。この値は経験的なものであるが、この実施
例において、システムはマルチタスク環境により動作し
ていること、例えば真のリアル・タイム環境により動作
しているのではないことが想起すべきである。例えば、
10μsの待機が要求された場合に、制御が時間ルーチン
に戻されたときに、遅延が常に10μsとなることが保証
され恐れがある。例えば、この遅延は、実行しているの
は当該システムが、又は他の処理若しくはルーチンであ
るかによって、12又は25μsになり得る。
【0045】従って図3及び図4による処理は、このこ
とを考慮している。データ・スループットを最大速度に
保持するために、遅延は、システムがビジーとなる正確
な時間について再び待機しようとするよりも、ブロック
110において実行平均に基づき、待機時間を2により割
算した平均値へ設定することにより決定され、従って必
要なのはシステムがその1/2時間について待機するだけ
である。これは、悪影響を及ぼす(例えばポーリングの
頻度が高過ぎることによる)システム負荷と、悪影響を
及ぼす(例えばポーリングの頻度が低く過ぎることによ
る)スループットとの間の妥協となる。後者の場合は、
プリンタがポーリングされる前にデータが準備されるの
で、データ・スループットが低下してしまう恐れがあ
る。従って、ブロック110で実行平均を2により割算す
ることは、本発明の目的を達成するのに効果的であるこ
とが分かった。しかし、本発明は、このような要素に限
定することを意図するものではなく、当該技術分野にお
いて周知の通常的なシステム・チューニング技術に従っ
てこの要素を変更してもよい。
【0046】図4を参照し続けると、ブロック110でこ
の平均待機を設定した後、ブロック114でタイマが再起
動され、ブロック118で図4の副処理を抜け出す。
【0047】図4のブロック104に戻ると、周辺装置に
出力された最後のデータ以後において最初に受け取った
「レディーでない」表示(例えばブロック102が「ノ
ー」)であるときは、次のブロック104でサブプロセス
が次め選択した数のビジー・ポーリングが発生したか否
かを判断する。ノーのときは、ブロック112において、
最初の待機は2により割算した平均待機にセットされ
る。ブロック104において、この事象までに6回のビジ
ー・ポーリングが発生したか否かに関する質問をしてい
るので、このビジー・ポーリングが6回実行されるまで
は、ブロック112において待機が2により割算された前
の待機へセットされ続けることが理解されるであろう。
これに関する実際的な影響は、予め選択した数のビジー
・ポーリングが発生するまで、待機が2の係数により減
少され続けるということである。従って、最初のビジー
・ポーリング後に、待機は50%の最終待機にセットさ
れ、かつ次のパス(及び次のビジー・ポーリング)にお
いて待機は25%となり、以下繰り返す。ブロック104に
おいて予め選択したビジー・ポーリング数がセットさ
れ、経験的に予め定められてもよいことが理解されるで
あろう。好ましい実施例ではこのような6回のビジー・
ポーリングが極めて効果的であることが分かったが、こ
れは、ルーチンを介して6パス後では、どのような遅延
が予測されようとも98%に帰着する。これは、例えば、
減少するポーリング値(50%+25%+12%+...=98%)となる。
【0048】図4のブロック104に戻ると、要するに、
(例えば、6回のビジー・ポーリングに未だなっていな
いときは、)右分岐を実行することにより、次回の各待
機は前回のものより僅かに小さくなるように、待機が2
の係数により連続的に割算される(連続する各待機に関
する限り、例えばより少ない待機が望まれるように、周
辺装置はレディーに次第に近づくことが期待されてい
る。)。そこで、これが連続的に2により割算し、かつ
ブロック114においてタイマを再起動する理由となる。
ブロック104に戻るが、ブロック120において、6回のビ
ジー・ポーリングが発生して、周辺装置が未だレディー
でないときは、ブロック106においてシステムは経験的
に係数1.25により遅延時間量を漸進的に戻すことを始め
る。換言すれば、ブロック106において、待機時間は25%
により連続的に増加され、ブロック114においてタイマ
が再起動される。周辺装置がビジー・ポーリングにより
またもビジーであると、パスは図4の左端下方へ続く。
前の6回のビジー・ポーリングの結果が周辺装置は依然
としてレディーでないということこと(図4の左側の下
方へ連続して行き、2による割算により遅延時間が連続
して減少すること)になると、平均遅延が連続的に増加
する。このように遅延時間が増加するということは、周
辺装置が長い期間でビジーであるならば、余計なポーリ
ングをしないということである。
【0049】従って、要するに、図4に関してレディー
でない状態が最初に発生したときは、2により割算され
た当該平均に設定された待機期間において、平均遅延が
計算される。連続して「レディーでない状態」が発生す
る度に、最後の出力以後で最初のレディーでない信号で
あるならば、この図4の右分岐が実行されて平均が2に
よる割算により連続的に減少される。他方、「レディー
でない状態」が最初の発生ではないとき、即ち周辺装置
が最後の出力以後、レディーになっていないことを表示
しているときは、予め選択した回数のビジー・ポーリン
グが発生したか否かを判断する。この予め選択した回数
(好ましい実施例では6回)のビジー・ポーリングが発
生していないときは、待機が最後の待機に設定される
と、待機が最後の待機にセットされ、続いて2により割
算されて、図4の右分岐の場合のように遅延時間量が漸
減される。他方、予め選択した回数のビジー・ポーリン
グが発生しているときは、待機は最後の待機を125%によ
り乗算することにより増加される。
【0050】以上のステップは実効周辺装置のコントロ
ーラに発生したが、所望により付加的な機能を備えても
よい。例えば、いくつかの場合にパフォーマンスを改善
するために、このような公称ポーリングはシステム負荷
が特に顕著ではないので、所定の遅延、例えば1/10秒程
度の遅延が設けられてもよい。この所定の最大遅延につ
いての理由は、例えば周辺装置が完全にオフラインにさ
れる時に考えられる。このような偶発性により、より頻
繁な、特に大きな最大遅延を持ったポーリングは、周辺
装置がオン・ラインになっていないとしても、システム
を不必要に負荷させ、資源を無駄にする恐れがある。し
かし、公称1/10秒の最大遅延ポーリングにより、周辺装
置がオンラインに一旦復帰すると、人間から見て、周辺
装置が1/10秒の比較的に小さな最大遅延内で休止してい
る間に、周辺装置は本質的に直ちに印刷を開始すると共
にシステム負荷を回避するように見える。
【0051】しかし、図4のサブシステムに導入するの
が望まししいと思われる付加的な機能は、ブロック108
に示す平均遅延の計算に関連している。場合によって
は、チェックを設けて、最新の遅延が所定の係数×平均
より大きいときは、遅延を制限することが望ましことが
ある。ブロック108において、平均遅延を計算したが、
例えば平均の4倍以上も大きいときは、システムは、遅
延を単に平均の4倍に制限するのが望ましい。この理由
は、例えば、ドット・マトリックス・プリンタに印刷す
るとき、及びフォームフィードが発生するときは、周辺
装置が付加的なキャラクタ・データに関してレディーに
なるまでに数秒掛かることがあるために、平均を数桁で
増加させるのは望ましくないためである。これは、明ら
かに、システムにおいて特定の周辺装置の特性である。
この場合に、フォームフィードは、低速度かつバッファ
なしのプリンタが紙を得るまでには、相当の距離を転送
しなければならず、この距離でプリンタが次のキャラク
タに関してレディーになるまでには、それ相当の長い期
間が掛かることを表すものである。換言すれば、前の遅
延が10ミリ秒程度のものであり、フォームフィードのた
めに突然5秒の遅延があれば、フォームフィードのよう
に、それほど頻繁に発生しない事象に関連して遅延が5
秒の遅延にまで増大しないようにするのが望ましい。
【0052】従って、以上のことを念頭において、平均
から逸脱しないように大きな遅延を重み付けすることが
望ましいことは明らかである。従って、遅延がごく一般
的な頻度で発生する遅延であれば、計算された遅延は望
ましい増加となる。遅延が平均の4倍以上等のときは、
システムは遅延を平均の4倍のような所定の係数に制限
する。このようにして、係数(例えば4等)は実際に平
均を増加させるが、極端に急変させるものではない(所
定の係数により制限されていなければ、発生してしまう
と思われる)。
【0053】図3に戻ると、要するに、フローチャート
において、周辺装置はレディーであるか否かは、ブロッ
ク72に示す処理モード及びブロック86に示すタイマ・モ
ードによって検出されることに注意すべきである。この
時点で、CPUはステータス・レジスタのように前述した
種々の並列ポート・インタフェース・レジスタを読み取
って、プリンタのライン状態を表す複数ビットを調べて
いる。従って、このブロックは、例えば、プリンタがキ
ャラクタに関してレディーであるとき、プリンタに紙が
あるときは、プリンタに関連した物理的ないくつかの要
素の「論理積」関数を本質的に実行している、オン・ラ
イン等にあると共に、「論理積」が正であって、プリン
タがレディーであることを表しており、そのときはフロ
ーがブロック72及び86の下から抜け出す。
【0054】同様に、処理モード及びタイマ・モードに
も同様の機能を実行しているブロック、即ちブロック8
0、98が存在する。これらのブロックにおいて、CPUは、
適当な値、勿論遅延を計算した後にタイマ10におけるレ
ジスタに値を書き込む。
【0055】同様にして、処理モード及びタイマ・モー
ドにも出力に関連して同様のブロックが存在する。特
に、ブロック74及び88は、この点においてCPUが並列ポ
ート内のデータ・レジスタ(典型的には、8ビット・レ
ジスタ)に書き込んで、データを図1におけるデータ線
26として示すプリンタへの8並列データ線上に出力させ
ることを表している。
【0056】ところで、図1のシステムは、多数の適当
な割込ハンドラのうちのいずれかを実行できることに注
意すべきである。システムにおける一つの割込レベルは
多重装置により共有されてもよい。この実施例では、割
込ルーチンにとって割込を発生させるのは特定の割込装
置かどうかをチェックして調べることが必要である。割
込ルーチンは、このような検出に応答してシステムに対
してイエス又はノーを戻すので、システムは次の割込ル
ーチンを呼出すか否かを知ることになる。
【0057】以上から、システムは、システム・タイ
マ、例えばソフトウェア・タイマ・システムが種々の機
能を実行するようにサービスすることが想起される。前
述のように、典型的にはハードウエアのタイマ10を備
え、いくつかのソフトウェア・システム・タイマはタイ
マ10の全ての駆動をサービスする。これらのタイマはス
リープ・モードにおいて周辺装置に書き込みをしたい処
理を設定するために用いられると共に、処理がスリープ
する時間量は反復的に調整される。
【0058】要するに処理モードでも、システムは、よ
り重要な処理又は他の処理により割込される即ち優先さ
れることがある。これに対して、割込又はタイマ・モー
ドでは、より重要な割込のみが優先することができる。
タイマ・モードでは、タイマ・モードが制御を獲得し、
その機能を実行し、タイマをセットし、処理を目覚めさ
せることができる又はできない、そして抜け出す意味に
おいてループすることはない。例えば、タイマ・モード
ではループすることはない。これは、ループが可能な処
理モードと対照をなすものである。なぜならば、処理モ
ードでは1又は更に多くの他の処理が休眠している間に
システムが残りの処理を実行しているからである。更
に、前述のように、これらの「処理」はAIXのような任
意数の機能を実行するものであって、ライン・プリンタ
のキュー・ハンドラがファイルにキューを供給して印刷
させる。このような処理を表すものとして、このキュー
・ハンドラは並列プリンタ・デバイス・ドライバを開放
し、かつこれにデータを書き込むことができる。書き込
みを実行するときは、デバイス・ドライバの書き込みエ
ントリ・ポイントはプリンタ・キュー・ハンドラ・ルー
チンを呼出すことになる。従って、「呼出しルーチン」
は、最終的に書き込み動作を実行したい処理のように見
られる。
【0059】図2を参照すると、図3のシステムの動作
を説明するタイミング図が示されている。第1に、周辺
装置がレディーとビジー状態との間で反転するステータ
ス信号38が示されている(その論理「ハイ」状態はレ
ディーを表す)。第2に、データ・タイミング線40が
示されており、その論理ハイ状態は、データがCPUから
インタフェースを介してプリンタへ送出されていること
を示す。最後に、ポーリングのタイミング線42が示さ
れている。その論理ハイ状態は、CPU12が線24上のイ
ンタフェースを介して周辺装置をポーリングしてそのス
テータスを示すタイミングを表している。
【0060】図2のポーリング線を調べることにより一
つのことが直ちに明らかとなる。即ち、ポーリング間の
間隔は、予測負荷に対応して予め定めた一定の間隔に設
定されている従来技術と異なり、本発明による適応方法
により変化する。従って、ポーリング線42は、本発明の
適応アルゴリズムがどのように応答して遅延を変化させ
るのかを示すもので、固定ベースで存在する遅延に対立
している。ポーリング線42で示すポーリング間で、シス
テムは勿論、他のタスクを実行している。図3及び図4
のシステムが実際に実行しており、システム資源を占有
しているのは、ポーリング信号又はデータ信号が存在す
るときにのみである。
【0061】時点120において、ポーリングを実行して
周辺装置がデータを受け取るためにレディーであるか否
かを判断する。時点122において周辺装置はステータス
線により示されるように、レディーであるから、データ
が時点124で出力され、またプリンタ及び他のデバイス
はビジーになる。時点126でポーリングが再び発生する
が、現在、デバイスはレディーではない(例えば、時点
124で転送されたデータを印刷していてビジーである)
ので、図3のブロック72がノーの分岐となり、ブロック
80における初期遅延が計算されて、タイマが起動され
る。ポーリングにおけるこの初期遅延は、時点130で次
のポーリングが発生する前の時点128で、見ることがで
きる。遅延を計算して、タイマを起動させる際に、図3
のフローチャートにおける処理モードにおいて、図4の
右分岐に進んだので、処理が中断され、タイマ・モード
72に進み、タイマ・サービス・ルーチンが実行される。
時点124でプリンタは未だビジーであるが、時点130で次
のポーリングが発生することに注意すべきである。
【0062】図4を再び参照すると、これは最初の「レ
ディーでない」であったので、図4の右分岐に進み、ブ
ロック108において、この場合では初期遅延である平均
遅延を計算し、次に待機をブロック110に示す2により
割算された平均(例えばこの初期遅延)にセットされ
る。次いで、このシステムは参照番号132として図2に
示す2により割算された遅延で再びポーリングされる。
時点124において、このポーリングはステータス・チェ
ックの結果として、プリンタは未だビジーであることが
再び明らかになる。しかし、ブロック102における最後
の出力チェック以後は最初の「レディーでない状態」で
はなくなっているので、今度は図4の左分岐へ進む。6
回のビジー・ポーリングは未だ発生していないので、ブ
ロック104の右部分から抜け出して待機を2により割算
した前の待機にセットし、時点134においてシステムは
再びポーリングされる。遅延が初期遅延128、次の遅延1
36及び次の遅延138として示すように、1/2の係数により
連続的に減少することを注意すべきである。
【0063】142に示すように、プリンタがデータに関
連した全てのデータ124を印刷した後の時間上のある時
点において、プリンタ・ステータスは再びレディーにな
り、その後、ポーリング140は次のデータ出力144に帰結
する。これは、次のビジー・ステータス146に帰結す
る。時点148で次のポーリングが発生し、遅延150を発生
させる。ポーリング140後の初期遅延は、遅延128よりや
や短いことに注意すべきである。これは、計算されたと
きの新しい初期遅延がブロック108及び110により決定さ
れた前の遅延の平均であるためにである。このポーリン
グ148が発生すると、プリンタがデータ144に関連したデ
ータの印刷を完了し、再びレディー152に移行し、これ
によってポーリング148が他のデータ出力154及び関連の
ビジー時間156に帰結することに注意すべきである。次
のポーリング160が発生する。しかし、プリンタはビジ
ー156であり、以下データを出力しない。このポーリン
グ160は最後の出力154から最初の「レディーでない状
態」なので、図4の右分岐へ再び進み、待機が2により
割算された平均にセットされ、次のポーリング164に帰
結することを注意すべきである。ポーリング160とポー
リング164との間の距離は、ポーリング160とポーリング
148との間の距離より短く、前の待機が2により割算さ
れたことを表している。プリンタ・ステータスがビジー
156に留まる限り、(ブロック104に示すように、例6の
場合に、所定数のビジー・ポーリングが全て到達してい
ない限り)このループ処理はブロック102、104、及び11
2を介して継続して次のポーリング166、168等における
間隔を連続的に前の待機の1/2に設定する。
【0064】図2の説明を続けると、待機156は6回の
ビジー・ポーリングが発生するのに十分な長さなので、
これら6回のポーリングが発生すると、図4のブロック
104が下から抜け出し、ここで次のポーリング間の間隔
が25%の係数により増加しようとし、この待機間隔の増
加がブロック106によるものである。これは、続いて次
のポーリング107、172及び174に帰結して、これらの間
隔を25%係数により漸次増加するように発生させる。
【0065】要するに、図2を参照すると、アルゴリズ
ムは、まず(プリンタの状態が依然としてビジーである
ために)所定数の失敗ポーリングまでポーリング間の間
隔を漸次減少させて、データを出力させないことに帰結
することが分かる。プリンタがレディーとなったので、
ポーリング間の間隔を漸次減少させた所定数の当該ポー
リングが、データの結果からポーリング不成功で所定数
に到達したときは、本発明のシステムは、以後、ポーリ
ング170〜174により示すようにポーリング間隔を漸次増
加し始める。例えば、プリンタ・ステータスがレディー
のために、最終的にポーリング成功176が発生するま
で、遅延が「引き延し」される。
【0066】図2のタイミング図の代表的な例は、どの
ようにして遅延が大幅に変化する動作不良の装置とレデ
ィー状態とを本発明により適応されることができるかを
示すものであり、適応ポーリング間隔はダイナミックに
計算される。本発明により適応させることができるかを
示す。このような変動をする遅延例は、4Kブロックのデ
ータ・バイトを受け取る例えばIBMモデル4029レーザ・
プリンタに見られる。そのデータの受け取りは、典型的
に、かなり反復的かつ一貫した遅延であって、従来技術
の周辺装置ハンドラにより適応可能と思われる。しか
し、これらブロックのデータを処理して印刷する際に、
異なる型式のこのようなデータに関連した可変時間の長
いビジー期間が発生することがある。ライン・フィー
ド、シート・フィード、データ型式の判別、周辺装置の
判別、内部DMAのデータ移動、並びに内部処理及び複雑
なポストスクリプト・データの解釈における比較的に長
い遅延を含むこれら変動するビジー時間は、広範に変動
する間隔に帰着し、これまでは従来技術の周辺装置ハン
ドラにより非常に貧弱な処理がされていた。前述のよう
に、簡単なASCIIテキストを取り扱う比較的に簡単なド
ット・マトリックス・プリンタは、エンド・オブ・ライ
ン、バックスペース、フォーマ・ライン・フィード等に
関連するものを除き、極めて良く似た遅延に帰着する。
しかし、これらの簡単なプリンタによっても、広範に異
なる遅延が発生することがあって、全てこのような周辺
装置の効率的な取り扱いの問題に係わっている。本発明
の必要性が更に明らかとなるが、例えばAIXシステムを
利用する従来のプリンタ・ドライバは、しばしばシステ
ムに余りに長い割込ルーチンを残す結果となった。この
システムは、並列ポート用の割込を受け、割込ハンド
ラ、ルーチンに入ったが、その期間が余りに長く、シス
テム・パフォーマンスにとって逆効果となってしまう。
タイマ・モードにおいて、割込は短期間ディセーブルに
され、禁止されている割込(例えばマウスの割込)は、
マウスも動きを不連続かつ散発的なものにしていまう恐
れがあり、これが望ましくないものであることは明らか
なことが想起される。
【0067】以下の表2は、図3の処理モード71に対応
する疑似コードにより本発明の適応ポーリング・システ
ムの総括を示す。
【0068】
【表2】 ==================================== 1 レディーループ 2 出力バッファが空であるならば 3 そのときは 4 呼出ルーチンへ戻る 5 紙を読み込んでいるならば 6 そのときは 7 プリンタへ次のバイトを出力する 8 レディーループへ行く 9 さもなくばプリンタはビジーであり 10 スリープ時間を計算する 11 スリープにする 12 読み出しループへ行く ====================================
【0069】次の表3は、スリープ時間、例えば図3の
タイマ・モード72を計算するフローを疑似コードにより
示す。フローにおいて、機能は可変かつ適応判断シーケ
ンスの期間を提供することであり、スリープ期間は(最
大データ・スループットとなるように)長過ぎず、同時
に(例えば、異常に短いスリープ期間に関連した過度の
ビジー・ポーリングを回避するように)CPU負荷を最小
化することを想起すべきである。
【0070】
【表3】 ==================================== 13 これはレディーからビジーへの遷移であるか 14 そうであれば 15 平均ビジー遅延を再計算する 16 スリープ時間=平均ビジー遅延/2 17 ビジー・カウント=0 18 そうでなければ、ビジーは前回ビジーであった 19 ビジー・カウントは6より小さいか 20 スリープ時間=スリープ時間/2 21 そうでなければ、ビジー・カウントが16より大きいか 22 スリープ時間=スリープ時間×1.25 23 総待機時間を計算する 24 ビジー計算を増加する ====================================
【0071】所望ならば、付加的な機能を図3及び図4
に示していないシステムに導入してもよいことを以上の
疑似コードから注意すべきである。例えば、表3の19行
に示すように、ビジー・ポーリング・カウントが累積さ
れ(図4のブロック104と両立する)。表3の21行を参
照すると、図3のフローチャートに存在しない16より大
きなビジー・カウントに対するテストが疑似コードによ
り示される。
【0072】この理由は以下のようである。連続する短
い6回のポーリング間隔により減少させたが、プリンタ
が依然としてビジーのときは、システムは、ブロック10
6に示すように25%により増加させる前に、所定数の更な
るポーリングに対してより短い間隔で連続するポーリン
グ用に備える。換言すれば、ポーリング間隔は、所定
数、例えば6に到達するまで、連続的に減少されて、次
のポーリングは所定の回数、例えば10回に対して同一
の小さな減少間隔に留まる。プリンタがその時点でレデ
ィーとなっていないときは、その時点でシステムを拘束
させるよりも、この減少した間隔でポーリングし続け
て、その時点でのみ、ポーリング間隔をその後に関連す
る増加は連続的にポーリング間隔を増加させることであ
る。
【0073】繰り返すが、本発明の特徴は、ポーリング
間隔を段階的に減少させ、かつ所望によって周辺装置が
利用可能でないときは一定の減少する間隔を保持させ、
かつその後においてのみポーリング間隔を最大まで段階
的に増加させる適応ポーリング間隔調整を提供すること
が理解される。これら間隔サイズを減少させているポー
リングの所定最大数、同一の減少間隔サイズによるポー
リングの所定最大数、及び最大ポーリング間隔は、関連
する特定のシステム及び関連する特定の周辺装置に同調
させる対象であることにすぐに注意すべきである。従っ
て、本発明は、減少する6回のポーリング、又は一定小
間隔による10回のポーリング等に限定することを意図す
るものではない。通常に習熟する者は、所望により、シ
ステムを通常許容されている優れた実務的かつ簡単な同
調により、適当な回数を選択することができる。
【0074】まとめとして、本発明の構成に関して以下
の事項を開示する。
【0075】(1)コンピュータ・システムにおける周
辺装置を制御する方法において、一連の第1のポーリン
グ信号を発生し、対応して連続的に減少する値の第1の
間隔を定めるステップと、前記第1のポーリング信号に
より前記周辺装置のステータス・チェックを実行するス
テップとを含む、周辺装置を制御する方法。 (2)前記第1の間隔のうちの与えられた一つは、先行
する前記第1の間隔のうちの複数の平均により決定され
る、(1)に記載の周辺装置を制御する方法。 (3)一連の第2のポーリング信号を発生し、対応した
連続的に増加する値の第2の間隔を定めるテップと、前
記第2のポーリング信号により前記周辺装置のステータ
ス・チェックを実行するステップとを含む、(2)に記
載の周辺装置を制御する方法。 (4)前記第2の間隔は前記第1の間隔の後に発生す
る、(3)に記載の周辺装置を制御する方法。 (5)前記第2の間隔のうちの与えられた一つは、前記
第2の間隔の先行する複数の間隔の平均から決定され
る、(4)に記載の周辺装置を制御する方法。 (6)更に、一連の第3のポーリング信号を発生して前
記第1の間隔と前記第2の間隔との間で発生し、対応し
た連続的な一定値の第3の間隔を定めるステップと、前
記第3のポーリング信号により前記周辺装置のステータ
ス・チェックを実行するステップとを含む、(5)に記
載の周辺装置を制御する方法。 (7)前記第3の間隔は前記第1の間隔と前記第2の間
隔との間に発生する、(6)に記載の周辺装置を制御す
る方法。 (8)前記第3の間隔の前記一定値は予め定められてい
る、(7)に記載の周辺装置を制御する方法。 (9)前記第3の間隔の前記一定値は前記減少する値及
び増加する値より小さい、(8)に記載の周辺装置を制
御する方法。 (10)前記一連の第2のポーリング信号の後に、一連
の第4のポーリング信号を発生し、対応した連続的な一
定値の第4の間隔を定めるステップと、前記第4のポー
リング信号により前記周辺装置のステータス・チェック
を実行するステップとを含む、(9)に記載の周辺装置
を制御する方法。 (11)前記第4の間隔の前記一定値は予め定められて
いる、(10)に記載の周辺装置を制御する方法。 (12)前記第4の間隔の前記一定値は前記第2の間隔
の前記一定値より大きい、(10)又は(11)に記載
の周辺装置を制御する方法。 (13)周辺装置を含むコンピュータ・システムにおけ
る入出力を管理する方法において、先行する複数の間隔
を定めるポーリング信号を発生し、前記前の間隔のそれ
ぞれを隣接する対の前記ポーリング信号間に配置したス
テップと、最後の前記ポーリング信号からある間隔を置
いた前記ポーリング信号の後に次のポーリング信号を発
生し、前記間隔を前記先行する間隔のうちの少なくとも
一つにより決定するステップとを含む、周辺装置を管理
する方法。 (14)最後の前記ポーリング信号からの前記間隔は前
記少なくとも一つの前記先行する間隔の平均である、
(13)に記載の周辺装置を管理する方法。 (15)周辺装置を含むコンピュータ・システムの入出
力を効率的に管理する方法において、複数のポーリング
信号を発生するステップと、前記周辺装置のビジー・ス
テータスをチェックするステップと、前記ポーリング信
号に応答して前記ビジー・ステータスに関連した前の遅
延を監視するステップと、前記監視に機能的に関連した
間隔で次のポーリング信号を適用的に発生するステップ
とを含む、入出力を効率的に管理する方法。 (16)前記監視するステップは、前記前の遅延の関数
を計算するステップと、前記計算された関数に機能的に
関連した値を有するタイマ・モードのときにタイマを起
動させるステップとを含む、(15)に記載の入出力を
効率的に管理する方法。 (17)前記監視するステップは、前記周辺装置が前記
ビジー・ステータスにあるか否かを検出するステップ
と、A.前記ビジー・ステータスが検出されたときは、A
(1) 統計的な遅延データを更新するステップと、A(2)
遅延値を計算するステップと、A(3) タイマを再起動
させるステップと、B.前記ビジー・ステータスが検出
されないときは、B(1) 前記周辺装置に対してデータを
出力するステップと、B(2) 前記付加的なデータが出力
可能であるか否かを判断するステップと、B(3) 前記付
加的なデータは出力可能であると判断したときは、前記
ビジー・ステータスに関連した前の遅延があるしきい値
より低いか否かを判断し、B(3)a 前記前の遅延が前記し
きい値より小さくなければ、ステップAを実行するステ
ップと、B(3)b 前記前の遅延が前記しきい値より小さけ
れば、ステップB(5)を実行するステップと、B(4) 出力
が不可能であると判断したときは、ステップB(5)を実行
するステップと、B(5) ステップB(3)b又はステップB
(4)に応答して前記システム上で実行している処理を再
活性化するステップとを含む、(15)に記載の入出力
を効率的に管理する方法。 (18)前記計算するステップ及び前記タイマを起動さ
せるステップは、更に、D. 前記周辺装置に対する最後
の出力から最初のビジー・ステータスを検出するステッ
プと、前記周辺装置に対する前記出力の平均遅延を計算
するステップと、前記平均遅延の一部からなる前記次の
ポーリング信号のうちの一つを発生する前に、待機期間
を設定するステップと、ステップA(3)を実行するステ
ップと、E.前記周辺装置に対する最後の出力以後に第1
のビジー・ステータスの不存在を検出するステップと、
E(1). 所定数のビジー・ポーリングが発生したことを検
出し、先行する前記待機期間と0より大きな所定数との
積からなる前記次のポーリング信号のうちの一つを前記
発生するステップ前に、待機期間を設定するステップ
と、ステップA(3)を実行するステップと、E(2). 所定数
のビジー・ポーリングが発生していないことを検出する
ステップと、先行する前記待機期間の一所定部分からな
る前記次のポーリング信号のうちの一つを前記発生する
ステップ前に、待機期間を設定するステップと、ステッ
プA(3)を実行するステップとを含む、(17)に記載の
入出力を効率的に管理する方法。 (19)コンピュータ・システムにおける周辺装置を制
御するシステムにおいて、一連の第1のポーリング信号
を発生し、対応して連続的に減少する値の第1の間隔を
定める手段と、前記第1のポーリング信号により前記周
辺装置のステータス・チェックを実行する手段と含む、
周辺装置を制御するシステム。 (20)前記第1の間隔のうちの与えられた一つは、前
記第1の間隔のうちで先行する複数の間隔の平均から決
定される(19)に記載の周辺装置を制御するシステ
ム。 (21)一連の第2のポーリング信号を発生し、対応し
て連続的に減少する間隔を定める手段と、前記第2のポ
ーリング信号により前記周辺装置のステータス・チェッ
クを実行する手段とを含む、(20)に記載の周辺装置
を制御するシステム。 (22)前記第2の間隔が前記第1の間隔の後に発生す
る(21)に記載の周辺装置を制御するシステム。 (23)前記第2の間隔のうちの与えられた一つは、前
記第2の間隔のうちの先行する間隔の平均により判断さ
れる(22)に記載の周辺装置を制御するシステム。 (24)更に、一連の第3のポーリング信号を発生して
前記第1の間隔と前記第3の間隔との間に発生し、対応
して連続的な一定値の第3の間隔を定める手段と、前記
第3のポーリング信号により前記周辺装置のステータス
・チェックを実行する手段とを含む、(23)に記載の
周辺装置を制御するシステム。 (25)周辺装置を含むコンピュータ・システムの入出
力を管理するシステムにおいて、複数のポーリング信号
を発生して複数の先行する間隔を定める手段であって、
前記複数の先行する間隔のそれぞれが隣接する対の前記
ポーリング信号間に配置されている前記手段と、最後の
前記ポーリング信号からある間隔を置いた前記ポーリン
グ信号の後に次のポーリング信号を発生する手段であっ
て、前記間隔を前記先行する間隔のうちの少なくとも一
つにより決定する前記手段とを含む、入出力を管理する
システム。 (26)最後の前記ポーリング信号からの前記間隔は、
前記複数の先行する間隔のうちの少なくとも一つの平均
である(25)に記載の入出力を管理するシステム。 (27)周辺装置を含むコンピュータ・システムの入出
力を効率的に管理するシステムにおいて、複数のポーリ
ング信号を発生させる手段と、前記周辺装置のビジー・
ステータスをチェックする手段と、前記複数のポーリン
グ信号に応答して前記ビジー・ステータスに関連した前
の遅延を監視する手段と、前記監視に機能的に関連した
間隔で次の複数のポーリング信号を適応的に発生する手
段とを含む、周辺装置を制御するシステム。 (28)前記監視する手段は、前記前の遅延の関数を計
算する手段と、該システムが計算された前記関数に機能
的に関連した値を有するタイマ・モードのときに、タイ
マを起動させる手段とを含む、周辺装置を制御するシス
テム。
【0076】
【発明の効果】本発明により、ダイナミックに変化する
ポーリングの間隔のための遅延が得られ、これによって
例えばプリンタが高速で動作しているときに、スループ
ット遅延を最小化させて、システムがプリンタと同期を
保持し、入出力装置に対するポーリングをシステムの負
荷を増大させないように適応化し、システムが実行すべ
き他の機能に好ましくない影響が発生しないようにし、
システムのデータ・スループットを改善させる。
【図面の簡単な説明】
【図1】本発明によるソフトウエア制御に従って動作す
る周辺装置インターフェイスを有する代表的な周辺装置
を含むコンピュータ・システムの高レベルの機能ブロッ
ク図である。
【図2】本発明による可変形式で図1のコンピュータ・
システムの適応ポーリングを示すタイミング図である。
【図3】本発明の適応ポーリングを実行するコンピュー
タ・システムのプロセス・モード及びタイマ・モードを
示すフローチャート図である。
【図4】図3の更に詳細なフローチャート図である。
【符号の説明】
10 タイマ 12 CPU 14 並列ポート・インタフェース 16 プリンタ
───────────────────────────────────────────────────── フロントページの続き (72)発明者 クリス・アラン・シュウェンディマン アメリカ合衆国78664 テキサス州、ラ ウンド・ロック、オーク・ビュー 9 (56)参考文献 特開 平6−75887(JP,A) (58)調査した分野(Int.Cl.7,DB名) G06F 13/10 - 13/14

Claims (18)

    (57)【特許請求の範囲】
  1. 【請求項1】コンピュータ・システムにおける周辺装置
    を制御する方法において、 一連の第1のポーリング信号を発生し、対応して連続的
    に減少する値の第1の間隔を定めるステップと、 前記第1のポーリング信号により前記周辺装置のステー
    タス・チェックを実行するステップとを含み、前記第1
    の間隔のうちの与えられた一つは、前記第1の間隔の平
    均から決定され、さらに一連の第2のポーリング信号を
    発生し、対応して連続的に増加する値の第2の間隔を定
    めるステップと、 前記第2のポーリング信号により前記周辺装置のステー
    タス・チェックを実行するステップとを含む、 周辺装置
    を制御する方法。
  2. 【請求項2】前記第2の間隔は前記第1の間隔の後に発
    生する、請求項記載の周辺装置を制御する方法。
  3. 【請求項3】前記第2の間隔のうちの与えられた一つ
    は、前記第2の間隔の先行する間隔の平均から決定され
    る、請求項記載の周辺装置を制御する方法。
  4. 【請求項4】更に、一連の第3のポーリング信号を発生
    して前記第1の間隔と前記第2の間隔との間で発生し、
    対応して連続的に一定の値の第3の間隔を定めるステッ
    プと、前記第3のポーリング信号により前記周辺装置の
    ステータス・チェックを実行するステップとを含む、請
    求項記載の周辺装置を制御する方法。
  5. 【請求項5】前記第3の間隔は、前記第1の間隔と前記
    第2の間隔との間に発生する、請求項記載の周辺装置
    を制御する方法。
  6. 【請求項6】前記第3の間隔の前記一定値は、予め定め
    られている、請求項記載の周辺装置を制御する方法。
  7. 【請求項7】前記第3の間隔の前記一定値は、前記減少
    する値及び増加する値より小さい、請求項記載の周辺
    装置を制御する方法。
  8. 【請求項8】前記一連の第2のポーリング信号の後に、
    一連の第4のポーリング信号を発生し、対応して連続す
    る一定の値の第4の間隔を定めるステップと、 前記第4のポーリング信号により前記周辺装置のステー
    タス・チェックを実行するステップとを含む、請求項
    記載の周辺装置を制御する方法。
  9. 【請求項9】前記第4の間隔の前記一定値は予め定めら
    れている、請求項記載の周辺装置を制御する方法。
  10. 【請求項10】前記第4の間隔の前記一定値は前記第2
    の間隔の前記一定値より大きい、請求項8又は請求項9
    記載の周辺装置を制御する方法。
  11. 【請求項11】周辺装置を含むコンピュータ・システム
    における入出力を効率的に管理する方法において、 複数のポーリング信号を発生するステップと、 前記周辺装置のビジー・ステータスをチェックするステ
    ップと、 前記ポーリング信号に応答して前記ビジー・ステータス
    に関連した前の遅延を監視するステップと、 前記監視に機能的に関連した間隔で次のポーリング信号
    を適用的に発生するステップとを含み、 前記監視するステップは、 前記前の遅延の関数を計算するステップと、 前記計算した関数に機能的に関連した値を有するタイマ
    ・モードにあるときにタイマを起動させるステップとを
    含む、入出力を効率的に管理する方法。
  12. 【請求項12】周辺装置を含むコンピュータ・システム
    における入出力を効率的に管理する方法において、 複数のポーリング信号を発生するステップと、 前記周辺装置のビジー・ステータスをチェックするステ
    ップと、 前記ポーリング信号に応答して前記ビジー・ステータス
    に関連した前の遅延を監視するステップと、 前記監視に機能的に関連した間隔で次のポーリング信号
    を適用的に発生するステップとを含み、 前記監視するステップは、前記周辺装置が前記ビジー・
    ステータスにあるか否かを検出するステップと、 A.前記ビジー・ステータスが検出されたときは、 A(1) 統計的な遅延データを更新するステップと、 A(2) 遅延値を計算するステップと、 A(3) タイマを再起動させるステップと、 B.前記ビジー・ステータスが検出されないときは、 B(1) 前記周辺装置に対してデータを出力するステップ
    と、 B(2) 前記付加的なデータが出力可能であるか否かを判
    断するステップと、 B(3) 前記付加的なデータは出力
    可能であると判断されたときは、 前記ビジー・ステータスに関連した前の遅延があるしき
    い値より低い か否かを判断し、 B(3)a 前記前の遅延が前記しきい値より小さくないと
    きは、ステップAを実行するステップと、 B(3)b 前記前の遅延が前記しきい値より小さいとき
    は、ステップB(5)を実行するステップと、 B(4) 前記付加的なデータが出力不可能であると判断さ
    れたときは、ステップB(5)を実行するステップと、 B(5) ステップB(3)b又はステップB(4)に応答して前記
    システム上で実行している処理を再活性化するステップ
    とを含む、入出力を効率的に管理する方法。
  13. 【請求項13】前記計算し、かつ前記タイマを起動させ
    るステップは、更に、 D.前記周辺装置に対する最後の出力から最初のビジー
    ・ステータスを検出するステップと、 前記周辺装置に対する前記出力の平均遅延を計算するス
    テップと、 前記平均遅延の一部からなる前記次のポーリング信号の
    うちの一つを発生する前に、待機期間を設定するステッ
    プと、 ステップA(3)を実行するステップとE.前記周辺装置に
    対する最後の出力から第1のビジー・ステータスの不存
    在を検出し、 E(1). 所定数のビジー・ポーリングが発生したことを検
    出し、 先行する前記待機期間と0より大きな所定数との積から
    なる前記次のポーリング信号のうちの一つを前記発生す
    るステップの前に、待機期間を設定するステップと、 ステップA(3)を実行するステップと、 E(2). 所定数のビジー・ポーリングが発生していないこ
    とを検出するステップと、 先行する前記待機期間の一部からなる前記次のポーリン
    グ信号のうちの一つを前記発生するステップの前に、待
    機期間を設定するステップと、 ステップA(3)を実行するステップとを含む、請求項12
    記載の入出力を効率的に管理する方法。
  14. 【請求項14】コンピュータ・システムにおける周辺装
    置を制御するシステムにおいて、 一連の第1のポーリング信号を発生し、対応して連続的
    に減少する値の第1の間隔を定める手段と、 前記第1のポーリング信号により前記周辺装置のステー
    タス・チェックを実行する手段とを含み、前記第4の間隔のうちの与えられた一つは、前記第1の
    間隔のうちで先行する間隔の平均から決定され、さらに
    一連の第2のポーリング信号を発生し、対応して連続的
    に減少する値の第2の間隔を定める手段と、 前記第2のポーリング信号により前記周辺装置のステー
    タス・チェックを実行する手段とを含む、 周辺装置を制
    御するシステム。
  15. 【請求項15】前記第2の間隔は、前記第1の間隔の後
    に発生する、請求項14記載の周辺装置を制御するシス
    テム。
  16. 【請求項16】前記第2の間隔のうちの与えられた一つ
    は、前記第2の間隔のうちの先行する間隔の平均により
    判断される、請求項15記載の周辺装置を制御するシス
    テム。
  17. 【請求項17】更に、 一連の第3のポーリング信号を発生して前記第1の間隔
    と前記第3の間隔との間で発生し、対応して連続的な一
    定の値の第3の間隔を定める手段と、 前記第3のポーリング信号により前記周辺装置のステー
    タス・チェックを実行する手段とを含む、請求項16
    載の周辺装置を制御するシステム。
  18. 【請求項18】周辺装置を含むコンピュータ・システム
    における入出力を効率的に管理するシステムにおいて、 複数のポーリング信号を発生させる手段と、 前記周辺装置のビジー・ステータスをチェックする手段
    と、 前記複数のポーリング信号に応答して前記ビジー・ステ
    ータスに関連した前の遅延を監視する手段と、 前記監視に機能的に関連した間隔で次の複数のポーリン
    グ信号を適応的に発生する手段とを含み、 前記監視する手段は、 前記前の遅延の関数を計算する手段と、 前記システムが計算された前記関数に機能的に関連した
    値を有するタイマ・モードにあるときにタイマを起動さ
    せる手段とを含む、周辺装置を制御するシステム。
JP11808995A 1994-06-20 1995-05-17 適応ポーリング・システム及び周辺装置を効率的にサポートする方法 Expired - Fee Related JP3190003B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US262703 1994-06-20
US08/262,703 US5566351A (en) 1994-06-20 1994-06-20 Adaptive polling system by generating sequence of polling signals whose magnitudes are functionally related to the occurrence of the busy signal

Publications (2)

Publication Number Publication Date
JPH086891A JPH086891A (ja) 1996-01-12
JP3190003B2 true JP3190003B2 (ja) 2001-07-16

Family

ID=22998650

Family Applications (1)

Application Number Title Priority Date Filing Date
JP11808995A Expired - Fee Related JP3190003B2 (ja) 1994-06-20 1995-05-17 適応ポーリング・システム及び周辺装置を効率的にサポートする方法

Country Status (3)

Country Link
US (1) US5566351A (ja)
EP (1) EP0689144A1 (ja)
JP (1) JP3190003B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013094913A1 (ko) * 2011-12-23 2013-06-27 한양대학교 산학협력단 입출력 핀을 이용한 다중 웨이 낸드 플래시 제어 장치 및 방법

Families Citing this family (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3254081B2 (ja) * 1994-06-23 2002-02-04 富士通株式会社 計算機システム及びその制御方法
JPH08249136A (ja) * 1995-03-10 1996-09-27 Sony Corp 記録再生装置及び伝送方法
US6515968B1 (en) 1995-03-17 2003-02-04 Worldcom, Inc. Integrated interface for real time web based viewing of telecommunications network call traffic
GB9603582D0 (en) 1996-02-20 1996-04-17 Hewlett Packard Co Method of accessing service resource items that are for use in a telecommunications system
JPH1097393A (ja) * 1996-07-31 1998-04-14 Canon Inc 印刷制御方法及び装置並びに記憶媒体
US5903773A (en) * 1996-08-28 1999-05-11 Vlsi Technology, Inc. System to improve trapping of I/O instructions in a peripheral component interconnect bus computer system and method therefor
US6473407B1 (en) 1997-09-05 2002-10-29 Worldcom, Inc. Integrated proxy interface for web based alarm management tools
US6381644B2 (en) 1997-09-26 2002-04-30 Mci Worldcom, Inc. Integrated proxy interface for web based telecommunications network management
US6763376B1 (en) 1997-09-26 2004-07-13 Mci Communications Corporation Integrated customer interface system for communications network management
US7225249B1 (en) 1997-09-26 2007-05-29 Mci, Llc Integrated systems for providing communications network management services and interactive generating invoice documents
US6745229B1 (en) 1997-09-26 2004-06-01 Worldcom, Inc. Web based integrated customer interface for invoice reporting
US7058600B1 (en) 1997-09-26 2006-06-06 Mci, Inc. Integrated proxy interface for web based data management reports
US6631402B1 (en) 1997-09-26 2003-10-07 Worldcom, Inc. Integrated proxy interface for web based report requester tool set
US6714979B1 (en) 1997-09-26 2004-03-30 Worldcom, Inc. Data warehousing infrastructure for web based reporting tool
JP3824118B2 (ja) * 1998-03-03 2006-09-20 Kddi株式会社 ポーリング周期制御装置
US6198995B1 (en) * 1998-03-31 2001-03-06 Lear Automotive Dearborn, Inc. Sleep mode for vehicle monitoring system
JP3711432B2 (ja) * 1998-04-15 2005-11-02 セイコーエプソン株式会社 周辺処理装置およびその制御方法
US6615161B1 (en) * 1998-07-08 2003-09-02 International Business Machines Corporation Method and apparatus for adjusting an interval of polling a peripheral device in response to changes in the status and/or reliability of receiving traps
US6449663B1 (en) * 1998-07-08 2002-09-10 International Business Machines Corporation Method and apparatus for adjusting an interval of polling a network printer based on changes in working status of the network printer
US6317119B1 (en) * 1998-11-13 2001-11-13 Creative Technology Ltd Speed-compensated joystick
US6715005B1 (en) 2000-06-29 2004-03-30 International Business Machines Corporation Method and system for reducing latency in message passing systems
US6895534B2 (en) * 2001-04-23 2005-05-17 Hewlett-Packard Development Company, L.P. Systems and methods for providing automated diagnostic services for a cluster computer system
US20020188707A1 (en) * 2001-06-04 2002-12-12 Terrill Jody L. Method, computer program and processing system for adapting the polling rate for collecting job information from devices
GB2386285B (en) * 2002-03-07 2004-03-17 3Com Corp Method and apparatus for determining a polling interval in a network management system
KR100434054B1 (ko) * 2002-04-26 2004-06-04 엘지전자 주식회사 래디오 링크 콘트롤의 폴링방법
US6898751B2 (en) * 2002-07-31 2005-05-24 Transdimension, Inc. Method and system for optimizing polling in systems using negative acknowledgement protocols
US7280537B2 (en) * 2003-08-07 2007-10-09 Teamon Systems, Inc. Communications system providing adaptive polling based upon positive and negative polling events and related methods
US6823401B2 (en) * 2003-01-15 2004-11-23 Hewlett-Packard Development Company, L.P. Monitor for obtaining device state by intelligent sampling
US6931460B2 (en) * 2003-05-19 2005-08-16 Emulex Design & Manufacturing Corporation Dynamically self-adjusting polling mechanism
CN1864371B (zh) * 2003-08-07 2010-09-08 蒂蒙系统公司 基于正和负轮询事件提供自适应轮询的通信系统和相关方法
US7289495B2 (en) * 2003-08-07 2007-10-30 Teamon Systems, Inc. Communications system providing adaptive polling based upon user usage patterns and related methods
US7441053B2 (en) * 2003-12-15 2008-10-21 Nokia Corporation Support of an interaction between a host device and a peripheral device
US7631076B2 (en) * 2004-03-16 2009-12-08 International Business Machines Corporation Apparatus, system, and method for adaptive polling of monitored systems
US8392923B2 (en) * 2007-09-28 2013-03-05 International Business Machines Corporation Dynamic polling for completion of asynchronous tasks based on historical task completion times
EP2166457B1 (en) * 2008-09-12 2014-04-23 TELEFONAKTIEBOLAGET LM ERICSSON (publ) Interrupt controller and methods of operation
US8238538B2 (en) 2009-05-28 2012-08-07 Comcast Cable Communications, Llc Stateful home phone service
US8724612B2 (en) * 2011-01-04 2014-05-13 Apple Inc. Adaptive timers for polling in a mobile wireless device
JP5746090B2 (ja) * 2012-05-08 2015-07-08 トヨタ自動車株式会社 シリアル通信装置、シリアル通信システム、シリアル通信方法
JP6035189B2 (ja) * 2013-04-01 2016-11-30 富士通フロンテック株式会社 情報処理装置、デバイス自動実行試験方法、及びプログラム
US11036542B2 (en) 2017-09-29 2021-06-15 Oracle International Corporation Automatically limiting repeated checking on completion of a command without relinquishing a processor
US10528269B2 (en) * 2018-03-02 2020-01-07 Western Digital Technologies, Inc. Advanced flash scan algorithm
US11720416B2 (en) 2019-09-13 2023-08-08 Oracle International Corporation Adaptive synchronization for redo writing to persistent memory storage

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3665406A (en) * 1970-04-13 1972-05-23 Bunker Ramo Automatic polling systems
US3634869A (en) * 1970-12-29 1972-01-11 Chia Ying Hsueh Interpulse time interval detection circuit
US4027289A (en) * 1975-06-26 1977-05-31 Toman Donald J Operating condition data system
US4159516A (en) * 1976-03-23 1979-06-26 Texas Instruments Incorporated Input/output controller having selectable timing and maskable interrupt generation
US4342082A (en) * 1977-01-13 1982-07-27 International Business Machines Corp. Program instruction mechanism for shortened recursive handling of interruptions
CH612503A5 (ja) * 1977-05-13 1979-07-31 Mettler Instrumente Ag
US4352201A (en) * 1979-04-30 1982-09-28 M.L. Engineering (Plymouth) Limited Data transmission system
US4383166A (en) * 1980-03-31 1983-05-10 Hewlett-Packard Company Automatic echo-chamber for measuring single time intervals by replication and averaging
JPS57101957A (en) * 1980-12-17 1982-06-24 Hitachi Ltd Storage control device
US4450481A (en) * 1981-08-25 1984-05-22 E-Com Corporation Tamper-resistant, expandable communications system
US4598363A (en) * 1983-07-07 1986-07-01 At&T Bell Laboratories Adaptive delayed polling of sensors
JPS60126945A (ja) * 1983-12-14 1985-07-06 Hitachi Ltd ポ−リング方式
JPH06105927B2 (ja) * 1986-12-19 1994-12-21 株式会社日立製作所 デ−タ転送速度可変制御方式
EP0273080A1 (en) * 1986-12-30 1988-07-06 International Business Machines Corporation Process and device for high speed polling
JPH063927B2 (ja) * 1987-04-10 1994-01-12 富士通株式会社 最適化ブロツクポ−リング方式
US4894822A (en) * 1987-11-24 1990-01-16 AT&T Information Systems American Telephone and Telegraph Company Fast packetized data delivery for digital networks
US5301278A (en) * 1988-04-29 1994-04-05 International Business Machines Corporation Flexible dynamic memory controller
US5230067A (en) * 1988-05-11 1993-07-20 Digital Equipment Corporation Bus control circuit for latching and maintaining data independently of timing event on the bus until new data is driven onto
US5038275A (en) * 1988-10-07 1991-08-06 Advanced Micro Devices, Inc. Status transfer structure within a data processing system with status read indication
US5023869A (en) * 1989-03-27 1991-06-11 Alberta Telecommunications Research Centre Method and apparatus for maximizing the transmission capacity of a multi-channel bidirectional communications link
US5081577A (en) * 1989-12-22 1992-01-14 Harris Corporation State controlled device driver for a real time computer control system
US5095526A (en) * 1990-01-26 1992-03-10 Apple Computer, Inc. Microprocessor with improved interrupt response with interrupt data saving dependent upon processor status
US5070526A (en) * 1990-08-08 1991-12-03 Active Voice, Inc. Signal analyzing system
US5467463A (en) * 1992-02-27 1995-11-14 Tandy Corporation System independent timing reference for computer
US5471564A (en) * 1992-07-10 1995-11-28 Microsoft Corporation System and method for dynamic printer timeout
US5414858A (en) * 1992-12-11 1995-05-09 International Business Machines Corporation System and method for dynamically varying between interrupt and polling to service requests of computer peripherals

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013094913A1 (ko) * 2011-12-23 2013-06-27 한양대학교 산학협력단 입출력 핀을 이용한 다중 웨이 낸드 플래시 제어 장치 및 방법

Also Published As

Publication number Publication date
US5566351A (en) 1996-10-15
EP0689144A1 (en) 1995-12-27
JPH086891A (ja) 1996-01-12

Similar Documents

Publication Publication Date Title
JP3190003B2 (ja) 適応ポーリング・システム及び周辺装置を効率的にサポートする方法
JP4347035B2 (ja) 低消費電力適応的ポーリング
US5642516A (en) Selective shadowing of registers for interrupt processing
US4972368A (en) Intelligent serial I/O subsystem
US7953906B2 (en) Multiple interrupt handling method, devices and software
US6859886B1 (en) IO based embedded processor clock speed control
JP3055917B2 (ja) データ転送制御装置
EP3717987B1 (en) Dynamic interrupt rate control in computing systems
JPH05108218A (ja) コンピユータシステム
US20020140962A1 (en) Printer system
US20050132096A1 (en) Processor state aware interrupts from peripherals
US7415559B1 (en) Data processing systems and method for processing work items in such systems
JPH08324071A (ja) 印刷制御装置および印刷制御装置のデータ受信方法並びに印刷制御装置のスリープ解除方法
US5666539A (en) Reducing I/O activity to allow a host based printing system to activate power management functions
CN1055340C (zh) 打印机的输入缓冲装置和数据输入方法
JP2003231332A (ja) プリンタ
US7324220B1 (en) Print performance under the windows® operating system
JP2576805B2 (ja) ディスク制御装置
JPH10278390A (ja) プリンタ装置
JPH10254721A (ja) 印刷装置、その割込要求処理方法、及び記憶媒体
JP4062564B2 (ja) 画像形成装置およびその画像データ受信制御方法
JP3055313B2 (ja) プリンタ装置
CN111796915A (zh) 中断优化的数据储存装置以及系统
JPH05303473A (ja) プリンタ装置
JP3254200B2 (ja) 画像処理方法及びその装置

Legal Events

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