JP2006099594A - メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法 - Google Patents

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

Info

Publication number
JP2006099594A
JP2006099594A JP2004286975A JP2004286975A JP2006099594A JP 2006099594 A JP2006099594 A JP 2006099594A JP 2004286975 A JP2004286975 A JP 2004286975A JP 2004286975 A JP2004286975 A JP 2004286975A JP 2006099594 A JP2006099594 A JP 2006099594A
Authority
JP
Japan
Prior art keywords
block
physical
flash memory
chip
physical 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.)
Pending
Application number
JP2004286975A
Other languages
English (en)
Inventor
宏寿 ▲高▼木
Hirotoshi Takagi
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 JP2004286975A priority Critical patent/JP2006099594A/ja
Publication of JP2006099594A publication Critical patent/JP2006099594A/ja
Pending legal-status Critical Current

Links

Images

Abstract

【課題】 複数チップのフラッシュメモリを用いて仮想ブロックを形成して、並列処理を実行する場合に、アドレス変換テーブルの作成処理に掛かる負担が軽減する。
【解決手段】 仮想的に結合される物理ブロックに、その物理ブロックと仮想的に結合される物理ブロックの物理アドレスを示す情報を書込み、この情報に基づいて、仮想的に結合される物理ブロックの物理アドレスを知得している。この様にしたことにより、仮想的に複数の物理ブロックが結合された仮想ブロックにアクセスするときに、1個のチップ内の物理ブロックに対するアドレス変換テーブルを作成するだけで、各仮想ブロックに属する全てチップ内の物理ブロックに対してアクセスすることができる。
【選択図】図7

Description

