JP2013062566A - Information processing apparatus, operation method and program - Google Patents

Information processing apparatus, operation method and program Download PDF

Info

Publication number
JP2013062566A
JP2013062566A JP2011197913A JP2011197913A JP2013062566A JP 2013062566 A JP2013062566 A JP 2013062566A JP 2011197913 A JP2011197913 A JP 2011197913A JP 2011197913 A JP2011197913 A JP 2011197913A JP 2013062566 A JP2013062566 A JP 2013062566A
Authority
JP
Japan
Prior art keywords
configuration data
information processing
processing apparatus
programmable device
accelerator
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.)
Withdrawn
Application number
JP2011197913A
Other languages
Japanese (ja)
Inventor
Yoshihisa Oguro
慶久 大黒
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ricoh Co Ltd
Original Assignee
Ricoh Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Ricoh Co Ltd filed Critical Ricoh Co Ltd
Priority to JP2011197913A priority Critical patent/JP2013062566A/en
Publication of JP2013062566A publication Critical patent/JP2013062566A/en
Withdrawn legal-status Critical Current

Links

Landscapes

  • Logic Circuits (AREA)
  • Microcomputers (AREA)

Abstract

PROBLEM TO BE SOLVED: To provide an information processing apparatus, an operation method and a program that execute processing in coordination with an accelerator mounted with a reconfigurable programmable device.SOLUTION: An information processing apparatus 110 is connected to a programmable device 150. The information processing apparatus 110 includes: configuration data storage means 120 storing a plurality of configuration data each defining a function implemented on the programmable device; program storage means 118 storing a plurality of software programs each using the function implemented on the programmable device 150 by corresponding configuration data; and configuration request means 112 for transferring the configuration data corresponding to a selected function of the plurality of configuration data to the programmable device 150 to request a configuration.

Description

本発明は、再構成可能なプログラマブル・デバイスを用いる情報処理装置に関し、より詳細には、再構成可能なプログラマブル・デバイスを搭載するアクセラレータと連携して処理を実行する情報処理装置、演算方法およびプログラムに関する。   The present invention relates to an information processing apparatus using a reconfigurable programmable device, and more specifically, an information processing apparatus, a calculation method, and a program for executing processing in cooperation with an accelerator equipped with a reconfigurable programmable device About.

従来から、FPGA(Field Programmable Gate Array)やCPLD(Complex Programmable Logic Device)などに代表されるプログラマブル・デバイスをアクセラレータとして、CPU(Central Processing Unit)と連携させることによって、処理速度の向上を図る技術が知られている。プログラマブル・デバイスに関連する技術としては、以下のものが例示される。   Conventionally, there has been a technology for improving processing speed by linking a programmable device represented by an FPGA (Field Programmable Gate Array) or CPLD (Complex Programmable Logic Device) as an accelerator with a CPU (Central Processing Unit). Are known. Examples of techniques related to the programmable device include the following.

特開平10−285014号公報(特許文献1)は、再コンフィギュレーションに必要な時間の短縮を目的とした技術を開示する。特許文献1は、デバイス内に大容量メモリを用意し、メモリに複数のコンフィギュレーション・データを格納し、チップ内でコンフィギュレーション・データの一括書き込みを行う構成を開示している。   Japanese Patent Laid-Open No. 10-285014 (Patent Document 1) discloses a technique for reducing the time required for reconfiguration. Patent Document 1 discloses a configuration in which a large-capacity memory is prepared in a device, a plurality of configuration data is stored in the memory, and configuration data is collectively written in a chip.

特開2007−251329号公報(特許文献2)は、上記特許文献1の従来技術に鑑み、リコンフィギュアラブル・コアの機能切り替えが可能であるという特徴を活かすことを目的とした技術を開示する。特許文献2は、コンフィギュレーション・データを格納したLSI外部のメモリと、LSI内部のコンフィギュレーション・データ格納メモリとの間に専用バスを設ける構成を開示している。   Japanese Patent Application Laid-Open No. 2007-251329 (Patent Document 2) discloses a technique aiming at taking advantage of the feature that the function of the reconfigurable core can be switched in view of the prior art of Patent Document 1. Patent Document 2 discloses a configuration in which a dedicated bus is provided between a memory outside an LSI that stores configuration data and a configuration data storage memory inside the LSI.

特許第4165125号公報(特許文献3)は、画像音声処理装置において、少量の汎用ハードウェアを用いて、多様な機能を効率的に実現することを目的として、リコンフィギュアラブル処理ユニットを備える画像音声処理装置を開示している。特許文献3の画像音声処理装置は、内部機能が変更可能であり、ビデオ信号を処理する少なくとも1つのリコンフィギュアラブルプロセッサと、リコンフィギュアラブルプロセッサの機能を決定する機能データに基づいてリコンフィギュアラブルプロセッサの機能を設定するコンフィグ部とを有する。   Japanese Patent No. 4165125 (Patent Document 3) discloses an image / audio processing apparatus provided with a reconfigurable processing unit for the purpose of efficiently realizing various functions using a small amount of general-purpose hardware in an image / audio processing apparatus. A processing apparatus is disclosed. The video / audio processing apparatus disclosed in Patent Document 3 has an internal function that can be changed, and at least one reconfigurable processor that processes a video signal and a reconfigurable processor based on functional data that determines the function of the reconfigurable processor. And a configuration unit for setting the functions of

特開平11−144662号公報(特許文献4)は、回路規模が小さく、かつ、演算処理の新機能追加に柔軟に対応できることを目的とした技術を開示している。特許文献4は、より詳細には、回路をインプリメントするデバイスとしてリコンフィギュレーション可能なプログラマブル・ロジック・デバイスを用い、複数個のコンフィギュレーション・データから、制御計算機が1個を選択してコンフィギュレーションの起動を行う構成を開示している。   Japanese Patent Application Laid-Open No. 11-144661 (Patent Document 4) discloses a technique for reducing the circuit scale and flexibly responding to the addition of a new function for arithmetic processing. More specifically, Patent Document 4 uses a programmable logic device that can be reconfigured as a device for implementing a circuit, and a control computer selects one of a plurality of configuration data and selects a configuration. A configuration for starting is disclosed.

特許第3664962号公報(特許文献5)は、各種の通信プロトコルに対応できる柔軟性および低消費電力性を両立させることを目的とした技術を開示する。特許文献5は、より詳細には、複数の半導体IPを格納するローカル構成DBと、ローカル構成DB内の半導体IPを利用して、プログラマブル・ロジック素子に書き込まれるコンフィギュレーション・データを作成し、プログラマブル・ロジック素子に書き込む制御部とを含む構成を開示している。   Japanese Patent No. 3664962 (Patent Document 5) discloses a technique aiming to achieve both flexibility and low power consumption that can cope with various communication protocols. More specifically, Patent Document 5 uses a local configuration DB that stores a plurality of semiconductor IPs, and a semiconductor IP in the local configuration DB to create configuration data that is written to programmable logic elements, and is programmable. A configuration including a control unit that writes to a logic element is disclosed.

特開2008−242850号公報(特許文献6)は、リコンフィギュラブル回路を使用して画像処理を行う際、処理対象となる画像データの特徴が多種に渡っても、画像特徴に適した画像処理を効率よく行うことを目的とした技術を開示する。特許文献6の画像処理装置は、画像処理すべき画像データより画像特徴とその画像特徴を有する領域とを判定する画像特徴判定回路と、画像特徴判定回路によって判定された画像特徴に応じた回路データをリコンフィギュラブル回路に設定するリコンフィギュラブル回路制御部と、画像処理の実行を制御する制御手段とを備えている。   Japanese Patent Laid-Open No. 2008-242850 (Patent Document 6) discloses an image processing suitable for image characteristics even when there are various characteristics of image data to be processed when image processing is performed using a reconfigurable circuit. Disclosed is a technique aimed at efficiently performing the above. An image processing apparatus disclosed in Patent Document 6 includes an image feature determination circuit that determines an image feature and a region having the image feature from image data to be image-processed, and circuit data corresponding to the image feature determined by the image feature determination circuit. Is provided in the reconfigurable circuit, and a control means for controlling the execution of the image processing.

従来技術においては、上記特許文献1に例示されるように、複数の機能を実現するため、半導体チップ上のメモリを大容量化し、複数のコンフィギュレーション・データをメモリ上に格納するアプローチが採用されている。しかしながら、半導体チップ上のメモリの大容量化は、半導体チップ面積の増大を意味し、1枚のシリコンウェハから生産できるチップ数が減ってしまうため、製造原価が嵩んでしまう。さらに、上記半導体チップ面積の増大は、配線長の長大化を招き、消費電力を増大させてしまう。これらの点を鑑みると、上記プログラマブル・デバイス内のメモリの大容量化は好ましいとはいえない。   In the prior art, as exemplified in Patent Document 1 above, in order to realize a plurality of functions, an approach of increasing the capacity of a memory on a semiconductor chip and storing a plurality of configuration data on the memory is adopted. ing. However, an increase in the capacity of the memory on the semiconductor chip means an increase in the area of the semiconductor chip, and the number of chips that can be produced from one silicon wafer decreases, resulting in an increase in manufacturing cost. Further, the increase in the area of the semiconductor chip leads to an increase in the wiring length and increases the power consumption. In view of these points, it is not preferable to increase the capacity of the memory in the programmable device.

上記特許文献2〜4に例示されるように、外部または内部にコンフィギュレーション・データを格納した記憶装置を設けて、ホスト装置側のハードウェア機能ユニットの切り替えに応じて半導体チップ上のメモリの構成データを更新するアプローチも採用されている。しかしながら、ソフトウェアの追加、変更について考慮がなされておらず、多様な機能を実現する目的を満足できるものではなかった。   As exemplified in Patent Documents 2 to 4, a memory device on which configuration data is stored externally or internally is provided, and the configuration of the memory on the semiconductor chip according to the switching of the hardware function unit on the host device side An approach to update data is also adopted. However, no consideration has been given to the addition or change of software, and the purpose of realizing various functions cannot be satisfied.

本発明は、上記従来技術における不充分な点に鑑みてなされたものであり、本発明は、FPGAなどに代表されるプログラマブル・デバイスと接続される情報処理装置において、プログラマブル・デバイスの複数の構成データを蓄積し、所望の機能を実現するために適切な構成データを選択設定してプログラマブル・デバイスを再構成し、該プログラマブル・デバイスと連携した処理を行う情報処理装置、演算方法、およびプログラムを提供することを目的とする。   The present invention has been made in view of the insufficiency in the above-described prior art, and the present invention provides a plurality of programmable device configurations in an information processing apparatus connected to a programmable device typified by an FPGA or the like. An information processing apparatus, an arithmetic method, and a program for accumulating data, selecting and setting appropriate configuration data to realize a desired function, reconfiguring a programmable device, and performing processing linked with the programmable device The purpose is to provide.

本発明は、上記課題を解決するため、下記特徴を有する、プログラマブル・デバイスに接続された情報処理装置を提供する。本情報処理装置は、構成データを複数格納する構成データ蓄積手段と、ソフトウェア・プログラムを複数格納するプログラム蓄積手段とを備える。上記構成データ各々は、上記プログラマブル・デバイス上で実現させる機能を定義するものである。上記ソフトウェア・プログラム各々は、対応する構成データにより上記プログラマブル・デバイス上に実現される機能を利用するものである。本情報処理装置は、プログラマブル・デバイスに、複数の構成データのうち選択された選択機能に対応する構成データを転送し、構成を要求する構成要求手段を含む。   In order to solve the above problems, the present invention provides an information processing apparatus connected to a programmable device having the following characteristics. The information processing apparatus includes configuration data storage means for storing a plurality of configuration data and program storage means for storing a plurality of software programs. Each of the configuration data defines functions to be realized on the programmable device. Each of the software programs uses functions realized on the programmable device by corresponding configuration data. The information processing apparatus includes configuration request means for transferring configuration data corresponding to a selected function selected from a plurality of configuration data to the programmable device and requesting the configuration.

上記構成によれば、プログラマブル・デバイスを用いる情報処理装置において、プログラマブル・デバイスを情報処理装置が求める多様な設定に構成し、情報処理装置と連携した演算を実現することが可能になり、プログラマブル・デバイスの有効性を著しく向上させることが可能となる。   According to the above configuration, in an information processing apparatus using a programmable device, it is possible to configure the programmable device in various settings required by the information processing apparatus, and to realize operations in cooperation with the information processing apparatus. The effectiveness of the device can be significantly improved.

