(57)【要約】【課題】記憶部用のソフトウェアが破損されて、データの読み書きが不可能となることを防止する。【解決手段】記憶装置は、データを不揮発的に記憶可能なフラッシュメモリ３０と、フラッシュメモリ３０へのデータの読み書きを制御するためのメインコントローラ１０と、通常用ファームウェアＦＷ１と拡張用ファームウェアＦＷ２とを個別に格納するＳＰＩフラッシュ７１，７２と、メインコントローラ１０によりアクセスし得るＳＰＩフラッシュ７１，７２を切り替えるＳＷ回路８０とを備える。【選択図】図１
2012043024.tif 000002
【特許請求の範囲】
【請求項１】
記憶装置であって、
データを不揮発的に記憶可能なデータ記憶部と、
前記データ記憶部へのデータの読み書きを制御するための制御部と、
前記制御部用のソフトウェアを不揮発的に記憶可能な複数のソフトウェア記憶部であって、各ソフトウェア記憶部に種類の異なる前記ソフトウェアが記憶される複数のソフトウェア記憶部と、
前記制御部によりアクセスし得る一のソフトウェア記憶部を切り替えるアクセス対象切換部と
を備える記憶装置。
【請求項２】
請求項１に記載の記憶装置であって、
前記複数のソフトウェアは、当該記憶装置の電力消費量に違いをもたらすソフトウェアであり、
所定の給電能力を有するインタフェースが接続可能であり、該インタフェースから当該記憶装置を動作させる電力を受給可能な接続部と、
前記接続部を通じて受給した電力についての電圧が所定値を下回るか否かを判定する電圧判定部と、
前記電圧判定部による判定結果に基づいて、前記アクセス対象切換部の動作を制御する切換制御部と
を備える記憶装置。
【請求項３】
請求項２に記載の記憶装置であって、
前記データ記憶部を複数備え、
前記制御部は、前記複数のデータ記憶部のうちの２以上の記憶部に同時にアクセスしてデータの読み書きが可能であり、
前記複数のソフトウェア記憶部のうちの第１のソフトウェア記憶部は、前記複数のデータ記憶部に対する同時アクセスを行うことでデータの読み書きを行わせるための第１のソフトウェアを記憶し、
前記複数のソフトウェア記憶部のうちの第２のソフトウェア記憶部は、前記複数のデータ記憶部に対する同時アクセスを行なわずにデータの読み書きを行わせるための第２のソフトウェアを記憶し、
前記切換制御部は、前記電圧判定部により前記所定値以上であると判定された場合に、前記第１のソフトウェア記憶部を前記アクセスし得る一のソフトウェアとして選択する指令を送信し、前記電圧判定部により前記所定値以上でないと判定された場合に、前記第２のソフトウェア記憶部を前記アクセスし得る一のソフトウェアとして選択する指令を送信する構成を備える、記憶装置。
【請求項４】
請求項２または３に記載の記憶装置であって、
前記接続部として、
第１の給電能力を有する第１のインタフェースが接続可能であり、該第１のインタフェースから当該記憶装置を動作させる電力を受給可能な第１の接続部と、
前記第１の給電能力よりも低い第２の給電能力を有する第２のインタフェースが接続可能であり、該第２のインタフェースから当該記憶装置を動作させる電力を受給可能な第２の接続部と
を備える構成である、記憶装置。
【請求項５】
請求項４に記載の記憶装置であって、
前記第１のインタフェースは、ＳＡＴＡの接続インタフェースであり、
前記第２のインタフェースは、ＵＳＢの接続インタフェースである、記憶装置。
【請求項６】
請求項１に記載の記憶装置であって、
操作者による所定の指令を示す指令信号を受信する指令信号受信部と、
前記指令信号に応じて、前記アクセス対象切換部の動作を制御する切換制御部と
を備える記憶装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータ等から転送されたデータを不揮発的に記憶する記憶装置に関する。
【背景技術】
【０００２】
近年、ハードディスク装置に代替して、大容量のフラッシュメモリを備えた記憶装置が知られている。例えば、ＳＳＤ（Solid State Drive）と呼ばれる記憶装置である。この種の記憶装置では、フラッシュメモリに対するデータの読み書きを制御するためのソフトウェアが必要であり、このソフトウェアは、フラッシュメモリに予め記憶されており、ＲＡＭにロードされてＣＰＵにより利用される。
【０００３】
フラッシュメモリは、データの読み書きが頻繁に行われるため、バッドブロックが生じやすい。このため、フラッシュメモリに記憶されたソフトウェアが損なわれ、データの読み書きが不可能となる虞があった。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００８−３３３７９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
このような問題を考慮し、本発明が解決しようとする課題は、記憶部用のソフトウェアが破損されて、データの読み書きが不可能となることを防止することである。
【課題を解決するための手段】
【０００６】
本発明は、上述の課題の少なくとも一部を解決するためになされたものであり、以下の形態又は適用例として実現することが可能である。
【０００７】
［適用例１］  記憶装置であって、
データを不揮発的に記憶可能なデータ記憶部と、
前記データ記憶部へのデータの読み書きを制御するための制御部と、
前記制御部用のソフトウェアを不揮発的に記憶可能な複数のソフトウェア記憶部であって、各ソフトウェア記憶部に種類の異なる前記ソフトウェアが記憶される複数のソフトウェア記憶部と、
前記制御部によりアクセスし得る一のソフトウェア記憶部を切り替えるアクセス対象切換部と
を備える記憶装置。
【０００８】
適用例１に係る記憶装置では、制御部用のソフトウェアが、データ記憶部とは異なる記憶部であるソフトウェア記憶部に記憶されていることから、データ記憶部の一部が損傷しても、制御部用のソフトウェアが破損されることがない。さらに、制御部用のソフトウェアは、複数のソフトウェア記憶部に個別に記憶されていることから、複数のソフトウェアが全て破損される虞は少ない。これらの結果、制御部用のソフトウェアが破損されて、データの読み書きが不可能となることを防止することができる。
【０００９】
さらに、複数のソフトウェア記憶部には種類の異なるソフトウェアが記憶され、アクセス対象切換部により、使用するソフトウェア記憶部を切り替えることが可能であることから、データ記憶部へのデータの読み書きの制御を、種々の状況に適したものに切り替えることが可能となる。このため、データ記憶部に対するデータの読み書きの信頼性を向上することもできる。
【００１０】
［適用例２］  適用例１に記載の記憶装置であって、
前記複数のソフトウェアは、当該記憶装置の電力消費量に違いをもたらすソフトウェアであり、
所定の給電能力を有するインタフェースが接続可能であり、該インタフェースから当該記憶装置を動作させる電力を受給可能な接続部と、
前記接続部を通じて受給した電力についての電圧が所定値を下回るか否かを判定する電圧判定部と、
前記電圧判定部による判定結果に基づいて、前記アクセス対象切換部の動作を制御する切換制御部と
を備える記憶装置。
【００１１】
この構成であれば、接続部を通じて受給した電力についての電圧が所定値を下回るか否かにより、アクセスし得るソフトウェア記憶部を切り替えることができる。複数のソフトウェア記憶部に記憶される複数のソフトウェアは、当該記憶装置の電力消費量に違いをもたらすものであることから、前記受給した電力についての電圧が所定値を下回ったときに、電力消費量が低い方のソフトウェアを記憶するソフトウェア記憶部にアクセス対象を切り替えることで、記憶装置の電力消費量を下げることができる。したがって、受給した電力についての電圧が低下したときに、少ない電力消費量で済むことから、この場合にも、データ記憶部に対するデータの読み書きの信頼性を高めることが可能となる。
【００１２】
［適用例３］  適用例２に記載の記憶装置であって、
前記データ記憶部を複数備え、
前記制御部は、前記複数のデータ記憶部のうちの２以上の記憶部に同時にアクセスしてデータの読み書きが可能であり、
前記複数のソフトウェア記憶部のうちの第１のソフトウェア記憶部は、前記複数のデータ記憶部に対する同時アクセスを行うことでデータの読み書きを行わせるための第１のソフトウェアを記憶し、
前記複数のソフトウェア記憶部のうちの第２のソフトウェア記憶部は、前記複数のデータ記憶部に対する同時アクセスを行なわずにデータの読み書きを行わせるための第２のソフトウェアを記憶し、
前記切換制御部は、前記電圧判定部により前記所定値以上であると判定された場合に、前記第１のソフトウェア記憶部を前記アクセスし得る一のソフトウェアとして選択する指令を送信し、前記電圧判定部により前記所定値以上でないと判定された場合に、前記第２のソフトウェア記憶部を前記アクセスし得る一のソフトウェアとして選択する指令を送信する構成を備える、記憶装置。
【００１３】
この構成であれば、複数のデータ記憶部に対する同時アクセスを行うか否かにより消費電力を調整することが可能になる。すなわち、接続部を通じて受給した電力についての電圧が所定値を下回ったときに、前記同時アクセスを行わないようにして消費電力の低減を図ることが可能になる。
【００１４】
［適用例４］  適用例２または３に記載の記憶装置であって、
前記接続部として、
第１の給電能力を有する第１のインタフェースが接続可能であり、該第１のインタフェースから当該記憶装置を動作させる電力を受給可能な第１の接続部と、
前記第１の給電能力よりも低い第２の給電能力を有する第２のインタフェースが接続可能であり、該第２のインタフェースから当該記憶装置を動作させる電力を受給可能な第２の接続部と
を備える構成である、記憶装置。
【００１５】
この構成であれば、第１のインタフェースが接続可能な第１の接続部または第２のインタフェースが接続可能な第２の接続部を通じて受給した電力についての電圧が所定値以上か否かにより、アクセスし得るソフトウェア記憶部を切り替えることができる。
【００１６】
［適用例５］  適用例４に記載の記憶装置であって、
前記第１のインタフェースは、ＳＡＴＡ（Serial ATA）の接続インタフェースであり、
前記第２のインタフェースは、ＵＳＢ（Universal Serial Bus）の接続インタフェースである、記憶装置。
【００１７】
この構成であれば、ＵＳＢ接続において、供給される電力の電圧低下が見られたときに、消費電力の低減を図ることが可能になる。
【００１８】
［適用例６］  適用例１に記載の記憶装置であって、
操作者による所定の指令を示す指令信号を受信する指令信号受信部と、
前記指令信号に応じて、前記アクセス対象切換部の動作を制御する切換制御部と
を備える記憶装置。
【００１９】
この構成であれば、アクセスし得るソフトウェア記憶部を、操作者が自由に切り替えることができる。
【００２０】
本発明は、上述した記憶装置としての構成のほか、記憶装置の制御方法や、記憶装置を制御するためのコンピュータプログラムとしても構成することができる。コンピュータプログラムは、コンピュータが読取可能な記録媒体に記録されていてもよい。記録媒体としては、例えば、磁気ディスクや光ディスク、メモリカード、ハードディスク等の種々の媒体を利用することができる。
【図面の簡単な説明】
【００２１】
【図１】本発明の第１実施例としてのＳＳＤ１００の概略構成を示す説明図である。
【図２】ＳＰＩインタフェース２４、ＳＷ回路８０、および第１および第２のＳＰＩフラッシュ７１，７２の接続の様子を示す説明図である。
【図３】ＳＷ回路８０におけるＩＮピンに対するＮＣピンＮＯピンの出力の変化を示す説明図である。
【図４】予備領域切替処理を示すフローチャートである。
【図５】本発明の第２実施例としてのＳＳＤ２００の概略構成を示す説明図である。
【図６】動作モード切替処理を示すフローチャートである。
【発明を実施するための形態】
【００２２】
以下、本発明の実施の形態を実施例に基づき説明する。
Ａ．第１実施例：
図１は、本発明の第１実施例としてのＳＳＤの概略構成を示す説明図である。本実施例のＳＳＤ１００は、パーソナルコンピュータなどのホスト装置（図示せず）に接続されて使用される二次記憶装置であり、メインコントローラ１０と、複数のフラッシュメモリ３０と、ＳＡＴＡコネクタ５０と、２つのＳＰＩフラッシュメモリ（以下、「ＳＰＩフラッシュ」と呼ぶ）７１，７２と、スイッチ回路（以下、「ＳＷ回路」と呼ぶ）８０とを備えている。さらに、ＳＳＤ１００の筐体には、操作者により操作されるスライドスイッチ９０が取り付けられている。
【００２３】
メインコントローラ１０は、内部に、ＣＰＵ１２と、ＲＯＭ１４と、ＲＡＭ１６と、ＳＡＴＡ制御回路２０と、スイッチインタフェース（以下、「ＳＷインタフェース」と呼ぶ）２２と、ＳＰＩインタフェース２４とを備えており、更に、８つのフラッシュ制御回路２６（第１〜８フラッシュ制御回路）を備えている。これらは、内部バス２８によって相互に接続されている。
【００２４】
ＳＡＴＡ制御回路２０には、２組（Ａ＋，Ａ−，Ｂ＋，Ｂ−）のデータ信号線５１を介してＳＡＴＡコネクタ５０が接続されている。ＳＡＴＡ制御回路２０は、ＳＡＴＡコネクタ５０を介して接続されたホスト装置との間でＳＡＴＡ２規格に基づくデータの入出力を行う。ＳＡＴＡ２規格では、最大３．０Ｇｂｐｓの通信速度でホスト装置とデータの入出力を行うことができる。なお、本実施例では、ＳＡＴＡ制御回路２０は、ＳＡＴＡ２規格に基づきホスト装置との通信を行うこととするが、他のバージョンのＳＡＴＡ規格によって通信を行うこととしても構わない。また、本願において、ＳＡＴＡ規格には、ｅＳＡＴＡ規格も含まれることとする。
【００２５】
ＳＡＴＡコネクタ５０には、ホスト装置から電力の供給を受けるための電源入力端子が含まれている。ＳＡＴＡコネクタ５０の電源入力端子に接続された電源線５２は、ＳＳＤ１００の電源ラインＶｃｃに接続される。この電源ラインＶｃｃには、メインコントローラ１０、フラッシュメモリ３０、ＳＰＩフラッシュ７１，７２、ＳＷ回路８０の電源入力端子が接続される。
【００２６】
８つのフラッシュ制御回路２６には、それぞれ、４つのＮＡＮＤ型フラッシュメモリ３０が、データバス線と、制御信号線（チップセレクト信号線、ライトイネーブル信号線、リードイネーブル信号線、アドレスラッチイネーブル信号線、コマンドラッチイネーブル信号線）と、レディビジー信号線とによって接続されている。このうちデータバス線は、４つのフラッシュメモリ３０に共通して用いられる共有バスとなっている。このようにデータバス線が共有化されたフラッシュ制御回路２６と複数のフラッシュメモリ３０の組のことを「チャネル」と呼ぶ。フラッシュ制御回路２６は、チップイネーブル信号線を通じて、アクセス対象のフラッシュメモリ３０にチップイネーブル信号を出力することで、アクセスを行うフラッシュメモリ３０を選択する。そして、レディビジー信号線を通じてレディ信号あるいはビジー信号をフラッシュメモリ３０から取得することで、各フラッシュメモリ３０の動作状態を判別し、実際のデータの書き込みや読み出しの制御を行う。
【００２７】
ＮＡＮＤ型フラッシュメモリは、使用に伴って、フローティング・ゲートの絶縁部の消耗により、メモリ・セルの書き込みが規定時間で完了しなくなることがある。その場合、消去やプログラムの実行がエラーとなるため、該当ブロックをバッドブロックとして以降のメモリ管理対象から除外する必要がある。エラーが発生した場合に、メインコントローラ１０は、このバッドブロックをこれ以降利用しないようにフラッシュメモリの管理対象から除外するとともに、予備領域からブロックを補填することで、管理対象の容量が減らないようにしている。この予備領域は拡張可能であるが、この拡張に関わるファームウェア（すなわち、ソフトウェア）を格納するのが、第１および第２のＳＰＩフラッシュ７１，７２である。
【００２８】
第１および第２のＳＰＩフラッシュ７１，７２は、シリアル・ペリフェラル・インタフェース（ＳＰＩ）という方式でインタフェースされるフラッシュメモリである。第１のＳＰＩフラッシュ７１には、フラッシュメモリ３０内の予備領域を、所定サイズ（以下、「通常サイズ」と呼ぶ）に定めるための通常用ファームウェアＦＷ１が記憶されている。第２のＳＰＩフラッシュ７２には、各フラッシュメモリ３０内の予備領域を、通常サイズよりも大きい所定サイズ（以下、「拡張サイズ」と呼ぶ）に定めるための拡張用ファームウェアＦＷ２が記憶されている。
【００２９】
メインコントローラ１０に備えられるＳＰＩインタフェース２４には、ＳＷ回路８０を介して、第１のＳＰＩフラッシュ７１と第２のＳＰＩフラッシュ７２とが接続される。
【００３０】
図２は、ＳＰＩインタフェース２４、ＳＷ回路８０、および第１および第２のＳＰＩフラッシュ７１，７２の接続の様子を示す説明図である。図示するように、ＳＰＩインタフェース２４と各ＳＰＩフラッシュ７１，７２との間は、４本の信号線Ｓ１，Ｓ２，Ｓ３，Ｓ４により接続されている。詳しくは、ＳＰＩインタフェース２４は、ＳＣＬＫ（クロック）、ＳＩ（データ入力）、ＳＯ（データ出力）、ＣＳ（チップセレクト）の４ピンを備えており、ＳＣＬＫ、ＳＩ、ＳＯの各ピンに接続される信号線Ｓ１，Ｓ２，Ｓ３は、第１のＳＰＩフラッシュ７１に接続されると共に、途中で分岐して、第２のＳＰＩフラッシュ７２に接続される。ＳＰＩインタフェース２４のＣＳピンに接続される信号線Ｓ４の途中に、ＳＷ回路８０が接続されている。
【００３１】
ＳＷ回路８０は、ＩＮ（入力）、ＮＣ（ノーマリクローズ）、ＣＯＭ（共通）、ＮＯ（ノーマリオープン）の４ピンを少なくとも備え、ＩＮピンに対する入力信号に応じて、スイッチ操作によりＣＯＭピンと導通するピンがＮＣピンとＮＯピンの間で切り替えられる。
【００３２】
図３は、ＳＷ回路８０におけるＩＮピンに対するＮＣピン、ＮＯピンの出力の変化を示す説明図である。図中の表ＴＬに示すように、ＩＮピンに対する入力信号が“０”であるときには、ＮＣピンの出力はオンに、ＮＯピンの出力はオフになり、ＩＮピンに対する入力信号が“１”であるときには、ＮＣピンの出力はオフに、ＮＯピンの出力はオンになる。
【００３３】
ＳＷ回路８０のＩＮピンは、ＳＰＩインタフェース２４のＣＳピンに接続される。また、ＳＷ回路８０のＮＣピンは、第１のＳＰＩフラッシュ７１のＣＥピンに接続され、ＳＷ回路８０のＮＯピンは、第２のＳＰＩフラッシュ７２のＣＥピンに接続される。したがって、メインコントローラ１０は、ＳＰＩインタフェース２４のＣＳピンからの出力を“０”とすることで、第１のＳＰＩフラッシュ７１のＣＥピンへの入力をオンに、第２のＳＰＩフラッシュ７２のＣＥピンへの入力をオフとすることができる。また、メインコントローラ１０は、ＳＰＩインタフェース２４のＣＳピンからの出力を“１”とすることで、第１のＳＰＩフラッシュ７１のＣＥピンへの入力をオフに、第２のＳＰＩフラッシュ７２のＣＥピンへの入力をオンとすることができる。したがって、メインコントローラ１０は、ＳＰＩインタフェース２４のＣＳピンからの出力を“０”と“１”の間で切り替えることで、メインコントローラ１０の接続を、第１のＳＰＩフラッシュ７１と第２のＳＰＩフラッシュ７２との間で切り替えることができる。
【００３４】
図１に戻り、ＳＷインタフェース２２には、スライドスイッチ９０が接続されている。スライドスイッチ９０は、スイッチ部を上下にスライドさせるスライディング形のものであり、操作者により操作される。スライドスイッチ９０を操作することで、操作者は、前述したフラッシュメモリ３０の予備領域を通常サイズと拡張サイズのいずれにするかを、ＳＳＤ１００のメインコントローラ１０に対して指令することができる。スライドスイッチ９０のスイッチ部が図中上側（「通常」側とも呼ぶ）に位置する場合には、通常サイズである旨の指令が指令信号ＳＳとしてＳＷインタフェース２２に送られ、スライドスイッチ９０のスイッチ部が図中下側（「拡張」側とも呼ぶ）に位置する場合には、拡張サイズである旨の指令が指令信号ＳＳとしてＳＷインタフェース２２に送られる。
【００３５】
メインコントローラ１０に備えられるＣＰＵ１２は、ＳＡＴＡ制御回路２０を通じたホスト装置との通信や、各フラッシュ制御回路２６を通じたフラッシュメモリ３０へのデータの読み書きを制御する。また、ＣＰＵ１２は、スライドスイッチ９０から送られてくる指令信号ＳＳに応じて、フラッシュメモリ３０の予備領域のサイズを切り替える。以下、この予備領域のサイズを切り替える処理を「予備領域切替処理」と呼ぶ。
【００３６】
ＲＯＭ１１３は、内蔵されている各種コンピュータプログラムやデータ等を記憶する読み出し専用のメモリである。ＲＡＭ１６は、ＣＰＵ１２による各種制御のための各種データやプログラム等を一時的に記憶する読み出し・書込み可能なメモリである。
【００３７】
次に、ＣＰＵ１２により実行される予備領域切替処理について説明する。図４は、予備領域切替処理を示すフローチャートである。この予備領域切替処理は、ＳＳＤ１００の起動時に実行開始される。ＳＳＤ１００がＳＡＴＡケーブルによってホスト装置に接続されると、ＡＴＡケーブルを通じて、ホスト装置からＳＳＤ１００に電力が供給される。この電力の供給によってＳＳＤ１００が起動されると、まず、ＣＰＵ１２は、スライドスイッチ９０から送られてきた指令信号ＳＳをＳＷインタフェース２２から受信する（ステップＳ１１０）。次いで、受信した指令信号ＳＳに基づいて、予備領域を通常サイズとするか拡張サイズとするかを判別する（ステップＳ１２０）。
【００３８】
ステップＳ１２０で、予備領域を通常サイズとすると判別されると、ＣＰＵ１２は、ＳＰＩインタフェース２４のＣＳピンの出力を“０”に設定して、第１のＳＰＩフラッシュ７１から通常用ファームウェアＦＷ１をＲＡＭ１６にロードする（ステップＳ１３０）。一方、ステップＳ１２０で、予備領域を拡張サイズとすると判別されると、ＣＰＵ１２は、ＳＰＩインタフェース２４のＣＳピンの出力を“１”に設定して、第２のＳＰＩフラッシュ７２から拡張用ファームウェアＦＷ２をＲＡＭ１６にロードする（ステップＳ１４０）。
【００３９】
ステップＳ１３０またはＳ１４０の実行後、ＲＡＭ１６にロードしたファームウェア（ＦＷ１またはＦＷ２）を実行する（ステップＳ１５０）。ステップＳ１５０の結果、ステップＳ１２０で予備領域を通常サイズとすると判別された場合には、通常用ファームウェアＦＷ１が実行されて、フラッシュメモリ３０内の予備領域は通常サイズに定められ、一方、ステップＳ１２０で予備領域を拡張サイズとすると判別された場合には、拡張用ファームウェアＦＷ２が実行されて、フラッシュメモリ３０内の予備領域は拡張サイズに定められる。ステップＳ１５０の実行後、この予備領域切替処理は終了する。
【００４０】
以上で説明した第１実施例のＳＳＤ１００によれば、メインコントローラ１０用のファームウェアＦＷ１，ＦＷ２が、フラッシュメモリ３０とは異なる記憶部であるＳＰＩフラッシュ７１，７１に記憶されていることから、フラッシュメモリ３０の一部が損傷しても、ファームウェアＦＷ１，ＦＷ２が破損されることがない。さらに、ファームウェアＦＷ１，ＦＷ２は、ＳＰＩフラッシュ７１，７２に個別に記憶されていることから、ファームウェアＦＷ１，ＦＷ２が全て破損される虞は少ない。これらの結果、ファームウェアＦＷ１，ＦＷ２が破損されて、データの読み書きが不可能となることを防止することができる。
【００４１】
さらに、操作者により操作されるスライドスイッチ９０が「通常」側に設定されている場合には、第１のＳＰＩフラッシュ７１に記憶される通常用ファームウェアＦＷ１が実行され、スライドスイッチ９０が「拡張」側に設定されている場合には、第２のＳＰＩフラッシュ７２に記憶される拡張用ファームウェアＦＷ２が実行されることから、使用するファームウェアを、種々の状況に適したものに切り替えることが可能となる。このため、フラッシュメモリ３０に対するデータの読み書きの信頼性を向上することもできる。
【００４２】
なお、第１実施例において、フラッシュメモリ３０が適用例１における「データ記憶部」に相当し、ＳＰＩフラッシュ７１，７２が適用例１における「ソフトウェア記憶部」に相当し、ＳＷ回路８０が適用例１における「アクセス対象切換部」に相当する。メインコントローラ１０に備えられるＳＷインタフェース２２および予備領域切替処理のステップＳ１１０の処理は、適用例６における「指令信号受信部」に、予備領域切替処理のステップＳ１２０ないしＳ１５０の処理は、適用例６における「切換制御部」に相当する。
【００４３】
Ｂ．第２実施例：
図５は、本発明の第２実施例としてのＳＳＤの概略構成を示す説明図である。図１に示した第１実施例のＳＳＤ１００と、図５に示した第２実施例のＳＳＤ２００とで同一の構成要素には、同一の符号を付している。図５に示すように、本実施例のＳＳＤ２００は、図１に示した第１実施例のＳＳＤ１００と比較して、ホストと通信を行うためのインタフェースとして、ＳＡＴＡコネクタ５０以外にＵＳＢコネクタ１４０を備える点で相違する。このため、本実施例のＳＳＤ２００は、ＳＡＴＡコネクタ５０とＵＳＢコネクタ１４０とを結ぶブリッジチップ１６０を備える。
【００４４】
ブリッジチップ１６０は、ＳＡＴＡコネクタ５０とＵＳＢコネクタ１４０とに接続され、ＳＡＴＡコネクタ５０との間のデータの送受信の制御、およびＵＳＢコネクタ１４０との間のデータの送受信の制御を行う。ＵＳＢコネクタ１４０とブリッジチップ１６０との間は、１組（Ｄ＋，Ｄ−）のデータ信号線１４１を介して接続されている。ブリッジチップ１６０は、ＵＳＢコネクタ１４０を介して接続されたホスト装置との間でＵＳＢ２．０規格に基づくデータの入出力を行う。ＵＳＢ２．０規格では、最大４８０Ｍｂｐｓの通信速度でホスト装置とデータの入出力を行うことができる。なお、本実施例では、ＵＳＢ制御回路１８は、ＵＳＢ２．０規格に基づきホストとの通信を行うこととするが、他のバージョンのＵＳＢ規格によって通信を行うこととしても構わない。
【００４５】
また、ブリッジチップ１６０は、第１実施例のＳＡＴＡ制御回路２０と同様に、ＳＡＴＡコネクタ５０を介して接続されたホスト装置との間でＳＡＴＡ２規格に基づくデータの入出力を行う。また、他のバージョンのＳＡＴＡ規格によって通信を行うこととしても構わない。
【００４６】
ブリッジチップ１６０は、上記ＵＳＢコネクタ１４０あるいはＳＡＴＡコネクタ５０と間で送受信したデータについての、ＳＳＤコントローラ１１０に備えられる通信インタフェース１２０に対する書き込み処理および読み出し処理の制御を行う。ブリッジチップ１６０は、ＣＰＵやメモリ等を備える小型マイクロコンピュータにより構成される。なお、小型マイクロコンピュータの構成に換えて、複数のディスクリートな電子部品による構成とすることもできる。
【００４７】
本実施例のＳＳＤ２００は、第１実施例のＳＳＤ１００におけるスライドスイッチ９０およびＳＷインタフェース２２に相当する構成は備えない。本実施例のＳＳＤ２００のメインコントローラ１１０には、電圧判定回路１２２が設けられている。
【００４８】
電圧判定回路１２２は、ホスト装置から受給した電力についての電圧を判別するための回路である。電圧判定回路１２２には、ＵＳＢコネクタ１４０の電源入力端子に接続された電源線１４２と、ＳＡＴＡコネクタ５０の電源入力端子に接続された電源線５２とがそれぞれ接続されている。ＵＳＢコネクタ１４０には、電圧５Ｖ、最大電流５００ｍＡの電力が供給され、ＳＡＴＡコネクタ５０には、電圧５Ｖの電力が供給される（電流についての制限はなし）。ＵＳＢの接続インタフェースはＳＡＴＡの接続インタフェースよりも給電能力が低いと言える。電源線１４２と電源線５２は、それぞれ、電流が相互に侵入することを防止するためのショットキーバリアダイオード１４３，１５３を介して、ＳＳＤ１００の電源ラインＶｃｃに接続される。
【００４９】
電圧判定回路１２２は、ＵＳＢの電源線１４２あるいはＳＡＴＡの電源線５２を通じて入力された電圧が、所定の電圧値（例えば、３Ｖ）以上であるか否かを判定し、所定の電圧値以上となった場合に、適正電圧であると判定し、所定の電圧値を下回った場合に、低電圧であると判定する。電圧判定回路１２２は、判定した結果を表す判定信号をＣＰＵ１２に通知する。
【００５０】
メインコントローラ１１０は、さらに、第１実施例におけるメインコントローラ１０と同様に、ＣＰＵ１２、ＲＯＭ１４、ＲＡＭ１６、ＳＰＩインタフェース２４、および第１〜８フラッシュ制御回路２８を備える。なお、ＣＰＵ１２は、第１実施例では予備領域切替処理を実行しているが、第２実施例では、予備領域切替処理に換えて、動作モード切替処理を実行している。動作モード切替処理については、後で説明する。
【００５１】
第１および第２のＳＰＩフラッシュ７１，７２は、第１実施例と同様のものであるが、各ＳＰＩフラッシュ７１，７２に記憶されているファームウェアの内容は、第１実施例とは相違したものとなっている。第１のＳＰＩフラッシュ７１には速度優先用ファームウェアＦＷ１１が記憶され、第２のＳＰＩフラッシュ７２には省電力用ファームウェアＦＷ１２が記憶されている。
【００５２】
第１ないし第８フラッシュ制御回路２６は、第１実施例では特に言及しなかったが、それぞれに接続された４つのフラッシュメモリ３０に並列的にデータの書き込みを行うインタリーブ制御を行うことができる。よって、本実施例のメインコントローラ１０は、８つのチャネルのそれぞれで４つのフラッシュメモリ３０をインタリーブ制御することができるため、最大で３２個のフラッシュメモリ３０を同時並列的に動作させることが可能である。インタリーブ制御によれば、データの読み書き速度を高めることができる。一方、インタリーブ制御を行うことで、電力消費は大きくなる。
【００５３】
第１のＳＰＩフラッシュ７１に記憶される速度優先用ファームウェアＦＷ１１は、各フラッシュ制御回路２６にデータの読み書き時に前記インタリーブ制御を行わせるためのファームウェアである。第２のＳＰＩフラッシュ７２に記憶される省電力用ファームウェアＦＷ１２は、各フラッシュ制御回路２６にデータの読み書き時に前記インタリーブ制御を行わせないためのファームウェアである。
【００５４】
次に、ＣＰＵ１２により実行される動作モード切替処理について説明する。図６は、動作モード切替処理を示すフローチャートである。この動作モード切替処理は、第１実施例の予備領域切替処理と同様に、ＳＳＤ２００の起動時に実行開始される。ＳＳＤ２００が起動されると、まず、ＣＰＵ１２は、電圧判定回路１２２の判定結果を読み込み（ステップＳ２１０）、その判定結果が適正電圧であるか低電圧であるかを判別する（ステップＳ２２０）。
【００５５】
ステップＳ２２０で、適正電圧であると判別されると、ＣＰＵ１２は、ＳＰＩインタフェース２４のＣＳピンの出力を“０”に設定して、第１のＳＰＩフラッシュ７１から速度優先用ファームウェアＦＷ１１をＲＡＭ１６にロードする（ステップＳ２３０）。一方、ステップＳ１２０で、低電圧であると判別されると、ＣＰＵ１２は、ＳＰＩインタフェース２４のＣＳピンの出力を“１”に設定して、第２のＳＰＩフラッシュ７２から省電力用ファームウェアＦＷ１２をＲＡＭ１６にロードする（ステップＳ２４０）。
【００５６】
ステップＳ２３０またはＳ２４０の実行後、ＲＡＭ１６にロードしたファームウェア（ＦＷ１１またはＦＷ１２）を実行する（ステップＳ２５０）。ステップＳ２５０の結果、ＵＳＢの電源線１４２あるいはＳＡＴＡの電源線５２を通じて入力された電圧が所定の電圧値以上の場合には、速度優先用ファームウェアＦＷ１１が実行されて、インタリーブ制御によるデータの読み書きが可能となる。一方、ＵＳＢの電源線１４２あるいはＳＡＴＡの電源線５２を通じて入力された電圧が所定の電圧値を下回る場合には、省電力用ファームウェアＦＷ１２が実行されて、インタリーブ制御によるデータの読み書きが不可能となる。ステップＳ２５０の実行後、この動作モード切替処理は終了する。
【００５７】
したがって、第２実施例のＳＳＤ１００によれば、第１実施例と同様に、ファームウェアＦＷ１１，ＦＷ１２が破損されて、データの読み書きが不可能となることを防止することができる。さらに、ＵＳＢの電源線１４２あるいはＳＡＴＡの電源線５２を通じて入力された電圧に応じて、インタリーブ制御を行う速度優先の動作モードを行うか、インタリーブ制御を行わない省電力の動作モードを行うかを切り替えることが可能になる。ＵＳＢの電源線１４２を通じて供給される電力は、電圧値が低下することが起こり易いが、第２実施例によれば、その低下が検出されたときに、省電力を図ることができることから、その結果、フラッシュメモリ３０に対するデータの読み書きの信頼性を向上することができる。
【００５８】
なお、第２実施例において、ＳＡＴＡの接続インタフェースが適用例４における「第１のインタフェース」に相当し、ＵＳＢの接続インタフェースが適用例４における「第２のインタフェース」に相当する。メインコントローラ１０に備えられる電圧判定回路１２２および動作モード切替処理のステップＳ２１０の処理は、適用例２における「電圧判定部」に、動作モード切替処理のステップＳ２２０ないしＳ２５０の処理は、適用例２における「切換制御部」に相当する。
【００５９】
Ｃ．変形例：
以上、本発明の種々の実施例について説明したが、本発明はこれらの実施例に限定されず、その趣旨を逸脱しない範囲で種々の構成を採ることができる。例えば、ソフトウェアによって実現した機能は、ハードウェアによって実現するものとしてもよい。また、そのほか、以下のような変形が可能である。
【００６０】
・変形例１：
前記第２実施例では、受給した電力についての電圧が所定値以上であるか否かを判定し、その判定結果に応じて、速度優先モードとするか省電力モードとするかを切り替えていたが、これに換えて、接続インタフェースの種類を判別し、その種類に応じて、速度優先モードとするか省電力モードとするかを切り替える構成としてもよい。詳しくは、接続されているインタフェースがＳＡＴＡかＵＳＢかを判別し、ＳＡＴＡの場合には速度優先モードとし、ＵＳＢの場合に省電力モードとすることができる。
【００６１】
・変形例２：
前記第２実施例では、速度優先モードと省電力モードとの切り替えを、インタリーブ制御を行うか否かにより実現していたが、これに換えて、インタリーブ制御時におけるフラッシュメモリ３０に対する同時アクセス数を大きくするか小さくするかにより実現する構成としてもよい。
【００６２】
・変形例３：
前記第２実施例では、接続インタフェースとしてＳＡＴＡとＵＳＢと双方を用いることができるようにしたが、これに換えて、ＵＳＢだけを用いる構成とし、そのＵＳＢを通じて受給した電力についての電圧が所定値以上であるか否かを判定する構成としてもよい。この構成によれば、ＵＳＢ専用の記憶装置において、ソフトウェア記憶部の切り替えが可能となる。
【００６３】
・変形例４：
前記各実施例では、ＵＳＢやＳＡＴＡといった接続インタフェースに応じてＳＳＤの動作状態を変更することとしたが、接続インタフェースの種類はこれらに限られない。例えば、ＰＡＴＡやＩＥＥＥ１３９４、ＰｏＥ（Power over Ethernet(登録商標)）対応のＬＡＮインタフェースなど、ＳＳＤ等の記憶装置に給電可能な種々の接続インタフェースを適用することが可能である。また、第１の接続インタフェースは第２の接続インタフェースよりも給電能力が低いとすることができる。「給電能力」とは、第２実施例で説明したように、電流制限があるか否かによって低いか高いかを決めるものであるが、これに限るものではなく、例えば、供給電圧の大きさ等によって決めるものであってもよい。
【００６４】
・変形例５：
前記各実施例では、複数のソフトウェア記憶部として２つのＳＰＩフラッシュ７１，７２を備える構成としたが、２つの限る必要はなく、３つ、４つ等、２以外の複数とすることもできる。また、２つのＳＰＩフラッシュ７１，７２に記憶されるソフトウェアを、第１実施例では通常用ファームウェアと拡張用ファームウェアとし、第２実施例では速度優先用ファームウェアと省電力用ファームウェアとしたが、これらに限る必要はなく、ソフトウェア記憶部ごとに種類の異なるソフトウェアであれば、どのようなソフトウェアを記憶する構成としてもよい。
【００６５】
・変形例６：
前記各実施例では、アクセス対象切換部を、ＳＷ回路８０により構成していたが、これに換えて、チップセレクト信号が複数あるメインコントローラであれば、チップセレクト信号を切り替えることで、アクセス対象切換部の機能を実現する構成としてもよい。
【００６６】
・変形例７：
前記各実施例では、データ記憶部としてのフラッシュメモリ３０を、ＮＡＮＤ型のものとしてが、これに換えて、ＦＲＡＭ，ＭＲＡＭ等としてもよい。また、ソフトウェア記憶部としてのＳＰＩフラッシュを、同期式シリアル通信インタフェースであるＩ２Ｃインタフェースを備えるフラッシュなど、他の方式でインタフェースされる不揮発性メモリとしてもよい。
【００６７】
・変形例８：
前記各実施例では、本発明をＳＳＤに適用することとしたが、本発明は、ハードディスクや光ディスク、磁気ディスク等を記録媒体とする記憶装置に対しても適用することが可能である。この場合、例えば、ハードディスクや光ディスク、磁気ディスク等の回転数を増減させることで、接続インタフェースに応じて消費電力を調整することが可能である。また、これらの記録媒体を内部に複数備えていれば、それらに対する同時アクセス数を増減させることでも、接続インタフェースに応じて消費電力を調整することが可能である。
【符号の説明】
【００６８】
１０…メインコントローラ
１２…ＣＰＵ
１４…ＲＯＭ
１６…ＲＡＭ
２０…ＳＡＴＡ制御回路
２２…ＳＷインタフェース
２４…ＳＰＩインタフェース
２６…フラッシュ制御回路
２８…内部バス
３０…フラッシュメモリ
５１…データ信号線
５２…電源線
９０…スライドスイッチ
１００…ＳＳＤ
１１０…メインコントローラ
１２０…通信インタフェース
１２２…電圧判定回路
１４１…データ信号線
１４２…電源線
１４３，１５３…ショットキーバリアダイオード
１６０…ブリッジチップ
ＳＳ…指令信号
ＦＷ１…通常用ファームウェア
ＦＷ２…拡張用ファームウェア
ＦＷ１１…速度優先用ファームウェア
ＦＷ１２…省電力用ファームウェア
Ｖｃｃ…電源ライン
【図１】
2012043024.tif 000003
【図２】
2012043024.tif 000004
【図３】
2012043024.tif 000005
【図４】
2012043024.tif 000006
【図５】
2012043024.tif 000007
【図６】
2012043024.tif 000008