(57)【要約】【課題】オペレーティングシステムが動作している状態であっても各ドライブの保守に関する処理を実行することができるディスクアレイ制御装置を実現する。【解決手段】ＲＡＩＤコントローラ２０１内の制御モジュール４００は、ホスト１１から送信されるコマンドを受信する。そして、制御モジュール４００は、受信したコマンドがドライブの保守に使用される所定のコマンドであるか否かを判定する。受信したコマンドが所定のコマンドである場合、制御モジュール４００は、受信したコマンドを、ホスト１１によってパススルー制御レジスタ３００に設定されたアクセス対象ドライブ番号によって指定されるドライブ２１０に送出するパススルー処理を実行する。【選択図】      図１
2010108174.tif 000002
【特許請求の範囲】
【請求項１】
複数のドライブを一つの論理ドライブとして管理するディスクアレイ制御装置であって、
ホストによって指定されるアクセス対象ドライブ番号を保持する第１のレジスタと、
前記ホストから受信したコマンドが前記各ドライブの保守に使用される所定のコマンドであるか否かを判定し、前記受信したコマンドが前記所定のコマンドである場合、前記受信したコマンドを、前記第１のレジスタの前記アクセス対象ドライブ番号によって指定されるドライブに送出するパススルー処理を実行する制御手段とを具備することを特徴とするディスクアレイ制御装置。
【請求項２】
前記所定のコマンドは、前記ホストがドライブのマイクロコードを変更するために使用するダウンロードマイクロコードコマンドであることを特徴とする請求項１記載のディスクアレイ制御装置。
【請求項３】
前記各ドライブはログページ構造を格納しており、
前記制御手段は、前記ホストから受信したコマンドが、前記ログページ構造に割り当てられたログアドレス範囲内に属する、ベンダー固有の第１の所定のログアドレスに対するログデータのライトを指定するスマートコマンドである場合、前記アクセス対象ドライブ番号を前記第１のレジスタにセットするために前記ホストからのデータを前記第１レジスタにライトすることを特徴とする請求項２記載のディスクアレイ制御装置。
【請求項４】
前記ホストによって指定されるアクセス対象ログアドレスを保持する第２レジスタをさらに具備し、
前記制御手段は、前記ホストから受信したコマンドが、前記ログページ構造に割り当てられたログアドレス範囲内の第２の所定のログアドレスに対するログデータのリードまたはライトを指定するスマートコマンドである場合、前記第２レジスタの前記アクセス対象ログアドレスに対するログデータのリードまたはライトを指定するスマートコマンドを、前記第１のレジスタの前記アクセス対象ドライブ番号によって指定されるドライブに送出することを特徴とする請求項３記載のディスクアレイ制御装置。
【請求項５】
前記ホストによって指定される動作モードを保持するレジスタをさらに具備し、
前記制御手段は、前記動作モードが、前記ホストからの全ての種類のコマンドを、前記第１のレジスタの前記アクセス対象ドライブ番号によって指定されるドライブに送出するためのパススルーモードを示す場合、前記ホストから受信した各コマンドを、前記第１のレジスタの前記アクセス対象ドライブ番号によって指定されるドライブに送出することを特徴とする請求項１記載のディスクアレイ制御装置。
【請求項６】
筐体と、
前記筐体内に設けられた複数のドライブと、
前記筐体内に設けられ、前記複数のドライブを一つの論理ドライブとして管理するディスクアレイ制御装置であって、ホストによって指定されるアクセス対象ドライブ番号を保持する第１のレジスタと、前記ホストから受信したコマンドが前記各ドライブの保守に使用される所定のコマンドであるか否かを判定し、前記受信したコマンドが前記所定のコマンドである場合、前記受信したコマンドを、前記第１のレジスタの前記アクセス対象ドライブ番号によって指定されるドライブに送出するパススルー処理を実行する制御手段とを具備することを特徴とする記憶装置。
【請求項７】
前記所定のコマンドは、前記ホストがドライブのマイクロコードを変更するために使用するダウンロードマイクロコードコマンドであることを特徴とする請求項６記載の記憶装置。
【請求項８】
前記各ドライブはログページ構造を格納しており、
前記制御手段は、前記ホストから受信したコマンドが、前記ログページ構造に割り当てられたログアドレス範囲内の第１の所定のログアドレスに対するログデータのライトを指定するスマートコマンドである場合、前記アクセス対象ドライブ番号を前記第１のレジスタにセットするために前記ホストからのデータを前記第１レジスタにライトすることを特徴とする請求項７記載の記憶装置。
【請求項９】
前記各ドライブは、不揮発性メモリと、前記ディスクアレイコントローラからのコマンドに応じて、前記不揮発性メモリに対するアクセスを制御するコントローラとを含む、半導体ディスクドライブであることを特徴とする請求項６記載の記憶装置。
【請求項１０】
情報処理装置本体と、
前記本体内に設けられた記憶装置であって、筐体と、前記筐体内に設けられた複数のドライブと、前記筐体内に設けられ、前記複数のドライブを一つの論理ドライブとして管理するディスクアレイ制御装置であって、前記情報処理装置本体によって指定されるアクセス対象ドライブ番号を保持する第１のレジスタと、前記情報処理装置本体から受信したコマンドが前記各ドライブの保守に使用される所定のコマンドであるか否かを判定し、前記受信したコマンドが前記所定のコマンドである場合、前記受信したコマンドを、前記第１のレジスタの前記アクセス対象ドライブ番号によって指定されるドライブに送出するパススルー処理を実行する制御手段とを含む記憶装置とを具備することを特徴とする情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は複数のドライブを一つの論理ドライブとして管理するディスクアレイ制御装置、および同ディスクアレイ制御装置を備えた記憶装置に関する。
【背景技術】
【０００２】
近年、サーバ、パーソナルコンピュータといった情報処理装置においては、ＲＡＩＤのようなディスクアレイ制御システムが使用されている。
【０００３】
ディスクアレイ制御システムは、ハードディスクドライブのような複数のドライブを一つの論理ドライブとして扱うシステムである。ディスクアレイ制御システムにおいては、データはデータブロック単位で複数のドライブに分散してライトされる。したがって、データのライトおよびリードそれぞれの性能の向上を図ることができる。
【０００４】
特許文献１には、複数のディスクドライブから構成されるアレイディスクを制御するディスクアレイコントローラが開示されている。このディスクアレイコントローラは、各ディスクドライブのファームウェアをアップデートできるようにするために、複数のディスクドライブをアレイディスクとして使用するか、単体のディスクドライブとして使用するかを指定するフラグが格納される記憶部を備えている。ディスクアレイコントローラは、上述のフラグが“１”の場合は、複数のディスクドライブをアレイ制御するための処理を実行する。一方、上述のフラグが“０”の場合には、ディスクアレイコントローラは、システム装置が各ディスクドライブを単体のディスクドライブとしてアクセスすることを可能にする。
【特許文献１】特開２００７−１８８３７２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかし、特許文献１のディスクアレイコントローラにおいては、上述のフラグが“０”の場合には、アレイ制御のための処理は一切行われず、データリード／ライトコマンドを含む、システムからの全てのコマンドが、あるディスクドライブに直接送られる。したがって、複数のディスクドライブがアレイ制御されているシステム稼働中に、もしフラグを“０”に設定すると、アレイディスク上に構築されたデータ構造が破壊されてしまう可能性がある。よって、システム稼働中にファームウェアのアップデートを行うことは実際上困難である。
【０００６】
したがって、オペレーティングシステムが動作している状態であっても各ドライブの保守に関する処理を実行することができる新たな機能の実現が必要である。
【０００７】
本発明は上述の事情を考慮してなされたものであり、オペレーティングシステムが動作している状態であっても個々のドライブの保守に関する処理を実行することができるディスクアレイ制御装置および記憶装置を提供することを目的とする。
【課題を解決するための手段】
【０００８】
上述の課題を解決するため、本発明の一観点によれば、複数のドライブを一つの論理ドライブとして管理するディスクアレイ制御装置であって、ホストによって指定されるアクセス対象ドライブ番号を保持する第１のレジスタと、前記ホストから受信したコマンドが前記各ドライブの保守に使用される所定のコマンドであるか否かを判定し、前記受信したコマンドが前記所定のコマンドである場合、前記受信したコマンドを、前記第１のレジスタの前記アクセス対象ドライブ番号によって指定されるドライブに送出するパススルー処理を実行する制御手段とを具備することを特徴とするディスクアレイ制御装置が提供される。
【０００９】
また、本発明の別の観点によれば、筐体と、前記筐体内に設けられた複数のドライブと、前記筐体内に設けられ、前記複数のドライブを一つの論理ドライブとして管理するディスクアレイ制御装置であって、ホストによって指定されるアクセス対象ドライブ番号を保持する第１のレジスタと、前記ホストから受信したコマンドが前記各ドライブの保守に使用される所定のコマンドであるか否かを判定し、前記受信したコマンドが前記所定のコマンドである場合、前記受信したコマンドを、前記第１のレジスタの前記アクセス対象ドライブ番号によって指定されるドライブに送出するパススルー処理を実行する制御手段とを具備することを特徴とする記憶装置が提供される。
【００１０】
さらに本発明のまた別の観点によれば、情報処理装置本体と、前記本体内に設けられた記憶装置であって、筐体と、前記筐体内に設けられた複数のドライブと、前記筐体内に設けられ、前記複数のドライブを一つの論理ドライブとして管理するディスクアレイ制御装置であって、前記情報処理装置本体によって指定されるアクセス対象ドライブ番号を保持する第１のレジスタと、前記情報処理装置本体から受信したコマンドが前記各ドライブの保守に使用される所定のコマンドであるか否かを判定し、前記受信したコマンドが前記所定のコマンドである場合、前記受信したコマンドを、前記第１のレジスタの前記アクセス対象ドライブ番号によって指定されるドライブに送出するパススルー処理を実行する制御手段とを含む記憶装置とを具備することを特徴とする情報処理装置が提供される。
【発明の効果】
【００１１】
本発明によれば、オペレーティングシステムが動作している状態であっても個々のドライブの保守に関する処理を実行することができる。
【発明を実施するための最良の形態】
【００１２】
以下、図面を参照して、本発明の実施形態を説明する。  
まず、図１を参照して、本発明の一実施形態に係る記憶装置の構成例を説明する。この記憶装置は、例えば、ＡＴＡ規格に準拠したストレージデバイスとして実現されている。このストレージデバイス１２は、サーバ、パーソナルコンピュータといった情報処理装置１の外部記憶装置として機能するドライブ装置である。情報処理装置１の情報処理装置本体内には、ホスト１１とストレージデバイス１２とが設けられる。ホスト１１は情報処理装置１のコアユニットであり、各種プログラムを実行するＣＰＵ、およびメモリ等から構成される。ストレージデバイス１２は、シリアルＡＴＡのようなＡＴＡインタフェースを介してホスト１１に接続される。
【００１３】
ストレージデバイス１２は、ＲＡＩＤコントローラ２０１と、複数のドライブ２１０ととから構成されている。ＲＡＩＤコントローラ２０１は、複数のドライブ２１０を一つの論理ドライブとして扱うためのディスクアレイコントローラである。本実施形態では、ＲＡＩＤコントローラ２０１と、ｎ台のドライブ２１０とがストレージデバイス１２の筐体内に設けられている。ここでｎは２以上の整数である。
【００１４】
ＲＡＩＤコントローラ２０１は、ホスト１１とｎ台のドライブ２１０との間に介在している。ＲＡＩＤコントローラ２０１は、ホスト側ＡＴＡインタフェース１０１と、ｎ個のドライブ側ＡＴＡインタフェース１１１とを有している。ＲＡＩＤコントローラ２０１はホスト側ＡＴＡインタフェース１０１を介してホスト１１に接続されている。また、ＲＡＩＤコントローラ２０１のｎ個のドライブ側ＡＴＡインタフェース１１１には、ｎ台のドライブ２１０がそれぞれ接続されている。
【００１５】
各ドライブ２１０は、ＡＴＡ規格に準拠したドライブであるＡＴＡデバイスとして機能する。各ドライブ２１０は、例えば、ハードディスクドライブ（ＨＤＤ）、またはソリッドステートドライブ（ＳＳＤ）から構成されている。ＳＳＤは、ＭＡＮＤ型フラッシュメモリのような不揮発性半導体メモリにデータを格納する半導体ディスクドライブである。
【００１６】
ＲＡＩＤコントローラ２０１は、ｎ台のドライブ２１０をホスト１１に一つのドライブとして見せるためのコントローラである。ＲＡＩＤコントローラ２０１およびｎ台のドライブ２１０内に内蔵されているので、ストレージデバイス１２は、ホスト１１からは一つのＡＴＡデバイスとしてアクセスされる。ＲＡＩＤコントローラ２０１はデータのリードおよびライト性能の向上を図るために、データをｎ台のドライブ２１０に跨って分散する。ＲＡＩＤコントローラ２０１には、ＲＡＩＤ０、ＲＡＩＤ３、ＲＡＩＤ５のような様々なＲＡＩＤレベルを適用可能である。本実施形態では、ＲＡＩＤコントローラ２０１が、例えばＲＡＩＤ０に対応するディススクアレイコントローラとして実現されている場合を想定する。
【００１７】
ＲＡＩＤコントローラ２０１は、ＲＡＩＤコントローラ２０１配下のｎ台のドライブ２１０を個々にホスト１１から直接的にアクセスできるようにするためのコマンドパススルー制御機能を有している。このコマンドパススルー制御機能は、例えば、ドライブの保守に関するホスト１１からの所定のコマンドのみをｎ台のドライブ２１０内の任意のドライブに直接的に送出する（パススルー）ことができる。このコマンドパススルー制御機能を実現するために、ＲＡＩＤコントローラ２０１はパススルー制御レジスタ３００を備えている。パススルー制御レジスタ３００は、ホスト１１がＡＴＡ規格で規定されたコマンドを用いてアクセス可能なレジスタである。パススルー制御レジスタ３００は、例えば、ホスト１１によって指定されるアクセス対象ドライブ番号を保持するために使用される。
【００１８】
ＲＡＩＤコントローラ２０１内の制御モジュール４００は、ＲＡＩＤコントローラ２０１の動作を制御するプロセッサである。制御モジュール４００は、図２のフローチャートに示されているように、ホスト１１から送信されるコマンドを受信する（ステップＳ１１）。そして、制御モジュール４００は、受信したコマンドがドライブの保守に使用される所定のコマンドであるか否かを判定する（ステップＳ１２）。受信したコマンドが所定のコマンドである場合、制御モジュール４００は、受信したコマンドを、ホスト１１によってパススルー制御レジスタ３００に設定されたアクセス対象ドライブ番号によって指定されるドライブに送出するパススルー処理を実行する（ステップＳ１３）。例えば、ドライブ番号０を指定するアクセス対象ドライブ番号がパススルー制御レジスタ３００にセットされている状態で、ホスト１１が上述の所定のコマンドをストレージデバイス１２に送信したならば、ＲＡＩＤコントローラ２０１の制御モジュール４００は、ホスト１１から受信したコマンドを、ドライブ番号０に対応するドライブ（ＡＴＡドライブ０）に送出する。一方、受信したコマンドが所定のコマンドではない場合、例えば、受信したコマンドがデータリード／ライトコマンドであるならば、制御モジュール４００は、ｎ台のドライブ２１０に跨ったデータのリード／ライトを実行するためのＲＡＩＤ制御処理を実行する（ステップＳ１４）。
【００１９】
上述の所定のコマンドとしては、ダウンロードマイクロコードコマンド（DOWNLOAD MICROCODE  コマンド）を使用することができる。DOWNLOAD MICROCODE  コマンドは、ホスト１１がドライブのマイクロコード（ファームウェア）を変更するために使用するＡＴＡコマンドである。
【００２０】
また、上述の所定のコマンドとして、スマートコマンド（SMARTコマンド）を使用することもできる。SMARTコマンドは、ドライブ２１０内に格納されるログページ構造（SMART情報）をリードまたはライトするためのＡＴＡコマンドである。
【００２１】
このように、本実施形態のコマンドパススルー制御機能は、ホスト１１からのコマンドの内、DOWNLOAD MICROCODEコマンド、SMARTコマンドのような、ある限られた所定のコマンドに対応する動作にしか影響を与えない。よって、ホスト１１上でオペレーティングシステムが実行されている期間中においても、コマンドパススルー制御機能を利用することが出来る。つまり、オペレーティングシステムが動作している状態であっても、ｎ台のドライブ２１０に跨って記録されたデータ構造に影響を与えることなく、各ドライブの保守に関する処理（マイクロコードの変更、ログデータのリード／ライト、等）を実行することができる。
【００２２】
さらに、本実施形態のコマンドパススルー制御機能は、ホスト１１からの全ての種類のコマンドを、パススルー制御レジスタ３００に設定されたアクセス対象ドライブ番号によって指定されるドライブに送出するパススルーモードも有している。このパススルーモードは、例えば、ストレージデバイス１２の出荷時などにおいて、各ドライブ２１０の動作を評価するために使用することが出来る。
【００２３】
パススルー制御レジスタ３００は、ドライブ選択レジスタ３０１、パススルーモード（ＰＴＭ）レジスタ３０２、およびページ選択レジスタ３０３を含んでいる。これらドライブ選択レジスタ３０１、パススルーモード（ＰＴＭ）レジスタ３０２、およびページ選択レジスタ３０３に対するアクセスには、セルアテストの結果等の各種ログ情報を格納するためのログページ構造（SMARTログページ構造）に割り当てられたログアドレス範囲内に属する、ベンダー固有の第１の所定のログアドレスに対するログデータのライトを指定するスマートコマンド（第１の所定のログアドレスに対するSMART WRITE LOGコマンド、または第１の所定のログアドレスに対するWRITE LOG EXTコマンド）を使用し得る。すなわち、各ドライブに格納されるログページ構造には、図３に示すように、ログアドレス範囲（００ｈ〜ＦＦｈ）が割り当てられており、ログページ構造は２５６ページから構成されている。ログアドレス範囲（００ｈ〜ＦＦｈ）の内、Ａ０ｈ〜ＢＦｈはベンダー固有（ＶＥＮＤＯＲ  ＳＰＥＣＩＦＩＣ）のアドレス群（ページ群）である。ＶＥＮＤＯＲ  ＳＰＥＣＩＦＩＣのアドレスは、ストレージデバイス１２の製造元（ベンダー）の固有の目的のために予約されたアドレスである。本実施形態では、例えば、ログアドレスＡ０ｈ（ページＡ０ｈとも云う）に対するスマートライトコマンドがパススルー制御レジスタ３００のアクセスに使用される。
【００２４】
パススルー制御レジスタ３００に対するアクセスはベンダー固有コマンド（ＶＥＮＤＯＲ  ＳＰＥＣＩＦＩＣコマンド）を用いても実現し得る。しかし、ホスト１１によって実行されるドライバソフトウェアやホスト１１内のブリッジによっては、コマンドプロトコルが定義されていないベンダー固有コマンドをサポートしていないものがある。本実施形態では、プロトコルが定義されているスマートコマンドをパススルー制御レジスタ３００に対するアクセスに使用しているため、高い互換性を得ることができる。
【００２５】
ドライブ選択レジスタ３０１はホスト１１によって指定されるアクセス対象ドライブ番号を保持するためのレジスタである。パススルーモード（ＰＴＭ）レジスタ３０２は、ホスト１１によって指定される動作モードを保持するレジスタである。動作モードには、ホスト１１からの全ての種類のコマンドを、アクセス対象ドライブ番号によって指定されるドライブに送出するための上述のパススルーモードがある。さらに、動作モードには、ログページモード、およびスマートリードデータ（SMART READ DATA）モードがある。
【００２６】
ログページモードは、ログページ構造に割り当てられたログアドレス範囲内に属する、ベンダー固有の第２の所定のログアドレスに対するスマートコマンド（第２の所定のログアドレスに対するSMART READ LOGコマンド、または第２の所定のログアドレスに対するSMART WRITE LOGコマンド）を用いて、ログページ構造（SMART情報）をリード／ライトするためのモードである。この場合、ログページ構造内のアクセス対象のページ（ログアドレス）は、ページ選択レジスタ３０３に保持されているアクセス対象ログアドレスによって指定される。第２の所定のログアドレスとしては、例えば、ログアドレスＡ１ｈ（ページＡ１ｈとも云う）が使用される。つまり、ページＡ１ｈは、ログページ構造をアクセスするためのウィンドウとして使用される。
【００２７】
SMART READ DATAモードは、ログページ構造に割り当てられたログアドレス範囲内に属する、ベンダー固有の第２の所定のログアドレスに対するスマートコマンド（第２の所定のログアドレスに対するSMART READ LOGコマンド、または第２の所定のログアドレスに対するSMART WRITE LOGコマンド）を用いて、上述のログページ構造とは別のスマート情報であるスマートデータ構造をリードするためのモードである。SMART READ DATAモードにおいては、ページ選択レジスタ３０３は使用されず、スマートデータ構造全体がホスト１１にリターンされる。
【００２８】
図４は、ページＡ０ｈに割り当てられたパススルー制御レジスタ３００の構成例を示している。
【００２９】
ページＡ０ｈに対応する５１２バイトのデータ記憶領域の内、バイト０に対応するデータ記憶領域はドライブ選択レジスタ３０１として使用される。バイト０のｂｉｔ７＝０は、ＲＡＩＤコントローラ２０１を示し、ｂｉｔ７＝１は、ＡＴＡドライブを示す。バイト０のｂｉｔ６−０は、アクセス対象ドライブ番号（アクセス対象ＡＴＡドライブ番号）を示す。ｂｉｔ７＝１の時、ｂｉｔ６−０によって指定されるドライブ２１０がアクセス対象となる。
【００３０】
ページＡ０ｈに対応する５１２バイトのデータ領域の内、バイト１のデータ領域はページ選択レジスタ３０３として使用される。バイト２の１バイトデータの値は、アクセス対象ログアドレス（アクセス対象ログページ）を示す。
【００３１】
ページＡ０ｈに対応する５１２バイトのデータ領域の内、バイト２のデータ領域はＰＴＭレジスタ３０２として使用される。バイト２の１バイトデータ＝００ｈは、ログページモードを示す。バイト２の１バイトデータ＝０１ｈは、SMART READ DATAモードを示す。バイト２の１バイトデータ＝ＦＦｈは、パススルーモードを示す。
【００３２】
制御モジュール４００は、ホスト１１から受信したコマンドが、ログページＡ０ｈに対するログデータのライトを指定するスマートコマンドである場合、アクセス対象ドライブ番号、アクセス対象ログアドレス、または動作モード（ログページモード、SMART READ DATAモード、パススルーモード）をパススルー制御レジスタ３００にセットするために、ホスト１１からのデータ（５１２バイトのログデータ）をパススルー制御レジスタ３００にライトする。
【００３３】
パススルーモード以外の動作モードにおいては、DOWNLOAD MICROCODEコマンドと、ログページＡ１ｈに対するスマートコマンドがドライブ２１０にパススルーされる所定のコマンドとなる。
【００３４】
このように、本実施形態のＲＡＩＤコントローラ２０１は、DOWNLOAD MICROCODEコマンド（以下ＤＬＭＣコマンドと称する）による直接アクセス、SMARTコマンドによる直接アクセス、および、パススルーモードによる直接アクセスの３種類の直接アクセス方式を提供することができる。
【００３５】
ＲＡＩＤコントローラ２０１にはドライブ選択レジスタ３０１、ページ選択レジスタ３０３、パススルーモードレジスタ（ＰＴＭレジスタ）３０２が設けられており、これらレジスタの値の組み合わせでＲＡＩＤコントローラ２０１の動作を変えることができる。
【００３６】
パススルー制御レジスタ３００（ドライブ選択レジスタ３０１、ページ選択レジスタ３０３、およびＰＴＭレジスタ３０２）は、電源投入時、および、ソフトウェアリセットでクリアされる。パススルー制御レジスタ３００のデフォルト値はオール零である。
【００３７】
パススルー制御レジスタ３００の値は、ホスト１１からのページＡ０ｈに対するSMART WRITE LOGコマンド、またはホスト１１からのページＡ０ｈに対するWRITE LOG EXTコマンドで変更できる。
【００３８】
以下、ＲＡＩＤコントローラ２０１によって実行されるパススルー制御動作を具体的に説明する。
【００３９】
＜ＤＬＭＣコマンドに対するパススルー制御＞
ＰＴＭレジスタ３０２がＦＦｈ以外のときは、図５に示すように、ドライブ選択レジスタ３０１の値に応じて、ＤＬＭＣコマンドに対するパススルー制御動作が変わる。
【００４０】
ＰＴＭレジスタ３０２がＦＦｈ以外の場合において、ドライブ選択レジスタ３０１のｂｉｔ７が０のときは、ＤＬＭＣコマンドのパススルー先（アクセス先）はＲＡＩＤコントローラ２０１自身となる。つまり、ＲＡＩＤコントローラ２０１のマイクロコードの変更が行われる。ドライブ選択レジスタ３０１のｂｉｔ７が１のときは、ＤＬＭＣコマンドのパススルー先は、ドライブ選択レジスタ３０１のｂｉｔ６−０が示すＡＴＡドライブにパススルーされる。例えば、ｂｉｔ６−０が示すＡＴＡドライブ番号がｋならば、ドライブ番号ｋのドライブにＤＬＭＣコマンドがパススルーされる。
【００４１】
ＰＴＭレジスタ３０２がＦＦｈの場合においては、ドライブ選択レジスタ３０１のｂｉｔ７の値は使用されず、ホスト１１かせの全てのコマンドが、ドライブ選択レジスタ３０１のｂｉｔ６−０が示すＡＴＡドライブにパススルーされる。
【００４２】
＜スマートコマンドに対するパススルー制御＞
ＰＴＭレジスタ３０２がＦＦｈ以外のときは、図６に示すように、ページＡ１ｈに対するスマートコマンドは、ドライブ選択レジスタ３０１のｂｉｔ６−０が示すＡＴＡドライブにパススルーされる。一方、ページＡ１ｈ以外のページに対するスマートコマンドのパススルー先（アクセス先）はＲＡＩＤコントローラ２０１自身となる。
【００４３】
スマートコマンドには、ログページ構造内のあるページのログをリード／ライトアクセスするためのコマンド（SMART READ LOGコマンド，SMART WRITE LOGコマンド，READ LOG EXTコマンド，WRITE LOG EXTコマンド）と、スマートデータ構造をリードするためのコマンド（SMART READ DATAコマンド）とがある。本実施形態では、ログページ構造またはスマートデータ構造のどちらをアクセスする場合であっても、ホスト１１は、ページＡ１ｈに対するスマートコマンドを使用する。
【００４４】
まず、ログページに対するアクセスについて説明する。
【００４５】
ＰＴＭレジスタ３０２が００ｈのときは、ホスト１１は、ページＡ１ｈを通して、ＡＴＡドライブのＬｏｇページにアクセスすることができる。ページＡ１ｈに対するSMART READ LOGコマンドまたはページＡ１ｈに対するSMART WRITE LOGコマンドは、ドライブ選択レジスタ３０１のｂｉｔ６−０が示すＡＴＡドライブの、ページ選択レジスタ３０３が示すページ番号へのSMART READ/WRITE LOGコマンドとしてパススルーされる。例えば、ドライブ選択レジスタ３０１のｂｉｔ６−０が示すＡＴＡドライブ番号がｋであり、ページ選択レジスタ３０３が示すページ番号がｊであれば、ページ番号ｊに対するSMART READ LOGコマンドまたはページ番号ｊに対するSMART WRITE LOGコマンドが、ドライブ番号ｋのドライブに送信される。
【００４６】
ページＡ１ｈに対するREAD LOG EXTコマンドまたはページＡ１ｈに対するWRITE LOG EXTコマンドは、ドライブ選択レジスタ３０１のｂｉｔ６−０が示すＡＴＡドライブの、ページ選択レジスタ３０３が示すページ番号へのREAD/WRITE LOG EXTコマンドとしてパススルーされる。例えば、ドライブ選択レジスタ３０１のｂｉｔ６−０が示すＡＴＡドライブ番号がｋであり、ページ選択レジスタ３０３が示すページ番号がｊであれば、ページ番号ｊに対するREAD LOG EXTコマンドまたはページ番号ｊに対するWRITE LOG EXTコマンドが、ドライブ番号ｋのドライブに送信される。
【００４７】
次に、スマートデータに対するアクセスについて説明する。
【００４８】
ＰＴＭレジスタが０１ｈのときは、ホスト１１は、ページＡ１ｈを通して、ＡＴＡドライブのSMART READ DATAにアクセスすることができる。
【００４９】
ページＡ１ｈに対するSMART READ LOGコマンドまたはページＡ１ｈに対するREAD LOG EXTコマンドは、ドライブ選択レジスタ３０１のｂｉｔ６−０が示すＡＴＡドライブへのSMART READ DATAコマンドとしてパススルーされる。つまり、ページＡ１ｈに対するSMART READ LOGコマンドまたはページＡ１ｈに対するREAD LOG EXTコマンドはＲＡＩＤコントローラ２０１によってSMART READ DATAコマンドに変換される。もしドライブ選択レジスタ３０１のｂｉｔ６−０が示すＡＴＡドライブ番号がｋであれば、SMART READ DATAコマンドは、ドライブ番号ｋのドライブに送信される。
【００５０】
＜パススルーモードにおけるパススルー制御＞
ＰＴＭレジスタ３０２がＦＦｈのとき、すべてのコマンドはドライブ選択レジスタのｂｉｔ６−０が示すＡＴＡドライブにパススルーされる。
【００５１】
パススルーモードの解除には、ソフトウェアリセットが使用される。動作モードが一旦パススルーモードに設定された後は、ページＡ０ｈに対するスマートコマンドを含む全てのコマンドがパススルーされてしまうため、ホスト１１からのコマンドによってパススルー制御レジスタ３００の内容を更新することができないからである。
【００５２】
次に、図７のフローチャートを参照して、制御モジュール４００によって実行されるパススルー制御レジスタ３００に対するアクセス処理について説明する。
【００５３】
制御モジュール４００は、ホスト１１から送信されるコマンドを受信する（ステップＳ２１）。制御モジュール４００は、受信したコマンドがページＡ０ｈに対するログデータのライトを指定するスマートコマンドであるか否かを判定する（ステップＳ２２）。受信したコマンドがページＡ０ｈに対するログデータのライトを指定するスマートコマンドであれば、制御モジュール４００は、パススルー制御レジスタ３００をライトアクセスして、ホスト１１からのログデータをパススルー制御レジスタ３００にライトする（ステップＳ２３）。受信したコマンドがページＡ０ｈに対するログデータのライトを指定するスマートコマンドではないならば、制御モジュール４００は、他の処理（コマンド処理）を実行する（ステップＳ２４）。
【００５４】
次に、図８のフローチャートを参照して、制御モジュール４００によって実行されるＤＬＭＣコマンドに対するパススルー制御処理について説明する。
【００５５】
制御モジュール４００は、ＰＴＭレジスタ３０２の値がＦＦｈであるか否かを判定する（ステップＳ３１）。ＰＴＭレジスタ３０２の値がＦＦｈの場合、つまりＲＡＩＤコントローラ２０１の動作モードがパススルーモードである場合には、制御モジュール４００は、ホスト１１からの全てのコマンドを、ドライブ選択レジスタ３０１のｂｉｔ６−０が示すＡＴＡドライブにパススルーする（ステップＳ３２）。
【００５６】
一方、ＰＴＭレジスタ３０２の値がＦＦｈ以外であるならば、制御モジュール４００は、ホスト１１からコマンドを受信する度に、その受信したコマンドがＤＬＭＣコマンドであるか否かを判定する（ステップＳ３３，Ｓ３４）。受信したコマンドがＤＬＭＣコマンドであるならば、制御モジュール４００は、受信したコマンドを、ドライブ選択レジスタ３０１のｂｉｔ６−０が示すＡＴＡドライブにパススルーする（ステップＳ３５）。一方、受信したコマンドがＤＬＭＣコマンド以外のコマンドであるならば、制御モジュール４００は、他の処理を実行する（ステップＳ３６）。
【００５７】
次に、図９のフローチャートを参照して、制御モジュール４００によって実行されるスマートコマンドに対するパススルー制御処理について説明する。
【００５８】
制御モジュール４００は、ＰＴＭレジスタ３０２の値がＦＦｈであるか否かを判定する（ステップＳ４１）。ＰＴＭレジスタ３０２の値がＦＦｈの場合、つまりＲＡＩＤコントローラ２０１の動作モードがパススルーモードである場合には、制御モジュール４００は、ホスト１１からの全てのコマンドを、ドライブ選択レジスタ３０１のｂｉｔ６−０が示すＡＴＡドライブにパススルーする（ステップＳ４２）。
【００５９】
一方、ＰＴＭレジスタ３０２の値がＦＦｈ以外であるならば、制御モジュール４００は、ホスト１１からコマンドを受信する度に、その受信したコマンドがページＡ１ｈに対するスマートコマンド（ページＡ１ｈに対するSMART READ LOGコマンド、ページＡ１ｈに対するSMART WRITE LOGコマンド、ページＡ１ｈに対するREAD LOG EXTコマンド、またはページＡ１ｈに対するWRITE LOG EXTコマンド）であるか否かを判定する（ステップＳ４４，Ｓ４５）。
【００６０】
受信したコマンドがページＡ１ｈに対するスマートコマンドであるならば、制御モジュール４００は、ログページ構造又はスマートデータ構造をアクセスするためのスマートコマンドを、ドライブ選択レジスタ３０１のｂｉｔ６−０が示すＡＴＡドライブにパススルーする（ステップＳ４７−Ｓ４９）。具体的には、ステップＳ４７−Ｓ４９においては、例えば、制御モジュール４００は、動作モードがログページモードまたはSMART READ DATAモードのいずれであるかを判定する（ステップＳ４７）。動作モードがログページモードであるならば、制御モジュール４００は、ページ選択レジスタ３０３が示すページ番号ｊに対するスマートコマンド（ページｊに対するSMART READ LOGコマンド、ページｊに対するSMART WRITE LOGコマンド、ページｊに対するREAD LOG EXTコマンド、またはページｊに対するWRITE LOG EXTコマンド）を、ドライブ選択レジスタ３０１のｂｉｔ６−０が示すドライブ番号ｋのドライブに送信する（ステップＳ４８）。動作モードがSMART DATA READモードである場合には、制御モジュール４００は、ページＡ１ｈに対するSMART READ LOGコマンドまたはページＡ１ｈに対するREAD LOG EXTコマンドを、SMART READ DATAコマンドに変換する処理を実行する（ステップＳ４９）。すなわち、受信コマンドがページＡ１ｈに対するSMART READ LOGコマンドまたはページＡ１ｈに対するREAD LOG EXTコマンドであり、且つ動作モードがSMART DATA READモードである場合には、制御モジュール４００は、SMART READ DATAコマンドを、ドライブ選択レジスタ３０１のｂｉｔ６−０が示すドライブ番号ｋのドライブに送信する。
【００６１】
図１０は、ストレージデバイス１２の実装例を示している。
【００６２】
図１０においては、ストレージデバイス１２が複数のＳＳＤ、例えば２つのＳＳＤを内蔵する半導体ディスクドライブとして実現されている場合を想定する。ストレージデバイス１２は、例えば、２．５インチ型ＨＤＤと同じ外形寸法を有する筐体５００を備えている。この筐体５００内には、ＲＡＩＤコントローラ２０１が実装された回路基板５０３と、２台のＳＳＤ２１０それぞれが実装される２つの回路基板５０１，５０２とが設けられている。ＲＡＩＤコントローラ２０１は、２台のＳＳＤ２１０を、例えばＲＡＩＤレベル０のディスクアレイとして制御する。各ＳＳＤ２１０の記憶容量が１２８ＧＢである場合、ＲＡＩＤコントローラ２０１は、２台のＳＳＤ２１０を、記憶容量が２５６ＧＢの１台のＳＳＤとして扱うことが出来る。ホスト１１は、ストレージデバイス１２を記憶容量が２５６ＧＢの１台のＳＳＤ（ＡＴＡドライブ）として認識する。
【００６３】
各ＳＳＤ２１０は、コントローラ６０１と、ＤＲＡＭ６０２と、複数の不揮発性半導体メモリ６０７から構成されている。各不揮発性半導体メモリ６０７は、例えば、ＮＡＮＤ型フラッシュＥＥＰＲＯＭから構成されている。なお、ＲＡＩＤコントローラ２０１と２台のＳＳＤ２１０とを、同一の回路基板上に実装することも出来る。
【００６４】
図１０に示すような構造のストレージデバイス１２においては、各ＳＳＤ２１０を筐体５００から取り外すことは実際上困難である。本実施形態のパススルー制御機能は、ＤＬＭＣコマンド、スマートコマンドといったドライブの保守に関するコマンドのみを対象にパススルー処理を実行することができるので、オペレーティングシステムが動作している状態であっても、２台のＳＳＤ２１０に跨って記録されたユーザデータに影響を与えることなく、また各ＳＳＤ２１０を筐体５００から取り外すことなく、任意のＳＳＤ２１０に対してその保守のための処理（スマート情報の収集、ファームウェアの更新）をお個なうことができる。
【００６５】
次に、図１１を参照して、ストレージデバイス１２を内蔵した情報処理装置１の構成例を説明する。
【００６６】
情報処理装置１は、例えば、ノートブック型のポータブルコンピュータとして実現し得る。図１１は、ポータブルコンピュータとして実現された情報処理装置１の外観を示す斜視図である。
【００６７】
この情報処理装置１は、情報処理装置本体２と、ディスプレイユニット３とから構成されている。ディスプレイユニット３には、ＬＣＤ（Ｌｉｑｕｉｄ  Ｃｒｙｓｔａｌ  Ｄｉｓｐｌａｙ）４で構成される表示装置が組み込まれている。
【００６８】
ディスプレイユニット３は、情報処理装置本体２に対し、この本体２の上面が露出される開放位置と本体２の上面を覆う閉塞位置との間を回動自由に取り付けられている。本体２は薄い箱形の筐体を有しており、その上面には、電源スイッチ５、キーボード６、タッチパッド７等が配置されている。
【００６９】
また、本体２の前面には、ＬＥＤ（Light Emitting Diode）８が配置され、その右側面には、ＤＶＤ（Digital Versatile Disc）の光ディスクメディアに対するデータの書き込みおよび読み出しが可能な光ディスクドライブ（ＯＤＤ）９、ＰＣカードを取り外し自在に収容するＰＣカードスロット１０等が配置されている。そして、本情報処理装置１では、起動ドライブとして機能する外部記憶装置として、本体２の内部に、本実施形態のストレージデバイス１２が収容されている。このストレージデバイス１２は、例えば、図１０で説明したような構造を有する半導体ディスクドライブとして実現されている。情報処理装置本体２が、上述のホスト１１として機能する。
【００７０】
図１２は、図１１の情報処理装置１のシステム構成を示すブロック図である。
【００７１】
情報処理装置１は、図１２に示すように、前述のＬＣＤ４、電源スイッチ５、キーボード６、タッチパッド７、ＬＥＤ８、ＯＤＤ９、ＰＣカードスロット１０、およびストレージデバイス１２のほかに、ＣＰＵ１００、ノースブリッジ１０２、メインメモリ１０３、ＧＰＵ（Graphic Processing Unit）１０４、サウスブリッジ１０５、フラッシュメモリ１０６、ＥＣ／ＫＢＣ（Embedded Controller/Keyboard Controller）１０７、ファン１０８等を備えている。
【００７２】
ＣＰＵ１００は、情報処理装置１の動作を制御するプロセッサであり、ストレージデバイス１２からメインメモリ１０３にロードされる、オペレーティングシステムや、ユーティリティを含む各種アプリケーションプログラムを実行する。また、ＣＰＵ１００は、フラッシュメモリ１０６に格納されたＢＩＯＳ（Basic Input/Output System）も実行する。ＢＩＯＳは、ハードウェア制御のためのプログラムである。
【００７３】
ノースブリッジ１０２は、ＣＰＵ１００のローカルバスとサウスブリッジ１０５との間を接続するブリッジデバイスである。ノースブリッジ１０２は、バスを介してＧＰＵ１０４との通信を実行する機能を有しており、また、メインメモリ１０３をアクセス制御するメモリコントローラも内蔵されている。ＧＰＵ１０４は、情報処理装置１の表示装置として使用されるＬＣＤ４を制御する。
【００７４】
サウスブリッジ１０５は、ストレージデバイス１２、ＯＤＤ９、ＰＣカードスロット１０に収容されたＰＣカード、フラッシュメモリ１０６等の各種デバイスを制御するコントローラである。
【００７５】
ＥＣ／ＫＢＣ１０７は、電力管理のための組み込みコントローラと、キーボード６およびタッチパッド７を制御するためのキーボードコントローラとが集積された１チップマイクロコンピュータである。ＥＣ／ＫＢＣ１０７は、ＬＥＤ８および冷却用のファン１０８の制御も実行する。
【００７６】
以上説明したように、本実施形態のコマンドパススルー制御機能によれば、以下の効果が得られる。
【００７７】
すなわち、一般的なＲＡＩＤシステムでは、個々のドライブに直接アクセスすることができないが、本実施形態では、フィールドにおいて、個々のドライブに対するファームウェアの更新やSMART情報の収集といった保守機能を実現することができる。この場合、本実施形態のコマンドパススルー制御機能は、パススルーモード（ＰＴＭレジスタ＝ＦＦｈ）以外においては、ＤＬＭＣコマンド、および、ページＡ１ｈに対するSMART READ/WRITE LOGコマンド、ページＡ１ｈに対するREAD/WRITE LOG EXTコマンドの動作にしか影響を与えない。したがって、オペレーティングシステムが動作している期間中であって、個々のドライブに対するファームウェアの更新やSMART情報の収集といった保守処理を容易に実行することができる。
【００７８】
また、プロトコルが定義されているスマートコマンドをパススルー制御レジスタ３００のアクセスのために使用しているので、様々なホストとの高い互換性を実現することができる。
【００７９】
また、パススルーモード（ＰＴＭレジスタ＝ＦＦｈ）の実装はオプションとすることもできる。
【００８０】
なお、本実施形態に示したページ番号や、データの並び、値の意味づけは一例であって、別の定義を行っても本発明の範疇である。
【００８１】
また、ストレージデバイス１２は、例えば、ＮＡＳ（network-attached storage）デバイスのような記憶装置として実現することもできる。
【００８２】
また、本発明は、上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。更に、異なる実施形態に構成要素を適宜組み合わせてもよい。
【図面の簡単な説明】
【００８３】
【図１】本発明の一実施形態に係る記憶装置の構成例を示すブロック図。
【図２】同実施形態の記憶装置内に設けられたディスクアレイコントローラによって実行されるコマンドパススルー制御処理の手順の例を示すフローチャート。
【図３】同実施形態の記憶装置内に設けられた複数のドライブの各々に保持されるログページ構造の例を示す図。
【図４】同実施形態の記憶装置内に設けられたパススルー制御レジスタの構成例を示す図。
【図５】同実施形態の記憶装置内に設けられたディスクアレイコントローラによって実行される、ダウンロードマイクロコードコマンドに対するパススルー制御動作を説明するための図。
【図６】同実施形態の記憶装置内に設けられたディスクアレイコントローラによって実行される、スマートコマンドに対するパススルー制御動作を説明するための図。
【図７】同実施形態の記憶装置内に設けられたディスクアレイコントローラによって実行される、記憶装置内のパススルー制御レジスタに対するアクセス処理の手順の例を説明するためのフローチャート。
【図８】同実施形態の記憶装置内に設けられたディスクアレイコントローラによって実行される、ダウンロードマイクロコードコマンドに対するパススルー制御処理の手順の例を説明するためのフローチャート。
【図９】同実施形態の記憶装置内に設けられたディスクアレイコントローラによって実行される、スマートコマンドに対するパススルー制御処理の手順の例を説明するためのフローチャート。
【図１０】同実施形態の記憶装置の実装例を示す図。
【図１１】同実施形態の記憶装置が収容される本体を含む情報処理装置の外観を示す斜視図。
【図１２】図１１に示す情報処理装置の構成を示すブロック図。
【符号の説明】
【００８４】
１…情報処理装置、１１…ホスト、１２…ストレージデバイス（記憶装置）、２０１…ＲＳＩＤコントローラ、２１０…ドライブ、３００…パススルー制御レジスタ、４００…制御モジュール。
【図１】
2010108174.tif 000003
【図２】
2010108174.tif 000004
【図３】
2010108174.tif 000005
【図４】
2010108174.tif 000006
【図５】
2010108174.tif 000007
【図６】
2010108174.tif 000008
【図７】
2010108174.tif 000009
【図８】
2010108174.tif 000010
【図９】
2010108174.tif 000011
【図１０】
2010108174.tif 000012
【図１１】
2010108174.tif 000013
【図１２】
2010108174.tif 000014