第1の実施形態による演算システムの概略を示すブロック図。The block diagram which shows the outline of the arithmetic system by 1st Embodiment. 対応付けて管理されるプログラムおよび構成データを説明する図。The figure explaining the program and structure data which are managed by matching. プログラムおよび構成データの組を追加、変更および削除するためのGUIを表した図。The figure showing GUI for adding, changing, and deleting a set of programs and configuration data. 第1の実施形態によるホストとアクセラレータとを連携させた演算処理の起動時の全体フローを示すフローチャート。The flowchart which shows the whole flow at the time of starting the arithmetic processing which made the host and accelerator by 1st Embodiment cooperate. 第1の実施形態によるホストとアクセラレータとを連携させた演算処理示すフローチャート。5 is a flowchart illustrating calculation processing in which a host and an accelerator according to the first embodiment are linked. 第1の実施形態による機能変更に関連するフローチャート。The flowchart relevant to the function change by 1st Embodiment. 第1の実施形態による機能切り替え処理を示すフローチャート。The flowchart which shows the function switching process by 1st Embodiment. ホストとアクセラレータとの連携演算をビデオ・デコード処理に適用した利用態様を説明する図。The figure explaining the utilization aspect which applied the cooperation calculation of a host and an accelerator to the video decoding process. 他の利用態様を説明する図。The figure explaining another utilization aspect. 第2の実施形態による演算システムの概略を示すブロック図。The block diagram which shows the outline of the arithmetic system by 2nd Embodiment. 第2の実施形態による外部装置とホストとアクセラレータとを連携させた演算処理の全体フローを示すシーケンス図。The sequence diagram which shows the whole flow of the arithmetic processing which made the external device by 2nd Embodiment, a host, and an accelerator cooperate.

以下、図面を参照しながら、本発明の実施形態について説明するが、本発明の実施形態は、以下に説明する実施形態に限定されるものではない。なお、以下に説明する実施形態では、プログラマブル・デバイスを搭載するアクセラレータと連携した演算処理を実現している演算システムを構成する情報処理装置を一例に説明する。   Hereinafter, embodiments of the present invention will be described with reference to the drawings, but the embodiments of the present invention are not limited to the embodiments described below. In the embodiment described below, an information processing apparatus constituting an arithmetic system that realizes arithmetic processing in cooperation with an accelerator equipped with a programmable device will be described as an example.

図1は、第1の実施形態による演算システムの概略を示すブロック図である。図1に示す演算システム100は、情報処理装置110とアクセラレータ150とを含む。アクセラレータ150は、ユーザ側で内部論理回路の再書き込みが可能な集積回路であるプログラマブル・デバイスを搭載する。プログラマブル・デバイスは、具体的には、PAL(Programmable Array Logic)やGAL(Generic Array Logic)など狭義のPLD(Programmable Logic Device)、CPD(Complex Programmable Device)およびFPGA(Field Programmable Gate Array)を含むプログラマブル・ロジック・デバイスである。なお、以下の説明では、アクセラレータ150がFPGAを備えているものとして説明する。   FIG. 1 is a block diagram showing an outline of the arithmetic system according to the first embodiment. The arithmetic system 100 shown in FIG. 1 includes an information processing device 110 and an accelerator 150. The accelerator 150 includes a programmable device that is an integrated circuit on which the internal logic circuit can be rewritten on the user side. Programmable devices specifically include programmable PLDs (Programmable Logic Devices) such as PAL (Programmable Array Logic) and GAL (Generic Array Logic), CPDs (Complex Programmable Devices), and FPGAs (Field Programmable Gate Arrays). -It is a logic device. In the following description, it is assumed that the accelerator 150 includes an FPGA.

情報処理装置110は、画像処理やビデオ処理などの各種演算処理をハードウェア回路として実装するアクセラレータ150を利用する、ホスト装置である。情報処理装置110は、特に限定されるものではないが、パーソナル・コンピュータ、ワークステーション、サーバなどの汎用コンピュータ、複合機、複写機、プリンタ、ファクシミリ、スキャナなどの画像処理装置、PDA(Personal Digital Assistance)やスマートフォンなどの携帯情報端末などとして構成される。   The information processing apparatus 110 is a host apparatus that uses an accelerator 150 that implements various arithmetic processes such as image processing and video processing as hardware circuits. The information processing apparatus 110 is not particularly limited, but is a general-purpose computer such as a personal computer, a workstation, or a server, an image processing apparatus such as a multifunction peripheral, a copier, a printer, a facsimile, or a scanner, or a PDA (Personal Digital Assistance). ) And mobile information terminals such as smartphones.

情報処理装置110は、CPU112と、制御部114と、RAM116と、プログラム蓄積部118と、構成データ蓄積部120と、送信バッファ122とを備える。CPU112は、後述するアクセラレータ150と連携した演算処理を含めて情報処理装置110の全体制御を行う手段である。制御部114は、当該情報処理装置110内のデータフローを制御する手段である。RAM116は、上記CPU112による演算のための作業空間を提供する記憶装置である。   The information processing apparatus 110 includes a CPU 112, a control unit 114, a RAM 116, a program storage unit 118, a configuration data storage unit 120, and a transmission buffer 122. The CPU 112 is means for performing overall control of the information processing apparatus 110 including arithmetic processing in cooperation with an accelerator 150 described later. The control unit 114 is a means for controlling the data flow in the information processing apparatus 110. The RAM 116 is a storage device that provides a work space for calculation by the CPU 112.

プログラム蓄積部118は、当該情報処理装置110が実行するソフトウェア・プログラム・コードを蓄積する記憶領域である。構成データ蓄積部120は、アクセラレータ150に搭載されるプログラマブル・デバイスの機能構成を定義するコンフィギュレーション・データを蓄積する記憶領域である。プログラム蓄積部118および構成データ蓄積部120には、それぞれ、複数のソフトウェア・プログラム・コードおよびコンフィギュレーション・データを蓄積する。プログラム蓄積部118および構成データ蓄積部120は、特に限定されるものではないが、HDD(Hard Disk Drive)やSSD(Solid State Drive)などの2次記憶装置により提供することができる。送信バッファ122は、アクセラレータ150へコンフィギュレーション・データを転送する際に、該データを一時的に記憶するバッファメモリである。   The program storage unit 118 is a storage area for storing software program codes executed by the information processing apparatus 110. The configuration data storage unit 120 is a storage area that stores configuration data that defines the functional configuration of the programmable device mounted on the accelerator 150. The program storage unit 118 and the configuration data storage unit 120 store a plurality of software program codes and configuration data, respectively. The program storage unit 118 and the configuration data storage unit 120 are not particularly limited, but can be provided by a secondary storage device such as a hard disk drive (HDD) or a solid state drive (SSD). The transmission buffer 122 is a buffer memory that temporarily stores data when the configuration data is transferred to the accelerator 150.

アクセラレータ150は、制御部152と、構成データ格納部154と、ローカルメモリ156と、再構成可能な演算器アレイ158と、外部インタフェース160とを備える。制御部152は、当該アクセラレータ150内のデータフローを含めて全体制御を行う手段である。ローカルメモリ156は、当該アクセラレータ150内で利用されるローカルメモリである。   The accelerator 150 includes a control unit 152, a configuration data storage unit 154, a local memory 156, a reconfigurable computing unit array 158, and an external interface 160. The control unit 152 is a unit that performs overall control including the data flow in the accelerator 150. The local memory 156 is a local memory used in the accelerator 150.

構成データ格納部154は、上述したアクセラレータ150が備えるプログラマブル・デバイスのコンフィギュレーション・データを格納する記憶領域である。構成データ格納部154は、EEPROMやSRAMなどの不揮発性または揮発性のメモリ装置により構成される。   The configuration data storage unit 154 is a storage area for storing configuration data of the programmable device included in the accelerator 150 described above. The configuration data storage unit 154 is configured by a nonvolatile or volatile memory device such as an EEPROM or an SRAM.

再構成可能な演算器アレイ158は、複数のロジック・エレメントの2次元アレイで構成される。アクセラレータ150においてプログラマブル・デバイスが実現するロジック機能は、個々のロジック・エレメントのロジック機能と、ロジック・エレメント間の接続関係とを指定することにより定められる。上記コンフィギュレーション・データは、上述のようなプログラマブル・デバイスのロジック機能を指定する情報をいい、コンフィギュレーション・ビットストリームとも呼ばれ、本実施形態における構成データを構成する。以下、コンフィギュレーション・データを構成データと参照する。外部インタフェース160は、上記情報処理装置110と通信して、各種命令および構成データを受信する通信手段である。   The reconfigurable arithmetic unit array 158 includes a two-dimensional array of a plurality of logic elements. The logic function realized by the programmable device in the accelerator 150 is determined by designating the logic function of each logic element and the connection relationship between the logic elements. The configuration data refers to information specifying the logic function of the programmable device as described above, and is also called a configuration bitstream, and constitutes configuration data in the present embodiment. Hereinafter, the configuration data is referred to as configuration data. The external interface 160 is a communication unit that communicates with the information processing apparatus 110 and receives various commands and configuration data.

本実施形態における演算器アレイ158は、また、再構成が可能とされている。再構成(リコンフィギュレーション)とは、上記プログラマブル・デバイスが何度も書き換え可能であるものについて、構成データ格納部154内の構成データを書き換えることにより、プログラマブル・デバイスのロジック機能を異なるロジック機能へ変更することをいう。   The calculator array 158 in this embodiment can be reconfigured. Reconfiguration refers to changing the logic function of a programmable device to a different logic function by rewriting the configuration data in the configuration data storage unit 154 for the programmable device that can be rewritten many times. It means changing.

上記演算システム100においては、情報処理装置110は、電源投入時、アイドル時、ユーザ指示があった時など適時にて、CPU112により、構成データ蓄積部120から構成データを読み出し、アクセラレータ150へ送信して、プログラマブル・デバイスの構成処理を要求する。アクセラレータ150は、制御部152により、外部インタフェース160を介して受信した構成データを構成データ格納部154に格納する。アクセラレータ150は、制御部152により、構成データ格納部154に格納される構成データに従って再構成可能な演算器アレイ158の回路構成処理を実施する。これにより、情報処理装置110に対する演算機能提供の準備が行われる。   In the arithmetic system 100, the information processing apparatus 110 reads the configuration data from the configuration data storage unit 120 by the CPU 112 and transmits it to the accelerator 150 at a suitable time such as when the power is turned on, idle, or when there is a user instruction. Requesting configuration processing of the programmable device. The accelerator 150 stores the configuration data received via the external interface 160 in the configuration data storage unit 154 by the control unit 152. In the accelerator 150, the control unit 152 performs circuit configuration processing of the arithmetic unit array 158 that can be reconfigured according to the configuration data stored in the configuration data storage unit 154. As a result, preparation for providing an arithmetic function to the information processing apparatus 110 is performed.

情報処理装置110は、CPU112により、アクセラレータ150の準備完了の通知を受けて、プログラム蓄積部118に蓄積されるソフトウェア・プログラム・コードを実行する。当該ソフトウェア・プログラム・コードは、上記構成データによりアクセラレータ150のプログラマブル・デバイス上に実現される機能を利用するコードである。以下、ソフトウェア・プログラム・コードを単にプログラムと参照する。プログラムと構成データとは、図2に示すように対応付けられて管理されている。   The information processing apparatus 110 receives notification of the completion of preparation of the accelerator 150 from the CPU 112 and executes the software program code stored in the program storage unit 118. The software program code is a code that uses a function realized on the programmable device of the accelerator 150 by the configuration data. Hereinafter, the software program code is simply referred to as a program. Programs and configuration data are managed in association with each other as shown in FIG.

図2は、対応付けて管理されるプログラムおよび構成データを説明する図である。図2(A)は、プログラムおよび構成データを対応付ける管理テーブルのデータ構造を示す。図2(A)に示すように、プログラムおよび構成データは、それぞれ機能に関連付けられてテーブルに登録されている。図2(A)に示す管理テーブルによって、図2(B)に示すように、プログラム蓄積部118および構成データ蓄積部120内に格納されている複数のプログラム200,202,204,206および複数の構成データ210,212,214,216が、それぞれ対応付けられる。   FIG. 2 is a diagram for explaining programs and configuration data managed in association with each other. FIG. 2A shows the data structure of a management table that associates programs with configuration data. As shown in FIG. 2A, the program and configuration data are registered in a table in association with each function. As shown in FIG. 2B, a plurality of programs 200, 202, 204, 206 and a plurality of programs stored in the program storage unit 118 and the configuration data storage unit 120 are stored in the management table shown in FIG. Configuration data 210, 212, 214, and 216 are associated with each other.

なお、プログラム蓄積部118および構成データ蓄積部120に蓄積されるプログラムおよび構成データは、本実施形態では、固定されてはおらず、追加、変更および削除などをすることによって、多様な機能を実現することが可能とされている。図3は、プログラム蓄積部118および構成データ蓄積部120に蓄積されるプログラムおよび構成データの組を追加、変更および削除するためのグラフィカル・ユーザ・インタフェース(GUI)を示す。   Note that the program and configuration data stored in the program storage unit 118 and the configuration data storage unit 120 are not fixed in this embodiment, and various functions are realized by adding, changing, and deleting. It is possible. FIG. 3 shows a graphical user interface (GUI) for adding, changing, and deleting a set of programs and configuration data stored in the program storage unit 118 and the configuration data storage unit 120.

