JP6354387B2 - 情報処理装置、情報処理システム及び割込装置制御方法 - Google Patents

情報処理装置、情報処理システム及び割込装置制御方法 Download PDF

Info

Publication number
JP6354387B2
JP6354387B2 JP2014134414A JP2014134414A JP6354387B2 JP 6354387 B2 JP6354387 B2 JP 6354387B2 JP 2014134414 A JP2014134414 A JP 2014134414A JP 2014134414 A JP2014134414 A JP 2014134414A JP 6354387 B2 JP6354387 B2 JP 6354387B2
Authority
JP
Japan
Prior art keywords
interrupt
request
queue
message
register set
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.)
Active
Application number
JP2014134414A
Other languages
English (en)
Other versions
JP2016012283A (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.)
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 JP2014134414A priority Critical patent/JP6354387B2/ja
Priority to US14/722,293 priority patent/US9841992B2/en
Publication of JP2016012283A publication Critical patent/JP2016012283A/ja
Application granted granted Critical
Publication of JP6354387B2 publication Critical patent/JP6354387B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4812Task transfer initiation or dispatching by interrupt, e.g. masked
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Bus Control (AREA)
  • Human Computer Interaction (AREA)

Description

本発明は、情報処理装置、情報処理システム及び割込装置制御方法に関する。
従来、複数のソフトウェアが連係して処理を実行する際に、各ソフトウェアが用いるデータを送受信するプロセス間通信(IPC:Inter Process Communication)の技術が知られている。このようなプロセス間通信を行う技術の一例として、キューを用いてプロセス間通信を行う技術が知られている。
また、情報処理システムは、それぞれ個別のCPUを有する複数のノードを有する。そして、複数のCPU(Central Processing Unit)がそれぞれ異なるプロセスを実行するマルチノードシステムの技術が知られている。このようなマルチノードシステムの技術の一例として、データをキャッシュする機能を有するCPUを複数有し、各CPUがそれぞれ異なるプロセスを同時に実行する情報処理システムが知られている。さらには、各CPUがそれぞれ独立したOS(Operating System)を実行し、このCPU間で一部のメモリ領域を共有する、共有メモリシステムの技術が知られている。この様な構成とする事で、処理能力をより向上させる事が出来、さらに各ノードでOSが個別に動作する事で、エラーの波及を防止する事が出来るのでシステムの可用性を向上させる事ができる。
各ノードは、ローカルメモリ、HPV(Hypervisor)ソフト、OS、デバイスドライバを有し、それぞれ異なるユーザプロセスを同時に実行する。なお、HPVソフトとは、各ノードが稼働させる仮想マシンの管理を行うソフトウェアである。このような情報処理システムでは、各ノードが共有する共有メモリにライトポインタとリードポインタとを格納することでキューを実現し、各ノードの間でユーザプロセス間のプロセス間通信を行う。
プロセス間通信における送信側ノードには、コア又はスレッド毎に専用の送信メッセージレジスタが設けられている。送信側ノードのCPUが動作させるアプリケーションソフトウェアにより送信メッセージレジスタにメッセージを書き込まれ、書き込まれたメッセージが受信側ノードへ送信される。送信されるメッセージは、宛先のCPUのID(Identifier)及びレジスタセット識別IDを含む。
受信側ノードは、アドレスレジスタ、リードポインタ、ライトポインタなどを有するレジスタセットを複数セット備える。そして、受信側ノードは、送信側ノードから指定されたレジスタセット識別IDによって選択されたレジスタセットによって示される記憶領域にメッセージを書き込む。
ここで、受信側ノードのユーザプロセスがメッセージ受信を検知する方法として、ポーリング監視及びメッセージ受信割り込みの2つの方法がある。
ポーリング監視を行う場合、ユーザプロセスは、メッセージの受信の有無に関係なく一定周期でメッセージ受信確認を行う。そして、ユーザプロセスは、メッセ―受信確認においてメッセージを検知した場合、メッセージ読み出し処理を行う。
また、メッセージ受信割り込みを行う場合、受信側のユーザプロセスはスリープ状態にある。そして、ユーザプロセスは、CPUからの割込要求を受けることで、コンテキストスイッチを行い、メッセージ読み出し処理を行う。
特開2013−214168号公報
しかしながら、メッセージ受信割り込みでは、CPUは、メッセージを受信するたびに割込要求を発行する。具体的には、受信側ノードのCPUは、メッセージを受信するとレジスタセットに割込要因をセットし、割込要求をユーザプロセスに対して発行する。
ここで、メッセージ受信回路のレジスタセットのエントリ数が多い、すなわち受信可能なメッセージ数が多い場合、割込要求の発行数が増加する。レジスタセットの情報はRAM(Random Access Memory)などの高容量の媒体に記録されており、レジスタセットに格納された割込要因の検索などに時間がかかり、割込要因を収集する割込刈取処理に多くの時間がかかってしまう。
開示の技術は、上記に鑑みてなされたものであって、割込刈取処理を高速に行う情報処理装置、情報処理システム及び割込装置制御方法を提供することを目的とする。
本願の開示する情報処理装置、情報処理システム及び割込装置制御方法は、一つの態様において、FIFO構造の割込キューは、所定処理の実行を要求する割込要求を格納領域に格納し、格納した前記割込要求を順次出力する。レジスタセットは、前記割込キューより格納領域が大きく且つ前記割込要求を格納する。要求管理部は、前記割込要求を受信し、前記格納領域が前記割込キューに残っている場合、受信した前記割込要求を前記割込キューに格納し、前記格納領域が前記割込キューに残っていない場合、受信した前記割込要求を前記レジスタセットに格納する。要求取得部は、前記割込キューに前記割込要求が存在する場合、前記割込キューから順次出力される割込要求を順次取得し、前記割込キューに前記割込要求がなくなった場合、前記レジスタセットを検索して前記割込要求を検出し取得する。処理実行部は、前記要求取得部により取得された前記割込要求にしたがって前記所定処理を実行する。
本願の開示する情報処理装置、情報処理システム及び割込装置制御方法の一つの態様によれば、割込刈取処理を高速に行うことができるという効果を奏する。
図1は、ノード間メッセージ通信を行う情報処理システムのシステム構成図である。 図2は、メッセージ送信回路の詳細を表すブロック図である。 図3は、メッセージ受信回路の詳細を表すブロック図である。 図4は、レジスタセットのエントリ情報の一例を表す図である。 図5は、割込レジスタのエントリ情報の一例を表す図である。 図6は、割込キューのエントリ情報の一例を表す図である。 図7は、実施例に係る情報処理システムによるメッセージ受信割込を用いたメッセージ受信の通知の処理の全体的な流れのフローチャートである。 図8は、実施例に係る情報処理装置による割込要因の格納処理のフローチャートである。 図9は、実施例に係る情報処理装置による割込要因の刈り取り処理のフローチャートである。
以下に、本願の開示する情報処理装置、情報処理システム及び割込装置制御方法の実施例を図面に基づいて詳細に説明する。なお、以下の実施例により本願の開示する情報処理装置、情報処理システム及び割込装置制御方法が限定されるものではない。
図1は、ノード間メッセージ通信を行う情報処理システムのシステム構成図である。ここでは、ノード1A及び1Bという2つのノード間の通信について説明する。ノード1Aとノード1Bとは同じ機能を有している。本実施例に係る情報処理システムは、ノード1A及び1Bのそれぞれに対応して、メモリ2A及びメモリ2Bを有している。ただし、メモリ2A及びメモリ2Bは、ノード1A及び1Bのいずれも使用する1つの共有メモリにしてもよい。ここでは、ノード1Aを例に説明するが、ノード1Bの各部も同様の機能を有する。
ノード1Aは、コア11A、メッセージ送信回路12A及びメッセージ受信回路13Aを有している。また、ノード1Bは、コア11B、メッセージ送信回路12B及びメッセージ受信回路13Bを有している。ここで、図1では、ノード1A及び1Bに1つのコアが有る場合で説明しているが、コアは1つ以上あってもよい。
コア11Aは、メッセージ送信回路12Aにメッセージの送信のための命令として、レジスタ読出要求をメッセージ送信回路12Aへ出力する。そして、コア11Aは、レジスタ読出要求の応答をメッセージ送信回路12Aから受信する。
また、コア11Aは、レジスタ読出要求又は書込要求をメッセージ受信回路13Aへ出力する。そして、コア11Aは、レジスタ読出要求又は書込要求に対する応答をメッセージ受信回路13Aから受信する。
また、コア11Aは、割込要求をメッセージ受信回路13Aから取得する。コア11Aは、割込要求をメッセージ受信回路13Aから取得すると、割込要求にしたがって処理を行う。割込要求で指示される処理には、特に制限はなく、例えば、演算処理やデータの書き込みや読み込みの処理などがある。
メッセージ送信回路12Aは、レジスタ読出要求をコア11Aから受信する。そして、メッセージ送信回路12Aは、レジスタ読出要求で指定されたメッセージを指定された他のノード、ここではノード1Bのメッセージ受信回路13Bへ送信する。また、メッセージ送信回路12Aは、メッセージ送信の結果を応答としてコア11Aに送信する。
また、メッセージ送信回路12Aは、ノード1Bからメッセージ送信に対する応答を受信する。そして、メッセージ送信回路12Aは、応答で示されるメッセージの送信結果を基にレジスタ読出要求又は書込要求に対する応答を生成し、コア11Aへ出力する。
メッセージ受信回路13Aは、レジスタ読出要求又は書込要求をコア11Aから受信する。そして、メッセージ受信回路13Aは、受信した要求にしたがってレジスタに対する処理を実行する。例えば、メッセージ受信回路13Aは、コア11Aからレジスタ読出要求を受けた場合、レジスタからデータを読み出し、コア11Aへ読み出したデータを送信する。
次に、メッセージ送信回路12A及び12B、並びに、メッセージ受信回路13A及び13Bの詳細について説明する。以下では、ノード1Aを送信側ノード、ノード1Bを受信側ノードとして、ノード1Aからノード1Bへメッセージが送信される場合で説明する。
図2は、メッセージ送信回路の詳細を表すブロック図である。図2に示すように、メッセージ送信回路12Aは、送信レジスタ121、メッセージ生成部122、メッセージ応答受信部123及び応答生成部124を有している。
送信レジスタ121は、コア11Aからレジスタ読出要求を受信する。そして、送信レジスタ121は、受信したレジスタ読出要求を格納する。さらに、送信レジスタ121は、レジスタ読出要求の格納処理の結果を応答生成部124へ出力する。
メッセージ生成部122は、レジスタ読出要求が送信レジスタ121に格納されたことを確認する。そして、メッセージ生成部122は、格納されたレジスタ読出要求にしたがいメッセージを生成する。そして、メッセージ生成部122は、生成したメッセージをノード1Bへ送信する。
メッセージ応答受信部123は、メッセージ生成部122が出力したメッセージの受信結果を示す応答をノード1Bから受信する。そして、メッセージ応答受信部123は、受信した応答を応答生成部124へ出力する。
応答生成部124は、レジスタ読出要求の格納処理の結果の入力を送信レジスタ121から受ける。そして、応答生成部124は、レジスタ読出要求の格納処理の結果を表す応答を生成する。その後、応答生成部124は、生成したレジスタ読出要求の格納処理の結果を表す応答をコア11Aへ出力する。
また、応答生成部124は、ノード1Bからのメッセージの受信結果を示す応答の入力をメッセージ応答受信部123から受ける。そして、応答生成部124は、ノード1Bのメッセージの受信結果を示す応答を生成する。その後、応答生成部124は、生成したノード1Bのメッセージの受信結果を示す応答をコア11Aへ出力する。
図3は、メッセージ受信回路の詳細を表すブロック図である。図3に示すように、メッセージ受信回路13Bは、受信レジスタ131、メッセージ受信部132、メッセージ応答生成部133、割込要求生成部134及び応答生成部135を有している。
受信レジスタ131は、レジスタセット311、割込レジスタ312及び割込キュー313を有している。
レジスタセット311は、アドレスレジスタ、リードポインタ及びライトポインタを有する。レジスタセット311は、送信側ノードのコアの数及びコアが並列処理できる処理数にしたがって用いる数が決定される。CPU10Bに搭載されているレジスタセット311の内の所定数を使用するとして、使用するレジスタセット311の数が決定される場合もある。
レジスタセット311は、図4に示す項目のエントリを格納する。図4は、レジスタセットのエントリ情報の一例を表す図である。図4では、レジスタセット311に格納される各エントリの情報及びそのエントリに用いるビット数を表している。このレジスタセット311が、「第2記憶部」の一例にあたる。
受信側空き通知割込フラグは、受信側ノード(ここでは、ノード1Bである。)において空き通知割込を使用するか否かを示すフラグである。空き通知割込とは、受信側ノードにメッセージを受信可能なレジスタセット311が確保できた場合に、メッセージが受信可能になったことをコア11Aに知らせる割り込みである。例えば、空き通知割込は、予め決められた数以上のレジスタセット311がメッセージを格納できる状態になった場合に発行される。受信側空き通知割込フラグは、予め操作者からの指示を受けて設定される。本実施例では、受信側空き通知割込フラグがイネーブルに設定されている場合で説明する。
受信メッセージ数は、ノード1Bが受信しているメッセージの数を表す。受信メッセージ数は、図4に示す4bitの情報で受信しているメッセージの数を表す。
割込発行条件メッセージ空き数は、空き通知割込を発行する条件となるメッセージの数を表している。
メッセージ受信割込フラグは、メッセージ受信割込を使用するか否かを表すフラグである。メッセージ受信割込フラグがディセーブルの場合、ノード1Bは、ポーリング監視によりメッセージ受信の検知を行う。また、メッセージ割込フラグがイネーブルであれば、ノード1Bは、メッセージ受信によりメッセージ受信の検知を行う。メッセージ受信割込フラグは、予め操作者からの指示を受けて設定される。本実施例では、メッセージ受信割込フラグがイネーブルに設定されている場合で説明する。
空き通知割込ペンディングフラグは、レジスタセット311が空き通知割込の情報を格納しているか否かを表すフラグである。
メッセージ受信割込ペンディングフラグは、レジスタセット311が受信側メッセージ受信割込の情報を格納しているか否かを表すフラグである。この空き通知割込ペンディングフラグ及びメッセージ受信割込ペンディングフラグが、「待機情報」の一例にあたる。
受信データ記録場所情報は、受信したメッセージに含まれるデータを格納したメモリのアドレスの情報である。
割込レジスタ312は、図5に示す項目のエントリを格納する。図5は、割込レジスタのエントリ情報の一例を表す図である。図5では、割込レジスタ312に格納される各エントリの情報及びそのエントリに用いるビット数を表している。
割込レジスタライトフラグは、割込要求の発行を許可するか否かを表すフラグである。このフラグがディセーブルの場合、受信ノードにおける割込要求の発行が禁止される。逆にこのフラグがイネーブルであれば、受信ノードにおける割込要求の発行が許可される。本実施例では、割込レジスタライトフラグの値が、「0」であればディセーブルを表し、「1」であればイネーブルを表す。
割込キューFULLフラグは、割込キュー313におけるエントリが満杯であることを示す。本実施例では、割込キューFULLフラグが「0」の場合、割込キュー313は、満杯でなく、エントリを格納できる領域が余っていることを表す。また、割込キューFULLフラグが「1」の場合、割込キュー313は、満杯であり、エントリを格納できる領域が余っていないことを表す。この割込キューFULLフラグが、「満杯情報」の一例にあたる。
割込キュー313は、例えばFIFO(First In First Out)構造を有している。割込キュー313が格納できるエントリ数は、割込要求の発生頻度や設置スペースなどのノード1Bの運用状態から決定されることが好ましい。例えば、割込キュー313は、64エントリまで格納可能と決定してもよい。
割込キュー313は、図6に示す項目のエントリを格納する。図6は、割込キューのエントリ情報の一例を表す図である。図6では、割込キュー313に格納される各エントリの情報及びそのエントリに用いるビット数を表している。この割込キュー313が、「第1記憶部」の一例にあたる。
レジスタセット識別IDは、ノード1Aにより送信されたメッセージに格納されていたレジスタセット識別IDである。割込キュー313には、後述するように受信したメッセージを示す情報が格納されるが、このレジスタセット識別IDは、そのメッセージに含まれていたレジスタセット識別IDである。
メッセージ受信フラグは、メッセージを受信したことを示すフラグである。メッセージ受信フラグが「1」であれば、ノード1Aがメッセージを受信しており、割込キュー313がメッセージ受信割込の情報を格納していることを表す。また、メッセージ受信フラグが「0」であれば、ノード1Aがメッセージを受信していないことを表しており、割込キュー313がメッセージ受信割込の情報を格納していないことを表す。
また、空き通知割込フラグは、空き通知の情報を格納していることを示すフラグである。空き通知割込フラグが「1」であれば、割込キュー313が空き通知割込の情報を格納していることを表す。また、空き通知割込フラグが「0」であれば、割込キュー313が空き通知割込の情報を格納していないことを表す。
以下では、メッセージ受信割込及び空き通知割込をまとめて、「割込要因」という。さらに、割込キュー313における、メッセージ受信フラグ及び空き通知割込フラグをまとめて表す場合、「割込要因情報」という。
受信レジスタ131は、レジスタセット311、割込レジスタ312又は割込キュー313に対して、割込要因の情報の書き込み又は読み出しが行われた場合、行われた書き込み又は読み出しの結果を応答生成部135へ出力する。
図3に戻って説明を続ける。メッセージ受信部132は、ノード1Aからメッセージを受信する。この受信したメッセージで示される処理が、「所定処理」の一例にあたる。
メッセージ受信部132は、受信したメッセージからレジスタセット識別IDを取得する。その後、メッセージ受信部132は、受信したメッセージをメモリ2Bに格納する。次に、メッセージ受信部132は、レジスタセット311のメッセージ受信割込フラグを確認する。
メッセージ受信割込フラグがディセーブルであれば、メッセージ受信部132は、メッセージから取得したレジスタセット識別IDを有するレジスタセット311に受信割込の情報を格納する。また、メッセージ受信部132は、メッセージを格納したメモリ2Bのアドレスをレジスタセット311の受信データ記録場所情報に格納する。さらに、メッセージ受信部132は、レジスタセット311における各エントリの登録を行う。
メッセージ受信割込フラグがイネーブルであれば、メッセージ受信部132は、受信したメッセージから取得したレジスタセット識別IDを割込キュー313に登録する。次に、メッセージ受信部132は、割込キュー313のメッセージ受信フラグをオンにする。さらに、メッセージ受信部132は、受信したメッセージから取得したレジスタセット識別IDを有するレジスタセット311の受信データ記録場所情報にメッセージを格納したメモリ2Bのアドレスを登録する。また、メッセージ受信部132は、レジスタセット311における各エントリの登録を行う。この場合、メッセージ受信部132は、レジスタセット311の空き通知割込ペンディングフラグ及びメッセージ受信割込ペンディングフラグをオフにする。
その後、メッセージ受信部132は、割込キュー313の割込キューFULLフラグを確認する。割込キューFULLフラグが「0」であれば、メッセージ受信部132は、割込キュー313に格納されている割込キューの数を取得する。割込キュー313に格納されている割込キューの数が上限値から1を減算した数(以下では、「FULL−1」という。)であれば、メッセージ受信部132は、割込レジスタ312の割込キューFULLフラグを「1」に設定する。これに対して、割込キュー313に格納されている割込キューの数が「FULL−1」以下であれば、メッセージ受信部132は、割込キューFULLフラグを「0」のまま維持する。
その後、メッセージ受信部132は、割込レジスタ312の割込レジスタライトフラグを確認する。割込レジスタライトフラグがイネーブルであれば、メッセージ受信部132は、割込要求生成部134に割込要求の生成を指示する。これに対して、割込レジスタライトフラグがディセーブルであれば、メッセージ受信部132は、割込要求生成部134に対する割込要求の生成の指示を行わずに割込要因の格納処理を終了する。
一方、割込キューFULLフラグが「1」であれば、メッセージ受信部132は、メッセージに格納さているレジスタセット識別IDを取得し、メッセージ受信割込の情報を格納したレジスタセット311を特定する。
そして、メッセージ受信部132は、特定したレジスタセット311のメッセージ受信割込ペンディングフラグをオンにする。また、メッセージ受信部132は、受信したメッセージから取得したレジスタセット識別IDを有するレジスタセット311の受信データ記録場所情報にメッセージを格納したメモリ2Bのアドレスを登録する。さらに、メッセージ受信部132は、レジスタセット311における各エントリの登録を行う。
その後、メッセージ受信部132は、割込レジスタ312の割込レジスタライトフラグを確認する。割込レジスタライトフラグがイネーブルであれば、メッセージ受信部132は、割込要求生成部134に割込要求の生成を指示する。これに対して、割込レジスタライトフラグがディセーブルであれば、メッセージ受信部132は、割込要求生成部134に対する割込要求の生成の指示を行わずに割込要因の格納処理を終了する。
その後、メッセージ受信部132は、メッセージ受信完了をメッセージ応答生成部133に通知する。
また、メッセージ受信部132は、メッセージを格納するレジスタセット311の数を監視する。そして、メッセージを格納するレジスタセット311の数が、割込発行条件で決められた数以上の所定閾値を超えた場合、メッセージ受信部132は、メッセージ受信停止をメッセージ応答生成部133に通知する。このメッセージ受信部132が、「要求管理部」の一例にあたる。
メッセージ応答生成部133は、メッセージ受信停止又はメッセージ受信完了の通知をメッセージ受信部132から受ける。そして、メッセージ応答生成部133は、受信した通知にしたがって、ノード1Aのメッセージの送信に対する応答を生成する。その後、メッセージ応答生成部133は、生成した応答をノード1Aへ送信する。
割込要求生成部134は、レジスタセット311の使用状況を監視し、メッセージが格納されていないレジスタセット311の数を取得する。ここで、割込要求生成部134は、メッセージの格納に用いるレジスタセット311の総数を記憶していてもよい。そして、割込要求生成部134は、レジスタセット311に登録されている割込発行条件メッセージ空き数と取得したメッセージが格納されていないレジスタセット311の数とを比較して、空き通知割込の発行条件を満たしたか否かを判定する。
空き通知割込の発行条件を満たしている場合、割込要求生成部134は、レジスタセット311の受信側空き通知割込フラグを確認する。
受信側空き通知割込フラグがディセーブルであれば、割込要求生成部134は、空き通知割込要求の格納処理を終了する。
一方、受信側空き通知割込フラグがイネーブルであれば、割込要求生成部134は、割込キューFULLフラグが「1」であるか否かを判定する。
割込キューFULLフラグが「1」でない場合、割込キュー313の空き通知割込フラグをオンにする。この空き通知割込みで示される空き通知の処理が、「通知処理」の一例にあたる。
その後、割込要求生成部134は、割込キュー313に格納されているキューの数を取得する。割込キュー313に格納されているキューの数が「FULL−1」であれば、割込要求生成部134は、割込レジスタ312の割込キューFULLフラグを「1」に設定する。これに対して、割込キュー313に格納されているキューの数が「FULL−1」以下であれば、割込要求生成部134は、割込キューFULLフラグを「0」のまま維持する。
その後、割込要求生成部134は、割込レジスタ312の割込レジスタライトフラグを確認する。割込レジスタライトフラグがイネーブルであれば、割込要求生成部134は、空き通知割込要求を生成する。そして、割込要求生成部134は、生成した空き通知割込要求をコア11Aに送信する。これに対して、割込レジスタライトフラグがディセーブルであれば、割込要求生成部134は、空き通知割込要求の生成を行わずに割込要因の格納処理を終了する。
一方、割込キューFULLフラグが「1」であれば、割込要求生成部134は、空き通知割込要求を格納するレジスタセット311を特定する。
そして、割込要求生成部134は、特定したレジスタセット311の空き通知割込ペンディングフラグをオンにする。さらに、割込要求生成部134は、レジスタセット311における各エントリの登録を行う。
その後、割込要求生成部134は、割込レジスタ312の割込レジスタライトフラグを確認する。割込レジスタライトフラグがイネーブルであれば、割込要求生成部134は、空き通知割込要求を生成する。そして、割込要求生成部134は、生成した空き通知割込要求をコア11Aに送信する。これに対して、割込レジスタライトフラグがディセーブルであれば、割込要求生成部134は、空き通知割込要求の生成を行わずに割込要因の格納処理を終了する。
また、割込要求生成部134は、メッセージ受信割込要求の生成の指示をメッセージ受信部132から受ける。そして、割込要求生成部134は、メッセージ受信割込要求を生成する。その後、割込要求生成部134は、生成したメッセージ受信割込要求をコア11Aに送信する。この割込要求生成部134が、「通知処理生成部」の一例にあたる。また、メッセージ受信割込要求及び空き通知割込要求が、「実行要求」の一例にあたる。
このように、メッセージ受信部132及び割込要求生成部134は、割込レジスタライトフラグがイネーブルであれば、割込要求を発行するが、ディセーブルの場合、割込要求を発行しない。ただし、割込レジスタライトフラグにかかわらず、メッセージ受信部132及び割込要求生成部134は、割込要因の格納は行っていく。すなわち、例え割込要求の発行が行われなくても、メッセージの受信が停止されていなければ、割込キュー313又はレジスタセット311には、割込要因が格納されていく。特に、割込キューFULLフラグが「1」でなれければ、割込キュー313に割込み要因が格納されていく。
応答生成部135は、レジスタセット311、割込レジスタ312又は割込キュー313に対する書き込み又は読み出しの結果を受信レジスタ131から取得する。そして、応答生成部135は、取得したレジスタセット311、割込レジスタ312又は割込キュー313に対する書き込み又は読み出しの結果に応じて応答を生成する。その後、応答生成部135は、生成した応答をコア11Bへ送信する。
コア11Bは、OSを動作させる。また、コア11Bは、OS上でアプリケーションなどを実行しユーザプロセスを動作させる。コア11Bは、要求取得部111及び処理実行部112を有している。要求取得部111及び処理実行部112は、OS又はユーザプロセスのいずれかもしくは双方が動作主体になることがある。
要求取得部111は、各割込要因に基づく割込要求を割込要求生成部134から受信する。そして、要求取得部111は、割り込みの刈り取り処理を開始する。例えば、コア11Bが各割込要因に基づく割込要求を受けると、OSは、コンテキストスイッチを実行しプロセスを切り替え、ユーザプロセスに割込要求の処理を指示する。OSによるコンテキストスイッチが行われると、ユーザプロセスは、割り込みの刈り取り処理を開始する。このようにして、要求取得部111による以下に説明する割り込みの刈り取り処理が開始される。
要求取得部111は、割込レジスタ312の割込レジスタライトフラグを「0」、すなわちディセーブルに設定する。これにより、要求取得部111は、刈り取り処理の間の新たな割り込みの発行を抑制する。
次に、要求取得部111は、割込要因の情報が割込キュー313に格納されているか否かを判定する。割込要因の情報が割込キュー313にある場合、要求取得部111は、割込キュー313の先頭の割込要因を読み出し、割込キュー313から削除する。
そして、要求取得部111は、割込キュー313の全エントリを読み出し終えたかを判定する。読み出していないエントリが割込キュー313に残っている場合、要求取得部111は、割込キュー313からのエントリの読み出し及び削除を、エントリがなくなるまで繰り返す。
割込キュー313に読み出すエントリがなくなった場合、要求取得部111は、割込レジスタ312の割込キューFULLフラグが「1」か否かを判定する。割込キューFULLフラグが「0」であれば、割込キュー313にエントリを格納する余裕があるので、レジスタセット311にはエントリが格納されていないといえる。そのため、割込キューFULLフラグが「0」の場合、要求取得部111は、レジスタセット311からの割込要因の刈込は行わなくてよい。そこで、要求取得部111は、割込レジスタ312の割込レジスタライトフラグを「1」、すなわちイネーブルに設定する。これにより、割込要因のレジスタセット311及び割込キュー313への割込要因の情報の書込みの禁止が解除され、ノード1Aからのメッセージの受信や空き通知割込の発行などが再開される。そして、要求取得部111は、割込要因の刈り取り処理を終了する。
これに対して、割込キューFULLフラグが「1」であれば、割込キュー313にエントリ格納の余裕が無いので、レジスタセット311にはエントリが格納されていることが考えられる。そこで、要求取得部111は、レジスタセット311からの割込要因の刈り取り処理を実行する。
具体的には、要求取得部111は、割込キューFULLフラグを「0」にする。次に、要求取得部111は、レジスタセット311を1つ選択する。具体的には、要求取得部111は、レジスタセット311のリードポインタが示すレジスタセット311を選択する。
そして、要求取得部111は、選択したレジスタセット311のメッセージ受信割込フラグ又は空き通知割込ペンディングフラグのいずれかがオンであるかを確認する。以下では、メッセージ受信割込フラグ及び空き通知割込ペンディングフラグを表すビットをまとめて「ペンディングビット」という場合がある。
ここでは、要求取得部111は、メッセージ受信割込フラグが「1」である場合、メッセージ受信割込フラグがオンであると判定する。空き通知割込ペンディングフラグが「1」である場合、要求取得部111は、空き通知割込ペンディングフラグがオンであると判定する。また、ペンディングビットの双方が「0」である場合、要求取得部111は、いずれもオフであると判定する。
ペンディングビットのいずれかが「1」である場合、要求取得部111は、選択したレジスタセット311に格納されている割込要因の情報を読み出す。そして、要求取得部111は、選択したレジスタセット311のペンディングビットの双方を「0」にし、さらに、選択したレジスタセット311に格納されたエントリを削除し、レジスタセット311をクリアする。
要求取得部111は、レジスタセット311から全てのエントリを読み出すまで、レジスタセット311からのエントリの読み出しを繰り返す。具体的には、要求取得部111は、レジスタセット311のリードポインタを更新していき、全てのレジスタセット311を選択し終えるまで、エントリの読み出しを繰り返す。
レジスタセット311から全てのエントリを読み出した場合、要求取得部111は、割込レジスタ312の割込レジスタライトフラグを「1」、すなわちイネーブルに設定する。そして、要求取得部111は、割込要因の刈り取り処理を終了する。
処理実行部112は、要求取得部111が取得した割込要求を取得する。そして、処理実行部112は、取得した割込要求を順次処理していく。
次に、図7を参照して、本実施例に係る情報処理システムによるメッセージ受信割込を用いたメッセージ受信の通知の処理の流れの概要を説明する。図7は、実施例に係る情報処理システムによるメッセージ受信割込を用いたメッセージ受信の通知の処理の全体的な流れのフローチャートである。ここでは、説明の都合上、コア11Aが動作させるOS113A及びユーザプロセス114A、並びに、コア11Bが動作させるOS113B及びユーザプロセス114Bを動作主体として説明する。ただし、OS113B及びユーザプロセス114Bは、要求取得部111にあたる。図7の縦軸は、上部に記載した各機能が実行する処理を表している。また、図7の縦軸は下に向かうにしたがって時間が経過することを表している。ここでも、ノード1Aを送信側ノード、ノード1Bを受信側ノードとして説明する。
ユーザプロセス114Bは、操作者からの指示をうけて、レジスタセット311及び割込レジスタ312の設定を行う(ステップS1)。具体的には、ユーザプロセス114Bは、操作者からの指示にしたがい受信側空き通知割込フラグ、割込発行条件メッセージ空き数及びメッセージ受信割込フラグを設定する。ここでは、ユーザプロセス114Bは、受信側空き通知割込フラグ及びメッセージ受信割込フラグをいずれもイネーブルにする。また、ユーザプロセス114Bは、全てのレジスタセット311の空き通知ペンディングフラグ及びメッセージ受信割込ペンディングフラグをオフ、すなわちペンディングビットを「0」に設定する。さらに、ユーザプロセス114Bは、割込レジスタ312の割込レジスタライトフラグを「1」、すなわちイネーブルに設定し、割込キューFULLフラグを「0」に設定する。メッセージ受信回路13Bは、ユーザプロセス114Bからの指示を受けて、レジスタセット311、割込レジスタ312及び割込キュー313の設定を行う。
そして、ユーザプロセス114Bは、メッセージがノード1Aから送られてくるまでメッセージの受信処理を待機する(ステップS2)。ただし、この間、ユーザプロセス114は、他の処理は実行してもよい。
メッセージの送信処理を行う場合、ノード1Aのユーザプロセス114Aは、メッセージ送信依頼をOS113Aに要求する(ステップS3)。
OS113Aは、メッセージ送信依頼をユーザプロセス114Aから受ける。そして、OS113Aは、メッセージの送信をメッセージ送信回路12Aに指示する(ステップS4)。
メッセージ送信回路12Aは、メッセージの送信の指示をOS113Aから受ける。そして、メッセージ送信回路12Aは、メッセージを含むパケットを生成する。その後、メッセージ送信回路12Aは、生成したパケットをノード1Bのメッセージ受信回路13Bへ送信する(ステップS5)。
メッセージ受信回路13Bは、メッセージを含むパケットをノード1Aのメッセージ送信回路12Aから取得する。そして、メッセージ受信回路13Bのメッセージ受信部132は、受信したパケットに含まれるメッセージを受信する(ステップS6)。
そして、メッセージ受信回路13Bのメッセージ受信部132は、受信したメッセージをメモリ2Bに格納する(ステップS7)。また、メッセージ受信回路13Bのメッセージ受信部132は、割込キュー313に空きが有れば、割込キュー313にメッセージ受信割込の情報を割込キュー313に格納し、空きが無ければ、メッセージ受信割込の情報をレジスタセット311に格納する。その後、メッセージ受信回路13Bのメッセージ受信部132は、メッセージ受信の完了応答をノード1Aのメッセージ送信回路12Aへ送信する(ステップS8)。
ノード1Aのメッセージ送信回路12Aの応答生成部124は、ユーザプロセス114Aに完了応答を送信する。ユーザプロセス114Aは、受信した完了応答からメッセージ送信のステータスを読み出す(ステップS9)。
一方、メッセージ受信回路13Bのメッセージ受信部132は、メッセージ受信割込要求の生成を割込要求生成部134に指示する。そして、メッセージ受信回路13Bの割込要求生成部134は、メッセージ受信割込要求を生成し、OS113Bに送信する(ステップS10)。
OS113Bは、メッセージ受信割込要求をメッセージ受信回路13Bの割込要求生成部134から受信すると、コンテキストを実行する(ステップS11)。
ユーザプロセス114Bは、コンテキストの実行を受けて、割り込み処理を開始する(ステップS12)。
メッセージ受信回路13Bは、ユーザプロセス114Bから読み出しの指示を受けて、指定された割込要因をユーザプロセス114Bに送信する(ステップS13)。この時、メッセージ受信回路13Bは、読み出した割込要因を格納していた割込キュー313又はレジスタセット311から割込要因のエントリを削除しクリアする。
ユーザプロセス114Bは、取得した割込要因が指定するアドレスからのメッセージの読み出しをメモリ2Bに要求する(ステップS14)。
メモリ2Bは、指定されたアドレスに格納されているメッセージをユーザプロセス114Bへ出力する(ステップS15)。
次に、図8を参照して、本実施例に係る情報処理装置による割込要因の格納処理について説明する。図8は、実施例に係る情報処理装置による割込要因の格納処理のフローチャートである。
受信レジスタ131は、操作者からの指示を受けて、メッセージ受信割込の設定を行う(ステップS101)。ここでは、受信レジスタ131は、レジスタセット311のメッセージ受信割込フラグをイネーブルにする。
メッセージ受信部132は、メッセージを受信したか否かを判定する(ステップS102)。メッセージを受信した場合(ステップS102:肯定)、メッセージ受信部132は、ステップS104へ進む。
これに対して、メッセージを受信していない場合(ステップS102:否定)、割込要求生成部134は、メッセージを格納していないレジスタセット311の数を取得する。そして、割込要求生成部134は、取得したメッセージを格納していないレジスタセット311の数が、割込発行条件メッセージ空き数を満たしているか、すなわち割込発行条件を充足するか否かを判定する(ステップS103)。
割込発行条件を満たしていない場合(ステップS103:否定)、メッセージ受信部132及び割込要求生成部134は、ステップS102へ戻る。これに対して、割込発行条件を満たしている場合(ステップS103:肯定)、メッセージ受信部132及び割込要求生成部134は、ステップS104へ進む。以下の処理は、メッセージを受信した場合には、メッセージ受信部132が実行し、割込発行条件が充足された場合には、割込要求生成部134が実行する。
メッセージ受信部132又は割込要求生成部134は、割込レジスタ312の割込キューFULLフラグ=1か否かを判定する(ステップS104)。
割込キューFULLフラグ=1の場合(ステップS104:肯定)、メッセージ受信部132又は割込要求生成部134は、レジスタセット311の割込要因に応じたペンディングフラグを「1」に設定する(ステップS105)。
これに対して、割込キューFULLフラグ≠1の場合(ステップS104:否定)、メッセージ受信部132又は割込要求生成部134は、レジスタセット識別ID及び割込要因の情報を割込キュー313に格納する(ステップS106)。
次に、メッセージ受信部132又は割込要求生成部134は、割込キュー313のエントリ数が「FULL−1」か否かを判定する(ステップS107)。図では、割込キュー313のエントリ数を省略して、単に割込キューと記載している。
割込キュー313のエントリ数が「FULL−1」の場合(ステップS107:肯定)、メッセージ受信部132又は割込要求生成部134は、割込レジスタ312の割込キューFULLフラグを「1」に設定する(ステップS108)。これに対して、割込キュー313のエントリ数が「FULL−1」でない場合(ステップS107:否定)、メッセージ受信部132又は割込要求生成部134は、ステップS109へ進む。
メッセージ受信部132又は割込要求生成部134は、割込レジスタ312の割込レジスタライトフラグが「1」、すなわちイネーブルか否かを判定する(ステップS109)。割込レジスタライトフラグが「1」でない場合(ステップS109:否定)、メッセージ受信部132又は割込要求生成部134は、ステップS102へ戻る。
これに対して、割込レジスタライトフラグが「1」でない場合(ステップS109:肯定)、割込要求生成部134は、割込要求を生成し要求取得部111へ送信する(ステップS110)。ただし、メッセージを受信した場合であれば、割込要求生成部134は、メッセージ受信部132からの指示を受けて、その指示にしたがい割込要求の送信を実行する。
メッセージ受信部132及び割込要求生成部134は、割込要因取得を停止するか否かを判定する(ステップS111)。例えば、操作者からの割込実行の停止の指示を受けた場合や情報処理装置の動作が停止した場合に、メッセージ受信部132及び割込要求生成部134は、割込要因取得を停止すると判定する。
割込要因取得を停止しない場合(ステップS111:否定)、メッセージ受信部132及び割込要求生成部134は、ステップS102へ戻る。これに対して、割込要因取得を停止する場合(ステップS111:肯定)、メッセージ受信部132及び割込要求生成部134は、割込要因の格納処理を終了する。
次に、図9を参照して、本実施例に係る情報処理装置による割込要因の刈り取り処理について説明する。図9は、実施例に係る情報処理装置による割込要因の刈り取り処理のフローチャートである。
要求取得部111は、割込要求を割込要求生成部134から取得する(ステップS201)。
要求取得部111は、割込レジスタ312の割込レジスタライトフラグを「0」、すなわちディセーブルにする(ステップS202)。
要求取得部111は、割込キュー313からエントリを読み出す(ステップS203)。
要求取得部111は、割込キュー313に割込要因があるか否かを判定する(ステップS204)。
割込要因がある場合(ステップS204:肯定)、要求取得部111は、割込要因を読み出し、読み出した割込要因を削除しエントリをクリアする(ステップS205)。
次に、要求取得部111は、割込キュー313に格納された全てのエントリの読み出しが完了したか否かを判定する(ステップS206)。読み出していないエントリが残っている場合(ステップS206:否定)、要求取得部111は、ステップS203へ戻る。
これに対して、全てのエントリの読み出しが完了した場合(ステップS206:肯定)、要求取得部111は、割込レジスタ312の割込キューFULLフラグが「1」か否かを判定する(ステップS207)。割込キューFULLフラグ≠1の場合(ステップS207:否定)、要求取得部111は、ステップS203へ戻る。
これに対して、割込キューFULLフラグ=1の場合(ステップS207:肯定)、要求取得部111は、割込キューFULLフラグを「0」に設定する(ステップS208)。
そして、要求取得部111は、リードポインタが示すレジスタセット311からエントリを読み出す(ステップS209)。
次に、要求取得部111は、読み出したエントリのペンディングビットが「1」であるか否かを判定する(ステップS210)。ペンディングビット≠1の場合(ステップS210:否定)、要求取得部111は、ステップS212へ進む。
これに対して、ペンディングビット=1の場合(ステップS210:肯定)、要求取得部111は、割込要因の情報を読み込み、読み込んだエントリを削除する(ステップS211)。
その後、要求取得部111は、レジスタセット311の全てのエントリの読み出しが完了したか否かを判定する(ステップS212)。読み出していないエントリが残っている場合(ステップS212:否定)、要求取得部111は、レジスタセット311のリードポインタを更新し(ステップS213)、ステップS209へ戻る。
これに対して、全てのエントリの読み出しが完了した場合(ステップS212:肯定)、要求取得部111は、ステップS203へ戻る。
一方、割込キュー313に割込要因が無い場合(ステップS204:否定)、要求取得部111は、割込レジスタ312の割込レジスタライトフラグを「1」、すなわちイネーブルに設定する(ステップS214)。
そして、要求取得部111は、割込要因の読み出しを完了する(ステップS215)。これにより、割込要因の刈り取り処理が終了する。
ここで、図8で示す割込要因の格納処理と、図9で示す割込要因の刈り取り処理とは独立して動作する。そのため、刈り取り処理を行っている間、割込要求の発行は行われなくなるが、割込要因は格納されていく。そのため、刈り取り処理を開始した場合、割込要因が格納され続ける限り、割込要求の発行を待たずに割込キュー313及びレジスタセット311に格納された割込要因はすべて刈り取られることになる。特に、割込キューFULLフラグが「1」でなれければ、割込キュー313に割込要因が格納されていくため、要求取得部111は、割込みキュー313から高速に割込要因を刈り取ることができる。
また、以上では、ノード1Aを送信側ノードとし、ノード1Bを受信側ノードとして説明したが、ノード1A及び1Bは同様の機能を有しており、送信側及び受信側を逆にしても動作可能である。
以上に説明したように、本実施例に係る情報処理装置は、FIFOの割込キューを設け、割込キューに空きが有る場合、割込キューに割込要因を格納し、割込キューに空きが無ければ、レジスタセットに割込要因を格納する。そして、本実施例に係る情報処理装置は、割込キューから先に割込要因の刈り取りを行い、その後、レジスタセットに割込要因が有ればそれらの刈り取りを行う。このように、割込キューに収まる数以内の割り込み数であれば、レジスタセットを読み込まずに刈り取りを行うことができ、割込刈取処理の時間を短縮して割込刈取処理を高速に行うことができる。また、割込キューに格納しきれない割込要因については、レジスタセットに格納しておき、割込キューからの割込要因の読み出し後に読み出しを行うことで、割込要因の刈り取り漏れを抑制できる。さらに、刈り取り処理の実行中は割り込みの発行を禁止することで、割込要因を漏れなく刈り取ることができる。
1A,1B ノード
2A,2B メモリ
11A,11B コア
12A,12B メッセージ送信回路
13A,13B メッセージ受信回路
111 要求取得部
112 処理実行部
121 送信レジスタ
122 メッセージ生成部
123 メッセージ応答受信部
124 応答生成部
131 受信レジスタ
132 メッセージ受信部
133 メッセージ応答生成部
134 割込要求生成部
135 応答生成部
311 レジスタセット
312 割込レジスタ
313 割込キュー

Claims (8)

  1. 所定処理の実行を要求する割込要求を格納領域に格納し、格納した前記割込要求を順次出力するFIFO構造の割込キューと、
    前記割込要求を格納する、前記割込キューより格納領域の大きいレジスタセットと、
    前記割込要求を受信し、前記格納領域が前記割込キューに残っている場合、受信した前記割込要求を前記割込キューに格納し、前記格納領域が前記割込キューに残っていない場合、受信した前記割込要求を前記レジスタセットに格納する要求管理部と、
    前記割込キューに前記割込要求が存在する場合、前記割込キューから順次出力される割込要求を順次取得し、前記割込キューに前記割込要求がなくなった場合、前記レジスタセットを検索して前記割込要求を検出し取得する要求取得部と、
    前記要求取得部により取得された前記割込要求にしたがって前記所定処理を実行する処理実行部と
    を備えたことを特徴とする情報処理装置。
  2. 前記割込キューは、格納の時期が古い順から前記割込要求を順次出力することを特徴とする請求項1に記載の情報処理装置。
  3. 前記要求管理部は、前記割込キューに前記格納領域が残っていない場合、前記割込キューの満杯情報を前記要求取得部に通知し、
    前記要求取得部は、前記割込キューに格納された前記割込要求を全て取得したときに、前記満杯情報の通知を受信している場合、前記レジスタセットを検索して前記割込要求を検出し取得し、前記満杯情報の通知を受信していない場合、前記割込要求の取得を終了することを特徴とする請求項1又は2に記載の情報処理装置。
  4. 前記要求管理部は、前記レジスタセットに前記割込要求を書き込む際に、前記割込要求の未取得を示す待機情報を付加し、
    前記要求取得部は、前記レジスタセットを検索する場合、前記待機情報が付加されているか否かを判定して、格納された前記割込要求を検出する
    ことを特徴とする請求項1〜3のいずれか一つに記載の情報処理装置。
  5. 前記要求管理部は、前記割込キュー及び前記レジスタセットに対して前記割込要求を格納した場合、前記要求取得部に対して、格納した前記割込要求が示す所定処理の実行要求を通知し、
    前記要求取得部は、前記実行要求の通知を受信して、前記割込キュー及び前記レジスタセットからの前記割込要求の取得を開始し、前記割込キュー及び前記レジスタセットからの前記割込要求の取得をする間、前記要求管理部による前記実行要求の通知の発行を停止させる
    ことを特徴とする請求項1〜4のいずれか一つに記載の情報処理装置。
  6. 前記割込キュー又は前記レジスタセットのいずれかにデータが格納されていない前記格納領域が存在することを通知する通知処理を生成する通知処理生成部をさらに備え、
    前記割込キューは、前記割込要求及び前記通知処理の実行要求を格納し、格納した前記割込要求及び前記通知処理の実行要求を順次出力し、
    前記レジスタセットは、前記割込要求及び前記通知処理の実行要求を格納し、
    前記通知処理生成部は、前記格納領域が前記割込キューに残っている場合、前記通知処理の実行要求を前記割込キューに格納し、前記格納領域が前記割込キューに残っていない場合、前記通知処理の実行要求を前記レジスタセットに格納し、
    前記要求取得部は、前記割込要求又は前記通知処理の実行要求のいずれか一方もしくは双方が前記割込キューに存在する場合、前記割込キューが出力する前記割込要求又は前記通知処理の実行要求を順次取得し、未取得の前記割込要求又は前記通知処理の実行要求が前記割込キューになくなった場合、前記レジスタセットを検索して前記割込要求又は前記通知処理の実行要求を検出し取得する
    ことを特徴とする請求項1〜5のいずれか一つに記載の情報処理装置。
  7. 第1情報装置及び第2情報装置を有する情報処理システムであって、
    前記第1情報装置は、所定処理の実行命令を送信する送信部を備え、
    前記第2情報装置は、
    前記所定処理の実行を要求する割込要求を格納領域に格納し、格納した前記割込要求を順次出力するFIFO構造の割込キューと、
    前記割込要求を格納する、前記割込キューより格納領域の大きいレジスタセットと、
    前記送信部から送信された前記実行命令を受信し、前記格納領域が前記割込キューに残っている場合、前記実行命令で指定された前記所定処理の実行を要求する前記割込要求を前記割込キューに格納し、前記格納領域が前記割込キューに残っていない場合、前記実行命令で指定された前記所定処理の実行を要求する前記割込要求を前記レジスタセットに格納する要求管理部と、
    前記割込キューに前記割込要求が存在する場合、前記割込キューから順次出力される前記割込要求を順次取得し、前記割込キューに前記割込要求がなくなった場合、前記レジスタセットを検索して前記割込要求を検出し取得する要求取得部と、
    前記要求取得部により取得された前記割込要求にしたがって前記所定処理を実行する処理実行部とを備えた
    ことを特徴とする情報処理システム。
  8. 所定処理の実行を要求する割込要求を受信し、
    前記割込要求を格納領域に格納して格納した前記割込要求を順次出力するFIFO構造の割込キューに前記格納領域が残っている場合、前記割込キューに受信した前記割込要求を格納し、
    前記格納領域が前記割込キューに残っていない場合、前記割込キューより格納領域の大きいレジスタセットに受信した前記割込要求を格納し、
    前記割込キューに前記割込要求が存在する場合、前記割込キューが出力する前記割込要求を順次取得し、
    前記割込キューに前記割込要求がなくなった場合、前記レジスタセットを検索して前記割込要求を検出し取得する
    ことを特徴とする割込装置制御方法。
