JP4171749B2 - メモリコントローラおよびフラッシュメモリシステム - Google Patents

メモリコントローラおよびフラッシュメモリシステム Download PDF

Info

Publication number
JP4171749B2
JP4171749B2 JP2006113395A JP2006113395A JP4171749B2 JP 4171749 B2 JP4171749 B2 JP 4171749B2 JP 2006113395 A JP2006113395 A JP 2006113395A JP 2006113395 A JP2006113395 A JP 2006113395A JP 4171749 B2 JP4171749 B2 JP 4171749B2
Authority
JP
Japan
Prior art keywords
block
plane
physical
pair
blocks
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
Application number
JP2006113395A
Other languages
English (en)
Other versions
JP2007286892A (ja
Inventor
琢真 光永
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.)
TDK Corp
Original Assignee
TDK 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 TDK Corp filed Critical TDK Corp
Priority to JP2006113395A priority Critical patent/JP4171749B2/ja
Priority to US11/787,734 priority patent/US7870328B2/en
Publication of JP2007286892A publication Critical patent/JP2007286892A/ja
Application granted granted Critical
Publication of JP4171749B2 publication Critical patent/JP4171749B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Description

本発明は、メモリコントローラおよびフラッシュメモリシステムに関し、特に2プレーン書き込み機能を備えたフラッシュメモリに対するアクセスを制御するメモリコントローラおよびフラッシュメモリシステムに関する。
近年、不揮発性の記録媒体であるフラッシュメモリの開発が盛んに行われ、デジタルカメラ等の情報機器(ホストシステム)の記憶媒体として普及している。このような情報機器が扱うデータが大容量化したことに伴い、フラッシュメモリの記憶容量も大容量化が進んでいる。
このように大容量化したフラッシュメモリの記憶領域を円滑に管理するため、近年は、この記憶領域を複数のゾーンに分割して管理する手法が用いられている(例えば特許文献1を参照)。
従来の複数のゾーンを有するフラッシュメモリの記憶領域を、より具体的に示せば、例えば図7に示す形に区画され、管理されていた。
すなわち、データの物理的な読み書きの単位であるページを所定数含んだ、データ消去の単位である物理ブロックには、それぞれに固有の物理ブロックアドレス(PBA)が割り当てられている。各物理ブロックは、複数の物理ゾーンのいずれかに分類され、各物理ゾーンには、それぞれに固有の物理ゾーン番号(PZN)が割り当てられる。図7の例では、計2048個の物理ブロックに#0〜#2047の連続するPBAが割り当てられており、PBA#0〜#511の計512個の物理ブロックがPZN#0の物理ゾーンに属し、PBA#512〜#1023の計512個の物理ブロックがPZN#1の物理ゾーンに属し、PBA#1024〜#1535の計512個の物理ブロックがPZN#2の物理ゾーンに属し、PBA#1536〜#2047の計512個の物理ブロックがPZN#3の物理ゾーンに属する。
一方、ホストシステム側のアドレス空間は、セクタ(512バイト)単位で分割した領域に付けた通番であるLBA(Logical Block Address)で管理されている。更に、複数個のセクタをまとめたものを論理ブロックと呼び、複数個の論理ブロックをまとめたものを論理ゾーンと呼んでいる。また、論理ブロックに付けられた通番を論理ブロック番号(LBN)と呼び、論理ゾーンに付けられた通番を論理ゾーン番号(LZN)と呼んでいる。また、各論理ゾーンに含まれる論理ブロックの、各論理ゾーン内での通番を論理ゾーン内ブロック番号(LZIBN)と呼んでいる。
従って、各論理ゾーンに含まれる論理ブロック数をnとした場合、LBNをnで割ったときの商がLZNに対応し、余りがLZIBNに対応する。
また、各論理ゾーンにはそれぞれ1個の物理ゾーンが割り当てられ、論理ゾーンに含まれる各論理ブロックに対応するデータは、その論理ゾーンに割り当てられた物理ゾーンに含まれる物理ブロックに書き込まれる。更に、データが書き込まれた物理ブロックの冗長領域には、そのデータに対応する論理ブロックを示す情報(以下、論理アドレス情報という。)が書き込まれる。
また、各物理ブロックには、その物理ブロックに割り当てられた論理ブロックのデータがLBAの順番で書き込まれるので、物理ブロックと論理ブロックとの対応関係を管理することによって、ホストシステムから与えられるLBAとフラッシュメモリ内のアクセス領域の対応関係を管理することができる。
なお、物理ブロックと論理ブロックとの対応関係は、データの書き込みや消去が行われる毎に変化する。このため、個々の時点における両者の対応関係を管理するためアドレス変換テーブルが作成され、対応関係が変化する毎にアドレス変換テーブルが更新される。また、論理ゾーンと物理ゾーンとの対応関係は予め設定されているので、各物理ゾーンに含まれる物理ブロックの冗長領域に書き込まれている論理アドレス情報を参照することにより、論理ゾーン毎にアドレス変換テーブルを作成することができる。
ここで、論理アドレス情報としては、LZIBNまたはLBNを用いることができるが、一般的にはデータ量の少ないLZIBNが論理アドレス情報として冗長領域に書き込まれる。
また、各論理ブロックに含まれるセクタ数は、対応関係にある物理ブロックに含まれるセクタ数に応じて設定される。例えば、物理ブロックが32個のページで構成され、1個のページが1個のセクタに対応するフラッシュメモリを使用して、1個の論理ブロックを1個の物理ブロックに対応させた場合には、1個の論理ブロックに含まれるセクタ数は32セクタになる。
図7に示した例では、1個の論理ブロックに含まれるセクタ数は32セクタとしているので、LZN#0の論理ゾーンにLBA#0〜#15999のセクタが、LZN#1の論理ゾーンにLBA#16000〜#31999のセクタが、LZN#2の論理ゾーンにLBA#32000〜#47999のセクタが、LZN#3の論理ゾーンにLBA#48000〜#63999のセクタが、それぞれ割り当てられている。
図7に示した例では、各論理ゾーンに割り当てられた16000個のセクタは、論理ゾーン内でLBAが連続する32個のセクタ単位で論理ブロックとして管理されている。言い換えれば、LBAが連続する32個のセクタを論理ブロックとして、LBNが連続する論理ブロックを各論理ゾーンに500個(LZIBN#0〜#499)ずつ割り当てている。尚、論理ブロックに含まれるセクタ数については、1個の論理ブロックの容量と複数個の物理ブロックの容量とが一致するよう適宜設定してもよい。また、物理ブロックの各ページにはLBAの順番でデータが格納されるので、各論理ゾーンに含まれる論理ブロックと、その論理ゾーンに対応する物理ゾーンに含まれる物理ブロックとの対応関係に基づいて、フラッシュメモリ内のアクセス先を特定することができる。
一方、複数個のメモリセルで構成されたメモリセルアレイと、このメモリセルアレイにアクセスするためのレジスタと、から構成されるプレーンを2つ備える2プレーンフラッシュメモリが知られている(例えば、非特許文献1参照)。この2プレーンフラッシュメモリの場合も、メモリセルアレイは消去処理の単位である物理ブロックに分割され、物理ブロックは書き込みまたは読み出しの処理単位であるページに分割されている。
図8に示した例のように、2プレーンフラッシュメモリは、プレーン#0およびプレーン#1から構成され、プレーン#0およびプレーン#1の物理ブロックには、交互にPBAの番号が割り振られている。たとえば、プレーン#0はPBA#0、#2、#4の順にPBA#4094までの2048個の物理ブロックを備え、プレーン#1はPBA#1、#3、#5の順にPBA#4095までの2048個の物理ブロックを備える。
2プレーンフラッシュメモリの各物理ブロックは、図9(a)に示すように、64ページから構成され、それぞれのページには#0から#63までの64個のページ番号が割り振られる。
また、図9(b)に示すように、各ページは、ユーザ領域と冗長領域とから構成される。ユーザ領域はホストシステムから与えられるデータを格納するための4セクタ(512バイト×4=2048バイト)の領域であり、冗長領域はユーザ領域のデータに対応する誤り訂正符号などの付加情報を格納するための64バイトの領域である。
図8に示すレジスタ#0及びレジスタ#1は、各ページのユーザ領域(2048バイト)および冗長領域(64バイト)に書き込むデータ、またはユーザ領域(2048バイト)および冗長領域(64バイト)から読み出したデータを一時的に保持するための記憶領域である。
2プレーンフラッシュメモリは、図8のレジスタ#0およびレジスタ#1に書き込まれたデータをフラッシュメモリに書き込むに際し、2プレーン書き込みと呼ばれる書き込み方式を用いることができる。この2プレーン書き込みでは、予め設定された一対の物理ブロック(プレーン#0内の物理ブロックとプレーン#1内の物理ブロック)にデータが書き込まれる。
この一対の物理ブロックに1個の論理ブロックを割り当てた場合、論理ブロックに含まれる512セクタのデータ(セクタ#0〜#511)が、図10に示したような順序で一対の物理ブロック内のページに書き込まれる。つまり、セクタ#0〜#3はプレーン#0のページ番号#0に、セクタ#4〜#7はプレーン#1のページ番号#0に、セクタ#8〜#11はプレーン#0のページ番号#1に、セクタ#12〜#15はプレーン#1のページ番号#1にという順序で書き込まれ、セクタ#504〜#507はプレーン#0のページ番号#63に、セクタ#508〜#511はプレーン#1のページ番号#63に書き込まれる。
次に、通常の書き込みと2プレーン書き込みのタイミングチャートについて説明する。通常の書き込みでは、図11(a)のタイミングチャートに示すように、プレーン#0またはプレーン#1に対して、レジスタへのデータ書き込みを指示するインプットコマンドICと、書き込み先アドレスADおよび書き込むデータDTと、レジスタからメモリセルアレイへの書き込みを指示する書き込みコマンドPCとを順次フラッシュメモリに供給する。ここで、非特許文献1のフラッシュメモリでは、書き込みコマンドPCを供給してから、200μ秒のビジー時間が発生し、このビジー時間に、レジスタに書き込んだデータがメモリセルアレイに書き込まれる。
一方、2プレーン書き込みでは、図11(b)のタイミングチャートに示すように、プレーン#0に対して、インプットコマンドICと、書き込み先アドレスADおよび書き込みデータDTと、ダミー書き込みコマンドDPCとを供給した後、プレーン#1に対して、ダミーインプットコマンドDICと、書き込み先アドレスADおよび書き込みデータDTと、書き込みコマンドPCとを供給する。この2プレーン書き込みでは、ダミー書き込みコマンドDPCを供給した後、ダミーのビジー時間が0.5μ秒発生するが、プレーン#0のレジスタおよびプレーン#1のレジスタに書き込んだデータは、書き込みコマンドPCが供給された後に、同時にフラッシュメモリに書き込まれる。この書き込みの際に発生するビジー時間は、プレーン#0またはプレーン#1のいずれか1プレーンに書き込む際に発生するビジー時間である200μ秒と同じである。すなわち、2プレーン書き込みでは、フラッシュメモリに書き込まれるデータの量は、レジスタ2個分となるが、この書き込み処理で生じるビジー時間は、通常の書き込みで生じるビジー時間(200μ秒)とほとんど同じ(0.5μ+200μ=200.5μ秒)になるため、高速な書き込みを実現できる。
特開2005−18490号公報 Samsung Electronics、"K9XXG08UXM"、[online]、[平成18年4月15日検索]、インターネット(URL: http://www.samsung.com/Products/Semiconductor/NANDFlash/SLC_LargeBlock/16Gbit/K9WAG08U1M/ds_k9xxg08uxm_rev10.pdf)
しかしながら、2プレーン書き込みは予め設定された一対の物理ブロックに対してしか行うことができないため、一対の物理ブロックの一方が不良ブロックになってしまった場合には、もう一方の物理ブロックには通常の書き込みしか行うことができない。従って、高速な書き込みを行いたい場合には、2プレーン書き込みが可能な一対の物理ブロックを優先的に使用する必要がある。また、双方が良品ブロックの一対の物理ブロックが減少し、2プレーン書き込みが可能な一対の物理ブロックを確保することができなくなった場合には、一方が不良ブロックになってしまった一対の物理ブロックの、もう一方の良品ブロックを使用しなければ、記憶領域を確保することができない。
本発明は、上記問題点に鑑みてなされたものであり、2プレーン書き込み機能を備えたフラッシュメモリの2プレーン書き込み機能を効率的に使用することができるメモリコントローラおよびフラッシュメモリシステムを提供することを課題とする。
上記課題を解決するため、本発明の第1の観点に係るメモリコントローラは、
複数個の物理ページを含む物理ブロック単位で消去が行われるフラッシュメモリであって、前記フラッシュメモリ内の物理ブロックが第1のプレーン又は第2のプレーンに属し、前記第1のプレーンに属する物理ブロックと前記第2のプレーンに属する物理ブロックに対して並行してデータを書き込むことができる2プレーン書き込み機能を備えたフラッシュメモリに対するアクセスを、ホストシステムから与えられる指示に従って制御するメモリコントローラであって、
前記2プレーン書き込みが可能な物理ブロック同士を組み合わせた一対の物理ブロック単位で空き領域を管理し、前記一対の物理ブロックを対象として前記2プレーン書き込みが可能な一対の空きブロックを検出する第1の検索手段と、
前記一対の物理ブロックのうちのいずれか一方が不良ブロックになったときに、前記一対の物理ブロックのうちの他方の良品ブロックの空き領域を管理し、前記他方の良品ブロックを検索対象として前記2プレーン書き込みを行うことができない空きブロックを検出する第2の検索手段と、
前記フラッシュメモリに対して、前記第1のプレーンに属する物理ブロックと前記第2のプレーンに属する物理ブロックのうちのいずれか一方の物理ブロックに対する前記2プレーン書き込み機能を用いないデータの書き込み、又は前記一対の物理ブロックに対する前記2プレーン書き込み機能を用いたデータの書き込みを指示する書き込み指示手段と、
前記ホストシステム側で管理されているセクタ単位の領域を複数個集めた領域を論理ブロックとして管理し、前記一対の物理ブロック単位又は前記他方の良品ブロックを任意で組み合わせた2個の物理ブロック単位で、前記フラッシュメモリ内の物理ブロックに対して前記論理ブロックを割り当てる記憶領域管理手段とを備え、
前記第1の検索手段により前記一対の空きブロックを検出することができた場合、前記フラッシュメモリは、前記書き込み指示手段から与えられる書き込み指示に基づいて、前記第1の検索手段により検出された前記一対の空きブロックに対して前記2プレーン書き込み機能を用いたデータの書き込みを行い、前記第1の検索手段により前記一対の空きブロックを検出することができなかったときに前記第2の検索手段により空きブロックを検出することができた場合、前記フラッシュメモリは、前記書き込み指示手段から与えられる書き込み指示に基づいて、前記第2の検索手段により検出された空きブロックに対して前記2プレーン書き込み機能を用いないデータの書き込みを行う
ことを特徴とする。
このような手順で空きブロックを検索することにより、一対の空きブロックがあるときには2プレーン書き込みが行われ、一対の空きブロックがないときには、適宜組み合わされた2個の空きブロックに対してプレーン毎の書き込みが行われる。
同一の前記論理ブロックが割り当てられている前記他方の良品ブロックの組み合わせを管理する組み合わせ管理手段を配置してもよい。
上記課題を解決するため、本発明の第2の観点に係るフラッシュメモリシステムは、
上記のメモリコントローラと、上述の2プレーン書き込み機能を備えたフラッシュメモリと、から構成されることを特徴とする。
本発明によれば、データの書き込み先の空きブロックを検索するときに、一対の空きブロックだけを検索する検索テーブルを用いた検索を最初に行い、この空きブロック検索で
一対の空きブロックが検出されなかった場合にだけ、片割れ良品ブロック(一対の物理ブロックの一方が不良ブロックになったときのもう一方の良品ブロック)の空きを検索する。このような空きブロックの検索を行うことにより、一対の物理ブロックの空きがあるときには、2プレーン書き込みが行われ、一対の物理ブロックの空きがないときには、適宜組み合わせた片割れ良品ブロックに対して通常(プレーン毎)の書き込みが行われるため、2プレーン書き込み機能を効率的に利用することができる。
以下、図面に基づき、本発明の実施形態について詳細に説明する。
図1は、本発明に係るフラッシュメモリシステム1を概略的に示すブロック図である。図1に示すように、フラッシュメモリシステム1は、フラッシュメモリ2(2プレーンフラッシュメモリ)と、それを制御するコントローラ3で構成されている。
なお、フラッシュメモリシステム1は、外部バス13を介してホストシステム4と接続される。ホストシステム4は、ホストシステム4の全体の動作を制御するためのCPU(Central Processing Unit)、フラッシュメモリシステム1との情報の授受を担うコンパニオンチップ等から構成される。ホストシステム4は、例えば、文字、音声、あるいは画像情報等の種々の情報を処理するパーソナルコンピュータやデジタルスチルカメラをはじめとする各種情報処理装置であってもよい。
フラッシュメモリ2は、不揮発性メモリであり、レジスタと、メモリセルアレイと、から構成される。フラッシュメモリ2は、レジスタとメモリセルアレイとの間でデータの複写を行って、データの書き込みまたは読み出しを行う。
メモリセルアレイは、複数のメモリセル群と、ワード線と、を備える。各メモリセル群は、複数のメモリセルが直列に接続されたものである。ワード線は、メモリセル群の特定のメモリセルを選択するためのものである。このワード線を介して選択されたメモリセルとレジスタとの間で、データの複写、即ち、レジスタから選択されたメモリセルへの複写または選択されたメモリセルからレジスタへのデータの複写が行われる。
メモリセルアレイを構成するメモリセルは、2つのゲートを備えたMOSトランジスタによって構成される。ここで、上側のゲート、下側のゲートは、それぞれ、コントロールゲート、フローティングゲートと呼ばれており、フローティングゲートに電荷(電子)を注入若しくはフローティングゲートから電荷(電子)を排出することによって、データの書き込み若しくはデータの消去が行われる。
このフローティングゲートは、周囲を絶縁体で囲まれているので、注入された電子は長期間にわたって保持される。なお、フローティングゲートに電子を注入するときは、コントロールゲートが高電位側となる高電圧をコントロールゲートとフローティングゲート間に印加する。また、フローティングゲートから電子を排出するときは、コントロールゲートが低電位側となる高電圧をコントロールゲートとフローティングゲート間に印加する。
ここで、フローティングゲートに電子が注入されている状態が書き込み状態であり、論理値「0」に対応する。また、フローティングゲートから電子が排出されている状態が消去状態であり、論理値「1」に対応する。
次に、2個のプレーン(プレーン#0及びプレーン#1)で構成されたフラッシュメモリ2のアドレス空間を図2に示す。フラッシュメモリ2(2プレーンフラッシュメモリ)のアドレス空間は、“ページ”、“ブロック(物理ブロック)”および“プレーン”で構成される。
ページは、一般のフラッシュメモリにて行われるデータ読み出し動作及びデータ書き込み動作における処理単位である。物理ブロックは、フラッシュメモリにて行われるデータ消去動作における処理単位であり、複数個のページで構成されている。
図2に示したフラッシュメモリ2(2プレーンフラッシュメモリ)では、1つのページは、4セクタ(512×4バイト)のユーザ領域25と、64バイト(16×4バイト)の冗長領域26で構成され、1つの物理ブロックは64個のページで構成されている。
プレーン#0およびプレーン#1内の物理ブロックには、交互にPBAが割り振られている。例えば、プレーン#0内の物理ブロックにはPBA#0、#2、#4の順で偶数のPBAが割り振られ、プレーン#1内の物理ブロックにはPBA#1、#3、#5、の順に奇数のPBAが割り振られている。
各ページはユーザ領域25と冗長領域26で構成されている。ユーザ領域25は、ホストシステム4から供給されるユーザデータを記憶するための領域である。
冗長領域26は、ECC(Error Correcting Code)、論理アドレス情報、ブロックステータス(フラグ)等の付加データを記憶するための領域である。
ECCは、ユーザ領域25に記憶されているデータに含まれる誤りを検出し、訂正するためのデータである。
論理アドレス情報は、物理ブロックにデータが格納されているとき、そのデータに対応する論理ブロックを特定するための情報である。
従って、消去済みの物理ブロックには論理アドレス情報が書き込まれていないので、冗長領域26に論理アドレス情報が格納されているか否かを判定することにより、その冗長領域26が含まれている物理ブロックに有効なデータが格納されているか否かを判断することができる。つまり、冗長領域26に論理アドレス情報が格納されていないとき、その物理ブロックには、有効なデータが格納されていないと判断することができる。
上述のように、1つの物理ブロックは、複数のページを含んでいる。これらのページには、データの上書きができない。このため、1つのページに格納されたデータのみを書き換えるときであっても、そのページが含まれた物理ブロック内の全ページに格納されたデータを、再度書き込まなければならない。
つまり、通常のデータ書き換えでは、書き換えるページが含まれる物理ブロックの全ページに格納されたデータが、別の消去されている物理ブロックに書き込まれる。この際、データが変更されないページに格納されているデータは、以前に格納されていたデータがそのまま再度書き込まれる。
上記のようにデータを書き換えるにあたっては、通常、書き換えられたデータは、以前に格納されていた物理ブロックとは異なる物理ブロックに書き込まれる。このため、論理ブロックアドレスと物理ブロックアドレスの間の対応関係は、フラッシュメモリ2にてデータが書き換えられる毎に、動的に変化する。
従って、論理ブロックと物理ブロックとの対応関係を管理する必要があり、通常、この対応関係は、アドレス変換テーブルによって管理される。このアドレス変換テーブルは、各物理ブロックの冗長領域26に記憶されている論理アドレス情報(LZIBNまたはLBN)に基づいて作成される。なお、このような動的なアドレス管理手法は、上述の通り、フラッシュメモリを用いたメモリシステムでは一般的に行われている手法である。
ブロックステータス(フラグ)は、ブロックの良否を示すフラグである。正常にデータの書き込み等を行うことができないブロックは、不良ブロックと判別され、冗長領域26には、不良ブロックであることを示すブロックステータス(フラグ)が書き込まれる。
このようなフラッシュメモリ2は、コントローラ3から、データ、アドレス情報、内部コマンド等を受信して、データの読み出し処理、書き込み処理、ブロック消去処理、転送処理等の各処理を行う。
ここで、内部コマンドとは、コントローラ3がフラッシュメモリ2に処理の実行を指示するためのコマンドであり、フラッシュメモリ2は、コントローラ3から与えられる内部コマンドに従って動作する。これに対して、外部コマンドとは、ホストシステム4がフラッシュメモリシステム1に対して処理の実行を指示するためのコマンドである。
コントローラ3は、図1に示すように、マイクロプロセッサ6と、ホストインターフェースブロック7と、ワークエリア8と、バッファ9と、フラッシュメモリインターフェースブロック10と、ECCブロック11と、ROM(Read Only Memory)12と、から構成される。これら機能ブロックによって構成されるコントローラ3は、一つの半導体チップ上に集積される。以下に各機能ブロックについて説明する。
マイクロプロセッサ6は、ROM12に記憶されているプログラムに従って、コントローラ3の全体の動作を制御する。例えば、マイクロプロセッサ6は、各種処理等を定義したコマンドセットをROM12から読み出してフラッシュメモリインターフェースブロック10に供給し、フラッシュメモリインターフェースブロック10に処理を実行させる。
ホストインターフェースブロック7は、ホストシステム4との間で、データ、アドレス情報、ステータス情報、外部コマンド等の授受を行なう。ホストシステム4よりフラッシュメモリシステム1に供給されるデータ等は、ホストインターフェースブロック7を入口としてフラッシュメモリシステム1の内部(例えば、バッファ9)に取り込まれる。また、フラッシュメモリシステム1からホストシステム4に供給されるデータ等は、ホストインターフェースブロック7を出口としてホストシステム4に供給される。
図1に示すワークエリア8は、フラッシュメモリ2の制御に必要なデータが一時的に格納される作業領域であり、複数のSRAM(Static Random Access Memory)セルによって構成される。
バッファ9は、フラッシュメモリ2から読み出されたデータ及びフラッシュメモリ2に書き込むべきデータを一時的に蓄積する。すなわち、フラッシュメモリ2から読み出されたデータは、ホストシステム4が受け取り可能な状態となるまでバッファ9に保持され、フラッシュメモリ2に書き込むべきデータは、フラッシュメモリ2が書き込み可能な状態となるまでバッファ9に保持される。
フラッシュメモリインターフェースブロック10は、内部バス14を介して、フラッシュメモリ2とデータ、アドレス情報、ステータス情報、内部コマンド等の授受を行う。
フラッシュメモリインターフェースブロック10は、ROM12から読み出したコマンドセットに基づいて内部コマンド、アドレス情報等をフラッシュメモリ2に供給することにより、フラッシュメモリ2に読み出し、書き込み等を実行させる。
ECCブロック11は、フラッシュメモリ2に書き込むデータに付加されるECCを生成するとともに、フラッシュメモリ2から読み出したデータに付加されたECCに基づいて、読み出したデータに含まれる誤りを検出・訂正する。
ROM12は、マイクロプロセッサ6による処理の手順を定義するプログラムを格納する不揮発性の記憶素子である。具体的には、ROM12は、例えば、アドレス変換テーブルの作成等の処理手順を定義するプログラムを格納する。
本実施形態においては、アドレス変換テーブルは、ワークエリア8上に作成される。このアドレス変換テーブルは、対応する論理ゾーンと物理ゾーンにおける論理ゾーン内ブロック番号LZIBNと物理ゾーン内ブロック番号PZIBNとの対応関係を記憶する。ここで、PZIBNは、物理ゾーン内の物理ブロックに対して、その物理ブロックのPBAの若い方から順番に振られる番号である。
なお、本実施形態では、物理ゾーンがPZIBN#0〜#1023の1024個の物理ブロックで構成されている。また、PZIBNが偶数の物理ブロック(プレーン#0側の物理ブロック)と奇数の物理ブロック(プレーン#1側の物理ブロック)がPZIBNの先頭から順番に一対になっており、この一対の物理ブロックにデータを書き込むときに2プレーン書き込みが可能になっている。以下、この一対の物理ブロックをペアブロックと言い、ペアブロックの一方の物理ブロックが不良ブロックになった場合のもう一方の良品ブロックを、片割れ良品ブロックと言う。また、本実施形態では、1個の論理ブロックに対して2個の物理ブロックが割り当てられる。つまり、1個の論理ブロックには、1組のペアブロック、または適宜組み合わされた2個の片割れ良品ブロック(以下、ダミーペアと言う。)が割り当てられる。
次に、上記のアドレス変換テーブルについて、図3及び図4を参照して説明する。図3に示したアドレス変換テーブル400は、上記のアドレス変換テーブルの一例であり、対応する論理ゾーンと物理ゾーンの組毎に作成され、ワークエリア8に保存される。このアドレス変換テーブル400には、LZIBN#0〜#499の各論理ブロックに対応するペアブロックのプレーン#0側の物理ブロックのPZIBN、または、ダミーペアの一方のPZIBNが書き込まれる。または、LZIBN#0〜#499の各論理ブロックと対応関係にある2個の物理ブロックが、ペアブロックであるかまたはダミーペアであるかはペアフラグによって示されている。図3に示した例では、ペアフラグが“0”のときは、対応関係にある2個の物理ブロックがペアブロックであることを示し、ペアフラグが“1”のときは、対応関係にある2個の物理ブロックがダミーペアであることを示している。
図3に示した例で、LZIBN#0の論理ブロックには、プレーン#0側のPZIBN#22の物理ブロックとプレーン#1側のPZIBN#23の物理ブロックで構成されるペアブロックが割り当てられている。同様に、LZIBN#1の論理ブロックには、プレーン#0側のPZIBN#12の物理ブロックとプレーン#1側のPZIBN#13の物理ブロックで構成されるペアブロックが割り当てられ、LZIBN#2の論理ブロックには、プレーン#0側のPZIBN#6の物理ブロックとプレーン#1側のPZIBN#7の物理ブロックで構成されるペアブロックが割り当てられている。このように、ペアフラグが“0”のときは、対応関係にある2個の物理ブロックがペアブロックであるため、プレーン#0側のPZIBNに基づいてペアブロックを構成するもう一方の物理ブロックのPZIBNを判断することができる。
一方、LZIBN#4の論理ブロックのようにダミーペアに割り当てられている場合(ペアフラグが“1”の場合)は、ダミーペアの一方の物理ブロック(片割れ良品ブロック)のPZIBNだけしか判断することができない。つまり、LZIBN#4の論理ブロックに割り当てられているダミーペアの一方はPZIBN#8の物理ブロック(片割れ良品ブロック)であることは分かるが、もう一方の物理ブロック(片割れ良品ブロック)のPZIBNはアドレス変換テーブル400だけでは判断することができない。このため、ダミーペアの組み合わせを示したダミーペアテーブルを用いてもう一方の物理ブロック(片割れ良品ブロック)のPZIBNを判断する。図4に示したダミーペアテーブル300には、ダミーペアを構成する2個の物理ブロック(片割れ良品ブロック)のPZIBNが並べて書き込まれている。このダミーペアテーブル300に基づいてPZIBN#8の物理ブロック(片割れ良品ブロック)には、PZIBN#15の物理ブロック(片割れ良品ブロック)組み合わされていることが分かる。
次に、空きブロックを検索するためのテーブルについて説明する。図5に示した空きブロック検索テーブル100は、フラッシュメモリ2の物理ゾーンにおけるペアブロックの使用状況を表すテーブルであり、物理ゾーン毎に作成され、ワークエリア8に保存され、マイクロプロセッサ6により管理される。
この空きブロック検索テーブル100は、64バイト(512ビット)のデータから構成され、物理ゾーンに含まれるペアブロックの使用状況を各ビットの論理値で示している。この空きブロック検索テーブル100では、空きブロックであることを論理値の“1”で示し、空きブロックでないことを論理値の“0”で示ししている。つまり、論理値の“1”は、そのビットに対応するペアブロックの双方が良品ブロックでデータが書き込まれていない状態(消去状態)であることを示し、論理値の“0”は、そのビットに対応するペアブロックにデータが書き込まれている状態、または、ペアブロックの双方若しくはいずれか一方が不良ブロックであることを示している。
図5では、512組のペアブロックの使用状況を示す64バイトのデータを、1バイト毎に改行して表示している。ここで、一番上の行は、プレーン#0側の物理ブロックがPZIBN#0〜#14のペアブロック(PZIBN#0と#1、PZIBN#2と#3、PZIBN#4と#5、PZIBN#6と#7、PZIBN#8と#9、PZIBN#10と#11、PZIBN#12と#13、PZIBN#14と#15のペアブロック)の使用状況を示している。以下同様に、二番目の行は、プレーン#0側の物理ブロックがPZIBN#16〜#30のペアブロックの使用状況を示し、三番目の行は、プレーン#0側の物理ブロックがPZIBN#32〜#46のペアブロックの使用状況を示している。そして、一番下の行は、プレーン#0側の物理ブロックがPZIBN#1008〜#1022のペアブロックの使用状況を示している。また、各行の1バイトのデータには、下位ビット側からPZIBNの順番でペアブロックが割り当てられている。従って、一番上の行の最下位ビットはPZIBN#0と#1のペアブロックの使用状況を示し、一番下の行の最上位ビットはPZIBN#1022と#1023のペアブロックの使用状況を示している。
また、空きブロックを検索する場合は、各行の1バイトのデータを上の行から順番に読み出していき、読み出したデータが0(2進数表示:0000 0000)でないときは、そのデータをシフトレジスタに書き込み、シフトレジスタを下位方向にシフトさせる。何回のシフトでキャリーが発生したかにより、下位から何ビット目が“1”であるかを判別する。例えば、4番目の行の0001 1000(2進数表示)をシフトレジスタに書き込み、シフトレジスタを下位方向にシフトさせた場合は、4回のシフトでキャリーが発生するので、下位側から4ビット目に対応するPZIBN#54と#55のペアブロックが空きブロックとして検出される。
また、次回の空きブロック検索では、4番目の行の下位側から5ビット目のビットから検索が開始される。このように下位側から5ビット目のビットから検索が開始する場合は、シフトレジスタにデータを設定する前に、設定するデータの下位4ビットが“0”になるようなマスク処理が施される。
次に、片割れ良品ブロックの空きブロックを検索するためのテーブルについて説明する。図6に示した片割れ良品ブロックテーブル200には、ペアブロックの一方の物理ブロックが不良ブロックになった場合のもう一方の良品ブロック(以下、片割れ良品ブロックと言う。)のPZIBNが保存される。図6に示した例では、片割れ良品ブロックテーブル200の各行に、#20と#35と#48とが書き込まれている。これはPZIBN#20、#35、#48の3個の物理ブロックが片割れ良品ブロックであることを示している。また、PZIBN#20、#35、#48の物理ブロックとペアブロックを構成するPZIBN#21、#34、#49の物理ブロックは、不良ブロックであることが分かる。
上述の空きブロック検索テーブル100を用いて検出したペアブロックにデータを書き込んだときには、そのペアブロックに対応する空きブロック検索テーブル100上のビットが“1”から“0”に書き換えられる。アドレス変換テーブル400については、書き込んだデータに対応する論理ブロックのLZIBNと対応関係にあるPZIBNが、書き込み先のペアブロックのプレーン#0側の物理ブロックのPZIBNに書き換えられる。データを書き込んだペアブロックの双方の物理ブロックの冗長領域26には、書き込んだデータに対応する論理ブロックのLZIBNが書き込まれる。
片割れ良品ブロックテーブル200を用いて検出した2個の片割れ良品ブロックにデータを書き込んだときには、片割れ良品ブロックテーブル200からデータの書き込み先になった2個の片割れ良品ブロックのPZIBNを消去する。アドレス変換テーブル400については、書き込んだデータに対応する論理ブロックのLZIBNと対応関係にあるPZIBNが、書き込み先になった2個の片割れ良品ブロックのPZIBNが若い方の番号に書き換えられる。更に、書き込み先になった2個の片割れ良品ブロックのPZIBNを、PZIBNが若い方から順番にダミーペアテーブル300に書き込む。尚、本実施形態においてダミーペアにデータを書き込むときは、PZIBNが若い方から順番にデータを書き込む。データを書き込んだダミーペアの双方の片割れ良品ブロックの冗長領域26には、書き込んだデータに対応する論理ブロックのLZIBNが書き込まれる。
次に、上述のアドレス変換テーブル400、ダミーペアテーブル300、空きブロック検索テーブル100及び片割れ良品ブロックテーブル200の作成処理について説明する。尚、これらのテーブルを作成する領域は、ワークエリア8上に確保される。また、これらのテーブルを作成する領域のPZIBNが書き込まれる箇所の初期値は、PZIBNが書き込まれていないことを判別することができるような値に初期化する。
この作成処理では、作成対象の物理ゾーンに含まれる物理ブロックの冗長領域26に書き込まれているブロックステータス(フラグ)とLZIBN(論理アドレス情報)が順次読み出され、読み出された情報に応じて下記のような処理が行われる。
ペアブロックを構成する双方の物理ブロックに同一のLZIBNが書き込まれていた場合は、アドレス変換テーブル400(アドレス変換テーブル400の作成領域)上のそのLZIBNに対応する箇所のペアフラグを“0”にすると共に、そのペアブロックのプレーン#0側のPZIBNを対応関係にあるペアブロックのPZIBNとして書き込む。
ペアブロックの一方の物理ブロックにだけLZIBNが書き込まれ、もう一方の物理ブロックに不良ブロックを示すブロックステータス(フラグ)が書き込まれていた場合は、一方の物理ブロックに書き込まれていたLZIBNに対応する箇所のペアフラグを“1”にすると共に、その物理ブロックのPZIBNを対応関係にあるダミーペアのPZIBNとして書き込む。その後、ダミーペアのもう一方の物理ブロックを検出したときに、ダミーペアを構成する2個の物理ブロック(片割れ良品ブロック)のPZIBNをダミーペアテーブル300(ダミーペアテーブル300の作成領域)に書き込む。ここで、ダミーペアを構成する2個の物理ブロック(片割れ良品ブロック)の冗長領域26には同一のLZIBNが書き込まれているため、冗長領域26に書き込まれているLZIBNに基づいてダミーペアの組み合わせを判別することができる。
ペアブロックを構成する双方の物理ブロックにLZIBNも不良ブロックを示すブロックステータス(フラグ)も書き込まれていない場合は、空きブロック検索テーブル100(空きブロック検索テーブル100の作成領域)のそのペアブロックに対応するビットに“1”を設定する。尚、空きブロック検索テーブル100(空きブロック検索テーブル100の作成領域)の全てのビットは、作成開始時に“0”に初期化しておく。
ペアブロックを構成する双方の物理ブロックにLZIBNが書き込まれておらず、一方の物理ブロックに不良ブロックを示すブロックステータス(フラグ)も書き込まれていた場合は、不良ブロックを示すブロックステータス(フラグ)が書き込まれていない方の物理ブロックのPZIBNを片割れ良品ブロックテーブル200(片割れ良品ブロックテーブル200の作成領域)に書き込む。
以上の処理を作成対象の物理ゾーンに含まれる全ての物理ブロックに対して行うことにより、上記のアドレス変換テーブル400、ダミーペアテーブル300、空きブロック検索テーブル100及び片割れ良品ブロックテーブル200が作成される。
次に、空きブロックへのデータの書き込みについて説明する。この書き込み処理は、ホストシステム4から与えられる書き込み指示情報に基づいて実行される。この書き込み指示情報には、書き込みを指示するコマンド及び書き込みを開始するセクタのLBAと書き込むセクタ数とを指示する情報が含まれる。このLBAとセクタ数とに基づいて、書き込み先の論理ブロック(LZIBN)が特定され、この論理ブロックに対応する物理ブロック(PZIBN)の空きページにデータを書き込めない場合、つまり、既存データの書き換えを行う場合、またはこの論理ブロックに対する物理ブロックが存在しない場合に、空きブロックを検索し検出された空きブロックにデータが書き込まれる。
空きブロックを検索するときには、先に空きブロック検索テーブル100を用いた空きブロックの検索を行う。この検索で、双方の物理ブロックが空きブロックのペアブロックが検出された場合は、そのペアブロックに対して2プレーン書き込みを行う。そして、空きブロック検索テーブル100上に論理値が“1”のビットが無い場合、すなわちペアブロックの空きが無い場合には、片割れ良品ブロックテーブル200から2個の物理ブロック(片割れ良品ブロック)のPZIBNを選択し、選択した2個のPZIBNに対応する2個の片割れ良否ブロックをダミーペアとして通常の書き込みを行う。
つまり、先に空きブロック検索テーブル100を用いたペアブロックの空きを検索し、空きブロック検索テーブル100を用いた検索でペアブロックの空きが検出されなかった場合、すなわちペアブロックの空きが無い場合にだけ、片割れ良品ブロックテーブル200から選択した2個のPZIBNで特定されるダミーペアに通常の書き込みを行う。
したがって、ペアブロックの空きがある場合には、そのペアブロックに対する2プレーン書き込みが行われ、ペアブロックの空きがない場合にだけ、ダミーペアに対する通常(プレーン毎)の書き込みが行われる。
以上説明したように、本実施形態に係るコントローラ3は、2プレーン書き込み機能を備えたフラッシュメモリ2を使用したフラッシュメモリシステム1において、データの書き込み先の空きブロックを検索するときに、ペアブロックの空きだけを検索する空きブロック検索テーブル100を用いた検索を最初に行い、この空きブロック検索テーブル100を用いた検索でペアブロックの空きが検出されなかった場合にだけ、片割れ良品ブロックの空きを検索する。このような構成をとることで、ペアブロックの空きがあるときには、優先的に2プレーン書き込みが行われる。また、片割れ良品ブロックの数が増えて、2プレーン書き込みを行うことができるペアブロックの空きを確保することができなくなった場合でも、適宜組み合わせた片割れ良品ブロックにデータを書き込むことができる。
なお、本発明は、上述の実施形態に限らず、種々の変形や応用が可能である。
各物理ゾーンの物理ブロック数は1024個に限定されず、自由に設定してよい。
上記の実施形態では、プレーン数は2個であったが、プレーン数は2個に限定されず、偶数個であれば自由に設定してよい。
上記の実施形態では、ダミーペアをプレーン#0に属する物理ブロックとプレーン#1に属する物理ブロックとで構成したが、プレーン#0同士の物理ブロック2個またはプレーン#1同士の物理ブロック2個でダミーペアを構成してもよい。この場合、たとえば、PZIBNが若い物理ブロックをプレーン#0に属するものとして扱い、もう一方の物理ブロックをプレーン#1に属するものとして扱った上で、書き込みデータを割り振ってもよい。
本発明の実施の形態に係るフラッシュメモリシステムを概略的に示すブロック図である。 本発明の実施の形態の2プレーンフラッシュメモリのアドレス空間の構造を概略的に示す図である。 アドレス変換テーブルの構成の一例を示す図である。 ダミーペアテーブルの構成の一例を示す図である。 空きブロック検索テーブルの構成の一例を示す図である。 片割れ良品ブロックテーブルの構成の一例を示す図である。 従来のフラッシュメモリのアドレス空間の構造を概略的に示す図である。 2プレーンフラッシュメモリの物理アドレス空間の構造を概略的に示す図である。 (a)は、2プレーンフラッシュメモリの物理ブロックとページとの関係を概略的に示す図である。(b)は、2プレーンフラッシュメモリのページとユーザ領域および冗長領域との関係を概略的に示す図である。 2プレーンフラッシュメモリの物理ブロックとページとセクタとの関係を概略的に示す図である。 (a)は、フラッシュメモリに対して従来の書き込みを行う場合のタイムチャートを示す図である。(b)は、2プレーンフラッシュメモリに対して、2プレーン書き込みを行う場合のタイムチャートを示す図である。
符号の説明
1 フラッシュメモリシステム
2 フラッシュメモリ
3 コントローラ
4 ホストシステム
6 マイクロプロセッサ
7 ホストインターフェースブロック
8 ワークエリア
9 バッファ
10 フラッシュメモリインターフェースブロック
11 ECCブロック
12 ROM
13 外部バス
14 内部バス
25 ユーザ領域
26 冗長領域
100 空きブロック検索テーブル
200 片割れ良品ブロックテーブル
300 ダミーペアテーブル
400 アドレス変換テーブル

Claims (3)

  1. 複数個の物理ページを含む物理ブロック単位で消去が行われるフラッシュメモリであって、前記フラッシュメモリ内の物理ブロックが第1のプレーン又は第2のプレーンに属し、前記第1のプレーンに属する物理ブロックと前記第2のプレーンに属する物理ブロックに対して並行してデータを書き込むことができる2プレーン書き込み機能を備えたフラッシュメモリに対するアクセスを、ホストシステムから与えられる指示に従って制御するメモリコントローラであって、
    前記2プレーン書き込みが可能な物理ブロック同士を組み合わせた一対の物理ブロック単位で空き領域を管理し、前記一対の物理ブロックを対象として前記2プレーン書き込みが可能な一対の空きブロックを検出する第1の検索手段と、
    前記一対の物理ブロックのうちのいずれか一方が不良ブロックになったときに、前記一対の物理ブロックのうちの他方の良品ブロックの空き領域を管理し、前記他方の良品ブロックを検索対象として前記2プレーン書き込みを行うことができない空きブロックを検出する第2の検索手段と、
    前記フラッシュメモリに対して、前記第1のプレーンに属する物理ブロックと前記第2のプレーンに属する物理ブロックのうちのいずれか一方の物理ブロックに対する前記2プレーン書き込み機能を用いないデータの書き込み、又は前記一対の物理ブロックに対する前記2プレーン書き込み機能を用いたデータの書き込みを指示する書き込み指示手段と、
    前記ホストシステム側で管理されているセクタ単位の領域を複数個集めた領域を論理ブロックとして管理し、前記一対の物理ブロック単位又は前記他方の良品ブロックを任意で組み合わせた2個の物理ブロック単位で、前記フラッシュメモリ内の物理ブロックに対して前記論理ブロックを割り当てる記憶領域管理手段とを備え、
    前記第1の検索手段により前記一対の空きブロックを検出することができた場合、前記フラッシュメモリは、前記書き込み指示手段から与えられる書き込み指示に基づいて、前記第1の検索手段により検出された前記一対の空きブロックに対して前記2プレーン書き込み機能を用いたデータの書き込みを行い、前記第1の検索手段により前記一対の空きブロックを検出することができなかったときに前記第2の検索手段により空きブロックを検出することができた場合、前記フラッシュメモリは、前記書き込み指示手段から与えられる書き込み指示に基づいて、前記第2の検索手段により検出された空きブロックに対して前記2プレーン書き込み機能を用いないデータの書き込みを行うことを特徴とするメモリコントローラ。
  2. 同一の前記論理ブロックが割り当てられている前記他方の良品ブロックの組み合わせを管理する組み合わせ管理手段を備えることを特徴とする請求項1に記載のメモリコントローラ。
  3. 請求項1または2に記載のメモリコントローラと、
    前記2プレーン書き込み機能を備えたフラッシュメモリと、
    から構成されることを特徴とするフラッシュメモリシステム。
JP2006113395A 2006-04-17 2006-04-17 メモリコントローラおよびフラッシュメモリシステム Expired - Fee Related JP4171749B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2006113395A JP4171749B2 (ja) 2006-04-17 2006-04-17 メモリコントローラおよびフラッシュメモリシステム
US11/787,734 US7870328B2 (en) 2006-04-17 2007-04-17 Memory controller and flash memory system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006113395A JP4171749B2 (ja) 2006-04-17 2006-04-17 メモリコントローラおよびフラッシュメモリシステム

Publications (2)

Publication Number Publication Date
JP2007286892A JP2007286892A (ja) 2007-11-01
JP4171749B2 true JP4171749B2 (ja) 2008-10-29

Family

ID=38606175

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006113395A Expired - Fee Related JP4171749B2 (ja) 2006-04-17 2006-04-17 メモリコントローラおよびフラッシュメモリシステム

Country Status (2)

Country Link
US (1) US7870328B2 (ja)
JP (1) JP4171749B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107003940A (zh) * 2014-12-04 2017-08-01 高通股份有限公司 用于在非统一存储器架构中提供改进的延迟的系统和方法

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090013148A1 (en) * 2007-07-03 2009-01-08 Micron Technology, Inc. Block addressing for parallel memory arrays
KR100923832B1 (ko) * 2007-12-28 2009-10-27 주식회사 하이닉스반도체 불휘발성 메모리 장치의 불량 여부 테스트 방법, 블록 관리방법, 소거 방법 및 프로그램 방법
JP4702387B2 (ja) * 2008-03-31 2011-06-15 Tdk株式会社 メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
JP4840415B2 (ja) * 2008-07-22 2011-12-21 Tdk株式会社 メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
KR101103061B1 (ko) * 2008-07-28 2012-01-06 주식회사 팍스디스크 반도체 스토리지 시스템 및 그 제어 방법
KR20100012938A (ko) * 2008-07-30 2010-02-09 주식회사 하이닉스반도체 웨어 레벨링을 수행하는 반도체 스토리지 시스템 및 그제어 방법
KR101083673B1 (ko) * 2008-10-01 2011-11-16 주식회사 하이닉스반도체 반도체 스토리지 시스템 및 그 제어 방법
JP4762323B2 (ja) * 2009-03-03 2011-08-31 富士通株式会社 アクセス制御装置、情報処理装置、アクセス制御プログラム及びアクセス制御方法
US8095765B2 (en) * 2009-03-04 2012-01-10 Micron Technology, Inc. Memory block management
JP4987997B2 (ja) * 2010-02-26 2012-08-01 株式会社東芝 メモリシステム
JP2012128816A (ja) * 2010-12-17 2012-07-05 Toshiba Corp メモリシステム
US10228875B2 (en) 2013-12-24 2019-03-12 Feitian Technologies Co., Ltd. Data writing and reading methods for flash
US20170123994A1 (en) * 2015-10-28 2017-05-04 Sandisk Technologies Inc. Handling Of Plane Failure In Non-Volatile Storage

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5890192A (en) * 1996-11-05 1999-03-30 Sandisk Corporation Concurrent write of multiple chunks of data into multiple subarrays of flash EEPROM
US6570785B1 (en) * 2000-10-31 2003-05-27 Sandisk Corporation Method of reducing disturbs in non-volatile memory
JP4059473B2 (ja) * 2001-08-09 2008-03-12 株式会社ルネサステクノロジ メモリカード及びメモリコントローラ
JP4173410B2 (ja) 2003-06-26 2008-10-29 Tdk株式会社 メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム
US20050144516A1 (en) * 2003-12-30 2005-06-30 Gonzalez Carlos J. Adaptive deterministic grouping of blocks into multi-block units
US7139864B2 (en) * 2003-12-30 2006-11-21 Sandisk Corporation Non-volatile memory and method with block management system
JP2006040484A (ja) 2004-07-29 2006-02-09 Tdk Corp フラッシュメモリモジュール
US7627712B2 (en) * 2005-03-22 2009-12-01 Sigmatel, Inc. Method and system for managing multi-plane memory devices

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107003940A (zh) * 2014-12-04 2017-08-01 高通股份有限公司 用于在非统一存储器架构中提供改进的延迟的系统和方法
CN107003940B (zh) * 2014-12-04 2020-04-24 高通股份有限公司 用于在非统一存储器架构中提供改进的延迟的系统和方法

Also Published As

Publication number Publication date
US20070245070A1 (en) 2007-10-18
JP2007286892A (ja) 2007-11-01
US7870328B2 (en) 2011-01-11

Similar Documents

Publication Publication Date Title
JP4171749B2 (ja) メモリコントローラおよびフラッシュメモリシステム
JP4235646B2 (ja) メモリコントローラおよびフラッシュメモリシステム
JP4710753B2 (ja) メモリコントローラ及びメモリコントローラを用いたフラッシュメモリシステム、並びにフラッシュメモリの制御方法
JP4661497B2 (ja) メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
JP4661191B2 (ja) メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
JP4636005B2 (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
JP4241741B2 (ja) メモリコントローラ及びフラッシュメモリシステム
JP4153535B2 (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びに、フラッシュメモリの制御方法
JP4434171B2 (ja) メモリコントローラ及びフラッシュメモリシステム
JP4661566B2 (ja) アクセスコントローラ、フラッシュメモリシステム及びアクセス制御方法
JP4609406B2 (ja) メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム、並びに、フラッシュメモリの制御方法
JP4177292B2 (ja) メモリンコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
JP3934659B1 (ja) メモリコントローラ及びフラッシュメモリシステム
JP4254933B2 (ja) メモリコントローラ及びフラッシュメモリシステム
JP4177301B2 (ja) メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
JP4213166B2 (ja) メモリコントローラおよびフラッシュメモリシステム
JP4636046B2 (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
JP4000124B2 (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びに、フラッシュメモリの制御方法
JP4273106B2 (ja) メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
JP4569554B2 (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
JP4227989B2 (ja) メモリコントローラ及びフラッシュメモリシステム
JP4539621B2 (ja) メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
JP4273109B2 (ja) メモリコントローラ及びフラッシュメモリシステム
JP2006099696A (ja) メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム及びフラッシュメモリの制御方法
JP2006099594A (ja) メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080219

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080421

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: 20080805

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20080811

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110815

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4171749

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120815

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130815

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees