JP2018181162A - Information processor, information processing method, and information processing system - Google Patents

Information processor, information processing method, and information processing system Download PDF

Info

Publication number
JP2018181162A
JP2018181162A JP2017083156A JP2017083156A JP2018181162A JP 2018181162 A JP2018181162 A JP 2018181162A JP 2017083156 A JP2017083156 A JP 2017083156A JP 2017083156 A JP2017083156 A JP 2017083156A JP 2018181162 A JP2018181162 A JP 2018181162A
Authority
JP
Japan
Prior art keywords
memory
memory access
information
access
processing
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.)
Pending
Application number
JP2017083156A
Other languages
Japanese (ja)
Inventor
貴史 三吉
Takashi Miyoshi
貴史 三吉
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 JP2017083156A priority Critical patent/JP2018181162A/en
Priority to PCT/JP2018/008625 priority patent/WO2018193736A1/en
Publication of JP2018181162A publication Critical patent/JP2018181162A/en
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • 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/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory

Abstract

PROBLEM TO BE SOLVED: To provide an information processor capable of recording and analyzing a pattern of memory access made by a user circuit.SOLUTION: A tracking unit is arranged between a user circuit and a system memory in an FPGA which executes part of application processing, a header information extraction unit of the tracking unit extracts access information in memory access from the user circuit to the memory access, a registration control unit of the tracking unit registers, for each application, a pattern of the memory access based on the extracted access information, and in a case where the memory access from the user circuit has been detected, a detection control unit of the tracking unit determines whether or not the pattern of the memory access based on the extracted access information and a registered pattern of memory access corresponding to the application agree with each other, thereby making it possible to record and analyze the pattern of the memory access by the user circuit.SELECTED DRAWING: Figure 2

Description

本発明は、情報処理装置、情報処理方法、及び情報処理システムに関する。   The present invention relates to an information processing apparatus, an information processing method, and an information processing system.

CPU(Central Processing Unit)と、回路情報に基づいてプログラム可能な論理回路の構成を変更可能なFPGA(Field Programmable Gate Array)とを有し、CPUが行う処理の一部をFPGAにオフロードして処理を高速化するシステムがある。このようなシステムにおいて、システムメモリは、CPUとFPGAが共有し、CPUとFPGA間のデータ通信等がシステムメモリを介して行われる。   It has CPU (Central Processing Unit) and FPGA (Field Programmable Gate Array) that can change the configuration of programmable logic circuit based on circuit information, and offloads part of processing performed by CPU to FPGA There is a system that speeds up processing. In such a system, the system memory is shared by the CPU and the FPGA, and data communication between the CPU and the FPGA is performed via the system memory.

特開2001−325150号公報JP 2001-325150 A 特開2006−11692号公報JP, 2006-11692, A

FPGAは、アプリケーションの処理を行うユーザ回路を有し、各々のユーザ回路がアクセスできるシステムメモリの領域は管理されている。そして、ユーザ回路の誤動作や悪意あるアクセス(不正アクセス)で、システムメモリの他の領域へアクセスしようとした場合、そのアクセスは抑制される。   The FPGA has user circuits that process applications, and the area of system memory to which each user circuit can access is managed. When an attempt is made to access another area of the system memory due to a malfunction or malicious access (illegal access) of the user circuit, the access is suppressed.

しかしながら、従来の方式では、ユーザ回路がアクセスできるシステムメモリの領域内であれば、ユーザ回路によるメモリアクセスのパタンが通常とは異なるパタンであったとしても、異常動作として検出することができなかった。1つの側面では、本発明の目的は、ユーザ回路によるメモリアクセスのパタンの記録や分析を行うことができる情報処理装置を提供することにある。   However, in the conventional method, within the area of the system memory to which the user circuit can access, even if the pattern of the memory access by the user circuit is different from the normal pattern, it can not be detected as an abnormal operation. . In one aspect, it is an object of the present invention to provide an information processing apparatus capable of recording and analyzing a memory access pattern by a user circuit.

情報処理装置の一態様は、アプリケーションの処理の一部を実行する処理回路とメモリとの間に配置され、処理回路からメモリへのメモリアクセスにおけるアクセス情報を抽出する情報抽出部と、アプリケーション毎に、処理回路からメモリへの第1のメモリアクセスで抽出されるアクセス情報に基づいてメモリアクセスのパタンを登録する登録部と、処理回路からメモリへの第2のメモリアクセスを検出した場合、第2のメモリアクセスで抽出されるアクセス情報に基づくメモリアクセスのパタンと、第2のメモリアクセスを行うアプリケーションに対応する登録したメモリアクセスのパタンとが一致するか否かを判定する判定部とを有する。   One aspect of the information processing apparatus is disposed between a processing circuit that executes a part of processing of an application and a memory, and an information extraction unit that extracts access information in memory access from the processing circuit to the memory; A registration unit for registering a memory access pattern based on access information extracted by the processing circuit from the first memory access to the memory, and a second memory access from the processing circuit to the memory; And a determination unit that determines whether or not the memory access pattern based on the access information extracted by the memory access according to and the registered memory access pattern corresponding to the application that performs the second memory access match.

発明の一態様においては、アプリケーションの処理の一部を実行する処理回路によるメモリアクセスのパタンの記録や分析を行うことが可能な情報処理装置を提供することができる。   In one aspect of the present invention, it is possible to provide an information processing apparatus capable of recording and analyzing a memory access pattern by a processing circuit that executes part of application processing.

図1は、本発明の実施形態における情報処理システムの構成例を示す図である。FIG. 1 is a diagram showing an exemplary configuration of an information processing system according to an embodiment of the present invention. 図2は、本実施形態におけるトラッキング部の構成例を示す図である。FIG. 2 is a view showing a configuration example of the tracking unit in the present embodiment. 図3は、本実施形態におけるメモリアクセスパケットのフォーマットの一例を示す図である。FIG. 3 is a view showing an example of the format of a memory access packet in the present embodiment. 図4は、本実施形態におけるパタンテーブルを説明する図である。FIG. 4 is a diagram for explaining a pattern table in the present embodiment. 図5は、本実施形態における情報処理システムの動作例を示す図である。FIG. 5 is a diagram showing an operation example of the information processing system in the present embodiment. 図6は、本実施形態における情報処理システムの動作例を示す図である。FIG. 6 is a diagram showing an operation example of the information processing system in the present embodiment. 図7は、本実施形態における情報処理システムの他の構成例を示す図である。FIG. 7 is a diagram showing another configuration example of the information processing system in the present embodiment.

以下、本発明の実施形態を図面に基づいて説明する。
図1は、本発明の一実施形態における情報処理システムの構成例を示すブロック図である。本実施形態における情報処理システムは、CPU(Central Processing Unit)10、システムメモリ20、及びFPGA(Field Programmable Gate Array)30を有する。
Hereinafter, embodiments of the present invention will be described based on the drawings.
FIG. 1 is a block diagram showing an exemplary configuration of an information processing system according to an embodiment of the present invention. The information processing system in the present embodiment includes a central processing unit (CPU) 10, a system memory 20, and a field programmable gate array (FPGA) 30.

CPU10は、CPUコア11A、11B、メモリ管理部(MMU)12、及びIOメモリ管理部(IOMMU)13を有する。CPU10は、演算処理装置の一例である。CPUコア11A、11Bは、システムメモリ20等から読み出したプログラム(アプリケーション等)に応じた処理を実行する。なお、図1に示した例では2つのCPUコア11A、11Bを有する例を示しているが、これに限定されるものではなく、CPU10が有するCPUコア11の数は任意である。   The CPU 10 includes CPU cores 11A and 11B, a memory management unit (MMU) 12, and an IO memory management unit (IOMMU) 13. The CPU 10 is an example of an arithmetic processing unit. The CPU cores 11A and 11B execute processing according to a program (application or the like) read from the system memory 20 or the like. Although the example shown in FIG. 1 shows an example having two CPU cores 11A and 11B, the present invention is not limited to this, and the number of CPU cores 11 that the CPU 10 has is arbitrary.

メモリ管理部(MMU)12は、システムメモリ20に対するアクセス等の制御を行い、例えば仮想メモリ空間の論理アドレスから物理アドレスへの変換やCPU10とシステムメモリ20との間のデータ通信を行う。IOメモリ管理部(IOMMU)13は、IO用(入出力デバイス用)のメモリ空間を管理するものであり、例えば仮想メモリ空間の論理アドレスからIOデバイスに割り当てられたアドレスへの変換やCPU10とFPGA30との間のデータ通信を行う。   The memory management unit (MMU) 12 controls access to the system memory 20 and the like, and performs, for example, conversion from a logical address of a virtual memory space to a physical address and data communication between the CPU 10 and the system memory 20. The IO memory management unit (IOMMU) 13 manages a memory space for IO (for input / output devices), and converts, for example, a logical address of a virtual memory space to an address assigned to an IO device, the CPU 10 and the FPGA 30 Perform data communication with each other.

システムメモリ20は、オペレーティングシステム(OS)やアプリケーション等のプログラムやデータ等を記憶するメモリである。システムメモリ20には、例えばカーネル等が格納されるカーネル領域21や、CPU10とFPGA30とが共有して使用する共有メモリ領域22A、22B等が設けられる。   The system memory 20 is a memory that stores programs such as an operating system (OS) and applications, data, and the like. The system memory 20 is provided with, for example, a kernel area 21 in which a kernel or the like is stored, and shared memory areas 22A and 22B shared and used by the CPU 10 and the FPGA 30.

FPGA30は、回路情報に基づいてプログラム可能な論理回路の構成を変更可能な再構成デバイスである。FPGA30は、ユーザ回路(ユーザロジック)31及びトラッキング32を有する。ユーザ回路31は処理回路の一例である。本実施形態では、CPU10が行う処理の一部をFPGA30のユーザ回路31にオフロードして処理を行う。   The FPGA 30 is a reconfigurable device capable of changing the configuration of programmable logic circuits based on circuit information. The FPGA 30 has a user circuit (user logic) 31 and a tracking 32. The user circuit 31 is an example of a processing circuit. In the present embodiment, part of the processing performed by the CPU 10 is offloaded to the user circuit 31 of the FPGA 30 to perform processing.

例えば、FPGA30において、ユーザ回路A31Aが、CPU10のCPUコア11Aが実行するアプリケーションAppAの処理の一部を行い、ユーザ回路A31Bが、CPU10のCPUコア11Bが実行するアプリケーションAppBの処理の一部を行う。このとき、例えばアプリケーションAppAでは、共有メモリ領域A22Aを介してユーザ回路A31Aと通信し、アプリケーションAppBでは、共有メモリ領域B22Bを介してユーザ回路B31Bと通信する。   For example, in the FPGA 30, the user circuit A31A performs part of the processing of the application AppA executed by the CPU core 11A of the CPU 10, and the user circuit A31B performs part of the processing of the application AppB executed by the CPU core 11B of the CPU 10. . At this time, for example, the application AppA communicates with the user circuit A31A via the shared memory area A22A, and the application AppB communicates with the user circuit B31B via the shared memory area B22B.

トラッキング部32は、FPGA30のユーザ回路31とCPU10のIOメモリ管理部(IOMMU)13との間に配置され、ユーザ回路31によるメモリアクセスのパタンの記録及び分析を行う。トラッキング部32は、ユーザ回路31からシステムメモリ20へのメモリアクセスの登録及び異常検出を行う。なお、トラッキング部32は、FPGA30のユーザ回路31とCPU10のIOメモリ管理部(IOMMU)13との間に配置されていればよく、FPGA30内に限らず、CPU10内に配置してもよいし、CPU10及びFPGA30とは別の個別デバイス(IC)として配置してもよい。   The tracking unit 32 is disposed between the user circuit 31 of the FPGA 30 and the IO memory management unit (IOMMU) 13 of the CPU 10, and records and analyzes a memory access pattern by the user circuit 31. The tracking unit 32 performs memory access registration from the user circuit 31 to the system memory 20 and abnormality detection. The tracking unit 32 may be disposed between the user circuit 31 of the FPGA 30 and the IO memory management unit (IOMMU) 13 of the CPU 10. The tracking unit 32 may be disposed not only in the FPGA 30, but also in the CPU 10. The CPU 10 and the FPGA 30 may be arranged as separate devices (ICs).

トラッキング部32は、登録モードで動作しているとき、ユーザ回路31からのメモリアクセスのパタンの登録を行い、検出モードで動作しているとき、ユーザ回路31からのメモリアクセスの異常検出を行う。このように、メモリアクセスのパタンの登録を行う登録モードと、メモリアクセスの異常検出を行う検出モードとを分離することで、ユーザ回路31及びアプリケーションに依存しないパタン検出が可能となる。   The tracking unit 32 registers a memory access pattern from the user circuit 31 when operating in the registration mode, and performs abnormality detection of memory access from the user circuit 31 when operating in the detection mode. As described above, the pattern detection independent of the user circuit 31 and the application can be performed by separating the registration mode in which the memory access pattern is registered and the detection mode in which the memory access abnormality is detected.

トラッキング部32は、登録モードでは、ユーザ回路31が実行しているアプリケーション(プロセスID)毎及びアクセス種別(リード又はライト)毎にメモリアクセスのパタンの学習を行う。メモリアクセスのパタンとしては、<1>メモリアクセスの最大アドレス及び最小アドレス、<2>メモリアクセス粒度(最大バースト長)、及び<3>シーケンシャルアクセスを行う領域を特定して登録する。   In the registration mode, the tracking unit 32 learns a memory access pattern for each application (process ID) executed by the user circuit 31 and for each access type (read or write). As the memory access pattern, the maximum address and the minimum address of <1> memory access, <2> memory access granularity (maximum burst length), and <3> the area to be subjected to the sequential access are specified and registered.

また、トラッキング部32は、検出モードでは、現在のメモリアクセスにおけるプロセスID及びアクセス種別(リード又はライト)に対応する登録済みのメモリアクセスのパタンと現在のメモリアクセスのパタンとが一致するか否かを判定する。登録済みのメモリアクセスのパタンと現在のメモリアクセスのパタンとが一致しないと判定した場合、トラッキング部32は、例えばCPU10に対して割り込みを発生させる。このとき、そのメモリアクセスをブロックするか、継続動作させるか、制御するようにしてもよい。   Also, in the detection mode, whether or not the registered memory access pattern corresponding to the process ID and the access type (read or write) in the current memory access matches the current memory access pattern in the detection mode Determine If it is determined that the registered memory access pattern and the current memory access pattern do not match, the tracking unit 32 generates, for example, an interrupt to the CPU 10. At this time, the memory access may be blocked or operated continuously.

図2は、本実施形態におけるトラッキング部32の構成例を示すブロック図である。トラッキング部32は、ヘッダ情報抽出部201、登録制御部202、検出制御部203、割込制御部204、テーブル選択部205、及びパタンテーブル206を有する。   FIG. 2 is a block diagram showing a configuration example of the tracking unit 32 in the present embodiment. The tracking unit 32 includes a header information extraction unit 201, a registration control unit 202, a detection control unit 203, an interrupt control unit 204, a table selection unit 205, and a pattern table 206.

ヘッダ情報抽出部201は、情報抽出部の一例であり、ユーザ回路31から送信されるメモリアクセスパケットからアクセス情報を抽出する。メモリアクセスパケットのフォーマットの一例を図3に示す。メモリアクセスパケットは、メモリアクセスを行うアプリケーション(プロセス)に応じたプロセスID(301)、アクセス先を示す仮想アドレス(302)、コマンドタイプ(303)、データ長(304)、及びデータ(305)をそれぞれ格納するフィールドを有する。ユーザ回路31によるメモリアクセスのコマンドタイプ(303)には、メモリからのデータ読み出しを要求するメモリに対するリードリクエスト、メモリへのデータ書き込みを要求するメモリに対するライトリクエスト、及びCPUからのアクセス(プログラムIO)に応答するCPUに対するPIOリードレスポンス等がある。   The header information extraction unit 201 is an example of the information extraction unit, and extracts access information from the memory access packet transmitted from the user circuit 31. An example of the format of the memory access packet is shown in FIG. The memory access packet includes a process ID (301) corresponding to an application (process) performing memory access, a virtual address (302) indicating an access destination, a command type (303), a data length (304), and data (305). Each has a field to store. The command type (303) for memory access by the user circuit 31 includes a read request to the memory requesting data read from the memory, a write request to the memory requesting data write to the memory, and access from the CPU (program IO) There is a PIO read response etc. to the CPU which responds to.

ヘッダ情報抽出部201は、ユーザ回路31からのメモリアクセスパケットからプロセスID、アドレスとして仮想アドレス、アクセス種別としてコマンドタイプ、及びアクセスサイズ(バースト長)としてデータ長のアクセス情報を抽出する。ヘッダ情報抽出部201は、コマンドタイプがリードリクエスト又はライトリクエストである場合、メモリアクセスパケットから抽出したアクセス情報を、登録制御部202、検出制御部203、及びテーブル選択部205出力する。なお、メモリアクセスパケットから抽出したアクセス情報をヘッダ情報抽出部201が常に出力し、コマンドタイプがリードリクエスト又はライトリクエストである場合に有効とし、それ以外は無効とするようにしてもよい。   The header information extraction unit 201 extracts, from the memory access packet from the user circuit 31, a process ID, a virtual address as an address, a command type as an access type, and a data length access information as an access size (burst length). When the command type is a read request or a write request, the header information extraction unit 201 outputs the registration control unit 202, the detection control unit 203, and the table selection unit 205 to the access information extracted from the memory access packet. Note that the header information extraction unit 201 may always output the access information extracted from the memory access packet, and may make it valid when the command type is a read request or a write request, and may make the others invalid.

登録制御部202は、登録部の一例である。登録制御部202は、登録モード時にユーザ回路31からのメモリアクセスパケットから抽出されたプロセスID及びアクセス種別に対応するパタンテーブルを更新する。登録制御部202は、ユーザ回路31からのメモリアクセスパケットから抽出されたアクセス情報に基づいて、対応するパタンテーブルにメモリアクセスのパタンを登録する。登録制御部202は、最大M個のシーケンシャルアクセス判定器を有し、現在のユーザ回路31からのメモリアクセスが連続する領域へのシーケンシャルアクセスであるか否かを判定する。ここで、Mはパタンテーブル206にシーケンシャル領域として情報を登録可能な数である。   The registration control unit 202 is an example of a registration unit. The registration control unit 202 updates the pattern table corresponding to the process ID and the access type extracted from the memory access packet from the user circuit 31 in the registration mode. The registration control unit 202 registers the memory access pattern in the corresponding pattern table based on the access information extracted from the memory access packet from the user circuit 31. The registration control unit 202 has up to M sequential access determination units, and determines whether or not the current memory access from the user circuit 31 is a sequential access to a continuous area. Here, M is the number that can register information in the pattern table 206 as a sequential area.

シーケンシャルアクセス判定器は、ユーザ回路31から発行されている一連のメモリアクセスにおいて、同じコマンド(アクセス種別)で連続アドレスへのアクセスが認められる場合、シーケンシャルアクセスであると判定し、そのアドレス区間(開始アドレス及び終了アドレス)とコマンドを保持する。そして、登録制御部202は、保持されたアドレス区間及びコマンドに基づいて、パタンテーブル206を更新する。シーケンシャルアクセス判定器は、ユーザ回路31からのメモリアクセスが、パタンテーブル206に登録されているアドレス区間がマッチすればヒットを返す。   The sequential access determiner determines that sequential access is to be performed when access to a continuous address is permitted by the same command (access type) in a series of memory accesses issued from the user circuit 31, and that address section (start Hold address and end address) and command. Then, the registration control unit 202 updates the pattern table 206 based on the held address section and command. The sequential access determiner returns a hit if the memory access from the user circuit 31 matches the address section registered in the pattern table 206.

検出制御部203は、検出部の一例である。検出制御部203は、検出モード時にユーザ回路31からのメモリアクセスパケットから抽出されたアクセス情報と、抽出されたプロセスID(アプリケーション)及びアクセス種別に対応するパタンテーブル206の情報とを比較し、メモリアクセスのパタンが一致するか否かを判定する。検出制御部203は、<1>メモリアクセスのアドレスがパタンテーブル206に登録されている最大アドレス及び最小アドレスで定まる範囲の外、<2>メモリアクセスのバースト長がパタンテーブル206に登録されている最大バースト長を超える、又は<3>パタンテーブル206に登録されているシーケンシャル領域に異なるコマンドでアクセス、の何れかの条件を満たす場合、異常なメモリアクセスであると判断し、割込制御部204に割り込み通知要求を発行する。すなわち、検出制御部203は、現在のメモリアクセスのパタンが、パタンテーブル206に登録されているメモリアクセスのパタンと一致しないとき、割込制御部204に割り込み通知要求を上げる。   The detection control unit 203 is an example of a detection unit. The detection control unit 203 compares the access information extracted from the memory access packet from the user circuit 31 in the detection mode with the information of the extracted process ID (application) and the pattern table 206 corresponding to the access type. It is determined whether the access patterns match. The detection control unit 203 registers the burst length of the <2> memory access in the pattern table 206 outside the range defined by the maximum address and the minimum address in which the address of the <1> memory access is registered in the pattern table 206. When any condition of exceeding the maximum burst length or accessing a sequential area registered in the <3> pattern table 206 with different commands is satisfied, it is determined that the memory access is abnormal and the interrupt control unit 204 Issue an interrupt notification request to That is, when the current memory access pattern does not match the memory access pattern registered in the pattern table 206, the detection control unit 203 issues an interrupt notification request to the interrupt control unit 204.

割込制御部204は、検出制御部203からの割り込み通知要求を受けるとCPU10への割り込みを出力する。なお、CPU10への割り込みとともに、どの条件で検出されたか等の情報を通知するようにしてもよい。テーブル選択部205は、複数のパタンテーブル206の内から、ユーザ回路31からのメモリアクセスパケットから抽出されたプロセスID及びアクセス種別に対応するパタンテーブル206を選択して出力する。   When receiving the interrupt notification request from the detection control unit 203, the interrupt control unit 204 outputs an interrupt to the CPU 10. In addition to the interrupt to the CPU 10, information such as which condition is detected may be notified. The table selection unit 205 selects and outputs the pattern table 206 corresponding to the process ID and the access type extracted from the memory access packet from the user circuit 31 among the plurality of pattern tables 206.

パタンテーブル206は、図4に例示するように、メモリアクセスの最大アドレス及び最小アドレス、最大バースト長、及びM個の組のシーケンシャル領域の開始アドレス及び終了アドレスの情報を有する。ここで、例えばシーケンシャル領域の開始アドレスが0xFFFFFFFFである場合、そのシーケンシャル領域の情報は無効であることを示す。なお、図2に示した例では、3つのパタンテーブル206A、206B、206Cを示しているが、パタンテーブル206は、アプリケーション(プロセスID)毎及びアクセス種別(リード又はライト)毎に設けられる。   The pattern table 206 has information of maximum and minimum addresses of memory access, maximum burst length, and start and end addresses of M sets of sequential areas, as illustrated in FIG. Here, for example, when the start address of the sequential area is 0xFFFFFFFF, it indicates that the information of the sequential area is invalid. Although three pattern tables 206A, 206B and 206C are shown in the example shown in FIG. 2, the pattern table 206 is provided for each application (process ID) and each access type (read or write).

以上のように本実施形態では、例えば製品や新しいアプリケーションの導入時の試験等を実施するときなど、予め登録モードで動作させ、トラッキング部32がFPGA30のユーザ回路31からシステムメモリ20へのメモリアクセスのパタンをアプリケーション(プロセスID)毎及びアクセス種別(リード又はライト)毎にパタンテーブル206として記録する。そして、運用時には検出モードで動作させ、トラッキング部32がユーザ回路31からのメモリアクセスのパタンがパタンテーブル206に登録されているメモリアクセスのパタンと一致するか否かを判定することで、ユーザ回路31がアクセス可能な領域であっても、通常とは異なるパタンのメモリアクセスを検出することが可能となる。   As described above, in this embodiment, for example, when performing a test when introducing a product or a new application, the tracking unit 32 operates in advance in the registration mode, and the tracking unit 32 accesses the memory from the user circuit 31 of the FPGA 30 to the system memory 20 Is recorded as a pattern table 206 for each application (process ID) and each access type (read or write). Then, at the time of operation, the user circuit is operated in the detection mode, and the tracking unit 32 determines whether the memory access pattern from the user circuit 31 matches the memory access pattern registered in the pattern table 206 or not. Even when the area 31 is an accessible area, it is possible to detect memory access of a pattern different from a normal pattern.

例えば、特定の条件下で発生するユーザ回路31からの異常なメモリアクセスのパタンを動作中に検出することで、ユーザ回路31の問題を早期に特定することができる。これは、図5に一例を示すような悪意ある回路及び図6に一例を示すような誤動作を引き起こすバグを含む回路のどちらについても可能である。   For example, by detecting during operation an abnormal memory access pattern from the user circuit 31 that occurs under a specific condition, it is possible to identify the problem of the user circuit 31 at an early stage. This is possible for both a malicious circuit as an example shown in FIG. 5 and a circuit including a bug causing an erroneous operation as an example shown in FIG.

図5は、本実施形態における情報処理システムの動作例を示す図である。図5において、図1に示した構成要素と同一の機能を有する構成要素には同一の符号を付し、重複する説明は省略する。図5に示す例では、FPGA30のユーザ回路A31Aは、ダイレクトメモリアクセス(Direct Memory Access:DMA)制御部501を有する。DMA制御部501は、ページテーブル502に従ってメモリアクセスを実行する。ここで、メモリ20の共有メモリ領域A22Aは、ユーザ回路A31Aがアクセスできる領域であるとする。   FIG. 5 is a diagram showing an operation example of the information processing system in the present embodiment. In FIG. 5, constituent elements having the same functions as the constituent elements shown in FIG. 1 are denoted by the same reference numerals, and redundant description will be omitted. In the example shown in FIG. 5, the user circuit A 31 A of the FPGA 30 has a direct memory access (DMA) control unit 501. The DMA control unit 501 executes memory access in accordance with the page table 502. Here, it is assumed that the shared memory area A22A of the memory 20 is an area to which the user circuit A31A can access.

共有メモリ領域A22A内のバッファAとする領域503を利用する場合、まず、CPUコア11Aが実行するアプリケーションAppAから領域503を示すアドレスがDMA制御部501のページテーブル502に指定される(511)。ページテーブル502に指定されたアドレスが領域503を示すアドレスであれば、DMA制御部501はメモリ20の領域503に対してメモリアクセスを実行する(512)。   When using the area 503 as the buffer A in the shared memory area A22A, first, an address indicating the area 503 is specified in the page table 502 of the DMA control unit 501 from the application AppA executed by the CPU core 11A (511). If the address specified in the page table 502 is an address indicating the area 503, the DMA control unit 501 executes a memory access to the area 503 of the memory 20 (512).

しかし、ユーザ回路A31Aの悪意ある回路が、共有メモリA22A内の領域503とは異なる、機密データが格納されている領域504を示すアドレスに書き換えページテーブル502を改変したとする。メモリ20の領域504は、ユーザ回路A31Aがアクセスできる領域内ではあるが、ユーザ回路A31Aには割り当てられていない(指定されていない)領域である。   However, it is assumed that the malicious circuit of the user circuit A31A rewrites the rewriting page table 502 to an address indicating an area 504 in which confidential data is stored, which is different from the area 503 in the shared memory A22A. The area 504 of the memory 20 is an area which is within the area accessible by the user circuit A31A but not allocated (designated) to the user circuit A31A.

ページテーブル502が改変された場合、DMA制御部501は、ページテーブル502に従って、指定されたアドレス外であるメモリ20の領域504に対してメモリアクセスを実行する(513)。このとき、トラキング部32は、パタンテーブルを参照して、メモリアクセスのパタンとして登録されているアドレス範囲外へのこのアクセスを検出する(514)。そして、トラキング部32は、CPUコア11A(アプリケーションAppA)に異常なメモリアクセスの検出を通知する(515)。これにより、FPGA30のユーザ回路A31Aに何らかの不具合のあることが認識できる。   When the page table 502 is modified, the DMA control unit 501 executes memory access to the area 504 of the memory 20 which is outside the designated address according to the page table 502 (513). At this time, the tracking unit 32 refers to the pattern table to detect this access outside the address range registered as the memory access pattern (514). Then, the tracking unit 32 notifies the CPU core 11A (application AppA) of detection of abnormal memory access (515). Thereby, it can be recognized that the user circuit A31A of the FPGA 30 has some kind of malfunction.

