JP2018181162A - Information processor, information processing method, and information processing system - Google Patents
Information processor, information processing method, and information processing system Download PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
Abstract
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.
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は、本発明の一実施形態における情報処理システムの構成例を示すブロック図である。本実施形態における情報処理システムは、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
CPU10は、CPUコア11A、11B、メモリ管理部(MMU)12、及びIOメモリ管理部(IOMMU)13を有する。CPU10は、演算処理装置の一例である。CPUコア11A、11Bは、システムメモリ20等から読み出したプログラム(アプリケーション等)に応じた処理を実行する。なお、図1に示した例では2つのCPUコア11A、11Bを有する例を示しているが、これに限定されるものではなく、CPU10が有するCPUコア11の数は任意である。
The
メモリ管理部(MMU)12は、システムメモリ20に対するアクセス等の制御を行い、例えば仮想メモリ空間の論理アドレスから物理アドレスへの変換やCPU10とシステムメモリ20との間のデータ通信を行う。IOメモリ管理部(IOMMU)13は、IO用(入出力デバイス用)のメモリ空間を管理するものであり、例えば仮想メモリ空間の論理アドレスからIOデバイスに割り当てられたアドレスへの変換やCPU10とFPGA30との間のデータ通信を行う。
The memory management unit (MMU) 12 controls access to the
システムメモリ20は、オペレーティングシステム(OS)やアプリケーション等のプログラムやデータ等を記憶するメモリである。システムメモリ20には、例えばカーネル等が格納されるカーネル領域21や、CPU10とFPGA30とが共有して使用する共有メモリ領域22A、22B等が設けられる。
The
FPGA30は、回路情報に基づいてプログラム可能な論理回路の構成を変更可能な再構成デバイスである。FPGA30は、ユーザ回路(ユーザロジック)31及びトラッキング32を有する。ユーザ回路31は処理回路の一例である。本実施形態では、CPU10が行う処理の一部をFPGA30のユーザ回路31にオフロードして処理を行う。
The
例えば、FPGA30において、ユーザ回路A31Aが、CPU10のCPUコア11Aが実行するアプリケーションAppAの処理の一部を行い、ユーザ回路A31Bが、CPU10のCPUコア11Bが実行するアプリケーションAppBの処理の一部を行う。このとき、例えばアプリケーションAppAでは、共有メモリ領域A22Aを介してユーザ回路A31Aと通信し、アプリケーションAppBでは、共有メモリ領域B22Bを介してユーザ回路B31Bと通信する。
For example, in the
トラッキング部32は、FPGA30のユーザ回路31とCPU10のIOメモリ管理部(IOMMU)13との間に配置され、ユーザ回路31によるメモリアクセスのパタンの記録及び分析を行う。トラッキング部32は、ユーザ回路31からシステムメモリ20へのメモリアクセスの登録及び異常検出を行う。なお、トラッキング部32は、FPGA30のユーザ回路31とCPU10のIOメモリ管理部(IOMMU)13との間に配置されていればよく、FPGA30内に限らず、CPU10内に配置してもよいし、CPU10及びFPGA30とは別の個別デバイス(IC)として配置してもよい。
The
トラッキング部32は、登録モードで動作しているとき、ユーザ回路31からのメモリアクセスのパタンの登録を行い、検出モードで動作しているとき、ユーザ回路31からのメモリアクセスの異常検出を行う。このように、メモリアクセスのパタンの登録を行う登録モードと、メモリアクセスの異常検出を行う検出モードとを分離することで、ユーザ回路31及びアプリケーションに依存しないパタン検出が可能となる。
The
トラッキング部32は、登録モードでは、ユーザ回路31が実行しているアプリケーション(プロセスID)毎及びアクセス種別(リード又はライト)毎にメモリアクセスのパタンの学習を行う。メモリアクセスのパタンとしては、<1>メモリアクセスの最大アドレス及び最小アドレス、<2>メモリアクセス粒度(最大バースト長)、及び<3>シーケンシャルアクセスを行う領域を特定して登録する。
In the registration mode, the
また、トラッキング部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
図2は、本実施形態におけるトラッキング部32の構成例を示すブロック図である。トラッキング部32は、ヘッダ情報抽出部201、登録制御部202、検出制御部203、割込制御部204、テーブル選択部205、及びパタンテーブル206を有する。
FIG. 2 is a block diagram showing a configuration example of the
ヘッダ情報抽出部201は、情報抽出部の一例であり、ユーザ回路31から送信されるメモリアクセスパケットからアクセス情報を抽出する。メモリアクセスパケットのフォーマットの一例を図3に示す。メモリアクセスパケットは、メモリアクセスを行うアプリケーション(プロセス)に応じたプロセスID(301)、アクセス先を示す仮想アドレス(302)、コマンドタイプ(303)、データ長(304)、及びデータ(305)をそれぞれ格納するフィールドを有する。ユーザ回路31によるメモリアクセスのコマンドタイプ(303)には、メモリからのデータ読み出しを要求するメモリに対するリードリクエスト、メモリへのデータ書き込みを要求するメモリに対するライトリクエスト、及びCPUからのアクセス(プログラムIO)に応答するCPUに対するPIOリードレスポンス等がある。
The header
ヘッダ情報抽出部201は、ユーザ回路31からのメモリアクセスパケットからプロセスID、アドレスとして仮想アドレス、アクセス種別としてコマンドタイプ、及びアクセスサイズ(バースト長)としてデータ長のアクセス情報を抽出する。ヘッダ情報抽出部201は、コマンドタイプがリードリクエスト又はライトリクエストである場合、メモリアクセスパケットから抽出したアクセス情報を、登録制御部202、検出制御部203、及びテーブル選択部205出力する。なお、メモリアクセスパケットから抽出したアクセス情報をヘッダ情報抽出部201が常に出力し、コマンドタイプがリードリクエスト又はライトリクエストである場合に有効とし、それ以外は無効とするようにしてもよい。
The header
登録制御部202は、登録部の一例である。登録制御部202は、登録モード時にユーザ回路31からのメモリアクセスパケットから抽出されたプロセスID及びアクセス種別に対応するパタンテーブルを更新する。登録制御部202は、ユーザ回路31からのメモリアクセスパケットから抽出されたアクセス情報に基づいて、対応するパタンテーブルにメモリアクセスのパタンを登録する。登録制御部202は、最大M個のシーケンシャルアクセス判定器を有し、現在のユーザ回路31からのメモリアクセスが連続する領域へのシーケンシャルアクセスであるか否かを判定する。ここで、Mはパタンテーブル206にシーケンシャル領域として情報を登録可能な数である。
The
シーケンシャルアクセス判定器は、ユーザ回路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
検出制御部203は、検出部の一例である。検出制御部203は、検出モード時にユーザ回路31からのメモリアクセスパケットから抽出されたアクセス情報と、抽出されたプロセスID(アプリケーション)及びアクセス種別に対応するパタンテーブル206の情報とを比較し、メモリアクセスのパタンが一致するか否かを判定する。検出制御部203は、<1>メモリアクセスのアドレスがパタンテーブル206に登録されている最大アドレス及び最小アドレスで定まる範囲の外、<2>メモリアクセスのバースト長がパタンテーブル206に登録されている最大バースト長を超える、又は<3>パタンテーブル206に登録されているシーケンシャル領域に異なるコマンドでアクセス、の何れかの条件を満たす場合、異常なメモリアクセスであると判断し、割込制御部204に割り込み通知要求を発行する。すなわち、検出制御部203は、現在のメモリアクセスのパタンが、パタンテーブル206に登録されているメモリアクセスのパタンと一致しないとき、割込制御部204に割り込み通知要求を上げる。
The
割込制御部204は、検出制御部203からの割り込み通知要求を受けるとCPU10への割り込みを出力する。なお、CPU10への割り込みとともに、どの条件で検出されたか等の情報を通知するようにしてもよい。テーブル選択部205は、複数のパタンテーブル206の内から、ユーザ回路31からのメモリアクセスパケットから抽出されたプロセスID及びアクセス種別に対応するパタンテーブル206を選択して出力する。
When receiving the interrupt notification request from the
パタンテーブル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
例えば、特定の条件下で発生するユーザ回路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
共有メモリ領域A22A内のバッファAとする領域503を利用する場合、まず、CPUコア11Aが実行するアプリケーションAppAから領域503を示すアドレスがDMA制御部501のページテーブル502に指定される(511)。ページテーブル502に指定されたアドレスが領域503を示すアドレスであれば、DMA制御部501はメモリ20の領域503に対してメモリアクセスを実行する(512)。
When using the
しかし、ユーザ回路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
ページテーブル502が改変された場合、DMA制御部501は、ページテーブル502に従って、指定されたアドレス外であるメモリ20の領域504に対してメモリアクセスを実行する(513)。このとき、トラキング部32は、パタンテーブルを参照して、メモリアクセスのパタンとして登録されているアドレス範囲外へのこのアクセスを検出する(514)。そして、トラキング部32は、CPUコア11A(アプリケーションAppA)に異常なメモリアクセスの検出を通知する(515)。これにより、FPGA30のユーザ回路A31Aに何らかの不具合のあることが認識できる。
When the page table 502 is modified, the
図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
アプリケーション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
例えば、ユーザ回路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
また、トラッキング部32が、FPGA30のユーザ回路31からのメモリアクセスのパタンを取得できることを利用して、メモリアクセスのパタンに応じてメモリの割り当てを制御し、アプリケーション及びユーザ回路31に対するメモリ配置を最適化することが可能である。図7は、本実施形態における情報処理システムの他の構成例を示すブロック図である。図7において、図1に示した構成要素と同一の機能を有する構成要素には同一の符号を付し、重複する説明は省略する。
Also, by utilizing the fact that the
図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
図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
CPU10において、オペレーティングシステム(OS)は、CPUコア11AでアプリケーションAppAを通常実行し、その処理の一部をFPGA30のユーザ回路A31Aが実行する。このとき、トラッキング部32が、登録モードで動作し、ユーザ回路A31Aからシステムメモリ20へのメモリアクセスのパタン(アドレス範囲)を記録する。また、CPUコア11Bで動作するメモリモニタが、トラッキング部32が記録したユーザ回路A31Aからシステムメモリ20へのメモリアクセスのアドレス範囲を取得する。
In the
メモリモニタは、ユーザ回路A31Aからのメモリアクセスのアドレス範囲が、高速メモリ701の空き容量より小さいか否かを判定する。ユーザ回路A31Aからのメモリアクセスのアドレス範囲が高速メモリ701の空き容量より小さいと判定した場合、メモリモニタは、IOメモリ管理部(IOMMU)13に対し、ユーザ回路A31Aからのメモリアクセスのアドレス範囲を高速メモリ701に割り当てる(マッピングし直す)ように指示する。
The memory monitor determines whether the address range of memory access from the
その後、トラッキング部32を検出モードで動作させ、オペレーティングシステム(OS)は、CPUコア11AでアプリケーションAppAを再実行する。これにより、FPGA30のユーザ回路A31Aは高速メモリ701を使用して動作し、アプリケーションAppAが高速に実行できるようになる。ここで、例えばトラッキング部32がユーザ回路A31Aからの異常なメモリアクセスを検出した場合、メモリモニタがユーザ回路A31Aに対する高速メモリ702の割り当ての設定を解除し、ユーザ回路A31Aからのメモリアクセスのアドレス範囲をシステムメモリ20(共有メモリ領域A22A)に設定して再実行するようにしてもよい。
Thereafter, the
以上のように、トラッキング部32がユーザ回路31からのメモリアクセスのパタンを記録して、ユーザ回路31のメモリ使用量を解析することで、使用するメモリ領域を高速メモリに割り当て直すなどして、アプリケーション及びユーザ回路31に対するメモリ配置を最適化することができる。これにより、アプリケーション及びユーザ回路31のメモリアクセスを高速化することが可能となり、処理を高速化することができる。
As described above, the
なお、前記実施形態は、何れも本発明を実施するにあたっての具体化のほんの一例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、またはその主要な特徴から逸脱することなく、様々な形で実施することができる。
前述した実施形態に関し、さらに以下の付記を開示する。
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
31
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.
前記アプリケーション毎に、前記情報抽出部が抽出する前記アクセス情報に基づいてメモリアクセスのパタンを登録する登録部とを有し、
前記メモリは、アクセス性能が異なる複数のメモリを有し、前記メモリアクセスのパタンに基づいて前記処理回路に対する前記メモリの割り当てを制御することを特徴とする情報処理装置。 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.
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)
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 |
-
2017
- 2017-04-19 JP JP2017083156A patent/JP2018181162A/en active Pending
-
2018
- 2018-03-06 WO PCT/JP2018/008625 patent/WO2018193736A1/en active Application Filing
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 |