JP6562419B2 - Information processing apparatus and information processing system - Google Patents

Information processing apparatus and information processing system Download PDF

Info

Publication number
JP6562419B2
JP6562419B2 JP2016217286A JP2016217286A JP6562419B2 JP 6562419 B2 JP6562419 B2 JP 6562419B2 JP 2016217286 A JP2016217286 A JP 2016217286A JP 2016217286 A JP2016217286 A JP 2016217286A JP 6562419 B2 JP6562419 B2 JP 6562419B2
Authority
JP
Japan
Prior art keywords
address
designated
data
main memory
processing apparatus
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2016217286A
Other languages
Japanese (ja)
Other versions
JP2018077564A (en
Inventor
裕揮 菅野
裕揮 菅野
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Axell Corp
Original Assignee
Axell Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Axell Corp filed Critical Axell Corp
Priority to JP2016217286A priority Critical patent/JP6562419B2/en
Publication of JP2018077564A publication Critical patent/JP2018077564A/en
Application granted granted Critical
Publication of JP6562419B2 publication Critical patent/JP6562419B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は画像や音声等のデータを処理する情報処理装置、及び情報処理システムに関し、特にPCI Express接続のSSDを利用する場合に用いるPRPリストによるメモリの消費を低減することが可能な情報処理装置、及び情報処理システムに関するものである。   The present invention relates to an information processing apparatus and an information processing system for processing data such as images and sounds, and more particularly to an information processing apparatus capable of reducing memory consumption by a PRP list used when using a PCI Express-connected SSD. And an information processing system.

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)リストにより管理する。
As the processing speed of a CPU (Central Processing Unit) increases, the processing speed of an information processing apparatus such as a computer increases, and the high-speed CPU is effectively used. A data transfer interface capable of high-speed data transfer has been developed.
PCIe (PCI Express) is one of the interface standards that enable high-speed data transfer, and the command standard for SSD (Solid State Drive) with PCIe connection is AHI (Advanced Host Controller Interface) or NVMe (Non-Volatile Memory Express). There is. In particular, since the latter has an expanded number of commands that can be issued to the queue as compared with AHCI, it is expected that it will rapidly spread in the future as a standard that can maximize the performance of the SSD.
Here, in NVMe, data and commands are transferred via the main memory. FIGS. 11A and 11B are schematic diagrams for explaining a data transfer method in the NVMe standard. In the NVMe standard, for example, a plurality of small areas each of 4 KB (kilobytes) are secured on the main memory as a data transfer destination, and the start address of each small area is managed by an 8-byte PRP (Physical Region Page) list. To do.

例えばメインメモリ上に合計1MB(1、048、576バイト)の記憶領域を確保する場合は、4KB(4、096バイト)の小領域を256個確保し、これらの小領域を256個のPRPリストにより管理する。PRPリストを用いることにより、汎用PC(Personal Computer)等、メインメモリ上に連続する大きな領域を確保することが困難な場合であっても、メインメモリにデータを分散して格納することができる(図11(a))。   For example, to secure a total storage area of 1 MB (1,048,576 bytes) on the main memory, 256 small areas of 4 KB (4,096 bytes) are secured, and these small areas are 256 PRP lists. To manage. By using the PRP list, even when it is difficult to secure a large continuous area on the main memory, such as a general-purpose PC (Personal Computer), data can be distributed and stored in the main memory ( FIG. 11 (a)).

NVM Express Revision 1.2.1 (June 5、2016)(1.4 Theory of Operation、7.2.5 Command Examples等)NVM Express Revision 1.2.1 (June 5, 2016) (1.4 Theory of Operation, 7.2.5 Command Examples, etc.)

一方、パチンコ機やパチスロ機をはじめとする遊技機等に実装される画像処理装置においても、近年は表示すべきコンテンツのデータ量が大きくなっていることから、コンテンツデータの格納手段としてSSDの活用が高まっており、SSDのインターフェースとしてPCIeを採用したものも導入されつつある。   On the other hand, in image processing apparatuses mounted on pachinko machines, pachislot machines, and other gaming machines, the amount of content data to be displayed has increased in recent years, so the use of SSD as a means for storing content data The adoption of PCIe as an SSD interface is being introduced.

遊技機等に実装される画像処理装置がPCIe接続のSSDを利用しようとする場合、汎用PC等とは異なり、メインメモリ上に大きな連続領域を確保することは容易である。しかし、NVMeの規格上、PRPリストを用いてメインメモリ上の記憶領域を管理しなければならならない(図11(b))。仮に、メインメモリ上の1MBの連続領域を管理するためには、PRPリストのために2KB(8バイト×256個=2、048バイト)のメモリ領域を消費することとなり、無駄が発生する。
本発明は上述の事情に鑑みてなされたものであり、PRPリストによるメモリの消費を低減することを目的とする。
When an image processing apparatus mounted on a gaming machine or the like intends to use a PCIe-connected SSD, unlike a general-purpose PC or the like, it is easy to secure a large continuous area on the main memory. However, according to the NVMe standard, the storage area on the main memory must be managed using the PRP list (FIG. 11B). In order to manage a 1 MB continuous area on the main memory, a 2 KB (8 bytes × 256 = 2, 048 bytes) memory area is consumed for the PRP list, resulting in waste.
The present invention has been made in view of the above-described circumstances, and an object thereof is to reduce memory consumption by a PRP list.

上記の課題を解決するために、請求項1に記載の発明は、バスを介してアクセス可能なメインメモリと、外部記憶装置が接続されるPCIeインターフェースを有すると共に該PCIeインターフェースを制御するコントローラと、を備え、前記外部記憶装置に記憶されたデータを読み出して、NVMeコマンド規格に従って前記メインメモリに格納する情報処理装置であって、前記メインメモリは複数の小領域が連続する大領域を複数有し、前記コントローラは、前記メインメモリの前記各大領域の先頭に位置する開始アドレスの情報を格納する格納メモリと仮想アドレス生成手段と、を備え、前記仮想アドレス生成手段は、前記NVMeコマンド規格に従って指定される複数の指定アドレスを一つの前記開始アドレスに割り当てると共に、該指定アドレスに対応した加算アドレスを保持または算出し、割り当てられた前記開始アドレスの情報に前記加算アドレスを加算して仮想アドレスを生成することを特徴とする。

In order to solve the above-mentioned problem, the invention according to claim 1 includes a main memory accessible via a bus, a controller having a PCIe interface to which an external storage device is connected and controlling the PCIe interface, An information processing apparatus that reads data stored in the external storage device and stores the data in the main memory in accordance with the NVMe command standard, the main memory having a plurality of large areas in which a plurality of small areas are continuous The controller includes a storage memory for storing information of a start address located at the head of each large area of the main memory and a virtual address generation unit, and the virtual address generation unit is designated according to the NVMe command standard It allocates a plurality of designated addresses to one of said start address It holds or calculates the added address corresponding to the designated address, by adding the sum address to the start address of the information allocated and generates a virtual address.

本発明によれば、PRPリストによるメモリの消費を低減することが可能となる。   According to the present invention, it is possible to reduce memory consumption by the PRP list.

本発明の一実施形態に係る画像処理装置を示すハードウェアブロック図である。1 is a hardware block diagram illustrating an image processing apparatus according to an embodiment of the present invention. アドレス生成回路の構成を示す機能ブロック図である。It is a functional block diagram which shows the structure of an address generation circuit. (a)、(b)は、メインメモリに確保される領域の一例を示す模式図である。(A), (b) is a schematic diagram which shows an example of the area | region ensured in the main memory. 第一のアドレスの割当例を説明する図である。It is a figure explaining the example of allocation of the 1st address. 第二のアドレスの割当例を説明する図である。It is a figure explaining the example of allocation of the 2nd address. 第三のアドレスの割当例を説明する図である。It is a figure explaining the example of allocation of the 3rd address. 第四のアドレスの割当例を説明する図である。It is a figure explaining the example of allocation of the 4th address. 第五のアドレスの割当例を説明する図である。It is a figure explaining the example of allocation of the 5th address. 画像処理装置の起動時の動作を示すシーケンス図である。It is a sequence diagram which shows the operation | movement at the time of starting of an image processing apparatus. 画像データの読み出し時の画像処理装置の動作を示すシーケンス図である。It is a sequence diagram which shows operation | movement of the image processing apparatus at the time of reading of image data. (a)、(b)は、NVMe規格におけるデータの転送方法について説明するための模式図である。(A), (b) is a schematic diagram for demonstrating the data transfer method in a NVMe specification.

