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

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

Info

Publication number
JP4254930B2
JP4254930B2 JP2004316099A JP2004316099A JP4254930B2 JP 4254930 B2 JP4254930 B2 JP 4254930B2 JP 2004316099 A JP2004316099 A JP 2004316099A JP 2004316099 A JP2004316099 A JP 2004316099A JP 4254930 B2 JP4254930 B2 JP 4254930B2
Authority
JP
Japan
Prior art keywords
block
zone
physical
logical
belonging
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 - Lifetime
Application number
JP2004316099A
Other languages
English (en)
Other versions
JP2006127234A (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 JP2004316099A priority Critical patent/JP4254930B2/ja
Publication of JP2006127234A publication Critical patent/JP2006127234A/ja
Application granted granted Critical
Publication of JP4254930B2 publication Critical patent/JP4254930B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

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(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に書込むデ―タに付加されるエラーコレクションコードを生成するとともに、読出しデータに付加されているエラーコレクションコードに基づいて、読出したデータに含まれる誤りを検出・訂正する機能ブロックである。
[フラッシュメモリシステムの動作の説明]
本発明に係るフラッシュメモリシステムでは、複数チップでフラッシュメモリ2の記憶領域を構成し、互いに異なるチップに属する物理ブロックを仮想的に結合して、仮想ブロックを形成している。この仮想ブロックについて、図3及び図4を参照して説明する。
図3は、仮想的に結合された物理ブロックを示す図である。
図3では、フラッシュメモリ2の記憶領域をチップ0、チップ1、チップ2及びチップ3の4個のチップにより構成した例を示している。ここで、チップ0〜3の各チップ内には、1024個の物理ブロックでゾーンが形成されている。各ゾーンを構成する物理ブロックには、0〜1023の連番(#0〜#1023)が付けられている。更に、各ゾーンは、物理ブロック#0〜#511で構成されたサブゾーン0と、物理ブロック#512〜#1023で構成されたサブゾーン1とに分割されている。言い換えれば、物理ブロック#0〜#511で構成されたサブゾーン0と物理ブロック#512〜#1023で構成されたサブゾーン1を連結してゾーンを形成している。
各チップのゾーンには、それぞれ異なるチップ内のゾーンとの対応関係が設定されている。図3には、対応関係が設定されている各チップ内のゾーンが1つずつ示されている。ここで、チップ0内のゾーンA、チップ1内のゾーンB、チップ2内のゾーンC及びチップ3内のゾーンDは対応関係が設定されており、ゾーンA〜Dがゾーン群を形成している。このゾーン群に対しては、論理アドレスが連続する記憶領域が割当てられる。例えば、図3に示したような4096個の物理ブロックで構成されたゾーン群に対して、物理ブロック4000個分の記憶領域が割当てられる。
ゾーンA、ゾーンB、ゾーンC及びゾーンDは、それぞれサブゾーン0とサブゾーン1に分割されており、ゾーンA、ゾーンB、ゾーンC及びゾーンDのサブゾーン0(物理ブロック#0〜#511で構成されるサブゾーン)がサブゾーン群を形成している。一方、ゾーンA、ゾーンB、ゾーンC及びゾーンDのサブゾーン1(物理ブロック#512〜#1023で構成されるサブゾーン)もサブゾーン群を形成している。以下、ゾーンAのサブゾーン0、ゾーンBのサブゾーン0、ゾーンCのサブゾーン0及びゾーンDのサブゾーン0で形成される記憶領域をサブゾーン群0と言い、ゾーンAのサブゾーン1、ゾーンBのサブゾーン1、ゾーンCのサブゾーン1及びゾーンDのサブゾーン1で形成される記憶領域をサブゾーン群1と言う。
サブゾーン群0とサブゾーン群1では、互いに独立して仮想ブロックが形成される。つまり、ゾーンA、ゾーンB、ゾーンC及びゾーンDのサブゾーン0に属する物理ブロック同士、又は、ゾーンA、ゾーンB、ゾーンC及びゾーンDのサブゾーン1に属する物理ブロック同士は仮想的に結合されて仮想ブロックを形成するが、各ゾーンのサブゾーン0に属する物理ブロックと、それと異なるゾーンのサブゾーン1に属する物理ブロックは仮想的に結合されないように設定されている。
例えば、ゾーンAのサブゾーン0に属する物理ブロック#1、ゾーンBのサブゾーン0に属する物理ブロック#2、ゾーンCのサブゾーン0に属する物理ブロック#0及びゾーンDのサブゾーン0に属する物理ブロック#4が仮想的に結合され、仮想ブロックを形成している。この仮想ブロックは、サブゾーン0に属する物理ブロック同士が仮想的に結合されている。又、ゾーンAのサブゾーン1に属する物理ブロック#513、ゾーンBのサブゾーン1に属する物理ブロック#512、ゾーンCのサブゾーン1に属する物理ブロック#513及びゾーンDのサブゾーン1に属する物理ブロック#514が仮想的に結合され、仮想ブロックを形成している。この仮想ブロックは、サブゾーン1に属する物理ブロック同士が仮想的に結合されている。
つまり、この例では、ゾーンA、ゾーンB、ゾーンC及びゾーンDのサブゾーン0(物理ブロック#0〜#511)から1個ずつ選択された物理ブロックで仮想ブロックが形成される場合と、ゾーンA、ゾーンB、ゾーンC及びゾーンDのサブゾーン1(物理ブロック#512〜#1023)から1個ずつ選択された物理ブロックで仮想ブロックが形成される場合とがある。
図4は、仮想ブロックに記憶されるユーザーデータの配列を説明するための説明図である。
ここで、仮想ブロックに記憶されるユーザーデータの配列について説明する。図4は、仮想ブロックを形成する各物理ブロックが、32個のページで構成されている場合を示している。この仮想ブロックは、4個の物理ブロックが結合されているので、1つの仮想ブロックには128ページ分のユーザーデータが記憶される。論理アドレスが連続する128ページ分のユーザーデータを、ページ単位で区切り、論理アドレスが若い方から順番にYD0〜YD127とすれば、論理アドレスが最も若いユーザーデータYD0が、ゾーンAの物理ブロック#1のページ0(P0)に割当てられ、論理アドレスが次に若いユーザーデータYD1が、ゾーンBの物理ブロック#2のページ0(P0)に割当てられる。
以下、論理アドレスが若い方から順番に、ユーザーデータYD2が、ゾーンCの物理ブロック#0のページ0(P0)に割当てられ、ユーザーデータYD3が、ゾーンDの物理ブロック#4のページ0(P0)に割当てられる。
この後も同様に、ゾーンAの物理ブロック#1、ゾーンBの物理ブロック#2、ゾーンCの物理ブロック#0及びゾーンDの物理ブロック#4に対して、ユーザーデータYD4〜127が、論理アドレスが若い方から順番に割当てられる。
上記のように、論理アドレスが連続するユーザーデータを、ページ単位で、ゾーンA〜Dの物理ブロックに順次割当てた場合、論理アドレスが連続する複数ページ分のユーザーデータを、書込んだり、又は読み出したりするときに、フラッシュメモリ2のチップ0〜3に対して、並列に処理を実行することができる。又、チップ0〜3に接続するバスがチップ毎に独立していない場合であっても、チップ0〜3に対するユーザーデータの送受信やコマンドの送信を、各チップ0〜3内の処理が終了するのを待つことなく順次実行していくことができる。このような並列処理の実行や待機時間の短縮により、書込み処理や読出し処理に掛かる処理時間を短縮することができる。
次に、サブゾーン群毎に独立して形成される仮想ブロックと、論理アドレスの対応関係について説明する。仮想ブロックと論理アドレスの対応関係は、仮想ブロックを1個の物理ブロックと見做して、ブロック単位で管理されている。図3に示したように、4個の物理ブロックを仮想的に結合して、仮想ブロックを形成した場合、物理ブロック4個分の記憶領域に対して、連続する論理アドレスが割当てられる。
図5は、論理アドレス空間を示す図であり、論理アドレス空間をLBA(Logical Block Address)で示している。
図5中のLBA0〜LBA511はセクタ単位で付けた連番であり、1セクタの容量がフラッシュメモリ2の1ページの容量と等しく、各物理ブロックが32個のページで構成されている場合、4個の物理ブロックを結合した仮想ブロックは、論理アドレス空間の128セクタに割当てられる。従って、論理アドレス空間の128セクタ分の領域を1つの論理ブロック群とすれば、1つの仮想ブロックに1つの論理ブロック群が割当てられる。
図5に示した例では、論理アドレス空間を、128セクタ毎に区切った論理ブロック群に連番LBN0〜LBN3を付けている(以下、論理ブロック群に付けた連番を論理ブロック連番という)。
論理ブロック連番LBN0がLBA0〜LBA127に対応し、論理ブロック連番LBN1がLBA128〜LBA255に対応し、以下同様に、128セクタ毎に論理ブロック連番が割当てられている。
この論理ブロック連番LBN0〜LBN3は、その論理ブロック連番に対応するユーザーデータが書込まれた物理ブロックの冗長領域に書込まれ、書込まれた論理ブロック連番に基づいて仮想ブロックと論理ブロック群の対応関係が管理される。
例えば、図3で、LBA0〜LBA127に対応するユーザーデータが書込まれた仮想ブロックに属する4個の物理ブロックの冗長領域にはLBN0が書込まれ、LBA128〜LBA255に対応するユーザーデータが書込まれた仮想ブロックに属する4個の物理ブロックの冗長領域には、LBN1が書込まれる。
図3に示した4096個の物理ブロックで構成されたゾーン群には、例えば、4000個の物理ブロックに相当する論理アドレスの領域が割当てられる。この4000個の物理ブロックに相当する論理アドレスの領域は、論理アドレスが連続した領域であり、128セクタ毎に論理ブロック連番LBN0〜LBN999に対応する論理ブロック群に分割される。論理ブロック連番LBN0〜LBN999の各論理ブロック群に対応するユーザーデータは、サブゾーン群0に書込まれても、サブゾーン群1に書込まれてもよい。
例えば、論理ブロック連番LBN0に対応するユーザーデータが、サブゾーン群0に書込まれている場合に、このデータに置き換えられる新たなユーザーデータ(論理ブロック連番LBN0に対応するユーザーデータ)を、サブゾーン群1に書込んでもよい。
フラッシュメモリ2にアクセスするときには、論理ブロック群と仮想ブロックとの対応関係を示した変換テーブルが用いられる。
図6(a),(b)は、変換テーブルの説明図である。
図3で示したように、異なるゾーンに属する4個の物理ブロックを仮想的に結合して物理ブロックを形成した場合、各論理ブロック連番に対して、異なるゾーンに属する4個の物理ブロックが対応する。従って、各論理ブロック連番に対応する物理ブロックを、ゾーン毎に示した変換テーブル(図6(a))が必要になる。
しかし、図6(a)に示したような変換テーブルを作成する場合には、冗長領域に書込まれている論理ブロック連番を読み出す処理を、4つのゾーンに対して実行しなければならない。つまり、1つのゾーンが1024個の物理ブロックで構成されている場合には、4096個の物理ブロックに対して読出し処理を実行しなければならない。
上記のような変換テーブルの作成にかかる負担を軽減するため、本発明に係るフラッシュメモリシステム1では、各仮想ブロックに属する1個の物理ブロックと論理ブロック連番との対応関係を示した変換テーブルだけを作成し、変換テーブルに論理ブロック連番との対応関係が示されていない物理ブロックについては、後述するリンク番号に基づいて、対応する論理ブロック連番やLBAを知得している。
図6(b)は、ゾーンAのサブゾーン0(物理ブロック#0〜#511)及びゾーンBのサブゾーン1(物理ブロック#512〜#1023)と論理ブロック連番との対応関係を示した変換テーブルである。この変換テーブルは、各論理ブロック連番LBN0〜LBN999が、ゾーンAのサブゾーン0(物理ブロック#0〜#511)若しくはゾーンBのサブゾーン1(物理ブロック#512〜#1023)のいずれの物理ブロックに対応するかを示している。ここで、サブゾーン群0とサブゾーン群1では、独立して仮想ブロックが形成されるので、同じ論理ブロック連番に対応する物理ブロックが、ゾーンA内のサブゾーン0(物理ブロック#0〜#511)とゾーンB内のサブゾーン1(物理ブロック#512〜#1023)の双方に存在することはない。
仮に、サブゾーン群0とサブゾーン群1で、独立して仮想ブロックが形成されなかった場合、ゾーンA内のサブゾーン0(物理ブロック#0〜#511)に属する物理ブロックとゾーンB内のサブゾーン1(物理ブロック#512〜#1023)に属する物理ブロックを含んだ仮想ブロックが形成されることがある。このような場合、同じ論理ブロック連番に対応する物理ブロックが、ゾーンA内のサブゾーン0(物理ブロック#0〜#511)とゾーンB内のサブゾーン1(物理ブロック#512〜#1023)の双方に存在することになる。
上述のように、サブゾーン群0とサブゾーン群1で、独立して仮想ブロックが形成されるようにしたことにより、論理ブロック連番とゾーンAのサブゾーン0(物理ブロック#0〜#511)に属する物理ブロックとの対応関係、若しくは論理ブロック連番とゾーンBのサブゾーン1(物理ブロック#512〜#1023)に属する物理ブロックとの対応関係に基づいて、ゾーンA、ゾーンB、ゾーンC及びゾーンDで構成されるゾーン群にアクセスすることができる。
例えば、図6(b)の変換テーブルに基づいて、論理ブロック連番LBN0に対応する仮想ブロックにゾーン0の物理ブロック#1が属することが分かれば、後述するリンク番号に基づいて、この仮想ブロックに属する他の3個の物理ブロックを知得し、論理ブロック連番LBN0に対応する仮想ブロックにアクセスすることができる。又、論理ブロック連番LBN550に対応する仮想ブロックにゾーン1の物理ブロック#512が属することが分かれば、後述するリンク番号に基づいて、この仮想ブロックに属する他の3個の物理ブロックを知得し、論理ブロック連番LBN550に対応する仮想ブロックにアクセスすることができる。
ここで、図6(b)の変換テーブルは、論理ブロック連番LBN0〜LBN999とゾーンAのサブゾーン0(物理ブロック#0〜#511)に属する物理ブロック、若しくはゾーンBのサブゾーン1(物理ブロック#512〜#1023)に属する物理ブロックとの対応関係を示しているので、変換テーブルに示された物理ブロックの連番が#0〜#511の場合は、ゾーンAに属する物理ブロックが対応し、変換テーブルに示された物理ブロックの連番が#512〜#1023の場合は、ゾーンBに属する物理ブロックが対応する。
図7は、変換テーブルの作成方法を示す説明図である。
図6(b)の変換テーブルを作成する場合、図7に示したようにゾーンAのサブゾーン0に属する物理ブロック、つまり、ゾーンAの物理ブロック#0〜#511の冗長領域に対する読出し処理と、ゾーンBのサブゾーンに属する物理ブロック、つまり、ゾーンBの物理物理ブロック#512〜#1023の冗長領域に対する読出し処理を、並行して進行させることができる。従って、1つのゾーンのサブゾーン0及びサブゾーン1の冗長領域に対する読出し処理を実行して、論理ブロック連番LBN0〜LBN999と1つのゾーンに属する物理ブロック#0〜#1023との対応関係を示した変換テーブルを作成する場合よりも、短時間で変換テーブルを作成することができる。
図8(a),(b)は、仮想的に結合された各物理ブロックの冗長領域に書込まれている論理ブロック連番とリンク番号を示す図である。
図8(a)では、ゾーンAの物理ブロック#1、ゾーンBの物理ブロック#2、ゾーンCの物理ブロック#0及びゾーンDの物理ブロック#4は仮想的に結合されて1つの仮想ブロックとなり、この仮想ブロックには、論理アドレス空間のLBA0〜127が割当てられている。従って、これらの物理ブロックの冗長領域には、セクタ単位の連番LBA0〜127に対応する論理ブロック連番LBN0が書込まれている。
同様に、仮想ブロックを形成しているゾーンAの物理ブロック#3、ゾーンBの物理ブロック#4、ゾーンCの物理ブロック#5及びゾーンDの物理ブロック#6の冗長領域には、セクタ単位の連番LBA128〜LBA255に対応する論理ブロック連番LBN1が書込まれている。又、仮想ブロックを形成しているゾーンAの物理ブロック#7、ゾーンBの物理ブロック#6、ゾーンCの物理ブロック#8及びゾーンDの物理ブロック#9の冗長領域には、セクタ単位の連番LBA256〜LBA383に対応する論理ブロック連番LBN2が書込まれている。
論理ブロック連番LBN0〜LBN2に対応するこれらの仮想ブロックに属する各物理ブロックの冗長領域には、更にリンク番号が書込まれている。このリンク番号は、仮想的に結合されている物理ブロックの結合関係を知得するために使用される。例えば、ゾーンAの物理ブロック#1の冗長領域には、この物理ブロック#1と仮想的に結合するゾーンBの物理ブロック#2の番号#2がリンク番号として書込まれ、ゾーンBの物理ブロック#2の冗長領域には、この物理ブロック#2と仮想的に結合するゾーンCの物理ブロック#0の番号#0がリンク番号として書込まれる。ゾーンCの物理ブロック#0の冗長領域には、この物理ブロック#0と仮想的に結合するゾーンDの物理ブロック#4の番号#4がリンク番号として書込まれている。
従って、ゾーンAの物理ブロック#1の冗長領域に書込まれているリンク番号を読み出すことにより、この物理ブロックと仮想的に結合するゾーンBの物理ブロック#2の番号が#2であることが分かり、ゾーンBの物理ブロック#2の冗長領域に書込まれているリンク番号を読み出すことにより、この物理ブロック#2と仮想的に結合するゾーンCの物理ブロック#0の番号が#0であることが分かる。同様に、ゾーンCの物理ブロック#0の冗長領域に書込まれているリンク番号を読み出すことにより、この物理ブロック#0と仮想的に結合するゾーンDの物理ブロック#4の番号が#4であることが分かる。
論理ブロック連番LBN1、LBN2に対応する仮想ブロックについても同様に、ゾーンAの物理ブロックの冗長領域には、この物理ブロックと仮想的に結合するゾーンBの物理ブロックの連番がリンク番号として書込まれ、ゾーンBの物理ブロックの冗長領域には、この物理ブロックと仮想的に結合するゾーンCの物理ブロックの連番がリンク番号として書込まれ、ゾーンCの物理ブロックの冗長領域には、この物理ブロックと仮想的に結合するゾーンDの物理ブロックの連番がリンク番号として書込まれる。
これらのリンク番号によって、ゾーンAの物理ブロック#3と仮想的に結合する物理ブロックがゾーンBの物理ブロック#4であり、ゾーンBの物理ブロック#4と仮想的に結合する物理ブロックがゾーンCの物理ブロック#5であり、ゾーンCの物理ブロック#5と仮想的に結合する物理ブロックがゾーンDの物理ブロック#6であることが分かる。
また、ゾーンAの物理ブロック#7と仮想的に結合する物理ブロックがゾーンBの物理ブロック#6であり、ゾーンBの物理ブロック#6と仮想的に結合する物理ブロックがゾーンCの物理ブロック#8であり、ゾーンCの物理ブロック#8と仮想的に結合する物理ブロックがゾーンDの物理ブロック#9であることが分かる。
尚、変換テーブルが論理ブロック連番LBN0〜LBN999とゾーンAのサブゾーン0(物理ブロック#0〜#511)に属する物理ブロックとの対応関係を示している場合、サブゾーン群0に属する物理ブロックで構成されている仮想ブロックにアクセスするときは、ゾーンAのサブゾーン0(物理ブロック#0〜#511)に属する物理ブロックから順番にリンク番号を辿ることになる。
従って、ゾーンDの物理ブロックの冗長領域にリンク番号が書込まれていないが、ゾーンDの物理ブロックの冗長領域に、この物理ブロックと仮想的に結合するゾーンAの物理ブロックの連番をリンク番号として書込むようにすれば、ゾーンA〜Dのいずれの物理ブロックからも仮想的に結合する他のゾーンの物理ブロックを知ることができる。この場合、変換テーブルが、ゾーンA〜Dのいずれのゾーンに対する変換テーブルであっても、フラッシュメモリ2にアクセスすることができる。
図8(b)では、ゾーンAの物理ブロック#513、ゾーンBの物理ブロック#512、ゾーンCの物理ブロック#513及びゾーンDの物理ブロック#514が仮想的に結合されていることを示している。これらの物理ブロックの冗長領域には、この仮想ブロックに対応する論理ブロック連番LBN550が書込まれている。同様に、仮想ブロックを形成しているゾーンAの物理ブロック#515、ゾーンBの物理ブロック#514、ゾーンCの物理ブロック#517及びゾーンDの物理ブロック#516の冗長領域には、論理ブロック連番LBN551が書込まれている。又、仮想ブロックを形成しているゾーンAの物理ブロック#518、ゾーンBの物理ブロック#520、ゾーンCの物理ブロック#519及びゾーンDの物理ブロック#521の冗長領域には、論理ブロック連番LBN552が書込まれている。
論理ブロック連番LBN550〜552に対応するこれらの仮想ブロックに属する各物理ブロックの冗長領域にも、仮想的に結合されている物理ブロックの結合関係を知得するために使用されるリンク番号が書込まれている。論理ブロック連番LBN550〜LBN552に対応するこれらの仮想ブロックは、サブゾーン群1に属する物理ブロックで構成されている仮想ブロックに対応している。サブゾーン群1に対する変換テーブルが論理ブロック連番LBN0〜LBN999とゾーンBのサブゾーン1(物理ブロック#512〜#1023)に属する物理ブロックとの対応関係を示している場合、ゾーンBのサブゾーン1(物理ブロック#512〜#1023)に属する物理ブロックから順番にリンク番号を辿ることになる。
従って、論理ブロック連番LBN550〜LBA999に対応する仮想ブロックについては、ゾーンBの物理ブロックの冗長領域には、この物理ブロックと仮想的に結合するゾーンCの物理ブロックの連番がリンク番号として書込まれ、ゾーンCの物理ブロックの冗長領域には、この物理ブロックと仮想的に結合するゾーンDの物理ブロックの連番がリンク番号として書込まれ、ゾーンDの物理ブロックの冗長領域には、この物理ブロックと仮想的に結合するゾーンAの物理ブロックの連番がリンク番号として書込まれる。
このリンク番号によって、ゾーンBの物理ブロック#512と仮想的に結合する物理ブロックがゾーンCの物理ブロック#513であり、ゾーンCの物理ブロック#513と仮想的に結合する物理ブロックがゾーンDの物理ブロック#514であり、ゾーンDの物理ブロック#514と仮想的に結合する物理ブロックがゾーンAの物理ブロック#513であることが分かる。
又、ゾーンBの物理ブロック#514と仮想的に結合する物理ブロックがゾーンCの物理ブロック#517であり、ゾーンCの物理ブロック#517と仮想的に結合する物理ブロックがゾーンDの物理ブロック#516であり、ゾーンDの物理ブロック#516と仮想的に結合する物理ブロックがゾーンAの物理ブロック#515であることが分かる。
また、ゾーンBの物理ブロック#520と仮想的に結合する物理ブロックがゾーンCの物理ブロック#519であり、ゾーンCの物理ブロック#519と仮想的に結合する物理ブロックがゾーンDの物理ブロック#521であり、ゾーンDの物理ブロック#521と仮想的に結合する物理ブロックがゾーンAの物理ブロック#518であることが分かる。
尚、変換テーブルが論理ブロック連番LBN0〜LBN999とゾーンBのサブゾーン1(物理ブロック#512〜#1023)に属する物理ブロックとの対応関係を示している場合、サブゾーン群1に属する物理ブロックで構成されている仮想ブロックにアクセスするときは、ゾーンBのサブゾーン1(物理ブロック#512〜#1023)に属する物理ブロックから順番にリンク番号を辿ることになる。従って、ゾーンAの物理ブロックの冗長領域にリンク番号が書込まれていないが、ゾーンAの物理ブロックの冗長領域に、この物理ブロックと仮想的に結合するゾーンBの物理ブロックの連番をリンク番号として書込むようにすれば、ゾーンA〜Dのいずれの物理ブロックからも仮想的に結合する他のゾーンの物理ブロックを知ることができる。この場合、変換テーブルが、ゾーンA〜Dのいずれのゾーンに対する変換テーブルであっても、フラッシュメモリにアクセスすることができる。
このように冗長領域にリンク番号が書込まれていれば、仮想ブロックに属する1個の物理ブロックから、この物理ブロックと仮想的に結合する物理ブロックのアドレス情報(例えば、物理アドレスや物理ブロックの連番等)を取得することができる。従って、ホストシステムから供給されたLBAに対応する仮想ブロックに属する1個の物理ブロックのアドレス情報を、変換テーブルによって求めることができれば、変換テーブルによって求めた1個の物理ブロックと仮想的に結合する物理ブロックのアドレス情報を取得することができる。又、変換テーブルによって求められる1個の物理ブロックのアドレス情報は、仮想ブロックに属するいずれの物理ブロックのアドレス情報であってもよい。
又、ホストシステム4から供給された論理ブロックに基づいてフラッシュメモリ2にアクセスする場合は、まず、ホストシステム4から供給された論理ブロックアドレスに対応する仮想ブロックに属する1個の物理ブロックのアドレス情報を、変換テーブルを用いて取得する。続いて、この物理ブロックと仮想的に結合する物理ブロックのアドレス情報を、リンク番号に基づいて取得する。その後、取得したアドレス情報に基づいてフラッシュメモリ2にアクセスすればよい。
以上の説明では、各ゾーンを2つのサブゾーンに分割したが、サブゾーンの数は特に限定されることはない。
図9は、サブゾーンの他の構成例を示す図である。
例えば、図9に示したようにサブゾーン0〜3の4つのサブゾーンに分割してもよい。この場合、ゾーンAのサブゾーン0(物理ブロック#0〜#255)に属する物理ブロックと、ゾーンBのサブゾーン0(物理ブロック#0〜#255)に属する物理ブロックと、ゾーンCのサブゾーン0(物理ブロック#0〜#255)に属する物理ブロックと、ゾーンDのサブゾーン0(物理ブロック#0〜#255)に属する物理ブロックとが仮想的に結合される。
又、ゾーンAのサブゾーン1(物理ブロック#256〜#511)に属する物理ブロックと、ゾーンBのサブゾーン1(物理ブロック#256〜#511)に属する物理ブロックと、ゾーンCのサブゾーン1(物理ブロック#256〜#511)に属する物理ブロックと、ゾーンDのサブゾーン1(物理ブロック#256〜#511)に属する物理ブロックとが仮想的に結合される。
又、ゾーンAのサブゾーン2(物理ブロック#512〜#767)に属する物理ブロックと、ゾーンBのサブゾーン2(物理ブロック#512〜#767)に属する物理ブロックと、ゾーンCのサブゾーン2(物理ブロック#512〜#767)に属する物理ブロックと、ゾーンDのサブゾーン2(物理ブロック#512〜#767)に属する物理ブロックとが仮想的に結合される。
又、ゾーンAのサブゾーン3(物理ブロック#768〜#1023)に属する物理ブロックと、ゾーンBのサブゾーン3(物理ブロック#768〜#1023)に属する物理ブロックと、ゾーンCのサブゾーン3(物理ブロック#768〜#1023)に属する物理ブロックと、ゾーンDのサブゾーン3(物理ブロック#768〜#1023)に属する物理ブロックとが仮想的に結合される。
変換テーブルに示される論理ブロック連番LBN0〜LBN999と仮想ブロックに属する物理ブロックとの対応関係は、サブゾーン毎にゾーンA〜Dを選択することができる。例えば、ゾーンAのサブゾーン0(物理ブロック#0〜#255)に属する物理ブロック、ゾーンBのサブゾーン1(物理ブロック#256〜#511)に属する物理ブロック、ゾーンCのサブゾーン2(物理ブロック#512〜#767)に属する物理ブロック又はゾーンDのサブゾーン3(物理ブロック#768〜#1023)に属する物理ブロックと論理ブロック連番LBN0〜LBN999との対応関係を示した変換テーブルであってもよい。
変換テーブルが、ゾーンAのサブゾーン0(物理ブロック#0〜#255)、ゾーンBのサブゾーン1(物理ブロック#256〜#511)、ゾーンCのサブゾーン2(物理ブロック#512〜#767)又はゾーンDのサブゾーン3(物理ブロック#768〜#1023)に属する物理ブロックと論理ブロック連番LBN0〜LBN999との対応関係を示している場合には、次のようにしてリンク番号を辿ることになる。
図10(a)〜(d)は、リンク番号の辿り方の説明図である。
ゾーンA〜Dのサブゾーン0(物理ブロック#0〜#255)に属する物理ブロックで構成された仮想ブロックのリンク番号を辿る場合には、図10(a)に示したようにゾーンAのサブゾーン0(物理ブロック#0〜#255)に属する物理ブロックから順番にリンク番号を辿る。つまり、ゾーンA、ゾーンB、ゾーンC、ゾーンDの順番でリンク番号を辿る。
ゾーンA〜Dのサブゾーン1(物理ブロック#256〜#511)に属する物理ブロックで構成された仮想ブロックのリンク番号を辿る場合には、図10(b)に示したようにゾーンBのサブゾーン1(物理ブロック#256〜#511)に属する物理ブロックから順番にリンク番号を辿る。
つまり、ゾーンB、ゾーンC、ゾーンD、ゾーンAの順番でリンク番号を辿る。
ゾーンA〜Dのサブゾーン2(物理ブロック#512〜#767)に属する物理ブロックで構成された仮想ブロックのリンク番号を辿る場合には、図10(c)に示したようにゾーンCのサブゾーン2(物理ブロック#512〜#767)に属する物理ブロックから順番にリンク番号を辿る。つまり、ゾーンC、ゾーンD、ゾーンA、ゾーンBの順番でリンク番号を辿る。
ゾーンA〜Dのサブゾーン3(物理ブロック#768〜#1023)に属する物理ブロックで構成された仮想ブロックのリンク番号を辿る場合には、図10(d)に示したようにゾーンDのサブゾーン3(物理ブロック#768〜#1023)に属する物理ブロックから順番にリンク番号を辿る。つまり、ゾーンD、ゾーンA、ゾーンB、ゾーンCの順番でリンク番号を辿る。
尚、リンク番号は、物理ブロックの物理アドレスを知得できるアドレス情報であれば、特に限定されることはない。又、仮想的に結合される物理ブロックの数や、ゾーンを構成する物理ブロックの数、ゾーン群を構成するゾーンの数、ゾーン群に含まれるサブゾーン群の数についても、特に限定されることはなない。
又、上記の説明では、各物理ブロックに仮想的に結合される1個の物理ブロックのアドレス情報を、リンク番号として書込んだが、仮想的に結合される複数の物理ブロックのアドレス情報又は仮想的に結合される全ての物理ブロックのアドレス情報を書込んでもよい。仮想的に結合される全ての物理ブロックのアドレス情報、リンク番号として書込んだ場合には、その物理ブロックに書込まれているリンク番号を全て読み出すだけで、その物理ブロックと仮想的に結合される全ての物理ブロックのアドレス情報を取得することができる。
又、図7に示した図6(b)の変換テーブルの作成方法では、ゾーンA之サブゾーン0とゾーンBのサブゾーン1を対象に変換テーブルの作成を行っている。従って、ゾーンAのサブゾーン0に属する物理ブロックとゾーンBのサブゾーン1に属する物理ブロックが仮想的に結合されて(仮想ブロックを形成し)、ゾーンAのサブゾーン0とゾーンBのサブゾーン1の双方に同じ論理ブロック連番に対応する物理ブロックがなければ、ゾーンAとゾーンBに属する物理ブロックと仮想的に結合されるゾーンCとゾーンDに属する物理フロックは、サブゾーン0とサブゾーン1のいずれに属していても支障がない。つまり、ゾーンAのサブゾーン0に属する物理ブロックとゾーンBのサブゾーン1に属する物理ブロック同士、もしくはゾーンAのサブゾーン1に属する物理ブロックとゾーンBのサブゾーン0に属する物理ブロック同士が仮想的に結合されれば、こちらの物理ブロックと仮想的に結合されるゾーンCとゾーンDに属する物理ブロックは、サブゾーン0とサブゾーン1のいずれに属していても、ゾーンAのサブゾーン0とゾーンBのサブゾーン1を対象として、変換テーブルを作成することができる。従って、少なくとも変換テーブルの作成対象になっている複数のサブゾーンにおいて、
1つのサブゾーン内の物理ブロックと他のサブゾーン内の物理ブロックが、仮想的に結合されなければ、つまり、1つのサブゾーン内の物理ブロックと他のサブゾーン内の物理ブロックに、同じ論理ブロック連番に対応する物理ブロックがなければ、本発明の効果を得ることができる。
本発明の実施形態に係るフラッシュメモリシステムのブロック図である。 ブロックとページの関係を示す説明図である。 仮想的に結合された物理ブロックを示す図である。 仮想的に結合された物理ブロックに書込まれるユーザーデータの配列を示す図である。 論理アドレス空間を示す図である。 変換テーブルを示す図である。 変換テーブルの作成処理を説明するための図である。 フラッシュメモリの冗長領域に書込まれている論理ブロック連番とリンク番号を示す図である。 サブゾーンの他の構成例を示す図である。 リンク番号を説明するための図である。
符号の説明
1 フラッシュメモリシステム
2 フラッシュメモリ
3 メモリコントローラ
4 ホストシステム
5 ホストインターフェース制御ブロック
6 マイクロプロセッサ
7 ホストインターフェースブロック
8 ワークエリア
9 バッファ
10 フラッシュメモリインターフェースブロック
11 ECCブロック
12 フラッシュメモリシーケンサブロック
13 外部バス
14 内部バス

Claims (3)

  1. 物理ブロック単位でデータ消去が行われるフラッシュメモリを複数チップ集めて構成した記憶領域に、ホストコンピュータから供給される論理アドレスに基づいてアクセスするメモリコントローラであって、
    各チップ内の物理ブロックを複数集めて、各チップ内に複数のサブゾーンを形成する手段と、
    異なるチップ内の前記サブゾーンを複数集めて、サブゾーン群を形成する手段と、
    前記サブゾーン群を複数集めて、ゾーン群を形成する手段と、
    同一の前記サブゾーン群に属するそれぞれの前記サブゾーンから選択された物理ブロックを仮想的に結合することにより仮想ブロックを形成する手段と、
    論理アドレスが連続する複数セクタの領域を集めて、論理ブロックを形成する手段と、
    前記論理ブロックを複数集めて、論理ゾーンを形成する手段と、
    前記ゾーン群と前記論理ゾーンとの対応関係を管理する手段と、
    前記仮想ブロックに対して、当該仮想ブロックが属する前記ゾーン群と対応関係にある前記論理ゾーンに属する前記論理ブロックを割当てる手段と
    記仮想ブロックを構成する物理ブロックに、当該仮想ブロックと対応関係にある前記論理ブロックを特定する論理ブロック情報と、当該仮想ブロックに属する他の物理ブロックを特定するリンク情報を書込む手段と、
    物理ブロックから前記論理ブロック情報と前記リンク情報を読出すことにより、前記論理ブロックと対応関係にある前記仮想ブロックを構成する物理ブロックを特定する特定手段とを備え、
    前記特定手段は、いずれかの前記論理ブロックと対応関係にある前記仮想ブロックを構成する物理ブロックを特定するときに、前記いずれかの前記論理ブロックが属する前記論理ゾーンと対応関係にある前記ゾーン群内の異なる前記サブゾーン群に属する物理ブロックであり、かつ異なるチップに属する物理ブロックから前記論理ブロック情報を並行して読み出すことを特徴とするメモリコントローラ。
  2. 請求項1に記載のメモリコントローラと複数チップのフラッシュメモリを備えることを特徴とするフラッシュメモリシステム。
  3. 物理ブロック単位でデータ消去が行われるフラッシュメモリを複数チップ集めて構成した記憶領域へのアクセスを、ホストコンピュータから供給される論理アドレスに基づいて制御するフラッシュメモリの制御方法であって、
    チップ内の物理ブロックを複数集めて、各チップ内に複数のサブゾーンを形成する処理と
    異なるチップ内の前記サブゾーンを複数集めて、サブゾーン群を形成する処理と
    前記サブゾーン群を複数集めて、ゾーン群を形成する処理と、
    同一の前記サブゾーン群に属するそれぞれの前記サブゾーンから選択された物理ブロック仮想的に結合することにより仮想ブロックを形成する処理と、
    論理アドレスが連続する複数セクタの領域を集めて、論理ブロックを形成する処理と、
    前記論理ブロックを複数集めて、論理ゾーンを形成する処理と、
    前記ゾーン群と前記論理ゾーンとの対応関係を管理する処理と、
    前記仮想ブロックに対して、当該仮想ブロックが属する前記ゾーン群と対応関係にある前記論理ゾーンに属する前記論理ブロックを割当てる処理と、
    前記仮想ブロックを構成する物理ブロックに、当該仮想ブロックと対応関係にある前記論理ブロックを特定する論理ブロック情報と、当該仮想ブロックに属する他の物理ブロックを特定するリンク情報を書込む処理と、
    物理ブロックから前記論理ブロック情報と前記リンク情報を読出すことにより、前記論理ブロックと対応関係にある前記仮想ブロックを構成する物理ブロックを特定する特定処理とを含み、
    前記特定処理では、いずれかの前記論理ブロックと対応関係にある前記仮想ブロックを構成する物理ブロックを特定するときに、前記いずれかの前記論理ブロックが属する前記論理ゾーンと対応関係にある前記ゾーン群内の異なる前記サブゾーン群に属する物理ブロックであり、かつ異なるチップに属する物理ブロックから前記論理ブロック情報を並行して読み出すことを特徴とするフラッシュメモリの制御方法。
JP2004316099A 2004-10-29 2004-10-29 メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法 Expired - Lifetime JP4254930B2 (ja)

Priority Applications (1)

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

Applications Claiming Priority (1)

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

Publications (2)

Publication Number Publication Date
JP2006127234A JP2006127234A (ja) 2006-05-18
JP4254930B2 true JP4254930B2 (ja) 2009-04-15

Family

ID=36721922

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004316099A Expired - Lifetime JP4254930B2 (ja) 2004-10-29 2004-10-29 メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法

Country Status (1)

Country Link
JP (1) JP4254930B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5378197B2 (ja) * 2007-07-20 2013-12-25 パナソニック株式会社 メモリコントローラ、メモリカード、不揮発性メモリシステム
JP5087347B2 (ja) 2007-09-06 2012-12-05 株式会社日立製作所 半導体記憶装置及び半導体記憶装置の制御方法

Also Published As

Publication number Publication date
JP2006127234A (ja) 2006-05-18

Similar Documents

Publication Publication Date Title
JP4373943B2 (ja) メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
JP2006018373A (ja) メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
JP4661497B2 (ja) メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
JP4636005B2 (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
JP4661191B2 (ja) メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
JP4153535B2 (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びに、フラッシュメモリの制御方法
JP4241741B2 (ja) メモリコントローラ及びフラッシュメモリシステム
JP4254930B2 (ja) メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
JP4235595B2 (ja) メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム及びフラッシュメモリの制御方法
JP4609406B2 (ja) メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム、並びに、フラッシュメモリの制御方法
JP4177292B2 (ja) メモリンコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
JP4697146B2 (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
JP4000124B2 (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びに、フラッシュメモリの制御方法
JP4177301B2 (ja) メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
JP2005292925A (ja) メモリコントローラ、フラッシュメモリシステム、並びに、フラッシュメモリの制御方法
JP3934659B1 (ja) メモリコントローラ及びフラッシュメモリシステム
JP4661748B2 (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
JP4636046B2 (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
JP4254933B2 (ja) メモリコントローラ及びフラッシュメモリシステム
JP2006099594A (ja) メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
JP2007156582A (ja) メモリコントローラ及びフラッシュメモリシステム
JP4332108B2 (ja) メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
JP4194518B2 (ja) メモリコントローラ、フラッシュメモリシステム、並びに、フラッシュメモリの制御方法
JP4569554B2 (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
JP4366283B2 (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060313

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20081111

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20081125

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20081225

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

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

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

Free format text: PAYMENT UNTIL: 20120206

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4254930

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

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20130206

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20140206

Year of fee payment: 5