JP6828528B2 - Information processing device, control method of information processing device, and control program of information processing device - Google Patents

Information processing device, control method of information processing device, and control program of information processing device Download PDF

Info

Publication number
JP6828528B2
JP6828528B2 JP2017047223A JP2017047223A JP6828528B2 JP 6828528 B2 JP6828528 B2 JP 6828528B2 JP 2017047223 A JP2017047223 A JP 2017047223A JP 2017047223 A JP2017047223 A JP 2017047223A JP 6828528 B2 JP6828528 B2 JP 6828528B2
Authority
JP
Japan
Prior art keywords
unit
cache
data processing
cache control
programmable
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
JP2017047223A
Other languages
Japanese (ja)
Other versions
JP2018151827A (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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2017047223A priority Critical patent/JP6828528B2/en
Priority to PCT/JP2018/004181 priority patent/WO2018168264A1/en
Publication of JP2018151827A publication Critical patent/JP2018151827A/en
Application granted granted Critical
Publication of JP6828528B2 publication Critical patent/JP6828528B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/02Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
    • H03K19/173Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
    • H03K19/177Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Logic Circuits (AREA)

Description

本発明は、情報処理装置、情報処理装置の制御方法および情報処理装置の制御プログラムに関する。 The present invention relates to an information processing device, a control method of the information processing device, and a control program of the information processing device.

近時、論理を動的に再構成可能なFPGA(Field-Programmable Gate Array)等のプログラマブルデバイスをアクセラレータとして機能させる情報処理装置が注目されている。この種の情報処理装置において、処理をソフトウェアまたはハードウェアのいずれで実行するかを判断し、ハードウェアで実行する場合、FPGAに論理を構築して処理を実行する手法が知られている(例えば、特許文献1参照)。 Recently, an information processing device that makes a programmable device such as an FPGA (Field-Programmable Gate Array) capable of dynamically reconfiguring logic function as an accelerator has attracted attention. In this type of information processing apparatus, when it is determined whether the processing is executed by software or hardware and the processing is executed by hardware, a method of constructing logic in FPGA and executing the processing is known (for example). , Patent Document 1).

例えば、FPGAに構築する論理は、高級言語で記述されたソースファイルを制御フローグラフ表現、制御データフローグラフ表現に順次変換し、制御データフローグラフ表現をハードウェア記述言語に変換することで生成される(例えば、特許文献2参照)。また、ソースファイルのうち、ソフトウェアで実行する部分とハードウェアで実行する部分とを、コンパイラによって判定する手法が知られている(例えば、特許文献3参照)。 For example, the logic to be built in FPGA is generated by sequentially converting a source file written in a high-level language into a control flow graph representation and a control data flow graph representation, and then converting the control data flow graph representation into a hardware description language. (See, for example, Patent Document 2). Further, there is known a method in which a compiler determines a portion of a source file to be executed by software and a portion to be executed by hardware (see, for example, Patent Document 3).

一方、演算処理を並列に実行する複数の演算器を含むデータ処理装置では、プログラムの実行によりデータのアクセスパターンが予め解析され、解析結果に基づいて、複数の演算器で処理するデータが特定される。複数の演算器にキャッシュメモリがそれぞれ接続される場合、特定されたデータは、データを処理する演算器に対応するキャッシュメモリに格納される(例えば、特許文献4参照)。 On the other hand, in a data processing device including a plurality of arithmetic units that execute arithmetic processing in parallel, a data access pattern is analyzed in advance by executing a program, and data to be processed by the plurality of arithmetic units is specified based on the analysis result. To. When the cache memory is connected to each of the plurality of arithmetic units, the specified data is stored in the cache memory corresponding to the arithmetic unit that processes the data (see, for example, Patent Document 4).

特開2004−21426号公報Japanese Unexamined Patent Publication No. 2004-21426 特表2006−505055号公報Special Table 2006-505055 特表2005−535055号公報Special Table 2005-535055 特開2011−8485号公報Japanese Unexamined Patent Publication No. 2011-8485

ところで、特定のアプリケーション用のデータ処理を実行するデータ処理部をFPGAに搭載するドメイン指向型の情報処理装置では、FPGAに搭載するデータ処理部によるメモリアクセスのパターンは、アプリケーション毎に相違する。このため、汎用のキャッシュメモリを使用する場合、キャッシュヒット率等のキャッシュ効率が低下する場合がある。例えば、キャッシュメモリに保持されたデータは、LRU(Least Recently Used)方式にしたがって入れ替えられる。しかしながら、ドメイン指向型の情報処理装置が実行する各種アプリケーションは、メモリアクセスの特徴がそれぞれ異なるため、LRU方式が全てのアプリケーションに適するとは限らない。しかしながら、ドメイン指向型の情報処理装置において、アプリケーション毎にキャッシュ効率を最適化する手法は提案されていない。 By the way, in a domain-oriented information processing apparatus in which a data processing unit that executes data processing for a specific application is mounted on the FPGA, the pattern of memory access by the data processing unit mounted on the FPGA differs for each application. Therefore, when a general-purpose cache memory is used, the cache efficiency such as the cache hit rate may decrease. For example, the data held in the cache memory is replaced according to the LRU (Least Recently Used) method. However, since the various applications executed by the domain-oriented information processing apparatus have different memory access characteristics, the LRU method is not always suitable for all applications. However, in a domain-oriented information processing device, a method of optimizing the cache efficiency for each application has not been proposed.

1つの側面では、本発明は、プログラマブル部にプログラムされるデータ処理部によるメモリアクセスの特徴に応じて、キャッシュ効率を最適化することを目的とする。 In one aspect, the present invention aims to optimize cache efficiency according to the characteristics of memory access by the data processing unit programmed in the programmable unit.

一つの実施態様では、情報処理装置は、データを記憶する記憶部と、記憶部が記憶するデータを処理するデータ処理部と、データ処理部で使用するデータが格納されるキャッシュメモリ部と、データ処理部が記憶部から読み出すデータをキャッシュメモリ部に格納するかをキャッシュ制御情報に基づいて決定するキャッシュ制御部と、データ処理部が発行するメモリアクセス要求に基づいてキャッシュ制御情報を生成するキャッシュ制御切替部とがプログラムされるプログラマブル部と、プログラマブル部にプログラムされるデータ処理部が発行するメモリアクセス要求に含まれるアクセスアドレスのパターンを分析する分析部と、分析部が分析したアクセスアドレスのパターンに基づいて、プログラマブル部にプログラムするキャッシュ制御切替部の論理を決定する決定部と、データ処理部、キャッシュメモリ部およびキャッシュ制御部をプログラマブル部にプログラムするとともに、決定部が決定したキャッシュ制御切替部をプログラマブル部にプログラムする構成制御部とを備える。 In one embodiment, the information processing apparatus includes a storage unit that stores data, a data processing unit that processes data stored in the storage unit, a cache memory unit that stores data used by the data processing unit, and data. A cache control unit that determines whether the data read from the storage unit by the processing unit is stored in the cache memory unit based on the cache control information, and a cache control that generates cache control information based on a memory access request issued by the data processing unit. The programmable unit in which the switching unit is programmed, the analysis unit that analyzes the access address pattern included in the memory access request issued by the data processing unit programmed in the programmable unit, and the access address pattern analyzed by the analysis unit. Based on this, the decision unit that determines the logic of the cache control switching unit to be programmed in the programmable unit, the data processing unit, the cache memory unit, and the cache control unit are programmed into the programmable unit, and the cache control switching unit determined by the determination unit is used. It is provided with a configuration control unit to be programmed in the programmable unit.

1つの側面では、本発明は、プログラマブル部にプログラムされるデータ処理部によるメモリアクセスの特徴に応じて、キャッシュ効率を最適化することができる。 In one aspect, the invention can optimize cache efficiency depending on the characteristics of memory access by the data processing unit programmed into the programmable unit.

情報処理装置、情報処理装置の制御方法および情報処理装置の制御プログラムの一実施形態を示す図である。It is a figure which shows one Embodiment of the information processing apparatus, the control method of an information processing apparatus, and the control program of an information processing apparatus. 図1に示す情報処理装置の動作フローの一例を示す図である。It is a figure which shows an example of the operation flow of the information processing apparatus shown in FIG. 図1に示す情報処理装置の動作の一例を示す図である。It is a figure which shows an example of the operation of the information processing apparatus shown in FIG. 情報処理装置、情報処理装置の制御方法および情報処理装置の制御プログラムの別の実施形態を示す図である。It is a figure which shows the information processing apparatus, the control method of an information processing apparatus, and another embodiment of the control program of an information processing apparatus. 図4に示すプログラマブル部のチップ構成の一例を示す図である。It is a figure which shows an example of the chip structure of the programmable part shown in FIG. 図4に示すプログラマブル部にプログラムされるデータ処理部の一例を示す図である。It is a figure which shows an example of the data processing part programmed in the programmable part shown in FIG. 図6に示す第2プログラムを実行する環境を構築する処理の一例を示す図である。It is a figure which shows an example of the process which constructs the environment which executes the 2nd program shown in FIG. 図7に示すステップS24で生成されるキャッシュ制御切替部を含むキャッシュ回路の動作の一例を示す図である。It is a figure which shows an example of the operation of the cache circuit including the cache control switching part generated in step S24 shown in FIG. 図7に示すステップS22で使用する特徴抽出テーブルの一例を示す図である。It is a figure which shows an example of the feature extraction table used in step S22 shown in FIG. 図7に示すステップS22の処理の一例を示す図である。It is a figure which shows an example of the process of step S22 shown in FIG. 情報処理装置の別の実施形態における第2プログラムを実行する環境を構築する処理の一例を示す図である。It is a figure which shows an example of the process which constructs the environment which executes the 2nd program in another embodiment of an information processing apparatus. 図11に示すステップS24で生成されたキャッシュ制御切替部を含むキャッシュ回路の動作の一例を示す図である。It is a figure which shows an example of the operation of the cache circuit including the cache control switching part generated in step S24 shown in FIG. 情報処理装置の別の実施形態における第2プログラムを実行する環境を構築する処理の一例を示す図である。It is a figure which shows an example of the process which constructs the environment which executes the 2nd program in another embodiment of an information processing apparatus. 情報処理装置の別の実施形態における第2プログラムを実行する環境を構築する処理の一例を示す図である。It is a figure which shows an example of the process which constructs the environment which executes the 2nd program in another embodiment of an information processing apparatus. 情報処理装置の別の実施形態における第2プログラムを実行する環境を構築する処理の一例を示す図である。It is a figure which shows an example of the process which constructs the environment which executes the 2nd program in another embodiment of an information processing apparatus.

以下、図面を用いて実施形態を説明する。 Hereinafter, embodiments will be described with reference to the drawings.

図1は、情報処理装置、情報処理装置の制御方法および情報処理装置の制御プログラムの一実施形態を示す。図1に示す情報処理装置100は、例えば、ドメイン指向サーバであり、FPGA等のプログラマブル部1、メモリモジュール等の記憶部2およびCPU(Central Processing Unit)等の演算処理装置3を有する。情報処理装置100は、図1に示す要素以外に、HDD(Hard Disk Drive)および通信インタフェース等を有してもよい。 FIG. 1 shows an embodiment of an information processing device, a control method of the information processing device, and a control program of the information processing device. The information processing device 100 shown in FIG. 1 is, for example, a domain-oriented server, and includes a programmable unit 1 such as an FPGA, a storage unit 2 such as a memory module, and an arithmetic processing unit 3 such as a CPU (Central Processing Unit). The information processing device 100 may have an HDD (Hard Disk Drive), a communication interface, and the like in addition to the elements shown in FIG.

プログラマブル部1には、例えば、特定のアプリケーションで使用するデータを処理するデータ処理部1aおよびキャッシュ回路1b等の回路がプログラムされる。キャッシュ回路1bは、キャッシュ制御切替部1c、キャッシュ制御部1dおよびキャッシュメモリ部1eを有する。キャッシュメモリ部1eには、データ処理部1aで使用するデータが格納される。キャッシュ制御部1dは、データ処理部1aが発行するメモリアクセス要求に基づいて、記憶部2にアクセスする制御を実行する。また、キャッシュ制御部1dは、データ処理部1aが記憶部2から読み出すデータをキャッシュメモリ部1eに格納するか否かをキャッシュ制御情報CINFに基づいて決定する。キャッシュ制御切替部1cは、データ処理部1aが発行するメモリアクセス要求(リードアクセス要求またはライトアクセス要求)に基づいてキャッシュ制御情報CINFを生成する。 The programmable unit 1 is programmed with circuits such as a data processing unit 1a and a cache circuit 1b that process data used in a specific application, for example. The cache circuit 1b includes a cache control switching unit 1c, a cache control unit 1d, and a cache memory unit 1e. The data used by the data processing unit 1a is stored in the cache memory unit 1e. The cache control unit 1d executes control to access the storage unit 2 based on the memory access request issued by the data processing unit 1a. Further, the cache control unit 1d determines whether or not to store the data read from the storage unit 2 by the data processing unit 1a in the cache memory unit 1e based on the cache control information CINF. The cache control switching unit 1c generates cache control information CINF based on the memory access request (read access request or write access request) issued by the data processing unit 1a.

例えば、データ処理部1aが記憶部2から読み出すデータを、キャッシュメモリ部1eに保持させる場合、キャッシュ制御切替部1cは、リードアクセス要求に基づいて”S”(Shared)を示すキャッシュ制御情報CINFを生成する。データ処理部1aが記憶部2から読み出すデータを、キャッシュメモリ部1eに保持させない場合、キャッシュ制御切替部1cは、リードアクセス要求に基づいて”I”(Invalid)を示すキャッシュ制御情報CINFを生成する。 For example, when the cache memory unit 1e holds the data read from the storage unit 2 by the data processing unit 1a, the cache control switching unit 1c provides the cache control information CINF indicating "S" (Shared) based on the read access request. Generate. When the cache memory unit 1e does not hold the data read from the storage unit 2 by the data processing unit 1a, the cache control switching unit 1c generates cache control information CINF indicating "I" (Invalid) based on the read access request. ..

キャッシュ制御部1dは、リードアクセス要求に対応して受けるキャッシュ制御情報CINFが”S”の場合、記憶部2にリードアクセス要求を出力する。そして、キャッシュ制御部1dは、記憶部2から読み出されるデータを、キャッシュメモリ部1eに格納するとともに、データ処理部1aに出力する。なお、記憶部2からの読み出し対象のデータが、キャッシュメモリ部1eに既に保持されている場合、キャッシュ制御部1dは、記憶部2にリードアクセス要求を出力することなく、キャッシュメモリ部1eに保持されたデータをデータ処理部1aに出力する。キャッシュ制御部1dは、リードアクセス要求に対応して受けるキャッシュ制御情報CINFが”I”の場合、記憶部2にリードアクセス要求を出力する。そして、キャッシュ制御部1dは、記憶部2から読み出されるデータを、キャッシュメモリ部1eに格納することなく、データ処理部1aに出力する。 When the cache control information CINF received in response to the read access request is "S", the cache control unit 1d outputs the read access request to the storage unit 2. Then, the cache control unit 1d stores the data read from the storage unit 2 in the cache memory unit 1e and outputs the data to the data processing unit 1a. When the data to be read from the storage unit 2 is already held in the cache memory unit 1e, the cache control unit 1d holds the data in the cache memory unit 1e without outputting the read access request to the storage unit 2. The generated data is output to the data processing unit 1a. When the cache control information CINF received in response to the read access request is "I", the cache control unit 1d outputs the read access request to the storage unit 2. Then, the cache control unit 1d outputs the data read from the storage unit 2 to the data processing unit 1a without storing the data in the cache memory unit 1e.

なお、キャッシュ制御部1dは、データ処理部1aが記憶部2にデータを書き込むライトアクセス要求を発行する場合に、キャッシュ制御情報CINFを生成してもよい。例えば、データ処理部1aから出力される書き込みデータをキャッシュメモリ部1eに保持する場合、キャッシュ制御切替部1cは、ライトアクセス要求に基づいて”M”(Modified)を示すキャッシュ制御情報CINFを生成する。データ処理部1aが記憶部2に書き込むデータを、キャッシュメモリ部1eに保持させない場合、キャッシュ制御切替部1cは、ライトアクセス要求に基づいて”I”を示すキャッシュ制御情報CINFを生成する。 The cache control unit 1d may generate the cache control information CINF when the data processing unit 1a issues a write access request for writing data to the storage unit 2. For example, when the write data output from the data processing unit 1a is held in the cache memory unit 1e, the cache control switching unit 1c generates cache control information CINF indicating "M" (Modified) based on the write access request. .. When the cache memory unit 1e does not hold the data to be written by the data processing unit 1a in the storage unit 2, the cache control switching unit 1c generates the cache control information CINF indicating "I" based on the write access request.

キャッシュ制御部1dは、ライトアクセス要求に対応して受けるキャッシュ制御情報CINFが”M”の場合、データ処理部1aから出力されるデータを、キャッシュメモリ部1eに格納し、記憶部2に書き込まない。キャッシュ制御部1dは、ライトアクセス要求に対応して受けるキャッシュ制御情報CINFが”I”の場合、データ処理部1aから出力されるデータを、キャッシュメモリ部1eに格納することなく、記憶部2に書き込む。データ処理部1aが発行するライトアクセス要求に対応して生成される”M”または”I”を示すキャッシュ制御情報CINFは、第1情報の一例である。 When the cache control information CINF received in response to the write access request is "M", the cache control unit 1d stores the data output from the data processing unit 1a in the cache memory unit 1e and does not write it in the storage unit 2. .. When the cache control information CINF received in response to the write access request is "I", the cache control unit 1d stores the data output from the data processing unit 1a in the storage unit 2 without storing it in the cache memory unit 1e. Write. The cache control information CINF indicating "M" or "I" generated in response to the write access request issued by the data processing unit 1a is an example of the first information.

記憶部2は、SDRAM(Synchronous Dynamic Random Access Memory)、SRAM、またはフラッシュメモリ等の半導体メモリを含む。記憶部2は、データ領域2a、プログラム領域2bおよび構成情報領域2cを有する。データ領域2aは、データ処理部1aで処理するデータおよび演算処理装置3で使用するデータ等を保持する。プログラム領域2bは、第1プログラム2d、第2プログラム2eおよび制御プログラム2f等を保持する。第1プログラム2dは、データ処理部1aを使用せずに所定のデータ処理を実行する場合に使用される。例えば、第1プログラム2dは、データ処理部1aに実行させる処理と等価な処理を含むソースプログラムである。 The storage unit 2 includes a semiconductor memory such as an SDRAM (Synchronous Dynamic Random Access Memory), a SRAM, or a flash memory. The storage unit 2 has a data area 2a, a program area 2b, and a configuration information area 2c. The data area 2a holds data to be processed by the data processing unit 1a, data used by the arithmetic processing unit 3, and the like. The program area 2b holds the first program 2d, the second program 2e, the control program 2f, and the like. The first program 2d is used when a predetermined data process is executed without using the data processing unit 1a. For example, the first program 2d is a source program including a process equivalent to a process to be executed by the data processing unit 1a.

第2プログラム2eは、データ処理部1aを使用して所定のデータ処理を実行する場合に使用される。例えば、第2プログラム2eは、第1プログラム2dからデータ処理部1aが実行する処理と等価な処理を削除し、データ処理部1aを呼び出す処理を追加することで生成される。このため、第1プログラム2dが実行するデータ処理と、第2プログラム2eの指示によりデータ処理部1aが実行するデータ処理は、互いに等価である。第1プログラム2dは、処理プログラムの一例である。第1プログラム2dおよび第2プログラム2eによる動作の例は、図3に示される。 The second program 2e is used when a predetermined data process is executed by using the data processing unit 1a. For example, the second program 2e is generated by deleting a process equivalent to the process executed by the data processing unit 1a from the first program 2d and adding a process for calling the data processing unit 1a. Therefore, the data processing executed by the first program 2d and the data processing executed by the data processing unit 1a according to the instruction of the second program 2e are equivalent to each other. The first program 2d is an example of a processing program. An example of the operation by the first program 2d and the second program 2e is shown in FIG.

