説明

不揮発メモリを使用したディスク制御装置

【課題】ディスク制御装置に用いられる半導体記憶装置、ディスク装置の交替媒体として、半導体不揮発メモリを利用できるようにし、その特性を生かした実装をおこなうことにより、ディスク制御装置自体の性能、保守性、信頼性を向上させるようにする。
【解決手段】不揮発メモリ部を、実データ格納デバイス、予備用の格納デバイス、パリティ冗長データ用デバイスの三種のメモリモジュールからなるようにし、並列に実装して構成する。そして、それぞれのデバイスに、最小ブロック単位ごとにデータを保持させ、ブロック毎の予備情報として、更新情報、保護コードを設け、不揮発メモリデバイスの障害や不良を監視する。不揮発メモリ部は、メモリデバイスの分割されたブロックごとに、リードプロテクト、ライトプロテクトを可能にし、不良ブロックを発見する診断リライト機能を持たせる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、不揮発メモリを使用したディスク制御装置に係り、特に、不揮発メモリの特性を生かして、並列に実装して交換容易なものにし、他のメモリ、ディスクの代替として機能を発揮させる不揮発メモリを使用したディスク制御装置に関する。
【背景技術】
【0002】
一般に、コンピュータなどの情報処理システムの記憶デバイスは、アクセス速度と容量あたりのコストが反比例するピラミッド構造をなしている。代表的なものをあげると、主記憶装置に用いられるCPUからのアクセス速度が速いが容量コスト比の不利な半導体メモリと、補助記憶装置として用いられるこの逆の特性をもつHDD(磁気ディスク装置)、MT(磁気テープ装置)などである。
【0003】
主記憶装置に使われる半導体記憶装置としては、構造が簡単であり容量が大きくできることから揮発メモリが使われるのが普通である。フラッシュEEPROMに代表される半導体不揮発メモリは、不揮発であるという特性を利用して、メモリカードなどが主な用途になっている。
【0004】
これを磁気ディスク装置と対比してみると、フラッシュEEPROMなどの半導体不揮発メモリは、小型・低消費電力・高信頼性という特徴を持ち、上記のように携帯情報端末、ノート型パソコンのメモリカードとして普及している。一方の磁気ディスク装置は、小はパソコンから、大はメインフレーム、大型ストレージ装置等の記憶デバイスまで広く使われており、信頼性こそ問題があるものの大容量であり、容量価格比が半導体装置などに比べて圧倒的に有利であるという特徴がある。このようなことより、磁気ディスク装置とフラッシュEEPROMなどの半導体不揮発メモリはメディアとしての明確にすみわけがなされているのが現状である。
【0005】
このように磁気ディスク装置は、容量価格比が有利なことより、情報処理システムの補助記憶装置の主流になっており、技術革新があいついでおこなわれ、単位面積あたりの記憶容量は飛躍的に向上しており、個々のHDD媒体の容量は増大化し、ここ数年間でさえ一台の磁気ディスク装置の容量は数GBから数百GBへ上がっている。一方で、弱点である磁気ディスク装置の信頼性をカバーすべく、RAID技術を利用したディスクアレイ制御により、装置全体として信頼性を向上させ、大型記憶サブシステムとしての容量も数TBの製品が市場に出てきている。
【0006】
今般の情報処理システムでは、ディスク記憶装置へのI/O性能がボトルネックになることが多くなってきており、ディスク記憶装置へのI/O性能向上に対する要求は特に高く、サブシステムのI/O性能を向上させる努力がなされている。
【0007】
そのひとつの方法としては、図10の従来技術に係るディスク装置装置の構成に示されるように、ディスク制御装置1は、上位側(フロントエンド側)にあたるホストコンピュータ50の装置アクセスの高速化に伴い緩衝用のメモリバッファ(キャッシュメモリ)を設けることである。
【0008】
ところがこの方法を採用すると、バックエンド側のHDD媒体に対するキャッシュバック処理とのアクセス速度差が大きくなりつつある傾向が見られてきた。
【0009】
これにともない、バックエンド側のアクセス速度を上げるべく、光ファイバインターフェース等のI/Fの性能をアップさせる努力が試みられているが、物理的な外乱等による実装等、技術的な問題も多い。
【0010】
キャッシュメモリは、通常、SDRAM等の揮発メモリで構成されており、信頼性向上のための二重化を施し、そして停電時にデータを保持させるためのバックアップ電源機能をもつ傾向にある(図10のバッテリ10)。合わせて装置自体の容量を大きくして、実装密度が上がることにより、サブシステムの消費電流が大きくなり、過大な設備コストがかかるという問題点が生じてきている。
【0011】
図10に示した従来技術に係るディスク制御装置では、不揮発メモリは、小容量という制約をもとにデータプロセッシングのMPU(マイクロプロセッサユニット)上で動作するオペレーションシステムの実プログラムの格納用として一部使用されていたのが現状である(図10のマイクロプロセッサ6)。
【0012】
しかしながら、最近、フラッシュEEPROM等も容量が増大化し、ビット当りのコストも低下してきており、ノートパソコンの部分的な記憶デバイスとして一部、HDDの入替として利用がされてきている。HDDに比べ衝撃に対しての耐故障が強く、また物理的な磨耗がない特徴もあり信頼性が高い。また他の半導体不揮発メモリデバイスの開発も盛んになっており、省スペース、大容量、信頼性において将来、HDDを凌駕するデバイスが開発されることも期待できる。ただし、実際現在のディスク記憶装置等に利用する際には、フラッシュEEPROM等の不揮発メモリのデメリットである、書きこみ時間にイレーズ等のオーバーヘッドがかかること、書きこみ回数に限界があり、定期的な保守によるデータの保証の手段が要求されるなどの問題点を指摘することができる。
【発明の開示】
【発明が解決しようとする課題】
【0013】
上記に説明したように、フラッシュEEPROM等に示されるように不揮発メモリメディアは、ここ年々開発が進み容量当りのコストも低くなってきており、磁気ディスク装置との従来のすみわけの境界がなくなりつつなってきている。しかしながら、不揮発メモリは上記のように書き換え回数に制限があるという問題を持っている。よって高い信頼性が要求されるディスク記憶制御システムにおいて使用する際には、保守のためにメモリデバイスを交換する機構が必要であるのと、交換時期を判定する機能が必須であり、またフラッシュEEPROMなどは、ブロック単位で領域をイレーズしてからライトをする特徴をもつので、書きこみのアクセス時間が、読み出しのアクセス時間に比べて大きくなるという性能上のマイナス面を考慮する必要がある。
【0014】
本発明は、上記問題点を解決するためになされたもので、その目的は、ディスク制御装置に用いられる半導体記憶装置、ディスク装置の交替媒体として、半導体不揮発メモリを利用できるようにし、その特性を生かした実装をおこなうことにより、ディスク制御装置自体の性能、保守性、信頼性を向上させた半導体記憶装置を提供することにある。
【課題を解決するための手段】
【0015】
本発明の不揮発メモリを使用したディスク制御装置においては、不揮発メモリ部は、実データ格納デバイス、予備用の格納デバイス、実データのパリティ冗長データが格納されるパリティ冗長データ用デバイスの三種の不揮発メモリデバイスからなるメモリモジュールを含み、これらの不揮発メモリデバイスは、並列に実装して構成する。それぞれの不揮発メモリデバイスには、最小ブロック単位ごとにデータを保持させ、ブロック毎の予備情報として、更新情報、保護コードを設け、不揮発メモリデバイスの障害や不良を監視する。
【0016】
不揮発メモリデバイスは、並列に実装して構成されていることより、簡単に交換することができる。そして、障害のある不揮発メモリデバイスは、パリティ冗長データ、保護コードから復元可能にする。
【0017】
不揮発メモリ部は、メモリデバイスの分割されたブロックごとに、リードプロテクト、ライトプロテクトを可能にし、不良ブロックを発見する診断リライト機能を持たせる。
【0018】
不揮発メモリの用途としては、ホストとディスク装置とでやり取りされるデータを保持するキッシュメモリ、制御情報を保持する共有メモリの代替、また、予備用のディスク装置の代替である。
【0019】
さらに、マイクロプロセッサの実行するプログラムを格納したり、ディスクへのアクセスログ情報、障害ログ情報を格納してもよい。
【発明の効果】
【0020】
本発明によれば、ディスク制御装置に用いられる半導体記憶装置、ディスク装置の交替媒体として、半導体不揮発メモリを利用できるようにし、その特性を生かした実装をおこなうことにより、装置自体の性能、保守性、信頼性を向上させた半導体記憶装置を提供することができる。
【発明を実施するための最良の形態】
【0021】
以下、本発明に係る一実施形態を、図1ないし図9を用いて説明する。
【0022】
〔ディスク制御装置の構成〕
先ず、図1を用いて本発明に係るディスク制御装置の構成を説明する。
図1は、本発明に係るディスク制御装置の構成図である。
【0023】
ディスク制御装置1は、ホストアダプタ部11と、ディスクアダプタ部12と、キャッシュメモリ部14を持ち、これらを接続するキャッシュメモリパス16を持つ。また、共有メモリ部15を有し、これとホストアダプタ部11とディスクアダプタ部12とを接続する共有メモリパス17を持っている。
【0024】
ホストアダプタ部11は、ホストとインタフェースをおこなう部分であり、ホストコンピュータ50に対する入出力を制御する複数のプロセッサ6を有している。このホストアダプタ部11は、プロセッサ6の制御によりホストコンピュータ50とキャッシュメモリパス16を介してキャッシュメモリ部14のデータ転送を実行する。また、共有メモリ部15に対してもプロセッサ6の制御により共有メモリパス17を使用しデータを転送する。
【0025】
ディスクアダプタ部12は、ディスク装置20とインタフェースをおこなう部分であり、ディスク装置20に対する入出力を制御するプロセッサ6を有し、プロセッサ6の制御によりディスク装置20とキャッシュメモリ部14間のデータ転送を実行する。ディスクアダプタ部12は、ディスクに対してのRAID制御等の演算機能の実行もおこなう。
【0026】
また、共有メモリ部15に対してもマイクロプロセッサ6の制御により共有メモリ部15と接続する共有メモリパス17を使用しデータを転送する。
【0027】
ホストアダプタ部11、ディスクアダプタ部12は、共に、信頼性を向上させるために二重化されている。
【0028】
キャッシュメモリ部14は、内部にメモリモジュール9を有し、ホストコンピュータ50とディスク装置20とでやり取りされるデータを一時的に保持する部分である。。
【0029】
共有メモリ部15は、内部にメモリモジュール9を有し、キャッシュデータの管理情報を格納する。すなわち、複数のホストアダプタ部11、あるいは、複数のドライブアダプタ部12のキャッシュメモリへのアクセスについてデータ更新の排他制御等で必要なテーブル情報等を格納する。共有メモリデータがキャッシュメモリデータと違って、容量も小さく、トランザクション的なアクセスが多くレスポンス時間が短いことが性能向上に不可欠なためプロトコル・オーバーヘッド時間を少なくする必要がある。キャッシュメモリ部と共有メモリ部を分離した経路を持つ意味は、このようにデータアクセスの性質が相異なることを考慮しているためであり、キャッシュメモリ部14と共有メモリ部15とは耐故障性を考慮して、二重化されていることが一般的である。また装置電源断時のデータ保持のために従来装置(図10参照)のようにバッテリによる電源バックアップをしていることが通例である。
【0030】
本発明のディスク制御装置は、不揮発メモリを、三つの異なる形態で用いている。
【0031】
不揮発メモリ部8aは、キャッシュメモリ部14あるいは共有メモリ部15と従属した接続形態である。
【0032】
不揮発メモリ部8bは、共有メモリパスに直接接続した形態である。
【0033】
不揮発メモリ部8cは、HDDディスク配列の一部として接続した形態である。
【0034】
不揮発メモリ部8aは、キャッシュメモリ部14あるいは共有メモリ部15と従属した接続をしており、各々でキャッシュメモリデータあるいは共有メモリデータの移送を可能としたものである。したがって、電源断が発生する直前にデータを退避させるようにしておけば、バッテリによる電源バックアップをおこなわなくてもデータの保全が図れることになる。
【0035】
また、通電時にはキャッシュバックする際のディスクへの書きこみをおこなう前に一時的エリアとしてデータの一部を書きこむこともできる。これはディスクにデータを置くよりも次の読み込みが早いという利点をもつ。
【0036】
不揮発メモリ部8bは、ホストアダプタ部11とディスクアダプタ部12に共有メモリパス17を介して接続する。
【0037】
この不揮発メモリ部8bは、不揮発メモリ部8aと違い独立した記憶エリアとして機能し、複数のプロセッサ6からアクセスされるメモリである。用途としては、システムの構成・管理情報を格納したり、マイクロプロセッサを実行するためのプログラムを格納したり、ディスクへのアクセス情報、障害ログ情報などを書きこみ保存することなどが考えられる。
【0038】
不揮発メモリ部8cは、HDDディスク配列の一部のメディアデバイスとして用いられるものであり、ディスクに故障がおこったときの交替用の予備デバイスとして用いることができる。
【0039】
また、ディスク装置20のすべてを、不揮発メモリ部8cによる配列にするという構成も考えられる。
【0040】
これら不揮発メモリ部8a,8b,8cらは、容量の拡張が可能とし、交換可能なように実装する。
【0041】
また、不揮発メモリの特性を考慮して、書きこみ回数等の制限を管理し、デバイスの不良を検出できるようにする。そして、メモリモジュールを複数のメモリデバイスで構成し、不良なメモリデバイスの交換をおこなえるようにする。
【0042】
さらに、これらの不揮発メモリ部に、メモリの障害検出とデータの保全のために、意図的に読み出してリライトする機能をもたせる。
【0043】
すなわち、領域管理テーブルと更新来歴のマッピング情報等についての情報を内部レジスタ(ブロック管理用レジスタ)に持たせ、定期的に指定エリアに対し、アクセスのないときにリライトチェックをおこなう。そして、その書きこみ時には該当領域をロックさせ、上位からの更新を抑止させる。あるいは、上位からの更新要求があったときには、このリライト処理を中断させて、ロックを外し要求を完了後に、再度ロックしリライト処理するようにしてもよい。
【0044】
〔不揮発メモリ部の詳細〕
次に、図2ないし図9を用いてディスク制御装置内の不揮発メモリ部の詳細について説明する。
図2は、不揮発メモリ部のブロック図である。
図3は、不揮発メモリ部内のメモリコントローラとメモリモジュールのインタフェースを説明するための図である。
図4は、不揮発メモリ部のアドレス空間の説明図である。
図5は、パリティデータによるデータ復元の原理を説明するための図である。
図6は、不揮発メモリ内で保持されるデータ構造の模式図である。
図7は、不揮発メモリ部の不良ブロックの取扱いのイメージ図である。
図8は、不揮発メモリ部のデバイス交換後のデータ復元の概要を示す図である。
図9は、共有メモリ部の構成図である。
(I)不揮発メモリ部の構成概要
不揮発メモリ部8a,8b,8cの構成は、図2に示されるようにI/Fアダプタ部30とメモリコントローラ31と不揮発メモリモジュール32の主たる部位に分けられる。
(II)I/Fアダプタ部
I/Fアダプタ部30は、接続する装置内部のパスからの不揮発メモリモジュールへのデータ受信・送信に際し、インターフェースを解読し、内部の不揮発メモリモジュール32へのアクセスをメモリコントローラ部31の指揮下で制御する。
【0045】
すなわち、I/Fアダプタ部30は、上位I/Fパス9と接続し、それぞれのインターフェースのプロトコルを解析し、制御信号をメモリコントローラ部に提供する。ここで、接続する上位I/Fパス9の種類は、不揮発メモリ部8aであれば内部パス、不揮発メモリ部8bであれば、キャッシュメモリパス16、共有メモリパス17、そして不揮発メモリ部8cであればドライブI/F2である。
【0046】
I/Fアダプタ部30内のアダプタ制御部302を、このユニットを接続するI/Fに合わせて変更することで8a,8b,8cのバリエーションが作成できる。
【0047】
I/Fアダプタ部では、接続パス9から送られるデータは、アダプタ制御部302のコントロールにより、I/Fアダプタ部30内で接続するパケットバッファ301で受信する。また、メモリモジュール33からの送信データをパケットバッファ301より送信する。
【0048】
アダプタ制御部内にあるアドレス/コマンド解析部302aは、図示しなかったが、アドレスおよびコマンドを格納するバッファと、アドレス抽出部と、コマンド抽出部を有する。アドレス抽出部およびコマンド抽出部がその解析結果により、メモリコントローラ部31に対して制御信号を送信する。
(III)不揮発メモリ部8aの場合の接続するメモリ部の構成
不揮発メモリ部8aの場合は、図1のキャッシュ部14と共有メモリ部15に対して接続パスを設ける必要がある。したがって、この場合には、キャッシュ部14と共有メモリ部15の内部のパス制御を変更する必要がある。
【0049】
すなわち、共有メモリ部15の内部に、図9に示されるように、不揮発メモリパス18を設けるようにする。(また、キャッシュメモリ部14の場合も、おおよそ同様にして実現することができる。)
以下、共有メモリ部15の構成について説明する。
【0050】
共有メモリ部15は、複数のメモリモジュール159を有し、パスI/F部150と、パケットバッファ153と、データのエラーチェック部150と、メモリ制御部157と、アドレス/コマンド解析部155と、データ転送制御部152とを有している。
【0051】
パケットバッファ153は、セレクタ156とデータを一時格納する部分である。メモリ制御部157は、メモリモジュール159へのアクセスを制御する部分である。アドレス/コマンド解析部155は、共有メモリパス17から送出されたアドレスおよびコマンドを解析する。
【0052】
データ転送制御部152は、アービタ158により、アドレス/コマンド解析部155で解析した共有メモリパス17からのアクセス要求と、共有メモリ部に接続する不揮発メモリパス18からアクセス要求とのアービトレーションをおこない、セレクタ156の切り替えをおこなう。この不揮発メモリパス18からのアクセス要求があるのが本発明の特有の部分である。
【0053】
アドレス/コマンド解析部155は、バッファとアドレス抽出部とコマンド抽出部を有する(図示せず)。アドレス/コマンド解析部155では、共有メモリパス17に割り当てられたバッファに、アドレス、コマンドを格納する。(このパスは図9では4つ独立した系が示されている。)アドレス抽出部およびコマンド抽出部では、アクセスするメモリのアドレスとアクセスの種類を割り出し、メモリ制御部157へ送出する。また共有メモリパス17からのアクセス要求をデータ転送制御部152内のアービタ158へ送出する。このとき、通常はメモリモジュール159へのアクセスをおこなうが、不揮発メモリ部へのアクセスモードの場合はセレクタ156を切り替え、パスI/F部151と接続する不揮発メモリパス18へ切り替えを実施する。
【0054】
またデータ転送制御部152には、ホストI/F部、ドライブI/F部の介在による共有メモリアクセスに依存せずに、共有メモリモジュール158のデータをダイレクトに不揮発メモリパス18へ転送する機能を持たせるようにする。
【0055】
これは、緊急的に共有メモリデータを不揮発メモリ部へ転送する際に、時間を短縮するために有効な機能である。
【0056】
この機能は、通常の転送マスタはホストI/F部、ドライブI/F部であるが、この場合にセレクタ156の制御により転送マスタにデータ転送制御部152がなることで実現することができる。
(IV)メモリコントローラ部
メモリコントローラ部31は、エラーチェック回路部311と、送信バッファ312と、送受信セレクタ313とを有しており、これらは、不揮発メモリモジュール部32に接続パスを有している。
【0057】
同様にI/Fアダプタ部への送信パスは、セレクタ部313から接続され、その間にエラーチェック回路部311が存在する。
【0058】
メモリ制御部314は、不揮発メモリモジュール部32への制御線をコントロールしており、先に説明したI/Fアダプタ部30内のコマンドアドレス解析部302からの制御線からの信号により、送信バッファ312とセレクタ部313への信号を出力する。このメモリ制御部は、アクセスされる論理アドレスを、内部の物理アドレスに変換するアドレス変換機能と、アクセスするアドレス毎にプロテクトをおこなうロック機能を有している。
【0059】
また、VPP制御部315は、不揮発EEPROM等のメモリモジュールの書きこみ電源の制御等で必要な場合機能をさせる。
【0060】
このメモリ制御部314は、不揮発メモリモジュール32内の複数の不揮発メモリ配列に対してアクセスを制御し、データ保証のための演算回路316を有する。
【0061】
この演算回路316は、パリティデータや保護コードからデータ復元をおこなう回路であり、これらについては後に詳細に説明する。
(V)不揮発メモリモジュール部
不揮発メモリモジュール部32は、図2に示されているように複数のメディアの配列を構成要素として持っている。これは単体メディアの保守を可能とするためで、故障あるいは保守対象メディアを示すインジケータ(LED等)により、その部位のインジケータがONであるときに交換保守できるようになっている。また、メディアを容量の違うタイプに交換してアップグレードすることを許容とした構造を持っている。
【0062】
不揮発メモリモジュール部32に実装されるメモリデバイスは、データ格納用、データ格納用スペア、パリティデータ格納用の三種類である。
(VI)メモリコントローラと不揮発メモリモジュールのインターフェース
次に、図3を用いてメモリコントローラ31と不揮発メモリモジュール32のインターフェースについて説明する。
【0063】
図3では、メモリコントローラ部31と5つのメモリモジュール部32が接続されている。各々のデータは、ADRESS/DATAバスにて送受信され、デバイスの選択はチップイネーブル(CE)信号がアサートされて実現する。またライトイネーブル(WE)信号、アウトプットイネーブル(OE)信号は、書きこみ/読み込みかを選択し、CLK信号等により同期をとりデバイスに書きこみ/リードする。
(VII)不揮発メモリ部のアドレス空間
ADRESSデータ信号、物理アドレス空間は、コントローラ内部のアドレステーブルで論理アドレスから物理アドレスに変換される間接アドレッシング方式を使用する。これにより、論理的にアクセスできるアドレス空間は拡張される。
【0064】
アドレス空間は、図4のイメージのように拡張空間によりデバイスの容量増加に対応できるしくみとなる。すなわち、実データとブロックはページに格納され、そのページが集まってフレームを構成する。
【0065】
論理アドレスから物理アドレスの変換は、内部のアドレステーブルによりデバイスの物理アドレスに間接的にリンクさせるものである。またメモリ制御部31内に設けたレジスタにではなく、アドレステーブルをデバイスの固定エリアに書きこみ、その固定エリアをアクセスして、その情報を一度に読みこんでアドレス演算できるようにする方法も考えられる。
【0066】
論理アドレスにより、アクセスする利点は、外部から内部の物理構造などを意識せずにインタフェースの設計ができることである。
(VIII)プロテクト機能と書きこみ回数のカウント
不揮発メモリ部でアクセスされるメモリは、ブロック毎にライト/リードプロテクト(ロックする)機能を持たせるようにする。これは、書き換えが許されないデータを保護のするためと、メモリの回復処理中で、元データによりそのアドレスの内容を復元しているときに、他のアクセスによってデータが修正されないようにするためにも必要な機能である。また、不揮発メモリ部8bにプロセッサのプログラムを格納するときのように、読み取りの性格が強いデータを格納する目的で使用している場合にも、ライトプロテクトを意識して制御することは大切である。
【0067】
また、内部にデバイスに含まれるブロックごとに、書きこみ回数カウンタを構成し、書きこみ実施完了後にカウント値を+1させる。そしてカウンタ値があらかじめ指定した閾値(しきいち)を超えた場合は、自動的にライトプロテクトする機能を持たせるようにする。あるいは、前もって交換ワーニングを示すようにしてもよい。これにより不揮発メモリの書きこみ回数のチェックと保守交換時期の予測をおこなうことが可能となる。
【0068】
また、書きこみ回数については、内部の回路に情報格納用のレジスタを設ける方法と、不揮発メモリ自体にデータを保存する方法が考えられる。アドレス変換のための情報も同様に不揮発メモリ自体に保存しておくことも可能である。
【0069】
さらに、アドレステーブルの障害に対応するために、二重にデータをコントローラ部内レジスタとデバイス自体に格納するという方法もとることも選択できる。
(IX)不揮発メモリ部への通常のアクセス
不揮発メモリ部へのデータの格納はブロック単位に実行される。図2の送信バッファ312の容量サイズは、複数のブロック容量が入るサイズであり、またデバイスごとに専用のバッファが設けられることが望ましい。不揮発メモリデバイス、例えば、不揮発EEPROMなどは、イレーズ(消去)して書きこまなくてはならないものもあり、ライトアクセス処理時間がリードに比べて遅いという特性がある。その欠点を補うために、データが来たときに、送信バッファ312に、複数ブロックを格納して、アダプタ部30が上位側への応答をすれば、デバイスへのライト処理をおこなう場合の、見かけ上のアクセス時間を短くすることができる。
【0070】
また、複数のデバイスを並列に書き込み/読み込みすることによっても、転送スループットが向上できる。並列に実装される例としては、図3に示されており、これによると、不揮発メモリモジュール部32は、データ格納用にD3、D2、D1とパリティデータ用Q、そしてこれらが使用不能となり、さらに交換不能となった場合のスペアロケーションSPが予備として配列されている。
(X)パリティデータ
次に、図5を用いて本発明の不揮発メモリデバイスに用いられるパリティデータによるデータ復元の原理について説明する。
【0071】
パリティデータとは、冗長データであり、図5(a)の例でいえば、D3からD1の排他的論理和演算結果としてQのデータを生成する。
【0072】
復元についても、図5(b)の例に示すとおり、パリティデータQと正常なデバイスデータD3、D1の排他的論理和を演算すると復元データが計算できる。
【0073】
この排他的論理和演算は、ビット毎に演算されているため、パリティデータによる当該ビットを復元することが可能となる。
(XI)保守と障害発生時の回復プロセス
次に、本発明の不揮発メモリ部の保守と障害がおこったときに、どのようにデータを復元して回復させるかについて説明する。
【0074】
不揮発メモリモジュール部32のメモリデバイスに対してはブロック単位にデータを分割して格納する。
【0075】
データは、図6に示したように、D3、D2、D1に格納されるブロックデータとパリティのデータのトータルを1ページとし、複数ページを1フレームとしてデータを管理している。
【0076】
D3、D2、D1に格納される単位のブロックデータは、複数バイトサイズの実データと、ブロック固有のブロックコードから構成されている。
【0077】
そして、ブロック固有のブロックコードは、ブロックデータの固有ID番号(Logical ID)と、デバイス上にて該当ブロック領域が何回書きこまれたかの履歴である更新回数(Write Number、以下「WN」と記す)とそのデータから演算されるCRC等のデータ保護コードから構成されており、このブロックコードをチェックすることで、正しいロケーションに正しいデータが保存されていること、また、更新回数が不揮発メモリの限界回数値より低い規定値を満たしているかを判断できる。
【0078】
このチェックにより障害が発見されたブロックデータに関しては、スペアロケーションに対してアクセスを切り替えるようにする。その際、LI番号は故障したブロックの番号を引き継ぎ、WNはスペアロケーションの該当ブロックに対する値に更新する。図7が障害ブロックデータをスペアロケーションデバイスに交替例を示している。
【0079】
交替ブロックの数が一定以上になった場合には、そのデバイスが相当劣化していることが考えられる。そのために、保守している者に対してデバイス交換を示唆するために、制御部31内にある管理情報のレジスタに報告し、ワーニングとして、インジケータやアラームを点灯させる。不良デバイスの交換に際しては、障害が発生するとただちに不揮発メモリ部への書きこみを、いったん停止して、該当エリアに対しての論理的アドレスをライトロックし、あるいは、リードロックさせる。
【0080】
そして、不良デバイスを新しい正常なデバイスに交換した後、図8に示すように、スペアデバイス内の交替データを複写し、スペアデバイスに交替データがないブロックは、D3、D1、Qよりデータを読み込み、(X)で説明したパリティ演算をおこなうことによりデータを復元させる。
【0081】
この際、新しいデバイスの更新データは、初期値にリセットされ、スペアデバイスは複写ブロックデータは消去されるがWNは更新される。故障デバイスを交換したら、そのことを制御信号(図3のSY/RY)により感知し、自動的に回復処理をさせることもできる。データパリティ演算により復元したデータとスペアデバイスに交替したブロックデータを新しいデバイスに格納し、そのデバイスが回復したことが確認できたら、インジケーターLEDを正常な状態に表示する。
【0082】
また不揮発メモリは、データが不揮発であるという前提ではあるが、半導体のソフトエラー等の経年変化によるデータの消失の可能性が全くないとは言えず、いざ読み込んだ際にデータがエラーになってしまう場合や、あるいは書きこみ回数が許容値に近づいていることが懸念される。
【0083】
前もって保守交換のためのチェックは、システムを安定に運営する上でも必要であり、定期的にリライトすることが効果的である。定期的リライトモードにより、読み書きチェックをページ/ブロック単位におこなう回路をメモリコントローラ314に内蔵させる(図示していない)。リライトモードはアドレス範囲の設定とリライトモードコマンドの発行によってスタートされる。データバッファに読み出し、そのデータをもとの場所に書きこむ制御をする。
【0084】
使用されていないとき、あるいは、強制的にロックしたエリアのみこのリライトチェックをおこなうようにする。このリライトチェックでは、リライトした後読み出しを実施し、パリティ演算回路で排他的論理和演算しデータを比較することにより、再度チェックをおこなう。また、保護コードのみをチェック対象として検査のためのオーバヘッドを減らすことも可能である。
【0085】
故障の保守対象デバイスはインジケートするインジケーターとしてのLEDの点灯によって保守員がわかるようにし、書きこみ回数カウンター値等により、規定回数以上を検出、エラー情報をメモリコントローラ内のエラーレジスタにモニタさせたり、LEDの点灯をさせるようにする。LEDが点灯し、その部位のアクセスをロックさせ、保守の交換までそのデバイスにアクセスさせないようにする。故障デバイスを交換したら、そのことを制御信号(図3のSY/RY)により感知し、自動的に回復処理をさせることもできる。データパリティ演算により補間したデータが回復したことが確認できたら、インジケーターLEDを正常な状態に表示する。
【0086】
〔ディスク制御装置に不揮発メモリを使用したことの利点〕
不揮発メモリは、フラッシュEEPROMに代表されるように、現在は、HDDより容量は小さいが年々コストが安くなり、デバイス当りの容量も増加している。HDDのように機械的な部品もなく、実装スペースならび消費電力の小さい点で記憶デバイスとして有利な点を持っている。
【0087】
本発明は、ディスク記憶制御装置の中で部分的に不揮発メモリ部を記憶領域として使用するようにした。記憶装置のデータの一部を格納しキャッシュメモリ部の揮発メモリに対してバックアップ電源としてバッテリをもたせる代わりに不揮発メモリに緊急避難させることでき、バッテリの容量を減らし、装置の消費する電力を削減することができる。
【0088】
また、不揮発メモリデバイスを複数配列しているので、故障したデバイス単位に保守でき、HDDを解体して中の円盤等の修理をするより、不揮発メモリデバイスのみを交換保守するので、修理時間が短く修理コストも安くなる。2次記憶領域として、あるいは、HDDに代わる記憶デバイスとして、装置の低価格化、消費電力の削減、保守性の向上に貢献することが期待できる。
【図面の簡単な説明】
【0089】
【図1】本発明に係るディスク制御装置の構成図である。
【図2】不揮発メモリ部のブロック図である。
【図3】不揮発メモリ部内のメモリコントローラとメモリモジュールのインタフェースを説明するための図である。
【図4】不揮発メモリ部のアドレス空間の説明図である。
【図5】パリティデータによるデータ復元の原理を説明するための図である。
【図6】不揮発メモリ内で保持されるデータ構造の模式図である。
【図7】不揮発メモリ部の不良ブロックの取扱いのイメージ図である。
【図8】不揮発メモリ部のデバイス交換後のデータ復元の概要を示す図である。
【図9】共有メモリ部の構成図である。
【図10】従来技術に係るディスク制御装置の構成図である。
【符号の説明】
【0090】
1…ディスク制御装置、2…ドライブI/F、3…ホストI/F、4…キャッシュメモリ制御部、5…共有メモリアクセス制御部、6…マイクロプロセッサ部、8a…不揮発メモリ部、8b…不揮発メモリ部、8c…不揮発メモリ部、9…メモリモジュール、10…バッテリ部、11…ホストアダプタ部、12…ディスクアダプタ部、13…不揮発メモリパス、14…キャッシュメモリ部、15…共有メモリ部、16…キャッシュメモリパス、17…共有メモリパス、20…磁気ディスクデバイス部、30…I/Fアダプタ部、301…パケットバッファ、302…アダプタ制御部、302a…コマンド/アドレス解析部、31…メモリコントローラ部、311…エラーチェック回路部、312…送信バッファ、313…セレクタ、314…メモリ制御部、315…VPP制御部、316…演算回路、32…不揮発メモリモジュール部、40…共有メモリメモリパス、150…エラーチェック回路部、151…パスI/F部、152…データ転送制御部、153…パケットバッファ、155…アドレスコマンド解析部、157…メモリ制御部、158…アービタ、159…メモリモジュール、50…ホストコンピュータ。

