JP2010108522A - メモリシステムの制御方法 - Google Patents

メモリシステムの制御方法 Download PDF

Info

Publication number
JP2010108522A
JP2010108522A JP2010021547A JP2010021547A JP2010108522A JP 2010108522 A JP2010108522 A JP 2010108522A JP 2010021547 A JP2010021547 A JP 2010021547A JP 2010021547 A JP2010021547 A JP 2010021547A JP 2010108522 A JP2010108522 A JP 2010108522A
Authority
JP
Japan
Prior art keywords
block
time
blocks
memory system
data
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
JP2010021547A
Other languages
English (en)
Inventor
Kazuya Kitsunai
和也 橘内
Shinichi Sugano
伸一 菅野
Hirokuni Yano
浩邦 矢野
Toshikatsu Hida
敏克 檜田
Junji Yano
純二 矢野
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.)
Toshiba Corp
Original Assignee
Toshiba 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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP2010021547A priority Critical patent/JP2010108522A/ja
Publication of JP2010108522A publication Critical patent/JP2010108522A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Techniques For Improving Reliability Of Storages (AREA)
  • Memory System (AREA)
  • Read Only Memory (AREA)

Abstract

【課題】消去間隔を長くすることで、寿命を延長する。
【解決手段】データ消去の単位であるブロックを複数個有する不揮発性メモリ10を含むメモリシステム1の制御方法であって、各ブロックのデータが消去された消去時期を計測する工程と、少なくとも外部から供給されるデータを、空き状態でありかつ消去時期が最も古い第1のブロックに書き込む工程とを含む。
【選択図】 図4

Description

本発明は、メモリシステムの制御方法に係り、例えばNAND型フラッシュメモリを備えたメモリシステムの制御方法に関する。
近年、不揮発性半導体メモリは、大型コンピュータから、パーソナルコンピュータ、家電製品、携帯電話等、様々な所で利用されている。特に、NAND型フラッシュメモリは、電気的に書き換えが可能であり、不揮発性、大容量化、高集積化が可能な半導体メモリである。また、最近では、NAND型フラッシュメモリは、ハードディスクドライブ(HDD)の置き換えとしても考えられている。
NAND型フラッシュメモリは、書き込みを行う前に消去処理が必要な半導体メモリである。その寿命は、書き換え回数に依存している。NAND型フラッシュメモリのデータの書き込み/消去は、基板−制御ゲート間に高電圧を印加することにより、浮遊ゲートに電子を注入/放出させる。これを多数回行うと浮遊ゲート周りのゲート酸化膜が劣化し、浮遊ゲートに注入した電子が抜けていき、データが破壊されてしまう。すなわち、書き換え回数が増えると、書き換えてからデータを保持(リテンション)する期間が短くなる(リテンション特性の低下)。
また、パーソナルコンピュータ等のコンピュータが記録するデータは、時間的局所性、及び領域的局所性を兼ね備えている(非特許文献1参照)。そのため、データを記録する際に外部から指定されたアドレスにそのまま記録していくと、特定の領域に短時間に書き換え、すなわち消去処理が集中し、消去回数の偏りが大きくなる。
一方で、NAND型フラッシュメモリの寿命は、消去処理の間隔にも依存しており、その間隔が長いほどリテンション特性が良く、寿命が延びることが知られている(非特許文献2参照)。これは、消去間隔が短いとリテンション特性が悪く、寿命が損なわれることも示している。また、短い間隔で書き込みを行ったとしても、相応の長期間消去を行わなければリテンション特性が回復することも知られている(非特許文献3参照)。
David A. Patterson and John L. Hennessy, "Computer Organization and Design: The Hardware/Software Interface", Morgan Kaufmann Pub, 2004/8/31 Neal Mielke et al., "Flash EEPROM Threshold Instabilities due to Charge Trapping During Program/Erase Cycling", IEEE TRANSACTIONS ON DEVICE AND MATERIALS RELIABILITY, VOL. 4, NO. 3, SEPTEMBER 2004, PP.335-344 Neal Mielke et al., "Recovery Effects in the Distributed Cycling of Flash Memories", 44th Annual International Reliability Physics Symposium, San Jose, 2006, PP.29-35
本発明は、消去間隔を長くすることで、寿命を延ばすことが可能なメモリシステムの制御方法を提供する。
本発明の一態様に係るメモリシステムの制御方法は、データ消去の単位であるブロックを複数個有する不揮発性メモリを含むメモリシステムの制御方法であって、各ブロックのデータが消去された消去時期を計測する工程と、少なくとも外部から供給されるデータを、空き状態でありかつ消去時期が最も古い第1のブロックに書き込む工程とを具備する。
本発明の一態様に係るメモリシステムの制御方法は、データ消去の単位であるブロックを複数個有する不揮発性メモリを含むメモリシステムの制御方法であって、各ブロックのデータが消去された消去時期を計測する工程と、各ブロックの消去回数をカウントする工程と、ブロックごとに、空き状態或いは使用中状態であるかを示す状態値と前記消去時期と前記消去回数とを対応付けるブロックテーブルを生成する工程と、前記ブロックテーブルの情報に基づいて、空き状態かつ消去時期が最も古い方から一定数のブロックのうちで、消去回数が最も少ない第1のブロックを選択する工程と、少なくとも外部から供給されるデータを、前記第1のブロックに書き込む工程とを具備する。
本発明の一態様に係るメモリシステムの制御方法は、データ消去の単位であるブロックを複数個有する不揮発性メモリを含むメモリシステムの制御方法であって、各ブロックのデータが消去された消去時期を計測する工程と、各ブロックの消去回数をカウントする工程と、ブロックごとに、空き状態或いは使用中状態であるかを示す状態値と前記消去時期と前記消去回数とを対応付けるブロックテーブルを生成する工程と、前記ブロックテーブルの情報に基づいて、空き状態かつ消去時期が最も古い方から一定割合数のブロックのうちで、消去回数が最も少ない第1のブロックを選択する工程と、少なくとも外部から供給されるデータを、前記第1のブロックに書き込む工程とを具備する。
本発明の一態様に係るメモリシステムの制御方法は、データ消去の単位であるブロックを複数個有する不揮発性メモリを含むメモリシステムの制御方法であって、各ブロックのデータが消去された消去時期を計測する工程と、各ブロックの消去回数をカウントする工程と、ブロックごとに、空き状態或いは使用中状態であるかを示す状態値と前記消去時期と前記消去回数とを対応付けるブロックテーブルを生成する工程と、前記ブロックテーブルの情報に基づいて、空き状態かつ消去時期が一定時期より古いブロックのうちで、消去回数が最も少ない第1のブロックを選択する工程と、少なくとも外部から供給されるデータを、前記第1のブロックに書き込む工程とを具備する。
本発明によれば、消去間隔を長くすることで、寿命を延ばすことが可能なメモリシステムの制御方法を提供することができる。
本発明の第1の実施形態に係るメモリシステム1を備えた計算機システムの一例を示す概略図。 第1の実施形態に係るメモリシステム1の構成を示す概略図。 NAND型フラッシュメモリ10に含まれる1個のブロックの構成を示す回路図。 NANDコントローラ11の一例を説明するブロック図。 ブロック制御部30及び消去時期計測部31の構成を示すブロック図。 NANDコントローラ11の一連の書き込み動作を示すフローチャート。 NANDコントローラ11のブロック解放処理を示すフローチャート。 割当ブロック選択部32の構成を示すブロック図。 割当ブロック選択部32の割当ブロック選択処理を示すフローチャート。 NANDコントローラ11のブロック割当処理を示すフローチャート。 NANDコントローラ11のブロック消去処理を示すフローチャート。 平準化部35の構成を示すブロック図。 NANDコントローラ11の平準化処理を示すフローチャート。 入替元ブロック選択部33の構成を示すブロック図。 入替元ブロック選択部33の入替元ブロック選択処理を示すフローチャート。 入替先ブロック選択部34の構成を示すブロック図。 入替先ブロック選択部34の入替先ブロック選択処理を示すフローチャート。 本発明の第2の実施形態に係る割当ブロック選択部32の構成を示すブロック図。 割当ブロック選択部32の割当ブロック選択処理を示すフローチャート。 本発明の第3の実施形態に係る平準化部35の構成を示すブロック図。 平準化制限部37の構成を示すブロック図。 NANDコントローラ11の平準化処理を示すフローチャート。 平準化制限部37の乱数判定処理を示すフローチャート。 本発明の第4の実施形態に係るNANDコントローラ11の構成を示すブロック図。 平準化部35の構成を示すブロック図。 NANDコントローラ11の平準化処理を示すフローチャート。 実施例に係るSSD1の構成を示すブロック図 ドライブ制御回路102の構成を示すブロック図。 プロセッサ108の構成を示すブロック図。 SSD100を搭載したポータブルコンピュータの一例を示す斜視図。
以下、本発明の実施の形態について図面を参照して説明する。なお、以下の説明において、同一の機能及び構成を有する要素については、同一符号を付し、重複説明は必要な場合にのみ行う。
[第1の実施形態]
本実施形態のメモリシステムは、例えば、ホスト装置が実装されたプリント基板上に実装され、バスを介してホスト装置との間でデータの転送を行う。或いは、メモリシステムは、ホスト装置に対して着脱可能なように構成され、ホスト装置に接続された状態でバスを介してホスト装置との間でデータの転送を行うようにしてもよい。図1は、本実施形態のメモリシステム1を備えた計算機システムの一例を示す概略図である。
計算機システムは、中央演算処理装置(CPU:Central Processing Unit)2、DRAM(Dynamic Random Access Memory)等のメインメモリ3、メインメモリ3を制御するメモリコントローラ4、及び本実施形態のメモリシステム1を備えている。CPU2、メインメモリ3、及びメモリシステム1は、アドレスを扱うアドレスバス、及びデータを扱うデータバスを介して接続されている。
このような計算機システムでは、CPU2からの転送要求(読出要求、或いは書込要求)に応じて、書込要求であればCPU2のデータ(外部から入力されたデータを含む)、或いはメインメモリ3のデータがメモリシステム1に転送され、読出要求であればメモリシステム1のデータがCPU2、或いはメインメモリ3に転送される。
メモリシステム1は、不揮発性半導体メモリの一種であるNAND型フラッシュメモリ10、及びこのNAND型フラッシュメモリ10を制御するNANDコントローラ11を備えている。以下に、メモリシステム1の構成の一例について説明する。
[1.メモリシステム1の構成]
図2は、メモリシステム1の構成を示す概略図である。メモリシステム1は、NAND型フラッシュメモリ10、及びNANDコントローラ11を備えている。NANDコントローラ11は、ホストインターフェース回路(ホストI/F)21、演算処理装置(MPU:Micro processing unit)22、ROM(Read-only memory)23、RAM(Random access memory)24、及びNANDインターフェース回路(NAND I/F)25を備えている。
ホストインターフェース回路21は、NANDコントローラ11とホスト装置(CPU2、メインメモリ3)との間のインターフェース処理を行う。
MPU22は、メモリシステム1全体の動作を制御する。MPU22は、例えば、メモリシステム1が電源供給を受けたときに、ROM23に格納されているファームウェア(制御プログラム)をRAM24上に読み出して所定の処理を実行することにより、各種のテーブルをRAM24上に作成する。また、MPU22は、ホスト装置から書込要求、読出要求、消去要求を受け、これらの要求に応じてNAND型フラッシュメモリ10に所定の処理を実行する。
ROM23は、MPU22により制御される制御プログラム等を格納する。RAM24は、MPU22の作業エリアとして使用され、ROM23からロードされた制御プログラムや各種のテーブルを記憶する。NANDインターフェース回路25は、NANDコントローラ11とNAND型フラッシュメモリ10との間のインターフェース処理を行う。
NAND型フラッシュメモリ10は、データ消去の単位であるブロックを複数配列して構成されている。図3は、NAND型フラッシュメモリ10に含まれる1個のブロックの構成を示す回路図である。各ブロックは、X方向に沿って順に配列された(m+1)個のNANDストリングを備えている(mは、0以上の整数)。(m+1)個のNANDストリングにそれぞれ含まれる選択トランジスタST1は、ドレインがビット線BL0〜BLmに接続され、ゲートが選択ゲート線SGDに共通接続されている。また、選択トランジスタST2は、ソースがソース線SLに共通接続され、ゲートが選択ゲート線SGSに共通接続されている。
各メモリセルトランジスタMTは、半導体基板上に形成された積層ゲート構造を備えたMOSFET(metal oxide semiconductor field effect transistor)から構成される。積層ゲート構造は、半導体基板上にゲート絶縁膜を介在して形成された電荷蓄積層(浮遊ゲート電極)、及び電荷蓄積層上にゲート間絶縁膜を介在して形成された制御ゲート電極を含んでいる。メモリセルトランジスタMTは、浮遊ゲート電極に蓄えられる電子の数に応じて閾値電圧が変化し、この閾値電圧の違いに応じてデータを記憶する。メモリセルトランジスタMTは、1ビットを記憶するように構成されていてもよいし、多値(2ビット以上のデータ)を記憶するように構成されていてもよい。
各NANDストリングにおいて、(n+1)個のメモリセルトランジスタMTは、選択トランジスタST1のソースと選択トランジスタST2のドレインとの間に、それぞれの電流経路が直列接続されるように配置されている。すなわち、複数のメモリセルトランジスタMTは、隣接するもの同士で拡散領域(ソース領域若しくはドレイン領域)を共有するような形でY方向に直列接続される。
そして、最もドレイン側に位置するメモリセルトランジスタMTから順に、制御ゲート電極がワード線WL0〜WLnにそれぞれ接続されている。従って、ワード線WL0に接続されたメモリセルトランジスタMTのドレインは選択トランジスタST1のソースに接続され、ワード線WLnに接続されたメモリセルトランジスタMTのソースは選択トランジスタST2のドレインに接続されている。
ワード線WL0〜WLnは、ブロック内のNANDストリング間で、メモリセルトランジスタMTの制御ゲート電極を共通に接続している。つまり、ブロック内において同一行にあるメモリセルトランジスタMTの制御ゲート電極は、同一のワード線WLに接続される。この同一のワード線WLに接続される(m+1)個のメモリセルトランジスタMTは1ページとして取り扱われ、このページごとにデータの書き込み及びデータの読み出しが行われる。
また、ビット線BL0〜BLmは、ブロック間で、選択トランジスタST1のドレインを共通に接続している。つまり、複数のブロック内において同一列にあるNANDストリングは、同一のビット線BLに接続される。
本発明の各実施形態における各機能ブロックは、ハードウェア、及びソフトウェアのいずれか、又は両者の組み合わせとして実現することができる。このため、各機能ブロックは、これらのいずれでもあることが明確となるように、概してそれらの機能の観点から以下に説明される。このような機能が、ハードウェアとして実現されるか、又はソフトウェアとして実現されるかは、具体的な実施態様、又はシステム全体に課される設計制約に依存する。当業者は、具体的な実施態様ごとに、様々な方法でこれらの機能を実現し得るが、そのような実現を決定することは本発明の範疇に含まれるものである。
以下に、NANDコントローラ11のより具体的な構成の一例について説明する。図4は、NANDコントローラ11の一例を説明するブロック図である。
NANDコントローラ11は、ブロック制御部30、消去時期計測部31、割当ブロック選択部32、入替元ブロック選択部33、入替先ブロック選択部34、平準化部35、及びNANDインターフェース回路(NAND I/F)25を備えている。
消去時期計測部31は、NAND型フラッシュメモリ10の各ブロックのデータが消去されるごとに、当該ブロックの消去時期を計測する。そして、消去時期計測部31は、この消去時期をブロック制御部30に送る。
ブロック制御部30は、ブロックごとの各種情報(消去時期を含む)を管理する。また、ブロック制御部30は、CPU2からの転送要求に応じて、NAND型フラッシュメモリ10に対して書込要求、読出要求、消去要求を行う。具体的には、ブロック制御部30は、後述するアドレステーブル30A、及びブロックテーブル30Bを備えており、これらのテーブルを利用して、書込要求、読出要求、消去要求を行う。
割当ブロック選択部32は、例えば外部(CPU2、或いはメインメモリ3)から供給される新たなデータをNAND型フラッシュメモリ10に書き込む際に、この書き込みに割り当てるブロック(以下、割当ブロックという)を選択する。そして、割当ブロック選択部32は、この割り当てブロックに対応するブロック番号(割当ブロック番号)をブロック制御部30に送る。なお、NAND型フラッシュメモリ10に書き込まれるデータとしては、メモリシステム1の外部から供給されるユーザデータの他に、メモリシステム1内部の管理に必要なシステムデータの2種類が存在する。
平準化部35は、後述する平準化処理を実行する。そして、平準化部35は、この平準化処理に伴い、NAND型フラッシュメモリ10に対して書込要求、読出要求、消去要求を行う。なお、平準化とは、ブロックの消去回数を揃えること(いわゆる、ウェアレベリング:wear leveling)を意味する。このように、ブロックの消去回数を揃えることで、一部のブロックへ消去処理が集中するのを防ぐことができるため、NAND型フラッシュメモリ10の寿命を延ばすことが可能となる。
入替元ブロック選択部33は、平準化部35による平準化処理に使用される、データ入れ替え元のブロック(以下、入替元ブロックという)を選択する。入替先ブロック選択部34は、平準化部35による平準化処理に使用される、データ入れ替え先のブロック(以下、入替先ブロックという)を選択する。
NANDインターフェース回路25は、ブロック制御部30及び平準化部35から、書込要求、読出要求、及び消去要求を受ける。そして、NANDインターフェース回路25は、これらの要求に応じて、NAND型フラッシュメモリ10に対してデータの書き込み、読み出し、及び消去を伝える。
図5は、ブロック制御部30及び消去時期計測部31の構成を示すブロック図である。ブロック制御部30は、アドレステーブル30A、ブロックテーブル30B、及び演算部30Cを備えている。
アドレステーブル30Aは、ホスト装置(CPU2)からアドレスバスを介して送られるアドレスを含むアドレス領域(論理ブロックアドレス)と、このアドレス領域に対応する、NAND型フラッシュメモリ10内のブロックの番号(物理ブロックアドレス)との関係を示す。このアドレステーブル30Aを用いることで、ブロック制御部30は、ホスト装置から送られるアドレスを含むアドレス領域のデータがどのブロックに対応するかを特定することができる。このアドレステーブル30Aは、例えば、後述するブロック解放処理、ブロック割当処理に伴い更新される。
ブロックテーブル30Bは、ブロック番号ごとに、アドレステーブル30Aにブロック番号が設定されていないか(以下、空き状態という)、アドレステーブル30Aにブロック番号が設定されているか(以下、使用中状態という)を示すブロックの状態と、データが消去された回数(消去回数)と、消去時期計測部31から送られる消去時期とを情報として格納する。このブロックテーブル30Bは、例えば、後述するブロック解放処理、ブロック割当処理、ブロック消去処理に伴い更新される。
ブロックの状態が空き状態であれば、NAND型フラッシュメモリ10内部で当該ブロックに対して実際に消去が行われたか否かに係わらず、当該ブロックに対応するアドレス領域は、ホスト装置から見ると、データが格納されていない空き領域であると認識される。一方、ブロックの状態が使用中状態であれば、当該ブロックに対応するアドレス領域は、ホスト装置から見ると、データが格納されている使用中領域であると認識される。
なお、実際には、これらアドレステーブル30A及びブロックテーブル30Bは、RAM24、或いは、RAM24及びNAND型フラッシュメモリ10の両方に格納されている。但し、NAND型フラッシュメモリ10に不揮発に格納されたアドレステーブル30A及びブロックテーブル30Bは、必ずしもRAM24を更新した都度更新を行う必要はない。
演算部30Cは、NAND型フラッシュメモリ10のデータが消去されるごとに、ブロックテーブル30Bに含まれる、消去が行われたブロックの消去回数を1カウントアップする。なお、実際には、演算部30Cの処理は、MPU22により行われる。
ブロック制御部30は、割当ブロック選択部32から割当ブロック番号を受ける。そして、ブロック制御部30は、この割当ブロック番号を用いて、アドレステーブル30Aのブロック番号を更新する。また、ブロック制御部30は、この割当ブロック番号に対応するブロックテーブル30B内の情報(割当ブロック情報)と、ブロックの割り当てに伴って解放されたブロックの情報(解放ブロック情報)とを平準化部35に送る。
また、ブロック制御部30は、ブロックテーブル30Bを用いて、NAND型フラッシュメモリ10に含まれる全てのブロックの情報(全ブロック情報)を、割当ブロック選択部32、入替元ブロック選択部33、及び入替先ブロック選択部34に送る。
消去時期計測部31は、消去回数をカウントする消去回数カウンタ31A、及び消去回数カウンタ31Aのカウント値を更新する演算部31Bを備えている。消去時期計測部31は、NAND型フラッシュメモリ10内のブロックに対して消去処理が行われた回数を計測し、この計測された回数を消去時期として出力する。
具体的には、演算部31Bは、いずれかのブロックが消去されるごとに、消去回数カウンタ31Aを1カウントアップする。消去回数カウンタ31Aのカウント値(消去番号)は、消去時期としてブロック制御部30(具体的には、ブロックテーブル30B)に送られる。この例の消去時期計測部31では、消去番号が小さいほど、消去時期が古くなる。なお、実際には、演算部31Bの処理は、MPU22により行われる。
消去時期としては、この他に、消去処理が行われた時刻(消去時刻)や、NANDコントローラ11の通電時間等を用いるようにしてもよい。消去時刻を消去時期として用いる場合は、消去時期計測部31が時計を備え、消去処理が行われるごとに、その時刻を消去時期として出力する。通電時間を消去時期として用いる場合は、消去時期計測部31がタイマーを備え、消去処理が行われるごとに、それまでの通電時間を計測し、その通電時間を消去時期として出力する。このように、消去時期として、消去回数、消去時刻、及び通電時間のいずれを用いるかは、任意に選択することが可能である。なお、消去時期が特定可能な情報であれば、上記3種類以外を用いることも可能である。
[2.NANDコントローラ11の書き込み動作]
次に、NANDコントローラ11の書き込み動作について説明する。図6は、NANDコントローラ11の一連の書き込み動作を示すフローチャートである。
まず、NANDコントローラ11は、CPU2から書込要求を受けることで、書き込み動作を開始する(ステップS10)。続いて、ブロック制御部30は、アドレステーブル30Aを用いて、書込要求のアドレスを含むアドレス領域に対して、ブロック番号が登録されている(ブロックが割り当てられている)か否かを判定する(ステップS11)。ブロック番号が登録されている(ブロックが割り当てられている)場合、このアドレス領域に対してデータの上書きを行う必要があるため、NANDコントローラ11は、上記ブロック番号に対応するブロックを解放するブロック解放処理を実行する(ステップS12)。
ステップS11においてブロック番号が登録されていない(ブロックが割り当てられていない)と判定された場合、或いはステップS12においてブロック解放処理を実行後、割当ブロック選択部32は、上記アドレス領域に割り当てるブロック(割当ブロック)を選択する割当ブロック選択処理を実行する(ステップS13)。
続いて、ブロック制御部30は、割当ブロックに対応するブロック番号(割当ブロック番号)を用いて、アドレステーブル30A及びブロックテーブル30Bを更新するために、ブロック割当処理を実行する(ステップS14)。続いて、ブロック制御部30は、割当ブロックに対してブロック消去処理を実行する(ステップS15)。
続いて、ブロック制御部30は、この消去された割当ブロックにデータを書き込む(ステップS16)。すなわち、ブロック制御部30は、NANDインターフェース回路25に書込要求を発行する。この書込要求に基づいて、NANDインターフェース回路25は、NAND型フラッシュメモリ10に、割当ブロックへのデータの書き込みを伝える。
続いて、NANDコントローラ11は、平準化処理を実行する(ステップS17)。平準化処理を終えて、NANDコントローラ11の一連の書き込み動作が終了する。なお、ステップS17の平準化処理は、ステップS13の割当ブロック選択処理の前に行うようにしてもよい。
以下に、書き込み動作に含まれる各処理について説明する。
[2−1.ブロック解放処理]
図7は、NANDコントローラ11のブロック解放処理を示すフローチャートである。ブロック制御部30は、アドレステーブル30Aに含まれる、書込要求のアドレスを含むアドレス領域に対応するブロック番号を、未割り当ての状態(未割当状態)に設定する(ステップS20)。続いて、ブロック制御部30は、ブロックテーブル30Bに含まれる、上記ブロック番号の状態を、空き状態に設定する。ブロック解放処理において新たに空き状態に設定されたブロックを、以下解放ブロックという(ステップS21)。
続いて、ブロック制御部30は、ブロックテーブル30Bに含まれる、解放ブロックの情報(解放ブロック情報)を平準化部35に送る。解放ブロック情報は、少なくとも、解放されたブロック番号の消去時期を含んでいる。平準化部35は、この解放ブロック情報を用いて、後述する負荷集中度を更新する(ステップS22)。
[2−2.割当ブロック選択処理]
図8は、割当ブロック選択部32の構成を示すブロック図である。図9は、割当ブロック選択部32の割当ブロック選択処理を示すフローチャートである。
割当ブロック選択部32は、2個のセレクタ32A及び32Bを備えている。割当ブロック選択部32は、ブロック制御部30から全ブロック情報を受ける(ステップS30)。この全ブロック情報は、セレクタ32Aに送られる。続いて、セレクタ32Aは、全ブロックの状態を確認し、全ブロックのうち空き状態のブロックを抽出する(ステップS31)。そして、セレクタ32Aは、空き状態のブロックに対応するブロック情報(空き状態ブロック情報)をセレクタ32Bに送る。
続いて、セレクタ32Bは、セレクタ32Aにより抽出されたブロックのうち、消去時期が最も古いブロックを割当ブロックとして選択する(ステップS32)。この割当ブロックに対応する割当ブロック番号は、ブロック制御部30に送られる。
[2−3.ブロック割当処理]
図10は、NANDコントローラ11のブロック割当処理を示すフローチャートである。ブロック制御部30は、アドレステーブル30Aに含まれる、書込要求のアドレスを含むアドレス領域に対して、割当ブロックのブロック番号を設定する(ステップS40)。続いて、ブロック制御部30は、ブロックテーブル30Bに含まれる、上記ブロック番号の状態を、使用中状態に設定する(ステップS41)。
続いて、ブロック制御部30は、ブロックテーブル30Bに含まれる、割当ブロックの情報(割当ブロック情報)を平準化部35に送る。割当ブロック情報は、少なくとも、割り当てられたブロック番号の消去時期を含んでいる。平準化部35は、この割当ブロック情報を用いて、後述する負荷集中度を更新する(ステップS42)。
[2−4.ブロック消去処理]
図11は、NANDコントローラ11のブロック消去処理を示すフローチャートである。ブロック制御部30は、NANDインターフェース回路25に、割当ブロックに対する消去要求を発行する(ステップS50)。この消去要求に基づいて、NANDインターフェース回路25は、NAND型フラッシュメモリ10に、割当ブロックのデータの消去を伝える(ステップS51)。続いて、消去時期計測部31(具体的には、演算部31B)は、消去回数カウンタ31Aのカウント値(消去番号)を1カウントアップする(ステップS52)。
続いて、ブロック制御部30は、ブロックテーブル30Bに含まれる、消去した割当ブロックに対応する消去回数及び消去時期を更新する(ステップS53)。具体的には、ブロック制御部30は、消去時期計測部31から送られる消去時期を用いて、ブロックテーブル30Bに含まれる、消去した割当ブロックのブロック番号に対応する消去時期を更新する。また、演算部30Cは、ブロックテーブル30Bに含まれる、消去した割当ブロックのブロック番号に対応する消去回数を1カウントアップする。
[2−5.平準化処理]
NAND型フラッシュメモリ10の寿命を延長するには、各ブロックの消去回数を揃えることと、特定の領域に対して短期間に頻繁に書き換え処理を行うことを避けることとの両立が必要である。消去回数を揃えることだけに着目してNAND型フラッシュメモリ10の寿命を延長しようとすると、書き込み状況によっては特定の領域が短期間に書き換えが進行してしまうことがある。短期間にこの修正(平準化)を頻繁に行うと、消去回数は揃い、短期間の特定の領域への書き込み集中を避けることができるが、修正に起因する消去処理が多くなり、結果として寿命を延長することができない。一方で、修正の間隔を延ばし過ぎると、特定の領域に間隔の短い消去処理が集中することになり、寿命が短くなってしまう。このような知見に基づいて、本実施形態の平準化処理では、平準化の回数を最適化し、かつブロックごとの消去回数を揃えるようにしている。
平準化処理は、平準化部35、入替元ブロック選択部33、及び入替先ブロック選択部34により実行される。なお、前述したように、この平準化処理は、図6の割当ブロック選択処理(ステップS13)の前に行うようにしてもよい。図12は、平準化部35の構成を示すブロック図である。
平準化部35は、負荷集中度管理部36、平準化判定部35A、及び平準化閾値を格納する記憶部35Bを備えている。平準化判定部35Aは、平準化閾値、及び負荷集中度管理部36から送られる負荷集中度を用いて、今回の書き込み動作時に平準化処理を行うか否かを判定する。そして、平準化処理を行う場合、平準化判定部35Aは、NANDインターフェース回路25に、平準化処理に伴う読出要求、消去要求、及び書込要求を発行する。
負荷集中度管理部36は、解放ブロック用加算値テーブル36A、割当ブロック用加算値テーブル36B、演算部36C、及び負荷集中度カウンタ36Dを備えている。また、負荷集中度管理部36は、ブロック制御部30から解放ブロック情報及び割当ブロック情報を受ける。
解放ブロック用加算値テーブル36Aは、複数の消去時期と、これらに対応する複数の加算値との対応関係を示す。これらの加算値は、消去時期に応じて大きさが変わっており、正、ゼロ、及び負のいずれの値も取り得る。また、加算値は、消去時期が新しいほど値が大きく、古くなるに伴い小さく設定される。なお、もっと単純化して、ある消去時期を越えた場合は負の一定加算値を出力し、ある消去時期以下である場合は正の一定加算値を出力するようにしてもよい。解放ブロック用加算値テーブル36Aは、解放ブロック情報に含まれる消去時期に対応する加算値を演算部36Cに送る。
同様に、割当ブロック用加算値テーブル36Bは、複数の消去時期と、これらに対応する複数の加算値との対応関係を示す。これらの加算値は、消去時期に応じて大きさが変わっており、正、ゼロ、及び負のいずれの値も取り得る。また、加算値は、消去時期が新しいほど値が大きく、古くなるに伴い小さく設定される。なお、もっと単純化して、ある消去時期を越えた場合は負の一定加算値を出力し、ある消去時期以下である場合は正の一定加算値を出力するようにしてもよい。割当ブロック用加算値テーブル36Bは、割当ブロック情報に含まれる消去時期に対応する加算値を演算部36Cに送る。
演算部36Cは、解放ブロック用加算値テーブル36A及び割当ブロック用加算値テーブル36Bからそれぞれ送られる加算値を用いて、負荷集中度カウンタ36Dのカウント値を更新する。なお、実際には、演算部36Cの処理は、MPU22により行われる。負荷集中度カウンタ36Dは、カウント値を負荷集中度として平準化判定部35Aに送る。この負荷集中度の大きさによって、間隔の短い消去処理が頻繁に行われているか否かを判定することができる。
図13は、NANDコントローラ11の平準化処理を示すフローチャートである。平準化判定部35Aは、負荷集中度管理部36から送られる負荷集中度が平準化閾値を越えているか否かを判定する(ステップS60)。この平準化閾値は、平準化処理を実行するか否かを判定するために使用され、また、NAND型フラッシュメモリ10の寿命(或いは、データリテンション期間)をどの程度延ばすかという基準に基づいて設定される。
データを消去するごとに、NAND型フラッシュメモリ10のリテンション特性は悪化する(すなわち、寿命が短くなる)。一方、消去間隔が長くなると、NAND型フラッシュメモリ10のリテンション特性が回復していく。すなわち、短い間隔で消去処理が連続して行われた場合には、リテンション特性の回復時間が確保できないため、NAND型フラッシュメモリ10の寿命が短くなってしまう。そこで、本実施形態では、消去間隔が長いか短いかという基準を、負荷集中度が小さいか大きいかという基準に置き換えて判断している。そして、間隔の短い消去処理が連続して行われたことを、負荷集中度が平準化閾値を超えたか否かで判断し、負荷集中度が平準化閾値を超えた場合にのみ、一部のブロックへの消去処理が集中するのを防ぐために平準化処理を行うようにしている。なお、平準化閾値の設定には、消去間隔を所定時間長くすることでどの程度寿命が回復するかを示す、NAND型フラッシュメモリ10の特性も加味される。
ステップS60において平準化閾値を越えていると判定された場合、入替元ブロック選択部33は、入替元ブロック選択処理を実行する(ステップS61)。この入替元ブロック選択処理により選択された入替元ブロックの情報(入替元ブロック情報)は、平準化判定部35Aに送られる。続いて、入替先ブロック選択部34は、入替先ブロック選択処理を実行する(ステップS62)。この入替先ブロック選択処理により選択された入替先ブロックの情報(入替先ブロック情報)は、平準化判定部35Aに送られる。
続いて、ブロック制御部30及び負荷集中度管理部36は、入替元ブロック選択部33により選択された入替元ブロックを解放するブロック解放処理を実行する(ステップS63)。このブロック解放処理は、図7と同じである。続いて、ブロック制御部30及び負荷集中度管理部36は、入替先ブロック選択部34により選択された入替先ブロックを、入替元ブロックのデータを移動するブロックとして割り当てるブロック割当処理を実行する(ステップS64)。このブロック割当処理は、図10と同じである。
続いて、NANDコントローラ11は、NAND型フラッシュメモリ10に含まれる入替元ブロックのデータを読み出す(ステップS65)。具体的には、平準化判定部35Aは、入替元ブロック選択部33から送られる入替元ブロック情報を用いて、NANDインターフェース回路25に読出要求を発行する。この読出要求に基づいて、NANDインターフェース回路25は、NAND型フラッシュメモリ10に、入替元ブロックからのデータの読み出しを伝える。読み出されたデータは、RAM24等に一時的に格納される。
続いて、NANDコントローラ11は、NAND型フラッシュメモリ10に含まれる入替先ブロックのデータを消去する(ステップS66)。具体的には、平準化判定部35Aは、入替先ブロック選択部34から送られる入替先ブロック情報を用いて、NANDインターフェース回路25に消去要求を発行する。この消去要求に基づいて、NANDインターフェース回路25は、NAND型フラッシュメモリ10に、入替先ブロックのデータの消去を伝える。この際、ブロック制御部30によって入替先ブロックの消去回数及び消去時期が更新される(図11参照)。
続いて、NANDコントローラ11は、NAND型フラッシュメモリ10に含まれる入替先ブロックに、入替元ブロックから読み出されたデータを書き込む(ステップS67)。具体的には、平準化判定部35Aは、入替先ブロック情報を用いて、NANDインターフェース回路25に書込要求を発行する。この書込要求に基づいて、NANDインターフェース回路25は、NAND型フラッシュメモリ10に、入替先ブロックへのデータの書き込みを伝える。
[2−5−1.入替元ブロック選択処理]
図14は、入替元ブロック選択部33の構成を示すブロック図である。図15は、入替元ブロック選択部33の入替元ブロック選択処理を示すフローチャートである。
入替元ブロック選択部33は、3個のセレクタ33A〜33C、及び入替元ブロック設定値を格納する記憶部33Dを備えている。入替元ブロック選択部33は、ブロック制御部30から全ブロック情報を受ける(ステップS70)。この全ブロック情報は、セレクタ33Aに送られる。続いて、セレクタ33Aは、全ブロックの状態を確認し、全ブロックのうち使用中状態のブロックを抽出する(ステップS71)。そして、セレクタ33Aは、使用中状態のブロックに対応するブロック情報(使用中状態ブロック情報)をセレクタ33Bに送る。
続いて、セレクタ33Bは、使用中状態ブロック情報のうち入替元ブロック設定値により設定された条件のブロック情報を抽出する(ステップS72)。ここで、入替元ブロック設定値には、
(A)消去時期の最も古い方から一定数のブロック
(B)消去時期の最も古い方から一定割合数のブロック
(C)消去時期が一定時期より古いブロック
のいずれかが設定されている。条件(A)〜(C)のいずれを入替元ブロック設定値として使用するのかは、任意に選択することができる。例えば、入替元ブロック設定値として条件(A)を用いる場合、セレクタ33Bは、使用中状態のブロックのうち、消去時期の最も古い方から一定数のブロックを抽出する。そして、セレクタ33Bは、抽出したブロックに対応するブロック情報をセレクタ33Cに送る。
条件(A)及び(B)は、空き状態のブロックを消去時期順にソートし、古い方から一定数/一定割合のブロックを探索する。従って、ステップS72において選択されるブロック数を多くすることができるため、ステップS73においてより消去回数が少ないブロックを選択する確率を高くすることが可能となる。条件(C)は、消去時期が一定時期を超えた空き状態のブロックのみをソートすればよいので、処理負荷が最も少ない。また、条件(A)及び(B)は、消去時期の古いほうから常に一定数/一定割合のブロックを抽出するのに対し、条件(C)では、消去時期が一定期間以上空いたブロックが抽出される。このため、条件(C)は、消去間隔を必ず一定間隔空けることができ、その分、消去回数の比較候補を少なくすることが可能となる。
続いて、セレクタ33Cは、セレクタ33Bにより抽出されたブロックのうち消去回数が最も少ないブロックを入替元ブロックとして選択する(ステップS73)。この入替元ブロックに対応する入替元ブロック情報は、平準化判定部35Aに送られる。
このような入替元ブロック選択処理により、頻繁に書き換えられていないデータを格納した、リテンション特性の良いブロックを入替元ブロックとして選択することができる。
[2−5−2.入替先ブロック選択処理]
図16は、入替先ブロック選択部34の構成を示すブロック図である。図17は、入替先ブロック選択部34の入替先ブロック選択処理を示すフローチャートである。
入替先ブロック選択部34は、3個のセレクタ34A〜34C、及び入替先ブロック設定値を格納する記憶部34Dを備えている。入替先ブロック選択部34は、ブロック制御部30から全ブロック情報を受ける(ステップS80)。この全ブロック情報は、セレクタ34Aに送られる。続いて、セレクタ34Aは、全ブロックの状態を確認し、全ブロックのうち空き状態のブロックを抽出する(ステップS81)。そして、セレクタ34Aは、空き状態のブロックに対応するブロック情報(空き状態ブロック情報)をセレクタ34Bに送る。
続いて、セレクタ34Bは、空き状態ブロック情報のうち入替先ブロック設定値により設定された条件のブロック情報を抽出する(ステップS82)。ここで、入替先ブロック設定値には、
(A)消去時期の最も古い方から一定数のブロック
(B)消去時期の最も古い方から一定割合数のブロック
(C)消去時期が一定時期より古いブロック
のいずれかが設定されている。条件(A)〜(C)のいずれを入替先ブロック設定値として使用するのかは、任意に選択することができる。例えば、入替先ブロック設定値として条件(A)を用いる場合、セレクタ34Bは、空き状態のブロックのうち、消去時期の最も古い方から一定数のブロックを抽出する。そして、セレクタ34Bは、抽出したブロックに対応するブロック情報をセレクタ34Cに送る。
条件(A)及び(B)は、空き状態のブロックを消去時期順にソートし、古い方から一定数/一定割合のブロックを探索する。従って、ステップS82において選択されるブロック数を多くすることができるため、ステップS83においてより消去回数が少ないブロックを選択する確率を高くすることが可能となる。条件(C)は、消去時期が一定時期を超えた空き状態のブロックのみをソートすればよいので、処理負荷が最も少ない。また、条件(A)及び(B)は、消去時期の古いほうから常に一定数/一定割合のブロックを抽出するのに対し、条件(C)では、消去時期が一定期間以上空いたブロックが抽出される。このため、条件(C)は、消去間隔を必ず一定間隔空けることができ、その分、消去回数の比較候補を少なくすることが可能となる。
続いて、セレクタ34Cは、セレクタ34Bにより抽出されたブロックのうち消去回数が最も多いブロックを入替先ブロックとして選択する(ステップS83)。この入替先ブロックに対応する入替先ブロック情報は、平準化判定部35Aに送られる。
このような入替先ブロック選択処理により、リテンション特性がある程度悪化した空き状態のブロックを、入替先ブロックとして選択することができる。その後、この入替先ブロックには、入替元ブロックに格納されていた頻繁に書き換えられていないデータが格納される。これにより、入替先ブロックに対しては、その後のデータ消去回数を減らすとともに、リテンション特性を回復させることが可能となる。
以上詳述したように本実施形態では、各ブロックが消去された消去時期を測定し、各ブロックと消去時期とを対応付けてブロックテーブル30Bに格納する。そして、外部から供給されたデータをNAND型フラッシュメモリ10に書き込む場合に、空き状態のブロックのうち消去時期が最も古いブロックを割当ブロックとして選択し、この割当ブロックに上記データを書き込むようにしている。
従って本実施形態によれば、各ブロックに対して消去間隔を長くすることができるため、消去間隔を長くすることでリテンション特性が回復するというメモリセルトランジスタの特性を利用することで、各ブロックのリテンション特性の悪化を低減することができる。これにより、NAND型フラッシュメモリ10の寿命を長くすることが可能となる。
また、本実施形態では、負荷集中度管理部36によってNAND型フラッシュメモリ10のリテンション特性の悪化を負荷集中度として特定し、負荷集中度が平準化閾値を越えている場合に、平準化処理を行うようにしている。これにより、平準化を頻繁に行わずに、平準化の回数を最適化でき、かつブロックごとの消去回数を揃えることが可能となる。この結果、一部のブロックの消去回数が増えることでNAND型フラッシュメモリ10全体の寿命が短くなるのを防ぐことができる。
また、入替元ブロック選択処理により、頻繁に書き換えられていないデータを格納したブロックを入替元ブロックとして選択し、入替先ブロック選択処理により、リテンション特性がある程度悪化したブロックを入替先ブロックとして選択する。そして、入替元ブロックに格納されていた頻繁に書き換えられていないデータを入替先ブロックに移動するようにしている。これにより、一度書き込みで割り当てられたまま長い期間解放されないブロックも平準化処理により解放されるようになる。この結果、入替先ブロックに対しては、その後のデータ消去回数を減らすことが可能となり、ひいては、入替先ブロックのリテンション特性の悪化を低減することが可能となる。
[第2の実施形態]
第2の実施形態は、割当ブロック選択部32による割当ブロック選択処理の他の例について示しており、割当ブロックを選択する際に、消去時期が古く、かつ消去回数が少ないブロックを割当ブロックとして選択するようにしている。
図18は、割当ブロック選択部32の構成を示すブロック図である。図19は、割当ブロック選択部32の割当ブロック選択処理を示すフローチャートである。なお、NANDコントローラ11のうち割当ブロック選択部32以外の構成は、第1の実施形態と同じである。
割当ブロック選択部32は、3個のセレクタ32A〜32C、及び割当ブロック設定値を格納する記憶部32Dを備えている。割当ブロック選択部32は、ブロック制御部30から全ブロック情報を受ける(ステップS90)。この全ブロック情報は、セレクタ32Aに送られる。続いて、セレクタ32Aは、全ブロックの状態を確認し、全ブロックのうち空き状態のブロックを抽出する(ステップS91)。そして、セレクタ32Aは、空き状態のブロックに対応するブロック情報(空き状態ブロック情報)をセレクタ32Bに送る。
続いて、セレクタ32Bは、空き状態ブロック情報のうち割当ブロック設定値により設定された条件のブロック情報を抽出する(ステップS92)。ここで、割当ブロック設定値には、
(A)消去時期の最も古い方から一定数のブロック
(B)消去時期の最も古い方から一定割合数のブロック
(C)消去時期が一定時期より古いブロック
のいずれかが設定されている。条件(A)〜(C)のいずれを割当ブロック設定値として使用するのかは、任意に選択することができる。例えば、割当ブロック設定値として条件(A)を用いる場合、セレクタ32Bは、空き状態のブロックのうち、消去時期の最も古い方から一定数のブロックを抽出する。そして、セレクタ32Bは、抽出したブロックに対応するブロック情報をセレクタ32Cに送る。
条件(A)及び(B)は、空き状態のブロックを消去時期順にソートし、古い方から一定数/一定割合のブロックを探索する。従って、ステップS92において選択されるブロック数を多くすることができるため、ステップS93においてより消去回数が少ないブロックを選択する確率を高くすることが可能となる。条件(C)は、消去時期が一定時期を超えた空き状態のブロックのみをソートすればよいので、処理負荷が最も少ない。また、条件(A)及び(B)は、消去時期の古いほうから常に一定数/一定割合のブロックを抽出するのに対し、条件(C)では、消去時期が一定期間以上空いたブロックが抽出される。このため、条件(C)は、消去間隔を必ず一定間隔空けることができ、その分、消去回数の比較候補を少なくすることが可能となる。
続いて、セレクタ32Cは、セレクタ32Bにより抽出されたブロックのうち消去回数が最も少ないブロックを割当ブロックとして選択する(ステップS93)。この割当ブロックに対応する割当ブロック番号は、ブロック制御部30に送られる。
以上詳述したように本実施形態によれば、外部から供給されたデータを書き込む割当ブロックを選択する際に、空き状態のブロックのうちで、消去時期が古く、かつ消去回数が少ないブロックを割当ブロックとして選択することが可能となる。これにより、リテンション特性がより良いブロックに外部からのデータを書き込むことができるため、NAND型フラッシュメモリ10の寿命を長くすることが可能となる。
[第3の実施形態]
平準化処理を行うと、NAND型フラッシュメモリ10に含まれる全ブロックの消去回数を揃えることができる。しかし、平準化処理をあまり頻繁に行うと、平準化処理に伴う消去処理が多発するため、NAND型フラッシュメモリ10の寿命延長を妨げてしまう可能性がある。そこで、本実施形態では、負荷集中度が平準化閾値を超えた場合でも、平準化処理の回数を制限するようにしている。
図20は、本発明の第3の実施形態に係る平準化部35の構成を示すブロック図である。平準化部35は、負荷集中度管理部36、平準化判定部35A、平準化閾値を格納する記憶部35B、及び平準化制限部37を備えている。負荷集中度管理部36の構成は、第1の実施形態と同じである。
平準化制限部37は、負荷集中度管理部36から送られる負荷集中度を受ける。そして、負荷集中度に基づいて、平準化処理の回数を制限するために使用される論理値を生成する。この論理値は、平準化判定部35Aに送られる。平準化判定部35Aは、負荷集中度が平準化閾値を超え、かつ、平準化制限部37からの論理値が真である場合に、平準化処理を実行する。
図21は、平準化制限部37の構成を示すブロック図である。平準化制限部37は、乱数閾値テーブル37A、乱数生成部37B、及び乱数判定部37Cを備えている。
乱数閾値テーブル37Aは、複数の負荷集中度と、これらに対応する複数の乱数閾値との対応関係を示す。乱数閾値テーブル37Aは、負荷集中度管理部36から送られる負荷集中度に対応する乱数閾値を、乱数判定部37Cに送る。平準化処理の回数をどの程度制限するかは、乱数閾値の値によって任意に設定することができる。例えば、負荷集中度が大きい(すなわち、短い間隔で消去処理が連続して行われている)ような使用状況では、乱数閾値を大きくすることで、平準化処理の回数をあまり制限しないようにする。一方、負荷集中度が小さい(すなわち、消去間隔が長い)ような使用状況では、乱数閾値を小さくすることで、平準化処理の回数を大きく制限する。
乱数生成部37Bは、乱数を生成する。この乱数は、乱数判定部37Cに送られる。乱数判定部37Cは、乱数が乱数閾値より小さいか否かを判定する。そして、乱数判定部37Cは、乱数が乱数閾値より小さい場合は真の論理値を生成し、乱数が乱数閾値以上である場合は偽の論理値を生成する。この論理値は、平準化判定部35Aに送られる。
次に、このように構成されたNANDコントローラ11の平準化処理について説明する。図22は、NANDコントローラ11の平準化処理を示すフローチャートである。
まず、平準化判定部35Aは、負荷集中度管理部36から送られる負荷集中度が平準化閾値を越えているか否かを判定する(ステップS60)。平準化閾値を越えていると判定された場合、平準化制限部37は、乱数判定処理を実行する(ステップS100)。
図23は、平準化制限部37の乱数判定処理を示すフローチャートである。まず、乱数生成部37Bは、乱数を生成する(ステップS101)。続いて、平準化制限部37は、乱数閾値テーブル37Aを用いて、負荷集中度管理部36から送られる負荷集中度に対応する乱数閾値を算出する(ステップS102)。
続いて、乱数判定部37Cは、乱数が乱数閾値より小さいか否かを判定する(ステップS103)。そして、乱数判定部37Cは、乱数が乱数閾値より小さい場合は、真の論理値を出力する(ステップS104)。一方、乱数判定部37Cは、乱数が乱数閾値以上である場合は、偽の論理値を出力する(ステップS105)。
図22に戻って、平準化判定部35Aは、乱数判定部37Cから出力された論理値を判定する(ステップS106)。そして、平準化判定部35Aは、この論理値が真である場合は、平準化処理(第1の実施形態で示したステップS61〜67)を実行する。一方、平準化判定部35Aは、この論理値が偽である場合は、平準化処理を中止する。
以上詳述したように本実施形態によれば、負荷集中度が平準化閾値を超えた場合でも、平準化処理の回数を制限することができる。これにより、平準化処理に伴う消去処理が多発するのを防ぐことができるため、NAND型フラッシュメモリ10の寿命を延ばすことが可能となる。
また、平準化処理によりNAND型フラッシュメモリ10に含まれる全ブロックの消去回数を揃えることができるとともに、平準化処理の回数を最適化することが可能となる。
[第4の実施形態]
第4の実施形態は、平準化処理を実行するか否かの判定の方法が第1の実施形態と異なっており、入替元ブロックの消去回数と入替先ブロックの消去回数との差が平準化閾値を超えた場合に、平準化処理を実行するようにしている。
図24は、本発明の第4の実施形態に係るNANDコントローラ11の構成を示すブロック図である。基本的には、第1の実施形態で示した図4と同じである。第1の実施形態と異なる部分は、平準化部35の内部構成と、ブロック制御部30から平準化部35に送られる解放ブロック情報及び割当ブロック情報が省かれている(使用されない)ことである。
図25は、平準化部35の構成を示すブロック図である。平準化部35は、平準化判定部35A、及び平準化閾値を格納する記憶部35Bを備えている。平準化判定部35Aは、入替元ブロック選択部33から送られる入替元ブロック情報と、入替先ブロック選択部34から送られる入替先ブロック情報とを受ける。そして、平準化判定部35Aは、入替元ブロック情報に含まれる消去回数と、入替先ブロック情報に含まれる消去回数との差を算出し、この差と平準化閾値とを用いて、今回の書き込み動作時に平準化処理を行うか否かを判定する。平準化処理を行う場合、平準化判定部35Aは、NANDインターフェース回路25に、読出要求、消去要求、及び書込要求を発行する。
図26は、NANDコントローラ11の平準化処理を示すフローチャートである。まず、入替元ブロック選択部33は、入替元ブロック選択処理を実行する(ステップS110)。この入替元ブロック選択処理により選択された入替元ブロックの情報(入替元ブロック情報)は、平準化判定部35Aに送られる。続いて、入替先ブロック選択部34は、入替先ブロック選択処理を実行する(ステップS111)。この入替先ブロック選択処理により選択された入替先ブロックの情報(入替先ブロック情報)は、平準化判定部35Aに送られる。なお、入替元ブロック選択処理、及び入替先ブロック選択処理は、第1の実施形態と同じである。
続いて、平準化判定部35Aは、入替元ブロック情報に含まれる消去回数と、入替先ブロック情報に含まれる消去回数との差を算出する(ステップS112)。続いて、平準化判定部35Aは、算出した差が平準化閾値を越えているか否かを判定する(ステップS113)。この平準化閾値は、平準化処理を実行するか否かを判定するために使用され、また、NAND型フラッシュメモリ10の寿命(或いは、データリテンション期間)をどの程度延ばすかという基準に基づいて設定される。
平準化閾値を越えていると判定された場合、ブロック制御部30は、入替元ブロック選択部33により選択された入替元ブロックを解放するブロック解放処理を実行する(ステップS63)。このブロック解放処理は、第1の実施形態と同じである。その後は、第1の実施形態で示した図13と同様に、NANDコントローラ11は、ステップS64〜S67の動作を実行する。
一方、ステップS113において平準化閾値を越えていない判定された場合、平準化部35は、平準化処理を中止する。
以上詳述したように本実施形態によれば、ブロック間の消去回数のアンバランスを検出することができ、さらに、このアンバランスを平準化処理により修正することができる。これにより、ブロック間の消去回数を揃えることができるため、NAND型フラッシュメモリ10の寿命を延ばすことが可能となる。
なお、第3の実施形態で示した平準化制限部37を第4の実施形態に適用することも可能である。
[実施例]
上記各実施形態のメモリシステム1をSSD(Solid State Drive)として構成した場合の実施例について説明する。図27は、SSD100の構成を示すブロック図である。
SSD100は、データ保存用の複数のNAND型フラッシュメモリ(NANDメモリ)10、データ転送用または作業領域用のDRAM101、これらを制御するドライブ制御回路102、及び電源回路103を備えている。ドライブ制御回路102は、SSD100の外部に設けられる状態表示用LEDを制御するための制御信号を出力する。
SSD100は、ATAインターフェース(ATA I/F)を介して、パーソナルコンピュータ等のホスト装置との間でデータを送受信する。また、SSD100は、RS232Cインターフェース(RS232C I/F)を介して、デバッグ用機器との間でデータを送受信する。
電源回路104は、外部電源を受け、この外部電源を用いて複数の内部電源を生成する。これらの内部電源は、SSD100内の各部に供給される。また、電源回路103は、外部電源の立ち上がりまたは立ち下りを検知して、パワーオンリセット信号またはパワーオフリセット信号を生成する。これらパワーオンリセット信号及びパワーオフリセット信号は、ドライブ制御回路102に送られる。
図28は、ドライブ制御回路102の構成を示すブロック図である。ドライブ制御回路102は、データアクセス用バス104、第1の回路制御用バス105、及び第2の回路制御用バス106を備えている。
第1の回路制御用バス105には、ドライブ制御回路102全体を制御するプロセッサ107が接続されている。また、第1の回路制御用バス105には、各管理プログラム(FW:firmware)のブート用プログラムが格納されたブートROM108がROMコントローラ109を介して接続されている。また、第1の回路制御用バス105には、電源回路103からのパワーオン/オフリセット信号を受けて、リセット信号及びクロック信号を各部に供給するクロックコントローラ110が接続されている。
第2の回路制御用バス106は、第1の回路制御用バス105に接続されている。第2の回路制御用バス106には、状態表示用LEDにステータス表示用信号を供給するパラレルIO(PIO)回路111、RS232Cインターフェースを制御するシリアルIO(SIO)回路112が接続されている。
ATAインターフェースコントローラ(ATAコントローラ)113、第1のECC(Error Check and Correct)回路114、NANDコントローラ115、及びDRAMコントローラ119は、データアクセス用バス104と第1の回路制御用バス105との両方に接続されている。ATAコントローラ113は、ATAインターフェースを介してホスト装置との間でデータを送受信する。データアクセス用バス104には、データ作業領域として使用されるSRAM120がSRAMコントローラ121を介して接続されている。
NANDコントローラ115は、4つのNANDメモリ10とのインターフェース処理を行うNAND I/F118、第2のECC回路117、及びNANDメモリ−DRAM間のアクセス制御を行うDMA転送制御用DMAコントローラ116を備えている。
図29は、プロセッサ107の構成を示すブロック図である。プロセッサ107は、データ管理部122、ATAコマンド処理部123、セキュリティ管理部124、ブートローダ125、初期化管理部126、デバッグサポート部127を備えている。
データ管理部122は、NANDコントローラ115、第1のECC回路114を介して、NANDメモリ−DRAM間のデータ転送、NANDチップに関する各種機能を制御する。
ATAコマンド処理部123は、ATAコントローラ113、及びDRAMコントローラ119を介して、データ管理部122と協動してデータ転送処理を行う。セキュリティ管理部124は、データ管理部122及びATAコマンド処理部123と協動して各種のセキュリティ情報を管理する。ブートローダ125は、パワーオン時、各管理プログラム(FW)をNANDメモリ10からSRAM120にロードする。
初期化管理部126は、ドライブ制御回路102内の各コントローラ/回路の初期化を行う。デバッグサポート部127は、外部からRS232Cインターフェースを介して供給されたデバッグ用データを処理する。
図30は、SSD100を搭載したポータブルコンピュータ200の一例を示す斜視図である。ポータブルコンピュータ200は、本体201と、表示ユニット202とを備えている。表示ユニット202は、ディスプレイハウジング203と、このディスプレイハウジング203に収容された表示装置204とを備えている。
本体201は、筐体205と、キーボード206と、ポインティングデバイスであるタッチパッド207とを備えている。筐体205内部には、メイン回路基板、ODDユニット(Optical Disk Device)、カードスロット、SSD100等が収容されている。
カードスロットは、筐体205の周壁に隣接して設けられている。周壁には、カードスロットに対向する開口部208が設けられている。ユーザは、この開口部208を通じて筐体205の外部から追加デバイスをカードスロットに挿抜することが可能である。
SSD100は、従来のHDDの置き換えとして、ポータブルコンピュータ200内部に実装された状態として使用してもよいし、ポータブルコンピュータ200が備えるカードスロットに挿入した状態で、追加デバイスとして使用してもよい。
尚、上記各実施形態のメモリシステム1は、SSDに限らず、例えば、SDTMカードに代表されるメモリカードとして構成することも可能である。メモリシステム1をメモリカードとして構成する場合、ポータブルコンピュータに限らず、携帯電話、PDA、デジタルスチルカメラ、デジタルビデオカメラ等、各種電子機器に対して適用可能である。
本発明は、上述した実施形態に限定されるものではなく、その要旨を逸脱しない範囲内で、構成要素を変形して具体化できる。また、実施形態に開示されている複数の構成要素の適宜な組み合わせにより種々の発明を構成することができる。例えば、実施形態に開示される全構成要素から幾つかの構成要素を削除してもよいし、異なる実施形態の構成要素を適宜組み合わせてもよい。
1…メモリシステム、2…CPU、3…メインメモリ、4…メモリコントローラ、10…NAND型フラッシュメモリ、11…NANDコントローラ、21…ホストインターフェース回路、22…MPU、23…ROM、24…RAM、25…NANDインターフェース回路、30…ブロック制御部、30A…アドレステーブル、30B…ブロックテーブル、30C,31B,36C…演算部、31…消去時期計測部、31A…消去回数カウンタ、32…割当ブロック選択部、32A〜32C,33A〜33C,34A〜34C…セレクタ、32D,33D,34D,35B…記憶部、33…入替元ブロック選択部、34…入替先ブロック選択部、35…平準化部、35A…平準化判定部、36…負荷集中度管理部、36A…解放ブロック用加算値テーブル、36B…割当ブロック用加算値テーブル、36D…負荷集中度カウンタ、37…平準化制限部、37A…乱数閾値テーブル、37B…乱数生成部、37C…乱数判定部、100…SSD、101…DRAM、102…ドライブ制御回路、103…電源回路、104…データアクセス用バス、105…第1の回路制御用バス、106…第2の回路制御用バス、107…プロセッサ、108…ブートROM、109…ROMコントローラ、110…クロックコントローラ、111…PIO回路、112…SIO回路、113…ATAインターフェースコントローラ、114…第1のECC回路、115…NANDコントローラ、116…DMAコントローラ、117…第2のECC回路、119…DRAMコントローラ、120…SRAM、121…SRAMコントローラ、122…データ管理部、123…ATAコマンド処理部、124…セキュリティ管理部、125…ブートローダ、126…初期化管理部、127…デバッグサポート部、200…ポータブルコンピュータ、201…本体、202…表示ユニット、203…ディスプレイハウジング、204…表示装置、205…筐体、206…キーボード、207…タッチパッド、208…開口部。