JP2014134414A 2014-06-30 2014-06-30 情報処理装置、情報処理システム及び割込装置制御方法 Active JP6354387B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2014134414A JP6354387B2 (ja) 2014-06-30 2014-06-30 情報処理装置、情報処理システム及び割込装置制御方法
US14/722,293 US9841992B2 (en) 2014-06-30 2015-05-27 Information processing device, information processing system, and interrupt device control method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014134414A JP6354387B2 (ja) 2014-06-30 2014-06-30 情報処理装置、情報処理システム及び割込装置制御方法

Publications (2)

Publication Number Publication Date
JP2016012283A JP2016012283A (ja) 2016-01-21
JP6354387B2 true JP6354387B2 (ja) 2018-07-11

Family

ID=54930597

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014134414A Active JP6354387B2 (ja) 2014-06-30 2014-06-30 情報処理装置、情報処理システム及び割込装置制御方法

Country Status (2)

Country Link
US (1) US9841992B2 (ja)
JP (1) JP6354387B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6602579B2 (ja) * 2015-07-15 2019-11-06 ルネサスエレクトロニクス株式会社 半導体装置およびシステム
JP2018063672A (ja) * 2016-10-14 2018-04-19 キヤノン株式会社 メッセージ実行サーバー、制御方法、およびプログラム
US11563690B2 (en) * 2020-08-19 2023-01-24 Redpanda Data, Inc. Low latency queuing system

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3810449B2 (ja) * 1994-07-20 2006-08-16 富士通株式会社 キュー装置
JPH10334053A (ja) * 1997-05-29 1998-12-18 Hitachi Ltd コンピュータシステム
JP2002014884A (ja) * 2000-06-28 2002-01-18 Hitachi Ltd メッセージキューイング方法
JP3807250B2 (ja) 2001-05-18 2006-08-09 日本電気株式会社 クラスタシステム、コンピュータ及びプログラム
US8060668B2 (en) 2004-09-08 2011-11-15 Fisher-Rosemount Systems, Inc. Low latency data packet reception and processing
US7861024B2 (en) * 2008-09-30 2010-12-28 Intel Corporation Providing a set aside mechanism for posted interrupt transactions
US20100191814A1 (en) * 2008-12-23 2010-07-29 Marco Heddes System-On-A-Chip Employing A Network Of Nodes That Utilize Receive Side Flow Control Over Channels For Messages Communicated Therebetween
US8145859B2 (en) * 2009-03-02 2012-03-27 Oracle International Corporation Method and system for spilling from a queue to a persistent store
US8644157B2 (en) * 2011-03-28 2014-02-04 Citrix Systems, Inc. Systems and methods for handling NIC congestion via NIC aware application
JP5598493B2 (ja) 2012-03-30 2014-10-01 富士通株式会社 情報処理装置、演算装置および情報転送方法
CA2912941C (en) * 2013-06-13 2022-06-21 Tsx Inc. Apparatus and method for failover of device interconnect using remote memory access with segmented queue
US9619144B2 (en) * 2013-11-22 2017-04-11 Nxp Usa, Inc. Interrupt driven processing and related devices, methods and systems

