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

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

Info

Publication number
JP6689471B2
JP6689471B2 JP2019559884A JP2019559884A JP6689471B2 JP 6689471 B2 JP6689471 B2 JP 6689471B2 JP 2019559884 A JP2019559884 A JP 2019559884A JP 2019559884 A JP2019559884 A JP 2019559884A JP 6689471 B2 JP6689471 B2 JP 6689471B2
Authority
JP
Japan
Prior art keywords
data
access
cache
information processing
storage area
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
JP2019559884A
Other languages
English (en)
Other versions
JPWO2019123519A1 (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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric 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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Publication of JPWO2019123519A1 publication Critical patent/JPWO2019123519A1/ja
Application granted granted Critical
Publication of JP6689471B2 publication Critical patent/JP6689471B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0871Allocation or management of cache space
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/126Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning
    • 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/3037Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a memory, e.g. virtual memory, cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/122Replacement control using replacement algorithms of the least frequently used [LFU] type, e.g. with individual count value
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/172Caching, prefetching or hoarding of files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • 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
    • 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/4411Configuring for operating with peripheral devices; Loading of device drivers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/88Monitoring involving counting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/885Monitoring specific for caches

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Quality & Reliability (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、情報処理装置、情報処理方法及び情報処理プログラムに関する。
一般的なオペレーティングシステム(OS)では、ストレージから読み出されたデータがメモリ(主にDRAM:Dynamic Random Access Memory)にキャッシュされる。このようにすることで、次回に同一のデータが読み出されるときにストレージへのアクセスを不要とし、データアクセスを高速化している。また、キャッシュ領域(以下、ディスクキャッシュともいう)にキャッシュされたデータは、LeastRecentlyUsedなどのアルゴリズムにより廃棄される。このようなアルゴリズムによってデータを廃棄することで、キャッシュ領域を効率的に使用することができる。
従来のOSでは、I/O(Input/Output)プリフェッチの効率やメモリ使用状況の情報に基づいて、ページに優先順位を与えることで読み出すディスクブロックを選択し、ファイルアクセスを高速化している(例えば、特許文献1)。
また、稼動状態のメモリの状況をストレージに記録しておき、情報処理装置の次回起動時にストレージに記録しているメモリの状況をメモリに戻すことにより、メモリ読み出しにおける重複したアクセスを防止する方法も提案されている(例えば、特許文献2)。
更に、低速なストレージとCPU(Central Processing Unit)との間に高速な記憶媒体を配置し、低速なストレージから読み出されたデータを高速な記憶媒体に一時的に格納するという、キャッシュの基本的な方式も提案されている(例えば、特許文献3)。
特許第4724362号 特許第6046978号 特開昭58−224491号公報
従来技術では、データを使用する主体と、データをキャッシュする主体が同じであることを前提としている。従って、従来技術によれば、データを使用する主体とデータをキャッシュする主体が異なる場合には、データをキャッシュする主体とは異なる主体によって行われたデータ読み出し履歴が有効活用されない。このため、従来技術では、このような場合に、有効にデータアクセスの高速化が図れないという課題がある。具体的には、OSによって提供されているファイルシステムを経由せずに生成されたディスクキャッシュでは、ファイルシステムを経由したデータの読み出し履歴が活用されていない。このため、ファイルシステムを経由したデータ読み出しで頻繁に使用されるキャッシュデータが、ファイルシステムを経由しないデータ読み出しの際に上書きされてしまう可能性があり、性能劣化が発生する。
また、組込みプラットフォームでは、OSやアプリケーションプログラム(以下、単にアプリケーションという)が格納される領域は読み出し専用領域であることが多い。このため、情報処理装置の電源投入からアプリケーションが起動するまでのシーケンスが固定的であることが多い。また、ストレージにアクセスするデータブロックの位置やアクセスタイミングについても決定論的であることが多い。
組込みプラットフォームでセキュアブートを行う場合、アプリケーションが格納されているパーティションを使用する前に、アプリケーションを構成するコードデータの完全性及び真正性の検証を行う必要がある。そのため、OSが起動してファイルシステム経由でアプリケーションが読み出される前に、アプリケーションを構成するコードデータの完全性及び真正性の検証が完了している必要がある。すなわち、パーティションの検証(アプリケーションを構成するコードデータの完全性及び真正性の検証)では、ファイルシステムを経由せずに、デバイスドライバから直接アプリケーションのコードデータが読み出される。このため、パーティションの検証で読み出されたコードデータは、ファイルシステムのディスクキャッシュに含まれないという課題が発生する。
本発明は、このような課題を解決することを主な目的とする。より具体的には、本発明は、ファイルシステムを経由するデータアクセスと、ファイルシステムを経由しないデータアクセスとが発生する構成において、効率的なキャッシュ管理を行うことを目的としている。
本発明に係る情報処理装置は、
キャッシュ領域と、
複数のデータの各々についてファイルシステムを経由したアクセス回数を記憶するアクセス回数記憶領域と、
前記ファイルシステムを経由しない前記複数のデータへのアクセスが発生する際に、前記複数のデータのアクセス回数に基づき決定された閾値以上のアクセス回数が前記アクセス回数記憶領域に記憶されているデータを上書き禁止データに設定して前記キャッシュ領域にキャッシュするキャッシュ管理部とを有する。
本発明によれば、ファイルシステムを経由するデータアクセスと、ファイルシステムを経由しないデータアクセスとが発生する構成において、効率的なキャッシュ管理を行うことができる。
実施の形態1に係る情報処理装置のハードウェア構成例を示す図。 実施の形態1に係る情報処理装置の機能構成例を示す図。 実施の形態1に係る履歴記憶領域の構成例を示す図。 実施の形態1に係るディスクキャッシュ領域の構成例を示す図。 実施の形態2に係る情報処理装置の機能構成例を示す図。 実施の形態2に係る履歴記憶領域の構成例を示す図。 実施の形態3に係る情報処理装置の機能構成例を示す図。 実施の形態1に係る情報処理装置の動作例を示すフローチャート。 実施の形態1に係る情報処理装置の動作例を示すフローチャート。 実施の形態1に係る情報処理装置の動作例を示すフローチャート。 実施の形態1に係る情報処理装置の動作例を示すフローチャート。 実施の形態1に係る情報処理装置の動作例を示すフローチャート。 実施の形態1に係る情報処理装置の動作例を示すフローチャート。
以下、本発明の実施の形態について、図を用いて説明する。以下の実施の形態の説明及び図面において、同一の符号を付したものは、同一の部分又は相当する部分を示す。
実施の形態1.
***構成の説明***
本実施の形態では、組込みプラットフォームにおいてセキュアブートを適用するときに発生する課題を解決する構成を説明する。より具体的には、ファイルシステムを経由しないストレージからの読み出しをファイルシステムのディスクキャッシュとして利用可能にし、当該ディスクキャッシュの廃棄アルゴリズムに決定論的な手法を適用することで効率的なキャッシュ管理を行うことができる構成を説明する。
図1は、本実施の形態に係る情報処理装置100のハードウェア構成例を示す。
本実施の形態に係る情報処理装置100は、コンピュータである。
図1に示すように、情報処理装置100は、ハードウェアとして、プロセッサ101、RAM(Random Access Memory)103、ストレージ104及びI/O(Input/Output)装置105を備える。これらプロセッサ101、RAM103、ストレージ104及びI/O装置105は、バス102で接続される。
プロセッサ101は、情報処理装置100の制御を行う演算装置である。プロセッサ101は、例えば、CPU(Central Processing Unit)である。情報処理装置100は、複数のプロセッサ101を備えていてもよい。
RAM103は、プロセッサ101上で実行中のプログラム、スタック、変数などが格納される揮発性記憶装置である。
ストレージ104は、プログラムやデータなどを格納しておく不揮発性記憶装置である。ストレージ104は、例えば、eMMC(embedded Multi Media Card)である。
I/O装置105はディスプレイやキーボードなどの外部デバイスを接続するためのインタフェースである。
本実施の形態では、プロセッサ101、RAM103、ストレージ104及びI/O装置105は、バス102で接続されることとしているが、他の接続手段によって接続されてもよい。
なお、情報処理装置100で行われる動作は、情報処理方法及び情報処理プログラムに相当する。
ストレージ104には、後述する検証プログラム110、アプリケーション111及びオペレーティングシステム112の機能を実現するプログラムが記憶されている。これら検証プログラム110、アプリケーション111及びオペレーティングシステム112の機能を実現するプログラムはRAM102にロードされる。そして、プロセッサ101がこれらプログラムを実行して、後述する検証プログラム110、アプリケーション111及びオペレーティングシステム112の動作を行う。
図1では、プロセッサ101が検証プログラム110、アプリケーション111及びオペレーティングシステム112の機能を実現するプログラムを実行している状態を模式的に表している。
また、検証プログラム110、アプリケーション111及びオペレーティングシステム112の処理の結果を示す情報、データ、信号値及び変数値の少なくともいずれかが、ストレージ104、RAM103及びプロセッサ101内のレジスタの少なくともいずれかに記憶される。
また、検証プログラム110、アプリケーション111及びオペレーティングシステム112は、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ブルーレイ(登録商標)ディスク、DVD等の可搬記録媒体に格納されていてもよい。
また、情報処理装置100は、処理回路により実現されてもよい。処理回路は、例えば、ロジックIC(Integrated Circuit)、GA(Gate Array)、ASIC(Application Specific Integrated Circuit)、FPGA(Field−Programmable Gate Array)である。
なお、本明細書では、プロセッサ101と処理回路との上位概念を、「プロセッシングサーキットリー」という。
つまり、プロセッサ101と処理回路とは、それぞれ「プロセッシングサーキットリー」の具体例である。
図2は、本実施の形態に係る情報処理装置100の機能構成例を示す。
情報処理装置100では、オペレーティングシステム112が動作している。また、オペレーティングシステム112上で検証プログラム110及びアプリケーション111が動作している。
検証プログラム110は、セキュアブートのための検証を行う。すなわち、検証プログラム110は、アプリケーション111の完全性及び真正性の検証を行う。
図2では、オペレーティングシステム112の内部構成のうち、ファイルシステムに関係する構成を示している。
上位ファイルシステム115及び下位ファイルシステム114は、アプリケーション111から使用可能なファイルアクセスを抽象化した実際のファイルシステムを構成する。
上位ファイルシステム115及び下位ファイルシステム114は、オペレーティングシステムによっては単一のファイルシステムとして実装されている場合がある。本実施の形態に係る情報処理装置100は、ファイルシステムの多重化構成には依存せずに実施可能である。
デバイスドライバ113は、デバイスアクセス部116、ブロックアクセスAPI(Application Programming Interface)部117、アクセス回数管理部118及びキャッシュ管理部119を含む。
デバイスアクセス部116は、デバイスであるストレージ104にアクセスする。
ブロックアクセスAPI117は、下位ファイルシステム114及び検証プログラム110から直接アクセス可能なAPIである。
アクセス回数管理部118は、アプリケーション111を構成する複数のコードデータの各々について上位ファイルシステム115及び下位ファイルシステム114を経由したアクセス回数を計数する。また、アクセス回数管理部118は、コードデータごとのアクセス回数の計数結果に基づき、アクセス回数の閾値を決定する。
アクセス回数管理部118が計数したアクセス回数及びアクセス回数管理部118が決定した閾値は、ストレージ104の履歴記憶領域106で記憶される。
キャッシュ管理部119は、上位ファイルシステム115及び下位ファイルシステム114を経由しないアクセスが発生する際に、閾値以上のアクセス回数が履歴記憶領域106に記憶されているコードデータを上書き禁止データに設定してディスクキャッシュ領域108にキャッシュする。具体的には、検証プログラム110がアプリケーション111を構成する複数のコードデータの完全性及び真正性の検証を行う際に、上位ファイルシステム115及び下位ファイルシステム114を経由しないアクセスが発生する。キャッシュ管理部119は、検証プログラム110による検証の際に、閾値以上のアクセス回数が履歴記憶領域106に記憶されているコードデータを抽出し、抽出したコードデータを上書き禁止データに設定してディスクキャッシュ領域108にキャッシュする。
また、キャッシュ管理部119は、履歴記憶領域106に記憶されている上書き禁止データのアクセス回数を、上書き禁止データに対応付けて、ディスクキャッシュ領域108に書き込む。
更に、キャッシュ管理部119は、閾値未満のアクセス回数が履歴記憶領域106に記憶されているコードデータを、上書き禁止データに上書きすることなくディスクキャッシュ領域108にキャッシュする。
キャッシュ管理部119が行う処理は、キャッシュ管理処理に相当する。
オペレーティングシステム112が利用するディスクキャッシュ領域108はRAM103上に確保される。
ディスクキャッシュ領域108はキャッシュ領域に相当する。
ストレージ104には、アプリケーションパーティション107、履歴記憶領域106及びファームウェア領域109が含まれる。
アプリケーションパーティション107には、アプリケーション111の実行イメージが格納されている。
履歴記憶領域106には、アクセス回数管理部118が計数したコードデータごとのアクセス回数とアクセス回数管理部118が決定した閾値が格納されている。履歴記憶領域106は、アクセス回数記憶領域に相当する。
ファームウェア領域109には、オペレーティングシステム112が格納されている。
図3は、図2で示した履歴記憶領域106の構成例を示す。
履歴記憶領域106では、アプリケーションパーティション107のサイズをストレージ104へのアクセスに使用するブロックサイズで除算した個数分のエントリ120が存在する。各エントリ120は、アプリケーション111の実行イメージをブロックサイズで分割して得られるコードデータに対応する。つまり、図3の例では、アプリケーション111の実行イメージは、N個のコードデータに分割される。
オフセットは各エントリ120に対して番号を振るために便宜的に示しているものである。このため、履歴記憶領域106はアクセス回数の値と閾値121のみを記憶している。本実施の形態では、アクセス回数の1エントリのサイズは1バイトである。しかし、ストレージ104の容量に応じて1エントリのサイズは任意に変更可能である。
閾値121は、アクセス回数の1エントリと同じサイズを持つ。つまり、本実施の形態では、閾値121のサイズは1バイトである。閾値121は、前述したように、キャッシュ管理部119がコードデータを上書き禁止データに設定するか否かを判定するために用いられる。
図4は、図2で示したRAM103内のディスクキャッシュ領域108の構成例を示す。
エントリ122は、キャッシュデータ125のエントリである。エントリ122は連続であっても、不連続であっても構わない。
エントリ122の配列は、デバイスドライバ113によるバッファの確保の方法に依存する。本実施の形態に係る情報処理装置100は、このデバイスドライバ113のバッファ確保の方法には依存せずに実施可能である。
各エントリ122では、キャッシュデータ125と、上書き禁止フラグ123と、リファレンスカウント124とが格納される。
キャッシュデータ125は、キャッシュ管理部119によりキャッシュされたアプリケーション111のコードデータである。
キャッシュ管理部119は上書き禁止フラグ123をONにすることにより、キャッシュデータ125を上書き禁止データに設定する。
なお、上書き禁止フラグ123は、ON/OFFが判別できればよいため、少なくとも1ビットで構成されている。
リファレンスカウント124は、履歴記憶領域106内のアクセス回数と同じ値である。このため、リファレンスカウント124には、アクセス回数と同じサイズが必要である。
***動作の説明***
次に、本実施の形態に係る情報処理装置100の動作例を説明する。
まず、決定論的なキャッシュ廃棄のデータを学習するために、情報処理装置100を通常起動し、アプリケーション111を実行する手順を、図8及び図9を参照して実施する。
情報処理装置100が起動されると(ステップ501)、搭載されているオペレーティングシステム112が起動する(ステップ502)。
そして、オペレーティングシステム112の各種サービスが実行された後、アプリケーション111の実行が開始される(ステップ503)。このときローダがストレージ104からアプリケーション111の実行イメージの読み出しを開始する(ステップ504)。
アプリケーション111の実行イメージの読み出しでは、上位ファイルシステム115が下位ファイルシステム114にアプリケーション111の実行イメージの読み出しを要求する(ステップ505)。次に、上位ファイルシステム115からの要求に基づき、下位ファイルシステム114がブロックアクセスAPI部117にアプリケーション111の実行イメージの読み出しを要求する(ステップ506)。次に、下位ファイルシステム114からの要求に基づき、ブロックアクセスAPI部117がデバイスアクセス部116にアプリケーション111の実行イメージの読み出しを要求する(ステップ507)。次に、デバイスアクセス部116がストレージ104のブロック番号を算出する(ステップ508)。
次に、デバイスアクセス部116が、ステップ508で算出したブロック番号のデータをストレージから読み出すと、アプリケーション111の実行イメージの一部であるコードデータが取得される(ステップ509)。
このとき、アクセス回数管理部118が、履歴記憶領域106の当該ブロック番号に対応するオフセットのアクセス回数120に1を加算する(ステップ510)。
また、キャッシュ管理部119は、読み出されたコードデータをディスクキャッシュ領域108にキャッシュしてもよい。
なお、アプリケーション111の読み出しが完了しない場合(ステップ511でNO)は、デバイスアクセス部116が、次に読み出すブロック番号を算出する(ステップ512)。
そして、算出したブロック番号のコードデータの読み出しと、当該ブロック番号に対応するオフセットのアクセス回数の加算をくり返す(ステップ509、510)。
アプリケーション111のロードが完了すると、ブロックアクセスAPI部117がクローズされる(ステップ512−516)。
ブロックアクセスAPI部117のクローズを契機に、アクセス回数管理部118がアクセス回数の閾値を算出し、算出した閾値を履歴記憶領域106に閾値121として書き込む(ステップ517)。
より具体的には、アクセス回数管理部118は、履歴記憶領域106のエントリ120をアクセス回数の降順にソートする。そして、アクセス回数管理部118は、アクセス回数が大きいエントリから順に、ディスクキャッシュ領域108で確保可能なブロック数の半分と同数のエントリ120を選択する。そして、アクセス回数管理部118は、選択したエントリ120のアクセス回数の中で最も少ないアクセス回数を閾値として決定する。
例えば、履歴記憶領域106の総エントリ数が20であり、ディスクキャッシュ領域108で確保可能なブロック数が20であれば、アクセス回数管理部118は、20個のエントリの中からアクセス回数が大きい順に10個のエントリを選択する。そして、アクセス回数管理部118は、選択した10個のエントリのアクセス回数の中で最も少ないアクセス回数を閾値として決定する。
アクセス回数管理部118は、理論的にはディスクキャッシュ領域108で確保可能なブロック数と同数のエントリを選択することが可能である。しかし、このような選択を行うと、新たにストレージ104から読み出されたコードデータをディスクキャッシュ領域108に格納できなくなるため、本実施の形態では、ディスクキャッシュ領域108で確保可能なブロック数の半分と同数のエントリを選択することとしている。
次に、上位ファイルシステム115及び下位ファイルシステム114を経由せずに、ストレージ104のアプリケーションパーティション107からアプリケーション111のコードデータを読み出す場合の動作を図10及び図11を参照して説明する。
以下では、セキュアブートのように検証プログラム110がアプリケーション111の完全性及び真正性の検証を行う際に、上位ファイルシステム115及び下位ファイルシステム114を経由せずにデバイスドライバ113がアプリケーションパーティション107からアプリケーションのコードデータを読み出す場合の動作を説明する。
上位ファイルシステム115及び下位ファイルシステム114がストレージ104のアプリケーションパーティション107を使用できるようになる前に情報処理装置100が起動されると(ステップ601)、搭載されているオペレーティングシステム112が起動する(ステップ602)。
また、検証プログラム110が起動する(ステップ603)。
なお、情報処理装置100の起動時(ステップ601)には、ディスクキャッシュ領域108にはキャッシュデータ125は格納されていない。
次に、デバイスアクセス部116が、アプリケーションパーティション107の先頭のブロックからコードデータを読み出す(ステップ604)。デバイスアクセス部116は、読み出したコードデータをキャッシュ管理部119に転送し、また、当該コードデータのブロック番号を通知する。
キャッシュ管理部119は、履歴記憶領域106から、デバイスアクセス部116から通知されたブロック番号に対応するオフセットのアクセス回数を取得する(ステップ606)。
次に、キャッシュ管理部119は、ステップ606で取得したアクセス回数が閾値121以上であるか否かを判定する(ステップ607)。
ステップ606で取得したアクセス回数が閾値121以上である場合(ステップ607でYES)は、キャッシュ管理部119は、ディスクキャッシュ領域108に上書き禁止のフラグ123を設定して当該コードデータをキャッシュデータ125としてディスクキャッシュ領域108に書き込む(ステップ608)。前述したように、上書き禁止のフラグ123を設定することで、当該コードデータは上書き禁止データとして扱われる。
また、キャッシュ管理部119は、履歴記憶領域106のアクセス回数の値を、リファレンスカウント124としてディスクキャッシュ領域108に書き込む(ステップ608)。
一方、ステップ606で取得したアクセス回数が閾値121未満である場合(ステップ607でNO)は、キャッシュ管理部119は、当該コードデータをキャッシュデータ125としてディスクキャッシュ領域108に書き込む(ステップ609)。この場合は、上書き禁止のフラグ123が設定されないので、当該コードデータは上書き禁止データとして扱われない。
また、キャッシュ管理部119は、履歴記憶領域106のアクセス回数の値を、リファレンスカウント124としてディスクキャッシュ領域108に書き込む(ステップ609)。
次に、検証プログラム110が、ステップ606で読み出されたコードデータの完全性及び真正性を検証する(ステップ610)。
次に、デバイスアクセス部116が、アクセス先のブロック番号を1つ増加する(ステップ611)。
以降、アクセス先のブロック番号がアプリケーションパーティション107の総ブロック数を超えるまで、ステップ605からステップ611の動作が繰り返される(ステップ604、ステップ612)。つまり、ステップ605からステップ611の動作がアプリケーションパーティション107全体に渡って繰り返される。
検証プログラム110が対象とするアプリケーションパーティション107は、一般にディスクキャッシュ領域108の容量よりも大きいため、古いキャッシュデータ125は後に読み出されたコードデータで上書きされる。
キャッシュ管理部119は、コードデータをディスクキャッシュ領域108に書き込む際に、上書き禁止フラグ123がONになっていない領域、すなわち、上書き可能な領域を探し、上書き可能な領域にコードデータを書き込む。上書き可能な領域に既にコードデータが格納されている場合は、当該コードデータは、新たなコードデータによって上書きされる。
上書き禁止フラグ123がONになっている領域のキャッシュデータ125(すなわち、上書き禁止データ)は他のコードデータによって上書きされることなく、ディスクキャッシュ領域108で保持される。
次に、上位ファイルシステム115及び下位ファイルシステム114を経由してアプリケーション111をロードし、実行する際の動作例を図12及び図13を参照して説明する。
検証プログラム110の実行後に、引き続いてアプリケーション111の実行が開始される(ステップ701)。
ローダがストレージ104からアプリケーション111の実行イメージのロード作業を開始し、上位ファイルシステム115が読み出しを開始する(ステップ702、703)。このとき、読み出し対象のブロックがディスクキャッシュ領域108に存在しているか否かが判定される(ステップ704)。具体的には、図8のステップ505から509の手順が行われ、キャッシュ管理部119が、ステップ509で算出されたブロック番号のコードデータがディスクキャッシュ領域108に存在しているか否かを判定する。
読み出し対象のコードデータがディスクキャッシュ領域108に存在している場合(ステップ704でYES)は、キャッシュ管理部119が、ディスクキャッシュ領域108から該当するキャッシュデータ125を読み出し、読み出したキャッシュデータ125をローダに転送する(ステップ705)。具体的には、キャッシュ管理部119がディスクキャッシュ領域108から読み出したキャッシュデータ125をブロックアクセスAPI部117に転送し、その後、図9のステップ514及び515の手順が行われる。
また、キャッシュ管理部119は、読み出したキャッシュデータ125のリファレンスカウント124を1減算する(ステップ706)。
リファレンスカウント124を1減算した結果、リファレンスカウント124の値が0となった場合(ステップ707でYES)は、キャッシュ管理部119は、該当する領域を開放し、当該領域を新しいディスクキャッシュとして使用可能にする(ステップ708)。すなわち、キャッシュ管理部119は、図3に示すアクセス回数に相当する回数のアクセスがキャッシュデータにあった場合に、当該キャッシュデータを無効化する。
一方、ステップ704において読み出し対象のブロックがディスクキャッシュ領域108に存在しない場合(ステップ704でNO)は、上位ファイルシステム115はストレージ104から該当するコードデータを読み出し、読み出したコードデータをローダに転送する(ステップ709)。具体的には、図8のステップ509及び図9のステップ513から515の手順が行われる。
ロードが完了していれば(ステップ710でYES)、処理完了である。
一方、実行イメージのロードが完了していない場合(ステップ710でNO)は、デバイスアクセス部116が次にアクセスするブロック番号を算出し(ステップ711)、ステップ704以降の手順がくり返される。
***実施の形態の効果の説明***
以上のように、本実施の形態では、セキュアブートのようなファイルシステムを経由しないデータアクセスにより得られたキャッシュデータのうち、ファイルシステムを経由するデータアクセスで頻繁にアクセスされるデータのキャッシュデータは上書きされずに維持される。このため、ファイルシステムを経由するデータアクセスの際に、キャシュデータを利用して高速にデータアクセスを行うことができる。
従って、本実施の形態によれば、ファイルシステムを経由するデータアクセスと、ファイルシステムを経由しないデータアクセスとが発生する構成において、効率的なキャッシュ管理を行うことができる。
セキュアブートの対象となるパーティションは読み出し専用であるが、従来技術では、ファイルシステムで実装されている従来のキャッシュ廃棄アルゴリズムが使用され、アプリケーション実行時の情報を用いて廃棄すべきキャッシュデータが判定される。このため、従来技術では、効率的なキャッシュデータの廃棄判定を行うことができない。
本実施の形態では、あらかじめアプリケーションの実行記録を取ることで、アプリケーションパーティション中で頻繁に使用されるブロックの学習と、当該ブロックに対するキャッシュデータを廃棄するまでの読み出し回数を把握することができる。また、本実施の形態では、キャシュデータを廃棄するまでの読み出し回数を把握することにより、読み出し回数が規定数に到達したら該当するキャシュデータを廃棄することができる。これにより、キャッシュデータを廃棄した領域を新規のディスクキャッシュとして使用することが可能になり、ディスクキャッシュの効率的な利用が可能になる。
実施の形態2.
実施の形態1では、アプリケーションが1つの場合に高速なデータ読み出しとディスクキャッシュの効率的な利用を可能にする構成を説明した。本実施の形態では、アプリケーションが複数存在する場合に高速なデータ読み出しとディスクキャッシュの効率的な利用を可能にする構成を説明する。
本実施の形態では、主に実施の形態1との差異を説明する。
なお、以下で説明していない事項は、実施の形態1と同様である。
***構成の説明***
図5は、本実施の形態に係る情報処理装置100の機能構成例を示す。
図2と比較して、図5では、3つのアプリケーション(アプリケーションA134、アプリケーションB135、アプリケーションC136)が存在する。また、3つのアプリケーションパーティション(アプリケーションAパーティション130、アプリケーションBパーティション131、アプリケーションCパーティション132)が存在する。アプリケーションA134は、アプリケーションAパーティション130に格納される。アプリケーションB135は、アプリケーションBパーティション131に格納される。アプリケーションC136は、アプリケーションCパーティション132に格納される。
図5では、3つのアプリケーションが存在することとしているが、アプリケーションの数は任意である。
また、図5では、履歴記憶領域106の代わりに履歴記憶領域133が存在する。
履歴記憶領域133では、3つのアプリケーションに対応させた構成になっている。
他の構成要素は、図2に示すものと同じであるため、説明を省略する。
図6は、履歴記憶領域133の構成例を示す。
図6のエントリ140では、図3のエントリ120の構成に加えて、パーティション番号が加わっている。図6では便宜的にバーティション番号をA、B及びCと表記しているが、実装の際にはパーティション番号を数値で表すことが適当である。
パーティション番号:Aは、アプリケーションAパーティション130に対応する。パーティション番号:Bは、アプリケーションBパーティション131に対応する。パーティション番号:Cは、アプリケーションCパーティション132に対応する。
本実施の形態では、アクセス回数管理部118は、アプリケーションパーティションごとに、対応するエントリ140にアクセス回数を格納する。
***動作の説明***
次に、本実施の形態に係る情報処理装置100の動作を説明する。
本実施の形態では、アプリケーションの起動順序は定められていない。このため、アクセス回数管理部118は、アプリケーションごとに閾値121の算出を行う。
つまり、アプリケーションごとに、図8及び図9の処理が行われて、アクセス回数管理部118は、アプリケーションごとに各コードデータのアクセス回数を履歴記憶領域133に格納し、アプリケーションごとに、アクセス回数に基づき閾値121を決定する。
アクセス回数の履歴記憶領域133への格納方法及び閾値121の決定方法自体は、実施の形態1で示したものと同じである。本実施の形態では、3つのアプリケーションの各々に対して、アクセス回数が記録され、閾値121が決定される。
また、本実施の形態では、キャッシュ管理部119は、検証プログラム110による検証が行われる際に、アプリケーションごとに、閾値121以上のアクセス回数が履歴記憶領域106に記憶されているコードデータを抽出する。そして、キャッシュ管理部119は、抽出したコードデータを上書き禁止データに設定してディスクキャッシュ領域108にキャッシュする。
キャッシュ管理部119の動作自体は、実施の形態1で示したものと同じである。本実施の形態では、キャッシュ管理部119は、3つのアプリケーションの各々に対して、閾値121とアクセス回数との比較を行い、抽出したコードデータを上書き禁止データに設定するか否かを決定する。
***実施の形態の効果の説明***
本実施の形態によれば、複数のアプリケーションに対して実施の形態1と同様の効果を得ることができる。
また、本実施の形態によれば、アプリケーションパーティションの単位で検証を行うことができる。このため、検証プログラムを複数のアプリケーションに対して並行して実行することが可能であり、検証処理を高速化することができる。
実施の形態3.
実施の形態1では、履歴記憶領域はストレージ104上にある。しかし、アプリケーションパーティションのサイズが大きい場合は、ストレージ104へのアクセス頻度が多くなるため性能が低下する可能性がある。本実施の形態では、これを避けるために、履歴記憶領域をデバイスドライバ113内でキャッシュする構成を説明する。本実施の形態の構成では、履歴記憶領域への書き込みが完了したタイミングで履歴記憶領域の情報をストレージ104に書き戻すことで、データアクセス速度の低下を抑えることができる。
本実施の形態では、主に実施の形態1との差異を説明する。
なお、以下で説明していない事項は、実施の形態1と同様である。
図7は、本実施の形態に係る情報処理装置100の機能構成例を示す。
図7では、図1と比較して、履歴記憶領域(キャッシュ)150が追加されている。
図7では、理解の容易のために、履歴記憶領域(キャッシュ)150はデバイスドライバ113内に示されているが、物理的には、履歴記憶領域(キャッシュ)150はRAM103のディスクキャッシュ領域108に配置されている。
なお、作図上の理由から、図7では、ストレージ104の内部構成が図示されていないが、図7においても、ストレージ104の内部構成は、図1と同じである。すなわち、図7においても、ストレージ104には、アプリケーションパーティション107、履歴記憶領域106、ファームウェア領域109が存在する。
次に、本実施の形態に係る情報処理装置100の動作例を説明する。
本実施の形態では、オペレーティングシステム112の起動時にストレージ104の履歴記憶領域106の情報がディスクキャッシュ領域108にコピーされる。これにより、履歴記憶領域(キャッシュ)150が生成される。
アクセス回数管理部118は、履歴記憶領域(キャッシュ)150にアクセス回数を書き込む。また、アクセス回数管理部118は、履歴記憶領域(キャッシュ)150に書き込んだアクセス回数に基づいて閾値121を算出する。
履歴記憶領域(キャッシュ)150の情報のストレージ104の履歴記憶領域106への書き戻しは、アクセス回数管理部118による閾値121の算出及びアプリケーション111のクローズの後に行われる。
以上のように、本実施の形態では、履歴記憶領域のキャッシュ領域がメモリ上に実現されるため、ストレージへの頻繁なアクセスを回避することができ、性能低下を抑えることができる。
以上、本発明の実施の形態について説明したが、これらの実施の形態のうち、2つ以上を組み合わせて実施しても構わない。
あるいは、これらの実施の形態のうち、1つを部分的に実施しても構わない。
あるいは、これらの実施の形態のうち、2つ以上を部分的に組み合わせて実施しても構わない。
なお、本発明は、これらの実施の形態に限定されるものではなく、必要に応じて種々の変更が可能である。
100 情報処理装置、101 プロセッサ、102 バス、103 RAM、104 ストレージ、105 I/O装置、106 履歴記憶領域、107 アプリケーションパーティション、108 ディスクキャッシュ領域、109 ファームウェア領域、110 検証プログラム、111 アプリケーション、112 オペレーティングシステム、113 デバイスドライバ、114 下位ファイルシステム、115 上位ファイルシステム、116 デバイスアクセス部、117 ブロックアクセスAPI部、118 アクセス回数管理部、119 キャッシュ管理部、130 アプリケーションAパーティション、131 アプリケーションBパーティション、132 アプリケーションCパーティション、133 履歴記憶領域、134 アプリケーションA、135 アプリケーションB、136 アプリケーションC、150 履歴記憶領域(キャッシュ)。

Claims (11)

  1. キャッシュ領域と、
    複数のデータの各々についてファイルシステムを経由したアクセス回数を記憶するアクセス回数記憶領域と、
    前記ファイルシステムを経由しない前記複数のデータへのアクセスが発生する際に、前記複数のデータのアクセス回数に基づき決定された閾値以上のアクセス回数が前記アクセス回数記憶領域に記憶されているデータを上書き禁止データに設定して前記キャッシュ領域にキャッシュするキャッシュ管理部とを有する情報処理装置。
  2. 前記キャッシュ管理部は、
    前記閾値未満のアクセス回数が前記アクセス回数記憶領域に記憶されているデータを、前記上書き禁止データに上書きすることなく前記キャッシュ領域にキャッシュする請求項1に記載の情報処理装置。
  3. 前記キャッシュ管理部は、
    前記キャッシュ領域にキャッシュするデータに対応付けて、前記アクセス回数記憶領域に記憶されているアクセス回数を、前記キャッシュ領域に書き込む請求項1又は2に記載の情報処理装置。
  4. 前記キャッシュ管理部は、
    前記キャッシュ領域にキャッシュされているデータに前記ファイルシステムを経由したアクセスが前記アクセス回数に相当する回数あった場合に、前記キャッシュ領域内にキャッシュされているデータを無効化する請求項3に記載の情報処理装置。
  5. 前記キャッシュ管理部は、
    前記複数のデータの完全性及び真正性の検証のために前記ファイルシステムを経由しない前記複数のデータへのアクセスが発生する際に、前記閾値以上のアクセス回数が前記アクセス回数記憶領域に記憶されているデータを前記上書き禁止データに設定して前記キャッシュ領域にキャッシュする請求項1に記載の情報処理装置。
  6. 前記アクセス回数記憶領域は、
    アプリケーションプログラムを構成する複数のコードデータの各々について前記ファイルシステムを経由したアクセス回数を記憶し、
    前記キャッシュ管理部は、
    前記アプリケーションプログラムを構成する前記複数のコードデータの前記完全性及び真正性の検証のために前記ファイルシステムを経由しない前記複数のコードデータへのアクセスが発生する際に、前記閾値以上のアクセス回数が前記アクセス回数記憶領域に記憶されているコードデータを前記上書き禁止データに設定して前記キャッシュ領域にキャッシュする請求項5に記載の情報処理装置。
  7. 前記アクセス回数記憶領域は、
    複数のアプリケーションプログラムについて、アプリケーションプログラムごとに、アプリケーションプログラムを構成する複数のコードデータの各々について前記ファイルシステムを経由したアクセス回数を記憶し、
    前記キャッシュ管理部は、
    前記完全性及び真正性の検証のために前記ファイルシステムを経由しない前記複数のアプリケーションプログラムの複数のコードデータへのアクセスが発生する際に、アプリケーションプログラムごとに、前記閾値以上のアクセス回数が前記アクセス回数記憶領域に記憶されているコードデータを前記上書き禁止データに設定して前記キャッシュ領域にキャッシュする請求項6に記載の情報処理装置。
  8. 前記キャッシュ管理部は、
    アプリケーションプログラムごとに決定された閾値を用い、
    アプリケーションプログラムごとに、対応する閾値以上のアクセス回数が前記アクセス回数記憶領域に記憶されているコードデータを前記上書き禁止データに設定して前記キャッシュ領域にキャッシュする請求項7に記載の情報処理装置。
  9. 前記情報処理装置は、
    前記アクセス回数記憶領域がデバイスドライバ用のキャッシュメモリに設けられている請求項1に記載の情報処理装置。
  10. キャッシュ領域と、
    複数のデータの各々についてファイルシステムを経由したアクセス回数を記憶するアクセス回数記憶領域とを有するコンピュータが、
    前記ファイルシステムを経由しない前記複数のデータへのアクセスが発生する際に、前記複数のデータのアクセス回数に基づき決定された閾値以上のアクセス回数が前記アクセス回数記憶領域に記憶されているデータを上書き禁止データに設定して前記キャッシュ領域にキャッシュする情報処理方法。
  11. キャッシュ領域と、
    複数のデータの各々についてファイルシステムを経由したアクセス回数を記憶するアクセス回数記憶領域とを有するコンピュータに、
    前記ファイルシステムを経由しない前記複数のデータへのアクセスが発生する際に、前記複数のデータのアクセス回数に基づき決定された閾値以上のアクセス回数が前記アクセス回数記憶領域に記憶されているデータを上書き禁止データに設定して前記キャッシュ領域にキャッシュするキャッシュ管理処理を実行させる情報処理プログラム。
JP2019559884A 2017-12-18 2017-12-18 情報処理装置、情報処理方法及び情報処理プログラム Expired - Fee Related JP6689471B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2017/045336 WO2019123519A1 (ja) 2017-12-18 2017-12-18 情報処理装置、情報処理方法及び情報処理プログラム

Publications (2)

Publication Number Publication Date
JPWO2019123519A1 JPWO2019123519A1 (ja) 2020-04-02
JP6689471B2 true JP6689471B2 (ja) 2020-04-28

Family

ID=66993280

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019559884A Expired - Fee Related JP6689471B2 (ja) 2017-12-18 2017-12-18 情報処理装置、情報処理方法及び情報処理プログラム

Country Status (5)

Country Link
US (1) US20200257630A1 (ja)
JP (1) JP6689471B2 (ja)
CN (1) CN111465926A (ja)
DE (1) DE112017008201B4 (ja)
WO (1) WO2019123519A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117234431B (zh) * 2023-11-14 2024-02-06 苏州元脑智能科技有限公司 缓存管理方法、装置、电子设备及存储介质

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS4724362Y1 (ja) 1969-06-22 1972-08-01
JPS58224491A (ja) 1982-06-21 1983-12-26 Fujitsu Ltd デ−タ相関管理処理方式
EP0114440B1 (de) 1983-01-20 1986-10-29 Cimber, Hugo, Dr. med. Okklusivpessar
JPH06124239A (ja) * 1992-10-13 1994-05-06 Kawasaki Steel Corp キャッシュメモリの常駐データ制御装置
JP3111912B2 (ja) * 1996-11-29 2000-11-27 日本電気株式会社 ディスクキャッシュ制御方式
JP2002099465A (ja) * 2000-09-25 2002-04-05 Hitachi Ltd キャッシュ制御方法
US6910106B2 (en) 2002-10-04 2005-06-21 Microsoft Corporation Methods and mechanisms for proactive memory management
JP2008026970A (ja) * 2006-07-18 2008-02-07 Toshiba Corp ストレージ装置
US20120047330A1 (en) 2010-08-18 2012-02-23 Nec Laboratories America, Inc. I/o efficiency of persistent caches in a storage system
JP6046978B2 (ja) 2012-10-26 2016-12-21 キヤノン株式会社 情報処理装置およびその方法
JP6106028B2 (ja) 2013-05-28 2017-03-29 株式会社日立製作所 サーバ及びキャッシュ制御方法

Also Published As

Publication number Publication date
DE112017008201B4 (de) 2022-02-24
WO2019123519A1 (ja) 2019-06-27
JPWO2019123519A1 (ja) 2020-04-02
DE112017008201T5 (de) 2020-07-30
CN111465926A (zh) 2020-07-28
US20200257630A1 (en) 2020-08-13

Similar Documents

Publication Publication Date Title
US9928167B2 (en) Information processing system and nonvolatile storage unit
KR101245823B1 (ko) 데이터 전송동안 제한된 캐시 엑세스를 위한 시스템 및방법
JP4815539B2 (ja) フレーム管理を有する動的アドレス変換
US10387305B2 (en) Techniques for compression memory coloring
KR20180124709A (ko) 공간 메모리 스트리밍 트레이닝을 위한 장치 및 방법
KR102434170B1 (ko) 하이브리드 메모리 시스템
KR20080017292A (ko) 내장 시스템들을 위한 저장 아키텍쳐
US20130086307A1 (en) Information processing apparatus, hybrid storage apparatus, and cache method
US11061829B2 (en) Prefetch support with address space randomization
CN115686385B (zh) 一种数据存储方法、装置、计算机设备及存储介质
US20150089097A1 (en) I/o processing control apparatus and i/o processing control method
JP6689471B2 (ja) 情報処理装置、情報処理方法及び情報処理プログラム
US20080256296A1 (en) Information processing apparatus and method for caching data
KR101842764B1 (ko) 하드웨어 가속기와 호스트 시스템 사이의 데이터 일관성 유지 장치 및 방법
US9384135B2 (en) System and method of caching hinted data
US10210097B2 (en) Memory system and method for operating the same
JP2017228172A (ja) 情報処理システム
JP4792065B2 (ja) データ記憶方法
US11782854B2 (en) Cache architecture for a storage device
KR101456373B1 (ko) 캐시 장치를 관리하는 장치 및 방법
KR20210096500A (ko) 캐시기반 부채널공격 방어 장치 및 방법
JP2004102822A (ja) ディスクアレイ制御装置及びディスクアレイ制御装置におけるデータ書き込み方法
US20200218659A1 (en) Systems and methods for secure locking of a cache region
RU2504000C1 (ru) Способ копирования данных в кэш-памяти и устройство для его осуществления
JP2020123263A (ja) 情報処理装置、情報処理方法、プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20191206

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20191206

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20191218

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200407

R150 Certificate of patent or registration of utility model

Ref document number: 6689471

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees