JP2011186554A - Memory management device and method - Google Patents

Memory management device and method Download PDF

Info

Publication number
JP2011186554A
JP2011186554A JP2010048329A JP2010048329A JP2011186554A JP 2011186554 A JP2011186554 A JP 2011186554A JP 2010048329 A JP2010048329 A JP 2010048329A JP 2010048329 A JP2010048329 A JP 2010048329A JP 2011186554 A JP2011186554 A JP 2011186554A
Authority
JP
Japan
Prior art keywords
memory
data
address
semiconductor memory
information
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.)
Pending
Application number
JP2010048329A
Other languages
Japanese (ja)
Inventor
Kenichi Maeda
賢一 前田
Hiroyuki Sakamoto
広幸 坂本
Tsutomu Azezaki
勉 畦崎
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 JP2010048329A priority Critical patent/JP2011186554A/en
Priority to KR1020117029315A priority patent/KR20120068765A/en
Priority to TW099106706A priority patent/TWI460588B/en
Priority to CN201080031863.5A priority patent/CN102473140B/en
Priority to EP10799661.3A priority patent/EP2455865B1/en
Priority to PCT/JP2010/053817 priority patent/WO2011007599A1/en
Publication of JP2011186554A publication Critical patent/JP2011186554A/en
Priority to US13/351,582 priority patent/US20120191900A1/en
Priority to US14/938,589 priority patent/US10776007B2/en
Pending legal-status Critical Current

Links

Images

Abstract

<P>PROBLEM TO BE SOLVED: To efficiently access a memory connected via a network. <P>SOLUTION: A memory management device 32A manages arrangement hint information 14 that is generated based on a property of data stored in at least one of a first semiconductor memory and a nonvolatile second semiconductor memory which has limitations in the number of permitted accesses smaller than the first semiconductor memory and gives a hint for determining an arrangement area of the data. The memory management device 32A includes a management part 20 determining a write area from memory areas of the first semiconductor memory and the second semiconductor memory for data to be written, based on the arrangement hint information 14, memory use information 11, and memory peculiar information 12. A network address conversion part 34 converts a processor logical address issued from a processor into a network logical address which is longer than the processor logical address and which specifies the memory area on a network system. <P>COPYRIGHT: (C)2011,JPO&INPIT

Description

本発明は、メモリに対するアクセスを管理するメモリ管理装置及び方法に関する。   The present invention relates to a memory management apparatus and method for managing access to a memory.

従来の情報処理装置においては、プロセッサの主記憶装置(メインメモリ)として、例えばDRAM(Dynamic Random Access Memory)などの揮発性半導体メモリが使用されている。さらに、従来の情報処理装置では、揮発性半導体メモリと組み合わせて、不揮発性半導体メモリが2次記憶装置として使用される。   In a conventional information processing apparatus, a volatile semiconductor memory such as a DRAM (Dynamic Random Access Memory) is used as a main memory (main memory) of a processor. Further, in the conventional information processing apparatus, a nonvolatile semiconductor memory is used as a secondary storage device in combination with a volatile semiconductor memory.

特開2008−242944号公報(特許文献1)には、統合メモリ管理装置が提案されている。この統合メモリ管理装置では、MPUに対するメインメモリとしてNAND型フラッシュメモリが用いられている。さらに、特許文献1では、MPUの1次キャッシュメモリと、2次キャッシュメモリと、メインメモリであるNAND型フラッシュメモリとが同一のメモリ階層で扱われる。統合メモリ管理装置のキャッシュコントローラは、1次キャッシュメモリ及び2次キャッシュメモリに対するメモリ管理に加えて、メインメモリに対するメモリ管理を実行する。   Japanese Unexamined Patent Application Publication No. 2008-242944 (Patent Document 1) proposes an integrated memory management device. In this integrated memory management device, a NAND flash memory is used as a main memory for the MPU. Furthermore, in Patent Document 1, the MPU primary cache memory, secondary cache memory, and NAND flash memory as the main memory are handled in the same memory hierarchy. The cache controller of the integrated memory management device executes memory management for the main memory in addition to memory management for the primary cache memory and the secondary cache memory.

特開平7−146820号公報(特許文献2)には、情報処理装置の主記憶装置としてフラッシュメモリを採用する技術が開示されている。特許文献2において、システムのメモリバスには、揮発性メモリであるキャッシュメモリを介して、フラッシュメモリが接続される。キャッシュメモリには、このキャッシュメモリに格納されているデータのアドレス又はアクセス履歴などの情報を記録するアドレスアレイが設けられる。コントローラは、アクセス先のアドレスを参照し、キャッシュメモリ又はフラッシュメモリのデータをメモリバスに供給し、あるいは、メモリバスのデータを格納する。   Japanese Patent Application Laid-Open No. 7-146820 (Patent Document 2) discloses a technology that employs a flash memory as a main storage device of an information processing apparatus. In Patent Document 2, a flash memory is connected to a memory bus of a system via a cache memory that is a volatile memory. The cache memory is provided with an address array for recording information such as an address or access history of data stored in the cache memory. The controller refers to the access destination address, supplies the data of the cache memory or the flash memory to the memory bus, or stores the data of the memory bus.

特開2001−266580号公報(特許文献3)においては、種類の異なる半導体メモリ装置を共通のバスに接続することを可能にする発明が開示されている。   Japanese Patent Application Laid-Open No. 2001-266580 (Patent Document 3) discloses an invention that allows different types of semiconductor memory devices to be connected to a common bus.

この特許文献3の半導体メモリ装置は、ランダムアクセスメモリチップと、前記ランダムアクセスメモリチップを備えたパッケージを含む。前記パッケージは、前記ランダムアクセスメモリチップを外部装置に電気的に連結する複数のピンを有する。複数のピンは、前記ランダムアクセスメモリと、電気的に消去及びプログラム可能な不揮発性半導体メモリとに、共通にメモリ機能を提供する。前記複数のピンの各々は、不揮発性半導体メモリの対応するピンの位置に配列されている。   The semiconductor memory device of Patent Document 3 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.

一般的に、不揮発性半導体メモリは、正常にアクセス可能な回数が揮発性半導体メモリよりも少ない。   In general, the number of times that a nonvolatile semiconductor memory can be normally accessed is smaller than that of a volatile semiconductor memory.

特開2008−242944号公報JP 2008-242944 A 特開平7−146820号公報Japanese Patent Laid-Open No. 7-146820 特開2001−266580号公報JP 2001-266580 A

本発明は、ネットワークを介して接続されているメモリを効率的にアクセスするメモリ管理装置及び方法を提供することを目的とする。   It is an object of the present invention to provide a memory management apparatus and method for efficiently accessing a memory connected via a network.

本発明の一態様に係るメモリ管理装置は、第1の半導体メモリと、前記第1の半導体メモリよりもアクセス可能上限回数の小さい不揮発性の第2の半導体メモリと、のうちの少なくとも一方に記憶される各データの特性に基づいて生成され、当該各データの配置領域を決定するヒントとなる配置ヒント情報を記憶する第1の記憶部と、前記第1の半導体メモリと前記第2の半導体メモリとのそれぞれに対するメモリ固有の特性を示すメモリ固有情報を記憶する第2の記憶部と、前記第1の半導体メモリと前記第2の半導体メモリとに含まれる各メモリ領域に対する使用状態を示すメモリ使用情報を記憶する第3の記憶部と、プロセッサから発行されたプロセッサ論理アドレスを、当該プロセッサ論理アドレスよりも長く、ネットワークシステム上のメモリ領域を特定するネットワーク論理アドレスに変換するネットワークアドレス変換部と、前記第1の半導体メモリと前記第2の半導体メモリとのうちの少なくとも一方に対する書き込み対象データに対する前記配置ヒント情報を生成する第1の管理部と、前記第1の半導体メモリと前記第2の半導体メモリとのうちの少なくとも一方に対するアクセスが発生した場合に、アクセスされたメモリ領域に対する前記メモリ使用情報を更新する第2の管理部と、前記配置ヒント情報と前記メモリ使用情報と前記メモリ固有情報とに基づいて、前記書き込み対象データに対して前記第1の半導体メモリと前記第2の半導体メモリとのメモリ領域の中から、書き込み領域を決定する第3の管理部と、前記書き込み対象データの前記ネットワーク論理アドレスと前記書き込み領域の物理アドレスとを関連付けたアドレス変換情報を第4の記憶部に記憶する第4の管理部と、読み出し対象データの前記ネットワーク論理アドレスと前記アドレス変換情報とに基づいて、前記読み出し対象データを前記第1の半導体メモリと前記第2の半導体メモリとのうちのいずれかから読み出す第5の管理部とを具備する。   A memory management device according to one embodiment of the present invention stores data in at least one of a first semiconductor memory and a non-volatile second semiconductor memory having a lower accessible upper limit count than the first semiconductor memory. A first storage unit that stores generation hint information that is generated based on characteristics of each data to be used and serves as a hint for determining an arrangement area of each data; the first semiconductor memory; and the second semiconductor memory A second storage unit that stores memory-specific information indicating memory-specific characteristics for each of the first and second semiconductor memories, and a memory usage that indicates a use state of each memory area included in the first semiconductor memory and the second semiconductor memory A third storage unit for storing information and a processor logical address issued by the processor longer than the processor logical address; A network address conversion unit that converts the upper memory area into a network logical address that identifies the memory area, and the placement hint information for data to be written to at least one of the first semiconductor memory and the second semiconductor memory. A second management unit configured to update the memory use information for the accessed memory area when an access to at least one of the first management unit and the first semiconductor memory and the second semiconductor memory occurs; Based on the management unit, the placement hint information, the memory use information, and the memory unique information, the memory area of the first semiconductor memory and the second semiconductor memory for the write target data is selected. A third management unit for determining a write area and the network of the write target data Based on the fourth management unit that stores the address conversion information that associates the logical address with the physical address of the write area in the fourth storage unit, the network logical address of the read target data and the address conversion information, A fifth management unit for reading the data to be read from either the first semiconductor memory or the second semiconductor memory;

上記の態様はメモリ管理装置として表現されている。しかしながら、これに限らず、上記の態様は、メモリ管理方法、情報処理装置、ネットワークシステムなどで表現されるとしてもよい。   The above aspect is expressed as a memory management device. However, the present invention is not limited to this, and the above aspect may be expressed by a memory management method, an information processing apparatus, a network system, or the like.

本発明においては、ネットワークを介して接続されているメモリを効率的にアクセスすることができる。   In the present invention, it is possible to efficiently access a memory connected via a network.

本発明の第1の実施形態に係るメモリ管理装置及び情報処理装置の構成の一例を示すブロック図。1 is a block diagram showing an example of the configuration of a memory management device and an information processing device according to a first embodiment of the present invention. 第1の実施形態に係るメモリ管理装置及び情報処理装置の構成の一例を示すブロック図。1 is a block diagram showing an example of the configuration of a memory management device and an information processing device according to a first embodiment. 第1の実施形態に係る混成メインメモリのメモリマップの一例を示す図。FIG. 3 is a diagram showing an example of a memory map of the hybrid main memory according to the first embodiment. 第1の実施形態に係るアドレス変換情報の一例を示す図。The figure which shows an example of the address translation information which concerns on 1st Embodiment. 第1の実施形態に係るカラーリングテーブルの一例を示す図。The figure which shows an example of the coloring table which concerns on 1st Embodiment. 第1の実施形態に係る静的カラー情報の一例を説明するための図。FIG. 6 is a diagram for explaining an example of static color information according to the first embodiment. 第1の実施形態に係るデータ配置の処理の一例を示すフローチャート。6 is a flowchart illustrating an example of data arrangement processing according to the first embodiment. 第1の実施形態に係るカラーリングテーブルの構成の一例を示す図。The figure which shows an example of a structure of the coloring table which concerns on 1st Embodiment. 各種データに対する静的カラー情報の設定の第1の例を示す図。The figure which shows the 1st example of the setting of the static color information with respect to various data. 各種データに対する静的カラー情報の設定の第2の例を示す図。The figure which shows the 2nd example of the setting of the static color information with respect to various data. 第1の実施形態に係るカラーリングテーブルの生成処理の一例を示すフローチャート。6 is a flowchart illustrating an example of a coloring table generation process according to the first embodiment. 第1の実施形態に係るカラーリングテーブルのエントリの生成処理の一例を示すフローチャート。6 is a flowchart illustrating an example of a creation process of a coloring table entry according to the first embodiment. カラーリングテーブルのエントリのアライメントの第1の例を示す図。The figure which shows the 1st example of alignment of the entry of a coloring table. カラーリングテーブルのエントリのアライメントの第2の例を示す図。The figure which shows the 2nd example of alignment of the entry of a coloring table. 動的カラー情報と静的カラー情報に基づいて動的書き込み頻度DW_colorと動的読み出し頻度DR_colorを算出する方法の一例を示す図。The figure which shows an example of the method of calculating the dynamic writing frequency DW_color and the dynamic reading frequency DR_color based on dynamic color information and static color information. 第1の実施形態に係るデータの読み出し処理の一例を示すフローチャート。6 is a flowchart illustrating an example of data read processing according to the first embodiment. 第1の実施形態に係るデータの読み出し方式の決定処理の一例を示すフローチャート。6 is a flowchart illustrating an example of a data read method determination process according to the first embodiment. 第1の実施形態に係るデータの書き込み処理の一例を示すフローチャート。5 is a flowchart illustrating an example of a data writing process according to the first embodiment. 第1の実施形態に係るデータの書き込み先領域の決定処理の一例を示すフローチャート。6 is a flowchart showing an example of data write destination area determination processing according to the first embodiment; 第1の実施形態に係るデータに対する書き込み対象ブロックの決定処理について説明するための図。The figure for demonstrating the determination process of the writing object block with respect to the data which concerns on 1st Embodiment. 不揮発性半導体メモリの任意のブロック領域における消去回数の推移の一例を示すグラフ。The graph which shows an example of transition of the frequency | count of erasing in the arbitrary block area | regions of a nonvolatile semiconductor memory. ウェアレベリングにおいて消去回数の差に対するしきい値を小さく設定した場合の変化の一例を示すグラフ。The graph which shows an example of the change at the time of setting the threshold value with respect to the difference in the frequency | count of deletion in wear leveling small. 消去回数に応じたブロック領域のグループ分けの一例を示すグラフ。The graph which shows an example of grouping of the block area | region according to the frequency | count of erasing. 消去回数に応じたブロック領域のグループ分けの判断基準を表す図。The figure showing the criteria of grouping of the block area according to the number of times of erasure. ウェアレベリングにおけるブロック領域の検索の一例を示す図。The figure which shows an example of the search of the block area | region in wear leveling. キャッシュメモリを備えたメモリ管理装置の一例を示すブロック図。The block diagram which shows an example of the memory management apparatus provided with the cache memory. メモリ管理装置、混成メインメモリ、プロセッサの実装例を示すブロック図。The block diagram which shows the example of mounting of a memory management apparatus, a hybrid main memory, and a processor. 第1の実施形態に係るメモリ管理装置と情報処理装置の別構成態様の一例を示すブロック図。The block diagram which shows an example of another structure aspect of the memory management apparatus and information processing apparatus which concern on 1st Embodiment. 複数の不揮発性半導体メモリを管理する複数のメモリ管理装置の一例を示す斜視図。The perspective view which shows an example of several memory management apparatuses which manage several non-volatile semiconductor memory. 本発明の第2の実施形態に係るネットワークシステムの一例を示すブロック図。The block diagram which shows an example of the network system which concerns on the 2nd Embodiment of this invention. 第2の実施形態に係るメモリ管理装置の構成の一例を示すブロック図。The block diagram which shows an example of a structure of the memory management apparatus which concerns on 2nd Embodiment. 第2の実施形態に係るプロセッサ論理アドレスとネットワーク論理アドレスとの第1の関係を示すブロック図。The block diagram which shows the 1st relationship between the processor logical address and network logical address which concern on 2nd Embodiment. 第2の実施形態に係るプロセッサ論理アドレスとネットワーク論理アドレスとの第2の関係を示すブロック図。The block diagram which shows the 2nd relationship between the processor logical address and network logical address which concern on 2nd Embodiment. 第2の実施形態に係るプロセッサ論理アドレスとネットワーク論理アドレスとの第3の関係を示すブロック図。FIG. 10 is a block diagram showing a third relationship between a processor logical address and a network logical address according to the second embodiment. 第2の実施形態に係るプロセッサ論理アドレスとネットワーク論理アドレスとの第4の関係を示すブロック図。FIG. 9 is a block diagram showing a fourth relationship between a processor logical address and a network logical address according to the second embodiment. 第2の実施形態に係るプロセッサ論理アドレスとネットワーク論理アドレスとの第5の関係を示すブロック図。FIG. 10 is a block diagram showing a fifth relationship between a processor logical address and a network logical address according to the second embodiment. 第2の実施形態に係るネットワークシステムの仮想アドレス空間の一例を示すブロック図。The block diagram which shows an example of the virtual address space of the network system which concerns on 2nd Embodiment. 第2の実施形態に係るプロセッサ論理アドレスとネットワーク論理アドレスの構成の第1の例を示すブロック図。The block diagram which shows the 1st example of a structure of the processor logical address and network logical address which concern on 2nd Embodiment. 第2の実施形態に係るプロセッサ論理アドレスとネットワーク論理アドレスの構成の第2の例を示すブロック図。The block diagram which shows the 2nd example of a structure of the processor logical address and network logical address which concern on 2nd Embodiment. 第2の実施形態に係るプロセッサ論理アドレスとネットワーク論理アドレスの構成の第3の例を示すブロック図。The block diagram which shows the 3rd example of a structure of the processor logical address and network logical address which concern on 2nd Embodiment. ネットワークに接続される多数の機器に記憶されるデータをアクセスするために必要なアドレスのビット数を推定する計算の一例を示す図。The figure which shows an example of the calculation which estimates the bit number of the address required in order to access the data memorize | stored in many apparatuses connected to a network.

以下、図面を参照しながら本発明の各実施の形態について説明する。なお、以下の説明において、略又は実質的に同一の機能及び構成要素については、同一符号を付し、必要に応じて説明を行う。   Embodiments of the present invention will be described below with reference to the drawings. In the following description, substantially the same or substantially the same functions and components are denoted by the same reference numerals and will be described as necessary.

(第1の実施形態)
図1を参照して、本発明の第1の実施形態に係るメモリ管理装置1及び情報処理装置100について説明する。図1は、本実施形態に係るメモリ管理装置及び情報処理装置の構成の一例を示すブロック図である。
(First embodiment)
A memory management device 1 and an information processing device 100 according to a first embodiment of the present invention will be described with reference to FIG. FIG. 1 is a block diagram illustrating an example of a configuration of a memory management device and an information processing device according to this embodiment.

情報処理装置100は、メモリ管理装置1と、混成メインメモリ2と、プロセッサ3a,3b,3cとを備える。   The information processing apparatus 100 includes a memory management device 1, a hybrid main memory 2, and processors 3a, 3b, and 3c.

プロセッサ3a,3b,3cは、例えば、MPU(Micro Processor Unit)又はGPU(Graphic Processor Unit)である。プロセッサ3a,3b,3cは、各々に1次キャッシュメモリ4a,4b,4cと、2次キャッシュメモリ5a,5b,5cを備える。プロセッサ3a,3b,3cは、それぞれプロセス6a,6b,6cを実行し、種々のデータを処理する。プロセッサ3a,3b,3cは、プロセス6a,6b,6cの実行においては、仮想アドレスによりデータを指定する。   The processors 3a, 3b, and 3c are, for example, MPU (Micro Processor Unit) or GPU (Graphic Processor Unit). Each of the processors 3a, 3b, and 3c includes primary cache memories 4a, 4b, and 4c, and secondary cache memories 5a, 5b, and 5c. The processors 3a, 3b, and 3c execute processes 6a, 6b, and 6c, respectively, and process various data. The processors 3a, 3b, and 3c specify data by virtual addresses when executing the processes 6a, 6b, and 6c.

プロセッサ3a,3b,3cは、データ(書き込み対象データ)を混成メインメモリ2に書き込む場合には、書き込み要求を発生させる。また、プロセッサ3a,3b,3cは、データ(読み出し対象データ)を混成メインメモリ2から読み出す場合には、読み出し要求を発生させる。   The processors 3a, 3b, and 3c generate a write request when writing data (data to be written) to the hybrid main memory 2. The processors 3a, 3b, and 3c generate a read request when reading data (read target data) from the hybrid main memory 2.

プロセッサ3a,3b,3cは、各々に仮想アドレスをMPU又はGPUの物理アドレス(混成メインメモリ2に対する論理アドレス)に変換するページテーブル(図示せず)を備える。プロセッサ3a,3b,3cは、1次キャッシュメモリ4a,4b,4c、2次キャッシュメモリ5a,5b,5c、又は混成メインメモリ2にデータを書き込む場合には、ページテーブルにより仮想アドレスを論理アドレスに変換し、論理アドレスにより書き込み対象データを指定する。同様に、プロセッサ3a,3b,3cは、1次キャッシュメモリ4a,4b,4c、2次キャッシュメモリ5a,5b,5c、又は混成メインメモリ2からデータを読み出す場合には、ページテーブルにより仮想アドレスを論理アドレスに変換し、論理アドレスにより読み出し対象データを指定する。   Each of the processors 3a, 3b, and 3c includes a page table (not shown) that converts a virtual address into a physical address of MPU or GPU (logical address for the hybrid main memory 2). When writing data to the primary cache memories 4a, 4b, 4c, the secondary cache memories 5a, 5b, 5c, or the hybrid main memory 2, the processors 3a, 3b, 3c use the page table as a virtual address. Convert and specify the data to be written by logical address. Similarly, when reading data from the primary cache memories 4a, 4b, 4c, the secondary cache memories 5a, 5b, 5c, or the hybrid main memory 2, the processors 3a, 3b, 3c use the page table to set virtual addresses. The data is converted into a logical address, and the data to be read is designated by the logical address.

なお、以下において、1次キャッシュメモリ4a,4b,4c、2次キャッシュメモリ5a,5b,5c、又は混成メインメモリ2に対する書き込み、読み出しを総称して「アクセス」と表現する。   Hereinafter, writing to and reading from the primary cache memories 4a, 4b, 4c, the secondary cache memories 5a, 5b, 5c, or the hybrid main memory 2 are collectively referred to as “access”.

メモリ管理装置1は、プロセッサ3a,3b,3cの混成メインメモリ2に対するアクセス(書き込み、読み出し)を管理する。メモリ管理装置1は、処理部15と、作業メモリ16と、情報記憶部17とを備える。メモリ管理装置1は、後述するメモリ使用情報11と、メモリ固有情報12と、アドレス変換情報13と、カラーリングテーブル14とを情報記憶部17に格納する。メモリ管理装置1の情報記憶部17に格納されるカラーリングテーブル14は、不揮発性半導体メモリ9,10に格納されているカラーリングテーブル14の一部であってもよい。例えば、不揮発性半導体メモリ9,10に格納されているカラーリングテーブル14のうち、頻繁に用いられるカラーリングテーブル14のデータを、メモリ管理装置1の情報記憶部17に格納するとしてもよい。メモリ管理装置1は、カラーリングテーブル14等を参照し、プロセッサ3a,3b,3cの混成メインメモリ2に対するアクセスを管理する。詳細については後述する。   The memory management device 1 manages access (write, read) to the hybrid main memory 2 of the processors 3a, 3b, 3c. The memory management device 1 includes a processing unit 15, a work memory 16, and an information storage unit 17. The memory management device 1 stores memory usage information 11, memory specific information 12, address conversion information 13, and a coloring table 14 described later in the information storage unit 17. The coloring table 14 stored in the information storage unit 17 of the memory management device 1 may be a part of the coloring table 14 stored in the nonvolatile semiconductor memories 9 and 10. For example, data of the frequently used coloring table 14 among the coloring tables 14 stored in the nonvolatile semiconductor memories 9 and 10 may be stored in the information storage unit 17 of the memory management device 1. The memory management device 1 refers to the coloring table 14 and manages access to the hybrid main memory 2 by the processors 3a, 3b, and 3c. Details will be described later.

混成メインメモリ2は、第1のメモリ、第2のメモリ、及び第3のメモリを備えている。第1のメモリは、第2のメモリよりもアクセス可能上限回数が多い。第2のメモリは、第3のメモリよりもアクセス可能上限回数が多い。ここでアクセス可能上限回数とは、統計的に予想される期待値であって、常にこの関係が保証されることを意味してはいないことに注意されたい。   The hybrid main memory 2 includes a first memory, a second memory, and a third memory. The first memory has a higher accessible upper limit than the second memory. The second memory has a higher accessible upper limit than the third memory. Here, it should be noted that the upper limit number of accessible times is an expected value that is statistically expected, and does not always mean that this relationship is guaranteed.

本実施形態では、第1のメモリは揮発性半導体メモリ8であるとする。揮発性半導体メモリ8としては、例えば、DRAM(Dynamic Random Access Memory)、FPM−DRAM、EDO−DRAM、SDRAMなどのような、一般的なコンピュータにおいてメインメモリとして利用されるメモリが用いられる。また、DRAM程度の高速ランダムアクセスが可能であり、アクセス可能上限回数に実質的な制限が無いのであれば、MRAM(Magnetoresistive Random Access Memory)、FeRAM(Ferroelectric Random Access Memory)などの不揮発性ランダムアクセスメモリを採用してもよい。   In the present embodiment, it is assumed that the first memory is a volatile semiconductor memory 8. As the volatile semiconductor memory 8, for example, a memory used as a main memory in a general computer, such as a DRAM (Dynamic Random Access Memory), FPM-DRAM, EDO-DRAM, or SDRAM is used. In addition, if random access is possible at high speeds such as DRAM, and there is no practical limit to the upper limit of accessible times, non-volatile random access memories such as MRAM (Magnetoresistive Random Access Memory) and FeRAM (Ferroelectric Random Access Memory) May be adopted.

第2のメモリは不揮発性半導体メモリ9であるとする。不揮発性半導体メモリ9としては、例えば、SLC(Single Level Cell)タイプのNAND型フラッシュメモリが用いられる。SLCは、MLC(Multi Level Cell)と比較して、読み出し及び書き込みが高速であり、信頼性が高い。しかしながら、SLCは、MLCと比較して、ビットコストが高く、大容量化には向いていない。   Assume that the second memory is a nonvolatile semiconductor memory 9. As the nonvolatile semiconductor memory 9, for example, an SLC (Single Level Cell) type NAND flash memory is used. SLC is faster in reading and writing and more reliable than MLC (Multi Level Cell). However, SLC has a higher bit cost than MLC and is not suitable for increasing the capacity.

第3のメモリは不揮発性半導体メモリ10であるとする。不揮発性半導体メモリ10としては、例えば、MLCタイプのNAND型フラッシュメモリが用いられる。MLCは、SLCと比較して、読み出し及び書き込みが低速であり、信頼性が低い。しかしながら、MLCは、SLCと比較して、ビットコストが低く、大容量化に向いている。   Assume that the third memory is a nonvolatile semiconductor memory 10. As the nonvolatile semiconductor memory 10, for example, an MLC type NAND flash memory is used. MLC is slower in reading and writing and less reliable than SLC. However, the MLC has a lower bit cost than the SLC and is suitable for increasing the capacity.

なお、本実施形態では、不揮発性半導体メモリ9がSLCタイプのNAND型フラッシュメモリであり、不揮発性半導体メモリ10がMLCタイプのNAND型フラッシュメモリであるが、例えば、不揮発性半導体メモリ9が2bit/CellのMLCタイプのNAND型フラッシュメモリであり、不揮発性半導体メモリ10が3bit/CellのMLCタイプのNAND型フラッシュメモリであってもよい。   In the present embodiment, the nonvolatile semiconductor memory 9 is an SLC type NAND flash memory and the nonvolatile semiconductor memory 10 is an MLC type NAND flash memory. For example, the nonvolatile semiconductor memory 9 is 2 bits / bit. It may be a Cell MLC type NAND flash memory, and the nonvolatile semiconductor memory 10 may be a 3 bit / Cell MLC type NAND flash memory.

信頼性とは、記憶装置からデータを読み出す場合におけるデータの欠損の起こりにくさの程度(耐久性)を意味する。SLCの耐久性は、MLCの耐久性よりも高い。ここで、耐久性が高いとは、アクセス可能上限回数が多く、耐久性が低いとは、アクセス可能上限回数が少ないことを意味する。   Reliability means the degree of difficulty (durability) of data loss when reading data from a storage device. The durability of SLC is higher than that of MLC. Here, high durability means that the accessible upper limit number is large, and low durability means that the accessible upper limit number is small.

SLCは1つのメモリセルに1ビットの情報を記憶可能である。一方、MLCは1つのメモリセルに2ビット以上の情報を記憶可能である。すなわち、本実施形態に係る混成メインメモリ2は、第1に、揮発性メモリ8、第2に、不揮発性半導体メモリ9、第3に、不揮発性半導体メモリ10、の順で耐久性が高い。   The SLC can store 1-bit information in one memory cell. On the other hand, the MLC can store information of 2 bits or more in one memory cell. That is, the hybrid main memory 2 according to this embodiment has high durability in the order of the volatile memory 8, the second, the non-volatile semiconductor memory 9, and the third, the non-volatile semiconductor memory 10.

NAND型フラッシュメモリなどの不揮発性半導体メモリ9,10は、揮発性半導体メモリ8と比較して、安価で大容量化が可能である。不揮発性半導体メモリ9,10としては、NAND型フラッシュメモリに代えて、例えばNOR型フラッシュメモリなどのような他の種類のフラッシュメモリ、PRAM(Phase change memory)、ReRAM(Resistive Random access memory)を用いることもできる。   Compared with the volatile semiconductor memory 8, the nonvolatile semiconductor memories 9, 10 such as NAND flash memory can be inexpensive and have a large capacity. As the nonvolatile semiconductor memories 9 and 10, other types of flash memory such as NOR flash memory, PRAM (Phase change memory), and ReRAM (Resistive Random access memory) are used instead of the NAND flash memory. You can also.

