特許第6562419号(P6562419)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社アクセルの特許一覧

<>
  • 特許6562419-情報処理装置、及び情報処理システム 図000002
  • 特許6562419-情報処理装置、及び情報処理システム 図000003
  • 特許6562419-情報処理装置、及び情報処理システム 図000004
  • 特許6562419-情報処理装置、及び情報処理システム 図000005
  • 特許6562419-情報処理装置、及び情報処理システム 図000006
  • 特許6562419-情報処理装置、及び情報処理システム 図000007
  • 特許6562419-情報処理装置、及び情報処理システム 図000008
  • 特許6562419-情報処理装置、及び情報処理システム 図000009
  • 特許6562419-情報処理装置、及び情報処理システム 図000010
  • 特許6562419-情報処理装置、及び情報処理システム 図000011
  • 特許6562419-情報処理装置、及び情報処理システム 図000012
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6562419
(24)【登録日】2019年8月2日
(45)【発行日】2019年8月21日
(54)【発明の名称】情報処理装置、及び情報処理システム
(51)【国際特許分類】
   G06F 13/38 20060101AFI20190808BHJP
   G06F 13/14 20060101ALI20190808BHJP
   G06F 12/00 20060101ALI20190808BHJP
   G06F 13/16 20060101ALI20190808BHJP
【FI】
   G06F13/38 340C
   G06F13/38 350
   G06F13/14 320A
   G06F12/00 597U
   G06F13/16 520B
   G06F13/16 520C
   G06F12/00 560A
【請求項の数】7
【全頁数】18
(21)【出願番号】特願2016-217286(P2016-217286)
(22)【出願日】2016年11月7日
(65)【公開番号】特開2018-77564(P2018-77564A)
(43)【公開日】2018年5月17日
【審査請求日】2017年7月12日
(73)【特許権者】
【識別番号】398034168
【氏名又は名称】株式会社アクセル
(74)【代理人】
【識別番号】100085660
【弁理士】
【氏名又は名称】鈴木 均
(74)【代理人】
【識別番号】100149892
【弁理士】
【氏名又は名称】小川 弥生
(74)【代理人】
【識別番号】100185672
【弁理士】
【氏名又は名称】池田 雅人
(72)【発明者】
【氏名】菅野 裕揮
【審査官】 田名網 忠雄
(56)【参考文献】
【文献】 国際公開第2015/121912(WO,A1)
【文献】 米国特許出願公開第2016/0026388(US,A1)
【文献】 特開平11−194991(JP,A)
【文献】 特開2013−037422(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 3/06−3/08
G06F 12/00−12/06
G06F 13/10−13/18
G06F 13/38−13/42
(57)【特許請求の範囲】
【請求項1】
バスを介してアクセス可能なメインメモリと、外部記憶装置が接続されるPCIeインターフェースを有すると共に該PCIeインターフェースを制御するコントローラと、を備え、前記外部記憶装置に記憶されたデータを読み出して、NVMeコマンド規格に従って前記メインメモリに格納する情報処理装置であって、
前記メインメモリは複数の小領域が連続する大領域を複数有し、
前記コントローラは、前記メインメモリの前記各大領域の先頭に位置する開始アドレスの情報を格納する格納メモリと仮想アドレス生成手段と、を備え、
前記仮想アドレス生成手段は、前記NVMeコマンド規格に従って指定される複数の指定アドレスを一つの前記開始アドレスに割り当てると共に、該指定アドレスに対応した加算アドレスを保持または算出し、割り当てられた前記開始アドレスの情報に前記加算アドレスを加算して仮想アドレスを生成することを特徴とする情報処理装置。
【請求項2】
前記仮想アドレス生成手段は、
前記複数の指定アドレスを一の前記開始アドレスに割り当てるアドレス割当手段と、
前記指定アドレスに対応する前記開始アドレスと前記加算アドレスとを求める指定アドレス解析手段と、
求められた前記開始アドレスと前記加算アドレスとに基づいて前記仮想アドレスを算出する仮想アドレス算出手段と、を備えることを特徴とする請求項1に記載の情報処理装置。
【請求項3】
前記情報処理装置が備えるプロセッサからのデータのリードリクエストに基づいて前記仮想アドレス生成手段に前記指定アドレスを指示する指定アドレス指示手段を備え、
前記指定アドレス指示手段は、該指定アドレス指示手段から前記仮想アドレス生成手段に出力された最新の指定アドレスの次の指定アドレスに基づき、前記外部記憶装置から読み出すデータの格納に必要なデータサイズに応じた一または複数の指定アドレスを生成することを特徴とする請求項1又は2に記載の情報処理装置。
【請求項4】
前記指定アドレス指示手段は、一の前記開始アドレスによって表現される前記メインメモリの連続する一領域に一の前記リードリクエストに基づくデータの全部を格納できない場合、他の前記開始アドレスに割り当てられている前記指定アドレスを指示することを特徴とする請求項3に記載の情報処理装置。
【請求項5】
前記情報処理装置が備えるプロセッサからのデータのリードリクエストに基づいて前記仮想アドレス生成手段に前記指定アドレスを指示する指定アドレス指示手段を備え、
前記指定アドレス指示手段は、前記リードリクエスト毎に夫々異なる前記大領域を示す前記指定アドレスを指示することを特徴とする請求項1又は2に記載の情報処理装置。
【請求項6】
画像データ又は音声データを処理する処理ユニットと、
前記メインメモリ上の前記仮想アドレスに格納されたデータを取得して、前記処理ユニットに出力するように制御するサブCPUと、を備えることを特徴とする請求項1乃至5の何れか一項に記載の情報処理装置。
【請求項7】
請求項1乃至6の何れか一項に記載の情報処理装置と、前記PCIeインターフェースと接続する外部記憶装置と、を備えることを特徴とする情報処理システム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は画像や音声等のデータを処理する情報処理装置、及び情報処理システムに関し、特にPCI Express接続のSSDを利用する場合に用いるPRPリストによるメモリの消費を低減することが可能な情報処理装置、及び情報処理システムに関するものである。
【背景技術】
【0002】
CPU(Central Processing Unit)の処理速度が増大するにつれてコンピュータ等の情報処理装置の処理速度は高速化し、また高速のCPUを有効に活用するため、情報処理装置とそれに接続する周辺デバイスとの間のデータ転送のインターフェースも高速データ転送が可能なものが開発されている。
高速データ転送が可能なインターフェースの規格の1つにPCIe(PCI Express)があり、PCIe接続のSSD(Solid State Drive)のコマンド規格としてAHCI(Advanced Host Controller Interface)やNVMe(Non-Volatile Memory Express)がある。特に後者はキューに発行できるコマンド数がAHCIに比べて拡張されていることから、SSDの性能を最大限に発揮させることができる規格として、今後、急速な普及が予想される。
ここで、NVMeにおいては、メインメモリを介してデータやコマンドの受け渡しが行われる。図11(a)、(b)は、NVMe規格におけるデータの転送方法について説明するための模式図である。NVMe規格では、例えばデータの転送先となるメインメモリ上に夫々4KB(キロバイト)からなる複数の小領域を確保し、各小領域の先頭アドレスを夫々8バイトのPRP(Physical Region Page)リストにより管理する。
【0003】
例えばメインメモリ上に合計1MB(1、048、576バイト)の記憶領域を確保する場合は、4KB(4、096バイト)の小領域を256個確保し、これらの小領域を256個のPRPリストにより管理する。PRPリストを用いることにより、汎用PC(Personal Computer)等、メインメモリ上に連続する大きな領域を確保することが困難な場合であっても、メインメモリにデータを分散して格納することができる(図11(a))。
【先行技術文献】
【非特許文献】
【0004】
【非特許文献1】NVM Express Revision 1.2.1 (June 5、2016)(1.4 Theory of Operation、7.2.5 Command Examples等)
【発明の概要】
【発明が解決しようとする課題】
【0005】
一方、パチンコ機やパチスロ機をはじめとする遊技機等に実装される画像処理装置においても、近年は表示すべきコンテンツのデータ量が大きくなっていることから、コンテンツデータの格納手段としてSSDの活用が高まっており、SSDのインターフェースとしてPCIeを採用したものも導入されつつある。
【0006】
遊技機等に実装される画像処理装置がPCIe接続のSSDを利用しようとする場合、汎用PC等とは異なり、メインメモリ上に大きな連続領域を確保することは容易である。しかし、NVMeの規格上、PRPリストを用いてメインメモリ上の記憶領域を管理しなければならならない(図11(b))。仮に、メインメモリ上の1MBの連続領域を管理するためには、PRPリストのために2KB(8バイト×256個=2、048バイト)のメモリ領域を消費することとなり、無駄が発生する。
本発明は上述の事情に鑑みてなされたものであり、PRPリストによるメモリの消費を低減することを目的とする。
【課題を解決するための手段】
【0007】
上記の課題を解決するために、請求項1に記載の発明は、バスを介してアクセス可能なメインメモリと、外部記憶装置が接続されるPCIeインターフェースを有すると共に該PCIeインターフェースを制御するコントローラと、を備え、前記外部記憶装置に記憶されたデータを読み出して、NVMeコマンド規格に従って前記メインメモリに格納する情報処理装置であって、前記メインメモリは複数の小領域が連続する大領域を複数有し、前記コントローラは、前記メインメモリの前記各大領域の先頭に位置する開始アドレスの情報を格納する格納メモリと仮想アドレス生成手段と、を備え、前記仮想アドレス生成手段は、前記NVMeコマンド規格に従って指定される複数の指定アドレスを一つの前記開始アドレスに割り当てると共に、該指定アドレスに対応した加算アドレスを保持または算出し、割り当てられた前記開始アドレスの情報に前記加算アドレスを加算して仮想アドレスを生成することを特徴とする。

【発明の効果】
【0008】
本発明によれば、PRPリストによるメモリの消費を低減することが可能となる。
【図面の簡単な説明】
【0009】
図1】本発明の一実施形態に係る画像処理装置を示すハードウェアブロック図である。
図2】アドレス生成回路の構成を示す機能ブロック図である。
図3】(a)、(b)は、メインメモリに確保される領域の一例を示す模式図である。
図4】第一のアドレスの割当例を説明する図である。
図5】第二のアドレスの割当例を説明する図である。
図6】第三のアドレスの割当例を説明する図である。
図7】第四のアドレスの割当例を説明する図である。
図8】第五のアドレスの割当例を説明する図である。
図9】画像処理装置の起動時の動作を示すシーケンス図である。
図10】画像データの読み出し時の画像処理装置の動作を示すシーケンス図である。
図11】(a)、(b)は、NVMe規格におけるデータの転送方法について説明するための模式図である。
【発明を実施するための形態】
【0010】
本発明は、NVMeコマンド規格の下でPCIeインターフェースの記憶装置(例:SSD;Solid State Drive)を外部記憶装置として利用する場合に、NVMeコマンド規格に定義されたPRPリストの機能を拡張して使用するものである。
ここで、NVMeコマンド規格においては、夫々のPRPリストによってメインメモリ上の1つの小領域(例えば4KB)を表現する。
本発明においては、夫々のPRPリストによってメインメモリ上の連続する複数の小領域を表現する点に特徴がある。具体的には、メインメモリ上の連続する領域の先頭に位置する開始アドレスをポインタ情報としてPRPリストに保持させる。開始アドレスに対して小領域のサイズに応じた加算アドレス(例えば、4KB、8KB、16KB…)を加算した仮想アドレスを順次生成することにより、1つのPRPリストでメインメモリ上の連続した複数の小領域群を表現する。
以下、本発明を図に示した実施形態を用いて詳細に説明する。但し、この実施形態に記載される構成要素、種類、組み合わせ、形状、その相対配置などは特定的な記載がない限り、この発明の範囲をそれのみに限定する主旨ではなく単なる説明例に過ぎない。
【0011】
〈画像処理装置〉
図1は、本発明の一実施形態に係る画像処理装置を示すハードウェアブロック図である。
画像処理装置100は、メインCPU(Central Processing Unit)101、メインメモリ103、GPU(Graphics Processing Unit)105(画像処理ユニット)、表示装置111、及び、CGROM(Character Generator ROM)コントローラ120を備える。メインCPU101、メインメモリ103、GPU105、及びCGROMコントローラ120は、メインバス151により接続されている。また、画像処理装置100は、外部記憶装置140が接続されるPCIeインターフェースを備えており、画像処理装置100と外部記憶装置140とによって画像処理システム(情報処理システム)が構成される。画像処理装置100は、外部記憶装置140に記憶されたデータをNVMeコマンド規格に従ってメインメモリ103に格納する。
【0012】
メインCPU101は、GPU105を含む画像処理装置100の全体を制御する処理装置である。
メインメモリ103は、画像処理装置100の各部がメインバス151を介してアクセス可能な揮発性の記憶手段である。メインメモリ103は、メインCPU101が作成したコマンドリスト、ディスプレイリスト、外部記憶装置140から読み出された画像データ、及びGPU105が描画した画像データ等を格納する。メインメモリ103は大容量の、例えばDDR(Double-Data-Rate)3メモリ等から構成される。
GPU105は画像処理専用の処理装置であり、描画回路107、及び表示回路109を備える。描画回路107は、メインCPU101から供給されるディスプレイリストに基づいて画像を描画する回路である。表示回路109は、描画回路107が描画した画像を表示装置111に表示させる回路である。
表示装置111は画像を表示する手段であり、LCD(Liquid Crystal Display)等から構成される。
【0013】
CGROMコントローラ120は、PCIeインターフェースを制御する。具体的には、CGROMコントローラ120は、NVMeコマンド規格に従って、PCIeインターフェースにより接続された外部記憶装置140からのデータ読み込み及び読み出したデータのメインメモリ103への書き込みを制御する。
CGROMコントローラ120は、cgbI/F121、サブCPU123(指定アドレス指示手段)、PCIeRC・IP125、及びアドレス記憶ユニット129を備える。cgbI/F121、サブCPU123、PCIeRC・IP125、及びアドレス記憶ユニット129は、CGROMコントローラ120内の各部を接続する内部バス153により接続されている。
【0014】
cgbI/F121は、メインバス151と内部バス153との間を接続するインターフェースである。
サブCPU123は、CGROMコントローラ120の全体を制御する処理装置である。サブCPU123は、NVMe規格のフォーマットに従ったコマンドリストをRC・IP125を介して外部記憶装置140に出力する。
PCIeRC・IP125は、PCIe(PCI Express)のルートコンプレックスIP(Root Complex IP)である(以下、単に「RC・IP」と表記する)。RC・IP125は、外部記憶装置140(指定アドレス指示手段)を接続するPCIeインターフェースを有したコントローラであり、PCIeインターフェースを制御する。また、RC・IP125は、外部記憶装置140に対するデータのリードリクエストを中継するブリッジとして機能する。したがって、サブCPU123からのコマンドリストはRC・IP125を介して外部記憶装置140に出力され、外部記憶装置140のコントローラ(図示省略)によってリクエストされたリードデータが読み出され、また読み出したデータのメインメモリ103への格納先情報は外部記憶装置140のコントローラがRC・IP125を介してアドレス記憶ユニット129から入手する。
【0015】
アドレス記憶ユニット129は、RC・IP125が外部記憶装置140から読み出したデータをメインメモリ103へ書き込む際のデータの格納場所に関する情報を提供する手段である。アドレス記憶ユニット129の詳細については後述する。
外部記憶装置140はRC・IP125にPCIe接続するSSD等の不揮発性記憶装置であり、GPU105が描画する画像のコンテンツデータを格納する。
【0016】
なお、メインバス151と内部バス153は、インターコネクトモジュール(ICM155)によっても接続されている。ここで、描画回路107とcgbI/F121はマスタとスレーブの関係にあり、描画回路107からCGROMコントローラ120へのリクエストとこれに対する応答はcgbI/F121を介して送受される。例えば、描画回路107からcgbI/F121を介してサブCPU123に出力されたリードリクエストに対するレスポンスは、cgbI/F121から描画回路107に返される。しかし、他のデータのやり取り(例えばRC・IP125によるメインメモリ103へのデータの書き込みや、サブCPU123によるメインメモリ103からのデータの読み込み)はRC・IP125がマスタ、メインメモリ103がスレーブとなるので、ICM155を介して実行される。
【0017】
〈アドレス記憶ユニット〉
図1に示すようにアドレス記憶ユニット129は、アドレス生成回路130(仮想アドレス生成手段)、及びSRAM(Static Random Access Memory:PRPリスト格納メモリ)139を備える。アドレス生成回路130は、外部記憶装置140から読み出したデータをメインメモリ103に格納するための仮想アドレスを生成する。
図2は、アドレス生成回路の構成を示す機能ブロック図である。
アドレス生成回路130は、アドレス割当部131(アドレス割当手段)、PRPリスト開始アドレス記憶部133、指定アドレス解析部135(指定アドレス解析手段)、及び、仮想アドレス算出部137(仮想アドレス算出手段)を備える。
アドレス割当部131は、複数の指定アドレスを1つのPRPリスト(1つの開始アドレス)に割り当てる手段である。PRPリスト開始アドレス記憶部133は、SRAM139から読み出した開始アドレスの1つを一時的に記憶する手段である。指定アドレス解析部135は、指定アドレスから、指定アドレスに対応する開始アドレスを記憶しているSRAMのアドレスと、指定アドレスに対応する加算アドレスを求める手段である。仮想アドレス算出部137は、指定アドレスに対応する開始アドレスと加算アドレスとに基づいて仮想アドレスを算出する手段である。
SRAM139は、アドレス生成回路130から高速アクセス可能な揮発性メモリであり、メインメモリ103に設けた複数のデータ格納用の領域について、夫々の開始アドレス(PRPリスト)を格納する。
【0018】
〈アドレスの割り当て例1〉
CGROMコントローラによるアドレスの割り当て例について説明する。ここでは、メインメモリに夫々連続した1MBからなる4つの領域(領域0,1,2,3)を確保できる場合の例により説明する。
図3(a)、(b)は、メインメモリに確保される領域の一例を示す模式図である。メインメモリに確保する各領域0〜3は、図3(a)に示すように互いに連続した領域であってもよいし、図3(b)に示すように互いに連続していない領域であってもよい。
【0019】
図4は、第一のアドレスの割り当て例を説明する図である。
「指定アドレス」は、サブCPU123から出力されるコマンドリストに含まれ、外部記憶装置140がRC・IP125を介してアドレス記憶ユニット129から読み出す情報が格納されている場所を示す。具体的には、指定アドレスは、アドレス生成回路130内のアドレスであって、情報が格納されている領域の先頭アドレスである。RC・IP125を介して外部記憶装置140がアドレス記憶ユニット129から読み出す情報とは、外部記憶装置140が読み出したデータのメインメモリへの格納場所を示す仮想アドレスである。
「SRAMのアドレス」は、指定アドレスに対応するメインメモリの「開始アドレス」を格納しているSRAM139内のアドレスを示す。
メインメモリの「開始アドレス」は、メインメモリ103上に確保した各領域0〜3の先頭に位置するアドレスを示す情報(データ)であり、夫々8バイトからなる。メインメモリの開始アドレスはNVMe規格に定義されているPRPリスト(非特許文献1、4.3 Physical Region Page Entry and List)そのものである。本例では、メインメモリ103の一つの領域として1MBを割り当てていると共に、メモリページサイズを4KBに設定したので、1つの開始アドレスに対して夫々256個の指定アドレスが付与され、メインメモリ103の1MBの領域を管理することができる。
なお、本明細書では、説明の便宜上、夫々のメインメモリの開始アドレスに「PRPリスト番号」を付して、「PRPリスト#0」、「PRPリスト#1」…のようにも表記する。
【0020】
「加算アドレス」は、アドレス生成回路130の仮想アドレス算出部137が開始アドレスに対して加算することにより「仮想アドレス」を算出するためのものである。1つの指定アドレスに対しては、1つの開始アドレスと1つの加算アドレスが対応づけられており、開始アドレスに対して加算アドレスを加算することにより、指定アドレスに1対1で対応した仮想アドレスが算出される。なお、加算アドレスは、各仮想アドレス間のステップが一定となるように設定されており、仮想アドレスは開始アドレスから順次連続する小領域を表現する。各仮想アドレス間のステップは、メモリページサイズ1つ分に等しい。
このように、夫々のPRPリスト#0〜#3にはメインメモリ103のメモリ空間として、夫々1MBの連続領域を表現する仮想アドレスが割り当てられる。
【0021】
〈アドレス記憶ユニットの動作概要〉
続いて、アドレス記憶ユニット129の動作の概要について、図2、及び図4を参照して説明する。
【0022】
アドレス割当部131は、メモリページサイズとメインメモリ103に確保された領域の大きさに応じて、複数の指定アドレスを1つのPRPリスト(1つの開始アドレス)に割り当てる。例えば、メモリページサイズが4KBでメインメモリ103に確保された領域0〜3の大きさが夫々1MBである場合、各領域に夫々256個(1MB=1024KB÷4KB)の指定アドレスを割り当てる。具体的には、アドレス割当部131は指定アドレス0〜255までをPRPリスト#0(開始アドレスD0)に割り当てる。同様に、アドレス割当部131は、指定アドレス256〜511までをPRPリスト#1(開始アドレスD1)に、指定アドレス512〜767までをPRPリスト#2(開始アドレスD2)に、指定アドレス768〜1023までをPRPリスト#3(開始アドレスD3)に割り当てる。指定アドレスとPRPリストのSRAM139内におけるアドレスとの対応関係はアドレス生成回路130のレジスタ内に保持される。
また、アドレス割当部131は、夫々の指定アドレスに加算アドレスを対応づける。指定アドレスと加算アドレスとの対応関係は、アドレス生成回路130のレジスタ内に保持される。アドレス割当部131はレジスタに、指定アドレスから加算アドレスを算出するための演算式を保持させてもよいし、複数の指定アドレス(0,1,2…)と各指定アドレスに対応する加算アドレス(0KB,4KB,8KB…)を夫々保持させてもよい。なお、レジスタの容量を効率的に使用するためには、前者の方が望ましい。
【0023】
指定アドレス解析部135は、RC・IP125を介して外部記憶装置140のコントローラから出力(指示)された指定アドレスを解析して、指定アドレスに対応するPRPリストを記憶したSRAM139のアドレスと、指定アドレスに対応する加算アドレスとを求める。例えば、指定アドレス解析部135は、指定アドレス1についてSRAMのアドレス0と加算アドレス4KB(=4KB×1)を導出し、指定アドレス255についてSRAMのアドレス0と加算アドレス1020KB(=4KB×255)を導出する。
PRPリスト開始アドレス記憶部133は、指定アドレス解析部135が導出したSRAM139のアドレスから読み出された1つのPRPリストの開始アドレスを一時的に記憶する。
【0024】
仮想アドレス算出部137は、指定アドレスに対して割り当てられた開始アドレスと加算アドレスとを加算することにより、指定アドレスに1対1で対応する仮想アドレスを算出する。例えば、指定アドレス1については開始アドレス「D0」と加算アドレス「4KB」を加算することにより仮想アドレス「D0+4KB」を算出し、同様に指定アドレス255については仮想アドレス「D0+1020K」を算出する。また、仮想アドレス算出部137は、算出した仮想アドレスを、アドレス記憶ユニット129の指定アドレスに格納する。
【0025】
〈アドレスの割り当て例2〉
他のアドレスの割り当て例について説明する。図5図8は、アドレスの割り当て例を説明する図である。1つのPRPリストで管理するメインメモリ103の領域は1MBである必要はないし、加算アドレス(メモリページサイズ)は4KBに限られない。
図5は、1つのPRPリストでメインメモリ103の512KBの領域を管理する例である。本例では、加算アドレス(メモリページサイズ)が4KBであるため、1つのPRPリストに対して128個の指定アドレスが対応づけられている。
図6は、1つのPRPリストでメインメモリ103の2MBの領域を管理する例である。本例では、加算アドレス(メモリページサイズ)が4KBであるため、1つのPRPリストに対して512個の指定アドレスが対応づけられている。
図7は、1つのPRPリストでメインメモリ103の2MBの領域を管理する例である。本例では、加算アドレス(メモリページサイズ)が8KBであるため、1つのPRPリストに対して、256個の指定アドレスが対応づけられている。
図8は、実際にメインメモリ103に確保される領域(512KB)と1つのPRPリストで管理できる領域のサイズ(1MB)とが異なっている例である。本例では、実際にメインメモリ103に確保された領域に対応する指定アドレス0〜127のみをメモリの領域管理に利用し、他の指定アドレス128〜255は利用しない。
【0026】
〈起動時の動作シーケンス〉
画像処理装置の起動時の動作について説明する。図9は、画像処理装置の起動時の動作を示すシーケンス図である。なお、この処理は、GPU105の起動前に実行される。画像処理装置100の起動時にサブCPU123はSRAM139を初期化すると共に、例えば図4に示すような開始アドレスD0〜D3を記述したPRPリスト#0〜#3を生成してSRAM139に格納する処理を実行する。
【0027】
ステップS1において、メインCPU101は、外部記憶装置140から読み出したデータを格納する領域としてメインメモリ103に割り当てた連続領域の先頭アドレス及び連続領域の大きさに関する情報をサブCPU123に出力する。
ここで、図3(a)に示すように連続領域がメインメモリ103内で単一の連続領域として確保されている場合、メインCPU101は、連続領域の先頭アドレスD0と連続領域の大きさ(例えば4MB)をサブCPU123に出力する。また、図3(b)に示すように連続領域がメインメモリ103内で分散している場合、メインCPU101は、各連続領域0、1…の先頭アドレス(D0,D1…)と各連続領域の大きさ(例えば夫々1MB)をサブCPU123に出力する。なお、メインCPU101は、図3(a)に示すような連続領域を小さい連続領域に区切り、区切られた夫々の連続領域の先頭アドレスD0、D1…と、各連続領域の大きさ(例えば夫々1MB)をサブCPU123に出力するようにしてもよいし、連続領域の先頭アドレスD0と各連続領域の大きさ(例えば夫々1MB)をサブCUP123に出力するようにしても良い。
【0028】
ステップS2において、サブCPU123は、メインCPU101から出力された情報に基づいてSRAM139に格納するPRPリストを生成する。サブCPU123は、1つの連続領域を複数のPRPリストで管理するようにしてもよいし、1つの連続領域を1つのPRPリストで管理するようにしてもよい。
例えば、図3(a)に示すように4MBの連続した領域が利用可能であり、サブCPU123がメインCPU101から先頭アドレスD0と領域の大きさとして4MBの情報を取得しているが、PRPリストにおいて連続領域の1単位を1MBに設定する場合は、以下のように処理される。即ち、サブCPU123は、開始アドレスD0をポインタ情報として有するPRPリスト#0を生成し、開始アドレスD0から1MBずれた開始アドレスD1をポインタ情報として有するPRPリスト#1を生成する。サブCPU123は上記動作を順次実行して合計4個のPRPリストを生成する。
また、図3(a)に示すように4MBの連続した領域が確保されているが、メインCPU101から1MB毎に区切られた連続領域に関する情報が出力された場合、サブCPU123は開始アドレスD0〜D3を夫々ポインタ情報として有する4個のPRPリスト#0〜#3を生成する。
更に、図3(b)に示すように分散した複数の連続領域が確保されており、各連続領域を夫々1つのPRPリストで管理する場合、サブCPU123は、開始アドレスD0をポインタ情報として有するPRPリスト#0を生成し、以下同様に開始アドレスD1〜D3をポインタ情報として有するPRPリスト#1〜#3を生成する。
【0029】
ステップS3において、サブCPU123は、生成したPRPリストをSRAM139の所定のアドレスに格納する。例えば図4の場合、サブCPU123は、PRPリスト#0(開始アドレスD0)をSRAM139のアドレス0に格納し、PRPリスト#1(開始アドレスD1)をSRAM139のアドレス1に格納する。
【0030】
ステップS4において、サブCPU123は、RC・IP125を介して外部記憶装置140のCAP(Controller Capabilities)レジスタの内容を読み出して、メモリページサイズの最小値が設定されているCAP.MPSMINに従って、メモリページサイズを自身が保持するレジスタに記憶させる。即ち、サブCPU123は、CAPレジスタの設定データを外部記憶装置140に対して要求し、外部記憶装置140はこの要求に対する応答としてCAPレジスタの内容をサブCPU123に返す。サブCPU123は、CAPレジスタ中のCAP.MPSMINの値を自身のレジスタに記憶させる。
ステップS5において、サブCPU123は、メモリページサイズを、アドレス記憶ユニット129を構成するアドレス生成回路130のレジスタに記憶させる。
ステップS6において、アドレス生成回路130のアドレス割当部131は、メモリページサイズに基づいて、1つのPRPリストに対して複数の指定アドレスを割り当てる。例えば、メモリページサイズが4KB、1つのPRPリストでメインメモリ103の1MBの領域を管理する場合は、PRPリスト#0に指定アドレス0〜255を割り当て、PRPリスト#1に指定アドレス256〜511を割り当てる。アドレス割当部131は、指定アドレスとPRPリストのSRAM139内におけるアドレスとの対応関係をレジスタに記憶させる。
ステップS7において、アドレス生成回路130のアドレス割当部131は、加算アドレスを設定する。即ち、アドレス割当部131は、メモリページサイズに基づいて、各指定アドレスに加算アドレスを対応づけると共に、その対応関係をレジスタに記憶させる。
【0031】
〈メインシーケンス〉
画像処理装置が外部記憶装置からデータを取得して表示装置に出力する動作について説明する。図10は、画像データの読み出し時の画像処理装置の動作を示すシーケンス図である。
【0032】
ステップS11において、メインCPU101は、描画するべき画像について、設定データや描画制御コマンド群から構成されるディスプレイリストを生成し、ステップS13において描画回路107に出力する。
ステップS15において、描画回路107は、ディスプレイリストに基づいて、例えば1フレーム分の画像形成に必要な画像データのリードリクエストを、cgbI/F121を介してCGROMコントローラ120のサブCPU123に出力する。このリードリクエストには、外部記憶装置140から読み出すデータの読み出し先頭アドレスと、データ量の情報とが含まれている。
【0033】
ステップS17において、サブCPU123は、リードリクエストに基づいて、外部記憶装置140に格納されているデータの読み出しと、読み出したデータのメインメモリ103への書き込みを指示するコマンドリストを生成する。コマンドリストには、外部記憶装置140から読み出すデータの読み出し先頭アドレスと、読み出すデータのデータ量と、読み出したデータをメインメモリ103に書き込むためのアドレス情報として先頭に位置する1つの指定アドレス(図4参照)が含まれている。
【0034】
ステップS19において、サブCPU123は、RC・IP125を介してコマンドリストを外部記憶装置140に出力する。
ステップS21において、外部記憶装置140のコントローラはコマンドリストに含まれる指定アドレスに基づきRC・IP125を介してアドレス記憶ユニット129にアクセスする。1つの指定アドレスはメモリページサイズ1つ分(例えば4KB)のデータに対応する。
ステップS23において、アドレス記憶ユニット129を構成するアドレス生成回路130の指定アドレス解析部135は、指定アドレスを解析する。即ち、指定アドレス解析部135は、RC・IP125を介して外部記憶装置140から出力された指定アドレスに基づいて、指定アドレスに対応するPRPリストが格納されたSRAMのアドレスと加算アドレスとを求める。例えば指定アドレス「0」の場合は、SRAMのアドレス「0」と、加算アドレス「0」を求める。
【0035】
ステップS25において、アドレス生成回路130の指定アドレス解析部135は、ステップS23において求められたSRAM139のアドレスから開始アドレスを読み出す。即ち、アドレス生成回路130の指定アドレス解析部135は、ステップS23において求めたSRAM139のアドレスと、データ(開始アドレス)の読み出しに係る要求をSRAM139に出力する。SRAM139は、指定されたアドレスに格納されているデータ(開始アドレス)を取り出して出力する。指定アドレス解析部135は、SRAM139のアドレスから開始アドレスを取得する。
例えば、指定アドレス「0」の場合、指定アドレス解析部135は、SRAMのアドレス「0」から開始アドレス「D0」を取得する。また、指定アドレス解析部135は、取得した開始アドレスをPRPリスト開始アドレス記憶部133に一時的に記憶させる。
【0036】
ステップS27において、アドレス記憶ユニット129の仮想アドレス算出部137は、開始アドレスに加算アドレスを加算することにより指定アドレスに対応する仮想アドレスを生成する。例えば、指定アドレスが「0」の場合、仮想アドレス算出部137は、開始アドレス「D0」に加算アドレス「0」を加算して仮想アドレス「D0」を生成する。また、仮想アドレス算出部137は、生成した仮想アドレスをアドレス生成回路130内の指定アドレス「0」に格納する。
【0037】
ステップS29において、外部記憶装置140のコントローラはRC・IP125を介してアドレス記憶ユニット129内の指定アドレスから仮想アドレスを読み出す。
【0038】
ステップS31において、外部記憶装置140のコントローラはコマンドリストに従って読み出したメモリページサイズ1つ分(例えば4KB)のデータを、アドレス記憶ユニット129から読み出したメインメモリ103の仮想アドレス「D0」に書き込む。即ち、外部記憶装置140はRC・IP125を介して仮想アドレス「D0」で表されるメインメモリ103上の領域にデータを書き込む。
【0039】
ステップS33において、外部記憶装置140は、アドレス記憶ユニット129に出力した最新の指定アドレス(例えば「0」)に1をインクリメントした指定アドレス(例えば「1」)を生成し、アドレス記憶ユニット129に出力する。より正確には、外部記憶装置140はRC・IP125を介して、1つの仮想アドレスの格納に必要なデータサイズ分のアドレスを、最新の指定アドレスに対してカウントアップしたアドレスを指定アドレスとして生成し、アドレス記憶ユニット129に出力する。
【0040】
ステップS35は、ステップS23と同様である。ステップS35において、アドレス記憶ユニット129を構成するアドレス生成回路130の指定アドレス解析部135は、指定アドレスを解析する。即ち、指定アドレス解析部135は、外部記憶装置140から出力された指定アドレスに基づいて、指定アドレスに対応するPRPリストが格納されたSRAMのアドレスと加算アドレスとを求める。例えば指定アドレス「1」の場合は、SRAMのアドレス「0」と、加算アドレス「4K」を求める。
【0041】
ステップS37は、ステップS25と同様である。ステップS37において、アドレス生成回路130の指定アドレス解析部135は、ステップS35において求められたSRAM139のアドレスから開始アドレスを読み出す。
例えば、指定アドレス「1」の場合、指定アドレス解析部135は、SRAMのアドレス「0」から開始アドレス「D0」を取得する。また、指定アドレス解析部135は、取得した開始アドレスをPRPリスト開始アドレス記憶部133に一時的に記憶させる。
【0042】
ステップS39は、ステップS27と同様である。ステップS39において、アドレス記憶ユニット129の仮想アドレス算出部137は、開始アドレスに加算アドレスを加算することにより指定アドレスに対応する仮想アドレスを生成する。例えば、指定アドレスが「1」の場合、仮想アドレス算出部137は、開始アドレス「D0」に加算アドレス「4K」を加算して仮想アドレス「D0+4K」を生成する。また、仮想アドレス算出部137は、生成した仮想アドレスをアドレス生成回路130内の指定アドレス「1」に格納する。
ステップS41は、ステップS29と同様である。ステップS41において、外部記憶装置140は、アドレス記憶ユニット129内の指定アドレスから仮想アドレスを読み出す。
【0043】
ステップS43は、ステップS31と同様である。ステップS43において、外部記憶装置140のコントローラは、読み出したデータを、アドレス記憶ユニット129から読み出したメインメモリ103の仮想アドレス「D0+4K」に書き込む。
【0044】
このように、外部記憶装置140はRC・IP125を介して、コマンドリストに含まれる指定アドレスと読み出しデータ量とに基づいて、コマンドリストで指定された全てのデータの読み出しが完了するまで、ステップS33〜S43の処理を繰り返す。
例えばコマンドリストに含まれる指定アドレスが「0」で、外部記憶装置140からの読み出しデータ量が32KBの場合、外部記憶装置140はステップS21〜S31で指定アドレス「0」に対応するデータの読み出しと書き込みを実行した後に、ステップS33〜S43を実行して順次、指定アドレス「1」〜「7」を生成し、4KBずつのデータをメインメモリ103の仮想アドレス「D0+4K」〜「D0+28K」に格納する。
【0045】
ステップS45において、外部記憶装置140はRC・IP125を介して、サブCPU123に対して要求された全てのデータについてメインメモリ103への格納が終了した旨を通知する。
ステップS47において、サブCPU123はメインメモリ103上の仮想アドレスを指定して、該アドレスに格納されたデータを読み出す。
ステップS49において、サブCPU123は、cgbI/F121を介して読み出したデータを描画回路107に出力する。ここで、描画回路107とcgbI/F121はマスタとスレーブの関係にある。ステップS15でマスタである描画回路107からスレーブであるcgbI/F121に対して行われたリクエストに対するレスポンスとしてのリードデータは、cgbI/F121から描画回路107に返される。
【0046】
ステップS51において、描画回路107は、サブCPU123から入力されたデータに基づいて描画処理を行う。
ステップS53において、描画回路107は、描画処理により生成した画像データをメインメモリ103に格納する。
ステップS55において、表示回路109は、表示装置111の表示タイミングに基づいてメインメモリ103から画像データを取得する。
ステップS57において、表示回路109は、表示装置111に表示画面としての画像データを出力する。
【0047】
〈コマンドリストに含める指定アドレスの管理方法〉
サブCPU123は、コマンドリストに含める指定アドレスを管理する。以下、図4を参照しながら説明する。
【0048】
《第一のパターン》
サブCPU123は、直前のリードリクエストで使用していない指定アドレスをコマンドリストに含めるように制御する。例えば、サブCPU123は、直前のリードリクエストで使用された指定アドレスの直後に位置する指定アドレス(未使用の指定アドレス)をコマンドリストに含めるように制御する。なお、サブCPU123は、コマンドリストに含めた指定アドレスと、メモリページサイズと、読み出しデータ量とから、直前のリードリクエストで使用された指定アドレスを認識することができる。
仮に、直前のリードリクエストで指定アドレス0〜3が使用された場合、サブCPU123は、次のリードリクエストに基づくコマンドリストに指定アドレス4を含める。また、外部記憶装置140のコントローラは、コマンドリストに含まれた指定アドレス4からカウントアップする。
【0049】
《第二のパターン》
サブCPU123は、1つのリードリクエストで要求されるデータの全体が、メインメモリ103内に連続して格納されるように、コマンドリストに含める指定アドレスを制御する。例えば、サブCPU123は、1つのPRPリストによって表現されるメインメモリの連続する1領域に1つのリードリクエストに基づくデータの全部を格納できない場合、他のPRPリストに割り当てられている指定アドレスをコマンドリストに含めるように制御する。
仮に、メインメモリ103に図3(b)に示すような分散した領域0〜3が確保されているとする。図4の指定アドレス0〜250までが使用済みの結果、領域0の残容量が20KB、領域1は未使用であるとする。読み出しデータのデータ量が32KBの場合、読み出しデータの全体を領域0の未使用部分に格納することはできない。そこで、サブCPU123は、読み出しデータの全体がメインメモリ103の領域1に格納されるように、図4に示す指定アドレス256をコマンドリストに含めるように制御する。この場合、読み出しデータは、図4の指定アドレス256〜263に対応するメインメモリ103内の領域に格納される。
【0050】
《第三のパターン》
サブCPU123は、1つのリードリクエストで要求されるデータの全体が、メインメモリ103内に連続して格納されるように、コマンドリストに含める指定アドレスを制御する。例えば、サブCPU123は、1つのリードリクエストに対して1つのPRPリストを割り当てるように、コマンドリストに含める指定アドレスを制御する。
具体的には、1番目に出力されたリードリクエストに対して、サブCPU123は、PRPリスト#0に対応づけられた複数の指定アドレスのうちの先頭に位置するアドレス(指定アドレス0)を含むコマンドリストを生成する。また、2番目に出力されたリードリクエストに対して、サブCPU123は、PRPリスト#1に対応づけられた複数の指定アドレスのうちの先頭に位置するアドレス(指定アドレス256)を含むコマンドリストを生成する。
このような処理は、サブCPU123が複数のリードリクエストを並列処理する場合に特に有効である。
【0051】
《第四のパターン》
サブCPU123は、1つのリードリクエストで要求されるデータの全体が、メインメモリ103内に連続して格納されるように、コマンドリストに含める指定アドレスを制御する。例えば、サブCPU123は、複数のPRPリストに跨がって表現されるメインメモリの連続する領域に1つのリードリクエストに基づくデータの全部を格納するように、コマンドリストに含める指定アドレスを制御する。
仮に、メインメモリ103に図3(a)に示すような連続した領域0〜3が確保されているとする。図4の指定アドレス0〜250までが使用済みの結果、領域0の残容量が20KB、領域1は未使用であるとする。読み出しデータのデータ量が32KBの場合、サブCPU123は、図4に示す指定アドレス251をコマンドリストに含めることで、読み出しデータを指定アドレス251〜258に対応するメインメモリ103内の領域に格納される。このように、PRPリストで管理する領域がメインメモリ内で連続する場合は、メインメモリ103の隣接する領域に跨がってデータを格納してもよい。
上記制御は、1つのリードリクエストで読み出すデータ量が、1つのPRPリストで管理するメインメモリの領域のサイズよりも大きい場合にも同様に適用できる。
【0052】
なお、1つのリードリクエストに基づく読み出しデータは、メインメモリ103内に連続して格納されることが望ましいが、読み出しデータがメインメモリ103内に分散して格納されても構わない。
【0053】
〈変形例〉
上記実施形態においては、PRPリストの格納先として、CGROMコントローラ120に用意したSRAM139を利用したが、PRPリストの格納場所はメインメモリ103であってもよいし、他のメモリであってもよい。
上記実施形態においては、サブCPU123が画像処理装置100の起動時にPRPリストをSRAM139に格納したが、PRPリストは少なくともステップS17のコマンドリストの作成前に格納されていればよい。例えば、サブCPU123は、ステップS15のリードリクエストを受け取った後に、PRPリストを生成してSRAM139に格納してもよい。
サブCPU123が自身のレジスタに設定するメモリページサイズは、外部記憶装置140のメモリページサイズの最小値には限られない。例えば、サブCPU123は、外部記憶装置140のCAPレジスタに記述されたメモリページサイズの最大値(CAP.MPSMAX)を、自身のレジスタに設定してもよい。
上記実施形態においてはサブCPU123が外部記憶装置140に対して指定アドレスを指示し、また外部記憶装置140が指定アドレスを用いてアドレス記憶ユニット129に対してアクセスするため、指定アドレス指示手段はサブCPU123及び外部記憶装置140として説明したが、サブCPU123と、外部記憶装置140へのブリッジ機能であるRC・IP125とを指定アドレス指示手段として捉えることもできる。
本発明について、画像処理装置、及び画像処理システムの例により説明したが、本発明は、画像データ以外のデータを処理する装置、例えば音声データを処理する音声処理装置、及び音声処理装置と外部記憶装置とによって構成される音声処理システムにも適用可能である。音声処理装置は、画像処理装置のGPUに代えて音声データを処理するDSP(Digital Signal Processor:音声処理ユニット)を備え、表示装置に代えてスピーカを備える。上記、画像データや音声データを処理する情報処理装置は、パチンコ機やパチスロ機等の遊技機に搭載される。
【0054】
〈効果〉
以上のように本実施形態によれば、1つの開始アドレスから複数の仮想アドレスを生成することにより、メインメモリ上で連続する複数の小領域を1つのPRPリストで表現することができる。従って、メインメモリの領域管理に使用するPRPリストが少なくて済み、PRPリストによるメモリの消費を低減できる。
【0055】
〔本発明の実施態様例と作用、効果のまとめ〕
<第一の実施態様>
本態様に係る情報処理装置(画像処理装置100)は、バスを介してアクセス可能なメインメモリ103と、外部記憶装置140が接続されるPCIeインターフェースを有すると共に該PCIeインターフェースを制御するコントローラ(CGROMコントローラ120)と、を備え、外部記憶装置に記憶されたデータを読み出して、NVMeコマンド規格に従ってメインメモリに格納する装置であり、以下の特徴を有する。
即ち、情報処理装置は、PRPリストを格納するリスト格納メモリ(SRAM139)と、外部記憶装置から読み出したデータをメインメモリに格納するための仮想アドレスを生成する仮想アドレス生成手段(アドレス生成回路130)と、を備え、仮想アドレス生成手段は、複数のアドレスを単一のPRPリストに割り当てると共に、アドレスが指示された場合に指示された指定アドレスに対応するPRPリストに含まれる開始アドレスと指定アドレスに応じた加算アドレスとに基づいて仮想アドレスを生成することを特徴とする。
【0056】
本態様によれば、PRPリストによるメモリの消費を低減することが可能となる。
即ち、PRPリストにはメインメモリ内で連続する領域の先頭に位置する開始アドレスを記述すると共に、1つのPRPリストにリスト格納メモリ内の複数のアドレスを割り当てる。仮想アドレス生成手段は、リスト格納メモリ内のアドレスが指示される毎に、指示された指定アドレスに対応する仮想アドレスを順次生成する。各仮想アドレスはメインメモリ上の各小領域を表現するものであり、開始アドレスに加算アドレスを加算することにより生成される。従って、より少ないPRPリストでメインメモリの連続領域を表現でき、PRPリストによるメモリの消費を低減することができる。
例えば、遊技機等の画像処理装置のように、高速かつ高精細な画像表示が求められている装置においてはPRPリストによるメモリ消費を低減することで、画像処理に割り当てるメモリを増やすことができる。
【0057】
<第二の実施態様>
本態様に係る情報処理装置(画像処理装置100)において、仮想アドレス生成手段(アドレス生成回路130)は、複数のアドレスを単一のPRPリストに割り当てるアドレス割当手段(アドレス割当部131)と、指定アドレスに対応するPRPリストと加算アドレスとを求める指定アドレス解析手段(指定アドレス解析部135)と、求められたPRPリストに含まれる開始アドレスと加算アドレスとに基づいて仮想アドレスを算出する仮想アドレス算出手段(仮想アドレス算出部137)と、を備えることを特徴とする。
本態様は、第一の実施態様と同様の効果を奏する。
【0058】
<第三の実施態様>
本態様に係る情報処理装置(画像処理装置100)は、データのリードリクエストに基づいて仮想アドレス生成手段(アドレス生成回路130)に指定アドレスを指示する指定アドレス指示手段(サブCPU123、外部記憶装置140またはRC・IP125)を備え、指定アドレス指示手段(外部記憶装置140またはRC・IP125)は、直前のリードリクエストにおいて未使用の指定アドレスからカウントアップすることを特徴とする。
本態様によれば、指定アドレスを順番に使用するので、メインメモリのメモリ空間を有効に活用できる。
【0059】
<第四の実施態様>
本態様に係る情報処理装置(画像処理装置100)において、指定アドレス指示手段(サブCPU)は、一のPRPリストによって表現されるメインメモリ103の連続する一領域に一のリードリクエストに基づくデータの全部を格納できない場合、他のPRPリストに割り当てられている指定アドレスを指示することを特徴とする。
本態様によれば、外部記憶装置から読み出したデータを、メインメモリ上に連続した状態で格納することができる。
【0060】
<第五の実施態様>
本態様に係る情報処理装置(画像処理装置100)は、データのリードリクエストに基づいて仮想アドレス生成手段(アドレス生成回路130)に指定アドレスを指示する指定アドレス指示手段(サブCPU123、外部記憶装置140またはRC・IP125)を備え、指定アドレス指示手段(サブCPU123)は、一のリードリクエストに対して一のPRPリストを割り当てるように指定アドレスを指示することを特徴とする。
本態様においては、1つのリードリクエストに対してPRPリストが1対1で割り当てられるので、複数のリードリクエストに基づく処理を並列して実行する場合に、メインメモリのアドレス管理が容易となる。
【0061】
<第六の実施態様>
本態様に係る情報処理装置(画像処理装置100)は、画像データ又は音声データを処理する処理ユニット(GPU105、DSP)と、メインメモリ103上の仮想アドレスに格納されたデータを取得して、処理ユニットに出力するように制御するサブCPU123と、を備えることを特徴とする。
本発明は、遊技機等の画像処理装置や音声処理装置等、メインメモリ上に大きな連続領域を確保することが容易な情報処理装置に特に有効である。
【0062】
<第七の実施態様>
本態様に係る情報処理システムは、情報処理装置(画像処理装置100)と、PCIeインターフェースと接続する外部記憶装置140と、を備えることを特徴とする。
本態様によれば、第一乃至第六の実施態様と同様の効果を奏する。
【符号の説明】
【0063】
100…画像処理装置、101…メインCPU、103…メインメモリ、105…GPU、107…描画回路、109…表示回路、111…表示装置、120…CGROMコントローラ、121…cgbI/F、123…サブCPU、125…PCIeRC・IP、129…アドレス記憶ユニット、130…アドレス生成回路、131…アドレス割当部、133…PRPリスト開始アドレス記憶部、135…指定アドレス解析部、137…仮想アドレス算出部、139…SRAM、140…外部記憶装置、151…メインバス、153…内部バス、155…ICM
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11