(57)【要約】【課題】接続されるインタフェースの給電能力に応じて記憶装置の動作状態を調整可能な技術を提供する。【解決手段】記憶装置は、データを不揮発的に記憶可能な記憶部と、第１の給電能力を有する第１のインタフェースが接続可能であり該第１のインタフェースから当該記憶装置を動作させる電力を受給可能な第１の接続部と、第２の給電能力を有する第２のインタフェースが接続可能であり該第２のインタフェースから当該記憶装置を動作させる電力を受給可能な第２の接続部と、第１の接続部または第２の接続部を通じて接続されたインタフェースの種類を判別する判別部と、判別されたインタフェースの種類に応じて、記憶部の消費電力を調整する制御部と、を備える。【選択図】図１
2011204140.tif 000002
【特許請求の範囲】
【請求項１】
記憶装置であって、
データを不揮発的に記憶可能な記憶部と、
第１の給電能力を有する第１のインタフェースが接続可能であり、該第１のインタフェースから当該記憶装置を動作させる電力を受給可能な第１の接続部と、
第２の給電能力を有する第２のインタフェースが接続可能であり、該第２のインタフェースから当該記憶装置を動作させる電力を受給可能な第２の接続部と、
前記第１の接続部または前記第２の接続部を通じて接続されたインタフェースの種類を判別する判別部と、
前記判別されたインタフェースの種類に応じて、前記記憶部の消費電力を調整する制御部と、
を備える記憶装置。
【請求項２】
請求項１に記載の記憶装置であって、
前記記憶部を複数備え、
前記制御部は、前記複数の記憶部のうちの２以上の記憶部に同時にアクセスしてデータの読み書きが可能であり、
該制御部は、前記判別されたインタフェースの種類に応じて、前記複数の記憶部に対する同時アクセス数を変更することで、前記消費電力の調整を行う、記憶装置。
【請求項３】
請求項２に記載の記憶装置であって、
前記第１の給電能力は、前記第２の給電能力よりも高く、
前記制御部は、前記判別されたインタフェースの種類が、前記第１のインタフェースの場合には、前記同時アクセス数を、前記第２のインタフェースが接続された場合における同時アクセス数よりも多くする、記憶装置。
【請求項４】
請求項２または請求項３に記載の記憶装置であって、
前記制御部は、前記データを分散させて前記複数の記憶部に順番に書き込みを行うものであり、該制御部は、前記判別されたインタフェースの種類がいずれの種類であっても、前記順番を変更することなく、前記複数の記憶部に対して、前記分散されたデータの書き込みを行う、記憶装置。
【請求項５】
請求項２ないし請求項４のいずれか一項に記載の記憶装置であって、
前記制御部は、データの読み書きが行われていない記憶部を待機状態にする、記憶装置。
【請求項６】
請求項１ないし請求項５のいずれか一項に記載の記憶装置であって、
前記判別部は、前記第１の接続部および前記第２の接続部が備える電源入力端子のうち、少なくとも一方の電源入力端子の電圧を検出することで、前記判別を行う、記憶装置。
【請求項７】
請求項１ないし請求項５のいずれか一項に記載の記憶装置であって、
前記判別部は、前記第１の接続部または前記第２の接続部を介して接続されたインタフェースから受信した信号のプロトコルを解析することで、前記判別を行う、記憶装置。
【請求項８】
請求項７に記載の記憶装置であって、
前記制御部は、前記判別部による判別が終了するまで、前記複数の記憶部への同時アクセス数を制限する、記憶装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータ等から転送されたデータを不揮発的に記憶する記憶装置に関する。
【背景技術】
【０００２】
従来、コンピュータに接続される記憶装置として、フラッシュメモリを内蔵するメモリカードが様々な用途で利用されている（例えば、特許文献１参照）。また、近年では、ＳＳＤ（Solid State Drive）と呼ばれる大容量のフラッシュメモリを備えた記憶装置が、従来のハードディスク装置に代替して利用されることが多くなっている。ＳＳＤは、通常、ＵＳＢ（Universal Serial Bus）や、ＳＡＴＡ（Serial ATA）、ＰＡＴＡ（Parallel ATA）、といったインタフェースによってコンピュータに接続される。ＳＳＤの中には、これらのインタフェースを複数種類備えるものも存在する。
【０００３】
上述したインタフェースのうち、例えば、ＵＳＢ（ＵＳＢ２．０）では、ＵＳＢケーブルを通じてＳＳＤ等の周辺機器に供給可能な電流値が５００ｍＡまでと定められている（ＵＳＢ３．０では９００ｍＡ）。これに対して、ＳＡＴＡやＰＡＴＡでは、特に制限は設けられていない。
【０００４】
このように、コンピュータとＳＳＤとを接続するインタフェースには、それぞれ、給電能力に違いがあることから、これまで、複数種類のインタフェースを備えるＳＳＤは、給電能力の最も低いインタフェースに合わせて消費電力の設計を行う必要があった。そのため、例えば、フラッシュメモリやコントローラの仕様上は高速動作が可能であるにもかかわらず、消費電力低減のために、低速に動作させざるを得ない場合があった。このような問題は、ＳＳＤに限らず、給電能力の異なる複数のインタフェースを接続可能な装置全般に共通した問題であった。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００８−３３３７９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
このような問題を考慮し、本発明が解決しようとする課題は、接続されるインタフェースの給電能力に応じて記憶装置を動作させることが可能な技術を提供することである。
【課題を解決するための手段】
【０００７】
本発明は、上述の課題の少なくとも一部を解決するためになされたものであり、以下の形態又は適用例として実現することが可能である。
【０００８】
［適用例１］記憶装置であって、データを不揮発的に記憶可能な記憶部と、第１の給電能力を有する第１のインタフェースが接続可能であり、該第１のインタフェースから当該記憶装置を動作させる電力を受給可能な第１の接続部と、第２の給電能力を有する第２のインタフェースが接続可能であり、該第２のインタフェースから当該記憶装置を動作させる電力を受給可能な第２の接続部と、前記第１の接続部または前記第２の接続部を通じて接続されたインタフェースの種類を判別する判別部と、前記判別されたインタフェースの種類に応じて、前記記憶部の消費電力を調整する制御部と、を備える記憶装置。
【０００９】
このような構成の記憶装置では、第１の接続部または第２の接続部を通じて接続されたインタフェースの種類を判別し、判別されたインタフェースの種類に応じて記憶部の消費電力を調整する。そのため、接続されたインタフェースの給電能力に応じて、記憶装置を動作させることが可能になる。なお、第１の接続部と第２の接続部とは、物理的に分離していてもよいし、第１のインタフェースと第２のインタフェースとの両者が接続可能なように物理的に共通化されていてもよい。
【００１０】
［適用例２］適用例１に記載の記憶装置であって、前記記憶部を複数備え、前記制御部は、前記複数の記憶部のうちの２以上の記憶部に同時にアクセスしてデータの読み書きが可能であり、該制御部は、前記判別されたインタフェースの種類に応じて、前記複数の記憶部に対する同時アクセス数を変更することで、前記消費電力の調整を行う、記憶装置。
【００１１】
このような構成であれば、複数の記憶部に対する同時アクセス数を増減させることで消費電力を調整することが可能になる。なお、「同時アクセス」とは、完全に同一のタイミングでアクセスすることのみならず、複数の記憶部に対してデータを並列的に読み書きできるように、連続的なタイミングでアクセスすることも含む。
【００１２】
［適用例３］適用例２に記載の記憶装置であって、前記第１の給電能力は、前記第２の給電能力よりも高く、前記制御部は、前記判別されたインタフェースの種類が、前記第１のインタフェースの場合には、前記同時アクセス数を、前記第２のインタフェースが接続された場合における同時アクセス数よりも多くする記憶装置。
【００１３】
このような構成であれば、給電能力が高いインタフェースほど、複数の記憶部に対する同時アクセス数を多くすることができるので、データの読み書き速度を向上させることが可能になる。
【００１４】
［適用例４］適用例２または適用例３に記載の記憶装置であって、前記制御部は、前記データを分散させて前記複数の記憶部に順番に書き込みを行うものであり、該制御部は、前記判別されたインタフェースの種類がいずれの種類であっても、前記順番を変更することなく、前記複数の記憶部に対して、前記分散されたデータの書き込みを行う記憶装置。
【００１５】
このような構成であれば、第１のインタフェースと第２のインタフェースのどちらのインタフェースが接続されても、制御部は、複数の記憶部に同じ順序でデータの読み書きを行うことができる。そのため、既にデータが複数の記憶部に分散されて書き込まれている状態において接続されるインタフェースが変更されたとしても、特別なアドレス変換等の処理を行うことなく、データの読み書きを正常に行うことができる。
【００１６】
［適用例５］適用例２ないし適用例４のいずれか一項に記載の記憶装置であって、前記制御部は、データの読み書きが行われていない記憶部を待機状態にする記憶装置。
【００１７】
このような構成であれば、データの読み書きが行われていない記憶部を待機状態にするので、同時アクセス数が少なくなるインタフェースの接続時において、特に、消費電力を効果的に低減することが可能になる。
【００１８】
［適用例６］適用例１ないし適用例５のいずれか一項に記載の記憶装置であって、前記判別部は、前記第１の接続部および前記第２の接続部が備える電源入力端子のうち、少なくとも一方の電源入力端子の電圧を検出することで、前記判別を行う記憶装置。
【００１９】
このような構成であれば、第１の接続部または第２の接続部に供給されている電源電圧を検出することで、接続されたインタフェースの種類を直接的に判別することができる。
【００２０】
［適用例７］適用例１ないし適用例５のいずれか一項に記載の記憶装置であって、前記判別部は、前記第１の接続部または前記第２の接続部を介して接続されたインタフェースから受信した信号のプロトコルを解析することで、前記判別を行う記憶装置。
【００２１】
このような構成であれば、例えば、第１の接続部と第２の接続部との電源端子が物理的に共有されている場合などに、電源電圧によらず、接続されたインタフェースの種類を判別することが可能になる。
【００２２】
［適用例８］適用例７に記載の記憶装置であって、前記制御部は、前記判別部による判別が終了するまで、前記複数の記憶部への同時アクセス数を制限する記憶装置。
【００２３】
このような構成であれば、給電能力の低いインタフェースが接続された際に、そのプロトコルの解析中に消費電力が高まってしまうことを抑制することができる。
【００２４】
本発明は、上述した記憶装置としての構成のほか、記憶装置の制御方法や、記憶装置を制御するためのコンピュータプログラムとしても構成することができる。コンピュータプログラムは、コンピュータが読取可能な記録媒体に記録されていてもよい。記録媒体としては、例えば、磁気ディスクや光ディスク、メモリカード、ハードディスク等の種々の媒体を利用することができる。
【図面の簡単な説明】
【００２５】
【図１】本発明の第１実施例としてのＳＳＤの概略構成を示す説明図である。
【図２】インタリーブ制御によって複数のフラッシュメモリに同時にデータを書き込む動作の概要を示す説明図である。
【図３】管理テーブルの一例を示す図である。
【図４】フラッシュメモリのアクセス順を示す図である。
【図５】ＳＳＤの起動シーケンスを示すフローチャートである。
【図６】動作モードに応じたフラッシュメモリの動作状態の例を示すタイミングチャートである。
【図７】管理テーブルの他の例を示す図である。
【図８】フラッシュメモリの他のアクセス順を示す図である。
【図９】本発明の第２実施例としてのＳＳＤの概略構成を示す説明図である。
【図１０】第２実施例におけるＳＳＤの起動シーケンスを示すフローチャートである。
【図１１】第１変形例におけるＳＳＤの概略構成を示す説明図である。
【発明を実施するための形態】
【００２６】
以下、本発明の実施の形態を実施例に基づき説明する。
Ａ．第１実施例：
図１は、本発明の第１実施例としてのＳＳＤの概略構成を示す説明図である。本実施例のＳＳＤ１００は、パーソナルコンピュータなどのホスト装置（図示せず）に接続されて使用される二次記憶装置であり、メインコントローラ１０と、複数のフラッシュメモリ３０と、ＵＳＢコネクタ４０と、ＳＡＴＡコネクタ５０と、バッファメモリ６０と、を備えている。
【００２７】
メインコントローラ１０は、内部に、ＣＰＵ１２と、ＲＯＭ１４と、ＲＡＭ１６と、ＵＳＢ制御回路１８と、ＳＡＴＡ制御回路２０と、インタフェース判別回路２２と、バッファ制御回路２４と、を備えており、更に、８つのフラッシュ制御回路２６（第１〜８フラッシュ制御回路）を備えている。これらは、内部バス２８によって相互に接続されている。
【００２８】
ＵＳＢ制御回路１８には、１組（Ｄ＋，Ｄ−）のデータ信号線４１を介してＵＳＢコネクタ４０が接続されている。ＵＳＢ制御回路１８は、ＵＳＢコネクタ４０を介して接続されたホスト装置との間でＵＳＢ２．０規格に基づくデータの入出力を行う。ＵＳＢ２．０規格では、最大４８０Ｍｂｐｓの通信速度でホスト装置とデータの入出力を行うことができる。なお、本実施例では、ＵＳＢ制御回路１８は、ＵＳＢ２．０規格に基づきホストとの通信を行うこととするが、他のバージョンのＵＳＢ規格によって通信を行うこととしても構わない。
【００２９】
ＳＡＴＡ制御回路２０には、２組（Ａ＋，Ａ−，Ｂ＋，Ｂ−）のデータ信号線５１を介してＳＡＴＡコネクタ５０が接続されている。ＳＡＴＡ制御回路２０は、ＳＡＴＡコネクタ５０を介して接続されたホスト装置との間でＳＡＴＡ２規格に基づくデータの入出力を行う。ＳＡＴＡ２規格では、最大３．０Ｇｂｐｓの通信速度でホスト装置とデータの入出力を行うことができる。なお、本実施例では、ＳＡＴＡ制御回路２０は、ＳＡＴＡ２規格に基づきホストとの通信を行うこととするが、他のバージョンのＳＡＴＡ規格によって通信を行うこととしても構わない。また、本願において、ＳＡＴＡ規格には、ｅＳＡＴＡ規格も含まれることとする。
【００３０】
ＵＳＢコネクタ４０とＳＡＴＡコネクタ５０とには、それぞれ、ホスト装置から電力の供給を受けるための電源入力端子が含まれている。ＵＳＢコネクタ４０には、電圧５Ｖ、最大電流５００ｍＡの電力が供給され、ＳＡＴＡコネクタ５０には、電圧５Ｖの電力が供給される（電流についての制限はなし）。ＵＳＢコネクタ４０の電源入力端子に接続された電源線４３と、ＳＡＴＡコネクタ５０の電源入力端子に接続された電源線５３は、それぞれ、電流が相互に侵入することを防止するためのショットキーバリアダイオード４２，５２を介して、ＳＳＤ１００の電源ラインＶｃｃに接続される。この電源ラインＶｃｃには、メインコントローラ１０やフラッシュメモリ３０、バッファメモリ６０の電源入力端子が接続される。
【００３１】
インタフェース判別回路２２は、ＳＳＤ１００とホスト装置との間を接続するインタフェースの種類を判別するための回路である。インタフェース判別回路２２には、ＵＳＢコネクタ４０の電源入力端子に接続された電源線４３と、ＳＡＴＡコネクタ５０の電源入力端子に接続された電源線５３とがそれぞれ接続されている。インタフェース判別回路２２は、ＵＳＢの電源線４３を通じて所定の電圧値（例えば、３Ｖ）以上の電圧が入力された場合に、ＳＳＤ１００とホスト装置との接続インタフェースは、ＵＳＢであると判別する。また、ＳＡＴＡの電源線５３を通じて所定の電圧値以上の電圧が入力された場合には、接続インタフェースは、ＳＡＴＡであると判別する。インタフェース判別回路２２は、判別した結果を表す判別信号をＣＰＵ１２に通知する。なお、インタフェース判別回路２２が端子解放時に誤作動することを防止するため、それぞれの電源線４３，５３は、抵抗器４４，５４を介して接地されている。
【００３２】
８つのフラッシュ制御回路２６には、それぞれ、４つのＮＡＮＤ型フラッシュメモリ３０が、データバス線と、チップイネーブル信号線と、レディビジー信号線とによって接続されている。このうちデータバス線は、４つのフラッシュメモリ３０に共通して用いられる共有バスとなっている。このようにデータバス線が共有化されたフラッシュ制御回路２６と複数のフラッシュメモリ３０の組のことを「チャネル」と呼ぶ。フラッシュ制御回路２６は、チップイネーブル信号線を通じて、アクセス対象のフラッシュメモリ３０にチップイネーブル信号を出力することで、アクセスを行うフラッシュメモリ３０を選択する。そして、レディビジー信号線を通じてレディ信号あるいはビジー信号をフラッシュメモリ３０から取得することで、各フラッシュメモリ３０の動作状態を判別し、実際のデータの書き込みや読み出しの制御を行う。本実施例のフラッシュ制御回路２６は、それぞれに接続された４つのフラッシュメモリ３０に並列的にデータの書き込みを行うインタリーブ制御を行うことができる。よって、本実施例のメインコントローラ１０は、８つのチャネルのそれぞれで４つのフラッシュメモリ３０をインタリーブ制御することができるため、最大で３２個のフラッシュメモリ３０を同時並列的に動作させることが可能である。
【００３３】
図２は、インタリーブ制御によって、複数のフラッシュメモリ３０に同時にデータを書き込む動作の概要を示す説明図である。この図２では、２つのチャネル（チャネル１，２）に接続された計８つのフラッシュメモリ３０（フラッシュメモリＡ１〜Ａ４，Ｂ１〜Ｂ４）に同時にデータを書き込む例を示している。チャネル１とチャネル２とは、それぞれ独立したフラッシュ制御回路２６によって駆動されるため、図２に示すように、完全に同時に動作させることが可能である。これに対して、１つのチャネル内の４つのフラッシュメモリ３０は、データバス線が共通化されていることから、フラッシュ制御回路２６は、少しずつ時間をずらしながら順番に書き込みデータをフラッシュメモリ３０内のページレジスタ回路にロードする。フラッシュメモリ３０内のページレジスタ回路にデータがロードされると、各フラッシュメモリ３０は、それぞれ、ページレジスタ回路からメモリセルアレイへの実際のデータの書き込みを行う。一般的に、フラッシュメモリ３０へのデータのロード時間は、フラッシュメモリ３０内での実際の書き込み時間に比べて短い。そのため、インタリーブ制御では、各フラッシュメモリ３０に対するデータのロード時間を重複させず、物理的なデータの書き込み時間を重複させることで、複数のフラッシュメモリ３０に同時並列的にデータを書き込むことができる。
【００３４】
バッファ制御回路２４（図１）は、ＤＲＡＭ等によって構成されたバッファメモリ６０に対するデータの読み出しと書き込みとを制御する回路である。周知のように、フラッシュメモリ３０へのデータの書き込みと読み出しは、複数のビット（例えば、２１１２バイト）からなるページ単位で行われ、消去は、複数のページ（例えば、６４ページ）からなるブロック単位で行われる。また、フラッシュメモリ３０に対しては、データの上書きを直接行うことができず、一旦、消去してから書き込みを行う必要がある。そのため、ＣＰＵ１２は、フラッシュメモリ３０にデータを上書きする際には、書き込み対象の領域を含むブロックを、バッファメモリ６０内に一時的に読み出して待避させた上で、そのブロックの消去を行う。そして、バッファメモリ６０内で必要な書き換え処理を行って、消去済みのブロックに改めて書き戻す。
【００３５】
ＲＯＭ１４には、ＵＳＢ用ファームウェアＦＷ１と、ＳＡＴＡ用ファームウェアＦＷ２とが記憶されている。ＣＰＵ１２は、ＳＳＤ１００の起動時に、インタフェース判別回路２２によって判別された接続インタフェースに応じて、ＲＯＭ１４からＲＡＭ１６にロードするファームウェアを選択する。具体的には、インタフェース判別回路２２によって、接続インタフェースがＵＳＢであると判別されれば、ＣＰＵ１２は、ＲＯＭ１４からＵＳＢ用ファームウェアＦＷ１をロードし、接続インタフェースがＳＡＴＡであると判別されれば、ＲＯＭ１４からＳＡＴＡ用ファームウェアＦＷ２をロードする。ＣＰＵ１２は、ＲＡＭ１６にロードしたこれらのファームウェアに従って、ＵＳＢ制御回路１８やＳＡＴＡ制御回路２０を通じたホスト装置との通信や、各フラッシュ制御回路２６を通じたフラッシュメモリ３０へのデータの読み書きを制御する。ＵＳＢ用ファームウェアＦＷ１とＳＡＴＡ用ファームウェアＦＷ２との機能の違いについては後で詳しく説明する。
【００３６】
ＲＡＭ１６には、ＳＳＤ１００の起動時に、ホスト装置に対して公開する論理アドレスと、フラッシュメモリ３０内の物理アドレスとを変換するための管理テーブルＭＴがフラッシュメモリ３０内の所定の領域から読み出される。ＣＰＵ１２は、この管理テーブルＭＴを参照することで、論理アドレスと物理アドレスとの変換を行い、各フラッシュ制御回路２６にフラッシュメモリ３０へのデータの書き込みや読み出しを行わせる。
【００３７】
図３は、管理テーブルＭＴの一例を示す図であり、図４は、この管理テーブルＭＴによって実現されるフラッシュメモリのアクセス順を示す図である。説明を簡単にするため、図３には、１チャネル分のフラッシュメモリＡ１〜Ａ４へのアクセス時に参照される管理テーブルＭＴを示している。図３に示すように、管理テーブルＭＴには、連続した論理アドレスに対して、４つのフラッシュメモリＡ１〜Ａ４内のブロックが順番に割り当てられるように物理アドレスが対応付けられている。図３，４では、１つのブロックのサイズを「Ｍバイト」として表している。このような管理テーブルＭＴによれば、図４に示すように、４つのフラッシュメモリＡ１〜Ａ４にデータをブロック単位で分散させて順番に書き込むことが可能になる。このような順序で書き込みを行うこととすれば、インタリーブ制御時には、４つのフラッシュメモリ３０に対して同時にデータを書き込むことが可能になり、インタリーブ制御を行わない場合には、４つのフラッシュメモリに順番にアクセスしながらデータを書き込むことができる。つまり、インタリーブ制御時にも非インタリーブ制御時にも、同じ書き込み順で複数のフラッシュメモリ３０にデータを書き込むことができる。なお、本実施例のＳＳＤ１００は、８つのチャネルに同時にアクセス可能である。そのため、実際には、ＣＰＵ１２は、ホスト装置から書き込みデータを受信すると、受信したデータを８つのチャネルに分散させ、それぞれのチャネル毎に用意された管理テーブルＭＴを参照して各フラッシュメモリにデータの書き込みが行われる。
【００３８】
次に、ＳＳＤ１００の起動時に実行される処理について説明する。
図５は、ＳＳＤ１００の起動シーケンスを示すフローチャートである。ＳＳＤ１００がＵＳＢケーブルまたはＳＡＴＡケーブルによってホスト装置に接続されると、これらのケーブルを通じて、ホスト装置からＳＳＤ１００に電力が供給される。この電力の供給によってＳＳＤ１００が起動されると、まず、ＣＰＵ１２は、インタフェース判別回路２２から受信した判別信号に基づいて、ホスト装置との接続インタフェースがＵＳＢであるかＳＡＴＡであるかを判別する（ステップＳ１０）。
【００３９】
接続インタフェースがＵＳＢであると判別されると、ＣＰＵ１２は、ＲＯＭ１４からＵＳＢ用ファームウェアＦＷ１をＲＡＭ１６にロードして実行する（ステップＳ１２）。このＵＳＢ用ファームウェアＦＷ１の実行によって、ＣＰＵ１２は、動作モードを省電力モードに設定する。この省電力モードでは、ＣＰＵ１２は、８チャネル分のフラッシュメモリ３０に同時アクセスを行う一方、各フラッシュ制御回路２６にインタリーブ制御を行わせず、動作していないフラッシュメモリ３０を積極的に待機状態にさせることで消費電力の低減を行う。
【００４０】
一方、接続インタフェースがＳＡＴＡであると判別されると、ＣＰＵ１２は、ＲＯＭ１４からＳＡＴＡ用ファームウェアＦＷ２をＲＡＭ１６にロードして実行する（ステップＳ１４）。このＳＡＴＡ用ファームウェアＦＷ２の実行によって、ＣＰＵ１２は、動作モードを速度優先モードに設定する。この速度優先モードでは、ＣＰＵ１２は、８チャネル分のフラッシュメモリに同時アクセスを行いつつ、各フラッシュ制御回路２６にインタリーブ制御を行わせることで、３２個のフラッシュメモリに対して同時アクセスを行い、データの読み書き速度を向上させる。
【００４１】
以上のようにして接続インタフェースに応じた動作モードの設定を行うと、ＣＰＵ１２は、フラッシュメモリ３０の所定の領域に記憶された管理テーブルＭＴ（図３参照）をＲＡＭ１６にロードする（ステップＳ１６）。以上の一連の処理によって起動シーケンスが終了すると、ＣＰＵ１２は、ステップＳ１２あるいはステップＳ１４で設定された動作モードに従って、各フラッシュメモリ３０に対するデータの読み書きを制御する。
【００４２】
図６（Ａ）は、速度優先モードにおけるフラッシュメモリの動作状態の例を示すタイミングチャートであり、図６（Ｂ）は、省電力モードにおけるフラッシュメモリの動作状態の例を示すタイミングチャートである。説明を簡単にするため、図６（Ａ）および図６（Ｂ）では、１つのチャネルに２つのフラッシュメモリＡ１，Ａ２が接続されている場合のタイミングチャートを示している。なお、本実施例では、チップイネーブル信号ＣＥとレディビジー信号Ｒ／Ｂとは、アクティブ状態でローレベルになる信号であることとする。図６（Ａ）に示すように、パルス状のチップイネーブル信号ＣＥがフラッシュメモリＡ１に入力されると、フラッシュメモリＡ１は、ビジー状態（Low）となり、データの書き込みや読み込みが行われる。データの書き込みや読み込みが終了すると、フラッシュメモリＡ１はレディ状態（High）となり、再びチップイネーブル信号ＣＥの入力を受け付ける。再びチップイネーブル信号ＣＥが入力されると、フラッシュメモリＡ１は、再度、ビジー状態になる。速度優先モードでは、インタリーブ制御が行われるため、フラッシュメモリＡ１に対するチップイネーブル信号ＣＥの入力が終了すると、すぐに、フラッシュメモリＡ２にチップイネーブル信号ＣＥが入力される。そのため、フラッシュメモリＡ１がビジー状態になるのに少し遅れてフラッシュメモリＡ２もビジー状態になる。一般的に、ＮＡＮＤ型のフラッシュメモリは、チップイネーブル信号とビジー信号との両者が非アクティブ状態（High）になると、動作状態がスタンバイ状態となり消費電力が抑制される。しかし、速度優先モードでは、データの読み書きが始まる最初のタイミングだけ、フラッシュメモリＡ１以外のフラッシュメモリがスタンバイ状態になるものの、一旦、読み書きが始まると、次々にチャネル内のフラッシュメモリがビジー状態になるため、読み書きが終了するまで、ほぼ休みなく各フラッシュメモリは電力を消費することになる。よって、図１に示した構成において動作モードが速度優先モードに設定されると、最大で、８チャネル分のフラッシュメモリ、３２個がすべて同時に電力を消費する状態となる。
【００４３】
一方、省電力モードでは、インタリーブ制御が行われないため、図６（Ｂ）に示すように、フラッシュメモリＡ１がビジー状態（Low）になるタイミングでは、フラッシュメモリＡ２は、レディ状態（High）となり、フラッシュメモリＡ１がレディ状態（High）になるタイミングでは、フラッシュメモリＡ２は、ビジー状態（Low）になる。そのため、フラッシュメモリＡ１とフラッシュメモリＡ２とは、動作状態が交互にスタンバイ状態に遷移することになる。よって、図１に示した構成において動作モードが省電力モードに設定されると、各チャネルにつき１つのフラッシュメモリ３０がデータの読み書き対象になるため、最大で８個のフラッシュメモリが同時に電力を消費するに留まる。つまり、省電力モードでは、アクセス速度は速度優先モードより劣るものの、フラッシュメモリ全体の消費電力を、速度優先モード時の４分の１程度に抑えることが可能になる。
【００４４】
以上で説明した第１実施例のＳＳＤ１００によれば、ホスト装置とＳＳＤ１００とが接続されるインタフェースを自動的に判別し、判別された接続インタフェースがＵＳＢの場合には、その動作モードを、インタリーブ制御を行わない省電力モードとし、ＳＡＴＡの場合には、インタリーブ制御を行う速度優先モードとする。そのため、接続されるインタフェースの種類に応じて、最適な動作モードでＳＳＤ１００を動作させることが可能になる。また、本実施例によれば、複数種類のインタフェースにＳＳＤ１００を対応させることができるので、各種ホスト装置との接続の互換性を高めることが可能になる。
【００４５】
また、本実施例では、ＵＳＢ接続時には、ＳＡＴＡ接続時よりも、同時に駆動するフラッシュメモリ３０の数を４分の１まで減じ、また、図６（Ｂ）に示したように、各チャネルのフラッシュメモリ３０を、こまめにスタンバイ状態に移行させるため、消費電力を大幅に低減することができる。そのため、ＵＳＢによる最大供給電力量（５Ｖ、５００ｍＡ）以下の消費電力で、ＳＳＤ１００を確実に動作させることが可能になる。この結果、例えば、消費電力超過によってホスト装置からＳＳＤ１００が認識不能になることや、データの喪失が発生することを抑制することが可能になる。
【００４６】
更に、本実施例では、ＵＳＢ接続時には、インタリーブ制御を行わないこととするが、この場合にも、８つのチャネルに対しては同時にアクセスすることができる。そのため、ＵＳＢの規格上の最大通信速度（４８０Ｍｂｐｓ）を満足させるだけの速度でＳＳＤ１００を動作させることが十分に可能である。また、速度優先モードでは、３２個のフラッシュメモリ３０をすべて同時並列的に動作させるため、規格上のアクセス速度が３．０Ｇｂｐｓと非常に高速なＳＡＴＡの性能を十分に活かすことが可能になる。また、ＳＡＴＡでは、最大消費電力に関する規格上の制限がないため、消費電力に囚われずにフラッシュメモリ３０やメインコントローラ１０の性能を発揮させることが可能になる。
【００４７】
また、本実施例では、ＳＡＴＡ接続時（速度優先モード時）であっても、ＵＳＢ接続時（省電力モード時）であっても、図３に示した同一の管理テーブルＭＴによって、論理アドレスと物理アドレスの変換を行う。そのため、どちらのインタフェースによって接続されたとしても、図４に示した順序で各フラッシュメモリ３０にデータが書き込まれることになる。よって、接続インタフェースをＳＡＴＡからＵＳＢに、あるいは、ＵＳＢからＳＡＴＡに切り替えたとしても、特別なアドレス変換処理などを行うことなく、共通した管理テーブルＭＴを用いて正常にデータの読み書きを行うことが可能になる。
【００４８】
なお、上記のように、本実施例では、ＳＡＴＡ接続時（速度優先モード時）においても、ＵＳＢ接続時（省電力モード時）においても、共通の管理テーブルＭＴを用いることで、各フラッシュメモリに対して同じ順序でデータの読み書きを行うこととした。これに対して、ＳＡＴＡ接続時とＵＳＢ接続時とで異なる管理テーブルＭＴを用い、異なる順序でデータの読み書きを行わせることも可能である。例えば、ＳＡＴＡ接続時には、図３に示す管理テーブルＭＴを用いて図４に示す順序でデータの書き込みを行うこととし、ＵＳＢ接続時には、図７に示す管理テーブルＭＴ２を用いることで、図８に示すように、１つのフラッシュメモリ３０内の全ブロックへのデータの書き込みが終了してから、次のフラッシュメモリ３０に対するデータの書き込みを行うこととする。ＵＳＢ接続時にこのような順序でデータの書き込みを行うこととすれば、１つのフラッシュメモリ３０に対してデータの書き込みを行っている間中、他のフラッシュメモリ３０を連続的にスタンバイ状態にさせることができる。そのため、効率的に消費電力を低減させることが可能になる。
【００４９】
Ｂ．第２実施例：
図９は、本発明の第２実施例としてのＳＳＤの概略構成を示す説明図である。図１に示した第１実施例のＳＳＤ１００と、図９に示した第２実施例のＳＳＤ１００ｂとで同一の構成要素には、同一の符号を付している。図９に示すように、本実施例のＳＳＤ１００ｂは、図１に示した第１実施例のＳＳＤ１００と比較して、ＳＡＴＡコネクタ５０や、ＳＡＴＡ制御回路２０、インタフェース判別回路２２、ＳＡＴＡ用ファームウェアＦＷ２を備えていない点が異なる。
【００５０】
本実施例のＳＳＤ１００ｂは、ＵＳＢ３．０規格に基づくＵＳＢコネクタ４０ｂを備えている。ＵＳＢ３．０では、データ信号線４１ｂが２組に増設され、最大５．０Ｇｂｐｓの通信速度でホスト装置とデータの入出力を行うことができる。また、ＵＳＢ３．０では、５Ｖ、９００ｍＡまでの電源供給が可能となっており、ＵＳＢ２．０に比べて２倍弱の電力供給が可能である。ＵＳＢ３．０では、データ信号線の仕様がＵＳＢ２．０と異なるものの、コネクタの物理的仕様は下位互換性を有しているため、ＵＳＢ２．０に準じたＵＳＢケーブルも、ＵＳＢ３．０に準じたＵＳＢコネクタ４０ｂに接続可能である。ただし、ＵＳＢ２．０とＵＳＢ３．０とでは、信号線の仕様は異なるものの、電源入力端子の仕様は共通しているため、第１実施例のように、電源が入力されているか否かに基づいて接続インタフェースがＵＳＢ２．０であるかＵＳＢ３．０であるかを判別することができない。そこで本実施例では、以下の手順に従って、接続インタフェースの判別を行う。
【００５１】
図１０は、第２実施例におけるＳＳＤ１００ｂの起動シーケンスを示すフローチャートである。ＳＳＤ１００ｂがＵＳＢケーブルによってホスト装置に接続されると、このケーブルを通じて、ホスト装置からＳＳＤ１００ｂに電力が供給される。この電力の供給によってＳＳＤ１００ｂが起動されると、まず、ＣＰＵ１２は、ＲＯＭ１４からＵＳＢ用ファームウェアＦＷ１ｂをＲＡＭ１６にロードして実行する（ステップＳ２０）。このＵＳＢ用ファームウェアＦＷ１ｂの実行によって、ＣＰＵ１２は、一旦、動作モードを省電力モードに設定する。
【００５２】
続いて、ＣＰＵ１２は、ホスト装置とＳＳＤ１００ｂとの間でやりとりされるＵＳＢコマンドのプロトコルを解析し（ステップＳ２４）、ホスト装置とＳＳＤ１００ｂとの間が、ＵＳＢ３．０によって接続されているか否かを判別する（ステップＳ２６）。この結果、ＵＳＢ３．０によって接続されていれば、ＣＰＵ１２は、ＳＳＤ１００ｂの動作モードを、速度優先モードに設定する（ステップＳ２８）。一方、接続インタフェースがＵＳＢ３．０でなければ、動作モードを、ステップＳ２２で設定した省電力モードのまま維持する。
【００５３】
以上のようにして接続インタフェースに応じた動作モードの設定を行うと、ＣＰＵ１２は、フラッシュメモリ３０の所定の領域に記憶された管理テーブルＭＴをＲＡＭ１６にロードする（ステップＳ３０）。以上の一連の処理によって起動シーケンスが終了すると、ＣＰＵ１２は、ステップＳ２２あるいはステップＳ２８で設定された動作モードに従って、各フラッシュメモリ３０に対するデータの読み書きを制御する。
【００５４】
以上で説明した第２実施例のＳＳＤ１００ｂによれば、同一のコネクタに異なる電力仕様のインタフェースが接続されたとしても、その通信プロトコルを解析することで、接続されたインタフェースを的確に判別することが可能になる。なお、本実施例では、ＳＡＴＡコネクタ５０やＳＡＴＡ制御回路２０、インタフェース判別回路２２を省略することとしたが、これらを第１実施例と同様にＳＳＤ１００ｂに実装させ、ＳＡＴＡ、ＵＳＢ２．０、および、ＵＳＢ３．０の中から接続インタフェースを判別することとしてもよい。
【００５５】
Ｃ．変形例：
以上、本発明の種々の実施例について説明したが、本発明はこれらの実施例に限定されず、その趣旨を逸脱しない範囲で種々の構成を採ることができる。例えば、ソフトウェアによって実現した機能は、ハードウェアによって実現するものとしてもよい。また、そのほか、以下のような変形が可能である。
【００５６】
・変形例１：
図１１は、第１変形例におけるＳＳＤの概略構成を示す説明図である。本変形例のＳＳＤ１００ｃは、図１に示した第１実施例のＳＳＤ１００に対して、ＳＡＴＡコネクタ５０とメインコントローラ１０との接続の態様が異なっている。具体的には、第１実施例では、ＵＳＢコネクタ４０の電源線４３と、ＳＡＴＡコネクタ５０の電源線５３とが両者ともインタフェース判別回路２２に接続されているが、本変形例では、ＵＳＢコネクタ４０の電源線４３だけが接続されている。このような接続形態であっても、インタフェース判別回路２２は、ＵＳＢコネクタ４０を通じて電源が供給されていなければ、ＳＡＴＡコネクタ５０を通じて電源が供給されていると判断することができるので、第１実施例と同様に接続インタフェースを判別することができる。なお、本変形例と同様の考え方に基づけば、接続インタフェースがＮ種類存在すれば、（Ｎ−１）本の電源線をインタフェース判別回路２２に接続すれば、Ｎ種類の接続インタフェースを判別することが可能である。
【００５７】
・変形例２：
上記実施例では、ＵＳＢやＳＡＴＡといった接続インタフェースに応じてＳＳＤの動作状態を変更することとしたが、接続インタフェースの種類はこれらに限られない。例えば、ＰＡＴＡやＩＥＥＥ１３９４、ＰｏＥ（Power over Ethernet(登録商標)）対応のＬＡＮインタフェースなど、ＳＳＤ等の記憶装置に給電可能な種々の接続インタフェースを適用することが可能である。
【００５８】
・変形例３：
上記実施例では、本発明をＳＳＤに適用することとしたが、本発明は、ハードディスクや光ディスク、磁気ディスク等を記録媒体とする記憶装置に対しても適用することが可能である。この場合、例えば、ハードディスクや光ディスク、磁気ディスク等の回転数を増減させることで、接続インタフェースに応じて消費電力を調整することが可能である。また、これらの記録媒体を内部に複数備えていれば、それらに対する同時アクセス数を増減させることでも、接続インタフェースに応じて消費電力を調整することが可能である。
【００５９】
・変形例４：
上記実施例では、同時アクセスが可能なチャネル数を８とし、各チャネル当たり４つのフラッシュメモリが接続されることとしたが、これらの数は特に制限されない。また、複数のフラッシュメモリを共有バス（チャネル）にまとめることなく、全てのフラッシュメモリ３０が並列的にメインコントローラ１０に接続されていてもよい。
【００６０】
・変形例５：
上記実施例では、インタリーブ制御を行うか行わないかを切り換えることにより、実際に動作させるフラッシュメモリ３０の数を変更させた。しかし、同時にアクセスを行うチャネルの数を変更することにより、実際に動作させるフラッシュメモリ３０の数を変更させることとしてもよい。こうすることでも、接続インタフェースの種類に応じて、消費電力を調整することが可能である。
【符号の説明】
【００６１】
１０…メインコントローラ
１２…ＣＰＵ
１４…ＲＯＭ
１６…ＲＡＭ
１８…ＵＳＢ制御回路
２０…ＳＡＴＡ制御回路
２２…インタフェース判別回路
２４…バッファ制御回路
２６…フラッシュ制御回路
２８…内部バス
３０…フラッシュメモリ
４０，４０ｂ…ＵＳＢコネクタ
４１，４１ｂ，５１…データ信号線
４２…ショットキーバリアダイオード
４３，５３…電源線
４４，５４…抵抗器
５０…ＳＡＴＡコネクタ
６０…バッファメモリ
１００，１００ｂ，１００ｃ…ＳＳＤ
ＦＷ１，ＦＷ１ｂ…ＵＳＢ用ファームウェア
ＦＷ２…ＳＡＴＡ用ファームウェア
ＭＴ，ＭＴ２…管理テーブル
Ｖｃｃ…電源ライン
【図１】
2011204140.tif 000003
【図２】
2011204140.tif 000004
【図３】
2011204140.tif 000005
【図４】
2011204140.tif 000006
【図５】
2011204140.tif 000007
【図６】
2011204140.tif 000008
【図７】
2011204140.tif 000009
【図８】
2011204140.tif 000010
【図９】
2011204140.tif 000011
【図１０】
2011204140.tif 000012
【図１１】
2011204140.tif 000013