JP2002222120A - メモリ・アクセス管理装置並びに管理方法 - Google Patents

メモリ・アクセス管理装置並びに管理方法

Info

Publication number
JP2002222120A
JP2002222120A JP2001017955A JP2001017955A JP2002222120A JP 2002222120 A JP2002222120 A JP 2002222120A JP 2001017955 A JP2001017955 A JP 2001017955A JP 2001017955 A JP2001017955 A JP 2001017955A JP 2002222120 A JP2002222120 A JP 2002222120A
Authority
JP
Japan
Prior art keywords
memory
data
block
free
free memory
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
JP2001017955A
Other languages
English (en)
Other versions
JP2002222120A5 (ja
Inventor
Kazuo Omori
和雄 大森
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.)
Sony Corp
Original Assignee
Sony 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 Sony Corp filed Critical Sony Corp
Priority to JP2001017955A priority Critical patent/JP2002222120A/ja
Publication of JP2002222120A publication Critical patent/JP2002222120A/ja
Publication of JP2002222120A5 publication Critical patent/JP2002222120A5/ja
Pending legal-status Critical Current

Links

Abstract

(57)【要約】 【課題】 データの消去や書き換え動作に制限のある制
限メモリに対するアクセスを効率的に行う。 【解決手段】 メモリ管理装置は、ブロック単位でしか
データの消去や書換えを行うことができない制限メモリ
と、データを自由に加工することができるデータ保持領
域からなる自由メモリとで構成される。制限メモリ内の
データを変化させる場合には、該当するブロックを自由
メモリにコピーして、自由メモリ上でブロック内のデー
タ書換え処理を行う。そして、自由メモリ上でデータが
変化したブロックを、必要に応じて制限メモリ上の該当
ブロックにシンクロナイズさせる。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、メモリに対するア
クセス方法を管理するメモリ・アクセス管理装置並びに
管理方法に係り、特に、メモリ上のデータに対する検
索、消去、書き換えなどのアクセスを行うメモリ・アク
セス管理装置並びに管理方法に関する。
【0002】更に詳しくは、本発明は、データの消去や
書き換え動作に制限のある制限メモリに対するアクセス
を効率的に行うメモリ・アクセス管理装置並びに管理方
法に係り、特に、フラッシュ・メモリのようにブロック
という比較的大きな単位でしかデータの消去や書き換え
を行うことができないタイプの制限メモリに対するデー
タ検索、消去、書き換えなどのメモリ・アクセスを効率
的に行うメモリ・アクセス管理装置並びに管理方法に関
する。
【0003】
【従来の技術】昨今の技術革新に伴い、各種の業務に適
応したアプリケーションを実行可能なさまざまなタイプ
の計算機システムが普及している。計算機システムによ
る情報処理は、基本的には、プロセッサが所定のメモリ
を作業領域として用いることにより実現される。
【0004】メモリに対するアクセスは、通常、メモリ
空間上のアドレス、すなわちメモリ・アドレスを指定す
ることで、ビット又はバイト単位で行われ、メモリへの
書き込み並びに読み出しが可能である。
【0005】これに対し、メモリ・アクセスに制限のあ
るメモリ・デバイスも存在する。このようなメモリの一
例として、「フラッシュ・メモリ」を挙げることができ
る。
【0006】フラッシュ・メモリは、電気的に記憶内容
を書き換えることができるROM、すなわちEEPRO
M(Electrically Erasable and Programmable ROM)の
一種であり、無電源状態でもデータを不揮発的に保持で
きること。したがって、ノートブックPCやその他の携
帯機器、ICカードなどにおいて、データを不揮発的に
保存し、無電源状態でも重要なデータを消失しなくて済
むようにフラッシュ・メモリが多用される。
【0007】しかしながら、フラッシュ・メモリはデバ
イスの構造上、ブロックという比較的大きな単位(本実
施形態では64KB)でしか、データの消去や書き換え
を行うことができない。さらに、フラッシュ・メモリは
一般にデータ書き込み時間が長い。本明細書中では、こ
のようなデータの書き換えに制限のあるメモリのこと
を、以下「制限メモリ」と呼ぶことにする。
【0008】データ書き換え動作に関し制限のないメモ
リ装置(例えば、通常のRAM(Random Access Memor
y)など)の場合、データを書き換える際に、該当する
データが保持されている領域のみを直接書き換えること
ができる。このようなメモリのことを、以下では「自由
メモリ」と呼ぶ。これに対し、制限メモリに対するデー
タ書き換えの場合には、該当するデータ保持領域よりも
広範囲の領域全体を書き換えなくてはならないので、従
来のデータ書き換えアルゴリズムのままでは、動作しな
いか又は効率がよくない。
【0009】フラッシュ・メモリのようなデータ書き換
えに特殊な手続を要する制限メモリに対しては、メモリ
装置の特性を考慮した書き換えアルゴリズムを考えなく
てはならない。さらに、与えられた情報を制限メモリ上
に単に保持するだけでなく、必要に応じて記憶データを
検索して参照しなければならないような場合には、情報
を効率よく保存し、且つ、効率よく検索できなくてはな
らない。
【0010】また、計算機システム上では、メモリに対
するデータ・アクセスは、随時、不定期に発生する。フ
ラッシュ・メモリに対するアクセスが頻発すると、デー
タの読み出し時間や書き込み時間のため、オーバーヘッ
ドが大きくなってしまい、パフォーマンスの低下を招来
する。
【0011】
【発明が解決しようとする課題】本発明の目的は、デー
タの消去や書き換え動作に制限のある制限メモリに対す
るアクセスを効率的に行うことができる、優れたメモリ
・アクセス管理装置並びに管理方法を提供することにあ
る。
【0012】本発明の更なる目的は、フラッシュ・メモ
リのようにブロックと言う比較的大きな単位でしかデー
タの消去や書き換えを行うことができないタイプの制限
メモリに対するデータ検索、消去、書き換えなどのメモ
リ・アクセスを効率的に行うことができる、優れたメモ
リ・アクセス管理装置並びに管理方法を提供することに
ある。
【0013】
【課題を解決するための手段及び作用】本発明は、上記
課題を参酌してなされたものであり、その第1の側面
は、ブロック単位でのみデータの書換が可能な制限メモ
リに対するメモリ・アクセスを管理するメモリ・アクセ
ス管理装置であって、データ書換制限のない自由メモリ
と、前記制限メモリ内のデータを変化させるときに、該
当するデータを含んだブロックを前記自由メモリにコピ
ーするデータ・ロード手段と、前記自由メモリ上でコピ
ーされたブロックに対するデータ書き換えを行うデータ
書き換え手段と、前記自由メモリ上でデータが変化した
ブロックを、前記制限メモリ上の該当ブロックに反映さ
せるデータ同期化手段と、を具備することを特徴とする
メモリ・アクセス管理装置である。
【0014】また、本発明の第2の側面は、ブロック単
位でのみデータの書換が可能な制限メモリに対するメモ
リ・アクセスをデータ書換制限のない自由メモリを用い
て管理するメモリ・アクセス管理方法であって、前記制
限メモリ内のデータを変化させるときに、該当するデー
タを含んだブロックを前記自由メモリにコピーするデー
タ・ロードステップと、前記自由メモリ上でコピーされ
たブロックに対するデータ書き換えを行うデータ書き換
えステップと、前記自由メモリ上でデータが変化したブ
ロックを、前記制限メモリ上の該当ブロックに反映させ
るデータ同期化ステップと、を具備することを特徴とす
るメモリ・アクセス管理方法である。
【0015】ここで、制限メモリ上に新たにデータを保
存する場合には、制限メモリ上でデータ保存先のブロッ
クを選択する。そして、該選択されたブロックが自由メ
モリ上に存在するときには前記データ書き換え手段によ
り前記自由メモリ上で該選択されたブロックの該当位置
にデータを保存すればよい。また、該選択されたブロッ
クが自由メモリ上に存在しないときには、前記データ同
期化手段により前記自由メモリ上のデータを前記制限メ
モリ上の該当ブロックに反映させた後に、該選択された
ブロックを前記データ・ロード手段により前記制限メモ
リから前記自由メモリ上にロードして、前記データ書き
換え手段により前記自由メモリ上で該選択されたブロッ
クの該当位置にデータを保存するようにすればよい。
【0016】また、前記データ同期化手段又はステップ
は、前記自由メモリ上のブロックを前記制限メモリ上の
空きブロックに書き込むとともに、前記制限メモリ上の
元のブロックを空きブロックにすることによって、自由
メモリと制限メモリ間でシンクロナイズすなわちデータ
の整合性を保つとともに、次のシンクロナイズ用の空き
ブロックを制限メモリ上に確保することができる。
【0017】また、前記データ同期化手段又はステップ
は、前記自由メモリ上のブロックが満杯状態のときは、
さらに、次にロードすべきブロックを前記制限メモリ上
から選択し、該選択されたブロックを前記自由メモリ上
にロードすることによって、自由メモリ上のブロックに
新規データの保存領域を確保することができる。
【0018】また、制限メモリ上のデータを削除する場
合、該削除すべきデータを含んだブロックが自由メモリ
上に存在するときには前記データ書き換え手段により前
記自由メモリ上で該データを削除する。また、該削除す
べきデータを含んだブロックが前記自由メモリ上に存在
しないときには、前記データ同期化手段により前記自由
メモリ上のデータを前記制限メモリ上の該当ブロックに
反映させた後に、前記データ・ロード手段により該削除
すべきデータを含んだブロックを前記制限メモリから前
記自由メモリ上にロードして、前記データ書き換え手段
により前記自由メモリ上で該削除すべきデータを削除す
るようにすればよい。
【0019】本発明の第1及び第2の側面に係るメモリ
・アクセス管理装置並びにメモリ・アクセス管理方法に
よれば、制限メモリ内のデータに対して変化させる場合
(例えば、データの保存、削除、検索など)には、基本
的に、該当するデータを含んだブロックをキャッシュと
しての自由メモリにコピーして、自由メモリ上でデータ
書き換え処理を行う。そして、自由メモリ上でデータが
変化したブロックを、必要に応じて制限メモリ上の該当
ブロックに反映すなわちシンクロナイズさせることがで
きる。
【0020】すなわち、本発明によれば、制限メモリの
キャッシュとして自由メモリを用いることで、ブロック
単位でデータを扱う分散型データ構造を効率的に利用す
ることができ、この結果、以下に示すような効果を奏す
ることができる。 (1)フラッシュ書換え時間の短縮 (2)フラッシュ書換え回数制限の軽減 (3)フラッシュ書込み速度の向上 (4)ブロック内データ移動の効率化
【0021】また、本発明によれば、フラッシュ・メモ
リのような特殊な書換え制限を持つ記憶装置に適応した
方式により効率よくデータの保持並びに検索を行うこと
ができる。また、技術の進歩とともに計算機システムな
どの記憶容量が増加した場合であっても、容易に拡張す
ることができるようになる。さらに、情報を差分で追加
又は削除する場合にも、メモリを分散管理しているの
で、システム全体に対してのデータ破壊のリスクが低
く、データ更新も効率的である。
【0022】本発明のさらに他の目的、特徴や利点は、
後述する本発明の実施例や添付する図面に基づくより詳
細な説明によって明らかになるであろう。
【0023】
【発明の実施の形態】以下、図面を参照しながら本発明
の実施例を詳解する。
【0024】本発明では、フラッシュ・メモリのように
ブロック(本実施形態では64KB)という比較的大き
な単位でしかデータの消去や書き換えを行うことができ
ないタイプの制限メモリに対するデータ検索、消去、書
き換えなどの処理を効率化するものである。このため
に、本発明に係るメモリ管理装置は、制限メモリの他
に、データを自由に加工することができるデータ保持領
域としてデータ書き換え制限のない自由メモリを利用す
る構成となっている。自由メモリの領域サイズは、好ま
しくは、書き換え制限を持つ制限メモリにおける一度に
書き換えする領域と同じサイズである。また、自由メモ
リには、処理を行うために必要な変数などを保持する領
域も必要である。
【0025】図1には、本発明の一実施形態に係るメモ
リ管理装置1の概略構成を示している。同図に示すよう
に、メモリ管理装置1は、情報インターフェース11
と、自由メモリ12と、制限メモリ13とで構成され
る。
【0026】情報インターフェース11は、計算機シス
テム又は該システム上のプロセッサからの情報提供、処
理依頼を交換するデータ交換インターフェースであり、
バス(図示しない)経由で計算機システムと間でコマン
ドやデータの授受を行う。
【0027】自由メモリ12は、制限メモリ13におけ
る1回のデータ書き換え単位すなわち「ブロック」と同
じサイズのデータ書き込み領域を備えており、データ書
き換え時、検索時などにおけるデータ更新用の作業領域
として用いられる。自由メモリ11は、制限メモリ13
に対する、言わば「キャッシュ(cache)」として位置
付けることができる。
【0028】制限メモリ13は、1回のデータ書き換え
単位がブロックという比較的大きな単位に制限された記
憶装置であり、本実施形態においては、メモリ管理装置
1における主情報記憶領域に位置付けられる。すなわ
ち、メモリ管理装置1において保持できる情報の量すな
わち記憶容量は、この制限メモリ13のサイズに応じて
決定される。但し、制限メモリ13中の少なくとも1ブ
ロックは、シンクロナイズ(後述)に使用されるので、
実際に情報保持用に利用可能なブロック数すなわち記憶
容量は、制限メモリ13で確保したブロック数からシン
クロナイズ用のブロック数を減じた値に相当する。
【0029】制限メモリ13内のデータに対して変化さ
せる場合(例えば、データの保存、削除、検索など)に
は、基本的に、該当するデータを含んだブロックをキャ
ッシュとしての自由メモリ12にコピーして、自由メモ
リ12上でデータ書き換え処理を行う。そして、自由メ
モリ12上でデータが変化したブロックを、必要に応じ
て制限メモリ13上の該当ブロックに反映させる。この
反映させる処理のことを、制限メモリ13の「シンクロ
ナイズ(synchronize)」又は「同期化」と呼ぶ。シン
クロナイズ処理の詳細については後述に譲る。
【0030】図2には、制限メモリ13内のデータ管理
構造を模式的に図解している。上述したように、制限メ
モリ13は、データの保存、削除、検索などのデータ処
理をブロック単位で行う分散型データ構造を備えてい
る。
【0031】図2に示すように、64KB長の1つのブ
ロックは、制御情報を管理するブロック管理領域と、デ
ータの保存に使用するデータ領域とで構成される。
【0032】ブロック管理領域は、チェックサム・フィ
ールドと、書換カウンタ・フィールドと、ブロック・タ
イプ・フィールドと、ブロックIDフィールドと、ブロ
ック年齢フィールドと、カウンタ・フィールドと、予約
(未使用)フィールドで構成される。
【0033】チェックサム・フィールドには、ブロック
のデータの整合性を確認するためのチェックサム(検査
対象データを加算した総和から一定の計算をして求め
た、誤り検出用のデータ)が書き込まれる。
【0034】また、書換カウンタ・フィールドには、制
限メモリ13を構成するフラッシュ・メモリの寿命を確
認するための値、すなわち最大書換え回数(通常のフラ
ッシュ・メモリでは10万回程度)が書き込まれる。
【0035】タイプ・フィールドには、当該ブロックが
現在何に使用されているかを示す値が書き込まれる。
【0036】IDフィールドには、当該ブロックに割り
振られたシステム内で固有の識別情報が書き込まれる。
【0037】カウンタ・フィールドには、当該ブロック
に保存されている情報の数が書き込まれる。
【0038】また、図3には、計算機システムのメモリ
空間上に制限メモリ13及び自由メモリ12がマッピン
グされた例を示している。
【0039】同図に示す例では、計算機システムのメモ
リ空間上は、システム領域以外に、RAM(Random Acc
ess Memory)に割り当てられたRAM領域(例えば51
2KB)、EEPROMに割り当てられたEEPROM
領域(例えば4MB)などで構成される。
【0040】EEPROM領域のうち少なくとも一部
(例えば1MB)が、本実施形態に係る制限メモリ13
として割り当てられる。制限メモリ13は、上述したよ
うに、それぞれ64KBサイズからなる多数(16個)
のブロックで構成される。
【0041】また、自由なデータの書換が可能なRAM
領域の一部(例えば1ブロックに相当する64KB)が
自由メモリ12として割り当てられる。
【0042】次いで、このメモリ管理装置1におけるデ
ータの保存、削除、検索などのデータ書き換えを伴うデ
ータ処理動作について説明する。
【0043】データの保存 本実施形態に係るメモリ管理装置1は、情報の保存を依
頼されたら、その情報は検索に使用されるデータの順番
にソートされた状態になるように、自由メモリ12を書
き換える(ライト・キャッシュ)。この情報が実際に制
限メモリ13に反映されるのは、情報のシンクロナイズ
が要求されたとき、又は、自由メモリ12のブロックが
フルになり情報を追加できなくなったときである。
【0044】図4には、メモリ管理システム1において
新たにデータを保存・登録するための処理手順をフロー
チャートの形式で示している。以下のこのフローチャー
トに従って、データの保存処理について説明する。
【0045】まず、要求されたデータが既に自由メモリ
12上に保存されているか否かを検索する(ステップS
1)。既に保存されている場合には(分岐B1)、エラ
ー処理をして本処理ルーチン全体を終了させる。
【0046】要求されたデータが未だ自由メモリ12上
に保存されていない場合には(分岐B1)、次いで、該
データが制限メモリ上に保存されているか否かを検索す
る(ステップS2)。既に保存されている場合には(分
岐B2)、エラー処理をして本処理ルーチン全体を終了
させる。
【0047】要求されたデータが未だ制限メモリ13上
に保存されていない場合には(分岐B2)、保存先とな
るブロックを選択する(ステップS3)。但し、記憶容
量の問題などにより制限メモリ13上にもはや登録でき
ない場合には(分岐B3)、エラー処理をして本処理ル
ーチン全体を終了させる。
【0048】キャッシュ・ヒットすなわち選択されたブ
ロックが既に自由メモリ12上にロードされており、且
つブロックに書き込み可能領域が残されている場合な
ど、要求されたデータを自由メモリ12内に保存できる
場合には(分岐B3)、次ステップS4に進んで、保存
データの挿入位置を検索する。挿入位置の検索には、例
えばバイナリ・サーチ(binary search)(後述)を用
いることができる。
【0049】また、選択されたブロックは自由メモリ1
2上にはないが、要求されたデータを制限メモリ13内
の該当ブロックに保存できる場合には(分岐B3)、ブ
ロックのシンクロナイズを行った後(ステップS7)、
保存先のブロックを自由メモリ12にロードしてから
(ステップS8)、次ステップS4に進んで、保存デー
タの挿入位置を検索する。
【0050】次いで、検索された挿入位置に保存データ
を挿入する(ステップ5)。そして、自由メモリ12の
ブロック管理領域の各情報を更新してから(ステップS
6)、本処理ルーチン全体を終了する。
【0051】データのシンクロナイズ メモリ管理装置1は、情報のシンクロナイズを要求され
たときは、シンクロナイズ用に確保しておいた空きブロ
ックへ、自由メモリ12のブロックに書き込まれた内容
を書き換え、自由メモリ12上にキャッシュしていた制
限メモリ13内の元のブロックを空きブロックすなわち
次のシンクロナイズ用のブロックとして更新する。この
とき、自由メモリ12内に未だ存在するブロックが追加
情報を受け付けることができる状態である場合には、そ
のままキャッシュとして継続利用する。
【0052】自由メモリ12のブロックがフルになった
場合、制限メモリ13へデータをシンクロナイズさせ、
さらに情報を追加することができるブロックを選択し
て、自由メモリ12のブロックへロードする。
【0053】但し、制限メモリ13にあるすべてのブロ
ックがフルになったとき、このシステム全体がフルであ
るとして、「データ・フル」を定義する情報を返す。
【0054】図5には、メモリ管理システム1において
データをシンクロナイズするための処理手順をフローチ
ャートの形式で示している。以下のこのフローチャート
に従って、データのシンクロナイズ処理について説明す
る。
【0055】まず、自由メモリ12上でブロックの管理
情報を更新し(ステップS11)、次いで、自由メモリ
12にキャッシュされたデータを制限メモリ13の空き
ブロックへの書き込みを試みる(ステップS12)。制
限メモリ13の空きブロックへの書き込みに失敗した場
合には(分岐B11)、エラー処理をして本処理ルーチ
ン全体を終了させる。
【0056】制限メモリ13の空きブロックへの書き込
みに成功した場合には(分岐B11)、自由メモリ12
にキャッシュされていたブロックに対応する制限メモリ
13上の元ブロックを空きブロックにする(ステップS
13)。
【0057】次いで、キャッシュすなわち自由メモリ1
2がフル状態か否かを判別する(ステップS14)。未
だフル状態に達していなければ、そのブロック管理情報
を更新してから(ステップS15)、本処理ルーチン全
体を終了する。
【0058】他方、自由メモリ12がフル状態になって
いる場合には、情報を追加することができるブロックを
制限メモリ13の中から選択して(ステップS16)、
これを自由メモリ12にロードする(ステップS1
7)。この結果、フル状態に到達していないブロックを
自由メモリ12上に配置することができる。そして、自
由メモリ12のブロック管理情報を更新してから(ステ
ップS15)、本処理ルーチン全体を終了する。
【0059】データの削除 システム内に保持している情報を削除するときには、保
存する場合と同様に、制限メモリ13上の必要なブロッ
クを自由メモリ12のブロックにロードして、データの
書換えを行う。そのためには、まず削除する情報がどの
ブロックに保持されているかを検索して、次に、発見し
たブロックを自由メモリ12のブロックにロードする。
このとき、必要であれば、自由メモリ12にデータをロ
ードする前にシンクロナイズを実行する。最後に、自由
メモリ12のブロックのデータ書換えを行う。
【0060】図6には、メモリ管理システム1において
データを削除するための処理手順をフローチャートの形
式で示している。以下、このフローチャートに従って、
データのシンクロナイズ処理について説明する。
【0061】まず、削除の対象となるデータが自由メモ
リ12上に存在するか否かを判別する(ステップS2
1)。
【0062】削除対象となるデータが自由メモリ12上
に存在する場合には(分岐B21)、自由メモリ12の
ブロック内でのデータの削除位置を検索して(ステップ
S22)、該位置からデータを削除する(ステップS2
3)。そして、自由メモリ12のブロック管理情報を更
新してから(ステップS24)、本処理ルーチン全体を
終了する。
【0063】他方、削除対象となるデータが自由メモリ
12上に存在しない場合には(分岐B21)、削除対象
となるデータが制限メモリ13上に存在するか否かをさ
らに判別する(ステップS25)。制限メモリ13上に
も削除対象となるデータが存在しない場合には(分岐B
22)、エラー処理をして本処理ルーチン全体を終了す
る。
【0064】制限メモリ13上で削除対象となるデータ
が発見された場合には(分岐B22)、まず、自由メモ
リ12のブロックを制限メモリ13上の対応ブロックに
シンクロナイズさせる(ステップS26)。ブロックの
シンクロナイズは、図5に示すフローチャートを参照し
ながら説明した処理手順に従って実行することができ
る。
【0065】次いで、削除対象となるデータを含んだブ
ロックを、制限メモリ13から自由メモリ12にロード
する(ステップS27)。そして、自由メモリ12のブ
ロック内でのデータの削除位置を検索し(ステップS2
2)、該位置のデータを削除し(ステップS23)、自
由メモリ12のブロック管理情報を更新してから(ステ
ップS24)、本処理ルーチン全体を終了する。
【0066】データの検索 このシステム内の情報を検索するには、まず、その時点
での最新情報であるキャッシュすなわち自由メモリ12
上のブロックにある情報を検索し、次いで、制限メモリ
13上にある各ブロックを検索する。制限メモリ13に
あるブロックを検索するときには、自由メモリ12にキ
ャッシュされたものに対応するブロックは古い情報なの
で、検索処理をスキップする。
【0067】データ検索のときは、データの書換えを行
わないので、制限メモリ13上の各ブロックを自由メモ
リ12にロードすることはせずに、制限メモリ13上か
ら直接ブロックを読み出す。このようにキャッシュすな
わち自由メモリ12を介さずに検索を行うことによっ
て、処理効率が向上する。
【0068】図7には、メモリ管理システム1において
データを検索するための処理手順をフローチャートの形
式で示している。以下のこのフローチャートに従って、
データの検索処理について説明する。
【0069】まず、自由メモリ12内のIDmを検索す
る(ステップS31)。自由メモリ12上で該当するI
Dmすなわち検索対象となるデータが見つかった場合に
は(分岐B31)、本処理ルーチン全体が終了する。
【0070】他方、自由メモリ12内で検索対象データ
を発見できなかった場合には(分岐B31)、制限メモ
リ13上の未検索のブロックでデータの検索を行う(ス
テップS32)。自由メモリ12にキャッシュされたも
のに対応するブロックは古い情報なので、検索処理をス
キップする。
【0071】制限メモリ13内の検索が終了した場合は
(分岐B32)、本処理ルーチン全体を終了する。
【0072】また、制限メモリ13内の検索が終了して
いない場合には(分岐B33)、次のブロックに進み、
これが自由メモリ12にキャッシュされたブロックか否
かを判別する(ステップS34)。キャッシュされたブ
ロックに対応する場合には(分岐B33)、制限メモリ
13側のブロックは古い情報なので、ブロック内検索を
スキップし、ステップS32に戻る。
【0073】次の未検索ブロックが自由メモリ12にキ
ャッシュされたものでない場合には(分岐B33)、こ
の未検索ブロックに検索対象データが登録されているか
否かを検索する(ステップS35)。
【0074】この未検索ブロックに検索対象データが登
録されていない場合には(分岐B34)、ブロック内検
索をスキップし、ステップS32に戻る。他方、検索対
象データが登録されている場合には、このブロック内で
データの検索を行う(ステップS36)。
【0075】なお、ブロック内のデータ検索に使用する
アルゴリズムによっては、データ検索のパフォーマンス
が大きく左右される。一般に、ハッシュ・アルゴリズム
を使用(比較回数n=O(1))すると検索が最も早い
ことが当業界において知られている。但し、装置の制限
上使用できない場合には、バイナリ・サーチなどの代替
方式を採用すればよい。
【0076】バイナリ・サーチを使用(比較回数n=O
(log2n))した場合、全体を検索するのに必要な
情報比較回数Nは、次式のように表される。
【0077】
【数1】N = 有効ブロック数 × log2(1ブ
ロックに入る最大情報数)
【0078】ブロックへ情報を追加するときに検索キー
となるデータ順にソートする理由はここにある。ここ
で、1ブロックに保持できる情報が増加した場合、情報
数が2倍になると検索時の比較回数の変化は1回増える
だけなので微々たるものである。また、ブロック数が増
加した場合、全体比較回数は1ブロックに入る最大情報
数に対して要する比較回数分ずつ増加することになる。
したがって、既にブロック内部の比較回数が抑えられて
いるので、影響は予測可能で且つ固定的である。保持さ
れている情報と比較回数の関係を下表に示しておく。
【0079】
【表1】
【0080】但し、上表において、複数ブロックの検索
はこの比較回数とブロック数の席を表した値である。1
2,345件が7ブロックある場合、14回×7ブロッ
ク=98回が最大である。
【0081】[追補]以上、特定の実施例を参照しなが
ら、本発明について詳解してきた。しかしながら、本発
明の要旨を逸脱しない範囲で当業者が該実施例の修正や
代用を成し得ることは自明である。すなわち、例示とい
う形態で本発明を開示してきたのであり、限定的に解釈
されるべきではない。本発明の要旨を判断するために
は、冒頭に記載した特許請求の範囲の欄を参酌すべきで
ある。
【0082】
【発明の効果】以上詳記したように、本発明によれば、
データの消去や書き換え動作に制限のある制限メモリに
対するアクセスを効率的に行うことができる、優れたメ
モリ・アクセス管理装置並びに管理方法を提供すること
ができる。
【0083】また、本発明によれば、フラッシュ・メモ
リのようにブロックと言う比較的大きな単位でしかデー
タの消去や書き換えを行うことができないタイプの制限
メモリに対するデータ検索、消去、書き換えなどのメモ
リ・アクセスを効率的に行うことができる、優れたメモ
リ・アクセス管理装置並びに管理方法を提供することが
できる。
【0084】本発明によれば、制限メモリのキャッシュ
として自由メモリを用いることで、ブロック単位でデー
タを扱う分散型データ構造を効率的に利用することがで
き、この結果、以下に示すような効果を奏することがで
きる。すなわち、 (1)フラッシュ書換え時間の短縮 (2)フラッシュ書換え回数制限の軽減 (3)フラッシュ書込み速度の向上 (4)ブロック内データ移動の効率化
【0085】制限メモリがフラッシュ・メモリのような
不揮発性の記憶装置の場合、各種処理中の間に突如電源
供給が断たれた場合であっても、前回シンクロナイズし
たまでのデータは破壊されずに済むので、前回シンクロ
ナイズした状態から処理を再開することができる。(但
し、最後にシンクロナイズした以降の情報は反映されな
いので、その処理はシステム外て別途行う必要があ
る。)
【0086】要するに本発明によれば、フラッシュ・メ
モリのような特殊な書換え制限を持つ記憶装置に適応し
た方式により効率よくデータの保持並びに検索を行うこ
とができる。また、技術の進歩とともに計算機システム
などの記憶容量が増加した場合であっても、容易に拡張
することができるようになる。さらに、情報を差分で追
加又は削除する場合にも、メモリを分散管理しているの
で、システム全体に対してのデータ破壊のリスクが低
く、データ更新も効率的である。
【図面の簡単な説明】
【図1】本発明の一実施形態に係るメモリ管理装置1の
概略構成を示した図である。
【図2】制限メモリ13内のデータ管理構造を模式的に
示した図である。
【図3】計算機システムのメモリ空間上に制限メモリ1
3及び自由メモリ12がマッピングされた例を示した図
である。
【図4】メモリ管理装置1においてデータを保存・登録
するための処理手順を示したフローチャートである。
【図5】メモリ管理装置1においてデータをシンクロナ
イズするための処理手順を示したフローチャートであ
る。
【図6】メモリ管理装置1においてデータを削除するた
めの処理手順を示したフローチャートである。
【図7】メモリ管理装置1においてデータを検索するた
めの処理手順を示したフローチャートである。
【符号の説明】
1…メモリ管理装置 11…情報インターフェース 12…自由メモリ 13…制限メモリ