本発明は、NVMeコマンド規格の下でPCIeインターフェースの記憶装置(例:SSD;Solid State Drive)を外部記憶装置として利用する場合に、NVMeコマンド規格に定義されたPRPリストの機能を拡張して使用するものである。
ここで、NVMeコマンド規格においては、夫々のPRPリストによってメインメモリ上の1つの小領域(例えば4KB)を表現する。
本発明においては、夫々のPRPリストによってメインメモリ上の連続する複数の小領域を表現する点に特徴がある。具体的には、メインメモリ上の連続する領域の先頭に位置する開始アドレスをポインタ情報としてPRPリストに保持させる。開始アドレスに対して小領域のサイズに応じた加算アドレス(例えば、4KB、8KB、16KB…)を加算した仮想アドレスを順次生成することにより、1つのPRPリストでメインメモリ上の連続した複数の小領域群を表現する。
以下、本発明を図に示した実施形態を用いて詳細に説明する。但し、この実施形態に記載される構成要素、種類、組み合わせ、形状、その相対配置などは特定的な記載がない限り、この発明の範囲をそれのみに限定する主旨ではなく単なる説明例に過ぎない。
The present invention expands and uses the function of the PRP list defined in the NVMe command standard when a PCIe interface storage device (eg, SSD; Solid State Drive) is used as an external storage device under the NVMe command standard. To do.
Here, in the NVMe command standard, one small area (for example, 4 KB) on the main memory is expressed by each PRP list.
The present invention is characterized in that a plurality of continuous small areas on the main memory are expressed by respective PRP lists. Specifically, a start address located at the head of a continuous area on the main memory is held in the PRP list as pointer information. By sequentially generating a virtual address obtained by adding an addition address (for example, 4 KB, 8 KB, 16 KB,...) Corresponding to the size of the small area to the start address, a plurality of continuous small addresses on the main memory are created with one PRP list Represents a group of regions.
Hereinafter, the present invention will be described in detail with reference to embodiments shown in the drawings. However, the components, types, combinations, shapes, relative arrangements, and the like described in this embodiment are merely illustrative examples and not intended to limit the scope of the present invention only unless otherwise specified. .

〈画像処理装置〉
図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に格納する。
<Image processing device>
FIG. 1 is a hardware block diagram showing an image processing apparatus according to an embodiment of the present invention.
The image processing apparatus 100 includes a main CPU (Central Processing Unit) 101, a main memory 103, a GPU (Graphics Processing Unit) 105 (image processing unit), a display device 111, and a CGROM (Character Generator ROM) controller 120. The main CPU 101, main memory 103, GPU 105, and CGROM controller 120 are connected by a main bus 151. The image processing apparatus 100 includes a PCIe interface to which the external storage device 140 is connected. The image processing apparatus 100 and the external storage device 140 constitute an image processing system (information processing system). The image processing apparatus 100 stores the data stored in the external storage device 140 in the main memory 103 according to the NVMe command standard.

メイン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)等から構成される。
The main CPU 101 is a processing device that controls the entire image processing apparatus 100 including the GPU 105.
The main memory 103 is a volatile storage unit that can be accessed by each unit of the image processing apparatus 100 via the main bus 151. The main memory 103 stores a command list created by the main CPU 101, a display list, image data read from the external storage device 140, image data drawn by the GPU 105, and the like. The main memory 103 is composed of a large-capacity DDR (Double-Data-Rate) 3 memory, for example.
The GPU 105 is a processing device dedicated to image processing, and includes a drawing circuit 107 and a display circuit 109. The drawing circuit 107 is a circuit that draws an image based on the display list supplied from the main CPU 101. The display circuit 109 is a circuit that causes the display device 111 to display an image drawn by the drawing circuit 107.
The display device 111 is a means for displaying an image, and includes an LCD (Liquid Crystal Display) or the like.

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により接続されている。
The CGROM controller 120 controls the PCIe interface. Specifically, the CGROM controller 120 controls reading of data from the external storage device 140 connected by the PCIe interface and writing of the read data to the main memory 103 in accordance with the NVMe command standard.
The CGROM controller 120 includes a cgb I / F 121, a sub CPU 123 (designated address instruction means), a PCIeRC / IP 125, and an address storage unit 129. The cgb I / F 121, the sub CPU 123, the PCIeRC / IP 125, and the address storage unit 129 are connected by an internal bus 153 that connects each part in the CGROM controller 120.

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から入手する。
The cgb I / F 121 is an interface that connects the main bus 151 and the internal bus 153.
The sub CPU 123 is a processing device that controls the entire CGROM controller 120. The sub CPU 123 outputs a command list according to the NVMe standard format to the external storage device 140 via the RC / IP 125.
The PCIeRC / IP 125 is a PCIe (PCI Express) root complex IP (hereinafter simply referred to as “RC / IP”). The RC / IP 125 is a controller having a PCIe interface for connecting the external storage device 140 (designated address instruction means), and controls the PCIe interface. The RC / IP 125 functions as a bridge that relays a data read request to the external storage device 140. Therefore, the command list from the sub CPU 123 is output to the external storage device 140 via the RC / IP 125, read data requested by the controller (not shown) of the external storage device 140 is read, and the main data of the read data is read. The storage location information in the memory 103 is obtained from the address storage unit 129 by the controller of the external storage device 140 via the RC / IP 125.

アドレス記憶ユニット129は、RC・IP125が外部記憶装置140から読み出したデータをメインメモリ103へ書き込む際のデータの格納場所に関する情報を提供する手段である。アドレス記憶ユニット129の詳細については後述する。
外部記憶装置140はRC・IP125にPCIe接続するSSD等の不揮発性記憶装置であり、GPU105が描画する画像のコンテンツデータを格納する。
The address storage unit 129 is a means for providing information regarding the data storage location when the RC / IP 125 writes the data read from the external storage device 140 to the main memory 103. Details of the address storage unit 129 will be described later.
The external storage device 140 is a non-volatile storage device such as an SSD that is connected to the RC / IP 125 with PCIe, and stores content data of an image drawn by the GPU 105.

なお、メインバス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を介して実行される。   The main bus 151 and the internal bus 153 are also connected by an interconnect module (ICM 155). Here, the drawing circuit 107 and the cgb I / F 121 have a master-slave relationship, and a request from the drawing circuit 107 to the CGROM controller 120 and a response to the request are transmitted and received via the cgb I / F 121. For example, a response to a read request output from the drawing circuit 107 to the sub CPU 123 via the cgb I / F 121 is returned from the cgb I / F 121 to the drawing circuit 107. However, other data exchanges (for example, data writing to the main memory 103 by the RC / IP 125 and data reading from the main memory 103 by the sub CPU 123) are performed by the RC / IP 125 as a master and the main memory 103 as a slave. , Via the ICM 155.

〈アドレス記憶ユニット〉
図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リスト)を格納する。
<Address storage unit>
As shown in FIG. 1, the address storage unit 129 includes an address generation circuit 130 (virtual address generation means) and an SRAM (Static Random Access Memory: PRP list storage memory) 139. The address generation circuit 130 generates a virtual address for storing the data read from the external storage device 140 in the main memory 103.
FIG. 2 is a functional block diagram showing the configuration of the address generation circuit.
The address generation circuit 130 includes an address allocation unit 131 (address allocation unit), a PRP list start address storage unit 133, a designated address analysis unit 135 (designated address analysis unit), and a virtual address calculation unit 137 (virtual address calculation unit). Prepare.
The address assignment unit 131 is means for assigning a plurality of designated addresses to one PRP list (one start address). The PRP list start address storage unit 133 is a means for temporarily storing one of the start addresses read from the SRAM 139. The designated address analysis unit 135 is a means for obtaining, from the designated address, an SRAM address storing a start address corresponding to the designated address and an addition address corresponding to the designated address. The virtual address calculation unit 137 is means for calculating a virtual address based on the start address and the addition address corresponding to the designated address.
The SRAM 139 is a volatile memory that can be accessed at high speed from the address generation circuit 130, and stores respective start addresses (PRP lists) for a plurality of data storage areas provided in the main memory 103.

〈アドレスの割り当て例1〉
CGROMコントローラによるアドレスの割り当て例について説明する。ここでは、メインメモリに夫々連続した1MBからなる4つの領域(領域0,1,2,3)を確保できる場合の例により説明する。
図3(a)、(b)は、メインメモリに確保される領域の一例を示す模式図である。メインメモリに確保する各領域0〜3は、図3(a)に示すように互いに連続した領域であってもよいし、図3(b)に示すように互いに連続していない領域であってもよい。
<Address assignment example 1>
An example of address assignment by the CGROM controller will be described. Here, an example in which four areas (areas 0, 1, 2, and 3) each consisting of 1 MB continuous in the main memory can be secured will be described.
FIGS. 3A and 3B are schematic diagrams showing an example of an area secured in the main memory. Each of the areas 0 to 3 to be secured in the main memory may be a continuous area as shown in FIG. 3A or a non-contiguous area as shown in FIG. Also good.