本発明は、メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法に関する。
近年、メモリーカードやシリコンディスクといったメモリシステムにて使用される半導体メモリに、フラッシュメモリが広く採用されている。フラッシュメモリは、不揮発性メモリの一種である。フラッシュメモリに格納されたデータは、電力が供給されていないときでも保持されていることが要求される。
NAND型フラッシュメモリは、上記のメモリシステムで特に多く用いられるフラッシュメモリの一種である。NAND型フラッシュメモリに含まれている複数のメモリセルのそれぞれは、他のメモリセルとは独立して、論理値"1"を示すデータが格納されている消去状態から、論理値"0"を示すデータが格納されている書込状態へと変化することができる。これとは対照的に、書込状態から消去状態へと変化するときには、各メモリセルは他のメモリセルと独立して変化することができない。このときには、ブロックと称される予め定められた数のメモリセルが、全て同時に消去状態になる。この一括消去動作は、一般的に、"ブロック消去"と称されている。NAND型フラッシュメモリに対する書込処理若しくは読出処理は、ページと称される予め定められた数のメモリセル単位で処理が行なわれる。消去処理の単位であるブロックは複数のページで構成されている。
NAND型フラッシュメモリに対する書込み処理では、まず、書込みデータがNAND型フラッシュメモリ内のレジスタに転送され、レジスタに保持された書込みデータがメモリセルアレイに複写される。この複写(書込み)処理で、メモリセルを消去状態から書込状態に変化させる場合、コントロールゲートに高電圧が印加され、フローティングゲートに電子が注入される。
レジスタからメモリセルアレイへの複写(書込み)処理は、NAND型フラッシュメモリに与えられる書込みコマンドに基づいて開始される。この処理が開始されるとNAND型フラッシュメモリは処理中であることを示すビジー信号を出力する。ビジー信号が出力されている間、NAND型フラッシュメモリに対するアクセスは拒否され、このビジー信号が出力されている期間が書込み処理の高速化を図る上での妨げになっている。
この問題を解決するために、下記特許文献1では、異なるチップに属する複数の物理ブロックを仮想的に結合することにより、仮想ブロックを形成し、論理アドレスが連続するデータをアクセスするときに、同一の仮想ブロックに属する各物理ブロックに対して、並列に処理を実行できるようにしている。
国際公開第02/046929号パンフレット
上述のように複数のチップに属する物理ブロックで、仮想ブロックを形成して、並列処理を実行する場合、論理アドレスから物理アドレスを得るためのアドレス変換テーブルを、チップ毎に作成しなければならない。従って、仮想ブロックを形成して並列処理を実行すれば、書込み処理の高速化を図ることができるが、アドレス変換テーブルの作成処理に掛かる負担が増加する。
本発明は、仮想ブロックを形成して書込み処理の高速化を図る場合に、アドレス変換テーブルの作成処理に掛かる負担を軽減することができるメモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びに、フラッシュメモリの制御方法を提供することを目的とする。
上記目的を達成するために、本発明の第1の観点に係るメモリコントローラは、
ホストコンピュータから供給される論理アドレスに基づいて、複数チップのフラッシュメモリにアクセスするメモリコントローラであって、
異なるチップ内の物理ブロックを仮想的に結合することにより仮想ブロックを形成する手段と、
前記仮想ブロックに対して論理アドレスが連続する記憶領域を割当てる手段と、
前記仮想ブロックを構成する物理ブロックに、同一の仮想ブロックに属する他の物理ブロックの物理アドレスを示すアドレス情報(リンク番号)を書込む手段と、
前記アドレス情報に基づいて、前記仮想ブロックに属する各物理ブロックにアクセスする手段と
を備えることを特徴とする。
このような構成にしたことにより、同一の仮想ブロックに属する物理ブロックの物理アドレスを、リンク番号に基づいて容易に知得することができる。
なお、前記アドレス情報は、各物理ブロックの冗長領域に記憶されていることが好ましい。
また、前記メモリコントローラは、前記各チップ内に、複数の物理ブロックで構成されるゾーンを構成する手段と、
前記異なるチップ内のゾーンを組み合わせて、ゾーン群を形成する手段とを備え、
前記ゾーン群を構成する前記各ゾーン内の物理ブロックを、仮想的に結合することにより仮想ブロックを形成するようにしてもよい。
また、前記アドレス情報は、前記ゾーン内の各物理ブロックに割当てられた連番であってもよい。
前記メモリコントローラは、前記複数チップのいずれかのチップ内の物理ブロックの物理アドレスと、前記論理アドレスとの対応関係を示す変換テーブルを作成する手段を備えていてもよい。
上記目的を達成するたるめに、本発明の第2の観点に係るフラッシュメモリシステムは、前記メモリコントローラと複数チップのフラッシュメモリを備えることを特徴とする。
上記目的を達成するために、本発明の第3の観点に係るフラッシュメモリの制御方法は、
ホストコンピュータから供給される論理アドレスに基づいて、複数チップのフラッシュメモリにアクセスするフラッシュメモリの制御方法であって、
各チップ内の物理ブロックに、他の物理ブロックの物理アドレスを示すアドレス情報を書込む処理と、
前記アドレス情報に基づいて仮想的に結合される物理ブロックに、論理アドレスが連続するデータを、ページ単位で順次書込む処理と、
を含むことを特徴とする。
尚、前記フラッシュメモリの制御方法は、前記アドレス情報に基づいて、仮想的に結合されている物理ブロックを知得する処理と、
前記仮想的に結合されている物理ブロックから、論理アドレスが連続するデータを、ページ単位で順次読み出す処理と、
を含んでいてもよい。
本発明によれば、仮想的に結合される物理ブロックに、その物理ブロックと仮想的に結合される物理ブロックの物理アドレスを示すアドレス情報が書込まれているので、このアドレス情報に基づいて、仮想的に結合される物理ブロックの物理アドレスを知得することができる。従って、仮想的に複数の物理ブロックが結合された仮想ブロックにアクセスするときに、同一の仮想ブロックに属する1個の物理ブロックに対するアドレス変換テーブルを作成するだけで、同一の仮想ブロックに属する全ての物理ブロックに対してアクセスすることができる。
以下、図面に基づき、本発明の実施の形態について詳細に説明する。
図1は、本発明の実施形態に係るフラッシュメモリシステム1を、概略的に示すブロック図である。
図1に示したように、フラッシュメモリシステム1は、フラッシュメモリ2と、それを制御するメモリコントローラ3で構成されている。又、フラッシュメモリシステム1は、通常、ホストシステム4に着脱可能に装着され、ホストシステム4に対して、一種の外部記憶装置として用いられる。
尚、ホストシステム4としては、文字、音声、あるいは画像情報等の種々の情報を処理するパーソナルコンピュータやデジタルスチルカメラをはじめとする各種情報処理装置が挙げられる。
以下に、フラッシュメモリ2及びメモリコントローラ3の詳細を説明する。
[フラッシュメモリ2の説明]
このフラッシュメモリシステム1において、データが記憶されるフラッシュメモリ2は、NAND型フラッシュメモリで構成されている。NAND型フラッシュメモリは、ストレージデバイスへの用途として(ハードディスクの代わりになるものとして)開発された不揮発性メモリである。このNAND型フラッシュメモリは、ランダムアクセスを行なうことができず、書込みと読出しはページ単位で、消去はブロック単位で行なわれる。又、データの上書きができないので、データを書込むときは、消去されている領域にデータの書込みが行なわれる。
NAND型フラッシュメモリは、このような特徴を有するため、通常、データの書替を行なう場合には、ブロック消去されている消去済ブロックに新たなデータ(書替後のデータ)を書込み、古いデータ(書替前のデータ)が書込まれていたブロックを消去するという処理を行なっている。
このようなデータの書替を行なった場合、書替後のデータは、書替前と異なるブロックに書込まれるため、ホストシステム4側から与えられる論理アドレスと、フラッシュメモリ2内での物理アドレスとの対応関係は、データを書替える毎に動的に変化する。従って、フラッシュメモリ2にアクセスするときには、通常、論理アドレスと物理アドレスとの対応関係を示したアドレス変換テーブルが作成され、このアドレス変換テーブルを用いて、フラッシュメモリ2に対するアクセスが行なわれる。
図2は、ブロックとページの関係を示す説明図である。
上記ブロックとページの構成は、フラッシュメモリ2の仕様によって異なるが、一般的なフラッシュメモリ2は、図2(a)に示したように、1ブロックが32ページ(P0〜P31)で構成され、各ページが512バイトのユーザー領域と16バイトの冗長領域で構成されている。又、記憶容量の増加に伴い、図2(b)に示したように、1ブロックが64ページ(P0〜P63)で構成され、各ページが2048バイトのユーザー領域と64バイトの冗長領域で構成されているものも提供されている。
ここで、ユーザー領域は、主に、ホストシステム4から供給されるデ―タが記憶される領域であり、冗長領域は、誤り訂正符号、対応論理アドレス情報及びブロックステータス等の付加データが記憶される領域である。誤り訂正符号は、ユーザー領域に記憶されているデータに含まれる誤りを検出、訂正するための付加データであり、後述するECCブロックによって生成される。
対応論理アドレス情報は、物理ブロックにデータが記憶されている場合に書込まれ、その物理ブロックに記憶されているデータの論理アドレスに関する情報を示している。尚、物理ブロックにデータが記憶されていない場合は、対応論理アドレス情報が書込まれないので、対応論理アドレス情報が書込まれているか否かで、そのブロックが消去済ブロックであるか否かを判断することができる。つまり、対応論理ブロックアドレスが書込まれていない場合は、消去済ブロックであると判断される。
ブロックステータスは、その物理ブロックが不良ブロック(正常にデータの書込み等を行なうことができない物理ブロック)であるか否かを示すフラグであり、その物理ブロックが不良ブロックであると判断された場合には、不良ブロックであることを示すフラグが設定される。
次に、フラッシュメモリ2の、回路構成について説明する。一般的なNAND型フラッシュメモリは、書込みデータ若しくは読出しデータを保持するためのレジスタと、データを記憶するメモリセルアレイによって構成されている。メモリセルアレイは、複数のメモリセルが直列に接続されたメモリセル群を複数備えており、ワード線によって、メモリセル群の特定のメモリセルが選択される。このワード線によって選択されたメモリセルとレジスタの間で、データの複写(レジスタからメモリセルへの複写、若しくはメモリセルからレジスタへの複写)が行なわれる。
メモリセルアレイを構成するメモリセルは、2つのゲートを備えたMOSトランジスタで構成されている。ここで、上側のゲートはコントロールゲートと、下側のゲートはフローティングゲートと呼ばれており、フローティングゲートに電荷(電子)を注入したり、フローティングゲートから電荷(電子)を排出したりすることによって、データの書込みや消去を行っている。
フローティングゲートは、周囲を絶縁体で囲まれているので、注入された電子は長期間にわたって保持される。フローティングゲートに電子を注入するときは、コントロールゲートが高電位側となる高電圧を印加して電子を注入し、フローティングゲートから電子を排出するときは、コントロールゲートが低電位側となる高電圧を印加して電子を排出する。フローティングゲートに電子が注入されている状態(書込状態)が、論理値"0"のデータに対応し、フローティングゲートから電子が排出されている状態(消去状態)が、論理値"1"のデータに対応する。
[メモリコントローラ3の説明]
メモリコントローラ3は、ホストインターフェース制御ブロック5と、マイクロプロセッサ6と、ホストインターフェースブロック7と、ワークエリア8と、バッファ9と、フラッシュメモリインターフェースブロック10と、ECC(エラー・コレクション・コード)ブロック11と、フラッシュメモリシーケンサブロック12とから構成される。
これら機能ブロックによって構成されるメモリコントローラ3は、一つの半導体チップ上に集積されている。
以下に、各機能ブロックの機能を説明する。
マイクロプロセッサ6は、メモリコントローラ3を構成する各機能ブロック全体の、動作を制御する機能ブロックである。
ホストインターフェース制御ブロック5は、ホストインターフェースブロック7の動作を制御する機能ブロックである。ここで、ホストインターフェース制御ブロック5は、ホストインターフェースブロック7の動作を設定する動作設定レジスタ(図示せず)を備えており、この動作設定レジスタに基づいて、ホストインターフェースブロック7は動作する。
ホストインターフェースブロック7は、ホストシステム4とデータ、アドレス情報、ステータス情報及び外部コマンド情報の授受を行なう機能ブロックである。すなわち、フラッシュメモリシステム1がホストシステム4に装着されると、フラッシュメモリシステム1とホストシステム4は、外部バス13を介して相互に接続され、かかる状態において、ホストシステム4よりフラッシュメモリシステム1に供給されるデータ等は、ホストインターフェースブロック7を入口として、メモリコントローラ3の内部に取り込まれ、フラッシュメモリシステム1からホストシステム4に供給されるデータ等は、ホストインターフェースブロック7を出口として、ホストシステム4に供給される。
さらに、ホストインターフェースブロック7は、ホストシステム4より供給される論理アドレス、セクタ数及び外部コマンドを保持するレジスタや、エラーが発生した場合にセットされるエラーレジスタ(図示せず)等を有している。
ワークエリア8は、フラッシュメモリ2の制御に必要なデータが一時的に格納される作業領域であり、複数のSRAM(Static Random Access Memory)セルによって構成されている。
バッファ9は、フラッシュメモリ2から読出したデータ及びフラッシュメモリ2に書込むデータを、一時的に保持する機能ブロックである。すなわち、フラッシュメモリ2から読出したデータは、ホストシステム4の受取準備ができるまで、バッファ9に保持され、フラッシュメモリ2に書込むデータは、フラッシュメモリ2の書込準備ができるまで、バッファ9に保持される。
フラッシュメモリシーケンサブロック12は、内部コマンドに基づいて、フラッシュメモリ2の動作を制御する機能ブロックである。フラッシュメモリシーケンサブロック12は、複数のレジスタ(図示せず)を備え、この複数のレジスタに内部コマンドを実行する際に必要な情報が設定される。この複数のレジスタに、内部コマンドを実行する際に必要な情報が設定されると、フラッシュメモリシーケンサブロック12は、その情報に基づいて処理を実行する。
ここで、「内部コマンド」とは、メモリコントローラ3からフラッシュメモリ2に与えられるコマンドであり、ホストシステム4からフラッシュメモリシステム1に与えられるコマンドである「外部コマンド」と区別される。
フラッシュメモリインターフェースブロック10は、内部バス14を介して、フラッシュメモリ2とデータ、アドレス情報、ステータス情報、内部コマンド情報及びデバイスID情報等の授受を行なう機能ブロックである。
ECCブロック11は、フラッシュメモリ2に書込むデ―タに付加されるエラーコレクションコードを生成するとともに、読出しデータに付加されているエラーコレクションコードに基づいて、読出したデータに含まれる誤りを検出・訂正する機能ブロックである。
[フラッシュメモリシステム1の動作]
以上のような構成の本発明に係るフラッシュメモリシステム1では、複数チップでフラッシュメモリ2の記憶領域を構成し、互いに異なるチップに属する物理ブロックを仮想的に結合して、仮想ブロックを形成している。この仮想ブロックについて、図3及び図4を参照して説明する。
図3は、複数のチップの持つ物理ブロックを示す図である。
図3では、フラッシュメモリ2の記憶領域をチップ0、チップ1、チップ2及びチップ3の4個のチップにより構成した例を示している。チップ0〜3の各チップ内には、1024個の物理ブロックでゾーンが構成されている。各ゾーンを構成する物理ブロックには、0〜1023の連番(#0〜#1023)が付けられている。各チップ内に構成されたゾーンは、互いに異なるチップ内のゾーンとの対応関係が設定されており、チップ0内の1つのゾーン、チップ1内の1つのゾーン、チップ2内の1つのゾーン及びチップ3内の1つのゾーンで、一区画の記憶領域(ゾーン群)を形成している。
一区画の記憶領域(ゾーン群)を形成するチップ0〜3内の各ゾーンから物理ブロックを1個ずつ選択し、選択された4個の物理ブロックを仮想的に結合して仮想ブロックを形成している。図3に示した例では、チップ0内に構成されたゾーンの物理ブロック#1、チップ1内に構成されたゾーンの物理ブロック#2、チップ2内に構成されたゾーンの物理ブロック#0、及びチップ3内に構成されたゾーンの物理ブロック#4が仮想的に結合され、仮想ブロックを形成している。
つまり、各チップ内の複数の物理ブロックでゾーンを構成し、異なるチップ内のゾーンを複数集めてゾーン群を形成する。このゾーン群に含まれる各ゾーンから1個ずつ選択された物理ブロックが、仮想的に結合されて、仮想ブロックを形成する。
図4は、仮想ブロックに記憶されるユーザーデータの配列を説明する図である。
図4は、仮想ブロックを形成する各物理ブロックが、32個のページで構成されている場合を示している。この仮想ブロックは、4個の物理ブロックが結合されているので、1つの仮想ブロックには128ページ分のユーザーデータが記憶される。論理アドレスが連続する128ページ分のユーザーデータを、ページ単位で区切り、論理アドレスが若い方から順番にYD0〜YD127とすれば、論理アドレスが最も若いユーザーデータYD0が、チップ0内の物理ブロック#1のページ0(P0)に記憶される。以下、論理アドレスが若い方から順番に、ユーザーデータYD1が、チップ1内の物理ブロック#2のページ0(P0)に記憶され、ユーザーデータYD2が、チップ2内の物理ブロック#0のページ0(P0)に記憶され、ユーザーデータYD3が、チップ3内の物理ブロック#4のページ0(P0)に記憶される。この後も同様に、チップ0内の物理ブロック#1、チップ1内の物理ブロック#2、チップ2内の物理ブロック#0及びチップ3内の物理ブロック#4に対して、ユーザーデータYD4〜127が、論理アドレスが若い方から順番に割当てられる。
上記のように、論理アドレスが連続するユーザーデータを、ページ単位で、チップ0〜3内の物理ブロックに順次割当てた場合、論理アドレスが連続する複数ページ分のユーザーデータを、書き込んだり、又は読み出したりするときに、チップ0〜3のフラッシュメモリに対して、並列に処理を実行することができる。
又、チップ0〜3ごとの記憶領域に接続するバスが独立していない場合であっても、各チップ0〜3の記憶領域に対する、ユーザーデータの送受信やコマンドの送信を順次実行していくことができるので、書込み処理や読出し処理の高速化を図ることができる。
次に、チップ0〜3内の各ゾーンから物理ブロックを1個ずつ選択し、選択された4個の物理ブロックを仮想的に結合した仮想ブロックと、論理アドレスの対応関係について説明する。
仮想ブロックと論理アドレスの対応関係は、仮想ブロックを1個の物理ブロックと見做して、ブロック単位で管理されている。図3に示したように、4個の物理ブロックを仮想的に結合して、仮想ブロックを形成した場合、物理ブロック4個分の記憶領域に対して、連続する論理アドレスが割当てられる。
図5は、論理アドレス空間の説明図であり、論理アドレス空間をLBA(Logical Block Address)で示している。ここで、LBAはセクタ単位で付けた連番であり、1セクタの容量がフラッシュメモリの1ページの容量と等しく、各物理ブロックが32個のページで構成されている場合、4個の物理ブロックを結合した仮想ブロックは、論理アドレス空間の128セクタに割当てられる。従って、論理アドレス空間の128セクタ分の領域を1つの論理ブロック群とすれば、1つの仮想ブロックに1つの論理ブロック群が割当てられる。
図5に示した例では、論理アドレス空間を、128セクタ毎に区切った論理ブロック群に連番を付けている(以下、論理ブロック群に付けた連番を論理ブロック連番という)。ここで、論理ブロック連番LBN0がLBA0〜LBA127に対応し、論理ブロック連番LBN1がLBA128〜LBA255に対応し、以下同様に、128セクタ毎に論理ブロック連番が割当てられている。
この論理ブロック連番は、その論理ブロック連番に対応するユーザーデータが書込まれた物理ブロックの冗長領域に書込まれ、書込まれた論理ブロック連番に基づいて仮想ブロックと論理ブロック群の対応関係が管理される。例えば、LBA0〜LBA127に対応するユーザーデータが書込まれた物理ブロックの冗長領域にはLBN0が書込まれ、LBA128〜LBA255に対応するユーザーデータが書込まれた物理ブロックの冗長領域には、LBN1が書込まれる。
フラッシュメモリ2にアクセスするときには、論理ブロック群と仮想ブロックとの対応関係を示した変換テーブルが用いられる。
図6は、変換テーブルの説明図である。
前記図3に示したように、異なるチップ内の4個の物理ブロックを仮想的に結合して仮想ブロックを形成した場合、各論理ブロック連番に対して、異なるチップ内の4個の物理ブロックが対応する。従って、各論理ブロック連番に対応する物理ブロックを、チップ毎に示した変換テーブル(図6(a))が必要になる。しかし、図6(a)に示したような変換テーブルを作成する場合には、冗長領域に書込まれている論理ブロック連番を読み出す処理が、4つのゾーンに対して実行しなければならない。つまり、1つのゾーンが1024個の物理ブロックで構成されている場合には、4096個の物理ブロックに対して読出し処理を実行しなければならない。
上記のような変換テーブルの作成に掛かる負担を軽減するため、本発明に係るフラッシュメモリシステム1では、1個のチップ内のゾーンに対する変換テーブルだけを作成し、変換テーブルを作成しなかったチップ内の物理ブロックについては、後述するリンク番号に基づいて、対応する論理ブロック連番やLBAを知得する。
図6(b)は、チップ0内のゾーン(1024個の物理ブロック)に対する変換テーブルを示している。この変換テーブルは、論理ブロック連番LBN0〜999が、チップ0内のどの物理ブロックに対応するかを示している。例えば、論理ブロック連番LBN0が、チップ0内の物理ブロック#1に対応し、論理ブロック連番LBN1が、チップ0内の物理ブロック#3に対応している。尚、この変換テーブルが、論理ブロック連番LBN0〜LBN999に対する対応関係を示しているのは、チップ0内の1つのゾーン、チップ1内の1つのゾーン、チップ2内の1つのゾーン及びチップ3内の1つのゾーンで形成された一区画の記憶領域(ゾーン群)に、論理ブロック連番LBN0〜LBN999の論理アドレス空間が割当てられているからである。
図7及び図8は、仮想的に結合された各物理ブロックの冗長領域に書込まれている論理ブロック連番とリンク番号を示す図である。
例えば図7では、チップ0内の物理ブロック#1、チップ1内の物理ブロック#2、チップ2内の物理ブロック#0及びチップ3内の物理ブロック#4は仮想的に結合されている。この仮想ブロックには、論理アドレス空間のLBA0〜LBA127が割当てられている。従って、これらのブロックの冗長領域には、LBA0〜LBA127に対応する論理ブロック連番LBN0が書込まれている。
同様に、仮想ブロックを形成しているチップ0内の物理ブロック#3、チップ1内の物理ブロック#4、チップ2内の物理ブロック#5及びチップ3内の物理ブロック#6の冗長領域には、LBA128〜LBA255に対応する論理ブロック連番LBN1が書込まれている。又、仮想ブロックを形成しているチップ0内の物理ブロック#7、チップ1内の物理ブロック#6、チップ2内の物理ブロック#8及びチップ3内の物理ブロック#9の冗長領域には、LBA256〜383に対応する論理ブロック連番LBN2が書込まれている。
仮想的に結合された各物理ブロックの冗長領域に書込まれているリンク番号は、仮想的に結合されている物理ブロックの結合関係を知得するために使用される。例えば、チップ0内の物理ブロック#1の冗長領域には、この物理ブロックと仮想的に結合するチップ1内の物理ブロックの連番#2がリンク番号として書込まれ、チップ1内の物理ブロック#2の冗長領域には、この物理ブロックと仮想的に結合するチップ2内の物理ブロックの連番#0がリンク番号として書込まれる。チップ2内の物理ブロック#0の冗長領域には、この物理ブロックと仮想的に結合するチップ3内の物理ブロックの連番#4がリンク番号として書込まれている。
従って、チップ0内の物理ブロック#1の冗長領域に書込まれているリンク番号を読み出すことにより、この物理ブロックと仮想的に結合するチップ1内の物理ブロックの連番が#2であることが分かり、チップ1内の物理ブロック#2の冗長領域に書込まれているリンク番号を読み出すことにより、この物理ブロックと仮想的に結合するチップ2内の物理ブロックの連番が#0であることが分かり、チップ2内の物理ブロック#0の冗長領域に書込まれているリンク番号を読み出すことにより、この物理ブロックと仮想的に結合するチップ3内の物理ブロックの連番が#4であることが分かる。
他の仮想ブロックについても同様に、チップ0内の物理ブロックの冗長領域には、この物理ブロックと仮想的に結合するチップ1内の物理ブロックの連番がリンク番号として書込まれ、チップ1内の物理ブロックの冗長領域には、この物理ブロックと仮想的に結合するチップ2内の物理ブロックの連番がリンク番号として書込まれ、チップ2内の物理ブロックの冗長領域には、この物理ブロックと仮想的に結合するチップ3内の物理ブロックの連番がリンク番号として書込まれる。このリンク番号によって、チップ0内の物理ブロック#3と仮想的に結合する物理ブロックが、チップ1内の物理ブロック#4、チップ2内の物理ブロック#5及びチップ3内の物理ブロック#6であることが分かり、チップ0内の物理ブロック#7と仮想的に結合する物理ブロックが、チップ1内の物理ブロック#6、チップ2内の物理ブロック#8及びチップ3内の物理ブロック#9であることが分かる。
このように冗長領域に書込まれているリンク番号により、チップ0内の物理ブロックと仮想的に結合するチップ1〜3内の物理ブロックが分かるので、チップ0内の物理ブロックに対する変換テーブルだけを作成すれば、ホストシステムから供給されるLBA等の論理アドレスに関する情報に基づいてフラッシュメモリにアクセスすることができる。
例えば、ホストシステムから供給されたLBAに対応するチップ0内の物理ブロックを、変換テーブルによって求め、変換テーブルによって求めたチップ0内の物理ブロックに書込まれているリンク番号を読出すことにより、ホストシステムから供給されたLBAに対応するチップ1内の物理ブロックを求め、求めたチップ1内の物理ブロックに書込まれているリンク番号を読出すことにより、ホストシステムから供給されたLBAに対応するチップ2内の物理ブロックを求め、求めたチップ2内の物理ブロックに書込まれているリンク番号を読出すことにより、ホストシステムから供給されたLBAに対応するチップ3内の物理ブロックを求めている。
このようにして、ホストシステムから供給されたLBAに対応するチップ0〜3内の物理ブロックを求めた後にフラッシュメモリに対するアクセス開始すればよい。
尚、図7に示した例では、チップ3内の物理ブロックの冗長領域にリンク番号が書込まれていないが、図8に示したように、チップ3内の物理ブロックの冗長領域に、この物理ブロックと仮想的に結合するチップ0内の物理ブロックの連番をリンク番号として書込むようにすれば、チップ0〜3内のいずれの物理ブロックからも仮想的に結合する他のチップ内の物理ブロックを知ることができる。この場合、作成する変換テーブルが、チップ0〜3のいずれのチップに対する変換テーブルであっても、フラッシュメモリにアクセスすることができる。
以上に述べたように、物理ブロックの冗長領域にリンク番号を記述した場合には、チップ0〜3のいずれか1個のチップに対する変換テーブルを作成すれば、後は、書込み、若しくは読出しの対象となった仮想ブロックに属する物理ブロックの冗長領域に書込まれているリンク番号に基づいてフラッシュメモリにアクセスすることができる。
尚、リンク番号は、物理ブロックの物理アドレスを知得できる情報であれば、特に限定されることはない。又、仮想的に結合される物理ブロックの数や、ゾーンを構成する物理ブロックの数、ゾーン群を構成するゾーンの数についても、特に限定されることはなない。
本発明の実施形態に係るフラッシュメモリシステムのブロック図である。 ブロックとページの関係を示す説明図である。 複数のチップの持つ物理ブロックを示す図である。 仮想的に結合された物理ブロックに書込まれるユーザーデータの配列を示す図である。 論理アドレス空間を示す図である。 変換テーブルを示す図である。 フラッシュメモリの冗長領域に書込まれている論理ブロック連番とリンク番号を示す図である。 フラッシュメモリの冗長領域に書込まれている論理ブロック連番とリンク番号を示す図である。
符号の説明
1 フラッシュメモリシステム
2 フラッシュメモリ
3 メモリコントローラ
4 ホストシステム
5 ホストインターフェース制御ブロック
6 マイクロプロセッサ
7 ホストインターフェースブロック
8 ワークエリア
9 バッファ
10 フラッシュメモリインターフェースブロック
11 ECCブロック
12 フラッシュメモリシーケンサブロック
13 外部バス
14 内部バス

Claims (8)

  1. ホストコンピュータから供給される論理アドレスに基づいて、複数チップのフラッシュメモリにアクセスするメモリコントローラであって、
    異なるチップ内の物理ブロックを仮想的に結合することにより仮想ブロックを形成する手段と、
    前記仮想ブロックに対して論理アドレスが連続する記憶領域を割当てる手段と、
    前記仮想ブロックを構成する物理ブロックに、同一の仮想ブロックに属する他の物理ブロックの物理アドレスを示すアドレス情報を書込む手段と、
    前記アドレス情報に基づいて、前記仮想ブロックに属する各物理ブロックにアクセスする手段と
    を備えることを特徴とするメモリコントローラ。
  2. 前記アドレス情報が、各物理ブロックの冗長領域に記憶されていることを特徴とする請求項1に記載のメモリコントローラ。
  3. 前記各チップ内に、複数の物理ブロックで構成されるゾーンを構成する手段と、
    前記異なるチップ内のゾーンを組み合わせて、ゾーン群を形成する手段とを備え、
    前記ゾーン群を構成する前記各ゾーン内の物理ブロックを、仮想的に結合することにより仮想ブロックを形成することを特徴とする請求項1又は2に記載のメモリコントローラ。
  4. 前記アドレス情報が、前記ゾーン内の各物理ブロックに割当てられた連番であることを特徴とする請求項3に記載のメモリコントローラ。
  5. 前記複数チップのいずれかのチップ内の物理ブロックの物理アドレスと、前記論理アドレスとの対応関係を示す変換テーブルを作成する手段を備えていることを特徴とする請求項1乃至4のいずれか1項に記載のメモリコントローラ。
  6. 請求項1乃至5のいずれか1項に記載のメモリコントローラと複数チップのフラッシュメモリを備えることを特徴とするフラッシュメモリシステム。
  7. ホストコンピュータから供給される論理アドレスに基づいて、複数チップのフラッシュメモリにアクセスするフラッシュメモリの制御方法であって、
    各チップ内の物理ブロックに、他の物理ブロックの物理アドレスを示すアドレス情報を書き込む処理と、
    前記アドレス情報に基づいて仮想的に結合される物理ブロックに、論理アドレスが連続するデータを、ページ単位で順次書き込む処理と、
    を含むことを特徴とするフラッシュメモリの制御方法。
  8. 前記アドレス情報に基づいて、仮想的に結合されている物理ブロックを知得する処理と、
    前記仮想的に結合されている物理ブロックから、論理アドレスが連続するデータを、ページ単位で順次読み出す処理と、
    を含むことを特徴とする請求項7に記載のフラッシュメモリの制御方法。
JP2004286975A 2004-09-30 2004-09-30 メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法 Pending JP2006099594A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004286975A JP2006099594A (ja) 2004-09-30 2004-09-30 メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004286975A JP2006099594A (ja) 2004-09-30 2004-09-30 メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法

Publications (1)

Publication Number Publication Date
JP2006099594A true JP2006099594A (ja) 2006-04-13

Family

ID=36239316

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004286975A Pending JP2006099594A (ja) 2004-09-30 2004-09-30 メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法

Country Status (1)

Country Link
JP (1) JP2006099594A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011018222A (ja) * 2009-07-09 2011-01-27 Toshiba Corp インタリーブ制御装置、インタリーブ制御方法及びメモリシステム
JP2012203508A (ja) * 2011-03-24 2012-10-22 Toshiba Corp メモリシステムおよびプログラム

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011018222A (ja) * 2009-07-09 2011-01-27 Toshiba Corp インタリーブ制御装置、インタリーブ制御方法及びメモリシステム
JP4643729B2 (ja) * 2009-07-09 2011-03-02 株式会社東芝 インタリーブ制御装置、インタリーブ制御方法及びメモリシステム
US8145858B2 (en) 2009-07-09 2012-03-27 Kabushiki Kaisha Toshiba Interleave control device, interleave control method, and memory system
JP2012203508A (ja) * 2011-03-24 2012-10-22 Toshiba Corp メモリシステムおよびプログラム
US8812774B2 (en) 2011-03-24 2014-08-19 Kabushiki Kaisha Toshiba Memory system and computer program product

Similar Documents

Publication Publication Date Title
JP4373943B2 (ja) メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
JP2006018373A (ja) メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
JP2007034581A (ja) メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
JP4661497B2 (ja) メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
JP4661191B2 (ja) メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
JP4609406B2 (ja) メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム、並びに、フラッシュメモリの制御方法
JP4177292B2 (ja) メモリンコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
JP4235595B2 (ja) メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム及びフラッシュメモリの制御方法
JP4241741B2 (ja) メモリコントローラ及びフラッシュメモリシステム
JP2007323159A (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びに、フラッシュメモリの制御方法
JP4697146B2 (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
JP4254930B2 (ja) メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
JP2005292925A (ja) メモリコントローラ、フラッシュメモリシステム、並びに、フラッシュメモリの制御方法
JP4000124B2 (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びに、フラッシュメモリの制御方法
JP3934659B1 (ja) メモリコントローラ及びフラッシュメモリシステム
JP4177301B2 (ja) メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
JP2006099594A (ja) メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
JP4670370B2 (ja) メモリコントローラ及びフラッシュメモリシステム
JP4273106B2 (ja) メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
JP4194518B2 (ja) メモリコントローラ、フラッシュメモリシステム、並びに、フラッシュメモリの制御方法
JP2006178909A (ja) メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
JP2005293177A (ja) メモリコントローラ及びフラッシュメモリシステム
JP4332108B2 (ja) メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
JP4304167B2 (ja) メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
JP4366283B2 (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム

Legal Events

Date Code Title Description
A621 Written request for application examination

Effective date: 20060313

Free format text: JAPANESE INTERMEDIATE CODE: A621

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20060927

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20061005

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20061031

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070104

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20070123