説明

記憶装置

【課題】記憶部用のソフトウェアが破損されて、データの読み書きが不可能となることを防止する。
【解決手段】記憶装置は、データを不揮発的に記憶可能なフラッシュメモリ30と、フラッシュメモリ30へのデータの読み書きを制御するためのメインコントローラ10と、通常用ファームウェアFW1と拡張用ファームウェアFW2とを個別に格納するSPIフラッシュ71,72と、メインコントローラ10によりアクセスし得るSPIフラッシュ71,72を切り替えるSW回路80とを備える。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、コンピュータ等から転送されたデータを不揮発的に記憶する記憶装置に関する。
【背景技術】
【0002】
近年、ハードディスク装置に代替して、大容量のフラッシュメモリを備えた記憶装置が知られている。例えば、SSD(Solid State Drive)と呼ばれる記憶装置である。この種の記憶装置では、フラッシュメモリに対するデータの読み書きを制御するためのソフトウェアが必要であり、このソフトウェアは、フラッシュメモリに予め記憶されており、RAMにロードされてCPUにより利用される。
【0003】
フラッシュメモリは、データの読み書きが頻繁に行われるため、バッドブロックが生じやすい。このため、フラッシュメモリに記憶されたソフトウェアが損なわれ、データの読み書きが不可能となる虞があった。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2008−33379号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
このような問題を考慮し、本発明が解決しようとする課題は、記憶部用のソフトウェアが破損されて、データの読み書きが不可能となることを防止することである。
【課題を解決するための手段】
【0006】
本発明は、上述の課題の少なくとも一部を解決するためになされたものであり、以下の形態又は適用例として実現することが可能である。
【0007】
[適用例1] 記憶装置であって、
データを不揮発的に記憶可能なデータ記憶部と、
前記データ記憶部へのデータの読み書きを制御するための制御部と、
前記制御部用のソフトウェアを不揮発的に記憶可能な複数のソフトウェア記憶部であって、各ソフトウェア記憶部に種類の異なる前記ソフトウェアが記憶される複数のソフトウェア記憶部と、
前記制御部によりアクセスし得る一のソフトウェア記憶部を切り替えるアクセス対象切換部と
を備える記憶装置。
【0008】
適用例1に係る記憶装置では、制御部用のソフトウェアが、データ記憶部とは異なる記憶部であるソフトウェア記憶部に記憶されていることから、データ記憶部の一部が損傷しても、制御部用のソフトウェアが破損されることがない。さらに、制御部用のソフトウェアは、複数のソフトウェア記憶部に個別に記憶されていることから、複数のソフトウェアが全て破損される虞は少ない。これらの結果、制御部用のソフトウェアが破損されて、データの読み書きが不可能となることを防止することができる。
【0009】
さらに、複数のソフトウェア記憶部には種類の異なるソフトウェアが記憶され、アクセス対象切換部により、使用するソフトウェア記憶部を切り替えることが可能であることから、データ記憶部へのデータの読み書きの制御を、種々の状況に適したものに切り替えることが可能となる。このため、データ記憶部に対するデータの読み書きの信頼性を向上することもできる。
【0010】
[適用例2] 適用例1に記載の記憶装置であって、
前記複数のソフトウェアは、当該記憶装置の電力消費量に違いをもたらすソフトウェアであり、
所定の給電能力を有するインタフェースが接続可能であり、該インタフェースから当該記憶装置を動作させる電力を受給可能な接続部と、
前記接続部を通じて受給した電力についての電圧が所定値を下回るか否かを判定する電圧判定部と、
前記電圧判定部による判定結果に基づいて、前記アクセス対象切換部の動作を制御する切換制御部と
を備える記憶装置。
【0011】
この構成であれば、接続部を通じて受給した電力についての電圧が所定値を下回るか否かにより、アクセスし得るソフトウェア記憶部を切り替えることができる。複数のソフトウェア記憶部に記憶される複数のソフトウェアは、当該記憶装置の電力消費量に違いをもたらすものであることから、前記受給した電力についての電圧が所定値を下回ったときに、電力消費量が低い方のソフトウェアを記憶するソフトウェア記憶部にアクセス対象を切り替えることで、記憶装置の電力消費量を下げることができる。したがって、受給した電力についての電圧が低下したときに、少ない電力消費量で済むことから、この場合にも、データ記憶部に対するデータの読み書きの信頼性を高めることが可能となる。
【0012】
[適用例3] 適用例2に記載の記憶装置であって、
前記データ記憶部を複数備え、
前記制御部は、前記複数のデータ記憶部のうちの2以上の記憶部に同時にアクセスしてデータの読み書きが可能であり、
前記複数のソフトウェア記憶部のうちの第1のソフトウェア記憶部は、前記複数のデータ記憶部に対する同時アクセスを行うことでデータの読み書きを行わせるための第1のソフトウェアを記憶し、
前記複数のソフトウェア記憶部のうちの第2のソフトウェア記憶部は、前記複数のデータ記憶部に対する同時アクセスを行なわずにデータの読み書きを行わせるための第2のソフトウェアを記憶し、
前記切換制御部は、前記電圧判定部により前記所定値以上であると判定された場合に、前記第1のソフトウェア記憶部を前記アクセスし得る一のソフトウェアとして選択する指令を送信し、前記電圧判定部により前記所定値以上でないと判定された場合に、前記第2のソフトウェア記憶部を前記アクセスし得る一のソフトウェアとして選択する指令を送信する構成を備える、記憶装置。
【0013】
この構成であれば、複数のデータ記憶部に対する同時アクセスを行うか否かにより消費電力を調整することが可能になる。すなわち、接続部を通じて受給した電力についての電圧が所定値を下回ったときに、前記同時アクセスを行わないようにして消費電力の低減を図ることが可能になる。
【0014】
[適用例4] 適用例2または3に記載の記憶装置であって、
前記接続部として、
第1の給電能力を有する第1のインタフェースが接続可能であり、該第1のインタフェースから当該記憶装置を動作させる電力を受給可能な第1の接続部と、
前記第1の給電能力よりも低い第2の給電能力を有する第2のインタフェースが接続可能であり、該第2のインタフェースから当該記憶装置を動作させる電力を受給可能な第2の接続部と
を備える構成である、記憶装置。
【0015】
この構成であれば、第1のインタフェースが接続可能な第1の接続部または第2のインタフェースが接続可能な第2の接続部を通じて受給した電力についての電圧が所定値以上か否かにより、アクセスし得るソフトウェア記憶部を切り替えることができる。
【0016】
[適用例5] 適用例4に記載の記憶装置であって、
前記第1のインタフェースは、SATA(Serial ATA)の接続インタフェースであり、
前記第2のインタフェースは、USB(Universal Serial Bus)の接続インタフェースである、記憶装置。
【0017】
この構成であれば、USB接続において、供給される電力の電圧低下が見られたときに、消費電力の低減を図ることが可能になる。
【0018】
[適用例6] 適用例1に記載の記憶装置であって、
操作者による所定の指令を示す指令信号を受信する指令信号受信部と、
前記指令信号に応じて、前記アクセス対象切換部の動作を制御する切換制御部と
を備える記憶装置。
【0019】
この構成であれば、アクセスし得るソフトウェア記憶部を、操作者が自由に切り替えることができる。
【0020】
本発明は、上述した記憶装置としての構成のほか、記憶装置の制御方法や、記憶装置を制御するためのコンピュータプログラムとしても構成することができる。コンピュータプログラムは、コンピュータが読取可能な記録媒体に記録されていてもよい。記録媒体としては、例えば、磁気ディスクや光ディスク、メモリカード、ハードディスク等の種々の媒体を利用することができる。
【図面の簡単な説明】
【0021】
【図1】本発明の第1実施例としてのSSD100の概略構成を示す説明図である。
【図2】SPIインタフェース24、SW回路80、および第1および第2のSPIフラッシュ71,72の接続の様子を示す説明図である。
【図3】SW回路80におけるINピンに対するNCピンNOピンの出力の変化を示す説明図である。
【図4】予備領域切替処理を示すフローチャートである。
【図5】本発明の第2実施例としてのSSD200の概略構成を示す説明図である。
【図6】動作モード切替処理を示すフローチャートである。
【発明を実施するための形態】
【0022】
以下、本発明の実施の形態を実施例に基づき説明する。
A.第1実施例:
図1は、本発明の第1実施例としてのSSDの概略構成を示す説明図である。本実施例のSSD100は、パーソナルコンピュータなどのホスト装置(図示せず)に接続されて使用される二次記憶装置であり、メインコントローラ10と、複数のフラッシュメモリ30と、SATAコネクタ50と、2つのSPIフラッシュメモリ(以下、「SPIフラッシュ」と呼ぶ)71,72と、スイッチ回路(以下、「SW回路」と呼ぶ)80とを備えている。さらに、SSD100の筐体には、操作者により操作されるスライドスイッチ90が取り付けられている。
【0023】
メインコントローラ10は、内部に、CPU12と、ROM14と、RAM16と、SATA制御回路20と、スイッチインタフェース(以下、「SWインタフェース」と呼ぶ)22と、SPIインタフェース24とを備えており、更に、8つのフラッシュ制御回路26(第1〜8フラッシュ制御回路)を備えている。これらは、内部バス28によって相互に接続されている。
【0024】
SATA制御回路20には、2組(A+,A−,B+,B−)のデータ信号線51を介してSATAコネクタ50が接続されている。SATA制御回路20は、SATAコネクタ50を介して接続されたホスト装置との間でSATA2規格に基づくデータの入出力を行う。SATA2規格では、最大3.0Gbpsの通信速度でホスト装置とデータの入出力を行うことができる。なお、本実施例では、SATA制御回路20は、SATA2規格に基づきホスト装置との通信を行うこととするが、他のバージョンのSATA規格によって通信を行うこととしても構わない。また、本願において、SATA規格には、eSATA規格も含まれることとする。
【0025】
SATAコネクタ50には、ホスト装置から電力の供給を受けるための電源入力端子が含まれている。SATAコネクタ50の電源入力端子に接続された電源線52は、SSD100の電源ラインVccに接続される。この電源ラインVccには、メインコントローラ10、フラッシュメモリ30、SPIフラッシュ71,72、SW回路80の電源入力端子が接続される。
【0026】
8つのフラッシュ制御回路26には、それぞれ、4つのNAND型フラッシュメモリ30が、データバス線と、制御信号線(チップセレクト信号線、ライトイネーブル信号線、リードイネーブル信号線、アドレスラッチイネーブル信号線、コマンドラッチイネーブル信号線)と、レディビジー信号線とによって接続されている。このうちデータバス線は、4つのフラッシュメモリ30に共通して用いられる共有バスとなっている。このようにデータバス線が共有化されたフラッシュ制御回路26と複数のフラッシュメモリ30の組のことを「チャネル」と呼ぶ。フラッシュ制御回路26は、チップイネーブル信号線を通じて、アクセス対象のフラッシュメモリ30にチップイネーブル信号を出力することで、アクセスを行うフラッシュメモリ30を選択する。そして、レディビジー信号線を通じてレディ信号あるいはビジー信号をフラッシュメモリ30から取得することで、各フラッシュメモリ30の動作状態を判別し、実際のデータの書き込みや読み出しの制御を行う。
【0027】
NAND型フラッシュメモリは、使用に伴って、フローティング・ゲートの絶縁部の消耗により、メモリ・セルの書き込みが規定時間で完了しなくなることがある。その場合、消去やプログラムの実行がエラーとなるため、該当ブロックをバッドブロックとして以降のメモリ管理対象から除外する必要がある。エラーが発生した場合に、メインコントローラ10は、このバッドブロックをこれ以降利用しないようにフラッシュメモリの管理対象から除外するとともに、予備領域からブロックを補填することで、管理対象の容量が減らないようにしている。この予備領域は拡張可能であるが、この拡張に関わるファームウェア(すなわち、ソフトウェア)を格納するのが、第1および第2のSPIフラッシュ71,72である。
【0028】
第1および第2のSPIフラッシュ71,72は、シリアル・ペリフェラル・インタフェース(SPI)という方式でインタフェースされるフラッシュメモリである。第1のSPIフラッシュ71には、フラッシュメモリ30内の予備領域を、所定サイズ(以下、「通常サイズ」と呼ぶ)に定めるための通常用ファームウェアFW1が記憶されている。第2のSPIフラッシュ72には、各フラッシュメモリ30内の予備領域を、通常サイズよりも大きい所定サイズ(以下、「拡張サイズ」と呼ぶ)に定めるための拡張用ファームウェアFW2が記憶されている。
【0029】
メインコントローラ10に備えられるSPIインタフェース24には、SW回路80を介して、第1のSPIフラッシュ71と第2のSPIフラッシュ72とが接続される。
【0030】
図2は、SPIインタフェース24、SW回路80、および第1および第2のSPIフラッシュ71,72の接続の様子を示す説明図である。図示するように、SPIインタフェース24と各SPIフラッシュ71,72との間は、4本の信号線S1,S2,S3,S4により接続されている。詳しくは、SPIインタフェース24は、SCLK(クロック)、SI(データ入力)、SO(データ出力)、CS(チップセレクト)の4ピンを備えており、SCLK、SI、SOの各ピンに接続される信号線S1,S2,S3は、第1のSPIフラッシュ71に接続されると共に、途中で分岐して、第2のSPIフラッシュ72に接続される。SPIインタフェース24のCSピンに接続される信号線S4の途中に、SW回路80が接続されている。
【0031】
SW回路80は、IN(入力)、NC(ノーマリクローズ)、COM(共通)、NO(ノーマリオープン)の4ピンを少なくとも備え、INピンに対する入力信号に応じて、スイッチ操作によりCOMピンと導通するピンがNCピンとNOピンの間で切り替えられる。
【0032】
図3は、SW回路80におけるINピンに対するNCピン、NOピンの出力の変化を示す説明図である。図中の表TLに示すように、INピンに対する入力信号が“0”であるときには、NCピンの出力はオンに、NOピンの出力はオフになり、INピンに対する入力信号が“1”であるときには、NCピンの出力はオフに、NOピンの出力はオンになる。
【0033】
SW回路80のINピンは、SPIインタフェース24のCSピンに接続される。また、SW回路80のNCピンは、第1のSPIフラッシュ71のCEピンに接続され、SW回路80のNOピンは、第2のSPIフラッシュ72のCEピンに接続される。したがって、メインコントローラ10は、SPIインタフェース24のCSピンからの出力を“0”とすることで、第1のSPIフラッシュ71のCEピンへの入力をオンに、第2のSPIフラッシュ72のCEピンへの入力をオフとすることができる。また、メインコントローラ10は、SPIインタフェース24のCSピンからの出力を“1”とすることで、第1のSPIフラッシュ71のCEピンへの入力をオフに、第2のSPIフラッシュ72のCEピンへの入力をオンとすることができる。したがって、メインコントローラ10は、SPIインタフェース24のCSピンからの出力を“0”と“1”の間で切り替えることで、メインコントローラ10の接続を、第1のSPIフラッシュ71と第2のSPIフラッシュ72との間で切り替えることができる。
【0034】
図1に戻り、SWインタフェース22には、スライドスイッチ90が接続されている。スライドスイッチ90は、スイッチ部を上下にスライドさせるスライディング形のものであり、操作者により操作される。スライドスイッチ90を操作することで、操作者は、前述したフラッシュメモリ30の予備領域を通常サイズと拡張サイズのいずれにするかを、SSD100のメインコントローラ10に対して指令することができる。スライドスイッチ90のスイッチ部が図中上側(「通常」側とも呼ぶ)に位置する場合には、通常サイズである旨の指令が指令信号SSとしてSWインタフェース22に送られ、スライドスイッチ90のスイッチ部が図中下側(「拡張」側とも呼ぶ)に位置する場合には、拡張サイズである旨の指令が指令信号SSとしてSWインタフェース22に送られる。
【0035】
メインコントローラ10に備えられるCPU12は、SATA制御回路20を通じたホスト装置との通信や、各フラッシュ制御回路26を通じたフラッシュメモリ30へのデータの読み書きを制御する。また、CPU12は、スライドスイッチ90から送られてくる指令信号SSに応じて、フラッシュメモリ30の予備領域のサイズを切り替える。以下、この予備領域のサイズを切り替える処理を「予備領域切替処理」と呼ぶ。
【0036】
ROM113は、内蔵されている各種コンピュータプログラムやデータ等を記憶する読み出し専用のメモリである。RAM16は、CPU12による各種制御のための各種データやプログラム等を一時的に記憶する読み出し・書込み可能なメモリである。
【0037】
次に、CPU12により実行される予備領域切替処理について説明する。図4は、予備領域切替処理を示すフローチャートである。この予備領域切替処理は、SSD100の起動時に実行開始される。SSD100がSATAケーブルによってホスト装置に接続されると、ATAケーブルを通じて、ホスト装置からSSD100に電力が供給される。この電力の供給によってSSD100が起動されると、まず、CPU12は、スライドスイッチ90から送られてきた指令信号SSをSWインタフェース22から受信する(ステップS110)。次いで、受信した指令信号SSに基づいて、予備領域を通常サイズとするか拡張サイズとするかを判別する(ステップS120)。
【0038】
ステップS120で、予備領域を通常サイズとすると判別されると、CPU12は、SPIインタフェース24のCSピンの出力を“0”に設定して、第1のSPIフラッシュ71から通常用ファームウェアFW1をRAM16にロードする(ステップS130)。一方、ステップS120で、予備領域を拡張サイズとすると判別されると、CPU12は、SPIインタフェース24のCSピンの出力を“1”に設定して、第2のSPIフラッシュ72から拡張用ファームウェアFW2をRAM16にロードする(ステップS140)。
【0039】
ステップS130またはS140の実行後、RAM16にロードしたファームウェア(FW1またはFW2)を実行する(ステップS150)。ステップS150の結果、ステップS120で予備領域を通常サイズとすると判別された場合には、通常用ファームウェアFW1が実行されて、フラッシュメモリ30内の予備領域は通常サイズに定められ、一方、ステップS120で予備領域を拡張サイズとすると判別された場合には、拡張用ファームウェアFW2が実行されて、フラッシュメモリ30内の予備領域は拡張サイズに定められる。ステップS150の実行後、この予備領域切替処理は終了する。
【0040】
以上で説明した第1実施例のSSD100によれば、メインコントローラ10用のファームウェアFW1,FW2が、フラッシュメモリ30とは異なる記憶部であるSPIフラッシュ71,71に記憶されていることから、フラッシュメモリ30の一部が損傷しても、ファームウェアFW1,FW2が破損されることがない。さらに、ファームウェアFW1,FW2は、SPIフラッシュ71,72に個別に記憶されていることから、ファームウェアFW1,FW2が全て破損される虞は少ない。これらの結果、ファームウェアFW1,FW2が破損されて、データの読み書きが不可能となることを防止することができる。
【0041】
さらに、操作者により操作されるスライドスイッチ90が「通常」側に設定されている場合には、第1のSPIフラッシュ71に記憶される通常用ファームウェアFW1が実行され、スライドスイッチ90が「拡張」側に設定されている場合には、第2のSPIフラッシュ72に記憶される拡張用ファームウェアFW2が実行されることから、使用するファームウェアを、種々の状況に適したものに切り替えることが可能となる。このため、フラッシュメモリ30に対するデータの読み書きの信頼性を向上することもできる。
【0042】
なお、第1実施例において、フラッシュメモリ30が適用例1における「データ記憶部」に相当し、SPIフラッシュ71,72が適用例1における「ソフトウェア記憶部」に相当し、SW回路80が適用例1における「アクセス対象切換部」に相当する。メインコントローラ10に備えられるSWインタフェース22および予備領域切替処理のステップS110の処理は、適用例6における「指令信号受信部」に、予備領域切替処理のステップS120ないしS150の処理は、適用例6における「切換制御部」に相当する。
【0043】
B.第2実施例:
図5は、本発明の第2実施例としてのSSDの概略構成を示す説明図である。図1に示した第1実施例のSSD100と、図5に示した第2実施例のSSD200とで同一の構成要素には、同一の符号を付している。図5に示すように、本実施例のSSD200は、図1に示した第1実施例のSSD100と比較して、ホストと通信を行うためのインタフェースとして、SATAコネクタ50以外にUSBコネクタ140を備える点で相違する。このため、本実施例のSSD200は、SATAコネクタ50とUSBコネクタ140とを結ぶブリッジチップ160を備える。
【0044】
ブリッジチップ160は、SATAコネクタ50とUSBコネクタ140とに接続され、SATAコネクタ50との間のデータの送受信の制御、およびUSBコネクタ140との間のデータの送受信の制御を行う。USBコネクタ140とブリッジチップ160との間は、1組(D+,D−)のデータ信号線141を介して接続されている。ブリッジチップ160は、USBコネクタ140を介して接続されたホスト装置との間でUSB2.0規格に基づくデータの入出力を行う。USB2.0規格では、最大480Mbpsの通信速度でホスト装置とデータの入出力を行うことができる。なお、本実施例では、USB制御回路18は、USB2.0規格に基づきホストとの通信を行うこととするが、他のバージョンのUSB規格によって通信を行うこととしても構わない。
【0045】
また、ブリッジチップ160は、第1実施例のSATA制御回路20と同様に、SATAコネクタ50を介して接続されたホスト装置との間でSATA2規格に基づくデータの入出力を行う。また、他のバージョンのSATA規格によって通信を行うこととしても構わない。
【0046】
ブリッジチップ160は、上記USBコネクタ140あるいはSATAコネクタ50と間で送受信したデータについての、SSDコントローラ110に備えられる通信インタフェース120に対する書き込み処理および読み出し処理の制御を行う。ブリッジチップ160は、CPUやメモリ等を備える小型マイクロコンピュータにより構成される。なお、小型マイクロコンピュータの構成に換えて、複数のディスクリートな電子部品による構成とすることもできる。
【0047】
本実施例のSSD200は、第1実施例のSSD100におけるスライドスイッチ90およびSWインタフェース22に相当する構成は備えない。本実施例のSSD200のメインコントローラ110には、電圧判定回路122が設けられている。
【0048】
電圧判定回路122は、ホスト装置から受給した電力についての電圧を判別するための回路である。電圧判定回路122には、USBコネクタ140の電源入力端子に接続された電源線142と、SATAコネクタ50の電源入力端子に接続された電源線52とがそれぞれ接続されている。USBコネクタ140には、電圧5V、最大電流500mAの電力が供給され、SATAコネクタ50には、電圧5Vの電力が供給される(電流についての制限はなし)。USBの接続インタフェースはSATAの接続インタフェースよりも給電能力が低いと言える。電源線142と電源線52は、それぞれ、電流が相互に侵入することを防止するためのショットキーバリアダイオード143,153を介して、SSD100の電源ラインVccに接続される。
【0049】
電圧判定回路122は、USBの電源線142あるいはSATAの電源線52を通じて入力された電圧が、所定の電圧値(例えば、3V)以上であるか否かを判定し、所定の電圧値以上となった場合に、適正電圧であると判定し、所定の電圧値を下回った場合に、低電圧であると判定する。電圧判定回路122は、判定した結果を表す判定信号をCPU12に通知する。
【0050】
メインコントローラ110は、さらに、第1実施例におけるメインコントローラ10と同様に、CPU12、ROM14、RAM16、SPIインタフェース24、および第1〜8フラッシュ制御回路28を備える。なお、CPU12は、第1実施例では予備領域切替処理を実行しているが、第2実施例では、予備領域切替処理に換えて、動作モード切替処理を実行している。動作モード切替処理については、後で説明する。
【0051】
第1および第2のSPIフラッシュ71,72は、第1実施例と同様のものであるが、各SPIフラッシュ71,72に記憶されているファームウェアの内容は、第1実施例とは相違したものとなっている。第1のSPIフラッシュ71には速度優先用ファームウェアFW11が記憶され、第2のSPIフラッシュ72には省電力用ファームウェアFW12が記憶されている。
【0052】
第1ないし第8フラッシュ制御回路26は、第1実施例では特に言及しなかったが、それぞれに接続された4つのフラッシュメモリ30に並列的にデータの書き込みを行うインタリーブ制御を行うことができる。よって、本実施例のメインコントローラ10は、8つのチャネルのそれぞれで4つのフラッシュメモリ30をインタリーブ制御することができるため、最大で32個のフラッシュメモリ30を同時並列的に動作させることが可能である。インタリーブ制御によれば、データの読み書き速度を高めることができる。一方、インタリーブ制御を行うことで、電力消費は大きくなる。
【0053】
第1のSPIフラッシュ71に記憶される速度優先用ファームウェアFW11は、各フラッシュ制御回路26にデータの読み書き時に前記インタリーブ制御を行わせるためのファームウェアである。第2のSPIフラッシュ72に記憶される省電力用ファームウェアFW12は、各フラッシュ制御回路26にデータの読み書き時に前記インタリーブ制御を行わせないためのファームウェアである。
【0054】
次に、CPU12により実行される動作モード切替処理について説明する。図6は、動作モード切替処理を示すフローチャートである。この動作モード切替処理は、第1実施例の予備領域切替処理と同様に、SSD200の起動時に実行開始される。SSD200が起動されると、まず、CPU12は、電圧判定回路122の判定結果を読み込み(ステップS210)、その判定結果が適正電圧であるか低電圧であるかを判別する(ステップS220)。
【0055】
ステップS220で、適正電圧であると判別されると、CPU12は、SPIインタフェース24のCSピンの出力を“0”に設定して、第1のSPIフラッシュ71から速度優先用ファームウェアFW11をRAM16にロードする(ステップS230)。一方、ステップS120で、低電圧であると判別されると、CPU12は、SPIインタフェース24のCSピンの出力を“1”に設定して、第2のSPIフラッシュ72から省電力用ファームウェアFW12をRAM16にロードする(ステップS240)。
【0056】
ステップS230またはS240の実行後、RAM16にロードしたファームウェア(FW11またはFW12)を実行する(ステップS250)。ステップS250の結果、USBの電源線142あるいはSATAの電源線52を通じて入力された電圧が所定の電圧値以上の場合には、速度優先用ファームウェアFW11が実行されて、インタリーブ制御によるデータの読み書きが可能となる。一方、USBの電源線142あるいはSATAの電源線52を通じて入力された電圧が所定の電圧値を下回る場合には、省電力用ファームウェアFW12が実行されて、インタリーブ制御によるデータの読み書きが不可能となる。ステップS250の実行後、この動作モード切替処理は終了する。
【0057】
したがって、第2実施例のSSD100によれば、第1実施例と同様に、ファームウェアFW11,FW12が破損されて、データの読み書きが不可能となることを防止することができる。さらに、USBの電源線142あるいはSATAの電源線52を通じて入力された電圧に応じて、インタリーブ制御を行う速度優先の動作モードを行うか、インタリーブ制御を行わない省電力の動作モードを行うかを切り替えることが可能になる。USBの電源線142を通じて供給される電力は、電圧値が低下することが起こり易いが、第2実施例によれば、その低下が検出されたときに、省電力を図ることができることから、その結果、フラッシュメモリ30に対するデータの読み書きの信頼性を向上することができる。
【0058】
なお、第2実施例において、SATAの接続インタフェースが適用例4における「第1のインタフェース」に相当し、USBの接続インタフェースが適用例4における「第2のインタフェース」に相当する。メインコントローラ10に備えられる電圧判定回路122および動作モード切替処理のステップS210の処理は、適用例2における「電圧判定部」に、動作モード切替処理のステップS220ないしS250の処理は、適用例2における「切換制御部」に相当する。
【0059】
C.変形例:
以上、本発明の種々の実施例について説明したが、本発明はこれらの実施例に限定されず、その趣旨を逸脱しない範囲で種々の構成を採ることができる。例えば、ソフトウェアによって実現した機能は、ハードウェアによって実現するものとしてもよい。また、そのほか、以下のような変形が可能である。
【0060】
・変形例1:
前記第2実施例では、受給した電力についての電圧が所定値以上であるか否かを判定し、その判定結果に応じて、速度優先モードとするか省電力モードとするかを切り替えていたが、これに換えて、接続インタフェースの種類を判別し、その種類に応じて、速度優先モードとするか省電力モードとするかを切り替える構成としてもよい。詳しくは、接続されているインタフェースがSATAかUSBかを判別し、SATAの場合には速度優先モードとし、USBの場合に省電力モードとすることができる。
【0061】
・変形例2:
前記第2実施例では、速度優先モードと省電力モードとの切り替えを、インタリーブ制御を行うか否かにより実現していたが、これに換えて、インタリーブ制御時におけるフラッシュメモリ30に対する同時アクセス数を大きくするか小さくするかにより実現する構成としてもよい。
【0062】
・変形例3:
前記第2実施例では、接続インタフェースとしてSATAとUSBと双方を用いることができるようにしたが、これに換えて、USBだけを用いる構成とし、そのUSBを通じて受給した電力についての電圧が所定値以上であるか否かを判定する構成としてもよい。この構成によれば、USB専用の記憶装置において、ソフトウェア記憶部の切り替えが可能となる。
【0063】
・変形例4:
前記各実施例では、USBやSATAといった接続インタフェースに応じてSSDの動作状態を変更することとしたが、接続インタフェースの種類はこれらに限られない。例えば、PATAやIEEE1394、PoE(Power over Ethernet(登録商標))対応のLANインタフェースなど、SSD等の記憶装置に給電可能な種々の接続インタフェースを適用することが可能である。また、第1の接続インタフェースは第2の接続インタフェースよりも給電能力が低いとすることができる。「給電能力」とは、第2実施例で説明したように、電流制限があるか否かによって低いか高いかを決めるものであるが、これに限るものではなく、例えば、供給電圧の大きさ等によって決めるものであってもよい。
【0064】
・変形例5:
前記各実施例では、複数のソフトウェア記憶部として2つのSPIフラッシュ71,72を備える構成としたが、2つの限る必要はなく、3つ、4つ等、2以外の複数とすることもできる。また、2つのSPIフラッシュ71,72に記憶されるソフトウェアを、第1実施例では通常用ファームウェアと拡張用ファームウェアとし、第2実施例では速度優先用ファームウェアと省電力用ファームウェアとしたが、これらに限る必要はなく、ソフトウェア記憶部ごとに種類の異なるソフトウェアであれば、どのようなソフトウェアを記憶する構成としてもよい。
【0065】
・変形例6:
前記各実施例では、アクセス対象切換部を、SW回路80により構成していたが、これに換えて、チップセレクト信号が複数あるメインコントローラであれば、チップセレクト信号を切り替えることで、アクセス対象切換部の機能を実現する構成としてもよい。
【0066】
・変形例7:
前記各実施例では、データ記憶部としてのフラッシュメモリ30を、NAND型のものとしてが、これに換えて、FRAM,MRAM等としてもよい。また、ソフトウェア記憶部としてのSPIフラッシュを、同期式シリアル通信インタフェースであるI2Cインタフェースを備えるフラッシュなど、他の方式でインタフェースされる不揮発性メモリとしてもよい。
【0067】
・変形例8:
前記各実施例では、本発明をSSDに適用することとしたが、本発明は、ハードディスクや光ディスク、磁気ディスク等を記録媒体とする記憶装置に対しても適用することが可能である。この場合、例えば、ハードディスクや光ディスク、磁気ディスク等の回転数を増減させることで、接続インタフェースに応じて消費電力を調整することが可能である。また、これらの記録媒体を内部に複数備えていれば、それらに対する同時アクセス数を増減させることでも、接続インタフェースに応じて消費電力を調整することが可能である。
【符号の説明】
【0068】
10…メインコントローラ
12…CPU
14…ROM
16…RAM
20…SATA制御回路
22…SWインタフェース
24…SPIインタフェース
26…フラッシュ制御回路
28…内部バス
30…フラッシュメモリ
51…データ信号線
52…電源線
90…スライドスイッチ
100…SSD
110…メインコントローラ
120…通信インタフェース
122…電圧判定回路
141…データ信号線
142…電源線
143,153…ショットキーバリアダイオード
160…ブリッジチップ
SS…指令信号
FW1…通常用ファームウェア
FW2…拡張用ファームウェア
FW11…速度優先用ファームウェア
FW12…省電力用ファームウェア
Vcc…電源ライン

【特許請求の範囲】
【請求項1】
記憶装置であって、
データを不揮発的に記憶可能なデータ記憶部と、
前記データ記憶部へのデータの読み書きを制御するための制御部と、
前記制御部用のソフトウェアを不揮発的に記憶可能な複数のソフトウェア記憶部であって、各ソフトウェア記憶部に種類の異なる前記ソフトウェアが記憶される複数のソフトウェア記憶部と、
前記制御部によりアクセスし得る一のソフトウェア記憶部を切り替えるアクセス対象切換部と
を備える記憶装置。
【請求項2】
請求項1に記載の記憶装置であって、
前記複数のソフトウェアは、当該記憶装置の電力消費量に違いをもたらすソフトウェアであり、
所定の給電能力を有するインタフェースが接続可能であり、該インタフェースから当該記憶装置を動作させる電力を受給可能な接続部と、
前記接続部を通じて受給した電力についての電圧が所定値を下回るか否かを判定する電圧判定部と、
前記電圧判定部による判定結果に基づいて、前記アクセス対象切換部の動作を制御する切換制御部と
を備える記憶装置。
【請求項3】
請求項2に記載の記憶装置であって、
前記データ記憶部を複数備え、
前記制御部は、前記複数のデータ記憶部のうちの2以上の記憶部に同時にアクセスしてデータの読み書きが可能であり、
前記複数のソフトウェア記憶部のうちの第1のソフトウェア記憶部は、前記複数のデータ記憶部に対する同時アクセスを行うことでデータの読み書きを行わせるための第1のソフトウェアを記憶し、
前記複数のソフトウェア記憶部のうちの第2のソフトウェア記憶部は、前記複数のデータ記憶部に対する同時アクセスを行なわずにデータの読み書きを行わせるための第2のソフトウェアを記憶し、
前記切換制御部は、前記電圧判定部により前記所定値以上であると判定された場合に、前記第1のソフトウェア記憶部を前記アクセスし得る一のソフトウェアとして選択する指令を送信し、前記電圧判定部により前記所定値以上でないと判定された場合に、前記第2のソフトウェア記憶部を前記アクセスし得る一のソフトウェアとして選択する指令を送信する構成を備える、記憶装置。
【請求項4】
請求項2または3に記載の記憶装置であって、
前記接続部として、
第1の給電能力を有する第1のインタフェースが接続可能であり、該第1のインタフェースから当該記憶装置を動作させる電力を受給可能な第1の接続部と、
前記第1の給電能力よりも低い第2の給電能力を有する第2のインタフェースが接続可能であり、該第2のインタフェースから当該記憶装置を動作させる電力を受給可能な第2の接続部と
を備える構成である、記憶装置。
【請求項5】
請求項4に記載の記憶装置であって、
前記第1のインタフェースは、SATAの接続インタフェースであり、
前記第2のインタフェースは、USBの接続インタフェースである、記憶装置。
【請求項6】
請求項1に記載の記憶装置であって、
操作者による所定の指令を示す指令信号を受信する指令信号受信部と、
前記指令信号に応じて、前記アクセス対象切換部の動作を制御する切換制御部と
を備える記憶装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate


【公開番号】特開2012−43024(P2012−43024A)
【公開日】平成24年3月1日(2012.3.1)
【国際特許分類】
【出願番号】特願2010−181221(P2010−181221)
【出願日】平成22年8月13日(2010.8.13)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.FRAM
【出願人】(390040187)株式会社バッファロー (378)
【Fターム(参考)】