JP4017178B2 - フラッシュメモリ及びメモリ制御方法 - Google Patents
フラッシュメモリ及びメモリ制御方法 Download PDFInfo
- Publication number
- JP4017178B2 JP4017178B2 JP2004568776A JP2004568776A JP4017178B2 JP 4017178 B2 JP4017178 B2 JP 4017178B2 JP 2004568776 A JP2004568776 A JP 2004568776A JP 2004568776 A JP2004568776 A JP 2004568776A JP 4017178 B2 JP4017178 B2 JP 4017178B2
- Authority
- JP
- Japan
- Prior art keywords
- flash memory
- ratio
- data
- state
- notification information
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1051—Data output circuits, e.g. read-out amplifiers, data output buffers, data output registers, data output level conversion circuits
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/02—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements
- G11C11/16—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements using elements in which the storage effect is based on magnetic spin effect
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/22—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using ferroelectric elements
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
- G11C16/102—External programming circuits, e.g. EPROM programmers; In-circuit programming or reprogramming; EPROM emulators
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/26—Sensing or reading circuits; Data output circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1051—Data output circuits, e.g. read-out amplifiers, data output buffers, data output registers, data output level conversion circuits
- G11C7/1063—Control signal output circuits, e.g. status or busy flags, feedback command signals
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Read Only Memory (AREA)
- Memory System (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Description
一方、上記の長所とは逆に、次のような短所を有している。すなわち、フラッシュメモリは、データの書き込みの際に上書きができないため、データの書き込みや削除を繰り返すと分断された不要な領域が消去されずに残る。そのため、この不要な領域を消去し、使用している領域を連続した領域にまとめ、その結果使用できる領域を増やす処理(以下ガーベジコレクションと呼ぶ)を実行する必要がある(例えば、特許文献1参照。)。
図18は、従来のフラッシュメモリを用いたデータ書き換え時の処理の流れを示すフローチャートである。
以下の処理は、フラッシュメモリの外部に設置されたCPU(Central Processing Unit)の制御のもと行われる。
処理が開始すると、まず、CPUはデータ処理が書き込みか、それとも無効化処理かを判断し(S100)、書き込みであればデータ書き込み処理を行い(S101)、無効化であればデータ無効化処理を行う(S102)。次に管理データの更新を行い(S103)、フラッシュメモリ内の領域使用率を計算する(S104)。次に、領域使用率の計算の結果に応じてガーベジコレクションの必要があるか否かを判断し(S105)、必要があればガーベジコレクション処理を行い(S106)、必要がなければそのまま処理を終了する。
しかし、上記のように、フラッシュメモリのデータ書き換え処理の後に、処理時間が長いガーベジコレクション処理を実行するので、携帯電話機などの装置全体の処理時間を長くしてしまうという問題があった。
この問題はフラッシュメモリのデータ書き換え処理とガーベジコレクション処理を異なるタイミングで実行させることにより解決できるが、そのためには、ガーベジコレクション処理を実行するタイミングを得ることが必要である。
また、本発明の他の目的は、ガーベジコレクションのように不要なデータを消去するタイミングを、外部に通知可能なフラッシュメモリを制御するメモリ制御方法を提供することである。
本発明では上記課題を解決するために、図1に示すような、データが記憶される複数のユーザ領域u1、u2、u3、…、unと、ユーザ領域u1、u2、u3、…、unの状態を示す複数のフラグ領域f1、f2、f3、…、fnからなるメモリセルアレイ11を有するフラッシュメモリ10において、フラグ領域f1、f2、f3、…、fnを参照して、ユーザ領域u1、u2、u3、…、unの状態に応じた情報を外部に通知するための状態通知情報を生成する状態通知情報生成部12と、状態通知情報を出力する出力部13と、を有することを特徴とするフラッシュメモリ10が提供される。
上記の構成によれば、状態通知情報生成部12は、フラグ領域f1、f2、f3、…、fnを参照して、ユーザ領域u1、u2、u3、…、unの状態に応じた情報を外部に通知するための状態通知情報を生成し、出力部13は、このような状態通知情報を外部に出力することで、外部にフラッシュメモリ10内の状態を通知する。
本発明の上記および他の目的、特徴および利点は本発明の例として好ましい実施の形態を表す添付の図面と関連した以下の説明により明らかになるであろう。
図2は、本発明の第1の実施の形態のフラッシュメモリ及びその外部に配置される回路を示した構成図である。
図3は、フラッシュメモリにデータを書き込む場合のタイミングチャートである。
図4は、フラッシュメモリのデータを無効化(または削除)する場合のタイミングチャートである。
図5は、割り込み信号を外部に出力する際のタイミングチャートである。
図6は、比率を書き換える際のタイミングチャートである。
図7は、フラッシュメモリのデータを書き換える際の処理の流れを示すフローチャートである。
図8は、書き込み動作の際の処理の流れを示すフローチャートである。
図9は、無効化処理を示すフローチャートである。
図10は、データを消去する処理の流れを示すフローチャートである。
図11は、割り込み信号出力の際の、フラッシュメモリ内での処理の流れを示すフローチャートである。
図12は、ガーベジコレクション処理の流れを示すフローチャートである。
図13は、本発明の第2の実施の形態のフラッシュメモリ及びその外部に配置される回路を示した構成図である。
図14は、書き込み処理の後に比率を出力する場合のタイミングチャートである。
図15は、無効化処理の後に比率を出力する場合のタイミングチャートである。
図16は、第2の実施の形態の構成における処理の流れを示すフローチャートである。
図17は、比率命令に応じて比率を出力する際のタイミングチャートである。
図18は、従来のフラッシュメモリを用いたデータ書き換え時の処理の流れを示すフローチャートである。
図1は、本発明のフラッシュメモリの原理を説明する原理構成図である。
フラッシュメモリ10は、データが記憶される複数のユーザ領域u1、u2、u3、…、unと、ユーザ領域u1、u2、u3、…、unの状態を示す複数のフラグ領域f1、f2、f3、…、fnからなるメモリセルアレイ11と、フラグ領域f1、f2、f3、…、fnを参照して、ユーザ領域u1、u2、u3、…、unの状態に応じた情報を外部に通知するための状態通知情報を生成する状態通知情報生成部12と、状態通知情報を出力する出力部13と、から構成される。
以下では、複数のユーザ領域u1、u2、u3、…、unをユーザ領域ux(x=1、2、3、…、n)と記し、複数のフラグ領域f1、f2、f3、…、fnをフラグ領域fy(y=1、2、3、…、n)と記すことにする。
フラッシュメモリ10の動作を説明する。
メモリセルアレイ11において、ユーザ領域uxにデータを書き込まれると、ユーザ領域uxに対応したフラグ領域fyは有効を示す値となり、データが無効化されると、フラグ領域fyは無効を示す値となる。状態通知情報生成部12は、フラグ領域fyの値を参照して、これに対応したユーザ領域uxの状態に応じた情報を外部に通知するための状態通知情報、例えばユーザ領域uxが無効である比率(詳しくは後述)を生成する。その後、出力部13は状態通知情報をフラッシュメモリ10の外部に出力する。
これにより、例えば、ガーベジコレクションを行うフラッシュメモリ10の外部に配置されるCPUなどの制御部(図示せず)は、フラッシュメモリ内の状態(無効状態のユーザ領域uxの比率など)を簡単に知ることができ、現在ガーベジコレクション処理を行う必要があるか否かを判断することができる。
以下、本発明の実施の形態の詳細を説明する。
まず本発明の第1の実施の形態のフラッシュメモリを説明する。
図2は、本発明の第1の実施の形態のフラッシュメモリ及びその外部に配置される回路を示した構成図である。
本発明の第1の実施の形態のフラッシュメモリ20は、メモリセルアレイ21、比率記憶部22、比較部23、時間管理部24、制御部25から構成される。
メモリセルアレイ21は、前述の図1のように複数のユーザ領域uxと、複数のフラグ領域fyからなる。フラグ領域fyは、各ユーザ領域uxに対して2ビットの情報を持つ。フラグ領域fyが“00”の場合は、そのフラグ領域fyに対応するユーザ領域uxのデータは消去されていることを示す。フラグ領域fyが“01”の場合は、そのフラグ領域fyに対応するユーザ領域uxのデータは有効であることを示す。フラグ領域fyが“11”の場合は、そのフラグ領域fyに対応するユーザ領域uxのデータは無効であることを示す。使用前のフラッシュメモリ20のメモリセルアレイ21は、ユーザ領域uxの全領域にデータが書き込まれていない。さらにメモリセルアレイ21のフラグ領域fyの全領域にはデータが消去されていることを示す値“00”が書き込まれている。
比率記憶部22には、あらかじめ所定の比率が記憶されている。例えば、“80%”などと記憶されている。
比較部23は、メモリセルアレイ21のフラグ領域fyの状態を判定して、ユーザ領域uxが無効である比率を算出し、その後、比率記憶部22に格納されている比率と比較する。
時間管理部24は、ある一定の時間間隔、例えば60秒間隔で制御部25に信号を送る。
制御部25は、フラッシュメモリ20の各部を制御し、外部との情報の送受信を行う。制御部25は、割り込み信号線101、制御信号線102によってCPU50と接続されている。さらにデータバス60、アドレスバス70と接続される。
CPU50はデータバス60、アドレスバス70と接続されており、データバスはRAM(Random Access Memory)80を介してアドレスバス70と接続される。CPU50はデータバス60とアドレスバス70を使用してフラッシュメモリ20とRAM80のデータの読み書きを行い、RAM80に書き込まれたプログラムを実行する。
なお、第1の実施の形態において、図1の状態通知情報生成部12の機能は比較部23に含まれ、出力部13の機能は制御部25に含まれる。
以下、図1の動作を説明するとともに、本発明の第1の実施の形態のフラッシュメモリ20の動作を説明する。
まず、書き込み動作を説明する。
図3は、フラッシュメモリにデータを書き込む場合のタイミングチャートである。
データの書き込み処理の際の、アドレスバス70、制御信号線102、割り込み信号線101、データバス60の信号の様子を示している。
RAM80に書き込まれているデータをフラッシュメモリ20に書き込む場合、CPU50は、制御信号線102の信号のレベルを“H”(ハイレベル)にすると同時に、データバス60を介して書き込み命令を制御部25に送る。その後、制御信号線102を“L”(ローレベル)に戻す。さらにCPU50は、データバス60を介してRAM80から読み込んだデータを制御部25に送る。また、CPU50は、アドレスバス70を介して、書き込み先のアドレスを制御部25に送る。
フラッシュメモリ20の制御部25は、図3のように制御信号線102が“H”になったときに、データバス60からデータの書き込み命令を受信する。次に、データバス60からデータを受信し、アドレスバス70からアドレスを受信し、データをアドレスで指定されたメモリセルアレイ21のユーザ領域uxへ書き込む。さらに制御部25は、ユーザ領域uxに対応するフラグ領域fyにデータが有効であることを示す値“01”を書き込む。
次に無効化処理及びデータの削除時の動作を説明する。
図4は、フラッシュメモリのデータを無効化(または削除)する場合のタイミングチャートである。
データの無効化(または削除)処理の際の、アドレスバス70、制御信号線102、割り込み信号線101、データバス60の信号の様子を示している。
フラッシュメモリ20に書き込まれているデータを無効化(または削除)する場合は、CPU50は、制御信号線102を“H”にすると同時に、データバス60を介して、データを無効にする命令をフラッシュメモリ20の制御部25に送る。その後、制御信号線102を“L”に戻す。さらにCPU50は、アドレスバス70を介して、無効にするデータのアドレスを制御部25に送る。
フラッシュメモリ20の制御部25は、図4のように、制御信号線102が“H”になったときに、データバス60から無効化(または削除)命令を受け取る。次に、アドレスバス70から受け取ったアドレスで指定されたメモリセルアレイ21のユーザ領域uxに対応するフラグ領域fyにデータが無効であることを示す値“11”を書き込む。データの削除の場合は、受け取ったアドレスで指定されたメモリセルアレイ21のユーザ領域uxのデータを削除し、削除したユーザ領域uxに対応するフラグ領域fyにデータが消去されていることを示す値“00”を書き込む。
次に本実施の形態の特徴部分の動作を説明する。
フラッシュメモリ20内において、前述のように時間管理部24は、ある一定の時間間隔、例えば60秒間隔で制御部25に信号を送る。時間管理部24から信号を受信した制御部25は、フラグ領域fyのデータを読み込み、読み込んだデータを比較部23に送る。フラグ領域fyのデータを受け取った比較部23は、無効であることを示すデータの個数を数え上げ、ユーザ領域uxのデータが無効である比率を算出する。さらに比較部23は、比率記憶部22にあらかじめ格納してあった比率、例えば“80%”と比較する。比較の結果、ユーザ領域uxのデータが無効である比率が比率記憶部22にあらかじめ格納してあった比率よりも大きい場合は、制御部25に信号を送る。
比較部23から信号を受け取った制御部25は、割り込み信号線101を用いて、割り込み信号をCPU50に送信する。
図5は、割り込み信号を外部に出力する際のタイミングチャートである。
図では、割り込み信号を出力する際の、アドレスバス70、制御信号線102、割り込み信号線101、データバス60の信号の様子を示している。
図のように割り込み信号線101を“H”とし、割り込み信号をCPU50に送信する。この割り込み信号は、フラッシュメモリ20が、ガーベジコレクション処理を必要としていることを外部に通知する信号である。
割り込み信号を受け取ったCPU50は、RAM80に格納されているガーベジコレクションを行うプログラムを実行する。これによって、フラッシュメモリ20内の不要なデータを消去し、空き領域を増やすガーベジコレクションを実行する。
なお、あらかじめ比率記憶部22に格納された比率は書き換えることが可能である。
図6は、比率を書き換える際のタイミングチャートである。
図では、比率を書き換える処理の際の、アドレスバス70、制御信号線102、割り込み信号線101、データバス60の信号の様子を示している。
フラッシュメモリ20の比率記憶部22に記憶されている比率を書き換える場合は、図6のように、CPU50はまず、制御信号線102を“H”にすると同時に、データバス60を介して比率格納命令を、フラッシュメモリ20の制御部25に送信する。その後、制御信号線102を“L”に戻す。次に、データバス60を介して、例えばRAM80に格納された、書き換え用の比率のデータを制御部25に送信する。
制御部25は、制御信号線102が“H”になったとき、データバス60から比率格納命令を受信し、次にデータバス60から書き換える比率のデータを受信する。制御部25は受信した書き換える比率のデータを比率記憶部22に送り、比率記憶部22は受け取った比率のデータを記憶する。
以上の第1の実施の形態の動作の流れをフローチャートでまとめる。
図7は、フラッシュメモリのデータを書き換える際の処理の流れを示すフローチャートである。
S10:書き込みか無効化かの判断
処理が開始すると、CPU50は、実行するデータ処理が、データの書き込み処理なのか、データの無効化処理なのかを判断する。データの書き込み処理の場合はステップS11に進み、データの無効化処理の場合はステップS12に進む。
S11:データ書き込み処理
ステップS10で、データの書き込み処理を行なうと判断されたので、データ書き込み処理を実行する。
S12:データ無効化処理
ステップS10で、データの無効化処理を行なうと判断されたので、データの無効化処理を実行する。
ステップS11または、ステップS12の処理が終了すると、CPU50はフラッシュメモリ20のデータを書き換える処理を終了する。
図8は、書き込み動作の際の処理の流れを示すフローチャートである。
S20:ユーザ領域へのデータ書き込み
書き込み処理が開始すると、フラッシュメモリ20の制御部25は、図3で示したようなタイミングで、メモリセルアレイ21のユーザ領域uxの指定されたアドレスへデータを書き込む。
S21:フラグ領域への“01”の書き込み
ステップS20でユーザ領域uxへの書き込み処理が行われると、制御部25はデータを書き込んだユーザ領域uxに対応するフラグ領域fyへ、データが有効であることを示す値“01”を書き込む。
図9は、無効化処理を示すフローチャートである。
S30:フラグ領域への“11”の書き込み
無効化処理が開始すると、フラッシュメモリ20の制御部25は、図4で示したようなタイミングで、メモリセルアレイ21の、無効化するユーザ領域uxに対応するフラグ領域fyへ、データが無効であることを示す値“11”を書き込む。その後、無効化処理を終了する。
図10は、データを消去する処理の流れを示すフローチャートである。
S40:ユーザ領域のデータ消去
データを消去する処理が開始すると、フラッシュメモリ20の制御部25は、図4で示したようなタイミングで、メモリセルアレイ21のユーザ領域uxの指定アドレスのデータを消去する。
S41:フラグ領域への“00”の書き込み
制御部25は、消去したユーザ領域uxに対応するフラグ領域fyへ、データが消去されていることを示す値、“00”を書き込み、データの消去処理を終了する。
図11は、割り込み信号出力の際の、フラッシュメモリ内での処理の流れを示すフローチャートである。
S50:所定時間が経過したか否かの判定
制御部25は、時間管理部24から、所定時間間隔で出力される信号を受信し、所定時間(例えば、60秒)経過したか否かを判定する。ここで、所定時間が経過したと判定された場合には、ステップS51に進み。所定時間経過していないと判定された場合、すなわち、時間管理部24からの信号を受信しない場合は、ステップS50を繰り返す。
S51:フラグ領域のデータが“11”である比率を算出
制御部25は、比較部23に、対応するユーザ領域uxのデータが無効であることを示すフラグ領域fyのデータ“11”の比率を算出させる。
S52:算出した比率が所定の比率より大きいか否かの判定
次に制御部25は、比率記憶部22にあらかじめ格納された所定の比率を取り出し、比較部23に送り、そこで、ステップS51の処理で算出した比率と比較させる。ここで、算出した比率があらかじめ格納された所定の比率(例えば80%)より大きい場合は、ステップS53に進み、そうではない場合はステップS50に戻る。
S53:割り込み信号を出力
制御部25は、無効である比率が大きいので、外部に割り込み信号を出力し、ガーベジコレクション処理を要求する。その後、ステップS50からの処理を繰り返す。
図12は、ガーベジコレクション処理の流れを示すフローチャートである。
S60:割り込み信号を受信したか否かの判定
CPU50は、フラッシュメモリ20の制御部25より、ガーベジコレクション処理の実行を要求する割り込み信号を受信したか否かを判定し、受信したと判定した場合はステップS61に進み、受信しない場合はステップS60を繰り返す。
S61:ガーベジコレクション処理
CPU50は、フラッシュメモリ20に対してガーベジコレクション処理を実行する。
ガーベジコレクション処理は、ユーザ領域uxの無効なデータを消去して、有効な領域を連続した領域にまとめ、その結果、使用できる領域を増やす処理である。
このように、第1の実施の形態のフラッシュメモリ20を用いることで、CPU50が実行するフラッシュメモリ20内のデータを書き換えるプログラムと、ガーベジコレクションのプログラムが、それぞれ独立したプログラムとして実行することができる。さらに、第1の実施の形態のフラッシュメモリ20によれば、ガーベジコレクションのプログラムを実行するタイミングを、割り込み信号として外部に通知することができる。
次に本発明の第2の実施の形態のフラッシュメモリを説明する。
図13は、本発明の第2の実施の形態のフラッシュメモリ及びその外部に配置される回路を示した構成図である。
本発明の第2の実施の形態のフラッシュメモリ30は、メモリセルアレイ31、比率計算部32、制御部33から構成される。
メモリセルアレイ31は、第1の実施の形態と同様に、複数のユーザ領域uxと、それに対応したフラグ領域fyとからなる。
比率計算部32は、メモリセルアレイ31のフラグ領域fyの状態を判定して、ユーザ領域uxが無効である比率を算出し、算出した比率を制御部33に送る。
制御部33は、フラッシュメモリ30の各部を制御し、外部との情報の送受信を行う。制御部33は、制御信号線102によってCPU50と接続されている。さらにデータバス60、アドレスバス70と接続される。また、制御部33は、比率計算部32で算出された比率を受信し、これを、データの書き込み動作または無効化処理の直後に外部に出力する。
フラッシュメモリ30の外部の回路の構成については、第1の実施の形態と同様であるので同符号とし、説明を省略する。
なお、第2の実施の形態において、図1の状態通知情報生成部12の機能は比率計算部32に含まれ、出力部13の機能は制御部33に含まれる。
本発明の第2の実施の形態のフラッシュメモリ30は、第1の実施の形態のフラッシュメモリ20と異なり、比率計算部32で計算した比率そのものを、制御部33で外部に出力する点が異なる。また時間管理部24を省略し、データの書き込み動作または無効化処理の直後に外部に出力した点が異なる。
以下、第2の実施の形態の動作を説明する。
図14は、書き込み処理の後に比率を出力する場合のタイミングチャートである。
図では、書き込み処理の後に比率を出力する際の、アドレスバス70、制御信号線102、データバス60の信号の様子を示している。
フラッシュメモリ30の制御部33は、図14のように、制御信号線102が“H”になったときに、データバス60から書き込み命令を受け取る。次に、アドレスバス70から受け取ったアドレスで指定されたメモリセルアレイ31のユーザ領域uxに、データバス60を介して受信したデータを書き込む。さらに、対応するフラグ領域fyに、データが有効であることを示す値“01”を書き込む。その後、比率計算部32で、フラグ領域fyの状態を判定してユーザ領域uxが無効である比率を算出させる。制御部33は、比率計算部32で算出された比率を受け取り、これをデータバス60に出力して外部に通知する。
図15は、無効化処理の後に比率を出力する場合のタイミングチャートである。
図では、無効化処理の後に比率を出力する際の、アドレスバス70、制御信号線102、データバス60の信号の様子を示している。
フラッシュメモリ30の制御部33は、図15のように、制御信号線102が“H”になったときに、データバス60から無効化命令を受け取る。次に、アドレスバス70から受け取ったアドレスで指定されたメモリセルアレイ31のユーザ領域uxに対応するフラグ領域fyに、データが無効であることを示す値“11”を書き込む。その後、比率計算部32で、フラグ領域fyの状態を判定してユーザ領域uxが無効である比率を算出させる。制御部33は、比率計算部32で算出された比率を受け取り、これをデータバス60に出力して外部に通知する。
図16は、第2の実施の形態の構成における処理の流れを示すフローチャートである。
S70:書き込みか無効化かの判断
処理が開始すると、CPU50は、実行するデータ処理が、データの書き込み処理なのか、データの無効化処理なのかを判断する。データの書き込み処理の場合はステップS71に進み、データの無効化処理の場合はステップS72に進む。
S71:データ書き込み処理
ステップS70で、データの書き込み処理を行なうと判断されたので、データ書き込み処理を実行する。
S72:データ無効化処理
ステップS70で、データの無効化処理を行なうと判断されたので、データの無効化処理を実行する。
S73:算出した比率の読み込み
CPU50は、データバス60を介して、書き込みまたは無効化処理の直後にフラッシュメモリ30で算出され出力される比率を読み込む。
S74:算出した比率が所定の比率より大きいか否かの判定
次に、CPU50は、算出した比率が、RAM80に格納された所定の比率(例えば80%)より大きいか否かを判定し、大きければステップS75に進み、そうでなければ処理を終了する。
S75:ガーベジコレクション処理
フラッシュメモリ30より通知された比率が、所定の比率を上回った場合は、CPU50は、ガーベジコレクション処理が必要であるとみなし、ガーベジコレクション処理を行う。
このように、第2の実施の形態のフラッシュメモリ20は、データ書き込み、またはデータ無効化処理の直後に比率を出力するようにしたので、割り込み信号線101が不要になる。
次に本発明の第3の実施の形態を説明する。
第3の実施の形態の構成は、図13で示した第2の実施の形態の構成図と同様になるので省略する。
第3の実施の形態では、CPU50がフラッシュメモリ20に対して、比率を要求する比率出力命令を送信する点が第2の実施の形態と異なる。
図17は、比率出力命令に応じて比率を出力する際のタイミングチャートである。
図では、その際のアドレスバス70、制御信号線102、データバス60の信号の様子を示している。
フラッシュメモリ30の制御部33は、図17のように、制御信号線102が“H”になったときに、データバス60から比率出力命令を受け取る。これに応じて、比率計算部32で、フラグ領域fyの状態を判定してユーザ領域uxが無効である比率を算出させる。制御部33は、比率計算部32で算出された比率を受け取り、これをデータバス60に出力して外部に通知する。
このように、第3の実施の形態では、フラッシュメモリ20に比率出力命令を送信するときに比率を取得するので、任意のタイミングで比率を取得することが可能である。
なお、上記の第1の実施の形態では、一定時間間隔で、ユーザ領域uxが無効である比率を計算して、フラッシュメモリ20内で、算出した比率とあらかじめ格納していた所定の比率と比較して、算出した比率が大きい場合は、ガーベジコレクション処理を要求する割り込み信号を出力する場合についてした。一方、第2の実施の形態では、書き込み動作または無効化処理の直後に、算出した比率そのものを出力する場合にした。しかし、これに限定されず、一定時間間隔で、算出した比率そのものを出力するようにしてもよいし、書き込み動作または無効化処理の直後に、算出した比率とあらかじめ格納していた所定の比率と比較して、算出した比率が大きい場合は、ガーベジコレクション処理を要求する割り込み信号を出力するようにしてもよい。
また、第3の実施の形態では、外部からの比率出力命令に応じて、ユーザ領域uxが無効である比率を出力するようにしたが、第1の実施の形態のような構成にして、外部からの命令がフラッシュメモリに入力された場合に、ガーベジコレクション処理を要求する割り込み信号を出力するようにしてもよい。
また上記では、フラグ領域fyの値として、消去状態の場合は“00”、有効状態の場合は“01”、無効状態の場合は“11”として説明したが、これに限定されない。
以上説明したように本発明では、データが記憶される複数のユーザ領域と、ユーザ領域の状態を示す複数のフラグ領域からなるメモリセルアレイを有するフラッシュメモリにおいて、フラグ領域の値を参照して、ユーザ領域の状態に応じた情報を外部に通知するための状態通知情報を生成し、状態通知情報を外部に出力するようにしたので、フラッシュメモリの外部では、フラッシュメモリ内の状態を簡単に知ることができ、現在ガーベジコレクション処理を行う必要があるか否かを判断することができる。
上記については単に本発明の原理を示すものである。さらに、多数の変形、変更が当業者にとって可能であり、本発明は上記に示し、説明した正確な構成および応用例に限定されるものではなく、対応するすべての変形例および均等物は、添付の請求項およびその均等物による本発明の範囲とみなされる。
Claims (11)
- データが記憶される複数のユーザ領域と、前記ユーザ領域の状態を示す複数のフラグ領域からなるメモリセルアレイを有するフラッシュメモリにおいて、
前記フラグ領域を参照して、前記ユーザ領域の状態に応じた情報を外部に通知するための状態通知情報を生成する状態通知情報生成部と、
前記状態通知情報を出力する出力部と、
を有し、
前記状態通知情報生成部は、前記フラグ領域を参照して、前記ユーザ領域の状態が無効状態である比率を算出することを特徴とするフラッシュメモリ。 - 前記状態通知情報生成部は、あらかじめ格納された所定の比率と、前記無効状態である比率とを比較し、前記無効状態である比率が大きければ、ガーベジコレクションが必要である旨の前記状態通知情報を生成することを特徴とする請求の範囲第1項記載のフラッシュメモリ。
- 前記出力部は、前記無効状態である比率を前記状態通知情報として出力することを特徴する請求の範囲第1項記載のフラッシュメモリ。
- 前記出力部は、一定の時間間隔で、前記状態通知情報を出力可能であることを特徴とする請求の範囲第1項記載のフラッシュメモリ。
- 前記出力部は、前記ユーザ領域への前記データの書き込み直後または、前記データの無効化直後に、前記状態通知情報を出力することを特徴とする請求の範囲第1項記載のフラッシュメモリ。
- 前記出力部は、前記状態通知情報を要求する情報要求信号を受信直後に、前記状態通知情報を出力することを特徴とする請求の範囲第1項記載のフラッシュメモリ。
- 前記所定の比率は書き換え可能であることを特徴とする請求の範囲第2項記載のフラッシュメモリ。
- データが記憶される複数のユーザ領域と、前記ユーザ領域の状態を示す複数のフラグ領域からなるメモリセルアレイを有するフラッシュメモリの動作を制御するメモリ制御方法において、
前記フラッシュメモリより、ガーベジコレクションが必要である旨の情報を受信し、
前記情報に応じて前記フラッシュメモリに対し前記ガーベジコレクションを行う
ことを特徴とするメモリ制御方法。 - 前記フラッシュメモリに前記情報の通知を要求することを特徴とする請求の範囲第8項記載のメモリ制御方法。
- データが記憶される複数のユーザ領域と、前記ユーザ領域の状態を示す複数のフラグ領域からなるメモリセルアレイを有するフラッシュメモリの動作を制御するメモリ制御方法において、
前記フラッシュメモリより、前記ユーザ領域が無効状態である比率を受信し、
前記無効状態である比率と、所定の比率を比較し、
前記所定の比率より前記無効状態である比率が大きい場合は、前記フラッシュメモリに対し、ガーベジコレクションを行う
ことを特徴とするメモリ制御方法。 - 前記フラッシュメモリに前記無効状態である比率の通知を要求することを特徴とする請求の範囲第10項記載のメモリ制御方法。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2003/002404 WO2004077447A1 (ja) | 2003-02-28 | 2003-02-28 | フラッシュメモリ及びメモリ制御方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPWO2004077447A1 JPWO2004077447A1 (ja) | 2006-06-08 |
JP4017178B2 true JP4017178B2 (ja) | 2007-12-05 |
Family
ID=32923132
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004568776A Expired - Fee Related JP4017178B2 (ja) | 2003-02-28 | 2003-02-28 | フラッシュメモリ及びメモリ制御方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US7487286B2 (ja) |
JP (1) | JP4017178B2 (ja) |
CN (1) | CN1689116A (ja) |
WO (1) | WO2004077447A1 (ja) |
Families Citing this family (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2400927A (en) * | 2003-04-22 | 2004-10-27 | Hewlett Packard Development Co | Method of managing memory by checking that none of the sectors in a block is needed before erasing the block. |
JP4977703B2 (ja) * | 2005-08-03 | 2012-07-18 | サンディスク コーポレイション | 予定再生操作を伴う不揮発性メモリ |
US7409489B2 (en) * | 2005-08-03 | 2008-08-05 | Sandisk Corporation | Scheduling of reclaim operations in non-volatile memory |
US20070058923A1 (en) * | 2005-09-09 | 2007-03-15 | Buhler Kirk A | Use of flash based memory to store and play feature length licensed movie or TV productions |
US20100180072A1 (en) * | 2007-06-22 | 2010-07-15 | Shigekazu Kogita | Memory controller, nonvolatile memory device, file system, nonvolatile memory system, data writing method and data writing program |
WO2009060495A1 (ja) * | 2007-11-05 | 2009-05-14 | Fujitsu Limited | 半導体記憶装置およびその制御方法 |
CN101499317B (zh) * | 2008-02-03 | 2011-12-21 | 力晶半导体股份有限公司 | 存储器装置以及数据读取方法 |
JP4164118B1 (ja) * | 2008-03-26 | 2008-10-08 | 眞澄 鈴木 | フラッシュメモリを用いた記憶装置 |
US8880775B2 (en) * | 2008-06-20 | 2014-11-04 | Seagate Technology Llc | System and method of garbage collection in a memory device |
US8527690B2 (en) * | 2008-06-26 | 2013-09-03 | Microsoft Corporation | Optimization of non-volatile solid-state memory by moving data based on data generation and memory wear |
JP2010026933A (ja) * | 2008-07-23 | 2010-02-04 | Toshiba Corp | メモリシステム、ホスト装置 |
TWI405214B (zh) * | 2009-05-06 | 2013-08-11 | A Data Technology Co Ltd | 快閃記憶體儲存系統之資料燒錄方法 |
JP4738536B1 (ja) * | 2010-01-29 | 2011-08-03 | 株式会社東芝 | 不揮発性メモリのコントローラ及び不揮発性メモリの制御方法 |
US8725931B1 (en) | 2010-03-26 | 2014-05-13 | Western Digital Technologies, Inc. | System and method for managing the execution of memory commands in a solid-state memory |
US8782327B1 (en) | 2010-05-11 | 2014-07-15 | Western Digital Technologies, Inc. | System and method for managing execution of internal commands and host commands in a solid-state memory |
US9026716B2 (en) | 2010-05-12 | 2015-05-05 | Western Digital Technologies, Inc. | System and method for managing garbage collection in solid-state memory |
US20120036301A1 (en) * | 2010-08-03 | 2012-02-09 | Caspole Eric R | Processor support for filling memory regions |
US9164886B1 (en) | 2010-09-21 | 2015-10-20 | Western Digital Technologies, Inc. | System and method for multistage processing in a memory storage subsystem |
US9021192B1 (en) | 2010-09-21 | 2015-04-28 | Western Digital Technologies, Inc. | System and method for enhancing processing of memory access requests |
US9158670B1 (en) | 2011-06-30 | 2015-10-13 | Western Digital Technologies, Inc. | System and method for dynamically adjusting garbage collection policies in solid-state memory |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2614357B2 (ja) * | 1990-10-19 | 1997-05-28 | 富士通株式会社 | 一括消去型e▲上2▼promの予備書込み方法 |
JPH06222985A (ja) * | 1993-01-26 | 1994-08-12 | Oki Electric Ind Co Ltd | メモリ制御装置 |
JP3784844B2 (ja) * | 1994-03-30 | 2006-06-14 | 沖電気工業株式会社 | 半導体記憶装置 |
US5933847A (en) * | 1995-09-28 | 1999-08-03 | Canon Kabushiki Kaisha | Selecting erase method based on type of power supply for flash EEPROM |
JP2000076117A (ja) * | 1998-08-31 | 2000-03-14 | Kano Densan Hongkong Yugenkoshi | 電子機器及びその制御方法及び記憶媒体 |
JP2990181B1 (ja) * | 1998-09-28 | 1999-12-13 | 日本電気アイシーマイコンシステム株式会社 | フラッシュメモリ、フラッシュメモリを備えたマイクロコンピュータおよびフラッシュメモリへのプログラム格納方法 |
JP2000278730A (ja) * | 1999-03-23 | 2000-10-06 | Kenwood Corp | フラッシュメモリのデータ消去方法 |
-
2003
- 2003-02-28 JP JP2004568776A patent/JP4017178B2/ja not_active Expired - Fee Related
- 2003-02-28 CN CNA038240629A patent/CN1689116A/zh active Pending
- 2003-02-28 WO PCT/JP2003/002404 patent/WO2004077447A1/ja active IP Right Grant
-
2005
- 2005-03-18 US US11/083,016 patent/US7487286B2/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
CN1689116A (zh) | 2005-10-26 |
US20050166005A1 (en) | 2005-07-28 |
JPWO2004077447A1 (ja) | 2006-06-08 |
US7487286B2 (en) | 2009-02-03 |
WO2004077447A1 (ja) | 2004-09-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4017178B2 (ja) | フラッシュメモリ及びメモリ制御方法 | |
AU2003286967B2 (en) | Dual journaling store method and storage medium thereof | |
KR102351660B1 (ko) | 전력 관리 메커니즘을 갖는 솔리드 스테이트 메모리 시스템 및 그것의 동작 방법 | |
US11507272B2 (en) | Controller for performing garbage collection operation based on performance ratio and memory system including the same | |
JP5007485B2 (ja) | 半導体記憶装置およびそのアクセス方法、並びにメモリ制御システム | |
JP2005235182A (ja) | 不揮発性メモリを制御するためのコントローラ | |
US20070033363A1 (en) | Method for reading while writing to a single partition flash memory | |
JP2011159069A (ja) | 半導体記憶装置及びその制御方法 | |
JPWO2006067923A1 (ja) | メモリコントローラ、不揮発性記憶装置、不揮発性記憶システム及びメモリ制御方法 | |
JP3875139B2 (ja) | 不揮発性半導体記憶装置、そのデータ書き込み制御方法およびプログラム | |
KR20170017036A (ko) | 데이터 저장 장치 및 그것의 동작 방법 | |
CN111108488A (zh) | 内存块回收方法和装置 | |
JP2017027479A (ja) | データ読出し方法及び情報処理システム | |
JP4902547B2 (ja) | フラッシュメモリのデータ処理装置及び方法 | |
JP2007193865A (ja) | 情報記録装置及びその制御方法 | |
KR20080064476A (ko) | 플래쉬 메모리 소자의 소거 횟수 저장 방법 | |
US10564886B2 (en) | Methods and apparatus for controlling flash translation layer recycle from host | |
JP4189402B2 (ja) | キャッシュ回路 | |
KR100597063B1 (ko) | 플래시 메모리 및 메모리 제어 방법 | |
TWI705372B (zh) | 快閃記憶體裝置及其控制方法 | |
JPH11272569A (ja) | フラッシュメモリを使用した外部記憶装置のデータ回復方式 | |
JP2017228172A (ja) | 情報処理システム | |
JP2006338083A (ja) | メモリコントローラ | |
JP2014203381A (ja) | 記憶装置とその制御方法、および、プログラム | |
KR101718888B1 (ko) | 메모리 시스템 및 그것의 가비지 컬렉션 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A711 Effective date: 20060522 |
|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A711 Effective date: 20060701 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070307 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070410 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070703 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070718 Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20070718 |
|
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: 20070904 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20070915 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100928 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110928 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120928 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120928 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130928 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130928 Year of fee payment: 6 |
|
RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: R3D02 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
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 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |