JP6079065B2 - 情報処理装置,処理方法及びプログラム - Google Patents

情報処理装置,処理方法及びプログラム Download PDF

Info

Publication number
JP6079065B2
JP6079065B2 JP2012192392A JP2012192392A JP6079065B2 JP 6079065 B2 JP6079065 B2 JP 6079065B2 JP 2012192392 A JP2012192392 A JP 2012192392A JP 2012192392 A JP2012192392 A JP 2012192392A JP 6079065 B2 JP6079065 B2 JP 6079065B2
Authority
JP
Japan
Prior art keywords
data
priority
node
interrupt
information
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
JP2012192392A
Other languages
English (en)
Other versions
JP2014048965A (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 JP2012192392A priority Critical patent/JP6079065B2/ja
Priority to US13/936,532 priority patent/US9063929B2/en
Priority to EP13175508.4A priority patent/EP2704009B1/en
Publication of JP2014048965A publication Critical patent/JP2014048965A/ja
Application granted granted Critical
Publication of JP6079065B2 publication Critical patent/JP6079065B2/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/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • 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
    • 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/32Handling requests for interconnection or transfer for access to input/output bus using combination of interrupt and burst mode transfer
    • G06F13/34Handling requests for interconnection or transfer for access to input/output bus using combination of interrupt and burst mode transfer with priority control
    • 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/544Buffers; Shared memory; Pipes

Landscapes

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

Description

本発明は、情報処理装置,処理方法,プログラムに関する。
複数のCentral Processing Unit(CPU)を備えるコンピュータシステムにおいて、これらの複数のCPU間でデータを受け渡す場合には、例えば、送信元のCPUが送信先の共有メモリにデータを書き込んだ後に、送信先のCPUに対して割り込みを発生して通知する。割り込みを受信したCPUは、共有メモリにアクセスしてそのメモリに書き込まれたデータを読み出す。以下、このようなCPU間において行なわれるデータ通信をクロスコール(xcall)という場合がある。
特開2004−086615号公報 特開平11−120156号公報 特開2006−301894号公報 特開昭63−059649号公報 特開2000−029850号公報
しかしながら、CPUを多数備える大規模なコンピュータシステムにおいては、CPUの数が多くなることにより、クロスコールに要する時間も増大する。Operating System(OS)がクロスコール送信要求を発行してから規定時間内にクロスコールが完了せず、OSがタイムアウト(クロスコールタイムアウト)を検出し、異常終了する場合がある。従って、クロスコールを短時間で完了させることが望ましい。
例えば、複数のCPUを備えたBuilding Block(BB)を備えた情報処理装置において、これらのBBをまたぐCPU間でクロスコールを行なう際、送信先のCPUにおいては、どのBBに含まれるCPUからの割り込みかを効率よく判断できることが望ましい。又、複数のBBのCPUから同一のCPUに対してデータ送信を行なうクロスアクセス競合が生じる場合があるが、このような場合に、特定のBBの処理のみが優先されないようにすることが望ましい。
1つの側面では、本発明は、複数の演算装置を備える情報処理装置における演算装置間通信を効率よく行なうことを目的とする。
なお、前記目的に限らず、後述する発明を実施するための形態に示す各構成により導かれる作用効果であって、従来の技術によっては得られない作用効果を奏することも本発明の他の目的の1つとして位置付けることができる。
このため、この情報処理装置は、それぞれが1つ以上の演算装置及び記憶領域を備えるとともに、第1のノードと第2のノードとを含む複数のノードを有する情報処理装置において、前記第2のノードに、前記複数のノードのそれぞれに対応付けられた記憶領域が含まれ、前記第1のノードに含まれる第1の演算装置において、前記第2のノードに受け渡すデータを前記記憶領域のうちの前記第1のノードに対応付けられた第1の記憶領域に送信するデータ送信処理部と、前記データ送信処理部によるデータの送信に対応する割込みを、前記第1のノードを特定するノード識別情報とともに、前記データの送信先ノードに対して発生させる割込み生成部とを有し、前記第2のノードに含まれる第2の演算装置において、前記割込みを受信すると、前記割込みと共に受信した前記ノード識別情報に基づいて、どのノードからの要求であるかを特定する割込み処理部と、前記割込み処理部が特定したノードが前記第1のノードである場合、前記記憶領域のうちの前記第1のノードに対応する前記第1の記憶領域からデータを読み出すデータ受信部とを有する。
また、この発明に関連する情報処理装置は、複数の演算装置及び複数の記憶領域を有する情報処理装置において、前記複数の演算装置のうちの第1の演算装置は、他の演算装置に受け渡すデータを前記複数の記憶領域のうちの前記第1の演算装置に対応付けられた第1の記憶領域に格納するデータ送信処理部と、前記データ送信処理部によるデータの格納に対応する割込みを、前記第1の記憶領域を特定する識別情報とともに、前記データの送信先に対して発生させる割込み生成部とを備え、前記複数の演算装置のうちの第2の演算装置は、前記複数の演算装置のうちのいずれかから割込みを受信すると、前記割込みと共に受信した前記識別情報に基づいて、どの演算装置からの要求であるかを特定する割込み処理部と、前記複数の記憶領域のうち、前記割込み処理部が特定した演算装置が前記第1の演算装置である場合、前記第1の演算装置に対応する前記第1の記憶領域からデータを読み出すデータ受信部と、を備える。
また、この発明に関連する処理方法は、複数の演算装置及び複数の記憶領域を有する情報処理装置において、前記複数の演算装置のうちの第1の演算装置が、他の演算装置に受け渡すデータを前記複数の記憶領域のうちの前記第1の演算装置に対応付けられた第1の記憶領域に送信するステップと、前記データの送信に対応する割込みを、前記第1の記憶領域を特定する識別情報とともに、前記データの送信先に対して発生させるステップと、前記複数の演算装置のうちの第2の演算装置が、前記複数の演算装置のうちのいずれかから割込みを受信すると、前記割込みと共に受信した前記識別情報に基づいて、どの演算装置からの要求であるかを特定するステップと、前記複数の記憶領域のうち、前記割込み処理部が特定した演算装置が前記第1の演算装置である場合、前記第1の演算装置に対応する前記第1の記憶領域からデータを読み出すステップとを備える。
さらに、この発明に関連するプログラムは、複数の演算装置及び複数の記憶領域を有するコンピュータにおいて、前記複数の演算装置のうち、データを送信するデータ送信側の第1の演算装置に、前記複数の演算装置のうち、前記データを受信するデータ受信側の第2の演算装置に受け渡すデータを前記複数の記憶領域のうちの前記第1の演算装置に対応付けられた第1の記憶領域に送信し、前記データの送信に対応する割込みを、前記第1の記憶領域を特定する識別情報とともに、前記データの送信先である前記第2の演算装置に対して発生させる処理を実行させる。
一実施形態によれば、複数の演算装置を備える情報処理装置における演算装置間通信を効率よく行なうことができる。
第1実施形態の一例としての情報処理装置の機能構成を模式的に示す図である。 第1実施形態の一例としての情報処理装置のハードウェア構成を例示する図である。 第1実施形態の一例としての情報処理装置のハードウェア構成の他の例を示す図である。 第1実施形態の一例としての情報処理装置のメモリの使用例を示す図である。 第1実施形態の一例としての情報処理装置のバッファ領域に書き込まれるデータ構成を例示する図である。 第1実施形態の一例としての情報処理装置における優先度情報を例示する図である。 実施形態の一例としての情報処理装置におけるクロスコール処理の流れを示す図である。 第1実施形態の一例としての情報処理装置における送信側CPUにおける処理を説明するフローチャートである。 第1実施形態の一例としての情報処理装置における受信側CPUにおける処理を説明するフローチャートである。 第1実施形態の一例としての情報処理装置におけるCPU間のデータの受け渡し手法を説明する図である。 第2実施形態の一例としての情報処理装置におけるCPU間のデータの受け渡し手法を説明する図である。
以下、図面を参照して本情報処理装置,処理方法及びプログラムに係る実施の形態を説明する。ただし、以下に示す実施形態はあくまでも例示に過ぎず、実施形態で明示しない種々の変形例や技術の適用を排除する意図はない。すなわち、本実施形態を、その趣旨を逸脱しない範囲で種々変形(実施形態及び各変形例を組み合わせる等)して実施することができる。又、各図は、図中に示す構成要素のみを備えるという趣旨ではなく、他の機能等を含むことができる。
(A)第1実施形態
図1は第1実施形態の一例としての情報処理装置1の機能構成を模式的に示す図、図2はそのハードウェア構成を例示する図である。
第1実施形態の一例として情報処理装置1は、図2に示すように、複数(図2に示す例では、#0〜#15の16個)のビルディングブロック(Building Block:BB)100を備える。これらの複数のBB#0〜#15は、バス50を介して相互に通信可能に接続されている。
BBはハードウェア構成単位の一つであり、ノード(コンピュータノード)を構成する。これらの複数のBB100は例えばシステムボードなどであり、互いに同様の構成を備える。図2中においては、便宜上、BB#0のハードウェア構成のみを図示している。BBあるいはノードの構成は図2の構成に限定されるものではなく、種々の構成を取り得る。例えば、サービスプロセッサ105が無い構成であってもよいし、バスインタフェース104に接続される複数のCPU101や複数のメモリ102は、1つのシステムボード上にあってもよいし、CPUやメモリを実装した回路基板を複数含む機能ブロックをBBあるいはノードとすることもできる。
なお、以下、BBを示す符号としては、複数のBBのうち1つを特定する必要があるときには符号#0〜#15を用いるが、任意のBBを指すときには符号100を用いる。
BB100は、図2に示すように、サービスプロセッサ105,バスインタフェース104,1以上(図2に示す例では#0〜#3の4つ)のCPU101,1以上(図2に示す例では4つ)のMemory Access Controller(MAC)103及び1以上(図2に示す例では4つ)のメモリ102を備える。
CPU101及びメモリ102は、それぞれMAC103を介してバスインタフェース104に接続されている。又、バスインタフェース104は、バス50と通信可能に接続されている。バス50は、例えば、クロスバーである。ただし、バス50はこれに限定されるものではなく、例えば、Peripheral Component Interconnect(PCI)バス等の他のバスアーキテクチャであってもよい。
バスインタフェース104は、バス50の規格に準じたインタフェースであり、例えば、クロスバーインタフェースである。
サービスプロセッサ105は、BB100の管理を行なう処理装置であり、例えば、BB100内におけるエラー監視を行ない、エラー発生時に外部への通知やリカバリ処理等を行なう。
MAC103は、メモリ102へのデータアクセスを制御する制御装置であり、CPU101等からのデータアクセス要求に応じてメモリ102へのデータの書き込みや読み出しを行なう。
メモリ102はROM及びRAMを含む記憶装置である。メモリ102のROMには、通信制御に係るソフトウェアプログラムやこのプログラム用のデータ類が書き込まれている。メモリ102上のソフトウェアプログラムは、CPU101に適宜読み込まれて実行される。又、メモリ102のRAMは、一次記憶メモリあるいはワーキングメモリとして利用される。
なお、メモリ102に対しては、同一のMAC103に接続されたCPU101だけでなく、他のCPU101からもデータの書き込みや読み出しが行なわれる。又、メモリ102に対しては、同一のBB100に備えられたCPU101だけでなく、他のBB100に備えられたCPU101からもデータの書き込みや読み出しが行なわれる。そして、本情報処理装置1においては、後述の如く、CPU101間でデータの受け渡しを行なう際に、このメモリ102を介してデータの受け渡しが行なわれる。すなわち、メモリ102は、複数のCPU101から共有して使用される共有メモリとして機能する。
また、CPU101は、同一のMAC103に接続されたメモリ102を優先して使用するものとする。以下、このCPU101と同一のMAC103に接続されたメモリ102を優先メモリ102という場合がある。
図3は第1実施形態の一例としての情報処理装置のハードウェア構成の他の例を示す図である。この図3に示す例においては、各BB100がCPU101,MAC103及びメモリ102を2つずつ備えている。又、この図3に示す例においては、情報処理装置1は、n+1個(ただしnは0以上の整数)のBB#0〜#nを備える。複数のBBをいくつかのパーティションに分割することもできる。ここで、パーティションとは、同一のOSが動作し、動作しているOSから見て1つのシステムとして動作するビルディングブロックの群を示す。例えば、図3に示す例においては、BB#0とBB#1がパーティション#1として動作し、BB#2〜BB#4がパーティション#2として動作し、又、BB#nがパーティション#m(ただしmは1以上の自然数)として動作する。ここで、パーティション#1に含まれるBBが動作させるOSは、BB#0、BB#1が1つのシステムとして動作していると識別し、パーティション#2に含まれるBBが動作させるOSは、BB#2〜BB#4が1つのシステムとして動作していると識別する。同様に、パーティション#mに含まれるBBが動作させるOSは、BB#nが1つのシステムとして動作していると識別する。
図4は第1実施形態の一例としての情報処理装置1のメモリ102の使用例を示す図である。この図4に示すように、メモリ102には、BB100毎に設けられた受信バッファ領域25(25−0〜25−15)とOS毎に設けられたOS用領域1023とが備えられ、更に、優先度情報1021が格納される領域1024が備えられている。以下、第1実施形態では特に断らない限り、受信バッファ領域をバッファ領域、あるいは単にバッファとする。
OS用領域1023は、OSが使用するデータを格納する領域である。BB100において複数のOSを実行する場合には、図4に示すように、これらのOS(図4に示す例では0S#0〜#3)にそれぞれ対応する複数のOS用領域1023が備えられる。すなわち、OS用領域1023は、BB100で実行されるOS毎に備えられる。
このOS用領域1023には、例えば、後述するデータ格納処理部21により、バッファ領域25から読み出されたデータのコピーが格納される。OSはこれらの複数のOS用領域1023のうち、自身が使用するOS用領域1023からデータを読み出して使用する。
バッファ領域25は、CPU101に受け渡されるデータを格納する領域であり、バッファ領域25には、他のCPU101から受け渡されるデータが格納される。
本第1実施形態においては、データの送信先のCPU101と同一のMAC103に接続されたメモリ102(優先メモリ102)の一部の記憶領域が、このバッファ領域25として機能する。以下、複数のCPU101間でデータの受け渡しを行なうに際して、データを送信する側のCPU101を送信元CPU101といい、データを受信する側のCPU101を送信先CPU101という。
バッファ領域25は、本情報処理装置1に備えられるBB100にそれぞれ対応して備えられる。例えば、BB#0に対応してバッファ領域25−0が備えられ、BB#1に対応してバッファ領域25−1が備えられる。同様に、BB#2〜#15に対応してバッファ領域25−2〜25−15がそれぞれ備えられる。
なお、バッファ領域を示す符号としては、複数のバッファ領域のうち1つを特定する必要があるときには符号25−0〜25−15を用いるが、任意のバッファ領域を指すときには符号25を用いる。バッファ領域25はBB100毎に備えられる。
図5は第1実施形態の一例としての情報処理装置1のバッファ領域25に書き込まれるデータ構成を例示する図である。
各バッファ領域25には、図5に示すように、第1データ251aと第2データ251bとが格納される。
第1データ251aは、そのバッファ領域25の状態を示すステータス(status)2510と別途割り当て可能な領域(reserved area)を備える。ステータス2510としては、“free”,“ready”及び“busy”のいずれかを示す情報が格納される。
ここで、“free”は、バッファ領域25がロックされていない状態であり、バッファ領域25にデータの書き込みを行なうためにロックして使用する権限を獲得できる状態にあることを示す。“ready”は、バッファ領域25に対してデータを書き込む権限を獲得済みであり(ロック状態)、データの書き込みを開始できる状態にあることを示す。“busy”は、バッファ領域25にデータを書き込み中であることを示す。このステータス2510の情報は、例えば、後述するデータ送信処理部12により更新される。
第2データ251bは、データ252とデータレディ(data_ready)2520と別途割り当て可能な領域(reserved area)とを備える。データ252は、他のCPU101から受け渡されるデータである。データレディ2520はデータ252の状態を示し、例えば、“false”及び“true”のいずれかを示す情報が格納される。CPU101間でデータの受け渡しを行なうに際して、送信先CPU101がバッファ領域25を開放するためにこのデータレディ2520アクセスする。なお、データレディ2520は公知であり、その詳細な説明は省略する。
第1データ251aには、CPU101間でデータの受け渡しを行なうに際して、送信元CPU101がアクセスする情報であるステータス2510が格納される。一方、第2データ251bには、CPU101間でデータの受け渡しを行なうに際して、送信先CPU101がアクセスする情報であるデータ252及びデータレディ2520が格納される。
そして、第1データ251a及び第2データ251bは、それぞれCPU101のキャッシュラインサイズと同一サイズとして構成されている。すなわち、第1データ251aと第2データ251bとはキャッシュ上の別ラインとなるように配置されている。
これにより、CPU101間でデータの受け渡しを行なうに際して、送信元CPU101によるステータス2510へのアクセスと、送信先CPU101によるデータ252や、データレディ2520へのアクセスとが独立して行なわれる。
例えば、送信元CPU101は、バッファ領域25にデータの書き込みを行なうためにロックを取り、ステータス2510を “free”から“busy”に変更する。
また、バッファ領域25へのデータの格納が完了すると、送信元CPU101は、ステータス2510を “busy”から“ready”に変更する。又、送信元CPU101は、データレディ2520を“false”から“true”に変更し、送信先CPU101に割込みをかける(xcall)。送信先CPU101は、空割り込み対策として、データレディ2520が“true”になっていることを確認する。
そして、送信先CPU101は、バッファ領域25からデータの読み出しが完了すると、ステータス2510を“busy”から“free”に変更し、バッファ領域25を開放する。
このように、送信元CPU101から送信先CPU101にバッファ領域25を介してデータの受け渡しを行なう際に、送信元CPU101と送信先CPU101とによる同一キャッシュラインへの同時アクセスが防止される。これにより、送信元CPU101と送信先CPU101との間において、バッファ領域25へアクセスするためのロック競合の発生を抑止することができる。すなわち、送信元CPU101と送信先CPU101とによるフォールスシェアリング(false sharing)を回避することができ、送信元CPU101と送信先CPU101とによるロック競合による処理遅延を緩和することができる。
また、第2データ251bにデータ252とデータレディ2520とを備えることにより、キャッシュ上の同一ラインにデータ252とデータレディ2520とが配置され、送信先CPU101は一度のアクセスでこれらのデータ252とデータレディ2520とを取得することができる。これにより、バッファ領域25へのアクセス頻度を低減することもできる。
優先度情報1021は、本情報処理装置1に備えられた各BB100の優先順位を示す情報である。
図6は第1実施形態の一例としての情報処理装置1における優先度情報1021を例示する図である。
本情報処理装置1においては、図6に例示するように、予め、各BB100に対して互いに重複することの無いユニークな優先度がそれぞれ設定されている。又、各BB100には、それぞれ2つ(2種類)の優先度が設定されている。
図6に示す例においては、BB#0〜#15に対して、整数0〜15が第1の優先度としてそれぞれ設定されるとともに、整数31〜16が第2の優先度としてそれぞれ設定されている。そして、図6に例示するこれらの優先度0〜31において、数値が大きい程、優先順位が高いものとする。以下、各BB100に設定された優先度のうち、優先度0〜15を低側の優先度(第1優先情報)といい、優先度16〜31を高側の優先度(第2優先情報)という。高側の優先度16〜31は、低側の優先度0〜15のいずれよりも高い。
例えば、BB#0には、最も優先度が低いことを示す優先度0と最も優先度が高いことを示す優先度31との2つの優先度が対で設定されており、BB#3には、低側の優先度3と高側の優先度28との2つの優先度が対で設定されている。
各BB100に設定されたこれらの2つの優先度は、後述する処理優先度設定部13によりランダムにいずれか一方が選択される。以下、処理優先度設定部13によって選択された優先度を割り込みレベルという場合がある。
そして、前述の如く、これらの各BB100に設定される優先度は、各BB100に対して互いに重複することの無いユニークな値として設定される。これにより、優先度からBB100を特定することができる。すなわち、優先度はノードを特定するノード識別情報として使用される。
また、図4に示したように、優先メモリ102においては、BB100にそれぞれ対応してバッファ領域25が備えられている。これにより、優先度は間接的にバッファ(記憶領域)25を特定する識別情報として機能する。
また、メモリ102の一部の記憶領域は、図1に示す割込み優先順位キュー24としても用いられる。割込み優先順位キュー24は、前述した優先度情報1021の各優先度に対応する複数のキューを備える。図1に示す例においては、割込み優先順位キュー24は、図6に示す優先度情報1021の優先度0〜31に対応して、32個のキューを備える。図6中においては、割込み優先順位キュー24の各キューに、優先度0〜31に対応する0〜31のいずれかの数値を付して示している。割込み優先順位キュー24の各キューは割り込みレベルに対応する。
割込み優先順位キュー24の各キューには、後述する処理優先度設定部13によりフラグ(例えば“1”)が設定される。
割込み優先順位キュー24の各キューには優先順位が設定されており、本実施形態においては、処理優先度設定部13によりフラグが設定されたキューのうち、大きい数値が設定されたキューが後述する割込み処理部23により優先して処理される。
なお、割込み優先順位キュー24としては、メモリ102の一部の記憶領域を用いることに限定されるものではなく、他の種々の記憶装置を用いて実現してもよい。
CPU101は、種々の制御や演算を行なう演算装置であり、メモリ102に格納されたOSや制御プログラム(ハイパーバイザ(Hypervisor:HV))を実行することにより、種々の機能を実現する。
ハイパーバイザは、コンピュータの仮想化技術のひとつである仮想機械(バーチャルマシン)を実現するための制御プログラムであり、複数のBB100をまたいでOS(仮想OS)を管理する。
本情報処理装置1においては、各CPU101は他のCPU101に対してデータを送信する送信元CPU101として機能するとともに、他のCPU101から送信されたデータを受信する送信先CPU101としても機能する。
CPU101は、送信元CPU101として機能する場合においては、図1に示すように、クロスコール受信処理部11,データ送信処理部12,処理優先度設定部13及び割込み生成部14として機能する。又、CPU101は、送信先CPU101として機能する場合においては、図1に示すように、割込み処理部23,データ受信処理部22及びデータ格納処理部21として機能する。
CPU101は、メモリ102上に制御プログラムとして展開されたハイパーバイザを実行することにより、クロスコール受信処理部11,データ送信処理部12,処理優先度設定部13,割込み生成部14,割込み処理部23,データ受信処理部22及びデータ格納処理部21として機能する。すなわち、本第1実施形態の情報処理装置1においては、クロスコール受信処理部11,データ送信処理部12,処理優先度設定部13,割込み生成部14,割込み処理部23,データ受信処理部22及びデータ格納処理部21はハイパーバイザの機能として実現される。
なお、これらのクロスコール受信処理部11,データ送信処理部12,処理優先度設定部13,割込み生成部14,割込み処理部23,データ受信処理部22及びデータ格納処理部21としての機能を実現するための制御プログラム(ハイパーバイザ)は、例えばフレキシブルディスク,CD(CD−ROM,CD−R,CD−RW等),DVD(DVD−ROM,DVD−RAM,DVD−R,DVD+R,DVD−RW,DVD+RW,HD DVD等),ブルーレイディスク,磁気ディスク,光ディスク,光磁気ディスク等の、コンピュータ読取可能な記録媒体に記録された形態で提供される。そして、コンピュータはその記録媒体からプログラムを読み取って内部記憶装置または外部記憶装置に転送し格納して用いる。又、そのプログラムを、例えば磁気ディスク,光ディスク,光磁気ディスク等の記憶装置(記録媒体)に記録しておき、その記憶装置から通信経路を介してコンピュータに提供するようにしてもよい。
クロスコール受信処理部11,データ送信処理部12,処理優先度設定部13,割込み生成部14,割込み処理部23,データ受信処理部22及びデータ格納処理部21としての機能を実現する際には、内部記憶装置(本実施形態ではメモリ102)に格納されたプログラムがコンピュータのマイクロプロセッサ(本実施形態ではCPU101)によって実行される。このとき、記録媒体に記録されたプログラムをコンピュータが読み取って実行するようにしてもよい。
なお、本実施形態において、コンピュータとは、ハードウェアとオペレーティングシステムとを含む概念であり、オペレーティングシステムの制御の下で動作するハードウェアを意味している。又、オペレーティングシステムが不要でアプリケーションプログラム単独でハードウェアを動作させるような場合には、そのハードウェア自体がコンピュータに相当する。ハードウェアは、少なくとも、CPU等のマイクロプロセッサと、記録媒体に記録されたコンピュータプログラムを読み取るための手段とをそなえており、本実施形態においては、情報処理装置1もしくはBB100がコンピュータとしての機能を有しているのである。
クロスコール受信処理部11は、OSからのクロスコール送信要求を受信する。
データ送信処理部12は、送信先CPU101に受け渡すデータを送信する。具体的には、データ送信処理部12は、送信先CPU101に対応する優先メモリ102において、当該送信元CPU101が備えられるBB100に対応するバッファ領域25にデータを書き込む。
また、データ送信処理部12はバッファ領域25のステータス2510等を更新する。例えば、データ送信処理部12は、バッファ領域25にデータを書き込む際には、先ず、対象のバッファ領域25のロックを獲得してバッファ領域25のステータス2510を“free”から“busy”に変更する。又、データ送信処理部12は、バッファ領域25にデータを書き終えると、データレディ2520を“false”から“true”に変更する。
処理優先度設定部13は、クロスコール受信処理部11がOSから受信したクロスコール送信要求に基づき、送信先CPU101を決定する。なお、この送信先CPU101の決定は既知の手法により実現でき、その詳細な説明は省略する。又、処理優先度設定部13は、例えば優先度情報1021を参照して、自BB100に予め割り当てられている複数(本実施形態では2つ)の優先度からランダムに1つの優先度を選択する。すなわち、割り込みレベルを設定する。
割込み生成部14は、前述したデータ送信処理部12が送信先CPU101に関するバッファ領域25にデータを送信(格納)し、バッファ領域25のステータス2510等を更新すると、送信先CPU101に対して割込み通知を行なう。
割込み生成部14は、処理優先度設定部13が選択した優先度を伴う割込み通知を送信先CPU101に対して行なう。具体的には、割込み生成部部14は、例えば、送信先CPU101に対応する優先メモリ102の割込み優先順位キュー24のキューのうち、処理優先度設定部13が選択した優先度に対応するキューにフラグ“1”を設定する。
送信先CPU101において、割込み処理部23は、送信元CPU101(割込み生成部14)から割り込みが行なわれ、割込み優先順位キュー24にフラグ“1”が設定されると、いずれのBB100から入力された割り込み処理依頼であるかを特定する。具体的には、割込み処理部23は、割込み優先順位キュー24におけるフラグが設定されたキューがいずれの割込みレベル(優先度)に対応するものであるかを判断する。
割込み処理部23は、フラグが設定されたキューに対応する優先度を特定し、更に、その特定した優先度に対応するBB100を特定する。割込み処理部23は、特定したBB100に対応するバッファ領域25をデータ受信処理部22に通知する。
データ受信処理部22は、割込み処理部23によって通知されたバッファ領域25を参照し、データ252においてデータの書き込みが完了していることを確認する。具体的には、データ受信処理部22は、対象のバッファ領域25のステータス2510に“ready”が設定されているか否かを確認し、“ready”が設定されている場合に、データの書き込みが完了していると判断する。
データ受信処理部22は、データ送信処理部12によりバッファ領域25へのデータの書き込みが完了したことを確認すると、その特定されたバッファ領域25のデータ252からデータを読み出す。さらにデータ格納処理部21は、バッファ領域25から読み出したデータのコピーを、送信先CPU101が実行するOSに対応するOS用領域1023に格納する。その後、データ格納処理部21は、処理対象のバッファ領域25のデータレディ2520にアクセスし、バッファ領域25を解放する。なお、OS用領域1023に複写されたデータはOSにより処理される。
上述の如く構成された第1実施形態の一例としての情報処理装置1における、送信側CPU101における処理を、図7を参照しながら、図8に示すフローチャート(ステップA1〜A6)に従って説明する。
なお、図7は実施形態の一例としての情報処理装置1におけるクロスコール処理の流れを示す図である。この図7中においては、図中左側に送信元CPU101であるCPU#0Aを、又、図中右側に、送信先CPU101であるCPU#2Aを示している。
送信元CPU101において、先ず、クロスコール受信処理部11がOSからクロスコールを受信する(ステップA1;図7の符号F1参照)。
ステップA2において、データ送信処理部12は、送信先CPU101に対応する優先メモリ102における、当該送信元CPU101のBB100に対応するバッファ領域25が空いているか否かを確認する。具体的には、データ送信処理部12は、ステータス2510に“free”が格納されているか否かを確認し、ステータス2510が“free”ではない場合には(ステップA2のNOルート参照)、ステップA2を繰り返し行なう。
ステータス2510が“free”である場合には(ステップA2のYESルート参照)、データ送信処理部12は、バッファ領域25のロックを獲得して(図7の符号F2参照)、バッファ領域25のステータス2510を“free”から“busy”に変更する(ステップA3;図7の符号F3参照)。
そして、ステップA4において、データ送信処理部12は、送信先CPU101のバッファ領域25にデータ252を書き込んで更新する(図7の符号F4参照)。バッファ領域25へのデータの格納が完了すると、ステップA5において、データ送信処理部12は、バッファ領域25のステータス2510を“busy”から“ready”に変更して(図7の符号F5参照)、バッファ領域25の状態を変更する(図7の符号F6参照)。
処理優先度設定部13は、自BB100に予め割り当てられている複数(本実施形態では2つ)の優先度からランダムに1つの優先度を選択し、割り込みのレベルを設定する(図7の符号F7参照)。
ここで、BB100毎に高/低2種類の優先度を用意しておき、処理優先度設定部13がこれらの2種類の優先度のうち1の優先度をランダムに選択することにより、特定の送信元CPU101の処理が優先して実行されることがなく、複数のBB100から送信されたデータを均等に処理することができる。
そして、処理優先度設定部13は、この選択した優先度を伴う割込み通知を送信先CPU101に対して行なう(ステップA6)。これにより、ハードウェアにより、送信先CPU101に割り込みが通知される(図7の符号F8参照)。処理優先度設定部13は、送信先CPU101に対応する優先メモリ102の割込み優先順位キュー24のキューのうち、選択した優先度に対応するキューにフラグを設定し、処理を終了する。
次に、第1実施形態の一例としての情報処理装置1における、受信側CPU101における処理を、図7を参照しながら、図9に示すフローチャート(ステップB1〜B5)に従って説明する。
ステップB1において、送信先CPU101が送信元CPU101からの割込みを受信すると(図7の符号F9参照)、送信先CPU101において、割込み処理部23が、割込み優先順位キュー24を参照して、いずれのBB100から入力された割り込み処理依頼であるかを特定する。すなわち、割込み処理部23は、フラグが設定されたキューに対応する優先度を特定し、更に、その特定した優先度に対応するBB100を特定する。
ステップB2において、データ受信処理部22は、割込み処理部23によって通知されたバッファ領域25を参照して、データの書き込みが完了していることを確認する(図7の符号F10参照)。具体的には、データ受信処理部22は、ステータス2510に“ready”が格納されているか否かを確認し、ステータス2510が“ready”ではない場合には(ステップB2のNOルート参照)、ステップB2を繰り返し行なう。
送信先CPU101においては、割込み優先順位キュー24の優先度により、どのBB100に対応するバッファ領域25にデータが格納されているかを特定することができる。送信先CPU101において、データ受信処理部22が、対象のBB100に対応するバッファ領域25のステータス2510だけをチェックすればよく、短時間で確認することができ送信先CPU101による読み出し処理を高速化することができる。
ステータス2510が“ready”である場合には(ステップB2のYESルート参照)、ステップB3において、データ格納処理部21は、バッファ領域25から読み出したデータのコピーをOS用領域1023に格納する。その後、データ格納処理部21は、ステップB4において、バッファ領域25のステータス2510を“ready”から“free”に変更し、バッファ領域25を解放する(図7の符号F12参照)。その後、ステップB5において、クロスコールの受信を完了し(図7の符号F13参照)、処理を終了する。
図10は第1実施形態の一例としての情報処理装置1におけるCPU101間のデータの受け渡し手法を説明する図である。
この図10に示す例においては、BB#0には優先度0,31が設定されており、BB#1には優先度1,30が設定されている。
また、BB#0においては、CPU#0A,#0B,#0CがそれぞれBB#2のCPU#2Aにデータを受け渡そうとしており、これらの内、CPU#0AがBB#2に備えられたBB#0用のバッファ領域25−0のロックを獲得している。
また、CPU#0Aは、BB#0に予め設定されている優先度“0”,“31”からランダムにいずれかの優先度を選択し、この選択した優先度を伴う割込み通知をCPU#2Aに対して行なう。
なお、ロックを獲得できなかったCPU#0B,#0Cは、それぞれバッファ領域25−0のロックが取れるまで、ステータス2510へのアクセスを繰り返し行なう。
本情報処理装置1においては、CPU#2AはBB100毎にバッファ領域25を備えている。これにより、CPU#0AがBB#0用のバッファ領域25−0のロックを獲得しているにもかかわらず、BB#1のCPU#1Aは、BB#2に備えられたBB#1用のバッファ領域25−1のロックを獲得することができる。すなわち、BB#1のCPU#1Aは、BB#0のCPU#0B,#0Cと競合することなく、バッファ領域25―1のロックを取ることができる。
CPU#1Aは、BB#1に予め設定されている優先度“1”,“30”からランダムにいずれかの優先度を選択し、この選択した優先度を伴う割込み通知をCPU#2Aに対して行なう。
BB#2においては、他のCPU101からクロスコールの割り込み通知を受信すると、通知された優先度を参照することにより、いずれのBB100に対応するバッファ領域25が更新されたかを知ることができる。
すなわち、BB#2において、CPU#2Aは、クロスコールの割り込み通知により通知された優先度が“0”もしくは“31”の場合には、BB#0に対応するバッファ領域25―0のデータを処理する。同様に、CPU#2Aは、クロスコールの割り込み通知により通知された優先度が“1”もしくは“30”の場合には、BB#1に対応するバッファ領域25―1のデータを処理する。
このように、CPU#2Aは、通知された優先度に対応するバッファ領域25のステータス2510だけを確認すればよく、バッファ領域25からのデータの読み出しを短時間で行なうことができ、クロスコール処理を高速化することができる。
このように、第1実施形態の一例としての情報処理装置1によれば、送信先CPU101が、クロスコールの割り込み通知により通知された優先度を参照することにより、どのBB100からの割り込みかを特定できる。これにより、バッファ領域25からのデータの読み出しを短時間で行なうことができ、クロスコール処理を高速化することができる。
また、異なるBB100からそれぞれ行なわれるクロスコールについて、送信先CPU101のバッファ領域25への各BB100の送信元CPU101によるクロスコールアクセス競合を回避することができる。
このように、CPU101間のアクセス競合によるCPU通信の処理遅延を解消することができ、大規模構成でのCPU間通信の高速化を実現することができる。これにより、クロスコールタイムアウトの発生を抑止し、装置の信頼性を向上させることができる。
また、各BB100に対して複数の優先度(第1の優先度及び第2の優先度)をもたせ、処理優先度設定部13がこれらの優先度からランダムに選択した優先度をクロスコールの割り込み通知により送信先CPU101に通知する。これにより、常に一部のBB100の処理が優先されることを回避することができ、特定のBB100からの処理が常に時間がかかるという事態の発生を抑止することができる。
さらに、バッファ領域25において、第1データ251aと第2データ251bとはキャッシュ上の別ラインとなるように配置されている。そして、第1データ251aにステータス2510を備え、第2データ251bにデータ252及びデータレディ2520を備える。
これにより、送信元CPU101と送信先CPU101とによる同一キャッシュラインへの同時アクセスが防止され、バッファ領域25へアクセスするためのロック競合の発生を抑止することができる。すなわち、送信元CPU101と送信先CPU101とによるフォールスシェアリングを回避することができ、送信元CPU101と送信先CPU101とによるロック競合による処理遅延を緩和することができる。
また、第2データ251bにデータ252とデータレディ2520とを備えることにより、キャッシュ上の同一ラインにデータ252とデータレディ2520とが配置され、送信先CPU101は一度のアクセスでこれらのデータ252とデータレディ2520とを取得することができる。これにより、バッファ領域25へのアクセス頻度を低減することもできる。
(B)第2実施形態
上述した第1実施形態の情報処理装置1においては、送信先CPU101の優先メモリ102において、各BB100毎にバッファ領域25を備えているがこれに限定されるものではない。
本第2実施形態の情報処理装置1においては、送信元CPU101の各優先メモリ102にそれぞれバッファ領域25を備え、送信元CPU101は、送信先CPU101に受け渡すデータを、当該送信元CPU101が管理するバッファ領域25に格納する。なお、その他の部分は第1実施形態の情報処理装置1と同様に構成されている。つまり、第1実施形態は送信先にバッファ領域があるのに対し、第2実施形態は送信元にバッファ領域がある例として以下に説明する。
本第2実施形態の情報処理装置1において、送信元CPU101から送信先CPU101にデータを受け渡す場合には、送信元CPU101において、データ送信処理部12は、送信元CPU101のバッファ領域25のデータ252に送信データを書き込んで更新する。
図11は第2実施形態の一例としての情報処理装置1におけるCPU101間のデータの受け渡し手法を説明する図である。
本第2実施形態においては、第1実施形態のBB100に代えて、CPU101毎に異なる優先度情報1021が設定されている。又、本第2実施形態においても、第1実施形態と同様に、優先度情報として、2種類の優先度(第1の優先度情報、第2の優先度情報)が設定されている。
これらのCPU101毎に設定される優先度は、各CPU101に対して互いに重複することの無いユニークな値として設定される。これにより、優先度から送信元CPU101を特定することができる。
そして、本第2実施形態においては、BB100においてCPU101毎にバッファ領域25が備えられている。これにより、優先度はバッファ(記憶領域)25を特定する識別情報として機能する。
図11に示す例においては、CPU101#0Aには優先度X(例えば、X=0もしくはX=31)が設定されており、CPU#1Aには優先度Y(例えば、Y=1もしくはY=30)が設定されている。
また、便宜上、図示は省略するが、他のCPU#0B,#0Cにも、それぞれ異なる優先度が設定されている。
そして、BB#0においては、CPU#0A,#0B,#0CがそれぞれBB#2のCPU#2Aにデータを受け渡そうとしている。
CPU#0Aは自身の優先メモリ102のバッファ領域25−0Aのロックを獲得し、このバッファ領域25−0Aにデータを格納する。この際、CPU#0Aは、他のCPU101(例えば、CPU#0B,#0C)と競合することなくバッファ領域25−0Aのロックを取ることができる。CPU#0Aは、BB#0に予め設定されている優先度“0”,“31”からランダムにいずれかの優先度を選択し、この選択した優先度Xを伴う割込み通知をCPU#2Aに対して行なう。
BB#0においては、CPU#0Bは自身の優先メモリ102のバッファ領域25−0Bのロックを獲得して、このバッファ領域25−0Bにデータを格納し、又、CPU#0Cは自身の優先メモリ102のバッファ領域25−0Cのロックを獲得して、このバッファ領域25−0Cにデータを格納する。
これらのCPU#0A〜#0Cにおいても、他のCPU101と競合することなくバッファ領域25−0B,25−0Cのロックを取ることができる。
BB#1においては、CPU#1Aが自身の優先メモリ102のバッファ領域25−1Aのロックを獲得し、このバッファ領域25−1Aにデータを格納する。この際、CPU#1Aは、他のCPU101(例えば、CPU#0B,#0C)と競合することなくバッファ領域25−0Aのロックを取ることができる。
CPU#1Aは、BB#1に予め設定されている優先度“1”,“30”からランダムにいずれかの優先度を選択し、この選択した優先度Yを伴う割込み通知をCPU#2Aに対して行なう。
このように、第2実施形態の一例としての情報処理装置1においては、上述した第1実施形態と同様の作用効果を得ることができる他、各CPU101が他のCPU101との間で競合することなくバッファ領域25のロックを獲得することができる。すなわち、各CPU101において、バッファ領域25にデータを書き込むためのロック獲得のための競合が生じることがなく、ロック競合による処理の遅滞が生じないので、処理を高速化することができる。
(C)その他
そして、開示の技術は上述した実施形態に限定されるものではなく、本実施形態の趣旨を逸脱しない範囲で種々変形して実施することができる。本実施形態の各構成及び各処理は、必要に応じて取捨選択することができ、あるいは適宜組み合わせてもよい。
例えば、上述した各実施形態においては、各ノード100毎もしくはCPU101毎にユニークな優先度を設定し、この優先度に基づいて送信元のノード100やCPU101を特定しているが、これに限定されるものではない。例えば、優先度に代えて、個々のノード100やCPU101に対して、それぞれユニークな識別情報を設定し、送信元CPU101が送信先CPU101にこの識別情報を通知することにより、送信先CPU101において、送信元のノード100やCPU101を特定してもよい。
また、上述した第2実施形態においては、送信元のBB100においてCPU101毎にバッファ領域25を備えているがこれに限定されるものではない。すなわち、送信元のBB100において、複数のCPU101で共通のバッファ領域25をそなえてもよい。これにより、送信元のBB100において、バッファ領域25のサイズを小さくすることができる。
また、上述した第2実施形態においては、CPU101毎に異なる優先度情報1021が設定されているが、これに限定されるものではなく、第1実施形態と同様に、BB100毎に異なる優先度情報1021を設定してもよい。
上述した開示により本実施形態を当業者によって実施・製造することが可能である。
(D)付記
(付記1)
複数の演算装置及び複数の記憶領域を有する情報処理装置において、
前記複数の演算装置のうちの第1の演算装置は、
他の演算装置に受け渡すデータを前記複数の記憶領域のうちの第1の記憶領域に送信するデータ送信処理部と、
前記データ送信処理部によるデータの送信に対応する割込みを、前記記憶領域を特定する識別情報とともに、前記データの送信先に対して発生させる割込み生成部とを備え、
前記複数の演算装置のうちの第2の演算装置は、
前記割込みを受信すると、前記割込みと共に受信した前記識別情報に基づいて、どの演算装置からの要求であるかを特定する割込み処理部と、
前記複数の記憶領域のうち、前記割込み処理部が特定した演算装置に対応する前記第1の記憶領域からデータを読み出すデータ受信部と、
を備えることを特徴とする情報処理装置。
(付記2)
前記第1の演算装置が、当該第1の演算装置上で実行されるOperating System(OS)からのクロスコールを受信するクロスコール受信処理部を有し、
前記データ送信処理部が、前記クロスコール受信処理部が受信したクロスコールの送信先の演算装置に受け渡すデータを前記複数の記憶領域のうちの第1の記憶領域に送信し、
前記割込み生成部が、前記クロスコール受信処理部が受信したクロスコールの送信先の演算装置に対して前記割込みを発生させることを特徴とする、付記1記載の情報処理装置。
(付記3)
前記第2の演算装置が、前記データ受信部が前記第1の記憶領域から読み出したデータを前記クロスコールの送信先の演算装置が実行するOSに対応するOS用記憶領域に格納するデータ格納処理部を備えることを特徴とする、付記2記載の情報処理装置。
(付記4)
それぞれが1つ以上の前記演算装置を備える複数のノードを備え、
前記複数のノードのうちの第1のノードにおいて、
前記第1の演算装置を有し、
前記割込み生成部が、前記データ送信処理部によるデータの送信に対応する割込みを、当該第1のノードを特定するノード識別情報とともに、前記データの送信先に対して発生させ、
前記複数のノードのうちの第2のノードにおいて、
前記複数のノードのそれぞれに対応した記憶領域と、前記第2の演算装置とを有し、
前記割込み処理部が、前記第1のノードから割込みを受信すると、前記割込みと共に受信した前記ノード識別情報に基づいて、どのノードからの要求であるかを特定し、
前記データ受信部が、複数のノードの各々に対応して備えられた複数の記憶領域のうち、前記割込み処理部が特定したノードに対応する前記第1の記憶領域から受信データを読み出すことを特徴とする、付記1〜3のいずれか1項に記載の情報処理装置。
(付記5)
前記複数のノードをまたいでOSを管理するハイパーバイザが前記識別情報を有し、
前記ハイパーバイザが前記OSからクロスコールを受信すると、該クロスコールの送信元演算装置及び送信先演算装置の各々において、前記ハイパーバイザが前記識別情報を参照してデータが格納された前記第1の記憶領域を判定することを特徴とする、付記4記載の情報処理装置。
(付記6)
ノード毎に異なる優先度が設定され、
前記ノード識別情報が、前記優先度を示す優先度情報を備えることを特徴とする付記4又は5記載の情報処理装置。
(付記7)
前記優先度情報が、第1の優先度を表す第1優先情報と、前記複数のノードのいずれに設定された前記第1の優先度よりも低い第2の優先度を表す第2優先情報とを有し、
前記第1の演算装置は、
前記第1優先情報と前記第2優先情報とのいずれかをランダムに選択する選択部を備え、
前記割込み生成部が、前記選択部によって選択された前記第1優先情報もしくは前記第2優先情報のいずれかを前記ノード識別情報として前記データの送信先に対して通知することを特徴とする付記6記載の情報処理装置。
(付記8)
前記記憶領域において、
前記第1の演算装置から当該記憶領域のステータス変更のためのアクセスを行なう第1管理領域と、前記第2の演算装置がデータを取得するためのアクセスを行なう第2管理領域とを異なるキャッシュライン上に備えることを特徴とする付記1〜7のいずれか1項に記載の情報処理装置。
(付記9)
それぞれが1つ以上の前記演算装置を備える複数のノードを備え、
前記複数のノードのうちの第1のノードにおいて、
前記第1の演算装置と、当該第1の演算装置に対応する記憶領域とを有し、
前記複数のノードのうちの第2のノードにおいて、
前記第2の演算装置を有し、
前記割込み処理部が、前記第1のノードから割込みを受信すると、前記割込みと共に受信した前記識別情報に基づいて、どの演算装置からの要求であるかを特定し、
前記データ受信部が、複数の演算装置の各々に対応して備えられた複数の記憶領域のうち、前記割込み処理部が特定した演算装置に対応する前記第1の記憶領域から受信データを読み出すことを特徴とする、付記1記載の情報処理装置。
(付記10)
複数の演算装置及び複数の記憶領域を有する情報処理装置において、
前記複数の演算装置のうちの第1の演算装置が、
他の演算装置に受け渡すデータを前記複数の記憶領域のうちの第1の記憶領域に送信するステップと、
前記データの送信に対応する割込みを、前記記憶領域を特定する識別情報とともに、前記データの送信先に対して発生させるステップと、
前記複数の演算装置のうちの第2の演算装置が、
前記割込みを受信すると、前記割込みと共に受信した前記識別情報に基づいて、どの演算装置からの要求であるかを特定するステップと、
前記複数の記憶領域のうち、前記特定するステップにより特定した演算装置に対応する前記第1の記憶領域からデータを読み出すステップとを備えることを特徴とする処理方法。
(付記11)
前記第1の演算装置が、当該第1の演算装置上で実行されるOperating System(OS)からのクロスコールを受信するステップと、
受信したクロスコールの送信先の演算装置に受け渡すデータを前記複数の記憶領域のうちの第1の記憶領域に格納するステップと、
前記クロスコール受信処理部が受信したクロスコールの送信先の演算装置に対して前記割込みを発生させるステップとを備えることを特徴とする、付記10記載の処理方法。
(付記12)
前記第2の演算装置が、前記記憶領域から読み出したデータを前記クロスコールの送信先の演算装置が実行するOSに対応するOS用記憶領域に格納するステップを備えること
を特徴とする、付記11記載の処理方法。
(付記13)
前記情報処理装置が、それぞれが1つ以上の前記演算装置を備える複数のノードを備え、
前記複数のノードのうちの第1のノードにおいて、前記第1の演算装置を有し、
前記データの送信に対応する割込みを、当該第1のノードを特定するノード識別情報とともに、前記データの送信先に対して発生させるステップと、
前記複数のノードのうちの第2のノードにおいて、前記複数のノードのそれぞれに対応した記憶領域と、前記第2の演算装置とを有し、
前記第1のノードから割込みを受信すると、前記割込みと共に受信した前記ノード識別情報に基づいて、どのノードからの要求であるかを特定するステップと、
複数のノードの各々に対応して備えられた複数の記憶領域のうち、特定されたノードに対応する前記第1の記憶領域から受信データを読み出すステップとを備えることを特徴とする、付記10〜12のいずれか1項に記載の処理方法。
(付記14)
前記複数のノードをまたいでOSを管理するハイパーバイザが前記識別情報を有し、
前記ハイパーバイザが前記OSからクロスコールを受信すると、該クロスコールの送信元演算装置及び送信先演算装置の各々において、前記ハイパーバイザが前記識別情報を参照してデータが格納された前記第1の記憶領域を判定するステップを実現することを特徴とする、付記13記載の処理方法。
(付記15)
ノード毎に異なる優先度が設定され、
前記ノード識別情報が、前記優先度を示す優先度情報を備えることを特徴とする付記13又は14記載の処理方法。
(付記16)
前記優先度情報が、第1の優先度を表す第1優先情報と、前記複数のノードのいずれに設定された前記第1の優先度よりも低い第2の優先度を表す第2優先情報とを有し、
前記第1の演算装置が、
前記第1優先情報と前記第2優先情報とのいずれかをランダムに選択するステップと、
選択された前記第1優先情報もしくは前記第2優先情報のいずれかを前記ノード識別情報として前記データの送信先に対して通知するステップとを備えることを特徴とする付記15記載の処理方法。
(付記17)
前記記憶領域において、
前記第1の演算装置から当該記憶領域のステータス変更のためのアクセスを行なう第1管理領域と、前記第2の演算装置がデータを取得するためのアクセスを行なう第2管理領域とを異なるキャッシュライン上に備えることを特徴とする付記10〜16のいずれか1項に記載の処理方法。
(付記18)
前記情報処理装置が、それぞれが1つ以上の前記演算装置を備える複数のノードを備え、
前記複数のノードのうちの第1のノードにおいて、
前記第1の演算装置と、当該第1の演算装置に対応する記憶領域とを有し、
前記複数のノードのうちの第2のノードにおいて、
前記第2の演算装置を有し、
前記第1のノードから割込みを受信すると、前記割込みと共に受信した前記識別情報に基づいて、どの演算装置からの要求であるかを特定するステップと、
複数の演算装置の各々に対応して備えられた複数の記憶領域のうち、特定された演算装置に対応する前記第1の記憶領域から受信データを読み出すステップとを備えることを特徴とする、付記10記載の処理方法。
(付記19)
複数の演算装置及び複数の記憶領域を有するコンピュータにおいて、
他の演算装置に受け渡すデータを前記複数の記憶領域のうちの第1の記憶領域に送信し、
前記データの送信に対応する割込みを、前記記憶領域を特定する識別情報とともに、前記データの送信先に対して発生させる
処理を前記コンピュータに実行させることを特徴とするプログラム。
(付記20)
Operating System(OS)からのクロスコールを受信し、
受信したクロスコールの送信先の演算装置に受け渡すデータを前記複数の記憶領域(25)のうちの第1の記憶領域に格納し、
受信したクロスコールの送信先の演算装置に対して前記割込みを発生させる
処理を前記コンピュータに実行させることを特徴とする、付記19記載のプログラム。
(付記21)
前記情報処理装置が、それぞれが1つ以上の前記演算装置を備える複数のノードを備え、
前記データの送信に対応する割込みを、当該第1のノードを特定するノード識別情報とともに、前記データの送信先に対して発生させる処理を前記コンピュータに実行させることを特徴とする、付記19又は20記載のプログラム。
(付記22)
ハイパーバイザとして、前記複数のノードをまたいでOSを管理し、
前記OSからクロスコールを受信すると、該クロスコールの送信元演算装置及び送信先演算装置の各々において、前記ハイパーバイザが前記識別情報を参照してデータが格納された前記第1の記憶領域を判定する
処理を前記コンピュータに実行させることを特徴とする、付記21記載のプログラム。
(付記23)
ノード毎に異なる優先度が設定され、
前記ノード識別情報が、前記優先度を示す優先度情報を備えることを特徴とする付記21又は22記載のプログラム。
(付記24)
前記優先度情報が、第1の優先度を表す第1優先情報と、前記複数のノードのいずれに設定された前記第1の優先度よりも低い第2の優先度を表す第2優先情報とを有し、
前記第1の演算装置が、
前記第1優先情報と前記第2優先情報とのいずれかをランダムに選択し、
選択された前記第1優先情報もしくは前記第2優先情報のいずれかを前記ノード識別情報として前記データの送信先に対して通知する
処理を前記コンピュータに実行させることを特徴とする付記23記載のプログラム。
(付記25)
複数の演算装置及び複数の記憶領域を有するコンピュータにおいて、
他の演算装置に受け渡すデータを前記複数の記憶領域のうちの第1の記憶領域に送信し、
前記データの送信に対応する割込みを、前記記憶領域を特定する識別情報とともに、前記データの送信先に対して発生させる
処理を前記コンピュータに実行させることを特徴とするプログラムを記録したコンピュータ読取可能な記録媒体。
(付記26)
Operating System(OS)からのクロスコールを受信し、
受信したクロスコールの送信先の演算装置に受け渡すデータを前記複数の記憶領域のうちの第1の記憶領域に格納し、
受信したクロスコールの送信先の演算装置に対して前記割込みを発生させる
処理を前記コンピュータに実行させることを特徴とする、付記25記載のプログラムを記録したコンピュータ読取可能な記録媒体。
(付記27)
前記情報処理装置が、それぞれが1つ以上の前記演算装置を備える複数のノードを備え、
前記データの送信に対応する割込みを、当該第1のノードを特定するノード識別情報とともに、前記データの送信先に対して発生させる処理を前コンピュータに実行させることを特徴とする、付記25又は26記載のプログラムを記録したコンピュータ読取可能な記録媒体。
(付記28)
ハイパーバイザとして、前記複数のノードをまたいでOSを管理し、
前記OSからクロスコールを受信すると、該クロスコールの送信元演算装置及び送信先演算装置の各々において、前記ハイパーバイザが前記識別情報を参照してデータが格納された記憶領域を判定する
処理を前記コンピュータに実行させることを特徴とする、付記27記載のプログラムを記録したコンピュータ読取可能な記録媒体。
(付記29)
ノード毎に異なる優先度が設定され、
前記ノード識別情報が、前記優先度を示す優先度情報を備えることを特徴とする付記27又は28記載のプログラムを記録したコンピュータ読取可能な記録媒体。
(付記30)
前記優先度情報が、第1の優先度を表す第1優先情報と、前記複数のノードのいずれに設定された前記第1の優先度よりも低い第2の優先度を表す第2優先情報とを有し、
前記第1の演算装置が、
前記第1優先情報と前記第2優先情報とのいずれかをランダムに選択し、
選択された前記第1優先情報もしくは前記第2優先情報のいずれかを前記ノード識別情報として前記データの送信先に対して通知する
処理を前記コンピュータに実行させることを特徴とする付記29記載のプログラムを記録したコンピュータ読取可能な記録媒体。
(付記31)
複数の演算装置及び複数の記憶領域を有する情報処理装置において、
前記複数の演算装置のうちの第1の演算装置は、
他の演算装置に受け渡すデータを前記複数の記憶領域のうちの第1の記憶領域に送信するデータ送信処理部と、
前記データ送信処理部によるデータの送信に対応する割込みの優先順位を、2つの優先
度から何れかを選択する処理優先度選択部と、
前記データ送信処理部によるデータの送信に対応する割込み、前記記憶領域を特定する識別情報および前記選択された優先度とともに、前記データの送信先に対して発生させる割込み生成部とを備え、
前記複数の演算装置のうちの第2の演算装置は、
前記割込みを受信すると、前記割込みと共に受信した前記識別情報に基づいて、どの演算装置からの要求であるかを特定する割込み処理部と、
前記複数の記憶領域のうち、前記割込み処理部が特定した演算装置に対応する前記第1の記憶領域からデータを読み出すデータ受信部と、
を備えることを特徴とする情報処理装置。
(付記32)
2つの優先度からランダムに何れかを選択する処理優先度選択部を特徴とする付記31記載の情報処理装置。
(付記33)
複数の演算装置及び複数の記憶領域を有する情報処理装置は、ノード識別情報により区分される複数のノードを有し、同じノード内の各CPUには同じ優先度が選択されることを特徴とする付記31記載の情報処理装置。
1 情報処理装置
11 クロスコール受信処理部
12 データ送信処理部
13 処理優先度設定部
21 データ格納処理部
22 データ受信処理部
23 割込み処理部
24 割込み優先順位キュー
25,25−0〜25−15,25−0A,25−0B,25−0C,25−1A 受信バッファ領域
100 BB
101 CPU
102 メモリ,優先メモリ
103 MAC
104 バスインタフェース
105 サービスプロセッサ
251a 第1データ
251b 第2データ
252 データ
1021 優先度情報
1023 OS用領域
1024 領域
2510 ステータス
2520 データレディ

Claims (5)

  1. それぞれが1つ以上の演算装置及び記憶領域を備えるとともに、第1のノードと第2のノードとを含む複数のノードを有する情報処理装置において、
    前記第2のノードに、前記複数のノードのそれぞれに対応付けられた記憶領域が含まれ、
    記第1のノードに含まれる第1の演算装置において、
    記第2のノードに受け渡すデータを前記記憶領域のうちの前記第のノードに対応付けられた第1の記憶領域に送信するデータ送信処理部と、
    前記データ送信処理部によるデータの送信に対応する割込みを、前記第1のノードを特定するノード識別情報とともに、前記データの送信先ノードに対して発生させる割込み生成部とを有し、
    記第2のノードに含まれる第2の演算装置において、
    前記割込みを受信すると、前記割込みと共に受信した前記ノード識別情報に基づいて、どのノードからの要求であるかを特定する割込み処理部と、
    前記割込み処理部が特定したノードが前記第1のノードである場合、前記記憶領域のうちの前記第1のノードに対応する前記第1の記憶領域からデータを読み出すデータ受信部とを有することを特徴とする情報処理装置。
  2. 前記第2のノードに含まれる第2の演算装置が、前記複数のノードをまたいでOSを管理するハイパーバイザを実行することで前記割込み処理部としての機能が実現され、
    前記第1のノードが前記OSからクロスコールの送信要求を受信すると、該クロスコールの送信先である前記第2のノードにおいて、前記割込み処理部が前記ノード識別情報を参照してデータが格納された前記第1の記憶領域を判定することを特徴とする、請求項記載の情報処理装置。
  3. ノード毎に異なる優先度が設定され、
    前記ノード識別情報が、前記優先度を示す優先度情報を備えることを特徴とする請求項又は記載の情報処理装置。
  4. 前記ノード毎に、第1の優先度と、前記複数のノードのいずれに設定された前記第1の優先度よりも低い第2の優先度が設定されており、前記ノード識別情報が備える前記優先度情報として、前記第1の優先度を表す第1優先情報と、前記第2の優先度を表す第2優先情報とのいずれかが備えられるものであり、
    前記第1の演算装置は、
    前記第1優先情報と前記第2優先情報とのいずれかをランダムに選択する選択部を備え、
    前記割込み生成部が、前記選択部によって選択された前記第1優先情報もしくは前記第2優先情報のいずれかを前記ノード識別情報として前記データの送信先に対して通知することを特徴とする請求項記載の情報処理装置。
  5. 複数の演算装置及び複数の記憶領域を有する情報処理装置において、
    前記複数の演算装置のうちの第1の演算装置は、
    他の演算装置に受け渡すデータを前記複数の記憶領域のうちの前記第1の演算装置に対応付けられた第1の記憶領域に送信するデータ送信処理部と、
    前記データ送信処理部によるデータの送信に対応する割込みを、前記第1の記憶領域を
    特定する識別情報とともに、前記データの送信先に対して発生させる割込み生成部とを備え、
    前記複数の演算装置のうちの第2の演算装置は、
    前記複数の演算装置のうちのいずれかから割込みを受信すると、前記割込みと共に受信した前記識別情報に基づいて、どの演算装置からの要求であるかを特定する割込み処理部と、
    前記複数の記憶領域のうち、前記割込み処理部が特定した演算装置が前記第1の演算装置である場合、前記第1の演算装置に対応する前記第1の記憶領域からデータを読み出す
    データ受信部とを備え、
    前記記憶領域において、
    前記第1の演算装置から当該記憶領域のステータス変更のためのアクセスを行なう第1管理領域と、前記第2の演算装置がデータを取得するためのアクセスを行なう第2管理領域とを異なるキャッシュライン上に備えることを特徴とする情報処理装置。
JP2012192392A 2012-08-31 2012-08-31 情報処理装置,処理方法及びプログラム Active JP6079065B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2012192392A JP6079065B2 (ja) 2012-08-31 2012-08-31 情報処理装置,処理方法及びプログラム
US13/936,532 US9063929B2 (en) 2012-08-31 2013-07-08 Information processing apparatus, information processing method, computer-readable recording medium having stored therein program
EP13175508.4A EP2704009B1 (en) 2012-08-31 2013-07-08 Information processing apparatus, information processing method, and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012192392A JP6079065B2 (ja) 2012-08-31 2012-08-31 情報処理装置,処理方法及びプログラム

Publications (2)

Publication Number Publication Date
JP2014048965A JP2014048965A (ja) 2014-03-17
JP6079065B2 true JP6079065B2 (ja) 2017-02-15

Family

ID=48747982

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012192392A Active JP6079065B2 (ja) 2012-08-31 2012-08-31 情報処理装置,処理方法及びプログラム

Country Status (3)

Country Link
US (1) US9063929B2 (ja)
EP (1) EP2704009B1 (ja)
JP (1) JP6079065B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114477883B (zh) * 2022-02-10 2022-09-13 青岛光大集团大型构件有限公司 一种高强隔音混凝土及其制备方法及混凝土预制叠合板

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104268111B (zh) * 2014-09-17 2017-12-01 海信(山东)冰箱有限公司 一种数据处理的方法及装置
EP3125056B1 (de) * 2015-07-30 2021-04-07 Siemens Aktiengesellschaft System und verfahren zur steuerung und/oder analytik eines industriellen prozesses
JP6859642B2 (ja) * 2016-09-23 2021-04-14 カシオ計算機株式会社 制御装置、電子時計、処理制御方法、及びプログラム
WO2020222265A1 (ja) * 2019-04-30 2020-11-05 株式会社Nttドコモ ユーザ装置、及び通信方法
CN112286657A (zh) * 2020-10-23 2021-01-29 海光信息技术股份有限公司 电子设备和中断处理方法
WO2023123163A1 (zh) * 2021-12-30 2023-07-06 华为技术有限公司 计算装置中的跨域通信方法和跨域通信装置

Family Cites Families (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6359649A (ja) 1986-08-29 1988-03-15 Fujitsu Ltd プロセツサ間の通信方式
JP2872259B2 (ja) * 1989-03-17 1999-03-17 株式会社日立製作所 マルチプロセッサシステム
JPH05143364A (ja) 1991-11-22 1993-06-11 Fujitsu Ltd 割込制御装置
JP3312362B2 (ja) * 1994-08-26 2002-08-05 日本電信電話株式会社 マルチプロセッサシステム
JPH07200494A (ja) 1993-12-28 1995-08-04 Mitsubishi Electric Corp 分散制御方式
JP3312361B2 (ja) * 1994-04-13 2002-08-05 日本電信電話株式会社 分散共有メモリシステム
JP2940403B2 (ja) * 1994-08-03 1999-08-25 株式会社日立製作所 並列計算機システムにおけるモニタデータ収集方法
JPH09162873A (ja) * 1995-12-05 1997-06-20 Nippon Telegr & Teleph Corp <Ntt> 誤り検出方法および装置
JPH11120156A (ja) 1997-10-17 1999-04-30 Nec Corp マルチプロセッサシステムにおけるデータ通信方式
JP2000029850A (ja) 1998-07-09 2000-01-28 Nec Data Terminal Ltd オペレーティングシステムのプロセッサ間通信を使用したタスク制御方法
JP3576437B2 (ja) * 1999-11-30 2004-10-13 松下電器産業株式会社 マルチプロセッサタスク制御方法及びタスク制御装置
US7379994B2 (en) * 2000-10-26 2008-05-27 Metilinx Aggregate system resource analysis including correlation matrix and metric-based analysis
US6813665B2 (en) * 2001-09-21 2004-11-02 Intel Corporation Interrupt method, system and medium
JP3640187B2 (ja) * 2002-07-29 2005-04-20 日本電気株式会社 マルチプロセッサシステムの障害処理方法、マルチプロセッサシステム及びノード
JP2004086615A (ja) 2002-08-27 2004-03-18 Matsushita Electric Ind Co Ltd バス通信装置
US7222262B2 (en) * 2003-08-05 2007-05-22 Newisys, Inc. Methods and devices for injecting commands in systems having multiple multi-processor clusters
US7194598B2 (en) * 2004-01-26 2007-03-20 Nvidia Corporation System and method using embedded microprocessor as a node in an adaptable computing machine
JP4298543B2 (ja) * 2004-02-24 2009-07-22 京セラミタ株式会社 割り込み制御装置
JP2006119802A (ja) * 2004-10-20 2006-05-11 Hitachi Ltd マルチプロセッサシステム
EP1669864B1 (en) * 2004-12-03 2010-06-02 STMicroelectronics Srl A process for managing virtual machines in a physical processing machine, corresponding processor system and computer program product therefor
JP2006301894A (ja) * 2005-04-20 2006-11-02 Nec Electronics Corp マルチプロセッサシステム、及びマルチプロセッサシステムのメッセージ伝達方法
JP4856413B2 (ja) * 2005-10-04 2012-01-18 富士通株式会社 演算処理装置、情報処理装置、及び演算処理装置の制御方法
US20080162762A1 (en) * 2006-12-29 2008-07-03 Gilbert Neiger Interrupt remapping based on requestor identification
US7849247B2 (en) * 2008-10-14 2010-12-07 Freescale Semiconductor, Inc. Interrupt controller for accelerated interrupt handling in a data processing system and method thereof
JP5217929B2 (ja) * 2008-11-13 2013-06-19 ソニー株式会社 割込検出装置および情報処理システム
US8028017B2 (en) * 2009-04-16 2011-09-27 International Business Machines Corporation Virtual controllers with a large data center
JP4854050B2 (ja) * 2009-09-24 2012-01-11 エヌイーシーコンピュータテクノ株式会社 ノード制御装置、ノード制御装置の制御方法、情報処理システム、及びコンピュータプログラム
JP5423871B2 (ja) * 2010-03-09 2014-02-19 富士通株式会社 情報処理装置、情報処理方法、およびプログラム
WO2011114476A1 (ja) * 2010-03-17 2011-09-22 富士通株式会社 マルチコアプロセッサシステム、通知プログラム、および通知方法
KR101717494B1 (ko) * 2010-10-08 2017-03-28 삼성전자주식회사 인터럽트 처리 장치 및 방법
US8812916B2 (en) * 2011-06-02 2014-08-19 International Business Machines Corporation Failure data management for a distributed computer system
US9678801B2 (en) * 2012-08-09 2017-06-13 International Business Machines Corporation Service management modes of operation in distributed node service management

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114477883B (zh) * 2022-02-10 2022-09-13 青岛光大集团大型构件有限公司 一种高强隔音混凝土及其制备方法及混凝土预制叠合板

Also Published As

Publication number Publication date
JP2014048965A (ja) 2014-03-17
EP2704009B1 (en) 2019-04-24
US20140068115A1 (en) 2014-03-06
EP2704009A2 (en) 2014-03-05
US9063929B2 (en) 2015-06-23
EP2704009A3 (en) 2015-01-14

Similar Documents

Publication Publication Date Title
JP6079065B2 (ja) 情報処理装置,処理方法及びプログラム
CN100568182C (zh) 在逻辑地分区的数据处理系统内分布工作的方法和系统
CN101120317A (zh) 将存储器从一个虚拟机动态再分配到另一个的方法、装置和系统
US9916215B2 (en) System and method for selectively utilizing memory available in a redundant host in a cluster for virtual machines
JP6464777B2 (ja) 情報処理装置及びプログラム
US20120215941A1 (en) Accessing a configuration space of a virtual function
JP4882736B2 (ja) 情報処理装置,障害処理方法,障害処理プログラムおよび同プログラムを記録したコンピュータ読取可能な記録媒体
JP2006018806A (ja) コンピュータ・ベース・システムにおける資源割当て方法
US9703590B2 (en) Information processing apparatus including bridges that connect virtual machines and physical devices, and control method thereof
JP4726915B2 (ja) コンピュータ構成においてデバイスのクリティカル性を判断する方法及びシステム
CN113391881B (zh) 中断的管理方法、装置、电子设备及计算机存储介质
US8650281B1 (en) Intelligent arbitration servers for network partition arbitration
JP2009252128A (ja) メモリ制御装置及びその制御方法
JP5182162B2 (ja) 計算機システム及びi/o制御方法
US20130247065A1 (en) Apparatus and method for executing multi-operating systems
WO2013111285A1 (ja) 通信装置及び通信方法及びプログラム
JP2016091069A (ja) ジョブ管理プログラム、ジョブ管理方法、およびジョブ管理装置
JP2015176218A (ja) 演算処理装置、演算処理装置の制御方法、及び演算処理装置の制御プログラム
US20100152866A1 (en) Information processing apparatus, information processing method and computer-readable medium having an information processing program
KR102608939B1 (ko) 멀티코어 프로세서를 이용한 주변 장치 공유 방법 및 이를 이용하는 전자 장치
US20230067658A1 (en) System and operation method of hybrid virtual machine managers
JP2014109938A (ja) プログラム起動装置、プログラム起動方法、及びプログラム起動プログラム
JP4522292B2 (ja) 画像処理装置及び画像処理方法
JP6701846B2 (ja) 管理装置、バックアップシステム、バックアップ管理方法、プログラム
KR102532641B1 (ko) 장치 및 이의 가상 머신 재배치 방법

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150512

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20151224

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160126

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160328

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20160823

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20161122

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20161202

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170102

R150 Certificate of patent or registration of utility model

Ref document number: 6079065

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150