JP5322978B2 - 情報処理装置及び方法 - Google Patents

情報処理装置及び方法 Download PDF

Info

Publication number
JP5322978B2
JP5322978B2 JP2010048332A JP2010048332A JP5322978B2 JP 5322978 B2 JP5322978 B2 JP 5322978B2 JP 2010048332 A JP2010048332 A JP 2010048332A JP 2010048332 A JP2010048332 A JP 2010048332A JP 5322978 B2 JP5322978 B2 JP 5322978B2
Authority
JP
Japan
Prior art keywords
data
information
memory
color
frequency
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2010048332A
Other languages
English (en)
Other versions
JP2011186556A (ja
Inventor
敦 国松
勉 畦崎
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Corp
Original Assignee
Toshiba Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority to JP2010048332A priority Critical patent/JP5322978B2/ja
Application filed by Toshiba Corp filed Critical Toshiba Corp
Priority to EP10799661.3A priority patent/EP2455865B1/en
Priority to KR1020117029315A priority patent/KR20120068765A/ko
Priority to CN201080031863.5A priority patent/CN102473140B/zh
Priority to TW099106706A priority patent/TWI460588B/zh
Priority to PCT/JP2010/053817 priority patent/WO2011007599A1/ja
Publication of JP2011186556A publication Critical patent/JP2011186556A/ja
Priority to US13/351,582 priority patent/US20120191900A1/en
Application granted granted Critical
Publication of JP5322978B2 publication Critical patent/JP5322978B2/ja
Priority to US14/938,589 priority patent/US10776007B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Techniques For Improving Reliability Of Storages (AREA)
  • Memory System (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、情報の共有化を実現する情報処理装置及び方法に関する。
従来の情報処理装置においては、プロセッサの主記憶装置(メインメモリ)として、例えばDRAM(Dynamic Random Access Memory)などの揮発性半導体メモリが使用されている。さらに、従来の情報処理装置では、揮発性半導体メモリと組み合わせて、不揮発性半導体メモリが2次記憶装置として使用される。
特開2008−242944号公報(特許文献1)には、統合メモリ管理装置が提案されている。この統合メモリ管理装置では、MPUに対するメインメモリとしてNAND型フラッシュメモリが用いられている。さらに、特許文献1では、MPUの1次キャッシュメモリと、2次キャッシュメモリと、メインメモリであるNAND型フラッシュメモリとが同一のメモリ階層で扱われる。統合メモリ管理装置のキャッシュコントローラは、1次キャッシュメモリ及び2次キャッシュメモリに対するメモリ管理に加えて、メインメモリに対するメモリ管理を実行する。
特開平7−146820号公報(特許文献2)には、情報処理装置の主記憶装置としてフラッシュメモリを採用する技術が開示されている。特許文献2において、システムのメモリバスには、揮発性メモリであるキャッシュメモリを介して、フラッシュメモリが接続される。キャッシュメモリには、このキャッシュメモリに格納されているデータのアドレス又はアクセス履歴などの情報を記録するアドレスアレイが設けられる。コントローラは、アクセス先のアドレスを参照し、キャッシュメモリ又はフラッシュメモリのデータをメモリバスに供給し、あるいは、メモリバスのデータを格納する。
特開2001−266580号公報(特許文献3)においては、種類の異なる半導体メモリ装置を共通のバスに接続することを可能にする発明が開示されている。
この特許文献3の半導体メモリ装置は、ランダムアクセスメモリチップと、前記ランダムアクセスメモリチップを備えたパッケージを含む。前記パッケージは、前記ランダムアクセスメモリチップを外部装置に電気的に連結する複数のピンを有する。複数のピンは、前記ランダムアクセスメモリと、電気的に消去及びプログラム可能な不揮発性半導体メモリとに、共通にメモリ機能を提供する。前記複数のピンの各々は、不揮発性半導体メモリの対応するピンの位置に配列されている。
一般的に、不揮発性半導体メモリは、正常にアクセス可能な上限の回数が揮発性半導体メモリよりも少ない。
特開2008−242944号公報 特開平7−146820号公報 特開2001−266580号公報
本発明は、不揮発性半導体メモリの寿命を長期化するための情報の共有化を実現する情報処理装置及び方法を提供することを目的とする。
本発明の一態様に係る情報処理装置は、第1の半導体メモリと、前記第1の半導体メモリよりもアクセス可能上限回数の小さい不揮発性の第2の半導体メモリとのうちの少なくとも一方に記憶されるデータの特性に基づいて生成され、当該データの配置領域を決定するヒントとなる配置ヒント情報と、データ識別情報とを関連付けたプロファイル情報を記憶する記憶部と、前記第1の半導体メモリと前記第2の半導体メモリをアクセスする装置から、前記データ識別情報を含むダウンロード要求を受信する受信部と、前記ダウンロード要求が受信された場合に、前記ダウンロード要求に含まれているデータ識別情報に基づいて、前記記憶部から前記プロファイル情報を読み出す管理部と、前記読みされたプロファイル情報を、前記ダウンロード要求の発信元の前記装置に送信する送信部とを具備する。
上記の態様は情報処理装置として表現されている。しかしながら、これに限らず、上記の態様は、情報処理方法、サーバ装置、ネットワークシステム、プログラム、プログラムを記録した記録媒体などで表現されるとしてもよい。
本発明においては、不揮発性半導体メモリの寿命を長期化するための情報を共有化することができる。
本発明の第1の実施形態に係るメモリ管理装置及び情報処理装置の構成の一例を示すブロック図。 第1の実施形態に係るメモリ管理装置及び情報処理装置の構成の一例を示すブロック図。 第1の実施形態に係る混成メインメモリのメモリマップの一例を示す図。 第1の実施形態に係るアドレス変換情報の一例を示す図。 第1の実施形態に係るカラーリングテーブルの一例を示す図。 第1の実施形態に係る静的カラー情報の一例を説明するための図。 第1の実施形態に係るデータ配置の処理の一例を示すフローチャート。 第1の実施形態に係るカラーリングテーブルの構成の一例を示す図。 各種データに対する静的カラー情報の設定の第1の例を示す図。 各種データに対する静的カラー情報の設定の第2の例を示す図。 第1の実施形態に係るカラーリングテーブルの生成処理の一例を示すフローチャート。 第1の実施形態に係るカラーリングテーブルのエントリの生成処理の一例を示すフローチャート。 カラーリングテーブルのエントリのアライメントの第1の例を示す図。 カラーリングテーブルのエントリのアライメントの第2の例を示す図。 動的カラー情報と静的カラー情報に基づいて動的書き込み頻度DW_colorと動的読み出し頻度DR_colorを算出する方法の一例を示す図。 第1の実施形態に係るデータの読み出し処理の一例を示すフローチャート。 第1の実施形態に係るデータの読み出し方式の決定処理の一例を示すフローチャート。 第1の実施形態に係るデータの書き込み処理の一例を示すフローチャート。 第1の実施形態に係るデータの書き込み先領域の決定処理の一例を示すフローチャート。 第1の実施形態に係るデータに対する書き込み対象ブロックの決定処理について説明するための図。 不揮発性半導体メモリの任意のブロック領域における消去回数の推移の一例を示すグラフ。 ウェアレベリングにおいて消去回数の差に対する閾値を小さく設定した場合の変化の一例を示すグラフ。 消去回数に応じたブロック領域のグループ分けの一例を示すグラフ。 消去回数に応じたブロック領域のグループ分けの判断基準を表す図。 ウェアレベリングにおけるブロック領域の検索の一例を示す図。 キャッシュメモリを備えたメモリ管理装置の一例を示すブロック図。 メモリ管理装置、混成メインメモリ、プロセッサの実装例を示すブロック図。 第1の実施形態に係るメモリ管理装置と情報処理装置の別構成態様の一例を示すブロック図。 複数の不揮発性半導体メモリを管理する複数のメモリ管理装置の一例を示す斜視図。 本発明の第2の実施形態に係る情報処理装置及びネットワークシステムの構成の一例を示す図。 第2の実施形態に係るプロファイル情報管理部の処理の一例を示すフローチャート。 第2の実施形態に係るユーザ端末によるプロファイル情報のアップロード処理の一例を示すフローチャート。 第2の実施形態に係るユーザ端末によるプロファイル情報のダウンロード処理の一例を示すフローチャート
以下、図面を参照しながら本発明の各実施の形態について説明する。なお、以下の説明において、略又は実質的に同一の機能及び構成要素については、同一符号を付し、必要に応じて説明を行う。
(第1の実施形態)
図1を参照して、本発明の第1の実施形態に係るメモリ管理装置1及び情報処理装置100について説明する。図1は、本実施形態に係るメモリ管理装置及び情報処理装置の構成の一例を示すブロック図である。
情報処理装置100は、メモリ管理装置1と、混成メインメモリ2と、プロセッサ3a,3b,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の実行においては、仮想アドレスによりデータを指定する。
プロセッサ3a,3b,3cは、データ(書き込み対象データ)を混成メインメモリ2に書き込む場合には、書き込み要求を発生させる。また、プロセッサ3a,3b,3cは、データ(読み出し対象データ)を混成メインメモリ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からデータを読み出す場合には、ページテーブルにより仮想アドレスを論理アドレスに変換し、論理アドレスにより読み出し対象データを指定する。
なお、以下において、1次キャッシュメモリ4a,4b,4c、2次キャッシュメモリ5a,5b,5c、又は混成メインメモリ2に対する書き込み、読み出しを総称して「アクセス」と表現する。
メモリ管理装置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に対するアクセスを管理する。詳細については後述する。
混成メインメモリ2は、第1のメモリ、第2のメモリ、及び第3のメモリを備えている。第1のメモリは、第2のメモリよりもアクセス可能上限回数が多い。第2のメモリは、第3のメモリよりもアクセス可能上限回数が多い。ここでアクセス可能上限回数とは、統計的に予想される期待値であって、常にこの関係が保証されることを意味してはいないことに注意されたい。
本実施形態では、第1のメモリは揮発性半導体メモリ8であるとする。揮発性半導体メモリ8としては、例えば、DRAM(Dynamic Random Access Memory)、FPM−DRAM、EDO−DRAM、SDRAMなどのような、一般的なコンピュータにおいてメインメモリとして利用されるメモリが用いられる。また、DRAM程度の高速ランダムアクセスが可能であり、アクセス可能上限回数に実質的な制限が無いのであれば、MRAM(Magnetoresistive Random Access Memory)、FeRAM(Ferroelectric Random Access Memory)などの不揮発性ランダムアクセスメモリを採用してもよい。
第2のメモリは不揮発性半導体メモリ9であるとする。不揮発性半導体メモリ9としては、例えば、SLC(Single Level Cell)タイプのNAND型フラッシュメモリが用いられる。SLCは、MLC(Multi Level Cell)と比較して、読み出し及び書き込みが高速であり、信頼性が高い。しかしながら、SLCは、MLCと比較して、ビットコストが高く、大容量化には向いていない。
第3のメモリは不揮発性半導体メモリ10であるとする。不揮発性半導体メモリ10としては、例えば、MLCタイプのNAND型フラッシュメモリが用いられる。MLCは、SLCと比較して、読み出し及び書き込みが低速であり、信頼性が低い。しかしながら、MLCは、SLCと比較して、ビットコストが低く、大容量化に向いている。
なお、本実施形態では、不揮発性半導体メモリ9がSLCタイプのNAND型フラッシュメモリであり、不揮発性半導体メモリ10がMLCタイプのNAND型フラッシュメモリであるが、例えば、不揮発性半導体メモリ9が2bit/CellのMLCタイプのNAND型フラッシュメモリであり、不揮発性半導体メモリ10が3bit/CellのMLCタイプのNAND型フラッシュメモリであってもよい。
信頼性とは、記憶装置からデータを読み出す場合におけるデータの欠損の起こりにくさの程度(耐久性)を意味する。SLCの耐久性は、MLCの耐久性よりも高い。ここで、耐久性が高いとは、アクセス可能上限回数が多く、耐久性が低いとは、アクセス可能上限回数が少ないことを意味する。
SLCは1つのメモリセルに1ビットの情報を記憶可能である。一方、MLCは1つのメモリセルに2ビット以上の情報を記憶可能である。すなわち、本実施形態に係る混成メインメモリ2は、第1に、揮発性メモリ8、第2に、不揮発性半導体メモリ9、第3に、不揮発性半導体メモリ10、の順で耐久性が高い。
NAND型フラッシュメモリなどの不揮発性半導体メモリ9,10は、揮発性半導体メモリ8と比較して、安価で大容量化が可能である。不揮発性半導体メモリ9,10としては、NAND型フラッシュメモリに代えて、例えばNOR型フラッシュメモリなどのような他の種類のフラッシュメモリ、PRAM(Phase change memory)、ReRAM(Resistive Random access memory)を用いることもできる。
なお、第3のメモリとしてMLCを採用し、第2のメモリとして、MLCの下位ページのみを使用してデータ書き込みを行う擬似SLCモードが利用可能なMLCを採用してもよい。この場合、第2のメモリと第3のメモリとを共通のチップのみで構成することが可能であり、製造コスト面で有利となる。
メインメモリとして不揮発性半導体メモリ9,10を利用する場合と、2次記憶装置として不揮発性半導体メモリ9,10を利用する場合とを比較すると、メインメモリとして不揮発性半導体メモリ9,10を使用した場合にはこの不揮発性半導体メモリ9,10へのアクセス頻度が高くなる。本実施形態においては、揮発性半導体メモリ8とSLCの不揮発性半導体メモリ9とMLCの不揮発性半導体メモリ10とを混成してメインメモリとする混成メインメモリ2を備えた情報処理装置を実現している。混成メインメモリ2は、異機種混在型の主記憶装置であり、メモリ管理装置1によってデータの配置が管理される。
不揮発性半導体メモリ9,10の所定の領域には、メモリ使用情報11、メモリ固有情報12、アドレス変換情報13、カラーリングテーブル14が記憶されている。
メモリ使用情報11は、不揮発性半導体メモリ9,10の各ページ領域の書き込み発生回数及び読み出し発生回数と、各ブロック領域の消去回数と、使用中領域サイズを含む。
メモリ固有情報12は、揮発性半導体メモリ8のメモリサイズと、不揮発性半導体9、10のメモリサイズと、不揮発性半導体メモリ9,10のページサイズ及びブロックサイズと、各領域のアクセス可能上限回数(書き込み可能上限回数、読み出し可能上限回数、消去可能上限回数)と、を含む。ここで、ページサイズとは、不揮発性半導体メモリ9,10の書き込み、読み出しのデータサイズの単位である。ブロックサイズとは、不揮発性半導体メモリ9,10のデータ消去サイズの単位である。不揮発性半導体メモリ9,10において、ブロックサイズはページサイズよりも大きい。
アドレス変換情報13は、プロセッサ3a,3b,3cから与えられる論理アドレスを、論理アドレスに対応する物理アドレスに変換する情報である。アドレス変換情報13の詳細については後述する。
カラーリングテーブル14は、データ毎のカラーリング情報が保持するテーブルである。カラーリング情報は、静的カラー情報と動的カラー情報を含む。詳細は後述する。
次に、図2を参照して、本実施形態に係るメモリ管理装置とオペレーティングシステムとについてさらに説明する。図2は、本実施形態に係るメモリ管理装置1及び情報処理装置100の構成の一例を示すブロック図である。図2では、図1のプロセッサ3a,3b,3cのうちプロセッサ3bを代表として説明するが、他のプロセッサ3a,3cについても同様である。
オペレーティングシステム27は、プロセッサ3bにより実行される。オペレーティングシステム27は、プロセッサ3bで実行され、情報記憶部17に格納されているカラーリングテーブル14にアクセスする権限を有する。
メモリ管理装置1の処理部15は、アドレス管理部18、読み出し管理部19、書き込み管理部20、カラーリング情報管理部21、メモリ使用情報管理部22、再配置部23を備える。さらに、カラーリング情報管理部21は、アクセス頻度算出部24、動的カラー情報管理部25を備える。
処理部15は、情報記憶部17に記憶されている情報に基づいて、作業メモリ16を使用しつつ各種処理を実行する。
作業メモリ16は、例えばバッファとして利用され、各種のデータ変換などの作業領域として使用される。
処理部15に備えられている上記機能ブロックは、ハードウェア及びソフトウェア(例えばオペレーティングシステム27、ファームウェア等)のいずれか一方、又は両者の組み合わせとして実現することができる。これらの機能ブロックが、ハードウェアとして実現されるか、又はソフトウェアとして実現されるかは、具体的な実施形態、又は情報処理装置100全体に課せられた設計制約に依存する。当業者は、具体的な実施形態毎に、様々な方法でこれらの機能を実現し得るが、そのような実現を決定することは本発明の範疇に含まれるものである。なお、以下の説明において用いられる機能ブロックについても同様である。
アドレス管理部18は、論理アドレスに対して物理アドレスを割り当て、アドレス変換情報13に記憶する。これにより、処理部15は、アドレス変換情報13を参照することにより、論理アドレスに対応する物理アドレスを取得することができる。
読み出し管理部19は、プロセッサ3a,3b,3cが読み出し要求を発生した場合に、混成メインメモリ2に対して読み出し対象データの読み出し処理を管理する。
書き込み管理部20は、プロセッサ3a,3b,3cが書き込み要求を発生した場合に、混成メインメモリ2に対して書き込み対象データを書き込む処理を管理する。
カラーリング情報管理部21は、カラーリングテーブル14を管理する。
メモリ使用情報管理部22は、混成メインメモリ2のメモリ使用情報11を管理する。
再配置部23は、プロセッサ3a,3b,3cの動作と非同期に、カラーリングテーブル14に含まれているカラーリング情報に基づき、任意の論理アドレスに対応する物理アドレスに配置されているデータの再配置を行う。再配置部23は、例えば、後述する動的カラー情報に基づき、不揮発性半導体メモリ10に含まれるデータのうち、読み出し頻度、書き込み頻度が高いデータを、定期的に、不揮発性半導体メモリ9に再配置する。また、再配置部23は、例えば、動的カラー情報に基づき、不揮発性半導体メモリ9に含まれるデータのうち、読み出し頻度、書き込み頻度が低いデータを、定期的に、不揮発性半導体メモリ10に再配置する。同様に、再配置部23は、揮発性半導体メモリ8、不揮発性半導体メモリ9,10の間でもデータの再配置を行うことが可能である。後述する書き込み管理部20による書き込み処理は、データの更新が発生するたびに、書き込み先メモリ領域の判断処理と書き込み先ブロック領域の判断処理を行うことで再配置を行う。これに対し、再配置部23はデータの再配置を定期的に行う。再配置部23がデータの再配置を行う場合、書き込み管理部20及び読み出し管理部19は再配置が終了するまで動作しない。再配置部23の動作開始のトリガは、開発者によって設定された周期や、ユーザインターフェースにて設定可能な周期としてもよい。また、情報処理装置100が休止状態になる時に再配置部23が動作してもよい。
アクセス頻度算出部24は、カラーリングテーブル14に含まれているカラーリング情報に基づき、データのアクセス頻度情報(動的書き込み頻度DW_color、動的読み出し頻度DR_color)を算出する。
動的カラー情報管理部25は、カラーリングテーブル14に含まれている動的カラー情報を管理する。
次に、図3を参照して、本実施形態に係る混成メインメモリについて説明する。図3は、本実施形態に係る混成メインメモリ2のメモリマップの一例を示す図である。
混成メインメモリ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領域を総称して、メモリ領域と称する。
揮発性半導体メモリ8は、例えば、128MByteのDRAM領域から構成される。
不揮発性半導体メモリ9は、例えば、2GByteのB領域と128MByteのB冗長ブロック領域と、2GByteのC領域と128MByteのC冗長ブロック領域から構成される。不揮発性半導体メモリ9の各メモリ領域は、SLCタイプのNAND型フラッシュメモリである。
不揮発性半導体メモリ10は、例えば、4GByteのA領域と128MByteのA冗長ブロック領域から構成される2bit/Cell領域と、4GByteのD領域と128MByteのD冗長ブロック領域から構成される3bit/Cellと、4GByteのE領域と128MByteのE冗長ブロック領域から構成される4bit/Cell領域とにより構成される。不揮発性半導体メモリ10の各メモリ領域は、MLCタイプのNAND型フラッシュメモリである。図3に示すように、メモリ領域には、物理アドレスが割り付けられる。
混成メインメモリ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領域に割り付けられたメモリ空間情報(消去可能上限回数、読み出し可能上限回数を含む)を含む。
次に、図4を参照して、本実施形態に係るアドレス変換情報(アドレス変換テーブル)13について説明する。図4は、本実施形態に係るアドレス変換情報13の一例を示す図である。
アドレス変換情報13では、論理アドレス、揮発性半導体メモリ8の物理アドレス、不揮発性半導体メモリ9,10の物理アドレス、有効/無効フラグが、テーブル形式で管理される。
アドレス変換情報13の各エントリには、論理アドレス、この論理アドレスに対応する揮発性半導体メモリ8の物理アドレスと不揮発性半導体メモリ9,10の物理アドレスとのうちの少なくとも一つ、有効/無効フラグが登録される。
有効/無効フラグは、各エントリが有効であるか否かを示す情報である。有効/無効フラグは、1のときに有効、0のときに無効を表す。エントリの有効/無効フラグの初期値は0である。有効/無効フラグが0のエントリは、論理アドレスのマッピングされていないエントリ、又は、論理アドレスがマッピングされたが消去されたエントリである。有効/無効フラグが1のエントリには、論理アドレスがマッピングされており、揮発性半導体メモリ8と不揮発性半導体メモリ9,10とのうちの少なくとも一方に、論理アドレスに対応する物理アドレスが存在する。
なお、図4に示すアドレス変換情報13の例では、アドレス変換情報13の1エントリで論理アドレス、揮発性半導体メモリ8の物理アドレス、不揮発性半導体メモリ9,10の物理アドレスを管理しているが、例えば、アドレス変換情報13では論理アドレスと不揮発性半導体メモリ8の物理アドレスを管理し、論理アドレスと揮発性半導体メモリ9,10の物理アドレスは、別のタグRAMで管理してもよい。この場合、論理アドレスから物理アドレスへ変換する際には、まず、タグRAMが参照され、タグRAMに当該論理アドレスに対応する物理アドレスがない場合に、アドレス変換情報13が参照される。
次に、図5を参照して、本実施形態に係るカラーリングテーブル14について説明する。図5は、本実施形態に係るカラーリングテーブル14の一例を示す図である。
本実施形態では、データ毎にカラーリング情報が付与される。カラーリング情報が付与されるデータのデータサイズ単位は、例えば、読み出し、書き込みの最小の単位である。例えば、読み出し、書き込みの最小の単位は、NAND型フラッシュメモリのページサイズである。カラーリングテーブル14は、データ毎にカラーリング情報を対応付け、エントリ単位でカラーリング情報を格納する。カラーリングテーブル14の各エントリには、インデックスが付されている。インデックスとは、論理アドレスを基に生成される値である。メモリ管理装置1の読み出し管理部19、書き込み管理部20、カラーリング情報管理部21、再配置部23などは、データを指定する論理アドレスが与えられると、論理アドレスに対応するインデックスにより管理されているエントリを参照し、データのカラーリング情報を取得する。
カラーリング情報は、静的カラー情報と、動的カラー情報とを含む。静的カラー情報は、カラーリング情報が付与される当該データの特性に基づいて生成される情報であり、当該データの混成メインメモリ2上の配置(書き込み)領域を決定するヒントとなる情報である。動的カラー情報は、データの読み出しと書き込みの回数と頻度の少なくとも一方を含む情報である。
次に、図6を参照して、静的カラー情報について説明する。図6は、本実施形態に係る静的カラー情報の一例を説明するための図である。
静的カラー情報は、当該データの「重要度」、「読み出し頻度、書き込み頻度」、「データ寿命」のうち少なくとも一つの情報を含む。図6において説明する、読み出し頻度は、後述する、静的読み出し頻度に対応し、書き込み頻度は、静的書き込み頻度に対応する。
「重要度」とは、データの種類等に基づいて、当該データの重要性を推測して設定される値である。
「読み出し頻度、書き込み頻度」とは、データの種類等に基づいて、当該データが読み出し、又は書き込みされる頻度を推測して設定される値である。
「データ寿命」とは、データの種類等に基づいて、当該データが消去されずにデータとして使用される期間(データの寿命)を推測して設定される値である。
「重要度」、「読み出し頻度、書き込み頻度(読み書き頻度)」、「データ寿命」は、例えば、ファイルシステムに保持されるファイルの特性、又はプログラムに一次的に使用される領域の特性により推測される。
ファイルシステムに保持されるファイルの特性とは、カラーリング情報が付与される当該データが含まれるファイルデータのファイルに付加されたデータ属性により判断される特性である。ファイルに付加されたデータ属性には、ファイルのヘッダ情報、ファイル名、ファイルの位置、ファイル管理データ(inoddに保持される情報)等が含まれる。例えば、ファイルの位置としては、ファイルがファイルシステムのゴミ箱に位置している場合には、当該ファイルに含まれるデータの特性は、重要性が低い、読み出しの頻度、書き込みの頻度が低い、データの寿命が短い、と予測できる。この特性に基づき、当該データのカラーリング情報は、書き込み頻度は低、読み出し頻度は低、データの寿命は短、と推測される。
プログラムに一時的に使用される領域の特性には、カラーリング情報が付与される当該データが扱われるプログラムのプログラム実行時のデータ種別に基づき判断される特性と、プログラムファイル生成時のデータ種別に基づき判断される特性とが含まれる。
プログラム実行時のデータ種別とは、例えば、プログラム実行時に、当該データがスタック領域、ヒープ領域、テキスト領域のいずれの領域にマッピングされたかに基づいて分類されるデータ種別である。例えば、スタック領域、ヒープ領域にマッピングされたデータの特性は、書き込みの頻度は高く、読み出しの頻度は高く、重要性は高く、データ寿命は短い、と予測される。この特性に基づき、当該データの静的カラーリング情報は、書き込み頻度は高、読み出し頻度は高、重要度は高、データ寿命は短、と推測される。例えば、テキスト領域にマッピングされたデータの特性は、リード・オンリーのデータであるので、書き込みの頻度は低く、読み出しの頻度は高く、重要性は高く、データの寿命は長いと予測される。この特性に基づき、当該データの静的カラーリング情報は、書き込み頻度は高、読み出し頻度は高、重要度は高、データ寿命は長、と推測される。
プログラムファイル生成時のデータ種別予測とは、プログラム生成時に、当該プログラムで扱われるデータの重要度、読み書き頻度、データ寿命を推測することである。
また、静的カラー情報は、ユーザインターフェースにより、ユーザが直接設定してもよい。
次に、図7を参照して、カラーリング情報に基づく、データの書き込み処理の一例を示す。図7は、データ配置の処理の一例を示すフローチャートである。
前述のように、本実施形態では、混成メインメモリ2は、揮発性半導体メモリ8、不揮発性半導体メモリ9,10を備える。データを混成メインメモリ2に配置する場合、カラーリング情報に基づいて、揮発性半導体メモリ8、不揮発性半導体メモリ9,10のいずれかのメモリ領域が配置先として決定される。
まず、データ(書き込み対象データ)の書き込み要求が発生した場合、書き込み管理部20は、書き込み対象データに付与されているカラーリング情報を参照する(ステップS1)。
次に、書き込み管理部20は、カラーリング情報の「データ寿命」を参照し、書き込み対象データのデータ寿命の判断を行う(ステップS2)。
書き込み対象データのデータ寿命が短いと判断された場合(ステップS3)には、書き込み管理部20は、書き込み対象データが配置されるメモリ領域として揮発性半導体メモリ8を選択し(ステップS4)、書き込み対象データが配置されるメモリ領域を、揮発性半導体メモリ8に決定する(ステップS12)
書き込み対象データのデータ寿命が長いと判断された場合(ステップS3)には、書き込み管理部20は、書き込み対象データのカラーリング情報の「重要度」を参照し、書き込み対象データの重要度の判断を行う(ステップS5)。
書き込み対象データの重要度が高いと判断された場合(ステップS6)には、書き込み管理部20は、書き込み対象データが配置されるメモリ領域として耐久性(信頼性)の高い不揮発性メインメモリ9を選択する(ステップS7)。さらに、書き込み管理部20は、書き込み対象データのカラーリング情報に基づき、書き込み対象データを揮発性半導体メモリ8にキャッシュするか否か(カラーリング情報によるキャッシュ方式)の判断を行い(ステップS8)、書き込み対象データが配置されるメモリ領域を、不揮発性半導体メモリ9に決定する(ステップS12)。
書き込み対象データの重要度が低いと判断された場合(ステップS6)には、書き込み管理部20は、書き込み対象データが配置されるメモリ領域として耐久性の低い不揮発性半導体メモリ10を選択する(ステップS9)。さらに、書き込み管理部20は、書き込み対象データのカラーリング情報(動的カラー情報、静的カラー情報)により、書き込み対象データの読み出し頻度、書き込み頻度の判断を行う(ステップS10)。
書き込み対象データの読み出し頻度、書き込み頻度が高いと判断された場合(ステップS11)には、書き込み管理部20は、書き込み対象データが配置されるメモリ領域として不揮発性半導体メモリ9を選択する(ステップS7)。さらに、書き込み管理部20は、書き込み対象データのカラーリング情報に基づき、書き込み対象データを揮発性半導体メモリ8にキャッシュするか否か(カラーリング情報によるキャッシュ方式)の判断を行い(ステップS8)、書き込み対象データが配置されるメモリ領域を不揮発性半導体メモリ9に決定する(ステップS12)。
書き込み対象データの読み出し頻度、書き込み頻度が低いと判断された場合(ステップS11)には、書き込み管理部20は、書き込み対象データのカラーリング情報に基づき、書き込み対象データを不揮発性メインメモリ8にキャッシュするか否か(カラーリング情報によるキャッシュ方式)の判断を行い(ステップS8)、書き込み対象データが配置されるメモリ領域を不揮発性半導体メモリ10に決定する(ステップS12)。
次に、図8を参照して、本実施形態に係るカラーリングテーブル14の構成例について説明する。図8は、本実施形態に係るカラーリングテーブル14の構成の一例を示す図である。図8に示すカラーリングテーブル14では、図5、図6に示すカラーリング情報のうち、特に、読み出し頻度、書き込み頻度、データ寿命をカラーリング情報として用いる場合について説明する。
なお、カラーリング情報としては、「重要度」、「読み出し頻度、書き込み頻度」、「データ寿命」のいずれか1つを用いてもよいし、または任意の2つを組み合わせて用いてもよいし、または全てを組み合わせて用いてもよい。さらに、図6で示していない他のカラーリング情報を別途定義して用いることも可能である。
カラーリングテーブル14は、データ毎にカラーリング情報を対応付け、エントリ単位で保持するテーブルである。カラーリングテーブル14によりカラーリング情報が対応付けられるデータのデータサイズは、例えば、読み出し、書き込まれる最小のデータサイズである。例えば、読み出し、書き込まれる最小のデータサイズは、NAND型フラッシュメモリのページサイズである。以下において、カラーリングテーブル14によりカラーリング情報が対応付けられるデータのデータサイズがページサイズであるとして説明するが、これに限定されるものではない。
カラーリングテーブル14の各エントリには、インデックスが付されている。
カラーリングテーブル14に保持されるカラーリング情報には、静的カラー情報と、動的カラー情報とが含まれる。
インデックスとは、論理アドレスを基に生成される値である。メモリ管理装置1の読み出し管理部19、書き込み管理部20、カラーリング情報管理部21、再配置部23などは、データを指定する論理アドレスが与えられると、論理アドレスに対応するインデックスにより管理されているエントリを参照することで、データのカラーリング情報を取得する。
静的カラー情報は、静的書き込み頻度を示す値SW_color、静的読み出し頻度を示すSR_color、データ寿命SL_color、データの生成された時刻ST_colorを含む。
ここで、静的書き込み頻度SW_colorとは、データの種類等に基づいて、当該データが書き込まれる頻度を推測して設定される値である。静的読み出し頻度SR_colorとは、データの種類等に基づいて、当該データが読み出される頻度を推測して設定される値である。例えば、静的書き込み頻度SW_colorは、書き込み頻度が高いと推測されるデータほど、高い値が設定される。例えば、静的読み出し頻度SR_colorは、読み出し頻度が高いと推測されるデータほど、高い値が設定される。
データ寿命SL_colorとは、データの種類等に基づいて、当該データが消去されずにデータとして使用される期間(データの寿命)を推測して設定される値である。
静的カラー情報は、データを生成するプログラム(プロセス)により、静的に、予め決められた値である。また、情報処理装置100に実行されるオペレーティングシステム27が、データのファイル拡張子又はファイルヘッダ等に基づいて、静的カラー情報を予測してもよい。
動的カラー情報は、データの書き込み回数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をインクリメントする。
後述するように、アクセス頻度算出部24は、データの書き込み回数DWC_colorから、動的書き込み頻度DW_colorを算出する。アクセス頻度算出部24は、データの読み出し回数DRC_colorから、動的読み出し頻度DR_colorを算出する。
動的書き込み頻度DW_colorとは、当該データが混成メインメモリ2に書き込まれた頻度を示す値である。動的読み出し頻度DR_colorとは、当該データが混成メインメモリ2から読み出された頻度を示す値である。動的書き込み頻度DW_colorと動的読み出し頻度DR_colorの算出方法については、後述する。
後述するように、プロセッサ3a,3b,3cから混成メインメモリ2に対して書き込み要求、読み出し要求が発生すると、メモリ管理装置1は、カラーリング情報を参照することにより、書き込み領域、読み出し方式等を決定する。
次に、図9、図10を参照して、本実施形態に係る静的カラー情報について説明する。図9は、各種データに対する静的カラー情報(静的書き込み頻度SW_color、静的読み出し頻度SR_color、データ寿命SL_color)の設定の第1の例を示す図である。図10は、各種データに対する静的カラー情報(静的書き込み頻度SW_color、静的読み出し頻度SR_color、データ寿命SL_color)の設定の第2の例を示す図である。
カーネルのテキスト領域は、通常、読み出しの頻度は高く、書き込みの頻度は低い。オペレーティングシステム27は自身が動作するテキスト領域の静的読み出し頻度SR_colorを5、静的書き込み頻度SW_colorを1と設定する。また、オペレーティングシステム27は、カーネルのテキスト領域のデータ寿命SL_colorは長い(LONG)と予測する。
一方、カーネルのデータ領域は、通常、読み出しの頻度、書き込みの頻度がともに高い。よって、オペレーティングシステム27は、カーネルのデータ領域について、静的読み出し頻度SR_colorを5、静的書き込み頻度SW_colorを5に設定する。
カーネルに動的に確保されるデータ領域は、データが不要になると削除されるためデータ寿命SL_colorは短い(SHORT)とする。
ユーザプログラムのテキスト領域は、通常、すべてのプロセスからリエントラントに呼び出されるカーネルと比べて、読み出しの頻度は低い。ただし、プロセスがアクティブになっている状態ではカーネル同様読み出しの頻度が高くなる。このため、ユーザプログラムのテキスト領域においては、静的書き込み頻度SW_colorが1、静的読み出し頻度SR_colorが4に設定される。ユーザプログラムのテキスト領域について、データ寿命SL_colorは、そのプログラムがアンインストールされるまでの期間であるため、一般的には長くなる。よって、ユーザプログラムのテキスト領域について、データ寿命SL_colorは長い(LONG)と設定される。
プログラムに動的に確保される領域は、大きく分けて2種類ある。まず1つはプログラムの実行終了とともに廃棄されるデータ(スタック領域を含む)である。これらのデータはデータ寿命SL_colorが短く、読み出しの頻度と書き込みの頻度は高い。したがって、プログラムの実行終了とともに廃棄されるデータについて、静的読み出し頻度SR_colorが4に設定され、静的書き込み頻度SW_colorが4に設定される。もう1つのプログラムに動的に確保される領域は、プログラムが新たなファイルのために生成した領域である。プログラムによって生成されたデータはデータ寿命SL_colorが長く、読み出しと書き込みの頻度は生成されるファイルの種別に依存する。
プロセスによって参照されるファイルとして扱われるデータについて、ファイルのデータ寿命SL_colorは長いと設定される。
例えばファイルの拡張子がSYS,dll,DRVなどで示されるようなシステムファイルが読み込まれる場合について説明する。このような拡張子を持つデータは、オペレーティングシステム27が様々な処理を実行する場合に読み出されるファイルである。このような拡張子を持つデータは、混成メインメモリ2上にオペレーティングシステム27がインストールされる場合に、1度書き込まれるとその後更新されることはほとんどない。これらの拡張子を持つファイルは、ファイルのなかでも比較的アクセスの頻度は高いが、プログラム(カーネル)のテキスト領域と比較してアクセスの頻度は低いと予測される。したがって、オペレーティングシステム27は、これらの拡張子を持つデータの静的書き込み頻度SW_colorを1に設定し、静的読み出し頻度SR_colorを3に設定する。この設定は、データから予測される書き込みの頻度は極めて低く、予測される読み出しの頻度は高いことを示している。すなわち、これらの拡張子を持つデータは、オペレーティングシステム27のアップデートや他のプログラムをインストールする場合に数度書き換わる程度であり、ほとんどリード・オンリーとして扱われると予測される。
音声ファイルを編集するプログラムを使用するユーザは少ない。したがって、例えば、MP3などによって圧縮されている音楽データの書き込みの頻度は低いと考えられる。音楽データの読み出しの頻度は、書き込みの頻度よりは高いと考えられる。したがって、MP3などによって圧縮されている音楽データの静的書き込み頻度SW_colorは1、静的読み出し頻度SW_colorは2に設定される。
動画編集プログラムを使用するユーザは少ない。このため、例えば、MPEGなどによって圧縮されている動画データの書き込みの頻度は低いと考えられる。動画データの読み出しの頻度は、書き込みの頻度よりは高いと考えられる。したがって、MP3などによって圧縮されている動画データの静的書き込み頻度SW_colorは1、静的読み出し頻度SW_colorは2に設定される。
テキストデータの編集プログラムを使用するユーザは多い。このため、例えば、テキストファイルの書き込みの頻度及び読み出しの頻度は、高いと考えられる。したがって、テキストファイルの静的書き込み頻度SW_colorは3、静的読み出し頻度SW_colorは3に設定される。
ウェブブラウザを使用するユーザは多い。このため、ブラウザキャッシュファイルの読み出しの頻度及び書き込みの頻度は、音楽データや動画データなどのメディアファイル以上であると考えられる。したがって、ブラウザキャッシュファイルの静的書き込み頻度SW_colorは1、静的読み出し頻度SW_colorは3に設定される。
例えば、ごみ箱などのようなアクセスの頻度の低いディレクトリに配置されているファイルの静的書き込み頻度SW_colorは1、静的読み出し頻度SW_colorは1に設定される。
拡張子がJPEGで代表されるような写真データ、及び拡張子がMOVで代表されるようなムービーデータは、一度書き込まれると再度度書き込みが行なわれることは少ない。このような写真データ及びムービーデータはプログラムからアクセスされる頻度が少ないと予測される。したがって、オペレーティングシステム27は、写真データ及びムービーデータの静的書き込み頻度SW_color及び静的読み出し頻度SR_colorに対して小さい値を設定する。
次に、図11を参照して、本実施形態に係るカラーリングテーブル14の生成処理について説明する。図11は、カラーリングテーブル14の生成処理の一例を示すフローチャートである。カラーリングテーブル14は、システムの初期起動時に生成される。カラーリングテーブル14は、不揮発性半導体メモリ9,10上の任意の領域に配置される。カラーリングテーブル14の配置されている番地は、メモリ管理装置1の実装により決定されるとしてもよい。
ステップT1において、情報処理装置100は、電源が投入され、起動する。
ステップT2において、カラーリング情報管理部21は、カラーリングテーブル14のベースアドレスを論理アドレスに変換し、各データについてのインデックスを生成する。
ステップT3において、カラーリング情報管理部21は、情報記憶部17に、カラーリングテーブル14のベースアドレスをセットする。情報記憶部17は、例えばレジスタで構成される。カラーリングテーブル14のベースアドレスは、例えばカラーリングテーブルレジスタにセットされる。
次に、図12を参照して、本実施形態に係るカラーリングテーブル14のエントリの生成処理について説明する。図12は、カラーリングテーブル14のエントリの生成処理の一例を示すフローチャートである。
プロセッサ3a,3b,3cはプロセス6a,6b,6cを実行するために用いる論理アドレス空間上の領域を確保する。論理アドレス空間上の領域を確保した段階では、確保した論理アドレスのアドレス変換情報13の有効/無効フラグには0が設定されている。論理アドレスに対する物理アドレスの割り当ては、確保された論理アドレス空間の範囲内の論理アドレスに対して、プロセス6a,6b,6cがアクセス(読み出し、書き込み)した段階で行われる。論理アドレスに対する物理アドレスの割り当てが行われると、当該論理アドレスに対応するデータに対する静的カラー情報をカラーリングテーブル14に登録するとともに、当該論理アドレスのアドレス変換情報13の有効/無効フラグには1が設定される。
まず、プロセッサ3a,3b,3cにより実行されるプロセス6a,6b,6cは、新たなデータを配置するための論理アドレス空間上の領域の確保要求を出す(ステップU1)。論理アドレス空間上の未使用領域は、オペレーティングシステム27が管理しており、論理アドレスはオペレーティングシステム27により決定される。(ステップU2)
次に、プロセス6a,6b,6cにより新たなデータが生成されると、オペレーティングシステム27は、新たに生成されたデータの種類等に基づいて、静的カラー情報を生成する(ステップU3)。静的カラー情報は、生成されたデータのページサイズ毎に生成される。例えば、生成されたデータのデータサイズがページサイズより大きい場合には、データをページサイズに分割し、分割後のページサイズ毎に静的カラー情報が生成される。以下において、書き込み対象データのデータサイズがページサイズである場合を想定し説明するが、これに限定されない。
次に、オペレーティングシステム27が、情報記憶部17にセットされたベースアドレスに基づき、カラーリングテーブル14を参照する(ステップU4)。
次に、オペレーティングシステム27が、生成された静的カラー情報を、確保された論理アドレスに対応するインデックスが付されたカラーリングテーブル14のエントリに登録する(ステップU5)。
プロセッサ3a,3b,3cにより実行されるプロセス6a,6b,6cは、オペレーティングシステム27による論理アドレス空間の確保が成功した後、確保された論理アドレス空間に対し、読み出し要求、又は、書き込み要求を出す。このとき、アドレス管理部18は、書き込みが生じた論理アドレスに対する物理アドレスを決定するが、この処理は後に説明する。
以上の処理により、プロセッサ3a,3b,3cがプロセス6a,6b,6cを実行することにより、新たなデータが生成され、新たなデータが混成メインメモリ2に書き込まれる場合に、新たに生成されたデータに対してカラーリング情報が生成され、カラーリングテーブル14の新たなエントリに登録される。これにより、新たなデータを混成メインメモリ2に書き込むことが可能となる。
次に、図13、図14を参照して、カラーリングテーブル14のエントリのアライメントについて説明する。図13は、カラーリングテーブル14のエントリのアライメントの第1の例を示す図である。図14は、カラーリングテーブル14のエントリのアライメントの第2の例を示す図である。
カラーリングテーブル14のエントリは、データの最少の読み書きサイズ(例えばNAND型フラッシュメモリのページサイズ)に対応しているが、プロセス6a,6b,6cは、論理アドレス空間にデータをマップする際、データの最少の読み書きサイズにアライメントしてマップすることを義務づけられていない。このため、カラーリングテーブル14の1エントリに対して複数のデータが対応する可能性がある。
このような場合、オペレーティングシステム27は、図13に示すように、1エントリに対応する複数のデータのうちで、最も読み出し頻度及び書き込み頻度が高いと予測されるデータを代表とする。
あるいは、オペレーティングシステム27は、図14に示すように、1エントリを占めるデータのサイズを重みとし、各データの静的書き込み頻度SW_color、静的読み出し頻度SR_colorの加重平均値を設定する。
カラーリングテーブル14によって示されている静的書き込み頻度SW_colorと静的読み出し頻度SR_colorとは、プログラム開発者によりオペレーティングシステム27などのソースコードに埋め込まれるか、オペレーティングシステム27によって予測される。しかしながら、プログラム開発者が意図した場合と別の用途でファイルや写真データが使われる場合もある。一般的に、写真データなどのようなデータのアクセスはほとんどが読み出しであり、写真データの内容が書き換えられることは少ない。しかしながら、写真データを加工するプログラムが特定の写真データを扱う場合、加工中の写真データが頻繁に書き換えられることがある。このような場合、カラーリングテーブル14の静的書き込み頻度SW_colorと静的読み出し頻度SR_colorをユーザが書き換え可能であれば、特定のファイルを、より高速で書き換え回数に余裕のある領域に移動することが可能になる。
このような動作を実現させるため、各データのカラーリング情報は、オペレーティングシステム27のソフトウェア上で書き換えられるように、オペレーティングシステム27のファイルシステムを設計することが好ましい。たとえば一般的なブラウザでファイルのプロパティを開けば、カラーリングテーブル14に相当する属性がGUI画面上で見ることができるように情報処理装置100が設計されており、その初期データをユーザがGUI上で変更できるようオペレーティングシステム27を設計することが好ましい。
次に、図15を参照して、動的カラー情報と静的カラー情報に基づいて動的書き込み頻度DW_colorと動的読み出し頻度DR_colorを算出する方法について説明する。図15は、動的カラー情報と静的カラー情報に基づいて動的書き込み頻度DW_colorと動的読み出し頻度DR_colorを算出する方法の一例を示す図である。図15において、横軸は時間であり、縦軸はアクセス回数(読み出し回数DWC_color、又は書き込み回数DRC_color)である。
新たなデータがデータ生成時刻において生成されると、新たに生成されたデータに対してカラーリング情報(データ生成時刻を含む)が生成され、カラーリングテーブル14の新たなエントリに登録された上で、データは混成メインメモリ12に書き込まれる。データ生成時刻以降、このデータに対するアクセス(読み出し、書き込み)が発生することにより、時間の経過とともに、アクセス回数(書き込み回数DWC_color、読み出し回数DRC_color)が増加する。このアクセス回数の増加は、動的カラー情報管理部25によって行われる。メモリ管理装置1のアクセス頻度算出部24は、アクセス回数から動的書き込み頻度DW_color、動的読み出し頻度DR_colorを算出する。
現在時刻における、当該データの書き込み回数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とが算出される。
次に、算出された動的書き込み頻度DW_colorと、動的読み出し頻度DR_colorとに基づいて、当該データに対するアクセスの頻度の高低が判断される。アクセス頻度の高低の判断は、例えば、当該データが書き込まれている混成メインメモリ2のメモリ固有情報11、算出された動的書き込み頻度DW_color及び動的読み出し頻度DR_colorに基づいて行われる。
図15においては、まず、式Aの傾きとして「アクセス可能上限回数×重み1/データ寿命」を設定し、式Bの傾きとして「アクセス可能上限回数×重み2/データ寿命」を設定する。ここで、重み1>重み2である。重み1、重み2は、動的書き込み頻度DW_color、動的読み出し頻度DR_colorを算出する当該データを書き込む混成メインメモリ2に応じて、任意に設定することができる。
平均変化率α<式Aの傾き、が成り立つ場合、このデータの動的アクセス頻度は、高いと判断される。
式Bの傾き<平均変化率α≦式Aの傾き、が成り立つ場合、このデータの動的アクセス頻度は、中と判断される。
平均変化率α≦式Bの傾き、が成り立つ場合、このデータの動的アクセス頻度は、低いと判断される。
次に、図16を参照して、混成メインメモリ2からデータを読み出す処理について説明する。図16は、データの読み出し処理の一例を示すフローチャートである。
まず、プロセッサ3a,3b,3cにより実行されるプロセス6a,6b,6cが、データ(読み出し対象データ)の読み出し要求を発生させる(ステップW1)。
次に、プロセッサ3a,3b,3cに備えられているページテーブル(図示せず)により、読み出し対象データを指定する仮想アドレスが論理アドレスに変換される(ステップW2)。
次に、読み出し管理部19は、アドレス変換情報13の読み出し対象データに対応する論理アドレスのエントリの有効/無効フラグを参照する(ステップW3)。
アドレス変換情報13の有効/無効フラグが0のとき(ステップW3a)、論理アドレスに対する書き込みが一度も発生していないのでデータは不定である。この場合、読み出し管理部19は読み出し要求サイズ分の0データを読み出したようにふるまい(ステップW8)、ステップW10の処理に移る。
アドレス変換情報13の有効/無効フラグが1のとき(ステップW3a)、論理アドレスに対するデータの書き込みが少なくとも一度発生している。この場合、読み出し管理部19は、アドレス変換情報13を参照し、論理アドレスに対応するデータが揮発性半導体メモリ8に記憶されているか判断する(ステップW4)。
読み出し管理部19は、論理アドレスに対応するデータが揮発性半導体メモリ8に記憶されていると判断された場合(ステップW4a)、揮発性半導体メモリ8から読み出しを行うため、処理はステップW10に移る。
読み出し管理部19は、論理アドレスに対応するデータが揮発性半導体メモリ8に記憶されていないと判断された場合(ステップW4a)、カラーリングテーブル14を参照して、不揮発性半導体メモリ9,10からの読み出し対象データの読み出し方式を決定する(ステップW5)。読み出し方式の決定処理については後述する。
次に、読み出し管理部19は、読み出し対象データが記憶されている不揮発性半導体メモリ9,10のメモリ固有情報11と、メモリ使用情報12を参照し、読み出し対象データの移動(再書き込み)の要否を判断する(ステップW6)。
読み出し管理部19は、読み出し対象データの移動が不要であると判断された場合(ステップW6a)には、ステップW9に移る。
読み出し管理部19は、読み出し対象データの移動が必要であると判断された場合(ステップW6a)には、読み出し対象データを不揮発性半導体メモリ9,10の別の領域への移動を行い(ステップW7)、その後、処理はステップW9に移る。
ステップW9において、メモリ使用情報管理部22は、不揮発性メモリ領域から読み出しを行った際に、メモリ使用情報11の読み出し回数をインクリメントする。ステップW10において、動的カラー情報管理部25は、データの読み出しを行った際に、カラーリングテーブル14のデータの読み出し回数DRC_colorをインクリメントする。ステップW11において、読み出し管理部19は、論理アドレスとアドレス変換情報13とから得られる物理アドレスに基づいてデータの読み出しを行う。
次に、図17を参照して、データの読み出し方式の決定処理について説明する。図17は、データの読み出し方式の決定処理の一例を示すフローチャートである。読み出し方式の決定処理は不揮発性半導体メモリ9、10のメモリ領域からデータを読み出す時に、揮発性半導体メモリ8のメモリ領域をキャッシュとして使用するか否かを判断する処理である。本処理は図16のステップW5に該当する。
前述のように、混成メインメモリ2は、揮発性半導体メモリ8と、不揮発性半導体メモリ9,10とを具備する。本実施形態では、揮発性半導体メモリ8の一部を、キャッシュメモリとして用いることも可能である。混成メインメモリ2の不揮発性半導体メモリ9,10からデータを読み出す場合には、読み出される頻度が高いデータは、揮発性半導体メモリ8にキャッシュされた上で、読み出される。一方、読み出される頻度が低いデータは、揮発性半導体メモリ8にキャッシュされずに、不揮発性半導体メモリ9,10から直接読み出される。
まず、読み出し管理部19は、カラーリングテーブル14を参照することにより、読み出し対象データの静的読み出し頻度SR_colorを参照する(ステップV1)。静的読み出し頻度SR_colorが大きい(例えば、SR_color=5)場合には(ステップV1a)、読み出し対象データを揮発性半導体メモリ9,10から揮発性メインメモリ8(DRAM領域)にキャッシュするため、処理はステップV4に移る。
読み出し管理部19は、読み出し対象データの静的読み出し頻度SR_colorが小さい(例えば、SR_color<=4)場合には(ステップV1a)、アドレス変換情報13を参照することにより、読み出し対象データが書き込まれている領域を確認し(ステップV2)、さらに、アクセス頻度算出部24は、読み出し対象データの動的読み出し頻度DR_colorを算出する(ステップ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に移る。
読み出し管理部19は、読み出し対象データの静的読み出し頻度SR_colorと動的読み出し頻度DR_colorとに対して「SR_color≧3又はDR_colorが高い」が成り立たない場合には(ステップV3a)、読み出し対象データを、揮発性半導体メモリ8にキャッシュせずに、不揮発性半導体メモリ9,10から直接読み出す(ステップV8)。
以上のように、静的読み出し頻度SR_color、動的読み出し頻度DR_colorを参照することで、読み出し方式が決定される。
この図17においては、データ寿命SL_colorの判断は行われていない。この理由について説明する。後述するように、書き込み時においては、データ寿命SL_colorの短いデータは揮発性半導体メモリ8に配置される。このため、有効/無効フラグが1であり、データ寿命SL_colorが短いことを示すデータは、揮発性半導体メモリ8に記憶されることになる。この結果、図17において、データ寿命SL_colorに基づく判断は不要となる。
次に、データの図9、図10に示すデータについての読み出し方式について具体的に説明する。図9、図10に示すデータは、図17で説明したデータの読み出し方式の決定処理のフローチャートに従うことにより、以下のように読み出し方式が決定される。
まず、静的読み出し頻度SR_colorに5、静的書き込み頻度SW_colorに1が設定されているカーネルのテキスト領域は、読み出しの頻度が高く、書き込みの頻度は低いと推測される。このカーネルのテキスト領域における第1のデータは、オペレーティングシステム27が様々な処理をする際に読み出されるため、読み出し回数は多くなり、さらに高速に読み出される必要がある。
メモリ管理装置1は、不揮発性半導体メモリ9,10から読み出された第1のデータを、プロセッサ3bの2次キャッシュメモリ5b又は1次キャッシュメモリ4bに対して書き込むとともに、並行して、混成メインメモリ2内の揮発性半導体メモリ8のメモリ領域にも読み出された第1のデータを転送する。
再度同じ第1のデータが読み出される場合には、プロセッサ3bの2次キャッシュメモリ5b又は1次キャッシュメモリ4b上から、又はキャッシュヒットしない場合は混成メインメモリ2の揮発性半導体メモリ8のメモリ領域から、第1のデータの読み出しが行なわれる。混成メインメモリ2上の揮発性半導体メモリ8のメモリ領域に記憶された第1のデータは、揮発性半導体メモリ8のメモリ領域が枯渇しない限り、電源がオフされるまで揮発性半導体メモリ8上に保持される。
次に、静的読み出し頻度SR_colorに5、静的書き込み頻度SW_colorに5が設定指定されているカーネルのデータ領域は、システム(情報処理装置100)が起動するたびに新たに生成、初期化される領域である。このため、カーネルのデータ領域における第2のデータ寿命SL_colorは短いと推測される。メモリ管理装置1は、最初に第2のデータの寿命SL_colorを参照する。第2のデータは、揮発性半導体メモリ8のメモリ領域が枯渇しない限り、揮発性半導体メモリ8上に存在し、電源がオフされるとともに揮発性半導体メモリ8から消去される。
次に、静的読み出し頻度SR_colorに4、静的書き込み頻度SW_colorに1が設定されているユーザプログラムの領域は、すべてのプロセスからリエントラントに呼び出されるカーネルと比べて、読み出しの頻度は低い。ユーザプログラムの領域における第3のデータは揮発性半導体メモリ8のメモリ領域に配置されるが、混成メインメモリ2の揮発性半導体メモリ8のメモリ領域がFULLに埋まった場合、揮発性半導体メモリ8上から不揮発性半導体メモリ9,10のメモリ領域へのライトバック対象となる。ライトバックされる第3のデータの順番は、カラーリングテーブル14の情報に基づいて決定される。ライトバックされる場合には、読み出し回数が少ない順に、第3のデータが揮発性半導体メモリ8上から不揮発性半導体メモリ9,10上に移される。
静的書き込み頻度SR_colorに4、静的読み出し頻度SW_colorに4が設定されている、プログラムによって動的に確保される領域における第4のデータのうち、データ寿命SL_colorが短いと指定された第4のデータは、カーネルのデータ領域と同様に、揮発性半導体メモリ8のメモリ領域が枯渇しない限り、揮発性半導体メモリ8上に存在し、電源がオフされるとともに揮発性半導体メモリ8から消去される。
一方、データ寿命SL_colorが長いと設定されている第4のデータは、揮発性半導体メモリ8のメモリ領域に配置されるが、混成メインメモリ2の揮発性半導体メモリ8のメモリ領域がFULLに埋まった場合、揮発性半導体メモリ8上から不揮発性半導体メモリ9,10のメモリ領域へのライトバック対象となる。
次に、プロセスに参照されるファイルとして扱われるデータについて説明する。上記図10において、プロセスに参照されるファイルとして扱われるデータのデータ寿命SL_colorはすべて長いと設定されている。
静的書き込み頻度SW_colorに1、静的読み出し頻度SR_colorに3が設定されているファイル類に含まれる第5のデータは、書き込みの頻度が極めて低く、予測される読み出しの頻度が高いことがオペレーティングシステム27によって推測される。このとき、メモリ管理装置1は、第5のデータを揮発性半導体メモリ8のメモリ領域に配置するが、混成メインメモリ2の揮発性半導体メモリ8のメモリ領域がFULLに埋まった場合、揮発性半導体メモリ8上から不揮発性半導体メモリ9,10のメモリ領域へのライトバック対象となる。
静的書き込み頻度SW_colorに1、静的読み出し頻度SR_colorに2が設定されているファイル類に含まれる第6のデータは、静的書き込み頻度SW_colorが極めて低く、予測される静的読み出し頻度SR_colorも低いことがオペレーティングシステム27によって推測される。このように、メモリ管理装置1は、静的読み出し頻度SR_colorが高いと判断されていない場合、読み出し時に揮発性半導体メモリ8のキャッシュを介さず、不揮発性半導体メモリ9,10に直接アクセスする。
静的書き込み頻度SW_colorに1、静的読み出し頻度SR_colorに1が設定されているファイル類に含まれる第7のデータは、静的書き込み頻度SW_colorが極めて低く、予測される静的読み出し頻度SR_colorも極めて低いことがオペレーティングシステム27によって推測される。このように、メモリ管理装置1は、静的読み出し頻度が高いと判断されていない場合、読み出し時に揮発性半導体メモリ8のキャッシュを介さず、不揮発性半導体メモリ9,10に直接アクセスする。
以上のように、読み出し対象データの読み出し方式は、読み出し対象データのカラーリング情報に基づき決定される。これにより、読み出し対象データの特性(静的読み出し頻度SR_color、静的書き込み頻度SW_color、データ寿命SL_color)に合った読み出し方式を用いることが可能となり、データの読み出し効率の向上が図られる。
次に、図18を参照して、混成メインメモリ2へのデータの書き込み処理について説明する。図18は、データの書き込み処理の一例を示すフローチャートである。
まず、プロセッサ3a,3b,3cにより実行されるプロセス6a,6b,6cが、データ(書き込み対象データ)の書き込み要求を発生させる(ステップX1)。
次に、プロセッサ3a,3b,3cに備えられているページテーブル(図示せず)により、書き込み対象データを指定する仮想アドレスが論理アドレスに変換される(ステップX2)。
次に、書き込み管理部20は、カラーリングテーブル14を参照することにより、混成メインメモリ2のうちの書き込み対象のメモリ領域を決定する(ステップX3)。書き込み対象メモリ領域の選定については後述する。
書き込み管理部20は、ステップX3により選択された書き込み対象メモリが揮発性半導体メモリ8か否か判断する(ステップX4)。判断の結果、選択された書き込み対象メモリが揮発性半導体メモリ8の場合(ステップX4a)、ステップX7の処理が実行され、書き込み対象メモリが不揮発性メモリの場合(ステップX4a)、ステップX5の処理が実行される。
ステップX5において、書き込み管理部20は、メモリ使用情報11とカラーリングテーブル14を参照し、不揮発性半導体メモリ9,10のメモリ領域中の書き込み対象ブロック領域を決定する。ステップX6において、アドレス管理部18は、書き込み対象ブロック中のページの物理アドレスに基づきアドレス変換情報13を更新する。不揮発性半導体メモリ9,10がNAND型フラッシュメモリの場合、同一物理アドレスに対する上書きは行われないため、書き込みに伴う物理アドレスの更新が必要となる。
書き込み管理部20は、書き込み先物理アドレスが決定した後、データの書き込み処理を行う(ステップX7)。続いて、アドレス管理部18は、アドレス変換情報13の有効/無効フラグを1にセットする(ステップX8)。動的カラー情報管理部25はカラーリングテーブル14の書き込み回数DWC_colorをインクリメントし(ステップX9)、メモリ使用情報管理部22は、メモリ使用情報11の書き込み回数をインクリメントする(ステップX10)。
次に、図19を参照して、データの書き込み対象メモリ領域の決定処理について説明する。図19は、データの書き込み先領域の決定処理の一例を示すフローチャートである。
ステップY1において、書き込み管理部20は、書き込み対象データのデータ寿命SL_colorを参照する。
ステップY2において、書き込み管理部20は、データ寿命SL_colorが所定の値より長いか、短いか判断する。データ寿命SL_colorが所定の値以上の場合、処理は、ステップY9に移る。
データ寿命が所定の値より短い場合、ステップY3において、書き込み管理部20は、DRAM領域の空き領域を確認し、ステップY4において、書き込み管理部20は、DRAM領域に空き領域があるか否か判断する。
DRAM領域に空き領域がある場合、ステップY5において、書き込み管理部20は、書き込み対象データをDRAM領域に書き込む。
DRAM領域に空き領域がない場合、ステップY6において、書き込み管理部20は、DRAM領域から他の不揮発性半導体メモリへのライトバック処理を実行する。そして、ステップY7において、書き込み管理部20は、DRAM領域の空き領域を確認し、ステップY8において、書き込み管理部20は、DRAM領域に空き領域があるか否か判断する。
DRAM領域に空き領域がある場合、処理は、ステップY5に移り、書き込み管理部20は、書き込み対象データをDRAM領域に書き込む。
DRAM領域に空き領域がない場合、処理はステップY9に移る。
ステップY9において、書き込み管理部20は、カラーリングテーブル14で管理されている書き込み対象データの静的書き込み頻度SW_colorを参照する。
ステップY10において、書き込み管理部20は、静的書き込み頻度SW_colorに5が設定されているか否か(書き込み対象データの静的書き込み頻度SW_colorが高いか否か)、判断する。
静的書き込み頻度SW_colorに5が設定されている場合、処理はY13に移り、書き込み管理部20は、書き込み対象データの書き込み先としてB領域を選択する。
静的書き込み頻度SW_colorに5ではない値(5未満の値)が設定されている場合、ステップY11において、メモリ管理装置1は、カラーリングテーブル14で管理されている書き込み対象データの静的読み出し頻度SR_colorを参照する。
ステップY12において、書き込み管理部20は、静的読み出し頻度SR_colorに1〜5のどの値が設定されているか判断する。
このステップY12において静的読み出し頻度SR_colorに5が設定されている場合、ステップY13において、書き込み管理部20は、書き込み対象データの書き込み先として、B領域を選択する。
ステップY12において静的読み出し頻度SR_colorに4が設定されている場合、ステップY14において、書き込み管理部20は、書き込み対象データの書き込み先として、A領域を選択する。
このステップY12において静的読み出し頻度SR_colorに3が設定されている場合、ステップY15において、書き込み管理部20は、データのカラーリング情報に基づいて、データの動的書き込み頻度DW_colorを算出する。次に、ステップY16において、書き込み管理部20は、カラーリングテーブル14で管理されている書き込み対象データの静的書き込み頻度SW_colorを参照する。
ステップY17において、書き込み管理部20は、「静的書き込み頻度SW_colorが3以上であるか、又は、データの動的書き込み頻度DW_colorが高レベルである」ことが成り立つか否か判断する。
このステップY17において「SW_colorが3以上であるか、又は、データの動的書き込み頻度DW_colorが高レベルである」が成り立たない場合、処理はステップY14に移り、書き込み管理部20は、A領域を選択する。
ステップY17において「SW_colorが3以上であるか、又は、データの動的書き込み頻度DW_colorが高レベルである」が成り立つ場合、処理はステップY18に移り、書き込み管理部20は、C領域を選択する。
上記ステップY12において静的読み出し頻度SR_colorに2が設定されている場合、ステップY19において、書き込み管理部20は、データのカラーリング情報に基づいて、データの動的書き込み頻度DW_colorを算出する。
ステップY20において、書き込み管理部20は、カラーリングテーブル14で管理されている書き込み対象データの静的書き込み頻度SW_colorを参照する。
ステップY21において、書き込み管理部20は、「SW_colorが3以上であるか、又は、算出された動的書き込み頻度DW_colorが高レベルである」ことが成り立つか否か判断する。
このステップY21において「SW_colorが3以上であるか、又は、算出された動的書き込み頻度DW_colorが高レベルである」が成り立つ場合、処理はステップY18に移り、書き込み管理部20は、C領域を選択する。
ステップY21において「SW_colorが3以上であるか、又は、算出された動的書き込み頻度DW_colorが高レベルである」が成り立たない場合、処理はステップY22に移る。
ステップY22において、書き込み管理部20は、「SW_colorが2以上であるか、又は、算出された動的書き込み頻度DW_colorが中レベルである」ことが成り立つか否か判断する。
このステップY22において「SW_colorが2以上であるか、又は、算出された動的書き込み頻度DW_colorが中レベルである」が成り立つ場合、処理はステップY23に移り、書き込み管理部20は、D領域を選択する。
ステップY22において「SW_colorが2以上であるか、又は、算出された動的書き込み頻度DW_colorが中レベルである」が成り立たない場合、処理はステップY24に移り、書き込み管理部20は、E領域を選択する。
上記ステップY12において静的読み出し頻度SR_colorに1が設定されている場合、ステップY25において、書き込み管理部20は、データのカラーリング情報に基づいて、データの動的書き込み頻度DW_colorを算出する。
ステップY26において、書き込み管理部20は、カラーリングテーブル14で管理されている書き込み対象データの静的読み出し頻度SW_colorを参照する。その後、処理はステップY21に移る。
例えば、オペレーティングシステム27の開発者は、読み出し管理部19のデータ読み出し方式と書き込み管理部20データ書き込み方式の実装に対して、上記図9及び図10に示すような設定を行う。
例えば、SR_colorに5、SW_colorに1が設定されているカーネルのテキスト領域における第1のデータは読み出される回数が多く、書き込まれる回数は少ないと推測される。第1のデータは、上記図17に示されている読み出し方式の決定動作に基づいて、システム稼働中に揮発性半導体メモリ8に移され読み書きされる。このため、第1のデータが実際に不揮発性半導体メモリ9,10に書き込まれる頻度は低い。しかし、第1のデータの重要性は高いため、この図19において、書き込み管理部20は、第1のデータを、SLCである不揮発性半導体メモリ9のB領域に書き込む。
次に、SR_colorに5、SW_colorに5が設定されているカーネルのデータ領域は、情報処理装置100が起動するたびに新たに生成、初期化される領域なので、カーネルのデータ領域における第2のデータのデータ寿命は短いと推測される。書き込み管理部20は、最初に第2のデータのデータ寿命SL_colorを参照する。第2のデータは、情報処理装置100の稼働中に必ず揮発性半導体メモリ8上に存在し、電源がオフされるとともに揮発性半導体メモリ8から消去される。したがって、第2のデータは、不揮発性半導体メモリ9,10のメモリ領域に書き込まれない。
次に、SR_colorに4、SW_colorに1が設定されているユーザプログラムの領域は、すべてのプロセスからリエントラントに呼び出されるカーネルと比べて、読み出し頻度は低い。ユーザプログラムの領域における第3のデータは、上記図16に示した読み出し方式によって長期にわたりアクセスされない場合にのみ不揮発性半導体メモリ9,10のメモリ領域に書き込まれる。したがって、第3のデータが不揮発性半導体メモリ9,10に書き込まれる頻度は低い。第3のデータは、カーネルのテキスト領域におけるデータと比較して重要度は低いため、図19ではMLC領域であるA領域に書き込まれる。
SR_colorに4、SW_colorに4が設定されているプログラムに動的に確保される領域における第4のデータのうち、データ寿命SL_colorが短いと設定されている第4のデータは、カーネルのデータ領域と同様に、情報処理装置100稼働中に必ず揮発性半導体メモリ8上に存在する。書き込み管理部20は、最初にデータ寿命SL_colorを参照する。第4のデータは、システム稼働中に必ず揮発性半導体メモリ8上に存在し、電源がオフされるとともに揮発性半導体メモリ8から消去されるので不揮発性半導体メモリ9,10のメモリ領域に書き込まれない。
一方、データ寿命SL_colorが長いと設定されている第4のデータは、揮発性半導体メモリ8のメモリ領域に配置されるが、混成メインメモリ2の揮発性半導体メモリ8のメモリ領域がFULLに埋まった場合、揮発性半導体メモリ8上から不揮発性半導体メモリ9,10のメモリ領域へのライトバック対象となる。プログラムのテキスト領域はデータの重要度が高いため、プログラムのテキスト領域におけるデータは、SLCであるC領域に書き込まれる。
次にプロセスによって参照されるファイルとして扱われるデータについて説明する。図10では、プロセスによって参照されるファイルのデータ寿命SL_colorはすべて長いと設定されている。
SW_colorに1、SR_colorに3が設定されているシステムファイル類における第5のデータは、書き込み頻度が極めて低く、予測される読み出し頻度が高いことがオペレーティングシステム27によって推測される。このとき、書き込み管理部20は、第5のデータを揮発性半導体メモリ8のメモリ領域に配置するが、混成メインメモリ2の揮発性半導体メモリ8のメモリ領域がFULLに埋まった場合、第5のデータは揮発性半導体メモリ8上から不揮発性半導体メモリ9,10のメモリ領域へのライトバック対象となる。第5のデータの書き込み頻度は低いと判断されるので書き込み管理部20は第5のデータをMLC領域へ配置する。
SW_colorに3、SR_colorに3が設定されているファイル類は、書き込み頻度が極めて高く、予測される読み出し頻度も高いことがオペレーティングシステム27によって推測される。したがって、書き込み管理部20は、SW_colorに3、SR_colorに3が設定されているファイル類におけるデータをSLC領域へ配置する。
SW_colorに1、SR_colorに2が設定されているファイル類に含まれる第6のデータは、書き込み頻度が極めて低く、予測される読み出し頻度も低いことがオペレーティングシステム27によって推測される。第6のデータは、ファイルとしての重要度も低いと判断されるため、書き込み管理部20は、第6のデータをMLC領域へ配置する。
SW_colorに1、SR_colorに1が設定されているファイル類に含まれる第7のデータは、書き込み頻度が極めて低く、予測される読み出し頻度も極めて低いことがオペレーティングシステム27によって推測される。第7のデータについては、ファイルとしての重要度も低いと判断されるため、書き込み管理部20は、第7のデータをMLC領域へ配置する。
上記の処理により書き込み対象のメモリ領域が決定された場合、書き込み管理部20は、書き込み先の物理アドレスを決定する。この場合、書き込み管理部20は、カラーリングテーブル14を参照し、書き込み先の物理アドレスを適切に選択することでウェアレベリングの発生を抑え、不要な消去処理を低減する。
ここでウェアレベリングとは、例えば、消去回数が最大のブロックと、消去回数が最小のブロックとの消去回数の差が、所定の閾値以内に収まるように、ブロック間でデータの入れ替え(交換)を行うことを意味する。例えば、NAND型フラッシュメモリは消去処理なしでのデータ上書きができないため、データ移動先は未使用のブロックである必要があり、元々データを記憶していたブロックの消去処理が発生することになる。
次に、図20を参照して、データに対する書き込み対象ブロックの決定処理について説明する。図20は、データに対する書き込み対象ブロックの決定処理について説明するための図である。
不揮発性半導体メモリ9,10は、ブロック単位でデータの消去が行われる。不揮発性半導体メモリ9,10のブロック領域毎の消去回数ECは、メモリ使用情報11を参照することにより取得することができる。ブロック領域の消去回数の上限値(消去可能上限回数)に対する消去回数ECの割合を消耗率とする。
ブロック領域の消去回数ECが、当該ブロック領域の消去可能上限回数に達している場合には、消耗率は100%である。消耗率が100%の場合には、当該ブロック領域へのデータの書き込みは行われない。
ブロック領域の消去回数ECが、当該ブロック領域の消去回数の上限値に近い場合(例えば、90%)には、当該ブロック領域に対するデータの書き込みを少なくする。書き込み管理部20は、カラーリングテーブル14を参照することにより、書き込み頻度(静的書き込み頻度SW_color、動的書き込み頻度DW_color)の低い書き込み対象データ(例えば、SW_colorが1、DW_colorが「中」)を、消耗率の高いブロック領域(例えば、消耗率90%未満)に書き込む。
一方、ブロック領域の消去回数ECが、当該ブロック領域の消去回数の上限値より低い場合(例えば、消耗率10%)には、当該ブロック領域に対するデータの書き込みは、多くてもよい。書き込み管理部20は、カラーリングテーブル14を参照することにより、書き込み頻度(静的書き込み頻度SW_color、動的書き込み頻度DW_color)の高い書き込み対象データ(例えば、SW_colorが5、DW_colorが「高」)を、消耗率の低いブロック領域(例えば、消耗率10未満)に書き込む。
以上のように、書き込み対象データを書き込むブロック領域は、書き込み対象データのカラーリング情報と、ブロック領域の消耗率に基づいて決定する。これにより、書き込み対象データの特性(書き込み頻度)に合った書き込み対象ブロック領域を選択することができ、データの信頼性の向上が図れる。また、以下において説明するように、混成メインメモリの寿命の延ばすことが可能となる。
次に、図21乃至図25を参照して、書き込み対象データを書き込むブロック領域を、書き込み対象データのカラーリング情報、メモリ使用情報11、メモリ固有情報12に基づいて決定する処理についての詳細と効果について説明する。
図21は、不揮発性半導体メモリ9,10の任意のブロック領域における消去回数の推移の一例を示すグラフである。この図21において、縦軸は消去回数、横軸は時間を表す。
時間の経過により各ブロック領域における理想的な消去回数は変化する。例えばNAND型フラッシュメモリなどの不揮発性半導体メモリ9,10を使用する情報処理装置1では、将来的に不揮発性半導体メモリ9,10が劣化し、不揮発性半導体メモリ9,10を交換する必要が生じる。メモリ交換期までに不揮発性半導体メモリ9,10の多数のブロック領域を使用するためには、ウェアレベリングによる消去回数の平準化が必要である。図21では、不揮発性半導体メモリ9,10の任意のブロック領域における消去回数の推移を示している。ブロック領域に対して期待されている寿命に達した時点で、ブロック領域の消去回数が消去可能上限回数に達することが好ましい。
例えば、すべてのブロック領域が図21で示した消去回数の推移に従うためには、ウェアレベリングにおいて各ブロック領域の消去回数の差に対する閾値を小さく設定することも可能である。
図22は、ウェアレベリングにおいて消去回数の差に対する閾値を小さく設定した場合の変化の一例を示すグラフである。
図22における破線は各ブロック領域の消去回数のばらつきの範囲を示している。図22に示すように、閾値を小さくすることにより、各ブロック領域の消去回数のばらつきは小さくなるが、ウェアレベリングのための消去処理の発生回数が増加し、この結果、不揮発性半導体メモリ9,10全体の寿命が短くなる可能性がある。
書き込み管理部20は、消去回数の分散を低減させ、ウェアレベリングによる消去処理の発生回数を抑えるために、データを書き込む際に、メモリ使用情報11、メモリ固有情報12、カラーリングテーブル14に基づいた消去ブロック領域の選択を行う。
図23は、消去回数に応じたブロック領域のグループ分けの一例を示すグラフである。
図24は、消去回数に応じたブロック領域のグループ分けの判断基準を表す図である。
本実施形態においては、ブロック領域毎に消去回数によるグループ分けが行われる。ブロック領域のグループ分けの結果を示す情報は、メモリ使用情報11として保存される。なお、ブロック領域のグループ分けの結果を示す情報は、メモリ固有情報12として保存されるとしてもよい。
図23の太線は、最小の消去回数の推移を示しており、破線はウェアレベリングの閾値を表している。図23に示すように、各ブロック領域はウェアレベリングの閾値の範囲内(ばらつきの範囲内)でそれぞれの消去回数のグループに分類される。
メモリ使用情報管理部22は、あるブロック領域のデータが消去され、再度書き込み可能になったとき、図24に示すような判断表に基づいて、このブロック領域がどのグループに属するか判断し、メモリ使用情報11に記憶する。
この図24の判断表では、全てのブロック領域の消去回数のうちの最小の消去回数と、この最小の消去回数とウェアレベリングを行うか否かを判断するための閾値とを加算した値との間が、グループの数で分割されている。グループは、分割された範囲の下から上に向けて、h,g,f,e,d,c,b,aと設定されている。そして、判断表には、各グループに対する上限の消去回数と下限の消去回数とが設定されている。
図25は、ウェアレベリングにおけるブロック領域の検索の一例を示す図である。
書き込み管理部20は、カラーリングテーブル14の情報に基づいて、書き込み対象データのブロック領域を検索する基準となるグループを決定する。例えば、書き込み対象データのアクセス頻度が高い場合には、消去回数の少ないグループが決定され、書き込み対象データのアクセス頻度が低い場合には、消去回数の多いグループが決定される。以下においては、書き込み対象データに対して、グループcが決定されたとして説明を行う。
検索基準となる書き込み対象データのグループcが決定されると、図25に示すように、書き込み管理部20は、メモリ使用情報11に基づいて、決定された書き込み対象データのグループcに属するブロック領域を検索する。
決定された書き込み対象データのグループcに属するブロック領域が存在する場合、このブロック領域が書き込み対象データの書き込み先として決定される。
これに対して、決定された書き込み対象データのグループcに属するブロック領域が存在しない場合、書き込み管理部20は、決定された書き込み対象データのグループcの近傍のグループbに属するブロック領域を検索する。
決定された書き込み対象データの近傍グループbに属するブロック領域が存在する場合、この近傍グループbに属するブロック領域が書き込み対象データの書き込み先として選択される。
決定された書き込み対象データの近傍グループbに属するブロック領域が存在しない場合、以下同様に、ブロック領域が決定されるまで、さらに書き込み対象データのグループcに対する他の近傍グループdに対する検索が実行される。このような検索処理によってデータを書き込むブロック領域の物理アドレスが決定されると、書き込み管理部20は、データの書き込みを行い、アドレス管理部18はアドレス変換情報13を更新する。
なお、書き込み管理部20は、他のブロック領域の検索方法を用いて書き込み先のアドレスを決定するとしてもよい。例えば、書き込み管理部20は、消去回数をキーとし、消去ブロック領域をノードとする木構造(B-Tree B+Tree RB-Tree等)で書き込み可能なブロック領域(消去処理済み)を管理し、メモリ固有情報12又はメモリ使用情報11に保存する。書き込み管理部20は、基準となる消去回数をキーにツリーを検索し、最も近い消去回数をもつブロック領域を抽出する。
任意のプロセス3bによってデータが消去されると、オペレーティングシステム27はこのデータについてのカラーリングテーブル14の内容を消去する。アドレス管理部18は、カラーリングテーブル14の内容が消去されたとき、アドレス変換情報13における消去対象データの論理アドレスに対応する物理アドレスを消去する。
データが揮発性半導体メモリ8上に存在する場合は、揮発性半導体メモリ8上のデータが消去される。
次に、図26を参照して、本実施形態に係るメモリ管理装置1にキャッシュメモリを備えた構成について説明する。図26は、本実施形態に係るメモリ管理装置1にさらにキャッシュメモリを備えたメモリ管理装置の一例を示すブロック図である。なお、この図26においては、プロセッサ3a,3b,3cのうちプロセッサ3bを代表として説明するが、他のプロセッサ3a,3cについても同様である。
メモリ管理装置1は、さらに、キャッシュメモリ28を備えている。
プロセッサ3bは、1次キャッシュメモリ4b、2次キャッシュメモリ5bに加えて、キャッシュメモリ28を直接アクセス可能である。
メモリ管理装置28は、1次キャッシュメモリ4b、2次キャッシュメモリ5b、キャッシュメモリ28のいずれかにおいて、ページイン又はページアウトが発生した場合に、混成メインメモリ2をアクセスする。
メモリ管理装置1、混成メインメモリ2、プロセッサ3aの実装例を、図27の例に基づいて説明する。
図27(A)は、メモリ管理装置1、混成メインメモリ2、プロセッサ3aの第1の実装例を示すブロック図である。図27(A)では、揮発性半導体メモリ8が、DRAMであり、不揮発性半導体メモリ9,10がNAND型フラッシュメモリである場合について説明するが、これに限定されない。
プロセッサ3aは、メモリコントローラ(MMU)3maと、1次キャッシュメモリ4aと、2次キャッシュメモリ4bとを備える。メモリ管理装置1は、DRAMコントローラを備える。プロセッサ3aとメモリ管理装置1は同一基板(例えば、SoC)上に形成される。
揮発性半導体メモリ8は、メモリ管理装置1が備えるDRAMコントローラにより制御される。不揮発性半導体メモリ9,10は、メモリ管理装置1により制御される。図27(A)の実装例では、揮発性半導体メモリ8が搭載されるメモリモジュールと、不揮発性半導体メモリ9,10が搭載されるメモリモジュールとは、別モジュールである。
図27(B)は、メモリ管理装置1、混成メインメモリ2、プロセッサ3aの第1の実装例を示すブロック図である。図27(B)では、揮発性半導体メモリ8が、DRAMであり、不揮発性半導体メモリ9,10がNAND型フラッシュメモリである場合について説明するが、これに限定されない。図27(A)と同様の構成については、説明を省略する。
図27(B)の例では、プロセッサ3aが搭載されたチップに、メモリ管理装置1が外部から電気的に接続される構成となっている。また、メモリ管理装置1に、揮発性半導体メモリ8が接続される構成となっている。メモリ管理装置1は、DRAMコントローラ(図示省略)を備える。
次に、図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についても同様である。
プロセッサ3aに備えられているメモリコントローラ3maは、データについての書き込み回数DWC_color、読み出し回数DRC_colorのカウントを行うカウンタctaを備える。さらに、メモリコントローラ3maは、データについての書き込み回数DWC_color、読み出し回数DRC_colorを管理するカウント情報ciaを含む。
カウンタctaは、例えば、プロセッサ3aがデータに対してロード命令を発生させた場合、当該データに対する読み出し回数DRC_colorをカウント(インクリメント)し、カウント情報ciaを更新する。また、カウンタctaは、例えば、プロセッサ3aがデータに対してストア命令を発生させた場合、当該データに対する書き込み回数DWC_colorをカウント(インクリメント)し、カウント情報ciaを更新する。
カウント情報ciaにより管理される、データについての書き込み回数DWC_color、読み出し回数DRC_colorは、定期的に、当該データについてのメモリ管理装置1のカラーリングテーブル14の書き込み回数DWC_color、読み出し回数DRC_colorに反映される。
この図28の構成態様においては、次の効果が得られる。すなわち、プロセッサ3aの動作周波数はGHzオーダーであるのに対し、メモリ管理装置1の動作周波数はMHzオーダーである場合に、メモリ管理装置1では、プロセッサ3aで発生する書き込み、読み出しをカウントすることが困難な場合が考えられる。これに対し、図28の構成態様の場合には、プロセッサ3aのカウンタctaで、書き込み、読み出しをカウントするため、高い動作周波数での読み出し回数、書き込み回数をカウントすることが可能となる。
次に、図29を参照して、複数のメモリ管理装置1により、複数の不揮発性半導体メモリを管理する構成について説明する。図29は、複数の不揮発性半導体メモリを管理する複数のメモリ管理装置の一例を示す斜視図である。
図29においては、一つのメモリ管理装置1と、複数のNAND型フラッシュメモリ29とで、一つのメモリモジュール30が形成される。図29の例では、3つのメモリモジュール30が形成されている。
複数の不揮発性半導体メモリ29は、例えばNAND型フラッシュメモリであり、上記の不揮発性半導体メモリ9,10として用いられる。
メモリ管理装置1は、同じメモリモジュール30に属する複数の不揮発性半導体メモリ29に対するアクセスを管理する。
さらに、複数のメモリモジュール30内に備えられている複数のメモリ管理装置1は、互いに連携して一つのメモリ管理装置にように動作する。
メモリモジュール30のメモリ管理装置1は、メモリモジュール30内の複数の不揮発性半導体メモリ29に対するECC機能及びRAID機能を備え、ミラーリング及びストライピングを行う。
それぞれの不揮発性半導体メモリ29は、メモリモジュール30が通電中(動作中)であっても、ホットスワップ(交換)可能である。複数の不揮発性半導体メモリ29のそれぞれには、ボタン31が対応付けられている。
ボタン31は、警告出力部(例えばLEDなど)を備える。例えば、警告出力部が第1の色(緑)の場合は、正常状態を表し、第2の色(赤)の場合には交換必要な状態を表す。
ボタン31が押されると、プロセス6a,6b,6c及びオペレーティングシステム27に通知が送信され、アクセスなどが発生していない取り外し安全なときに、ボタン31は、第3の色(青)になり、このボタン31に対応する不揮発性半導体メモリ29は、ホットスワップ可能となる。
ホットスワップ実行時には、ホットスワップを要求するボタン31が押された後、ライトバックが完了した時点で、交換可能であることを示すランプが点灯し、不揮発性半導体メモリ29の交換が行われる。
メモリ管理装置1の処理部15は、情報記憶部17に記憶されているメモリ使用情報11とメモリ固有情報12とを参照し、各不揮発性半導体メモリ29の書き換え回数又は読み出し回数が、メモリ固有情報12に記述されているアクセス可能上限回数の所定割合に達したか否か判断する。そして、処理部15は、書き込み回数又は読み出し回数が、書き込み可能上限回数又は読み出し可能上限回数の所定割合に達している場合、メモリ交換を通知又は警告する。
本実施形態において、不揮発性半導体メモリ29のページサイズ又はブロックサイズが大きい場合、プリロードが有効である。
プリロードが行われる場合、メモリ管理装置1の処理部15は、不揮発性半導体メモリ29に記憶されているデータに対応するカラーリング情報を参照し、頻繁にアクセスされる可能性の高いデータを、予めキャッシュメモリ28にプリロードしておく。
あるいは、処理部15は、周期性のあるデータであって、所定の時間にアクセスされる可能性の高いデータを、その所定時間の前にプリロードしておく。
本実施形態においては、混成メインメモリ2の各メモリの耐久性に基づいてデータの配置が決定され、混成メインメモリ2の寿命を延ばすことができる。また、混成メインメモリ2に対する高速なアクセスを実現できる。
本実施形態においては、混成メインメモリ2の各メモリの耐久性に基づいてデータが配置されるため、混成メインメモリ2における致命的なデータ欠損を防止することができる。
本実施形態に係るメモリ管理装置1及び混成メインメモリ2を用いることにより、スワップをなくすことができる。
本実施形態においては、不揮発半導体メモリ9,10がメインメモリとして用いられる。これにより、メインメモリの記憶容量を大容量化することができ、ハードディスク又はSSD(Solid State Disk)を用いた2次記憶装置を使用しなくてもよい。
本実施形態においては、不揮発性半導体メモリ9,10をメインメモリとして用いるため、インスタント・オンを高速化できる。
(第2の実施形態)
本実施形態は、上記第1の実施形態のメモリ管理装置1で使用されるカラーリング情報を共有化し、共有化されたカラーリング情報を情報処理装置100に送信する情報処理装置(サーバ装置)である。
前述したように、情報処理装置100において、プロセッサ3a,3b,3cがプロセス6a,6b,6cを実行することより新たなデータが生成されると、オペレーティングシステム27は、新たに生成されたデータの種類に基づいて、静的カラー情報を生成し、当該新たに生成されたデータに静的カラー情報を付与する。メモリ管理装置1は、当該データを不揮発性半導体メモリ9,10に書き込む場合に、当該データの静的カラー情報を参照し、書き込み対象メモリ領域等を決定することで、不揮発性半導体メモリ9,10の寿命を延ばすことができる。このため、静的カラー情報を含むカラーリング情報を最適化することにより、不揮発性半導体メモリ9、10のさらなる長寿命化が図れる。
本実施形態では、オペレーティングシステム27が静的カラー情報を生成する際に参照するプロファイル情報を共有化するシステムについて説明する。プロファイル情報を共有化することで、カラーリング情報を最適化が実現される。プロファイル情報については後述する。
図30は、本実施形態に係る情報処理装置及びネットワークシステムの構成の一例を示す図である。
ネットワークシステム32は、情報処理装置33、プロファイル生成端末34、ユーザ端末100A,100Bがネットワーク35を介して通信可能に接続されている構成を持つ。
ネットワーク35は、例えば、インターネット、LAN(Local Area Network)などの各種通信媒体であり、無線であっても有線であってもよい。
プロファイル生成端末34の構成について説明する。プロファイル生成端末34は、例えば、プログラム開発者又はメーカの端末である。プロファイル生成装置34は、設定部34a、記憶装置34b、通信部34cを具備する。
設定部34aは、例えば、プログラム開発者などの設定操作に基づいて、プロファイル情報36を生成し、記憶装置34bに格納する。
記憶部34bは、設定部34aにより生成されたプロファイル情報36を格納する。
通信部34cは、ネットワーク35を介して、記憶装置34bに格納されているプロファイル情報36を情報処理装置33に送信する。
ユーザ端末100A、100Bの構成について説明する。ユーザ端末100A、100Bは、上記第1の実施形態の情報処理装置100に相当し、メモリ管理装置1、混成メインメモリ2を具備する。ユーザ端末100A,100Bに備えられているメモリ管理装置1の情報記憶部17、混成メインメモリ2には、カラーリングテーブル17が格納されている。
ユーザ端末100A,100Bは、自動で、又は、ユーザの指示にしたがって、プロファイル情報37,38を生成する。プロファイル情報の生成についての詳細は後述する。ユーザ端末100A,100Bは、ネットワーク35を介してプロファイル情報37,38を情報処理装置33に送信する。
さらに、ユーザ端末100A,100Bは、自動で、又は、ユーザの指示にしたがって、情報処理装置33からプロファイル情報をダウンロード(受信)する。ユーザ端末100A,100Bのオペレーティングシステム27は、データに対するカラーリング情報を生成する際に、ダウンロードされたプロファイル情報を参照する。ユーザ端末100A,100Bのオペレーティングシステム27は、プロファイル情報に基づいて、データに対する静的カラー情報を生成し、カラーリングテーブル14に格納する。
情報処理装置33の構成について説明する。情報処理装置33は、通信部33a、プロファイル情報管理部33b、記憶装置33cを具備する。プロファイル情報管理部33は、ハードウェアにより実現されてもよいし、ソフトウェアとプロセッサなどのハードウェアとの協働により実現されてもよい。
通信部33aは、プロファイル生成端末34、ユーザ端末100A,100Bとの間でプロファイル情報36〜38の送受信を行う。
プロファイル情報管理部33bは、通信部33aを介して受信されたプロファイル情報を、記憶装置33cに格納する。また、プロファイル情報管理部33bは、通信部33aを介してユーザ端末100A,100B、プロファイル生成端末34にプロファイル情報を送信する。
記憶装置33cは、プロファイル情報を格納する。さらに、記憶装置33cは、サービスデータ40を格納する。サービスデータ40については後述する。
次に、プロファイル情報について説明する。前述のように、プロファイル情報は、ユーザ端末100A,100Bにおけるオペレーティングシステム27が、データに対して静的カラー情報を付与(生成)する際に参照する情報である。
プロファイル情報は、例えば、データ識別情報、カラーリング情報、生成者識別情報を関連付けた情報である。
データ識別情報は、例えば、上記第1の実施形態の図9及び図10のデータ形式に相当する。データ識別情報としては、ファイルの名称、ファイルの拡張子などのようなファイルの識別情報、ファイルシステム上でデータが配置される位置(例えばディレクトリ)の情報、などが用いられる。
カラーリング情報は、上述した静的カラー情報を含む。静的カラー情報は、データ識別情報毎に設定される値であり、例えば、上記第1の実施形態の図9及び図10のように、静的書き込み頻度SW_color、静的読み出し頻度SR_color、データ寿命SL_colorを含む。
生成者識別情報は、プロファイル情報の生成者を識別するための情報である。生成者識別情報は、付加的な情報であり、必要に応じて付加される。
次に、プロフィル情報の生成について説明する。
ユーザ端末100A,100Bは、図9、図10に示す、データ識別情報と当該データ識別情報に対するカラーリング情報を保有している。ユーザ端末100A,100Bは、保有されているデータ識別情報とカラーリング情報とに基づいてプロファイル情報を生成する。
また、ユーザ端末100A,100Bは、メモリ管理装置1によって管理されているカラーリングテーブル14からプロファイル情報を生成してもよい。前述のように、カラーリングテーブル14は、データを指定する論理アドレスに基づいて生成されたインデックスと、当該データのカラーリング情報がエントリ単位で管理されている。ユーザ端末100A,100Bは、このインデックスから、論理アドレスにより指定されるデータを特定し、当該データのデータ識別情報を抽出する。さらに、ユーザ端末100A,100Bは、当該データの静的カラー情報と、動的カラー情報(例えば動的書き込み頻度DW_color、動的読み出し頻度DR_color)とを算出する。さらに、必要であれば、ユーザ端末100A,100Bは、動的カラー情報を、静的カラー情報と同様のデータ形式に変更する。前述のように、静的カラー情報は、SW_color=5のようなデータ形式であるのに対し、動的カラー情報は、データに対する実際のアクセス頻度であり、例えばアクセス頻度の時間平均値などが用いられることも想定される。この動的カラー情報のアクセス頻度又はアクセス頻度の時間平均値の大きさに応じて、DR_color=5のようなデータ形式への変換が実行される。これにより、データ識別情報と、当該データ識別情報に対する静的カラー情報、動的カラー情報が決定される。ユーザ端末100A,100Bは、この静的カラー情報、動的カラー情報を含むカラーリング情報と、データ識別情報と、生成者識別情報に基づいて、プロファイ情報を生成する。
このように、動的カラー情報を含むカラーリング情報により、プロファイル情報を生成することで、データに対する実際のアクセス頻度をプロファイル情報としてユーザ端末100A,100Bに提供することが可能となる。これにより、オペレーティングシステム27がデータに対して付与するカラーリング情報の最適化を図ることが可能となる。
また、例えば、新しいアプリケーションを開発したソフトウェアメーカは、プロファイル生成端末34を用いて、新しいアプリケーション専用のファイルに関するプロファイル情報36を情報処理装置33に登録してもよい。
次に、サービスデータ40について説明する。サービスデータ40は、記憶装置33cに記憶されている各種のプロファイル情報36〜38の説明データ、各種の広告データを含む。
サービスデータ40は、情報処理装置33からユーザ端末100A,100Bに送信される。例えば、ユーザ端末100A,100Bは、ブラウザを用いて、サービスデータ40を表示する。
例えば、記憶装置33cに記憶されている複数のプロファイル情報に同一のデータ識別情報が含まれている場合、ユーザは、サービスデータ40の説明データを参照し、ダウンロードするプロファイル情報を決定することができる。
例えば、サービスデータ40に、プロファイル情報の広告データ、情報機器の広告データ、不揮発性半導体メモリの広告データなどを含めておくことで、プロファイル情報のダウンロード、情報機器の買い替え、不揮発性半導体メモリの買い替えなどを検討しているユーザに対して、特定の製品を推薦することができる。
また、例えば、プロファイル情報管理部33bは、記憶装置33cに記憶されているプロファイル情報36〜38に対して統計的手法を適用し、この結果得られたプロファイル情報をユーザ端末100A,100Bに送信するとしてもよい。統計的手法として、例えば同じデータ識別情報と関連付けられているカラーリング情報については、平均値を算出する、中央値を求める、などの手法を用いることができる。例えば、プロファイル情報管理部33bは、同じデータ識別情報に関連付けられている複数のカラーリング情報に対する静的書き込み頻度SW_colorの平均値又は中央値、静的読み出し頻度SR_colorの平均値又は中央値、データ寿命SL_colorの平均値又は中央値、動的書き込み頻度DW_colorの平均値又は中央値、動的読み出し頻度DR_colorの平均値又は中央値、を含むプロファイル情報を生成し、この生成されたプロファイル情報をユーザ端末100A,100Bに送信する。
プロファイル情報管理部33bは、ユーザ端末100A,100Bのブラウザによってプロファイル情報36〜38がダウンロードされた回数をカウントする。プロファイル情報管理部33bは、各プロファイル情報36〜38のダウンロード回数に、プロファイル情報36〜38の1回当りのダウンロード料金を掛け算し、各プロファイル情報36〜38の生成者に対する報酬料金を算出する。そして、プロファイル情報管理部33bは、各プロファイル情報36〜38の生成者識別情報に対して、報酬料金を割り当てた報酬情報を生成し、報酬情報を記憶装置33cに記憶する。
さらに、プロファイル情報管理部33bは、ユーザ端末100A,100Bからのダウンロード要求に応じて、ダウンロード要求元を特定する識別情報(例えばユーザIDなど)に対して、ダウンロードされたプロファイル情報の1回あたりの使用料金を割り当てた使用料金情報を生成し、使用料金情報を記憶装置33cに記憶する。
図31は、本実施形態に係るプロファイル情報管理部33bの処理の一例を示すフローチャートである。
ステップC1において、プロファイル情報管理部33bは、プロファイル生成端末34、ユーザ端末100A,100Bのいずれかから、プロファイル情報36〜38のいずれかを受信したか否か判断する。
プロファイル情報36〜38が受信されていない場合、処理は、ステップC3に移る。
プロファイル情報36〜38のいずれかが受信されている場合、ステップC2において、プロファイル情報管理部33bは、受信されたプロファイル情報を記憶装置33cに記憶する。
ステップC3において、プロファイル情報管理部33bは、ユーザ端末100A,100Bのいずれかからダウンロード要求を受信したか否か判断する。
ダウンロード要求が受信されていない場合、処理はステップC6に移る。
ダウンロード要求が受信された場合、ステップC4において、プロファイル情報管理部33bは、受信されたダウンロード要求に対応するプロファイル情報を記憶装置33cから読み出す。
ステップC5において、プロファイル情報管理部33bは、読み出されたプロファイル情報を、ダウンロード要求の発信元のユーザ端末に送信する。
ステップC6において、プロファイル情報管理部33bは、処理終了か否か判断する。処理終了でない場合には、ステップC1に処理は戻る。
図32は、本実施形態に係るユーザ端末100Aによるプロファイル情報37のアップロード処理の一例を示すフローチャートである。なお、ユーザ端末100Bによるアップロード処理についてもこの図32とほぼ同様である。
ステップUL1において、ユーザ端末100Aは、例えば、自動で、又は、ユーザの指示にしたがって、データに対するデータ識別情報、カラーリングテーブル14においてこのデータに対応付けられているカラーリング情報、生成者識別情報を組み合わせて、プロファイル情報37を生成する。
ステップUL2において、ユーザ端末100Aは、生成されたプロファイル情報37を、ネットワーク35を介して、情報処理装置33に送信する。
図33は、本実施形態に係るユーザ端末100Aによるプロファイル情報のダウンロード処理の一例を示すフローチャートである。なお、ユーザ端末100Bのダウンロード処理についてもこの図33とほぼ同様であるため、説明を省略する。
ステップDL1において、ユーザ端末100Aは、例えば、自動で、又は、ユーザの指示にしたがって、データ識別情報を含むダウンロード要求を、ネットワーク35を介して、情報処理装置33に送信する。
ステップDL2において、ユーザ端末100Aは、ダウンロード要求に対する返信として、情報処理装置33からネットワーク35を介して、プロファイル情報を受信する。
ステップDL3において、ユーザ端末100Aのオペレーティングシステム27は、カラーリングテーブル14において、受信されたプロファイル情報のデータ識別情報に対応するデータに対して、受信されたプロファイル情報に含まれている静的カラー情報を格納する。
ステップDL4において、ユーザ端末100Aのメモリ管理装置1は、受信されたプロファイル情報に動的カラー情報が含まれているか否か判断する。
受信されたプロファイル情報に動的カラー情報が含まれていない場合、処理は終了する。
受信されたプロファイル情報に動的カラー情報が含まれている場合、ステップDL5において、メモリ管理装置1は、カラーリングテーブル14において、受信されたプロファイル情報のデータ識別情報に対応するデータに対して、受信されたプロファイル情報に含まれている動的カラー情報を格納する。
以上説明した本実施形態においては、メモリ管理装置1で使用されるカラーリング情報がメーカ又はユーザなどの多数の者によって生成され、生成されたカラーリング情報が共有される。
本実施形態では、カラーリング情報が閲覧される回数又はダウンロードされる回数に応じて、カラーリング情報の生成者に料金を支払うことができる。
本実施形態において、情報処理装置33の運営者は、多数のカラーリング情報を収集することができ、カラーリング情報に関する各種サービスを迅速に行うことができる。
本実施形態に係る情報処理装置33を用いることにより、カラーリング情報を共有化することが可能であり、メモリ管理装置1及び混成メインメモリ2の開発を迅速化することができ、メモリ管理装置1及び混成メインメモリ2を普及させることができる。
上記各実施形態において説明した各構成要素は、自由に組み合わせることができ、自由に分割することができる。
本発明は、上記実施の形態に限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で、種々に変形することが可能である。さらに、上記実施の形態には種々の段階の発明が含まれており、開示される複数の構成要件における適宜な組み合わせにより種々の発明が抽出され得る。
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…ボタン、32…ネットワークシステム、33…情報処理装置、33a,34c…通信部、33b…プロファイル情報管理部、33c,34b…記憶装置、34…プロファイル生成端末、34a…設定部、35…ネットワーク、36〜38…プロファイル情報、36a〜38a…データ識別情報、36b〜38b…カラーリング情報、36c〜38c…生成者識別情報、40…サービスデータ、100A,100B…ユーザ端末。

Claims (5)

  1. 第1の半導体メモリと、前記第1の半導体メモリよりもアクセス可能上限回数の小さい不揮発性の第2の半導体メモリとのうちの少なくとも一方に記憶されるデータの特性に基づいて生成され、当該データの配置領域を決定するヒントとなる配置ヒント情報と、データ識別情報とを関連付けたプロファイル情報を記憶する記憶部と、
    前記第1の半導体メモリと前記第2の半導体メモリをアクセスする装置から、前記データ識別情報を含むダウンロード要求を受信する受信部と、
    前記ダウンロード要求が受信された場合に、前記ダウンロード要求に含まれているデータ識別情報に基づいて、前記記憶部から前記プロファイル情報を読み出す管理部と、
    前記読みされたプロファイル情報を、前記ダウンロード要求の発信元の前記装置に送信する送信部と
    を具備する情報処理装置。
  2. 前記受信部は、さらに前記プロファイル情報を受信し、
    前記管理部は、前記プロファイル情報が受信された場合に、前記プロファイル情報を前記記憶部に記憶する
    ことを特徴とする請求項1記載の情報処理装置。
  3. 前記配置ヒント情報は、前記データが書き込まれる頻度を推測して設定される値、前記データが読み出される頻度を推測して設定される値、前記データが消去される頻度を推測して設定される値、前記データの重要性を推測して設定される重要度のうちの少なくとも一つを含むことを特徴とする請求項1又は請求項2記載の情報処理装置。
  4. 前記プロファイル情報は、前記データに対する単位時間当たりの書き込み回数を示す動的書き込み頻度、前記データに対する単位時間当たりの読み出し回数を示す動的読み出し頻度、前記データに対する単位時間当たりの消去回数を示す動的消去頻度のうちの少なくとも一つを含むことを特徴とする請求項1乃至請求項3のいずれか1項に記載の情報処理装置。
  5. 第1の半導体メモリと、前記第1の半導体メモリよりもアクセス可能上限回数の小さい不揮発性の第2の半導体メモリとのうちの少なくとも一方に記憶されるデータの特性に基づいて生成され、当該データの配置領域を決定するヒントとなる配置ヒント情報と、データ識別情報とを関連付けたプロファイル情報を記憶装置に記憶すること、
    前記第1の半導体メモリと前記第2の半導体メモリをアクセスする装置から、前記データ識別情報を含むダウンロード要求を受信すること、
    前記ダウンロード要求が受信された場合に、前記ダウンロード要求に含まれているデータ識別情報に基づいて、前記記憶装置から前記プロファイル情報を読み出すこと、
    前記読みされたプロファイル情報を、前記ダウンロード要求の発信元の前記装置に送信すること
    を含む情報処理方法。
JP2010048332A 2009-07-17 2010-03-04 情報処理装置及び方法 Active JP5322978B2 (ja)

Priority Applications (8)

Application Number Priority Date Filing Date Title
JP2010048332A JP5322978B2 (ja) 2010-03-04 2010-03-04 情報処理装置及び方法
KR1020117029315A KR20120068765A (ko) 2009-07-17 2010-03-08 메모리 관리 장치
CN201080031863.5A CN102473140B (zh) 2009-07-17 2010-03-08 存储器管理装置
TW099106706A TWI460588B (zh) 2009-07-17 2010-03-08 Memory management device and memory information processing device
EP10799661.3A EP2455865B1 (en) 2009-07-17 2010-03-08 Memory management device
PCT/JP2010/053817 WO2011007599A1 (ja) 2009-07-17 2010-03-08 メモリ管理装置
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
JP2010048332A JP5322978B2 (ja) 2010-03-04 2010-03-04 情報処理装置及び方法

Publications (2)

Publication Number Publication Date
JP2011186556A JP2011186556A (ja) 2011-09-22
JP5322978B2 true JP5322978B2 (ja) 2013-10-23

Family

ID=44792773

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010048332A Active JP5322978B2 (ja) 2009-07-17 2010-03-04 情報処理装置及び方法

Country Status (1)

Country Link
JP (1) JP5322978B2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8984251B2 (en) * 2012-12-04 2015-03-17 Apple Inc. Hinting of deleted data from host to storage device
KR102289919B1 (ko) * 2014-04-15 2021-08-12 삼성전자주식회사 스토리지 컨트롤러, 스토리지 장치, 스토리지 시스템 및 상기 스토리지 컨트롤러의 동작 방법
WO2016088234A1 (ja) 2014-12-04 2016-06-09 株式会社 東芝 異なる特性の不揮発性半導体メモリの寿命を長くするストレージ装置
JP6826066B2 (ja) * 2018-03-19 2021-02-03 株式会社東芝 管理装置、情報処理装置およびメモリ制御方法

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3507132B2 (ja) * 1994-06-29 2004-03-15 株式会社日立製作所 フラッシュメモリを用いた記憶装置およびその記憶制御方法
JP3270397B2 (ja) * 1998-06-08 2002-04-02 松下電送システム株式会社 データ格納装置
JP2007305210A (ja) * 2006-05-10 2007-11-22 Toshiba Corp 半導体記憶装置
KR101498673B1 (ko) * 2007-08-14 2015-03-09 삼성전자주식회사 반도체 드라이브, 그것의 데이터 저장 방법, 그리고 그것을포함한 컴퓨팅 시스템
US7849275B2 (en) * 2007-11-19 2010-12-07 Sandforce, Inc. System, method and a computer program product for writing data to different storage devices based on write frequency
JP2010009500A (ja) * 2008-06-30 2010-01-14 Canon Finetech Inc 不揮発性メモリ制御装置および方法、ならびにインクジェット記録装置

Also Published As

Publication number Publication date
JP2011186556A (ja) 2011-09-22

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
US10776007B2 (en) Memory management device predicting an erase count
CN109726139B (zh) 存储器系统及控制方法
CN114115747B (zh) 存储器系统及控制方法
US11797436B2 (en) Memory system and method for controlling nonvolatile memory
JP2011186562A (ja) メモリ管理装置及び方法
JP2011186561A (ja) メモリ管理装置
JP2011022933A (ja) メモリ管理装置を含む情報処理装置及びメモリ管理方法
JP2011186555A (ja) メモリ管理装置及び方法
JP2011186553A (ja) メモリ管理装置
JP2011186563A (ja) メモリ管理装置およびメモリ管理方法
JP5322978B2 (ja) 情報処理装置及び方法
JP2011186558A (ja) メモリ管理装置及び方法
JP2011186554A (ja) メモリ管理装置及び方法
JP2011186559A (ja) メモリ管理装置
JP2011186557A (ja) メモリ管理装置及び方法
JP7102482B2 (ja) メモリシステムおよび制御方法
JP2023021450A (ja) メモリシステム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120305

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20130625

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130716

R151 Written notification of patent or utility model registration

Ref document number: 5322978

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350