• ポートフォリオ機能


ポートフォリオを新規に作成して保存
既存のポートフォリオに追加保存

  • この表をプリントする
PDF PDFをダウンロード
審決分類 審判 査定不服 2項進歩性 特許、登録しない(前置又は当審拒絶理由) G06F
管理番号 1333646
審判番号 不服2016-2504  
総通号数 216 
発行国 日本国特許庁(JP) 
公報種別 特許審決公報 
発行日 2017-12-28 
種別 拒絶査定不服の審決 
審判請求日 2016-02-19 
確定日 2017-10-11 
事件の表示 特願2013-550554「より高いレベルの冗長な情報の計算」拒絶査定不服審判事件〔平成24年 7月26日国際公開,WO2012/099937,平成26年 3月27日国内公表,特表2014-507717〕について,次のとおり審決する。 
結論 本件審判の請求は,成り立たない。 
理由 第1.手続の経緯
本願は,平成24年1月18日(パリ条約による優先権主張外国庁受理2011年1月18日(以下,「優先日」という),米国)を国際出願日とする出願であって,主な手続きは以下のとおりである。
平成25年9月17日 翻訳文提出
平成27年1月17日 審査請求
平成27年3月2日付け 拒絶理由
平成27年9月10日 意見書,手続補正
平成27年10月16日付け 拒絶査定(平成27年10月20日発送)
平成28年2月19日 審判請求,手続補正
平成28年7月25日 上申書
平成28年12月28日付け 拒絶理由(当審)
平成29年3月30日 意見書,手続補正

第2.本願発明
本願の請求項1に係る発明(以下,「本願発明」という)は,平成29年3月30日提出の手続補正により補正された特許請求の範囲の請求項1に記載された,次のとおりのものである。
「システムであって,
複数の単位のデータストレージ情報の各々を独立して計算し,当該複数の単位のデータストレージ情報の各々が利用可能となる順序に対応する順序で1若しくはそれ以上のより高いレベルの冗長な情報の単位を処理する手段と,
訂正不可能なデータストレージ情報の単位の各々に関連付けられたより低いレベルの冗長な情報に少なくとも部分的に基づいて,前記複数の単位のデータストレージ情報のうち特定の1若しくはそれ以上を訂正不可能なデータストレージ情報の単位として決定する手段であって,前記訂正不可能なデータストレージ情報の単位以外の前記複数の単位のデータストレージ情報は訂正可能なデータストレージ情報の単位である,前記決定する手段と,
前記訂正可能なデータストレージ情報の単位の各々が利用可能となる順序に対応する順序で前記訂正可能なデータストレージ情報の単位の各々を独立して処理する手段を少なくとも部分的に介して前記訂正不可能なデータストレージ情報の単位の訂正された単位を計算する手段と
を有し,
前記処理する手段における前記順序は前記計算する手段における前記順序とは異なるものであり,
前記より高いレベルの冗長な情報は,第1の部分と第2の部分を有するものであり,
前記処理する手段は,前記より高いレベルの冗長な情報の単位の少なくとも一部分として,前記データストレージ情報の単位のコンテンツで乗算された,前記データストレージ情報の単位の各々に対するゼロではない固有の定数値の加重和を蓄積する手段を含み,
前記加重和を蓄積する手段は,前記データストレージ情報の単位のうちの2つまで前記加重和から選択的に除外することが可能であり,
前記より高いレベルの冗長な情報の部分は,任意の順序で計算可能である,システム。」

第3.引用刊行物に記載の事項
1.引用文献1
平成28年12月28日付けの拒絶理由(以下,「当審拒絶理由」という)に引用した,本願の優先日前に既に公知である,特開2011-8583号公報(平成23年1月13日公開)(以下,「引用文献1」という)には,関連する図面と共に,次の事項が記載されている。

A.「【0008】
このRAID6は,m(mは,4以上の整数)台のHDDを1組として,m個のHDDのうち(m-2)個にデータ(データブロック)を格納し,残りの2台のHDDのうちの一方にはRAID5と同様のパリティ(XORパリティ),他方には当該XORパリティとは独立するパリティを格納する方法である。この方法によれば,m台のHDDのうち,任意の2台のHDDが故障した場合であってもデータを完全に復元することができる。
【0009】
以下,RAID6において用いられる2つのパリティのうち,RAID5と同様のXORパリティをPパリティ,RAID6に固有のパリティ(つまり,XORパリティとは独立するパリティ)をQパリティと称する。ここでは,2つのXORパリティを用いる2D-XOR方式のRAID6については想定していない。
【0010】
ところで,上記したQパリティは,Pパリティとは数学的に独立な意味を持つ必要がある。すなわち,(m-2)台のHDDに格納されているデータブロック及び2つのパリティからなる2元連立方程式が必ず解を持つ必要がある。
【0011】
また,現実的な要求として,計算されたパリティ(P及びQ)の値の範囲は,各データブロックの値の範囲と同じである必要がある。すなわち,(m-2)台のHDDに格納されている例えば1バイトのデータブロックからは,1バイトのパリティが生成(計算)される必要がある。
…(中略)…
【0013】
したがって,現実のRAID6では,ガロア体と呼ばれる演算空間を定義することによって,このような要求を全て満たすQパリティの計算を実現している。・・・」

B.「【0022】
本発明の1つの態様によれば,データを格納する2台以上の第1の記憶装置と,前記第1の記憶装置に格納されているデータを復元するために用いられる第1のパリティデータであって,当該第1の記憶装置に格納されているデータから第1の計算方法によって計算される第1のパリティデータを格納する第2の記憶装置と,前記第1の記憶装置に格納されているデータを復元するために用いられる前記第1のパリティデータとは異なる第2のパリティデータであって,当該第1の記憶装置に格納されているデータから前記第1の計算方法より複雑な第2の計算方法によって計算される第2のパリティデータを格納する第3の記憶装置と接続されるディスクアレイ制御装置が提供される。」