図3(A)は、登録されているプログラムおよびコンフィギュレーションを対応付けて表示するための登録一覧表示画面を示す。図3(A)に示す登録一覧表示画面220は、登録されている機能を一覧表示する一覧表示テーブル222と、新規追加ボタン226と、編集ボタン228と、削除ボタン230と、設定ボタン232と、キャンセルボタン234とを含む。一覧表示テーブル222には、機能の名称が表示されるカラム222aと、該機能に対応するプログラムが表示されるカラム222bと、該機能に対応する構成データが表示されるカラム222cとが含まれる。   FIG. 3A shows a registration list display screen for displaying registered programs and configurations in association with each other. A registration list display screen 220 shown in FIG. 3A includes a list display table 222 for displaying a list of registered functions, a new addition button 226, an edit button 228, a delete button 230, a setting button 232, And a cancel button 234. The list display table 222 includes a column 222a in which the name of the function is displayed, a column 222b in which a program corresponding to the function is displayed, and a column 222c in which configuration data corresponding to the function is displayed.

一覧表示テーブル222において、機能−プログラム−構成データの組224が選択された状態で削除ボタン230がクリックされると、その組は、登録から抹消される。登録から抹消されたプログラムおよび構成データは、それぞれ、プログラム蓄積部118および構成データ蓄積部120から削除されるか、あるいは削除フラグが立てられて後日削除されることになる。新規追加ボタン226がクリックされると、図3(B)に示す新規登録画面が表示される。機能−プログラム−構成データの組224が選択された状態で編集ボタン228がクリックされると、その組の登録内容を編集するための図3(B)に類似した編集画面が表示される。   When the delete button 230 is clicked in a state where the function-program-configuration data set 224 is selected in the list display table 222, the set is deleted from the registration. The program and configuration data deleted from the registration are deleted from the program storage unit 118 and the configuration data storage unit 120, respectively, or deleted at a later date with a deletion flag set. When the new addition button 226 is clicked, a new registration screen shown in FIG. 3B is displayed. When the edit button 228 is clicked with the function-program-configuration data set 224 selected, an edit screen similar to FIG. 3B for editing the registered contents of the set is displayed.

図3(B)は、プログラムおよび構成データの組を新規登録するための新規登録画面を示す。図3(B)に示す新規登録画面240は、登録しようとする内容を入力するためのテーブル242と、テーブル242の内容で新規追加を実行するための追加ボタン248と、新規追加をキャンセルするためのキャンセルボタン250とを含む。テーブル242は、機能の名称を入力するためのテキストボックス244と、該機能に対応付けて登録するプログラムおよび構成データを指定するための参照ボタン付きテキストボックス246a,246bとを含む。参照ボタン付きテキストボックス246a,246bがクリックされると、ファイル選択ダイアログボックスが表示される。   FIG. 3B shows a new registration screen for newly registering a set of programs and configuration data. The new registration screen 240 shown in FIG. 3B has a table 242 for inputting contents to be registered, an add button 248 for executing a new addition with the contents of the table 242, and for canceling the new addition. The cancel button 250 is included. The table 242 includes a text box 244 for inputting a name of a function, and text boxes 246a and 246b with reference buttons for specifying a program and configuration data to be registered in association with the function. When the text boxes with reference buttons 246a and 246b are clicked, a file selection dialog box is displayed.

操作者は、テキストボックス244に機能名を入力して、参照ボタン付きテキストボックス246a,246bで参照ボタンを適宜使用してそれぞれファイル選択指定し、追加ボタン248をクリックすることにより、機能の新規追加を行うことができる。そして、操作者は、図3(A)に示す設定ボタン232をクリックすることにより、登録内容を確定させることができる。あるいは、操作者は、キャンセルボタン234をクリックすることにより登録内容を破棄することができる。なお、編集ボタン228に応答して表示される編集画面は、図3(B)に示すものと同様の構成とすることができるので、説明は省略する。   The operator inputs a function name in the text box 244, uses the reference buttons in the text boxes with reference buttons 246a and 246b as appropriate to select files, and clicks the add button 248 to add a new function. It can be performed. Then, the operator can confirm the registered content by clicking the setting button 232 shown in FIG. Alternatively, the operator can discard the registered content by clicking the cancel button 234. Note that an edit screen displayed in response to the edit button 228 can have the same configuration as that shown in FIG.

図3に示したGUIは、情報処理装置110が備えるディスプレイ、または情報処理装置110が提供するリモート・インタフェースにアクセスする図示しない外部装置が備えるディスプレイに表示される。情報処理装置110または外部装置が備える入力装置による上記GUIに対する操作によって、プログラムおよび構成データが指定される。そして、情報処理装置110は、CPU112により、該指定に応答して、情報処理装置110内の記憶領域または外部装置の記憶領域に保存されるプログラムおよび構成データを受け付け、プログラム蓄積部118および構成データ蓄積部120に蓄積させる。   The GUI illustrated in FIG. 3 is displayed on a display included in the information processing apparatus 110 or a display included in an external apparatus (not illustrated) that accesses a remote interface provided by the information processing apparatus 110. A program and configuration data are designated by an operation on the GUI by the information processing apparatus 110 or an input device included in the external apparatus. Then, in response to the designation, the information processing apparatus 110 receives a program and configuration data stored in the storage area in the information processing apparatus 110 or the storage area of the external apparatus in response to the designation, and the program storage unit 118 and the configuration data Accumulate in the accumulation unit 120.

プログラムおよび構成データの管理の運用に関しては、図2(A)に示す管理テーブルのように機能が管理されている場合、標準機能は変更不可能とし、オプション機能は変更可能とするという運用が考えられる。この場合、必要とする機能のみ搭載することによって、記録容量の小さな機器での記録容量不足を避けることができる。また搭載機能の改善や障害対策など、事後的な更新も容易になる。   Regarding the operation of managing programs and configuration data, when functions are managed as in the management table shown in FIG. 2A, the standard function cannot be changed and the optional function can be changed. It is done. In this case, it is possible to avoid a shortage of recording capacity in a device having a small recording capacity by installing only necessary functions. In addition, subsequent updates such as improvements to installed functions and countermeasures against failures will be easier.

さらに、上述したプログラムおよび構成データの追加、変更および削除は、情報処理装置110のアイドル時、ユーザ指示に応じた機能実行停止後など、機能実行に不都合が生じないタイミングにて実施することが望ましい。また、図3に示すGUIを用いてプログラム−構成データの組を登録するものとして説明してきたが、ディスプレイなどを備えないデバイスでは、適宜、ファームウェア・アップデートのための手動操作に対応して、最新状態のプログラムおよび構成データに更新する態様としてもよい。   Furthermore, it is desirable to add, change, and delete the above-described program and configuration data at a timing that does not cause inconvenience in function execution, such as when the information processing apparatus 110 is idle or after function execution is stopped according to a user instruction. . In addition, although it has been described that the program-configuration data pair is registered using the GUI shown in FIG. 3, the device that does not have a display or the like is appropriately updated with manual operation for firmware update. A state program and configuration data may be updated.

本実施形態による演算システム100では、図2に示すようにプログラムと構成データとが対応付けて管理されているため、情報処理装置110からは、アクセラレータ150に対して、当該情報処理装置110がアクセラレータ150に求める機能に対応した構成データが送信される。したがって、情報処理装置110とアクセラレータ150とのプログラムおよび構成データ間に不整合を生じさせない。また、プログラムと構成データとが機能毎に組にして管理されているので、機能を指定することで、利用すべきソフトウェア・プログラム・コードと構成データとが一意に決定される。   In the arithmetic system 100 according to the present embodiment, as shown in FIG. 2, the program and the configuration data are managed in association with each other. Therefore, the information processing apparatus 110 receives the accelerator 150 from the information processing apparatus 110. The configuration data corresponding to the function required for 150 is transmitted. Therefore, no inconsistency occurs between the programs and configuration data of the information processing apparatus 110 and the accelerator 150. Since the program and the configuration data are managed as a set for each function, the software program code and the configuration data to be used are uniquely determined by designating the function.

以下、図4および図5を参照しながら、第1の実施形態による演算システム100で行われる情報処理装置110とアクセラレータ150とを連携させた演算処理について、詳細を説明する。図4は、第1の実施形態による情報処理装置とアクセラレータとを連携させた演算処理の起動時の全体フローを示すフローチャートである。なお、図4および図5においては、各処理ステップが、実行主体を分けて説明されている。図4に示すステップS100〜S104および図5に示すステップS300〜S307は、情報処理装置(ホスト)110が実行主体となる処理である。図4に示すステップS200〜S206および図5に示すステップS400〜S407は、アクセラレータ150が実行主体となる処理である。   Hereinafter, with reference to FIG. 4 and FIG. 5, details of the arithmetic processing in which the information processing apparatus 110 and the accelerator 150 are linked in the arithmetic system 100 according to the first embodiment will be described. FIG. 4 is a flowchart illustrating an overall flow at the time of starting the arithmetic processing in which the information processing apparatus and the accelerator according to the first embodiment are linked. In FIG. 4 and FIG. 5, each processing step is described separately for the execution subject. Steps S100 to S104 shown in FIG. 4 and steps S300 to S307 shown in FIG. 5 are processes in which the information processing apparatus (host) 110 is the execution subject. Steps S200 to S206 shown in FIG. 4 and steps S400 to S407 shown in FIG. 5 are processes in which the accelerator 150 is the execution subject.

図4に示す処理は、情報処理装置(ホスト)110およびアクセラレータ150が電源投入されて起動されたことに応答して、ステップS100およびステップS200から開始される。ステップS101では、情報処理装置110は、CPU112により、構成データ蓄積部120から構成データを読み出し、アクセラレータ150に送信して、プログラマブル・デバイスの構成処理を要求する。ここで、送信される構成データは、上記登録された複数の機能のうち予め選択された機能に対応する構成データである。CPU112は、本実施形態における構成要求手段を構成する。ステップS201では、アクセラレータ150は、情報処理装置110から構成データを受信する。   The process shown in FIG. 4 is started from step S100 and step S200 in response to the information processing apparatus (host) 110 and the accelerator 150 being turned on and activated. In step S <b> 101, the information processing apparatus 110 causes the CPU 112 to read configuration data from the configuration data storage unit 120 and transmit the configuration data to the accelerator 150 to request configuration processing of the programmable device. Here, the transmitted configuration data is configuration data corresponding to a function selected in advance among the plurality of registered functions. The CPU 112 constitutes a configuration request unit in the present embodiment. In step S <b> 201, the accelerator 150 receives configuration data from the information processing apparatus 110.

ステップS202では、アクセラレータ150は、受信した構成データを構成データ格納部154に格納する。ステップS203では、アクセラレータ150は、格納した構成データに従って、再構成可能な演算器アレイ158の回路構成の構成処理を実施する。アクセラレータ150が構成処理を完了させると、ステップS204では、アクセラレータ150は、情報処理装置110に対し、機能提供する準備が完了したことを意味する準備完了信号を出力する。ステップS204に対応して、ステップS102では、情報処理装置110は、アクセラレータ150から準備完了信号を受信する。   In step S202, the accelerator 150 stores the received configuration data in the configuration data storage unit 154. In step S203, the accelerator 150 performs configuration processing of the circuit configuration of the reconfigurable computing element array 158 according to the stored configuration data. When the accelerator 150 completes the configuration process, in step S204, the accelerator 150 outputs a preparation completion signal indicating that the preparation for providing the function is completed to the information processing apparatus 110. Corresponding to step S204, in step S102, the information processing apparatus 110 receives a preparation completion signal from the accelerator 150.

準備完了信号が受信されると、ステップS103では、情報処理装置110は、上記送信した構成データに対応するプログラムの実行を開始し、後述するアクセラレータ150と連携する演算処理(以下、連携演算と参照する。)を行う。アクセラレータ150側でも、ステップS103に対応してステップS205で、連携演算処理を行う。   When the preparation completion signal is received, in step S103, the information processing apparatus 110 starts execution of the program corresponding to the transmitted configuration data and performs arithmetic processing (hereinafter referred to as cooperative arithmetic and reference) in cooperation with an accelerator 150 described later. ). On the accelerator 150 side as well, in step S205 corresponding to step S103, cooperative calculation processing is performed.

図5は、第1の実施形態による情報処理装置(ホスト)とアクセラレータとを連携させた演算処理示すフローチャートである。図5に示す処理は、図4に示すステップS103およびステップS205で連携演算処理が呼び出されたことに対応して、それぞれ、ステップS300およびステップS400から開始する。ステップS301では、情報処理装置110は、上記プログラムの演算処理を開始して、アクセラレータ150の初期化を指令する。ホスト側のステップS301に対応して、ステップS401では、アクセラレータ150は、演算処理開始処理を実行し、演算回路を初期化する。   FIG. 5 is a flowchart illustrating a calculation process in which the information processing apparatus (host) and the accelerator according to the first embodiment are linked. The process shown in FIG. 5 starts from step S300 and step S400, respectively, in response to the cooperation calculation process being called in step S103 and step S205 shown in FIG. In step S <b> 301, the information processing apparatus 110 starts arithmetic processing of the program and instructs the initialization of the accelerator 150. Corresponding to step S301 on the host side, in step S401, the accelerator 150 executes arithmetic processing start processing and initializes the arithmetic circuit.

ステップS302では、情報処理装置110は、上記プログラムによる処理が末端に達したため処理を終了させるのか否かを判定する。ステップS302で、プログラムを終了させないと判定された場合(NO)は、ステップS303へ処理が進められる。ステップS303では、情報処理装置110は、上記プログラムに含まれる情報処理装置110側の命令コードを実行するとともに、アクセラレータ150を利用する命令コードに対応して、アクセラレータ150を駆動し、演算を依頼する。   In step S302, the information processing apparatus 110 determines whether or not to end the processing because the processing by the program has reached the end. If it is determined in step S302 that the program is not terminated (NO), the process proceeds to step S303. In step S303, the information processing apparatus 110 executes the instruction code on the information processing apparatus 110 side included in the program, and drives the accelerator 150 in response to the instruction code using the accelerator 150 to request calculation. .

ホスト側のステップS303に対応して、ステップS402では、アクセラレータ150は、プログラマブル・デバイスの再構成可能な演算器アレイ158のロジック機能により情報処理装置110から依頼された演算を実行する。ステップS403では、アクセラレータ150は、依頼された演算の結果を情報処理装置110に返却する。   Corresponding to step S303 on the host side, in step S402, the accelerator 150 executes the operation requested by the information processing apparatus 110 by the logic function of the reconfigurable operation unit array 158 of the programmable device. In step S <b> 403, the accelerator 150 returns the requested calculation result to the information processing apparatus 110.

アクセラレータ側のステップS403に対応して、ステップS304では、情報処理装置110は、アクセラレータ150から演算結果を受信し、ステップS302へ処理を分岐させる。アクセラレータ側では、ステップS403後、ステップS404では、アクセラレータ150は、次の演算が依頼されたのか演算終了の指令が行われたのかに応じて処理を分岐させる。ステップS404で、演算終了の指令が行われず、ホスト側のステップS303に対応して次の演算の依頼があった場合(NO)は、ステップS402にループされて、ステップS402で依頼された演算を実行する。   Corresponding to step S403 on the accelerator side, in step S304, the information processing apparatus 110 receives the calculation result from the accelerator 150 and branches the process to step S302. On the accelerator side, after step S403, in step S404, the accelerator 150 branches the process depending on whether the next calculation is requested or a calculation end command is issued. In step S404, if the calculation end command is not issued and there is a request for the next calculation corresponding to step S303 on the host side (NO), the process loops to step S402 and the calculation requested in step S402 is executed. Run.

ステップS302で、上記プログラムによる処理が末端に達したために処理を終了させると判定した場合(YES)は、ステップS305へ処理が進められる。ステップS305では、情報処理装置110は、アクセラレータ150に演算終了を指令する。アクセラレータ側では、ステップS404では、次の演算が依頼されたか演算終了の指令が行われたに応じて処理を分岐させ、ステップS305に対応して演算終了の指令が行われた場合(YES)は、ステップS405へ処理が進められる。   If it is determined in step S302 that the process is terminated because the process by the program has reached the end (YES), the process proceeds to step S305. In step S305, the information processing apparatus 110 instructs the accelerator 150 to end the calculation. On the accelerator side, in step S404, the process branches depending on whether the next calculation is requested or a calculation end command is issued, and if a calculation end command is issued in response to step S305 (YES), Then, the process proceeds to step S405.

ステップS405では、アクセラレータ150は、演算終了処理(後始末)を実行し、ステップS406で、演算終了処理の完了を報告し、ステップS407で本処理を終了させて図4に示す処理に戻る。アクセラレータ側のステップS406に対応して、ステップS306では、情報処理装置110が、演算終了処理(後始末)を実行して、ステップS307で、本処理を終了させて、図4に示す処理に戻る。情報処理装置110およびアクセラレータ150は、それぞれ、図5に示すステップS307およびステップS407から戻って連携演算処理が終了すると、ステップS104およびステップS206で本処理を終了させる。   In step S405, the accelerator 150 executes calculation end processing (following cleanup), reports completion of calculation end processing in step S406, ends this processing in step S407, and returns to the processing shown in FIG. Corresponding to step S406 on the accelerator side, in step S306, the information processing apparatus 110 executes calculation end processing (follow-up processing), ends this processing in step S307, and returns to the processing shown in FIG. . When the information processing apparatus 110 and the accelerator 150 return from step S307 and step S407 shown in FIG. 5 and complete the cooperative calculation process, the information processing apparatus 110 and the accelerator 150 end the process in step S104 and step S206, respectively.

図4および図5に示した処理によれば、演算システム100の起動時に、予め選択された機能に対応する構成データが、情報処理装置110からアクセラレータ150へと転送されて、該構成データに基づいて演算器アレイ158が構成される。そして、演算器アレイ158が構成を完了させた後は、情報処理装置110は、予め選択された機能に対応するプログラムを起動させて、アクセラレータ150を駆動しながら所望の連携演算処理を行うことができる。   According to the processing shown in FIGS. 4 and 5, when the arithmetic system 100 is activated, configuration data corresponding to a preselected function is transferred from the information processing apparatus 110 to the accelerator 150 and is based on the configuration data. Thus, an arithmetic unit array 158 is configured. After the arithmetic unit array 158 completes the configuration, the information processing apparatus 110 can start a program corresponding to a preselected function and perform a desired cooperative arithmetic process while driving the accelerator 150. it can.

ところで、アクセラレータ150に搭載されるプログラマブル・デバイスとしては、ダイナミック・リコンフィギュラブル・プロセッサと呼ばれる半導体デバイスが知られている。この半導体デバイスは、動的な再構成、つまり電源遮断することなく極短時間に回路書き換えが可能となっており、特に近年のFPGAにおいては、部分的に動的再構成が可能になっており、適用範囲も広がっている。上記アクセラレータ150に搭載されるプログラマブル・デバイスとして、ダイナミック・リコンフィギュラブル・プロセッサを用いれば、情報処理装置(ホスト)110の電源遮断を待つ必要なく、即時、プログラマブル・デバイスの構成を更新して、アクセラレータ150が提供する機能を変更することができる。   By the way, as a programmable device mounted on the accelerator 150, a semiconductor device called a dynamic reconfigurable processor is known. This semiconductor device can be dynamically reconfigured, that is, the circuit can be rewritten in a very short time without shutting down the power supply. Especially in recent FPGAs, the dynamic reconfiguration is partially possible. The scope of application is also expanding. If a dynamic reconfigurable processor is used as the programmable device mounted on the accelerator 150, the configuration of the programmable device can be updated immediately without waiting for the power-off of the information processing apparatus (host) 110, The function provided by the accelerator 150 can be changed.

上述までは、演算システム100の起動時の処理について説明してきたが、以下、図6および図7を参照しながら、起動後ユーザからの指示に応答して機能を変更する処理について説明する。上記動的再構成を利用することにより、演算システム100は、現時点でアクセラレータ150に構成されている機能と異なる機能が必要となった場合でも、演算システム100の再起動を伴わずに、プログラマブル・デバイスのロジック機能を異なるロジック機能へ変更し、異なる他の連携演算処理を行うことができる。   The processing at the time of starting up the arithmetic system 100 has been described so far. Hereinafter, processing for changing functions in response to an instruction from the user after starting will be described with reference to FIGS. 6 and 7. By using the dynamic reconfiguration, the arithmetic system 100 can be programmed without restarting the arithmetic system 100 even when a function different from the function currently configured in the accelerator 150 is required. It is possible to change the logic function of the device to a different logic function and perform other different cooperative calculation processes.

図6(A)は、第1の実施形態による情報処理装置(ホスト)が実行する、アクセラレータと連携して実現する機能を変更する処理を示すフローチャートである。図6(A)に示す処理は、演算システム100が起動したことに応答して、ステップS500から開始する。ステップS501では、情報処理装置110は、ユーザから機能変更の指示があったか否かを判定し、ユーザから機能変更の指示があるまでの間(NOの間)、ステップS501をループさせて、指示を待ち受ける。   FIG. 6A is a flowchart illustrating processing for changing a function realized in cooperation with an accelerator, which is executed by the information processing apparatus (host) according to the first embodiment. The process shown in FIG. 6A starts from step S500 in response to the activation of the arithmetic system 100. In step S501, the information processing apparatus 110 determines whether or not there has been an instruction to change the function from the user, and loops step S501 until the instruction to change the function is received from the user (during NO). I wait.

ステップS501で、ユーザからの機能変更指示があったと判定された場合(YES)は、ステップS502へ処理を進める。ステップS502では、情報処理装置110は、自己およびアクセラレータ150の動作状態を確認する。ステップS503では、情報処理装置110は、機能変更が即時実施可能であるか否かを判定する。説明する実施形態では、当該情報処理装置110およびアクセラレータ150の両方がアイドル状態にあるときに、即時実施が可能であると判定されるものとする。   If it is determined in step S501 that there has been a function change instruction from the user (YES), the process proceeds to step S502. In step S <b> 502, the information processing apparatus 110 confirms the operating state of itself and the accelerator 150. In step S503, the information processing apparatus 110 determines whether the function change can be performed immediately. In the embodiment to be described, when both the information processing apparatus 110 and the accelerator 150 are in an idle state, it is determined that immediate execution is possible.

ステップS503で、即時実施が可能であると判定された場合(YES)は、ステップS504で、機能切り替え処理を実行し、機能切り替え処理が完了すると、ステップS501へループさせて、次の指示を待ち受ける。一方、ステップS503で、即時実施が不可能であると判定された場合(NO)は、ステップS505へ処理を進める。ステップS505では、情報処理装置110は、タスクが登録されているキューに機能変更命令を投入し、ステップS501へループさせて、次の指示を待ち受ける。   If it is determined in step S503 that immediate execution is possible (YES), the function switching process is executed in step S504, and when the function switching process is completed, the process loops to step S501 and waits for the next instruction. . On the other hand, if it is determined in step S503 that immediate implementation is not possible (NO), the process proceeds to step S505. In step S505, the information processing apparatus 110 inputs a function change instruction to the queue in which the task is registered, loops to step S501, and waits for the next instruction.

図6(B)は、第1の実施形態による情報処理装置(ホスト)が実行する、キューに投入された機能変更命令を実行する処理を示すフローチャートである。図6(B)に示す処理は、演算システム100が起動したことに応答して、ステップS600から開始する。ステップS601では、情報処理装置110は、当該情報処理装置110がアイドル状態にあるか否かを判定し、アイドル状態となるまでの間(NOの間)、ステップS601をループさせて待ち受ける。   FIG. 6B is a flowchart illustrating a process of executing a function change command placed in a queue, which is executed by the information processing apparatus (host) according to the first embodiment. The process shown in FIG. 6B starts from step S600 in response to the activation of the arithmetic system 100. In step S601, the information processing apparatus 110 determines whether or not the information processing apparatus 110 is in an idle state, and loops step S601 and waits until the information processing apparatus 110 is in an idle state (during NO).

なお、情報処理装置110のアイドル状態は、情報処理装置110のOS(オペレーティング・システム)が備えるタスクスケジューラなどを監視することによって判定することができる。または、入出力部分やジョブ管理の待ちキューなどを監視することによるシステム固有の資源管理機能を利用してもよい。   Note that the idle state of the information processing apparatus 110 can be determined by monitoring a task scheduler provided in the OS (Operating System) of the information processing apparatus 110. Alternatively, a resource management function unique to the system by monitoring the input / output portion and the job management wait queue may be used.

ステップS601で、情報処理装置110がアイドル状態にあると判定された場合(YES)は、ステップS602へ処理を進める。ステップS602では、情報処理装置110は、キューに機能変更命令があるか否かを判定する。ステップS602で、キューに機能変更命令が無いと判定された場合(NO)は、ステップS601へ処理をループさせて、機能変更命令を待ち受ける。   If it is determined in step S601 that the information processing apparatus 110 is in the idle state (YES), the process proceeds to step S602. In step S602, the information processing apparatus 110 determines whether there is a function change command in the queue. If it is determined in step S602 that there is no function change command in the queue (NO), the process loops to step S601 and waits for the function change command.

一方、ステップS602では、キューに機能変更命令が有ると判定された場合(YES)は、ステップS603へ処理を分岐させる。ステップS603では、情報処理装置110は、アクセラレータ150に問い合わせを行って、アクセラレータ150の動作状態を確認する。ステップS604では、情報処理装置110は、機能変更が実施可能であるか否かを判定する。説明する実施形態では、当該情報処理装置110およびアクセラレータ150の両方がアイドル状態にあるときに、実施可能であると判定されるものとする。   On the other hand, if it is determined in step S602 that there is a function change instruction in the queue (YES), the process branches to step S603. In step S <b> 603, the information processing apparatus 110 makes an inquiry to the accelerator 150 and confirms the operation state of the accelerator 150. In step S604, the information processing apparatus 110 determines whether a function change can be performed. In the embodiment to be described, when both the information processing apparatus 110 and the accelerator 150 are in an idle state, it is determined that implementation is possible.

