(57)【要約】【課題】  メモリコントローラとメモリモジュールとの間をシリアルインターフェースとした場合でも十分な信頼性を確保できる記憶デバイス制御装置を提案する。【解決手段】  本発明の記憶デバイス制御装置は情報処理装置からのファイル単位でのデータ入出力要求に応答して記憶デバイスに対するＩ／Ｏ要求を出力するチャネル制御部を備える。チャネル制御部はファイル単位でのデータ入出力要求を受信するＣＰＵと、ＣＰＵの指令に応答してファイル単位でのデータ入出力要求に対応するＩ／Ｏ要求を出力するＩ／Ｏプロセッサと、ＣＰＵのファイルアクセス処理に要する情報を記憶するメモリシステムを備える。メモリシステムは複数のメモリモジュールと、メモリコントローラとを備えており、メモリモジュールとメモリコントローラとは二重化されたシリアルインターフェースで接続されている。【選択図】    図１３
2006065697.tif 000002
【特許請求の範囲】
【請求項１】
情報処理装置からのファイル単位でのデータ入出力要求に応答して記憶デバイスに対するＩ／Ｏ要求を出力するチャネル制御部を備えた記憶デバイス制御装置であって、
前記チャネル制御部は、
前記ファイル単位でのデータ入出力要求を受信するＣＰＵと、
前記ＣＰＵの指令に応答して前記ファイル単位でのデータ入出力要求に対応するＩ／Ｏ要求を出力するＩ／Ｏプロセッサと、
前記ＣＰＵのファイルアクセス処理に要する情報を一時記憶するメモリシステムであって、複数のメモリモジュールと、前記複数のメモリモジュールへのメモリアクセスを制御するメモリコントローラとを備え、前記メモリコントローラから前記各メモリモジュールへのコマンド、アドレス、及びデータの伝送がシリアル伝送によって行われるメモリシステムと、
を備え、
前記メモリモジュールは複数のメモリ素子とバッファ部とを備え、
前記バッファ部はシリアル伝送される前記メモリコントローラからのコマンドを受信してこれを解析し、前記メモリコントローラから前記各メモリ素子へのメモリアクセスを制御するとともに、シリアル伝送された前記データをパラレル変換して前記各メモリ素子に伝送するように構成されており、
前記メモリコントローラと前記メモリシステムとは二重化されたシリアルインターフェースで接続されている、記憶デバイス制御装置。
【請求項２】
情報処理装置からのファイル単位でのデータ入出力要求に応答して記憶デバイスに対するＩ／Ｏ要求を出力するチャネル制御部を備えた記憶デバイス制御装置であって、
前記チャネル制御部は、
前記ファイル単位でのデータ入出力要求を受信するＣＰＵと、
前記ＣＰＵの指令に応答して前記ファイル単位でのデータ入出力要求に対応するＩ／Ｏ要求を出力するＩ／Ｏプロセッサと、
前記ＣＰＵのファイルアクセス処理に要する情報を一時記憶するメモリシステムであって、複数のメモリモジュールから成る第１系列及び第２系列のメモリモジュール群と、前記各系統に属するメモリモジュールへのメモリアクセスを制御するメモリコントローラと、前記メモリコントローラから前記各メモリモジュールへのメモリアクセス経路をスイッチング制御する制御回路とを備え、前記メモリコントローラから前記各メモリモジュールへのコマンド、アドレス、及びデータの伝送がシリアル伝送によって行われるメモリシステムと、
を備え、
前記メモリモジュールは複数のメモリ素子とバッファ部とを備え、
前記バッファ部はシリアル伝送される前記メモリコントローラからのコマンドを受信してこれを解析し、前記メモリコントローラから前記各メモリ素子へのメモリアクセスを制御するとともに、シリアル伝送された前記データをパラレル変換して前記各メモリ素子に伝送するように構成されており、
前記メモリコントローラから前記第１系列のメモリモジュール群に属するメモリモジュールにメモリアクセスする第１のアクセスパスと、前記メモリコントローラから前記第２系列のメモリモジュール群に属するメモリモジュールにメモリアクセスする第２のアクセスパスが異なるように前記メモリコントローラと前記各メモリモジュールとがシリアルインターフェース接続されており、
前記制御回路は前記メモリコントローラから前記第１系列のメモリモジュールにライトアクセスがなされたときに、前記第１のアクセスパスを経由して前記第１系列のメモリモジュールに書き込まれるデータと同一の内容のデータを前記第２のアクセスパスを経由して前記第２系列のメモリモジュールに書き込むように構成されている、記憶デバイス制御装置。
【請求項３】
情報処理装置からのファイル単位でのデータ入出力要求に応答して記憶デバイスに対するＩ／Ｏ要求を出力するチャネル制御部を備えた記憶デバイス制御装置であって、
前記チャネル制御部は、
前記ファイル単位でのデータ入出力要求を受信するＣＰＵと、
前記ＣＰＵの指令に応答して前記ファイル単位でのデータ入出力要求に対応するＩ／Ｏ要求を出力するＩ／Ｏプロセッサと、
前記ＣＰＵのファイルアクセス処理に要する情報を一時記憶するメモリシステムであって、複数のメモリモジュールと、前記複数のメモリモジュールへのメモリアクセスを制御するメモリコントローラとを備え、前記メモリコントローラから前記各メモリモジュールへのコマンド、アドレス、及びデータの伝送がシリアル伝送によって行われるメモリシステムと、
を備え、
前記メモリモジュールは複数のメモリ素子とバッファ部とを備え、
前記バッファ部はシリアル伝送される前記メモリコントローラからのコマンドを受信してこれを解析し、前記メモリコントローラから前記各メモリ素子へのメモリアクセスを制御するとともに、シリアル伝送された前記データをパラレル変換して前記各メモリ素子に伝送するように構成されており、
前記メモリコントローラはシリアルインターフェース信号線を通じて前記各メモリモジュールのバッファ部とループ接続するための第１及び第２のメモリインターフェース部を備え、
前記メモリコントローラは前記第１及び第２のメモリインターフェースの何れからも前記各メモリモジュールにメモリアクセス可能に構成されている、記憶デバイス制御装置。
【請求項４】
情報処理装置からのファイル単位でのデータ入出力要求に応答して記憶デバイスに対するＩ／Ｏ要求を出力するチャネル制御部を備えた記憶デバイス制御装置であって、
前記チャネル制御部は、
前記ファイル単位でのデータ入出力要求を受信するＣＰＵと、
前記ＣＰＵの指令に応答して前記ファイル単位でのデータ入出力要求に対応するＩ／Ｏ要求を出力するＩ／Ｏプロセッサと、
前記ＣＰＵのファイルアクセス処理に要する情報を一時記憶するメモリシステムであって、複数のメモリモジュールと、前記複数のメモリモジュールへのメモリアクセスを制御するメモリコントローラとを備え、前記メモリコントローラから前記各メモリモジュールへのコマンド、アドレス、及びデータの伝送がシリアル伝送によって行われるメモリシステムと、
を備え、
前記メモリモジュールは複数のメモリ素子とバッファ部とを備え、
前記バッファ部はシリアル伝送される前記メモリコントローラからのコマンドを受信してこれを解析し、前記メモリコントローラから前記各メモリ素子へのメモリアクセスを制御するとともに、シリアル伝送された前記データをパラレル変換して前記各メモリ素子に伝送するように構成されており、
前記メモリコントローラと前記各メモリモジュールのバッファ部とは二重化されたシリアルインターフェース信号線で接続されている、記憶デバイス制御装置。
【請求項５】
請求項１乃至請求項４のうち何れか１項に記載の記憶デバイス制御装置であって、
前記バッファ部は前記メモリ素子に書き込まれるデータに基づいてＥＣＣを生成するＥＣＣ生成部を更に備える、記憶デバイス制御装置。
【請求項６】
請求項５に記載の記憶デバイス制御装置であって、
前記メモリコントローラは前記ＣＰＵ内部に形成されている、記憶デバイス制御装置。
【請求項７】
情報処理装置からの入出力要求に応答して記憶デバイスに読み書きされるブロックデータを一次記憶するキャッシュメモリを備えた記憶デバイス制御装置であって、
前記キャッシュメモリは、複数のキャッシュメモリモジュールと、前記複数のキャッシュメモリモジュールへのメモリアクセスを制御するキャッシュメモリコントローラとを備え、前記キャッシュメモリコントローラから前記各キャッシュメモリモジュールへのコマンド、アドレス、及びデータの伝送がシリアル伝送によって行われるメモリシステムと、
を備え、
前記キャッシュメモリモジュールは複数のメモリ素子とバッファ部とを備え、
前記バッファ部はシリアル伝送される前記キャッシュメモリコントローラからのコマンドを受信してこれを解析し、前記キャッシュメモリコントローラから前記各メモリ素子へのメモリアクセスを制御するとともに、シリアル伝送された前記データをパラレル変換して前記各メモリ素子に伝送するように構成されており、
前記キャッシュメモリコントローラと前記キャッシュメモリとは二重化されたシリアルインターフェースで接続されている、記憶デバイス制御装置。
【請求項８】
情報処理装置からの入出力要求に応答して記憶デバイスに読み書きされるブロックデータを一次記憶するキャッシュメモリを備えた記憶デバイス制御装置であって、
前記キャッシュメモリは、複数のキャッシュメモリモジュールから成る第１系列及び第２系列のキャッシュメモリモジュール群と、前記各系統に属するキャッシュメモリモジュールへのメモリアクセスを制御するキャッシュメモリコントローラと、前記キャッシュメモリコントローラから前記各キャッシュメモリモジュールへのメモリアクセス経路をスイッチング制御する制御回路とを備え、前記キャッシュメモリコントローラから前記各キャッシュメモリモジュールへのコマンド、アドレス、及びデータの伝送がシリアル伝送によって行われるように構成されており、
前記キャッシュメモリモジュールは複数のメモリ素子とバッファ部とを備え、
前記バッファ部はシリアル伝送される前記キャッシュメモリコントローラからのコマンドを受信してこれを解析し、前記キャッシュメモリコントローラから前記各メモリ素子へのメモリアクセスを制御するとともに、シリアル伝送された前記データをパラレル変換して前記各メモリ素子に伝送するように構成されており、
前記キャッシュメモリコントローラから前記第１系列のキャッシュメモリモジュール群に属するキャッシュメモリモジュールにメモリアクセスする第１のアクセスパスと、前記キャッシュメモリコントローラから前記第２系列のキャッシュメモリモジュール群に属するキャッシュメモリモジュールにメモリアクセスする第２のアクセスパスが異なるように前記キャッシュメモリコントローラと前記各キャッシュメモリモジュールとがシリアルインターフェース接続されており、
前記制御回路は前記キャッシュメモリコントローラから前記第１系列のキャッシュメモリモジュールにライトアクセスがなされたときに、前記第１のアクセスパスを経由して前記第１系列のキャッシュメモリモジュールに書き込まれるデータと同一の内容のデータを前記第２のアクセスパスを経由して前記第２系列のキャッシュメモリモジュールに書き込むように構成されている、記憶デバイス制御装置。
【請求項９】
情報処理装置からの入出力要求に応答して記憶デバイスに読み書きされるブロックデータを一次記憶するキャッシュメモリを備えた記憶デバイス制御装置であって、
前記キャッシュメモリは、複数のキャッシュメモリモジュールと、前記複数のキャッシュメモリモジュールへのメモリアクセスを制御するキャッシュメモリコントローラとを備え、前記キャッシュメモリコントローラから前記各キャッシュメモリモジュールへのコマンド、アドレス、及びデータの伝送がシリアル伝送によって行われるように構成されており、
前記キャッシュメモリモジュールは複数のメモリ素子とバッファ部とを備え、
前記バッファ部はシリアル伝送される前記キャッシュメモリコントローラからのコマンドを受信してこれを解析し、前記キャッシュメモリコントローラから前記各メモリ素子へのメモリアクセスを制御するとともに、シリアル伝送された前記データをパラレル変換して前記各メモリ素子に伝送するように構成されており、
前記キャッシュメモリコントローラはシリアルインターフェース信号線を通じて前記各キャッシュメモリモジュールのバッファ部とループ接続するための第１及び第２のメモリインターフェース部を備え、
前記キャッシュメモリコントローラは前記第１及び第２のメモリインターフェースの何れからも前記各キャッシュメモリモジュールにメモリアクセス可能に構成されている、記憶デバイス制御装置。
【請求項１０】
情報処理装置からの入出力要求に応答して記憶デバイスに読み書きされるブロックデータを一次記憶するキャッシュメモリを備えた記憶デバイス制御装置であって、
前記キャッシュメモリは、複数のキャッシュメモリモジュールと、前記複数のキャッシュメモリモジュールへのメモリアクセスを制御するキャッシュメモリコントローラとを備え、前記キャッシュメモリコントローラから前記各キャッシュメモリモジュールへのコマンド、アドレス、及びデータの伝送がシリアル伝送によって行われるように構成されており、
前記キャッシュメモリモジュールは複数のメモリ素子とバッファ部とを備え、
前記バッファ部はシリアル伝送される前記キャッシュメモリコントローラからのコマンドを受信してこれを解析し、前記キャッシュメモリコントローラから前記各メモリ素子へのメモリアクセスを制御するとともに、シリアル伝送された前記データをパラレル変換して前記各メモリ素子に伝送するように構成されており、
前記キャッシュメモリコントローラと前記各キャッシュメモリモジュールのバッファ部とは二重化されたシリアルインターフェース信号線で接続されている、記憶デバイス制御装置。
【請求項１１】
請求項７乃至請求項１０のうち何れか１項に記載の記憶デバイス制御装置であって、
前記バッファ部は前記メモリ素子に書き込まれるデータに基づいてＥＣＣを生成するＥＣＣ生成部を更に備える、記憶デバイス制御装置。
【請求項１２】
請求項７乃至請求項１１のうち何れか１項に記載の記憶デバイス制御装置であって、
前記情報処理装置からのファイル単位でのデータ入出力要求に応答して記憶デバイスに対するＩ／Ｏ要求を出力するチャネル制御部を更に備え、
前記チャネル制御部は、
前記ファイル単位でのデータ入出力要求を受信するＣＰＵと、
前記ＣＰＵの指令に応答して前記ファイル単位でのデータ入出力要求に対応するＩ／Ｏ要求を出力するＩ／Ｏプロセッサと、
前記ＣＰＵのファイルアクセス処理に要する情報を一時記憶するメモリシステムであって、複数のメモリモジュールと、前記複数のメモリモジュールへのメモリアクセスを制御するメモリコントローラとを備え、前記メモリコントローラから前記各メモリモジュールへのコマンド、アドレス、及びデータの伝送がシリアル伝送によって行われるメモリシステムと、
を備え、
前記メモリモジュールは複数のメモリ素子とバッファ部とを備え、
前記バッファ部はシリアル伝送される前記メモリコントローラからのコマンドを受信してこれを解析し、前記メモリコントローラから前記各メモリ素子へのメモリアクセスを制御するとともに、シリアル伝送された前記データをパラレル変換して前記各メモリ素子に伝送するように構成されており、
前記メモリコントローラと前記メモリシステムとは二重化されたシリアルインターフェースで接続されている、記憶デバイス制御装置。
【請求項１３】
請求項７乃至請求項１１のうち何れか１項に記載の記憶デバイス制御装置であって、
前記情報処理装置からのファイル単位でのデータ入出力要求に応答して記憶デバイスに対するＩ／Ｏ要求を出力するチャネル制御部を更に備え、
前記チャネル制御部は、
前記ファイル単位でのデータ入出力要求を受信するＣＰＵと、
前記ＣＰＵの指令に応答して前記ファイル単位でのデータ入出力要求に対応するＩ／Ｏ要求を出力するＩ／Ｏプロセッサと、
前記ＣＰＵのファイルアクセス処理に要する情報を一時記憶するメモリシステムであって、複数のメモリモジュールから成る第１系列及び第２系列のメモリモジュール群と、前記各系統に属するメモリモジュールへのメモリアクセスを制御するメモリコントローラと、前記メモリコントローラから前記各メモリモジュールへのメモリアクセス経路をスイッチング制御する制御回路制御回路とを備え、前記メモリコントローラから前記各メモリモジュールへのコマンド、アドレス、及びデータの伝送がシリアル伝送によって行われるメモリシステムと、
を備え、
前記メモリモジュールは複数のメモリ素子とバッファ部とを備え、
前記バッファ部はシリアル伝送される前記メモリコントローラからのコマンドを受信してこれを解析し、前記メモリコントローラから前記各メモリ素子へのメモリアクセスを制御するとともに、シリアル伝送された前記データをパラレル変換して前記各メモリ素子に伝送するように構成されており、
前記メモリコントローラから前記第１系列のメモリモジュール群に属するメモリモジュールにメモリアクセスする第１のアクセスパスと、前記メモリコントローラから前記第２系列のメモリモジュール群に属するメモリモジュールにメモリアクセスする第２のアクセスパスが異なるように前記メモリコントローラと前記各メモリモジュールとがシリアルインターフェース接続されており、
前記制御回路は前記メモリコントローラから前記第１系列のメモリモジュールにライトアクセスがなされたときに、前記第１のアクセスパスを経由して前記第１系列のメモリモジュールに書き込まれるデータと同一の内容のデータを前記第２のアクセスパスを経由して前記第２系列のメモリモジュールに書き込むように構成されている、記憶デバイス制御装置。
【請求項１４】
請求項７乃至請求項１１のうち何れか１項に記載の記憶デバイス制御装置であって、
前記情報処理装置からのファイル単位でのデータ入出力要求に応答して記憶デバイスに対するＩ／Ｏ要求を出力するチャネル制御部を更に備え、
前記チャネル制御部は、
前記ファイル単位でのデータ入出力要求を受信するＣＰＵと、
前記ＣＰＵの指令に応答して前記ファイル単位でのデータ入出力要求に対応するＩ／Ｏ要求を出力するＩ／Ｏプロセッサと、
前記ＣＰＵのファイルアクセス処理に要する情報を一時記憶するメモリシステムであって、複数のメモリモジュールと、前記複数のメモリモジュールへのメモリアクセスを制御するメモリコントローラとを備え、前記メモリコントローラから前記各メモリモジュールへのコマンド、アドレス、及びデータの伝送がシリアル伝送によって行われるメモリシステムと、
を備え、
前記メモリモジュールは複数のメモリ素子とバッファ部とを備え、
前記バッファ部はシリアル伝送される前記メモリコントローラからのコマンドを受信してこれを解析し、前記メモリコントローラから前記各メモリ素子へのメモリアクセスを制御するとともに、シリアル伝送された前記データをパラレル変換して前記各メモリ素子に伝送するように構成されており、
前記メモリコントローラはシリアルインターフェース信号線を通じて前記各メモリモジュールのバッファ部とループ接続するための第１及び第２のメモリインターフェース部を備え、
前記メモリコントローラは前記第１及び第２のメモリインターフェースの何れからも前記各メモリモジュールにメモリアクセス可能に構成されている、記憶デバイス制御装置。
【請求項１５】
請求項７乃至請求項１１のうち何れか１項に記載の記憶デバイス制御装置であって、
前記情報処理装置からのファイル単位でのデータ入出力要求に応答して記憶デバイスに対するＩ／Ｏ要求を出力するチャネル制御部を更に備え、
前記チャネル制御部は、
前記ファイル単位でのデータ入出力要求を受信するＣＰＵと、
前記ＣＰＵの指令に応答して前記ファイル単位でのデータ入出力要求に対応するＩ／Ｏ要求を出力するＩ／Ｏプロセッサと、
前記ＣＰＵのファイルアクセス処理に要する情報を一時記憶するメモリシステムであって、複数のメモリモジュールと、前記複数のメモリモジュールへのメモリアクセスを制御するメモリコントローラとを備え、前記メモリコントローラから前記各メモリモジュールへのコマンド、アドレス、及びデータの伝送がシリアル伝送によって行われるメモリシステムと、
を備え、
前記メモリモジュールは複数のメモリ素子とバッファ部とを備え、
前記バッファ部はシリアル伝送される前記メモリコントローラからのコマンドを受信してこれを解析し、前記メモリコントローラから前記各メモリ素子へのメモリアクセスを制御するとともに、シリアル伝送された前記データをパラレル変換して前記各メモリ素子に伝送するように構成されており、
前記メモリコントローラと前記各メモリモジュールのバッファ部とは二重化されたシリアルインターフェース信号線で接続されている、記憶デバイス制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は記憶デバイス制御装置に関し、特に、メモリコントローラとシリアルインターフェース接続されたメモリモジュールを備えたメモリシステムを、情報処理装置から記憶デバイス制御装置へのアクセス処理に伴う情報を記憶する記憶装置に適用してなる記憶デバイス制御装置に関する。
【背景技術】
【０００２】
近年、コンピュータシステムで扱われるデータ量が急激に増加している。このようなデータを管理するためのストレージシステムとして、最近では、ミッドレンジクラスやエンタープライズクラスと呼ばれるような巨大な記憶資源を提供するＲＡＩＤ（Redundant Arrays of Inexpensive Disks）方式で管理された大規模なストレージシステムが注目されている。かかる膨大なデータを効率よく利用し管理するために、ディスクアレイ装置等のストレージシステムと情報処理装置とをＳＡＮ（Storage Area Network）で接続し、ストレージシステムへの高速かつ大量なアクセスを実現する技術が開発されている。その一方で、ストレージシステムと情報処理装置とをＴＣＰ／ＩＰプロトコル等を用いたネットワークで相互に接続し、情報処理装置からのファイルレベルでのアクセスを実現するＮＡＳ（Network Attached Storage）が開発されている。
【０００３】
このような高信頼性が要求されるストレージシステムの一次記憶装置として、レジスタードＤＩＭＭ（Registered Dual In-line Memory Module）が使用されている。この種のレジスタードＤＩＭＭにおいては、記録データの信頼性を確保するためメモリコントローラにおいて誤り訂正符号（ＥＣＣ：Error Correcting Code）を生成し、記録データにＥＣＣを付加した状態でレジスタードＤＩＭＭに記憶するように構成したＥＣＣメモリが知られている。ＥＣＣメモリではリードアクセスの際に記録データと共にＥＣＣが読み出されて、誤り検出・誤り訂正がなされる。従来ではメモリコントローラとメモリモジュールとの間はパラレルインターフェース信号線で接続されており（例えば特許文献１）、パラレルインターフェース信号線の一本が故障してもＥＣＣによって誤り検出・誤り訂正が可能である。ところが、パラレルインターフェースではデータ伝送の高速化がほぼ限界に達している上に、配線密度の大幅な増加により回路素子の実装が困難になる。更に、スタブ方式のメモリ接続方式ではスタブバスからの信号の多重反射やスタブバスの抵抗成分、キャパシタンス成分、及びインダクタンス成分の影響による信号の劣化を避けることができない。
【０００４】
かかる技術的背景に鑑みて、最近ではメモリコントローラとメモリモジュールとの間をシリアルインターフェースで接続して、データ転送速度を向上させる試みが検討されている。例えば、ＦＢ−ＤＩＭＭ（Fully-Buffered DIMM）はメモリコントローラとのインターフェースをＰＣＩエクスプレスに類似したシリアルインターフェースから構成し、メモリコントローラとＦＢ−ＤＩＭＭとをポイント・ツー・ポイントで接続することができるので、スタブバスの影響による信号劣化を回避しつつデータ転送を高速化し、更に回路素子の実装の容易化をも実現できる。
【特許文献１】特開２００１−２２２４７２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
情報処理装置から記憶デバイスへのデータ入出力要求を受け付けてアクセス処理を行う記憶デバイス制御装置の記憶装置として、サーバ用途向けのＦＢ−ＤＩＭＭを用いることで、処理の高速化及び実装の容易化を図ることができる。
【０００６】
しかし、パラレル伝送であればインターフェース信号線の１本に障害が発生してもＥＣＣによりデータの誤り訂正が可能であるが、シリアル伝送ではインターフェース信号線に障害が発生すると、データ送信ができなくなる。高信頼性が要求されるストレージシステムにおいてはインターフェース信号線の障害発生等に備えて予め十分なフェイルセーフ対策を講じる必要がある。
【０００７】
そこで、本発明はデータの一時記憶装置として、メモリコントローラとメモリモジュールとの間をシリアルインターフェースで接続する構成とした場合でも十分な信頼性を確保できる記憶デバイス制御装置を提案することを課題とする。
【課題を解決するための手段】
【０００８】
上記の課題を解決するため、本発明の記憶デバイス制御装置は、情報処理装置からのファイル単位でのデータ入出力要求に応答して記憶デバイスに対するＩ／Ｏ要求を出力するチャネル制御部を備えた記憶デバイス制御装置であって、チャネル制御部は、ファイル単位でのデータ入出力要求を受信するＣＰＵと、ＣＰＵの指令に応答してファイル単位でのデータ入出力要求に対応するＩ／Ｏ要求を出力するＩ／Ｏプロセッサと、ＣＰＵのファイルアクセス処理に要する情報を一時記憶するメモリシステムであって、複数のメモリモジュールと、複数のメモリモジュールへのメモリアクセスを制御するメモリコントローラと、を備え、メモリコントローラから各メモリモジュールへのコマンド、アドレス、及びデータの伝送がシリアル伝送によって行われるメモリシステムと、を備え、メモリモジュールは複数のメモリ素子とバッファ部とを備え、バッファ部はシリアル伝送されるメモリコントローラからのコマンドを受信してこれを解析し、メモリコントローラから各メモリ素子へのメモリアクセスを制御するとともに、シリアル伝送されたデータをパラレル変換して各メモリ素子に伝送するように構成されており、メモリモジュールとメモリコントローラとは二重化されたシリアルインターフェースで接続されている。
【０００９】
また、上述のメモリシステムは情報処理装置からのファイルアクセス要求を処理するチャネル制御部の一時記憶装置に限らず、各種の用途（キャッシュメモリ、共有メモリ、ディスク制御部の一時記憶装置等）に適用できる。
【００１０】
このようなメモリシステムの構成は、例えば、複数のメモリモジュールと、複数のメモリモジュールへのメモリアクセスを制御するメモリコントローラと、を備え、メモリコントローラから各メモリモジュールへのコマンド、アドレス、及びデータの伝送がシリアル伝送によって行われるように構成されており、メモリモジュールは複数のメモリ素子とバッファ部とを備え、バッファ部はシリアル伝送されるメモリコントローラからのコマンドを受信してこれを解析し、メモリコントローラから各メモリ素子へのメモリアクセスを制御するとともに、シリアル伝送されたデータをパラレル変換して各メモリ素子に伝送するように構成されており、メモリモジュールとメモリコントローラとは二重化されたシリアルインターフェースで接続されている。
【００１１】
このようなメモリシステムの他の構成は、例えば、複数のメモリモジュールから成る第１系列及び第２系列のメモリモジュール群と、各系統に属するメモリモジュールへのメモリアクセスを制御するメモリコントローラと、メモリコントローラから各メモリモジュールへのメモリアクセス経路をスイッチング制御する制御回路とを備え、メモリコントローラから各メモリモジュールへのコマンド、アドレス、及びデータの伝送がシリアル伝送によって行われるように構成されており、メモリモジュールは複数のメモリ素子とバッファ部とを備え、バッファ部はシリアル伝送されるメモリコントローラからのコマンドを受信してこれを解析し、メモリコントローラから各メモリ素子へのメモリアクセスを制御するとともに、シリアル伝送されたデータをパラレル変換して各メモリ素子に伝送するように構成されており、メモリコントローラから第１系列のメモリモジュール群に属するメモリモジュールにメモリアクセスする第１のアクセスパスと、メモリコントローラから前記第２系列のメモリモジュール群に属するメモリモジュールにメモリアクセスする第２のアクセスパスが異なるようにメモリコントローラと各メモリモジュールとがシリアルインターフェース接続されており、制御回路はメモリコントローラから第１系列のメモリモジュールにライトアクセスがなされたときに、第１のアクセスパスを経由して第１系列のメモリモジュールに書き込まれるデータと同一の内容のデータを第２のアクセスパスを経由して第２系列のメモリモジュールに書き込むように構成されている。このように、データの二重書きを行うことで、メモリシステムの信頼性を高めることができる。
【００１２】
メモリシステムの他の構成は、例えば、複数のメモリモジュールと、複数のメモリモジュールへのメモリアクセスを制御するメモリコントローラとを備え、メモリコントローラから各メモリモジュールへのコマンド、アドレス、及びデータの伝送がシリアル伝送によって行われるように構成されており、メモリモジュールは複数のメモリ素子とバッファ部とを備え、バッファ部はシリアル伝送されるメモリコントローラからのコマンドを受信してこれを解析し、メモリコントローラから各メモリ素子へのメモリアクセスを制御するとともに、シリアル伝送されたデータをパラレル変換して各メモリ素子に伝送するように構成されており、メモリコントローラはシリアルインターフェース信号線を通じて各メモリモジュールのバッファ部とループ接続するための第１及び第２のメモリインターフェース部を備え、メモリコントローラは第１及び第２のメモリインターフェースの何れからも各メモリモジュールにメモリアクセス可能に構成されている。このように、ループ状のシリアルインターフェースの双方向からメモリアクセスできるようにアクセスパスを二重化することで、メモリシステムの信頼性を高めることができる。
【００１３】
メモリシステムの更に他の構成は、例えば、複数のメモリモジュールと、複数のメモリモジュールへのメモリアクセスを制御するメモリコントローラとを備え、メモリコントローラから各メモリモジュールへのコマンド、アドレス、及びデータの伝送がシリアル伝送によって行われるように構成されており、メモリモジュールは複数のメモリ素子とバッファ部とを備え、バッファ部はシリアル伝送されるメモリコントローラからのコマンドを受信してこれを解析し、メモリコントローラから各メモリ素子へのメモリアクセスを制御するとともに、シリアル伝送されたデータをパラレル変換して各メモリ素子に伝送するように構成されており、メモリコントローラと各メモリモジュールのバッファ部とは二重化されたシリアルインターフェース信号線で接続されている。このように、メモリコントローラとメモリモジュールとをシリアル接続するシリアルインターフェース信号線を二重化することで、メモリシステムの信頼性を高めることができる。
【発明の効果】
【００１４】
本発明によればメモリコントローラとメモリモジュールとの間のシリアルインターフェースは二重化されているので、記憶デバイス制御装置の信頼性を高めることができる。
【発明を実施するための最良の形態】
【００１５】
＝＝ストレージシステムの構成＝＝
図１は本実施形態のストレージシステム６００の構成図である。ストレージシステム６００は複数の記憶デバイス３００と、情報処理装置２００からの入出力要求に応答して記憶デバイス３００への入出力制御を行う記憶デバイス制御装置１００とを備えて構成されている。情報処理装置２００はＣＰＵやメモリ等を備えたコンピュータ装置であり、例えば、ワークステーション、メインフレームコンピュータ、パーソナルコンピュータ等で構成される。情報処理装置２００は複数台のコンピュータをネットワーク接続して構成することもできる。情報処理装置２００はオペレーティングシステム上で動作するアプリケーションプログラムを実装している。アプリケーションプログラムとしては、例えば、銀行の自動預金預け払いシステムや航空機の座席予約システム等がある。
【００１６】
情報処理装置１乃至３（２００）はＬＡＮ（Local Area Network）４００を介してストレージシステム６００と接続されている。ＬＡＮ４００は、例えば、イーサネット（登録商標）やＦＤＤＩ等の通信網であり、情報処理装置１乃至３（２００）とストレージシステム６００との間の通信はＴＣＰ／ＩＰプロトコルによって行われる。情報処理装置１乃至３（２００）からはストレージシステム６００に対してファイル名指定によるデータアクセス要求（ファイル単位でのデータ入出力要求。以下、ファイルアクセス要求と称する。）が後述のチャネル制御部ＣＨＮ１乃至ＣＨＮ４（１１０）に送信される。
【００１７】
ＬＡＮ４００にはバックアップデバイス９１０が接続されている。バックアップデバイス９１０は、例えば、ＭＯ、ＣＤ−Ｒ、ＤＶＤ−ＲＡＭ等のディスク系デバイス、ＤＡＴテープ、カセットテープ、オープンテープ、カートリッジテープ等のテープ系デバイスである。バックアップデバイス９１０はＬＡＮ４００を介して記憶デバイス制御装置１００との間で通信を行うことにより記憶デバイス３００に記憶されているデータのバックアップデータを記憶する。また、バックアップデバイス９１０は情報処理装置１（２００）と接続し、情報処理装置１（２００）を介して記憶デバイス３００に記憶されているデータのバックアップを取得する。
【００１８】
記憶デバイス制御装置１００はチャネル制御部ＣＨＮ１乃至４（１１０）を備える。記憶デバイス制御装置１００は、チャネル制御部ＣＨＮ１乃至４（１１０）とＬＡＮ４００とを介して、情報処理装置１乃至３（２００）と、バックアップデバイス９１０と、記憶デバイス３００との間のライトアクセス又はリードアクセスを媒介する。チャネル制御部ＣＨＮ１乃至４（１１０）は情報処理装置１乃至３（２００）からのファイルアクセス要求を個々に受け付ける。すなわち、チャネル制御部ＣＨＮ１乃至４（１１０）には個々にＬＡＮ４００上のネットワークアドレス（例えば、ＩＰアドレス）が割り当てられていて、それぞれが個別にＮＡＳとして振る舞い、個々のＮＡＳがあたかも独立したＮＡＳが存在するかのようにＮＡＳとしてのサービスを情報処理装置１乃至３（２００）に提供することができる。このように１台のストレージシステム６００に個別にＮＡＳとしてのサービスを提供するチャネル制御部ＣＨＮ１乃至４（１１０）を備えるように構成したことで、従来、独立したコンピュータで個々に運用されていたＮＡＳサーバが一台のストレージシステム６００に集約される。そして、これによりストレージシステム６００の統括的な管理が可能となり、各種設定・制御や障害管理、バージョン管理といった保守業務の効率化が図られる。
【００１９】
情報処理装置３乃至４（２００）はＳＡＮ５００を介して記憶デバイス制御装置１００と接続されている。ＳＡＮ５００は、記憶デバイス３００が提供する記憶領域におけるデータの管理単位であるブロックを単位として情報処理装置３乃至４（２００）との間でデータの授受を行うためのネットワークである。ＳＡＮ５００を介して行われる情報処理装置３乃至４（２００）と記憶デバイス制御装置１００との間の通信は一般にファイバチャネルプロトコルに従って行われる。情報処理装置３乃至４（２００）からは、ストレージシステム６００に対して、ファイバチャネルプロトコルに従ってブロック単位のデータアクセス要求（以下、ブロックアクセス要求と称する。）が送信される。
【００２０】
ＳＡＮ５００にはＳＡＮ対応のバックアップデバイス９００が接続されている。ＳＡＮ対応バックアップデバイス９００は、ＳＡＮ５００を介して記憶デバイス制御装置１００との間で通信を行うことにより、記憶デバイス３００に記憶されているデータのバックアップデータを記憶する。
【００２１】
記憶デバイス制御装置１００はチャネル制御装置ＣＨＮ１乃至４（１１０）に加えて、更にチャネル制御部ＣＨＦ１乃至２（１１０）を備える。記憶デバイス制御装置１００はチャネル制御部ＣＨＦ１乃至２（１１０）とＳＡＮ５００とを介して、情報処理装置３乃至４（２００）及びＳＡＮ対応バックアップデバイス９００との間の通信を行う。
【００２２】
情報処理装置５（２００）は、更に、ＬＡＮ４００やＳＡＮ５００等のネットワークを介さずに記憶デバイス制御装置１００と接続されている。この情報処理装置５（２００）の例は、例えばメインフレームコンピュータである。情報処理装置５（２００）と記憶デバイス制御装置１００との間の通信は、例えばＦＩＣＯＮ（Fiber Connection)（登録商標）やＥＳＣＯＮ（Enterprise System Connection）（登録商標）、ＡＣＯＮＡＲＣ（Advanced Connection Architecture）（登録商標）、ＦＩＢＡＲＣ（Fiber Connection Architecture）（登録商標）などの通信プロトコルに従って行われる。情報処理装置５（２００）からはストレージシステム６００に対して、これらの通信プロトコルに従ってブロックアクセス要求が送信される。
【００２３】
記憶デバイス制御装置１００は、チャネル制御部ＣＨＡ１乃至２（１１０）を通じて情報処理装置５（２００）との間で通信を行う。
【００２４】
ＳＡＮ５００には、ストレージシステム６００の設置場所（プライマリサイト）とは遠隔した場所（セカンダリサイト）に設置される他のストレージシステム６１０が接続されている。ストレージシステム６１０は、レプリケーション又はリモートコピーの機能におけるデータの複製先の装置として利用される。なお、ストレージシステム６１０はＳＡＮ５００以外にもＡＴＭなどの通信回線によりストレージシステム６００に接続していることもある。この場合には、例えば、ＳＡＮ５００に接続されるチャネル制御部１１０として、上記通信回線を利用するためのインターフェース（チャネルエクステンダ）を備えるチャネル制御部が採用される。
【００２５】
このように、ストレージシステム６００内にチャネル制御部ＣＨＮ１乃至４（１１０）、チャネル制御部ＣＨＦ１乃至２（１１０）、チャネル制御部ＣＨＡ１乃至２（１１０）を混在させて装着させることにより、異種ネットワークに接続できるストレージシステムを実現できる。即ち、このストレージシステム６００はチャネル制御部ＣＨＮ１乃至４（１１０）を用いてＬＡＮ４００に接続し、かつチャネル制御部ＣＨＦ１乃至２（１１０）を用いてＳＡＮ５００に接続するという、ＳＡＮ−ＮＡＳ統合ストレージシステムである。
【００２６】
接続部１５０は、各々のチャネル制御部１１０、共有メモリ１２０、キャッシュメモリ１３０、及び各々のディスク制御部１４０を相互に接続する。これらのチャネル制御部１１０、共有メモリ１２０、キャッシュメモリ１３０、及びディスク制御部１４０相互間のコマンド又はデータの送受信は接続部１５０を介して行われる。接続部１５０は例えば高速スイッチングによりデータ伝送を行う超高速クロスバスイッチ等の高速バスで構成される。これにより、チャネル制御部１１０相互間の通信パフォーマンスが大幅に向上するとともに、高速なファイル共有機能や高速フェイルオーバー等が可能になる。
【００２７】
共有メモリ１２０、及びキャッシュメモリ１３０はチャネル制御部１１０、及びディスク制御部１４０が共用するメモリ装置である。共有メモリ１２０は主として制御情報やコマンド等を記憶するために利用され、キャッシュメモリ１３０は主としてデータを記憶するために利用される。例えば、あるチャネル制御部１１０が情報処理装置２００から受け取ったデータ入出力コマンドが書き込みコマンドであった場合に、当該チャネル制御部１１０はその書き込みコマンドを共有メモリ１２０に書き込むとともに、情報処理装置２００から受け取ったライトデータをキャッシュメモリ１３０に書き込む。一方、ディスク制御部１４０は共有メモリ１２０を監視しており、共有メモリ１２０に書き込みコマンドが書き込まれたと判定すると、当該書き込みコマンドに従ってキャッシュメモリ１３０からライトデータを読み出して、これを記憶デバイス３００に書き込む。
【００２８】
一方、あるチャネル制御部１１０が情報処理装置２００から受け取ったデータ入出力コマンドが読み出しコマンドであった場合に、当該チャネル制御部１１０はその読み出しコマンドを共有メモリ１２０に書き込むとともに、読み出し対象となるデータがキャッシュメモリ１３０に存在しているか否かをチェックする。ここで、読み出し対象となるデータがキャッシュメモリ１３０に存在している場合には、チャネル制御部１１０はそのデータをキャッシュメモリ１３０から読み取って情報処理装置２００に送信する。読み出し対象となるデータがキャッシュメモリ１３０に存在していない場合には、共有メモリ１２０に読み出しコマンドが書き込まれたことを検出したディスク制御部１４０は読み出し対象となるデータを記憶デバイス３００から読み出してこれをキャッシュメモリ１３０に書き込むとともに、その旨を共有メモリ１２０に書き込む。チャネル制御部１１０は共有メモリ１２０を監視することにより、読み出し対象となるデータがキャッシュメモリ１３０に書き込まれたことを検出すると、そのデータをキャッシュメモリ１３０から読み出して情報処理装置２００に送信する。
【００２９】
ディスク制御部１４０はチャネル制御部１１０から送信された論理アドレス指定による記憶デバイス３００へのデータアクセス要求を、物理アドレス指定によるデータアクセス要求に変換し、チャネル制御部１１０から出力されるＩ／Ｏ要求に応答して記憶デバイス３００へのデータの書き込み又は読み取りを行う。記憶デバイス３００がＲＡＩＤ構成されている場合には、ディスク制御部１４０はＲＡＩＤ構成に従ったデータのアクセスを行う。この他にも、ディスク制御部１４０は記憶デバイス３００に記憶されたデータの複製管理、バックアップ制御、災害発生時のデータ消失防止（ディザスタリカバリ）等を目的としてレプリケーション制御又はリモートコピー制御等を行う。
【００３０】
記憶デバイス３００は単一又は複数のディスクドライブ（物理ボリューム）を備えており、情報処理装置２００からアクセス可能な記憶領域を提供する。記憶デバイス３００が提供する記憶領域には単一又は複数の物理ボリュームの記憶空間を合わせた論理ボリュームが設定されている。記憶デバイス３００に設定される論理ボリュームには、情報処理装置２００からアクセス可能なユーザ論理ボリュームや、チャネル制御部１１０の制御のために使用されるシステム論理ボリュームがある。システム論理ボリュームにはチャネル制御部１１０で実行されるオペレーティングシステムも格納されている。また、記憶デバイス３００が提供する論理ボリュームには、各々のチャネル制御部１１０がアクセス可能な論理ボリュームが割り当てられている。もとより、複数のチャネル制御部１１０が同一の論理ボリュームを共有することもできる。
【００３１】
尚、記憶デバイス３００として、例えば、ハードディスク装置やフレキシブルディスク装置等を用いることができる。記憶デバイス３００のストレージ構成として、例えば、複数の記憶デバイス３００によりＲＡＩＤ方式のディスクアレイを構成してもよい。また、記憶デバイス３００と記憶デバイス制御装置１００は直接接続してもよく、ネットワークを介して接続してもよい。更に、記憶デバイス３００は記憶デバイス制御装置１００と一体に構成してもよい。
【００３２】
管理端末１６０はストレージシステム６００を保守・管理するためのコンピュータ装置であり、内部ＬＡＮ１５１を通じて各々のチャネル制御部１１０とディスク制御部１４０に接続している。オペレータは管理端末１６０を操作することで記憶デバイス３００のディスクドライブの設定、論理ボリュームの設定、チャネル制御１１０やディスク制御部１４０で実行されるマイクロプログラムのインストール等を行うことが可能である。
【００３３】
図３はディスク制御部１４０の回路構成を示している。ディスク制御部１４０はインターフェース部１４１、ＣＰＵ１４２、メモリ１４３、及びＮＶＲＡＭ１４４を備えて構成されており、これらが一枚又は複数枚の回路基板上に一体的なユニットとして形成されている。インターフェース部１４１は接続部１５０を介してチャネル制御部１１０等との間で通信を行うための通信インターフェースや記憶デバイス３００との間で通信を行うための通信インターフェースを備えている。ＣＰＵ１４２はチャネル制御部１１０、記憶デバイス３００、及び管理端末１６０との間で通信を行い、上述した記憶デバイス３００へのアクセス制御やデータの複製管理等を行う。メモリ１４３とＮＶＲＡＭ１４４には、ＣＰＵ１４２に上述した各種の制御処理を実行させるためのプログラムやデータ等が格納されている。
【００３４】
＝＝ＮＡＳ−ＮＡＳ接続＝＝
図２はチャネル制御部ＣＨＮ１乃至２（１１０）の詳細な接続構成図である。本実施形態においては、チャネル制御部ＣＨＮ１及びＣＨＮ２（１１０）から成るクラスタが構成され、更に、チャネル制御部ＣＨＮ３及びＣＨＮ４（１１０）から成るクラスタも構成されている。図２では、チャネル制御部ＣＨＮ３及びＣＨＮ４（１１０）の詳細な接続構成を示していないが、チャネル制御部ＣＨＮ１及びＣＨＮ２（１１０）の接続構成と同様である。チャネル制御部ＣＨＮ１及びＣＨＮ２（１１０）は、情報処理装置１乃至３（２００）からファイルアクセス要求を受け取ると、ファイルの記憶アドレスやデータ長等を求めて、ファイルアクセス要求に対応するＩ／Ｏ要求を記憶デバイス３００に出力することにより、記憶デバイス３００へのアクセスを行う。このＩ／Ｏ要求にはデータの先頭アドレス、データ長、ライトアクセス又はリードアクセス等のアクセスの種別が含まれており、ライトアクセスの場合には更にライトデータが含まれる。これにより、情報処理装置１乃至３（２００）からはＮＦＳ（Network File System）やＣＩＦＳ（Common Interface File System）等のファイル転送プロトコルを使用して記憶デバイス３００へのファイルの読み書きが可能である。
【００３５】
チャネル制御部ＣＨＮ１及びＣＨＮ２（１１０）は、それぞれネットワークインターフェース部１１１、ＣＰＵ（ＮＡＳプロセッサ）１１２、メモリコントローラ１１３、メモリ（メモリモジュール）１１４、入出力制御部１１５、及び変換回路（変換ＬＳＩ）１１６を備えて構成されており、これらが一枚又は複数枚の回路基板上に一体的なユニットとして形成されている。ネットワークインターフェース部１１１は情報処理装置２００との間でＴＣＰ／ＩＰプロトコルに基づく通信を行う通信インターフェースであり、例えば、ＬＡＮコントローラなどで構成される。ＣＰＵ１１２はチャネル制御部１１０をＮＡＳサーバとして機能させるためのプロセッサである。メモリ１１４には各種のプログラム及びデータ、例えば、オペレーティングシステム、ボリュームマネージャ、ファイルシステムプログラム、ＲＡＩＤマネージャ、ＳＶＰマネージャ、ファイルシステムプロトコル（ＮＦＳやＳａｍｂａ等）、バックアップ管理プログラム、障害管理プログラム、ＮＡＳマネージャ、セキュリティ管理プログラム等が格納される。メモリコントローラ１１３はＣＰＵ１１２からの指示に基づいてメモリ１１４へのメモリアクセス制御を行う。メモリ１１４とメモリコントローラ１１３とによってメモリシステム１１９が構成されている。入出力制御部１１５は、Ｉ／Ｏプロセッサ１１７と、ＮＶＲＡＭ（Non Volatile RAM）１１８とを含んで構成されており、ディスク制御部１４０、キャッシュメモリ１３０、共有メモリ１２０、及び管理端末１６０との間でデータやコマンドの送受信を行う。ファイルアクセス要求に対応するＩ／Ｏ要求はＩ／Ｏプロセッサ１１７によって出力される。
【００３６】
クラスタを構成するチャネル制御部ＣＨＮ１及びＣＨＮ２（１１０）は信号線１１０ａを通じて相互にデータ通信可能に構成されており、データを共有することができる。チャネル制御部ＣＨＮ１及びＣＨＮ２（１１０）間でデータ通信を行う場合、両者の距離は長いため、クロック分配型の構成では信号のスキューの問題が生じ得る。そこで、本実施形態ではかかる問題を考慮して、チャネル制御部ＣＨＮ１及びＣＨＮ２（１１０）間の通信をクロック抽出型にする構成を採用した。より具体的には、メモリ１１４はクロックジェネレータ１９からクロック信号の分配を受けて動作するクロック分配型の構成を採用しているので（図５参照）、チャネル制御部ＣＨＮ１及びＣＨＮ２（１１０）間のインターフェースにおいて、クロック分配型からクロック抽出型に変換する構成を採用した。メモリコントローラ１１３からメモリ１１４に伝送されるデータ信号は８Ｂ／１０Ｂ符号化されており、そのデータ信号にはクロックが埋め込まれている。変換回路１１６はそのデータ信号を１０Ｂ／８Ｂ変換（復号化）することによりエンベデッドクロックを抽出する。変換回路１１６におけるデータの識別タイミングはクロックジェネレータ１９から供給されるクロック信号を基準とする。チャネル制御部ＣＨＮ１及びＣＨＮ２（１１０）のそれぞれに含まれる変換回路１１６は、信号線１１０ａを介して接続されている。チャネル制御部ＣＨＮ１及びＣＨＮ２（１１０）は信号線１１０ａを通じてデータ通信を行うことができる。例えば、チャネル制御部ＣＨＮ１（１１０）のメモリコントローラ１１３はチャネル制御部ＣＨＮ２のメモリ１１４にメモリアクセスすることができる。この他にも、チャネル制御部ＣＨＮ１及びＣＨＮ２（１１０）は信号線１１０ａを通じてハートビート通信を行うことで、相手の故障の有無を検出できる。
【００３７】
＝＝ストレージシステムの外観＝＝
図２８及び図２９はストレージシステム６００の外観構成を示している。図２８に示すように、ストレージシステム６００は記憶デバイス制御装置１００と記憶デバイス３００がそれぞれの筺体に納められた形態を成している。記憶デバイス制御装置１００の筺体の両側に記憶デバイス３００の筺体が配置されている。記憶デバイス制御装置１００は、正面中央部に管理端末１６０が備え付けられている。管理端末１６０はカバーで覆われており、図２９に示すようにカバーを開けることにより管理端末１６０を使用することができる。ここで、図２９に示す管理端末１６０はいわゆるノート型パーソナルコンピュータの形態をしているが、どのようなコンピュータ装置であってもよい。記憶デバイス制御装置１００には、チャネル制御部１１０のボード等から発生する熱を放出するためのファン１７０が設けられている。ファン１７０は記憶デバイス制御装置１００の上面部に設けられる他、チャネル制御部１１０用スロットの上部にも設けられている。
【００３８】
管理端末１６０の下部には、チャネル制御部１１０のボードを装着するためのスロットが設けられている。チャネル制御部１１０のボードとは、チャネル制御部１１０の回路基板が形成されたユニットであり、スロットへの装着単位である。本実施の形態に係るストレージシステム６００においては、スロットは８つあり、図２８及び図２９には８つのスロットにチャネル制御部１１０のボードが装着された状態が示されている。各スロットにはチャネル制御部１１０のボードを装着するためのガイドレールが設けられている。ガイドレールに沿ってチャネル制御部１１０のボードをスロットに挿入することにより、チャネル制御部１１０のボードを記憶デバイス制御装置１００に装着することができる。また各スロットに装着されたチャネル制御部１１０のボードは、ガイドレールに沿って手前方向に引き抜くことにより取り外すことができる。また各スロットの奥手方向正面部には、各チャネル制御部１１０のボードを記憶デバイス制御装置１００と電気的に接続するためのコネクタが設けられている。チャネル制御部１１０にはチャネル制御部ＣＨＮ１乃至ＣＨＮ４（１１０）、チャネル制御部ＣＨＦ１乃至２（１１０）、チャネル制御部ＣＨＡ１乃至２（１１０）があるが、いずれのチャネル制御部１１０のボードもサイズやコネクタの位置、コネクタのピン配列等に互換性をもたせているため、８つのスロットにはいずれのチャネル制御部１１０のボードも装着することが可能である。
【００３９】
各スロットのチャネル制御部１１０は、同種の複数のチャネル制御部１１０でクラスタを構成する。例えば上述したように２枚のチャネル制御部ＣＨＮ１乃至２（１１０）と、チャネル制御部ＣＨＮ３乃至４（１１０）のそれぞれをペアとして、クラスタを構成できる。クラスタを構成することにより、クラスタ内のあるチャネル制御部１１０に障害が発生した場合でも、障害が発生したチャネル制御部１１０がそれまで行っていた処理をクラスタ内の他のチャネル制御部１１０に引き継ぐようにすることができる。
【００４０】
記憶デバイス制御装置１００は信頼性向上のため電源供給が２系統化されており、チャネル制御部１１０のボードが装着される上記８つのスロットは電源系統毎に４つずつに分けられている。そこでクラスタを構成する場合には、両方の電源系統のチャネル制御部１１０のボードを含むようにする。これにより、片方の電源系統に障害が発生し電力の供給が停止しても、同一クラスタを構成する他方の電源系統に属するチャネル制御部１１０のボードへの電源供給は継続されるため、当該チャネル制御部１１０に処理を引き継ぐことができる。
【００４１】
尚、上述したように、チャネル制御部１１０は上記各スロットに装着可能なボードとして提供されるが、上記一つのボードは一体形成された複数枚数の回路基板から構成されているようにすることもできる。また、ディスク制御部１４０や共有メモリ１２０等の、記憶デバイス制御装置１００を構成する他の装置については図２８及び図２９に示されていないが、記憶デバイス制御装置１００の背面側等に装着されている。
【００４２】
ところで、筐体に収容されて構成される記憶デバイス制御装置１００及び記憶デバイス３００としては、例えばＳＡＮ対応として製品化されている従来構成の装置を利用することができる。特に上記のようにチャネル制御部ＣＨＮ１乃至４（１１０）のボードのコネクタ形状を従来構成の筐体に設けられているスロットにそのまま装着できる形状とすることで従来構成の装置をより簡単に利用することができる。つまり本実施例のストレージシステム６００は、既存の製品を利用することで容易に構築することができる。
【００４３】
＝＝ＦＢ−ＤＩＭＭの構成＝＝
図５はＦＢ−ＤＩＭＭ１０の機能ブロックを示している。ＦＢ−ＤＩＭＭ１０は記憶デバイス制御装置１００に設けられている、各種のデータの記憶用ハードウエア資源の構成要素として利用できるものであり、好適には以下の実施例で示す、上述したメモリ１１４の構成要素として適用されるものである。メモリ１１４の詳細な回路構成を説明するに際し、事前にＦＢ−ＤＩＭＭ１０の構成について説明する。ＦＢ−ＤＩＭＭ１０の複数が接続されてメモリ１１４を形成し、各ＦＢ−ＤＩＭＭ１０がメモリコントローラ１１３とシリアルインターフェース接続されている。図５は一つのＦＢ−ＤＩＭＭ１０の詳細構成を特に示すものであり、このＦＢ−ＤＩＭＭ１０とメモリコントローラ１１３とはシリアルインターフェース信号線２０によってシリアル接続されている。シリアルインターフェース信号線２０はメモリコントローラ１１３からＦＢ−ＤＩＭＭ１０へコマンド、アドレス、及びライトデータをシリアル伝送するためのシリアルインターフェース信号線２１と、ＦＢ−ＤＩＭＭ１０からメモリコントローラ１１３へリードデータをシリアル伝送するシリアルインターフェース信号線２２から成る。尚、シリアルインターフェース信号線２１，２２の本数が単数か、或いはそれぞれ複数であるかに拘わらず、メモリコントローラ１１３とＦＢ−ＤＩＭＭ１０（メモリ資源）との間の伝送形態がコマンド、アドレス、及びデータをシリアル伝送できるものであれば、この実施形態で述べる「シリアルインターフェース」に該当するものである。ここで、この実施形態における「シリアルインターフェース」とは、メモリコントローラとメモリモジュール（ＦＢ−ＤＩＭＭ）との間、そしてメモリモジュール（ＦＢ−ＤＩＭＭ）同士の間のそれぞれで各種の信号（コマンド、アドレス、又はデータ等）を伝送するための構成要素、例えば、シリアルインターフェース信号線、メモリインターフェース部（ポートと別称されることもある）を含むものとして理解される。
【００４４】
ＦＢ−ＤＩＭＭ１０は、メモリ素子であるＤＲＡＭの複数をモジュール化したものである。このＦＢ−ＤＩＭＭ１０はＤＩＭＭモジュール基板上に実装される８個のＤＲＡＭ１１−１，１１−２，…，１１−８と、シリアルインターフェース信号線２０を通じてメモリコントローラ１１３からシリアル伝送されるパケット形式のコマンド、アドレス、及びデータをバッファリングしてコマンド解析を行い、ＤＲＡＭ１１−１，１１−２，…，１１−８へのメモリアクセスを制御するバッファ部（Advanced Memory Buffer）１２とを備えて構成されている。ＦＢ−ＤＩＭＭ１０はバッファ部１１を通じて、他のＦＢ−ＤＩＭＭ１０とデイジーチェーン接続可能である。複数のＦＢ−ＤＩＭＭ１０がバッファ部１１を通じてデイジーチェーン接続される場合には、バッファ部１１はメモリコントローラ１１３から送信されるアドレスを参照して、自分宛のコマンドでない場合には、他のＦＢ−ＤＩＭＭ１０にコマンド等を転送する。尚、ＦＢ−ＤＩＭＭ１０に実装されるＤＲＡＭの構成（ＤＲＡＭの個数等）は各種存在し、ここで説明する構成はその一例である。
【００４５】
バッファ部１１はパス・スルー回路１３、クロック回路１４、デシリアライザー／デコード回路１５、データバスインターフェース１６、シリアライザー１７、及びパス・スルー回路１８を備えている。メモリコントローラ１１３からシリアルインターフェース信号線２１を通じてＦＢ−ＤＩＭＭ１０に供給されるコマンドはパス・スルー回路１３にて自分宛のコマンドか否かがチェックされる。自分宛のコマンドでない場合にはそのコマンドをスルーさせ、後続のＦＢ−ＤＩＭＭ１０に転送する。自分宛のコマンドである場合には当該コマンドはデシリアライザー／デコード回路１５にてコマンド解析される。当該コマンドがライトコマンドである場合には当該コマンドに続いて、書き込みアドレスとライトデータがデシリアライザー／デコード回路１５に供給される。デシリアライザー／デコード回路１５はＤＲＡＭ１１−１，１１−２，…，１１−８にライトアクセスするための制御信号を出力するとともに、ライトデータをパラレルデータに変換し、データバスインターフェース１６を通じてＤＲＡＭ１１−１，１１−２，…，１１−８に出力する。一方、当該コマンドがリードコマンドである場合には当該コマンドに続いて、読み取りアドレスがデシリアライザー／デコード回路１５に供給される。デシリアライザー／デコード回路１５はＤＲＡＭ１１−１，１１−２，…，１１−８にリードアクセスするための制御信号を出力する。ＤＲＡＭ１１−１，１１−２，…，１１−８から読み出されたリードデータはデータバスインターフェース１６を通じてシリアライザー１７に転送され、シリアルデータに変換される。パス・スルー回路１８はＤＲＡＭ１１−１，１１−２，…，１１−８から読み出されたリードデータ、又は後続のＦＢ−ＤＩＭＭ１０から転送されたリードデータをシリアルインターフェース信号線２２を通じてメモリコントローラ１１３に転送する。
【００４６】
尚、メモリアクセスに必要なＤＲＡＭクロックはクロックジェネレータ１９が生成する参照クロックを基にクロック回路１４によって生成される。また、メモリコントローラ１１３はＳＭ（System Management）バス２２を通じてＦＢ−ＤＩＭＭ１０とピア・ツー・ピアの通信を行い、システム管理やパワーマネージメントを行う。記憶デバイス制御装置１００の記憶装置として、シリアルインターフェースを有するＦＢ−ＤＩＭＭ１０を採用することにより、記憶デバイス制御装置１００のメモリアクセスの高速化及び回路素子の実装の容易化を図ることができる。
【００４７】
＝＝インターフェース二重化＝＝
本実施形態ではメモリコントローラ１１３とＦＢ−ＤＩＭＭ１０との間、及びＦＢ−ＤＩＭＭ１０同士をシリアルインターフェース信号線２０で接続し、更に、「シリアルインターフェースの二重化」を行っている。ここで、「シリアルインターフェースの二重化」とは、シリアルインターフェース信号線２０に障害が生じても、メモリコントローラ１１３からＦＢ−ＤＩＭＭ１０にメモリアクセスできるようにフェイルセーフ対策を講じるための各種対策を含み、例えば、（１）ライトデータの二重化、（２）アクセスパスの二重化、及び（３）シリアルインターフェース信号線の二重化の３パターンの一つ又はその複数の組み合わせがある。つまり、「シリアルインターフェースの二重化」には、メモリコントローラ１１３とＦＢ−ＤＩＭＭ１０との間の単一のシリアルインターフェースが二重化されている場合（上述の（３）の場合）や、メモリコントローラ１１３とＦＢ−ＤＩＭＭ１０との間のシリアルインターフェース接続によるアクセスパスが二重化されている場合（上述の（２）の場合）だけでなく、異なるＦＢ−ＤＩＭＭ１０のそれぞれから同一のデータをメモリコントローラ１１３から読み書きするためのシリアルインターフェースが２系統ある場合（上述の（１）の場合）を含むものとする。以下、各パターンについて説明する。
【００４８】
＝＝ライトデータの二重化＝＝
図６はライトデータの二重化を行うメモリ１１４の構成図である。メモリ１１４は複数のＦＢ−ＤＩＭＭ１０をデイジーチェーン接続して成る第１系列のメモリモジュール群４１と、複数のＦＢ−ＤＩＭＭ１０をデイジーチェーン接続して成る第２系列のメモリモジュール群４２とから構成されている。各メモリモジュール群４１，４２はシリアルインターフェース信号線２０−１，２０−２を通じてメモリコントローラ１１３と接続している。シリアルインターフェース信号線２０−１，２０−２のそれぞれは、図７に示すように、メモリコントローラ１１３からＦＢ−ＤＩＭＭ１０へコマンド、アドレス、及びライトデータをシリアル伝送するためのシリアルインターフェース信号線２０−１Ａ，２０−２Ａと、ＦＢ−ＤＩＭＭ１０からメモリコントローラ１１３へリードデータをシリアル伝送するシリアルインターフェース信号線２０−１Ｂ，２０−２Ｂを備えている。各々のシリアルインターフェース信号線２０−１，２０−２にはメモリコントローラ１１３からＦＢ−ＤＩＭＭ１０へのメモリアクセスの経路をスイッチング制御する制御する制御回路３１，３２が設置されている。制御回路３１，３２は信号線３０を通じて接続されており、相互にコマンドやデータの送受信を行うことができる。メモリコントローラ１１３は制御回路３１，３２と共働することによって各メモリモジュール群４１，４２へのメモリアクセスを行い、メモリモジュール群４１又はメモリモジュール群４２のうち何れか一方にライトアクセスするときは他方にもライトデータを書き込むことでライトデータを二重化している。即ち、ライトデータの二重書きをするために、２系統のシリアルインターフェース信号線２０−１，２０−２を設け、異なるＦＢ−ＤＩＭＭ１０から同一データを読み書きするアクセスパスを２系統用意している。このように構成することで、何れか一方の系列のメモリモジュール群４１，４２及び／又はシリアルインターフェース信号線２０−１，２０−２に障害が生じても、他方の系列にメモリアクセスすることができる（フェイルオーバー）。この場合、第１系列を稼働系（又は主系）とし、第２系列を待機系（又は従系）とすることで、第１系列のメモリモジュール群４１に書き込まれるライトデータと同一のデータを第２系列のメモリモジュール群４２に書き込むように制御すれば、第１系列のメモリモジュール群４１及び／又はシリアルインターフェース信号線２０−１に障害が発生した場合に、メモリコントローラ１１３は第２系列のメモリモジュール群４２にメモリアクセスすることができる。
【００４９】
各メモリモジュール群４１，４２に同一のライトデータを二重書きする処理手順について説明する。例えば、メモリコントローラ１１３がシリアルインターフェース信号線２０−１，２０−２を通じて制御回路３１及び／又は制御回路３２にアクセスして、制御回路３１及び／又は制御回路３２のスイッチング制御資源、例えば、スイッチングＬＳＩを制御して、メモリモジュール群４１及び４２へのアクセスパスを適宜選択してメモリモジュール群４１，４２に同一のライトデータを二重書きしてもよい。或いは、メモリコントローラ１１３から制御回路３１又は３２の何れか一方又は両者にライトコマンド、アドレス、及びライトデータを送り、これを受け取った制御回路３１又は３２がメモリモジュール群４１，４２に同一のライトデータを二重書きしてもよい。後者の場合の例として、例えば、メモリコントローラ１１３が制御回路３１にライトコマンド、アドレス、及びライトデータを送り、これを受け取った制御回路３１が第１系列のメモリモジュール群４１にライトデータを書き込む。制御回路３１は更にライトコマンド、アドレス、及びライトデータを信号線３０を介して制御回路３２に転送し、これを受け取った制御回路３２が第２系列のメモリモジュール群４２にライトデータを書き込む。
【００５０】
メモリコントローラ１１３がメモリモジュール群４１，４２からライトデータを読み出す処理手順として、各種の処理手順が考えられる。例えば、何れか一方の系列のメモリモジュール群４１，４２からデータを読み出してもよく、或いは両方の系列のメモリモジュール４１，４２からデータを読み出して両者が一致していれば誤りのないデータであると判断し、両者が一致しなければ誤り訂正を行うようにしてもよい。
【００５１】
シリアルインターフェース信号線２０−１，２０−２の何れかに障害が発生した場合のフェイルセーフ対策として、次に述べるような処理手順が考えられる。例えば、メモリコントローラ１１３と制御回路３１との間（図中のＡ点）のシリアルインターフェース信号線２０−１に障害が発生した場合、メモリコントローラ１１３は制御回路３１にアクセスできないことを後述の方法で検出し、制御回路３２にライトコマンド、アドレス、及びライトデータを送る。制御回路３２は、第２系列のメモリモジュール群４２にライトデータを書き込み、更にそのライトコマンド、アドレス、及びライトデータを制御回路３１に転送する。制御回路３２からライトコマンド、アドレス、及びライトデータを受け取った制御回路３１は第１系列のメモリモジュール群４１にライトデータを書き込む。上述のＡ点に加えて、更に制御回路３１と第１系列のメモリモジュール群４１との間（図中のＢ点）のシリアルインターフェース信号線２０−１に障害が発生した場合、制御回路３２からライトコマンド、アドレス、及びライトデータを受け取った制御回路３１は第１系列のメモリモジュール群４１へのライトデータの書き込みを行うことができない。ここで、Ａ点又はＢ点における障害発生は、メモリアクセスに対するレスポンスの有無（例えば、メモリアクセス完了を知らせるアクノリッジ信号の有無やリードアクセスに対するリードデータ送信の有無）によって検出可能である。制御回路３１，３２は各系列のメモリモジュール群４１，４２からレスポンスが返ってこない場合に、各系列のメモリモジュール群４１，４２を接続するシリアルインターフェース信号線２０−１，２０−２の何れかの箇所において、又は各系列のメモリモジュール群４１，４２に属するＦＢ−ＤＩＭＭ１０自体に何等かの障害が発生したことを検出し、障害発生の有無をステータス情報として情報交換するように構成してもよい。このように障害発生の有無を情報交換することで、例えば、Ｂ点において障害発生が検出された場合には、制御回路３２は制御回路３１へのライトコマンド、アドレス、及びライトデータの転送を行わなく済む。
【００５２】
一方、Ａ点で障害が発生した場合において、メモリコントローラ１１３がリードアクセスする場合には、リードコマンド、及びアドレスを制御回路３２に送って第２系列のメモリモジュール群４２からデータを読み出すか、或いはそのリードコマンド、及びアドレスを制御回路３２から制御回路３１に転送して制御回路３１が第１系列のメモリモジュール群４１からデータを読み出してもよい。Ａ点に加えて更にＢ点においても障害が発生した場合には、メモリコントローラ１１３は制御回路３２を介して第２系列のメモリモジュール群４２にリードアクセスすればよい。
【００５３】
図７はライトデータの二重化に加えて更にＥＣＣ（Error Checking and Correction）機能を実装したメモリ１１４の構成図である。ＦＢ−ＤＩＭＭ１０に書き込まれるデータに付加されるＥＣＣはメモリコントローラ１１３で生成することができる。ところが、ＦＢ−ＤＩＭＭ１０の数が多くなると、メモリコントローラ１１３の負荷が過大になる。更にメモリコントローラ１１３からシリアルインターフェース信号線２０−１，２０−２を通じてＦＢ−ＤＩＭＭ１０にデータがシリアル伝送される構成では、メモリコントローラ１１３側でＥＣＣを生成し、シリアル伝送される信号にＥＣＣを付加しても効果を期待することはできない。そこで、ＥＣＣ機能をＦＢ−ＤＩＭＭ１０側に実装することで、メモリコントローラ１１３の負荷が低減するとともに、ＤＲＡＭ１１−１，１１−２，…，１１−８のデータ保持不良等に起因する記録データの符号誤りを訂正することができる。これにより、ライトデータの二重化に加えてＥＣＣによるデータの信頼性向上を実現できる。尚、メモリコントローラ１１３からＦＢ−ＤＩＭＭ１０にシリアル伝送されるデータはブロック単位に区切られ、ＣＲＣ（Cyclic Redundancy Check）が付加される。データの受信側では受信データとＣＲＣの関連が正しいか否かを確認することで、誤り検出可能に構成されている。
【００５４】
ＦＢ−ＤＩＭＭ１０のバッファ部１２はメモリインターフェース部６１，６２、及びＤＲＡＭアクセス部６３を備える。ＤＲＡＭアクセス部６３はＥＣＣを生成するためのＥＣＣ生成部６４を備えている。メモリインターフェース部６１，６２は上述したパス・スルー回路１３，１８によって構成されている。ＤＲＭアクセス部６３は上述したクロック回路１４、デシリアライザー／デコード回路１５、データバスインターフェース１６、及びシリアライザー１７によって構成されている。メモリコントローラ１１３はシリアルインターフェース信号線２０−１，２０−２のそれぞれと接続するメモリインターフェース部５１，５２を備えている。
【００５５】
ＦＢ−ＤＩＭＭ１０へのライトアクセスが生じると、ＥＣＣ生成部６４はライトデータに基づいてＥＣＣを計算する。ＥＣＣとしては、例えば、２ビットのエラー検出及び１ビットのエラー検出・訂正が可能なハミング符号等が好適である。ＥＣＣ生成部６４が計算したＥＣＣはＥＣＣ格納用ＤＲＡＭ１１−９に書き込まれる。このように、ＦＢ−ＤＩＭＭ１０にＥＣＣ機能を実装することによって、メモリコントローラ１１３にＥＣＣ生成部６４を搭載する必要がなく、メモリコントローラ１１３の回路規模を小さくできる。メモリコントローラ１１３の回路規模が小さくなれば、例えば、図４に示すように、メモリコントローラ１１３をＣＰＵ１１２内に実装することができる。
【００５６】
図８はライトデータの二重化を行うメモリ１１４の他の構成を示している。同図において、制御回路３３は上述した制御回路３１，３２の機能を併せ持った回路であり、メモリモジュール群４１，４２にライトデータの二重書きを行うためのメモリアクセス経路のスイッチング制御は制御回路３３によって行われる。このように、複数の制御回路３１，３２の機能を単一の制御回路３３に実装することで、メモリ１１４の回路規模を小さくできる。図９は図８の構成に加えて、更にＦＢ−ＤＩＭＭ１０にＥＣＣ機能を実装したメモリ１１４の構成を示している。
【００５７】
＝＝アクセスパスの二重化＝＝
図１０はメモリコントローラ１１３からＦＢ−ＤＩＭＭ１０へのアクセスパスを二重化したメモリ１１４の構成図である。メモリ１１４はシリアルインターフェース信号線２０−１，２０−２によってメモリコントローラ１１３とループ接続された複数のＦＢ−ＤＩＭＭ１０を備えている。シリアルインターフェース信号線２０−１，２０−２の末端はインターフェース回路７０によって接続されている。インターフェース回路７０はシリアルインターフェース信号線２０−１からのメモリアクセスをシリアルインターフェース信号線２０−２に伝達する一方、シリアルインターフェース信号線２０−２からのメモリアクセスをシリアルインターフェース信号線２０−１に伝達する。複数のＦＢ−ＤＩＭＭ１０はループ状にデイジーチェーン接続されることで、メモリコントローラ１１３からシリアルインターフェース信号線２０−１を通じてインターフェース回路７０に至る第１系列のメモリモジュール４３と、メモリコントローラ１１３からシリアルインターフェース信号線２０−２を通じてインターフェース回路７０に至る第２系列のメモリモジュール４４に分けられる。
【００５８】
メモリコントローラ１１３はループ接続されたＦＢ−ＤＩＭＭ１０に対してループの双方向からメモリアクセス可能に構成されている。このように、ＦＢ−ＤＩＭＭ１０へのアクセスパスを二重化することで、一方のアクセスパス（メモリコントローラ１１３→シリアルインターフェース信号線２０−１→ＦＢ−ＤＩＭＭ１０）に障害が生じても、他方のアクセスパス（メモリコントローラ１１３→シリアルインターフェース信号線２０−２→ＦＢ−ＤＩＭＭ１０）を通じてメモリアクセスが可能となる。例えば、メモリコントローラ１１３とＦＢ−ＤＩＭＭ１０との間（図中のＣ点）に障害が生じた場合、メモリコントローラ１１３はシリアルインターフェース信号線２０−１を通じてＦＢ−ＤＩＭＭ１０にメモリアクセスすることはできないが、シリアルインターフェース信号線２０−２を通じてインターフェース回路７０にアクセスし、更にインターフェース回路７０からシリアルインターフェース信号線２０−１を通じて目的のＦＢ−ＤＩＭＭ１０にメモリアクセスできる。このようにアクセスパスを切り替えることで、シリアルインターフェース信号線２０−１，２０−２の障害箇所を特定することも可能である。
【００５９】
図１１はアクセスパスを二重化したメモリ１１４の詳細な構成図である。ＦＢ−ＤＩＭＭ１０のバッファ部１２はループの双方向からメモリアクセス可能なメモリインターフェース部６５，６６を備えている。バッファ部１２はループの双方向から略同時に行われるメモリアクセス、即ち、メモリインターフェース部６５，６６の双方から略同時に行われるメモリアクセスに対して、何れか一方のメモリアクセスを許容する排他制御部５５を備えている。メモリコントローラ１１３は上述したメモリインターフェース部５１，５２に加えて、更にインターフェース切り替え機構５３を備えている。インターフェース切り替え機構５３はＣＰＵ１１２からメモリアクセス要求を受けると、初期設定レジスタ５４に設定された設定内容に従って、メモリアクセスに使用するメモリインターフェース部５１，５２を選択する。初期設定レジスタ５４には各々のＦＢ−ＤＩＭＭ１０について、メモリアクセスをする上で常用的に使用するメモリインターフェース部５１又は５２が設定されている。例えば、第１系列のメモリモジュール４３に属するＦＢ−ＤＩＭＭ１０についてはメモリインターフェース部５１を常用的に使用し、第２系列のメモリモジュール４４に属するＦＢ−ＤＩＭＭ１０についてはメモリインターフェース部５２を常用的に使用する旨が設定されている。初期設定レジスタ５４への設定は上述の例に限られるものではなく、例えば、メモリアドレスに応じて常用的に使用するメモリインターフェース部５１又は５２の設定を行ってもよく、或いはメモリインターフェース部５１，５２の使用頻度に応じて、メモリアクセスに使用するメモリインターフェース部５１，５２を動的に切り替えてもよい。図１２は図１１の構成に加えて、更にＦＢ−ＤＩＭＭ１０にＥＣＣ機能を実装したメモリ１１４の構成を示している。ＥＣＣ機能についての説明は上述した図７の説明と同様である。
【００６０】
図２４はメモリアクセスに使用するアクセスパスの切り替え処理を記述したフローチャートである。システムが起動すると、メモリコントローラ１１３は初期設定レジスタ５４に設定された設定内容を読み取り（Ｓ１１）、設定内容に従って接続先のメモリインターフェース部５１又は５２を選択する（Ｓ１２）。次いで、シリアルインターフェース信号線２０−１又は２０−２に障害が発生したか否かをチェックし（Ｓ１３）、障害が発生していない場合には（Ｓ１３；ＮＯ）、接続先のメモリインターフェース部５１又は５２へのメモリコントローラ１１３の接続状態を維持する。障害が発生しない限り、Ｓ１２〜Ｓ１３のループを繰り返し実行する。接続先のメモリインターフェース部に接続するシリアルインターフェース信号線に障害が発生していると判定した場合には（Ｓ１３；ＹＥＳ）、メモリコントローラ１１３は接続先のメモリインターフェース部として、他方のメモリインターフェース部を選択する（Ｓ１４）。
【００６１】
＝＝インターフェース信号線二重化＝＝
図１３はメモリコントローラ１１３とメモリ１１４との間の単一のシリアルインターフェースを構成するシリアルインターフェース信号線８０を二重化したメモリ１１４の構成図である。メモリ１１４はデイジーチェーン接続された複数のＦＢ−ＤＩＭＭ１０を備えている。これら複数のＦＢ−ＤＩＭＭ１０のバッファ部１２はシリアルインターフェース信号線８０を通じてシリアル接続されている。シリアルインターフェース信号線８０は一対のシリアルインターフェース信号線２０−１，２０−２によって二重化されている。シリアルインターフェース信号線２０−１，２０−２のそれぞれは、図１４に示すように、メモリコントローラ１１３からＦＢ−ＤＩＭＭ１０へコマンド、アドレス、及びライトデータをシリアル伝送するためのシリアルインターフェース信号線２０−１Ａ，２０−２Ａと、ＦＢ−ＤＩＭＭ１０からメモリコントローラ１１３へリードデータをシリアル伝送するシリアルインターフェース信号線２０−１Ｂ，２０−２Ｂを備えている。このように単一のシリアルインターフェースを構成するシリアルインターフェース信号線８０を二重化することで、一方のシリアルインターフェース信号線２０−１（又は２０−２）に障害が発生しても、他方のシリアルインターフェース信号線２０−２（又は２０−１）を通じてＦＢ−ＤＩＭＭ１０にメモリアクセスすることができる。尚、シリアルインターフェース信号線８０は３以上に多重化してもよい。
【００６２】
図１４はインターフェース信号線を二重化したメモリ１１４の詳細な構成図である。ＦＢ−ＤＩＭＭ１０のバッファ部１２はメモリコントローラ１１３からシリアルインターフェース信号線２０−１，２０−２を通じて同方向（一方向）からメモリアクセス可能なメモリインターフェース部６１，６２，６７，６８を備えている。バッファ部１２はシリアルインターフェース信号線２０−１，２０−２を通じて同方向から略同時に行われるメモリアクセス、即ち、メモリインターフェース部６１，６７の双方から略同時に行われるメモリアクセスに対して、何れか一方のメモリアクセスを許容する排他制御部５５を備えている。メモリコントローラ１１３のインターフェース切り替え機構５３はＣＰＵ１１２からメモリアクセス要求を受けると、初期設定レジスタ５４に設定された設定内容に従って、メモリアクセスに使用するメモリインターフェース部５１又は５２のうち何れか一方を選択する。初期設定レジスタ５４にはメモリアクセスをする上で常用的に使用するメモリインターフェース部５１又は５２の情報が設定されている。例えば、シリアルインターフェース信号線２０−１に接続するメモリインターフェース部５１を常用的に使用する旨が設定されている。初期設定レジスタ５４への設定は上述の例に限られるものではなく、例えば、常用的に使用するメモリインターフェース部の情報をメモリアドレスに応じて適宜設定してもよく、或いはメモリインターフェース部５１及び５２の使用頻度に応じて、メモリアクセスに使用するメモリインターフェース部５１又は５２を動的に切り替えてもよい。メモリアクセスに使用するシリアルインターフェース信号線２０−１，２０−２の切り替え処理は図２４に示した処理手順と同じである。図１５は図１４の構成に加えて、更にＦＢ−ＤＩＭＭ１０にＥＣＣ機能を実装したメモリ１１４の構成を示している。
【００６３】
図１６はインターフェース信号線を二重化したメモリ１１４の他の構成を示している。メモリ１１４はデイジーチェーン接続された複数のＦＢ−ＤＩＭＭ１０を備えており、その両端のそれぞれにはメモリコントローラ１１３が設置されている。本構成ではメモリ１１４はシリアルインターフェース信号線８０の双方向からメモリアクセス可能に構成されており、シリアルインターフェース信号線８０だけでなく、メモリコントローラ１１３も二重化されている。このようにシリアルインターフェース信号線８０とメモリコントローラ１１３のそれぞれを二重化することでメモリシステムの信頼性を高めることができる。また、シリアルインターフェース信号線８０の双方向からのメモリアクセスを可能にすることで、障害箇所を特定することも可能である。
【００６４】
図１７は図１６に示したメモリ１１４の詳細な構成図である。ＦＢ−ＤＩＭＭ１０のバッファ部１２はメモリコントローラ１１３からシリアルインターフェース信号線２０−１，２０−２を通じて同方向（一方向）又は異方向（双方向）からメモリアクセス可能なメモリインターフェース部９１，９２，９３，９４を備えている。バッファ部１２はシリアルインターフェース信号線２０−１，２０−２を通じて同方向又は異方向から略同時に行われるメモリアクセス、即ち、メモリインターフェース部９１，９３の双方から略同時に行われるメモリアクセス、メモリインターフェース部９２，９４の双方から略同時に行われるメモリアクセス、メモリインターフェース部９１，９４の双方から略同時に行われるメモリアクセス、又はメモリインターフェース部９２，９３の双方から略同時に行われるメモリアクセスに対して、何れか一つのメモリアクセスを許容する排他制御部５６を備えている。
【００６５】
メモリコントローラ１１３のインターフェース切り替え機構５３はＣＰＵ１１２からメモリアクセス要求を受けると、初期設定レジスタ５４に設定された設定内容に従って、メモリアクセスに使用するメモリインターフェース部５１又は５２のうち何れか一方を選択する。初期設定レジスタ５４にはメモリアクセスをする上で常用的に使用するメモリインターフェース部５１又は５２の情報の他に、二重化されたメモリコントローラ１１３のうち何れのメモリコントローラ１１３がアクセス権を有しているかの情報も設定するように構成してもよい。何れのメモリコントローラ１１３がアクセス権を有しているかの情報が初期設定レジスタ５４に設定されていない場合には、二重化された２つのメモリコントローラ１１３が相互に通信を行って、何れのメモリコントローラ１１３がアクセス権を有するかを決定してもよい。メモリアクセスに使用するシリアルインターフェース信号線２０−１，２０−２の切り替え処理は図２４に示した処理手順と同じである。図１８は図１７の構成に加えて、更にＦＢ−ＤＩＭＭ１０にＥＣＣ機能を実装したメモリ１１４の構成を示している。
【００６６】
＝＝スイッチング機能＝＝
図１９及び図２０はシリアルインターフェース信号線８０に接続するメモリインターフェース部７１〜７４相互間の接続経路を切り替え可能に構成したＦＢ−ＤＩＭＭ１０を示している。本構成例は図１３〜図１８に示したインターフェース信号線二重化の変形例に相当するものであり、メモリインターフェース部７１〜７４はシリアルインターフェース信号線２０−１，２０−２の双方向からメモリアクセス可能に構成してもよい。例えば、図１９に示すように、メモリインターフェース部７１と７２、メモリインターフェース部７３と７４がそれぞれ接続されている場合において、シリアルインターフェース信号線２０−１上のＸ点と、シリアルインターフェース信号線２０−２上のＹ点で障害が発生すると、何れのシリアルインターフェース信号線２０−１，２０−２からも中央のＦＢ−ＤＩＭＭ１０へのメモリアクセスを行うことはできない。そこで、図２０に示すように、メモリインターフェース部７１の接続先をメモリインターフェース部７４に、メモリインターフェース部７３の接続先をメモリインターフェース部７２に切り替え可能に構成することで、シリアルインターフェース信号線２０−２→メモリインターフェース部７３→メモリインターフェース部７２→シリアルインターフェース信号線２０−１の経路又はその逆の経路を通じて、ＦＢ−ＤＩＭＭ１０にメモリアクセスすることができる。
【００６７】
＝＝ファイルレベルの二重化＝＝
ここで、再び図２を参照する。クラスタを構成する一対のチャネル制御部ＣＨＮ１乃至２（１１０）においては、一方のチャネル制御部ＣＨＮ１（１１０）のメモリ１１４に書き込まれるデータは他方のチャネル制御部ＣＨＮ２（１１０）のメモリ１１４にも書き込まれるようにデータの二重化が実施される。かかる構成により一方のチャネル制御部ＣＨＮ１（１１０）に何等かの障害が発生した場合であっても、チャネル制御部ＣＨＮ１（１１０）がそれまでに行っていた処理を他方のチャネル制御部ＣＨＮ２（１１０）が引き継ぐことが可能となる。二重化されるデータとして、例えば、情報処理装置２００からのファイルアクセス要求があったファイルデータ等を挙げることができる。
【００６８】
図２５はファイルデータの二重書き処理を記述したフローチャートである。ここではファイルアクセス要求を受けたチャネル制御部ＣＨＮ１（１１０）が自分のメモリ１１４だけでなく、チャネル制御部ＣＨＮ２（１１０）のメモリ１１４にもファイルデータを書き込むことによりファイルデータを二重化する例を説明する。チャネル制御部ＣＨＮ１（１１０）のネットワークインターフェース部１１１は情報処理装置１乃至２（２００）からファイルアクセス要求（データアクセスコマンド）を受け取る（Ｓ２１）。ファイルアクセス要求には、ファイル名、読み出し又は書き込み等のアクセス種別、ライトデータ、ＬＡＮ通信プロトコルのヘッダ情報等が含まれている。ＣＰＵ１１２はネットワークインターフェース部１１１を介して受信したファイルアクセス要求からファイル名を抽出する（Ｓ２２）。次いで、ＣＰＵ１１２はメモリ１１４に格納されているメタデータを参照し、ファイルデータの先頭位置とデータ長（容量）を取得する（Ｓ２３）。そして、ＣＰＵ１１２は入出力制御部１１５にディスクアクセスを指示する（Ｓ２４）。入出力制御部１１５はファイルの記憶位置とデータ長に基づいて、情報処理装置２００からのファイルアクセス要求に対するＩ／Ｏ要求（コマンド）を出力する（Ｓ２５）。このＩ／Ｏ要求は共有メモリ１２０に書き込まれる。これにより、記憶デバイス３００に対するデータアクセスが行われる。
【００６９】
チャネル制御部ＣＨＮ１（１１０）は情報処理装置１（２００）から「書き込み」のファイルアクセス要求を受けると、チャネル制御部ＣＨＮ１（１１０）のメモリ１１４にファイルデータを書き込んだ後に、チャネル制御部ＣＨＮ２（１１０）のメモリ１１４にもファイルデータを書き込む(Ｓ２６)。チャネル制御部ＣＨＮ１（１１０）は、このようにしてファイルデータの二重化を行うと、当該ファイルデータを記憶デバイス３００に書き込む。この際に、チャネル制御部ＣＨＮ１（１１０）はキャッシュメモリ１３０に当該ファイルデータを一旦書き込んでから記憶デバイス３００に書き込んでもよく、或いはキャッシュメモリ１３０に当該ファイルデータを書き込まずに記憶デバイス３００に直接書き込んでもよい。ここで、キャッシュメモリ１３０にファイルデータを書き込んだ後に、記憶デバイス３００にファイルデータを書き込んだ場合は、キャッシュメモリ１３０に書き込んだファイルデータを無効化してもよい。ここで、無効化とは、例えば、データの上書きを許容すること等をいう。
【００７０】
チャネル制御部ＣＨＮ１（１１０）は情報処理装置１（２００）から「読み取り」のファイルアクセス要求を受けると、チャネル制御部ＣＨＮ１（１１０）のメモリ１１４にリードアクセスの対象となるファイルデータが存在しているか否かを確認する。当該ファイルデータがメモリ１１４に存在している場合には、チャネル制御部ＣＨＮ１（１１０）はメモリ１１４から読み出したファイルデータを情報処理装置１（２００）に送信する。リードアクセスの対象となるファイルデータがメモリ１１４に存在してない場合には、チャネル制御部ＣＨＮ１（１１０）はキャッシュメモリ１３０に当該ファイルデータが存在しているか否かを確認し、キャッシュメモリ１３０に当該ファイルデータが存在している場合はキャッシュメモリ１３０から当該ファイルデータを読み取って、これを情報処理装置１（１１０）に送信する。当該ファイルデータがキャッシュメモリ１３０に存在してない場合には、チャネル制御部ＣＨＮ１（１１０）は記憶デバイス３００にアクセスして当該ファイルデータを読み取って、これを情報処理装置１（１１０）に送信する。チャネル制御部ＣＨＮ１（１１０）は記憶デバイス３００又はキャッシュメモリ１３０から取得したファイルデータをチャネル制御部ＣＨＮ２（１１０）のメモリ１１４に書き込む(Ｓ２６)。
【００７１】
ファイルデータの二重書きを行う具体的な処理手順として、例えば、チャネル制御部ＣＨＮ１（１１０）のメモリ１１４に一時記憶されたファイルデータをキャッシュメモリ１３０−１，１３０−２のそれぞれにデータ移動して二重書きし、チャネル制御部ＣＨＮ１（１１０）のメモリ１１４には当該ファイルデータを保持しないこととする（処理手順Ａ）ことも可能であり、或いはチャネル制御部ＣＨＮ１（１１０）のメモリ１１４に書き込まれたデータをチャネル制御部ＣＨＮ２（１１０）のメモリ１１４にも書き込むことでファイルデータの二重書きを行い、キャッシュメモリ１３０−１，１３０−２にはファイルデータを二重書きしないこととする（処理手順Ｂ）ことも可能である。更に、ファイルデータの二重書きの処理手順として処理手順Ｂを採用する場合は、接続部１５０の配線数を少なくするこが可能になるので、接続部１５０を小型化できる。また、チャネル制御部ＣＨＮ１及びＣＨＮ２（１１０）のメモリ１１４にデータを二重書きしておくことで、情報処理装置１（２００）からのアクセスに対するレスポンスタイムを高速化できる。
【００７２】
尚、チャネル制御部ＣＨＮ１（１１０）が情報処理装置１（２００）から「書き込み」のファイルアクセス要求を受けた場合において、記憶デバイス３００に書き込むファイルデータ（ライトデータ）は、上述の処理手順Ａと同様に、キャッシュメモリ１３０−１，１３０−２に二重書きしてもよく、或いは上述の処理手順Ｂと同様に、チャネル制御部ＣＨＮ１及びＣＨＮ２（１１０）のメモリ１１４に二重書きしてもよい。また、チャネル制御部ＣＨＮ１（１１０）が情報処理装置１（２００）から「読み込み」のファイルアクセス要求を受けた場合において、キャッシュメモリ１３０又は記憶デバイス３００から読み取ったファイルデータ（リードデータ）は上述の処理手順Ａと同様に、キャッシュメモリ１３０−１，１３０−２に二重書きしてもよく、或いは上述の処理手順Ｂと同様に、チャネル制御部ＣＨＮ１及びＣＨＮ２（１１０）のメモリ１１４に二重書きしてもよい。
【００７３】
尚、記憶デバイス３００にデータを書き込む上で、一旦、キャッシュメモリ１３０にデータを書き込んでから記憶デバイス３００に書き込んでもよく、或いはキャッシュメモリ１３０にデータを書き込まずにデータを直接、記憶デバイス３００に書き込んでもよい。アクセス頻度の高いデータをキャッシュメモリ１３０に記憶しておくことで、チャネル制御部１１０の処理速度を向上できる。キャッシュメモリ１３０へデータをキャッシしない場合には記憶デバイス制御装置１００の記憶資源が小容量で済む。
【００７４】
＝＝その他の実施形態＝＝
メモリコントローラ１１３とのシリアルインターフェースが二重化されたメモリ１１４はＣＰＵ１１２の一時記憶装置に限らず、ディスク制御装置１００のあらゆる一時記憶装置（例えば、共有メモリ１２０、キャッシュメモリ１３０、ディスク制御装置１４０のメモリ１４３等）に適用できる。
【００７５】
図２１は図１に示したストレージシステム６００において、一対のキャッシュメモリ１３０−１，１３０−２によってクラスタを構成した例を示している。キャッシュメモリ１３０−１，１３０−２はメモリコントローラ（キャッシュメモリコントローラ）１３１、メモリ１３２、及び変換回路１３３を備えている。メモリコントローラ１３１はチャネル制御部１１０又はディスク制御部１４０からメモリ１３２へのメモリアクセスを制御する回路である。メモリ１３２はＦＢ−ＤＩＭＭ１０をキャッシュメモリモジュールとするメモリ装置である。キャッシュメモリ１３０−１，１３０−２内のメモリコントローラ１３１、メモリ１３２、及び変換回路１３３の接続構成は、図１６に示すように、シリアルインターフェース信号線の二重化が行われている。即ち、キャッシュメモリ１３０−１のメモリ１３２はキャッシュメモリ１３０−１のメモリコントローラ１３１だけでなく、キャッシュメモリ１３０−２のメモリコントローラ１３１からもメモリアクセス可能である。同様に、キャッシュメモリ１３０−２のメモリ１３２はキャッシュメモリ１３０−２のメモリコントローラ１３１だけでなく、キャッシュメモリ１３０−１のメモリコントローラ１３１からもメモリアクセス可能である。もとより、キャッシュメモリ１３０−１，１３０−２内のメモリコントローラ１３１とメモリ１３２との間のシリアルインターフェースの二重化は、上述した（１）ライトデータの二重化（図６乃至図９）、或いは（２）アクセスパスの二重化（図１０乃至図１２）の構成を採用してもよい。
【００７６】
クラスタを構成するキャッシュメモリ１３０−１，１３０−２は信号線１３０ａを通じて相互にデータ通信可能に構成されており、データを共有することができる。キャッシュメモリ１３０−１，１３０−２間でデータ通信を行う場合、両者の距離は長いため、クロック分配型の構成では信号のスキューの問題が生じ得る。そこで、本実施形態ではかかる問題を考慮して、キャッシュメモリ１３０−１，１３０−２間の通信をクロック抽出型にする構成を採用した。より具体的には、メモリ１３２はクロック分配型の構成を採用しているので、キャッシュメモリ１３０−１，１３０−２間のインターフェースにおいて、クロック分配型からクロック抽出型に変換する構成を採用した。メモリコントローラ１３１からメモリ１３２に伝送されるデータ信号は８Ｂ／１０Ｂ符号化されており、そのデータ信号にはクロックが埋め込まれている。変換回路１３３はそのデータ信号を１０Ｂ／８Ｂ変換（復号化）することによりエンベデッドクロックを抽出する。キャッシュメモリ１３０−１，１３０−２のそれぞれに含まれる変換回路１３３は、信号線１３０ａを介して接続されている。キャッシュメモリ１３０−１，１３０−２は信号線１３０ａを通じてデータ通信を行うことができる。例えば、キャッシュメモリ１３０−１のメモリコントローラ１３１はキャッシュメモリ１３０−２のメモリ１３２にメモリアクセスすることができる。この他にも、キャッシュメモリ１３０−１，１３０−２は信号線１３０ａを通じてハートビート通信を行うことで、相手の故障の有無を検出できる。
【００７７】
一対のキャッシュメモリ１３０−１，１３０−２においては、一方のキャッシュメモリ１３０−１に書き込まれるデータは他方のキャッシュメモリ１３０−２にも書き込まれるようにデータの二重化が実施される。かかる構成により一方のキャッシュメモリ１３０−１に何等かの障害が発生した場合であっても、ストレージシステム６００はキャッシュメモリ１３０−２に記憶されたデータを利用して、それまでに行っていた処理を引き継ぐことができる。キャッシュメモリ１３０−１，１３０−２に二重化されるデータとして、例えば、記憶デバイス３００に読み書きされるブロックデータ等を挙げることができる。
【００７８】
図２６はブロックデータの二重書き処理を記述したフローチャートである。ここではファイルアクセス要求を受けたチャネル制御部ＣＨＮ１（１１０）がキャッシュメモリ１３０−１，１３０−２にブロックデータを書き込む例を説明する。チャネル制御部ＣＨＮ１（１１０）のネットワークインターフェース部１１１は情報処理装置１乃至２（２００）からファイルアクセス要求（データアクセスコマンド）を受け取る（Ｓ３１）。ファイルアクセス要求には、ファイル名、読み出し又は書き込み等のアクセス種別、ライトデータ、ＬＡＮ通信プロトコルのヘッダ情報等が含まれている。ＣＰＵ１１２はネットワークインターフェース部１１１を介して受信したファイルアクセス要求からファイル名を抽出する（Ｓ３２）。次いで、ＣＰＵ１１２はメモリ１１４に格納されているメタデータを参照し、ファイルデータの先頭位置とデータ長（容量）を取得する（Ｓ３３）。そして、ＣＰＵ１１２は入出力制御部１１５にディスクアクセスを指示する（Ｓ３４）。入出力制御部１１５はファイルの記憶位置とデータ長に基づいて、情報処理装置１乃至２（２００）からのファイルアクセス要求に対するＩ／Ｏ要求（コマンド）を出力する（Ｓ３５）。このＩ／Ｏ要求は共有メモリ１２０に書き込まれる。これにより、記憶デバイス３００に対するデータアクセスが行われる。情報処理装置１乃至２（２００）から「書き込み」のファイルアクセス要求があった場合には、入出力制御部１１５は情報処理装置１乃至２（２００）から受け取ったライトデータ（ブロックデータ）をキャッシュメモリ１３０−１，１３０−２に書き込み、情報処理装置１乃至２（２００）から「読み取り」のファイルアクセス要求があった場合には、記憶デバイス３００からデータを読み取ったディスク制御部１４０がキャッシュメモリ１３０−１，１３０−２にリードデータ（ブロックデータ）を書きこむ（Ｓ３６）。
【００７９】
ブロックデータの二重書きを行う処理手順として、チャネル制御部ＣＨＮ１（１１０）がキャッシュメモリ１３０−１，１３０−２の両方にブロックデータを書き込むように構成してもよく、或いはチャネル制御部ＣＨＮ１（１１０）がキャッシュメモリ１３０−１のみにブロックデータを書き込み、その後、共有メモリ１２０にブロックデータの書き込みコマンドを書き込んでおき、当該コマンドを読み取ったメモリコントローラ１３１又はディスク制御部１４０が当該ブロックデータをキャッシュメモリ１３０−２に書き込むように構成してもよい。或いは、キャッシュメモリ１３０−１，１３０−２にブロックデータ書き込み用のＣＰＵを実装しておいて、チャネル制御部ＣＨＮ１（１１０）が共有メモリ１２０に書き込んだ書き込みコマンドを当該ＣＰＵが読み取って、当該ブロックデータをキャッシュメモリ１３０−２に書き込むように構成してもよい。或いは、ディスク制御部１４０が共有メモリ１２０にキャッシュメモリ１３０−２への書き込みコマンドを書き込み、当該書き込みコマンドを読み取ったメモリコントローラ１３１（或いはブロックデータ書き込み用のＣＰＵ）又はチャネル制御部ＣＨＮ１（１１０）が当該ブロックデータをキャッシュメモリ１３０−２に書き込むように構成してもよい。このように構成することで、接続部１５０の配線数を少なくすることができ、接続部１５０を小型化できる効果が得られる。チャネル制御部ＣＨＮ、ＣＨＦ、ＣＨＡ（１１０）の数が多い程、その効果は大きい。
【００８０】
尚、チャネル制御部ＣＨＮ１乃至ＣＨＮ４（１１０）がキャッシュメモリ１３０−１，１３０−２の何れにメモリアクセスするかは、それぞれのキャッシュメモリ１３０−１，１３０−２に対するアクセス頻度に応じて動的に切り替えてもよく、或いは両者に対して交互にアクセスするように構成してもよい。或いは、一方のキャッシュメモリを稼働系とし、他方のキャッシュメモリを待機系として予め設定しておき、通常は稼働系のキャッシュメモリにメモリアクセスするように構成してもよい。何れの場合においても、一方のキャッシュメモリに障害が発生した場合には、他方のキャッシュメモリにメモリアクセスすればよい。
【００８１】
キャッシュメモリ１３０−１に障害が発生した場合には、ディスク制御部１４０によってキャッシュメモリ１３０−２のデータを記憶デバイス３００に書き込むように制御するのが好ましい。キャッシュメモリ１３０−２に記憶されているデータと同一のデータを記憶デバイス３００にも記憶しておくことで、データを二重化することが可能となり、ストレージシステム６００の信頼性を確保できる。
【００８２】
図２１の構成によれば、チャネル制御部ＣＨＮ１（１１０）と接続部１５０との間（例えば図中のＰ点）に障害が発生した場合には、接続部１５０と信号線１３０ａを通じてキャッシュメモリ１３０−１とキャッシュメモリ１３０−２との間でデータの二重化を行うことができる。
【００８３】
図２２はチャネル制御部ＣＨＮ１及びＣＨＮ２（１１０）を接続してクラスタを構成するとともに、キャッシュメモリ１３０−１及び１３０−２を接続してクラスタを構成した場合の構成図を示している。本構成においては、チャネル制御部ＣＨＮ１のメモリ１１４とチャネル制御部ＣＨＮ２のメモリ１１４のそれぞれにファイルデータを記憶することによりファイルデータの二重化を行ってもよく、或いはキャッシュメモリ１３０−１とキャッシュメモリ１３０−２のそれぞれにブロックデータを記憶することによりブロックデータの二重化を行ってもよい。本構成によれば、キャッシュメモリ１３０−１，１３０−２のメモリ容量を大きく確保できる。
【００８４】
図２３はチャネル制御部ＣＨＡ１乃至２（１１０）を備える記憶デバイス制御装置１００において、一対のキャッシュメモリ１３０−１，１３０−２によってクラスタを構成した例を示している。この構成の場合における、キャッシュメモリ１３０−１，１３０−２へのブロックデータの二重書きは以下のようにして行われる。図２７はブロックデータの二重書きの処理手順を記述したフローチャートである。チャネル制御部ＣＨＡ１（１１０）のネットワークインターフェース部１１１は情報処理装置５（２００）からブロックアクセス要求を受け取る（Ｓ４１）。すると、入出力制御部１１５はブロックアクセス要求に対するＩ／Ｏ要求（コマンド）を出力する（Ｓ４２）。このＩ／Ｏ要求は共有メモリ１２０に書き込まれる。これにより、記憶デバイス３００に対するデータアクセスが行われる。情報処理装置５（２００）から「書き込み」のブロックアクセス要求があった場合には、入出力制御部１１５は情報処理装置５（２００）から受け取ったライトデータ（ブロックデータ）をキャッシュメモリ１３０−１，１３０−２に書き込み、情報処理装置５（２００）から「読み取り」のブロックアクセス要求があった場合には、記憶デバイス３００からデータを読み取ったディスク制御部１４０がキャッシュメモリ１３０−１，１３０−２にリードデータ（ブロックデータ）を書きこむ（Ｓ４３）。
【００８５】
以上、本発明の実施形態について説明したが、本実施形態は本発明の理解を容易にするためのものであり、本発明を限定解釈するものではない。本発明はその趣旨を逸脱することなく、変更・改良され得るとともに、本発明にはその等価物も含まれる。例えば、本実施形態で述べたメモリシステム１１９は記憶デバイス制御装置１００に限らず、高度な信頼性が要求される計算機に適用可能である。また、メモリシステム１１９は上述したシリアルインターフェースを備えることによって、高信頼性が確保できる他、回路素子の実装が容易になる効果がある。
【図面の簡単な説明】
【００８６】
【図１】本実施形態のストレージシステムの構成図である。
【図２】本実施形態のストレージシステムの詳細な構成図である。
【図３】本実施形態のディスク制御部の構成図である。
【図４】本実施形態のチャネル制御部の構成図である。
【図５】本実施形態のＦＢ−ＤＩＭＭの構成図である。
【図６】本実施形態のメモリの構成図である。
【図７】本実施形態のメモリの構成図である。
【図８】本実施形態のメモリの構成図である。
【図９】本実施形態のメモリの構成図である。
【図１０】本実施形態のメモリの構成図である。
【図１１】本実施形態のメモリの構成図である。
【図１２】本実施形態のメモリの構成図である。
【図１３】本実施形態のメモリの構成図である。
【図１４】本実施形態のメモリの構成図である。
【図１５】本実施形態のメモリの構成図である。
【図１６】本実施形態のメモリの構成図である。
【図１７】本実施形態のメモリの構成図である。
【図１８】本実施形態のメモリの構成図である。
【図１９】本実施形態のメモリの構成図である。
【図２０】本実施形態のメモリの構成図である。
【図２１】本実施形態のストレージシステムの構成図である。
【図２２】本実施形態のストレージシステムの構成図である。
【図２３】本実施形態のストレージシステムの構成図である。
【図２４】本実施形態のファイルデータの二重化処理のフローチャートである。
【図２５】本実施形態のファイルデータの二重化処理のフローチャートである。
【図２６】本実施形態のブロックデータの二重化処理のフローチャートである。
【図２７】本実施形態のアクセスパスの切り替え処理のフローチャートである。
【図２８】本実施形態のストレージシステムの外観構成図である。
【図２９】本実施形態のストレージシステムの外観構成図である。
【符号の説明】
【００８７】
１０…ＦＢ−ＤＩＭＭ  １１…ＤＲＡＭ  １２…バッファ部  １００…記憶デバイス制御装置  １１０…チャネル制御部  １１２…ＣＰＵ  １１３…メモリコントローラ  １１４…メモリ  １１５…入出力制御部  １１０…記憶デバイス制御装置  １３０…キャッシュメモリ  ６００…ストレージシステム
【図１】
2006065697.tif 000003
【図２】
2006065697.tif 000004
【図３】
2006065697.tif 000005
【図４】
2006065697.tif 000006
【図５】
2006065697.tif 000007
【図６】
2006065697.tif 000008
【図７】
2006065697.tif 000009
【図８】
2006065697.tif 000010
【図９】
2006065697.tif 000011
【図１０】
2006065697.tif 000012
【図１１】
2006065697.tif 000013
【図１２】
2006065697.tif 000014
【図１３】
2006065697.tif 000015
【図１４】
2006065697.tif 000016
【図１５】
2006065697.tif 000017
【図１６】
2006065697.tif 000018
【図１７】
2006065697.tif 000019
【図１８】
2006065697.tif 000020
【図１９】
2006065697.tif 000021
【図２０】
2006065697.tif 000022
【図２１】
2006065697.tif 000023
【図２２】
2006065697.tif 000024
【図２３】
2006065697.tif 000025
【図２４】
2006065697.tif 000026
【図２５】
2006065697.tif 000027
【図２６】
2006065697.tif 000028
【図２７】
2006065697.tif 000029
【図２８】
2006065697.tif 000030
【図２９】
2006065697.tif 000031