JP2019020853A - 情報処理装置、情報処理方法およびプログラム - Google Patents

情報処理装置、情報処理方法およびプログラム Download PDF

Info

Publication number
JP2019020853A
JP2019020853A JP2017136514A JP2017136514A JP2019020853A JP 2019020853 A JP2019020853 A JP 2019020853A JP 2017136514 A JP2017136514 A JP 2017136514A JP 2017136514 A JP2017136514 A JP 2017136514A JP 2019020853 A JP2019020853 A JP 2019020853A
Authority
JP
Japan
Prior art keywords
task
arithmetic processing
unit
executed
polling
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
JP2017136514A
Other languages
English (en)
Other versions
JP6881116B2 (ja
Inventor
優人 田邨
Yuto Tamura
優人 田邨
耕太 中島
Kota Nakajima
耕太 中島
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 JP2017136514A priority Critical patent/JP6881116B2/ja
Priority to US16/029,284 priority patent/US10884733B2/en
Publication of JP2019020853A publication Critical patent/JP2019020853A/ja
Application granted granted Critical
Publication of JP6881116B2 publication Critical patent/JP6881116B2/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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/3001Arithmetic instructions
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • G06F9/30043LOAD or STORE instructions; Clear instruction
    • 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/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

【課題】 他の装置からの情報の受信をポーリングにより判定する場合、タスクの実行が滞ることを抑止する。
【解決手段】 タスクを実行する演算処理部と、他の装置との間の通信を制御する通信制御部とを有する情報処理装置において、演算処理部は、実行可能なタスクがある場合、タスクの実行を管理する管理部と、実行可能なタスクがない場合、他の装置からの情報を通信制御部が受信したかをポーリングにより判定する判定処理を、実行可能なタスクが出現するまで実行する待機部とを有する。
【選択図】 図1

Description

本発明は、情報処理装置、情報処理方法およびプログラムに関する。
通信処理装置から受信するデータを処理する情報処理装置は、例えば、通信処理装置により設定されるフラグをポーリングすることにより、処理するデータを通信処理装置が保持していることを検出する。フラグによりデータの保持を検出した情報処理装置は、通信処理装置と通信することでデータを受信し、受信したデータを処理する。情報処理装置によるデータ処理の負荷が増加した場合、フラグをポーリングする間隔を長くすることで、データ処理の実行がデータの送受信により妨げられることを抑止する手法が提案されている(例えば、特許文献1参照)。
オペレーティングシステムにおいて、デバイスからの割り込み要求に基づく処理の完了後に、割り込み要求の受け付けを所定の期間禁止し、デバイス内のレジスタをポーリングすることで割り込みの発生を検出する手法が提案されている(例えば、特許文献2参照)。割り込み通知に基づきデータを処理するモードとポーリングに基づきデータを処理するモードとをCPU(Central Processing Unit)の負荷に応じて切り替えることで、割り込み通知に基づく処理によるCPUの占有を抑止する手法が提案されている(例えば、特許文献3参照)。
特開平7−49822号公報 特開2001−216170号公報 国際公開第2009/060530号
ポーリングによるイベントの発生の検出処理は、ソフトウェアにより実行され、CPUの状態を切り替えるコンテキストスイッチが発生しないため、コンテキストスイッチが発生する割り込み要求によるイベントの発生の検出処理に比べて高速に実行可能である。一方、CPUは、フラグ等のポーリングを繰り返し実行している間、他の処理を実行できないため、他の処理の実行が滞ってしまうおそれがある。
1つの側面では、本発明は、他の装置からの情報の受信をポーリングにより判定する場合、タスクの実行が滞ることを抑止すること目的とする。
一つの実施態様では、タスクを実行する演算処理部と、他の装置との間の通信を制御する通信制御部とを有する情報処理装置において、演算処理部は、実行可能なタスクがある場合、タスクの実行を管理する管理部と、実行可能なタスクがない場合、他の装置からの情報を通信制御部が受信したかをポーリングにより判定する判定処理を、実行可能なタスクが出現するまで実行する待機部とを有する。
1つの側面では、本発明は、他の装置からの情報の受信をポーリングにより判定する場合、タスクの実行が滞ることを抑止することができる。
情報処理装置、情報処理方法およびプログラムの一実施形態を示す図である。 図1に示す演算処理部が実行するカーネルの動作の一例を示す図である。 図1に示す情報処理装置の動作の一例を示す図である。 情報処理装置、情報処理方法およびプログラムの別の実施形態を示す図である。 図4に示す各CPUコアが実行するカーネルの概要の一例を示す図である。 図5に示す受信キューのメインメモリへの割り当ての一例を示す図である。 情報処理装置、情報処理方法およびプログラムの別の実施形態を示す図である。 図7に示す各CPUコアの動作の一例を示す図である。 図7に示す各CPUコアが実行するカーネルの動作の一例を示す図である。 図9に示すステップS40の処理の一例を示す図である。 図10に示すステップS44の処理の一例を示す図である。 図10に示すステップS44の処理の別の例を示す図である。 図9に示すステップS60の処理の一例を示す図である。 情報処理装置、情報処理方法およびプログラムの別の実施形態を示す図である。 図14に示す各CPUコアが実行するカーネルの動作の一例を示す図である。 情報処理装置、情報処理方法およびプログラムの別の実施形態を示す図である。 図16に示す各CPUコアが実行するカーネルの動作の一例を示す図である。 図17に示すステップS40Aの処理の一例を示す図である。 図17に示すステップS60Aの処理の一例を示す図である。 ポーリングフラグを持たないCPUのCPUコアが実行するカーネルの動作の一例を示す図である。
以下、図面を用いて実施形態を説明する。
図1は、情報処理装置、情報処理方法およびプログラムの一実施形態を示す。図1に示す情報処理装置100は、例えば、サーバであり、演算処理部1、通信制御部4、タスクキュー6、メインメモリ7および書き替え可能な不揮発性メモリ8を有する。演算処理部1は、CPU等のプロセッサまたはCPUコア等のプロセッサコアであり、タスクキュー6に保持されるタスクT(Ta、Tb、Tc等)を実行する。図1では、演算処理部1は、タスクキュー6に保持されたタスクTaを実行中である。演算処理部1は、管理部2と待機部3とを有する。例えば、管理部2および待機部3の機能は、演算処理部1が実行するカーネルにより実現される。カーネルは、オペレーティングシステムに含まれ、システムのリソースの管理、および、アプリケーションソフトウェアとハードウェアとのインタフェース等の基本的な機能を提供するプログラムである。
通信制御部4は、情報処理装置100に接続される他の装置110との間の通信を制御する。通信制御部4は、他の装置110から受信するパケットを順次保持する複数の記憶領域を含む受信キュー5を有する。パケットは、他の装置110から受信する情報の一例であり、メッセージ等を含む。なお、他の装置110は、パケット転送以外の手法を用いて、情報を情報処理装置100に送信し、通信制御部4は、他の装置110から受信した情報を受信キュー5に保持してもよい。また、通信制御部4は、情報処理装置100内に設けられる他の装置(演算処理部1の動作を補助するアクセラレータ等)との間の通信を制御してもよい。
管理部2は、実行可能なタスクTがタスクキュー6にある場合、タスクTの実行を管理する。待機部3は、演算処理部1で実行可能なタスクTがタスクキュー6にない場合、他の装置110からのパケットを通信制御部4が受信したかをポーリングにより判定する判定処理を、実行可能なタスクTが出現するまで実行する。すなわち、待機部3は、他の装置110からのパケットを通信制御部4が受信したか否かをポーリングにより判定する。
メインメモリ7は、演算処理部1で実行するタスクTで使用するデータ、および演算処理部1が実行する各種プログラム等を保持する。各種プログラムは、アプリケーションプログラムまたはカーネルを含むオペレーティングシステム等である。例えば、オペレーティングシステムは、図示しない入出力インタフェースを介して記録媒体130等から不揮発性メモリ8に転送された後、情報処理装置100の起動時に、不揮発性メモリ8からメインメモリ7に転送され、演算処理部1により実行される。記録媒体130は、CD(Compact Disc:登録商標)、DVD(Digital Versatile Disc:登録商標)またはUSB(Universal Serial Bus)メモリ等である。なお、アプリケーションプログラムは、図示しないハードディスク装置等に格納されており、アプリケーションプログラムの起動の指示に基づいて、ハードディスク等からメインメモリ7に転送され、演算処理部1により実行される。
図2は、図1に示す演算処理部1が実行するカーネルの動作の一例を示す。すなわち、図2は、情報処理装置100が実行する情報処理方法および情報処理装置100の演算処理部1が実行するプログラムの一例を示す。
まず、ステップS10において、カーネルは、実行可能なタスクTがタスクキュー6にある場合、処理をステップS12に移行し、実行可能なタスクTがタスクキュー6にない場合、処理をステップS20に移行する。ステップS12において、カーネルは、タスクTの実行を管理し、処理をステップS10に戻す。例えば、演算処理部1が実行中のタスクTは、実行が完了するまでタスクキュー6に保持される。
ステップS10、S12の処理は、管理部2により実行される。管理部2は、カーネルの本体部に含まれ、スケジューラおよびディスパッチャの機能を含む。スケジューラは、タスクキュー6が保持するタスクTの中から実行するタスクTを決定する。ディスパッチャは、スケジューラの決定に基づいて、実行中のタスクTの実行を中断させ、スケジューラにより決定されたタスクTの実行を演算処理部1に開始させる。
ステップS20において、カーネルは、通信制御部4の受信キュー5をポーリングする。次に、ステップS22において、カーネルは、受信キュー5にパケットがある場合、すなわち、イベントの発生を検出した場合、処理をステップS28に移行する。一方、カーネルは、受信キュー5にパケットがない場合、すなわち、イベントの発生を検出しない場合、処理をステップS24に移行する。
ステップS24において、カーネルは、例えば、タスクキュー6またはタスクキュー6の状態を示すフラグを参照して、実行可能なタスクTの有無をチェックする。次に、ステップS26において、カーネルは、タスクキュー6に実行可能なタスクTがある場合、処理をステップS12に移行し、タスクキュー6に実行可能なタスクTがない場合、処理をステップS20に移行する。ステップS20からステップS26までの処理は、実行可能なタスクTが出現するまで、他の装置110からのパケットを通信制御部4が受信したかをポーリングにより判定する判定処理の一例である。
一方、ステップS28において、カーネルは、パケットの受信処理を実行し、処理をステップS20に移行する。なお、ステップS28において、カーネルは、パケットの受信処理をカーネルの本体部に依頼してもよい。パケットの受信処理をカーネルの本体部に依頼した場合、パケットの受信処理を実行するタスクTがタスクキュー6に格納されるため、その後のステップS26において、処理はステップS12に移行される。
ステップS20からステップS28の処理は、待機部3により実行される。待機部3は、カーネルの本体部が実行する処理とは別の処理(アイドルルーチン)を実行する。タスクキュー6に実行可能なタスクTがない場合、ステップS20からS28の処理が繰り返し実行される。すなわち、待機部3は、アプリケーションプログラム等のタスクTが実行されない期間に、コンテキストスイッチが発生する割り込み処理を使用することなく、受信キュー5のポーリングを実行することができる。ポーリングは、タスクキュー6に実行可能なタスクTがない場合に実行されるため、他の装置110からの情報の受信をポーリングにより判定する場合にも、タスクTの実行が滞ることを抑止することができる。なお、図2に示すように、管理部2の動作と待機部3の動作とは排他的に実行される。
例えば、ステップS10からステップS20に処理が移行される前、演算処理部1の動作周波数は、ステップS10、S12を処理する演算処理部1の動作周波数に比べて下げられ、演算処理部1は、通常モードから消費電力を抑えた待機モードに移行する。また、ステップS26からステップS12に処理が移行される前、演算処理部1の動作周波数は、ステップS10、S12を処理する元の動作周波数に戻され、演算処理部1は、待機モードから通常モードに復帰する。
すなわち、管理部2の動作は、待機モードに比べて動作周波数が高い通常モードで実行され、待機部3の動作は、通常モードに比べて動作周波数が低い待機モードで実行される。タスクTの実行に比べて高速性が要求されない受信キュー5のポーリングを待機モードで実行することで、通常モードで実行する場合に比べて、演算処理部1および情報処理装置100の消費電力を削減することができる。
図3は、図1に示す情報処理装置100の動作の一例を示す。図3において、管理部2、待機部3およびタスクTに示す細長い矩形は、処理の実行を示す。なお、図3では、管理部2の処理を示す矩形とタスクTの処理を示す矩形とが重複しているが、実際には、演算処理部1は、処理を重複させることなく時分割で実行する。下向きの矢印で示すポーリングは、図2のステップ20の処理を示し、上向きの矢印で示すタスクチェックは、図2のステップS24の処理を示す。
図3の初期状態において、タスクキュー6は、タスクTa、Tbを保持する(図3(a))。管理部2は、タスクキュー6に保持されたタスクTa、Tbのうち、タスクTaの実行を決定し、演算処理部1は、タスクTaを実行する(図3(b))。タスクTaの実行後、管理部2は、タスクキュー6に保持されたタスクTbの実行を決定し、演算処理部1は、タスクTbを実行する(図3(c))。
タスクTbの実行により、タスクキュー6は空になるため、管理部2は、処理を停止し、待機部3(アイドルルーチン)が管理部2に代わって処理を開始する(図3(d))。図2で説明したように、待機部3は、ポーリングとタスクチェックとを交互に実行し、2回目のポーリングで受信キュー5がパケットP0を保持したことを検出する(図3(e))。演算処理部1は、タスクTが実行されない期間にポーリングを実行し、タスクTが実行される期間にポーリングを実行しない。すなわち、ポーリングは、タスクTの実行と競合することなく実行される。このため、他の装置110からのパケットの受信をポーリングにより判定する場合にも、タスクTの実行が滞ることを抑止することができる。
図3に示す例では、待機部3は、パケットP0の受信処理をカーネルの本体部に依頼する。カーネルの本体部は、パケットの受信処理の依頼に基づいて、パケットP0の受信処理を実行するタスクT0をタスクキュー6に格納する(図3(f))。待機部3は、タスクチェックにおいて、タスクキュー6に実行可能なタスクT0が保持されたことを検出し、処理を終了する(図3(g))。
管理部2は、待機部3に代わって処理を開始し、タスクキュー6に保持されたタスクT0の実行を決定する(図3(h))。演算処理部1は、タスクT0の実行を開始し、受信キュー5に保持されたパケットP0の受信処理を実行する(図3(i))。タスクT0の実行により、タスクキュー6は空になるため、管理部2は、処理を停止し、待機部3が管理部2に代わって処理を開始する(図3(j))。
待機部3は、ポーリングとタスクチェックとを交互に実行し、タスクチェックによりタスクキュー6に新たに保持されたタスクTcを検出し、処理を終了する(図3(k))。管理部2は、待機部3に代わって処理を開始し、タスクキュー6に保持されたタスクTcの実行を決定する(図3(l))。演算処理部1は、タスクTcを実行する(図3(m))。
タスクTcの実行により、タスクキュー6は空になるため、管理部2は、処理を停止し、待機部3が管理部2に代わって処理を開始する(図3(n))。待機部3は、ポーリングで受信キュー5がパケットP1を保持することを検出する(図3(o))。パケットP1の受信処理を待機部3から依頼されたカーネルの本体部は、パケットP1の受信処理を実行するタスクT1をタスクキュー6に格納する(図3(p))。待機部3は、タスクチェックにおいて、タスクキュー6に実行可能なタスクT1が保持されたことを検出し、処理を終了する(図3(q))。
管理部2は、待機部3に代わって処理を開始し、タスクキュー6に保持されたタスクT1の実行を決定する(図3(r))。演算処理部1は、タスクT1の実行を開始し、受信キュー5に保持されたパケットP1の受信処理を実行する(図3(s))。
以上、図1から図3に示す実施形態では、他の装置110からのパケットの受信をポーリングにより判定する場合にも、タスクTの実行が滞ることを抑止することができる。換言すれば、タスクTが実行されないアイドルルーチンの期間にポーリングを実行するため、情報処理装置100によるタスクTの処理性能を低下させることなく、受信キュー5のポーリングを実行することができる。また、受信キュー5のポーリングを待機モードで実行することで、通常モードで実行する場合に比べて、情報処理装置100の消費電力を削減することができる。
図4は、情報処理装置、情報処理方法およびプログラムの別の実施形態を示す。図4に示すノード100Aは、CPU10、メインメモリ20、フラッシュメモリ30、ネットワークインタフェースNIC(Network Interface Controller)、ディスクインタフェースDIO、通信インタフェースCIF、HDD(Hard Disk Drive)およびFPGA(Field-Programmable Gate Array)を有する。CPU10は、複数のCPUコア12(12a、12b、12c、12d)、キャッシュ制御部14およびキャッシュメモリ16を有する。なお、CPUコア12の数は、4つに限定されない。
例えば、ノード100Aは、HPC(High Performance Computing)分野で使用されるサーバ等であり、情報処理装置の一例である。各CPUコア12a−12dは、演算処理部の一例である。ネットワークインタフェースNIC、ディスクインタフェースDIOおよび通信インタフェースCIFの各々は、通信制御部の一例である。ノード100Aは、ネットワーク120を介して他のノード112に接続され、ノード100A、112により情報処理システムが構築される。ノード112、HDDおよびFPGAは、他の装置の一例である。
キャッシュ制御部14は、CPUコア12に入出力するデータを制御し、ネットワークインタフェースNIC、ディスクインタフェースDIOおよび通信インタフェースCIFに入出力するデータを制御する。例えば、キャッシュ制御部14は、CPUコア12による読み出し対象のデータがキャッシュメモリ16に保持される場合(キャッシュヒット)、キャッシュメモリ16から読み出したデータをCPUコアに出力する。キャッシュ制御部14は、CPUコア12による読み出し対象のデータがキャッシュメモリ16に保持されていない場合(キャッシュミス)、メインメモリ20から読み出したデータをCPUコアに出力するとともに、キャッシュメモリ16に格納する。
メインメモリ20は、各CPUコア12a−12dで処理するデータ、および各CPUコア12a−12dが実行する各種プログラム(アプリケーションプログラムおよびカーネルを含むオペレーティングシステム等)を保持する。例えば、オペレーティングシステムは、記録媒体130等からフラッシュメモリ30に転送された後、ノード100Aの起動時にフラッシュメモリ30からメインメモリ20に転送され、CPUコア12a−12dにより実行される。アプリケーションプログラムは、アプリケーションプログラムの起動の指示に基づいて、HDDからメインメモリ20に転送され、CPUコア12a−12dのいずれかにより実行される。
ネットワークインタフェースNICは、CPU10とネットワーク120との間での通信を制御する機能を有する。ネットワークインタフェースNICは、ネットワーク120を介して他のノード112等から受信するパケットを保持する複数の受信キューRQUE0を有する。例えば、ネットワークインタフェースNICは、4つのCPUコア12a−12dの各々に対応する4つの受信キューRQUE0を有する。各受信キューRQUE0に保持されるパケットは、対応するCPUコア12により優先的に処理されるが、対応するCPUコア12以外のCPUコア12で処理されてもよい。ネットワークインタフェースNICは、各CPUコア12がネットワーク120に出力するパケットを保持する図示しない送信キューを有する。
ディスクインタフェースDIOは、CPU10とHDDとの間での通信を制御する機能を有する。ディスクインタフェースDIOは、HDDから受信するデータ等を含むパケットを保持する複数の受信キューRQUE1を有する。例えば、ディスクインタフェースDIOは、4つのCPUコア12a−12dの各々に対応する4つの受信キューRQUE1を有する。ディスクインタフェースDIOは、各CPUコア12がHDDに出力する書き込みデータ等を含むパケットを保持する図示しない送信キューを有する。
通信インタフェースCIFは、CPU10とFPGAとの間での通信を制御する機能を有する。通信インタフェースCIFは、FPGAから受信する処理データ等を含むパケットを保持する複数の受信キューRQUE2を有する。例えば、通信インタフェースCIFは、4つのCPUコア12a−12dの各々に対応する4つの受信キューRQUE2を有する。通信インタフェースCIFは、各CPUコア12がFPGAに出力する処理データ等を含むパケットを保持する図示しない送信キューを有する。なお、受信キューRQUE0、RQUE1、RQUE2は、メインメモリ20の所定の記憶領域に割り当てられてもよい。以下では、受信キューRQUE0、RQUE1、RQUE2が、メインメモリ20に割り当てられる例が説明される。受信キューRQUE0、RQUE1、RQUE2は、パケットを保持する保持部の一例である。
図5は、図4に示す各CPUコア12が実行するカーネル50の概要の一例を示す。カーネル50は、カーネル本体部60、アイドルルーチン70、NICドライバ90、DIOドライバ91およびCIFドライバ92を有する。カーネル本体部60は、管理部の一例であり、アイドルルーチン70は、待機部の一例である。
カーネル本体部60は、タスクキュー22が保持するタスクTの中から実行するタスクTを決定するスケジューラ62と、スケジューラにより決定されたタスクTを対応するCPUコア12に実行させるディスパッチャ64とを有する。なお、タスクキュー22は、例えば、メインメモリ20の記憶領域に割り当てられる。カーネル本体部60とアイドルルーチン70が実行する処理は、排他的に実行される。
アイドルルーチン70は、タスクチェック処理72およびポーリング処理74を有する。タスクチェック処理72は、タスクキュー22またはタスクキュー22の状態を示すフラグを参照して実行可能なタスクTの有無をチェックする。ポーリング処理74は、メインメモリ20等に割り当てられるポーリングリスト80、81、82が保持するアドレス情報に基づいて、受信キューRQUE0、RQUE1、RQUE2をポーリングする処理を実行する。
ポーリングリスト80は、ネットワークインタフェースNIC(図4)の動作を制御するNICドライバ90が管理する4つの受信キューRQUE0の各々に割り当てられるアドレスAD0(AD00、AD01、AD02、AD03)を保持する。ポーリングリスト81は、ディスクインタフェースDIO(図4)の動作を制御するDIOドライバ91が管理する4つの受信キューRQUE1の各々に割り当てられるアドレスAD1(AD10、AD11、AD12、AD13)を保持する。ポーリングリスト82は、通信インタフェースCIF(図4)の動作を制御するCIFドライバ92が管理する4つの受信キューRQUE2の各々に割り当てられるアドレスAD2(AD20、AD21、AD22、AD23)を保持する。ポーリングリスト80、81、82は、CPU10に設けられるレジスタ等に割り当てられてもよい。
図5に示すカーネル50の動作は、CPUコア12毎に実行されることを除き、図2に示す動作フローと同様である。すなわち、カーネル本体部60の動作は、図2の管理部2の動作と同様であり、アイドルルーチン70の動作は、図2に示す待機部3の動作と同様である。
各CPUコア12a−12dのカーネル50は、アイドルルーチン70のポーリング処理74において、ポーリングリスト80、81、82のアドレスADを順次参照し、全ての受信キューRQUE0、RQUE1、RQUE2の状態をポーリングする。なお、各CPUコア12a−12dのカーネル50による排他制御により、複数のCPUコア12が同一のパケットの受信処理を重複して実行することはない。
図4に示すノード100Aの動作は、複数のCPUコア12a−12dが実行するアイドルルーチンにより受信キューRQUE0、RQUE1、RQUE2がポーリングされることを除き、図3に示した動作と同様である。すなわち、ノード100Aでは、各CPUコア12a−12dが、図3に示す演算処理部1の動作と同様の動作を実行する。
図6は、図5に示す受信キューRQUE0、RQUE1、RQUE2のメインメモリ20への割り当ての一例を示す。ネットワークインタフェースNICにおいて、CPUコア12aに対応する受信キューRQUE0は、アドレスAD00を先頭とする所定サイズの記憶領域に割り当てられる。CPUコア12bに対応する受信キューRQUE0は、アドレスAD01を先頭とする所定サイズの記憶領域に割り当てられる。CPUコア12cに対応する受信キューRQUE0は、アドレスAD02を先頭とする所定サイズの記憶領域に割り当てられる。CPUコア12dに対応する受信キューRQUE0は、アドレスAD03を先頭とする所定サイズの記憶領域に割り当てられる。
同様に、ディスクインタフェースDIOにおいて、各CPUコア12a−12dに対応する4つの受信キューRQUE1の各々は、アドレスAD10、AD11、AD12、AD13のそれぞれを先頭とする所定サイズの記憶領域に割り当てられる。通信インタフェースCIFにおいて、各CPUコア12a−12dに対応する4つの受信キューRQUE2の各々は、アドレスAD20、AD21、AD22、AD23のそれぞれを先頭とする所定サイズの記憶領域に割り当てられる。
以上、図4から図6に示す実施形態では、各CPUコア12a−12dが実行するアイドルルーチンにより、他のノード112、HDDまたはFPGAからのパケットの受信をポーリングにより判定することで、タスクTの実行が滞ることを抑止することができる。すなわち、タスクTが実行されないアイドルルーチンの期間にポーリングを実行することで、ノード100AによるタスクTの処理性能を低下させることなく、各受信キューRQUE0、RQUE1、RQUE2のポーリングを実行することができる。
図7は、情報処理装置、情報処理方法およびプログラムの別の実施形態を示す。図4で説明した要素と同一または同様の要素については、同一の符号を付し、詳細な説明は省略する。図7に示すノード100Bは、図4に示すCPU10の代わりにCPU10Bを有することを除き、図4に示すノード100Aと同じである。CPU10Bは、CPUコア12a、12b、12c、12dにより参照および設定が可能なポーリングフラグPFLGを有することを除き、図4に示すCPU10と同じである。
ポーリングフラグPFLGは、CPUコア12a、12b、12c、12dがそれぞれ実行するカーネルのいずれか1つのみで、受信キューRQUE0、RQUE1、RQUE2をポーリングするために設けられる。例えば、ポーリングフラグPFLGが”0”の場合、CPUコア12a、12b、12c、12dのいずれも、受信キューRQUE0、RQUE1、RQUE2をポーリングしていないことを示す。ポーリングフラグPFLGが”1”の場合、CPUコア12a、12b、12c、12dのいずれか1つが、受信キューRQUE0、RQUE1、RQUE2をポーリングしていることを示す。
各CPUコア12が実行するカーネルの概要は、ポーリングフラグPFLGを”1”に設定したアイドルルーチン70のみが受信キューRQUE0−RQUE2のポーリングを実行することを除き、図5に示すカーネルの概要と同じである。換言すれば、図7に示すCPUコア12a−12dの各々が実行するカーネルにおいて、ポーリングフラグPFLGを”1”に設定していないアイドルルーチン70(図5)は、タスクチェック処理72のみを実行する。
図8は、図7に示す各CPUコア12a−12dの動作の一例を示す。図8では、説明を簡単にするために、各タスクTの実行時間と、タスクTが実行されないアイドルルーチンIDLEの実行時間とは、互いに同じであるとする。アイドルルーチンIDLEが実行する処理の例は、図9に示す。
時刻t1において、CPUコア12a−12dは、タスクTa、Tb、Tc、Tdをそれぞれ実行する。タスクTを実行中のCPUコア12は、アイドルルーチンIDLEを実行しない。時刻t2において、CPUコア12aは、タスクTeを実行し、CPUコア12b、12c、12dは、アイドルルーチンIDLEを実行する。図8において、網掛けで示すアイドルルーチンIDLEは、受信キューRQUE0、RQUE1、RQUE2のポーリングと、実行可能なタスクTの有無のチェックとを実行することを示す。白抜きで示すアイドルルーチンIDLEは、受信キューRQUE0、RQUE1、RQUE2のポーリングを実行せず、実行可能なタスクTの有無のチェックのみを実行することを示す。すなわち、時刻t2では、アイドルルーチンIDLEを実行するCPUコア12b、12c、12dのうち、CPUコア12dのみが、受信キューRQUE0、RQUE1、RQUE2のポーリングを実行する。網掛けで示すアイドルルーチンIDLEを実行するCPUコア12は、第1の演算処理部の一例であり、白抜きで示すアイドルルーチンIDLEを実行するCPUコア12は、第2の演算処理部の一例である。
時刻t3において、CPUコア12b、12cは、タスクTf、Tgをそれぞれ実行し、CPUコア12a、12dは、アイドルルーチンIDLEを実行する。受信キューRQUE0、RQUE1、RQUE2のポーリングは、時刻t2からアイドルルーチンIDLEを実行しているCPUコア12dにより継続して実行される。
この後、時刻t4から時刻t6においても、アイドルルーチンIDLEを実行するCPUコア12が複数存在する場合、CPUコア12のいずれか1つが、受信キューRQUE0、RQUE1、RQUE2のポーリングを実行する。アイドルルーチンIDLEを実行するCPUコア12が1つのみ存在する場合、アイドルルーチンIDLEを実行するCPUコア12が、受信キューRQUE0、RQUE1、RQUE2のポーリングを実行する。アイドルルーチンIDLEを実行するCPUコア12が存在しない場合、アイドルルーチンIDLEは実行されない。
なお、予め決められた1つのCPUコア12のみが、アイドルルーチンIDLEで受信キューRQUE0、RQUE1、RQUE2のポーリングを実行してもよい。例えば、CPUコア12aのみで受信キューRQUE0、RQUE1、RQUE2のポーリングを実行する場合、ポーリングは、時刻t1から時刻t6のうち、タスクTが実行されない時刻t3と時刻t6とで実行される。CPUコア12aは、図2に示したアイドルルーチンの処理を実行し、他のCPUコア12b−12dは、図2に示したアイドルルーチンからステップS20、S22を除いた処理を実行する。予め決められた1つのCPUコア12のみで受信キューRQUE0、RQUE1、RQUE2のポーリングを実行する場合、CPUコア12a−12dのいずれでポーリングを実行するかを決める処理は実行されない。このため、CPUコア12a−12dのいずれでポーリングを実行するかを決める場合に比べて、アイドルルーチンの処理を簡易にすることができる。
図9は、図7に示す各CPUコア12a−12dが実行するカーネルの動作の一例を示す。すなわち、図9は、情報処理装置の一例であるノード100Bが実行する情報処理方法およびノード100Bの各CPUコア12が実行するプログラムの一例を示す。図2と同じ処理については、同じ符号を付し、詳細な説明は省略する。
まず、ステップS10において、カーネルは、実行可能なタスクTがある場合、処理をステップS12に移行し、実行可能なタスクTのいずれもない場合、処理をステップS30に移行する。ステップS12において、カーネルは、タスクTの実行を管理し、処理をステップS10に戻す。ステップS10、S12の処理は、図5に示すカーネル本体部60により実行される。
ステップS30において、アイドルルーチンは、ポーリングフラグPFLGが”0”の場合、受信キューRQUEをポーリングしているCPUコア12がないため、受信キューRQUEをポーリングするために、処理をステップS40に移行する。一方、アイドルルーチンは、ポーリングフラグPFLGが”0”でない場合(すなわち、”1”)、受信キューRQUEをポーリングしているCPUコア12が既に存在するため、処理をステップS60に移行する。
ステップS40において、アイドルルーチンは、図7に示す受信キューRQUE0、RQUE1、RQUE2をポーリングする処理と、実行可能なタスクTの有無をチェックする処理とを実行する。ステップS60において、アイドルルーチンは、受信キューRQUE0、RQUE1、RQUE2をポーリングせずに、実行可能なタスクTの有無のみをチェックする処理を実行する。ステップS40、S60の後、処理はステップS12に移行される。ステップS40の例は、図10に示され、ステップS60の例は、図13に示される。ステップS30、S40、S60の処理は、図5に示すアイドルルーチン70により実行される。
ポーリングフラグPFLGは、後述するステップS40の処理において”1”に設定される。ポーリングフラグPFLGが”1”に設定された後にアイドルルーチンを実行する他のCPUコア12は、受信キューRQUEのポーリングを実行しないステップS60の処理を実行する。すなわち、受信キューRQUEのポーリングを実行するステップS40の処理は、CPUコア12のいずれか1つのみで実行され、他のCPUコア12は、受信キューRQUEのポーリングを実行しない。これにより、受信キューRQUEのポーリングがCPUコア12a−12dにより重複して実行されることを抑止することができ、CPUコア12a−12dが実行する命令の総数を削減することができる。この結果、全てのCPUコア12a−12dが受信キューRQUEをポーリングする場合に比べて、CPU10Bの消費電力を削減することができる。
また、全てのCPUコア12a−12dが受信キューRQUEのポーリングを実行する場合で、複数のCPUコア12が重複してパケットの受信を検出した場合、パケットの受信処理を実行するCPUコア12を決める調停処理が実行される。これに対して、1つのCPUコア12が受信キューRQUEのポーリングを実行する場合、調停処理を省略することができ、CPU10Bの消費電力をさらに削減することができる。
なお、図2と同様に、アイドルルーチンを実行する待機モードでのCPUコア12の動作周波数は、カーネル本体部を実行する通常モードでのCPUコア12の動作周波数に比べて低く設定される。これにより、受信キューRQUEのポーリングを通常モードで実行する場合に比べて、ノード100Bの消費電力を削減することができる。
図10は、図9に示すステップS40の処理の一例を示す。図2と同じ処理については、詳細な説明は省略する。図10に示すステップS44、S46、S48、S50、S52のそれぞれの処理は、図2に示すステップS20、S22、S24、S26、S28のそれぞれの処理と同様である。
まず、ステップS42において、アイドルルーチンは、ポーリングフラグPFLGを”1”に設定する。これにより、図10に示すステップS40を実行するCPUコア12は、受信キューRQUEのポーリングを排他的に実行する。次に、ステップS44において、アイドルルーチンは、受信キューRQUE0、RQUE1、RQUE2をポーリングする。次に、ステップS46において、アイドルルーチンは、受信キューRQUE0、RQUE1、RQUE2のいずれかにパケットがある場合、処理をステップS52に移行する。アイドルルーチンは、受信キューRQUE0、RQUE1、RQUE2のいずれにもパケットがない場合、処理をステップS48に移行する。ステップS52において、アイドルルーチンは、パケットの受信処理を実行し、あるいは、パケットの受信処理をカーネル本体部60(図5)に依頼し、処理をステップS44に移行する。
ステップS48において、アイドルルーチンは、例えば、タスクキュー22(図5)を参照して、実行可能なタスクTの有無をチェックする。次に、ステップS50において、アイドルルーチンは、タスクキュー22に実行可能なタスクTがある場合、処理をステップS54に移行し、タスクキュー22に実行可能なタスクTがない場合、処理をステップS44に移行する。ステップS50において、タスクキュー22に実行可能なタスクTがあることが検出された場合、アイドルルーチンは終了され、カーネル本体部の処理が実行される。この場合、受信キューRQUEのポーリングの実行を、他のCPUコア12に任せるため、ステップS54において、アイドルルーチンは、ポーリングフラグPFLGを”0”に設定し、処理を終了する。
図11は、図10に示すステップS44の処理の一例を示す。ポーリングフラグPFLGの”0”を検出したアイドルルーチンは、ステップS44において、全ての受信キューRQUE0、RQUE1、RQUE2のポーリングを順次実行する。これにより、実行可能なタスクTがないCPUコア12に対応する受信キューRQUEだけでなく、タスクTを実行中のCPUコア12aに対応する受信キューRQUEのポーリングも実行することができる。したがって、CPUコア12の状態に依存せず、受信キューRQUEのポーリングを平等に実行することができる。また、CPUコア12のいずれか1つが実行するアイドルルーチンのみが受信キューRQUEをポーリングすることで、複数のCPUコア12aでポーリングする場合に比べて、ポーリングの制御を簡易にすることができる。
図12は、図10に示すステップS44の処理の別の例を示す。図12に示す例は、CPUコア12a−12dのうち、CPUコア12aのカーネルが図10に示すポーリング付きのアイドルルーチンを実行する場合の例を示す。
ステップS44において、CPUコア12aは、CPUコア12aに割り当てられた受信キューRQUE0(AD00)、RQUE1(AD10)、RQUE2(AD20)を順次ポーリングする。この後、CPUコア12aは、CPUコア12bに割り当てられた受信キューRQUE0(AD01)、RQUE1(AD11)、RQUE2(AD21)を順次ポーリングする。
次に、CPUコア12aは、CPUコア12aに割り当てられた受信キューRQUE0(AD00)、RQUE1(AD10)、RQUE2(AD20)を順次ポーリングする。この後、CPUコア12aは、CPUコア12cに割り当てられた受信キューRQUE0(AD02)、RQUE1(AD12)、RQUE2(AD22)を順次ポーリングし、2回目のステップS44の処理を終了する。
次に、CPUコア12aは、CPUコア12aに割り当てられた受信キューRQUE0(AD00)、RQUE1(AD10)、RQUE2(AD20)を順次ポーリングする。この後、CPUコア12aは、CPUコア12dに割り当てられた受信キューRQUE0(AD03)、RQUE1(AD13)、RQUE2(AD23)を順次ポーリングし、ステップS44の処理を終了する。
すなわち、図12に示す例では、ステップS44の処理を実行するCPUコア12は、自CPUコア12に対応する受信キューRQUEのポーリングと、他のCPUコア12に対応する受信キューRQUEのポーリングとを交互に実行する。これにより、自CPUコア12に対応する受信キューRQUEのポーリングを優先的に実行することができ、自CPUコア12で実行すべきタスクTを優先的に実行することができる。
図13は、図9に示すステップS60の処理の一例を示す。図2と同じ処理については、詳細な説明は省略する。図13に示すステップS62、S64のそれぞれの処理は、図2に示すステップS24、S26のそれぞれの処理と同様である。
まず、ステップS62において、アイドルルーチンは、例えば、タスクキュー22(図5)を参照して、実行可能なタスクTの有無をチェックする。次に、ステップS64において、アイドルルーチンは、タスクキュー22に実行可能なタスクTがある場合、処理を終了し、タスクキュー22に実行可能なタスクTがない場合、処理をステップS66に移行する。
ステップS66において、アイドルルーチンは、ポーリングフラグPFLGが”0”の場合、受信キューRQUEをポーリングしているCPUコア12がない。この場合、アイドルルーチンは、受信キューRQUEをポーリングするために、処理を図10のステップS42にジャンプする。一方、ポーリングフラグPFLGが”0”でない場合(すなわち、”1”)、受信キューRQUEをポーリングしているCPUコア12が既に存在する。この場合、実行可能なタスクTの有無のみをチェックするため、処理をステップS62に移行する。
以上、図7から図13に示す実施形態においても、図1から図6に示す実施形態と同様に、他のノード112、HDDまたはFPGAからのパケットの受信をポーリングにより判定する場合にも、タスクTの実行が滞ることを抑止することができる。受信キューRQUEのポーリングを待機モードで実行することで、通常モードで実行する場合に比べて、ノード100Bの消費電力を削減することができる。
さらに、図7から図13に示す実施形態では、受信キューRQUEのポーリングをCPUコア12のいずれか1つのみで実行することで、受信キューRQUEのポーリングが複数のCPUコア12により重複して実行されることを抑止することができる。これにより、CPUコア12a−12dが実行する命令の総数を削減することができ、全てのCPUコア12a−12dが受信キューRQUEをポーリングする場合に比べて、CPU10Bの消費電力を削減することができる。
1つのCPUコア12が全ての受信キューRQUEをポーリングすることで、実行可能なタスクTがないCPUコア12に対応する受信キューRQUEだけでなく、タスクTを実行中のCPUコア12aに対応する受信キューRQUEもポーリングすることができる。したがって、CPUコア12の状態に依存せず、受信キューRQUEのポーリングを平等に実行することができる。また、CPUコア12のいずれか1つが実行するアイドルルーチンのみが受信キューRQUEをポーリングすることで、複数のCPUコア12aでポーリングする場合に比べて、ポーリングの制御を簡易にすることができる。
自CPUコア12に対応する受信キューRQUEのポーリングと、他のCPUコア12に対応する受信キューRQUEのポーリングとを交互に実行することで、自CPUコア12に対応する受信キューRQUEのポーリングを優先的に実行することができる。この結果、自CPUコア12で実行すべきタスクTを優先的に実行することができる。
図14は、情報処理装置、情報処理方法およびプログラムの別の実施形態を示す。図4および図7で説明した要素と同一または同様の要素については、同一の符号を付し、詳細な説明は省略する。
図14に示すノード100Cは、図7に示すCPU10Bの代わりにCPU10Cを有する。また、ノード100Cは、GPU(Graphics Processing Unit)等のプロセッサと、CPU10CとFPGAとの間での通信を制御する通信インタフェースCIF2とを有する。通信インタフェースCIF2は、通信制御部の一例であり、GPUは、他の装置の一例である。CPU10Cのその他の構成は、図7に示すCPU10Bと同様である。各CPUコア12が実行するカーネルの概要は、通信インタフェースCIF2の動作を制御するCIF2ドライバを有することを除き、図5に示すカーネルの概要と同じである。
通信インタフェースCIF2は、GPUから受信するデータ等を含むパケットを保持する複数の受信キューRQUE3を有する。例えば、通信インタフェースCIF2は、4つのCPUコア12a−12dの各々に対応する4つの受信キューRQUE3を有する。通信インタフェースCIF2は、各CPUコア12a−12dがGPUに出力する処理データ等を含むパケットを保持する図示しない送信キューを有する。
図15は、図14に示す各CPUコアが実行するカーネルの動作の一例を示す。すなわち、図15は、情報処理装置の一例であるノード100Cが実行する情報処理方法およびノード100Cの各CPUコア12が実行するプログラムの一例を示す。図2および図9と同じ処理については、同じ符号を付し、詳細な説明は省略する。ステップS10、S12の処理は、図2に示すステップS10、S12の処理と同じである。ステップS10、S12の処理は、図5に示すカーネル本体部60により実行される。
ステップS20、S22、S24、S26、S28の処理は、各ステップS26、S28の後にステップS30に移行することを除き、図3に示すステップS20、S22、S24、S26、S28の処理と同じである。ステップS30、S40、S60の処理は、図9に示すステップS30、S40、S60の処理と同じである。ステップS20、S22、S24、S26、S28、S30、S40、S60の処理は、図5に示すアイドルルーチン70により実行される。
図15に示すアイドルルーチンは、ステップS30によるポーリングフラグPFLGの判定を実行する前に、受信キューRQUEのポーリングと実行可能なタスクTの有無のチェックとを1回ずつ実行する。すなわち、この実施形態では、全てのアイドルルーチンは、ポーリングフラグPFLGの値に拘わらず、受信キューRQUEのポーリングと実行可能なタスクTの有無のチェックとを1回ずつ実行する。
例えば、図8の時刻t1、t2(または時刻t4、t5)に示すように、全てのCPUコア12でタスクTを実行中に、複数の受信キューRQUEに複数のパケットが格納される可能性がある。タスクTの実行中に複数の受信キューRQUEにパケットが格納される可能性は、ネットワークインタフェースNIC、ディスクインタフェースDIOおよび通信インタフェースCIFの数が多いほど高くなる。この場合、ポーリングフラグPFLGの値に拘わらず、アイドルルーチンの最初で受信キューRQUEをポーリングすることで、複数のCPUコア12により、受信キューRQUEに保持されたパケットを効率よく処理することができる。この結果、パケットの受信処理が滞ることを抑止することができる。
なお、ステップS20、S22、S24、S26、S28の処理は、ステップS30を実行する前に、複数回繰り返し実行されてもよい。また、図2と同様に、アイドルルーチンを実行する待機モードでのCPUコア12の動作周波数は、カーネル本体部を実行する通常モードでのCPUコア12の動作周波数に比べて低く設定される。これにより、受信キューRQUEのポーリングを通常モードで実行する場合に比べて、ノード100Cの消費電力を削減することができる。
以上、図14および図15に示す実施形態においても、図1から図13に示す実施形態と同様に、他のノード112、HDD、FPGAまたはGPUからのパケットの受信をポーリングにより判定する場合にも、タスクTの実行が滞ることを抑止することができる。受信キューRQUEのポーリングを待機モードで実行することで、通常モードで実行する場合に比べて、ノード100Cの消費電力を削減することができる。
さらに、図14から図15に示す実施形態では、ポーリングフラグPFLGの値に拘わらず、アイドルルーチンの最初で受信キューRQUEをポーリングすることで、受信キューRQUEに保持されたパケットを効率よく処理することができる。この結果、パケットの受信処理が滞ることを抑止することができる。
図16は、情報処理装置、情報処理方法およびプログラムの別の実施形態を示す。図4および図7で説明した要素と同一または同様の要素については、同一の符号を付し、詳細な説明は省略する。図16に示すノード100Dは、図7に示すCPU10Bの代わりにCPU10Dを有することを除き、図7に示すノード100Bと同様である。
CPU10Dは、CPUコア12a、12b、12c、12dにより参照および設定が可能な割り込みフラグIFLGを有する。また、CPU10Dは、ネットワークインタフェースNIC、ディスクインタフェースDIOおよび通信インタフェースCIFの各々から割り込み信号INT0、INT1、INT2を受信する機能を有する。CPU10Dのその他の機能は、図7に示すCPU10Bの機能と同じである。各CPUコア12が実行するカーネルの概要は、図5に示すカーネルの概要と同じである。
ネットワークインタフェースNICは、受信キューRQUE0にパケットが格納された場合に割り込み信号INT0を出力する割り込み動作モードを有する。ディスクインタフェースDIOは、受信キューRQUE1にパケットが格納された場合に割り込み信号INT1を出力する割り込み動作モードを有する。通信インタフェースCIFは、受信キューRQUE2にパケットが格納された場合に割り込み信号INT2を出力する割り込み動作モードを有する。
”0”の割り込みフラグIFLGは、ネットワークインタフェースNIC、ディスクインタフェースDIOおよび通信インタフェースCIFの各々が割り込み信号INT0、INT1、INT2を出力しない非割り込み動作モードであることを示す。非割り込み動作モードでは、各CPUコア12は、ポーリングにより受信キューRQUEに保持されたパケットを検出する。”1”の割り込みフラグIFLGは、ネットワークインタフェースNIC、ディスクインタフェースDIOおよび通信インタフェースCIFの各々が割り込み信号INT0、INT1、INT2を出力する割り込み動作モードであることを示す。割り込み動作モードでは、各CPUコア12は、割り込み信号INT0、INT1、INT2により受信キューRQUEに保持されたパケットを検出する。換言すれば、割り込み動作モードでは、各CPUコア12は、受信キュー5をポーリングしない。なお、割り込みフラグIFLGは、ノード100Dの電源投入時等の初期化時に”0”にリセットされる。
図17は、図16に示す各CPUコアが実行するカーネルの動作の一例を示す。すなわち、図17は、情報処理装置の一例であるノード100Dが実行する情報処理方法およびノード100Dの各CPUコア12が実行するプログラムの一例を示す。図2および図9と同じ処理については、同じ符号を付し、詳細な説明は省略する。ステップS10、S12の処理は、図9に示すステップS10、S12の処理と同じであり、図5に示すカーネル本体部60により実行される。
ステップS30において、アイドルルーチンは、ポーリングフラグPFLGが”0”の場合、処理をステップS32に移行し、ポーリングフラグPFLGが”0”でない場合(すなわち、”1”)、処理をステップS60Aに移行する。ステップS60Aでは、受信キューRQUE0、RQUE1、RQUE2をポーリングしないアイドルルーチンが実行される。
ステップS32において、アイドルルーチンは、割り込みフラグIFLGが”1”の場合、受信キュー5をポーリングしないため、処理をステップS60Aに移行する。一方、アイドルルーチンは、割り込みフラグIFLGが”1”でない場合(すなわち、”0”)、受信キュー5をポーリングするため、処理をステップS40Aに移行する。
ステップS40Aの例は、図18に示され、ステップS60Aの例は、図19に示される。ステップS40A、S60Aの後、処理はステップS12に移行される。ステップS30、S32、S40A、S60Aの処理は、図5に示すアイドルルーチン70により実行される。なお、割り込みフラグIFLGが”1”の場合、図15と同様に、ステップS30の前に、ステップS20、S22、S24、S26、S28の処理が実行されてもよい。
例えば、図2と同様に、アイドルルーチンを実行する待機モードでのCPUコア12の動作周波数は、カーネル本体部を実行する通常モードでのCPUコア12の動作周波数に比べて低く設定される。これにより、受信キューRQUEのポーリングを通常モードで実行する場合に比べて、ノード100Dの消費電力を削減することができる。
図18は、図17に示すステップS40Aの処理の一例を示す。図10と同じ処理については、同じ符号を付し、詳細な説明は省略する。まず、ステップS42において、アイドルルーチンは、ポーリングフラグPFLGを”1”に設定する。次に、ステップS43において、アイドルルーチンは、受信キューRQUE0、RQUE1、RQUE2でのパケットの受信の頻度が、予め設定された所定の頻度より低下したか否かを判定する。パケットの受信の頻度が所定の頻度より低下した場合、処理はステップS56に移行され、パケットの受信の頻度が所定の頻度以上である場合、処理はステップS44に移行される。例えば、アイドルルーチンは、受信キューRQUEに保持されたパケットを検出することなく、ステップS43、S44、S46、S48、S50のループを所定の回数実行した場合、パケットの受信の頻度が所定の頻度より低下したと判定する。換言すれば、アイドルルーチンは、受信キューRQUE0、RQUE1、RQUE2がパケットを受信しない時間が所定時間を超えた場合、パケットの受信の頻度が所定の頻度より低下したと判定する。
ステップS44、S46、S48、S50、S52、S54の処理は、図10に示すステップS44、S46、S48、S50、S52、S54の処理と同じである。但し、ステップS50において、アイドルルーチンは、タスクキュー22に実行可能なタスクTがない場合、処理をステップS43に移行する。
一方、ステップS56において、アイドルルーチンは、割り込みフラグIFLGを”1”に設定する。次に、ステップS58において、アイドルルーチンは、割り込み信号INT(INT0−INT2)をパケットの受信に応じて出力する指示を、ネットワークインタフェースNIC、ディスクインタフェースDIOおよび通信インタフェースCIFに通知する。ネットワークインタフェースNIC、ディスクインタフェースDIOおよび通信インタフェースCIFは、アイドルルーチンからの指示に基づいて、動作モードを非割り込み動作モードから割り込み動作モードに遷移する。非割り込み動作モードは、割り込み信号INTを出力しない動作モードであり、割り込み動作モードは、割り込み信号INTを出力する動作モードである。
そして、ステップS58の後、アイドルルーチンは、図19に示すステップS62にジャンプすることで、受信キューRQUEのポーリングを停止する。すなわち、パケットの受信の頻度が所定の頻度より低下した場合、カーネルは、受信キューRQUEのポーリングによる判定を停止する。そして、カーネルは、割り込み信号INT0−INT2に基づいて、受信キューRQUEにパケットが格納されたことを検出し、パケットの受信処理を実行する。
図19は、図17に示すステップS60Aの処理の一例を示す。図13と同じ処理については、同じ符号を付し、詳細な説明は省略する。ステップS62、S64の処理は、図13に示すステップS62、S64の処理と同じである。ステップS66の処理は、ポーリングフラグPFLGが”0”の場合、処理を図18のステップS42にジャンプすることを除き、図13に示すステップS66の処理と同様である。
パケットの受信の頻度が所定の頻度より低下した場合、受信キューRQUEのポーリングを停止し、実行可能なタスクTの有無のチェックのみを実行することで、CPUコア12がポーリングのための命令を実行することを抑止することができる。これにより、CPU10Dが消費する電力を、受信キューRQUEのポーリングを続ける場合に比べて削減することができる。
なお、アイドルルーチンは、パケットの受信の頻度が所定の頻度以上になった場合、割り込みフラグIFLGを”0”に設定してもよい。この場合、ネットワークインタフェースNIC、ディスクインタフェースDIOおよび通信インタフェースCIFは、アイドルルーチンからの指示に基づいて、動作モードを割り込み動作モードから非割り込み動作モードに切り替える。これにより、割り込み信号INT0−INT2の発行が抑止される。そして、CPUコア12のいずれかが実行するアイドルルーチンにより受信キューRQUEがポーリングされる。
なお、図16に示すCPU10Dが1つのCPUコア12aを有する場合、あるいは、図4と同様に、全てのCPUコア12a−12dが受信キューRQUEを重複してポーリングする場合、CPU10Dは、ポーリングフラグPFLGを持たなくてもよい。
図20は、ポーリングフラグPFLGを持たないCPU10DのCPUコア12が実行するカーネルの動作の一例を示す。図17および図18と同じ処理については、同じ符号を付し、詳細な説明は省略する。ステップS10、S12の処理は、図17に示すステップS10、S12の処理と同じであり、図5に示すカーネル本体部60により実行される。カーネルは、ステップS10において、実行可能なタスクTが受信キューRQUEにない場合、処理をアイドルルーチンのステップS43に移行する。
ステップS43、S44、S46、S48、S50、S52、S56、S58の処理は、図18に示すステップS43、S44、S46、S48、S50、S52、S56、S58の処理と同じである。但し、ステップS50において、アイドルルーチンは、タスクキュー6に実行可能なタスクTがある場合、処理をステップS12に移行し、タスクキュー6に実行可能なタスクTがない場合、処理をステップS53に移行する。また、アイドルルーチンは、ステップS52の後、処理をステップS53に移行し、ステップS58の後、処理をステップS48に移行する。
ステップS53において、アイドルルーチンは、割り込みフラグIFLGが”0”の場合、受信キューRQUEをポーリングするため、処理をステップS43に移行する。一方、アイドルルーチンは、割り込みフラグIFLGが”1”の場合、受信キューRQUEのポーリングをしないため、処理をステップS48に移行する。図20に示す動作により、パケットの受信の頻度が所定の頻度より低下し、割り込みフラグIFLGが”1”に設定された後、アイドルルーチンは、受信キューRQUEのポーリングを停止し、実行可能なタスクTの有無のチェックのみを実行する。
以上、図16から図20に示す実施形態においても、図1から図15に示す実施形態と同様に、他のノード112、HDDまたはFPGAからのパケットの受信をポーリングにより判定する場合にも、タスクTの実行が滞ることを抑止することができる。受信キューRQUEのポーリングを待機モードで実行することで、通常モードで実行する場合に比べて、ノード100Dの消費電力を削減することができる。
さらに、図16から図20に示す実施形態では、パケットの受信の頻度が所定の頻度より低下した場合、受信キューRQUEのポーリングを停止することで、CPUコア12がポーリングのための命令を実行することを抑止することができる。これにより、CPU10Dが消費する電力を、受信キューRQUEのポーリングをし続ける場合に比べて削減することができる。
以上の図1から図20に示す実施形態に関し、さらに以下の付記を開示する。
(付記1)
タスクを実行する演算処理部と、他の装置との間の通信を制御する通信制御部とを有する情報処理装置において、
前記演算処理部は、
実行可能なタスクがある場合、タスクの実行を管理する管理部と、
実行可能なタスクがない場合、前記他の装置からの情報を前記通信制御部が受信したかをポーリングにより判定する判定処理を、実行可能なタスクが出現するまで実行する待機部と
を備えることを特徴とする情報処理装置。
(付記2)
複数の前記演算処理部を備え、
複数の前記演算処理部のうち、実行可能なタスクがない演算処理部のいずれかである第1の演算処理部の前記待機部は、前記判定処理を実行し、
複数の前記演算処理部のうち、実行可能なタスクがない他の演算処理部である第2の演算処理部の前記待機部は、前記判定処理の実行を抑止すること
を特徴とする付記1に記載の情報処理装置。
(付記3)
複数の前記演算処理部の各々に対応して、前記通信制御部が受信した情報を保持する複数の保持部をさらに備え、
前記第1の演算処理部は、前記複数の保持部のそれぞれに対する前記判定処理を実行すること
を特徴とする付記2に記載の情報処理装置。
(付記4)
前記第1の演算処理部の前記待機部は、前記第1の演算処理部に対応する前記保持部に対して実行する前記判定処理の頻度を、複数の前記演算処理部のうち、前記第1の演算処理部を除く演算処理部の各々に対応する前記保持部に対して実行する前記判定処理の頻度に比べて高くすること
を特徴とする付記3に記載の情報処理装置。
(付記5)
前記第2の演算処理部の前記待機部は、所定回数の前記判定処理を実行した後、前記判定処理の実行を抑止すること
を特徴とする付記2ないし付記4のいずれか1項に記載の情報処理装置。
(付記6)
前記待機部は、前記通信制御部による情報の受信の頻度がを所定の頻度より低下した場合、割り込み信号を情報の受信に応じて出力させる指示を前記通信制御部に発行した後、前記判定処理を停止し、
前記演算処理部は、前記割り込み信号の受信に基づいて、前記通信制御部が受信した情報に基づく処理を実行すること
を特徴とする付記1ないし付記5のいずれか1項に記載の情報処理装置。
(付記7)
複数の前記演算処理部を備え、
複数の前記演算処理部のうち、実行可能なタスクがない演算処理部の各々は、前記判定処理を実行すること
を特徴とする付記1に記載の情報処理装置。
(付記8)
前記管理部と前記待機部とは、互いに排他的に動作し、
前記待機部が動作中の前記演算処理部の動作周波数は、前記管理部が動作中の前記演算処理部の動作周波数に比べて低く設定されること
を特徴とする付記1ないし付記7のいずれか1項に記載の情報処理装置。
(付記9)
前記管理部および前記待機部の機能は、タスクの実行を管理するカーネルを前記演算処理部が実行することにより実現されること
を特徴とする付記1ないし付記8のいずれか1項に記載の情報処理装置。
(付記10)
前記待機部の機能は、実行可能なタスクがない場合に前記カーネルが実行するアイドルルーチンにより実現されること
を特徴とする付記9に記載の情報処理装置。
(付記11)
タスクを実行する演算処理部と、他の装置との間の通信を制御する通信制御部とを有する情報処理装置が実行する情報処理方法において、
前記演算処理部が有する管理部が、実行可能なタスクがある場合、タスクの実行を管理し、
前記演算処理部が有する待機部が、実行可能なタスクがない場合、前記他の装置からの情報を前記通信制御部が受信したかをポーリングにより判定する判定処理を、実行可能なタスクが出現するまで実行すること
を特徴とする情報処理方法。
(付記12)
他の装置との間の通信を制御する通信制御部とともに情報処理装置に含まれ、タスクを実行する演算処理部に、
実行可能なタスクがある場合、タスクの実行を管理させる処理と、
実行可能なタスクがない場合、前記他の装置からの情報を前記通信制御部が受信したかをポーリングにより判定する判定処理を、実行可能なタスクが出現するまで実行させる処理と
を実行させることを特徴とするプログラム。
(付記13)
他の装置との間の通信を制御する通信制御部とともに情報処理装置に含まれ、タスクを実行する演算処理部に、
実行可能なタスクがある場合、タスクの実行を管理させる処理と、
実行可能なタスクがない場合、前記他の装置からの情報を前記通信制御部が受信したかをポーリングにより判定する判定処理を、実行可能なタスクが出現するまで実行させる処理と
を実行させるプログラムを記録したことを特徴とする前記情報処理装置に読み取り可能な記録媒体。
以上の詳細な説明により、実施形態の特徴点および利点は明らかになるであろう。これは、特許請求の範囲がその精神および権利範囲を逸脱しない範囲で前述のような実施形態の特徴点および利点にまで及ぶことを意図するものである。また、当該技術分野において通常の知識を有する者であれば、あらゆる改良および変更に容易に想到できるはずである。したがって、発明性を有する実施形態の範囲を前述したものに限定する意図はなく、実施形態に開示された範囲に含まれる適当な改良物および均等物に拠ることも可能である。
1…演算処理部;2…管理部;3…待機部;4…通信制御部;5…受信キュー;6…タスクキュー;7…メインメモリ;8…不揮発性メモリ;10、10B、10C、10D…CPU;12a−12d…CPUコア;14…キャッシュ制御部;16…キャッシュメモリ;20…メインメモリ;22…タスクキュー;30…フラッシュメモリ;50…カーネル;60…カーネル本体部;62…スケジューラ;64…ディスパッチャ;70…アイドルルーチン;72…タスクチェック処理;74…ポーリング処理;80、81、82…ポーリングリスト;90…NICドライバ;91…DIOドライバ;92…CIFドライバ;100…情報処理装置;100A、100B、100C、100D…ノード;110…他の装置;112…他のノード;120…ネットワーク;130…記録媒体;CIF、CIF2…通信インタフェース;DIO…ディスクインタフェース;IFLG…割り込みフラグ;NIC…ネットワークインタフェース;PFLG…ポーリングフラグ;RQUE0−RQUE3…受信キュー

Claims (12)

  1. タスクを実行する演算処理部と、他の装置との間の通信を制御する通信制御部とを有する情報処理装置において、
    前記演算処理部は、
    実行可能なタスクがある場合、タスクの実行を管理する管理部と、
    実行可能なタスクがない場合、前記他の装置からの情報を前記通信制御部が受信したかをポーリングにより判定する判定処理を、実行可能なタスクが出現するまで実行する待機部と
    を備えることを特徴とする情報処理装置。
  2. 複数の前記演算処理部を備え、
    複数の前記演算処理部のうち、実行可能なタスクがない演算処理部のいずれかである第1の演算処理部の前記待機部は、前記判定処理を実行し、
    複数の前記演算処理部のうち、実行可能なタスクがない他の演算処理部である第2の演算処理部の前記待機部は、前記判定処理の実行を抑止すること
    を特徴とする請求項1に記載の情報処理装置。
  3. 複数の前記演算処理部の各々に対応して、前記通信制御部が受信した情報を保持する複数の保持部をさらに備え、
    前記第1の演算処理部は、前記複数の保持部のそれぞれに対する前記判定処理を実行すること
    を特徴とする請求項2に記載の情報処理装置。
  4. 前記第1の演算処理部の前記待機部は、前記第1の演算処理部に対応する前記保持部に対して実行する前記判定処理の頻度を、複数の前記演算処理部のうち、前記第1の演算処理部を除く演算処理部の各々に対応する前記保持部に対して実行する前記判定処理の頻度に比べて高くすること
    を特徴とする請求項3に記載の情報処理装置。
  5. 前記第2の演算処理部の前記待機部は、所定回数の前記判定処理を実行した後、前記判定処理の実行を抑止すること
    を特徴とする請求項2ないし請求項4のいずれか1項に記載の情報処理装置。
  6. 前記待機部は、前記通信制御部による情報の受信の頻度がを所定の頻度より低下した場合、割り込み信号を情報の受信に応じて出力させる指示を前記通信制御部に発行した後、前記判定処理を停止し、
    前記演算処理部は、前記割り込み信号の受信に基づいて、前記通信制御部が受信した情報に基づく処理を実行すること
    を特徴とする請求項1ないし請求項5のいずれか1項に記載の情報処理装置。
  7. 複数の前記演算処理部を備え、
    複数の前記演算処理部のうち、実行可能なタスクがない演算処理部の各々は、前記判定処理を実行すること
    を特徴とする請求項1に記載の情報処理装置。
  8. 前記管理部と前記待機部とは、互いに排他的に動作し、
    前記待機部が動作中の前記演算処理部の動作周波数は、前記管理部が動作中の前記演算処理部の動作周波数に比べて低く設定されること
    を特徴とする請求項1ないし請求項7のいずれか1項に記載の情報処理装置。
  9. 前記管理部および前記待機部の機能は、タスクの実行を管理するカーネルを前記演算処理部が実行することにより実現されること
    を特徴とする請求項1ないし請求項8のいずれか1項に記載の情報処理装置。
  10. 前記待機部の機能は、実行可能なタスクがない場合に前記カーネルが実行するアイドルルーチンにより実現されること
    を特徴とする請求項9に記載の情報処理装置。
  11. タスクを実行する演算処理部と、他の装置との間の通信を制御する通信制御部とを有する情報処理装置が実行する情報処理方法において、
    前記演算処理部が有する管理部が、実行可能なタスクがある場合、タスクの実行を管理し、
    前記演算処理部が有する待機部が、実行可能なタスクがない場合、前記他の装置からの情報を前記通信制御部が受信したかをポーリングにより判定する判定処理を、実行可能なタスクが出現するまで実行すること
    を特徴とする情報処理方法。
  12. 他の装置との間の通信を制御する通信制御部とともに情報処理装置に含まれ、タスクを実行する演算処理部に、
    実行可能なタスクがある場合、タスクの実行を管理させる処理と、
    実行可能なタスクがない場合、前記他の装置からの情報を前記通信制御部が受信したかをポーリングにより判定する判定処理を、実行可能なタスクが出現するまで実行させる処理と
    を実行させることを特徴とするプログラム。
JP2017136514A 2017-07-12 2017-07-12 情報処理装置、情報処理方法およびプログラム Active JP6881116B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2017136514A JP6881116B2 (ja) 2017-07-12 2017-07-12 情報処理装置、情報処理方法およびプログラム
US16/029,284 US10884733B2 (en) 2017-07-12 2018-07-06 Information processing apparatus, and information processing method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017136514A JP6881116B2 (ja) 2017-07-12 2017-07-12 情報処理装置、情報処理方法およびプログラム

Publications (2)

Publication Number Publication Date
JP2019020853A true JP2019020853A (ja) 2019-02-07
JP6881116B2 JP6881116B2 (ja) 2021-06-02

Family

ID=64998993

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017136514A Active JP6881116B2 (ja) 2017-07-12 2017-07-12 情報処理装置、情報処理方法およびプログラム

Country Status (2)

Country Link
US (1) US10884733B2 (ja)
JP (1) JP6881116B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10545890B2 (en) 2017-12-26 2020-01-28 Fujitsu Limited Information processing device, information processing method, and program

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0749822A (ja) * 1993-08-09 1995-02-21 Fujitsu Ltd データ処理システムの負荷分散方法
JP2001216170A (ja) * 2000-01-31 2001-08-10 Mitsubishi Electric Corp 専用ポーリング処理組み込みオペレーティング方法及び専用ポーリング処理組み込みオペレーティングシステム
JP2009246588A (ja) * 2008-03-31 2009-10-22 Hitachi Communication Technologies Ltd ネットワークシステム及び通信装置
JP2011216004A (ja) * 2010-04-01 2011-10-27 Toyota Motor Corp マイクロプロセッサ、電子制御ユニット、実行比率切り替え方法
JP2011253337A (ja) * 2010-06-02 2011-12-15 Canon Inc クラウドコンピューティングシステム、文書処理方法、及びコンピュータプログラム
JP2013065150A (ja) * 2011-09-16 2013-04-11 Toshiba Corp キャッシュメモリ装置、プロセッサ、および情報処理装置
JP2017046283A (ja) * 2015-08-28 2017-03-02 株式会社Pfu 情報処理装置、情報処理方法、及びプログラム

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8136111B2 (en) * 2006-06-27 2012-03-13 International Business Machines Corporation Managing execution of mixed workloads in a simultaneous multi-threaded (SMT) enabled system
WO2009060530A1 (ja) 2007-11-09 2009-05-14 Fujitsu Limited ネットワーク処理制御装置,プログラムおよび方法
US9256535B2 (en) * 2013-04-04 2016-02-09 Advanced Micro Devices, Inc. Conditional notification mechanism
US9575807B2 (en) * 2014-04-15 2017-02-21 Intel Corporation Processing accelerator with queue threads and methods therefor
KR20160022716A (ko) * 2014-08-20 2016-03-02 삼성전자주식회사 메모리 할당 방법 및 이를 지원하는 전자 장치

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0749822A (ja) * 1993-08-09 1995-02-21 Fujitsu Ltd データ処理システムの負荷分散方法
JP2001216170A (ja) * 2000-01-31 2001-08-10 Mitsubishi Electric Corp 専用ポーリング処理組み込みオペレーティング方法及び専用ポーリング処理組み込みオペレーティングシステム
JP2009246588A (ja) * 2008-03-31 2009-10-22 Hitachi Communication Technologies Ltd ネットワークシステム及び通信装置
JP2011216004A (ja) * 2010-04-01 2011-10-27 Toyota Motor Corp マイクロプロセッサ、電子制御ユニット、実行比率切り替え方法
JP2011253337A (ja) * 2010-06-02 2011-12-15 Canon Inc クラウドコンピューティングシステム、文書処理方法、及びコンピュータプログラム
JP2013065150A (ja) * 2011-09-16 2013-04-11 Toshiba Corp キャッシュメモリ装置、プロセッサ、および情報処理装置
JP2017046283A (ja) * 2015-08-28 2017-03-02 株式会社Pfu 情報処理装置、情報処理方法、及びプログラム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10545890B2 (en) 2017-12-26 2020-01-28 Fujitsu Limited Information processing device, information processing method, and program

Also Published As

Publication number Publication date
US20190018674A1 (en) 2019-01-17
JP6881116B2 (ja) 2021-06-02
US10884733B2 (en) 2021-01-05

Similar Documents

Publication Publication Date Title
JP7313381B2 (ja) ハードウェアアクセラレーションのためのハードウェアリソースの埋込みスケジューリング
US10152438B2 (en) Deferred inter-processor interrupts
JP5243711B2 (ja) プロセッサ
WO2009075913A1 (en) Interrupt controller for invoking service routines with associated priorities
TWI421770B (zh) 將處理器置於漸慢作業模式中之系統與方法
US10545890B2 (en) Information processing device, information processing method, and program
JP6227767B2 (ja) 情報処理装置、その処理方法、及び入出力装置
CN109933549B (zh) 一种适用于risc-v处理器的中断控制器
JP6881116B2 (ja) 情報処理装置、情報処理方法およびプログラム
US7797473B2 (en) System for executing system management interrupts and methods thereof
US10423466B2 (en) Optimized streaming in an un-ordered interconnect
CN116089049B (zh) 基于异步并行i/o请求的进程同步调度方法、装置以及设备
JP2021524092A (ja) 割込みコントローラ
JP5332716B2 (ja) 起動制御方法、情報処理装置及びプログラム
JP2016151949A (ja) Dmaコントローラ
US20220413996A1 (en) Computer-readable recording medium storing acceleration test program, acceleration test method, and acceleration test apparatus
JP6468066B2 (ja) 並列演算装置、並列演算システム、集合通信方法及び集合通信プログラム
JP2015014962A (ja) 演算装置、演算方法、及びプログラム
JP2018124856A (ja) 電子制御装置
US20230333757A1 (en) Operational feature activation/disabling
WO2024024102A1 (ja) 計算機システム、タスクスケジューラ装置、待ちプロセス起床方法およびプログラム
US20240160451A1 (en) Dynamic thread count optimizations
JP5022330B2 (ja) リクエスト発行ノード、リクエスト受信ノード、システム、及び制御方法
JP2009193525A (ja) 割込制御装置
JP3008871B2 (ja) バス制御方式

Legal Events

Date Code Title Description
RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7426

Effective date: 20170803

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20170803

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20170804

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20180214

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20180219

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20180219

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200409

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20210310

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210419

R150 Certificate of patent or registration of utility model

Ref document number: 6881116

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150