(57)【要約】【課題】ディスク制御装置に用いられる半導体記憶装置、ディスク装置の交替媒体として、半導体不揮発メモリを利用できるようにし、その特性を生かした実装をおこなうことにより、ディスク制御装置自体の性能、保守性、信頼性を向上させるようにする。【解決手段】不揮発メモリ部を、実データ格納デバイス、予備用の格納デバイス、パリティ冗長データ用デバイスの三種のメモリモジュールからなるようにし、並列に実装して構成する。そして、それぞれのデバイスに、最小ブロック単位ごとにデータを保持させ、ブロック毎の予備情報として、更新情報、保護コードを設け、不揮発メモリデバイスの障害や不良を監視する。不揮発メモリ部は、メモリデバイスの分割されたブロックごとに、リードプロテクト、ライトプロテクトを可能にし、不良ブロックを発見する診断リライト機能を持たせる。【選択図】図１
2008217811.tif 000002
【特許請求の範囲】
【請求項１】
計算機に接続されるホストインタフェース部と、
前記ホストインタフェース部に接続され、前記計算機からアクセスされるデータを格納するキャッシュメモリ部と、
前記ホストインタフェース部および前記キャッシュメモリ部に接続され、前記計算機からアクセスされるデータの入出力を制御するディスクインタフェース部と、
前記ディスクインタフェース部に接続され、前記計算機からアクセスされるデータを格納する複数のディスク装置とを有し、
前記ディスクインタフェース部に接続され、前記計算機からアクセスされるデータを格納するフラッシュメモリ部とを有し、
前記ディスクインタフェース部は、第１、第２のディスクインタフェース部から構成され、前記第１のディスクインタフェース部に接続される複数の第１の通信路と、前記第２のディスクインタフェース部に接続される複数の第２の通信路とを有し、
前記フラッシュメモリ部は、前記複数のディスク装置の交替用の記憶媒体であり、
前記複数のそれぞれの第１の通信路には、少なくとも１つの前記ディスク装置および前記フラッシュメモリ部が接続され、前記複数の第２の通信路には、それぞれ、前記第１の通信路に接続された少なくとも一つの前記ディスク装置および前記フラッシュメモリ部が接続されることを特徴とするストレージシステム。
【請求項２】
計算機に接続されるホストインタフェース部と、
前記ホストインタフェース部に接続され、前記計算機からアクセスされるデータを格納するキャッシュメモリ部と、
前記ホストインタフェース部および前記キャッシュメモリ部に接続され、前記計算機からアクセスされるデータの入出力を制御するディスクインタフェース部と、
前記ディスクインタフェース部に接続され、前記計算機からアクセスされるデータを格納する複数のディスク装置と、
前記ディスクインタフェース部に接続され、前記計算機からアクセスされるデータを格納する不揮発メモリ部とを有し、
前記不揮発メモリ部は、インタフェースアダプタ部と、データを格納する複数の不揮発メモリデバイスと、前記複数の不揮発メモリデバイスに対するデータの書込み又は読み出しを制御するコントローラ部とを有し、
前記インタフェースアダプタ部は、前記ディスクインタフェース部との間で用いられるプロトコルを解析し、前記ディスクインタフェース部から送信される制御信号およびデータを前記コントローラ部に送信し、前記コントローラ部は、前記制御信号により前記データをエラーチェックし、前記複数の不揮発メモリデバイスに書き込むことを特徴とするストレージシステム。
【請求項３】
請求項２に記載のストレージシステムであって、
前記ディスクインタフェース部は、第１、第２のディスクインタフェース部であり、
前記第１のディスクインタフェース部に接続される複数の第１の通信路と、
前記第２のディスクインタフェース部に接続される複数の第２の通信路とを有し、
前記複数のそれぞれの第１の通信路には、少なくとも１つの前記ディスク装置および前記不揮発性メモリ部が接続され、前記複数の第２の通信路には、それぞれ、前記第１の通信路に接続された少なくとも一つの前記ディスク装置および前記不揮発性メモリ部が接続されることを特徴とするストレージシステム。
【請求項４】
計算機に接続されるホストインタフェース部と、
前記ホストインタフェース部に接続され、前記計算機からアクセスされるデータを格納するキャッシュメモリ部と、
前記ホストインタフェース部および前記キャッシュメモリ部に接続され、前記計算機からアクセスされるデータの入出力を制御するディスクインタフェース部と、
前記ディスクインタフェース部に接続され、前記計算機からアクセスされるデータを格納する複数のディスク装置と、
前記ディスクインタフェース部に接続され、前記計算機からアクセスされるデータを格納する不揮発メモリ部とを有し、
前記複数のディスク装置および不揮発メモリ部は、前記複数のディスク装置からなる記憶媒体の配列の一部としてＲＡＩＤ（Redundant Arrays of Inexpensive Disks）グループを構成し、
前記不揮発メモリ部は、前記複数のディスク装置のいずれかのディスク装置の交替用の予備記憶媒体であり、
前記ＲＡＩＤグループに属する前記いずれかのディスク装置に障害が生じた場合、前記障害が生じたディスク装置に対する前記計算機からのアクセスを、前記ＲＡＩＤグループに属する前記不揮発メモリ部に対するアクセスに切り替え、前記計算機から送受信されるデータを前記不揮発メモリ部に格納することを特徴とするストレージシステム。
【請求項５】
請求項４に記載のストレージシステムであって、
前記複数のディスク装置からなる記憶媒体の配列の一部として前記不揮発メモリ部を有することを特徴とするストレージシステム。
【請求項６】
請求項４に記載のストレージシステムであって、
前記ディスクインタフェース部に接続される不揮発メモリ部は、前記キャッシュメモリ部に格納されるデータを格納することを特徴とするストレージシステム。
【請求項７】
請求項４に記載のストレージシステムであって、
当該ストレージシステム内で送受信される制御情報を格納する共有メモリ部を有し、
前記ディスクインタフェース部に接続される不揮発メモリ部は、前記制御情報を格納することを特徴とするストレージシステム。
【請求項８】
請求項４に記載のストレージシステムであって、
前記ディスクインタフェース部に接続される不揮発メモリ部は、前記ディスクインタフェース部とに搭載されているマイクロプロセッサの実行するプログラムを格納することを特徴とするストレージシステム。
【請求項９】
請求項４に記載のストレージシステムであって、
前記ディスクインタフェース部に接続される不揮発メモリ部は、前記計算機の前記ディスク装置に対するアクセスログ情報、障害ログ情報を格納することを特徴とするストレージシステム。
【請求項１０】
計算機に接続されるホストインタフェース部と、
前記ホストインタフェース部に接続され、前記計算機からアクセスされるデータを格納するキャッシュメモリ部と、
前記ホストインタフェース部および前記キャッシュメモリ部に接続され、前記計算機からアクセスされるデータの入出力を制御するディスクインタフェース部と、
前記ディスクインタフェース部に接続され、前記計算機からアクセスされるデータを格納する複数のディスク装置と、
前記ディスクインタフェース部に接続され、前記計算機からアクセスされるデータを格納する不揮発メモリ部とを有し、
前記不揮発メモリ部は、該不揮発メモリ部内に並列に実装される複数の不揮発メモリデバイスと、
前記複数の不揮発メモリデバイスに格納されるデータと、前記複数の不揮発メモリデバイスのうちのいずれかの不揮発メモリデバイスに格納されるパリティデータとを用いてデータ演算するコントローラとを有し、
前記複数の不揮発メモリデバイスは、それぞれ、最小ブロック単位ごとに、データと、該データの論理管理ＩＤと、該最小ブロック単位の良、不良を判定するための保護コードと、更新時にインクリメントされる更新回数情報とを含み、
前記コントローラは、前記更新回数情報を監視し、前記更新回数情報が一定の閾値を超えた場合、該最少ブロック単位を不良ブロックとして前記保護コードを更新し、該最少ブロックに対応するデータを読み出してリライトすることを特徴とするストレージシステム。
【請求項１１】
請求項１０に記載のストレージシステムであって、
前記不揮発メモリ部は、前記複数の不揮発メモリデバイスのそれぞれに対応するインジケータを有し、前記複数の不揮発メモリデバイスのうちの一の不揮発メモリデバイスに障害が生じた場合、該一の不揮発メモリデバイスの前記インジケータに表示し、該一の不揮発メモリデバイスは物理的に交換可能であることを特徴とするストレージシステム。
【請求項１２】
請求項１０に記載のストレージシステムであって、
前記一の不揮発メモリデバイスを交換する場合、前記不揮発メモリ部は、前記一の不揮発メモリデバイス内の復元対象のデータの最小ブロック単位が、前記複数の不揮発メモリデバイスのうちの他の不揮発メモリデバイスにスペアとして作成されているとき、該スペアの最小ブロック単位を交替ブロック単位とし、前記他の不揮発メモリデバイスにスペアとして作成されていないとき、前記複数の不揮発メモリデバイスのうちのいずれかのメモリデバイス内のデータおよびパリティデータを用いて、前記復元対象のデータの最小ブロック単位を作成して交替ブロック単位とし、前記交替ブロック単位を用いて前記復元対象のデータを復元することを特徴とするストレージシステム。
【請求項１３】
請求項１０に記載のストレージシステムであって、
前記不揮発メモリ部は、該不揮発メモリ部内に格納されたデータの論理アドレスと物理アドレスとを対応付ける変換テーブルを有し、前記計算機から前記データに対する入出力要求がある場合、該テーブルを用いて、前記入出力要求に含まれる前記データの論理アドレスを物理アドレスに変換することを特徴とするストレージシステム。
【請求項１４】
請求項１０に記載のストレージシステムであって、
前記不揮発メモリ部は、前記複数の不揮発メモリデバイスの分割されたデータの最小ブロック単位ごとに、リードプロテクト、ライトプロテクトを実行することを特徴とするストレージシステム。
【請求項１５】
請求項１４に記載のストレージシステムであって、
前記不揮発メモリ部は、データバッファを有し、任意の契機に、前記複数の不揮発メモリデバイスのうちのある不揮発メモリデバイス内のある論理アドレスからデータを読み出して該データバッファに格納し、該データバッファに格納した前記データを前記論理アドレスに書き込み、前記データに対してリードプロテクトまたはライトプロテクトを実行した場合、前記論理アドレスに書き込んだ前記データと、前記複数の不揮発メモリデバイスのうちの他の不揮発メモリデバイス内のデータをパリティ演算して作成したデータとを比較して、不良ブロックを判定することを特徴とするストレージシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、不揮発メモリを使用したディスク制御装置に係り、特に、不揮発メモリの特性を生かして、並列に実装して交換容易なものにし、他のメモリ、ディスクの代替として機能を発揮させる不揮発メモリを使用したディスク制御装置に関する。
【背景技術】
【０００２】
一般に、コンピュータなどの情報処理システムの記憶デバイスは、アクセス速度と容量あたりのコストが反比例するピラミッド構造をなしている。代表的なものをあげると、主記憶装置に用いられるＣＰＵからのアクセス速度が速いが容量コスト比の不利な半導体メモリと、補助記憶装置として用いられるこの逆の特性をもつＨＤＤ（磁気ディスク装置）、ＭＴ（磁気テープ装置）などである。
【０００３】
主記憶装置に使われる半導体記憶装置としては、構造が簡単であり容量が大きくできることから揮発メモリが使われるのが普通である。フラッシュＥＥＰＲＯＭに代表される半導体不揮発メモリは、不揮発であるという特性を利用して、メモリカードなどが主な用途になっている。
【０００４】
これを磁気ディスク装置と対比してみると、フラッシュＥＥＰＲＯＭなどの半導体不揮発メモリは、小型・低消費電力・高信頼性という特徴を持ち、上記のように携帯情報端末、ノート型パソコンのメモリカードとして普及している。一方の磁気ディスク装置は、小はパソコンから、大はメインフレーム、大型ストレージ装置等の記憶デバイスまで広く使われており、信頼性こそ問題があるものの大容量であり、容量価格比が半導体装置などに比べて圧倒的に有利であるという特徴がある。このようなことより、磁気ディスク装置とフラッシュＥＥＰＲＯＭなどの半導体不揮発メモリはメディアとしての明確にすみわけがなされているのが現状である。
【０００５】
このように磁気ディスク装置は、容量価格比が有利なことより、情報処理システムの補助記憶装置の主流になっており、技術革新があいついでおこなわれ、単位面積あたりの記憶容量は飛躍的に向上しており、個々のＨＤＤ媒体の容量は増大化し、ここ数年間でさえ一台の磁気ディスク装置の容量は数ＧＢから数百ＧＢへ上がっている。一方で、弱点である磁気ディスク装置の信頼性をカバーすべく、ＲＡＩＤ技術を利用したディスクアレイ制御により、装置全体として信頼性を向上させ、大型記憶サブシステムとしての容量も数ＴＢの製品が市場に出てきている。
【０００６】
今般の情報処理システムでは、ディスク記憶装置へのＩ／Ｏ性能がボトルネックになることが多くなってきており、ディスク記憶装置へのＩ／Ｏ性能向上に対する要求は特に高く、サブシステムのＩ／Ｏ性能を向上させる努力がなされている。
【０００７】
そのひとつの方法としては、図１０の従来技術に係るディスク装置装置の構成に示されるように、ディスク制御装置１は、上位側（フロントエンド側）にあたるホストコンピュータ５０の装置アクセスの高速化に伴い緩衝用のメモリバッファ（キャッシュメモリ）を設けることである。
【０００８】
ところがこの方法を採用すると、バックエンド側のＨＤＤ媒体に対するキャッシュバック処理とのアクセス速度差が大きくなりつつある傾向が見られてきた。
【０００９】
これにともない、バックエンド側のアクセス速度を上げるべく、光ファイバインターフェース等のＩ／Ｆの性能をアップさせる努力が試みられているが、物理的な外乱等による実装等、技術的な問題も多い。
【００１０】
キャッシュメモリは、通常、ＳＤＲＡＭ等の揮発メモリで構成されており、信頼性向上のための二重化を施し、そして停電時にデータを保持させるためのバックアップ電源機能をもつ傾向にある（図１０のバッテリ１０）。合わせて装置自体の容量を大きくして、実装密度が上がることにより、サブシステムの消費電流が大きくなり、過大な設備コストがかかるという問題点が生じてきている。
【００１１】
図１０に示した従来技術に係るディスク制御装置では、不揮発メモリは、小容量という制約をもとにデータプロセッシングのＭＰＵ(マイクロプロセッサユニット)上で動作するオペレーションシステムの実プログラムの格納用として一部使用されていたのが現状である（図１０のマイクロプロセッサ６）。
【００１２】
しかしながら、最近、フラッシュＥＥＰＲＯＭ等も容量が増大化し、ビット当りのコストも低下してきており、ノートパソコンの部分的な記憶デバイスとして一部、ＨＤＤの入替として利用がされてきている。ＨＤＤに比べ衝撃に対しての耐故障が強く、また物理的な磨耗がない特徴もあり信頼性が高い。また他の半導体不揮発メモリデバイスの開発も盛んになっており、省スペース、大容量、信頼性において将来、ＨＤＤを凌駕するデバイスが開発されることも期待できる。ただし、実際現在のディスク記憶装置等に利用する際には、フラッシュＥＥＰＲＯＭ等の不揮発メモリのデメリットである、書きこみ時間にイレーズ等のオーバーヘッドがかかること、書きこみ回数に限界があり、定期的な保守によるデータの保証の手段が要求されるなどの問題点を指摘することができる。
【発明の開示】
【発明が解決しようとする課題】
【００１３】
上記に説明したように、フラッシュＥＥＰＲＯＭ等に示されるように不揮発メモリメディアは、ここ年々開発が進み容量当りのコストも低くなってきており、磁気ディスク装置との従来のすみわけの境界がなくなりつつなってきている。しかしながら、不揮発メモリは上記のように書き換え回数に制限があるという問題を持っている。よって高い信頼性が要求されるディスク記憶制御システムにおいて使用する際には、保守のためにメモリデバイスを交換する機構が必要であるのと、交換時期を判定する機能が必須であり、またフラッシュＥＥＰＲＯＭなどは、ブロック単位で領域をイレーズしてからライトをする特徴をもつので、書きこみのアクセス時間が、読み出しのアクセス時間に比べて大きくなるという性能上のマイナス面を考慮する必要がある。
【００１４】
本発明は、上記問題点を解決するためになされたもので、その目的は、ディスク制御装置に用いられる半導体記憶装置、ディスク装置の交替媒体として、半導体不揮発メモリを利用できるようにし、その特性を生かした実装をおこなうことにより、ディスク制御装置自体の性能、保守性、信頼性を向上させた半導体記憶装置を提供することにある。
【課題を解決するための手段】
【００１５】
本発明の不揮発メモリを使用したディスク制御装置においては、不揮発メモリ部は、実データ格納デバイス、予備用の格納デバイス、実データのパリティ冗長データが格納されるパリティ冗長データ用デバイスの三種の不揮発メモリデバイスからなるメモリモジュールを含み、これらの不揮発メモリデバイスは、並列に実装して構成する。それぞれの不揮発メモリデバイスには、最小ブロック単位ごとにデータを保持させ、ブロック毎の予備情報として、更新情報、保護コードを設け、不揮発メモリデバイスの障害や不良を監視する。
【００１６】
不揮発メモリデバイスは、並列に実装して構成されていることより、簡単に交換することができる。そして、障害のある不揮発メモリデバイスは、パリティ冗長データ、保護コードから復元可能にする。
【００１７】
不揮発メモリ部は、メモリデバイスの分割されたブロックごとに、リードプロテクト、ライトプロテクトを可能にし、不良ブロックを発見する診断リライト機能を持たせる。
【００１８】
不揮発メモリの用途としては、ホストとディスク装置とでやり取りされるデータを保持するキッシュメモリ、制御情報を保持する共有メモリの代替、また、予備用のディスク装置の代替である。
【００１９】
さらに、マイクロプロセッサの実行するプログラムを格納したり、ディスクへのアクセスログ情報、障害ログ情報を格納してもよい。
【発明の効果】
【００２０】
本発明によれば、ディスク制御装置に用いられる半導体記憶装置、ディスク装置の交替媒体として、半導体不揮発メモリを利用できるようにし、その特性を生かした実装をおこなうことにより、装置自体の性能、保守性、信頼性を向上させた半導体記憶装置を提供することができる。
【発明を実施するための最良の形態】
【００２１】
以下、本発明に係る一実施形態を、図１ないし図９を用いて説明する。
【００２２】
〔ディスク制御装置の構成〕
先ず、図１を用いて本発明に係るディスク制御装置の構成を説明する。
図１は、本発明に係るディスク制御装置の構成図である。
【００２３】
ディスク制御装置１は、ホストアダプタ部１１と、ディスクアダプタ部１２と、キャッシュメモリ部１４を持ち、これらを接続するキャッシュメモリパス１６を持つ。また、共有メモリ部１５を有し、これとホストアダプタ部１１とディスクアダプタ部１２とを接続する共有メモリパス１７を持っている。
【００２４】
ホストアダプタ部１１は、ホストとインタフェースをおこなう部分であり、ホストコンピュータ５０に対する入出力を制御する複数のプロセッサ６を有している。このホストアダプタ部１１は、プロセッサ６の制御によりホストコンピュータ５０とキャッシュメモリパス１６を介してキャッシュメモリ部１４のデータ転送を実行する。また、共有メモリ部１５に対してもプロセッサ６の制御により共有メモリパス１７を使用しデータを転送する。
【００２５】
ディスクアダプタ部１２は、ディスク装置２０とインタフェースをおこなう部分であり、ディスク装置２０に対する入出力を制御するプロセッサ６を有し、プロセッサ６の制御によりディスク装置２０とキャッシュメモリ部１４間のデータ転送を実行する。ディスクアダプタ部１２は、ディスクに対してのＲＡＩＤ制御等の演算機能の実行もおこなう。
【００２６】
また、共有メモリ部１５に対してもマイクロプロセッサ６の制御により共有メモリ部１５と接続する共有メモリパス１７を使用しデータを転送する。
【００２７】
ホストアダプタ部１１、ディスクアダプタ部１２は、共に、信頼性を向上させるために二重化されている。
【００２８】
キャッシュメモリ部１４は、内部にメモリモジュール９を有し、ホストコンピュータ５０とディスク装置２０とでやり取りされるデータを一時的に保持する部分である。。
【００２９】
共有メモリ部１５は、内部にメモリモジュール９を有し、キャッシュデータの管理情報を格納する。すなわち、複数のホストアダプタ部１１、あるいは、複数のドライブアダプタ部１２のキャッシュメモリへのアクセスについてデータ更新の排他制御等で必要なテーブル情報等を格納する。共有メモリデータがキャッシュメモリデータと違って、容量も小さく、トランザクション的なアクセスが多くレスポンス時間が短いことが性能向上に不可欠なためプロトコル・オーバーヘッド時間を少なくする必要がある。キャッシュメモリ部と共有メモリ部を分離した経路を持つ意味は、このようにデータアクセスの性質が相異なることを考慮しているためであり、キャッシュメモリ部１４と共有メモリ部１５とは耐故障性を考慮して、二重化されていることが一般的である。また装置電源断時のデータ保持のために従来装置（図１０参照）のようにバッテリによる電源バックアップをしていることが通例である。
【００３０】
本発明のディスク制御装置は、不揮発メモリを、三つの異なる形態で用いている。
【００３１】
不揮発メモリ部８ａは、キャッシュメモリ部１４あるいは共有メモリ部１５と従属した接続形態である。
【００３２】
不揮発メモリ部８ｂは、共有メモリパスに直接接続した形態である。
【００３３】
不揮発メモリ部８ｃは、ＨＤＤディスク配列の一部として接続した形態である。
【００３４】
不揮発メモリ部８ａは、キャッシュメモリ部１４あるいは共有メモリ部１５と従属した接続をしており、各々でキャッシュメモリデータあるいは共有メモリデータの移送を可能としたものである。したがって、電源断が発生する直前にデータを退避させるようにしておけば、バッテリによる電源バックアップをおこなわなくてもデータの保全が図れることになる。
【００３５】
また、通電時にはキャッシュバックする際のディスクへの書きこみをおこなう前に一時的エリアとしてデータの一部を書きこむこともできる。これはディスクにデータを置くよりも次の読み込みが早いという利点をもつ。
【００３６】
不揮発メモリ部８ｂは、ホストアダプタ部１１とディスクアダプタ部１２に共有メモリパス１７を介して接続する。
【００３７】
この不揮発メモリ部８ｂは、不揮発メモリ部８ａと違い独立した記憶エリアとして機能し、複数のプロセッサ６からアクセスされるメモリである。用途としては、システムの構成・管理情報を格納したり、マイクロプロセッサを実行するためのプログラムを格納したり、ディスクへのアクセス情報、障害ログ情報などを書きこみ保存することなどが考えられる。
【００３８】
不揮発メモリ部８ｃは、ＨＤＤディスク配列の一部のメディアデバイスとして用いられるものであり、ディスクに故障がおこったときの交替用の予備デバイスとして用いることができる。
【００３９】
また、ディスク装置２０のすべてを、不揮発メモリ部８ｃによる配列にするという構成も考えられる。
【００４０】
これら不揮発メモリ部８ａ,８ｂ,８ｃらは、容量の拡張が可能とし、交換可能なように実装する。
【００４１】
また、不揮発メモリの特性を考慮して、書きこみ回数等の制限を管理し、デバイスの不良を検出できるようにする。そして、メモリモジュールを複数のメモリデバイスで構成し、不良なメモリデバイスの交換をおこなえるようにする。
【００４２】
さらに、これらの不揮発メモリ部に、メモリの障害検出とデータの保全のために、意図的に読み出してリライトする機能をもたせる。
【００４３】
すなわち、領域管理テーブルと更新来歴のマッピング情報等についての情報を内部レジスタ（ブロック管理用レジスタ）に持たせ、定期的に指定エリアに対し、アクセスのないときにリライトチェックをおこなう。そして、その書きこみ時には該当領域をロックさせ、上位からの更新を抑止させる。あるいは、上位からの更新要求があったときには、このリライト処理を中断させて、ロックを外し要求を完了後に、再度ロックしリライト処理するようにしてもよい。
【００４４】
〔不揮発メモリ部の詳細〕
次に、図２ないし図９を用いてディスク制御装置内の不揮発メモリ部の詳細について説明する。
図２は、不揮発メモリ部のブロック図である。
図３は、不揮発メモリ部内のメモリコントローラとメモリモジュールのインタフェースを説明するための図である。
図４は、不揮発メモリ部のアドレス空間の説明図である。
図５は、パリティデータによるデータ復元の原理を説明するための図である。
図６は、不揮発メモリ内で保持されるデータ構造の模式図である。
図７は、不揮発メモリ部の不良ブロックの取扱いのイメージ図である。
図８は、不揮発メモリ部のデバイス交換後のデータ復元の概要を示す図である。
図９は、共有メモリ部の構成図である。
（I）不揮発メモリ部の構成概要
不揮発メモリ部８ａ,８ｂ,８ｃの構成は、図２に示されるようにＩ／Ｆアダプタ部３０とメモリコントローラ３１と不揮発メモリモジュール３２の主たる部位に分けられる。
（II）Ｉ／Ｆアダプタ部
Ｉ／Ｆアダプタ部３０は、接続する装置内部のパスからの不揮発メモリモジュールへのデータ受信・送信に際し、インターフェースを解読し、内部の不揮発メモリモジュール３２へのアクセスをメモリコントローラ部３1の指揮下で制御する。
【００４５】
すなわち、Ｉ／Ｆアダプタ部３０は、上位Ｉ／Ｆパス９と接続し、それぞれのインターフェースのプロトコルを解析し、制御信号をメモリコントローラ部に提供する。ここで、接続する上位Ｉ／Ｆパス９の種類は、不揮発メモリ部８ａであれば内部パス、不揮発メモリ部８ｂであれば、キャッシュメモリパス１６、共有メモリパス１７、そして不揮発メモリ部８ｃであればドライブＩ／Ｆ２である。
【００４６】
Ｉ／Ｆアダプタ部３０内のアダプタ制御部３０２を、このユニットを接続するＩ／Ｆに合わせて変更することで８ａ,８ｂ,８ｃのバリエーションが作成できる。
【００４７】
Ｉ／Ｆアダプタ部では、接続パス９から送られるデータは、アダプタ制御部３０２のコントロールにより、Ｉ／Ｆアダプタ部３０内で接続するパケットバッファ３０１で受信する。また、メモリモジュール３３からの送信データをパケットバッファ３０１より送信する。
【００４８】
アダプタ制御部内にあるアドレス/コマンド解析部３０２ａは、図示しなかったが、アドレスおよびコマンドを格納するバッファと、アドレス抽出部と、コマンド抽出部を有する。アドレス抽出部およびコマンド抽出部がその解析結果により、メモリコントローラ部３１に対して制御信号を送信する。
（III）不揮発メモリ部８ａの場合の接続するメモリ部の構成
不揮発メモリ部８ａの場合は、図１のキャッシュ部１４と共有メモリ部１５に対して接続パスを設ける必要がある。したがって、この場合には、キャッシュ部１４と共有メモリ部１５の内部のパス制御を変更する必要がある。
【００４９】
すなわち、共有メモリ部１５の内部に、図９に示されるように、不揮発メモリパス１８を設けるようにする。（また、キャッシュメモリ部１４の場合も、おおよそ同様にして実現することができる。）
以下、共有メモリ部１５の構成について説明する。
【００５０】
共有メモリ部１５は、複数のメモリモジュール１５９を有し、パスＩ／Ｆ部１５０と、パケットバッファ１５３と、データのエラーチェック部１５０と、メモリ制御部１５７と、アドレス/コマンド解析部１５５と、データ転送制御部１５２とを有している。
【００５１】
パケットバッファ１５３は、セレクタ１５６とデータを一時格納する部分である。メモリ制御部１５７は、メモリモジュール１５９へのアクセスを制御する部分である。アドレス/コマンド解析部１５５は、共有メモリパス１７から送出されたアドレスおよびコマンドを解析する。
【００５２】
データ転送制御部１５２は、アービタ１５８により、アドレス/コマンド解析部１５５で解析した共有メモリパス１７からのアクセス要求と、共有メモリ部に接続する不揮発メモリパス１８からアクセス要求とのアービトレーションをおこない、セレクタ１５６の切り替えをおこなう。この不揮発メモリパス１８からのアクセス要求があるのが本発明の特有の部分である。
【００５３】
アドレス/コマンド解析部１５５は、バッファとアドレス抽出部とコマンド抽出部を有する（図示せず）。アドレス/コマンド解析部１５５では、共有メモリパス１７に割り当てられたバッファに、アドレス、コマンドを格納する。（このパスは図９では４つ独立した系が示されている。）アドレス抽出部およびコマンド抽出部では、アクセスするメモリのアドレスとアクセスの種類を割り出し、メモリ制御部１５７へ送出する。また共有メモリパス１７からのアクセス要求をデータ転送制御部１５２内のアービタ１５８へ送出する。このとき、通常はメモリモジュール１５９へのアクセスをおこなうが、不揮発メモリ部へのアクセスモードの場合はセレクタ１５６を切り替え、パスＩ／Ｆ部１５１と接続する不揮発メモリパス１８へ切り替えを実施する。
【００５４】
またデータ転送制御部１５２には、ホストＩ／Ｆ部、ドライブＩ／Ｆ部の介在による共有メモリアクセスに依存せずに、共有メモリモジュール１５８のデータをダイレクトに不揮発メモリパス１８へ転送する機能を持たせるようにする。
【００５５】
これは、緊急的に共有メモリデータを不揮発メモリ部へ転送する際に、時間を短縮するために有効な機能である。
【００５６】
この機能は、通常の転送マスタはホストＩ／Ｆ部、ドライブＩ／Ｆ部であるが、この場合にセレクタ１５６の制御により転送マスタにデータ転送制御部１５２がなることで実現することができる。
（IV）メモリコントローラ部
メモリコントローラ部３１は、エラーチェック回路部３１１と、送信バッファ３１２と、送受信セレクタ３１３とを有しており、これらは、不揮発メモリモジュール部３２に接続パスを有している。
【００５７】
同様にＩ／Ｆアダプタ部への送信パスは、セレクタ部３１３から接続され、その間にエラーチェック回路部３１１が存在する。
【００５８】
メモリ制御部３１４は、不揮発メモリモジュール部３２への制御線をコントロールしており、先に説明したＩ／Ｆアダプタ部３０内のコマンドアドレス解析部３０２からの制御線からの信号により、送信バッファ３１２とセレクタ部３１３への信号を出力する。このメモリ制御部は、アクセスされる論理アドレスを、内部の物理アドレスに変換するアドレス変換機能と、アクセスするアドレス毎にプロテクトをおこなうロック機能を有している。
【００５９】
また、ＶＰＰ制御部３１５は、不揮発ＥＥＰＲＯＭ等のメモリモジュールの書きこみ電源の制御等で必要な場合機能をさせる。
【００６０】
このメモリ制御部３１４は、不揮発メモリモジュール３２内の複数の不揮発メモリ配列に対してアクセスを制御し、データ保証のための演算回路３１６を有する。
【００６１】
この演算回路３１６は、パリティデータや保護コードからデータ復元をおこなう回路であり、これらについては後に詳細に説明する。
（V）不揮発メモリモジュール部
不揮発メモリモジュール部３２は、図２に示されているように複数のメディアの配列を構成要素として持っている。これは単体メディアの保守を可能とするためで、故障あるいは保守対象メディアを示すインジケータ（ＬＥＤ等）により、その部位のインジケータがＯＮであるときに交換保守できるようになっている。また、メディアを容量の違うタイプに交換してアップグレードすることを許容とした構造を持っている。
【００６２】
不揮発メモリモジュール部３２に実装されるメモリデバイスは、データ格納用、データ格納用スペア、パリティデータ格納用の三種類である。
（VI）メモリコントローラと不揮発メモリモジュールのインターフェース
次に、図３を用いてメモリコントローラ３１と不揮発メモリモジュール３２のインターフェースについて説明する。
【００６３】
図３では、メモリコントローラ部３１と５つのメモリモジュール部３２が接続されている。各々のデータは、ＡＤＲＥＳＳ／ＤＡＴＡバスにて送受信され、デバイスの選択はチップイネーブル（ＣＥ）信号がアサートされて実現する。またライトイネーブル（ＷＥ）信号、アウトプットイネーブル（ＯＥ）信号は、書きこみ／読み込みかを選択し、ＣＬＫ信号等により同期をとりデバイスに書きこみ／リードする。
（VII）不揮発メモリ部のアドレス空間
ＡＤＲＥＳＳデータ信号、物理アドレス空間は、コントローラ内部のアドレステーブルで論理アドレスから物理アドレスに変換される間接アドレッシング方式を使用する。これにより、論理的にアクセスできるアドレス空間は拡張される。
【００６４】
アドレス空間は、図４のイメージのように拡張空間によりデバイスの容量増加に対応できるしくみとなる。すなわち、実データとブロックはページに格納され、そのページが集まってフレームを構成する。
【００６５】
論理アドレスから物理アドレスの変換は、内部のアドレステーブルによりデバイスの物理アドレスに間接的にリンクさせるものである。またメモリ制御部３１内に設けたレジスタにではなく、アドレステーブルをデバイスの固定エリアに書きこみ、その固定エリアをアクセスして、その情報を一度に読みこんでアドレス演算できるようにする方法も考えられる。
【００６６】
論理アドレスにより、アクセスする利点は、外部から内部の物理構造などを意識せずにインタフェースの設計ができることである。
（VIII）プロテクト機能と書きこみ回数のカウント
不揮発メモリ部でアクセスされるメモリは、ブロック毎にライト/リードプロテクト（ロックする）機能を持たせるようにする。これは、書き換えが許されないデータを保護のするためと、メモリの回復処理中で、元データによりそのアドレスの内容を復元しているときに、他のアクセスによってデータが修正されないようにするためにも必要な機能である。また、不揮発メモリ部８ｂにプロセッサのプログラムを格納するときのように、読み取りの性格が強いデータを格納する目的で使用している場合にも、ライトプロテクトを意識して制御することは大切である。
【００６７】
また、内部にデバイスに含まれるブロックごとに、書きこみ回数カウンタを構成し、書きこみ実施完了後にカウント値を＋１させる。そしてカウンタ値があらかじめ指定した閾値（しきいち）を超えた場合は、自動的にライトプロテクトする機能を持たせるようにする。あるいは、前もって交換ワーニングを示すようにしてもよい。これにより不揮発メモリの書きこみ回数のチェックと保守交換時期の予測をおこなうことが可能となる。
【００６８】
また、書きこみ回数については、内部の回路に情報格納用のレジスタを設ける方法と、不揮発メモリ自体にデータを保存する方法が考えられる。アドレス変換のための情報も同様に不揮発メモリ自体に保存しておくことも可能である。
【００６９】
さらに、アドレステーブルの障害に対応するために、二重にデータをコントローラ部内レジスタとデバイス自体に格納するという方法もとることも選択できる。
（IX）不揮発メモリ部への通常のアクセス
不揮発メモリ部へのデータの格納はブロック単位に実行される。図２の送信バッファ３１２の容量サイズは、複数のブロック容量が入るサイズであり、またデバイスごとに専用のバッファが設けられることが望ましい。不揮発メモリデバイス、例えば、不揮発ＥＥＰＲＯＭなどは、イレーズ（消去）して書きこまなくてはならないものもあり、ライトアクセス処理時間がリードに比べて遅いという特性がある。その欠点を補うために、データが来たときに、送信バッファ３１２に、複数ブロックを格納して、アダプタ部３０が上位側への応答をすれば、デバイスへのライト処理をおこなう場合の、見かけ上のアクセス時間を短くすることができる。
【００７０】
また、複数のデバイスを並列に書き込み／読み込みすることによっても、転送スループットが向上できる。並列に実装される例としては、図３に示されており、これによると、不揮発メモリモジュール部３２は、データ格納用にＤ３、Ｄ２、Ｄ１とパリティデータ用Ｑ、そしてこれらが使用不能となり、さらに交換不能となった場合のスペアロケーションＳＰが予備として配列されている。
（X）パリティデータ
次に、図５を用いて本発明の不揮発メモリデバイスに用いられるパリティデータによるデータ復元の原理について説明する。
【００７１】
パリティデータとは、冗長データであり、図５（ａ）の例でいえば、Ｄ３からＤ1の排他的論理和演算結果としてＱのデータを生成する。
【００７２】
復元についても、図５（ｂ）の例に示すとおり、パリティデータＱと正常なデバイスデータＤ３、Ｄ１の排他的論理和を演算すると復元データが計算できる。
【００７３】
この排他的論理和演算は、ビット毎に演算されているため、パリティデータによる当該ビットを復元することが可能となる。
（XI）保守と障害発生時の回復プロセス
次に、本発明の不揮発メモリ部の保守と障害がおこったときに、どのようにデータを復元して回復させるかについて説明する。
【００７４】
不揮発メモリモジュール部３２のメモリデバイスに対してはブロック単位にデータを分割して格納する。
【００７５】
データは、図６に示したように、Ｄ３、Ｄ２、Ｄ１に格納されるブロックデータとパリティのデータのトータルを１ページとし、複数ページを１フレームとしてデータを管理している。
【００７６】
Ｄ３、Ｄ２、Ｄ１に格納される単位のブロックデータは、複数バイトサイズの実データと、ブロック固有のブロックコードから構成されている。
【００７７】
そして、ブロック固有のブロックコードは、ブロックデータの固有ＩＤ番号（Ｌｏｇｉｃａｌ ＩＤ）と、デバイス上にて該当ブロック領域が何回書きこまれたかの履歴である更新回数（Ｗｒｉｔｅ  Ｎｕｍｂｅｒ、以下「ＷＮ」と記す）とそのデータから演算されるＣＲＣ等のデータ保護コードから構成されており、このブロックコードをチェックすることで、正しいロケーションに正しいデータが保存されていること、また、更新回数が不揮発メモリの限界回数値より低い規定値を満たしているかを判断できる。
【００７８】
このチェックにより障害が発見されたブロックデータに関しては、スペアロケーションに対してアクセスを切り替えるようにする。その際、ＬＩ番号は故障したブロックの番号を引き継ぎ、ＷＮはスペアロケーションの該当ブロックに対する値に更新する。図７が障害ブロックデータをスペアロケーションデバイスに交替例を示している。
【００７９】
交替ブロックの数が一定以上になった場合には、そのデバイスが相当劣化していることが考えられる。そのために、保守している者に対してデバイス交換を示唆するために、制御部３１内にある管理情報のレジスタに報告し、ワーニングとして、インジケータやアラームを点灯させる。不良デバイスの交換に際しては、障害が発生するとただちに不揮発メモリ部への書きこみを、いったん停止して、該当エリアに対しての論理的アドレスをライトロックし、あるいは、リードロックさせる。
【００８０】
そして、不良デバイスを新しい正常なデバイスに交換した後、図８に示すように、スペアデバイス内の交替データを複写し、スペアデバイスに交替データがないブロックは、Ｄ３、Ｄ1、Ｑよりデータを読み込み、（X）で説明したパリティ演算をおこなうことによりデータを復元させる。
【００８１】
この際、新しいデバイスの更新データは、初期値にリセットされ、スペアデバイスは複写ブロックデータは消去されるがＷＮは更新される。故障デバイスを交換したら、そのことを制御信号（図３のＳＹ／ＲＹ）により感知し、自動的に回復処理をさせることもできる。データパリティ演算により復元したデータとスペアデバイスに交替したブロックデータを新しいデバイスに格納し、そのデバイスが回復したことが確認できたら、インジケーターＬＥＤを正常な状態に表示する。
【００８２】
また不揮発メモリは、データが不揮発であるという前提ではあるが、半導体のソフトエラー等の経年変化によるデータの消失の可能性が全くないとは言えず、いざ読み込んだ際にデータがエラーになってしまう場合や、あるいは書きこみ回数が許容値に近づいていることが懸念される。
【００８３】
前もって保守交換のためのチェックは、システムを安定に運営する上でも必要であり、定期的にリライトすることが効果的である。定期的リライトモードにより、読み書きチェックをページ／ブロック単位におこなう回路をメモリコントローラ３１４に内蔵させる（図示していない）。リライトモードはアドレス範囲の設定とリライトモードコマンドの発行によってスタートされる。データバッファに読み出し、そのデータをもとの場所に書きこむ制御をする。
【００８４】
使用されていないとき、あるいは、強制的にロックしたエリアのみこのリライトチェックをおこなうようにする。このリライトチェックでは、リライトした後読み出しを実施し、パリティ演算回路で排他的論理和演算しデータを比較することにより、再度チェックをおこなう。また、保護コードのみをチェック対象として検査のためのオーバヘッドを減らすことも可能である。
【００８５】
故障の保守対象デバイスはインジケートするインジケーターとしてのＬＥＤの点灯によって保守員がわかるようにし、書きこみ回数カウンター値等により、規定回数以上を検出、エラー情報をメモリコントローラ内のエラーレジスタにモニタさせたり、ＬＥＤの点灯をさせるようにする。ＬＥＤが点灯し、その部位のアクセスをロックさせ、保守の交換までそのデバイスにアクセスさせないようにする。故障デバイスを交換したら、そのことを制御信号（図３のＳＹ／ＲＹ）により感知し、自動的に回復処理をさせることもできる。データパリティ演算により補間したデータが回復したことが確認できたら、インジケーターＬＥＤを正常な状態に表示する。
【００８６】
〔ディスク制御装置に不揮発メモリを使用したことの利点〕
不揮発メモリは、フラッシュＥＥＰＲＯＭに代表されるように、現在は、ＨＤＤより容量は小さいが年々コストが安くなり、デバイス当りの容量も増加している。ＨＤＤのように機械的な部品もなく、実装スペースならび消費電力の小さい点で記憶デバイスとして有利な点を持っている。
【００８７】
本発明は、ディスク記憶制御装置の中で部分的に不揮発メモリ部を記憶領域として使用するようにした。記憶装置のデータの一部を格納しキャッシュメモリ部の揮発メモリに対してバックアップ電源としてバッテリをもたせる代わりに不揮発メモリに緊急避難させることでき、バッテリの容量を減らし、装置の消費する電力を削減することができる。
【００８８】
また、不揮発メモリデバイスを複数配列しているので、故障したデバイス単位に保守でき、ＨＤＤを解体して中の円盤等の修理をするより、不揮発メモリデバイスのみを交換保守するので、修理時間が短く修理コストも安くなる。２次記憶領域として、あるいは、ＨＤＤに代わる記憶デバイスとして、装置の低価格化、消費電力の削減、保守性の向上に貢献することが期待できる。
【図面の簡単な説明】
【００８９】
【図１】本発明に係るディスク制御装置の構成図である。
【図２】不揮発メモリ部のブロック図である。
【図３】不揮発メモリ部内のメモリコントローラとメモリモジュールのインタフェースを説明するための図である。
【図４】不揮発メモリ部のアドレス空間の説明図である。
【図５】パリティデータによるデータ復元の原理を説明するための図である。
【図６】不揮発メモリ内で保持されるデータ構造の模式図である。
【図７】不揮発メモリ部の不良ブロックの取扱いのイメージ図である。
【図８】不揮発メモリ部のデバイス交換後のデータ復元の概要を示す図である。
【図９】共有メモリ部の構成図である。
【図１０】従来技術に係るディスク制御装置の構成図である。
【符号の説明】
【００９０】
１…ディスク制御装置、２…ドライブＩ／Ｆ、３…ホストＩ／Ｆ、４…キャッシュメモリ制御部、５…共有メモリアクセス制御部、６…マイクロプロセッサ部、８ａ…不揮発メモリ部、８ｂ…不揮発メモリ部、８ｃ…不揮発メモリ部、９…メモリモジュール、１０…バッテリ部、１１…ホストアダプタ部、１２…ディスクアダプタ部、１３…不揮発メモリパス、１４…キャッシュメモリ部、１５…共有メモリ部、１６…キャッシュメモリパス、１７…共有メモリパス、２０…磁気ディスクデバイス部、３０…Ｉ／Ｆアダプタ部、３０１…パケットバッファ、３０２…アダプタ制御部、３０２ａ…コマンド／アドレス解析部、３１…メモリコントローラ部、３１１…エラーチェック回路部、３１２…送信バッファ、３１３…セレクタ、３１４…メモリ制御部、３１５…ＶＰＰ制御部、３１６…演算回路、３２…不揮発メモリモジュール部、４０…共有メモリメモリパス、１５０…エラーチェック回路部、１５１…パスＩ／Ｆ部、１５２…データ転送制御部、１５３…パケットバッファ、１５５…アドレスコマンド解析部、１５７…メモリ制御部、１５８…アービタ、１５９…メモリモジュール、５０…ホストコンピュータ。
【図１】
2008217811.tif 000003
【図２】
2008217811.tif 000004
【図３】
2008217811.tif 000005
【図４】
2008217811.tif 000006
【図５】
2008217811.tif 000007
【図６】
2008217811.tif 000008
【図７】
2008217811.tif 000009
【図８】
2008217811.tif 000010
【図９】
2008217811.tif 000011
【図１０】
2008217811.tif 000012