JP6102511B2 - Integrated circuit, control apparatus, control method, and control program - Google Patents
Integrated circuit, control apparatus, control method, and control program Download PDFInfo
- Publication number
- JP6102511B2 JP6102511B2 JP2013109394A JP2013109394A JP6102511B2 JP 6102511 B2 JP6102511 B2 JP 6102511B2 JP 2013109394 A JP2013109394 A JP 2013109394A JP 2013109394 A JP2013109394 A JP 2013109394A JP 6102511 B2 JP6102511 B2 JP 6102511B2
- Authority
- JP
- Japan
- Prior art keywords
- access
- access request
- circuit
- integrated circuit
- unit
- 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
Links
Images
Description
本発明は、集積回路、制御装置、制御方法、および制御プログラムに関する。 The present invention relates to an integrated circuit, a control device, a control method, and a control program.
従来、サーバに複数のFPGA(Field Programmable Gate Array)が接続されることにより、複数の利用者がサーバを介して複数のFPGAを利用可能となる技術がある(例えば、下記特許文献1参照。)。例えば、サーバは、利用者が利用中のFPGAを他の利用者によって利用させないように制御する。
Conventionally, there is a technique in which a plurality of users can use a plurality of FPGAs via a server by connecting a plurality of FPGAs (Field Programmable Gate Array) to the server (see, for example,
しかしながら、複数の利用者が同一のFPGAを共同で利用すると、FPGAを介して利用者の記憶領域へのアクセスを行う場合に利用者間の干渉が生じる場合がある。このため、利用者の処理環境が不安定になるという問題点がある。 However, when a plurality of users jointly use the same FPGA, there may be interference between users when accessing the storage area of the user via the FPGA. For this reason, there exists a problem that a user's processing environment becomes unstable.
1つの側面では、本発明は、利用者の処理環境を安定させることができる集積回路、制御装置、制御方法、および制御プログラムを提供することを目的とする。 In one aspect, an object of the present invention is to provide an integrated circuit, a control device, a control method, and a control program that can stabilize a processing environment of a user.
本発明の一の側面によれば、集積回路は、内部の回路を再構成可能であって、複数のコンピュータの各々に割り当てられた部分回路が各々異なる領域に構成される。部分回路の各々に割り当てられた異なる記憶領域の各々にアクセス可能であり、前記部分回路のうちのいずれかからのアクセス要求を受け付け、受け付けた前記アクセス要求が示すアクセス先が前記アクセス要求の要求元の部分回路に割り当てられた記憶領域である場合は、前記アクセス要求に基づくアクセスをアクセス部に実行させ、割り当てられた前記記憶領域でない場合は、前記アクセス要求に基づくアクセスを前記アクセス部に実行させない集積回路、および制御方法が提案される。 According to one aspect of the present invention, an integrated circuit can reconfigure an internal circuit, and partial circuits assigned to each of a plurality of computers are configured in different areas. Each of the different storage areas allocated to each of the partial circuits is accessible, accepts an access request from any of the partial circuits, and the access destination indicated by the received access request is the request source of the access request If the storage area is allocated to the partial circuit, the access unit executes access based on the access request, and if it is not the allocated storage area, the access unit does not execute access based on the access request. An integrated circuit and a control method are proposed.
本発明の他の側面によれば、制御装置は、内部の回路を再構成可能な集積回路であって、複数のコンピュータの各々に割り当てられた部分回路が各々異なる領域に構成された集積回路が接続される。複数のコンピュータのうちのいずれかから前記集積回路へのアクセス要求を受け付け、受け付けた前記アクセス要求が示すアクセス先が、前記アクセス要求の要求元のコンピュータに割り当てられた部分回路が構成された領域である場合は、前記アクセス要求に基づくアクセスを実行し、構成された前記領域でない場合は、前記アクセス要求に基づくアクセスを実行しない制御装置、制御方法、および制御プログラムが提案される。 According to another aspect of the present invention, the control device is an integrated circuit in which an internal circuit can be reconfigured, and an integrated circuit in which partial circuits assigned to each of a plurality of computers are configured in different regions. Connected. An access request to the integrated circuit is received from any of a plurality of computers, and the access destination indicated by the received access request is an area in which a partial circuit assigned to the requesting computer of the access request is configured. In some cases, a control device, a control method, and a control program that execute access based on the access request and that do not execute access based on the access request when the area is not configured are proposed.
本発明の一態様によれば、利用者の処理環境を安定させることができる。 According to one aspect of the present invention, the user's processing environment can be stabilized.
本実施の形態では、複数の利用者が異なる回路を同一のFPGA内に構成させる。また、本実施の形態では、複数の利用者の各々に割り当てられたコンピュータは、制御装置であるサーバを介してFPGAにアクセスする。 In this embodiment, a plurality of different users are configured in the same FPGA. In the present embodiment, a computer assigned to each of a plurality of users accesses the FPGA via a server that is a control device.
また、複数の利用者が同一のFPGAを共同で利用すると、FPGAを介して利用者の記憶領域へのアクセスを行う場合に、FPGAはサーバなどのコンピュータバスに接続されるため、いずれの利用者の記憶領域であってもアクセス可能である。そのため、利用者間の干渉が生じる場合がある。本実施の形態では、FPGAを介して利用者の記憶領域へのアクセスを行う場合に、異なる利用者の記憶領域へアクセスさせないようにFPGA内の管理モジュールが制御する。 In addition, when a plurality of users use the same FPGA jointly, when accessing the user's storage area via the FPGA, the FPGA is connected to a computer bus such as a server. Can be accessed even in the storage area. Therefore, interference between users may occur. In the present embodiment, when accessing a user's storage area via the FPGA, the management module in the FPGA controls not to access the storage area of a different user.
また、複数の利用者が同一のFPGAを共同で利用すると、複数の利用者がFPGAへのアクセスを行う場合に、利用者がFPGA内の異なる利用者の回路にアクセス可能であるため、利用者間の干渉が生じる場合がある。本実施の形態では、利用者がFPGAへのアクセスを行う場合に、異なる利用者の回路にアクセスさせないようにサーバが制御する。 In addition, when a plurality of users use the same FPGA jointly, when the plurality of users access the FPGA, the user can access the circuits of different users in the FPGA. Interference may occur. In the present embodiment, when the user accesses the FPGA, the server controls so as not to access the circuits of different users.
以下に添付図面を参照して、本発明にかかる集積回路、制御装置、制御方法、および制御プログラムの実施の形態を詳細に説明する。 Exemplary embodiments of an integrated circuit, a control device, a control method, and a control program according to the present invention will be explained below in detail with reference to the accompanying drawings.
図1は、本実施の形態にかかるシステムの動作例1を示す説明図である。システム100は、サーバ111と、複数の利用者の各々に割り当てられたコンピュータ121と、サーバ111に接続されたFPGA101と、を有する。システム100の詳細例は図3に示す。
FIG. 1 is an explanatory diagram of an operation example 1 of the system according to the present embodiment. The
サーバ111は、コンピュータ121からFPGA101へのアクセスを制御可能な制御装置である。FPGA101は、内部の回路を再構成可能な集積回路である。図1の例では、FPGA101には、部分回路としてユーザモジュール102−1とユーザモジュール102−2と、管理モジュール103と、が構成されてある。例えば、FPGA101の内部の回路を最構成させるソフトウェアには、FPGA101内の許可された領域のみにユーザモジュール102を構成可能なパーシャルコンフィギュレーション機能がある。そのため、FPGA101には、ユーザモジュール102−1と、ユーザモジュール102−2と、管理モジュール103と、がそれぞれ異なる領域に構成可能である。例えば、ユーザモジュール102−1は、コンピュータ121−1に割り当てられてあり、コンピュータ121−1がアクセス可能である。例えば、ユーザモジュール102−2は、コンピュータ121−2に割り当てられてあり、コンピュータ121−2がアクセス可能である。例えば、コンピュータ121−1と、コンピュータ121−2と、は利用者がそれぞれ異なる。複数の利用者の各々に割り当てられたコンピュータ121は、図1に示すように物理的な装置であってもよいし、サーバ111上に構築された仮想マシンであってもよい。
The
管理モジュール103は、アクセス部104と、受け付け部105と、制御部106と、を有する。アクセス部104は、ユーザモジュール102の各々に割り当てられた異なる記憶領域112の各々にアクセス可能である。アクセス部104は、例えば、DMA(Direct Memory Access)機能を有する。受け付け部105は、ユーザモジュール102−1とユーザモジュール102−2とのうちのいずれかからのアクセス要求を受け付ける。図1の例では、受け付け部105は、ユーザモジュール102−1からのアクセス要求を受け付ける。アクセス部104がDMA機能を実現する場合、具体的にアクセス要求は、DMAのパラメータを有する。DMAのパラメータは、例えば、転送方向、転送先アドレス、転送元アドレス、データ長、を有する。転送方向は、FPGA101からサーバ111へ、またはサーバ111からFPGA101へのいずれかである。
The
例えば、制御部106は記憶部107を有する。記憶部107には、各ユーザモジュール102の各々について、ユーザモジュール102に割り当てられた記憶領域112を示す情報を記憶する。記憶領域112は、FPGA101に接続されたサーバ111内のメモリの領域であってもよい。記憶領域112を示す情報は、例えば、記憶領域112を示すアドレスである。または、コンピュータ121−1およびコンピュータ121−2が物理的なコンピュータ121である場合に、記憶領域112は、各コンピュータ121に設けられたメモリの領域であってもよい。記憶領域112を示す情報は、例えば、記憶装置のアドレスである。例えば、ユーザモジュール102−1については、0〜100番が示す記憶領域112−1であり、ユーザモジュール102−2については、300〜400番が示す記憶領域112−2である。
For example, the
制御部106は、受け付け部105が受け付けたアクセス要求が示すアクセス先が記憶領域112−1である場合、アクセス要求に基づくアクセスをアクセス部104に実行させる。例えば、制御部106は、ユーザモジュール102−1から0〜100番が示す記憶領域112−1へのアクセス要求に基づくアクセスをアクセス部104に実行させる。
When the access destination indicated by the access request received by the receiving
一方、制御部106は、割り当てられた記憶領域112−1でない場合、アクセス要求に基づくアクセスをアクセス部104に実行させない。例えば、制御部106は、ユーザモジュール102−1から300〜400番が示す記憶領域112−2へのアクセス要求に基づくアクセスをアクセス部104に実行させない。
On the other hand, if the storage unit 112-1 is not allocated, the
図1に示したように、ある利用者が利用可能なFPGA101内の回路から、他の利用者が利用可能な該FPGA101内の他の回路に割り当てられた記憶領域へアクセスさせない。これにより、他の利用者の記憶領域がある利用者が利用可能な回路に干渉されるのを防ぐことができる。したがって、各利用者の処理環境を安定して機能させることができる。
As shown in FIG. 1, a storage area assigned to another circuit in the
図2は、本実施の形態にかかるシステムの動作例2を示す説明図である。システム100は、図1と同様の例を用いるため、詳細な説明を省略する。サーバ111は、受け付け部211と、制御部212と、を有する。
FIG. 2 is an explanatory diagram of an operation example 2 of the system according to the present embodiment. Since the
受け付け部211は、複数のコンピュータ121のうちのいずれかからFPGA101へのアクセス要求を受け付ける。図2の例では、制御部212は、コンピュータ121−1からのアクセス要求を受け付ける。
The accepting
制御部212は、記憶部213を有する。記憶部213は、複数のコンピュータ121の各々について、コンピュータ121に割り当てられたユーザモジュール102が構成された記憶領域201を示す情報を記憶する。例えば、ユーザモジュール102が構成された領域を示す情報は、FPGA101が有するメモリのうち、ユーザモジュール102内のメモリが構成された記憶領域201を示すアドレスである。
The
制御部212は、記憶部213の記憶内容に基づいて、受け付けたアクセス要求が示すアクセス先が、アクセス要求の要求元のコンピュータ121に割り当てられたユーザモジュール102が構成された領域である場合、アクセス要求に基づくアクセスを実行する。制御部212は、例えば、コンピュータ121−1からFPGA101内のメモリの0〜100番が示す記憶領域201−1へのアクセス要求に基づくアクセスを実行する。
When the access destination indicated by the received access request is an area in which the
一方、制御部212は、記憶部213の記憶内容に基づいて、要求元のコンピュータ121に割り当てられたユーザモジュール102が構成された領域でない場合、アクセス要求に基づくアクセスを実行しない。制御部212は、例えば、コンピュータ121−1からFPGA101内のメモリの300〜400番が示す記憶領域201−2へのアクセス要求に基づくアクセスを実行しない。
On the other hand, the
図2に示したように、FPGA101は、ある利用者から他の利用者に割り当てられた該FPGA101内のユーザモジュール102へアクセスさせない。これにより、他の利用者に割り当てられたFPGA101内のユーザモジュールがある利用者によって干渉されるのを防ぐことができる。したがって、各利用者の処理環境を安定して機能させることができる。
As shown in FIG. 2, the
図3は、システムの詳細例を示す説明図である。システム100では、複数の利用者がデータセンタ301にあるサーバに接続されたFPGA101を利用して所望の回路を実現する。システム100は、端末302と、データセンタ301と、を有する。データセンタ301には、複数のサーバがある。
FIG. 3 is an explanatory diagram showing a detailed example of the system. In the
端末302は利用者が直接操作可能な装置であり、図3の例では、利用者が2人であるため、端末302−1と端末302−2を示す。端末302は、例えば、PC(Personal Computer)やワークステーションである。 The terminal 302 is a device that can be directly operated by the user. In the example of FIG. 3, since there are two users, the terminal 302-1 and the terminal 302-2 are shown. The terminal 302 is, for example, a PC (Personal Computer) or a workstation.
また、具体的に、データセンタ301には、例えば、FPGA101にプログラムさせるためのコンフィギュレーションデータを生成するための開発システム303用のサーバ304−1,304−2がある。また、データセンタ301には、コンフィギュレーションデータがプログラムされることにより内部の回路が構成される当該FPGA101に接続されたサーバ111がある。開発システム303と、サーバ111とは、想定される利用者の総数に応じて複数用意される。
Specifically, the
また、データセンタ301には、サーバプールデータベース332とFPGAデータベース331などを記憶するデータベースサーバ306がある。サーバプールデータベース332用のデータベースサーバ306と、FPGAデータベース331用のデータベースサーバ306と、に分けて用意されてもよい。
The
また、データセンタ301には、後述する仮想マシン生成プログラム321を実行するサーバ305と、後述する受け入れ検査プログラム322を実行するサーバ307と、がある。また、データセンタ301には、本実施の形態にかかるシステム100の全体を制御する全体制御プログラム323を実行する制御用のサーバ308がある。また、データセンタ301には、一般的な運用管理用のサーバ309がある。
The
ここで、図1、図2に示したコンピュータ121は、端末302であっても、仮想マシンVMであってもよいが、本実施の形態では、仮想マシンVMを例に挙げる。仮想マシンVMを利用することにより、通信に要する時間を短縮させることができる。各利用者は、所望のユーザモジュール102をサーバ111に接続されたFPGA101によって構成させ、当該サーバ111上で仮想マシンVMを構築させる。これにより、各利用者は、サーバ111が実現する仮想マシンVM上で実行されるアプリケーションソフトウェアと、FPGA101に構成されたユーザモジュール102と、の間でやり取りを行わせることができる。図3の例では、サーバ111は、端末302−1に割り当てられた仮想マシンVM1と、端末302−2に割り当てられた仮想マシンVM2と、を構築する。仮想マシンVM1はユーザモジュール102−1に割り当てられ、仮想マシンVM2はユーザモジュール102−2に割り当てられる。
Here, the computer 121 illustrated in FIGS. 1 and 2 may be the terminal 302 or the virtual machine VM, but in this embodiment, the virtual machine VM is taken as an example. By using the virtual machine VM, the time required for communication can be shortened. Each user configures a desired
図4は、端末とサーバのハードウェア構成例を示すブロック図である。サーバ111は、例えば、CPU411と、メモリ412と、ディスク413と、ディスクドライブ414と、PCIe(Peripheral Component Interconnect express)415と、ネットワークインターフェース416と、を有する。
FIG. 4 is a block diagram illustrating a hardware configuration example of the terminal and the server. The
また、サーバ111は、PCIe415によってFPGA101を搭載した拡張ボード401と、接続される。PCIe415は、インターフェースの一種である。拡張ボード401は、例えば、FPGA101と、FPGA101の外部のメモリ402と、I/O(Input/Output)インターフェース403と、などを有する。また、サーバ111は、ネットワークインターフェース416によってネットワークNETを介して利用者が直接操作可能な端末302と接続される。
The
まず、CPU411は、サーバ111の全体の制御を司る。メモリ412は、CPU411のワークエリアとして使用される記憶部である。メモリ412としては、例えば、RAM(Random Access Memory)などが挙げられる。ディスクドライブ414は、CPU411の制御にしたがってディスク413に対するデータのリード/ライトを制御する。ディスク413は、ディスクドライブ414の制御で書き込まれたデータを記憶する記憶部である。ディスク413としては、例えば、磁気ディスク、光ディスクなどが挙げられる。
First, the
ネットワークインターフェース416は、通信回線を通じてLAN(Local Area Network)、WAN(Wide Area Network)、インターネットなどのネットワークNETに接続され、このネットワークNETを介して他の装置に接続される。そして、ネットワークインターフェース416は、ネットワークNETと内部のインターフェースを司り、外部装置からのデータの入出力を制御する。ネットワークインターフェース416には、例えば、モデムやLANアダプタなどを採用することができる。
The
また、データセンタ301内の各種サーバは、サーバ111と同様のハードウェア構成とする。
The various servers in the
また、端末302は、例えば、PCやワークステーションなどが挙げられる。端末302は、例えば、CPU421と、メモリ422と、ディスク423と、ディスクドライブ424と、入力装置425と、出力装置426と、ネットワークインターフェース427と、を有する。
Examples of the terminal 302 include a PC and a workstation. The terminal 302 includes, for example, a
CPU421は、端末302の全体の制御を司る。メモリ422は、CPU421のワークエリアとして使用される記憶部である。ディスクドライブ424は、CPU421の制御にしたがってディスク423に対するデータのリード/ライトを制御する。ディスク423は、ディスクドライブ424の制御で書き込まれたデータを記憶する。ディスク423としては、磁気ディスク、光ディスクなどが挙げられる。
The
ネットワークインターフェース427は、通信回線を通じてLAN、WAN、インターネットなどのネットワークNETに接続され、このネットワークNETを介して他の装置に接続される。そして、ネットワークインターフェース427は、ネットワークNETと内部のインターフェースを司り、外部装置からのデータの入出力を制御する。ネットワークインターフェース427には、例えば、モデムやLANアダプタなどを採用することができる。
The
入力装置425は、キーボード、マウス、タッチパネルなど利用者の操作により、各種データの入力を行うインターフェースである。また、入力装置425は、カメラから画像や動画を取り込むこともできる。また、入力装置425は、マイクから音声を取り込むこともできる。出力装置426は、CPU421の指示により、データを出力するインターフェースである。出力装置426には、ディスプレイやプリンタが挙げられる。
The
図5は、サーバによるソフトウェアの実行例を示す説明図である。サーバ111は、ディスク413などの記憶装置に記憶されたプログラムをCPU411がロードすることにより、ハイパーバイザHVと、管理OS(Operating System)501−cを実行する仮想マシンVMcとなどを実行する。例えば、サーバ111は、仮想マシンVMcと、端末302の各々に割り当てられた仮想マシンVMx(図5中x=1,2)と、の各々を制御するハイパーバイザHVと、を実行する。
FIG. 5 is an explanatory diagram of an example of software execution by the server. The
説明上仮想マシンVM、OS501、アプリケーションソフトウェア503、デバイスドライバ502は、サーバ111によって実行されるものであるが、ここでは、説明上実行主体して記載する。仮想マシンVMcは、管理OS501−cと、管理OS501−cに呼び出されるデバイスドライバ502−cと、管理OS501−cが実行するソフトウェア503−cと、を実行する。ソフトウェア503−cは、端末302に割り当てられた仮想マシンVM全体を管理するプログラムである。デバイスドライバ502−cは、拡張ボード401を制御して、各アプリケーションソフトウェア503に対するインターフェースを提供するソフトウェアである。
For the purpose of explanation, the virtual machine VM,
端末302−xに各々割り当てられた仮想マシンVMxは、それぞれOS501−xを実行する。また、仮想マシンVMxは、それぞれOS501−xに呼び出されるデバイスドライバ502−xと、OS501−xが実行するアプリケーションソフトウェア503−xと、を実行する。デバイスドライバ502−xは、仮想マシンVMxの各々に割り当てられたFPGA101内のユーザモジュール102−xへのアクセスを制御する。
Each virtual machine VMx assigned to the terminal 302-x executes the OS 501-x. The virtual machine VMx executes a device driver 502-x called by the OS 501-x and application software 503-x executed by the OS 501-x. The device driver 502-x controls access to the user module 102-x in the
(利用開始時)
図6は、システムの利用開始時のフロー例を示す説明図である。全体制御プログラム323を実行するサーバ308は、開発システム303やサーバ305やサーバ307やサーバ111などを制御することにより、全体を制御する。全体制御プログラム323は、制御用のサーバ308内のディスク413などの記憶装置に記憶され、サーバ308内のCPU411は、記憶装置から全体制御プログラム323を読み出して実行する。これにより、全体制御プログラム323にコーディングされた機能が実現される。具体的には、サーバ308は、各利用者からの指示に応じて開発システム303を利用者が操作可能なように割り当てる。また、当該サーバ308は、受け入れ検査プログラム322を実行するサーバ307や仮想マシン生成プログラム321を実行するサーバ305に処理を依頼するなどの全体の制御を行う。
(At start of use)
FIG. 6 is an explanatory diagram showing an example of a flow at the start of use of the system. The
各利用者は、開発システム303によって、FPGA101上で動作するユーザモジュール102を設計する。開発システム303は、利用者によって設計されたユーザモジュール102を示すコンフィギュレーションデータを生成する。
Each user designs the
また、サーバ305は、仮想マシン仕様定義ファイル611と、サーバプールデータベース332に登録された仮想マシンVMと、によって、仮想マシンVMを配置可能なサーバ111を決定する。仮想マシン仕様定義ファイル611は、仮想マシンVMの仕様を示す情報、コンフィギュレーションデータを示す識別情報などを有する。仮想マシンVMの仕様を示す情報は、CPU、メモリ、ディスク、ネットワークインターフェースなどの仕様を示す。利用者は、仮想マシンの仕様を決定し、仮想マシン仕様定義ファイル611をデータセンタ301へ端末302を介して入力する。また、サーバ307は、利用者によって設計されたユーザモジュール102が、決定したサーバ111に接続された拡張ボード401のFPGA101に構成可能か否かを判断する。
In addition, the
図7は、開発システム例を示す説明図である。データセンタ301には、拡張ボード704に接続されたサーバ304−1と、FPGA開発ソフトウェア703を実行中のサーバ304−2と、ゲートウェイ701と、がある。拡張ボード704は、拡張ボード401と同様のボードとする。
FIG. 7 is an explanatory diagram illustrating an example of a development system. The
FPGAプログラミングケーブル705は、サーバ304−2と拡張ボード704とを接続する。拡張ボード704には、管理モジュール103が予め構成されてあってもよい。FPGAプログラミングケーブル705は、JTAGによってサーバ304−2が設計したユーザモジュール102を示すコンフィギュレーションデータを拡張ボード704に書き込むことができる。また、FPGAプログラミングケーブル705は、FPGA101内の内部状態を参照または変更することができる。端末302はネットワークNETを介してデータセンタ301のゲートウェイ701に接続される。利用者は、端末302を介してサーバ304−2が実行中のFPGA開発ソフトウェア703によってユーザモジュール102の設計やデバッグを行う。また、サーバ304−2については、サーバ304−1上に仮想マシンVMとして構築されてもよい。
The
利用者は、JTAGによって、拡張ボード704のFPGA101内部全体にアクセス可能となるため、開発システム303については、全体制御プログラム323を実行するサーバ308によって、複数の利用者が同時に利用しないように制限されてもよい。そのため、開発システム303については、想定される利用者の数に応じて複数用意される。
Since the user can access the entire inside of the
また、利用者がサーバ304−1を占有する場合、開発システム303にリモート制御702の機能が用意され、サーバ304−1の電源オンまたは電源オフ、リセット、コンソールアクセスなどが可能な仕組みが用意される。
Further, when the user occupies the server 304-1, the
図8は、仮想マシン生成プログラムを実行するサーバによる生成処理手順例を示すフローチャートである。仮想マシン生成プログラム321は、例えば、サーバ305内のディスク413などの記憶装置に記憶され、サーバ305内のCPU411が、記憶装置から仮想マシン生成プログラム321を読み出して実行する。これにより、仮想マシン生成プログラム321にコーディングされた機能が実現される。
FIG. 8 is a flowchart illustrating an example of a generation processing procedure by a server that executes a virtual machine generation program. For example, the virtual
まず、サーバ305は、仮想マシン仕様定義ファイル611と、コンフィギュレーションデータ802と、を受け付ける(ステップS801)。上述したように、仮想マシン仕様定義ファイル611は、仮想マシンVMの仕様を示す情報、コンフィギュレーションデータ802を示す識別情報などを有する。
First, the
つぎに、サーバ305は、サーバプールデータベース332を検索して、仮想マシン仕様定義ファイル611が示す仮想マシンVMを配置可能なサーバ111を特定する(ステップS802)。そして、サーバ305は、特定したサーバ111の中に未選択のサーバ305があるか否かを判断する(ステップS803)。サーバプールデータベース332には、運用時に使用される各サーバ111にどのような仮想マシンVMが動作中であるかを示す情報と、各仮想マシンVMに割り当てられたリソース情報などが記憶される。ここでの割り当てられたリソース情報には、各仮想マシンVMに割り当てられたサーバ111内のCPU、メモリ412内の記憶領域、ディスク413内の記憶領域などを示す情報が含まれる。また、リソース情報は、サーバ305に接続されたFPGA101にどのユーザモジュール102が構成されたかを示す情報が含まれる。
Next, the
未選択のサーバ111がある場合(ステップS803:Yes)、サーバ305は、未選択のサーバ111から1つのサーバ111を選択する(ステップS804)。サーバ305は、FPGAデータベース331を検索して、選択したサーバ111に接続された拡張ボード401のFPGA101を利用可能か確認する(ステップS805)。サーバ305は、FPGA101を利用可能か否か判断する(ステップS806)。利用可能でない場合(ステップS806:No)、サーバ305は、ステップS803へ戻る。
When there is an unselected server 111 (step S803: Yes), the
利用可能である場合(ステップS806:Yes)、サーバ305は、ステップS807へ移行する。サーバ305は、開発システム303からのコンフィギュレーションデータ802に基づいて、FPGA101設計ツールを用いてユーザモジュール102をレイアウトする。そして、サーバ305は、選択したサーバ111に接続されたFPGA101に書き込むコンフィギュレーションデータ803を生成する(ステップS807)。つぎに、サーバ305は、仮想マシン定義ファイル804を生成し(ステップS808)、サーバ305は、選択したサーバ111に仮想マシン定義ファイル804を転送し(ステップS809)、一連の処理を終了する。仮想マシン定義ファイル804は、仮想マシンVMの仕様を示す情報、仮想マシンVMに含まれるメモリやディスクなどのディスクイメージ、ステップS807によって生成されたコンフィギュレーションデータ803などが含まれる。
If it is available (step S806: Yes), the
ステップS803において、未選択のサーバ111がない場合(ステップS803:No)、サーバ305は、エラーを出力し(ステップS810)、一連の処理を終了する。
In step S803, when there is no unselected server 111 (step S803: No), the
図9は、運用時のサーバによる初期設定処理手順例を示すフローチャートである。サーバ111は、仮想マシン定義ファイル804を受け付けたか否かを判断する(ステップS901)。仮想マシン定義ファイル804を受け付けていない場合(ステップS901:No)、サーバ111は、ステップS901へ戻る。仮想マシン定義ファイル804を受け付けた場合(ステップS901:Yes)、サーバ111は、コンフィギュレーションデータ803が示すユーザモジュール102が許可された領域のみに再構成されるかを受け入れ検査プログラム322を実行するサーバ307に確認を依頼する(ステップS902)。
FIG. 9 is a flowchart illustrating an example of an initial setting process procedure by the server during operation. The
サーバ111は、再構成可能か否かを判断する(ステップS903)。再構成可能である場合(ステップS903:Yes)、サーバ111は、ハイパーバイザHVによって、仮想マシンVMを構築する(ステップS904)。サーバ111は、管理OS501−cによって、パーシャル・リコンフィギュレーション機能を用いてFPGA101内にユーザモジュール102を構成する(ステップS905)。サーバ111は、管理OS501−cによって、FPGA101内の管理モジュール103にある後述するアクセス許可設定レジスタに、ユーザモジュールがアクセス可能なメモリ412の物理アドレス範囲を設定する(ステップS906)。
The
つぎに、サーバ111は、デバイスドライバ502によって、FPGA101内のあらたなユーザモジュール102を認識する(ステップS907)。そして、サーバ111は、ハイパーバイザHVによって、仮想マシンVMを起動し(ステップS908)、一連の処理を終了する。これにより、利用者が仮想マシンVM上でアプリケーションソフトウェアを実行し、FPGA101に構成されたユーザモジュール102が利用可能となる。一方、ステップS903において、再構成可能でない場合(ステップS903:No)、サーバ111は、エラーを出力し(ステップS909)、一連の処理を終了する。
Next, the
図10は、受け入れ検査プログラムを実行するサーバのデータフロー例を示す説明図である。受け入れ検査プログラム322は、例えば、サーバ307内のディスク413などの記憶装置に記憶され、サーバ307内のCPU411が、記憶装置から受け入れ検査プログラム322を読み出して実行する。
FIG. 10 is an explanatory diagram illustrating a data flow example of a server that executes an acceptance inspection program. The
サーバ307は、受け入れ検査プログラム322によって、コンフィギュレーションデータ803と、デバイス情報1001と、を入力として受け付ける。デバイス情報1001には、利用者がプログラミング可能なFPGA101の領域の情報、デバイスがアドレス空間にマップする領域の情報などが含まれる。サーバ307は、受け入れ検査プログラム322によって、利用者によって設計されたユーザモジュール102をデータセンタ301にあるいずれのFPGA101で構成可能かをFPGAデータベース331に基づいて判断する。また、サーバ307は、実際にサーバ311に接続されたえFPGA101に書き込み、管理モジュール103、他のユーザモジュール102、などを領域が変更されていないかをCRC(Cyclic Redundancy Check)チェックサムなどによって確認してもよい。サーバ307は、受け入れ検査プログラム322によって、受け入れ可能なであると判断した場合にFPGAデータベース331に、検査結果を登録する。
The
例えば、検査結果として、1.コンフィギュレーションデータ803を示す識別情報、2.コンフィギュレーションデータ803、3.作成者の識別情報、4.利用許可情報、5.改変許可情報、6.デバイス種類情報がFPGAデータベース331へ登録される。作成者の識別情報としては、例えば、利用者の氏名情報であってもよいし、利用者が操作可能な端末302の識別情報であってもよい。利用許可情報は、いずれの利用者または端末302がコンフィギュレーションデータ803を使用可能であるかを示す情報である。利用許可情報によって、複数の利用者がコンフィギュレーションデータ803を共用することができ、複数の利用者が同一機能のユーザモジュール102を利用することができる。改変許可情報は、いずれの利用者または端末302がコンフィギュレーションデータ803を変更可能であるかを示す情報である。デバイス種類情報は、いずれの種類のFPGA101であれば利用可能であるかを示す情報である。
For example, as an inspection result, 1. 1. identification information indicating
(サーバ111の機能的構成例)
図11は、サーバの機能的構成例を示すブロック図である。サーバ111は、受け付け部211と、制御部212と、計測部1101と、を有する。受け付け部211と制御部212と計測部1101は、例えば、管理OS501−cのデバイスドライバ502−cにコーディングされてあり、サーバ111が仮想マシンVMcによって管理OS501−cを実行する。これにより、受け付け部211と制御部212と計測部1101とが実現される。
(Example of functional configuration of server 111)
FIG. 11 is a block diagram illustrating a functional configuration example of the server. The
また、計測部1101については、サーバ111の機能でなく、管理モジュール103に設けられていてもよい。管理モジュール103に計測部1101が設けられる場合、制御部212は、管理モジュール103からデータ量を取得する機能を有する。
Further, the
図12は、メモリアロケーション例を示す説明図である。仮想マシン環境では、2段階のアドレス変換が行われる。仮想マシンVMcには、仮想アドレス空間1211−cと、メモリ412やFPGA101などの各種デバイスにアクセスするための物理アドレス空間1213と、が対応付けられる。仮想マシンVMcの仮想アドレス空間1211−cには、例えば、管理OS501−cが使用するメモリのアドレス空間がある。管理OS501−cが使用するメモリには、例えば、論理アドレスを物理アドレスに変換するためのテーブル1201などが記憶される。仮想マシンVMcの仮想アドレス空間1211−cには、例えば、各種デバイスドライバ502−cが使用するメモリと、ソフトウェア503−cが使用するメモリと、のそれぞれのアドレス空間がある。デバイスドライバ502−cが使用するメモリには、サーバ111が転送したデータ量を計測するための累積データ量カウンタが記憶される。この累積データ量カウンタが計測部1101である。
FIG. 12 is an explanatory diagram of an example of memory allocation. In the virtual machine environment, two-stage address translation is performed. A virtual address space 1211-c and a
また、端末302−xに割り当てられた仮想マシンVMxには、仮想アドレス空間1211−xと仮想マシンVM−xに割り当てられたユーザモジュール102−xにアクセスするための物理アドレス空間1213とが対応付けられる。仮想マシンVMxの仮想アドレス空間1211−xには、例えば、OS501−xが使用するメモリのアドレス空間がある。OS501−xが使用するメモリには、例えば、論理アドレスを物理アドレスに変換するためのテーブル1202がある。また、仮想マシンVM−xの仮想アドレス空間1211−xには、ユーザモジュール102−x用のデバイスドライバ502−xが使用するメモリのアドレス空間がある。また、仮想マシンVMxの仮想アドレス空間1211−xには、アプリケーションソフトウェア503−xが使用するメモリの仮想アドレス空間がある。デバイスドライバ502−xが使用するメモリと、アプリケーションソフトウェア503−xが使用するメモリとは、例えば、バッファメモリ1203は、デバイスドライバ502−xがアプリケーションソフトウェア503−xが使用するメモリとのうちの少なくともいずれか一方にある。バッファメモリ1203は、FPGA101と、デバイスドライバ502−xまたはアプリケーションソフトウェア503−xと、の間でデータ転送するためのメモリである。
The virtual machine VMx assigned to the terminal 302-x is associated with the virtual address space 1211-x and the
また、仮想アドレス空間1212は、ハイパーバイザHVのレベルで認識される。物理アドレス空間1213は、メモリ412内の各OS、デバイスドライバ502、アプリケーションの各々が使用する領域と、FPGA101内の各ユーザモジュール102が使用するメモリと、がある。CPU411が有するMMU(Memory Management Unit)は、各仮想マシンVMの仮想アドレス空間1211と、仮想アドレス空間1212と、の間のアドレス変換を行う。さらに、CPU411が有するMMUは、仮想アドレス空間1212と、物理アドレス空間1213と、の間のアドレス変換を行う。
The
図13は、各ユーザモジュールに割り当てられた記憶領域の詳細例を示す説明図である。例えば、仮想アドレス空間1211における管理OS501−cが使用するためのI/Oメモリは、物理アドレス空間1213における記憶領域acと、記憶領域au1と、記憶領域au2と、である。記憶領域acは、管理モジュール103に割り当てられたメモリ412内の領域である。記憶領域au1は、ユーザモジュール102−1に割り当てられたメモリ412内の領域である。記憶領域au2は、ユーザモジュール102−2に割り当てられたメモリ412内の領域である。
FIG. 13 is an explanatory diagram showing a detailed example of the storage area allocated to each user module. For example, the I / O memory used by the management OS 501-c in the
仮想アドレス空間1211における仮想マシンVM1が使用するメモリは、物理アドレス空間1213におけるメモリ412内の記憶領域a1である。仮想アドレス空間1211における仮想マシンVM1が使用するI/Oメモリは、物理アドレス空間1213における記憶領域au1である。仮想アドレス空間1211における仮想マシンVM2が使用するメモリは、物理アドレス空間1213におけるメモリ412内の記憶領域a2である。仮想アドレス空間1211における仮想マシンVM2が使用するI/Oメモリは、物理アドレス空間1213における記憶領域au2である。
The memory used by the virtual machine VM1 in the
記憶領域acを示すアドレス範囲は、e0000000〜e00fffffである。記憶領域au1を示すアドレス範囲は、e0100000〜e01fffffである。記憶領域au2を示すアドレス範囲は、e0200000〜e02fffffである。 The address range indicating the storage area ac is e0000000 to e00fffff. The address range indicating the storage area au1 is e0100000 to e01fffff. The address range indicating the storage area au2 is e0200000 to e02fffff.
(FPGA101に構成された各ユーザモジュール102)
図14は、FPGAに構成された各ユーザモジュール例を示すブロック図である。FPGA101には、管理モジュール103と、ユーザモジュール102と、が構成される。管理モジュール103は、DMA回路1403と、再構成回路1404と、PCIe1405と、制御回路1406と、メモリコントローラ1407と、メモリ1408と、を有する。ユーザモジュール102は、上述したように、利用者によって設計され、利用者の端末302に割り当てられる。ユーザモジュール102は、メモリ601と、回路1401と、を有する。管理モジュール103とユーザモジュール102とは、ポート1402を介して接続される。管理モジュール103は、アクセス要求をいずれのポート1402を介して受け付けたかによって要求元のユーザモジュール102を判別することができる。
(Each
FIG. 14 is a block diagram illustrating an example of each user module configured in the FPGA. The
DMA回路1403は、DMAのパラメータを設定するレジスタ1411を有する。上述したように、DMAのパラメータは、例えば、転送方向、転送先アドレス、転送元アドレス、データ長、を有する。転送方向は、FPGA101からサーバ111へ、またはサーバ111からFPGA101へのいずれかである。制御回路1406は、累積データ量カウンタ1412と、アクセス許可設定レジスタ1413と、を有する。累積データ量カウンタ1412は、ユーザモジュール102からのアクセス要求に基づくDMA回路1403によるデータ量を計測する計測部である。アクセス許可設定レジスタ1413は、サーバ111内のメモリ412のうちの、ユーザモジュール102ごとにユーザモジュール102に対応付けられた仮想マシンVMに割り当てられた記憶領域を示す情報が記憶される記憶部107である。
The
また、アクセス許可設定レジスタ1413は、ユーザモジュール102ごとに、メモリ412内のアクセス可能な領域を示すアドレス範囲と、転送量の規制値と、が記憶される記憶部107である。例えば、アクセス許可設定レジスタ1413には、ユーザモジュール102が管理OS501−cによって構成される際に、メモリ412について、管理OS501−cによってアドレス範囲を示す情報と、データ量の制限値と、が設定される。設定例は図15に示す。
The access
また、アクセス許可設定レジスタ1413には、ユーザモジュール102ごとに、メモリ402、メモリ602、I/Oインターフェース403などのアクセス許可を示す情報が記憶される。例えば、アクセス許可設定レジスタ1413には、ユーザモジュール102が管理OS501−cによって構成される際に、メモリ402、メモリ602、I/Oインターフェース403について、管理OS501−cによってアクセス許可を示す情報が設定される。そのため、ユーザモジュール102からメモリ402、メモリ602,I/Oインターフェース403などへのアクセスは、制御回路1406を介して行われる。ユーザモジュール102からメモリ402、メモリ602,I/Oインターフェース403などへのアクセスについての詳細例は省略するが、ユーザモジュール102からメモリ412へのアクセスと同様に制御回路1406がアクセス可能か否かを判断する。
The access
再構成回路1404は、サーバ111からのコンフィギュレーションデータ803に基づいて、FPGA101内にユーザモジュール102が構成される際にポート1402などを構成する機能を有する。メモリコントローラ1407は、メモリ1408を制御する。PCIe1405は、PCIe415を介してサーバ111にアクセスする際の制御を行う。
The
図15は、アクセス許可設定レジスタの設定例を示す説明図である。ここでは、理解の容易化のために、アクセス許可設定レジスタ1413をテーブルのように表す。アクセス許可設定レジスタ1413には、ユーザモジュール102ごとに、メモリ412内のアクセス可能な領域を示すアドレス範囲と、転送量の規制値と、が設定される。
FIG. 15 is an explanatory diagram of a setting example of the access permission setting register. Here, for easy understanding, the access
転送量の規制値は、複数のユーザモジュール102からのアクセス要求が重なった際にいずれかのユーザモジュール102によってアクセスが占有されるのを防ぐための、ユーザモジュール102のアクセス優先度を決定するための閾値である。転送量の規制値については、例えば、ユーザモジュール102の回路規模などに基づいて決定される。例えば、転送量の規制値は、受け入れ検査プログラム322や管理OS501−cなどによって決定される。例えば、管理モジュール103については、他のユーザモジュール102よりも重要度が高いとして、転送量の規制値によってアクセスを制限させないこととする。例えば、管理モジュール103については、アドレス範囲がe0000000〜e00fffffであり、転送量の規制値は、∞である。ユーザモジュール102−1については、アドレス範囲がe0100000〜e01fffffであり、転送量の規制値は500[Mbps]である。例えば、ユーザモジュール102−2については、アドレス範囲がe0200000〜e02fffffであり、転送量の規制値は1000[Mbps]である。
The restriction value of the transfer amount is for determining the access priority of the
図16は、ユーザモジュールとポートの対応例を示す説明図である。例えば、テーブル1600が示すように、管理モジュール103のポート1402−1にはユーザモジュール102−1が接続され、管理モジュール103のポート1402−2にはユーザモジュール102−2が接続される。例えば、ユーザモジュール102とポート1402の対応関係については、管理モジュール103内にテーブル化されてあってもよい。また、例えば、管理モジュール103には、予め複数のポート1402が用意され、ユーザモジュール102が構成される領域に応じてユーザモジュール102に使用されるポート1402が決定されてもよい。
FIG. 16 is an explanatory diagram showing an example of correspondence between user modules and ports. For example, as shown in the table 1600, the user module 102-1 is connected to the port 1402-1 of the
図17は、デバイスドライバが有するテーブル例を示す説明図である。テーブル1700は、仮想マシンVMに割り当てられたFPGA101内の領域を示す記憶部213である。仮想マシンVMに割り当てられたFPGA101内の領域とは、仮想マシンVMに割り当てられたFPGA101内のユーザモジュール102が構成された領域に含まれる記憶領域である。テーブル1700は、例えば、デバイスドライバ502−cに割り当てられたメモリ412内の記憶領域に記憶される。具体的に、テーブル1700には、仮想マシンVMごとに仮想マシンVMに割り当てられたFPGA101内のユーザモジュール102の記憶領域を示すアドレス範囲が記憶される。
FIG. 17 is an explanatory diagram illustrating an example of a table included in the device driver. The table 1700 is a
仮想マシンVMcについては、端末302に割り当てられた仮想マシンVMxを管理するため、FPGA101内のすべての領域に対してアクセス可能とする。また、仮想マシンVMcについては、端末302に割り当てられた仮想マシンVMxよりもアクセス要求の重要度が高いとし、転送量の規制値によってアクセスを制限させないこととする。そのため、仮想マシンVMcについては、アドレス範囲がe0100000〜e03fffffであり、転送量の規制値は∞である。仮想マシンVM1については、アドレス範囲がe0100000〜e01fffffであり、転送量の規制値は500[Mbps]である。仮想マシンVM2については、アドレス範囲がe0200000〜e02fffffであり、転送量の規制値は1000[Mbps]である。
The virtual machine VMc is made accessible to all areas in the
(仮想マシンVMからユーザモジュール102へのアクセス要求)
本実施の形態では、仮想マシンVMからユーザモジュール102へのアクセスは、PIO(Programmed I/O)やMemory Mapped I/Oによって実現される。
(Access request from the virtual machine VM to the user module 102)
In this embodiment, access from the virtual machine VM to the
受け付け部211は、端末302に割り当てられた仮想マシンVMのいずれかからFPGA101へのアクセス要求を受け付ける。制御部212は、受け付けたアクセス要求が示すアクセス先が、アクセス要求の要求元の仮想マシンVMに割り当てられたユーザモジュール102が構成された領域である場合、アクセス要求に基づくアクセスを実行する。具体的には、制御部212は、テーブル1700に基づいて、アクセス要求に含まれるFPGA101内の領域を示すアドレスが、アクセス要求の要求元の仮想マシンVMについてのアドレス範囲に含まれる場合、アクセス要求に基づくアクセスを実行する。制御部212は、構成された領域でない場合、アクセス要求に基づくアクセスを実行しない。具体的に、制御部212は、テーブル1700に基づいて、アクセス要求に含まれるFPGA101内の領域を示すアドレスが、アクセス要求の要求元の仮想マシンVMについてのアドレス範囲に含まれない場合、アクセス要求に基づくアクセスを実行しない。また、制御部212は、構成された領域でない場合、アクセス要求の要求元の仮想マシンVMに対してエラーを出力してもよい。
The accepting
また、制御部212は、構成された領域でない場合に、アクセス要求を要求元の仮想マシンVMに割り当てられたユーザモジュール102が構成された領域へのアクセス要求に補正し、補正したアクセス要求を実行してもよい。具体的に、制御部212は、テーブル1700に基づいて、仮想マシンVMについてのアドレス範囲に含まれない場合、アクセス要求をアドレス範囲に含まれる領域へのアクセス要求に補正する。より詳細な例は、図20を用いて後述する。
In addition, when the area is not the configured area, the
また、制御部212は、構成された領域である場合において、他の仮想マシンVMからのアクセス要求に基づくアクセスを実行している場合、他の仮想マシンVMからのアクセス要求に基づくアクセスの終了を待機する。ここでは、例えば、あらたに受け付けられたアクセス要求の要求元を第1仮想マシンVMとし、該他の仮想マシンVMを第2仮想マシンVMとする。そして、制御部212は、終了後に、第1仮想マシンVMからのアクセス要求に基づくアクセスを実行する。これにより、複数の仮想マシンVMからFPGA101へのアクセスが重なっても、アクセス要求を受け付けた時刻が早い順にアクセス要求が示すアクセスを終了させることができる。
In addition, in the case where the
また、いずれかの仮想マシンVMが、FPGA101とサーバ111とを接続するPCIe1405などの共用リソースを連続して使用すると、他の仮想マシンVMがPCIe1405を利用できなくなってしまう。そこで、計測部1101は、第1仮想マシンVMからのアクセス要求に基づいて転送した所定時間当たりの第1データ量と、第2仮想マシンVMからの前アクセス要求に基づいて転送した所定時間当たりの第2データ量と、を計測する。所定時間については、運用前にシステム100の開発者やデータセンタ301の管理者によって決定されることとする。具体的には、計測部1101は、第1仮想マシンVMからのアクセス要求に基づいて転送したデータ量を累積し、所定時間間隔でサンプリングすることにより、所定時間当たりの転送したデータ量を計測する。
In addition, if any one of the virtual machines VM continuously uses a shared resource such as
制御部212は、第2仮想マシンVMからのアクセス要求に基づくアクセスを実行している場合において、計測部1101が計測した第1データ量と、計測部1101が計測した第2データ量と、に基づいて、第1状態と第2状態とを切り替える。第1状態は、第1仮想マシンVMからのアクセス要求に基づくアクセスを実行する状態であり、第2状態は、第2仮想マシンVMからのアクセス要求に基づくアクセスを実行する状態である。
When executing access based on an access request from the second virtual machine VM, the
制御部212は、第1データ量と第1仮想マシンVMについての閾値との比較結果と、第2データ量と第1仮想マシンVMについての閾値との比較結果と、に基づいて、第1状態と第2状態とを切り替える。閾値は、上述した転送量の規制値である。例えば、制御部212は、第1状態の場合において、第1データ量が第1仮想マシンVMについての規制値を超えた場合、第1状態から第2状態に切り替える。また、例えば、制御部212は、第2状態の場合において、第2データ量が第2仮想マシンVMについての規制値を超えた場合、第2状態から第1状態に切り替える。より詳細な例については、図21を用いて後述する。このように、各仮想マシンVMからのアクセス要求に基づくアクセスの実行を切り替えることにより、サーバ111内のPCIe415などの共用リソースを複数の仮想マシンVMが公平に利用可能となる。
Based on the comparison result between the first data amount and the threshold value for the first virtual machine VM, and the comparison result between the second data amount and the threshold value for the first virtual machine VM, the
ここで、上述したように、受け付け部211と制御部212が管理OS501−cのデバイスドライバ502−cによって実現されることにより、要求元の仮想マシンVMによるFPGA101への不正なアクセスや誤ったアクセスを防ぐことができる。例えば、管理モジュール103によって当該受け付け部211と制御部212の機能を実現させる場合、管理モジュール103は、いずれの仮想マシンVMからのアクセス要求を受け付けたかを区別することができない。アクセス要求に要求元である仮想マシンVMの識別情報を付加させるように予め取り決めてあっても、各仮想マシンVMが故意または誤って他の仮想マシンVMの識別情報を付加させる場合がある。この場合、管理モジュール103は、アクセス要求に含まれる要求元の仮想マシンVMの識別情報が正しいか否かを判断することができないため、不正なアクセスや誤ったアクセスが発生する可能性がある。
Here, as described above, the
一方、管理OS501−cのデバイスドライバ502−cは、要求元の仮想マシンVMを判別可能である。そのため、受け付け部211と制御部212とが管理OS501−cのデバイスドライバ502−cによって実現されることにより、要求元の仮想マシンVMによるFPGA101への不正なアクセスや誤ったアクセスを防ぐことができる。
On the other hand, the device driver 502-c of the management OS 501-c can determine the requesting virtual machine VM. For this reason, the
図18は、仮想マシンからユーザモジュールへのアクセス例を示す説明図である。管理OS501−c、仮想マシンVM、各デバイスドライバ502、ハイパーバイザHVは、サーバ111が実行するソフトウェアであるが、理解の容易化のために、各々を実行主体として説明する。
FIG. 18 is an explanatory diagram of an example of access from the virtual machine to the user module. The management OS 501-c, the virtual machine VM, each
例えば、仮想マシンVM1上で実行中のアプリケーションソフトウェア503−1からアクセス要求があると、仮想マシンVM1上で実行中のOS501−1は、FPGA101へのアクセス要求を生成する。そして、仮想マシンVM1上で実行中のOS501−1は、デバイスドライバ502−1を呼び出し、デバイスドライバ502−1にアクセス要求を通知する(ステップS1801)。図18中、アプリケーションソフトウェア503−1を省略する。
For example, when there is an access request from the application software 503-1 running on the virtual machine VM1, the OS 501-1 running on the virtual machine VM1 generates an access request to the
デバイスドライバ502−1は、アクセス要求を受け付けると、ハイパーバイザHVへアクセス要求を通知する(ステップS1802)。ハイパーバイザHVは、デバイスドライバ502−1からのアクセス要求を管理OS501−cへ通知する(ステップS1803)。管理OS501−cは、ハイパーバイザHVから仮想マシンVM1が要求元であるアクセス要求を受け付けると、デバイスドライバ502−cを呼び出し、受け付けたアクセス要求をデバイスドライバ502−cへ通知する(ステップS1804)。 Upon receiving the access request, the device driver 502-1 notifies the access request to the hypervisor HV (step S1802). The hypervisor HV notifies the management OS 501-c of an access request from the device driver 502-1 (step S1803). When the management OS 501-c receives an access request for which the virtual machine VM1 is a request source from the hypervisor HV, the management OS 501-c calls the device driver 502-c and notifies the received access request to the device driver 502-c (step S1804).
デバイスドライバ502−cは、アクセス要求に含まれるアクセス先のアドレスが受け付けたアクセス要求の要求元である仮想マシンVM1についてのアドレス範囲に含まれる場合、アクセス要求に基づくアクセスを実行する(ステップS1805)。ステップS1805において、デバイスドライバ502−cは、アクセス要求に含まれるアクセス先のアドレスが受け付けたアクセス要求の要求元である仮想マシンVM1についてのアドレス範囲に含まれない場合、アクセス要求を補正する。具体的に、デバイスドライバ502−cは、アクセス要求を仮想マシンVM1についてのアドレス範囲に含まれるように補正する。そして、デバイスドライバ502−cは、補正したアクセス要求に基づくアクセスを実行する。管理モジュール103は、デバイスドライバ502−cによるアクセス要求に基づくアクセスの実行に基づいてユーザモジュール102−1にアクセスする(ステップS1806)。
When the access destination address included in the access request is included in the address range of the virtual machine VM1 that is the request source of the received access request, the device driver 502-c executes access based on the access request (step S1805). . In step S1805, the device driver 502-c corrects the access request when the access destination address included in the access request is not included in the address range of the virtual machine VM1 that is the request source of the received access request. Specifically, the device driver 502-c corrects the access request to be included in the address range for the virtual machine VM1. The device driver 502-c executes access based on the corrected access request. The
(ユーザモジュール102からサーバ111内のメモリ412へのアクセス要求)
つぎに、ユーザモジュール102からサーバ111内のメモリ412へのアクセス要求について説明する。本実施の形態では、ユーザモジュール102からメモリ412へのアクセスは、DMAによって実現される。上述したように、制御回路1406は、受け付け部105と、制御部106と、計測部と、を有する。また、上述したように、DMA回路1403は、アクセス部104を有する。
(Access request from the
Next, an access request from the
制御回路1406は、受け付け部211によって、ユーザモジュール102のうちのいずれかからのアクセス要求を受け付ける。アクセス要求には、DMA回路1403に与えるDMAのパラメータが含まれる。
The
制御回路1406は、受け付けたアクセス要求が示すアクセス先がアクセス要求の要求元のユーザモジュール102に割り当てられた記憶領域である場合は、アクセス要求に基づくアクセスをDMA回路1403に実行させる。具体的に制御回路1406は、アクセス要求が示すアクセス先が要求元のユーザモジュール102についてのアクセス許可設定レジスタ1413に設定されたアドレス範囲に含まれる場合、アクセス要求内のDMAのパラメータをレジスタ1411に設定する。
When the access destination indicated by the received access request is a storage area allocated to the
一方、制御回路1406は、割り当てられた記憶領域でない場合は、アクセス要求に基づくアクセスをDMA回路1403に実行させない。具体的に制御回路1406は、アクセス要求が示すアクセス先がアドレス範囲に含まれない場合、アクセス要求内のDMAのパラメータをDMA回路1403のレジスタ1411に設定しない。また、制御回路1406は、割り当てられた記憶領域でない場合、アクセス要求を要求元のユーザモジュール102に割り当てられた記憶領域へのアクセス要求に補正し、補正したアクセス要求をDMA回路1403に実行させる。具体的に制御回路1406は、アクセス要求が示すアクセス先がアドレス範囲に含まれない場合、アドレス範囲に含まれるようにアクセス要求内のDMAのパラメータを補正する。そして、制御回路1406は、補正したDMAのパラメータをレジスタ1411に設定する。
On the other hand, if it is not the allocated storage area, the
また、制御回路1406は、割り当てられた記憶領域である場合において、他のユーザモジュール102からのアクセス要求に基づくアクセスをDMA回路1403に実行させている場合、当該アクセスの終了を待機する。ここでは、あらたに受け付けられたアクセス要求の要求元のユーザモジュール102を第1ユーザモジュール102と称し、該他のユーザモジュール102を第2ユーザモジュールと称する。そして、制御回路1406は、終了後に、第1ユーザモジュール102からのアクセス要求に基づくアクセスをDMA回路1403に実行させる。
Further, in the case of the allocated storage area, when the
また、FPGA101内のいずれかのユーザモジュール102が、FPGA101とサーバ111とを接続するPCIe1405などの共用リソースを連続して使用すると、他のユーザモジュール102がPCIe1405を利用できなくなってしまう。そこで、制御回路1406は、累積データ量カウンタ1412によって、第1ユーザモジュール102からのアクセス要求に基づくDMA回路1403による所定時間当たりの第1データ量を計測する。制御回路1406は、累積データ量カウンタ1412によって、第2ユーザモジュール102からのアクセス要求に基づくアクセス部104による所定時間当たりの第2データ量を計測する。所定時間については、運用前にシステム100の開発者やデータセンサーの管理者によって決定されることとする。具体的には、制御回路1406は、第1ユーザモジュール102からのアクセス要求に基づいて転送したデータ量を累積し、所定時間間隔でサンプリングすることにより、所定時間当たりの転送したデータ量を計測する。
In addition, if any
制御回路1406は、計測した第1データ量と、計測した第2データ量と、に基づいて、第1状態と第2状態とを切り替える。第1状態は、第1ユーザモジュール102からのアクセス要求に基づくアクセスをDMA回路1403に実行させる状態である。また、第2状態は、第2ユーザモジュール102からのアクセス要求に基づくアクセスをアクセス部104に実行させる状態である。
The
また、制御回路1406は、第1データ量と前記第1ユーザモジュール102についての閾値との比較結果と、第2データ量と第2ユーザモジュール102についての閾値との比較結果と、に基づいて、第1状態と第2状態と、を切り替える。各ユーザモジュール102についての閾値は、上述したアクセス許可設定レジスタ1413に設定された転送量の規制値である。例えば、制御回路1406は、第1状態の場合において、第1データ量が第1ユーザモジュール102についての規制値を超えた場合、第1状態から第2状態に切り替える。また、例えば、制御回路1406は、第2状態の場合において、第2データ量が第2ユーザモジュール102についての規制値を超えた場合、第2状態から第1状態に切り替える。より詳細な例については、図21を用いて後述する。このように、各ユーザモジュール102からのアクセス要求に基づくアクセスの実行を切り替えることにより、FPGA101のPCIe1405などの共用リソースを複数のユーザモジュール102が公平に利用可能となる。利用者が、FPGA101を共同利用する他の利用者を意識することなく、システム100を利用できる。
Further, the
図19は、ユーザモジュールからサーバ内のメモリへのアクセス例を示す説明図である。ユーザモジュール102−1は、DMAのパラメータを生成し、生成したDMAのパラメータを含むアクセス要求を、ポート1402−1を介して管理モジュール103へ送信する(ステップS1901)。
FIG. 19 is an explanatory diagram illustrating an example of access from the user module to the memory in the server. The user module 102-1 generates a DMA parameter, and transmits an access request including the generated DMA parameter to the
制御回路1406は、ポート1402−1を介してアクセス要求を受信すると、ポート1402−1に基づいてアクセス要求の要求元を判別する。制御回路1406は、アクセス許可設定レジスタ1413に基づいて、DMAのパラメータが示すアクセス先のアドレスが要求元に割り当てられたアドレス範囲に含まれる場合、DMAのパラメータをレジスタ1411に設定する(ステップS1902,S1903)。また、ステップS1902,S1903において、制御回路1406は、アクセス先のアドレスが要求元についてのアドレス範囲に含まれない場合、DMAのパラメータを、アクセス先のアドレスがアドレス範囲に含まれるように補正する。そして、制御回路1406は、補正したDMAのパラメータをDMA回路1403内のレジスタ1411に設定する。
When receiving an access request via the port 1402-1, the
DMA回路1403は、レジスタ1411に設定されたDMAのパラメータに基づいてPCIe1405を介してサーバ111内のメモリ412にアクセスする(ステップS1904,S1905)。
The
図20は、アドレス判断処理の詳細例を示す説明図である。図20の上側では、BASE_ADDR_USER1とMASK_ADDR_USER1とは仮想マシンVM1の構築時に決定されるパラメータ例を示す。BASE_ADDR_USER2とMASK_ADDR_USER2とは仮想マシンVM2の構築時に決定されるパラメータ例を示す。図20の上側は、例えば、アクセス許可設定レジスタ1413やテーブル1700に各アドレス範囲が設定されることと同様のことを示す。
FIG. 20 is an explanatory diagram illustrating a detailed example of the address determination process. On the upper side of FIG. 20, BASE_ADDR_USER1 and MASK_ADDR_USER1 indicate parameter examples determined when the virtual machine VM1 is constructed. BASE_ADDR_USER2 and MASK_ADDR_USER2 indicate parameter examples determined when the virtual machine VM2 is constructed. The upper side of FIG. 20 shows the same thing as the setting of each address range in the access
また、図20の下側では、仮想マシンVM1からのアクセス要求を受け付けた場合のデバイスドライバ502−cのアドレス判断処理、またはユーザモジュール102−1からのアクセス要求が発生した場合の管理モジュール103のアドレス判断処理を示す。アドレス判断処理では、アクセス要求が示すアクセス先の先頭アドレスと、アクセス要求が示すアクセス先のデータ長と、の入力を受け付ける。アドレス判断処理では、入力された先頭アドレスが、BASE_ADDR_USER1とMASK_ADDR_USER1とによって示されるアドレス範囲に含まれる場合、入力された先頭アドレスをそのまま出力する。アドレス判断処理では、入力された先頭アドレスがアドレス範囲に含まれない場合、入力された先頭アドレスがアドレス範囲に含まれるように補正した先頭アドレスを出力する。
On the lower side of FIG. 20, the address determination process of the device driver 502-c when an access request from the virtual machine VM1 is received, or the
また、アドレス判断処理では、入力されたデータ長が、MASK_ADDR_USER1が示すデータ長以内の場合、入力されたデータ長をそのまま出力する。アドレス判断処理では、入力されたデータ長が、MASK_ADDR_USER1が示すデータ長より大きい場合、入力されたデータ長をMASK_ADDR_USER1が示すデータ長以内となるように補正したデータ長を出力する。 In the address determination process, when the input data length is within the data length indicated by MASK_ADDR_USER1, the input data length is output as it is. In the address determination process, when the input data length is larger than the data length indicated by MASK_ADDR_USER1, the data length corrected to be within the data length indicated by MASK_ADDR_USER1 is output.
図21は、データ量制限処理の詳細例を示す説明図である。図21では、複数の仮想マシンVMからアクセス要求を受け付けた場合のデバイスドライバ502−cのデータ量制限処理例を示す。また、複数のアクセス要求を受け付けた場合の管理モジュール103のデータ量制限処理も同様である。
FIG. 21 is an explanatory diagram showing a detailed example of the data amount restriction process. FIG. 21 illustrates an example of a data amount restriction process of the device driver 502-c when an access request is received from a plurality of virtual machines VM. The same applies to the data amount restriction processing of the
number_of_requester()はアクセス要求の数を示す。number_of_requester()が1の場合、データ量制限処理では、1つのアクセス要求を受け付けた状態であるため、受け付けたアクセス要求に基づくアクセスが実行される。get_requesters_top()は、各仮想マシンVMからのアクセス要求を登録可能なキューの先頭のアクセス要求を取得する処理を示す。do_transfer()は、()内のアクセス要求に基づくアクセスを実行する処理を示す。 number_of_requester () indicates the number of access requests. When number_of_requester () is 1, since the data amount restriction process has accepted one access request, access based on the accepted access request is executed. get_requesters_top () indicates a process of acquiring the first access request in the queue that can register the access request from each virtual machine VM. do_transfer () indicates processing for executing access based on the access request in parentheses.
number_of_requester()が1より大きい場合、アクセス要求の要求元の仮想マシンVMについての「(規制値)−(直近の計測されたデータ量)」に基づいてアクセス要求を降順でソートする。データ量制限処理では、ソート後に、先頭のアクセス要求に基づくアクセスから順に実行する。 When number_of_requester () is greater than 1, the access requests are sorted in descending order based on “(restriction value) − (recent measured data amount)” for the virtual machine VM that requested the access request. In the data amount restriction process, after the sorting, the access is executed in order from the access based on the top access request.
例えば、get_requesters()は、アクセス要求を登録可能なキューに登録されたすべてのアクセス要求を取得する処理を示す。reqsには、取得されたアクセス要求が登録される。reqsに登録されたアクセス要求が、各アクセス要求の要求元の仮想マシンVMについての「「規制値」−「直近の計測されたデータ量」」に基づいて、降順にソートされる。reqs.top()は、先頭に登録されたアクセス要求を取得する処理を示す。do_transfer()は、()内のアクセス要求に基づくアクセスを実行する処理を示し、ここではreqsの先頭に登録されたアクセス要求に基づくアクセスを実行する。 For example, get_requesters () indicates a process for acquiring all access requests registered in a queue capable of registering access requests. In reqs, the acquired access request is registered. The access requests registered in reqs are sorted in descending order based on ““ restriction value ”−“ recent measured data amount ”for the virtual machine VM that is the request source of each access request. reqs. top () indicates a process for acquiring an access request registered at the top. do_transfer () indicates processing for executing access based on the access request in (), and here, access based on the access request registered at the head of reqs is executed.
また、データ量制限処理では、データ量が規制値を超えたアクセス要求の要求元の仮想マシンVMを検出した場合、管理OS501−cに通知する。 Further, in the data amount restriction process, when a virtual machine VM requesting an access request whose data amount exceeds the regulation value is detected, the management OS 501-c is notified.
以上説明したように、本実施の形態にかかる集積回路は、ある利用者に割り当てられたFPGA内の回路から、他の利用者に割り当てられた該FPGA内の他の回路に割り当てられた記憶領域へアクセスさせない。これにより、他の利用者の記憶領域がある利用者が利用可能な回路に干渉されるのを防ぐことができる。したがって、各利用者の処理環境を安定して機能させることができる。 As described above, the integrated circuit according to the present embodiment has a storage area allocated from a circuit in an FPGA allocated to a certain user to another circuit in the FPGA allocated to another user. Do not allow access. Accordingly, it is possible to prevent a user having a storage area of another user from being interfered with an available circuit. Therefore, the processing environment of each user can be made to function stably.
また、本実施の形態にかかる集積回路は、ある利用者に割り当てられた回路からのアクセス要求のアクセス先が要求元の回路に割り当てられた記憶領域でない場合に、要求元の回路に割り当てられた記憶領域へのアクセス要求に補正する。これにより、他の利用者に割り当てられたFPGA内の回路がある利用者によって干渉されるのを防ぐことができる。したがって、各利用者の処理環境を安定して機能させることができる。 Further, the integrated circuit according to the present embodiment is assigned to the request source circuit when the access destination of the access request from the circuit assigned to a certain user is not the storage area assigned to the request source circuit. It corrects to the access request to the storage area. Thereby, it is possible to prevent the circuit in the FPGA assigned to another user from being interfered by a certain user. Therefore, the processing environment of each user can be made to function stably.
また、集積回路は1つのバスを介してサーバと接続されてあるため、集積回路内の複数の回路からサーバへのアクセス要求が重なる可能性がある。そのため、本実施の形態にかかる集積回路は、複数のアクセス要求がある場合、受け付けた時刻が早いアクセス要求に基づくアクセスが終了するのを待機して、受け付けた時刻が遅いアクセス要求に基づくアクセスを実行する。これにより、アクセス要求の発生順にアクセス要求に基づくアクセスを実行することができる。 In addition, since the integrated circuit is connected to the server via one bus, there is a possibility that access requests to the server from a plurality of circuits in the integrated circuit overlap. Therefore, when there are a plurality of access requests, the integrated circuit according to the present embodiment waits for the access based on the access request with the earlier received time to end, and performs the access based on the access request with the later received time. Run. Thereby, access based on the access requests can be executed in the order in which the access requests are generated.
また、集積回路内のいずれかの回路が集積回路と制御装置とを接続するバスを連続して使用すると、集積回路内の他の回路が制御装置内の記憶領域にアクセスできなくなる。そこで、本実施の形態にかかる集積回路は、集積回路内の回路ごとに回路から制御装置内の記憶領域への転送量を計測し、計測したデータ量に基づいて、いずれの回路からのアクセス要求に基づくアクセスを実行するかを切り替える。これにより、複数の利用者が集積回路を公平に利用可能となる。 In addition, when any circuit in the integrated circuit continuously uses the bus connecting the integrated circuit and the control device, other circuits in the integrated circuit cannot access the storage area in the control device. Therefore, the integrated circuit according to the present embodiment measures the transfer amount from the circuit to the storage area in the control device for each circuit in the integrated circuit, and the access request from any circuit based on the measured data amount. Switch whether to perform access based on. Thereby, a plurality of users can use the integrated circuit fairly.
また、制御装置は、実行中のアクセスによって転送したデータ量が実行中のアクセスについてのアクセス要求の要求元についての規制値を超えた場合、実行対象となるアクセス要求を切り替える。これにより、複数の利用者が集積回路を公平に利用可能となる。 The control device switches the access request to be executed when the amount of data transferred by the access being executed exceeds the restriction value for the request source of the access request for the access being executed. Thereby, a plurality of users can use the integrated circuit fairly.
以上説明したように、本実施の形態にかかる制御装置は、ある利用者から他の利用者に割り当てられた該FPGA内の回路へアクセスさせない。これにより、他の利用者に割り当てられたFPGA内の回路がある利用者によって干渉されるのを防ぐことができる。したがって、各利用者の処理環境を安定して機能させることができる。 As described above, the control device according to the present embodiment does not allow a user to access a circuit in the FPGA assigned to another user. Thereby, it is possible to prevent the circuit in the FPGA assigned to another user from being interfered by a certain user. Therefore, the processing environment of each user can be made to function stably.
また、本実施の形態にかかる制御装置は、ある利用者からのアクセス要求のアクセス先が要求元に割り当てられた集積回路内の回路でない場合に、要求元の利用者に割り当てられた回路へのアクセス要求に補正する。これにより、他の利用者に割り当てられた集積回路内の回路がある利用者によって干渉されるのを防ぐことができる。したがって、各利用者の処理環境を安定して機能させることができる。 In addition, the control device according to the present embodiment, when the access destination of the access request from a certain user is not a circuit in the integrated circuit assigned to the request source, to the circuit assigned to the request source user. Correct for access requests. Thereby, it is possible to prevent a circuit in an integrated circuit assigned to another user from being interfered by a certain user. Therefore, the processing environment of each user can be made to function stably.
また、制御装置は1つのバスを介して集積回路と接続されてあるため、複数の利用者から集積回路へのアクセス要求が重なる可能性がある。そのため、本実施の形態にかかる制御装置は、複数のアクセス要求がある場合、受け付けた時刻が早いアクセス要求に基づくアクセスが終了するのを待機して、受け付けた時刻が遅いアクセス要求に基づくアクセスを実行する。これにより、アクセス要求の発生順にアクセス要求に基づくアクセスを実行することができる。 In addition, since the control device is connected to the integrated circuit via a single bus, there is a possibility that requests for access to the integrated circuit from a plurality of users may overlap. Therefore, when there are a plurality of access requests, the control device according to the present embodiment waits for the access based on the access request with the earlier received time to end, and performs the access based on the access request with the later received time. Run. Thereby, access based on the access requests can be executed in the order in which the access requests are generated.
また、いずれかの利用者が集積回路と制御装置とを接続するバスを連続して使用すると、他の利用者が集積回路を利用できなくなる。そこで、本実施の形態にかかる制御装置は、利用者ごとに利用者から集積回路内の回路への転送量を計測し、計測したデータ量に基づいて、いずれの利用者からのアクセス要求に基づくアクセスを実行するかを切り替える。これにより、複数の利用者が集積回路を公平に利用可能となる。 In addition, if any one of the users continuously uses the bus connecting the integrated circuit and the control device, other users cannot use the integrated circuit. Therefore, the control device according to the present embodiment measures the transfer amount from the user to the circuit in the integrated circuit for each user, and based on the access request from any user based on the measured data amount. Switch whether to perform access. Thereby, a plurality of users can use the integrated circuit fairly.
また、制御装置は、実行中のアクセスによって転送したデータ量が実行中のアクセスについてのアクセス要求の要求元についての規制値を超えた場合、実行対象となるアクセス要求を切り替える。これにより、複数の利用者が集積回路を公平に利用可能となる。 The control device switches the access request to be executed when the amount of data transferred by the access being executed exceeds the restriction value for the request source of the access request for the access being executed. Thereby, a plurality of users can use the integrated circuit fairly.
また、本実施の形態によれば、サーバ上で実行される仮想マシンとFPGAとの両方において、利用者間の処理環境が分離され、共用リソースが公平に利用可能となる。そのため、複数の利用者が同一のサーバ、FPGAを、安定した処理環境で共同利用可能となる。 Further, according to the present embodiment, the processing environment between users is separated in both the virtual machine and the FPGA executed on the server, and the shared resource can be used fairly. Therefore, a plurality of users can share the same server and FPGA in a stable processing environment.
また、クラウドコンピューティングのようにFPGAを複数の利用者によって共同で利用可能とすることにより、利用者の各々にFPGAを割り当てる場合と比較して、投資コストや運用コストを削減することができる。運用コストとは、例えば、時間的なコストなどである。また、本実施の形態で説明したシステムをASP(Application Service Provider)サービスとして提供可能であれば、様々な利用者が利用できるようになる。 Further, by enabling the FPGA to be used jointly by a plurality of users as in cloud computing, it is possible to reduce the investment cost and the operation cost compared to the case where the FPGA is assigned to each user. The operation cost is, for example, a time cost. In addition, if the system described in this embodiment can be provided as an ASP (Application Service Provider) service, various users can use it.
また、例えば、専用ハードウェアやGPGPU(General−Purpose computing on Graphics Processing Unit)などの電力効率のよいハードウェアであっても、それらのハードウェアに適合しない処理であれば、消費電力あたりの性能が低下する可能性がある。専用ハードウェアやGPGPUなどに適さない処理であっても、FPGAを利用することにより、消費電力あたりの処理性能を向上させることが可能となる。そのため、本実施の形態におけるシステムでは、専用ハードウェアやGPGPUなどを利用する場合と比較して、電力効率を向上させることができる。また、専用ハードウェアを開発するほどの需要がないような回路であっても、FPGAによって実現することができる。 In addition, for example, even power-efficient hardware such as dedicated hardware or GPGPU (General-Purpose computing on Graphics Processing Unit) has performance per unit of power if it is not compatible with those hardware. May be reduced. Even if the processing is not suitable for dedicated hardware or GPGPU, the processing performance per power consumption can be improved by using the FPGA. Therefore, in the system according to the present embodiment, power efficiency can be improved as compared with the case where dedicated hardware, GPGPU, or the like is used. Even a circuit that does not have enough demand to develop dedicated hardware can be realized by the FPGA.
また、本実施の形態では、利用者がユーザモジュールを設計する例を挙げたが、予め用意されたユーザモジュールを利用者が選択して利用してもよい。 In this embodiment, an example in which a user designs a user module has been described. However, a user module prepared in advance may be selected and used.
上述した実施の形態に関し、さらに以下の付記を開示する。 The following additional notes are disclosed with respect to the embodiment described above.
(付記1)内部の回路を再構成可能な集積回路であって、複数のコンピュータの各々に割り当てられた部分回路が各々異なる領域に構成された集積回路であって、
前記部分回路の各々に割り当てられた異なる記憶領域の各々にアクセス可能なアクセス部と、
前記部分回路のうちのいずれかからのアクセス要求を受け付ける受け付け部と、
前記受け付け部が受け付けた前記アクセス要求が示すアクセス先が前記アクセス要求の要求元の部分回路に割り当てられた記憶領域である場合は、前記アクセス要求に基づくアクセスを前記アクセス部に実行させ、割り当てられた前記記憶領域でない場合は、前記アクセス要求に基づくアクセスを前記アクセス部に実行させない制御部と、
を有することを特徴とする集積回路。
(Appendix 1) An integrated circuit in which an internal circuit can be reconfigured, wherein partial circuits assigned to each of a plurality of computers are configured in different areas,
An access unit capable of accessing each of the different storage areas assigned to each of the partial circuits;
A receiving unit that receives an access request from any of the partial circuits;
When the access destination indicated by the access request received by the accepting unit is a storage area assigned to the partial circuit that is the request source of the access request, the access unit performs access based on the access request and is assigned If it is not the storage area, a control unit that does not allow the access unit to execute access based on the access request,
An integrated circuit comprising:
(付記2)前記制御部は、割り当てられた前記記憶領域でない場合、前記アクセス要求を前記要求元の部分回路に割り当てられた前記記憶領域へのアクセス要求に補正し、補正した前記アクセス要求を前記アクセス部に実行させることを特徴とする付記1に記載の集積回路。
(Supplementary Note 2) If the storage unit is not the allocated storage area, the control unit corrects the access request to an access request to the storage area allocated to the requesting partial circuit, and the corrected access request is The integrated circuit according to
(付記3)前記制御部は、割り当てられた前記記憶領域である場合において、前記部分回路のうちの前記要求元の部分回路(以下、「第1部分回路」と称する。)と異なる第2部分回路からのアクセス要求に基づくアクセスを前記アクセス部に実行させている場合、前記第2部分回路からの前記アクセス要求に基づくアクセスが終了した後に、前記第1部分回路からの前記アクセス要求に基づくアクセスを前記アクセス部に実行させることを特徴とする付記1または2に記載の集積回路。
(Supplementary Note 3) In the case where the control unit is the allocated storage area, a second part different from the requesting partial circuit (hereinafter referred to as “first partial circuit”) of the partial circuits. When the access unit executes an access based on an access request from a circuit, an access based on the access request from the first partial circuit after the access based on the access request from the second partial circuit is completed 3. The integrated circuit according to
(付記4)前記第1部分回路からの前記アクセス要求に基づく前記アクセス部による所定時間当たりの第1データ量と、前記第2部分回路からの前記アクセス要求に基づく前記アクセス部による前記所定時間当たりの第2データ量と、を計測する計測部を有し、
前記制御部は、前記計測部が計測した前記第1データ量と、前記計測部が計測した前記第2データ量と、に基づいて、前記第1部分回路からの前記アクセス要求に基づくアクセスを前記アクセス部に実行させる第1状態と、前記第2部分回路からの前記アクセス要求に基づくアクセスを前記アクセス部に実行させる第2状態と、を切り替えることを特徴とする付記3に記載の集積回路。
(Supplementary Note 4) The first data amount per predetermined time by the access unit based on the access request from the first partial circuit, and the predetermined time by the access unit based on the access request from the second partial circuit A measurement unit that measures the second data amount of
The control unit performs access based on the access request from the first partial circuit based on the first data amount measured by the measurement unit and the second data amount measured by the measurement unit. The integrated circuit according to appendix 3, wherein a first state to be executed by the access unit and a second state in which the access unit executes an access based on the access request from the second partial circuit are switched.
(付記5)前記制御部は、前記第1データ量と前記第1部分回路についての閾値との比較結果と、前記第2データ量と前記第2部分回路についての閾値との比較結果と、に基づいて、前記第1状態と、前記第2状態と、を切り替えることを特徴とする付記4に記載の集積回路。 (Additional remark 5) The said control part is compared with the comparison result with the threshold value about the said 1st data amount and the said 1st partial circuit, and the comparison result with the said 2nd data amount and the threshold value about the said 2nd partial circuit. The integrated circuit according to appendix 4, wherein the first state and the second state are switched based on the first state.
(付記6)前記複数のコンピュータの各々が、物理的な装置または仮想的な装置のいずれかであることを特徴とする付記1〜5のいずれか一つに記載の集積回路。
(Supplementary note 6) The integrated circuit according to any one of
(付記7)内部の回路を再構成可能な集積回路であって、複数のコンピュータの各々に割り当てられた部分回路が各々異なる領域に構成された集積回路が接続された制御装置であって、
前記複数のコンピュータのうちのいずれかから前記集積回路へのアクセス要求を受け付ける受け付け部と、
受け付けた前記アクセス要求が示すアクセス先が、前記アクセス要求の要求元のコンピュータに割り当てられた部分回路が構成された領域である場合は、前記アクセス要求に基づくアクセスを実行し、構成された前記領域でない場合は、前記アクセス要求に基づくアクセスを実行しない制御を行う制御部と、
を有することを特徴とする制御装置。
(Appendix 7) An integrated circuit capable of reconfiguring an internal circuit, wherein the control circuit is connected to an integrated circuit in which partial circuits assigned to each of a plurality of computers are configured in different regions,
A receiving unit that receives an access request to the integrated circuit from any of the plurality of computers;
When the access destination indicated by the received access request is an area in which a partial circuit assigned to the requesting computer of the access request is configured, access based on the access request is executed, and the configured area If not, a control unit that performs control not to execute access based on the access request
A control device comprising:
(付記8)前記制御部は、構成された前記領域でない場合に、前記アクセス要求を前記要求元のコンピュータに割り当てられた部分回路が構成された領域へのアクセス要求に補正し、補正した前記アクセス要求を実行することを特徴とする付記7に記載の制御装置。 (Supplementary note 8) If the control unit is not the configured area, the control unit corrects the access request to an access request to the area where the partial circuit allocated to the requesting computer is configured, and corrects the access The control device according to appendix 7, wherein the control is executed.
(付記9)前記制御部は、構成された前記領域である場合において、前記コンピュータのうちの前記要求元のコンピュータ(以下、「第1コンピュータ」と称する。)と異なる第2コンピュータからのアクセス要求に基づくアクセスを実行している場合、前記第2コンピュータからの前記アクセス要求に基づくアクセスが終了した後に、前記第1コンピュータからの前記アクセス要求に基づくアクセスを実行することを特徴とする付記7または8に記載の制御装置。 (Additional remark 9) When the said control part is the area | region comprised, the access request from the 2nd computer different from the said requesting computer (henceforth a "1st computer") among the said computers. Or an access based on the access request from the first computer after the access based on the access request from the second computer is completed. 8. The control device according to 8.
(付記10)前記第1コンピュータからの前記アクセス要求に基づいて転送した所定時間当たりの第1データ量と、前記第2コンピュータからの前記アクセス要求に基づいて転送した前記所定時間当たりの第2データ量と、を計測する計測部を有し、
前記制御部は、前記第2コンピュータからのアクセス要求に基づくアクセスを実行している場合において、前記計測部が計測した前記第1データ量と、前記計測部が計測した前記第2データ量と、に基づいて、前記第1コンピュータからの前記アクセス要求に基づくアクセスを実行する第1状態と、前記第2コンピュータからの前記アクセス要求に基づくアクセスを実行する第2状態と、を切り替えることを特徴とする付記9に記載の制御装置。
(Supplementary Note 10) The first data amount per predetermined time transferred based on the access request from the first computer and the second data per predetermined time transferred based on the access request from the second computer A measuring unit that measures the quantity,
The control unit, when executing an access based on an access request from the second computer, the first data amount measured by the measurement unit, the second data amount measured by the measurement unit, And switching between a first state in which access based on the access request from the first computer is executed and a second state in which access based on the access request from the second computer is executed. The control device according to appendix 9.
(付記11)前記制御部は、前記第1データ量と前記第1コンピュータについての閾値との比較結果と、前記第2データ量と前記第2コンピュータについての閾値との比較結果と、に基づいて、前記第1状態と前記第2状態とを切り替えることを特徴とする付記10に記載の制御装置。 (Additional remark 11) The said control part is based on the comparison result of the said 1st data amount and the threshold value about the said 1st computer, and the comparison result of the said 2nd data amount and the threshold value about the said 2nd computer. The control device according to appendix 10, wherein the control unit switches between the first state and the second state.
(付記12)前記集積回路は、前記第1コンピュータからの前記アクセス要求に基づいて転送した所定時間当たりの第1データ量と、前記第2コンピュータからの前記アクセス要求に基づいて転送した前記所定時間当たりの第2データ量と、を計測する計測部を有し、
前記制御部は、前記第2コンピュータからのアクセス要求に基づくアクセスを実行している場合において、前記計測部が計測した前記第1データ量と、前記計測部が計測した前記第2データ量と、に基づいて、前記第1コンピュータからの前記アクセス要求に基づくアクセスを実行する第1状態と、前記第2コンピュータからの前記アクセス要求に基づくアクセスを実行する第2状態と、を切り替えることを特徴とする付記9に記載の制御装置。
(Supplementary Note 12) The integrated circuit transfers the first data amount per predetermined time transferred based on the access request from the first computer and the predetermined time transferred based on the access request from the second computer. A measurement unit for measuring the second data amount per hit,
The control unit, when executing an access based on an access request from the second computer, the first data amount measured by the measurement unit, the second data amount measured by the measurement unit, And switching between a first state in which access based on the access request from the first computer is executed and a second state in which access based on the access request from the second computer is executed. The control device according to appendix 9.
(付記13)前記複数のコンピュータの各々が、物理的な装置または仮想的な装置のいずれかであることを特徴とする付記7〜12のいずれか一つに記載の制御装置。 (Supplementary note 13) The control device according to any one of supplementary notes 7 to 12, wherein each of the plurality of computers is either a physical device or a virtual device.
(付記14)内部の回路を再構成可能な集積回路であって、複数のコンピュータの各々に割り当てられた部分回路が各々異なる領域に構成された集積回路であって、前記部分回路の各々に割り当てられた異なる記憶領域の各々にアクセス可能なアクセス部を有する集積回路が、
前記部分回路のうちのいずれかからのアクセス要求を受け付け、
受け付けた前記アクセス要求が示すアクセス先が前記アクセス要求の要求元の部分回路に割り当てられた記憶領域である場合は、前記アクセス要求に基づくアクセスを前記アクセス部に実行させ、割り当てられた前記記憶領域でない場合は、前記アクセス要求に基づくアクセスを前記アクセス部に実行させない、
処理を実行することを特徴とする制御方法。
(Supplementary Note 14) An integrated circuit in which internal circuits can be reconfigured, wherein the partial circuits allocated to each of the plurality of computers are configured in different areas, and are allocated to each of the partial circuits. An integrated circuit having an access unit accessible to each of the different storage areas
Accepting an access request from any of the partial circuits;
When the access destination indicated by the received access request is a storage area assigned to the partial circuit that is the request source of the access request, the access unit executes access based on the access request, and the assigned storage area If not, do not allow the access unit to perform access based on the access request,
A control method characterized by executing processing.
(付記15)内部の回路を再構成可能な集積回路であって、複数のコンピュータの各々に割り当てられた部分回路が各々異なる領域に構成された集積回路が接続された制御装置が、
前記複数のコンピュータのうちのいずれかから前記集積回路へのアクセス要求を受け付け、
受け付けた前記アクセス要求が示すアクセス先が、前記アクセス要求の要求元のコンピュータに割り当てられた部分回路が構成された領域である場合は、前記アクセス要求に基づくアクセスを実行し、構成された前記領域でない場合は、前記アクセス要求に基づくアクセスを実行しない、
処理を実行することを特徴とする制御方法。
(Supplementary Note 15) An integrated circuit in which an internal circuit can be reconfigured, and a control device to which an integrated circuit in which partial circuits assigned to each of a plurality of computers are configured in different regions is connected,
Receiving an access request to the integrated circuit from any of the plurality of computers;
When the access destination indicated by the received access request is an area in which a partial circuit assigned to the requesting computer of the access request is configured, access based on the access request is executed, and the configured area If not, do not perform access based on the access request,
A control method characterized by executing processing.
(付記16)内部の回路を再構成可能な集積回路であって、複数のコンピュータの各々に割り当てられた部分回路が各々異なる領域に構成された集積回路が接続された制御装置に、
前記複数のコンピュータのうちのいずれかから前記集積回路へのアクセス要求を受け付け、
受け付けた前記アクセス要求が示すアクセス先が、前記アクセス要求の要求元のコンピュータに割り当てられた部分回路が構成された領域である場合は、前記アクセス要求に基づくアクセスを実行し、構成された前記領域でない場合は、前記アクセス要求に基づくアクセスを実行しない、
処理を実行させることを特徴とする制御プログラム。
(Supplementary Note 16) An integrated circuit capable of reconfiguring an internal circuit, wherein a partial circuit assigned to each of a plurality of computers is connected to an integrated circuit configured in a different area,
Receiving an access request to the integrated circuit from any of the plurality of computers;
When the access destination indicated by the received access request is an area in which a partial circuit assigned to the requesting computer of the access request is configured, access based on the access request is executed, and the configured area If not, do not perform access based on the access request,
A control program characterized by causing a process to be executed.
(付記17)内部の回路を再構成可能な集積回路であって、複数のコンピュータの各々に割り当てられた部分回路が各々異なる領域に構成された集積回路が接続された制御装置に、
前記複数のコンピュータのうちのいずれかから前記集積回路へのアクセス要求を受け付け、
受け付けた前記アクセス要求が示すアクセス先が、前記アクセス要求の要求元のコンピュータに割り当てられた部分回路が構成された領域である場合は、前記アクセス要求に基づくアクセスを実行し、構成された前記領域でない場合は、前記アクセス要求に基づくアクセスを実行しない、
処理を実行させる制御プログラムを記録したことを特徴とする記録媒体。
(Supplementary Note 17) An integrated circuit in which an internal circuit can be reconfigured, and a control device to which an integrated circuit in which partial circuits assigned to each of a plurality of computers are configured in different regions is connected,
Receiving an access request to the integrated circuit from any of the plurality of computers;
When the access destination indicated by the received access request is an area in which a partial circuit assigned to the requesting computer of the access request is configured, access based on the access request is executed, and the configured area If not, do not perform access based on the access request,
A recording medium on which a control program for executing processing is recorded.
100 システム
101 FPGA
102 ユーザモジュール
103 管理モジュール
104 アクセス部
105,211 受け付け部
106,212 制御部
111 サーバ
112 記憶領域
121 コンピュータ
1101 計測部
1403 DMA回路
1406 制御回路
1412 累積データ量カウンタ
1413 アクセス許可設定レジスタ
VM 仮想マシン
100
DESCRIPTION OF
Claims (13)
前記部分回路の各々に割り当てられた異なる記憶領域の各々にアクセス可能なアクセス部と、
前記部分回路のうちのいずれかからのアクセス要求を受け付ける受け付け部と、
前記受け付け部が受け付けた前記アクセス要求が示すアクセス先が前記アクセス要求の要求元の部分回路に割り当てられた記憶領域である場合は、前記アクセス要求に基づくアクセスを前記アクセス部に実行させ、割り当てられた前記記憶領域でない場合は、前記アクセス要求に基づくアクセスを前記アクセス部に実行させない制御部と、
を有することを特徴とする集積回路。 An integrated circuit capable of reconfiguring an internal circuit, wherein the partial circuits assigned to each of a plurality of computers are configured in different areas,
An access unit capable of accessing each of the different storage areas assigned to each of the partial circuits;
A receiving unit that receives an access request from any of the partial circuits;
When the access destination indicated by the access request received by the accepting unit is a storage area assigned to the partial circuit that is the request source of the access request, the access unit performs access based on the access request and is assigned If it is not the storage area, a control unit that does not allow the access unit to execute access based on the access request,
An integrated circuit comprising:
前記制御部は、前記計測部が計測した前記第1データ量と、前記計測部が計測した前記第2データ量と、に基づいて、前記第1部分回路からの前記アクセス要求に基づくアクセスを前記アクセス部に実行させる第1状態と、前記第2部分回路からの前記アクセス要求に基づくアクセスを前記アクセス部に実行させる第2状態と、を切り替えることを特徴とする請求項2に記載の集積回路。 The first data amount per predetermined time by the access unit based on the access request from the first partial circuit, and the second data per predetermined time by the access unit based on the access request from the second partial circuit. A measuring unit that measures the quantity,
The control unit performs access based on the access request from the first partial circuit based on the first data amount measured by the measurement unit and the second data amount measured by the measurement unit. 3. The integrated circuit according to claim 2, wherein the integrated circuit is switched between a first state to be executed by the access unit and a second state in which the access unit executes an access based on the access request from the second partial circuit. .
前記複数のコンピュータのうちのいずれかから前記集積回路へのアクセス要求を受け付ける受け付け部と、
受け付けた前記アクセス要求が示すアクセス先が、前記アクセス要求の要求元のコンピュータに割り当てられた部分回路が構成された領域である場合は、前記アクセス要求に基づくアクセスを実行し、構成された前記領域でない場合は、前記アクセス要求に基づくアクセスを実行しない制御を行う制御部と、
を有することを特徴とする制御装置。 An integrated circuit capable of reconfiguring an internal circuit, wherein a control circuit is connected to an integrated circuit in which partial circuits assigned to each of a plurality of computers are configured in different regions,
A receiving unit that receives an access request to the integrated circuit from any of the plurality of computers;
When the access destination indicated by the received access request is an area in which a partial circuit assigned to the requesting computer of the access request is configured, access based on the access request is executed, and the configured area If not, a control unit that performs control not to perform access based on the access request;
A control device comprising:
前記制御部は、前記第2コンピュータからのアクセス要求に基づくアクセスを実行している場合において、前記計測部が計測した前記第1データ量と、前記計測部が計測した前記第2データ量と、に基づいて、前記第1コンピュータからの前記アクセス要求に基づくアクセスを実行する第1状態と、前記第2コンピュータからの前記アクセス要求に基づくアクセスを実行する第2状態と、を切り替えることを特徴とする請求項7に記載の制御装置。 A first data amount per predetermined time transferred based on the access request from the first computer and a second data amount transferred per predetermined time based on the access request from the second computer; Has a measuring unit to measure,
The control unit, when executing an access based on an access request from the second computer, the first data amount measured by the measurement unit, the second data amount measured by the measurement unit, And switching between a first state in which access based on the access request from the first computer is executed and a second state in which access based on the access request from the second computer is executed. The control device according to claim 7.
前記部分回路のうちのいずれかからのアクセス要求を受け付け、
受け付けた前記アクセス要求が示すアクセス先が前記アクセス要求の要求元の部分回路に割り当てられた記憶領域である場合は、前記アクセス要求に基づくアクセスを前記アクセス部に実行させ、割り当てられた前記記憶領域でない場合は、前記アクセス要求に基づくアクセスを前記アクセス部に実行させない、
処理を実行することを特徴とする制御方法。 An integrated circuit capable of reconfiguring an internal circuit, wherein the partial circuits assigned to each of a plurality of computers are integrated circuits in different areas, and different memories assigned to each of the partial circuits An integrated circuit having an access portion accessible to each of the regions;
Accepting an access request from any of the partial circuits;
When the access destination indicated by the received access request is a storage area assigned to the partial circuit that is the request source of the access request, the access unit executes access based on the access request, and the assigned storage area If not, do not allow the access unit to perform access based on the access request,
A control method characterized by executing processing.
前記複数のコンピュータのうちのいずれかから前記集積回路へのアクセス要求を受け付け、
受け付けた前記アクセス要求が示すアクセス先が、前記アクセス要求の要求元のコンピュータに割り当てられた部分回路が構成された領域である場合は、前記アクセス要求に基づくアクセスを実行し、構成された前記領域でない場合は、前記アクセス要求に基づくアクセスを実行しない、
処理を実行することを特徴とする制御方法。 An integrated circuit in which an internal circuit can be reconfigured, and a control device to which an integrated circuit in which partial circuits assigned to each of a plurality of computers are configured in different regions is connected,
Receiving an access request to the integrated circuit from any of the plurality of computers;
When the access destination indicated by the received access request is an area in which a partial circuit assigned to the requesting computer of the access request is configured, access based on the access request is executed, and the configured area If not, do not perform access based on the access request,
A control method characterized by executing processing.
前記複数のコンピュータのうちのいずれかから前記集積回路へのアクセス要求を受け付け、
受け付けた前記アクセス要求が示すアクセス先が、前記アクセス要求の要求元のコンピュータに割り当てられた部分回路が構成された領域である場合は、前記アクセス要求に基づくアクセスを実行し、構成された前記領域でない場合は、前記アクセス要求に基づくアクセスを実行しない、
処理を実行させることを特徴とする制御プログラム。 An integrated circuit in which an internal circuit can be reconfigured, wherein a partial circuit assigned to each of a plurality of computers is connected to an integrated circuit configured in a different area,
Receiving an access request to the integrated circuit from any of the plurality of computers;
When the access destination indicated by the received access request is an area in which a partial circuit assigned to the requesting computer of the access request is configured, access based on the access request is executed, and the configured area If not, do not perform access based on the access request,
A control program characterized by causing a process to be executed.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013109394A JP6102511B2 (en) | 2013-05-23 | 2013-05-23 | Integrated circuit, control apparatus, control method, and control program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013109394A JP6102511B2 (en) | 2013-05-23 | 2013-05-23 | Integrated circuit, control apparatus, control method, and control program |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2014230174A JP2014230174A (en) | 2014-12-08 |
JP6102511B2 true JP6102511B2 (en) | 2017-03-29 |
Family
ID=52129630
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013109394A Active JP6102511B2 (en) | 2013-05-23 | 2013-05-23 | Integrated circuit, control apparatus, control method, and control program |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6102511B2 (en) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8789065B2 (en) | 2012-06-08 | 2014-07-22 | Throughputer, Inc. | System and method for input data load adaptive parallel processing |
US9448847B2 (en) | 2011-07-15 | 2016-09-20 | Throughputer, Inc. | Concurrent program execution optimization |
JP6516489B2 (en) * | 2015-01-29 | 2019-05-22 | キヤノン株式会社 | Information processing device |
US10198294B2 (en) | 2015-04-17 | 2019-02-05 | Microsoft Licensing Technology, LLC | Handling tenant requests in a system that uses hardware acceleration components |
JP6610271B2 (en) * | 2016-01-08 | 2019-11-27 | 富士通株式会社 | Control circuit, data processing apparatus, and logic circuit management method |
JP6620595B2 (en) * | 2016-02-25 | 2019-12-18 | 富士通株式会社 | Information processing system, information processing apparatus, management apparatus, processing program, and processing method |
JP6563363B2 (en) * | 2016-05-13 | 2019-08-21 | 日本電信電話株式会社 | Setting server, setting method and setting program |
US11099894B2 (en) | 2016-09-28 | 2021-08-24 | Amazon Technologies, Inc. | Intermediate host integrated circuit between virtual machine instance and customer programmable logic |
US10338135B2 (en) | 2016-09-28 | 2019-07-02 | Amazon Technologies, Inc. | Extracting debug information from FPGAs in multi-tenant environments |
US10282330B2 (en) | 2016-09-29 | 2019-05-07 | Amazon Technologies, Inc. | Configurable logic platform with multiple reconfigurable regions |
US10162921B2 (en) | 2016-09-29 | 2018-12-25 | Amazon Technologies, Inc. | Logic repository service |
US10250572B2 (en) | 2016-09-29 | 2019-04-02 | Amazon Technologies, Inc. | Logic repository service using encrypted configuration data |
US10642492B2 (en) | 2016-09-30 | 2020-05-05 | Amazon Technologies, Inc. | Controlling access to previously-stored logic in a reconfigurable logic device |
US11115293B2 (en) | 2016-11-17 | 2021-09-07 | Amazon Technologies, Inc. | Networked programmable logic service provider |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07319627A (en) * | 1994-05-24 | 1995-12-08 | Mitsubishi Electric Corp | External storage device |
JP4272275B2 (en) * | 1998-04-28 | 2009-06-03 | 株式会社日立製作所 | Storage subsystem |
JP2001075853A (en) * | 1999-09-03 | 2001-03-23 | Hitachi Ltd | Computer system, and computer and storage device used for the computer system |
JP3837953B2 (en) * | 1999-03-12 | 2006-10-25 | 株式会社日立製作所 | Computer system |
JP2001306343A (en) * | 2000-04-21 | 2001-11-02 | Fujitsu I-Network Systems Ltd | System for device with fpga |
JP2003233510A (en) * | 2002-02-08 | 2003-08-22 | Fujitsu Ltd | Logic verification method and device for therefor |
JP2004030437A (en) * | 2002-06-27 | 2004-01-29 | Ntt Me Corp | Device and method for managing data and computer program |
JP4304308B2 (en) * | 2004-06-15 | 2009-07-29 | 日本電気株式会社 | Storage device and logical storage device allocation control method |
JP2006333496A (en) * | 2006-06-22 | 2006-12-07 | Fuji Xerox Co Ltd | Programmable logic circuit device and information processing system |
JP2010282422A (en) * | 2009-06-04 | 2010-12-16 | Toshiba Corp | Data storage device and data transfer control method |
JP5589479B2 (en) * | 2010-03-25 | 2014-09-17 | 富士ゼロックス株式会社 | Data processing device |
-
2013
- 2013-05-23 JP JP2013109394A patent/JP6102511B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
JP2014230174A (en) | 2014-12-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6102511B2 (en) | Integrated circuit, control apparatus, control method, and control program | |
KR102268722B1 (en) | Data access apparatus and operating method thereof | |
JP5911985B2 (en) | Providing hardware support for virtual memory shared between local and remote physical memory | |
CN103080912B (en) | Microprocessor system and by Memory Management Unit thereon and management method | |
KR102240774B1 (en) | Method for using local bmc to allocate shared gpu resources inside nvme over fabrics system | |
US20090271172A1 (en) | Emulating A Computer Run Time Environment | |
US10289785B1 (en) | Platform architecture creation for a system-on-chip | |
KR20200078331A (en) | System and method for offloading application functions to a device | |
CN101425966A (en) | Network-on-chip and use network-on-chip carry out the method for data processing | |
CN102119508B (en) | Presenting multi-function devices behind a switch hierarchy as a single function device | |
CN101876954B (en) | Virtual machine control system and working method thereof | |
CN102934096A (en) | Accelerating memory operations using virtualization information | |
CN114580344A (en) | Test excitation generation method, verification system and related equipment | |
Marcus et al. | The MPRACE framework: An open source stack for communication with custom FPGA-based accelerators | |
JP5756554B2 (en) | Semiconductor device | |
KR101054231B1 (en) | How to Create Lightweight, High-Yield Test Cases for Cache / TLB Interference and Diagnostic Tests | |
US20080022052A1 (en) | Bus Coupled Multiprocessor | |
US11347512B1 (en) | Substitution through protocol to protocol translation | |
Nadig et al. | Venice: Improving Solid-State Drive Parallelism at Low Cost via Conflict-Free Accesses | |
US9032405B2 (en) | Systems and method for assigning executable functions to available processors in a multiprocessing environment | |
US11119787B1 (en) | Non-intrusive hardware profiling | |
US20130238884A1 (en) | Computer-readable recording medium storing memory dump program, information processing apparatus, and memory dump method | |
JP5104501B2 (en) | Virtual machine system, host computer, virtual machine construction method and program | |
US11003378B2 (en) | Memory-fabric-based data-mover-enabled memory tiering system | |
Wu et al. | A hardware platform for exploring predictable cache coherence protocols for real-time multicores |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20160226 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20161025 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20161101 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20170104 |
|
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: 20170131 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20170213 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6102511 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |