(57)【要約】【課題】複数のイベントタイプをサポートするイベントトランスレータを構成すること。【解決手段】複数のイベントタイプから１つのイベントタイプ(30)を識別し該イベントタイプ(30)に基づきイベント発生の判定をイベントトランスレータ(10)に指示することができる方法(200,300)及び及びシステム(5)。複数のイベントタイプからイベントタイプを識別し(130)、該イベントタイプに基づきイベントの発生を判定し(140)、及び該イベントの発生を通信する(220)(325)、方法が提供される。システムもまた提供される。【選択図】図１
2004070961.tif 000002
【特許請求の範囲】
【請求項１】
　イベントの発生を判定する方法(200,300)であって、
　(a) 複数のイベントタイプから１つのイベントタイプを識別し(130)、
　(b) 該イベントタイプに基づき前記イベントの発生を監視し、該イベントタイプのイベントが発生したか否かを判定し(140)、
　(c) 該イベントが発生した場合にその発生をエージェントに通信する(220,325)、
という各ステップを含む方法。
【請求項２】
　(d) 前記ステップ(b),(c)を繰返す、
というステップを更に含む、請求項１に記載の方法。
【請求項３】
　(d) 前記ステップ(a),(b),(c)を繰返す、
というステップを更に含む、請求項１に記載の方法。
【請求項４】
　(d) 前記ステップ(a)に先立ち前記イベントタイプを構成する(120)、
というステップを更に含む、請求項１に記載の方法。
【請求項５】
　前記監視ステップ(b)が、
　(1) イベントソースからイベント信号を受信し、
　(2) 所定期間にわたり前記イベントタイプに基づき前記イベント信号を評価する、
という各ステップを含む、請求項１に記載の方法。
【請求項６】
　(d) 前記監視ステップ(b)の実行に先立ち前記評価ステップ(2)をプログラムする、
というステップを更に含む、請求項５に記載の方法。
【請求項７】
　イベント信号を受信する前記ステップ(1)が、
　第１の信号タイプ及び第２の信号タイプからなるグループから選択された信号タイプのイベント信号を受信する、
というステップを含む、請求項５に記載の方法。
【請求項８】
　前記ステップ(a)におけるイベントタイプの識別が、エッジタイプイベント及びレベルタイプイベントからなる１グループのイベントタイプから選択された１つのイベントタイプを識別するものである、請求項１に記載の方法。
【請求項９】
　前記ステップ(b)におけるイベントタイプに基づくイベント発生の監視が、
　イベント信号を受信する前記ステップ(1)及び前記評価ステップ(2)を繰り返し、
　前記受信したイベント信号が第１の信号タイプから第２の信号タイプへ及び再び第１の信号タイプへと変化する場合にイベントが発生したものと判定し、該第２の信号タイプの前記受信したイベント信号が前記所定期間にわたり受信されたものであり、
　それ以外の場合にはイベントが発生していないものと判定する、
という各ステップを含む、請求項７に記載の方法。
【請求項１０】
　イベントを識別するシステム(5)であって、
　イベントタイプレジスタ(30)を評価することにより複数のイベントタイプから１つのイベントタイプを識別する際に使用する第１のデータパス(31)と、
　イベントソース(20)から少なくとも１つのイベント信号を受信する第２のデータパス(21) と、
　所定期間にわたり前記少なくとも１つのイベント信号を評価するロジックを格納するメモリ(11)と、
　判定されたイベントを通信する第３のパス(41)と、
　前記第１のデータパス及び前記第２のデータパスを使用してイベントを判定し及び前記ロジックを処理するプロセッサ(10)と
を含むシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
　本発明は、一般にイベント翻訳に関し、特に複数のイベントタイプをサポートする方法及び装置に関するものである。
【背景技術】
【０００２】
　イベントトランスレータは、一般にイベントが発生したか否かを判定するために必要となる。該判定は、一般に、イベントソースからイベント信号を受信し、該イベント信号を評価し、及びイベントの発生を通信することを必要とする。様々なタイプのイベントは、２つのカテゴリ、すなわちエッジイベント及びレベルイベントで大まかに説明することができる。エッジイベントの判定は、レベルイベントの判定とは異なるものである。
【０００３】
　イベントは、コンピュータシステムに対する重要性の発生又は出現と表現することが可能なものである。レベルイベントは、しきい値と交差する電圧といった信号の状態の変化により発生が示されるイベントと表現することが可能である。エッジイベントは、瞬間的なボタンの押下といったパルスにより発生が示されるイベントと表現することが可能である。有利なことに、本発明は、例えばレベルベースのイベントとエッジベースのイベントとの両者といった複数のイベントタイプをサポートすることが可能なものである。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
　残念ながら、従来のイベントトランスレータは、エッジイベント又はレベルイベントの何れか一方といった単一のイベントタイプしかサポートしないものである。従来のイベントトランスレータでは異なるタイプのイベントはサポートされない。エッジイベント又はレベルイベントの両者といった複数のイベントタイプをサポートするようイベントトランスレータを構成できるのが理想的である。望まれていることは、イベントトランスレータが複数のイベントタイプから１つのイベントタイプを識別し、及び該イベントタイプに基づいてイベントの発生を判定するようイベントトランスレータに指示することができる、ということである。
【課題を解決するための手段】
【０００５】
　本発明は、複数のイベントタイプから１つのイベントタイプを識別し、及び該イベントタイプに基づいてイベントの発生を判定するようイベントトランスレータに指示することができる、方法及びシステムを提供する。複数のイベントタイプからイベントタイプを識別し、該イベントタイプに基づいてイベントの発生を判定し、及び該イベントの発生を通信する、方法が提供される。
【０００６】
　イベントを識別するシステムについても解説する。本システムは、イベントタイプレジスタを評価することにより複数のイベントタイプから１つのイベントタイプを識別するために使用する第１のデータパスと、イベントソースから少なくとも１つのイベント信号を受信するために使用する第２のデータパスと、所定期間にわたり少なくとも１つのイベント信号を評価するロジックを格納するメモリと、判定されたイベントを通信するために使用する第３のパスと、前記第１のデータパス及び前記第２のデータパスを使用してイベントを判定し及び前記ロジックを処理するプロセッサとを含む。
【発明を実施するための最良の形態】
【０００７】
　以下の詳細な説明で参照する図面において同様の符号は同様の構成要素を示している。
【０００８】
　図１は、イベントソース20、イベントレジスタ40、イベントトランスレータ10、及びイベントタイプレジスタ30を含むシステム5を示すブロック図である。前記イベントトランスレータ10は、第１の入力ポート21、第２の入力ポート31、出力ポート41、処理を実行するためのイベントロジック11、及び該イベントロジック11をイベントロジック定義50に従って定義するための第３の入力ポート51を含み、前記イベントタイプレジスタ30は、イベントタイプ定義60に従ってイベントタイプを定義するための入力ポート61を含む。
【０００９】
　第１の入力ポート21は、一定期間にわたりイベントソース20からイベント信号を受信するために使用することが可能である。該イベント信号は、多数の値を含むことが可能なものであり、典型的には第１の値及び第２の値を含むものとなる。一実施形態では、該第１の値が非アクティブな値に対応し、第２の値がアクティブな値に対応するものとなる。第２の入力ポート31は、例えばエッジイベントタイプ又はレベルイベントタイプといったイベントタイプを判定するために使用することが可能である。第３の入力ポート51は、イベントロジック11を定義するために使用することが可能である。イベントロジック11は、イベント信号の評価と判定されたイベントタイプとに基づきイベントの発生を監視するために使用することが可能である。イベントの発生が判定された場合には、出力ポート41を使用して該イベントの発生を通信することが可能である。イベントトランスレータは、これらの機能を周期的に実行することが可能である。更に、入力ポート及び出力ポートは、種々の態様で結合させることが可能である（イベントトランスレータ10との一部の及び／又は全ての通信をサポートする単一の双方向バスを使用することを含む）。
【００１０】
　有利なことに、イベントロジック11は、様々な異なるタイプのイベントのうちの１つを処理するよう構成することが可能であり、これにより、そのイベントタイプを使用して該イベントロジック11に関する処理を制御することが可能となる。したがって、イベントタイプがエッジイベントに対応する場合には、イベントロジック11はエッジイベントに対応するロジックを使用する。また、イベントタイプがレベルイベントに対応する場合には、イベントロジック11はレベルイベントに対応するロジックを使用する。イベントの判定をサポートするためにイベントロジックと共に基準クロックサイクルを使用することも可能である。
【００１１】
　一実施形態では、イベントロジック11は、複数の異なるイベントタイプに関連するロジックをサポートすることができるが、特定のイベントタイプに関連するロジックを使用して該イベントタイプに基づくイベントの発生を監視する。イベントタイプは、イベントタイプレジスタ30に格納することが可能であり、該イベントタイプレジスタ30は、第２の入力ポート31に従ってイベントロジック11がアクセス可能なものである。別の実施形態では、１グループをなす複数のイベントトランスレータの各イベントトランスレータを個々に又は１グループとして構成して、共通のイベントタイプに対応するロジックを実施することができる。
【００１２】
　イベントが発生したと判定された場合には、該イベントの発生がエージェント70に通信される。一実施形態によれば、イベントは、イベントレジスタ40への出力ポート41を利用して通信することが可能である。この機能は、エージェントに通知して該エージェントがイベントの発生を如何に処理するか判定することを可能にするという柔軟性を提供するものとなる。エージェントは、第２のシステム、オペレーティングシステム、ファームウェアシステム、他の考え得るシステム、及びそれらのあらゆる組み合わせを含むことが可能である。エージェントは、反応戦略(reaction strategy)に従ってイベントに反応することが可能であり、該反応戦略は、同様のイベントの通知を容易にするためにイベントレジスタ40をクリアすることを含むことが可能である。
【００１３】
　図２は、イベントトランスレータを構成するための例示的な方法100を示しており、該方法は、イベントロジックを構成するステップ（110）及びイベントタイプを構成するステップ（120）を含むことができる。該構成ステップ100の後、イベントトランスレータは典型的にはイベントタイプを判定し（ステップ130）、該判定されたイベントタイプに関連するイベント信号の監視を開始する（ステップ140）。
【００１４】
　有利なことに、イベントトランスレータ100を構成するためのコンピュータプログラムを、該イベントトランスレータの機能をサポートするようプログラムすることが可能であり、該コンピュータプログラムは、高級言語を使用して定義することが可能である。Verilogは、そのために使用することができる、イベントトランスレータの技術分野で知られている例示的かつ一般的な高級言語である。イベントロジックの構成ステップ（110）は、イベントロジック11のプログラミング（図示せず）を含むことが可能である。イベントロジックの機能は、典型的には、複数のイベントタイプのうちの１つのイベントタイプに対応する。イベントタイプがレベルイベントタイプである場合には、イベントロジックは、レベルイベントの発生の判定をサポートする。一実施形態では、イベントロジックを構成すること（110）によってイベントロジック定義50を生成することが可能である。
【００１５】
　イベントロジックの構成ステップ110は、イベントトランスレータに対応するイベントタイプを識別し、該イベントタイプに基づきイベントの発生を監視し、及び該イベントが発生した場合に該イベントの発生を通知するロジックを構成するステップを含むことが可能である。該イベントの発生は、随意選択のエージェント70に通知することが可能である。イベントタイプに基づきイベント発生を監視するステップは、典型的には、少なくとも１つのイベント信号をイベントソース20から受信することを含む。該イベント信号は、第１の値及び第２の値といった一定範囲の値を含むことが可能である。イベント発生を監視するステップは、イベント信号が変化した場合（例えば、第１の値から第２の値に変化した場合、第１の値から第２の値に変化した後に再び第１の値に変化した場合、及び／又はそれらの逆に変化した場合）に、イベントが発生したことを判定することが可能である。正イベント信号から負イベント信号への遷移、及び開イベント信号から閉イベント信号への遷移といった、監視可能な他の様々な遷移が当業者には理解されよう。
【００１６】
　イベント発生の監視ステップはまた、基準クロックサイクルを使用して一定期間を画定することが可能である。一実施形態によれば、イベントロジックは、３基準クロックサイクルだけ待機し、イベント信号が例えば少なくとも１基準クロックサイクルといった一定期間にわたり発生したことを確認した後、イベントの発生を通知する、という各ステップを必要とすることが可能である。更に、イベントロジックは、イベントの発生に関連する情報を格納するためにイベントレジスタをセットし及びクリアすることが可能である。
【００１７】
　イベントトランスレータは、イベントロジックを構成するステップ110及びイベントタイプを構成するステップ（120）を含めて構成することが可能である（ステップ100）。一実施形態によれば、フィールドプログラマブルゲートアレイ（FPGA）を使用してイベントロジック11を画定することが可能である。これは、システムの起動時にイベントロジック11を構成する（110）ことを可能にする。構成100は、Verilogコードを利用して生成することが可能である。従来のマイクロプロセッサは、それがシリコン上に配置される前にVerilog又はVHDL等の言語を使用して記述することができるものである。同様に、イベントトランスレータ10、イベントタイプレジスタ30、及びイベントロジック11も、同様の言語を使用して構成することが可能である。
【００１８】
　有利なことに、様々なイベントタイプを同一のイベントトランスレータによりサポートすることができる。本発明は、異なるイベントタイプをサポートする（例えば、エッジイベントタイプ及びレベルイベントタイプの何れもサポートする）ようイベントトランスレータ10及び／又はイベントロジック11を構成し及び／又は再構成することを可能にする。イベントタイプは、ユーザが構成することが可能なものであり、例えば、イベントトランスレータ100の構成ステップをサポートするようユーザがVerilogコードを開発することが可能である。代替的には、ユーザがアクセスすることが可能なイベントタイプレジスタ30にイベントロジック11がアクセスすることが可能である。
【００１９】
　有利なことに、様々なイベントトランスレータをサポートするために別個のチップセットは必要ない。本発明により、イベントタイプを識別するためのイベントタイプレジスタ30に基づいてイベントトランスレータ10を再構成することが可能となる。イベントタイプに基づいてイベントロジックがイベントの発生を判定することができる。イベントタイプはイベントタイプレジスタ30に格納することが可能であり、該イベントタイプレジスタ30は、ソフトウェア又はファームウェアによりアクセスすること及び／又は初期化することが可能なメモリロケーションとすることが可能である。
【００２０】
　一実施形態によれば、所与のイベントトランスレータに関するイベントタイプを、システム起動時に及び／又は初期化プロセス中に確立することが可能である。イベントトランスレータ100を構成するために、ＡＣＰＩ（Advanced Configuration and Power Interface）を使用することが可能である。一実施形態によれば、ＡＣＰＩテーブルを生成し、該ＡＣＰＩテーブルをオペレーティングシステムが使用してイベントタイプを構成する（例えばイベントタイプを判定し及び／又は初期化する）ことができるようにすることが可能である。イベントタイプは、イベントタイプレジスタ30において定義し、イベントトランスレータ10のイベントロジック11に指示するために使用することが可能である。
【００２１】
　ＡＣＰＩテーブルをオペレーティングシステムにより使用してイベントタイプを判定することが可能である。有利なことに、これはイベントタイプレジスタ30を初期化する効果的な方法を提供するものとなる。一実施形態によれば、イベントタイプレジスタ30はシステム起動中に初期化される。選択されたイベントトランスレータ10は、イベント信号をレベルイベントとして処理することが可能であり、他のイベントトランスレータは、イベント信号をエッジイベントとして処理することが可能である。有利なことに、この機能は、様々なイベントトランスレータの機能を混合し調和させる一意の能力を提供する。
【００２２】
　図３は、レベルイベントタイプに関してイベントの発生を判定する例示的な方法200を示すフローチャートである。したがって、イベントタイプがレベルイベントである場合には、レベルイベントタイプに関するイベントロジック11を使用し、イベントタイプに基づきイベントの発生を判定する（200）。イベントの発生の判定（200）は、イベント信号を監視するステップ140-1及びイベント信号が変化したか否かを判定するステップ210を含むことが可能である。イベント信号が変化していない場合には、方法200はイベント信号の監視ステップ140-1に戻る。また、イベント信号が変化した場合には、イベントロジックは該イベント信号をイベントレジスタ220にアサートすることが可能である。イベントロジック11は、該イベント信号をイベントレジスタ220にアサートした後、遅延を開始する（例えば３クロックサイクルだけ待機する（230））ことが可能である。該遅延の後、イベントロジック11は、イベントレジスタへの入力をデアサートして（240）イベント信号の監視ステップ（140-1）に戻ることが可能である。有利なことに、イベントタイプは、ラップトップコンピュータの蓋の開閉やボタンの押下といったイベントソースに対応するよう選択することが可能である。
【００２３】
　レベルイベントの一例として、ラップトップコンピュータシステムの蓋（すなわち画面部分）に連係して動作するセンサに関連するものが挙げられる。蓋を開くことにより、イベント信号が非アクティブ状態からアクティブ状態へと変化する（210）。ステップ220で該イベント信号をイベントレジスタにアサートした後、３クロックサイクルだけ待機し（230）、次いで該イベントレジスタへの入力をデアサートする（240）。長時間が経過した後にイベントソース20がクリアされ又は非アクティブ状態に戻る可能性がある。ラップトップコンピュータシステムの蓋が物理的に開かれると、スイッチがシステムの閉じた状態から開いている状態に変化する。該スイッチは、一般的なタイプのイベントソースであるため、非アクティブなLOW信号を使用することが可能である。代替的な実施形態では、イベントロジック11は、蓋が閉じられた際に第２のイベントをトリガすることが可能である。イベントロジックは、イベントの発生が複数回トリガされないことを保証するための幾つかの特別なロジックを含むことが可能である。
【００２４】
　一実施形態によれば、レベルイベントは、HIGHからLOW、又はLOWからHIGHへの信号レベルの変化の発生によって示される。例えば、シャシスイッチがイベントソース20を表すことが可能である。イベントの発生は、シャシを開くことによりスイッチからの信号をHIGHにすることにより示すことができる。シャシが閉じられた際に信号はLOWになる。しかしながら、継続的に状態に基づいてイベントをトリガさせたくない場合がある。かかる場合には、非アクティブからアクティブへ、HIGHからLOWへ、又はその逆の信号変化に基づいてイベントの発生を判定するようイベントロジック11を構成する（110）ことが可能である。更に、イベントロジック11は、特定の信号変化を無視する（例えばアクティブから非アクティブへの遷移を重要でないイベントとして無視する）よう構成する（110）ことが可能である。
【００２５】
　図４は、エッジイベントに関するイベントの発生を判定する方法300を示すフローチャートである。したがって、イベントタイプがエッジイベントタイプである場合に、エッジイベントタイプに関連するイベントロジック11を使用して、該イベントタイプに基づいてイベントの発生を判定する（300）。該イベント発生の判定（300）は、イベント信号を監視するステップ（140-2）及びイベント信号のパルス発生を判定するステップ（310）を含むことが可能である。イベント信号のパルスが発生しない場合には、イベント信号の監視ステップ（140-2）を継続する。イベント信号のパルスが発生した場合には、該パルスの長さを評価して、該パルスが最小パルス幅よりも長いか否かを判定する（320）。該パルスが最小パルス幅以下である場合、方法300はイベント信号の監視ステップに戻る。また、該パルスが最小パルス幅よりも長い場合には、方法300はイベントレジスタにイベント信号をアサートする（325）。該イベントレジスタへのイベント信号のアサートステップ（325）の後、遅延を開始する（例えば３クロックサイクルだけ待機する（330））ことが可能である。該遅延の後、イベントロジック11は、ステップ340でイベントレジスタへの入力をデアサートしてイベント信号の監視ステップ（140-2）に戻ることが可能である。
【００２６】
　一実施形態によれば、イベント信号が（例えばボタンの押下により）最小パルス幅よりも長い期間を有するパルスとして発生した場合にエッジイベントが発生する。第１の値から第２の値へ、続いて第１の値に戻る変化は、単一のエッジイベントを表すものである。ボタンの押下は、典型的には瞬間的な切替（短期間内（例えば400ナノ秒）に発生するボタンの押下及び解放等）に伴うものである。
【００２７】
　一実施形態によれば、エッジイベントタイプに関連するイベントロジックは、ステップ320で、対応するイベント信号パルスの持続時間をチェックすることが可能である。該パルスが最小幅よりも長い場合に、該ロジックはイベント信号をアサートする（325）。その最小の持続時間を使用してデバウンス(debounce)回路を提供することが可能である。この場合、中間的なステップを使用して、指定されたクロックサイクル数よりもパルスが大きいことを確認することが可能である。パルスが最小幅以下である場合、該イベント信号パルスを無視することが可能である。また、該パルスが最小パルスよりも大きい場合には、イベントロジックはイベント信号をアサートすることが可能である（325）。
【００２８】
　図５は、コンピュータによりデータを読み出すことが可能な媒体（以下「コンピュータ可読媒体」と称す）1210において本発明による方法を実行する命令（例えばコンピュータプログラム1200）の一実施形態を示す説明図である。本書で説明する方法のうちの少なくとも１つを表すコンピュータプログラム1200（例えばイベントの発生を識別する方法及びイベントトランスレータを構成する方法）は、コンピュータ可読媒体1210に格納し、又はそれに結合させることが可能である。コンピュータプログラム1200をコンピュータ可読媒体1210に格納し又は結合させることにより、コンピューティング装置が該コンピュータプログラム1200を読み出して実行することが可能となる。
【００２９】
　図６は、中央処理装置（CPI）1310、該CPU1310に結合されたメモリ1320、入出力用サポート1340を有する例示的なコンピューティング装置1300を示すブロック図である。コンピュータプログラム1200は、コンピューティング装置1300によりアクセス可能なメモリ1320にロードすることが可能であり、これにより、該コンピューティング装置1300が該コンピュータプログラム1200を実行することが可能となる。代替的に、コンピュータプログラム1200は永久的にメモリ1320に埋め込むことが可能である。入出力用サポート1340は、典型的にはプログラム1200と対話するものとなる。
【００３０】
　本書で用いた用語及び解説は、本発明の例示を目的としたものであって限定を意味するものではない。特許請求の範囲及びその等価物により規定される本発明の思想及び範囲内で多くの変形例を実施することが可能であり、該特許請求の範囲における全ての用語は、特に示さない限りその考え得る最も広い意味で理解されるべきである、ということが当業者には理解されよう。
【図面の簡単な説明】
【００３１】
【図１】イベントトランスレータの概略的なブロック図を示す。
【図２】本発明の方法の一実施形態によるイベントトランスレータを構成することに対応する概略的なフローチャートである。
【図３】本発明の方法の一実施形態の概略的なフローチャートである。
【図４】本発明の方法の他の実施形態の概略的なフローチャートである。
【図５】コンピュータ可読媒体における本発明による方法を実行する命令の一実施形態を示している。
【図６】本発明による方法を実行するコンピューティング装置の一実施形態を示している。
【符号の説明】
【００３２】
5　　 システム
10　　イベントトランスレータ
11　　イベントロジック
20　　イベントソース
30　　イベントタイプレジスタ
40　　イベントレジスタ
50　　イベントロジック定義
60　　イベントタイプ定義
70　　エージェント
【図１】
2004070961.tif 000003
【図２】
2004070961.tif 000004
【図３】
2004070961.tif 000005
【図４】
2004070961.tif 000006
【図５】
2004070961.tif 000007
【図６】
2004070961.tif 000008