Also Published As

Publication number Publication date
JP2016012283A (ja) 2016-01-21
US20150378794A1 (en) 2015-12-31
US9841992B2 (en) 2017-12-12

Similar Documents

Publication Publication Date Title
US10997093B2 (en) NVME data processing method and NVME device
US8554968B1 (en) Interrupt technique for a nonvolatile memory controller
CN107046508B (zh) 报文接收方法及网络设备
CN100504791C (zh) 多cpu对临界资源进行互斥访问的方法和装置
US8713287B2 (en) Off-loading of processing from a processor blade to storage blades based on processing activity, availability of cache, and other status indicators
JP5925846B2 (ja) 待ち時間低減パケット処理を備えたソケット管理
JP4387970B2 (ja) データ入出力プログラム,装置,および方法
US9798591B2 (en) Method, apparatus, and chip for implementing mutually-exclusive operation of multiple threads
JP6354387B2 (ja) 情報処理装置、情報処理システム及び割込装置制御方法
JP2016186719A (ja) 入出力制御装置、情報処理装置及び入出力制御装置の制御方法
JP2012043031A (ja) 共有キャッシュメモリ装置
CN110337633A (zh) 一种数据存储方法及设备
US20160266808A1 (en) Information processing device, information processing method, and recording medium
JP2008225859A (ja) Sramシステムおよびsramシステムの制御方法
JP5500272B2 (ja) 中継装置、中継履歴記録方法、及びデータ処理装置
JP2008152567A (ja) コンピュータ及びその制御方法
US20130339624A1 (en) Processor, information processing device, and control method for processor
CN111290856A (zh) 数据处理装置和方法
WO2015165055A1 (zh) 存储数据的方法、内存控制器和中央处理器
US8719499B2 (en) Cache-line based notification
JP4259390B2 (ja) 並列演算処理装置
US9811403B1 (en) Method, apparatus and system for performing matching operations in a computing system
US8307141B2 (en) Multi-core processor, control method thereof, and information processing apparatus
JP6597260B2 (ja) 情報処理装置、情報処理システム及び割込装置制御方法
US10635157B2 (en) Information processing apparatus, method and non-transitory computer-readable storage medium

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170309

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180125

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180213

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180330

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: 20180515

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180528

R150 Certificate of patent or registration of utility model

Ref document number: 6354387

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150