ステップS604で、実施可能であると判定された場合(YES)は、ステップS605で、機能切り替え処理を実行し、ステップS606で、キューから当該機能変更命令を削除した後、ステップS601へループさせて、次の指示を待ち受ける。一方、ステップS604で、実施不可能であると判定された場合(NO)は、ステップS601へ処理をループさせて、実施可能となるまで待ち受ける。   If it is determined in step S604 that implementation is possible (YES), a function switching process is executed in step S605. After the function change instruction is deleted from the queue in step S606, the process is looped to step S601. Wait for the next instruction. On the other hand, if it is determined in step S604 that it cannot be performed (NO), the process loops to step S601 and waits until it can be performed.

図7は、第1の実施形態による機能切り替え処理を示すフローチャートである。なお、図7についても、図4および図5と同様に、ステップS700〜S705は、情報処理装置(ホスト)110が実行主体となる処理であり、ステップS800〜S806は、アクセラレータ150が実行主体となる処理である。   FIG. 7 is a flowchart showing a function switching process according to the first embodiment. In FIG. 7, as in FIGS. 4 and 5, steps S700 to S705 are processes in which the information processing apparatus (host) 110 is the execution subject, and steps S800 to S806 are the execution subjects of the accelerator 150. It is processing that becomes.

図7に示す処理は、図6(A)に示したステップS504または図6(B)に示したステップS605で呼び出されて、ステップS700およびステップS800から開始される。ステップS701では、情報処理装置110は、選択された機能に対応するプログラムおよび構成データを準備する。ここでは、従前選択されていた機能に対応するプログラムが終了しているものとする。ステップS702では、情報処理装置110は、アクセラレータ150に対し、機能変更を要求するとともに、変更後の機能に対応する構成データを送信する。ステップS801では、アクセラレータ150は、情報処理装置110から、機能変更要求とともに構成データを受信する。   The process shown in FIG. 7 is called in step S504 shown in FIG. 6A or step S605 shown in FIG. 6B, and is started from step S700 and step S800. In step S701, the information processing apparatus 110 prepares a program and configuration data corresponding to the selected function. Here, it is assumed that the program corresponding to the previously selected function has ended. In step S702, the information processing apparatus 110 requests the accelerator 150 to change the function and transmits configuration data corresponding to the changed function. In step S801, the accelerator 150 receives configuration data from the information processing apparatus 110 together with a function change request.

アクセラレータ150は、ステップS802で、受信した構成データを構成データ格納部154に格納し、ステップS803で、格納した構成データに従って、再構成可能な演算器アレイ158の回路構成の再構成処理を実施する。アクセラレータ150は、再構成処理を完了させると、ステップS804で、情報処理装置110に対し準備完了信号を出力する。ステップS804に対応して、ステップS703では、情報処理装置110は、アクセラレータ150から準備完了信号を受信する。   In step S802, the accelerator 150 stores the received configuration data in the configuration data storage unit 154. In step S803, the accelerator 150 performs reconfiguration processing of the circuit configuration of the reconfigurable computing element array 158 according to the stored configuration data. . When the accelerator 150 completes the reconfiguration process, the accelerator 150 outputs a preparation completion signal to the information processing apparatus 110 in step S804. Corresponding to step S804, in step S703, the information processing apparatus 110 receives a preparation completion signal from the accelerator 150.

ステップS704では、情報処理装置110は、上記変更後の機能に対応するプログラムの実行を開始し、アクセラレータとの連携演算処理を行う。アクセラレータ150側でも、ステップS704に対応して、ステップS805で、連携演算処理が行われる。連携演算処理が終了すると、ステップS705およびステップS806で本処理を終了させる。なお、図7のステップS805で呼び出される連携演算は、図5に示したものと同様であるため、詳細な説明は省略する。   In step S704, the information processing apparatus 110 starts execution of the program corresponding to the changed function and performs cooperative calculation processing with the accelerator. On the accelerator 150 side as well, corresponding to step S704, cooperative calculation processing is performed in step S805. When the cooperation calculation process ends, the process ends in steps S705 and S806. Note that the cooperation calculation called in step S805 of FIG. 7 is the same as that shown in FIG.

上述したように、アクセラレータ150に搭載するプログラマブル・デバイスとして、動的再構成が可能なリコンフィギュラブル・プロセッサを用いることにより、電源遮断することなく、機能毎にアクセラレータ150の回路構成の変更が可能となる。つまり、あるタスクを一の局面ではアクセラレータ150上のハードウェアで処理し、他の局面ではCPU112でソフトウェア処理することができる。以下、図8および図9を参照しながら、上述したアクセラレータとの連携演算の利用態様について説明する。   As described above, by using a reconfigurable processor capable of dynamic reconfiguration as a programmable device mounted on the accelerator 150, the circuit configuration of the accelerator 150 can be changed for each function without shutting down the power. It becomes. That is, a certain task can be processed by hardware on the accelerator 150 in one aspect, and software processing can be performed by the CPU 112 in another aspect. Hereinafter, with reference to FIG. 8 and FIG. 9, a usage mode of the above-described cooperation calculation with the accelerator will be described.

図8は、上述したアクセラレータとの連携演算をビデオ・デコード処理に適用した利用態様を説明する図である。図8に示す処理は、ビデオ再生が指示されたことに応答して、ステップS900から開始する。ステップS901では、情報処理装置110は、再生が要求されるビデオの品質が高画質設定であるか否かを判定する。ここでは、説明の便宜上、高画質であるか否かで処理を分岐させているが、ビットレート、コーデックの種類など画像ファイル自体の品質に応じて判定することができ、またユーザが許容する品質に応じて判定することができる。   FIG. 8 is a diagram for explaining a usage mode in which the above-described cooperation calculation with the accelerator is applied to the video decoding process. The process shown in FIG. 8 starts from step S900 in response to an instruction for video playback. In step S901, the information processing apparatus 110 determines whether the quality of the video that is requested to be played is a high image quality setting. Here, for convenience of explanation, processing is branched depending on whether or not the image quality is high, but it can be determined according to the quality of the image file itself, such as the bit rate and codec type, and the quality allowed by the user It can be determined according to

ステップS901で、ビデオ品質が高画質であると判定された場合(YES)は、ステップS902へ処理を進める。ステップS902では、情報処理装置110は、アクセラレータ150に、ビデオ・デコード機能に対応する構成データを送信するとともに、機能構成の変更を要求する。ステップS903では、情報処理装置110は、アクセラレータ150から準備完了信号を受信し、ステップS904では、アクセラレータ150と連携したビデオ・デコード演算を実行する。ビデオ・デコード演算が終了すると、ステップS906で、本ビデオ・デコード処理を終了する。   If it is determined in step S901 that the video quality is high (YES), the process proceeds to step S902. In step S902, the information processing apparatus 110 transmits configuration data corresponding to the video decoding function to the accelerator 150 and requests a change in the functional configuration. In step S903, the information processing apparatus 110 receives a preparation completion signal from the accelerator 150. In step S904, the information processing apparatus 110 executes a video decoding operation in cooperation with the accelerator 150. When the video decoding operation is completed, the video decoding process is ended in step S906.

一方、ステップS901で、ビデオ品質が高画質ではないと判定された場合(NO)は、ステップS905へ処理を進める。ステップS905では、情報処理装置110は、ソフトウェア・デコーダによるビデオ・デコード処理を実行し、ステップS906で、本ビデオ・デコード処理を終了する。   On the other hand, if it is determined in step S901 that the video quality is not high (NO), the process proceeds to step S905. In step S905, the information processing apparatus 110 executes video decoding processing by a software decoder, and ends the video decoding processing in step S906.

図8を参照して説明した連携演算処理によれば、高画質で再生する場合にはビデオ・デコード機能をアクセラレータ150上のハードウェア回路に担当させ、低画質で再生しても構わない場合にはCPU112でビデオ・デコードのソフトウェアに担当させることができる。つまり、演算負荷の大小に応じて、アクセラレータ150を使うか否かを切り替えることによって、アクセラレータ150が占有されてしまう可能性を低減するとともに、消費電力を低減することが可能となる。   According to the cooperative calculation processing described with reference to FIG. 8, when reproducing with high image quality, the video decoding function may be assigned to the hardware circuit on the accelerator 150 and may be reproduced with low image quality. The CPU 112 can be in charge of video decoding software. That is, by switching whether or not to use the accelerator 150 according to the size of the computation load, it is possible to reduce the possibility that the accelerator 150 will be occupied and reduce power consumption.

図9は、他の利用態様を説明するフローチャートである。図9に説明する例では、機能に対応するプログラムは、繰り返し実行されるコード単位を含み、該コード単位は、アクセラレータ150の準備状況に応じて、機能処理をCPU112によるソフトウェア処理として実行するか、アクセラレータ150を駆動した連携演算として実行するかを分岐させるコードを含む。アクセラレータ150の準備状況は、準備完了フラグによって表されており、準備完了フラグは、アクセラレータ150から準備完了信号を受信していない間は「偽」の値であり、該準備完了信号を受信すると「真」の値となる。   FIG. 9 is a flowchart for explaining another usage mode. In the example illustrated in FIG. 9, the program corresponding to the function includes a code unit that is repeatedly executed, and the code unit executes function processing as software processing by the CPU 112 according to the preparation status of the accelerator 150. It includes a code that branches whether to execute the accelerator 150 as a linked operation. The preparation status of the accelerator 150 is represented by a preparation completion flag. The preparation completion flag is “false” while the preparation completion signal is not received from the accelerator 150. When the preparation completion signal is received, The value is “true”.

図9に示す処理は、ステップS1000から開始し、ステップS1001では、情報処理装置110は、対応する構成データをアクセラレータ150に送信する。ステップS1002では、情報処理装置110は、対応するプログラムによる機能処理を開始する。ステップS1003では、情報処理装置110は、該プログラムの終了条件が成立したか否かを判定する。ステップS1003で、終了条件が成立していないと判定された場合(NO)は、ステップS1004へ処理が分岐される。   The process illustrated in FIG. 9 starts from step S1000. In step S1001, the information processing apparatus 110 transmits corresponding configuration data to the accelerator 150. In step S1002, the information processing apparatus 110 starts function processing using a corresponding program. In step S1003, the information processing apparatus 110 determines whether an end condition of the program is satisfied. If it is determined in step S1003 that the end condition is not satisfied (NO), the process branches to step S1004.

ステップS1004では、情報処理装置110は、準備完了フラグの値が「真」であるか否かを判定する。ステップS1004で、準備完了フラグの値が「偽」であると判定された場合(NO)は、ステップS1005で、ソフトウェア処理として上述したコード単位の機能処理を実行し、ステップS1003へループさせる。一方、ステップS1004で、準備完了フラグの値が「真」であると判定された場合(YES)は、ステップS1006では、情報処理装置110は、アクセラレータ150との連携演算として上述したコード単位の機能処理を実行し、ステップS1003へループさせる。ステップS1003で、終了条件が成立したと判定された場合(YES)は、ステップS1007へ処理を進め、本処理を終了させる。   In step S1004, the information processing apparatus 110 determines whether the value of the preparation completion flag is “true”. If it is determined in step S1004 that the value of the ready flag is “false” (NO), the above-described code unit function process is executed as a software process in step S1005, and the process loops to step S1003. On the other hand, if it is determined in step S1004 that the value of the ready flag is “true” (YES), in step S1006, the information processing apparatus 110 performs the above-described code unit function as a cooperative operation with the accelerator 150. The process is executed, and the process loops to step S1003. If it is determined in step S1003 that the end condition is satisfied (YES), the process proceeds to step S1007 to end the process.

図9に示す処理によれば、アクセラレータ150のハードウェア化が整っていない新しく実行された処理は、CPU112にてソフトウェア処理として実行する。一方、アクセラレータ150による実行準備が整い次第、アクセラレータ150と連携した演算に切り替えて処理が実行される。これにより、CPU負荷を軽減しつつ、システム全体の運用を効率化することが可能となる。   According to the process shown in FIG. 9, a newly executed process in which the hardware of the accelerator 150 is not prepared is executed by the CPU 112 as a software process. On the other hand, as soon as the execution preparation by the accelerator 150 is completed, the processing is executed by switching to the operation linked with the accelerator 150. As a result, it is possible to make the operation of the entire system more efficient while reducing the CPU load.