制御プログラム2fは、演算処理部3aにより実行されることで、分析部3b、決定部3cおよび構成制御部3dの機能を実現する。なお、制御プログラム2fは、CD−ROM(Compact Disc Read Only Memory)、DVD(Digital Versatile Disc)、USB(Universal Serial Bus)メモリ等のコンピュータにより読み取り可能な記録媒体4に格納されてもよい。この場合、記録媒体4に格納された制御プログラム2fは、情報処理装置100に設けられる図示しない入出力インタフェースを介して記録媒体4からプログラム領域2bに転送される。なお、制御プログラムは、記録媒体4から図示しないHDDに転送された後、HDDからプログラム領域2bに転送されてもよい。 The control program 2f is executed by the arithmetic processing unit 3a to realize the functions of the analysis unit 3b, the determination unit 3c, and the configuration control unit 3d. The control program 2f may be stored in a computer-readable recording medium 4 such as a CD-ROM (Compact Disc Read Only Memory), a DVD (Digital Versatile Disc), or a USB (Universal Serial Bus) memory. In this case, the control program 2f stored in the recording medium 4 is transferred from the recording medium 4 to the program area 2b via an input / output interface (not shown) provided in the information processing apparatus 100. The control program may be transferred from the recording medium 4 to an HDD (not shown) and then transferred from the HDD to the program area 2b.

構成情報領域2cは、プログラマブル部1にプログラムされる様々な回路の構成情報を保持する。構成情報は、予め生成されてもよく、情報処理装置100に要求される処理性能に合わせて、演算処理装置3により生成されてもよい。なお、構成情報は、情報処理装置100の記憶部2以外の記憶領域に記憶されてもよく、情報処理装置100の外部の記憶領域に記憶されてもよい。 The configuration information area 2c holds configuration information of various circuits programmed in the programmable unit 1. The configuration information may be generated in advance, or may be generated by the arithmetic processing unit 3 according to the processing performance required for the information processing device 100. The configuration information may be stored in a storage area other than the storage unit 2 of the information processing device 100, or may be stored in a storage area outside the information processing device 100.

演算処理装置3は、CPUコア等の演算処理部3aと、制御プログラム2fの実行により実現される分析部3b、決定部3cおよび構成制御部3dとを有する。なお、分析部3b、決定部3cおよび構成制御部3dの少なくともいずれかは、ハードウェア(回路)として、情報処理装置100に搭載されてもよい。この場合、分析部3b、決定部3cおよび構成制御部3dの少なくともいずれかは、プログラマブル部1を使用して実現されてもよい。 The arithmetic processing device 3 includes an arithmetic processing unit 3a such as a CPU core, an analysis unit 3b, a determination unit 3c, and a configuration control unit 3d realized by executing the control program 2f. At least one of the analysis unit 3b, the determination unit 3c, and the configuration control unit 3d may be mounted on the information processing device 100 as hardware (circuit). In this case, at least one of the analysis unit 3b, the determination unit 3c, and the configuration control unit 3d may be realized by using the programmable unit 1.

演算処理部3aは、第1プログラム2d、第2プログラム2eおよび制御プログラム2f等のプログラムを実行することで、演算処理を実行し、情報処理装置100の機能を実現する。 The arithmetic processing unit 3a executes arithmetic processing by executing programs such as the first program 2d, the second program 2e, and the control program 2f, and realizes the function of the information processing apparatus 100.

分析部3bは、演算処理部3aによる第1プログラム2dの実行に基づいて、データ処理部1aを動作させることなく、データ処理部1aが発行するメモリアクセス要求を間接的に検出し、メモリアクセス要求に含まれるアクセスアドレスのパターンを分析する。 The analysis unit 3b indirectly detects the memory access request issued by the data processing unit 1a without operating the data processing unit 1a based on the execution of the first program 2d by the arithmetic processing unit 3a, and the memory access request. Analyze the pattern of access addresses contained in.

決定部3cは、分析部3bが分析したアクセスアドレスのパターンに基づいて、データ処理部1aによるメモリアクセスに最適なキャッシュ制御切替部1cの構成情報を生成することで、プログラマブル部1にプログラムするキャッシュ制御切替部1cを決定する。決定部3cにより生成されるキャッシュ制御切替部1cの構成情報は、構成情報領域2cに格納される。なお、決定部3cは、構成情報領域2cに既に格納済みの複数のキャッシュ制御切替部1cの構成情報の中から、プログラマブル部1にプログラムする構成情報を選択することで、プログラマブル部1にプログラムするキャッシュ制御切替部1cを決定してもよい。 The determination unit 3c generates the configuration information of the cache control switching unit 1c that is optimal for the memory access by the data processing unit 1a based on the access address pattern analyzed by the analysis unit 3b, and thereby the cache programmed in the programmable unit 1. The control switching unit 1c is determined. The configuration information of the cache control switching unit 1c generated by the determination unit 3c is stored in the configuration information area 2c. The determination unit 3c programs the programmable unit 1 by selecting the configuration information to be programmed in the programmable unit 1 from the configuration information of the plurality of cache control switching units 1c already stored in the configuration information area 2c. The cache control switching unit 1c may be determined.

構成制御部3dは、決定部3cが生成したキャッシュ制御切替部1cの構成情報を、構成情報領域2cから読み出してプログラマブル部1にプログラムする制御を実行する。 The configuration control unit 3d executes a control of reading the configuration information of the cache control switching unit 1c generated by the determination unit 3c from the configuration information area 2c and programming it in the programmable unit 1.

図2は、図1に示す情報処理装置100の動作フローの一例を示す。図2に示すフローは、演算処理部3aで実行するデータ処理の一部をデータ処理部1aに実行させる指示を、情報処理装置100を管理する管理者または情報処理装置100を使用するユーザから受信したことに基づいて開始される。 FIG. 2 shows an example of the operation flow of the information processing apparatus 100 shown in FIG. In the flow shown in FIG. 2, an instruction to cause the data processing unit 1a to execute a part of the data processing executed by the arithmetic processing unit 3a is received from the administrator who manages the information processing device 100 or the user who uses the information processing device 100. It starts based on what you have done.

まず、ステップS1において、情報処理装置100は、データ処理部1aを使用せずに所定のデータ処理を実行する第1プログラム2dの実行を開始する。次に、ステップS2において、情報処理装置100の分析部3bは、第1プログラム2dの実行に基づいて、データ処理部1aが発行するメモリアクセス要求を間接的に検出し、メモリアクセス要求に含まれるアクセスアドレスのパターンを分析する。第1プログラムを使用することで、データ処理部1aおよびキャッシュ回路1bをプログラマブル部1にプログラムする前に、アクセスアドレスのパターンを分析することができる。 First, in step S1, the information processing apparatus 100 starts execution of the first program 2d that executes predetermined data processing without using the data processing unit 1a. Next, in step S2, the analysis unit 3b of the information processing apparatus 100 indirectly detects the memory access request issued by the data processing unit 1a based on the execution of the first program 2d, and is included in the memory access request. Analyze access address patterns. By using the first program, the access address pattern can be analyzed before the data processing unit 1a and the cache circuit 1b are programmed into the programmable unit 1.

次に、ステップS3において、情報処理装置100は、分析部3bによるアクセスアドレスのパターンの分析が完了した場合、処理をステップS4に移行し、アクセスアドレスのパターンの分析が完了していない場合、処理をステップS2に移行する。例えば、分析部3bは、データ処理部1aが発行するメモリアクセス要求に含まれるアクセスアドレスのパターンの特徴が判明した場合、アクセスアドレスのパターンの分析を完了する。 Next, in step S3, the information processing apparatus 100 shifts the process to step S4 when the analysis of the access address pattern by the analysis unit 3b is completed, and processes when the analysis of the access address pattern is not completed. To step S2. For example, the analysis unit 3b completes the analysis of the access address pattern when the characteristics of the access address pattern included in the memory access request issued by the data processing unit 1a are found.

ステップS4において、情報処理装置100の決定部3cは、分析部3bが分析したアクセスアドレスのパターンに基づいてキャッシュ制御切替部1cの構成情報を生成することで、プログラマブル部1にプログラムするキャッシュ制御切替部1cを決定する。 In step S4, the determination unit 3c of the information processing apparatus 100 generates the configuration information of the cache control switching unit 1c based on the pattern of the access address analyzed by the analysis unit 3b, thereby programming the cache control switching in the programmable unit 1. Part 1c is determined.

次に、ステップS5において、情報処理装置100の構成制御部3dは、決定部3cが決定したキャッシュ制御切替部1cを、データ処理部1a、キャッシュ制御部1dおよびキャッシュメモリ部1eとともにプログラマブル部1にプログラムする。ステップS2からステップS5までの処理は、情報処理装置100の制御方法の一例および情報処理装置100の制御プログラムの一例を示す。 Next, in step S5, the configuration control unit 3d of the information processing apparatus 100 transfers the cache control switching unit 1c determined by the determination unit 3c to the programmable unit 1 together with the data processing unit 1a, the cache control unit 1d, and the cache memory unit 1e. Program. The processes from step S2 to step S5 show an example of a control method of the information processing device 100 and an example of a control program of the information processing device 100.

次に、ステップS6において、情報処理装置100は、第1プログラム2dの実行を停止し、実行を停止した個所に対応する個所から第2プログラム2eの実行を開始する。これにより、データ処理を重複または欠落させることなく、第1プログラム2dから第2プログラム2eに切り替えることができる。 Next, in step S6, the information processing apparatus 100 stops the execution of the first program 2d, and starts the execution of the second program 2e from the place corresponding to the place where the execution is stopped. This makes it possible to switch from the first program 2d to the second program 2e without duplicating or missing data processing.

図3は、図1に示す情報処理装置100の動作の一例を示す。すなわち、図2は、情報処理装置100の制御方法の一例を示す。図3において、白抜きの矩形は、演算処理部3aで実行される処理を示す。斜線の矩形は、データ処理部1aで実行されるデータ処理と等価なデータ処理、またはデータ処理部1aで実行されるデータ処理を示す。網掛けの矩形は、キャッシュ制御切替部1cで実行される処理を示す。 FIG. 3 shows an example of the operation of the information processing apparatus 100 shown in FIG. That is, FIG. 2 shows an example of a control method of the information processing apparatus 100. In FIG. 3, the white square wave indicates the processing executed by the arithmetic processing unit 3a. The shaded rectangles indicate data processing equivalent to the data processing executed by the data processing unit 1a, or data processing executed by the data processing unit 1a. The shaded rectangles indicate the processes executed by the cache control switching unit 1c.

まず、情報処理装置100は、データ処理部1aを使用せずに所定のデータ処理を実行する第1プログラム2dの実行を開始する(図3(a))。第1プログラム2dは、データ処理部1aが実行するデータ処理と等価なデータ処理を実行する(図3(b))。換言すれば、第1プログラム2dは、データ処理部1aがデータ処理で使用するデータと同じデータを用いてデータ処理を実行する。データ処理部1aが実行するデータ処理は、第1データ処理の一例である。第1プログラム2dが実行するデータ処理は、第2データ処理の一例である。なお、図3の左端の括弧内は、第1プログラム2dによりデータ処理を継続した場合の動作の例を示す。 First, the information processing device 100 starts execution of the first program 2d that executes a predetermined data process without using the data processing unit 1a (FIG. 3A). The first program 2d executes data processing equivalent to the data processing executed by the data processing unit 1a (FIG. 3B). In other words, the first program 2d executes data processing using the same data as the data used by the data processing unit 1a in the data processing. The data processing executed by the data processing unit 1a is an example of the first data processing. The data processing executed by the first program 2d is an example of the second data processing. The numbers in parentheses at the left end of FIG. 3 show an example of the operation when the data processing is continued by the first program 2d.

分析部3bは、等価なデータ処理によるデータ領域2aのアクセス(すなわち、メモリアクセス要求)をモニタし、アクセスアドレスのパターンを分析する(図3(c))。すなわち、分析部3bは、第1プログラム2dによりデータ処理の一部を実行させた場合の記憶部2へのアクセスに基づいてアクセスアドレスのパターンを分析する。ここで、データ処理部1aがデータ処理で使用するデータと同じデータを用いて、第1プログラム2dがデータ処理を実行するため、分析部3bは、データ処理部1aによるメモリアクセスの特徴を分析することができる。 The analysis unit 3b monitors the access (that is, the memory access request) of the data area 2a by the equivalent data processing, and analyzes the pattern of the access address (FIG. 3C). That is, the analysis unit 3b analyzes the access address pattern based on the access to the storage unit 2 when a part of the data processing is executed by the first program 2d. Here, since the first program 2d executes data processing using the same data as the data used by the data processing unit 1a in the data processing, the analysis unit 3b analyzes the characteristics of the memory access by the data processing unit 1a. be able to.

決定部3cは、分析部3bが分析したアクセスアドレスのパターンの特徴に基づいて、キャッシュ制御切替部1cの構成情報を生成することを決定し、生成したキャッシュ制御切替部1cをプログラマブル部1にプログラムすることを決定する(図3(d))。構成制御部3dは、決定部3cが生成したキャッシュ制御切替部1cを、データ処理部1a、キャッシュ制御部1dおよびキャッシュメモリ部1eとともにプログラマブル部1にプログラムする(図3(e))。なお、データ処理部1a、キャッシュ制御部1dおよびキャッシュメモリ部1eは、キャッシュ制御切替部1cが生成される前(すなわち、図3の動作の開始前)にプログラマブル部1にプログラムされてもよい。 The determination unit 3c determines to generate the configuration information of the cache control switching unit 1c based on the characteristics of the access address pattern analyzed by the analysis unit 3b, and programs the generated cache control switching unit 1c into the programmable unit 1. Decide to do (Fig. 3 (d)). The configuration control unit 3d programs the cache control switching unit 1c generated by the determination unit 3c into the programmable unit 1 together with the data processing unit 1a, the cache control unit 1d, and the cache memory unit 1e (FIG. 3E). The data processing unit 1a, the cache control unit 1d, and the cache memory unit 1e may be programmed in the programmable unit 1 before the cache control switching unit 1c is generated (that is, before the start of the operation of FIG. 3).

キャッシュ制御切替部1cがプログラマブル部1にプログラムされた後、情報処理装置100は、第1プログラム2dの実行を停止し、実行を停止した個所に対応する個所から第2プログラム2eの実行を開始する(図3(f))。そして、第2プログラム2eは、データ処理部1aを呼び出し、第1プログラム2dが実行していたデータ処理のうち、未実行の処理を、データ処理部1aに実行させる(図3(g))。 After the cache control switching unit 1c is programmed in the programmable unit 1, the information processing apparatus 100 stops the execution of the first program 2d, and starts the execution of the second program 2e from the location corresponding to the location where the execution is stopped. (Fig. 3 (f)). Then, the second program 2e calls the data processing unit 1a, and causes the data processing unit 1a to execute the unexecuted processing among the data processing executed by the first program 2d (FIG. 3 (g)).

データ処理部1aが動作中、データ処理部1aが発行するメモリアクセス要求に基づいて、キャッシュ制御切替部1c、キャッシュ制御部1dおよびキャッシュメモリ部1eが動作する(図3(h))。キャッシュ制御切替部1cは、メモリアクセス要求に基づいて、キャッシュ制御情報CINFを生成し、キャッシュ制御部1dは、キャッシュ制御情報CINFに基づいて動作する。ここで、キャッシュ制御情報CINFは、データ処理部1aのメモリアクセス特性に合わせて生成されるため、他のキャッシュ制御切替部を使用する場合に比べて、キャッシュ回路1bのキャッシュヒット率を向上することができる。また、キャッシュヒット率の向上により、新たなデータを格納する記憶領域を確保するためにキャッシュメモリ部1eからデータをデータ領域2aに書き戻す追い出し処理の頻度は低下する。この結果、データ領域2aへの無駄なメモリアクセスを低減することでキャッシュ効率を向上することができ、情報処理装置100の処理性能を向上することができる。 While the data processing unit 1a is operating, the cache control switching unit 1c, the cache control unit 1d, and the cache memory unit 1e operate based on the memory access request issued by the data processing unit 1a (FIG. 3 (h)). The cache control switching unit 1c generates the cache control information CINF based on the memory access request, and the cache control unit 1d operates based on the cache control information CINF. Here, since the cache control information CINF is generated according to the memory access characteristics of the data processing unit 1a, the cache hit rate of the cache circuit 1b should be improved as compared with the case where another cache control switching unit is used. Can be done. Further, due to the improvement of the cache hit rate, the frequency of the evacuation process of writing back data from the cache memory unit 1e to the data area 2a in order to secure a storage area for storing new data is reduced. As a result, the cache efficiency can be improved by reducing unnecessary memory access to the data area 2a, and the processing performance of the information processing apparatus 100 can be improved.

なお、データ処理部1aによるデータ処理は、プログラマブル部1にプログラムされたハードウェアにより実行される。このため、データ処理部1aによるデータ処理の効率は、第1プログラム2d(ソフトウェア)によるデータ処理の効率に比べて高い。したがって、データ処理部1aによるデータ処理は、データ処理部1aで実行されるデータ処理と等価なデータ処理を第1プログラム2dにより実行する場合に比べて、早く完了する(図3(i))。 The data processing by the data processing unit 1a is executed by the hardware programmed in the programmable unit 1. Therefore, the efficiency of data processing by the data processing unit 1a is higher than the efficiency of data processing by the first program 2d (software). Therefore, the data processing by the data processing unit 1a is completed earlier than the case where the data processing equivalent to the data processing executed by the data processing unit 1a is executed by the first program 2d (FIG. 3 (i)).

データ処理部1aによるデータ処理が完了した後、第2プログラム2eは、ソフトウェアによる処理を実行する(図3(j))。この後、第2プログラム2eは、データ処理部1aにデータ処理を実行させるため、データ処理部1aを呼び出し、データ処理部1aは、データ処理を実行する(図3(k))。上述と同様に、データ処理部1aによるデータ処理は、第1プログラム2dによりデータ処理に比べて、早く完了する(図3(l))。そして、データ処理部1aによるデータ処理が完了した後、第2プログラム2eは、ソフトウェアによる処理を実行し、全体の処理が完了する(図3(m))。図3に示すように、データ処理部1aによるデータ処理を含む第2プログラム2eにより実行される全体の処理は、第1プログラム2dにより実行される全体の処理に比べて早く完了する。 After the data processing by the data processing unit 1a is completed, the second program 2e executes the processing by the software (FIG. 3 (j)). After that, the second program 2e calls the data processing unit 1a in order to cause the data processing unit 1a to execute the data processing, and the data processing unit 1a executes the data processing (FIG. 3 (k)). Similar to the above, the data processing by the data processing unit 1a is completed earlier by the first program 2d than the data processing (FIG. 3 (l)). Then, after the data processing by the data processing unit 1a is completed, the second program 2e executes the processing by the software, and the entire processing is completed (FIG. 3 (m)). As shown in FIG. 3, the entire processing executed by the second program 2e including the data processing by the data processing unit 1a is completed earlier than the entire processing executed by the first program 2d.

以上、図1から図3に示す実施形態では、情報処理装置100は、データ処理部1aが出力するメモリアクセス要求に含まれるアクセスアドレスのパターンを分析し、分析結果に基づいたキャッシュ制御情報CINFを出力するキャッシュ制御切替部1cを生成する。例えば、情報処理装置100が実行する第1プログラム2dは、データ処理部1aがデータ処理で使用するデータと同じデータを用いてデータ処理を実行する。このため、分析部3bは、データ処理部1aを動作させることなく、データ処理部1aによるメモリアクセスの特徴を分析することができる。これにより、プログラマブル部1に搭載される前のデータ処理部1aのメモリアクセスの特徴に合わせて、キャッシュ回路1bのキャッシュヒット率等のキャッシュ効率を最適化することができる。この結果、データ領域2aへの無駄なメモリアクセスを低減してキャッシュ効率を向上することができ、情報処理装置100の処理性能を向上することができる。 As described above, in the embodiment shown in FIGS. 1 to 3, the information processing apparatus 100 analyzes the pattern of the access address included in the memory access request output by the data processing unit 1a, and obtains the cache control information CINF based on the analysis result. Generate the cache control switching unit 1c to be output. For example, the first program 2d executed by the information processing apparatus 100 executes data processing using the same data as the data used by the data processing unit 1a in the data processing. Therefore, the analysis unit 3b can analyze the characteristics of the memory access by the data processing unit 1a without operating the data processing unit 1a. Thereby, the cache efficiency such as the cache hit rate of the cache circuit 1b can be optimized according to the characteristics of the memory access of the data processing unit 1a before being mounted on the programmable unit 1. As a result, useless memory access to the data area 2a can be reduced, cache efficiency can be improved, and the processing performance of the information processing apparatus 100 can be improved.

情報処理装置100は、データ処理部1aに実行させる処理を含むソースプログラムである第1プログラムを使用することで、データ処理部1aおよびキャッシュ回路1bをプログラマブル部1に搭載する前に、アクセスアドレスのパターンを分析することができる。アクセスアドレスのパターンの分析が完了した場合に、第1プログラムによる処理の続きを第2プログラムに実行させることで、同じ処理を第1プログラムと第2プログラムとで重複して実行する無駄を省くことができる。アクセスアドレスのパターンの分析結果に基づいてキャッシュ制御切替部1cの論理を生成することで、複数種のキャッシュ制御切替部1cの論理を予め準備することなく、プログラマブル部1にキャッシュ制御切替部1cをプログラムすることができる。 The information processing device 100 uses a first program, which is a source program including a process to be executed by the data processing unit 1a, so that the data processing unit 1a and the cache circuit 1b can be accessed before being mounted on the programmable unit 1. The pattern can be analyzed. When the analysis of the access address pattern is completed, the second program is made to execute the continuation of the processing by the first program, thereby eliminating the waste of executing the same processing in the first program and the second program in duplicate. Can be done. By generating the logic of the cache control switching unit 1c based on the analysis result of the access address pattern, the cache control switching unit 1c can be installed in the programmable unit 1 without preparing the logic of a plurality of types of cache control switching units 1c in advance. Can be programmed.

図4は、情報処理装置、情報処理装置の制御方法および情報処理装置の制御プログラムの別の実施形態を示す。図1から図3に示す実施形態で説明した要素と同一または同様の要素については、同一の符号を付し、これ等については、詳細な説明は省略する。図4に示す情報処理装置100Aは、例えば、ドメイン指向サーバである。情報処理装置100Aは、FPGA等のプログラマブル部10、メインメモリ20、CPU等の演算処理装置30、入出力インタフェース40、HDD50および通信インタフェース60を有する。 FIG. 4 shows another embodiment of the information processing device, the control method of the information processing device, and the control program of the information processing device. Elements that are the same as or similar to the elements described in the embodiments shown in FIGS. 1 to 3 are designated by the same reference numerals, and detailed description thereof will be omitted. The information processing device 100A shown in FIG. 4 is, for example, a domain-oriented server. The information processing device 100A includes a programmable unit 10 such as an FPGA, a main memory 20, an arithmetic processing device 30 such as a CPU, an input / output interface 40, an HDD 50, and a communication interface 60.

プログラマブル部10には、特定のアプリケーションで使用するデータを処理するデータ処理部10aおよびキャッシュ回路10b等の回路がプログラムされる。データ処理部10aは、CPUコア30aが実行するアプリケーションプログラム(第2プログラム)の制御に基づいて動作し、CPUコア30aの代わりにデータ処理を実行する。データ処理部10aは、データを処理するデータ処理部の一例である。データ処理部10aが実行するデータ処理は、第1データ処理の一例である。データ処理部10aによるメインメモリ20へのアクセス(データのリードまたはデータのライト)は、キャッシュ回路10bおよびLLC(Last Level Cache)30bを介して実行される。 The programmable unit 10 is programmed with circuits such as a data processing unit 10a and a cache circuit 10b that process data used in a specific application. The data processing unit 10a operates based on the control of the application program (second program) executed by the CPU core 30a, and executes data processing in place of the CPU core 30a. The data processing unit 10a is an example of a data processing unit that processes data. The data processing executed by the data processing unit 10a is an example of the first data processing. Access to the main memory 20 (data read or data write) by the data processing unit 10a is executed via the cache circuit 10b and the LLC (Last Level Cache) 30b.

キャッシュ回路10bは、図1に示すキャッシュ回路1bと同様に、キャッシュ制御切替部10c、キャッシュ制御部10dおよびキャッシュメモリ部10eを有する。キャッシュ制御切替部10cは、データ処理部10aが発行するメモリアクセス要求(リードアクセス要求またはライトアクセス要求)に基づいて、キャッシュ制御部10dに出力するキャッシュヒントおよびバースト長を決定する。キャッシュヒントは、データ処理部10aがリードアクセス要求を発行した場合、リードアクセス要求に基づいて、LLC30bから受信したデータをキャッシュメモリ部10eに保持するか否かの情報を含む。また、キャッシュヒントは、データ処理部10aがライトデータとともにライトアクセス要求を発行した場合、ライトデータをキャッシュメモリ部10eに書き込むか、LLC30bに出力するかを示す情報を含む。 Similar to the cache circuit 1b shown in FIG. 1, the cache circuit 10b includes a cache control switching unit 10c, a cache control unit 10d, and a cache memory unit 10e. The cache control switching unit 10c determines the cache hint and burst length to be output to the cache control unit 10d based on the memory access request (read access request or write access request) issued by the data processing unit 10a. The cache hint includes information on whether or not to hold the data received from the LLC 30b in the cache memory unit 10e based on the read access request when the data processing unit 10a issues a read access request. Further, the cache hint includes information indicating whether the write data is written to the cache memory unit 10e or output to the LLC 30b when the data processing unit 10a issues a write access request together with the write data.

バースト長は、データ処理部10aがリードアクセス要求を発行した場合、LLC30bから受信するデータの長さを示す情報を含む。キャッシュヒントおよびバースト長は、キャッシュ制御切替部10cが出力するキャッシュ制御情報の一例である。バースト長は、キャッシュ制御情報のうちの第2情報の一例である。 The burst length includes information indicating the length of data received from the LLC 30b when the data processing unit 10a issues a read access request. The cache hint and burst length are examples of cache control information output by the cache control switching unit 10c. The burst length is an example of the second information in the cache control information.

例えば、キャッシュ回路10bは、MESI(Modified, Exclusive, Shared, Invalid)プロトコルを用いて、データの一貫性を維持する制御を実行する。MESIプロトコルにおいて、”Modified”は、キャッシュメモリ部10eに保持されたデータが更新され(書き替えられ)、LLC30bまたはメインメモリ20が保持するデータと異なる状態を示す。”Exclusive”は、アクセス対象のデータが、キャッシュメモリ部10eのみに保持され、データが更新されていない状態を示す。”Shared”は、アクセス対象のデータが例えばLLC30bとキャッシュメモリ部10eとに保持され、データが更新されていない状態を示す。”Invalid”は、キャッシュメモリ部10eに保持されたデータが無効であることを示す。 For example, the cache circuit 10b uses a MESI (Modified, Exclusive, Shared, Invalid) protocol to perform control to maintain data consistency. In the MESI protocol, "Modified" indicates that the data held in the cache memory unit 10e is updated (rewritten) and is different from the data held by the LLC 30b or the main memory 20. “Exclusive” indicates a state in which the data to be accessed is held only in the cache memory unit 10e and the data is not updated. “Shared” indicates a state in which the data to be accessed is held in, for example, the LLC 30b and the cache memory unit 10e, and the data is not updated. "Invalid" indicates that the data held in the cache memory unit 10e is invalid.

キャッシュ制御部10dは、データ処理部10aからリードアクセス要求を受信した場合、アクセスの対象データがキャッシュメモリ部10eに保持されているか否かを判定する。キャッシュ制御部10dは、対象データがキャッシュメモリ部10eに保持されている場合(キャッシュヒット)、キャッシュメモリ部10eからデータを読み出し、読み出したデータをデータ処理部10aに出力する。 When the cache control unit 10d receives the read access request from the data processing unit 10a, the cache control unit 10d determines whether or not the access target data is held in the cache memory unit 10e. When the target data is held in the cache memory unit 10e (cache hit), the cache control unit 10d reads the data from the cache memory unit 10e and outputs the read data to the data processing unit 10a.

キャッシュ制御部10dは、対象データがキャッシュメモリ部10eに保持されていない場合(キャッシュミス)、LLC30bにリードアクセス要求を発行し、LLC30bから出力されるデータを受信する。この後、キャッシュ制御部10dは、リードアクセス要求に対応してキャッシュ制御切替部10cから受信するキャッシュヒントに応じて、以下のように動作する。 When the target data is not held in the cache memory unit 10e (cache miss), the cache control unit 10d issues a read access request to the LLC 30b and receives the data output from the LLC 30b. After that, the cache control unit 10d operates as follows according to the cache hint received from the cache control switching unit 10c in response to the read access request.

キャッシュヒントが”S”の場合、キャッシュ制御部10dは、LLC30bから受信したデータをデータ処理部10aに出力するとともにキャッシュメモリ部10eに格納する。キャッシュメモリ部10eにデータを格納する空き領域がない場合、キャッシュ制御部10dは、キャッシュメモリ部10eが保持するデータのいずれかをLLC30bに書き戻す追い出し処理を実行する。追い出し処理は、データをLLC30bに書き戻すためのライトアクセス要求を含む。 When the cache hint is "S", the cache control unit 10d outputs the data received from the LLC 30b to the data processing unit 10a and stores it in the cache memory unit 10e. When there is no free area for storing data in the cache memory unit 10e, the cache control unit 10d executes an evacuation process for writing back any of the data held by the cache memory unit 10e to the LLC 30b. The eviction process includes a write access request to write the data back to the LLC 30b.

キャッシュヒントが”I”の場合、キャッシュ制御部10dは、LLC30bから受信したデータをキャッシュメモリ部10eに格納せずにデータ処理部10aに出力する。なお、キャッシュミスの発生時、キャッシュ制御部10dは、リードアクセス要求に対応してキャッシュ制御切替部10cから出力されるバースト長に対応する長さのデータをLLC30bから読み出すリードアクセス要求をLLC30bに発行する。 When the cache hint is "I", the cache control unit 10d outputs the data received from the LLC 30b to the data processing unit 10a without storing it in the cache memory unit 10e. When a cache miss occurs, the cache control unit 10d issues a read access request to the LLC 30b to read data of a length corresponding to the burst length output from the cache control switching unit 10c in response to the read access request from the LLC 30b. To do.

一方、キャッシュ制御部10dは、データ処理部10aからライトデータとともにライトアクセス要求を受信した場合、アクセスの対象データがキャッシュメモリ部10eに保持されているか否かを判定する。キャッシュ制御部10dは、対象データがキャッシュメモリ部10eに保持されている場合(キャッシュヒット)、ライトアクセス要求に対応してキャッシュ制御切替部10cから受信するキャッシュヒントに応じて、以下のように動作する。 On the other hand, when the cache control unit 10d receives the write access request together with the write data from the data processing unit 10a, the cache control unit 10d determines whether or not the access target data is held in the cache memory unit 10e. When the target data is held in the cache memory unit 10e (cache hit), the cache control unit 10d operates as follows according to the cache hint received from the cache control switching unit 10c in response to the write access request. To do.

キャッシュヒントが”M”の場合、キャッシュ制御部10dは、キャッシュメモリ部10eが保持するキャッシュヒットの対象データをライトデータで上書きし、LLC30bにライトアクセス要求を発行しない。キャッシュヒントが”I”の場合、キャッシュ制御部10dは、キャッシュメモリ部10eが保持するキャッシュヒットの対象データを削除し、ライトデータをLLC30bに書き込むライトアクセス要求をLLC30bに発行する。キャッシュ制御部10dがライトアクセス要求に基づいて出力する”M”または”I”のキャッシュヒントは、第1情報の一例である。 When the cache hint is "M", the cache control unit 10d overwrites the target data of the cache hit held by the cache memory unit 10e with the write data, and does not issue a write access request to the LLC 30b. When the cache hint is "I", the cache control unit 10d deletes the target data of the cache hit held by the cache memory unit 10e, and issues a write access request to the LLC30b to write the write data to the LLC30b. The "M" or "I" cache hint output by the cache control unit 10d based on the write access request is an example of the first information.

キャッシュ制御部10dは、対象データがキャッシュメモリ部10eに保持されていない場合(キャッシュミス)、ライトアクセス要求に対応してキャッシュ制御切替部10cから受信するキャッシュヒントに応じて、以下のように動作する。 When the target data is not held in the cache memory unit 10e (cache miss), the cache control unit 10d operates as follows according to the cache hint received from the cache control switching unit 10c in response to the write access request. To do.

キャッシュヒントが”M”の場合、キャッシュ制御部10dは、ライトデータに対応するデータの読み出し要求をLLC30bに発行し、LLC30bから受信するデータをライトデータに置き換え、キャッシュメモリ部10eに格納する。ここで、ライトデータのビット幅がLLC30bから受信するデータのビット幅より小さい場合、LLC30bから受信するデータの一部がライトデータで置き換えられる。キャッシュヒントが”I”の場合、キャッシュ制御部10dは、ライトデータをLLC30bに書き込むライトアクセス要求をLLC30bに発行する。 When the cache hint is "M", the cache control unit 10d issues a data read request corresponding to the write data to the LLC30b, replaces the data received from the LLC30b with the write data, and stores the data in the cache memory unit 10e. Here, when the bit width of the write data is smaller than the bit width of the data received from the LLC 30b, a part of the data received from the LLC 30b is replaced with the write data. When the cache hint is "I", the cache control unit 10d issues a write access request to the LLC30b to write the write data to the LLC30b.

キャッシュメモリ部10eは、データの入出力の単位である複数のエントリ(キャッシュライン)を有し、LLC30bに対するデータの入出力は、キャッシュライン単位で実行される。また、バースト長が”1”の場合、1つのキャッシュラインに対応するデータがアクセスされる。バースト長が”2”の場合、2つのキャッシュラインに対応するデータがアクセスされる。バースト長が”4”の場合、4つのキャッシュラインに対応するデータがアクセスされる。 The cache memory unit 10e has a plurality of entries (cache lines) that are units of data input / output, and data input / output to the LLC 30b is executed in units of cache lines. When the burst length is "1", the data corresponding to one cache line is accessed. When the burst length is "2", the data corresponding to the two cache lines is accessed. When the burst length is "4", the data corresponding to the four cache lines is accessed.

メインメモリ20は、例えば、複数のSDRAMが搭載されたメモリモジュールであり、データ領域20a、プログラム領域20bおよび構成情報領域20cを有する。メインメモリ20は、記憶部の一例である。データ領域20aは、データ処理部10aで処理するデータおよび演算処理装置30で使用するデータ等を保持する。 The main memory 20 is, for example, a memory module in which a plurality of SDRAMs are mounted, and has a data area 20a, a program area 20b, and a configuration information area 20c. The main memory 20 is an example of a storage unit. The data area 20a holds data to be processed by the data processing unit 10a, data used by the arithmetic processing unit 30, and the like.

プログラム領域20bは、OS、管理プログラムおよびアプリケーションプログラム等の各種プログラム20dと、制御プログラム20e等を保持する。例えば、アプリケーションプログラムのいずれかは、データ処理部10aを使用せずに所定のデータ処理を実行する第1プログラムである。第1プログラムは、データ処理部10aが実行するデータ処理と等価なデータ処理を実行する機能を含む処理プログラムの一例である。第1プログラムが実行するデータ処理は、第2データ処理の一例である。 The program area 20b holds various programs 20d such as an OS, a management program, and an application program, and a control program 20e and the like. For example, any of the application programs is a first program that executes predetermined data processing without using the data processing unit 10a. The first program is an example of a processing program including a function of executing data processing equivalent to the data processing executed by the data processing unit 10a. The data processing executed by the first program is an example of the second data processing.

アプリケーションプログラムの他のいずれかは、データ処理部10aを使用して所定のデータ処理を実行する第2プログラムである。例えば、プログラム領域20bに格納される各種プログラム20dと制御プログラム20eとは、CD−ROM、DVD、USBメモリ等のコンピュータにより読み取り可能な記録媒体70またはネットワークNWを介してHDD50に格納される。この後、各種プログラム20dと制御プログラム20eとは、HDD50からメインメモリ20に転送される。 Any other of the application programs is a second program that executes predetermined data processing using the data processing unit 10a. For example, the various programs 20d and the control program 20e stored in the program area 20b are stored in the HDD 50 via a computer-readable recording medium 70 such as a CD-ROM, a DVD, or a USB memory or a network NW. After that, the various programs 20d and the control program 20e are transferred from the HDD 50 to the main memory 20.

構成情報領域20cは、プログラマブル部10にプログラムされる様々な回路の構成情報を保持する。構成情報がプログラマブル部10に書き込まれることで、プログラマブル部10は、データ処理部10aおよびキャッシュ回路10b等の機能を実現する。構成情報は、予め生成されてもよく、情報処理装置100Aに要求される処理性能に合わせて、演算処理装置30が実行する論理合成用のプログラム等により生成されてもよい。なお、構成情報は、メインメモリ20以外の記憶領域に記憶されてもよく、情報処理装置100Aの外部の記憶領域に記憶されてもよい。 The configuration information area 20c holds configuration information of various circuits programmed in the programmable unit 10. By writing the configuration information to the programmable unit 10, the programmable unit 10 realizes the functions of the data processing unit 10a, the cache circuit 10b, and the like. The configuration information may be generated in advance, or may be generated by a logic synthesis program or the like executed by the arithmetic processing unit 30 according to the processing performance required for the information processing device 100A. The configuration information may be stored in a storage area other than the main memory 20, or may be stored in a storage area outside the information processing apparatus 100A.

演算処理装置30は、各種プログラムを並列に実行可能な複数のCPUコア30a、LLC30bおよびMMU(Memory Management Unit)30cを有する。プログラマブル部10は、バスBUS1を介して演算処理装置30のLLC30bに接続され、メインメモリ20は、バスBUS2を介して演算処理装置30のMMU30cに接続される。 The arithmetic processing device 30 has a plurality of CPU cores 30a, LLC30b, and MMU (Memory Management Unit) 30c capable of executing various programs in parallel. The programmable unit 10 is connected to the LLC 30b of the arithmetic processing unit 30 via the bus BUS 1, and the main memory 20 is connected to the MMU 30c of the arithmetic processing unit 30 via the bus BUS 2.

演算処理装置30は、CPUコア30aによりOS(Operating System)および管理プログラムを実行することで情報処理装置100Aの全体の動作を制御する。また、演算処理装置30は、CPUコア30aによりアプリケーションプログラムを実行することで、ドメイン指向サーバとして機能する。 The arithmetic processing device 30 controls the overall operation of the information processing device 100A by executing an OS (Operating System) and a management program by the CPU core 30a. Further, the arithmetic processing device 30 functions as a domain-oriented server by executing an application program by the CPU core 30a.

さらに、演算処理装置30は、CPUコア30aが制御プログラム20eを実行することで、分析部30d、決定部30eおよび構成制御部30fとして機能する。なお、分析部30d、決定部30eおよび構成制御部30fは、ハードウェア(回路)として、情報処理装置100Aに搭載されてもよい。 Further, the arithmetic processing device 30 functions as an analysis unit 30d, a determination unit 30e, and a configuration control unit 30f when the CPU core 30a executes the control program 20e. The analysis unit 30d, the determination unit 30e, and the configuration control unit 30f may be mounted on the information processing apparatus 100A as hardware (circuits).

LLC30bは、キャッシュメモリの一種であり、CPUコア30aから最も離れた(すなわち、メインメモリ20に最も近い)キャッシュメモリである。MMU30cは、メインメモリ20に対するメモリアクセスを管理する。例えば、MMU30cは、CPUコア30aが出力する仮想アドレスを、メインメモリ20に割り当てられた物理アドレスに変換する。 The LLC 30b is a type of cache memory, and is the cache memory farthest from the CPU core 30a (that is, closest to the main memory 20). The MMU 30c manages memory access to the main memory 20. For example, the MMU 30c converts the virtual address output by the CPU core 30a into the physical address assigned to the main memory 20.

分析部30d、決定部30eおよび構成制御部30fのそれぞれの機能は、図1から図3で説明した分析部3b、決定部3cおよび構成制御部3dのそれぞれの機能と同様である。分析部30d、決定部30eおよび構成制御部30fの動作は、図7から図10で説明される。 The functions of the analysis unit 30d, the determination unit 30e, and the configuration control unit 30f are the same as the functions of the analysis unit 3b, the determination unit 3c, and the configuration control unit 3d described with reference to FIGS. 1 to 3. The operations of the analysis unit 30d, the determination unit 30e, and the configuration control unit 30f will be described with reference to FIGS. 7 to 10.

入出力インタフェース40の1つは、DVD等の記録媒体70が装着される光学ドライブ装置に接続され、あるいは、USBメモリ等が装着されるコネクタを有する。他の入出力インタフェース40は、図示しないマウスおよびキーボード等の入力装置と、図示しないディスプレイ等の出力装置にそれぞれ接続される。 One of the input / output interfaces 40 has a connector that is connected to an optical drive device to which a recording medium 70 such as a DVD is mounted, or a USB memory or the like is mounted. The other input / output interface 40 is connected to an input device such as a mouse and a keyboard (not shown) and an output device such as a display (not shown).

HDD50は、メインメモリ20に格納するプログラムおよび構成情報等を記憶する。通信インタフェース60は、インターネットまたはイントラネット等のネットワークNWに接続され、ネットワークNWとの間で情報を入出力する。入出力インタフェース40、HDD50および通信インタフェース60は、バスBUS3を介して演算処理装置30に接続される。 The HDD 50 stores programs, configuration information, and the like stored in the main memory 20. The communication interface 60 is connected to a network NW such as the Internet or an intranet, and inputs / outputs information to / from the network NW. The input / output interface 40, the HDD 50, and the communication interface 60 are connected to the arithmetic processing unit 30 via the bus BUS3.

図5は、図4に示すプログラマブル部10のチップ構成の一例を示す。プログラマブル部10は、網掛けの矩形で示す複数の入出力端子IO、白抜きの矩形で示す複数のALM(Adaptive Logic Module)、複数のメモリM1、複数のメモリM2および複数のDSP(Digital Signal Processor)を有する。ALMには、プログラマブル部10に転送される構成情報に基づいて論理がプログラムされる。特に限定されないが、メモリM1、M2の記憶素子と、DSPの内部回路は、プログラマブル部10に予め構築されており、構成情報の転送により、接続配線が構築される。 FIG. 5 shows an example of the chip configuration of the programmable unit 10 shown in FIG. The programmable unit 10 includes a plurality of input / output terminal IOs indicated by shaded rectangles, a plurality of ALMs (Adaptive Logic Modules) indicated by white rectangles, a plurality of memories M1, a plurality of memories M2, and a plurality of DSPs (Digital Signal Processors). ). Logic is programmed in the ALM based on the configuration information transferred to the programmable unit 10. Although not particularly limited, the storage elements of the memories M1 and M2 and the internal circuit of the DSP are built in advance in the programmable unit 10, and the connection wiring is built by transferring the configuration information.

例えば、図4に示すデータ処理部10aは、所定数の入出力端子IO、所定数のALM、所定数のメモリM1および所定数のDSPを使用してプログラマブル部10上に構築される。キャッシュメモリ部10eは、所定数のALMおよび所定数のメモリM1、M2を使用してプログラマブル部10上に構築される。キャッシュ制御部10dおよびキャッシュ制御切替部10cの各々は、所定数のALM、所定数のメモリM1および所定数のDSPを使用してプログラマブル部10上に構築される。 For example, the data processing unit 10a shown in FIG. 4 is constructed on the programmable unit 10 by using a predetermined number of input / output terminal IOs, a predetermined number of ALMs, a predetermined number of memories M1, and a predetermined number of DSPs. The cache memory unit 10e is constructed on the programmable unit 10 by using a predetermined number of ALMs and a predetermined number of memories M1 and M2. Each of the cache control unit 10d and the cache control switching unit 10c is constructed on the programmable unit 10 by using a predetermined number of ALMs, a predetermined number of memories M1, and a predetermined number of DSPs.

図6は、図4に示すプログラマブル部10にプログラムされるデータ処理部10aの一例を示す。データ処理部10aは、CPUコア30aのみでデータ処理が完結する第1プログラムの中から、プログラマブル部10に実行させるデータ処理の部分を論理合成し、構成情報を生成する。例えば、プログラマブル部10に実行させるデータ処理は、破線で囲った部分であり、他のデータ処理に比べて時間が掛かるデータ処理であり、かつ、反復性を有するデータ処理である。データ処理部10aは、構成情報がプログラマブル部10にプログラムされることで、プログラマブル部10に構築される。すなわち、CPUコア30aがプログラムにより実行するデータ処理の一部が、プログラマブル部10にオフロードされる。 FIG. 6 shows an example of the data processing unit 10a programmed in the programmable unit 10 shown in FIG. The data processing unit 10a logically synthesizes the data processing portion to be executed by the programmable unit 10 from the first program in which the data processing is completed only by the CPU core 30a, and generates configuration information. For example, the data processing to be executed by the programmable unit 10 is a portion surrounded by a broken line, which is a data processing that takes more time than other data processing and has repeatability. The data processing unit 10a is constructed in the programmable unit 10 by programming the configuration information in the programmable unit 10. That is, a part of the data processing executed by the CPU core 30a by the program is offloaded to the programmable unit 10.

そして、論理合成したデータ処理部10aによるデータ処理部分を第1プログラムから除き、データ処理部10aの呼び出し処理を追加した第2プログラムが、データ処理部10aがプログラマブル部10にプログラムされた後に実行される。これにより、プログラマブル部10は、演算処理装置30のアクセラレータとして動作し、演算処理装置30とプログラマブル部10とによりデータ処理が実行される。 Then, the second program in which the data processing portion by the logically synthesized data processing unit 10a is removed from the first program and the call processing of the data processing unit 10a is added is executed after the data processing unit 10a is programmed in the programmable unit 10. To. As a result, the programmable unit 10 operates as an accelerator of the arithmetic processing unit 30, and the arithmetic processing unit 30 and the programmable unit 10 execute data processing.

図7は、図6に示す第2プログラムを実行する環境を構築する処理の一例を示す。まず、事前準備として、ステップS10において、キャッシュ制御部10dおよびキャッシュメモリ部10eが論理合成され、構成情報が生成される。ステップS12において、第1プログラムの中でプログラマブル部10に処理させる部分が、データ処理部10aとして論理合成され、構成情報が生成される。 FIG. 7 shows an example of a process for constructing an environment for executing the second program shown in FIG. First, as a preliminary preparation, in step S10, the cache control unit 10d and the cache memory unit 10e are logically synthesized to generate configuration information. In step S12, the portion of the first program to be processed by the programmable unit 10 is logically synthesized as the data processing unit 10a, and configuration information is generated.

ステップS14において、論理合成したデータ処理部10aにデータ処理を実行させる第2プログラム(ソースプログラム)が生成される。そして、ソースプログラムをコンパイルすることにより、CPUコア30aで実行可能な第2プログラムのオブジェクトファイルが生成される。ステップS16において、第1プログラム(ソースプログラム)がコンパイルされ、第1プログラムのオブジェクトファイルが生成される。 In step S14, a second program (source program) for causing the logically synthesized data processing unit 10a to execute data processing is generated. Then, by compiling the source program, an object file of the second program that can be executed by the CPU core 30a is generated. In step S16, the first program (source program) is compiled and the object file of the first program is generated.

なお、ステップS12、S14が順次実行されることを除き、ステップS10、S12、S14、S16は、図7に示す順序以外で実行されてもよい。また、事前準備は、情報処理装置100Aで実行されてもよく、他のツールを使用して実行されてもよい。 Note that steps S10, S12, S14, and S16 may be executed in an order other than that shown in FIG. 7, except that steps S12 and S14 are sequentially executed. Further, the advance preparation may be executed by the information processing apparatus 100A, or may be executed by using another tool.

事前準備が完了した後、データ処理部10aを使用してデータ処理を実行するための環境を情報処理装置100A上に構築する構築処理が実行される。構築処理は、CPUコア30aで実行するデータ処理の一部をデータ処理部10aに実行させる指示を、情報処理装置100Aを管理する管理者または情報処理装置100Aを使用するユーザから受信したことに基づいて開始される。
まず、ステップS20において、情報処理装置100Aは、演算処理装置30に第1プログラムの実行を開始させる。
After the preparation is completed, the construction process for constructing an environment for executing the data process on the information processing apparatus 100A using the data processing unit 10a is executed. The construction process is based on receiving an instruction to cause the data processing unit 10a to execute a part of the data processing executed by the CPU core 30a from the administrator who manages the information processing device 100A or a user who uses the information processing device 100A. Is started.
First, in step S20, the information processing device 100A causes the arithmetic processing unit 30 to start executing the first program.

次に、ステップS22において、情報処理装置100Aの分析部30dは、第1プログラムにおいてデータ処理部10aの動作に相当する命令を分析し、メモリアクセス命令の特徴を抽出する。ここで、データ処理部10aの動作に相当する命令は、図6に示した第1プログラムのうち、破線で囲った部分に含まれる命令である。 Next, in step S22, the analysis unit 30d of the information processing apparatus 100A analyzes the instruction corresponding to the operation of the data processing unit 10a in the first program, and extracts the characteristics of the memory access instruction. Here, the instruction corresponding to the operation of the data processing unit 10a is an instruction included in the portion surrounded by the broken line in the first program shown in FIG.

次に、ステップS24において、情報処理装置100Aの決定部30eは、ステップS22で抽出した特徴に基づいて、キャッシュ制御切替部10cの論理を生成することで、プログラマブル部10にプログラムするキャッシュ制御切替部10cを決定する。 Next, in step S24, the determination unit 30e of the information processing apparatus 100A generates the logic of the cache control switching unit 10c based on the features extracted in step S22, so that the cache control switching unit programmed in the programmable unit 10 10c is determined.

次に、ステップS26において、情報処理装置100Aの構成制御部30fは、キャッシュ回路10bの構成情報とデータ処理部10aの構成情報とを、プログラマブル部10にプログラムする。キャッシュ回路10bは、キャッシュ制御切替部10c、キャッシュ制御部10dおよびキャッシュメモリ部10eを含む。すなわち、情報処理装置100Aは、事前に準備したキャッシュ制御部10d、キャッシュメモリ部10eおよびデータ処理部10aの構成情報と、ステップS24で生成したキャッシュ制御切替部10cの構成情報とを、プログラマブル部10にプログラムする。そして、データ処理部10aを使用してデータ処理を実行するための環境を構築する構築処理が完了する。これにより、第2プログラムの実行が可能になる。 Next, in step S26, the configuration control unit 30f of the information processing device 100A programs the configuration information of the cache circuit 10b and the configuration information of the data processing unit 10a in the programmable unit 10. The cache circuit 10b includes a cache control switching unit 10c, a cache control unit 10d, and a cache memory unit 10e. That is, the information processing apparatus 100A converts the configuration information of the cache control unit 10d, the cache memory unit 10e, and the data processing unit 10a prepared in advance and the configuration information of the cache control switching unit 10c generated in step S24 into the programmable unit 10. Program to. Then, the construction process for constructing the environment for executing the data processing using the data processing unit 10a is completed. This makes it possible to execute the second program.

ステップS22からステップS26までの処理は、情報処理装置100Aの制御方法の一例および情報処理装置100Aの制御プログラムの一例を示し、図3(a)から図3(e)に示した処理に対応する。換言すれば、図3の右端のデータ処理部をデータ処理部10aに置き換え、各要素の符号を付け替えることで、図3は、情報処理装置100Aの動作の例を示す。 The processes from step S22 to step S26 show an example of the control method of the information processing device 100A and an example of the control program of the information processing device 100A, and correspond to the processes shown in FIGS. 3A to 3E. .. In other words, by replacing the data processing unit at the right end of FIG. 3 with the data processing unit 10a and changing the reference numerals of the respective elements, FIG. 3 shows an example of the operation of the information processing apparatus 100A.

例えば、分析部30dは、CPUコア30aが実行する第1プログラムによりデータ処理の一部を実行させた場合のメインメモリ20へのアクセスに基づいてアクセスアドレスのパターンを分析する。決定部30eは、分析部30dが分析したアクセスアドレスのパターンの特徴に基づいて、キャッシュ制御切替部10cを生成し、生成したキャッシュ制御切替部1cをプログラマブル部10にプログラムすることを決定する。構成制御部30fは、決定部30eが生成したキャッシュ制御切替部10cを、データ処理部10a、キャッシュ制御部10dおよびキャッシュメモリ部10eとともにプログラマブル部10にプログラムする。 For example, the analysis unit 30d analyzes the access address pattern based on the access to the main memory 20 when a part of the data processing is executed by the first program executed by the CPU core 30a. The determination unit 30e determines to generate the cache control switching unit 10c based on the characteristics of the access address pattern analyzed by the analysis unit 30d, and to program the generated cache control switching unit 1c in the programmable unit 10. The configuration control unit 30f programs the cache control switching unit 10c generated by the determination unit 30e into the programmable unit 10 together with the data processing unit 10a, the cache control unit 10d, and the cache memory unit 10e.

キャッシュ制御切替部10cがプログラマブル部1にプログラムされた後、情報処理装置100Aは、第1プログラムの実行を停止し、実行を停止した個所に対応する個所から第2プログラムの実行を開始する。そして、第2プログラムは、データ処理部10aを呼び出し、第1プログラムが実行していたデータ処理のうち、未実行の処理を、データ処理部10aに実行させる。データ処理部10aが動作中、データ処理部10aが発行するメモリアクセス要求に基づいて、キャッシュ制御切替部10c、キャッシュ制御部10dおよびキャッシュメモリ部10eが動作する。キャッシュ制御切替部10cは、メモリアクセス要求に基づいて、キャッシュヒントおよびバースト長を生成し、キャッシュ制御部10dは、キャッシュヒントおよびバースト長に基づいて動作する。 After the cache control switching unit 10c is programmed in the programmable unit 1, the information processing apparatus 100A stops the execution of the first program, and starts the execution of the second program from the location corresponding to the location where the execution is stopped. Then, the second program calls the data processing unit 10a, and causes the data processing unit 10a to execute the unexecuted processing among the data processing executed by the first program. While the data processing unit 10a is operating, the cache control switching unit 10c, the cache control unit 10d, and the cache memory unit 10e operate based on the memory access request issued by the data processing unit 10a. The cache control switching unit 10c generates a cache hint and a burst length based on the memory access request, and the cache control unit 10d operates based on the cache hint and the burst length.

なお、キャッシュ制御部10d、キャッシュメモリ部10eおよびデータ処理部10aの構成情報は、ステップS20の処理を開始する前に、プログラマブル部10にプログラムされてもよい。この場合、事前準備において、データ処理部10aとキャッシュ制御切替部10cとを互いに接続するインタフェース仕様と、キャッシュ制御切替部10cとキャッシュ制御部10dとを互いに接続するインタフェース仕様とが決められる。そして、決定部30eは、事前準備で決められたインタフェース仕様にしたがって、キャッシュ制御切替部10cの論理を生成する。 The configuration information of the cache control unit 10d, the cache memory unit 10e, and the data processing unit 10a may be programmed in the programmable unit 10 before starting the process of step S20. In this case, in advance preparation, an interface specification for connecting the data processing unit 10a and the cache control switching unit 10c to each other and an interface specification for connecting the cache control switching unit 10c and the cache control unit 10d to each other are determined. Then, the determination unit 30e generates the logic of the cache control switching unit 10c according to the interface specifications determined in advance.

図8は、図7に示すステップS24で生成されるキャッシュ制御切替部10cを含むキャッシュ回路の動作の一例を示す。左側の欄は、データ処理部10aで実行する処理と等価な命令群(ソースプログラム)とその行番号を示す。図8に示す命令群は、図6の第1プログラムの破線の枠内で実行される命令の一例を示す。例えば、命令群は、3つのプロセスA、B、Cの処理を含む。 FIG. 8 shows an example of the operation of the cache circuit including the cache control switching unit 10c generated in step S24 shown in FIG. The left column shows an instruction group (source program) equivalent to the process executed by the data processing unit 10a and its line number. The instruction group shown in FIG. 8 shows an example of an instruction executed within the frame of the broken line of the first program of FIG. For example, the instruction group includes the processing of three processes A, B, and C.

”LD”はロード命令を示し、”ST”はストア命令を示し、”EXE”が付く命令は演算命令を示し、”BR”は分岐命令を示す。例えば、1行目の”LD A1,Da1”は、アドレスA1のメモリ領域からデータを読み出してレジスタDa1に格納することを示す。4行目の”ST A3,Da3”は、レジスタDa3に保持されたデータをアドレスA3のメモリ領域に格納することを示す。3行目の”EXE1 Da3 (Da1,Da2)”は、レジスタDa1、Da2に保持されたデータを演算し、演算結果をレジスタDa3に格納することを示す。5行目の”BR Da3 B C”は、レジスタDa3に格納された値に応じて6行目または21行目に分岐することを示す。”B”、”C”は、ラベルを示す。 "LD" indicates a load instruction, "ST" indicates a store instruction, an instruction with "EXE" indicates an arithmetic instruction, and "BR" indicates a branch instruction. For example, "LD A1, Da1" on the first line indicates that data is read from the memory area at address A1 and stored in the register Da1. The fourth line "ST A3, Da3" indicates that the data held in the register Da3 is stored in the memory area of the address A3. The third line "EXE1 Da3 (Da1, Da2)" indicates that the data held in the registers Da1 and Da2 are calculated and the calculation result is stored in the register Da3. “BR Da3 BC” on the 5th line indicates that the 6th line or the 21st line branches depending on the value stored in the register Da3. "B" and "C" indicate labels.

中央の欄は、キャッシュ回路10bの動作の例を示し、キャッシュヒントとバースト長は、メモリアクセス要求(ロード命令LDまたはストア命令ST)毎にキャッシュ制御切替部10cにより生成される。右側の欄は、キャッシュ制御切替部10cを持たない他のキャッシュ回路の動作の例を示し、キャッシュヒントは”S”(リードアクセス)と”M”(ライトアクセス)に固定され、バースト長は”1”に固定される。中央の欄および右側の欄において、”ミス”は、キャッシュミスの発生を示し、”ヒット”は、キャッシュヒットの発生を示し、”追い出しの発生”に示す数字は、データを追い出すキャッシュラインの数を示す。 The central column shows an example of the operation of the cache circuit 10b, and the cache hint and the burst length are generated by the cache control switching unit 10c for each memory access request (load instruction LD or store instruction ST). The column on the right shows an example of the operation of another cache circuit that does not have the cache control switching unit 10c, the cache hint is fixed to "S" (read access) and "M" (write access), and the burst length is "". It is fixed at 1 ”. In the center column and the right column, "miss" indicates the occurrence of a cache miss, "hit" indicates the occurrence of a cache hit, and the number indicated by "expulsion occurrence" is the number of cache lines that expel data. Is shown.

キャッシュ回路10bの動作において、1行目のロード命令LDに対応してデータ処理部10aが実行するリードアクセス(アドレスA1)では、キャッシュ制御切替部10cは、キャッシュヒント(=”I”)をキャッシュ制御部10dに出力する。データ処理部10aが、この後、リードアクセス(アドレスA1)を実行しない場合、リードアクセスに基づいてLCC30bから出力されるデータは、キャッシュメモリ部10eに保持しなくてよい。 In the operation of the cache circuit 10b, in the read access (address A1) executed by the data processing unit 10a corresponding to the load instruction LD on the first line, the cache control switching unit 10c caches the cache hint (= "I"). Output to the control unit 10d. When the data processing unit 10a does not execute the read access (address A1) after that, the data output from the LCC 30b based on the read access does not have to be held in the cache memory unit 10e.

この場合、キャッシュヒントを”I”に設定することで、キャッシュメモリ部10eからキャッシュラインが無駄に追い出されることを抑止することができる。これに対して、他のキャッシュ回路の動作では、1行目のロード命令LDに対応してデータ処理部10aが実行するリードアクセス(アドレスA1)では、キャッシュヒントが”S”のため、キャッシュラインの無駄な追い出しが発生する。 In this case, by setting the cache hint to "I", it is possible to prevent the cache line from being unnecessarily expelled from the cache memory unit 10e. On the other hand, in the operation of other cache circuits, the cache hint is "S" in the read access (address A1) executed by the data processing unit 10a corresponding to the load instruction LD on the first line, so that the cache line. Useless eviction occurs.

2行目のロード命令LDに対応してデータ処理部10aが実行するリードアクセス(アドレスA2)では、キャッシュ制御切替部10cは、キャッシュヒント(=”S”)をキャッシュ制御部10dに出力する。ロード命令LD(アドレスA2)は、22行目でも実行される。データ処理部10aが、同じアドレスのリードアクセスを複数回実行する場合、最初のリードアクセスのキャッシュヒントを”S”にすることで、2回目以降のリードアクセスをキャッシュヒットさせることができる。 In the read access (address A2) executed by the data processing unit 10a in response to the load instruction LD on the second line, the cache control switching unit 10c outputs a cache hint (= "S") to the cache control unit 10d. The load instruction LD (address A2) is also executed on the 22nd line. When the data processing unit 10a executes read access of the same address a plurality of times, by setting the cache hint of the first read access to "S", the second and subsequent read accesses can be cache hit.

4行目のストア命令STに対応してデータ処理部10aが実行するライトアクセス(アドレスA3)では、キャッシュ制御切替部10cは、キャッシュヒント(=”M”)とバースト長(=”1”)をキャッシュ制御部10dに出力する。ストア命令ST(アドレスA3)は、25行目でも実行される。データ処理部10aが、同じアドレスのライトアクセスを複数回実行する場合、ライトアクセスのキャッシュヒントを”M”にすることで、LLC30bに発行するライトアクセス要求の頻度を下げることができる。 In the write access (address A3) executed by the data processing unit 10a in response to the store instruction ST on the fourth line, the cache control switching unit 10c has a cache hint (= "M") and a burst length (= "1"). Is output to the cache control unit 10d. The store instruction ST (address A3) is also executed on the 25th line. When the data processing unit 10a executes the write access of the same address a plurality of times, the frequency of the write access request issued to the LLC 30b can be reduced by setting the cache hint of the write access to "M".