Claims (10)

    【特許請求の範囲】
  1. 【請求項1】ブロック単位でのみデータの書換が可能な
    制限メモリに対するメモリ・アクセスを管理するメモリ
    ・アクセス管理装置であって、 データ書換制限のない自由メモリと、 前記制限メモリ内のデータを変化させるときに、該当す
    るデータを含んだブロックを前記自由メモリにコピーす
    るデータ・ロード手段と、 前記自由メモリ上でコピーされたブロックに対するデー
    タ書き換えを行うデータ書き換え手段と、 前記自由メモリ上でデータが変化したブロックを、前記
    制限メモリ上の該当ブロックに反映させるデータ同期化
    手段と、を具備することを特徴とするメモリ・アクセス
    管理装置。
  2. 【請求項2】前記制限メモリ上に新たにデータを保存す
    る場合、 前記制限メモリ上でデータ保存先のブロックを選択し、 該選択されたブロックが自由メモリ上に存在するときに
    は前記データ書き換え手段により前記自由メモリ上で該
    選択されたブロックの該当位置にデータを保存し、 該選択されたブロックが自由メモリ上に存在しないとき
    には、前記データ同期化手段により前記自由メモリ上の
    データを前記制限メモリ上の該当ブロックに反映させた
    後に、該選択されたブロックを前記データ・ロード手段
    により前記制限メモリから前記自由メモリ上にロードし
    て、前記データ書き換え手段により前記自由メモリ上で
    該選択されたブロックの該当位置にデータを保存する、
    ことを特徴とする請求項1に記載のメモリ・アクセス管
    理装置。
  3. 【請求項3】前記データ同期化手段は、 前記自由メモリ上のブロックを前記制限メモリ上の空き
    ブロックに書き込むとともに、 前記制限メモリ上の元のブロックを空きブロックにす
    る、ことを特徴とする請求項1に記載のメモリ・アクセ
    ス管理装置。
  4. 【請求項4】前記データ同期化手段は、 前記自由メモリ上のブロックが満杯状態のときは、さら
    に、次にロードすべきブロックを前記制限メモリ上から
    選択し、該選択されたブロックを前記自由メモリ上にロ
    ードする、ことを特徴とする請求項3に記載のメモリ・
    アクセス管理装置。
  5. 【請求項5】前記制限メモリ上のデータを削除する場
    合、 該削除すべきデータを含んだブロックが自由メモリ上に
    存在するときには前記データ書き換え手段により前記自
    由メモリ上で該データを削除し、 該削除すべきデータを含んだブロックが前記自由メモリ
    上に存在しないときには、前記データ同期化手段により
    前記自由メモリ上のデータを前記制限メモリ上の該当ブ
    ロックに反映させた後に、前記データ・ロード手段によ
    り該削除すべきデータを含んだブロックを前記制限メモ
    リから前記自由メモリ上にロードして、前記データ書き
    換え手段により前記自由メモリ上で該削除すべきデータ
    を削除する、ことを特徴とする請求項1に記載のメモリ
    ・アクセス管理装置。
  6. 【請求項6】ブロック単位でのみデータの書換が可能な
    制限メモリに対するメモリ・アクセスをデータ書換制限
    のない自由メモリを用いて管理するメモリ・アクセス管
    理方法であって、 前記制限メモリ内のデータを変化させるときに、該当す
    るデータを含んだブロックを前記自由メモリにコピーす
    るデータ・ロード・ステップと、 前記自由メモリ上でコピーされたブロックに対するデー
    タ書き換えを行うデータ書き換えステップと、 前記自由メモリ上でデータが変化したブロックを、前記
    制限メモリ上の該当ブロックに反映させるデータ同期化
    ステップと、を具備することを特徴とするメモリ・アク
    セス管理方法。
  7. 【請求項7】前記制限メモリ上に新たにデータを保存す
    る場合、 前記制限メモリ上でデータ保存先のブロックを選択し、 該選択されたブロックが自由メモリ上に存在するときに
    は前記自由メモリ上で該選択されたブロックの該当位置
    にデータを保存し、 該選択されたブロックが自由メモリ上に存在しないとき
    には、前記自由メモリ上のデータを前記制限メモリ上の
    該当ブロックに反映させた後に、該選択されたブロック
    を前記制限メモリから前記自由メモリ上にロードして、
    前記データ書き換えステップにより前記自由メモリ上で
    該選択されたブロックの該当位置にデータを保存する、
    ことを特徴とする請求項6に記載のメモリ・アクセス管
    理方法。
  8. 【請求項8】前記データ同期化ステップでは、 前記自由メモリ上のブロックを前記制限メモリ上の空き
    ブロックに書き込むとともに、 前記制限メモリ上の元のブロックを空きブロックにす
    る、ことを特徴とする請求項6に記載のメモリ・アクセ
    ス管理方法。
  9. 【請求項9】前記データ同期化ステップでは、 前記自由メモリ上のブロックが満杯状態のときは、さら
    に、次にロードすべきブロックを前記制限メモリ上から
    選択し、該選択されたブロックを前記自由メモリ上にロ
    ードする、ことを特徴とする請求項8に記載のメモリ・
    アクセス管理方法。
  10. 【請求項10】前記制限メモリ上のデータを削除する場
    合、 該削除すべきデータを含んだブロックが自由メモリ上に
    存在するときには前記自由メモリ上で該データを削除
    し、 該削除すべきデータを含んだブロックが前記自由メモリ
    上に存在しないときには、前記自由メモリ上のデータを
    前記制限メモリ上の該当ブロックに反映させた後に、該
    削除すべきデータを含んだブロックを前記制限メモリか
    ら前記自由メモリ上にロードして、前記自由メモリ上で
    該削除すべきデータを削除する、ことを特徴とする請求
    項6に記載のメモリ・アクセス管理方法。
