(57)【要約】【課題】ＳＬＣ型のフラッシュメモリとＭＬＣ型のフラッシュメモリの両者のメリットを生かした記憶装置を提供する。【解決手段】記憶装置は、第１の記憶領域を有し、単セルあたり２種類の値を記憶可能な二値フラッシュメモリと、第２の記憶領域を有し、単セルあたり３種類以上の値を記憶可能な多値フラッシュメモリと、第１の記憶領域を先頭の領域に配置しつつ、第１の記憶領域と第２の記憶領域とを論理的に結合して、単一の記憶領域である結合領域としてデータの読み書きを行うコントローラとを備える。記憶領域の先頭には、所定のファイルシステムに基づいて、データの管理情報が記憶される。【選択図】図１
2008310793.tif 000002
【特許請求の範囲】
【請求項１】
記憶領域の先頭にデータの管理情報を記録する所定のファイルシステムに基づいてデータを記憶可能な記憶装置であって、
第１の記憶領域を有し、単セルあたり２種類の値を記憶可能な二値フラッシュメモリと、
第２の記憶領域を有し、単セルあたり３種類以上の値を記憶可能な多値フラッシュメモリと、
前記第１の記憶領域を先頭の領域に配置しつつ、前記第１の記憶領域と前記第２の記憶領域とを論理的に結合して、単一の記憶領域である結合領域としてデータの読み書きを行う制御部と
を備える記憶装置。
【請求項２】
請求項１に記載の記憶装置であって、
前記制御部は、
前記結合領域と、前記第１の記憶領域および前記第２の記憶領域との間のアドレス変換を行うアドレス変換部と、
前記アドレス変換の結果に応じて、前記データの読み書き先を、前記二値フラッシュメモリおよび前記多値フラッシュメモリの中から選択する選択部と
を備える記憶装置。
【請求項３】
請求項２に記載の記憶装置であって、
前記制御部は、前記アドレス変換部によって変換されたアドレスを、前記二値フラッシュメモリおよび前記多値フラッシュメモリに送信した後で、前記データの読み書きを行うためのコマンドを、前記選択されたメモリに送信する
記憶装置。
【請求項４】
請求項１ないし請求項３のいずれかに記載の記憶装置であって、
前記第１の記憶領域は、前記結合領域の０．５％以上１００％未満のいずれかの割合を占める領域である
記憶装置。
【請求項５】
請求項１ないし請求項４のいずれかに記載の記憶装置であって、
当該記憶装置は、所定のインタフェースを介してホスト装置と接続されており、
前記制御部は、前記ホスト装置からの指示に応じて前記データの読み書きを行う
記憶装置。
【請求項６】
請求項５に記載の記憶装置であって、
前記制御部は、前記ホスト装置から、当該記憶装置の記憶容量の問い合わせを受けた際に、前記結合領域の記憶容量を返信する手段を備える
記憶装置。
【請求項７】
請求項１ないし請求項６のいずれかに記載の記憶装置であって、
前記多値フラッシュメモリを複数備え、
前記制御部は、前記第１の記憶領域を先頭の領域に配置しつつ、前記第１の記憶領域と複数の前記第２の記憶領域とを論理的に結合する
記憶装置。
【請求項８】
記憶領域の先頭にデータの管理情報を記録する所定のファイルシステムに基づいてデータを記憶可能な記憶装置であって、
第１の記憶領域を有し、単セルあたり２種類の値を記憶可能な二値フラッシュメモリと、
前記第１の記憶領域よりも広い第２の記憶領域を有し、単セルあたり３種類以上の値を記憶可能な多値フラッシュメモリと、
当該記憶装置に接続されたホスト装置から指定されたアドレスと、前記第１の記憶領域の最大容量に基づいて定められた所定の閾値とを比較する比較部と、
前記アドレスが、前記閾値内のアドレスである場合には、データの読み書き先を前記二値フラッシュメモリに切り換え、前記アドレスが、前記閾値を超えるアドレスである場合には、前記読み書き先を、前記多値フラッシュメモリに切り換える制御部と
を備える記憶装置。
【請求項９】
請求項８に記載の記憶装置であって、
前記制御部は、前記読み書き先が、前記二値フラッシュメモリおよび前記多値フラッシュメモリのいずれかに切り換えられた場合においても、前記アドレスの値をそのまま用いて、前記二値フラッシュメモリまたは前記多値フラッシュメモリに対して、データの読み書きを行う
記憶装置。
【請求項１０】
請求項９に記載の記憶装置であって、
前記制御部は、前記ホスト装置から、当該記憶装置の記憶容量の問い合わせを受けた際に、前記第２の記憶領域の記憶容量を返信する手段を備える
記憶装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータや各種電子機器で用いられるデータを記憶する記憶装置に関する。
【背景技術】
【０００２】
近年、コンピュータの外部記憶装置として、コンパクトフラッシュ（登録商標。以下同じ）に代表されるメモリカードや、ＵＳＢメモリが普及している。これらの外部記憶装置には、書換可能な不揮発性ＲＯＭであるフラッシュメモリが内蔵されている。フラッシュメモリには、ＳＬＣ（Single Level Cell）型とＭＬＣ（Multi Level Cell）型と呼ばれるものがある（例えば、下記特許文献１参照）。
【０００３】
【特許文献１】特開２００２−８３８０号公報
【０００４】
ＳＬＣ型のフラッシュメモリは、従来より広く用いられているメモリであり、単セル当たり１ビットの情報が記憶可能なメモリである（以下、「二値メモリ」ともいう）。これに対して、ＭＬＣ型のフラッシュメモリは、単セル当たり２ビット以上の情報が記憶可能なメモリである（以下、「多値メモリ」ともいう）。ＭＬＣ型のフラッシュメモリは、各セルが、完全に充電された状態、電力が３分の２残った状態、３分の１残った状態、すべて放電された状態という、４つの状態を取ることで、単セル当たり、２ビットの情報を記憶することができる。
【０００５】
一般的に、ＭＬＣ型のフラッシュメモリは、動作が低速で、書換可能回数が少ないのに対して、記憶容量はＳＬＣ型よりも大きいという特徴がある。一方、ＳＬＣ型のフラッシュメモリは、動作が高速で、書換可能回数が多いのに対して、記憶容量は、ＭＬＣ型よりも少ないという特徴がある。
【発明の開示】
【発明が解決しようとする課題】
【０００６】
このような問題を考慮し、本発明が解決しようとする課題は、ＳＬＣ型のフラッシュメモリとＭＬＣ型のフラッシュメモリの両者の特徴の利点を生かした記憶装置を提供することにある。
【課題を解決するための手段】
【０００７】
上記課題を踏まえ、本発明の一態様である記憶装置を次のように構成した。
【０００８】
すなわち、記憶領域の先頭にデータの管理情報を記録する所定のファイルシステムに基づいてデータを記憶可能な記憶装置であって、第１の記憶領域を有し、単セルあたり２種類の値を記憶可能な二値フラッシュメモリと、第２の記憶領域を有し、単セルあたり３種類以上の値を記憶可能な多値フラッシュメモリと、前記第１の記憶領域を先頭の領域に配置しつつ、前記第１の記憶領域と前記第２の記憶領域とを論理的に結合して、単一の記憶領域である結合領域としてデータの読み書きを行う制御部とを備えることを要旨とする。
【０００９】
上記態様の記憶装置によれば、二値フラッシュメモリが有する第１の記憶領域を結合領域の先頭に配置する。そのため、ファイルアロケーションテーブルなどのデータの管理情報が、二値フラッシュメモリ内に書き込まれることになる。ファイルアロケーションテーブルは、データの書込や消去が行われると頻繁に書き換えられる管理情報であるため、多値フラッシュメモリよりも高速に動作可能な二値フラッシュメモリを結合領域の先頭に配置することで、全ての領域が多値フラッシュメモリによって構成される記憶装置よりも高速にデータを記憶することが可能になる。また、二値フラッシュメモリは、多値フラッシュメモリよりも、書換可能回数が多いという特徴があるため、頻繁に書き換えられるファイルアロケーションテーブルを二値フラッシュメモリに書き込むことで、データ記憶の信頼性を向上させることが可能になる。このように、上記態様の記憶装置によれば、多値フラッシュメモリを用いることで大容量化を実現しつつ、二値フラッシュメモリをも用いることで、動作の高速性や信頼性に優れる記憶装置を提供することが可能になる。
【００１０】
上記態様の記憶装置において、前記制御部は、前記結合領域と、前記第１の記憶領域および前記第２の記憶領域との間のアドレス変換を行うアドレス変換部と、前記アドレス変換の結果に応じて、前記データの読み書き先を、前記二値フラッシュメモリおよび前記多値フラッシュメモリの中から選択する選択部とを備えるものとしてもよい。このような態様であれば、アドレス変換の結果に応じて、データの読み書き先を容易に判別することができる。
【００１１】
上記態様の記憶装置において、前記制御部は、前記アドレス変換部によって変換されたアドレスを、前記二値フラッシュメモリおよび前記多値フラッシュメモリに送信した後で、前記データの読み書きを行うためのコマンドを、前記選択されたメモリに送信するものとしてもよい。
【００１２】
このような態様では、変換後のアドレスについては全てのメモリに送信し、その後、コマンドについては、選択されたメモリに対してのみ送信する。このような態様であれば、変換後のアドレスの送信先を、二値フラッシュメモリと多値フラッシュメモリとから選択する必要がないため、処理速度を向上させることが可能になる。
【００１３】
上記態様の記憶装置において、前記第１の記憶領域は、前記結合領域の０．５％以上１００％未満のいずれかの割合を占める領域とすることができる。第１の記憶領域をこのような領域に設定することで、ファイルアロケーションテーブル等の管理情報を確実に二値フラッシュメモリ内に記憶させることが可能になる。
【００１４】
上記態様の記憶装置において、当該記憶装置は、所定のインタフェースを介してホスト装置と接続されており、前記制御部は、前記ホスト装置からの指示に応じて前記データの読み書きを行うものとしてもよい。このような態様であれば、当該記憶装置を、ホスト装置の外部記憶装置や内部記憶装置として利用することが可能になる。所定のインタフェースとしては、例えば、ＵＳＢ、ＩＥＥＥ１３９４、パラレルＡＴＡ、シリアルＡＴＡ等のインタフェースを利用することができる。
【００１５】
上記態様の記憶装置において、前記制御部は、前記ホスト装置から、当該記憶装置の記憶容量の問い合わせを受けた際に、前記結合領域の記憶容量を返信する手段を備えるものとしてもよい。このような態様であれば、各フラッシュメモリが個別に有する記憶容量ではなく、結合領域全体の容量をホスト装置に通知することが可能になる。
【００１６】
上記態様の記憶装置において、前記多値フラッシュメモリを複数備え、前記制御部は、前記第１の記憶領域を先頭の領域に配置しつつ、前記第１の記憶領域と複数の前記第２の記憶領域とを論理的に結合するものとしてもよい。このような態様によれば、多値フラッシュメモリを複数備えた態様とすることができるので、大容量の記憶領域を有する記憶装置を提供することができる。
【００１７】
本発明は、次のような態様の記憶装置としても適用することができる。すなわち、記憶領域の先頭にデータの管理情報を記録する所定のファイルシステムに基づいてデータを記憶可能な記憶装置であって、
第１の記憶領域を有し、単セルあたり２種類の値を記憶可能な二値フラッシュメモリと、
前記第１の記憶領域よりも広い第２の記憶領域を有し、単セルあたり３種類以上の値を記憶可能な多値フラッシュメモリと、
当該記憶装置に接続されたホスト装置から指定されたアドレスと、前記第１の記憶領域の最大容量に基づいて定められた所定の閾値とを比較する比較部と、
前記アドレスが、前記閾値内のアドレスである場合には、データの読み書き先を前記二値フラッシュメモリに切り換え、前記アドレスが、前記閾値を超えるアドレスである場合には、前記読み書き先を、前記多値フラッシュメモリに切り換える制御部とを備える記憶装置である。
【００１８】
この態様の記憶装置では、データの読み書き先を、指定されたアドレスに応じて多値フラッシュメモリと二値フラッシュメモリとの間で切り換えるという単純な制御を行うことで、特性の異なるこれらのメモリに対してデータの読み書きを行うことができる。この結果、多値フラッシュメモリを用いることで大容量化を実現しつつ、二値フラッシュメモリをも用いることで、動作の高速性や信頼性に優れる記憶装置を提供することが可能になる。
【００１９】
上記態様の記憶装置において、前記制御部は、前記読み書き先が、前記二値フラッシュメモリおよび前記多値フラッシュメモリのいずれかに切り換えられた場合においても、前記アドレスの値をそのまま用いて、前記二値フラッシュメモリまたは前記多値フラッシュメモリに対して、データの読み書きを行うこととしてもよい。このような態様であれば、ホスト装置から指定されたアドレスを他の体系のアドレスに変換する処理が必要ないため、処理の単純化を図ることが可能になる。
【００２０】
上記態様の記憶装置において、前記制御部は、前記ホスト装置から、当該記憶装置の記憶容量の問い合わせを受けた際に、前記第２の記憶領域の記憶容量を返信する手段を備えていてもよい。上述した態様の記憶装置の最大記憶容量は、第２の記憶領域に一致する。そのため、第２の記憶領域の記憶容量をそのまま返信するという単純な処理によって、当該記憶装置の記憶容量をホスト装置に通知することが可能になる。
【発明を実施するための最良の形態】
【００２１】
以下、上述した本発明の作用・効果を一層明らかにするため、本発明の実施の形態を実施例に基づき説明する。
【００２２】
Ａ．第１実施例：
図１は、本発明の実施例としての記憶装置１０の概略構成を示す説明図である。本実施例の記憶装置１０は、コンピュータに代表されるホスト装置８０とＵＳＢインタフェースを介して接続され、外部記憶装置として利用されるものである。ホスト装置８０は、記憶装置１０を、所定のファイルシステム（ＦＡＴ１６やＦＡＴ３２など）でフォーマットしてデータの読み書きを行う。
【００２３】
図示するように、記憶装置１０は、メインコントローラ２０を備えており、更に、このメインコントローラ２０と接続され、それぞれがＮＡＮＤフラッシュメモリを有する第１メモリユニット３０と、第２メモリユニット４０と、第３メモリユニット５０と、第４メモリユニット６０とを備えている。
【００２４】
第１メモリユニット３０は、ＳＬＣ（Single Level Cell）型のＮＡＮＤフラッシュメモリである二値メモリ３１を備えている。また、第１メモリユニット３０は、この二値メモリ３１をその電気的特性に応じて制御する第１ユニットコントローラ３２を備えている。本実施例では、第１ユニットコントローラ３２として、汎用的なコンパクトフラッシュ用のメモリコントローラを採用した。第１ユニットコントローラ３２は、メインコントローラ２０からＡＴＡ規格に基づくコマンドやデータを受信し、二値メモリ３１に対して、データの読み書きを行う。本実施例では、第１メモリユニット３０は、１Ｇバイト分の記憶領域を有するものとする。１つの二値メモリ３１で１Ｇバイト分の記憶領域を実現できない場合には、複数個の二値メモリ３１を第１ユニットコントローラ３２に対して接続することで１Ｇバイトの記憶領域を実現してもよい。
【００２５】
第２メモリユニット４０は、ＭＬＣ（Multi Level Cell）型のＮＡＮＤフラッシュメモリである多値メモリ４１を備えている。本実施例の多値メモリ４１は、４値（２ビット）の情報を記憶可能なメモリである。もちろん、多値メモリ４１としては、３値以上の情報を記憶可能なメモリを適宜採用することが可能である。第２メモリユニット４０は、更に、この多値メモリ４１をその電気的特性に応じて制御する第２ユニットコントローラ４２を備えている。本実施例では、第２ユニットコントローラ４２として、第１メモリユニット３０と同様に、汎用的なコンパクトフラッシュ用のメモリコントローラを採用した。第３メモリユニット５０および第４メモリユニット６０は、第２メモリユニット４０と同一の構成である。本実施例では、第２メモリユニット４０、第３メモリユニット５０、および、第４メモリユニット６０は、それぞれ、１５Ｇバイト分の記憶領域を有するものとする。そのため、本実施例の記憶装置１０は、全体として、４６Ｇ（１Ｇ＋１５Ｇ＋１５Ｇ＋１５Ｇ）バイト分の記憶領域を有している。なお、１つの多値メモリで１５Ｇバイト分の記憶領域を実現できない場合には、複数個の多値メモリをユニットコントローラに対して接続することで１５Ｇバイトの記憶領域を実現してもよい。
【００２６】
メインコントローラ２０は、ＵＳＢインタフェースを介して接続されたホスト装置８０からの指示に応じて、各メモリユニット３０〜６０に対するデータの読み書きを制御する集積回路である。メインコントローラ２０は、内部回路として、バス変換回路２１とユニット管理回路２２とを備えている。
【００２７】
バス変換回路２１は、ホスト装置８０から受信したＵＳＢ規格に基づく信号を、ＡＴＡ（Advanced Technology Attachment）規格に基づく信号に変換する機能を備える。ＡＴＡとは、コンピュータと記憶装置との標準的な通信インタフェースである。ＡＴＡ規格に基づく信号としては、例えば、３つのアドレス信号Ａ０〜Ａ２や、１６のデータ信号Ｄ００〜Ｄ１５、リセット信号等の制御信号がある。
【００２８】
ユニット管理回路２２は、各メモリユニット３０〜６０が備える二値メモリや多値メモリの記憶領域を論理的に結合して、単一の記憶領域として扱う機能を備える。ユニット管理回路２２は、バス変換回路２１によって変換されたＡＴＡ信号のＬＢＡ（Logical Block Addressing）アドレスに基づきアドレス変換を行うことで各メモリユニット３０〜６０の論理的な結合を実現する。ＬＢＡとは、記憶領域のすべてのセクタに通し番号を割り当て、その通し番号によってアクセスを行うセクタを指定する方式のことをいう。ＬＢＡアドレスは、この通し番号によって表される。なお、「ＬＢＡアドレス」は、「ＬＢＡパラメータ」とも呼ばれる。
【００２９】
図２は、ユニット管理回路２２によって行われるアドレス変換の概念を示す説明図である。図の左側には、ユニット管理回路２２が管理している各メモリユニット３０〜６０の記憶領域を示している。図示するように、本実施例では、第１メモリユニット３０内の記憶領域は、「０」から「Ｗ」までのＬＢＡアドレスで表されている。また、第２メモリユニット４０は、「０」から「Ｘ」まで、第３メモリユニットは、「０」から「Ｙ」まで、第４メモリユニットは、「０」から「Ｚ」まで、のＬＢＡアドレスで表されている。
【００３０】
図２の右側には、各メモリユニット３０〜６０の記憶領域を結合した後の記憶領域を示している。図示するように、ユニット管理回路２２は、第１メモリユニット３０が備える二値メモリ３１の記憶領域を先頭の領域に配置し、その後に、他のメモリユニット４０〜６０が備える多値メモリ４１〜６１の記憶領域を配置する。結合後の記憶領域は、図２に示すように、「０」から「Ｗ＋Ｘ＋Ｙ＋Ｚ」までのＬＢＡアドレスで表されることになる。ユニット管理回路２２がこうして記憶領域の結合を行うことで、ホスト装置８０は、記憶装置１０内の記憶領域を、「０」から「Ｗ＋Ｘ＋Ｙ＋Ｚ」までの連続したＬＢＡアドレスで表されるものとして認識することが可能になる。以下の説明では、結合後の記憶領域のことを、「結合領域ＵＡ」と呼ぶ。
【００３１】
図３は、ユニット管理回路２２の内部構成を模式的に示すブロック図である。ユニット管理回路２２は、上述したアドレス変換の他に、ホスト装置８０から発行されたＡＴＡコマンドやデータを各メモリユニット３０〜６０に転送する機能を有している。図３には、この転送機能を実現するための内部構成を示している。
【００３２】
各メモリユニット３０〜６０が備えるユニットコントローラ３２〜６２は、それぞれ、ＡＴＡ規格に準拠したコマンドブロックレジスタと呼ばれる８種類のレジスタを備えている。この８種類のレジスタは、それぞれ、（１）フィーチャレジスタ、（２）セクタカウントレジスタ、（３）デバイス／ヘッドレジスタ、（４）シリンダハイレジスタ、（５）シリンダローレジスタ、（６）セクタナンバレジスタ、（７）コマンドレジスタ、（８）データレジスタ、という。ユニットコントローラ３２〜６２は、これらのレジスタにセットされた種々のパラメータに従って、二値メモリや多値メモリに対するデータの読み書きを制御する。ホスト装置８０は、データの読み書きを行う際に、これらのレジスタに対するアクセス信号を記憶装置１０に送信する。
【００３３】
ユニット管理回路２２は、ＵＳＢインタフェースおよびバス変換回路２１を介して上述したアクセス信号をホスト装置８０から受信すると、アクセス対象のレジスタの種類に応じて、各メモリユニット３０〜６０に対するアクセス信号の転送方法を可変させる。ユニット管理回路２２は、アクセス対象のレジスタの種類を判別するために、レジスタ判別回路７８を備えている。
【００３４】
レジスタ判別回路７８は、バス変換回路２１から入力したアドレス信号Ａ０〜Ａ２の状態に応じて、ＡＴＡ規格に基づいてアクセス対象のレジスタの種類を判別する。レジスタ判別回路７８は、例えば、図示するように、アドレス信号Ａ２が「０」、アドレス信号Ａ１が「０」、アドレス信号Ａ０が「１」であれば、フィーチャレジスタに対するアクセス信号を入力したと判別することができる。
【００３５】
ユニット管理回路２２は、ホスト装置８０から、フィーチャレジスタとセクタカウントレジスタに対するアクセス信号を受信した場合については、そのままスルーして、すべてのメモリユニット３０〜６０にこのアクセス信号を転送する。これらのレジスタは、結合領域ＵＡ内の位置を直接指定するためのものではないからである。具体的には、フィーチャレジスタは、ＡＴＡコマンドに応じて種々のパラメータを指定するために用いられるレジスタであり、セクタカウントレジスタは、複数のセクタを連続してアクセスする際に、そのセクタ数を指定するためのレジスタである。連続してアクセスする際の「先頭セクタ」の指定については、後述するデバイス／ヘッドレジスタ、シリンダハイレジスタ、シリンダローレジスタ、セクタナンバレジスタが用いられる。
【００３６】
デバイス／ヘッドレジスタ、シリンダハイレジスタ、シリンダローレジスタ、セクタナンバレジスタは、結合領域ＵＡ内の位置（セクタ）を指定するために用いられるレジスタである。これらのレジスタには、それぞれ、結合領域ＵＡ内のセクタを表すＬＢＡアドレスの一部が入力される。具体的には、ＬＢＡアドレスが２８ビット長のパラメータだとすると、セクタナンバレジスタには、０ビット目から７ビットの目のビット列が入力され、シリンダローレジスタには、８ビット目から１５ビット目のビット列が入力される。また、シリンダハイレジスタには、１６ビット目から２３ビット目のビット列が入力され、デバイス／ヘッドレジスタには、２４ビット目から２７ビット目のビット列が入力される。ユニット管理回路２２は、これらのレジスタに対するアクセス信号を受けると、その信号を一旦、ラッチ回路７０〜７３でラッチして記憶する。
【００３７】
ラッチ回路７０〜７３にラッチされたアクセス信号は、アドレスデコーダ９０に入力される。アドレスデコーダ９０は、各ラッチ回路７０〜７３に離散して記憶されたＬＢＡアドレスを結合し、２８ビット長のＬＢＡアドレスを復元する機能を備える。また、アドレスデコーダ９０は、復元したＬＢＡアドレスと、各メモリユニットの最大セクタ数とを比較する機能を備える。この機能の詳細については後述する。
【００３８】
コマンドレジスタは、ＡＴＡ規格に基づく種々のコマンドを指定するためのレジスタである。このようなコマンドとしては、例えば、指定したセクタからデータを読み込むリードセクタコマンド、指定したセクタにデータを書き込むライトセクタコマンドがある。ユニット管理回路２２は、コマンドレジスタに対するコマンド信号を受けると、その信号をコマンドデコーダ９１とラッチ回路７４とに入力する。
【００３９】
コマンドデコーダ９１は、コマンド信号を入力すると、入力したコマンドの種類を判別し、その判別結果を、アドレス変換回路９２とユニットセレクタ９４とに出力する。ラッチ回路７４に入力されたコマンド信号は、ユニットセレクタ９４からの出力指示があるまで、ラッチ回路７４に保持される。
【００４０】
アドレス変換回路９２は、図２に示したように、アドレスデコーダ９０から入力した結合領域ＵＡについてのＬＢＡアドレスを、メモリユニット３０〜６０毎のＬＢＡアドレスに変換する機能を備える。具体的には、アドレス変換回路９２は、アドレスデコーダ９０からＬＢＡアドレスを入力し、更に、コマンドデコーダ９１からコマンドの種別を入力する。そして、入力したコマンドの種別が、ＬＢＡアドレスを必要とするコマンドであるかを判断する。ＬＢＡアドレスを必要とするコマンドとは、一般に、アドレス（セクタ）を指定して、指定したアドレスに対して何らかのアクセスを行うコマンドであり、例えば、「リードセクタコマンド」や、「ライトセクタコマンド」、「リードマルチプルコマンド」、「ライトマルチプルコマンド」、「リードＤＭＡコマンド」、「ライトＤＭＡコマンド」、「リードベリファイセクタコマンド」「シークコマンド」等がある。アドレス変換回路９２は、入力したコマンドの種別がＬＢＡアドレスを必要とするコマンドであると判断すれば、アドレスデコーダ９０から入力したＬＢＡアドレスを、メモリユニット毎のＬＢＡアドレスに変換し（変換方法については後述）、変換後のＬＢＡアドレスを全てのメモリユニット３０〜６０に転送する。後述するように、メインコントローラ２０は、ＬＢＡアドレスを必要とするＡＴＡコマンドを複数のメモリユニットに対して同時に転送することはないので、変換後のＬＢＡアドレスは、全てのメモリユニット３０〜６０に転送することができる。こうすることで、アドレス変換回路９２は、転送先を選択する処理を省略することができる。もちろん、該当するメモリユニットに対してのみ変換後のＬＢＡアドレスを転送するものとしてもよい。
【００４１】
コマンドデコーダ９１から入力したコマンドの種別が、ＬＢＡアドレスを必要としないコマンドであれば、アドレス変換回路９２は、アドレスデコーダ９０から入力したパラメータをそのまま全てのメモリユニット３０〜６０に転送する。ＬＢＡアドレスを必要としないコマンドの場合には、デバイス／ヘッドレジスタ等に入力したアクセス信号が、ＬＢＡアドレスを表すとは限らないからである。ＬＢＡアドレスを必要としないコマンドとは、アドレス（セクタ）の指定を行うことなくフラッシュメモリに対して何らかの操作を行うコマンドであり、例えば、「アイデンティファイデバイスコマンド」、「セットフィーチャコマンド」、「チェックパワーモードコマンド」、「スリープコマンド」、「スタンバイコマンド」、「アイドルコマンド」などがある。なお、アドレス変換回路９２は、コマンドデコーダ９１から入力したコマンドの種別が、ＬＢＡアドレスを必要としないコマンドであった場合でも、ＬＢＡアドレスが必要なコマンドと同様に、メモリユニット３０〜６０に対して変換後のＬＢＡアドレスを送ることも可能である。ＬＢＡアドレスを必要としないコマンドは、ＬＢＡアドレスの有無に関わらず実行されるコマンドだからである。もちろん、変換までは行うが、変換後のＬＢＡアドレスについては送信しない構成とすることも可能である。
【００４２】
ユニットセレクタ９４は、アドレスデコーダ９０から入力したＬＢＡアドレスに基づいて、コマンドの転送先のメモリユニットを選択する回路である。具体的には、ユニットセレクタ９４は、アドレスデコーダ９０からＬＢＡアドレスを入力し、更に、コマンドデコーダ９１からコマンドの種別を入力する。そして、入力したコマンドの種類が、ＬＢＡアドレスを必要とするコマンドであるかを判断する。ＬＢＡアドレスを必要とするコマンドであれば、ユニットセレクタ９４は、入力したＬＢＡアドレスに基づいて、コマンドの転送先のメモリユニットを選択する処理を行う。かかる処理の詳細は後述する。ユニットセレクタ９４は、転送先のメモリユニットの選択を行うと、第１スイッチ回路９６を制御して、その転送先のメモリユニットとラッチ回路７４とを接続する。すると、ラッチ回路７４に保持されたコマンド信号が、選択されたメモリユニットに転送される。
【００４３】
ラッチ回路７４に保持されたコマンド信号が各ユニットに出力されるタイミングは、アドレス変換後のＬＢＡアドレスがアドレス変換回路９２から各メモリユニットに送信され、かつ、ユニットセレクタ９４によって第１スイッチ回路９６のスイッチングが完了した後のタイミングに設定されている。ＡＴＡ規格では、ＬＢＡアドレスを必要とするコマンドを送信する前に、予めＬＢＡアドレスをレジスタに設定する必要があると規定されているからである。なお、入力したコマンドの種類が、ＬＢＡアドレスを必要としないコマンドであれば、ユニットセレクタ９４は、ラッチ回路７４を全てのメモリユニットに接続するよう、第１スイッチ回路９６を制御する。こうすることで、ＬＢＡアドレスを必要としないコマンドについては、全てのメモリユニットに転送を行うことができる。入力したコマンドの種類が、ＬＢＡアドレスを必要としないコマンドの場合には、ラッチ回路７４は、コマンドの出力を遅延させないものとしてもよい。
【００４４】
ユニットセレクタ９４は、入力したＬＢＡアドレスに基づいて第１スイッチ回路９６を制御すると、これと同様に、第２スイッチ回路９８も制御する。第２スイッチ回路９８は、データレジスタに対するアクセス信号を切り換えるためのスイッチである。ユニットセレクタ９４によって、第２スイッチ回路９８が切り換えられると、ＬＢＡアドレスを必要とするコマンドが転送されたメモリユニットと同じメモリユニットに、データ信号も転送されることになる。
【００４５】
第２スイッチ回路９８とレジスタ判別回路７８との間には、ステータス記憶回路７９が接続されている。ステータス記憶回路７９には、結合領域ＵＡ全体の容量（全セクタ数）や、記憶装置１０の製造者情報を表すデバイスＩＤが記憶されている。通常、ホスト装置８０からステータス情報の取得が要求された場合には、第２スイッチ回路９８で選択されたメモリユニットから、ステータス情報が返信される。しかし、例えば、「アイデンティファイデバイス」コマンド等によって、記憶装置１０が有する全セクタ数の問い合わせや、デバイスＩＤなどの問い合わせがあった場合には、当該ステータス記憶回路７９から、ホスト装置８０に対して、ステータス情報が返信される。このように、ステータス記憶回路７９からステータス情報を返信可能な構成とすれば、各メモリユニットで対応不能な記憶装置１０全体に関わるステータス情報をホスト装置８０に対して正確に伝達することが可能になる。
【００４６】
図４は、アドレスデコーダ９０とアドレス変換回路９２とによって実現されるアドレス変換処理と、ユニットセレクタ９４が実現するメモリユニットの選択処理の流れを示すフローチャートである。以下では、かかる処理を便宜的に「ユニット管理処理」という。
【００４７】
アドレス変換回路９２は、コマンドデコーダ９１から入力したコマンドの種類がＬＢＡアドレスを必要とするコマンドであるかを判断する（ステップＳ１０）。この結果、ＬＢＡアドレスが不要なコマンドであれば（ステップＳ１０：Ｎｏ）、アドレス変換回路９２は、アドレス変換を行うことなく、全てのユニットに対して、デバイスヘッドレジスタ等に入力したパラメータをそのまま転送する。一方、ユニットセレクタ９４は、全てのメモリユニットを選択して（ステップＳ２０）、処理を終了する。こうすることで、全てのメモリユニットに対して、同一のコマンドが転送される。なお、前述したように、ステップＳ１０において、ＬＢＡアドレスが不要なコマンドを入力したと判断した場合であっても、アドレス変換回路９２は、ＬＢＡアドレスが必要なコマンドと同様に、以下に示すようなアドレス変換を行うものとしてもよい。
【００４８】
上記ステップＳ１０において、入力したコマンドがＬＢＡアドレスを必要とするコマンドであれば（ステップＳ１０：Ｙｅｓ）、アドレスデコーダ９０は、入力したＬＢＡアドレスｎが、第１メモリユニット３０のＬＢＡアドレスの最大値Ｗ（図２参照）以下であるかを判断する（ステップＳ３０）。ＬＢＡアドレスｎが、最大値Ｗ以下であれば（ステップＳ３０：Ｙｅｓ）、アドレス変換回路９２によって、変換後のＬＢＡアドレスｍを、アドレスデコーダ９０から入力したそのままのＬＢＡアドレスｎとする（ステップＳ４０）。そして、この場合には、ユニットセレクタ９４は、コマンドの転送先として、第１メモリユニット３０を選択する（ステップＳ５０）。
【００４９】
上記ステップＳ３０において、ＬＢＡアドレスｎが、第１メモリユニット３０のＬＢＡアドレスの最大値Ｗ以下ではないと判断した場合には（ステップＳ３０：Ｎｏ）、アドレスデコーダ９０は、ＬＢＡアドレスｎが、第１メモリユニット３０のＬＢＡアドレスの最大値Ｗと、第２メモリユニット４０のＬＢＡアドレスの最大値Ｘとの和（Ｗ＋Ｘ）以下であるかを判断する（ステップＳ６０）。ＬＢＡアドレスｎが、前記和（Ｗ＋Ｘ）以下であれば（ステップＳ６０：Ｙｅｓ）、アドレス変換回路９２によって、変換後のＬＢＡアドレスｍを、ＬＢＡアドレスｎから、第１メモリユニット３０のＬＢＡアドレスの最大値Ｗを差し引いた値とする（ステップＳ７０）。そして、この場合には、ユニットセレクタ９４は、コマンドの転送先として、第２メモリユニット４０を選択する（ステップＳ８０）。
【００５０】
上記ステップＳ６０において、ＬＢＡアドレスｎが、前記和（Ｗ＋Ｘ）以下ではないと判断した場合には（ステップＳ６０：Ｎｏ）、アドレスデコーダ９０は、ＬＢＡアドレスｎが、第１メモリユニット３０のＬＢＡアドレスの最大値Ｗと、第２メモリユニット４０のＬＢＡアドレスの最大値Ｘと、第３メモリユニット５０のＬＢＡアドレスの最大値Ｙとの和（Ｗ＋Ｘ＋Ｙ）以下であるかを判断する（ステップＳ９０）。ＬＢＡアドレスｎが、前記和（Ｗ＋Ｘ＋Ｙ）以下であれば（ステップＳ９０：Ｙｅｓ）、アドレス変換回路９２によって、変換後のＬＢＡアドレスｍを、ＬＢＡアドレスｎから、ＷおよびＸを差し引いた値とする（ステップＳ１００）。そして、この場合には、ユニットセレクタ９４は、コマンドの転送先として、第３メモリユニット５０を選択する（ステップＳ１１０）。
【００５１】
上記ステップＳ９０において、ＬＢＡアドレスｎが、前記和（Ｗ＋Ｘ＋Ｙ）以下ではないと判断した場合には（ステップＳ９０：Ｎｏ）、アドレスデコーダ９０は、ＬＢＡアドレスｎが、第１メモリユニット３０のＬＢＡアドレスの最大値Ｗと、第２メモリユニット４０のＬＢＡアドレスの最大値Ｘと、第３メモリユニット５０のＬＢＡアドレスの最大値Ｙと、第４メモリユニット６０の最大値Ｚとの和（Ｗ＋Ｘ＋Ｙ＋Ｚ）以下であるかを判断する（ステップＳ１２０）。ＬＢＡアドレスｎが、前記和（Ｗ＋Ｘ＋Ｙ＋Ｚ）以下であれば（ステップＳ１２０：Ｙｅｓ）、アドレス変換回路９２によって、変換後のＬＢＡアドレスｍを、ＬＢＡアドレスｎから、Ｗ、ＸおよびＹを差し引いた値とする（ステップＳ１３０）。そして、この場合には、ユニットセレクタ９４は、コマンドの転送先として、第４メモリユニット６０を選択する（ステップＳ１４０）。
【００５２】
上記ステップＳ１２０において、ＬＢＡアドレスｎが、前記和（Ｗ＋Ｘ＋Ｙ＋Ｚ）以下ではないと判断した場合には（ステップＳ９０：Ｎｏ）、結合領域ＵＡを超えるＬＢＡアドレスが指定されていることになる。そのため、この場合には、所定のエラー処理が実行される（ステップＳ１５０）。所定のエラー処理とは、例えば、現在入力しているコマンドを破棄する等の処理である。以上で説明したユニット管理処理によれば、単純な比較演算だけで、容易に、アドレスの変換とメモリユニットの選択を行うことができる。
【００５３】
以上、本実施例の記憶装置１０の構成および動作について説明した。上述したように、本実施例の記憶装置１０は、結合領域ＵＡの先頭にＳＬＣ型のフラッシュメモリである二値メモリ３１が割り当てられるようにアドレス変換を行う。そのため、記憶装置１０が、ＦＡＴ１６やＦＡＴ３２といったファイルシステムによってフォーマットされると、データの管理情報であるファイルアロケーションテーブル（以下、「ＦＡＴ情報」という）が、二値メモリ３１内に生成されることになる。ＦＡＴ情報は、データの書込や消去が行われると頻繁に書き換えられる管理情報である。本実施例では、このような管理情報が書き込まれる領域に、ＭＬＣ型のフラッシュメモリ（多値メモリ４１〜６１）よりも書込速度の速いＳＬＣ型のフラッシュメモリを配置している。そのため、本実施例によれば、ＭＬＣ型のフラッシュメモリを採用することで大容量化を実現しつつ、ＭＬＣ型のフラッシュメモリだけで構成された記憶装置に比べ、格段にデータの書込速度を向上させることが可能になる。なお、ＭＬＣ型のフラッシュメモリの書込速度は、概ね６００ｎｓｅｃであり、ＳＬＣ型のフラッシュメモリの書込速度は、概ね２００ｎｓｅｃである。
【００５４】
ここで、書込速度の比較例を示す。周知のように、ＦＡＴ１６やＦＡＴ３２では、管理情報内に、同一内容のＦＡＴ情報が２つ書き込まれる。そうすると、ＭＬＣ型のフラッシュメモリだけで構成された記憶装置であれば、１つ目のＦＡＴ情報の書き換えに６００ｎｓｅｃ、２つ目のＦＡＴ情報の書き換えに６００ｎｓｅｃ、さらに、データの書き換えに６００ｎｓｅｃ要する。すると、全体として、１８００ｎｓｅｃの時間がかかることになる。これに対して、本実施例では、ＦＡＴ情報が書き込まれる領域にＳＬＣ型のフラッシュメモリを用いているため、１つ目のＦＡＴ情報の書き換えに２００ｎｓｅｃ、２つ目のＦＡＴ情報の書き換えに２００ｎｓｅｃ、（多値メモリ内の）データの書き換えに６００ｎｓｅｃ要することになる。そうすると、全体として、１０００ｎｓｅｃでデータの書き換えが完了することになる。つまり、この例によれば、ＭＬＣ型のフラッシュメモリだけで構成された記憶装置に対して、データの書き換え時間を、４５％程度も削減することが可能になる。
【００５５】
また、一般的に、ＳＬＣ型のフラッシュメモリは、ＭＬＣ型のフラッシュメモリに比べて、データの書換可能回数が１０〜２０倍ほど多い。そのため、本実施例のように、頻繁に書き換えられる管理情報が書き込まれる領域にＳＬＣ型のフラッシュメモリを配置することで、大幅にデータ記憶の信頼性を向上させることができる。この結果、外部記憶装置としてだけではなく、従来のハードディスクと同様に、オペレーティングシステムのブートドライブとして容易に利用することが可能になる。
【００５６】
また、本実施例では、二値メモリや多値メモリを制御するユニットコントローラとして、コンパクトフラッシュ用のコントローラを用いるものとした。一般的に、コンパクトフラッシュは、汎用性が高く、様々な特性のフラッシュメモリを制御することが可能である。そのため、本実施例のように、コンパクトフラッシュコントローラをメモリユニット毎に備えるものとすれば、メモリユニット毎に異なるメーカのフラッシュメモリを採用したとしても特性の違いを吸収して正常に動作をさせることが可能になる。この結果、二値メモリや多値メモリを混載する記憶装置を容易に構成することが可能になる。なお、本実施例では、ユニットコントローラとして、コンパクトフラッシュ用のコントローラを採用したが、ＳＤメモリ用のコントローラや、マルチメディアカード用のコントローラを用いることも可能である。
【００５７】
本実施例では、メインコントローラ２０が有する機能は、ハードウェア的に構成するものとした。これに対して、メインコントローラ２０を、ＣＰＵとＲＯＭとＲＡＭとを内蔵するマイクロコンピュータとして構成することにより、上述したアドレス変換やユニット管理の機能をソフトウェア的に実現するものとしてもよい。また、メインコントローラ２０として、ＲＡＩＤチップを採用し、このＲＡＩＤチップにスパニング動作をさせることで、各メモリユニットを制御してもよい。
【００５８】
また、本実施例では、メモリユニットを計４つ備えるものとしたが、その数に制限はない。最低限、二値メモリを備えるメモリユニットが１つと、多値メモリを備えるメモリユニットが１つあればよい。
【００５９】
また、本実施例では、二値メモリの容量を１Ｇバイトとしたが、この容量は、次のように決定することができる。例えば、記憶装置１０がＦＡＴ３２でフォーマットされるとし、記憶装置１０の全体の記憶容量がｘギガバイトだとする。ＦＡＴ３２では、多くの場合、１セクタ当たり４Ｋバイトの容量を表すため、全体で、（ｘ／４）メガ個のセクタ数とする。また、ＦＡＴ３２では、１アドレスを表現するのに、４バイトのデータ量が必要となる。そのため、１つのＦＡＴ情報あたり、ｘメガバイト（＝４バイト＊（ｘ／４）メガ個）の容量が必要となる。上述したように、ＦＡＴ３２では、多くの場合、ＦＡＴ情報が２つ書き込まれるため、合計で、（２＊ｘ）メガバイトの管理領域が必要となる。なお、管理情報としては、ＦＡＴ情報だけでなく、マスタブートレコードやディレクトリエントリなどの情報も記録されるため、全体としては、それ以上の管理領域が必要である。ここで具体例を挙げると、記憶装置１０の全体の容量が、１２８ギガバイトであれば、上述した算出方法により、ＦＡＴ情報に必要な容量は、２５６メガバイトとなる。さらに、これに、マスタブートレコードやディレクトリエントリ等を記録するための領域を加えると、全体で、５００メガバイト程度の容量の二値メモリが必要となる。すなわち、記憶装置１０の全体の領域（結合領域ＵＡ）に対して、少なくとも０．５％の二値メモリの容量が必要であり、１％程度の容量があれば、余裕を持って管理情報を記憶することができる。もちろん、二値メモリは、動作速度や信頼性の上で、多値メモリよりも優れた特性を有するため、１％を超える容量としても構わない。
【００６０】
Ｂ．第２実施例：
図５は、本発明の第２実施例としての記憶装置の概略構成を示す説明図である。図示するように、本実施例の記憶装置１１０は、メインコントローラ２０と、二値メモリ３１を搭載する第１メモリユニット３０と、多値メモリ４１を搭載する第２メモリユニット４０とを備えている。メインコントローラ２０は、第１実施例と同様に、バス変換回路２１とユニット管理回路１２２とを備えている。このうち、本実施例のユニット管理回路１２２は、ホスト装置８０から指定されたアドレスやデータ、コマンドに応じて、データの読み書きを行う対象を、第１メモリユニット３０と第２メモリユニット４０との間で切り換える機能を有している。
【００６１】
図６は、ユニット管理回路１２２によって行われるメモリユニットの切り換え制御の概念を示す説明図である。図６には、左側から順に、ホスト装置８０から記憶装置１１０を見た際の記憶装置１１０の全体の記憶領域ＵＡ２と、第１メモリユニット３０の記憶領域と、第２メモリユニット４０の記憶領域とを示している。
【００６２】
本実施例では、第１メモリユニット３０内の記憶領域は、「０」から「Ｗ」までのＬＢＡアドレスで表されている。一方、第２メモリユニット４０内の記憶領域は、「０」から「Ｘ」までのＬＢＡアドレスで表されている。ＬＢＡアドレス「Ｘ」は、ＬＢＡアドレス「Ｗ」よりも大きい値である。
【００６３】
本実施例では、ホスト装置８０から「０」から「Ｗ」までのＬＢＡアドレスが指定されると、ユニット管理回路１２２は、データの読み書きの対象を、二値メモリ３１を搭載した第１メモリユニット３０に切り換える。これに対して、「Ｗ」を超えるＬＢＡアドレスが指定されると、ユニット管理回路１２２は、データの読み書き対象を、多値メモリ４１が搭載された第２メモリユニット４０に切り換える。つまり、本実施例では、ユニット管理回路１２２は、ホスト装置８０から指定されたＬＢＡアドレスを、閾値「Ｗ」と比較することで、使用するメモリユニットを切り換えるのである。なお、上述のような切り換え制御を行う結果、本実施例では、第２メモリユニット４０の一部に、使用されない領域（ＬＢＡアドレス「０」〜「Ｗ」）が生じることになる。
【００６４】
図７は、ユニット管理回路１２２の内部構成を模式的に示すブロック図である。図示するように、本実施例のユニット管理回路１２２は、レジスタ判別回路１７８と、切換制御回路１９４と、第１スイッチ回路１９６と、第２スイッチ回路１９８とを備えている。
【００６５】
レジスタ判別回路１７８は、図５に示したバス変換回路２１に接続される。レジスタ判別回路１７８は、第１実施例と同様に、バス変換回路２１から入力したアドレス信号Ａ０〜Ａ２の状態に応じて、ＡＴＡ規格に基づき、アクセス対象のレジスタの種類を判別する。そして、判別したレジスタの種類に応じて、バス変換回路２１から受信したアクセス信号を、切換制御回路１９４に転送する。
【００６６】
切換制御回路１９４は、レジスタ判別回路１７８が判別したアクセス対象のレジスタの種類や、ホスト装置８０から指定されたアドレス、データ、コマンドに基づいて、アクセス対象となるメモリユニットを、第１メモリユニット３０と第２メモリユニット４０との間で切り換える制御を行う。
【００６７】
第１スイッチ回路１９６は、切換制御回路１９４からの指示に基づいて、バス変換回路２１と第１メモリユニット３０間の接続を開閉する。
【００６８】
第２スイッチ回路１９８は、切換制御回路１９４からの指示に基づいて、バス変換回路２１と第２メモリユニット４０間の接続を開閉する。
【００６９】
図示するように切換制御回路１９４は、アドレスデコーダ１９０とアドレス比較回路１９２とサイズレジスタ１７９とコマンドデコーダ１９１とを備えている。
【００７０】
アドレスデコーダ１９０は、デバイス／ヘッドレジスタ、シリンダハイレジスタ、シリンダローレジスタ、セクタナンバレジスタに対するアクセス信号に基づいて、ホスト装置８０が指定したＬＢＡアドレスを解析する。また、コマンドデコーダ１９１は、ホスト装置８０から指示されたコマンドの解析を行う。
【００７１】
サイズレジスタ１７９には、第１メモリユニット３０の最大容量に基づいて定められた閾値が記憶されている。本実施例では、第１メモリユニット３０の最大容量は５１２Ｍバイトであることとし、サイズレジスタ１７９に記憶されている閾値は、この最大容量よりも若干少ない４８０Ｍバイトの容量を示すＬＢＡアドレスであることとする。フラッシュメモリには、欠損ブロック（バッドブロック）が生じる場合があるため、５１２Ｍバイトのすべてを利用できない場合があるからである。もちろん、閾値として、第１メモリユニット３０の最大容量を表すＬＢＡアドレスをそのまま記憶させることとしてもよい。なお、４８０Ｍバイトは、ＬＢＡ方式による２進数で、「0000000011110000000000000000」と表すことができる。そのため、閾値を４８０Ｍバイトとすれば、ホスト装置８０から指定される２８ビット長のＬＢＡアドレスのうち、上位８ビットの値が、「00000000」以上となるか否かに応じて、指定されたアドレスが、閾値（４８０Ｍバイト）を超えるか否かを判断することが可能になる。つまり、後述するアドレス比較回路１９２は、４ビットのデバイス／ヘッドレジスタと、８ビットのシリンダハイレジスタの上位４ビットを用いるだけで、シリンダローレジスタやセクタナンバレジスタの値を用いることなく、容易に、閾値を超えたか否かの判断を行うことが可能になる。
【００７２】
アドレス比較回路１９２は、アドレスデコーダ１９０が解析したＬＢＡアドレスと、サイズレジスタ１７９に記憶されている閾値とを比較し、図６に示したように、アクセス対象の候補となるメモリユニットを、第１メモリユニット３０と第２メモリユニット４０との間で選択する。
【００７３】
図８は、切換制御回路１９４によって行われる切り換え動作の詳細を示す説明図である。図中に、「切り換え」とあるのは、アドレス比較回路１９２によって選択されたメモリユニットに対してアクセスすることをいう。これに対して、「同時アクセス」とあるのは、アドレス比較回路１９２による選択とは無関係に、第１メモリユニット３０と第２メモリユニット４０との両者に対して同一のアクセスを行うことをいう。
【００７４】
また、図８に、「ライト時」とあるのは、ホスト装置８０からライトコマンドが発行された状況を示している。ライトコマンドには、コマンドレジスタに対するコマンドのライト命令や、データレジスタに対するデータのライト命令、その他のレジスタに対するＬＢＡアドレス等の各種パラメータのライト命令が含まれる。また、「リード時」とあるのは、ホスト装置８０から、リードコマンドが発行された状況を示している。リードコマンドには、メモリユニットから種々のステータスやデータを読み込む命令が含まれる。
【００７５】
図８に示すように、データレジスタおよびコマンドレジスタに対するアクセスは、原則として、ライト時、リード時ともに、アドレス比較回路１９２によって選択されたメモリユニットに対して行われる。これに対して、他のレジスタに対するアクセスは、リード時のみ選択されたメモリユニットに対して行われ、ライト時には、２つのメモリユニットに対して同一のアクセスがなされる。データレジスタとコマンドレジスタ以外のレジスタは、主に、アドレスを指定するためのレジスタである。そのため、ライトの対象となるデータやコマンドが適切に、選択されたメモリユニットに対して転送される限り、ライト時において、第１メモリユニット３０と第２メモリユニット４０との両者のレジスタに対して同一のアドレスをライトしたとしても、特に支障がないからである。
【００７６】
なお、図８に「例外１」と示したのは、コマンドデコーダ１９１によってコマンドの解析を行った結果、ホスト装置８０から転送されたコマンドが、アイドルコマンドやスタンバイコマンドなどの、メモリユニット全体の動作状態を切り換えるようなコマンドであった場合である。このようなコマンドが転送された場合には、切換制御回路１９４は、例外的に、第１メモリユニット３０と第２メモリユニット４０の両者に対して、かかるコマンドの転送を行う。
【００７７】
また、図８に「例外２」と示したのは、アイデンティファイデバイスコマンド等によって、記憶装置１１０のデータ容量（全セクタ数）のリードがなされた場合である。このような場合においては、切換制御回路１９４は、例外的に、第２メモリユニット４０に対してアクセスを行う。図６に示したように、本実施例では、記憶装置１１０のデータ容量は、第２メモリユニット４０のデータ容量と一致しているためである。
【００７８】
以上、第２実施例としての記憶装置１１０の構成および動作について説明した、本実施例の記憶装置１１０によれば、第１実施例の記憶装置１０と同様に、記憶領域の先頭の領域にＳＬＣ型のフラッシュメモリを割り当て、それ以外の領域に、ＭＬＣ型のフラッシュメモリを割り当てることができる。そのため、書換可能回数が多く、動作が高速なＳＬＣ型のフラッシュメモリに対して、頻繁に書き換えられるＦＡＴ情報を記憶させることが可能になる。この結果、第１実施例と同様に、ＭＬＣ型のフラッシュメモリを採用することで大容量化を実現しつつ、ＭＬＣ型のフラッシュメモリだけで構成された記憶装置に比べて、データの書込速度とデータ記憶の信頼性を格段に向上させることが可能になる。
【００７９】
また、本実施例の記憶装置１１０によれば、ホスト装置８０から指定されたアドレスをそのまま用いて、２種類のメモリユニットに対するデータの読み書きを行うことが可能になる。この結果、複雑なアドレス変換を行う回路が不要であるため、メインコントローラ２０の回路規模を縮小することができる。この結果、製造コストの低減を図ることが可能になる。
【００８０】
以上、本発明の種々の実施例について説明したが、本発明はこれらの実施例に限定されず、その趣旨を逸脱しない範囲で種々の構成を採ることができることはいうまでもない。例えば、上記実施例では、記憶装置とホスト装置とが接続されるインタフェースとしてＵＳＢインタフェースを採用したが、インタフェースの種類はこれに限られない。ＩＥＥＥ１３９４インタフェースや、シリアルＡＴＡインタフェース、パラレルＡＴＡインタフェースなど種々のインタフェースを採用することが可能である。
【図面の簡単な説明】
【００８１】
【図１】第１実施例としての記憶装置の概略構成を示す説明図である。
【図２】第１実施例のユニット管理回路によって行われるアドレス変換の概念を示す説明図である。
【図３】第１実施例のユニット管理回路の内部構成を模式的に示すブロック図である。
【図４】第１実施例におけるユニット管理処理のフローチャートである。
【図５】第２実施例としての記憶装置の概略構成を示す説明図である。
【図６】第２実施例のユニット管理回路によって行われるメモリユニットの切り換え制御の概念を示す説明図である。
【図７】第２実施例におけるユニット管理回路の内部構成を模式的に示すブロック図である。
【図８】第２実施例の切換制御回路によって行われる切り換え動作の詳細を示す説明図である。
【符号の説明】
【００８２】
１０…記憶装置
２０…メインコントローラ
２１…バス変換回路
２２…ユニット管理回路
３０…第１ユニット
３１…二値メモリ
３２…第１ユニットコントローラ（ＳＬＣコントローラ）
４０…第２ユニット
４１，５１，６１…多値メモリ
４２…第２ユニットコントローラ（ＭＬＣコントローラ）
５０…第３ユニット
６０…第４ユニット
７０〜７４…ラッチ回路
７８…レジスタ判別回路
７９…ステータス記憶回路
８０…ホスト装置
９０…アドレスデコーダ
９１…コマンドデコーダ
９２…アドレス変換回路
９４…ユニットセレクタ
９６…第１スイッチ回路
９８…第２スイッチ回路
１１０…記憶装置
１２２…ユニット管理回路
１７８…レジスタ判別回路
１７９…サイズレジスタ
１９０…アドレスデコーダ
１９１…コマンドデコーダ
１９２…アドレス比較回路
１９４…切換制御回路
１９６…第１スイッチ回路
１９８…第２スイッチ回路
【図１】
2008310793.tif 000003
【図２】
2008310793.tif 000004
【図３】
2008310793.tif 000005
【図４】
2008310793.tif 000006
【図５】
2008310793.tif 000007
【図６】
2008310793.tif 000008
【図７】
2008310793.tif 000009
【図８】
2008310793.tif 000010