(57)【要約】【課題】メモリのアクセスに関するメモリ階層の数を削減することができ、メモリアクセスの最適化を容易に実現する。【解決手段】本発明の一例である統合メモリ管理装置２は、キャッシュメモリ３をアクセスするための第１論理アドレスを第１物理アドレスに変換しプロセッサ１に備えられる第１アドレス変換手段７と、メインメモリ４をアクセスするための第２論理アドレスを第２物理アドレスに変換しプロセッサ１に備えられる第２アドレス変換手段９と、第１アドレス変換手段７によって第１論理アドレスが第１物理アドレスに変換された場合に、第１物理アドレスに基づいてキャッシュメモリ３に対するアクセスを制御し、第２アドレス変換手段９によって第２論理アドレスが第２物理アドレスに変換された場合に、第２物理アドレスに基づいてメインメモリ４に対するアクセスを制御しプロセッサ１に備えられるキャッシュコントローラ８とを具備する。【選択図】      図１
2008242944.tif 000002
【特許請求の範囲】
【請求項１】
キャッシュメモリをアクセスするための第１論理アドレスを、第１物理アドレスに変換し、プロセッサに備えられる第１アドレス変換手段と、
メインメモリをアクセスするための第２論理アドレスを、第２物理アドレスに変換し、前記プロセッサに備えられる第２アドレス変換手段と、
前記第１アドレス変換手段によって前記第１論理アドレスが前記第１物理アドレスに変換された場合に、前記第１物理アドレスに基づいて前記キャッシュメモリに対するアクセスを制御し、前記第２アドレス変換手段によって前記第２論理アドレスが前記第２物理アドレスに変換された場合に、前記第２物理アドレスに基づいて前記メインメモリに対するアクセスを制御し、前記プロセッサに備えられるキャッシュコントローラと
を具備する統合メモリ管理装置。
【請求項２】
請求項１記載の統合メモリ管理装置において、
前記メインメモリに対するアクセス履歴データを格納する履歴格納手段を更に具備し、
前記キャッシュコントローラは、前記履歴格納手段に格納されている前記アクセス履歴データに基づいて、前記メインメモリにおける記憶位置を決定する
ことを特徴とする統合メモリ管理装置。
【請求項３】
請求項１又は請求項２記載の統合メモリ管理装置において、
前記第２アドレス変換手段は、前記メインメモリに記憶されているアドレス変換テーブルの一部を格納しており、
前記アクセス履歴格納手段は、前記メインメモリに記憶されている書き換え回数データの一部を格納しており、
前記キャッシュコントローラは、前記書き換え回数データにおいて、書き換え回数が所定回数より少ない位置を選択し、選択された位置にデータを記憶するよう制御する
ことを特徴とする統合メモリ管理装置。
【請求項４】
請求項１乃至請求項３のいずれか１項に記載の統合メモリ管理装置において、
前記第１アドレス変換手段と前記第２アドレス変換手段とを統合した統合アドレス変換手段を具備することを特徴とする統合メモリ管理装置。
【請求項５】
プロセッサに備えられている第１アドレス変換手段によりキャッシュメモリをアクセスするための第１論理アドレスを第１物理アドレスに変換するか、あるいは前記プロセッサ内の第２アドレス変換手段によりメインメモリをアクセスするための第２論理アドレスを第２物理アドレスに変換し、
前記第１アドレス変換手段によって前記第１論理アドレスが前記第１物理アドレスに変換された場合に、前記プロセッサに備えられているキャッシュコントローラにより、前記第１アドレス変換手段によって得られた前記第１物理アドレスに基づいて、前記キャッシュメモリに対するアクセスを制御し、前記第２アドレス変換手段によって前記第２論理アドレスが前記第２物理アドレスに変換された場合に、前記キャッシュコントローラにより、前記第２アドレス変換手段によって得られた前記第２物理アドレスに基づいて、前記メインメモリに対するアクセスを制御する
ことを特徴とする統合メモリ管理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、キャッシュメモリとメインメモリとについてのメモリ管理を行う統合メモリ管理装置及び方法に関する。
【背景技術】
【０００２】
従来において、ＮＡＮＤフラッシュTMメモリの管理機能は、ファイルシステムに実装される。
【０００３】
ＭＰＵ（Micro Processing Unit）内にキャッシュメモリが備えられており、メインメモリとしてＤＲＡＭ（Dynamic Random Access Memory）が用いられており、さらにＭＰＵがＮＡＮＤフラッシュTMメモリをアクセスする場合、従来においては以下のメモリ階層にそった動作を行う。
【０００４】
まず、ＭＰＵは、ＭＭＵ（Memory Management Unit）により、論理アドレスを物理アドレスに変換し、キャッシュメモリをアクセスする。
【０００５】
ここで、ＭＰＵは、オペレーティングシステム（ＯＳ）の仮想記憶管理により、一部のデータについて、メインメモリであるＤＲＡＭにアクセスを行う。
【０００６】
さらに、ＭＰＵは、ＮＡＮＤフラッシュTMメモリにアクセスが必要な場合に、フラッシュファイルシステム（Flash File System）により、ＮＡＮＤフラッシュTMメモリにおける不良ブロックを避ける制御、ＮＡＮＤフラッシュTMメモリの全ブロックを隔たりなくアクセスさせる制御などを行い、ＮＡＮＤフラッシュTMメモリの物理位置を決定する。
【０００７】
ＭＰＵは、決定された物理位置に基づいて、ＮＡＮＤフラッシュTMメモリをアクセスする。
【０００８】
特許発明１（特開２００１−２６６５８０号公報）においては、種類の異なる半導体メモリ装置を共通のバスに接続することを可能にする発明が開示されている。
【０００９】
この特許文献１では、パッケージの有する複数のピンは、ランダムアクセスメモリ及び不揮発性半導体メモリに共通にメモリ機能を提供する。この複数のピンの各々は、不揮発性半導体メモリの対応するピンの位置に配列されている。
【特許文献１】特開２００１−２６６５８０号公報
【発明の開示】
【発明が解決しようとする課題】
【００１０】
上述したメモリ階層を持つＭＰＵにおいては、メモリ階層の数が多くなるほど、異なる階層に含まれる動作が多くなり、異なる階層の動作間で最適化を行うことが困難である。例えば、ＭＰＵがキャッシュメモリのデータを入れ替える時に、ＮＡＮＤフラッシュTMメモリ特有の不良ブロック管理を行うなどのような制御は、それぞれの動作が異なるメモリ階層に属するため、実現困難である。
【００１１】
本発明は、上記実情に鑑みてなされたものであり、メモリのアクセスに関するメモリ階層の数を少なくし、メモリアクセス動作の最適化を容易に実現可能とするための統合メモリ管理装置及び方法を提供することを目的とする。
【課題を解決するための手段】
【００１２】
本願発明の一態様によれば、キャッシュメモリをアクセスするための第１論理アドレスを、第１物理アドレスに変換し、プロセッサに備えられる第１アドレス変換手段と、メインメモリをアクセスするための第２論理アドレスを、第２物理アドレスに変換し、プロセッサに備えられる第２アドレス変換手段と、第１アドレス変換手段によって第１論理アドレスが第１物理アドレスに変換された場合に、第１物理アドレスに基づいてキャッシュメモリに対するアクセスを制御し、第２アドレス変換手段によって第２論理アドレスが第２物理アドレスに変換された場合に、第２物理アドレスに基づいてメインメモリに対するアクセスを制御し、プロセッサに備えられるキャッシュコントローラとを具備する。
【発明の効果】
【００１３】
本発明においては、メモリのアクセスに関するメモリ階層の数を削減することができ、メモリアクセスの最適化を容易に実現することができる。
【発明を実施するための最良の形態】
【００１４】
以下、図面を参照しながら本発明の各実施の形態について説明する。なお、以下の説明において、略同一の機能及び構成を有する構成要素については、同一符号を付し、重複説明は必要な場合にのみ行う。
【００１５】
（第１の実施の形態）
本実施の形態においては、ＭＰＵにおけるＭＭＵ及びキャッシュコントローラに、メインメモリ用のＭＭＵを統合した統合メモリ管理装置について説明する。
【００１６】
図１は、本実施の形態に係る統合メモリ管理装置の一例を示すブロック図である。なお、本実施の形態においては、メインメモリがＮＡＮＤフラッシュTMメモリの場合を例として説明するが、他の記憶装置を用いることもできる。また、本実施の形態において、アクセスとは、データ（プログラムであってもよい）の読み出しと書き込みの双方を含むとする。
【００１７】
ＭＰＵ１は、統合メモリ管理装置２と、キャッシュメモリ３とを具備し、ＮＡＮＤフラッシュTMメインメモリ４をアクセスする。
【００１８】
ＮＡＮＤフラッシュTMメインメモリ４は、内部に、アドレス変換テーブル５、書き換え回数データ６を具備する。
【００１９】
アドレス変換テーブル５は、ＮＡＮＤフラッシュTMメインメモリ４における各ブロックの論理アドレスと物理アドレスとを関連付けたデータである。
【００２０】
書き換え回数データ６は、ＮＡＮＤフラッシュTMメインメモリ４の各ブロックの書き換え回数を表す。
【００２１】
統合メモリ管理装置２は、ＭＭＵ７、キャッシュコントローラ８、メインメモリ用ＭＭＵ９、アクセス履歴格納部１０を具備する。また、キャッシュコントローラ８は、第１のキャッシュコントローラ８ａと第２のキャッシュコントローラ８ｂとを具備する。
【００２２】
ＭＭＵ７は、キャッシュメモリ３の論理アドレスを物理アドレスに変換する。
【００２３】
キャッシュメモリ３は、タグ格納領域３ａと、ライン格納領域３ｂとを持つ。本実施の形態において、ラインサイズは、ＮＡＮＤフラッシュTMメインメモリ４のブロックと同じサイズ（例えば２５６キロバイト）か、ＮＡＮＤフラッシュTMメインメモリ４のブロックの倍数となるサイズとする。これにより、ＮＡＮＤフラッシュTMメインメモリ４のブロックをキャッシュメモリ３に移動する動作、及びキャッシュメモリ３のブロックをＮＡＮＤフラッシュTMメインメモリ４に移動する動作を簡素化できる。本実施の形態において、キャッシュメモリ３は、例えばライトバック型であるとする。
【００２４】
メインメモリ用ＭＭＵ９は、ＮＡＮＤフラッシュTMメインメモリ４のアドレス変換テーブル５のうちの一部又は全部のデータを格納し、ＮＡＮＤフラッシュTMメインメモリ４のブロックの論理アドレスを物理アドレスに変換する。
【００２５】
アクセス履歴格納部（NAND Information Registers）１０は、ＮＡＮＤフラッシュTMメインメモリ４のブロックのアクセス状態の履歴を格納するとする。本実施の形態において、アクセス履歴格納部１０は、ＮＡＮＤフラッシュTMメインメモリ４における各ブロックの書き換え回数データ６のうちの一部又は全部のブロックについての書き換え回数を格納する。
【００２６】
例えば、各ブロックの書き換え回数は４バイトで記録され、各ブロックサイズは２５６キロバイトとする。この場合において、ＮＡＮＤフラッシュTMメインメモリ４の記憶容量が１メガバイトであるとすると、ＮＡＮＤフラッシュTMメインメモリ４に記憶されるブロック数は４ブロックであり、各ブロックの書き換え回数を記憶するために必要な記憶容量は１６バイトとなる。同様の場合において、ＮＡＮＤフラッシュTMメインメモリ４の記憶容量が１ギガバイトであるとすると、ＮＡＮＤフラッシュTMメインメモリ４に記憶されるブロック数は４０９６ブロックであり、各ブロックの書き換え回数を記憶するために必要な記憶容量は１６キロバイトとなる。さらに、同様の場合において、ＮＡＮＤフラッシュTMメインメモリ４の記憶容量が１６ギガバイトであるとすると、各ブロックの書き換え回数を記憶するために必要な記憶容量は６４キロバイトとなる。
【００２７】
例えば、ＮＡＮＤフラッシュTMメインメモリ４の記憶容量が例えば１２８ギガバイトなどのように大きくなった場合、アクセス履歴格納部１０は、ＮＡＮＤフラッシュTMメインメモリ４における書き換え回数データ６の一部を格納する。このように、アクセス履歴格納部１０は、書き換え回数データ６の一部を格納するため、書き換え回数にはｐｏｓが付されている。ｐｏｓはキャッシュタグと同様の手法で使用される。
【００２８】
キャッシュコントローラ８ａは、キャッシュメモリ３に対するアクセスを制御する。
【００２９】
より具体的には、キャッシュコントローラ８ａは、キャッシュメモリ３からブロックを読み出す場合には、ＭＭＵ７から得られた物理アドレスにそって、キャッシュメモリ３における物理アドレスに対応するブロックを読み出す。
【００３０】
キャッシュコントローラ８ａは、キャッシュメモリ３がリード・オンリー（Read Only）の場合（例えば、ＮＡＮＤフラッシュTMメインメモリ４から読み出したブロックをキャッシュメモリ３に書き込むのみであり、ＭＰＵ１からキャッシュラインへの書き込みがない場合）、ＮＡＮＤフラッシュTMメインメモリ４から読み出したブロックをキャッシュメモリ３に上書きする。
【００３１】
キャッシュコントローラ８ａは、ＭＰＵ１からキャッシュライン３ｂにデータの書き込みがあった場合（例えば、プログラムを実行して得られたデータがキャッシュメモリ３に書き込まれる場合）、キャッシュライン３ｂのデータがＮＡＮＤフラッシュTMメインメモリ４にライト・バック（Write Back）されることを考慮し、アクセス履歴格納部１０のデータとメインメモリ用ＭＭＵ９による変換後の物理アドレスとに基づいて、ＮＡＮＤフラッシュTMメインメモリ４において書き換え回数が所定数より少ないブロックが書き換えられるように、上書きされる位置を選択し、選択された位置に対応するキャッシュライン３ｂに上書きを行う。
【００３２】
また、キャッシュコントローラ８ａは、キャッシュメモリ３のキャッシュライン３ｂの書き換えがあった場合に、この書き換えた内容に応じてメインメモリ用ＭＭＵ９に格納されている論理アドレスと物理アドレスの関係を示すデータと、アクセス履歴格納部１０に記憶されている書き換え回数との内容を更新する。
【００３３】
キャッシュコントローラ８ｂは、ＮＡＮＤフラッシュTMメインメモリ４に対するアクセスを制御する。キャッシュコントローラ８ｂは、ＮＡＮＤフラッシュTMメインメモリ４のアドレス変換テーブル５の一部又は全部と書き換え回数データ６の一部又は全部を、それぞれメインメモリ用ＭＭＵ９とアクセス履歴格納部１０とに格納する制御を行う。さらに、キャッシュコントローラ８ｂは、メインメモリ用ＭＭＵ９に格納されている論理アドレスと物理アドレスの関係を示すデータと、アクセス履歴格納部１０に記憶されている書き換え回数との内容を、ＮＡＮＤフラッシュTMメインメモリ４のアドレス変換テーブル５と書き換え回数データ６とに対して反映する。
【００３４】
より具体的には、キャッシュコントローラ８ｂは、キャッシュメモリ３に読み出し対象のデータが記憶されておらず、ＮＡＮＤフラッシュTMメインメモリ４からデータの読み出しを行う場合に、ＮＡＮＤフラッシュTMメインメモリ４からブロックを読み出す。さらに、キャッシュコントローラ８ｂは、読み出したブロックについて、アドレス変換テーブル５からアドレス変換のためのデータを読み出し、書き換え回数データ６から書き換え回数を読み出し、それぞれメインメモリ用ＭＭＵ９とアクセス履歴格納部１０に格納する。
【００３５】
キャッシュコントローラ８ｂは、メインメモリ用ＭＭＵ９により論理アドレスを物理アドレスに変換し、キャッシュライン３ｂにおける書き込み対象のブロックをＮＡＮＤフラッシュTMメインメモリ４に書き込む。さらに、キャッシュコントローラ８ｂは、書き込み対象のブロックについて、メインメモリ用ＭＭＵ９から論理アドレスと物理アドレスとの関係を示すデータを読み出し、アクセス履歴格納部１０から書き換え回数を読み出し、それぞれアドレス変換テーブル５と書き換え回数データ６に格納する。
【００３６】
図２は、本実施の形態に係る統合メモリ管理装置２によるメモリアクセスのメモリ階層の第１例を示す図である。
【００３７】
この例においては、まず、統合メモリ管理装置２が、論理アドレスを受け、この論理アドレスからアクセス先となるＮＡＮＤフラッシュTMメインメモリ４の物理位置を決定する。この図２の例において、統合メモリ管理装置２は、このメモリ階層にて、書き込み回数が所定数以下のブロックをアクセスさせる制御を行う。
【００３８】
そして、統合メモリ管理装置２は、決定された物理位置に基づいて、ＮＡＮＤフラッシュTMメインメモリ４をアクセスする。
【００３９】
図３は、本実施の形態に係る統合メモリ管理装置２によるメモリアクセスのメモリ階層の第２例を示す図である。
【００４０】
この例においては、まず、統合メモリ管理装置２のＭＭＵ７が、論理アドレスを物理アドレスに変換する。
【００４１】
次に、統合メモリ管理装置２は、この物理アドレスからアクセス先となるＮＡＮＤフラッシュTMメインメモリ４の物理位置を決定する。この図３の例において、統合メモリ管理装置２は、このメモリ階層にて、書き込み回数が所定数以下のブロックをアクセスさせる制御を行う。
【００４２】
そして、統合メモリ管理装置２は、決定された物理位置に基づいて、ＮＡＮＤフラッシュTMメインメモリ４をアクセスする。
【００４３】
図４は、本実施の形態に係る統合メモリ管理装置２を備えたＭＰＵ１におけるキャッシュメモリ３の上書き動作の一例を示すフローチャートである。
【００４４】
ステップＳ１において、キャッシュコントローラ８ｂは、ＭＰＵ１によって使用されるＮＡＮＤフラッシュTMメインメモリ４のブロックの一部（最初は、先頭から１ギガバイト分などでもよい）を読み出し、キャッシュコントローラ８ａは、読み出されたブロックを、キャッシュメモリ３のキャッシュライン３ｂに書き込む。
【００４５】
ステップＳ２において、キャッシュコントローラ８ｂは、ＮＡＮＤフラッシュTMメインメモリ４に保管されている書き換え回数データ６の一部（キャッシュメモリ３に格納されたブロックに対応する書き換え回数など。なお、最初は、先頭から１ギガバイト分などでもよい）を、ＭＰＵ１内のアクセス履歴格納部１０にコピーする。
【００４６】
ステップＳ３において、キャッシュコントローラ８ｂは、ＮＡＮＤフラッシュTMメインメモリ４に保管されているアドレス変換テーブル５の一部（キャッシュメモリ３に格納されたブロックに対応する論理アドレスと物理アドレスとの関係を示すデータなど。なお、最初は、先頭から１ギガバイト分などでもよい）を、ＭＰＵ１内のメインメモリ用ＭＭＵ９にコピーする。
【００４７】
なお、このステップＳ１〜Ｓ３は、自由な順序で実行されてよく、並列に実行されてもよい。
【００４８】
ステップＳ４において、ＭＰＵ１は、キャッシュメモリ３上のプログラムを実行する。
【００４９】
ステップＳ５において、ＭＰＵ１は、キャッシュライン３ａの上書きの種別を判断する。
【００５０】
ＭＰＵ１にとってキャッシュメモリ３がRead Onlyの場合、ステップＳ６において、キャッシュコントローラ８ｂは、ＭＰＵ１によって使用されるＮＡＮＤフラッシュTMメインメモリ４のブロックを読み出す。
【００５１】
さらに、ステップＳ７において、キャッシュコントローラ８ａは、読み出されたブロックを、キャッシュメモリ３のキャッシュライン３ｂに格納する。
【００５２】
キャッシュライン３ｂへの書き込みが、ＭＰＵ１からキャッシュライン３ｂへの上書きの場合、ステップＳ８において、キャッシュコントローラ８ａは、アクセス履歴格納部１０のデータとメインメモリ用ＭＭＵ９に格納されている論理アドレスと物理アドレスの関係を示すデータとに基づいて、書き換え回数が所定値より少ないブロックの位置又は一番書き換えの少ないブロックの位置を選択する。
【００５３】
ステップＳ９において、キャッシュコントローラ８ａは、選択された位置に対応するキャッシュライン３ｂへデータを上書きする。
【００５４】
ステップＳ１０において、メインメモリ用ＭＭＵ９は、上書き後のキャッシュライン３ｂに対応するように、論理アドレスと物理アドレスとの関係を示すデータを更新し、アクセス履歴格納部１０は、書き換えられたブロックについての書き換え回数を更新する。
【００５５】
ステップＳ１１において、キャッシュコントローラ８ｂは、メインメモリ用ＭＭＵ９に格納されている論理アドレスと物理アドレスとの関係を示すデータと整合するように、ＮＡＮＤフラッシュTMメインメモリ４のアドレス変換テーブル５を更新し、また、アクセス履歴格納部１０の書き換え回数と整合するように、ＮＡＮＤフラッシュTMメインメモリ４の書き換え回数データ６を更新する。例えば、ＮＡＮＤフラッシュTMメインメモリ４の書き換え回数データの更新は、ＭＰＵ１の電源が切られるとき、又は、ＭＰＵ１のアクセス履歴格納部１０の書き換え時に、実行される。
【００５６】
本実施の形態において、統合メモリ管理装置２は、書き換え回数に基づいて書き換えを行うブロックの位置を選択している。しかしながら、これに代えて、統合メモリ管理装置２は、不良ブロックを避ける制御、ＮＡＮＤフラッシュTMメインメモリ４の全ブロックを隔たりなくアクセスさせる制御を行うとしてもよい。この場合、アクセス履歴格納部１０には、不良ブロックの発生位置、ＮＡＮＤフラッシュTMメインメモリ４の書き換え位置の分布などが記憶される。また、統合メモリ管理装置２は、各種の制御を自由に組み合わせて、書き換えを行うブロックの位置を選択するとしてもよい。
【００５７】
本実施の形態において、統合メモリ管理装置２は、キャッシュメモリ３のデータ入れ替え時に、ＮＡＮＤフラッシュTMメインメモリ４のガーベージコレクション処理又は消去のための制御を行うとしてもよい。
【００５８】
本実施の形態において、メインメモリ用ＭＭＵ９とアクセス履歴格納部１０とのうち、少なくとも一方について、二次キャッシュメモリを用いてデータを格納するとしてもよい。すなわち、メインメモリ用ＭＭＵ９における論理アドレスと物理アドレスとの関係を示すデータは、二次キャッシュメモリに格納されるとしてもよく、また、アクセス履歴格納部１０における書き込み回数は、二次キャッシュメモリに格納されるとしてもよい。
【００５９】
本実施の形態に係るＭＰＵ１の統合メモリ管理装置２においては、アクセス履歴格納部１０に格納されているデータを用いて書き込みを行うＮＡＮＤフラッシュTMメインメモリ４の位置を選択し、ライトバックするアルゴリズムを採用し、このアルゴリズムを実行するプログラムを用いることができる。例えば、書き換え回数の多いブロックの書き換えを避けるなどのような高度なアルゴリズムを用いることができる。
【００６０】
以上説明した本実施の形態に係る統合メモリ管理装置２においては、ＭＰＵ１におけるＭＭＵ７、キャッシュコントローラ８ａ，８ｂ、キャッシュメモリ３、メインメモリ用ＭＭＵ９、アクセス履歴格納部１０が統合された構成が採用されている。本実施の形態においては、ＮＡＮＤフラッシュTMメインメモリ４のメモリマッピング管理がＭＰＵ１の統合メモリ管理装置２で実行されるアーキテクチャが実現されている。
【００６１】
これにより、メモリ階層において、オーバーヘッドの大きい階層を削除することができる。
【００６２】
本実施の形態においては、多層化されていたメモリ階層を単純化することができ、アクセスに必要な時間、製造時に必要な時間、製造時に必要な費用などの様々なコストを削減することができる。
【００６３】
本実施の形態においては、メモリ階層がシンプルになるため、プログラマはどこの階層でＭＭＵ変換、キャッシュメモリの置き換えが発生するかを把握することが容易であり、プログラム・オプティマイズを容易に行うことができる。
【００６４】
本実施の形態においては、ＭＰＵ１のキャッシュ動作とメインメモリのアクセス動作との間で最適化を容易に実現することができる。
【００６５】
（第２の実施の形態）
本実施の形態においては、上記第１の実施の形態の変形例について説明する。
【００６６】
図５は、本実施の形態に係る統合メモリ管理装置の一例を示すブロック図である。
【００６７】
ＭＰＵ１１には、本実施の形態に係る統合メモリ管理装置１２が備えられている。統合ＭＭＵ１３は、上記第１の実施の形態に係るＭＭＵ７とメインメモリ用ＭＭＵ９とを統合した機能を実現する。
【００６８】
本実施の形態において、キャッシュメモリ３のタグは、プロセスＩＤと論理アドレスでキャッシュメモリ３を管理するために用いられる。
【００６９】
本実施の形態においては、プロセッサであるＭＰＵ１１の統合ＭＭＵ１３により、ＮＡＮＤフラッシュTMメインメモリ４のメモリマッピング管理が行われ、各種メモリの一括管理が行われる。
【００７０】
以上説明した本実施の形態においては、上記第１の実施の形態に係るＭＭＵ７とメインメモリ用ＭＭＵ９とを統合することにより、構成がシンプルになり、アクセスに必要な時間コストや製造時に必要な経済コストなどの様々なコストを削減できる。
【００７１】
統合ＭＭＵ２４を用いることにより、キャッシュメモリ３に対するアドレス変換とＮＡＮＤフラッシュTMメインメモリ４に対するアドレス変換とを統合することができる。例えば、あるプロセスに関する記憶内容を、なるべくＮＡＮＤフラッシュTMメインメモリ４内の近い位置に記憶することにより、高速アクセスが可能となる。また、例えば、書き換え回数の少ないブロックだけを選んで一つのプロセスに割り当てることができる。
【００７２】
（第３の実施の形態）
本実施の形態においては、上記第１又は第２の実施の形態に係る統合メモリ管理装置２，１２の適用例に付いて説明する。
【００７３】
図６は、本実施の形態に係る統合メモリ管理装置の適用例を示すブロック図である。
【００７４】
例えば、ゲーム機や、カーナビゲーションシステムでは、ディスクドライブにより読み出されたデータ又はプログラムがメインメモリに一度書き込まれ、その後、このメインメモリに書き込まれたデータ又はプログラムが多回数リードされる傾向にある。本実施の形態において、統合メモリ管理装置１２は、ゲーム機に適用される場合について説明するが、カーナビゲーションシステムなどの他の装置に適用される場合も同様である。統合メモリ管理装置１２の代わりに、上記第１の実施の形態に係る統合メモリ管理装置２を用いるとしてもよい。
【００７５】
ポータブル・ゲーム・コンソール・プロセッサ１４は、グラフィクス・プロセッサ１５とプロセッサ１６とを具備する。
【００７６】
グラフィクス・プロセッサ１５、プロセッサ１６、二次キャッシュメモリ１７、ＮＡＮＤフラッシュTMメインメモリ４、ディスクドライブ１８はバス１９に接続されている。
【００７７】
プロセッサ１６は、一次キャッシュメモリ２０、二次キャッシュメモリ１７をアクセスするための二次キャッシュタグ２１、キャッシュコントローラ８、統合ＭＭＵ１３を具備する。
【００７８】
さらに、プロセッサ１６は、書き換え回数格納部１０を具備するが、この図６では省略している。なお、プロセッサ１６は、一次キャッシュメモリ２０又は二次キャッシュメモリ１７を、書き換え回数格納部１０として用いるとしてもよい。
【００７９】
キャッシュコントローラ８は、一次キャッシュメモリ２０、二次キャッシュメモリ１７へのアクセスを制御する。二次キャッシュメモリ１７には、例えば、ＤＲＡＭを用いることができる。
【００８０】
二次キャッシュメモリ１７に対するバンド幅は、ＮＡＮＤフラッシュTMメインメモリ４の１０倍程度とする。ディスクドライブ１８としては、例えば、光ディスクドライブを用いることができる。
【００８１】
本実施の形態において、ＮＡＮＤフラッシュTMメインメモリ４への書き込みは、ゲームカートリッジの交換時とし、他の時点ではＮＡＮＤフラッシュTMメインメモリ４はリードオンリーで利用されるとする。頻繁に書き込まれるデータ又はプログラムコード、頻繁に読み出されるデータ又はプログラムコードは、二次キャッシュメモリ１７に格納される。さらに頻繁に書き込まれるデータ又はプログラムコード、頻繁に読み出されるデータ又はプログラムコードは、一次キャッシュメモリ１７に格納されるとする。なお、例えば、一次キャッシュメモリ２０又は二次キャッシュメモリ１７に記憶されているデータ又はプログラムコードのうち、使用頻度の低いデータ又はプログラムコードをＮＡＮＤフラッシュTMメインメモリ４に書き込み、ＮＡＮＤフラッシュTMメインメモリ４に記憶されているデータ又はプログラムコードのうち、使用頻度の高いデータ又はプログラムコードを一次キャッシュメモリ２０又は二次キャッシュメモリ１７に記憶するとしてもよい。
【００８２】
本実施の形態では、例えば、一次キャッシュメモリ２０は６４キロバイト程度であり、二次キャッシュメモリ１７は１６〜１２８メガバイト程度であり、ＮＡＮＤフラッシュTMメインメモリ４は１ギガバイト程度であるとする。
【００８３】
例えば、グラフィクス・プロセッサ１５の処理能力は、１／１０バンド幅のＮＡＮＤフラッシュTMメインメモリ４の速度とつりあうか、その２〜３倍程度の能力とする。使用頻度の低いデータは、ＮＡＮＤフラッシュTMメインメモリ４から読み出し、使用頻度の高いデータは、一次キャッシュメモリ２０又は二次キャッシュメモリ１７から読み出すとする。
【００８４】
本実施の形態においては、キャッシュ入れ替え（キャッシュミスなど）時にＮＡＮＤフラッシュTMメインメモリ４のガーベージコレクション処理やイレースを行う、などのような最適化を実現することができるプロセッサ１６を提供することができ、高度な最適化を行うことができる。
【００８５】
なお、二次キャッシュメモリ１７のエントリーサイズを１メガバイト程度とすると、ＮＡＮＤフラッシュTMメインメモリ４との相性がよくなる。
【００８６】
本実施の形態においては、例えば２重に仮想メモリ変換が行われてオーバーヘッドが大きくなることを防止できる。
【００８７】
本実施の形態においては、プロセッサ１６に統合メモリ１３が備えられることにより、一次キャッシュメモリ２０と二次キャッシュメモリ１７とＮＡＮＤフラッシュTMメインメモリ４とを一括管理することができる。
【００８８】
そして、本実施の形態では、レジューム時に保存するデータ量を削減することができる。
【００８９】
本実施の形態においては、ＮＡＮＤフラッシュTMメインメモリ４にデータ又はプログラムを記憶することにより、ディスクドライブ１８へのアクセスを削減でき、待ち時間を削減でき、ユーザの操作性及び満足度を向上させることができる。
【００９０】
本実施の形態においては、二次キャッシュメモリ１７（ＤＲＡＭ）よりもメモリ単価の安いＮＡＮＤフラッシュTMメインメモリ４を用いることにより、より多くのデータ又はプログラムを高速にアクセスすることができる。
【図面の簡単な説明】
【００９１】
【図１】本発明の第１の実施の形態に係る統合メモリ管理装置の一例を示すブロック図。
【図２】第１の実施の形態に係る統合メモリ管理装置によるメモリアクセスのメモリ階層の第１例を示す図。
【図３】第１の実施の形態に係る統合メモリ管理装置によるメモリアクセスのメモリ階層の第２例を示す図。
【図４】第１の実施の形態に係る統合メモリ管理装置を備えたＭＰＵにおけるキャッシュメモリの上書き動作の一例を示すフローチャート。
【図５】本発明の第２の実施の形態に係る統合メモリ管理装置の一例を示すブロック図。
【図６】本発明の第３の実施の形態に係る統合メモリ管理装置の適用例を示すブロック図。
【符号の説明】
【００９２】
１，１１…ＭＰＵ、２，１２…統合メモリ管理装置、３…キャッシュメモリ、４…ＮＡＮＤフラッシュTMメインメモリ、５…アドレス変換テーブル、６…書き換え回数データ、７…ＭＭＵ、８…キャッシュメモリ、８ａ…第１のキャッシュコントローラ、８ｂ…第２のキャッシュコントローラ、９…メインメモリ用ＭＭＵ、１０…アクセス履歴格納部、１３…統合ＭＭＵ、１４…ポータブル・ゲーム・コンソール・プロセッサ、１５…グラフィクス・プロセッサ、１６…プロセッサ、１７…二次キャッシュメモリ、１８…ディスクドライブ、１９…バス、２０…一次キャッシュメモリ、２１…二次キャッシュタグ
【図１】
2008242944.tif 000003
【図２】
2008242944.tif 000004
【図３】
2008242944.tif 000005
【図４】
2008242944.tif 000006
【図５】
2008242944.tif 000007
【図６】
2008242944.tif 000008