(57)【要約】【課題】情報端末の消費電力を抑制する。【解決手段】情報処理装置１０において、アプリケーションプロセッサ１２はＯＳやアプリケーションを処理する。フラッシュメモリ２２は、そのデータの一部をＳＲＡＭ１８にキャッシュすることでアプリケーションプロセッサ１２がメモリとして用いる。マイクロコントローラ１４は、キャッシュミスの際のフラッシュメモリ２２からのデータ読み出しを制御する。キャッシュコントローラはＳＲＡＭ１８に対するデータアクセスを制御するとともに、内部にキャッシュタグを保持し、アプリケーションプロセッサ１２から要求されたデータのキャッシュ判定を行う。【選択図】図１
2017068806.tif 000002
【特許請求の範囲】
【請求項１】
オペレーティングシステムを実行することによりアプリケーションプログラムを処理するアプリケーションプロセッサと、
二次記憶装置に格納されたデータの一部を格納するメモリと、
前記アプリケーションプロセッサの処理に応じて、前記メモリに格納されたデータの入れ替え処理を制御するマイクロコントローラと、
を備えたことを特徴とする情報処理装置。
【請求項２】
前記アプリケーションプロセッサからデータアクセス要求を受け付け、前記メモリにおけるデータ格納状況に基づきデータの入れ替えの必要性を判定して、必要と判定したとき前記マイクロコントローラに通知するキャッシュコントローラをさらに備えたことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記キャッシュコントローラは、前記メモリにおけるデータ格納状況を表すリストを内部で保持し、前記アプリケーションプロセッサがアクセス先として指定したアドレスと前記リストとの比較によりデータの入れ替えの必要性を判定することを特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記メモリは、前記アプリケーションプロセッサ、前記キャッシュコントローラ、前記マイクロコントローラを接続するインターコネクトに接続されたＳＲＡＭ（Static Random Access Memory）であることを特徴とする請求項２または３に記載の情報処理装置。
【請求項５】
前記二次記憶装置はＮＡＮＤ型フラッシュメモリであることを特徴とする請求項１から４のいずれかに記載の情報処理装置。
【請求項６】
アプリケーションプロセッサがオペレーティングシステムを実行することによりアプリケーションプログラムを処理するステップと、
前記アプリケーションプロセッサの処理に応じて、二次記憶装置に格納されたデータの一部を格納するメモリにおけるデータの入れ替え処理をマイクロコントローラが制御するステップと、
を含むことを特徴とする情報処理方法。
【請求項７】
キャッシュコントローラが、
前記アプリケーションプロセッサからデータアクセス要求を受け付けるステップと、
前記メモリにおけるデータ格納状況に基づきデータの入れ替えの必要性を判定して、必要と判定したとき前記マイクロコントローラに通知するステップと、
をさらに含むことを特徴とする請求項６に記載の情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリに格納されたデータを用いて情報処理を行う情報処理装置および情報処理方法に関する。
【背景技術】
【０００２】
近年、ネットワーク環境の拡充や情報処理技術の発展によりネットワークアクセスが容易になり、情報端末を用いて様々な情報を取得したりサーバから提供されるコンテンツを楽しんだりすることが場所や時間を問わず日常的に行われるようになってきた。ネットワーク接続に対するセキュリティーを確保するため、ＯＳ（Operating System）やアプリケーションソフトウェアも大規模で複雑なものとなっている。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
メモリ消費の大きなソフトウェアを稼働させるには、一般的には大容量の外付けＤＲＡＭ（Dynamic Random Access Memory）が利用されるが、ＤＲＡＭはデータ保持のための定期的なリフレッシュ動作を必要とし、プロセッサが待機状態にある間も電力を消費する。またネットワークへの接続を常時待機する場合は、ネットワークアクセスの待ち受け処理のためにも電力を消費する。このように機能の充実とともに電力消費は増大する傾向にあり、特にバッテリー駆動の情報機器においては駆動時間が短縮されるなど問題が顕在化しやすい。そのため多機能な情報処理装置であっても電力消費を抑えることのできる技術が求められている。
【０００４】
本発明はこうした課題に鑑みてなされたものであり、その目的は、情報処理装置における電力消費を抑制できる技術を提供することにある。
【課題を解決するための手段】
【０００５】
本発明のある態様は情報処理装置に関する。この情報処理装置は、オペレーティングシステムを実行することによりアプリケーションプログラムを処理するアプリケーションプロセッサと、二次記憶装置に格納されたデータの一部を格納するメモリと、アプリケーションプロセッサの処理に応じて、前記メモリに格納されたデータの入れ替え処理を制御するマイクロコントローラと、を備えたことを特徴とする。
【０００６】
本発明の別の態様は情報処理方法に関する。この情報処理方法は、アプリケーションプロセッサがオペレーティングシステムを実行することによりアプリケーションプログラムを処理するステップと、アプリケーションプロセッサの処理に応じて、二次記憶装置に格納されたデータの一部を格納するメモリにおけるデータの入れ替え処理をマイクロコントローラが制御するステップと、を含むことを特徴とする。
【０００７】
なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、システム、コンピュータプログラム、コンピュータプログラムを記録した記録媒体などの間で変換したものもまた、本発明の態様として有効である。
【発明の効果】
【０００８】
本発明によると、情報処理装置の消費電力を抑制できる。
【図面の簡単な説明】
【０００９】
【図１】本実施の形態における情報処理装置の内部構成を示す図である。
【図２】本実施の形態における情報処理装置の構成とデータの関係を模式的に示す図である。
【図３】本実施の形態におけるキャッシュコントローラに格納されるキャッシュタグのデータ構造を例示する図である。
【図４】本実施の形態における読み出し処理において対象データがＳＲＡＭにキャッシュされている場合の処理手順を示す図である。
【図５】本実施の形態における読み出し処理において対象データがＳＲＡＭにキャッシュされてない場合の処理手順を示す図である。
【図６】本実施の形態における書き込み処理において対象データがＳＲＡＭにキャッシュされている場合の処理手順を示す図である。
【図７】本実施の形態における書き込み処理において対象データがＳＲＡＭにキャッシュされていない場合の処理手順を示す図である。
【図８】本実施の形態における書き込み処理においてＳＲＡＭからフラッシュメモリへの書き戻し処理を含む場合の処理手順を示す図である。
【発明を実施するための形態】
【００１０】
図１は、本実施の形態の情報処理装置の内部構成を示している。ここで例示する情報処理装置は、インターネット対応の監視カメラ、温度計、ウェアラブルの心拍計など、低消費電力で間欠動作するＩＯＴ（Internet of things）機器のいずれかである。あるいは、携帯ゲーム機、パーソナルコンピュータ、携帯電話、タブレット端末、ＰＤＡなど一般的な情報機器のいずれかでもよい。情報処理装置１０は、アプリケーションプロセッサ１２、マイクロコントローラ１４、キャッシュコントローラ１６、ＳＲＡＭ（Static Random Access Memory）１８、ネットワークコントローラ２４、暗号処理部２８、およびフラッシュコントローラ２６が、インターコネクト３０にそれぞれ接続されてなるホストシステム２０と、ＮＡＮＤ型フラッシュメモリなどのフラッシュメモリ２２を接続した構成を有する。
【００１１】
ＭＭＵ（Memory Management Unit）を用いた一般的な仮想メモリでは、アクセス先のページが格納されていない、いわゆるページミスが発生したとき、ＯＳの制御により二次記憶装置とメモリの間でデータの入れ替えがなされる。このように仮想メモリの機構をＯＳが制御する場合、大きいサイズのプログラムデータをメモリに常時格納しておく必要があり、最低限必要なメモリ容量も非常に大きくなる。そのため、一般的には大容量の外付けＤＲＡＭなどが用いられている。
【００１２】
本実施の形態では、フラッシュメモリ２２等の二次記憶装置の内容をＳＲＡＭ１８に直接キャッシュするとともに、メモリアクセスを要求するアプリケーションプロセッサ１２とは別に、二次記憶装置とのデータの入れ替えを行う専用のハードウェアとしてマイクロコントローラ１４を設ける。さらにＳＲＡＭ１８におけるデータのキャッシュヒット／キャッシュミスを判定するための機構をキャッシュコントローラ１６に実装し、従来のページテーブルの役割を担う情報を必要最低限とすることにより当該情報のデータサイズを削減する。
【００１３】
これにより、大きなサイズのＯＳプログラムやページテーブルを格納する必要がなくなるため、容量の小さいＳＲＡＭ１８であっても一般的な仮想メモリと同様に大容量のデータへのアクセスが可能となる。またリフレッシュ動作が必要なＤＲＡＭの介在を不要とすることにより、特にユーザが情報処理装置１０を使用していない待機状態における電力消費量を削減する。なお本実施の形態はユーザの使用状況によらず適用してもよいし、待機状態のときのみに適用し、ユーザが使用している、すなわちアプリケーションプロセッサ１２が稼働している期間は、ＤＲＡＭを利用した通常の仮想メモリ機構に切り替えてもよい。図１ではこの場合に用いるＤＲＡＭについては図示を省略している。
【００１４】
アプリケーションプロセッサ１２は、ＯＳやアプリケーションプログラムを処理する。処理に必要な命令やデータはＳＲＡＭ１８から内部のキャッシュメモリに読み出す。マイクロコントローラ１４は、小容量のローカルＲＡＭ上で動作し、キャッシュコントローラ１６およびフラッシュコントローラ２６を制御する。ネットワークコントローラ２４は、ＷＬＡＮ（Ｗｉｒｅｌｅｓｓ  ＬＡＮ）やＥｔｈｅｒｎｅｔ（登録商標）などの通信ユニットであり、ネットワークを介してパケットを受信したときはアプリケーションプロセッサ１２に割り込みを通知する。
【００１５】
フラッシュコントローラ２６はＮＡＮＤ型フラッシュメモリデバイスなどに対する一般的なインターフェースであり、マイクロコントローラ１４の制御のもと、フラッシュメモリ２２にアクセスして、所定のブロック単位でデータの読み出し／書き込みを行う。ＳＲＡＭ１８はメモリマップされた領域であり、アプリケーションプロセッサ１２が直接アクセスすることでバッファとして使用することも、キャッシュコントローラ１６による制御を介することでフラッシュメモリ２２の仮想メモリとして使用することもできる。
【００１６】
キャッシュコントローラ１６は、インターコネクト３０のスレーブとしてメモリマップされ、アプリケーションプロセッサ１２が主記憶装置としてアクセスする。キャッシュコントローラ１６はページテーブルの代わりに、内部にキャッシュタグを格納し、データの実体はＳＲＡＭ１８に格納される。暗号処理部２８は、マイクロコントローラ１４の制御のもと、フラッシュメモリ２２に格納すべきデータを暗号化したり、読み出されたデータを復号したりする。インターコネクト３０は、図中、「Ｍ」と記載されたマスタユニットと「Ｓ」と記載されたスレーブユニットを相互接続し、複数のマスタユニット、スレーブユニットの同時動作をサポートする。例えばアプリケーションプロセッサ１２がキャッシュコントローラ１６にアクセス中であっても、その他のマスタがＳＲＡＭにアクセスすることを可能とする。
【００１７】
図２は本実施の形態の情報処理装置１０の構成とデータの関係を模式的に示している。まずアプリケーションプロセッサ１２のメモリマップは、キャッシュコントローラ１６がスレーブとしてマップされたアドレス空間を含み、当該アドレス空間はフラッシュメモリ２２の論理アドレスを示している。メモリマップにはそのほか、ＳＲＡＭ１８自体やレジスタなどがマップされる。キャッシュコントローラ１６は仮想メモリのインターフェースであり、実際のデータはフラッシュメモリ２２に格納されているものの一部がＳＲＡＭ１８にキャッシュされている。
【００１８】
処理の流れはおよそ次のようになる。まずアプリケーションプロセッサ１２は、フラッシュメモリ２２に対するアドレスを指定することによりキャッシュコントローラ１６にデータアクセス要求を行う。キャッシュコントローラ１６は、アプリケーションプロセッサ１２が指定したアドレスに基づき内部に保持するキャッシュタグ３２を参照し、ヒット／ミス判定を行う。対応する有効なデータがＳＲＡＭ１８に格納されていればヒットとし、データを読み出すなど要求された処理を行う（Ｓ２）。
【００１９】
データが格納されていなければミスとしてマイクロコントローラ１４に通知する（Ｓ４）。マイクロコントローラ１４はフラッシュコントローラ２６を制御してフラッシュメモリ２２から該当データを読み出し（Ｓ６）、ＳＲＡＭ１８の指定された領域に格納する（Ｓ８）。これらの手順により、アプリケーションプロセッサ１２は一般的な手法でアクセス要求を行い、データ読み出し／書き込みが適切になされるまで待機すればよいことになる。より詳細な処理手順については後述する。
【００２０】
図３は、キャッシュコントローラ１６に格納されるキャッシュタグ３２のデータ構造を例示している。キャッシュコントローラ１６は、ＳＲＡＭ１８のうちキャッシュとして使用する領域のサイズと、フラッシュメモリ２２のうちメモリマップにマッピングされる領域のサイズに応じて設計する。キャッシュとして利用するサイズをＳＲＡＭ全体の１／２、１／４、１／８、などと変更可能にしておくことにより、バッファなどその他の用途に利用する領域のサイズを調整できる。例えば１ＧｉＢ（２３０バイト）のデータをＳＲＡＭ１８の４ＭｉＢ（４×２２０バイト）の領域にキャッシュする場合を想定する。ページサイズは４ＫｉＢ（４×２１０Ｂ）とする。
【００２１】
キャッシュコントローラ１６がスレーブとしてマップされるアドレス空間は、フラッシュメモリ２２をメモリとして使用するサイズとなる。１ＧｉＢの領域をサポートする場合、アドレス４０は図示するように３０ビットの情報で構成する。４ウェイセットアソシアティブの場合、各インデックスに４つのタグが１セットとして対応づけられる。各タグ４２には、対応するページが有効であるか否かを示すバリッドビット４４（「Ｖ」と表記）と、キャッシュされたページが更新されフラッシュメモリ２２における対応データと一致しているか否かを示すダーティービット４６（「Ｄ」と表記）が付加される。
【００２２】
４ＭｉＢの領域を４ＫｉＢのページで構成すると、キャッシュタグのエントリ数は２１０＝１０２４となる。４ウェイセットアソシアティブの場合、３０ビットのアドレス４０のうち１９：１２の８ビットのインデックスによって、対応する４つのキャッシュタグが参照され、そのうちアドレス４０の２９：２０の１０ビットのタグと一致する有効なキャッシュタグがあればキャッシュヒットとなる。この例でキャッシュタグに必要な記憶領域は１０２４エントリ×１２ビット／８＝１５３６バイトとなり、一般的なページテーブルより格段に小さいサイズとなる。なおＳＲＡＭ１８のうちキャッシュとして利用する領域を上述のように１／２、１／４、１／８、１／１６と調整する場合は、タグとして比較するビット数が増えるため、キャッシュタグに必要な領域が多少、増加する。
【００２３】
次にこれまで述べた構成によって実現できる情報処理装置の動作について説明する。図４は、読み出し処理において対象データがＳＲＡＭ１８にキャッシュされている場合の処理手順を示している。まずアプリケーションプロセッサ１２などのバスマスタは、キャッシュコントローラ１６に対しアドレスを指定して読み出しアクセスを要求する（Ｓ１０）。それに対しキャッシュコントローラ１６は、内部に保持するキャッシュタグを参照し、インデックスおよびタグが一致し、かつ有効なエントリが存在したときキャッシュヒットを判定して、要求されたデータを読み出すためにＳＲＡＭ１８にアクセスする（Ｓ１２）。ＳＲＡＭ１８からレスポンスと該当データが返されたら（Ｓ１４）、キャッシュコントローラ１６は当該データを、レスポンスとともにアプリケーションプロセッサ１２などのバスマスタに転送する（Ｓ１６）。
【００２４】
図５は読み出し処理において対象データがＳＲＡＭ１８にキャッシュされてない場合の処理手順を示している。まずアプリケーションプロセッサ１２などのバスマスタは、キャッシュコントローラ１６に対しメモリアドレスを指定して読み出しアクセスを要求する（Ｓ２０）。それに対しキャッシュコントローラ１６は、内部に保持するキャッシュタグを参照し、インデックスおよびタグが一致し、かつ有効なエントリが存在しないときキャッシュミスを判定して、マイクロコントローラ１４に割り込みを発行する（Ｓ２２）。
【００２５】
キャッシュコントローラ１６はインターコネクトスレーブインターフェースとは別に、レジスタインターフェースを持ち、キャッシュミスしたアドレスと書き換え対象となるＳＲＡＭ１８内の領域に係る情報をレジスタ（図示せず）に格納しておく。マイクロコントローラ１４はキャッシュコントローラ１６の当該レジスタからそれらの情報を読み出す（Ｓ２４）。続いてマイクロコントローラ１４は、フラッシュコントローラ２６に対して該当するアドレスのデータの読み出しを要求する（Ｓ２６）。
【００２６】
当該読み出し要求には、Ｓ２４で取得した、ＳＲＡＭ１８内の書き換え対象の領域をデータの読み出し先として指定する情報を含める。そしてＳＲＡＭ１８内のキャッシュに用いられていない領域に書き込むことにより、フラッシュコントローラ２６が当該要求を読み出す。フラッシュコントローラ２６は、フラッシュメモリ２２から該当データを読み出し、指定されたＳＲＡＭ１８内の領域に格納する（Ｓ２８）。データの格納が完了したら、フラッシュコントローラ２６は、マイクロコントローラ１４に対し完了通知を発行する（Ｓ３０）。
【００２７】
これに応じてマイクロコントローラ１４は、新たに格納されたデータの復号処理を暗号処理部２８に依頼し、それが完了した時点でキャッシュコントローラ１６に完了通知を発行するとともに、キャッシュコントローラ１６のキャッシュタグを更新する（Ｓ３２）。これに応じてキャッシュコントローラ１６は、再びキャッシュタグを参照してキャッシュヒットを判定し、要求されたデータを読み出すためにＳＲＡＭ１８にアクセスする（Ｓ３４）。これに対しＳＲＡＭ１８からレスポンスと該当データが返されたら（Ｓ３６）、キャッシュコントローラ１６は当該データを、レスポンスとともにアプリケーションプロセッサ１２などのバスマスタに転送する（Ｓ３８）。
【００２８】
図６は書き込み処理において対象データがＳＲＡＭ１８にキャッシュされている場合の処理手順を示している。まずアプリケーションプロセッサ１２などのバスマスタは、キャッシュコントローラ１６に対しアドレスを指定して書き込みアクセスを要求する（Ｓ４０）。それに対しキャッシュコントローラ１６は、内部に保持するキャッシュタグを参照し、インデックスおよびタグが一致し、かつ有効なエントリが存在したときキャッシュヒットを判定して、その旨のレスポンスを要求元のマスタに返す（Ｓ４２）。
【００２９】
それに対しマスタは、書き込むデータをキャッシュコントローラ１６に送信する（Ｓ４４）。キャッシュコントローラ１６は、要求されたアドレスのデータに書き込みを行うためにＳＲＡＭ１８にアクセスし（Ｓ４６）、マスタから送信されたデータを書き込む（Ｓ４８）。なおこの際、キャッシュコントローラ１６は、対応するキャッシュタグのダーティービット４６を更新し、フラッシュメモリ２２における対応データと不一致（ダーティ）であることを記録する。
【００３０】
図７は、書き込み処理において対象データがＳＲＡＭ１８にキャッシュされていない場合の処理手順を示している。まずアプリケーションプロセッサ１２などのバスマスタは、キャッシュコントローラ１６に対しアドレスを指定して書き込みアクセスを要求する（Ｓ５０）。それに対しキャッシュコントローラ１６は、内部に保持するキャッシュタグを参照し、インデックスおよびタグが一致し、かつ有効なエントリが存在しないときキャッシュミスを判定し、マイクロコントローラ１４に割り込みを発行する（Ｓ５２）。これに応じてマイクロコントローラ１４はキャッシュコントローラ１６のレジスタから、キャッシュミスしたアドレスと、書き換え対象となるＳＲＡＭ１８内の領域に係る情報を読み出す（Ｓ５４）。
【００３１】
続いてマイクロコントローラ１４は、フラッシュコントローラ２６に対して該当するアドレスのデータの読み出しを要求する（Ｓ５６）。当該読み出し要求には、Ｓ５４で取得した、ＳＲＡＭ１８内の書き換え対象の領域をデータの読み出し先として指定する情報を含める。そしてＳＲＡＭ１８内のキャッシュに用いられていない領域に書き込むことにより、フラッシュコントローラ２６が当該要求を読み出す。フラッシュコントローラ２６は、フラッシュメモリ２２から該当データを読み出し、指定されたＳＲＡＭ１８内の領域に格納する（Ｓ５８）。
【００３２】
データの格納が完了したら、フラッシュコントローラ２６は、マイクロコントローラ１４に対し完了通知を発行する（Ｓ６０）。これに応じてマイクロコントローラ１４は、新たに格納されたデータの復号処理を暗号処理部２８に依頼し、それが完了した時点でキャッシュコントローラ１６に完了通知を発行するとともに、キャッシュコントローラ１６のキャッシュタグを更新する（Ｓ６２）。これに応じてキャッシュコントローラ１６は、再びキャッシュタグを参照してキャッシュヒットを判定し、その旨のレスポンスを要求元のマスタに返す（Ｓ６４）。
【００３３】
それに対しマスタは、書き込むデータをキャッシュコントローラ１６に送信する（Ｓ６６）。キャッシュコントローラ１６は、要求されたアドレスのデータに書き込みを行うためにＳＲＡＭ１８にアクセスし（Ｓ６８）、マスタから送信されたデータを書き込む（Ｓ７０）。なおこの際もキャッシュコントローラ１６は、対応するキャッシュタグのダーティービット４６をダーティに更新する。
【００３４】
図８は、書き込み処理においてＳＲＡＭ１８からフラッシュメモリ２２への書き戻し処理を含む場合の処理手順を示している。この状況は、書き込み先のキャッシュエントリが全てダーティの場合などに発生する。まずアプリケーションプロセッサ１２などのバスマスタは、キャッシュコントローラ１６に対しアドレスを指定して書き込みアクセスを要求する（Ｓ８０）。それに対しキャッシュコントローラ１６は、内部に保持するキャッシュタグを参照し、インデックスが一致している４つのエントリが全てダーティであった場合などに、それらのエントリの書き戻しが必要と判定し、マイクロコントローラ１４に割り込みを発行する（Ｓ８２）。
【００３５】
これに応じてマイクロコントローラ１４は、キャッシュコントローラ１６のレジスタから、書き込みが要求されたアドレス、書き換え対象となるＳＲＡＭ１８内の領域、書き戻しが必要なデータの格納領域、および当該データのフラッシュメモリ２２におけるアドレスに係る情報を読み出す（Ｓ８４）。そしてマイクロコントローラ１４は、フラッシュコントローラ２６に対して、まず書き戻しが必要なデータの書き込み要求を発行する（Ｓ８６）。当該書き込み要求には、Ｓ８４で取得した、書き戻しが必要なデータのＳＲＡＭ１８内での格納領域および対応するアドレスに係る情報を含める。そしてＳＲＡＭ１８内のキャッシュに用いられていない領域に書き込むことにより、フラッシュコントローラ２６が当該要求を読み出す。
【００３６】
フラッシュコントローラ２６は、ＳＲＡＭ１８内の該当領域からデータを読み出し、フラッシュメモリ２２の対応するアドレスへ書き込む（Ｓ８８）。データの書き込みが完了したら、フラッシュコントローラ２６はマイクロコントローラ１４に対し完了通知を発行する（Ｓ９０）。これに応じてマイクロコントローラ１４は、フラッシュコントローラ２６に対して該当するアドレスのデータの読み出しを要求する（Ｓ９２）。当該読み出し要求には、Ｓ８４で取得した、ＳＲＡＭ１８内の書き換え対象の領域をデータの読み出し先として指定する情報を含める。そしてＳＲＡＭ１８内のキャッシュに用いられていない領域に書き込むことにより、フラッシュコントローラ２６が当該要求を読み出す。
【００３７】
フラッシュコントローラ２６は、フラッシュメモリ２２から該当データを読み出し、指定されたＳＲＡＭ１８内の領域に格納する（Ｓ９４）。データの格納が完了したら、フラッシュコントローラ２６は、マイクロコントローラ１４に対し完了通知を発行する（Ｓ９６）。マイクロコントローラ１４は、新たに格納されたデータの復号処理を暗号処理部２８に依頼し、それが完了した時点でキャッシュコントローラ１６に完了通知を発行するとともにキャッシュコントローラ１６のキャッシュタグを更新する（Ｓ９８）。
【００３８】
これに応じてキャッシュコントローラ１６は、再びキャッシュタグを参照してキャッシュヒットを判定し、その旨のレスポンスを要求元のマスタに返す（Ｓ１００）。それに対しマスタは、書き込むデータをキャッシュコントローラ１６に送信する（Ｓ１０２）。キャッシュコントローラ１６は、要求されたアドレスのデータに書き込みを行うためにＳＲＡＭ１８にアクセスし（Ｓ１０４）、マスタから送信されたデータを書き込む（Ｓ１０６）。
【００３９】
本実施の形態では、二次記憶装置に格納されたデータを直接、ＳＲＡＭにキャッシュするため、ＤＲＡＭを介在させた場合と比較するとキャッシュミスしたときのペナルティが大きくなる。二次記憶装置をＮＡＮＤ型フラッシュメモリとした場合、読み出しおよび書き込みのレイテンシはそれぞれ１００μｓ、５００μｓ程度となり、フラッシュメモリにおけるブロックのデータ消去が発生すると１ｍｓ程度かかることもある。この間、アプリケーションプロセッサをストールさせると、特に書き込み時のキャッシュミスに対するペナルティが大きくなるが、例えばＳＲＡＭ１８に書き込み用のバッファ領域を設けることによりレイテンシを短縮することができる。
【００４０】
一例として次の条件を仮定する。
プロセッサ、バス周波数：５００ＭＨｚ
ロード／ストアによるストール：１００％
プロセッサキャッシュヒット率：８０％
プロセッサキャッシュヒットサイクル：１５サイクル
ＳＲＡＭキャッシュヒット率：９９．９％
ＳＲＡＭキャッシュミス率（読み出し）：０．０８％
ＳＲＡＭキャッシュミス率（書き戻し）：０．０２％
ＤＲＡＭを介在させた場合のアクセスレイテンシ：１００ｎ秒（５０サイクル）
ＳＲＡＭキャッシュヒット時のレイテンシ：１００ｎ秒（５０サイクル）
ＳＲＡＭキャッシュミス時（読み出し）のレイテンシ：１００μ秒（５×１０４サイクル）
ＳＲＡＭキャッシュミス時（書き込み）のレイテンシ：１ｍ秒（５×１０５サイクル）
【００４１】
ＮＡＮＤ型フラッシュメモリは高いバンド幅を有するため、１度の読み出しサイズを大きな単位とすることで、キャッシュヒット率を向上させることができる。ロード／ストアサイズが４バイト、ＳＲＡＭキャッシュラインのサイズが４０９６バイトの場合、１キャッシュラインのデータを順番に参照する場合であれば、キャッシュミス率は４／４０９６≒０．１％、ひいてはキャッシュヒット率は上記のとおり９９．９％となる。
【００４２】
上記条件では、ＤＲＡＭを介在させた場合と比較し約７．４倍のサイクルを要する。しかしながら夜中など情報処理装置を使用していない期間の待機処理としては十分な速さといえる。さらにＳＲＡＭの容量を増やすなどしてキャッシュミス率が１桁小さくなれば、ＤＲＡＭを介在させた場合と比較し性能差は１．６倍まで縮めることができる。
【００４３】
以上述べた本実施の形態によれば、二次記憶装置であるフラッシュメモリの少なくとも一部の領域を仮想メモリの機構によりメモリとして使用する。ここで、キャッシュミスが発生した場合のフラッシュメモリからのデータ読み出しや書き戻しの際のデータ書き込みに係る制御を、アプリケーションプロセッサとは異なる小規模なプロセッサが行うようにする。これにより、アプリケーションプロセッサを動作させる大規模なＯＳのコードを、データをキャッシュするメモリに格納しておく必要がなくなる。
【００４４】
また、キャッシュミス／キャッシュヒットを判定する機構を、キャッシュコントローラにハードウェアとして実装することで、従来ＯＳが参照していたページテーブルを単純化してサイズを小さくし、キャッシュコントローラ内部で保持するようにする。これらのことにより、フラッシュメモリから読み出されたデータをキャッシュするメモリを小容量のＳＲＡＭとすることができる。結果として、少なくとも本仮想メモリの機構を利用している期間においては大容量のＤＲＡＭを介在させる必要がなくなり、ＯＳなどソフトウェアの規模に関わらずリフレッシュ動作のための定常的な電力の消費を抑えることができる。
【００４５】
以上、本発明を実施の形態をもとに説明した。上記実施の形態は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
【符号の説明】
【００４６】
１０  情報処理装置、  １２  アプリケーションプロセッサ、  １４  マイクロコントローラ、  １６  キャッシュコントローラ、  １８  ＳＲＡＭ、  ２０  ホストシステム、  ２２  フラッシュメモリ、  ２４  ネットワークコントローラ、  ２６  フラッシュコントローラ、  ２８  暗号処理部、  ３０  インターコネクト。
【図１】
2017068806.tif 000003
【図２】
2017068806.tif 000004
【図３】
2017068806.tif 000005
【図４】
2017068806.tif 000006
【図５】
2017068806.tif 000007
【図６】
2017068806.tif 000008
【図７】
2017068806.tif 000009
【図８】
2017068806.tif 000010