[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

JP5032172B2 - 統合メモリ管理装置及び方法並びにデータ処理システム - Google Patents

統合メモリ管理装置及び方法並びにデータ処理システム Download PDF

Info

Publication number
JP5032172B2
JP5032172B2 JP2007084272A JP2007084272A JP5032172B2 JP 5032172 B2 JP5032172 B2 JP 5032172B2 JP 2007084272 A JP2007084272 A JP 2007084272A JP 2007084272 A JP2007084272 A JP 2007084272A JP 5032172 B2 JP5032172 B2 JP 5032172B2
Authority
JP
Japan
Prior art keywords
memory
address
cache
main memory
management device
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
Application number
JP2007084272A
Other languages
English (en)
Other versions
JP2008242944A (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.)
Toshiba Corp
Original Assignee
Toshiba 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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP2007084272A priority Critical patent/JP5032172B2/ja
Priority to US12/056,501 priority patent/US8261041B2/en
Priority to US12/236,880 priority patent/US8135900B2/en
Publication of JP2008242944A publication Critical patent/JP2008242944A/ja
Priority to US13/360,903 priority patent/US8458436B2/en
Application granted granted Critical
Publication of JP5032172B2 publication Critical patent/JP5032172B2/ja
Priority to US13/890,891 priority patent/US8738851B2/en
Active 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/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • G06F12/1045Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data 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/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • 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/10Address translation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Memory System (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Description

本発明は、キャッシュメモリとメインメモリとについてのメモリ管理を行う統合メモリ管理装置及び方法に関する。
従来において、NANDフラッシュTMメモリの管理機能は、ファイルシステムに実装される。
MPU(Micro Processing Unit)内にキャッシュメモリが備えられており、メインメモリとしてDRAM(Dynamic Random Access Memory)が用いられており、さらにMPUがNANDフラッシュTMメモリをアクセスする場合、従来においては以下のメモリ階層にそった動作を行う。
まず、MPUは、MMU(Memory Management Unit)により、論理アドレスを物理アドレスに変換し、キャッシュメモリをアクセスする。
ここで、MPUは、オペレーティングシステム(OS)の仮想記憶管理により、一部のデータについて、メインメモリであるDRAMにアクセスを行う。
さらに、MPUは、NANDフラッシュTMメモリにアクセスが必要な場合に、フラッシュファイルシステム(Flash File System)により、NANDフラッシュTMメモリにおける不良ブロックを避ける制御、NANDフラッシュTMメモリの全ブロックを隔たりなくアクセスさせる制御などを行い、NANDフラッシュTMメモリの物理位置を決定する。
MPUは、決定された物理位置に基づいて、NANDフラッシュTMメモリをアクセスする。
特許発明1(特開2001−266580号公報)においては、種類の異なる半導体メモリ装置を共通のバスに接続することを可能にする発明が開示されている。
この特許文献1では、パッケージの有する複数のピンは、ランダムアクセスメモリ及び不揮発性半導体メモリに共通にメモリ機能を提供する。この複数のピンの各々は、不揮発性半導体メモリの対応するピンの位置に配列されている。
特開2001−266580号公報
上述したメモリ階層を持つMPUにおいては、メモリ階層の数が多くなるほど、異なる階層に含まれる動作が多くなり、異なる階層の動作間で最適化を行うことが困難である。例えば、MPUがキャッシュメモリのデータを入れ替える時に、NANDフラッシュTMメモリ特有の不良ブロック管理を行うなどのような制御は、それぞれの動作が異なるメモリ階層に属するため、実現困難である。
本発明は、上記実情に鑑みてなされたものであり、メモリのアクセスに関するメモリ階層の数を少なくし、メモリアクセス動作の最適化を容易に実現可能とするための統合メモリ管理装置及び方法を提供することを目的とする。
本願発明の一態様によれば、ホストシステムのプロセッサ内に備えられる統合メモリ管理装置は、キャッシュメモリをアクセスするための第1論理アドレスを、第1物理アドレスに変換し、プロセッサに備えられる第1アドレス変換手段と、不揮発性半導体メモリであるメインメモリをアクセスするための第2論理アドレスを、第2物理アドレスに変換し、プロセッサに備えられる第2アドレス変換手段と、第1アドレス変換手段によって第1論理アドレスが第1物理アドレスに変換された場合に、第1物理アドレスに基づいてキャッシュメモリに対するアクセスを制御し、第2アドレス変換手段によって第2論理アドレスが第2物理アドレスに変換された場合に、第2物理アドレスに基づいてメインメモリに対するアクセスを制御し、プロセッサに備えられるキャッシュコントローラとを具備する。
本発明においては、メモリのアクセスに関するメモリ階層の数を削減することができ、メモリアクセスの最適化を容易に実現することができる。
以下、図面を参照しながら本発明の各実施の形態について説明する。なお、以下の説明において、略同一の機能及び構成を有する構成要素については、同一符号を付し、重複説明は必要な場合にのみ行う。
(第1の実施の形態)
本実施の形態においては、MPUにおけるMMU及びキャッシュコントローラに、メインメモリ用のMMUを統合した統合メモリ管理装置について説明する。
図1は、本実施の形態に係る統合メモリ管理装置の一例を示すブロック図である。なお、本実施の形態においては、メインメモリがNANDフラッシュTMメモリの場合を例として説明するが、他の記憶装置を用いることもできる。また、本実施の形態において、アクセスとは、データ(プログラムであってもよい)の読み出しと書き込みの双方を含むとする。
MPU1は、統合メモリ管理装置2と、キャッシュメモリ3とを具備し、NANDフラッシュTMメインメモリ4をアクセスする。
NANDフラッシュTMメインメモリ4は、内部に、アドレス変換テーブル5、書き換え回数データ6を具備する。
アドレス変換テーブル5は、NANDフラッシュTMメインメモリ4における各ブロックの論理アドレスと物理アドレスとを関連付けたデータである。
書き換え回数データ6は、NANDフラッシュTMメインメモリ4の各ブロックの書き換え回数を表す。
統合メモリ管理装置2は、MMU7、キャッシュコントローラ8、メインメモリ用MMU9、アクセス履歴格納部10を具備する。また、キャッシュコントローラ8は、第1のキャッシュコントローラ8aと第2のキャッシュコントローラ8bとを具備する。
MMU7は、キャッシュメモリ3の論理アドレスを物理アドレスに変換する。
キャッシュメモリ3は、タグ格納領域3aと、ライン格納領域3bとを持つ。本実施の形態において、ラインサイズは、NANDフラッシュTMメインメモリ4のブロックと同じサイズ(例えば256キロバイト)か、NANDフラッシュTMメインメモリ4のブロックの倍数となるサイズとする。これにより、NANDフラッシュTMメインメモリ4のブロックをキャッシュメモリ3に移動する動作、及びキャッシュメモリ3のブロックをNANDフラッシュTMメインメモリ4に移動する動作を簡素化できる。本実施の形態において、キャッシュメモリ3は、例えばライトバック型であるとする。
メインメモリ用MMU9は、NANDフラッシュTMメインメモリ4のアドレス変換テーブル5のうちの一部又は全部のデータを格納し、NANDフラッシュTMメインメモリ4のブロックの論理アドレスを物理アドレスに変換する。
アクセス履歴格納部(NAND Information Registers)10は、NANDフラッシュTMメインメモリ4のブロックのアクセス状態の履歴を格納するとする。本実施の形態において、アクセス履歴格納部10は、NANDフラッシュTMメインメモリ4における各ブロックの書き換え回数データ6のうちの一部又は全部のブロックについての書き換え回数を格納する。
例えば、各ブロックの書き換え回数は4バイトで記録され、各ブロックサイズは256キロバイトとする。この場合において、NANDフラッシュTMメインメモリ4の記憶容量が1メガバイトであるとすると、NANDフラッシュTMメインメモリ4に記憶されるブロック数は4ブロックであり、各ブロックの書き換え回数を記憶するために必要な記憶容量は16バイトとなる。同様の場合において、NANDフラッシュTMメインメモリ4の記憶容量が1ギガバイトであるとすると、NANDフラッシュTMメインメモリ4に記憶されるブロック数は4096ブロックであり、各ブロックの書き換え回数を記憶するために必要な記憶容量は16キロバイトとなる。さらに、同様の場合において、NANDフラッシュTMメインメモリ4の記憶容量が16ギガバイトであるとすると、各ブロックの書き換え回数を記憶するために必要な記憶容量は64キロバイトとなる。
例えば、NANDフラッシュTMメインメモリ4の記憶容量が例えば128ギガバイトなどのように大きくなった場合、アクセス履歴格納部10は、NANDフラッシュTMメインメモリ4における書き換え回数データ6の一部を格納する。このように、アクセス履歴格納部10は、書き換え回数データ6の一部を格納するため、書き換え回数にはposが付されている。posはキャッシュタグと同様の手法で使用される。
キャッシュコントローラ8aは、キャッシュメモリ3に対するアクセスを制御する。
より具体的には、キャッシュコントローラ8aは、キャッシュメモリ3からブロックを読み出す場合には、MMU7から得られた物理アドレスにそって、キャッシュメモリ3における物理アドレスに対応するブロックを読み出す。
キャッシュコントローラ8aは、キャッシュメモリ3がリード・オンリー(Read Only)の場合(例えば、NANDフラッシュTMメインメモリ4から読み出したブロックをキャッシュメモリ3に書き込むのみであり、MPU1からキャッシュラインへの書き込みがない場合)、NANDフラッシュTMメインメモリ4から読み出したブロックをキャッシュメモリ3に上書きする。
キャッシュコントローラ8aは、MPU1からキャッシュライン3bにデータの書き込みがあった場合(例えば、プログラムを実行して得られたデータがキャッシュメモリ3に書き込まれる場合)、キャッシュライン3bのデータがNANDフラッシュTMメインメモリ4にライト・バック(Write Back)されることを考慮し、アクセス履歴格納部10のデータとメインメモリ用MMU9による変換後の物理アドレスとに基づいて、NANDフラッシュTMメインメモリ4において書き換え回数が所定数より少ないブロックが書き換えられるように、上書きされる位置を選択し、選択された位置に対応するキャッシュライン3bに上書きを行う。
また、キャッシュコントローラ8aは、キャッシュメモリ3のキャッシュライン3bの書き換えがあった場合に、この書き換えた内容に応じてメインメモリ用MMU9に格納されている論理アドレスと物理アドレスの関係を示すデータと、アクセス履歴格納部10に記憶されている書き換え回数との内容を更新する。
キャッシュコントローラ8bは、NANDフラッシュTMメインメモリ4に対するアクセスを制御する。キャッシュコントローラ8bは、NANDフラッシュTMメインメモリ4のアドレス変換テーブル5の一部又は全部と書き換え回数データ6の一部又は全部を、それぞれメインメモリ用MMU9とアクセス履歴格納部10とに格納する制御を行う。さらに、キャッシュコントローラ8bは、メインメモリ用MMU9に格納されている論理アドレスと物理アドレスの関係を示すデータと、アクセス履歴格納部10に記憶されている書き換え回数との内容を、NANDフラッシュTMメインメモリ4のアドレス変換テーブル5と書き換え回数データ6とに対して反映する。
より具体的には、キャッシュコントローラ8bは、キャッシュメモリ3に読み出し対象のデータが記憶されておらず、NANDフラッシュTMメインメモリ4からデータの読み出しを行う場合に、NANDフラッシュTMメインメモリ4からブロックを読み出す。さらに、キャッシュコントローラ8bは、読み出したブロックについて、アドレス変換テーブル5からアドレス変換のためのデータを読み出し、書き換え回数データ6から書き換え回数を読み出し、それぞれメインメモリ用MMU9とアクセス履歴格納部10に格納する。
キャッシュコントローラ8bは、メインメモリ用MMU9により論理アドレスを物理アドレスに変換し、キャッシュライン3bにおける書き込み対象のブロックをNANDフラッシュTMメインメモリ4に書き込む。さらに、キャッシュコントローラ8bは、書き込み対象のブロックについて、メインメモリ用MMU9から論理アドレスと物理アドレスとの関係を示すデータを読み出し、アクセス履歴格納部10から書き換え回数を読み出し、それぞれアドレス変換テーブル5と書き換え回数データ6に格納する。
図2は、本実施の形態に係る統合メモリ管理装置2によるメモリアクセスのメモリ階層の第1例を示す図である。
この例においては、まず、統合メモリ管理装置2が、論理アドレスを受け、この論理アドレスからアクセス先となるNANDフラッシュTMメインメモリ4の物理位置を決定する。この図2の例において、統合メモリ管理装置2は、このメモリ階層にて、書き込み回数が所定数以下のブロックをアクセスさせる制御を行う。
そして、統合メモリ管理装置2は、決定された物理位置に基づいて、NANDフラッシュTMメインメモリ4をアクセスする。
図3は、本実施の形態に係る統合メモリ管理装置2によるメモリアクセスのメモリ階層の第2例を示す図である。
この例においては、まず、統合メモリ管理装置2のMMU7が、論理アドレスを物理アドレスに変換する。
次に、統合メモリ管理装置2は、この物理アドレスからアクセス先となるNANDフラッシュTMメインメモリ4の物理位置を決定する。この図3の例において、統合メモリ管理装置2は、このメモリ階層にて、書き込み回数が所定数以下のブロックをアクセスさせる制御を行う。
そして、統合メモリ管理装置2は、決定された物理位置に基づいて、NANDフラッシュTMメインメモリ4をアクセスする。
図4は、本実施の形態に係る統合メモリ管理装置2を備えたMPU1におけるキャッシュメモリ3の上書き動作の一例を示すフローチャートである。
ステップS1において、キャッシュコントローラ8bは、MPU1によって使用されるNANDフラッシュTMメインメモリ4のブロックの一部(最初は、先頭から1ギガバイト分などでもよい)を読み出し、キャッシュコントローラ8aは、読み出されたブロックを、キャッシュメモリ3のキャッシュライン3bに書き込む。
ステップS2において、キャッシュコントローラ8bは、NANDフラッシュTMメインメモリ4に保管されている書き換え回数データ6の一部(キャッシュメモリ3に格納されたブロックに対応する書き換え回数など。なお、最初は、先頭から1ギガバイト分などでもよい)を、MPU1内のアクセス履歴格納部10にコピーする。
ステップS3において、キャッシュコントローラ8bは、NANDフラッシュTMメインメモリ4に保管されているアドレス変換テーブル5の一部(キャッシュメモリ3に格納されたブロックに対応する論理アドレスと物理アドレスとの関係を示すデータなど。なお、最初は、先頭から1ギガバイト分などでもよい)を、MPU1内のメインメモリ用MMU9にコピーする。
なお、このステップS1〜S3は、自由な順序で実行されてよく、並列に実行されてもよい。
ステップS4において、MPU1は、キャッシュメモリ3上のプログラムを実行する。
ステップS5において、MPU1は、キャッシュライン3aの上書きの種別を判断する。
MPU1にとってキャッシュメモリ3がRead Onlyの場合、ステップS6において、キャッシュコントローラ8bは、MPU1によって使用されるNANDフラッシュTMメインメモリ4のブロックを読み出す。
さらに、ステップS7において、キャッシュコントローラ8aは、読み出されたブロックを、キャッシュメモリ3のキャッシュライン3bに格納する。
キャッシュライン3bへの書き込みが、MPU1からキャッシュライン3bへの上書きの場合、ステップS8において、キャッシュコントローラ8aは、アクセス履歴格納部10のデータとメインメモリ用MMU9に格納されている論理アドレスと物理アドレスの関係を示すデータとに基づいて、書き換え回数が所定値より少ないブロックの位置又は一番書き換えの少ないブロックの位置を選択する。
ステップS9において、キャッシュコントローラ8aは、選択された位置に対応するキャッシュライン3bへデータを上書きする。
ステップS10において、メインメモリ用MMU9は、上書き後のキャッシュライン3bに対応するように、論理アドレスと物理アドレスとの関係を示すデータを更新し、アクセス履歴格納部10は、書き換えられたブロックについての書き換え回数を更新する。
ステップS11において、キャッシュコントローラ8bは、メインメモリ用MMU9に格納されている論理アドレスと物理アドレスとの関係を示すデータと整合するように、NANDフラッシュTMメインメモリ4のアドレス変換テーブル5を更新し、また、アクセス履歴格納部10の書き換え回数と整合するように、NANDフラッシュTMメインメモリ4の書き換え回数データ6を更新する。例えば、NANDフラッシュTMメインメモリ4の書き換え回数データの更新は、MPU1の電源が切られるとき、又は、MPU1のアクセス履歴格納部10の書き換え時に、実行される。
本実施の形態において、統合メモリ管理装置2は、書き換え回数に基づいて書き換えを行うブロックの位置を選択している。しかしながら、これに代えて、統合メモリ管理装置2は、不良ブロックを避ける制御、NANDフラッシュTMメインメモリ4の全ブロックを隔たりなくアクセスさせる制御を行うとしてもよい。この場合、アクセス履歴格納部10には、不良ブロックの発生位置、NANDフラッシュTMメインメモリ4の書き換え位置の分布などが記憶される。また、統合メモリ管理装置2は、各種の制御を自由に組み合わせて、書き換えを行うブロックの位置を選択するとしてもよい。
本実施の形態において、統合メモリ管理装置2は、キャッシュメモリ3のデータ入れ替え時に、NANDフラッシュTMメインメモリ4のガーベージコレクション処理又は消去のための制御を行うとしてもよい。
本実施の形態において、メインメモリ用MMU9とアクセス履歴格納部10とのうち、少なくとも一方について、二次キャッシュメモリを用いてデータを格納するとしてもよい。すなわち、メインメモリ用MMU9における論理アドレスと物理アドレスとの関係を示すデータは、二次キャッシュメモリに格納されるとしてもよく、また、アクセス履歴格納部10における書き込み回数は、二次キャッシュメモリに格納されるとしてもよい。
本実施の形態に係るMPU1の統合メモリ管理装置2においては、アクセス履歴格納部10に格納されているデータを用いて書き込みを行うNANDフラッシュTMメインメモリ4の位置を選択し、ライトバックするアルゴリズムを採用し、このアルゴリズムを実行するプログラムを用いることができる。例えば、書き換え回数の多いブロックの書き換えを避けるなどのような高度なアルゴリズムを用いることができる。
以上説明した本実施の形態に係る統合メモリ管理装置2においては、MPU1におけるMMU7、キャッシュコントローラ8a,8b、キャッシュメモリ3、メインメモリ用MMU9、アクセス履歴格納部10が統合された構成が採用されている。本実施の形態においては、NANDフラッシュTMメインメモリ4のメモリマッピング管理がMPU1の統合メモリ管理装置2で実行されるアーキテクチャが実現されている。
これにより、メモリ階層において、オーバーヘッドの大きい階層を削除することができる。
本実施の形態においては、多層化されていたメモリ階層を単純化することができ、アクセスに必要な時間、製造時に必要な時間、製造時に必要な費用などの様々なコストを削減することができる。
本実施の形態においては、メモリ階層がシンプルになるため、プログラマはどこの階層でMMU変換、キャッシュメモリの置き換えが発生するかを把握することが容易であり、プログラム・オプティマイズを容易に行うことができる。
本実施の形態においては、MPU1のキャッシュ動作とメインメモリのアクセス動作との間で最適化を容易に実現することができる。
(第2の実施の形態)
本実施の形態においては、上記第1の実施の形態の変形例について説明する。
図5は、本実施の形態に係る統合メモリ管理装置の一例を示すブロック図である。
MPU11には、本実施の形態に係る統合メモリ管理装置12が備えられている。統合MMU13は、上記第1の実施の形態に係るMMU7とメインメモリ用MMU9とを統合した機能を実現する。
本実施の形態において、キャッシュメモリ3のタグは、プロセスIDと論理アドレスでキャッシュメモリ3を管理するために用いられる。
本実施の形態においては、プロセッサであるMPU11の統合MMU13により、NANDフラッシュTMメインメモリ4のメモリマッピング管理が行われ、各種メモリの一括管理が行われる。
以上説明した本実施の形態においては、上記第1の実施の形態に係るMMU7とメインメモリ用MMU9とを統合することにより、構成がシンプルになり、アクセスに必要な時間コストや製造時に必要な経済コストなどの様々なコストを削減できる。
統合MMU24を用いることにより、キャッシュメモリ3に対するアドレス変換とNANDフラッシュTMメインメモリ4に対するアドレス変換とを統合することができる。例えば、あるプロセスに関する記憶内容を、なるべくNANDフラッシュTMメインメモリ4内の近い位置に記憶することにより、高速アクセスが可能となる。また、例えば、書き換え回数の少ないブロックだけを選んで一つのプロセスに割り当てることができる。
(第3の実施の形態)
本実施の形態においては、上記第1又は第2の実施の形態に係る統合メモリ管理装置2,12の適用例に付いて説明する。
図6は、本実施の形態に係る統合メモリ管理装置の適用例を示すブロック図である。
例えば、ゲーム機や、カーナビゲーションシステムでは、ディスクドライブにより読み出されたデータ又はプログラムがメインメモリに一度書き込まれ、その後、このメインメモリに書き込まれたデータ又はプログラムが多回数リードされる傾向にある。本実施の形態において、統合メモリ管理装置12は、ゲーム機に適用される場合について説明するが、カーナビゲーションシステムなどの他の装置に適用される場合も同様である。統合メモリ管理装置12の代わりに、上記第1の実施の形態に係る統合メモリ管理装置2を用いるとしてもよい。
ポータブル・ゲーム・コンソール・プロセッサ14は、グラフィクス・プロセッサ15とプロセッサ16とを具備する。
グラフィクス・プロセッサ15、プロセッサ16、二次キャッシュメモリ17、NANDフラッシュTMメインメモリ4、ディスクドライブ18はバス19に接続されている。
プロセッサ16は、一次キャッシュメモリ20、二次キャッシュメモリ17をアクセスするための二次キャッシュタグ21、キャッシュコントローラ8、統合MMU13を具備する。
さらに、プロセッサ16は、書き換え回数格納部10を具備するが、この図6では省略している。なお、プロセッサ16は、一次キャッシュメモリ20又は二次キャッシュメモリ17を、書き換え回数格納部10として用いるとしてもよい。
キャッシュコントローラ8は、一次キャッシュメモリ20、二次キャッシュメモリ17へのアクセスを制御する。二次キャッシュメモリ17には、例えば、DRAMを用いることができる。
二次キャッシュメモリ17に対するバンド幅は、NANDフラッシュTMメインメモリ4の10倍程度とする。ディスクドライブ18としては、例えば、光ディスクドライブを用いることができる。
本実施の形態において、NANDフラッシュTMメインメモリ4への書き込みは、ゲームカートリッジの交換時とし、他の時点ではNANDフラッシュTMメインメモリ4はリードオンリーで利用されるとする。頻繁に書き込まれるデータ又はプログラムコード、頻繁に読み出されるデータ又はプログラムコードは、二次キャッシュメモリ17に格納される。さらに頻繁に書き込まれるデータ又はプログラムコード、頻繁に読み出されるデータ又はプログラムコードは、一次キャッシュメモリ17に格納されるとする。なお、例えば、一次キャッシュメモリ20又は二次キャッシュメモリ17に記憶されているデータ又はプログラムコードのうち、使用頻度の低いデータ又はプログラムコードをNANDフラッシュTMメインメモリ4に書き込み、NANDフラッシュTMメインメモリ4に記憶されているデータ又はプログラムコードのうち、使用頻度の高いデータ又はプログラムコードを一次キャッシュメモリ20又は二次キャッシュメモリ17に記憶するとしてもよい。
本実施の形態では、例えば、一次キャッシュメモリ20は64キロバイト程度であり、二次キャッシュメモリ17は16〜128メガバイト程度であり、NANDフラッシュTMメインメモリ4は1ギガバイト程度であるとする。
例えば、グラフィクス・プロセッサ15の処理能力は、1/10バンド幅のNANDフラッシュTMメインメモリ4の速度とつりあうか、その2〜3倍程度の能力とする。使用頻度の低いデータは、NANDフラッシュTMメインメモリ4から読み出し、使用頻度の高いデータは、一次キャッシュメモリ20又は二次キャッシュメモリ17から読み出すとする。
本実施の形態においては、キャッシュ入れ替え(キャッシュミスなど)時にNANDフラッシュTMメインメモリ4のガーベージコレクション処理やイレースを行う、などのような最適化を実現することができるプロセッサ16を提供することができ、高度な最適化を行うことができる。
なお、二次キャッシュメモリ17のエントリーサイズを1メガバイト程度とすると、NANDフラッシュTMメインメモリ4との相性がよくなる。
本実施の形態においては、例えば2重に仮想メモリ変換が行われてオーバーヘッドが大きくなることを防止できる。
本実施の形態においては、プロセッサ16に統合メモリ13が備えられることにより、一次キャッシュメモリ20と二次キャッシュメモリ17とNANDフラッシュTMメインメモリ4とを一括管理することができる。
そして、本実施の形態では、レジューム時に保存するデータ量を削減することができる。
本実施の形態においては、NANDフラッシュTMメインメモリ4にデータ又はプログラムを記憶することにより、ディスクドライブ18へのアクセスを削減でき、待ち時間を削減でき、ユーザの操作性及び満足度を向上させることができる。
本実施の形態においては、二次キャッシュメモリ17(DRAM)よりもメモリ単価の安いNANDフラッシュTMメインメモリ4を用いることにより、より多くのデータ又はプログラムを高速にアクセスすることができる。
本発明の第1の実施の形態に係る統合メモリ管理装置の一例を示すブロック図。 第1の実施の形態に係る統合メモリ管理装置によるメモリアクセスのメモリ階層の第1例を示す図。 第1の実施の形態に係る統合メモリ管理装置によるメモリアクセスのメモリ階層の第2例を示す図。 第1の実施の形態に係る統合メモリ管理装置を備えたMPUにおけるキャッシュメモリの上書き動作の一例を示すフローチャート。 本発明の第2の実施の形態に係る統合メモリ管理装置の一例を示すブロック図。 本発明の第3の実施の形態に係る統合メモリ管理装置の適用例を示すブロック図。
符号の説明
1,11…MPU、2,12…統合メモリ管理装置、3…キャッシュメモリ、4…NANDフラッシュTMメインメモリ、5…アドレス変換テーブル、6…書き換え回数データ、7…MMU、8…キャッシュメモリ、8a…第1のキャッシュコントローラ、8b…第2のキャッシュコントローラ、9…メインメモリ用MMU、10…アクセス履歴格納部、13…統合MMU、14…ポータブル・ゲーム・コンソール・プロセッサ、15…グラフィクス・プロセッサ、16…プロセッサ、17…二次キャッシュメモリ、18…ディスクドライブ、19…バス、20…一次キャッシュメモリ、21…二次キャッシュタグ

Claims (7)

  1. キャッシュメモリをアクセスするための第1論理アドレスを、第1物理アドレスに変換し、ホストシステムのプロセッサに備えられる第1アドレス変換手段と、
    不揮発性半導体メモリであるメインメモリをアクセスするための第2論理アドレスを、第2物理アドレスに変換し、前記プロセッサに備えられる第2アドレス変換手段と、
    前記第1アドレス変換手段によって前記第1論理アドレスが前記第1物理アドレスに変換された場合に、前記第1物理アドレスに基づいて前記キャッシュメモリに対するアクセスを制御し、前記第2アドレス変換手段によって前記第2論理アドレスが前記第2物理アドレスに変換された場合に、前記第2物理アドレスに基づいて前記メインメモリに対するアクセスを制御し、前記プロセッサに備えられるキャッシュコントローラと
    を具備し、
    前記プロセッサ内に備えられる統合メモリ管理装置。
  2. 請求項1記載の統合メモリ管理装置において、
    前記メインメモリに対するアクセス履歴データを格納する履歴格納手段を更に具備し、
    前記キャッシュコントローラは、前記履歴格納手段に格納されている前記アクセス履歴データに基づいて、前記メインメモリにおける記憶位置を決定する
    ことを特徴とする統合メモリ管理装置。
  3. 請求項1又は請求項2記載の統合メモリ管理装置において、
    前記第2アドレス変換手段は、前記メインメモリに記憶されているアドレス変換テーブルの一部を格納しており、
    前記アクセス履歴格納手段は、前記メインメモリに記憶されている書き換え回数データの一部を格納しており、
    前記キャッシュコントローラは、前記書き換え回数データにおいて、書き換え回数が所定回数より少ない位置を選択し、選択された位置にデータを記憶するよう制御する
    ことを特徴とする統合メモリ管理装置。
  4. 請求項1乃至請求項3のいずれか1項に記載の統合メモリ管理装置において、
    前記第1アドレス変換手段と前記第2アドレス変換手段とを統合した統合アドレス変換手段を具備することを特徴とする統合メモリ管理装置。
  5. 請求項1乃至請求項4のいずれか1項に記載の統合メモリ管理装置において、
    前記キャッシュメモリのラインサイズは、前記不揮発性半導体メモリであるメインメモリのブロックサイズと同じ又はその整数倍であることを特徴とする統合メモリ管理装置。
  6. ホストシステムのプロセッサに備えられている統合メモリ管理装置の第1アドレス変換手段によりキャッシュメモリをアクセスするための第1論理アドレスを第1物理アドレスに変換するか、あるいは前記プロセッサ内の前記統合メモリ管理装置の第2アドレス変換手段によりメインメモリをアクセスするための第2論理アドレスを第2物理アドレスに変換し、
    前記第1アドレス変換手段によって前記第1論理アドレスが前記第1物理アドレスに変換された場合に、前記プロセッサに備えられている前記統合メモリ管理装置のキャッシュコントローラにより、前記第1アドレス変換手段によって得られた前記第1物理アドレスに基づいて、前記キャッシュメモリに対するアクセスを制御し、前記第2アドレス変換手段によって前記第2論理アドレスが前記第2物理アドレスに変換された場合に、前記キャッシュコントローラにより、前記第2アドレス変換手段によって得られた前記第2物理アドレスに基づいて、前記メインメモリに対するアクセスを制御する
    ことを特徴とする統合メモリ管理方法。
  7. データ処理システムにおいて、
    統合メモリ管理装置を内蔵するプロセッサと、
    キャッシュメモリと、
    不揮発性半導体メモリであるメインメモリと、
    記憶装置と
    を具備し、
    前記記憶装置のデータ又はプログラムは、前記メインメモリに書き込まれ、
    前記統合メモリ管理装置は、
    前記キャッシュメモリをアクセスするための第1論理アドレスを、第1物理アドレスに変換する第1アドレス変換手段と、
    前記メインメモリをアクセスするための第2論理アドレスを、第2物理アドレスに変換する第2アドレス変換手段と、
    前記第1アドレス変換手段によって前記第1論理アドレスが前記第1物理アドレスに変換された場合に、前記第1物理アドレスに基づいて前記キャッシュメモリに対するアクセスを制御し、前記第2アドレス変換手段によって前記第2論理アドレスが前記第2物理アドレスに変換された場合に、前記第2物理アドレスに基づいて前記メインメモリに対するアクセスを制御するキャッシュコントローラと
    を具備する
    ことを特徴とするデータ処理システム。
JP2007084272A 2007-03-28 2007-03-28 統合メモリ管理装置及び方法並びにデータ処理システム Active JP5032172B2 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2007084272A JP5032172B2 (ja) 2007-03-28 2007-03-28 統合メモリ管理装置及び方法並びにデータ処理システム
US12/056,501 US8261041B2 (en) 2007-03-28 2008-03-27 Memory management device for accessing cache memory or main memory
US12/236,880 US8135900B2 (en) 2007-03-28 2008-09-24 Integrated memory management and memory management method
US13/360,903 US8458436B2 (en) 2007-03-28 2012-01-30 Device and memory system for memory management using access frequency information
US13/890,891 US8738851B2 (en) 2007-03-28 2013-05-09 Device and memory system for swappable memory

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007084272A JP5032172B2 (ja) 2007-03-28 2007-03-28 統合メモリ管理装置及び方法並びにデータ処理システム

Publications (2)

Publication Number Publication Date
JP2008242944A JP2008242944A (ja) 2008-10-09
JP5032172B2 true JP5032172B2 (ja) 2012-09-26

Family

ID=39796283

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007084272A Active JP5032172B2 (ja) 2007-03-28 2007-03-28 統合メモリ管理装置及び方法並びにデータ処理システム

Country Status (2)

Country Link
US (1) US8261041B2 (ja)
JP (1) JP5032172B2 (ja)

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8135900B2 (en) 2007-03-28 2012-03-13 Kabushiki Kaisha Toshiba Integrated memory management and memory management method
JP5171448B2 (ja) * 2007-07-31 2013-03-27 キヤノン株式会社 画像形成装置及びその制御方法
TWI370969B (en) 2008-07-09 2012-08-21 Phison Electronics Corp Data accessing method, and storage system and controller using the same
CN101673245B (zh) 2008-09-09 2016-02-03 株式会社东芝 包括存储器管理装置的信息处理装置和存储器管理方法
US8291192B2 (en) * 2008-10-30 2012-10-16 Kyocera Document Solutions, Inc. Memory management system
JP2010165251A (ja) * 2009-01-16 2010-07-29 Toshiba Corp 情報処理装置及びプロセッサ並びに情報処理方法
CN102473140B (zh) 2009-07-17 2015-05-13 株式会社东芝 存储器管理装置
JP2011186555A (ja) * 2010-03-04 2011-09-22 Toshiba Corp メモリ管理装置及び方法
JP2011186561A (ja) * 2010-03-04 2011-09-22 Toshiba Corp メモリ管理装置
JP2011186562A (ja) * 2010-03-04 2011-09-22 Toshiba Corp メモリ管理装置及び方法
JP2011186559A (ja) * 2010-03-04 2011-09-22 Toshiba Corp メモリ管理装置
JP2011118469A (ja) * 2009-11-30 2011-06-16 Toshiba Corp メモリ管理装置およびメモリ管理方法
JP2011128792A (ja) 2009-12-16 2011-06-30 Toshiba Corp メモリ管理装置
JP2011145838A (ja) * 2010-01-13 2011-07-28 Toshiba Corp 記憶装置管理装置および記憶装置の管理方法
JP2012033047A (ja) 2010-07-30 2012-02-16 Toshiba Corp 情報処理装置、メモリ管理装置、メモリ管理方法、及びプログラム
JP2012033001A (ja) 2010-07-30 2012-02-16 Toshiba Corp 情報処理装置および情報処理方法
JP2012173870A (ja) * 2011-02-18 2012-09-10 Toshiba Corp 半導体装置及びメモリ保護方法
US8909850B2 (en) * 2011-03-10 2014-12-09 Deere & Company Memory life extension method and apparatus
US8930647B1 (en) 2011-04-06 2015-01-06 P4tents1, LLC Multiple class memory systems
US9164679B2 (en) 2011-04-06 2015-10-20 Patents1, Llc System, method and computer program product for multi-thread operation involving first memory of a first memory class and second memory of a second memory class
US9170744B1 (en) 2011-04-06 2015-10-27 P4tents1, LLC Computer program product for controlling a flash/DRAM/embedded DRAM-equipped system
US9176671B1 (en) 2011-04-06 2015-11-03 P4tents1, LLC Fetching data between thread execution in a flash/DRAM/embedded DRAM-equipped system
US9158546B1 (en) 2011-04-06 2015-10-13 P4tents1, LLC Computer program product for fetching from a first physical memory between an execution of a plurality of threads associated with a second physical memory
US9417754B2 (en) 2011-08-05 2016-08-16 P4tents1, LLC User interface system, method, and computer program product
KR101596606B1 (ko) * 2011-08-19 2016-03-07 가부시끼가이샤 도시바 정보 프로세싱 장치, 정보 프로세싱 장치를 제어하는 방법, 제어 도구를 저장하는 비일시적 기록 매체, 호스트 디바이스, 성능 평가 도구를 저장하는 비일시적 기록 매체, 및 외부 메모리 디바이스를 위한 성능 평가 방법
US20130091321A1 (en) * 2011-10-11 2013-04-11 Cisco Technology, Inc. Method and apparatus for utilizing nand flash in a memory system hierarchy
US10394707B2 (en) 2014-11-25 2019-08-27 Hewlett Packard Enterprise Development Lp Memory controller with memory resource memory management
CN109308270B (zh) * 2018-09-04 2021-07-23 飞腾技术(长沙)有限公司 一种加速虚实地址转换的方法及装置
KR20220032808A (ko) 2020-09-08 2022-03-15 삼성전자주식회사 프로세싱-인-메모리, 메모리 액세스 방법 및 메모리 액세스 장치

Family Cites Families (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US600006A (en) * 1898-03-01 Lajljtllni
JP2647321B2 (ja) * 1991-12-19 1997-08-27 株式会社東芝 不揮発性半導体記憶装置及びこれを用いた記憶システム
JPH07146820A (ja) * 1993-04-08 1995-06-06 Hitachi Ltd フラッシュメモリの制御方法及び、それを用いた情報処理装置
JPH06349286A (ja) * 1993-06-04 1994-12-22 Matsushita Electric Ind Co Ltd フラッシュメモリ用書き込み制御方法および制御装置
US6000006A (en) 1997-08-25 1999-12-07 Bit Microsystems, Inc. Unified re-map and cache-index table with dual write-counters for wear-leveling of non-volatile flash RAM mass storage
JP2000122929A (ja) * 1998-10-13 2000-04-28 Matsushita Electric Ind Co Ltd 情報処理装置
JP2000163313A (ja) * 1998-11-30 2000-06-16 Ricoh Co Ltd プログラム読出し制御装置およびシステム
US7257714B1 (en) * 1999-10-19 2007-08-14 Super Talent Electronics, Inc. Electronic data storage medium with fingerprint verification capability
US7660941B2 (en) 2003-09-10 2010-02-09 Super Talent Electronics, Inc. Two-level RAM lookup table for block and page allocation and wear-leveling in limited-write flash-memories
JP4439096B2 (ja) * 2000-08-28 2010-03-24 株式会社東芝 メモリカード及び同カードに適用されるアドレス変換方法
US7610438B2 (en) 2000-01-06 2009-10-27 Super Talent Electronics, Inc. Flash-memory card for caching a hard disk drive with data-area toggling of pointers stored in a RAM lookup table
KR100383774B1 (ko) 2000-01-26 2003-05-12 삼성전자주식회사 공통 인터페이스 방식의 메모리 장치들을 구비한 시스템
JP4123368B2 (ja) * 2003-06-26 2008-07-23 日本電気株式会社 情報処理装置
US7173863B2 (en) * 2004-03-08 2007-02-06 Sandisk Corporation Flash controller cache architecture
KR101085406B1 (ko) * 2004-02-16 2011-11-21 삼성전자주식회사 불 휘발성 메모리를 제어하기 위한 컨트롤러
US7680977B2 (en) 2004-02-26 2010-03-16 Super Talent Electronics, Inc. Page and block management algorithm for NAND flash
US20110029723A1 (en) 2004-08-06 2011-02-03 Super Talent Electronics, Inc. Non-Volatile Memory Based Computer Systems
JP2006127245A (ja) * 2004-10-29 2006-05-18 Ricoh Co Ltd 電子機器システム
WO2006098212A1 (ja) * 2005-03-15 2006-09-21 Matsushita Electric Industrial Co., Ltd. メモリコントローラ、不揮発性記憶装置、不揮発性記憶システム、及びデータ書き込み方法
US7519754B2 (en) 2005-12-28 2009-04-14 Silicon Storage Technology, Inc. Hard disk drive cache memory and playback device
US7512767B2 (en) * 2006-01-04 2009-03-31 Sony Ericsson Mobile Communications Ab Data compression method for supporting virtual memory management in a demand paging system
US7716411B2 (en) 2006-06-07 2010-05-11 Microsoft Corporation Hybrid memory device with single interface
JP4940824B2 (ja) * 2006-08-18 2012-05-30 富士通セミコンダクター株式会社 不揮発性半導体メモリ
US20080140918A1 (en) 2006-12-11 2008-06-12 Pantas Sutardja Hybrid non-volatile solid state memory system
KR100881669B1 (ko) 2006-12-18 2009-02-06 삼성전자주식회사 비휘발성 데이터 저장장치의 정적 데이터 영역 검출 방법,마모도 평준화 방법 및 데이터 유닛 병합 방법과 그 장치
US7596643B2 (en) 2007-02-07 2009-09-29 Siliconsystems, Inc. Storage subsystem with configurable buffer
US7870446B2 (en) 2008-02-29 2011-01-11 Kabushiki Kaisha Toshiba Information processing apparatus and nonvolatile semiconductor memory drive
CN102272739A (zh) 2009-03-24 2011-12-07 株式会社日立制作所 存储装置及其数据控制方法
US7948798B1 (en) 2009-07-22 2011-05-24 Marvell International Ltd. Mixed multi-level cell and single level cell storage device

Also Published As

Publication number Publication date
US8261041B2 (en) 2012-09-04
US20080244165A1 (en) 2008-10-02
JP2008242944A (ja) 2008-10-09

Similar Documents

Publication Publication Date Title
JP5032172B2 (ja) 統合メモリ管理装置及び方法並びにデータ処理システム
US8135900B2 (en) Integrated memory management and memory management method
US10915475B2 (en) Methods and apparatus for variable size logical page management based on hot and cold data
US8370602B2 (en) Method for memory space management
US9489301B2 (en) Memory systems
US8407449B1 (en) Non-volatile semiconductor memory storing an inverse map for rebuilding a translation table
KR101038167B1 (ko) 프로세서로부터 메모리로의 액세스를 관리하는 메모리 관리 장치를 포함하는 정보 처리 장치 및 메모리 관리 방법
US8041884B2 (en) Controller for non-volatile memories and methods of operating the memory controller
US10496334B2 (en) Solid state drive using two-level indirection architecture
US8909870B2 (en) Cache evictions from data cache based on content of address translation table cache and address translation table
US9104554B2 (en) Storage apparatus, storage controller and method for relocating data in solid state drive
US11301331B2 (en) Storage device and operating method of storage device
JPH11126488A (ja) フラッシュメモリを複数使用した外部記憶装置のデータ記憶制御方法及び装置
US20120246397A1 (en) Storage device management device and method for managing storage device
JP4909963B2 (ja) 統合メモリ管理装置
JP2005182793A (ja) 頻繁にアクセスされたセクタの動作による不揮発性メモリに対するより速い書込み動作
JP2011022933A (ja) メモリ管理装置を含む情報処理装置及びメモリ管理方法
JP2011090496A (ja) 半導体記憶装置および制御方法
GB2411499A (en) Maintaining erased blocks in a non-volatile memory
US11182286B2 (en) Data storage device and control method for non-volatile memory
JP2013196155A (ja) メモリシステム
US20200301843A1 (en) Memory access device, memory system, and information processing system
JP6027479B2 (ja) 半導体メモリ装置
JP2005149620A (ja) 記憶装置およびファイルシステム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090918

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120110

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120312

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20120529

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120628

R151 Written notification of patent or utility model registration

Ref document number: 5032172

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150706

Year of fee payment: 3

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350