C.「【0027】
RAIDコントローラ20は,外部から送信されるI/O要求(ライト要求またはリード要求)を取得し,当該I/O要求に応じてHDD30-1,30-2,…,30-6に対するデータのライト/リード処理を実行する。
【0028】
本実施形態においては,RAIDコントローラ20は,ハードウェアとして存在するものとする。具体的には,PCI-Express上のRAIDカードのような形式である。RAIDコントローラ20は,独立したRAIDコントローラプロセッサ21及びRAIDコントローラメモリ22を有する。RAIDコントローラメモリ22には,RAIDコントローラプロセッサ21によって実行されるプログラム(RAIDプログラム)が格納されている。RAIDコントローラプロセッサ21は,RAIDコントローラメモリ22に格納されているRAIDプログラムを実行することによってRAID機能を実現する。
【0029】
なお,RAIDコントローラメモリ22には,応答性を向上するためにデータキャッシュが実装されていても構わない。
【0030】
ディスクアレイ装置10が有するHDD30-1,30-2,…,30-6は,例えばRAID(Redundant Arrays of Inexpensive Disks)6を構成する。
【0031】
このRAID6においては,HDD30-1,30-2,…,30-6のうちの4台のHDD(第1の物理記憶装置)にデータ(データブロック)が格納され,残りの2台のうちの一方のHDD(第2の物理記憶装置)には当該データブロックからXOR演算(第1の計算方法)によって計算される第1のパリティデータ(以下,Pパリティと表記),他方のHDD(第3の物理記憶装置)には当該Pパリティとは独立する第2のパリティデータ(以下,Qパリティと表記)が格納される。Qパリティは,Pパリティとは数学的に独立な意味を持ち,ガロア演算(第2の計算方法)によって計算される。ガロア演算は,ガロア体と呼ばれる演算空間を定義することによって実現され,例えば予め用意された四則演算テーブルを参照することによって計算される。なお,ガロア演算は,上記したXOR演算より複雑な計算方法であり,当該XOR演算と比較してより多くの処理時間(処理量)を要する。
【0032】
ここでは,ディスクアレイ装置10が6台のHDDを有するため,そのうちの4台のHDDにデータ(Pパリティ及びQパリティ以外のデータ)が格納されるが,RAID6においては,2台以上のHDDに当該データが格納されている必要がある。
【0033】
また,HDD30-1,30-2,…,30-6のうちの4台のHDDに格納されているデータブロック,当該データブロックから計算されるPパリティ及びQパリティ(の組)はストライプと呼ばれる。HDD30-1,30-2,…,30-6は,複数のストライプを有する。」

D.「【0087】
具体的に,ステップS21においてI/O要求がリード要求であると判定された場合について説明する。このとき,RAID機能部211は,当該RAID機能部211によって検出された例えばHDD30-2の故障によりデータブロックが欠損している場合には,アクセス対象ストライプにおけるPパリティから当該欠損しているデータブロックを復元し,当該データブロックをI/O要求に対する応答として返す。なお,HDD30-2の故障によりPパリティまたはQパリティが欠損している場合には,アクセス対象ストライプにおけるデータブロックを返す。」

E.「【0100】
再構成対象ストライプについてパリティ置換処理が完了していると判定された場合(ステップS34のYES),再構成機能部213は,当該再構成対象ストライプについて再構成処理(以下,ストライプ再構成処理と表記)が実行される(ステップS35)。このストライプ再構成処理の詳細については後述する。
【0101】
一方,再構成対象ストライプについてパリティ置換処理が実行されていないと判定された場合(ステップS34のNO),再構成対象ストライプについて通常のRAID6と同様の再構成処理がRAID機能部211によって実行される(ステップS36)。この場合の再構成対象ストライプは,データブロック,Pパリティ及びQパリティのいずれかが欠損している状態である。
【0102】
具体的には,再構成対象ストライプにおいてデータブロックが欠損している場合,RAID機能部211は,当該再構成対象ストライプにおけるデータブロック(欠損しているデータブロック以外のデータブロック)及びPパリティから当該欠損しているデータブロックを復元し,当該復元されたデータブロックを新HDD(の当該再構成ストライプに該当する箇所)に書き込む。なお,この場合,PパリティでなくQパリティを用いてデータブロックを復元することも可能であるが,計算処理量の軽減を図るためPパリティを用いる方が好ましい。
【0103】
また,再構成対象ストライプにおいてPパリティが欠損している場合,RAID機能部211は,当該再構成対象ストライプにおけるデータブロックからXOR演算によりPパリティを再計算し,当該再計算されたPパリティを新HDDに書き込む。
【0104】
また,再構成対象ストライプにおいてQパリティが欠損している場合,RAID機能部211は,当該再構成対象ストライプにおけるデータブロックからガロア演算によりQパリティを再計算し,当該再計算されたQパリティを新HDDに書き込む。
【0105】
再構成対象ストライプについてパリティ置換処理が完了していない場合は,上記したような通常のRAID6と同様の再構成処理が実行される。」

F.「【0141】
また,本実施形態においては,ディスクアレイ装置10が物理記憶装置としてHDDを有するものとして説明したが,例えば半導体記憶装置のような他の物理記憶装置を用いてRAID6を構成する場合についても容易に適用可能である。」

2.引用文献2
当審拒絶理由に引用した,本願の優先日前に既に公知である,国際公開2010-078167号(2010年7月8日国際公開)(以下,「引用文献2」という)には,関連する図面と共に,次の事項が記載されている。

G.「Some embodiments of the inventions relate to improved error correction in a solid state disk.
In some embodiments, a solid state disk (SSD) includes a non-volatile memory and a controller. The controller performs ECC (Error Correcting Code) on data stored on the non-volatile memory, and performs a parity operation on the data if the ECC cannot correct the data.