Claims (19)

  1. データ消去の単位であるブロックを複数個有する不揮発性メモリを含むメモリシステムの制御方法であって、
    各ブロックのデータが消去された消去時期を計測する工程と、
    少なくとも外部から供給されるデータを、空き状態でありかつ消去時期が最も古い第1のブロックに書き込む工程と、
    を具備することを特徴とするメモリシステムの制御方法。
  2. ブロックごとに、空き状態或いは使用中状態であるかを示す状態値と前記消去時期とを対応付けるブロックテーブルを作成する工程と、
    前記ブロックテーブルの情報に基づいて、前記第1のブロックを選択する工程と、
    をさらに具備することを特徴とする請求項1に記載のメモリシステムの制御方法。
  3. データ消去の単位であるブロックを複数個有する不揮発性メモリを含むメモリシステムの制御方法であって、
    各ブロックのデータが消去された消去時期を計測する工程と、
    各ブロックの消去回数をカウントする工程と、
    ブロックごとに、空き状態或いは使用中状態であるかを示す状態値と前記消去時期と前記消去回数とを対応付けるブロックテーブルを生成する工程と、
    前記ブロックテーブルの情報に基づいて、空き状態かつ消去時期が最も古い方から一定数のブロックのうちで、消去回数が最も少ない第1のブロックを選択する工程と、
    少なくとも外部から供給されるデータを、前記第1のブロックに書き込む工程と、
    を具備することを特徴とするメモリシステムの制御方法。
  4. データ消去の単位であるブロックを複数個有する不揮発性メモリを含むメモリシステムの制御方法であって、
    各ブロックのデータが消去された消去時期を計測する工程と、
    各ブロックの消去回数をカウントする工程と、
    ブロックごとに、空き状態或いは使用中状態であるかを示す状態値と前記消去時期と前記消去回数とを対応付けるブロックテーブルを生成する工程と、
    前記ブロックテーブルの情報に基づいて、空き状態かつ消去時期が最も古い方から一定割合数のブロックのうちで、消去回数が最も少ない第1のブロックを選択する工程と、
    少なくとも外部から供給されるデータを、前記第1のブロックに書き込む工程と、
    を具備することを特徴とするメモリシステムの制御方法。
  5. データ消去の単位であるブロックを複数個有する不揮発性メモリを含むメモリシステムの制御方法であって、
    各ブロックのデータが消去された消去時期を計測する工程と、
    各ブロックの消去回数をカウントする工程と、
    ブロックごとに、空き状態或いは使用中状態であるかを示す状態値と前記消去時期と前記消去回数とを対応付けるブロックテーブルを生成する工程と、
    前記ブロックテーブルの情報に基づいて、空き状態かつ消去時期が一定時期より古いブロックのうちで、消去回数が最も少ない第1のブロックを選択する工程と、
    少なくとも外部から供給されるデータを、前記第1のブロックに書き込む工程と、
    を具備することを特徴とするメモリシステムの制御方法。
  6. 前記ブロックテーブルの情報に基づいて、使用中状態かつ消去時期が最も古い方から一定数のブロックのうちで、消去回数が最も少ない第2のブロックを選択する工程と、
    前記ブロックテーブルの情報に基づいて、空き状態かつ消去時期が最も古い方から一定数のブロックのうちで、消去回数が最も多い第3のブロックを選択する工程と、
    前記第2のブロックと前記第3のブロックとの消去回数の差を算出する工程と、
    この差が閾値を越えた場合に、前記第2のブロックのデータを前記第3のブロックに入れ替える工程と、
    をさらに具備することを特徴とする請求項2乃至5のいずれかに記載のメモリシステムの制御方法。
  7. 前記ブロックテーブルの情報に基づいて、使用中状態かつ消去時期が最も古い方から一定割合数のブロックのうちで、消去回数が最も少ない第2のブロックを選択する工程と、
    前記ブロックテーブルの情報に基づいて、空き状態かつ消去時期が最も古い方から一定割合数のブロックのうちで、消去回数が最も多い第3のブロックを選択する工程と、
    前記第2のブロックと前記第3のブロックとの消去回数の差を算出する工程と、
    この差が閾値を越えた場合に、前記第2のブロックのデータを前記第3のブロックに入れ替える工程と、
    をさらに具備することを特徴とする請求項2乃至5のいずれかに記載のメモリシステムの制御方法。
  8. 前記ブロックテーブルの情報に基づいて、使用中状態かつ消去時期が一定時期より古いブロックのうちで、消去回数が最も少ない第2のブロックを選択する工程と、
    前記ブロックテーブルの情報に基づいて、空き状態かつ消去時期が一定時期より古いブロックのうちで、消去回数が最も多い第3のブロックを選択する工程と、
    前記第2のブロックと前記第3のブロックとの消去回数の差を算出する工程と、
    この差が閾値を越えた場合に、前記第2のブロックのデータを前記第3のブロックに入れ替える工程と、
    をさらに具備することを特徴とする請求項2乃至5のいずれかに記載のメモリシステムの制御方法。
  9. 前記不揮発性メモリに対して消去間隔に応じた負荷の程度を管理し、かつこの負荷の程度を示す負荷集中度を生成する工程と、
    前記負荷集中度が閾値を超えた場合に、使用中状態である第2のブロックのデータを、空き状態である第3のブロックに入れ替える工程と、
    をさらに具備することを特徴とする請求項2乃至5のいずれかに記載のメモリシステムの制御方法。
  10. 前記ブロックテーブルの情報に基づいて、前記第2のブロックを選択する工程と、
    前記ブロックテーブルの情報に基づいて、前記第3のブロックを選択する工程と、
    をさらに具備し、
    前記第2のブロックは、使用中状態かつ消去時期が最も古い方から一定数のブロックのうちで、消去回数が最も少ないブロックであり、
    前記第3のブロックは、空き状態かつ消去時期が最も古い方から一定数のブロックのうちで、消去回数が最も多いブロックであることを特徴とする請求項9に記載のメモリシステムの制御方法。
  11. 前記ブロックテーブルの情報に基づいて、前記第2のブロックを選択する工程と、
    前記ブロックテーブルの情報に基づいて、前記第3のブロックを選択する工程と、
    をさらに具備し、
    前記第2のブロックは、使用中状態かつ消去時期が最も古い方から一定割合数のブロックのうちで、消去回数が最も少ないブロックであり、
    前記第3のブロックは、空き状態かつ消去時期が最も古い方から一定割合数のブロックのうちで、消去回数が最も多いブロックであることを特徴とする請求項9に記載のメモリシステムの制御方法。
  12. 前記ブロックテーブルの情報に基づいて、前記第2のブロックを選択する工程と、
    前記ブロックテーブルの情報に基づいて、前記第3のブロックを選択する工程と、
    をさらに具備し、
    前記第2のブロックは、使用中状態かつ消去時期が一定時期より古いブロックのうちで、消去回数が最も少ないブロックであり、
    前記第3のブロックは、空き状態かつ消去時期が一定時期より古いブロックのうちで、消去回数が最も多いブロックであることを特徴とする請求項9に記載のメモリシステムの制御方法。
  13. 前記負荷集中度を生成する工程は、複数の消去時期とこの消去時期ごとに設定された加算値とを対応付ける加算値テーブルを用いて、空き状態から使用中状態に更新されるごとに、当該ブロックの消去時期に対応する加算値を加算する工程を含み、
    前記負荷集中度は、合計加算値に対応することを特徴とする請求項9乃至12のいずれかに記載のメモリシステムの制御方法。
  14. 前記加算する工程は、使用中状態から空き状態に更新されるごとに、当該ブロックの消去時期に対応する加算値をさらに加算することを特徴とする請求項13に記載のメモリシステムの制御方法。
  15. 前記負荷集中度に基づいて、入れ替え処理の回数を制限し、かつ前記入れ替え処理を実行するか否かを示す論理値を生成する工程をさらに具備し、
    前記入れ替える工程は、前記論理値に基づいて、前記入れ替え処理を実行するか否かを決定することを特徴とする請求項9乃至14のいずれかに記載のメモリシステムの制御方法。
  16. 前記制限する工程は、乱数を生成する工程と、前記乱数が閾値より小さいか否かを判定する工程と、この判定結果に基づいて前記論理値を生成する工程とを含むことを特徴とする請求項15に記載のメモリシステムの制御方法。
  17. 前記計測する工程は、全てのブロックにおいて実行される消去回数をカウントし、
    前記消去時期は、通算消去回数に対応することを特徴とする請求項1乃至16のいずれかに記載のメモリシステムの制御方法。
  18. 前記計測する工程は、各ブロックが消去された時刻を計測し、
    前記消去時期は、前記時刻に対応することを特徴とする請求項1乃至16のいずれかに記載のメモリシステムの制御方法。
  19. 前記計測する工程は、各ブロックが消去されたときの当該メモリシステムの通電時間を計測し、
    前記消去時期は、前記通電時間に対応することを特徴とする請求項1乃至16のいずれかに記載のメモリシステムの制御方法。
