(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-06-10
(45)【発行日】2024-06-18
(54)【発明の名称】コントローラ、機器および方法
(51)【国際特許分類】
G06F 12/00 20060101AFI20240611BHJP
G11C 16/08 20060101ALI20240611BHJP
G11C 16/26 20060101ALI20240611BHJP
【FI】
G06F12/00 560A
G06F12/00 597U
G11C16/08 120
G11C16/26 100
(21)【出願番号】P 2021549868
(86)(22)【出願日】2019-04-30
(86)【国際出願番号】 CN2019085141
(87)【国際公開番号】W WO2020220246
(87)【国際公開日】2020-11-05
【審査請求日】2021-08-25
【審判番号】
【審判請求日】2023-03-15
(73)【特許権者】
【識別番号】519237948
【氏名又は名称】長江存儲科技有限責任公司
【氏名又は名称原語表記】Yangtze Memory Technologies Co.,Ltd.
【住所又は居所原語表記】No.88 Weilai 3rd Road,East Lake High-tech Development Zone,Wuhan,Hubei,China
(74)【代理人】
【識別番号】100109210
【氏名又は名称】新居 広守
(72)【発明者】
【氏名】チャン・フアンペン
(72)【発明者】
【氏名】フ・シャン
(72)【発明者】
【氏名】ワン・チ
【合議体】
【審判長】林 毅
【審判官】脇岡 剛
【審判官】山崎 慎一
(56)【参考文献】
【文献】特表2016-522942号公報(JP,A)
【文献】特開2009-230425号公報(JP,A)
【文献】米国特許出願公開第2015/0153955号明細書(US,A1)
【文献】特開2009-151681号公報(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F12/00-12/06
G06F 3/06
G11C11/56;16/00-17/18
(57)【特許請求の範囲】
【請求項1】
コントローラであって、
前記コントローラに結合され、プログラム後の経過時間が初期保持期間内である最近プログラムされた、データの読み出しに用いる電圧レベルである読み出しレベルおよびデフォルト読み出しレベルを記憶したフラッシュメモリ内のデータのエントリのリストを記憶するように構成されたメモリと、
前記メモリに結合されたマイクロコントローラと、
前記マイクロコントローラに結合され、クロック割り込みを生成するように構成されたタイマと、を備え、
前記マイクロコントローラは、
前記クロック割り込みの各々を受信する際に、前記フラッシュメモリにプログラムされたデータに基づいて前記エントリのリストを定期的に更新し、
前記フラッシュメモリからデータを読み出す前に、前記メモリからエントリのリストを読み出し、データがエントリのリストのエントリに一致する場合、プログラム後の経過時間が初期保持期間内である最近プログラムされた読み出しコマンドを、読み出しコマンドの前に前記フラッシュメモリに送信
するように構成され、
前記読み出しコマンドは、中のデータをフェッチするように前記フラッシュメモリに命令するために使用される
コントローラ。
【請求項2】
前記マイクロコントローラは、読み出し中のデータが前記エントリのリストのエントリと一致する場合に、前記最近プログラムされた読み出しコマンドを送信することで、前記読み出し中のデータの読み出しにおいて、前記最近プログラムされた読み出しレベルの使用を、前記フラッシュメモリに命令するようにさらに構成され、
前記最近プログラムされた読み出しレベルは、デフォルト読み出しレベルとは異なる
請求項1に記載のコントローラ。
【請求項3】
前記最近プログラムされた読み出しレベルは、前記デフォルト読み出しレベルを超える
請求項2に記載のコントローラ。
【請求項4】
前記最近プログラムされた読み出しレベルの使用を命令するために、前記マイクロコントローラは、前記フラッシュメモリに予め設定されて記憶されている前記最近プログラムされた読み出しレベルを読み出すように、前記フラッシュメモリに命令するように構成される
請求項2に記載のコントローラ。
【請求項5】
前記フラッシュメモリに命令するために、前記マイクロコントローラは、読み出しコマンドとは異なり、かつ、プログラム後の経過時間が初期保持期間内である最近プログラムされた読み出しコマンドを、前記フラッシュメモリに送信するように構成される
請求項4に記載のコントローラ。
【請求項6】
前記メモリは、所定の期間にわたって前記エントリのリストを記憶するように構成される
請求項1に記載のコントローラ。
【請求項7】
フラッシュメモリと、
前記フラッシュメモリに結合され、前記フラッシュメモリのデータアクセスを管理するように構成されたコントローラと、を備え、
前記コントローラは、
前記フラッシュメモリ内のデータのエントリのリストを記憶するように構成されたメモリと、
前記メモリに結合されたマイクロコントローラと、
前記マイクロコントローラに結合されたタイマであって、クロック割り込みを生成するように構成されたタイマと、を備え、
前記マイクロコントローラは、前記クロック割り込みの各々を受信する際に、前記フラッシュメモリにプログラムされたデータに基づいて前記エントリのリストを定期的に更新し、前記フラッシュメモリからデータを読み出す前に、前記メモリからエントリのリストを読み出し、データがエントリのリストのエントリに一致する場合、プログラム後の経過時間が初期保持期間内である最近プログラムされた読み出しコマンドを、読み出しコマンドの前に前記フラッシュメモリに送信するように構成され、
前記読み出しコマンドは、中のデータをフェッチするように前記フラッシュメモリに命令するために使用され、
前記フラッシュメモリは、
前記マイクロコントローラに結合されたマルチプレクサを備え、
プログラム後の経過時間が初期保持期間内である最近プログラムされた、データの読み出しに用いる電圧レベルである読み出しレベルおよびデフォルト読み出しレベルを記憶し、
前記マルチプレクサは、
前記フラッシュメモリが前記最近プログラムされた読み出しコマンドと前記読み出しコマンドとを受信したときに前記最近プログラムされた読み出しレベルを選択し、
前記フラッシュメモリが前記読み出しコマンドを受信し、前記最近プログラムされた読み出しコマンドを受信していないときに前記デフォルト読み出しレベルを選択し、
前記フラッシュメモリは、前記マルチプレクサによって選択された前記最近プログラムされた読み出しレベル又は前記デフォルト読み出しレベルを使用してデータを読み出すように構成されている
機器。
【請求項8】
前記マイクロコントローラは、読み出し中のデータが前記エントリのリストのエントリと一致する場合に、前記最近プログラムされた読み出しコマンドを送信することで、前記読み出し中のデータの読み出しにおいて、前記最近プログラムされた読み出しレベルの使用を、前記フラッシュメモリに命令するようにさらに構成され、
前記最近プログラムされた読み出しレベルは、デフォルト読み出しレベルとは異なる
請求項
7に記載の機器。
【請求項9】
前記最近プログラムされた読み出しレベルは、前記デフォルト読み出しレベルを超える
請求項
8に記載の機器。
【請求項10】
前記最近プログラムされた読み出しレベルの使用を命令するために、前記マイクロコントローラは、前記フラッシュメモリに予め設定されて記憶されている前記最近プログラムされた読み出しレベルを読み出すように、前記フラッシュメモリに命令するように構成される
請求項
8に記載の機器。
【請求項11】
前記フラッシュメモリに命令するために、前記マイクロコントローラは、読み出しコマンドとは異なり、かつ、プログラム後の経過時間が初期保持期間内である最近プログラムされた読み出しコマンドを、前記フラッシュメモリに送信するように構成される
請求項
10に記載の機器。
【請求項12】
前記メモリは、所定の期間にわたって前記エントリのリストを記憶するように構成される
請求項
7に記載の機器。
【請求項13】
フラッシュコントローラによって実行されるフラッシュメモリの、データの読み出しに用いる電圧レベルである読み出しレベルを管理するための方法であって、
前記フラッシュメモリ内のデータのエントリのリストを記憶することと、
クロック割り込みを生成することと、
前記クロック割り込みの各々を受信する際に、前記フラッシュメモリにプログラムされたデータに基づいて前記エントリのリストを定期的に更新することと、
前記フラッシュメモリからデータを読み出す前に、記憶されたエントリのリストを読み出し、データがエントリのリストのエントリに一致する場合、プログラム後の経過時間が初期保持期間内である最近プログラムされた読み出しコマンドを、読み出しコマンドの前に前記フラッシュメモリに送信することと、を含み、
前記読み出しコマンドは、中のデータをフェッチするように前記フラッシュメモリに命令するために使用され、
前記フラッシュメモリには、
前記フラッシュコントローラに含まれるマイクロコントローラに結合されたマルチプレクサが含まれ、
プログラム後の経過時間が初期保持期間内である最近プログラムされた読み出しレベルおよびデフォルト読み出しレベルが記憶され、
前記マルチプレクサが、
前記フラッシュメモリが前記最近プログラムされた読み出しコマンドと前記読み出しコマンドとを受信したときに前記最近プログラムされた読み出しレベルを選択し、
前記フラッシュメモリが前記読み出しコマンドを受信し、前記最近プログラムされた読み出しコマンドを受信していないときに前記デフォルト読み出しレベルを選択し、
前記フラッシュメモリは、前記マルチプレクサによって選択された前記最近プログラムされた読み出しレベル又は前記デフォルト読み出しレベルを使用してデータを読み出すように構成されている
方法。
【請求項14】
読み出し中のデータが前記エントリのリストのエントリと一致する場合に、前記最近プログラムされた読み出しコマンドを送信することで、前記読み出し中のデータの読み出しにおいて、前記最近プログラムされた読み出しレベルの使用を、前記フラッシュメモリに命令することであって、前記最近プログラムされた読み出しレベルは、デフォルト読み出しレベルとは異なる、前記フラッシュメモリに命令することをさらに含む
請求項
13に記載の方法。
【請求項15】
前記最近プログラムされた読み出しレベルは、前記デフォルト読み出しレベルを超える
請求項
14に記載の方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、半導体メモリに関し、詳細には、フラッシュメモリの読み出しレベルを管理する電子機器および方法に関する。
【背景技術】
【0002】
フラッシュメモリは、モバイルデバイスおよび家電機器における不揮発性データ記憶装置に広く採用されている。フラッシュメモリは、メモリセルを異なる閾値電圧レベルにプログラムすることによって、メモリセルのアレイにデータを記憶する。シングル・レベル・セル(SLC)フラッシュメモリでは、メモリセルは2つの可能な公称閾値電圧レベルを有し、2ビットのマルチレベルセル(MLC)フラッシュメモリでは、メモリセルは4つの可能な公称閾値電圧レベルを有する。フラッシュメモリは、メモリセルからデータを読み出すために、異なる閾値電圧レベルに対応するいくつかの読み出しレベルを使用することができる。
【0003】
フラッシュメモリは、フローティングゲート技術または電荷トラップ技術によって実装され得る。フローティング・ゲート・フラッシュ・メモリは、絶縁されたポリシリコン導電層に電荷を蓄積することができ、電荷トラップ型フラッシュメモリは、非導電性窒化ケイ素絶縁層に閉じ込められた電荷を保持することができる。過去数年にわたって、電荷トラップ型フラッシュメモリは、製造コストの低減および書き込みの耐久性の向上のために、フローティング・ゲート・フラッシュ・メモリよりも人気が高まっている。しかし、電荷トラップ型フラッシュメモリは、高速での初期の電荷損失という問題を抱えている。これは、浅くトラップされた電荷がプログラム後数秒以内にフラッシュ・メモリ・セルから出て、経時的な電荷漏れをもたらすものである。その結果、フラッシュ・メモリ・セルのデータが、デフォルトの読み出しレベルを使用して正確に読み出されなくなる可能性があり、漸進的な保持の損失および読み出し能力の漸進的な低下をもたらす。
【0004】
したがって、読み出し能力の信頼性が高く、かつ、回路の構造が単純なフラッシュ・メモリ・デバイスが、必要とされている。
【発明の概要】
【0005】
本発明の一実施形態では、フラッシュメモリおよびフラッシュコントローラを含む電子機器が提供される。フラッシュコントローラは、フラッシュメモリに結合され、フラッシュメモリへのデータアクセスを管理するために使用される。フラッシュコントローラは、タイマと、メモリと、タイマおよびメモリに結合されたマイクロコントローラとを含む。タイマは、クロック割り込みを生成するために使用される。メモリは、フラッシュメモリにプログラムされたデータのエントリのリストを所定の期間保持するために、使用される。各クロック割り込み時に、マイクロコントローラは、プログラムされているデータのエントリをフラッシュメモリに書き込み、エントリのリストを更新するために使用される。
【0006】
本発明の別の実施形態では、フラッシュメモリの読み出しレベルを管理する方法が開示される。この方法は、フラッシュメモリと、それに結合されたフラッシュコントローラとを含む電子機器によって採用される。フラッシュコントローラは、タイマと、メモリと、マイクロコントローラとを含む。方法は、タイマがクロック割り込みを生成することと、メモリが、フラッシュメモリにプログラムされたデータのエントリのリストを所定の期間保持することと、各クロック割り込みの際に、マイクロコントローラが、フラッシュメモリにプログラムされているデータのエントリを書き込み、エントリのリストを更新することとを含む。
【0007】
本発明のこれらおよび他の目的は、様々な図および図面に示されている好ましい実施形態の以下の詳細な説明を読めば、当業者に明らかになる。
【図面の簡単な説明】
【0008】
本明細書に組み込まれ、本明細書の一部を形成する添付の図面は、本開示の実施形態を示し、説明と共に、本開示の原理を説明し、当業者が本開示を作成および使用することを有効にするようにさらに機能する。
【
図1】初期保持期間におけるメモリセルのグループの閾値電圧分布を示す。
【
図2】初期保持期間後のメモリセルのグループの閾値電圧分布を示す。
【
図3】本発明の実施形態による、電子機器のブロック図である。
【
図4】
図3の電子機器によって採用される通常の読み出し動作のタイミング図を示す。
【
図5】
図3の電子機器によって採用される最近プログラムされた読み出し動作のタイミング図を示す。
【
図6】
図3のフラッシュメモリに組み込まれたマルチプレクサの概略図である。
【
図7】
図3の最近プログラムされたページプールの例示的なデータ構造を示す。
【
図8】
図3の電子機器に組み込まれたプログラム順序タグ管理プロセスのフローチャートである。
【
図9】
図3の電子機器によって採用される読み出しレベル管理方法のフローチャートである。
【発明を実施するための形態】
【0009】
本発明では、メモリセルがプログラムされた後の異なる期間にメモリセルからデータを読み出すために異なる読み出しレベルが使用され、それによって高速の初期電荷損失という問題が解決され、信頼性の高い読み出し動作が提供される。
【0010】
図1および
図2は、本発明の実施形態による、フラッシュ・メモリ・デバイスにおけるメモリセルのグループに対する読み出しレベルを管理する原理を示す。具体的には、
図1は、プログラム後の初期保持期間において使用するための閾値電圧分布10nおよび10(n+1)、ならびに最近プログラムされた読み出しレベルVrdnおよびVrd(n+1)を示し、閾値電圧分布10nおよび10(n+1)はそれぞれ、状態nおよび(n+1)におけるメモリセルのグループの閾値電圧Vtの分布を表し、最近プログラムされた読み出しレベルVrdnおよびVrd(n+1)はそれぞれ、メモリセルのグループの状態nおよび(n+1)を読み出すために使用される読み出しレベルを表す。同様に、
図2は、初期保持期間後に使用するための閾値電圧分布12nおよび12(n+1)、ならびにデフォルト読み出しレベルVrdn’およびVrd(n+1)’を示し、閾値電圧分布12nおよび12(n+1)はそれぞれ、状態nおよび(n+1)におけるメモリセルのグループの閾値電圧Vtの分布を表し、デフォルト読み出しレベルVrdn’およびVrd(n+1)’はそれぞれ、メモリセルのグループの状態nおよび(n+1)を読み出すために使用される読み出しレベルを表す。
【0011】
不純物濃度のばらつきやシリコン構造の欠陥などのメモリセルの特性の違いにより、メモリセルのグループは、閾値電圧分布10n、10(n+1)、12n、12(n+1)を示す。最近プログラムされた読み出しレベルVrdnおよびVrd(n+1)は、閾値電圧分布10nと10(n+1)を区別するように設定され、同様に、デフォルトの読み出しレベルVrdn’とVrd(n+1)’は、閾値電圧分布12nと12(n+1)を区別するように設定される。データ検索は、読み出しレベルVrdn、Vrd(n+1)、Vrdn’またはVrd(n+1)’をメモリセルのグループに適用することによって達成される。例えば、最近プログラムされた読み出しレベルVrd(n+1)がメモリセルのグループに適用されると、状態nのメモリセルは、最近プログラムされた読み出しレベルVrd(n+1)が閾値電圧分布10nの閾値電圧Vtを超えるため、ソース電流を生成し、状態(n+1)のメモリセルは、最近プログラムされた読み出しレベルVrd(n+1)が、閾値電圧分布10(n+1)の閾値電圧Vtより低次であるため、ソース電流を生成しない。結果として、ソース電流を感知することによって、メモリセルに保持されたデータは、状態nまたは状態(n+1)にあると識別することができる。
【0012】
図1および
図2は、閾値電圧分布の経時的なシフトを示す。初期保持期間が経過した後、閾値電圧分布10および10(n+1)を左にシフトさせて閾値電圧分布12nおよび12(n+1)を作出する。これに対応して、読み出しレベルが、閾値電圧分布のシフトを補償するように適合される。具体的には、デフォルトの読み出しレベルVrdn’およびVrd(n+1)’が、それぞれ、最近プログラムされた読み出しレベルVrdnおよびVrd(n+1)よりも低く設定される。したがって、初期保持期間において、より高い最近プログラムされた読み出しレベルVrdnおよびVrd(n+1)をデータの読み出しに採用することができ、初期保持期間が経過した後、より低いデフォルト読み出しレベルVrdn’およびVrd(n+1)’をデータの読み出しに採用することができ、それによってメモリセルのフルタイムでのデータの保持が保証される。
【0013】
図1および
図2に概説されているような経時的な読み出しレベルの適合は、
図3の電子機器3によって実施することができる。電子機器3は、フラッシュコントローラ30と、物理層トランシーバ32と、フラッシュメモリ34とを備える。フラッシュコントローラ30は、物理層トランシーバ32を介してフラッシュメモリ34に結合される。フラッシュメモリ34は、複数のページ340から34nを備え、ページ340から34nの各々は、データ記憶のためにアレイ状に配置された複数のメモリセルを含む。メモリセルは、シングル・レベル・セル(SLC)またはマルチレベルセル(MLC)であってもよい。フラッシュコントローラ30は、フラッシュメモリ34へのデータのアクセスを制御し、フラッシュメモリ34からデータを読み出すための読み出しレベルを管理することができる。物理層トランシーバ32は、フラッシュコントローラ30とフラッシュメモリ34との間のデータ転送をインタフェースすることができる。フラッシュコントローラ30は、タイマ300と、マイクロコントローラ302と、ダイレクト・メモリ・アクセス(DMA)304と、メモリ306とを備える。タイマ300は、マイクロコントローラ302、DMA304、次いでメモリ306に順次結合される。
【0014】
タイマ300は、定期的に処理される必要があるタスクを実行するために、クロック割り込みを生成し、それをマイクロコントローラ302に送信することができる。例えば、タイマ300は、毎秒クロック割り込みを生成し得る。メモリ306は、所定の期間、フラッシュメモリ34にプログラムされたデータのエントリのリスト3060を保持することができ、エントリのリスト3060は、いくつかの実施形態では最近プログラムされたページ(RPP)プールと呼ばれる。各クロック割り込み時に、マイクロコントローラ302は、プログラムされているデータのエントリをフラッシュメモリ34に書き込み、エントリのリスト3060を更新することができる。DMA304は、マイクロコントローラ302とメモリ306との間でデータのエントリを渡すことができる。
【0015】
マイクロコントローラ302は、読み出し対象のデータが初期保持期間であるかどうかを判定するためにエントリのリスト3060をチェックし、それに応じて対応する読み出しレベルを設定することができる。いくつかの実施形態では、マイクロコントローラ302は、SET機能を使用して、フラッシュメモリ34における読み出しレベルをオンザフライで設定し、設定された読み出しレベルを使用してデータを読み出すように、フラッシュメモリ34に命令することができる。他の実施形態では、最近プログラムされた読み出しレベル3400およびデフォルト読み出しレベル3402は、フラッシュメモリ34のページ340などの所定のページに予め設定されて記憶させてもよく、マイクロコントローラ302は、データを読み出すために最近プログラムされた読み出しレベル3400およびデフォルト読み出しレベル3402のうちの一方を使用するようにメモリ34に命令することができる。一般に、プリセットの読み出しレベル方法は、オンザフライ方法における設定よりも時間上効率的であり、以下のセクションでより詳細に述べていく。具体的には、フラッシュメモリ34からデータを読み出す前に、マイクロコントローラ302は、メモリ306からエントリのリスト3060を読み出してもよい。データがエントリのリスト3060のエントリと一致する場合、マイクロコントローラ302は、読み出されているデータが最近プログラムされたデータであることを示す最近プログラムされた読み出しコマンドをフラッシュメモリ34に送信し、最近プログラムされた読み出し動作を実行するようにフラッシュメモリ34に命令することができ、データがエントリのリスト3060のエントリと一致しない場合、マイクロコントローラ302は、通常の読み出し動作を実行するようにフラッシュメモリ34に命令することができる。最近プログラムされたデータは、プログラム後の初期保持期間のデータとして定義される。最近プログラムされた読み出し動作は、最近プログラムされた読み出しレベル3400を採用した読み出し動作であり、通常の読み出し動作は、デフォルトの読み出しレベル3402を採用した読み出し動作である。最近プログラムされた読み出しレベル3400が、デフォルト読み出しレベル3402を超える場合がある。
【0016】
フラッシュメモリ34は、NAND型フラッシュメモリまたはNOR型フラッシュメモリであり得、フラッシュコントローラ30は、NAND型フラッシュコントローラまたはNOR型フラッシュ・メモリ・コントローラであり得る。さらに、電子機器3では2つの読み出しレベルのみが使用されているが、経時的な閾値電圧シフトを担うために3つ以上の読み出しレベルが電子機器3によって採用され得ることは、当業者にとって明らかである。
【0017】
図4および
図5は、電子機器3が採用する通常の読み出し動作および最近プログラムされた読み出し動作のタイミング図をそれぞれ示しており、各タイミング図は、データ型信号Styp、データ信号DQ[7:0]およびレディ/ビジー信号R/B_nを含む。通常の読み出し動作の場合、レディ/ビジー信号R/B_nがレディに設定され、一連のアドレスが続く読み出しコマンドが、マイクロコントローラ302からフラッシュメモリ34に送られる。読み出しコマンドを受信し、最近プログラムされた読み出しコマンドを受信しないとき、フラッシュメモリ34は、中のデータをフェッチするためにデフォルト読み出しレベル3402を使用することができる。読み出しコマンドは、データ型信号StypにおけるコマンドCMDおよびデータ信号DQ[7:0]におけるデータ00hを送信することによって、送られる。最近プログラムされた読み出しコマンドは、データ型信号StypにおけるコマンドCMD、およびデータ信号DQ[7:0]におけるデータ2Bhを送信することによって、送られる。アドレスのシーケンスは、フラッシュメモリ34におけるデータの位置を指定する。レディ/ビジー信号R/B_nは、論理ハイ状態のときにレディと設定される。最近プログラムされた読み出し動作の場合、レディ/ビジー信号R/B_nはレディと設定され、読み出しコマンドに続く最近プログラムされた読み出しコマンドおよびアドレスのシーケンスは、マイクロコントローラ302からフラッシュメモリ34に送信され、最近プログラムされた読み出しコマンドと読み出しコマンドとの両方を受信するとき、フラッシュメモリ34は、最近プログラムされた読み出しレベル3400を使用して、中にデータをフェッチすることができる。
【0018】
図6は、フラッシュメモリ34に組み込まれたマルチプレクサ6の概略図である。マルチプレクサ6は、マイクロプロセッサ302からの最近プログラムされた読み出しコマンドに従って、最近プログラムされた読み出しレベル3400とデフォルト読み出しレベル3402との間で選択するために、フラッシュメモリ34のページ340に結合される。マルチプレクサ6は、最近プログラムされた読み出しコマンドを受信すると、指定されたアドレスからデータを読み出すための読み出しレベルlrdとして、最近プログラムされた読み出しレベル3400を選択し得る。マルチプレクサ6は、最近プログラムされた読み出しコマンドを受信していない場合、指定されたアドレスからデータを読み出すための読み出しレベルlrdとして、デフォルト読み出しレベル3402を選択し得る。
【0019】
図7は、
図3のエントリのリスト3060の例示的なデータ構造を示す。いくつかの実施形態では、エントリのリスト3060は、10個のエントリといった所定の数のエントリを含むことができ、マイクロコントローラ302は、毎秒エントリのリスト3060を更新することができる。すなわち、エントリのリスト3060の各エントリは、所定の寿命、例えば10秒を有する。さらに、各エントリは、プログラム順序タグ(POT)によってインデックス付けされ、クロック割り込みの間にフラッシュメモリ34にプログラムされるデータの量に応じて、任意の数のサブエントリを含むことができる。
図4は、POT(i+1)、POT(i)、およびPOT(i-1)によってインデックス付けされた3つのエントリを示しており、エントリPOT(i+1)が最新のエントリで、エントリPOT(i-1)が最も古いエントリである。クロック割り込みの間にデータがプログラムされていない場合、マイクロプロセッサ304は、エントリのリスト3060の最下部にエントリを入力せずに、期限切れのエントリPOTxprを除去することによって、エントリのリスト3060を更新することができ、クロック割り込みの間に2つのデータがプログラムされている場合、マイクロプロセッサ304は、エントリのリスト3060の最上部に2つのサブエントリを含む最新のエントリPOT(i+1)を追加し、エントリのリスト3060の最下部にて期限切れのエントリPOTxprを除去することによってエントリのリスト3060を更新することができる。期限切れのエントリPOTxprは、10秒などの所定の有効期間にわたって、エントリのリスト3060に留まっているエントリである。各サブエントリは、フラッシュメモリ34の1つのデータに対応するデータステータス70、論理ユニット番号(LUN)アドレスおよび/またはブロックアドレス72、開始ページアドレス74、ならびに終了ページアドレス76を含むことができる。データステータスは、サブエントリのデータの有効性を示し、LUNアドレスおよび/またはブロックアドレス72、開始ページアドレス74、ならびに終了ページアドレス76は、フラッシュメモリ34の対応するデータをアドレス指定するために使用される。
【0020】
図8は、マイクロコントローラ302によって採用されるプログラム順序タグ(POT)管理方法8のフローチャートである。POT管理方法8は、エントリのリスト3060を生成するために使用される。任意に適したステップに変更または調整することは、本開示の範囲内である。POT管理方法8は、以下のステップS800~S806を備える。
【0021】
ステップS800:フラッシュコントローラ30の電源がオンになる
ステップS802:マイクロコントローラ302が、POTをリセットする
ステップS804:マイクロコントローラ302が、POTが目標保持回数Ctより少ないか否かを判定する;そうであればステップS806に進み、そうでなければステップS802に進む
ステップS806:マイクロコントローラ302は、各クロック割り込み時にPOTを増分する
【0022】
フラッシュコントローラ30の電源がオンになると(S800)、マイクロコントローラ320は、POTを所定の値、例えば0にリセットし(S802)、POTが目標保持回数Ct、例えば9より少ないかどうかを判定する(S804)。POTが目標保持回数Ctより少ない場合、マイクロコントローラ302は、POTをプログラムされているデータのエントリに関連付け、エントリのリスト3060にエントリを保存し、各クロック割り込み時にPOTを増分する(S806)。POTが目標保持回数に等しい場合、マイクロコントローラ302は、POTをプログラムされているデータのエントリに関連付け、エントリのリスト3060にエントリを保存し、クロック割り込み時にPOTをリセットする(S802)。
【0023】
図9は、電子機器3によって採用される読み出しレベル管理方法9のフローチャートである。読み出しレベル管理方法9は、初期保持期間内および初期保持期間後にデータを読み出すための読み出しレベルを管理するために使用され、ステップS900~S908を含み、ステップS900~S904は、最近プログラムされたデータのエントリのリスト3060を作成するために使用され、ステップS906およびS908は、フラッシュメモリ34からデータを読み出すための読み出しレベルを管理するために、最近プログラムされた読み出しコマンドを生成するために使用される。任意に適したステップに変更または調整することは、本開示の範囲内である。読み出しレベル管理方法9は、以下のように概説される。
【0024】
ステップS900:タイマ300がクロック割り込みを生成する
ステップS902:メモリ306が、フラッシュメモリ34にプログラムされたデータのエントリのリスト3060を所定の期間保持する
ステップS904:各クロック割り込みにおいて、マイクロコントローラ302は、エントリのリスト3060を更新するために、プログラムされているデータのエントリを、フラッシュメモリ34に書き込む
ステップS906:マイクロコントローラ302は、フラッシュメモリ34からデータを読み出す前に、メモリ306からエントリのリスト3060を読み出す
ステップS908:データがエントリのリスト3060のエントリと一致する場合、マイクロコントローラ302は、最近プログラムされた読み出しコマンドを、フラッシュメモリ34に送信する
【0025】
ステップS900~S908の説明は、前の諸段落で提示されており、ここでは簡潔にするために省略する。
【0026】
前の諸段落で説明したように、電子機器3および読み出しレベル管理方法9は、単純な回路構造および制御機構を使用して、信頼できる読み出し能力を付与する。
【0027】
当業者は、本発明の教示を保持しながら、装置および方法の多数の修正および変更を行うことができる旨を容易に理解する。したがって、上記の開示は、添付の特許請求の範囲の境界によってのみ限定されると解釈されるべきである。