なお、第3のメモリとしてMLCを採用し、第2のメモリとして、MLCの下位ページのみを使用してデータ書き込みを行う擬似SLCモードが利用可能なMLCを採用してもよい。この場合、第2のメモリと第3のメモリとを共通のチップのみで構成することが可能であり、製造コスト面で有利となる。   Note that MLC may be employed as the third memory, and MLC capable of using a pseudo SLC mode in which data writing is performed using only the lower page of the MLC may be employed as the second memory. In this case, the second memory and the third memory can be configured by only a common chip, which is advantageous in terms of manufacturing cost.

メインメモリとして不揮発性半導体メモリ9,10を利用する場合と、2次記憶装置として不揮発性半導体メモリ9,10を利用する場合とを比較すると、メインメモリとして不揮発性半導体メモリ9,10を使用した場合にはこの不揮発性半導体メモリ9,10へのアクセス頻度が高くなる。本実施形態においては、揮発性半導体メモリ8とSLCの不揮発性半導体メモリ9とMLCの不揮発性半導体メモリ10とを混成してメインメモリとする混成メインメモリ2を備えた情報処理装置を実現している。混成メインメモリ2は、異機種混在型の主記憶装置であり、メモリ管理装置1によってデータの配置が管理される。   When the case where the nonvolatile semiconductor memories 9 and 10 are used as the main memory and the case where the nonvolatile semiconductor memories 9 and 10 are used as the secondary storage device are compared, the nonvolatile semiconductor memories 9 and 10 are used as the main memory. In this case, the access frequency to the nonvolatile semiconductor memories 9 and 10 is increased. In the present embodiment, an information processing apparatus including a hybrid main memory 2 in which a volatile semiconductor memory 8, an SLC nonvolatile semiconductor memory 9, and an MLC nonvolatile semiconductor memory 10 are combined to form a main memory is realized. Yes. The hybrid main memory 2 is a heterogeneous mixed type main storage device, and the data management is managed by the memory management device 1.

不揮発性半導体メモリ9,10の所定の領域には、メモリ使用情報11、メモリ固有情報12、アドレス変換情報13、カラーリングテーブル14が記憶されている。   Memory usage information 11, memory specific information 12, address conversion information 13, and a coloring table 14 are stored in predetermined areas of the nonvolatile semiconductor memories 9 and 10.

メモリ使用情報11は、不揮発性半導体メモリ9,10の各ページ領域の書き込み発生回数及び読み出し発生回数と、各ブロック領域の消去回数と、使用中領域サイズを含む。   The memory usage information 11 includes the number of times of writing and reading of each page area of the nonvolatile semiconductor memories 9 and 10, the number of times of erasing of each block area, and the size of the area in use.

メモリ固有情報12は、揮発性半導体メモリ8のメモリサイズと、不揮発性半導体9、10のメモリサイズと、不揮発性半導体メモリ9,10のページサイズ及びブロックサイズと、各領域のアクセス可能上限回数(書き込み可能上限回数、読み出し可能上限回数、消去可能上限回数)と、を含む。ここで、ページサイズとは、不揮発性半導体メモリ9,10の書き込み、読み出しのデータサイズの単位である。ブロックサイズとは、不揮発性半導体メモリ9,10のデータ消去サイズの単位である。不揮発性半導体メモリ9,10において、ブロックサイズはページサイズよりも大きい。   The memory specific information 12 includes the memory size of the volatile semiconductor memory 8, the memory sizes of the nonvolatile semiconductors 9 and 10, the page size and block size of the nonvolatile semiconductor memories 9 and 10, and the upper limit number of times that each area can be accessed ( The upper limit number of times of writing, the upper limit number of times of reading, and the upper limit number of times of erasable). Here, the page size is a unit of data size for writing and reading in the nonvolatile semiconductor memories 9 and 10. The block size is a unit of data erase size of the nonvolatile semiconductor memories 9 and 10. In the nonvolatile semiconductor memories 9 and 10, the block size is larger than the page size.

アドレス変換情報13は、プロセッサ3a,3b,3cから与えられる論理アドレスを、論理アドレスに対応する物理アドレスに変換する情報である。アドレス変換情報13の詳細については後述する。   The address conversion information 13 is information for converting a logical address given from the processors 3a, 3b, and 3c into a physical address corresponding to the logical address. Details of the address translation information 13 will be described later.

カラーリングテーブル14は、データ毎のカラーリング情報が保持するテーブルである。カラーリング情報は、静的カラー情報と動的カラー情報を含む。詳細は後述する。   The coloring table 14 is a table that holds coloring information for each data. The coloring information includes static color information and dynamic color information. Details will be described later.

次に、図2を参照して、本実施形態に係るメモリ管理装置とオペレーティングシステムとについてさらに説明する。図2は、本実施形態に係るメモリ管理装置1及び情報処理装置100の構成の一例を示すブロック図である。図2では、図1のプロセッサ3a,3b,3cのうちプロセッサ3bを代表として説明するが、他のプロセッサ3a,3cについても同様である。   Next, the memory management device and the operating system according to the present embodiment will be further described with reference to FIG. FIG. 2 is a block diagram illustrating an example of the configuration of the memory management device 1 and the information processing device 100 according to the present embodiment. In FIG. 2, the processor 3b of the processors 3a, 3b, and 3c of FIG. 1 will be described as a representative, but the same applies to the other processors 3a and 3c.

オペレーティングシステム27は、プロセッサ3bにより実行される。オペレーティングシステム27は、プロセッサ3bで実行され、情報記憶部17に格納されているカラーリングテーブル14にアクセスする権限を有する。   The operating system 27 is executed by the processor 3b. The operating system 27 is executed by the processor 3 b and has the authority to access the coloring table 14 stored in the information storage unit 17.

メモリ管理装置1の処理部15は、アドレス管理部18、読み出し管理部19、書き込み管理部20、カラーリング情報管理部21、メモリ使用情報管理部22、再配置部23を備える。さらに、カラーリング情報管理部21は、アクセス頻度算出部24、動的カラー情報管理部25を備える。   The processing unit 15 of the memory management device 1 includes an address management unit 18, a read management unit 19, a write management unit 20, a coloring information management unit 21, a memory usage information management unit 22, and a relocation unit 23. Further, the coloring information management unit 21 includes an access frequency calculation unit 24 and a dynamic color information management unit 25.

処理部15は、情報記憶部17に記憶されている情報に基づいて、作業メモリ16を使用しつつ各種処理を実行する。   The processing unit 15 executes various processes using the work memory 16 based on the information stored in the information storage unit 17.

作業メモリ16は、例えばバッファとして利用され、各種のデータ変換などの作業領域として使用される。   The work memory 16 is used as a buffer, for example, and is used as a work area for various data conversions.

処理部15に備えられている上記機能ブロックは、ハードウェア及びソフトウェア(例えばオペレーティングシステム27、ファームウェア等)のいずれか一方、又は両者の組み合わせとして実現することができる。これらの機能ブロックが、ハードウェアとして実現されるか、又はソフトウェアとして実現されるかは、具体的な実施形態、又は情報処理装置100全体に課せられた設計制約に依存する。当業者は、具体的な実施形態毎に、様々な方法でこれらの機能を実現し得るが、そのような実現を決定することは本発明の範疇に含まれるものである。なお、以下の説明において用いられる機能ブロックについても同様である。   The functional block provided in the processing unit 15 can be realized as one of hardware and software (for example, the operating system 27, firmware, or the like), or a combination of both. Whether these functional blocks are realized as hardware or software depends on a specific embodiment or design constraints imposed on the entire information processing apparatus 100. Those skilled in the art can implement these functions in various ways for each specific embodiment, and determining such implementation is within the scope of the present invention. The same applies to functional blocks used in the following description.

アドレス管理部18は、論理アドレスに対して物理アドレスを割り当て、アドレス変換情報13に記憶する。これにより、処理部15は、アドレス変換情報13を参照することにより、論理アドレスに対応する物理アドレスを取得することができる。   The address management unit 18 assigns a physical address to the logical address and stores it in the address conversion information 13. As a result, the processing unit 15 can obtain the physical address corresponding to the logical address by referring to the address conversion information 13.

読み出し管理部19は、プロセッサ3a,3b,3cが読み出し要求を発生した場合に、混成メインメモリ2に対して読み出し対象データの読み出し処理を管理する。   When the processors 3a, 3b, and 3c generate read requests, the read management unit 19 manages the read processing of the read target data with respect to the hybrid main memory 2.

書き込み管理部20は、プロセッサ3a,3b,3cが書き込み要求を発生した場合に、混成メインメモリ2に対して書き込み対象データを書き込む処理を管理する。   The write management unit 20 manages the process of writing the write target data to the hybrid main memory 2 when the processors 3a, 3b, 3c generate a write request.

カラーリング情報管理部21は、カラーリングテーブル14を管理する。   The coloring information management unit 21 manages the coloring table 14.

メモリ使用情報管理部22は、混成メインメモリ2のメモリ使用情報11を管理する。   The memory usage information management unit 22 manages the memory usage information 11 of the hybrid main memory 2.

再配置部23は、プロセッサ3a,3b,3cの動作と非同期に、カラーリングテーブル14に含まれているカラーリング情報に基づき、任意の論理アドレスに対応する物理アドレスに配置されているデータの再配置を行う。再配置部23は、例えば、後述する動的カラー情報に基づき、不揮発性半導体メモリ10に含まれるデータのうち、読み出し頻度、書き込み頻度が高いデータを、定期的に、不揮発性半導体メモリ9に再配置する。また、再配置部23は、例えば、動的カラー情報に基づき、不揮発性半導体メモリ9に含まれるデータのうち、読み出し頻度、書き込み頻度が低いデータを、定期的に、不揮発性半導体メモリ10に再配置する。同様に、再配置部23は、揮発性半導体メモリ8、不揮発性半導体メモリ9,10の間でもデータの再配置を行うことが可能である。後述する書き込み管理部20による書き込み処理は、データの更新が発生するたびに、書き込み先メモリ領域の判断処理と書き込み先ブロック領域の判断処理を行うことで再配置を行う。これに対し、再配置部23はデータの再配置を定期的に行う。再配置部23がデータの再配置を行う場合、書き込み管理部20及び読み出し管理部19は再配置が終了するまで動作しない。再配置部23の動作開始のトリガは、開発者によって設定された周期や、ユーザインターフェースにて設定可能な周期としてもよい。また、情報処理装置100が休止状態になる時に再配置部23が動作してもよい。   The relocation unit 23 re-synchronizes data arranged at a physical address corresponding to an arbitrary logical address based on the coloring information included in the coloring table 14 asynchronously with the operation of the processors 3a, 3b, and 3c. Perform placement. For example, based on dynamic color information described later, the rearrangement unit 23 periodically re-sends data with high read frequency and high write frequency among the data included in the non-volatile semiconductor memory 10 to the non-volatile semiconductor memory 9. Deploy. Further, the rearrangement unit 23 periodically re-sends data with low read frequency and write frequency among the data included in the nonvolatile semiconductor memory 9 to the nonvolatile semiconductor memory 10 based on the dynamic color information. Deploy. Similarly, the rearrangement unit 23 can rearrange data between the volatile semiconductor memory 8 and the nonvolatile semiconductor memories 9 and 10. Write processing by the write management unit 20 to be described later performs rearrangement by performing a write destination memory area determination process and a write destination block area determination process each time data is updated. In contrast, the rearrangement unit 23 periodically rearranges data. When the rearrangement unit 23 rearranges data, the write management unit 20 and the read management unit 19 do not operate until the rearrangement is completed. The trigger for starting the operation of the rearrangement unit 23 may be a cycle set by the developer or a cycle settable by the user interface. In addition, the rearrangement unit 23 may operate when the information processing apparatus 100 enters a dormant state.

アクセス頻度算出部24は、カラーリングテーブル14に含まれているカラーリング情報に基づき、データのアクセス頻度情報(動的書き込み頻度DW_color、動的読み出し頻度DR_color)を算出する。   The access frequency calculation unit 24 calculates data access frequency information (dynamic write frequency DW_color, dynamic read frequency DR_color) based on the coloring information included in the coloring table 14.

動的カラー情報管理部25は、カラーリングテーブル14に含まれている動的カラー情報を管理する。   The dynamic color information management unit 25 manages the dynamic color information included in the coloring table 14.

次に、図3を参照して、本実施形態に係る混成メインメモリについて説明する。図3は、本実施形態に係る混成メインメモリ2のメモリマップの一例を示す図である。   Next, the hybrid main memory according to the present embodiment will be described with reference to FIG. FIG. 3 is a diagram showing an example of a memory map of the hybrid main memory 2 according to the present embodiment.

混成メインメモリ2は、揮発性半導体メモリ8(DRAM領域)と、不揮発性半導体メモリ9(SLC領域)と、不揮発性半導体メモリ10(2bit/Cell領域、3bit/Cell領域、4bit/Cell領域)とを備える。2bit/Cell領域、3bit/Cell領域、4bit/Cell領域はMLC領域を構成する。DRAM領域、SLC領域、2bit/Cell領域、3bit/Cell領域、4bit/Cell領域を総称して、メモリ領域と称する。   The hybrid main memory 2 includes a volatile semiconductor memory 8 (DRAM area), a nonvolatile semiconductor memory 9 (SLC area), and a nonvolatile semiconductor memory 10 (2 bit / Cell area, 3 bit / Cell area, 4 bit / Cell area), Is provided. The 2bit / Cell area, the 3bit / Cell area, and the 4bit / Cell area constitute an MLC area. The DRAM area, SLC area, 2bit / Cell area, 3bit / Cell area, and 4bit / Cell area are collectively referred to as a memory area.

揮発性半導体メモリ8は、例えば、128MByteのDRAM領域から構成される。   The volatile semiconductor memory 8 is composed of, for example, a 128 MByte DRAM area.

不揮発性半導体メモリ9は、例えば、2GByteのB領域と128MByteのB冗長ブロック領域と、2GByteのC領域と128MByteのC冗長ブロック領域から構成される。不揮発性半導体メモリ9の各メモリ領域は、SLCタイプのNAND型フラッシュメモリである。   The nonvolatile semiconductor memory 9 includes, for example, a 2 GByte B area, a 128 MByte B redundant block area, a 2 GByte C area, and a 128 MByte C redundant block area. Each memory area of the nonvolatile semiconductor memory 9 is an SLC type NAND flash memory.

不揮発性半導体メモリ10は、例えば、4GByteのA領域と128MByteのA冗長ブロック領域から構成される2bit/Cell領域と、4GByteのD領域と128MByteのD冗長ブロック領域から構成される3bit/Cellと、4GByteのE領域と128MByteのE冗長ブロック領域から構成される4bit/Cell領域とにより構成される。不揮発性半導体メモリ10の各メモリ領域は、MLCタイプのNAND型フラッシュメモリである。図3に示すように、メモリ領域には、物理アドレスが割り付けられる。   The non-volatile semiconductor memory 10 includes, for example, a 2 Gbit / Cell area composed of a 4 GByte A area and a 128 MByte A redundant block area, a 3 Gbit / Cell composed of a 4 GByte D area and a 128 MByte D redundant block area, It is composed of a 4 GByte E area and a 4 Mbit / Cell area composed of a 128 MByte E redundant block area. Each memory area of the nonvolatile semiconductor memory 10 is an MLC type NAND flash memory. As shown in FIG. 3, a physical address is assigned to the memory area.

混成メインメモリ2が上記構成である場合には、メモリ固有情報12は、1)混成メインメモリ2のメモリ空間内の揮発性半導体メモリ8(DRAM領域)のメモリサイズ、2)混成メインメモリ2のメモリ空間内の不揮発性半導体メモリ9,10のメモリサイズ、3)混成メインメモリ2のメモリ空間を構成するNAND型フラッシュメモリのブロックサイズ、ページサイズ、4)不揮発性半導体メモリ9内のSLC領域(2値領域)として割り付けられたメモリ空間情報(消去可能上限回数、読み出し可能上限回数、書き込み可能上限回数を含む)、5)2bit/Cell領域に割り付けられたメモリ空間情報(消去可能上限回数、読み出し可能上限回数、書き込み可能上限回数を含む)、6)3bit/Cell領域に割り付けられたメモリ空間情報(消去可能上限回数、読み出し可能上限回数、書き込み可能上限回数を含む)、7)4bit/Cell領域に割り付けられたメモリ空間情報(消去可能上限回数、読み出し可能上限回数を含む)を含む。   When the hybrid main memory 2 has the above configuration, the memory specific information 12 includes 1) the memory size of the volatile semiconductor memory 8 (DRAM area) in the memory space of the hybrid main memory 2, and 2) the hybrid main memory 2 The memory size of the nonvolatile semiconductor memories 9 and 10 in the memory space, 3) the block size and page size of the NAND flash memory constituting the memory space of the hybrid main memory 2, and 4) the SLC area in the nonvolatile semiconductor memory 9 ( Memory space information allocated as a binary area (including the maximum number of erasables, the maximum number of readable data, and the maximum number of writable data) 5) Memory space information allocated to the 2bit / Cell area (the maximum number of erasable data, reading) 6) Memory space information allocated to the 3bit / Cell area (can be deleted) Comprising upper limit number, readable upper limit number of times, including writable upper limit number), 7) the memory space information allocated to 4bit / Cell region (erasable upper limit number of times, including readable upper limit number of times).

次に、図4を参照して、本実施形態に係るアドレス変換情報(アドレス変換テーブル)13について説明する。図4は、本実施形態に係るアドレス変換情報13の一例を示す図である。   Next, the address conversion information (address conversion table) 13 according to the present embodiment will be described with reference to FIG. FIG. 4 is a diagram illustrating an example of the address translation information 13 according to the present embodiment.

アドレス変換情報13では、論理アドレス、揮発性半導体メモリ8の物理アドレス、不揮発性半導体メモリ9,10の物理アドレス、有効/無効フラグが、テーブル形式で管理される。   In the address conversion information 13, a logical address, a physical address of the volatile semiconductor memory 8, a physical address of the nonvolatile semiconductor memories 9 and 10, and a valid / invalid flag are managed in a table format.

アドレス変換情報13の各エントリには、論理アドレス、この論理アドレスに対応する揮発性半導体メモリ8の物理アドレスと不揮発性半導体メモリ9,10の物理アドレスとのうちの少なくとも一つ、有効/無効フラグが登録される。   Each entry of the address translation information 13 includes a logical address, at least one of a physical address of the volatile semiconductor memory 8 and a physical address of the nonvolatile semiconductor memories 9 and 10 corresponding to the logical address, a valid / invalid flag. Is registered.

有効/無効フラグは、各エントリが有効であるか否かを示す情報である。有効/無効フラグは、1のときに有効、0のときに無効を表す。エントリの有効/無効フラグの初期値は0である。有効/無効フラグが0のエントリは、論理アドレスのマッピングされていないエントリ、又は、論理アドレスがマッピングされたが消去されたエントリである。有効/無効フラグが1のエントリには、論理アドレスがマッピングされており、揮発性半導体メモリ8と不揮発性半導体メモリ9,10とのうちの少なくとも一方に、論理アドレスに対応する物理アドレスが存在する。   The valid / invalid flag is information indicating whether each entry is valid. The valid / invalid flag indicates valid when 1 and invalid when 0. The initial value of the valid / invalid flag of the entry is 0. An entry whose valid / invalid flag is 0 is an entry in which a logical address is not mapped, or an entry in which a logical address is mapped but deleted. A logical address is mapped to an entry whose valid / invalid flag is 1, and a physical address corresponding to the logical address exists in at least one of the volatile semiconductor memory 8 and the nonvolatile semiconductor memories 9 and 10. .

なお、図4に示すアドレス変換情報13の例では、アドレス変換情報13の1エントリで論理アドレス、揮発性半導体メモリ8の物理アドレス、不揮発性半導体メモリ9,10の物理アドレスを管理しているが、例えば、アドレス変換情報13では論理アドレスと不揮発性半導体メモリ8の物理アドレスを管理し、論理アドレスと揮発性半導体メモリ9,10の物理アドレスは、別のタグRAMで管理してもよい。この場合、論理アドレスから物理アドレスへ変換する際には、まず、タグRAMが参照され、タグRAMに当該論理アドレスに対応する物理アドレスがない場合に、アドレス変換情報13が参照される。   In the example of the address translation information 13 shown in FIG. 4, the logical address, the physical address of the volatile semiconductor memory 8, and the physical address of the nonvolatile semiconductor memories 9 and 10 are managed by one entry of the address translation information 13. For example, in the address conversion information 13, the logical address and the physical address of the nonvolatile semiconductor memory 8 may be managed, and the logical address and the physical address of the volatile semiconductor memories 9 and 10 may be managed by another tag RAM. In this case, when converting from a logical address to a physical address, the tag RAM is first referred to, and the address conversion information 13 is referred to when the tag RAM does not have a physical address corresponding to the logical address.

次に、図5を参照して、本実施形態に係るカラーリングテーブル14について説明する。図5は、本実施形態に係るカラーリングテーブル14の一例を示す図である。   Next, the coloring table 14 according to the present embodiment will be described with reference to FIG. FIG. 5 is a diagram illustrating an example of the coloring table 14 according to the present embodiment.

本実施形態では、データ毎にカラーリング情報が付与される。カラーリング情報が付与されるデータのデータサイズ単位は、例えば、読み出し、書き込みの最小の単位である。例えば、読み出し、書き込みの最小の単位は、NAND型フラッシュメモリのページサイズである。カラーリングテーブル14は、データ毎にカラーリング情報を対応付け、エントリ単位でカラーリング情報を格納する。カラーリングテーブル14の各エントリには、インデックスが付されている。インデックスとは、論理アドレスを基に生成される値である。メモリ管理装置1の読み出し管理部19、書き込み管理部20、カラーリング情報管理部21、再配置部23などは、データを指定する論理アドレスが与えられると、論理アドレスに対応するインデックスにより管理されているエントリを参照し、データのカラーリング情報を取得する。   In the present embodiment, coloring information is assigned to each data. The data size unit of the data to which the coloring information is added is, for example, the minimum unit for reading and writing. For example, the minimum unit for reading and writing is the page size of the NAND flash memory. The coloring table 14 associates coloring information for each data, and stores the coloring information for each entry. Each entry in the coloring table 14 is indexed. An index is a value generated based on a logical address. The read management unit 19, write management unit 20, coloring information management unit 21, relocation unit 23, etc. of the memory management device 1 are managed by an index corresponding to the logical address when given a logical address designating data. The data coloring information is obtained by referring to the existing entry.

カラーリング情報は、静的カラー情報と、動的カラー情報とを含む。静的カラー情報は、カラーリング情報が付与される当該データの特性に基づいて生成される情報であり、当該データの混成メインメモリ2上の配置(書き込み)領域を決定するヒントとなる情報である。動的カラー情報は、データの読み出しと書き込みの回数と頻度の少なくとも一方を含む情報である。   The coloring information includes static color information and dynamic color information. The static color information is information generated based on the characteristics of the data to which coloring information is added, and is information that serves as a hint for determining the arrangement (writing) area of the data on the mixed main memory 2. . The dynamic color information is information including at least one of the number and frequency of data reading and writing.

次に、図6を参照して、静的カラー情報について説明する。図6は、本実施形態に係る静的カラー情報の一例を説明するための図である。   Next, static color information will be described with reference to FIG. FIG. 6 is a diagram for explaining an example of static color information according to the present embodiment.

静的カラー情報は、当該データの「重要度」、「読み出し頻度、書き込み頻度」、「データ寿命」のうち少なくとも一つの情報を含む。図6において説明する、読み出し頻度は、後述する、静的読み出し頻度に対応し、書き込み頻度は、静的書き込み頻度に対応する。   The static color information includes at least one information of “importance”, “reading frequency, writing frequency”, and “data life” of the data. The read frequency described in FIG. 6 corresponds to a static read frequency, which will be described later, and the write frequency corresponds to the static write frequency.

「重要度」とは、データの種類等に基づいて、当該データの重要性を推測して設定される値である。   The “importance” is a value set by estimating the importance of the data based on the type of data.

「読み出し頻度、書き込み頻度」とは、データの種類等に基づいて、当該データが読み出し、又は書き込みされる頻度を推測して設定される値である。   The “reading frequency and writing frequency” are values set by estimating the frequency of reading or writing the data based on the type of data.

「データ寿命」とは、データの種類等に基づいて、当該データが消去されずにデータとして使用される期間(データの寿命)を推測して設定される値である。   The “data lifetime” is a value set by estimating the period (data lifetime) in which the data is used without being erased based on the type of data.

「重要度」、「読み出し頻度、書き込み頻度(読み書き頻度)」、「データ寿命」は、例えば、ファイルシステムに保持されるファイルの特性、又はプログラムに一次的に使用される領域の特性により推測される。   The “importance”, “read frequency, write frequency (read / write frequency)”, and “data lifetime” are estimated based on, for example, the characteristics of the file held in the file system or the characteristics of the area primarily used in the program. The

ファイルシステムに保持されるファイルの特性とは、カラーリング情報が付与される当該データが含まれるファイルデータのファイルに付加されたデータ属性により判断される特性である。ファイルに付加されたデータ属性には、ファイルのヘッダ情報、ファイル名、ファイルの位置、ファイル管理データ(inoddに保持される情報)等が含まれる。例えば、ファイルの位置としては、ファイルがファイルシステムのゴミ箱に位置している場合には、当該ファイルに含まれるデータの特性は、重要性が低い、読み出しの頻度、書き込みの頻度が低い、データの寿命が短い、と予測できる。この特性に基づき、当該データのカラーリング情報は、書き込み頻度は低、読み出し頻度は低、データの寿命は短、と推測される。   The characteristic of the file held in the file system is a characteristic determined by the data attribute added to the file of the file data including the data to which the coloring information is added. The data attributes added to the file include file header information, file name, file position, file management data (information held in inodd), and the like. For example, if the file is located in the trash of the file system, the characteristics of the data contained in the file are less important, the frequency of reading, the frequency of writing, It can be predicted that the lifetime is short. Based on this characteristic, it is presumed that the coloring information of the data has a low writing frequency, a low reading frequency, and a short data life.

プログラムに一時的に使用される領域の特性には、カラーリング情報が付与される当該データが扱われるプログラムのプログラム実行時のデータ種別に基づき判断される特性と、プログラムファイル生成時のデータ種別に基づき判断される特性とが含まれる。   The characteristics of the area temporarily used in the program include the characteristics determined based on the data type at the time of program execution of the program that handles the data to which coloring information is assigned, and the data type at the time of program file generation. And characteristics determined based on this.

プログラム実行時のデータ種別とは、例えば、プログラム実行時に、当該データがスタック領域、ヒープ領域、テキスト領域のいずれの領域にマッピングされたかに基づいて分類されるデータ種別である。例えば、スタック領域、ヒープ領域にマッピングされたデータの特性は、書き込みの頻度は高く、読み出しの頻度は高く、重要性は高く、データ寿命は短い、と予測される。この特性に基づき、当該データの静的カラーリング情報は、書き込み頻度は高、読み出し頻度は高、重要度は高、データ寿命は短、と推測される。例えば、テキスト領域にマッピングされたデータの特性は、リード・オンリーのデータであるので、書き込みの頻度は低く、読み出しの頻度は高く、重要性は高く、データの寿命は長いと予測される。この特性に基づき、当該データの静的カラーリング情報は、書き込み頻度は高、読み出し頻度は高、重要度は高、データ寿命は長、と推測される。   The data type at the time of program execution is, for example, a data type classified based on whether the data is mapped to a stack area, a heap area, or a text area at the time of program execution. For example, the characteristics of data mapped to the stack area and the heap area are predicted to be high in write frequency, high in read frequency, high in importance, and short in data life. Based on this characteristic, it is presumed that the static coloring information of the data has a high writing frequency, a high reading frequency, a high importance level, and a short data life. For example, since the data mapped to the text area is read-only data, the frequency of writing is low, the frequency of reading is high, the importance is high, and the life of the data is predicted to be long. Based on this characteristic, it is presumed that the static coloring information of the data has high writing frequency, high read frequency, high importance, and long data life.

プログラムファイル生成時のデータ種別予測とは、プログラム生成時に、当該プログラムで扱われるデータの重要度、読み書き頻度、データ寿命を推測することである。   Data type prediction when generating a program file means estimating the importance, read / write frequency, and data life of data handled by the program at the time of program generation.

また、静的カラー情報は、ユーザインターフェースにより、ユーザが直接設定してもよい。   The static color information may be set directly by the user through the user interface.

次に、図7を参照して、カラーリング情報に基づく、データの書き込み処理の一例を示す。図7は、データ配置の処理の一例を示すフローチャートである。   Next, an example of a data writing process based on the coloring information will be described with reference to FIG. FIG. 7 is a flowchart illustrating an example of data arrangement processing.

前述のように、本実施形態では、混成メインメモリ2は、揮発性半導体メモリ8、不揮発性半導体メモリ9,10を備える。データを混成メインメモリ2に配置する場合、カラーリング情報に基づいて、揮発性半導体メモリ8、不揮発性半導体メモリ9,10のいずれかのメモリ領域が配置先として決定される。   As described above, in the present embodiment, the hybrid main memory 2 includes the volatile semiconductor memory 8 and the nonvolatile semiconductor memories 9 and 10. When data is arranged in the hybrid main memory 2, one of the volatile semiconductor memory 8 and the non-volatile semiconductor memories 9 and 10 is determined as the arrangement destination based on the coloring information.

まず、データ(書き込み対象データ)の書き込み要求が発生した場合、書き込み管理部20は、書き込み対象データに付与されているカラーリング情報を参照する(ステップS1)。   First, when a write request for data (write target data) occurs, the write management unit 20 refers to the coloring information given to the write target data (step S1).

次に、書き込み管理部20は、カラーリング情報の「データ寿命」を参照し、書き込み対象データのデータ寿命の判断を行う(ステップS2)。   Next, the write management unit 20 refers to the “data life” of the coloring information and determines the data life of the write target data (step S2).

書き込み対象データのデータ寿命が短いと判断された場合(ステップS3)には、書き込み管理部20は、書き込み対象データが配置されるメモリ領域として揮発性半導体メモリ8を選択し(ステップS4)、書き込み対象データが配置されるメモリ領域を、揮発性半導体メモリ8に決定する(ステップS12)
書き込み対象データのデータ寿命が長いと判断された場合(ステップS3)には、書き込み管理部20は、書き込み対象データのカラーリング情報の「重要度」を参照し、書き込み対象データの重要度の判断を行う(ステップS5)。
When it is determined that the data life of the write target data is short (step S3), the write management unit 20 selects the volatile semiconductor memory 8 as a memory area in which the write target data is arranged (step S4) The memory area in which the target data is arranged is determined as the volatile semiconductor memory 8 (step S12).
When it is determined that the data life of the write target data is long (step S3), the write management unit 20 refers to the “importance” of the coloring information of the write target data to determine the importance of the write target data. (Step S5).

書き込み対象データの重要度が高いと判断された場合(ステップS6)には、書き込み管理部20は、書き込み対象データが配置されるメモリ領域として耐久性(信頼性)の高い不揮発性メインメモリ9を選択する(ステップS7)。さらに、書き込み管理部20は、書き込み対象データのカラーリング情報に基づき、書き込み対象データを揮発性半導体メモリ8にキャッシュするか否か(カラーリング情報によるキャッシュ方式)の判断を行い(ステップS8)、書き込み対象データが配置されるメモリ領域を、不揮発性半導体メモリ9に決定する(ステップS12)。   When it is determined that the importance of the write target data is high (step S6), the write management unit 20 uses the nonvolatile main memory 9 having high durability (reliability) as a memory area in which the write target data is arranged. Select (step S7). Further, the write management unit 20 determines whether or not the write target data is cached in the volatile semiconductor memory 8 based on the coloring information of the write target data (cache method based on the coloring information) (step S8). The memory area in which the write target data is arranged is determined as the nonvolatile semiconductor memory 9 (step S12).

書き込み対象データの重要度が低いと判断された場合(ステップS6)には、書き込み管理部20は、書き込み対象データが配置されるメモリ領域として耐久性の低い不揮発性半導体メモリ10を選択する(ステップS9)。さらに、書き込み管理部20は、書き込み対象データのカラーリング情報(動的カラー情報、静的カラー情報)により、書き込み対象データの読み出し頻度、書き込み頻度の判断を行う(ステップS10)。   When it is determined that the importance of the write target data is low (step S6), the write management unit 20 selects the nonvolatile semiconductor memory 10 having low durability as the memory area in which the write target data is arranged (step S6). S9). Further, the write management unit 20 determines the read frequency and write frequency of the write target data based on the coloring information (dynamic color information, static color information) of the write target data (step S10).

書き込み対象データの読み出し頻度、書き込み頻度が高いと判断された場合(ステップS11)には、書き込み管理部20は、書き込み対象データが配置されるメモリ領域として不揮発性半導体メモリ9を選択する(ステップS7)。さらに、書き込み管理部20は、書き込み対象データのカラーリング情報に基づき、書き込み対象データを揮発性半導体メモリ8にキャッシュするか否か(カラーリング情報によるキャッシュ方式)の判断を行い(ステップS8)、書き込み対象データが配置されるメモリ領域を不揮発性半導体メモリ9に決定する(ステップS12)。   When it is determined that the read frequency and the write frequency of the write target data are high (step S11), the write management unit 20 selects the nonvolatile semiconductor memory 9 as a memory area in which the write target data is arranged (step S7). ). Further, the write management unit 20 determines whether or not the write target data is cached in the volatile semiconductor memory 8 based on the coloring information of the write target data (cache method based on the coloring information) (step S8). The memory area in which the write target data is arranged is determined as the nonvolatile semiconductor memory 9 (step S12).

書き込み対象データの読み出し頻度、書き込み頻度が低いと判断された場合(ステップS11)には、書き込み管理部20は、書き込み対象データのカラーリング情報に基づき、書き込み対象データを不揮発性メインメモリ8にキャッシュするか否か(カラーリング情報によるキャッシュ方式)の判断を行い(ステップS8)、書き込み対象データが配置されるメモリ領域を不揮発性半導体メモリ10に決定する(ステップS12)。   When it is determined that the read frequency and the write frequency of the write target data are low (step S11), the write management unit 20 caches the write target data in the nonvolatile main memory 8 based on the coloring information of the write target data. Whether or not to perform (a cache method based on coloring information) is determined (step S8), and a memory area in which data to be written is arranged is determined as the nonvolatile semiconductor memory 10 (step S12).

次に、図8を参照して、本実施形態に係るカラーリングテーブル14の構成例について説明する。図8は、本実施形態に係るカラーリングテーブル14の構成の一例を示す図である。図8に示すカラーリングテーブル14では、図5、図6に示すカラーリング情報のうち、特に、読み出し頻度、書き込み頻度、データ寿命をカラーリング情報として用いる場合について説明する。   Next, a configuration example of the coloring table 14 according to the present embodiment will be described with reference to FIG. FIG. 8 is a diagram showing an example of the configuration of the coloring table 14 according to the present embodiment. In the coloring table 14 shown in FIG. 8, the case where the reading frequency, the writing frequency, and the data lifetime are used as the coloring information among the coloring information shown in FIGS. 5 and 6 will be described.

なお、カラーリング情報としては、「重要度」、「読み出し頻度、書き込み頻度」、「データ寿命」のいずれか1つを用いてもよいし、または任意の2つを組み合わせて用いてもよいし、または全てを組み合わせて用いてもよい。さらに、図6で示していない他のカラーリング情報を別途定義して用いることも可能である。   As coloring information, any one of “importance”, “reading frequency, writing frequency”, and “data lifetime” may be used, or any two may be used in combination. , Or all may be used in combination. Furthermore, other coloring information not shown in FIG. 6 can be separately defined and used.

カラーリングテーブル14は、データ毎にカラーリング情報を対応付け、エントリ単位で保持するテーブルである。カラーリングテーブル14によりカラーリング情報が対応付けられるデータのデータサイズは、例えば、読み出し、書き込まれる最小のデータサイズである。例えば、読み出し、書き込まれる最小のデータサイズは、NAND型フラッシュメモリのページサイズである。以下において、カラーリングテーブル14によりカラーリング情報が対応付けられるデータのデータサイズがページサイズであるとして説明するが、これに限定されるものではない。   The coloring table 14 is a table that associates coloring information for each data and holds them in units of entries. The data size of the data associated with the coloring information by the coloring table 14 is, for example, the minimum data size to be read and written. For example, the minimum data size to be read and written is the page size of the NAND flash memory. In the following description, it is assumed that the data size of the data associated with the coloring information by the coloring table 14 is the page size, but the present invention is not limited to this.

カラーリングテーブル14の各エントリには、インデックスが付されている。   Each entry in the coloring table 14 is indexed.

カラーリングテーブル14に保持されるカラーリング情報には、静的カラー情報と、動的カラー情報とが含まれる。   The coloring information held in the coloring table 14 includes static color information and dynamic color information.

インデックスとは、論理アドレスを基に生成される値である。メモリ管理装置1の読み出し管理部19、書き込み管理部20、カラーリング情報管理部21、再配置部23などは、データを指定する論理アドレスが与えられると、論理アドレスに対応するインデックスにより管理されているエントリを参照することで、データのカラーリング情報を取得する。   An index is a value generated based on a logical address. The read management unit 19, write management unit 20, coloring information management unit 21, relocation unit 23, etc. of the memory management device 1 are managed by an index corresponding to the logical address when given a logical address designating data. The data coloring information is acquired by referring to the entry.

静的カラー情報は、静的書き込み頻度を示す値SW_color、静的読み出し頻度を示すSR_color、データ寿命SL_color、データの生成された時刻ST_colorを含む。   The static color information includes a value SW_color indicating a static writing frequency, SR_color indicating a static reading frequency, a data life SL_color, and a data generation time ST_color.

ここで、静的書き込み頻度SW_colorとは、データの種類等に基づいて、当該データが書き込まれる頻度を推測して設定される値である。静的読み出し頻度SR_colorとは、データの種類等に基づいて、当該データが読み出される頻度を推測して設定される値である。例えば、静的書き込み頻度SW_colorは、書き込み頻度が高いと推測されるデータほど、高い値が設定される。例えば、静的読み出し頻度SR_colorは、読み出し頻度が高いと推測されるデータほど、高い値が設定される。   Here, the static writing frequency SW_color is a value set by estimating the frequency of writing the data based on the type of data. The static reading frequency SR_color is a value set by estimating the frequency of reading the data based on the type of data. For example, the static writing frequency SW_color is set to a higher value for data estimated to have a higher writing frequency. For example, the static reading frequency SR_color is set to a higher value for data estimated to have a higher reading frequency.

データ寿命SL_colorとは、データの種類等に基づいて、当該データが消去されずにデータとして使用される期間(データの寿命)を推測して設定される値である。   The data life SL_color is a value set by estimating a period (data life) in which the data is used as data without being erased based on the type of data.

静的カラー情報は、データを生成するプログラム(プロセス)により、静的に、予め決められた値である。また、情報処理装置100に実行されるオペレーティングシステム27が、データのファイル拡張子又はファイルヘッダ等に基づいて、静的カラー情報を予測してもよい。   The static color information is a value that is statically predetermined by a program (process) that generates data. Further, the operating system 27 executed by the information processing apparatus 100 may predict the static color information based on the file extension or file header of the data.

動的カラー情報は、データの書き込み回数DWC_color、データの読み出し回数DRC_colorを含む。ここで、データの書き込み回数DWC_colorとは、当該データが混成メインメモリ2に書き込まれた回数である。データの読み出し回数DRC_colorとは、当該データが混成メインメモリ2から読み出された回数である。動的カラー情報管理部25は、データの書き込み回数DWC_colorにより、データ毎に、当該データが混成メインメモリ2に書き込まれた回数を管理する。動的カラー情報管理部25は、データ読み出し回数DRC_colorにより、データ毎に、当該データが混成メインメモリ2から読み出された回数を管理する。前述のように、混成メインメモリ2は、メインメモリとして用いられる。このため、プロセッサ3a,3b,3cで処理されるデータは、混成メインメモリ2に書き込まれ、混成メインメモリ2から読み出される。動的カラー情報管理部25は、データが書き込まれる度に、当該データの書き込み回数DWC_colorをインクリメントする。また、動的カラー情報管理部25は、データが読み出される度に、当該データの読み出し回数DRC_colorをインクリメントする。   The dynamic color information includes a data write count DWC_color and a data read count DRC_color. Here, the data write count DWC_color is the number of times the data is written to the hybrid main memory 2. The data read count DRC_color is the number of times the data is read from the hybrid main memory 2. The dynamic color information management unit 25 manages, for each data, the number of times that the data has been written to the hybrid main memory 2 based on the number of times of data writing DWC_color. The dynamic color information management unit 25 manages, for each data, the number of times that the data has been read from the hybrid main memory 2 based on the data read number DRC_color. As described above, the hybrid main memory 2 is used as a main memory. Therefore, data processed by the processors 3 a, 3 b, and 3 c is written into the mixed main memory 2 and read from the mixed main memory 2. The dynamic color information management unit 25 increments the data write count DWC_color each time data is written. The dynamic color information management unit 25 increments the data read count DRC_color every time data is read.

後述するように、アクセス頻度算出部24は、データの書き込み回数DWC_colorから、動的書き込み頻度DW_colorを算出する。アクセス頻度算出部24は、データの読み出し回数DRC_colorから、動的読み出し頻度DR_colorを算出する。   As will be described later, the access frequency calculation unit 24 calculates the dynamic write frequency DW_color from the data write count DWC_color. The access frequency calculation unit 24 calculates the dynamic read frequency DR_color from the data read count DRC_color.

動的書き込み頻度DW_colorとは、当該データが混成メインメモリ2に書き込まれた頻度を示す値である。動的読み出し頻度DR_colorとは、当該データが混成メインメモリ2から読み出された頻度を示す値である。動的書き込み頻度DW_colorと動的読み出し頻度DR_colorの算出方法については、後述する。   The dynamic writing frequency DW_color is a value indicating the frequency at which the data is written to the hybrid main memory 2. The dynamic read frequency DR_color is a value indicating the frequency at which the data is read from the hybrid main memory 2. A method for calculating the dynamic writing frequency DW_color and the dynamic reading frequency DR_color will be described later.

後述するように、プロセッサ3a,3b,3cから混成メインメモリ2に対して書き込み要求、読み出し要求が発生すると、メモリ管理装置1は、カラーリング情報を参照することにより、書き込み領域、読み出し方式等を決定する。   As will be described later, when a write request or a read request is generated from the processors 3a, 3b, and 3c to the hybrid main memory 2, the memory management device 1 refers to the coloring information to determine the write area, the read method, and the like. decide.

次に、図9、図10を参照して、本実施形態に係る静的カラー情報について説明する。図9は、各種データに対する静的カラー情報(静的書き込み頻度SW_color、静的読み出し頻度SR_color、データ寿命SL_color)の設定の第1の例を示す図である。図10は、各種データに対する静的カラー情報(静的書き込み頻度SW_color、静的読み出し頻度SR_color、データ寿命SL_color)の設定の第2の例を示す図である。   Next, static color information according to the present embodiment will be described with reference to FIGS. 9 and 10. FIG. 9 is a diagram showing a first example of setting static color information (static writing frequency SW_color, static reading frequency SR_color, data life SL_color) for various data. FIG. 10 is a diagram illustrating a second example of setting static color information (static writing frequency SW_color, static reading frequency SR_color, data lifetime SL_color) for various data.

カーネルのテキスト領域は、通常、読み出しの頻度は高く、書き込みの頻度は低い。オペレーティングシステム27は自身が動作するテキスト領域の静的読み出し頻度SR_colorを5、静的書き込み頻度SW_colorを1と設定する。また、オペレーティングシステム27は、カーネルのテキスト領域のデータ寿命SL_colorは長い(LONG)と予測する。   The text area of the kernel is usually read frequently and written frequently. The operating system 27 sets 5 for the static reading frequency SR_color and 1 for the static writing frequency SW_color of the text area in which it operates. Further, the operating system 27 predicts that the data life SL_color of the kernel text area is long (LONG).

一方、カーネルのデータ領域は、通常、読み出しの頻度、書き込みの頻度がともに高い。よって、オペレーティングシステム27は、カーネルのデータ領域について、静的読み出し頻度SR_colorを5、静的書き込み頻度SW_colorを5に設定する。   On the other hand, in the kernel data area, both reading frequency and writing frequency are usually high. Therefore, the operating system 27 sets the static read frequency SR_color to 5 and the static write frequency SW_color to 5 for the kernel data area.

カーネルに動的に確保されるデータ領域は、データが不要になると削除されるためデータ寿命SL_colorは短い(SHORT)とする。   Since the data area dynamically secured in the kernel is deleted when data is no longer needed, the data life SL_color is short (SHORT).

ユーザプログラムのテキスト領域は、通常、すべてのプロセスからリエントラントに呼び出されるカーネルと比べて、読み出しの頻度は低い。ただし、プロセスがアクティブになっている状態ではカーネル同様読み出しの頻度が高くなる。このため、ユーザプログラムのテキスト領域においては、静的書き込み頻度SW_colorが1、静的読み出し頻度SR_colorが4に設定される。ユーザプログラムのテキスト領域について、データ寿命SL_colorは、そのプログラムがアンインストールされるまでの期間であるため、一般的には長くなる。よって、ユーザプログラムのテキスト領域について、データ寿命SL_colorは長い(LONG)と設定される。   The text area of the user program is usually read less frequently than the kernel that is reentrantly called from all processes. However, when the process is active, the frequency of reading is high as in the kernel. For this reason, the static writing frequency SW_color is set to 1 and the static reading frequency SR_color is set to 4 in the text area of the user program. For the text area of the user program, the data life SL_color is generally a period until the program is uninstalled, and thus generally increases. Therefore, the data life SL_color is set to be long (LONG) for the text area of the user program.

プログラムに動的に確保される領域は、大きく分けて2種類ある。まず1つはプログラムの実行終了とともに廃棄されるデータ(スタック領域を含む)である。これらのデータはデータ寿命SL_colorが短く、読み出しの頻度と書き込みの頻度は高い。したがって、プログラムの実行終了とともに廃棄されるデータについて、静的読み出し頻度SR_colorが4に設定され、静的書き込み頻度SW_colorが4に設定される。もう1つのプログラムに動的に確保される領域は、プログラムが新たなファイルのために生成した領域である。プログラムによって生成されたデータはデータ寿命SL_colorが長く、読み出しと書き込みの頻度は生成されるファイルの種別に依存する。   There are roughly two types of areas that are dynamically secured in the program. One is data (including the stack area) that is discarded when the execution of the program ends. These data have a short data life SL_color, and are frequently read and written. Therefore, the static read frequency SR_color is set to 4 and the static write frequency SW_color is set to 4 for the data to be discarded upon completion of the program execution. The area dynamically reserved for another program is an area generated by the program for a new file. Data generated by the program has a long data life SL_color, and the frequency of reading and writing depends on the type of file to be generated.

プロセスによって参照されるファイルとして扱われるデータについて、ファイルのデータ寿命SL_colorは長いと設定される。   For data handled as a file referenced by a process, the data life SL_color of the file is set to be long.

例えばファイルの拡張子がSYS,dll,DRVなどで示されるようなシステムファイルが読み込まれる場合について説明する。このような拡張子を持つデータは、オペレーティングシステム27が様々な処理を実行する場合に読み出されるファイルである。このような拡張子を持つデータは、混成メインメモリ2上にオペレーティングシステム27がインストールされる場合に、1度書き込まれるとその後更新されることはほとんどない。これらの拡張子を持つファイルは、ファイルのなかでも比較的アクセスの頻度は高いが、プログラム(カーネル)のテキスト領域と比較してアクセスの頻度は低いと予測される。したがって、オペレーティングシステム27は、これらの拡張子を持つデータの静的書き込み頻度SW_colorを1に設定し、静的読み出し頻度SR_colorを3に設定する。この設定は、データから予測される書き込みの頻度は極めて低く、予測される読み出しの頻度は高いことを示している。すなわち、これらの拡張子を持つデータは、オペレーティングシステム27のアップデートや他のプログラムをインストールする場合に数度書き換わる程度であり、ほとんどリード・オンリーとして扱われると予測される。   For example, a case where a system file whose file extension is indicated by SYS, dll, DRV or the like is read will be described. Data having such an extension is a file that is read when the operating system 27 executes various processes. When the operating system 27 is installed on the hybrid main memory 2, the data having such an extension is hardly updated after being written once. A file having these extensions has a relatively high access frequency among files, but is expected to have a low access frequency compared to a text area of a program (kernel). Therefore, the operating system 27 sets the static writing frequency SW_color of data having these extensions to 1 and sets the static reading frequency SR_color to 3. This setting indicates that the frequency of writing predicted from data is extremely low and the frequency of reading predicted is high. In other words, data having these extensions can be rewritten several times when the operating system 27 is updated or another program is installed, and it is predicted that the data will be handled almost as read-only.

音声ファイルを編集するプログラムを使用するユーザは少ない。したがって、例えば、MP3などによって圧縮されている音楽データの書き込みの頻度は低いと考えられる。音楽データの読み出しの頻度は、書き込みの頻度よりは高いと考えられる。したがって、MP3などによって圧縮されている音楽データの静的書き込み頻度SW_colorは1、静的読み出し頻度SW_colorは2に設定される。   Few users use programs that edit audio files. Therefore, for example, it is considered that the frequency of writing music data compressed by MP3 or the like is low. It is considered that the frequency of reading music data is higher than the frequency of writing. Therefore, the static writing frequency SW_color of music data compressed by MP3 or the like is set to 1, and the static reading frequency SW_color is set to 2.

動画編集プログラムを使用するユーザは少ない。このため、例えば、MPEGなどによって圧縮されている動画データの書き込みの頻度は低いと考えられる。動画データの読み出しの頻度は、書き込みの頻度よりは高いと考えられる。したがって、MP3などによって圧縮されている動画データの静的書き込み頻度SW_colorは1、静的読み出し頻度SW_colorは2に設定される。   Few users use video editing programs. For this reason, for example, it is considered that the frequency of writing moving image data compressed by MPEG or the like is low. It is considered that the frequency of reading moving image data is higher than the frequency of writing. Therefore, the static writing frequency SW_color of moving image data compressed by MP3 or the like is set to 1 and the static reading frequency SW_color is set to 2.

テキストデータの編集プログラムを使用するユーザは多い。このため、例えば、テキストファイルの書き込みの頻度及び読み出しの頻度は、高いと考えられる。したがって、テキストファイルの静的書き込み頻度SW_colorは3、静的読み出し頻度SW_colorは3に設定される。   Many users use text data editing programs. For this reason, for example, the writing frequency and reading frequency of the text file are considered to be high. Accordingly, the static writing frequency SW_color of the text file is set to 3, and the static reading frequency SW_color is set to 3.

ウェブブラウザを使用するユーザは多い。このため、ブラウザキャッシュファイルの読み出しの頻度及び書き込みの頻度は、音楽データや動画データなどのメディアファイル以上であると考えられる。したがって、ブラウザキャッシュファイルの静的書き込み頻度SW_colorは1、静的読み出し頻度SW_colorは3に設定される。   Many users use web browsers. For this reason, it is considered that the browser cache file is read and written more frequently than media files such as music data and moving image data. Therefore, the static writing frequency SW_color of the browser cache file is set to 1, and the static reading frequency SW_color is set to 3.

例えば、ごみ箱などのようなアクセスの頻度の低いディレクトリに配置されているファイルの静的書き込み頻度SW_colorは1、静的読み出し頻度SW_colorは1に設定される。   For example, the static writing frequency SW_color of a file arranged in a directory with low access frequency such as a trash box is set to 1, and the static reading frequency SW_color is set to 1.

拡張子がJPEGで代表されるような写真データ、及び拡張子がMOVで代表されるようなムービーデータは、一度書き込まれると再度度書き込みが行なわれることは少ない。このような写真データ及びムービーデータはプログラムからアクセスされる頻度が少ないと予測される。したがって、オペレーティングシステム27は、写真データ及びムービーデータの静的書き込み頻度SW_color及び静的読み出し頻度SR_colorに対して小さい値を設定する。   Photo data whose extension is represented by JPEG and movie data whose extension is represented by MOV are rarely written again once written. Such photo data and movie data are expected to be accessed less frequently from the program. Accordingly, the operating system 27 sets small values for the static writing frequency SW_color and the static reading frequency SR_color of the photo data and movie data.

次に、図11を参照して、本実施形態に係るカラーリングテーブル14の生成処理について説明する。図11は、カラーリングテーブル14の生成処理の一例を示すフローチャートである。カラーリングテーブル14は、システムの初期起動時に生成される。カラーリングテーブル14は、不揮発性半導体メモリ9,10上の任意の領域に配置される。カラーリングテーブル14の配置されている番地は、メモリ管理装置1の実装により決定されるとしてもよい。   Next, the generation process of the coloring table 14 according to the present embodiment will be described with reference to FIG. FIG. 11 is a flowchart illustrating an example of the generation process of the coloring table 14. The coloring table 14 is generated at the initial startup of the system. The coloring table 14 is arranged in an arbitrary area on the nonvolatile semiconductor memories 9 and 10. The address where the coloring table 14 is arranged may be determined by the implementation of the memory management device 1.

ステップT1において、情報処理装置100は、電源が投入され、起動する。   In step T1, the information processing apparatus 100 is turned on and activated.

ステップT2において、カラーリング情報管理部21は、カラーリングテーブル14のベースアドレスを論理アドレスに変換し、各データについてのインデックスを生成する。   In step T2, the coloring information management unit 21 converts the base address of the coloring table 14 into a logical address, and generates an index for each data.

ステップT3において、カラーリング情報管理部21は、情報記憶部17に、カラーリングテーブル14のベースアドレスをセットする。情報記憶部17は、例えばレジスタで構成される。カラーリングテーブル14のベースアドレスは、例えばカラーリングテーブルレジスタにセットされる。   In step T <b> 3, the coloring information management unit 21 sets the base address of the coloring table 14 in the information storage unit 17. The information storage unit 17 is configured by a register, for example. The base address of the coloring table 14 is set in a coloring table register, for example.

次に、図12を参照して、本実施形態に係るカラーリングテーブル14のエントリの生成処理について説明する。図12は、カラーリングテーブル14のエントリの生成処理の一例を示すフローチャートである。   Next, an entry generation process of the coloring table 14 according to the present embodiment will be described with reference to FIG. FIG. 12 is a flowchart illustrating an example of an entry generation process of the coloring table 14.

プロセッサ3a,3b,3cはプロセス6a,6b,6cを実行するために用いる論理アドレス空間上の領域を確保する。論理アドレス空間上の領域を確保した段階では、確保した論理アドレスのアドレス変換情報13の有効/無効フラグには0が設定されている。論理アドレスに対する物理アドレスの割り当ては、確保された論理アドレス空間の範囲内の論理アドレスに対して、プロセス6a,6b,6cがアクセス(読み出し、書き込み)した段階で行われる。論理アドレスに対する物理アドレスの割り当てが行われると、当該論理アドレスに対応するデータに対する静的カラー情報をカラーリングテーブル14に登録するとともに、当該論理アドレスのアドレス変換情報13の有効/無効フラグには1が設定される。   The processors 3a, 3b, and 3c reserve areas in the logical address space used for executing the processes 6a, 6b, and 6c. At the stage of securing the area in the logical address space, 0 is set in the valid / invalid flag of the address translation information 13 of the secured logical address. The physical address is assigned to the logical address when the processes 6a, 6b, and 6c access (read and write) the logical address within the reserved logical address space. When the physical address is assigned to the logical address, the static color information for the data corresponding to the logical address is registered in the coloring table 14, and the valid / invalid flag of the address conversion information 13 of the logical address is set to 1. Is set.

まず、プロセッサ3a,3b,3cにより実行されるプロセス6a,6b,6cは、新たなデータを配置するための論理アドレス空間上の領域の確保要求を出す(ステップU1)。論理アドレス空間上の未使用領域は、オペレーティングシステム27が管理しており、論理アドレスはオペレーティングシステム27により決定される。(ステップU2)
次に、プロセス6a,6b,6cにより新たなデータが生成されると、オペレーティングシステム27は、新たに生成されたデータの種類等に基づいて、静的カラー情報を生成する(ステップU3)。静的カラー情報は、生成されたデータのページサイズ毎に生成される。例えば、生成されたデータのデータサイズがページサイズより大きい場合には、データをページサイズに分割し、分割後のページサイズ毎に静的カラー情報が生成される。以下において、書き込み対象データのデータサイズがページサイズである場合を想定し説明するが、これに限定されない。
First, the processes 6a, 6b, and 6c executed by the processors 3a, 3b, and 3c issue a request for securing an area in the logical address space for arranging new data (step U1). An unused area in the logical address space is managed by the operating system 27, and the logical address is determined by the operating system 27. (Step U2)
Next, when new data is generated by the processes 6a, 6b, and 6c, the operating system 27 generates static color information based on the type of the newly generated data and the like (step U3). Static color information is generated for each page size of the generated data. For example, if the data size of the generated data is larger than the page size, the data is divided into page sizes, and static color information is generated for each divided page size. In the following description, it is assumed that the data size of the write target data is the page size, but the present invention is not limited to this.

次に、オペレーティングシステム27が、情報記憶部17にセットされたベースアドレスに基づき、カラーリングテーブル14を参照する(ステップU4)。   Next, the operating system 27 refers to the coloring table 14 based on the base address set in the information storage unit 17 (step U4).

次に、オペレーティングシステム27が、生成された静的カラー情報を、確保された論理アドレスに対応するインデックスが付されたカラーリングテーブル14のエントリに登録する(ステップU5)。   Next, the operating system 27 registers the generated static color information in an entry of the coloring table 14 to which an index corresponding to the reserved logical address is attached (Step U5).

プロセッサ3a,3b,3cにより実行されるプロセス6a,6b,6cは、オペレーティングシステム27による論理アドレス空間の確保が成功した後、確保された論理アドレス空間に対し、読み出し要求、又は、書き込み要求を出す。このとき、アドレス管理部18は、書き込みが生じた論理アドレスに対する物理アドレスを決定するが、この処理は後に説明する。   The processes 6a, 6b, and 6c executed by the processors 3a, 3b, and 3c issue a read request or a write request to the secured logical address space after the logical address space is successfully secured by the operating system 27. . At this time, the address management unit 18 determines a physical address for the logical address where writing has occurred, and this processing will be described later.

以上の処理により、プロセッサ3a,3b,3cがプロセス6a,6b,6cを実行することにより、新たなデータが生成され、新たなデータが混成メインメモリ2に書き込まれる場合に、新たに生成されたデータに対してカラーリング情報が生成され、カラーリングテーブル14の新たなエントリに登録される。これにより、新たなデータを混成メインメモリ2に書き込むことが可能となる。   Through the above processing, when the processors 3a, 3b, and 3c execute the processes 6a, 6b, and 6c, new data is generated, and new data is generated when the new data is written to the hybrid main memory 2. Coloring information is generated for the data and registered in a new entry in the coloring table 14. As a result, new data can be written to the hybrid main memory 2.

次に、図13、図14を参照して、カラーリングテーブル14のエントリのアライメントについて説明する。図13は、カラーリングテーブル14のエントリのアライメントの第1の例を示す図である。図14は、カラーリングテーブル14のエントリのアライメントの第2の例を示す図である。   Next, the alignment of entries in the coloring table 14 will be described with reference to FIGS. FIG. 13 is a diagram illustrating a first example of the alignment of entries in the coloring table 14. FIG. 14 is a diagram illustrating a second example of the alignment of entries in the coloring table 14.

カラーリングテーブル14のエントリは、データの最少の読み書きサイズ(例えばNAND型フラッシュメモリのページサイズ)に対応しているが、プロセス6a,6b,6cは、論理アドレス空間にデータをマップする際、データの最少の読み書きサイズにアライメントしてマップすることを義務づけられていない。このため、カラーリングテーブル14の1エントリに対して複数のデータが対応する可能性がある。   The entry of the coloring table 14 corresponds to the minimum read / write size of data (for example, the page size of the NAND flash memory). However, when the processes 6a, 6b, and 6c map data to the logical address space, the data You are not obligated to map to the minimum read / write size. For this reason, a plurality of data may correspond to one entry of the coloring table 14.

このような場合、オペレーティングシステム27は、図13に示すように、1エントリに対応する複数のデータのうちで、最も読み出し頻度及び書き込み頻度が高いと予測されるデータを代表とする。   In such a case, as shown in FIG. 13, the operating system 27 represents data predicted to have the highest read frequency and write frequency among a plurality of data corresponding to one entry.

あるいは、オペレーティングシステム27は、図14に示すように、1エントリを占めるデータのサイズを重みとし、各データの静的書き込み頻度SW_color、静的読み出し頻度SR_colorの加重平均値を設定する。   Alternatively, as shown in FIG. 14, the operating system 27 sets the weighted average value of the static writing frequency SW_color and the static reading frequency SR_color of each data, with the size of the data occupying one entry as a weight.

カラーリングテーブル14によって示されている静的書き込み頻度SW_colorと静的読み出し頻度SR_colorとは、プログラム開発者によりオペレーティングシステム27などのソースコードに埋め込まれるか、オペレーティングシステム27によって予測される。しかしながら、プログラム開発者が意図した場合と別の用途でファイルや写真データが使われる場合もある。一般的に、写真データなどのようなデータのアクセスはほとんどが読み出しであり、写真データの内容が書き換えられることは少ない。しかしながら、写真データを加工するプログラムが特定の写真データを扱う場合、加工中の写真データが頻繁に書き換えられることがある。このような場合、カラーリングテーブル14の静的書き込み頻度SW_colorと静的読み出し頻度SR_colorをユーザが書き換え可能であれば、特定のファイルを、より高速で書き換え回数に余裕のある領域に移動することが可能になる。   The static writing frequency SW_color and the static reading frequency SR_color shown by the coloring table 14 are embedded in the source code such as the operating system 27 by the program developer or predicted by the operating system 27. However, files and photo data may be used for purposes other than those intended by the program developer. In general, most data access such as photo data is read, and the content of photo data is rarely rewritten. However, when a program for processing photo data handles specific photo data, the photo data being processed may be frequently rewritten. In such a case, if the user can rewrite the static writing frequency SW_color and the static reading frequency SR_color of the coloring table 14, the specific file can be moved to an area where the rewriting frequency can be increased at a higher speed. It becomes possible.

このような動作を実現させるため、各データのカラーリング情報は、オペレーティングシステム27のソフトウェア上で書き換えられるように、オペレーティングシステム27のファイルシステムを設計することが好ましい。たとえば一般的なブラウザでファイルのプロパティを開けば、カラーリングテーブル14に相当する属性がGUI画面上で見ることができるように情報処理装置100が設計されており、その初期データをユーザがGUI上で変更できるようオペレーティングシステム27を設計することが好ましい。   In order to realize such an operation, it is preferable to design the file system of the operating system 27 so that the coloring information of each data is rewritten on the software of the operating system 27. For example, the information processing apparatus 100 is designed so that the attributes corresponding to the coloring table 14 can be viewed on the GUI screen when the file properties are opened by a general browser, and the initial data is displayed on the GUI by the user. It is preferable to design the operating system 27 so that it can be changed.

次に、図15を参照して、動的カラー情報と静的カラー情報に基づいて動的書き込み頻度DW_colorと動的読み出し頻度DR_colorを算出する方法について説明する。図15は、動的カラー情報と静的カラー情報に基づいて動的書き込み頻度DW_colorと動的読み出し頻度DR_colorを算出する方法の一例を示す図である。図15において、横軸は時間であり、縦軸はアクセス回数(読み出し回数DWC_color、又は書き込み回数DRC_color)である。   Next, a method for calculating the dynamic writing frequency DW_color and the dynamic reading frequency DR_color based on the dynamic color information and the static color information will be described with reference to FIG. FIG. 15 is a diagram illustrating an example of a method for calculating the dynamic writing frequency DW_color and the dynamic reading frequency DR_color based on the dynamic color information and the static color information. In FIG. 15, the horizontal axis represents time, and the vertical axis represents the number of accesses (reading number DWC_color or writing number DRC_color).

新たなデータがデータ生成時刻において生成されると、新たに生成されたデータに対してカラーリング情報(データ生成時刻を含む)が生成され、カラーリングテーブル14の新たなエントリに登録された上で、データは混成メインメモリ12に書き込まれる。データ生成時刻以降、このデータに対するアクセス(読み出し、書き込み)が発生することにより、時間の経過とともに、アクセス回数(書き込み回数DWC_color、読み出し回数DRC_color)が増加する。このアクセス回数の増加は、動的カラー情報管理部25によって行われる。メモリ管理装置1のアクセス頻度算出部24は、アクセス回数から動的書き込み頻度DW_color、動的読み出し頻度DR_colorを算出する。   When new data is generated at the data generation time, coloring information (including the data generation time) is generated for the newly generated data and registered in a new entry in the coloring table 14. The data is written into the hybrid main memory 12. Since access (reading and writing) to this data occurs after the data generation time, the access count (the write count DWC_color and the read count DRC_color) increases with the passage of time. The increase in the number of accesses is performed by the dynamic color information management unit 25. The access frequency calculation unit 24 of the memory management device 1 calculates the dynamic write frequency DW_color and the dynamic read frequency DR_color from the access count.

現在時刻における、当該データの書き込み回数DWC_color、データの読み出し回数DRC_colorは、カラーリングテーブル14を参照することにより求めることができる。現在時刻における、当該動的書き込み頻度DW_colorは、データ生成時刻ST_colorから現在時刻までの書き込み回数DWC_colorの時間平均(平均変化率α)により求める。また、現在時刻における、当該動的読み出し頻度DR_colorは、データ生成時刻ST_colorから現在時刻までの読み出し回数DRC_colorの時間平均(平均変化率α)により求める。これにより、動的カラー情報(書き込み回数DWC_color、読み出し回数DRC_color)から、当該データの動的書き込み頻度DW_colorと、動的読み出し頻度DR_colorとが算出される。   The data write count DWC_color and data read count DRC_color at the current time can be obtained by referring to the coloring table 14. The dynamic writing frequency DW_color at the current time is obtained from the time average (average change rate α) of the number of writings DWC_color from the data generation time ST_color to the current time. Further, the dynamic read frequency DR_color at the current time is obtained from the time average (average change rate α) of the read count DRC_color from the data generation time ST_color to the current time. As a result, the dynamic writing frequency DW_color and the dynamic reading frequency DR_color of the data are calculated from the dynamic color information (the writing count DWC_color and the reading count DRC_color).

次に、算出された動的書き込み頻度DW_colorと、動的読み出し頻度DR_colorとに基づいて、当該データに対するアクセスの頻度の高低が判断される。アクセス頻度の高低の判断は、例えば、当該データが書き込まれている混成メインメモリ2のメモリ固有情報11、算出された動的書き込み頻度DW_color及び動的読み出し頻度DR_colorに基づいて行われる。   Next, based on the calculated dynamic writing frequency DW_color and the dynamic reading frequency DR_color, it is determined whether the frequency of access to the data is high or low. The determination of whether the access frequency is high or low is made based on, for example, the memory specific information 11 of the hybrid main memory 2 in which the data is written, the calculated dynamic write frequency DW_color, and the dynamic read frequency DR_color.

図15においては、まず、式Aの傾きとして「アクセス可能上限回数×重み1/データ寿命」を設定し、式Bの傾きとして「アクセス可能上限回数×重み2/データ寿命」を設定する。ここで、重み1>重み2である。重み1、重み2は、動的書き込み頻度DW_color、動的読み出し頻度DR_colorを算出する当該データを書き込む混成メインメモリ2に応じて、任意に設定することができる。   In FIG. 15, first, “accessible upper limit number × weight 1 / data life” is set as the slope of equation A, and “accessible upper limit number × weight 2 / data life” is set as the slope of equation B. Here, weight 1> weight 2. The weights 1 and 2 can be arbitrarily set according to the hybrid main memory 2 to which the data for calculating the dynamic writing frequency DW_color and the dynamic reading frequency DR_color is written.

平均変化率α<式Aの傾き、が成り立つ場合、このデータの動的アクセス頻度は、高いと判断される。   When the average rate of change α <the slope of Expression A holds, it is determined that the dynamic access frequency of this data is high.

式Bの傾き<平均変化率α≦式Aの傾き、が成り立つ場合、このデータの動的アクセス頻度は、中と判断される。   If the slope of formula B <average change rate α ≦ the slope of formula A holds, the dynamic access frequency of this data is determined to be medium.

平均変化率α≦式Bの傾き、が成り立つ場合、このデータの動的アクセス頻度は、低いと判断される。   If the average rate of change α ≦ the slope of formula B holds, it is determined that the dynamic access frequency of this data is low.

次に、図16を参照して、混成メインメモリ2からデータを読み出す処理について説明する。図16は、データの読み出し処理の一例を示すフローチャートである。   Next, a process of reading data from the hybrid main memory 2 will be described with reference to FIG. FIG. 16 is a flowchart illustrating an example of data read processing.

まず、プロセッサ3a,3b,3cにより実行されるプロセス6a,6b,6cが、データ(読み出し対象データ)の読み出し要求を発生させる(ステップW1)。   First, the processes 6a, 6b, and 6c executed by the processors 3a, 3b, and 3c generate a data (read target data) read request (step W1).

次に、プロセッサ3a,3b,3cに備えられているページテーブル(図示せず)により、読み出し対象データを指定する仮想アドレスが論理アドレスに変換される(ステップW2)。   Next, a virtual address designating read target data is converted into a logical address by a page table (not shown) provided in the processors 3a, 3b, 3c (step W2).

次に、読み出し管理部19は、アドレス変換情報13の読み出し対象データに対応する論理アドレスのエントリの有効/無効フラグを参照する(ステップW3)。   Next, the read management unit 19 refers to the valid / invalid flag of the entry of the logical address corresponding to the read target data of the address conversion information 13 (step W3).

アドレス変換情報13の有効/無効フラグが0のとき(ステップW3a)、論理アドレスに対する書き込みが一度も発生していないのでデータは不定である。この場合、読み出し管理部19は読み出し要求サイズ分の0データを読み出したようにふるまい(ステップW8)、ステップW10の処理に移る。     When the valid / invalid flag of the address conversion information 13 is 0 (step W3a), data is undefined because writing to the logical address has never occurred. In this case, the read management unit 19 behaves as if 0 data corresponding to the read request size has been read (step W8), and the process proceeds to step W10.

アドレス変換情報13の有効/無効フラグが1のとき(ステップW3a)、論理アドレスに対するデータの書き込みが少なくとも一度発生している。この場合、読み出し管理部19は、アドレス変換情報13を参照し、論理アドレスに対応するデータが揮発性半導体メモリ8に記憶されているか判断する(ステップW4)。   When the valid / invalid flag of the address translation information 13 is 1 (step W3a), data writing to the logical address has occurred at least once. In this case, the read management unit 19 refers to the address conversion information 13 and determines whether data corresponding to the logical address is stored in the volatile semiconductor memory 8 (step W4).

読み出し管理部19は、論理アドレスに対応するデータが揮発性半導体メモリ8に記憶されていると判断された場合(ステップW4a)、揮発性半導体メモリ8から読み出しを行うため、処理はステップW10に移る。   When it is determined that the data corresponding to the logical address is stored in the volatile semiconductor memory 8 (step W4a), the read management unit 19 reads from the volatile semiconductor memory 8, and thus the process proceeds to step W10. .

読み出し管理部19は、論理アドレスに対応するデータが揮発性半導体メモリ8に記憶されていないと判断された場合(ステップW4a)、カラーリングテーブル14を参照して、不揮発性半導体メモリ9,10からの読み出し対象データの読み出し方式を決定する(ステップW5)。読み出し方式の決定処理については後述する。   When it is determined that the data corresponding to the logical address is not stored in the volatile semiconductor memory 8 (Step W4a), the read management unit 19 refers to the coloring table 14 and reads from the nonvolatile semiconductor memories 9 and 10. The read method of the read target data is determined (step W5). The reading method determination process will be described later.

次に、読み出し管理部19は、読み出し対象データが記憶されている不揮発性半導体メモリ9,10のメモリ固有情報11と、メモリ使用情報12を参照し、読み出し対象データの移動(再書き込み)の要否を判断する(ステップW6)。   Next, the read management unit 19 refers to the memory specific information 11 and the memory usage information 12 of the nonvolatile semiconductor memories 9 and 10 in which the read target data is stored, and needs to move (rewrite) the read target data. Judgment is made (step W6).

読み出し管理部19は、読み出し対象データの移動が不要であると判断された場合(ステップW6a)には、ステップW9に移る。   If it is determined that the data to be read does not need to be moved (step W6a), the read management unit 19 proceeds to step W9.

読み出し管理部19は、読み出し対象データの移動が必要であると判断された場合(ステップW6a)には、読み出し対象データを不揮発性半導体メモリ9,10の別の領域への移動を行い(ステップW7)、その後、処理はステップW9に移る。   When it is determined that the read target data needs to be moved (step W6a), the read management unit 19 moves the read target data to another area of the nonvolatile semiconductor memories 9 and 10 (step W7). Thereafter, the process proceeds to step W9.

ステップW9において、メモリ使用情報管理部22は、不揮発性メモリ領域から読み出しを行った際に、メモリ使用情報11の読み出し回数をインクリメントする。ステップW10において、動的カラー情報管理部25は、データの読み出しを行った際に、カラーリングテーブル14のデータの読み出し回数DRC_colorをインクリメントする。ステップW11において、読み出し管理部19は、論理アドレスとアドレス変換情報13とから得られる物理アドレスに基づいてデータの読み出しを行う。   In step W9, the memory usage information management unit 22 increments the number of times the memory usage information 11 is read when reading from the nonvolatile memory area. In step W10, the dynamic color information management unit 25 increments the data read count DRC_color of the coloring table 14 when the data is read. In step W11, the read management unit 19 reads data based on the physical address obtained from the logical address and the address conversion information 13.

次に、図17を参照して、データの読み出し方式の決定処理について説明する。図17は、データの読み出し方式の決定処理の一例を示すフローチャートである。読み出し方式の決定処理は不揮発性半導体メモリ9、10のメモリ領域からデータを読み出す時に、揮発性半導体メモリ8のメモリ領域をキャッシュとして使用するか否かを判断する処理である。本処理は図16のステップW5に該当する。   Next, with reference to FIG. 17, the data read method determination process will be described. FIG. 17 is a flowchart illustrating an example of a data read method determination process. The reading method determination process is a process for determining whether or not to use the memory area of the volatile semiconductor memory 8 as a cache when data is read from the memory area of the nonvolatile semiconductor memories 9 and 10. This process corresponds to Step W5 in FIG.

前述のように、混成メインメモリ2は、揮発性半導体メモリ8と、不揮発性半導体メモリ9,10とを具備する。本実施形態では、揮発性半導体メモリ8の一部を、キャッシュメモリとして用いることも可能である。混成メインメモリ2の不揮発性半導体メモリ9,10からデータを読み出す場合には、読み出される頻度が高いデータは、揮発性半導体メモリ8にキャッシュされた上で、読み出される。一方、読み出される頻度が低いデータは、揮発性半導体メモリ8にキャッシュされずに、不揮発性半導体メモリ9,10から直接読み出される。   As described above, the hybrid main memory 2 includes the volatile semiconductor memory 8 and the nonvolatile semiconductor memories 9 and 10. In the present embodiment, a part of the volatile semiconductor memory 8 can be used as a cache memory. When data is read from the nonvolatile semiconductor memories 9 and 10 of the hybrid main memory 2, data that is read frequently is cached in the volatile semiconductor memory 8 and then read. On the other hand, data that is read infrequently is not directly cached in the volatile semiconductor memory 8 but directly read from the nonvolatile semiconductor memories 9 and 10.

まず、読み出し管理部19は、カラーリングテーブル14を参照することにより、読み出し対象データの静的読み出し頻度SR_colorを参照する(ステップV1)。静的読み出し頻度SR_colorが大きい(例えば、SR_color=5)場合には(ステップV1a)、読み出し対象データを揮発性半導体メモリ9,10から揮発性メインメモリ8(DRAM領域)にキャッシュするため、処理はステップV4に移る。   First, the read management unit 19 refers to the static reading frequency SR_color of the data to be read by referring to the coloring table 14 (step V1). When the static read frequency SR_color is large (for example, SR_color = 5) (step V1a), the read target data is cached from the volatile semiconductor memories 9 and 10 to the volatile main memory 8 (DRAM area). Move on to step V4.

読み出し管理部19は、読み出し対象データの静的読み出し頻度SR_colorが小さい(例えば、SR_color<=4)場合には(ステップV1a)、アドレス変換情報13を参照することにより、読み出し対象データが書き込まれている領域を確認し(ステップV2)、さらに、アクセス頻度算出部24は、読み出し対象データの動的読み出し頻度DR_colorを算出する(ステップV3)。   When the static read frequency SR_color of the read target data is small (for example, SR_color <= 4) (step V1a), the read management unit 19 refers to the address conversion information 13 to write the read target data. The access frequency calculation unit 24 calculates the dynamic read frequency DR_color of the read target data (step V3).

