JP6689471B2 - 情報処理装置、情報処理方法及び情報処理プログラム - Google Patents
情報処理装置、情報処理方法及び情報処理プログラム Download PDFInfo
- 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
Links
- 230000010365 information processing Effects 0.000 title claims description 54
- 238000003672 processing method Methods 0.000 title claims description 4
- 238000012545 processing Methods 0.000 claims description 12
- 238000012795 verification Methods 0.000 claims description 11
- 238000005192 partition Methods 0.000 description 38
- 238000000034 method Methods 0.000 description 14
- 238000010586 diagram Methods 0.000 description 7
- 238000007796 conventional method Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000003491 array Methods 0.000 description 2
- 230000015556 catabolic process Effects 0.000 description 2
- 238000006731 degradation reaction Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 239000000284 extract Substances 0.000 description 2
- 230000005764 inhibitory process Effects 0.000 description 2
- 239000000203 mixture Substances 0.000 description 2
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing 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/0871—Allocation or management of cache space
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/12—Replacement control
- G06F12/121—Replacement control using replacement algorithms
- G06F12/126—Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3037—Monitoring 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/12—Replacement control
- G06F12/121—Replacement control using replacement algorithms
- G06F12/122—Replacement control using replacement algorithms of the least frequently used [LFU] type, e.g. with individual count value
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/172—Caching, prefetching or hoarding of files
-
- 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/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/78—Protecting 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4411—Configuring for operating with peripheral devices; Loading of device drivers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording 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/3466—Performance evaluation by tracing or monitoring
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/88—Monitoring involving counting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/885—Monitoring 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では、I/O(Input/Output)プリフェッチの効率やメモリ使用状況の情報に基づいて、ページに優先順位を与えることで読み出すディスクブロックを選択し、ファイルアクセスを高速化している(例えば、特許文献1)。
また、稼動状態のメモリの状況をストレージに記録しておき、情報処理装置の次回起動時にストレージに記録しているメモリの状況をメモリに戻すことにより、メモリ読み出しにおける重複したアクセスを防止する方法も提案されている(例えば、特許文献2)。
更に、低速なストレージとCPU(Central Processing Unit)との間に高速な記憶媒体を配置し、低速なストレージから読み出されたデータを高速な記憶媒体に一時的に格納するという、キャッシュの基本的な方式も提案されている(例えば、特許文献3)。
キャッシュ領域と、
複数のデータの各々についてファイルシステムを経由したアクセス回数を記憶するアクセス回数記憶領域と、
前記ファイルシステムを経由しない前記複数のデータへのアクセスが発生する際に、前記複数のデータのアクセス回数に基づき決定された閾値以上のアクセス回数が前記アクセス回数記憶領域に記憶されているデータを上書き禁止データに設定して前記キャッシュ領域にキャッシュするキャッシュ管理部とを有する。
***構成の説明***
本実施の形態では、組込みプラットフォームにおいてセキュアブートを適用するときに発生する課題を解決する構成を説明する。より具体的には、ファイルシステムを経由しないストレージからの読み出しをファイルシステムのディスクキャッシュとして利用可能にし、当該ディスクキャッシュの廃棄アルゴリズムに決定論的な手法を適用することで効率的なキャッシュ管理を行うことができる構成を説明する。
本実施の形態に係る情報処理装置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で行われる動作は、情報処理方法及び情報処理プログラムに相当する。
図1では、プロセッサ101が検証プログラム110、アプリケーション111及びオペレーティングシステム112の機能を実現するプログラムを実行している状態を模式的に表している。
また、検証プログラム110、アプリケーション111及びオペレーティングシステム112は、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ブルーレイ(登録商標)ディスク、DVD等の可搬記録媒体に格納されていてもよい。
なお、本明細書では、プロセッサ101と処理回路との上位概念を、「プロセッシングサーキットリー」という。
つまり、プロセッサ101と処理回路とは、それぞれ「プロセッシングサーキットリー」の具体例である。
情報処理装置100では、オペレーティングシステム112が動作している。また、オペレーティングシステム112上で検証プログラム110及びアプリケーション111が動作している。
検証プログラム110は、セキュアブートのための検証を行う。すなわち、検証プログラム110は、アプリケーション111の完全性及び真正性の検証を行う。
上位ファイルシステム115及び下位ファイルシステム114は、アプリケーション111から使用可能なファイルアクセスを抽象化した実際のファイルシステムを構成する。
上位ファイルシステム115及び下位ファイルシステム114は、オペレーティングシステムによっては単一のファイルシステムとして実装されている場合がある。本実施の形態に係る情報処理装置100は、ファイルシステムの多重化構成には依存せずに実施可能である。
ブロックアクセスAPI117は、下位ファイルシステム114及び検証プログラム110から直接アクセス可能なAPIである。
アクセス回数管理部118が計数したアクセス回数及びアクセス回数管理部118が決定した閾値は、ストレージ104の履歴記憶領域106で記憶される。
また、キャッシュ管理部119は、履歴記憶領域106に記憶されている上書き禁止データのアクセス回数を、上書き禁止データに対応付けて、ディスクキャッシュ領域108に書き込む。
更に、キャッシュ管理部119は、閾値未満のアクセス回数が履歴記憶領域106に記憶されているコードデータを、上書き禁止データに上書きすることなくディスクキャッシュ領域108にキャッシュする。
キャッシュ管理部119が行う処理は、キャッシュ管理処理に相当する。
ディスクキャッシュ領域108はキャッシュ領域に相当する。
アプリケーションパーティション107には、アプリケーション111の実行イメージが格納されている。
履歴記憶領域106には、アクセス回数管理部118が計数したコードデータごとのアクセス回数とアクセス回数管理部118が決定した閾値が格納されている。履歴記憶領域106は、アクセス回数記憶領域に相当する。
ファームウェア領域109には、オペレーティングシステム112が格納されている。
履歴記憶領域106では、アプリケーションパーティション107のサイズをストレージ104へのアクセスに使用するブロックサイズで除算した個数分のエントリ120が存在する。各エントリ120は、アプリケーション111の実行イメージをブロックサイズで分割して得られるコードデータに対応する。つまり、図3の例では、アプリケーション111の実行イメージは、N個のコードデータに分割される。
オフセットは各エントリ120に対して番号を振るために便宜的に示しているものである。このため、履歴記憶領域106はアクセス回数の値と閾値121のみを記憶している。本実施の形態では、アクセス回数の1エントリのサイズは1バイトである。しかし、ストレージ104の容量に応じて1エントリのサイズは任意に変更可能である。
閾値121は、アクセス回数の1エントリと同じサイズを持つ。つまり、本実施の形態では、閾値121のサイズは1バイトである。閾値121は、前述したように、キャッシュ管理部119がコードデータを上書き禁止データに設定するか否かを判定するために用いられる。
エントリ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の動作例を説明する。
そして、オペレーティングシステム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)。
ブロックアクセス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で確保可能なブロック数の半分と同数のエントリを選択することとしている。
以下では、セキュアブートのように検証プログラム110がアプリケーション111の完全性及び真正性の検証を行う際に、上位ファイルシステム115及び下位ファイルシステム114を経由せずにデバイスドライバ113がアプリケーションパーティション107からアプリケーションのコードデータを読み出す場合の動作を説明する。
また、検証プログラム110が起動する(ステップ603)。
なお、情報処理装置100の起動時(ステップ601)には、ディスクキャッシュ領域108にはキャッシュデータ125は格納されていない。
次に、キャッシュ管理部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)。
次に、デバイスアクセス部116が、アクセス先のブロック番号を1つ増加する(ステップ611)。
以降、アクセス先のブロック番号がアプリケーションパーティション107の総ブロック数を超えるまで、ステップ605からステップ611の動作が繰り返される(ステップ604、ステップ612)。つまり、ステップ605からステップ611の動作がアプリケーションパーティション107全体に渡って繰り返される。
キャッシュ管理部119は、コードデータをディスクキャッシュ領域108に書き込む際に、上書き禁止フラグ123がONになっていない領域、すなわち、上書き可能な領域を探し、上書き可能な領域にコードデータを書き込む。上書き可能な領域に既にコードデータが格納されている場合は、当該コードデータは、新たなコードデータによって上書きされる。
上書き禁止フラグ123がONになっている領域のキャッシュデータ125(すなわち、上書き禁止データ)は他のコードデータによって上書きされることなく、ディスクキャッシュ領域108で保持される。
ローダがストレージ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以降の手順がくり返される。
以上のように、本実施の形態では、セキュアブートのようなファイルシステムを経由しないデータアクセスにより得られたキャッシュデータのうち、ファイルシステムを経由するデータアクセスで頻繁にアクセスされるデータのキャッシュデータは上書きされずに維持される。このため、ファイルシステムを経由するデータアクセスの際に、キャシュデータを利用して高速にデータアクセスを行うことができる。
従って、本実施の形態によれば、ファイルシステムを経由するデータアクセスと、ファイルシステムを経由しないデータアクセスとが発生する構成において、効率的なキャッシュ管理を行うことができる。
本実施の形態では、あらかじめアプリケーションの実行記録を取ることで、アプリケーションパーティション中で頻繁に使用されるブロックの学習と、当該ブロックに対するキャッシュデータを廃棄するまでの読み出し回数を把握することができる。また、本実施の形態では、キャシュデータを廃棄するまでの読み出し回数を把握することにより、読み出し回数が規定数に到達したら該当するキャシュデータを廃棄することができる。これにより、キャッシュデータを廃棄した領域を新規のディスクキャッシュとして使用することが可能になり、ディスクキャッシュの効率的な利用が可能になる。
実施の形態1では、アプリケーションが1つの場合に高速なデータ読み出しとディスクキャッシュの効率的な利用を可能にする構成を説明した。本実施の形態では、アプリケーションが複数存在する場合に高速なデータ読み出しとディスクキャッシュの効率的な利用を可能にする構成を説明する。
本実施の形態では、主に実施の形態1との差異を説明する。
なお、以下で説明していない事項は、実施の形態1と同様である。
図5は、本実施の形態に係る情報処理装置100の機能構成例を示す。
図5では、3つのアプリケーションが存在することとしているが、アプリケーションの数は任意である。
また、図5では、履歴記憶領域106の代わりに履歴記憶領域133が存在する。
履歴記憶領域133では、3つのアプリケーションに対応させた構成になっている。
他の構成要素は、図2に示すものと同じであるため、説明を省略する。
図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の動作自体は、実施の形態1で示したものと同じである。本実施の形態では、キャッシュ管理部119は、3つのアプリケーションの各々に対して、閾値121とアクセス回数との比較を行い、抽出したコードデータを上書き禁止データに設定するか否かを決定する。
本実施の形態によれば、複数のアプリケーションに対して実施の形態1と同様の効果を得ることができる。
また、本実施の形態によれば、アプリケーションパーティションの単位で検証を行うことができる。このため、検証プログラムを複数のアプリケーションに対して並行して実行することが可能であり、検証処理を高速化することができる。
実施の形態1では、履歴記憶領域はストレージ104上にある。しかし、アプリケーションパーティションのサイズが大きい場合は、ストレージ104へのアクセス頻度が多くなるため性能が低下する可能性がある。本実施の形態では、これを避けるために、履歴記憶領域をデバイスドライバ113内でキャッシュする構成を説明する。本実施の形態の構成では、履歴記憶領域への書き込みが完了したタイミングで履歴記憶領域の情報をストレージ104に書き戻すことで、データアクセス速度の低下を抑えることができる。
本実施の形態では、主に実施の形態1との差異を説明する。
なお、以下で説明していない事項は、実施の形態1と同様である。
図7では、図1と比較して、履歴記憶領域(キャッシュ)150が追加されている。
図7では、理解の容易のために、履歴記憶領域(キャッシュ)150はデバイスドライバ113内に示されているが、物理的には、履歴記憶領域(キャッシュ)150はRAM103のディスクキャッシュ領域108に配置されている。
なお、作図上の理由から、図7では、ストレージ104の内部構成が図示されていないが、図7においても、ストレージ104の内部構成は、図1と同じである。すなわち、図7においても、ストレージ104には、アプリケーションパーティション107、履歴記憶領域106、ファームウェア領域109が存在する。
アクセス回数管理部118は、履歴記憶領域(キャッシュ)150にアクセス回数を書き込む。また、アクセス回数管理部118は、履歴記憶領域(キャッシュ)150に書き込んだアクセス回数に基づいて閾値121を算出する。
履歴記憶領域(キャッシュ)150の情報のストレージ104の履歴記憶領域106への書き戻しは、アクセス回数管理部118による閾値121の算出及びアプリケーション111のクローズの後に行われる。
あるいは、これらの実施の形態のうち、1つを部分的に実施しても構わない。
あるいは、これらの実施の形態のうち、2つ以上を部分的に組み合わせて実施しても構わない。
なお、本発明は、これらの実施の形態に限定されるものではなく、必要に応じて種々の変更が可能である。
Claims (11)
- キャッシュ領域と、
複数のデータの各々についてファイルシステムを経由したアクセス回数を記憶するアクセス回数記憶領域と、
前記ファイルシステムを経由しない前記複数のデータへのアクセスが発生する際に、前記複数のデータのアクセス回数に基づき決定された閾値以上のアクセス回数が前記アクセス回数記憶領域に記憶されているデータを上書き禁止データに設定して前記キャッシュ領域にキャッシュするキャッシュ管理部とを有する情報処理装置。 - 前記キャッシュ管理部は、
前記閾値未満のアクセス回数が前記アクセス回数記憶領域に記憶されているデータを、前記上書き禁止データに上書きすることなく前記キャッシュ領域にキャッシュする請求項1に記載の情報処理装置。 - 前記キャッシュ管理部は、
前記キャッシュ領域にキャッシュするデータに対応付けて、前記アクセス回数記憶領域に記憶されているアクセス回数を、前記キャッシュ領域に書き込む請求項1又は2に記載の情報処理装置。 - 前記キャッシュ管理部は、
前記キャッシュ領域にキャッシュされているデータに前記ファイルシステムを経由したアクセスが前記アクセス回数に相当する回数あった場合に、前記キャッシュ領域内にキャッシュされているデータを無効化する請求項3に記載の情報処理装置。 - 前記キャッシュ管理部は、
前記複数のデータの完全性及び真正性の検証のために前記ファイルシステムを経由しない前記複数のデータへのアクセスが発生する際に、前記閾値以上のアクセス回数が前記アクセス回数記憶領域に記憶されているデータを前記上書き禁止データに設定して前記キャッシュ領域にキャッシュする請求項1に記載の情報処理装置。 - 前記アクセス回数記憶領域は、
アプリケーションプログラムを構成する複数のコードデータの各々について前記ファイルシステムを経由したアクセス回数を記憶し、
前記キャッシュ管理部は、
前記アプリケーションプログラムを構成する前記複数のコードデータの前記完全性及び真正性の検証のために前記ファイルシステムを経由しない前記複数のコードデータへのアクセスが発生する際に、前記閾値以上のアクセス回数が前記アクセス回数記憶領域に記憶されているコードデータを前記上書き禁止データに設定して前記キャッシュ領域にキャッシュする請求項5に記載の情報処理装置。 - 前記アクセス回数記憶領域は、
複数のアプリケーションプログラムについて、アプリケーションプログラムごとに、アプリケーションプログラムを構成する複数のコードデータの各々について前記ファイルシステムを経由したアクセス回数を記憶し、
前記キャッシュ管理部は、
前記完全性及び真正性の検証のために前記ファイルシステムを経由しない前記複数のアプリケーションプログラムの複数のコードデータへのアクセスが発生する際に、アプリケーションプログラムごとに、前記閾値以上のアクセス回数が前記アクセス回数記憶領域に記憶されているコードデータを前記上書き禁止データに設定して前記キャッシュ領域にキャッシュする請求項6に記載の情報処理装置。 - 前記キャッシュ管理部は、
アプリケーションプログラムごとに決定された閾値を用い、
アプリケーションプログラムごとに、対応する閾値以上のアクセス回数が前記アクセス回数記憶領域に記憶されているコードデータを前記上書き禁止データに設定して前記キャッシュ領域にキャッシュする請求項7に記載の情報処理装置。 - 前記情報処理装置は、
前記アクセス回数記憶領域がデバイスドライバ用のキャッシュメモリに設けられている請求項1に記載の情報処理装置。 - キャッシュ領域と、
複数のデータの各々についてファイルシステムを経由したアクセス回数を記憶するアクセス回数記憶領域とを有するコンピュータが、
前記ファイルシステムを経由しない前記複数のデータへのアクセスが発生する際に、前記複数のデータのアクセス回数に基づき決定された閾値以上のアクセス回数が前記アクセス回数記憶領域に記憶されているデータを上書き禁止データに設定して前記キャッシュ領域にキャッシュする情報処理方法。 - キャッシュ領域と、
複数のデータの各々についてファイルシステムを経由したアクセス回数を記憶するアクセス回数記憶領域とを有するコンピュータに、
前記ファイルシステムを経由しない前記複数のデータへのアクセスが発生する際に、前記複数のデータのアクセス回数に基づき決定された閾値以上のアクセス回数が前記アクセス回数記憶領域に記憶されているデータを上書き禁止データに設定して前記キャッシュ領域にキャッシュするキャッシュ管理処理を実行させる情報処理プログラム。
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117234431B (zh) * | 2023-11-14 | 2024-02-06 | 苏州元脑智能科技有限公司 | 缓存管理方法、装置、电子设备及存储介质 |
Family Cites Families (11)
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 | 株式会社日立製作所 | サーバ及びキャッシュ制御方法 |
-
2017
- 2017-12-18 WO PCT/JP2017/045336 patent/WO2019123519A1/ja active Application Filing
- 2017-12-18 US US16/652,945 patent/US20200257630A1/en not_active Abandoned
- 2017-12-18 CN CN201780097528.7A patent/CN111465926A/zh not_active Withdrawn
- 2017-12-18 JP JP2019559884A patent/JP6689471B2/ja not_active Expired - Fee Related
- 2017-12-18 DE DE112017008201.3T patent/DE112017008201B4/de not_active Expired - Fee Related
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 |