JP6905190B2 - 情報処理装置およびスタック破壊検出プログラム - Google Patents
情報処理装置およびスタック破壊検出プログラム Download PDFInfo
- Publication number
- JP6905190B2 JP6905190B2 JP2017168720A JP2017168720A JP6905190B2 JP 6905190 B2 JP6905190 B2 JP 6905190B2 JP 2017168720 A JP2017168720 A JP 2017168720A JP 2017168720 A JP2017168720 A JP 2017168720A JP 6905190 B2 JP6905190 B2 JP 6905190B2
- Authority
- JP
- Japan
- Prior art keywords
- error detection
- detection code
- stack
- program
- execution
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/52—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/29—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
- H03M13/2906—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes using block codes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1004—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/16—Protection against loss of memory contents
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/09—Error detection only, e.g. using cyclic redundancy check [CRC] codes or single parity bit
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Probability & Statistics with Applications (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Quality & Reliability (AREA)
- Computer Hardware Design (AREA)
- Debugging And Monitoring (AREA)
- Detection And Correction Of Errors (AREA)
- Memory System (AREA)
Description
[第1の実施の形態]
図1は、第1の実施の形態の情報処理装置を示す図である。情報処理装置1は、プログラムを実行するサーバコンピュータやクライアントコンピュータなどのコンピュータである。情報処理装置1は、あるプログラムの実行を中断し、その後、当該プログラムの実行を再開することがある。例えば、情報処理装置1は、あるプログラムの実行を中断している間に別のプログラムを実行する。情報処理装置1は、プログラムの実行中断時から当該プログラムの実行再開時の間において生じたスタック破壊の有無を検査する機能を提供する。「スタック破壊」は、プログラムに割り当てられたスタックに格納されたデータが他のプログラムやRAMのビット故障などにより改変されることを示す。
情報処理装置1によれば、スタック破壊の検査のための処理量を減らすことができる。具体的には、処理部1bは、時刻T3において、スタック領域2のうち、使用済の部分領域2a,2b,2c,2dをスタック破壊の検査対象とし、未使用領域2zをスタック破壊の検査対象としない。このため、スタック領域2の全体に対して誤り検出符号を生成して照合を行うよりも、誤り検出符号の生成や照合のための処理量を減らせる。
[第2の実施の形態]
図2は、第2の実施の形態のサーバのハードウェア例を示す図である。サーバ100は、プロセッサ101、RAM102、HDD103、画像信号処理部104、入力信号処理部105、媒体リーダ106およびNIC(Network Interface Card)107を有する。各ハードウェアはサーバ100のバスに接続されている。
ここで、サーバ100のOSは、プログラムの実行単位をタスクと呼ばれる単位で管理する。タスクは、プロセスと呼ばれることもある。サーバ100のOSは、マルチタスクOSである。サーバ100は、OSの機能により、複数のタスクそれぞれをコンテキストスイッチにより切り替えて実行する。切り替えのタイミングは、OSにより制御される。
大域変数140は、全ての関数からアクセス可能なグローバル変数である。
プログラム実行コード160は、各種のプログラムの実行イメージである。
図5は、タスク切り替えの例を示す図である。図5では、一例として、2つのタスクA,Bを切り替えて順に実行する場合を示す。ただし、サーバ100は、3以上のタスクを切り替えて実行することもできる。ここで、スタック120は、タスクAに対して割り当てられたRAM102上のスタックであるとする。スタック121は、タスクBに対して割り当てられたRAM102上のスタックであるとする。
プロセッサ101は、復元したコンテキストに基づいて、タスクBの実行を再開する(ステップS3)。
そして、プロセッサ101は、復元したコンテキストに基づいて、タスクAの実行を再開する(そして、タスクAの次回中断時にはステップS1に戻る)。こうして、プロセッサ101は、コンテキストの保存および復元を繰り返すことで、タスクA,Bを切り替えて実行する。このような切り替え手法は、コンテキストスイッチと呼ばれることがある。
符号照合部192は、タスクAの実行再開時に、タスクAに対するスタック120の使用済領域に対する誤り検出符号を生成し、誤り検出符号保存テーブル150に格納されている誤り検出符号と照合することで、スタック破壊を検出する。
検査対象選択部193は、スタック120のうち、使用済の領域(使用済領域)をスタック破壊の検査対象とし、未使用の領域(未使用領域)をスタック破壊の検査対象としない。未使用領域をスタック破壊の検査対象にすると、余計な検査処理によるオーバーヘッドが増すからである。検査対象選択部193は、スタックポインタ112に基づいて、スタック120のうち、スタック破壊の検査対象のアドレス範囲を特定する。
次に、サーバ100によるスタック破壊の検査の手順を説明する。タスク切り替え部190は、コンテキストスイッチを実行するタイミングで、下記の手順を開始する。
(S11)タスク切り替え部190は、実行中断するタスク(ここでは、一例としてタスクAとする)のコンテキストを保存する。
(S19)タスク切り替え部190は、復元したコンテキストに基づいて、再開するタスクBの実行を再開する。そして、タスク切り替え部190は、処理を終了する。
(S107)差分選択部194は、FPx=FPyであるか否かを判定する。FPx=FPyである場合、差分選択部194は、ステップS108に処理を進める。FPx=FPyでない場合、差分選択部194は、ステップS110に処理を進める。
(S109)差分選択部194は、code(x)=code(y)であるか否かを判定する。code(x)=code(y)である場合、差分選択部194は、ステップS111に処理を進める。code(x)=code(y)でない場合、差分選択部194は、ステップS110に処理を進める。
図13は、誤り検出符号保存テーブルの更新例(その1)を示す図である。タスクの切り替えに伴って、タスクAの実行を中断する場合を考える。例えば、タスクAの中断のタイミングにおいて、スタック120は、最終アドレスから先頭アドレスに向かう順に、スタックフレームF1,F2,F3,F4,F5,F6を含む。また、スタック120は、未使用領域を含む。誤り検出符号保存テーブル151は、タスクAに対応する更新前の誤り検出符号保存テーブルである。誤り検出符号保存テーブル152は、タスクAに対応する更新後の誤り検出符号保存テーブルである。
この場合、まず、差分選択部194は、誤り検出符号保存テーブル151の最上位エントリのアドレス(フレームポインタ)FPn=FP4と、スタック120の最上位フレームのアドレス(スタックポインタ)SP=FP6とを比較する。SP>FPnであるため(ステップS102 No)、差分選択部194は、誤り検出符号保存テーブル151の最上位エントリ#4に対応するスタック120のスタックフレームを比較フレームとする(ステップS104)。具体的には、誤り検出符号保存テーブル151のエントリ数k=4である。そして、差分選択部194は、スタック120の最下位フレーム(スタックフレームF1)から数えてk=4番目のスタックフレームF4を比較フレームとする。比較エントリは、誤り検出符号保存テーブル151のエントリ#4である。
差分選択部194は、スタックフレームF3のフレームポインタ(FPx)と誤り検出符号保存テーブル151のエントリ#3のフレームポインタ(FPy)とを比較する。両者は一致している(FPx=FPy)とする。また、差分選択部194は、誤り検出符号保存テーブル151のエントリ#3に記録された誤り検出符号と、スタックフレームF3を基に再生成した誤り検出符号とを照合する。これら2つの誤り検出符号は一致しているとする(ステップST12)。
図14は、誤り検出符号保存テーブルの更新例(その2)を示す図である。引き続き、タスクの切り替えに伴って、タスクAの実行を中断する場合を考える。例えば、タスクAの中断のタイミングにおいて、スタック120は、最終アドレスから先頭アドレスに向かう順に、スタックフレームF1,F2,F3,F4,F5を含む。また、スタック120は、未使用領域を含む。誤り検出符号保存テーブル153は、タスクAに対応する更新前の誤り検出符号保存テーブルである。誤り検出符号保存テーブル154は、タスクAに対応する更新後の誤り検出符号保存テーブルである。
この場合、まず、差分選択部194は、誤り検出符号保存テーブル153の最上位エントリのアドレスFPn=FP6と、スタック120の最上位フレームのアドレスSP=FP5とを比較する。SP≦FPnであるため(ステップS102 Yes)、差分選択部194は、スタック120の最上位のスタックフレームF5を比較フレームとする(ステップS103)。
差分選択部194は、スタックフレームF4のフレームポインタ(FPx)と誤り検出符号保存テーブル153のエントリ#4のフレームポインタ(FPy)とを比較する。両者は一致している(FPx=FPy)とする。また、差分選択部194は、誤り検出符号保存テーブル153のエントリ#4に記録された誤り検出符号と、スタックフレームF4を基に再生成した誤り検出符号とを照合する。これら2つの誤り検出符号は相違しているとする(ステップST22)。
差分選択部194は、スタックフレームF3のフレームポインタ(FPx)と誤り検出符号保存テーブル153のエントリ#3のフレームポインタ(FPy)とを比較する。両者は一致している(FPx=FPy)とする。また、差分選択部194は、誤り検出符号保存テーブル153のエントリ#3に記録された誤り検出符号と、スタックフレームF3を基に再生成した誤り検出符号とを照合する。これら2つの誤り検出符号は一致しているとする(ステップST23)。
図15は、誤り検出符号の照合の例を示す図である。タスクの切り替えに伴って、中断されていたタスクAの実行を再開する場合を考える。誤り検出符号保存テーブル155は、タスクAの前回の中断時の誤り検出符号列を記録したテーブルである。
図16は、検査対象の範囲の例を示す図である。図16(A)は、スタック120のうち、使用済領域を検査対象とし、未使用領域を検査対象外とする例を示す。図16(B)は、スタック120のうち、全ての領域を検査対象とする例を示す。
すなわち、サーバ100は、タスクAの実行中断時に、スタック120のうちのスタックフレーム(使用済の部分領域)の差分以外の領域に対する誤り検出符号の更新を省略する。また、サーバ100は、タスクAの実行再開時に、スタック120のうちの未使用の領域に対する誤り検出符号の生成および照合を省略する。
(付記1) プログラムに割り当てられたスタック領域のうち使用済の部分領域に対する第1の誤り検出符号列を記憶する記憶部と、
前記プログラムの実行中断時に、前記スタック領域のうち、前記第1の誤り検出符号列の取得時および今回の実行中断時での使用済の部分領域の差分に対して差分の誤り検出符号列を生成し、前記プログラムの実行再開時に、前記記憶部に記憶された前記第1の誤り検出符号列に前記差分の誤り検出符号列を反映させた第2の誤り検出符号列と、実行再開時において使用済の部分領域に対して新たに生成された第3の誤り検出符号列との照合に応じて、スタック破壊を検出する処理部と、
を有する情報処理装置。
前記プログラムの実行中断時に、前記スタック領域のうち、前記第1の誤り検出符号列の取得時および今回の実行中断時での使用済の部分領域の差分に対して差分の誤り検出符号列を生成し、
前記プログラムの実行再開時に、前記第1の誤り検出符号列に前記差分の誤り検出符号列を反映させた第2の誤り検出符号列と、実行再開時において使用済の部分領域に対して新たに生成された第3の誤り検出符号列との照合に応じて、スタック破壊を検出する、
処理をコンピュータに実行させるスタック破壊検出プログラム。
1a 記憶部
1b 処理部
2 スタック領域
2a,2b,2c,2d 部分領域
2y,2z 未使用領域
3 第1の誤り検出符号列
4 差分の誤り検出符号列
5 第2の誤り検出符号列
6 第3の誤り検出符号列
Claims (8)
- プログラムに割り当てられたスタック領域のうち使用済の部分領域に対する第1の誤り検出符号列を記憶する記憶部と、
前記プログラムの実行中断時に、前記スタック領域のうち、前記第1の誤り検出符号列の取得時および今回の実行中断時での使用済の部分領域の差分に対して差分の誤り検出符号列を生成し、前記プログラムの実行再開時に、前記記憶部に記憶された前記第1の誤り検出符号列に前記差分の誤り検出符号列を反映させた第2の誤り検出符号列と、実行再開時において使用済の部分領域に対して新たに生成された第3の誤り検出符号列との照合に応じて、スタック破壊を検出する処理部と、
を有する情報処理装置。 - 前記処理部は、前記第1の誤り検出符号列に含まれる使用済の部分領域毎の第1の誤り検出符号と、前記プログラムの今回の実行中断時における使用済の部分領域毎の第2の誤り検出符号とを、部分領域に対応するアドレスの小さい方から順に、部分領域毎に照合し、前記第1の誤り検出符号と前記第2の誤り検出符号とが最初に一致した部分領域のアドレスよりも小さいアドレスに対応する部分領域を、使用済の部分領域の前記差分と特定する、請求項1記載の情報処理装置。
- 前記処理部は、前記第1の誤り検出符号列の一部の符号に関する前記差分の誤り検出符号列に含まれる符号への置き換え、および、前記第1の誤り検出符号列に対する前記差分の誤り検出符号列に含まれる符号の追加の少なくとも一方を行うことで前記第2の誤り検出符号列を取得する、請求項1または2記載の情報処理装置。
- 前記処理部は、スタックポインタに基づいて前記スタック領域に属する使用済の部分領域のうちの第1のアドレスに対応する第1の部分領域を特定し、前記第1の部分領域に含まれるフレームポインタに基づいて、前記第1のアドレスよりも大きな第2のアドレスに対応する使用済の第2の部分領域を特定する、請求項1乃至3の何れか1項に記載の情報処理装置。
- 前記処理部は、前記プログラムの実行中断時に、前記スタック領域のうちの使用済の部分領域の前記差分以外の領域に対する誤り検出符号の更新を省略し、前記プログラムの実行再開時に、前記スタック領域のうちの未使用の領域に対する誤り検出符号の生成および照合を省略する、請求項1乃至4の何れか1項に記載の情報処理装置。
- 前記第1の誤り検出符号列は、前記プログラムの前回の実行中断時に前記スタック領域の使用済の部分領域に対して取得された誤り検出符号列である、請求項1乃至5の何れか1項に記載の情報処理装置。
- 前記処理部は、実行対象を前記プログラムから他のプログラムに切り替える際に、前記プログラムの実行を中断する、請求項1乃至6の何れか1項に記載の情報処理装置。
- プログラムに割り当てられたスタック領域のうち使用済の部分領域に対する第1の誤り検出符号列を取得し、
前記プログラムの実行中断時に、前記スタック領域のうち、前記第1の誤り検出符号列の取得時および今回の実行中断時での使用済の部分領域の差分に対して差分の誤り検出符号列を生成し、
前記プログラムの実行再開時に、前記第1の誤り検出符号列に前記差分の誤り検出符号列を反映させた第2の誤り検出符号列と、実行再開時において使用済の部分領域に対して新たに生成された第3の誤り検出符号列との照合に応じて、スタック破壊を検出する、
処理をコンピュータに実行させるスタック破壊検出プログラム。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017168720A JP6905190B2 (ja) | 2017-09-01 | 2017-09-01 | 情報処理装置およびスタック破壊検出プログラム |
US16/111,694 US10586039B2 (en) | 2017-09-01 | 2018-08-24 | Information processing apparatus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017168720A JP6905190B2 (ja) | 2017-09-01 | 2017-09-01 | 情報処理装置およびスタック破壊検出プログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2019046164A JP2019046164A (ja) | 2019-03-22 |
JP6905190B2 true JP6905190B2 (ja) | 2021-07-21 |
Family
ID=65517389
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2017168720A Active JP6905190B2 (ja) | 2017-09-01 | 2017-09-01 | 情報処理装置およびスタック破壊検出プログラム |
Country Status (2)
Country | Link |
---|---|
US (1) | US10586039B2 (ja) |
JP (1) | JP6905190B2 (ja) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9459974B2 (en) * | 2014-05-28 | 2016-10-04 | International Business Machines Corporation | Recovery mechanisms across storage nodes that reduce the impact on host input and output operations |
JP7011783B2 (ja) * | 2017-02-17 | 2022-01-27 | 日本精機株式会社 | 車両用表示装置 |
JP7418670B2 (ja) * | 2022-01-26 | 2024-01-19 | 三菱電機株式会社 | コンピュータ、制御方法及び制御プログラム |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4722052A (en) * | 1984-04-02 | 1988-01-26 | Sperry Corporation | Multiple unit adapter |
US4821228A (en) * | 1986-12-24 | 1989-04-11 | Hewlett-Packard Company | Method and apparatus for computation stack recovery in a calculator |
US5701313A (en) * | 1995-02-24 | 1997-12-23 | Unisys Corporation | Method and apparatus for removing soft errors from a memory |
US7380245B1 (en) * | 1998-11-23 | 2008-05-27 | Samsung Electronics Co., Ltd. | Technique for detecting corruption associated with a stack in a storage device |
JP3552627B2 (ja) | 2000-02-04 | 2004-08-11 | インターナショナル・ビジネス・マシーンズ・コーポレーション | スタック保護システム、コンピュータシステム、コンパイラ、スタック保護方法および記憶媒体 |
JP2006309375A (ja) * | 2005-04-27 | 2006-11-09 | Hitachi Ltd | システム情報に基づいて動作する記憶装置システム及びその記憶装置システムの制御方法 |
US8510596B1 (en) * | 2006-02-09 | 2013-08-13 | Virsec Systems, Inc. | System and methods for run time detection and correction of memory corruption |
JP5039728B2 (ja) * | 2009-02-24 | 2012-10-03 | 三菱重工業株式会社 | コンピュータメモリにおけるスタック領域のデータの保護方法 |
JP2012174198A (ja) * | 2011-02-24 | 2012-09-10 | Denso Corp | 異常検出装置、および異常検出プログラム |
CN104246693B (zh) * | 2012-04-20 | 2018-09-04 | 恩智浦美国有限公司 | 用于保护调用栈中的数据的信息处理装置和方法 |
US10228992B2 (en) * | 2016-01-06 | 2019-03-12 | International Business Machines Corporation | Providing instructions to facilitate detection of corrupt stacks |
JP6798157B2 (ja) * | 2016-06-24 | 2020-12-09 | 大日本印刷株式会社 | 電子情報記憶媒体、異常検知方法、及び異常検知プログラム |
-
2017
- 2017-09-01 JP JP2017168720A patent/JP6905190B2/ja active Active
-
2018
- 2018-08-24 US US16/111,694 patent/US10586039B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US20190073260A1 (en) | 2019-03-07 |
JP2019046164A (ja) | 2019-03-22 |
US10586039B2 (en) | 2020-03-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7774636B2 (en) | Method and system for kernel panic recovery | |
JP3196004B2 (ja) | 障害回復処理方法 | |
JP4841632B2 (ja) | ロジカル・パーティションにプロセッサを割り当てるための方法、装置、およびプログラム | |
JP5161696B2 (ja) | 仮想計算機システムおよび仮想計算機システムにおけるエラー回復方法ならびに仮想計算機制御プログラム | |
JP6905190B2 (ja) | 情報処理装置およびスタック破壊検出プログラム | |
US6345351B1 (en) | Maintenance of speculative state of parallel executed jobs in an information processing system | |
US7757237B2 (en) | Synchronization of threads in a multithreaded computer program | |
US10831616B2 (en) | Resilient programming frameworks for iterative computations | |
US7895477B2 (en) | Resilience to memory errors with firmware assistance | |
US20180300142A1 (en) | Coalescing store instructions for restoration | |
JP4937022B2 (ja) | 順序関係解析装置、方法及びプログラム | |
EP3198448B1 (en) | Hardware assisted object memory migration | |
US6665708B1 (en) | Coarse grained determination of data dependence between parallel executed jobs in an information processing system | |
JP2017037370A (ja) | 計算機、プロセス制御方法およびプロセス制御プログラム | |
JP5031470B2 (ja) | メモリ管理方法、情報処理装置及びメモリ管理プログラム | |
US7953914B2 (en) | Clearing interrupts raised while performing operating system critical tasks | |
US7661016B2 (en) | Method for a checkpoint library to detect corruption by an application | |
CN112612537A (zh) | 配置数据缓存方法、装置、设备及存储介质 | |
US8195981B2 (en) | Memory metadata used to handle memory errors without process termination | |
CN115858211A (zh) | 机器检查错误的处理方法及装置 | |
WO2014024279A1 (ja) | メモリ障害リカバリ装置、方法、及びプログラム | |
JP5018140B2 (ja) | マルチプロセッサシステム、タスクスケジューリング方法およびタスクスケジューリングプログラム | |
JP2001109635A (ja) | 障害対処方法及びコンピュータシステム読み取り可能な記録媒体 | |
JP2000222221A (ja) | コンパイル方法および装置、並びにメソッド活動度計算方法および装置 | |
JPWO2014006694A1 (ja) | 情報処理装置、情報保存処理プログラム及び情報保存処理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20200611 |
|
RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7422 Effective date: 20200625 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20200625 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20210426 |
|
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: 20210525 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20210607 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6905190 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |