JP5933356B2 - コンピュータシステム - Google Patents

コンピュータシステム Download PDF

Info

Publication number
JP5933356B2
JP5933356B2 JP2012132871A JP2012132871A JP5933356B2 JP 5933356 B2 JP5933356 B2 JP 5933356B2 JP 2012132871 A JP2012132871 A JP 2012132871A JP 2012132871 A JP2012132871 A JP 2012132871A JP 5933356 B2 JP5933356 B2 JP 5933356B2
Authority
JP
Japan
Prior art keywords
bus
virtual cpu
virtual
error
vcpu
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.)
Expired - Fee Related
Application number
JP2012132871A
Other languages
English (en)
Other versions
JP2013257695A5 (ja
JP2013257695A (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.)
Renesas Electronics Corp
Original Assignee
Renesas Electronics Corp
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 Renesas Electronics Corp filed Critical Renesas Electronics Corp
Priority to JP2012132871A priority Critical patent/JP5933356B2/ja
Priority to US13/901,482 priority patent/US9176756B2/en
Publication of JP2013257695A publication Critical patent/JP2013257695A/ja
Publication of JP2013257695A5 publication Critical patent/JP2013257695A5/ja
Priority to US14/887,662 priority patent/US9612909B2/en
Application granted granted Critical
Publication of JP5933356B2 publication Critical patent/JP5933356B2/ja
Priority to US15/450,197 priority patent/US10379931B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • G06F11/0772Means for error signaling, e.g. using interrupts, exception flags, dedicated error registers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0712Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a virtual computing platform, e.g. logically partitioned systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0745Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in an input/output transactions management context
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1438Restarting or rejuvenating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3027Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a bus
    • 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/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4027Coupling between buses using bus bridges
    • 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/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4063Device-to-bus coupling
    • G06F13/4068Electrical coupling
    • 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/30098Register arrangements
    • G06F9/30101Special purpose registers
    • 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/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • 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/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4405Initialisation of multiprocessor systems
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1479Generic software techniques for error detection or fault masking
    • G06F11/1482Generic software techniques for error detection or fault masking by means of middleware or OS functionality
    • G06F11/1484Generic software techniques for error detection or fault masking by means of middleware or OS functionality involving virtual machines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/84Using snapshots, i.e. a logical point-in-time copy of the data

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Quality & Reliability (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Computing Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Debugging And Monitoring (AREA)
  • Bus Control (AREA)

Description

本発明は、コンピュータシステムに関し、特に複数の仮想マシンが動作可能なコンピュータシステムに関する。
制御システムのような高い信頼性・リアルタイム性が求められるコンピュータシステムと、映像音声処理を行う高機能なコンピュータシステムを1つのハードウエアで共存させる仕組みとして、仮想マシンを用いる方法がある。
仮想マシンは、仮想CPU(Central Processing Unit)、仮想化された物理メモリ、仮想I/Oデバイスといった仮想部品から構成される。仮想マシンは各仮想部品を、物理部品(物理CPU、物理メモリ、物理IOデバイス)を占有/共有などの形態で割り当てて実現する。
この仮想マシンを用いる環境にて、デバイス(以降、IOと記す)故障などによる異常事態が発生した際、そのエラーを検出し更なる被害の拡大を防止するために、「それぞれのOS(Operating System)が利用するIOを関連付ける関連付けテーブルと、IOのエラーを検出する手段とを設け、エラーが発生したら関連付けテーブルから対応する仮想マシンを特定し、特定した仮想マシンだけを停止させる」方法が提案されている(例えば、特許文献1を参照)。
また、制御システムのような高いリアルタイム性が求められるコンピュータシステムでは、プロセッサ使用時間を一定の時間ないし命令毎に区切り、複数の処理を切替えながら実行するマルチスレッドプロセッサが提案されている。切替え実行することで、映像音声といったマルチメディア処理を行いつつ、実時間(リアルタイム)処理のための時間を確保すること(時間保証)が実現しやすくなる。また、一定の処理の実行速度を加速するための「マルチスレッドプロセッサのスケジューリング処理において、複数のスケジューリングレジスタを設け、通常動作時と割込み処理時とで動作するスレッドの比率を切り換える」方法が提案されている(例えば、特許文献2を参照)。
また、「IO故障による異常状態が発生した際にバスブリッジを介して割込みを発生させ、OSやデバイスドライバに対して再初期化の指示を出すと、OSやデバイスドライバ等のソフトウエアは通信制御部の再初期化を実行する 」方法が提案されている(例えば、特許文献3を参照)。
特開2007−323142号公報 特開2010−86129号公報 特開2003−330817号公報
特許文献2に示すようなマルチスレッドプロセッサを用いることで、複数の仮想マシン上で動作するOSを同時に実行し易くなった。しかしながら、もともと別のハードウエアで動作していることを前提のOSを複数同じハードウエアで動作させると、以下に示す問題が生じる。
仮想マシン上のOS(OS−Aとする)からの異常アクセスにより該IO(IO−A)からエラーが発生した場合、特許文献1のように、OS−Aを止めることで、IO− Aへのアクセスを行わなくすることが出来る。また、特許文献3のようにエラーをOS−Aに通知することで、IOエラーを復旧することが出来る。しかしながら、IOエラー発生時に、IO−Aが接続するバス(バスx)へIO−Aの障害が波及する場合があり得る。この場合、バスxに接続された他のIO(IO−B)を利用する他のOS(OS−Bとする)はバスxが障害状態であることを知らないため、IO −Bへアクセスする。その結果OS−Bが異常停止してしまうという問題が生じる。
本発明は、上記のような問題点を解決するためになされたもので、障害波及の防止と復旧が可能なコンピュータシステムを提供することである。
上記課題を解決するために、本発明は、バスエラーの発生を通知する割込みコントローラと、マルチスレッドプロセッサとを備え、マルチスレッドプロセッサは、複数の仮想CPUの実行順序を定め、実行する複数の仮想CPUのデータを保持するスケジュールレジスタと、スケジュールレジスタに設定された順序にしたがって、仮想CPUを実行する仮想CPU実行部とを含み、複数の仮想CPUは、それぞれ異なるOSを稼働し、複数の仮想CPUは、他のOSを管理する管理OSを稼働する第1の仮想CPUを含み、仮想CPU実行部は、バスエラー発生の通知を受けたときに、スケジュールレジスタの実行順序によらずに、第1の仮想CPUのみを動作させ、第1の仮想CPUは、エラーが発生したバスを再初期化する。
本発明によれば、障害波及の防止と復旧が可能となる。
第1の実施形態のコンピュータシステムのハードウエア構成図である。 第1の実施形態のコンピュータシステムのソフトウエア構成を説明するための図である。 第1の実施形態のコンピュータシステムの起動処理の手順を表わすフローチャートである。 第1の実施形態において、バス113においてエラーが発生した際の復旧手順を表わすフローチャートである。 第2の実施形態のコンピュータシステムのソフトウエア構成を説明するための図である。 IO利用OS管理テーブルの例を表わす図である。 第2の実施形態において、バス113においてエラーが発生した際の復旧手順を表わすフローチャートである。 第3の実施形態のコンピュータシステムのソフトウエア構成を説明するための図である。 第3の実施形態のコンピュータシステムの起動処理の手順を表わすフローチャートである。 第3の実施形態において、バスエラー割込み発生時のスケジュールを生成する手順を表わすフローチャートである。 第3の実施形態において、バス113においてエラーが発生した際の復旧手順を表わすフローチャートである。
以下、本発明の実施形態について図面を参照して説明する。
[第1の実施形態]
(ハードウエア構成)
図1は、第1の実施形態のコンピュータシステムのハードウエア構成図である。
図1に示すように、このコンピュータシステムは、マルチスレッドプロセッサ100と、割込みコントローラ101と、主記憶(メモリ)102と、バスブリッジ120,121,122と、IO131〜135と、バス110〜113を備える。
マルチスレッドプロセッサ100は、複数の仮想CPUを時間的に切り換えて実行する。マルチスレッドプロセッサ100に関するより詳細な説明は、ソフトウエア構成の説明において行なう。
割込みコントローラ101は、IO130〜135やバスブリッジ120〜122、主記憶102からの割込み要求を受け取り、マルチスレッドプロセッサ100へ割込み要求を伝える。この割込みコントローラ101は、マルチスレッドプロセッサ100に含まれていても良い。それぞれの割込み要因に対して、優先度とVCPU番号が設定されるものとしてもよい。
主記憶102は、RAM(Random Access Memory)で構成される。主記憶102は、マルチスレッドプロセッサ100において動作させるプログラムやデータを格納する。
バス110は、マルチスレッドプロセッサ100、割込みコントローラ101、主記憶102、バスブリッジ120、バスブリッジ121を接続するバスである。
バス111は、バスブリッジ120、バスブリッジ122、IO130を接続するバスである。
バス112は、バスブリッジ121、IO131、IO132を接続するバスである。
バス113は、バスブリッジ122、IO133〜135を接続するバスである。
バスブリッジ120は、バス110とバス111との通信を媒介する。バスブリッジ120は、バス111のバスエラーを検出して、バス110と接続する割込みコントローラ101へ通知する機能を有する。
バスブリッジ121は、バス110とバス112との通信を媒介する。バスブリッジ121は、バス112のバスエラーを検出して、バス110と接続する割込みコントローラ101へ通知する機能を有する。
バスブリッジ122は、バス111とバス113の間の通信を媒介する。バスブリッジ122は、バス113のバスエラーを検出して、バス110と接続する割込みコントローラ101へ通知する機能を有する。
IO130〜135は、それぞれディスプレイ、制御ネットワーク、不揮発性メモリ、タッチパネル、HDD(Hard Disk Drive)、オーディオ機器などのデバイスである。なお、本実施の形態ではこれらデバイスが接続されている例を示すが、これらデバイスの一部が無くてもよく、さらに、他にもROM(Read Only Memory)、FDD(Floppy Disk Drive)、SD(Secure Digital)メモリカード、CF(Compact Flash(登録商標))カード、通信ボード(有線、無線)といったデバイスのいずれかが接続されていてもよい。
本実施の形態では、故障140が、IO134で発生し、故障141が、バス113で発生したものとして説明する。
(ソフトウエア構成)
図2は、第1の実施形態のコンピュータシステムのソフトウエア構成を説明するための図である。
VCPU220〜222は、仮想CPUであって、マルチスレッドプロセッサ100が一定時間に実行する処理イメージを模式的なCPUとして示したものである。
マルチスレッドプロセッサ100は、複数のレジスタ群で構成されるスケジュールレジスタAを有する。
スケジュールレジスタAは、仮想CPUを実行する順序を定めた順序テーブルと、実行する仮想CPUで使用するデータを記憶するレジスタ群とを含む。本実施の形態では、順序テーブルには、VCPU#0、VCPU#1、VCPU#2、VCPU#2の順に循環的に繰り返し実行するように設定され、VCPU#0、VCPU#1、VCPU#2に対応するレジスタ群が設けられている。本実施の形態では、3つのレジスタ群(VCPU#0〜#2)を有するマルチスレッドプロセッサとして説明するが、レジスタ群の個数は2つないしそれ以上存在してもよい。
仮想CPU実行部201は、スケジュールレジスタを選択するか否かを定めたフラグ202を有する。
仮想CPU実行部201は、フラグ202がセットされている場合、スケジュールレジスタ210内の順序テーブルを参照して、一定時間または命令ごとに選択するVCPUを切り換え、選択したVCPUに対応するレジスタ群を選択することによって、選択したVCPUを実行する。
仮想CPU実行部201は、フラグ202がクリアされている場合、VCPU#0に対応するレジスタ群を選択することによって、VCPU#0を実行する。
割込みコントローラ101は、割込み通知部251を備える。
割込み通知部251は、各IO130〜135やバスブリッジ120〜122、主記憶102から、それらのエラー発生時に割込み要求を受け取り、マルチスレッドプロセッサ100へ割込み要求を伝える。
VCPU#0は、他のOSを管理する管理OS230を稼働する。VCPU#0は、管理OS230の下で動作するプログラムを実行することによって、初期化処理部261、バス再初期化部245、IO再初期化要求部244、割込み通知先設定部240として機能する。
初期化処理部261は、管理OSに対する処理を行なう。
割込み通知先設定部240は、割込み通知部251からの割込みに対する設定を行なう。
IO再初期化要求部244は、デバイス再初期化部241、242に対して、関連するデバイスの再初期化を要求する。
VCPU#1は、RT(Real time)OS231を稼働する。VCPU#1は、RTOS231の下で動作するプログラムを実行することによって、複数の制御アプリケーション255、デバイス再初期化部241として機能する。
制御アプリケーション255は、制御機能を実行する。
デバイス再初期化部241は、VCPU#1が利用するデバイスを再初期化するための処理を行なう。
VCPU#2は、映像音声処理OS232を稼働する。VCPU#2は、映像音声処理OS232の下で動作するプログラムを実行することによって、複数の映像音声アプリケーション243、デバイス再初期化部242として機能する。
映像音声アプリケーション243は、映像音声処理を実行する。
デバイス再初期化部242は、VCPU#2が利用するIOを再初期化するための処理が行なわれる。
(動作)
次に、第1の実施の形態のコンピュータシステムの動作について説明する。
図3は、第1の実施形態のコンピュータシステムの起動処理の手順を表わすフローチャートである。VCPU#0によって、コンピュータシステムが起動される。
まず、初期化処理部261が、管理OS230の通常の初期化処理を行う(S300)。
次に、割込み通知先設定部240が、バス111〜113からのエラー通知(バスブリッジ120〜122から通知される)が管理OS230に通知されるように設定する(S301)。
次に、割込み通知先設定部240が、バスエラーによる割込みによって、フラグ202が無効になるように設定する(S302)。
その後、管理OSは定常動作へ移行する。
図4は、第1の実施形態において、バス113においてエラーが発生した際の復旧手順を表わすフローチャートである。
バス113においてエラーが発生すると、バスブリッジ122が、割込みコントローラ101にエラーの発生を通知する。割込みコントローラ101は、マルチスレッドプロセッサ100へ割込みを通知する(S400)。
次に、割込みコントローラ101の割込み通知部251は、フラグ202を無効に設定する。これによって、仮想CPU実行部201は、スケジュールレジスタAを利用したVCPU#0〜#2の順次選択実行からVCPU#0のみの実行に切り替える(S401)。S401によって、VCPU#1とVCPU#2が動作しなくなる。
次に、バス再初期化部245が、バス113を再初期化する(S402)。S402により、バス113で発生したエラーは取り除かれる。
次に、IO再初期化要求部244が、RTOS231および映像音声処理OS232に対して、デバイス再初期化を要求する(S403)。
次に、仮想CPU実行部201は、フラグ202をセットし、スケジュールレジスタAを利用したVCPU#0〜VCPU#2の順次選択実行へ切り替える(S404)。S404により、VCPU#1とVCPU#2の動作が再開する。
次に、デバイス再初期化部241が、RTO231で利用するデバイスを再初期化する(S405)。デバイス再初期化部242が、映像音声処理OS232で利用するデバイスを再初期化する(S406)。これによって、バスおよびそのバスに接続するデバイスを正常状態へ復旧する。その後、各OSは定常動作へ戻る。
(効果)
以上のように、本実施の形態によれば、バスを再初期化する際に、全てのOSを停止させるので、バスエラーを安全に取り除くことができる。さらにに、各OSへIO再初期化を要求することによって、各OSにおいてIOへの要求手順が途中(DMA完了待ちなど)であっても、再度IOへの要求手順を踏むことができ、安全に再開できる。
[第2の実施形態]
(ハードウエア構成)
本実施の形態のコンピュータシステムのハードウエア構成は、第1の実施の形態のハードウエア構成と同じであるため、説明、図示を省略する。ただし、本実施の形態のコンピュータシステムのハードウエア構成は、RTOSが利用するIO(デバイス)が、残りのIO(デバイス)と別のバスに接続してあるものとして説明する。
(ソフトウエア構成)
図5は、第2の実施形態のコンピュータシステムのソフトウエア構成を説明するための図である。
第2の実施形態のソフトウエア構成が、第1の実施形態のソフトウエア構成と相違する点は以下である。
スケジュール変更部547は、IO利用OS管理テーブル600に基づいて、バスエラー発生時に現状のスケジュールレジスタから、エラーを発生したバスに接続するデバイス(IO)を利用するOSが動作するVCPU番号をVCPU#0に変更する。
図6は、IO利用OS管理テーブルの例を表わす図である。
各IO(列601)が接続されている接続バス(列602)と、該IOを利用するOS(列603)の関連が示されている。本実施の形態では、接続の有無を空欄と○、利用の有無を空欄と●で図示しているが、数字(例えば、0と1)で管理しても良い。
たとえば、このIO利用管理テーブルによれば、IO130は、バス111と接続し、映像音声処理OSを利用することが示されている。また、IO131は、バス112と接続し、RTOSを利用することが示されている。
(動作)
次に、第2の実施形態のコンピュータシステムの動作を説明する。
第2の実施形態のコンピュータシステムの起動処理の手順は、図3で説明した第1実施の形態と同じであるため、説明および図示を繰り返さない。
図7は、第2の実施形態において、バス113においてエラーが発生した際の復旧手順を表わすフローチャートである。
バス113においてエラーが発生すると、バスブリッジ122が、割込みコントローラ101にエラーの発生を通知する。割込みコントローラ101は、マルチスレッドプロセッサ100へ割込みを通知する(S700)。
次に、割込みコントローラ101の割込み通知部251は、フラグ202を無効に設定する。これによって、仮想CPU実行部201は、スケジュールレジスタAを利用したVCPU#0〜VCPU#2の順次選択実行からVCPU#0のみの実行に切り替える(S701)。S701によって、VCPU#1とVCPU#2が動作しなくなる。
次に、スケジュール変更部547は、IO利用OS管理テーブル600を参照して、バス113に接続したIO(本例ではIO133〜135)を使用するすべてのOS(本例では映像音声処理OS232のみ)を抽出する。スケジュール変更部547は、スケジュールレジスタAにおいて、抽出したOSで動作する仮想CPU(VCPU#0〜VCPU#2のうち1つまたは複数)(本例では、映像音声処理OS532を利用するVCPU#2)をVCPU#0に書き換える(S702)。
次に、スケジュール変更部547は、フラグ202をセットし、変更したスケジュールレジスタAを利用したVCPUの順次選択実行へ切り替える(S703)。S703により、VCPU#1の動作が再開する。
次に、バス再初期化部245が、バス113を再初期化する(S704)。S704により、バス113で発生したエラーは取り除かれる。
次に、IO再初期化要求部244が、映像音声処理OS232に対し、デバイス再初期化を要求する(S705)。
次に、スケジュール変更部547は、S702においてスケジュールレジスタ510を変更した箇所(本例では、VCPU#2をVCPU#0に変更)を元の状態に戻す(本例では、変更したVCPU#0をVCPU#2に戻す)。S706により、VCPU#1の動作が再開する。
次に、デバイス再初期化部242が、映像音声処理OS232で利用するデバイスを再初期化する。これによって、バスおよびそのバスに接続するデバイスを正常状態へ復旧する。その後、映像音声処理OS232は定常動作へ戻る。
(効果)
以上のように、本実施の形態によれば、バスを再初期化する際に、該バスに関連のあるOSを全て停止させているため、安全にバスエラーを取り除くことができる。加えて、該バスに関連のないOSは動作を継続できるため、リアルタイム処理を第1の実施形態よりも早く再開することが出来る。さらに、該バスに関連のあるOSへIO再初期化を要求することで、該バスに関連のあるOSにおいてIOへの要求手順が途中(DMA完了待ちなど)であっても、再度IOへの要求手順を踏むことができ、安全に再開できる。
[第3の実施形態]
(ハードウエア構成)
本実施の形態のコンピュータシステムのハードウエア構成は、第1の実施の形態のハードウエア構成と同じであるため、説明、図示を省略する。ただし、本実施の形態のコンピュータシステムのハードウエア構成は、RTOSが利用するIO(デバイス)が、残りのIO(デバイス)と別のバスに接続してあるものとして説明する。
(ソフトウエア構成)
図8は、第3の実施形態のコンピュータシステムのソフトウエア構成を説明するための図である。
マルチスレッドプロセッサ1200は、複数のスケジュールレジスタA,B,Cを含む。
スケジュールレジスタA,B,Cは、仮想CPUを実行する順序を定めた順序テーブルと、実行する仮想CPUで使用するデータを記憶するレジスタ群とを含む。
スケジュールレジスタAの順序テーブルには、VCPU#0、VCPU#1、VCPU#2、VCPU#2の順に循環的に繰り返し実行するように設定され、VCPU#0、VCPU#1、VCPU#2に対応するレジスタ群が設けられている。
スケジュールレジスタBの順序テーブルには、VCPU#0、VCPU#1、VCPU#0、VCPU#0の順に循環的に繰り返し実行するように設定され、VCPU#0、VCPU#1に対応するレジスタ群が設けられている。
スケジュールレジスタCの順序テーブルには、VCPU#0、VCPU#0、VCPU#2、VCPU#2の順に循環的に繰り返し実行するように設定され、VCPU#0、VCPU#2に対応するレジスタ群が設けられている。
スケジュール生成部1248は、IO利用OS管理テーブル600に基づいて、バスエラー発生時に関連のあるOSをスケジュール対象から外したスケジュールを生成する(本例では、スケジュールレジスタBおよびスケジュールレジスタCを設定する)。
仮想CPU実行部1201は、割込みコントローラ101からの割込み要求やOS(ソフトウエア)からの要求に応じて、選択するスケジュールレジスタを切替える。
(動作)
次に、第3の実施の形態のコンピュータシステムの動作について説明する。
図9は、第3の実施形態のコンピュータシステムの起動処理の手順を表わすフローチャートである。VCPU#0によって、コンピュータシステムが起動される。
まず、初期化処理部261が、管理OS230の通常の初期化処理を行う(S1400)。
次に、スケジュール生成部1248は、各バスエラー割込み発生時に使用されるスケジュールレジスタを設定する(S1401)。
次に、割込み通知先設定部240が、バス111〜113からのエラー通知(バスブリッジ120〜122から通知される)が管理OS230に通知されるように設定する(S1402)。
その後、管理OSは定常動作へ移行する。
図10は、第3の実施形態において、バスエラー割込み発生時のスケジュールを生成する手順を表わすフローチャートである。以下の説明は1例であり、スケジュールの生成アルゴリズムは範囲を逸脱しない範囲で異なっていても実現できる。
S1501〜S1502のステップをバスリストのバスの数だけ繰り返される(S1500)。
まず、スケジュール生成部1248は、IO利用OS管理テーブル600を参照し、選択したバスに接続されたIO(本例では、バス111の選択時には、IO130とバスブリッジ122)を特定し、これらのIOを使用するOS(本例では、映像音声処理OS1232のみ)を特定する(S1501)。
次に、スケジュール生成部1248は、標準スケジュールレジスタであるスケジュールレジスタAにおいて、特定したOSが動作するVCPU#X(X=0〜2のいずれか1つまたは複数)をVCPU#0に変更したスケジュールを生成(本例では、VCPU#2をVCPU#0に変更)し、仮想CPU実行スケジュール1510に追加する。
S1500が終了すると、仮想CPU実行スケジュール1510には、バスリストのバスの数だけスケジュールが存在する。
次に、スケジュール生成部1248は、仮想CPU実行スケジュール1510にあるスケジュールから重複するスケジュールを破棄する(S1503)。
次に、スケジュール生成部1248は、仮想CPU実行スケジュール1510のスケジュールをスケジュールレジスタに登録し(本例では、スケジュールレジスタB,Cに登録)、バスエラー発生時に該当するスケジュールレジスタが選ばれるように、仮想CPU実行部201に設定する(S1504)。
図11は、第3の実施形態において、バス113においてエラーが発生した際の復旧手順を表わすフローチャートである。
バス113においてエラーが発生すると、バスブリッジ122が、割込みコントローラ101にエラーの発生を通知する。割込みコントローラ101は、マルチスレッドプロセッサ1200へ割込みを通知する(S1600)。
仮想CPU実行部1201は、エラーが発生したバスに対応するスケジュールレジスタを選択(本例ではスケジュールレジスタB)し、実行スケジュールを切替える(S1601)。S1601によって、映像音声処理OS232は動作しなくなる。
次に、バス再初期化部245が、バス113を再初期化する(S1602)。S1602により、バス113で発生したエラーは取り除かれる。
次に、IO再初期化要求部244が、映像音声処理OS232に対し、デバイス再初期化を要求する(S1603)。
次に、仮想CPU実行部201は、使用するスケジュールレジスタを標準スケジュールレジスタに変更(スケジュールレジスタAに変更)し、実行スケジュールを切替える(S1604)。S1604により、映像音声処理OS1232は動作を再開する。
次に、デバイス再初期化部242は、映像音声処理OS232の使用するデバイスを再初期化(S1605)し、バスおよびそのバスに接続するデバイスを正常状態へ復旧する。その後、映像音声処理OS232は定常動作へ戻る。
(効果)
以上のように、本実施の形態によれば、バスを再初期化する際に、該バスに関連のあるOSを全て停止させているため、安全にバスエラーを取り除くことができる。更に、該バスに関連のあるOSへIO再初期化を要求することで、該バスに関連のあるOSにおいてIOへの要求手順が途中(DMA完了待ちなど)であっても、再度IOへの要求手順を踏むことができ、安全に再開できる。加えて、該バスに関連のないOSは動作を継続するため、リアルタイム処理を止めずに復旧処理を行うことが出来る。
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
100,1200 マルチスレッドプロセッサ、101 割込みコントローラ、102 主記憶、110〜113 バス、120〜122 バスブリッジ、130〜135 201,1201 仮想CPU実行部、202 フラグ、IO、230 管理OS、231 RTOS、232 映像音声処理OS、240 割込み通知先設定部、241,242 デバイス再初期化部、243 映像音声アプリケーション、244 IO再初期化要求部、245 バス再初期化部、251 割込み通知部、255 制御アプリケーション、261 初期化処理部、547 スケジュール変更部、600 IO利用OS管理テーブル、1248 スケジュール生成部、1510 仮想CPU実行スケジュール。

Claims (5)

  1. 第1、第2、第3のバスと、
    前記第1と第2のバスとを接続し、前記第2のバス上のバスエラーを検出する第1のバスブリッジと、
    前記第2と第3のバスとを接続し、前記第3のバス上のバスエラーを検出する第2のバスブリッジと、
    前記第2のバスに接続される第1のデバイスと、
    前記第3のバスに接続される第2のデバイスと、
    前記バスエラーの検出に応じてバスエラーの発生を通知する割込みコントローラと、
    マルチスレッドプロセッサとを備え、
    前記マルチスレッドプロセッサは、
    複数の仮想CPUの実行順序を定め、実行する複数の仮想CPUのデータを保持するスケジュールレジスタと、
    前記スケジュールレジスタに設定された順序にしたがって、仮想CPUを実行する仮想CPU実行部とを含み、
    複数の仮想CPUは、それぞれ異なるOSを稼働し、複数の仮想CPUは、他のOSを管理する管理OSを稼働する第1の仮想CPUを含み、
    前記仮想CPU実行部は、前記第2のバス上のバスエラー発生の通知を受けた場合は、前記第1の仮想CPUと、前記複数の仮想CPUのうち、前記第1のデバイス及び前記第2のデバイスを使用しないOSを稼働する仮想CPUとを動作させ、
    前記第1の仮想CPUは、エラーが発生したバスを再初期化する、コンピュータシステム。
  2. 前記仮想CPU実行部は、前記第3のバス上のバスエラー発生の通知を受けた場合は、前記第1の仮想CPUと、前記複数の仮想CPUのうち、前記第2のデバイスを使用しないOSを稼働する仮想CPUとを動作させる、請求項1記載のコンピュータシステム。
  3. 前記第1の仮想CPUは、前記第2のバス上のバスエラー発生の通知を受けた場合は、前記スケジュールレジスタに対し、前記第1のデバイスまたは前記第2のデバイスを使用するOSを稼働する仮想CPUの情報を前記第1の仮想CPUの情報に変更し、前記第3のバス上のバスエラー発生の通知を受けた場合は、前記スケジュールレジスタに対し、前記第2のデバイスを使用するOSを稼働する仮想CPUの情報を前記第1の仮想CPUの情報に変更する請求項2記載のコンピュータシステム。
  4. 前記第1の仮想CPUは、前記第2のバス上のバスエラー発生の通知を受けた場合は、前記第2のバスの再初期化後、前記第1のデバイスまたは前記第2のデバイスを使用するOSを稼働する仮想CPUに対して、使用する前記第1のデバイスまたは前記第2のデバイスの再初期化を要求し、前記第3のバス上のバスエラー発生の通知を受けた場合は、前記第3のバスの再初期化後、前記第2のデバイスを使用するOSを稼働する仮想CPUに対して、前記第2のデバイスの再初期化を要求し、さらに、前記スケジュールレジスタへの変更を元に復元する請求項3記載のコンピュータシステム。
  5. 前記第1の仮想CPUは、前記第1乃至3のバスと、前記第1と第2のバスブリッジと、前記第1と第2のデバイスと、前記複数の仮想CPUで稼働されるOSとの関係を示す管理テーブルを有し、当該管理テーブルに基づいて稼働させる仮想CPUを決定する請求項1乃至4のいずれか1項に記載のコンピュータシステム。
JP2012132871A 2012-06-12 2012-06-12 コンピュータシステム Expired - Fee Related JP5933356B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2012132871A JP5933356B2 (ja) 2012-06-12 2012-06-12 コンピュータシステム
US13/901,482 US9176756B2 (en) 2012-06-12 2013-05-23 Computer system
US14/887,662 US9612909B2 (en) 2012-06-12 2015-10-20 Computer system
US15/450,197 US10379931B2 (en) 2012-06-12 2017-03-06 Computer system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012132871A JP5933356B2 (ja) 2012-06-12 2012-06-12 コンピュータシステム

Publications (3)

Publication Number Publication Date
JP2013257695A JP2013257695A (ja) 2013-12-26
JP2013257695A5 JP2013257695A5 (ja) 2015-04-09
JP5933356B2 true JP5933356B2 (ja) 2016-06-08

Family

ID=49716350

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012132871A Expired - Fee Related JP5933356B2 (ja) 2012-06-12 2012-06-12 コンピュータシステム

Country Status (2)

Country Link
US (3) US9176756B2 (ja)
JP (1) JP5933356B2 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160110277A1 (en) * 2014-10-16 2016-04-21 Siemens Aktiengesellshaft Method for Computer-Aided Analysis of an Automation System
US10462161B2 (en) * 2017-06-21 2019-10-29 GM Global Technology Operations LLC Vehicle network operating protocol and method
CN110998529B (zh) 2017-07-31 2021-08-20 三菱电机株式会社 信息处理装置以及信息处理方法
JP6496456B1 (ja) 2017-07-31 2019-04-03 三菱電機株式会社 情報処理装置
CN109582467A (zh) * 2018-12-18 2019-04-05 广东浪潮大数据研究有限公司 一种存储系统中io请求的处理方法、系统及相关装置

Family Cites Families (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69324182T2 (de) * 1992-02-03 1999-07-15 Hewlett Packard Co Gerätunabhängige Schnittstelle für graphische Anzeigegeräte
US6715016B1 (en) * 2000-06-01 2004-03-30 Hitachi, Ltd. Multiple operating system control method
US6643727B1 (en) * 2000-06-08 2003-11-04 International Business Machines Corporation Isolation of I/O bus errors to a single partition in an LPAR environment
US7085866B1 (en) * 2002-02-19 2006-08-01 Hobson Richard F Hierarchical bus structure and memory access protocol for multiprocessor systems
US6920587B2 (en) * 2002-04-25 2005-07-19 International Business Machines Corporation Handling multiple operating system capabilities in a logical partition data processing system
JP4554874B2 (ja) 2002-05-14 2010-09-29 日本電気株式会社 冗長化バス接続装置と冗長化バス接続デバイスの冗長化方法
US7496045B2 (en) * 2005-07-28 2009-02-24 International Business Machines Corporation Broadcast of shared I/O fabric error messages in a multi-host environment to all affected root nodes
JP2007206955A (ja) * 2006-02-01 2007-08-16 Sony Corp 情報処理装置および方法、プログラム、並びに記録媒体
US20070239965A1 (en) * 2006-03-31 2007-10-11 Saul Lewites Inter-partition communication
JP2007323142A (ja) 2006-05-30 2007-12-13 Toshiba Corp 情報処理装置およびその制御方法
US7594144B2 (en) * 2006-08-14 2009-09-22 International Business Machines Corporation Handling fatal computer hardware errors
JP4756603B2 (ja) * 2006-10-10 2011-08-24 ルネサスエレクトロニクス株式会社 データプロセッサ
WO2008077628A2 (en) * 2006-12-22 2008-07-03 Virtuallogix Sa System for enabling multiple execution environments to share a device
JP4969258B2 (ja) * 2007-01-30 2012-07-04 株式会社日立製作所 仮想計算機システムのi/oデバイス障害処理方法
US7610439B2 (en) * 2007-02-09 2009-10-27 Broadcom Corporation Method and system for hardware implementation of resetting an external two-wired EEPROM
US7865762B2 (en) * 2007-12-04 2011-01-04 Intel Corporation Methods and apparatus for handling errors involving virtual machines
JP5014179B2 (ja) * 2008-01-25 2012-08-29 三菱電機株式会社 Os優先度変更装置及びos優先度変更プログラム
US8209459B2 (en) * 2008-03-31 2012-06-26 Dell Products L.P. System and method for increased system availability in virtualized environments
US9417914B2 (en) * 2008-06-02 2016-08-16 Microsoft Technology Licensing, Llc Regaining control of a processing resource that executes an external execution context
JP5173712B2 (ja) * 2008-09-30 2013-04-03 ルネサスエレクトロニクス株式会社 マルチスレッドプロセッサ
US9367350B2 (en) * 2008-10-03 2016-06-14 Microsoft Technology Licensing, Llc Meta-scheduler with meta-contexts
JP5411587B2 (ja) * 2009-06-09 2014-02-12 トヨタ自動車株式会社 マルチスレッド実行装置、マルチスレッド実行方法
JP2011022934A (ja) * 2009-07-17 2011-02-03 Toyota Motor Corp 電子制御ユニット、異常検出方法
US8713350B2 (en) * 2009-12-08 2014-04-29 Hewlett-Packard Development Company, L.P. Handling errors in a data processing system
US8489789B2 (en) * 2010-02-05 2013-07-16 Advanced Micro Devices, Inc. Interrupt virtualization
JP2011216004A (ja) * 2010-04-01 2011-10-27 Toyota Motor Corp マイクロプロセッサ、電子制御ユニット、実行比率切り替え方法
JP5585219B2 (ja) * 2010-06-03 2014-09-10 富士通株式会社 スイッチング装置および仮想lan構築方法
JP5458308B2 (ja) * 2010-06-11 2014-04-02 株式会社日立製作所 仮想計算機システム、仮想計算機システムの監視方法及びネットワーク装置
US8510599B2 (en) * 2010-06-23 2013-08-13 International Business Machines Corporation Managing processing associated with hardware events
JP5569197B2 (ja) * 2010-07-06 2014-08-13 富士通株式会社 計算機装置およびリセット制御プログラム
JP5494298B2 (ja) 2010-07-06 2014-05-14 富士通株式会社 計算機装置,障害復旧制御プログラムおよび障害復旧制御方法
US8424000B2 (en) * 2010-07-30 2013-04-16 Symantec Corporation Providing application high availability in highly-available virtual machine environments
US9292248B2 (en) * 2011-06-22 2016-03-22 Microsoft Technology Licensing, Llc Span out load balancing model
WO2013095543A1 (en) * 2011-12-22 2013-06-27 Intel Corporation Apparatus and method for detecting and recovering from instruction fetch errors
US9026865B2 (en) * 2012-06-11 2015-05-05 Unisys Corporation Software handling of hardware error handling in hypervisor-based systems

Also Published As

Publication number Publication date
US20130332925A1 (en) 2013-12-12
US9176756B2 (en) 2015-11-03
US10379931B2 (en) 2019-08-13
US20170177431A1 (en) 2017-06-22
US20160041883A1 (en) 2016-02-11
US9612909B2 (en) 2017-04-04
JP2013257695A (ja) 2013-12-26

Similar Documents

Publication Publication Date Title
US8381032B2 (en) System-directed checkpointing implementation using a hypervisor layer
US10379931B2 (en) Computer system
US9760455B2 (en) PCIe network system with fail-over capability and operation method thereof
CN1326042C (zh) 容错计算机系统及其再同步方法和再同步程序
JP5405320B2 (ja) 仮想計算機制御装置、仮想計算機制御方法及び仮想計算機制御プログラム
WO2016165304A1 (zh) 一种实例节点管理的方法及管理设备
JP5742410B2 (ja) フォールトトレラント計算機システム、フォールトトレラント計算機システムの制御方法、及びフォールトトレラント計算機システムの制御プログラム
JP2012203636A (ja) 仮想計算機の制御方法及び計算機
JP2014503904A (ja) 仮想計算機のクラスタを操作するための方法、装置、コンピュータ・プログラム、およびコンピュータ・プログラム製品
US9195553B2 (en) Redundant system control method
JP2007219757A (ja) 仮想計算機システムを機能させるためのプログラム
US8151147B2 (en) Synchronize error handling for a plurality of partitions
JP5352299B2 (ja) 高信頼性計算機システムおよびその構成方法
JP4182948B2 (ja) フォールト・トレラント・コンピュータシステムと、そのための割り込み制御方法
JP2011044110A (ja) ソフトウェアプログラム実行装置、ソフトウェアプログラム実行方法、及びプログラム
JP4761229B2 (ja) 運用管理装置、運用管理方法ならびにプログラム
JP2000222376A (ja) 計算機システムとその運用方法
US9880888B2 (en) Executing an operating system in a multiprocessor computer system
JP2005316679A (ja) 並列演算処理装置
JP2013254354A (ja) コンピュータ装置及びソフトウェア管理方法及びプログラム
JP6007532B2 (ja) 仮想化システム、仮想化サーバ、マイグレーション方法、マイグレーションプログラム
JP6449671B2 (ja) コアi/oフェールオーバー制御システムおよびコアi/oフェールオーバー制御方法
JP2022055002A (ja) 情報処理装置、情報処理方法および情報処理プログラム
JP2013130999A (ja) マルチコアプロセッサ
CN114296875A (zh) 基于容错系统的数据同步方法、系统及计算机可读介质

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150223

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150223

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160129

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160209

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160330

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160502

R150 Certificate of patent or registration of utility model

Ref document number: 5933356

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees