JP2014232382A - 制御装置、制御方法及び制御プログラム - Google Patents

制御装置、制御方法及び制御プログラム Download PDF

Info

Publication number
JP2014232382A
JP2014232382A JP2013112314A JP2013112314A JP2014232382A JP 2014232382 A JP2014232382 A JP 2014232382A JP 2013112314 A JP2013112314 A JP 2013112314A JP 2013112314 A JP2013112314 A JP 2013112314A JP 2014232382 A JP2014232382 A JP 2014232382A
Authority
JP
Japan
Prior art keywords
interrupt
task
processing
command
control
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.)
Granted
Application number
JP2013112314A
Other languages
English (en)
Other versions
JP6123487B2 (ja
Inventor
剛彦 村田
Takehiko Murata
剛彦 村田
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2013112314A priority Critical patent/JP6123487B2/ja
Priority to US14/267,982 priority patent/US9710409B2/en
Publication of JP2014232382A publication Critical patent/JP2014232382A/ja
Application granted granted Critical
Publication of JP6123487B2 publication Critical patent/JP6123487B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/24Handling requests for interconnection or transfer for access to input/output bus using interrupt
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication

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)

Abstract

【課題】複数のCPUコアなど複数の処理装置を有効に利用すること。【解決手段】PCIデバイス50a及び50bがメモリ30にMSIメッセージを書き込み、CPUコア21〜24でそれぞれ実行されるポーリングルーチン51〜54がメモリ30をポーリングする。また、ポーリングルーチン51〜54は、タスク、スレッドの切れ間とアイドル中に割込み要因をポーリングし、最も負荷の低いCPUコアに割込み処理を行わせる。また、IOタスク71〜74は、他のIOタスクとのタスク間通信をコマンドキューを用いて行う。【選択図】図2

Description

