図面 (/)

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

出願人 TDK株式会社
発明者 向田直樹東明生
出願日 2006年10月31日 (15年2ヶ月経過) 出願番号 2006-295343
公開日 2008年5月15日 (13年7ヶ月経過) 公開番号 2008-112335
状態 特許登録済
技術分野 メモリシステム
主要キーワード 読み出しコントローラ 格納フラグ 内ブロック 論理ゾーン コピーバック処理 読出しステップ ホストシステム側 コンパニオンチップ
関連する未来課題
重要な関連分野

この項目の情報は公開日時点(2008年5月15日)のものです。
また、この項目は機械的に抽出しているため、正しく解析できていない場合があります

図面 (10)

課題

フラッシュメモリの1ページの容量が増加しても、処理時間とバッファの容量を増加させることなく、バッファを介した記憶データの移動処理を行うこと。

解決手段

同じ物理ゾーンに属する物理ブロック間で記憶データを移動させるときに、物理ゾーンに構成する第1の物理ブロックを含む第1のフラッシュメモリ内のデータレジスタからデータを読み出し、読み出されたデータをデータ蓄積手段に蓄積し、蓄積したデータを、第1の物理ブロックと同一の物理ゾーンに属する第2物理ブロックを含む第2のフラッシュメモリ内のデータレジスタに転送する。この処理で、第1のフラッシュメモリ内のデータレジスタからのデータの読み出しと、第2のフラッシュメモリ内のデータレジスタへのデータの転送を、交互に又は並行して行うことにより、データ蓄積手段に1ページ分のデータを蓄積せずに、第1の物理ブロックから第1の物理ブロックと異なるフラッシュメモリ内の物理ブロックである第2の物理ブロックにデータを移動させる。

概要

背景

近年、メモリカードシリコンディスク等といったメモリシステムにて使用される半導体メモリに、フラッシュメモリが広く採用されている。フラッシュメモリは、不揮発性メモリ一種である。フラッシュメモリに記憶されたデータは、電力が供給されていないときでも保持されていることが要求される。

NAND型フラッシュメモリは、上記のメモリシステムで特に多く用いられるフラッシュメモリの一種である。NAND型フラッシュメモリは、データレジスタメモリセルアレイとで構成され、データレジスタとメモリセルアレイとの間では、ページ単位でデータの書き込み又は読み出しが行われる。メモリセルアレイを構成するメモリセルは、2つのゲートを備えたMOSトランジスタによって構成され、一方のゲートはコントロールゲート、他方のゲートはフローティングゲートとそれぞれ呼ばれている。このフローティングゲートに電荷電子)を注入若しくはフローティングゲートから電荷(電子)を排出することによって、データの書き込み若しくはデータの消去が行われる。また、メモリセルを消去状態に対応する論理値「1」から書込状態に対応する論理値「0」に変更させる場合は、メモリセル単位で変更させることができるが、書き込み状態から消去状態に変更させる場合は、ブロック(例えば、64ページのデータ領域)単位でしか変更させることができない。以下、NAND型フラッシュメモリにおける消去処理の単位であるブロックを物理ブロックと言う。

したがって、物理ブロック内の複数のページに記憶されているデータの一部を書き換える場合には、データが書き込まれていない空きブロック(総てのメモリセルが消去状態にある消去済ブロック)を1つ選択し、この空きブロックに書き換え後のデータを書き込むと共に、書き換え前のデータと同一ブロックに記憶されている書き換え対象でないデータをこの空きブロックにコピーしなければならない。このデータ移動処理は、フラッシュメモリからデータを読み出してメモリコントローラ内のバッファ蓄積し、コントローラ内のバッファに蓄積したデータをフラッシュメモリに書き込む処理(以下、データ転送処理という)または、フラッシュメモリ内でのデータのコピーであるコピーバック処理(メモリセルアレイからデータレジスタに読み出したデータを別のメモリセルアレイに書き込む処理)によって行われる。

また、NAND型フラッシュメモリは、オーバプログラム又はディスターブ現象により、記憶されているデータに誤りが生じる場合がある。このため、特許文献1では、ユーザ領域に記憶されているデータに対応する誤り訂正符号同一ページ冗長領域に記憶させておき、データの読み出しの際に、該データに対応する誤り訂正符号に基づき、読み出したデータに含まれる誤りを検出、訂正すると共に、誤りが訂正されたデータを空きブロックに書き込んでいる。つまり、この訂正処理では、読み出したデータをメモリコントローラ内のバッファに蓄積し、誤りを訂正した後、空きブロックに転送している。

[データ転送処理の説明]
図9は、データ転送処理の概要を示す図である。データ転送処理は、メモリコントローラ内のバッファを介したデータ移動処理であり、以下のステップを繰り返すことで行われる。
(S91)メモリコントローラから与えられた情報に基づいて、転送元のページのメモリセルが選択され、選択されたメモリセルからデータレジスタにデータが複写される。
(S92)データレジスタから1ページ分のデータが順次読み出され、コントローラ内のバッファに蓄積される。
(S93)コントローラ内のバッファに蓄積された1ページ分のデータが、データレジスタに転送される。
(S94)S93の転送の際にメモリコントローラから与えられた情報に基づいて、転送先のページのメモリセルが選択され、選択されたメモリセルにデータレジスタのデータが複写される。このようにして、1ページ単位でデータ転送を行っている。

一方、1ページが複数セクタ(1セクタは512バイト)の領域で構成されている場合、1ページ単位ではないデータ転送の方法も知られている。この方法では、例えば1ページ分のデータをメモリセルからデータレジスタに複写し、このデータレジスタに保持されているデータを1セクタ単位で読み出しメモリコントローラ内のバッファに蓄積する。バッファに蓄積された1セクタのデータをデータレジスタに転送し、データレジスタからメモリセルに複写する。この処理を、1ページに含まれるセクタ数分繰り返すことにより、1ページ分のデータ転送処理が終了する。この場合、バッファに蓄積されるデータは1セクタ単位であるため、バッファの容量が少なく済むという利点を有している。しかしながら、このデータ転送の方法では、読み出しと書き込みのときに同一のデータレジスタがアクセスされ、データレジスタにデータを転送するときには、データレジスタに保持されていたデータはクリアされるため、読み出しのときに毎回メモリセルからデータレジスタへの複写を行わなければならない。従って、このデータ転送の方法では、フラッシュメモリ内のメモリセルとデータレジスタとの複写処理回数が増加し、データ転送処理の処理時間が長くなってしまう。