以上説明した第1の実施形態には、以下に説明する利点がある。まず、情報処理装置110側からアクセラレータ150内のプログラマブル・デバイスの機能を利用する場合、情報処理装置110側では、構成データによって構成済みのデバイスが提供する機能を前提としたプログラムを準備する必要がある。つまり、情報処理装置110側のプログラムと、アクセラレータ150側の構成データとの組み合わせが適切であることが必須である。上述までの第1の実施形態によれば、情報処理装置110側にプログラマブル・デバイスの構成データと、それに対応したプログラムとが対応付けて蓄積され、使用時には情報処理装置110からアクセラレータ150に転送されて再構成される。このため、情報処理装置110側がアクセラレータ150に期待する機能と、アクセラレータ150が提供する機能との間に不一致を生じさせない。   The first embodiment described above has the advantages described below. First, when using the function of the programmable device in the accelerator 150 from the information processing apparatus 110 side, the information processing apparatus 110 side needs to prepare a program based on the function provided by the configured device based on the configuration data. is there. That is, it is essential that the combination of the program on the information processing apparatus 110 side and the configuration data on the accelerator 150 side is appropriate. According to the first embodiment described above, the configuration data of the programmable device and the corresponding program are stored in association with each other on the information processing apparatus 110 side, and transferred from the information processing apparatus 110 to the accelerator 150 when used. Reconfigured. For this reason, a mismatch does not occur between the function that the information processing apparatus 110 expects from the accelerator 150 and the function that the accelerator 150 provides.

また、プログラム蓄積部118および構成データ蓄積部120は、半導体チップ上のメモリで構成する必要がなく、このようなメモリと比較して安価に大容量化できる2次記憶装置を用いて構成することができる。このことから、多様な機能を実現するため多数の構成データおよびプログラムを蓄積しても支障がなく、半導体製造コストの上昇も招かない。   In addition, the program storage unit 118 and the configuration data storage unit 120 do not need to be configured by a memory on a semiconductor chip, and are configured by using a secondary storage device that can be increased in capacity at a lower cost than such a memory. Can do. From this, it is possible to accumulate a large number of configuration data and programs in order to realize various functions, and there is no problem, and the semiconductor manufacturing cost does not increase.

さらに、ホスト110からアクセラレータ150へ構成データを転送し、アクセラレータ150内で構成設定を完了させるまでは、ある程度の時間を要することになる。プログラマブル・デバイスとして一般的なFPGAを利用する場合、システム全体を停止させ、FPGAの回路書き換え命令と構成データとを送信し、書き換え後にシステムをリブートして新たなシステムとして動作させる手間がかかる。さらに、リブート時間が必要であり、この期間は、ユーザを待たしてしまうことになる。これに対して、上記第1の実施形態では、構成データの転送および(再)構成処理が起動時に実行されるため、アクセラレータ150の設定処理に要する時間を情報処理装置110の起動時間に隠蔽することができ、使用感を著しく向上させることが可能である。   Furthermore, it takes a certain amount of time to transfer the configuration data from the host 110 to the accelerator 150 and complete the configuration setting in the accelerator 150. When a general FPGA is used as a programmable device, it takes time to stop the entire system, transmit an FPGA circuit rewrite command and configuration data, reboot the system after rewriting, and operate as a new system. Furthermore, a reboot time is required, and the user waits for this period. On the other hand, in the first embodiment, since the configuration data transfer and (re) configuration processing are executed at startup, the time required for the setting processing of the accelerator 150 is concealed in the startup time of the information processing apparatus 110. It is possible to remarkably improve the feeling of use.

また、ユーザによる機能変更が指示された際、情報処理装置110およびアクセラレータ150のいずれかでもアイドル状態でない場合は、動作中の処理を中断しない限り、プログラマブル・デバイスの構成を変更することができない。上記第1の実施形態によれば、情報処理装置110およびアクセラレータ150のアイドル状態を検知して、構成データの転送および(再)構成処理が実行されるため、演算処理途中の結果を失うことなく、ユーザからの、プログラマブル・デバイスの構成変更を伴う機能実行要求を受け付けることが可能となる。   In addition, when the function change is instructed by the user, if any of the information processing apparatus 110 and the accelerator 150 is not in the idle state, the configuration of the programmable device cannot be changed unless the operation process is interrupted. According to the first embodiment, the idle state of the information processing device 110 and the accelerator 150 is detected, and the configuration data transfer and (re-) configuration processing are executed. Therefore, the result during the arithmetic processing is not lost. It becomes possible to accept a function execution request accompanied by a configuration change of the programmable device from the user.

また、ユーザによる機能変更が指示された際に、情報処理装置110およびアクセラレータ150のいずれかでもアイドル状態でない場合に、実行中の処理を停止するか、停止するまで待つ態様が考えられる。上述した実施形態では、実行中の処理が停止するまで待つものとして説明したが、ユーザが許すのであれば、実行中の処理を停止した上で機能変更を実行することを妨げるものではない。   In addition, when a function change is instructed by the user, if any of the information processing apparatus 110 and the accelerator 150 is not in an idle state, a mode in which the process being executed is stopped or until it is stopped can be considered. In the above-described embodiment, the process is described as waiting until the process being executed stops. However, if the user permits, it does not prevent the execution of the function change after stopping the process being executed.

上述した第1の実施形態による演算システム100は、アクセラレータ150と、該アクセラレータ150のホストとなる情報処理装置110とから構成されるものであった。以下、図10および図11を参照しながら、第2の実施形態による演算システムについて説明する。   The arithmetic system 100 according to the first embodiment described above is configured by an accelerator 150 and an information processing apparatus 110 that is a host of the accelerator 150. Hereinafter, an arithmetic system according to the second embodiment will be described with reference to FIGS. 10 and 11.

図10は、第2の実施形態による演算システムの概略を示すブロック図である。図10に示す演算システム300は、アクセラレータ350と、該アクセラレータ350の直接のホストとなる第1情報処理装置310と、第2情報処理装置370とを含み構成される。第1情報処理装置310は、各種演算をハードウェア回路として実装するアクセラレータ350を直接利用する直接のホスト装置であり、かつ、アクセラレータ350の演算資源を、アクセラレータ350を直接利用できない他の情報処理装置に対して提供する機能を備える。第2情報処理装置370は、上記情報処理装置310を経由してアクセラレータ350の演算資源を利用する要求元である。以下、第1情報処理装置をホスト310と参照し、第2情報処理装置を要求元370という場合がある。   FIG. 10 is a block diagram showing an outline of the arithmetic system according to the second embodiment. An arithmetic system 300 illustrated in FIG. 10 includes an accelerator 350, a first information processing device 310 that is a direct host of the accelerator 350, and a second information processing device 370. The first information processing device 310 is a direct host device that directly uses the accelerator 350 that implements various operations as a hardware circuit, and other information processing devices that cannot directly use the accelerator 350 for the processing resources of the accelerator 350 The function to provide for is provided. The second information processing device 370 is a request source that uses the computing resources of the accelerator 350 via the information processing device 310. Hereinafter, the first information processing apparatus may be referred to as the host 310, and the second information processing apparatus may be referred to as the request source 370.

第1情報処理装置310は、第1の実施形態の情報処理装置110と同様に、CPU312、制御部314、RAM316、プログラム蓄積部318、構成データ蓄積部320および送信バッファ322を備える。本実施形態による第1情報処理装置310は、さらに、ネットワーク・インタフェース324を備える。第1の実施形態で説明したものと同一のハードウェア・コンポーネント312〜322については、第1の実施形態と同様のはたらきをするので、説明を割愛する。   Similar to the information processing apparatus 110 according to the first embodiment, the first information processing apparatus 310 includes a CPU 312, a control unit 314, a RAM 316, a program storage unit 318, a configuration data storage unit 320, and a transmission buffer 322. The first information processing apparatus 310 according to the present embodiment further includes a network interface 324. The hardware components 312 to 322 that are the same as those described in the first embodiment function in the same manner as in the first embodiment, and thus the description thereof is omitted.

ネットワーク・インタフェース324は、TCP/IPやイーサネット(登録商標)などのプロトコルに従って、第1情報処理装置310を有線または無線のネットワークに接続させるインタフェース機器である。本実施形態のネットワーク・インタフェース324は、ネットワークを介して第1情報処理装置310を第2情報処理装置370に接続させている。   The network interface 324 is an interface device that connects the first information processing apparatus 310 to a wired or wireless network according to a protocol such as TCP / IP or Ethernet (registered trademark). The network interface 324 of the present embodiment connects the first information processing apparatus 310 to the second information processing apparatus 370 via a network.

一方、第2情報処理装置370は、第1情報処理装置310と類似した構成を有しており、CPU372と、RAM374と、データ蓄積部376と、ネットワーク・インタフェース378とを備える。CPU372は、後述する第1情報処理装置310を経由してアクセラレータ350を利用する処理を含めて、第2情報処理装置370の全体制御を行う手段である。RAM374は、上記CPU372による演算のための作業空間を提供する記憶装置である。ネットワーク・インタフェース378は、TCP/IPやイーサネット(登録商標)などのプロトコルに従って、第2情報処理装置370を有線または無線のネットワークに接続させるインタフェース機器である。本実施形態のネットワーク・インタフェース378は、ネットワークを介して第2情報処理装置370を第1情報処理装置310に接続させている。   On the other hand, the second information processing device 370 has a configuration similar to that of the first information processing device 310, and includes a CPU 372, a RAM 374, a data storage unit 376, and a network interface 378. The CPU 372 is means for performing overall control of the second information processing device 370 including processing that uses the accelerator 350 via the first information processing device 310 described later. The RAM 374 is a storage device that provides a work space for calculation by the CPU 372. The network interface 378 is an interface device that connects the second information processing device 370 to a wired or wireless network according to a protocol such as TCP / IP or Ethernet (registered trademark). The network interface 378 of the present embodiment connects the second information processing device 370 to the first information processing device 310 via the network.

データ蓄積部376は、ホスト310に実行させるソフトウェア・プログラム・コードと、ホスト310を経由してアクセラレータ350のプログラマブル・デバイスに送信するための構成データとを対応付けて蓄積する記憶領域である。上記プログラムおよび構成データに関連付けて、当該第2情報処理装置370で実行するソフトウェア・プログラム・コードを蓄積していてもよい。データ蓄積部376は、特に限定されるものではないが、HDDやSSDなどの2次記憶装置により提供することができる。アクセラレータ350は、第1の実施形態と同様であるため説明を割愛する。   The data storage unit 376 is a storage area that stores software program code to be executed by the host 310 and configuration data to be transmitted to the programmable device of the accelerator 350 via the host 310 in association with each other. Software program codes to be executed by the second information processing device 370 may be stored in association with the program and configuration data. The data storage unit 376 is not particularly limited, but can be provided by a secondary storage device such as an HDD or an SSD. Since the accelerator 350 is the same as that of the first embodiment, the description thereof is omitted.

第2情報処理装置370は、必要となったときに、アクセラレータ350の演算機能の提供を受けるため第1情報処理装置310に演算を要求する。第2の実施形態における演算システム300においては、第1情報処理装置310は、第2情報処理装置370から演算の要求があった時に、要求された演算機能に応じた構成データを構成データ蓄積部320から読み出して、アクセラレータ350へ送信する。アクセラレータ350は、外部インタフェースを介して受信した構成データを構成データ格納部に格納し、該構成データに従って再構成可能な演算器アレイを構成する。   When it becomes necessary, the second information processing device 370 requests the first information processing device 310 to perform calculation in order to receive the calculation function of the accelerator 350. In the arithmetic system 300 according to the second embodiment, the first information processing device 310 receives the configuration data corresponding to the requested arithmetic function when the second information processing device 370 requests the operation, and the configuration data storage unit The data is read from 320 and transmitted to the accelerator 350. The accelerator 350 stores the configuration data received via the external interface in the configuration data storage unit, and configures an arithmetic unit array that can be reconfigured according to the configuration data.

第1情報処理装置310は、アクセラレータ350の準備完了の通知を受けて、プログラム蓄積部318に蓄積されるプログラムを実行する。当該プログラムは、第2情報処理装置370からの要求を受けて、上記構成データによりアクセラレータ350のプログラマブル・デバイス上に実現される機能を利用し、その演算結果を第2情報処理装置370へ応答するコードを含む。第2情報処理装置370は、第1情報処理装置310から送信される要求した演算結果を受信して、自身の処理に組み込み、最終的な結果を得る。   The first information processing apparatus 310 receives the notification of the completion of preparation of the accelerator 350 and executes the program stored in the program storage unit 318. The program receives a request from the second information processing device 370, uses the function realized on the programmable device of the accelerator 350 by the configuration data, and returns the calculation result to the second information processing device 370. Contains code. The second information processing device 370 receives the requested calculation result transmitted from the first information processing device 310, incorporates it in its own processing, and obtains a final result.

プログラムと構成データとは、第1の実施形態と同様に、対応付けられて管理される。上記構成データおよびプログラムは、必ずしも第1情報処理装置310が蓄積していない場合があるため、第2の実施形態では、直接のホスト310からアクセラレータ350の演算機能の提供を受けている要求元の第2情報処理装置370が、これらの構成データおよびプログラムを提供してもよい。   The program and the configuration data are managed in association with each other as in the first embodiment. The configuration data and the program may not necessarily be stored in the first information processing apparatus 310. Therefore, in the second embodiment, the request source receiving the calculation function of the accelerator 350 directly from the host 310 is used. The second information processing device 370 may provide these configuration data and programs.