In embodiments with one parity slot 79 as described above, in the event of an uncorrectable error in any sector of any page of slots 00 through 78, the SSD can read that sector number from all of the pages except for the one in error, and XOR the content of those sectors along with the corresponding parity sector in slot 79 in order to recover the missing content. In some embodiments, ECC such as Bose-Chaudhuri-Hocquengen (BCH) correction occurs on each sector, including the parity, and an uncorrectable state is used to trigger the second level of ECC recovery by XORing the content.」(4頁31行?5頁6行)
訳;「発明のある実施形態はソリッドステートディスクにおけるエラー訂正を促進することに関係する。
ある実施形態では,ソリッドステートディスク(SSD)は不揮発性メモリとコントローラを含む。コントローラは不揮発性メモリに記憶されたデータ上のECC(エラー訂正コード)を行い,そして,もしECCがデータを訂正できなければそのデータ上パリティオペレーションを行う。
…(中略)…
前述のように1つのパリティスロット79を持つ実施形態において,00から78までのスロットの任意のページの任意のセクタにおける訂正不可能なエラーのイベントで,SSDはエラー状態にあるもの以外のページのすべてからそのセクタ番号を読んで,そして欠けているコンテンツを再生するために対応するパリティセクタとともにスロット79でそれらのセクタのコンテンツのXOR をとることができる。 ある実施形態では,Bose - Chaudhuri - Hocquengen(BCH)訂正のようなECCが,パリティを含めて,それぞれのセクタの上に起こり,そして訂正不可能な状態が,コンテンツのXOR をとることによって,ECC回復のセカンドレベルを引き起こすために用いられる。」

前記Gの記載から,引用文献2には,スロット00から78までの任意のページの任意のセクタにおける訂正不可能なエラー(訂正不可能なデータストレージ情報の単位の各々)に関連付けられたBCH訂正のようなECC(より低いレベルの冗長な情報)に少なくとも部分的に基づいて,エラー状態にあるもの以外のページのすべてからそのセクタ番号を読んで,そして欠けているコンテンツを再生する(複数の単位のデータストレージ情報のうち特定の1若しくはそれ以上を訂正不可能なデータストレージ情報の単位として決定する)手段であって,1つのパリティスロット79を持つ実施形態において,スロット00から78までの任意のページの任意のセクタにおける訂正不可能なエラー(訂正不可能なデータストレージ情報の単位以外の前記複数の単位のデータストレージ情報は訂正可能なデータストレージ情報の単位である)に係る技術が示されている。
また,引用文献2には,SSDに係り,BCH訂正のようなECCが,パリティを含めて,それぞれのセクタの上に起こり,そして訂正不可能な状態が,コンテンツのXOR をとることによるECC回復のセカンドレベルを引き起こすために用いられる技術が示されている。

3.引用文献3
当審拒絶理由に引用した,本願の優先日前に既に公知である,特開2008-204247号(平成20年9月4日公開)(以下,「引用文献3」という)には,関連する図面と共に,次の事項が記載されている。

H.「【0018】
RAID6の一次元冗長方式を用いる場合、パリティPは、ストライプ内の全てのストリップのXOR演算を行うことにより求められる。また、パリティQは、ストライプ内の全てのストリップに対してガロア体の積演算による重み付けを行い、その結果のXOR演算により求められる。
(中略)
【0040】
パリティQの生成に用いるガロア体GF(2N)の演算は,次式で表される分配則が成り立つ。
【0041】
X・(Y+Z)=(X・Y)+(X・Z)
【0042】
ストライプ内ストリップ番号iのストリップのデータをDi,ストライプ内ストリップ番号iに対応して予め定められた重み付け定数をAiとすると,生成されるパリティQのデータDqは次式で表される。
【0043】
【数3】




前記Hの記載と,前記【数式3】から,乗算,荷重和は明らかであることから,引用文献3には,RAID6におけるパリティQについて、データ(コンテンツ)で「乗算された」,ストライプ内のストリップ(データストレージ情報の単位)の各々に対するストリップ番号iに対応して予め定められた重み付け定数(「ゼロではない固有の定数値)を用いた【数式3】(加重和)に相当する技術が示されている。

4.参考文献4
本願の優先日前に既に公知である,特開2010-267164号(平成22年11月25日公開)(以下,「参考文献4」という)には,関連する図面と共に,次の事項が記載されている

I.「【0066】
[リード処理手順]
次に,図7を用いて,実施例2に係るストレージ装置100によるリード処理の手順について説明する。図7は,実施例2に係るストレージ装置100によるリード処理手順を示すフローチャートである。
【0067】
図7に示すように,ストレージ装置100のドライブ制御部120は,リード命令を受け付けた場合に(ステップS101肯定),ドライブ部110から,セクタ単位にデータを読み出す(ステップS102)。
【0068】
続いて,第一検査部130は,ドライブ制御部120によって読み出されたセクタデータごとに,かかるセクタデータに付与されているBCRCを用いて誤りがあるか否かを検査する(ステップS103)。続いて,第一検査部130は,誤りを検出した場合に,セクタデータに付与されているBECCを用いて,かかるセクタデータの誤りを訂正する。
【0069】
そして,第一検査部130は,セクタデータの誤り訂正処理にエラーが発生した場合(ステップS104肯定),セクタデータをドライブ部110から再度読み出すリトライ処理を行うか,または,ホスト装置1へエラー通知を行う(ステップS105)。」

前記Iの記載から,参考文献4には,「ドライブ部からセクタ単位にデータ(データストレージ情報の単位)を読み出し,読み出されたセクタデータごと(データストレージ情報の単位の各々)に,付与されているBCRC(より低いレベルの冗長な情報)を用いて誤りがあるか否かを検査し,誤りを検出した場合に,セクタデータ(データストレージ情報の単位の各々)に付与されているBECC(より高いレベルの冗長な情報)を用いて,かかるセクタデータの誤りを訂正し,セクタデータの誤り訂正処理にエラーが発生(訂正不可能なデータストレージ情報の単位として決定)した場合,リトライ処理を行うかエラー通知を行う技術」が示されている。

5.引用発明
引用文献1に記載された発明について検討する。
(1)前記Cの「RAIDコントローラ20は,外部から送信されるI/O要求(ライト要求またはリード要求)を取得し,当該I/O要求に応じてHDD30-1,30-2,…,30-6に対するデータのライト/リード処理を実行する」との記載から,「外部から送信されるI/O要求を取得し,当該I/O要求に応じてHDD30-1?30-6に対するデータのライト/リード処理を実行するRAIDコントローラ」をよみとることができる。