特開2004−272476号公報

概要

フラッシュメモリの1ページの容量が増加しても、処理時間とバッファの容量を増加させることなく、バッファを介した記憶データの移動処理を行うこと。同じ物理ゾーンに属する物理ブロック間で記憶データを移動させるときに、物理ゾーンに構成する第1の物理ブロックを含む第1のフラッシュメモリ内のデータレジスタからデータを読み出し、読み出されたデータをデータ蓄積手段に蓄積し、蓄積したデータを、第1の物理ブロックと同一の物理ゾーンに属する第2物理ブロックを含む第2のフラッシュメモリ内のデータレジスタに転送する。この処理で、第1のフラッシュメモリ内のデータレジスタからのデータの読み出しと、第2のフラッシュメモリ内のデータレジスタへのデータの転送を、交互に又は並行して行うことにより、データ蓄積手段に1ページ分のデータを蓄積せずに、第1の物理ブロックから第1の物理ブロックと異なるフラッシュメモリ内の物理ブロックである第2の物理ブロックにデータを移動させる。

目的

したがって、本発明は、データ転送処理の処理時間とバッファの容量を増加させることなく、データ転送処理を行うことが可能なメモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法を提供することを目的とする。

効果

実績

技術文献被引用数
0件
牽制数
0件

この技術が所属する分野

ライセンス契約や譲渡などの可能性がある特許掲載中! 開放特許随時追加・更新中 詳しくはこちら

請求項1

複数個フラッシュメモリ内の物理ブロックで構成された物理ゾーンに対するアクセスを制御するメモリコントローラであって、前記物理ゾーンに属する第1の物理ブロックを含む第1のフラッシュメモリ内のデータレジスタからデータを読み出す読出し手段と、前記読出し手段によって読み出されたデータを蓄積する蓄積手段と、前記蓄積手段に蓄積されたデータを、前記第1の物理ブロックと同一の前記物理ゾーンに属する第2物理ブロックを含む第2のフラッシュメモリ内のデータレジスタに転送する転送手段と、前記第1の物理ブロックと前記第2の物理ブロックが異なるフラッシュメモリに含まれるように前記第2の物理ブロックを選択する選択手段とを備え前記読出し手段による読み出しと前記転送手段による転送を、交互に又は並行して行うことにより、前記蓄積手段に1ページ分のデータを蓄積せずに前記第1の物理ブロックから前記第2の物理ブロックにデータを移動させることを特徴とするメモリコントローラ。

請求項2

前記選択手段が、前記物理ゾーンに属する空きブロックをフラッシュメモリ毎に検索することのできる空きブロック検索手段を備えることを特徴とする請求項1に記載のメモリコントローラ。

請求項3

請求項1から2のいずれか1項に記載のメモリコントローラと複数個のフラッシュメモリを備えることを特徴とするフラッシュメモリシステム

請求項4

複数個のフラッシュメモリ内の物理ブロックで構成された物理ゾーンに対するアクセスを制御するフラッシュメモリの制御方法であって、前記物理ゾーンに属する第1の物理ブロックを含む第1のフラッシュメモリ内のデータレジスタからデータを読み出す読出しステップと、前記読出しステップで読み出されたデータを蓄積する蓄積ステップと、前記蓄積ステップで蓄積されたデータを、前記第1の物理ブロックと同一の前記物理ゾーンに属する第2物理ブロックを含む第2のフラッシュメモリ内のデータレジスタに転送する転送ステップとを有し、前記読出しステップによる読み出しと前記転送ステップによる転送を、交互に又は並行して行うことにより、前記蓄積ステップで1ページ分のデータを蓄積せずに前記第1の物理ブロックから該第1の物理ブロックと異なるフラッシュメモリ内の前記第2の物理ブロックにデータを移動させることを特徴とするフラッシュメモリの制御方法。

技術分野

0001

本発明は、メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリ制御方法に関する。

背景技術

0002

近年、メモリカードシリコンディスク等といったメモリシステムにて使用される半導体メモリに、フラッシュメモリが広く採用されている。フラッシュメモリは、不揮発性メモリ一種である。フラッシュメモリに記憶されたデータは、電力が供給されていないときでも保持されていることが要求される。

0003

NAND型フラッシュメモリは、上記のメモリシステムで特に多く用いられるフラッシュメモリの一種である。NAND型フラッシュメモリは、データレジスタメモリセルアレイとで構成され、データレジスタとメモリセルアレイとの間では、ページ単位でデータの書き込み又は読み出しが行われる。メモリセルアレイを構成するメモリセルは、2つのゲートを備えたMOSトランジスタによって構成され、一方のゲートはコントロールゲート、他方のゲートはフローティングゲートとそれぞれ呼ばれている。このフローティングゲートに電荷電子)を注入若しくはフローティングゲートから電荷(電子)を排出することによって、データの書き込み若しくはデータの消去が行われる。また、メモリセルを消去状態に対応する論理値「1」から書込状態に対応する論理値「0」に変更させる場合は、メモリセル単位で変更させることができるが、書き込み状態から消去状態に変更させる場合は、ブロック(例えば、64ページのデータ領域)単位でしか変更させることができない。以下、NAND型フラッシュメモリにおける消去処理の単位であるブロックを物理ブロックと言う。

0004

したがって、物理ブロック内の複数のページに記憶されているデータの一部を書き換える場合には、データが書き込まれていない空きブロック(総てのメモリセルが消去状態にある消去済ブロック)を1つ選択し、この空きブロックに書き換え後のデータを書き込むと共に、書き換え前のデータと同一ブロックに記憶されている書き換え対象でないデータをこの空きブロックにコピーしなければならない。このデータ移動処理は、フラッシュメモリからデータを読み出してメモリコントローラ内のバッファ蓄積し、コントローラ内のバッファに蓄積したデータをフラッシュメモリに書き込む処理(以下、データ転送処理という)または、フラッシュメモリ内でのデータのコピーであるコピーバック処理(メモリセルアレイからデータレジスタに読み出したデータを別のメモリセルアレイに書き込む処理)によって行われる。

0005