【特許請求の範囲】
【請求項1】
計算機に接続されるホストインタフェース部と、
前記ホストインタフェース部に接続され、前記計算機から送受信されるデータを一時的に格納するキャッシュメモリ部と、
前記ホストインタフェース部および前記キャッシュメモリ部に接続され、前記計算機から送受信されるデータの入出力を制御するディスクインタフェース部と、
前記ディスクインタフェース部に接続され、前記計算機から送受信されるデータを格納する複数のディスク装置と、
前記キャッシュメモリ部に接続され、前記計算機から送受信されるデータを格納する不揮発メモリ部とを有することを特徴とするストレージシステム。
【請求項2】
請求項1に記載のストレージシステムであって、
当該ストレージシステム内で送受信される制御情報を格納する共有メモリ部を有し、
前記不揮発メモリ部は、前記共有メモリ部に接続され、前記制御情報を格納することを特徴とするストレージシステム。
【請求項3】
請求項1または2に記載のストレージシステムであって、
前記不揮発メモリ部は、当該ストレージシステムの停電時に、前記キャッシュメモリ部に格納された前記データ、または前記共有メモリ部に格納された前記制御情報を退避して格納することを特徴とするストレージシステム。
【請求項4】
請求項2に記載のストレージシステムであって、
前記共有メモリ部は、前記ホストインタフェース部に接続される共有メモリパスと、前記不揮発メモリ部と接続される不揮発メモリパスとを有し、
前記共有メモリパスを介した該共有メモリ部内のデータに対するアクセス要求と、前記不揮発メモリパスを介した不揮発メモリ部内のデータに対するアクセス要求とのうち、いずれかのアクセス要求を選択し、前記選択したアクセス要求を解析し、該アクセス要求先に送信することを特徴とするストレージシステム。
【請求項5】
請求項1に記載のストレージシステムであって、
前記不揮発メモリ部は、インタフェースアダプタ部と、データを格納する不揮発メモリデバイスと、前記不揮発メモリデバイスに対するデータの書込み又は読み出しを制御するコントローラ部とを有し、
前記インタフェースアダプタ部は、前記キャッシュメモリ部との間で用いられるプロトコルを解析し、前記キャッシュメモリ部から送信される制御信号およびデータを解析し、該解析した制御信号およびデータを前記コントローラ部に送信することを特徴とするストレージシステム。
【請求項6】
請求項1に記載のストレージシステムであって、
前記不揮発メモリ部は、複数の不揮発メモリデバイスと、
前記複数の不揮発メモリデバイスに格納されるデータと、前記複数の不揮発メモリデバイスのうちのいずれかの不揮発メモリデバイスに格納されるパリティデータとを用いてデータ演算するコントローラとを有することを特徴とするストレージシステム。
【請求項7】
請求項6に記載のストレージシステムであって、
前記複数の不揮発メモリデバイスは、前記不揮発メモリ部内に並列に実装され、それぞれ、最小ブロック単位ごとに、データと、該データの論理管理IDと、該最小ブロック単位の良、不良を判定するための保護コードとを含むことを特徴とするストレージシステム。
【請求項8】
請求項7に記載のストレージシステムであって、
前記最小ブロック単位は、更新時にインクリメントされる更新回数情報を含み、
前記不揮発メモリ部は、前記更新回数情報を監視し、前記更新回数情報が一定の閾値を超えた場合、該最少ブロック単位を不良ブロックとして前記保護コードを更新することを特徴とするストレージシステム。
【請求項9】
請求項6に記載のストレージシステムであって、
前記不揮発メモリ部は、前記複数の不揮発メモリデバイスのそれぞれに対応するインジケータを有し、前記複数の不揮発メモリデバイスのうちの一の不揮発メモリデバイスに障害が生じた場合、該一の不揮発メモリデバイスの前記インジケータに表示し、該一の不揮発メモリデバイスは物理的に交換可能であることを特徴とするストレージシステム。
【請求項10】
請求項9に記載のストレージシステムであって、
前記一の不揮発メモリデバイスを交換する場合、前記不揮発メモリ部は、前記一の不揮発メモリデバイス内の復元対象のデータの最小ブロック単位が、前記複数の不揮発メモリデバイスのうちの他の不揮発メモリデバイスにスペアとして作成されているとき、該スペアの最小ブロック単位を交替ブロック単位とし、前記他の不揮発メモリデバイスにスペアとして作成されていないとき、前記複数の不揮発メモリデバイスのうちのいずれかのメモリデバイス内のデータおよびパリティデータを用いて、前記復元対象のデータの最小ブロック単位を作成して交替ブロック単位とし、前記交替ブロック単位を用いて前記復元対象のデータを復元することを特徴とするストレージシステム。
【請求項11】
請求項1に記載のストレージシステムであって、
前記不揮発メモリ部は、該不揮発メモリ部内に格納されたデータの論理アドレスと物理アドレスとを対応付ける変換テーブルを有し、前記計算機から前記データに対する入出力要求がある場合、該テーブルを用いて、前記入出力要求に含まれる前記データの論理アドレスを物理アドレスに変換することを特徴とするストレージシステム。
【請求項12】
請求項6に記載のストレージシステムであって、
前記不揮発メモリ部は、前記複数の不揮発メモリデバイスの分割されたデータの最小ブロック単位ごとに、リードプロテクト、ライトプロテクトを実行することを特徴とするストレージシステム。
【請求項13】
請求項11に記載のストレージシステムであって、
前記不揮発メモリ部は、データバッファを有し、任意の契機に、前記複数の不揮発メモリデバイスのうちのある不揮発メモリデバイス内のある論理アドレスからデータを読み出して該データバッファに格納し、該データバッファに格納した前記データを前記論理アドレスに書き込み、前記データに対してリードプロテクトまたはライトプロテクトを実行した場合、前記論理アドレスに書き込んだ前記データと、前記複数の不揮発メモリデバイスのうちの他の不揮発メモリデバイス内のデータをパリティ演算して作成したデータとを比較して、不良ブロックを判定することを特徴とするストレージシステム。
【請求項14】
計算機に接続されるホストインタフェース部と、
前記ホストインタフェース部に接続されるメモリパスと、
前記メモリパスに接続され、前記計算機から送受信されるデータを一時的に格納するキャッシュメモリ部と、
前記メモリパスに接続され、前記計算機から送受信されるデータの入出力を制御するディスクインタフェース部と、
前記ディスクインタフェース部に接続され、前記計算機から送受信されるデータを格納する複数のディスク装置と、
前記メモリパスに接続され、当該ストレージシステム内で送受信される制御情報を格納する不揮発メモリ部とを有することを特徴とするストレージシステム。
【請求項15】
請求項14に記載のストレージシステムであって、
前記不揮発メモリ部は、前記計算機からの前記ディスク装置に対するアクセスログ情報、障害ログ情報を格納することを特徴とするストレージシステム。
【請求項16】
請求項14に記載のストレージシステムであって、
前記不揮発メモリ部は、前記ホストインタフェース部と、前記ディスクインタフェース部とに搭載されているマイクロプロセッサの実行するプログラムを格納することを特徴とするストレージシステム。
【請求項17】
請求項14に記載のストレージシステムであって、
前記不揮発メモリ部は、インタフェースアダプタ部と、データを格納する不揮発メモリデバイスと、前記不揮発メモリデバイスに対するデータの書込み又は読み出しを制御するコントローラ部とを有し、
前記インタフェースアダプタ部は、前記メモリパスとの間で用いられるプロトコルを解析し、前記メモリパスを介して送受信される制御信号およびデータを解析し、該解析した制御信号およびデータを前記コントローラ部に送信することを特徴とするストレージシステム。
【請求項18】
請求項14に記載のストレージシステムであって、
前記不揮発メモリ部は、複数の不揮発メモリデバイスと、
前記複数の不揮発メモリデバイスに格納されるデータと、前記複数の不揮発メモリデバイスのうちのいずれかの不揮発メモリデバイスに格納されるパリティデータとを用いてデータ演算するコントローラとを有することを特徴とするストレージシステム。
【請求項19】
請求項14に記載のストレージシステムであって、
前記複数の不揮発メモリデバイスは、前記不揮発メモリ部内に並列に実装され、それぞれ、最小ブロック単位ごとに、データと、該データの論理管理IDと、該最小ブロック単位の良、不良を判定するための保護コードとを含むことを特徴とするストレージシステム。
【請求項20】
請求項19に記載のストレージシステムであって、
前記最小ブロック単位は、更新時にインクリメントされる更新回数情報を含み、
前記不揮発メモリ部は、前記更新回数情報を監視し、前記更新回数情報が一定の閾値を超えた場合、該最少ブロック単位を不良ブロックとして前記保護コードを更新することを特徴とするストレージシステム。
【請求項21】
請求項14に記載のストレージシステムであって、
前記不揮発メモリ部は、前記複数の不揮発メモリデバイスのそれぞれに対応するインジケータを有し、前記複数の不揮発メモリデバイスのうちの一の不揮発メモリデバイスに障害が生じた場合、該一の不揮発メモリデバイスの前記インジケータに表示し、該一の不揮発メモリデバイスは物理的に交換可能であることを特徴とするストレージシステム。
【請求項22】
請求項21に記載のストレージシステムであって、
前記一の不揮発メモリデバイスを交換する場合、前記不揮発メモリ部は、前記一の不揮発メモリデバイス内の復元対象のデータの最小ブロック単位が、前記複数の不揮発メモリデバイスのうちの他の不揮発メモリデバイスにスペアとして作成されているとき、該スペアの最小ブロック単位を交替ブロック単位とし、前記他の不揮発メモリデバイスにスペアとして作成されていないとき、前記複数の不揮発メモリデバイスのうちのいずれかのメモリデバイス内のデータおよびパリティデータを用いて、前記復元対象のデータの最小ブロック単位を作成して交替ブロック単位とし、前記交替ブロック単位を用いて前記復元対象のデータを復元することを特徴とするストレージシステム。
【請求項23】
請求項14に記載のストレージシステムであって、
前記不揮発メモリ部は、該不揮発メモリ部内に格納されたデータの論理アドレスと物理アドレスとを対応付ける変換テーブルを有し、前記計算機から前記データに対する入出力要求がある場合、該テーブルを用いて、前記入出力要求に含まれる前記データの論理アドレスを物理アドレスに変換することを特徴とするストレージシステム。
【請求項24】
請求項17に記載のストレージシステムであって、
前記不揮発メモリ部は、前記複数の不揮発メモリデバイスの分割されたデータの最小ブロック単位ごとに、リードプロテクト、ライトプロテクトを実行することを特徴とするストレージシステム。
【請求項25】
請求項10に記載のストレージシステムであって、
前記不揮発メモリ部は、データバッファを有し、任意の契機に、前記複数の不揮発メモリデバイスのうちのある不揮発メモリデバイス内のある論理アドレスからデータを読み出して該データバッファに格納し、該データバッファに格納した前記データを前記論理アドレスに書き込み、前記データに対してリードプロテクトまたはライトプロテクトを実行した場合、前記論理アドレスに書き込んだ前記データと、前記複数の不揮発メモリデバイスのうちの他の不揮発メモリデバイス内のデータをパリティ演算して作成したデータとを比較して、不良ブロックを判定することを特徴とするストレージシステム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate


【公開番号】特開2007−58873(P2007−58873A)
【公開日】平成19年3月8日(2007.3.8)
【国際特許分類】
【出願番号】特願2006−276320(P2006−276320)
【出願日】平成18年10月10日(2006.10.10)
【分割の表示】特願2002−178537(P2002−178537)の分割
【原出願日】平成14年6月19日(2002.6.19)
【出願人】(000005108)株式会社日立製作所 (27,607)
【Fターム(参考)】