読み出し管理部19は、読み出し対象データの静的読み出し頻度SR_colorと動的読み出し頻度DR_colorとに対して「SR_color≧3又はDR_colorが高い」が成り立つ場合には(ステップV3a)、揮発性半導体メモリ8(DRAM領域)に読み出し対象データを書き込む空き領域があるか否か確認する(ステップV4)。読み出し管理部19は、揮発性半導体メモリ8に、空き領域がある場合には(ステップV4a)、読み出し対象データを揮発性半導体メモリ9,10から揮発性半導体メモリ8(DRAM領域)にキャッシュする(ステップV5)。読み出し管理部19は、揮発性メモリ8に、空き領域がない場合には(ステップV4a)、揮発性半導体メモリ8に記憶されているデータを不揮発性半導体メモリ9,10にライトバックし、揮発性半導体メモリ8に記憶されているデータを消去することにより、空き領域を確保する(ステップV6)。ライトバック処理の後、読み出し管理部19は、揮発性半導体メモリ8の空き領域を再度確認する(ステップV7)。揮発性半導体メモリ8に空き領域が存在する場合(ステップV7a)、処理はステップV5に移り、存在しない場合(ステップV7a)、処理はステップV8に移る。   When “SR_color ≧ 3 or DR_color is high” holds for the static read frequency SR_color and the dynamic read frequency DR_color of the read target data (step V3a), the read management unit 19 sets the volatile semiconductor memory 8 ( It is confirmed whether or not there is an empty area in which data to be read is written in (DRAM area) (step V4). When there is an empty area in the volatile semiconductor memory 8 (step V4a), the read management unit 19 caches the read target data from the volatile semiconductor memories 9 and 10 to the volatile semiconductor memory 8 (DRAM area) ( Step V5). When there is no free area in the volatile memory 8 (step V4a), the read management unit 19 writes back the data stored in the volatile semiconductor memory 8 to the nonvolatile semiconductor memories 9 and 10, and the volatile memory By erasing the data stored in the semiconductor memory 8, a free area is secured (step V6). After the write-back process, the read management unit 19 confirms again the free area of the volatile semiconductor memory 8 (Step V7). If there is an empty area in the volatile semiconductor memory 8 (step V7a), the process proceeds to step V5, and if not (step V7a), the process proceeds to step V8.

読み出し管理部19は、読み出し対象データの静的読み出し頻度SR_colorと動的読み出し頻度DR_colorとに対して「SR_color≧3又はDR_colorが高い」が成り立たない場合には(ステップV3a)、読み出し対象データを、揮発性半導体メモリ8にキャッシュせずに、不揮発性半導体メモリ9,10から直接読み出す(ステップV8)。   In the case where “SR_color ≧ 3 or DR_color is high” does not hold for the static read frequency SR_color and the dynamic read frequency DR_color of the read target data (Step V3a), the read management unit 19 sets the read target data to The data is read directly from the nonvolatile semiconductor memories 9 and 10 without being cached in the volatile semiconductor memory 8 (step V8).

以上のように、静的読み出し頻度SR_color、動的読み出し頻度DR_colorを参照することで、読み出し方式が決定される。   As described above, the reading method is determined by referring to the static reading frequency SR_color and the dynamic reading frequency DR_color.

この図17においては、データ寿命SL_colorの判断は行われていない。この理由について説明する。後述するように、書き込み時においては、データ寿命SL_colorの短いデータは揮発性半導体メモリ8に配置される。このため、有効/無効フラグが1であり、データ寿命SL_colorが短いことを示すデータは、揮発性半導体メモリ8に記憶されることになる。この結果、図17において、データ寿命SL_colorに基づく判断は不要となる。   In FIG. 17, the data lifetime SL_color is not determined. The reason for this will be described. As will be described later, data having a short data life SL_color is arranged in the volatile semiconductor memory 8 at the time of writing. Therefore, data indicating that the valid / invalid flag is 1 and the data life SL_color is short is stored in the volatile semiconductor memory 8. As a result, in FIG. 17, the determination based on the data life SL_color becomes unnecessary.

次に、データの図9、図10に示すデータについての読み出し方式について具体的に説明する。図9、図10に示すデータは、図17で説明したデータの読み出し方式の決定処理のフローチャートに従うことにより、以下のように読み出し方式が決定される。   Next, a method for reading out data shown in FIGS. 9 and 10 will be described in detail. The data shown in FIG. 9 and FIG. 10 is determined as follows by following the flowchart of the data read method determination process described in FIG.

まず、静的読み出し頻度SR_colorに5、静的書き込み頻度SW_colorに1が設定されているカーネルのテキスト領域は、読み出しの頻度が高く、書き込みの頻度は低いと推測される。このカーネルのテキスト領域における第1のデータは、オペレーティングシステム27が様々な処理をする際に読み出されるため、読み出し回数は多くなり、さらに高速に読み出される必要がある。   First, it is presumed that the kernel text area in which the static read frequency SR_color is set to 5 and the static write frequency SW_color is set to 1 has a high read frequency and a low write frequency. Since the first data in the text area of the kernel is read when the operating system 27 performs various processes, the number of times of reading is increased, and the first data needs to be read at a higher speed.

メモリ管理装置1は、不揮発性半導体メモリ9,10から読み出された第1のデータを、プロセッサ3bの2次キャッシュメモリ5b又は1次キャッシュメモリ4bに対して書き込むとともに、並行して、混成メインメモリ2内の揮発性半導体メモリ8のメモリ領域にも読み出された第1のデータを転送する。   The memory management device 1 writes the first data read from the non-volatile semiconductor memories 9 and 10 to the secondary cache memory 5b or the primary cache memory 4b of the processor 3b, and in parallel, The read first data is also transferred to the memory area of the volatile semiconductor memory 8 in the memory 2.

再度同じ第1のデータが読み出される場合には、プロセッサ3bの2次キャッシュメモリ5b又は1次キャッシュメモリ4b上から、又はキャッシュヒットしない場合は混成メインメモリ2の揮発性半導体メモリ8のメモリ領域から、第1のデータの読み出しが行なわれる。混成メインメモリ2上の揮発性半導体メモリ8のメモリ領域に記憶された第1のデータは、揮発性半導体メモリ8のメモリ領域が枯渇しない限り、電源がオフされるまで揮発性半導体メモリ8上に保持される。   When the same first data is read again, from the secondary cache memory 5b or the primary cache memory 4b of the processor 3b, or from the memory area of the volatile semiconductor memory 8 of the hybrid main memory 2 when no cache hit occurs. The first data is read out. The first data stored in the memory area of the volatile semiconductor memory 8 on the hybrid main memory 2 is stored on the volatile semiconductor memory 8 until the power is turned off unless the memory area of the volatile semiconductor memory 8 is depleted. Retained.

次に、静的読み出し頻度SR_colorに5、静的書き込み頻度SW_colorに5が設定指定されているカーネルのデータ領域は、システム(情報処理装置100)が起動するたびに新たに生成、初期化される領域である。このため、カーネルのデータ領域における第2のデータ寿命SL_colorは短いと推測される。メモリ管理装置1は、最初に第2のデータの寿命SL_colorを参照する。第2のデータは、揮発性半導体メモリ8のメモリ領域が枯渇しない限り、揮発性半導体メモリ8上に存在し、電源がオフされるとともに揮発性半導体メモリ8から消去される。   Next, the kernel data area in which the static read frequency SR_color is set to 5 and the static write frequency SW_color is set to 5 is newly generated and initialized every time the system (information processing apparatus 100) is started. It is an area. For this reason, it is presumed that the second data life SL_color in the kernel data area is short. The memory management device 1 first refers to the lifetime SL_color of the second data. Unless the memory area of the volatile semiconductor memory 8 is depleted, the second data exists on the volatile semiconductor memory 8 and is erased from the volatile semiconductor memory 8 when the power is turned off.

次に、静的読み出し頻度SR_colorに4、静的書き込み頻度SW_colorに1が設定されているユーザプログラムの領域は、すべてのプロセスからリエントラントに呼び出されるカーネルと比べて、読み出しの頻度は低い。ユーザプログラムの領域における第3のデータは揮発性半導体メモリ8のメモリ領域に配置されるが、混成メインメモリ2の揮発性半導体メモリ8のメモリ領域がFULLに埋まった場合、揮発性半導体メモリ8上から不揮発性半導体メモリ9,10のメモリ領域へのライトバック対象となる。ライトバックされる第3のデータの順番は、カラーリングテーブル14の情報に基づいて決定される。ライトバックされる場合には、読み出し回数が少ない順に、第3のデータが揮発性半導体メモリ8上から不揮発性半導体メモリ9,10上に移される。   Next, the user program area in which the static read frequency SR_color is set to 4 and the static write frequency SW_color is set to 1 has a lower read frequency than the kernel that is reentrantly called from all processes. The third data in the user program area is arranged in the memory area of the volatile semiconductor memory 8, but when the memory area of the volatile semiconductor memory 8 of the hybrid main memory 2 is filled with FULL, the third data is stored on the volatile semiconductor memory 8. To the memory area of the nonvolatile semiconductor memories 9 and 10. The order of the third data to be written back is determined based on the information in the coloring table 14. In the case of writing back, the third data is transferred from the volatile semiconductor memory 8 to the nonvolatile semiconductor memories 9 and 10 in ascending order of reading.

静的書き込み頻度SR_colorに4、静的読み出し頻度SW_colorに4が設定されている、プログラムによって動的に確保される領域における第4のデータのうち、データ寿命SL_colorが短いと指定された第4のデータは、カーネルのデータ領域と同様に、揮発性半導体メモリ8のメモリ領域が枯渇しない限り、揮発性半導体メモリ8上に存在し、電源がオフされるとともに揮発性半導体メモリ8から消去される。   Of the fourth data in the area dynamically reserved by the program, in which the static writing frequency SR_color is 4 and the static reading frequency SW_color is 4, the fourth data life SL_color is designated as short Similar to the kernel data area, data exists on the volatile semiconductor memory 8 and is erased from the volatile semiconductor memory 8 when the power is turned off unless the memory area of the volatile semiconductor memory 8 is depleted.

一方、データ寿命SL_colorが長いと設定されている第4のデータは、揮発性半導体メモリ8のメモリ領域に配置されるが、混成メインメモリ2の揮発性半導体メモリ8のメモリ領域がFULLに埋まった場合、揮発性半導体メモリ8上から不揮発性半導体メモリ9,10のメモリ領域へのライトバック対象となる。   On the other hand, the fourth data set with a long data life SL_color is arranged in the memory area of the volatile semiconductor memory 8, but the memory area of the volatile semiconductor memory 8 of the hybrid main memory 2 is filled with FULL. In this case, it becomes a write-back target from the volatile semiconductor memory 8 to the memory areas of the nonvolatile semiconductor memories 9 and 10.

次に、プロセスに参照されるファイルとして扱われるデータについて説明する。上記図10において、プロセスに参照されるファイルとして扱われるデータのデータ寿命SL_colorはすべて長いと設定されている。   Next, data handled as a file referenced by the process will be described. In FIG. 10, the data life SL_color of data handled as a file referred to by the process is set to be long.

静的書き込み頻度SW_colorに1、静的読み出し頻度SR_colorに3が設定されているファイル類に含まれる第5のデータは、書き込みの頻度が極めて低く、予測される読み出しの頻度が高いことがオペレーティングシステム27によって推測される。このとき、メモリ管理装置1は、第5のデータを揮発性半導体メモリ8のメモリ領域に配置するが、混成メインメモリ2の揮発性半導体メモリ8のメモリ領域がFULLに埋まった場合、揮発性半導体メモリ8上から不揮発性半導体メモリ9,10のメモリ領域へのライトバック対象となる。   The fifth data included in the files whose static write frequency SW_color is set to 1 and static read frequency SR_color is set to 3 has a very low write frequency and a high expected read frequency. 27. At this time, the memory management device 1 places the fifth data in the memory area of the volatile semiconductor memory 8, but if the memory area of the volatile semiconductor memory 8 of the hybrid main memory 2 is filled with FULL, the volatile semiconductor This is a write-back target from the memory 8 to the memory areas of the nonvolatile semiconductor memories 9 and 10.

静的書き込み頻度SW_colorに1、静的読み出し頻度SR_colorに2が設定されているファイル類に含まれる第6のデータは、静的書き込み頻度SW_colorが極めて低く、予測される静的読み出し頻度SR_colorも低いことがオペレーティングシステム27によって推測される。このように、メモリ管理装置1は、静的読み出し頻度SR_colorが高いと判断されていない場合、読み出し時に揮発性半導体メモリ8のキャッシュを介さず、不揮発性半導体メモリ9,10に直接アクセスする。   The sixth data included in the files with the static writing frequency SW_color set to 1 and the static reading frequency SR_color set to 2 has a very low static writing frequency SW_color and a low predicted static reading frequency SR_color. Is presumed by the operating system 27. As described above, when it is not determined that the static read frequency SR_color is high, the memory management device 1 directly accesses the nonvolatile semiconductor memories 9 and 10 without using the cache of the volatile semiconductor memory 8 at the time of reading.

静的書き込み頻度SW_colorに1、静的読み出し頻度SR_colorに1が設定されているファイル類に含まれる第7のデータは、静的書き込み頻度SW_colorが極めて低く、予測される静的読み出し頻度SR_colorも極めて低いことがオペレーティングシステム27によって推測される。このように、メモリ管理装置1は、静的読み出し頻度が高いと判断されていない場合、読み出し時に揮発性半導体メモリ8のキャッシュを介さず、不揮発性半導体メモリ9,10に直接アクセスする。   The seventh data included in the files with the static writing frequency SW_color set to 1 and the static reading frequency SR_color set to 1 has a very low static writing frequency SW_color and a very high predicted static reading frequency SR_color. Low is speculated by the operating system 27. As described above, when it is not determined that the static read frequency is high, the memory management device 1 directly accesses the nonvolatile semiconductor memories 9 and 10 without using the cache of the volatile semiconductor memory 8 at the time of reading.

以上のように、読み出し対象データの読み出し方式は、読み出し対象データのカラーリング情報に基づき決定される。これにより、読み出し対象データの特性(静的読み出し頻度SR_color、静的書き込み頻度SW_color、データ寿命SL_color)に合った読み出し方式を用いることが可能となり、データの読み出し効率の向上が図られる。   As described above, the reading method of the read target data is determined based on the coloring information of the read target data. As a result, it is possible to use a reading method that matches the characteristics of the data to be read (static reading frequency SR_color, static writing frequency SW_color, data life SL_color), and the data reading efficiency can be improved.

次に、図18を参照して、混成メインメモリ2へのデータの書き込み処理について説明する。図18は、データの書き込み処理の一例を示すフローチャートである。   Next, a data writing process to the hybrid main memory 2 will be described with reference to FIG. FIG. 18 is a flowchart illustrating an example of a data writing process.

まず、プロセッサ3a,3b,3cにより実行されるプロセス6a,6b,6cが、データ(書き込み対象データ)の書き込み要求を発生させる(ステップX1)。   First, the processes 6a, 6b, and 6c executed by the processors 3a, 3b, and 3c generate data (write target data) write requests (step X1).

次に、プロセッサ3a,3b,3cに備えられているページテーブル(図示せず)により、書き込み対象データを指定する仮想アドレスが論理アドレスに変換される(ステップX2)。   Next, a virtual address designating data to be written is converted into a logical address by a page table (not shown) provided in the processors 3a, 3b, 3c (step X2).

次に、書き込み管理部20は、カラーリングテーブル14を参照することにより、混成メインメモリ2のうちの書き込み対象のメモリ領域を決定する(ステップX3)。書き込み対象メモリ領域の選定については後述する。   Next, the write management unit 20 refers to the coloring table 14 to determine a memory area to be written in the hybrid main memory 2 (step X3). Selection of the write target memory area will be described later.

書き込み管理部20は、ステップX3により選択された書き込み対象メモリが揮発性半導体メモリ8か否か判断する(ステップX4)。判断の結果、選択された書き込み対象メモリが揮発性半導体メモリ8の場合(ステップX4a)、ステップX7の処理が実行され、書き込み対象メモリが不揮発性メモリの場合(ステップX4a)、ステップX5の処理が実行される。   The write management unit 20 determines whether or not the write target memory selected in step X3 is the volatile semiconductor memory 8 (step X4). As a result of the determination, when the selected write target memory is the volatile semiconductor memory 8 (step X4a), the process of step X7 is executed, and when the write target memory is a nonvolatile memory (step X4a), the process of step X5 is performed. Executed.

ステップX5において、書き込み管理部20は、メモリ使用情報11とカラーリングテーブル14を参照し、不揮発性半導体メモリ9,10のメモリ領域中の書き込み対象ブロック領域を決定する。ステップX6において、アドレス管理部18は、書き込み対象ブロック中のページの物理アドレスに基づきアドレス変換情報13を更新する。不揮発性半導体メモリ9,10がNAND型フラッシュメモリの場合、同一物理アドレスに対する上書きは行われないため、書き込みに伴う物理アドレスの更新が必要となる。   In step X <b> 5, the write management unit 20 refers to the memory usage information 11 and the coloring table 14 and determines a write target block area in the memory areas of the nonvolatile semiconductor memories 9 and 10. In step X6, the address management unit 18 updates the address conversion information 13 based on the physical address of the page in the write target block. When the nonvolatile semiconductor memories 9 and 10 are NAND flash memories, the same physical address is not overwritten, so that the physical address must be updated with writing.

書き込み管理部20は、書き込み先物理アドレスが決定した後、データの書き込み処理を行う(ステップX7)。続いて、アドレス管理部18は、アドレス変換情報13の有効/無効フラグを1にセットする(ステップX8)。動的カラー情報管理部25はカラーリングテーブル14の書き込み回数DWC_colorをインクリメントし(ステップX9)、メモリ使用情報管理部22は、メモリ使用情報11の書き込み回数をインクリメントする(ステップX10)。   After the write destination physical address is determined, the write management unit 20 performs a data write process (step X7). Subsequently, the address management unit 18 sets the valid / invalid flag of the address translation information 13 to 1 (step X8). The dynamic color information management unit 25 increments the write count DWC_color of the coloring table 14 (step X9), and the memory use information management unit 22 increments the write count of the memory use information 11 (step X10).

次に、図19を参照して、データの書き込み対象メモリ領域の決定処理について説明する。図19は、データの書き込み先領域の決定処理の一例を示すフローチャートである。   Next, with reference to FIG. 19, a process for determining a memory area into which data is to be written will be described. FIG. 19 is a flowchart illustrating an example of a data write destination area determination process.

ステップY1において、書き込み管理部20は、書き込み対象データのデータ寿命SL_colorを参照する。   In step Y1, the write management unit 20 refers to the data life SL_color of the write target data.

ステップY2において、書き込み管理部20は、データ寿命SL_colorが所定の値より長いか、短いか判断する。データ寿命SL_colorが所定の値以上の場合、処理は、ステップY9に移る。   In step Y2, the writing management unit 20 determines whether the data life SL_color is longer or shorter than a predetermined value. If the data life SL_color is greater than or equal to the predetermined value, the process proceeds to step Y9.

データ寿命が所定の値より短い場合、ステップY3において、書き込み管理部20は、DRAM領域の空き領域を確認し、ステップY4において、書き込み管理部20は、DRAM領域に空き領域があるか否か判断する。   If the data life is shorter than the predetermined value, in step Y3, the write management unit 20 checks the free area of the DRAM area, and in step Y4, the write management unit 20 determines whether there is a free area in the DRAM area. To do.

DRAM領域に空き領域がある場合、ステップY5において、書き込み管理部20は、書き込み対象データをDRAM領域に書き込む。   If there is an empty area in the DRAM area, in step Y5, the write management unit 20 writes the write target data in the DRAM area.

DRAM領域に空き領域がない場合、ステップY6において、書き込み管理部20は、DRAM領域から他の不揮発性半導体メモリへのライトバック処理を実行する。そして、ステップY7において、書き込み管理部20は、DRAM領域の空き領域を確認し、ステップY8において、書き込み管理部20は、DRAM領域に空き領域があるか否か判断する。   If there is no free space in the DRAM area, in step Y6, the write management unit 20 executes a write-back process from the DRAM area to another nonvolatile semiconductor memory. In step Y7, the write management unit 20 confirms a free area in the DRAM area. In step Y8, the write management unit 20 determines whether there is a free area in the DRAM area.

DRAM領域に空き領域がある場合、処理は、ステップY5に移り、書き込み管理部20は、書き込み対象データをDRAM領域に書き込む。   If there is an empty area in the DRAM area, the process proceeds to step Y5, and the write management unit 20 writes the write target data in the DRAM area.

DRAM領域に空き領域がない場合、処理はステップY9に移る。   If there is no empty area in the DRAM area, the process proceeds to step Y9.

ステップY9において、書き込み管理部20は、カラーリングテーブル14で管理されている書き込み対象データの静的書き込み頻度SW_colorを参照する。   In step Y9, the write management unit 20 refers to the static write frequency SW_color of the write target data managed in the coloring table 14.

ステップY10において、書き込み管理部20は、静的書き込み頻度SW_colorに5が設定されているか否か(書き込み対象データの静的書き込み頻度SW_colorが高いか否か)、判断する。   In step Y10, the writing management unit 20 determines whether 5 is set in the static writing frequency SW_color (whether the static writing frequency SW_color of the write target data is high).

静的書き込み頻度SW_colorに5が設定されている場合、処理はY13に移り、書き込み管理部20は、書き込み対象データの書き込み先としてB領域を選択する。   If 5 is set in the static writing frequency SW_color, the process proceeds to Y13, and the writing management unit 20 selects the B area as the writing destination of the writing target data.

静的書き込み頻度SW_colorに5ではない値(5未満の値)が設定されている場合、ステップY11において、メモリ管理装置1は、カラーリングテーブル14で管理されている書き込み対象データの静的読み出し頻度SR_colorを参照する。   When a value other than 5 (a value less than 5) is set in the static writing frequency SW_color, in step Y11, the memory management device 1 uses the static reading frequency of the write target data managed in the coloring table 14. Refers to SR_color.

ステップY12において、書き込み管理部20は、静的読み出し頻度SR_colorに1〜5のどの値が設定されているか判断する。   In step Y12, the writing management unit 20 determines which value of 1 to 5 is set in the static reading frequency SR_color.

このステップY12において静的読み出し頻度SR_colorに5が設定されている場合、ステップY13において、書き込み管理部20は、書き込み対象データの書き込み先として、B領域を選択する。   When 5 is set to the static read frequency SR_color in step Y12, in step Y13, the write management unit 20 selects area B as the write destination of the write target data.

ステップY12において静的読み出し頻度SR_colorに4が設定されている場合、ステップY14において、書き込み管理部20は、書き込み対象データの書き込み先として、A領域を選択する。   If the static read frequency SR_color is set to 4 in step Y12, in step Y14, the write management unit 20 selects the area A as the write destination of the write target data.

このステップY12において静的読み出し頻度SR_colorに3が設定されている場合、ステップY15において、書き込み管理部20は、データのカラーリング情報に基づいて、データの動的書き込み頻度DW_colorを算出する。次に、ステップY16において、書き込み管理部20は、カラーリングテーブル14で管理されている書き込み対象データの静的書き込み頻度SW_colorを参照する。   If the static read frequency SR_color is set to 3 in step Y12, the write management unit 20 calculates the dynamic data write frequency DW_color based on the data coloring information in step Y15. Next, in step Y16, the write management unit 20 refers to the static write frequency SW_color of the write target data managed in the coloring table 14.

ステップY17において、書き込み管理部20は、「静的書き込み頻度SW_colorが3以上であるか、又は、データの動的書き込み頻度DW_colorが高レベルである」ことが成り立つか否か判断する。   In step Y <b> 17, the writing management unit 20 determines whether or not “the static writing frequency SW_color is 3 or more or the data dynamic writing frequency DW_color is at a high level” is satisfied.

このステップY17において「SW_colorが3以上であるか、又は、データの動的書き込み頻度DW_colorが高レベルである」が成り立たない場合、処理はステップY14に移り、書き込み管理部20は、A領域を選択する。   If “SW_color is 3 or higher, or the data dynamic writing frequency DW_color is high” does not hold in step Y17, the process proceeds to step Y14, and the writing management unit 20 selects the A area. To do.

ステップY17において「SW_colorが3以上であるか、又は、データの動的書き込み頻度DW_colorが高レベルである」が成り立つ場合、処理はステップY18に移り、書き込み管理部20は、C領域を選択する。   If “SW_color is 3 or more or the data dynamic writing frequency DW_color is at a high level” holds in step Y17, the process proceeds to step Y18, and the writing management unit 20 selects the C area.

上記ステップY12において静的読み出し頻度SR_colorに2が設定されている場合、ステップY19において、書き込み管理部20は、データのカラーリング情報に基づいて、データの動的書き込み頻度DW_colorを算出する。   If the static read frequency SR_color is set to 2 in step Y12, in step Y19, the write management unit 20 calculates the dynamic data write frequency DW_color based on the data coloring information.

ステップY20において、書き込み管理部20は、カラーリングテーブル14で管理されている書き込み対象データの静的書き込み頻度SW_colorを参照する。   In step Y20, the write management unit 20 refers to the static write frequency SW_color of the write target data managed in the coloring table 14.

ステップY21において、書き込み管理部20は、「SW_colorが3以上であるか、又は、算出された動的書き込み頻度DW_colorが高レベルである」ことが成り立つか否か判断する。   In step Y21, the writing management unit 20 determines whether or not “SW_color is 3 or more or the calculated dynamic writing frequency DW_color is at a high level” is satisfied.

このステップY21において「SW_colorが3以上であるか、又は、算出された動的書き込み頻度DW_colorが高レベルである」が成り立つ場合、処理はステップY18に移り、書き込み管理部20は、C領域を選択する。   If “SW_color is 3 or more or the calculated dynamic writing frequency DW_color is at a high level” holds in this step Y21, the process moves to step Y18, and the writing management unit 20 selects the C area. To do.

ステップY21において「SW_colorが3以上であるか、又は、算出された動的書き込み頻度DW_colorが高レベルである」が成り立たない場合、処理はステップY22に移る。   If “SW_color is 3 or more or the calculated dynamic writing frequency DW_color is at a high level” does not hold in step Y21, the process proceeds to step Y22.

ステップY22において、書き込み管理部20は、「SW_colorが2以上であるか、又は、算出された動的書き込み頻度DW_colorが中レベルである」ことが成り立つか否か判断する。   In step Y22, the writing management unit 20 determines whether or not “SW_color is 2 or more or the calculated dynamic writing frequency DW_color is at a medium level” is satisfied.

このステップY22において「SW_colorが2以上であるか、又は、算出された動的書き込み頻度DW_colorが中レベルである」が成り立つ場合、処理はステップY23に移り、書き込み管理部20は、D領域を選択する。   If “SW_color is 2 or more or the calculated dynamic writing frequency DW_color is at a medium level” holds in step Y22, the process proceeds to step Y23, and the writing management unit 20 selects the D area. To do.

ステップY22において「SW_colorが2以上であるか、又は、算出された動的書き込み頻度DW_colorが中レベルである」が成り立たない場合、処理はステップY24に移り、書き込み管理部20は、E領域を選択する。   If “SW_color is 2 or more or the calculated dynamic writing frequency DW_color is at a medium level” does not hold in step Y22, the process moves to step Y24, and the writing management unit 20 selects the E area. To do.

上記ステップY12において静的読み出し頻度SR_colorに1が設定されている場合、ステップY25において、書き込み管理部20は、データのカラーリング情報に基づいて、データの動的書き込み頻度DW_colorを算出する。   When the static read frequency SR_color is set to 1 in step Y12, in step Y25, the write management unit 20 calculates the dynamic data write frequency DW_color based on the data coloring information.

ステップY26において、書き込み管理部20は、カラーリングテーブル14で管理されている書き込み対象データの静的読み出し頻度SW_colorを参照する。その後、処理はステップY21に移る。   In step Y <b> 26, the write management unit 20 refers to the static read frequency SW_color of the write target data managed in the coloring table 14. Thereafter, the process proceeds to step Y21.

例えば、オペレーティングシステム27の開発者は、読み出し管理部19のデータ読み出し方式と書き込み管理部20データ書き込み方式の実装に対して、上記図9及び図10に示すような設定を行う。   For example, the developer of the operating system 27 performs the settings shown in FIGS. 9 and 10 for the implementation of the data read method of the read management unit 19 and the data write method of the write management unit 20.

例えば、SR_colorに5、SW_colorに1が設定されているカーネルのテキスト領域における第1のデータは読み出される回数が多く、書き込まれる回数は少ないと推測される。第1のデータは、上記図17に示されている読み出し方式の決定動作に基づいて、システム稼働中に揮発性半導体メモリ8に移され読み書きされる。このため、第1のデータが実際に不揮発性半導体メモリ9,10に書き込まれる頻度は低い。しかし、第1のデータの重要性は高いため、この図19において、書き込み管理部20は、第1のデータを、SLCである不揮発性半導体メモリ9のB領域に書き込む。   For example, it is presumed that the first data in the text area of the kernel in which SR_color is set to 5 and SW_color is set to 1 is read many times and written. The first data is transferred to and read from the volatile semiconductor memory 8 during system operation based on the read mode determination operation shown in FIG. For this reason, the frequency with which the first data is actually written into the nonvolatile semiconductor memories 9 and 10 is low. However, since the importance of the first data is high, in FIG. 19, the write management unit 20 writes the first data in the B area of the nonvolatile semiconductor memory 9 that is the SLC.

次に、SR_colorに5、SW_colorに5が設定されているカーネルのデータ領域は、情報処理装置100が起動するたびに新たに生成、初期化される領域なので、カーネルのデータ領域における第2のデータのデータ寿命は短いと推測される。書き込み管理部20は、最初に第2のデータのデータ寿命SL_colorを参照する。第2のデータは、情報処理装置100の稼働中に必ず揮発性半導体メモリ8上に存在し、電源がオフされるとともに揮発性半導体メモリ8から消去される。したがって、第2のデータは、不揮発性半導体メモリ9,10のメモリ領域に書き込まれない。   Next, since the kernel data area in which SR_color is set to 5 and SW_color is set to 5 is newly created and initialized every time the information processing apparatus 100 is started, the second data in the kernel data area is stored. It is estimated that the data life of is short. The writing management unit 20 first refers to the data life SL_color of the second data. The second data always exists on the volatile semiconductor memory 8 during operation of the information processing apparatus 100, and is erased from the volatile semiconductor memory 8 when the power is turned off. Therefore, the second data is not written in the memory area of the nonvolatile semiconductor memories 9 and 10.

次に、SR_colorに4、SW_colorに1が設定されているユーザプログラムの領域は、すべてのプロセスからリエントラントに呼び出されるカーネルと比べて、読み出し頻度は低い。ユーザプログラムの領域における第3のデータは、上記図16に示した読み出し方式によって長期にわたりアクセスされない場合にのみ不揮発性半導体メモリ9,10のメモリ領域に書き込まれる。したがって、第3のデータが不揮発性半導体メモリ9,10に書き込まれる頻度は低い。第3のデータは、カーネルのテキスト領域におけるデータと比較して重要度は低いため、図19ではMLC領域であるA領域に書き込まれる。   Next, the user program area in which SR_color is set to 4 and SW_color is set to 1 has a lower read frequency than the kernel called reentrant from all processes. The third data in the user program area is written into the memory area of the nonvolatile semiconductor memories 9 and 10 only when it is not accessed for a long time by the reading method shown in FIG. Therefore, the frequency at which the third data is written into the nonvolatile semiconductor memories 9 and 10 is low. Since the third data is less important than the data in the text area of the kernel, the third data is written in the A area which is the MLC area in FIG.

SR_colorに4、SW_colorに4が設定されているプログラムに動的に確保される領域における第4のデータのうち、データ寿命SL_colorが短いと設定されている第4のデータは、カーネルのデータ領域と同様に、情報処理装置100稼働中に必ず揮発性半導体メモリ8上に存在する。書き込み管理部20は、最初にデータ寿命SL_colorを参照する。第4のデータは、システム稼働中に必ず揮発性半導体メモリ8上に存在し、電源がオフされるとともに揮発性半導体メモリ8から消去されるので不揮発性半導体メモリ9,10のメモリ領域に書き込まれない。   Of the fourth data in the area dynamically secured in the program in which SR_color is set to 4 and SW_color is set to 4, the fourth data set with a short data life SL_color is the kernel data area. Similarly, it always exists on the volatile semiconductor memory 8 during the operation of the information processing apparatus 100. The writing management unit 20 first refers to the data life SL_color. The fourth data always exists on the volatile semiconductor memory 8 during system operation, and is erased from the volatile semiconductor memory 8 when the power is turned off, so that the fourth data is written in the memory areas of the nonvolatile semiconductor memories 9 and 10. Absent.

一方、データ寿命SL_colorが長いと設定されている第4のデータは、揮発性半導体メモリ8のメモリ領域に配置されるが、混成メインメモリ2の揮発性半導体メモリ8のメモリ領域がFULLに埋まった場合、揮発性半導体メモリ8上から不揮発性半導体メモリ9,10のメモリ領域へのライトバック対象となる。プログラムのテキスト領域はデータの重要度が高いため、プログラムのテキスト領域におけるデータは、SLCであるC領域に書き込まれる。   On the other hand, the fourth data set with a long data life SL_color is arranged in the memory area of the volatile semiconductor memory 8, but the memory area of the volatile semiconductor memory 8 of the hybrid main memory 2 is filled with FULL. In this case, it becomes a write-back target from the volatile semiconductor memory 8 to the memory areas of the nonvolatile semiconductor memories 9 and 10. Since the text area of the program has a high importance of data, the data in the text area of the program is written in the C area which is the SLC.

次にプロセスによって参照されるファイルとして扱われるデータについて説明する。図10では、プロセスによって参照されるファイルのデータ寿命SL_colorはすべて長いと設定されている。   Next, data handled as a file referred to by the process will be described. In FIG. 10, the data life SL_color of the files referred to by the process is all set to be long.

SW_colorに1、SR_colorに3が設定されているシステムファイル類における第5のデータは、書き込み頻度が極めて低く、予測される読み出し頻度が高いことがオペレーティングシステム27によって推測される。このとき、書き込み管理部20は、第5のデータを揮発性半導体メモリ8のメモリ領域に配置するが、混成メインメモリ2の揮発性半導体メモリ8のメモリ領域がFULLに埋まった場合、第5のデータは揮発性半導体メモリ8上から不揮発性半導体メモリ9,10のメモリ領域へのライトバック対象となる。第5のデータの書き込み頻度は低いと判断されるので書き込み管理部20は第5のデータをMLC領域へ配置する。   It is estimated by the operating system 27 that the fifth data in the system files whose SW_color is set to 1 and SR_color is set to 3 has a very low writing frequency and a high predicted reading frequency. At this time, the write management unit 20 arranges the fifth data in the memory area of the volatile semiconductor memory 8, but if the memory area of the volatile semiconductor memory 8 of the hybrid main memory 2 is filled with FULL, Data is to be written back from the volatile semiconductor memory 8 to the memory areas of the nonvolatile semiconductor memories 9 and 10. Since it is determined that the writing frequency of the fifth data is low, the writing management unit 20 places the fifth data in the MLC area.

SW_colorに3、SR_colorに3が設定されているファイル類は、書き込み頻度が極めて高く、予測される読み出し頻度も高いことがオペレーティングシステム27によって推測される。したがって、書き込み管理部20は、SW_colorに3、SR_colorに3が設定されているファイル類におけるデータをSLC領域へ配置する。   It is estimated by the operating system 27 that files having SW_color set to 3 and SR_color set to 3 have extremely high writing frequency and high predicted reading frequency. Therefore, the write management unit 20 arranges data in files having 3 in SW_color and 3 in SR_color in the SLC area.

SW_colorに1、SR_colorに2が設定されているファイル類に含まれる第6のデータは、書き込み頻度が極めて低く、予測される読み出し頻度も低いことがオペレーティングシステム27によって推測される。第6のデータは、ファイルとしての重要度も低いと判断されるため、書き込み管理部20は、第6のデータをMLC領域へ配置する。   It is presumed by the operating system 27 that the sixth data included in the files whose SW_color is 1 and SR_color is 2 has a very low writing frequency and a low predicted reading frequency. Since it is determined that the sixth data has a low importance as a file, the write management unit 20 places the sixth data in the MLC area.

SW_colorに1、SR_colorに1が設定されているファイル類に含まれる第7のデータは、書き込み頻度が極めて低く、予測される読み出し頻度も極めて低いことがオペレーティングシステム27によって推測される。第7のデータについては、ファイルとしての重要度も低いと判断されるため、書き込み管理部20は、第7のデータをMLC領域へ配置する。   It is estimated by the operating system 27 that the seventh data included in the files whose SW_color is set to 1 and SR_color is set to 1 has a very low writing frequency and a very low predicted reading frequency. Since it is determined that the importance of the seventh data as a file is low, the write management unit 20 places the seventh data in the MLC area.

上記の処理により書き込み対象のメモリ領域が決定された場合、書き込み管理部20は、書き込み先の物理アドレスを決定する。この場合、書き込み管理部20は、カラーリングテーブル14を参照し、書き込み先の物理アドレスを適切に選択することでウェアレベリングの発生を抑え、不要な消去処理を低減する。   When the write target memory area is determined by the above processing, the write management unit 20 determines the physical address of the write destination. In this case, the write management unit 20 refers to the coloring table 14 and appropriately selects a write destination physical address to suppress wear leveling and reduce unnecessary erasure processing.

ここでウェアレベリングとは、例えば、消去回数が最大のブロックと、消去回数が最小のブロックとの消去回数の差が、所定の閾値以内に収まるように、ブロック間でデータの入れ替え(交換)を行うことを意味する。例えば、NAND型フラッシュメモリは消去処理なしでのデータ上書きができないため、データ移動先は未使用のブロックである必要があり、元々データを記憶していたブロックの消去処理が発生することになる。   Here, wear leveling means, for example, that data is exchanged (exchanged) between blocks so that the difference in the number of erases between the block with the largest number of erases and the block with the smallest number of erases falls within a predetermined threshold. Means to do. For example, since data can not be overwritten without erasure processing in a NAND flash memory, the data movement destination needs to be an unused block, and erasure processing of a block that originally stored data occurs.

次に、図20を参照して、データに対する書き込み対象ブロックの決定処理について説明する。図20は、データに対する書き込み対象ブロックの決定処理について説明するための図である。   Next, with reference to FIG. 20, a process for determining a write target block for data will be described. FIG. 20 is a diagram for explaining a process of determining a write target block for data.

不揮発性半導体メモリ9,10は、ブロック単位でデータの消去が行われる。不揮発性半導体メモリ9,10のブロック領域毎の消去回数ECは、メモリ使用情報11を参照することにより取得することができる。ブロック領域の消去回数の上限値(消去可能上限回数)に対する消去回数ECの割合を消耗率とする。   The nonvolatile semiconductor memories 9 and 10 are erased in units of blocks. The erase count EC for each block area of the nonvolatile semiconductor memories 9 and 10 can be obtained by referring to the memory usage information 11. The ratio of the number of times of erasing EC to the upper limit of the number of times of erasing the block area (the upper limit number of erasable) is defined as a consumption rate.

ブロック領域の消去回数ECが、当該ブロック領域の消去可能上限回数に達している場合には、消耗率は100%である。消耗率が100%の場合には、当該ブロック領域へのデータの書き込みは行われない。   When the erase count EC of a block area reaches the maximum erasable count of the block area, the consumption rate is 100%. When the consumption rate is 100%, data is not written to the block area.

ブロック領域の消去回数ECが、当該ブロック領域の消去回数の上限値に近い場合(例えば、90%)には、当該ブロック領域に対するデータの書き込みを少なくする。書き込み管理部20は、カラーリングテーブル14を参照することにより、書き込み頻度(静的書き込み頻度SW_color、動的書き込み頻度DW_color)の低い書き込み対象データ(例えば、SW_colorが1、DW_colorが「中」)を、消耗率の高いブロック領域(例えば、消耗率90%未満)に書き込む。   When the erase count EC of the block area is close to the upper limit value of the erase count of the block area (for example, 90%), data writing to the block area is reduced. The writing management unit 20 refers to the coloring table 14 to write data to be written with a low writing frequency (static writing frequency SW_color, dynamic writing frequency DW_color) (for example, SW_color is 1, DW_color is “medium”). Write to a block area with a high consumption rate (for example, less than 90% consumption rate).

一方、ブロック領域の消去回数ECが、当該ブロック領域の消去回数の上限値より低い場合(例えば、消耗率10%)には、当該ブロック領域に対するデータの書き込みは、多くてもよい。書き込み管理部20は、カラーリングテーブル14を参照することにより、書き込み頻度(静的書き込み頻度SW_color、動的書き込み頻度DW_color)の高い書き込み対象データ(例えば、SW_colorが5、DW_colorが「高」)を、消耗率の低いブロック領域(例えば、消耗率10未満)に書き込む。   On the other hand, when the erase count EC of the block area is lower than the upper limit value of the erase count of the block area (for example, the consumption rate is 10%), the data write to the block area may be large. The writing management unit 20 refers to the coloring table 14 and stores writing target data (for example, SW_color is 5 and DW_color is “high”) having a high writing frequency (static writing frequency SW_color, dynamic writing frequency DW_color). Write to a block area with a low consumption rate (for example, a consumption rate of less than 10).

以上のように、書き込み対象データを書き込むブロック領域は、書き込み対象データのカラーリング情報と、ブロック領域の消耗率に基づいて決定する。これにより、書き込み対象データの特性(書き込み頻度)に合った書き込み対象ブロック領域を選択することができ、データの信頼性の向上が図れる。また、以下において説明するように、混成メインメモリの寿命の延ばすことが可能となる。   As described above, the block area into which the write target data is written is determined based on the coloring information of the write target data and the consumption rate of the block area. As a result, it is possible to select a write target block area that matches the characteristics (write frequency) of the write target data, and to improve data reliability. Further, as will be described below, it is possible to extend the life of the hybrid main memory.

次に、図21乃至図25を参照して、書き込み対象データを書き込むブロック領域を、書き込み対象データのカラーリング情報、メモリ使用情報11、メモリ固有情報12に基づいて決定する処理についての詳細と効果について説明する。   Next, referring to FIG. 21 to FIG. 25, details and effects of processing for determining a block area into which write target data is written based on coloring information, memory usage information 11 and memory specific information 12 of the write target data. Will be described.

図21は、不揮発性半導体メモリ9,10の任意のブロック領域における消去回数の推移の一例を示すグラフである。この図21において、縦軸は消去回数、横軸は時間を表す。   FIG. 21 is a graph showing an example of the transition of the number of erasures in an arbitrary block area of the nonvolatile semiconductor memories 9 and 10. In FIG. 21, the vertical axis represents the number of erasures and the horizontal axis represents time.

時間の経過により各ブロック領域における理想的な消去回数は変化する。例えばNAND型フラッシュメモリなどの不揮発性半導体メモリ9,10を使用する情報処理装置1では、将来的に不揮発性半導体メモリ9,10が劣化し、不揮発性半導体メモリ9,10を交換する必要が生じる。メモリ交換期までに不揮発性半導体メモリ9,10の多数のブロック領域を使用するためには、ウェアレベリングによる消去回数の平準化が必要である。図21では、不揮発性半導体メモリ9,10の任意のブロック領域における消去回数の推移を示している。ブロック領域に対して期待されている寿命に達した時点で、ブロック領域の消去回数が消去可能上限回数に達することが好ましい。   The ideal number of erasures in each block area varies with time. For example, in the information processing apparatus 1 that uses nonvolatile semiconductor memories 9 and 10 such as NAND flash memory, the nonvolatile semiconductor memories 9 and 10 will deteriorate in the future, and the nonvolatile semiconductor memories 9 and 10 need to be replaced. . In order to use a large number of block areas of the nonvolatile semiconductor memories 9 and 10 before the memory replacement period, it is necessary to equalize the number of erases by wear leveling. FIG. 21 shows the transition of the number of erasures in an arbitrary block area of the nonvolatile semiconductor memories 9 and 10. It is preferable that the number of times of erasing the block area reaches the upper limit number of erasable when the expected life for the block area is reached.

例えば、すべてのブロック領域が図21で示した消去回数の推移に従うためには、ウェアレベリングにおいて各ブロック領域の消去回数の差に対する閾値を小さく設定することも可能である。   For example, in order for all block areas to follow the transition of the erase count shown in FIG. 21, it is possible to set a small threshold for the difference in the erase count of each block area in wear leveling.

図22は、ウェアレベリングにおいて消去回数の差に対する閾値を小さく設定した場合の変化の一例を示すグラフである。   FIG. 22 is a graph showing an example of a change when the threshold for the difference in the number of erasures is set small in wear leveling.

図22における破線は各ブロック領域の消去回数のばらつきの範囲を示している。図22に示すように、閾値を小さくすることにより、各ブロック領域の消去回数のばらつきは小さくなるが、ウェアレベリングのための消去処理の発生回数が増加し、この結果、不揮発性半導体メモリ9,10全体の寿命が短くなる可能性がある。   The broken lines in FIG. 22 indicate the range of variation in the number of erases in each block area. As shown in FIG. 22, by reducing the threshold value, the variation in the number of erasures in each block area is reduced, but the number of occurrences of erasure processing for wear leveling is increased. As a result, the nonvolatile semiconductor memory 9, The lifetime of the entire 10 may be shortened.

書き込み管理部20は、消去回数の分散を低減させ、ウェアレベリングによる消去処理の発生回数を抑えるために、データを書き込む際に、メモリ使用情報11、メモリ固有情報12、カラーリングテーブル14に基づいた消去ブロック領域の選択を行う。   The write management unit 20 is based on the memory usage information 11, the memory specific information 12, and the coloring table 14 when writing data in order to reduce the distribution of the number of erasures and to suppress the number of times erasure processing occurs due to wear leveling. The erase block area is selected.

図23は、消去回数に応じたブロック領域のグループ分けの一例を示すグラフである。   FIG. 23 is a graph showing an example of grouping block areas according to the number of erasures.

図24は、消去回数に応じたブロック領域のグループ分けの判断基準を表す図である。   FIG. 24 is a diagram showing a criterion for grouping block areas according to the number of erasures.

本実施形態においては、ブロック領域毎に消去回数によるグループ分けが行われる。ブロック領域のグループ分けの結果を示す情報は、メモリ使用情報11として保存される。なお、ブロック領域のグループ分けの結果を示す情報は、メモリ固有情報12として保存されるとしてもよい。   In the present embodiment, grouping by the number of erasures is performed for each block area. Information indicating the result of grouping the block areas is stored as memory usage information 11. Note that the information indicating the result of grouping the block areas may be stored as the memory specific information 12.

図23の太線は、最小の消去回数の推移を示しており、破線はウェアレベリングの閾値を表している。図23に示すように、各ブロック領域はウェアレベリングの閾値の範囲内(ばらつきの範囲内)でそれぞれの消去回数のグループに分類される。   The thick line in FIG. 23 shows the transition of the minimum number of erasures, and the broken line represents the wear leveling threshold. As shown in FIG. 23, each block area is classified into a group of the number of times of erasing within the range of the wear leveling threshold (within the range of variation).

メモリ使用情報管理部22は、あるブロック領域のデータが消去され、再度書き込み可能になったとき、図24に示すような判断表に基づいて、このブロック領域がどのグループに属するか判断し、メモリ使用情報11に記憶する。   When the data in a certain block area is erased and becomes writable again, the memory usage information management unit 22 determines to which group this block area belongs based on the determination table as shown in FIG. Store in usage information 11.

この図24の判断表では、全てのブロック領域の消去回数のうちの最小の消去回数と、この最小の消去回数とウェアレベリングを行うか否かを判断するための閾値とを加算した値との間が、グループの数で分割されている。グループは、分割された範囲の下から上に向けて、h,g,f,e,d,c,b,aと設定されている。そして、判断表には、各グループに対する上限の消去回数と下限の消去回数とが設定されている。   In the determination table of FIG. 24, a value obtained by adding the minimum number of times of erasing of all the block areas, and the minimum number of times of erasing and a threshold value for determining whether or not wear leveling is performed. The space is divided by the number of groups. The groups are set as h, g, f, e, d, c, b, a from the bottom to the top of the divided range. In the determination table, an upper limit erase count and a lower limit erase count for each group are set.

図25は、ウェアレベリングにおけるブロック領域の検索の一例を示す図である。   FIG. 25 is a diagram illustrating an example of a block area search in wear leveling.

書き込み管理部20は、カラーリングテーブル14の情報に基づいて、書き込み対象データのブロック領域を検索する基準となるグループを決定する。例えば、書き込み対象データのアクセス頻度が高い場合には、消去回数の少ないグループが決定され、書き込み対象データのアクセス頻度が低い場合には、消去回数の多いグループが決定される。以下においては、書き込み対象データに対して、グループcが決定されたとして説明を行う。   Based on the information in the coloring table 14, the write management unit 20 determines a group serving as a reference for searching for a block area of write target data. For example, when the access frequency of the write target data is high, a group with a small erase count is determined, and when the access frequency of the write target data is low, a group with a high erase count is determined. In the following description, it is assumed that the group c is determined for the write target data.

検索基準となる書き込み対象データのグループcが決定されると、図25に示すように、書き込み管理部20は、メモリ使用情報11に基づいて、決定された書き込み対象データのグループcに属するブロック領域を検索する。   When the group c of the write target data serving as the search criterion is determined, as shown in FIG. 25, the write management unit 20 uses the memory usage information 11 to determine the block area belonging to the determined group c of the write target data. Search for.

決定された書き込み対象データのグループcに属するブロック領域が存在する場合、このブロック領域が書き込み対象データの書き込み先として決定される。   When there is a block area belonging to the determined group c of the write target data, this block area is determined as a write destination of the write target data.

これに対して、決定された書き込み対象データのグループcに属するブロック領域が存在しない場合、書き込み管理部20は、決定された書き込み対象データのグループcの近傍のグループbに属するブロック領域を検索する。   On the other hand, when there is no block area belonging to the group c of the determined write target data, the write management unit 20 searches for a block area belonging to the group b near the group c of the determined write target data. .

決定された書き込み対象データの近傍グループbに属するブロック領域が存在する場合、この近傍グループbに属するブロック領域が書き込み対象データの書き込み先として選択される。   When there is a block area belonging to the neighboring group b of the determined write target data, the block area belonging to the neighboring group b is selected as a write destination of the write target data.

決定された書き込み対象データの近傍グループbに属するブロック領域が存在しない場合、以下同様に、ブロック領域が決定されるまで、さらに書き込み対象データのグループcに対する他の近傍グループdに対する検索が実行される。このような検索処理によってデータを書き込むブロック領域の物理アドレスが決定されると、書き込み管理部20は、データの書き込みを行い、アドレス管理部18はアドレス変換情報13を更新する。   If there is no block area belonging to the neighborhood group b of the determined write target data, similarly, until the block area is determined, further search for another neighborhood group d for the group c of the write target data is executed. . When the physical address of the block area to which data is written is determined by such search processing, the write management unit 20 writes data, and the address management unit 18 updates the address conversion information 13.

なお、書き込み管理部20は、他のブロック領域の検索方法を用いて書き込み先のアドレスを決定するとしてもよい。例えば、書き込み管理部20は、消去回数をキーとし、消去ブロック領域をノードとする木構造(B-Tree B+Tree RB-Tree等)で書き込み可能なブロック領域(消去処理済み)を管理し、メモリ固有情報12又はメモリ使用情報11に保存する。書き込み管理部20は、基準となる消去回数をキーにツリーを検索し、最も近い消去回数をもつブロック領域を抽出する。   Note that the write management unit 20 may determine a write destination address using another block area search method. For example, the write management unit 20 manages a block area (erased) that can be written in a tree structure (B-Tree B + Tree RB-Tree, etc.) having the erase count as a key and an erase block area as a node. It is stored in the memory specific information 12 or the memory usage information 11. The write management unit 20 searches the tree using the reference erase count as a key, and extracts a block area having the closest erase count.

任意のプロセス3bによってデータが消去されると、オペレーティングシステム27はこのデータについてのカラーリングテーブル14の内容を消去する。アドレス管理部18は、カラーリングテーブル14の内容が消去されたとき、アドレス変換情報13における消去対象データの論理アドレスに対応する物理アドレスを消去する。   When data is erased by any process 3b, the operating system 27 erases the contents of the coloring table 14 for this data. When the contents of the coloring table 14 are erased, the address management unit 18 erases the physical address corresponding to the logical address of the data to be erased in the address conversion information 13.

データが揮発性半導体メモリ8上に存在する場合は、揮発性半導体メモリ8上のデータが消去される。   When the data exists on the volatile semiconductor memory 8, the data on the volatile semiconductor memory 8 is erased.

次に、図26を参照して、本実施形態に係るメモリ管理装置1にキャッシュメモリを備えた構成について説明する。図26は、本実施形態に係るメモリ管理装置1にさらにキャッシュメモリを備えたメモリ管理装置の一例を示すブロック図である。なお、この図26においては、プロセッサ3a,3b,3cのうちプロセッサ3bを代表として説明するが、他のプロセッサ3a,3cについても同様である。   Next, a configuration in which the memory management device 1 according to the present embodiment includes a cache memory will be described with reference to FIG. FIG. 26 is a block diagram illustrating an example of a memory management device that further includes a cache memory in the memory management device 1 according to the present embodiment. In FIG. 26, the processor 3b is described as a representative of the processors 3a, 3b, and 3c, but the same applies to the other processors 3a and 3c.

メモリ管理装置1は、さらに、キャッシュメモリ28を備えている。   The memory management device 1 further includes a cache memory 28.

プロセッサ3bは、1次キャッシュメモリ4b、2次キャッシュメモリ5bに加えて、キャッシュメモリ28を直接アクセス可能である。   The processor 3b can directly access the cache memory 28 in addition to the primary cache memory 4b and the secondary cache memory 5b.

メモリ管理装置28は、1次キャッシュメモリ4b、2次キャッシュメモリ5b、キャッシュメモリ28のいずれかにおいて、ページイン又はページアウトが発生した場合に、混成メインメモリ2をアクセスする。   The memory management device 28 accesses the hybrid main memory 2 when page-in or page-out occurs in any of the primary cache memory 4b, the secondary cache memory 5b, and the cache memory 28.

メモリ管理装置1、混成メインメモリ2、プロセッサ3aの実装例を、図27の例に基づいて説明する。   An implementation example of the memory management device 1, the hybrid main memory 2, and the processor 3a will be described based on the example of FIG.

図27(A)は、メモリ管理装置1、混成メインメモリ2、プロセッサ3aの第1の実装例を示すブロック図である。図27(A)では、揮発性半導体メモリ8が、DRAMであり、不揮発性半導体メモリ9,10がNAND型フラッシュメモリである場合について説明するが、これに限定されない。   FIG. 27A is a block diagram illustrating a first implementation example of the memory management device 1, the hybrid main memory 2, and the processor 3a. In FIG. 27A, the case where the volatile semiconductor memory 8 is a DRAM and the nonvolatile semiconductor memories 9 and 10 are NAND flash memories is described, but the present invention is not limited to this.

プロセッサ3aは、メモリコントローラ(MMU)3maと、1次キャッシュメモリ4aと、2次キャッシュメモリ4bとを備える。メモリ管理装置1は、DRAMコントローラを備える。プロセッサ3aとメモリ管理装置1は同一基板(例えば、SoC)上に形成される。   The processor 3a includes a memory controller (MMU) 3ma, a primary cache memory 4a, and a secondary cache memory 4b. The memory management device 1 includes a DRAM controller. The processor 3a and the memory management device 1 are formed on the same substrate (for example, SoC).

揮発性半導体メモリ8は、メモリ管理装置1が備えるDRAMコントローラにより制御される。不揮発性半導体メモリ9,10は、メモリ管理装置1により制御される。図27(A)の実装例では、揮発性半導体メモリ8が搭載されるメモリモジュールと、不揮発性半導体メモリ9,10が搭載されるメモリモジュールとは、別モジュールである。   The volatile semiconductor memory 8 is controlled by a DRAM controller provided in the memory management device 1. The nonvolatile semiconductor memories 9 and 10 are controlled by the memory management device 1. In the mounting example of FIG. 27A, the memory module in which the volatile semiconductor memory 8 is mounted and the memory module in which the nonvolatile semiconductor memories 9 and 10 are mounted are different modules.

図27(B)は、メモリ管理装置1、混成メインメモリ2、プロセッサ3aの第1の実装例を示すブロック図である。図27(B)では、揮発性半導体メモリ8が、DRAMであり、不揮発性半導体メモリ9,10がNAND型フラッシュメモリである場合について説明するが、これに限定されない。図27(A)と同様の構成については、説明を省略する。   FIG. 27B is a block diagram illustrating a first implementation example of the memory management device 1, the hybrid main memory 2, and the processor 3a. In FIG. 27B, the case where the volatile semiconductor memory 8 is a DRAM and the nonvolatile semiconductor memories 9 and 10 are NAND flash memories will be described, but the present invention is not limited to this. Description of the structure similar to that in FIG.

図27(B)の例では、プロセッサ3aが搭載されたチップに、メモリ管理装置1が外部から電気的に接続される構成となっている。また、メモリ管理装置1に、揮発性半導体メモリ8が接続される構成となっている。メモリ管理装置1は、DRAMコントローラ(図示省略)を備える。   In the example of FIG. 27B, the memory management device 1 is electrically connected to the chip on which the processor 3a is mounted from the outside. In addition, a volatile semiconductor memory 8 is connected to the memory management device 1. The memory management device 1 includes a DRAM controller (not shown).

次に、図28を参照して、本実施形態に係るメモリ管理装置1と情報処理装置100の別構成態様について説明する。図1に示したメモリ管理装置1と情報処理装置100では、データについての書き込み回数DWC_color、読み出し回数RWC_colorのカウント(インクリメント)は、メモリ管理装置1の動的カラー情報管理部22で管理する。これに対し、図28に示すメモリ管理装置1と情報処理装置100では、データについての書き込み回数DWC_color、読み出し回数RWC_colorのカウントは、プロセッサ3a,3b,3cが備えるメモリコントローラ(MMU)3ma,3mb,3mcで行う。以下の説明において、メモリコントローラ3ma,3mb,3mcのうちメモリコントローラ3maを代表として説明するが、他のメモリコントローラ3mb,3mcについても同様である。   Next, another configuration aspect of the memory management device 1 and the information processing device 100 according to the present embodiment will be described with reference to FIG. In the memory management device 1 and the information processing device 100 shown in FIG. 1, the count (increment) of the write count DWC_color and the read count RWC_color for data is managed by the dynamic color information management unit 22 of the memory management device 1. On the other hand, in the memory management device 1 and the information processing device 100 shown in FIG. 28, the counts of the data write count DWC_color and the read count RWC_color are the memory controllers (MMU) 3ma, 3mb, 3mb, 3c provided in the processors 3a, 3b, 3c. Perform at 3 mc. In the following description, the memory controller 3ma will be described as a representative of the memory controllers 3ma, 3mb, and 3mc, but the same applies to the other memory controllers 3mb and 3mc.

プロセッサ3aに備えられているメモリコントローラ3maは、データについての書き込み回数DWC_color、読み出し回数DRC_colorのカウントを行うカウンタctaを備える。さらに、メモリコントローラ3maは、データについての書き込み回数DWC_color、読み出し回数DRC_colorを管理するカウント情報ciaを含む。   The memory controller 3ma provided in the processor 3a includes a counter cta that counts the number of write times DWC_color and the number of read times DRC_color for data. Further, the memory controller 3ma includes count information cia for managing the write count DWC_color and the read count DRC_color for data.

カウンタctaは、例えば、プロセッサ3aがデータに対してロード命令を発生させた場合、当該データに対する読み出し回数DRC_colorをカウント(インクリメント)し、カウント情報ciaを更新する。また、カウンタctaは、例えば、プロセッサ3aがデータに対してストア命令を発生させた場合、当該データに対する書き込み回数DWC_colorをカウント(インクリメント)し、カウント情報ciaを更新する。   For example, when the processor 3a generates a load instruction for data, the counter cta counts (increments) the read count DRC_color for the data and updates the count information cia. For example, when the processor 3a generates a store instruction for data, the counter cta counts (increments) the number of write times DWC_color for the data and updates the count information cia.

カウント情報ciaにより管理される、データについての書き込み回数DWC_color、読み出し回数DRC_colorは、定期的に、当該データについてのメモリ管理装置1のカラーリングテーブル14の書き込み回数DWC_color、読み出し回数DRC_colorに反映される。   The write count DWC_color and read count DRC_color for data managed by the count information cia are periodically reflected in the write count DWC_color and read count DRC_color of the coloring table 14 of the memory management device 1 for the data.

この図28の構成態様においては、次の効果が得られる。すなわち、プロセッサ3aの動作周波数はGHzオーダーであるのに対し、メモリ管理装置1の動作周波数はMHzオーダーである場合に、メモリ管理装置1では、プロセッサ3aで発生する書き込み、読み出しをカウントすることが困難な場合が考えられる。これに対し、図28の構成態様の場合には、プロセッサ3aのカウンタctaで、書き込み、読み出しをカウントするため、高い動作周波数での読み出し回数、書き込み回数をカウントすることが可能となる。   In the configuration mode of FIG. 28, the following effects are obtained. That is, when the operating frequency of the processor 3a is on the order of GHz while the operating frequency of the memory management device 1 is on the order of MHz, the memory management device 1 can count writing and reading that occur in the processor 3a. It may be difficult. On the other hand, in the configuration mode of FIG. 28, the counter cta of the processor 3a counts writing and reading, so that it is possible to count the number of readings and the number of writings at a high operating frequency.

次に、図29を参照して、複数のメモリ管理装置1により、複数の不揮発性半導体メモリを管理する構成について説明する。図29は、複数の不揮発性半導体メモリを管理する複数のメモリ管理装置の一例を示す斜視図である。   Next, a configuration for managing a plurality of nonvolatile semiconductor memories by a plurality of memory management devices 1 will be described with reference to FIG. FIG. 29 is a perspective view showing an example of a plurality of memory management devices that manage a plurality of nonvolatile semiconductor memories.

図29においては、一つのメモリ管理装置1と、複数のNAND型フラッシュメモリ29とで、一つのメモリモジュール30が形成される。図29の例では、3つのメモリモジュール30が形成されている。   In FIG. 29, one memory management device 1 and a plurality of NAND flash memories 29 form one memory module 30. In the example of FIG. 29, three memory modules 30 are formed.

複数の不揮発性半導体メモリ29は、例えばNAND型フラッシュメモリであり、上記の不揮発性半導体メモリ9,10として用いられる。   The plurality of nonvolatile semiconductor memories 29 are, for example, NAND flash memories, and are used as the nonvolatile semiconductor memories 9 and 10 described above.

メモリ管理装置1は、同じメモリモジュール30に属する複数の不揮発性半導体メモリ29に対するアクセスを管理する。   The memory management device 1 manages access to a plurality of nonvolatile semiconductor memories 29 belonging to the same memory module 30.

さらに、複数のメモリモジュール30内に備えられている複数のメモリ管理装置1は、互いに連携して一つのメモリ管理装置にように動作する。   Further, the plurality of memory management devices 1 provided in the plurality of memory modules 30 operate as one memory management device in cooperation with each other.

メモリモジュール30のメモリ管理装置1は、メモリモジュール30内の複数の不揮発性半導体メモリ29に対するECC機能及びRAID機能を備え、ミラーリング及びストライピングを行う。   The memory management device 1 of the memory module 30 includes an ECC function and a RAID function for a plurality of nonvolatile semiconductor memories 29 in the memory module 30, and performs mirroring and striping.

それぞれの不揮発性半導体メモリ29は、メモリモジュール30が通電中(動作中)であっても、ホットスワップ(交換)可能である。複数の不揮発性半導体メモリ29のそれぞれには、ボタン31が対応付けられている。   Each nonvolatile semiconductor memory 29 can be hot swapped (replaced) even when the memory module 30 is energized (operating). A button 31 is associated with each of the plurality of nonvolatile semiconductor memories 29.

ボタン31は、警告出力部(例えばLEDなど)を備える。例えば、警告出力部が第1の色(緑)の場合は、正常状態を表し、第2の色(赤)の場合には交換必要な状態を表す。   The button 31 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.

ボタン31が押されると、プロセス6a,6b,6c及びオペレーティングシステム27に通知が送信され、アクセスなどが発生していない取り外し安全なときに、ボタン31は、第3の色(青)になり、このボタン31に対応する不揮発性半導体メモリ29は、ホットスワップ可能となる。   When the button 31 is pressed, a notification is sent to the processes 6a, 6b, 6c and the operating system 27, and when it is safe to remove when no access occurs, the button 31 becomes the third color (blue) The nonvolatile semiconductor memory 29 corresponding to the button 31 can be hot swapped.

ホットスワップ実行時には、ホットスワップを要求するボタン31が押された後、ライトバックが完了した時点で、交換可能であることを示すランプが点灯し、不揮発性半導体メモリ29の交換が行われる。   When the hot swap is executed, after the button 31 for requesting hot swap is pressed, when the write back is completed, a lamp indicating that the replacement is possible is turned on, and the nonvolatile semiconductor memory 29 is replaced.

メモリ管理装置1の処理部15は、情報記憶部17に記憶されているメモリ使用情報11とメモリ固有情報12とを参照し、各不揮発性半導体メモリ29の書き換え回数又は読み出し回数が、メモリ固有情報12に記述されているアクセス可能上限回数の所定割合に達したか否か判断する。そして、処理部15は、書き込み回数又は読み出し回数が、書き込み可能上限回数又は読み出し可能上限回数の所定割合に達している場合、メモリ交換を通知又は警告する。   The processing unit 15 of the memory management device 1 refers to the memory usage information 11 and the memory specific information 12 stored in the information storage unit 17, and the number of rewrites or read of each nonvolatile semiconductor memory 29 is the memory specific information. It is determined whether or not a predetermined ratio of the upper limit number of accessible times described in 12 has been reached. Then, when the number of times of writing or the number of times of reading has reached a predetermined ratio of the upper limit number of times of writing or the upper limit number of times of reading, the processing unit 15 notifies or warns of the memory replacement.

本実施形態において、不揮発性半導体メモリ29のページサイズ又はブロックサイズが大きい場合、プリロードが有効である。   In the present embodiment, when the page size or block size of the nonvolatile semiconductor memory 29 is large, preloading is effective.

プリロードが行われる場合、メモリ管理装置1の処理部15は、不揮発性半導体メモリ29に記憶されているデータに対応するカラーリング情報を参照し、頻繁にアクセスされる可能性の高いデータを、予めキャッシュメモリ28にプリロードしておく。   When preloading is performed, the processing unit 15 of the memory management device 1 refers to coloring information corresponding to data stored in the nonvolatile semiconductor memory 29 and stores data that is likely to be frequently accessed in advance. Preloaded into the cache memory 28.

あるいは、処理部15は、周期性のあるデータであって、所定の時間にアクセスされる可能性の高いデータを、その所定時間の前にプリロードしておく。   Alternatively, the processing unit 15 preloads data having periodicity and highly likely to be accessed at a predetermined time before the predetermined time.

本実施形態においては、混成メインメモリ2の各メモリの耐久性に基づいてデータの配置が決定され、混成メインメモリ2の寿命を延ばすことができる。また、混成メインメモリ2に対する高速なアクセスを実現できる。   In the present embodiment, the data arrangement is determined based on the durability of each memory of the hybrid main memory 2, and the life of the hybrid main memory 2 can be extended. Further, high-speed access to the hybrid main memory 2 can be realized.

本実施形態においては、混成メインメモリ2の各メモリの耐久性に基づいてデータが配置されるため、混成メインメモリ2における致命的なデータ欠損を防止することができる。   In the present embodiment, since data is arranged based on the durability of each memory of the hybrid main memory 2, fatal data loss in the hybrid main memory 2 can be prevented.

本実施形態に係るメモリ管理装置1及び混成メインメモリ2を用いることにより、スワップをなくすことができる。   By using the memory management device 1 and the hybrid main memory 2 according to this embodiment, swapping can be eliminated.

本実施形態においては、不揮発半導体メモリ9,10がメインメモリとして用いられる。これにより、メインメモリの記憶容量を大容量化することができ、ハードディスク又はSSD(Solid State Disk)を用いた2次記憶装置を使用しなくてもよい。   In the present embodiment, the nonvolatile semiconductor memories 9 and 10 are used as the main memory. As a result, the storage capacity of the main memory can be increased, and a secondary storage device using a hard disk or SSD (Solid State Disk) need not be used.

本実施形態においては、不揮発性半導体メモリ9,10をメインメモリとして用いるため、インスタント・オンを高速化できる。   In this embodiment, since the nonvolatile semiconductor memories 9 and 10 are used as the main memory, instant-on can be speeded up.

(第2の実施形態)
本実施形態は、上記第1の実施形態の変形例である。本実施形態においては、ネットワークを介して接続されているメモリをアクセスするメモリ管理装置について説明する。
(Second Embodiment)
The present embodiment is a modification of the first embodiment. In the present embodiment, a memory management device that accesses a memory connected via a network will be described.

図30は、本実施形態に係るネットワークシステムの一例を示すブロック図である。   FIG. 30 is a block diagram illustrating an example of a network system according to the present embodiment.

ネットワークシステム37は、情報処理装置37Aと情報処理装置37Bとを具備する。情報処理装置37Aと情報処理装置37Bとは、ネットワーク38経由で接続されている。情報処理装置37Aと情報処理装置37Bとは、同等の機能を持つため、以下においては情報処理装置37Aについて詳細に説明する。なお、ネットワークシステム37は、3台以上の情報処理装置を備えるとしてもよい。   The network system 37 includes an information processing device 37A and an information processing device 37B. The information processing device 37A and the information processing device 37B are connected via a network 38. Since the information processing device 37A and the information processing device 37B have equivalent functions, the information processing device 37A will be described in detail below. The network system 37 may include three or more information processing apparatuses.

情報処理装置37Aは、プロセッサ3A、メモリ管理装置32A、揮発性半導体メモリ8A、不揮発性半導体メモリ9A、ネットワークインタフェース装置39Aを具備する。   The information processing device 37A includes a processor 3A, a memory management device 32A, a volatile semiconductor memory 8A, a nonvolatile semiconductor memory 9A, and a network interface device 39A.

プロセッサ3Aは、メモリ管理装置32Aを介して、揮発性半導体メモリ8A、不揮発性半導体メモリ9A、ネットワークインタフェース装置39Aと接続されている。   The processor 3A is connected to the volatile semiconductor memory 8A, the nonvolatile semiconductor memory 9A, and the network interface device 39A via the memory management device 32A.

このプロセッサ3Aは、内部にキャッシュメモリを備えるとしてもよいが、図30では説明を省略する。情報処理装置37Aは、複数のプロセッサ3Aを備えるとしてもよい。   The processor 3A may include a cache memory inside, but the description is omitted in FIG. The information processing apparatus 37A may include a plurality of processors 3A.

揮発性半導体メモリ8Aは、上記第1の実施形態の揮発性半導体メモリ8と同様である。不揮発性半導体メモリ9Aは、上記第1の実施形態の不揮発性半導体メモリ9又は不揮発性半導体メモリ10と同様である。   The volatile semiconductor memory 8A is the same as the volatile semiconductor memory 8 of the first embodiment. The nonvolatile semiconductor memory 9A is the same as the nonvolatile semiconductor memory 9 or the nonvolatile semiconductor memory 10 of the first embodiment.

本実施の形態において、揮発性半導体メモリ8Aと不揮発性半導体メモリ9Aとは、情報処理装置37Aのメインメモリとして用いられる。しかしながら、揮発性半導体メモリ8Aと不揮発性半導体メモリ9Aは、他の情報処理装置37Bのデータのうち、情報処理装置37Aにとってアクセス頻度の高いデータ又は重要度の高いデータを記憶することにより、情報処理装置37Aにおけるキャッシュメモリとしての機能を果たす。この場合、揮発性半導体メモリ8Aは情報処理装置37Aにおける1次キャッシュメモリとして使用され、不揮発性半導体メモリ9Aは情報処理装置37Aにおける2次キャッシュメモリとして使用される。   In the present embodiment, the volatile semiconductor memory 8A and the nonvolatile semiconductor memory 9A are used as the main memory of the information processing apparatus 37A. However, the volatile semiconductor memory 8A and the nonvolatile semiconductor memory 9A store information that is frequently accessed or highly important for the information processing device 37A among other data processing devices 37B. It functions as a cache memory in the device 37A. In this case, the volatile semiconductor memory 8A is used as a primary cache memory in the information processing apparatus 37A, and the nonvolatile semiconductor memory 9A is used as a secondary cache memory in the information processing apparatus 37A.

ネットワークインタフェース装置39Aは、ネットワーク38経由で、他の情報処理装置37Bのネットワークインタフェース装置39Aと、ネットワーク論理アドレス又はデータの送受信を行う。   The network interface device 39A transmits and receives network logical addresses or data to and from the network interface device 39A of the other information processing device 37B via the network 38.

本実施形態に係るメモリ管理装置32Aについて説明する。図31は、本実施形態に係るメモリ管理装置32Aの構成の一例を示すブロック図である。   The memory management device 32A according to this embodiment will be described. FIG. 31 is a block diagram showing an example of the configuration of the memory management device 32A according to the present embodiment.

メモリ管理装置32Aの処理部33Aは、アドレス管理部18、読み出し管理部19、書き込み管理部20、カラーリング情報管理部21、メモリ使用情報管理部22、再配置部23に加えて、ネットワークアドレス変換部34と、通信部35とを具備する。   The processing unit 33A of the memory management device 32A includes a network address conversion in addition to the address management unit 18, the read management unit 19, the write management unit 20, the coloring information management unit 21, the memory usage information management unit 22, and the relocation unit 23. Unit 34 and communication unit 35.

ネットワークアドレス変換部34は、プロセッサ3Aで用いられている短いアドレス長の論理アドレス(以下、「プロセッサ論理アドレス」という)を、ネットワークで接続されている複数の情報処理装置で用いられる長いアドレス長の論理アドレス(以下、「ネットワーク論理アドレス」という)に変換する。例えば、このアドレスの変換では、ハッシュ関数が用いられる。なお、プロセッサ論理アドレスは、レジスタに格納されるポインタである。   The network address conversion unit 34 converts a short address length logical address (hereinafter referred to as a “processor logical address”) used in the processor 3A into a long address length used in a plurality of information processing apparatuses connected via the network. It is converted into a logical address (hereinafter referred to as “network logical address”). For example, a hash function is used in this address conversion. The processor logical address is a pointer stored in a register.

作業メモリ16には、アドレス長変換テーブルATが記憶されている。ネットワークアドレス変換部34は、アドレス長変換テーブルATを参照し、プロセッサ論理アドレスをネットワーク論理アドレスに変換する。   The work memory 16 stores an address length conversion table AT. The network address conversion unit 34 refers to the address length conversion table AT and converts the processor logical address into a network logical address.

なお、アドレス長変換テーブルATは、作業メモリ16に記憶されているが、情報記憶部17に記憶されるとしてもよい。   The address length conversion table AT is stored in the work memory 16, but may be stored in the information storage unit 17.

通信部35は、ネットワーク論理アドレス及びネットワーク論理アドレスで指定されるデータを、ネットワークインタフェース装置39Aを用いて、ネットワーク38経由で送信及び受信する。   The communication unit 35 transmits and receives the network logical address and the data specified by the network logical address via the network 38 using the network interface device 39A.

本実施の形態において、メモリ使用情報11は、ネットワークシステム37全体(この図31の例では、メモリ使用情報11は、揮発性半導体メモリ8A、不揮発性半導体メモリ9A、揮発性半導体メモリ8B、不揮発性半導体メモリ9B)のメモリ領域の使用状態を表す。   In the present embodiment, the memory usage information 11 is the entire network system 37 (in the example of FIG. 31, the memory usage information 11 is the volatile semiconductor memory 8A, the nonvolatile semiconductor memory 9A, the volatile semiconductor memory 8B, the nonvolatile memory It represents the usage state of the memory area of the semiconductor memory 9B).

同様に、メモリ固有情報12は、ネットワークシステム37全体のメモリ領域の固有情報を表す。   Similarly, the memory unique information 12 represents unique information of the memory area of the entire network system 37.

アドレス変換情報13は、ネットワークシステム37全体で使用されているネットワーク論理アドレスと物理アドレスとの関係を示す。   The address translation information 13 indicates the relationship between network logical addresses and physical addresses used in the entire network system 37.

カラーリングテーブル14は、ネットワークシステム37全体における各データのカラーリング情報を含む。   The coloring table 14 includes coloring information of each data in the entire network system 37.

ネットワークシステム37においては、全てのデータに対してユニークなアドレスが付される。ネットワークシステム37全体で共通のネットワーク論理アドレス空間を用いる場合、必要となるアドレスのビット数は、例えば、128ビットなどのように大きくなる。しかしながら、このネットワークシステム37において、プロセッサ3A,3Bのレジスタは、32ビット又は64ビットであるとする。この場合、レジスタのビット数のプロセッサ論理アドレスを、ネットワーク論理アドレスのビット数に変換することが必要である。メモリ管理装置32A,32Bに備えられているネットワークアドレス変換部34は、この変換処理を実行する。   In the network system 37, a unique address is assigned to all data. When a common network logical address space is used in the entire network system 37, the required number of bits of the address becomes large, for example, 128 bits. However, in this network system 37, the registers of the processors 3A and 3B are 32 bits or 64 bits. In this case, it is necessary to convert the processor logical address of the number of bits of the register into the number of bits of the network logical address. The network address conversion unit 34 provided in the memory management devices 32A and 32B executes this conversion process.

ネットワークシステム37によるネットワーク38経由でのデータ読み出しについて説明する。   Data reading via the network 38 by the network system 37 will be described.

メモリ管理装置32Aは、プロセッサ3Aからプロセッサ論理アドレスを受け、このプロセッサ論理アドレスをネットワーク論理アドレスに変換する。そして、メモリ管理装置32Aは、ネットワーク論理アドレスに対応するデータが、情報処理装置37Aのメモリ(この図31では揮発性半導体メモリ8Aと不揮発性半導体メモリ9A)のいずれにも記憶されていない場合に、ネットワークインタフェース装置39A及びネットワーク38経由で、他の情報処理装置37Bにネットワーク論理アドレスを送る。   The memory management device 32A receives the processor logical address from the processor 3A and converts the processor logical address into a network logical address. Then, the memory management device 32A determines that the data corresponding to the network logical address is not stored in any of the memories (the volatile semiconductor memory 8A and the nonvolatile semiconductor memory 9A in FIG. 31) of the information processing device 37A. The network logical address is sent to the other information processing apparatus 37B via the network interface apparatus 39A and the network 38.

情報処理装置37Bのメモリ管理装置32Bは、情報処理装置37Aからネットワーク38及びネットワークインタフェース装置39B経由で、ネットワーク論理アドレスに対応するデータを受ける。   The memory management device 32B of the information processing device 37B receives data corresponding to the network logical address from the information processing device 37A via the network 38 and the network interface device 39B.

メモリ管理装置32Bは、受信されたネットワーク論理アドレスが情報処理装置37Bのメモリ(この図31では揮発性半導体メモリ8B又は不揮発性半導体メモリ9B)に記憶されている場合に、アドレス変換情報13に基づいて、ネットワーク論理アドレスを物理アドレスに変換し、データを読み出す。   The memory management device 32B is based on the address conversion information 13 when the received network logical address is stored in the memory (the volatile semiconductor memory 8B or the non-volatile semiconductor memory 9B in FIG. 31) of the information processing device 37B. Then, the network logical address is converted into a physical address, and the data is read out.

メモリ管理装置32Bは、読み出されたデータを、ネットワークインタフェース装置39A、ネットワーク38経由で、情報処理装置37Aに送る。   The memory management device 32B sends the read data to the information processing device 37A via the network interface device 39A and the network 38.

情報処理装置37Aのメモリ管理装置32Aは、情報処理装置37Bからネットワーク38及びネットワークインタフェース装置39A経由で、読み出されたデータを受ける。   The memory management device 32A of the information processing device 37A receives the read data from the information processing device 37B via the network 38 and the network interface device 39A.

メモリ管理装置32Aは、読み出されたデータを、プロセッサ3Aに返す。   The memory management device 32A returns the read data to the processor 3A.

また、メモリ管理装置32Aは、カラーリングテーブル14を参照し、読み出されたデータのアクセス頻度又は重要度が所定値以上の場合に、このデータを揮発性半導体メモリ8A又は不揮発性半導体メモリ9Aに書き込み、アドレス変換情報13を更新する。この書き込みは、上記第1の実施形態と同様の手法により、書き込み先を決定する。   Further, the memory management device 32A refers to the coloring table 14, and when the access frequency or importance of the read data is equal to or higher than a predetermined value, this data is stored in the volatile semiconductor memory 8A or the nonvolatile semiconductor memory 9A. Write and update the address translation information 13. In this writing, a writing destination is determined by the same method as in the first embodiment.

ネットワークシステム37によるネットワーク38経由でのデータ書き込みについて説明する。   Data writing via the network 38 by the network system 37 will be described.

メモリ管理装置32Aは、プロセッサ3Aからプロセッサ論理アドレスと書き込み対象データを受け、このプロセッサ論理アドレスをネットワーク論理アドレスに変換する。そして、メモリ管理装置32Aは、ネットワーク論理アドレスが他の情報処理装置37Bを示す場合に、ネットワークインタフェース装置39A及びネットワーク38経由で、他の情報処理装置37Bにネットワーク論理アドレス及び書き込み対象データを送る。   The memory management device 32A receives the processor logical address and the write target data from the processor 3A, and converts the processor logical address into a network logical address. Then, when the network logical address indicates the other information processing apparatus 37B, the memory management apparatus 32A sends the network logical address and the write target data to the other information processing apparatus 37B via the network interface apparatus 39A and the network 38.

情報処理装置37Bのメモリ管理装置32Bは、情報処理装置37Aからネットワーク38及びネットワークインタフェース装置39B経由で、ネットワーク論理アドレス及び書き込み対象データを受ける。   The memory management device 32B of the information processing device 37B receives the network logical address and the write target data from the information processing device 37A via the network 38 and the network interface device 39B.

メモリ管理装置32Bは、アドレス変換情報13に基づいて、ネットワーク論理アドレスを物理アドレスに変換し、物理アドレスの示すメモリ領域に書き込み対象データを書き込む。   The memory management device 32B converts the network logical address into a physical address based on the address conversion information 13, and writes the write target data in the memory area indicated by the physical address.

上記図30に示すネットワークシステム37におけるデータD1のコピーについて説明する。   A copy of the data D1 in the network system 37 shown in FIG. 30 will be described.

情報処理装置37Aのメモリ管理装置32Aは、揮発性半導体メモリ8A、不揮発性半導体メモリ9A、さらに、揮発性半導体メモリ8B、不揮発性半導体メモリ9Bに対するメモリ使用情報11及びメモリ固有情報12を管理する。   The memory management device 32A of the information processing device 37A manages the volatile semiconductor memory 8A, the nonvolatile semiconductor memory 9A, the memory usage information 11 and the memory specific information 12 for the volatile semiconductor memory 8B and the nonvolatile semiconductor memory 9B.

さらに、メモリ管理装置32Aは、揮発性半導体メモリ8A、不揮発性半導体メモリ9A、さらに、揮発性半導体メモリ8B、不揮発性半導体メモリ9Bに格納されている各データのカラーリング情報を、カラーリングテーブル14で管理する。   Further, the memory management device 32A displays the coloring information of each data stored in the volatile semiconductor memory 8A, the nonvolatile semiconductor memory 9A, the volatile semiconductor memory 8B, and the nonvolatile semiconductor memory 9B as the coloring table 14. Manage with.

メモリ管理装置32Aは、メモリ使用情報11、メモリ固有情報12、カラーリングテーブル14に基づいて、揮発性半導体メモリ8A及び不揮発性半導体メモリ9Aに加えて、ネットワーク38経由で接続されている揮発性半導体メモリ8B及び不揮発性半導体メモリ9Bに対しても、不揮発性半導体メモリ9A,9Bの寿命を延ばすように、書き込み先の決定を行う。   The memory management device 32A is based on the memory usage information 11, the memory specific information 12, and the coloring table 14, and in addition to the volatile semiconductor memory 8A and the nonvolatile semiconductor memory 9A, the volatile semiconductor connected via the network 38. Also for the memory 8B and the nonvolatile semiconductor memory 9B, the write destination is determined so as to extend the lifetime of the nonvolatile semiconductor memories 9A and 9B.

ここで、情報処理装置37Aのメモリ管理装置32Aは、情報処理装置37Aから他の情報処理装置37Bに対するアクセスが発生する頻度の高い本体のデータD1を、情報処理装置37Aの揮発性半導体メモリ8A又は不揮発性半導体メモリ9Aにコピーし、データD1cとして記憶する。例えば、メモリ管理装置32Aは、カラーリングテーブル14を参照し、他の情報処理装置37Bに記憶されておりアクセス頻度が所定レベル以上のデータD1を、情報処理装置37Aの揮発性半導体メモリ8A又は不揮発性半導体メモリ9AにコピーされたデータD1cとして記憶する。   Here, the memory management device 32A of the information processing device 37A uses the volatile semiconductor memory 8A or the volatile semiconductor memory 8A of the information processing device 37A as the main body data D1 that is frequently accessed from the information processing device 37A to the other information processing device 37B. The data is copied to the nonvolatile semiconductor memory 9A and stored as data D1c. For example, the memory management device 32A refers to the coloring table 14, and stores the data D1 stored in the other information processing device 37B and having an access frequency of a predetermined level or higher as the volatile semiconductor memory 8A or the nonvolatile memory of the information processing device 37A. And stored as data D1c copied to the conductive semiconductor memory 9A.

他の情報処理装置37BにおけるデータD1に対するアクセス頻度よりも、情報処理装置37AにコピーされたデータD1cに対するアクセス頻度の方が所定レベル以上に大きい場合、メモリ管理装置32A,32Bは、情報処理装置37AにコピーされたデータD1cを本体として管理する。   When the access frequency for the data D1c copied to the information processing device 37A is greater than or equal to a predetermined level than the access frequency for the data D1 in the other information processing device 37B, the memory management devices 32A and 32B The data D1c copied to is managed as a main body.

さらに、情報処理装置37Aにおいて、コピーされたデータD1cへの書き込みが発生した場合、メモリ管理装置32A,32Bは、情報処理装置37AのデータD1cを本体として管理する。   Further, when writing to the copied data D1c occurs in the information processing device 37A, the memory management devices 32A and 32B manage the data D1c of the information processing device 37A as a main body.

このように、情報処理装置37AにコピーされたデータD1cが本体として管理される場合、情報処理装置37BのデータD1はそのまま維持され、データD1,D1cとで相互に異なるアドレス(ID)を割り当てるとしてよい。別のアドレスは、原のデータD1に対して割り当てられてもよく、コピーされたデータD1cに対して割り当てられてもよい。   As described above, when the data D1c copied to the information processing apparatus 37A is managed as the main body, the data D1 of the information processing apparatus 37B is maintained as it is, and different addresses (ID) are assigned to the data D1 and D1c. Good. Another address may be assigned to the original data D1 or may be assigned to the copied data D1c.

また、データD1cが本体として管理される場合、原のデータD1は消去されてもよい。   Further, when the data D1c is managed as a main body, the original data D1 may be deleted.

メモリ管理装置32A,32Bとでは、データD1,D1cの衝突が発生しないように、例えば、キャッシュとして使用されているデータD1cに対する書き込みが発生した場合には、本体のデータD1を更新するなどの管理を行う。   In order to prevent the data D1 and D1c from colliding with the memory management devices 32A and 32B, for example, when writing to the data D1c used as a cache occurs, management such as updating the data D1 of the main body I do.

図32は、本実施の形態に係るプロセッサ論理アドレスとネットワーク論理アドレスとの第1の関係を示すブロック図である。   FIG. 32 is a block diagram showing a first relationship between the processor logical address and the network logical address according to the present embodiment.

例えば、プロセッサアドレスP1の上位アドレスP1uは32ビットであり、下位アドレスP1dは32ビットである。   For example, the upper address P1u of the processor address P1 is 32 bits, and the lower address P1d is 32 bits.

例えば、ネットワーク論理アドレスN1の上位アドレスN1uと中位アドレスN1mとの組み合わせは128ビットであり、下位アドレスN1dは32ビットである。   For example, the combination of the upper address N1u and the middle address N1m of the network logical address N1 is 128 bits, and the lower address N1d is 32 bits.

ネットワーク論理アドレスN1の上位アドレスN1uは例えば事業者を示し、ネットワーク論理アドレスN1の中位アドレスN1mは例えばプロセッサ固有の値であるとする。ネットワーク論理アドレスN1の上位アドレスN1uと中位アドレスN1mは、ネットワークに関係するアドレスであり、例えば、IPアドレス、IPv4などとする。   The upper address N1u of the network logical address N1 indicates, for example, an operator, and the middle address N1m of the network logical address N1 is, for example, a value unique to the processor. The high-order address N1u and the middle-order address N1m of the network logical address N1 are addresses related to the network, and are, for example, IP addresses, IPv4, and the like.

ネットワーク論理アドレスN1の上位アドレスN1uと中位アドレスN1mとの組み合わせは、ハッシュ関数40によって変換される。この変換によって、ネットワーク論理アドレスN1の上位アドレスN1uと中位アドレスN1mよりもビット数の少ない、プロセッサ論理アドレスP1の上位アドレスP1uが求められる。このプロセッサ論理アドレスP1の上位アドレスP1uが、プロセッサ論理アドレスP1からネットワーク論理アドレスN1への変換におけるキーとして用いられる。   A combination of the upper address N1u and the middle address N1m of the network logical address N1 is converted by the hash function 40. By this conversion, the upper address P1u of the processor logical address P1 having a smaller number of bits than the upper address N1u and the middle address N1m of the network logical address N1 is obtained. The upper address P1u of the processor logical address P1 is used as a key in the conversion from the processor logical address P1 to the network logical address N1.

ネットワーク論理アドレスN1uの下位アドレスN1dは、そのままプロセッサ論理アドレスP1の下位アドレスP1dとして用いられる。   The lower address N1d of the network logical address N1u is used as it is as the lower address P1d of the processor logical address P1.

アドレス長変換テーブルAT1におけるプロセッサ論理アドレスP1の上位アドレスP1uの示す位置に、ネットワーク論理アドレスN1の上位アドレスN1uと中位アドレスN1mとが格納される。   The upper address N1u and the middle address N1m of the network logical address N1 are stored at the position indicated by the upper address P1u of the processor logical address P1 in the address length conversion table AT1.

プロセッサ論理アドレスP1をネットワーク論理アドレスN1に変換する場合、ネットワークアドレス変換部34は、アドレス長変換テーブルAT1におけるプロセッサ論理アドレスP1の上位アドレスP1uの示す位置を参照し、この位置に格納されているネットワーク論理アドレスN1の上位アドレスN1u及び中位アドレスN1mを求める。   When converting the processor logical address P1 to the network logical address N1, the network address conversion unit 34 refers to the position indicated by the higher address P1u of the processor logical address P1 in the address length conversion table AT1, and stores the network stored at this position. An upper address N1u and a middle address N1m of the logical address N1 are obtained.

そして、ネットワークアドレス変換部34は、求められたネットワーク論理アドレスN1の上位アドレスN1u及び中位アドレスN1mに、プロセッサ論理アドレスP1の下位アドレスP1dを組み合わせて、ネットワーク論理アドレスN1を求める。   Then, the network address conversion unit 34 obtains the network logical address N1 by combining the upper address N1u and the middle address N1m of the obtained network logical address N1 with the lower address P1d of the processor logical address P1.

アドレス長変換テーブルAT1には、各エントリに対して、有効であるか否かを示すアドレス長変換フラグが付されている。   In the address length conversion table AT1, an address length conversion flag indicating whether or not each entry is valid is attached.

ネットワークアドレス変換部34は、アドレス長変換テーブルAT1に対するエントリの登録時に、登録先のアドレス長変換フラグを参照する。ネットワークアドレス変換部34は、アドレス長変換フラグが無効の場合には、そのままエントリへの登録を行う。ネットワークアドレス変換部34は、アドレス長変換フラグが有効の場合には、例外処理を実行する。これにより、エントリへの重複登録を防止することができる。   The network address conversion unit 34 refers to a registration destination address length conversion flag when registering an entry in the address length conversion table AT1. If the address length conversion flag is invalid, the network address conversion unit 34 registers the entry as it is. The network address conversion unit 34 executes exception processing when the address length conversion flag is valid. This can prevent duplicate registration in the entry.

図33は、本実施の形態に係るプロセッサ論理アドレスP2とネットワーク論理アドレスN2との第2の関係を示すブロック図である。   FIG. 33 is a block diagram showing a second relationship between the processor logical address P2 and the network logical address N2 according to the present embodiment.

ネットワーク論理アドレスN2の中位アドレスN2mは、プロセッサ論理アドレスP2の上位アドレスP2uに用いられる。このプロセッサ論理アドレスP2の上位アドレスP2uが、プロセッサ論理アドレスP2からネットワーク論理アドレスN2への変換におけるキーとして用いられる。   The middle address N2m of the network logical address N2 is used as the upper address P2u of the processor logical address P2. The upper address P2u of the processor logical address P2 is used as a key in the conversion from the processor logical address P2 to the network logical address N2.

ネットワーク論理アドレスN2の下位アドレスN2dは、そのままプロセッサ論理アドレスP2の下位アドレスP2dとして用いられる。   The lower address N2d of the network logical address N2 is used as it is as the lower address P2d of the processor logical address P2.

アドレス長変換テーブルAT2におけるプロセッサ論理アドレスP2の上位アドレスP2uの示す位置に、ネットワーク論理アドレスN2の上位アドレスN2uと中位アドレスN2mとが格納される。   The upper address N2u and the middle address N2m of the network logical address N2 are stored at the position indicated by the upper address P2u of the processor logical address P2 in the address length conversion table AT2.

プロセッサ論理アドレスP2をネットワーク論理アドレスN2に変換する場合、ネットワークアドレス変換部34は、アドレス長変換テーブルAT2におけるプロセッサ論理アドレスP2の上位アドレスP2uの示す位置を参照し、この位置に格納されているネットワーク論理アドレスN2の上位アドレスN2u及び中位アドレスN2mを求める。   When converting the processor logical address P2 to the network logical address N2, the network address conversion unit 34 refers to the position indicated by the higher address P2u of the processor logical address P2 in the address length conversion table AT2, and stores the network stored at this position. The upper address N2u and the middle address N2m of the logical address N2 are obtained.

そして、ネットワークアドレス変換部34は、求められたネットワーク論理アドレスN2の上位アドレスN2u及び中位アドレスN2mに、プロセッサ論理アドレスP2の下位アドレスP2dを組み合わせて、ネットワーク論理アドレスN2を求める。   Then, the network address conversion unit 34 obtains the network logical address N2 by combining the upper address N2u and middle address N2m of the obtained network logical address N2 with the lower address P2d of the processor logical address P2.

図34は、本実施の形態に係るプロセッサ論理アドレスとネットワーク論理アドレスとの第3の関係を示すブロック図である。   FIG. 34 is a block diagram showing a third relationship between the processor logical address and the network logical address according to the present embodiment.

ネットワーク論理アドレスN3の中位アドレスN3m及び下位アドレスN3dは、プロセッサ論理アドレスP3の上位アドレスP3u及び下位アドレスP3dに用いられる。プロセッサ論理アドレスP3の上位アドレスP3uは、プロセッサ論理アドレスP3からネットワーク論理アドレスN3への変換におけるキーとして用いられる。   The middle address N3m and the lower address N3d of the network logical address N3 are used as the upper address P3u and the lower address P3d of the processor logical address P3. The upper address P3u of the processor logical address P3 is used as a key in the conversion from the processor logical address P3 to the network logical address N3.

アドレス長変換テーブルAT3におけるプロセッサ論理アドレスP3の上位アドレスP3uの示す位置に、ネットワーク論理アドレスN3の上位アドレスN3uが格納される。   The upper address N3u of the network logical address N3 is stored at a position indicated by the upper address P3u of the processor logical address P3 in the address length conversion table AT3.

プロセッサ論理アドレスP3をネットワーク論理アドレスN3に変換する場合、ネットワークアドレス変換部34は、アドレス長変換テーブルAT3におけるプロセッサ論理アドレスP3の上位アドレスP3uの示す位置を参照し、この位置に格納されているネットワーク論理アドレスN3の上位アドレスN3uを求める。   When converting the processor logical address P3 to the network logical address N3, the network address conversion unit 34 refers to the position indicated by the upper address P3u of the processor logical address P3 in the address length conversion table AT3, and stores the network stored at this position. The upper address N3u of the logical address N3 is obtained.

そして、ネットワークアドレス変換部34は、求められたネットワーク論理アドレスN3の上位アドレスN3uに、プロセッサ論理アドレスP3の上位アドレスP3uと下位アドレスP3dとを組み合わせて、ネットワーク論理アドレスN3を求める。   Then, the network address conversion unit 34 obtains the network logical address N3 by combining the upper address N3u of the obtained network logical address N3 with the upper address P3u and the lower address P3d of the processor logical address P3.

図35は、本実施の形態に係るプロセッサ論理アドレスとネットワーク論理アドレスとの第4の関係を示すブロック図である。   FIG. 35 is a block diagram showing a fourth relationship between the processor logical address and the network logical address according to the present embodiment.

ネットワークアドレス変換部34は、ネットワーク論理アドレスN4の上位アドレスN4uと中位アドレスN4mとの組み合わせから、nビット間隔で値を抽出し、この抽出された値をプロセッサ論理アドレスP4の上位アドレスP4uとする。この変換によって、ネットワーク論理アドレスN1の上位アドレスN4uと中位アドレスN4mよりもビット数の少ない、プロセッサ論理アドレスP4の上位アドレスP4uが求められる。このプロセッサ論理アドレスP4の上位アドレスP4uは、プロセッサ論理アドレスP4からネットワーク論理アドレスN4への変換におけるキーとして用いられる。   The network address conversion unit 34 extracts a value at an interval of n bits from the combination of the upper address N4u and the middle address N4m of the network logical address N4, and uses the extracted value as the upper address P4u of the processor logical address P4. . By this conversion, the upper address P4u of the processor logical address P4 having a smaller number of bits than the upper address N4u and the middle address N4m of the network logical address N1 is obtained. The upper address P4u of the processor logical address P4 is used as a key in the conversion from the processor logical address P4 to the network logical address N4.

ネットワーク論理アドレスN4とプロセッサ論理アドレスP4との他の関係、及び、プロセッサ論理アドレスP4からネットワーク論理アドレスN4への変換は、上記図32の場合と同様であるため、説明を省略する。   The other relationship between the network logical address N4 and the processor logical address P4 and the conversion from the processor logical address P4 to the network logical address N4 are the same as in the case of FIG.

図36は、本実施の形態に係るプロセッサ論理アドレスとネットワーク論理アドレスとの第5の関係を示すブロック図である。   FIG. 36 is a block diagram showing a fifth relationship between the processor logical address and the network logical address according to the present embodiment.

ネットワークアドレス変換部34は、ネットワーク論理アドレスN5の上位アドレスN5uと中位アドレスN5mとの組み合わせを、値P(例えば素数)で割った余りの値をプロセッサ論理アドレスP5の上位アドレスP5uとする。この変換によって、ネットワーク論理アドレスN5の上位アドレスN5uと中位アドレスN5mよりもビット数の少ない、プロセッサ論理アドレスP5の上位アドレスP5uが求められる。このプロセッサ論理アドレスP5の上位アドレスP5uは、プロセッサ論理アドレスP5からネットワーク論理アドレスN5への変換におけるキーとして用いられる。   The network address conversion unit 34 sets the remainder obtained by dividing the combination of the upper address N5u and the middle address N5m of the network logical address N5 by the value P (for example, a prime number) as the upper address P5u of the processor logical address P5. By this conversion, an upper address P5u of the processor logical address P5 having a smaller number of bits than the upper address N5u and the middle address N5m of the network logical address N5 is obtained. The upper address P5u of the processor logical address P5 is used as a key in the conversion from the processor logical address P5 to the network logical address N5.

ネットワーク論理アドレスN5とプロセッサ論理アドレスP5との他の関係、及び、プロセッサ論理アドレスP5からネットワーク論理アドレスN5への変換は、上記図32の場合と同様であるため、説明を省略する。   The other relationship between the network logical address N5 and the processor logical address P5 and the conversion from the processor logical address P5 to the network logical address N5 are the same as those in FIG.

なお、ネットワークアドレス変換部34は、ハッシュ関数40の代わりに変換テーブルを用いて、ネットワーク論理アドレスN1〜N5の一部をプロセッサ論理アドレスP1〜P5の一部に変換し、このプロセッサ論理アドレスP1〜P5の一部をアドレス長の変換のキーとして用いてもよい。   The network address conversion unit 34 converts a part of the network logical addresses N1 to N5 into a part of the processor logical addresses P1 to P5 using a conversion table instead of the hash function 40, and the processor logical addresses P1 to P5. A part of P5 may be used as a key for address length conversion.

また、ネットワークアドレス変換部34は、ネットワーク論理アドレスN1〜N5の一部又は全部を登録するテーブルを作成し、このテーブルのアドレスを、プロセッサ論理アドレスP1〜P5からネットワーク論理アドレスN1〜N5への変換で用いるキーとしてもよい。この変換方法においては、複数の情報処理装置37A,37Bのそれぞれがテーブルを管理してもよい。より好ましくは、ネットワーク38に接続される複数の情報処理装置37A,37Bの間でテーブルを共有させ、情報処理装置37A,37Bのそれぞれは、このテーブルのコピーをキャッシュメモリなどにローカルに格納するとしてもよい。   The network address conversion unit 34 creates a table for registering part or all of the network logical addresses N1 to N5, and converts the addresses of this table from the processor logical addresses P1 to P5 to the network logical addresses N1 to N5. It may be used as a key. In this conversion method, each of the plurality of information processing devices 37A and 37B may manage the table. More preferably, a table is shared between a plurality of information processing devices 37A and 37B connected to the network 38, and each of the information processing devices 37A and 37B stores a copy of the table locally in a cache memory or the like. Also good.

上記のアドレスの変換においては、ネットワーク論理アドレスN1〜N5の下位アドレスN1d〜N5dとプロセッサ論理アドレスP1〜P5の下位アドレスP1d〜P5dは変換されることなく使用されているが、このネットワーク論理アドレスN1〜N5の下位アドレスN1d〜N5dとプロセッサ論理アドレスP1〜P5の下位アドレスP1d〜P5dを変換させるとしてもよい。   In the above address conversion, the lower addresses N1d to N5d of the network logical addresses N1 to N5 and the lower addresses P1d to P5d of the processor logical addresses P1 to P5 are used without being converted, but this network logical address N1 The lower addresses N1d to N5d of .about.N5 and the lower addresses P1d to P5d of the processor logical addresses P1 to P5 may be converted.

図37は、本実施の形態に係るネットワークシステム37の仮想アドレス空間の一例を示すブロック図である。   FIG. 37 is a block diagram showing an example of a virtual address space of the network system 37 according to the present embodiment.

本実施の形態においては、ネットワークシステム37の全てのデータにユニークなネットワーク論理アドレスが割り当てられるため、各情報処理装置37A,37Bに共通の仮想アドレス空間41を形成することができる。   In the present embodiment, since a unique network logical address is assigned to all data in the network system 37, a virtual address space 41 common to the information processing apparatuses 37A and 37B can be formed.

図38は、本実施の形態に係るプロセッサ論理アドレスとネットワーク論理アドレスの構成の第1の例を示すブロック図である。   FIG. 38 is a block diagram showing a first example of the configuration of the processor logical address and the network logical address according to the present embodiment.

プロセッサ論理アドレス42は、変換キーと、ファイルアドレス及びオフセットとを含む。   The processor logical address 42 includes a conversion key, a file address, and an offset.

ネットワークアドレス変換部34は、プロセッサ論理アドレス42をネットワーク論理アドレス43に変換する。   The network address conversion unit 34 converts the processor logical address 42 into the network logical address 43.

ネットワーク論理アドレス43は、プロセッサ識別情報(例えば、事業者及び情報処理装置の識別情報)と、ファイルアドレス及びオフセットとを含む。   The network logical address 43 includes processor identification information (for example, identification information of an operator and an information processing device), a file address, and an offset.

メモリ管理装置32Aは、ネットワーク論理アドレス42をネットワーク38経由でメモリ管理装置32Bに送信する。すると、メモリ管理装置32Bは、このネットワーク論理アドレス43のファイルアドレスとオフセットとによって指定されるデータを読み出し、メモリ管理装置32Aに返す。   The memory management device 32A transmits the network logical address 42 to the memory management device 32B via the network 38. Then, the memory management device 32B reads out the data specified by the file address and offset of the network logical address 43 and returns it to the memory management device 32A.

図39は、本実施の形態に係るプロセッサ論理アドレスとネットワーク論理アドレスの構成の第2の例を示すブロック図である。   FIG. 39 is a block diagram showing a second example of the configuration of the processor logical address and the network logical address according to the present embodiment.

プロセッサ論理アドレス44は、変換キーとオフセットとを含む。   The processor logical address 44 includes a translation key and an offset.

ネットワークアドレス変換部34は、プロセッサ論理アドレス44をネットワーク論理アドレス45に変換する。   The network address conversion unit 34 converts the processor logical address 44 into a network logical address 45.

ネットワーク論理アドレス45は、プロセッサ識別情報及びファイルアドレスと、オフセットとを含む。   The network logical address 45 includes processor identification information, a file address, and an offset.

メモリ管理装置32Aは、メモリ管理装置32Aは、ネットワーク論理アドレス45をネットワーク38経由でメモリ管理装置32Bに送信する。すると、メモリ管理装置32Bは、このネットワーク論理アドレス45のファイルアドレスとオフセットとによって指定されるデータを読み出し、メモリ管理装置32Aに返す。   The memory management device 32A transmits the network logical address 45 to the memory management device 32B via the network 38. Then, the memory management device 32B reads the data specified by the file address and offset of the network logical address 45 and returns it to the memory management device 32A.

図40は、本実施の形態に係るプロセッサ論理アドレスとネットワーク論理アドレスの構成の第3の例を示すブロック図である。   FIG. 40 is a block diagram showing a third example of the configuration of the processor logical address and the network logical address according to the present embodiment.

プロセッサ論理アドレス46は、変換キーと、ファイルアドレスとを含む。   The processor logical address 46 includes a conversion key and a file address.

ネットワークアドレス変換部34は、プロセッサ論理アドレス46をネットワーク論理アドレス47に変換する。   The network address conversion unit 34 converts the processor logical address 46 into a network logical address 47.

ネットワーク論理アドレス46は、プロセッサ識別情報とファイルアドレスとを含む。   The network logical address 46 includes processor identification information and a file address.

メモリ管理装置32Aは、ネットワーク論理アドレス47をネットワーク38経由でメモリ管理装置32Bに送信する。すると、メモリ管理装置32Bは、このネットワーク論理アドレス47のファイルアドレスとによって指定されるファイルデータを読み出し、メモリ管理装置32Aに返す。   The memory management device 32A transmits the network logical address 47 to the memory management device 32B via the network 38. Then, the memory management device 32B reads the file data designated by the file address of the network logical address 47 and returns it to the memory management device 32A.

上記のようなアドレス変換の技術的意義について以下に説明する。   The technical significance of the address translation as described above will be described below.

例えば、8ビットCPU(Central Processing Unit)は、プロセッサ3Aとして一般的に使用されている。この8ビットCPUのビット数は、8ビットのレジスタを備える。また、一般的に使用されている8ビットCPUにおいて、アドレスのビット数は16ビットである。   For example, an 8-bit CPU (Central Processing Unit) is generally used as the processor 3A. The number of bits of the 8-bit CPU includes an 8-bit register. Further, in a commonly used 8-bit CPU, the number of bits of the address is 16 bits.

例えば、16ビットCPUは、16ビットのレジスタを備える。一般的に使用されている16ビットCPUにおいて、アドレスのビット数は20ビットである。   For example, a 16-bit CPU includes a 16-bit register. In a commonly used 16-bit CPU, the number of bits of an address is 20 bits.

ゼネラルレジスタには、数値とアドレスのどちらも格納される。したがって、数値のビット数とアドレスのビット数とは一致していることが望ましい。しかしながら、上述したように、レジスタのビット数とアドレスのビット数とは一致していない場合がある。   Both the numerical value and the address are stored in the general register. Therefore, it is desirable that the number of bits in the numerical value and the number of bits in the address match. However, as described above, the number of bits of the register may not match the number of bits of the address.

現状においては、64ビットCPUが普及しつつある。64ビットCPUは十分な演算精度を提供することができる。このため、レジスタのビット数が64ビットを超える必要性は低い。また、CPUの加算器のキャリー処理の観点から、CPUに64ビットを超えるレジスタを備えることは、困難と考えられる。   Currently, 64-bit CPUs are becoming popular. A 64-bit CPU can provide sufficient computational accuracy. For this reason, the necessity that the number of bits of the register exceeds 64 bits is low. In addition, from the viewpoint of carry processing of the CPU adder, it is considered difficult to provide the CPU with a register exceeding 64 bits.

これに対して、アドレスのビット数を増やす必要性は高いと考えられる。その一例としてSingle Level Store(SLS)について説明する。   On the other hand, it is considered highly necessary to increase the number of bits of the address. As an example, Single Level Store (SLS) will be described.

SLSでは、二次記憶装置を含む各種の記憶装置に対して、仮想アドレスが割り付けられる。近年、ネットワークを介して接続されていないローカルの記憶装置は、Tbyteオーダーであるため、仮想アドレスのサイズは、32ビットでは不足し、64ビットであれば足りる。   In SLS, virtual addresses are assigned to various storage devices including secondary storage devices. In recent years, local storage devices that are not connected via a network are in the Tbyte order, so the size of the virtual address is insufficient with 32 bits, and 64 bits are sufficient.

しかしながら、ネットワーク環境で使用される例えば(NAS)などのような記憶装置が使用される場合、又は、ネットワークに接続されている多数の記憶装置にアドレスを割り当てる場合には、仮想アドレスのサイズを例えば128ビットなどのように大きくする必要がある。   However, when a storage device such as (NAS) used in a network environment is used, or when an address is assigned to a large number of storage devices connected to the network, the size of the virtual address is set to, for example, It needs to be as large as 128 bits.

図41は、ネットワークに接続される多数の機器に記憶されるデータをアクセスするために必要なアドレスのビット数を推定する計算の一例を示す図である。   FIG. 41 is a diagram illustrating an example of calculation for estimating the number of bits of an address necessary for accessing data stored in a large number of devices connected to a network.

この図41に示すように、世界中の人間がある程度のデータを記憶することを想定すると、82ビットのネットワーク論理アドレスを用いることでこれらのデータにアクセスすることができる。   As shown in FIG. 41, assuming that humans around the world store a certain amount of data, these data can be accessed using an 82-bit network logical address.

したがって、上述したように、ネットワークシステム37において、プロセッサ3A,3Bのレジスタのビット数と同じプロセッサ論理アドレスから、よりビット数の多いネットワーク用のネットワーク論理アドレスを求めることの意義は大きい。   Therefore, as described above, in the network system 37, it is significant to obtain a network logical address for a network having a larger number of bits from the same processor logical address as the number of bits of the registers of the processors 3A and 3B.

例えは、本実施の形態において、ネットワーク論理アドレスは、128ビットとすることで、ネットワークシステムの全データにアドレスを割り当てることができる。   For example, in this embodiment, by setting the network logical address to 128 bits, the address can be assigned to all data in the network system.

以上説明した本実施の形態においては、ネットワークシステム37で使用される全てのデータに対して、アドレスを割り当てることができる。   In the present embodiment described above, addresses can be assigned to all data used in the network system 37.

本実施の形態においては、ネットワークシステム37に備えられている揮発性半導体メモリ8A及び不揮発性半導体メモリ9Aと、揮発性半導体メモリ8B及び不揮発性半導体メモリ9Bとの間で、例えば、アドレス変換、書き込み先決定、などのような基本的なメモリ管理及びメモリアクセスを共通した方法によって行うことができる。すなわち、本実施の形態に係る各情報処理装置37A,37Bは、アクセス方法、アクセス回数、アクセス頻度などの管理において、自装置に備えられているメモリと、ネットワーク38を介して接続されているメモリとを区別しなくてもよい。   In the present embodiment, for example, address conversion and writing are performed between the volatile semiconductor memory 8A and the nonvolatile semiconductor memory 9A provided in the network system 37, and the volatile semiconductor memory 8B and the nonvolatile semiconductor memory 9B. Basic memory management and memory access, such as pre-determining, can be performed by a common method. That is, each of the information processing devices 37A and 37B according to the present embodiment has a memory provided in its own device and a memory connected via the network 38 in managing the access method, the number of accesses, the access frequency, and the like. And do not have to be distinguished.

本実施の形態においては、情報処理装置37A,37Bによってアクセスされる頻度の高いデータは、その装置内に記憶されるため、ネットワーク38を介した送受信によるアクセス遅延、ネットワークの切断によるアクセスの失敗を防止することができる。   In the present embodiment, data that is frequently accessed by the information processing devices 37A and 37B is stored in the device, so that an access delay due to transmission / reception via the network 38 and an access failure due to network disconnection are prevented. Can be prevented.

本実施の形態においては、ネットワークシステム38上の揮発性半導体メモリ8A及び不揮発性半導体メモリ9Aと、揮発性半導体メモリ8B及び不揮発性半導体メモリ9Bを、メインメモリとして用いることができる。さらに、本実施の形態に係る各情報処理装置37A,37Bは、自装置内のメモリを、他の装置に記憶されているデータを記憶しておくキャッシュメモリとして用いることができる。   In the present embodiment, the volatile semiconductor memory 8A and the nonvolatile semiconductor memory 9A, the volatile semiconductor memory 8B, and the nonvolatile semiconductor memory 9B on the network system 38 can be used as the main memory. Furthermore, each of the information processing apparatuses 37A and 37B according to the present embodiment can use the memory in the own apparatus as a cache memory for storing data stored in other apparatuses.

本実施の形態においては、プロセッサ3A,3Bのレジスタのビット数よりも大きいビット数のアドレスを用いることができ、広大なメモリ空間を使用することができる。   In the present embodiment, an address having a larger number of bits than the number of bits of the registers of the processors 3A and 3B can be used, and a vast memory space can be used.

一般的に、ネットワーク経由で行われないアクセスは、記憶装置へのリード、ライトが行われ、ネットワーク経由で行われるアクセスは、ソケット通信により行われている。リード及びライトと、ソケット通信とでは、アクセス方法が異なっている。また、ネットワーク経由のWebアクセスでは、例えばURLなどを用いた特別なアクセス方法が用いられている。これに対して、本実施の形態においては、ネットワーク経由でアクセスされるか否かに関係なく、ネットワーク論理アドレスに基づいて記憶装置に対するアクセスが行われ、同一のアクセス方法が用いられる。   In general, access that is not performed via the network is performed by reading and writing to the storage device, and access that is performed via the network is performed by socket communication. Access methods differ between read and write and socket communication. For Web access via a network, for example, a special access method using a URL or the like is used. On the other hand, in the present embodiment, the storage device is accessed based on the network logical address regardless of whether the access is made via the network, and the same access method is used.

本実施の形態においては、アドレス長変換テーブルAT,AT1〜AT5に、アドレス長変換フラグが付されており、これにより重複登録を防止することができる。   In the present embodiment, an address length conversion flag is attached to the address length conversion tables AT, AT1 to AT5, thereby preventing duplicate registration.

上記各実施形態において説明した各構成要素は、自由に組み合わせることができ、自由に分割することができる。   The components described in the above embodiments can be freely combined and can be freely divided.

本発明は、上記実施の形態に限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で、種々に変形することが可能である。さらに、上記実施の形態には種々の段階の発明が含まれており、開示される複数の構成要件における適宜な組み合わせにより種々の発明が抽出され得る。   The present invention is not limited to the above-described embodiment, and various modifications can be made without departing from the scope of the invention when it is practiced. Further, the above embodiments include inventions at various stages, and various inventions can be extracted by appropriately combining a plurality of disclosed constituent elements.

1…メモリ管理装置、2…混成メインメモリ、3a〜3b…プロセッサ、4a〜4c…1次キャッシュメモリ、5a〜5c…2次キャッシュメモリ、6a〜6c…プロセス、7…バス、8…揮発性半導体メモリ、9,10,29…不揮発性半導体メモリ、11…メモリ使用情報、12…メモリ固有情報、13…アドレス変換情報、14…カラーリングテーブル、15…処理部、16…作業メモリ、17…情報記憶部、18…アドレス管理部、19…読み出し管理部、20…書き込み管理部、21…カラーリング情報管理部、22…メモリ使用情報管理部、23…再配置部、24…アクセス頻度算出部、25…動的カラー情報管理部、27…オペレーティングシステム、28…キャッシュメモリ、3ma〜3mc…メモリ管理ユニット、cta〜ctc…カウンタ、cia〜cic…カウント情報、30…メモリモジュール、31…ボタン、3A,3B…プロセッサ、8A,8B…揮発性半導体メモリ、9A,9B…不揮発性半導体メモリ、32A,32B…メモリ管理装置、33A…処理部、34…ネットワークアドレス変換部、35…通信部、37…ネットワークシステム、37A,37B…情報処理装置、38…ネットワーク、39A,39B…ネットワークインタフェース装置、AT,AT1〜AT5…アドレス長変換テーブル。   DESCRIPTION OF SYMBOLS 1 ... Memory management apparatus, 2 ... Hybrid main memory, 3a-3b ... Processor, 4a-4c ... Primary cache memory, 5a-5c ... Secondary cache memory, 6a-6c ... Process, 7 ... Bus, 8 ... Volatile Semiconductor memory 9, 10, 29 ... Nonvolatile semiconductor memory, 11 ... Memory usage information, 12 ... Memory specific information, 13 ... Address conversion information, 14 ... Coloring table, 15 ... Processing unit, 16 ... Working memory, 17 ... Information storage unit, 18 ... Address management unit, 19 ... Read management unit, 20 ... Write management unit, 21 ... Coloring information management unit, 22 ... Memory usage information management unit, 23 ... Relocation unit, 24 ... Access frequency calculation unit 25 ... Dynamic color information management unit, 27 ... Operating system, 28 ... Cache memory, 3ma-3mc ... Memory management unit, cta ctc ... counter, cia-cic ... count information, 30 ... memory module, 31 ... button, 3A, 3B ... processor, 8A, 8B ... volatile semiconductor memory, 9A, 9B ... nonvolatile semiconductor memory, 32A, 32B ... memory management Device, 33A ... processing unit, 34 ... network address conversion unit, 35 ... communication unit, 37 ... network system, 37A, 37B ... information processing device, 38 ... network, 39A, 39B ... network interface device, AT, AT1-AT5 ... Address length conversion table.

Claims (6)

第1の半導体メモリと、前記第1の半導体メモリよりもアクセス可能上限回数の小さい不揮発性の第2の半導体メモリと、のうちの少なくとも一方に記憶される各データの特性に基づいて生成され、当該各データの配置領域を決定するヒントとなる配置ヒント情報を記憶する第1の記憶部と、
前記第1の半導体メモリと前記第2の半導体メモリとのそれぞれに対するメモリ固有の特性を示すメモリ固有情報を記憶する第2の記憶部と、
前記第1の半導体メモリと前記第2の半導体メモリとに含まれる各メモリ領域に対する使用状態を示すメモリ使用情報を記憶する第3の記憶部と、
プロセッサから発行されたプロセッサ論理アドレスを、当該プロセッサ論理アドレスよりも長く、ネットワークシステム上のメモリ領域を特定するネットワーク論理アドレスに変換するネットワークアドレス変換部と、
前記第1の半導体メモリと前記第2の半導体メモリとのうちの少なくとも一方に対する書き込み対象データに対する前記配置ヒント情報を生成する第1の管理部と、
前記第1の半導体メモリと前記第2の半導体メモリとのうちの少なくとも一方に対するアクセスが発生した場合に、アクセスされたメモリ領域に対する前記メモリ使用情報を更新する第2の管理部と、
前記配置ヒント情報と前記メモリ使用情報と前記メモリ固有情報とに基づいて、前記書き込み対象データに対して前記第1の半導体メモリと前記第2の半導体メモリとのメモリ領域の中から、書き込み領域を決定する第3の管理部と、
前記書き込み対象データの前記ネットワーク論理アドレスと前記書き込み領域の物理アドレスとを関連付けたアドレス変換情報を第4の記憶部に記憶する第4の管理部と、
読み出し対象データの前記ネットワーク論理アドレスと前記アドレス変換情報とに基づいて、前記読み出し対象データを前記第1の半導体メモリと前記第2の半導体メモリとのうちのいずれかから読み出す第5の管理部と
を具備するメモリ管理装置。
Generated based on characteristics of each data stored in at least one of the first semiconductor memory and the non-volatile second semiconductor memory having a lower accessible upper limit than the first semiconductor memory, A first storage unit that stores arrangement hint information serving as a hint for determining the arrangement area of each data;
A second storage unit for storing memory specific information indicating memory specific characteristics for each of the first semiconductor memory and the second semiconductor memory;
A third storage unit for storing memory use information indicating a use state of each memory area included in the first semiconductor memory and the second semiconductor memory;
A network address conversion unit that converts a processor logical address issued by a processor to a network logical address that is longer than the processor logical address and identifies a memory area on the network system;
A first management unit that generates the placement hint information for data to be written to at least one of the first semiconductor memory and the second semiconductor memory;
A second management unit that updates the memory use information for the accessed memory area when access to at least one of the first semiconductor memory and the second semiconductor memory occurs;
Based on the placement hint information, the memory use information, and the memory specific information, a write area is selected from the memory areas of the first semiconductor memory and the second semiconductor memory for the write target data. A third manager to determine;
A fourth management unit that stores, in a fourth storage unit, address conversion information that associates the network logical address of the write target data with the physical address of the write area;
A fifth management unit that reads the read target data from either the first semiconductor memory or the second semiconductor memory based on the network logical address of the read target data and the address conversion information; A memory management device comprising:
前記ネットワーク論理アドレスを、前記ネットワークを介して他の装置に対して送信及び受信する通信部をさらに具備する請求項1記載のメモリ管理装置。   The memory management device according to claim 1, further comprising a communication unit that transmits and receives the network logical address to another device via the network. 前記メモリ固有情報は、前記ネットワークシステム上の前記第1の半導体メモリと前記第2の半導体メモリのそれぞれに対するメモリ固有の特性を示し、
前記第1の管理部は、前記ネットワークシステム上の各データの前記配置ヒント情報を管理し、
前記第2の管理部は、前記ネットワークシステム上の前記第1の半導体メモリと前記第2の半導体メモリとの各メモリ領域に対するメモリ使用情報を管理する
ことを特徴とする請求項1又は請求項2記載のメモリ管理装置。
The memory specific information indicates memory specific characteristics for each of the first semiconductor memory and the second semiconductor memory on the network system,
The first management unit manages the placement hint information of each data on the network system,
The second management unit manages memory use information for each memory area of the first semiconductor memory and the second semiconductor memory on the network system. The memory management device described.
前記プロセッサ論理アドレスは、アドレス長の変換キーとなる第1のプロセッサアドレス部と、前記ネットワーク論理アドレスの一部と同じ第2のプロセッサアドレス部とを具備し、
前記ネットワーク論理アドレスは、前記変換キーに基づいて変換され、前記変換キーよりも大きいビット数の第1のネットワークアドレス部と、前記第2のプロセッサアドレスと同じ第2のネットワークアドレス部とを具備し、
前記ネットワークアドレス変換部は、前記第1のプロセッサアドレス部と前記第1のネットワークアドレス部とを関連付けたアドレス長変換テーブルを参照し、前記第1のネットワークアドレス部と前記第2のプロセッサアドレス部とを組み合わせて、前記ネットワーク論理アドレスを生成する
ことを特徴とする請求項1乃至請求項3のいずれか1項に記載のメモリ管理装置。
The processor logical address includes a first processor address portion serving as a conversion key for an address length, and a second processor address portion that is the same as a part of the network logical address.
The network logical address is converted based on the conversion key, and includes a first network address portion having a larger number of bits than the conversion key, and a second network address portion that is the same as the second processor address. ,
The network address conversion unit refers to an address length conversion table in which the first processor address unit and the first network address unit are associated, and the first network address unit, the second processor address unit, 4. The memory management device according to claim 1, wherein the network logical address is generated in combination.
前記アドレス長変換テーブルの各エントリに、有効又は無効を示すフラグを付すことを特徴とする請求項4記載のメモリ管理装置。   5. The memory management device according to claim 4, wherein a flag indicating validity or invalidity is attached to each entry of the address length conversion table. 第1の半導体メモリと、前記第1の半導体メモリよりもアクセス可能上限回数の小さい不揮発性の第2の半導体メモリとのうちの少なくとも一方に記憶される各データの特性に基づいて生成され、当該各データの配置領域を決定するヒントとなる配置ヒント情報を生成すること、
前記第1の半導体メモリと前記第2の半導体メモリとに含まれる各メモリ領域に対する使用状態を示すメモリ使用情報を管理すること、
プロセッサから発行されたプロセッサ論理アドレスを、当該プロセッサ論理アドレスよりも長く、ネットワークシステム上のメモリ領域を特定するネットワーク論理アドレスに変換すること、
前記配置ヒント情報と、前記メモリ使用情報と、前記第1の半導体メモリと前記第2の半導体メモリとのそれぞれに対するメモリ固有の特性を示すメモリ固有情報とに基づいて、書き込み対象データに対して前記第1の半導体メモリと前記第2の半導体メモリとのメモリ領域の中から、書き込み領域を決定すること、
前記書き込み対象データの前記ネットワーク論理アドレスと前記書き込み領域の物理アドレスとを関連付けたアドレス変換情報を記憶すること、
読み出し対象データの前記ネットワーク論理アドレスと前記アドレス変換情報とに基づいて、前記読み出し対象データを前記第1の半導体メモリと前記第2の半導体メモリとのうちのいずれかから読み出すこと
を含むメモリ管理方法。
Generated based on characteristics of each data stored in at least one of the first semiconductor memory and the non-volatile second semiconductor memory having a lower accessible upper limit number than the first semiconductor memory, Generating placement hint information that serves as a hint for determining the placement area of each data;
Managing memory usage information indicating a usage state of each memory area included in the first semiconductor memory and the second semiconductor memory;
Converting a processor logical address issued by a processor into a network logical address that is longer than the processor logical address and identifies a memory area on the network system;
Based on the placement hint information, the memory usage information, and memory specific information indicating memory specific characteristics for each of the first semiconductor memory and the second semiconductor memory, Determining a write area from memory areas of the first semiconductor memory and the second semiconductor memory;
Storing address translation information that associates the network logical address of the write target data with the physical address of the write area;
A memory management method including reading the read target data from either the first semiconductor memory or the second semiconductor memory based on the network logical address of the read target data and the address conversion information .
JP2010048329A 2009-07-17 2010-03-04 Memory management device and method Pending JP2011186554A (en)

Priority Applications (8)

Application Number Priority Date Filing Date Title
JP2010048329A JP2011186554A (en) 2010-03-04 2010-03-04 Memory management device and method
KR1020117029315A KR20120068765A (en) 2009-07-17 2010-03-08 Memory management device
TW099106706A TWI460588B (en) 2009-07-17 2010-03-08 Memory management device and memory information processing device
CN201080031863.5A CN102473140B (en) 2009-07-17 2010-03-08 Memory management device
EP10799661.3A EP2455865B1 (en) 2009-07-17 2010-03-08 Memory management device
PCT/JP2010/053817 WO2011007599A1 (en) 2009-07-17 2010-03-08 Memory management device
US13/351,582 US20120191900A1 (en) 2009-07-17 2012-01-17 Memory management device
US14/938,589 US10776007B2 (en) 2009-07-17 2015-11-11 Memory management device predicting an erase count

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010048329A JP2011186554A (en) 2010-03-04 2010-03-04 Memory management device and method

Publications (1)

Publication Number Publication Date
JP2011186554A true JP2011186554A (en) 2011-09-22

Family

ID=44792771

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010048329A Pending JP2011186554A (en) 2009-07-17 2010-03-04 Memory management device and method

Country Status (1)

Country Link
JP (1) JP2011186554A (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016009275A (en) * 2014-06-23 2016-01-18 キヤノン株式会社 Information processing device, information processing method, and computer program
WO2023030227A1 (en) * 2021-08-31 2023-03-09 华为技术有限公司 Data processing method, apparatus and system
CN117809724A (en) * 2024-03-01 2024-04-02 四川云海芯科微电子科技有限公司 NAND Flash wear balancing method based on life test

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07296591A (en) * 1994-04-25 1995-11-10 Matsushita Electric Ind Co Ltd Electronic equipment
JPH0816482A (en) * 1994-06-29 1996-01-19 Hitachi Ltd Storage device using flash memory, and its storage control method
JPH08272664A (en) * 1995-03-30 1996-10-18 Nec Corp File system for flash memory
JPH10116225A (en) * 1996-10-14 1998-05-06 Hitachi Ltd Address converting circuit and multiprocessor system
JPH11353219A (en) * 1998-06-08 1999-12-24 Matsushita Graphic Communication Systems Inc Data storing device
JP2003178039A (en) * 1992-03-27 2003-06-27 Matsushita Electric Ind Co Ltd Distributed shared virtual memory and its constituting method
JP2004535615A (en) * 2001-03-08 2004-11-25 インターナショナル・ビジネス・マシーンズ・コーポレーション Shared I / O in partitioned processing environment
JP2007305210A (en) * 2006-05-10 2007-11-22 Toshiba Corp Semiconductor storage device
JP2009048613A (en) * 2007-08-14 2009-03-05 Samsung Electronics Co Ltd Solid state memory, computer system including the same, and its operation method
JP2010009500A (en) * 2008-06-30 2010-01-14 Canon Finetech Inc Nonvolatile memory controller and control method, and inkjet recorder
JP2011503768A (en) * 2007-11-19 2011-01-27 サンドフォース インコーポレイテッド Writing data to different storage devices based on write frequency

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003178039A (en) * 1992-03-27 2003-06-27 Matsushita Electric Ind Co Ltd Distributed shared virtual memory and its constituting method
JPH07296591A (en) * 1994-04-25 1995-11-10 Matsushita Electric Ind Co Ltd Electronic equipment
JPH0816482A (en) * 1994-06-29 1996-01-19 Hitachi Ltd Storage device using flash memory, and its storage control method
JPH08272664A (en) * 1995-03-30 1996-10-18 Nec Corp File system for flash memory
JPH10116225A (en) * 1996-10-14 1998-05-06 Hitachi Ltd Address converting circuit and multiprocessor system
JPH11353219A (en) * 1998-06-08 1999-12-24 Matsushita Graphic Communication Systems Inc Data storing device
JP2004535615A (en) * 2001-03-08 2004-11-25 インターナショナル・ビジネス・マシーンズ・コーポレーション Shared I / O in partitioned processing environment
JP2007305210A (en) * 2006-05-10 2007-11-22 Toshiba Corp Semiconductor storage device
JP2009048613A (en) * 2007-08-14 2009-03-05 Samsung Electronics Co Ltd Solid state memory, computer system including the same, and its operation method
JP2011503768A (en) * 2007-11-19 2011-01-27 サンドフォース インコーポレイテッド Writing data to different storage devices based on write frequency
JP2010009500A (en) * 2008-06-30 2010-01-14 Canon Finetech Inc Nonvolatile memory controller and control method, and inkjet recorder

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016009275A (en) * 2014-06-23 2016-01-18 キヤノン株式会社 Information processing device, information processing method, and computer program
WO2023030227A1 (en) * 2021-08-31 2023-03-09 华为技术有限公司 Data processing method, apparatus and system
CN117809724A (en) * 2024-03-01 2024-04-02 四川云海芯科微电子科技有限公司 NAND Flash wear balancing method based on life test

Similar Documents

Publication Publication Date Title
US11669444B2 (en) Computing system and method for controlling storage device
US11467955B2 (en) Memory system and method for controlling nonvolatile memory
CN109726139B (en) Memory system and control method
EP2455865B1 (en) Memory management device
US20100332730A1 (en) Method and system for managing a nand flash memory
JP2011186555A (en) Memory management device and method
JP2010186477A (en) Memory system and wear level management method thereof
CN114372007A (en) Memory system and control method for controlling nonvolatile memory
JP2011186562A (en) Memory management device and method
JP2011186561A (en) Memory management device
JP2011186553A (en) Memory management device
JP2011186563A (en) Device and method for managing memory
JP5322978B2 (en) Information processing apparatus and method
JP2011186558A (en) Memory management device and method
JP2011186554A (en) Memory management device and method
JP2011186559A (en) Memory management device
JP7524443B2 (en) MEMORY SYSTEM AND CONTROL METHOD - Patent application
JP2011186557A (en) Memory management device and method

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120305

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130625

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20131203

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20131205

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20131212