図11は、第2の実施形態による第2情報処理装置(要求元)と第1情報処理装置(ホスト)とアクセラレータとを連携させた演算処理の起動時の全体フローを示すシーケンス図である。図11に示す処理は、要求元370側から開始され、ステップS1101では、要求元370は、ホスト310に対し、処理を依頼する要求を発行する。これに対応してホスト310は、該処理要求を受け付ける。ステップS1102では、要求元370は、ホスト310に対し、依頼する処理の演算(機能)を指定する。これに対応してホスト310は、演算の指定を受け付ける。ステップS1103では、要求元370は、ホスト310に対し、上記指定した演算で用いるデータ、パラメータを送信する。これに対応してホスト310は、上記指定した演算で用いるデータ、パラメータを受け付ける。   FIG. 11 is a sequence diagram illustrating an overall flow at the time of starting the arithmetic processing in which the second information processing apparatus (request source), the first information processing apparatus (host), and the accelerator according to the second embodiment are linked. The process illustrated in FIG. 11 is started from the request source 370 side, and in step S1101, the request source 370 issues a request for processing to the host 310. In response to this, the host 310 receives the processing request. In step S <b> 1102, the request source 370 designates the calculation (function) of the requested process to the host 310. In response to this, the host 310 accepts a calculation designation. In step S <b> 1103, the request source 370 transmits data and parameters used in the specified calculation to the host 310. In response to this, the host 310 receives data and parameters used in the specified calculation.

ステップS1104では、ホスト310は、要求元370から指定された演算(機能)に対応するプログラムおよび構成データが、自身の蓄積部318,320に蓄積されているか否かを判定する。なお、図11に示すシーケンス図では、自身の蓄積部318,320に必要なプログラムおよび構成データが蓄積されていない場合を例に説明するが、蓄積されているの場合は、後述するステップS1105およびステップS1106が省略される。   In step S <b> 1104, the host 310 determines whether the program and configuration data corresponding to the calculation (function) designated by the request source 370 are accumulated in its own accumulation units 318 and 320. In the sequence diagram shown in FIG. 11, a case where necessary programs and configuration data are not stored in the storage units 318 and 320 will be described as an example. Step S1106 is omitted.

ステップS1105では、ホスト310は、要求元370に対し、必要なプログラムおよび構成データの送信を依頼する。ステップS1106では、要求元370は、送信依頼を受けて、データ蓄積部376から対応するプログラムおよび構成データを読み出し、ホスト310へ送信する。ステップS1107では、ホスト310は、要求元370から受信した構成データをアクセラレータ350に送信して、プログラマブル・デバイスの再構成処理を要求する。   In step S1105, the host 310 requests the request source 370 to transmit necessary programs and configuration data. In step S 1106, the request source 370 receives the transmission request, reads the corresponding program and configuration data from the data storage unit 376, and transmits the program and configuration data to the host 310. In step S1107, the host 310 transmits the configuration data received from the request source 370 to the accelerator 350, and requests a programmable device reconfiguration process.

ステップS1108では、アクセラレータ350は、ホスト310から受信した構成データを構成データ格納部に格納する。ステップS1109では、アクセラレータ350は、格納した構成データに従って、再構成可能な演算器アレイの回路構成の再構成処理を実施する。アクセラレータ350は、構成処理を完了させると、ステップS1110で、ホスト310に対し、準備完了信号を出力する。   In step S1108, accelerator 350 stores the configuration data received from host 310 in the configuration data storage unit. In step S1109, the accelerator 350 performs a reconfiguration process of the circuit configuration of the reconfigurable computing element array according to the stored configuration data. After completing the configuration process, the accelerator 350 outputs a preparation completion signal to the host 310 in step S1110.

ステップS1111では、ホスト310は、要求元370から上記構成データとともに受信したプログラムによる処理を開始させる。ホスト310は、ステップS1112で、アクセラレータ350を初期化し、ステップS1113で、データおよびパラメータ、またはこれらのいずれか一方を用いて、アクセラレータ350を駆動する命令コードを実行し、演算依頼を行う。ステップS1114では、ホスト310は、アクセラレータ350から演算結果を受信する。上記ステップS1113およびステップS1114を適宜繰り返し、要求元370から要求された演算が完了した後、ホスト310は、ステップS1115で、アクセラレータ350に終了を通知し、ステップS1116で、要求元370に演算終了を報告する。   In step S <b> 1111, the host 310 starts processing by the program received from the request source 370 together with the configuration data. In step S1112, the host 310 initializes the accelerator 350, and in step S1113, the host 310 executes an instruction code for driving the accelerator 350 using data and / or parameters, and makes an operation request. In step S <b> 1114, the host 310 receives the calculation result from the accelerator 350. Steps S1113 and S1114 are repeated as appropriate, and after the calculation requested by the request source 370 is completed, the host 310 notifies the accelerator 350 of the end in step S1115, and the request source 370 ends the calculation in step S1116. Report.

ステップS1117では、要求元370は、演算結果を受け入れる準備が整ったことを通知する結果受付準備完了通知をホスト310に対し送信する。ステップS1118では、ホスト310は、結果受付準備完了通知を受けて、処理結果を要求元370へ返却するコードを実行し、処理結果を送信する。ステップS1119では、要求元370は、処理結果を受けて、処理結果受信通知をホスト310に送信し、ステップS1120で、要求終了応答を受信する。   In step S <b> 1117, the request source 370 transmits a result reception preparation completion notification to the host 310 that notifies that the calculation result is ready to be received. In step S1118, the host 310 receives the result reception preparation completion notification, executes a code for returning the processing result to the request source 370, and transmits the processing result. In step S1119, the request source 370 receives the processing result, transmits a processing result reception notification to the host 310, and receives a request end response in step S1120.

上述した第2の実施形態の演算システム300によれば、アクセラレータ350を直接利用できない情報処理装置370においても、アクセラレータ350を直接利用できる情報処理装置310を経由して、同等な演算機能を利用できる。これにより、ホスト310の有効性を著しく向上させることができる。また、単一のホストからのみアクセラレータを利用する構成においては、常にアクセラレータを必要とする演算を実施する場合を除けば、通常、アクセラレータの遊休時間が存在する。上記第2の実施形態によれば、外部の情報処理装置370からアクセラレータ350を利用可能としているので、アクセラレータ350の利用率の向上にも寄与する。   According to the arithmetic system 300 of the second embodiment described above, even in the information processing device 370 that cannot directly use the accelerator 350, an equivalent arithmetic function can be used via the information processing device 310 that can directly use the accelerator 350. . Thereby, the effectiveness of the host 310 can be significantly improved. Further, in a configuration in which an accelerator is used only from a single host, there is usually an idle time for the accelerator, except when an operation that always requires an accelerator is performed. According to the second embodiment, the accelerator 350 can be used from the external information processing device 370, which contributes to an improvement in the utilization rate of the accelerator 350.

さらに、上記第2の実施形態では、直接のホスト310がプログラムおよび構成データを備えなくても、要求元370からプログラムおよび構成データを送信できるため、直接のホスト310に格納されているプログラムおよび構成データによって実行できる演算機能に限定されない。   Further, in the second embodiment, since the program and configuration data can be transmitted from the request source 370 even if the direct host 310 does not have the program and configuration data, the program and configuration stored in the direct host 310 can be transmitted. It is not limited to an arithmetic function that can be executed by data.

以上説明してきたように、上述した実施形態によれば、FPGAなどに代表されるプログラマブル・デバイス(を搭載するアクセラレータ)と接続される情報処理装置において、プログラマブル・デバイスの複数の構成データを蓄積し、所望の機能を実現するために適切な構成データを選択設定してプログラマブル・デバイスを再構成し、該プログラマブル・デバイスと連携した処理を行う情報処理装置、演算方法、およびプログラムを提供することができる。   As described above, according to the above-described embodiment, in an information processing apparatus connected to a programmable device (including an accelerator) represented by an FPGA or the like, a plurality of configuration data of the programmable device is accumulated. Providing an information processing apparatus, a calculation method, and a program for selecting and setting appropriate configuration data to realize a desired function, reconfiguring a programmable device, and performing processing linked with the programmable device it can.

上述した実施形態によれば、FPGAなどに代表されるプログラマブル・デバイスをアクセラレータとして用いる情報処理装置において、アクセラレータを情報処理装置が求める多様な設定に構成し、情報処理装置と連携することが可能になり、アクセラレータの有効性を著しく向上させることが可能となる。さらに、アクセラレータを備える情報処理装置を経由して、アクセラレータを備えない他の情報処理装置においても、アクセラレータと連携した演算の結果を利用することができるので、アクセラレータの利用範囲が拡大される。   According to the above-described embodiment, in an information processing apparatus using a programmable device represented by an FPGA or the like as an accelerator, the accelerator can be configured in various settings required by the information processing apparatus and can be linked to the information processing apparatus. Thus, the effectiveness of the accelerator can be significantly improved. Furthermore, since the result of the operation in cooperation with the accelerator can be used in another information processing apparatus that does not include the accelerator via the information processing apparatus including the accelerator, the use range of the accelerator is expanded.

なお、上記機能部は、アセンブラ、C、C++、C#、Java(登録商標)、などのレガシープログラミング言語やオブジェクト指向プログラミング言語などで記述されたコンピュータ実行可能なプログラムにより実現でき、ROM、EEPROM、EPROM、フラッシュメモリ、フレキシブルディスク、CD−ROM、CD−RW、DVD−ROM、DVD−RAM、DVD−RW、ブルーレイディスク、SDカード、MOなど装置可読な記録媒体に格納して、あるいは電気通信回線を通じて頒布することができる。   The functional unit can be realized by a computer-executable program written in a legacy programming language such as assembler, C, C ++, C #, Java (registered trademark), an object-oriented programming language, or the like. EPROM, flash memory, flexible disk, CD-ROM, CD-RW, DVD-ROM, DVD-RAM, DVD-RW, Blu-ray disc, SD card, MO, etc. Can be distributed through.

これまで本発明の実施形態について説明してきたが、本発明の実施形態は上述した実施形態に限定されるものではなく、他の実施形態、追加、変更、削除など、当業者が想到することができる範囲内で変更することができ、いずれの態様においても本発明の作用・効果を奏する限り、本発明の範囲に含まれるものである。   Although the embodiments of the present invention have been described so far, the embodiments of the present invention are not limited to the above-described embodiments, and those skilled in the art may conceive other embodiments, additions, modifications, deletions, and the like. It can be changed within the range that can be done, and any embodiment is included in the scope of the present invention as long as the effects of the present invention are exhibited.

100,300…演算システム、110,310…情報処理装置、112,312…CPU、114,314…制御部、116,316…RAM、118、318…プログラム蓄積部、120,320…構成データ蓄積部、122,322…送信バッファ、150,350…アクセラレータ、152…制御部、154…構成データ格納部、156…ローカルメモリ、158…再構成可能な演算器アレイ、160…外部インタフェース、200…プログラム、210…構成データ、220…登録一覧表示画面、222…一覧表示テーブル、222…カラム、224…機能−プログラム−構成データの組、226…新規追加ボタン、228…編集ボタン、230…削除ボタン、232…設定ボタン、234…キャンセルボタン、240…新規登録画面、242…テーブル、244…テキストボックス、246…参照ボタン付きテキストボックス、248…追加ボタン、250…キャンセルボタン、324,378…ネットワーク・インタフェース、370…第2情報処理装置(要求元)、372…CPU、374…RAM、376…データ蓄積部 DESCRIPTION OF SYMBOLS 100,300 ... Arithmetic system, 110, 310 ... Information processing apparatus, 112, 312 ... CPU, 114, 314 ... Control unit, 116, 316 ... RAM, 118, 318 ... Program storage unit, 120, 320 ... Configuration data storage unit 122, 322 ... transmission buffer, 150, 350 ... accelerator, 152 ... control unit, 154 ... configuration data storage unit, 156 ... local memory, 158 ... reconfigurable arithmetic unit array, 160 ... external interface, 200 ... program, 210 ... Configuration data, 220 ... Registration list display screen, 222 ... List display table, 222 ... Column, 224 ... Function-program-configuration data set, 226 ... New addition button, 228 ... Edit button, 230 ... Delete button, 232 ... Setting button, 234 ... Cancel button, 240 ... New registration Surface 242 ... table 244 text box 246 text box with reference button 248 add button 250 cancel button 324 378 network interface 370 second information processing apparatus (request source) 372 ... CPU, 374 ... RAM, 376 ... Data storage unit

特開平10−285014号公報Japanese Patent Laid-Open No. 10-285014 特開2007−251329号公報JP 2007-251329 A 特許第4165125号公報Japanese Patent No. 4165125 特開平11−144662号公報JP-A-11-144661 特許第3664962号公報Japanese Patent No. 3664962 特開2008−242850号公報JP 2008-242850 A

Claims (10)