7行目のロード命令LDに対応してデータ処理部10aが実行するリードアクセス(アドレスB1)では、キャッシュ制御切替部10cは、キャッシュヒント(=”S”)とバースト長(=”2”)をキャッシュ制御部10dに出力する。8行目のロード命令LDに対応してデータ処理部10aが実行するリードアクセスのアドレスB2は、アドレスB1に連続する。この場合、バースト長を”2”に設定することで、リードアクセス(アドレスB2)をキャッシュヒットさせることができ、LLC30bへのアクセス要求の頻度を減らすことができる。 In the read access (address B1) executed by the data processing unit 10a in response to the load instruction LD on the 7th line, the cache control switching unit 10c has a cache hint (= "S") and a burst length (= "2"). Is output to the cache control unit 10d. The read access address B2 executed by the data processing unit 10a in response to the load instruction LD on the eighth line is continuous with the address B1. In this case, by setting the burst length to "2", the read access (address B2) can be cache-hit, and the frequency of access requests to the LLC 30b can be reduced.

これに対して、他のキャッシュ回路の動作では、7行目のロード命令LDに対応してデータ処理部10aが実行するリードアクセス(アドレスB1)のバースト長が”1”に設定される。このため、8行目のロード命令LDに対応してデータ処理部10aが実行するリードアクセス(アドレスB2)でキャッシュミスが発生し、キャッシュ制御部10dは、LLC30bに無駄なリードアクセス要求を発行する。 On the other hand, in the operation of other cache circuits, the burst length of the read access (address B1) executed by the data processing unit 10a corresponding to the load instruction LD on the 7th line is set to "1". Therefore, a cache error occurs in the read access (address B2) executed by the data processing unit 10a in response to the load instruction LD on the eighth line, and the cache control unit 10d issues a useless read access request to the LLC 30b. ..

10行目のストア命令STに対応してデータ処理部10aが実行するライトアクセス(アドレスB3)では、キャッシュ制御切替部10cは、キャッシュヒント(=”I”)とバースト長(=”1”)をキャッシュ制御部10dに出力する。データ処理部10aが、この後、ライトアクセス(アドレスB3)を実行しない場合、ライトアクセスとともにデータ処理部10aが出力するライトデータは、キャッシュメモリ部10eに保持しなくてよい。この場合、キャッシュヒントを”I”に設定し、ライトデータをLLC30bに直接書き込むことで、キャッシュメモリ部10eからキャッシュラインが無駄に追い出されることを抑止することができる。 In the write access (address B3) executed by the data processing unit 10a in response to the store instruction ST on the 10th line, the cache control switching unit 10c has a cache hint (= "I") and a burst length (= "1"). Is output to the cache control unit 10d. When the data processing unit 10a does not execute the write access (address B3) after that, the write data output by the data processing unit 10a together with the write access does not have to be held in the cache memory unit 10e. In this case, by setting the cache hint to "I" and writing the write data directly to the LLC30b, it is possible to prevent the cache line from being unnecessarily expelled from the cache memory unit 10e.

これに対して、他のキャッシュ回路の動作では、10行目のストア命令STに対応してデータ処理部10aが実行するライトアクセス(アドレスB3)のキャッシュヒントが”M”に設定される。このため、その後のアクセスで使用されない無駄なデータがキャッシュメモリ部10eに保持され、キャッシュラインの無駄な追い出しが発生する。 On the other hand, in the operation of another cache circuit, the cache hint of the write access (address B3) executed by the data processing unit 10a corresponding to the store instruction ST on the 10th line is set to "M". Therefore, useless data that is not used in the subsequent access is held in the cache memory unit 10e, and useless evacuation of the cache line occurs.

23行目のロード命令LDに対応してデータ処理部10aが実行するリードアクセス(アドレスC1)では、1行目と同様に、キャッシュ制御切替部10cは、キャッシュヒント(=”I”)をキャッシュ制御部10dに出力する。データ処理部10aが、この後、リードアクセス(アドレスC1)を実行しない場合、キャッシュヒントを”I”に設定することで、キャッシュメモリ部10eからキャッシュラインが無駄に追い出されることを抑止することができる。 In the read access (address C1) executed by the data processing unit 10a in response to the load instruction LD on the 23rd line, the cache control switching unit 10c caches the cache hint (= "I") as in the first line. Output to the control unit 10d. When the data processing unit 10a does not execute the read access (address C1) after this, the cache hint can be set to "I" to prevent the cache line from being unnecessarily expelled from the cache memory unit 10e. it can.

このように、データ処理部10aのアクセスアドレスのパターンの特徴に基づいて生成されたキャッシュ制御切替部10cにより、キャッシュ回路10bは、無駄な追い出し処理および無駄なLLC30bへのアクセス要求が発生することを抑止することができる。この結果、他のキャッシュ回路に比べて、図4に示すバスBUS1の使用効率を向上することができ、情報処理装置100Aの処理性能を向上することができる。 In this way, the cache control switching unit 10c generated based on the characteristics of the access address pattern of the data processing unit 10a causes the cache circuit 10b to generate unnecessary eviction processing and unnecessary access request to the LLC 30b. It can be deterred. As a result, the usage efficiency of the bus BUS 1 shown in FIG. 4 can be improved and the processing performance of the information processing apparatus 100A can be improved as compared with other cache circuits.

図9は、図7に示すステップS22で使用する特徴抽出テーブルTBLの一例を示す。特徴抽出テーブルTBLは、分析部30dが抽出したメモリアクセス命令の特徴を記録するために使用される。特徴抽出テーブルTBLは、アクセス種別、アクセスアドレス、キャッシュヒントおよびバースト長を格納する領域を含む複数のエントリを有する。 FIG. 9 shows an example of the feature extraction table TBL used in step S22 shown in FIG. The feature extraction table TBL is used to record the features of the memory access instruction extracted by the analysis unit 30d. The feature extraction table TBL has a plurality of entries including an area for storing an access type, an access address, a cache hint, and a burst length.

アクセス種別の領域には、特徴を抽出したメモリアクセス命令がリード命令である場合、リードを示す情報が格納され、特徴を抽出したメモリアクセス命令がライト命令である場合、ライトを示す情報が格納される。アクセスアドレスの領域には、特徴を抽出したメモリアクセス命令に含まれるアドレスが格納される。 In the access type area, information indicating read is stored when the memory access instruction from which the feature is extracted is a read instruction, and information indicating write is stored when the memory access instruction from which the feature is extracted is a write instruction. To. In the access address area, the address included in the memory access instruction from which the feature is extracted is stored.

キャッシュヒントの領域には、キャッシュ制御部10dが使用するキャッシュヒントが格納される。キャッシュヒントは、”Shared”を示す”S”、”Modified”を示す”M”、”Invalid”を示す”I”、または”Exclusive”を示す”E”が格納される。 In the cache hint area, the cache hint used by the cache control unit 10d is stored. The cache hint stores "S" indicating "Shared", "M" indicating "Modified", "I" indicating "Invalid", or "E" indicating "Exclusive".

アクセス種別がリードの場合、キャッシュヒントは、リード命令に相当するリードアクセス要求に基づいて、キャッシュ制御部10dが、LLC30bから受信したデータをキャッシュメモリ部10eに保持するか否かを示す。アクセス種別がライトの場合、キャッシュヒントは、ライト命令に相当するライトアクセス要求に基づいて、キャッシュ制御部10dが、ライトアクセス要求に含まれるライトデータをキャッシュメモリ部10eに格納するか、LLC30bに出力するかを示す。 When the access type is read, the cache hint indicates whether or not the cache control unit 10d holds the data received from the LLC 30b in the cache memory unit 10e based on the read access request corresponding to the read instruction. When the access type is write, the cache hint is such that the cache control unit 10d stores the write data included in the write access request in the cache memory unit 10e or outputs the write data to the LLC30b based on the write access request corresponding to the write instruction. Indicates whether to do it.

バースト長の領域には、メモリアクセス命令によりキャッシュメモリ部10eに入力されるデータの数を示すバースト長が格納される。なお、バースト長は、キャッシュメモリ部10eのアクセスの単位であるキャッシュラインのアクセス数を示す。 In the burst length area, a burst length indicating the number of data input to the cache memory unit 10e by the memory access instruction is stored. The burst length indicates the number of accesses of the cache line, which is an access unit of the cache memory unit 10e.

分析部30dは、メモリアクセス命令の特徴が抽出できるまで、メモリアクセス命令毎に、アクセス種別とアクセスアドレスとを特徴抽出テーブルTBLに順次格納する。そして、メモリアクセス命令の特徴が抽出しながら、各エントリに格納したメモリアクセス要求に最適なキャッシュヒントとバースト長とを判定し、判定したキャッシュヒントとバースト長とを各エントリに格納する。 The analysis unit 30d sequentially stores the access type and the access address in the feature extraction table TBL for each memory access instruction until the features of the memory access instruction can be extracted. Then, while extracting the characteristics of the memory access instruction, the optimum cache hint and burst length for the memory access request stored in each entry are determined, and the determined cache hint and burst length are stored in each entry.

図10は、図7に示すステップS22の処理の一例を示す。まず、ステップS222において、分析部30dは、特徴抽出テーブルTBLを初期化する。例えば、アクセス種別とアクセスアドレスの領域には、無効な値が格納される。キャッシュヒントの領域には、”I”が格納され、バースト長の領域には、”1”が格納される。 FIG. 10 shows an example of the process of step S22 shown in FIG. 7. First, in step S222, the analysis unit 30d initializes the feature extraction table TBL. For example, an invalid value is stored in the access type and access address area. "I" is stored in the cache hint area, and "1" is stored in the burst length area.

次に、ステップS224において、分析部30dは、順次実行される命令の中からメモリアクセス命令を検出する。なお、検出対象のメモリアクセス命令は、図6に示す第1プログラムの中で、データ処理部10aに処理させる破線で囲った部分に含まれるメモリアクセス命令である。 Next, in step S224, the analysis unit 30d detects a memory access instruction from the instructions that are sequentially executed. The memory access instruction to be detected is a memory access instruction included in a portion surrounded by a broken line to be processed by the data processing unit 10a in the first program shown in FIG.

次に、ステップS226において、分析部30dは、検出したメモリアクセス命令がストア命令の場合、処理をステップS228に移行し、検出したメモリアクセス命令がストア命令でない場合、ロード命令であるため、処理をステップS232に移行する。 Next, in step S226, the analysis unit 30d shifts the process to step S228 when the detected memory access instruction is a store instruction, and if the detected memory access instruction is not a store instruction, it is a load instruction, so that the process is performed. The process proceeds to step S232.

ステップS228において、分析部30dは、今回検出したストア命令に含まれるアドレスが、以前に検出したストア命令に含まれるアドレスと同じ場合、処理をステップS230に移行する。分析部30dは、検出したストア命令に含まれるアドレスが、以前に検出したストア命令に含まれるアドレスと異なる場合、処理をステップS240に移行する。 In step S228, when the address included in the store instruction detected this time is the same as the address included in the previously detected store instruction, the analysis unit 30d shifts the process to step S230. When the address included in the detected store instruction is different from the address included in the previously detected store instruction, the analysis unit 30d shifts the process to step S240.

ステップS230において、分析部30dは、アドレスが互いに同じストア命令に対応して、特徴抽出テーブルTBLに、ライトを示す情報と、アドレスの値と、キャッシュヒント=”M”とを格納し、処理をステップS240に移行する。 In step S230, the analysis unit 30d stores the information indicating the write, the address value, and the cache hint = "M" in the feature extraction table TBL corresponding to the store instructions having the same address, and performs processing. The process proceeds to step S240.

一方、ステップS232において、分析部30dは、今回検出したロード命令に含まれるアドレスが、以前に検出したロード命令に含まれるアドレスと同じ場合、処理をステップS234に移行する。分析部30dは、検出したロード命令に含まれるアドレスが、以前に検出したロード命令に含まれるアドレスと異なる同じ場合、処理をステップS236に移行する。 On the other hand, in step S232, when the address included in the load instruction detected this time is the same as the address included in the previously detected load instruction, the analysis unit 30d shifts the process to step S234. If the address included in the detected load instruction is different from the address included in the previously detected load instruction, the analysis unit 30d shifts the process to step S236.

ステップS234において、分析部30dは、アドレスが互いに同じロード命令に対応して、特徴抽出テーブルTBLに、リードを示す情報と、アドレスの値と、キャッシュヒント=”S”とを格納し、処理をステップS236に移行する。 In step S234, the analysis unit 30d stores the information indicating the read, the address value, and the cache hint = "S" in the feature extraction table TBL in response to the load instructions having the same addresses, and performs processing. The process proceeds to step S236.

ステップS236において、分析部30dは、現在のロード命令と直前のロード命令とのアドレスが互いに同じ場合、処理をステップS238に移行し、現在のロード命令と直前のロード命令とのアドレスが互いに異なる場合、処理をステップS240に移行する。ステップS238において、分析部30dは、直前のロード命令とアドレスが互いに同じロード命令に対応して、特徴抽出テーブルTBLに、リードを示す情報と、アドレスの値と、キャッシュヒント=”S”と、バースト長=”2”とを格納する。この後、処理は、ステップS240に移行される。 In step S236, when the addresses of the current load instruction and the immediately preceding load instruction are the same, the analysis unit 30d shifts the process to step S238, and when the addresses of the current load instruction and the immediately preceding load instruction are different from each other. , The process proceeds to step S240. In step S238, the analysis unit 30d displays the read indicating information, the address value, and the cache hint = "S" in the feature extraction table TBL corresponding to the load instruction having the same address as the immediately preceding load instruction. Burst length = "2" is stored. After this, the process proceeds to step S240.

ステップS240において、分析部30dは、メモリアクセス命令の特徴が抽出され、特徴抽出テーブルTBLに格納した情報に基づいてキャッシュメモリ部10eのキャッシュヒット率を向上できると判断した場合、処理を終了する。分析部30dは、メモリアクセス命令の特徴の抽出が不十分であると判定した場合、処理をステップS224に戻し、メモリアクセス命令の特徴の抽出を続行する。このように、分析部30dは、第1プログラムの実行により発生する、メモリアクセス命令を利用して、データ処理部10aから発行されるメモリアクセス要求命令の特徴を抽出する。 In step S240, when the analysis unit 30d determines that the features of the memory access instruction are extracted and the cache hit rate of the cache memory unit 10e can be improved based on the information stored in the feature extraction table TBL, the analysis unit 30d ends the process. When the analysis unit 30d determines that the extraction of the characteristics of the memory access instruction is insufficient, the process returns to step S224 and the extraction of the characteristics of the memory access instruction is continued. In this way, the analysis unit 30d extracts the characteristics of the memory access request instruction issued from the data processing unit 10a by using the memory access instruction generated by the execution of the first program.

例えば、メモリアクセス命令の特徴が格納された特徴抽出テーブルTBLは、キャッシュ制御切替部10cの一部として、プログラマブル部10内のメモリM1(図5)にプログラムされる。なお、メモリアクセス命令の特徴が格納された特徴抽出テーブルTBLは、キャッシュ制御切替部10cの一部として、プログラマブル部10内のALMにプログラムされてもよい。 For example, the feature extraction table TBL in which the features of the memory access instruction are stored is programmed in the memory M1 (FIG. 5) in the programmable unit 10 as a part of the cache control switching unit 10c. The feature extraction table TBL in which the features of the memory access instruction are stored may be programmed in the ALM in the programmable unit 10 as a part of the cache control switching unit 10c.

以上、図4から図10に示す実施形態においても、図1から図3に示す実施形態と同様の効果を得ることができる。例えば、データ処理部10aのメモリアクセスの特徴に合わせて、キャッシュ回路10bのキャッシュ効率を最適化することができ、情報処理装置100Aの処理性能を向上することができる。データ処理部10aおよびキャッシュ回路10bをプログラマブル部10に搭載する前に、アクセスアドレスのパターンを分析することができる。第1プログラムと第2プログラムとで同じ処理を重複して実行する無駄を省くことができ、あるいは、処理が欠落することを抑止することができる。 As described above, even in the embodiments shown in FIGS. 4 to 10, the same effects as those in the embodiments shown in FIGS. 1 to 3 can be obtained. For example, the cache efficiency of the cache circuit 10b can be optimized according to the characteristics of the memory access of the data processing unit 10a, and the processing performance of the information processing apparatus 100A can be improved. The access address pattern can be analyzed before the data processing unit 10a and the cache circuit 10b are mounted on the programmable unit 10. It is possible to eliminate the waste of executing the same process in the first program and the second program in duplicate, or to prevent the process from being omitted.

図11は、情報処理装置の別の実施形態における第2プログラムを実行する環境を構築する処理の一例を示す。図7と同一の要素については、詳細な説明は省略する。図11では、図7のステップS22の代わりに、ステップS22Aが実行される。ステップS22Aを除く処理は、図7と同じである。 FIG. 11 shows an example of a process for constructing an environment for executing the second program in another embodiment of the information processing apparatus. Detailed description of the same elements as in FIG. 7 will be omitted. In FIG. 11, step S22A is executed instead of step S22 of FIG. The process except step S22A is the same as that in FIG.

ステップS22A、S24、S26に示す処理は、情報処理装置が実行する制御プログラムにより実行される。すなわち、ステップS22A、S24、S26に示す処理は、情報処理装置の制御方法の一例および情報処理装置の制御プログラムの一例を示す。 The processes shown in steps S22A, S24, and S26 are executed by the control program executed by the information processing apparatus. That is, the processes shown in steps S22A, S24, and S26 show an example of the control method of the information processing device and an example of the control program of the information processing device.

ステップS20、S22A、S24、S26を実行する情報処理装置は、図4に示した制御プログラム20eが異なることを除き、図4に示す情報処理装置100Aと同様である。換言すれば、ステップS20、S22A、S24、S26を実行する情報処理装置は、図4に示す分析部30dと決定部30eが実行する処理が異なることを除き、図4に示す情報処理装置100Aと同様である。 The information processing device that executes steps S20, S22A, S24, and S26 is the same as the information processing device 100A shown in FIG. 4, except that the control program 20e shown in FIG. 4 is different. In other words, the information processing apparatus that executes steps S20, S22A, S24, and S26 is different from the information processing apparatus 100A shown in FIG. 4, except that the processes executed by the analysis unit 30d and the determination unit 30e shown in FIG. 4 are different. The same is true.

ステップS22Aにおいて、情報処理装置100Aの分析部30dは、第1プログラムにおいてデータ処理部10aの動作に相当する命令を分析し、分岐命令において、分岐する確率が他より高い分岐先を検出する。そして、分析部30dは、分岐する確率が他より高い分岐先で実行されるメモリアクセスの特徴を抽出する。すなわち、分析部30dは、図12に示す複数のプロセスA、B、Cのうち、実行頻度が他のプロセスよりも高いプロセスによるアクセスアドレスのパターンを分析する。次に、ステップS24において、決定部30eは、ステップS22Aで抽出した特徴に基づいて、キャッシュ制御切替部10cの論理を生成する。 In step S22A, the analysis unit 30d of the information processing apparatus 100A analyzes an instruction corresponding to the operation of the data processing unit 10a in the first program, and detects a branch destination having a higher probability of branching in the branch instruction. Then, the analysis unit 30d extracts the characteristics of the memory access executed at the branch destination having a higher probability of branching than the others. That is, the analysis unit 30d analyzes the access address pattern of the plurality of processes A, B, and C shown in FIG. 12, which are executed more frequently than the other processes. Next, in step S24, the determination unit 30e generates the logic of the cache control switching unit 10c based on the features extracted in step S22A.

図12は、図11に示すステップS24で生成されたキャッシュ制御切替部10cを含むキャッシュ回路10bの動作の一例を示す。図8と同一または同様の要素については、詳細な説明は省略する。左側の欄に示すデータ処理部10aで実行する処理と等価な命令群(ソースプログラム)は、図8と同じである。 FIG. 12 shows an example of the operation of the cache circuit 10b including the cache control switching unit 10c generated in step S24 shown in FIG. Detailed description of the same or similar elements as in FIG. 8 will be omitted. The instruction group (source program) equivalent to the processing executed by the data processing unit 10a shown in the left column is the same as that in FIG.

中央の欄は、5行目のブランチ命令BRにおいて、プロセスBで実行されるメモリアクセスの特徴の抽出に基づいて生成されたキャッシュ制御切替部を含むキャッシュ回路の動作を示す。すなわち、中央の欄は、ラベルBに分岐する確率が他に分岐する確率より高い場合に合わせて生成されたキャッシュ制御切替部を含むキャッシュ回路の動作を示す。 The central column shows the operation of the cache circuit including the cache control switching unit generated based on the extraction of the characteristics of the memory access executed in the process B in the branch instruction BR on the fifth line. That is, the central column shows the operation of the cache circuit including the cache control switching unit generated when the probability of branching to the label B is higher than the probability of branching to another label B.

