JP2013539577A - インタラプト・ベースのコマンド処理 - Google Patents
インタラプト・ベースのコマンド処理 Download PDFInfo
- Publication number
- JP2013539577A JP2013539577A JP2013526107A JP2013526107A JP2013539577A JP 2013539577 A JP2013539577 A JP 2013539577A JP 2013526107 A JP2013526107 A JP 2013526107A JP 2013526107 A JP2013526107 A JP 2013526107A JP 2013539577 A JP2013539577 A JP 2013539577A
- Authority
- JP
- Japan
- Prior art keywords
- command
- interrupt
- client
- clients
- execution
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/24—Handling requests for interconnection or transfer for access to input/output bus using interrupt
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/541—Client-server
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Bus Control (AREA)
- Multi Processors (AREA)
Abstract
一般に、本開示は、デバイス/モジュール間コマンド実行に関するコンピュータ・システムのデバイス/モジュール間の通信を可能にする技術を説明する。本明細書で説明された技術によると、コンピュータ・システムのオペレーティング・デバイスは、クライアントからの、オペレーティング・デバイスにおいて実行されるコマンドを示す1つ又は複数のコマンド・インジケーションを受信することができる。オペレーティング・デバイスは更に、1つ又は複数のクライアントが実行の完了を待機しているコマンドを示す少なくとも1つのコマンド完了インジケータを受信することができる。オペレーティング・デバイスは、少なくとも1つのコマンド完了インジケータが受信されたコマンドの実行の完了を示すインタラプトを生成することができる。インタラプトは、ジェネリック・インタラプト又はクライアント指定インタラプトであることができる。この方法で、クライアントがオペレーティング・デバイスのコマンド実行をモニタすることによって生じる非効率性が低減されうる。
Description
本願は、コンピュータ・システムのデバイス又はモジュール間での改善されたコマンド処理に関する。
一般的なコンピュータ・システムは、データ処理、メモリ格納、命令処理などに関する指定された機能を実行する、複数の異なるデバイス又はデバイス内のモジュールを用いる。例えばコンピュータ・システムは、プログラム命令を実行し、例えばランダム・アクセス・メモリ(RAM)、ハード・ドライブ、又は固体メモリといったシステムの他の構成要素とのインタフェースとなる、中央処理ユニット(CPU)を用いることができる。いくつかのコンピュータ・システムは、例えばグラフィック・データ及び/又は命令の処理専用のグラフィック処理ユニット(GPU)のような、専用の機能のための複数のプロセッサ構成要素を用いる。他のコンピュータ・システムは、複数の汎用プロセッサ構成要素を用いることができる。
多くの場合、クライアント・デバイスは、オペレーティング・デバイスからの1つ又は複数のコマンドの実行を要求することができる。例えば、CPUデバイス又はモジュールは、GPUがグラフィック・コマンドの処理に特に適しているという理由から、GPUデバイス又はモジュールからの一連のコマンド(プログラム)の実行を要求することができる。別の例において、CPUは、1つ又は複数のメモリ・デバイス又はモジュールにデータを格納するために実行される一連のコマンドを要求することができる。また別の例において、メモリ・デバイス又はコントローラ・モジュールは、処理の結果生じたデータを格納する前に、CPU又はGPUデバイス又はモジュールによるデータの処理を要求することができる。
一般に、本開示は、デバイス/モジュール間コマンド実行に関するコンピュータ・システムのデバイス/モジュール間の通信を可能にする技術を説明する。オペレーティング・デバイスは、1つ又は複数のクライアントが実行の完了を待機しているコマンドを示す少なくとも1つのコマンド完了インジケータを受信することができる。オペレーティング・デバイスは、少なくとも1つのコマンド完了インジケータが受信されたコマンドの実行の完了を示すインタラプトを生成することができる。インタラプトはジェネリック・インタラプト又はクライアント指定インタラプトであることができる。この方式で、クライアントがオペレーティング・デバイスのコマンド実行をモニタすることによって生じる非効率性が低減されうる。
一例において、方法は、オペレーティング・デバイスによって、1つ又は複数のクライアントからの、オペレーティング・デバイスによって実行されるコマンドを示す1つ又は複数のコマンド・インジケーションを受信することを含む。方法は更に、オペレーティング・デバイスによって、1つ又は複数のクライアントからの、1つ又は複数のクライアントが実行の完了を待機しているコマンドを示す少なくとも1つのコマンド完了インジケータを受信することを含む。方法は更に、少なくとも1つのコマンド完了インジケータが受信された少なくとも1つのコマンドの実行の完了を示すインタラプトを生成することを備える。
別の例において、デバイスは、コマンドを実行するように動作可能なデバイス実行モジュールを含む。デバイスは更に、1つ又は複数のクライアントからの、デバイス実行モジュールによって実行されるコマンドを示す1つ又は複数のコマンド・インジケーションを受信するように構成されたコマンド受信モジュールを含む。デバイスは更に、1つ又は複数のクライアントからの、1つ又は複数のクライアントが実行の完了を待機しているコマンドを示す少なくとも1つのコマンド完了インジケータを受信するように構成されたインタラプト制御モジュールを含む。インタラプト制御モジュールは、コマンド完了インジケータが受信されたコマンドの実行が完了すると、コマンド完了インジケータが受信されたコマンドが実行を完了したことを示すインタラプトを生成するように構成される。
別の例において、コンピュータ読取可能記憶媒体は、プログラマブル・プロセッサに、1つ又は複数のクライアントからの、プログラマブル・プロセッサによって実行されるコマンドを示す1つ又は複数のコマンド・インジケーションを受信させるための命令を備える。コンピュータ読取可能記憶媒体は更に、プログラマブル・プロセッサに、1つ又は複数のクライアントのからの、1つ又は複数のクライアントのうちの少なくとも1つが実行の完了を待機している少なくとも1つのコマンドを示す少なくとも1つのコマンド完了インジケータを受信させるための命令を備える。コンピュータ読取可能記憶媒体は更に、プログラマブル・プロセッサに、コマンド完了インジケータが受信された少なくとも1つのコマンドの実行の完了を示すインタラプトを生成させるための命令を備える。
別の例において、デバイスは、1つ又は複数のクライアントからの、デバイスによって実行されるコマンドを示す1つ又は複数のコマンド・インジケーションを受信するための手段を含む。デバイスは更に、1つ又は複数のクライアントからの、1つ又は複数のクライアントが実行の完了を待機している1つ又は複数のコマンドのうちの少なくとも1つを示す少なくとも1つのコマンド完了インジケータを受信するための手段を含む。デバイスは更に、少なくとも1つのコマンド完了インジケータが受信された少なくとも1つのコマンドの実行の完了を示すインタラプトを生成するための手段を含む。
1つ又は複数の例の詳細が、添付図面及び以下の説明において記載される。他の特徴、目的、及び利点が、説明及び図面、及び特許請求の範囲から明らかになるであろう。
多くのコンピュータ・システム又はデバイスは、コンピュータ・システムの特定の機能を実行する複数の別々の構成要素(例えば、デバイス又はモジュール)に分割される。コンピュータ・システムの様々な構成要素は、単一のハードウェア・デバイスに組み込まれうる、あるいは複数の異なる専用デバイスによって組み込まれうる。例えばコンピュータ・システムの様々な構成要素は、1つ又は複数のマイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールド・プログラマブル・ゲート・アレイ(FPGA)、ディスクリート・ロジック、ソフトウェア、ハードウェア、ファームウェア、又はそれらの任意の組み合わせとして実現されうる。
例えばコンピュータ・システムは、1つ又は複数のプロセッサ及び/又は1つ又は複数の記憶(例えば、メモリ)構成要素を用いることができる。コンピュータ・システムは、汎用プロセッサ及び/又はメモリ構成要素(CPU、RAMメモリ、ハードドライブ・メモリ)の両方を用いることができ、更に、例えばグラフィック処理ユニット(GPU)又は処理するためのグラフィック・データを格納するためのキャッシュ・メモリのような、特定のタスクに適した構成要素を用いることができる。GPUは、例えばビデオ及びオーディオの符号化/復号、圧縮、グラフィック・レンダリング、ビデオ及びオーディオ信号処理などのようなメディア関連作業負荷の性能を高める専用プロセッサであることができる。いくつかの例において、GPUは、無線通信デバイス(例えば、無線モバイル・ハンドセット又はデバイス)、デジタル・カメラ、デジタル・テレビ(TV)、ビデオ・カメラ、ビデオ電話、デジタル・マルチメディア・プレーヤ、パーソナル・デジタル・アシスタント(PDA)、ビデオ・ゲーム・コンソール、パーソナル・コンピュータ又はラップトップ・デバイス、スマートブック/スマートホン、又は他の同様のデバイスに含まれうる。
典型的なコンピュータ・システム環境において、上記の個別の構成要素は、コンピュータ・システムの他の別の構成要素からのタスク又は機能の実行を要求するために適用されうる。例えばCPUのようなクライアント・デバイスは、例えばGPUのようなオペレーティング・デバイスからのグラフィック関連データ又は命令の処理に関するコマンドの実行を要求することができる。別の例において、GPU(クライアント)は、CPU(オペレーティング・デバイス)からの非グラフィック・データ又は命令の処理を要求することができる。別の例において、CPU又はGPU(クライアント・デバイス)は、例えば実行される命令の場合RAMメモリ又は格納されるデータの場合ハードドライブ・メモリのようなメモリ(オペレーティング・デバイス)へのデータ又は命令の格納を要求することができる。同様に、メモリ構成要素(クライアント・デバイス)又はコントローラは、メモリ構成要素によってデータをセーブする前に、CPU又はGPU(オペレーティング・デバイス)からの命令の実行を要求することができる。
図1は、典型的なコンピュータ・システム2の構成要素及び例えば本明細書で提供された開示と整合が取れたそのようなコンピュータ・システムのコマンド処理の態様を示すブロック図である。図2に示すように、システム2は、本明細書においてシステム2の構成要素として言及される複数の個別のデバイス又はモジュールを含む。システム2の構成要素は、例えば専用プロセッサ又はメモリ・ハードウェアのような個々の異なるハードウェア構成要素であることができる。その代わりシステム2の複数の構成要素は、例えばCPU、GPU、及び/又はメモリが例えば特定用途向け集積回路(ASIC)又はフィールド・プログラマブル・ゲート・アレイ(FPGA)のような単一のチップに組み込まれたハードウェア構成要素を共有することができる。
システム2は、複数のクライアント4a乃至4e(集合的にクライアント4)及び少なくとも1つのオペレーティング・デバイス22を含む。複数のクライアント4a乃至4eは、システム・バス6を介してオペレーティング・デバイス22に結合されうる。バス6は、例えばオペレーティング・デバイス22によって実行されるコマンドの、クライアント4a乃至4eのうちの1つ又は複数による通信といった、構成要素22と構成要素4のうちのいずれかとの間の通信をイネーブルするように動作可能である。
図1の例に示すように、クライアント4a乃至4eのうちの1つ又は複数は、オペレーティング・デバイス22による1つ又は複数のコマンドの実行を要求することができる。いくつかの場合、複数のクライアント4a乃至4eは、同時又はほぼ同時にオペレーティング・デバイス22によるコマンド実行を要求することができる。図1のシステム2によると、クライアント4a乃至4eの各々が、オペレーティング・デバイス22によるコマンド実行を要求する。図示したように、クライアント4aはコマンドA、B、及びCの実行を要求し、クライアント4bはコマンドDの実行を要求し、クライアント4cはコマンドEの実行を要求し、クライアント4dはコマンドF及びGの実行を要求し、クライアント4eはコマンドHの実行を要求する。
また図1に示すように、クライアント4a乃至4eは、(クライアント4b、4c、及び4eがコマンドD、E、及びHをそれぞれ)単一のコマンドの実行を要求することができる、あるいは、(クライアント4a及び4dが、コマンドA乃至Cからなる処理10a及びコマンドF及びGからなる処理10bをそれぞれ)例えばプログラム又はコマンド命令の他のセットといった処理の形式で複数のコマンドの実行を要求することができる。図1に示すコマンド及び処理10a乃至bの例は、例示目的のために簡略化された。一般的に、クライアントは、オペレーティング・デバイス22によって実行される何百又は何千のコマンドからなる処理を送信するであろう。クライアントはしばしば、クライアントが他のコマンドを実行する又はシステム2の他の機能を実行する前に、オペレーティング・デバイス22がコマンド又は処理(例えば、処理の最後のコマンド)の実行を完了することを必要としうる。
システム2は、コマンド・プロセッサ・モジュール14を含む。コマンド・プロセッサ・モジュール14は、クライアント4のうちの1つ又は複数から1つ又は複数のオペレーティング・デバイス22へコマンドを転送するためのファネルとして動作することができる。コマンド・プロセッサ・モジュール14は、クライアントからの1つ又は複数のコマンドを受信し、コマンドを順序付け、1つ又は複数のオペレーティング・デバイス22へコマンドを割り当て、コマンドの1つ又は複数のインジケーションをオペレーティング・デバイス22へ送信するために適用されうる。コマンド・プロセッサ・モジュール14は、コマンドがいつ受信されたかに基づいてコマンドを順序付け、受信した順序でコマンドのインジケーションをオペレーティング・デバイス22へ送信することができる。コマンド・プロセッサ・モジュール14は、特定の処理(例えば、図1の処理10a又は10b)のコマンドを連続して順序付けしないことができる。例えばコマンド・プロセッサ・モジュール14は、処理10aのコマンドを、処理の実行を要求したクライアント以外のクライアントから受信した他のコマンドとインタリーブすることができる。
上述したように、コマンド・プロセッサ・モジュール14は、コマンドの1つ又は複数のコマンド・インジケーションを1つ又は複数のオペレーティング・デバイス22へ送信することができる。一例において、1つ又は複数のコマンド・インジケーションは、プログラム命令であることができる。他の例において、1つ又は複数のコマンド・インジケーションは、格納又は処理されるデータであることができる。また別の例において、1つ又は複数のコマンド・インジケーションは、メモリ・ロケーション、又は、1つ又は複数のオペレーティング・デバイス22によってプログラム命令又はデータが発見され取り出されうるロケーションの他のインジケータであることができる。
コマンド・プロセッサ・モジュール14は、多数の異なる方法で具現化されうる。一例において、コマンド・プロセッサ・モジュール14は、例えばCPUクライアントのような、クライアント・デバイス4a乃至4eのうちの1つの一部であるソフトウェア、ファームウェア、又はハードウェアの任意の組み合わせに組み込まれうる。他の例において、コマンド・プロセッサ・モジュール14は、例えば専用マイクロプロセッサのような、クライアント・デバイス4a乃至4eのうちの1つの一部ではない専用のソフトウェア、ファームウェア、又はハードウェアの任意の組み合わせによって組み込まれうる。
システム2は更に、コマンド・バッファ18を含む。コマンド・バッファ18は、ハードウェア・レジスタ、メモリ・デバイス、又はメモリ・デバイスのメモリのブロックであることができる。コマンド・バッファ18は、入力コマンド・バッファを含むことができる。入力コマンド・バッファは、オペレーティング・デバイス22のデバイス実行モジュール20による実行のためにコマンド・プロセッサ・モジュール14を介してクライアント4a乃至4eから受信したコマンドを格納するために適用されるメモリ・ブロック、メモリ・デバイス、又はハードウェア・レジスタであることができる。コマンド・バッファ18は、出力コマンド・バッファを更に含むことができる。出力コマンド・バッファは、オペレーティング・デバイス22において実行が完了した少なくとも1つのコマンドのインジケーションを格納するために適用されるメモリ・ブロック、メモリ・デバイス、又はハードウェア・レジスタであることができる。
システム2は更に、コマンド受信モジュール24を含む。コマンド受信モジュール24は一般に、クライアント4からのコマンドを受信し、オペレーティング・デバイス22のデバイス実行モジュール20による実行のためにそれらを準備するために適用されうる。一例において、コマンド受信モジュール24は、受信したコマンド・インジケータを、後続する実行のためにコマンド・バッファ18の入力バッファに収納することができる。例えばクライアント4a乃至4eのうちの1つのようなクライアントは、オペレーティング・デバイス22において実行されるコマンドを要求するコマンド・インジケーションを送信する。コマンド・インジケーションは、コマンド・プロセッサ・モジュール14によって受信され、順序付けられ、オペレーティング・デバイス22へ送信されうる。コマンド受信モジュール24は、実行されるコマンドのコマンド・インジケーションを受信することができる。コマンド受信モジュール24は、受信したコマンドにユニークなコマンド識別子を割り当てることができる。一例において、コマンド識別子は2進数であることができる。2進数は、コマンド識別子がコマンド受信モジュール25によって受信されるたびにインクリメントする、連続的に生成された2進数であることができる。コマンド受信モジュール24は、例えばコマンド識別子のようなコマンドのインジケーションをコマンド・バッファ18の入力バッファに収納することができる。コマンド受信モジュール24は、コマンドの実行を要求したクライアントへコマンド識別子を戻すことができる。一例において、コマンド識別子は、コマンド・プロセッサ・モジュール14へ戻され、要求しているクライアントへ転送される。他の例において、コマンド識別子は、要求しているクライアントへ直接戻される。
クライアントへ戻されたコマンド識別子は、複数の目的を果たすことができる。一例において、コマンド識別子は、クライアントによって発行されたコマンドがオペレーティング・デバイス22によって受信され、実行の準備ができたことを示す返答アクノレッジメントとして役立つことができる。別の例において、コマンド識別子は、コマンドが実行を完了したか否かを判定するためにクライアントがコマンドの実行をモニタすることを可能にすることができる。コマンド識別子は連続的に生成され、コマンド・インジケーションがコマンド受信モジュール24によって受信されるたびに割り当てられうるので、コマンド識別子は更に、コマンドの実行の順序を示すことができる。
上述したように、多くの場合、複数のクライアントは、システム2の1つ又は複数の機能の実行を継続する前に、オペレーティング・デバイス22によって実行される1つ又は複数のコマンドの実行の完了を待機しうる。一例において、クライアントは、処理の最後のコマンド(例えば、図1に示す処理10aのコマンドC)が実行を完了するまで待機しうる。典型的なコンピュータ・システムによると、コマンドが実行を完了したかを判定するために、クライアントは、クライアントが待機している特定のコマンドが完了したかを判定するためにコマンド・バッファ18をモニタすることができる。そのため、クライアントは、オペレーティング・デバイス22が所望のコマンドの実行を完了したことを示すコマンド識別子を出力コマンド・バッファが含むかを判定するために、コマンド・バッファ18の出力コマンド・バッファを断続的に「ピン」(“ping”)する、又は出力コマンド・バッファのコンテンツをレビューすることができる。
クライアントがオペレーティング・デバイス22コマンド・バッファ18を「ピン」する必要があることは、多くの理由によって望ましくない。一般に、コマンド・バッファ18を「ピン」する必要性によって、例えばプロセッサであるクライアント4のCPUサイクルのようなクライアント4のリソースの望ましくない損失が生じうる。クライアントの「ピン」が極めて頻繁である場合、クライアントのコンピューティング・リソースは過度にストレスを受け、例えばクライアントの内部で実行されるコマンド又は機能の実行といった他の目的のために用いることができる貴重なCPUサイクルを浪費しうる。クライアントのコマンド・バッファ18の「ピン」が過度に少ない場合、クライアントは、オペレーティング・デバイス22において実行されたコマンドが実際に実行を完了した後、実行が完了したことにクライアントが気づくまで、不当に待機しなければならず、それによってクライアントによる他のプログラム又は機能の内部実行を遅延させうる。このように、コンピュータ・システムにおけるデバイス/モジュール間コマンド実行に関する改善へのニーズがある。
コンピュータ・システムのコマンド実行における上記欠陥に応じて、デバイス/モジュール間コマンドに関する改善された通信を提供するシステム、方法、及びデバイスが本明細書に開示される。再び図1を参照すると、1つ又は複数のクライアント(例えば、クライアント4a乃至4e)は、コマンド完了モジュール(図1におけるコマンド完了モジュール12a乃至12e)とともに提供され、1つ又は複数のオペレーティング・デバイス22は、インタラプト制御モジュール16とともに提供される。以下で説明する様々な例において、コマンド完了モジュール12及びインタラプト制御モジュール16は、デバイス/モジュール間コマンド実行に関する通信を改善するために、互いの、またシステム2の他のシステム、モジュール、及びデバイスとのインタフェースとなる。
図2は、本明細書で提供された開示と整合が取れたデバイス/モジュール間コマンド実行に関する通信を改善するために適用されるコンピュータ・システム2のブロック図である。説明の目的のために、図2のシステム2は、単一のクライアント4a及び単一のオペレーティング・デバイス22を用いて示されるが、当業者は、システム2が任意の数のクライアント又はオペレーティング・デバイスに適用可能であることを理解するであろう。
図2に示すように、クライアント4aはバス6を介してオペレーティング・デバイス22に結合される。クライアント4aは、オペレーティング・デバイス22の1つ又は複数のコマンドの実行を所望しうる。クライアント4aは、システム2の他のコマンド又は機能の実行を継続する前に、1つ又は複数のコマンドの完了を待機することができる。図1に関して上述したように、クライアント4aは、コマンド・プロセッサ・モジュール14を介して、コマンド(例えば、図1に示す1つ又は複数のコマンド)のコマンド・インジケーション50をオペレーティング・デバイス22へ通信することができる。コマンド・インジケーション50は、オペレーティング・デバイス22においてコマンドを実行する要求を示すことができる。コマンド受信モジュール24は、コマンド識別子60をクライアント4aへ戻すように動作可能であることができる。
クライアント4aは少なくとも1つのコマンド完了モジュール12aを含む。一般的に言うと、コマンド完了モジュール12aは、クライアント4aの観点からデバイス/モジュール間コマンド実行に関する通信を管理するように機能する。従ってコマンド完了モジュール12aは、クライアント4aが実行の完了を待機している1つ又は複数のコマンドを示す少なくとも1つのコマンド完了インジケータ30を送信することができる。
また図示したように、オペレーティング・デバイス22は、少なくとも1つのインタラプト制御モジュール16を含む。一般的に言うと、インタラプト制御モジュール16は、オペレーティング・デバイス22の観点からデバイス/モジュール間コマンド実行に関する通信を管理するように機能する。以下で更に詳しく説明される様々な例において、インタラプト制御モジュール16は、コマンド完了インジケータ30に基づいて、コマンド完了インジケータ30が受信された1つ又は複数のコマンドが実行を完了したことを1つ又は複数のクライアントに示す少なくとも1つのインタラプト40を送信するために適用される。
いくつかの例において、インタラプト40は、システム2の全ての又はほとんどのデバイス及び/又はモジュールへ送信されるジェネリック・インタラプトである。他の例において、インタラプト40は、コマンド完了インジケータ30を提供した1つ又は複数の特定のクライアントへ送信されるクライアント指定インタラプトである。以下で更に詳しく説明される様々な例において、インタラプト制御モジュール16は、インタラプト40が生成されるべきかを判定するために1つ又は複数の比較を実行するように動作可能であることができる。一例において、インタラプト制御モジュール16は、コマンドがオペレーティング・デバイス22における実行を完了するとそれらのコマンドとコマンド完了インジケータ30によって識別されたコマンドとを比較するように構成される。一致があることが発見された場合、インタラプト40が生成されうる。システム2のジェネリック・インタラプト構成の一例において、コマンド完了モジュール12aは、コマンドがに関するコマンド・インジケーション50がオペレーティング・デバイス22へ送信された後のいつかの時点で、クライアント4aがコマンドの実行の完了を待機していることを示す少なくとも1つのコマンド完了インジケータ30を通信するように構成される。インタラプト制御モジュール16は、コマンド完了インジケータ30を受信し、比較のために(例えば、メモリ又はレジスタに)コマンド完了インジケータ30を格納するように構成される。メモリ又はレジスタは、コマンド・バッファ18の一部であることもそうでないこともある。上述したように、コマンド完了インジケータ30は、コマンド識別子60であることができる。インタラプト制御モジュール16は、単一のコマンド完了インジケータ30又は複数のコマンド完了インジケータ30を比較のために格納することができる。オペレーティング・デバイス22によって実行されたコマンドが完了すると、完了したコマンドのコマンド識別子60が、1つ又は複数のコマンド完了インジケータ30と比較される。
一例において、比較は、完了したコマンドとコマンド完了インジケータ30との間の一致を判定することを含む。別の例において、比較は、どれが先に実行されるべきかを判定するために、例えばコマンド識別子60の比較のようにコマンドの優先権の順序を判定することを含む。
インタラプト制御モジュール16が、完了したコマンドとコマンド完了インジケータ30との間の一致を判定した場合、コマンド完了インジケータ30が受信されたコマンドが実行を完了したことを全てのクライアント(例えば、図1のクライアント4a乃至4e)に通知するジェネリック・インタラプト40が生成される。一例において、ジェネリック・インタラプト40はコマンド識別子60を含み、インタラプト40が、クライアントによって送信されたコマンド完了インジケータ30に向けられているかを各クライアントが判定することを可能にする。他の例において、インタラプト40をトリガした完了済みコマンドを識別するコマンド識別子60は、コマンド・バッファ18の出力バッファに収納されうる。従って、ジェネリック・インタラプト40を受信した1つ又は複数のクライアントは、インタラプト40が、クライアントによって送信されたコマンド完了インジケータ30に向けられるかを判定するために、コマンド・バッファ18の出力バッファのコンテンツにアクセスしレビューすることができる。
システム2のジェネリック・インタラプト構成の別の例において、コマンド完了モジュール12aが、コマンド・インジケーション50の転送に後続するステップにおいてコマンド完了インジケータ30を提供するのではなく、コマンド完了インジケータ30が、コマンド・インジケーション50の転送とともにオペレーティング・デバイス22へ通信されうる。一例において、コマンド・インジケーション50は、コマンドを表す2進数又は言語であり、2進数又は言語のうちの1又は複数のビットが、コマンド完了インジケータ30のためのフラグとして確保されうる。従って、クライアントがコマンドの実行の完了を待機している場合、1又は複数のビットが設定されうる。オペレーティング・デバイス22及びインタラプト制御モジュール16は、コマンド受信モジュール24がコマンド・インジケーション50を受信すると1つ又は複数のビットを読み取り、1つ又は複数のビットが、コマンドに関してコマンド完了インジケータ30が送信されたことを示すコマンドのためのコマンド・インジケーション50を格納するように構成されうる。コマンド・インジケーション50はその後、上述したように、コマンドがオペレーティング・デバイス22における実行を完了するとそれらのコマンドと比較されうる。
システム2のクライアント指定インタラプト構成の例において、コマンド完了モジュール12aは、コマンド・インジケーション50の最初の送信に後続してコマンド完了インジケータ30を通信する場合、クライアントを識別する1つ又は複数のクライアント識別子70を通信するように構成されうる。この例によると、インタラプト制御モジュール16は、1つ又は複数のバッファ、レジスタ、又は他のメモリ・ロケーションに、各コマンド完了インジケータ30とともにクライアント識別子70を格納するように適用されうる。1つ又は複数のバッファ、レジスタ、又は他のメモリ・ロケーションは、コマンド・バッファ18の一部であることができる。それに応じて、インタラプト制御モジュール16は、コマンド完了インジケータ30が送信されたコマンドが完了すると(及び上述したような対応する比較がされると)、特定のコマンド完了インジケータ30を発行した特定のクライアントにクライアント指定インタラプト40を通信するように構成されうる。クライアント4はその後、インタラプト40がそのクライアントに向けられているかを判定する必要なく、クライアント指定インタラプト40をトリガしたコマンドの完了の結果生じたデータ又は他の情報にアクセスすることができる。
システム2のクライアント指定インタラプト構成の別の例において、クライアントは、コマンド・インジケーション50をオペレーティング・デバイス22へ通信する場合、コマンド完了インジケータ30及びクライアント識別子70の両方を提供するように適用されうる。コマンド完了インジケータ30及びクライアント識別子70は、コマンド完了インジケータ30に関して上述したようにコマンド・インジケーション50を表す2進数又は言語に含まれうる。それに応じて、上述した例と同様に、インタラプト制御モジュール16は、比較を実行し、クライアント指定インタラプト40を提供することができる。
図3Aは、本明細書で説明された開示と整合が取れたデバイス/モジュール間コマンド実行通信のための方法の一例を示すフローチャート図である。図3Aの方法は、例えば図1及び2に示すコンピュータ・システム2のようなコンピュータ・システムに従って実現されうるが、他のコンピュータ・システムも考慮される。図3Aの例は、例えば本明細書で説明されたオペレーティング・デバイス22のようなオペレーティング・デバイスの観点から示される。図示したように、オペレーティング・デバイスは、1つ又は複数のクライアントからの、オペレーティング・デバイスにおいて実行される1つ又は複数のコマンドを示す少なくとも1つのコマンド・インジケーションを受信する(301)。1つ又は複数のコマンドは、入力コマンド・バッファに収納されうる。オペレーティング・デバイスは、コマンドを識別する少なくとも1つのコマンド識別子を、要求しているクライアントへ戻すことができる。
オペレーティング・デバイスは、1つ又は複数のクライアント・デバイスが実行の完了を待機している1つ又は複数のコマンドを示す少なくとも1つのコマンド完了識別子を受信することができる(302)。コマンド完了識別子は、1つ又は複数のクライアント・デバイスが実行の完了を待機している1つ又は複数のコマンドを識別するコマンド識別を示す少なくとも1つのインジケーションを含むことができる。
コマンド完了識別子と完了したコマンドとの比較に基づいて、オペレーティング・デバイスがコマンド完了インジケータを受信した任意のコマンドについて実行が完了すると、オペレーティング・デバイスによってジェネリック・インタラプトが生成され、1つ又は複数のクライアントへ通信される(303)。ジェネリック・インタラプトは、ジェネリック・インタラプトをトリガしたコマンドのためのコマンド識別子を含むことも含まないこともできる。
図3Bは、本明細書で説明された開示と整合が取れたデバイス/モジュール間コマンド実行通信のための方法の一例を示すフローチャート図である。図3Bの方法は、例えば図1及び2に示すコンピュータ・システム2のようなコンピュータ・システムに従って実現されうるが、他のコンピュータ・システムも考慮される。図3Bに示す例は、例えば図1及び2に示すクライアント4のようなクライアントの観点から示される。図示したように、クライアントは、オペレーティング・デバイスにおいて実行される1つ又は複数のコマンド8を示す少なくとも1つのコマンド・インジケーションを送信する(311)。クライアントは、オペレーティング・デバイスによって受信されたコマンドを識別する少なくとも1つのコマンド識別子をオペレーティング・デバイスから受信することができる。
クライアントは、クライアントが実行の完了を待機している1つ又は複数のコマンドを示す少なくとも1つのコマンド完了インジケータを送信する(312)。少なくとも1つのコマンド完了インジケータは、少なくとも1つのコマンド識別子を含むことができる。
クライアントは、1つ又は複数のクライアントのうちの少なくとも1つがコマンド完了識別子を送信したコマンドが実行を完了したことを示す少なくとも1つのインタラプトをオペレーティング・デバイスから受信する(313)。少なくとも1つのインタラプトは、インタラプトをトリガした完了済みコマンドを識別するコマンド識別子を含むことも含まないこともできる。
少なくとも1つのインタラプトがコマンド識別子を含む場合、クライアントは、インタラプトがクライアントに向けられているかを判定するためにインタラプトをレビューすることができる(314)。インタラプトがクライアントに向けられている場合、クライアントは、コマンドの実行の結果を取り出し、実行の完了に依存する機能の実行を継続することができる。
少なくとも1つのインタラプトがコマンド識別子を含まない場合、クライアントは、インタラプトが、クライアントがコマンド完了インジケータを送信した1つ又は複数のコマンドの実行の完了を示したかを判定するために、完了したコマンドが格納されているバッファにアクセスすることができる(315)。インタラプトがクライアントに向けられている場合、クライアントは、コマンドの実行の結果を取り出し、コマンドの実行の完了に依存する機能の実行を継続することができる。
図4Aは、本明細書で説明された開示と整合が取れたデバイス/モジュール間コマンド実行のための方法の一例を示すフローチャート図である。図4Aの方法は、例えば図1及び2に示すコンピュータ・システム2のようなコンピュータ・システムに従って実現されるが、他のコンピュータ・システムも考慮される。図4Aの例は、例えば本明細書で説明されたオペレーティング・デバイス22のようなオペレーティング・デバイスの観点から示される。図示したように、オペレーティング・デバイスは、1つ又は複数のクライアントからの、オペレーティング・デバイスにおいて実行される1つ又は複数のコマンドを示す少なくとも1つのコマンド・インジケーションを受信する(401)。
クライアントがコマンドの実行の完了を待機している場合、コマンド・インジケーションは、クライアントがそのコマンドの実行の完了を待機していることを示すコマンド完了識別子を含むことができる。一例において、コマンド完了識別子は、コマンド・インジケーションのうちの1又は複数のビットである。1又は複数のビットは、特定のコマンドが、クライアントが実行を待機しているコマンドであるか否かを示すために設定されうる。オペレーティング・デバイスは、1又は複数のビットを読み取り、クライアントがそのコマンドの実行の完了を待機しているかを判定するように適用されうる。
コマンド完了識別子と完了したコマンドとの比較に基づいて、オペレーティング・デバイスがコマンド完了インジケータを受信した任意のコマンドについて実行が完了すると、オペレーティング・デバイスによってジェネリック・インタラプトが生成され、1つ又は複数のクライアントへ通信される(402)。ジェネリック・インタラプトは、ジェネリック・インタラプトをトリガしたコマンドのためのコマンド識別子を含むことも含まないこともできる。
図4Bは、本明細書で説明された開示と整合が取れたデバイス/モジュール間コマンド実行通信のための方法の一例を示すフローチャート図である。図4Bの方法は、例えば図1及び2に示すコンピュータ・システム2のようなコンピュータ・システムに従って実現されるが、他のコンピュータ・システムも考慮される。図4Bに示す例は、例えば図1及び2に示すクライアント4のようなクライアントの観点から示される。図示したように、クライアントは、オペレーティング・デバイスにおいて実行される1つ又は複数のコマンド8を示す少なくとも1つのコマンド・インジケーションを送信する(411)。コマンド・インジケーションは、クライアントが1つ又は複数のコマンドの実行の完了を待機していることを示す少なくとも1つのコマンド完了インジケータを含むことができる。一例において、コマンド完了識別子は、コマンド・インジケーションのうちの1又は複数のビットである。1又は複数のビットは、特定のコマンドが、クライアントが実行を待機しているコマンドであるか否かを示すために設定されうる。
クライアントは、1つ又は複数のクライアントのうちの少なくとも1つがコマンド完了識別子を送信したコマンドが実行を完了したことを示す少なくとも1つのインタラプトをオペレーティング・デバイスから受信する(412)。少なくとも1つのインタラプトは、インタラプトをトリガした完了済みコマンドを識別するコマンド識別子を含むことも含まないこともある。ジェネリック・インタラプトを受信すると、クライアントは、完了したコマンドが、クライアントが実行の完了を待機しているコマンドであるかを判定するために、ウェイクアップすることができる(413)。
少なくとも1つのインタラプトがコマンド識別子を含む場合、クライアントは、インタラプトが、クライアントによって送信されたコマンド・インジケーションにコマンド完了識別子が含まれたコマンドに向けられているかを判定するためにインタラプトをレビューすることができる(513)。インタラプトがクライアントに向けられている場合、クライアントは、コマンドの実行の結果を取り出し、実行の完了に依存する機能の実行を継続することができる。
少なくとも1つのインタラプトがコマンド識別子を含まない場合、クライアントは、インタラプトが、クライアントがコマンド完了インジケータを送信した1つ又は複数のコマンドの実行の完了を示したかを判定するために、完了したコマンドが格納されたバッファにアクセスすることができる(514)。インタラプトがクライアントに向けられている場合、クライアントは、コマンドの実行の結果を取り出し、コマンドの実行の完了に依存する機能の実行を継続することができる。
図5Aは、本明細書で説明された開示と整合が取れたデバイス/モジュール間コマンド実行のための方法の一例を示すフローチャート図である。図5Aの方法は、例えば図1及び2に示すコンピュータ・システム2のようなコンピュータ・システムに従って実現されるが、他のコンピュータ・システムも考慮される。図5Aの例は、例えば本明細書で説明されたオペレーティング・デバイス22のようなオペレーティング・デバイスの観点から示される。図示したように、オペレーティング・デバイスは、1つ又は複数のクライアントからの、オペレーティング・デバイスにおいて実行される1つ又は複数のコマンドを示す少なくとも1つのコマンド・インジケーションを受信する。1つ又は複数のコマンドは、入力コマンド・バッファに収納されうる(501)。オペレーティング・デバイスは、そのコマンドを識別する少なくとも1つのコマンド識別子を、要求しているクライアントへ戻すことができる。
オペレーティング・デバイスは、1つ又は複数のクライアント・デバイスが実行の完了を待機している1つ又は複数のコマンドを示す少なくとも1つのコマンド完了識別子を受信する(502)。コマンド完了識別子は、コマンド識別を示す少なくとも1つのインジケーションを含むことができる。更に、コマンド完了識別子は、コマンド完了識別子を送信したクライアントを識別する少なくとも1つのクライアント識別子を含む。
コマンド完了識別子と完了したコマンドとの比較に基づいて、オペレーティング・デバイスがコマンド完了インジケータを受信したコマンドについて実行が完了すると、オペレーティング・デバイスによってクライアント指定インタラプトが生成され、1つ又は複数のクライアントへ通信される(503)。オペレーティング・デバイスは、(例えば、502で)受信したクライアント識別子に基づいてクライアント指定インタラプトを送信することができる。クライアント指定インタラプトは、ジェネリック・インタラプトをトリガしたコマンドのためのコマンド識別子を含むことも含まないこともできる。
図5Bは、本明細書で説明された開示と整合が取れたデバイス/モジュール間コマンド実行のための方法の一例を示すフローチャート図である。図5Bの方法は、例えば図1及び2に示すコンピュータ・システム2のようなコンピュータ・システムに従って実現されるが、他のコンピュータ・システムも考慮される。図5Bに示す例は、例えば図1及び2に示すクライアント4のようなクライアントの観点から示される。図示したように、クライアントは、オペレーティング・デバイスにおいて実行される1つ又は複数のコマンドを示す少なくとも1つのコマンド・インジケーションを送信する(511)。クライアントは、オペレーティング・デバイスからの、受信されたコマンドを識別する少なくとも1つのコマンド識別子をオペレーティング・デバイスから受信することができる。
クライアントは、クライアントが実行の完了を待機している1つ又は複数のコマンドを示す少なくとも1つのコマンド完了インジケータを送信する(512)。少なくとも1つのコマンド完了インジケータは、少なくとも1つのコマンド識別子を含むことができる。更に、コマンド完了識別子は、クライアントを識別する少なくとも1つのクライアント識別子を含む。
クライアントは、クライアントがコマンド完了識別子を送信したコマンドが実行を完了したことを示す少なくとも1つのインタラプトをオペレーティング・デバイスから受信する(513)。少なくとも1つのインタラプトは、インタラプトをトリガした完了済みコマンドを識別するコマンド識別子を含むことも含まないこともできる。
少なくとも1つのインタラプトがコマンド識別子を含む場合、クライアントは、インタラプトをトリガしたコマンドがクライアントに向けられているかを判定するためにインタラプトをレビューすることができる(514)。クライアントは、コマンドの実行の結果を取り出し、実行の完了に依存する機能の実行を継続することができる。
少なくとも1つのインタラプトがコマンド識別子を含まない場合、クライアントは、インタラプトをトリガしたコマンドが、クライアントがコマンド完了インジケータを送信したコマンドであるかを判定するために、完了したコマンドが格納されたバッファにアクセスすることができる(515)。クライアントは、コマンドの実行の結果を取り出し、コマンドの実行の完了に依存する機能の実行を継続することができる。
図6Aは、本明細書で説明された開示と整合が取れたデバイス/モジュール間コマンド実行のための方法の一例を示すフローチャート図である。図6Aの方法は、例えば図1及び2に示すコンピュータ・システム2のようなコンピュータ・システムに従って実現されるが、他のコンピュータ・システムも考慮される。図6Aの例は、例えば本明細書で説明されたオペレーティング・デバイス22のようなオペレーティング・デバイスの観点から示される。図示したように、オペレーティング・デバイスは、1つ又は複数のクライアントからの、オペレーティング・デバイスにおいて実行される1つ又は複数のコマンドを示す少なくとも1つのコマンド・インジケーションを受信する(601)。クライアントがコマンドの実行の完了を待機している場合、コマンド・インジケーションは、クライアントがそのコマンドの実行の完了を待機していることを示すコマンド完了識別子を含むことができる。
一例において、コマンド完了識別子は、コマンド・インジケーションのうちの1又は複数のビットである。1又は複数のビットは、特定のコマンドが、クライアントが実行を待機しているコマンドであるか否かを示すために設定されうる。オペレーティング・デバイスは、1又は複数のビットを読み取り、クライアントがコマンドの実行の完了を待機しているかを判定するように適用されうる。更に、コマンド・インジケーションは、受信されたコマンド・インジケーションの発信元のクライアントを識別するクライアント識別子を含む。
コマンド完了識別子と完了したコマンドとの比較に基づいて、オペレーティング・デバイスがコマンド・インジケーションを有するコマンド完了インジケータを受信したコマンドについて実行が完了すると、オペレーティング・デバイスによってクライアント指定インタラプトが生成され、クライアント識別によって識別されたクライアントへ通信される(602)。クライアント指定インタラプトは、ジェネリック・インタラプトをトリガしたコマンドのためのコマンド識別子を含むことも含まないこともできる。
図6Bは、本明細書で説明された開示と整合が取れたデバイス/モジュール間コマンド実行のための方法の一例を示すフローチャート図である。図6Bの方法は、例えば図1及び2に示すコンピュータ・システム2のようなコンピュータ・システムに従って実現されるが、他のコンピュータ・システムも考慮される。図6Bに示す例は、例えば図1及び2に示すクライアント4のようなクライアントの観点から示される。図示したように、クライアントは、オペレーティング・デバイスにおいて実行される1つ又は複数のコマンドを示す少なくとも1つのコマンド・インジケーションを送信する(611)。コマンド・インジケーションは、クライアントが1つ又は複数のコマンドの実行の完了を待機していることを示す少なくとも1つのコマンド完了インジケータを含む。一例において、コマンド完了識別子は、コマンド・インジケーションのうちの1又は複数のビットである。1又は複数のビットは、特定のコマンドが、クライアントが実行を待機しているコマンドであるか否かを示すために設定されうる。コマンド・インジケーションは更に、コマンド・インジケーションを送信しているクライアントを識別する少なくとも1つのクライアント識別子を含む。
クライアントは、クライアントがコマンド・インジケーションを送信したコマンドが実行を完了したことを示す少なくとも1つのインタラプトをオペレーティング・デバイスから受信する(612)。少なくとも1つのインタラプトは、インタラプトをトリガした完了済みコマンドを識別するコマンド識別子を含むことも含まないこともできる。
少なくとも1つのインタラプトがコマンド識別子を含む場合、クライアントは、コマンド・インジケータのアイデンティティが、インタラプトをトリガしたクライアントによって送信されたかを判定するために、インタラプトをレビューすることができる(613)。クライアントは、コマンドの実行の結果を取り出し、実行の完了に依存する機能の実行を継続することができる。
少なくとも1つのインタラプトがコマンド識別子を含まない場合、クライアントは、インタラプトをトリガしたコマンドのアイデンティティがクライアントによって受信されたかを判定するために、完了したコマンドが格納されたバッファにアクセスすることができる(614)。クライアントは、コマンドの実行の結果を取り出し、コマンドの実行の完了に依存する機能の実行を継続することができる。
図7乃至10は一般に、本明細書で説明された開示と整合が取れたデバイス/モジュール間コマンド実行に関する通信を改善するためのシステム、方法、及びデバイスの特定の実施形態の一例を示す。図8乃至11に示す例は、説明目的のみのために提供される。当業者は、本明細書で説明されたインタラプト・ベースのデバイス/モジュール間コマンド実行の様々な例が、図7乃至10において説明された例に限定されないことを理解するであろう。
図7は一般に、図8乃至10に関して説明された方法によって用いられるオペレーティング・デバイス22の構成要素の一例を示す。上述したように、オペレーティング・デバイス22は、コマンド・バッファ18を含むことができる。コマンド・バッファ18は、オペレーティング・デバイス22のデバイス実行モジュール20において実行されるコマンドのコマンド識別子60を格納する入力コマンド・バッファを含むことができる。コマンド・バッファ18は更に、オペレーティング・デバイス22のデバイス実行モジュール20における実行が完了したコマンドのコマンド識別子60を格納する出力コマンド・バッファを含む。
図示したように、インタラプト制御モジュール16は、インタラプト40の生成を容易にするために用いられる値の比較のために用いられる一連のバッファ、レジスタ、メモリ・ブロックなどを含む。例えばインタラプト制御モジュール16は、デバイス実行モジュール20において現在実行しているコマンドのコマンド識別子60を格納するように構成されたバッファ701を含むことができる。インタラプト制御モジュール16は更に、1つ又は複数のコマンド識別子60と1つ又は複数のコマンド完了インジケータ30との比較をイネーブルするイネーブル・フラグを格納するように構成された比較イネーブル・バッファ702を含む。一例において、イネーブル・フラグは、インタラプト制御モジュール16によってインタラプトが生成されるたびに偽に設定される。インタラプト制御モジュール16は更に、比較するための1つ又は複数のコマンド完了インジケータ30(例えば、コマンド完了インジケータ30が受信されたコマンド)を格納するように構成された比較コマンド・バッファ703を含むことができる。
図8は、コマンド完了インジケータ30をオペレーティング・デバイス22へ通信するために、クライアントのコマンド完了モジュール12aによって実行されうる処理のフローチャート図を示す。クライアントは、コマンド完了インジケータ30をインタラプト制御モジュール16へ送信することによって処理を開始することができる(801)。上述したように、コマンド完了インジケータ30は、クライアントが以前実行のためにオペレーティング・デバイス22へ送信したコマンドのコマンド識別子60であることができる。コマンド識別子60は、コマンドがコマンド受信モジュール24によって受信されるたびにインクリメントされる2進数であることができる。従ってコマンド識別子60は、各コマンドに割り当てられたユニークな番号だけではなく、コマンド・バッファ18の入力コマンド・バッファにおけるコマンドの実行の順序も表す。
以下で更に詳しく説明するように、ある条件が満たされた場合、コマンド完了制御モジュール12は、インタラプト制御モジュール16からの、コマンド完了インジケータ30が送信されたコマンドのインジケーションを受信することができる(802)。コマンドのインジケーションは、実際のコマンド自体、コマンド識別子60、又はコマンドがアクセスされうるメモリ・ロケーションのアドレスであることができる。コマンド完了モジュール12aはその後、クライアントが実行の完了を示すインタラプト40を所望するコマンド完了インジケータ30と戻された値との比較を実行することができる。コマンドのインジケーションが、送信されたコマンド完了インジケータによって示されたコマンドと一致した場合、コマンド完了モジュール12aは、自身が送信したコマンド完了インジケータ30に関連付けられたコマンドが次に比較のための行に入ること、及びコマンド完了モジュール12aがインタラプト40を受信することを予測しうることを知る。従ってクライアントは、インタラプト40の受信を待機することができる(804)。
しかし、コマンドのインジケーションが戻されなかった場合、コマンド完了モジュール12aは、自身が送信したコマンド完了インジケータ30の前に少なくとも1つの他のコマンドが比較されなければならないことを知る。従ってコマンド完了モジュール12aは、インタラプト制御モジュール16へ別のコマンド完了インジケータ30を再び送信する前にいくらかの期間待機することができる(803)。
図9は、インタラプト制御モジュール16において実行することができる処理を示すフローチャート図である。インタラプト制御モジュール16は、クライアントからのコマンド完了インジケータ30を受信することができる(901)。上述したように、コマンド完了インジケータ30は、クライアント4が実行の完了を待機しているコマンドを識別するコマンド識別子60であることができる。
インタラプト制御モジュール16は、現在実行中コマンド・バッファ701に格納されたコマンドのコマンド識別子60と受信したコマンド完了インジケータ30とを比較することができる(902)。この比較は、クライアントによって送信されたコマンド完了インジケータ30に関連付けられたコマンドが実行をまだ完了していないことと、従ってインタラプト40が必要ではないこととを確実にするために役立つ。一例において、インタラプト制御モジュール16は、コマンド完了インジケータ30を送信したクライアントへ任意の値を戻さないことがある。その場合クライアントは、例えば、時間切れのように、他の手段を介して、コマンド完了インジケータ30が送信されたコマンドが既に完了したかを判定することができる。他の例において、インタラプト制御モジュール16は、コマンド完了インジケータ30によって識別されたコマンドが既に実行を完了したことを示す少なくとも1つのインジケーションを送信することができる。
受信したコマンド完了インジケータ30が、現在実行中コマンド・バッファ701に格納されたコマンドより後に実行される場合、コマンド完了インジケータ30に関連付けられたコマンド識別子60は、比較コマンド・バッファ703に格納される。また、902において、コマンド完了インジケータ30に関連付けられたコマンドが、現在実行中コマンド・バッファ701に格納されたコマンド識別子60よりも後に実行されることが決定された場合、比較イネーブル・バッファ702に格納された比較イネーブル・フラグは、更なる比較をイネーブルするために真に設定される。インタラプト制御モジュール16は、比較コマンド・バッファ703に現在格納されているコマンド識別子60とコマンド完了インジケータ30とを比較することができる(903)。受信したコマンド完了インジケータ30に関連付けられたコマンドが、比較コマンド・バッファ703に現在格納されているコマンド識別子60に関連付けられたコマンドよりも先に実行される場合、コマンド完了インジケータ30に関連付けられたコマンドは、比較コマンド・バッファ703に格納されている既存のコマンドよりも前に優先権を与えられるべきである。一例によると、インタラプト制御モジュール16は、受信したコマンド完了インジケータ30に関連付けられたコマンド識別子60を比較コマンド・バッファ703に書き込むことができる。インタラプト制御モジュール16はまた、更なる比較をイネーブルするために比較イネーブル・バッファ802の比較イネーブル・フラグを真に設定することもできる(904)。
受信したコマンド完了インジケータ30に関連付けられたコマンドが、比較コマンド・バッファ703に現在格納されているコマンド識別子60に関連付けられたコマンドよりも後に実行される場合、高い優先順位のコマンドが、受信したコマンド完了インジケータ30に関連付けられたコマンドより前に実行を完了しなければならない。従って、一例において、クライアントには何も戻されない。別の例において、高い優先順位の待機がスケジュールされたことを示す1つ又は複数のインジケーションがクライアントへ送信される。
インタラプト制御モジュール16が他のステップを処理している間、コマンド完了インジケータ30に関連付けられたコマンドが実行を完了していないことを確実にするために、コマンド完了インジケータ30は、現在実行中コマンド・バッファ701に格納されたコマンド識別子60と再び比較されうる(905)。コマンド完了インジケータ30が、現在実行中コマンド・バッファ701に格納されたコマンド識別子60よりも後に実行される場合、比較コマンド・バッファ703に現在格納されているコマンドのインジケーションがコマンド完了モジュール12aへ戻される(905)。図示されていない一例において、インタラプト制御モジュール16は、比較コマンド・バッファ703に現在格納されているコマンドのインジケーションを戻す前に、インタラプト40の生成を待機することができる。
図10は、インタラプト40を生成するためにインタラプト制御モジュール16で実行することができる処理を示すフローチャート図である。コマンドが実行を完了すると、インタラプト制御モジュール16は、例えばコマンド識別子60のような、完了したコマンドを示すインジケーションを受信することができる(1001)。インタラプト制御モジュール16は、図9に関して説明された処理によって比較がイネーブルされたかを判定するために、比較イネーブル・バッファ802をチェックすることができる(1002)。イネーブルされていない場合、比較は行われず、インタラプト40は生成されない。イネーブルされていた場合、インタラプト制御モジュール16は、現在実行中コマンド・バッファ801に格納されたコマンド識別子60と、比較コマンド・バッファ703内のコマンド識別子60とを比較することができる(1003)。比較コマンド・バッファ703に格納されたコマンド識別子60が、現在実行中コマンド・バッファ701に格納された識別子よりも後に実行される場合、インタラプト40が生成されうる(1004)。インタラプト40は、1つ又は複数のクライアントへ送信されうる。上述したように、クライアントは、インタラプト40がクライアントに向けられたかを判定するために、コマンド・バッファ18の出力バッファ及び/又はインタラプト40をレビューすることができる。クライアントはその後、処理の結果生じた情報又はデータを取り出し、インタラプト40が生成されたコマンドに依存していた処理又はコマンドの実行を継続することができる。
本開示において説明された技術及び/又は構成要素(例えば、図1及び2に示すクライアント4、オペレーティング・デバイス22、コマンド・プロセッサ・モジュール14、コマンド完了モジュール12a乃至e、コマンド・バッファ18、コマンド受信モジュール24、インタラプト制御モジュール16、デバイス実行モジュール20)は、1つ又は複数の汎用マイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールド・プログラマブル・ゲート・アレイ(FPGA)、プログラマブル論理デバイス(PLD)、又は他の同等の論理デバイスのうちの任意の組み合わせによって実現されうる。従って、「プロセッサ」、「コントローラ」、「デバイス」、又は「モジュール」という用語は本明細書で用いられる場合、上記構成のうちの任意の1つ又は複数、あるいは本明細書で説明された技術の実現に適した他の任意の構成を称することができる。
本明細書に示す様々な構成要素(例えば、図1及び2に示すクライアント4a乃至4e、オペレーティング・デバイス22、コマンド・プロセッサ・モジュール14、コマンド完了モジュール12a乃至e、コマンド・バッファ18、コマンド受信モジュール24、インタラプト制御モジュール16、デバイス実行モジュール20)は、ハードウェア、ソフトウェア、ファームウェア、又はそれらの任意の組み合わせの任意の適切な組み合わせによって実現されうる。図面において、様々な構成要素は個別のユニット又はモジュールとして示される。しかし、これらの図面に関して説明された様々な構成要素のうちのいくつか又は全ては、共通のハードウェア、ファームウェア、及び/又はソフトウェアにおける結合されたユニット又はモジュールに統合されうる。従って、構成要素、ユニット、又はモジュールとして特徴を表すことは、説明の簡略化のために特定の機能特徴を強調することが意図されており、個別のハードウェア、ファームウェア、又はソフトウェアの構成要素によるそのような特徴の実現は必ずしも必要ではない。いくつかの場合、様々なユニットは、1つ又は複数のプロセッサによって実行されるプログラマブル処理として実現されうる。
本明細書でモジュール、デバイス、又は構成要素として説明された特徴(例えば、図1及び2に示すクライアント4a乃至4e、オペレーティング・デバイス22、コマンド・プロセッサ・モジュール14、コマンド完了モジュール12a乃至e、コマンド・バッファ18、コマンド受信モジュール24、インタラプト制御モジュール16、デバイス実行モジュール20に関する特徴)は、統合論理デバイスにおいて集合的に、あるいは個別であるが相互運用可能な論理デバイスとして別々に実現されうる。様々な態様において、そのような構成要素(図1及び2に示すクライアント4a乃至4e、オペレーティング・デバイス22、コマンド・プロセッサ・モジュール14、コマンド完了モジュール12a乃至e、コマンド・バッファ18、コマンド受信モジュール24、インタラプト制御モジュール16、デバイス実行モジュール20)は、例えば集積回路チップ又はチップセットのような集積回路デバイスとして集合的に称されうる1つ又は複数の集積回路デバイスとして少なくとも部分的に形成されうる。そのような回路は、単一の集積回路チップ・デバイ又は複数の相互運用可能な集積回路チップ・デバイスにおいて提供され、任意の様々なアプリケーション及びデバイスにおいて用いられうる。
本明細書で説明された技術及び/又は構成要素(例えば、図1及び2に示すクライアント4a乃至4e、オペレーティング・デバイス22、コマンド・プロセッサ・モジュール14、コマンド完了モジュール12a乃至e、コマンド・バッファ18、コマンド受信モジュール24、インタラプト制御モジュール16、デバイス実行モジュール20)は、ハードウェア、ソフトウェア、ファームウェア、又はそれらの任意の組み合わせによって実現されうる。ソフトウェアによる実現の場合、この技術は、実行されるとプロセッサに上述した方法のうちの1つ又は複数を実行させる、コンピュータ読取可能媒体において符号化された命令を含むプログラム・コードを備えるコンピュータ読取媒体によって部分的に実現されうる。この場合、コンピュータ読取可能媒体は、例えば同期ダイナミック・ランダム・アクセス・メモリ(SDRAM)のようなランダム・アクセス・メモリ(RAM)、読取専用メモリ(ROM)、不揮発性ランダ・アクセス・メモリ(NVRAM)、電気的消去可能プログラマブル読取専用メモリ(EEPROM)、FLASHメモリ、磁気データ記憶媒体又は光学データ記憶媒体などを備えることができる。
本開示において様々な態様が説明された。これらの態様及び他の態様は、以下の特許請求の範囲の範囲内である。
Claims (40)
- オペレーティング・デバイスによって、1つ又は複数のクライアントからの、前記オペレーティング・デバイスによって実行されるコマンドを示す1つ又は複数のコマンド・インジケーションを受信することと、
前記オペレーティング・デバイスによって、前記1つ又は複数のクライアントからの、前記1つ又は複数のクライアントが実行の完了を待機している少なくとも1つのコマンドを示す少なくとも1つのコマンド完了インジケータを受信することと、
前記少なくとも1つのコマンド完了インジケータが受信された前記少なくとも1つのコマンドの実行の完了を示すインタラプトを生成することと
を備える方法。 - 前記インタラプトを生成することは、ジェネリック・インタラプトを生成することを含む、請求項1に記載の方法。
- 前記オペレーティング・デバイスによって実行される1つ又は複数のコマンドを受信することは、複数のクライアントのうちの少なくとも1つからの1つ又は複数のコマンドを受信することを含み、前記ジェネリック・インタラプトを生成することは、前記少なくとも1つのコマンド完了インジケータが受信された少なくとも1つのコマンドが実行を完了したことを示すインジケーションを前記複数のクライアントの各々へ送信することを含む、請求項1に記載の方法。
- 前記インタラプトを生成することは、実行の完了が前記インタラプトの生成の原因となった、少なくとも1つのコマンドを識別する少なくとも1つのコマンド識別子を提供することを含む、請求項1に記載の方法。
- 前記インタラプトは更に、前記1つ又は複数のクライアントのうちの少なくとも1つによって取得するために、実行の完了がインタラプトの生成の原因となった前記少なくとも1つのコマンドを識別する少なくとも1つのコマンド識別子をバッファに格納することを含む、請求項1に記載の方法。
- 前記1つ又は複数のクライアントからの前記1つ又は複数のコマンド・インジケーションを受信することは更に、前記1つ又は複数のクライアントが実行の完了を待機している少なくとも1つのコマンドを示す前記少なくとも1つのコマンド完了インジケータを受信することを含む、請求項1に記載の方法。
- 前記インタラプトを生成することは、クライアント指定インタラプトを生成することを含む、請求項1に記載の方法。
- 前記1つ又は複数のクライアントからの、前記少なくとも1つのコマンド完了インジケータが受信された発信元である、前記1つ又は複数のクライアントのうちの少なくとも1つのクライアントを識別する少なくとも1つのクライアント識別子を受信することを更に備える、請求項1に記載の方法。
- 前記インタラプトを生成することは、クライアント指定インタラプトを生成することを含み、前記クライアント指定インタラプトは、前記少なくとも1つのクライアント識別子に少なくとも部分的に基づく、請求項8に記載の方法。
- 前記オペレーティング・デバイスによって実行されるコマンドを示す少なくとも1つのコマンド・インジケーションを受信することは、前記少なくとも1つのコマンド完了インジケータと、受信された前記少なくとも1つのコマンド完了インジケータの発信元である前記1つ又は複数のクライアントのうちの少なくとも1つのクライアントを識別する少なくとも1つのクライアント識別子とを受信することを含み、前記インタラプトを生成することは、前記少なくとも1つのクライアント識別子に少なくとも部分的に基づいてクライアント指定インタラプトを生成することを含む、請求項1に記載の方法。
- コマンドを実行するように構成されたデバイス実行モジュールと、
1つ又は複数のクライアントからの、前記デバイス実行モジュールによって実行されるコマンドを示す1つ又は複数のコマンド・インジケーションを受信するように構成されたコマンド受信モジュールと、
前記1つ又は複数のクライアントからの、前記1つ又は複数のクライアントが実行の完了を待機している少なくとも1つのコマンドを示す少なくとも1つのコマンド完了インジケータを受信するように構成されたインタラプト制御モジュールと
を備えるデバイスであって、
前記インタラプト制御モジュールは、コマンド完了インジケータが受信された前記少なくとも1つのコマンドの実行が完了すると、前記コマンド完了インジケータが受信されたコマンドが実行を完了したことを示すインタラプトを生成するように構成された、デバイス。 - 前記インタラプト制御モジュールは、ジェネリック・インタラプトであるインタラプトを生成するように構成された、請求項11に記載のデバイス。
- 前記コマンド受信モジュールは、複数のクライアントのうちの少なくとも1つからの、前記コマンドを示す1つ又は複数のコマンド・インジケーションを受信するように構成され、インタラプト制御モジュールは、インタラプトを生成し、前記複数のクライアントの各々へ前記インタラプトを送信するように構成された、請求項11に記載のデバイス。
- 前記インタラプト制御モジュールは、前記インタラプトを生成するように構成され、前記インタラプトは、その実行の完了が前記インタラプトの生成の原因となった前記少なくとも1つのコマンドを識別する少なくとも1つのコマンド識別子を含む、請求項11に記載のデバイス。
- 前記インタラプト制御モジュールは、前記インタラプトを生成し、前記1つ又は複数のクライアントのうちの少なくとも1つによって取得するために、実行の完了が前記インタラプトの生成の原因となった前記少なくとも1つのコマンドを識別する少なくとも1つのコマンド識別子を格納するように構成された、請求項11に記載のデバイス。
- 前記コマンド受信モジュールは、前記1つ又は複数のクライアントからの、前記少なくとも1つのコマンド完了インジケータを更に含む前記1つ又は複数のコマンド・インジケーションを受信するように構成された、請求項11に記載のデバイス。
- 前記インタラプト制御モジュールは、クライアント指定インタラプトであるインタラプトを生成するように構成された、請求項11に記載のデバイス。
- 前記インタラプト制御モジュールは更に、受信された前記少なくとも1つのコマンド完了インジケータの発信元である前記1つ又は複数のクライアントのうちの少なくとも1つのクライアントを識別する少なくとも1つのクライアント識別子を受信するように構成された、請求項11に記載のデバイス。
- 前記インタラプト制御モジュールは前記インタラプトを生成するように構成され、前記インタラプトはクライアント指定インタラプトであり、前記クライアント指定インタラプトは、前記少なくとも1つのクライアント識別子に少なくとも部分的に基づく、請求項18に記載のデバイス。
- 前記コマンド受信モジュールは、1つ又は複数のクライアントからの、受信された前記コマンド・インジケーションの発信元であるクライアントのアイデンティティを示す少なくとも1つのクライアント識別子と少なくとも1つのコマンド完了インジケータとを更に含むコマンド・インジケーションを受信するように構成された、請求項11に記載のデバイス。
- プログラマブル・プロセッサに、
1つ又は複数のクライアントからの、前記プログラマブル・プロセッサによって実行されるコマンドを示す1つ又は複数のコマンド・インジケーションを受信させ、
前記1つ又は複数のクライアントからの、前記1つ又は複数のクライアントのうちの少なくとも1つが実行の完了を待機している少なくとも1つのコマンドを示す少なくとも1つのコマンド完了インジケータを受信させ、
前記少なくとも1つのコマンド完了インジケータが受信された少なくとも1つのコマンドの実行の完了を示すインタラプトを生成させる
ための命令を備えるコンピュータ読取可能記憶媒体。 - 前記インタラプトはジェネリック・インタラプトである、請求項21に記載のコンピュータ読取可能記憶媒体。
- 前記1つ又は複数のコマンド・インジケーションは複数のクライアントから受信され、前記インタラプトは、前記1つ又は複数のクライアントのうちの少なくとも1つからのコマンド完了インジケータが受信された少なくとも1つのコマンドが実行を完了したことを示し、前記命令は、前記プログラマブル・プロセッサに、前記複数のクライアントの各々へ前記インタラプトを送信させる、請求項21に記載のコンピュータ読取可能記憶媒体。
- 前記インタラプトは、実行の完了が前記インタラプトの生成の原因となった少なくとも1つのコマンドを識別する少なくとも1つのコマンド識別子を含む、請求項21に記載のコンピュータ読取可能記憶媒体。
- 前記プログラマブル・プロセッサに、前記インタラプトを生成すると、少なくとも1つのコマンドの実行の完了が前記インタラプトの生成の原因となった前記少なくとも1つのコマンドを識別する少なくとも1つのコマンド識別子をバッファに収納させるための命令を更に備える、請求項21に記載のコンピュータ読取可能記憶媒体。
- 前記1つ又は複数のクライアントから受信された前記1つ又は複数のコマンド・インジケーションは更に、前記少なくとも1つのコマンド完了インジケータを含む、請求項21に記載のコンピュータ読取可能記憶媒体。
- 前記インタラプトはクライアント指定インタラプトである、請求項21に記載のコンピュータ読取可能記憶媒体。
- 前記プログラマブル・プロセッサに、
前記1つ又は複数のクライアントからの、受信されたコマンド完了インジケータの発信元であるクライアントを識別する少なくとも1つのクライアント識別子を受信させる
ための命令を更に備える、請求項21に記載のコンピュータ読取可能記憶媒体。 - 前記インタラプトはクライアント指定インタラプトであり、前記クライアント指定インタラプトは、前記少なくとも1つのクライアント識別しに少なくとも部分的に基づく、請求項29に記載のコンピュータ読取可能記憶媒体。
- 前記1つ又は複数のコマンド・インジケーションは更に、前記少なくとも1つのコマンド完了インジケータを含み、前記1つ又は複数のコマンド・インジケーションは更に、受信された前記1つ又は複数のコマンド・インジケーションの発信元であるクライアントを識別する少なくとも1つのクライアント識別子を含み、前記インタラプトは、前記少なくとも1つのクライアント識別子に少なくとも部分的に基づくクライアント指定インタラプトである、請求項21に記載のコンピュータ読取可能記憶媒体。
- 1つ又は複数のクライアントからの、デバイスによって実行されるコマンドを示す1つ又は複数のコマンド・インジケーションを受信するための手段と、
前記1つ又は複数のクライアントからの、前記1つ又は複数のクライアントが実行の完了を待機している前記1つ又は複数のコマンドのうちの少なくとも1つを示す少なくとも1つのコマンド完了インジケータを受信するための手段と、
前記少なくとも1つのコマンド完了インジケータが受信された少なくとも1つのコマンドの実行の完了を示すインタラプトを生成するための手段と
を備えるデバイス。 - 前記生成するための手段は、ジェネリック・インタラプトを生成するための手段を備える、請求項31に記載のデバイス。
- 前記1つ又は複数のコマンド・インジケーションを受信するための手段は、複数のクライアントからの前記1つ又は複数のコマンド・インジケーションを受信するための手段を備え、前記インタラプトを生成するための手段は、前記複数のクライアントの各々へ前記インタラプトを送信するための手段を備え、前記インタラプトは、コマンド完了インジケータが受信された少なくとも1つのコマンドが実行を完了したことを示す、請求項31に記載のデバイス。
- 前記インタラプトを生成するための手段は、その実行の完了が前記インタラプトの生成の原因となったコマンドを識別する少なくとも1つのコマンド識別子を含むインタラプトを生成するための手段を備える、請求項31に記載のデバイス。
- 前記インタラプトを生成するための手段は、前記インタラプトを生成すると、その実行の完了が前記インタラプトの生成の原因となったコマンドを示す少なくとも1つのインジケーションをバッファに収納するための手段を備える、請求項31に記載のデバイス。
- 前記1つ又は複数のコマンド・インジケーションは、前記少なくとも1つのコマンド完了インジケータを含む、請求項31に記載のデバイス。
- 前記インタラプトを生成するための手段は、クライアント指定インタラプトを生成するための手段を備える、請求項31に記載のデバイス。
- 前記1つ又は複数のクライアントからの、少なくとも1つのコマンド完了インジケータが受信されたコマンドを識別する少なくとも1つのクライアント識別子を受信するための手段を更に備える、請求項31に記載のデバイス。
- 前記インタラプトを生成するための手段は、クライアント指定インタラプトを生成するための手段を備え、前記クライアント指定インタラプトは、前記少なくとも1つのクライアント識別子に少なくとも部分的に基づく、請求項38に記載のデバイス。
- 前記1つ又は複数のコマンド・インジケーションは更に、前記少なくとも1つのコマンド完了インジケータと、受信された前記1つ又は複数のコマンド・インジケーションの発信元であるクライアントを識別する少なくとも1つのクライアント識別子とを更に含む、請求項31に記載のデバイス。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/861,590 | 2010-08-23 | ||
US12/861,590 US8677028B2 (en) | 2010-08-23 | 2010-08-23 | Interrupt-based command processing |
PCT/US2011/048863 WO2012027407A1 (en) | 2010-08-23 | 2011-08-23 | Interrupt-based command processing |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2013539577A true JP2013539577A (ja) | 2013-10-24 |
Family
ID=44583458
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013526107A Pending JP2013539577A (ja) | 2010-08-23 | 2011-08-23 | インタラプト・ベースのコマンド処理 |
Country Status (6)
Country | Link |
---|---|
US (1) | US8677028B2 (ja) |
EP (1) | EP2609505A1 (ja) |
JP (1) | JP2013539577A (ja) |
KR (1) | KR20130046440A (ja) |
CN (1) | CN103140835A (ja) |
WO (1) | WO2012027407A1 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8677028B2 (en) * | 2010-08-23 | 2014-03-18 | Qualcomm Incorporated | Interrupt-based command processing |
KR20210094178A (ko) | 2020-01-20 | 2021-07-29 | 삼성전자주식회사 | 직렬로 연결된 전자 장치들 사이에서 컴플리션을 조기에 전송하기 위한 컴퓨팅 시스템 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH04354047A (ja) * | 1991-05-31 | 1992-12-08 | Nec Corp | 負荷分散制御方式 |
JP2002049606A (ja) * | 2000-08-04 | 2002-02-15 | Nec Saitama Ltd | マルチcpuシステム |
JP2003167836A (ja) * | 2001-12-04 | 2003-06-13 | Fujitsu Ltd | デバイスドライバ |
JP2006127300A (ja) * | 2004-10-29 | 2006-05-18 | Hitachi Global Storage Technologies Netherlands Bv | ホストと記憶デバイスとの間における通信方法、記憶デバイス、ホスト、記憶デバイスとホストを備えるシステム |
US7130932B1 (en) * | 2002-07-08 | 2006-10-31 | Adaptec, Inc. | Method and apparatus for increasing the performance of communications between a host processor and a SATA or ATA device |
US20090199030A1 (en) * | 2008-02-01 | 2009-08-06 | Arimilli Ravi K | Hardware Wake-and-Go Mechanism for a Data Processing System |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5818539A (en) | 1996-03-29 | 1998-10-06 | Matsushita Electric Corporation Of America | System and method for updating a system time constant (STC) counter following a discontinuity in an MPEG-2 transport data stream |
US5828416A (en) | 1996-03-29 | 1998-10-27 | Matsushita Electric Corporation Of America | System and method for interfacing a transport decoder to a elementary stream video decorder |
US6085277A (en) * | 1997-10-15 | 2000-07-04 | International Business Machines Corporation | Interrupt and message batching apparatus and method |
WO2000062189A2 (en) * | 1999-04-12 | 2000-10-19 | Reciprocal, Inc. | System and method for data rights management |
US6823467B1 (en) | 2000-02-25 | 2004-11-23 | Sun Microsystems, Inc. | Method and apparatus for arbitrary resolution interval timeouts |
JP2002297336A (ja) * | 2001-03-30 | 2002-10-11 | Seiko Instruments Inc | プリンタシステム |
US6952749B2 (en) * | 2001-05-02 | 2005-10-04 | Portalplayer, Inc. | Multiprocessor interrupt handling system and method |
US7525549B1 (en) | 2004-12-16 | 2009-04-28 | Nvidia Corporation | Display balance/metering |
US7831749B2 (en) * | 2005-02-03 | 2010-11-09 | Solarflare Communications, Inc. | Including descriptor queue empty events in completion events |
US7702835B2 (en) * | 2005-02-03 | 2010-04-20 | Oracle America, Inc. | Tagged interrupt forwarding |
US20080155571A1 (en) | 2006-12-21 | 2008-06-26 | Yuval Kenan | Method and System for Host Software Concurrent Processing of a Network Connection Using Multiple Central Processing Units |
US8255577B2 (en) * | 2007-04-26 | 2012-08-28 | Hewlett-Packard Development Company, L.P. | I/O forwarding technique for multi-interrupt capable devices |
FR2923922A1 (fr) | 2007-11-16 | 2009-05-22 | France Telecom | Procede de controle d'au moins un processus applicatif et produit programme d'ordinateur correspondant |
US20100262773A1 (en) * | 2009-04-08 | 2010-10-14 | Google Inc. | Data striping in a flash memory data storage device |
US8489803B2 (en) * | 2009-12-14 | 2013-07-16 | Smsc Holdings S.A.R.L. | Efficient use of flash memory in flash drives |
US8677028B2 (en) * | 2010-08-23 | 2014-03-18 | Qualcomm Incorporated | Interrupt-based command processing |
-
2010
- 2010-08-23 US US12/861,590 patent/US8677028B2/en not_active Expired - Fee Related
-
2011
- 2011-08-23 JP JP2013526107A patent/JP2013539577A/ja active Pending
- 2011-08-23 KR KR1020137007382A patent/KR20130046440A/ko not_active Application Discontinuation
- 2011-08-23 EP EP11754576.4A patent/EP2609505A1/en not_active Withdrawn
- 2011-08-23 CN CN201180045416XA patent/CN103140835A/zh active Pending
- 2011-08-23 WO PCT/US2011/048863 patent/WO2012027407A1/en active Application Filing
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH04354047A (ja) * | 1991-05-31 | 1992-12-08 | Nec Corp | 負荷分散制御方式 |
JP2002049606A (ja) * | 2000-08-04 | 2002-02-15 | Nec Saitama Ltd | マルチcpuシステム |
JP2003167836A (ja) * | 2001-12-04 | 2003-06-13 | Fujitsu Ltd | デバイスドライバ |
US7130932B1 (en) * | 2002-07-08 | 2006-10-31 | Adaptec, Inc. | Method and apparatus for increasing the performance of communications between a host processor and a SATA or ATA device |
JP2006127300A (ja) * | 2004-10-29 | 2006-05-18 | Hitachi Global Storage Technologies Netherlands Bv | ホストと記憶デバイスとの間における通信方法、記憶デバイス、ホスト、記憶デバイスとホストを備えるシステム |
US20090199030A1 (en) * | 2008-02-01 | 2009-08-06 | Arimilli Ravi K | Hardware Wake-and-Go Mechanism for a Data Processing System |
Also Published As
Publication number | Publication date |
---|---|
EP2609505A1 (en) | 2013-07-03 |
KR20130046440A (ko) | 2013-05-07 |
WO2012027407A1 (en) | 2012-03-01 |
US8677028B2 (en) | 2014-03-18 |
CN103140835A (zh) | 2013-06-05 |
US20120047285A1 (en) | 2012-02-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110647480B (zh) | 数据处理方法、远程直接访存网卡和设备 | |
KR102245247B1 (ko) | 트리거된 동작을 이용하는 gpu 원격 통신 | |
US7953915B2 (en) | Interrupt dispatching method in multi-core environment and multi-core processor | |
CN115964319A (zh) | 远程直接内存访问的数据处理方法及相关产品 | |
CN110995817B (zh) | 请求回调方法、装置及客户端设备 | |
US9727521B2 (en) | Efficient CPU mailbox read access to GPU memory | |
CN116521096B (zh) | 存储器访问电路及存储器访问方法、集成电路和电子设备 | |
US8756604B2 (en) | Async wrapper handling execution of asynchronous operations for synchronous and asynchronous routines | |
CN112559403B (zh) | 一种处理器及其中的中断控制器 | |
JP2013539577A (ja) | インタラプト・ベースのコマンド処理 | |
CN114584618A (zh) | 信息交互方法、装置、设备、存储介质和系统 | |
JP2024024607A (ja) | メモリーアクセスのための集積回路、処理方法、電子機器及び媒体 | |
US20230153153A1 (en) | Task processing method and apparatus | |
CN116243983A (zh) | 处理器、集成电路芯片、指令处理方法、电子设备和介质 | |
US8706923B2 (en) | Methods and systems for direct memory access (DMA) in-flight status | |
WO2022199357A1 (zh) | 数据处理方法及装置、电子设备、计算机可读存储介质 | |
CN113220608A (zh) | 一种NVMe命令处理器及其处理方法 | |
CN116601616A (zh) | 一种数据处理装置、方法及相关设备 | |
WO2021061374A1 (en) | Multi-core processor and inter-core data forwarding method | |
CN110764710A (zh) | 低延迟高iops的数据访问方法与存储系统 | |
US20190065402A1 (en) | Direct memory access controller, corresponding device and method for receiving, storing and processing data | |
CN117389915B (zh) | 缓存系统、读命令调度方法、片上系统及电子设备 | |
US20240231613A9 (en) | Data reduction device, data reduction method, and system including data reduction device | |
US20240134521A1 (en) | Data reduction device, data reduction method, and system including data reduction device | |
WO2023173276A1 (en) | Universal core to accelerator communication architecture |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20140227 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20140401 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20140909 |