JP4182993B2 - メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法 - Google Patents

メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法 Download PDF

Info

Publication number
JP4182993B2
JP4182993B2 JP2006181732A JP2006181732A JP4182993B2 JP 4182993 B2 JP4182993 B2 JP 4182993B2 JP 2006181732 A JP2006181732 A JP 2006181732A JP 2006181732 A JP2006181732 A JP 2006181732A JP 4182993 B2 JP4182993 B2 JP 4182993B2
Authority
JP
Japan
Prior art keywords
logical address
instruction information
area
logical
block
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.)
Active
Application number
JP2006181732A
Other languages
English (en)
Other versions
JP2008009874A (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 JP2006181732A priority Critical patent/JP4182993B2/ja
Priority to US11/766,549 priority patent/US20080016267A1/en
Publication of JP2008009874A publication Critical patent/JP2008009874A/ja
Application granted granted Critical
Publication of JP4182993B2 publication Critical patent/JP4182993B2/ja
Active 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)
  • Read Only Memory (AREA)

Description

本発明は、メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法に関する。
近年、メモリカードやシリコンディスク等といったメモリシステムにて使用される半導体メモリに、フラッシュメモリが広く採用されている。フラッシュメモリは、不揮発性メモリの一種である。フラッシュメモリに格納されたデータは、電力が供給されていないときでも保持されていることが要求される。
図1は、フラッシュメモリシステム1を概略的に示すブロック図である。図1に示したようにフラッシュメモリシステム1は、フラッシュメモリ2と、それを制御するメモリコントローラ3とで構成されている。それらは内部バス6を介して接続されている。また、フラッシュメモリシステム1は、外部バス5を介して通常ホストシステム4と接続され、ホストシステム4に対して一種の外部記憶装置として用いられる。
尚、ホストシステム4としては、文字、音声、あるいは画像情報等の種々の情報を処理するパーソナルコンピュータやディジタルスチルカメラをはじめとする各種情報処理装置が挙げられる。
ホストシステム4は、メモリコントローラ3に処理の実行を指示する指示情報を発行する。メモリコントローラ3は、この指示情報に応答して、フラッシュメモリ2に処理の実行を指示するための指示情報を発行する。ここで、指示情報には読み出しや書き込みを指示するコマンドとアクセス領域を指示するアドレスが含まれている。又、ホストシステム4からメモリコントローラ3に与えられるコマンドを外部コマンドと呼び、メモリコントローラ3がフラッシュメモリ2に処理の実行を指示するためのコマンドを内部コマンドと呼ぶ。
以下で、フラッシュメモリ2、外部バス5、フラッシュメモリ2のアドレス空間及びメモリコントローラ3について説明を行う。
[フラッシュメモリ2の説明]
NAND型フラッシュメモリは、上記のメモリシステムで特に多く用いられるフラッシュメモリの一種である。NAND型フラッシュメモリに含まれている複数のメモリセルのそれぞれは、他のメモリセルとは独立して、論理値“1”に対応する消去状態から、論理値“0”に対応する書込状態へと変化することができる。
これとは対照的に、書込状態から消去状態へと変化するときには、各メモリセルは他のメモリセルと独立して変化することができない。このときには、ブロックと称される予め定められた数のメモリセルが、全て同時に消去状態になる。この一括消去動作は、一般的に、“ブロック消去”と称されている。NAND型フラッシュメモリに対する書込処理若しくは読出処理は、ページ又はセクタと称される予め定められた数のメモリセル単位で処理が行なわれる。
また、所定数のメモリセルからなる消去処理の単位であるブロックは、複数のページで構成されている。ブロックとページの構成は、フラッシュメモリの仕様によって異なるが、一般的なフラッシュメモリでは、小ブロックでは32ページ、大ブロックでは64ページである。
ページの構成は以下のようになっている。小ブロックでは、図2(a)に示したように、1個のページが1セクタ(512バイト)のユーザ領域と16バイトの冗長領域とによって構成されている。大ブロックでは、図2(b)に示したように、1個のページが4セクタ(2048バイト)のユーザ領域(以下、512バイト単位のユーザ領域をセクタ領域という)と64バイトの冗長領域とによって構成され、ユーザ領域と冗長領域とがそれぞれ4分割して使用される。よって、小ブロックでは1個ページが1個のセクタ領域に対応し、大ブロックでは1個ページが4個のセクタ領域に対応している。
ユーザ領域は、主に、ホストシステムから供給されるデ―タが記憶される領域であり、冗長領域は、論理ブロックを示す情報、エラーコレクションコード等の付加データが記憶される領域である。ここで、論理ブロックを示す情報は、ホストシステムから与えられるアドレス情報に基づいて特定される論理ブロックを示す情報である。又、エラーコレクションコードは、ユーザ領域に記憶されたデータに含まれる誤りを検出、訂正するための情報である。
[外部バス5の説明]
NAND型フラッシュメモリを用いたメモリシステムの外部バス5のホストインターフェースには、通常、磁気ディスク装置で用いられているATA(AT Attachment)が採用されている。NAND型フラッシュメモリにおけるページ若しくはページに含まれるセクタ領域を、磁気ディスク装置におけるセクタに対応させれば、比較的容易に、磁気ディスク装置を、NAND型フラッシュメモリを用いたメモリシステムに置換えることができるからである。このため、NAND型フラッシュメモリを用いたメモリシステムは、従来の磁気ディスク装置を置換える用途に使用されることが多くなっている。
例えば、ATAに準拠したインターフェースがあり、ホストコンピュータ側からフラッシュメモリにアクセスするときには、LBAレジスタ、セクタ数レジスタ及びコマンドレジスタ等が用いられる。
ここで、ホストコンピュータ側からフラッシュメモリに対して、読み出し若しくは書き込みを実行する場合、ホストコンピュータ側から、読み出し若しくは書き込みを実行するセクタの先頭アドレスがLBAレジスタに設定され、読み出すセクタ数(フラッシュメモリから読み出すデータのセクタ数)若しくは書き込むセクタ数(フラッシュメモリに書き込むデータのセクタ数)がセクタ数レジスタに設定される。また、読み出し及び書き込み等のコマンドは、コマンドレジスタに設定される。この設定に基づいて、書き込みの場合は、フラッシュメモリ内の1若しくは複数セクタにデータが書き込まれ、読み出しの場合は、フラッシュメモリ内の1若しくは複数セクタからデータが読み出される。
[フラッシュメモリ2のアドレス空間]
ホストシステム4側のアドレス空間は、図3(a)に示したようにセクタ(512バイト)単位で分割した領域に付けた通番であるLBA(Logical Block Address)で管理されている。更に複数個のセクタをまとめたものを論理ブロックと呼び、複数個の論理ブロックをまとめたものを論理ゾーンと呼んでいる。また、図3(b)に示したように論理ブロックに付けられた通番を論理ブロック番号(LBN)と呼び、論理ゾーンに付けられた通番を論理ゾーン番号(LZN)と呼んでいる。また、各論理ゾーンに含まれた論理ブロックの各論理ゾーン内での通番を論理ゾーン内ブロック番号(LZIBN)と呼んでいる。尚、LBAレジスタには、LBAの値で読み出し若しくは書き込みを開始するセクタのアドレスが設定される。
一方、図3(c)に示したように、物理ブロックには、それぞれ固有の物理ブロックアドレス(PBA)が割り当てられている。さらに、記憶領域を複数のゾーンに分割して管理する場合には、複数個の物理ブロックで物理ゾーンを構成し、各物理ゾーンに固有の物理ゾーン番号(PZN)を割り当てている。各物理ゾーンに含まれる物理ブロックの各物理ゾーン内での通番を物理ゾーン内ブロック番号(PZIBN)と呼んでいる。
また、各論理ゾーンにはそれぞれ1個の物理ゾーンが割り当てられ、論理ゾーンに含まれる各論理ブロックに対応するデータは、その論理ゾーンに割り当てられた物理ゾーンに含まれる物理ブロックに書き込まれる。したがって、1個の論理ブロックに含まれるセクタ数は、1個の物理ブロックに含まれるセクタ領域の個数に応じて設定される。但し、1個の論理ブロックを複数個の物理ブロックに割り当てる場合には、その複数個の物理ブロックを1個の物理ブロックとみなして1個の論理ブロックに含まれるセクタ数を設定する。
図3に示した例では、1個の物理ブロックが256個のセクタ領域で構成されたフラッシュメモリを想定しているため、256セクタが1個の論理ブロックに対応している。したがって、LBN#0〜#499の500個の論理ブロックで構成されたLZN#0の論理ゾーンは、LBA#0〜#127999の128000セクタの領域に対応している。
以下同様に、LZN#1の論理ゾーンは、LBA#128000〜#255999の128000セクタの領域に対応し、LZN#2の論理ゾーンは、LBA#256000〜#383999の128000セクタの領域に対応し、LZN#3の論理ゾーンは、LBA#384000〜#511999の128000セクタの領域に対応している。
また、LBN#0〜#499の500個の論理ブロックで構成されたLZN#0の論理ゾーンは、PBA#0〜#511の512個の物理ブロックで構成されたPZN#0の物理ゾーンに割り当てられている。以下同様に、LZN#1の論理ゾーンは、PZN#1の物理ゾーンに割り当てられ、LZN#2の論理ゾーンは、PZN#2の物理ゾーンに割り当てられ、LZN#3の論理ゾーンは、PZN#3の物理ゾーンに割り当てられている。ここで、物理ゾーンに含まれる物理ブロックの個数を、論理ゾーンに含まれる論理ブロックの個数より多くしているのは、同一の論理ブロックに対応する新データと旧データが別々の物理ブロックに並存する場合や、データを正常に書き込むことができない不良ブロックが発生した場合等を考慮したものである。
また、各物理ブロックには、その物理ブロックに割り当てられた論理ブロックのデータがLBAの順番で書き込まれるので、物理ブロックと論理ブロックとの対応関係を管理することにより、ホストシステム4から与えられるLBAとフラッシュメモリ2内のアクセス領域の対応関係を管理することができる。
なお、物理ブロックと論理ブロックとの対応関係は、データの書き込みや消去が行われる毎に変化する。このため、個々の時点における両者の対応関係を管理するためアドレス変換テーブルが作成され、対応関係が変化する毎にアドレス変換テーブルが更新される。
このアドレス変換テーブルは、物理ブロックの先頭ページの冗長領域に書き込まれる論理ブロックを示す情報(以下、論理アドレス情報という)に基づいて作成される。冗長領域に書き込まれる論理アドレス情報としては,LBN等の論理ブロックを特定することができる情報が用いられる。なお、論理ゾーンと物理ゾーンとの対応関係は予め設定されている場合は、LZIBNに基づいて論理ブロックを特定することができるので、LBNよりデータ量の少ないLZIBNを用いることが好ましい。
また、上記物理ブロックに論理アドレス情報が格納されていない場合は、対応する論理ブロックが無いことになるので、その物理ブロックが空きブロックであるとを判断することもできる。つまり、論理アドレス情報が格納されていない場合は、空きブロックであると判断される。
アドレス変換テーブルの例として、図7がある。ここで左側は論理ブロックのLBNを示し、右側は物理ブロックのPBAを示している。この例では、LBN#0の論理ブロックがPBA#10の物理ブロックに、LBN#1の論理ブロックがPBA#21の物理ブロックに、LBN#2の論理ブロックがPBA#5の物理ブロックに対応している。なお、論理ゾーンと物理ゾーンとの対応関係が予め設定されている場合には、LZIBNとPZIBNの対応関係で論理ブロックと物理ブロックの対応関係を示してもよい。
[ メモリコントローラ3の説明]
メモリコントローラ3は、図4に示すような各種レジスタ、バッファ9、ワークエリア(図示せず)を備える。すなわち、ホストインタフェースブロック7は、コマンドレジスタR1、セクタ数レジスタR2及びLBAレジスタR3等を備えている。また、フラッシュメモリインターフェースブロック8は、物理ブロックアドレスレジスタR11,セクタ番号レジスタR12、カウンタR13等を備えている。
バッファ9は、フラッシュメモリ2から読み出したデータ及びフラッシュメモリ2に書込むデータを一時的に保持する機能ブロックである。すなわち、フラッシュメモリ2から読み出したデータは、ホストシステム4の受取準備ができるまでバッファ9に保持され、フラッシュメモリ2に書込むデータは、フラッシュメモリ2の書込準備ができるまでバッファ9に保持される。ワークエリアは、フラッシュメモリ2の制御に必要なデータが一時的に格納される作業領域であり、複数のSRAM(Static Random Access Memory)セルのよって構成されている。
コマンドレジスタR1、セクタ数レジスタR2及びLBAレジスタR3には、ホストシステム4から与えられる情報が書き込まれる。コマンドレジスタR1には、書き込みコマンド、読み出しコマンド等のコマンド(書き込み、読み出し等を指示する外部コマンド)が書き込まれる。セクタ数レジスタR2にはアクセス対象領域のセクタ数が書き込まれる。LBAレジスタR3には、アクセス対象領域の先頭のLBAが書き込まれる。
物理ブロックアドレスレジスタR11、セクタ番号レジスタR12、カウンタR13には、セクタ数レジスタR2及びLBAレジスタR3に書き込まれた情報に基づく、フラッシュメモリ2内のアクセス対象領域を指示する情報が書き込まれる。
たとえば、LBAが連続する256セクタの領域を、フラッシュメモリ2(1ブロックが64ページで、1ページが4セクタの場合)の1個の物理ブロックに割り当てた場合、図3で説明したLBAの下位8ビットがセクタ番号SNに対応し、この下位8ビットを除いた上位側のビットが論理ブロック番号(LBN)に対応する。
つまり、LBAが連続する256セクタの領域を1個の論理ブロックとした場合、LBAの下位8ビットが論理ブロック内の各セクタに付けた通番であるセクタ番号SN(0〜255)を示し、このLBAの下位8ビットを除いた上位側のビットが論理ブロック番号(LBN)を示している。なお、LBA、論理ブロック番号(LBN)及びセクタ番号SNのビット数については、フラッシュメモリ2の容量や仕様等に応じて決定される。
次に、物理ブロックアドレスレジスタR11、セクタ番号レジスタR12、カウンタR13に設定される情報について説明する。セクタ番号レジスタR12には、LBAレジスタR3に書き込まれたLBAのセクタ番号SNに対応する部分の値が書き込まれる。
ここで、各物理ブロックにはLBAの順番でユーザデータが書き込まれるので、上記のセクタ番号SNは、各物理ブロックに含まれるセクタ領域に付けられた通番に対応する。一方、物理ブロックアドレスレジスタR11には、LBAレジスタR3に書き込まれたLBAの論理ブロック番号(LBN)を示す部分に基づいて特定された論理ブロックと対応する物理ブロックの物理ブロックアドレス(PBA)又は空きブロックの物理ブロックアドレス(PBA)が書き込まれる。
つまり、特定された論理ブロックに対応する物理ブロックからユーザデータを読み出す場合、又は、その物理ブロックに追加書き込みをする場合には、特定された論理ブロックと対応する物理ブロックの物理ブロックアドレス(PBA)が物理ブロックアドレスレジスタR11に書き込まれる。また、特定された論理ブロックに対応するユーザデータを空きブロックに書き込む場合には、その空きブロックの物理ブロックアドレス(PBA)が物理ブロックアドレスレジスタR11に書き込まれる。カウンタR13には、セクタ数レジスタR2に設定したセクタ数が書き込まれる。
なお、LBAレジスタR3及びセクタ数レジスタR2に設定された情報に基づいて特定されるアクセス対象領域が複数の論理ブロックに跨っている場合、アクセス対象領域の物理ブロックも複数の論理ブロックに跨っているので、物理ブロックアドレスレジスタR11、セクタ番号レジスタR12、カウンタR13に対する情報の設定は論理ブロック毎に行い、カウンタR13には各論理ブロックに書き込まれるユーザデータのセクタ数を設定する。
したがって、LBAレジスタR3及びセクタ数レジスタR2に設定された情報に基づいて特定されるアクセス対象領域が複数の論理ブロックに跨っている場合、ホストシステム4から与えられる1回の指示情報に基づいて複数回(たとえば、2個の論理ブロックに跨っている場合は2回)のシーケンス処理が実行される。シーケンス処理は、物理ブロックアドレスレジスタR11、セクタ番号レジスタR12、カウンタR13に設定された情報に基づいて連続的に実行されるアクセス処理である。シーケンス処理は、メモリコントローラ3内のROMに記憶されているシーケンスコマンド(書き込み、読み出し等の処理毎に設定されたコマンドセット)に従って実行される。
書き込みのシーケンス処理では、1セクタのユーザデータがバッファ9からフラッシュメモリ2に供給される毎にセクタ番号レジスタR12に設定されている値がインクリメント(1ずつ増加)され、カウンタR13に設定されている値がデクリメント(1ずつ減少)される。カウンタR13に設定されている値が0になったときにシーケンス書き込みが終了する。読み出しシーケンス処理では、1セクタのユーザデータがフラッシュメモリ2からバッファ9に読み出される毎にセクタ番号レジスタR12に設定されている値がインクリメント(1ずつ増加)され、カウンタR13に設定されている値がデクリメント(1ずつ減少)される。カウンタR13に設定されている値が0になったときにシーケンス書き込みが終了する。
たとえば、セクタ番号レジスタR12に「10」を設定し、カウンタR13に「8」を設定した書き込みのシーケンス処理では、SN#10〜#17のセクタ領域にユーザデータが書き込まれる。セクタ番号レジスタR12に「10」を設定し、カウンタR13に「8」を設定した読み出しのシーケンス処理では、SN#10〜#17のセクタ領域からユーザデータが読み出される。
以上で述べたようなATAに準拠したインターフェースを備えたフラッシュメモリコントローラ3は、LBAレジスタR3及びセクタ数レジスタR2を複数備えていなかったため、ホストシステム4からフラッシュメモリ2にアクセスするときには、読み出し若しくは書き込みを実行するデータ群(アドレスが連続する複数セクタ分のデータ)毎に、コマンドレジスタR1、セクタ数レジスタR2及びLBAレジスタR3等に所望の設定値を設定しなければならなかった。従って、フラッシュメモリ2内の複数の箇所から複数のデータ群を読み出す場合、又はフラッシュメモリ2内の複数の箇所に複数のデータ群を書き込む場合には、各データ群の読み出し若しくは書き込みの処理毎に、コマンドレジスタR1、セクタ数レジスタR2及びLBAレジスタR3等に所望の設定値を設定しなければならなかった。
そこで特許文献1により、複数のデータ群の読み出し処理や書き込み処理を連続して実行するときに好適なメモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びに、フラッシュメモリの制御方法が提供された。
図5は、特許文献1によるホストインターフェースブロック7を示す説明図である。ホストインターフェースブロック7には、ホストシステム4より供給されるアドレスが書き込まれるLBAレジスタR3とホストシステム4から供給されるセクタ数が書き込まれるセクタ数レジスタR2とが複数組設けられている。例えば図5のように、LBAレジスタA,B,C,……,Jと、これらに対応するセクタ数レジスタA,B,C,……,Jとが、ホストインターフェースブロック7に設けられている。ホストインターフェースブロック7には、さらに、ホストシステム4から供給されるコマンドが書き込まれるコマンドレジスタR1が設けられている。
特許文献1のフラッシュメモリシステム1では、LBAレジスタR3とセクタ数レジスタR2に書き込まれたアドレス及びセクタ数に基づいて、書き込み処理の場合は、バッファ9に保持されているデータがフラッシュメモリ2に書き込まれ、読み出し処理の場合は、フラッシュメモリ2からバッファ9にデータが読み出される。
このフラッシュメモリシステムの処理では、複数組のアドレスとセクタ数を、LBAレジスタR3とセクタ数レジスタR2に書き込むことができるため、最初に複数組のアドレスとセクタ数を、外部コマンドと共に設定すれば、複数データ群の処理を連続的に行なうことができる。
特開2006−99517号公報
従来技術では、ホストインターフェースに複数のLBAレジスタとセクタ数レジスタを設けることによって、ホストシステムから複数のアクセス領域を指定できるようにした。従って、フラッシュメモリコントローラは、1番目のアクセス領域にアクセスしているときに、2番目のアクセス領域に関する情報の準備をすることができ、2番目のアクセス領域にアクセスしているときに、3番目のアクセス領域に関する情報の準備をすることができた。各アクセス領域は連続した領域で無くともよいが、フラッシュメモリインターフェースブロックに対して、各アクセス領域毎にアクセスの指示を与えていた。
ホストシステムは、フラッシュメモリに対して読み出し又は書き込みを行う際、アクセス領域が連続している読み出し又は書き込みを指示する指示情報を連続して与えることがある。このような場合であっても、従来技術によるフラッシュメモリコントローラでは、フラッシュメモリインターフェースブロックに対して、各指示情報に対応するアクセス処理毎にアクセスの指示を与える必要があった。従って、アクセス領域が連続している場合であっても、1つのシーケンス処理で読み出し又は書き込みが連続して行われずに、ホストシステムとフラッシュメモリ間のデータの転送効率が低くなるという課題があった。
本発明では、ホストシステムからアクセス領域が連続する読み出し又は書き込みを指示する指示情報が連続して与えられた場合に、ホストシステムとフラッシュメモリ間のデータの転送効率を向上させることができるメモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法を提供することを目的とする。
上記目的を達成するために、本発明によるメモリコントローラは、ホストシステムから与えられる指示情報に基づいて、ブロック単位で記憶データの消去が行われるフラッシュメモリに対するアクセスを制御するメモリコントローラであって、指示情報に基づいて特定される読み出し領域又は書き込み領域を超える領域に対してフラッシュメモリに記憶されているデータの読み出し処理又はフラッシュメモリへのデータの書き込み処理を開始させる読出書込手段と、指示情報を保持する指示情報保持手段と、ホストシステムから与えられる新たな指示情報に基づいて特定される読み出し領域又は書き込み領域が、指示情報保持手段により保持された情報に基づいて特定される読み出し領域又は書き込み領域と連続する領域であるか否かを判別する判別手段と、判別手段が、連続する領域であると判断した場合には、読出書込手段が実行中の読み出し又は書き込み処理を続行させ、連続する領域でないと判断した場合には、読出書込手段が実行中の読み出し又は書き込み処理を停止させる制御手段とを備える
また、読出書込手段は、指示情報に基づいて特定されるブロック内最終ページまでの領域に対してフラッシュメモリに記憶されているデータの読み出し処理又はフラッシュメモリへのデータの書き込み処理を開始することも好ましい。
上記目的を達成するために、本発明によるフラッシュメモリシステムは、前記メモリコントローラのいずれか1つとフラッシュメモリを備えている。
上記目的を達成するために、本発明のフラッシュメモリの制御方法は、ホストシステムから与えられる指示情報に基づいて、ブロック単位で記憶データの消去が行われるフラッシュメモリに対するアクセスを制御するフラッシュメモリの制御方法であって、指示情報に基づいて特定される読み出し領域又は書き込み領域を超える領域に対してフラッシュメモリに記憶されているデータの読み出し処理又はフラッシュメモリへのデータの書き込み処理を開始する読出書込ステップと、指示情報を保持する指示情報保持ステップと、ホストシステムから与えられる新たな指示情報に基づいて特定される読み出し領域又は書き込み領域が、指示情報保持ステップにより保持された情報に基づいて特定される読み出し領域又は書き込み領域と連続する領域であるか否かを判別する判別ステップと、判別ステップで、連続する領域であると判断した場合には、読出書込ステップで開始した読み出し又は書き込み処理を続行させ、連続する領域でないと判断した場合には、読出書込ステップで開始した読み出し又は書き込み処理を停止させる制御ステップとを備える。
本発明によれば、ホストシステムから与えられる指示情報に基づいたアクセス領域(読み出し領域又は書き込み領域)が連続している場合、異なる指示情報に基づいたアクセス処理(読み出し処理又は書き込み処理)が連続して実行される。そのため、アクセス領域が連続する複数の指示情報に基づいたアクセス処理を断続的に実行した場合よりも、各アクセス処理間の処理が行われていない期間を短くすることができる。
これにより、ホストシステムからアクセス領域が連続する指示情報が連続的に与えられたときに、ホストシステムとフラッシュメモリ間でのデータ転送効率を向上させることができる。
図6は、本発明のフラッシュメモリシステムの機能構成図である。この図を基にして本発明の実施形態の動作を説明する。
まず、ホストシステム4から一番最初の指示情報が、ホストインタフェースブロック7に与えられる。この指示情報には、読み出し又は書き込み等を指示する外部コマンドと、アクセス領域を特定するためのセクタ数及びLBAに関する情報を含んでいる。これらの情報は、ホストインタフェースブロック7内の対応するコマンドレジスタR1、セクタ数レジスタR2及びLBAレジスタR3に書き込まれる。指示情報保持手段12は、前回の指示情報に含まれる外部コマンド、セクタ数及びLBAに関する情報を保持する手段であるが、一番最初の指示情報が与えられたときは、これらの情報を保持していない。判別手段13は、ホストから与えられた指示情報で特定されるアクセス領域(読み出し領域又は書き込み領域)が、指示情報保持手段に保持されている情報によって特定されるアクセス領域と連続するかどうかを判断する。つまり、判別手段13は、コマンドレジスタR1、セクタ数レジスタR2及びLBAレジスタR3に書き込まれた情報に基づいて特定されるアクセス領域が、指示情報保持手段に保持されている外部コマンド、セクタ数及びLBAに関する情報に基づいて特定されるアクセス領域と連続するかどうかを判断する。従って、ホストシステム4から一番最初の指示情報が与えられたときは、アクセス領域が連続していないと判断する。制御手段14は、判別手段13によってアクセス領域が連続していると判断された場合は、読出書込手段であるフラッシュメモリインターフェースブロック8が実行中のアクセス処理(読み出し又は書き込み処理)を続行させ、判別手段13によってアクセス領域が連続していないと判断された場合は、フラッシュメモリインターフェースブロック8が実行中のアクセス処理を停止させると共に新たなアクセス処理を実行するための設定を行う。しかし、一番最初の指示情報が与えられたときは、フラッシュメモリインターフェースブロック8がアクセス処理を行っていないため、制御手段14は、実行中のアクセス処理を停止させることなく、アクセス処理を実行するための設定を開始する。又、指示情報保持手段12は、判別手段13がアクセス領域が連続しているか否かを判断した後に、コマンドレジスタR1、セクタ数レジスタR2及びLBAレジスタR3に書き込まれている情報をワークエリア(図示せず)に保持する。
アクセス処理を実行するための設定では、フラッシュメモリインターフェースブロック8内の物理ブロックアドレスレジスタR11、セクタ番号レジスタR12及びカウンタR13にフラッシュメモリ2内のアクセス領域を特定する情報が設定される。物理ブロックアドレスレジスタR11には、LBAレジスタR3に書き込まれたLBAの論理ブロック番号(LBN)を示す部分に基づいて特定された論理ブロックと対応する物理ブロックの物理ブロックアドレス(PBA)又は空きブロックの物理ブロックアドレス(PBA)が書き込まれる。尚、論理ブロックと対応する物理ブロックの物理ブロックアドレス(PBA)は、アドレス変換テーブルを参照して求められる。セクタ番号レジスタR12には、LBAレジスタR3に書き込まれたLBAのセクタ番号SNに対応する部分の値が書き込まれる。カウンタR13には、セクタ数レジスタR2に書き込まれているセクタ数よりも大きい値が書き込まれる。物理ブロックアドレスレジスタR11、セクタ番号レジスタR12及びカウンタR13にフラッシュメモリ2内のアクセス領域を特定する情報が設定された後に、コマンドレジスタR1に設定された外部コマンドに対応するシーケンスコマンドがROMから読み出され、読み出されたシーケンスコマンドに従ってアクセス処理が開始される。
次に、カウンタR13に設定される値について説明する。本実施形態では物理ブロック内の最終ページ(セクタ領域)までアクセスできるような値をカウンタR13に設定する。つまり、1個の物理ブロックに256個のセクタ領域(セクタ番号SN#0〜#255に対応する256個のセクタ領域)が含まれている場合には、セクタ番号SN#255に対応するセクタ領域までアクセスすることができるような値がカウンタR13に書き込まれる。
ここで、LBAレジスタR3に書き込まれたLBAの論理ブロック番号(LBN)を示す部分の値をi、セクタ番号SNに対応する部分の値をj、セクタ数レジスタR2に書き込まれた値をkとした場合、カウンタR13にはkではなく256−jが書き込まれる。尚、物理ブロックアドレスレジスタR11には論理ブロック番号(LBN)#iと対応する物理ブロックアドレス(PBA)が書き込まれ、セクタ番号レジスタR12にはjが書き込まれる。又、この設定では、セクタ番号SN#jに対応するセクタ領域からセクタ番号SN#255に対応するセクタ領域までアクセスすることができる。
アクセス領域が2個の物理ブロックに跨っている場合(kが256−jより大きい場合)には、この設定でのアクセス処理が終了した後に、物理ブロックアドレスレジスタR11、セクタ番号レジスタR12及びカウンタR13にアクセス領域を特定する情報が追加設定される。この追加設定では、物理ブロックアドレスレジスタR11には論理ブロック番号(LBN)#i+1と対応する物理ブロックアドレス(PBA)が書き込まれ、セクタ番号レジスタR12には0が書き込まれ、カウンタR13には256が書き込まれる。この設定では、セクタ番号SN#0に対応するセクタ領域からセクタ番号SN#255に対応するセクタ領域までアクセスすることができる。
次に、ホストシステム4から2番目の指示情報が、ホストインタフェースブロック7に与えられた場合について説明する。2番目の指示情報に含まれる外部コマンド、アクセス領域を特定するためのセクタ数及びLBAに関する情報は、ホストインタフェースブロック7内の対応するコマンドレジスタR1、セクタ数レジスタR2及びLBAレジスタR3に書き込まれる。又、指示情報保持手段12には、前回の指示情報、つまり、一番最初の指示情報に含まれていた外部コマンド、セクタ数及びLBAに関する情報が保持されている。判別手段13は、LBAレジスタR3に書き込まれたLBA(2番目の指示情報に含まれるLBA)が、指示情報保持手段に保持されているセクタ数及びLBA(一番最初の指示情報に含まれていたセクタ数及びLBA)に基づいて特定されるアクセス領域の末尾のLBAの次のLBAであるか否かを判断する。尚、コマンドレジスタR1に書き込まれた外部コマンド(2番目の指示情報に含まれる外部コマンド)と、指示情報保持手段に保持されている外部コマンド(一番最初の指示情報に含まれる外部コマンド)が異なる外部コマンドの場合、例えば、一方が読み出しを指示する外部コマンドで、他方が書き込みを指示する外部コマンドの場合、アクセス領域が連続していないと判断する。
ここで、アクセス領域が連続している場合は、LBAレジスタR3に書き込まれたLBAが、指示情報保持手段に保持されているセクタ数及びLBAに基づいて特定されるアクセス領域の末尾のLBAの次のLBAに一致し、アクセス領域が連続していない場合は、LBAレジスタR3に書き込まれたLBAが、指示情報保持手段に保持されているセクタ数及びLBAに基づいて特定されるアクセス領域の末尾のLBAの次のLBAに一致しない。つまり、LBAレジスタR3に書き込まれたLBAの値をa、指示情報保持手段に保持されているセクタ数及びLBAの値をb、cとした場合、a=b+cであればアクセス領域が連続していると判断され、a=b+cでなければアクセス領域が連続していないと判断される。
制御手段14は、判別手段13の判断に従って、読出書込手段であるフラッシュメモリインターフェースブロック8が実行中のアクセス処理を続行若しくは停止させる。つまり、アクセス領域が連続していると判断された場合は、フラッシュメモリインターフェースブロック8が実行中のアクセス処理を続行させる。一方、アクセス領域が連続していないと判断された場合は、シーケンス処理を終了させ、フラッシュメモリ2に対するアクセス処理を停止させる。アクセス処理がフラッシュメモリ2からのデータ読み出しの場合は、一番最初の指示情報に対応するデータを全てホストシステム4に転送した後でシーケンス処理を終了させる。アクセス処理がフラッシュメモリ2へのデータ書き込みの場合は、一番最初の指示情報に対応するデータを全てフラッシュメモリ2に書き込んだ後でシーケンス処理を終了させる。
アクセス領域が連続していない場合は、フラッシュメモリインターフェースブロック8が実行中のアクセス処理を停止させた後に、フラッシュメモリインターフェースブロック8内の物理ブロックアドレスレジスタR11、セクタ番号レジスタR12及びカウンタR13にアクセス処理を実行するための情報を設定し、新たなアクセス処理を開始させる。又、指示情報保持手段12は、判別手段13がアクセス領域が連続しているか否かを判断した後に、コマンドレジスタR1、セクタ数レジスタR2及びLBAレジスタR3に書き込まれている情報をワークエリア(図示せず)に保持する。つまり、指示情報保持手段12には、2番目の指示情報に含まれていた外部コマンド、セクタ数及びLBAに関する情報が保持される。
本実施形態におけるフラッシュメモリ2、フラッシュメモリインターフェースブロック8、バッファ9、ホストインタフェースブロック7及びホストシステム4間の動作は次のようになる。
読み出しの場合、まず、フラッシュメモリインターフェースブロック8が、フラッシュメモリ2からデータを読み出し、バッファ9に保持する。次に、ホストインタフェースブロック7が、バッファ9からホストシステム4にバッファ9のデータを転送する。
フラッシュメモリインターフェースブロック8は、バッファ9に空きが有るときは、フラッシュメモリ2からデータを読み出し、読み出したデータをバッファ9に保持させる。バッファ9に空き領域が無いときは、バッファ9に空き領域ができるのを待ち、ホストインタフェースブロック7が、バッファ9に保持されているデータをホストシステム4に転送して、バッファ9に空き領域ができたときに次のデータを読み出す。尚、バッファ9に保持されているデータをホストシステム4に転送して空き領域ができたときは、空き領域を示すフラグがセットされ、フラッシュメモリ2から読み出したデータをバッファ9に保持させたときは、空き領域を示すフラグがリセットされる。
ホストインタフェースブロック7は、ホストシステム4からの要求に従って、バッファ9に保持されているデータをホストシステム4に転送する。指示情報保持手段12が保持しているセクタ数分のデータをホストシステム4に転送した後は、ホストシステム4からの要求を待つ状態になる。フラッシュメモリインターフェースブロック8は、バッファ9の空き領域が無くなるまでフラッシュメモリ2からデータを読み出し、空き領域が無くなったところでバッファ9に空き領域ができるのを待つ状態になる。
この後、ホストシステム4から指示情報が与えられて、その指示情報に基づくアクセス領域が連続している場合は、ホストシステム4から要求があったときに、バッファ9に保持されているデータをホストシステム4に転送する処理を再開する。
書き込みの場合、まず、ホストインタフェースブロック7が、ホストシステム4から与えられたフラッシュメモリ2に書き込むデータをバッファ9に転送する。次にフラッシュメモリインターフェースブロック8が、バッファ9のデータをフラッシュメモリ2に転送する。フラッシュメモリインターフェースブロック8は、バッファ9にデータがないとき、ホストシステム4から与えられるデータがバッファ9に保持されるのを待つ状態になる。従って、フラッシュメモリインターフェースブロック8は、指示情報保持手段12が保持しているセクタ数分のデータをフラッシュメモリ2に転送した後は、ホストシステム4から与えられるデータがバッファ9に保持されるのを待つ状態になる。
この後、ホストシステム4から指示情報が与えられて、その指示情報に基づくアクセス領域が連続している場合は、ホストシステム4から与えられるデータがバッファ9に保持されたときに、バッファ9に保持されているデータをホストシステム4に転送する処理を再開する。
次に、図8を参照して、本発明にかかるアクセス処理を具体的に説明する。尚、ホストシステム4からは読み出しを指示する外部コマンドが与えられ、論理ブロック番号(LBN)#0は物理ブロックアドレス(PBA)#pに対応するものとする。最初にホストインタフェースブロック7に与えられたLBAとセクタ数が、LBA=0、セクタ数=16の場合、フラッシュメモリインターフェースブロック8には、物理ブロックアドレスレジスタR11にp、セクタ番号レジスタR12に0、カウンタR13に256が設定され、読み出し処理が開始される。その次に与えられたLBAとセクタ数が、LBA=16、セクタ数=16の場合、アクセス領域が連続しているので、読み出し処理を続行させる。その次に与えられたLBAとセクタ数が、LBA=32、セクタ数=16の場合、アクセス領域が連続しているので、読み出し処理を続行させる。その次に与えられたLBAとセクタ数が、LBA=64、セクタ数=16の場合、アクセス領域が連続していないので、読み出し処理を停止させる。その後、フラッシュメモリインターフェースブロック8には、物理ブロックアドレスレジスタR11にp、セクタ番号レジスタR12に64、カウンタR13に192が設定され、読み出し処理が開始される。
以上述べたように、本発明にかかるアクセス処理では、連続するアクセス領域にアクセスする場合に、フラッシュメモリインターフェースブロック8にアクセス処理を指示する回数が大幅に減少させることができる。
このアクセス処理では、ホストシステム4から与えられた指示情報に含まれるセクタ数がmの場合、mより大きい値n(n>m)がセクタ数として与えられたときと同等の値をフラッシュメモリインターフェースブロック8内の物理ブロックアドレスレジスタR11、セクタ番号レジスタR12及びカウンタR13に設定して、アクセス処理を開始する。その後、ホストシステム4から次の指示情報が与えられ、その指示情報に基づくアクセス領域が連続していれば、アクセス処理が続行される。アクセス領域が連続しているか否かは、指示情報に含まれている情報に基づいて判断することができる。
又、以上述べた実施形態は全て本発明を例示的に示すものであって限定的に示すものではなく、本発明は他の種々の変形態様及び変更態様で実施することができる。従って本発明の範囲は特許請求の範囲及びその均等範囲によってのみ規定されるものである。
フラッシュメモリシステムを概略的に示すブロック図である。 図1のフラッシュメモリのアドレス空間の構造を概略的に示す図である。 図1のフラッシュメモリシステムにおけるアドレス変換の概要を説明するための図である。 図1のフラッシュメモリシステムのホストインタフェースブロック及びフラッシュメモリインターフェースブロックの詳細を示すブロック図である。 特許文献1のフラッシュメモリシステムのホストインタフェースブロックの詳細を示すブロック図である。 本発明のフラッシュメモリシステムのホストインタフェースブロック及びフラッシュメモリインターフェースブロックの詳細を示すブロック図である。 アドレス変換テーブルを示す図である。 本発明のフラッシュメモリシステムにおける読み出し又は書き込みの連続実行を示す図である。
符号の説明
1 フラッシュメモリシステム
2 フラッシュメモリ
3 メモリコントローラ
4 ホストシステム
5 外部バス
6 内部バス
7 ホストインタフェースブロック
8 フラッシュメモリインターフェースブロック
9 バッファ
12 指示情報保持手段
13 判別手段
14 制御手段
15 アドレス情報保持手段
R1 コマンドレジスタ
R2 セクタ数レジスタ
R3 LBAレジスタ
R11 物理ブロックアドレスレジスタ
R12 セクタ番号レジスタ
R13 カウンタ

Claims (5)

  1. ホストシステムから与えられる指示情報に基づいて、物理ブロック単位で記憶データの消去が行われるフラッシュメモリからのデータの読み出しを制御するメモリコントローラであって、
    前記ホストシステム側で管理されている論理アドレスが割り当てられているセクタ単位の領域を複数個集めた論理ブロックと前記物理ブロックとの対応関係を管理する記憶領域管理手段と、
    前記指示情報により示される前記論理アドレスの範囲に対応する1セクタ又は複数セクタの領域が属する前記論理ブロックに対応する前記物理ブロック内の記憶領域に対して、前記論理アドレスに対応する順番でのデータの読み出し処理を開始する読手段と、
    前記ホストシステムから与えられる前記指示情報を保持する指示情報保持手段と、
    前記ホストシステムから与えられる新たな前記指示情報により示される前記論理アドレスの範囲に対応する1セクタ又は複数セクタの領域が、前記指示情報保持手段により保持されている前回の前記指示情報により示される前記論理アドレスの範囲に対応する1セクタ又は複数セクタの領域前記論理アドレスが連続する領域であるか否かを判別する判別手段と、
    前記判別手段が、前記論理アドレスが連続する領域であると判断した場合には、前記読手段が実行中のデータの読み出し処理を続行させ、前記論理アドレスが連続する領域でないと判断した場合には、前記読手段が実行中のデータの読み出し処理を停止させる制御手段とを備え、
    前記読み出し手段は、前記論理ブロック内の末尾の前記論理アドレスに対応するデータの読み出し処理が終了した場合、前記末尾の前記論理アドレスの次の前記論理アドレスが割り当てられている領域が属する前記論理ブロックに対応する前記物理ブロック内の記憶領域に対して、前記論理アドレスに対応する順番でのデータの読み出し処理を続行することを特徴とするメモリコントローラ。
  2. ホストシステムから与えられる指示情報に基づいて、物理ブロック単位で記憶データの消去が行われるフラッシュメモリに対するデータの書き込みを制御するメモリコントローラであって、
    前記ホストシステム側で管理されている論理アドレスが割り当てられているセクタ単位の領域を複数個集めた論理ブロックと前記物理ブロックとの対応関係を管理する記憶領域管理手段と、
    前記指示情報により示される前記論理アドレスの範囲に対応する1セクタ又は複数セクタの領域が属する前記論理ブロックに対応する前記物理ブロック内の記憶領域に対して、前記論理アドレスに対応する順番でのデータの書き込み処理を開始する書き込み手段と、
    前記ホストシステムから与えられる前記指示情報を保持する指示情報保持手段と、
    前記ホストシステムから与えられる新たな前記指示情報により示される前記論理アドレスの範囲に対応する1セクタ又は複数セクタの領域が、前記指示情報保持手段により保持されている前回の前記指示情報により示される前記論理アドレスの範囲に対応する1セクタ又は複数セクタの領域と前記論理アドレスが連続する領域であるか否かを判別する判別手段と、
    前記判別手段が、前記論理アドレスが連続する領域であると判断した場合には、前記書き込み手段が実行中のデータの書き込み処理を続行させ、前記論理アドレスが連続する領域でないと判断した場合には、前記書き込み手段が実行中のデータの書き込み処理を停止させる制御手段とを備え、
    前記書き込み手段は、前記論理ブロック内の末尾の前記論理アドレスに対応するデータの書き込み処理が終了した場合、前記末尾の前記論理アドレスの次の前記論理アドレスが割り当てられている領域が属する前記論理ブロックに対応する前記物理ブロック内の記憶領域に対して、前記論理アドレスに対応する順番でのデータの書き込み処理を続行することを特徴とするメモリコントローラ。
  3. 請求項1又は2に記載のメモリコントローラと物理ブロック単位で記憶データの消去が行われるフラッシュメモリを備えることを特徴とするフラッシュメモリシステム。
  4. ホストシステムから与えられる指示情報に基づいて、物理ブロック単位で記憶データの消去が行われるフラッシュメモリからのデータの読み出しを制御するフラッシュメモリの制御方法であって、
    前記ホストシステム側で管理されている論理アドレスが割り当てられているセクタ単位の領域を複数個集めた論理ブロックと前記物理ブロックとの対応関係を管理する記憶領域管理ステップと、
    前記指示情報により示される前記論理アドレスの範囲に対応する1セクタ又は複数セクタの領域が属する前記論理ブロックに対応する前記物理ブロック内の記憶領域に対して、前記論理アドレスに対応する順番でのデータの読み出しを開始する読ステップと、
    前記ホストシステムから与えられる前記指示情報を保持する指示情報保持ステップと、
    前記ホストシステムから与えられる新たな前記指示情報により示される前記論理アドレスの範囲に対応する1セクタ又は複数セクタの領域が、前記指示情報保持ステップにより保持されている前回の前記指示情報により示される前記論理アドレスの範囲に対応する1セクタ又は複数セクタの領域前記論理アドレスが連続する領域であるか否かを判別する判別ステップと、
    前記判別ステップで、前記論理アドレスが連続する領域であると判断された場合には、前記読ステップで開始された読み出し処理を続行させ、前記論理アドレスが連続する領域でないと判断された場合には、前記読出書込ステップで開始された読み出し処理を停止させる制御ステップとを備え、
    前記読み出しステップで、前記論理ブロック内の末尾の前記論理アドレスに対応するデータの読み出し処理が終了した場合には、前記末尾の前記論理アドレスの次の前記論理アドレスが割り当てられている領域が属する前記論理ブロックに対応する前記物理ブロック内の記憶領域に対して、前記論理アドレスに対応する順番でのデータの読み出し処理が続行されることを特徴とするフラッシュメモリの制御方法。
  5. ホストシステムから与えられる指示情報に基づいて、物理ブロック単位で記憶データの消去が行われるフラッシュメモリに対するデータの書き込みを制御するフラッシュメモリの制御方法であって、
    前記ホストシステム側で管理されている論理アドレスが割り当てられているセクタ単位の領域を複数個集めた論理ブロックと前記物理ブロックとの対応関係を管理する記憶領域管理ステップと、
    前記指示情報により示される前記論理アドレスの範囲に対応する1セクタ又は複数セクタの領域が属する前記論理ブロックに対応する前記物理ブロック内の記憶領域に対して、前記論理アドレスに対応する順番でのデータの書き込みを開始する書き込みステップと、
    前記ホストシステムから与えられる前記指示情報を保持する指示情報保持ステップと、
    前記ホストシステムから与えられる新たな前記指示情報により示される前記論理アドレスの範囲に対応する1セクタ又は複数セクタの領域が、前記指示情報保持ステップにより保持されている前回の前記指示情報により示される前記論理アドレスの範囲に対応する1セクタ又は複数セクタの領域と前記論理アドレスが連続する領域であるか否かを判別する判別ステップと、
    前記判別ステップで、前記論理アドレスが連続する領域であると判断された場合には、前記書き込みステップで開始された書き込み処理を続行させ、前記論理アドレスが連続する領域でないと判断された場合には、前記読出書込ステップで開始された書き込み処理を停止させる制御ステップとを備え、
    前記書き込みステップで、前記論理ブロック内の末尾の前記論理アドレスに対応するデータの書き込み処理が終了した場合には、前記末尾の前記論理アドレスの次の前記論理アドレスが割り当てられている領域が属する前記論理ブロックに対応する前記物理ブロック内の記憶領域に対して、前記論理アドレスに対応する順番でのデータの書き込み処理が続行されることを特徴とするフラッシュメモリの制御方法。
JP2006181732A 2006-06-30 2006-06-30 メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法 Active JP4182993B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2006181732A JP4182993B2 (ja) 2006-06-30 2006-06-30 メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
US11/766,549 US20080016267A1 (en) 2006-06-30 2007-06-21 Memory controller, flash memory system having memory controller, and method for controlling flash memory

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006181732A JP4182993B2 (ja) 2006-06-30 2006-06-30 メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法

Publications (2)

Publication Number Publication Date
JP2008009874A JP2008009874A (ja) 2008-01-17
JP4182993B2 true JP4182993B2 (ja) 2008-11-19

Family

ID=38950577

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006181732A Active JP4182993B2 (ja) 2006-06-30 2006-06-30 メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法

Country Status (2)

Country Link
US (1) US20080016267A1 (ja)
JP (1) JP4182993B2 (ja)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7844867B1 (en) * 2007-12-19 2010-11-30 Netlogic Microsystems, Inc. Combined processor access and built in self test in hierarchical memory systems
US8332572B2 (en) * 2008-02-05 2012-12-11 Spansion Llc Wear leveling mechanism using a DRAM buffer
US8275945B2 (en) 2008-02-05 2012-09-25 Spansion Llc Mitigation of flash memory latency and bandwidth limitations via a write activity log and buffer
US8352671B2 (en) 2008-02-05 2013-01-08 Spansion Llc Partial allocate paging mechanism using a controller and a buffer
US8307180B2 (en) 2008-02-28 2012-11-06 Nokia Corporation Extended utilization area for a memory device
JP4729062B2 (ja) * 2008-03-07 2011-07-20 株式会社東芝 メモリシステム
KR101529290B1 (ko) * 2008-10-02 2015-06-17 삼성전자주식회사 반도체 디스크 장치 및 그것의 데이터 처리 방법
WO2010076600A1 (en) * 2008-12-30 2010-07-08 Poorna Kale Enhanced addressability for serial non-volatile memory
US8874824B2 (en) 2009-06-04 2014-10-28 Memory Technologies, LLC Apparatus and method to share host system RAM with mass storage memory RAM
JP2012068936A (ja) 2010-09-24 2012-04-05 Toshiba Corp メモリシステム
JP5887568B2 (ja) * 2011-06-23 2016-03-16 パナソニックIpマネジメント株式会社 メモリカードコントローラ、メモリカードアダプタおよびメモリカードドライブ
US9417998B2 (en) 2012-01-26 2016-08-16 Memory Technologies Llc Apparatus and method to provide cache move with non-volatile mass memory system
KR101888009B1 (ko) * 2012-02-28 2018-09-07 삼성전자주식회사 저장 장치
US9311226B2 (en) 2012-04-20 2016-04-12 Memory Technologies Llc Managing operational state data of a memory module using host memory in association with state change
CN103049395B (zh) * 2012-12-10 2015-12-23 记忆科技(深圳)有限公司 缓存存储设备数据的方法及其系统
US9158678B2 (en) * 2013-03-13 2015-10-13 Kabushiki Kaisha Toshiba Memory address management system and method
JP5816987B2 (ja) * 2013-03-19 2015-11-18 株式会社アクセル メモリ格納情報読出し方法及びメモリインターフェース
US9800225B2 (en) 2013-06-28 2017-10-24 River Eletec Corporation Elastic wave device
JP5839632B2 (ja) * 2014-10-15 2016-01-06 マイクロン テクノロジー, インク. シリアル不揮発性メモリに対する向上されたアドレス能力
KR102295223B1 (ko) 2015-01-13 2021-09-01 삼성전자주식회사 속도 모드 관리자를 포함하는 저장 장치 및 사용자 장치

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6728851B1 (en) * 1995-07-31 2004-04-27 Lexar Media, Inc. Increasing the memory performance of flash memory devices by writing sectors simultaneously to multiple flash memory devices
JP4079506B2 (ja) * 1997-08-08 2008-04-23 株式会社東芝 不揮発性半導体メモリシステムの制御方法
EP1103978B1 (en) * 1999-11-25 2009-01-28 STMicroelectronics S.r.l. Non-volatile memory device with burst mode reading and corresponding reading method
US7234040B2 (en) * 2002-01-24 2007-06-19 University Of Washington Program-directed cache prefetching for media processors
JP3913704B2 (ja) * 2003-04-22 2007-05-09 株式会社東芝 不揮発性半導体記憶装置及びこれを用いた電子装置
US6906961B2 (en) * 2003-06-24 2005-06-14 Micron Technology, Inc. Erase block data splitting
WO2005106673A1 (ja) * 2004-04-28 2005-11-10 Matsushita Electric Industrial Co., Ltd. 不揮発性記憶装置及びデータ書込み方法
US8756399B2 (en) * 2006-01-25 2014-06-17 Seagate Technology Llc Mutable association of a set of logical block addresses to a band of physical storage blocks
TW200805394A (en) * 2006-07-07 2008-01-16 Alcor Micro Corp Memory storage device and the read/write method thereof

Also Published As

Publication number Publication date
US20080016267A1 (en) 2008-01-17
JP2008009874A (ja) 2008-01-17

Similar Documents

Publication Publication Date Title
JP4182993B2 (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
US8131911B2 (en) Data writing method, and flash storage system and controller using the same
US8250286B2 (en) Block management method, and storage system and controller using the same
KR101086857B1 (ko) 데이터 머지를 수행하는 반도체 스토리지 시스템의 제어 방법
TWI385669B (zh) 用於快閃記憶體的平均磨損方法、儲存系統與控制器
TWI386802B (zh) 用於快閃記憶體的資料寫入方法及其控制電路與儲存系統
US8214578B2 (en) Method of storing data into flash memory according to usage patterns of addresses and data storage system using the same
US8296502B2 (en) Data management method for flash memory and storage system and controller using the same
US20100011154A1 (en) Data accessing method for flash memory and storage system and controller using the same
JP2006243780A (ja) メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
JP5093294B2 (ja) メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
US20090259796A1 (en) Data writing method for non-volatile memory and storage system and controller using the same
JP4267682B1 (ja) Nandフラッシュメモリのリフレッシュ方法
JP2010086009A (ja) 記憶装置およびメモリ制御方法
JP4661497B2 (ja) メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
JP4594944B2 (ja) メモリ制御装置
JP4661191B2 (ja) メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
JP2005115562A (ja) フラッシュrom制御装置
TWI417889B (zh) 快閃記憶體之寫入逾時控制方法及其記憶裝置
JP4177292B2 (ja) メモリンコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
JP4697146B2 (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
JP4177301B2 (ja) メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
JP3934659B1 (ja) メモリコントローラ及びフラッシュメモリシステム
JP4235595B2 (ja) メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム及びフラッシュメモリの制御方法
JP4254930B2 (ja) メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080304

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

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

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

Free format text: PAYMENT UNTIL: 20110912

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4182993

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

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20130912

Year of fee payment: 5