右側の欄は、5行目のブランチ命令BRにおいて、プロセスCで実行されるメモリアクセスの特徴の抽出に基づいて生成されたキャッシュ制御切替部を含むキャッシュ回路の動作を示す。すなわち、右側の欄は、ラベルCに分岐する確率が他に分岐する確率より高い場合に合わせて生成されたキャッシュ制御切替部を含むキャッシュ回路の動作を示す。 The column on the right side shows the operation of the cache circuit including the cache control switching unit generated based on the extraction of the characteristics of the memory access executed in the process C in the branch instruction BR on the fifth line. That is, the column on the right side shows the operation of the cache circuit including the cache control switching unit generated when the probability of branching to the label C is higher than the probability of branching to another label C.

5行目のブランチ命令BRにおいて、ラベルBに分岐する確率が高い場合、7行目のロード命令LDに対応してデータ処理部10aが実行するリードアクセス(アドレスB1)のバースト長が”2”に設定される。これにより、次のリードアクセス(アドレスB2)をキャッシュヒットさせることができ、LLC30bへのアクセス要求の頻度を減らすことができる。この例では、プロセスBでのキャッシュ効率が高くなるように、全てのリードアクセスにおいて、キャッシュヒントは”S”に設定され、バースト長は”2”に設定される。 In the branch instruction BR on the 5th line, when the probability of branching to the label B is high, the burst length of the read access (address B1) executed by the data processing unit 10a corresponding to the load instruction LD on the 7th line is "2". Is set to. As a result, the next read access (address B2) can be cache-hit, and the frequency of access requests to the LLC30b can be reduced. In this example, the cache hint is set to "S" and the burst length is set to "2" for all read accesses so that the cache efficiency in process B is high.

一方、5行目のブランチ命令BRにおいて、ラベルCに分岐する確率が高い場合、例えば、22行目のロード命令LD(アドレスA2)のアクセス効率を向上するため、2行目のロード命令(アドレスA2)のキャッシュヒントが”S” に設定される。また、1行目のロード命令LD(アドレスA1)と8行目のロード命令(アドレスB2)は、プロセスCでは実行されないため、キャッシュヒントが”I”に設定される。 On the other hand, when the probability of branching to the label C is high in the branch instruction BR on the fifth line, for example, in order to improve the access efficiency of the load instruction LD (address A2) on the 22nd line, the load instruction (address) on the second line The cache hint of A2) is set to "S". Further, since the load instruction LD (address A1) on the first line and the load instruction (address B2) on the eighth line are not executed in the process C, the cache hint is set to "I".

さらに、7行目のロード命令LD(アドレスB1)が実行された後に、プロセスCにおいて、アドレスB1のリードアクセスが実行されるため(図示せず)、7行目のロード命令のキャッシュヒントが”S”に設定される。23行目のロード命令LD(アドレスC1)で読み出されたデータは、その後のプロセスCの処理で使用されないため、23行目のロード命令LDのキャッシュヒントは”I”に設定される。 Further, since the read access of the address B1 is executed in the process C after the load instruction LD (address B1) on the 7th line is executed (not shown), the cache hint of the load instruction on the 7th line is ". It is set to "S". Since the data read by the load instruction LD (address C1) on the 23rd line is not used in the subsequent process C, the cache hint of the load instruction LD on the 23rd line is set to "I".

これにより、22行目のロード命令LDをキャッシュヒットさせることができ、23行目のロード命令LDに基づいてキャッシュラインの無駄な追い出しが発生することを抑止することができる。また、プロセスCに関連する処理を実行する他のプロセス(1行目、8行目)においても、キャッシュラインの無駄な追い出しが発生することを抑止することができる。 As a result, the load instruction LD on the 22nd line can be made a cache hit, and it is possible to prevent unnecessary evacuation of the cache line based on the load instruction LD on the 23rd line. In addition, it is possible to prevent unnecessary eviction of the cache line from occurring in other processes (first and eighth lines) that execute processes related to process C.

なお、図12に示す動作では、ストア命令STに対応してデータ処理部10aが実行するライトアクセスは、図8の右側の欄と同様に、キャッシュヒントは”M”に設定され、バースト長は”1”に設定される。 In the operation shown in FIG. 12, the write access executed by the data processing unit 10a in response to the store instruction ST has the cache hint set to "M" and the burst length set to "M" as in the right column of FIG. It is set to "1".

以上、図11および図12に示す実施形態においても、図1から図3に示す実施形態と同様の効果を得ることができる。例えば、データ処理部10aのメモリアクセスの特徴に合わせて、キャッシュ回路10bのキャッシュ効率を最適化することができ、情報処理装置100Aの処理性能を向上することができる。データ処理部10aおよびキャッシュ回路10bをプログラマブル部10に搭載する前に、アクセスアドレスのパターンを分析することができる。第1プログラムと第2プログラムとで同じ処理を重複して実行する無駄を省くことができ、あるいは、処理が欠落することを抑止することができる。 As described above, also in the embodiments shown in FIGS. 11 and 12, the same effects as those in the embodiments shown in FIGS. 1 to 3 can be obtained. For example, the cache efficiency of the cache circuit 10b can be optimized according to the characteristics of the memory access of the data processing unit 10a, and the processing performance of the information processing apparatus 100A can be improved. The access address pattern can be analyzed before the data processing unit 10a and the cache circuit 10b are mounted on the programmable unit 10. It is possible to eliminate the waste of executing the same process in the first program and the second program in duplicate, or to prevent the process from being omitted.

さらに、図11および図12に示す実施形態では、実行頻度が他より高い処理のアクセスアドレスのパターンの特徴に合わせて、キャッシュ回路10bのキャッシュ効率を最適化することができる。これにより、例えば、プロセスCまたはプロセスCに特化して、キャッシュ回路10bのキャッシュ効率を最適化することができる。 Further, in the embodiment shown in FIGS. 11 and 12, the cache efficiency of the cache circuit 10b can be optimized according to the characteristics of the access address pattern of the processing having a higher execution frequency than the others. Thereby, for example, the cache efficiency of the cache circuit 10b can be optimized by specializing in the process C or the process C.

図13は、情報処理装置の別の実施形態における第2プログラムを実行する環境を構築する処理の一例を示す。図7と同一の要素については、詳細な説明は省略する。図13では、事前準備において、複数のキャッシュ制御切替部を論理合成するステップS11Bが、図7に対して追加される。また、図7のステップS24の代わりに、ステップS24Bが実行される。その他の処理は、図7と同じである。 FIG. 13 shows an example of a process for constructing an environment for executing the second program in another embodiment of the information processing apparatus. Detailed description of the same elements as in FIG. 7 will be omitted. In FIG. 13, in advance preparation, step S11B for logically synthesizing a plurality of cache control switching units is added to FIG. 7. Further, step S24B is executed instead of step S24 in FIG. 7. Other processing is the same as in FIG.

ステップS22、S24B、S26に示す処理は、情報処理装置が実行する制御プログラムにより実行される。すなわち、ステップS22、S24B、S26に示す処理は、情報処理装置の制御方法の一例および情報処理装置の制御プログラムの一例を示す。ステップS20、S22、S24B、S26を実行する情報処理装置は、図4に示す制御プログラム20eが異なることを除き、図4に示す情報処理装置100Aと同様である。換言すれば、ステップS20、S22、S24B、S26を実行する情報処理装置は、図4に示す決定部30eが実行する処理が異なることを除き、図4に示す情報処理装置100Aと同様である。 The processes shown in steps S22, S24B, and S26 are executed by the control program executed by the information processing apparatus. That is, the processes shown in steps S22, S24B, and S26 show an example of the control method of the information processing device and an example of the control program of the information processing device. The information processing device that executes steps S20, S22, S24B, and S26 is the same as the information processing device 100A shown in FIG. 4, except that the control program 20e shown in FIG. 4 is different. In other words, the information processing device that executes steps S20, S22, S24B, and S26 is the same as the information processing device 100A shown in FIG. 4, except that the processing executed by the determination unit 30e shown in FIG. 4 is different.

ステップS11Bにおいて、様々なメモリアクセスの特徴に合わせた複数種のキャッシュ制御切替部が論理合成され、構成情報が生成される。なお、事前準備は、情報処理装置100Aで実行されてもよく、他のツールを使用して実行されてもよい。ステップS11Bは、事前準備のフローにおいて、他の個所に配置されてもよい。 In step S11B, a plurality of types of cache control switching units that match the characteristics of various memory accesses are logically synthesized to generate configuration information. The advance preparation may be executed by the information processing apparatus 100A, or may be executed by using another tool. Step S11B may be arranged at another location in the preparatory flow.

ステップS24Bにおいて、情報処理装置100Aの決定部30eは、ステップS22で抽出した特徴に基づいて、ステップS11Bで生成された複数種のキャッシュ制御切替部の中からメモリアクセス効率が他より高くなるキャッシュ制御切替部10cを選択する。なお、ステップS22の代わりに図11に示したステップS22Aが実行され、ステップS24Bにおいて、決定部30eが、ステップS22Aで抽出した特徴に基づいて、メモリアクセス効率が他より高くなるキャッシュ制御切替部10cを選択してもよい。 In step S24B, the determination unit 30e of the information processing apparatus 100A determines the cache control in which the memory access efficiency is higher than the others among the plurality of types of cache control switching units generated in step S11B based on the features extracted in step S22. Select the switching unit 10c. Note that step S22A shown in FIG. 11 is executed instead of step S22, and in step S24B, the cache control switching unit 10c in which the determination unit 30e has a higher memory access efficiency than the others based on the features extracted in step S22A. May be selected.

決定部30eは、事前準備で生成されたキャッシュ制御切替部の構成情報を使用できるため、アクセスアドレスのパターンの分析結果に基づいてキャッシュ制御切替部10cを生成する処理を省略することができる。これにより、プログラマブル部10にプログラムするキャッシュ制御切替部10cを準備するまでに実行される第1プログラムの命令数を最小限にすることができる。この結果、情報処理装置100Aが実行するデータ処理に使用されるデータ処理部10aの動作率を向上することができ、データ処理の処理性能を向上することができる。 Since the determination unit 30e can use the configuration information of the cache control switching unit generated in advance, the process of generating the cache control switching unit 10c based on the analysis result of the access address pattern can be omitted. As a result, the number of instructions of the first program executed before preparing the cache control switching unit 10c to be programmed in the programmable unit 10 can be minimized. As a result, the operating rate of the data processing unit 10a used for the data processing executed by the information processing apparatus 100A can be improved, and the processing performance of the data processing can be improved.

以上、図13に示す実施形態においても、図1から図3に示す実施形態と同様の効果を得ることができる。例えば、データ処理部10aのメモリアクセスの特徴に合わせて、キャッシュ回路10bのキャッシュ効率を最適化することができ、情報処理装置100Aの処理性能を向上することができる。データ処理部10aおよびキャッシュ回路10bをプログラマブル部10に搭載する前に、アクセスアドレスのパターンを分析することができる。第1プログラムと第2プログラムとで同じ処理を重複して実行する無駄を省くことができ、あるいは、処理が欠落することを抑止することができる。 As described above, even in the embodiment shown in FIG. 13, the same effect as that of the embodiment shown in FIGS. 1 to 3 can be obtained. For example, the cache efficiency of the cache circuit 10b can be optimized according to the characteristics of the memory access of the data processing unit 10a, and the processing performance of the information processing apparatus 100A can be improved. The access address pattern can be analyzed before the data processing unit 10a and the cache circuit 10b are mounted on the programmable unit 10. It is possible to eliminate the waste of executing the same process in the first program and the second program in duplicate, or to prevent the process from being omitted.

さらに、図13に示す実施形態では、事前準備で生成されたキャッシュ制御切替部の構成情報を使用することで、プログラマブル部10にプログラムするキャッシュ制御切替部10cを準備するまでに実行される第1プログラムの命令数を最小限にすることができる。この結果、情報処理装置100Aが実行するデータ処理に使用されるデータ処理部10aの動作率を向上することができ、データ処理の処理性能を向上することができる。 Further, in the embodiment shown in FIG. 13, by using the configuration information of the cache control switching unit generated in advance preparation, the first execution is executed until the cache control switching unit 10c to be programmed in the programmable unit 10 is prepared. The number of program instructions can be minimized. As a result, the operating rate of the data processing unit 10a used for the data processing executed by the information processing apparatus 100A can be improved, and the processing performance of the data processing can be improved.

図14は、情報処理装置の別の実施形態における第2プログラムを実行する環境を構築する処理の一例を示す。図7と同一の要素については、詳細な説明は省略する。図14では、図7のステップS24の代わりに、ステップS24Cが実行され、図7のステップS22の後にステップS23Cが追加される。ステップS23C、S24Cを除く処理は、図7と同じである。 FIG. 14 shows an example of a process for constructing an environment for executing the second program in another embodiment of the information processing apparatus. Detailed description of the same elements as in FIG. 7 will be omitted. In FIG. 14, step S24C is executed in place of step S24 in FIG. 7, and step S23C is added after step S22 in FIG. The processing except for steps S23C and S24C is the same as in FIG.

ステップS22、S23C、S24C、S26に示す処理は、情報処理装置が実行する制御プログラムにより実行される。すなわち、ステップS22、S23C、S24C、S26に示す処理は、情報処理装置の制御方法の一例および情報処理装置の制御プログラムの一例を示す。ステップS20、S22、S23C、S24C、S26を実行する情報処理装置は、図4に示す制御プログラム20eが異なることを除き、図4に示す情報処理装置100Aと同様である。換言すれば、S20、S22、S23C、S24C、S26を実行する情報処理装置は、図4に示す決定部30eが実行する処理が異なることを除き、図4に示す情報処理装置100Aと同様に動作する。 The processes shown in steps S22, S23C, S24C, and S26 are executed by the control program executed by the information processing apparatus. That is, the processes shown in steps S22, S23C, S24C, and S26 show an example of the control method of the information processing device and an example of the control program of the information processing device. The information processing device that executes steps S20, S22, S23C, S24C, and S26 is the same as the information processing device 100A shown in FIG. 4, except that the control program 20e shown in FIG. 4 is different. In other words, the information processing device that executes S20, S22, S23C, S24C, and S26 operates in the same manner as the information processing device 100A shown in FIG. 4, except that the processing executed by the determination unit 30e shown in FIG. 4 is different. To do.

ステップS23Cにおいて、決定部30eは、プログラマブル部10において、キャッシュ制御切替部をプログラム可能な空き領域を検出する。例えば、決定部30eは、図5に示したプログラマブル部10において、未使用のALMの数、未使用のメモリM1の数および未使用のDSPの数を検出する。 In step S23C, the determination unit 30e detects a free area in which the cache control switching unit can be programmed in the programmable unit 10. For example, the determination unit 30e detects the number of unused ALMs, the number of unused memories M1, and the number of unused DSPs in the programmable unit 10 shown in FIG.

次に、ステップS24Cにおいて、決定部30eは、ステップS22で抽出された特徴に基づいて、空き領域にプログラム可能な規模のキャッシュ制御切替部10cの論理を生成する。すなわち、決定部30eは、未使用のALM、メモリM1、DSPを使用して搭載可能な回路規模のキャッシュ制御切替部10cを生成する。 Next, in step S24C, the determination unit 30e generates the logic of the cache control switching unit 10c of a scale programmable in the free area based on the features extracted in step S22. That is, the determination unit 30e generates a circuit-scale cache control switching unit 10c that can be mounted by using the unused ALM, memory M1, and DSP.

キャッシュ制御切替部10cの性能は、回路規模が大きいほど高くなり、回路規模が小さいほど低くなる。ここで、キャッシュ制御切替部10cの性能は、キャッシュヒット率が高いほど高く、キャッシュラインの追い出し頻度が少ないほど高い。このように、ステップS23C、S24Cにより、プログラマブル部10の空き領域に応じて最適な性能のキャッシュ制御切替部10cをプログラマブル部10に搭載することができる。また、空き領域の制限により、キャッシュ制御切替部10cがプログラマブル部10にプログラムされない不具合を解消することができる。 The performance of the cache control switching unit 10c increases as the circuit scale increases, and decreases as the circuit scale decreases. Here, the performance of the cache control switching unit 10c is higher as the cache hit rate is higher, and is higher as the cache line ejection frequency is lower. As described above, in steps S23C and S24C, the cache control switching unit 10c having the optimum performance according to the free area of the programmable unit 10 can be mounted on the programmable unit 10. Further, it is possible to solve the problem that the cache control switching unit 10c is not programmed in the programmable unit 10 due to the limitation of the free area.

なお、図11に示すステップS22Aと同様に、分析部30dは、分岐する確率が他より高い分岐先で実行されるメモリアクセスの特徴を抽出してもよい。また、図13に示すステップS24Bと同様に、決定部30eは、キャッシュ制御切替部10cの論理を生成する代わりに、予め生成された複数のキャッシュ制御切替部の中から、メモリアクセス効率が他より高くなるキャッシュ制御切替部を選択してもよい。この場合、決定部30eは、プログラマブル部10の空き領域に合わせてキャッシュ制御切替部を選択する。さらに、決定部30eがメモリアクセス効率が他より高くなるキャッシュ制御切替部を選択することに加えて、図11に示したように、分析部30dが分岐する確率が他より高い分岐先でのメモリアクセスの特徴を抽出してもよい。 As in step S22A shown in FIG. 11, the analysis unit 30d may extract the characteristics of the memory access executed at the branch destination having a higher probability of branching than the others. Further, as in step S24B shown in FIG. 13, instead of generating the logic of the cache control switching unit 10c, the determination unit 30e has a higher memory access efficiency than the others from among the plurality of cache control switching units generated in advance. A higher cache control switching unit may be selected. In this case, the determination unit 30e selects the cache control switching unit according to the free area of the programmable unit 10. Further, in addition to the determination unit 30e selecting the cache control switching unit having a higher memory access efficiency than the others, as shown in FIG. 11, the memory at the branch destination where the analysis unit 30d has a higher probability of branching than the others. Access features may be extracted.

以上、図14に示す実施形態においても、図1から図3に示す実施形態と同様の効果を得ることができる。例えば、データ処理部10aのメモリアクセスの特徴に合わせて、キャッシュ回路10bのキャッシュ効率を最適化することができ、情報処理装置100Aの処理性能を向上することができる。データ処理部10aおよびキャッシュ回路10bをプログラマブル部10に搭載する前に、アクセスアドレスのパターンを分析することができる。第1プログラムと第2プログラムとで同じ処理を重複して実行する無駄を省くことができ、あるいは、処理が欠落することを抑止することができる。 As described above, even in the embodiment shown in FIG. 14, the same effect as that of the embodiment shown in FIGS. 1 to 3 can be obtained. For example, the cache efficiency of the cache circuit 10b can be optimized according to the characteristics of the memory access of the data processing unit 10a, and the processing performance of the information processing apparatus 100A can be improved. The access address pattern can be analyzed before the data processing unit 10a and the cache circuit 10b are mounted on the programmable unit 10. It is possible to eliminate the waste of executing the same process in the first program and the second program in duplicate, or to prevent the process from being omitted.

さらに、図14に示す実施形態では、プログラマブル部10の空き領域に応じた最適な性能のキャッシュ制御切替部10cをプログラマブル部10に搭載することができる。また、空き領域の制限により、キャッシュ制御切替部10cがプログラマブル部10にプログラムされない不具合を解消することができる。 Further, in the embodiment shown in FIG. 14, the cache control switching unit 10c having the optimum performance according to the free area of the programmable unit 10 can be mounted on the programmable unit 10. Further, it is possible to solve the problem that the cache control switching unit 10c is not programmed in the programmable unit 10 due to the limitation of the free area.

図15は、情報処理装置の別の実施形態における第2プログラムを実行する環境を構築する処理の一例を示す。図7と同一の要素については、詳細な説明は省略する。図15では、事前準備において、複数のキャッシュ制御切替部を論理合成するステップS11D、S13D、17Dが、図7に対して追加される。また、図7のステップS20、S22、S24、S26の代わりに、ステップS20D、S22D、S24D、S26Dが実行される。その他の処理は、図7と同じである。 FIG. 15 shows an example of a process for constructing an environment for executing a second program in another embodiment of the information processing apparatus. Detailed description of the same elements as in FIG. 7 will be omitted. In FIG. 15, steps S11D, S13D, and 17D for logically synthesizing a plurality of cache control switching units are added to FIG. 7 in advance preparation. Further, steps S20D, S22D, S24D, and S26D are executed instead of steps S20, S22, S24, and S26 in FIG. Other processing is the same as in FIG.

