JP2006040484A - フラッシュメモリモジュール - Google Patents
フラッシュメモリモジュール Download PDFInfo
- Publication number
- JP2006040484A JP2006040484A JP2004222375A JP2004222375A JP2006040484A JP 2006040484 A JP2006040484 A JP 2006040484A JP 2004222375 A JP2004222375 A JP 2004222375A JP 2004222375 A JP2004222375 A JP 2004222375A JP 2006040484 A JP2006040484 A JP 2006040484A
- Authority
- JP
- Japan
- Prior art keywords
- flash memory
- block
- data
- connector
- memory module
- 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.)
- Withdrawn
Links
Images
Abstract
【課題】 フラッシュメモリをホストシステムの内部に実装できるようにする。
【解決手段】 ホストシステムの持つバスに電気的に接続されるコネクタ14aと、フラッシュメモリ2と、メモリコントローラ3とを、基板に搭載し、ホストシステムの内部に実装されるようになっている。コネクタ14aは、ホストシステムの持つバスに電気的に接続され、コネクタ14aを介してそのバスから与えられる書込み命令若しくは読出し命令に基づいてメモリコントローラ3がフラッシュメモリ2に対するアクセスを制御する。
【選択図】 図1
【解決手段】 ホストシステムの持つバスに電気的に接続されるコネクタ14aと、フラッシュメモリ2と、メモリコントローラ3とを、基板に搭載し、ホストシステムの内部に実装されるようになっている。コネクタ14aは、ホストシステムの持つバスに電気的に接続され、コネクタ14aを介してそのバスから与えられる書込み命令若しくは読出し命令に基づいてメモリコントローラ3がフラッシュメモリ2に対するアクセスを制御する。
【選択図】 図1
Description
本発明は、フラッシュメモリモジュールに関する。
近年、メモリーカードやシリコンディスク等の形態でメモリシステムに使用される半導体メモリとして、フラッシュメモリが広く採用されている。フラッシュメモリに格納されたデータは、電力が供給されていないときでも保持されていることが要求される。
NAND型フラッシュメモリは、上記のメモリシステムで特に多く用いられるフラッシュメモリである。
NAND型フラッシュメモリに含まれている複数のメモリセルのそれぞれは、消去状態のときに論理値“1”を示し、書込み状態の時に“0”を示す。そして、複数のメモリセルは、他のメモリセルとは独立して消去状態から書込状態へと変化することができる。
NAND型フラッシュメモリに含まれている複数のメモリセルのそれぞれは、消去状態のときに論理値“1”を示し、書込み状態の時に“0”を示す。そして、複数のメモリセルは、他のメモリセルとは独立して消去状態から書込状態へと変化することができる。
これとは対照的に、書込状態から消去状態へと変化させるときには、各メモリセルは他のメモリセルと独立して変化させることができない。この書込状態から消去状態に変化させるときには、ブロックと称される予め定められた所定数のメモリセルを全て同時に消去状態にする。この一括消去動作は、一般的に、「ブロック消去」と称されている。NAND型フラッシュメモリに対する書込処理若しくは読出処理は、ページと称される予め定められた数のメモリセル単位に処理が行なわれる。消去処理の単位であるブロックは複数のページで構成されている。
又、フラッシュメモリには寿命があり、消去処理と書込処理が繰り返される書替の回数が増大すると、正常な書込みを行なうことができない不良ブロックが発生する。この不良ブロックの数が増えると、フラッシュメモリの信頼性が低下し、使用し続けることが困難になる。従って、フラッシュメモリは、通常、ホストシステムの基板に実装して使用されず、各種の外部インターフェースコネクタを介して接続される外部記憶メディアとして使用されている。
下記特許文献1では、コンパクトフラッシュ(登録商標)でありながら、スマートメディアとしても利用できる外部記憶メディアが提案されている。
特開2002−42063号公報
フラッシュメモリに、ブートプログラムやドライバプログラム等を記憶して、ホストシステム内に内臓して使用したい場合がある。しかしながら、特許文献1に示されているコンパクトフラッシュ(登録商標)やスマートメディアは、外部記憶メディアとして使用することはできるが、ホストシステム内に内臓して使用することはできなかった。
本発明は、ホストシステム内に内臓して使用するのに好適なフラッシュメモリモジュールを提供することを目的とする。
上記目的を達成するために、本発明の観点に係るフラッシュメモリモジュールは、ホストシステムの持つバスに電気的に接続されるコネクタと、フラッシュメモリと、前記フラッシュメモリに接続され、前記コネクタを介して前記バスから与えられる書込み命令若しくは読出し命令に基づいて該フラッシュメモリに対するアクセスを制御する制御回路と、前記コネクタ、前記制御回路及び前記フラッシュメモリが実装された基板と、を備えることを特徴とする。
なお、前記コネクタを介して供給される電源の電圧値を検出する手段と、前記電圧値が予め設定された電圧値に達するまで、前記制御回路を停止状態にする起動制御回路と、を備えてもよい。
又、前記コネクタが前記バスに接続されることにより、前記基板が前記ホストシステムの内部の主基板に実装され、該基板と該主基板とが対向するようにしてもよい。
又、前記制御回路の少なくとも一部と前記フラッシュメモリとが、前記基板の互いに異なる面に実装されてもよい。
本発明のフラッシュメモリモジュールは、コネクタを介してホストシステム内の主基板に実装することができるので、ブートプログラムやドライバプログラム等を記憶したフラッシュメモリモジュールを、ホストシステム内に容易に内蔵させることができる。又、コネクタを介して実装されているので、不良ブロックの増加等の不具合が生じた場合であっても、容易に交換することができる。更に、フラッシュメモリモジュールの初期化等を別の装置で行なった後に、ホストシステム内の主基板に実装することもできる。
以下、図面に基づき、本発明の実施形態について説明する。
図1は、本発明の実施形態に係るフラッシュメモリモジュール1を概略的に示す機能ブロック図である。
図2は、フラッシュメモリモジュールの外形を示す図である。
図1は、本発明の実施形態に係るフラッシュメモリモジュール1を概略的に示す機能ブロック図である。
図2は、フラッシュメモリモジュールの外形を示す図である。
図1のように、フラッシュメモリモジュール1は、NAND型フラッシュメモリで構成されたフラッシュメモリ2と、フラッシュメモリ2を制御するメモリコントローラ3とを備えている。
フラッシュメモリモジュール1は、図2(b)に示したようにホストシステム内の主基板16にコネクタ14aを介して実装され、ホストシステム内に内蔵された記憶装置として用いられる。フラッシュメモリモジュール1は、外部インターフェースコネクタに接続される記憶メディアとは異なり、頻繁に抜差しされることがないため、ブートプログラムやドライバプログラム等のプログラムやホストシステムで頻繁使用されるデータ等を保存する用途に適している。
フラッシュメモリモジュール1は、図2(a)に示したように、基板15の一方の面にフラッシュメモリ2が実装され、他方の面にメモリコントローラ3が実装されている。このように、フラッシュメモリ2とメモリコントローラ3を異なる面に実装することにより、基板15の面積を小さくすることができる。
基板15のメモリコントローラ3が実装されている面には、ホストシステム内の主基板16と接続するためのコネクタ14aが実装されている。ホストシステム内の主基板16には、フラッシュメモリモジュール1の基板15に実装されているコネクタ14aと接続するコネクタ14bが実装されている。このコネクタ14bは、フラッシュメモリモジュール1内のATAバス4に接続されている。従って、コネクタ14aとコネクタ14bが接続されることにより、フラッシュメモリモジュール1は、ホストシステム内のATAバス4に接続される。
基板15に実装されているフラッシュメモリ2及びメモリコントローラ3は、コネクタ14(14a、14b)を介してホストシステム内の主基板16側から供給される電源によって動作する。この電源の電圧が、低い状態でフラッシュメモリ2やメモリコントローラ3が動作を開始してしまうと、フラッシュメモリモジュール1が誤動作を起こす恐れがある。従って、主基板16側から供給される電源の電圧が所定の電圧レベルに達するまで、フラッシュメモリ2及びメモリコントローラ3が起動しないように制御する回路を、基板15に実装することが好ましい。
尚、フラッシュメモリ2、メモリコントローラ3及びコネクタ14aとして、表面実装タイプのものを用いた方が、フラッシュメモリモジュール1の小型化に適している。フラッシュメモリモジュール1の基板15とホストシステム内の主基板16とが対向配置されるようにすれば、フラッシュメモリモジュール1のホストシステム内の主基板16上での高さを低くすることができる。コネクタ14(14a、14b)だけの固定では不十分な場合には、保持部材等を用いて、確実に固定することが好ましい。
フラッシュメモリモジュール1とホストシステム内の主基板16はコネクタ14(14a、14b)を介して接続されるので、ホストシステム側のコネクタ14bと同一のコネクタを実装した検査装置等で、フラッシュメモリモジュール1の動作確認や初期設定を行なった後に、フラッシュメモリモジュール1をホストシステム内の主基板16に実装することもできる。
尚、ホストシステムとしては、文字、音声、或いは画像情報等の種々の情報を処理するパーソナルコンピュータやデジタルスチルカメラをはじめとする各種情報処理装置が挙げられる。
フラッシュメモリ2は、ページ単位で読出し又は書込みを実行し、ブロック単位で消去を実行するデバイスである。
メモリコントローラ3は、ホストシステム内のATA(AT Attachment)バス4を介したフラッシュメモリ2のアクセスを制御する回路であり、ホストインターフェース制御ブロック5と、マイクロプロセッサ6と、ホストインターフェースブロック7と、ワークエリア8と、バッファ9と、内部インターフェースブロック10と、ECC(エラー・コレクション・コード)ブロック11と、フラッシュメモリシーケンサブロック12とから構成される。
これら機能ブロックによって構成されるメモリコントローラ3は、一つの半導体チップ上に集積されている。以下に各ブロックの機能を説明する。
ホストインターフェース制御ブロック5は、ホストインターフェースブロック7の動作を制御する機能ブロックである。ここで、ホストインターフェース制御ブロック5は、ホストインターフェースブロック7の動作を設定する動作設定レジスタ(図示せず)を備えており、この動作設定レジスタに基づきホストインターフェースブロック7は動作する。
マイクロプロセッサ6は、メモリコントローラ3を構成する各機能ブロック全体の動作を制御する機能ブロックである。
マイクロプロセッサ6は、メモリコントローラ3を構成する各機能ブロック全体の動作を制御する機能ブロックである。
ホストインターフェースブロック7は、ATAバス4を介してデータ、アドレス情報、ステータス情報及び外部コマンド情報の授受を行なう機能ブロックである。すなわち、フラッシュメモリモジュール1がホストシステム内に実装されると、フラッシュメモリモジュール1はホストシステム内のATAバス4に接続される。この状態において、ATAバス4を介して供給されるデータ等は、ホストインターフェースブロック7を入口としてメモリコントローラ3の内部に取り込まれる。フラッシュメモリモジュール1からATAバス4に供給されるデータ等は、ホストインターフェースブロック7を出口としてATAバス4に供給される。
さらに、ホストインターフェースブロック7は、ATAバス4を介して供給されるアドレス情報及び外部コマンドを一時的に保持するタスクファイルレジスタ(図示せず)及びエラーが発生した場合にセットされるエラーレジスタ(図示せず)等を有している。
ワークエリア8は、フラッシュメモリ2の制御に必要なデータが一時的に格納される作業領域であり、複数のスタティックランダムアクセスメモリ(Static Random Access Memory:以下、SRAMという)によって構成される機能ブロックである。
バッファ9は、フラッシュメモリ2から読出したデータ及びフラッシュメモリ2に書込むデータを一時的に保持する機能ブロックである。すなわち、フラッシュメモリ2から読出されたデータは、メモリコントローラ3が受取準備できたことを知せる信号を、ATAバス4を介して受取るまでバッファ9に保持され、フラッシュメモリ2に書込むデータは、フラッシュメモリ2の書込み準備ができるまでバッファ9に保持される。
フラッシュメモリシーケンサブロック12は、内部コマンドに基づきフラッシュメモリ2の動作を制御する機能ブロックである。フラッシュメモリシーケンサブロック12は、複数のレジスタ(図示せず)を備え、この複数のレジスタに内部コマンドを実行する際に必要な情報が設定される。この複数のレジスタに内部コマンドを実行する際に必要な情報が設定されると、フラッシュメモリシーケンサブロック12は、その情報に基づいて処理を実行する。
ここで、「内部コマンド」とは、メモリコントローラ3からフラッシュメモリ2に与えられるコマンドであり、ATAバス4を介してフラッシュメモリモジュール1に与えられるコマンドである「外部コマンド」とは区別される。
内部インターフェースブロック10は、内部バス13を介して、フラッシュメモリ2とデータ、アドレス情報、ステータス情報、内部コマンド情報及びデバイスID情報等の授受を行なう機能ブロックである。
ECCブロック11は、フラッシュメモリ2に書込むデ―タに付加されるエラーコレクションコードを生成するとともに、フラッシュメモリ2から読出したデータに付加されたエラーコレクションコードに基づいて、読出したデータに含まれる誤りを検出・訂正する機能ブロックである。
次に、フラッシュメモリ2について説明する。
フラッシュメモリモジュール1で、フラッシュメモリ2を構成するNAND型フラッシュメモリは、ストレージデバイスへの用途として(ハードディスクの代わりになるものとして)開発された不揮発性メモリである。このNAND型フラッシュメモリは、ランダムアクセスを行なうことができず、書込みと読出しはページ単位で行われ、消去についてはブロック単位で行なわれる。又、データの上書きができないので、データを書込むときは、消去されている領域にデータの書込みを行なう。
フラッシュメモリモジュール1で、フラッシュメモリ2を構成するNAND型フラッシュメモリは、ストレージデバイスへの用途として(ハードディスクの代わりになるものとして)開発された不揮発性メモリである。このNAND型フラッシュメモリは、ランダムアクセスを行なうことができず、書込みと読出しはページ単位で行われ、消去についてはブロック単位で行なわれる。又、データの上書きができないので、データを書込むときは、消去されている領域にデータの書込みを行なう。
フラッシュメモリ2は、このような特徴を有するため、通常、データの書替を行なう場合には、ブロック消去されている消去済みブロックに新たなデータ(書替後のデータ)を書込み、古いデータ(書替前のデータ)が書込まれていたブロックを消去するという処理を行なっている。このようなデータの書替えを行なった場合、書替後のデータは、書替前のデータと異なるブロックに書込まれる。
そのため、ATAバス4を介して与えられるアドレスに基づく論理ブロックアドレスと、フラッシュメモリ2内でのブロックアドレスである物理ブロックアドレスとの対応関係は、データを書替える毎に動的に変化する。この論理ブロックアドレスと物理ブロックアドレスとの対応関係は、通常、その対応関係を示したアドレス変換テーブルによって管理されており、アドレス変換テーブルは、後述する対応論理ブロックアドレスに基づいて作成される。
上記ブロックの構成は、NAND型フラッシュメモリの仕様によって異なる。
図3(a),(b)は、ブロックとページの関係を示す説明図である。
一般的なNAND型フラッシュメモリでは、図3(a)に示したように、1ブロックが32ページ(P00〜P31)で構成され、各ページが512バイトのユーザ領域と16バイトの冗長領域で構成されている。
図3(a),(b)は、ブロックとページの関係を示す説明図である。
一般的なNAND型フラッシュメモリでは、図3(a)に示したように、1ブロックが32ページ(P00〜P31)で構成され、各ページが512バイトのユーザ領域と16バイトの冗長領域で構成されている。
又、記憶容量の増加に伴い、図3(b)に示したように、1ブロックが64ページ(P00〜P63)で構成され、各ページが2048バイトのユーザ領域と64バイトの冗長領域で構成されているものも提供されている。
この実施形態のフラッシュメモリ2では、1ブロックが32ページ(P00〜P31)で構成され、各ページを512バイトのユーザ領域と16バイトの冗長領域で構成したものを用いる。
ユーザ領域は、主に、ATAバス4を介して供給されるデ―タが記憶される領域であり、冗長領域は、エラーコレクションコード、対応論理ブロックアドレス及びブロックステータス等の付加データが記憶される領域である。
エラ―コレクションコードとは、ユーザ領域に記憶されているデータに含まれる誤りを検出、訂正するための付加データであり、外部のECCブロック11によって生成される。
エラ―コレクションコードとは、ユーザ領域に記憶されているデータに含まれる誤りを検出、訂正するための付加データであり、外部のECCブロック11によって生成される。
対応論理ブロックアドレスは、そのブロックにデータが格納されている場合に、そのブロックがどの論理ブロックアドレスに対応するかを示すものである。尚、そのブロックにデータが格納されていない場合は、対応論理ブロックアドレスも格納されていないので、対応論理ブロックアドレスが格納されているか否かで、そのブロックが消去済みブロックであるか否かを判断することもできる。つまり、対応論理ブロックアドレスが格納されていない場合は、消去済みブロックであると判断される。
ブロックステータスは、そのブロックが不良ブロック(正常にデータの書込み等を行なうことができないブロック)であるか否かを示すフラグであり、そのブロックが不良ブロックであると判断された場合には、不良ブロックであることを示すフラグが設定される。
一般的なNAND型フラッシュメモリと同様に、フラッシュメモリ2は、書込みデータ若しくは読出しデータを保持するためのレジスタと、データを記憶するメモリセルアレイによって構成されている。メモリセルアレイは、複数のメモリセルが直列に接続されたメモリセル群を複数備えており、ワード線によってメモリセル群の特定のメモリセルが選択される。このワード線によって選択されたメモリセルとレジスタとの間で、データの複写(レジスタからメモリセルへの複写、若しくはメモリセルからレジスタへの複写)が行なわれる。
メモリセルアレイを構成するメモリセルは、2つのゲートを備えたMOSトランジスタで構成されている。ここで、上側のゲートはコントロールゲートと呼ばれ、下側のゲートはフローティングゲートと呼ばれている。フローティングゲートに電荷(電子)を注入若しくはフローティングゲートから電荷(電子)を排出することによって、データの書込み若しくはデータの消去を行なっている。
このフローティングゲートは周囲を絶縁体で囲まれているので、注入された電子は長期間にわたって保持される。尚、フローティングゲートに電子を注入するときは、コントロールゲートが高電位側となる高電圧を印加して電子を注入し、フローティングゲートから電子を排出するときは、コントロールゲートが低電位側となる高電圧を印加して電子を排出する。
フローティングゲートに電子が注入されている状態(書込状態)が、論理値の“0”のデータに対応し、フローティングゲートから電子が排出されている状態(消去状態)が、論理値の“1”のデータに対応する。
次に、フラッシュメモリ2に対するアクセスについて説明する。
フラッシュメモリ2内の複数のブロックでゾーンを構成し、フラッシュメモリ2に対するアクセスを制御する場合について説明する。
フラッシュメモリ2内の複数のブロックでゾーンを構成し、フラッシュメモリ2に対するアクセスを制御する場合について説明する。
図4は、ゾーンの説明図であり、例えば、1024のブロックでゾーンを構成した例を示している。
フラッシュメモリ2では、例えば1024のブロックB0000〜B1023で1つのゾーンを構成している。各ブロックは、32ページP00〜P31で構成されている。前述したように、ブロックは消去処理の単位であり、ページは読出し及び書込み処理の単位である。尚、各ブロックの記憶容量や、各ブロックのページ数はフラッシュメモリ2の仕様によって異なる。
フラッシュメモリ2では、例えば1024のブロックB0000〜B1023で1つのゾーンを構成している。各ブロックは、32ページP00〜P31で構成されている。前述したように、ブロックは消去処理の単位であり、ページは読出し及び書込み処理の単位である。尚、各ブロックの記憶容量や、各ブロックのページ数はフラッシュメモリ2の仕様によって異なる。
このゾーンは、一定範囲の論理ブロックアドレス空間に割当てられている。図5に示した例では、1024のブロックで構成されたゾーンを、1000ブロック分の論理ブロックアドレスの空間に割当てている。ここで、ゾーンを構成するブロックが、24ブロック分余計に割当てられているのは、不良ブロックの発生を考慮したためである。但し、データ書替の際に一旦別のブロックに新データを書込み、その後、旧データが書込まれていたブロックをブロック消去する場合には、新データを書込むための予備ブロックが必要なので、実質的には23ブロック分が余計に割当てられていることになる。尚、ゾーンを構成するブロックの数は、フラッシュメモリモジュール1の用途やフラッシュメモリ2の仕様に応じて適宜設定される。
各ゾーンに割当てられている1000ブロック分の論理ブロックアドレスと、ゾーンを構成する各ブロックとの対応関係、つまり、論理ブロックアドレスと物理ブロックアドレスの対応関係を管理するため、各ブロックの冗長領域には、対応論理ブロックアドレスが書込まれる。この対応論理ブロックアドレスは、ATAバス4を介して与えられる論理ブロックアドレスをそのまま書込んでもよいが、各ゾーンに割当てられた論理ブロックアドレス空間内での通番(各ゾーンを1000ブロック分の論理ブロックアドレスの空間に割当てた場合は0〜999までの通番)を書込んでもよい(以下、各ゾーンに割当てられた論理ブロックアドレス空間内での通番を論理通番と言う)。
図5は、論理ブロックアドレスとゾーンを示す説明図である。
ここで、論理通番は、各ゾーンに応じたオフセットを加えれば、実際の論理ブロックアドレスに変換することができる。
ここで、論理通番は、各ゾーンに応じたオフセットを加えれば、実際の論理ブロックアドレスに変換することができる。
例えば図5で、ゾーン0に割当てられた論理ブロックアドレス空間の先頭アドレスがADD0の場合、各ゾーンには下記のようなオフセットが割当てられる。
ゾーン0:ADD0
ゾーン1:ADD0+1000×1
ゾーン2:ADD0+1000×2
ゾーン3:ADD0+1000×3
・
・
・
ゾーンN:ADD0+1000×N
ゾーン0:ADD0
ゾーン1:ADD0+1000×1
ゾーン2:ADD0+1000×2
ゾーン3:ADD0+1000×3
・
・
・
ゾーンN:ADD0+1000×N
次に、アドレス変換テーブルについて図面を参照して説明する。
フラッシュメモリモジュール1のマイクロプロセッサ6は、ATAバス4を介して与えられるアドレス情報に基づく論理ブロックアドレスを、フラッシュメモリ2内のブロックアドレスである物理ブロックアドレスに変換し、得られた物理ブロックアドレスに基づいてフラッシュメモリ2にアクセスしている。この際、論理ブロックアドレスから物理ブロックアドレスへの変換は、アドレス変換テーブルを用いて行なわれる。
フラッシュメモリモジュール1のマイクロプロセッサ6は、ATAバス4を介して与えられるアドレス情報に基づく論理ブロックアドレスを、フラッシュメモリ2内のブロックアドレスである物理ブロックアドレスに変換し、得られた物理ブロックアドレスに基づいてフラッシュメモリ2にアクセスしている。この際、論理ブロックアドレスから物理ブロックアドレスへの変換は、アドレス変換テーブルを用いて行なわれる。
アドレス変換テーブルは、各ゾーンに割当てられている論理ブロックアドレスとゾーンを構成するブロックとの対応関係を示したテーブルであり、マイクロプロセッサ6が、ワークエリア8を利用してゾーンごとに作成する。
図6は、アドレス変換テーブルの説明図である。
このアドレス変換テーブルでは、1000ブロック分の論理ブロックアドレスに対応する物理ブロックが、物理通番で示されている。ここで、物理通番とは、各ゾーン内で物理ブロックアドレスの順番で付けた通番(2進数:000 0000 0000b〜011 1111 1111b)であり、各ゾーンに応じたオフセットを加えることにより、フラッシュメモリ2内での実際の物理ブロックアドレスに変換することができる。
このアドレス変換テーブルでは、1000ブロック分の論理ブロックアドレスに対応する物理ブロックが、物理通番で示されている。ここで、物理通番とは、各ゾーン内で物理ブロックアドレスの順番で付けた通番(2進数:000 0000 0000b〜011 1111 1111b)であり、各ゾーンに応じたオフセットを加えることにより、フラッシュメモリ2内での実際の物理ブロックアドレスに変換することができる。
例えば、フラッシュメモリ2内のブロックをアドレス順でゾーン0からゾーンNに割付けた場合、各ゾーンには次のようなオフセットが割当てられる。
ゾーン0:0
ゾーン1:0+1000×1
ゾーン2:0+1000×2
ゾーン3:0+1000×3
・
・
・
ゾーンN:0+1000×N
ゾーン0:0
ゾーン1:0+1000×1
ゾーン2:0+1000×2
ゾーン3:0+1000×3
・
・
・
ゾーンN:0+1000×N
このアドレス変換テーブルを用いて論理ブロックアドレスを物理ブロックアドレスに変換するときは、ATAバス4を介して与えられる論理ブロックアドレスの割当てられているゾーン(ゾーン0〜Nのいずれかのゾーン)を求め、そのゾーンに対応するアドレス変換テーブルを用いてアドレス変換処理を行なう。
このアドレス変換処理では、ATAバス4を介して与えられる論理ブロックアドレスから求めた論理通番に対応する物理通番をアドレス変換テーブルから読出し、読出した物理通番を物理ブロックアドレスに変換する。
例えば、図6の例では、ATAバス4を介して与えられた論理ブロックアドレスから求めた論理通番が“0”であれば、この論理通番に対応する物理通番は“9”(000 0000 1001b(2進数))になる。同様に、論理ブロックアドレスから求めた論理通番が“1”であれば、この論理通番に対応する物理通番は“2”(000 0000 0010b(2進数))になる。この物理通番に、各ゾーンに割当てられているオフセットを加えることにより、論理ブロックアドレスを物理ブロックアドレスに変換することができる。
図6に示したアドレス変換テーブルを作成する場合、例えば、1000ブロック分の物理通番を記述できる領域をワークエリア8上に確保する。この際、1000ブロック分の領域を、論理通番の順番で、各論理通番に対応する物理通番を記述する領域として割当てる。ここで、更に、各論理通番に対応するデータが記憶されているか否かを判断するために、データが記憶されているか否かを示す情報を設定できるようにすることが好ましい。図6では、最上位ビットが“1”のとき、データが記憶されていないことを示している。
例えば、特定のビットを、データが記憶されているか否かを示す情報に割当て、そのビットの論理値によってデータが記憶されているか否かを示すようにしてもよい。
このデータが記憶されているか否かを示す情報は、テーブル作成開始時に、データが記憶されていないことを示す値に初期設定される。その後、アドレス変換テーブルを作成するゾーン内の各ブロックの冗長領域を順次読出していき、冗長領域に論理通番が記述されていた場合には、アドレス変換テーブルにおいてその論理通番に対応する部分に、その論理通番が記述されていたブロックの物理通番を記述し、更に、データが記憶されていないことを示す情報を、データが記憶されていることを示す値に変更する。この処理を、ゾーンを構成する1024の各ブロックについて順次行なっていき、この処理が完了するとアドレス変換テーブルが完成する。
フラッシュメモリモジュール1におけるデータの書替処理では、ブロック消去されている消去済みブロックに新たなデータ(書替後のデータ)を書込み、その後、古いデータ(書替前のデータ)が書込まれていたブロックを消去する。この書替処理では、論理ブロックアドレスと物理ブロックアドレスの対応関係(論理通番と物理通番の対応関係)が、データの書替処理を行なう毎に変化するので、マイクロプロセッサ6は、アドレス変換テーブル上で対応関係が変化した部分をその都度、更新する。
次に、消去済みブロックを検索するためのテーブルである消去済みブロック検索用テーブルについて説明する。
図7(a),(b)は、消去済みブロック検索用テーブルの説明図である。
書替処理では、この消去済みブロック検索用テーブルで検索した消去済みブロックに、新たなデータ(書替後のデータ)が書込まれる。この消去済みブロック検索用テーブルは、ワークエリア8上に作成される。
書替処理では、この消去済みブロック検索用テーブルで検索した消去済みブロックに、新たなデータ(書替後のデータ)が書込まれる。この消去済みブロック検索用テーブルは、ワークエリア8上に作成される。
消去済みブロック検索用テーブルでは、ゾーンを構成する各ブロックを、ワークエリア8を構成するSRAM上の各ビットに対応させ、各ビットの論理値の“0”又は“1”で、データが書込まれている状態、又はデータが書込まれていない状態をそれぞれ示している。
ゾーンを構成する各ブロックとSRAM上の各ビットとの対応関係については、消去済みブロック検索用テーブル上のビットを、若番側から順に(図7(a)のように上の行から下の行へ、各行を左から右へ)物理通番の順番に対応させている。従って、消去済みブロック検索用テーブルの左上のビットが、物理通番0のブロックに対応し、右下のビットが、物理通番1023のブロックに対応する。各ビットの論理値については、データが書込まれている場合(又は不良ブロックであることを示すブロックステータスが記述されている場合)は、そのビットに“0”を、データが書込まれていない場合(消去済みブロックの場合)は、そのビットに“1”を設定する。
この消去済みブロック検索用テーブルは、アドレス変換テーブルを作成する際に一緒に作成することができる。
例えば、消去済みブロック検索用テーブルを作成するSRAM上の領域に"0"を設定しておき、各ブロックの冗長領域に対応論理ブロックアドレスも不良ブロックであることを示すブロックステータスも記述されていないときに、そのブロックに対応するビットに“1”を設定するようにすれば、アドレス変換テーブルを作成する際に一緒に作成することができる。
又、この消去済みブロック検索用テーブルの更新については、消去済みブロックにデータを書込んだときに、そのブロックに対応するビットを“1”から“0”に変更し、データが書込まれているブロックをブロック消去したときに、そのブロックに対応するビットを“0"から“1”に変更する。
この消去済みブロック検索用テーブルを用いて、消去済みブロックを検索する場合、物理通番0に対応するビット(図7(b)の一番上の行の一番左のビット)から、物理通番1023に対応するビット(図7(b)の一番下の行の一番右のビット)までを走査していき、消去済みブロックに対応する“1”のビットを検索する。
その結果、例えば走査の途中でテーブルで消去済みブロックに対応する“1”のビットが検出された場合、そこで検索を終了し、そのビットに対応する物理通番のブロックが、新たなデータ(書替後のデータ)が書込まれる物理ブロックになる。次回の検索は、消去済みブロックとして検出された“1”のビットの次のビットから走査が開始される。その後も、同様の検索を続けていき、最期のブロックに相当するビットまで走査が進んだときは、最初のブロックに相当するビットに戻る。このようにして検索された消去済みブロックに、新たなデータ(書替後のデータ)が書込まれる。
以上のように、本発明の実施形態に係るフラッシュメモリモジュール1は、ホストシステムのATAバス4に電気的に接続されるコネクタ14aと、フラッシュメモリ2と、メモリコントローラ3とを、基板15に搭載したので、ホストシステムの内部に実施可能になっている。
また、基板15の一方の面にフラッシュメモリ2が実装され、他方の面にメモリコントローラ3が搭載されているので、基板15の面積を小さくすることができる。
また、主基板16側から供給される電源の電圧が所定の電圧レベルに達するまで、フラッシュメモリ2及びメモリコントローラ3が起動しないように制御する回路を基板15に設けることにより、フラッシュメモリモジュール1の誤動作を防止できる。
また、コネクタ14aによって、ホストシステムが接続されるので、不具合が生じたときにも交換が可能である。
また、コネクタ14aによって、ホストシステムが接続されるので、不具合が生じたときにも交換が可能である。
1 フラッシュメモリモジュール
2 フラッシュメモリ
3 メモリコントローラ
4 ATAバス
5 ホストインターフェース制御ブロック
6 マイクロプロセッサ
7 ホストインターフェースブロック
8 ワークエリア
9 バッファ
10 内部インターフェースブロック
11 ECCブロック
12 フラッシュメモリシーケンサブロック
13 内部バス
14a コネクタ
15 基板
16 主基板
2 フラッシュメモリ
3 メモリコントローラ
4 ATAバス
5 ホストインターフェース制御ブロック
6 マイクロプロセッサ
7 ホストインターフェースブロック
8 ワークエリア
9 バッファ
10 内部インターフェースブロック
11 ECCブロック
12 フラッシュメモリシーケンサブロック
13 内部バス
14a コネクタ
15 基板
16 主基板
Claims (4)
- ホストシステムの持つバスに電気的に接続されるコネクタと、
フラッシュメモリと、
前記フラッシュメモリに接続され、前記コネクタを介して前記バスから与えられる書込み命令若しくは読出し命令に基づいて該フラッシュメモリに対するアクセスを制御する制御回路と、
前記コネクタ、前記制御回路及び前記フラッシュメモリが実装された基板と、
を備えることを特徴とするフラッシュメモリモジュール。 - 前記コネクタを介して供給される電源の電圧値を検出する手段と、
前記電圧値が予め設定された電圧値に達するまで、前記制御回路を停止状態にする起動制御回路と、
を備えることを特徴とする請求項1に記載のフラッシュメモリモジュール。 - 前記コネクタが前記バスに接続されることにより、前記基板が前記ホストシステムの内部の主基板に実装され、該基板と該主基板とが対向することを特徴とする請求項1又は2に記載のフラッシュメモリモジュール。
- 前記制御回路の少なくとも一部と前記フラッシュメモリとが、前記基板の互いに異なる面に実装されていることを特徴とする請求項1乃至3のいずれか1項に記載のフラッシュメモリモジュール。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004222375A JP2006040484A (ja) | 2004-07-29 | 2004-07-29 | フラッシュメモリモジュール |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004222375A JP2006040484A (ja) | 2004-07-29 | 2004-07-29 | フラッシュメモリモジュール |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2006040484A true JP2006040484A (ja) | 2006-02-09 |
Family
ID=35905292
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004222375A Withdrawn JP2006040484A (ja) | 2004-07-29 | 2004-07-29 | フラッシュメモリモジュール |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2006040484A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7870328B2 (en) | 2006-04-17 | 2011-01-11 | Tdk Corporation | Memory controller and flash memory system |
JP2013206453A (ja) * | 2012-03-29 | 2013-10-07 | Innodisk Corp | 埋め込み型メモリモジュールおよびそれが挿設されるマザーボード |
-
2004
- 2004-07-29 JP JP2004222375A patent/JP2006040484A/ja not_active Withdrawn
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7870328B2 (en) | 2006-04-17 | 2011-01-11 | Tdk Corporation | Memory controller and flash memory system |
JP2013206453A (ja) * | 2012-03-29 | 2013-10-07 | Innodisk Corp | 埋め込み型メモリモジュールおよびそれが挿設されるマザーボード |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8792277B2 (en) | Split data error correction code circuits | |
US7330995B2 (en) | Nonvolatile memory apparatus which prevents destruction of write data caused by power shutdown during a writing process | |
JP4373943B2 (ja) | メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法 | |
JP2005108273A (ja) | 不揮発性半導体記憶装置 | |
JP2005190288A (ja) | メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びに、フラッシュメモリの制御方法 | |
JP2006018373A (ja) | メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法 | |
JP4177360B2 (ja) | メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法 | |
JP4433792B2 (ja) | メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びに、フラッシュメモリの制御方法 | |
JP4177292B2 (ja) | メモリンコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法 | |
JP2005316793A (ja) | フラッシュメモリシステム及びフラッシュメモリの制御方法 | |
JP2006040484A (ja) | フラッシュメモリモジュール | |
JP4641034B2 (ja) | 不揮発性記憶システム | |
JP2005292925A (ja) | メモリコントローラ、フラッシュメモリシステム、並びに、フラッシュメモリの制御方法 | |
JP4177301B2 (ja) | メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法 | |
JP4194518B2 (ja) | メモリコントローラ、フラッシュメモリシステム、並びに、フラッシュメモリの制御方法 | |
JP4332108B2 (ja) | メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法 | |
JP4419525B2 (ja) | メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びに、フラッシュメモリの制御方法 | |
JP4304167B2 (ja) | メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法 | |
JP2005293177A (ja) | メモリコントローラ及びフラッシュメモリシステム | |
JP2006099696A (ja) | メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム及びフラッシュメモリの制御方法 | |
JP4245594B2 (ja) | メモリコントローラ及びフラッシュメモリシステム | |
JP2011048852A (ja) | 不揮発性記憶システム | |
JP2008112335A (ja) | メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法 | |
JP2006099594A (ja) | メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法 | |
JP2006099517A (ja) | メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びに、フラッシュメモリの制御方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Withdrawal of application because of no request for examination |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20071002 |