説明

記憶装置

【課題】SLC型のフラッシュメモリとMLC型のフラッシュメモリの両者のメリットを生かした記憶装置を提供する。
【解決手段】記憶装置は、第1の記憶領域を有し、単セルあたり2種類の値を記憶可能な二値フラッシュメモリと、第2の記憶領域を有し、単セルあたり3種類以上の値を記憶可能な多値フラッシュメモリと、第1の記憶領域を先頭の領域に配置しつつ、第1の記憶領域と第2の記憶領域とを論理的に結合して、単一の記憶領域である結合領域としてデータの読み書きを行うコントローラとを備える。記憶領域の先頭には、所定のファイルシステムに基づいて、データの管理情報が記憶される。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、コンピュータや各種電子機器で用いられるデータを記憶する記憶装置に関する。
【背景技術】
【0002】
近年、コンピュータの外部記憶装置として、コンパクトフラッシュ(登録商標。以下同じ)に代表されるメモリカードや、USBメモリが普及している。これらの外部記憶装置には、書換可能な不揮発性ROMであるフラッシュメモリが内蔵されている。フラッシュメモリには、SLC(Single Level Cell)型とMLC(Multi Level Cell)型と呼ばれるものがある(例えば、下記特許文献1参照)。
【0003】
【特許文献1】特開2002−8380号公報
【0004】
SLC型のフラッシュメモリは、従来より広く用いられているメモリであり、単セル当たり1ビットの情報が記憶可能なメモリである(以下、「二値メモリ」ともいう)。これに対して、MLC型のフラッシュメモリは、単セル当たり2ビット以上の情報が記憶可能なメモリである(以下、「多値メモリ」ともいう)。MLC型のフラッシュメモリは、各セルが、完全に充電された状態、電力が3分の2残った状態、3分の1残った状態、すべて放電された状態という、4つの状態を取ることで、単セル当たり、2ビットの情報を記憶することができる。
【0005】
一般的に、MLC型のフラッシュメモリは、動作が低速で、書換可能回数が少ないのに対して、記憶容量はSLC型よりも大きいという特徴がある。一方、SLC型のフラッシュメモリは、動作が高速で、書換可能回数が多いのに対して、記憶容量は、MLC型よりも少ないという特徴がある。
【発明の開示】
【発明が解決しようとする課題】
【0006】
このような問題を考慮し、本発明が解決しようとする課題は、SLC型のフラッシュメモリとMLC型のフラッシュメモリの両者の特徴の利点を生かした記憶装置を提供することにある。
【課題を解決するための手段】
【0007】
上記課題を踏まえ、本発明の一態様である記憶装置を次のように構成した。
【0008】
すなわち、記憶領域の先頭にデータの管理情報を記録する所定のファイルシステムに基づいてデータを記憶可能な記憶装置であって、第1の記憶領域を有し、単セルあたり2種類の値を記憶可能な二値フラッシュメモリと、第2の記憶領域を有し、単セルあたり3種類以上の値を記憶可能な多値フラッシュメモリと、前記第1の記憶領域を先頭の領域に配置しつつ、前記第1の記憶領域と前記第2の記憶領域とを論理的に結合して、単一の記憶領域である結合領域としてデータの読み書きを行う制御部とを備えることを要旨とする。
【0009】
上記態様の記憶装置によれば、二値フラッシュメモリが有する第1の記憶領域を結合領域の先頭に配置する。そのため、ファイルアロケーションテーブルなどのデータの管理情報が、二値フラッシュメモリ内に書き込まれることになる。ファイルアロケーションテーブルは、データの書込や消去が行われると頻繁に書き換えられる管理情報であるため、多値フラッシュメモリよりも高速に動作可能な二値フラッシュメモリを結合領域の先頭に配置することで、全ての領域が多値フラッシュメモリによって構成される記憶装置よりも高速にデータを記憶することが可能になる。また、二値フラッシュメモリは、多値フラッシュメモリよりも、書換可能回数が多いという特徴があるため、頻繁に書き換えられるファイルアロケーションテーブルを二値フラッシュメモリに書き込むことで、データ記憶の信頼性を向上させることが可能になる。このように、上記態様の記憶装置によれば、多値フラッシュメモリを用いることで大容量化を実現しつつ、二値フラッシュメモリをも用いることで、動作の高速性や信頼性に優れる記憶装置を提供することが可能になる。
【0010】
上記態様の記憶装置において、前記制御部は、前記結合領域と、前記第1の記憶領域および前記第2の記憶領域との間のアドレス変換を行うアドレス変換部と、前記アドレス変換の結果に応じて、前記データの読み書き先を、前記二値フラッシュメモリおよび前記多値フラッシュメモリの中から選択する選択部とを備えるものとしてもよい。このような態様であれば、アドレス変換の結果に応じて、データの読み書き先を容易に判別することができる。
【0011】
上記態様の記憶装置において、前記制御部は、前記アドレス変換部によって変換されたアドレスを、前記二値フラッシュメモリおよび前記多値フラッシュメモリに送信した後で、前記データの読み書きを行うためのコマンドを、前記選択されたメモリに送信するものとしてもよい。
【0012】
このような態様では、変換後のアドレスについては全てのメモリに送信し、その後、コマンドについては、選択されたメモリに対してのみ送信する。このような態様であれば、変換後のアドレスの送信先を、二値フラッシュメモリと多値フラッシュメモリとから選択する必要がないため、処理速度を向上させることが可能になる。
【0013】
上記態様の記憶装置において、前記第1の記憶領域は、前記結合領域の0.5%以上100%未満のいずれかの割合を占める領域とすることができる。第1の記憶領域をこのような領域に設定することで、ファイルアロケーションテーブル等の管理情報を確実に二値フラッシュメモリ内に記憶させることが可能になる。
【0014】
上記態様の記憶装置において、当該記憶装置は、所定のインタフェースを介してホスト装置と接続されており、前記制御部は、前記ホスト装置からの指示に応じて前記データの読み書きを行うものとしてもよい。このような態様であれば、当該記憶装置を、ホスト装置の外部記憶装置や内部記憶装置として利用することが可能になる。所定のインタフェースとしては、例えば、USB、IEEE1394、パラレルATA、シリアルATA等のインタフェースを利用することができる。
【0015】
上記態様の記憶装置において、前記制御部は、前記ホスト装置から、当該記憶装置の記憶容量の問い合わせを受けた際に、前記結合領域の記憶容量を返信する手段を備えるものとしてもよい。このような態様であれば、各フラッシュメモリが個別に有する記憶容量ではなく、結合領域全体の容量をホスト装置に通知することが可能になる。
【0016】
上記態様の記憶装置において、前記多値フラッシュメモリを複数備え、前記制御部は、前記第1の記憶領域を先頭の領域に配置しつつ、前記第1の記憶領域と複数の前記第2の記憶領域とを論理的に結合するものとしてもよい。このような態様によれば、多値フラッシュメモリを複数備えた態様とすることができるので、大容量の記憶領域を有する記憶装置を提供することができる。
【0017】
本発明は、次のような態様の記憶装置としても適用することができる。すなわち、記憶領域の先頭にデータの管理情報を記録する所定のファイルシステムに基づいてデータを記憶可能な記憶装置であって、
第1の記憶領域を有し、単セルあたり2種類の値を記憶可能な二値フラッシュメモリと、
前記第1の記憶領域よりも広い第2の記憶領域を有し、単セルあたり3種類以上の値を記憶可能な多値フラッシュメモリと、
当該記憶装置に接続されたホスト装置から指定されたアドレスと、前記第1の記憶領域の最大容量に基づいて定められた所定の閾値とを比較する比較部と、
前記アドレスが、前記閾値内のアドレスである場合には、データの読み書き先を前記二値フラッシュメモリに切り換え、前記アドレスが、前記閾値を超えるアドレスである場合には、前記読み書き先を、前記多値フラッシュメモリに切り換える制御部とを備える記憶装置である。
【0018】
この態様の記憶装置では、データの読み書き先を、指定されたアドレスに応じて多値フラッシュメモリと二値フラッシュメモリとの間で切り換えるという単純な制御を行うことで、特性の異なるこれらのメモリに対してデータの読み書きを行うことができる。この結果、多値フラッシュメモリを用いることで大容量化を実現しつつ、二値フラッシュメモリをも用いることで、動作の高速性や信頼性に優れる記憶装置を提供することが可能になる。
【0019】
上記態様の記憶装置において、前記制御部は、前記読み書き先が、前記二値フラッシュメモリおよび前記多値フラッシュメモリのいずれかに切り換えられた場合においても、前記アドレスの値をそのまま用いて、前記二値フラッシュメモリまたは前記多値フラッシュメモリに対して、データの読み書きを行うこととしてもよい。このような態様であれば、ホスト装置から指定されたアドレスを他の体系のアドレスに変換する処理が必要ないため、処理の単純化を図ることが可能になる。
【0020】
上記態様の記憶装置において、前記制御部は、前記ホスト装置から、当該記憶装置の記憶容量の問い合わせを受けた際に、前記第2の記憶領域の記憶容量を返信する手段を備えていてもよい。上述した態様の記憶装置の最大記憶容量は、第2の記憶領域に一致する。そのため、第2の記憶領域の記憶容量をそのまま返信するという単純な処理によって、当該記憶装置の記憶容量をホスト装置に通知することが可能になる。
【発明を実施するための最良の形態】
【0021】
以下、上述した本発明の作用・効果を一層明らかにするため、本発明の実施の形態を実施例に基づき説明する。
【0022】
A.第1実施例:
図1は、本発明の実施例としての記憶装置10の概略構成を示す説明図である。本実施例の記憶装置10は、コンピュータに代表されるホスト装置80とUSBインタフェースを介して接続され、外部記憶装置として利用されるものである。ホスト装置80は、記憶装置10を、所定のファイルシステム(FAT16やFAT32など)でフォーマットしてデータの読み書きを行う。
【0023】
図示するように、記憶装置10は、メインコントローラ20を備えており、更に、このメインコントローラ20と接続され、それぞれがNANDフラッシュメモリを有する第1メモリユニット30と、第2メモリユニット40と、第3メモリユニット50と、第4メモリユニット60とを備えている。
【0024】
第1メモリユニット30は、SLC(Single Level Cell)型のNANDフラッシュメモリである二値メモリ31を備えている。また、第1メモリユニット30は、この二値メモリ31をその電気的特性に応じて制御する第1ユニットコントローラ32を備えている。本実施例では、第1ユニットコントローラ32として、汎用的なコンパクトフラッシュ用のメモリコントローラを採用した。第1ユニットコントローラ32は、メインコントローラ20からATA規格に基づくコマンドやデータを受信し、二値メモリ31に対して、データの読み書きを行う。本実施例では、第1メモリユニット30は、1Gバイト分の記憶領域を有するものとする。1つの二値メモリ31で1Gバイト分の記憶領域を実現できない場合には、複数個の二値メモリ31を第1ユニットコントローラ32に対して接続することで1Gバイトの記憶領域を実現してもよい。
【0025】
第2メモリユニット40は、MLC(Multi Level Cell)型のNANDフラッシュメモリである多値メモリ41を備えている。本実施例の多値メモリ41は、4値(2ビット)の情報を記憶可能なメモリである。もちろん、多値メモリ41としては、3値以上の情報を記憶可能なメモリを適宜採用することが可能である。第2メモリユニット40は、更に、この多値メモリ41をその電気的特性に応じて制御する第2ユニットコントローラ42を備えている。本実施例では、第2ユニットコントローラ42として、第1メモリユニット30と同様に、汎用的なコンパクトフラッシュ用のメモリコントローラを採用した。第3メモリユニット50および第4メモリユニット60は、第2メモリユニット40と同一の構成である。本実施例では、第2メモリユニット40、第3メモリユニット50、および、第4メモリユニット60は、それぞれ、15Gバイト分の記憶領域を有するものとする。そのため、本実施例の記憶装置10は、全体として、46G(1G+15G+15G+15G)バイト分の記憶領域を有している。なお、1つの多値メモリで15Gバイト分の記憶領域を実現できない場合には、複数個の多値メモリをユニットコントローラに対して接続することで15Gバイトの記憶領域を実現してもよい。
【0026】
メインコントローラ20は、USBインタフェースを介して接続されたホスト装置80からの指示に応じて、各メモリユニット30〜60に対するデータの読み書きを制御する集積回路である。メインコントローラ20は、内部回路として、バス変換回路21とユニット管理回路22とを備えている。
【0027】
バス変換回路21は、ホスト装置80から受信したUSB規格に基づく信号を、ATA(Advanced Technology Attachment)規格に基づく信号に変換する機能を備える。ATAとは、コンピュータと記憶装置との標準的な通信インタフェースである。ATA規格に基づく信号としては、例えば、3つのアドレス信号A0〜A2や、16のデータ信号D00〜D15、リセット信号等の制御信号がある。
【0028】
ユニット管理回路22は、各メモリユニット30〜60が備える二値メモリや多値メモリの記憶領域を論理的に結合して、単一の記憶領域として扱う機能を備える。ユニット管理回路22は、バス変換回路21によって変換されたATA信号のLBA(Logical Block Addressing)アドレスに基づきアドレス変換を行うことで各メモリユニット30〜60の論理的な結合を実現する。LBAとは、記憶領域のすべてのセクタに通し番号を割り当て、その通し番号によってアクセスを行うセクタを指定する方式のことをいう。LBAアドレスは、この通し番号によって表される。なお、「LBAアドレス」は、「LBAパラメータ」とも呼ばれる。
【0029】
図2は、ユニット管理回路22によって行われるアドレス変換の概念を示す説明図である。図の左側には、ユニット管理回路22が管理している各メモリユニット30〜60の記憶領域を示している。図示するように、本実施例では、第1メモリユニット30内の記憶領域は、「0」から「W」までのLBAアドレスで表されている。また、第2メモリユニット40は、「0」から「X」まで、第3メモリユニットは、「0」から「Y」まで、第4メモリユニットは、「0」から「Z」まで、のLBAアドレスで表されている。
【0030】
図2の右側には、各メモリユニット30〜60の記憶領域を結合した後の記憶領域を示している。図示するように、ユニット管理回路22は、第1メモリユニット30が備える二値メモリ31の記憶領域を先頭の領域に配置し、その後に、他のメモリユニット40〜60が備える多値メモリ41〜61の記憶領域を配置する。結合後の記憶領域は、図2に示すように、「0」から「W+X+Y+Z」までのLBAアドレスで表されることになる。ユニット管理回路22がこうして記憶領域の結合を行うことで、ホスト装置80は、記憶装置10内の記憶領域を、「0」から「W+X+Y+Z」までの連続したLBAアドレスで表されるものとして認識することが可能になる。以下の説明では、結合後の記憶領域のことを、「結合領域UA」と呼ぶ。
【0031】
図3は、ユニット管理回路22の内部構成を模式的に示すブロック図である。ユニット管理回路22は、上述したアドレス変換の他に、ホスト装置80から発行されたATAコマンドやデータを各メモリユニット30〜60に転送する機能を有している。図3には、この転送機能を実現するための内部構成を示している。
【0032】
各メモリユニット30〜60が備えるユニットコントローラ32〜62は、それぞれ、ATA規格に準拠したコマンドブロックレジスタと呼ばれる8種類のレジスタを備えている。この8種類のレジスタは、それぞれ、(1)フィーチャレジスタ、(2)セクタカウントレジスタ、(3)デバイス/ヘッドレジスタ、(4)シリンダハイレジスタ、(5)シリンダローレジスタ、(6)セクタナンバレジスタ、(7)コマンドレジスタ、(8)データレジスタ、という。ユニットコントローラ32〜62は、これらのレジスタにセットされた種々のパラメータに従って、二値メモリや多値メモリに対するデータの読み書きを制御する。ホスト装置80は、データの読み書きを行う際に、これらのレジスタに対するアクセス信号を記憶装置10に送信する。
【0033】
ユニット管理回路22は、USBインタフェースおよびバス変換回路21を介して上述したアクセス信号をホスト装置80から受信すると、アクセス対象のレジスタの種類に応じて、各メモリユニット30〜60に対するアクセス信号の転送方法を可変させる。ユニット管理回路22は、アクセス対象のレジスタの種類を判別するために、レジスタ判別回路78を備えている。
【0034】
レジスタ判別回路78は、バス変換回路21から入力したアドレス信号A0〜A2の状態に応じて、ATA規格に基づいてアクセス対象のレジスタの種類を判別する。レジスタ判別回路78は、例えば、図示するように、アドレス信号A2が「0」、アドレス信号A1が「0」、アドレス信号A0が「1」であれば、フィーチャレジスタに対するアクセス信号を入力したと判別することができる。
【0035】
ユニット管理回路22は、ホスト装置80から、フィーチャレジスタとセクタカウントレジスタに対するアクセス信号を受信した場合については、そのままスルーして、すべてのメモリユニット30〜60にこのアクセス信号を転送する。これらのレジスタは、結合領域UA内の位置を直接指定するためのものではないからである。具体的には、フィーチャレジスタは、ATAコマンドに応じて種々のパラメータを指定するために用いられるレジスタであり、セクタカウントレジスタは、複数のセクタを連続してアクセスする際に、そのセクタ数を指定するためのレジスタである。連続してアクセスする際の「先頭セクタ」の指定については、後述するデバイス/ヘッドレジスタ、シリンダハイレジスタ、シリンダローレジスタ、セクタナンバレジスタが用いられる。
【0036】
デバイス/ヘッドレジスタ、シリンダハイレジスタ、シリンダローレジスタ、セクタナンバレジスタは、結合領域UA内の位置(セクタ)を指定するために用いられるレジスタである。これらのレジスタには、それぞれ、結合領域UA内のセクタを表すLBAアドレスの一部が入力される。具体的には、LBAアドレスが28ビット長のパラメータだとすると、セクタナンバレジスタには、0ビット目から7ビットの目のビット列が入力され、シリンダローレジスタには、8ビット目から15ビット目のビット列が入力される。また、シリンダハイレジスタには、16ビット目から23ビット目のビット列が入力され、デバイス/ヘッドレジスタには、24ビット目から27ビット目のビット列が入力される。ユニット管理回路22は、これらのレジスタに対するアクセス信号を受けると、その信号を一旦、ラッチ回路70〜73でラッチして記憶する。
【0037】
ラッチ回路70〜73にラッチされたアクセス信号は、アドレスデコーダ90に入力される。アドレスデコーダ90は、各ラッチ回路70〜73に離散して記憶されたLBAアドレスを結合し、28ビット長のLBAアドレスを復元する機能を備える。また、アドレスデコーダ90は、復元したLBAアドレスと、各メモリユニットの最大セクタ数とを比較する機能を備える。この機能の詳細については後述する。
【0038】
コマンドレジスタは、ATA規格に基づく種々のコマンドを指定するためのレジスタである。このようなコマンドとしては、例えば、指定したセクタからデータを読み込むリードセクタコマンド、指定したセクタにデータを書き込むライトセクタコマンドがある。ユニット管理回路22は、コマンドレジスタに対するコマンド信号を受けると、その信号をコマンドデコーダ91とラッチ回路74とに入力する。
【0039】
コマンドデコーダ91は、コマンド信号を入力すると、入力したコマンドの種類を判別し、その判別結果を、アドレス変換回路92とユニットセレクタ94とに出力する。ラッチ回路74に入力されたコマンド信号は、ユニットセレクタ94からの出力指示があるまで、ラッチ回路74に保持される。
【0040】
アドレス変換回路92は、図2に示したように、アドレスデコーダ90から入力した結合領域UAについてのLBAアドレスを、メモリユニット30〜60毎のLBAアドレスに変換する機能を備える。具体的には、アドレス変換回路92は、アドレスデコーダ90からLBAアドレスを入力し、更に、コマンドデコーダ91からコマンドの種別を入力する。そして、入力したコマンドの種別が、LBAアドレスを必要とするコマンドであるかを判断する。LBAアドレスを必要とするコマンドとは、一般に、アドレス(セクタ)を指定して、指定したアドレスに対して何らかのアクセスを行うコマンドであり、例えば、「リードセクタコマンド」や、「ライトセクタコマンド」、「リードマルチプルコマンド」、「ライトマルチプルコマンド」、「リードDMAコマンド」、「ライトDMAコマンド」、「リードベリファイセクタコマンド」「シークコマンド」等がある。アドレス変換回路92は、入力したコマンドの種別がLBAアドレスを必要とするコマンドであると判断すれば、アドレスデコーダ90から入力したLBAアドレスを、メモリユニット毎のLBAアドレスに変換し(変換方法については後述)、変換後のLBAアドレスを全てのメモリユニット30〜60に転送する。後述するように、メインコントローラ20は、LBAアドレスを必要とするATAコマンドを複数のメモリユニットに対して同時に転送することはないので、変換後のLBAアドレスは、全てのメモリユニット30〜60に転送することができる。こうすることで、アドレス変換回路92は、転送先を選択する処理を省略することができる。もちろん、該当するメモリユニットに対してのみ変換後のLBAアドレスを転送するものとしてもよい。
【0041】
コマンドデコーダ91から入力したコマンドの種別が、LBAアドレスを必要としないコマンドであれば、アドレス変換回路92は、アドレスデコーダ90から入力したパラメータをそのまま全てのメモリユニット30〜60に転送する。LBAアドレスを必要としないコマンドの場合には、デバイス/ヘッドレジスタ等に入力したアクセス信号が、LBAアドレスを表すとは限らないからである。LBAアドレスを必要としないコマンドとは、アドレス(セクタ)の指定を行うことなくフラッシュメモリに対して何らかの操作を行うコマンドであり、例えば、「アイデンティファイデバイスコマンド」、「セットフィーチャコマンド」、「チェックパワーモードコマンド」、「スリープコマンド」、「スタンバイコマンド」、「アイドルコマンド」などがある。なお、アドレス変換回路92は、コマンドデコーダ91から入力したコマンドの種別が、LBAアドレスを必要としないコマンドであった場合でも、LBAアドレスが必要なコマンドと同様に、メモリユニット30〜60に対して変換後のLBAアドレスを送ることも可能である。LBAアドレスを必要としないコマンドは、LBAアドレスの有無に関わらず実行されるコマンドだからである。もちろん、変換までは行うが、変換後のLBAアドレスについては送信しない構成とすることも可能である。
【0042】
ユニットセレクタ94は、アドレスデコーダ90から入力したLBAアドレスに基づいて、コマンドの転送先のメモリユニットを選択する回路である。具体的には、ユニットセレクタ94は、アドレスデコーダ90からLBAアドレスを入力し、更に、コマンドデコーダ91からコマンドの種別を入力する。そして、入力したコマンドの種類が、LBAアドレスを必要とするコマンドであるかを判断する。LBAアドレスを必要とするコマンドであれば、ユニットセレクタ94は、入力したLBAアドレスに基づいて、コマンドの転送先のメモリユニットを選択する処理を行う。かかる処理の詳細は後述する。ユニットセレクタ94は、転送先のメモリユニットの選択を行うと、第1スイッチ回路96を制御して、その転送先のメモリユニットとラッチ回路74とを接続する。すると、ラッチ回路74に保持されたコマンド信号が、選択されたメモリユニットに転送される。
【0043】
ラッチ回路74に保持されたコマンド信号が各ユニットに出力されるタイミングは、アドレス変換後のLBAアドレスがアドレス変換回路92から各メモリユニットに送信され、かつ、ユニットセレクタ94によって第1スイッチ回路96のスイッチングが完了した後のタイミングに設定されている。ATA規格では、LBAアドレスを必要とするコマンドを送信する前に、予めLBAアドレスをレジスタに設定する必要があると規定されているからである。なお、入力したコマンドの種類が、LBAアドレスを必要としないコマンドであれば、ユニットセレクタ94は、ラッチ回路74を全てのメモリユニットに接続するよう、第1スイッチ回路96を制御する。こうすることで、LBAアドレスを必要としないコマンドについては、全てのメモリユニットに転送を行うことができる。入力したコマンドの種類が、LBAアドレスを必要としないコマンドの場合には、ラッチ回路74は、コマンドの出力を遅延させないものとしてもよい。
【0044】
ユニットセレクタ94は、入力したLBAアドレスに基づいて第1スイッチ回路96を制御すると、これと同様に、第2スイッチ回路98も制御する。第2スイッチ回路98は、データレジスタに対するアクセス信号を切り換えるためのスイッチである。ユニットセレクタ94によって、第2スイッチ回路98が切り換えられると、LBAアドレスを必要とするコマンドが転送されたメモリユニットと同じメモリユニットに、データ信号も転送されることになる。
【0045】
第2スイッチ回路98とレジスタ判別回路78との間には、ステータス記憶回路79が接続されている。ステータス記憶回路79には、結合領域UA全体の容量(全セクタ数)や、記憶装置10の製造者情報を表すデバイスIDが記憶されている。通常、ホスト装置80からステータス情報の取得が要求された場合には、第2スイッチ回路98で選択されたメモリユニットから、ステータス情報が返信される。しかし、例えば、「アイデンティファイデバイス」コマンド等によって、記憶装置10が有する全セクタ数の問い合わせや、デバイスIDなどの問い合わせがあった場合には、当該ステータス記憶回路79から、ホスト装置80に対して、ステータス情報が返信される。このように、ステータス記憶回路79からステータス情報を返信可能な構成とすれば、各メモリユニットで対応不能な記憶装置10全体に関わるステータス情報をホスト装置80に対して正確に伝達することが可能になる。
【0046】
図4は、アドレスデコーダ90とアドレス変換回路92とによって実現されるアドレス変換処理と、ユニットセレクタ94が実現するメモリユニットの選択処理の流れを示すフローチャートである。以下では、かかる処理を便宜的に「ユニット管理処理」という。
【0047】
アドレス変換回路92は、コマンドデコーダ91から入力したコマンドの種類がLBAアドレスを必要とするコマンドであるかを判断する(ステップS10)。この結果、LBAアドレスが不要なコマンドであれば(ステップS10:No)、アドレス変換回路92は、アドレス変換を行うことなく、全てのユニットに対して、デバイスヘッドレジスタ等に入力したパラメータをそのまま転送する。一方、ユニットセレクタ94は、全てのメモリユニットを選択して(ステップS20)、処理を終了する。こうすることで、全てのメモリユニットに対して、同一のコマンドが転送される。なお、前述したように、ステップS10において、LBAアドレスが不要なコマンドを入力したと判断した場合であっても、アドレス変換回路92は、LBAアドレスが必要なコマンドと同様に、以下に示すようなアドレス変換を行うものとしてもよい。
【0048】
上記ステップS10において、入力したコマンドがLBAアドレスを必要とするコマンドであれば(ステップS10:Yes)、アドレスデコーダ90は、入力したLBAアドレスnが、第1メモリユニット30のLBAアドレスの最大値W(図2参照)以下であるかを判断する(ステップS30)。LBAアドレスnが、最大値W以下であれば(ステップS30:Yes)、アドレス変換回路92によって、変換後のLBAアドレスmを、アドレスデコーダ90から入力したそのままのLBAアドレスnとする(ステップS40)。そして、この場合には、ユニットセレクタ94は、コマンドの転送先として、第1メモリユニット30を選択する(ステップS50)。
【0049】
上記ステップS30において、LBAアドレスnが、第1メモリユニット30のLBAアドレスの最大値W以下ではないと判断した場合には(ステップS30:No)、アドレスデコーダ90は、LBAアドレスnが、第1メモリユニット30のLBAアドレスの最大値Wと、第2メモリユニット40のLBAアドレスの最大値Xとの和(W+X)以下であるかを判断する(ステップS60)。LBAアドレスnが、前記和(W+X)以下であれば(ステップS60:Yes)、アドレス変換回路92によって、変換後のLBAアドレスmを、LBAアドレスnから、第1メモリユニット30のLBAアドレスの最大値Wを差し引いた値とする(ステップS70)。そして、この場合には、ユニットセレクタ94は、コマンドの転送先として、第2メモリユニット40を選択する(ステップS80)。
【0050】
上記ステップS60において、LBAアドレスnが、前記和(W+X)以下ではないと判断した場合には(ステップS60:No)、アドレスデコーダ90は、LBAアドレスnが、第1メモリユニット30のLBAアドレスの最大値Wと、第2メモリユニット40のLBAアドレスの最大値Xと、第3メモリユニット50のLBAアドレスの最大値Yとの和(W+X+Y)以下であるかを判断する(ステップS90)。LBAアドレスnが、前記和(W+X+Y)以下であれば(ステップS90:Yes)、アドレス変換回路92によって、変換後のLBAアドレスmを、LBAアドレスnから、WおよびXを差し引いた値とする(ステップS100)。そして、この場合には、ユニットセレクタ94は、コマンドの転送先として、第3メモリユニット50を選択する(ステップS110)。
【0051】
上記ステップS90において、LBAアドレスnが、前記和(W+X+Y)以下ではないと判断した場合には(ステップS90:No)、アドレスデコーダ90は、LBAアドレスnが、第1メモリユニット30のLBAアドレスの最大値Wと、第2メモリユニット40のLBAアドレスの最大値Xと、第3メモリユニット50のLBAアドレスの最大値Yと、第4メモリユニット60の最大値Zとの和(W+X+Y+Z)以下であるかを判断する(ステップS120)。LBAアドレスnが、前記和(W+X+Y+Z)以下であれば(ステップS120:Yes)、アドレス変換回路92によって、変換後のLBAアドレスmを、LBAアドレスnから、W、XおよびYを差し引いた値とする(ステップS130)。そして、この場合には、ユニットセレクタ94は、コマンドの転送先として、第4メモリユニット60を選択する(ステップS140)。
【0052】
上記ステップS120において、LBAアドレスnが、前記和(W+X+Y+Z)以下ではないと判断した場合には(ステップS90:No)、結合領域UAを超えるLBAアドレスが指定されていることになる。そのため、この場合には、所定のエラー処理が実行される(ステップS150)。所定のエラー処理とは、例えば、現在入力しているコマンドを破棄する等の処理である。以上で説明したユニット管理処理によれば、単純な比較演算だけで、容易に、アドレスの変換とメモリユニットの選択を行うことができる。
【0053】
以上、本実施例の記憶装置10の構成および動作について説明した。上述したように、本実施例の記憶装置10は、結合領域UAの先頭にSLC型のフラッシュメモリである二値メモリ31が割り当てられるようにアドレス変換を行う。そのため、記憶装置10が、FAT16やFAT32といったファイルシステムによってフォーマットされると、データの管理情報であるファイルアロケーションテーブル(以下、「FAT情報」という)が、二値メモリ31内に生成されることになる。FAT情報は、データの書込や消去が行われると頻繁に書き換えられる管理情報である。本実施例では、このような管理情報が書き込まれる領域に、MLC型のフラッシュメモリ(多値メモリ41〜61)よりも書込速度の速いSLC型のフラッシュメモリを配置している。そのため、本実施例によれば、MLC型のフラッシュメモリを採用することで大容量化を実現しつつ、MLC型のフラッシュメモリだけで構成された記憶装置に比べ、格段にデータの書込速度を向上させることが可能になる。なお、MLC型のフラッシュメモリの書込速度は、概ね600nsecであり、SLC型のフラッシュメモリの書込速度は、概ね200nsecである。
【0054】
ここで、書込速度の比較例を示す。周知のように、FAT16やFAT32では、管理情報内に、同一内容のFAT情報が2つ書き込まれる。そうすると、MLC型のフラッシュメモリだけで構成された記憶装置であれば、1つ目のFAT情報の書き換えに600nsec、2つ目のFAT情報の書き換えに600nsec、さらに、データの書き換えに600nsec要する。すると、全体として、1800nsecの時間がかかることになる。これに対して、本実施例では、FAT情報が書き込まれる領域にSLC型のフラッシュメモリを用いているため、1つ目のFAT情報の書き換えに200nsec、2つ目のFAT情報の書き換えに200nsec、(多値メモリ内の)データの書き換えに600nsec要することになる。そうすると、全体として、1000nsecでデータの書き換えが完了することになる。つまり、この例によれば、MLC型のフラッシュメモリだけで構成された記憶装置に対して、データの書き換え時間を、45%程度も削減することが可能になる。
【0055】
また、一般的に、SLC型のフラッシュメモリは、MLC型のフラッシュメモリに比べて、データの書換可能回数が10〜20倍ほど多い。そのため、本実施例のように、頻繁に書き換えられる管理情報が書き込まれる領域にSLC型のフラッシュメモリを配置することで、大幅にデータ記憶の信頼性を向上させることができる。この結果、外部記憶装置としてだけではなく、従来のハードディスクと同様に、オペレーティングシステムのブートドライブとして容易に利用することが可能になる。
【0056】
また、本実施例では、二値メモリや多値メモリを制御するユニットコントローラとして、コンパクトフラッシュ用のコントローラを用いるものとした。一般的に、コンパクトフラッシュは、汎用性が高く、様々な特性のフラッシュメモリを制御することが可能である。そのため、本実施例のように、コンパクトフラッシュコントローラをメモリユニット毎に備えるものとすれば、メモリユニット毎に異なるメーカのフラッシュメモリを採用したとしても特性の違いを吸収して正常に動作をさせることが可能になる。この結果、二値メモリや多値メモリを混載する記憶装置を容易に構成することが可能になる。なお、本実施例では、ユニットコントローラとして、コンパクトフラッシュ用のコントローラを採用したが、SDメモリ用のコントローラや、マルチメディアカード用のコントローラを用いることも可能である。
【0057】
本実施例では、メインコントローラ20が有する機能は、ハードウェア的に構成するものとした。これに対して、メインコントローラ20を、CPUとROMとRAMとを内蔵するマイクロコンピュータとして構成することにより、上述したアドレス変換やユニット管理の機能をソフトウェア的に実現するものとしてもよい。また、メインコントローラ20として、RAIDチップを採用し、このRAIDチップにスパニング動作をさせることで、各メモリユニットを制御してもよい。
【0058】
また、本実施例では、メモリユニットを計4つ備えるものとしたが、その数に制限はない。最低限、二値メモリを備えるメモリユニットが1つと、多値メモリを備えるメモリユニットが1つあればよい。
【0059】
また、本実施例では、二値メモリの容量を1Gバイトとしたが、この容量は、次のように決定することができる。例えば、記憶装置10がFAT32でフォーマットされるとし、記憶装置10の全体の記憶容量がxギガバイトだとする。FAT32では、多くの場合、1セクタ当たり4Kバイトの容量を表すため、全体で、(x/4)メガ個のセクタ数とする。また、FAT32では、1アドレスを表現するのに、4バイトのデータ量が必要となる。そのため、1つのFAT情報あたり、xメガバイト(=4バイト*(x/4)メガ個)の容量が必要となる。上述したように、FAT32では、多くの場合、FAT情報が2つ書き込まれるため、合計で、(2*x)メガバイトの管理領域が必要となる。なお、管理情報としては、FAT情報だけでなく、マスタブートレコードやディレクトリエントリなどの情報も記録されるため、全体としては、それ以上の管理領域が必要である。ここで具体例を挙げると、記憶装置10の全体の容量が、128ギガバイトであれば、上述した算出方法により、FAT情報に必要な容量は、256メガバイトとなる。さらに、これに、マスタブートレコードやディレクトリエントリ等を記録するための領域を加えると、全体で、500メガバイト程度の容量の二値メモリが必要となる。すなわち、記憶装置10の全体の領域(結合領域UA)に対して、少なくとも0.5%の二値メモリの容量が必要であり、1%程度の容量があれば、余裕を持って管理情報を記憶することができる。もちろん、二値メモリは、動作速度や信頼性の上で、多値メモリよりも優れた特性を有するため、1%を超える容量としても構わない。
【0060】
B.第2実施例:
図5は、本発明の第2実施例としての記憶装置の概略構成を示す説明図である。図示するように、本実施例の記憶装置110は、メインコントローラ20と、二値メモリ31を搭載する第1メモリユニット30と、多値メモリ41を搭載する第2メモリユニット40とを備えている。メインコントローラ20は、第1実施例と同様に、バス変換回路21とユニット管理回路122とを備えている。このうち、本実施例のユニット管理回路122は、ホスト装置80から指定されたアドレスやデータ、コマンドに応じて、データの読み書きを行う対象を、第1メモリユニット30と第2メモリユニット40との間で切り換える機能を有している。
【0061】
図6は、ユニット管理回路122によって行われるメモリユニットの切り換え制御の概念を示す説明図である。図6には、左側から順に、ホスト装置80から記憶装置110を見た際の記憶装置110の全体の記憶領域UA2と、第1メモリユニット30の記憶領域と、第2メモリユニット40の記憶領域とを示している。
【0062】
本実施例では、第1メモリユニット30内の記憶領域は、「0」から「W」までのLBAアドレスで表されている。一方、第2メモリユニット40内の記憶領域は、「0」から「X」までのLBAアドレスで表されている。LBAアドレス「X」は、LBAアドレス「W」よりも大きい値である。
【0063】
本実施例では、ホスト装置80から「0」から「W」までのLBAアドレスが指定されると、ユニット管理回路122は、データの読み書きの対象を、二値メモリ31を搭載した第1メモリユニット30に切り換える。これに対して、「W」を超えるLBAアドレスが指定されると、ユニット管理回路122は、データの読み書き対象を、多値メモリ41が搭載された第2メモリユニット40に切り換える。つまり、本実施例では、ユニット管理回路122は、ホスト装置80から指定されたLBAアドレスを、閾値「W」と比較することで、使用するメモリユニットを切り換えるのである。なお、上述のような切り換え制御を行う結果、本実施例では、第2メモリユニット40の一部に、使用されない領域(LBAアドレス「0」〜「W」)が生じることになる。
【0064】
図7は、ユニット管理回路122の内部構成を模式的に示すブロック図である。図示するように、本実施例のユニット管理回路122は、レジスタ判別回路178と、切換制御回路194と、第1スイッチ回路196と、第2スイッチ回路198とを備えている。
【0065】
レジスタ判別回路178は、図5に示したバス変換回路21に接続される。レジスタ判別回路178は、第1実施例と同様に、バス変換回路21から入力したアドレス信号A0〜A2の状態に応じて、ATA規格に基づき、アクセス対象のレジスタの種類を判別する。そして、判別したレジスタの種類に応じて、バス変換回路21から受信したアクセス信号を、切換制御回路194に転送する。
【0066】
切換制御回路194は、レジスタ判別回路178が判別したアクセス対象のレジスタの種類や、ホスト装置80から指定されたアドレス、データ、コマンドに基づいて、アクセス対象となるメモリユニットを、第1メモリユニット30と第2メモリユニット40との間で切り換える制御を行う。
【0067】
第1スイッチ回路196は、切換制御回路194からの指示に基づいて、バス変換回路21と第1メモリユニット30間の接続を開閉する。
【0068】
第2スイッチ回路198は、切換制御回路194からの指示に基づいて、バス変換回路21と第2メモリユニット40間の接続を開閉する。
【0069】
図示するように切換制御回路194は、アドレスデコーダ190とアドレス比較回路192とサイズレジスタ179とコマンドデコーダ191とを備えている。
【0070】
アドレスデコーダ190は、デバイス/ヘッドレジスタ、シリンダハイレジスタ、シリンダローレジスタ、セクタナンバレジスタに対するアクセス信号に基づいて、ホスト装置80が指定したLBAアドレスを解析する。また、コマンドデコーダ191は、ホスト装置80から指示されたコマンドの解析を行う。
【0071】
サイズレジスタ179には、第1メモリユニット30の最大容量に基づいて定められた閾値が記憶されている。本実施例では、第1メモリユニット30の最大容量は512Mバイトであることとし、サイズレジスタ179に記憶されている閾値は、この最大容量よりも若干少ない480Mバイトの容量を示すLBAアドレスであることとする。フラッシュメモリには、欠損ブロック(バッドブロック)が生じる場合があるため、512Mバイトのすべてを利用できない場合があるからである。もちろん、閾値として、第1メモリユニット30の最大容量を表すLBAアドレスをそのまま記憶させることとしてもよい。なお、480Mバイトは、LBA方式による2進数で、「0000000011110000000000000000」と表すことができる。そのため、閾値を480Mバイトとすれば、ホスト装置80から指定される28ビット長のLBAアドレスのうち、上位8ビットの値が、「00000000」以上となるか否かに応じて、指定されたアドレスが、閾値(480Mバイト)を超えるか否かを判断することが可能になる。つまり、後述するアドレス比較回路192は、4ビットのデバイス/ヘッドレジスタと、8ビットのシリンダハイレジスタの上位4ビットを用いるだけで、シリンダローレジスタやセクタナンバレジスタの値を用いることなく、容易に、閾値を超えたか否かの判断を行うことが可能になる。
【0072】
アドレス比較回路192は、アドレスデコーダ190が解析したLBAアドレスと、サイズレジスタ179に記憶されている閾値とを比較し、図6に示したように、アクセス対象の候補となるメモリユニットを、第1メモリユニット30と第2メモリユニット40との間で選択する。
【0073】
図8は、切換制御回路194によって行われる切り換え動作の詳細を示す説明図である。図中に、「切り換え」とあるのは、アドレス比較回路192によって選択されたメモリユニットに対してアクセスすることをいう。これに対して、「同時アクセス」とあるのは、アドレス比較回路192による選択とは無関係に、第1メモリユニット30と第2メモリユニット40との両者に対して同一のアクセスを行うことをいう。
【0074】
また、図8に、「ライト時」とあるのは、ホスト装置80からライトコマンドが発行された状況を示している。ライトコマンドには、コマンドレジスタに対するコマンドのライト命令や、データレジスタに対するデータのライト命令、その他のレジスタに対するLBAアドレス等の各種パラメータのライト命令が含まれる。また、「リード時」とあるのは、ホスト装置80から、リードコマンドが発行された状況を示している。リードコマンドには、メモリユニットから種々のステータスやデータを読み込む命令が含まれる。
【0075】
図8に示すように、データレジスタおよびコマンドレジスタに対するアクセスは、原則として、ライト時、リード時ともに、アドレス比較回路192によって選択されたメモリユニットに対して行われる。これに対して、他のレジスタに対するアクセスは、リード時のみ選択されたメモリユニットに対して行われ、ライト時には、2つのメモリユニットに対して同一のアクセスがなされる。データレジスタとコマンドレジスタ以外のレジスタは、主に、アドレスを指定するためのレジスタである。そのため、ライトの対象となるデータやコマンドが適切に、選択されたメモリユニットに対して転送される限り、ライト時において、第1メモリユニット30と第2メモリユニット40との両者のレジスタに対して同一のアドレスをライトしたとしても、特に支障がないからである。
【0076】
なお、図8に「例外1」と示したのは、コマンドデコーダ191によってコマンドの解析を行った結果、ホスト装置80から転送されたコマンドが、アイドルコマンドやスタンバイコマンドなどの、メモリユニット全体の動作状態を切り換えるようなコマンドであった場合である。このようなコマンドが転送された場合には、切換制御回路194は、例外的に、第1メモリユニット30と第2メモリユニット40の両者に対して、かかるコマンドの転送を行う。
【0077】
また、図8に「例外2」と示したのは、アイデンティファイデバイスコマンド等によって、記憶装置110のデータ容量(全セクタ数)のリードがなされた場合である。このような場合においては、切換制御回路194は、例外的に、第2メモリユニット40に対してアクセスを行う。図6に示したように、本実施例では、記憶装置110のデータ容量は、第2メモリユニット40のデータ容量と一致しているためである。
【0078】
以上、第2実施例としての記憶装置110の構成および動作について説明した、本実施例の記憶装置110によれば、第1実施例の記憶装置10と同様に、記憶領域の先頭の領域にSLC型のフラッシュメモリを割り当て、それ以外の領域に、MLC型のフラッシュメモリを割り当てることができる。そのため、書換可能回数が多く、動作が高速なSLC型のフラッシュメモリに対して、頻繁に書き換えられるFAT情報を記憶させることが可能になる。この結果、第1実施例と同様に、MLC型のフラッシュメモリを採用することで大容量化を実現しつつ、MLC型のフラッシュメモリだけで構成された記憶装置に比べて、データの書込速度とデータ記憶の信頼性を格段に向上させることが可能になる。
【0079】
また、本実施例の記憶装置110によれば、ホスト装置80から指定されたアドレスをそのまま用いて、2種類のメモリユニットに対するデータの読み書きを行うことが可能になる。この結果、複雑なアドレス変換を行う回路が不要であるため、メインコントローラ20の回路規模を縮小することができる。この結果、製造コストの低減を図ることが可能になる。
【0080】
以上、本発明の種々の実施例について説明したが、本発明はこれらの実施例に限定されず、その趣旨を逸脱しない範囲で種々の構成を採ることができることはいうまでもない。例えば、上記実施例では、記憶装置とホスト装置とが接続されるインタフェースとしてUSBインタフェースを採用したが、インタフェースの種類はこれに限られない。IEEE1394インタフェースや、シリアルATAインタフェース、パラレルATAインタフェースなど種々のインタフェースを採用することが可能である。
【図面の簡単な説明】
【0081】
【図1】第1実施例としての記憶装置の概略構成を示す説明図である。
【図2】第1実施例のユニット管理回路によって行われるアドレス変換の概念を示す説明図である。
【図3】第1実施例のユニット管理回路の内部構成を模式的に示すブロック図である。
【図4】第1実施例におけるユニット管理処理のフローチャートである。
【図5】第2実施例としての記憶装置の概略構成を示す説明図である。
【図6】第2実施例のユニット管理回路によって行われるメモリユニットの切り換え制御の概念を示す説明図である。
【図7】第2実施例におけるユニット管理回路の内部構成を模式的に示すブロック図である。
【図8】第2実施例の切換制御回路によって行われる切り換え動作の詳細を示す説明図である。
【符号の説明】
【0082】
10…記憶装置
20…メインコントローラ
21…バス変換回路
22…ユニット管理回路
30…第1ユニット
31…二値メモリ
32…第1ユニットコントローラ(SLCコントローラ)
40…第2ユニット
41,51,61…多値メモリ
42…第2ユニットコントローラ(MLCコントローラ)
50…第3ユニット
60…第4ユニット
70〜74…ラッチ回路
78…レジスタ判別回路
79…ステータス記憶回路
80…ホスト装置
90…アドレスデコーダ
91…コマンドデコーダ
92…アドレス変換回路
94…ユニットセレクタ
96…第1スイッチ回路
98…第2スイッチ回路
110…記憶装置
122…ユニット管理回路
178…レジスタ判別回路
179…サイズレジスタ
190…アドレスデコーダ
191…コマンドデコーダ
192…アドレス比較回路
194…切換制御回路
196…第1スイッチ回路
198…第2スイッチ回路

【特許請求の範囲】
【請求項1】
記憶領域の先頭にデータの管理情報を記録する所定のファイルシステムに基づいてデータを記憶可能な記憶装置であって、
第1の記憶領域を有し、単セルあたり2種類の値を記憶可能な二値フラッシュメモリと、
第2の記憶領域を有し、単セルあたり3種類以上の値を記憶可能な多値フラッシュメモリと、
前記第1の記憶領域を先頭の領域に配置しつつ、前記第1の記憶領域と前記第2の記憶領域とを論理的に結合して、単一の記憶領域である結合領域としてデータの読み書きを行う制御部と
を備える記憶装置。
【請求項2】
請求項1に記載の記憶装置であって、
前記制御部は、
前記結合領域と、前記第1の記憶領域および前記第2の記憶領域との間のアドレス変換を行うアドレス変換部と、
前記アドレス変換の結果に応じて、前記データの読み書き先を、前記二値フラッシュメモリおよび前記多値フラッシュメモリの中から選択する選択部と
を備える記憶装置。
【請求項3】
請求項2に記載の記憶装置であって、
前記制御部は、前記アドレス変換部によって変換されたアドレスを、前記二値フラッシュメモリおよび前記多値フラッシュメモリに送信した後で、前記データの読み書きを行うためのコマンドを、前記選択されたメモリに送信する
記憶装置。
【請求項4】
請求項1ないし請求項3のいずれかに記載の記憶装置であって、
前記第1の記憶領域は、前記結合領域の0.5%以上100%未満のいずれかの割合を占める領域である
記憶装置。
【請求項5】
請求項1ないし請求項4のいずれかに記載の記憶装置であって、
当該記憶装置は、所定のインタフェースを介してホスト装置と接続されており、
前記制御部は、前記ホスト装置からの指示に応じて前記データの読み書きを行う
記憶装置。
【請求項6】
請求項5に記載の記憶装置であって、
前記制御部は、前記ホスト装置から、当該記憶装置の記憶容量の問い合わせを受けた際に、前記結合領域の記憶容量を返信する手段を備える
記憶装置。
【請求項7】
請求項1ないし請求項6のいずれかに記載の記憶装置であって、
前記多値フラッシュメモリを複数備え、
前記制御部は、前記第1の記憶領域を先頭の領域に配置しつつ、前記第1の記憶領域と複数の前記第2の記憶領域とを論理的に結合する
記憶装置。
【請求項8】
記憶領域の先頭にデータの管理情報を記録する所定のファイルシステムに基づいてデータを記憶可能な記憶装置であって、
第1の記憶領域を有し、単セルあたり2種類の値を記憶可能な二値フラッシュメモリと、
前記第1の記憶領域よりも広い第2の記憶領域を有し、単セルあたり3種類以上の値を記憶可能な多値フラッシュメモリと、
当該記憶装置に接続されたホスト装置から指定されたアドレスと、前記第1の記憶領域の最大容量に基づいて定められた所定の閾値とを比較する比較部と、
前記アドレスが、前記閾値内のアドレスである場合には、データの読み書き先を前記二値フラッシュメモリに切り換え、前記アドレスが、前記閾値を超えるアドレスである場合には、前記読み書き先を、前記多値フラッシュメモリに切り換える制御部と
を備える記憶装置。
【請求項9】
請求項8に記載の記憶装置であって、
前記制御部は、前記読み書き先が、前記二値フラッシュメモリおよび前記多値フラッシュメモリのいずれかに切り換えられた場合においても、前記アドレスの値をそのまま用いて、前記二値フラッシュメモリまたは前記多値フラッシュメモリに対して、データの読み書きを行う
記憶装置。
【請求項10】
請求項9に記載の記憶装置であって、
前記制御部は、前記ホスト装置から、当該記憶装置の記憶容量の問い合わせを受けた際に、前記第2の記憶領域の記憶容量を返信する手段を備える
記憶装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate


【公開番号】特開2008−310793(P2008−310793A)
【公開日】平成20年12月25日(2008.12.25)
【国際特許分類】
【出願番号】特願2008−4691(P2008−4691)
【出願日】平成20年1月11日(2008.1.11)
【出願人】(390040187)株式会社バッファロー (378)
【Fターム(参考)】