図6は、本実施形態における情報処理システムの動作例を示す図である。図6において、図1に示した構成要素と同一の機能を有する構成要素には同一の符号を付し、重複する説明は省略する。図6に示す例では、CPUコア11Aが仮想マシンVMによりアプリケーションAppA、AppBの処理を実行する。また、アプリケーションAppAの処理の一部をFPGA30のユーザ回路A31Aが行い、アプリケーションAppBの処理の一部をFPGA30のユーザ回路B31Bが行うものとする。このように1つの仮想マシンVMでアプリケーションAppA、AppBを動作させる場合、アプリケーションAppA、AppBが使用するメモリ20の共有メモリ領域は1つとなる。   FIG. 6 is a diagram showing an operation example of the information processing system in the present embodiment. 6, the components having the same functions as the components shown in FIG. 1 are denoted by the same reference numerals, and the redundant description will be omitted. In the example shown in FIG. 6, the CPU core 11A executes the processing of the applications AppA and AppB by the virtual machine VM. Further, it is assumed that the user circuit A31A of the FPGA 30 performs a part of the processing of the application AppA, and the user circuit B31B of the FPGA 30 performs a part of the processing of the application AppB. When the applications AppA and AppB are operated by one virtual machine VM in this manner, the shared memory area of the memory 20 used by the applications AppA and AppB is one.

アプリケーションAppAとユーザ回路A31Aが共有メモリ領域A22A内のバッファAとする領域601を利用する場合、アプリケーションAppAから領域601を示すアドレスがユーザ回路A31Aに指定され(611)、通常であればユーザ回路A31Aはメモリ20の領域601に対してメモリアクセスを実行する(612)。同様に、アプリケーションAppBとユーザ回路B31Bが共有メモリ領域A22A内のバッファBとする領域602を利用する場合、アプリケーションAppBから領域602を示すアドレスがユーザ回路B31Bに指定され(613)、通常であればユーザ回路B31Bはメモリ20の領域602に対してメモリアクセスを実行する(614)。   When the application AppA and the user circuit A31A use the area 601 as the buffer A in the shared memory area A22A, an address indicating the area 601 is designated from the application AppA to the user circuit A31A (611). Executes a memory access to the area 601 of the memory 20 (612). Similarly, when the application AppB and the user circuit B31B use the area 602 in which the buffer B in the shared memory area A22A is used, an address indicating the area 602 is designated by the application AppB to the user circuit B31B (613). The user circuit B31B executes a memory access to the area 602 of the memory 20 (614).

例えば、ユーザ回路B31Bがバグにより誤動作し、ユーザ回路B31Bが誤ってバッファAとする領域601に対してメモリアクセスを実行すると(616)、トラキング部32は、パタンテーブルを参照して、メモリアクセスのパタンとして登録されているアドレス範囲外へのこのアクセスを検出する(617)。そして、トラキング部32は、CPUコア11A(アプリケーションAppB)に異常なメモリアクセスの検出を通知する(615)。これにより、FPGA30のユーザ回路B31Bに何らかの不具合のあることが認識できる。   For example, when the user circuit B31B malfunctions due to a bug and the user circuit B31B erroneously executes a memory access to the area 601 which is made buffer A (616), the tracking unit 32 refers to the pattern table to perform memory access. This access is detected out of the address range registered as a pattern (617). Then, the tracking unit 32 notifies the CPU core 11A (application AppB) of detection of abnormal memory access (615). As a result, it can be recognized that the user circuit B31B of the FPGA 30 has some problems.

また、トラッキング部32が、FPGA30のユーザ回路31からのメモリアクセスのパタンを取得できることを利用して、メモリアクセスのパタンに応じてメモリの割り当てを制御し、アプリケーション及びユーザ回路31に対するメモリ配置を最適化することが可能である。図7は、本実施形態における情報処理システムの他の構成例を示すブロック図である。図7において、図1に示した構成要素と同一の機能を有する構成要素には同一の符号を付し、重複する説明は省略する。   Also, by utilizing the fact that the tracking unit 32 can acquire the memory access pattern from the user circuit 31 of the FPGA 30, the memory allocation is controlled according to the memory access pattern, and the memory arrangement for the application and user circuit 31 is optimized. It is possible to FIG. 7 is a block diagram showing another configuration example of the information processing system in the present embodiment. In FIG. 7, components having the same functions as the components shown in FIG. 1 will be assigned the same reference numerals and overlapping descriptions will be omitted.

図7に示す情報処理システムは、CPU10、システムメモリ(主記憶)20、及びFPGA30に加え、システムメモリ20より動作が高速なメモリ701を有する。CPUコア11Aが実行するアプリケーションAppAは、FPGA30のユーザ回路A31Aを利用し、アプリケーションAppAとユーザ回路A31Aはシステムメモリ20の共有メモリ領域A22Aを介して通信する。共有メモリ領域A22Aの領域702が、ユーザ回路A31Aが実際に使用するメモリ領域(Working Set)である。また、CPUコア11Bでは、メモリ領域の割り当て(マッピング)を行うプログラム(メモリモニタ)が動作している。   The information processing system shown in FIG. 7 has a memory 701 which operates faster than the system memory 20, in addition to the CPU 10, the system memory (main storage) 20, and the FPGA 30. The application AppA executed by the CPU core 11A uses the user circuit A31A of the FPGA 30, and the application AppA and the user circuit A31A communicate via the shared memory area A22A of the system memory 20. An area 702 of the shared memory area A22A is a memory area (Working Set) actually used by the user circuit A31A. In the CPU core 11B, a program (memory monitor) for allocating (mapping) a memory area is operating.

図7に示した情報処理システムでのメモリ領域の割り当ての制御手順について説明する。以下では、FPGA30のユーザ回路A31Aが使用するメモリ領域を、システムメモリ20(共有メモリ領域A22A)から高速メモリ701に割り当てを変更する場合を一例に説明する。   A control procedure of memory area allocation in the information processing system shown in FIG. 7 will be described. In the following, the case where the memory area used by the user circuit A31A of the FPGA 30 is changed from the system memory 20 (shared memory area A22A) to the high speed memory 701 will be described as an example.

CPU10において、オペレーティングシステム(OS)は、CPUコア11AでアプリケーションAppAを通常実行し、その処理の一部をFPGA30のユーザ回路A31Aが実行する。このとき、トラッキング部32が、登録モードで動作し、ユーザ回路A31Aからシステムメモリ20へのメモリアクセスのパタン(アドレス範囲)を記録する。また、CPUコア11Bで動作するメモリモニタが、トラッキング部32が記録したユーザ回路A31Aからシステムメモリ20へのメモリアクセスのアドレス範囲を取得する。   In the CPU 10, the operating system (OS) normally executes the application AppA in the CPU core 11A, and the user circuit A 31A of the FPGA 30 executes a part of the processing. At this time, the tracking unit 32 operates in the registration mode, and records a pattern (address range) of memory access from the user circuit A 31A to the system memory 20. Also, the memory monitor operating on the CPU core 11B acquires the address range of the memory access to the system memory 20 from the user circuit A 31A recorded by the tracking unit 32.

メモリモニタは、ユーザ回路A31Aからのメモリアクセスのアドレス範囲が、高速メモリ701の空き容量より小さいか否かを判定する。ユーザ回路A31Aからのメモリアクセスのアドレス範囲が高速メモリ701の空き容量より小さいと判定した場合、メモリモニタは、IOメモリ管理部(IOMMU)13に対し、ユーザ回路A31Aからのメモリアクセスのアドレス範囲を高速メモリ701に割り当てる(マッピングし直す)ように指示する。   The memory monitor determines whether the address range of memory access from the user circuit A 31 A is smaller than the free space of the high speed memory 701. If it is determined that the address range of memory access from the user circuit A31A is smaller than the free space of the high-speed memory 701, the memory monitor sets the address range of memory access from the user circuit A31A to the IO memory management unit (IOMMU) 13. It instructs to allocate (remap) to the high speed memory 701.

