(57)【要約】【課題】高性能かつ高信頼性を有する半導体ストレージ装置およびストレージシステムを提供する。【解決手段】このストレージシステム１は、サーバ２と半導体ストレージ装置４の外部入出力ポート１０とを、サーバ２内のＣＰＵ２ａ，メモリ２ｂ等を接続する周辺バス，メモリバス，内部バス等のシステムバス２ｃを外部に延長してプロトコル変換を行わない高速のシリアルインタフェース３として接続したものである。半導体ストレージ装置４は、シリアルインタフェース３上で伝送エラーが生じたり、半導体ストレージ装置４内でエラーが生じると、それらのエラーを検出し、検出結果を外部からアクセス可能なレジスタに記憶する。【選択図】図１
2007188428.tif 000002
【特許請求の範囲】
【請求項１】
サーバ内のシステムバスを外部に延長し、前記システムバスがシリアルインタフェースとして直接接続された外部入出力ポートを備えたことを特徴とする半導体ストレージ装置。
【請求項２】
さらに、前記シリアルインタフェースにおいて初期化時に接続に成功したシリアル伝送リンクのうち、予め設定されたリンク数を用いて前記サーバと接続する装置コントローラを備えたことを特徴とする請求項１に記載の半導体ストレージ装置。
【請求項３】
前記装置コントローラは、接続に成功したシリアル伝送リンクを検出する外部リンク検出部と、前記外部リンク検出部の検出結果を記憶し、外部からアクセス可能な第１のレジスタとを備えたことを特徴とする請求項２に記載の半導体ストレージ装置。
【請求項４】
前記装置コントローラは、制御バスおよびメモリバスを介してメモリコントローラが接続され、
前記メモリコントローラは、前記メモリバスの下り方向伝送におけるエラーを検出する下りバスエラー検出部と、メモリへのアクセスに関するエラーを検出するメモリエラー検出部と、前記下りバスエラー検出部および前記メモリエラー検出部の検出結果を記憶し、外部から前記制御バスを介してアクセス可能な第３のレジスタとを備え、
前記装置コントローラは、前記メモリバスの上り方向伝送におけるエラーを検出する上りバスエラー検出部と、前記上りバスエラー検出部の検出結果を記憶し、外部からアクセス可能な第２のレジスタとを備えたことを特徴とする請求項３に記載の半導体ストレージ装置。
【請求項５】
前記装置コントローラは、前記第１乃至３のレジスタの内容を読み出し、あらかじめ設定されたビットが有効である場合にデータ転送を終了し、前記サーバに対してエラー割込信号を出力することを特徴とする請求項４に記載の半導体ストレージ装置。
【請求項６】
前記シリアルインタフェースは、２本の信号線を１レーンとして使用する差動伝送方式によることを特徴とする請求項１に記載の半導体ストレージ装置。
【請求項７】
ストレージサーバと、前記ストレージサーバに接続された半導体ストレージ装置とを有するストレージシステムにおいて、
前記半導体ストレージ装置は、前記ストレージサーバ内のシステムバスを外部に延長し、前記システムバスがシリアルインタフェースとして直接接続された外部入出力ポートを備えたことを特徴とするストレージシステム。
【請求項８】
さらに、磁気ストレージ装置を備え、
前記ストレージサーバは、前記磁気ストレージ装置を接続する第１の外部入出力ポートと、前記半導体ストレージ装置を接続する第２の外部入出力ポートとを備え、前記第２の外部入出力ポートの各ポート当たりの伝送帯域は、前記第１の外部入出力ポートの各ポート当たりの伝送帯域よりも高いことを特徴とする請求項７に記載のストレージシステム。
【請求項９】
前記半導体ストレージは、さらに、前記シリアルインタフェースにおいて初期化時に接続に成功したシリアル伝送リンクのうち、予め設定されたリンク数を用いて前記ストレージサーバと接続する装置コントローラを備えたことを特徴とする請求項７に記載のストレージシステム。
【請求項１０】
前記装置コントローラは、制御バスおよびメモリバスを介してメモリコントローラが接続され、前記シリアルインタフェースにおいて接続に成功したシリアル伝送リンクを検出する外部リンク検出部と、前記外部リンク検出部の検出結果を記憶し、外部からアクセス可能な第１のレジスタと、前記メモリバスの上り方向伝送におけるエラーを検出する上りバスエラー検出部と、前記上りバスエラー検出部の検出結果を記憶し、外部からアクセス可能な第２のレジスタとを備え、
前記メモリコントローラは、前記メモリバスの下り方向伝送におけるエラーを検出する下りバスエラー検出部と、メモリへのアクセスに関するエラーを検出するメモリエラー検出部と、前記下りバスエラー検出部および前記メモリエラー検出部の検出結果を記憶し、外部から前記制御バスを介してアクセス可能な第３のレジスタとを備え、
前記ストレージサーバは、前記第２の外部入出力ポートから前記第１乃至３のレジスタを定期的に読み出し、あらかじめ設定されたビットが有効である場合に、該当する前記半導体ストレージ装置に対し関連するデータ転送を終了することを特徴とする請求項９に記載のストレージシステム。
【請求項１１】
前記ストレージサーバは、前記第２の外部入出力ポートからエラー割込信号を検出した場合、該当する前記半導体ストレージ装置に対し関連するデータ転送を終了することを特徴とする請求項８に記載のストレージシステム。
【請求項１２】
前記ストレージサーバは、前記半導体ストレージ装置を外部記憶装置として機能させることを特徴とする請求項８に記載のストレージシステム。
【請求項１３】
。
前記ストレージサーバは、前記半導体ストレージ装置を前記磁気ストレージ装置のキャッシュメモリとして機能させるキャッシュ制御手段を備えたことを特徴とする請求項８に記載のストレージシステム。
【請求項１４】
前記キャッシュ制御手段は、前記ストレージサーバ上のソフトウェアにより実現されることを特徴とする請求項１３に記載のストレージシステム。
【請求項１５】
前記半導体ストレージ装置は、アクセス対象ブロックがキャッシュにヒットしたか否かを確認するブロックアドレス検索処理手段を備えたことを特徴とする請求項１３に記載のストレージシステム。
【請求項１６】
前記ブロックアドレス検索処理手段は、前記装置コントローラもしくは前記メモリコントローラに設けられたことを特徴とする請求項１５に記載のストレージシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体ストレージ装置およびストレージシステムに関する。
【背景技術】
【０００２】
従来のストレージシステムは、一般的な構成として、サーバにＳＣＳＩ(Small Computer System Interface)バスを介してハードディスク（ＨＤＤ）を接続している（例えば、特許文献１参照。）。
【０００３】
このストレージシステムでは、サーバの内部信号をプロトコル変換によりＳＣＳＩバスに適合した信号に変換してＨＤＤに接続している。
【特許文献１】特開平８−１５３０１４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかし、従来のストレージシステムによると、信頼性の高い伝送が可能であるが、信号変換にはオーバーヘッドがあるため、レスポンスが遅い、ＳＣＳＩバスの伝送性能は、ＨＤＤのアクセス速度に合わせた仕様になっているため、伝送帯域が十分でない等の問題がある。
【０００５】
従って、本発明の目的は、高性能かつ高信頼性を有する半導体ストレージ装置およびストレージシステムを提供することにある。
【課題を解決するための手段】
【０００６】
本発明の第１の態様は、上記目的を達成するため、サーバ内のシステムバスを外部に延長し、前記システムバスがシリアルインタフェースとして直接接続された外部入出力ポートを備えたことを特徴とする半導体ストレージ装置。
【０００７】
さらに、前記シリアルインタフェースにおいて初期化時に接続に成功したシリアル伝送リンクのうち、予め設定されたリンク数を用いて前記サーバと接続する装置コントローラを備えた構成とすることができる。
【０００８】
前記装置コントローラは、接続に成功したシリアル伝送リンクを検出する外部リンク検出部と、前記外部リンク検出部の検出結果を記憶し、外部からアクセス可能な第１のレジスタとを備えた構成とすることができる。シリアルインタフェース上の伝送エラーを検出することにより、信頼性が高くなる。
【０００９】
前記装置コントローラは、制御バスおよびメモリバスを介してメモリコントローラが接続され、前記メモリコントローラは、前記メモリバスの下り方向伝送におけるエラーを検出する下りバスエラー検出部と、メモリへのアクセスに関するエラーを検出するメモリエラー検出部と、前記下りバスエラー検出部および前記メモリエラー検出部の検出結果を記憶し、外部から前記制御バスを介してアクセス可能な第３のレジスタとを備え、前記装置コントローラは、前記メモリバスの上り方向伝送におけるエラーを検出する上りバスエラー検出部と、前記上りバスエラー検出部の検出結果を記憶し、外部からアクセス可能な第２のレジスタとを備えた構成とすることができる。シリアルインタフェース上の伝送エラー、および装置内のエラーを検出することにより、信頼性がより高くなる。
【００１０】
前記装置コントローラは、前記第１乃至３のレジスタの内容を読み出し、あらかじめ設定されたビットが有効である場合にデータ転送を終了し、前記サーバに対してエラー割込信号を出力する構成とすることができる。
【００１１】
前記シリアルインタフェースは、２本の信号線を１レーンとして使用する差動伝送方式による構成とすることができる。
【００１２】
本発明の第２の態様は、上記目的を達成するため、ストレージサーバと、前記ストレージサーバに接続された半導体ストレージ装置とを有するストレージシステムにおいて、前記半導体ストレージ装置は、前記ストレージサーバ内のシステムバスを外部に延長し、前記システムバスがシリアルインタフェースとして直接接続された外部入出力ポートを備えたことを特徴とするストレージシステムを提供する。
【００１３】
さらに、磁気ストレージ装置を備え、前記ストレージサーバは、前記磁気ストレージ装置を接続する第１の外部入出力ポートと、前記半導体ストレージ装置を接続する第２の外部入出力ポートとを備え、前記第２の外部入出力ポートの各ポート当たりの伝送帯域は、前記第１の外部入出力ポートの各ポート当たりの伝送帯域よりも高いものを用いることができる。
【００１４】
前記半導体ストレージは、さらに、前記シリアルインタフェースにおいて初期化時に接続に成功したシリアル伝送リンクのうち、予め設定されたリンク数を用いて前記ストレージサーバと接続する装置コントローラを備えた構成とすることができる。
【００１５】
前記装置コントローラは、制御バスおよびメモリバスを介してメモリコントローラが接続され、前記シリアルインタフェースにおいて接続に成功したシリアル伝送リンクを検出する外部リンク検出部と、前記外部リンク検出部の検出結果を記憶し、外部からアクセス可能な第１のレジスタと、前記メモリバスの上り方向伝送におけるエラーを検出する上りバスエラー検出部と、前記上りバスエラー検出部の検出結果を記憶し、外部からアクセス可能な第２のレジスタとを備え、
前記メモリコントローラは、前記メモリバスの下り方向伝送におけるエラーを検出する下りバスエラー検出部と、メモリへのアクセスに関するエラーを検出するメモリエラー検出部と、前記下りバスエラー検出部および前記メモリエラー検出部の検出結果を記憶し、外部から前記制御バスを介してアクセス可能な第３のレジスタとを備え、
前記ストレージサーバは、前記第２の外部入出力ポートから前記第１乃至３のレジスタを定期的に読み出し、あらかじめ設定されたビットが有効である場合に、該当する前記半導体ストレージ装置に対し関連するデータ転送を終了するようにしてもよい。
【００１６】
前記ストレージサーバは、前記第２の外部入出力ポートからエラー割込信号を検出した場合、該当する前記半導体ストレージ装置に対し関連するデータ転送を終了するようにしてもよい。
【００１７】
前記ストレージサーバは、前記半導体ストレージ装置を外部記憶装置として機能させるようにしてもよい。
【００１８】
前記ストレージサーバは、前記半導体ストレージ装置を前記磁気ストレージ装置のキャッシュメモリとして機能させるキャッシュ制御手段を備えた構成とすることができる。
【００１９】
前記キャッシュ制御手段は、前記ストレージサーバ上のソフトウェアにより実現されるようにしてもよい。
【００２０】
前記半導体ストレージ装置は、アクセス対象ブロックがキャッシュにヒットしたか否かを確認するブロックアドレス検索処理手段を備えた構成とすることができる。
【００２１】
前記ブロックアドレス検索処理手段は、前記装置コントローラもしくは前記メモリコントローラに設けることができる。
【００２２】
上記第１および第２の態様によれば、サーバ内のシステムバスをシリアルインタフェースとして外部入出力ポートに直接接続することにより、シリアルインタフェースとしてプロトコル変換を行わない高速のインタフェースを用いることができる。
【発明の効果】
【００２３】
本発明によれば、高性能かつ高信頼性を有する半導体ストレージ装置およびストレージシステムを提供することができる。
【発明を実施するための最良の形態】
【００２４】
［第１の実施の形態］
図１は、本発明の第１の実施の形態に係るストレージシステムを示す。このストレージシステム１は、サーバ２と半導体ストレージ装置４の外部入出力ポート１０とを、サーバ２内のＣＰＵ２ａ，メモリ２ｂ等をインターフェース２ｃを介して接続する周辺バス，メモリバス，内部バス等のシステムバス２ｄを外部に延長してプロトコル変換を行わない高速のシリアルインタフェース３として接続したものである。
【００２５】
図２は、半導体ストレージ装置の内部構成を示す。この半導体ストレージ装置４は、上記の外部入出力ポート１０、装置コントローラ２０、外部リンク検出部２１、上りバスエラー検出部２２、メモリコントローラ３０、下りバスエラー検出部３１、メモリ３２（３２ａ，３２ｂ，３２ｃ）、メモリバス１２０、および制御バス１３０を有して構成されている。
【００２６】
シリアルインタフェース３は、例えば、ＰＣＩ  Ｅｘｐｒｅｓｓ（登録商標）、ＨｙｐｅｒＴｒａｎｓｐｏｒｔ（登録商標）、ＮｕｍａＬｉｎｋ（登録商標）等の高速なインタフェース（Ｉ／Ｆ）を用いることができる。しかし、この構成では、シリアルインタフェース３上で伝送エラーが生じたり、半導体ストレージ装置４内でエラーが生じると、最悪サーバ２が停止する危険性があり、システム全体としての信頼性を確保できないおそれがある。そこで、本実施の形態では、後述するように伝送エラーを検出して対応処理を施すことで、高信頼性を実現している。
【００２７】
外部入出力ポート１０は、シリアルインタフェース３を介して受信する外部入出力信号１００を各独立信号１１０〜１１３に変換して装置コントローラ２０との間で入出力を行う。外部入出力信号１００は、サーバ２との間の複数の独立なシリアル伝送リンクに相当する。なお、本実施の形態では、外部入出力信号１００は、独立な４本のシリアル伝送リンクから構成され、外部入出力ポート１０と装置コントローラ２０との間の信号も４本（信号１１０〜１１３）としているが、１本でも、何本でも構わない。
【００２８】
装置コントローラ２０は、外部とのインタフェースを司ると共に、メモリバス１２０および制御バス１３０の制御を行う。メモリコントローラ３０は、メモリ３２とのインタフェースを司る。また、装置コントローラ２０は、初期化時に接続に成功したシリアル伝送リンクのうち、予め設定されたリンク数を用いてサーバ２と接続する。
【００２９】
外部リンク検出部２１は、サーバ２との間で接続が確立できたシリアル伝送リンクを検出する。上りバスエラー検出部２２は、訂正検出回路を備え、上り方向の伝送エラーを検出する。下りバスエラー検出部３１は、訂正検出回路を備え、下り方向の伝送エラーを検出する。
【００３０】
メモリ３２は、ＤＲＡＭ、ＳＲＡＭ等の揮発性メモリや、不揮発性メモリを用いることができる。また、メモリ３２は、同図では３つ接続されているが、３つに限定されない。
【００３１】
（第１の実施の形態の動作）
次に、第１の実施の形態の動作を場合を分けて説明する。
【００３２】
（１）接続時
本装置４とサーバ２との接続時に、まず、サーバ２は、各シリアル伝送リンクの接続確認を行う。外部入出力ポート１０は、サーバ２との間の外部入出力信号１００を内部信号１１０〜１１３と接続する。装置コントローラ２０は、外部入出力ポート１０からの信号１１０〜１１３を各々受信し、これらから得られた各同期信号を信号１１４として外部リンク検出部２１に出力する。
【００３３】
外部リンク検出部２１は、信号１１４を基にサーバ２との間で接続が確立できたシリアル伝送リンクを判定し、その判定結果を装置コントローラ２０に出力する。装置コントローラ２０は、外部リンク検出部２１からの判定結果を、装置コントローラ２０内部に設けた、外部からアクセス可能な第１のレジスタ２０ａに格納する。
【００３４】
ＰＣＩ  Ｅｘｐｒｅｓｓ規格Ｖｅｒ１．０ａにおいては、伝送帯域が２．５Ｇｂｐｓであるシリアル伝送リンクを１レーン、４レーン、８レーンといった単位で束ねて１つの入出力ポートを構成する。例えば、４レーンを用いた接続の確認において、何らかの原因により１レーンの接続に失敗し、残り３レーンが接続に成功したとすると、以降の伝送は成功した３レーンのうちの１レーンのみを用いて行われる（３レーンで通信する規格は無いため）。例えば本装置４が４レーンでないと動作しない場合、このような状況を検出して再度サーバ２との接続をやり直す必要がある。外部リンク検出部２１はそのために設けたものである。
【００３５】
（２）初期化時
本装置４の初期化時に、装置コントローラ２０は、メモリバス１２０および制御バス１３０にテスト信号を伝送し、装置コントローラ２０とメモリコントローラ３０との間の上り伝送に関する確認を行う。すなわち、上りバスエラー検出部２２は、上り方向のテスト信号の受信に関して伝送エラー等が発生したかどうかを判定し、その判定結果を装置コントローラ２０に出力する。装置コントローラ２０は、上りバスエラー検出部２２からの判定結果を、外部からアクセス可能な第２のレジスタ２０ｂに格納する。
【００３６】
また、メモリコントローラ３０は、装置コントローラ２０とメモリコントローラ３０との間の下り伝送に関する確認を行う。すなわち、下りバスエラー検出部３１は、下り方向のテスト信号の受信に関して伝送エラー等が発生したかどうかを判定し、その判定結果をメモリコントローラ３０に出力する。メモリコントローラ３０は、下りバスエラー検出部３１からの判定結果を、外部から制御バス１３０を介してアクセス可能な第３のレジスタ３３に格納する。制御バス１３０は、メモリバス１２０に比べて低速かつ信頼性の高いバスであるので、レジスタにアクセスする場合は、制御バス１３０を介して行うようにしている。
【００３７】
（３）通常動作時
上りバスエラー検出部２２および下りバスエラー検出部３１は、伝送誤りの訂正検出回路を備えており、本装置４の初期化時だけでなく、通常動作時においても伝送エラーの発生を検出し、初期化時と同様の処理を行う。
【００３８】
（４）エラー検出後の処理
外部リンク検出部２１、上りバスエラー検出部２２、下りバスエラー検出部３１によって検出されたエラーは、いずれも外部からアクセス可能な第１乃至第３のレジスタ２０ａ，２０ｂ，３３に格納されている。装置コントローラ２０は、レジスタ２０ａ，２０ｂ，３３の内容を読み出し、それが致命的なエラーである場合は、直ちにデータ転送を強制終了し、サーバ２に対して外部入出力信号１００によりエラー割込信号を伝送する。なお、サーバ２に実装されたデバイスドライバが定期的にレジスタ２０ａ，２０ｂ，３３の内容を読み出し、エラーを検出した場合にデータ転送を終了させてもよい。
【００３９】
（第１の実施の形態の効果）
上述した第１の実施の形態によれば、以下の効果が得られる。
（イ）ＰＣＩ  Ｅｘｐｒｅｓｓのように、サーバ２内のシステムバス２ｃを複数のシリアル伝送リンクを用いて延長することにより、伝送帯域を向上させることができる。
（ロ）半導体ストレージ装置に接続する際に問題となる各シリアル伝送リンクの接続エラーの検知と通知、半導体ストレージ装置内部のエラーの通知を実現することにより、エラー発生時のサーバ停止といったトラブルを回避し、システム全体の信頼性を向上させることができる。
【００４０】
［第２の実施の形態］
図３は、本発明の第２の実施の形態に係る半導体ストレージ装置を示す。本実施の形態は、第１の実施の形態において、メモリバス１２０を下りメモリバス１２５と、上りメモリバス１２６に置き換えたものであり、他は第１の実施の形態と同様に構成されている。この構成によれば、上りに関しては各メモリコントローラ３０と装置コントローラ２０が１対１に接続されるため、各メモリから同時に読み出しを行うことができる。
【００４１】
［第３の実施の形態］
図４は、本発明の第３の実施の形態に係るストレージシステムを示す。このストレージシステム１は、ストレージサーバ５０、磁気ストレージ装置６０、第１又は第２の実施の形態の半導体ストレージ装置４と同様に構成された半導体ストレージ装置７０を有して構成されている。なお、半導体ストレージ装置７０は、図４では、１つ接続しているが、複数でもよい。
【００４２】
ストレージサーバ５０は、２つの磁気ストレージ装置６０ａ，６０ｂを第１のインタフェース６００ａ，６００ｂによって接続する第１の外部入出力ポート群５１と、半導体ストレージ装置７０を第２のインタフェース７００によって接続する第２の外部入出力ポート群５２とを備える。
【００４３】
第２の外部入出力ポート群５２の各ポート当たりの伝送帯域は、第１の外部入出力ポート群５１の各ポート当たりの伝送帯域よりも高いものとする。第２のインタフェース７００としては、ＰＣＩ  Ｅｘｐｒｅｓｓ、ＨｙｐｅｒＴｒａｎｓｐｏｒｔ、ＮｕｍａＬｉｎｋなど、第１のインタフェース６００ａ，６００ｂとしては、ファイバーチャネル、ＳＣＳＩなどを用いることができる。第２のインタフェース７００も、第１の実施の形態と同様に、ストレージサーバ５０内のシステムバスを第２の外部入出力ポート群５２を介して外部に延長して構成されている。
【００４４】
磁気ストレージ装置６０は、半導体以外によるストレージ装置であれば構わない。例えば、光ディスク、磁気テープなどでもよい。
【００４５】
半導体ストレージ装置７０は、次に述べるように磁気ストレージ装置６０に比べてアクセス頻度の高いデータの格納に用いることで、ストレージサーバ５０として高性能化を実現することができる。そのためには伝送帯域の高いインタフェースで接続することが必要である。
【００４６】
半導体ストレージ装置７０にデータを格納する際に、半導体ストレージ装置７０を外部記憶装置として用いる方法と、磁気ストレージ用キャッシュメモリとして用いる方法との２通りがある。
【００４７】
（ａ）外部記憶装置として用いる方法
この場合、半導体ストレージ装置７０をスワップファイル（別名ページファイル）の格納に用いる。スワップファイルとは、使われていないメモリ領域を一時的に保存するために、ストレージ上に用意されたファイルを意味する。必要メモリ容量に比べて、サーバに搭載されているメモリ容量が少ないと大きなスワップファイルが作成され、メモリとスワップファイル間で頻繁にデータ交換が発生し、全体性能の低下を招く。このような状況でも、スワップファイルを半導体ストレージ装置７０に格納することで、メモリ容量を拡張した場合に比べて遜色ない性能が得られる。
【００４８】
（ｂ）磁気ストレージ用キャッシュメモリとして用いる方法
磁気ストレージ装置６０に格納されているデータのうち、アクセス頻度の高いデータを一時的に格納するキャッシュメモリとして半導体ストレージ装置７０を用いる。これを実現するキャッシュ制御の実現手段（キャッシュ制御手段）として、ストレージサーバ５０、半導体ストレージ装置７０もしくは磁気ストレージ装置６０のいずれかに設けられたキャッシュコントローラによる方法、ストレージサーバ５０のＣＰＵのソフトウェア処理による方法などがある。また、半導体ストレージ装置７０の装置コントローラ２０又はメモリコントローラ３０は、アクセス対象ブロックがキャッシュにヒットしたか否かを確認するブロックアドレス検索処理手段としての機能を有する。
【００４９】
図５は、半導体ストレージ装置７０を磁気ストレージ用キャッシュメモリとして用いる方法のフローチャート、および半導体ストレージ装置７０に格納されている管理テーブルを示す。
【００５０】
半導体ストレージ装置７０に格納されている管理テーブル７１には、ブロックに関する情報、すなわち、ブロックアドレス、ブロックデータ、アクセス頻度、ダーティ／クリーンの４つの属性情報が登録されている。クリーンとは、半導体ストレージ装置７０と磁気ストレージ装置６０の間でブロックデータが一致しているという意味である。半導体ストレージ装置７０のみ更新された場合にダーティとなる。テーブル初期化時、及び新規に半導体ストレージ装置７０へ書込が行われた場合、属性の初期値としてアクセス頻度をゼロ、ダーティ／クリーンをクリーンとして初期設定する。なお、管理テーブル７１のフォーマットとして、上記以外にアクセス時刻、ユーザ属性等の他の属性が追加されても構わない。
【００５１】
キャッシュコントローラによる方法の場合、管理テーブル７１はキャッシュコントローラからアクセス可能なメモリ３２に設ける。ストレージサーバ５０のＣＰＵのソフトウェア処理による方法の場合、管理テーブル７１はストレージサーバ５０上のメモリに設ける。
【００５２】
なお、ブロック読出命令、ブロック書込命令、終了命令のいずれかが与えられるものとする。また、書込方式は、ライトスルー方式（キャッシュメモリと磁気ストレージ装置６０を同タイミングで更新）、ライトバック方式（キャッシュメモリのみを更新し、当該ブロックがキャッシュメモリから追い出されるタイミングで磁気ストレージ装置６０を更新）に大別されるが、ここではライトバック方式を想定したフローチャートを示す。
【００５３】
管理テーブル７１を初期化した後（Ｓ８０）、命令を受け付ける（Ｓ８１）。受け付けた命令がブロック読出命令の場合は（Ｓ８２：Ｙｅｓ）、管理テーブル７１を参照し、半導体ストレージ装置７０に実現されたキャッシュメモリにヒットするかどうかを確認する（Ｓ８３）。ヒットした場合は（Ｓ８３：Ｙｅｓ）、半導体ストレージ装置７０にアクセスして読出しを行い、管理テーブル７１のアクセス頻度を更新する（Ｓ８４）。
【００５４】
上記ステップＳ８３において、ヒットしない場合は（Ｓ８３：Ｎｏ）、磁気ストレージ装置６０にアクセスし（Ｓ８５）、半導体ストレージ装置７０の更新を行う。すなわち、半導体ストレージ装置７０にブロック追加が可能か否かを判断し（Ｓ８６）、ブロックの追加が可能な場合は（Ｓ８６：Ｙｅｓ）、半導体ストレージ装置７０にブロックを書き込み、ブロックに関する情報を管理テーブル７１に新規追加する（Ｓ８７）。ブロックの追加ができない場合は（Ｓ８６：Ｎｏ）、アクセス頻度が最も低いブロックを磁気ストレージ装置６０に書き込み（クリーンなら不要）、半導体ストレージ装置７０から消去し、管理テーブル７１の該当部分も消去する（Ｓ８８）。
【００５５】
上記ステップＳ８２において、受け付けた命令がブロック読出命令ではなく（Ｓ８２：Ｎｏ）、ブロック書込命令の場合は（Ｓ８９：Ｙｅｓ）、管理テーブル７１を参照し、半導体ストレージ装置７０に実現されたキャッシュメモリにヒットするかどうかを確認する（Ｓ９０）。ヒットした場合は（Ｓ９０：Ｙｅｓ）、半導体ストレージ装置７０にアクセスして書込みを行い、管理テーブル７１のアクセス頻度を更新、ダーティとする（Ｓ９１）。
【００５６】
上記ステップＳ８９において、受けた命令がブロック書込命令でない場合は（Ｓ８９：Ｎｏ）、それが終了命令かどうかを判断し（Ｓ９３）、終了命令の場合は（Ｓ９３：Ｙｅｓ）、ダーティとされたブロックを全て磁気ストレージ装置６０に書き込む（Ｓ９４）。
【００５７】
なお、上記ステップＳ８３、Ｓ９０の処理は、半導体ストレージ装置７０に内蔵された装置コントローラ２０あるいはメモリコントローラ３０が担当することにより、高速化を図ることができる。具体的には外部からのブロック読出命令またはブロック書込命令で与えられるブロックアドレスが、管理テーブル７１に存在するかを検索、ハッシング等により確認する。
【００５８】
また、上記ステップＳ８８において、アクセス頻度の最も低いブロックをキャッシュメモリから追い出すとしたが、追い出すブロックの決定アルゴリズムは何でも構わない。他に例えばＬＲＵ(Least Recently Used)アルゴリズムなども適用可能である。
【００５９】
（第３の実施の形態の効果）
上述した第３の実施の形態によれば、以下の効果が得られる。
（イ）伝送帯域の高いインタフェースで半導体ストレージ装置７０を接続することが可能となり、従来のファイバーチャネル等の磁気ストレージ装置６０用のインタフェース接続に比べて高い入出力性能が得られる。特に、半導体ストレージ装置７０をサーバに接続して外部記憶装置として用いる場合や、磁気ストレージ装置６０と併用して磁気ストレージ用キャッシュメモリとして用いる場合、ストレージシステムとしての入出力性能を高めることができる。
（ロ）更に半導体ストレージ装置７０を磁気ストレージ用キャッシュメモリとして用いる際、アクセスされるブロックがキャッシュにヒットするかどうかを調べるため、該当ブロックが半導体ストレージ装置７０に格納されているかどうか検索する必要があり、ブロックアドレスの検索（ハッシング）を行う。それを半導体ストレージ装置７０の装置コントローラもしくはメモリコントローラが実行することにより、処理が高速化され、かつキャッシュコントローラもしくはサーバのＣＰＵの負荷を軽減することができる。
【００６０】
なお、サーバ側へのエラー通知方法は、半導体ストレージ装置からの割り込みでも、サーバによる定期的なアドレス読出による方法のいずれでも構わない。
【００６１】
［他の実施の形態］
なお、本発明は、上記各実施の形態に限定されず、本発明の趣旨を逸脱しない範囲内で種々な変形が可能である。また、本発明の趣旨を逸脱しない範囲内で、各実施の形態の構成要素を任意に組み合わせることができる。
【００６２】
図２および図３の構成において、メモリバスに光バスを用いて構成してもよい。この場合、入射側光ファイバと、光導波路と、および複数の出射側光ファイバを光学的に接続し、入射側光ファイバの入射側に電気−光変換器を配置し、出射側光ファイバの出射側に光−電気変換器を配置する。これにより、耐ノイズ性が向上し、さらに信頼性が高くなる。
【図面の簡単な説明】
【００６３】
【図１】本発明の第１の実施の形態に係るストレージシステムを示すブロック図である。
【図２】図１に示す半導体ストレージ装置の内部構成を示すブロック図である。
【図３】本発明の第２の実施の形態に係る半導体ストレージ装置の内部構成を示すブロック図である。
【図４】本発明の第３の実施の形態に係るストレージシステムを示すブロック図である。
【図５】本発明の第３の実施の形態に係るストレージシステムの動作を示すフローチャートである。
【符号の説明】
【００６４】
１  ストレージシステム
２  サーバ
２ａ  ＣＰＵ
２ｂ  メモリ
２ｃ  インターフェース
２ｄ  システムバス
３  シリアルインタフェース
４  半導体ストレージ装置
１０  外部入出力ポート
２０  装置コントローラ
２０ａ  第１のレジスタ
２０ｂ  第２のレジスタ
２１  外部リンク検出部
２２  バスエラー検出部
３０  メモリコントローラ
３１  バスエラー検出部
３２  メモリ
３３  第３のレジスタ
５０  ストレージサーバ
５１  外部入出力ポート群
５２  外部入出力ポート群
６０  磁気ストレージ装置
７０  半導体ストレージ装置
７１  管理テーブル
１００  外部入出力信号
１１０〜１１３  独立信号
１１４,１１５  信号
１２０，１２５，１２６  メモリバス
１３０  制御バス
６００ａ，６００ｂ  第１のインタフェース
７００  第２のインタフェース
【図１】
2007188428.tif 000003
【図２】
2007188428.tif 000004
【図３】
2007188428.tif 000005
【図４】
2007188428.tif 000006
【図５】
2007188428.tif 000007