図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」…のようにも表記する。
FIG. 4 is a diagram illustrating an example of assignment of the first address.
The “designated address” is included in the command list output from the sub CPU 123 and indicates a location where information read from the address storage unit 129 by the external storage device 140 via the RC / IP 125 is stored. Specifically, the designated address is an address in the address generation circuit 130, and is a head address of an area where information is stored. The information read from the address storage unit 129 by the external storage device 140 via the RC / IP 125 is a virtual address indicating the storage location of the data read by the external storage device 140 in the main memory.
The “SRAM address” indicates an address in the SRAM 139 that stores the “start address” of the main memory corresponding to the designated address.
The “start address” of the main memory is information (data) indicating an address located at the head of each of the areas 0 to 3 secured on the main memory 103, and is composed of 8 bytes. The start address of the main memory is the PRP list (Non-Patent Document 1, 4.3 Physical Region Page Entry and List) itself defined in the NVMe standard. In this example, since 1 MB is allocated as one area of the main memory 103 and the memory page size is set to 4 KB, 256 designated addresses are assigned to each start address, and A 1 MB area can be managed.
In this specification, for convenience of explanation, “PRP list number” is added to the start address of each main memory, and it is also expressed as “PRP list # 0”, “PRP list # 1”.

「加算アドレス」は、アドレス生成回路130の仮想アドレス算出部137が開始アドレスに対して加算することにより「仮想アドレス」を算出するためのものである。1つの指定アドレスに対しては、1つの開始アドレスと1つの加算アドレスが対応づけられており、開始アドレスに対して加算アドレスを加算することにより、指定アドレスに1対1で対応した仮想アドレスが算出される。なお、加算アドレスは、各仮想アドレス間のステップが一定となるように設定されており、仮想アドレスは開始アドレスから順次連続する小領域を表現する。各仮想アドレス間のステップは、メモリページサイズ1つ分に等しい。
このように、夫々のPRPリスト#0〜#3にはメインメモリ103のメモリ空間として、夫々1MBの連続領域を表現する仮想アドレスが割り当てられる。
The “addition address” is used by the virtual address calculation unit 137 of the address generation circuit 130 to calculate the “virtual address” by adding to the start address. One start address and one addition address are associated with one designated address. By adding the addition address to the start address, a virtual address corresponding one-to-one with the designated address is obtained. Calculated. Note that the addition address is set so that the steps between the virtual addresses are constant, and the virtual address represents a small area that is sequentially continuous from the start address. The step between each virtual address is equal to one memory page size.
Thus, virtual addresses representing 1 MB continuous areas are allocated to the PRP lists # 0 to # 3 as the memory space of the main memory 103, respectively.

〈アドレス記憶ユニットの動作概要〉
続いて、アドレス記憶ユニット129の動作の概要について、図2、及び図4を参照して説明する。
<Overview of address storage unit operation>
Next, an outline of the operation of the address storage unit 129 will be described with reference to FIG. 2 and FIG.

アドレス割当部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…)を夫々保持させてもよい。なお、レジスタの容量を効率的に使用するためには、前者の方が望ましい。
The address assignment unit 131 assigns a plurality of designated addresses to one PRP list (one start address) according to the memory page size and the size of the area secured in the main memory 103. For example, when the memory page size is 4 KB and the size of the areas 0 to 3 secured in the main memory 103 is 1 MB, 256 designated addresses (1 MB = 1024 KB ÷ 4 KB) are assigned to each area. Specifically, the address assignment unit 131 assigns the designated addresses 0 to 255 to the PRP list # 0 (start address D0). Similarly, the address assignment unit 131 assigns designated addresses 256 to 511 to the PRP list # 1 (start address D1), designates addresses 512 to 767 to the PRP list # 2 (start address D2), and designates addresses 768 to 1023. Are assigned to PRP list # 3 (start address D3). The correspondence between the designated address and the address in the SRAM 139 of the PRP list is held in the register of the address generation circuit 130.
In addition, the address assignment unit 131 associates the addition address with each designated address. The correspondence between the designated address and the addition address is held in the register of the address generation circuit 130. The address assignment unit 131 may cause the register to hold an arithmetic expression for calculating the addition address from the designated address, or a plurality of designated addresses (0, 1, 2,...) And an addition address ( 0 KB, 4 KB, 8 KB, ...) may be held respectively. Note that the former is preferable in order to efficiently use the capacity of the register.

指定アドレス解析部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リストの開始アドレスを一時的に記憶する。
The designated address analysis unit 135 analyzes the designated address output (instructed) from the controller of the external storage device 140 via the RC / IP 125 and stores the address of the SRAM 139 storing the PRP list corresponding to the designated address, and the designated address. And an addition address corresponding to. For example, the designated address analysis unit 135 derives the SRAM address 0 and the addition address 4 KB (= 4 KB × 1) for the designated address 1, and the SRAM address 0 and the addition address 1020 KB (= 4 KB × 255) for the designated address 255. To derive.
The PRP list start address storage unit 133 temporarily stores the start address of one PRP list read from the address of the SRAM 139 derived by the designated address analysis unit 135.

仮想アドレス算出部137は、指定アドレスに対して割り当てられた開始アドレスと加算アドレスとを加算することにより、指定アドレスに1対1で対応する仮想アドレスを算出する。例えば、指定アドレス1については開始アドレス「D0」と加算アドレス「4KB」を加算することにより仮想アドレス「D0+4KB」を算出し、同様に指定アドレス255については仮想アドレス「D0+1020K」を算出する。また、仮想アドレス算出部137は、算出した仮想アドレスを、アドレス記憶ユニット129の指定アドレスに格納する。   The virtual address calculation unit 137 calculates a virtual address corresponding to the designated address on a one-to-one basis by adding the start address assigned to the designated address and the addition address. For example, for the designated address 1, the virtual address “D0 + 4KB” is calculated by adding the start address “D0” and the addition address “4KB”, and similarly, the virtual address “D0 + 1020K” is calculated for the designated address 255. Further, the virtual address calculation unit 137 stores the calculated virtual address in the designated address of the address storage unit 129.

〈アドレスの割り当て例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は利用しない。
<Example of address assignment 2>
Another example of address assignment will be described. 5 to 8 are diagrams for explaining examples of address assignment. The area of the main memory 103 managed by one PRP list does not need to be 1 MB, and the addition address (memory page size) is not limited to 4 KB.
FIG. 5 is an example of managing a 512 KB area of the main memory 103 with one PRP list. In this example, since the addition address (memory page size) is 4 KB, 128 designated addresses are associated with one PRP list.
FIG. 6 is an example of managing a 2 MB area of the main memory 103 with one PRP list. In this example, since the addition address (memory page size) is 4 KB, 512 designated addresses are associated with one PRP list.
FIG. 7 is an example of managing a 2 MB area of the main memory 103 with one PRP list. In this example, since the addition address (memory page size) is 8 KB, 256 designated addresses are associated with one PRP list.
FIG. 8 shows an example in which the area (512 KB) actually reserved in the main memory 103 is different from the area size (1 MB) that can be managed by one PRP list. In this example, only the designated addresses 0 to 127 corresponding to the areas actually reserved in the main memory 103 are used for memory area management, and the other designated addresses 128 to 255 are not used.

〈起動時の動作シーケンス〉
画像処理装置の起動時の動作について説明する。図9は、画像処理装置の起動時の動作を示すシーケンス図である。なお、この処理は、GPU105の起動前に実行される。画像処理装置100の起動時にサブCPU123はSRAM139を初期化すると共に、例えば図4に示すような開始アドレスD0〜D3を記述したPRPリスト#0〜#3を生成してSRAM139に格納する処理を実行する。
<Operation sequence at startup>
The operation at the time of starting the image processing apparatus will be described. FIG. 9 is a sequence diagram illustrating an operation when the image processing apparatus is activated. This process is executed before the GPU 105 is activated. When the image processing apparatus 100 is started up, the sub CPU 123 initializes the SRAM 139 and generates PRP lists # 0 to # 3 describing start addresses D0 to D3 as shown in FIG. 4 and stores them in the SRAM 139, for example. To do.

ステップ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に出力するようにしても良い。
In step S <b> 1, the main CPU 101 outputs, to the sub CPU 123, information related to the start address of the continuous area and the size of the continuous area assigned to the main memory 103 as an area for storing data read from the external storage device 140.
Here, when the continuous area is secured as a single continuous area in the main memory 103 as shown in FIG. 3A, the main CPU 101 determines the start address D0 of the continuous area and the size of the continuous area (for example, 4 MB) is output to the sub CPU 123. When the continuous areas are distributed in the main memory 103 as shown in FIG. 3B, the main CPU 101 determines the start addresses (D0, D1...) Of the continuous areas 0, 1,. The size (for example, 1 MB each) is output to the sub CPU 123. The main CPU 101 divides the continuous area as shown in FIG. 3A into small continuous areas, the start addresses D0, D1... Of each divided continuous area, and the size of each continuous area (for example, 1 MB each). ) May be output to the sub CPU 123, or the start address D0 of the continuous area and the size of each continuous area (for example, 1 MB each) may be output to the sub CPU 123.

ステップ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を生成する。
In step S2, the sub CPU 123 generates a PRP list to be stored in the SRAM 139 based on the information output from the main CPU 101. The sub CPU 123 may manage one continuous area with a plurality of PRP lists, or may manage one continuous area with one PRP list.
For example, as shown in FIG. 3A, a continuous area of 4 MB can be used, and the sub CPU 123 acquires 4 MB information from the main CPU 101 as the start address D0 and the size of the area. When one unit of the continuous area is set to 1 MB, processing is performed as follows. That is, the sub CPU 123 generates a PRP list # 0 having the start address D0 as pointer information, and generates a PRP list # 1 having a start address D1 shifted by 1 MB from the start address D0 as pointer information. The sub CPU 123 sequentially executes the above operations to generate a total of four PRP lists.
As shown in FIG. 3A, a continuous area of 4 MB is secured, but when the main CPU 101 outputs information about continuous areas divided every 1 MB, the sub CPU 123 determines the start addresses D0 to D3. Are generated as four pieces of PRP lists # 0 to # 3.
Furthermore, as shown in FIG. 3B, when a plurality of distributed continuous areas are secured and each continuous area is managed by one PRP list, the sub CPU 123 has a PRP having the start address D0 as pointer information. List # 0 is generated, and PRP lists # 1 to # 3 having start addresses D1 to D3 as pointer information are generated in the same manner.

ステップS3において、サブCPU123は、生成したPRPリストをSRAM139の所定のアドレスに格納する。例えば図4の場合、サブCPU123は、PRPリスト#0(開始アドレスD0)をSRAM139のアドレス0に格納し、PRPリスト#1(開始アドレスD1)をSRAM139のアドレス1に格納する。   In step S <b> 3, the sub CPU 123 stores the generated PRP list at a predetermined address in the SRAM 139. For example, in the case of FIG. 4, the sub CPU 123 stores the PRP list # 0 (start address D0) at the address 0 of the SRAM 139 and stores the PRP list # 1 (start address D1) at the address 1 of the SRAM 139.

ステップ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は、メモリページサイズに基づいて、各指定アドレスに加算アドレスを対応づけると共に、その対応関係をレジスタに記憶させる。
In step S4, the sub CPU 123 reads the content of the CAP (Controller Capabilities) register of the external storage device 140 via the RC / IP 125, and sets the minimum value of the memory page size. In accordance with MPSMIN, the memory page size is stored in a register held by itself. That is, the sub CPU 123 requests the setting data of the CAP register to the external storage device 140, and the external storage device 140 returns the contents of the CAP register to the sub CPU 123 as a response to this request. The sub CPU 123 receives the CAP. Store the value of MPSMIN in its own register.
In step S <b> 5, the sub CPU 123 stores the memory page size in the register of the address generation circuit 130 configuring the address storage unit 129.
In step S6, the address assignment unit 131 of the address generation circuit 130 assigns a plurality of designated addresses to one PRP list based on the memory page size. For example, when managing a 1 MB area of the main memory 103 with a memory page size of 4 KB and one PRP list, the designated addresses 0 to 255 are assigned to the PRP list # 0, and the designated addresses 256 to 511 are assigned to the PRP list # 1. assign. The address assignment unit 131 stores the correspondence between the designated address and the address in the SRAM 139 of the PRP list in the register.
In step S7, the address assignment unit 131 of the address generation circuit 130 sets an addition address. That is, the address allocation unit 131 associates the addition address with each designated address based on the memory page size, and stores the correspondence relationship in the register.

〈メインシーケンス〉
画像処理装置が外部記憶装置からデータを取得して表示装置に出力する動作について説明する。図10は、画像データの読み出し時の画像処理装置の動作を示すシーケンス図である。
<Main sequence>
An operation in which the image processing apparatus acquires data from the external storage device and outputs the data to the display device will be described. FIG. 10 is a sequence diagram illustrating the operation of the image processing apparatus when reading image data.

ステップS11において、メインCPU101は、描画するべき画像について、設定データや描画制御コマンド群から構成されるディスプレイリストを生成し、ステップS13において描画回路107に出力する。
ステップS15において、描画回路107は、ディスプレイリストに基づいて、例えば1フレーム分の画像形成に必要な画像データのリードリクエストを、cgbI/F121を介してCGROMコントローラ120のサブCPU123に出力する。このリードリクエストには、外部記憶装置140から読み出すデータの読み出し先頭アドレスと、データ量の情報とが含まれている。
In step S11, the main CPU 101 generates a display list including setting data and a drawing control command group for the image to be drawn, and outputs the display list to the drawing circuit 107 in step S13.
In step S15, the drawing circuit 107 outputs, for example, a read request for image data necessary for image formation for one frame to the sub CPU 123 of the CGROM controller 120 via the cgb I / F 121 based on the display list. This read request includes a read start address of data read from the external storage device 140 and data amount information.

ステップS17において、サブCPU123は、リードリクエストに基づいて、外部記憶装置140に格納されているデータの読み出しと、読み出したデータのメインメモリ103への書き込みを指示するコマンドリストを生成する。コマンドリストには、外部記憶装置140から読み出すデータの読み出し先頭アドレスと、読み出すデータのデータ量と、読み出したデータをメインメモリ103に書き込むためのアドレス情報として先頭に位置する1つの指定アドレス(図4参照)が含まれている。   In step S <b> 17, the sub CPU 123 generates a command list that instructs reading of data stored in the external storage device 140 and writing of the read data to the main memory 103 based on the read request. The command list includes a read start address of data to be read from the external storage device 140, a data amount of the read data, and one designated address located at the head as address information for writing the read data to the main memory 103 (FIG. 4). Reference) is included.

ステップ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」を求める。
In step S <b> 19, the sub CPU 123 outputs a command list to the external storage device 140 via the RC / IP 125.
In step S 21, the controller of the external storage device 140 accesses the address storage unit 129 via the RC / IP 125 based on the designated address included in the command list. One designated address corresponds to data corresponding to one memory page size (for example, 4 KB).
In step S23, the designated address analysis unit 135 of the address generation circuit 130 configuring the address storage unit 129 analyzes the designated address. That is, the designated address analyzing unit 135 obtains the address and the addition address of the SRAM in which the PRP list corresponding to the designated address is stored based on the designated address output from the external storage device 140 via the RC / IP 125. For example, when the designated address is “0”, the SRAM address “0” and the addition address “0” are obtained.

ステップS25において、アドレス生成回路130の指定アドレス解析部135は、ステップS23において求められたSRAM139のアドレスから開始アドレスを読み出す。即ち、アドレス生成回路130の指定アドレス解析部135は、ステップS23において求めたSRAM139のアドレスと、データ(開始アドレス)の読み出しに係る要求をSRAM139に出力する。SRAM139は、指定されたアドレスに格納されているデータ(開始アドレス)を取り出して出力する。指定アドレス解析部135は、SRAM139のアドレスから開始アドレスを取得する。
例えば、指定アドレス「0」の場合、指定アドレス解析部135は、SRAMのアドレス「0」から開始アドレス「D0」を取得する。また、指定アドレス解析部135は、取得した開始アドレスをPRPリスト開始アドレス記憶部133に一時的に記憶させる。
In step S25, the designated address analysis unit 135 of the address generation circuit 130 reads the start address from the address of the SRAM 139 obtained in step S23. That is, the designated address analysis unit 135 of the address generation circuit 130 outputs the SRAM 139 address obtained in step S23 and a request for reading data (start address) to the SRAM 139. The SRAM 139 takes out the data (start address) stored at the designated address and outputs it. The designated address analysis unit 135 acquires the start address from the address of the SRAM 139.
For example, in the case of the designated address “0”, the designated address analysis unit 135 acquires the start address “D0” from the SRAM address “0”. The designated address analysis unit 135 temporarily stores the acquired start address in the PRP list start address storage unit 133.

ステップS27において、アドレス記憶ユニット129の仮想アドレス算出部137は、開始アドレスに加算アドレスを加算することにより指定アドレスに対応する仮想アドレスを生成する。例えば、指定アドレスが「0」の場合、仮想アドレス算出部137は、開始アドレス「D0」に加算アドレス「0」を加算して仮想アドレス「D0」を生成する。また、仮想アドレス算出部137は、生成した仮想アドレスをアドレス生成回路130内の指定アドレス「0」に格納する。   In step S27, the virtual address calculation unit 137 of the address storage unit 129 generates a virtual address corresponding to the designated address by adding the addition address to the start address. For example, when the designated address is “0”, the virtual address calculation unit 137 adds the addition address “0” to the start address “D0” to generate the virtual address “D0”. Further, the virtual address calculation unit 137 stores the generated virtual address in the designated address “0” in the address generation circuit 130.

ステップS29において、外部記憶装置140のコントローラはRC・IP125を介してアドレス記憶ユニット129内の指定アドレスから仮想アドレスを読み出す。   In step S29, the controller of the external storage device 140 reads the virtual address from the designated address in the address storage unit 129 via the RC / IP 125.

ステップS31において、外部記憶装置140のコントローラはコマンドリストに従って読み出したメモリページサイズ1つ分(例えば4KB)のデータを、アドレス記憶ユニット129から読み出したメインメモリ103の仮想アドレス「D0」に書き込む。即ち、外部記憶装置140はRC・IP125を介して仮想アドレス「D0」で表されるメインメモリ103上の領域にデータを書き込む。   In step S31, the controller of the external storage device 140 writes the data for one memory page size (for example, 4 KB) read according to the command list to the virtual address “D0” of the main memory 103 read from the address storage unit 129. That is, the external storage device 140 writes data to the area on the main memory 103 represented by the virtual address “D0” via the RC / IP 125.

ステップS33において、外部記憶装置140は、アドレス記憶ユニット129に出力した最新の指定アドレス(例えば「0」)に1をインクリメントした指定アドレス(例えば「1」)を生成し、アドレス記憶ユニット129に出力する。より正確には、外部記憶装置140はRC・IP125を介して、1つの仮想アドレスの格納に必要なデータサイズ分のアドレスを、最新の指定アドレスに対してカウントアップしたアドレスを指定アドレスとして生成し、アドレス記憶ユニット129に出力する。   In step S <b> 33, the external storage device 140 generates a specified address (for example, “1”) obtained by incrementing the latest specified address (for example, “0”) output to the address storage unit 129 and outputs the generated address to the address storage unit 129. To do. More precisely, the external storage device 140 generates, via the RC / IP 125, an address corresponding to the data size necessary for storing one virtual address as an address that is counted up from the latest specified address. To the address storage unit 129.

ステップS35は、ステップS23と同様である。ステップS35において、アドレス記憶ユニット129を構成するアドレス生成回路130の指定アドレス解析部135は、指定アドレスを解析する。即ち、指定アドレス解析部135は、外部記憶装置140から出力された指定アドレスに基づいて、指定アドレスに対応するPRPリストが格納されたSRAMのアドレスと加算アドレスとを求める。例えば指定アドレス「1」の場合は、SRAMのアドレス「0」と、加算アドレス「4K」を求める。   Step S35 is the same as step S23. In step S35, the designated address analysis unit 135 of the address generation circuit 130 configuring the address storage unit 129 analyzes the designated address. That is, the designated address analyzing unit 135 obtains the address of the SRAM storing the PRP list corresponding to the designated address and the addition address based on the designated address output from the external storage device 140. For example, in the case of the designated address “1”, the SRAM address “0” and the addition address “4K” are obtained.

ステップS37は、ステップS25と同様である。ステップS37において、アドレス生成回路130の指定アドレス解析部135は、ステップS35において求められたSRAM139のアドレスから開始アドレスを読み出す。
例えば、指定アドレス「1」の場合、指定アドレス解析部135は、SRAMのアドレス「0」から開始アドレス「D0」を取得する。また、指定アドレス解析部135は、取得した開始アドレスをPRPリスト開始アドレス記憶部133に一時的に記憶させる。
Step S37 is the same as step S25. In step S37, the designated address analysis unit 135 of the address generation circuit 130 reads the start address from the address of the SRAM 139 obtained in step S35.
For example, in the case of the designated address “1”, the designated address analysis unit 135 acquires the start address “D0” from the SRAM address “0”. The designated address analysis unit 135 temporarily stores the acquired start address in the PRP list start address storage unit 133.

ステップS39は、ステップS27と同様である。ステップS39において、アドレス記憶ユニット129の仮想アドレス算出部137は、開始アドレスに加算アドレスを加算することにより指定アドレスに対応する仮想アドレスを生成する。例えば、指定アドレスが「1」の場合、仮想アドレス算出部137は、開始アドレス「D0」に加算アドレス「4K」を加算して仮想アドレス「D0+4K」を生成する。また、仮想アドレス算出部137は、生成した仮想アドレスをアドレス生成回路130内の指定アドレス「1」に格納する。
ステップS41は、ステップS29と同様である。ステップS41において、外部記憶装置140は、アドレス記憶ユニット129内の指定アドレスから仮想アドレスを読み出す。
Step S39 is the same as step S27. In step S39, the virtual address calculation unit 137 of the address storage unit 129 generates a virtual address corresponding to the designated address by adding the addition address to the start address. For example, when the designated address is “1”, the virtual address calculation unit 137 adds the addition address “4K” to the start address “D0” to generate the virtual address “D0 + 4K”. Further, the virtual address calculation unit 137 stores the generated virtual address in the designated address “1” in the address generation circuit 130.
Step S41 is the same as step S29. In step S <b> 41, the external storage device 140 reads the virtual address from the designated address in the address storage unit 129.

ステップS43は、ステップS31と同様である。ステップS43において、外部記憶装置140のコントローラは、読み出したデータを、アドレス記憶ユニット129から読み出したメインメモリ103の仮想アドレス「D0+4K」に書き込む。   Step S43 is the same as step S31. In step S43, the controller of the external storage device 140 writes the read data to the virtual address “D0 + 4K” of the main memory 103 read from the address storage unit 129.

このように、外部記憶装置140はRC・IP125を介して、コマンドリストに含まれる指定アドレスと読み出しデータ量とに基づいて、コマンドリストで指定された全てのデータの読み出しが完了するまで、ステップS33〜S43の処理を繰り返す。
例えばコマンドリストに含まれる指定アドレスが「0」で、外部記憶装置140からの読み出しデータ量が32KBの場合、外部記憶装置140はステップS21〜S31で指定アドレス「0」に対応するデータの読み出しと書き込みを実行した後に、ステップS33〜S43を実行して順次、指定アドレス「1」〜「7」を生成し、4KBずつのデータをメインメモリ103の仮想アドレス「D0+4K」〜「D0+28K」に格納する。
As described above, the external storage device 140 performs the step S33 until the reading of all the data specified in the command list is completed based on the specified address and the read data amount included in the command list via the RC / IP 125. The process of S43 is repeated.
For example, when the designated address included in the command list is “0” and the amount of data read from the external storage device 140 is 32 KB, the external storage device 140 reads data corresponding to the designated address “0” in steps S21 to S31. After writing, steps S33 to S43 are executed to sequentially generate designated addresses “1” to “7” and store 4 KB data in virtual addresses “D0 + 4K” to “D0 + 28K” of the main memory 103. .

ステップS45において、外部記憶装置140はRC・IP125を介して、サブCPU123に対して要求された全てのデータについてメインメモリ103への格納が終了した旨を通知する。
ステップS47において、サブCPU123はメインメモリ103上の仮想アドレスを指定して、該アドレスに格納されたデータを読み出す。
ステップS49において、サブCPU123は、cgbI/F121を介して読み出したデータを描画回路107に出力する。ここで、描画回路107とcgbI/F121はマスタとスレーブの関係にある。ステップS15でマスタである描画回路107からスレーブであるcgbI/F121に対して行われたリクエストに対するレスポンスとしてのリードデータは、cgbI/F121から描画回路107に返される。
In step S <b> 45, the external storage device 140 notifies the sub CPU 123 that all the requested data has been stored in the main memory 103 via the RC / IP 125.
In step S47, the sub CPU 123 designates a virtual address on the main memory 103, and reads data stored at the address.
In step S <b> 49, the sub CPU 123 outputs the data read out via the cgb I / F 121 to the drawing circuit 107. Here, the drawing circuit 107 and the cgb I / F 121 have a master-slave relationship. In step S15, read data as a response to the request made to the slave cgb I / F 121 from the master drawing circuit 107 is returned from the cgb I / F 121 to the drawing circuit 107.

ステップS51において、描画回路107は、サブCPU123から入力されたデータに基づいて描画処理を行う。
ステップS53において、描画回路107は、描画処理により生成した画像データをメインメモリ103に格納する。
ステップS55において、表示回路109は、表示装置111の表示タイミングに基づいてメインメモリ103から画像データを取得する。
ステップS57において、表示回路109は、表示装置111に表示画面としての画像データを出力する。
In step S <b> 51, the drawing circuit 107 performs a drawing process based on the data input from the sub CPU 123.
In step S <b> 53, the drawing circuit 107 stores the image data generated by the drawing process in the main memory 103.
In step S <b> 55, the display circuit 109 acquires image data from the main memory 103 based on the display timing of the display device 111.
In step S <b> 57, the display circuit 109 outputs image data as a display screen to the display device 111.

〈コマンドリストに含める指定アドレスの管理方法〉
サブCPU123は、コマンドリストに含める指定アドレスを管理する。以下、図4を参照しながら説明する。
<Management method of specified address to be included in command list>
The sub CPU 123 manages designated addresses included in the command list. Hereinafter, a description will be given with reference to FIG.

《第一のパターン》
サブCPU123は、直前のリードリクエストで使用していない指定アドレスをコマンドリストに含めるように制御する。例えば、サブCPU123は、直前のリードリクエストで使用された指定アドレスの直後に位置する指定アドレス(未使用の指定アドレス)をコマンドリストに含めるように制御する。なお、サブCPU123は、コマンドリストに含めた指定アドレスと、メモリページサイズと、読み出しデータ量とから、直前のリードリクエストで使用された指定アドレスを認識することができる。
仮に、直前のリードリクエストで指定アドレス0〜3が使用された場合、サブCPU123は、次のリードリクエストに基づくコマンドリストに指定アドレス4を含める。また、外部記憶装置140のコントローラは、コマンドリストに含まれた指定アドレス4からカウントアップする。
First pattern
The sub CPU 123 performs control so that a specified address that is not used in the immediately preceding read request is included in the command list. For example, the sub CPU 123 controls the command list to include a designated address (unused designated address) located immediately after the designated address used in the immediately preceding read request. The sub CPU 123 can recognize the designated address used in the immediately preceding read request from the designated address included in the command list, the memory page size, and the read data amount.
If the designated addresses 0 to 3 are used in the immediately preceding read request, the sub CPU 123 includes the designated address 4 in the command list based on the next read request. Further, the controller of the external storage device 140 counts up from the designated address 4 included in the command list.

《第二のパターン》
サブ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内の領域に格納される。
《Second pattern》
The sub CPU 123 controls the designated address included in the command list so that the entire data requested by one read request is continuously stored in the main memory 103. For example, if the sub CPU 123 cannot store all of the data based on one read request in one continuous area of the main memory represented by one PRP list, the sub CPU 123 sets the designated address assigned to the other PRP list to the command list. Control to include.
Assume that dispersed areas 0 to 3 as shown in FIG. 3B are secured in the main memory 103. As a result of the use of the designated addresses 0 to 250 in FIG. 4, it is assumed that the remaining capacity of the area 0 is 20 KB and the area 1 is unused. When the amount of read data is 32 KB, the entire read data cannot be stored in the unused portion of area 0. Therefore, the sub CPU 123 performs control so that the designated address 256 shown in FIG. 4 is included in the command list so that the entire read data is stored in the area 1 of the main memory 103. In this case, the read data is stored in an area in the main memory 103 corresponding to the designated addresses 256 to 263 in FIG.

《第三のパターン》
サブCPU123は、1つのリードリクエストで要求されるデータの全体が、メインメモリ103内に連続して格納されるように、コマンドリストに含める指定アドレスを制御する。例えば、サブCPU123は、1つのリードリクエストに対して1つのPRPリストを割り当てるように、コマンドリストに含める指定アドレスを制御する。
具体的には、1番目に出力されたリードリクエストに対して、サブCPU123は、PRPリスト#0に対応づけられた複数の指定アドレスのうちの先頭に位置するアドレス(指定アドレス0)を含むコマンドリストを生成する。また、2番目に出力されたリードリクエストに対して、サブCPU123は、PRPリスト#1に対応づけられた複数の指定アドレスのうちの先頭に位置するアドレス(指定アドレス256)を含むコマンドリストを生成する。
このような処理は、サブCPU123が複数のリードリクエストを並列処理する場合に特に有効である。
《Third pattern》
The sub CPU 123 controls the designated address included in the command list so that the entire data requested by one read request is continuously stored in the main memory 103. For example, the sub CPU 123 controls a designated address included in the command list so that one PRP list is assigned to one read request.
Specifically, for the read request output first, the sub CPU 123 includes a command including an address (designated address 0) located at the head of the plurality of designated addresses associated with the PRP list # 0. Generate a list. In response to the second output read request, the sub CPU 123 generates a command list including an address (specified address 256) located at the head of a plurality of specified addresses associated with the PRP list # 1. To do.
Such a process is particularly effective when the sub CPU 123 processes a plurality of read requests in parallel.

《第四のパターン》
サブ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リストで管理するメインメモリの領域のサイズよりも大きい場合にも同様に適用できる。
《Fourth pattern》
The sub CPU 123 controls the designated address included in the command list so that the entire data requested by one read request is continuously stored in the main memory 103. For example, the sub CPU 123 controls a designated address included in the command list so that all data based on one read request is stored in a continuous area of the main memory expressed across a plurality of PRP lists.
Assume that continuous areas 0 to 3 as shown in FIG. 3A are secured in the main memory 103. As a result of the use of the designated addresses 0 to 250 in FIG. 4, it is assumed that the remaining capacity of the area 0 is 20 KB and the area 1 is unused. When the amount of read data is 32 KB, the sub CPU 123 stores the read data in an area in the main memory 103 corresponding to the specified addresses 251 to 258 by including the specified address 251 shown in FIG. 4 in the command list. . As described above, when the areas managed by the PRP list are continuous in the main memory, the data may be stored across the adjacent areas of the main memory 103.
The above control can be similarly applied to the case where the amount of data read by one read request is larger than the size of the main memory area managed by one PRP list.

なお、1つのリードリクエストに基づく読み出しデータは、メインメモリ103内に連続して格納されることが望ましいが、読み出しデータがメインメモリ103内に分散して格納されても構わない。   Note that read data based on one read request is desirably stored continuously in the main memory 103, but the read data may be distributed and stored in the main memory 103.

〈変形例〉
上記実施形態においては、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:音声処理ユニット)を備え、表示装置に代えてスピーカを備える。上記、画像データや音声データを処理する情報処理装置は、パチンコ機やパチスロ機等の遊技機に搭載される。
<Modification>
In the above embodiment, the SRAM 139 prepared in the CGROM controller 120 is used as the PRP list storage destination. However, the PRP list may be stored in the main memory 103 or another memory.
In the above embodiment, the sub CPU 123 stores the PRP list in the SRAM 139 when the image processing apparatus 100 is activated. However, the PRP list only needs to be stored at least before the creation of the command list in step S17. For example, the sub CPU 123 may generate the PRP list and store it in the SRAM 139 after receiving the read request in step S15.
The memory page size set by the sub CPU 123 in its own register is not limited to the minimum value of the memory page size of the external storage device 140. For example, the sub CPU 123 may set the maximum value (CAP.MPSMAX) of the memory page size described in the CAP register of the external storage device 140 in its own register.
In the above embodiment, since the sub CPU 123 instructs the external storage device 140 with a designated address, and the external storage device 140 accesses the address storage unit 129 using the designated address, the designated address instruction means is the sub CPU 123. However, the sub CPU 123 and the RC / IP 125 that is a bridge function to the external storage device 140 can also be regarded as designated address instruction means.
Although the present invention has been described with reference to an example of an image processing apparatus and an image processing system, the present invention is an apparatus that processes data other than image data, for example, an audio processing apparatus that processes audio data, and an audio processing apparatus and an external storage The present invention can also be applied to a voice processing system configured with a device. The audio processing device includes a DSP (Digital Signal Processor: audio processing unit) that processes audio data instead of the GPU of the image processing device, and includes a speaker instead of the display device. The information processing apparatus that processes image data and audio data is mounted on a gaming machine such as a pachinko machine or a pachislot machine.

〈効果〉
以上のように本実施形態によれば、1つの開始アドレスから複数の仮想アドレスを生成することにより、メインメモリ上で連続する複数の小領域を1つのPRPリストで表現することができる。従って、メインメモリの領域管理に使用するPRPリストが少なくて済み、PRPリストによるメモリの消費を低減できる。
<effect>
As described above, according to the present embodiment, by generating a plurality of virtual addresses from one start address, a plurality of continuous small areas on the main memory can be represented by one PRP list. Therefore, the number of PRP lists used for managing the area of the main memory can be reduced, and memory consumption by the PRP list can be reduced.