本発明は、制御装置、制御方法及び制御プログラムに関する。
従来、CPU(Central Processing Unit:中央処理装置)は、割込みコントローラから割込みを受信すると、割込み要因に対応する割込み処理ハンドラを起動して割込み処理を行う。
図9は、従来の割込み処理の一例を示す図である。図9は、デバイスからの割込みに対してIO(入出力)処理を行う場合を示している。図9に示すように、デバイス91a及び91bからのMSI(Message Signal Interrupt)は、割込みコントローラ92経由でCPU93に対して割込みとして通知される(1)。
すると、CPU93は、割込みを処理するため、割込み要因に対応した割込み処理ハンドラを呼び出す(2)。具体的には、CPU93は、デバイス91aから割込み通知を受けた場合には割込み処理ハンドラ94aを呼び出し、デバイス91bから割込み通知を受けた場合には割込み処理ハンドラ94bを呼び出す。
すると、割込み処理ハンドラ94a又は94bは、割込み要因のクリアなどハードウェアに対する処理を行う(3)。そして、割込み処理ハンドラ94a又は94bは、割込み要因に対応するコマンド95bをIOタスク95のコマンドキュー95aの最後尾に接続する(4)。そして、IOタスク95が、コマンドキュー95aの先頭のコマンド95bを処理する。
また、マルチプロセッサシステムにおいて、割込みの存在を示す情報を格納するためにポーリングメモリを設け、指定されたプロセッサがポーリングメモリを調べる従来技術がある(例えば、特許文献1参照。)。また、PCI(Peripheral Component Interconnect)デバイスによりメモリに書き込まれたMSIをブリッジ装置が検出して新たなMSIを発行し、別のPCIデバイスにMSIを受信させる従来技術がある(例えば、特許文献2参照。)。
特開2006−216042号公報 特開2010−117872号公報
近年、RAID(Redundant Arrays of Inexpensive Disks)装置などの制御装置に組み込まれるCPUは複数のCPUコアを有するようになってきている。したがって、制御装置の性能向上を図るために、複数のCPUコアを有効に利用して割込み処理を行うことが課題となっている。
本発明は、1つの側面では、複数のCPUコアなど複数の処理装置を有効に利用して割込み処理を行う制御装置を提供することを目的とする。
本願の開示する制御装置は、1つの態様において、複数の処理装置を備えた制御装置で、全ての処理装置が、メモリへの書き込みにより通知された割込み要因をポーリング監視し、前記割込み要因に対応する割込み処理を行う。
1実施態様によれば、複数の処理装置を有効に利用する制御装置を提供することができる。
図1は、実施例に係るRAID装置のハードウェア構成を示す図である。 図2は、実施例に係るRAID装置によるコマンド処理のフローを示す図である。 図3は、MSIメセージのメモリへの書き込みを説明するための図である。 図4は、ポーリングルーチンの処理フローを示すフローチャートである。 図5Aは、コマンドキューによるタスク間通信(通常通信)を説明するための図である。 図5Bは、コマンドキューによるタスク間通信(高速通信)を説明するための図である。 図6は、スレッドのスケジューリングの一例を示す図である。 図7Aは、コマンドキューによるタスク間通信の送信側の処理フローを示すフローチャートである。 図7Bは、コマンドキューによるタスク間通信の受信側の処理フローを示すフローチャートである。 図8Aは、一般的な割込みポーリング方式を説明するための図である。 図8Bは、実施例に係るポーリングルーチンによるポーリング方式を説明するための図である。 図9は、従来の割込み処理の一例を示す図である。
以下に、本願の開示する制御装置、制御方法及び制御プログラムの実施例を図面に基づいて詳細に説明する。なお、この実施例は開示の技術を限定するものではない。
まず、実施例に係るRAID装置のハードウェア構成について説明する。図1は、実施例に係るRAID装置のハードウェア構成を示す図である。図1に示すように、RAID装置1は、制御装置2と複数のディスク装置3とを有する。
制御装置2は、RAID装置1を制御する装置であり、ディスク装置3は、データを記憶する装置である。制御装置2は、HBA(Host Bus Adapter)10と、CPU20と、メモリ30と、IO制御モジュール40とを有する。
HBA10は、ホスト装置4とのインタフェースであり、ホスト装置4からコマンドや書き込みデータなどを受け取る。また、HBA10は、ディスク装置3から読み出されたデータなどをホスト装置4へ返す。ここで、ホスト装置4は、サーバなどのコンピュータである。
CPU20は、4つのCPUコア21〜24を有する。なお、ここでは、CPU20が4つのCPUコア21〜24を有する場合について説明するが、CPU20は任意の個数のCPUコアを有することができる。
CPUコア21〜24は、リアルタイムOS(Operating System)やリアルタイムOS上で動作するファームウェアを実行する処理装置である。CPUコア21〜24は、SMP(Symmetric Multi-Processing:対称型マルチプロセッシング)方式で使用される。ここで、SMP方式とは、全ての処理装置に対して対称的、均一的に処理が割り付けられる複数処理装置による並列処理方式である。
メモリ30は、ホスト装置4からのコマンド及びデータ、ディスク装置3から読み出されたデータなどを記憶する。ここで、コマンドは、ディスク装置3へのデータの書き込みを指示する書き込みコマンドや、ディスク装置3からのデータの読み出しを指示する読み出しコマンドなどである。
IO制御モジュール40は、ディスク装置3へのデータの読み書きを制御する。HBA10、CPU20、メモリ30及びIO制御モジュール40は、PCIバス5で接続される。
次に、実施例に係るRAID装置1によるコマンド処理のフローについて説明する。図2は、実施例に係るRAID装置1によるコマンド処理のフローを示す図である。図2に示すように、CPUコア21〜24とIOタスク71〜74がそれぞれ結びつけられる(1)。
すなわち、IOタスク71〜74は、CPUコア21〜24でそれぞれ実行される。同様に、割込み処理ハンドラ61a〜64a、割込み処理ハンドラ61b〜64b、ポーリングルーチン51〜54は、CPUコア21〜24でそれぞれ実行される。
なお、各CPUコアは、IOタスク以外にもネットワーク制御タスクなど他のタスクを実行する。複数のタスクの実行の制御は、タスク優先度に基づいてリアルタイムOSによって行われる。
PCIデバイス50a及び50bは、MSIの割込み先、すなわち、MSIメッセージの書き込み先をメモリ30とする(2)。ここで、PCIデバイス50a及び50bは、HBA10やディスク装置3などである。
また、ここでは、2台のPCIデバイス50a及び50bを示すが、任意の台数のPCIデバイスがMSIメッセージをメモリ30に書き込む。各PCIデバイスは、メモリ30内のPCIデバイス毎に定められた領域にMSIメッセージを書き込む。
図3は、MSIメセージのメモリ30への書き込みを説明するための図である。図3に示すように、MSIをサポートするデバイス91は、割込み要因が発生すると、一般的には、割込みコントローラ92が有するメモリ92aにMSIメッセージを書き込む。すると、割込みコントローラ92がCPU93へ割込みを通知する。これに対して、RAID装置1では、PCIデバイス50は、メモリ30の特定のアドレスで指定される領域にMSIメッセージを書き込む。
図2に戻って、ポーリングルーチン51〜54は、メモリ30をポーリングする(3)。なお、ポーリングルーチン51〜54は、同様の処理を行うため、以下の説明では、ポーリングルーチン51の処理について説明する。
ポーリングルーチン51は、MSIメッセージを見つけると、MSIメッセージに含まれる割込み要因に対応する割込み処理ハンドラ61a又は61bを呼び出す(4)。なお、ここでは、2つの割込み処理ハンドラ61a及び61bを示すが、割込み要因の数の割込み処理ハンドラがある。
そして、割込み処理ハンドラ61a又は61bは、割込み処理後に、割込み要因に対応するコマンド80をIOタスク71のコマンドキュー71aに接続する(5)。そして、IOタスク71が、コマンドキュー71aの先頭のコマンド80から処理する(6)。なお、コマンドキュー71aは、コマンド80が接続されるキューである。
このように、CPUコア21〜24でそれぞれ動作するポーリングルーチン51〜54がメモリ30に書き込まれた全てのMSIメッセージをポーリングする。したがって、CPUコア21〜24の中で割込み処理が偏ることなく、割込み処理の負荷を分散させることができる。
また、PCIデバイス50a及び50bがMSIメッセージをメモリ30に書き込み、ポーリングルーチン51〜54がメモリ30をポーリングしてMSIメッセージを見つけると割込み処理ハンドラを呼び出す。また、CPU20のクロックは、割込みコントローラ92のクロックと比較して高速であり、ポーリングルーチン51〜54は、割込みコントローラ92より高速に動作する。したがって、制御装置2は、割込みコントローラ92を用いる場合と比較して、MSIを高速に処理することができ、RAID装置1の性能を向上することができる。
次に、ポーリングルーチン51の処理フローについて説明する。図4は、ポーリングルーチン51の処理フローを示すフローチャートである。なお、ポーリングルーチン52〜54の処理フローも同様である。
図4に示すように、ポーリングルーチン51は、メモリ30をポーリングしてMSI割込み要因すなわちMSIメッセージがあるか否かを判定する(ステップS1)。その結果、MSI割込み要因がない場合には、ポーリングルーチン51は、処理を終了する。
一方、MSI割込み要因がある場合には、ポーリングルーチン51は、割込みを処理するCPUコアがアサインされているか否かを判定する(ステップS2)。その結果、CPUコアがアサインされている場合には、ポーリングルーチン51は、ステップS5に進む。ここで、CPUコアがアサインされている場合とは、例えば、特定の割込み要因は特定のCPUコアで処理する必要がある場合や、別のCPUコアで動作したポーリングルーチンによってCPUコアがアサインされた場合である。
CPUコアがアサインされていない場合には、ポーリングルーチン51は、IO管理モジュールに依頼して最も負荷の低いCPUコアを特定してもらい(ステップS3)、特定してもらったCPUコアに割込み処理をアサインする(ステップS4)。
ここで、IO管理モジュールは、コマンド処理を管理するモジュールである。IO管理モジュールは、例えば、コマンドキューにコマンドを接続する際にコマンド種別に基づいてCPUコアごとに処理負荷に関する点数(低負荷:0、中負荷:1、高付加:2など)を加え、コマンドを処理する際に点数を引く。そして、IO管理モジュールは、点数が最も低いCPUコアを負荷が最も低いCPUコアとして特定する。
そして、ポーリングルーチン51は、アサインされたCPUコアは自分が動作するCPUコアであるか否かを判定し(ステップS5)、自分が動作するCPUコアでない場合には、ステップS1に戻って次のMSI割込み要因を処理する。
一方、アサインされたCPUコアが自分が動作するCPUコアである場合には、ポーリングルーチン51は、割込み要因に基づいて割込み処理ハンドラ61a又は61bを呼び出し(ステップS6)、ステップS1に戻って次のMSI割込み要因を処理する。
このように、ポーリングルーチン51は、最も負荷の低いCPUコアに割込み処理をアサインすることで、CPUコア間の処理の負荷を均等化することができる。
次に、IOタスク間の通信について説明する。タスク間の同期、通信には通常はセマフォが用いられる。すなわち、送信側のタスクがセマフォを受信側のタスクに渡すことによって、タスク間の同期、通信が行われる。
しかしながら、複数のCPUコアがSMP方式で使用される場合には、セマフォで通信する際に、CPUコアは、他のCPUコアの状態を知るためにCPUコア間通信を行う。具体的には、CPUコアは、タスクがセマフォを取得した際に、タスクを動作させてよいかを他のCPUコアに確認するために、CPUコア間通信を行う。このため、SMP方式では、セマフォ性能が悪くなり、装置の性能に影響する。
そこで、制御装置2は、セマフォを用いることなくタスク間通信を行う。制御装置2は、コマンドキューによりタスク間通信を行う。図5A及び図5Bは、コマンドキューによるタスク間通信を説明するための図である。図5Aは、通常通信の場合を示し、図5Bは、通常通信より高速な高速通信の場合を示す。
図5Aに示すように、IOタスク71は、コマンドキュー71aの先頭から順番にコマンドを処理する(1)。ここで、IOタスク71は、処理の高速化のために、タスク内のコンテクスト(レジスタ空間、マッピング、スタックなど)を共有する複数のスレッドに分割されてCPUコア21で実行される。
すなわち、タスク切替の際にはタスク用コンテクスト全体の切替が必要になるため、タスク切替では遅延が発生する。一方、スレッド切替の際にはコンテクストの切替が不要であるため、スレッド切替ではタスク切替と比較して高速な切替が可能となる。
各コマンドは、どのスレッドにより処理されるかが予め定められており、処理されるスレッドの情報を宛先スレッドとして有する。図5Aでは、コマンドキュー71aの先頭のコマンド80はスレッドAで処理され、コマンドキュー71aの2番目のコマンド80はスレッドBで処理される。
すなわち、コマンドキュー71aの先頭のコマンド80は、宛先スレッドの情報としてスレッドAを有し、コマンドキュー71aの2番目のコマンド80は、宛先スレッドの情報としてスレッドBを有する。
各タスクは、OSが有するタスクスケジューラとは別に、タスク内にスレッドをスケジューリングするスレッドスケジューラとコマンドキューとを有する。スレッドスケジューラは、コマンドキューにつながっている順番にコマンドの宛先スレッドを呼び出し、1つのコマンドのスレッド内での処理が完了してから次のコマンドの処理を開始する。
図6は、スレッドのスケジューリングの一例を示す図である。図6に示すように、スレッドA、スレッドB及びスレッドCに分割されてCPUコアで実行されるタスクAは、他のタスクBとともにOSによりスケジュールされる。
一方、スレッドA、スレッドB及びスレッドCは、タスクA内のスレッドスケジューラによってスケジュールされ、図6に示す例では、スレッドA、スレッドB、スレッドCの順番で実行される。
図5Aに戻って、コマンド処理中にIOタスク72と通信する要件が発生した場合は、スレッドAは、IOタスク72のコマンドキュー72aの最後にコマンド80を接続する(2)。そして、IOタスク72のスレッドBの実行後、IOタスク72のスレッドAが、IOタスク71のスレッドAがIOタスク72のコマンドキュー72aの最後に接続したコマンド80を実行することで(3)、コマンドキューを使用したタスク間通信が実現される。
一方、図5Bでは、コマンド処理中にIOタスク72と通信する要件が発生した場合は、IOタスク71のスレッドAは、IOタスク72のコマンドキュー72aの先頭にコマンド80を接続する(2)。
このため、IOタスク72のスレッドAは、IOタスク72のスレッドBの実行前に、IOタスク71のスレッドAがIOタスク72のコマンドキュー72aの先頭に接続したコマンド80を実行する(3)。したがって、図5Bに示すタスク間通信は、図5Aに示したタスク間通信と比較して高速なタスク間通信を実現することができる。
なお、ここでは、IOタスク間の通信にコマンドキューを使用した場合について説明したが、図2に示した割込み処理ハンドラは、コマンドをコマンドキューに接続することで、IOタスクとコマンドキューを用いて通信を行っている。すなわち、コマンドキューを用いた通信は、割込み処理ハンドラとタスクとの間の通信にも用いられる。
次に、コマンドキューによるタスク間通信の処理フローについて説明する。図7Aは、コマンドキューによるタスク間通信の送信側の処理フローを示すフローチャートであり、図7Bは、コマンドキューによるタスク間通信の受信側の処理フローを示すフローチャートである。
送信側のタスクは、コマンド処理中に他のタスクと通信する要件が発生すると、図7Aに示すように、通信の優先度が高いか否かを判定する(ステップS11)。その結果、通信の優先度が高くない場合、すなわち、通常通信である場合には、送信側のタスクは、通信先のタスクのコマンドキューの最後尾にコマンドを接続する(ステップS12)。
これに対して、通信の優先度が高い場合、すなわち、高速通信である場合には、送信側のタスクは、通信先のタスクのコマンドキューの先頭にコマンドを接続する(ステップS13)。
このように、送信側のタスクが、通信先のタスクのコマンドキューにコマンドを接続することによって、コマンドキューを用いたタスク間通信を実現することができる。
受信側のタスクは、図7Bに示すように、タスク内のコマンドキューにコマンドが接続されているか否かを判定する(ステップS21)。その結果、コマンドキューにコマンドが接続されていない場合には、受信側のタスクは、コマンドキューにコマンドが接続されるまでステップS21を繰り返す。
これに対して、コマンドキューにコマンドが接続されている場合には、受信側のタスクは、コマンドキューの先頭のコマンドを実行し(ステップS22)、ステップS21に戻る。
このように、受信側のタスクが、送信側のタスクによりコマンドキューに接続されたコマンドを実行することによって、コマンドキューを用いたタスク間通信を実現することができる。
次に、各ポーリングルーチンによる割込み要因のポーリング方式について説明する。図8Aは、一般的な割込みポーリング方式を説明するための図であり、図8Bは、実施例に係るポーリングルーチンによるポーリング方式を説明するための図である。
図8Aに示すように、一般的には、定期的なタイマ割込みによりポーリングが行われる。ここで、タイマ割込みによるポーリング処理は、最も高い優先度で実行される。しかしながら、割込みポーリング方式には、チェックする周期が長い場合、割込み要因の発生から検出までに時間を要し、チェックする周期が短い場合、CPU負荷が高くなり他の処理に支障が生じるという問題がある。
そこで、実施例に係るポーリングルーチンは、定期的なタイマ割込みによりポーリングを行うのではなく、リアルタイムOSの特性を活かし、図8Bに示すように、タスクの切れ間、スレッドの切れ間及びアイドル中に割込み要因をポーリングする。
したがって、実施例に係るポーリングルーチンは、割込みのリアルタイム性を確保しながら、割込み資源と割込みコントローラ92を使用しなくても効率的に割込み要因をチェックすることができる。
図8Bでは、タスクAとタスクBとの切れ間85、タスクBとアイドルとの切れ間86、アイドル中87及びスレッドA−1とスレッドA−2との切れ間88にポーリングが行われる。
上述してきたように、実施例では、PCIデバイス50a及び50bがメモリ30にMSIメッセージを書き込み、CPUコア21〜24でそれぞれ実行されるポーリングルーチン51〜54がメモリ30をポーリングする。したがって、制御装置2は、全てのCPUコア21〜24を有効に利用して割込みを処理することができる。
また、実施例では、ポーリングルーチン51〜54は、タスクの切れ間、スレッドの切れ間及びアイドル中に割込み要因をポーリングする。したがって、制御装置2は、割込みのリアルタイム性を確保しながら、効率的に割込みを処理することができる。
また、実施例では、ポーリングルーチン51〜54は、最も負荷の低いCPUコアに割込み処理を行わせる。したがって、制御装置2は、CPUコア21〜24の負荷を均等化することができる。
また、実施例では、IOタスク71〜74は、他のIOタスクとのタスク間通信をコマンドキューを用いて行う。したがって、制御装置2は、セマフォを用いることなくIOタスク間で通信を行うことができ、RAID装置1の性能に悪影響を与えることなくIOタスク間通信を行うことができる。
なお、実施例では、CPUが有する複数のCPUコアでそれぞれ動作する複数のポーリングルーチンがポーリングする場合について説明した。しかしながら、本発明はこれに限定されるものではなく、例えば単一コアの複数のCPUなど複数の処理装置でそれぞれ動作する複数のポーリングルーチンがポーリングする場合にも同様に適用することができる。
また、実施例では、RAID装置について説明したが、本発明はこれに限定されるものではなく、他のストレージ装置の制御装置など複数CPUコアを有するCPUを用いる他の装置にも同様に適用することができる。
また、実施例では、制御装置2について説明したが、制御装置2は、ポーリングルーチン及び割込み処理ハンドラを有する制御プログラムがCPUコアにより実行されることにより実現される。CPUコアにより実行される制御プログラムは、DVD(Digital Versatile Disk)に記憶され、DVDから読み出されて制御装置2にインストールされる。あるいは、制御プログラムは、ネットワークを介して接続されたコンピュータシステムのデータベースなどに記憶され、これらのデータベースから読み出されて制御装置2にインストールされる。そして、インストールされた制御プログラムは、メモリ30に読み出されてCPUコアによって実行される。
1 RAID装置
2 制御装置
3 ディスク装置
4 ホスト装置
5 PCIバス
10 HBA
20 CPU
21〜24 CPUコア
30 メモリ
40 IO制御モジュール
50,50a,50b PCIデバイス
51〜54 ポーリングルーチン
61a〜64a 割込み処理ハンドラ
61b〜64b 割込み処理ハンドラ
71〜74 IOタスク
71a〜74a コマンドキュー
80 コマンド
85 タスクAとタスクBとの切れ間
86 タスクBとアイドルとの切れ間
87 アイドル中
88 スレッドA−1とスレッドA−2との切れ間
91 デバイス
92 割込みコントローラ
93 CPU