(2)前記Aの「RAID6において用いられる2つのパリティのうち,RAID5と同様のXORパリティをPパリティ,RAID6に固有のパリティ(つまり,XORパリティとは独立するパリティ)をQパリティと称する」との記載,前記Bの「データを格納する2台以上の第1の記憶装置と,前記第1の記憶装置に格納されているデータを復元するために用いられる第1のパリティデータであって,当該第1の記憶装置に格納されているデータから第1の計算方法によって計算される第1のパリティデータを格納する第2の記憶装置」との記載,前記Cの「RAID6においては,HDD30-1,30-2,…,30-6のうちの4台のHDD(第1の物理記憶装置)にデータ(データブロック)が格納され,残りの2台のうちの一方のHDD(第2の物理記憶装置)には当該データブロックからXOR演算(第1の計算方法)によって計算される第1のパリティデータ(以下,Pパリティと表記)」との記載から,「データ(データブロック)を格納する2台以上の第1の記憶装置と,前記第1の記憶装置に格納されているデータ(データブロック)を復元するために用いられる第1のパリティデータ(Pパリティ)であって,当該第1の記憶装置に格納されているデータ(データブロック)から第1の計算方法(XOR演算)によって第1のパリティデータ(Pパリティ)を計算し,格納する手段」をよみとることができる。

(3)前記Aの「固有のパリティ(つまり,XORパリティとは独立するパリティ)をQパリティと称する」との記載,前記Bの「第1の記憶装置に格納されているデータを復元するために用いられる前記第1のパリティデータとは異なる第2のパリティデータであって,当該第1の記憶装置に格納されているデータから前記第1の計算方法より複雑な第2の計算方法によって計算される第2のパリティデータを格納する第3の記憶装置」との記載,前記Cの「他方のHDD(第3の物理記憶装置)には当該Pパリティとは独立する第2のパリティデータ(以下,Qパリティと表記)が格納される。Qパリティは,Pパリティとは数学的に独立な意味を持ち,ガロア演算(第2の計算方法)によって計算される(中略)ガロア演算は,上記したXOR演算より複雑な計算方法」との記載から,「前記第1のパリティデータ(Pパリティ)とは異なる第2のパリティデータ(Qパリティ)であって,当該第1の記憶装置に格納されているデータ(データブロック)から前記第1の計算方法(XOR演算)と数学的に独立し複雑な第2の計算方法(ガロア演算)によって第2のパリティデータ(Qパリティ)を計算し,格納する手段」をよみとることができる。

(4)前記Aの「現実的な要求として,計算されたパリティ(P及びQ)の値の範囲は,各データブロックの値の範囲と同じである必要がある。すなわち,(m-2)台のHDDに格納されている例えば1バイトのデータブロックからは,1バイトのパリティが生成(計算)される必要がある」との記載から,「計算された第1のパリティデータ(Pパリティ)および第2のパリティデータ(Qパリティ)の値の範囲は各データブロックの値の範囲と1バイト単位で対応」することをよみとることができる。

(5)前記Eの「再構成対象ストライプについてパリティ置換処理が実行されていないと判定された場合(ステップS34のNO),再構成対象ストライプについて通常のRAID6と同様の再構成処理がRAID機能部211によって実行される(ステップS36)。この場合の再構成対象ストライプは,データブロック,Pパリティ及びQパリティのいずれかが欠損している状態である」との記載から,パリティ置換処理が実行されていないと判定することは,データ(データブロック),第1のパリティデータ(Pパリティ),第2のパリティデータ(Qパリティ)のいずれかが欠損している状態の再構成対象ストライプがパリティ置換処理が実行されていないと判定することといえるので,引用文献1には「データ(データブロック),第1のパリティデータ(Pパリティ)および第2のパリティデータ(Qパリティ)のいずれかが欠損している状態の再構成対象ストライプについてパリティ置換処理が実行されていないと判定する手段」をよみとることができる。

(6)前記Dの「RAID機能部211によって検出された例えばHDD30-2の故障によりデータブロックが欠損している場合には,アクセス対象ストライプにおけるPパリティから当該欠損しているデータブロックを復元し」との記載,前記Eの「再構成対象ストライプにおいてデータブロックが欠損している場合,RAID機能部211は,当該再構成対象ストライプにおけるデータブロック(欠損しているデータブロック以外のデータブロック)及びPパリティから当該欠損しているデータブロックを復元(中略)PパリティでなくQパリティを用いてデータブロックを復元することも可能である」との記載から,「データ(データブロック)が欠損している場合,再構成対象ストラップにおけるデータ(データブロック)(欠損しているデータブロック以外のデータブロック)および第1のパリティデータ(Pパリティ)用いて,当該欠損しているデータ(データブロック)を復元するか,第1のパリティデータ(Pパリティ)ではなく第2のパリティデータ(Qパリティ)を用いて,当該欠損しているデータ(データブロック)を復元するRAID機能部」をよみとることができる。

(7)前記Eの「再構成対象ストライプにおいてPパリティが欠損している場合,RAID機能部211は,当該再構成対象ストライプにおけるデータブロックからXOR演算によりPパリティを再計算(中略)再構成対象ストライプにおいてQパリティが欠損している場合,RAID機能部211は,当該再構成対象ストライプにおけるデータブロックからガロア演算によりQパリティを再計算」との記載から,「第1のパリティ(Pパリティ)が欠損している場合,再構成対象ストライプにおけるデータ(データブロック)から第1の計算方法(XOR演算)により第1パリティ(Pパリティ)を再計算し,第2のパリティ(Qパリティ)が欠損している場合,再構成対象ストライプにおけるデータ(データブロック)から第2の計算方法(ガロア演算)により第2のパリティ(Qパリティ)を再計算するRAID機能部」をよみとることができる。

(8)前記Aの「m個のHDDのうち(m-2)個にデータ(データブロック)を格納し,残りの2台のHDDのうちの一方にはRAID5と同様のパリティ(XORパリティ),他方には当該XORパリティとは独立するパリティを格納する」との記載から,「パリティ(XORパリティ)」は「第1のパリティデータ(Pパリティ)」といえ、「XORパリティとは独立するパリティ」は「第2のパリティデータ(Qパリティ)」といえるので、「m個のHDDのうち2台のHDDのうちの一方には第1のパリティデータ(Pパリティ),他方には当該第1のパリティデータ(Pパリティ)とは独立する第2のパリティデータ(Qパリティ)を格納する」ことをよみとることができる。