JP2010021547A 2010-02-02 2010-02-02 メモリシステムの制御方法 Pending JP2010108522A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010021547A JP2010108522A (ja) 2010-02-02 2010-02-02 メモリシステムの制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010021547A JP2010108522A (ja) 2010-02-02 2010-02-02 メモリシステムの制御方法

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2007339946A Division JP4461170B2 (ja) 2007-12-28 2007-12-28 メモリシステム

Publications (1)

Publication Number Publication Date
JP2010108522A true JP2010108522A (ja) 2010-05-13

Family

ID=42297830

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010021547A Pending JP2010108522A (ja) 2010-02-02 2010-02-02 メモリシステムの制御方法

Country Status (1)

Country Link
JP (1) JP2010108522A (ja)

Cited By (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8553467B2 (en) 2011-01-28 2013-10-08 Kabushiki Kaisha Toshiba Nonvolatile semiconductor memory device
US9105339B2 (en) 2012-05-14 2015-08-11 Samsung Electronics Co., Ltd. Methods of driving a memory
US10178265B2 (en) 2014-04-02 2019-01-08 Konica Minolta, Inc. Image formation apparatus, method of controlling flash memory, and non-transitory computer-readable storage medium
US11488676B2 (en) 2015-09-30 2022-11-01 Sunrise Memory Corporation Implementing logic function and generating analog signals using NOR memory strings
US11508693B2 (en) 2020-02-24 2022-11-22 Sunrise Memory Corporation High capacity memory module including wafer-section memory circuit
US11508445B2 (en) 2015-09-30 2022-11-22 Sunrise Memory Corporation Capacitive-coupled non-volatile thin-film transistor strings in three dimensional arrays
US11515309B2 (en) 2019-12-19 2022-11-29 Sunrise Memory Corporation Process for preparing a channel region of a thin-film transistor in a 3-dimensional thin-film transistor array
US11675500B2 (en) 2020-02-07 2023-06-13 Sunrise Memory Corporation High capacity memory circuit with low effective latency
US11705496B2 (en) 2020-04-08 2023-07-18 Sunrise Memory Corporation Charge-trapping layer with optimized number of charge-trapping sites for fast program and erase of a memory cell in a 3-dimensional NOR memory string array
US11730000B2 (en) 2017-06-20 2023-08-15 Sunrise Memory Corporation 3-dimensional nor string arrays in segmented stacks
US11729980B2 (en) 2017-06-20 2023-08-15 Sunrise Memory Corporation 3-dimensional NOR memory array architecture and methods for fabrication thereof
US11749344B2 (en) 2015-09-30 2023-09-05 Sunrise Memory Corporation Three-dimensional vertical nor flash thin-film transistor strings
US11751388B2 (en) 2017-06-20 2023-09-05 Sunrise Memory Corporation 3-dimensional nor strings with segmented shared source regions
US11789644B2 (en) 2020-02-24 2023-10-17 Sunrise Memory Corporation Memory centric system incorporating computational memory
US11817156B2 (en) 2015-09-30 2023-11-14 Sunrise Memory Corporation Multi-gate nor flash thin-film transistor strings arranged in stacked horizontal active strips with vertical control gates
US11839086B2 (en) 2021-07-16 2023-12-05 Sunrise Memory Corporation 3-dimensional memory string array of thin-film ferroelectric transistors
US11842777B2 (en) 2020-11-17 2023-12-12 Sunrise Memory Corporation Methods for reducing disturb errors by refreshing data alongside programming or erase operations
US11910612B2 (en) 2019-02-11 2024-02-20 Sunrise Memory Corporation Process for forming a vertical thin-film transistor that serves as a connector to a bit-line of a 3-dimensional memory array
US12068286B2 (en) 2019-01-30 2024-08-20 Sunrise Memory Corporation Device with embedded high-bandwidth, high-capacity memory using wafer bonding
US12105650B2 (en) 2020-02-07 2024-10-01 Sunrise Memory Corporation Quasi-volatile system-level memory

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009163329A (ja) * 2007-12-28 2009-07-23 Toshiba Corp メモリシステム

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009163329A (ja) * 2007-12-28 2009-07-23 Toshiba Corp メモリシステム

Cited By (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8553467B2 (en) 2011-01-28 2013-10-08 Kabushiki Kaisha Toshiba Nonvolatile semiconductor memory device
US9105339B2 (en) 2012-05-14 2015-08-11 Samsung Electronics Co., Ltd. Methods of driving a memory
US10178265B2 (en) 2014-04-02 2019-01-08 Konica Minolta, Inc. Image formation apparatus, method of controlling flash memory, and non-transitory computer-readable storage medium
US12002523B2 (en) 2015-09-30 2024-06-04 Sunrise Memory Corporation Memory circuit, system and method for rapid retrieval of data sets
US11508445B2 (en) 2015-09-30 2022-11-22 Sunrise Memory Corporation Capacitive-coupled non-volatile thin-film transistor strings in three dimensional arrays
US11817156B2 (en) 2015-09-30 2023-11-14 Sunrise Memory Corporation Multi-gate nor flash thin-film transistor strings arranged in stacked horizontal active strips with vertical control gates
US11915768B2 (en) 2015-09-30 2024-02-27 Sunrise Memory Corporation Memory circuit, system and method for rapid retrieval of data sets
US11488676B2 (en) 2015-09-30 2022-11-01 Sunrise Memory Corporation Implementing logic function and generating analog signals using NOR memory strings
US11749344B2 (en) 2015-09-30 2023-09-05 Sunrise Memory Corporation Three-dimensional vertical nor flash thin-film transistor strings
US11730000B2 (en) 2017-06-20 2023-08-15 Sunrise Memory Corporation 3-dimensional nor string arrays in segmented stacks
US11729980B2 (en) 2017-06-20 2023-08-15 Sunrise Memory Corporation 3-dimensional NOR memory array architecture and methods for fabrication thereof
US11751388B2 (en) 2017-06-20 2023-09-05 Sunrise Memory Corporation 3-dimensional nor strings with segmented shared source regions
US12068286B2 (en) 2019-01-30 2024-08-20 Sunrise Memory Corporation Device with embedded high-bandwidth, high-capacity memory using wafer bonding
US11910612B2 (en) 2019-02-11 2024-02-20 Sunrise Memory Corporation Process for forming a vertical thin-film transistor that serves as a connector to a bit-line of a 3-dimensional memory array
US11844204B2 (en) 2019-12-19 2023-12-12 Sunrise Memory Corporation Process for preparing a channel region of a thin-film transistor in a 3-dimensional thin-film transistor array
US11515309B2 (en) 2019-12-19 2022-11-29 Sunrise Memory Corporation Process for preparing a channel region of a thin-film transistor in a 3-dimensional thin-film transistor array
US11675500B2 (en) 2020-02-07 2023-06-13 Sunrise Memory Corporation High capacity memory circuit with low effective latency
US12073082B2 (en) 2020-02-07 2024-08-27 Sunrise Memory Corporation High capacity memory circuit with low effective latency
US12105650B2 (en) 2020-02-07 2024-10-01 Sunrise Memory Corporation Quasi-volatile system-level memory
US11789644B2 (en) 2020-02-24 2023-10-17 Sunrise Memory Corporation Memory centric system incorporating computational memory
US11508693B2 (en) 2020-02-24 2022-11-22 Sunrise Memory Corporation High capacity memory module including wafer-section memory circuit
US11705496B2 (en) 2020-04-08 2023-07-18 Sunrise Memory Corporation Charge-trapping layer with optimized number of charge-trapping sites for fast program and erase of a memory cell in a 3-dimensional NOR memory string array
US11842777B2 (en) 2020-11-17 2023-12-12 Sunrise Memory Corporation Methods for reducing disturb errors by refreshing data alongside programming or erase operations
US11839086B2 (en) 2021-07-16 2023-12-05 Sunrise Memory Corporation 3-dimensional memory string array of thin-film ferroelectric transistors

Similar Documents

Publication Publication Date Title
JP4461170B2 (ja) メモリシステム
JP4439569B2 (ja) メモリシステム
JP2010108522A (ja) メモリシステムの制御方法
JP4703764B2 (ja) メモリシステムの制御方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100202

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A132

Effective date: 20120508

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20120911