Claims (7)

  1. 複数の処理装置を備えた制御装置において、
    全ての処理装置が、
    メモリへの書き込みにより通知された割込み要因をポーリング監視し、
    前記割込み要因に対応する割込み処理を行う
    ことを特徴とする制御装置。
  2. 前記ポーリング監視する処理は、処理単位の切れ間にポーリング監視することを特徴とする請求項1に記載の制御装置。
  3. 前記処理単位は、タスク又はスレッドであることを特徴とする請求項2に記載の制御装置。
  4. ポーリング監視により前記割込み要因を検出した処理装置は、該割込み要因を処理する処理装置を決定し、
    決定された処理装置が前記割込み要因に対応する割込み処理を行うことを特徴とする請求項1、2又は3に記載の制御装置。
  5. 各処理装置で実行されるタスクが、処理するコマンドを接続するキューを有し、
    前記割込み処理は、各割込み要因に対応するコマンドを前記キューに接続し、
    第1のタスクがコマンドの処理中に第2のタスクと通信する要件が発生すると、第1のタスクは該コマンドを第2のタスクのキューに接続することを特徴とする請求項1〜4のいずれか一つに記載の制御装置。
  6. 複数の処理装置を備えた制御装置による制御方法において、
    全ての処理装置が、
    メモリへの書き込みにより通知された割込み要因をポーリング監視し、
    前記割込み要因に対応する割込み処理を行う
    ことを特徴とする制御方法。
  7. 複数のコンピュータを備えた制御装置で実行される制御プログラムにおいて、
    メモリへの書き込みにより通知された割込み要因をポーリング監視し、
    前記割込みに対応する割込み処理を行う
    処理を全てのコンピュータに実行させることを特徴とする制御プログラム。