(9)前記Aの「m台のHDDのうち,任意の2台のHDDが故障した場合であってもデータを完全に復元することができる」との記載から,「m台のHDDのうち,任意の2台のHDDが故障した場合であってもデータを完全に復元することができる」ことをよみとることができる。

(10)前記(1)?(9)の検討によれば,引用文献1には次の発明(以下,「引用発明」という。)が示されている。

「外部から送信されるI/O要求を取得し,当該I/O要求に応じてHDD30-1?30-6に対するデータのライト/リード処理を実行するRAIDコントローラであって,
データ(データブロック)を格納する2台以上の第1の記憶装置と,前記第1の記憶装置に格納されているデータ(データブロック)を復元するために用いられる第1のパリティデータ(Pパリティ)であって,当該第1の記憶装置に格納されているデータ(データブロック)から第1の計算方法(XOR演算)によって第1のパリティデータ(Pパリティ)を計算し,格納する手段と,
前記第1のパリティデータ(Pパリティ)とは異なる第2のパリティデータ(Qパリティ)であって,当該第1の記憶装置に格納されているデータ(データブロック)から前記第1の計算方法(XOR演算)と数学的に独立し複雑な第2の計算方法(ガロア演算)によって第2のパリティデータ(Qパリティ)を計算し,格納する手段と,
計算された第1のパリティデータ(Pパリティ)および第2のパリティデータ(Qパリティ)の値の範囲は各データブロックの値の範囲と1バイト単位で対応し,
データ(データブロック),第1のパリティデータ(Pパリティ)および第2のパリティデータ(Qパリティ)のいずれかが欠損している状態の再構成対象ストライプについてパリティ置換処理が実行されていないと判定する手段と,
データ(データブロック)が欠損している場合,再構成対象ストラップにおけるデータ(データブロック)(欠損しているデータブロック以外のデータブロック)および第1のパリティデータ(Pパリティ)用いて,当該欠損しているデータ(データブロック)を復元するか,第1のパリティデータ(Pパリティ)ではなく第2のパリティデータ(Qパリティ)を用いて,当該欠損しているデータ(データブロック)を復元するRAID機能部と,
第1のパリティ(Pパリティ)が欠損している場合,再構成対象ストライプにおけるデータ(データブロック)から第1の計算方法(XOR演算)により第1パリティ(Pパリティ)を再計算し,第2のパリティ(Qパリティ)が欠損している場合,再構成対象ストライプにおけるデータ(データブロック)から第2の計算方法(ガロア演算)により第2のパリティ(Qパリティ)を再計算するRAID機能部と
を有し,
m個のHDDのうち2台のHDDのうちの一方には第1のパリティデータ(Pパリティ),他方には当該第1のパリティデータ(Pパリティ)とは独立する第2のパリティデータ(Qパリティ)を格納するものであり、
m台のHDDのうち,任意の2台のHDDが故障した場合であってもデータを完全に復元することができる,
ことを特徴とするRAIDコントローラ。」

第4.対比
引用発明と本願発明とを対比する。

あ.引用発明の「外部から送信されるI/O要求を取得し,当該I/O要求に応じてHDD30-1?30-6に対するデータのライト/リード処理を実行するRAIDコントローラ」は,当該HDDやRAIDコントローラから構成されるシステムとみれるので,本願発明の「システム」に対応する。

い.引用発明の「第1の記憶装置に格納されているデータ(データブロック)」は「2台以上の第1の記憶装置」に格納されているので,本願発明の「複数の単位のデータストレージ情報」に相当し,引用発明の「第1のパリティデータ(Pパリティ)」および「第2のパリティデータ(Qパリティ)」は,データ(データブロック)を復元のために用いられるので,本願発明の「より高いレベルの冗長な情報の単位」に相当する。また,引用発明の「前記第1の計算方法(XOR演算)と数学的に独立し複雑な第2の計算方法(ガロア演算)」は「第1の計算方法(XOR演算)」と数学的に独立していることから各々独立して計算しているといえ,引用発明の「計算された第1のパリティデータ(Pパリティ)および第2のパリティデータ(Qパリティ)の値の範囲は各データブロックの値の範囲と1バイト単位で対応」していることから,復元のために用いる「第1のパリティデータ(Pパリティ)」および「第2のパリティデータ(Qパリティ)」は「データ(データブロック)」が利用可能となる順序と対応する順序となると解せる。そして,引用発明の「計算し,格納する手段」は,本願発明の「処理する手段」に相当する。
そうすると,引用発明の「データ(データブロック)を格納する2台以上の第1の記憶装置と,前記第1の記憶装置に格納されているデータ(データブロック)を復元するために用いられる第1のパリティデータ(Pパリティ)であって,当該第1の記憶装置に格納されているデータ(データブロック)から第1の計算方法(XOR演算)によって第1のパリティデータ(Pパリティ)を計算し,格納する手段と,前記第1のパリティデータ(Pパリティ)とは異なる第2のパリティデータ(Qパリティ)であって,当該第1の記憶装置に格納されているデータ(データブロック)から前記第1の計算方法(XOR演算)と数学的に独立し複雑な第2の計算方法(ガロア演算)によって第2のパリティデータ(Qパリティ)を計算し,格納する手段」と,本願発明の「複数の単位のデータストレージ情報の各々を独立して計算し,当該複数の単位のデータストレージ情報の各々が利用可能となる順序に対応する順序で1若しくはそれ以上のより高いレベルの冗長な情報の単位を処理する手段」とに実質的な差異はない。