〔本発明の実施態様例と作用、効果のまとめ〕
<第一の実施態様>
本態様に係る情報処理装置(画像処理装置100)は、バスを介してアクセス可能なメインメモリ103と、外部記憶装置140が接続されるPCIeインターフェースを有すると共に該PCIeインターフェースを制御するコントローラ(CGROMコントローラ120)と、を備え、外部記憶装置に記憶されたデータを読み出して、NVMeコマンド規格に従ってメインメモリに格納する装置であり、以下の特徴を有する。
即ち、情報処理装置は、PRPリストを格納するリスト格納メモリ(SRAM139)と、外部記憶装置から読み出したデータをメインメモリに格納するための仮想アドレスを生成する仮想アドレス生成手段(アドレス生成回路130)と、を備え、仮想アドレス生成手段は、複数のアドレスを単一のPRPリストに割り当てると共に、アドレスが指示された場合に指示された指定アドレスに対応するPRPリストに含まれる開始アドレスと指定アドレスに応じた加算アドレスとに基づいて仮想アドレスを生成することを特徴とする。
[Summary of Embodiments, Actions, and Effects of the Present Invention]
<First embodiment>
An information processing apparatus (image processing apparatus 100) according to this aspect includes a main memory 103 accessible via a bus and a PCIe interface to which an external storage device 140 is connected, and a controller (CGROM controller) that controls the PCIe interface 120), and stores the data stored in the external storage device in the main memory in accordance with the NVMe command standard, and has the following characteristics.
That is, the information processing apparatus includes a list storage memory (SRAM 139) that stores a PRP list, and virtual address generation means (address generation circuit 130) that generates a virtual address for storing data read from the external storage device in the main memory. And the virtual address generation means assigns a plurality of addresses to a single PRP list, and adds a start address and a designated address included in the PRP list corresponding to the designated address designated when the address is designated. A virtual address is generated based on the corresponding addition address.

本態様によれば、PRPリストによるメモリの消費を低減することが可能となる。
即ち、PRPリストにはメインメモリ内で連続する領域の先頭に位置する開始アドレスを記述すると共に、1つのPRPリストにリスト格納メモリ内の複数のアドレスを割り当てる。仮想アドレス生成手段は、リスト格納メモリ内のアドレスが指示される毎に、指示された指定アドレスに対応する仮想アドレスを順次生成する。各仮想アドレスはメインメモリ上の各小領域を表現するものであり、開始アドレスに加算アドレスを加算することにより生成される。従って、より少ないPRPリストでメインメモリの連続領域を表現でき、PRPリストによるメモリの消費を低減することができる。
例えば、遊技機等の画像処理装置のように、高速かつ高精細な画像表示が求められている装置においてはPRPリストによるメモリ消費を低減することで、画像処理に割り当てるメモリを増やすことができる。
According to this aspect, it is possible to reduce memory consumption by the PRP list.
That is, the PRP list describes the start address located at the head of a continuous area in the main memory, and assigns a plurality of addresses in the list storage memory to one PRP list. The virtual address generation means sequentially generates virtual addresses corresponding to the designated address every time an address in the list storage memory is designated. Each virtual address represents each small area on the main memory, and is generated by adding the addition address to the start address. Therefore, a continuous area of the main memory can be expressed with a smaller number of PRP lists, and memory consumption by the PRP list can be reduced.
For example, in an apparatus that requires high-speed and high-definition image display, such as an image processing apparatus such as a gaming machine, memory allocated to image processing can be increased by reducing memory consumption by the PRP list.

<第二の実施態様>
本態様に係る情報処理装置(画像処理装置100)において、仮想アドレス生成手段(アドレス生成回路130)は、複数のアドレスを単一のPRPリストに割り当てるアドレス割当手段(アドレス割当部131)と、指定アドレスに対応するPRPリストと加算アドレスとを求める指定アドレス解析手段(指定アドレス解析部135)と、求められたPRPリストに含まれる開始アドレスと加算アドレスとに基づいて仮想アドレスを算出する仮想アドレス算出手段(仮想アドレス算出部137)と、を備えることを特徴とする。
本態様は、第一の実施態様と同様の効果を奏する。
<Second embodiment>
In the information processing apparatus (image processing apparatus 100) according to this aspect, the virtual address generation unit (address generation circuit 130) includes an address allocation unit (address allocation unit 131) that allocates a plurality of addresses to a single PRP list, and a designation Virtual address calculation for calculating a virtual address based on a specified address analyzing means (specified address analyzing unit 135) for obtaining a PRP list and an added address corresponding to the address, and a start address and an added address included in the obtained PRP list. Means (virtual address calculation unit 137).
This aspect has the same effect as the first embodiment.

<第三の実施態様>
本態様に係る情報処理装置(画像処理装置100)は、データのリードリクエストに基づいて仮想アドレス生成手段(アドレス生成回路130)に指定アドレスを指示する指定アドレス指示手段(サブCPU123、外部記憶装置140またはRC・IP125)を備え、指定アドレス指示手段(外部記憶装置140またはRC・IP125)は、直前のリードリクエストにおいて未使用の指定アドレスからカウントアップすることを特徴とする。
本態様によれば、指定アドレスを順番に使用するので、メインメモリのメモリ空間を有効に活用できる。
<Third embodiment>
The information processing apparatus (image processing apparatus 100) according to the present aspect includes designated address instructing means (sub CPU 123, external storage device 140) that instructs a virtual address generating means (address generating circuit 130) based on a data read request. Or RC / IP 125), and the designated address indicating means (external storage device 140 or RC / IP 125) counts up from the unused designated address in the immediately preceding read request.
According to this aspect, since the designated addresses are used in order, the memory space of the main memory can be used effectively.

<第四の実施態様>
本態様に係る情報処理装置(画像処理装置100)において、指定アドレス指示手段(サブCPU)は、一のPRPリストによって表現されるメインメモリ103の連続する一領域に一のリードリクエストに基づくデータの全部を格納できない場合、他のPRPリストに割り当てられている指定アドレスを指示することを特徴とする。
本態様によれば、外部記憶装置から読み出したデータを、メインメモリ上に連続した状態で格納することができる。
<Fourth embodiment>
In the information processing apparatus (image processing apparatus 100) according to this aspect, the designated address instruction unit (sub CPU) transmits data based on one read request to one continuous area of the main memory 103 represented by one PRP list. When all the data cannot be stored, the designated address assigned to another PRP list is indicated.
According to this aspect, the data read from the external storage device can be stored in a continuous state on the main memory.

<第五の実施態様>
本態様に係る情報処理装置(画像処理装置100)は、データのリードリクエストに基づいて仮想アドレス生成手段(アドレス生成回路130)に指定アドレスを指示する指定アドレス指示手段(サブCPU123、外部記憶装置140またはRC・IP125)を備え、指定アドレス指示手段(サブCPU123)は、一のリードリクエストに対して一のPRPリストを割り当てるように指定アドレスを指示することを特徴とする。
本態様においては、1つのリードリクエストに対してPRPリストが1対1で割り当てられるので、複数のリードリクエストに基づく処理を並列して実行する場合に、メインメモリのアドレス管理が容易となる。
<Fifth embodiment>
The information processing apparatus (image processing apparatus 100) according to the present aspect includes designated address instructing means (sub CPU 123, external storage device 140) that instructs a virtual address generating means (address generating circuit 130) based on a data read request. Or RC / IP 125), and the designated address instruction means (sub CPU 123) designates the designated address so as to allocate one PRP list to one read request.
In this aspect, since the PRP list is assigned to one read request on a one-to-one basis, when processing based on a plurality of read requests is executed in parallel, main memory address management becomes easy.

<第六の実施態様>
本態様に係る情報処理装置(画像処理装置100)は、画像データ又は音声データを処理する処理ユニット(GPU105、DSP)と、メインメモリ103上の仮想アドレスに格納されたデータを取得して、処理ユニットに出力するように制御するサブCPU123と、を備えることを特徴とする。
本発明は、遊技機等の画像処理装置や音声処理装置等、メインメモリ上に大きな連続領域を確保することが容易な情報処理装置に特に有効である。
<Sixth embodiment>
The information processing apparatus (image processing apparatus 100) according to this aspect acquires processing data (GPU 105, DSP) that processes image data or audio data, and data stored in a virtual address on the main memory 103, and performs processing. And a sub CPU 123 that controls to output to the unit.
The present invention is particularly effective for an information processing apparatus that can easily secure a large continuous area on a main memory, such as an image processing apparatus such as a gaming machine or an audio processing apparatus.

<第七の実施態様>
本態様に係る情報処理システムは、情報処理装置(画像処理装置100)と、PCIeインターフェースと接続する外部記憶装置140と、を備えることを特徴とする。
本態様によれば、第一乃至第六の実施態様と同様の効果を奏する。
<Seventh embodiment>
The information processing system according to this aspect includes an information processing apparatus (image processing apparatus 100) and an external storage device 140 connected to a PCIe interface.
According to this aspect, there are the same effects as the first to sixth embodiments.

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   DESCRIPTION OF SYMBOLS 100 ... Image processing apparatus, 101 ... Main CPU, 103 ... Main memory, 105 ... GPU, 107 ... Drawing circuit, 109 ... Display circuit, 111 ... Display apparatus, 120 ... CGROM controller, 121 ... cgbI / F, 123 ... Sub CPU 125 ... PCIeRC / IP, 129 ... Address storage unit, 130 ... Address generation circuit, 131 ... Address allocation unit, 133 ... PRP list start address storage unit, 135 ... Designated address analysis unit, 137 ... Virtual address calculation unit, 139 ... SRAM, 140 ... external storage device, 151 ... main bus, 153 ... internal bus, 155 ... ICM

