【事件の表示】
　特願２０１６−　９９４００「データを格納するための方法およびデータを格納するための一時的でないコンピュータ読取可能記録媒体」拒絶査定不服審判事件〔平成２８年１２月２２日出願公開、特開２０１６−２１９０１３、請求項の数（２０）〕について、次のとおり審決する。
【結　論】
　原査定を取り消す。
　本願の発明は、特許すべきものとする。
【理　由】
第１　手続の経緯
　本願は，平成２８年５月１８日（パリ条約による優先権主張２０１５年５月１９日，米国，２０１５年６月３０日，米国）に出願された特許法第３６条の２第１項の規定による特許出願であって，平成２８年７月１３日付けで翻訳文が提出され，平成２９年５月２３日付けで拒絶理由通知がされ，平成２９年８月２８日付けで意見書が提出されるとともに手続補正がされ，平成３０年１月２６日付けで拒絶査定（原査定）がされ，これに対し，平成３０年６月４日に拒絶査定不服審判の請求がされたものである。
第２　原査定の概要
　原査定（平成３０年１月２６日付け拒絶査定）の概要は次のとおりである。
　本願請求項１−２０に係る発明は，以下の引用文献１，２に基づいて，その発明の属する技術の分野における通常の知識を有する者（以下，「当業者」という。）が容易に発明できたものであるから，特許法第２９条第２項の規定により特許を受けることができない。
引用文献等一覧
１．国際公開第２０１３／１４２６７３号
２．米国特許出願公開第２０１１／００９３６５０号明細書（周知技術を示す文献）
第３　本願発明
　本願請求項１−２０に係る発明（以下，それぞれ「本願発明１」−「本願発明２０」という。）は，平成２９年８月２８日付けの手続補正で補正された特許請求の範囲の請求項１−２０に記載された事項により特定される以下のとおりの発明である。
「　【請求項１】
　データを格納するための方法であって，
　ボールテッドメモリにおけるオープンデータページにフラグを書き込むことを含み，前記オープンデータページは第１のテーブルオブコンテンツ（ＴＯＣ）ビットおよび第１の物理アドレスを含み，前記方法はさらに，
　前記ボールテッドメモリにおけるオープンＴＯＣページに，前記フラグについてのテーブルオブコンテンツエントリ（ＴＥ）を書き込むことを含み，前記オープンＴＯＣページは第２のＴＯＣビットおよび第２の物理アドレスを含み，前記方法はさらに，
　前記オープンデータページが一杯であるという第１の判定を行うことと，
　前記第１の判定に基づいて，ソリッドステートメモリモジュールにおけるページに前記フラグを書き込むこととを含み，前記ページは前記第１の物理アドレスに関連付けられており，
　前記ソリッドステートメモリモジュールおよび前記ボールテッドメモリはストレージモジュールに位置する，方法。
　　【請求項２】
　前記オープンＴＯＣページに前記ＴＥを書き込む前に前記オープンデータページに第１のタグを書き込むことをさらに含み，前記オープンＴＯＣページにおける第２のタグは前記第２のＴＯＣビットおよび前記第２の物理アドレスを含む，請求項１に記載の方法。
　　【請求項３】
　前記第１の物理アドレスおよび前記第２の物理アドレスは，前記ソリッドステートメモリモジュールにおける同じブロックに位置し，関連付けられる，請求項１に記載の方法。
　　【請求項４】
　前記オープンＴＯＣページが一杯であるという第２の判定を行うことと，
　前記第２の判定に基づいて，前記第２の物理アドレスを第３の物理アドレスに置換することと，
　前記ソリッドステートメモリモジュールにおいて第２のページに前記ＴＥを書き込むこととをさらに含み，前記第２のページは前記第３の物理アドレスに関連付けられる，請求項１に記載の方法。
　　【請求項５】
　前記第１の物理アドレスおよび前記第３の物理アドレスは，前記ソリッドステートメモリモジュールにおける同じブロックに位置し，関連付けられる，請求項４に記載の方法。
　　【請求項６】
　前記ソリッドステートメモリモジュールはフラッシュメモリである，請求項１に記載の方法。
　　【請求項７】
　データを格納するための方法であって，
　ボールテッドメモリにおけるオープンデータページにフラグを書き込むことを含み，前記オープンデータページは第１のテーブルオブコンテンツ（ＴＯＣ）ビットおよび第１の物理アドレスを含み，前記方法はさらに，
　前記ボールテッドメモリにおけるオープンＴＯＣページに，前記フラグについての第１のテーブルオブコンテンツエントリ（ＴＥ）を書き込むことを含み，前記オープンＴＯＣページは，第２のＴＯＣビット，第２の物理アドレス，および第２のＴＥを含み，前記方法はさらに，
　前記ボールテッドメモリが位置するストレージモジュールについて電源障害のイベント通知を受け取ることを含み，
　前記イベント通知に応答して，
　　前記ストレージモジュールにおけるソリッドステートメモリモジュールにおける，前記第１の物理アドレスに関連付けられないページに前記フラグを書き込むことと，
　　前記ソリッドステートメモリモジュールにおける，前記第２の物理アドレスに関連付けられない第２のページに前記第１のＴＥおよび前記第２のＴＥを書き込むこととを含む，方法。
　　【請求項８】
　前記ストレージモジュールの電源をオンした後，
　　前記ソリッドステートメモリモジュールから制御モジュールのメモリへ前記ページおよび前記第２のページのコンテンツをロードすることと，
　　前記メモリにおける前記第１のＴＥを識別することと，
　　前記第２の物理アドレスおよび前記第１のＴＥの少なくとも一部に基づき第３の物理アドレスを決定することと，
　　前記第３の物理アドレスを使用して，前記フラグが前記メモリに位置することを判定することと，
　　前記ソリッドステートメモリモジュールおよび別のソリッドステートメモリモジュールからなる群から選択されたものにおいて，第４の物理アドレスへの前記フラグの書込を開始することとをさらに含む，請求項７に記載の方法。
　　【請求項９】
　前記ストレージモジュールの電源をオンした後，
　　前記ソリッドステートメモリモジュールから制御モジュールのメモリへ前記ページおよび前記第２のページのコンテンツをロードすることと，
　　前記メモリにおける前記第２のＴＥを識別することと，
　　前記第２の物理アドレスおよび前記第２のＴＥの少なくとも一部に基づき第３の物理アドレスを決定することと，
　　前記第３の物理アドレスを使用して，前記第３の物理アドレスに関連付けられる第２のフラグが前記メモリに位置していないと判定することと，
　　前記ソリッドステートメモリモジュールおよび別のソリッドステートメモリモジュールからなる群から選択されるものにおいて，別の位置に前記第２のフラグを再配置するようガーベッジコレクション動作を開始することとをさらに含む，請求項７に記載の方法。
　　【請求項１０】
　前記ページおよび前記第２のページは前記ソリッドステートメモリモジュールの留保部分に関連付けられ，前記第２のフラグは前記ソリッドステートメモリモジュールにおける第３のページに格納され，前記第３のページは前記ソリッドステートメモリモジュールの非留保部分に関連付けられる，請求項９に記載の方法。
　　【請求項１１】
　前記ソリッドステートメモリモジュールはフラッシュメモリであり，前記留保部分はシングルレベルセル（ＳＬＣ： single-level cell）モードで動作しており，前記非留保部分はマルチレベルセル（ＭＬＣ： multi-level cell）モードで動作している，請求項１０に記載の方法。
　　【請求項１２】
　前記ページおよび前記第２のページは，前記ソリッドステートメモリモジュールの留保部分に関連付けられる，請求項７に記載の方法。
　　【請求項１３】
　前記ソリッドステートメモリモジュールはフラッシュメモリであり，前記ソリッドステートメモリモジュールの留保部分はシングルレベルセル（ＳＬＣ： single-level cell）モードで動作している，請求項７に記載の方法。
　　【請求項１４】
　前記ページおよび前記第２のページは，前記ソリッドステートメモリモジュールの最下位ビット（ＬＳＢ）ページである，請求項７に記載の方法。
　　【請求項１５】
　コンピュータ読取可能プログラムコードを含むデータを格納するための一時的でないコンピュータ読取可能記録媒体であって，前記コンピュータ読取可能プログラムコードは，
　ボールテッドメモリにおけるオープンデータページにフラグを書き込むことを行うためのものであり，前記オープンデータページは第１のテーブルオブコンテンツ（ＴＯＣ）ビットおよび第１の物理アドレスを含み，前記コンピュータ読取可能プログラムコードはさらに，
　前記ボールテッドメモリにおけるオープンＴＯＣページに，前記フラグについての第１のテーブルオブコンテンツエントリ（ＴＥ）を書き込むことを行うためのものであり，前記オープンＴＯＣページは第２のＴＯＣビット，第２の物理アドレス，および第２のＴＥを含み，前記コンピュータ読取可能プログラムコードはさらに，
　前記ボールテッドメモリが位置するストレージモジュールについて電源障害のイベント通知を受け取ることを行うためのものであり，
　前記イベント通知に応答して，
　　前記ストレージモジュールにおけるソリッドステートメモリモジュールにおける，前記第１の物理アドレスに関連付けられないページに前記フラグを書き込むことと，
　　前記ソリッドステートメモリモジュールにおける，前記第２の物理アドレスに関連付けられない第２のページに前記第１のＴＥおよび前記第２のＴＥを書き込むこととを行うためのものである，一時的でないコンピュータ読取可能記録媒体。
　　【請求項１６】
　前記ストレージモジュールの電源をオンした後，
　　前記ソリッドステートメモリモジュールから制御モジュールのメモリへ前記ページおよび前記第２のページのコンテンツをロードすることと，
　　前記メモリにおける前記第１のＴＥを識別することと，
　　前記第２の物理アドレスおよび前記第１のＴＥの少なくとも一部に基づき第３の物理アドレスを決定することと，
　　前記第３の物理アドレスを使用して，前記フラグがメモリに位置することを判定することと，
　　前記ソリッドステートメモリモジュールおよび別のソリッドステートメモリモジュールからなる群から選択されたものにおいて，第４の物理アドレスへの前記フラグの書込を開始することとを行うためのコンピュータ読取可能プログラムコードをさらに含む，請求項１５に記載の一時的でないコンピュータ読取可能記録媒体。
　　【請求項１７】
　前記ストレージモジュールの電源をオンした後，
　　前記ソリッドステートメモリモジュールから制御モジュールのメモリへ前記ページおよび前記第２のページのコンテンツをロードすることと，
　　前記メモリにおける前記第２のＴＥを識別することと，
　　前記第２の物理アドレスおよび前記第２のＴＥの少なくとも一部に基づき第３の物理アドレスを決定することと，
　　前記第３の物理アドレスを使用して，前記第３の物理アドレスに関連付けられる第２のフラグが前記メモリに位置していないと判定することと，
　　前記ソリッドステートメモリモジュールおよび別のソリッドステートメモリモジュールからなる群から選択されるものにおいて，別の位置に前記第２のフラグを再配置するようガーベッジコレクション動作を開始することとを行うためのコンピュータ読取可能プログラムコードをさらに含む，請求項１５に記載の一時的でないコンピュータ読取可能記録媒体。
　　【請求項１８】
　前記ページおよび前記第２のページは前記ソリッドステートメモリモジュールの留保部分に関連付けられ，前記第２のフラグは前記ソリッドステートメモリモジュールにおける第３のページに格納され，前記第３のページは前記ソリッドステートメモリモジュールの非留保部分に関連付けられる，請求項１７に記載の一時的でないコンピュータ読取可能記録媒体。
　　【請求項１９】
　前記ソリッドステートメモリモジュールはフラッシュメモリであり，前記留保部分はシングルレベルセル（ＳＬＣ： single-level cell）モードで動作しており，前記非留保部分はマルチレベルセル（ＭＬＣ： multi-level cell）モードで動作している，請求項１８に記載の一時的でないコンピュータ読取可能記録媒体。
　　【請求項２０】
　前記ページおよび前記第２のページは，前記ソリッドステートメモリモジュールの最下位ビット（ＬＳＢ）ページである，請求項１５に記載の一時的でないコンピュータ読取可能記録媒体。」
第４　引用文献，引用発明等
１．引用文献１について
（１）原査定の拒絶の理由に引用された上記引用文献１には，図面とともに次の事項が記載されている。なお，訳には，パテントファミリーである特表２０１５−５１５６７８号公報の記載を参照した。（下線は，参考のために当審で付与したものである。以下，同様。）
Ａ　「[0044]　FIGS. 2A-2D  show embodiments of storage appliances in accordance with one or more embodiments of the invention. Referring to  FIG. 2A , 
the storage appliance includes a control module ( 200 ) and a storage module group ( 202 )
（途中省略）
[0053]　 In one embodiment of the invention, the processor (via the switch fabric) is configured to offload various types of processing to the FPGA (212). In one embodiment of the invention, the FPGA (212) includes functionality to calculate checksums for data that is being written to the storage module(s) and/or data that is being read from the storage module(s). Further, the FPGA (212) may include functionality to calculate P and/or Q parity information for purposes of storing data in the storage module(s) using a RAID scheme (e.g., RAID 2 - RAID 6) and/or functionality to perform various calculations necessary to recover corrupted data stored using a RAID scheme (e.g., RAID 2 - RAID 6). In one embodiment of the invention, 
the storage module group (202) includes one or more storage modules (214 A, 214N) each configured to store data
（途中省略）
[0067]　FIG. 3  shows a storage module in accordance with one or more embodiments of the invention. 
The storage module ( 320 ) includes
memory ( 324 ), and one or more solid state memory modules ( 330 A,  330 N)
（途中省略）
[0070]　In one embodiment of the invention, 
the memory ( 324 ) may be logically or physically partitioned into vaulted memory ( 326 ) and cache ( 328 )
the storage module controller ( 322 ) is configured to write out the entire contents of the vaulted memory ( 326 ) to one or more of the solid state memory modules ( 330 A,  330 N) in the event of notification of a power failure
（訳：［００４４］
　図２Ａ〜図２Ｄは，本発明の１つ以上の実施形態に従ったストレージ機器の実施形態を示す。図２Ａを参照して，
ストレージ機器は，制御モジュール（２００）およびストレージモジュールグループ（２０２）を含む
（途中省略）
［００５３］
　本発明の一実施形態では，（スイッチファブリックを介する）プロセッサは，ＦＰＧＡ（２１２）にさまざまなタイプの処理をオフロードするように構成される。本発明の一実施形態では，ＦＰＧＡ（２１２）は，ストレージモジュールに書き込まれているデータおよび／またはストレージモジュールから読み出されているデータについてチェックサムを計算する機能を含む。さらに，ＦＰＧＡ（２１２）は，ＲＡＩＤスキーム（たとえばＲＡＩＤ２〜ＲＡＩＤ６）を使用してストレージモジュールにデータを格納するためにＰおよび／もしくはＱパリティー情報を計算する機能，ならびに／またはＲＡＩＤスキーム（たとえばＲＡＩＤ２〜ＲＡＩＤ６）を使用して格納された破損データを回復するのに必要なさまざまな計算を行なう機能を含み得る。本発明の一実施形態において，
ストレージモジュールグループ（２０２）は，データを格納するよう各々が構成される１つ以上のストレージモジュール（２１４Ａ，２１４Ｎ）を含む
（途中省略）
［００６７］
　図３は，本発明の１つ以上の実施形態に従ったストレージモジュールを示す。
ストレージモジュール（３２０）は，
メモリ（３２４）および１つ以上のソリッドステートメモリモジュール（３３０Ａ，３３０Ｎ）を含む
（途中省略）
［００７０］
　本発明の一実施形態において，
メモリ（３２４）は，ボールテッドメモリ（３２６）およびキャッシュ（３２８）に論理的または物理的にパーティショニングされ得る
ストレージモジュールコントローラ（３２２）は，ストレージモジュールにおける停電の通知の場合
，ボールテッドメモリ（３２６）のすべての内容をソリッドステートメモリモジュール（３３０Ａ，３３０Ｎ）の１つ以上に書き込むように構成される
Ｂ　「[0074]　FIG. 4A  shows a storage module in accordance with one or more embodiments of the invention. 
The solid state memory module ( 400 ) includes one or more blocks
[0075]　FIG. 4B  shows a block in accordance with one or more embodiments of the invention. More specifically, 
each block ( 402 ) includes one or more pages
each page within a block is either a Frag Page (see  FIG. 4C ) or a TOC Page (see  FIG. 4D )
[0076]　FIG. 4C  shows a frag page in accordance with one or more embodiments of the invention. In one embodiment of the invention, 
the frag page includes one or more frags
the term “frag” and “user data” are used interchangeably
[0077]　FIG. 4D  shows a TOC page in accordance with one or more embodiments of the invention. In one embodiment of the invention, 
the TOC page ( 406 ) includes one or more TOC entries, where each of the TOC entries includes metadata for a given frag
the TOC page is associated with a block and only includes TOC entries for frags in that block
（訳：［００７４］
　図４Ａは，本発明の１つ以上の実施形態に従ったストレージモジュールを示す。
ソリッドステートメモリモジュール（４００）は１つ以上のブロックを含む
［００７５］
　図４Ｂは，本発明の１つ以上の実施形態に従ったブロックを示す。より具体的には，
各ブロック（４０２）は１つ以上のページを含む
ブロック内の各ページは，フラグページ（Frag Page）（図４Ｃ参照）またはＴＯＣページ（図４Ｄ参照）のいずれかである
［００７６］
　図４Ｃは，本発明の１つ以上の実施形態に従ったフラグページを示す。本発明の一実施形態では，
フラグページは１つ以上のフラグ（frag）を含む
「フラグ」および「ユーザデータ」という用語は，交換可能に使用される
［００７７］
　図４Ｄは，本発明の１つ以上の実施形態に従ったＴＯＣページを示す。本発明の一実施形態では，
ＴＯＣページ（４０６）は，１つ以上のＴＯＣエントリを含んでおり，ＴＯＣエントリの各々は，所与のフラグについてのメタデータを含んでいる
ＴＯＣページは，ブロックに関連付けられ，当該ブロックにおけるフラグについてのＴＯＣエントリのみを含む
Ｃ　「[0086]　In one embodiment of the invention, the control module also tracks the number of TOC entries ( 506 ) per block ( 504 ). More specifically, 
each time a frag is written to vaulted memory, a TOC entry for the frag is created. The control module tracks with which block the newly created TOC entry is associated and uses this information to generate TOC pages. For example, the control module uses the aforementioned information to determine whether the cumulative size of all TOC entries associated with a given block, which have not been written to a TOC page, equal a page size in the block. If the cumulative size of all TOC entries associated with a given block, which have not been written to a TOC page, equal a page size in the block, then the control module may generate a TOC page using the aforementioned entries and initiate the writing of the TOC page to a storage module
[0087]　FIGS. 6A-6C  show flowcharts in accordance with one or more embodiments of the invention. More specifically,  FIGS. 6A-6C  show 
a method for storing user data in a storage appliance
[0088]　Referring to  FIG. 6A , in step  600 , 
the client writes a write command (write request) to the submission queue (SQ) of the processor in a control module ( 208  in  FIG. 2A )
[0089]　In step  602 , client writes a new SQ tail to the SQ Tail doorbell register. In one embodiment of the invention, by writing to the SQ Tail doorbell register, the client notifies the processor that there is a new command to process in its SQ.
[0090]　In step  604 , 
the processor obtains the write command from the SQ. In step  606 , the processor determines the physical address(es) at which to write the user data (as part of a frag)
the physical address(es) corresponds to a location in the solid state memory module
the processor selects two physical addresses in which to write copies of the user data, where each of the physical addresses is in a separate solid state memory module
[0091]　In step  608 , 
the processor programs the DMA engine to issue a write to a multicast address
the multicast address is associated with a multicast group, where the multicast group specifies a first memory location in the memory in the control module, a second memory location in a first vault memory, and a third memory location in a second vaulted memory
the first vaulted memory is located in the same storage module as the solid state memory module that includes the physical address specified by the processor
the second vaulted memory is determined in a similar manner
[0092]　In step  610 , 
the DMA engine reads the user data from the source address in client memory, and writes the data to the multicast address as directed by the control module
（途中省略）
[0094]　Continuing with  FIG. 6A , in step  612 , a TOC entry is created for each copy of user data stored in vaulted memory. Further, the page and byte specified in each TOC entry corresponds to the page and byte portions of the corresponding physical address identified in step  606 . Accordingly, 
while the frag is not written to the physical address in the solid state memory module at the time the corresponding TOC entry is created, the frag (as part of a frag page) is intended to be written to the physical address at a later point in time
[0095]　Continuing with  FIG. 6A , in step  614 , 
the TOC entries created
are stored in vaulted memory
each TOC entry is stored in the vaulted memory of the storage module and includes the physical address at which the corresponding frag will be written at a later point in time
（途中省略）
[0098]　Referring to  FIG. 6B , in step  626 , 
the processor in the control module initiates the writing of the copies of the user data from the vaulted memory to the physical address identified in step  608（当審注：「608」は「606」の誤記と認められる。）
[0099]　In step  628 , following step  626 , the processor in the control module requests that all copies of the user data in vaulted memory that correspond to the user data written to the solid state memory module in step  626  are removed. In step  630 , a confirmation of the removal is sent to the processor in the control module by each of the storage modules that included a copy of the user data (written in step  626 ) in their respective vaulted memory.」
（訳：［００８６］
　本発明の一実施形態では，制御モジュールはまた，ブロック（５０４）ごとのＴＯＣエントリ（５０６）の数をトラッキングする。より具体的には，
フラグがボールテッドメモリに書き込まれるたびに，フラグについてのＴＯＣエントリが作成される。制御モジュールは，新しく作成されたＴＯＣエントリが関連付けられるブロックをトラッキングし，この情報を使用してＴＯＣページを生成する。たとえば，制御モジュールは上記の情報を使用して，ＴＯＣページに書き込まれていない，所与のブロックに関連付けられるすべてのＴＯＣエントリの累積サイズがブロックにおけるページサイズと等しいかどうか決定する。ＴＯＣページに書き込まれていない，所与のブロックに関連付けられるすべてのＴＯＣエントリの累積サイズがブロックにおけるページサイズと等しい場合，制御モジュールは上記のエントリを使用してＴＯＣページを生成し，ストレージモジュールへのＴＯＣページの書き込みを開始する
［００８７］
　図６Ａ〜図６Ｃは，本発明の１つ以上の実施形態に従ったフローチャートを示す。より具体的には，図６Ａ〜図６Ｃは，本発明の１つ以上の実施形態に従った，
ストレージ機器にユーザデータを格納するための方法
［００８８］
　図６Ａを参照して，ステップ６００において，
クライアントは，制御モジュールにおけるプロセッサ（図２Ａ中の２０８）の送信キュー（ＳＱ）に書込コマンド（書込要求）を書き込む
［００８９］
　ステップ６０２では，クライアントはＳＱテールドアベルレジスタに新しいＳＱテールを書き込む。本発明の一実施形態において，ＳＱテールドアベルレジスタに書き込むことによって，クライアントは，そのＳＱにおいて処理するべき新しいコマンドが存在するとプロセッサに通知する。
［００９０］
　ステップ６０４では，
プロセッサはＳＱから書込コマンドを取得する。ステップ６０６では，プロセッサは，（フラグの一部として）ユーザデータを書き込むべき物理アドレスを決定する
物理アドレスはソリッドステートメモリモジュールにおける位置に対応する
プロセッサは，ユーザデータのコピーを書き込むべき２つの物理アドレスを選択する。当該物理アドレスの各々は別個のソリッドステートメモリモジュールに存在する
［００９１］
　ステップ６０８では，
プロセッサは，マルチキャストアドレスへの書込を発行するようにＤＭＡエンジンをプログラムする
マルチキャストアドレスはマルチキャストグループに関連付けられており，当該マルチキャストグループは，制御モジュールにおけるメモリ中の第１のメモリ位置，第１のボールテッドメモリにおける第２のメモリ位置，および第２のボールテッドメモリにおける第３のメモリ位置を特定する
第１のボールテッドメモリは，プロセッサによって特定される物理アドレスを含むソリッドステートメモリモジュールと同じストレージモジュールに位置する
第２のボールテッドメモリは，同様の態様で決定される
［００９２］
　ステップ６１０では，
ＤＭＡエンジンは，クライアントメモリにおけるソースアドレスからユーザデータを読み出し，制御モジュールによって指示されるようにマルチキャストアドレスにデータを書き込む
（途中省略）
［００９４］
　引き続き図６Ａを参照して，ステップ６１２では，ボールテッドメモリに格納されるユーザデータのコピーごとにＴＯＣエントリが作成される。さらに，各ＴＯＣエントリにおいて特定されるページおよびバイトは，ステップ６０６において識別される対応する物理アドレスのページおよびバイト部分に対応する。したがって，
フラグは，対応するＴＯＣエントリが作成される時に，ソリッドステートメモリモジュールにおける物理アドレスに書き込まれないが，（フラグページの一部としての）フラグは，その後のある時点で，物理アドレスに書き込まれるように意図される
［００９５］
　引き続き図６Ａを参照して，ステップ６１４では，ステップ６１２において
作成されたＴＯＣエントリは，ボールテッドメモリに格納される
各ＴＯＣエントリは，ストレージモジュールのボールテッドメモリに格納され，対応するフラグがその後のある時点で書き込まれる物理アドレスを含む
（途中省略）
［００９８］
　図６Ｂを参照して，ステップ６２６では，
制御モジュールにおけるプロセッサは，ボールテッドメモリからステップ６０８（当審注：「６０８」は「６０６」の誤記と認められる。）で識別された物理アドレスへのユーザデータのコピーの書き込みを開始する
［００９９］
　ステップ６２６の後，ステップ６２８では，制御モジュールにおけるプロセッサは，ステップ６２６においてソリッドステートメモリモジュールに書き込まれたユーザデータに対応する，ボールテッドメモリにおけるユーザデータのすべてのコピーが除去されることを要求する。ステップ６３０では，それぞれのボールテッドメモリにおいて（ステップ６２６において書き込まれた）ユーザデータのコピーを含んでいたストレージモジュールの各々によって，除去確認が制御モジュールにおけるプロセッサに送信される。）
（２）ここで，上記引用文献１に記載されている事項について検討する。
ア　上記Ａの［００４４］，［００５３］，［００６７］及び［００７０］の記載から，引用文献１には，
「ストレージ機器は，制御モジュール（２００）およびストレージモジュールグループ（２０２）を含み，
　ストレージモジュールグループ（２０２）は，データを格納するよう各々が構成される１つ以上のストレージモジュール（２１４Ａ，２１４Ｎ）を含み，
　ストレージモジュール（３２０）は，メモリ（３２４）および１つ以上のソリッドステートメモリモジュール（３３０Ａ，３３０Ｎ）を含み，
　メモリ（３２４）は，ボールテッドメモリ（３２６）およびキャッシュ（３２８）に論理的または物理的にパーティショニングされ」ることが記載されていると認められる。
イ　上記Ｂの［００７４］−［００７７］の記載から，引用文献１には，
「ソリッドステートメモリモジュール（４００）は１つ以上のブロックを含み，
　各ブロック（４０２）は１つ以上のページを含み，
　ブロック内の各ページは，フラグページ（Frag Page）（図４Ｃ参照）またはＴＯＣページ（図４Ｄ参照）のいずれかであり，
　フラグページは１つ以上のフラグ（frag）を含み，
　ＴＯＣページ（４０６）は，１つ以上のＴＯＣエントリを含んでおり，ＴＯＣエントリの各々は，所与のフラグについてのメタデータを含んでおり，
　ＴＯＣページは，ブロックに関連付けられ，当該ブロックにおけるフラグについてのＴＯＣエントリのみを含」むことが記載されていると認められる。
ウ　上記Ｃの［００８７］，［００８８］，［００９０］−［００９２］の記載から，引用文献１には，
「ストレージ機器にユーザデータを格納するための方法であって，
　クライアントは，制御モジュールにおけるプロセッサ（図２Ａ中の２０８）の送信キュー（ＳＱ）に書込コマンド（書込要求）を書き込み，
　プロセッサはＳＱから書込コマンドを取得し，
　プロセッサは，ユーザデータを書き込むべき物理アドレスを決定し，（ステップ６０６）
　物理アドレスはソリッドステートメモリモジュールにおける位置に対応し，
　プロセッサは，ユーザデータのコピーを書き込むべき２つの物理アドレスを選択し，当該物理アドレスの各々は別個のソリッドステートメモリモジュールに存在し，
　プロセッサは，マルチキャストアドレスへの書込を発行するようにＤＭＡエンジンをプログラムし，
　マルチキャストアドレスはマルチキャストグループに関連付けられており，当該マルチキャストグループは，制御モジュールにおけるメモリ中の第１のメモリ位置，第１のボールテッドメモリにおける第２のメモリ位置，および第２のボールテッドメモリにおける第３のメモリ位置を特定し，
　第１のボールテッドメモリは，プロセッサによって特定される物理アドレスを含むソリッドステートメモリモジュールと同じストレージモジュールに位置し，
　第２のボールテッドメモリも，同様の態様で決定され，
　ＤＭＡエンジンは，クライアントメモリにおけるソースアドレスからユーザデータを読み出し，制御モジュールによって指示されるようにマルチキャストアドレスにデータを書き込」むことが記載されていると認められる。
エ　上記Ｃの［００９４］−［００９５］の記載から，引用文献１には，
「フラグは，対応するＴＯＣエントリが作成される時に，ソリッドステートメモリモジュールにおける物理アドレスに書き込まれないが，（フラグページの一部としての）フラグは，その後のある時点で，物理アドレスに書き込まれるように意図され，
　作成された各ＴＯＣエントリは，ストレージモジュールのボールテッドメモリに格納され，対応するフラグがその後のある時点で書き込まれる物理アドレスを含」むことが記載されていると認められる。
オ　上記Ｃの［００９８］の記載から，引用文献１には，
「制御モジュールにおけるプロセッサは，ボールテッドメモリからステップ６０６で識別された物理アドレスへのユーザデータのコピーの書き込みを開始」することが記載されていると認められる。
カ　上記Ｃの［００８６］の記載から，引用文献１には，
「フラグがボールテッドメモリに書き込まれるたびに，フラグについてのＴＯＣエントリが作成され，
　制御モジュールは，新しく作成されたＴＯＣエントリが関連付けられるブロックをトラッキングし，この情報を使用して，ＴＯＣページに書き込まれていない，所与のブロックに関連付けられるすべてのＴＯＣエントリの累積サイズがブロックにおけるページサイズと等しいかどうか決定し，
　ＴＯＣページに書き込まれていない，所与のブロックに関連付けられるすべてのＴＯＣエントリの累積サイズがブロックにおけるページサイズと等しい場合，制御モジュールは上記のエントリを使用してＴＯＣページを生成し，ソリッドステートメモリモジュールへのＴＯＣページの書き込みを開始」することが記載されていると認められる。
キ　上記Ａの［００７０］の記載から，引用文献１には，
「ストレージモジュールにおける停電の通知の場合，ボールテッドメモリ（３２６）のすべての内容をソリッドステートメモリモジュール（３３０Ａ，３３０Ｎ）の１つ以上に書き込むように構成され」ることが記載されていると認められる。
ク　上記Ｂの［００７６］の記載から，引用文献１には，
「「フラグ」および「ユーザデータ」という用語は，交換可能に使用される」ことが記載されていると認められる。
（３）したがって，上記引用文献１には次の発明（以下，「引用発明」という。）が記載されていると認められる。
「ストレージ機器にユーザデータを格納するための方法であって，
　前記ストレージ機器は，制御モジュールおよびストレージモジュールグループを含み，
　前記ストレージモジュールグループは，データを格納するよう各々が構成される１つ以上のストレージモジュールを含み，
　前記ストレージモジュールは，メモリおよび１つ以上のソリッドステートメモリモジュールを含み，
　前記メモリは，ボールテッドメモリおよびキャッシュに論理的または物理的にパーティショニングされ，
　前記ソリッドステートメモリモジュールは１つ以上のブロックを含み，
　各ブロックは１つ以上のページを含み，
　ブロック内の各ページは，フラグページまたはＴＯＣページのいずれかであり，
　前記フラグページは１つ以上のフラグを含み，
　前記ＴＯＣページは，１つ以上のＴＯＣエントリを含んでおり，前記ＴＯＣエントリの各々は，所与のフラグについてのメタデータを含んでおり，
　前記ＴＯＣページは，ブロックに関連付けられ，当該ブロックにおけるフラグについてのＴＯＣエントリのみを含み，
　クライアントは，制御モジュールにおけるプロセッサの送信キュー（ＳＱ）に書込コマンド（書込要求）を書き込み，
　前記プロセッサはＳＱから書込コマンドを取得し，
　前記プロセッサは，ユーザデータを書き込むべき物理アドレスを決定し（ステップ６０６），
　前記物理アドレスはソリッドステートメモリモジュールにおける位置に対応し，
　前記プロセッサは，ユーザデータのコピーを書き込むべき２つの物理アドレスを選択し，当該物理アドレスの各々は別個のソリッドステートメモリモジュールに存在し，
　前記プロセッサは，マルチキャストアドレスへの書込を発行するようにＤＭＡエンジンをプログラムし，
　前記マルチキャストアドレスはマルチキャストグループに関連付けられており，当該マルチキャストグループは，制御モジュールにおけるメモリ中の第１のメモリ位置，第１のボールテッドメモリにおける第２のメモリ位置，および第２のボールテッドメモリにおける第３のメモリ位置を特定し，
　第１のボールテッドメモリは，プロセッサによって特定される前記物理アドレスを含むソリッドステートメモリモジュールと同じストレージモジュールに位置し，
　第２のボールテッドメモリも，同様の態様で決定され，
　ＤＭＡエンジンは，クライアントメモリにおけるソースアドレスからユーザデータを読み出し，制御モジュールによって指示されるようにマルチキャストアドレスにデータを書き込み，
　フラグがボールテッドメモリに書き込まれるたびに，フラグについてのＴＯＣエントリが作成され，
　フラグは，対応するＴＯＣエントリが作成される時に，ソリッドステートメモリモジュールにおける物理アドレスに書き込まれないが，フラグページの一部としてのフラグは，その後のある時点で，物理アドレスに書き込まれるように意図され，
　作成された各ＴＯＣエントリは，ストレージモジュールのボールテッドメモリに格納され，対応するフラグがその後のある時点で書き込まれる物理アドレスを含み，
　制御モジュールは，新しく作成されたＴＯＣエントリが関連付けられるブロックをトラッキングし，この情報を使用して，ＴＯＣページに書き込まれていない，所与のブロックに関連付けられるすべてのＴＯＣエントリの累積サイズがブロックにおけるページサイズと等しいかどうか決定し，
　ＴＯＣページに書き込まれていない，所与のブロックに関連付けられるすべてのＴＯＣエントリの累積サイズがブロックにおけるページサイズと等しい場合，制御モジュールは上記のエントリを使用してＴＯＣページを生成し，ソリッドステートメモリモジュールへのＴＯＣページの書き込みを開始し，
　制御モジュールにおけるプロセッサは，ボールテッドメモリからステップ６０６で識別された物理アドレスへのユーザデータのコピーの書き込みを開始し，
　ストレージモジュールにおける停電の通知の場合，ボールテッドメモリのすべての内容をソリッドステートメモリモジュールの１つ以上に書き込むように構成され，
　「フラグ」および「ユーザデータ」という用語は，交換可能に使用される，
方法。」
２．引用文献２について
　原査定の拒絶の理由に引用された上記引用文献２には，図面とともに次の事項が記載されている。
Ｄ　「[0122]　Referring to  FIGS. 5 and 15 , where an unexpected power interruption occurs, SSD  1000  compresses metadata stored in buffer memory  230  and stores the compressed metadata in flash memory  247 . CPU  220  controls the operation of storing the compressed metadata within a time interval while the temporary power supply provides power. To ensure adequate speed in storing the metadata, flash memory  247  can be configured to operate in various modes according to an input command from the host. As one example mode, flash memory  247  can operate certain regions of memory cells as single level cells (SLCs) that can be programmed more quickly than multilevel cells. Accordingly, where power is unexpectedly lost, SSD  1000 , can receive the metadata before the temporary power supply is exhausted.」
（訳：［０１２２】図５と図１５を参照すると，予期せぬ電源断が発生した場合，ＳＳＤ１０００はバッファメモリ２３０に格納されているメタデータを圧縮し，圧縮されたメタデータをフラッシュメモリ２４７に格納する。ＣＰＵ２２０は，一時的な電源供給が提供されている間の時間間隔内に，圧縮されたメタデータを格納する動作を制御する。メタデータを格納する際の適切な速度を保証するために，フラッシュメモリ２４７は，ホストからの入力コマンドに従って様々なモードで動作するように構成され得る。一例のモードとして，フラッシュメモリ２４７は，メモリセルのある領域を，マルチレベルセルよりも速くプログラムすることができるシングルレベルセル(ＳＬＣ）として動作させることができる。したがって，電力が不意に失われる場合，ＳＳＤ１０００は，一時的な電力供給が枯渇する前にメタデータを受信することができる。）
　したがって，上記引用文献２には，「予期せぬ電源断が発生して電力が不意に失われる場合，ＳＳＤ１０００は，バッファメモリ２３０に格納されているメタデータを圧縮し，圧縮されたメタデータを，フラッシュメモリのメモリセルのある領域をマルチレベルセルよりも速くプログラムすることができるシングルレベルセル(ＳＬＣ）として動作させて格納することにより，ＳＳＤ１０００は，一時的な電力供給が枯渇する前にメタデータを受信することができる」ことが記載されている。
第５　対比・判断
１．本願発明１について
（１）対比
　本願発明１と引用発明とを対比すると，次のことがいえる。
ア　引用発明の「ストレージ機器にユーザデータを格納するための方法」が本願発明１の「データを格納するための方法」に相当する。
イ　引用発明の「ボールテッドメモリ」，「フラグ」は，それぞれ本願発明１の「ボールテッドメモリ」，「フラグ」に相当し，引用発明では，
「前記プロセッサは，マルチキャストアドレスへの書込を発行するようにＤＭＡエンジンをプログラムし，
　前記マルチキャストアドレスはマルチキャストグループに関連付けられており，当該マルチキャストグループは，制御モジュールにおけるメモリ中の第１のメモリ位置，第１のボールテッドメモリにおける第２のメモリ位置，および第２のボールテッドメモリにおける第３のメモリ位置を特定し，」
「ＤＭＡエンジンは，クライアントメモリにおけるソースアドレスからユーザデータを読み出し，制御モジュールによって指示されるようにマルチキャストアドレスにデータを書き込」んでおり，引用発明において，「フラグ」および「ユーザデータ」という用語は，交換可能に使用されるものであることから，
　引用発明と本願発明１とは，後記する点で相違するものの「ボールテッドメモリにフラグを書き込むことを含」む点で共通する。
ウ　引用発明では，「フラグがボールテッドメモリに書き込まれるたびに，フラグについてのＴＯＣエントリが作成され」るところ，引用発明の「フラグについてのＴＯＣエントリ」が本願発明１の「フラグについてのテーブルオブコンテンツエントリ（ＴＥ）」に相当し，引用発明では，「作成された各ＴＯＣエントリは，ストレージモジュールのボールテッドメモリに格納され」ているから，本願発明１とは，後記する点で相違するものの，「ボールテッドメモリに，フラグについてのテーブルオブコンテンツエントリ（ＴＥ）を書き込むことを含」む点で共通する。
エ　引用発明では，「制御モジュールにおけるプロセッサは，ボールテッドメモリからステップ６０６で識別された物理アドレスへのユーザデータのコピーの書き込みを開始し」ているところ，前記「ステップ６０６で識別された物理アドレス」は，「ソリッドステートメモリモジュールにおける位置に対応」するものであるから，引用発明は，「ソリッドステートメモリモジュール」に「ユーザデータ」である「フラグ」を「書き込むこと」を含むものである。
　また，引用発明において，「フラグは，対応するＴＯＣエントリが作成される時に，ソリッドステートメモリモジュールにおける物理アドレスに書き込まれないが，フラグページの一部としてのフラグは，その後のある時点で，物理アドレスに書き込まれるように意図され」るものであるから，「フラグ」は，「ソリッドステートメモリモジュール」における「フラグページ」（本願発明１の「ページ」に相当する。）に書き込まれるものである。
　そして，引用発明の「フラグページ」は，フラグが書き込まれる領域であるから，「ソリッドステートメモリモジュールにおける物理アドレス」に“関連付けられて”いるということができる。
　そうすると，引用発明と本願発明１とは，後記する点で相違するものの，「ソリッドステートメモリモジュールにおけるページにフラグを書き込むこととを含み，前記ページは物理アドレスに関連付けられて」いる点で共通する。
オ　引用発明は，
「前記ストレージモジュールは，メモリおよび１つ以上のソリッドステートメモリモジュールを含み，
　前記メモリは，ボールテッドメモリおよびキャッシュに論理的または物理的にパーティショニングされ」るものであるから，引用発明と本願発明１とは，「ソリッドステートメモリモジュールおよびボールテッドメモリはストレージモジュールに位置する」点で一致する。
　したがって，本願発明１と引用発明との間には，次の一致点，相違点があるといえる。
（一致点）
「データを格納するための方法であって，
　ボールテッドメモリにフラグを書き込むことを含み，前記方法はさらに，
　前記ボールテッドメモリに，前記フラグについてのテーブルオブコンテンツエントリ（ＴＥ）を書き込むことを含み，前記方法はさらに，
　ソリッドステートメモリモジュールにおけるページに前記フラグを書き込むことを含み，前記ページは物理アドレスに関連付けられており，
　前記ソリッドステートメモリモジュールおよび前記ボールテッドメモリはストレージモジュールに位置する，方法。」
（相違点）
（相違点１）
　フラグを書き込む領域に関して，
　本願発明１は，ボールテッドメモリにおける「オープンデータページ」にフラグを書き込むものであり，「前記オープンデータページは，第１のテーブルオブコンテンツ（ＴＯＣ）ビットおよび第１の物理アドレスを含」むのに対して，
　引用発明は，フラグをボールテッドメモリに書き込むことは特定されているものの，ボールテッドメモリ上のどのような領域に書き込むのかや，当該領域が，第１のテーブルオブコンテンツ（ＴＯＣ）ビットおよび第１の物理アドレスを含むことについては何も特定されていない点。
（相違点２）
　テーブルオブコンテンツエントリ（ＴＥ）を書き込む領域に関して，
　本願発明１は，ボールテッドメモリにおける「オープンＴＯＣページ」にＴＥを書き込むものであり，「前記オープンＴＯＣページは，第２のＴＯＣビットおよび第２の物理アドレスを含」むのに対して，
　引用発明は，ＴＥをボールテッドメモリに書き込むことは特定されているものの，ボールテッドメモリ上のどのような領域に書き込むのかや，当該領域が，第２のＴＯＣビットおよび第２の物理アドレスを含むことについては，何も特定されていない点。
（相違点３）
　ソリッドステートメモリモジュールにおけるページにフラグを書き込む契機に関して，
　本願発明１は，「オープンデータページが一杯であるという第１の判定を行」い，この「第１の判定に基づいて」，フラグを書き込むのに対して，
　引用発明では，フラグがボールテッドメモリに書き込まれると，「その後のある時点」で，当該フラグはソリッドステートメモリモジュールに書き込まれるというものであり，「オープンデータページが一杯であるという」「判定に基づいて」，フラグを書き込むというものではない点。
（相違点４）
　本願発明１では，ソリッドステートメモリモジュールにおけるページは，「前記第１の物理アドレス」に関連付けられているのに対して，
　引用発明では，フラグが書き込まれるフラグページは，「物理アドレス」に関連付けられているものの，当該「物理アドレス」が，上記相違点１における「オープンデータページ」に含まれる「第１の物理アドレス」に関連付けられているものではない点。
（２）相違点についての判断
　上記相違点１について検討すると，
　本願発明１における「オープンデータページ」は「第１のテーブルオブコンテンツ（ＴＯＣ）ビットおよび第１の物理アドレス」を含むものであり，このうち，特に「第１の物理アドレス」は，上記相違点４に係る構成も勘案すると，フラグを書き込むソリッドステートメモリモジュールにおける「ページ」に関連付けられることが想定されたものであり，このようにフラグを書き込む「ページ」に関連付けられる「第１の物理アドレス」が「オープンデータページ」に含まれるようにすることで，審判請求人が審判請求書の第２頁の「（１）独立請求項に係る発明について」において主張するような，
「このようにデータを保存することにより，他のページを参照する必要がないため，データ保存に際して参照されるページ数が削減される。その結果，本願明細書の段落［０００２］に記載の「永続ストレージからデータを読み出すことおよび永続ストレージにデータを書き込むことによって，システムに有意なレイテンシーが導入され，その結果，システムの全体の性能が低減する。」という課題を解決することができる。」
という作用・効果を得ることができるものと理解される。
　これに対して，引用発明は，フラグを書き込むボールテッドメモリに「オープンデータページ」のようなページ領域を設けておらず，また，「オープンデータページ」が「第１の物理アドレス」を含むようにしたものでもない。
　そして，ボールテッドメモリに「オープンデータページ」のようなページ領域を設けることや，当該「オープンデータページ」に，フラグを書き込むソリッドステートメモリモジュールの物理アドレスを含ませることは，引用文献２には記載されておらず，また，そのようにすることが，当該技術分野における周知技術であったということもできない。
　そうすると，当業者であっても，引用発明に引用文献２に記載の技術的事項及び周知技術を適用して，上記相違点１に係る事項を容易に想到することができたということはできない。
　したがって，その余の相違点について判断するまでもなく，本願発明１は，当業者であっても，引用発明，引用文献２に記載の技術的事項及び周知技術に基づいて容易に発明できたものであるとはいえない。
２．本願発明２−６について
　本願発明２−６は，本願発明１を減縮した発明であり，上記相違点１に係る構成と同一の構成を備えるものであるから，本願発明１と同様の理由により，当業者であっても，引用発明，引用文献２に記載の技術的事項及び周知技術に基づいて容易に発明できたものとはいえない。
３．本願発明７について
　本願発明７は，上記相違点１に係る構成と同一の構成を備えるものであるから，本願発明１と同様の理由により，当業者であっても，引用発明及び引用文献２に記載の技術的事項に基づいて容易に発明できたものとはいえない。
４．本願発明８−１４について
　本願発明８−１４は，本願発明７を減縮した発明であり，上記相違点１に係る構成と同一の構成を備えるものであるから，本願発明１と同様の理由により，当業者であっても，引用発明，引用文献２に記載の技術的事項及び周知技術に基づいて容易に発明できたものとはいえない。
５．本願発明１５について
　本願発明１５は，本願発明７の方法の発明を「コンピュータ読取可能プログラムコードを含むデータを格納するための一時的でないコンピュータ読取可能記録媒体」の発明として記載したものであり，上記相違点１に係る構成と同一の構成を備えるものであるから，本願発明１と同様の理由により，当業者であっても，引用発明，引用文献２に記載の技術的事項及び周知技術に基づいて容易に発明できたものとはいえない。
６．本願発明１６−２０について
　本願発明１６−２０は，本願発明１５を減縮した発明であり，上記相違点１に係る構成と同一の構成を備えるものであるから，本願発明１と同様の理由により，当業者であっても，引用発明，引用文献２に記載の技術的事項及び周知技術に基づいて容易に発明できたものとはいえない。
第６　むすび
　以上のとおり，本願発明１−２０は，当業者が引用発明，引用文献２に記載の技術的事項及び周知技術に基づいて容易に発明をすることができたものではない。
　したがって，原査定の理由によっては，本願を拒絶することはできない。
　また，他に本願を拒絶すべき理由を発見しない。
　よって，結論のとおり審決する。