う.引用発明の「欠損しているデータ(データブロック)」は本願発明の「訂正不可能なデータストレージ情報の単位」に相当し,引用発明の「再構成対象ストラップにおけるデータ(データブロック)(欠損しているデータブロック以外のデータブロック)」は本願発明の「訂正不可能なデータストレージ情報の単位」に相当し,引用発明の「データ(データブロック)が欠損している場合,再構成対象ストラップにおけるデータ(データブロック)(欠損しているデータブロック以外のデータブロック)および第1のパリティデータ(Pパリティ)を用い」ることは,「欠損しているデータ(データブロック)」(訂正不可能なデータストレージ情報の単位)か,「欠損しているデータブロック以外のデータブロック」(訂正不可能なデータストレージ情報の単位以外)であるかを決定しているといえる。そうすると,引用発明の「データ(データブロック),第1のパリティデータ(Pパリティ)および第2のパリティデータ(Qパリティ)のいずれかが欠損している状態の再構成対象ストライプについてパリティ置換処理が実行されていないと判定する手段と,データ(データブロック)が欠損している場合,再構成対象ストラップにおけるデータ(データブロック)(欠損しているデータブロック以外のデータブロック)および第1のパリティデータ(Pパリティ)を用い」ることと,本願発明の「訂正不可能なデータストレージ情報の単位の各々に関連付けられたより低いレベルの冗長な情報に少なくとも部分的に基づいて,前記複数の単位のデータストレージ情報のうち特定の1若しくはそれ以上を訂正不可能なデータストレージ情報の単位として決定する手段であって,前記訂正不可能なデータストレージ情報の単位以外の前記複数の単位のデータストレージ情報は訂正可能なデータストレージ情報の単位である,前記決定する手段」とは,後記する点で相違するものの,
“前記複数の単位のデータストレージ情報のうち特定の1若しくはそれ以上を訂正不可能なデータストレージ情報の単位として決定する手段であって,前記訂正不可能なデータストレージ情報の単位以外の前記複数の単位のデータストレージ情報は訂正可能なデータストレージ情報の単位である,前記決定する手段”の点で共通する。

え.引用発明の「再構成対象ストラップにおけるデータ(データブロック)(欠損しているデータブロック以外のデータブロック)」は本願発明の「訂正可能なデータストレージ情報の単位」に相当し,引用発明の「欠損しているデータ(データブロック)」は本願発明の「訂正不可能なデータストレージ情報の単位」に相当し,引用発明の「再構成対象ストラップにおけるデータ(データブロック)(欠損しているデータブロック以外のデータブロック)および第1のパリティデータ(Pパリティ)用いて,当該欠損しているデータ(データブロック)を復元」することは,「再構成対象ストラップにおけるデータ(データブロック)(欠損しているデータブロック以外のデータブロック)および第1のパリティデータ(Pパリティ)」は「欠損しているデータ(データブロック)」の各々が利用可能となる順序に対応する順序で処理(復元)する必要があると解せる。引用発明の「当該欠損しているデータ(データブロック)を復元するRAID機能部」は,「第1のパリティデータ(Pパリティ)」または「第2のパリティデータ(Qパリティ)」を用いて復元のための計算をしているといえるので,本願発明の「計算する手段」に相当する。
そうすると,引用発明の「データ(データブロック)が欠損している場合,再構成対象ストラップにおけるデータ(データブロック)(欠損しているデータブロック以外のデータブロック)および第1のパリティデータ(Pパリティ)用いて,当該欠損しているデータ(データブロック)を復元するか,第1のパリティデータ(Pパリティ)ではなく第2のパリティデータ(Qパリティ)を用いて,当該欠損しているデータ(データブロック)を復元するRAID機能部」と本願発明の「前記訂正可能なデータストレージ情報の単位の各々が利用可能となる順序に対応する順序で前記訂正可能なデータストレージ情報の単位の各々を独立して処理する手段を少なくとも部分的に介して前記訂正不可能なデータストレージ情報の単位の訂正された単位を計算する手段」とに実質的な差異はない。

お.引用発明の「計算し,格納する手段」は通常のライト/リード処理を実行する際に行われるものと解することができ,前記い.の検討から本願発明の「処理する手段」に相当し,引用発明の「復元するRAID機能部」は,再構成処理の際に行われるものと解することができ,前記え.の検討より,本願発明の「計算する手段」に相当する。そうすると,引用発明の「計算し,格納する手段」における順序は「復元するRAID機能部」における順序とは異なるものであるといえる。また,引用発明の「第1のパリティデータ(Pパリティ)」および「第2のパリティデータ(Qパリティ)」を計算する「第1の計算方法(XOR演算)」および「第2の計算方法(ガロア演算)」における計算の順序は,引用発明の「欠損しているデータ(データブロック)を復元」するための計算の順序とは異なるものが含まれることは自明である。
そうすると,引用発明の「計算し,格納する手段」および「復元するRAID機能部」は,計算する順序が異なるといえるので,本願発明の「前記処理する手段における前記順序は前記計算する手段における前記順序とは異なるもの」であることとに実質的な差異はない。

か.引用発明の「第1のパリティデータ(Pパリティ)」,「第2のパリティデータ(Qパリティ)」は,本願発明の「第1の部分」,「第2の部分」にそれぞれ相当する。そうすると,引用発明の「計算された第1のパリティデータ(Pパリティ)および第2のパリティデータ(Qパリティ)の値」と本願発明の「前記より高いレベルの冗長な情報は,第1の部分と第2の部分を有するものであり」とに実質的な差異はない。

き.引用発明の「第1のパリティデータ(Pパリティ)とは異なる第2のパリティデータ(Qパリティ)」は「前記第1の計算方法(XOR演算)と数学的に独立し複雑な第2の計算方法(ガロア演算)によって第2のパリティデータ(Qパリティ)を計算する」ことにより得られる計算値であり,前記「データ(データブロック)」は「コンテンツ」とみることができる。一方,本願発明の「コンテンツで乗算された,前記データストレージ情報の単位の各々に対するゼロではない固有の定数値の加重和」は,上位概念では「コンテンツで計算された,前記データストレージ情報の単位の各々に対する計算値」といえる。してみれば,引用発明の「前記第1の記憶装置に格納されているデータ(データブロック)を復元するために用いられる前記第1のパリティデータ(Pパリティ)とは異なる第2のパリティデータ(Qパリティ)であって,当該第1の記憶装置に格納されているデータ(データブロック)から前記第1の計算方法(XOR演算)と数学的に独立し複雑な第2の計算方法(ガロア演算)によって第2のパリティデータ(Qパリティ)を計算し,格納する手段」と本願発明の「処理する手段は,前記より高いレベルの冗長な情報の単位の少なくとも一部分として,前記データストレージ情報の単位のコンテンツで乗算された,前記データストレージ情報の単位の各々に対するゼロではない固有の定数値の加重和を蓄積する手段」とは,後記する点で相違するものの,
“処理する手段は,前記より高いレベルの冗長な情報の単位の少なくとも一部分として,前記データストレージ情報の単位のコンテンツで計算された,前記データストレージ情報の単位の各々に対する計算値を蓄積する手段”の点で共通する。