また、NAND型フラッシュメモリは、オーバプログラム又はディスターブ現象により、記憶されているデータに誤りが生じる場合がある。このため、特許文献1では、ユーザ領域に記憶されているデータに対応する誤り訂正符号同一ページ冗長領域に記憶させておき、データの読み出しの際に、該データに対応する誤り訂正符号に基づき、読み出したデータに含まれる誤りを検出、訂正すると共に、誤りが訂正されたデータを空きブロックに書き込んでいる。つまり、この訂正処理では、読み出したデータをメモリコントローラ内のバッファに蓄積し、誤りを訂正した後、空きブロックに転送している。

0006

[データ転送処理の説明]
図9は、データ転送処理の概要を示す図である。データ転送処理は、メモリコントローラ内のバッファを介したデータ移動処理であり、以下のステップを繰り返すことで行われる。
(S91)メモリコントローラから与えられた情報に基づいて、転送元のページのメモリセルが選択され、選択されたメモリセルからデータレジスタにデータが複写される。
(S92)データレジスタから1ページ分のデータが順次読み出され、コントローラ内のバッファに蓄積される。
(S93)コントローラ内のバッファに蓄積された1ページ分のデータが、データレジスタに転送される。
(S94)S93の転送の際にメモリコントローラから与えられた情報に基づいて、転送先のページのメモリセルが選択され、選択されたメモリセルにデータレジスタのデータが複写される。このようにして、1ページ単位でデータ転送を行っている。

0007

一方、1ページが複数セクタ(1セクタは512バイト)の領域で構成されている場合、1ページ単位ではないデータ転送の方法も知られている。この方法では、例えば1ページ分のデータをメモリセルからデータレジスタに複写し、このデータレジスタに保持されているデータを1セクタ単位で読み出しメモリコントローラ内のバッファに蓄積する。バッファに蓄積された1セクタのデータをデータレジスタに転送し、データレジスタからメモリセルに複写する。この処理を、1ページに含まれるセクタ数分繰り返すことにより、1ページ分のデータ転送処理が終了する。この場合、バッファに蓄積されるデータは1セクタ単位であるため、バッファの容量が少なく済むという利点を有している。しかしながら、このデータ転送の方法では、読み出しと書き込みのときに同一のデータレジスタがアクセスされ、データレジスタにデータを転送するときには、データレジスタに保持されていたデータはクリアされるため、読み出しのときに毎回メモリセルからデータレジスタへの複写を行わなければならない。従って、このデータ転送の方法では、フラッシュメモリ内のメモリセルとデータレジスタとの複写処理回数が増加し、データ転送処理の処理時間が長くなってしまう。

0008

特開2004−272476号公報

発明が解決しようとする課題

0009

フラッシュメモリに記憶されているデータの移動は、データ転送処理とコピーバック処理のいずれの処理方法でも行うことができるが、コピーバック処理では、移動の際にデータに含まれる誤りを訂正することができない。従って、移動の際にデータに含まれる誤りを訂正するときには、コピーバック処理より処理時間の長いデータ転送処理を行わなければならない。

0010

又、フラッシュメモリの容量が増加するに従い、1ページの容量が増加している。例えば小ブロック構成では、1ページが512(ユーザ領域)+16(冗長領域)バイトであったのが、大ブロック構成では、1ページが2048(ユーザ領域)+64(冗長領域)バイトと4倍に増加した。さらに、1ページが4096(ユーザ領域)+128バイト(冗長領域)であるフラッシュメモリの出荷が予告されている。従って、1ページ分のデータをメモリコントローラ内のバッファに蓄積するデータ転送処理を行うためには、バッファの容量を増加させなければならない。一方、1セクタ単位の転送を繰返すデータ転送処理では処理時間が長くなってしまう。

0011

したがって、本発明は、データ転送処理の処理時間とバッファの容量を増加させることなく、データ転送処理を行うことが可能なメモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法を提供することを目的とする。

課題を解決するための手段

0012

上記目的を達成するために、本発明によるメモリコントローラは、複数個のフラッシュメモリ内の物理ブロックで構成された物理ゾーンに対するアクセスを制御するメモリコントローラであって、前記物理ゾーンに属する第1の物理ブロックを含む第1のフラッシュメモリ内のデータレジスタからデータを読み出す読出し手段と、前記読出し手段によって読み出されたデータを蓄積する蓄積手段と、前記蓄積手段に蓄積されたデータを、前記第1の物理ブロックと同一の前記物理ゾーンに属する第2物理ブロックを含む第2のフラッシュメモリ内のデータレジスタに転送する転送手段と、前記第1の物理ブロックと前記第2の物理ブロックが異なるフラッシュメモリに含まれるように前記第2の物理ブロックを選択する選択手段とを備え、前記読出し手段による読み出しと前記転送手段による転送を、交互に又は並行して行うことにより、前記蓄積手段に1ページ分のデータを蓄積せずに前記第1の物理ブロックから前記第2の物理ブロックにデータを移動させることを特徴とする。

0013

又、前記選択手段は、前記物理ゾーンに属する空きブロックをフラッシュメモリ毎に検索することのできる空きブロック検索手段を備えていることが好ましい。

0014

上記目的を達成するために、本発明によるフラッシュメモリシステムは、前記メモリコントローラのいずれか1つと複数チップのフラッシュメモリを備えている。

0015

上記目的を達成するために、本発明によるフラッシュメモリの制御方法は、複数個のフラッシュメモリ内の物理ブロックで構成された物理ゾーンに対するアクセスを制御するフラッシュメモリの制御方法であって、前記物理ゾーンに属する第1の物理ブロックを含む第1のフラッシュメモリ内のデータレジスタからデータを読み出す読出しステップと、前記読出しステップで読み出されたデータを蓄積する蓄積ステップと、前記蓄積ステップで蓄積されたデータを、前記第1の物理ブロックと同一の前記物理ゾーンに属する第2物理ブロックを含む第2のフラッシュメモリ内のデータレジスタに転送する転送ステップとを有し、前記読出しステップによる読み出しと前記転送ステップによる転送を、交互に又は並行して行うことにより、前記蓄積ステップで1ページ分のデータを蓄積せずに前記第1の物理ブロックから該第1の物理ブロックと異なるフラッシュメモリ内の前記第2の物理ブロックにデータを移動させることを特徴とする。

発明の効果

0016

本発明によれば、複数個(複数チップ)のフラッシュメモリ内の物理ブロックでゾーンを構成し、このゾーンに含まれる物理ブロック間で記憶データを移動させるときに、移動元の物理ブロックと移動先の物理ブロックが異なるフラッシュメモリ(異なるチップのフラッシュメモリ)になるようにしたので、メモリコントローラ内に1ページ分の記憶データを蓄積できるようなバッファを設けずに、かつデータレジスタとメモリセルとの間での複写の回数を増加させずに、メモリコントローラ内のバッファを介した記憶データの移動を行うことができる。

発明を実施するための最良の形態

0017

以下、図面に基づき、本発明の実施形態について詳細に説明する。

0018

[フラッシュメモリシステム1の説明]
図1は、フラッシュメモリシステム1を概略的に示すブロック図である。図1に示したようにフラッシュメモリシステム1は、フラッシュメモリ2と、それを制御するメモリコントローラ3とで構成されている。

0019

なお、フラッシュメモリシステム1は、外部バス13を介してホストシステム4と接続される。ホストシステム4は、ホストシステム4の全体の動作を制御するためのCPU(Central Processing Unit)、フラッシュメモリシステム1との情報の授受を担うコンパニオンチップ等から構成される。ホストシステム4は、例えば、文字音声、あるいは画像情報等の種々の情報を処理するパーソナルコンピュータデジタルスチルカメラをはじめとする各種情報処理装置であってもよい。

0020

[フラッシュメモリ2の説明]
図2は、NAND型フラッシュメモリのブロック(以下、フラッシュメモリ内のブロックを物理ブロックと言う。)とページの関係を示す説明図である。物理ブロックとページの構成は、フラッシュメモリの仕様によって異なるが、一般的なフラッシュメモリとしては、小ブロック構成のフラッシュメモリと、大ブロック構成のフラッシュメモリとがある。小ブロック構成では、図2(a)に示したように、1ブロックが32ページ(P0〜P31)で構成され、各ページが512バイトのユーザ領域と16バイトの冗長領域で構成されている。また、大ブロック構成では、図2(b)に示したように、1ブロックが64ページ(P0〜P63)で構成され、各ページが2048バイトのユーザ領域と64バイトの冗長領域で構成されている。尚、本実施形態のでは、フラッシュメモリ2が大ブロック構成であるものとして説明する。

0021

大ブロック構成の場合、各ページのユーザ領域には4セクタ(1セクタは、512バイト)分のデータが記憶されるため、1セクタ分の領域をサブページとすれば、各ページは4個のサブページで構成され、各物理ブロックは256個のサブページで構成されている。一方、小ブロック構成の場合、各ページのユーザ領域には1セクタ分のデータが記憶されるため、サブページはページと同じになり、各物理ブロックは32個のサブページで構成されている。

0022

ここで、ユーザ領域は、主に、ホストシステム4から供給されるデータが記憶される領域であり、冗長領域は、誤り訂正符号、論理アドレス情報及びブロックステータス等の付加データが記憶される領域である。誤り訂正符号は、ユーザ領域に記憶されているデータに含まれる誤りを検出、訂正するための付加データであり、後述するECCブロック11によって生成される。

0023

論理アドレス情報は、物理ブロックにデータが記憶されている場合に書き込まれ、その物理ブロックに記憶されているデータの論理アドレスに関する情報を示している。なお、物理ブロックにデータが記憶されていない場合は、論理アドレス情報が書き込まれないので、論理アドレス情報が書き込まれているか否かで、そのブロックが空きブロック(消去済ブロック)であるか否かを判断することができる。つまり、論理アドレス情報が書き込まれていない場合は、空きブロック(消去済ブロック)であると判断される。

0024

ブロックステータスは、その物理ブロックが不良ブロック(正常にデータの書き込み等を行うことができない物理ブロック)であるか否かを示すフラグであり、その物理ブロックが不良ブロックであると判断された場合には、不良ブロックであることを示すフラグが設定される。

0025

[コントローラ3の説明]
コントローラ3は、図1に示すように、マイクロプロセッサ6と、ホストインターフェースブロック7と、ワークエリア8と、バッファ9と、フラッシュメモリインターフェースブロック10と、ECCブロック11と、ROM(Read Only Memory)12と、から構成される。これら機能ブロックによって構成されるコントローラ3は、一つの半導体チップ上に集積される。以下に各機能ブロックについて説明する。

0026

マイクロプロセッサ6は、ROM12に記憶されているプログラムに従って、コントローラ3の全体の動作を制御する。

0027

ホストインターフェースブロック7は、ホストシステム4との間で、データ、アドレス情報ステータス情報外部コマンド(ホストシステム4からフラッシュメモリシステム3に与えられるコマンド)等の授受を行う。ホストシステム4よりフラッシュメモリシステム1に供給されるデータ等は、ホストインターフェースブロック7を入口としてフラッシュメモリシステム1の内部(例えば、バッファ9)に取り込まれる。また、フラッシュメモリシステム1からホストシステム4に供給されるデータ等は、ホストインターフェースブロック7を出口としてホストシステム4に供給される。

0028

ワークエリア8は、フラッシュメモリ2の制御に必要なデータが一時的に格納される作業領域であり、複数のSRAM(Static Random Access Memory)セルによって構成される。

0029

バッファ9は、フラッシュメモリ2から読み出されたデータ及びフラッシュメモリ2に書き込むべきデータを一時的に蓄積する。すなわち、フラッシュメモリ2から読み出されたデータは、ホストシステム4が受け取り可能な状態となるまでバッファ9に保持され、フラッシュメモリ2に書き込むべきデータは、フラッシュメモリ2が書き込み可能な状態となるまでバッファ9に保持される。

0030

フラッシュメモリインターフェースブロック10は、バッファ9からフラッシュメモリ2への書き込み処理やフラッシュメモリ2からバッファ9への読み出し処理を制御するブロックである。書き込み処理や読み出し処理を実行するときの一連制御動作は、ROM12に記憶されている一連の制御動作を指示する情報に基づいて実行される。

0031

ECCブロック11は、フラッシュメモリ2に書き込むデータに付加される誤り訂正符号(ECC:Error Correcting Code)を生成するとともに、フラッシュメモリ2から読み出したデータに付加された誤り訂正符号(ECC)に基づいて、読み出したデータに含まれる誤りを検出・訂正する。

0032

ROM12は、マイクロプロセッサ6によって実行される処理の手順を定義するプログラム等を格納する不揮発性記憶素子である。具体的には、ROM12は、例えば、以下で説明するアドレス変換テーブルの作成等の処理手順を定義するプログラムを格納する。

0033

[ゾーンの構成の説明]
フラッシュメモリの記憶容量の大容量化が進んでいることにより、大容量化したフラッシュメモリの記憶領域を円滑に管理するため、この記憶領域を複数のゾーンに分割して管理する手法が用いられている。

0034

図3は、ホストシステム側アドレス空間とフラッシュメモリのアドレス空間を概略的に示す図である。本図を用いて、まず、従来のゾーンの構成について具体的に説明する。ホストシステム側のアドレス空間は、図3(a)に示したようにセクタ(512バイト)単位で分割した領域に付けた通番であるLBA(Logical Block Address)で管理されている。このセクタを複数個まとめたものを論理ブロックと呼び、論理ブロックを複数個まとめたものを論理ゾーンと呼んでいる。また、図3(b)に示したように論理ブロックに付けられた通番を論理ブロック番号(LBN)と呼び、論理ゾーンに付けられた通番を論理ゾーン番号(LZN)と呼んでいる。また、各論理ゾーンに含まれた論理ブロックの各論理ゾーン内での通番を論理ゾーン内ブロック番号(LZIBN)と呼んでいる。一方、図3(c)に示したように、物理ブロックには、それぞれ固有物理ブロックアドレス(PBA)が割り当てられている。さらに、複数個の物理ブロックで物理ゾーンを構成し、各物理ゾーンに物理ゾーン番号(PZN)を割り当てている。各物理ゾーンに含まれる物理ブロックの各物理ゾーン内での通番を物理ゾーン内ブロック番号(PZIBN)と呼んでいる。

0035

また、各論理ゾーンにはそれぞれ1個の物理ゾーンが割り当てられ、論理ゾーンに含まれる各論理ブロックに対応するデータは、その論理ゾーンに割り当てられた物理ゾーンに含まれる物理ブロックに書き込まれる。したがって、1個の論理ブロックに含まれるセクタ数は、1個の物理ブロックに含まれるセクタ領域個数に応じて設定される。

0036

図3に示した例では、1個の物理ブロックが256個のサブページで構成されたフラッシュメモリを想定しているため、256セクタが1個の論理ブロックに対応している。したがって、LBN#0〜#999の1000個の論理ブロックで構成されたLZN#0の論理ゾーンは、LBA#0〜#255999の256000セクタの領域に対応している。以下同様に、LZN#1の論理ゾーンは、LBA#256000〜#511999の256000セクタの領域に対応し、LZN#2の論理ゾーンは、LBA#512000〜#767999の256000セクタの領域に対応し、LZN#3の論理ゾーンは、LBA#768000〜#1023999の256000セクタの領域に対応している。

0037

また、LBN#0〜#999の1000個の論理ブロックで構成されたLZN#0の論理ゾーンは、PBA#0〜#1023の1024個の物理ブロックで構成されたPZN#0の物理ゾーンに割り当てられている。以下同様に、LZN#1の論理ゾーンは、PZN#1の物理ゾーンに割り当てられ、LZN#2の論理ゾーンは、PZN#2の物理ゾーンに割り当てられ、LZN#3の論理ゾーンは、PZN#3の物理ゾーンに割り当てられている。ここで、物理ゾーンに含まれる物理ブロックの個数を、論理ゾーンに含まれる論理ブロックの個数より多くしているのは、同一の論理ブロックに対応する新データ旧データが別々の物理ブロックに並存する場合や、データを正常に書き込むことができない不良ブロックが発生した場合等を考慮したものである。

0038

従来は、上述のように同一のフラッシュメモリ(同一のチップ)内の物理ブロックで上記物理ゾーンを構成していたが、本発明に係るフラッシュメモリシステム1では、複数個のフラッシュメモリ2(複数チップ)内の物理ブロックで上記物理ゾーンを構成している。この物理ゾーンの構成を、図4に示した例を参照して説明する。図4は、2チップのフラッシュメモリ2内の物理ブロックで物理ゾーンを構成した例である。図4では、チップ0内の512個の物理ブロックとチップ1内の512個の物理ブロックで各物理ゾーンを構成している。ここで、チップ0内の物理ブロックアドレス(PBA)の先頭から512個の物理ブロックと、チップ1の内の物理ブロックアドレス(PBA)の先頭から512個の物理ブロックを、LZN#0の物理ゾーンに割り当てている。それ以降の物理ゾーン(LZN#1〜#Nの物理ゾーン)についても、各チップ内の物理ブロックアドレスの順番で、各チップ内の物理ブロックを512個ずつ各物理ゾーンに順次割り当てている。

0039

本発明に係るフラッシュメモリシステム1では、上述のような物理ゾーンに対して後述するアドレス変換テーブルと空きブロック検索用テーブルを作成している。図5は、物理ゾーン毎に作成されるアドレス変換テーブル21と空きブロック検索用テーブル22、23の関係を示している。図5に示したようにアドレス変換テーブル21は、各物理ゾーンに対して1テーブル作成され、空きブロック検索用テーブル22、23は、物理ゾーンを構成する物理ブロックが属するチップ毎に作成される。つまり、各物理ゾーンがチップ0内の物理ブロックとチップ1内の物理ブロックで構成されている場合、各物理ゾーンに対してチップ0用の空きブロック検索用テーブル22と、チップ1用の空きブロック検索用テーブル23が作成される。

0040

[論理アドレスと物理アドレスの説明]
データの書き換えを行うときは、書き換え後のデータは書き換え前のデータが記憶されている物理ブロックと異なる物理ブロックに書き込まれる。また、誤り訂正したデータの再書き込みを行うときは、誤りを訂正した後のデータは誤りを訂正する前のデータが記憶されている物理ブロックと異なる物理ブロックに書き込まれる。このような処理が行われる毎に、ホストシステム4側から供給される論理アドレスとフラッシュメモリ2内の物理アドレスとの対応関係は動的に変化する。このため、論理アドレスと物理アドレスの対応関係を示したアドレス変換テーブルが必要となる。尚、このアドレス変換テーブルは、フラッシュメモリ2の冗長領域に書き込まれている論理アドレス情報に基づいて作成され、作成後は、論理アドレスと物理アドレスとの対応関係が変化する毎に、その変化した部分について対応関係が更新される。

0041

[アドレス変換テーブルの説明]
次に、上記アドレス変換テーブルについて、図面を参照して説明する。尚、本実施形態では、LZN#0の論理ゾーンとPZN#0の物理ゾーン、LZN#1の論理ゾーンとPZN#1の物理ゾーン、以下同様にLZN#Nの論理ゾーンとPZN#Nの物理ゾーンがそれぞれ対応するように論理ゾーンと物理ゾーンとの対応関係が予め設定されている。
図6は、対応関係にある1組の論理ゾーンと物理ゾーンのアドレス変換テーブルの一例を示したものであり、論理ゾーンに含まれるLZIBN#0〜#999の各論理ブロックに対応するデータが格納されている物理ブロックを、チップ番号チップ別のPZIBN(#0〜#511)で示している。尚、PZIBNは各物理ゾーンに含まれる物理ブロックの各物理ゾーン内での通番であるが、チップ別のPZIBNは、各物理ゾーン内でのチップ別の通番を意味している。従って、図4に示した物理ゾーンの構成では、各物理ゾーンに含まれるチップ0内の512個の物理ブロックにチップ別のPZIBNとして#0〜#511が割り当てられ、各物理ゾーンに含まれるチップ1内の512個の物理ブロックにチップ別のPZIBNとして#0〜#511が割り当てられる。

0042

本実施形態では、論理ゾーンと物理ゾーンとの対応関係が予め設定されているので、論理ゾーンのLZNが分かれば対応関係にある物理ゾーンのPZNを求めることができる。又、このPZNの値に基づいて、PZIBNをPBAに変換することができる。PZIBNをPBAに変換するときには、PZIBNにPZNに応じたオフセット加算される。例えば、図4に示した物理ゾーンの構成でPZIBNをPBAに変換する場合、物理ゾーンのPZNが#1であれば512が、物理ゾーンのPZNが#2であれば1024が、オフセットとして加算される。

0043

図4に示した物理ゾーンの構成では、各物理ゾーンを構成するチップ0内の物理ブロックのチップ別のPZIBNの範囲と、チップ1内の物理ブロックのチップ別のPZIBNの範囲が同一になるが、アドレス変換テーブルにチップの番号が記述されているため、各論理ブロックに対応するデータの格納先一意的に特定される。また、対応するデータが格納されていない論理ブロックについては、アドレス変換テーブルのその論理ブロックに対応した部分に、チップの番号やPZIBNではなく、対応するデータが格納されていないことを示すフラグ(以下、対応するデータが格納されていないことを示すフラグを未格納フラグと言う)が設定される。

0044

尚、チップ0のフラッシュメモリ内の物理ブロックにPZIBN#0〜#511を割り当て、チップ1のフラッシュメモリ内の物理ブロックにPZIBN#512〜#1023を割り当てるようにすれば、アドレス変換テーブルにチップ番号を記述する必要がなくなる。又、チップ1のフラッシュメモリ内の物理ブロックにPZIBN#512〜#1023を割り当てた場合に、このPZIBN#512〜#1023をチップ1内のPBAに変換するときは、PZIBNから512を減算した後にオフセットを加算すればよい。

0045

このアドレス変換テーブルを作成する場合、例えば、1000ブロック分のチップ番号とチップ別のPZIBNを記述できる領域をワークエリア8上に確保し、そのチップ番号とチップ別のPZIBNを記述する領域のいずれか、または双方に初期設定として未格納フラグを設定する。その後、アドレス変換テーブルを作成する物理ゾーンに割り当てられているチップ0内の物理ブロック(冗長領域)を順次読出していき、冗長領域に論理アドレス情報としてLZIBNが記述されていた場合には、アドレス変換テーブルのそのLZIBNに対応した部分に、そのLZIBNが記述されていた物理ブロックのチップ別のPZIBNを記述する。この際、チップ別のPZIBNと共にチップの番号も記述する。また、チップ1についても同様の処理を行い、アドレス変換テーブルを作成する物理ゾーンに割り当てられているチップ0内の512ブロックとチップ1内の512ブロックについて、この処理が完了するとアドレス変換テーブルが完成する。なお、このアドレス変換テーブルの作成処理でチップ別のPZIBNとチップの番号が記述されなかった部分については、初期設定で記述された未格納フラグがそのまま残る。尚、アドレス変換テーブルにチップ番号を記述しない場合、例えば、チップ0のフラッシュメモリ内の物理ブロックにPZIBN#0〜#511を割り当て、チップ1のフラッシュメモリ内の物理ブロックにPZIBN#512〜#1023を割り当てる場合は、チップ1内の物理ブロックのPZIBNをアドレス変換テーブルに記述する際に、各物理ゾーンに含まれる物理ブロックのチップ別の通番(#0〜#511)に512を加算すればよい。

0046

[空きブロック検索用テーブルの説明]
次に、空きブロック検索用テーブルについて、図面を参照して説明する。図7は、この空きブロック検索用テーブルの例を示した図である。空きブロック検索用テーブルは、チップ0用のテーブルとチップ1用のテーブルがある。なお、物理ゾーンを構成するチップ0内の512ブロックに対する空きブロック検索用テーブルと、チップ1内の512ブロックにする空きブロック検索用テーブルの構成は同じなので、チップ0内の512ブロックに対する空きブロック検索用テーブルについて説明する。

0047

この空きブロック検索用テーブルを作成するときは、物理ゾーンを構成するチップ0内の512ブロックに対応する512ビットの領域、空きブロック数を記述する領域および検索終了位置を記述する領域をワークエリア8に確保する。512ブロックに対応する512ビットの領域については、上の行から順番にPZIBN#0〜#7、PZIBN#8〜#15という順番で物理ブロックが割り当てられている。又、各行に含まれるビットついては下位側(右側)から上位側(左側)にPZIBNの順番(PZIBNが若い方が下位側になる順番)で物理ブロックが割り当てられている。従って、一番上の行の最下位ビットがPZIBN#0に対応し、一番下の行の最上位ビットがPZIBN#511に対応している。

0048

次に、チップ0内の物理ブロック(冗長領域)を順次読出していき、冗長領域に論理アドレス情報としてLZIBNが記述されていた場合、又はブロックステータスとして不良ブロックを示すフラグが設定されていた場合は、その物理ブロックに対応するビットに「0」を設定する。一方、ブロックステータスとして不良ブロックを示すフラグが設定されておらず、かつ冗長領域に論理アドレス情報が記述されていない場合は、その物理ブロックに対応するビットに「1」を設定する。
尚、空きブロック数を記述する領域には、空きブロック検索用テーブルの作成を開始するときに「0」を設定しておき、物理ブロックに対応するビットに「1」設定したときは、その値をインクリメントする。又、検索終了位置を記述する領域には、予め設定されている値、又は、乱数発生器等で取得した値を設定する。

0049

この空きブロック検索用テーブルは、アドレス変換テーブルを作成する際に一緒に作成することが好ましい。また、作成後に、空きブロックにデータを書き込んだ場合は、その物理ブロックに対応するビットを「1」から「0」に書き換え、空きブロック数をデクリメントし、データが書き込まれている物理ブロックに対して消去処理を行った場合は、その物理ブロックに対応するビットを「0」から「1」に書き換え、空きブロック数をインクリメントする。

0050

[空きブロック検索処理の説明]
次に空きブロック検索用テーブルを用いた空きブロック検索処理を説明する。チップ0用のテーブルとチップ1用のテーブルがあるため、まず、どちらのテーブルから検索するかを決定する必要がある。空きブロックを検索する必要があるときは、アドレス変換テーブルを検索して、LZIBNに対応するチップ別のPZIBNがない場合と、LZIBNに対応するチップ別のPZIBNがある場合(データを書き換える場合、または訂正処理を行う場合)とがある。前者の場合は、チップ0とチップ1との間で空きブロック数が偏らないようにするため、空きブロック数の多いチップ側の空きブロック検索用テーブルを使用する。後者の場合、理由は後述の[データ転送処理とコピーバックの選択]で説明するが、データ転送処理を行う時とコピーバック処理を行う時とでは、使用する空きブロック検索用テーブルの選択方法が異なる。まず、データ転送処理を行う時は、書き換え対象データ又は訂正処理の対象データが書き込まれている物理ブロックが含まれるチップと異なるチップ側の空きブロック検索用テーブルを使用する。つまり、アドレス変換テーブルより、書き換え対象データ又は訂正処理の対象データが書き込まれている物理ブロックのチップ番号を求め、そのチップ番号が0であった場合は、チップ1用のテーブルを使用し、そのチップ番号が1であった場合は、チップ0用のテーブルを使用する。次に、コピーバック処理を行う時は、コピーバック処理の対象データが書き込まれている物理ブロックが含まれるチップ側の空きブロック検索用テーブルを使用する。つまり、アドレス変換テーブルより、コピーバック処理の対象データが書き込まれている物理ブロックのチップ番号を求め、そのチップ番号が0であった場合、チップ0用のテーブルを使用し、そのチップ番号が1であった場合は、チップ1用のテーブルを使用する。

0051

空きブロックの検索方法は、物理ゾーンを構成するチップ0内の512ブロックに対する場合と、チップ1内の512ブロックにする場合とで同様なので、物理ゾーンを構成するチップ0内の512ブロックに対する空きブロックの検索方法について説明する。

0052

この空きブロック検索用テーブルを用いた空きブロックの検索では、上の行から下の行に、各行に含まれるビットを下位側から上位側に、論理値が「1」のビットを検索していく。尚、一番下の行の最上位ビットまで検索が進んだときは、一番上の行の最下位ビットに戻る。又、検索を開始するビットは、検索終了位置を記述する領域に設定されている値に基づいて決定される。検索終了位置を記述する領域に設定されている値がnの場合、チップ別のPZIBN#nに対応するビットの次のビットから検索が開始される。例えば、検索終了位置を記述する領域に設定されている値が128の場合は、チップ別のPZIBN#129に対応するビットから検索が開始され、検索終了位置を記述する領域に設定されている値が511の場合は、チップ別のPZIBN#0に対応するビットから検索が開始される。

0053

この検索は、論理値が「1」のビットを検出したときに終了し、検出したビットに対応するチップ別のPZIBNの値が、検索終了位置を記述する領域に設定される。従って、次回の検索では、今回の検索で検出された論理値が「1」のビットの次のビットから検索が開始される。

0054

例えば、図7に示した空きブロック検索用テーブルのチップ別のPZIBN#0に対応するビットから検索を開始したときは、チップ別のPZIBN#27に対応するビット(上から4番目の行の下位側から4ビット目のビット)が「1」なので、ここで検索が終了し、検索終了位置を記述する領域に「27」を設定する。次回の検索は、チップ別のPZIBN#28に対応するビット(上から4番目の行の下位側から5ビット目のビット)から開始される。

0055

[データ転送処理の説明]
図8を参照して、本発明によるデータ転送処理の概要を説明する。尚、データ転送処理は、フラッシュメモリからデータを読み出しコントローラ内のバッファに蓄積した後、コントローラ内のバッファに蓄積したデータをフラッシュメモリに書き込むデータ移動処理を意味する。一方、フラッシュメモリ内でのデータのデータ移動処理(フラッシュメモリ内でメモリセルアレイからデータレジスタにデータを読み出した後、データレジスタに読み出したデータをメモリセルアレイに書き込む処理)をコピーバック処理と言う。

0056

本発明によるデータ転送処理は、以下のステップを繰り返すことで行われる。
(S81)メモリコントローラ3から与えられた情報に基づいて、チップ0内の物理ブロックの読み出すページのメモリセルが選択され、選択されたメモリセルからデータレジスタにデータが複写される。
(S82)チップ0内のデータレジスタから1サブページ分(1セクタ分)のデータが読み出され、メモリコントローラ3内のバッファ9に蓄積される。尚、読み出したデータに対応する誤り訂正符号も読み出され、ECCブロック11によって読み出したデータに含まれる誤りの検出、訂正が行われる。
(S83)メモリコントローラ内のバッファ9に蓄積された1サブページ分(1セクタ分)のデータが、チップ1内のデータレジスタに転送される。又、転送したデータに対応する誤り訂正符号が、ECCブロック11によって生成され、生成された誤り訂正符号もチップ1内のデータレジスタに転送される。
ここで、1ページ分のデータを転送する場合は、1ページ分のデータがメモリコントローラ内のバッファ9を介して、チップ0内のデータレジスタからチップ1内のデータレジスタに転送されるまで、S82〜S83の処理が繰り返される。本実施形態では、1ページが4サブページ(4セクタ)に対応するので、1ページ分のデータを転送する場合、S82〜S83の処理が4回繰り返される。
(S84)最初のサブページ(セクタ)に対応するデータをチップ1内のデータレジスタに転送するときに、メモリコントローラ3から与えられた情報に基づいて、書き込み先のページのメモリセルが選択され、選択されたメモリセルにデータレジスタのデータが複写される。

0057

このように、本発明によるデータ転送処理は、2つのチップ間でデータの転送を行っているため、メモリコントローラ3内のバッファ9に1ページ分のデータを蓄積させずに、サブページ単位(セクタ単位)でチップ0内のデータレジスタからチップ1内のデータレジスタに、データを転送することができる。つまり、チップ0内のデータレジスタから1サブページ分(1セクタ分)のデータを読み出す処理と、チップ1内のデータレジスタに1サブページ分(1セクタ分)のデータを転送する処理を交互に繰り返すことにより、メモリコントローラ3内のバッファ9に1ページ分のデータを蓄積させず、チップ0内のデータレジスタからチップ1内のデータレジスタに、データを転送することができる。従って、1ページの容量に応じて、メモリコントローラ内のバッファ9の容量を変更する必要がなく、バッファ9の容量が少なくとも1サブページ分(1セクタ分)あれば、データ転送処理を行うことができる。又、バッファ9の容量が2サブページ分(2セクタ分)あれば、一方のチップ内のデータレジスタからデータを読み出し、バッファ9に蓄積する処理と、バッファ9に蓄積されたデータを他方のチップ内のデータレジスタに転送する処理を並行して行うことができる。尚、バッファ9に蓄積する処理とデータレジスタに転送する処理を並行して行うときは、チップ0に接続している内部バス14とチップ1に接続している内部バス14は、独立していることが好ましいが、共用の内部バス14を時分割で使用するようにしてもよい。

0058

なお、本説明では、チップ0のフラッシュメモリからチップ1のフラッシュメモリへのデータ転送処理について説明したが、チップ1のフラッシュメモリからチップ0のフラッシュメモリへのデータ転送処理についても同様に行うことができる。

0059

[データ転送処理とコピーバックの選択]
データ転送処理では、フラッシュメモリから読み出したデータをコントローラ内のバッファに蓄積した後に、そのデータをフラッシュメモリに書き込むため、読み出したデータに誤りが含まれていた場合、その誤りを訂正することができる。一方、コピーバック処理では、フラッシュメモリ内でメモリセルアレイからデータレジスタにデータを読み出した後、そのデータをメモリセルアレイに書き込むため、短時間でデータを移動させることができるが、フラッシュメモリ内で処理が実行されるため、移動前と移動後のページは同一のチップに属していなければならない。

0060

フラッシュメモリに対するアクセス処理では、上記のようなデータ転送処理とコピーバック処理の特徴を考慮して、状況に応じてデータ転送処理とコピーバック処理を使い分けることが好ましい。つまり、記憶データを移動させるときに記憶データに含まれる誤りを訂正したいときはデータ転送処理により記憶データの移動を行い、記憶データを移動させるときに記憶データに含まれる誤りを訂正する必要がないときはコピーバック処理により記憶データの移動を行う。

0061

なお、本発明に係るフラッシュメモリシステムのゾーンの構成は、特に限定されるものではなく、例えば、ゾーンを構成するブロックの数やチップの数は用途に合わせて適宜設定することができる。

0062

また、以上述べた実施形態は全て本発明を例示的に示すものであって限定的に示すものではなく、本発明は他の種々の変形態様及び変更態様で実施することができる。従って本発明の範囲は特許請求の範囲及びその均等範囲によってのみ規定されるものである。

図面の簡単な説明

0063

本発明の実施形態におけるフラッシュメモリシステムを概略的に示すブロック図である。
ブロックとページの関係を示す説明図である。
フラッシュメモリのアドレス空間の構造を概略的に示す図である。
2チップのフラッシュメモリでゾーンを構成した例を示す図である。
ゾーン毎の作成されるアドレス変換テーブルと空きブロック検索用テーブルの関係を示す図である。
アドレス変換テーブルの例を示した図である。
空きブロック検索用テーブルの例を示した図である。
本発明によるデータ転送処理の概要を示す図である。
従来技術によるデータ転送処理の概要を示す図である。

符号の説明

0064

1フラッシュメモリシステム
2フラッシュメモリ
3コントローラ
4ホストシステム
6マイクロプロセッサ
7ホストインターフェースブロック
8ワークエリア
9バッファ
10フラッシュメモリインターフェースブロック
11ECCブロック
12 ROM
13外部バス
14内部バス
21アドレス変換テーブル
22、23 空きブロック検索用テーブル

ページトップへ

この技術を出願した法人

この技術を発明した人物

ページトップへ

関連する挑戦したい社会課題

関連する公募課題

ページトップへ

おススメ サービス

おススメ astavisionコンテンツ

新着 最近 公開された関連が強い技術

この 技術と関連性が強い人物

関連性が強い人物一覧

この 技術と関連する社会課題

関連する挑戦したい社会課題一覧

この 技術と関連する公募課題

関連する公募課題一覧

astavision 新着記事

サイト情報について

本サービスは、国が公開している情報(公開特許公報、特許整理標準化データ等)を元に構成されています。出典元のデータには一部間違いやノイズがあり、情報の正確さについては保証致しかねます。また一時的に、各データの収録範囲や更新周期によって、一部の情報が正しく表示されないことがございます。当サイトの情報を元にした諸問題、不利益等について当方は何ら責任を負いかねることを予めご承知おきのほど宜しくお願い申し上げます。

主たる情報の出典

特許情報…特許整理標準化データ(XML編)、公開特許公報、特許公報、審決公報、Patent Map Guidance System データ