JP2010066914A - Integrated memory management device and memory management method - Google Patents

Integrated memory management device and memory management method Download PDF

Info

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
Application number
JP2008231363A
Other languages
Japanese (ja)
Other versions
JP4909963B2 (en
Inventor
Atsushi Kunimatsu
敦 国松
Hiroyuki Sakamoto
広幸 坂本
Hiroto Nakai
弘人 中井
Kenichi Maeda
賢一 前田
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 JP2008231363A priority Critical patent/JP4909963B2/en
Priority to US12/555,952 priority patent/US9280466B2/en
Priority to CN200910002294.0A priority patent/CN101673245B/en
Priority to KR1020090084986A priority patent/KR101038167B1/en
Publication of JP2010066914A publication Critical patent/JP2010066914A/en
Application granted granted Critical
Publication of JP4909963B2 publication Critical patent/JP4909963B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

<P>PROBLEM TO BE SOLVED: To easily attain the optimization of a memory access operation by decreasing the number of memory hierarchies related with the access of a memory. <P>SOLUTION: The integrated memory management device 2 is provided with: a first MMU (Memory Management Unit) 7 of a processor 1 for converting a logical address showing the access destination of a cache 3 into a physical address; a cache controller 8 of a processor 1 for performing access to the cache 3 based on a physical address showing the access destination of the cache 3; a history storage part 10 of a processor 1 for storing history data showing an access status to a main memory 4 outside the processor 1; a relation storage part 23 of the processor 1 for storing relation data showing a relation between the logical address and the physical address in the main memory 4; and a second MMU 9 of the processor 1 for performing access to the main memory 4 based on the physical address by converting the logical address for performing access to the main memory 4 into the physical address based on the access history data and the address relation data. <P>COPYRIGHT: (C)2010,JPO&INPIT

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の半導体メモリ装置は、ランダムアクセスメモリチップと、前記ランダムアクセスメモリチップを備えたパッケージを含む。前記パッケージは、前記ランダムアクセスメモリチップを外部装置に電気的に連結する複数のピンを有する。複数のピンは、前記ランダムアクセスメモリと、電気的に消去及びプログラム可能な不揮発性半導体メモリとに、共通にメモリ機能を提供する。前記複数のピンの各々は、不揮発性半導体メモリの対応するピンの位置に配列されている。
特開2001−266580号公報
The semiconductor memory device of Patent Document 1 includes a random access memory chip and a package including the random access memory chip. The package includes a plurality of pins that electrically connect the random access memory chip to an external device. The plurality of pins provide a memory function in common to the random access memory and the electrically erasable and programmable nonvolatile semiconductor memory. Each of the plurality of pins is arranged at a corresponding pin position of the nonvolatile semiconductor memory.
JP 2001-266580 A

本発明は、以上のような実情に鑑みてなされたもので、メモリのアクセスに関するメモリ階層の数を削減し、メモリアクセス動作の最適化を容易に実現可能とするためのメモリ管理装置及びメモリ管理方法を提供することを目的とする。   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 memory management device 2 and accesses the NAND flash main memory 4.

NAND型フラッシュメインメモリ4は、内部に、アドレス変換テーブル5、書き換え回数データ6を記憶する。書き換え回数データ6は、メインメモリのアクセス状態を示すメインメモリ履歴データに対応する。   The NAND flash main memory 4 stores therein an address conversion table 5 and rewrite count data 6. The rewrite count data 6 corresponds to main memory history data indicating the access state of the main memory.

アドレス変換テーブル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 main memory 4 are associated with each other.

書き換え回数データ6は、NAND型フラッシュメインメモリ4の各ページ又はブロックの書き換え回数を表す。   The rewrite count data 6 represents the rewrite count of each page or block of the NAND flash main memory 4.

統合メモリ管理装置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 memory management device 2 includes an MMU 7, a cache controller 8, a primary cache memory 3, a secondary cache memory 22, a main memory MMU 9, and an access history storage unit (NAND Information Registers) 10. The cache controller 8 also includes a first cache controller 8 a for the primary cache memory 3 and a second cache controller 8 b for the secondary cache memory 22. Further, the main memory MMU 9 includes an address relation storage unit 23. The main memory MMU 9 and the address relation storage unit 23 may be separated.

本実施の形態においては、キャッシュメモリが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 cache memory 3 into a physical address.

1次キャッシュメモリ3は、タグ格納領域3aと、ライン格納領域3bとを持つ。   The primary cache memory 3 has a tag storage area 3a and a line storage area 3b.

2次キャッシュメモリ22は、タグ格納領域22aと、ライン格納領域22bとを持つ。   The secondary cache memory 22 has a tag storage area 22a and a line storage area 22b.

本実施の形態において、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 primary cache memory 3 and the line size of the secondary cache memory 22 are the same size (for example, 256 kilobytes) as the block of the NAND flash main memory 4 or the NAND flash main memory 4 The size is a multiple of the page size. As a result, the operation of moving the data in the NAND flash main memory 4 to the primary cache memory 3 or the secondary cache memory 22 and the data in the primary cache memory 3 or the secondary cache memory 22 to the NAND flash main memory 4 are performed. The movement operation can be performed in units of pages, in units of integer multiples of the page size, or in units of blocks, and data movement can be simplified.

本実施の形態において、1次キャッシュメモリ3及び2次キャッシュメモリ22は、例えばライトバック型であるとする。また、2次キャッシュメモリ22は、1次キャッシュメモリよりも記憶容量が大きいが低速であるとする。   In the present embodiment, it is assumed that the primary cache memory 3 and the secondary cache memory 22 are, for example, a write-back type. The secondary cache memory 22 has a larger storage capacity than the primary cache memory, but is slower.

第1のキャッシュコントローラ8aは、1次キャッシュメモリ3に対するアクセスを制御する。   The first cache controller 8 a controls access to the primary cache memory 3.

より具体的には、第1のキャッシュコントローラ8aは、1次キャッシュメモリ3からデータを読み出す場合には、MMU7から得られた物理アドレスにそって、1次キャッシュメモリ3における物理アドレスに対応するデータを読み出す。また、第1のキャッシュコントローラ8aは、1次キャッシュメモリ3にデータを書き込む場合には、MMU7から得られた物理アドレスにそって、1次キャッシュメモリ3における物理アドレスに対応する位置に、書き込み対象のデータを書き込む。   More specifically, when the first cache controller 8a reads data from the primary cache memory 3, the data corresponding to the physical address in the primary cache memory 3 along the physical address obtained from the MMU 7 is used. Is read. Further, when writing data to the primary cache memory 3, the first cache controller 8 a writes data at a position corresponding to the physical address in the primary cache memory 3 along the physical address obtained from the MMU 7. Write the data.

第2のキャッシュコントローラ8bは、2次キャッシュメモリ22に対するアクセスを制御する。   The second cache controller 8b controls access to the secondary cache memory 22.

より具体的には、第2のキャッシュコントローラ8bは、2次キャッシュメモリ22からデータを読み出す場合には、MMU7から得られた物理アドレスにそって、2次キャッシュメモリ22における物理アドレスに対応するデータを読み出す。また、第2のキャッシュコントローラ8bは、2次キャッシュメモリ22にデータを書き込む場合には、MMU7から得られた物理アドレスにそって、2次キャッシュメモリ22における物理アドレスに対応する位置に、書き込み対象のデータを書き込む。   More specifically, when the second cache controller 8b reads data from the secondary cache memory 22, the data corresponding to the physical address in the secondary cache memory 22 along the physical address obtained from the MMU 7 is read. Is read. Further, when writing data to the secondary cache memory 22, the second cache controller 8b writes data at a position corresponding to the physical address in the secondary cache memory 22 along the physical address obtained from the MMU 7. Write the data.

メインメモリ用MMU9は、NAND型フラッシュメインメモリ4に対するアクセスを制御する。   The main memory MMU 9 controls access to the NAND flash main memory 4.

メインメモリ用MMU9は、必要に応じて、NAND型フラッシュメインメモリ4のアドレス変換テーブル5の一部又は全部を、アドレス関係データとして、アドレス関係格納部23に格納する。また、メインメモリ用MMU9は、必要に応じて、NAND型フラッシュメインメモリ4の書き換え回数データ6の一部又は全部を、アクセス履歴データとして、アクセス履歴格納部10に格納する。   The main memory MMU 9 stores part or all of the address conversion table 5 of the NAND type flash main memory 4 in the address relation storage unit 23 as address relation data as necessary. Further, the main memory MMU 9 stores a part or all of the rewrite count data 6 of the NAND flash main memory 4 in the access history storage unit 10 as access history data as necessary.

メインメモリ用MMU9は、NAND型フラッシュメインメモリ4の論理アドレスを物理位置に変換する。   The main memory MMU 9 converts the logical address of the NAND flash main memory 4 into a physical position.

メインメモリ用MMU9は、NAND型フラッシュメインメモリ4の物理位置に基づいて、NAND型フラッシュメインメモリ4からデータの読み出しを行い、第1のキャッシュコントローラ8a又は第2のキャッシュコントローラ8bを経由して、1次キャッシュメモリ3又は2次キャッシュメモリ22にデータを記憶する。   The main memory MMU 9 reads data from the NAND flash main memory 4 based on the physical position of the NAND flash main memory 4, and passes through the first cache controller 8a or the second cache controller 8b. Data is stored in the primary cache memory 3 or the secondary cache memory 22.

メインメモリ用MMU9は、NAND型フラッシュメインメモリ4から新たなデータを読み出した場合には、その新たなデータに関するアドレス変換テーブルのデータ、及び書き換え回数データを読み出し、それぞれアドレス関係格納部23及びアクセス履歴格納部10に格納する。   When the main memory MMU 9 reads new data from the NAND flash main memory 4, it reads the address conversion table data and rewrite count data related to the new data, and stores the address relationship storage unit 23 and the access history, respectively. Store in the storage unit 10.

メインメモリ用MMU9は、NAND型フラッシュメインメモリ4にデータを書き込む場合、アドレス関係データ及びアクセス履歴データに基づいて、NAND型フラッシュメインメモリ4の全領域又は全ブロックを隔たりなくアクセスさせる制御、NAND型フラッシュメインメモリ4の各領域又はブロックの書き換え回数を均等化するための制御、不良領域又は不良ブロックを避ける制御などを行う。さらに、メインメモリ用MMU9は、1次キャッシュメモリ3又は2次キャッシュメモリ22に記憶されていたデータを、第1のキャッシュコントローラ8a又は第2のキャッシュコントローラ8bを経由して取得し、この取得したデータをNAND型フラッシュメインメモリ4の物理位置に基づいてNAND型フラッシュメインメモリ4に記憶する。   When the main memory MMU 9 writes data to the NAND flash main memory 4, the NAND type flash main memory 4 is configured to access all areas or all blocks of the NAND flash main memory 4 based on the address-related data and the access history data. Control for equalizing the number of rewrites of each area or block of the flash main memory 4 and control for avoiding a defective area or a defective block are performed. Further, the main memory MMU 9 acquires the data stored in the primary cache memory 3 or the secondary cache memory 22 via the first cache controller 8a or the second cache controller 8b, and acquires the acquired data. Data is stored in the NAND flash main memory 4 based on the physical position of the NAND flash main memory 4.

メインメモリ用MMU9は、NAND型フラッシュメインメモリ4にデータが書き込まれた場合に、書き込まれたデータに関する論理アドレスと物理位置との関係に基づいてアドレス関係格納部23のアドレス関係データを更新し、また、アクセス履歴格納部10のアクセス履歴データを更新する。   When the data is written in the NAND flash main memory 4, the main memory MMU 9 updates the address relation data in the address relation storage unit 23 based on the relation between the logical address and the physical position relating to the written data, Further, the access history data in the access history storage unit 10 is updated.

メインメモリ用MMU9は、必要に応じて、メインメモリ用MMU9に格納されているアドレス関係データと、アクセス履歴格納部10に記憶されているアクセス履歴データとを、それぞれNAND型フラッシュメインメモリ4のアドレス変換テーブル5と書き換え回数データ6とに対して反映する。すなわち、メインメモリ用MMU9は、MPU1に記憶されているアドレス関係データと、NAND型フラッシュメインメモリ4に記憶されているアドレス変換テーブル5とを整合させる。また、メインメモリ用MMU9は、アクセス履歴格納部10のアクセス履歴データと、NAND型フラッシュメインメモリ4の書き換え回数データ6とを整合させる。   The main memory MMU 9, if necessary, converts the address related data stored in the main memory MMU 9 and the access history data stored in the access history storage unit 10 into addresses of the NAND flash main memory 4. This is reflected in the conversion table 5 and the rewrite count data 6. That is, the main memory MMU 9 matches the address relation data stored in the MPU 1 with the address conversion table 5 stored in the NAND flash main memory 4. The main memory MMU 9 matches the access history data in the access history storage unit 10 with the rewrite count data 6 in the NAND flash main memory 4.

アクセス履歴格納部10は、NAND型フラッシュメインメモリ4のページ又はブロック(物理位置)のアクセス状態の履歴を格納する。本実施の形態において、アクセス履歴格納部10は、NAND型フラッシュメインメモリ4における各ページ又はブロックの書き換え回数データ6のうち、一部又は全部のページ又はブロックについての書き換え回数データを格納する。   The access history storage unit 10 stores a history of access states of pages or blocks (physical positions) of the NAND flash main memory 4. In the present embodiment, the access history storage unit 10 stores the rewrite frequency data for some or all pages or blocks of the rewrite frequency data 6 for each page or block in the NAND flash main memory 4.

例えば、各ブロックの書き換え回数は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 main memory 4 is 1 megabyte, the number of blocks stored in the NAND flash main memory 4 is 4, and is necessary for storing the number of rewrites of each block. The storage capacity is 16 bytes. In the same case, if the storage capacity of the NAND flash main memory 4 is 1 gigabyte, the number of blocks stored in the NAND flash main memory 4 is 4096 blocks, and the number of rewrites of each block is stored. The required storage capacity is 16 kilobytes. Furthermore, in the same case, assuming that the storage capacity of the NAND flash main memory 4 is 16 gigabytes, the storage capacity necessary for storing the number of rewrites of each block is 64 kilobytes.

例えば、NAND型フラッシュメインメモリ4の記憶容量が例えば128ギガバイトなどのように大きくなった場合、アクセス履歴格納部10は、NAND型フラッシュメインメモリ4における書き換え回数データ6の一部を格納する。このように、アクセス履歴格納部10は、書き換え回数データ6の一部を格納するため、書き換え回数にはposが付されている。posはキャッシュタグと同様の手法で使用される。   For example, when the storage capacity of the NAND flash main memory 4 becomes large, for example, 128 gigabytes, the access history storage unit 10 stores a part of the rewrite count data 6 in the NAND flash main memory 4. In this way, since the access history storage unit 10 stores a part of the rewrite count data 6, pos is added to the rewrite count. pos is used in the same manner as a cache tag.

メインメモリ用MMU9の動作例の概略を説明する。   An outline of an operation example of the main memory MMU 9 will be described.

メインメモリ用MMU9は、NAND型フラッシュメインメモリ4のアドレス変換テーブル5の一部を、アドレス関係格納部23に記憶し、書き換え回数データ6の一部をアクセス履歴格納部10に記憶する。   The main memory MMU 9 stores a part of the address conversion table 5 of the NAND flash main memory 4 in the address relation storage unit 23 and a part of the rewrite count data 6 in the access history storage unit 10.

メインメモリ用MMU9は、キャッシュメモリ3,22に読み出し対象のデータが記憶されておらず、NAND型フラッシュメインメモリ4からデータの読み出しを行う場合、NAND型フラッシュメインメモリ4からデータを読み出す。そして、メインメモリ用MMU9は、アドレス変換テーブル5のうち読み出したデータに関するデータをアドレス関係格納部23に記憶する。また、メインメモリ用MMU9は、書き換え回数データ6のうち読み出したデータに関するデータをアクセス履歴格納部10に記憶する。   The main memory MMU 9 does not store data to be read in the cache memories 3 and 22, and reads data from the NAND flash main memory 4 when reading data from the NAND flash main memory 4. The main memory MMU 9 stores the data related to the read data in the address conversion table 5 in the address relation storage unit 23. The main memory MMU 9 stores data related to the read data among the rewrite count data 6 in the access history storage unit 10.

MPU1からNAND型フラッシュメインメモリ4へのデータの書き込みを行う場合、メインメモリ用MMU9は、NAND型フラッシュメインメモリ4における論理アドレスを物理位置に変換し、キャッシュライン3b,22bにおける書き込み対象のデータをNAND型フラッシュメインメモリ4に書き込む。加えて、メインメモリ用MMU9は、アドレス関係格納部23に記憶しているアドレス関係データと、アクセス履歴格納部10に記憶されているアクセス履歴データとを更新する。   When writing data from the MPU 1 to the NAND flash main memory 4, the main memory MMU 9 converts the logical address in the NAND flash main memory 4 into a physical location, and converts the data to be written in the cache lines 3 b and 22 b. Write to the NAND flash main memory 4. In addition, the main memory MMU 9 updates the address relationship data stored in the address relationship storage unit 23 and the access history data stored in the access history storage unit 10.

そして、メインメモリ用MMU9は、アドレス関係格納部23のアドレス関係データと、アクセス履歴格納部10のアクセス履歴データとに基づいて、それぞれアドレス変換テーブル5と書き換え回数データ6を更新する。   Then, the main memory MMU 9 updates the address conversion table 5 and the rewrite count data 6 based on the address relation data in the address relation storage unit 23 and the access history data in the access history storage part 10, respectively.

例えば、1次キャッシュメモリ3がリード・オンリー(Read Only)の場合、MPU1からキャッシュライン3bへの書き込みはない。この場合、メインメモリ用MMU9は、第1のキャッシュコントローラ8aを用いて、NAND型フラッシュメインメモリ4から読み出したデータを1次キャッシュメモリ3に上書きする。この1次キャッシュメモリ3に記憶されたデータの読み出しが発生すると、第1のキャッシュコントローラ8aは、1次キャッシュメモリ3からデータを読み出す。   For example, when the primary cache memory 3 is read only, there is no writing from the MPU 1 to the cache line 3b. In this case, the main memory MMU 9 overwrites the primary cache memory 3 with the data read from the NAND flash main memory 4 by using the first cache controller 8a. When the data stored in the primary cache memory 3 is read, the first cache controller 8 a reads the data from the primary cache memory 3.

一方、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 primary cache memory 3 is not read-only, the MPU 1 writes data obtained by executing the program to the cache memory 3. When data is written from the MPU 1 to the cache line 3b, the data on the cache line 3b is written back to the NAND flash main memory 4. In this case, the main memory MMU 9 reads the data to be written back from the cache memory 3 via the first cache controller 8a. Then, the MMU 9 for main memory selects a page or block having a smaller number of rewrites than a predetermined number as a write back position in the NAND flash main memory 4 based on the access history data in the access history storage unit 10. The main memory MMU 9 stores data to be written back to the selected page or block, and shows the conversion relationship between the logical address and the physical position for the NAND flash main memory 4 for the selected page or block. The address relation data is updated, and the number of rewrites in the access history storage unit 10 is updated for the selected page or block.

その後、必要に応じて、アドレス関係格納部23とアクセス履歴格納部10の内容により、アドレス変換テーブル5と書き換え回数データ6とを更新する。   Thereafter, the address conversion table 5 and the rewrite count data 6 are updated according to the contents of the address relation storage unit 23 and the access history storage unit 10 as necessary.

図2は、本実施の形態に係る統合メモリ管理装置2のメモリ階層の一例を示す図である。   FIG. 2 is a diagram illustrating an example of a memory hierarchy of the integrated memory management device 2 according to the present embodiment.

この例におけるメモリ階層は、MMU7の属する階層と、メインメモリ用MMU9及びキャッシュコントローラ8との属する階層を持つ。   The memory hierarchy in this example has a hierarchy to which the MMU 7 belongs and a hierarchy to which the main memory MMU 9 and the cache controller 8 belong.

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 main memory MMU 9 belongs, for example, the physical location or physical address of the NAND flash main memory 4 to be accessed is determined. In the hierarchy to which the main memory MMU 9 belongs, control is performed to access a page or block whose write count is equal to or less than a predetermined number (for example, the minimum).

そして、統合メモリ管理装置2は、決定された物理位置に基づいて、NAND型フラッシュメインメモリ4をアクセスする。   Then, the integrated memory management device 2 accesses the NAND flash main memory 4 based on the determined physical position.

図3は、本実施の形態に係る統合メモリ管理装置2を備えたMPU1が、NAND型フラッシュメインメモリ4のデータ、書き換え回数データ6の一部、アドレス変換テーブル5の一部を記憶する場合の動作の一例を示すフローチャートである。   FIG. 3 shows a case where the MPU 1 provided with the integrated memory management device 2 according to the present embodiment stores data of the NAND flash main memory 4, part of the rewrite count data 6, and part of the address conversion table 5. It is a flowchart which shows an example of operation | movement.

ステップS1において、メインメモリ用MMU9は、MPU1によって使用されるNAND型フラッシュメインメモリ4のデータの一部(最初は、先頭から1ギガバイト分などでもよい)のデータを読み出す。キャッシュコントローラ8は、読み出されたデータを、キャッシュメモリ3,8のキャッシュライン3b,8bに書き込む。   In step S1, the MMU 9 for main memory reads part of the data of the NAND flash main memory 4 used by the MPU 1 (initially, it may be 1 gigabyte from the beginning). The cache controller 8 writes the read data to the cache lines 3 b and 8 b of the cache memories 3 and 8.

ステップS2において、メインメモリ用MMU9は、NAND型フラッシュメインメモリ4に保管されている書き換え回数データ6の一部(キャッシュメモリ3,8に格納されたデータに対するブロックの書き換え回数など。なお、最初は、先頭から1ギガバイト分などでもよい)を、MPU1内のアクセス履歴格納部10にコピーする。   In step S2, the MMU 9 for main memory uses a part of the rewrite count data 6 stored in the NAND flash main memory 4 (such as the block rewrite count for the data stored in the cache memories 3 and 8, etc. 1 gigabyte or the like from the head may be copied to the access history storage unit 10 in the MPU 1.

ステップS3において、メインメモリ用MMU9は、NAND型フラッシュメインメモリ4に保管されているアドレス変換テーブル5の一部(キャッシュメモリ3,8に格納されたデータに対応するブロックの論理アドレスと物理位置との関係を示すデータなど。なお、最初は、先頭から1ギガバイト分などでもよい)を、MPU1内のメインメモリ用MMU9のアドレス関係格納部23にコピーする。   In step S3, the MMU 9 for main memory uses a part of the address conversion table 5 stored in the NAND flash main memory 4 (the logical address and physical position of the block corresponding to the data stored in the cache memories 3 and 8). (First, it may be 1 gigabyte from the beginning) is copied to the address relationship storage unit 23 of the main memory MMU 9 in the MPU 1.

なお、このステップ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 primary cache memory 3 or the NAND flash main memory 4 in the MPU 1 provided with the integrated memory management device 2 according to the present embodiment. The case of reading data from the secondary cache memory 22 is the same as that of the primary cache memory 3.

ステップT1において、MMU7及びメインメモリ用MMU9は、読み出し対象の論理アドレスを物理アドレスに変換する。   In step T1, the MMU 7 and the main memory MMU 9 convert the logical address to be read into a physical address.

読み出し対象の物理アドレスが1次キャッシュメモリ3を示す場合、ステップT2aにおいて、第1のキャッシュコントローラ8aは、物理アドレスに基づいて1次キャッシュメモリ3から読み出し対象のデータを読み出す。   When the physical address to be read indicates the primary cache memory 3, in step T2a, the first cache controller 8a reads the data to be read from the primary cache memory 3 based on the physical address.

読み出し対象の物理アドレス(物理位置)がNAND型フラッシュメインメモリ4を示す場合、ステップT2bにおいて、メインメモリ用MMU9は、物理アドレスに対応するデータを、NAND型フラッシュメインメモリ4から読み出す。   When the physical address (physical position) to be read indicates the NAND flash main memory 4, the main memory MMU 9 reads data corresponding to the physical address from the NAND flash main memory 4 in step T2b.

ステップT3bにおいて、メインメモリ用MMU9は、NAND型フラッシュメインメモリ4から読み出したデータを、第1のキャッシュコントローラ8a経由で、1次キャッシュメモリ3に上書きする。   In Step T3b, the main memory MMU 9 overwrites the primary cache memory 3 with the data read from the NAND flash main memory 4 via the first cache controller 8a.

なお、メインメモリ用MMU9は、NAND型フラッシュメインメモリ4から新たに読み出したデータに対応するアドレス関係データ及びアクセス履歴データがそれぞれアドレス関係格納部及びアクセス履歴格納部に記憶されていない場合、NAND型フラッシュメインメモリ4のアドレス変換テーブル5及び書き換え回数データ6に基づいてアドレス関係格納部及びアクセス履歴格納部に新たに読み出したデータに対応するデータを記憶する。   Note that the main memory MMU 9 is NAND-type when the address-related data and the access history data corresponding to the data newly read from the NAND flash main memory 4 are not stored in the address-related storage unit and the access history storage unit, respectively. Data corresponding to the newly read data is stored in the address relation storage unit and the access history storage unit based on the address conversion table 5 and the rewrite count data 6 of the flash main memory 4.

図5は、本実施の形態に係る統合メモリ管理装置2を備えたMPU1から、1次キャッシュメモリ3のキャッシュライン3bへの上書きが発生し、さらに1次キャッシュメモリ3のデータをNAND型フラッシュメインメモリ4に記憶する場合の動作の一例を示すフローチャートである。なお、2次キャッシュメモリ22への上書きが発生した場合についても、この1次キャッシュメモリ3の場合と同様である。   FIG. 5 shows that overwriting to the cache line 3b of the primary cache memory 3 occurs from the MPU 1 provided with the integrated memory management device 2 according to the present embodiment, and the data in the primary cache memory 3 is further transferred to the NAND flash main. 5 is a flowchart showing an example of an operation when storing in a memory 4; The case where overwriting to the secondary cache memory 22 occurs is the same as in the case of the primary cache memory 3.

ステップ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 first cache controller 8a stores the write target data in the primary cache memory 3 according to the physical address.

ステップU3において、メインメモリ用MMU9は、アドレス関係格納部23のアドレス関係データと、アクセス履歴格納部10のアクセス履歴データとに基づいて、書き換え回数がある値より少ないブロックの位置又は一番書き換えの少ないブロックの位置を、NAND型フラッシュメインメモリ4における書き込み位置として選択する。   In step U3, the MMU 9 for main memory uses the address relation data in the address relation storage unit 23 and the access history data in the access history storage part 10 to determine the position of the block having the smaller number of rewrites or the most rewritten number. The positions of few blocks are selected as write positions in the NAND flash main memory 4.

ステップU4において、メインメモリ用MMU9は、NAND型フラッシュメインメモリ4における選択された位置に、書き込み対象のデータを記憶する。   In step U4, the main memory MMU 9 stores the data to be written at the selected position in the NAND flash main memory 4.

ステップU5において、メインメモリ用MMU9は、上書き後のキャッシュライン3bに対応するように、アドレス関係格納部23のアドレス関係データを更新し、アクセス履歴格納部10のアクセス履歴データを更新する。   In step U5, the main memory MMU 9 updates the address relationship data in the address relationship storage unit 23 and updates the access history data in the access history storage unit 10 so as to correspond to the cache line 3b after overwriting.

ステップU6において、メインメモリ用MMU9は、メインメモリ用MMU9に格納されているアドレス関係データと整合するように、NAND型フラッシュメインメモリ4のアドレス変換テーブル5を更新し、また、アクセス履歴格納部10に格納されているアドレス履歴データと整合するように、NAND型フラッシュメインメモリ4の書き換え回数データ6を更新する。例えば、NAND型フラッシュメインメモリ4の書き換え回数データの更新は、MPU1の電源が切られるとき、又は、MPU1のアクセス履歴格納部10の書き換え時に、実行される。   In step U6, the main memory MMU 9 updates the address conversion table 5 of the NAND flash main memory 4 so as to be consistent with the address relation data stored in the main memory MMU 9, and the access history storage unit 10 The rewrite count data 6 of the NAND flash main memory 4 is updated so as to be consistent with the address history data stored in the memory. For example, the rewrite count data of the NAND flash main memory 4 is updated when the MPU 1 is powered off or when the access history storage unit 10 of the MPU 1 is rewritten.

本実施の形態において、統合メモリ管理装置2は、書き換え回数に基づいて書き換えを行うブロックの物理位置を選択している。しかしながら、これに代えて、統合メモリ管理装置2は、不良領域又は不良ブロックを避ける制御、NAND型フラッシュメインメモリ4の全領域又は全ブロックを隔たりなくアクセスさせる制御、アクセス先の領域又はブロックの位置が分散されるようにする制御を行うとしてもよい。この場合、アクセス履歴格納部10には、NAND型フラッシュメインメモリ4に記憶されている不良領域又は不良ブロックの発生位置、NAND型フラッシュメインメモリ4の書き換え位置の分布などのデータが記憶される。また、統合メモリ管理装置2は、各種の制御を自由に組み合わせて、書き換えを行う領域又はブロックの位置を選択するとしてもよい。   In the present embodiment, the integrated memory management device 2 selects a physical position of a block to be rewritten based on the number of rewrites. However, instead of this, the integrated memory management device 2 performs control to avoid a defective area or block, control to access all areas or all blocks of the NAND flash main memory 4 without any separation, and position of an access destination area or block It is also possible to perform control so as to be distributed. In this case, the access history storage unit 10 stores data such as the occurrence positions of defective areas or defective blocks stored in the NAND flash main memory 4 and the distribution of rewrite positions in the NAND flash main memory 4. In addition, the integrated memory management device 2 may select a region or a block position to be rewritten by freely combining various controls.

本実施の形態において、統合メモリ管理装置2は、キャッシュメモリ3のデータ入れ替え時に、NAND型フラッシュメインメモリ4のガーベージコレクション処理又は消去のための制御を行うとしてもよい。   In the present embodiment, the integrated memory management device 2 may perform control for garbage collection processing or erasure of the NAND flash main memory 4 when data in the cache memory 3 is exchanged.

本実施の形態において、メインメモリ用MMU9のアドレス関係格納部23とアクセス履歴格納部10とのうち、少なくとも一方について、二次キャッシュメモリを用いてデータを格納するとしてもよい。すなわち、アドレス関係格納部23に記憶されているアドレス関係データは、2次キャッシュメモリ22に格納されるとしてもよい。また、アクセス履歴格納部10に記憶される書き込み回数などを含むアクセス履歴データは、2次キャッシュメモリ22に格納されるとしてもよい。   In the present embodiment, at least one of the address relationship storage unit 23 and the access history storage unit 10 of the main memory MMU 9 may store data using a secondary cache memory. That is, the address relation data stored in the address relation storage unit 23 may be stored in the secondary cache memory 22. Further, the access history data including the number of times of writing stored in the access history storage unit 10 may be stored in the secondary cache memory 22.

本実施の形態に係るMPU1の統合メモリ管理装置2においては、アクセス履歴格納部10に格納されているデータを用いて書き込みを行う対象となるNAND型フラッシュメインメモリ4の物理位置を選択し、ライトバックするアルゴリズムを採用し、このアルゴリズムを実行するプログラムを用いることができる。例えば、書き換え回数の多い領域又はブロックの書き換えを避けるなどのような高度なアルゴリズムを用いることができる。   In the integrated memory management device 2 of the MPU 1 according to the present embodiment, the physical location of the NAND flash main memory 4 to be written is selected using the data stored in the access history storage unit 10, and the write is performed. A back-up algorithm can be employed and a program that executes this algorithm can be used. For example, it is possible to use an advanced algorithm such as avoiding rewriting of a region or block having a large number of rewrites.

以上説明した本実施の形態に係る統合メモリ管理装置2においては、MPU1内で、MMU7、第1のキャッシュコントローラ8a、第1のキャッシュコントローラ8b、キャッシュメモリ3、キャッシュメモリ22、メインメモリ用MMU9、アクセス履歴格納部10が統合された構成が採用されている。すなわち、本実施の形態においては、NAND型フラッシュメインメモリ4のメモリマッピング管理がMPU1の統合メモリ管理装置2で実行されるアーキテクチャが実現されている。   In the integrated memory management device 2 according to the present embodiment described above, within the MPU 1, the MMU 7, the first cache controller 8a, the first cache controller 8b, the cache memory 3, the cache memory 22, the main memory MMU 9, A configuration in which the access history storage unit 10 is integrated is employed. That is, in the present embodiment, an architecture is realized in which the memory mapping management of the NAND flash main memory 4 is executed by the integrated memory management device 2 of the MPU 1.

これにより、メモリ階層において、オーバーヘッドの大きい階層を削除することができる。   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 MPU 1 side. Thus, memory control can be coordinated by combining the operation of the MPU and the operation of the memory controller and executing them in the MPU 1.

本実施の形態においては、多層化されていたメモリ階層を単純化することができ、アクセスに必要な時間、製造時に必要な時間、製造時に必要な費用などの様々なコストを削減することができる。   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 MPU 1 and the access operation of the main memory.

(第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 MPU 11 is provided with an integrated memory management device 12 according to the present embodiment. The integrated MMU 13 implements a function that integrates the MMU 7 and the main memory MMU 9 according to the first embodiment.

本実施の形態において、1次キャッシュメモリ3のタグ及び2次キャッシュメモリ22のタグは、プロセスIDと論理アドレスとで、それぞれ1次キャッシュメモリ3及び2次キャッシュメモリ22を管理するために用いられる。   In the present embodiment, the tag of the primary cache memory 3 and the tag of the secondary cache memory 22 are used for managing the primary cache memory 3 and the secondary cache memory 22 with the process ID and the logical address, respectively. .

本実施の形態においては、プロセッサであるMPU11の統合MMU13により、1次キャッシュメモリ3、2次キャッシュメモリ22、NAND型フラッシュメインメモリ4のメモリマッピング管理が行われ、各種メモリの一括管理が行われる。   In the present embodiment, the memory mapping management of the primary cache memory 3, the secondary cache memory 22, and the NAND flash main memory 4 is performed by the integrated MMU 13 of the MPU 11, which is a processor, and various memories are collectively managed. .

図7は、本実施の形態に係る統合メモリ管理装置12のメモリ階層の一例を示す図である。   FIG. 7 is a diagram showing an example of a memory hierarchy of the integrated memory management device 12 according to the present embodiment.

この例におけるメモリ階層は、統合MMU13とキャッシュコントローラ8とが同じ階層に属している。統合メモリ管理装置12は、1次キャッシュメモリ3及び2次キャッシュメモリ22に対するアドレス変換と、NAND型フラッシュメインメモリ4に対するアドレス変換とを統合し、同等のメモリ階層で扱う。統合メモリ管理装置2は、ある基準にそって、キャッシュメモリ3、キャッシュメモリ22、NAND型フラッシュメインメモリ4のどの領域をアクセスするか決定する。   In the memory hierarchy in this example, the integrated MMU 13 and the cache controller 8 belong to the same hierarchy. The integrated memory management device 12 integrates address conversion for the primary cache memory 3 and the secondary cache memory 22 and address conversion for the NAND flash main memory 4 and handles them in an equivalent memory hierarchy. The integrated memory management device 2 determines which area of the cache memory 3, the cache memory 22, and the NAND flash main memory 4 is to be accessed according to a certain standard.

このメモリ階層では、論理アドレスがNAND型フラッシュメインメモリ4の物理位置に変換される場合、書き込み回数が所定数以下の領域又はブロックをアクセスさせる制御が行われる。   In this memory hierarchy, when a logical address is converted into a physical position of the NAND flash main memory 4, control is performed to access an area or block whose number of writings is a predetermined number or less.

そして、統合メモリ管理装置2は、決定された物理位置に基づいて、NAND型フラッシュメインメモリ4をアクセスする。   Then, the integrated memory management device 2 accesses the NAND flash main memory 4 based on the determined physical position.

以上説明した本実施の形態においては、上記第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 MMU 9 for main memory, the time cost required for access, and the economy required for manufacturing. Various costs such as cost can be reduced.

統合MMU13を用いることにより、1次キャッシュメモリ3及び2次キャッシュメモリ22に対するアドレス変換と、NAND型フラッシュメインメモリ4に対するアドレス変換とを統合することができる。例えば、あるプロセスに関する記憶内容を、なるべくNAND型フラッシュメインメモリ4内の近い位置に記憶することにより、高速アクセスが可能となる。また、例えば、書き換え回数の少ない領域又はブロックだけを選んで一つのプロセスに割り当てることができる。   By using the integrated MMU 13, the address conversion for the primary cache memory 3 and the secondary cache memory 22 and the address conversion for the NAND flash main memory 4 can be integrated. For example, high-speed access is possible by storing the storage contents related to a certain process as close to the NAND flash main memory 4 as possible. Further, for example, it is possible to select only an area or block with a small number of rewrites and assign it to one process.

(第3の実施の形態)
本実施の形態においては、上記第1又は第2の実施の形態に係る統合メモリ管理装置2,12の変形例について説明する。
(Third embodiment)
In the present embodiment, a modified example of the integrated memory management devices 2 and 12 according to the first or second embodiment will be described.

図8は、上記図1に示す第1の実施の形態に係る統合メモリ管理装置2の変形例を示す図である。   FIG. 8 is a diagram showing a modification of the integrated memory management device 2 according to the first embodiment shown in FIG.

上記第1の実施の形態においては、物理位置に基づくNAND型フラッシュメインメモリ4へのアクセスは、メインメモリ用MMU9によって実行している。しかしながら、物理位置に基づくNAND型フラッシュメインメモリ4へのアクセスは、キャッシュコントローラ8が行うとしてもよい。   In the first embodiment, the access to the NAND flash main memory 4 based on the physical position is executed by the main memory MMU 9. However, the cache controller 8 may access the NAND flash main memory 4 based on the physical position.

この場合、メインメモリ用MMU9は、論理アドレスを物理位置に変換する制御を行い、このメインメモリ用MMU9で選択された物理位置に基づいて、キャッシュコントローラ8は、NAND型フラッシュメインメモリ4をアクセスする。なお、本実施の形態において、キャッシュコントローラ8は、メインメモリ用MMU9に代わって、NAND型フラッシュメインメモリ4のアドレス変換テーブル5の読み出し及び更新、書き換え回数データ6の読み出し及び更新をするとしてもよい。   In this case, the main memory MMU 9 performs control to convert the logical address into a physical location, and the cache controller 8 accesses the NAND flash main memory 4 based on the physical location selected by the main memory MMU 9. . In this embodiment, the cache controller 8 may read and update the address conversion table 5 of the NAND flash main memory 4 and read and update the rewrite count data 6 in place of the main memory MMU 9. .

図9は、上記図6に示す第1の実施の形態に係る統合メモリ管理装置12の変形例を示す図である。   FIG. 9 is a diagram showing a modification of the integrated memory management device 12 according to the first embodiment shown in FIG.

上記第2の実施の形態においては、物理位置に基づくNAND型フラッシュメインメモリ4へのアクセスは、統合MMU13によって実行している。しかしながら、物理位置に基づくNAND型フラッシュメインメモリ4へのアクセスは、キャッシュコントローラ8が行うとしてもよい。   In the second embodiment, the access to the NAND flash main memory 4 based on the physical position is executed by the integrated MMU 13. However, the cache controller 8 may access the NAND flash main memory 4 based on the physical position.

この場合、統合MMU13は、論理アドレスを物理位置に変換する制御を行い、この統合MMU13で選択された物理位置に基づいて、キャッシュコントローラ8は、NAND型フラッシュメインメモリ4をアクセスする。なお、本実施の形態において、キャッシュコントローラ8は、NAND型フラッシュメインメモリ4のアドレス変換テーブル5の読み出し及び更新、書き換え回数データ6の読み出し及び更新をするとしてもよい。   In this case, the integrated MMU 13 performs control to convert the logical address into a physical location, and the cache controller 8 accesses the NAND flash main memory 4 based on the physical location selected by the integrated MMU 13. In the present embodiment, the cache controller 8 may read and update the address conversion table 5 of the NAND flash main memory 4 and read and update the rewrite count data 6.

(第4の実施の形態)
本実施の形態においては、上記第1乃至第3の実施の形態に係る統合メモリ管理装置2,12の適用例に付いて説明する。
(Fourth embodiment)
In the present embodiment, application examples of the integrated memory management devices 2 and 12 according to the first to third embodiments will be described.

図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 memory management devices 2 and 12 according to the first embodiment may be used.

ポータブル・ゲーム・コンソール・プロセッサ14は、グラフィクス・プロセッサ15とプロセッサ16とを具備する。   The portable game console processor 14 includes a graphics processor 15 and a processor 16.

グラフィクス・プロセッサ15、プロセッサ16、2次キャッシュメモリ17、NAND型フラッシュメインメモリ4、ディスクドライブ18はバス19に接続されている。   The graphics processor 15, processor 16, secondary cache memory 17, NAND flash main memory 4, and disk drive 18 are connected to a bus 19.

プロセッサ16は、1次キャッシュメモリ3、2次キャッシュメモリ17をアクセスするための2次キャッシュタグ21、キャッシュコントローラ8、統合MMU13を具備する。   The processor 16 includes a secondary cache tag 21 for accessing the primary cache memory 3 and the secondary cache memory 17, a cache controller 8, and an integrated MMU 13.

さらに、プロセッサ16は、書き換え回数格納部10を具備するが、この図10では省略している。なお、プロセッサ16は、1次キャッシュメモリ3又は2次キャッシュメモリ17を、書き換え回数格納部10として用いるとしてもよい。   Further, the processor 16 includes a rewrite count storage unit 10, which is omitted in FIG. The processor 16 may use the primary cache memory 3 or the secondary cache memory 17 as the rewrite count storage unit 10.

キャッシュコントローラ8は、1次キャッシュメモリ3、2次キャッシュメモリ17へのアクセスを制御する。2次キャッシュメモリ17には、例えば、DRAMを用いることができる。本実施の形態において、2次キャッシュメモリ17は、ポータブル・ゲーム・コンソール・プロセッサ14と分離している。   The cache controller 8 controls access to the primary cache memory 3 and the secondary cache memory 17. For example, a DRAM can be used as the secondary cache memory 17. In the present embodiment, the secondary cache memory 17 is separated from the portable game console processor 14.

2次キャッシュメモリ17に対するバンド幅は、NAND型フラッシュメインメモリ4の10倍程度とする。ディスクドライブ18としては、例えば、光ディスクドライブを用いることができる。   The bandwidth for the secondary cache memory 17 is about 10 times that of the NAND flash main memory 4. As the disk drive 18, for example, an optical disk drive can be used.

本実施の形態において、NAND型フラッシュメインメモリ4への書き込みは、ゲームカートリッジの交換時とし、他の時点ではNAND型フラッシュメインメモリ4はリード・オンリーで利用されるとする。頻繁に書き込まれるデータ又はプログラムコード、頻繁に読み出されるデータ又はプログラムコードは、2次キャッシュメモリ17に格納される。さらに頻繁に読み出されるデータ又はプログラムコードは、1次キャッシュメモリ3に格納される。   In the present embodiment, writing to the NAND flash main memory 4 is performed when the game cartridge is replaced, and the NAND flash main memory 4 is used read-only at other times. Frequently written data or program code and frequently read data or program code are stored in the secondary cache memory 17. Further, frequently read data or program code is stored in the primary cache memory 3.

なお、例えば、1次キャッシュメモリ3又は2次キャッシュメモリ17に記憶されているデータ又はプログラムコードのうち、使用頻度の低いデータ又はプログラムコードをNAND型フラッシュメインメモリ4に書き込み、NAND型フラッシュメインメモリ4に記憶されているデータ又はプログラムコードのうち、使用頻度の高いデータ又はプログラムコードを1次キャッシュメモリ3又は2次キャッシュメモリ17に記憶するとしてもよい。   For example, among data or program codes stored in the primary cache memory 3 or the secondary cache memory 17, data or program codes that are not frequently used are written in the NAND flash main memory 4, and the NAND flash main memory Of the data or program code stored in the memory 4, data or program code that is frequently used may be stored in the primary cache memory 3 or the secondary cache memory 17.

本実施の形態では、例えば、1次キャッシュメモリ3は64キロバイト程度であり、2次キャッシュメモリ17は16〜128メガバイト程度であり、NAND型フラッシュメインメモリ4は1ギガバイト程度であるとする。   In the present embodiment, for example, the primary cache memory 3 is about 64 kilobytes, the secondary cache memory 17 is about 16 to 128 megabytes, and the NAND flash main memory 4 is about 1 gigabyte.

例えば、グラフィクス・プロセッサ15の処理能力は、1/10バンド幅のNAND型フラッシュメインメモリ4の速度とつりあうか、その2〜3倍程度の能力とする。使用頻度の低いデータは、NAND型フラッシュメインメモリ4から読み出し、使用頻度の高いデータは、1次キャッシュメモリ3又は2次キャッシュメモリ17から読み出すとする。   For example, the processing capacity of the graphics processor 15 matches the speed of the NAND flash main memory 4 having a 1/10 bandwidth, or is about two to three times the capacity. It is assumed that infrequently used data is read from the NAND flash main memory 4 and frequently used data is read from the primary cache memory 3 or the secondary cache memory 17.

本実施の形態においては、キャッシュ入れ替え(キャッシュミスなど)時に、NAND型フラッシュメインメモリ4のガーベージコレクション処理やイレースを行う、などのような最適化を実現することができるプロセッサ16を提供することができ、高度な最適化を行うことができる。   In the present embodiment, it is possible to provide a processor 16 capable of realizing optimization such as garbage collection processing or erasing of the NAND flash main memory 4 at the time of cache replacement (cache miss or the like). And advanced optimization can be performed.

なお、2次キャッシュメモリ17のエントリーサイズを1メガバイト程度とすると、NAND型フラッシュメインメモリ4との相性がよくなる。   If the entry size of the secondary cache memory 17 is about 1 megabyte, compatibility with the NAND flash main memory 4 is improved.

本実施の形態においては、例えば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 integrated MMU 13 is provided in the processor 16, whereby the primary cache memory 3, the secondary cache memory 17, and the NAND flash main memory 4 can be collectively managed.

そして、本実施の形態では、レジューム時に保存するデータ量を削減することができる。   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 main memory 4, it is possible to reduce access to the disk drive 18, reduce waiting time, and improve user operability and satisfaction. Can do.

本実施の形態においては、二次キャッシュメモリ17(DRAM)よりもメモリ単価の安いNAND型フラッシュメインメモリ4を用いることにより、より多くのデータ又はプログラムを高速にアクセスすることができる。   In the present embodiment, more data or programs can be accessed at high speed by using the NAND type flash main memory 4 whose unit cost is lower than that of the secondary cache memory 17 (DRAM).

(第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 memory management device 24 according to the present embodiment is connected to a plurality of processors (including, for example, Codec IP and Graphic IP) 251 to 254 via the system bus 30. The integrated memory management device 24 is applied to a multiprocessor configuration. The integrated memory management device 24 is connected to a nonvolatile main memory 26 such as a NAND flash memory. In the present embodiment, the number of processors can be freely changed by 1 or 2 or more.

メインメモリ26では、書き込み及び読み込みは、ページと呼ばれる複数ビット単位で行われる。消去は、ブロックと呼ばれる、複数のページをまとめた単位で一括して行われる。   In the main memory 26, writing and reading are performed in units of a plurality of bits called pages. Erasing is performed in a batch called a block, which is a unit of a plurality of pages.

複数のプロセッサ251〜254のうちのいくつかでは、論理アドレスを含むプロセスが実行されている。この例では、プロセッサ251,252,254でプロセス271,272,274が実行されている。なお、プロセス271,272,274は、オペレーティングシステムであってもよい。   Some of the plurality of processors 251 to 254 execute processes including logical addresses. In this example, processes 271, 272, and 274 are executed by the processors 251, 252, and 254. Note that the processes 271, 272, and 274 may be operating systems.

複数のプロセッサ251〜254のそれぞれは、1次キャッシュメモリ281〜284、2次キャッシュメモリ291〜294を具備する。   Each of the plurality of processors 251 to 254 includes primary cache memories 281 to 284 and secondary cache memories 291 to 294.

統合メモリ管理装置24は、ウェアレベリングと、論理アドレスから物理アドレスへの変換を行う。   The integrated memory management device 24 performs wear leveling and conversion from a logical address to a physical address.

統合メモリ管理装置24は、メインメモリ26のページ単位、ページサイズの整数倍単位、又はブロック単位でウェアレベリングを行う。ウェアレベリングカウンタは、メインメモリのリダンダンシ領域26aに記憶される。リダンダンシ領域26aは、メインメモリ26のページ又はブロック毎に設けられている冗長領域である。統合メモリ管理装置24は、メモリ空間にマッピングを行う場合に、ウェアレベリングを考慮してメモリ確保を行う。   The integrated memory management device 24 performs wear leveling in units of pages of the main memory 26, in units of integer multiples of the page size, or in units of blocks. The wear leveling counter is stored in the redundancy area 26a of the main memory. The redundancy area 26 a is a redundant area provided for each page or block of the main memory 26. The integrated memory management device 24 secures memory in consideration of wear leveling when mapping to the memory space.

統合メモリ管理装置24は、リムーバブルメモリもメインメモリとして扱い、メモリ空間にマッピングする。   The integrated memory management device 24 treats the removable memory as the main memory and maps it to the memory space.

この統合メモリ管理装置24は、複数のプロセッサ271〜274側というよりむしろメインメモリ26側に備えられている。しかしながら、統合メモリ管理装置24は、複数のプロセッサ271〜274側に備えられるとしてもよい。   The integrated memory management device 24 is provided on the main memory 26 side rather than the plurality of processors 271 to 274 side. However, the integrated memory management device 24 may be provided on the plurality of processors 271 to 274 side.

統合メモリ管理装置24は、命令とデータとで、ページサイズを切り換える。例えば、命令用のページサイズは16キロバイトなどのように小さいサイズとし、データ用のページサイズは512キロバイトなどのように大きいサイズとする。   The integrated memory management device 24 switches the page size between an instruction and data. For example, the instruction page size is set to a small size such as 16 kilobytes, and the data page size is set to a large size such as 512 kilobytes.

メインメモリ26は、統合メモリ管理装置24のページサイズ(プロセス又はOS)と同じメモリページサイズ又は統合メモリ管理装置34のページサイズの倍数となるメモリページサイズを持つ。   The main memory 26 has the same memory page size as the page size (process or OS) of the integrated memory management device 24 or a memory page size that is a multiple of the page size of the integrated memory management device 34.

1次キャッシュメモリ281〜284及び2次キャッシュメモリ291〜294と、メインメモリ26との間では、一括してページの転送が実行される。この一括の転送は、例えば、メインメモリのページ単位、ページサイズの整数倍単位又はブロック単位(例えば、256 kilobyte 〜 512 kilobyte)で行われる。   Page transfer is performed collectively between the primary cache memories 281 to 284 and the secondary cache memories 291 to 294 and the main memory 26. This batch transfer is performed, for example, in units of main memory pages, integer multiples of the page size, or block units (for example, 256 kilobytes to 512 kilobytes).

1次キャッシュメモリ281〜284に対するアクセス、及び2次キャッシュメモリ291〜294に対するアクセスは論理アドレスに基づいて行われる。システムバス30上でも、論理アドレスが用いられる。   Access to the primary cache memories 281 to 284 and access to the secondary cache memories 291 to 294 are performed based on logical addresses. A logical address is also used on the system bus 30.

統一的な統合メモリ管理装置24は、複数のプロセッサ271〜274に対して、プロセスレベルの論理アドレスから物理アドレスへの変換、さらに、メインメモリ26のページ単位、ページサイズの整数倍単位、又はブロック単位でのウェアレベリングのための論理ページ又は論理ブロックから物理ページ又は物理ブロックへの変換を総合して行う。   The unified integrated memory management device 24 converts a plurality of processors 271 to 274 from a process level logical address to a physical address, and further, a page unit of the main memory 26, an integer multiple of a page size, or a block. The conversion from the logical page or logical block to the physical page or physical block for wear leveling in units is comprehensively performed.

本実施の形態においては、図12に示す形式のシステム論理アドレス31が用いられる。このシステム論理アドレス31は、プロセッサIDとプロセスID、プロセス内論理アドレスを含む。なお、プロセッサIDとプロセスIDとのうちの少なくとも一つは変換され(例えばハッシングなどを用いてIDの長さが短くされ)、システム論理アドレス31は、変換後の内容を含むとしてもよい。例えば、プロセッサIDとプロセスIDをハッシングで変換し、システム論理アドレス31は、このハッシングで変換されたビットとプロセス内論理アドレスとを含むとしてもよい。   In the present embodiment, a system logical address 31 having the format shown in FIG. 12 is used. The system logical address 31 includes a processor ID, a process ID, and an in-process logical address. Note that at least one of the processor ID and the process ID is converted (for example, the length of the ID is shortened by using hashing or the like), and the system logical address 31 may include the content after conversion. For example, the processor ID and the process ID may be converted by hashing, and the system logical address 31 may include the bit converted by the hashing and the in-process logical address.

メインメモリ26は、システム全体で単一のページテーブル26bを記憶する。すなわち、メインメモリ26は、プロセス271,272,274毎のページテーブルを持つのではなく、プロセス271,272,274全体で統一したページテーブル26bを持つ。   The main memory 26 stores a single page table 26b for the entire system. That is, the main memory 26 does not have a page table for each of the processes 271, 272, and 274, but has a page table 26b that is unified throughout the processes 271, 272, and 274.

本実施の形態においては、メインメモリ26にハードディスクドライブ(HDD)と同じ程度の容量を持つメインメモリ26を使用する。この場合、物理メモリよりも大きなメモリ空間を使用するために2次記憶(スワップアウト)を使用する必要はない。従来においては、物理メインメモリが例えばDRAMであって記憶容量が1GB程度であるが、プロセス毎に4GBの論理メモリ空間を使いたい場合に、より記憶容量の大きいハードディスクドライブ上に2次記憶領域を確保し、スワップイン/スワップアウトを行う必要があった。しかしながら、本実施の形態では、メインメモリ26がハードディスクドライブと同レベル以上の記憶容量を持つため、2次記憶を用いる必要がない。   In the present embodiment, the main memory 26 having the same capacity as a hard disk drive (HDD) is used as the main memory 26. In this case, it is not necessary to use secondary storage (swap out) in order to use a larger memory space than physical memory. Conventionally, the physical main memory is, for example, a DRAM and the storage capacity is about 1 GB. However, when a 4 GB logical memory space is to be used for each process, a secondary storage area is provided on a hard disk drive having a larger storage capacity. It was necessary to secure and swap-in / swap-out. However, in this embodiment, since the main memory 26 has a storage capacity equal to or higher than that of the hard disk drive, it is not necessary to use secondary storage.

したがって、装置構成及び動作をシンプルにすることができる。   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 cache memories 281 to 284, 291 to 294 or the main memory 26, and it is not necessary to load a file before executing.

(第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 memory management devices 241 and 242 are connected to a plurality of processors (including Codec IP and Graphic IP) 251 to 254 via the network 33. The integrated memory management devices 241 and 242 are connected to a plurality of nonvolatile main memories 261 and 262 such as NAND flash memories, for example.

なお、統合メモリ管理装置の数、メインメモリの数は、自由に変更可能である。   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 main memory 261 has the same characteristics as the main memory 26 in the fifth embodiment, and has a redundancy area 261a for storing a wear leveling counter and a page table 261b unified for the entire processes 271, 272, and 274. The main memory 262 has the same characteristics as the main memory 261.

本実施の形態で用いられる論理アドレス34は、図14に示すように、ネットワーク33のIPアドレス又はIPv6アドレス、プロセッサIDとプロセスID、プロセス内論理アドレスを含む。なお、各アドレス及びIDのうちの少なくとも一つは、変換され(例えばハッシングなどを用いてIDの長さが短くされ)、論理アドレス34は、変換後の内容を含むとしてもよい。例えば、IPアドレス又はIPv6アドレス、プロセッサIDとプロセスIDをハッシングで変換し、論理アドレス34は、このハッシングで変換されたビットとプロセス内論理アドレスとを含むとしてもよい。   As shown in FIG. 14, the logical address 34 used in the present embodiment includes an IP address or IPv6 address of the network 33, a processor ID and a process ID, and an in-process logical address. Note that at least one of each address and ID is converted (for example, the length of the ID is shortened using hashing or the like), and the logical address 34 may include the content after conversion. For example, the IP address or the IPv6 address, the processor ID and the process ID may be converted by hashing, and the logical address 34 may include the bit converted by the hashing and the in-process logical address.

メインメモリ261,262は、統合メモリ管理装置241,242のページサイズと同じメモリページサイズ又はMMU241,242のページサイズの整数倍となるメモリページサイズを持つ。   The main memories 261 and 262 have the same memory page size as the page size of the integrated memory management devices 241 and 242 or a memory page size that is an integral multiple of the page size of the MMUs 241 and 242.

1次キャッシュメモリ281〜284及び2次キャッシュメモリ291〜294と、メインメモリ261,262との間では、一括してページの転送が実行される。この一括の転送は、例えば、メインメモリのページ単位、ページサイズの整数倍単位、又はブロック単位(例えば、256 kilobyte 〜 512 kilobyte)で行われる。   Page transfer is performed in a batch between the primary cache memories 281 to 284 and the secondary cache memories 291 to 294 and the main memories 261 and 262. This batch transfer is performed, for example, in page units of the main memory, integer multiples of the page size, or block units (for example, 256 kilobytes to 512 kilobytes).

本実施の形態において、1次キャッシュメモリ281〜284に対するアクセス、及び2次キャッシュメモリ291〜294に対するアクセスは、論理アドレスに基づいて実行される。ネットワーク33上でも、論理アドレスが用いられる。   In the present embodiment, access to the primary cache memories 281 to 284 and access to the secondary cache memories 291 to 294 are executed based on logical addresses. Logical addresses are also used on the network 33.

統一的な統合メモリ管理装置241,242は、複数のプロセッサ271〜274に対して、プロセスレベルの論理アドレスから物理アドレスへの変換、さらに、不揮発性のメインメモリ261,242のページ単位、ページサイズの整数倍単位、又はブロック単位でのウェアレべリングのための論理ページ又は論理ブロックから物理ページ又は物理ブロックへの変換を総合して行う。   The unified integrated memory management devices 241 and 242 convert a plurality of processors 271 to 274 from process level logical addresses to physical addresses, and further, page units and page sizes of the nonvolatile main memories 261 and 242. The conversion from a logical page or logical block to a physical page or physical block for wear leveling in an integer multiple unit or block unit is comprehensively performed.

本実施の形態においては、ネットワーク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 network 33.

(第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 main memory 26 via the system bus 30. In the present embodiment, the number of processors can be freely changed.

複数のプロセッサ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. Processes 271, 272, and 274 may be operating systems.

複数のプロセッサ351〜354のそれぞれは、1次キャッシュメモリ361〜364、2次キャッシュメモリ371〜374、統合メモリ管理装置381〜384を具備する。   Each of the plurality of processors 351 to 354 includes primary cache memories 361 to 364, secondary cache memories 371 to 374, and integrated memory management devices 381 to 384.

統合メモリ管理装置381〜384は、ウェアレベリングと、論理アドレスから物理アドレスへの変換を行う。統合メモリ管理装置381〜384は、複数のプロセッサ351〜354側に備えられている。   The integrated memory management devices 381 to 384 perform wear leveling and conversion from a logical address to a physical address. The integrated memory management devices 381 to 384 are provided on the plurality of processors 351 to 354 side.

メインメモリ26は、統合メモリ管理装置381〜384のページサイズと同じメモリページサイズ又は統合メモリ管理装置381〜384のページサイズの整数数となるメモリページサイズを持つ。   The main memory 26 has a memory page size that is the same as the page size of the integrated memory management devices 381 to 384 or an integer number of the page size of the integrated memory management devices 381 to 384.

1次キャッシュメモリ361〜364及び2次キャッシュメモリ371〜374と、メインメモリ26との間では、一括してページの転送が実行される。この一括の転送は、例えば、メインメモリのブロック(ページの整数倍)単位(例えば、256 kilobyte 〜 512 kilobyte)で行われる。   Page transfer is performed collectively between the primary cache memories 361 to 364 and the secondary cache memories 371 to 374 and the main memory 26. This batch transfer is performed, for example, in blocks (an integer multiple of a page) of the main memory (for example, 256 kilobytes to 512 kilobytes).

本実施の形態において、1次キャッシュメモリ361〜364に対するアクセス、及び2次キャッシュメモリ371〜374に対するアクセスでは物理アドレスが用いられる。システムバス30上でも、物理アドレスが用いられる。   In the present embodiment, physical addresses are used for access to the primary cache memories 361 to 364 and access to the secondary cache memories 371 to 374. A physical address is also used on the system bus 30.

複数のプロセッサ351〜354毎に備えられる統合メモリ管理装置381〜384は、プロセスレベルの論理アドレスから物理アドレスへの変換、さらに、メインメモリ26のページ単位、ページサイズの整数倍単位又はブロック単位でのウェアレべリングのための論理ページ又は論理ブロックから物理ページ又は物理ブロックへの変換を行う。   The integrated memory management devices 381 to 384 provided for each of the plurality of processors 351 to 354 convert process level logical addresses to physical addresses, and further, in units of pages of the main memory 26, in units of integer multiples of pages, or in units of blocks. Conversion from a logical page or logical block for wear leveling to a physical page or physical block is performed.

以上説明した本実施の形態においては、統合メモリ管理装置381〜384をプロセッサ351〜354側に設けた場合であっても、上記第5と同様の効果を得ることができる。   In the present embodiment described above, even when the integrated memory management devices 381 to 384 are provided on the processors 351 to 354 side, the same effect as the fifth aspect can be obtained.

(第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 memory management device 24 according to the present embodiment.

NAND型フラッシュメインメモリ26は、物理アドレスに対応する物理ブロック39、ページテーブル26b、メモリ使用情報40、メモリ固有情報41を備える。   The NAND flash main memory 26 includes a physical block 39 corresponding to a physical address, a page table 26b, memory usage information 40, and memory specific information 41.

各プロセッサ251〜254の1次キャッシュメモリ281〜284、2次キャッシュメモリ291〜294のキャッシュラインサイズと、NAND型フラッシュメインメモリ26のブロックサイズ又はページサイズの整数倍とは、同じサイズであり、データ転送の効率化が図られている。   The cache line sizes of the primary cache memories 281 to 284 and the secondary cache memories 291 to 294 of each of the processors 251 to 254 and the integer multiple of the block size or page size of the NAND flash main memory 26 are the same size. Data transfer efficiency is improved.

NAND型フラッシュメインメモリ26において、各種のデータは、例えばデータD1のように複数の物理ブロック39にまたがって存在するとしてもよい。また、例えば複数のデータD1,D2のように、複数のデータが一つの物理ブロック39に存在するとしてもよい。   In the NAND flash main memory 26, various data may exist across a plurality of physical blocks 39, for example, data D1. Further, for example, a plurality of data may exist in one physical block 39, such as a plurality of data D1 and D2.

そして、各データ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 memory usage information 40 includes the number of times of reading / writing of each memory area and the number of times of reading / writing of each data. More specifically, for example, the memory usage information 40 includes, for each memory area (page or block), the number of rewrites, the number of reads, the data information existing in this area (number, type, number of reads specific to each data, Including the number of rewrites).

メモリ固有情報41は、NAND型フラッシュメインメモリ26のページサイズ、ブロックサイズ、書き換え可能回数、読み出し可能回数などを含む。より詳細に説明すると、例えば、メモリ固有情報41は、NAND型フラッシュメインメモリ26のページサイズ、ブロックサイズ、全記憶容量、SLC(Single Level Cell)領域情報(ブロック位置、サイズ、読み出し可能回数、書き込み可能回数などを含む)、MLC(Multi Level Cell)領域情報(ブロック位置、サイズ、読み出し可能回数、書き込み可能回数などを含む)を具備する。   The memory unique information 41 includes the page size, block size, the number of rewritable times, the number of readable times, etc. of the NAND flash main memory 26. More specifically, for example, the memory specific information 41 includes the page size, block size, total storage capacity, and SLC (Single Level Cell) area information (block position, size, number of reads possible, write) of the NAND flash main memory 26. MLC (Multi Level Cell) area information (including block position, size, number of times of reading, number of times of writing, etc.).

統合メモリ管理装置24は、各プロセス(OSでもよい)用論理アドレスを物理アドレスに変換し、NAND型フラッシュメインメモリ26用の論理アドレスを物理アドレスに変換する。   The integrated memory management device 24 converts the logical address for each process (which may be an OS) into a physical address, and converts the logical address for the NAND flash main memory 26 into a physical address.

また、メモリ管理装置24は、データD1,D2固有の読み書き頻度情報E1,E2、メモリ使用情報40、メモリ固有情報41に基づいて、最適なウェアレべリングを実行する。   Further, the memory management device 24 performs optimum wear leveling based on the read / write frequency information E1 and E2 unique to the data D1 and D2, the memory usage information 40, and the memory unique information 41.

メモリ管理装置24は、マイクロプロセッサ42、作業メモリ43、情報レジスタ44、キャッシュメモリ45を具備する。   The memory management device 24 includes a microprocessor 42, a work memory 43, an information register 44, and a cache memory 45.

マイクロプロセッサ42は、情報レジスタ44、作業メモリ43を利用しつつ、メモリ管理を実行する。キャッシュメモリ45は、各プロセッサ271〜274からのデータ及びNAND型フラッシュメインメモリ26からのデータの一時保存などに用いられる。なお、キャッシュメモリ45は、外付けのDRAMでもよい。   The microprocessor 42 executes memory management while using the information register 44 and the work memory 43. The cache memory 45 is used for temporary storage of data from the processors 271 to 274 and data from the NAND flash main memory 26. The cache memory 45 may be an external DRAM.

図17は、マイクロプロセッサ42の機能の一例を示すブロック図である。   FIG. 17 is a block diagram illustrating an example of the functions of the microprocessor 42.

マイクロプロセッサ42は、取得機能42a、アドレス変換機能42b、アクセス機能42c、転送機能42dを備える。   The microprocessor 42 includes an acquisition function 42a, an address conversion function 42b, an access function 42c, and a transfer function 42d.

複数のプロセッサ251〜254のいずれかが、NAND型フラッシュメインメモリ26のデータを読み出す場合、取得機能42aは、複数のプロセッサ251〜254のいずれかから、読み出し論理アドレスを取得する。   When any of the plurality of processors 251 to 254 reads data from the NAND flash main memory 26, the acquisition function 42a acquires a read logical address from any of the plurality of processors 251 to 254.

アドレス変換機能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 acquisition function 42 a into a read destination physical address of the NAND flash main memory 26. For example, it is assumed that the NAND flash main memory 26 is divided into areas having a plurality of group attributes, and each group attribute is held as memory specific information 41. In this case, the address conversion function 42b refers to the data D1, D2 specific read / write frequency information E1, E2 defined by the file management program (process) operating on any processor, and the memory specific information 41. The write destination physical address is associated with the group attribute area corresponding to the read / write frequency information E1, E2 unique to the data D1, D2.

アクセス機能42cは、NAND型フラッシュメインメモリ26から、読み出し先物理アドレスに対応するデータを読み出す。ここで、この読み出されるデータのデータサイズは、NAND型フラッシュメインメモリ26のページサイズの整数倍又はブロックサイズとする。   The access function 42 c reads data corresponding to the read destination physical address from the NAND flash main memory 26. Here, the data size of the read data is an integer multiple of the page size of the NAND flash main memory 26 or a block size.

転送機能42dは、読み出されたデータを、読み出し論理アドレスを発行したプロセッサのキャッシュメモリに転送する。ここで、読み出し論理アドレスを発行したプロセッサのキャッシュメモリのキャッシュサイズは、NAND型フラッシュメインメモリ26のページサイズの整数倍又はブロックサイズに依存している。   The transfer function 42d transfers the read data to the cache memory of the processor that issued the read logical address. Here, the cache size of the cache memory of the processor that issued the read logical address depends on an integer multiple of the page size of the NAND flash main memory 26 or a block size.

複数のプロセッサ251〜254のいずれかが、NAND型フラッシュメインメモリ26へデータを書き込む場合、取得機能42aは、プロセッサから、書き込み先論理アドレスと、書き込みデータとを取得する。ここで、書き込みデータのサイズは、キャッシュサイズとする。   When any of the plurality of processors 251 to 254 writes data to the NAND flash main memory 26, the acquisition function 42a acquires a write destination logical address and write data from the processor. Here, the size of the write data is the cache size.

アドレス変換機能42bは、取得機能42aによって取得された書き込み先論理アドレスを、NAND型フラッシュメインメモリ26の書き込み先物理アドレスに変換する。   The address conversion function 42 b converts the write destination logical address acquired by the acquisition function 42 a into a write destination physical address of the NAND flash main memory 26.

アクセス機能42cは、NAND型フラッシュメインメモリ26の書き込み先物理アドレスに対応する位置に、書き込みデータを書き込む。   The access function 42 c writes write data at a position corresponding to the write destination physical address of the NAND flash main memory 26.

マイクロプロセッサ42のアドレス変換機能42bは、データ固有の読み書き頻度情報、メモリ使用情報40と、メモリ固有情報41とのうちの少なくとも一つに基づいて、ウェアレべリングを行う。   The address conversion function 42b of the microprocessor 42 performs wear leveling based on at least one of the data-specific read / write frequency information, the memory usage information 40, and the memory-specific information 41.

図18は、メモリ管理装置24の転送アルゴリズムの第1の動作の例を示す図である。   FIG. 18 is a diagram illustrating an example of a first operation of the transfer algorithm of the memory management device 24.

メモリ管理装置24のマイクロプロセッサ42は、起動時に、メモリ使用情報40及びメモリ固有情報41を読み込み、情報レジスタ44に格納する。メモリ固有情報41には、NAND型フラッシュメインメモリ26のページサイズ及びブロックサイズが含まれている。各プロセッサ271〜274のキャッシュサイズは、NAND型フラッシュメインメモリ26のブロックサイズ又はページサイズの整数倍である。   The microprocessor 42 of the memory management device 24 reads the memory usage information 40 and the memory specific information 41 and stores them in the information register 44 at startup. The memory unique information 41 includes the page size and block size of the NAND flash main memory 26. The cache size of each of the processors 271 to 274 is an integral multiple of the block size or page size of the NAND flash main memory 26.

従来から使用されているプロセッサにメモリ管理装置24を適用する場合であって、この従来のプロセッサについてキャッシュサイズを変更できない場合には、マイクロプロセッサ42は、キャッシュメモリ45でバッファリングを行い、プロセッサ271〜274のキャッシュサイズとNAND型フラッシュメインメモリ26のブロックサイズ又はページサイズの整数倍との差を調整する。例えば、マイクロプロセッサ42は、ページサイズ256kilobyte分のデータをキャッシュメモリ45に読み込み、プロセッサ271〜274のいずれかに対して、キャッシュライン4kilobyte分のデータを出力する。   When the memory management device 24 is applied to a conventionally used processor and the cache size cannot be changed for the conventional processor, the microprocessor 42 performs buffering in the cache memory 45, and the processor 271 The difference between the cache size of ˜274 and the integer multiple of the block size or page size of the NAND flash main memory 26 is adjusted. For example, the microprocessor 42 reads the data for the page size 256 kilobytes into the cache memory 45 and outputs the data for the cache line 4 kilobytes to any of the processors 271 to 274.

図19は、メモリ管理装置24の転送アルゴリズムの第2の動作の例を示す図である。   FIG. 19 is a diagram illustrating an example of a second operation of the transfer algorithm of the memory management device 24.

メモリ管理装置24のマイクロプロセッサ42は、いずれかのプロセッサ252から、1キャッシュライン分のアクセス要求を受信する(Tr19A)。   The microprocessor 42 of the memory management device 24 receives an access request for one cache line from any of the processors 252 (Tr19A).

次に、マイクロプロセッサ42は、アクセス要求に対応するブロック又はページの整数倍のデータを、NAND型フラッシュメインメモリ26から読み出し、キャッシュメモリ45に記憶する(Tr19B)。   Next, the microprocessor 42 reads data that is an integral multiple of the block or page corresponding to the access request from the NAND flash main memory 26 and stores it in the cache memory 45 (Tr19B).

次に、マイクロプロセッサ42は、アクセス要求に対応するデータを、キャッシュメモリ45からプロセッサ252に送信する(Tr19C)。   Next, the microprocessor 42 transmits data corresponding to the access request from the cache memory 45 to the processor 252 (Tr19C).

図20は、メモリ管理装置24の転送アルゴリズムの第3の動作の例を示す図である。   FIG. 20 is a diagram illustrating a third operation example of the transfer algorithm of the memory management device 24.

いずれかのプロセッサ252は、キャッシュメモリ282又はキャッシュメモリ292のデータを書き換える(Tr20A)。   One of the processors 252 rewrites the data in the cache memory 282 or the cache memory 292 (Tr20A).

次に、メモリ管理装置24のマイクロプロセッサ42は、キャッシュメモリ282又はキャッシュメモリ292の書き換えられたデータをキャッシュアウトし、キャッシュメモリ45に転送する(Tr20B)。   Next, the microprocessor 42 of the memory management device 24 caches the rewritten data in the cache memory 282 or the cache memory 292, and transfers it to the cache memory 45 (Tr20B).

すると、マイクロプロセッサ42は、このデータが持つ読み書き頻度情報、情報レジスタ44に記憶されているメモリ使用情報40及びメモリ固有情報41に基づいて、ウェアレべリングを行い、NAND型フラッシュメインメモリ26の複数の物理ブロックの中から書き込みを行ういずれかの物理ブロック39を決定する。   Then, the microprocessor 42 performs wear leveling based on the read / write frequency information held by this data, the memory use information 40 and the memory specific information 41 stored in the information register 44, and performs a plurality of NAND flash main memory 26. The physical block 39 to be written is determined from among the physical blocks.

マイクロプロセッサ42は、キャッシュメモリ45に記憶されている書き換えられたデータを、決定された物理ブロック39に記憶する(Tr20C)。   The microprocessor 42 stores the rewritten data stored in the cache memory 45 in the determined physical block 39 (Tr20C).

この書き込みにおいては、必要に応じて、メモリブロックの移動、ガーページコレクションが行われる。   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 main memory 26 includes two or more banks 46a and 46b.

マイクロプロセッサ42は、データ(ブロック又はページ)を、順次、一方のバンク46aに追加記憶していく。   The microprocessor 42 additionally stores data (blocks or pages) sequentially in one bank 46a.

データの削除が発生すると、マイクロプロセッサ42は、バンク46a上の削除対象のデータを削除する。しかしながら、このバンク46aにおける最後の領域にデータが記憶されるまで、順次、追加記憶は継続される。書き込み対象となっているバンク46aでは、途中で削除された部分に書き込みは行われない。したがって、書き込み対象となっているバンク46aにおいてデータの削除が発生すると、この削除された領域のデータが欠けた状態となる。   When data deletion occurs, the microprocessor 42 deletes data to be deleted on the bank 46a. However, the additional storage is sequentially continued until data is stored in the last area in the bank 46a. In the bank 46a to be written, writing is not performed on the part deleted midway. Therefore, when data is deleted in the bank 46a to be written, data in the deleted area is lost.

マイクロプロセッサ42は、一方のバンク46aの最後の領域までデータを記憶すると、このバンク46aのうち削除されていない有効なデータを、他方のバンク46bにガーベージコレクションしながらコピーし、この他方のバンク48bにおいて、コピーされたデータの次から新たなデータを追加記憶していく。また、マイクロプロセッサ42は、一方のバンク46aのデータを他方のバンク46bにコピーした後、一方のバンク46aに対してクリアを行う。その後、同様の処理が繰り返される。   When the microprocessor 42 stores the data up to the last area of the one bank 46a, the valid data that has not been deleted is copied from the bank 46a to the other bank 46b while being garbage collected, and the other bank 48b. Then, new data is additionally stored after the copied data. Further, after copying the data of one bank 46a to the other bank 46b, the microprocessor 42 clears the one bank 46a. Thereafter, the same processing is repeated.

ここで、メモリ管理装置24のマイクロプロセッサ42で用いられるウェアレべリング・アルゴリズムの具体的動作例について説明する。   Here, a specific operation example of the wear leveling algorithm used in the microprocessor 42 of the memory management device 24 will be described.

まず、マイクロプロセッサ42は、いずれかのプロセッサ又はOSから、書き込まれるデータを受信する。書き込まれるデータが複数の場合には、書き込み頻度の一番高いデータを基準として用いる。プロセッサ又はOSが従来型の場合、マイクロプロセッサ42は、データの先頭などを調べて、データの種類を判断する。   First, the microprocessor 42 receives data to be written from any processor or OS. When there are a plurality of data to be written, the data with the highest writing frequency is used as a reference. When the processor or OS is a conventional type, the microprocessor 42 examines the top of data and determines the type of data.

例えば、マイクロプロセッサ42は、書き込まれるデータの種別が圧縮された画像データの場合、この書き込まれるデータの書き込み頻度は少ないため、MLC領域を書き換え領域に決定する。または、マイクロプロセッサ42は、書き込まれるデータの種別が圧縮された画像データの場合、すでに書き換え回数が多くなっている空領域を書き換え領域に決定する。   For example, in the case of image data in which the type of data to be written is compressed, the microprocessor 42 determines the MLC area as the rewrite area because the writing frequency of the written data is low. Alternatively, in the case of image data in which the type of data to be written is compressed, the microprocessor 42 determines an empty area where the number of rewrites has already increased as the rewrite area.

例えば、マイクロプロセッサ42は、書き込まれるデータの種別がウェブブラウザのキャッシュデータの場合、書き込み頻度が高いため、SLC領域を書き換え領域に決定する。   For example, when the type of data to be written is cache data of a web browser, the microprocessor 42 determines the SLC area as the rewrite area because the writing frequency is high.

例えば、マイクロプロセッサ42は、SLC領域又はMLC領域の中から、書き換え回数の一番少ない空ブロックを、書き込み領域に決定する。   For example, the microprocessor 42 determines an empty block with the smallest number of rewrites from the SLC area or the MLC area as the writing area.

例えば、マイクロプロセッサ42は、NAND型フラッシュメインメモリ26における全ての空き領域(例えば空きブロック)の書き換え回数が、最大書き込み可能回数の所定の割合(例えば80%など)に達している場合に、すでにデータの書き込まれている領域のうち、スタティック情報に基づく書き換え頻度が少なく、さらにダイナミック情報に基づく書き換え回数も少ない領域を選択し、この選択された領域のデータを、空き領域に記憶する。そして、マイクロプロセッサ42は、この選択された領域のデータを削除する。すなわち、空き領域と選択された領域との間でデータの入れ替えを行う。   For example, when the number of rewrites of all free areas (for example, free blocks) in the NAND flash main memory 26 has reached a predetermined ratio (for example, 80%) of the maximum writable number, the microprocessor 42 has already Of the areas in which data is written, an area having a low rewrite frequency based on static information and a low rewrite frequency based on dynamic information is selected, and the data of the selected area is stored in a free area. Then, the microprocessor 42 deletes the data in the selected area. That is, the data is exchanged between the empty area and the selected area.

本実施の形態において、メモリ管理装置24のマイクロプロセッサ42は、複数のNAND型フラッシュメインメモリ26を管理するとしてもよい。   In the present embodiment, the microprocessor 42 of the memory management device 24 may manage a plurality of NAND flash main memories 26.

図22は、複数のNAND型フラッシュメインメモリ26を管理する統合メモリ管理装置24の一例を示す斜視図である。   FIG. 22 is a perspective view showing an example of an integrated memory management device 24 that manages a plurality of NAND flash main memories 26.

一つの統合メモリ管理装置24と、複数のNAND型フラッシュメインメモリ26とで、一つのメモリユニット47が形成される。図22の例では、3つのメモリユニット47が形成されている。   One integrated memory management device 24 and a plurality of NAND flash main memories 26 form one memory unit 47. In the example of FIG. 22, three memory units 47 are formed.

統合メモリ管理装置24は、同じメモリユニット47に属する複数のNAND型フラッシュメインメモリ26に対するアクセスを管理する。   The integrated memory management device 24 manages access to a plurality of NAND flash main memories 26 belonging to the same memory unit 47.

さらに、複数のメモリユニット47内に備えられている複数の統合メモリ管理装置24は、互いに連携して一つのメモリ管理装置にように動作する。   Furthermore, the plurality of integrated memory management devices 24 provided in the plurality of memory units 47 operate in cooperation with each other as one memory management device.

メモリユニット47の統合メモリ管理装置24は、メモリユニット47内の複数のNAND型フラッシュメインメモリ26に対するECC機能及びRAID機能を備え、ミラーリング及びストライピングを行う。   The integrated memory management device 24 of the memory unit 47 includes an ECC function and a RAID function for the plurality of NAND type flash main memories 26 in the memory unit 47, and performs mirroring and striping.

それぞれのNAND型フラッシュメインメモリ26は、メモリユニット47が通電中(動作中)であっても、ホットスワップ(交換)可能である。複数のNAND型フラッシュメインメモリ26のそれぞれには、ボタン48が備えられている。   Each NAND flash main memory 26 can be hot swapped (replaced) even when the memory unit 47 is energized (operating). Each of the plurality of NAND flash main memories 26 includes a button 48.

ボタン48は、警告出力部(例えばLEDなど)を備える。例えば、警告出力部が第1の色(緑)の場合は、正常状態を表し、第2の色(赤)の場合には交換必要な状態を表す。   The button 48 includes a warning output unit (for example, an LED). For example, when the warning output unit is the first color (green), it indicates a normal state, and when it is the second color (red), it indicates a state that needs to be replaced.

ボタン48を押すと、プロセス及びOSに通知が送信され、アクセスなどが発生していない取り外し安全なときに、ボタン48は、第3の色(青)になり、このボタン48に対応するNAND型フラッシュメインメモリ26は、ホットスワップ可能となる。   When the button 48 is pressed, a notification is sent to the process and the OS, and access is not generated. When it is safe to remove, the button 48 is in the third color (blue), and the NAND type corresponding to this button 48 is displayed. The flash main memory 26 can be hot swapped.

ホットスワップ実行時には、ホットスワップを要求するボタン48が押された後、ライトバックが完了した時点で、交換可能であることを示すランプが点灯し、NAND型フラッシュメインメモリ26の交換が行われる。   When hot swap is executed, after the button 48 for requesting hot swap is pressed, when the write-back is completed, a lamp indicating that replacement is possible is turned on, and the NAND flash main memory 26 is replaced.

メモリ管理装置26のマイクロプロセッサ42は、情報レジスタ44に記憶されているメモリ使用情報40とメモリ固有情報41とを参照し、各NAND型フラッシュメインメモリ26の書き換え回数又は読み出し回数とが、メモリ固有情報41に記述されている上限に達したか否か判断する。そして、マイクロプロセッサ42は、書き換え回数又は読み出し回数が上限に達している場合、メモリ交換を通知又は警告する。   The microprocessor 42 of the memory management device 26 refers to the memory usage information 40 and the memory specific information 41 stored in the information register 44, and the number of times of rewriting or reading of each NAND flash main memory 26 is determined as the memory specific. It is determined whether the upper limit described in the information 41 has been reached. Then, when the number of rewrites or the number of reads reaches the upper limit, the microprocessor 42 notifies or warns of the memory replacement.

本実施の形態において、NAND型フラッシュメインメモリ26のページサイズ又はブロックサイズが大きい場合、プリロードが有効である。   In the present embodiment, preloading is effective when the page size or block size of the NAND flash main memory 26 is large.

プリロードを行う場合、統合メモリ管理装置24のマイクロプロセッサ42は、NAND型フラッシュメインメモリ26におけるデータ固有情報E1,E2を参照し、頻繁にアクセスされる可能性の高いデータを、予めキャッシュメモリ45にプリロードしておく。   When preloading is performed, the microprocessor 42 of the integrated memory management device 24 refers to the data unique information E1 and E2 in the NAND flash main memory 26 and stores data that is likely to be frequently accessed to the cache memory 45 in advance. Preload it.

あるいは、マイクロプロセッサ42は、周期性のあるデータであって、所定の時間にアクセスされる可能性の高いデータを、その所定時間の前にプリロードしておく。   Alternatively, the microprocessor 42 preloads data having periodicity, which is highly likely to be accessed at a predetermined time, before the predetermined time.

図23は、MMUを備えている既存のプロセッサに対して、本実施の形態に係る統合メモリ管理装置24を用いたマルチプロセッサシステムの一例を示すブロック図である。   FIG. 23 is a block diagram showing an example of a multiprocessor system using the integrated memory management device 24 according to the present embodiment for an existing processor having an MMU.

プロセッサ255は、既存のプロセッサであり、MMU495、1次キャッシュメモリ285、2次キャッシュメモリ295を備え、プロセス275を実行する。この図23のシステムでは、通常のMMU495によるアドレス変換と、本実施の形態に係る統合メモリ管理装置24によるアドレス変換とが混在することになる。この場合、プロセッサ255のMMU495は、NAND型フラッシュメインメモリ26へアクセスする場合に、まずNAND型フラッシュメインメモリ26のページテーブル26bをアクセスする。しかしながら、このページテーブル26bは、アドレス変換を行うことなく、変換をスルーする内容とする。例えば、ページテーブル26bでは、変換前のアドレスと変換後のアドレスとが同じに設定されている。これにより、プロセッサ255のMMU495ではアドレス変換が行われず、メモリ管理装置24でアドレス変換を行うことが可能となる。   The processor 255 is an existing processor, and includes the MMU 495, the primary cache memory 285, and the secondary cache memory 295, and executes the process 275. In the system of FIG. 23, address translation by the normal MMU 495 and address translation by the integrated memory management device 24 according to the present embodiment are mixed. In this case, when accessing the NAND flash main memory 26, the MMU 495 of the processor 255 first accesses the page table 26b of the NAND flash main memory 26. However, the page table 26b has a content to pass through the conversion without performing the address conversion. For example, in the page table 26b, the address before conversion and the address after conversion are set to be the same. Thereby, the address conversion is not performed in the MMU 495 of the processor 255, and the address conversion can be performed in the memory management device 24.

上記の図16に示す本実施の形態に係るメモリ管理装置24を用いたシステムと、従来のマルチプロセッサシステムとの相違点を、以下で説明する。   Differences between the system using the memory management device 24 according to the present embodiment shown in FIG. 16 and the conventional multiprocessor system will be described below.

図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 processors 255 to 258, a main memory 50, and a secondary storage device 51 are connected by a system bus 30.

各プロセッサ255〜258は、それぞれ、MMU495〜498、1次キャッシュメモリ285〜288、2次キャッシュメモリ295〜298を具備する。各プロセッサ255〜258は、それぞれプロセス275〜277を実行する。   Each of the processors 255 to 258 includes MMUs 495 to 498, primary cache memories 285 to 288, and secondary cache memories 295 to 298, respectively. Each processor 255-258 executes processes 275-277, respectively.

MMU495〜498は、論理アドレスと物理アドレスとの間の変換を行う。各プロセッサ255〜258から、1次キャッシュメモリ285〜288、2次キャッシュメモリ295〜298、メインメモリ50、2次記憶装置51のいずれかへのアクセスは、物理アドレスに基づいて行われる。   The MMUs 495 to 498 perform conversion between logical addresses and physical addresses. Access from the processors 255 to 258 to the primary cache memories 285 to 288, the secondary cache memories 295 to 298, the main memory 50, and the secondary storage device 51 is performed based on the physical address.

メインメモリ50には、例えばDRAMなどのような揮発性の記憶装置が用いられる。メインメモリ50は、各プロセス275〜277ごとのページテーブル525〜528を備える。   For the main memory 50, for example, a volatile storage device such as a DRAM is used. The main memory 50 includes page tables 525 to 528 for the processes 275 to 277, respectively.

2次記憶装置51には、例えば、ハードディスクドライブ、SSD(Solid State Drive)、NAND型フラッシュメモリなどが用いられる。   As the secondary storage device 51, for example, a hard disk drive, an SSD (Solid State Drive), a NAND flash memory, or the like is used.

従来のマルチプロセッサシステムではメインメモリに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 main memory 26 is used as the main memory. Usually, the bit unit price of the DRAM is higher than the bit unit price of the NAND flash main memory 26. Therefore, in this embodiment, the cost can be reduced.

従来のマルチプロセッサシステムではメインメモリが揮発性であるのに対して、本実施の形態に係るマルチプロセッサシステムではメインメモリとして不揮発性の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 main memory 26 is used as the main memory. Thereby, in the present embodiment, instant-on is possible, the load time of programs or data or the like can be deleted in the main memory, and the operation speed can be improved.

従来のマルチプロセッサシステムでは、揮発性のメインメモリ50と不揮発性の2次記憶装置51との双方が搭載される。これに対して、本実施の形態に係るマルチプロセッサシステムでは、NAND型フラッシュメインメモリ26を搭載することで、メインメモリを不揮発性にすることができ、ハードディスクなどのような2次記憶装置を除去することができる。本実施の形態においては、メインメモリとしてDRAMを搭載する必要がない。そして、本実施の形態においては、キャッシュとしてDRAMを搭載する場合に、このキャッシュの記憶容量が少なくてもよい。したがって、本実施の形態においては、システム構成及びメモリ管理を簡略化することができ、コストを削減することができる。   In a conventional multiprocessor system, both a volatile main memory 50 and a non-volatile secondary storage device 51 are mounted. On the other hand, in the multiprocessor system according to the present embodiment, by installing the NAND flash main memory 26, the main memory can be made non-volatile, and a secondary storage device such as a hard disk is removed. can do. In this embodiment, it is not necessary to mount a DRAM as the main memory. In this embodiment, when a DRAM is mounted as a cache, the storage capacity of the cache may be small. Therefore, in this embodiment, the system configuration and memory management can be simplified, and the cost can be reduced.

従来のマルチプロセッサシステムでは、ページテーブル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 memory management device 24 based on the data-specific read / write frequency information E1, E2, the memory usage information 40, and the memory specific information 41. In the present embodiment, wear leveling can be performed more efficiently than SSD by performing wear leveling based on data-specific read / write frequency information E1, E2.

一般的に、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 memory management device 24 reads the memory specific information 41 from the NAND flash main memory 26 and performs processing according to the page size or block size indicated by the memory specific information 41. As a result, various generations of NAND flash memories can be used as the NAND flash main memory 26. In the present embodiment, the main memory management device 24 reads the memory specific information 41 including the page size or block size from the NAND flash main memory 26, the page size or block size of the NAND flash main memory 26, and each processor. The cache line size can be matched.

本実施の形態において、メモリ管理装置24は、NAND型フラッシュメインメモリ26の寿命管理を行い、警告を行う。これにより、不具合の発生を防止することができる。   In the present embodiment, the memory management device 24 performs life management of the NAND flash main memory 26 and issues a warning. Thereby, generation | occurrence | production of a malfunction can be prevented.

本実施の形態において、メモリ管理装置24は、複数のNAND型フラッシュメインメモリ26に対するRAID機能を持ち、取り替え換え対象のNAND型フラッシュメインメモリ26のホットスワップを実現することができる。これにより、寿命のつきたNAND型フラッシュメインメモリ26を容易に取り替えることができる。   In the present embodiment, the memory management device 24 has a RAID function for a plurality of NAND flash main memories 26 and can implement hot swap of the NAND flash main memory 26 to be replaced. This makes it possible to easily replace the NAND flash main memory 26 having a lifetime.

ここで、複数のプロセッサに対して、複数の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 pointer 53a for a narrow address space and a pointer 53b for a narrow address space.

セグメントテーブル54は、プロセスID55ごとに設けられており、広いアドレス空間用のポインタ56を備える。   The segment table 54 is provided for each process ID 55 and includes a pointer 56 for a wide address space.

例えば、広いアドレス空間用のポインタ57は、狭いアドレス空間用のポインタ53bと、狭いアドレス空間用のポインタ53aによって特定されるセグメントテーブル54上の広いアドレス空間用のポインタ56とを組み合わせることで得られる。なお、広いアドレス空間用のポインタ57は、狭いアドレス空間用のポインタ53bと、狭いアドレス空間用のポインタ53aと、セグメントテーブル54上の広いアドレス空間用のポインタ56とを組み合わせて生成されるとしてもよい。   For example, the wide address space pointer 57 is obtained by combining the narrow address space pointer 53b and the wide address space pointer 56 on the segment table 54 specified by the narrow address space pointer 53a. . The wide address space pointer 57 may be generated by combining the narrow address space pointer 53b, the narrow address space pointer 53a, and the wide address space pointer 56 on the segment table 54. Good.

図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 address space pointer 57 indicates one of the virtual storage spaces 60 constituted by the processor cache memories 581 to 58n and a plurality of NAND flash main memories 591 to 59m.

これにより、プロセッサのキャッシュメモリ581〜58nと、複数のNAND型フラッシュメインメモリ591〜59mとを統合的に扱うことが可能である。   As a result, the cache memories 581 to 58n of the processor and the plurality of NAND flash main memories 591 to 59m can be handled in an integrated manner.

上記各実施の形態において、メインメモリには、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の実施の形態に係る統合メモリ管理装置の一例を示すブロック図。1 is a block diagram showing an example of an integrated memory management device according to a first embodiment of the present invention. 第1の実施の形態に係る統合メモリ管理装置のメモリ階層の第1例を示す図。The figure which shows the 1st example of the memory hierarchy of the integrated memory management apparatus which concerns on 1st Embodiment. 第1の実施の形態に係る統合メモリ管理装置を備えたMPUが、NAND型フラッシュメインメモリのデータ、書き換え回数データの一部、アドレス変換テーブルの一部を記憶する場合の動作の一例を示すフローチャート。The flowchart which shows an example of operation | movement in case MPU provided with the integrated memory management apparatus which concerns on 1st Embodiment memorize | stores the data of NAND type flash main memory, a part of rewrite frequency data, and a part of address conversion table. . 第1の実施の形態に係る統合メモリ管理装置を備えたMPUにおいて、1次キャッシュメモリ又はNAND型フラッシュメインメモリからデータを読み出す場合の動作の一例を示すフローチャート。6 is a flowchart illustrating an example of an operation when data is read from a primary cache memory or a NAND flash main memory in the MPU including the integrated memory management device according to the first embodiment. 第1の実施の形態に係る統合メモリ管理装置を備えたMPUから、1次キャッシュメモリのキャッシュラインへの上書きが発生し、さらに1次キャッシュメモリ3のデータをNAND型フラッシュメインメモリ4に記憶する場合の動作の一例を示すフローチャート。The MPU having the integrated memory management device according to the first embodiment overwrites the cache line of the primary cache memory, and further stores the data of the primary cache memory 3 in the NAND flash main memory 4 The flowchart which shows an example of operation | movement in a case. 本発明の第2の実施の形態に係る統合メモリ管理装置の一例を示すブロック図。The block diagram which shows an example of the integrated memory management apparatus which concerns on the 2nd Embodiment of this invention. 第2の実施の形態に係る統合メモリ管理装置のメモリ階層の一例を示す図。The figure which shows an example of the memory hierarchy of the integrated memory management apparatus which concerns on 2nd Embodiment. 本発明の第3の実施の形態に係る統合メモリ管理装置の第1例を示すブロック図。The block diagram which shows the 1st example of the integrated memory management apparatus which concerns on the 3rd Embodiment of this invention. 第3の実施の形態に係る統合メモリ管理装置の第2例を示すブロック図。The block diagram which shows the 2nd example of the integrated memory management apparatus which concerns on 3rd Embodiment. 本発明の第4の実施の形態に係る統合メモリ管理装置の適用例を示すブロック図。The block diagram which shows the example of application of the integrated memory management apparatus which concerns on the 4th Embodiment of this invention. 本発明の第5の実施の形態に係る記憶装置の一例を示すブロック図。The block diagram which shows an example of the memory | storage device which concerns on the 5th Embodiment of this invention. 第5の実施の形態に係るシステム論理アドレスの一例を示す図。The figure which shows an example of the system logical address which concerns on 5th Embodiment. 本発明の第6の実施の形態に係る記憶装置の一例を示すブロック図。The block diagram which shows an example of the memory | storage device which concerns on the 6th Embodiment of this invention. 第6の実施の形態に係るシステム論理アドレスの一例を示す図。The figure which shows an example of the system logical address which concerns on 6th Embodiment. 本発明の第7の実施の形態に係る統合メモリ管理装置の一例を示すブロック図。The block diagram which shows an example of the integrated memory management apparatus which concerns on the 7th Embodiment of this invention. 本発明の第8の実施の形態に係る統合メモリ管理装置の構成の一例を示すブロック図。The block diagram which shows an example of a structure of the integrated memory management apparatus which concerns on the 8th Embodiment of this invention. 第8の実施の形態に係る統合メモリ管理装置のマイクロプロセッサの機能の一例を示すブロック図。The block diagram which shows an example of the function of the microprocessor of the integrated memory management apparatus which concerns on 8th Embodiment. 第8の実施の形態に係る統合メモリ管理装置の転送アルゴリズムの第1の動作の例を示すブロック図。The block diagram which shows the example of the 1st operation | movement of the transfer algorithm of the integrated memory management apparatus which concerns on 8th Embodiment. 第8の実施の形態に係る統合メモリ管理装置の転送アルゴリズムの第2の動作の例を示すブロック図。The block diagram which shows the example of the 2nd operation | movement of the transfer algorithm of the integrated memory management apparatus which concerns on 8th Embodiment. 第8の実施の形態に係る統合メモリ管理装置の転送アルゴリズムの第3の動作の例を示すブロック図。The block diagram which shows the example of the 3rd operation | movement of the transfer algorithm of the integrated memory management apparatus which concerns on 8th Embodiment. ウェアレべリングの一例を示すブロック図。The block diagram which shows an example of wear leveling. 複数のNAND型フラッシュメインメモリを管理する統合メモリ管理装置の一例を示す斜視図。The perspective view which shows an example of the integrated memory management apparatus which manages several NAND type flash main memories. MMUを備えている既存のプロセッサに対して、第8の実施の形態に係る統合メモリ管理装置を用いたマルチプロセッサシステムの一例を示すブロック図。The block diagram which shows an example of the multiprocessor system using the integrated memory management apparatus which concerns on 8th Embodiment with respect to the existing processor provided with MMU. 従来のマルチプロセッサシステムの一例を示すブロック図。1 is a block diagram showing an example of a conventional multiprocessor system. 広いアドレス空間用のポインタを求める処理の一例を示すブロック図。The block diagram which shows an example of the process which calculates | requires the pointer for wide address spaces. 複数のキャッシュメモリと複数のNAND型フラッシュメインメモリとで形成される仮想記憶空間の一例を示すブロック図。FIG. 3 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.

符号の説明Explanation of symbols

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 SYMBOLS 1,11 ... MPU, 2,12,24,381-384 ... Unified memory management apparatus, 3,281-284 ... Primary cache memory, 3a, 22a ... Tag storage area, 3b, 22b ... Line storage area, 4, 26, 261, 262 ... NAND type flash main memory, 5 ... address conversion table, 6 ... rewrite count data, 7 ... MMU, 8 ... cache controller, 8a ... first cache controller, 8b ... second cache controller, 9 ... MMU for main memory, 10 ... Access history storage unit, 13 ... Integrated MMU, 16, 251-254 ... Processor, 17, 22,291-294 ... Secondary cache memory, 23 ... Address relation storage unit, 271-274 ... Process 30 ... System bus 33 ... Network 40 ... Memory usage information 41 ... Memory specific information 42 ... Microprocessor 42a ... Acquisition function 42b ... Address conversion function 42c ... Access function 42d ... Transfer function 43 ... Work memory 44 ... Information register 45 ... Cache memory E1, E2 ... Read / write Frequency information, 39 ... physical block

Claims (9)

キャッシュメモリをアクセスするための論理アドレスを、前記キャッシュメモリをアクセスするための物理アドレスに変換する、プロセッサに備えられる第1のメモリマネジメントユニットと、
前記キャッシュメモリをアクセスするための物理アドレスに基づいて、前記キャッシュメモリをアクセスする、前記プロセッサに備えられるキャッシュコントローラと、
前記プロセッサ外のメインメモリに対するアクセス状態を示すアクセス履歴データを格納する、前記プロセッサに備えられるアクセス履歴格納部と、
前記メインメモリにおける論理アドレスと物理アドレスとの関係を示すアドレス関係データを格納する、前記プロセッサに備えられているアドレス関係格納部と、
前記アクセス履歴データと前記アドレス関係データとに基づいて、前記メインメモリをアクセスするための論理アドレスを、前記メインメモリをアクセスするための物理アドレスに変換し、前記メインメモリをアクセスするための物理アドレスに基づいて、前記メインメモリをアクセスする、前記プロセッサに備えられる第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.
キャッシュメモリをアクセスするための論理アドレスを、前記キャッシュメモリをアクセスするための物理アドレスに変換する、プロセッサに備えられる第1のメモリマネジメントユニットと、
前記プロセッサ外のメインメモリに対するアクセス状態を示すアクセス履歴データを格納する、前記プロセッサに備えられるアクセス履歴格納部と、
前記メインメモリにおける論理アドレスと物理アドレスとの関係を示すアドレス関係データを格納する、前記プロセッサに備えられているアドレス関係格納部と、
前記アクセス履歴データと前記アドレス関係データとに基づいて、前記メインメモリをアクセスするための論理アドレスを、前記メインメモリをアクセスするための物理アドレスに変換する、前記プロセッサに備えられる第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:
請求項1又は請求項2記載の統合メモリ管理装置において、
前記メインメモリは、不揮発性記憶装置であることを特徴とする統合メモリ管理装置。
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のプロセッサから、読み出し先論理アドレスを取得する取得手段と、
前記取得手段によって取得された読み出し先論理アドレスを、不揮発性メインメモリの読み出し先物理アドレスに変換するアドレス変換手段と、
前記不揮発性メインメモリから、前記不揮発性メインメモリのページサイズの整数倍又はブロックサイズの前記読み出し先物理アドレスに対応するデータを読み出すアクセス手段と、
読み出されたデータを、前記不揮発性メインメモリのページサイズの整数倍又はブロックサイズに依存しているキャッシュサイズの前記第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 .
請求項4記載の統合メモリ管理装置において、
前記取得手段は、前記第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.
請求項5記載の統合メモリ管理装置において、
前記アドレス変換手段は、データ固有の読み書き頻度情報と、前記不揮発性メインメモリの各領域の読み書き回数を含むメモリ使用情報と、前記不揮発性メインメモリのページサイズ、ブロックサイズ、記憶領域ごとの書き換え可能回数及び読み出し可能回数を含むメモリ固有情報とのうちの少なくとも一つに基づいて、ウェアレべリングを行うことを特徴とする統合メモリ管理装置。
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のプロセッサから、読み出し先論理アドレスを取得し、
前記統合メモリ管理装置により、取得された前記読み出し先論理アドレスを、不揮発性メインメモリの読み出し先物理アドレスに変換し、
前記統合メモリ管理装置により、前記不揮発性メインメモリから、前記不揮発性メインメモリのページサイズの整数倍又はブロックサイズの前記読み出し先物理アドレスに対応するデータを読み出し、
前記統合メモリ管理装置により、読み出されたデータを、前記不揮発性メインメモリのページサイズの整数倍又はブロックサイズに依存しているキャッシュサイズの前記第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.
JP2008231363A 2008-09-09 2008-09-09 Integrated memory management device Active JP4909963B2 (en)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2008231363A JP4909963B2 (en) 2008-09-09 2008-09-09 Integrated memory management device
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
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

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (11)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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
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
JP2011186554A (en) Memory management device and 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