(57)【要約】【課題】情報処理装置におけるストレージへのアクセス性能を改善する。【解決手段】仮想アドレスからメモリ領域の物理アドレスへの変換を行なうための、前記メモリ領域へのデータアクセス用の第１の変換情報３１を格納する第１のメモリ３と、仮想アドレスからストレージ５の論理ブロックアドレスへの変換を行なうための、前記ストレージ５へのデータアクセス用の前記第２の変換情報４１を格納する第２のメモリ４と、第１の仮想アドレスのアクセス先に応じて、前記第１又は第２の変換情報３１又は４１に基づく前記第１の仮想アドレスのアドレス変換を処理し、アドレス変換結果に基づき、メモリアクセスを実行する、又は、前記ストレージ５に格納されたデータへのアクセスを論理ブロックアドレスを使用して制御するＯＳ２１１に対する前記第１の仮想アドレスに対応する第１の論理ブロックアドレスの受け渡しを実行する、メモリ管理回路２２と、をそなえる。【選択図】図７
2019144921.tif 000002
【特許請求の範囲】
【請求項１】
メモリ領域に格納されたデータへのアクセス用の第１の変換情報であって、仮想アドレスから前記メモリ領域の物理アドレスへの変換を行なうための前記第１の変換情報を格納する第１のメモリと、
ストレージに格納されたデータへのアクセス用の第２の変換情報であって、仮想アドレスから前記ストレージの論理ブロックアドレスへの変換を行なうための前記第２の変換情報を格納する第２のメモリと、
前記ストレージに格納されたデータへのアクセスを論理ブロックアドレスを使用して制御するオペレーティングシステムと、
第１の仮想アドレスのアクセス先に応じて、前記第１の変換情報又は前記第２の変換情報に基づく前記第１の仮想アドレスのアドレス変換を処理し、アドレス変換結果に基づき、前記メモリ領域に対するメモリアクセスを実行する、又は、前記オペレーティングシステムに対する前記第１の仮想アドレスに対応する第１の論理ブロックアドレスの受け渡しを実行する、メモリ管理回路と、
をそなえる、情報処理装置。
【請求項２】
前記オペレーティングシステムがアクセス可能なレジスタをそなえ、
前記メモリ管理回路は、前記アクセス先が前記ストレージである場合、前記第２の変換情報を参照して、前記第１の仮想アドレスに対応する前記第１の論理ブロックアドレスを取得し、前記第１の論理ブロックアドレスを、前記レジスタに格納する、請求項１に記載の情報処理装置。
【請求項３】
前記オペレーティングシステムは、前記メモリ管理回路から前記アクセス先が前記ストレージであることを表す通知を受け取ると、前記レジスタを参照して、前記第１の論理ブロックアドレスを取得する、請求項２に記載の情報処理装置。
【請求項４】
前記第１の変換情報及び前記第２の変換情報は、仮想アドレスを構成する複数のビット領域の探索によって特定されるエントリを有しており、
前記エントリには、前記第１の変換情報においては前記仮想アドレスに対応する物理アドレスが設定され、前記２の変換情報においては前記仮想アドレスに対応する論理ブロックアドレス、及び、当該エントリのアドレスが論理ブロックアドレスであることを示す情報が設定される、
請求項１〜３のいずれか１項に記載の情報処理装置。
【請求項５】
前記第１のメモリは、前記メモリ領域を有する揮発性メモリであり、
前記第２のメモリは、前記ストレージとは異なる不揮発性メモリであり、
前記不揮発性メモリは、前記揮発性メモリとともに主記憶装置を構成する、
請求項１〜４のいずれか１項に記載の情報処理装置。
【請求項６】
前記第１の変換情報は、前記オペレーティングシステムが有するメモリマネージャにより管理され、
前記第２の変換情報は、前記オペレーティングシステムが有するファイルシステムにより管理される、
請求項１〜５のいずれか１項に記載の情報処理装置。
【請求項７】
メモリ管理回路が、第１の仮想アドレスのアクセス先に応じて、
第１のメモリに格納された、メモリ領域に格納されたデータへのアクセス用の第１の変換情報であって、仮想アドレスから前記メモリ領域の物理アドレスへの変換を行なうための前記第１の変換情報、又は、
第２のメモリに格納された、ストレージに格納されたデータへのアクセス用の第２の変換情報であって、仮想アドレスから前記ストレージの論理ブロックアドレスへの変換を行なうための前記第２の変換情報、
に基づく前記第１の仮想アドレスのアドレス変換を処理し、
前記メモリ管理回路が、アドレス変換結果に基づき、前記メモリ領域に対するメモリアクセスを実行する、又は、前記ストレージに格納されたデータへのアクセスを論理ブロックアドレスを使用して制御するオペレーティングシステムに対する前記第１の仮想アドレスに対応する第１の論理ブロックアドレスの受け渡しを実行する、
情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置及び情報処理方法に関する。
【背景技術】
【０００２】
情報処理装置、例えばサーバ等のコンピュータシステムにおいては、異なる種類のアドレスを一方向又は双方向にマッピングし、データアクセスの際にアドレスのマッピング情報を参照してアドレスを変換する、アドレス変換処理が行なわれる。
【０００３】
アドレス変換処理により、例えば、データの格納場所を、ＤＲＡＭ等の主記憶装置（以下、メモリと表記する場合がある）や、ＳＳＤやＨＤＤ等の記憶装置（以下、ストレージと表記する場合がある）等に柔軟に変更可能となる。これにより、データの格納場所に応じてデータアクセスを高速化できる。ＤＲＡＭはDynamic Random Access Memoryの略称であり、ＳＳＤはSolid State Driveの略称であり、ＨＤＤはHard Disk Driveの略称である。
【０００４】
例えば、アドレス変換処理は、アプリケーションが利用する仮想アドレスとメモリの物理アドレスとをマッピングした仮想メモリへのアクセスや、論理ブロックアドレスと物理ブロックアドレスとをマッピングしたストレージ等へのアクセスに適用される。以下、論理ブロックアドレスをＬＢＡ（Logical Block Address）と表記する場合がある。
【０００５】
なお、仮想メモリへのアクセスにおけるアドレス変換処理は、ＣＰＵ（Central Processing Unit）が有するメモリ管理ユニット（ＭＭＵ；Memory Management Unit）等のハードウェアにより実行される。一方、ストレージへのアクセスにおけるアドレス変換処理は、ＯＳ（Operating System）等のソフトウェアにより実行される。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１４−１５４１６６号公報
【特許文献２】特開２０１３−１５２６７６号公報
【特許文献３】米国特許公開第２０１０／００３７００５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
上述のように、ＳＳＤ等のストレージへのアクセスにおいて、アドレス変換処理はソフトウェアにより実行されるため、ストレージのアクセス性能の向上に伴い、ソフトウェアによるアドレス変換処理は、アクセス性能のオーバヘッドになり得る。
【０００８】
近年、次世代メモリ技術を採用した高性能ＳＳＤが登場している。このような高性能ＳＳＤとしては、例えば、3D XPoint（登録商標）技術を採用したIntel Optane SSD（登録商標）が知られている。
【０００９】
高性能ＳＳＤは、アクセスレイテンシが少なく、例えば数μｓ〜２０μｓ程度の場合がある。このため、高性能ＳＳＤが搭載される情報処理装置においては、ソフトウェアのアドレス変換処理によるアクセス性能のオーバヘッドがより顕著になる可能性がある。
【００１０】
１つの側面では、本発明は、情報処理装置におけるストレージへのアクセス性能を改善することを目的の１つとする。
【課題を解決するための手段】
【００１１】
１つの側面では、情報処理装置は、第１のメモリと、第２のメモリと、オペレーティングシステムと、メモリ管理回路と、をそなえてよい。前記第１のメモリは、メモリ領域に格納されたデータへのアクセス用の第１の変換情報であって、仮想アドレスから前記メモリ領域の物理アドレスへの変換を行なうための前記第１の変換情報を格納してよい。前記第２のメモリは、ストレージに格納されたデータへのアクセス用の第２の変換情報であって、仮想アドレスから前記ストレージの論理ブロックアドレスへの変換を行なうための前記第２の変換情報を格納してよい。前記オペレーティングシステムは、前記ストレージに格納されたデータへのアクセスを論理ブロックアドレスを使用して制御してよい。前記メモリ管理回路は、第１の仮想アドレスのアクセス先に応じて、前記第１の変換情報又は前記第２の変換情報に基づく前記第１の仮想アドレスのアドレス変換を処理してよい。また、前記メモリ管理回路は、アドレス変換結果に基づき、前記メモリ領域に対するメモリアクセスを実行する、又は、前記オペレーティングシステムに対する前記第１の仮想アドレスに対応する第１の論理ブロックアドレスの受け渡しを実行してよい。
【発明の効果】
【００１２】
１つの側面では、情報処理装置におけるストレージへのアクセス性能を改善することができる。
【図面の簡単な説明】
【００１３】
【図１】一実施形態に係るコンピュータの構成例を示すブロック図である。
【図２】ＳＳＤにおけるアドレス変換処理を説明する図である。
【図３】互いに異なる種類のアドレスのマッピング例を説明する図である。
【図４】仮想アドレスとページテーブル、ＬＢＡテーブルとの関係の一例を示す図である。
【図５】比較例に係るコンピュータの動作を示すブロック図である。
【図６】比較例に係るコンピュータの動作を示すフローチャートである。
【図７】一実施形態に係るコンピュータの動作例を示すブロック図である。
【図８】ＭＭＵの処理の一例を示すフローチャートである。
【図９】一実施形態に係るページテーブルエントリ（ＰＴＥ）の一例を示す図である。
【図１０】一実施形態に係るＣＲｘの一例を示す図である。
【図１１】メモリマネージャの処理の一例を示すフローチャートである。
【図１２】一実施形態に係るコンピュータの動作例を示すフローチャートである。
【発明を実施するための形態】
【００１４】
以下、図面を参照して本発明の実施の形態を説明する。ただし、以下に説明する実施形態は、あくまでも例示であり、以下に明示しない種々の変形や技術の適用を排除する意図はない。例えば、本実施形態を、その趣旨を逸脱しない範囲で種々変形して実施することができる。なお、以下の説明で用いる図面において、同一符号を付した部分は、特に断らない限り、同一若しくは同様の部分を表す。
【００１５】
〔１〕一実施形態
〔１−１〕構成例
まず、図１を参照して、一実施形態に係るコンピュータ１の構成例について説明する。
【００１６】
図１に示すように、コンピュータ１は、例示的に、ＣＰＵ２、ＤＲＡＭ３、不揮発性メモリ４、及びＳＳＤ５をそなえてよい。
【００１７】
ＣＰＵ２は、種々の制御や演算を行なう演算処理装置の一例である。ＣＰＵ２は、コンピュータ１内の各ブロックとバスで相互に通信可能に接続されてよい。
【００１８】
図１に示すように、ＣＰＵ２は、例示的に、コア２１、ＭＭＵ２２、及び複数のコントロールレジスタ（図１中、“ＣＲｘ”と表記）２３をそなえてよい。
【００１９】
コア２１は、ＤＲＡＭ３等に展開されたプログラム（図示省略）を実行して、ＯＳやアプリケーション等の機能を実現する。
【００２０】
ＭＭＵ２２は、ＤＲＡＭ３の管理を行なう。また、一実施形態に係るＭＭＵ２２は、不揮発性メモリ４の管理を行なってよい。ＭＭＵ２２は、例えば、ＣＰＵ２にパッケージされた（実装された）ハードウェアであってよい。
【００２１】
ＣＲｘ２３は、ＣＰＵ２により用いられる制御レジスタであり、コア２１が実行するＯＳ（図示省略）がアクセス可能なレジスタの一例である。例えば、ＣＲｘ２３は、コア２１及びＭＭＵ２２による後述する制御に用いられてよい。なお、以下の説明において、複数のＣＲｘ２３のうちの特定のＣＲｘ２３を示す場合には、添え字の“ｘ”の値を変化させて、例えばＣＲ０、ＣＲ１、ＣＲ２のように表記する。
【００２２】
なお、ＣＰＵ２として、ＭＭＵ２２のようなメモリ管理用のハードウェアが搭載された集積回路（ＩＣ）、例えば、ＭＰＵ、ＤＳＰ、ＡＳＩＣ、ＦＰＧＡ等が用いられてもよい。ＭＰＵはMicro Processing Unitの略称であり、ＤＳＰはDigital Signal Processorの略称である。ＡＳＩＣはApplication Specific Integrated Circuitの略称であり、ＦＰＧＡはField-Programmable Gate Arrayの略称である。
【００２３】
ＤＲＡＭ３は、種々のデータやプログラム等の情報を格納可能なハードウェアであり、第１のメモリの一例である。図１に示すように、ＤＲＡＭ３は、例えば、ページテーブル３１を格納してよい。また、ＤＲＡＭ３は、ＣＰＵ２によるＳＳＤ５へのアクセスに係るファイルデータ３０を一時的に格納してよい。ファイルデータ３０は、例示的に、ＤＲＡＭ３のメモリ領域に格納されてよい。なお、図１及び後述する図７では、例えばファイルデータ３０がＳＳＤ５内のデータの複製であることを示すために、ファイルデータ３０を「＄ファイルデータ」と表記している。
【００２４】
ページテーブル３１は、コア２１が実行するアプリケーションが用いる仮想アドレスと、ＤＲＡＭ３上の記憶領域のアドレスを示す物理アドレスとをマッピングした情報である。換言すれば、ページテーブル３１は、メモリ領域に格納されたデータへのアクセス用の第１の変換情報であって、仮想アドレスからメモリ領域の物理アドレスへの変換を行なうための第１の変換情報の一例である。
【００２５】
不揮発性メモリ４は、種々のデータやプログラム等の情報を格納可能なハードウェアであり、高性能な不揮発性メモリ、又は、第２のメモリの一例である。「高性能な不揮発性メモリ」としては、例えば、3D XPoint（登録商標）技術を採用したメモリが挙げられる。図１に示すように、不揮発性メモリ４は、例えば、ＬＢＡテーブル４１を格納してよい。
【００２６】
ＬＢＡテーブル４１は、コア２１が実行するアプリケーションが用いる仮想アドレスと、ＳＳＤ５上の記憶領域の論理的なブロック位置を示す論理ブロックアドレス（ＬＢＡ）とをマッピングした情報である。換言すれば、ＬＢＡテーブル４１は、ストレージに格納されたデータへのアクセス用の第２の変換情報であって、仮想アドレスからストレージの論理ブロックアドレスへの変換を行なうための第２の変換情報の一例である。
【００２７】
一実施形態においては、不揮発性メモリ４はＤＲＡＭ３と同様にバイト単位のアクセスが可能であるため、ＳＳＤ５とは異なる不揮発性メモリ４を用いて、ＤＲＡＭ３とともに主記憶装置を構成してもよい。これにより、主記憶装置としての不揮発性メモリ４へのデータアクセスをＳＳＤ５よりも高速に行なうことができる。
【００２８】
仮に、ＬＢＡテーブル４１をＤＲＡＭ３に格納する場合、ファイルデータをキャッシングするためのＤＲＡＭ３の容量が減少するため、ＤＲＡＭ３でのキャッシュヒット率が低下することになる。これに対し、一実施形態においては、ＬＢＡテーブル４１を不揮発性メモリ４に格納することにより、ＤＲＡＭ３の容量の減少を抑制でき、ＤＲＡＭ３のキャッシュヒット率を向上させることができる。例えば、データサイズが１ＴＢ（２５６Ｍ個の４ＫＢページ）である場合、ＬＢＡテーブル４１のサイズは２ＧＢ（後述するページテーブルエントリは８Ｂ）となる。このため、ＤＲＡＭ３において、ファイルデータ３０をキャッシングできる容量を２ＧＢ程度増加させることができる。
【００２９】
また、コンピュータ１の電源遮断時にデータが消失せず、ＬＢＡテーブル４１の永続性を保証できる。例えば、障害が発生した場合においても、ＳＳＤ５を修正することなく、高速リカバリを実現可能となる。
【００３０】
例えば、容量の観点からみると、ＤＲＡＭ＜高性能な不揮発性メモリ＜ＳＳＤ（フラッシュメモリ）となる。また、アクセス速度の観点からみると、読み出しについては、ＤＲＡＭ≒高性能な不揮発性メモリ＞ＳＳＤ（フラッシュメモリ）となり、書き込みについては、ＤＲＡＭ＞高性能な不揮発性メモリ＞ＳＳＤ（フラッシュメモリ）となる。このように、ＤＲＡＭ３よりも容量の大きく、アクセス速度（読み出し）についてもＤＲＡＭ３と同程度の不揮発性メモリ４を採用することにより、コンピュータ１の性能の底上げを行なうことが可能となる。
【００３１】
ＳＳＤ５は、種々のデータやプログラム等の情報を格納するハードウェアであり、ストレージの一例である。ＳＳＤ５は、図１に示すように、例えば、ファイル５０を格納してよい。
【００３２】
ＳＳＤ５としては、例えば、ＮＡＮＤ型フラッシュメモリが用いられてもよいし、「高性能な不揮発性メモリ」を採用したＳＳＤ、例えば3D XPoint（登録商標）技術を採用したIntel Optane SSD（登録商標）が用いられてもよい。なお、ＳＳＤ５等の半導体ドライブ装置に代えて又は加えて、例えばＨＤＤ等の磁気ディスク装置、ＳＣＭ（Storage Class Memory）等の各種記憶装置が用いられてもよい。
【００３３】
なお、フラッシュメモリは不揮発性メモリの一種であるが、以下の説明では、高性能な不揮発性メモリと区別するために、「不揮発性メモリ」と表記する場合には高性能な不揮発性メモリを意味するものとする。以下の説明においては、不揮発性メモリ４及びＳＳＤ５にいずれも高性能な不揮発性メモリが採用されるものとするが、これに限定されるものではなく、不揮発性メモリ４及び／又はＳＳＤ５として、フラッシュメモリが用いられてもよい。
【００３４】
また、ＳＳＤ５は、コンピュータ１の各種機能の全部若しくは一部を実現するプログラム５ａを格納してよい。ＣＰＵ２は、ＳＳＤ５に格納されたプログラム５ａをＤＲＡＭ３に展開して実行することにより、ＯＳ、ＯＳが有するメモリマネージャやファイルシステム、並びに、ＯＳ上で実行されるアプリケーション、等の機能を実現できる。
【００３５】
ＳＳＤ５は、ＨＤＤと同様に、アクセスにおいて指定されたＬＢＡを、ＳＳＤ５上の記憶領域の物理的なブロック位置を示す物理ブロックアドレス（ＰＢＡ；Physical Block Address）に変換して、アクセスを処理する。
【００３６】
例えば、図２（ａ）に示すように、ＳＳＤ５は、アクセス制御を行なうコントローラ５１と、マッピング情報５３及びデータ５４を格納するフラッシュメモリ５２と、をそなえてよい。コントローラ５１は、マッピング情報５３を参照して、ＬＢＡに対応するＰＢＡを取得し、取得したＰＢＡに格納されたデータ５４にアクセスしてよい。
【００３７】
なお、ＳＳＤ５は、図２（ｂ）に示すように、不揮発性メモリ５５にマッピング情報５３を格納した構成であってもよいし、図２（ｃ）に示すように、不揮発性メモリ５５にマッピング情報５３及びデータ５４を格納した構成であってもよい。
【００３８】
コンピュータ１は、図１に例示する構成に加えて、例えば、ＩＦ（Interface）部、Ｉ／Ｏ（Input / Output）部、読取部等の構成をそなえてもよい。ＩＦ部は、図示しないネットワークとの間の接続及び通信の制御等を行なう通信インタフェースの一例である。Ｉ／Ｏ部は、マウスやキーボード等の入力部、並びに、タッチパネルディスプレイやＬＣＤ（Liquid Crystal Display）の出力部、の一方又は双方を含んでよい。読取部は、記録媒体に記録されたデータやプログラムの情報を読み出すリーダの一例である。プログラム５ａは、ＩＦ部を介してネットワークからダウンロードされてＳＳＤ５に格納されてもよいし、読取部を介して記録媒体から読み出されてＳＳＤ５に格納されてもよい。
【００３９】
なお、記録媒体としては、例示的に、磁気／光ディスクやフラッシュメモリ等の非一時的な記録媒体が挙げられる。磁気／光ディスクとしては、例示的に、フレキシブルディスク、ＣＤ（Compact Disc）、ＤＶＤ（Digital Versatile Disc）、ブルーレイディスク、ＨＶＤ（Holographic Versatile Disc）等が挙げられる。フラッシュメモリとしては、例示的に、ＵＳＢメモリやＳＤカード等が挙げられる。なお、ＣＤとしては、例示的に、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ等が挙げられる。また、ＤＶＤとしては、例示的に、ＤＶＤ−ＲＯＭ、ＤＶＤ−ＲＡＭ、ＤＶＤ−Ｒ、ＤＶＤ−ＲＷ、ＤＶＤ＋Ｒ、ＤＶＤ＋ＲＷ等が挙げられる。
【００４０】
〔１−２〕アドレスのマッピングの説明
ＣＰＵ２からＳＳＤ５へのアクセスにおいては、アプリケーションが利用（指定）する仮想アドレスから、ＳＳＤ５が利用するＬＢＡへのアドレス変換処理が行なわれる。以下、コンピュータ１における互いに異なる種類のアドレスのマッピングについて説明する。なお、ＳＳＤ５においては、図２を用いて説明したように、ＬＢＡからＰＢＡへのアドレス変換が行なわれるが、以下の説明では省略する。
【００４１】
まず、比較例として、コンピュータのストレージがMemory-Mapped SSDとして利用される場合を想定する。この場合、例えば、図３（ａ）に示すように、仮想メモリの仮想アドレスは、ＯＳが管理するファイルシステムのファイルオフセットにマッピングされ、ファイルオフセットは、ＬＢＡにマッピングされる。なお、ファイルシステムは、ストレージのデータをファイルで管理するシステムである。
【００４２】
このように、Memory-Mapped SSDでは、ストレージの少なくとも一部の記憶領域が主記憶装置とともに仮想メモリとして管理される。従って、ストレージへのアクセスにおいて、ソフトウェアによる、仮想アドレス→ファイルオフセット→ＬＢＡのアドレス変換処理が行なわれる。
【００４３】
これに対し、一実施形態に係るコンピュータ１においては、ＬＢＡテーブル４１を設けることにより、図３（ｂ）に示すように、仮想メモリの仮想アドレスをＬＢＡに直接マッピングすることができる。この場合、ＳＳＤ５へのアクセスにおいて、ソフトウェアによる、仮想アドレスからＬＢＡへのアドレス変換処理が行なわれる。
【００４４】
図３（ｂ）に示す手法によれば、アドレス変換処理にファイルオフセットの変換が含まれないため、ソフトウェアによるアドレス変換処理負荷を低減でき、ストレージアクセスのオーバヘッドを削減できる。
【００４５】
ここで、図３（ｂ）に示すアドレスマッピングの態様において、仮想アドレスと、ページテーブル３１及びＬＢＡテーブル４１との関係は、図４に例示するものとなる。
【００４６】
図４に例示するように、一実施形態に係る仮想アドレスのビット列は、上位ビットから下位ビットに向かって順に、ＰＧＤ、ＰＵＤ、ＰＭＤ、ＰＴ、Ｏｆｆｓｅｔのビット領域に分割して用いられてよい。ＰＧＤはPage Global Directoryの略称であり、ＰＵＤはPage Upper Directoryの略称であり、ＰＭＤはPage Middle Directoryの略称であり、ＰＴはPage Tableの略称である。
【００４７】
ページテーブル３１及びＬＢＡテーブル４１は、これらのビット領域により特定される。例えば、ＰＧＤ領域のビット値はＰＵＤを特定するインデックスを示し、ＰＵＤ領域のビット値はＰＭＤを特定するインデックスを示し、ＰＭＤ領域のビット値は“ページテーブル”（ページテーブル３１又はＬＢＡテーブル４１）を特定するインデックスを示す。ＰＴ領域のビット値は“ページテーブル”内のページテーブルエントリ（ＰＴＥ；Page Table Entry）を特定するインデックスを示す。
【００４８】
ＰＴＥは、主記憶装置、例えばＤＲＡＭ３又は不揮発性メモリ４上にページが存在するか否かを示す存在フラグ、主記憶装置、例えばＤＲＡＭ３上の物理アドレス、ページが読出専用或いは書込可能かを示す読出／書込フラグ、等の情報を含む。ＰＴＥは、ページテーブル３１においてはＤＲＡＭ３上のページを特定し、ＬＢＡテーブル４１においては不揮発性メモリ４上のページを特定する。Ｏｆｆｓｅｔはページ内のオフセット位置を示す。ページ内のオフセット位置の“アドレス”は、仮想アドレスに対応する物理アドレス又はＬＢＡとなる。
【００４９】
このように、仮想アドレスからＤＲＡＭ３内の物理アドレス又はＳＳＤ５内のＬＢＡへのアドレス変換処理は、仮想アドレスの上位ビットから、分割されたビット領域ごとに段階的にテーブルを探索することで実行されてよい。
【００５０】
仮想アドレスに基づくページテーブル３１の探索により、ページテーブル３１及びＬＢＡテーブル４１のいずれか一方が択一的に選択されるため、ＬＢＡテーブル４１がページテーブル３１に統合されたものと捉えることができる。
【００５１】
〔１−３〕ストレージアクセスの比較例
ところで、従来のストレージアクセスの手法では、ＭＭＵは、仮想アドレスに基づくページテーブルの探索により、データがストレージに存在する場合、ページフォルトをＯＳに返し、ＯＳが仮想アドレスからＬＢＡへのアドレス変換を行なう。
【００５２】
以下、一実施形態に係るコンピュータ１の比較例として、図５に示すコンピュータ１００を用いて、このような従来の手法によってストレージアクセスを行なう場合の動作例を説明する。
【００５３】
図５に示すように、アプリケーション２５０から仮想アドレスを指定したデータアクセス要求が発生する（（ｉ）参照；図６のステップＳ１０１）。ＣＰＵ２００のＭＭＵ２２０は、仮想アドレスに基づき、ＤＲＡＭ３００上のページテーブル３１０を探索する（（ii）参照；図６のステップＳ１０２）。
【００５４】
探索により要求データがＤＲＡＭ３００上に存在すると判断した場合（図６のステップＳ１０３及びステップＳ１０３でＹｅｓ）、ＭＭＵ２２０は、ＤＲＡＭ３００上のファイルデータ３０１にアクセスする（（iii）−ａ参照；図６のステップＳ１０４）。なお、図５においてファイルデータ３０１を「＄ファイルデータ」と表記する。このアクセスは、ページテーブル３１０から探索で特定したＰＴＥに設定された物理アドレスを対象として行なわれる。これにより、要求データがＤＲＡＭ３００上にある場合の処理が終了する。
【００５５】
一方、探索により要求データがＤＲＡＭ３００上に存在しないと判断した場合（図６のステップＳ１０３でＮｏ）、ＭＭＵ２２０は、ＯＳ２４０のメモリマネージャ２４１にページフォルトを発行する（（iii）−ｂ参照；図６のステップＳ１０５）。
【００５６】
メモリマネージャ２４１は、ページフォルトの発生を検出すると、仮想アドレスに基づき、不揮発性メモリ４００上のＬＢＡテーブル４１０を探索する（（iv）参照；図６のステップＳ１０６）。この探索では、メモリマネージャ２４１は、仮想アドレスの上位のビット領域からページテーブル３１０を探索し、ＰＭＤ領域の探索の段階でＬＢＡテーブル４１０を参照し、ＰＴ領域で指定されるＰＴＥからＯｆｆｓｅｔ領域で指定されるＬＢＡを取得する。
【００５７】
メモリマネージャ２４１は、ＬＢＡを対象として、ＳＳＤ５００上のファイル５０１にアクセスする（（ｖ）参照；図６のステップＳ１０７）。これにより、要求データがＳＳＤ５００上にある場合の処理が終了する。
【００５８】
以上のように、比較例に係るコンピュータ１００では、要求データがＳＳＤ５００上に存在する場合、ＬＢＡテーブル４１０の探索及びＳＳＤ５００へのアクセス（図６のステップＳ１０６及びＳ１０７）がソフトウェア処理として実行される。このため、メモリマネージャ２４１によるページテーブル３１０及びＬＢＡテーブル４１０の探索がストレージアクセス性能のオーバヘッドとなる。
【００５９】
〔１−４〕一実施形態に係るコンピュータの動作例
一実施形態に係るコンピュータ１においては、以下の手法により、ソフトウェア処理をハードウェア処理に統合して実行することで、ストレージへのアクセス性能を改善することができる。
【００６０】
以下、一実施形態に係るＭＭＵ２２及びＯＳ２１１の構成例について説明する。図７に例示するように、ＣＰＵ２では、コア２１（図１参照）上でＯＳ２１１が実行され、ＯＳ２１１の機能としてメモリマネージャ２１２及びファイルシステム２１３が実行される。また、ＯＳ２１１上でアプリケーション２１４が実行される。なお、ＯＳ２１１（例えばメモリマネージャ２１２）は、ＳＳＤ５に格納されたデータへのアクセスをＬＢＡを使用して制御する。
【００６１】
ＭＭＵ２２は、アプリケーション２１４から仮想アドレスを指定したデータアクセス要求を取得すると（（ｉ）参照）、仮想アドレスに基づき、ＤＲＡＭ３上のページテーブル３１及び不揮発性メモリ４上のＬＢＡテーブル４１を探索する（（ii）参照）。
【００６２】
ここで、一実施形態に係るＭＭＵ２２によるページテーブル３１及びＬＢＡテーブル４１の探索処理について説明する。
【００６３】
図８に例示するように、ＭＭＵ２２は、仮想アドレスを用いて、アクセス対象に該当するＰＴＥを探索する（ステップＡ１）。なお、ＰＴＥの探索は、図４を参照して説明したように、仮想アドレスの上位ビットから、分割されたビット領域ごとに段階的にテーブルを探索し、ＰＭＤで特定されるページテーブル３１又はＬＢＡテーブル４１からＰＴで特定されるＰＴＥを探索してよい。
【００６４】
一実施形態に係るＰＴＥは、従来のＰＴＥとは異なり、図９に例示するようなデータ構成としてよい。図９に示すように、ページテーブル３１及びＬＢＡテーブル４１に格納されたＰＴＥは、例示的に、存在フラグ、物理アドレス又はＬＢＡ、読出／書込フラグ、及び、ＬＢＡフラグをそなえてよい。
【００６５】
ＰＴＥは、主記憶装置状のページ情報を格納するページテーブル３１及びＬＢＡテーブル４１の要素である。例えば、ＰＴＥは、主記憶装置、例えばＤＲＡＭ３又は不揮発性メモリ４上にページが存在するか否かを示す存在フラグ、物理アドレス又はＬＢＡ、ページが読出専用或いは書込可能かを示す読出／書込フラグ、ＬＢＡフラグ等の情報を含む。
【００６６】
物理アドレス又はＬＢＡの領域には、ページテーブル３１のＰＴＥにおいては、主記憶装置、例えばＤＲＡＭ３の物理アドレスが格納されてよく、ＬＢＡテーブル４１のＰＴＥにおいては、ＳＳＤ５のＬＢＡが格納されてよい。
【００６７】
ＬＢＡフラグは、ＰＴＥがＬＢＡを示すエントリであるか否かを示すフラグであり、当該ＰＴＥのアドレスがＬＢＡであることを示す情報の一例である。ＬＢＡフラグには、ページテーブル３１のＰＴＥにおいては、固定値として“０”が設定されてよく、ＬＢＡテーブル４１のＰＴＥにおいては、固定値として“１”が設定されてよい。
【００６８】
以上のように、一実施形態に係るページテーブル３１及びＬＢＡテーブル４１は、仮想アドレスを構成する複数のビット領域の探索によって特定されるエントリの一例としてのＰＴＥを有しているといえる。ＰＴＥを上述のように構成することにより、ＭＭＵ２２がページテーブル３１及びＬＢＡテーブル４１の双方を探索可能となる。
【００６９】
なお、ページテーブル３１のＰＴＥについては、メモリマネージャ２１２により管理されてよく、ＬＢＡテーブル４１のＰＴＥについては、ファイルシステム２１３により管理されてよい。これにより、メモリマネージャ２１２によるページテーブル３１の管理について、従来と同様の処理を行なうことができる。また、ファイルとＬＢＡとを管理するファイルシステム２１３がＬＢＡテーブル４１を管理することで、効率的な処理を行なうことができる。
【００７０】
図８の説明に戻り、ＭＭＵ２２は、アプリケーション２１４による仮想アドレスへのアクセスへのアクセス権限をチェックし（ステップＡ２）、ステップＡ１で取得したＰＴＥの存在フラグが“０”であるか否かを判定する（ステップＡ３）。
【００７１】
存在フラグが“０”の場合（ステップＡ３でＹｅｓ）、仮想アドレスの要求データはＤＲＡＭ３上に存在しないことを意味する。この場合、ＭＭＵ２２は、ＰＴＥのＬＢＡフラグが“１”であるか否かを判定する（ステップＡ４）。
【００７２】
ＬＢＡフラグが“１”の場合（ステップＡ４でＹｅｓ）、当該ＰＴＥはＬＢＡテーブル４１のＰＴＥであるため、ＭＭＵ２２は、ＬＢＡに関する情報をＣＲｘ２３に設定してよい（図７の（iii）−ｂ参照）。
【００７３】
以下、図１０を参照して、ＣＲｘ２３のデータ構成例について説明する。図１０に示すように、ＣＲｘ２３のうちの例えばＣＲ０は、複数のビットがそれぞれ制御用（例えば“Paging”、“Cache disable”等）に用いられるレジスタ２３１であってよい。一実施形態では、複数のビットのうちの未使用のビットをＬＢＡビットとして利用する。
【００７４】
また、ＣＲｘ２３のうちの例えばＣＲ１及びＣＲ２は、それぞれアドレスを設定可能な領域を有するレジスタ２３２及び２３３であってよく、一実施形態では、これらの領域を、それぞれＬＢＡ設定用の領域、及び、仮想アドレス設定用の領域として利用する。
【００７５】
例えば、図８に示すように、ＬＢＡフラグが“１”の場合（ステップＡ４でＹｅｓ）、ＭＭＵ２２は、ＣＲｘ２３のうちの例えばＣＲ１に、ＰＴＥの物理アドレス又はＬＢＡの領域に設定されたＬＢＡを格納する（ステップＡ５）。
【００７６】
次に、ＭＭＵ２２は、ＣＲｘ２３のうちの例えばＣＲ２に、アプリケーション２１４から指定された仮想アドレスを格納する（ステップＡ６）。
【００７７】
一方、ＬＢＡフラグが“０”の場合（ステップＡ４でＮｏ）、当該ＰＴＥが（ＬＢＡテーブル４１の要素ではなく）ページテーブル３１の要素であり、主記憶装置、例えばＤＲＡＭ３の物理アドレス格納用に使用されることを意味する。しかしながら、ステップＡ３でＹｅｓと判定されたように、当該ＰＴＥの存在フラグが“０”であるため、当該ＰＴＥに対応するページが主記憶装置上に存在しない。換言すれば、当該ＰＴＥに対応する物理アドレスがマッピングされていない。この場合、後述する“ページング処理”（図１１のステップＢ７参照）によりＳＳＤ５からデータが読み出されて当該ＰＴＥに物理アドレスが登録されるため、ＭＭＵ２２は、ステップＡ５をスキップして、ステップＡ６においてＣＲ２に仮想アドレスを格納する。
【００７８】
次いで、ＭＭＵ２２は、ＣＲｘ２３のうちの例えばＣＲ０の「ＬＢＡビット」の領域に、ＰＴＥのＬＢＡビットに設定されたＬＢＡフラグの値を格納する（ステップＡ７）。
【００７９】
そして、ＭＭＵ２２は、仮想アドレスの要求データがＤＲＡＭ３上には存在しなかったため、ＯＳ２１１のメモリマネージャ２１２に対して、ページフォルトを通知し（ステップＡ８；図７の（iv）参照）、処理が終了する。
【００８０】
なお、ページフォルトの通知には、メモリマネージャ２１２にＣＲｘ２３を参照させる指示が含まれてよい。或いは、ページフォルトの通知には、ＣＲｘ２３（ＣＲｘ０〜ＣＲｘ２）の内容が含まれてもよい。換言すれば、ページフォルトの通知は、アクセス先がＳＳＤ５であることを表す通知の一例である。
【００８１】
一方、ステップＡ３において、ＰＴＥの存在フラグが“０”ではない場合（ステップＡ３でＮｏ）、仮想アドレスの要求データがＤＲＡＭ３上に存在することを意味する。従って、ＭＭＵ２２は、ＰＴＥの物理アドレス又はＬＢＡの領域に設定された物理アドレスを用いて、ＤＲＡＭ３の該当ページへアクセスし（ステップＡ９；図７の（iii）−ａ参照）、処理が終了する。
【００８２】
このように、一実施形態に係るＭＭＵ２２によれば、上述のように構成したＰＴＥに基づき、仮想アドレスに係る要求データがＳＳＤ５上に存在する場合にＬＢＡテーブル４１を探索することができる。換言すれば、ＭＭＵ２２は、データの格納場所に応じた２種類のアドレス変換を処理することができる。すなわち、ＭＭＵ２２は、要求データが主記憶装置上に存在する場合は仮想アドレスから主記憶装置の物理アドレスへの変換を行ない、要求データがＳＳＤ５上に存在する場合は仮想アドレスからＳＳＤ５のＬＢＡへの変換を行なうことができる。
【００８３】
また、ＭＭＵ２２によれば、探索により取得したＬＢＡの情報を仮想アドレスの情報とともにＣＲｘ２３に格納することができるため、アクセスに係る情報の引き継ぎを容易にすることができる。
【００８４】
以上のように、ＭＭＵ２２は、以下の処理を行なうメモリ管理回路の一例である。当該処理は、第１の仮想アドレスのアクセス先に応じて、ページテーブル３１又はＬＢＡテーブル４１に基づく第１の仮想アドレスのアドレス変換を処理することを含んでよい。また、当該処理は、アドレス変換結果に基づき、メモリ領域に対するメモリアクセスを実行する、又は、ＯＳ２１１に対する第１の仮想アドレスに対応する第１のＬＢＡの受け渡しを実行する、ことを含んでよい。
【００８５】
次に、一実施形態に係るＭＭＵ２２によりページフォルトが発生した場合のメモリマネージャ２１２の動作例について説明する。
【００８６】
図１１に例示するように、メモリマネージャ２１２は、ページフォルトを通知されると、ＣＲｘ２から仮想アドレスを読み出し（ステップＢ１；図７の（ｖ）参照）、アクセス領域をチェックする（ステップＢ２）。
【００８７】
また、メモリマネージャ２１２は、ＣＲ０からＬＢＡビットを読み出し（ステップＢ３）、ＬＢＡビットが“１”であるか否かを判定する（ステップＢ４）。
【００８８】
ＬＢＡビットが“１”の場合（ステップＢ４でＹｅｓ）、メモリマネージャ２１２は、ＣＲ１からＬＢＡを読み出し（ステップＢ５）、ＬＢＡを用いてＳＳＤ５へアクセスを行ない（ステップＢ６；図７の（vi）参照）、処理が終了する。なお、ファイルシステム２１３がＬＢＡテーブル４１の更新等の管理を行なってもよい。
【００８９】
一方、ＬＢＡビットが“１”ではない場合（ステップＢ４でＮｏ）、要求データがページテーブル３１により管理されているにも関わらず、主記憶装置上に存在しないことを意味する。この場合、メモリマネージャ２１２は、ページング処理を行ない（ステップＢ７）、処理が終了する。ページング処理では、例えば、ページイン又はページアウトの処理、ページテーブル３１の更新処理、等が行なわれてよい。
【００９０】
次に、図１２を参照して、上述したコンピュータ１における一連の動作例を説明する。
【００９１】
図１２に示すように、アプリケーション２１４から仮想アドレスを指定したデータアクセス要求が発生する（ステップＳ１）。ＣＰＵ２のＭＭＵ２２は、仮想アドレスに基づき、ＤＲＡＭ３上のページテーブル３１及び不揮発性メモリ４上のＬＢＡテーブル４１を探索する（ステップＳ２）。
【００９２】
探索により要求データがＤＲＡＭ３上に存在すると判断した場合（ステップＳ３及びステップＳ３でＹｅｓ）、ＭＭＵ２２は、ＤＲＡＭ３上のファイルデータ３０にアクセスする（ステップＳ４）。このアクセスは、ページテーブル３１から探索で特定したＰＴＥに設定された物理アドレスを対象として行なわれる。これにより、要求データがＤＲＡＭ３上にある場合の処理が終了する。
【００９３】
一方、探索により要求データがＤＲＡＭ３上に存在しないと判断した場合（ステップＳ３でＮｏ）、ＭＭＵ２２は、ＯＳ２１１のメモリマネージャ２１２にページフォルトを発行する（ステップＳ５）。
【００９４】
メモリマネージャ２１２は、ページフォルトの発生を検出すると、ＣＲｘ２３を参照してＳＳＤ５上のＬＢＡの情報を取得し、取得したＬＢＡを対象として、ＳＳＤ５上のファイル５０にアクセスする（ステップＳ６）。これにより、要求データがＳＳＤ５上にある場合の処理が終了する。
【００９５】
以上のように、一実施形態に係るコンピュータ１では、要求データがＳＳＤ５上に存在する場合でも、ＭＭＵ２２がＬＢＡの情報を取得するため、比較例ではソフトウェア処理であったアドレス変換を、ハードウェア処理として実行できる（図１２参照）。
【００９６】
このように、アドレス変換処理をソフトウェア処理ではなくハードウェア処理として実行できるため、ストレージアクセス性能のオーバヘッドを低減させることができ、アプリケーション２１４の性能を向上させることができる。
【００９７】
例えば、ＭＭＵ２２によるページテーブル３１及びＬＢＡテーブル４１の探索は、約１μｓ程度の時間で行なうことができる。このため、ＳＳＤ５がより高速になるほど、ストレージアクセス性能のオーバヘッドの削減効果が増大することになる。
【００９８】
また、ＭＭＵ２２がＬＢＡの情報をＣＲｘ２３を介してメモリマネージャ２１２に受け渡すことで、ＳＳＤ５へのアクセスを容易に、且つ、高速に実行することができる。
【００９９】
〔２〕その他
上述した一実施形態に係る技術は、以下のように変形、変更して実施することができる。
【０１００】
例えば、図７に示すＯＳ２１１において、メモリマネージャ２１２、ファイルシステム２１３の機能は、任意の組み合わせで併合してもよく、それぞれ分割してもよい。また、図１又は図７に示すＭＭＵ２２の機能は、複数の回路の組み合わせにより実現されてもよい。
【０１０１】
〔３〕付記
以上の実施形態に関し、さらに以下の付記を開示する。
【０１０２】
（付記１）
メモリ領域に格納されたデータへのアクセス用の第１の変換情報であって、仮想アドレスから前記メモリ領域の物理アドレスへの変換を行なうための前記第１の変換情報を格納する第１のメモリと、
ストレージに格納されたデータへのアクセス用の第２の変換情報であって、仮想アドレスから前記ストレージの論理ブロックアドレスへの変換を行なうための前記第２の変換情報を格納する第２のメモリと、
前記ストレージに格納されたデータへのアクセスを論理ブロックアドレスを使用して制御するオペレーティングシステムと、
第１の仮想アドレスのアクセス先に応じて、前記第１の変換情報又は前記第２の変換情報に基づく前記第１の仮想アドレスのアドレス変換を処理し、アドレス変換結果に基づき、前記メモリ領域に対するメモリアクセスを実行する、又は、前記オペレーティングシステムに対する前記第１の仮想アドレスに対応する第１の論理ブロックアドレスの受け渡しを実行する、メモリ管理回路と、
をそなえる、情報処理装置。
【０１０３】
（付記２）
前記オペレーティングシステムがアクセス可能なレジスタをそなえ、
前記メモリ管理回路は、前記アクセス先が前記ストレージである場合、前記第２の変換情報を参照して、前記第１の仮想アドレスに対応する前記第１の論理ブロックアドレスを取得し、前記第１の論理ブロックアドレスを、前記レジスタに格納する、付記１に記載の情報処理装置。
【０１０４】
（付記３）
前記オペレーティングシステムは、前記メモリ管理回路から前記アクセス先が前記ストレージであることを表す通知を受け取ると、前記レジスタを参照して、前記第１の論理ブロックアドレスを取得する、付記２に記載の情報処理装置。
【０１０５】
（付記４）
前記第１の変換情報及び前記第２の変換情報は、仮想アドレスを構成する複数のビット領域の探索によって特定されるエントリを有しており、
前記エントリには、前記第１の変換情報においては前記仮想アドレスに対応する物理アドレスが設定され、前記２の変換情報においては前記仮想アドレスに対応する論理ブロックアドレス、及び、当該エントリのアドレスが論理ブロックアドレスであることを示す情報、が設定される、
付記１〜３のいずれか１項に記載の情報処理装置。
【０１０６】
（付記５）
前記第１のメモリは、前記メモリ領域を有する揮発性メモリであり、
前記第２のメモリは、前記ストレージとは異なる不揮発性メモリであり、
前記不揮発性メモリは、前記揮発性メモリとともに主記憶装置を構成する、
付記１〜４のいずれか１項に記載の情報処理装置。
【０１０７】
（付記６）
前記第１の変換情報は、前記オペレーティングシステムが有するメモリマネージャにより管理され、
前記第２の変換情報は、前記オペレーティングシステムが有するファイルシステムにより管理される、
付記１〜５のいずれか１項に記載の情報処理装置。
【０１０８】
（付記７）
メモリ管理回路が、第１の仮想アドレスのアクセス先に応じて、
第１のメモリに格納された、メモリ領域に格納されたデータへのアクセス用の第１の変換情報であって、仮想アドレスから前記メモリ領域の物理アドレスへの変換を行なうための前記第１の変換情報、又は、
第２のメモリに格納された、ストレージに格納されたデータへのアクセス用の第２の変換情報であって、仮想アドレスから前記ストレージの論理ブロックアドレスへの変換を行なうための前記第２の変換情報、
に基づく前記第１の仮想アドレスのアドレス変換を処理し、
前記メモリ管理回路が、アドレス変換結果に基づき、前記メモリ領域に対するメモリアクセスを実行する、又は、前記ストレージに格納されたデータへのアクセスを論理ブロックアドレスを使用して制御するオペレーティングシステムに対する前記第１の仮想アドレスに対応する第１の論理ブロックアドレスの受け渡しを実行する、
情報処理方法。
【０１０９】
（付記８）
前記メモリ管理回路が、前記アクセス先が前記ストレージである場合、前記第２の変換情報を参照して、前記第１の仮想アドレスに対応する前記第１の論理ブロックアドレスを取得し、前記第１の論理ブロックアドレスを、前記オペレーティングシステムがアクセス可能なレジスタに格納する、付記７に記載の情報処理方法。
【０１１０】
（付記９）
前記オペレーティングシステムは、前記メモリ管理回路から前記アクセス先が前記ストレージであることを表す通知を受け取ると、前記レジスタを参照して、前記第１の論理ブロックアドレスを取得する、付記８に記載の情報処理方法。
【０１１１】
（付記１０）
前記第１の変換情報及び前記第２の変換情報は、仮想アドレスを構成する複数のビット領域の探索によって特定されるエントリを有しており、
前記エントリには、前記第１の変換情報においては前記仮想アドレスに対応する物理アドレスが設定され、前記２の変換情報においては前記仮想アドレスに対応する論理ブロックアドレス、及び、当該エントリのアドレスが論理ブロックアドレスであることを示す情報、が設定される、
付記７〜９のいずれか１項に記載の情報処理方法。
【０１１２】
（付記１１）
前記第１のメモリは、前記メモリ領域を有する揮発性メモリであり、
前記第２のメモリは、前記ストレージとは異なる不揮発性メモリであり、
前記不揮発性メモリは、前記揮発性メモリとともに主記憶装置を構成する、
付記７〜１０のいずれか１項に記載の情報処理方法。
【０１１３】
（付記１２）
前記第１の変換情報は、前記オペレーティングシステムが有するメモリマネージャにより管理され、
前記第２の変換情報は、前記オペレーティングシステムが有するファイルシステムにより管理される、
付記７〜１１のいずれか１項に記載の情報処理方法。
【符号の説明】
【０１１４】
１    コンピュータ
２    ＣＰＵ
２１    コア
２１１    ＯＳ
２１２    メモリマネージャ
２１３    ファイルシステム
２１４    アプリケーション
２２    ＭＭＵ
２３    ＣＲｘ
３    ＤＲＡＭ
３０    ファイルデータ
３１    ページテーブル
４、５５    不揮発性メモリ
４１    ＬＢＡテーブル
５    ＳＳＤ
５ａ    プログラム
５０    ファイル
５１    コントローラ
５２    フラッシュメモリ
５３    マッピング情報
５４    データ
【図１】
2019144921.tif 000003
【図２】
2019144921.tif 000004
【図３】
2019144921.tif 000005
【図４】
2019144921.tif 000006
【図５】
2019144921.tif 000007
【図６】
2019144921.tif 000008
【図７】
2019144921.tif 000009
【図８】
2019144921.tif 000010
【図９】
2019144921.tif 000011
【図１０】
2019144921.tif 000012
【図１１】
2019144921.tif 000013
【図１２】
2019144921.tif 000014