JP2010066914A - Integrated memory management device and memory management method - Google Patents
Integrated memory management device and memory management method Download PDFInfo
- Publication number
- JP2010066914A JP2010066914A JP2008231363A JP2008231363A JP2010066914A JP 2010066914 A JP2010066914 A JP 2010066914A JP 2008231363 A JP2008231363 A JP 2008231363A JP 2008231363 A JP2008231363 A JP 2008231363A JP 2010066914 A JP2010066914 A JP 2010066914A
- Authority
- JP
- Japan
- Prior art keywords
- memory
- main memory
- address
- data
- processor
- 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.)
- Granted
Links
Images
Landscapes
- Techniques For Improving Reliability Of Storages (AREA)
- Memory System (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
Description
本発明は、キャッシュメモリとメインメモリとに対する書き込み又は読み出しを管理する装置及びメモリ管理方法に関する。 The present invention relates to an apparatus and a memory management method for managing writing or reading with respect to a cache memory and a main memory.
従来において、NAND型フラッシュメモリの管理機能は、ファイルシステムに実装される。 Conventionally, the management function of the NAND flash memory is implemented in a file system.
MPU(Micro Processing Unit)内にキャッシュメモリが備えられており、メインメモリとしてDRAM(Dynamic Random Access Memory)が用いられており、さらにMPUがNAND型フラッシュメモリをアクセスする場合、従来においては、以下のメモリ階層にそった動作が行われる。 When a cache memory is provided in an MPU (Micro Processing Unit), a DRAM (Dynamic Random Access Memory) is used as a main memory, and the MPU accesses a NAND flash memory, conventionally, the following is used: Operations along the memory hierarchy are performed.
まず、MPUは、MMU(Memory Management Unit)により、論理アドレスを物理アドレスに変換し、キャッシュメモリをアクセスする。 First, the MPU converts a logical address to a physical address and accesses a cache memory by using an MMU (Memory Management Unit).
ここで、MPUは、オペレーティングシステム(OS)の仮想記憶管理により、一部のデータについて、メインメモリであるDRAMにアクセスを行う。 Here, the MPU accesses a DRAM which is a main memory for a part of data by virtual storage management of an operating system (OS).
さらに、MPUは、NAND型フラッシュメモリにアクセスが必要な場合に、フラッシュファイルシステム(Flash File System)により、NAND型フラッシュメモリにおける不良ブロックを避ける制御、NAND型フラッシュメモリの全ブロックを隔たりなくアクセスさせる制御などを行い、NAND型フラッシュメモリの物理位置を決定する。 In addition, when the NAND type flash memory needs to be accessed, the MPU uses the flash file system to control avoiding defective blocks in the NAND type flash memory and to make all blocks of the NAND type flash memory accessible without any gaps. Control is performed to determine the physical position of the NAND flash memory.
MPUは、決定された物理位置に基づいて、NAND型フラッシュメモリをアクセスする。 The MPU accesses the NAND flash memory based on the determined physical position.
従来のMPUにおいては、メモリ階層の数が多くなるほど、異なる階層に含まれる動作が多くなり、異なる階層の動作間で最適化を行うことが困難である。例えば、MPUがキャッシュメモリのデータを入れ替える時に、NAND型フラッシュメモリ特有の不良ブロック管理を行うなどのような制御は、それぞれの動作が異なるメモリ階層に属するため、実現困難である。 In the conventional MPU, as the number of memory hierarchies increases, operations included in different hierarchies increase, and it is difficult to perform optimization between operations in different hierarchies. For example, when the MPU replaces data in the cache memory, control such as performing bad block management peculiar to the NAND flash memory is difficult to implement because each operation belongs to a different memory hierarchy.
特許文献1(特開2001−266580号公報)においては、種類の異なる半導体メモリ装置を共通のバスに接続することを可能にする発明が開示されている。 Japanese Patent Laid-Open No. 2001-266580 discloses an invention that allows different types of semiconductor memory devices to be connected to a common bus.
この特許文献1の半導体メモリ装置は、ランダムアクセスメモリチップと、前記ランダムアクセスメモリチップを備えたパッケージを含む。前記パッケージは、前記ランダムアクセスメモリチップを外部装置に電気的に連結する複数のピンを有する。複数のピンは、前記ランダムアクセスメモリと、電気的に消去及びプログラム可能な不揮発性半導体メモリとに、共通にメモリ機能を提供する。前記複数のピンの各々は、不揮発性半導体メモリの対応するピンの位置に配列されている。
本発明は、以上のような実情に鑑みてなされたもので、メモリのアクセスに関するメモリ階層の数を削減し、メモリアクセス動作の最適化を容易に実現可能とするためのメモリ管理装置及びメモリ管理方法を提供することを目的とする。 The present invention has been made in view of the above circumstances, and a memory management device and memory management for reducing the number of memory hierarchies related to memory access and easily realizing optimization of memory access operations. It aims to provide a method.
本発明の第1の態様に係る統合メモリ管理装置は、キャッシュメモリをアクセスするための論理アドレスを、キャッシュメモリをアクセスするための物理アドレスに変換する、プロセッサに備えられる第1のメモリマネジメントユニットと、キャッシュメモリをアクセスするための物理アドレスに基づいて、キャッシュメモリをアクセスする、プロセッサに備えられるキャッシュコントローラと、プロセッサ外のメインメモリに対するアクセス状態を示すアクセス履歴データを格納する、プロセッサに備えられるアクセス履歴格納部と、メインメモリにおける論理アドレスと物理アドレスとの関係を示すアドレス関係データを格納する、プロセッサに備えられているアドレス関係格納部と、アクセス履歴データとアドレス関係データとに基づいて、メインメモリをアクセスするための論理アドレスを、メインメモリをアクセスするための物理アドレスに変換し、メインメモリをアクセスするための物理アドレスに基づいて、メインメモリをアクセスする、プロセッサに備えられる第2のメモリマネジメントユニットとを具備する。 An integrated memory management device according to a first aspect of the present invention includes a first memory management unit provided in a processor, which converts a logical address for accessing a cache memory into a physical address for accessing the cache memory, and A cache controller provided in the processor for accessing the cache memory based on a physical address for accessing the cache memory, and an access provided in the processor for storing access history data indicating an access state to the main memory outside the processor Based on the history storage unit, the address relationship storage unit provided in the processor for storing the address relationship data indicating the relationship between the logical address and the physical address in the main memory, the access history data and the address relationship data. And converting a logical address for accessing the main memory into a physical address for accessing the main memory, and accessing the main memory based on the physical address for accessing the main memory. 2 memory management units.
本発明の第2の態様に係る統合メモリ管理装置は、キャッシュメモリをアクセスするための論理アドレスを、キャッシュメモリをアクセスするための物理アドレスに変換する、プロセッサに備えられる第1のメモリマネジメントユニットと、プロセッサ外のメインメモリに対するアクセス状態を示すアクセス履歴データを格納する、プロセッサに備えられるアクセス履歴格納部と、メインメモリにおける論理アドレスと物理アドレスとの関係を示すアドレス関係データを格納する、プロセッサに備えられているアドレス関係格納部と、アクセス履歴データとアドレス関係データとに基づいて、メインメモリをアクセスするための論理アドレスを、メインメモリをアクセスするための物理アドレスに変換する、プロセッサに備えられる第2のメモリマネジメントユニットと、キャッシュメモリをアクセスするための物理アドレスに基づいて、キャッシュメモリをアクセスするとともに、メインメモリをアクセスするための物理アドレスに基づいて、メインメモリをアクセスする、プロセッサに備えられるキャッシュコントローラとを具備する。 An integrated memory management device according to a second aspect of the present invention includes: a first memory management unit provided in a processor that converts a logical address for accessing a cache memory into a physical address for accessing the cache memory; Storing an access history data indicating an access state to the main memory outside the processor; storing an access history storage unit provided in the processor; and storing address relation data indicating a relationship between a logical address and a physical address in the main memory. Provided in a processor that converts a logical address for accessing the main memory into a physical address for accessing the main memory based on the provided address relation storage unit, the access history data, and the address relation data. Second menu A cache controller provided in a processor for accessing the cache memory based on the physical address for accessing the re-management unit and the cache memory, and accessing the main memory based on the physical address for accessing the main memory It comprises.
本発明の第3の態様に係る統合メモリ管理装置は、少なくとも一つのプロセッサに含まれている第1のプロセッサから、読み出し先論理アドレスを取得する取得手段と、取得手段によって取得された読み出し先論理アドレスを、不揮発性メインメモリの読み出し先物理アドレスに変換するアドレス変換手段と、不揮発性メインメモリから、不揮発性メインメモリのページサイズの整数倍又はブロックサイズの読み出し先物理アドレスに対応するデータを読み出すアクセス手段と、読み出されたデータを、不揮発性メインメモリのページサイズの整数倍又はブロックサイズに依存しているキャッシュサイズの第1のプロセッサのキャッシュメモリに転送する転送手段とを具備する。 An integrated memory management device according to a third aspect of the present invention includes an acquisition unit that acquires a read destination logical address from a first processor included in at least one processor, and a read destination logic acquired by the acquisition unit. Address conversion means for converting the address into a read destination physical address of the nonvolatile main memory, and data corresponding to the read destination physical address of an integer multiple of the page size of the nonvolatile main memory or the block size are read from the nonvolatile main memory. Access means and transfer means for transferring the read data to the cache memory of the first processor having a cache size depending on an integer multiple of the page size of the nonvolatile main memory or the block size.
本発明の第4の態様に係る統合メモリ管理装置は、複数のグループ属性を持つ領域に分割され、それぞれのグループ属性をメモリ固有情報として保有する不揮発性メインメモリと、少なくとも一つのプロセッサに含まれている第1のプロセッサから、書き込み先論理アドレスを取得する取得手段と、取得手段によって取得された書き込み先論理アドレスを、不揮発性メインメモリの書き込み先物理アドレスに変換するアドレス変換手段とを具備する。アドレス変換手段は、第1のプロセッサ上で動作するファイル管理プログラムにより定義されたデータ固有の読み書き頻度情報と、メモリ固有情報とを参照し、データ固有の読み書き頻度情報に対応するグループ属性の領域内に書き込み先物理アドレスを対応させる。 The integrated memory management device according to the fourth aspect of the present invention is divided into an area having a plurality of group attributes, and is included in at least one processor and a nonvolatile main memory that holds each group attribute as memory specific information. Acquisition means for acquiring a write destination logical address from the first processor, and address conversion means for converting the write destination logical address acquired by the acquisition means into a write destination physical address of the nonvolatile main memory. . The address conversion means refers to the data-specific read / write frequency information defined by the file management program operating on the first processor and the memory-specific information, and within the group attribute area corresponding to the data-specific read / write frequency information Is associated with the write destination physical address.
本発明の第5の態様に係るメモリ管理方法は、プロセッサに備えられる統合メモリ管理装置により、プロセッサ外の不揮発性メインメモリに対するアクセス状態を示すアクセス履歴データと、不揮発性メインメモリにおける論理アドレスと物理アドレスとの関係を示すアドレス関係データとを参照し、統合メモリ管理装置により、アクセス履歴データとアドレス関係データとに基づいて、不揮発性メインメモリをアクセスするための論理アドレスを、不揮発性メインメモリをアクセスするための物理アドレスに変換し、不揮発性メインメモリをアクセスするための物理アドレスに基づいて、不揮発性メインメモリをアクセスする。 The memory management method according to the fifth aspect of the present invention includes an access history data indicating an access state to a nonvolatile main memory outside the processor, a logical address and a physical in the nonvolatile main memory by an integrated memory management device provided in the processor. The address relation data indicating the relation with the address is referred to, and the logical address for accessing the nonvolatile main memory is determined by the integrated memory management device based on the access history data and the address relation data. It converts into the physical address for access, and accesses a non-volatile main memory based on the physical address for accessing a non-volatile main memory.
本発明の第6の態様に係るメモリ管理方法は、統合メモリ管理装置により、少なくとも一つのプロセッサに含まれている第1のプロセッサから、読み出し先論理アドレスを取得し、統合メモリ管理装置により、取得された読み出し先論理アドレスを、不揮発性メインメモリの読み出し先物理アドレスに変換し、統合メモリ管理装置により、不揮発性メインメモリから、不揮発性メインメモリのページサイズの整数倍又はブロックサイズの読み出し先物理アドレスに対応するデータを読み出し、統合メモリ管理装置により、読み出されたデータを、不揮発性メインメモリのページサイズの整数倍又はブロックサイズに依存しているキャッシュサイズの第1のプロセッサのキャッシュメモリに転送する。 In the memory management method according to the sixth aspect of the present invention, a read destination logical address is acquired from a first processor included in at least one processor by an integrated memory management device, and acquired by the integrated memory management device. The read destination logical address is converted into a read destination physical address of the nonvolatile main memory, and the unified memory management device converts the read destination physical address from the nonvolatile main memory to an integer multiple of the page size of the nonvolatile main memory or a block size. The data corresponding to the address is read, and the data read by the integrated memory management device is transferred to the cache memory of the first processor having a cache size that depends on an integer multiple of the page size of the nonvolatile main memory or the block size. Forward.
本発明により、メモリのアクセスに関するメモリ階層の数を削減することができ、メモリアクセス動作の最適化を容易に実現することができる。 According to the present invention, the number of memory hierarchies related to memory access can be reduced, and optimization of memory access operation can be easily realized.
以下、図面を参照しながら本発明の各実施の形態について説明する。なお、以下の説明において、略又は実質的に同一の機能及び構成要素については、同一符号を付し、重複説明は必要な場合にのみ行う。 Embodiments of the present invention will be described below with reference to the drawings. In the following description, substantially or substantially the same functions and components are denoted by the same reference numerals, and redundant description will be given only when necessary.
(第1の実施の形態)
本実施の形態の統合メモリ管理装置(フラットメモリ管理装置)は、MPUに具備されており、キャッシュメモリとメインメモリとについてメモリ管理を行う。統合メモリ管理装置は、メモリアクセスに関するメモリ階層の数を削減し、メモリアクセスの最適化を容易に実現可能にする。
(First embodiment)
The integrated memory management device (flat memory management device) of the present embodiment is provided in the MPU and performs memory management for the cache memory and the main memory. The integrated memory management device can reduce the number of memory hierarchies related to memory access and easily realize optimization of memory access.
本実施の形態においては、MPUのMMUと、MPUのキャッシュコントローラと、メインメモリ用MMUとを統合した統合メモリ管理装置について説明する。 In this embodiment, an integrated memory management device that integrates an MPU MMU, an MPU cache controller, and a main memory MMU will be described.
図1は、本実施の形態に係る統合メモリ管理装置の一例を示すブロック図である。なお、本実施の形態においては、メインメモリがNAND型フラッシュメモリの場合を例として説明するが、他の記憶装置を用いることもできる。また、本実施の形態において、アクセスとは、データ(又はプログラム)の読み出しと書き込みの少なくとも一方を含むとする。 FIG. 1 is a block diagram showing an example of an integrated memory management device according to the present embodiment. In this embodiment, the case where the main memory is a NAND flash memory will be described as an example. However, other storage devices may be used. In this embodiment, the access includes at least one of reading and writing of data (or program).
MPU1は、統合メモリ管理装置2を具備し、NAND型フラッシュメインメモリ4をアクセスする。
The MPU 1 includes an integrated
NAND型フラッシュメインメモリ4は、内部に、アドレス変換テーブル5、書き換え回数データ6を記憶する。書き換え回数データ6は、メインメモリのアクセス状態を示すメインメモリ履歴データに対応する。
The NAND flash
アドレス変換テーブル5は、NAND型フラッシュメインメモリ4における論理アドレスと物理位置(Physical Location)又は物理アドレスとを関連付けたデータである。
The address conversion table 5 is data in which a logical address and a physical location or a physical address in the NAND flash
書き換え回数データ6は、NAND型フラッシュメインメモリ4の各ページ又はブロックの書き換え回数を表す。
The
統合メモリ管理装置2は、MMU7、キャッシュコントローラ8、1次キャッシュメモリ3、2次キャッシュメモリ22、メインメモリ用MMU9、アクセス履歴格納部(NAND Information Registers)10を具備する。また、キャッシュコントローラ8は、1次キャッシュメモリ3用の第1のキャッシュコントローラ8aと2次キャッシュメモリ22用の第2のキャッシュコントローラ8bとを具備する。さらに、メインメモリ用MMU9は、アドレス関係格納部23を具備する。なお、メインメモリ用MMU9と、アドレス関係格納部23とは、分離していてもよい。
The integrated
本実施の形態においては、キャッシュメモリが2つの場合を例に説明するが、キャッシュメモリの数は1つ又は3以上であってもよい。 In this embodiment, a case where there are two cache memories will be described as an example, but the number of cache memories may be one or three or more.
MMU7は、キャッシュメモリ3の論理アドレスを物理アドレスに変換する。
The MMU 7 converts the logical address of the
1次キャッシュメモリ3は、タグ格納領域3aと、ライン格納領域3bとを持つ。
The
2次キャッシュメモリ22は、タグ格納領域22aと、ライン格納領域22bとを持つ。
The secondary cache memory 22 has a
本実施の形態において、1次キャッシュメモリ3のラインサイズ及び2次キャッシュメモリ22のラインサイズは、NAND型フラッシュメインメモリ4のブロックと同じサイズ(例えば256キロバイト)か、NAND型フラッシュメインメモリ4のページサイズの倍数となるサイズとする。これにより、NAND型フラッシュメインメモリ4のデータを1次キャッシュメモリ3又は2次キャッシュメモリ22に移動する動作、及び1次キャッシュメモリ3又は2次キャッシュメモリ22のデータをNAND型フラッシュメインメモリ4に移動する動作をページ単位、ページサイズの整数倍単位、又はブロック単位で行うことができ、データの移動を簡素化できる。
In the present embodiment, the line size of the
本実施の形態において、1次キャッシュメモリ3及び2次キャッシュメモリ22は、例えばライトバック型であるとする。また、2次キャッシュメモリ22は、1次キャッシュメモリよりも記憶容量が大きいが低速であるとする。
In the present embodiment, it is assumed that the
第1のキャッシュコントローラ8aは、1次キャッシュメモリ3に対するアクセスを制御する。
The
より具体的には、第1のキャッシュコントローラ8aは、1次キャッシュメモリ3からデータを読み出す場合には、MMU7から得られた物理アドレスにそって、1次キャッシュメモリ3における物理アドレスに対応するデータを読み出す。また、第1のキャッシュコントローラ8aは、1次キャッシュメモリ3にデータを書き込む場合には、MMU7から得られた物理アドレスにそって、1次キャッシュメモリ3における物理アドレスに対応する位置に、書き込み対象のデータを書き込む。
More specifically, when the
第2のキャッシュコントローラ8bは、2次キャッシュメモリ22に対するアクセスを制御する。
The
より具体的には、第2のキャッシュコントローラ8bは、2次キャッシュメモリ22からデータを読み出す場合には、MMU7から得られた物理アドレスにそって、2次キャッシュメモリ22における物理アドレスに対応するデータを読み出す。また、第2のキャッシュコントローラ8bは、2次キャッシュメモリ22にデータを書き込む場合には、MMU7から得られた物理アドレスにそって、2次キャッシュメモリ22における物理アドレスに対応する位置に、書き込み対象のデータを書き込む。
More specifically, when the
メインメモリ用MMU9は、NAND型フラッシュメインメモリ4に対するアクセスを制御する。
The
メインメモリ用MMU9は、必要に応じて、NAND型フラッシュメインメモリ4のアドレス変換テーブル5の一部又は全部を、アドレス関係データとして、アドレス関係格納部23に格納する。また、メインメモリ用MMU9は、必要に応じて、NAND型フラッシュメインメモリ4の書き換え回数データ6の一部又は全部を、アクセス履歴データとして、アクセス履歴格納部10に格納する。
The
メインメモリ用MMU9は、NAND型フラッシュメインメモリ4の論理アドレスを物理位置に変換する。
The
メインメモリ用MMU9は、NAND型フラッシュメインメモリ4の物理位置に基づいて、NAND型フラッシュメインメモリ4からデータの読み出しを行い、第1のキャッシュコントローラ8a又は第2のキャッシュコントローラ8bを経由して、1次キャッシュメモリ3又は2次キャッシュメモリ22にデータを記憶する。
The
メインメモリ用MMU9は、NAND型フラッシュメインメモリ4から新たなデータを読み出した場合には、その新たなデータに関するアドレス変換テーブルのデータ、及び書き換え回数データを読み出し、それぞれアドレス関係格納部23及びアクセス履歴格納部10に格納する。
When the
メインメモリ用MMU9は、NAND型フラッシュメインメモリ4にデータを書き込む場合、アドレス関係データ及びアクセス履歴データに基づいて、NAND型フラッシュメインメモリ4の全領域又は全ブロックを隔たりなくアクセスさせる制御、NAND型フラッシュメインメモリ4の各領域又はブロックの書き換え回数を均等化するための制御、不良領域又は不良ブロックを避ける制御などを行う。さらに、メインメモリ用MMU9は、1次キャッシュメモリ3又は2次キャッシュメモリ22に記憶されていたデータを、第1のキャッシュコントローラ8a又は第2のキャッシュコントローラ8bを経由して取得し、この取得したデータをNAND型フラッシュメインメモリ4の物理位置に基づいてNAND型フラッシュメインメモリ4に記憶する。
When the
メインメモリ用MMU9は、NAND型フラッシュメインメモリ4にデータが書き込まれた場合に、書き込まれたデータに関する論理アドレスと物理位置との関係に基づいてアドレス関係格納部23のアドレス関係データを更新し、また、アクセス履歴格納部10のアクセス履歴データを更新する。
When the data is written in the NAND flash
メインメモリ用MMU9は、必要に応じて、メインメモリ用MMU9に格納されているアドレス関係データと、アクセス履歴格納部10に記憶されているアクセス履歴データとを、それぞれNAND型フラッシュメインメモリ4のアドレス変換テーブル5と書き換え回数データ6とに対して反映する。すなわち、メインメモリ用MMU9は、MPU1に記憶されているアドレス関係データと、NAND型フラッシュメインメモリ4に記憶されているアドレス変換テーブル5とを整合させる。また、メインメモリ用MMU9は、アクセス履歴格納部10のアクセス履歴データと、NAND型フラッシュメインメモリ4の書き換え回数データ6とを整合させる。
The
アクセス履歴格納部10は、NAND型フラッシュメインメモリ4のページ又はブロック(物理位置)のアクセス状態の履歴を格納する。本実施の形態において、アクセス履歴格納部10は、NAND型フラッシュメインメモリ4における各ページ又はブロックの書き換え回数データ6のうち、一部又は全部のページ又はブロックについての書き換え回数データを格納する。
The access
例えば、各ブロックの書き換え回数は4バイトで記録され、各ブロックサイズは256キロバイトとする。この場合において、NAND型フラッシュメインメモリ4の記憶容量が1メガバイトであるとすると、NAND型フラッシュメインメモリ4に記憶されるブロック数は4ブロックであり、各ブロックの書き換え回数を記憶するために必要な記憶容量は16バイトとなる。同様の場合において、NAND型フラッシュメインメモリ4の記憶容量が1ギガバイトであるとすると、NAND型フラッシュメインメモリ4に記憶されるブロック数は4096ブロックであり、各ブロックの書き換え回数を記憶するために必要な記憶容量は16キロバイトとなる。さらに、同様の場合において、NAND型フラッシュメインメモリ4の記憶容量が16ギガバイトであるとすると、各ブロックの書き換え回数を記憶するために必要な記憶容量は64キロバイトとなる。
For example, the rewrite count of each block is recorded as 4 bytes, and each block size is 256 kilobytes. In this case, assuming that the storage capacity of the NAND flash
例えば、NAND型フラッシュメインメモリ4の記憶容量が例えば128ギガバイトなどのように大きくなった場合、アクセス履歴格納部10は、NAND型フラッシュメインメモリ4における書き換え回数データ6の一部を格納する。このように、アクセス履歴格納部10は、書き換え回数データ6の一部を格納するため、書き換え回数にはposが付されている。posはキャッシュタグと同様の手法で使用される。
For example, when the storage capacity of the NAND flash
メインメモリ用MMU9の動作例の概略を説明する。
An outline of an operation example of the
メインメモリ用MMU9は、NAND型フラッシュメインメモリ4のアドレス変換テーブル5の一部を、アドレス関係格納部23に記憶し、書き換え回数データ6の一部をアクセス履歴格納部10に記憶する。
The
メインメモリ用MMU9は、キャッシュメモリ3,22に読み出し対象のデータが記憶されておらず、NAND型フラッシュメインメモリ4からデータの読み出しを行う場合、NAND型フラッシュメインメモリ4からデータを読み出す。そして、メインメモリ用MMU9は、アドレス変換テーブル5のうち読み出したデータに関するデータをアドレス関係格納部23に記憶する。また、メインメモリ用MMU9は、書き換え回数データ6のうち読み出したデータに関するデータをアクセス履歴格納部10に記憶する。
The
MPU1からNAND型フラッシュメインメモリ4へのデータの書き込みを行う場合、メインメモリ用MMU9は、NAND型フラッシュメインメモリ4における論理アドレスを物理位置に変換し、キャッシュライン3b,22bにおける書き込み対象のデータをNAND型フラッシュメインメモリ4に書き込む。加えて、メインメモリ用MMU9は、アドレス関係格納部23に記憶しているアドレス関係データと、アクセス履歴格納部10に記憶されているアクセス履歴データとを更新する。
When writing data from the
そして、メインメモリ用MMU9は、アドレス関係格納部23のアドレス関係データと、アクセス履歴格納部10のアクセス履歴データとに基づいて、それぞれアドレス変換テーブル5と書き換え回数データ6を更新する。
Then, the
例えば、1次キャッシュメモリ3がリード・オンリー(Read Only)の場合、MPU1からキャッシュライン3bへの書き込みはない。この場合、メインメモリ用MMU9は、第1のキャッシュコントローラ8aを用いて、NAND型フラッシュメインメモリ4から読み出したデータを1次キャッシュメモリ3に上書きする。この1次キャッシュメモリ3に記憶されたデータの読み出しが発生すると、第1のキャッシュコントローラ8aは、1次キャッシュメモリ3からデータを読み出す。
For example, when the
一方、1次キャッシュメモリ3がリード・オンリーでない場合、MPU1は、プログラムを実行して得られたデータをキャッシュメモリ3に書き込む。MPU1からキャッシュライン3bにデータの書き込みが発生した場合、キャッシュライン3bのデータをNAND型フラッシュメインメモリ4にライトバック(Write Back)する。この場合、メインメモリ用MMU9は、ライトバックされるデータをキャッシュメモリ3から第1のキャッシュコントローラ8a経由で読み出す。そして、メインメモリ用MMU9は、アクセス履歴格納部10のアクセス履歴データに基づいて、NAND型フラッシュメインメモリ4においてライトバックされる位置として、所定数より少ない書き換え回数のページ又はブロックを選択する。メインメモリ用MMU9は、この選択されたページ又はブロックにライトバックされるデータを記憶し、選択されたページ又はブロックについて、NAND型フラッシュメインメモリ4用の論理アドレスと物理位置との変換関係を示すアドレス関係データを更新し、選択されたページ又はブロックについてアクセス履歴格納部10の書き換え回数を更新する。
On the other hand, when the
その後、必要に応じて、アドレス関係格納部23とアクセス履歴格納部10の内容により、アドレス変換テーブル5と書き換え回数データ6とを更新する。
Thereafter, the address conversion table 5 and the
図2は、本実施の形態に係る統合メモリ管理装置2のメモリ階層の一例を示す図である。
FIG. 2 is a diagram illustrating an example of a memory hierarchy of the integrated
この例におけるメモリ階層は、MMU7の属する階層と、メインメモリ用MMU9及びキャッシュコントローラ8との属する階層を持つ。
The memory hierarchy in this example has a hierarchy to which the MMU 7 belongs and a hierarchy to which the
MMU7の階層では、論理アドレスが物理アドレスに変換される。 In the hierarchy of the MMU 7, the logical address is converted into a physical address.
メインメモリ用MMU9の属する階層では、例えば、アクセス先となるNAND型フラッシュメインメモリ4の物理位置又は物理アドレスが決定される。メインメモリ用MMU9の属する階層では、書き込み回数が所定数以下(例えば最小)のページ又はブロックをアクセスさせる制御が行われる。
In the hierarchy to which the
そして、統合メモリ管理装置2は、決定された物理位置に基づいて、NAND型フラッシュメインメモリ4をアクセスする。
Then, the integrated
図3は、本実施の形態に係る統合メモリ管理装置2を備えたMPU1が、NAND型フラッシュメインメモリ4のデータ、書き換え回数データ6の一部、アドレス変換テーブル5の一部を記憶する場合の動作の一例を示すフローチャートである。
FIG. 3 shows a case where the
ステップS1において、メインメモリ用MMU9は、MPU1によって使用されるNAND型フラッシュメインメモリ4のデータの一部(最初は、先頭から1ギガバイト分などでもよい)のデータを読み出す。キャッシュコントローラ8は、読み出されたデータを、キャッシュメモリ3,8のキャッシュライン3b,8bに書き込む。
In step S1, the
ステップS2において、メインメモリ用MMU9は、NAND型フラッシュメインメモリ4に保管されている書き換え回数データ6の一部(キャッシュメモリ3,8に格納されたデータに対するブロックの書き換え回数など。なお、最初は、先頭から1ギガバイト分などでもよい)を、MPU1内のアクセス履歴格納部10にコピーする。
In step S2, the
ステップS3において、メインメモリ用MMU9は、NAND型フラッシュメインメモリ4に保管されているアドレス変換テーブル5の一部(キャッシュメモリ3,8に格納されたデータに対応するブロックの論理アドレスと物理位置との関係を示すデータなど。なお、最初は、先頭から1ギガバイト分などでもよい)を、MPU1内のメインメモリ用MMU9のアドレス関係格納部23にコピーする。
In step S3, the
なお、このステップS1〜S3は、自由な順序で実行されてよく、並列に実行されてもよい。 In addition, these steps S1-S3 may be performed in a free order and may be performed in parallel.
図4は、本実施の形態に係る統合メモリ管理装置2を備えたMPU1において、1次キャッシュメモリ3又はNAND型フラッシュメインメモリ4からデータを読み出す場合の動作の一例を示すフローチャートである。なお、2次キャッシュメモリ22からデータを読み出す場合についても、1次キャッシュメモリ3の場合と同様である。
FIG. 4 is a flowchart showing an example of an operation when data is read from the
ステップT1において、MMU7及びメインメモリ用MMU9は、読み出し対象の論理アドレスを物理アドレスに変換する。
In step T1, the MMU 7 and the
読み出し対象の物理アドレスが1次キャッシュメモリ3を示す場合、ステップT2aにおいて、第1のキャッシュコントローラ8aは、物理アドレスに基づいて1次キャッシュメモリ3から読み出し対象のデータを読み出す。
When the physical address to be read indicates the
読み出し対象の物理アドレス(物理位置)がNAND型フラッシュメインメモリ4を示す場合、ステップT2bにおいて、メインメモリ用MMU9は、物理アドレスに対応するデータを、NAND型フラッシュメインメモリ4から読み出す。
When the physical address (physical position) to be read indicates the NAND flash
ステップT3bにおいて、メインメモリ用MMU9は、NAND型フラッシュメインメモリ4から読み出したデータを、第1のキャッシュコントローラ8a経由で、1次キャッシュメモリ3に上書きする。
In Step T3b, the
なお、メインメモリ用MMU9は、NAND型フラッシュメインメモリ4から新たに読み出したデータに対応するアドレス関係データ及びアクセス履歴データがそれぞれアドレス関係格納部及びアクセス履歴格納部に記憶されていない場合、NAND型フラッシュメインメモリ4のアドレス変換テーブル5及び書き換え回数データ6に基づいてアドレス関係格納部及びアクセス履歴格納部に新たに読み出したデータに対応するデータを記憶する。
Note that the
図5は、本実施の形態に係る統合メモリ管理装置2を備えたMPU1から、1次キャッシュメモリ3のキャッシュライン3bへの上書きが発生し、さらに1次キャッシュメモリ3のデータをNAND型フラッシュメインメモリ4に記憶する場合の動作の一例を示すフローチャートである。なお、2次キャッシュメモリ22への上書きが発生した場合についても、この1次キャッシュメモリ3の場合と同様である。
FIG. 5 shows that overwriting to the
ステップU1において、MMU7は、論理アドレスから物理アドレスへの変換を行う。 In step U1, the MMU 7 performs conversion from a logical address to a physical address.
ステップU2において、第1のキャッシュコントローラ8aは、物理アドレスに応じて、書き込み対象のデータを、1次キャッシュメモリ3に記憶する。
In step U2, the
ステップU3において、メインメモリ用MMU9は、アドレス関係格納部23のアドレス関係データと、アクセス履歴格納部10のアクセス履歴データとに基づいて、書き換え回数がある値より少ないブロックの位置又は一番書き換えの少ないブロックの位置を、NAND型フラッシュメインメモリ4における書き込み位置として選択する。
In step U3, the
ステップU4において、メインメモリ用MMU9は、NAND型フラッシュメインメモリ4における選択された位置に、書き込み対象のデータを記憶する。
In step U4, the
ステップU5において、メインメモリ用MMU9は、上書き後のキャッシュライン3bに対応するように、アドレス関係格納部23のアドレス関係データを更新し、アクセス履歴格納部10のアクセス履歴データを更新する。
In step U5, the
ステップU6において、メインメモリ用MMU9は、メインメモリ用MMU9に格納されているアドレス関係データと整合するように、NAND型フラッシュメインメモリ4のアドレス変換テーブル5を更新し、また、アクセス履歴格納部10に格納されているアドレス履歴データと整合するように、NAND型フラッシュメインメモリ4の書き換え回数データ6を更新する。例えば、NAND型フラッシュメインメモリ4の書き換え回数データの更新は、MPU1の電源が切られるとき、又は、MPU1のアクセス履歴格納部10の書き換え時に、実行される。
In step U6, the
本実施の形態において、統合メモリ管理装置2は、書き換え回数に基づいて書き換えを行うブロックの物理位置を選択している。しかしながら、これに代えて、統合メモリ管理装置2は、不良領域又は不良ブロックを避ける制御、NAND型フラッシュメインメモリ4の全領域又は全ブロックを隔たりなくアクセスさせる制御、アクセス先の領域又はブロックの位置が分散されるようにする制御を行うとしてもよい。この場合、アクセス履歴格納部10には、NAND型フラッシュメインメモリ4に記憶されている不良領域又は不良ブロックの発生位置、NAND型フラッシュメインメモリ4の書き換え位置の分布などのデータが記憶される。また、統合メモリ管理装置2は、各種の制御を自由に組み合わせて、書き換えを行う領域又はブロックの位置を選択するとしてもよい。
In the present embodiment, the integrated
本実施の形態において、統合メモリ管理装置2は、キャッシュメモリ3のデータ入れ替え時に、NAND型フラッシュメインメモリ4のガーベージコレクション処理又は消去のための制御を行うとしてもよい。
In the present embodiment, the integrated
本実施の形態において、メインメモリ用MMU9のアドレス関係格納部23とアクセス履歴格納部10とのうち、少なくとも一方について、二次キャッシュメモリを用いてデータを格納するとしてもよい。すなわち、アドレス関係格納部23に記憶されているアドレス関係データは、2次キャッシュメモリ22に格納されるとしてもよい。また、アクセス履歴格納部10に記憶される書き込み回数などを含むアクセス履歴データは、2次キャッシュメモリ22に格納されるとしてもよい。
In the present embodiment, at least one of the address
本実施の形態に係るMPU1の統合メモリ管理装置2においては、アクセス履歴格納部10に格納されているデータを用いて書き込みを行う対象となるNAND型フラッシュメインメモリ4の物理位置を選択し、ライトバックするアルゴリズムを採用し、このアルゴリズムを実行するプログラムを用いることができる。例えば、書き換え回数の多い領域又はブロックの書き換えを避けるなどのような高度なアルゴリズムを用いることができる。
In the integrated
以上説明した本実施の形態に係る統合メモリ管理装置2においては、MPU1内で、MMU7、第1のキャッシュコントローラ8a、第1のキャッシュコントローラ8b、キャッシュメモリ3、キャッシュメモリ22、メインメモリ用MMU9、アクセス履歴格納部10が統合された構成が採用されている。すなわち、本実施の形態においては、NAND型フラッシュメインメモリ4のメモリマッピング管理がMPU1の統合メモリ管理装置2で実行されるアーキテクチャが実現されている。
In the integrated
これにより、メモリ階層において、オーバーヘッドの大きい階層を削除することができる。 Thereby, a hierarchy with a large overhead can be deleted in the memory hierarchy.
本実施の形態においては、一般的なNAND型フラッシュメモリに備えられているメモリコントローラの動作を、MPU1側で実行する。このように、MPUの動作とメモリコントローラの動作とを組み合わせてMPU1で実行することで、メモリ制御を協調させることができる。
In the present embodiment, the operation of a memory controller provided in a general NAND flash memory is executed on the
本実施の形態においては、多層化されていたメモリ階層を単純化することができ、アクセスに必要な時間、製造時に必要な時間、製造時に必要な費用などの様々なコストを削減することができる。 In this embodiment, it is possible to simplify the multi-layered memory hierarchy, and it is possible to reduce various costs such as time required for access, time required for manufacturing, and cost required for manufacturing. .
本実施の形態においては、メモリ階層がシンプルになるため、プログラマはどこの階層でMMU変換、キャッシュメモリの置き換えが発生するかを把握することが容易であり、プログラム・オプティマイズを容易に行うことができる。 In this embodiment, since the memory hierarchy is simplified, it is easy for the programmer to grasp where the MMU conversion and cache memory replacement occur, and program optimization can be performed easily. it can.
本実施の形態においては、MPU1のキャッシュ動作とメインメモリのアクセス動作との間で最適化を容易に実現することができる。
In the present embodiment, optimization can be easily realized between the cache operation of the
(第2の実施の形態)
本実施の形態においては、上記第1の実施の形態の変形例について説明する。
(Second Embodiment)
In the present embodiment, a modification of the first embodiment will be described.
図6は、本実施の形態に係る統合メモリ管理装置の一例を示すブロック図である。 FIG. 6 is a block diagram showing an example of the integrated memory management device according to the present embodiment.
MPU11には、本実施の形態に係る統合メモリ管理装置12が備えられている。統合MMU13は、上記第1の実施の形態に係るMMU7とメインメモリ用MMU9とを統合した機能を実現する。
The
本実施の形態において、1次キャッシュメモリ3のタグ及び2次キャッシュメモリ22のタグは、プロセスIDと論理アドレスとで、それぞれ1次キャッシュメモリ3及び2次キャッシュメモリ22を管理するために用いられる。
In the present embodiment, the tag of the
本実施の形態においては、プロセッサであるMPU11の統合MMU13により、1次キャッシュメモリ3、2次キャッシュメモリ22、NAND型フラッシュメインメモリ4のメモリマッピング管理が行われ、各種メモリの一括管理が行われる。
In the present embodiment, the memory mapping management of the
図7は、本実施の形態に係る統合メモリ管理装置12のメモリ階層の一例を示す図である。
FIG. 7 is a diagram showing an example of a memory hierarchy of the integrated
この例におけるメモリ階層は、統合MMU13とキャッシュコントローラ8とが同じ階層に属している。統合メモリ管理装置12は、1次キャッシュメモリ3及び2次キャッシュメモリ22に対するアドレス変換と、NAND型フラッシュメインメモリ4に対するアドレス変換とを統合し、同等のメモリ階層で扱う。統合メモリ管理装置2は、ある基準にそって、キャッシュメモリ3、キャッシュメモリ22、NAND型フラッシュメインメモリ4のどの領域をアクセスするか決定する。
In the memory hierarchy in this example, the
このメモリ階層では、論理アドレスがNAND型フラッシュメインメモリ4の物理位置に変換される場合、書き込み回数が所定数以下の領域又はブロックをアクセスさせる制御が行われる。
In this memory hierarchy, when a logical address is converted into a physical position of the NAND flash
そして、統合メモリ管理装置2は、決定された物理位置に基づいて、NAND型フラッシュメインメモリ4をアクセスする。
Then, the integrated
以上説明した本実施の形態においては、上記第1の実施の形態に係るMMU7とメインメモリ用MMU9とを統合することにより、構成がシンプルになり、アクセスに必要な時間コストや製造時に必要な経済コストなどの様々なコストを削減できる。
In the present embodiment described above, the configuration is simplified by integrating the MMU 7 according to the first embodiment and the
統合MMU13を用いることにより、1次キャッシュメモリ3及び2次キャッシュメモリ22に対するアドレス変換と、NAND型フラッシュメインメモリ4に対するアドレス変換とを統合することができる。例えば、あるプロセスに関する記憶内容を、なるべくNAND型フラッシュメインメモリ4内の近い位置に記憶することにより、高速アクセスが可能となる。また、例えば、書き換え回数の少ない領域又はブロックだけを選んで一つのプロセスに割り当てることができる。
By using the
(第3の実施の形態)
本実施の形態においては、上記第1又は第2の実施の形態に係る統合メモリ管理装置2,12の変形例について説明する。
(Third embodiment)
In the present embodiment, a modified example of the integrated
図8は、上記図1に示す第1の実施の形態に係る統合メモリ管理装置2の変形例を示す図である。
FIG. 8 is a diagram showing a modification of the integrated
上記第1の実施の形態においては、物理位置に基づくNAND型フラッシュメインメモリ4へのアクセスは、メインメモリ用MMU9によって実行している。しかしながら、物理位置に基づくNAND型フラッシュメインメモリ4へのアクセスは、キャッシュコントローラ8が行うとしてもよい。
In the first embodiment, the access to the NAND flash
この場合、メインメモリ用MMU9は、論理アドレスを物理位置に変換する制御を行い、このメインメモリ用MMU9で選択された物理位置に基づいて、キャッシュコントローラ8は、NAND型フラッシュメインメモリ4をアクセスする。なお、本実施の形態において、キャッシュコントローラ8は、メインメモリ用MMU9に代わって、NAND型フラッシュメインメモリ4のアドレス変換テーブル5の読み出し及び更新、書き換え回数データ6の読み出し及び更新をするとしてもよい。
In this case, the
図9は、上記図6に示す第1の実施の形態に係る統合メモリ管理装置12の変形例を示す図である。
FIG. 9 is a diagram showing a modification of the integrated
上記第2の実施の形態においては、物理位置に基づくNAND型フラッシュメインメモリ4へのアクセスは、統合MMU13によって実行している。しかしながら、物理位置に基づくNAND型フラッシュメインメモリ4へのアクセスは、キャッシュコントローラ8が行うとしてもよい。
In the second embodiment, the access to the NAND flash
この場合、統合MMU13は、論理アドレスを物理位置に変換する制御を行い、この統合MMU13で選択された物理位置に基づいて、キャッシュコントローラ8は、NAND型フラッシュメインメモリ4をアクセスする。なお、本実施の形態において、キャッシュコントローラ8は、NAND型フラッシュメインメモリ4のアドレス変換テーブル5の読み出し及び更新、書き換え回数データ6の読み出し及び更新をするとしてもよい。
In this case, the
(第4の実施の形態)
本実施の形態においては、上記第1乃至第3の実施の形態に係る統合メモリ管理装置2,12の適用例に付いて説明する。
(Fourth embodiment)
In the present embodiment, application examples of the integrated
図10は、本実施の形態に係る統合メモリ管理装置の適用例を示すブロック図である。 FIG. 10 is a block diagram illustrating an application example of the integrated memory management device according to the present embodiment.
例えば、ゲーム機や、カーナビゲーションシステムでは、ディスクドライブにより読み出されたデータ又はプログラムがメインメモリに一度書き込まれ、その後、このメインメモリに書き込まれたデータ又はプログラムが多回数リードされる。本実施の形態において、統合メモリ管理装置20は、ゲーム機に適用される場合について説明するが、カーナビゲーションシステムなどの他の装置に適用される場合も同様である。統合メモリ管理装置20の代わりに、上記第1の実施の形態に係る統合メモリ管理装置2,12を用いるとしてもよい。
For example, in a game machine or a car navigation system, data or a program read by a disk drive is written once in the main memory, and then the data or program written in the main memory is read many times. In the present embodiment, the case where the integrated memory management device 20 is applied to a game machine will be described, but the same applies to the case where it is applied to other devices such as a car navigation system. Instead of the integrated memory management device 20, the integrated
ポータブル・ゲーム・コンソール・プロセッサ14は、グラフィクス・プロセッサ15とプロセッサ16とを具備する。
The portable
グラフィクス・プロセッサ15、プロセッサ16、2次キャッシュメモリ17、NAND型フラッシュメインメモリ4、ディスクドライブ18はバス19に接続されている。
The
プロセッサ16は、1次キャッシュメモリ3、2次キャッシュメモリ17をアクセスするための2次キャッシュタグ21、キャッシュコントローラ8、統合MMU13を具備する。
The
さらに、プロセッサ16は、書き換え回数格納部10を具備するが、この図10では省略している。なお、プロセッサ16は、1次キャッシュメモリ3又は2次キャッシュメモリ17を、書き換え回数格納部10として用いるとしてもよい。
Further, the
キャッシュコントローラ8は、1次キャッシュメモリ3、2次キャッシュメモリ17へのアクセスを制御する。2次キャッシュメモリ17には、例えば、DRAMを用いることができる。本実施の形態において、2次キャッシュメモリ17は、ポータブル・ゲーム・コンソール・プロセッサ14と分離している。
The
2次キャッシュメモリ17に対するバンド幅は、NAND型フラッシュメインメモリ4の10倍程度とする。ディスクドライブ18としては、例えば、光ディスクドライブを用いることができる。
The bandwidth for the
本実施の形態において、NAND型フラッシュメインメモリ4への書き込みは、ゲームカートリッジの交換時とし、他の時点ではNAND型フラッシュメインメモリ4はリード・オンリーで利用されるとする。頻繁に書き込まれるデータ又はプログラムコード、頻繁に読み出されるデータ又はプログラムコードは、2次キャッシュメモリ17に格納される。さらに頻繁に読み出されるデータ又はプログラムコードは、1次キャッシュメモリ3に格納される。
In the present embodiment, writing to the NAND flash
なお、例えば、1次キャッシュメモリ3又は2次キャッシュメモリ17に記憶されているデータ又はプログラムコードのうち、使用頻度の低いデータ又はプログラムコードをNAND型フラッシュメインメモリ4に書き込み、NAND型フラッシュメインメモリ4に記憶されているデータ又はプログラムコードのうち、使用頻度の高いデータ又はプログラムコードを1次キャッシュメモリ3又は2次キャッシュメモリ17に記憶するとしてもよい。
For example, among data or program codes stored in the
本実施の形態では、例えば、1次キャッシュメモリ3は64キロバイト程度であり、2次キャッシュメモリ17は16〜128メガバイト程度であり、NAND型フラッシュメインメモリ4は1ギガバイト程度であるとする。
In the present embodiment, for example, the
例えば、グラフィクス・プロセッサ15の処理能力は、1/10バンド幅のNAND型フラッシュメインメモリ4の速度とつりあうか、その2〜3倍程度の能力とする。使用頻度の低いデータは、NAND型フラッシュメインメモリ4から読み出し、使用頻度の高いデータは、1次キャッシュメモリ3又は2次キャッシュメモリ17から読み出すとする。
For example, the processing capacity of the
本実施の形態においては、キャッシュ入れ替え(キャッシュミスなど)時に、NAND型フラッシュメインメモリ4のガーベージコレクション処理やイレースを行う、などのような最適化を実現することができるプロセッサ16を提供することができ、高度な最適化を行うことができる。
In the present embodiment, it is possible to provide a
なお、2次キャッシュメモリ17のエントリーサイズを1メガバイト程度とすると、NAND型フラッシュメインメモリ4との相性がよくなる。
If the entry size of the
本実施の形態においては、例えば2重に仮想メモリ変換が行われてオーバーヘッドが大きくなることを防止できる。 In the present embodiment, it is possible to prevent the overhead from being increased due to, for example, double virtual memory conversion.
本実施の形態においては、プロセッサ16に統合MMU13が備えられることにより、1次キャッシュメモリ3と二次キャッシュメモリ17とNAND型フラッシュメインメモリ4とを一括管理することができる。
In the present embodiment, the
そして、本実施の形態では、レジューム時に保存するデータ量を削減することができる。 In this embodiment, the amount of data to be saved at the time of resume can be reduced.
本実施の形態においては、NAND型フラッシュメインメモリ4にデータ又はプログラムを記憶することにより、ディスクドライブ18へのアクセスを削減でき、待ち時間を削減でき、ユーザの操作性及び満足度を向上させることができる。
In the present embodiment, by storing data or programs in the NAND flash
本実施の形態においては、二次キャッシュメモリ17(DRAM)よりもメモリ単価の安いNAND型フラッシュメインメモリ4を用いることにより、より多くのデータ又はプログラムを高速にアクセスすることができる。
In the present embodiment, more data or programs can be accessed at high speed by using the NAND type flash
(第5の実施の形態)
本実施の形態においては、プロセッサとメインメモリとの間に備えられた統合メモリ管理装置について説明する。
(Fifth embodiment)
In the present embodiment, an integrated memory management device provided between the processor and the main memory will be described.
図11は、本実施の形態に係る統合メモリ管理装置の一例を示すブロック図である。 FIG. 11 is a block diagram showing an example of the integrated memory management device according to the present embodiment.
本実施の形態に係る統合メモリ管理装置24は、システムバス30経由で、複数のプロセッサ(例えばCodec IP、Graphic IPを含む)251〜254と接続されている。統合メモリ管理装置24は、マルチプロセッサ構成に対して適用される。また、統合メモリ管理装置24は、例えばNAND型フラッシュメモリなどのような不揮発性のメインメモリ26と接続されている。なお、本実施の形態において、プロセッサの数は1又は2以上で自由に変更可能である。
The integrated
メインメモリ26では、書き込み及び読み込みは、ページと呼ばれる複数ビット単位で行われる。消去は、ブロックと呼ばれる、複数のページをまとめた単位で一括して行われる。
In the
複数のプロセッサ251〜254のうちのいくつかでは、論理アドレスを含むプロセスが実行されている。この例では、プロセッサ251,252,254でプロセス271,272,274が実行されている。なお、プロセス271,272,274は、オペレーティングシステムであってもよい。
Some of the plurality of
複数のプロセッサ251〜254のそれぞれは、1次キャッシュメモリ281〜284、2次キャッシュメモリ291〜294を具備する。
Each of the plurality of
統合メモリ管理装置24は、ウェアレベリングと、論理アドレスから物理アドレスへの変換を行う。
The integrated
統合メモリ管理装置24は、メインメモリ26のページ単位、ページサイズの整数倍単位、又はブロック単位でウェアレベリングを行う。ウェアレベリングカウンタは、メインメモリのリダンダンシ領域26aに記憶される。リダンダンシ領域26aは、メインメモリ26のページ又はブロック毎に設けられている冗長領域である。統合メモリ管理装置24は、メモリ空間にマッピングを行う場合に、ウェアレベリングを考慮してメモリ確保を行う。
The integrated
統合メモリ管理装置24は、リムーバブルメモリもメインメモリとして扱い、メモリ空間にマッピングする。
The integrated
この統合メモリ管理装置24は、複数のプロセッサ271〜274側というよりむしろメインメモリ26側に備えられている。しかしながら、統合メモリ管理装置24は、複数のプロセッサ271〜274側に備えられるとしてもよい。
The integrated
統合メモリ管理装置24は、命令とデータとで、ページサイズを切り換える。例えば、命令用のページサイズは16キロバイトなどのように小さいサイズとし、データ用のページサイズは512キロバイトなどのように大きいサイズとする。
The integrated
メインメモリ26は、統合メモリ管理装置24のページサイズ(プロセス又はOS)と同じメモリページサイズ又は統合メモリ管理装置34のページサイズの倍数となるメモリページサイズを持つ。
The
1次キャッシュメモリ281〜284及び2次キャッシュメモリ291〜294と、メインメモリ26との間では、一括してページの転送が実行される。この一括の転送は、例えば、メインメモリのページ単位、ページサイズの整数倍単位又はブロック単位(例えば、256 kilobyte 〜 512 kilobyte)で行われる。
Page transfer is performed collectively between the
1次キャッシュメモリ281〜284に対するアクセス、及び2次キャッシュメモリ291〜294に対するアクセスは論理アドレスに基づいて行われる。システムバス30上でも、論理アドレスが用いられる。
Access to the
統一的な統合メモリ管理装置24は、複数のプロセッサ271〜274に対して、プロセスレベルの論理アドレスから物理アドレスへの変換、さらに、メインメモリ26のページ単位、ページサイズの整数倍単位、又はブロック単位でのウェアレベリングのための論理ページ又は論理ブロックから物理ページ又は物理ブロックへの変換を総合して行う。
The unified integrated
本実施の形態においては、図12に示す形式のシステム論理アドレス31が用いられる。このシステム論理アドレス31は、プロセッサIDとプロセスID、プロセス内論理アドレスを含む。なお、プロセッサIDとプロセスIDとのうちの少なくとも一つは変換され(例えばハッシングなどを用いてIDの長さが短くされ)、システム論理アドレス31は、変換後の内容を含むとしてもよい。例えば、プロセッサIDとプロセスIDをハッシングで変換し、システム論理アドレス31は、このハッシングで変換されたビットとプロセス内論理アドレスとを含むとしてもよい。
In the present embodiment, a system
メインメモリ26は、システム全体で単一のページテーブル26bを記憶する。すなわち、メインメモリ26は、プロセス271,272,274毎のページテーブルを持つのではなく、プロセス271,272,274全体で統一したページテーブル26bを持つ。
The
本実施の形態においては、メインメモリ26にハードディスクドライブ(HDD)と同じ程度の容量を持つメインメモリ26を使用する。この場合、物理メモリよりも大きなメモリ空間を使用するために2次記憶(スワップアウト)を使用する必要はない。従来においては、物理メインメモリが例えばDRAMであって記憶容量が1GB程度であるが、プロセス毎に4GBの論理メモリ空間を使いたい場合に、より記憶容量の大きいハードディスクドライブ上に2次記憶領域を確保し、スワップイン/スワップアウトを行う必要があった。しかしながら、本実施の形態では、メインメモリ26がハードディスクドライブと同レベル以上の記憶容量を持つため、2次記憶を用いる必要がない。
In the present embodiment, the
したがって、装置構成及び動作をシンプルにすることができる。 Therefore, the apparatus configuration and operation can be simplified.
本実施の形態においては、インスタントON/OFFを行うことができ、レジュームなどを高速化することができる。 In the present embodiment, instant ON / OFF can be performed, and the speed of resume or the like can be increased.
従来においては、実行する前にファイルをロードする必要があった。これに対して、本実施の形態においては、キャッシュメモリ281〜284,291〜294又はメインメモリ26上の実行アドレスにジャンプするのみでよく、実行する前にファイルをロードする必要がない。
In the past, it was necessary to load a file before execution. On the other hand, in this embodiment, it is only necessary to jump to the execution address on the
(第6の実施の形態)
本実施の形態においては、上記第5の実施の形態の変形例について説明する。
(Sixth embodiment)
In the present embodiment, a modification of the fifth embodiment will be described.
図13は、本実施の形態に係る記憶装置の一例を示すブロック図である。 FIG. 13 is a block diagram illustrating an example of a storage device according to this embodiment.
本実施の形態に係る記憶装置において、複数の統合メモリ管理装置241,242は、ネットワーク33経由で、複数のプロセッサ(Codec IP、Graphic IPを含む)251〜254と接続されている。統合メモリ管理装置241,242は、例えばNAND型フラッシュメモリなどのような不揮発性の複数のメインメモリ261,262と接続されている。
In the storage device according to the present embodiment, the plurality of integrated
なお、統合メモリ管理装置の数、メインメモリの数は、自由に変更可能である。 The number of integrated memory management devices and the number of main memories can be freely changed.
メインメモリ261は、上記第5の実施の形態におけるメインメモリ26と同様の特徴を持ち、ウェアレベリングカウンタを記憶するリンダンシ領域261a、プロセス271,272,274全体で統一したページテーブル261bを持つ。メインメモリ262も、このメインメモリ261と同様の特徴を持つ。
The
本実施の形態で用いられる論理アドレス34は、図14に示すように、ネットワーク33のIPアドレス又はIPv6アドレス、プロセッサIDとプロセスID、プロセス内論理アドレスを含む。なお、各アドレス及びIDのうちの少なくとも一つは、変換され(例えばハッシングなどを用いてIDの長さが短くされ)、論理アドレス34は、変換後の内容を含むとしてもよい。例えば、IPアドレス又はIPv6アドレス、プロセッサIDとプロセスIDをハッシングで変換し、論理アドレス34は、このハッシングで変換されたビットとプロセス内論理アドレスとを含むとしてもよい。
As shown in FIG. 14, the
メインメモリ261,262は、統合メモリ管理装置241,242のページサイズと同じメモリページサイズ又はMMU241,242のページサイズの整数倍となるメモリページサイズを持つ。
The
1次キャッシュメモリ281〜284及び2次キャッシュメモリ291〜294と、メインメモリ261,262との間では、一括してページの転送が実行される。この一括の転送は、例えば、メインメモリのページ単位、ページサイズの整数倍単位、又はブロック単位(例えば、256 kilobyte 〜 512 kilobyte)で行われる。
Page transfer is performed in a batch between the
本実施の形態において、1次キャッシュメモリ281〜284に対するアクセス、及び2次キャッシュメモリ291〜294に対するアクセスは、論理アドレスに基づいて実行される。ネットワーク33上でも、論理アドレスが用いられる。
In the present embodiment, access to the
統一的な統合メモリ管理装置241,242は、複数のプロセッサ271〜274に対して、プロセスレベルの論理アドレスから物理アドレスへの変換、さらに、不揮発性のメインメモリ261,242のページ単位、ページサイズの整数倍単位、又はブロック単位でのウェアレべリングのための論理ページ又は論理ブロックから物理ページ又は物理ブロックへの変換を総合して行う。
The unified integrated
本実施の形態においては、ネットワーク33経由の広大なメモリ空間において上記第5の実施の形態と同様の効果を得ることができる。
In the present embodiment, an effect similar to that of the fifth embodiment can be obtained in a vast memory space via the
(第7の実施の形態)
本実施の形態においては、上記第5及び第6の実施の形態の変形例について説明する。以下においては、上記第5の実施の形態の変形例について説明するが、上記第6の実施の形態についても同様に変形可能である。
(Seventh embodiment)
In the present embodiment, modified examples of the fifth and sixth embodiments will be described. In the following, a modification of the fifth embodiment will be described, but the sixth embodiment can be similarly modified.
図15は、本実施の形態に係る統合メモリ管理装置の一例を示すブロック図である。 FIG. 15 is a block diagram illustrating an example of the integrated memory management device according to the present embodiment.
複数のプロセッサ351〜354は、システムバス30経由で、メインメモリ26と接続されている。なお、本実施の形態において、プロセッサの数は自由に変更可能である。
The plurality of processors 351 to 354 are connected to the
複数のプロセッサ351〜354のうちのいくつかでは、論理アドレスを含むプロセスが実行されている。この例では、プロセッサ351,352,354でプロセス271,272,274が実行されている。プロセス271,272,274はオペレーティングシステムであってもよい。
In some of the plurality of processors 351 to 354, a process including a logical address is executed. In this example, processes 271, 272, and 274 are executed by the processors 351, 352, and 354.
複数のプロセッサ351〜354のそれぞれは、1次キャッシュメモリ361〜364、2次キャッシュメモリ371〜374、統合メモリ管理装置381〜384を具備する。
Each of the plurality of processors 351 to 354 includes
統合メモリ管理装置381〜384は、ウェアレベリングと、論理アドレスから物理アドレスへの変換を行う。統合メモリ管理装置381〜384は、複数のプロセッサ351〜354側に備えられている。
The integrated
メインメモリ26は、統合メモリ管理装置381〜384のページサイズと同じメモリページサイズ又は統合メモリ管理装置381〜384のページサイズの整数数となるメモリページサイズを持つ。
The
1次キャッシュメモリ361〜364及び2次キャッシュメモリ371〜374と、メインメモリ26との間では、一括してページの転送が実行される。この一括の転送は、例えば、メインメモリのブロック(ページの整数倍)単位(例えば、256 kilobyte 〜 512 kilobyte)で行われる。
Page transfer is performed collectively between the
本実施の形態において、1次キャッシュメモリ361〜364に対するアクセス、及び2次キャッシュメモリ371〜374に対するアクセスでは物理アドレスが用いられる。システムバス30上でも、物理アドレスが用いられる。
In the present embodiment, physical addresses are used for access to the
複数のプロセッサ351〜354毎に備えられる統合メモリ管理装置381〜384は、プロセスレベルの論理アドレスから物理アドレスへの変換、さらに、メインメモリ26のページ単位、ページサイズの整数倍単位又はブロック単位でのウェアレべリングのための論理ページ又は論理ブロックから物理ページ又は物理ブロックへの変換を行う。
The integrated
以上説明した本実施の形態においては、統合メモリ管理装置381〜384をプロセッサ351〜354側に設けた場合であっても、上記第5と同様の効果を得ることができる。
In the present embodiment described above, even when the integrated
(第8の実施の形態)
本実施の形態では、上記第5の実施の形態の詳細について説明する。
(Eighth embodiment)
In the present embodiment, details of the fifth embodiment will be described.
図16は、本実施の形態に係る統合メモリ管理装置24の構成の一例を示すブロック図である。
FIG. 16 is a block diagram showing an example of the configuration of the integrated
NAND型フラッシュメインメモリ26は、物理アドレスに対応する物理ブロック39、ページテーブル26b、メモリ使用情報40、メモリ固有情報41を備える。
The NAND flash
各プロセッサ251〜254の1次キャッシュメモリ281〜284、2次キャッシュメモリ291〜294のキャッシュラインサイズと、NAND型フラッシュメインメモリ26のブロックサイズ又はページサイズの整数倍とは、同じサイズであり、データ転送の効率化が図られている。
The cache line sizes of the
NAND型フラッシュメインメモリ26において、各種のデータは、例えばデータD1のように複数の物理ブロック39にまたがって存在するとしてもよい。また、例えば複数のデータD1,D2のように、複数のデータが一つの物理ブロック39に存在するとしてもよい。
In the NAND flash
そして、各データD1,D2は、固有の読み書き頻度情報E1,E2を持つとしてもよい。例えば、各データD1,D2は、スタティック情報とダイナミック情報とのうちの少なくとも一方を備えている。スタティック情報は、当初から決まっている値である。ダイナミック情報は、実際にそのデータが書き換えられた回数、読み出された回数を含む。 Each data D1, D2 may have unique read / write frequency information E1, E2. For example, each data D1 and D2 includes at least one of static information and dynamic information. The static information is a value determined from the beginning. The dynamic information includes the number of times the data has been actually rewritten and the number of times the data has been read.
例えば、デジタルカメラの画像データのスタティック情報として、撮影された直後に2時間に1回読み出し及び書き込みが行われる旨の情報、撮影されて3日経過後に2週間に一度読み出しが行われ、書き込みは行われない旨の情報、などが記憶される。また、例えば、ウェブブラウザのキャッシュ情報のスタティック情報として、数分に1回書き込み及び読み出しが行われる旨の情報、ある程度以上アクセスされるサイトの情報が1日に1回書き込まれる旨の情報、周期性のアクセスパターンがある場合にはその情報が書き込まれる旨の情報、所定の時間において書き込みが多い旨の情報、などが記憶される。 For example, as static information of image data of a digital camera, information that reading and writing are performed once every two hours immediately after being photographed, reading is performed once every two weeks after three days have passed since photographing, Information not to be performed is stored. In addition, for example, as static information of cache information of a web browser, information that writing and reading are performed once every several minutes, information that information of sites accessed for a certain degree or more is written once a day, cycle If there is a specific access pattern, information indicating that the information is written, information indicating that there are many writes in a predetermined time, and the like are stored.
スタティック情報は、様々なデータの種類に対して、効果的な値を設定する必要がある。このスタティック情報の設定ファイルは、ネットワーク上で共有されるとしてもよい。 The static information needs to be set to an effective value for various types of data. The static information setting file may be shared on the network.
ページテーブル26bは、全システムで一つあればよい。あるいは、ページテーブル26bはなくてもよい。 There may be only one page table 26b in all systems. Alternatively, the page table 26b may not be provided.
メモリ使用情報40は、各メモリ領域の読み書き回数と、各データの読み書き回数を含む。より詳細に説明すると、例えば、メモリ使用情報40は、各メモリ領域(ページ又はブロック)について、書き換え回数、読み出し回数、この領域内に存在するデータ情報(個数、種類、各データ固有の読み出し回数、書き換え回数などを含む)を具備する。
The
メモリ固有情報41は、NAND型フラッシュメインメモリ26のページサイズ、ブロックサイズ、書き換え可能回数、読み出し可能回数などを含む。より詳細に説明すると、例えば、メモリ固有情報41は、NAND型フラッシュメインメモリ26のページサイズ、ブロックサイズ、全記憶容量、SLC(Single Level Cell)領域情報(ブロック位置、サイズ、読み出し可能回数、書き込み可能回数などを含む)、MLC(Multi Level Cell)領域情報(ブロック位置、サイズ、読み出し可能回数、書き込み可能回数などを含む)を具備する。
The memory
統合メモリ管理装置24は、各プロセス(OSでもよい)用論理アドレスを物理アドレスに変換し、NAND型フラッシュメインメモリ26用の論理アドレスを物理アドレスに変換する。
The integrated
また、メモリ管理装置24は、データD1,D2固有の読み書き頻度情報E1,E2、メモリ使用情報40、メモリ固有情報41に基づいて、最適なウェアレべリングを実行する。
Further, the
メモリ管理装置24は、マイクロプロセッサ42、作業メモリ43、情報レジスタ44、キャッシュメモリ45を具備する。
The
マイクロプロセッサ42は、情報レジスタ44、作業メモリ43を利用しつつ、メモリ管理を実行する。キャッシュメモリ45は、各プロセッサ271〜274からのデータ及びNAND型フラッシュメインメモリ26からのデータの一時保存などに用いられる。なお、キャッシュメモリ45は、外付けのDRAMでもよい。
The
図17は、マイクロプロセッサ42の機能の一例を示すブロック図である。
FIG. 17 is a block diagram illustrating an example of the functions of the
マイクロプロセッサ42は、取得機能42a、アドレス変換機能42b、アクセス機能42c、転送機能42dを備える。
The
複数のプロセッサ251〜254のいずれかが、NAND型フラッシュメインメモリ26のデータを読み出す場合、取得機能42aは、複数のプロセッサ251〜254のいずれかから、読み出し論理アドレスを取得する。
When any of the plurality of
アドレス変換機能42bは、取得機能42aによって取得された読み出し先論理アドレスを、NAND型フラッシュメインメモリ26の読み出し先物理アドレスに変換する。例えば、NAND型フラッシュメインメモリ26は、複数のグループ属性を持つ領域に分割されており、それぞれのグループ属性がメモリ固有情報41として保有されているとする。この場合、アドレス変換機能42bは、いずれかのプロセッサ上で動作するファイル管理プログラム(プロセス)により定義されたデータD1,D2固有の読み書き頻度情報E1,E2と、メモリ固有情報41とを参照し、データD1,D2固有の読み書き頻度情報E1,E2に対応するグループ属性の領域内に書き込み先物理アドレスを対応させる。
The address conversion function 42 b converts the read destination logical address acquired by the
アクセス機能42cは、NAND型フラッシュメインメモリ26から、読み出し先物理アドレスに対応するデータを読み出す。ここで、この読み出されるデータのデータサイズは、NAND型フラッシュメインメモリ26のページサイズの整数倍又はブロックサイズとする。
The
転送機能42dは、読み出されたデータを、読み出し論理アドレスを発行したプロセッサのキャッシュメモリに転送する。ここで、読み出し論理アドレスを発行したプロセッサのキャッシュメモリのキャッシュサイズは、NAND型フラッシュメインメモリ26のページサイズの整数倍又はブロックサイズに依存している。
The
複数のプロセッサ251〜254のいずれかが、NAND型フラッシュメインメモリ26へデータを書き込む場合、取得機能42aは、プロセッサから、書き込み先論理アドレスと、書き込みデータとを取得する。ここで、書き込みデータのサイズは、キャッシュサイズとする。
When any of the plurality of
アドレス変換機能42bは、取得機能42aによって取得された書き込み先論理アドレスを、NAND型フラッシュメインメモリ26の書き込み先物理アドレスに変換する。
The address conversion function 42 b converts the write destination logical address acquired by the
アクセス機能42cは、NAND型フラッシュメインメモリ26の書き込み先物理アドレスに対応する位置に、書き込みデータを書き込む。
The
マイクロプロセッサ42のアドレス変換機能42bは、データ固有の読み書き頻度情報、メモリ使用情報40と、メモリ固有情報41とのうちの少なくとも一つに基づいて、ウェアレべリングを行う。
The address conversion function 42b of the
図18は、メモリ管理装置24の転送アルゴリズムの第1の動作の例を示す図である。
FIG. 18 is a diagram illustrating an example of a first operation of the transfer algorithm of the
メモリ管理装置24のマイクロプロセッサ42は、起動時に、メモリ使用情報40及びメモリ固有情報41を読み込み、情報レジスタ44に格納する。メモリ固有情報41には、NAND型フラッシュメインメモリ26のページサイズ及びブロックサイズが含まれている。各プロセッサ271〜274のキャッシュサイズは、NAND型フラッシュメインメモリ26のブロックサイズ又はページサイズの整数倍である。
The
従来から使用されているプロセッサにメモリ管理装置24を適用する場合であって、この従来のプロセッサについてキャッシュサイズを変更できない場合には、マイクロプロセッサ42は、キャッシュメモリ45でバッファリングを行い、プロセッサ271〜274のキャッシュサイズとNAND型フラッシュメインメモリ26のブロックサイズ又はページサイズの整数倍との差を調整する。例えば、マイクロプロセッサ42は、ページサイズ256kilobyte分のデータをキャッシュメモリ45に読み込み、プロセッサ271〜274のいずれかに対して、キャッシュライン4kilobyte分のデータを出力する。
When the
図19は、メモリ管理装置24の転送アルゴリズムの第2の動作の例を示す図である。
FIG. 19 is a diagram illustrating an example of a second operation of the transfer algorithm of the
メモリ管理装置24のマイクロプロセッサ42は、いずれかのプロセッサ252から、1キャッシュライン分のアクセス要求を受信する(Tr19A)。
The
次に、マイクロプロセッサ42は、アクセス要求に対応するブロック又はページの整数倍のデータを、NAND型フラッシュメインメモリ26から読み出し、キャッシュメモリ45に記憶する(Tr19B)。
Next, the
次に、マイクロプロセッサ42は、アクセス要求に対応するデータを、キャッシュメモリ45からプロセッサ252に送信する(Tr19C)。
Next, the
図20は、メモリ管理装置24の転送アルゴリズムの第3の動作の例を示す図である。
FIG. 20 is a diagram illustrating a third operation example of the transfer algorithm of the
いずれかのプロセッサ252は、キャッシュメモリ282又はキャッシュメモリ292のデータを書き換える(Tr20A)。
One of the
次に、メモリ管理装置24のマイクロプロセッサ42は、キャッシュメモリ282又はキャッシュメモリ292の書き換えられたデータをキャッシュアウトし、キャッシュメモリ45に転送する(Tr20B)。
Next, the
すると、マイクロプロセッサ42は、このデータが持つ読み書き頻度情報、情報レジスタ44に記憶されているメモリ使用情報40及びメモリ固有情報41に基づいて、ウェアレべリングを行い、NAND型フラッシュメインメモリ26の複数の物理ブロックの中から書き込みを行ういずれかの物理ブロック39を決定する。
Then, the
マイクロプロセッサ42は、キャッシュメモリ45に記憶されている書き換えられたデータを、決定された物理ブロック39に記憶する(Tr20C)。
The
この書き込みにおいては、必要に応じて、メモリブロックの移動、ガーページコレクションが行われる。 In this writing, a memory block is moved and a garpage is collected as necessary.
図21は、ウェアレべリングの一例を示すブロック図である。 FIG. 21 is a block diagram illustrating an example of wear leveling.
NAND型フラッシュメインメモリ26は、2以上のバンク46a,46bを備える。
The NAND flash
マイクロプロセッサ42は、データ(ブロック又はページ)を、順次、一方のバンク46aに追加記憶していく。
The
データの削除が発生すると、マイクロプロセッサ42は、バンク46a上の削除対象のデータを削除する。しかしながら、このバンク46aにおける最後の領域にデータが記憶されるまで、順次、追加記憶は継続される。書き込み対象となっているバンク46aでは、途中で削除された部分に書き込みは行われない。したがって、書き込み対象となっているバンク46aにおいてデータの削除が発生すると、この削除された領域のデータが欠けた状態となる。
When data deletion occurs, the
マイクロプロセッサ42は、一方のバンク46aの最後の領域までデータを記憶すると、このバンク46aのうち削除されていない有効なデータを、他方のバンク46bにガーベージコレクションしながらコピーし、この他方のバンク48bにおいて、コピーされたデータの次から新たなデータを追加記憶していく。また、マイクロプロセッサ42は、一方のバンク46aのデータを他方のバンク46bにコピーした後、一方のバンク46aに対してクリアを行う。その後、同様の処理が繰り返される。
When the
ここで、メモリ管理装置24のマイクロプロセッサ42で用いられるウェアレべリング・アルゴリズムの具体的動作例について説明する。
Here, a specific operation example of the wear leveling algorithm used in the
まず、マイクロプロセッサ42は、いずれかのプロセッサ又はOSから、書き込まれるデータを受信する。書き込まれるデータが複数の場合には、書き込み頻度の一番高いデータを基準として用いる。プロセッサ又はOSが従来型の場合、マイクロプロセッサ42は、データの先頭などを調べて、データの種類を判断する。
First, the
例えば、マイクロプロセッサ42は、書き込まれるデータの種別が圧縮された画像データの場合、この書き込まれるデータの書き込み頻度は少ないため、MLC領域を書き換え領域に決定する。または、マイクロプロセッサ42は、書き込まれるデータの種別が圧縮された画像データの場合、すでに書き換え回数が多くなっている空領域を書き換え領域に決定する。
For example, in the case of image data in which the type of data to be written is compressed, the
例えば、マイクロプロセッサ42は、書き込まれるデータの種別がウェブブラウザのキャッシュデータの場合、書き込み頻度が高いため、SLC領域を書き換え領域に決定する。
For example, when the type of data to be written is cache data of a web browser, the
例えば、マイクロプロセッサ42は、SLC領域又はMLC領域の中から、書き換え回数の一番少ない空ブロックを、書き込み領域に決定する。
For example, the
例えば、マイクロプロセッサ42は、NAND型フラッシュメインメモリ26における全ての空き領域(例えば空きブロック)の書き換え回数が、最大書き込み可能回数の所定の割合(例えば80%など)に達している場合に、すでにデータの書き込まれている領域のうち、スタティック情報に基づく書き換え頻度が少なく、さらにダイナミック情報に基づく書き換え回数も少ない領域を選択し、この選択された領域のデータを、空き領域に記憶する。そして、マイクロプロセッサ42は、この選択された領域のデータを削除する。すなわち、空き領域と選択された領域との間でデータの入れ替えを行う。
For example, when the number of rewrites of all free areas (for example, free blocks) in the NAND flash
本実施の形態において、メモリ管理装置24のマイクロプロセッサ42は、複数のNAND型フラッシュメインメモリ26を管理するとしてもよい。
In the present embodiment, the
図22は、複数のNAND型フラッシュメインメモリ26を管理する統合メモリ管理装置24の一例を示す斜視図である。
FIG. 22 is a perspective view showing an example of an integrated
一つの統合メモリ管理装置24と、複数のNAND型フラッシュメインメモリ26とで、一つのメモリユニット47が形成される。図22の例では、3つのメモリユニット47が形成されている。
One integrated
統合メモリ管理装置24は、同じメモリユニット47に属する複数のNAND型フラッシュメインメモリ26に対するアクセスを管理する。
The integrated
さらに、複数のメモリユニット47内に備えられている複数の統合メモリ管理装置24は、互いに連携して一つのメモリ管理装置にように動作する。
Furthermore, the plurality of integrated
メモリユニット47の統合メモリ管理装置24は、メモリユニット47内の複数のNAND型フラッシュメインメモリ26に対するECC機能及びRAID機能を備え、ミラーリング及びストライピングを行う。
The integrated
それぞれのNAND型フラッシュメインメモリ26は、メモリユニット47が通電中(動作中)であっても、ホットスワップ(交換)可能である。複数のNAND型フラッシュメインメモリ26のそれぞれには、ボタン48が備えられている。
Each NAND flash
ボタン48は、警告出力部(例えばLEDなど)を備える。例えば、警告出力部が第1の色(緑)の場合は、正常状態を表し、第2の色(赤)の場合には交換必要な状態を表す。
The
ボタン48を押すと、プロセス及びOSに通知が送信され、アクセスなどが発生していない取り外し安全なときに、ボタン48は、第3の色(青)になり、このボタン48に対応するNAND型フラッシュメインメモリ26は、ホットスワップ可能となる。
When the
ホットスワップ実行時には、ホットスワップを要求するボタン48が押された後、ライトバックが完了した時点で、交換可能であることを示すランプが点灯し、NAND型フラッシュメインメモリ26の交換が行われる。
When hot swap is executed, after the
メモリ管理装置26のマイクロプロセッサ42は、情報レジスタ44に記憶されているメモリ使用情報40とメモリ固有情報41とを参照し、各NAND型フラッシュメインメモリ26の書き換え回数又は読み出し回数とが、メモリ固有情報41に記述されている上限に達したか否か判断する。そして、マイクロプロセッサ42は、書き換え回数又は読み出し回数が上限に達している場合、メモリ交換を通知又は警告する。
The
本実施の形態において、NAND型フラッシュメインメモリ26のページサイズ又はブロックサイズが大きい場合、プリロードが有効である。
In the present embodiment, preloading is effective when the page size or block size of the NAND flash
プリロードを行う場合、統合メモリ管理装置24のマイクロプロセッサ42は、NAND型フラッシュメインメモリ26におけるデータ固有情報E1,E2を参照し、頻繁にアクセスされる可能性の高いデータを、予めキャッシュメモリ45にプリロードしておく。
When preloading is performed, the
あるいは、マイクロプロセッサ42は、周期性のあるデータであって、所定の時間にアクセスされる可能性の高いデータを、その所定時間の前にプリロードしておく。
Alternatively, the
図23は、MMUを備えている既存のプロセッサに対して、本実施の形態に係る統合メモリ管理装置24を用いたマルチプロセッサシステムの一例を示すブロック図である。
FIG. 23 is a block diagram showing an example of a multiprocessor system using the integrated
プロセッサ255は、既存のプロセッサであり、MMU495、1次キャッシュメモリ285、2次キャッシュメモリ295を備え、プロセス275を実行する。この図23のシステムでは、通常のMMU495によるアドレス変換と、本実施の形態に係る統合メモリ管理装置24によるアドレス変換とが混在することになる。この場合、プロセッサ255のMMU495は、NAND型フラッシュメインメモリ26へアクセスする場合に、まずNAND型フラッシュメインメモリ26のページテーブル26bをアクセスする。しかしながら、このページテーブル26bは、アドレス変換を行うことなく、変換をスルーする内容とする。例えば、ページテーブル26bでは、変換前のアドレスと変換後のアドレスとが同じに設定されている。これにより、プロセッサ255のMMU495ではアドレス変換が行われず、メモリ管理装置24でアドレス変換を行うことが可能となる。
The
上記の図16に示す本実施の形態に係るメモリ管理装置24を用いたシステムと、従来のマルチプロセッサシステムとの相違点を、以下で説明する。
Differences between the system using the
図24は、一般的な従来のマルチプロセッサシステムの一例を示すブロック図である。 FIG. 24 is a block diagram showing an example of a general conventional multiprocessor system.
従来のマルチプロセッサシステムでは、既存のプロセッサ255〜258とメインメモリ50と2次記憶装置51とがシステムバス30で接続されている。
In a conventional multiprocessor system, existing
各プロセッサ255〜258は、それぞれ、MMU495〜498、1次キャッシュメモリ285〜288、2次キャッシュメモリ295〜298を具備する。各プロセッサ255〜258は、それぞれプロセス275〜277を実行する。
Each of the
MMU495〜498は、論理アドレスと物理アドレスとの間の変換を行う。各プロセッサ255〜258から、1次キャッシュメモリ285〜288、2次キャッシュメモリ295〜298、メインメモリ50、2次記憶装置51のいずれかへのアクセスは、物理アドレスに基づいて行われる。
The
メインメモリ50には、例えばDRAMなどのような揮発性の記憶装置が用いられる。メインメモリ50は、各プロセス275〜277ごとのページテーブル525〜528を備える。
For the
2次記憶装置51には、例えば、ハードディスクドライブ、SSD(Solid State Drive)、NAND型フラッシュメモリなどが用いられる。
As the
従来のマルチプロセッサシステムではメインメモリにDRAMなどが用いられているのに対して、本実施の形態に係るマルチプロセッサシステムでは、NAND型フラッシュメインメモリ26がメインメモリとして用いられている。通常、DRAMのビット単価は、NAND型フラッシュメインメモリ26のビット単価よりも高い。したがって、本実施の形態においては、コストを削減させることができる。
In the conventional multiprocessor system, DRAM or the like is used as the main memory, whereas in the multiprocessor system according to the present embodiment, the NAND flash
従来のマルチプロセッサシステムではメインメモリが揮発性であるのに対して、本実施の形態に係るマルチプロセッサシステムではメインメモリとして不揮発性のNAND型フラッシュメインメモリ26が用いられる。これにより、本実施の形態においては、インスタントオンが可能となり、メインメモリへプログラム又はデータなどのロード時間などを削除することができ、動作速度を向上させることができる。
In the conventional multiprocessor system, the main memory is volatile, whereas in the multiprocessor system according to the present embodiment, the nonvolatile NAND flash
従来のマルチプロセッサシステムでは、揮発性のメインメモリ50と不揮発性の2次記憶装置51との双方が搭載される。これに対して、本実施の形態に係るマルチプロセッサシステムでは、NAND型フラッシュメインメモリ26を搭載することで、メインメモリを不揮発性にすることができ、ハードディスクなどのような2次記憶装置を除去することができる。本実施の形態においては、メインメモリとしてDRAMを搭載する必要がない。そして、本実施の形態においては、キャッシュとしてDRAMを搭載する場合に、このキャッシュの記憶容量が少なくてもよい。したがって、本実施の形態においては、システム構成及びメモリ管理を簡略化することができ、コストを削減することができる。
In a conventional multiprocessor system, both a volatile
従来のマルチプロセッサシステムでは、ページテーブル525〜528を共有しなければならず、アクセスネックが発生する。これに対して、本実施の形態に係るマルチプロセッサシステムでは、ページテーブルを共有する必要がなく、アクセスネックを解消することができる、
従来のように、2次記憶装置にDRAM又はSSDを用いた場合、ファイル、SATA(Serial ATA)などの概念が用いられる。この場合、必ずオーバーヘッドが存在する。これに対して、本実施の形態では、データはファイルによって抽象化されることはなく、メモリが直接アクセスされる。したがって、本実施の形態では、データに対するアクセスを効率化できる。
In the conventional multiprocessor system, the page tables 525 to 528 must be shared, and an access neck occurs. On the other hand, in the multiprocessor system according to the present embodiment, it is not necessary to share the page table, and the access bottleneck can be eliminated.
When a DRAM or SSD is used as a secondary storage device as in the past, concepts such as a file and SATA (Serial ATA) are used. In this case, there is always overhead. On the other hand, in the present embodiment, data is not abstracted by a file, and the memory is directly accessed. Therefore, in this embodiment, access to data can be made efficient.
従来のように2次記憶装置にDRAM又はSSDを用いた場合と比べて、本実施の形態では、立ち上り時に、ディスクサーチ時間が必要ないため、立ち上り時間を短縮化できる。本実施の形態では、アプリケーションの立ち上りスピードも高速化できる。本実施の形態では、検索速度及びアプリケーションの実行速度を高速化できる。本実施の形態では、複数のプロセッサ毎にアプリケーションを動作させることができる。本実施の形態では、不揮発性のメインメモリが利用されるため、システムのスリープ時に、バッテリの寿命を考慮する必要がない。本実施の形態では、部品数を削減させることができ、コストを抑制できる。本実施の形態は、マルチプロセッサ環境に容易に適応できる。本実施の形態では、インストールが必要なく、プロセスマイグレーションをなくすことができる。 Compared to the case where a DRAM or SSD is used for the secondary storage device as in the prior art, in this embodiment, since no disk search time is required at the time of startup, the startup time can be shortened. In the present embodiment, the application startup speed can also be increased. In the present embodiment, the search speed and the application execution speed can be increased. In this embodiment, an application can be operated for each of a plurality of processors. In this embodiment, since the nonvolatile main memory is used, it is not necessary to consider the battery life when the system sleeps. In the present embodiment, the number of parts can be reduced and the cost can be suppressed. This embodiment can be easily adapted to a multiprocessor environment. In this embodiment, no installation is required and process migration can be eliminated.
本実施の形態においては、データ固有の読み書き頻度情報E1,E2、メモリ使用情報40、メモリ固有情報41に基づいて、メモリ管理装置24によって最適なウェアレべリングが行われる。本実施の形態においては、データ固有の読み書き頻度情報E1,E2に基づいてウェアレべリングを行うことにより、SSDよりも効率よくウェアレべリングを行うことができる。
In the present embodiment, optimal wear leveling is performed by the
一般的に、NAND型フラッシュメモリの世代が異なる場合には、ページサイズ及びブロックサイズも相違している。本実施の形態において、メモリ管理装置24は、NAND型フラッシュメインメモリ26からメモリ固有情報41を読み出し、このメモリ固有情報41で示されるページサイズ又はブロックサイズに応じた処理を行う。これにより、様々な世代のNAND型フラッシュメモリを、NAND型フラッシュメインメモリ26として用いることができる。本実施の形態において、メインメモリ管理装置24は、NAND型フラッシュメインメモリ26からページサイズ又はブロックサイズを含むメモリ固有情報41を読み出し、NAND型フラッシュメインメモリ26のページサイズ又はブロックサイズと、各プロセッサのキャッシュラインサイズとを合わせることができる。
Generally, when the generation of NAND flash memory is different, the page size and block size are also different. In the present embodiment, the
本実施の形態において、メモリ管理装置24は、NAND型フラッシュメインメモリ26の寿命管理を行い、警告を行う。これにより、不具合の発生を防止することができる。
In the present embodiment, the
本実施の形態において、メモリ管理装置24は、複数のNAND型フラッシュメインメモリ26に対するRAID機能を持ち、取り替え換え対象のNAND型フラッシュメインメモリ26のホットスワップを実現することができる。これにより、寿命のつきたNAND型フラッシュメインメモリ26を容易に取り替えることができる。
In the present embodiment, the
ここで、複数のプロセッサに対して、複数のNAND型フラッシュメインメモリを備えた場合の仮想記憶アクセスの一例について説明する。 Here, an example of virtual memory access when a plurality of NAND flash main memories are provided for a plurality of processors will be described.
図25は、広いアドレス空間用のポインタを求める処理の一例を示すブロック図である。 FIG. 25 is a block diagram illustrating an example of processing for obtaining a pointer for a wide address space.
ポインタ53は、狭いアドレス空間用のポインタ53aと、狭いアドレス空間用のポインタ53bとを含む。
The pointer 53 includes a
セグメントテーブル54は、プロセスID55ごとに設けられており、広いアドレス空間用のポインタ56を備える。
The segment table 54 is provided for each
例えば、広いアドレス空間用のポインタ57は、狭いアドレス空間用のポインタ53bと、狭いアドレス空間用のポインタ53aによって特定されるセグメントテーブル54上の広いアドレス空間用のポインタ56とを組み合わせることで得られる。なお、広いアドレス空間用のポインタ57は、狭いアドレス空間用のポインタ53bと、狭いアドレス空間用のポインタ53aと、セグメントテーブル54上の広いアドレス空間用のポインタ56とを組み合わせて生成されるとしてもよい。
For example, the wide
図26は、複数のキャッシュメモリと複数のNAND型フラッシュメインメモリとで形成される仮想記憶空間の一例を示すブロック図である。 FIG. 26 is a block diagram showing an example of a virtual storage space formed by a plurality of cache memories and a plurality of NAND flash main memories.
広いアドレス空間用のポインタ57は、プロセッサのキャッシュメモリ581〜58nと、複数のNAND型フラッシュメインメモリ591〜59mとによって構成される仮想記憶空間60のいずれかを指す。
The wide
これにより、プロセッサのキャッシュメモリ581〜58nと、複数のNAND型フラッシュメインメモリ591〜59mとを統合的に扱うことが可能である。
As a result, the
上記各実施の形態において、メインメモリには、NAND型フラッシュメモリに代えて、他の不揮発性メモリを用いるとしてもよい。 In each of the above embodiments, other nonvolatile memory may be used as the main memory instead of the NAND flash memory.
上記各実施の形態に係る統合メモリ管理装置は、キャッシュがライトバック型の場合及びライトスルー型の場合のいずれにおいても適用可能である。 The integrated memory management device according to each of the above embodiments can be applied to both cases where the cache is a write-back type and a write-through type.
1,11…MPU、2,12,24,381〜384…統合メモリ管理装置、3,281〜284…1次キャッシュメモリ、3a,22a…タグ格納領域、3b,22b…ライン格納領域、4,26,261,262…NAND型フラッシュメインメモリ、5…アドレス変換テーブル、6…書き換え回数データ、7…MMU、8…キャッシュコントローラ、8a…第1のキャッシュコントローラ、8b…第2のキャッシュコントローラ、9…メインメモリ用MMU、10…アクセス履歴格納部、13…統合MMU、16,251〜254…プロセッサ、17,22,291〜294…2次キャッシュメモリ、23…アドレス関係格納部、271〜274…プロセス、30…システムバス、33…ネットワーク、40…メモリ使用情報、41…メモリ固有情報、42…マイクロプロセッサ、42a…取得機能、42b…アドレス変換機能、42c…アクセス機能、42d…転送機能、43…作業メモリ、44…情報レジスタ、45…キャッシュメモリ、E1,E2…読み書き頻度情報、39…物理ブロック
DESCRIPTION OF
Claims (9)
前記キャッシュメモリをアクセスするための物理アドレスに基づいて、前記キャッシュメモリをアクセスする、前記プロセッサに備えられるキャッシュコントローラと、
前記プロセッサ外のメインメモリに対するアクセス状態を示すアクセス履歴データを格納する、前記プロセッサに備えられるアクセス履歴格納部と、
前記メインメモリにおける論理アドレスと物理アドレスとの関係を示すアドレス関係データを格納する、前記プロセッサに備えられているアドレス関係格納部と、
前記アクセス履歴データと前記アドレス関係データとに基づいて、前記メインメモリをアクセスするための論理アドレスを、前記メインメモリをアクセスするための物理アドレスに変換し、前記メインメモリをアクセスするための物理アドレスに基づいて、前記メインメモリをアクセスする、前記プロセッサに備えられる第2のメモリマネジメントユニットと
を具備する統合メモリ管理装置。 A first memory management unit provided in a processor for converting a logical address for accessing the cache memory into a physical address for accessing the cache memory;
A cache controller provided in the processor for accessing the cache memory based on a physical address for accessing the cache memory;
An access history storage unit provided in the processor for storing access history data indicating an access state to the main memory outside the processor;
An address relationship storage unit provided in the processor for storing address relationship data indicating a relationship between a logical address and a physical address in the main memory;
Based on the access history data and the address relation data, a logical address for accessing the main memory is converted into a physical address for accessing the main memory, and a physical address for accessing the main memory And a second memory management unit provided in the processor for accessing the main memory based on the integrated memory management device.
前記プロセッサ外のメインメモリに対するアクセス状態を示すアクセス履歴データを格納する、前記プロセッサに備えられるアクセス履歴格納部と、
前記メインメモリにおける論理アドレスと物理アドレスとの関係を示すアドレス関係データを格納する、前記プロセッサに備えられているアドレス関係格納部と、
前記アクセス履歴データと前記アドレス関係データとに基づいて、前記メインメモリをアクセスするための論理アドレスを、前記メインメモリをアクセスするための物理アドレスに変換する、前記プロセッサに備えられる第2のメモリマネジメントユニットと、
前記キャッシュメモリをアクセスするための物理アドレスに基づいて、前記キャッシュメモリをアクセスするとともに、前記メインメモリをアクセスするための物理アドレスに基づいて、前記メインメモリをアクセスする、前記プロセッサに備えられるキャッシュコントローラと
を具備する統合メモリ管理装置。 A first memory management unit provided in a processor for converting a logical address for accessing the cache memory into a physical address for accessing the cache memory;
An access history storage unit provided in the processor for storing access history data indicating an access state to the main memory outside the processor;
An address relationship storage unit provided in the processor for storing address relationship data indicating a relationship between a logical address and a physical address in the main memory;
Second memory management provided in the processor, which converts a logical address for accessing the main memory into a physical address for accessing the main memory based on the access history data and the address relation data Unit,
A cache controller provided in the processor for accessing the cache memory based on a physical address for accessing the cache memory and accessing the main memory based on a physical address for accessing the main memory An integrated memory management device comprising:
前記メインメモリは、不揮発性記憶装置であることを特徴とする統合メモリ管理装置。 The integrated memory management device according to claim 1 or 2,
The integrated memory management device, wherein the main memory is a nonvolatile storage device.
前記取得手段によって取得された読み出し先論理アドレスを、不揮発性メインメモリの読み出し先物理アドレスに変換するアドレス変換手段と、
前記不揮発性メインメモリから、前記不揮発性メインメモリのページサイズの整数倍又はブロックサイズの前記読み出し先物理アドレスに対応するデータを読み出すアクセス手段と、
読み出されたデータを、前記不揮発性メインメモリのページサイズの整数倍又はブロックサイズに依存しているキャッシュサイズの前記第1のプロセッサのキャッシュメモリに転送する転送手段と
を具備する統合メモリ管理装置。 Obtaining means for obtaining a read destination logical address from a first processor included in at least one processor;
Address conversion means for converting the read destination logical address acquired by the acquisition means into a read destination physical address of the nonvolatile main memory;
Access means for reading data corresponding to the read destination physical address of an integer multiple of the page size of the nonvolatile main memory or a block size from the nonvolatile main memory;
An integrated memory management device comprising transfer means for transferring the read data to the cache memory of the first processor having a cache size depending on an integer multiple of the page size of the nonvolatile main memory or a block size .
前記取得手段は、前記第1のプロセッサから、書き込み先論理アドレスと、前記キャッシュサイズの書き込みデータとを取得し、
前記アドレス変換手段は、前記取得手段によって取得された書き込み先論理アドレスを、前記不揮発性メインメモリの書き込み先物理アドレスに変換し、
前記アクセス手段は、前記不揮発性メインメモリの前記書き込み先物理アドレスに対応する位置に、前記書き込みデータを書き込む
ことを特徴とする統合メモリ管理装置。 The integrated memory management device according to claim 4.
The acquisition means acquires a write destination logical address and write data of the cache size from the first processor,
The address conversion unit converts the write destination logical address acquired by the acquisition unit into a write destination physical address of the nonvolatile main memory,
The integrated memory management device, wherein the access means writes the write data at a position corresponding to the write destination physical address of the nonvolatile main memory.
前記アドレス変換手段は、データ固有の読み書き頻度情報と、前記不揮発性メインメモリの各領域の読み書き回数を含むメモリ使用情報と、前記不揮発性メインメモリのページサイズ、ブロックサイズ、記憶領域ごとの書き換え可能回数及び読み出し可能回数を含むメモリ固有情報とのうちの少なくとも一つに基づいて、ウェアレべリングを行うことを特徴とする統合メモリ管理装置。 The integrated memory management device according to claim 5.
The address conversion means can rewrite data-specific read / write frequency information, memory usage information including the number of read / write times of each area of the nonvolatile main memory, and the page size, block size, and storage area of the nonvolatile main memory. An integrated memory management device, characterized in that wear leveling is performed based on at least one of the number of times and the memory specific information including the number of readable times.
少なくとも一つのプロセッサに含まれている第1のプロセッサから、書き込み先論理アドレスを取得する取得手段と、
前記取得手段によって取得された書き込み先論理アドレスを、前記不揮発性メインメモリの書き込み先物理アドレスに変換するアドレス変換手段と
を具備し、
前記アドレス変換手段は、前記第1のプロセッサ上で動作するファイル管理プログラムにより定義されたデータ固有の読み書き頻度情報と、前記メモリ固有情報とを参照し、前記データ固有の読み書き頻度情報に対応するグループ属性の領域内に書き込み先物理アドレスを対応させる
ことを特徴とする統合メモリ管理装置。 A nonvolatile main memory that is divided into areas having a plurality of group attributes and each group attribute is stored as memory specific information;
Obtaining means for obtaining a write destination logical address from a first processor included in at least one processor;
An address conversion unit that converts a write destination logical address acquired by the acquisition unit into a write destination physical address of the nonvolatile main memory, and
The address conversion unit refers to the data-specific read / write frequency information defined by the file management program operating on the first processor and the memory-specific information, and corresponds to the data-specific read / write frequency information An integrated memory management device, wherein a write destination physical address is associated with an attribute area.
前記統合メモリ管理装置により、前記アクセス履歴データと前記アドレス関係データとに基づいて、前記不揮発性メインメモリをアクセスするための論理アドレスを、前記不揮発性メインメモリをアクセスするための物理アドレスに変換し、前記不揮発性メインメモリをアクセスするための物理アドレスに基づいて、前記不揮発性メインメモリをアクセスする
ことを特徴とするメモリ管理方法。 The integrated memory management device provided in the processor refers to access history data indicating an access state to the nonvolatile main memory outside the processor, and address relation data indicating a relationship between a logical address and a physical address in the nonvolatile main memory. And
Based on the access history data and the address relation data, the integrated memory management device converts a logical address for accessing the nonvolatile main memory into a physical address for accessing the nonvolatile main memory. A memory management method of accessing the nonvolatile main memory based on a physical address for accessing the nonvolatile main memory.
前記統合メモリ管理装置により、取得された前記読み出し先論理アドレスを、不揮発性メインメモリの読み出し先物理アドレスに変換し、
前記統合メモリ管理装置により、前記不揮発性メインメモリから、前記不揮発性メインメモリのページサイズの整数倍又はブロックサイズの前記読み出し先物理アドレスに対応するデータを読み出し、
前記統合メモリ管理装置により、読み出されたデータを、前記不揮発性メインメモリのページサイズの整数倍又はブロックサイズに依存しているキャッシュサイズの前記第1のプロセッサのキャッシュメモリに転送する
ことを特徴とするメモリ管理方法。 The integrated memory management device acquires a read destination logical address from a first processor included in at least one processor,
The integrated memory management device converts the acquired read destination logical address into a read destination physical address of a nonvolatile main memory,
The integrated memory management device reads from the nonvolatile main memory data corresponding to the read destination physical address of an integer multiple of the page size of the nonvolatile main memory or a block size,
The integrated memory management device transfers the read data to the cache memory of the first processor having a cache size that depends on an integer multiple of the page size of the nonvolatile main memory or a block size. Memory management method.
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008231363A JP4909963B2 (en) | 2008-09-09 | 2008-09-09 | Integrated memory management device |
KR1020090084986A KR101038167B1 (en) | 2008-09-09 | 2009-09-09 | Information processing device including memory management device managing access from processor to memory and memory management method |
US12/555,952 US9280466B2 (en) | 2008-09-09 | 2009-09-09 | Information processing device including memory management device managing access from processor to memory and memory management method |
CN200910002294.0A CN101673245B (en) | 2008-09-09 | 2009-09-09 | Comprise signal conditioning package and the storage management method of memory management unit |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008231363A JP4909963B2 (en) | 2008-09-09 | 2008-09-09 | Integrated memory management device |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2010066914A true JP2010066914A (en) | 2010-03-25 |
JP4909963B2 JP4909963B2 (en) | 2012-04-04 |
Family
ID=42192462
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008231363A Active JP4909963B2 (en) | 2008-09-09 | 2008-09-09 | Integrated memory management device |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4909963B2 (en) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012022479A (en) * | 2010-07-13 | 2012-02-02 | Panasonic Corp | Microcontroller and its control method |
JP2012033002A (en) * | 2010-07-30 | 2012-02-16 | Toshiba Corp | Memory management device and memory management method |
JP2012033001A (en) * | 2010-07-30 | 2012-02-16 | Toshiba Corp | Information processing apparatus and information processing method |
JP2012068863A (en) * | 2010-09-22 | 2012-04-05 | Toshiba Corp | Semiconductor memory controller |
JP2015125598A (en) * | 2013-12-26 | 2015-07-06 | キヤノン株式会社 | Memory control device, memory control method, and program |
JP2017068806A (en) * | 2015-10-02 | 2017-04-06 | 株式会社ソニー・インタラクティブエンタテインメント | Information processing apparatus and information processing method |
US9710375B2 (en) | 2014-05-29 | 2017-07-18 | International Business Machines Corporation | Writing an address conversion table for nonvolatile memory wear leveling |
JP2018533787A (en) * | 2015-09-25 | 2018-11-15 | クアルコム,インコーポレイテッド | Provision of memory management function using integrated memory management unit (MMU) |
JP2022031959A (en) * | 2017-06-22 | 2022-02-22 | マイクロン テクノロジー,インク. | Nonvolatile memory system, and subsystem thereof |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06215589A (en) * | 1993-01-18 | 1994-08-05 | Hitachi Ltd | Semiconductor memory |
JPH07114499A (en) * | 1993-10-19 | 1995-05-02 | Hitachi Ltd | Flash memory virtual memory system |
JPH0816482A (en) * | 1994-06-29 | 1996-01-19 | Hitachi Ltd | Storage device using flash memory, and its storage control method |
JPH08314794A (en) * | 1995-02-28 | 1996-11-29 | Matsushita Electric Ind Co Ltd | Method and system for shortening wait time of access to stable storage device |
JP2000122929A (en) * | 1998-10-13 | 2000-04-28 | Matsushita Electric Ind Co Ltd | Information processor |
JP2002533810A (en) * | 1998-12-22 | 2002-10-08 | ジェムプリュス | Storage system having memory control means with wear prevention and wear prevention control method for memory |
JP2003085037A (en) * | 1993-03-08 | 2003-03-20 | M-Systems Ltd | Memory management method |
JP2004157686A (en) * | 2002-11-05 | 2004-06-03 | Matsushita Electric Ind Co Ltd | Device and method for memory management |
JP2005025740A (en) * | 2003-07-01 | 2005-01-27 | Samsung Electronics Co Ltd | Microprocessor system having hot routine memory and its using method |
JP2005115910A (en) * | 2003-10-08 | 2005-04-28 | Samsung Electronics Co Ltd | Priority-based flash memory control apparatus for xip in serial flash memory, memory management method using the same, and flash memory chip based on the same |
JP2005135395A (en) * | 2003-10-28 | 2005-05-26 | Renesas Technology Corp | Processor and its method for virtual machine |
-
2008
- 2008-09-09 JP JP2008231363A patent/JP4909963B2/en active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06215589A (en) * | 1993-01-18 | 1994-08-05 | Hitachi Ltd | Semiconductor memory |
JP2003085037A (en) * | 1993-03-08 | 2003-03-20 | M-Systems Ltd | Memory management method |
JPH07114499A (en) * | 1993-10-19 | 1995-05-02 | Hitachi Ltd | Flash memory virtual memory system |
JPH0816482A (en) * | 1994-06-29 | 1996-01-19 | Hitachi Ltd | Storage device using flash memory, and its storage control method |
JPH08314794A (en) * | 1995-02-28 | 1996-11-29 | Matsushita Electric Ind Co Ltd | Method and system for shortening wait time of access to stable storage device |
JP2000122929A (en) * | 1998-10-13 | 2000-04-28 | Matsushita Electric Ind Co Ltd | Information processor |
JP2002533810A (en) * | 1998-12-22 | 2002-10-08 | ジェムプリュス | Storage system having memory control means with wear prevention and wear prevention control method for memory |
JP2004157686A (en) * | 2002-11-05 | 2004-06-03 | Matsushita Electric Ind Co Ltd | Device and method for memory management |
JP2005025740A (en) * | 2003-07-01 | 2005-01-27 | Samsung Electronics Co Ltd | Microprocessor system having hot routine memory and its using method |
JP2005115910A (en) * | 2003-10-08 | 2005-04-28 | Samsung Electronics Co Ltd | Priority-based flash memory control apparatus for xip in serial flash memory, memory management method using the same, and flash memory chip based on the same |
JP2005135395A (en) * | 2003-10-28 | 2005-05-26 | Renesas Technology Corp | Processor and its method for virtual machine |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012022479A (en) * | 2010-07-13 | 2012-02-02 | Panasonic Corp | Microcontroller and its control method |
JP2012033002A (en) * | 2010-07-30 | 2012-02-16 | Toshiba Corp | Memory management device and memory management method |
JP2012033001A (en) * | 2010-07-30 | 2012-02-16 | Toshiba Corp | Information processing apparatus and information processing method |
US8645612B2 (en) | 2010-07-30 | 2014-02-04 | Kabushiki Kaisha Toshiba | Information processing device and information processing method |
JP2012068863A (en) * | 2010-09-22 | 2012-04-05 | Toshiba Corp | Semiconductor memory controller |
JP2015125598A (en) * | 2013-12-26 | 2015-07-06 | キヤノン株式会社 | Memory control device, memory control method, and program |
US9710375B2 (en) | 2014-05-29 | 2017-07-18 | International Business Machines Corporation | Writing an address conversion table for nonvolatile memory wear leveling |
US9710378B2 (en) | 2014-05-29 | 2017-07-18 | International Business Machines Corporation | Writing an address conversion table for nonvolatile memory wear leveling |
JP2018533787A (en) * | 2015-09-25 | 2018-11-15 | クアルコム,インコーポレイテッド | Provision of memory management function using integrated memory management unit (MMU) |
JP2017068806A (en) * | 2015-10-02 | 2017-04-06 | 株式会社ソニー・インタラクティブエンタテインメント | Information processing apparatus and information processing method |
JP2022031959A (en) * | 2017-06-22 | 2022-02-22 | マイクロン テクノロジー,インク. | Nonvolatile memory system, and subsystem thereof |
Also Published As
Publication number | Publication date |
---|---|
JP4909963B2 (en) | 2012-04-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8135900B2 (en) | Integrated memory management and memory management method | |
US8261041B2 (en) | Memory management device for accessing cache memory or main memory | |
JP4909963B2 (en) | Integrated memory management device | |
KR101038167B1 (en) | Information processing device including memory management device managing access from processor to memory and memory management method | |
US9910602B2 (en) | Device and memory system for storing and recovering page table data upon power loss | |
US7761655B2 (en) | Storage system and method of preventing deterioration of write performance in storage system | |
JP2011022933A (en) | Information processing apparatus including memory management device, and memory management method | |
TWI438628B (en) | Data storage system and data storage medium | |
EP2455865A1 (en) | Memory management device | |
JP2005242897A (en) | Flash disk drive | |
JP2013174975A (en) | Memory system and data writing method for the same | |
CN110928487A (en) | Storage device and operation method of storage device | |
JP2011186561A (en) | Memory management device | |
JP2009205689A (en) | Flash disk device | |
JP2011186555A (en) | Memory management device and method | |
Jin et al. | Improving SSD lifetime with byte-addressable metadata | |
JP2011186563A (en) | Device and method for managing memory | |
JP2013196155A (en) | Memory system | |
JP2011186554A (en) | Memory management device and method | |
JP4895264B2 (en) | Storage device and information processing device | |
JP7118827B2 (en) | Information processing device, memory control method and program | |
US11941247B2 (en) | Storage device, storage system, and method | |
JP6640940B2 (en) | Memory system control method | |
US20230076365A1 (en) | Fast lba/pba table rebuild | |
US20200301843A1 (en) | Memory access device, memory system, and information processing system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20100908 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20110111 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20110314 |
|
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: 20111220 |
|
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: 20120116 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20150120 Year of fee payment: 3 |
|
R151 | Written notification of patent or utility model registration |
Ref document number: 4909963 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: 20150120 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 |