JP2007052805A - メモリシステムおよびその使用方法 - Google Patents

メモリシステムおよびその使用方法 Download PDF

Info

Publication number
JP2007052805A
JP2007052805A JP2006277155A JP2006277155A JP2007052805A JP 2007052805 A JP2007052805 A JP 2007052805A JP 2006277155 A JP2006277155 A JP 2006277155A JP 2006277155 A JP2006277155 A JP 2006277155A JP 2007052805 A JP2007052805 A JP 2007052805A
Authority
JP
Japan
Prior art keywords
memory
data
segment
segments
parity
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2006277155A
Other languages
English (en)
Other versions
JP4643539B2 (ja
Inventor
John K Walton
ケイ.ウォルトン ジョン
Michael Bermingham
バーミンガム マイケル
Christopher S Maclellan
エス.マクレラン クリストファー
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
EMC Corp
Original Assignee
EMC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=25454074&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=JP2007052805(A) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by EMC Corp filed Critical EMC Corp
Publication of JP2007052805A publication Critical patent/JP2007052805A/ja
Application granted granted Critical
Publication of JP4643539B2 publication Critical patent/JP4643539B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • G06F11/108Parity data distribution in semiconductor storages, e.g. in SSD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2211/00Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
    • G06F2211/10Indexing scheme relating to G06F11/10
    • G06F2211/1002Indexing scheme relating to G06F11/1076
    • G06F2211/1009Cache, i.e. caches used in RAID system with parity

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

【課題】 障害許容技術を採用するメモリシステムにおいて、利用可能なメモリリソースを増大させる。
【解決手段】 メモリシステムの一実施形態は、複数のメモリセグメントを含むべく構成された半導体メモリを含む。各メモリセグメントは各グループへとグループ化される。各グループは、Nを整数としてN個のメモリセグメントを含む。メモリセグメントの各グループにおいて、N個のメモリセグメントは各データセグメントおよび1個のパリティセグメントから成る。またメモリセグメントの各グループにおいて、そのグループにおけるパリティセグメントは、そのグループにおける各データセグメントに記憶されたデータ値の排他論理和により計算され得るデータ値Pを記憶する。
【選択図】 図5

Description

本発明は、パリティに基づく障害許容技術を採用するメモリシステム(およびその使用方法)に関する。
ネットワークコンピュータシステムは一般的に、1つ以上のネットワーク通信媒体を介して相互に通信すべく構成された複数のコンピュータノードであって該ネットワーク通信媒体により相互接続されるべく地理的に分離もしくは分散された複数のコンピュータノードを含む。従来の形式のネットワークコンピュータシステムとしては、データを記憶して読出すためにネットワークに集中記憶場所を提供すべく構成されたネットワーク記憶サブシステムが挙げられる。好適にはネットワークにおいて斯かる記憶サブシステムを用いることで、ネットワークのデータ記憶管理および制御機能は各ネットワークノード間に分散される代わりに上記サブシステムに集中される。
本出願の譲受人(以下、“譲受人”)により製造されると共にSymmeterix(登録商標)の商品名により販売されている従来の一形式のネットワーク記憶サブシステム(以下、“譲受人の従来記憶システム”)は、1つ以上のリダンダント・アレイ・オブ・インディペンデント(またはインエクスペンシブ)・ディスク(RAID)として構成された複数の大容量ディスク記憶デバイスを備える。これらのディスクデバイスは、上記サブシステムにおける共有キャッシュメモリリソースにユーザデータを記憶して読出す(一般的に“バックエンド”コントローラ/ディレクタと称される)ディスクコントローラにより制御される。上記共有キャッシュメモリリソースに対しては、(一般的に“フロントエンド”コントローラ/ディレクタと称される)複数のホストコントローラからもユーザデータの記憶および読出しが行われる。上記ディスクコントローラは、特に該ディスクコントローラをディスクデバイスにインタフェースする夫々のディスクアダプタに連結される。同様に、上記ホストコントローラは夫々のホストチャネルアダプタに連結されるが、該ホストチャネルアダプタは特にチャネル入出力(I/O)ポートを介して上記ホストコントローラを(たとえば、SCSI、エンタープライズシステムコネクション(ESCON)および/またはファイバチャネル(FC)式の通信チャネルなどの)ネットワーク通信チャネルへとインタフェースし、このネットワーク通信チャネルは上記記憶サブシステムを、上記コンピュータネットワークにおいて該サブシステムの外部となる(一般的には“ホスト”コンピュータノードもしくは“ホスト”と称される)コンピュータノードに接続する。
譲受人の従来記憶システムにおいて共有キャッシュメモリリソースは、記憶システムにおける電気的バックプレーンに接続され得る複数のメモリ回路基板から成り得る。上記キャッシュメモリリソースは、これもまた譲受人の従来記憶システムに含まれるディスク記憶デバイスから区別される半導体メモリである。上記キャッシュメモリリソースを構成するメモリボードの各々には特に、ユーザデータを記憶する比較的に高速の同期ダイナミックランダムアクセスメモリ(SDRAM)集積回路(IC)デバイスが載置される。上記共有キャッシュメモリリソースは、複数のキャッシュメモリ領域へとセグメント化され得る。而して各領域は、複数のメモリセグメントへとセグメント化され得る。
キャッシュメモリリソースの障害許容性を強化するために、従来の“二重書込式”障害許容方式を実施すべくキャッシュメモリリソースを構成することが提案されている。この方式によるとキャッシュメモリリソースは2つの部分すなわち第1部分および第2部分へと区分され、ユーザデータ空間全体が均等に該2つの部分へと分割され、(たとえばホス
トコントローラもしくはディスクコントローラにより)キャッシュメモリリソースにユーザデータが書き込まれる毎に、そのデータの1つのコピーはキャッシュメモリの第1部分の一部へと書き込まれ、且つ、そのユーザデータの複製(すなわち冗長)コピーはキャッシュメモリの第2部分の対応部分に書き込まれる。故にこの方式によると、キャッシュメモリの第1部分に記憶されたデータはキャッシュメモリの第2部分に記憶されたデータを厳密に鏡映する。キャッシュメモリリソースの部分における故障が無い場合、リソースからユーザデータを読み取る全ての要求は、キャッシュメモリの第1部分からのデータを戻し得る。しかしキャッシュメモリの第1部分の一部が故障し且つこの故障部分に記憶されていたユーザデータの読み取りが望まれたとき、そのユーザデータはキャッシュメモリの第2部分における上記故障部分に対応する部分から代替的に読み取られ得る。
提案されたこの障害許容技術において、ユーザデータを記憶する上で実際に利用可能なのはキャッシュメモリリソースにおけるユーザデータ空間全体の多くとも半分のみである、と言うのも、キャッシュメモリリソースの第2部分はキャッシュメモリリソースの第1部分に記憶されたユーザデータの冗長コピーを記憶するためにのみ確保されるからである。このために、ユーザデータを記憶すべく実際に利用可能なキャッシュメモリリソースの量は不適当に減少される。故に、ユーザデータを記憶すべく先行技術の二重書込技術において可能であるよりも多くのキャッシュメモリリソースを実際に利用可能とし得るキャッシュメモリ障害許容技術を提供することが所望される。
上記問題点を解決するために、請求項1に記載の発明は、複数のメモリボードを備えたメモリシステムであって、前記メモリボードの各々は、夫々のデータ値を記憶し得る複数のメモリセグメントを有し、該セグメントは、そのパリティセットの各々がN個のセグメントを含むように各パリティセットへとグループ化され、前記Nは整数であり、各パリティセットにおけるそれぞれのN個のセグメントは、1個のパリティセグメントおよび(N−1)個のデータセグメントから成り、各パリティセットにおける前記N個のセグメントは、前記各メモリボードのいずれもが各パリティセットからの1つ以上のセグメントを有さない様に、前記各メモリボード間に分散され、且つ、少なくとも一個のパリティセットにおける1個のパリティセグメントに記憶されたデータ値は、該少なくとも一個のパリティセットにおける各データセグメントに記憶された各データ値の排他論理和により計算され得、各メモリボードは複数のメモリ領域と、それらのメモリ領域に対応して、各メモリ領域に対するデータの記憶および読み出しをそれぞれ個別に制御する複数のメモリ領域コントローラとを含み、各メモリ領域は、夫々のメモリボードに含まれるセグメントの部分集合を含み、且つ、夫々のメモリ領域に含まれるセグメントの各々には、夫々のメモリ領域に含まれる他のセグメントに割当てられ得る他の基本メモリアドレスとは異なる、基本メモリアドレスが割当てられ得ることを要旨とする。
請求項2に記載の発明は、請求項1に記載のメモリシステムにおいて、前記個数Nが4に等しいことを要旨とする。
請求項3に記載の発明は、請求項1に記載のメモリシステムにおいて、個数Nは4に等しく、前記少なくとも一個のパリティセットにおける1つのデータセグメントに初めに記憶されるデータ値は可変値Aに等しく、且つ、前記少なくとも一個のパリティセットにおける1個のパリティセグメントに初めに記憶されるデータ値は可変値Pに等しく、当該メモリシステムは前記少なくとも一個のパリティセットにおける各セグメントに記憶された夫々のデータ値を変更すべく使用され得る回路構成を含み、且つ、前記回路構成が1つの前記データ値を前記可変値Aから別の可変値A’へと変更すべく使用されるとき、該回路構成は前記少なくとも一個のパリティセットにおける前記1個のパリティセグメントに記
憶されたデータ値もまた可変値Pから別の可変値P’へと変更し、この値P’はPXORAXORA’に等しく、前記式中、“XOR”は排他論理和関数を表すことを要旨とする。
請求項4に記載の発明は、請求項4に記載のメモリシステムにおいて、前記回路構成は、前記少なくとも一個のパリティセットにおける1つの前記データ値および前記1個のパリティセグメントに記憶されたデータ値を夫々の不可分な操作において変更するように構成されることを要旨とする。
請求項5に記載の発明は、請求項1に記載のメモリシステムにおいて、前記各メモリボードは半導体メモリを備え、且つ、各複数のメモリセグメントは前記半導体メモリに含まれることを要旨とする。
請求項6に記載の発明は、データ値を記憶し得る複数のメモリセグメントを各々が有する複数のメモリボードを含むメモリシステムの使用方法であって、当該パリティセットの各々は整数であるN個のセグメントを含むように前記各セグメントを各パリティセットへとグループ化する工程と、各パリティセットにおけるN個のセグメントは1個のパリティセグメントと(N−1)個のデータセグメントとから成ることと、各パリティセットにおける前記N個のセグメントを、前記各メモリボードのいずれもが各パリティセットからの1つより多くのセグメントを有さない様に、前記各メモリボード間に分散する工程と、少なくとも一個のパリティセットにおける1個のパリティセグメントに対して、該少なくとも一個のパリティセットにおける各データセグメントに記憶されたデータ値の排他論理和を取ることで計算され得るデータ値を記憶する工程と、各メモリボードを夫々複数のメモリ領域を含むようにさらに編成する工程とを備え、各メモリボードは、各メモリ領域に対応して、各メモリ領域に対するデータの記憶および読み出しをそれぞれ個別に制御する複数のメモリ領域コントローラを有し、各メモリ領域は、夫々のメモリボードに含まれるセグメントの部分集合を含み、夫々のメモリ領域に含まれるセグメントの各々には、夫々のメモリ領域に含まれる他のセグメントに割当てられ得る他の基本メモリアドレスとは異なる、基本メモリアドレスが割当てられ得ることを要旨とする。
請求項7に記載の発明は、請求項1に記載のメモリシステムにおいて、各メモリボードの各メモリセグメントのデータは、複数個のデータワードにさらにセグメント化され、それらのデータワードは複数のストライプユニットにグループ化され、各ストライプユニットは所定の複数のデータワードを含み、前記ストライプユニットは、各メモリボードの夫々のメモリ領域にわたってストライピングされていることを要旨とする。
請求項8に記載の発明は、請求項7に記載のメモリシステムにおいて、各ストライプユニットにおけるデータワードの数は64である、ことを要旨とする。
請求項9に記載の発明は、請求項6に記載のメモリシステムにおいて、各メモリボードの各メモリセグメントのデータは、複数個のデータワードにさらにセグメント化され、それらのデータワードは複数のストライプユニットにグループ化され、各ストライプユニットは所定の複数のデータワードを含み、前記ストライプユニットは、各メモリボードの夫々のメモリ領域にわたってストライピングされていることを要旨とする。
請求項10に記載の発明は、請求項9に記載のメモリシステムにおいて、各ストライプユニットにおけるデータワードの数は64であることを要旨とする。
本発明は、先行技術の上述のおよび他の不都合および不利益を克服し得るメモリシステムおよびその使用方法を提供する。本発明の一実施形態においては、ネットワークデータ記憶システムにおいて好適に使用され得るキャッシュメモリシステムが提供される。該実施形態のキャッシュメモリシステムは、複数のメモリボードを含み得る。これらのボード
の各々は、電気的プリント回路基板またはカードであるか、またはそれらを含む。各メモリボードは、協働してユーザデータ空間を構成するとともに、夫々のデータ値を記憶し得る複数の半導体メモリセグメントを有し得る。各セグメントは複数のパリティセットもしくはグループへとグループ化され得る。各パリティセットまたはグループは、Nを任意の整数として、N個のメモリセグメントを含み得る。メモリシステムの構成に応じて、個数Nは4に等しくてもよい。
各パリティセットにおけるN個のメモリセグメントは、1個のパリティセグメントおよび(N−1)個のユーザデータセグメントから成り得る。各パリティセットにおけるN個のセグメントは、上記各メモリボードのいずれもが各パリティセットもしくはグループのうちから、1つより多くのメモリセグメントを有さない様に上記各メモリボード間に分散され得る。すなわち各メモリボードは、任意の所与のパリティセットもしくはグループからの、多くても単一個のセグメントを有し得る。少なくとも一個のパリティセットもしくはグループ(以下では“少なくとも一個のパリティセット”)は、該少なくとも一個のパリティセットの各データセグメントに記憶された各データ値のXOR(すなわち、ビット毎の排他論理和)を実施することで計算され得るデータ値Pを記憶する1個のパリティセグメントを含み得る。たとえば上記個数Nが4に等しく、且つ、少なくとも一個のパリティセットにおける各データセグメントに記憶されたデータ値がA、BおよびCに夫々等しいとすると、データ値PはA XOR B XOR Cに等しくなり得る。これに代わって、各パリティセットもしくはグループは、そのパリティセットもしくはグループの各データセグメントに記憶されたデータ値のXORにより計算され得るパリティセグメントを含んでもよい。
上記キャッシュメモリシステムは、少なくとも一個のパリティセットまたはグループにおける各セグメントに記憶されたデータ値を変更すべく使用され得る制御回路構成を含み得る。上記少なくとも一個のパリティセットまたはグループにおける1つのデータセグメントに初めに記憶され得るデータ値はデータ値Aに等しく、かつそのパリティセットもしくはグループにおける1個のパリティセグメントに初めに記憶され得るデータ値はデータ値Pに等しくされ得る。上記制御回路構成が上記1つの値を値Aから別のデータ値A’へと変更すべく使用されるとき、該回路構成はまた上記少なくとも一個のパリティセットにおけるパリティセグメントに記憶されたデータ値を値Pから別の値P’へと変更し得る。この値P’は、P XOR A XOR A’に等しくなり得る。上記制御回路構成は、上記少なくとも一個のパリティセットにおける1個のパリティセグメントおよび1つのデータセグメントに夫々記憶されたデータ値に対し、これらの変更を不可分な操作(atomic operation)を用いて行うように構成され得る。
各メモリボードは、複数のメモリ領域を含み得る。各メモリ領域は、そのメモリ領域を構成するメモリボードまたはカードに含まれるメモリセグメントの部分集合を含み得る。夫々のメモリ領域に含まれる各メモリセグメントには、そのメモリ領域に含まれる他のセグメントに割当てられ得る他の基本メモリアドレスとは異なる基本メモリアドレスが割当てられ得る。
本発明の該実施形態において、パリティセットにおける1つのデータセグメントが故障した場合には、この故障データセグメントに記憶されていたデータ値は、この故障データセグメントが属するパリティセットにおける正常なデータセグメントおよびパリティセグメントに記憶されている各データ値を用いて再構築され得る。たとえば、所与のパリティセットが合計で3個のデータセグメントおよび1個のパリティセグメントを含み、故障データセグメントがデータ値Aを記憶しており、且つ、2個の正常なデータセグメントおよび1個のパリティセグメントが夫々値B、CおよびPを記憶している場合には、故障データセグメントに記憶されていた上記データ値Aは、本発明の該実施形態に従ってP=A
XOR B XOR Cと仮定するならば、以下の関係に基づき再構築され得る。
A=P XOR C XOR B
上述の従来の二重書込技術を利用するメモリシステムと対照的に、本発明の改良された障害許容メモリシステムにおいては好適に、ユーザデータを記憶すべくユーザデータ空間全体の50%以上もが利用可能とされ得る。たとえば本発明の上記実施形態に従い実施されて改良された障害許容キャッシュメモリシステムにおいてユーザデータを記憶すべく実際に利用可能とされ得る全体的キャッシュメモリの最大百分率は、Nの値を設定することで選択され得ると共に、Nに対して選択された値に依存して、50%よりも相当に大きくなり得る。たとえばNが4に等しければ、斯かる最大百分率は75%に等しくなり得る。
本発明のこれらのおよび他の特徴および利点ならびに本発明の種々の実施形態は、同一番号が同様の部材を示す添付図面に基づく以下の詳細な説明を参照すれば明らかとなろう。
本発明によれば、障害許容技術を採用するメモリシステムにおいて、利用可能なメモリリソースを増大させることが可能となる。
以下における詳細な説明は本発明の好適実施形態および使用方法に関して行われるが、本発明がこれらの好適実施形態および使用方法への限定を意図しないことを理解すべきである。反対に当業者であれば、これらの好適実施形態および使用方法の多くの代替例、改変例および均等物は明らかであろう。たとえば本発明はネットワークデータ記憶サブシステムにおけるキャッシュメモリシステムに関して好適に用いられるものとして説明されるが、本発明は他の形式のメモリシステムに関しても使用され得る。故に本発明は、当業者に対して明らかな斯かる代替例、改変例および均等物の全てを広範囲に包含すると解釈すべきであり、添付の請求の範囲に示された様にのみ定義されると解釈すべきである。
次に図1乃至図5を参照し、本発明の好適実施形態を記述する。図1は、本発明の一実施形態が好適に実施され得るデータ記憶システム112を含むデータ記憶ネットワーク110を示す高レベルブロック図である。該システム112は通信リンク114,116,118,120,・・・122を介して夫々のホストコンピュータノード124,126,128,130,・・・132と接続される。通信リンク114,116,118,120,・・・122の各々は、夫々の従来のネットワーク通信プロトコル(たとえばFC、ESCON、SCSI、ファイバコネクティビティなど)を伴う通信を行うべく構成され得る。ホストノード124,126,128,130,・・・132はまた、夫々の付加的な従来のネットワーク通信リンク134,136,138,140,・・・142を介して外部ネットワーク144にも接続される。ネットワーク144は、トランスミッション制御プロトコル/インターネットプロトコル(TCP/IP)・ベースおよびイーサネット・ベースの少なくともいずれかの一個以上のローカルエリアネットワークおよび/またはワイドエリアネットワークから成り得る。ネットワーク144はまた、(図1において番号145で集合的に示された)ネットワーク通信リンクを介して(図1で番号146で集合的にもしくは単一的に示された)一個以上のクライアントコンピュータノードにも接続される。これらのリンク134,136,138,140,・・・142および145により利用される単一もしくは複数のネットワーク通信プロトコルは、ノード124,126,128,130,・・・132がネットワーク144を介してノード146とデータおよびコマンドを確実に交換し得るべく選択される。
ホストノード124,126,128,130,・・・132は、サーバコンピュータ
、ワークステーションもしくはメインフレームなどの幾つかの公知形式のコンピュータノードのうちの任意の1つであり得る。概略的にホストノード124,126,128,130,・・・132およびクライアントノード146の各々は、ソフトウェアプログラムおよび関連するデータ構造を記憶するとともに、これらのノード124,126,128,130,・・・132および146により実施されると本明細書中に記載された機能および動作を実施するための各コンピュータ可読メモリ(図示せず)を備える。これに加えてノード124,126,128,130,・・・132および146の各々は更に、これらのソフトウェアプログラムを実行するとともに、これらのデータ構造を操作し、且つ、通信リンク134,136,138,140,・・・142、ネットワーク144およびリンク145を介してホストノード124,126,128,130,・・・132およびクライアントノード146間でのデータおよびコマンドの交換を許容かつ促進するための夫々の一個以上のプロセッサ(図示せず)およびネットワーク通信デバイスを含む。ホストノード124,126,128,130,・・・132に含まれる上記プロセッサおよびネットワーク通信デバイスによりソフトウェアプログラムを実行することで、以下に記載される様式で通信リンク114,116,118,120,・・・122を介してノード124,126,128,130,・・・132およびシステム112間でのデータおよびコマンドの交換も許容かつ促進される。
図2は、システム112の機能要素の概略的な高レベルブロック図である。システム112は、複数のホストアダプタ26・・・28、複数のホストコントローラ22・・・24、メッセージネットワークもしくはシステム14、共有キャッシュメモリリソース16、複数のディスクコントローラ18・・・20、複数のディスクアダプタ30・・・32、および、一群のディスク記憶デバイス34・・・36を含む。システム112、各ホストコントローラおよび各ディスクコントローラは共有キャッシュメモリリソース16に含まれた個々のメモリボード(図3および図4参照)に対し、複数のネットワークリンクを備えたポイント・ツー・ポイント・データ転送ネットワークシステムを介して接続される。たとえばホストコントローラ22および24は、上記ポイント・ツー・ポイント・データ転送ネットワークシステムに含まれる夫々の複数のポイント・ツー・ポイント・データ転送ネットワークリンク42,40を介してキャッシュメモリリソース16に接続される。同様にディスクコントローラ18および20は、上記ポイント・ツー・ポイント・データ転送ネットワークシステムに含まれる夫々の複数のポイント・ツー・ポイント・データ転送ネットワークリンク44および46を介してキャッシュメモリリソース16に接続される。
システム112の該実施形態において各図中に明確には示されないが、夫々のリンク114,116,118,120,・・・122において用いられる特定の通信プロトコルに依って、各ホストアダプタ26・・・28は夫々の複数のホストノードに接続され得る。たとえばシステム112の該実施形態において、もしリンク114、116、118、120がFC通信リンクであれば、アダプタ26はリンク114、116、118、120を介して夫々のノード124、126、128、130に接続され得る。各ホストアダプタ26・・・28が接続され得るホストノードの個数は、本発明の該実施形態から逸脱することなくホストアダプタ26・・・28およびホストコントローラ22・・・24の特定構成に応じて変更され得ることが理解されるべきである。ネットワーク110においてホストアダプタ26は、ホストコントローラ24がリンク114、116、118、120を介してノード124、126、128、130と夫々データおよびコマンドを交換し得るネットワーク通信インタフェースを提供する。
ホストコントローラ22・・・24は、夫々の単一の回路基板もしくはパネルを備え得る。同様にディスクコントローラ18・・・20もまた、夫々の単一の回路基板もしくはパネルを備え得る。各ディスクアダプタ30・・・32は夫々の単一の回路基板もしくは
パネルを備え得る。同様に、各ホストアダプタ26・・・28は夫々の単一の回路基板もしくはパネルを備え得る。ホストコントローラ22・・・24は、夫々の対合する電気機械的接続システムを介して夫々のホストアダプタ28・・・26に電気的かつ機械的に接続され得る。
ディスクアダプタ32は一連の大容量記憶デバイス34に電気的に接続されると共に、ディスクコントローラ20をこれらのデバイス34にインタフェースすることで、ディスクコントローラ20および記憶デバイス34の夫々におけるプロセッサ(図示せず)間のデータおよびコマンドの交換を可能にする。ディスクアダプタ30は一連の大容量記憶デバイス36に電気的に接続されると共に、ディスクコントローラ18をこれらのデバイス36にインタフェースすることで、ディスクコントローラ18および記憶デバイス36の夫々におけるプロセッサ(図示せず)間のデータおよびコマンドの交換を可能にする。デバイス34・・・36は、磁気的且つ/又は光学的な大容量ディスク記憶デバイスの冗長アレイとして構成され得る。
尚、図2に示されたシステム112の各機能要素の夫々の個数は単に例示目的であり、システム112の載置が企図された特定用途に応じて、本発明から逸脱することなく変更され得ることを理解すべきである。但し、システム112の特定構成要素が故障した場合に、システム112がフェイルオーバー障害許容を行い得るのが望ましい。故にシステム112の実際の実施においては、任意の所定の機能要素の故障が検出されると共に故障した機能要素の作用は故障構成要素と同一形式の冗長的な機能要素により肩代わりされるのを確実にするための、該システム112は冗長的な機能要素および従来の機構を含むのが望ましい。
次に、システム112に対してデータを読出しかつ記憶する一般的な方法を記載する。広範囲に述べると、ネットワーク110の作動時にクライアントノード146はデータを読出す要求を所定ホストノード(たとえばノード124)に対して、該クライアントノード146に関連するリンク145の1つと、ネットワーク144と、ホストコンピュータノード124に関連するリンク134とを介して送信し得る。要求されたデータがホストノード124にローカル的に記憶されていない代わりにデータ記憶システム112に記憶されている場合には、ホストノード124は該ノード124に関連するFCリンク114を介してシステム112からそのデータを送信することを要求し得る。
リンク114を介して送信された要求は初めに、そのリンク114に接続されたホストアダプタ26により受信される。リンク114に関連するホストアダプタ26は次に、その要求を該ホストアダプタが接続されたホストコントローラ24へと送信し得る。自身に送信された要求に応じてホストコントローラ24は次に、キャッシュ16に記憶されたデータ記憶管理テーブル(図示せず)から、要求されつつあるデータが現在においてキャッシュ16内に在ることを確認し得る。要求データが現在においてキャッシュ16内に無い場合には、ホストコントローラ24はメッセージをメッセージネットワーク14を介して、要求データが記憶されている記憶デバイス36に関連するディスクコントローラ(たとえばコントローラ18)へと送信して、ディスクコントローラ18が要求データをキャッシュ16内に読出すことを要求し得る。
ホストコントローラ24から送信されたメッセージに応じて、ディスクコントローラ18は、一個以上の記憶デバイス36に要求データを読出させるために、自身が接続されたディスクアダプタ30を介して適切なコマンドを送信し得る。斯かるコマンドに応じて記憶デバイス36はディスクアダプタ30を介して要求データをディスクコントローラ18に送信し得るものであり、且つ、ディスクコントローラ18はキャッシュ16に記憶すべく上記要求データを一個以上のリンク44を介して転送し得る。ディスクコントローラ1
8は次に、要求データがキャッシュ16に記憶されたことをホストコントローラ24に通知するメッセージをネットワーク14を介して送信し得る。
ネットワーク14を介してディスクコントローラ18から送信されたメッセージに応じてホストコントローラ24は、一個以上のリンク40を介してキャッシュ16から要求データを読出し得ると共に、該データをアダプタ26およびリンク114を介してホストノード124へと転送し得る。次にホストノード124は上記要求データを要求したクライアントノード146に対して該データを、リンク134と、ネットワーク144と、該クライアントノード146に関連するリンク145とを介して送信し得る。
加えてクライアントノード146は所定ホストノード(たとえばノード124)に対してデータを記憶させる要求を、該クライアントノード146に関連する1つのリンク145と、ネットワーク144と、ホストノード124に関連するリンク134とを介して送信し得る。ホストノード124はそのデータをローカル的に記憶してもよいし、これに代わって、該ノード124に関連するリンク114を介してシステム112にそのデータを記憶することを要求してもよい。
リンク114を介して送信されたデータ記憶要求は先ず、該リンク114に接続されたホストアダプタ26により受信される。リンク114に関連するホストアダプタ26は次に、自身が接続されたホストコントローラ24に対して上記データ記憶要求を送信し得る。自身に送信されたデータ記憶要求に応じてホストコントローラ24は次に、キャッシュ16に記憶するとの要求に関連するデータを、一個以上のリンク40を介して転送する。その後、各ディスクコントローラのうちの1つ(たとえばコントローラ18)はアダプタ30を介してデバイス36に対し適切なコマンドを発行することにより、キャッシュ16に記憶されたデータを一個以上のデバイス36内に記憶させ得る。
システム112の特徴および作用に関する詳細は、たとえば2000年12月21日に出願された、“多段ルーティングによるクロスバースイッチを有するデータ記憶システム(Data Storage System Having Crossbar Switch With Multi−Staged Routing)”と称される、本発明と同様に本出願人が所有する同時係属の米国特許出願第09/745,814号に示されている。該同時係属出願はその全容を本出願中に援用される。
次に図3乃至図5を特に参照し、システム112のキャッシュメモリシステム16において好適に使用され得る本発明の好適実施形態を説明する。メモリシステム16は、システム112における電気的バックプレーン(図示せず)に接続され得る複数の電気回路基板もしくはカード100A,100B,100C,100D,・・・100Nを備える。このバックプレーンに接続されたときにメモリボード100A,100B,100C,100D,・・・100Nは、該バックプレーンにおける電気回路トレース線を介してシステム112の他の構成要素に電気的に接続され得、その結果、本明細書中に記載される様式にて、該メモリボード100A,100B,100C,100D,・・・100Nが相互に、且つシステム112におけるホストコントローラおよびディスクコントローラと通信および相互作用し得る。図3に示されたメモリボードの個数は単に例示的であり、システム112に含まれ得るメモリボードの実際の個数は該システム112の構成に依存して変更され得ることを銘記することは重要である。メモリボード100A,100B,100C,100D,・・・100Nの各々の構造および作用は本質的に同一であることから、不要な説明の重複を回避すべく、本明細書においては1つのメモリボード100Aの構造および作用を説明する。
図4は、メモリボード100Aの適切な機能要素の概略的な高レベルの論理図である。
ボード100Aは、制御・ネットワーク回路構成200および複数のメモリ領域202,204,206,208を備える。メモリ領域202,204,206,208の各々は、夫々のSDRAM ICデバイスの複数のバンクを備える。たとえば領域202は(番号210により集合的に参照された)SDRAM ICデバイスの複数のバンクを備える。領域204はSDRAM ICデバイスの複数のバンク212を備える。領域206はSDRAM ICデバイスの複数のバンク214を備える。さらに、領域208はSDRAM ICデバイスの複数のバンク216を備える。バンク210,212,214,216の各々に含まれる夫々の複数のSDRAM ICデバイスは、メモリシステム16における夫々の所定サイズ(たとえば各々が256メガバイト)の複数のメモリセグメントを備えるべく構成される。本発明のこの実施形態においてメモリセグメントの各々は、同一のメモリ領域内における他のメモリセグメントから独立して異なる基本メモリアドレスを有し得る。より詳細には、メモリバンク210におけるSDRAM ICデバイスはメモリセグメント220A,220B,・・・220Nを備えるように構成される。メモリバンク212におけるSDRAM ICデバイスはメモリセグメント222A,222B,・・・222Nを備えるように構成される。メモリバンク214におけるSDRAM ICデバイスはメモリセグメント224A,224B,・・・224Nを備えるように構成される。また、メモリバンク216におけるSDRAM ICデバイスはメモリセグメント226A,226B,・・・226Nを備えるように構成される。尚、ボード100Aに含まれる夫々のメモリ領域の個数、ならびに、斯かる領域に含まれるメモリセグメントの個数およびサイズは本発明の該実施形態から逸脱することなく変更され得ることに留意すべきである。たとえば本発明の該実施形態において上記メモリ領域は夫々、2個以上かつ64個以下の間で変更され得る整数個のメモリセグメントを備え得る。
また、夫々のメモリセグメントにおいて、その中に記憶されたデータは更に、複数個の64ビットデータワードへとセグメント化され得る。個々のデータワードは各々が64ワードのストライプユニット(stripe unit)へとグループ化されると共に、ストライプユニットは、夫々のメモリボードにおける夫々のメモリ領域に亙りストライピングされ得る。
尚、メモリシステム16に含まれるSDRAM ICデバイスの各々は半導体メモリデバイスであり、且つ、これらのSDRAM ICデバイスは、システム112における上記ホストコントローラおよびディスクコントローラから該メモリシステム16に送信されたユーザデータ、ならびに、本発明の該実施形態に従うパリティ関連データを記憶すべく該メモリシステム16により使用され得ることが理解されるべきである。故にキャッシュメモリシステム16はシステム112に含まれるディスク記憶デバイス34・・・36から区別される半導体メモリシステムであり、且つ、メモリシステム16に含まれる上記メモリ領域およびメモリセグメントは夫々、半導体メモリ領域および半導体メモリセグメントである。
一般に制御・ネットワーク回路構成200は特に、リンク40,42,44,46を介してメモリ領域202,204,206,208とホストコントローラおよびディスクコントローラとの間でデータおよびコマンドを交換するのを促進し得る論理ネットワーク回路構成および制御論理回路構成(図示せず)を備える。より詳細には回路構成200における上記制御論理回路構成は、特にメモリ領域202,204,206,208に対するデータの記憶および読出しを制御し得るメモリ領域コントローラを含み得る。また回路構成200における上記論理ネットワーク回路構成は、クロスバー・スイッチング/関連ポイント・ツー・ポイント・ネットワーク回路構成(以下、“クロスバー・スイッチング回路構成”)およびシリアル/パラレル変換回路構成を含み得る。上記シリアル/パラレル変換回路構成は、リンク40,42,44,46を介して上記ホストコントローラおよびディスクコントローラから受信したシリアル情報ストリーム(たとえば、データ、アドレ
ス情報、コマンド、巡回冗長検査情報、信号通知、セマフォなど)を対応するパラレル情報ストリームへと変換し、且つ、そのパラレル情報ストリームを上記クロスバー・スイッチング回路構成へと送信すべく構成され得る。上記シリアル情報ストリームはまた、特に、キャッシュ16におけるメモリボード、そのメモリボードにおけるデータが記憶され/読み取られるべきメモリ領域、およびそのデータに関連するデータ転送を開始したホストコントローラもしくはディスクコントローラなどを表す“タグ”情報を含み得る。上記シリアル/パラレル変換回路構成はまた、上記クロスバー・スイッチング回路構成から受信したパラレル情報ストリームを対応シリアル情報ストリームへと変換し、適切なホストおよびディスクコントローラに関連するリンク40,42,44,46を介して斯かるコントローラへと送信する様にも構成され得る。
上記クロスバー・スイッチング回路構成は、クロスバースイッチネットワークおよび関連するポイント・ツー・ポイント・ネットワークを含み得る。このポイント・ツー・ポイント・ネットワークは、クロスバースイッチネットワークの夫々のポートをメモリ領域コントローラの夫々のポートに接続し得る複数のポイント間相互接続もしくはリンクを含み得る。上記クロスバースイッチネットワークは、上記シリアル/パラレル変換回路構成からパラレル情報を受信し、且つ、受信した情報を該情報の内容に基づき、ボード100Aにおけるポイント・ツー・ポイント・ネットワークにおける適切なポイント間相互接続を介して適切なメモリ領域コントローラ(たとえば、受信したパラレル情報において特定されたボード100Aにおけるメモリ領域に関連するメモリ領域コントローラ)のポートへと送信するように構成され得る。
各メモリ領域コントローラは、ボード100Aにおけるポイント・ツー・ポイント・ネットワークを介して受信した上記情報に応じて、該メモリ領域コントローラが関連するメモリ領域202,204,206,208の夫々(たとえば領域202)へとコマンドを発行し得る。これらのコマンドにより特に領域202は、メモリバンク210にデータを記憶するか、またはメモリバンク210から記憶データを読出し得る。その様に読出されたデータは上記メモリ領域コントローラにより、ボード100Aにおけるポイント・ツー・ポイント・ネットワークを介して上記クロスバースイッチネットワークへと送信され、其処から上記シリアル/パラレル変換回路構成を通り、リンク40,42,44,46の1つを介して適切なホストコントローラもしくはディスクコントローラへと送信され得る。
尚、各図には示されていないが、ボード100Aを具体化する場合、回路構成200の各部分は領域202,204,206,208内で(たとえば上記領域における実際のSDRAM ICデバイスに対し、チップセレクト、クロック同期、メモリアドレッシング、データ転送、メモリ制御/管理、クロックイネーブル信号などの比較的に低レベルのコマンド/信号を提供する回路構成へと)分散され得るが、本発明の説明の目的のために該回路構成は論理的に回路構成200に含まれるものと見做され得ることに留意されたい。ボード100Aを具体化する上で領域202,204,206,208内に分散され得る回路構成200の形式および機能の更なる詳細および説明は、たとえば2001年2月28日に出願された、“エラー条件処理(Error Condition Handling)”と称される、本発明と同様に本出願人が所有する同時係属の米国特許出願第09/796,259号(代理人整理番号:EMC−01−034)にて示されている。この同時係属出願はその全容を本出願中に援用される。
図5は、本発明の該実施形態の記載を促進すべく用いられる概略的な高レベルブロック図である。図5において、メモリボード100Aにおける領域202,204,206,208の全てに含まれるメモリセグメント400A,400B,400C,・・・400Nの全ては、集合的に符号300で示される。換言するとメモリセグメント400A,4
00B,400C,・・・400Nはメモリボード100A内に在ると記載した全てのメモリセグメント(すなわち、メモリセグメント220A,220B,・・・220N;222A,222B,・・・222N;224A,224B,・・・224N;および、226A,226B,・・・226N)を備える。これらのメモリセグメント400A,400B,400C,・・・400Nは図5において集合的に符号300で示される。図5においては同様に、メモリボード100Bにおける全てのメモリ領域に含まれる全てのメモリセグメント500A,500B,500C,・・・500Nは集合的に符号302で示される。同様に、メモリボード100Cにおける全てのメモリ領域に含まれるメモリセグメント600A,600B,600C,・・・600Nの全ては集合的に符号304で示され、メモリボード100Dにおける全てのメモリ領域に含まれるメモリセグメント700A,700B,700C,・・・700Nの全ては集合的に符号306で示される。
本発明の該実施形態に依れば、上記ホストコントローラ、ディスクコントローラ、ならびに、夫々のメモリボード100A,100B,100C,100D,・・・100Nにおける制御・ネットワーク回路構成が、障害許容/データ保護技術を実施するように構成され得る。前記技術において、メモリボード100A,100B,100C,100D,・・・100Nの各々におけるメモリセグメントの各々は、特に、パリティセットもしくは群の各々は夫々同一整数N個のメモリセグメントを含み得るが、夫々のパリティセットもしくは群における2個のメモリセグメントが同一のメモリボードには含まれない様に、夫々のパリティセットもしくは群における他のメモリセグメントと関連付けられ得る。故に本発明の該実施形態においては、もし各パリティセットにおける夫々のメモリセグメントの個数Nが4に等しく、且つ各パリティセットがセグメント300,302,304,306を用いて形成されるならば、各パリティセットは、メモリボード100Aに含まれるメモリセグメント300から選択された夫々の第1メモリセグメント、メモリボード100Bに含まれるメモリセグメント302から選択された夫々の第2メモリセグメント、メモリボード100Cに含まれるメモリセグメント304から選択された夫々の第3メモリセグメント、および、メモリボード100Dに含まれるメモリセグメント306から選択された夫々の第4メモリセグメントを含み得る。故にこの好適実施形態に依れば、第1パリティセットはメモリセグメント400A,500A,600A,700Aを備え、第2パリティセットはメモリセグメント400B,500B,600B,700Bを備え、第3パリティセットはメモリセグメント400C,500C,600C,700Cを備え、さらに、セグメント300,302,304,306に含まれる他のメモリセグメントはこのパターンに従う任意のパリティセットへと割当てられ得る。
各パリティセットは、夫々の単一個のパリティセグメントと、(N−1)個のデータセグメントとから成り得る。夫々のパリティセットにおけるパリティセグメントおよびデータセグメントは、夫々のパリティセットのパリティセグメントが、それらのパリティセットに含まれるメモリセグメントを有する各メモリボード間で実質的に等しく分散されるように、選択され得る。故に本発明の該実施形態において、セグメント400A,500A,600A,700Aを含むパリティセットにおいては、セグメント400Aがパリティセグメントであり且つセグメント500A,600A,700Aがデータセグメントとされ、セグメント400B,500B,600B,700Bを含むパリティセットにおいてはセグメント500Bがパリティセグメントであり且つセグメント400B,600B,700Bがデータセグメントとされ、セグメント400C,500C,600C,700Cを含むパリティセットにおいてはセグメント600Cがパリティセグメントであり、且つセグメント400C,500C,700Cがデータセグメントとされる。さらに、セグメント300,302,304,306に含まれる他のメモリセグメントはこのパターンに従ってパリティセグメントもしくはデータセグメントとして選択され得る。
夫々のパリティセットにおけるパリティセグメントおよびデータセグメントは、夫々の
データ値を記憶し得る。夫々のパリティセットにおいて、パリティセグメントに記憶され得るデータ値は、そのパリティセットにおけるデータセグメントに記憶された各データ値の論理XORに等しくなり得る。夫々のデータセグメントに記憶され得るデータ値は、システム112におけるホストコントローラおよび/またはディスクコントローラからキャッシュ16が受信したコマンドに応じて、夫々のデータセグメントに書き込まれたユーザデータ値であり得る。故に例示目的で、もしメモリセグメント400A,500A,600A,700Aが夫々データ値P,A,B,Cを記憶するとすると、データ値PはA XOR B XOR Cに等しくなり得る。
メモリボード100A,100B,100C,100D,・・・100Nにおける夫々の制御・ネットワーク回路構成および/またはシステム112の他の構成要素(たとえばホストコントローラおよびディスクコントローラ)は、メモリ16における夫々のパリティセットのマッピングを維持可能であり、このマッピングは夫々のパリティセットに含まれるメモリセグメントの位置および個数を表し得る。斯かる回路構成は、初期化スキームに従って(且つ/又は、受信したホストコントローラもしくはディスクコントローラのコマンドに応じて)、夫々のパリティセットにおけるパリティセグメントにおいて、初期データ値を生成して記憶するように構成され得る。たとえば斯かる初期化スキームにおいて、データ値Aはメモリセグメント500Aから読み取られて、一連の複数データワード転送でボード100Aにおける制御・ネットワーク回路構成200へと送信され得る。回路構成200は値Aをセグメント400Aに一時的に記憶し得る。データ値Bもまたセグメント600Aから読み取られ、一連の複数データワード転送で回路構成200へと送信され得る。回路構成200は(該回路構成200に含まれる図示せずXOR論理回路構成を用いて)、セグメント400Aに一時的に記憶された値Aにおける対応データワードに対して、値Bからの受信データワードをXORし、このXOR演算の結果(すなわちA XOR B)により値Aを置き換え得る。換言すると回路構成200は、データワード毎に演算A XOR Bを実施し、その結果をセグメント400Aに記憶する。次に、セグメント700Aからデータ値Cが読み取られ、一連の複数データワードバーストで制御・ネットワーク回路構成200へと送信され得る。回路構成200は値Cから受信したデータワードを、セグメント400Aに記憶されている対応データワードとXORし、このXOR演算の結果を値Pとしてセグメント400Aに記憶し得る。
その後、(たとえばホストコントローラもしくはディスクコントローラのコマンドに応じて)あるパリティセットにおけるデータセグメントへとデータ値が書き込まれるとき、そのパリティセットにおけるパリティセグメントへもデータ値が書き込まれることで、そのパリティセグメントに記憶されたデータ値は該パリティセットにおける各メモリセグメントに記憶されたデータ値間において上記論理関係を満足することを保証しなければならない。たとえばメモリセグメント700Aが、該メモリセグメント700Aに記憶されているデータ値CがC’へと変更されるように書き込まれるなら、メモリセグメント400Aに記憶されているデータ値Pもまた新たなデータ値(たとえばP’)へと変更されねばならず、この場合にP’はA XOR B XOR C’に等しい。
これを達成すべく、データ値Cに対して変更されたデータ値C’における各データワードに対し、夫々の一連の不可分な操作が実施され得る。各一連の不可分な操作は、メモリ16における夫々のデータ転送サイクルの間に実施され得る第1の不可分な操作および第2の不可分な操作を含む。すなわち、値Cにおける対応データワードとは異なる値C’におけるデータワードの各々に対し、夫々一連の不可分な操作が実施され得る。
たとえば、値C’におけるデータワード(以下、“変更済データワード”と称する)が値Cにおける対応データワードと異なる場合、これらのメモリ演算の内の第1のメモリ演算において、ボード100Dにおける制御・ネットワーク回路構成に含まれるXOR論理
回路構成を使用して、変更済データワードと値Cにおける該変更済データワードの対応データワードとのXORに等しい部分的パリティ値を計算し得ると共に、この部分的パリティ値はボード100Aにおける制御・ネットワーク回路構成へと送信され得る。これらのメモリ演算の内の第2のメモリ演算において、この回路構成200に含まれるXOR論理回路構成は、上記部分的パリティ値と、変更済データワードに対応する、セグメント400Aに記憶された値PにおけるデータワードとのXORを実施して、このXOR演算の結果をPからの対応データワードが記憶されているセグメント400Aの位置へと書き込み得る。値C’内に値Cにおける夫々の対応データワードとは異なる付加的データワードが存在する場合には、これらの付加的データワードの各々に対して上記プロセスが反復され、(あるとすれば)このプロセスの斯かる付加的反復の最後においてセグメント400Aに記憶される値はP’である、と言うのも、簡潔さのために此処でその様なことは行ないが、数学的には以下の様に示され得るからである。
A XOR B XOR C’=P XOR C XOR C’=P’
各メモリボードにおける制御・ネットワーク回路構成は双方向データ経路を備え得る。該双方向データ経路は、値C’における変更済データワードが部分的パリティ値の生成および送信と同時にセグメント700Aに書き込まれるのを可能にし得る。これにより好適に、データ転送サイクルの個数が相当に減少され、故に、本発明の該実施形態においてメモリ書込み操作を実施するのに必要な時間も(たとえば、二重書込式障害許容技術を利用するメモリにおいて上記と同一量のデータを伴う書込み操作を実施するために必要な時間と等しくなるように)相当に減少され得る。
また本発明の該実施形態によれば、メモリボード100A,100B,100C,100D,・・・100Nにおける制御・ネットワーク回路構成(および/または、システム112におけるホストコントローラおよびディスクコントローラなどの他の構成要素)は、(たとえば従来のメモリ故障検出技術を用いて)パリティセットにおける各データセグメントの1つのデータセグメントの故障が生じた時点を検出するように構成され得る。斯かる故障が検出された場合、メモリボード100A,100B,100C,100D,・・・100Nの内の適切な夫々のメモリボード中に含まれる制御・ネットワーク回路構成は、故障データセグメントが属するパリティセットにおける正常なデータセグメントに記憶されたデータ値とパリティセグメントに記憶されたデータ値とを用いて、故障データセグメントに記憶されていたデータ値を再構築するように使用され得ると共に、再構築されたデータ値を故障していない別のメモリセグメントへと記憶し得る。たとえばメモリセグメント500Aの故障が検出された場合には、メモリセグメント400Aに記憶された値Pをボード100Dにおける制御・ネットワーク回路構成によって使用するために(たとえば一連の複数データワード転送で)送信するために、メモリボード100Aにおける制御・ネットワーク回路構成200が使用され得る。メモリボード100Dにおける制御・ネットワーク回路構成は、該ボード100Dにおける制御・ネットワーク回路構成に含まれる論理XOR回路構成を用いることで値Pからの受信データワードを値Cにおける対応データワードと論理XORを取り(たとえばデータワード毎に演算P XOR Cを実施し)、且つ、これらのXOR演算から生成するデータ値(以下においては“データ値X”と称する)をデータ記憶のために現在利用可能なメモリ16の別のメモリセグメント(たとえば700N)に一時的に記憶し得る。メモリボード100Cに含まれる制御・ネットワーク回路構成は、メモリセグメント600Aに記憶されたデータ値Bを、メモリボード100Dにおける制御・ネットワーク回路構成により使用するべく(たとえば一連の複数データワード転送で)、送信し得る。メモリボード100Dにおける制御・ネットワーク回路構成は次にその論理XOR回路構成を用いてデータ値Bからの受信データワードと値Xからの対応データワードとの論理XORを行い(すなわちデータワード毎に演算X XOR Bを実施し)、(故障したセグメント500Aに記憶されていたデータ値Aに等しい)その生じた値を、メモリボード100A、100Cもしくは100D内に配置されて
おらず、かつデータの記憶に利用可能なメモリセグメントへと記憶するように送信し得る。たとえば、もしボード100Bにおけるセグメント500Aのみが故障したならば、ボード100Bはその他の点では正常に動作しており、セグメント500Nはデータを記憶すべく利用可能であり、新たに再構築された値Aはセグメント500Nに記憶され得る。これに代わって、故障したセグメント500Aを含むメモリボード100Bに対して新たに再構築された値Aを記憶するのが望ましくない場合には、再構築値Aは、たとえばメモリボード100Nにおいて利用可能なデータセグメントへと記憶され得る。データ値Xおよび再構築値Aが記憶され得る特定のメモリセグメントもまた、本発明の該実施形態から逸脱することなく変更され得る。
尚、値Aが破損データワード毎に再構築され得るのことに留意することが重要である。すなわちセグメント500Aに含まれるデータワードの全てが破損したのでなければ、再構築が必要なのは破損データワードのみである。たとえばセグメント500Aの第1データワード(たとえば最下位データワード)のみが破損した場合には、破損した第1データワードを数学的に再構築すべく使用される必要があるのは値P,B,Cにおける夫々の対応する第1データワードのみである。再構築されたデータワードは次にセグメント500Aからの他の正常データワードと結合されて上記値Aを生成し、次いで、この値Aは利用可能データセグメント(たとえば500N、または、ボード100Nにおける利用可能データセグメント)に記憶され得る。
夫々のメモリボード100A,100B,100C,100D,・・・100Nの制御・ネットワーク回路構成はアプリケーション特有の集積回路(および関連回路構成)として具体化され得るものである。該集積回路は、斯かる制御・ネットワーク回路構成により実施されると上述した処理手順、プロセス、技術、演算および機能を夫々の制御・ネットワーク回路構成が実施し得るべく実行される特定アルゴリズムによって、事前プログラムされ得る。
故に本発明に依れば、本明細書中において上記に示された目的および課題を完全に満足し且つ各利点を達成するというメモリシステムおよびその使用方法が提供されることは明らかである。本出願において採用された語句および表現は限定のためでなく説明のための語句であり、斯かる語句および表現を使用する上では本出願の図示および記載特徴またはその一部の一切の均等物を排除することは意図されず、寧ろ、権利請求された発明の有効範囲内において可能である種々の改変が為され得ることが理解される。
たとえば本発明の好適実施形態は、ホストコントローラとディスクコントローラとの間の通信を促進するメッセージネットワーク14と、リンク40,42,44,46を備えたポイント・ツー・ポイント・データ転送ネットワークシステムとを備えたネットワークデータ記憶システムにおける使用に関して説明したが、適切に改変されるならば、本発明の該実施形態は代替的に、たとえば2001年2月28日に出願された、“エラー条件処理(Error Condition Handling)”と称される本発明と同様に本出願人が所有する同時係属中の米国特許出願第09/796,259号に記載された形式の冗長バスシステムを利用する他の形式のネットワークデータ記憶システムに関しても使用され得る。
他の改変も可能である。たとえば、メモリシステム16においては一定のメモリ書込み−変更−読取り操作が実施され得ると共に、これらの操作は本発明との互換性に対して適合され得る。斯かる書込み−変更−読取り操作の例としてはシステム16におけるメモリセグメント(たとえばセグメント500A)に既に記憶されているデータワードに対して算術的および/または論理的なメモリ演算が実施され得るという(比較およびスワップ、半もしくは全ワード/バイトの加算などの)操作が挙げられる。これらの演算の結果はデ
ータワードが以前に記憶されていたメモリの箇所に上書きすべく使用され得ると共に、以前に記憶されていたデータワードが戻され得る。これらの操作は、以前に記憶されていたデータワードが戻されるときに(たとえばその操作が実施されるメモリボードにおける制御・ネットワーク回路構成に含まれる)XOR論理回路構成が、戻されたデータ値と共に、以前に記憶されていたデータワードと論理/算術演算の結果とのXORであり得る余分なデータワードを生成して包含し得るように、実施され得る。戻されたデータ値は、セグメント500Aが属するパリティセットにおけるパリティセグメント400Aの値PをP’へと変更する上で上述のように使用され得る。
他の改変もまた可能である。故に本発明は、添付の各請求項により包含され得る全ての改変例、変形例、代替例および均等物を包含すると広範囲に解釈されるべきである。
本発明の一実施形態が好適に実施されるデータ記憶システムを含むデータ記憶ネットワークの概略的な高レベルブロック図である。 図1に示されたデータ記憶ネットワークに含まれるデータ記憶システムの機能要素を示す概略的な高レベルブロック図である。 図2のデータ記憶システムにおける共有キャッシュメモリリソースの機能要素を示す概略的な高レベルブロック図である。 図3の共有キャッシュメモリリソースに含まれ得るメモリボードの機能要素を示す概略的な高レベルブロック図である。 本発明の一実施形態の見地の記載を促進すべく用いられる概略的な高レベルブロック図である。
符号の説明
14…メッセージネットワーク、16…共有キャッシュメモリリソース、18…ディスクコントローラ、20…ディスクコントローラ、22・・・24…ホストコントローラ、26・・・28…ホストアダプタ、30・・・32…ディスクアダプタ、34・・・36…ディスク記憶デバイス、40、42、44、46…ポイント・ツー・ポイント・データ転送ネットワークリンク、100A,100B,100C,100D,・・・100N…メモリボード、110…データ記憶ネットワーク、112…データ記憶システム、114,116,118,120…通信リンク、124,126,128,130…ホストコンピュータノード、134,136,138,140…ネットワーク通信リンク、144…外部ネットワーク、145…ネットワーク通信リンク、146…クライアントコンピュータノード、200…制御・ネットワーク回路構成、202,204,206,208…メモリ領域、210,212,214,216…SDRAM ICデバイスのバンク、220A,220B,・・・220N…メモリセグメント、222A,222B,・・・222N…メモリセグメント、224A,224B,・・・224N…メモリセグメント、226A,226B,・・・226N…メモリセグメント、300、302、304、306…メモリセグメント、400A,400B,400C,・・・400N…メモリセグメント、500A,500B,500C,・・・500N…メモリセグメント、600A,600B,600C,・・・600N…メモリセグメント、700A,700B,700C,・・・700N…メモリセグメント。

Claims (10)

  1. 複数のメモリボードを備えたメモリシステムであって、
    前記メモリボードの各々は、夫々のデータ値を記憶し得る複数のメモリセグメントを有し、
    該セグメントは、そのパリティセットの各々がN個のセグメントを含むように各パリティセットへとグループ化され、前記Nは整数であり、
    各パリティセットにおけるそれぞれのN個のセグメントは、1個のパリティセグメントおよび(N−1)個のデータセグメントから成り、
    各パリティセットにおける前記N個のセグメントは、前記各メモリボードのいずれもが各パリティセットからの1つ以上のセグメントを有さない様に、前記各メモリボード間に分散され、且つ、
    少なくとも一個のパリティセットにおける1個のパリティセグメントに記憶されたデータ値は、該少なくとも一個のパリティセットにおける各データセグメントに記憶された各データ値の排他論理和により計算され得、
    各メモリボードは複数のメモリ領域と、それらのメモリ領域に対応して、各メモリ領域に対するデータの記憶および読み出しをそれぞれ個別に制御する複数のメモリ領域コントローラとを含み、
    各メモリ領域は、夫々のメモリボードに含まれるセグメントの部分集合を含み、
    且つ、
    夫々のメモリ領域に含まれるセグメントの各々には、夫々のメモリ領域に含まれる他のセグメントに割当てられ得る他の基本メモリアドレスとは異なる、基本メモリアドレスが割当てられ得る
    メモリシステム。
  2. 前記個数Nが4に等しい、請求項1に記載のメモリシステム。
  3. 個数Nは4に等しく、
    前記少なくとも一個のパリティセットにおける1つのデータセグメントに初めに記憶されるデータ値は可変値Aに等しく、且つ、前記少なくとも一個のパリティセットにおける1個のパリティセグメントに初めに記憶されるデータ値は可変値Pに等しく、
    当該メモリシステムは前記少なくとも一個のパリティセットにおける各セグメントに記憶された夫々のデータ値を変更すべく使用され得る回路構成を含み、且つ、
    前記回路構成が1つの前記データ値を前記可変値Aから別の可変値A’へと変更すべく使用されるとき、該回路構成は前記少なくとも一個のパリティセットにおける前記1個のパリティセグメントに記憶されたデータ値もまた可変値Pから別の可変値P’へと変更し、この値P’はP XOR A XOR A’に等しく、前記式中、“XOR”は排他論理和関数を表す請求項1に記載のメモリシステム。
  4. 前記回路構成は、前記少なくとも一個のパリティセットにおける1つの前記データ値および前記1個のパリティセグメントに記憶されたデータ値を夫々の不可分な操作において変更するように構成される請求項4に記載のメモリシステム。
  5. 前記各メモリボードは半導体メモリを備え、且つ、各複数のメモリセグメントは前記半導体メモリに含まれる、請求項1に記載のメモリシステム。
  6. データ値を記憶し得る複数のメモリセグメントを各々が有する複数のメモリボードを含むメモリシステムの使用方法であって、
    当該パリティセットの各々は整数であるN個のセグメントを含むように前記各セグメントを各パリティセットへとグループ化する工程と、各パリティセットにおけるN個のセグ
    メントは1個のパリティセグメントと(N−1)個のデータセグメントとから成ることと、
    各パリティセットにおける前記N個のセグメントを、前記各メモリボードのいずれもが各パリティセットからの1つより多くのセグメントを有さない様に、前記各メモリボード間に分散する工程と、
    少なくとも一個のパリティセットにおける1個のパリティセグメントに対して、該少なくとも一個のパリティセットにおける各データセグメントに記憶されたデータ値の排他論理和を取ることで計算され得るデータ値を記憶する工程と、
    各メモリボードを夫々複数のメモリ領域を含むようにさらに編成する工程とを備え、各メモリボードは、各メモリ領域に対応して、各メモリ領域に対するデータの記憶および読み出しをそれぞれ個別に制御する複数のメモリ領域コントローラを有し、各メモリ領域は、夫々のメモリボードに含まれるセグメントの部分集合を含み、夫々のメモリ領域に含まれるセグメントの各々には、夫々のメモリ領域に含まれる他のセグメントに割当てられ得る他の基本メモリアドレスとは異なる、基本メモリアドレスが割当てられ得る、
    メモリシステムの使用方法。
  7. 各メモリボードの各メモリセグメントのデータは、複数個のデータワードにさらにセグメント化され、それらのデータワードは複数のストライプユニットにグループ化され、各ストライプユニットは所定の複数のデータワードを含み、前記ストライプユニットは、各メモリボードの夫々のメモリ領域にわたってストライピングされている、請求項1に記載のメモリシステム。
  8. 各ストライプユニットにおけるデータワードの数は64である、請求項7に記載のメモリシステム。
  9. 各メモリボードの各メモリセグメントのデータは、複数個のデータワードにさらにセグメント化され、それらのデータワードは複数のストライプユニットにグループ化され、各ストライプユニットは所定の複数のデータワードを含み、前記ストライプユニットは、各メモリボードの夫々のメモリ領域にわたってストライピングされている、請求項6に記載のメモリシステム。
  10. 各ストライプユニットにおけるデータワードの数は64である、請求項9に記載のメモリシステム。
JP2006277155A 2001-08-09 2006-10-11 メモリシステムおよびその使用方法 Expired - Lifetime JP4643539B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US09/927,042 US6904556B2 (en) 2001-08-09 2001-08-09 Systems and methods which utilize parity sets

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2002229611A Division JP2003131953A (ja) 2001-08-09 2002-08-07 メモリシステムおよびその使用方法

Publications (2)

Publication Number Publication Date
JP2007052805A true JP2007052805A (ja) 2007-03-01
JP4643539B2 JP4643539B2 (ja) 2011-03-02

Family

ID=25454074

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2002229611A Pending JP2003131953A (ja) 2001-08-09 2002-08-07 メモリシステムおよびその使用方法
JP2006277155A Expired - Lifetime JP4643539B2 (ja) 2001-08-09 2006-10-11 メモリシステムおよびその使用方法

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2002229611A Pending JP2003131953A (ja) 2001-08-09 2002-08-07 メモリシステムおよびその使用方法

Country Status (4)

Country Link
US (1) US6904556B2 (ja)
JP (2) JP2003131953A (ja)
DE (1) DE10236179A1 (ja)
GB (1) GB2380836B (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011170755A (ja) * 2010-02-22 2011-09-01 Nec Corp メモリ障害処理装置、メモリ障害処理方法及びメモリ障害処理プログラム

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7346831B1 (en) * 2001-11-13 2008-03-18 Network Appliance, Inc. Parity assignment technique for parity declustering in a parity array of a storage system
US6851082B1 (en) 2001-11-13 2005-02-01 Network Appliance, Inc. Concentrated parity technique for handling double failures and enabling storage of more than one parity block per stripe on a storage device of a storage array
US7293138B1 (en) * 2002-06-27 2007-11-06 Adaptec, Inc. Method and apparatus for raid on memory
US7117316B2 (en) * 2002-08-05 2006-10-03 Micron Technology, Inc. Memory hub and access method having internal row caching
US7149874B2 (en) * 2002-08-16 2006-12-12 Micron Technology, Inc. Memory hub bypass circuit and method
US7836252B2 (en) 2002-08-29 2010-11-16 Micron Technology, Inc. System and method for optimizing interconnections of memory devices in a multichip module
US7392436B2 (en) * 2003-05-08 2008-06-24 Micron Technology, Inc. Program failure recovery
US7120727B2 (en) 2003-06-19 2006-10-10 Micron Technology, Inc. Reconfigurable memory module and method
US7260685B2 (en) * 2003-06-20 2007-08-21 Micron Technology, Inc. Memory hub and access method having internal prefetch buffers
US7133991B2 (en) * 2003-08-20 2006-11-07 Micron Technology, Inc. Method and system for capturing and bypassing memory transactions in a hub-based memory system
US7136958B2 (en) * 2003-08-28 2006-11-14 Micron Technology, Inc. Multiple processor system and method including multiple memory hub modules
US7120743B2 (en) * 2003-10-20 2006-10-10 Micron Technology, Inc. Arbitration system and method for memory responses in a hub-based memory system
US7788451B2 (en) 2004-02-05 2010-08-31 Micron Technology, Inc. Apparatus and method for data bypass for a bi-directional data bus in a hub-based memory sub-system
US7257683B2 (en) 2004-03-24 2007-08-14 Micron Technology, Inc. Memory arbitration system and method having an arbitration packet protocol
US6980042B2 (en) 2004-04-05 2005-12-27 Micron Technology, Inc. Delay line synchronizer apparatus and method
JP2005309818A (ja) * 2004-04-22 2005-11-04 Hitachi Ltd ストレージ装置、そのデータ読出方法、及びそのデータ読出プログラム
US7363419B2 (en) 2004-05-28 2008-04-22 Micron Technology, Inc. Method and system for terminating write commands in a hub-based memory system
US7681105B1 (en) * 2004-08-09 2010-03-16 Bakbone Software, Inc. Method for lock-free clustered erasure coding and recovery of data across a plurality of data stores in a network
DE602005015482D1 (de) * 2004-12-08 2009-08-27 Ge Aviat Systems Llc System und verfahren zur erhöhten fehlererkennung in speicherperipherien
US20080270704A1 (en) * 2007-04-30 2008-10-30 He Dingshan Cache arrangement for improving raid i/o operations
US8327225B2 (en) 2010-01-04 2012-12-04 Micron Technology, Inc. Error correction in a stacked memory
US8103937B1 (en) * 2010-03-31 2012-01-24 Emc Corporation Cas command network replication
EP2915049B1 (en) 2012-10-30 2020-03-04 Hewlett-Packard Enterprise Development LP Smart memory buffers
US9747035B2 (en) * 2014-12-17 2017-08-29 Empire Technology Development Llc Reducing memory overhead associated with memory protected by a fault protection scheme
CN116710899A (zh) * 2021-03-23 2023-09-05 深圳市欢太科技有限公司 一种数据冗余备份方法、装置、存储介质及电子设备

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04233025A (ja) * 1990-06-21 1992-08-21 Internatl Business Mach Corp <Ibm> パリティ保護データを回復するための方法および装置
JPH07295763A (ja) * 1994-04-22 1995-11-10 Internatl Business Mach Corp <Ibm> ディスク・アレイ装置およびデータの格納方法
JPH0887424A (ja) * 1994-09-16 1996-04-02 Toshiba Corp 電子計算機
JPH08235076A (ja) * 1994-11-10 1996-09-13 Raymond Eng Inc 半導体メモリ素子の冗長アレイ
JPH09146850A (ja) * 1995-11-08 1997-06-06 Internatl Business Mach Corp <Ibm> 記憶装置障害保護方法、試験方法、パリティ等割り当て方法、および、保護システム
JPH09218754A (ja) * 1996-02-13 1997-08-19 Ekushingu:Kk データ記憶システム
US20010039632A1 (en) * 2000-01-25 2001-11-08 Maclaren John M. Raid memory

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5218691A (en) * 1988-07-26 1993-06-08 Disk Emulation Systems, Inc. Disk emulation system
WO1993023803A1 (fr) * 1992-05-21 1993-11-25 Fujitsu Limited Appareil de commande pour pile de disques
US6247157B1 (en) * 1998-05-13 2001-06-12 Intel Corporation Method of encoding data signals for storage
US6745284B1 (en) 2000-10-02 2004-06-01 Sun Microsystems, Inc. Data storage subsystem including a storage disk array employing dynamic data striping

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04233025A (ja) * 1990-06-21 1992-08-21 Internatl Business Mach Corp <Ibm> パリティ保護データを回復するための方法および装置
JPH07295763A (ja) * 1994-04-22 1995-11-10 Internatl Business Mach Corp <Ibm> ディスク・アレイ装置およびデータの格納方法
JPH0887424A (ja) * 1994-09-16 1996-04-02 Toshiba Corp 電子計算機
JPH08235076A (ja) * 1994-11-10 1996-09-13 Raymond Eng Inc 半導体メモリ素子の冗長アレイ
JPH09146850A (ja) * 1995-11-08 1997-06-06 Internatl Business Mach Corp <Ibm> 記憶装置障害保護方法、試験方法、パリティ等割り当て方法、および、保護システム
JPH09218754A (ja) * 1996-02-13 1997-08-19 Ekushingu:Kk データ記憶システム
US20010039632A1 (en) * 2000-01-25 2001-11-08 Maclaren John M. Raid memory
US20020053010A1 (en) * 2000-01-25 2002-05-02 Piccirillo Gary J. Method for supporting multi-level stripping of non-homogeneous memory to maximize concurrency

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011170755A (ja) * 2010-02-22 2011-09-01 Nec Corp メモリ障害処理装置、メモリ障害処理方法及びメモリ障害処理プログラム

Also Published As

Publication number Publication date
JP2003131953A (ja) 2003-05-09
GB2380836B (en) 2005-06-15
US20030033572A1 (en) 2003-02-13
US6904556B2 (en) 2005-06-07
DE10236179A1 (de) 2003-02-20
GB2380836A (en) 2003-04-16
JP4643539B2 (ja) 2011-03-02
GB0217160D0 (en) 2002-09-04

Similar Documents

Publication Publication Date Title
JP4643539B2 (ja) メモリシステムおよびその使用方法
US7133967B2 (en) Storage system, controller, control method and program product therefor
US8589723B2 (en) Method and apparatus to provide a high availability solid state drive
KR100261378B1 (ko) 어댑터들이상이한호스트컴퓨터에존재하는어레이에대한주콘트롤러및보조콘트롤러로서작용하도록함으로써복수의저장어레이를공유하기위한시스템및방법
US6820171B1 (en) Methods and structures for an extensible RAID storage architecture
US8489914B2 (en) Method apparatus and system for a redundant and fault tolerant solid state disk
KR100793224B1 (ko) Raid 시스템, raid 컨트롤러 및 그 재구성/재복사처리 방법
US9411764B2 (en) Optimized redundant high availability SAS topology
US20080276032A1 (en) Arrangements which write same data as data stored in a first cache memory module, to a second cache memory module
JP5124792B2 (ja) RAID(RedundantArrayofIndependentDisks)システム用のファイルサーバ
US20020069317A1 (en) E-RAID system and method of operating the same
JP2005108224A (ja) 改良型raidメモリ・システム
JP7063833B2 (ja) データ保護機能を有するfpgaを備えるストレージシステム
US6578126B1 (en) Memory system and method of using same
JPH06242887A (ja) アレイ記憶線形・直交拡張型マルチプロセシングコンピュータシステム
KR102646616B1 (ko) 판독 명령 실행을 위한 NVMeoF RAID 구현 방법
JPH10111767A (ja) 大容量記憶装置
JP2006331076A (ja) データ記憶システム及び記憶方法
JP2004272527A (ja) ディスクアレイ装置および障害回復制御方法
US6594739B1 (en) Memory system and method of using same
US7715378B1 (en) Error notification and forced retry in a data storage system
US7020754B1 (en) Method and system for maintaining data integrity using dual write operations
KR100447267B1 (ko) 레이드 시스템의 분산 제어장치
JP7137612B2 (ja) 分散型ストレージシステム、データ復旧方法、及びデータ処理プログラム
CN114064527A (zh) 无单一失败点的存储装置

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20090522

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090602

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20090828

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20090902

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20091202

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100803

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101028

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20101116

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20101202

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 4643539

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131210

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term