プログラマブル・デバイスに接続される情報処理装置であって、
各々前記プログラマブル・デバイス上で実現させる機能を定義する構成データが、複数格納される構成データ蓄積手段と、
各々対応する構成データにより前記プログラマブル・デバイス上に実現される機能を利用するソフトウェア・プログラムが、複数格納されるプログラム蓄積手段と、
前記プログラマブル・デバイスに、複数の構成データのうち選択された選択機能に対応する構成データを転送し、構成を要求する構成要求手段と
を含む、情報処理装置。
An information processing apparatus connected to a programmable device,
Configuration data storage means for storing a plurality of configuration data defining functions to be realized on each of the programmable devices, and
Program storage means for storing a plurality of software programs that use functions realized on the programmable device by corresponding configuration data, and
An information processing apparatus comprising: configuration request means for transferring configuration data corresponding to a selected function selected from among a plurality of configuration data to the programmable device and requesting a configuration.
前記プログラマブル・デバイスが構成を完了させた後、前記選択機能に対応するソフトウェア・プログラムに従って、前記選択機能に対応する構成データにより前記プログラマブル・デバイス上に実現された機能を利用する命令を実行する演算手段をさらに含む、請求項1に記載の情報処理装置。   An operation that, after the programmable device completes the configuration, executes an instruction to use the function realized on the programmable device by the configuration data corresponding to the selection function according to the software program corresponding to the selection function The information processing apparatus according to claim 1, further comprising means. 前記構成データ蓄積手段に格納しようとする構成データと、該構成データにより前記プログラマブル・デバイス上に実現される機能を利用するコードを含むソフトウェア・プログラムとを受け付ける手段と、
受け付けた構成データおよびソフトウェア・プログラムを対応付けて、前記構成データ蓄積手段および前記プログラム蓄積手段に蓄積させる手段と
をさらに含む、請求項1または2に記載の情報処理装置。
Means for receiving configuration data to be stored in the configuration data storage means, and a software program including a code that uses a function realized on the programmable device by the configuration data;
The information processing apparatus according to claim 1, further comprising: the configuration data storage unit and the program storage unit that stores the received configuration data and the software program in association with each other.
前記構成要求手段は、当該情報処理装置の起動時に、前記構成データの転送を実施し、前記プログラマブル・デバイスの構成を要求することを特徴とする、請求項1〜3のいずれか1項に記載の情報処理装置。   The said structure request | requirement means implements the transfer of the said configuration data, and requests | requires the structure of the said programmable device at the time of the said information processing apparatus starting, The Claim 1 characterized by the above-mentioned. Information processing device. 選択機能が指定される手段をさらに含み、
前記構成要求手段は、前記選択機能の指定に応答して、前記構成データの転送を実施し、前記プログラマブル・デバイスの再構成を要求することを特徴とする、請求項1〜4のいずれか1項に記載の情報処理装置。
Further comprising means for selecting the selection function;
5. The configuration request unit according to claim 1, wherein the configuration request unit is configured to transfer the configuration data in response to the designation of the selection function and request reconfiguration of the programmable device. The information processing apparatus according to item.
前記構成要求手段は、当該情報処理装置および前記プログラマブル・デバイスがアイドル状態にあるときに、前記構成データの転送を実施し、前記プログラマブル・デバイスの再構成を要求することを特徴とする、請求項1〜5のいずれか1項に記載の情報処理装置。   The configuration request unit is configured to transfer the configuration data and request reconfiguration of the programmable device when the information processing apparatus and the programmable device are in an idle state. The information processing apparatus according to any one of 1 to 5. 当該情報処理装置と外部装置との間でデータ通信を行う通信手段と、
前記通信手段を用いて、前記外部装置から演算の指定を受け付ける手段と、
指定された演算で利用するデータおよびパラメータ、またはこれらのいずれか一方を受け付ける手段と、
前記データおよびパラメータ、またはこれらのいずれか一方を用いて、前記プログラマブル・デバイスと連携した演算を開始する手段と、
前記通信手段を用いて、前記指定された演算の結果を前記外部装置へ返却する手段と
をさらに含む、請求項1〜6のいずれか1項に記載の情報処理装置。
A communication means for performing data communication between the information processing apparatus and an external apparatus;
Means for accepting calculation designation from the external device using the communication means;
Means for receiving data and / or parameters to be used in a specified operation, or one of these;
Means for using the data and parameters, or any one of these, to initiate computation in conjunction with the programmable device;
The information processing apparatus according to claim 1, further comprising: a unit that returns the result of the designated calculation to the external device using the communication unit.
前記通信手段を用いて前記外部装置から、前記指定された演算に必要な構成データと、該構成データにより前記プログラマブル・デバイス上に実現される機能を利用し、該機能を利用して得られた演算結果を前記外部装置へ返却するコードを含むソフトウェア・プログラムとを受信する手段をさらに含み、
前記構成要求手段は、前記プログラマブル・デバイスに、受信した前記指定された演算に必要な構成データを転送して再構成を要求することを特徴とする、請求項7に記載の情報処理装置。
Using the communication means, the configuration data necessary for the designated calculation and the function realized on the programmable device by the configuration data are obtained from the external device and the function is used. Means for receiving a software program including a code for returning a calculation result to the external device;
The information processing apparatus according to claim 7, wherein the configuration request unit requests the reconfiguration by transferring the received configuration data necessary for the specified calculation to the programmable device.
プログラマブル・デバイスと通信する情報処理装置が実行する演算方法であって、前記情報処理装置に対し、
各々前記プログラマブル・デバイス上で実現させる機能を定義する構成データが複数格納される構成データ蓄積手段から、前記複数の構成データのうち選択機能に対応する構成データを読み出すステップと、
各々対応する構成データにより前記プログラマブル・デバイス上に実現される機能を利用するソフトウェア・プログラムが複数格納されるプログラム蓄積手段から、前記選択機能に対応するソフトウェア・プログラムを読み出すステップと、
前記プログラマブル・デバイスに、前記選択機能に対応する構成データを転送し、構成を要求するステップと、
前記選択機能に対応するソフトウェア・プログラムに従った処理を実行するステップと
を実行させる、演算方法。
An arithmetic method executed by an information processing apparatus communicating with a programmable device, the information processing apparatus
Reading out configuration data corresponding to a selected function from among the plurality of configuration data from configuration data storage means in which a plurality of configuration data defining functions to be realized on each of the programmable devices is stored;
Reading a software program corresponding to the selected function from a program storage means in which a plurality of software programs that use functions realized on the programmable device by corresponding configuration data are stored;
Transferring configuration data corresponding to the selection function to the programmable device and requesting a configuration;
And a step of executing a process according to a software program corresponding to the selection function.
プログラマブル・デバイスと通信するコンピュータが実行可能なプログラムであって、前記コンピュータを、
各々前記プログラマブル・デバイス上で実現させる機能を定義する構成データが、複数格納される構成データ蓄積手段、
各々対応する構成データにより前記プログラマブル・デバイス上に実現される機能を利用するソフトウェア・プログラムが、複数格納されるプログラム蓄積手段、および
前記プログラマブル・デバイスに、複数の構成データのうち選択された選択機能に対応する構成データを転送し、構成を要求する構成要求手段
として機能させる、プログラム。
A computer executable program that communicates with a programmable device comprising:
Configuration data storage means for storing a plurality of configuration data defining functions to be realized on each of the programmable devices,
Program storage means for storing a plurality of software programs using functions realized on the programmable device by corresponding configuration data, and a selection function selected from the plurality of configuration data in the programmable device A program that transfers configuration data corresponding to the, and functions as configuration request means for requesting configuration.
JP2011197913A 2011-09-12 2011-09-12 Information processing apparatus, operation method and program Withdrawn JP2013062566A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2011197913A JP2013062566A (en) 2011-09-12 2011-09-12 Information processing apparatus, operation method and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011197913A JP2013062566A (en) 2011-09-12 2011-09-12 Information processing apparatus, operation method and program

Publications (1)

Publication Number Publication Date
JP2013062566A true JP2013062566A (en) 2013-04-04

Family

ID=48186900

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011197913A Withdrawn JP2013062566A (en) 2011-09-12 2011-09-12 Information processing apparatus, operation method and program

Country Status (1)

Country Link
JP (1) JP2013062566A (en)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016210019A1 (en) * 2015-06-26 2016-12-29 Microsoft Technology Licensing, Llc Configuring acceleration components over a network
WO2016210015A1 (en) * 2015-06-26 2016-12-29 Microsoft Technology Licensing, Llc Partially reconfiguring acceleration components
US9792154B2 (en) 2015-04-17 2017-10-17 Microsoft Technology Licensing, Llc Data processing system having a hardware acceleration plane and a software plane
US10198294B2 (en) 2015-04-17 2019-02-05 Microsoft Licensing Technology, LLC Handling tenant requests in a system that uses hardware acceleration components
US10270709B2 (en) 2015-06-26 2019-04-23 Microsoft Technology Licensing, Llc Allocating acceleration component functionality for supporting services
US10296392B2 (en) 2015-04-17 2019-05-21 Microsoft Technology Licensing, Llc Implementing a multi-component service using plural hardware acceleration components
US10298455B2 (en) 2015-09-14 2019-05-21 Ricoh Company, Ltd. Data processing system, data processing control apparatus, and data processing control method
US10511478B2 (en) 2015-04-17 2019-12-17 Microsoft Technology Licensing, Llc Changing between different roles at acceleration components

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10296392B2 (en) 2015-04-17 2019-05-21 Microsoft Technology Licensing, Llc Implementing a multi-component service using plural hardware acceleration components
US10198294B2 (en) 2015-04-17 2019-02-05 Microsoft Licensing Technology, LLC Handling tenant requests in a system that uses hardware acceleration components
US9792154B2 (en) 2015-04-17 2017-10-17 Microsoft Technology Licensing, Llc Data processing system having a hardware acceleration plane and a software plane
US11010198B2 (en) 2015-04-17 2021-05-18 Microsoft Technology Licensing, Llc Data processing system having a hardware acceleration plane and a software plane
US10511478B2 (en) 2015-04-17 2019-12-17 Microsoft Technology Licensing, Llc Changing between different roles at acceleration components
US10270709B2 (en) 2015-06-26 2019-04-23 Microsoft Technology Licensing, Llc Allocating acceleration component functionality for supporting services
WO2016210015A1 (en) * 2015-06-26 2016-12-29 Microsoft Technology Licensing, Llc Partially reconfiguring acceleration components
US10216555B2 (en) 2015-06-26 2019-02-26 Microsoft Technology Licensing, Llc Partially reconfiguring acceleration components
CN107810487A (en) * 2015-06-26 2018-03-16 微软技术许可有限责任公司 Partly reconfigure acceleration component
WO2016210019A1 (en) * 2015-06-26 2016-12-29 Microsoft Technology Licensing, Llc Configuring acceleration components over a network
EP3543857A1 (en) * 2015-06-26 2019-09-25 Microsoft Technology Licensing, LLC Partially reconfiguring acceleration components
CN107787484A (en) * 2015-06-26 2018-03-09 微软技术许可有限责任公司 Pass through network configuration acceleration components
CN107787484B (en) * 2015-06-26 2021-03-12 微软技术许可有限责任公司 Configuring acceleration components over a network
US9819542B2 (en) 2015-06-26 2017-11-14 Microsoft Technology Licensing, Llc Configuring acceleration components over a network
US10298455B2 (en) 2015-09-14 2019-05-21 Ricoh Company, Ltd. Data processing system, data processing control apparatus, and data processing control method

Similar Documents

Publication Publication Date Title
JP2013062566A (en) Information processing apparatus, operation method and program
US8966499B2 (en) Virtual switch extensibility
KR101788492B1 (en) Mediated data exchange for sandboxed applications
JP5391601B2 (en) Resource transfer system, resource transfer method, information processing apparatus, and computer program
JP2019149187A (en) Method and system for flexible node composition on local or distributed computer systems
US11991094B2 (en) Metadata driven static determination of controller availability
WO2014169637A1 (en) Dma controller, mobile terminal and data transport method
CN110582750A (en) system and method for task scheduling and device management
JP2016035692A (en) Image processing apparatus, system, information processing method, and program
JP2016103755A (en) Information processing apparatus, image processing apparatus including information processing apparatus, and control method and program of the same
US10698722B2 (en) Virtual machine migration across cloud computing providers
JP6448012B2 (en) Method, apparatus, and system for displaying virtual machine names
JP4584324B2 (en) Data processing system and component management method
JP6783638B2 (en) Management system and control method
JP2017162416A (en) Replication program, redundant system, and replication method
JP5632408B2 (en) Data migration apparatus and operation method thereof
EP4258106A1 (en) Rebasing image layers utilising a repository-based strategy
JP2016206729A (en) Information processing apparatus and control method therefor, and program
JP6821313B2 (en) Data processing system and data processing method
JP6909218B2 (en) Distributed operating system features for nodes in the rack
JP2016218591A (en) Information processing device, and control method and program of the same
JP6188368B2 (en) Printing apparatus, information processing apparatus, control method, and program
JP6265737B2 (en) Information processing apparatus, method, and program
US20210004266A1 (en) Distributed System that Promotes Task-Machine Affinity
JP2006285620A (en) Application execution management system, computer device and application execution management program

Legal Events

Date Code Title Description
A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20141202