(57)【要約】フラッシュメモリ内の状態を外部に通知し、ガーベジコレクションを支援する。状態通知情報生成部（１２）は、フラグ領域ｆ１、ｆ２、ｆ３、…、ｆｎを参照して、ユーザ領域ｕ１、ｕ２、ｕ３、…、ｕｎの状態に応じた情報を外部に通知するための状態通知情報を生成し、出力部（１３）は、このような状態通知情報を外部に出力することで、外部にフラッシュメモリ（１０）内の状態を通知する。
2004077447.tif 000002
【特許請求の範囲】
【請求項１】
データが記憶される複数のユーザ領域と、前記ユーザ領域の状態を示す複数のフラグ領域からなるメモリセルアレイを有するフラッシュメモリにおいて、
前記フラグ領域を参照して、前記ユーザ領域の状態に応じた情報を外部に通知するための状態通知情報を生成する状態通知情報生成部と、
前記状態通知情報を出力する出力部と、
を有することを特徴とするフラッシュメモリ。
【請求項２】
前記状態通知情報生成部は、前記フラグ領域を参照して、前記ユーザ領域の状態が無効状態である比率を算出することを特徴とする請求の範囲第１項記載のフラッシュメモリ。
【請求項３】
前記状態通知情報生成部は、あらかじめ格納された所定の比率と、前記無効状態である比率とを比較し、前記無効状態である比率が大きければ、ガーベジコレクションが必要である旨の前記状態通知情報を生成することを特徴とする請求の範囲第２項記載のフラッシュメモリ。
【請求項４】
前記出力部は、前記無効状態である比率を前記状態通知情報として出力することを特徴する請求の範囲第２項記載のフラッシュメモリ。
【請求項５】
前記出力部は、一定の時間間隔で、前記状態通知情報を出力可能であることを特徴とする請求の範囲第１項記載のフラッシュメモリ。
【請求項６】
前記出力部は、前記ユーザ領域への前記データの書き込み直後または、前記データの無効化直後に、前記状態通知情報を出力することを特徴とする請求の範囲第１項記載のフラッシュメモリ。
【請求項７】
前記出力部は、前記状態通知情報を要求する情報要求信号を受信直後に、前記状態通知情報を出力することを特徴とする請求の範囲第１項記載のフラッシュメモリ。
【請求項８】
前記所定の比率は書き換え可能であることを特徴とする請求の範囲第３項記載のフラッシュメモリ。
【請求項９】
データが記憶される複数のユーザ領域と、前記ユーザ領域の状態を示す複数のフラグ領域からなるメモリセルアレイを有するフラッシュメモリの動作を制御するメモリ制御方法において、
前記フラッシュメモリより、ガーベジコレクションが必要である旨の情報を受信し、
前記情報に応じて前記フラッシュメモリに対し前記ガーベジコレクションを行う
ことを特徴とするメモリ制御方法。
【請求項１０】
前記フラッシュメモリに前記情報の通知を要求することを特徴とする請求の範囲第９項記載のメモリ制御方法。
【請求項１１】
データが記憶される複数のユーザ領域と、前記ユーザ領域の状態を示す複数のフラグ領域からなるメモリセルアレイを有するフラッシュメモリの動作を制御するメモリ制御方法において、
前記フラッシュメモリより、前記ユーザ領域が無効状態である比率を受信し、
前記無効状態である比率と、所定の比率を比較し、
前記所定の比率より前記無効状態である比率が大きい場合は、前記フラッシュメモリに対し、ガーベジコレクションを行う
ことを特徴とするメモリ制御方法。
【請求項１２】
前記フラッシュメモリに前記無効状態である比率の通知を要求することを特徴とする請求の範囲第１１項記載のメモリ制御方法。
【発明の詳細な説明】
【技術分野】  本発明はフラッシュメモリ及びフラッシュメモリの動作を制御するメモリ制御方法に関し、特に、データが記憶される複数のユーザ領域と、ユーザ領域の状態を示す複数のフラグ領域からなるメモリセルアレイを有するフラッシュメモリ及び、そのようなフラッシュメモリを制御するメモリ制御方法に関する。
【背景技術】  フラッシュメモリは、電気的に消去（書き換え）可能な不揮発性メモリであり、様々な電気製品に搭載されている。近年には、高速、低消費電力のＦｅＲＡＭ（Ｆｅｒｒｏｅｌｅｃｔｒｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、ＭＲＡＭ（Ｍａｇｎｅｔｏｒｅｓｉｓｔｉｖｅ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、ＯＵＭ（Ｏｖｏｎｉｃｓ  Ｕｎｉｆｉｅｄ  Ｍｅｍｏｒｙ）などの新型メモリが次々と登場している。しかし、コストの面では、依然フラッシュメモリが優位にたっており、特に、カメラ付き携帯電話機やデジタルカメラなどにおいては、そのほとんどをフラッシュメモリが独占している。
一方、上記の長所とは逆に、次のような短所を有している。すなわち、フラッシュメモリは、データの書き込みの際に上書きができないため、データの書き込みや削除を繰り返すと分断された不要な領域が消去されずに残る。そのため、この不要な領域を消去し、使用している領域を連続した領域にまとめ、その結果使用できる領域を増やす処理（以下ガーベジコレクションと呼ぶ）を実行する必要がある（例えば、特許文献１参照。）。
図１８は、従来のフラッシュメモリを用いたデータ書き換え時の処理の流れを示すフローチャートである。
以下の処理は、フラッシュメモリの外部に設置されたＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）の制御のもと行われる。
処理が開始すると、まず、ＣＰＵはデータ処理が書き込みか、それとも無効化処理かを判断し（Ｓ１００）、書き込みであればデータ書き込み処理を行い（Ｓ１０１）、無効化であればデータ無効化処理を行う（Ｓ１０２）。次に管理データの更新を行い（Ｓ１０３）、フラッシュメモリ内の領域使用率を計算する（Ｓ１０４）。次に、領域使用率の計算の結果に応じてガーベジコレクションの必要があるか否かを判断し（Ｓ１０５）、必要があればガーベジコレクション処理を行い（Ｓ１０６）、必要がなければそのまま処理を終了する。
しかし、上記のように、フラッシュメモリのデータ書き換え処理の後に、処理時間が長いガーベジコレクション処理を実行するので、携帯電話機などの装置全体の処理時間を長くしてしまうという問題があった。
この問題はフラッシュメモリのデータ書き換え処理とガーベジコレクション処理を異なるタイミングで実行させることにより解決できるが、そのためには、ガーベジコレクション処理を実行するタイミングを得ることが必要である。
【特許文献１】      特開２０００−２７８７３０（段落番号〔００２３〕〜〔００２７〕，第１図）
【発明の開示】
本発明はこのような点に鑑みてなされたものであり、ガーベジコレクションのように不要なデータを消去するタイミングを、外部に通知可能なフラッシュメモリを提供することを目的とする。
また、本発明の他の目的は、ガーベジコレクションのように不要なデータを消去するタイミングを、外部に通知可能なフラッシュメモリを制御するメモリ制御方法を提供することである。
本発明では上記課題を解決するために、図１に示すような、データが記憶される複数のユーザ領域ｕ１、ｕ２、ｕ３、…、ｕｎと、ユーザ領域ｕ１、ｕ２、ｕ３、…、ｕｎの状態を示す複数のフラグ領域ｆ１、ｆ２、ｆ３、…、ｆｎからなるメモリセルアレイ１１を有するフラッシュメモリ１０において、フラグ領域ｆ１、ｆ２、ｆ３、…、ｆｎを参照して、ユーザ領域ｕ１、ｕ２、ｕ３、…、ｕｎの状態に応じた情報を外部に通知するための状態通知情報を生成する状態通知情報生成部１２と、状態通知情報を出力する出力部１３と、を有することを特徴とするフラッシュメモリ１０が提供される。
上記の構成によれば、状態通知情報生成部１２は、フラグ領域ｆ１、ｆ２、ｆ３、…、ｆｎを参照して、ユーザ領域ｕ１、ｕ２、ｕ３、…、ｕｎの状態に応じた情報を外部に通知するための状態通知情報を生成し、出力部１３は、このような状態通知情報を外部に出力することで、外部にフラッシュメモリ１０内の状態を通知する。
本発明の上記および他の目的、特徴および利点は本発明の例として好ましい実施の形態を表す添付の図面と関連した以下の説明により明らかになるであろう。
【図面の簡単な説明】  図１は、本発明のフラッシュメモリの原理を説明する原理構成図である。
図２は、本発明の第１の実施の形態のフラッシュメモリ及びその外部に配置される回路を示した構成図である。
図３は、フラッシュメモリにデータを書き込む場合のタイミングチャートである。
図４は、フラッシュメモリのデータを無効化（または削除）する場合のタイミングチャートである。
図５は、割り込み信号を外部に出力する際のタイミングチャートである。
図６は、比率を書き換える際のタイミングチャートである。
図７は、フラッシュメモリのデータを書き換える際の処理の流れを示すフローチャートである。
図８は、書き込み動作の際の処理の流れを示すフローチャートである。
図９は、無効化処理を示すフローチャートである。
図１０は、データを消去する処理の流れを示すフローチャートである。
図１１は、割り込み信号出力の際の、フラッシュメモリ内での処理の流れを示すフローチャートである。
図１２は、ガーベジコレクション処理の流れを示すフローチャートである。
図１３は、本発明の第２の実施の形態のフラッシュメモリ及びその外部に配置される回路を示した構成図である。
図１４は、書き込み処理の後に比率を出力する場合のタイミングチャートである。
図１５は、無効化処理の後に比率を出力する場合のタイミングチャートである。
図１６は、第２の実施の形態の構成における処理の流れを示すフローチャートである。
図１７は、比率命令に応じて比率を出力する際のタイミングチャートである。
図１８は、従来のフラッシュメモリを用いたデータ書き換え時の処理の流れを示すフローチャートである。
【発明を実施するための最良の形態】  以下本発明の実施の形態を図面を参照して説明する。
図１は、本発明のフラッシュメモリの原理を説明する原理構成図である。
フラッシュメモリ１０は、データが記憶される複数のユーザ領域ｕ１、ｕ２、ｕ３、…、ｕｎと、ユーザ領域ｕ１、ｕ２、ｕ３、…、ｕｎの状態を示す複数のフラグ領域ｆ１、ｆ２、ｆ３、…、ｆｎからなるメモリセルアレイ１１と、フラグ領域ｆ１、ｆ２、ｆ３、…、ｆｎを参照して、ユーザ領域ｕ１、ｕ２、ｕ３、…、ｕｎの状態に応じた情報を外部に通知するための状態通知情報を生成する状態通知情報生成部１２と、状態通知情報を出力する出力部１３と、から構成される。
以下では、複数のユーザ領域ｕ１、ｕ２、ｕ３、…、ｕｎをユーザ領域ｕｘ（ｘ＝１、２、３、…、ｎ）と記し、複数のフラグ領域ｆ１、ｆ２、ｆ３、…、ｆｎをフラグ領域ｆｙ（ｙ＝１、２、３、…、ｎ）と記すことにする。
フラッシュメモリ１０の動作を説明する。
メモリセルアレイ１１において、ユーザ領域ｕｘにデータを書き込まれると、ユーザ領域ｕｘに対応したフラグ領域ｆｙは有効を示す値となり、データが無効化されると、フラグ領域ｆｙは無効を示す値となる。状態通知情報生成部１２は、フラグ領域ｆｙの値を参照して、これに対応したユーザ領域ｕｘの状態に応じた情報を外部に通知するための状態通知情報、例えばユーザ領域ｕｘが無効である比率（詳しくは後述）を生成する。その後、出力部１３は状態通知情報をフラッシュメモリ１０の外部に出力する。
これにより、例えば、ガーベジコレクションを行うフラッシュメモリ１０の外部に配置されるＣＰＵなどの制御部（図示せず）は、フラッシュメモリ内の状態（無効状態のユーザ領域ｕｘの比率など）を簡単に知ることができ、現在ガーベジコレクション処理を行う必要があるか否かを判断することができる。
以下、本発明の実施の形態の詳細を説明する。
まず本発明の第１の実施の形態のフラッシュメモリを説明する。
図２は、本発明の第１の実施の形態のフラッシュメモリ及びその外部に配置される回路を示した構成図である。
本発明の第１の実施の形態のフラッシュメモリ２０は、メモリセルアレイ２１、比率記憶部２２、比較部２３、時間管理部２４、制御部２５から構成される。
メモリセルアレイ２１は、前述の図１のように複数のユーザ領域ｕｘと、複数のフラグ領域ｆｙからなる。フラグ領域ｆｙは、各ユーザ領域ｕｘに対して２ビットの情報を持つ。フラグ領域ｆｙが“００”の場合は、そのフラグ領域ｆｙに対応するユーザ領域ｕｘのデータは消去されていることを示す。フラグ領域ｆｙが“０１”の場合は、そのフラグ領域ｆｙに対応するユーザ領域ｕｘのデータは有効であることを示す。フラグ領域ｆｙが“１１”の場合は、そのフラグ領域ｆｙに対応するユーザ領域ｕｘのデータは無効であることを示す。使用前のフラッシュメモリ２０のメモリセルアレイ２１は、ユーザ領域ｕｘの全領域にデータが書き込まれていない。さらにメモリセルアレイ２１のフラグ領域ｆｙの全領域にはデータが消去されていることを示す値“００”が書き込まれている。
比率記憶部２２には、あらかじめ所定の比率が記憶されている。例えば、“８０％”などと記憶されている。
比較部２３は、メモリセルアレイ２１のフラグ領域ｆｙの状態を判定して、ユーザ領域ｕｘが無効である比率を算出し、その後、比率記憶部２２に格納されている比率と比較する。
時間管理部２４は、ある一定の時間間隔、例えば６０秒間隔で制御部２５に信号を送る。
制御部２５は、フラッシュメモリ２０の各部を制御し、外部との情報の送受信を行う。制御部２５は、割り込み信号線１０１、制御信号線１０２によってＣＰＵ５０と接続されている。さらにデータバス６０、アドレスバス７０と接続される。
ＣＰＵ５０はデータバス６０、アドレスバス７０と接続されており、データバスはＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）８０を介してアドレスバス７０と接続される。ＣＰＵ５０はデータバス６０とアドレスバス７０を使用してフラッシュメモリ２０とＲＡＭ８０のデータの読み書きを行い、ＲＡＭ８０に書き込まれたプログラムを実行する。
なお、第１の実施の形態において、図１の状態通知情報生成部１２の機能は比較部２３に含まれ、出力部１３の機能は制御部２５に含まれる。
以下、図１の動作を説明するとともに、本発明の第１の実施の形態のフラッシュメモリ２０の動作を説明する。
まず、書き込み動作を説明する。
図３は、フラッシュメモリにデータを書き込む場合のタイミングチャートである。
データの書き込み処理の際の、アドレスバス７０、制御信号線１０２、割り込み信号線１０１、データバス６０の信号の様子を示している。
ＲＡＭ８０に書き込まれているデータをフラッシュメモリ２０に書き込む場合、ＣＰＵ５０は、制御信号線１０２の信号のレベルを“Ｈ”（ハイレベル）にすると同時に、データバス６０を介して書き込み命令を制御部２５に送る。その後、制御信号線１０２を“Ｌ”（ローレベル）に戻す。さらにＣＰＵ５０は、データバス６０を介してＲＡＭ８０から読み込んだデータを制御部２５に送る。また、ＣＰＵ５０は、アドレスバス７０を介して、書き込み先のアドレスを制御部２５に送る。
フラッシュメモリ２０の制御部２５は、図３のように制御信号線１０２が“Ｈ”になったときに、データバス６０からデータの書き込み命令を受信する。次に、データバス６０からデータを受信し、アドレスバス７０からアドレスを受信し、データをアドレスで指定されたメモリセルアレイ２１のユーザ領域ｕｘへ書き込む。さらに制御部２５は、ユーザ領域ｕｘに対応するフラグ領域ｆｙにデータが有効であることを示す値“０１”を書き込む。
次に無効化処理及びデータの削除時の動作を説明する。
図４は、フラッシュメモリのデータを無効化（または削除）する場合のタイミングチャートである。
データの無効化（または削除）処理の際の、アドレスバス７０、制御信号線１０２、割り込み信号線１０１、データバス６０の信号の様子を示している。
フラッシュメモリ２０に書き込まれているデータを無効化（または削除）する場合は、ＣＰＵ５０は、制御信号線１０２を“Ｈ”にすると同時に、データバス６０を介して、データを無効にする命令をフラッシュメモリ２０の制御部２５に送る。その後、制御信号線１０２を“Ｌ”に戻す。さらにＣＰＵ５０は、アドレスバス７０を介して、無効にするデータのアドレスを制御部２５に送る。
フラッシュメモリ２０の制御部２５は、図４のように、制御信号線１０２が“Ｈ”になったときに、データバス６０から無効化（または削除）命令を受け取る。次に、アドレスバス７０から受け取ったアドレスで指定されたメモリセルアレイ２１のユーザ領域ｕｘに対応するフラグ領域ｆｙにデータが無効であることを示す値“１１”を書き込む。データの削除の場合は、受け取ったアドレスで指定されたメモリセルアレイ２１のユーザ領域ｕｘのデータを削除し、削除したユーザ領域ｕｘに対応するフラグ領域ｆｙにデータが消去されていることを示す値“００”を書き込む。
次に本実施の形態の特徴部分の動作を説明する。
フラッシュメモリ２０内において、前述のように時間管理部２４は、ある一定の時間間隔、例えば６０秒間隔で制御部２５に信号を送る。時間管理部２４から信号を受信した制御部２５は、フラグ領域ｆｙのデータを読み込み、読み込んだデータを比較部２３に送る。フラグ領域ｆｙのデータを受け取った比較部２３は、無効であることを示すデータの個数を数え上げ、ユーザ領域ｕｘのデータが無効である比率を算出する。さらに比較部２３は、比率記憶部２２にあらかじめ格納してあった比率、例えば“８０％”と比較する。比較の結果、ユーザ領域ｕｘのデータが無効である比率が比率記憶部２２にあらかじめ格納してあった比率よりも大きい場合は、制御部２５に信号を送る。
比較部２３から信号を受け取った制御部２５は、割り込み信号線１０１を用いて、割り込み信号をＣＰＵ５０に送信する。
図５は、割り込み信号を外部に出力する際のタイミングチャートである。
図では、割り込み信号を出力する際の、アドレスバス７０、制御信号線１０２、割り込み信号線１０１、データバス６０の信号の様子を示している。
図のように割り込み信号線１０１を“Ｈ”とし、割り込み信号をＣＰＵ５０に送信する。この割り込み信号は、フラッシュメモリ２０が、ガーベジコレクション処理を必要としていることを外部に通知する信号である。
割り込み信号を受け取ったＣＰＵ５０は、ＲＡＭ８０に格納されているガーベジコレクションを行うプログラムを実行する。これによって、フラッシュメモリ２０内の不要なデータを消去し、空き領域を増やすガーベジコレクションを実行する。
なお、あらかじめ比率記憶部２２に格納された比率は書き換えることが可能である。
図６は、比率を書き換える際のタイミングチャートである。
図では、比率を書き換える処理の際の、アドレスバス７０、制御信号線１０２、割り込み信号線１０１、データバス６０の信号の様子を示している。
フラッシュメモリ２０の比率記憶部２２に記憶されている比率を書き換える場合は、図６のように、ＣＰＵ５０はまず、制御信号線１０２を“Ｈ”にすると同時に、データバス６０を介して比率格納命令を、フラッシュメモリ２０の制御部２５に送信する。その後、制御信号線１０２を“Ｌ”に戻す。次に、データバス６０を介して、例えばＲＡＭ８０に格納された、書き換え用の比率のデータを制御部２５に送信する。
制御部２５は、制御信号線１０２が“Ｈ”になったとき、データバス６０から比率格納命令を受信し、次にデータバス６０から書き換える比率のデータを受信する。制御部２５は受信した書き換える比率のデータを比率記憶部２２に送り、比率記憶部２２は受け取った比率のデータを記憶する。
以上の第１の実施の形態の動作の流れをフローチャートでまとめる。
図７は、フラッシュメモリのデータを書き換える際の処理の流れを示すフローチャートである。
Ｓ１０：書き込みか無効化かの判断
処理が開始すると、ＣＰＵ５０は、実行するデータ処理が、データの書き込み処理なのか、データの無効化処理なのかを判断する。データの書き込み処理の場合はステップＳ１１に進み、データの無効化処理の場合はステップＳ１２に進む。
Ｓ１１：データ書き込み処理
ステップＳ１０で、データの書き込み処理を行なうと判断されたので、データ書き込み処理を実行する。
Ｓ１２：データ無効化処理
ステップＳ１０で、データの無効化処理を行なうと判断されたので、データの無効化処理を実行する。
ステップＳ１１または、ステップＳ１２の処理が終了すると、ＣＰＵ５０はフラッシュメモリ２０のデータを書き換える処理を終了する。
図８は、書き込み動作の際の処理の流れを示すフローチャートである。
Ｓ２０：ユーザ領域へのデータ書き込み
書き込み処理が開始すると、フラッシュメモリ２０の制御部２５は、図３で示したようなタイミングで、メモリセルアレイ２１のユーザ領域ｕｘの指定されたアドレスへデータを書き込む。
Ｓ２１：フラグ領域への“０１”の書き込み
ステップＳ２０でユーザ領域ｕｘへの書き込み処理が行われると、制御部２５はデータを書き込んだユーザ領域ｕｘに対応するフラグ領域ｆｙへ、データが有効であることを示す値“０１”を書き込む。
図９は、無効化処理を示すフローチャートである。
Ｓ３０：フラグ領域への“１１”の書き込み
無効化処理が開始すると、フラッシュメモリ２０の制御部２５は、図４で示したようなタイミングで、メモリセルアレイ２１の、無効化するユーザ領域ｕｘに対応するフラグ領域ｆｙへ、データが無効であることを示す値“１１”を書き込む。その後、無効化処理を終了する。
図１０は、データを消去する処理の流れを示すフローチャートである。
Ｓ４０：ユーザ領域のデータ消去
データを消去する処理が開始すると、フラッシュメモリ２０の制御部２５は、図４で示したようなタイミングで、メモリセルアレイ２１のユーザ領域ｕｘの指定アドレスのデータを消去する。
Ｓ４１：フラグ領域への“００”の書き込み
制御部２５は、消去したユーザ領域ｕｘに対応するフラグ領域ｆｙへ、データが消去されていることを示す値、“００”を書き込み、データの消去処理を終了する。
図１１は、割り込み信号出力の際の、フラッシュメモリ内での処理の流れを示すフローチャートである。
Ｓ５０：所定時間が経過したか否かの判定
制御部２５は、時間管理部２４から、所定時間間隔で出力される信号を受信し、所定時間（例えば、６０秒）経過したか否かを判定する。ここで、所定時間が経過したと判定された場合には、ステップＳ５１に進み。所定時間経過していないと判定された場合、すなわち、時間管理部２４からの信号を受信しない場合は、ステップＳ５０を繰り返す。
Ｓ５１：フラグ領域のデータが“１１”である比率を算出
制御部２５は、比較部２３に、対応するユーザ領域ｕｘのデータが無効であることを示すフラグ領域ｆｙのデータ“１１”の比率を算出させる。
Ｓ５２：算出した比率が所定の比率より大きいか否かの判定
次に制御部２５は、比率記憶部２２にあらかじめ格納された所定の比率を取り出し、比較部２３に送り、そこで、ステップＳ５１の処理で算出した比率と比較させる。ここで、算出した比率があらかじめ格納された所定の比率（例えば８０％）より大きい場合は、ステップＳ５３に進み、そうではない場合はステップＳ５０に戻る。
Ｓ５３：割り込み信号を出力
制御部２５は、無効である比率が大きいので、外部に割り込み信号を出力し、ガーベジコレクション処理を要求する。その後、ステップＳ５０からの処理を繰り返す。
図１２は、ガーベジコレクション処理の流れを示すフローチャートである。
Ｓ６０：割り込み信号を受信したか否かの判定
ＣＰＵ５０は、フラッシュメモリ２０の制御部２５より、ガーベジコレクション処理の実行を要求する割り込み信号を受信したか否かを判定し、受信したと判定した場合はステップＳ６１に進み、受信しない場合はステップＳ６０を繰り返す。
Ｓ６１：ガーベジコレクション処理
ＣＰＵ５０は、フラッシュメモリ２０に対してガーベジコレクション処理を実行する。
ガーベジコレクション処理は、ユーザ領域ｕｘの無効なデータを消去して、有効な領域を連続した領域にまとめ、その結果、使用できる領域を増やす処理である。
このように、第１の実施の形態のフラッシュメモリ２０を用いることで、ＣＰＵ５０が実行するフラッシュメモリ２０内のデータを書き換えるプログラムと、ガーベジコレクションのプログラムが、それぞれ独立したプログラムとして実行することができる。さらに、第１の実施の形態のフラッシュメモリ２０によれば、ガーベジコレクションのプログラムを実行するタイミングを、割り込み信号として外部に通知することができる。
次に本発明の第２の実施の形態のフラッシュメモリを説明する。
図１３は、本発明の第２の実施の形態のフラッシュメモリ及びその外部に配置される回路を示した構成図である。
本発明の第２の実施の形態のフラッシュメモリ３０は、メモリセルアレイ３１、比率計算部３２、制御部３３から構成される。
メモリセルアレイ３１は、第１の実施の形態と同様に、複数のユーザ領域ｕｘと、それに対応したフラグ領域ｆｙとからなる。
比率計算部３２は、メモリセルアレイ３１のフラグ領域ｆｙの状態を判定して、ユーザ領域ｕｘが無効である比率を算出し、算出した比率を制御部３３に送る。
制御部３３は、フラッシュメモリ３０の各部を制御し、外部との情報の送受信を行う。制御部３３は、制御信号線１０２によってＣＰＵ５０と接続されている。さらにデータバス６０、アドレスバス７０と接続される。また、制御部３３は、比率計算部３２で算出された比率を受信し、これを、データの書き込み動作または無効化処理の直後に外部に出力する。
フラッシュメモリ３０の外部の回路の構成については、第１の実施の形態と同様であるので同符号とし、説明を省略する。
なお、第２の実施の形態において、図１の状態通知情報生成部１２の機能は比率計算部３２に含まれ、出力部１３の機能は制御部３３に含まれる。
本発明の第２の実施の形態のフラッシュメモリ３０は、第１の実施の形態のフラッシュメモリ２０と異なり、比率計算部３２で計算した比率そのものを、制御部３３で外部に出力する点が異なる。また時間管理部２４を省略し、データの書き込み動作または無効化処理の直後に外部に出力した点が異なる。
以下、第２の実施の形態の動作を説明する。
図１４は、書き込み処理の後に比率を出力する場合のタイミングチャートである。
図では、書き込み処理の後に比率を出力する際の、アドレスバス７０、制御信号線１０２、データバス６０の信号の様子を示している。
フラッシュメモリ３０の制御部３３は、図１４のように、制御信号線１０２が“Ｈ”になったときに、データバス６０から書き込み命令を受け取る。次に、アドレスバス７０から受け取ったアドレスで指定されたメモリセルアレイ３１のユーザ領域ｕｘに、データバス６０を介して受信したデータを書き込む。さらに、対応するフラグ領域ｆｙに、データが有効であることを示す値“０１”を書き込む。その後、比率計算部３２で、フラグ領域ｆｙの状態を判定してユーザ領域ｕｘが無効である比率を算出させる。制御部３３は、比率計算部３２で算出された比率を受け取り、これをデータバス６０に出力して外部に通知する。
図１５は、無効化処理の後に比率を出力する場合のタイミングチャートである。
図では、無効化処理の後に比率を出力する際の、アドレスバス７０、制御信号線１０２、データバス６０の信号の様子を示している。
フラッシュメモリ３０の制御部３３は、図１５のように、制御信号線１０２が“Ｈ”になったときに、データバス６０から無効化命令を受け取る。次に、アドレスバス７０から受け取ったアドレスで指定されたメモリセルアレイ３１のユーザ領域ｕｘに対応するフラグ領域ｆｙに、データが無効であることを示す値“１１”を書き込む。その後、比率計算部３２で、フラグ領域ｆｙの状態を判定してユーザ領域ｕｘが無効である比率を算出させる。制御部３３は、比率計算部３２で算出された比率を受け取り、これをデータバス６０に出力して外部に通知する。
図１６は、第２の実施の形態の構成における処理の流れを示すフローチャートである。
Ｓ７０：書き込みか無効化かの判断
処理が開始すると、ＣＰＵ５０は、実行するデータ処理が、データの書き込み処理なのか、データの無効化処理なのかを判断する。データの書き込み処理の場合はステップＳ７１に進み、データの無効化処理の場合はステップＳ７２に進む。
Ｓ７１：データ書き込み処理
ステップＳ７０で、データの書き込み処理を行なうと判断されたので、データ書き込み処理を実行する。
Ｓ７２：データ無効化処理
ステップＳ７０で、データの無効化処理を行なうと判断されたので、データの無効化処理を実行する。
Ｓ７３：算出した比率の読み込み
ＣＰＵ５０は、データバス６０を介して、書き込みまたは無効化処理の直後にフラッシュメモリ３０で算出され出力される比率を読み込む。
Ｓ７４：算出した比率が所定の比率より大きいか否かの判定
次に、ＣＰＵ５０は、算出した比率が、ＲＡＭ８０に格納された所定の比率（例えば８０％）より大きいか否かを判定し、大きければステップＳ７５に進み、そうでなければ処理を終了する。
Ｓ７５：ガーベジコレクション処理
フラッシュメモリ３０より通知された比率が、所定の比率を上回った場合は、ＣＰＵ５０は、ガーベジコレクション処理が必要であるとみなし、ガーベジコレクション処理を行う。
このように、第２の実施の形態のフラッシュメモリ２０は、データ書き込み、またはデータ無効化処理の直後に比率を出力するようにしたので、割り込み信号線１０１が不要になる。
次に本発明の第３の実施の形態を説明する。
第３の実施の形態の構成は、図１３で示した第２の実施の形態の構成図と同様になるので省略する。
第３の実施の形態では、ＣＰＵ５０がフラッシュメモリ２０に対して、比率を要求する比率出力命令を送信する点が第２の実施の形態と異なる。
図１７は、比率出力命令に応じて比率を出力する際のタイミングチャートである。
図では、その際のアドレスバス７０、制御信号線１０２、データバス６０の信号の様子を示している。
フラッシュメモリ３０の制御部３３は、図１７のように、制御信号線１０２が“Ｈ”になったときに、データバス６０から比率出力命令を受け取る。これに応じて、比率計算部３２で、フラグ領域ｆｙの状態を判定してユーザ領域ｕｘが無効である比率を算出させる。制御部３３は、比率計算部３２で算出された比率を受け取り、これをデータバス６０に出力して外部に通知する。
このように、第３の実施の形態では、フラッシュメモリ２０に比率出力命令を送信するときに比率を取得するので、任意のタイミングで比率を取得することが可能である。
なお、上記の第１の実施の形態では、一定時間間隔で、ユーザ領域ｕｘが無効である比率を計算して、フラッシュメモリ２０内で、算出した比率とあらかじめ格納していた所定の比率と比較して、算出した比率が大きい場合は、ガーベジコレクション処理を要求する割り込み信号を出力する場合についてした。一方、第２の実施の形態では、書き込み動作または無効化処理の直後に、算出した比率そのものを出力する場合にした。しかし、これに限定されず、一定時間間隔で、算出した比率そのものを出力するようにしてもよいし、書き込み動作または無効化処理の直後に、算出した比率とあらかじめ格納していた所定の比率と比較して、算出した比率が大きい場合は、ガーベジコレクション処理を要求する割り込み信号を出力するようにしてもよい。
また、第３の実施の形態では、外部からの比率出力命令に応じて、ユーザ領域ｕｘが無効である比率を出力するようにしたが、第１の実施の形態のような構成にして、外部からの命令がフラッシュメモリに入力された場合に、ガーベジコレクション処理を要求する割り込み信号を出力するようにしてもよい。
また上記では、フラグ領域ｆｙの値として、消去状態の場合は“００”、有効状態の場合は“０１”、無効状態の場合は“１１”として説明したが、これに限定されない。
以上説明したように本発明では、データが記憶される複数のユーザ領域と、ユーザ領域の状態を示す複数のフラグ領域からなるメモリセルアレイを有するフラッシュメモリにおいて、フラグ領域の値を参照して、ユーザ領域の状態に応じた情報を外部に通知するための状態通知情報を生成し、状態通知情報を外部に出力するようにしたので、フラッシュメモリの外部では、フラッシュメモリ内の状態を簡単に知ることができ、現在ガーベジコレクション処理を行う必要があるか否かを判断することができる。
上記については単に本発明の原理を示すものである。さらに、多数の変形、変更が当業者にとって可能であり、本発明は上記に示し、説明した正確な構成および応用例に限定されるものではなく、対応するすべての変形例および均等物は、添付の請求項およびその均等物による本発明の範囲とみなされる。
【図１】
2004077447.tif 000003
【図２】
2004077447.tif 000004
【図３】
2004077447.tif 000005
【図４】
2004077447.tif 000006
【図５】
2004077447.tif 000007
【図６】
2004077447.tif 000008
【図７】
2004077447.tif 000009
【図８】
2004077447.tif 000010
【図９】
2004077447.tif 000011
【図１０】
2004077447.tif 000012
【図１１】
2004077447.tif 000013
【図１２】
2004077447.tif 000014
【図１３】
2004077447.tif 000015
【図１４】
2004077447.tif 000016
【図１５】
2004077447.tif 000017
【図１６】
2004077447.tif 000018
【図１７】
2004077447.tif 000019
【図１８】
2004077447.tif 000020
【国際調査報告】
2004077447.tif 000021
2004077447.tif 000022
2004077447.tif 000023
2004077447.tif 000024