その後、トラッキング部32を検出モードで動作させ、オペレーティングシステム(OS)は、CPUコア11AでアプリケーションAppAを再実行する。これにより、FPGA30のユーザ回路A31Aは高速メモリ701を使用して動作し、アプリケーションAppAが高速に実行できるようになる。ここで、例えばトラッキング部32がユーザ回路A31Aからの異常なメモリアクセスを検出した場合、メモリモニタがユーザ回路A31Aに対する高速メモリ702の割り当ての設定を解除し、ユーザ回路A31Aからのメモリアクセスのアドレス範囲をシステムメモリ20(共有メモリ領域A22A)に設定して再実行するようにしてもよい。   Thereafter, the tracking unit 32 is operated in the detection mode, and the operating system (OS) re-executes the application AppA in the CPU core 11A. As a result, the user circuit A31A of the FPGA 30 operates using the high speed memory 701, and can execute the application AppA at high speed. Here, for example, when the tracking unit 32 detects an abnormal memory access from the user circuit A31A, the memory monitor cancels the setting of the assignment of the high speed memory 702 to the user circuit A31A, and the address range of the memory access from the user circuit A31A. May be set in the system memory 20 (shared memory area A 22 A) and re-executed.

以上のように、トラッキング部32がユーザ回路31からのメモリアクセスのパタンを記録して、ユーザ回路31のメモリ使用量を解析することで、使用するメモリ領域を高速メモリに割り当て直すなどして、アプリケーション及びユーザ回路31に対するメモリ配置を最適化することができる。これにより、アプリケーション及びユーザ回路31のメモリアクセスを高速化することが可能となり、処理を高速化することができる。   As described above, the tracking unit 32 records the memory access pattern from the user circuit 31 and analyzes the memory usage of the user circuit 31, thereby reassigning the memory area to be used to the high-speed memory, etc. Memory placement for application and user circuitry 31 can be optimized. As a result, the memory access of the application and user circuit 31 can be speeded up, and the processing can be speeded up.

なお、前記実施形態は、何れも本発明を実施するにあたっての具体化のほんの一例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、またはその主要な特徴から逸脱することなく、様々な形で実施することができる。
前述した実施形態に関し、さらに以下の付記を開示する。
In addition, the said embodiment shows only an example of implementation in all in implementing this invention, and the technical scope of this invention should not be limitedly interpreted by these. That is, the present invention can be implemented in various forms without departing from the technical idea or the main features thereof.
Further, the following appendices will be disclosed regarding the above-described embodiment.

(付記1)
アプリケーションの処理の一部を実行する処理回路であって、回路情報に基づいてプログラム可能な論理回路を再構成して形成される前記処理回路とメモリとの間に配置され、前記処理回路から前記メモリへのメモリアクセスにおけるアクセス情報を抽出する情報抽出部と、
前記アプリケーション毎に、前記処理回路から前記メモリへの第1のメモリアクセスにて前記情報抽出部が抽出する前記アクセス情報に基づいてメモリアクセスのパタンを登録する登録部と、
前記処理回路から前記メモリへの第2のメモリアクセスを検出した場合、前記第2のメモリアクセスにて前記情報抽出部が抽出する前記アクセス情報に基づくメモリアクセスのパタンと、前記第2のメモリアクセスを行う前記アプリケーションに対応する登録したメモリアクセスのパタンとが一致するか否かを判定する判定部とを有することを特徴とする情報処理装置。
(付記2)
前記メモリアクセスのパタンは、前記第1のメモリアクセスでアクセスする最大アドレス及び最小アドレスの情報を有することを特徴とする付記1記載の情報処理装置。
(付記3)
前記メモリアクセスのパタンは、前記第1のメモリアクセスにおけるメモリアクセス粒度及び前記第1のメモリアクセスにてシーケンシャルアクセスを行う領域の情報の少なくとも一方を有することを特徴とする付記2記載の情報処理装置。
(付記4)
前記登録部は、前記アプリケーション毎及び前記メモリのアクセス種別毎にメモリアクセスのパタンを登録することを特徴とする付記1〜3の何れか1項に記載の情報処理装置。
(付記5)
前記判定部が、前記第2のメモリアクセスに係るメモリアクセスのパタンが、登録したメモリアクセスのパタンと一致しないと判定した場合、前記第2のメモリアクセスを行う前記アプリケーションへの割り込みを出力する割込制御部を有することを特徴とする付記1〜4の何れか1項に記載の情報処理装置。
(付記6)
前記情報抽出部は、前記処理回路からのメモリアクセスパケットから、前記アプリケーションに応じたプロセスID、アドレス、アクセス種別、及びデータ長の情報を抽出することを特徴とする付記1〜5の何れか1項に記載の情報処理装置。
(付記7)
アプリケーションの処理の一部を実行する処理回路であって、回路情報に基づいてプログラム可能な論理回路を再構成して形成される前記処理回路とメモリとの間に配置され、前記処理回路から前記メモリへのメモリアクセスにおけるアクセス情報を抽出する情報抽出部と、
前記アプリケーション毎に、前記情報抽出部が抽出する前記アクセス情報に基づいてメモリアクセスのパタンを登録する登録部とを有し、
前記メモリは、アクセス性能が異なる複数のメモリを有し、前記メモリアクセスのパタンに基づいて前記処理回路に対する前記メモリの割り当てを制御することを特徴とする情報処理装置。
(付記8)
アプリケーションの処理の一部を実行する処理回路であって、回路情報に基づいてプログラム可能な論理回路を再構成して形成される前記処理回路とメモリとの間に配置された情報抽出部が、前記処理回路から前記メモリへのメモリアクセスにおけるアクセス情報を抽出し、
前記アプリケーション毎に、前記処理回路から前記メモリへの第1のメモリアクセスにて前記情報抽出部が抽出する前記アクセス情報に基づいてメモリアクセスのパタンを登録し、
前記処理回路から前記メモリへの第2のメモリアクセスを検出した場合、前記第2のメモリアクセスにて前記情報抽出部が抽出する前記アクセス情報に基づくメモリアクセスのパタンと、前記第2のメモリアクセスを行う前記アプリケーションに対応する登録したメモリアクセスのパタンとが一致するか否かを判定することを特徴とする情報処理方法。
(付記9)
アプリケーションの処理を行う演算処理装置と、回路情報に基づいてプログラム可能な論理回路の構成を変更可能な再構成デバイスと、前記再構成デバイスに形成され前記アプリケーションの処理の一部を実行する処理回路と前記アプリケーションとで使用されるメモリとを有する情報処理システムであって、
前記処理回路と前記メモリとの間に配置され、前記処理回路から前記メモリへのメモリアクセスにおけるアクセス情報を抽出する情報抽出部と、
前記アプリケーション毎に、前記処理回路から前記メモリへの第1のメモリアクセスにて前記情報抽出部が抽出する前記アクセス情報に基づいてメモリアクセスのパタンを登録する登録部と、
前記処理回路から前記メモリへの第2のメモリアクセスを検出した場合、前記第2のメモリアクセスにて前記情報抽出部が抽出する前記アクセス情報に基づくメモリアクセスのパタンと、前記第2のメモリアクセスを行う前記アプリケーションに対応する登録したメモリアクセスのパタンとが一致するか否かを判定する判定部とを有することを特徴とする情報処理システム。
(Supplementary Note 1)
A processing circuit that executes part of processing of an application, and is disposed between the processing circuit and the memory, which is formed by reconfiguring a programmable logic circuit based on circuit information, and the processing circuit An information extraction unit for extracting access information in memory access to the memory;
A registration unit that registers a memory access pattern based on the access information extracted by the information extraction unit in the first memory access from the processing circuit to the memory, for each of the applications;
When a second memory access from the processing circuit to the memory is detected, a memory access pattern based on the access information extracted by the information extraction unit in the second memory access, and the second memory access An information processing apparatus characterized by further comprising: a determination unit that determines whether the registered memory access pattern corresponding to the application that is to be matched matches.
(Supplementary Note 2)
The information processing apparatus according to claim 1, wherein the memory access pattern includes information of a maximum address and a minimum address accessed in the first memory access.
(Supplementary Note 3)
The information processing apparatus according to claim 2, wherein the memory access pattern includes at least one of a memory access granularity in the first memory access and information of an area in which sequential access is performed in the first memory access. .
(Supplementary Note 4)
The information processing apparatus according to any one of appendices 1 to 3, wherein the registration unit registers a memory access pattern for each of the applications and for each access type of the memory.
(Supplementary Note 5)
If the determination unit determines that the memory access pattern related to the second memory access does not match the registered memory access pattern, it outputs an interrupt to the application that performs the second memory access. The information processing apparatus according to any one of appendices 1 to 4, further comprising a load control unit.
(Supplementary Note 6)
The information extraction unit extracts, from the memory access packet from the processing circuit, information of a process ID, an address, an access type, and a data length according to the application. The information processing apparatus according to any one of the above.
(Appendix 7)
A processing circuit that executes part of processing of an application, and is disposed between the processing circuit and the memory, which is formed by reconfiguring a programmable logic circuit based on circuit information, and the processing circuit An information extraction unit for extracting access information in memory access to the memory;
And a registration unit that registers a memory access pattern based on the access information extracted by the information extraction unit for each of the applications.
An information processing apparatus, comprising: a plurality of memories having different access performances; and the allocation of the memories to the processing circuit based on a pattern of the memory access.
(Supplementary Note 8)
A processing circuit that executes part of processing of an application, and an information extraction unit disposed between the processing circuit and the memory, which is formed by reconfiguring a programmable logic circuit based on circuit information; Extracting access information in memory access to the memory from the processing circuit;
The memory access pattern is registered based on the access information extracted by the information extraction unit in the first memory access from the processing circuit to the memory for each application.
When a second memory access from the processing circuit to the memory is detected, a memory access pattern based on the access information extracted by the information extraction unit in the second memory access, and the second memory access And determining whether or not the registered memory access pattern corresponding to the application performing the step matches.
(Appendix 9)
An arithmetic processing unit for processing an application, a reconfigurable device capable of changing the configuration of a programmable logic circuit based on circuit information, and a processing circuit formed in the reconfigurable device and executing a part of the processing of the application An information processing system comprising: and a memory used by the application;
An information extraction unit disposed between the processing circuit and the memory for extracting access information in memory access to the memory from the processing circuit;
A registration unit that registers a memory access pattern based on the access information extracted by the information extraction unit in the first memory access from the processing circuit to the memory, for each of the applications;
When a second memory access from the processing circuit to the memory is detected, a memory access pattern based on the access information extracted by the information extraction unit in the second memory access, and the second memory access A determination unit that determines whether or not the registered memory access pattern corresponding to the application that is to be matched matches.

10 CPU
11 CPUコア
12 メモリ管理部
13 IOメモリ管理部
20 システムメモリ
21 カーネル領域
22 共有メモリ領域
30 FPGA
31 ユーザ回路
32 トラッキング部
201 ヘッダ情報抽出部
202 登録制御部
203 検出制御部
204 割込制御部
205 テーブル選択部
206 パタンテーブル
10 CPU
11 CPU core 12 memory management unit 13 IO memory management unit 20 system memory 21 kernel area 22 shared memory area 30 FPGA
31 user circuit 32 tracking unit 201 header information extraction unit 202 registration control unit 203 detection control unit 204 interrupt control unit 205 table selection unit 206 pattern table

Claims (8)

アプリケーションの処理の一部を実行する処理回路であって、回路情報に基づいてプログラム可能な論理回路を再構成して形成される前記処理回路とメモリとの間に配置され、前記処理回路から前記メモリへのメモリアクセスにおけるアクセス情報を抽出する情報抽出部と、
前記アプリケーション毎に、前記処理回路から前記メモリへの第1のメモリアクセスにて前記情報抽出部が抽出する前記アクセス情報に基づいてメモリアクセスのパタンを登録する登録部と、
前記処理回路から前記メモリへの第2のメモリアクセスを検出した場合、前記第2のメモリアクセスにて前記情報抽出部が抽出する前記アクセス情報に基づくメモリアクセスのパタンと、前記第2のメモリアクセスを行う前記アプリケーションに対応する登録したメモリアクセスのパタンとが一致するか否かを判定する判定部とを有することを特徴とする情報処理装置。
A processing circuit that executes part of processing of an application, and is disposed between the processing circuit and the memory, which is formed by reconfiguring a programmable logic circuit based on circuit information, and the processing circuit An information extraction unit for extracting access information in memory access to the memory;
A registration unit that registers a memory access pattern based on the access information extracted by the information extraction unit in the first memory access from the processing circuit to the memory, for each of the applications;
When a second memory access from the processing circuit to the memory is detected, a memory access pattern based on the access information extracted by the information extraction unit in the second memory access, and the second memory access An information processing apparatus characterized by further comprising: a determination unit that determines whether the registered memory access pattern corresponding to the application that is to be matched matches.
前記メモリアクセスのパタンは、前記第1のメモリアクセスでアクセスする最大アドレス及び最小アドレスの情報を有することを特徴とする請求項1記載の情報処理装置。   The information processing apparatus according to claim 1, wherein the memory access pattern includes information of a maximum address and a minimum address accessed in the first memory access. 前記メモリアクセスのパタンは、前記第1のメモリアクセスにおけるメモリアクセス粒度及び前記第1のメモリアクセスにてシーケンシャルアクセスを行う領域の情報の少なくとも一方を有することを特徴とする請求項2記載の情報処理装置。   3. The information processing according to claim 2, wherein the memory access pattern includes at least one of memory access granularity in the first memory access and information of an area to which sequential access is to be performed in the first memory access. apparatus. 前記登録部は、前記アプリケーション毎及び前記メモリのアクセス種別毎にメモリアクセスのパタンを登録することを特徴とする請求項1〜3の何れか1項に記載の情報処理装置。   The information processing apparatus according to any one of claims 1 to 3, wherein the registration unit registers a memory access pattern for each application and each access type of the memory. 前記判定部が、前記第2のメモリアクセスに係るメモリアクセスのパタンが、登録したメモリアクセスのパタンと一致しないと判定した場合、前記第2のメモリアクセスを行う前記アプリケーションへの割り込みを出力する割込制御部を有することを特徴とする請求項1〜4の何れか1項に記載の情報処理装置。   If the determination unit determines that the memory access pattern related to the second memory access does not match the registered memory access pattern, it outputs an interrupt to the application that performs the second memory access. The information processing apparatus according to any one of claims 1 to 4, further comprising a load control unit. アプリケーションの処理の一部を実行する処理回路であって、回路情報に基づいてプログラム可能な論理回路を再構成して形成される前記処理回路とメモリとの間に配置され、前記処理回路から前記メモリへのメモリアクセスにおけるアクセス情報を抽出する情報抽出部と、
前記アプリケーション毎に、前記情報抽出部が抽出する前記アクセス情報に基づいてメモリアクセスのパタンを登録する登録部とを有し、
前記メモリは、アクセス性能が異なる複数のメモリを有し、前記メモリアクセスのパタンに基づいて前記処理回路に対する前記メモリの割り当てを制御することを特徴とする情報処理装置。
A processing circuit that executes part of processing of an application, and is disposed between the processing circuit and the memory, which is formed by reconfiguring a programmable logic circuit based on circuit information, and the processing circuit An information extraction unit for extracting access information in memory access to the memory;
And a registration unit that registers a memory access pattern based on the access information extracted by the information extraction unit for each of the applications.
An information processing apparatus, comprising: a plurality of memories having different access performances; and the allocation of the memories to the processing circuit based on a pattern of the memory access.
アプリケーションの処理の一部を実行する処理回路であって、回路情報に基づいてプログラム可能な論理回路を再構成して形成される前記処理回路とメモリとの間に配置された情報抽出部が、前記処理回路から前記メモリへのメモリアクセスにおけるアクセス情報を抽出し、
前記アプリケーション毎に、前記処理回路から前記メモリへの第1のメモリアクセスにて前記情報抽出部が抽出する前記アクセス情報に基づいてメモリアクセスのパタンを登録し、
前記処理回路から前記メモリへの第2のメモリアクセスを検出した場合、前記第2のメモリアクセスにて前記情報抽出部が抽出する前記アクセス情報に基づくメモリアクセスのパタンと、前記第2のメモリアクセスを行う前記アプリケーションに対応する登録したメモリアクセスのパタンとが一致するか否かを判定することを特徴とする情報処理方法。
A processing circuit that executes part of processing of an application, and an information extraction unit disposed between the processing circuit and the memory, which is formed by reconfiguring a programmable logic circuit based on circuit information; Extracting access information in memory access to the memory from the processing circuit;
The memory access pattern is registered based on the access information extracted by the information extraction unit in the first memory access from the processing circuit to the memory for each application.
When a second memory access from the processing circuit to the memory is detected, a memory access pattern based on the access information extracted by the information extraction unit in the second memory access, and the second memory access And determining whether or not the registered memory access pattern corresponding to the application performing the step matches.
アプリケーションの処理を行う演算処理装置と、回路情報に基づいてプログラム可能な論理回路の構成を変更可能な再構成デバイスと、前記再構成デバイスに形成され前記アプリケーションの処理の一部を実行する処理回路と前記アプリケーションとで使用されるメモリとを有する情報処理システムであって、
前記処理回路と前記メモリとの間に配置され、前記処理回路から前記メモリへのメモリアクセスにおけるアクセス情報を抽出する情報抽出部と、
前記アプリケーション毎に、前記処理回路から前記メモリへの第1のメモリアクセスにて前記情報抽出部が抽出する前記アクセス情報に基づいてメモリアクセスのパタンを登録する登録部と、
前記処理回路から前記メモリへの第2のメモリアクセスを検出した場合、前記第2のメモリアクセスにて前記情報抽出部が抽出する前記アクセス情報に基づくメモリアクセスのパタンと、前記第2のメモリアクセスを行う前記アプリケーションに対応する登録したメモリアクセスのパタンとが一致するか否かを判定する判定部とを有することを特徴とする情報処理システム。
An arithmetic processing unit for processing an application, a reconfigurable device capable of changing the configuration of a programmable logic circuit based on circuit information, and a processing circuit formed in the reconfigurable device and executing a part of the processing of the application An information processing system comprising: and a memory used by the application;
An information extraction unit disposed between the processing circuit and the memory for extracting access information in memory access to the memory from the processing circuit;
A registration unit that registers a memory access pattern based on the access information extracted by the information extraction unit in the first memory access from the processing circuit to the memory, for each of the applications;
When a second memory access from the processing circuit to the memory is detected, a memory access pattern based on the access information extracted by the information extraction unit in the second memory access, and the second memory access A determination unit that determines whether or not the registered memory access pattern corresponding to the application that is to be matched matches.
JP2017083156A 2017-04-19 2017-04-19 Information processor, information processing method, and information processing system Pending JP2018181162A (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2017083156A JP2018181162A (en) 2017-04-19 2017-04-19 Information processor, information processing method, and information processing system
PCT/JP2018/008625 WO2018193736A1 (en) 2017-04-19 2018-03-06 Information processing device, information processing method, and information processing system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017083156A JP2018181162A (en) 2017-04-19 2017-04-19 Information processor, information processing method, and information processing system

Publications (1)

Publication Number Publication Date
JP2018181162A true JP2018181162A (en) 2018-11-15

Family

ID=63856274

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017083156A Pending JP2018181162A (en) 2017-04-19 2017-04-19 Information processor, information processing method, and information processing system

Country Status (2)

Country Link
JP (1) JP2018181162A (en)
WO (1) WO2018193736A1 (en)

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002063072A (en) * 2000-08-23 2002-02-28 Ricoh Co Ltd Information processing device and printer having the same device
JP2005044009A (en) * 2003-07-24 2005-02-17 Hitachi Ltd Protection method for portable information, portable terminal device, and server device
US20080195829A1 (en) * 2007-02-13 2008-08-14 Clifton Labs, Inc. Self-protecting memory device
JP5045163B2 (en) * 2007-03-13 2012-10-10 富士通株式会社 Arithmetic processing device and control method of arithmetic processing device
JP2008299930A (en) * 2007-05-30 2008-12-11 Mega Chips Corp Semiconductor memory
US8931108B2 (en) * 2013-02-18 2015-01-06 Qualcomm Incorporated Hardware enforced content protection for graphics processing units

Also Published As

Publication number Publication date
WO2018193736A1 (en) 2018-10-25

Similar Documents

Publication Publication Date Title
JP6329318B2 (en) Information processing device
US10877793B2 (en) Extending the base address register by modifying the number of read-only bits associated with a device to be presented to a guest operating system
CN106663061B (en) Virtualization of memory for programmable logic
US20130013889A1 (en) Memory management unit using stream identifiers
US9423958B2 (en) System and method for managing expansion read-only memory and management host thereof
US10402576B2 (en) Safe physical function passthrough using virtual machine functions
US11586779B2 (en) Embedded system and method
US11734430B2 (en) Configuration of a memory controller for copy-on-write with a resource controller
US20180157605A1 (en) Configuration of a memory controller for copy-on-write
US20120110298A1 (en) Memory access control device and computer
JP2018181162A (en) Information processor, information processing method, and information processing system
JP2023554308A (en) Method and system for memory attack mitigation
US8261128B2 (en) Selection of a domain of a configuration access
JP2018113075A (en) Information processing device
Peglow et al. Security analysis of hybrid Intel CPU/FPGA platforms using IOMMUs against I/O attacks
US11714753B2 (en) Methods and nodes for handling memory
JP6948039B2 (en) Computer system
CN109901880B (en) Spinlock hardware circuit and electronic equipment
US20220317925A1 (en) Methods and apparatus for offloading tiered memories management
JP2001134471A (en) Debug device and debug method
JP2000172675A (en) List vector processor
JPS6048789B2 (en) Prefix conversion control method

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200115

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200630

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20201222