く.本願発明の「加重和」は、上位概念で「計算値」といえることから、引用発明の「m個のHDDのうち2台のHDDのうちの一方には第1のパリティデータ(Pパリティ),他方には当該第1のパリティデータ(Pパリティ)とは独立する第2のパリティデータ(Qパリティ)を格納するものであり、m台のHDDのうち,任意の2台のHDDが故障した場合であってもデータを完全に復元することができる」ことと,本願発明の「前記加重和を蓄積する手段は,前記データストレージ情報の単位のうちの2つまで前記加重和から選択的に除外することが可能であ」ることとは,後記する点で相違するものの,
“前記計算値を蓄積する手段は,前記データストレージ情報の単位のうちの2つまで前記計算値から選択的に除外することが可能であ”る点で共通する。

け.引用発明の「第1のパリティ(Pパリティ)が欠損している場合,再構成対象ストライプにおけるデータ(データブロック)から第1の計算方法(XOR演算)により第1パリティ(Pパリティ)を再計算し,第2のパリティ(Qパリティ)が欠損している場合,再構成対象ストライプにおけるデータ(データブロック)から第2の計算方法(ガロア演算)により第2のパリティ(Qパリティ)を再計算するRAID機能部」において,「第1のパリティ(Pパリティ)が欠損している場合」と「第2のパリティ(Qパリティ)が欠損している場合」とは独立した事象であり,第1のパリティ(Pパリティ)のXOR演算と第2のパリティ(Qパリティ)のガロア演算とは数学的に独立していることから,独立したタイミング(任意の順序)で計算できることは明らかである。
そうすると,引用発明の「第1のパリティ(Pパリティ)が欠損している場合,再構成対象ストライプにおけるデータブロックからXOR演算により第1パリティ(Pパリティ)を再計算し,第2のパリティ(Qパリティ)が欠損している場合,再構成対象ストライプにおけるデータブロックからガロア演算により第2のパリティ(Qパリティ)を再計算する」ことと,本願発明の「前記より高いレベルの冗長な情報の部分は,任意の順序で計算可能である」こととに実質的な差異はない。

前記あ.?け.の対比によれば,本願発明と引用発明とは,次の点で一致し,そして,相違する。

[一致点]
システムであって,
複数の単位のデータストレージ情報の各々を独立して計算し,当該複数の単位のデータストレージ情報の各々が利用可能となる順序に対応する順序で1若しくはそれ以上のより高いレベルの冗長な情報の単位を処理する手段と,
前記複数の単位のデータストレージ情報のうち特定の1若しくはそれ以上を訂正不可能なデータストレージ情報の単位として決定する手段であって,前記訂正不可能なデータストレージ情報の単位以外の前記複数の単位のデータストレージ情報は訂正可能なデータストレージ情報の単位である,前記決定する手段と,
前記訂正可能なデータストレージ情報の単位の各々が利用可能となる順序に対応する順序で前記訂正可能なデータストレージ情報の単位の各々を独立して処理する手段を少なくとも部分的に介して前記訂正不可能なデータストレージ情報の単位の訂正された単位を計算する手段と
を有し,
前記処理する手段における前記順序は前記計算する手段における前記順序とは異なるものであり,
前記より高いレベルの冗長な情報は,第1の部分と第2の部分を有するものであり,
前記処理する手段は,前記より高いレベルの冗長な情報の単位の少なくとも一部分として,前記データストレージ情報の単位のコンテンツで計算された,前記データストレージ情報の単位の各々に対する計算値を蓄積する手段を含み,
前記計算値を蓄積する手段は,前記データストレージ情報の単位のうちの2つまで前記計算値から選択的に除外することが可能であり,
前記より高いレベルの冗長な情報の部分は,任意の順序で計算可能である,システム。

〈相違点1〉
訂正不可能なデータストレージ情報の単位として決定する手段として,本願発明は「訂正不可能なデータストレージ情報の単位の各々に関連付けられたより低いレベルの冗長な情報に少なくとも部分的に基づいて」決定しているのに対し,引用発明は,そのような事項を特定していない点。

〈相違点2〉
処理する手段として,前記より高いレベルの冗長な情報の単位の少なくとも一部分として,データストレージ情報の単位のコンテンツで計算された,データストレージ情報の単位の各々に対する計算値を蓄積する点に関し,本願発明は,コンテンツで「乗算された」,前記データストレージ情報の単位の各々に対する「ゼロではない固有の定数値の加重和」を蓄積するのに対し,引用発明は,そのような事項を特定していない点。

〈相違点3〉
計算値を蓄積する手段として,データストレージ情報の単位のうちの2つまで計算値から選択的に除外することが可能である点に関し,本願発明は「加重和」を蓄積する手段は,データストレージ情報の単位のうちの2つまで「加重和から」選択的に除外することが可能であるのに対し,引用発明は,そのような事項を特定していない点。