JP2001017955A 2001-01-26 2001-01-26 メモリ・アクセス管理装置並びに管理方法 Pending JP2002222120A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2001017955A JP2002222120A (ja) 2001-01-26 2001-01-26 メモリ・アクセス管理装置並びに管理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2001017955A JP2002222120A (ja) 2001-01-26 2001-01-26 メモリ・アクセス管理装置並びに管理方法

Publications (2)

Publication Number Publication Date
JP2002222120A true JP2002222120A (ja) 2002-08-09
JP2002222120A5 JP2002222120A5 (ja) 2008-03-06

Family

ID=18884055

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001017955A Pending JP2002222120A (ja) 2001-01-26 2001-01-26 メモリ・アクセス管理装置並びに管理方法

Country Status (1)

Country Link
JP (1) JP2002222120A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006065533A (ja) * 2004-08-26 2006-03-09 Sony Corp 半導体記憶装置およびそのアクセス方法、並びにメモリ制御システム
JP4834676B2 (ja) * 2004-12-21 2011-12-14 サンディスク コーポレイション オンチップ不揮発性メモリ書き込みキャッシュを使用するシステムおよび方法
JP2011253251A (ja) * 2010-05-31 2011-12-15 Toshiba Corp データ記憶装置及びデータ書き込み方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10340221A (ja) * 1997-06-06 1998-12-22 Matsushita Electric Ind Co Ltd フラッシュメモリ装置
JPH11341138A (ja) * 1998-05-29 1999-12-10 Toshiba Corp データ書換え方法およびこれを用いた電子機器、無線端末装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10340221A (ja) * 1997-06-06 1998-12-22 Matsushita Electric Ind Co Ltd フラッシュメモリ装置
JPH11341138A (ja) * 1998-05-29 1999-12-10 Toshiba Corp データ書換え方法およびこれを用いた電子機器、無線端末装置

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006065533A (ja) * 2004-08-26 2006-03-09 Sony Corp 半導体記憶装置およびそのアクセス方法、並びにメモリ制御システム
JP4834676B2 (ja) * 2004-12-21 2011-12-14 サンディスク コーポレイション オンチップ不揮発性メモリ書き込みキャッシュを使用するシステムおよび方法
JP2011253251A (ja) * 2010-05-31 2011-12-15 Toshiba Corp データ記憶装置及びデータ書き込み方法
US8332579B2 (en) 2010-05-31 2012-12-11 Kabushiki Kaisha Toshiba Data storage apparatus and method of writing data

Similar Documents

Publication Publication Date Title
CA2574756C (en) Systems, methods, computer readable medium and apparatus for memory management using nvram
US6587915B1 (en) Flash memory having data blocks, spare blocks, a map block and a header block and a method for controlling the same
US7191306B2 (en) Flash memory, and flash memory access method and apparatus
USRE45577E1 (en) Method of writing to a flash memory including data blocks and log blocks
KR100453053B1 (ko) 플래쉬 메모리용 파일 시스템
US7127551B2 (en) Flash memory management method
JP3215237B2 (ja) 記憶装置および記憶装置の書き込み/消去方法
TWI590049B (zh) 記憶體裝置與其操作方法
US7734862B2 (en) Block management for mass storage
US8180955B2 (en) Computing systems and methods for managing flash memory device
US5717886A (en) Semiconductor disk device and memory management method
US20070016719A1 (en) Memory device including nonvolatile memory and memory controller
EP0544252A2 (en) Data management system for programming-limited type semiconductor memory and IC memory card having the data management system
KR100608602B1 (ko) 플래시 메모리, 이를 위한 사상 제어 장치 및 방법
JP2005242897A (ja) フラッシュディスク装置
KR20010037155A (ko) 플래시 파일 시스템
US20070005929A1 (en) Method, system, and article of manufacture for sector mapping in a flash device
KR100745163B1 (ko) 동적 매핑 테이블을 이용한 플래시 메모리 관리방법
CN111949212B (zh) 基于自定义开放通道ssd的文件系统及文件管理方法
JP2002222120A (ja) メモリ・アクセス管理装置並びに管理方法
JPH10289144A (ja) メモリの制御方法
JP2749752B2 (ja) メモリの書き込み制御装置
KR20020020104A (ko) 데이터 입출력 속도가 증가된 메모리 카드
JP2003036201A (ja) メモリアクセス管理装置
JP2004126945A (ja) 記憶装置及びその制御方法

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080121

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080121

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110316

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110322

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20110906