JPH08129509A - メモリ制御装置及び方法 - Google Patents

メモリ制御装置及び方法

Info

Publication number
JPH08129509A
JPH08129509A JP6268712A JP26871294A JPH08129509A JP H08129509 A JPH08129509 A JP H08129509A JP 6268712 A JP6268712 A JP 6268712A JP 26871294 A JP26871294 A JP 26871294A JP H08129509 A JPH08129509 A JP H08129509A
Authority
JP
Japan
Prior art keywords
memory
block
address
flash memory
write
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.)
Withdrawn
Application number
JP6268712A
Other languages
English (en)
Inventor
Takeo Kimura
岳男 木村
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.)
Canon Inc
Original Assignee
Canon Inc
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 Canon Inc filed Critical Canon Inc
Priority to JP6268712A priority Critical patent/JPH08129509A/ja
Publication of JPH08129509A publication Critical patent/JPH08129509A/ja
Withdrawn legal-status Critical Current

Links

Landscapes

  • Memory System (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

(57)【要約】 【目的】フラッシュメモリをRAMと同様に扱うことの
できるメモリ制御装置及び方法を提供する。 【構成】フラッシュメモリ13,23は、適当なブロッ
クに分割され管理されている。それらブロックから予め
書込まれる可能性のあるブロックはRAM14部転送さ
れ、それらの対応はアドレス変換マップ26に登録され
る。フラッシュメモリにアクセスする場合、そのアドレ
スを含むブロックがアドレス変換マップ26に登録され
ている場合、RAM14のアドレスに変換され、RAM
14をアクセスする。更新されたRAM14のブロック
は、電源を落とす前や、リセット時など、RAM14が
初期化される前に体操するフラッシュメモリのブロック
に書き戻される。こうして、フラッシュメモリをRAM
と同様に扱うことができ、書き換えの手順や時間を意識
しなくともよく、また、必要なブロックをRAMに転送
するため、RAMの容量も抑えることができる。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、例えば記憶装置として
フラッシュメモリを使った各種機器おけるメモリ制御装
置及び方法に関するものである。
【0002】
【従来の技術】フラッシュメモリと呼ばれる半導体メモ
リ素子があるが、これはフラッシュ型のEEPROMの
ことであり、電気的に消去と書き込みとが可能な不揮発
性メモリ素子のうち、ブロック/セクタなどの単位で呼
ばれるある一定以上の容量をまとめて消去できる機能を
持つものをいう。
【0003】フラッシュメモリの特徴としては、電源な
しで記憶内容を保持できる不揮発性や、半導体素子であ
ることによる対衝撃性/高速アクセス性が挙げられ、各
種コンピュータ機器のブート用プログラムの記憶素子と
して利用されたり、半導体ファイルを構成する記憶素子
等として利用されている。
【0004】
【発明が解決しようとする課題】しかしながら、フラッ
シュメモリの書き換えはその原理上読みだしに比べてか
なり速度が遅く、さらに書換の単位が集百バイトから数
百キロバイトとなっているので、プログラムによる制御
下でフラッシュメモリの書き換えをする場合にその処理
が複雑になるという問題があった。また、書き換えを繰
り返すうちに物理的に劣化し、現時点では10^4〜10
^6(x^yはxのy乗を表わす)回程度の書き換えで事実
上使用できなくなると一般的に言われている。
【0005】本発明は上記従来例に鑑みてなされたもの
で、フラッシュメモリの書き換えを高速に行い、しかも
書き換えの回数を減らしてメモリの寿命を延ばすメモリ
制御装置及び方法を提供することを目的とする。
【0006】
【課題を解決するための手段】上記課題を解決するため
に、本発明のメモリ制御装置は次のような構成から成
る。すなわち、書込み可能な不揮発性メモリを用いたメ
モリ制御装置であって、所定の手順で書込みができる、
所定サイズのブロックに区切られた不揮発性の第1メモ
リと、前記ブロックと同サイズのブロックに区切られた
読み書き可能な第2メモリとを有する記憶手段と、前記
第1メモリのブロックを前記第2メモリのブロックに転
送する転送手段と、前記第1メモリに付されたアドレス
を、前記第2メモリに対応させて変換する変換手段と、
前記第2メモリに転送されたブロックを、前記第1メモ
リに書き戻す書き戻し手段と、前記転送手段と前記書き
戻し手段とを制御する制御手段とを備える。
【0007】また、所定の手順で書込みができる、所定
サイズのブロックに区切られたフラッシュメモリと、前
記ブロックと同サイズのブロックに区切られたランダム
アクセスメモリとを有する記憶手段と、前記フラッシュ
メモリのブロックを前記第2メモリのブロックに対応さ
せて転送する転送手段と、前記フラッシュメモリに付さ
れたアドレスを、該アドレスが含まれるブロックに対応
する前記ランダムアクセスメモリにおけるアドレスに変
換する変換手段と、前記転送手段によりランダムアクセ
スメモリに転送されたブロックを、前記フラッシュメモ
リに書き戻す書き戻し手段と、前記転送手段と前記書き
戻し手段とを制御する制御手段とを備える。
【0008】また、本発明のメモリ制御方法は次のよう
な構成から成る。即ち、所定の手順で書込みができる、
所定サイズのブロックに区切られた不揮発性の第1メモ
リと、前記ブロックと同サイズのブロックに区切られた
読み書き可能な第2メモリとを有するメモリ制御方法で
あって、前記第1メモリのブロックを前記第2メモリの
ブロックに転送する転送工程と、前記第1メモリに付さ
れたアドレスを、前記第2メモリに対応させて変換する
変換工程と、前記第2メモリに転送されたブロックを、
前記第1メモリに書き戻す書き戻し工程と、前記転送工
程と前記書き戻し工程とを制御する制御工程とを備え
る。
【0009】
【作用】上記構成により、第1メモリのブロックを第2
メモリへと転送し、転送したブロックについては、第1
のメモリをアクセスする場合にそれを第2のメモリのア
ドレスに変換する。
【0010】
【実施例】以下、添付図面にしたがって、本発明の実施
例1〜4としてフラッシュメモリを利用したフラッシュ
メモリ制御装置を詳細に説明するが、その前にまず、図
1を参照してフラッシュメモリ制御装置の基本構成を説
明する。
【0011】図1において、11はフラッシュメモリ制
御装置を組み込んだ機器全体を制御するコンピュータ
(CPU)、12は機器を制御するプログラムや各種デ
ータを格納するためのRAM、13はフラッシュメモリ
であり装置を起動するためのブートプログラムやシステ
ム設定データなどが格納される。14はフラッシュメモ
リ13中で指定されたブロックのコピーを保持するため
のRAM、15はフラッシュメモリ13をアクセスした
時に、フラッシュメモリ13の代わりにRAM14をア
クセスするようにアドレスを変換する装置、16はアド
レス変換装置15で使用するアドレス変換マップや書き
換えの制御のための情報等を格納する領域である。17
はRAM14の内容をフラッシュメモリ13へ書き込む
タイミングを検出/制御する書き換え制御装置である。
【0012】以上の構成を有する機器の動作を、以下に
詳しく説明する。 [実施例1]第1の実施例を図2,図3,図4,図5,
図6,図7に基づき説明する。
【0013】図2は、第1の実施例の構成図である。図
2において、26は、アドレス変換器15において主に
使用されるアドレス変換マップである。アドレス変換マ
ップ26には、フラッシュメモリ13及び23に設定さ
れたブロックとRAM14上に設定されたブロックとの
対応関係がそれぞれ記憶できる。このアドレス変換マッ
プ26は、図3に示すように、フラッシュメモリ13,
23の任意のブロックをRAM14上の任意のブロック
に対応づけることが可能である。そのため、書き換えの
必要のあるフラッシュメモリのブロックのみをアドレス
変換マップ26に登録することができ、フラッシュメモ
リ13,23と同容量のRAMを用意する必要が無く、
RAM14の容量を節約できる。なお、これらメモリ上
のブロックは予め定められた大きさに区切られている。
【0014】図3はマッピングの様子を示す図である。
図3の例では、フラッシュメモリ13の第[4]ブロッ
クをRAM14の第(5)ブロックへマッピングするよ
うにアドレス変換マップ26の<4>番目の場所にマッ
ピング情報が記憶されている。
【0015】アドレス変換マップ26においては、その
マッピング情報を予め不揮発性の記憶素子に記憶してお
くことで、装置の起動時にフラッシュメモリ13,23
のうち必要なブロックをRAM14に転送することがで
きる。また、マッピング情報を書き換え可能な素子に記
憶しておくことで、動作中にブロックのマッピング情報
を変更したり、フラッシュメモリのあるブロックの動作
不良を検出した場合に、フラッシュメモリ内に用意され
た代替ブロックにマッピングし直すことが可能になる。
【0016】さて、装置の初期化が終了し動作し出す時
に、アドレス変換器15が機能するようにしておくと、
すなわち図6に示すように、初期化の処理が終えたなら
(ステップS171)、アドレス変換マップ26のマッ
ピング情報に従ってフラッシュメモリ13,23からR
AM14に記憶内容を転送し(ステップS172)、そ
れ以後のアドレスマッピングを行うと、フラッシュメモ
リ13,23をアクセスする代わりにRAM14をアク
セスすることができる。アドレス変換機15のアドレス
変換の動作手順を図4のフローチャートに示す。
【0017】ステップS91 … アドレス変換マップ
26を検索し、アクセスされたアドレス(A−a)を含
むフラッシュメモリのブロック(B−a)がアドレス変
換マップに登録されているかどうかを調べる。アクセス
されたアドレス(A−a)を含むブロック(B−a)が
アドレス変換マップに登録されていたならば、ステップ
S92へ進んでアドレス変換を行い、そうでなければア
ドレス(A−a)の変換を行なわない。変換を行なわな
い場合、フラッシュメモリ13,23上のブロック(B
−a)が直接アクセスされる。
【0018】ステップS92 … ステップS91にお
いて、アクセスされたアドレス(A−a)を含むフラッ
シュメモリのブロック(B−a)がアドレス変換マップ
に登録されていたならば、登録されたマッピング情報を
使ってRAM14上の対応するアドレス(A−b)をア
クセスするようにアドレス(A−a)を変換する。
【0019】このように、アドレス変換マップを使っ
て、実際にアクセスする素子を切替える。その結果、C
PU11からフラッシュメモリ13,23をアクセスし
ても、そのアドレスがアドレス変換マップ26に登録さ
れているブロックに含まれているならば、実際にはRA
M14の対応するブロックにアクセスすることになる。
そのため、メモリの書き換えの際にフラッシュメモリを
直接アクセスしないように、書き換えの可能性のあるフ
ラッシュメモリのブロックはすべてアドレス変換マップ
に登録しておけば、フラッシュメモリを書き換えるため
の特別な手順を用いなくとも、通常のRAMとして書き
換えることができる。
【0020】また、フラッシュメモリを書き換えをしよ
うとすると、書き換えようとしたブロックのアドレス変
換マップを更新してそのブロックを対応するRAM上の
ブロックに転送し、アドレスを変換する処理を行うこと
で、フラッシュメモリをあたかも通常のRAMの如く利
用できる。アドレス変換器15によるアドレス変換の手
順を図7に示した。
【0021】図7において、まずアドレスが指定される
と、そのアドレスがフラッシュメモリを示すものか判定
する(ステップS181)。そうでなければアドレス変
換は行わなず、そうであれば、指定されたアドレスを含
むブロックがアドレス変換マップ26に登録されている
か判定する(ステップS182)。既に登録されていれ
ばそのマップ情報を用いてアドレス変換し(ステップS
185)、RAM14にアクセスする。登録されていな
い場合、メモリへのアクセスが書込みか判定し(ステッ
プS183)、書込みであればアクセスされたアドレス
を含むフラッシュメモリ13,23のブロックと、RA
M14の空きブロックとを対応付けたマッピング情報を
アドレス変換マップ26に登録する(ステップS18
4)。このようにして予めマッピング情報を登録してお
くのではなく、動的に追加していき手法をとることもで
きる。このようにすることで、アドレス変換マップに登
録されていないフラッシュメモリのブロックがアクセス
された場合にも柔軟に対応できる。
【0022】また、フラッシュメモリを書き換えようと
した場合にアドレス変換マップにそのブロックの情報が
登録されていなければ、エラーとして処理しても良い。
このようにすれば、書き換えてはならないフラッシュメ
モリの内容を書き換えてしまうことを防止することがで
きる。
【0023】以上のようにすることで、フラッシュメモ
リを利用するプログラムを実行する場合でも、そのプロ
グラムにおいてはフラッシュメモリへのアクセスを特に
意識せずに動作することができる。しかし、プログラム
の実行中にフラッシュメモリを書き換えたつもりであっ
てもこのままでは対応するRAM14上の内容を書き換
えただけであり、装置の電源を切ったりすればその情報
は失われてしまうことになる。そこで、本実施例では書
き換え制御装置17を備えてシステムを監視し、装置の
電源の切断またはリセットを検出した場合、または一定
時間が経過した毎、またはCPUのアイドル状態を検出
した場合等に、RAM14の内容をアドレス変換マップ
にしたがってフラッシュメモリ13,23に書き戻すよ
うにする。また、プログラムが明示的にフラッシュメモ
リの書き換えを書き換え制御装置に対して要求した場合
も同様な動作を行なう。この場合、実際の書き換え作業
は、使用するフラッシュメモリに適合した手順で行なわ
れるよう、特別なハードウェアを用意して動作させても
良いし、特別なプログラムを用意して動作させても良
い。なお、特にプログラムによる書き換えでは、あらか
じめアドレス変換器の機能をOFFにしておくなどの注
意が必要である。書き換えの手順を図5に示し、以下に
説明する。
【0024】ステップS101 … RAM14にマッ
ピングされたブロックの内容をすべてフラッシュメモリ
13,23に書き出したかどうか調べる。すべてのブロ
ックを書き出したならば書き換えを終了し、そうでなけ
ればステップS102へ進む。
【0025】ステップS102 … アドレス変換マッ
プ26を検索し、RAM14上のブロック(B−b)に
対応するフラッシュメモリのブロック(B−a)を得
る。変換終了後、ステップS103へ進む。
【0026】ステップS103 … ステップS102
において得られたブロック(B−a)をRAM14上の
ブロック(B−b)の内容で書き換える。次のブロック
の書き換えをするため、ステップS101へ進む。
【0027】このようにRAM14の内容を対応するフ
ラッシュメモリに書き戻すことで、書き換えられた内容
をフラッシュメモリに保持することができる。
【0028】以上、本実施例のような手段を設けること
で、フラッシュメモリを直接アクセスしなくてもプログ
ラムが動作できるようになる。そのため、フラッシュメ
モリに対する読出し・書込みがRAMと同じ手順で実行
でき、プログラムの開発に余計な手間をかけずに済
む。。
【0029】また、アドレス変換マップに登録されたブ
ロックが更新の対象となるため、不要なフラッシュメモ
リの書き換えを避けることができる。特に図7に示した
ように動的にアドレス変換マップを登録する場合には、
実際に書き換えられたブロックがアドレス変換マップに
登録されているため、フラッシュメモリの書き換えを、
実際に内容が書き換えられたブロックに限って行うこと
ができるため、フラッシュメモリの寿命を延ばすことが
できる。 [実施例2]第2の実施例を図8,図9,図10,図1
1に基づき説明する。
【0030】図8は、第2の実施例の構成図である。こ
れは、第1の実施例で示した装置に更新制御マップ46
を追加したものである。このマップ46は、RAM14
の内容を実際にフラッシュメモリ13,23に書き込む
際に参照されるものである。更新制御マップ46には、
アドレス変換器15によってRAM14の各ブロックが
アクセスされたか、特に書き換えられたかどうかの情報
が記録される。そして、書き換え制御装置17によって
実際にRAM14の内容がフラッシュメモリ13,23
に転送される際に、この更新制御マップ46の情報を使
うことで、書き換えられたブロックだけの転送ができ
る。そのため、さらにフラッシュメモリへのアクセス回
数を減らすことができる。図9の例では、フラッシュメ
モリのブロック[2]に対応するRAM14のブロック
(2)が更新されたことが更新制御マップ46に登録さ
れている。
【0031】本実施例におけるアドレス変換器15の動
作手順は次のようになる(図10)。
【0032】ステップS111 … アドレス変換マッ
プ26を検索し、アクセスされたアドレス(A−a)を
含むフラッシュメモリのブロック(B−a)がアドレス
変換マップに登録されているかどうかを調べる。アクセ
スされたアドレス(A−a)を含むブロック(B−a)
がアドレス変換マップに登録されていたならばステップ
S112へ進み、そうでなければアドレス(A−a)の
変換を行なわずにフラッシュメモリ13上のブロック
(B−a)を直接アクセスする。
【0033】ステップS112 … ステップS111
において、アクセスされたアドレス(A−a)を含むフ
ラッシュメモリのブロック(B−a)がアドレス変換マ
ップに登録されていたならば、登録された情報を使って
RAM14上の対応するアドレス(A−b)をアクセス
するようにアドレス(A−a)を変換する。
【0034】ステップS113 … ステップS112
におけるアクセスが書き込み動作かどうか調べる。
【0035】ステップS114 … ステップS113
においてアクセスが書き込み動作であるとわかったなら
ば、更新制御マップ46にブロック(B−b)に対する
書き込みがあったことを記録する。
【0036】また、装置の電源断のシーケンスやリセッ
トされた場合のフラッシュメモリの書き換え操作の手順
は次のようになる(図11)。
【0037】ステップS121 … RAM14にマッ
ピングされたブロックの内容をすべてフラッシュメモリ
13,23に書き出したかどうか調べる。すべてのブロ
ックを書き出したならば書き換えを終了し、そうでなけ
ればステップS122へ進む。
【0038】ステップS122 … 処理対象であるブ
ロック(B−b)が書き換えられたかどうかを更新制御
マップ46を使って調べる。
【0039】ステップS123 … ステップS122
において、該当ブロック(B−b)が書き換えられてい
たと判定されたならば、アドレス変換マップ26を検索
し、RAM14上のブロック(B−b)に対応するフラ
ッシュメモリのブロック(B−a)を得る。その後、ス
テップS124へ進む。
【0040】ステップS124 … ステップS123
において得られたブロック(B−a)をRAM14上の
ブロック(B−b)の内容で書き換える。次のブロック
の書き換えをするため、ステップS121へ戻る。
【0041】以上、本実施例のような手段を設けること
で、フラッシュメモリを直接アクセスしなくてもプログ
ラムが動作できるようになる。更に、更新制御を加えた
ことによりフラッシュメモリの書き換えの効率が向上す
る。 [実施例3]第3の実施例を図12,図13,図14,
図15に基づき説明する。
【0042】図12は、第3の実施例の構成図である。
これは、第1の実施例で示した装置に書き換えモードマ
ップ66を追加したものである。このマップ66は、R
AM14の内容を実際にフラッシュメモリ13,23に
書き込む際に参照されるものである。書き換えモードマ
ップ66には、アドレス変換器15によってアクセスさ
れたRAM14の各ブロックを書き換えられるかどう
か、また、書き換えられたRAM14の内容をフラッシ
ュメモリ13,23に転送しても良いかどうかの情報が
記録される。そして、書き換え制御装置17によって実
際にRAM14の内容がフラッシュメモリ13,23に
転送される際にこのマップ66の情報を使うことで、フ
ラッシュメモリ13,23の書き換えが許可されたブロ
ックだけの転送を行なうことができ、フラッシュメモリ
へのアクセスの回数を減らすとともにシステムの安全性
を向上させることができる。
【0043】メモリの書き換えの許可の制御は、RAM
14に対する書き換えの許可と、RAM14の内容のフ
ラッシュメモリへの書き込みの許可とを独立して与える
ことができる。これにより、RAM14においては書き
換え可能であっても対応するフラッシュメモリ13,2
3においては書き換え不可能なブロックを作ることがで
きる。すなわち、装置の動作中はメモリ内容を変更でき
るが初期値を保護したい場合などに利用することができ
る。当然ながら初期値を変えたい場合には、一時的にフ
ラッシュメモリへの書き込みを許可し、書き換え制御装
置17に対して明示的に書き換えを指示した後に、必要
ならば再びフラッシュメモリの書き換えを不許可にすれ
ば良い。図13の例では、フラッシュメモリ13上のブ
ロック[1]はRAM14上のブロック(1)に対応
し、共に書き換えは不許可、ブロック[2]はブロック
(2)に対応し、ブロック(2)のみ書き換え許可、ブ
ロック[4]はブロック(5)に対応し、ブロック
(5)は書き換え許可され、その内容をブロック[4]
へ戻すことも許可することが書き換えモードマップ66
に記録されている。
【0044】この場合、アドレス変換器15の動作手順
は次のようになる(図14)。
【0045】ステップS131 … アドレス変換マッ
プ26を検索し、アクセスされたアドレス(A−a)を
含むフラッシュメモリのブロック(B−a)がアドレス
変換マップに登録されているかどうかを調べる。アクセ
スされたアドレス(A−a)を含むブロック(B−a)
がアドレス変換マップに登録されていたならば、ステッ
プS132へ進む。そうでなければアドレス(A−a)
の変換を行なわず、フラッシュメモリ13上のブロック
(B−a)を直接アクセスする。
【0046】ステップS132 … ステップS131
において、アクセスされたアドレス(A−a)を含むフ
ラッシュメモリのブロック(B−a)がアドレス変換マ
ップに登録されていたならば、登録された情報を使って
RAM14上の対応するアドレス(A−b)をアクセス
するようにアドレス(A−a)を変換する。
【0047】ステップS133 … ステップS132
におけるアクセスが書き込み動作かどうか調べる。
【0048】ステップS134 … ステップS133
においてアクセスが書き込み動作であるとわかったなら
ば、ステップS132において変換されたアドレス(A
−b)を含むRAM14上のブロック(B−b)が書き
換え許可されているかどうかを、書き換えモードマップ
66を用いて調べる。そして、該当ブロック(B−b)
が書き換え許可されていなければエラーとする。
【0049】以上のようにしてフラッシュメモリに対応
するRAM14の各ブロックについて書込み許可/禁止
の制御を行うことができる。
【0050】また、フラッシュメモリの書き換え操作の
手順は次のようになる(図15)。
【0051】ステップS141 … RAM14にマッ
ピングされたブロックの内容をすべてフラッシュメモリ
に書き出したかどうかを調べる。すべてのブロックを書
き出したならば書き換えを終了し、そうでなければステ
ップS142へ進む。
【0052】ステップS142 … アドレス変換マッ
プ26を検索し、処理対象であるRAM14上のブロッ
ク(B−b)に対応するフラッシュメモリのブロック
(B−a)を得る。その後、ステップS143へ進む。
【0053】ステップS143 … ステップS142
で得られたフラッシュメモリ上のブロック(B−a)が
書き換え許可されているかどうかを書き換えモードマッ
プ66を使って調べる。
【0054】ステップS144 … ステップS143
において該当ブロック(B−a)が書き換え許可されて
いるならば、ブロック(B−a)をRAM14上のブロ
ック(B−b)の内容で書き換える。次のブロックの書
き換えをするため、ステップS141へ進む。
【0055】上記手順により、RAM14上で更新され
たデータをフラッシュメモリヘと書き戻す処理の許可/
禁止を制御することができる。
【0056】以上、本実施例のような手段を設けること
で、フラッシュメモリの内容をそれに対応するRAMに
アクセスすることで読み書きでき、RAM。フラッシュ
メモリ双方に対して独立に書込み禁止の制御を行うこと
ができる。これにより、第1の実施例と比べると書き換
えモードマップを加えたことによりフラッシュメモリの
書き換えの効率が向上し、また、システムの安全性も向
上する。 [実施例4]第4の実施例を図16,図17,図18に
基づき説明する。
【0057】図16は、第4の実施例の構成図である。
これは、第1の実施例で示した装置に第2の実施例での
更新制御マップ46と第3の実施例での書き込みモード
マップとを追加したものである。これにより、書き換え
制御装置17によって実際にRAM14の内容がフラッ
シュメモリ13,23に転送される際に、これらのマッ
プの情報を使うことで、書き換えられたRAMの内容
を、対応するフラッシュメモリの書き換えが許可された
ブロックだけ転送することができる。このため、さらに
フラッシュメモリへのアクセスの回数を減らすことがで
きる。
【0058】この時、アドレス変換器15の動作手順は
次のようになる(図17)。
【0059】ステップS151 … アドレス変換マッ
プ26を検索し、アクセスされたアドレス(A−a)を
含むブロック(B−a)がアドレス変換マップ26に登
録されているかどうかを調べる。アクセスされたアドレ
ス(A−a)を含むブロック(B−a)がアドレス変換
マップに登録されていたならば、ステップS152へ進
む。そうでなければアドレス(A−a)の変換を行な
ず、フラッシュメモリ13上のブロック(B−a)を直
接アクセスする。
【0060】ステップS152 … ステップS151
において、アクセスされたアドレス(A−a)を含むブ
ロック(B−a)がアドレス変換マップに登録されてい
たならば、登録された情報を使ってRAM14上の対応
するアドレス(A−b)をアクセスするようにアドレス
(A−a)を変換する。
【0061】ステップS153 … ステップS152
におけるアクセスが書き込み動作かどうか調べる。
【0062】ステップS154 … ステップS153
においてアクセスが書き込み動作であるとわかったなら
ば、ステップS152において変換されたアドレス(A
−b)を含むRAM14上のブロック(B−b)が書き
換え許可されているかどうかを書き換えモードマップ6
6を用いて調べる。そして、該当ブロック(B−b)が
書き換え許可されていなければエラーとする。
【0063】ステップS155 … ステップS154
において、該当するブロック(B−b)が書き換え許可
されているならば、更新制御マップ46にブロック(B
−b)に対する書き込みがあったことを記録する。
【0064】また、フラッシュメモリの書き換え操作の
手順は次のようになる(図18)。
【0065】ステップS161 … RAM14にマッ
ピングされたブロックの内容をすべてフラッシュメモリ
に書き出したかどうか調べる。すべてのブロックを書き
出したならば書き換えを終了し、そうでなければステッ
プS162へ進む。
【0066】ステップS162 … 処理対象であるブ
ロック(B−b)が書き換えられたかどうかを更新制御
マップ46を使って調べる。
【0067】ステップS163 … ステップS162
において該当ブロック(B−b)が書き換えられていた
ならば、アドレス変換マップ26を検索し、RAM14
上のブロック(B−b)に対応するフラッシュメモリの
ブロック(B−b)を得る。その後、ステップS164
へ進む。
【0068】ステップS164 … ステップS163
で得られたフラッシュメモリ上のブロック(B−a)が
書き換え許可されているかどうかを書き換えモードマッ
プ66を使って調べる。
【0069】ステップS165 … ステップS164
において該当ブロック(B−a)が書き換え許可されて
いるならば、ブロック(B−a)をRAM14上のブロ
ック(B−b)の内容で書き換える。次のブロックの書
き換えをするため、ステップS161へ進む。
【0070】以上、本実施例のような手段を設けること
で、フラッシュメモリを直接アクセスしなくてもプログ
ラムが動作できるようになり、他の実施例と比べると更
新制御マップと書き換えモードマップを加えたことによ
りフラッシュメモリの書き換えの効率がさらに向上し、
また、システムの安全性も向上する。
【0071】また上記第1〜第4実施例で説明したフラ
ッシュメモリのマッピング及び書込み制御の下でプログ
ラムを作成すれば、そのプログラムにおいてはフラッシ
ュメモリを意識しなくとも、フラッシュメモリをRAM
と同様に扱うことができる。また、フラッシュメモリと
RAMとを同じように扱っても、書込み許可/禁止制御
を行うためにフラッシュメモリの内容を不用意に書き換
えてしまうことも防止できる。
【0072】尚、本発明は、複数の機器から構成される
システムに適用しても、1つの機器から成る装置に適用
しても良い。また、本発明はシステム或は装置にプログ
ラムを供給することによって達成される場合にも適用で
きることは言うまでもない。
【0073】
【発明の効果】以上説明したように、本発明のメモリ制
御装置及び方法によれば、フラッシュメモリに対するア
クセス速度を上げることができるという効果がある。ま
た、フラッシュメモリをそれと意識しなくて良いという
効果もある。更に、フラッシュメモリの書込みの管理を
ブロック毎に行うために、フラッシュメモリの書き換え
回数を減らすことができ、その結果フラッシュメモリの
劣化を軽減するという効果もある。
【0074】
【図面の簡単な説明】
【図1】本発明のフラッシュメモリ制御装置を実現する
基本ブロック図である。
【図2】本発明の第1の実施例の基本ブロック図であ
る。
【図3】アドレス変換マップの概念図である。
【図4】第1の実施例におけるアドレス変換器の動作を
示すフローチャートである。
【図5】第1の実施例におけるフラッシュメモリ書き換
えの動作を示すフローチャートである。
【図6】第1の実施例における機器の電源立ち上げ時の
動作を示すフローチャートである。
【図7】第1の実施例におけるアドレス変換マップ更新
の手順を示すフローチャートである。
【図8】本発明の第2の実施例の基本ブロック図であ
る。
【図9】更新制御マップの概念図である。
【図10】第1の実施例におけるアドレス変換器の動作
を示すフローチャートである。
【図11】第2の実施例におけるフラッシュメモリ書き
換えの動作を示すフローチャートである。
【図12】本発明の第3の実施例の基本ブロック図であ
る。
【図13】書き換えモードマップの概念図である。
【図14】第3の実施例におけるアドレス変換器の動作
を示すフローチャートである。
【図15】第3の実施例におけるフラッシュメモリ書き
換えの動作を示すフローチャートである。
【図16】本発明の第4の実施例の基本ブロック図であ
る。
【図17】第4の実施例におけるアドレス変換器の動作
を示すフローチャートである。
【図18】第4の実施例におけるフラッシュメモリ書き
換えの動作を示すフローチャートである。
【符号の説明】 11 CPU 12 RAM 13 フラッシュメモリ 14 RAM 15 アドレス変換器 16 各種マップ 17 書き換え制御装置

Claims (7)

    【特許請求の範囲】
  1. 【請求項1】 書込み可能な不揮発性メモリを用いたメ
    モリ制御装置であって、 所定の手順で書込みができる、所定サイズのブロックに
    区切られた不揮発性の第1メモリと、前記ブロックと同
    サイズのブロックに区切られた読み書き可能な第2メモ
    リとを有する記憶手段と、 前記第1メモリのブロックを前記第2メモリのブロック
    に転送する転送手段と、 前記第1メモリに付されたアドレスを、前記第2メモリ
    に対応させて変換する変換手段と、 前記第2メモリに転送されたブロックを、前記第1メモ
    リに書き戻す書き戻し手段と、 前記転送手段と前記書き戻し手段とを制御する制御手段
    と、を備えることを特徴とするメモリ制御装置。
  2. 【請求項2】 前記制御手段は、前記転送手段によるブ
    ロックの転送を、書込みの対象となる第1メモリのブロ
    ックについて実行することを特徴とする請求項1に記載
    のメモリ制御装置。
  3. 【請求項3】 前記制御手段は、前記書き戻し手段によ
    るブロックの書き戻しを、書込みの対象となった第2メ
    モリのブロックについて実行することを特徴とする請求
    項1に記載のメモリ制御装置。
  4. 【請求項4】 前記制御手段は、前記書込み手段による
    書き戻しを、前記第1メモリの所望のブロックについて
    禁止する手段を有し、書き戻しが禁止されていないブロ
    ックについて書き戻しを行うことを特徴とする請求項1
    乃至3いずれかに記載のメモリ制御装置。
  5. 【請求項5】 前記制御手段は、前記転送手段による第
    1メモリから第2メモリへの転送を当該装置の電源投入
    時に実行し、前記書き戻し手段による第2メモリから第
    1メモリへの書き戻しを、第2のメモリの内容が消去さ
    れる以前に実行するよう制御することを特徴とする請求
    項1乃至4いずれかに記載のメモリ制御装置。
  6. 【請求項6】所定の手順で書込みができる、所定サイズ
    のブロックに区切られたフラッシュメモリと、前記ブロ
    ックと同サイズのブロックに区切られたランダムアクセ
    スメモリとを有する記憶手段と、 前記フラッシュメモリのブロックを前記第2メモリのブ
    ロックに対応させて転送する転送手段と、 前記フラッシュメモリに付されたアドレスを、該アドレ
    スが含まれるブロックに対応する前記ランダムアクセス
    メモリにおけるアドレスに変換する変換手段と、 前記転送手段によりランダムアクセスメモリに転送され
    たブロックを、前記フラッシュメモリに書き戻す書き戻
    し手段と、 前記転送手段と前記書き戻し手段とを制御する制御手段
    と、を備えることを特徴とするメモリ制御装置。
  7. 【請求項7】 所定の手順で書込みができる、所定サイ
    ズのブロックに区切られた不揮発性の第1メモリと、前
    記ブロックと同サイズのブロックに区切られた読み書き
    可能な第2メモリとを有するメモリ制御方法であって、 前記第1メモリのブロックを前記第2メモリのブロック
    に転送する転送工程と、 前記第1メモリに付されたアドレスを、前記第2メモリ
    に対応させて変換する変換工程と、 前記第2メモリに転送されたブロックを、前記第1メモ
    リに書き戻す書き戻し工程と、 前記転送工程と前記書き戻し工程とを制御する制御工程
    と、を備えることを特徴とするメモリ制御方法。
JP6268712A 1994-11-01 1994-11-01 メモリ制御装置及び方法 Withdrawn JPH08129509A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP6268712A JPH08129509A (ja) 1994-11-01 1994-11-01 メモリ制御装置及び方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP6268712A JPH08129509A (ja) 1994-11-01 1994-11-01 メモリ制御装置及び方法

Publications (1)

Publication Number Publication Date
JPH08129509A true JPH08129509A (ja) 1996-05-21

Family

ID=17462315

Family Applications (1)

Application Number Title Priority Date Filing Date
JP6268712A Withdrawn JPH08129509A (ja) 1994-11-01 1994-11-01 メモリ制御装置及び方法

Country Status (1)

Country Link
JP (1) JPH08129509A (ja)

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11259360A (ja) * 1998-03-09 1999-09-24 Seiko Epson Corp 半導体集積装置及び不揮発性メモリ書き込み方式
JP2003036201A (ja) * 2001-07-24 2003-02-07 Sony Corp メモリアクセス管理装置
JP2005182434A (ja) * 2003-12-19 2005-07-07 Internatl Business Mach Corp <Ibm> マイクロコンピュータ、メモリの保護方法及びデバッグ方法
JP2006065533A (ja) * 2004-08-26 2006-03-09 Sony Corp 半導体記憶装置およびそのアクセス方法、並びにメモリ制御システム
JP2007500916A (ja) * 2003-07-31 2007-01-18 エム−システムズ フラッシュ ディスク パイオニアーズ リミテッド 組み込みnandフラッシュコントローラを持つsdramメモリ・デバイス
JP2008181456A (ja) * 2007-01-26 2008-08-07 Nec Networks & System Integration Corp 半導体記憶装置およびその書込制御方法
JP2010514017A (ja) * 2006-12-20 2010-04-30 モサイド・テクノロジーズ・インコーポレーテッド 揮発性メモリおよび不揮発性メモリを有するハイブリッド固体メモリシステム
JP2010225161A (ja) * 2010-04-13 2010-10-07 Renesas Electronics Corp 半導体記憶装置
JP2011203114A (ja) * 2010-03-25 2011-10-13 Sysmex Corp 試料分析装置および試料分析方法
US8432716B2 (en) 2001-06-11 2013-04-30 Renesas Electronics Corporation Semiconductor device with non-volatile memory and random access memory
US8626987B2 (en) 2009-10-27 2014-01-07 Samsung Electronics Co., Ltd. Flash memory system and defragmentation method
JP2014174752A (ja) * 2013-03-08 2014-09-22 Canon Inc 情報処理装置、その制御方法及びプログラム
JP2016501403A (ja) * 2012-11-20 2016-01-18 アイ. ペドル,チャールズ ソリッドステートドライブアーキテクチャ
JP2017097861A (ja) * 2015-11-09 2017-06-01 グーグル インコーポレイテッド メモリデバイスおよび方法

Cited By (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11259360A (ja) * 1998-03-09 1999-09-24 Seiko Epson Corp 半導体集積装置及び不揮発性メモリ書き込み方式
US8432716B2 (en) 2001-06-11 2013-04-30 Renesas Electronics Corporation Semiconductor device with non-volatile memory and random access memory
JP2003036201A (ja) * 2001-07-24 2003-02-07 Sony Corp メモリアクセス管理装置
JP2007500916A (ja) * 2003-07-31 2007-01-18 エム−システムズ フラッシュ ディスク パイオニアーズ リミテッド 組み込みnandフラッシュコントローラを持つsdramメモリ・デバイス
JP4526111B2 (ja) * 2003-12-19 2010-08-18 インターナショナル・ビジネス・マシーンズ・コーポレーション マイクロコンピュータおよびデバッグ方法
JP2005182434A (ja) * 2003-12-19 2005-07-07 Internatl Business Mach Corp <Ibm> マイクロコンピュータ、メモリの保護方法及びデバッグ方法
JP2006065533A (ja) * 2004-08-26 2006-03-09 Sony Corp 半導体記憶装置およびそのアクセス方法、並びにメモリ制御システム
KR101495928B1 (ko) * 2006-12-20 2015-02-25 컨버전트 인텔렉츄얼 프로퍼티 매니지먼트 인코포레이티드 휘발성 및 비휘발성 메모리를 갖는 하이브리드 고체 메모리 시스템
JP2013061997A (ja) * 2006-12-20 2013-04-04 Mosaid Technologies Inc 揮発性メモリおよび不揮発性メモリを有するハイブリッド固体メモリシステム
JP2010514017A (ja) * 2006-12-20 2010-04-30 モサイド・テクノロジーズ・インコーポレーテッド 揮発性メモリおよび不揮発性メモリを有するハイブリッド固体メモリシステム
US8670262B2 (en) 2006-12-20 2014-03-11 Mosaid Technologies Incorporated Hybrid solid-state memory system having volatile and non-volatile memory
JP2016026346A (ja) * 2006-12-20 2016-02-12 コンバーサント・インテレクチュアル・プロパティ・マネジメント・インコーポレイテッドConversant Intellectual Property Management Inc. 揮発性メモリおよび不揮発性メモリを有するハイブリッド固体メモリシステム
KR101495975B1 (ko) * 2006-12-20 2015-02-26 컨버전트 인텔렉츄얼 프로퍼티 매니지먼트 인코포레이티드 휘발성 및 비휘발성 메모리를 갖는 하이브리드 고체 메모리 시스템
JP2008181456A (ja) * 2007-01-26 2008-08-07 Nec Networks & System Integration Corp 半導体記憶装置およびその書込制御方法
US8626987B2 (en) 2009-10-27 2014-01-07 Samsung Electronics Co., Ltd. Flash memory system and defragmentation method
JP2011203114A (ja) * 2010-03-25 2011-10-13 Sysmex Corp 試料分析装置および試料分析方法
JP2010225161A (ja) * 2010-04-13 2010-10-07 Renesas Electronics Corp 半導体記憶装置
JP2016501403A (ja) * 2012-11-20 2016-01-18 アイ. ペドル,チャールズ ソリッドステートドライブアーキテクチャ
JP2014174752A (ja) * 2013-03-08 2014-09-22 Canon Inc 情報処理装置、その制御方法及びプログラム
JP2017097861A (ja) * 2015-11-09 2017-06-01 グーグル インコーポレイテッド メモリデバイスおよび方法
US9880778B2 (en) 2015-11-09 2018-01-30 Google Inc. Memory devices and methods

Similar Documents

Publication Publication Date Title
US5937423A (en) Register interface for flash EEPROM memory arrays
US5787493A (en) Control method and apparatus for direct execution of a program on an external apparatus using a randomly accessible and rewritable memory
JP3195988B2 (ja) 不揮発性半導体メモリ及びこれを使用したコンピュータシステム
US6279069B1 (en) Interface for flash EEPROM memory arrays
US7739443B2 (en) Memory controller, memory device and control method for the memory controller
US7529879B2 (en) Incremental merge methods and memory systems using the same
KR100909902B1 (ko) 플래쉬 메모리 장치 및 플래쉬 메모리 시스템
US5611067A (en) Nonvolatile semiconductor memory device having means for selective transfer of memory block contents and for chaining together unused memory blocks
US6243789B1 (en) Method and apparatus for executing a program stored in nonvolatile memory
EP0524719B1 (en) Computer system with alterable bootstrapping software and method therefor
US7313683B2 (en) Computer system and method which boots from a bootup-memory-image stored in nonvolatile memory and copies data within an address range of predetermined width to main memory so that the system boots quickly after initialization
US8433846B2 (en) Methods and apparatus reading erase block management data in subsets of sectors having user data and control data sections
US6205548B1 (en) Methods and apparatus for updating a nonvolatile memory
US7475184B2 (en) Systems and methods for providing nonvolatile memory management in wireless phones
US6629192B1 (en) Method and apparatus for use of a non-volatile storage management system for PC/AT compatible system firmware
US20070211559A1 (en) Computer system with nand flash memory for booting and storage
US20070147115A1 (en) Unified memory and controller
JPH08129509A (ja) メモリ制御装置及び方法
US6260102B1 (en) Interface for flash EEPROM memory arrays
JPH04213131A (ja) マイクロコンピュータの予約メモリに対するシャドーイング及び再マッピングを行なうシステム及び方法
KR20060050585A (ko) 반도체 기억장치 및 그 액세스 방법 및 메모리 제어 시스템
US20120017071A1 (en) Apparatus and Method Thereof for Reliable Booting from NAND Flash Memory
JP2008533574A (ja) セクタ単位での消去の可能な半導体メモリ手段の第1のセクタへの再書き込み方法および装置
JP3918434B2 (ja) 情報処理装置
JP2006178909A (ja) メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20020115