第5.当審の判断
1.相違点1について
引用文献2には,SSDに係り,BCH訂正のようなECCが,パリティを含めて,それぞれのセクタの上に起こり,そして訂正不可能な状態が,コンテンツのXOR をとることによるECC回復のセカンドレベルを引き起こすために用いられる技術であって,スロット00から78までの任意のページの任意のセクタにおける訂正不可能なエラー(訂正不可能なデータストレージ情報の単位の各々)に関連付けられたBCH訂正のようなECC(より低いレベルの冗長な情報)に少なくとも部分的に基づいて,エラー状態にあるもの以外のページのすべてからそのセクタ番号を読んで,そして欠けているコンテンツを再生する(複数の単位のデータストレージ情報のうち特定の1若しくはそれ以上を訂正不可能なデータストレージ情報の単位として決定する)手段であって,1つのパリティスロット79を持つ実施形態において,スロット00から78までの任意のページの任意のセクタにおける訂正不可能なエラー(訂正不可能なデータストレージ情報の単位以外の前記複数の単位のデータストレージ情報は訂正可能なデータストレージ情報の単位)であることに相当する技術が示されている。
また,参考文献4には,ドライブ部からセクタ単位にデータ(データストレージ情報の単位)を読み出し,読み出されたセクタデータごと(データストレージ情報の単位の各々)に,付与されているBCRC(より低いレベルの冗長な情報)を用いて誤りがあるか否かを検査し,誤りを検出した場合に,セクタデータ(データストレージ情報の単位の各々)に付与されているBECC(より高いレベルの冗長な情報)を用いて,かかるセクタデータの誤りを訂正し,セクタデータの誤り訂正処理にエラーが発生(訂正不可能なデータストレージ情報の単位として決定)した場合,リトライ処理を行うか,エラー通知を行う技術が示されている。
即ち,訂正不可能なデータストレージ情報の単位として決定する手段として,訂正不可能なデータストレージ情報の単位の各々に関連付けられたより低いレベルの冗長な情報に少なくとも部分的に基づいて決定させることは,冗長な情報を扱う装置において,周知技術である。
そうすると,引用発明において,データブロックが欠損している場合(訂正不可能なデータブロック)を判断する手段として,当該周知技術を用いることは当業者が容易になし得ることである。

2.相違点2について
引用文献3には,RAID6におけるパリティQについて、データDi(コンテンツ)で乗算された,ストライプ内のストリップ(データストレージ情報の単位)の各々に対するストリップ番号iに対応して予め定められた重み付け定数(ゼロではない固有の定数値)の【数式3】のΣ(加重和)に相当する技術が示されている。
してみれば,引用文献3の「RAID6におけるパリティQ」は引用発明の「第2のパリティデータ(Qパリティ)」に相当するので、引用発明の「第2のパリティデータ(Qパリティ)」も【数式3】のΣ(加重和)と解することができる。そうすると、引用発明の「計算し、格納する手段」(処理する手段)において,より高いレベルの冗長な情報の単位の少なくとも一部分として,データストレージ情報の単位のコンテンツで計算された,データストレージ情報の単位の各々に対する計算値を蓄積する手段に関し,コンテンツで「乗算された」,データストレージ情報の単位の各々に対する「ゼロではない固有の定数値の加重和」を蓄積することは,前記引用文献3の技術を参酌することにより当業者が容易になし得ることである。

3.相違点3について
引用文献3には,RAID6におけるパリティQについて、データDi(コンテンツ)で乗算された,ストライプ内のストリップ(データストレージ情報の単位)の各々に対するストリップ番号iに対応して予め定められた重み付け定数(ゼロではない固有の定数値)の【数式3】のΣ(加重和)に相当する技術が示されている。
してみれば,引用文献3の「RAID6におけるパリティQ」は引用発明の「第2のパリティデータ(Qパリティ)」に相当するので、引用発明の「第2のパリティデータ(Qパリティ)」も【数式3】のΣ(加重和)と解することができる。そうすると、引用発明の「当該第1のパリティデータ(Pパリティ)とは独立する第2のパリティデータ(Qパリティ)を格納するものであり、m台のHDDのうち,任意の2台のHDDが故障した場合であってもデータを完全に復元すること」(計算値を蓄積する手段)において,データストレージ情報の単位のうちの2つまで計算値から選択的に除外することが可能である点に関し,「加重和」を蓄積する手段は,データストレージ情報の単位のうちの2つまで「加重和から」選択的に除外することが可能であると成すことは,前記引用文献3の技術を参酌することにより当業者が容易になし得ることである。

4.小括
前記1.ないし3.において検討したとおり,相違点1ないし3は格別なものではなく,本願発明によってもたらされる効果も,当業者であれば当然に予測可能なものに過ぎず格別なものとは認められない。

5.請求人の主張について
請求人は平成29年3月30日付けの意見書において「上記のように,HDDとSSDとは構造からデータ処理の仕組みまで全く異なります。したがって,たとえ当業者であったとしても,引用文献1および2を組み合わせることは想定し得ず,仮に組み合わせ得たとしても,引用文献1および2の開示を結合して請求項1に係る本願発明を想起することは到底できないものと思料致します。」と主張している。
引用文献1(段落【0141】)には「本実施形態においては,ディスクアレイ装置10が物理記憶装置としてHDDを有するものとして説明したが,例えば半導体記憶装置のような他の物理記憶装置を用いてRAID6を構成する場合についても容易に適用可能である」と記載されているように,RAID6を半導体記憶装置に用いることは当業者が適宜成し得ることである。また,本願発明は,HDD又はSSDの特徴となる態様を何ら特定しておらず,相違点1についても,HDD又はSSDの特徴となる態様を含んでいるものではない。すなわち,前記1.で検討したとおり,引用発明において,冗長データを扱う装置における周知技術を適用することに何ら困難性は認められない。
よって,請求人の主張は採用できない。

第6.むすび
したがって,本願発明は,本願の特許出願前に日本国内又は外国において頒布された刊行物に記載された発明又は電気通信回線を通じて公衆に利用可能となった発明に基づいて当業者が容易に発明をすることができたものであるので,特許法第29条第2項の規定により特許を受けることができない。

よって,結論のとおり審決する。
 
審理終結日 2017-05-02 
結審通知日 2017-05-09 
審決日 2017-05-31 
出願番号 特願2013-550554(P2013-550554)
審決分類 P 1 8・ 121- WZ (G06F)
最終処分 不成立  
前審関与審査官 滝谷 亮一  
特許庁審判長 石井 茂和
特許庁審判官 高木 進
辻本 泰隆
発明の名称 より高いレベルの冗長な情報の計算  
代理人 特許業務法人深見特許事務所  

プライバシーポリシー   セキュリティーポリシー   運営会社概要   サービスに関しての問い合わせ