Claims (7)

バスを介してアクセス可能なメインメモリと、外部記憶装置が接続されるPCIeインターフェースを有すると共に該PCIeインターフェースを制御するコントローラと、を備え、前記外部記憶装置に記憶されたデータを読み出して、NVMeコマンド規格に従って前記メインメモリに格納する情報処理装置であって、
前記メインメモリは複数の小領域が連続する大領域を複数有し、
前記コントローラは、前記メインメモリの前記各大領域の先頭に位置する開始アドレスの情報を格納する格納メモリと仮想アドレス生成手段と、を備え、
前記仮想アドレス生成手段は、前記NVMeコマンド規格に従って指定される複数の指定アドレスを一つの前記開始アドレスに割り当てると共に、該指定アドレスに対応した加算アドレスを保持または算出し、割り当てられた前記開始アドレスの情報に前記加算アドレスを加算して仮想アドレスを生成することを特徴とする情報処理装置。
A main memory accessible via a bus; a controller having a PCIe interface to which an external storage device is connected and controlling the PCIe interface; and reading data stored in the external storage device, An information processing apparatus for storing in the main memory according to a standard,
The main memory has a plurality of large areas in which a plurality of small areas are continuous,
The controller includes a storage memory that stores information on a start address located at the head of each large area of the main memory, and a virtual address generation unit.
The virtual address generation means assigns a plurality of designated addresses designated in accordance with the NVMe command standard to one start address , holds or calculates an addition address corresponding to the designated address , and sets the assigned start address. An information processing apparatus that generates a virtual address by adding the addition address to information.
前記仮想アドレス生成手段は、
前記複数の指定アドレスを一の前記開始アドレスに割り当てるアドレス割当手段と、
前記指定アドレスに対応する前記開始アドレスと前記加算アドレスとを求める指定アドレス解析手段と、
求められた前記開始アドレスと前記加算アドレスとに基づいて前記仮想アドレスを算出する仮想アドレス算出手段と、を備えることを特徴とする請求項1に記載の情報処理装置。
The virtual address generation means includes
Address allocating means for allocating the plurality of designated addresses to one start address ;
Designated address analysis means for obtaining the start address and the addition address corresponding to the designated address;
The information processing apparatus according to claim 1, characterized in that and a virtual address calculating means for calculating the virtual address based on the previous SL start address obtained and the added address.
前記情報処理装置が備えるプロセッサからのデータのリードリクエストに基づいて前記仮想アドレス生成手段に前記指定アドレスを指示する指定アドレス指示手段を備え、
前記指定アドレス指示手段は、該指定アドレス指示手段から前記仮想アドレス生成手段に出力された最新の指定アドレスの次の指定アドレスに基づき、前記外部記憶装置から読み出すデータの格納に必要なデータサイズに応じた一または複数の指定アドレスを生成することを特徴とする請求項1又は2に記載の情報処理装置。
Comprising a specified address instruction means for instructing the designated address in the virtual address generating means based on the read request of data from the processor provided in the information processing apparatus,
The designated address instruction means is responsive to a data size necessary for storing data read from the external storage device based on a designated address next to the latest designated address output from the designated address instruction means to the virtual address generation means. The information processing apparatus according to claim 1, wherein one or a plurality of designated addresses are generated.
前記指定アドレス指示手段は、一の前記開始アドレスによって表現される前記メインメモリの連続する一領域に一の前記リードリクエストに基づくデータの全部を格納できない場合、他の前記開始アドレスに割り当てられている前記指定アドレスを指示することを特徴とする請求項3に記載の情報処理装置。 Said specified address indication means, when it can not store all of the data in accordance with one of the read request to the successive one region of the main memory to be represented by the start address one, are assigned to other said start address The information processing apparatus according to claim 3, wherein the designated address is designated. 前記情報処理装置が備えるプロセッサからのデータのリードリクエストに基づいて前記仮想アドレス生成手段に前記指定アドレスを指示する指定アドレス指示手段を備え、
前記指定アドレス指示手段は、前記リードリクエスト毎に夫々異なる前記大領域を示す前記指定アドレスを指示することを特徴とする請求項1又は2に記載の情報処理装置。
A designated address instruction means for instructing the designated address to the virtual address generation means based on a data read request from a processor provided in the information processing apparatus ;
The information processing apparatus according to claim 1, wherein the designated address instruction unit instructs the designated address indicating the large area which is different for each read request .
画像データ又は音声データを処理する処理ユニットと、
前記メインメモリ上の前記仮想アドレスに格納されたデータを取得して、前記処理ユニットに出力するように制御するサブCPUと、を備えることを特徴とする請求項1乃至5の何れか一項に記載の情報処理装置。
A processing unit for processing image data or audio data;
6. A sub-CPU that controls to acquire data stored in the virtual address on the main memory and output the data to the processing unit. 6. The information processing apparatus described.
請求項1乃至6の何れか一項に記載の情報処理装置と、前記PCIeインターフェースと接続する外部記憶装置と、を備えることを特徴とする情報処理システム。 An information processing system comprising: the information processing apparatus according to any one of claims 1 to 6; and an external storage device connected to the PCIe interface.
JP2016217286A 2016-11-07 2016-11-07 Information processing apparatus and information processing system Active JP6562419B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2016217286A JP6562419B2 (en) 2016-11-07 2016-11-07 Information processing apparatus and information processing system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016217286A JP6562419B2 (en) 2016-11-07 2016-11-07 Information processing apparatus and information processing system

Publications (2)

Publication Number Publication Date
JP2018077564A JP2018077564A (en) 2018-05-17
JP6562419B2 true JP6562419B2 (en) 2019-08-21

Family

ID=62150678

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016217286A Active JP6562419B2 (en) 2016-11-07 2016-11-07 Information processing apparatus and information processing system

Country Status (1)

Country Link
JP (1) JP6562419B2 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113064552A (en) * 2021-03-24 2021-07-02 山东华芯半导体有限公司 Autonomous separated NVMe PRP acquisition acceleration method

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11194991A (en) * 1998-01-06 1999-07-21 Canon Inc System control method and communication equipment
JP5540207B2 (en) * 2011-08-04 2014-07-02 株式会社 日立産業制御ソリューションズ Control device
US20160342545A1 (en) * 2014-02-12 2016-11-24 Hitachi, Ltd. Data memory device
KR102330389B1 (en) * 2014-07-24 2021-11-24 삼성전자주식회사 Storage device and data porcessing method thereof

Also Published As

Publication number Publication date
JP2018077564A (en) 2018-05-17

Similar Documents

Publication Publication Date Title
US10732982B2 (en) Data processing systems
CN103034524B (en) Half virtualized virtual GPU
JP7008422B2 (en) How to enable kernel-mode access and user-mode access to NVMe devices at the same time, host computer system, and non-temporary computer readable recording medium
KR20190021474A (en) Assignment of Physical Pages to Sparse Data Sets in Virtual Memory without Page Faults
JP4886866B2 (en) Method for speeding up access to main storage device and storage device system
US6925546B2 (en) Memory pool configuration system
US8395631B1 (en) Method and system for sharing memory between multiple graphics processing units in a computer system
JP2009187379A (en) Virtual computer server unit, updating image detection method, and program
JP2022516486A (en) Resource management methods and equipment, electronic devices, and recording media
CN109977037B (en) DMA data transmission method and system
JP3186244B2 (en) Virtual computer system
WO2018119713A1 (en) Display method, device, and electronic apparatus for multi-os system
WO2018103022A1 (en) Method and apparatus for achieving frame buffering, electronic device and computer program product
JP6974510B2 (en) Methods, devices, devices and media for processing data
CN109766179B (en) Video memory allocation method and device
US9324299B2 (en) Atlasing and virtual surfaces
JP6562419B2 (en) Information processing apparatus and information processing system
TW201351276A (en) Scheduling and execution of compute tasks
WO2018119712A1 (en) Video display method, device, electronic apparatus, and computer program product
US11960410B2 (en) Unified kernel virtual address space for heterogeneous computing
CN113485791B (en) Configuration method, access method, device, virtualization system and storage medium
CN108701047A (en) The high density virtual machine container replicated when with DMA write
US20200201758A1 (en) Virtualized input/output device local memory management
US20230266992A1 (en) Processor for managing resources using dual queues, and operating method thereof
CN112513822A (en) Information processing method, device, equipment and system

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180703

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180828

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190122

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190318

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20190702

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190717

R150 Certificate of patent or registration of utility model

Ref document number: 6562419

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250