JP2013112314A 2013-05-28 2013-05-28 制御装置、制御方法及び制御プログラム Active JP6123487B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2013112314A JP6123487B2 (ja) 2013-05-28 2013-05-28 制御装置、制御方法及び制御プログラム
US14/267,982 US9710409B2 (en) 2013-05-28 2014-05-02 Interrupt control apparatus and interrupt control method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013112314A JP6123487B2 (ja) 2013-05-28 2013-05-28 制御装置、制御方法及び制御プログラム

Publications (2)

Publication Number Publication Date
JP2014232382A true JP2014232382A (ja) 2014-12-11
JP6123487B2 JP6123487B2 (ja) 2017-05-10

Family

ID=51986484

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013112314A Active JP6123487B2 (ja) 2013-05-28 2013-05-28 制御装置、制御方法及び制御プログラム

Country Status (2)

Country Link
US (1) US9710409B2 (ja)
JP (1) JP6123487B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10089264B2 (en) * 2016-05-13 2018-10-02 Intel Corporation Callback interrupt handling for multi-threaded applications in computing environments
US10922253B1 (en) * 2019-10-22 2021-02-16 Vmware, Inc. Implementing interrupt remapping via input/output memory management unit faults
CN112632559A (zh) * 2020-12-24 2021-04-09 北京天融信网络安全技术有限公司 漏洞自动验证方法、装置、设备及存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11312138A (ja) * 1998-04-28 1999-11-09 Nec Eng Ltd 割込み制御システム及びその制御方法
JP2002544620A (ja) * 1999-05-19 2002-12-24 インターナショナル・ビジネス・マシーンズ・コーポレーション 論理区分化コンピュータのイベント・ドリブン通信インタフェース

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6189077B1 (en) * 1994-12-15 2001-02-13 Texas Instruments Incorporated Two computer access circuit using address translation into common register file
US5812875A (en) * 1995-05-02 1998-09-22 Apple Computer, Inc. Apparatus using a state device and a latching circuit to generate an acknowledgement signal in close proximity to the request signal for enhancing input/output controller operations
US5925115A (en) * 1997-03-10 1999-07-20 Vlsi Technology, Inc. Method and system for extending interrupt sources and implementing hardware based and software based prioritization of interrupts for an embedded processor
US6163829A (en) * 1998-04-17 2000-12-19 Intelect Systems Corporation DSP interrupt control for handling multiple interrupts
US6920516B2 (en) * 2000-08-31 2005-07-19 Hewlett-Packard Development Company, L.P. Anti-starvation interrupt protocol
JP4100256B2 (ja) 2003-05-29 2008-06-11 株式会社日立製作所 通信方法および情報処理装置
KR100528476B1 (ko) * 2003-07-22 2005-11-15 삼성전자주식회사 컴퓨터 시스템의 인터럽트 처리 장치
JP2006119802A (ja) * 2004-10-20 2006-05-11 Hitachi Ltd マルチプロセッサシステム
JP2006216042A (ja) 2005-02-04 2006-08-17 Sony Computer Entertainment Inc 割り込み処理のためのシステムおよび方法
US7689747B2 (en) * 2005-03-28 2010-03-30 Microsoft Corporation Systems and methods for an augmented interrupt controller and synthetic interrupt sources
US7984454B2 (en) * 2006-12-19 2011-07-19 International Business Machines Corporation Migration of single root stateless virtual functions
JP5217929B2 (ja) 2008-11-13 2013-06-19 ソニー株式会社 割込検出装置および情報処理システム
WO2013066335A1 (en) * 2011-11-03 2013-05-10 Intel Corporation Method to emulate message signaled interrupts with multiple interrupt vectors
WO2014158161A1 (en) * 2013-03-28 2014-10-02 Hewlett-Packard Development Company, L.P. Error coordination message for a blade device having a logical processor in another system firmware domain

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11312138A (ja) * 1998-04-28 1999-11-09 Nec Eng Ltd 割込み制御システム及びその制御方法
JP2002544620A (ja) * 1999-05-19 2002-12-24 インターナショナル・ビジネス・マシーンズ・コーポレーション 論理区分化コンピュータのイベント・ドリブン通信インタフェース