ステップS22D、S24D、S26Dに示す処理は、情報処理装置が実行する制御プログラムにより実行される。すなわち、ステップS22D、S24D、S26Dに示す処理は、情報処理装置の制御方法の一例および情報処理装置の制御プログラムの一例を示す。ステップS20D、S22D、S24D、S26Dを実行する情報処理装置は、図4に示す制御プログラム20eが異なることと、分析部30dがプログラマブル部10に配置されることを除き、図4に示す情報処理装置100Aと同様である。換言すれば、ステップS20D、S22D、S24D、S26Dを実行する情報処理装置は、図4に示す決定部30eが実行する処理が異なることを除き、図4に示す情報処理装置100Aと同様に動作する。 The processes shown in steps S22D, S24D, and S26D are executed by the control program executed by the information processing apparatus. That is, the processes shown in steps S22D, S24D, and S26D show an example of the control method of the information processing device and an example of the control program of the information processing device. The information processing apparatus that executes steps S20D, S22D, S24D, and S26D is the information processing apparatus shown in FIG. 4, except that the control program 20e shown in FIG. 4 is different and the analysis unit 30d is arranged in the programmable unit 10. It is the same as 100A. In other words, the information processing apparatus that executes steps S20D, S22D, S24D, and S26D operates in the same manner as the information processing apparatus 100A shown in FIG. 4, except that the processing executed by the determination unit 30e shown in FIG. 4 is different. ..

ステップS11Dにおいて、標準的なキャッシュヒントとバースト長とを生成するデフォルトのキャッシュ制御切替部が論理合成され、構成情報が生成される。ステップS13Dにおいて、図4に示すデータ処理部10aのメモリアクセスの特徴を分析する分析回路が論理合成され、構成情報が生成される。ステップS14の後、ステップS17Dにおいて、データ処理部10a、キャッシュ制御部10d、キャッシュメモリ部10e、デフォルトのキャッシュ制御切替部および分析回路がプログラマブル部10にプログラムされる。なお、ステップS11D、S13Dは、事前準備のフローにおいて、他の個所に配置されてもよい。事前準備は、情報処理装置100Aで実行されてもよく、他のツールを使用して実行されてもよい。 In step S11D, the default cache control switching unit that generates the standard cache hint and the burst length is logically synthesized, and the configuration information is generated. In step S13D, the analysis circuit that analyzes the characteristics of the memory access of the data processing unit 10a shown in FIG. 4 is logically synthesized, and the configuration information is generated. After step S14, in step S17D, the data processing unit 10a, the cache control unit 10d, the cache memory unit 10e, the default cache control switching unit, and the analysis circuit are programmed in the programmable unit 10. In addition, steps S11D and S13D may be arranged at other places in the flow of advance preparation. The advance preparation may be executed by the information processing apparatus 100A, or may be executed by using another tool.

事前準備が完了した後、ステップS20Dにおいて、情報処理装置100Aは、演算処理装置30に第2プログラムの実行を開始させる。次に、ステップS22Dにおいて、プログラマブル部10にプログラムされた分析部30dは、第2プログラムに呼び出されて動作するデータ処理部10aが出力するメモリアクセス要求の特徴を抽出する。すなわち、分析部30dをプログラマブル部10内に搭載することで、第1プログラムを実行することなく、第2プログラムで呼び出されるデータ処理部10aのメモリアクセスの特徴を直接分析することができる。データ処理部10a(ハードウェア)が出力するメモリアクセス要求を直接分析できるため、メモリアクセス要求の特徴の抽出に掛かる時間を、図7に示した手法に比べて短縮することができる。なお、図11に示すステップS22Aと同様に、分析部30dは、分岐する確率が他より高い分岐先で実行されるメモリアクセスの特徴を抽出してもよい。 After the preparation is completed, in step S20D, the information processing device 100A causes the arithmetic processing unit 30 to start executing the second program. Next, in step S22D, the analysis unit 30d programmed in the programmable unit 10 extracts the characteristics of the memory access request output by the data processing unit 10a which is called and operates by the second program. That is, by mounting the analysis unit 30d in the programmable unit 10, it is possible to directly analyze the characteristics of the memory access of the data processing unit 10a called by the second program without executing the first program. Since the memory access request output by the data processing unit 10a (hardware) can be directly analyzed, the time required for extracting the characteristics of the memory access request can be shortened as compared with the method shown in FIG. 7. As in step S22A shown in FIG. 11, the analysis unit 30d may extract the characteristics of the memory access executed at the branch destination having a higher probability of branching than the others.

次に、ステップS24Dにおいて、決定部30eは、プログラマブル部10上の分析部30dが抽出した特徴に基づいて、キャッシュ制御切替部10cの論理を生成する。なお、図14に示すステップS24Dと同様に、決定部30eは、ステップS22Dで抽出された特徴に基づいて、空き領域にプログラム可能な規模のキャッシュ制御切替部10cの論理を生成してもよい。さらに、分岐する確率が他より高い分岐先でのメモリアクセスの特徴を分析部30dが抽出し、かつ、空き領域にプログラム可能な規模のキャッシュ制御切替部10cの論理を決定部30eが生成してもよい。 Next, in step S24D, the determination unit 30e generates the logic of the cache control switching unit 10c based on the features extracted by the analysis unit 30d on the programmable unit 10. Similar to step S24D shown in FIG. 14, the determination unit 30e may generate the logic of the cache control switching unit 10c of a programmable scale in the free area based on the features extracted in step S22D. Further, the analysis unit 30d extracts the characteristics of the memory access at the branch destination where the probability of branching is higher than the others, and the determination unit 30e generates the logic of the cache control switching unit 10c of a scale programmable in the free area. May be good.

また、図13に示すステップS24Bと同様に、決定部30eは、キャッシュ制御切替部10cの論理を生成する代わりに、予め生成された複数のキャッシュ制御切替部の中から、メモリアクセス効率が他より高くなるキャッシュ制御切替部を選択してもよい。この場合、分岐する確率が他より高い分岐先でのメモリアクセスの特徴を分析部30dが抽出してもよく、空き領域にプログラム可能な規模のキャッシュ制御切替部10cの論理を決定部30eが生成してもよい。さらに、分岐する確率が他より高い分岐先でのメモリアクセスの特徴を分析部30dが抽出し、かつ、空き領域にプログラム可能な規模のキャッシュ制御切替部10cの論理を決定部30eが生成してもよい。 Further, as in step S24B shown in FIG. 13, instead of generating the logic of the cache control switching unit 10c, the determination unit 30e has a higher memory access efficiency than the others from among the plurality of cache control switching units generated in advance. A higher cache control switching unit may be selected. In this case, the analysis unit 30d may extract the characteristics of the memory access at the branch destination having a higher probability of branching than the others, and the determination unit 30e generates the logic of the cache control switching unit 10c of a programmable scale in the free area. You may. Further, the analysis unit 30d extracts the characteristics of the memory access at the branch destination where the probability of branching is higher than the others, and the determination unit 30e generates the logic of the cache control switching unit 10c of a scale programmable in the free area. May be good.

次に、ステップS26Dにおいて、構成制御部30fは、プログラマブル部10にプログラムされたデフォルトのキャッシュ制御切替部を、ステップS24Dで生成されたキャッシュ制御切替部10cに置き換える。そして、情報処理装置100Aは、第2プログラムの実行を継続する。 Next, in step S26D, the configuration control unit 30f replaces the default cache control switching unit programmed in the programmable unit 10 with the cache control switching unit 10c generated in step S24D. Then, the information processing apparatus 100A continues the execution of the second program.

以上、図15に示す実施形態においても、図1から図3に示す実施形態と同様の効果を得ることができる。例えば、データ処理部10aのメモリアクセスの特徴に合わせて、キャッシュ回路10bのキャッシュ効率を最適化することができ、情報処理装置100Aの処理性能を向上することができる。 As described above, even in the embodiment shown in FIG. 15, the same effect as that of the embodiment shown in FIGS. 1 to 3 can be obtained. For example, the cache efficiency of the cache circuit 10b can be optimized according to the characteristics of the memory access of the data processing unit 10a, and the processing performance of the information processing apparatus 100A can be improved.

さらに、図15に示す実施形態では、分析部30dをプログラマブル部10内に搭載することで、第1プログラムを実行することなく、第2プログラムで呼び出されるデータ処理部10aのメモリアクセスの特徴を直接分析することができる。データ処理部10a(ハードウェア)が出力するメモリアクセス要求を直接分析できるため、メモリアクセス要求の特徴の抽出に掛かる時間を、図7による手法に比べて短縮することができる。 Further, in the embodiment shown in FIG. 15, by mounting the analysis unit 30d in the programmable unit 10, the memory access feature of the data processing unit 10a called by the second program is directly characterized without executing the first program. Can be analyzed. Since the memory access request output by the data processing unit 10a (hardware) can be directly analyzed, the time required for extracting the characteristics of the memory access request can be shortened as compared with the method according to FIG.

以上の図1から図10に示す実施形態に関し、さらに以下の付記を開示する。
(付記1)
データを記憶する記憶部と、
前記記憶部が記憶するデータを処理するデータ処理部と、前記データ処理部で使用するデータが格納されるキャッシュメモリ部と、前記データ処理部が前記記憶部から読み出すデータを前記キャッシュメモリ部に格納するかをキャッシュ制御情報に基づいて決定するキャッシュ制御部と、前記データ処理部が発行するメモリアクセス要求に基づいて前記キャッシュ制御情報を生成するキャッシュ制御切替部とがプログラムされるプログラマブル部と、
前記プログラマブル部にプログラムされる前記データ処理部が発行する前記メモリアクセス要求に含まれるアクセスアドレスのパターンを分析する分析部と、
前記分析部が分析した前記アクセスアドレスのパターンに基づいて、前記プログラマブル部にプログラムする前記キャッシュ制御切替部の論理を決定する決定部と、
前記データ処理部、前記キャッシュメモリ部および前記キャッシュ制御部を前記プログラマブル部にプログラムするとともに、前記決定部が決定した前記キャッシュ制御切替部を前記プログラマブル部にプログラムする構成制御部と
を備えることを特徴とする情報処理装置。
(付記2)
前記データ処理部が実行する第1データ処理と等価な第2データ処理を実行する機能を含む処理プログラムを実行する演算処理部を備え、
前記分析部は、前記処理プログラムによる前記第2データ処理の実行により発生する前記記憶部へのアクセスに基づいて前記アクセスアドレスのパターンを分析することを特徴とする付記1記載の情報処理装置。
(付記3)
前記処理プログラムによる前記第2データ処理の実行中に前記分析部による前記アクセスアドレスのパターンの分析が完了した場合、
前記構成制御部は、前記決定部が決定した前記キャッシュ制御切替部を前記プログラマブル部にプログラムし、
前記演算処理部は、前記第2データ処理のうち未実行の処理を、前記第1データ処理の一部として前記データ処理部に実行させることを特徴とする付記2記載の情報処理装置。
(付記4)
前記分析部は、前記プログラマブル部にプログラムされ、
前記構成制御部は、前記データ処理部、前記分析部およびデフォルトのキャッシュ制御切替部を前記プログラマブル部にプログラムし、前記データ処理部が発行する前記メモリアクセス要求に基づいて前記分析部が前記アクセスアドレスのパターンを分析した後、前記デフォルトのキャッシュ制御切替部を、前記決定部が決定した前記キャッシュ制御切替部に置き換えることを特徴とする付記1記載の情報処理装置。
(付記5)
前記データ処理部が実行するデータ処理は、複数のプロセスを含み、
前記分析部は、前記複数のプロセスのうち、実行頻度が他のプロセスよりも高いプロセスによる前記アクセスアドレスのパターンを分析することを特徴とする付記1ないし付記4のいずれか1項記載の情報処理装置。
(付記6)
前記決定部は、前記分析部が分析した前記アクセスアドレスのパターンに基づいて決定した前記キャッシュ制御切替部の構成情報を生成し、
前記構成制御部は、前記決定部が生成した前記キャッシュ制御切替部の構成情報を前記プログラマブル部にプログラムすることを特徴とする付記1ないし付記5のいずれか1項記載の情報処理装置。
(付記7)
前記決定部は、複数種の前記アクセスアドレスのパターンにそれぞれ対応する複数種の前記キャッシュ制御切替部の構成情報のいずれかを、前記分析部が分析した前記アクセスアドレスのパターンに基づいて選択し、
前記構成制御部は、前記決定部が選択した前記キャッシュ制御切替部の構成情報を前記プログラマブル部にプログラムすることを特徴とする付記1ないし付記5のいずれか1項記載の情報処理装置。
(付記8)
前記決定部は、前記分析部が分析した前記アクセスアドレスのパターンに基づいて、前記プログラマブル部の空き領域にプログラム可能な前記キャッシュ制御切替部の論理を決定することを特徴とする付記1ないし付記7のいずれか1項記載の情報処理装置。
(付記9)
前記キャッシュ制御切替部が出力する前記キャッシュ制御情報は、データを前記記憶部に書き込む代わりに前記キャッシュメモリ部に格納するか否かを示す第1情報を含み、
前記キャッシュ制御部は、前記第1情報に応じて、データを前記記憶部または前記キャッシュメモリ部に書き込むことを特徴とする付記1ないし付記8のいずれか1項記載の情報処理装置。
(付記10)
前記キャッシュ制御切替部が出力する前記キャッシュ制御情報は、前記データ処理部が発行する前記メモリアクセス要求に対応して転送されるデータの長さを示す第2情報を含み、
前記キャッシュ制御部は、前記第2情報に応じた長さのデータを前記記憶部から読み出すことを特徴とする付記1ないし付記9のいずれか1項記載の情報処理装置。
(付記11)
データを記憶する記憶部とプログラマブル部を備え、前記プログラマブル部に、前記記憶部が記憶するデータを処理するデータ処理部と、前記データ処理部で使用するデータが格納されるキャッシュメモリ部と、前記データ処理部が前記記憶部から読み出すデータを前記キャッシュメモリ部に格納するかをキャッシュ制御情報に基づいて決定するキャッシュ制御部と、前記データ処理部が発行するメモリアクセス要求に基づいて前記キャッシュ制御情報を生成するキャッシュ制御切替部がプログラムされる情報処理装置の制御方法において、
前記情報処理装置が、
前記プログラマブル部にプログラムされる前記データ処理部が発行する前記メモリアクセス要求に含まれるアクセスアドレスのパターンを分析し、
分析した前記アクセスアドレスのパターンに基づいて、前記プログラマブル部にプログラムする前記キャッシュ制御切替部の論理を決定し、
前記データ処理部、前記キャッシュメモリ部および前記キャッシュ制御部を前記プログラマブル部にプログラムするとともに、決定した前記キャッシュ制御切替部を前記プログラマブル部にプログラムすることを特徴とする情報処理装置の制御方法。
(付記12)
データを記憶する記憶部とプログラマブル部を備え、前記プログラマブル部に、前記記憶部が記憶するデータを処理するデータ処理部と、前記データ処理部で使用するデータが格納されるキャッシュメモリ部と、前記データ処理部が前記記憶部から読み出すデータを前記キャッシュメモリ部に格納するかをキャッシュ制御情報に基づいて決定するキャッシュ制御部と、前記データ処理部が発行するメモリアクセス要求に基づいて前記キャッシュ制御情報を生成するキャッシュ制御切替部がプログラムされる情報処理装置の制御プログラムにおいて、
前記プログラマブル部にプログラムされる前記データ処理部が発行する前記メモリアクセス要求に含まれるアクセスアドレスのパターンを分析し、
分析した前記アクセスアドレスのパターンに基づいて、前記プログラマブル部にプログラムする前記キャッシュ制御切替部の論理を決定し、
前記データ処理部、前記キャッシュメモリ部および前記キャッシュ制御部を前記プログラマブル部にプログラムするとともに、決定した前記キャッシュ制御切替部を前記プログラマブル部にプログラムする
処理を、前記情報処理装置に実行させるための制御プログラム。
(付記13)
データを記憶する記憶部とプログラマブル部を備え、前記プログラマブル部に、前記記憶部が記憶するデータを処理するデータ処理部と、前記データ処理部で使用するデータが格納されるキャッシュメモリ部と、前記データ処理部が前記記憶部から読み出すデータを前記キャッシュメモリ部に格納するかをキャッシュ制御情報に基づいて決定するキャッシュ制御部と、前記データ処理部が発行するメモリアクセス要求に基づいて前記キャッシュ制御情報を生成するキャッシュ制御切替部がプログラムされる情報処理装置の制御プログラムを記録した記録媒体において、
前記プログラマブル部にプログラムされる前記データ処理部が発行する前記メモリアクセス要求に含まれるアクセスアドレスのパターンを分析し、
分析した前記アクセスアドレスのパターンに基づいて、前記プログラマブル部にプログラムする前記キャッシュ制御切替部の論理を決定し、
前記データ処理部、前記キャッシュメモリ部および前記キャッシュ制御部を前記プログラマブル部にプログラムするとともに、が決定した前記キャッシュ制御切替部を前記プログラマブル部にプログラムする
処理を、前記情報処理装置に実行させるための制御プログラムを記録した記録媒体。
The following additional notes will be further disclosed with respect to the above embodiments shown in FIGS. 1 to 10.
(Appendix 1)
A storage unit that stores data and
A data processing unit that processes data stored in the storage unit, a cache memory unit that stores data used in the data processing unit, and data read from the storage unit by the data processing unit are stored in the cache memory unit. A programmable unit in which a cache control unit that determines whether to use the cache control information is programmed, a cache control switching unit that generates the cache control information based on a memory access request issued by the data processing unit, and a programmable unit are programmed.
An analysis unit that analyzes the pattern of access addresses included in the memory access request issued by the data processing unit programmed in the programmable unit, and an analysis unit.
A determination unit that determines the logic of the cache control switching unit programmed into the programmable unit based on the access address pattern analyzed by the analysis unit.
The data processing unit, the cache memory unit, and the cache control unit are programmed into the programmable unit, and the cache control switching unit determined by the determination unit is programmed into the programmable unit. Information processing device.
(Appendix 2)
It is provided with an arithmetic processing unit that executes a processing program including a function of executing a second data processing equivalent to the first data processing executed by the data processing unit.
The information processing apparatus according to Appendix 1, wherein the analysis unit analyzes the pattern of the access address based on the access to the storage unit generated by the execution of the second data processing by the processing program.
(Appendix 3)
When the analysis of the access address pattern by the analysis unit is completed during the execution of the second data processing by the processing program,
The configuration control unit programs the cache control switching unit determined by the determination unit in the programmable unit.
The information processing apparatus according to Appendix 2, wherein the arithmetic processing unit causes the data processing unit to execute unexecuted processing of the second data processing as a part of the first data processing.
(Appendix 4)
The analysis unit is programmed into the programmable unit.
The configuration control unit programs the data processing unit, the analysis unit, and the default cache control switching unit in the programmable unit, and the analysis unit determines the access address based on the memory access request issued by the data processing unit. The information processing apparatus according to Appendix 1, wherein the default cache control switching unit is replaced with the cache control switching unit determined by the determination unit after analyzing the pattern.
(Appendix 5)
The data processing executed by the data processing unit includes a plurality of processes.
The information processing according to any one of Supplementary note 1 to Supplementary note 4, wherein the analysis unit analyzes the pattern of the access address by a process whose execution frequency is higher than that of the other processes among the plurality of processes. apparatus.
(Appendix 6)
The determination unit generates configuration information of the cache control switching unit determined based on the pattern of the access address analyzed by the analysis unit.
The information processing device according to any one of Supplementary note 1 to Supplementary note 5, wherein the configuration control unit programs the configuration information of the cache control switching unit generated by the determination unit into the programmable unit.
(Appendix 7)
The determination unit selects one of the configuration information of the plurality of types of the cache control switching unit corresponding to each of the plurality of types of the access address patterns based on the access address pattern analyzed by the analysis unit.
The information processing device according to any one of Supplementary note 1 to Supplementary note 5, wherein the configuration control unit programs the configuration information of the cache control switching unit selected by the determination unit into the programmable unit.
(Appendix 8)
Addendum 1 to 7 are characterized in that the determination unit determines the logic of the cache control switching unit programmable in the free area of the programmable unit based on the pattern of the access address analyzed by the analysis unit. The information processing apparatus according to any one of the above items.
(Appendix 9)
The cache control information output by the cache control switching unit includes first information indicating whether or not to store the data in the cache memory unit instead of writing the data in the storage unit.
The information processing apparatus according to any one of Supplementary note 1 to Supplementary note 8, wherein the cache control unit writes data to the storage unit or the cache memory unit according to the first information.
(Appendix 10)
The cache control information output by the cache control switching unit includes second information indicating the length of data transferred in response to the memory access request issued by the data processing unit.
The information processing device according to any one of Supplementary note 1 to Supplementary note 9, wherein the cache control unit reads data having a length corresponding to the second information from the storage unit.
(Appendix 11)
A storage unit for storing data and a programmable unit are provided, and the programmable unit includes a data processing unit for processing data stored in the storage unit, a cache memory unit for storing data used in the data processing unit, and the above-mentioned The cache control unit that determines whether the data processing unit stores the data read from the storage unit in the cache memory unit based on the cache control information, and the cache control information based on the memory access request issued by the data processing unit. In the control method of the information processing device in which the cache control switching unit is programmed to generate
The information processing device
The pattern of the access address included in the memory access request issued by the data processing unit programmed in the programmable unit is analyzed.
Based on the analyzed access address pattern, the logic of the cache control switching unit to be programmed in the programmable unit is determined.
A control method for an information processing apparatus, wherein the data processing unit, the cache memory unit, and the cache control unit are programmed into the programmable unit, and the determined cache control switching unit is programmed into the programmable unit.
(Appendix 12)
A storage unit for storing data and a programmable unit are provided, and the programmable unit includes a data processing unit for processing data stored in the storage unit, a cache memory unit for storing data used in the data processing unit, and the above-mentioned The cache control unit that determines whether the data processing unit stores the data read from the storage unit in the cache memory unit based on the cache control information, and the cache control information based on the memory access request issued by the data processing unit. In the control program of the information processing device in which the cache control switching unit is programmed to generate
The pattern of the access address included in the memory access request issued by the data processing unit programmed in the programmable unit is analyzed.
Based on the analyzed access address pattern, the logic of the cache control switching unit to be programmed in the programmable unit is determined.
Control for causing the information processing apparatus to execute a process of programming the data processing unit, the cache memory unit, and the cache control unit in the programmable unit, and programming the determined cache control switching unit in the programmable unit. program.
(Appendix 13)
A storage unit for storing data and a programmable unit are provided, and the programmable unit includes a data processing unit for processing data stored in the storage unit, a cache memory unit for storing data used in the data processing unit, and the above-mentioned The cache control unit that determines whether the data processing unit stores the data read from the storage unit in the cache memory unit based on the cache control information, and the cache control information based on the memory access request issued by the data processing unit. In the recording medium on which the control program of the information processing device in which the cache control switching unit is programmed is recorded.
The pattern of the access address included in the memory access request issued by the data processing unit programmed in the programmable unit is analyzed.
Based on the analyzed access address pattern, the logic of the cache control switching unit to be programmed in the programmable unit is determined.
To have the information processing apparatus execute a process of programming the data processing unit, the cache memory unit, and the cache control unit in the programmable unit, and programming the cache control switching unit determined by the program in the programmable unit. A recording medium on which a control program is recorded.

以上の詳細な説明により、実施形態の特徴点および利点は明らかになるであろう。これは、特許請求の範囲がその精神および権利範囲を逸脱しない範囲で前述のような実施形態の特徴点および利点にまで及ぶことを意図するものである。また、当該技術分野において通常の知識を有する者であれば、あらゆる改良および変更に容易に想到できるはずである。したがって、発明性を有する実施形態の範囲を前述したものに限定する意図はなく、実施形態に開示された範囲に含まれる適当な改良物および均等物に拠ることも可能である。 The above detailed description will clarify the features and advantages of the embodiments. It is intended that the claims extend to the features and advantages of the embodiments as described above, without departing from their spirit and scope of rights. Also, anyone with ordinary knowledge in the art should be able to easily come up with any improvements or changes. Therefore, there is no intention to limit the scope of the embodiments having invention to those described above, and it is possible to rely on suitable improvements and equivalents included in the scope disclosed in the embodiments.

1…プログラマブル部;1a…データ処理部;1b…キャッシュ回路;1c…キャッシュ制御切替部;1d…キャッシュ制御部;1e…キャッシュメモリ部;2…記憶部;2a…データ領域;2b…プログラム領域;2c…構成情報領域;2d…第1プログラム;2e…第2プログラム;2f…制御プログラム;3…演算処理装置;3a…演算処理部;3b…分析部;3c…決定部;3d…構成制御部;4…記録媒体;10…プログラマブル部;10a…データ処理部;10b…キャッシュ回路;10c…キャッシュ制御切替部;10d…キャッシュ制御部;10e…キャッシュメモリ部;20…メインメモリ;20a…データ領域;20b…プログラム領域;20c…構成情報領域;20d…プログラム;20e…制御プログラム;30…演算処理装置;30a…CPUコア;30b…LLC;30c…MMU;30d…分析部;30e…決定部;30f…構成制御部;40…入出力インタフェース;50…HDD;60…通信インタフェース;70…記録媒体;100、100A…情報処理装置;BUS1、BUS2、BUS3…バス;CINF…キャッシュ制御情報;NW…ネットワーク;TBL…特徴抽出テーブル
1 ... Programmable unit; 1a ... Data processing unit; 1b ... Cache circuit; 1c ... Cache control switching unit; 1d ... Cache control unit; 1e ... Cache memory unit; 2 ... Storage unit; 2a ... Data area; 2b ... Program area; 2c ... configuration information area; 2d ... first program; 2e ... second program; 2f ... control program; 3 ... arithmetic processing unit; 3a ... arithmetic processing unit; 3b ... analysis unit; 3c ... determination unit; 3d ... configuration control unit 4 ... Recording medium; 10 ... Programmable unit; 10a ... Data processing unit; 10b ... Cache circuit; 10c ... Cache control switching unit; 10d ... Cache control unit; 10e ... Cache memory unit; 20 ... Main memory; 20a ... Data area 20b ... program area; 20c ... configuration information area; 20d ... program; 20e ... control program; 30 ... arithmetic processing unit; 30a ... CPU core; 30b ... LLC; 30c ... MMU; 30d ... analysis unit; 30e ... determination unit; 30f ... Configuration control unit; 40 ... Input / output interface; 50 ... HDD; 60 ... Communication interface; 70 ... Recording medium; 100, 100A ... Information processing device; BUS1, BUS2, BUS3 ... Bus; CPU ... Cache control information; NW ... Network; TBL ... Feature extraction table

Claims (10)

データを記憶する記憶部と、
前記記憶部が記憶するデータを処理するデータ処理部と、前記データ処理部で使用するデータが格納されるキャッシュメモリ部と、前記データ処理部が前記記憶部から読み出すデータを前記キャッシュメモリ部に格納するかをキャッシュ制御情報に基づいて決定するキャッシュ制御部と、前記データ処理部が発行するメモリアクセス要求に基づいて前記キャッシュ制御情報を生成するキャッシュ制御切替部とがプログラムされるプログラマブル部と、
前記プログラマブル部にプログラムされる前記データ処理部が発行する前記メモリアクセス要求に含まれるアクセスアドレスのパターンを分析する分析部と、
前記分析部が分析した前記アクセスアドレスのパターンに基づいて、前記プログラマブル部にプログラムする前記キャッシュ制御切替部の論理を決定する決定部と、
前記データ処理部、前記キャッシュメモリ部および前記キャッシュ制御部を前記プログラマブル部にプログラムするとともに、前記決定部が決定した前記キャッシュ制御切替部を前記プログラマブル部にプログラムする構成制御部と
を備えることを特徴とする情報処理装置。
A storage unit that stores data and
A data processing unit that processes data stored in the storage unit, a cache memory unit that stores data used in the data processing unit, and data read from the storage unit by the data processing unit are stored in the cache memory unit. A programmable unit in which a cache control unit that determines whether to use the cache control information is programmed, a cache control switching unit that generates the cache control information based on a memory access request issued by the data processing unit, and a programmable unit are programmed.
An analysis unit that analyzes the pattern of access addresses included in the memory access request issued by the data processing unit programmed in the programmable unit, and an analysis unit.
A determination unit that determines the logic of the cache control switching unit programmed into the programmable unit based on the access address pattern analyzed by the analysis unit.
The data processing unit, the cache memory unit, and the cache control unit are programmed into the programmable unit, and the cache control switching unit determined by the determination unit is programmed into the programmable unit. Information processing device.
前記データ処理部が実行する第1データ処理と等価な第2データ処理を実行する機能を含む処理プログラムを実行する演算処理部を備え、
前記分析部は、前記処理プログラムによる前記第2データ処理の実行により発生する前記記憶部へのアクセスに基づいて前記アクセスアドレスのパターンを分析することを特徴とする請求項1記載の情報処理装置。
It is provided with an arithmetic processing unit that executes a processing program including a function of executing a second data processing equivalent to the first data processing executed by the data processing unit.
The information processing apparatus according to claim 1, wherein the analysis unit analyzes the pattern of the access address based on the access to the storage unit generated by the execution of the second data processing by the processing program.
前記処理プログラムによる前記第2データ処理の実行中に前記分析部による前記アクセスアドレスのパターンの分析が完了した場合、
前記構成制御部は、前記決定部が決定した前記キャッシュ制御切替部を前記プログラマブル部にプログラムし、
前記演算処理部は、前記第2データ処理のうち未実行の処理を、前記第1データ処理の一部として前記データ処理部に実行させることを特徴とする請求項2記載の情報処理装置。
When the analysis of the access address pattern by the analysis unit is completed during the execution of the second data processing by the processing program,
The configuration control unit programs the cache control switching unit determined by the determination unit in the programmable unit.
The information processing apparatus according to claim 2, wherein the arithmetic processing unit causes the data processing unit to execute unexecuted processing of the second data processing as a part of the first data processing.
前記分析部は、前記プログラマブル部にプログラムされ、
前記構成制御部は、前記データ処理部、前記分析部およびデフォルトのキャッシュ制御切替部を前記プログラマブル部にプログラムし、前記データ処理部が発行する前記メモリアクセス要求に基づいて前記分析部が前記アクセスアドレスのパターンを分析した後、前記デフォルトのキャッシュ制御切替部を、前記決定部が決定した前記キャッシュ制御切替部に置き換えることを特徴とする請求項1記載の情報処理装置。
The analysis unit is programmed into the programmable unit.
The configuration control unit programs the data processing unit, the analysis unit, and the default cache control switching unit in the programmable unit, and the analysis unit determines the access address based on the memory access request issued by the data processing unit. The information processing apparatus according to claim 1, wherein the default cache control switching unit is replaced with the cache control switching unit determined by the determination unit after analyzing the pattern.
前記データ処理部が実行するデータ処理は、複数のプロセスを含み、
前記分析部は、前記複数のプロセスのうち、実行頻度が他のプロセスよりも高いプロセスによる前記アクセスアドレスのパターンを分析することを特徴とする請求項1ないし請求項4のいずれか1項記載の情報処理装置。
The data processing executed by the data processing unit includes a plurality of processes.
The method according to any one of claims 1 to 4, wherein the analysis unit analyzes the pattern of the access address by a process whose execution frequency is higher than that of the other processes among the plurality of processes. Information processing device.
前記決定部は、前記分析部が分析した前記アクセスアドレスのパターンに基づいて決定した前記キャッシュ制御切替部の構成情報を生成し、
前記構成制御部は、前記決定部が生成した前記キャッシュ制御切替部の構成情報を前記プログラマブル部にプログラムすることを特徴とする請求項1ないし請求項5のいずれか1項記載の情報処理装置。
The determination unit generates configuration information of the cache control switching unit determined based on the pattern of the access address analyzed by the analysis unit.
The information processing device according to any one of claims 1 to 5, wherein the configuration control unit programs the configuration information of the cache control switching unit generated by the determination unit into the programmable unit.
前記決定部は、複数種の前記アクセスアドレスのパターンにそれぞれ対応する複数種の前記キャッシュ制御切替部の構成情報のいずれかを、前記分析部が分析した前記アクセスアドレスのパターンに基づいて選択し、
前記構成制御部は、前記決定部が選択した前記キャッシュ制御切替部の構成情報を前記プログラマブル部にプログラムすることを特徴とする請求項1ないし請求項5のいずれか1項記載の情報処理装置。
The determination unit selects one of the configuration information of the plurality of types of the cache control switching unit corresponding to each of the plurality of types of the access address patterns based on the access address pattern analyzed by the analysis unit.
The information processing device according to any one of claims 1 to 5, wherein the configuration control unit programs the configuration information of the cache control switching unit selected by the determination unit into the programmable unit.
前記決定部は、前記分析部が分析した前記アクセスアドレスのパターンに基づいて、前記プログラマブル部の空き領域にプログラム可能な前記キャッシュ制御切替部の論理を決定することを特徴とする請求項1ないし請求項7のいずれか1項記載の情報処理装置。 Claim 1 to claim 1, wherein the determination unit determines the logic of the cache control switching unit programmable in a free area of the programmable unit based on the pattern of the access address analyzed by the analysis unit. Item 6. The information processing apparatus according to any one of Item 7. データを記憶する記憶部とプログラマブル部を備え、前記プログラマブル部に、前記記憶部が記憶するデータを処理するデータ処理部と、前記データ処理部で使用するデータが格納されるキャッシュメモリ部と、前記データ処理部が前記記憶部から読み出すデータを前記キャッシュメモリ部に格納するかをキャッシュ制御情報に基づいて決定するキャッシュ制御部と、前記データ処理部が発行するメモリアクセス要求に基づいて前記キャッシュ制御情報を生成するキャッシュ制御切替部がプログラムされる情報処理装置の制御方法において、
前記情報処理装置が、
前記プログラマブル部にプログラムされる前記データ処理部が発行する前記メモリアクセス要求に含まれるアクセスアドレスのパターンを分析し、
分析した前記アクセスアドレスのパターンに基づいて、前記プログラマブル部にプログラムする前記キャッシュ制御切替部の論理を決定し、
前記データ処理部、前記キャッシュメモリ部および前記キャッシュ制御部を前記プログラマブル部にプログラムするとともに、決定した前記キャッシュ制御切替部を前記プログラマブル部にプログラムすることを特徴とする情報処理装置の制御方法。
A storage unit for storing data and a programmable unit are provided, and the programmable unit includes a data processing unit for processing data stored in the storage unit, a cache memory unit for storing data used in the data processing unit, and the above-mentioned The cache control unit that determines whether the data processing unit stores the data read from the storage unit in the cache memory unit based on the cache control information, and the cache control information based on the memory access request issued by the data processing unit. In the control method of the information processing device in which the cache control switching unit is programmed to generate
The information processing device
The pattern of the access address included in the memory access request issued by the data processing unit programmed in the programmable unit is analyzed.
Based on the analyzed access address pattern, the logic of the cache control switching unit to be programmed in the programmable unit is determined.
A control method for an information processing apparatus, wherein the data processing unit, the cache memory unit, and the cache control unit are programmed into the programmable unit, and the determined cache control switching unit is programmed into the programmable unit.
データを記憶する記憶部とプログラマブル部を備え、前記プログラマブル部に、前記記憶部が記憶するデータを処理するデータ処理部と、前記データ処理部で使用するデータが格納されるキャッシュメモリ部と、前記データ処理部が前記記憶部から読み出すデータを前記キャッシュメモリ部に格納するかをキャッシュ制御情報に基づいて決定するキャッシュ制御部と、前記データ処理部が発行するメモリアクセス要求に基づいて前記キャッシュ制御情報を生成するキャッシュ制御切替部がプログラムされる情報処理装置の制御プログラムにおいて、
前記プログラマブル部にプログラムされる前記データ処理部が発行する前記メモリアクセス要求に含まれるアクセスアドレスのパターンを分析し、
分析した前記アクセスアドレスのパターンに基づいて、前記プログラマブル部にプログラムする前記キャッシュ制御切替部の論理を決定し、
前記データ処理部、前記キャッシュメモリ部および前記キャッシュ制御部を前記プログラマブル部にプログラムするとともに、決定した前記キャッシュ制御切替部を前記プログラマブル部にプログラムする
処理を、前記情報処理装置に実行させるための制御プログラム。
A storage unit for storing data and a programmable unit are provided, and the programmable unit includes a data processing unit for processing data stored in the storage unit, a cache memory unit for storing data used in the data processing unit, and the above-mentioned The cache control unit that determines whether the data processing unit stores the data read from the storage unit in the cache memory unit based on the cache control information, and the cache control information based on the memory access request issued by the data processing unit. In the control program of the information processing device in which the cache control switching unit is programmed to generate
The pattern of the access address included in the memory access request issued by the data processing unit programmed in the programmable unit is analyzed.
Based on the analyzed access address pattern, the logic of the cache control switching unit to be programmed in the programmable unit is determined.
Control for causing the information processing apparatus to execute a process of programming the data processing unit, the cache memory unit, and the cache control unit in the programmable unit, and programming the determined cache control switching unit in the programmable unit. program.
JP2017047223A 2017-03-13 2017-03-13 Information processing device, control method of information processing device, and control program of information processing device Active JP6828528B2 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2017047223A JP6828528B2 (en) 2017-03-13 2017-03-13 Information processing device, control method of information processing device, and control program of information processing device
PCT/JP2018/004181 WO2018168264A1 (en) 2017-03-13 2018-02-07 Information processing device, control method of information processing device, and control program of information processing device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017047223A JP6828528B2 (en) 2017-03-13 2017-03-13 Information processing device, control method of information processing device, and control program of information processing device

Publications (2)

Publication Number Publication Date
JP2018151827A JP2018151827A (en) 2018-09-27
JP6828528B2 true JP6828528B2 (en) 2021-02-10

Family

ID=63523586

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017047223A Active JP6828528B2 (en) 2017-03-13 2017-03-13 Information processing device, control method of information processing device, and control program of information processing device

Country Status (2)

Country Link
JP (1) JP6828528B2 (en)
WO (1) WO2018168264A1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116149226B (en) * 2023-02-22 2023-11-10 山东中安电力科技有限公司 Switch cabinet remote control system based on data analysis

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002140234A (en) * 2000-11-02 2002-05-17 Hitachi Ltd Cache device
JP2010003042A (en) * 2008-06-19 2010-01-07 Koyo Electronics Ind Co Ltd Multi-cpu system and programmable controller
KR102147356B1 (en) * 2013-09-30 2020-08-24 삼성전자 주식회사 Cache memory system and operating method for the same

Also Published As

Publication number Publication date
WO2018168264A1 (en) 2018-09-20
JP2018151827A (en) 2018-09-27

Similar Documents

Publication Publication Date Title
JP6381541B2 (en) Methods, circuit configurations, integrated circuit devices, program products for processing instructions in a data processing system (conversion management instructions for updating address translation data structures in remote processing nodes)
US7565510B2 (en) Microprocessor with a register selectively storing unaligned load instructions and control method thereof
JP4085389B2 (en) Multiprocessor system, consistency control device and consistency control method in multiprocessor system
KR20120123127A (en) Method and apparatus to facilitate shared pointers in a heterogeneous platform
CN114580344B (en) Test excitation generation method, verification system and related equipment
US20080086598A1 (en) System and method for establishing cache priority for critical data structures of an application
TWI514156B (en) Speculative cache modification
KR20120049806A (en) Prefetch instruction
GB2507759A (en) Hierarchical cache with a first level data cache which can access a second level instruction cache or a third level unified cache
JP5625809B2 (en) Arithmetic processing apparatus, information processing apparatus and control method
JP2009528612A (en) Data processing system and data and / or instruction prefetch method
JP2010531498A (en) Method, performance monitor, and system for processor performance monitoring
WO2023124304A1 (en) Chip cache system, data processing method, device, storage medium, and chip
CN114238167A (en) Information prefetching method, processor and electronic equipment
JP2009020696A (en) Information proceing apparatus and system
US6507895B1 (en) Method and apparatus for access demarcation
JP2001195304A (en) Cache storage device
JP5278538B2 (en) Compilation system, compilation method, and compilation program
JP6828528B2 (en) Information processing device, control method of information processing device, and control program of information processing device
US8661169B2 (en) Copying data to a cache using direct memory access
JP2003140965A (en) Distributed shared memory type parallel computer and instruction scheduling method
US10817433B2 (en) Page tables for granular allocation of memory pages
CN115033500A (en) Cache system simulation method, device, equipment and storage medium
JP2009020695A (en) Information processing apparatus and system
US9411724B2 (en) Method and apparatus for a partial-address select-signal generator with address shift

Legal Events

Date Code Title Description
RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7426

Effective date: 20170803

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20170803

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20170804

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20180214

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20180219

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20180219

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20191212

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: 20201222

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210104

R150 Certificate of patent or registration of utility model

Ref document number: 6828528

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150