Also Published As

Publication number Publication date
US9710409B2 (en) 2017-07-18
JP6123487B2 (ja) 2017-05-10
US20140359187A1 (en) 2014-12-04

Similar Documents

Publication Publication Date Title
JP7313381B2 (ja) ハードウェアアクセラレーションのためのハードウェアリソースの埋込みスケジューリング
KR100977662B1 (ko) 2-레벨 인터럽트 서비스 루틴을 제공하기 위한 방법 및 프로세서
US20090292810A1 (en) Message binding processing technique
JP2009265963A (ja) 情報処理システム及びタスクの実行制御方法
US20130275601A1 (en) Hardware resource arbiter for logical partitions
US10545890B2 (en) Information processing device, information processing method, and program
US10459771B2 (en) Lightweight thread synchronization using shared memory state
JP2022033688A (ja) メモリアクセスリクエストスケジューリング方法、装置、電子デバイス、コンピュータ可読記憶媒体及びコンピュータプログラム
CN115934389A (zh) 用于错误报告和处理的系统和方法
US20190065420A1 (en) System and method for implementing a multi-threaded device driver in a computer system
JP6123487B2 (ja) 制御装置、制御方法及び制御プログラム
CN115168256A (zh) 中断控制方法、中断控制器、电子设备、介质和芯片
US8346975B2 (en) Serialized access to an I/O adapter through atomic operation
JP6617496B2 (ja) 片方向オペレーティングシステム間通信システム及びプログラム
US8151028B2 (en) Information processing apparatus and control method thereof
US10089265B2 (en) Methods and systems for handling interrupt requests
CN117093335A (zh) 分布式存储系统的任务调度方法及装置
US11392406B1 (en) Alternative interrupt reporting channels for microcontroller access devices
US7930438B2 (en) Interrogate processing for complex I/O link
JP2022142456A (ja) 異常対処プログラム、異常対処システム、及び異常対処方法
US8365008B2 (en) Providing unsolicited global disconnect requests to users of storage
US20110191638A1 (en) Parallel computer system and method for controlling parallel computer system
US20230195664A1 (en) Software management of direct memory access commands
CN110955507B (zh) 基于vxWorks系统的多任务访问同一IIC总线的方法
GB2454996A (en) Handling inbound initiatives for a multi-processor system by its input/output subsystem using data that defines which processor is to handle it.

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160226

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20161031

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20161115

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170113

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20170307

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170320

R150 Certificate of patent or registration of utility model

Ref document number: 6123487

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150