JPWO2012035699A1 - Information processing apparatus, information processing method, design support system, and program - Google Patents

Information processing apparatus, information processing method, design support system, and program Download PDF

Info

Publication number
JPWO2012035699A1
JPWO2012035699A1 JP2012533837A JP2012533837A JPWO2012035699A1 JP WO2012035699 A1 JPWO2012035699 A1 JP WO2012035699A1 JP 2012533837 A JP2012533837 A JP 2012533837A JP 2012533837 A JP2012533837 A JP 2012533837A JP WO2012035699 A1 JPWO2012035699 A1 JP WO2012035699A1
Authority
JP
Japan
Prior art keywords
function
program
information
processing
execution
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2012533837A
Other languages
Japanese (ja)
Inventor
武 犬尾
武 犬尾
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Publication of JPWO2012035699A1 publication Critical patent/JPWO2012035699A1/en
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt

Abstract

本発明にかかる情報処理装置7は、所定の処理を含むプログラムを実行する演算処理装置71と、演算処理装置71に対して、プログラムの実行を要求する実行要求信号を出力すると共に、所定の処理において使用される処理情報を有する再構成デバイス72と、を備えたものである。演算処理装置71は、再構成デバイス72から出力された実行要求信号に応じてプログラムを起動し、再構成デバイス72から処理情報を読み出し、所定の処理を実行する。The information processing apparatus 7 according to the present invention outputs an arithmetic processing device 71 that executes a program including predetermined processing, and an execution request signal that requests execution of the program to the arithmetic processing device 71 and performs predetermined processing. And a reconfiguration device 72 having processing information used in FIG. The arithmetic processing unit 71 activates a program according to the execution request signal output from the reconfiguration device 72, reads out processing information from the reconfiguration device 72, and executes predetermined processing.

Description

本発明は、情報処理装置、情報処理方法、設計支援システム及びプログラムが格納された非一時的なコンピュータ可読媒体に関する。   The present invention relates to an information processing apparatus, an information processing method, a design support system, and a non-transitory computer-readable medium storing a program.

情報処理装置は、その利用範囲が広がるにつれ、より高度な演算処理能力、あるいは、画像や動画のような大量のマルチメディアデータを高速に処理する能力が要求されている。このような要求を満たすための手法として、特定の演算や処理を専用に実行するプロセッサや回路をホストプロセッサとは別に設けることが知られている。そのようなプロセッサや回路として、DSP(Digital Signal Processor)や、ASIC(Application Specific Integrated Circuit)などがある。この手法によれば、ホストプロセッサの処理負荷を軽減できるので、情報処理装置全体の処理能力を向上させることができる。   An information processing apparatus is required to have a higher level of arithmetic processing capability or an ability to process a large amount of multimedia data such as an image or a moving image at a high speed as the range of use thereof is expanded. As a technique for satisfying such a requirement, it is known to provide a processor or a circuit that executes a specific operation or process exclusively for a host processor. Examples of such processors and circuits include a DSP (Digital Signal Processor) and an ASIC (Application Specific Integrated Circuit). According to this method, the processing load of the host processor can be reduced, so that the processing capability of the entire information processing apparatus can be improved.

近年では、マルチメディアデータに対して様々な規格の圧縮・伸長処理や演算処理が必要とされる。また、ネットワークを介して各種のデータを送受信するための通信処理においても、様々なプロトコルに基づく処理が必要とされる。更に、セキュリティを確保するために、データの暗号化、復号処理が必要とされることもある。
しかし、これらの様々な処理に応じて、多数の専用のプロセッサや回路を情報処理装置に設けると、情報処理装置の回路規模やコストが膨大なものとなってしまう。
In recent years, compression / decompression processing and arithmetic processing of various standards are required for multimedia data. In communication processing for transmitting / receiving various data via a network, processing based on various protocols is required. Furthermore, in order to ensure security, data encryption / decryption processing may be required.
However, if a large number of dedicated processors and circuits are provided in the information processing apparatus in accordance with these various processes, the circuit scale and cost of the information processing apparatus become enormous.

そこで、情報処理装置に、特許文献1乃至6や非特許文献1に記載されているようなFPGA(Field Programmable Gate Array)、CPLD(Complex Programmable Logic De vice)、あるいはDRP(Dynamically Reconfigurable Processor)などを設けて様々な処理に対応することが知られている。これらのプログラマブルデバイスを再構成デバイスという。再構成デバイスが回路構成を変化させて様々な処理を実行するので、情報処理装置は、この再構成デバイスの搭載により、低コストで、様々な処理要求に対応することができる。   Therefore, an FPGA (Field Programmable Gate Array), CPLD (Complex Programmable Logic Device), or DRP (Dynamically Reconfigurable Processor) as described in Patent Documents 1 to 6 and Non-Patent Document 1 is used as the information processing apparatus. It is known to provide various types of processing. These programmable devices are called reconfigurable devices. Since the reconfigurable device changes the circuit configuration and executes various processes, the information processing apparatus can respond to various processing requests at low cost by mounting the reconfigurable device.

再構成デバイスは、一般に、コンフィギュレーション・コード、すなわち回路情報と、処理に必要な入力データ及び初期値と、処理結果とを一時的に保持するための内部メモリを備える。この内部メモリは、複数の記憶素子から構成される。
また、再構成デバイスを備える情報処理装置には、回路情報を再構成デバイス内の記憶素子に書き込むための書込装置が設けられる。
A reconfigurable device generally includes an internal memory for temporarily storing configuration codes, that is, circuit information, input data and initial values necessary for processing, and processing results. The internal memory is composed of a plurality of storage elements.
An information processing apparatus including a reconfigurable device is provided with a writing device for writing circuit information to a storage element in the reconfigurable device.

書込装置は、情報処理装置内のMPU(Micro Processing Unit)やCPU(Central Processing Unit)等の制御に従って、回路情報を再構成デバイスの各記憶素子に書き込む。再構成デバイスは、記憶素子に書き込まれた回路情報に基づいて内部に回路を構成する。
FPGAを対象とする書込装置は、コンパクトフラッシュ(登録商標)を内蔵する。コンパクトフラッシュは、コンフィギュレーション・ハードウェアやコンフィギュレーション・デバイスとも呼ばれる。また、情報処理装置は、JTAG(Joint Test Action Group)に準拠した書込みインタフェースを用いて、FPGAの一部を書き換えることができる。
The writing device writes circuit information to each storage element of the reconfigurable device according to control of an MPU (Micro Processing Unit), a CPU (Central Processing Unit), or the like in the information processing device. The reconstruction device configures a circuit inside based on circuit information written in the storage element.
A writing device for an FPGA includes a compact flash (registered trademark). The compact flash is also called configuration hardware or a configuration device. Further, the information processing apparatus can rewrite a part of the FPGA using a write interface compliant with JTAG (Joint Test Action Group).

書込装置を用いて、再構成デバイス内の記憶素子に保持されたデータを書き換えるためには、書き換える対象のデータに加えて、書き換える対象の記憶素子の位置を書込装置に入力する必要がある。再構成デバイスは、例えば、FPGAやDRPなどである。
例えば、DRPにおいては、DRP内の記憶素子のそれぞれにアドレスが割り当てられている。つまり、書込装置から見ると、DRPは記憶素子からなる巨大なメモリのように見える。このため、書込装置は、アドレスおよびデータの入力に応じて、そのアドレスに対応する記憶素子へ、そのデータを書き込むことができる。
In order to rewrite the data held in the storage element in the reconstruction device using the writing device, it is necessary to input the position of the storage element to be rewritten to the writing device in addition to the data to be rewritten. . The reconfigurable device is, for example, an FPGA or DRP.
For example, in DRP, an address is assigned to each storage element in the DRP. That is, when viewed from the writing device, the DRP looks like a huge memory composed of storage elements. Therefore, the writing device can write the data to the storage element corresponding to the address in response to the input of the address and data.

この書込装置のほか、演算処理装置が、バスラインに接続される。演算処理装置は、例えば、MPUやCPUなどである。このバスラインには、共有メモリも接続される。演算処理装置と再構成デバイスは、同時に動作できるように、この共有メモリを介して、再構成デバイスやMPUが処理対象とするデータをやり取りする。あるいは、共有メモリの一部を演算処理装置もしくは再構成デバイスがデータ処理のためのワークメモリとして使用する。
さらに、バスラインには割込コントローラも接続される。演算処理装置と再構成デバイスが協調して動作できるように、この割込コントローラを介して、再構成デバイスは演算処理装置へ割込みを通知する。
In addition to this writing device, an arithmetic processing unit is connected to the bus line. The arithmetic processing unit is, for example, an MPU or a CPU. A shared memory is also connected to this bus line. The arithmetic processing unit and the reconfiguration device exchange data to be processed by the reconfiguration device and the MPU via this shared memory so that they can operate simultaneously. Alternatively, a part of the shared memory is used as a work memory for data processing by the arithmetic processing unit or the reconstruction device.
Further, an interrupt controller is connected to the bus line. The reconfigurable device notifies the arithmetic processing unit of an interrupt via the interrupt controller so that the arithmetic processing unit and the reconfigurable device can operate in a coordinated manner.

一方、演算処理装置には、通常、オペレーティングシステムが搭載される。そのオペレーティングシステムの中でアプリケーションソフトウェアが動作する。このアプリケーションソフトウェアは、オペレーティングシステムから提供されるシステムコールを利用することができる。例えば、データ処理のためのワークメモリを共有メモリから動的に確保したり、入力インタフェースを介してキーボードやマウスからデータを入力したり、出力インタフェースを介してディスプレイに文字や画像を出力したりすることができる。   On the other hand, an operating system is usually mounted on the arithmetic processing unit. Application software runs in the operating system. This application software can use a system call provided from the operating system. For example, dynamically secure work memory for data processing from shared memory, input data from keyboard and mouse via input interface, and output text and images to display via output interface be able to.

再構成デバイスは、その処理内容をプログラミングによって柔軟に設計することができるようになってきている。そのため、再構成デバイスには、特定の処理や、汎用的な処理等の様々な処理を実装するようになってきている。しかしながら、再構成デバイスは、演算リソースが限られており、それに応じた量の処理しか実装することができない。例えば、演算処理装置は、上述したようにオペレーティングシステムを実装可能な程度に十分な演算リソースを有しているが、再構成デバイスはそこまでの演算リソースは有していない。ここで、再構成デバイスにおける演算リソース不足を補って、再構成デバイスによって所望の処理を実行可能とする方法として、再構成デバイスにおける処理の一部を、演算リソースに余裕のある演算処理装置で代替して実行させる方法が考えられる。   The reconfiguration device can flexibly design the processing content by programming. Therefore, various processes such as a specific process and a general-purpose process are mounted on the reconfigurable device. However, the reconfigurable device has limited computing resources and can implement only the amount of processing corresponding to it. For example, as described above, the arithmetic processing apparatus has enough arithmetic resources to mount the operating system, but the reconfigurable device does not have the arithmetic resources up to that point. Here, as a method for compensating for the shortage of computing resources in the reconfigurable device and enabling the reconfigurable device to execute a desired process, a part of the processing in the reconfigurable device is replaced with an arithmetic processing device having a surplus of computing resources. It is possible to execute this method.

特許文献1乃至6及び非特許文献1には、再構成デバイスに関する技術が開示されている。しかしながら、特許文献1乃至6や非特許文献1のいずれにも、再構成デバイスの処理を演算処理装置で代替して実行することを可能とする技術は開示されていない。   Patent Documents 1 to 6 and Non-Patent Document 1 disclose techniques related to a reconstruction device. However, none of Patent Documents 1 to 6 and Non-Patent Document 1 disclose a technique that makes it possible to execute the processing of the reconfiguration device in place of the arithmetic processing device.

特開2000−138579号公報JP 2000-138579 A 特開2000−224025号公報JP 2000-2224025 A 特開2000−232354号公報JP 2000-232354 A 特開2000−232162号公報JP 2000-232162 A 特開2003−076668号公報Japanese Patent Laid-Open No. 2003-076668 特開2005−242812号公報JP-A-2005-242812

Hideharu Amano, Akiya Jouraku, Kenichiro Anjo, "A Dynamicall y Adaptive Hardware on Dynamically Reconfigurable Processor", IEICE Transact ions, Vol. E86-B, No.12, pp. 3385-3391, 2003.Hideharu Amano, Akiya Jouraku, Kenichiro Anjo, "A Dynamicall y Adaptive Hardware on Dynamically Reconfigurable Processor", IEICE Transact ions, Vol. E86-B, No.12, pp. 3385-3391, 2003.

背景技術として説明したように、再構成デバイスの処理を演算処理装置で代替して実行することができないという問題がある。   As described in the background art, there is a problem that the processing of the reconfigurable device cannot be executed in place of the arithmetic processing device.

本発明の目的は、上述したような課題を解決するために、再構成デバイスの処理を演算処理装置で代替して実行することができる情報処理装置、情報処理方法、設計支援システム及びプログラムが格納された非一時的なコンピュータ可読媒体を提供することである。   An object of the present invention is to store an information processing apparatus, an information processing method, a design support system, and a program that can execute processing of a reconfigurable device instead of an arithmetic processing unit in order to solve the above-described problem. Non-transitory computer readable media.

本発明の第1の態様にかかる情報処理装置は、所定の処理を含むプログラムを実行する演算処理装置と、前記演算処理装置に対して、前記プログラムの実行を要求する実行要求信号を出力すると共に、前記所定の処理において使用される処理情報を有する再構成デバイスと、を備え、前記演算処理装置は、前記再構成デバイスから出力された実行要求信号に応じて前記プログラムを起動し、前記再構成デバイスから前記処理情報を読み出し、前記所定の処理を実行するものである。   The information processing apparatus according to the first aspect of the present invention outputs an execution processing signal for requesting execution of the program to the arithmetic processing apparatus that executes a program including predetermined processing, and the arithmetic processing apparatus. A reconfiguration device having processing information used in the predetermined processing, and the arithmetic processing unit starts the program in response to an execution request signal output from the reconfiguration device, and reconfigures the reconfiguration device. The processing information is read from the device and the predetermined processing is executed.

本発明の第2の態様にかかる情報処理方法は、再構成デバイスが、所定の処理を含むプログラムの実行を要求する実行要求信号を出力し、前記演算処理装置が、前記再構成デバイスから出力された実行要求信号に応じて、前記プログラムを起動し、前記再構成デバイスから前記所定の処理において使用される処理情報を読み出し、前記処理の処理を実行するものである。   In the information processing method according to the second aspect of the present invention, the reconfiguration device outputs an execution request signal for requesting execution of a program including predetermined processing, and the arithmetic processing unit is output from the reconfiguration device. In response to the execution request signal, the program is started, processing information used in the predetermined processing is read from the reconfigurable device, and processing of the processing is executed.

本発明の第3の態様にかかる設計支援システムは、所定の処理を含む第1のソースプログラムに基づいて、再構成デバイスの回路情報の生成に用いられ、前記再構成デバイスに前記所定の処理の実行を要求する実行要求信号を出力させる処理を含むライブラリを生成するライブラリ生成手段と、前記第1のソースプログラムに基づいて、演算処理装置によって実行される実行プログラムの生成に用いられ、前記再構成デバイスから出力された実行要求信号に応じて前記演算処理装置に前記再構成デバイスから前記所定の処理において使用される処理情報を読み出させ、前記所定の処理を実行させる処理を含む第2のソースプログラムを生成するソースプログラム生成手段と、を備えたものである。   The design support system according to the third aspect of the present invention is used to generate circuit information of a reconfigurable device based on a first source program including a predetermined process, and the reconfigurable device receives the predetermined process. Library generating means for generating a library including processing for outputting an execution request signal for requesting execution, and the reconfiguration used for generating an execution program executed by an arithmetic processing unit based on the first source program A second source including processing for causing the arithmetic processing unit to read processing information used in the predetermined processing from the reconfigurable device in accordance with an execution request signal output from the device, and to execute the predetermined processing Source program generating means for generating a program.

本発明の第4の態様にかかるプログラムが格納された非一時的なコンピュータ可読媒体は、再構成デバイスから出力された実行要求信号に応じて実行されたときに、前記再構成デバイスから所定の処理において使用される処理情報を読み出す処理と、前記読み出した処理情報を使用して前記所定の処理を実行する処理と、を演算処理装置に実行させるプログラムが格納された非一時的なコンピュータ可読媒体である。   When the non-transitory computer-readable medium storing the program according to the fourth aspect of the present invention is executed in response to an execution request signal output from the reconfiguration device, a predetermined process is performed from the reconfiguration device. A non-transitory computer-readable medium storing a program for causing an arithmetic processing unit to execute processing for reading processing information used in the processing, processing for executing the predetermined processing using the read processing information is there.

上述した本発明の各態様によれば、再構成デバイスの処理を演算処理装置で代替して実行することができる情報処理装置、情報処理方法、設計支援システム及びプログラムが格納された非一時的なコンピュータ可読媒体を提供することができる。   According to each aspect of the present invention described above, an information processing apparatus, an information processing method, a design support system, and a program in which a program of a reconstruction device can be executed instead of an arithmetic processing apparatus is stored. A computer readable medium may be provided.

本発明の実施の形態にかかる情報処理装置のブロック図である。It is a block diagram of the information processor concerning an embodiment of the invention. 本発明の実施の形態にかかる設計支援システムのブロック図である。1 is a block diagram of a design support system according to an embodiment of the present invention. 本発明の実施の形態にかかるターゲットシステムの一構成例を示すブロック図である。It is a block diagram which shows one structural example of the target system concerning embodiment of this invention. 本発明の実施の形態にかかるプログラム設計支援システムの一構成例を示すブロック図である。It is a block diagram which shows the example of 1 structure of the program design support system concerning embodiment of this invention. 本発明の実施の形態にかかるプログラム生成装置の一構成例を示すブロック図である。It is a block diagram which shows one structural example of the program generation apparatus concerning embodiment of this invention. 本発明の実施の形態にかかるユーザ定義関数プログラムの一記述例を示す図である。It is a figure which shows the example of 1 description of the user-defined function program concerning embodiment of this invention. 本発明の実施の形態にかかる関数リストの一構成例を示す図である。It is a figure showing an example of 1 composition of a function list concerning an embodiment of the invention. 本発明の実施の形態にかかるクライアントライブラリの一記述例を示す図である。It is a figure which shows the example of 1 description of the client library concerning embodiment of this invention. 本発明の実施の形態にかかるサーバプログラムの一記述例を示す図である。It is a figure which shows one example of a description of the server program concerning embodiment of this invention. 本発明の実施の形態にかかるスタックデータの一構成例を示す模式図である。It is a schematic diagram which shows one structural example of the stack data concerning embodiment of this invention. 本発明の実施の形態にかかるターゲットシステムの一構成例を示す模式図である。It is a schematic diagram which shows one structural example of the target system concerning embodiment of this invention. 本発明の実施の形態にかかるスタックデータの一構成例を示す模式図である。It is a schematic diagram which shows one structural example of the stack data concerning embodiment of this invention. 本発明の実施の形態にかかるスタックデータの一使用例を示す模式図である。It is a schematic diagram which shows one usage example of stack data concerning embodiment of this invention. 本発明の実施の形態にかかるスタックデータの一使用例を示す模式図である。It is a schematic diagram which shows one usage example of stack data concerning embodiment of this invention. 本発明の実施の形態にかかるプログラム設計支援システムの動作シーケンスを示すフローチャートである。It is a flowchart which shows the operation | movement sequence of the program design support system concerning embodiment of this invention. 本発明の実施の形態にかかる動作レベル記述の一記述例を示す図である。It is a figure which shows one example of a description of the behavior level description concerning embodiment of this invention. 本発明の実施の形態にかかるターゲットシステムの動作シーケンスを示すフローチャートである。It is a flowchart which shows the operation | movement sequence of the target system concerning embodiment of this invention. 本発明の実施の形態にかかるターゲットシステム動作時のスタックデータの状態を示す模式図である。It is a schematic diagram which shows the state of the stack data at the time of target system operation | movement concerning embodiment of this invention. 本発明の実施の形態にかかるターゲットシステム動作時のスタックデータの状態を示す模式図である。It is a schematic diagram which shows the state of the stack data at the time of target system operation | movement concerning embodiment of this invention. 本発明の実施の形態にかかるターゲットシステム動作時のスタックデータの状態を示す模式図である。It is a schematic diagram which shows the state of the stack data at the time of target system operation | movement concerning embodiment of this invention. 本発明の実施の形態にかかるターゲットシステム動作時のスタックデータの状態を示す模式図である。It is a schematic diagram which shows the state of the stack data at the time of target system operation | movement concerning embodiment of this invention. 本発明の実施の形態にかかるターゲットシステム動作時のコンソール出力例を示す模式図である。It is a schematic diagram which shows the example of a console output at the time of target system operation | movement concerning embodiment of this invention.

まず、図1を参照して、本発明の実施の形態にかかるターゲットシステムの概要となる情報処理装置について説明する。図1は、本発明の実施の形態にかかる情報処理装置のブロック図である。
情報処理装置7は、演算処理装置71及び再構成デバイス72を有する。
演算処理装置71は、オペレーティングシステムを実行する。演算処理装置71は、オペレーティングシステム上で動作するプログラムを実行する。プログラムは、所定の処理を含む。
再構成デバイス72は、演算処理装置71に対して、プログラムの実行を要求する実行要求信号を出力する。また、再構成デバイス72は、所定の処理において使用される処理情報を有する。
First, with reference to FIG. 1, an information processing apparatus as an outline of a target system according to an embodiment of the present invention will be described. FIG. 1 is a block diagram of an information processing apparatus according to an embodiment of the present invention.
The information processing apparatus 7 includes an arithmetic processing device 71 and a reconstruction device 72.
The arithmetic processing unit 71 executes an operating system. The arithmetic processing unit 71 executes a program that operates on the operating system. The program includes a predetermined process.
The reconfiguration device 72 outputs an execution request signal for requesting execution of the program to the arithmetic processing unit 71. The reconstruction device 72 has processing information used in a predetermined process.

続いて、本発明の実施の形態にかかる情報処理装置7の動作について説明する。
演算処理装置71は、オペレーティングシステムの実行を開始する。
再構成デバイス72は、演算処理装置に対して、実行要求信号を出力する。
演算処理装置71は、再構成デバイス72から出力された実行要求信号に応じて、プログラムを実行する。このとき、演算処理装置71は、再構成デバイス72から処理情報を読み出し、所定の処理を実行する。
Next, the operation of the information processing apparatus 7 according to the embodiment of the present invention will be described.
The arithmetic processing unit 71 starts execution of the operating system.
The reconstruction device 72 outputs an execution request signal to the arithmetic processing unit.
The arithmetic processing unit 71 executes the program in accordance with the execution request signal output from the reconfiguration device 72. At this time, the arithmetic processing unit 71 reads out processing information from the reconstruction device 72 and executes a predetermined process.

続いて、本発明の実施の形態にかかるプログラム設計支援システムの概要となる設計支援システムについて説明する。図2は、本発明の実施の形態にかかる設計支援システムのブロック図である。   Next, a design support system that is an outline of the program design support system according to the embodiment of the present invention will be described. FIG. 2 is a block diagram of the design support system according to the embodiment of the present invention.

設計支援システム2は、ソースプログラム生成部21及びライブラリ生成部22を有する。   The design support system 2 includes a source program generation unit 21 and a library generation unit 22.

ソースプログラム生成部21は、第1のソースプログラム25に基づいて、再構成デバイスが出力した実行要求信号に応じて、演算処理装置に再構成デバイスから所定の処理において使用される処理情報を読み出させ、所定の処理を実行させる処理を含む第2のソースプログラム26を生成する。この第2のソースプログラム26は、オペレーティングシステムを実行する演算処理装置によってオペレーティングシステム上で実行される実行プログラムの生成に用いられる。
ライブラリ生成部22は、所定の処理を含む第1のソースプログラム25に基づいて、再構成デバイスに所定の処理の実行を要求する実行要求信号を出力させる処理を含むライブラリ27を生成する。このライブラリ27は、再構成デバイスの回路情報の動作合成に用いられる。
Based on the first source program 25, the source program generation unit 21 reads out processing information used in a predetermined process from the reconfiguration device to the arithmetic processing device in accordance with the execution request signal output from the reconfiguration device. The second source program 26 including a process for executing a predetermined process is generated. The second source program 26 is used to generate an execution program that is executed on the operating system by an arithmetic processing unit that executes the operating system.
Based on the first source program 25 including predetermined processing, the library generation unit 22 generates a library 27 including processing for causing the reconfigurable device to output an execution request signal for requesting execution of the predetermined processing. This library 27 is used for behavioral synthesis of circuit information of the reconfigurable device.

続いて、本発明の実施の形態にかかる設計支援システム2の動作について説明する。
ソースプログラム生成部21は、第1のソースプログラム25に基づいて、第2のソースプログラム26を生成する。
ライブラリ生成部22は、第1のソースプログラム26に基づいて、ライブラリ27を生成する。
Next, the operation of the design support system 2 according to the embodiment of the present invention will be described.
The source program generation unit 21 generates a second source program 26 based on the first source program 25.
The library generation unit 22 generates a library 27 based on the first source program 26.

本発明を実施するための形態について図面を参照して詳細に説明する。
本実施形態の情報処理装置と、その情報処理装置を対象として、実行プログラム及び回路情報を設計するためのプログラム設計支援システムとのそれぞれの構成を順に説明する。なお、プログラム設計支援システムにとって情報処理装置は設計対象であることから、以下では、情報処理装置をターゲットシステムと称する。
Embodiments for carrying out the present invention will be described in detail with reference to the drawings.
The respective configurations of the information processing apparatus of the present embodiment and the program design support system for designing the execution program and circuit information will be described in order for the information processing apparatus. Since the information processing apparatus is a design target for the program design support system, the information processing apparatus is hereinafter referred to as a target system.

図3は、本実施形態のターゲットシステム6の一構成例を示すブロック図である。図3を参照すると、ターゲットシステム6は、MPU601、割込コントローラ602、再構成デバイス603、読出装置604、バスアクセス装置605、書込装置606、共有メモリ607、入出力インタフェース608、ネットワークインタフェース609、入力装置610、出力装置611、ネットワーク612、およびバスライン613を有する。   FIG. 3 is a block diagram illustrating a configuration example of the target system 6 according to the present embodiment. Referring to FIG. 3, the target system 6 includes an MPU 601, an interrupt controller 602, a reconfiguration device 603, a reading device 604, a bus access device 605, a writing device 606, a shared memory 607, an input / output interface 608, a network interface 609, An input device 610, an output device 611, a network 612, and a bus line 613 are included.

MPU601は、割込コントローラ602、読出装置604、および書込装置606を制御することによって、再構成デバイス603との間でデータを送受信する演算処理装置である。さらに、MPU601は、オペレーティングシステムを実行する。MPU601は、オペレーティングシステムの実行に応じて、共有メモリ607、入出力インタフェース608、ネットワークインタフェース609を制御する。MPU601は、例えば、種々の演算、入力装置610からの入力、出力装置611への出力、ネットワーク612との入出力などを実行する。   The MPU 601 is an arithmetic processing device that transmits and receives data to and from the reconfiguration device 603 by controlling the interrupt controller 602, the reading device 604, and the writing device 606. Furthermore, the MPU 601 executes an operating system. The MPU 601 controls the shared memory 607, the input / output interface 608, and the network interface 609 according to the execution of the operating system. The MPU 601 executes, for example, various operations, input from the input device 610, output to the output device 611, input / output with the network 612, and the like.

また、MPU601は、オペレーティングシステム上で動作する実行プログラムを実行する。実行プログラムは、オペレーティングシステムが提供するシステムコールを実行する処理を含めてもよい。この場合、実行プログラムを実行することによって、システムコール等のオペレーティングシステムが提供する機能が利用される。MPU601は、割込コントローラ602からの割込み信号に応じて、実行プログラムを実行する。   The MPU 601 executes an execution program that operates on the operating system. The execution program may include processing for executing a system call provided by the operating system. In this case, a function provided by the operating system such as a system call is used by executing the execution program. The MPU 601 executes the execution program in response to the interrupt signal from the interrupt controller 602.

バスライン613には、MPU601、割込コントローラ602、読出装置604、バスアクセス装置605、書込装置606、共有メモリ607、入出力インタフェース608、ネットワークインタフェース609が接続される。
共有メモリ607には、MPU601及び再構成デバイス603が処理対象とするデータや、MPU601及び再構成デバイス603が処理した結果が一時的に保持される。
割込コントローラ602は、再構成デバイス603からの割込信号を受けて、MPU601に割込みを発生させる。具体的には、割込コントローラ602は、再構成デバイス603からの割込信号に応じて、割込み信号をMPU601に出力する。
An MPU 601, an interrupt controller 602, a reading device 604, a bus access device 605, a writing device 606, a shared memory 607, an input / output interface 608, and a network interface 609 are connected to the bus line 613.
The shared memory 607 temporarily holds data to be processed by the MPU 601 and the reconfiguration device 603 and results processed by the MPU 601 and the reconfiguration device 603.
The interrupt controller 602 receives the interrupt signal from the reconfiguration device 603 and causes the MPU 601 to generate an interrupt. Specifically, the interrupt controller 602 outputs an interrupt signal to the MPU 601 in response to an interrupt signal from the reconfiguration device 603.

再構成デバイス603は、FPGA、DRPなどの再構成デバイスである。再構成デバイス603内には、複数の記憶素子6030が設けられる。
記憶素子6030は、再構成デバイス603が処理対象とするデータや処理結果を一時的に保持する。また、記憶素子6030は、事前に設定したユーザ定義関数をMPU601で動作させるためのスタックデータも保持する。
The reconfiguration device 603 is a reconfiguration device such as FPGA or DRP. A plurality of storage elements 6030 are provided in the reconstruction device 603.
The storage element 6030 temporarily holds data to be processed by the reconfiguration device 603 and processing results. The storage element 6030 also holds stack data for operating a user-defined function set in advance by the MPU 601.

再構成デバイス603は、記憶素子6030に書き込まれた回路情報の示す回路を構成する。また、再構成デバイス603は、バスアクセス装置605を制御することにより、共有メモリ607にアクセスする。これは、記憶素子6030では保持できないサイズの処理対象のデータ、処理途中のデータ、処理結果のデータを共有メモリ607で保持させるためである。また、再構成デバイス603は、記憶素子6030に書き込まれた回路情報に従って、割込信号を発生させる。   The reconstruction device 603 constitutes a circuit indicated by the circuit information written in the storage element 6030. Further, the reconfiguration device 603 accesses the shared memory 607 by controlling the bus access device 605. This is because the shared memory 607 holds data to be processed having a size that cannot be held by the storage element 6030, data being processed, and data of the processing result. Further, the reconstruction device 603 generates an interrupt signal in accordance with the circuit information written in the storage element 6030.

具体的には、MPU601に、オペレーティングシステム上で動作する実行プログラムを実行させる場合に、割込信号を割込コントローラ602に出力する。これによって、上述したように、MPU601が実行プログラムを実行する。言い換えると、この割込信号は、演算処理装置601に対して実行プログラムの実行を要求する信号となる。   Specifically, when causing the MPU 601 to execute an execution program operating on the operating system, an interrupt signal is output to the interrupt controller 602. Thereby, as described above, the MPU 601 executes the execution program. In other words, this interrupt signal is a signal that requests the arithmetic processing unit 601 to execute the execution program.

読出装置604は、MPU601の制御に従って、再構成デバイス603とMPU601との間で授受するスタックデータを再構成デバイス603の記憶素子6030から読出す。具体的には、読出装置604は、記憶素子6030からMPU601が要求したスタックデータを取得して、取得したスタックデータをMPU601に出力する。   The reading device 604 reads stack data exchanged between the reconfiguration device 603 and the MPU 601 from the storage element 6030 of the reconfiguration device 603 according to the control of the MPU 601. Specifically, the reading device 604 acquires the stack data requested by the MPU 601 from the storage element 6030 and outputs the acquired stack data to the MPU 601.

バスアクセス装置605は、再構成デバイス603の制御に従って、バスライン613を介して共有メモリ607にアクセスする。具体的には、バスアクセス装置605は、再構成デバイス603から出力されたデータを共有メモリ607に格納する。また、バスアクセス装置605は、共有メモリ607から再構成デバイス603が要求したデータを取得して、取得したデータを再構成デバイス603に出力する。   The bus access device 605 accesses the shared memory 607 via the bus line 613 under the control of the reconfiguration device 603. Specifically, the bus access device 605 stores the data output from the reconfiguration device 603 in the shared memory 607. In addition, the bus access device 605 acquires the data requested by the reconfiguration device 603 from the shared memory 607 and outputs the acquired data to the reconfiguration device 603.

書込装置606は、MPU601の制御に従って、回路情報を再構成デバイス603の記憶素子6030に書き込む。また、書込装置606は、回路情報のほか、再構成デバイス603とMPU601との間で授受するスタックデータを再構成デバイス603の記憶素子6030に書き込む。具体的には、書込装置606は、MPU601から出力されたデータを記憶素子6030に書き込む。   The writing device 606 writes circuit information to the storage element 6030 of the reconfiguration device 603 in accordance with the control of the MPU 601. In addition to the circuit information, the writing device 606 writes stack data exchanged between the reconfiguration device 603 and the MPU 601 in the storage element 6030 of the reconfiguration device 603. Specifically, the writing device 606 writes the data output from the MPU 601 into the storage element 6030.

入出力インタフェース608は、MPU601と、入力装置610及び出力装置611との間のデータの入出力を制御する。
ネットワークインタフェース609は、MPU601とネットワーク612との間のデータの送受信を制御する。
入力装置610は、例えば、キーボードやマウス等である。
出力装置611は、例えば、ディスプレイである。
The input / output interface 608 controls data input / output between the MPU 601, the input device 610, and the output device 611.
The network interface 609 controls data transmission / reception between the MPU 601 and the network 612.
The input device 610 is, for example, a keyboard or a mouse.
The output device 611 is, for example, a display.

以上に説明した構成によって、再構成デバイス603が、演算処理装置601に対して実行プログラムの実行を要求する信号を出力することで、演算処理装置601にオペレーティングシステム上で動作する実行プログラムを実行させることができるようにしている。つまり、再構成デバイス603は、実行プログラムの実行を介して、オペレーティングシステムが提供する機能を利用することができる。   With the configuration described above, the reconfiguration device 603 outputs a signal for requesting execution of the execution program to the arithmetic processing device 601, thereby causing the arithmetic processing device 601 to execute the execution program that operates on the operating system. To be able to. That is, the reconfiguration device 603 can use a function provided by the operating system through execution of the execution program.

次に、図3に示したMPU601に事前に定義したユーザ定義関数を再構成デバイス603から起動させるための実行プログラムの設計を支援するプログラム設計支援システムの構成を説明する。   Next, the configuration of a program design support system that supports the design of an execution program for starting a user-defined function defined in advance in the MPU 601 shown in FIG. 3 from the reconfiguration device 603 will be described.

図4は、プログラム設計支援システム1の一構成例を示すブロック図である。図4を参照すると、プログラム設計支援システム1は、プログラム生成装置10と、コンパイル装置14と、動作合成装置18とを有する。
プログラム生成装置10は、関数抽出装置101と、サーバプログラム生成装置104と、クライアントライブラリ生成装置105とを有する。
FIG. 4 is a block diagram illustrating a configuration example of the program design support system 1. Referring to FIG. 4, the program design support system 1 includes a program generation device 10, a compilation device 14, and a behavioral synthesis device 18.
The program generation apparatus 10 includes a function extraction apparatus 101, a server program generation apparatus 104, and a client library generation apparatus 105.

ターゲットシステム情報12は、MPU601の内部構成と、アドレスマップ情報と、再構成デバイス603内の演算器の数及び種類と、相互接続部の構造と、記憶素子6030の数や種類と、バスアドレスのマップと、スタックデータ領域の構成等を示す情報である。アドレスマップ情報は、バスライン613に接続されている割込コントローラ602、共有メモリ607、入出力インタフェース608及びネットワークインタフェース609等のアドレスマップを示す。バスアドレスのマップは、記憶素子6030にバスライン613から書込装置606又は読出装置604を介してアクセスするためのものである。スタックデータ領域は、ターゲットシステム6のMPU601と再構成デバイス603とで授受するスタックデータが格納される。また、スタックデータ領域の構成とは、スタックデータが格納される再構成デバイス603の記憶素子6030の位置や、この記憶素子6030に書込装置606や読出装置604を介してアクセスするためのバスアドレスである。   The target system information 12 includes the internal configuration of the MPU 601, address map information, the number and type of arithmetic units in the reconfiguration device 603, the structure of the interconnection unit, the number and type of storage elements 6030, and the bus address This is information indicating the map and the configuration of the stack data area. The address map information indicates an address map of the interrupt controller 602, shared memory 607, input / output interface 608, network interface 609, and the like connected to the bus line 613. The bus address map is for accessing the storage element 6030 from the bus line 613 via the writing device 606 or the reading device 604. The stack data area stores stack data exchanged between the MPU 601 and the reconfiguration device 603 of the target system 6. The configuration of the stack data area refers to the position of the storage element 6030 of the reconstruction device 603 in which the stack data is stored, and the bus address for accessing the storage element 6030 via the writing device 606 and the reading device 604. It is.

関数抽出装置101には、ユーザ定義関数プログラム11が入力される。ユーザ定義関数プログラム11は、図3におけるMPU601で実行する関数が記述されている。また、ユーザ定義関数プログラム11は、再構成デバイス603が演算処理装置601に実行させる処理が記述されている。このユーザ定義関数プログラム11は、例えば、C言語、C++言語、あるいはjava言語等のプログラミング言語で記述されたソースプログラムである。このユーザ定義関数プログラム11の記載内容の具体例については、図6で後述する。   A user-defined function program 11 is input to the function extraction device 101. The user-defined function program 11 describes functions executed by the MPU 601 in FIG. Further, the user-defined function program 11 describes a process that the reconfiguration device 603 causes the arithmetic processing unit 601 to execute. The user-defined function program 11 is a source program described in a programming language such as C language, C ++ language, or Java language. A specific example of the contents of the user-defined function program 11 will be described later with reference to FIG.

関数抽出装置101は、ユーザ定義関数プログラム11から、プログラミング言語仕様に従って関数を抽出して関数リスト103を出力する。関数抽出装置101は、生成した関数リスト103を、サーバプログラム生成装置104及びクライアントライブラリ生成装置105にそれぞれ送信する。
関数リスト103は、関数抽出装置101で抽出した関数に固有の番号を割り当てたリストである。ここで、固有の番号は、例えば、関数抽出装置101が、抽出した関数毎に一意となるように生成された番号である。関数リスト103の記載内容の具体例については、図7で後述する。
The function extraction device 101 extracts a function from the user-defined function program 11 according to the programming language specification and outputs a function list 103. The function extraction device 101 transmits the generated function list 103 to the server program generation device 104 and the client library generation device 105, respectively.
The function list 103 is a list in which unique numbers are assigned to the functions extracted by the function extraction apparatus 101. Here, the unique number is, for example, a number generated by the function extraction apparatus 101 so as to be unique for each extracted function. A specific example of the description contents of the function list 103 will be described later with reference to FIG.

サーバプログラム生成装置104には、ユーザ定義関数プログラム11、関数リスト103、およびターゲットシステム情報12が入力される。サーバプログラム生成装置104は、ターゲットシステム情報12に基づいて、ユーザ定義関数プログラム11と関数リスト103から、サーバプログラム13を生成し、コンパイル装置14に送信する。   The server program generation device 104 receives a user-defined function program 11, a function list 103, and target system information 12. The server program generation device 104 generates a server program 13 from the user-defined function program 11 and the function list 103 based on the target system information 12 and transmits the server program 13 to the compilation device 14.

ここで、サーバプログラム13は、ユーザ定義関数プログラム11の個々のユーザ定義関数を呼び出すための割込みハンドラで構成される。割込みハンドラは、クライアントライブラリ16で設定されたスタックデータをユーザ定義関数の引数に変換してから個々のユーザ定義関数を呼び出す。サーバプログラム13の具体例については、図9で後述する。サーバプログラム13は、後述する図9に例示するような、ソースプログラムとなる。   Here, the server program 13 includes an interrupt handler for calling individual user-defined functions of the user-defined function program 11. The interrupt handler calls individual user-defined functions after converting the stack data set in the client library 16 into user-defined function arguments. A specific example of the server program 13 will be described later with reference to FIG. The server program 13 is a source program as illustrated in FIG.

クライアントライブラリ生成装置105には、ユーザ定義関数プログラム11、関数リスト103、およびターゲットシステム情報12が入力される。
クライアントライブラリ生成装置105は、ターゲットシステム情報12に基づいて、ユーザ定義関数プログラム11と関数リスト103から、クライアントライブラリ16を生成し、動作合成装置18に送信する。
The user-defined function program 11, the function list 103, and the target system information 12 are input to the client library generation device 105.
Based on the target system information 12, the client library generation device 105 generates a client library 16 from the user-defined function program 11 and the function list 103 and transmits it to the behavioral synthesis device 18.

ここで、クライアントライブラリ16は、クライアント関数を含む。クライアント関数は、ユーザ定義関数プログラム11の個々の関数の引数をスタックデータに変換し、MPU601に対して実行プログラムの実行を要求し、MPU601からの実行結果の通知を待つ。クライアントライブラリ16の具体例については、図8で後述する。   Here, the client library 16 includes a client function. The client function converts arguments of individual functions of the user-defined function program 11 into stack data, requests the MPU 601 to execute the execution program, and waits for notification of the execution result from the MPU 601. A specific example of the client library 16 will be described later with reference to FIG.

コンパイル装置14は、サーバプログラム13をターゲットシステム6のMPU601で実行可能な形式(実行バイナリ15)に変換する。この実行バイナリ15が、MPU601において、オペレーティングシステム上で実行される実行プログラムとなる。
動作合成装置18は、ターゲットシステム情報12と、クライアントライブラリ16と、動作レベル記述17から、動作合成、論理合成、および配置配線を行い、再構成デバイス603の回路の構成、配置、配線を示す回路情報19を生成する。動作レベル記述17の具体例については、図14で後述する。動作レベル記述17には、クライアントライブラリ16を呼び出す記述が含まれる。
また、動作合成装置18は、ターゲットシステム情報12に含まれるスタックデータ領域の構成から、クライアントライブラリ16で指定されたスタックデータ領域の配置場所を決定して、回路情報19を生成する。
The compiling device 14 converts the server program 13 into a format (execution binary 15) that can be executed by the MPU 601 of the target system 6. The execution binary 15 becomes an execution program executed on the operating system in the MPU 601.
The behavioral synthesis device 18 performs behavioral synthesis, logic synthesis, and placement and routing from the target system information 12, the client library 16, and the behavior level description 17, and a circuit showing the configuration, placement, and wiring of the reconfiguration device 603. Information 19 is generated. A specific example of the behavior level description 17 will be described later with reference to FIG. The behavior level description 17 includes a description for calling the client library 16.
Further, the behavioral synthesis device 18 determines the arrangement location of the stack data area specified by the client library 16 from the configuration of the stack data area included in the target system information 12 and generates circuit information 19.

上述したように、プログラム設計支援システム1には、ユーザ定義関数プログラム11、ターゲットシステム情報12、および動作レベル記述17が入力される。プログラム設計支援システム1内部で、ユーザ定義関数プログラム11、関数リスト103、サーバプログラム13、およびクライアントライブラリ16が送受信される。そして、プログラム設計支援システム1は、実行バイナリ15、および回路情報19を出力する。
これらの入出力または送受信される情報は、所定の記憶装置(不図示)に格納される。この記憶装置は、プログラム設計支援システム1内部の各装置に設けられていてもよいし、外部に独立して設けられていてもよい。この記憶装置は、例えば、後述するデータ蓄積装置203である。
As described above, the user-defined function program 11, the target system information 12, and the behavior level description 17 are input to the program design support system 1. Inside the program design support system 1, the user-defined function program 11, the function list 103, the server program 13, and the client library 16 are transmitted and received. Then, the program design support system 1 outputs an execution binary 15 and circuit information 19.
These input / output or transmitted / received information is stored in a predetermined storage device (not shown). This storage device may be provided in each device inside the program design support system 1 or may be provided independently outside. This storage device is, for example, a data storage device 203 described later.

次に、図4に示したプログラム生成装置10の構成例を説明する。
図5は、プログラム生成装置10の一構成例を示すブロック図である。図5を参照すると、プログラム生成装置10は、CPU200と、主記憶装置201と、記録媒体202と、データ蓄積装置203と、主記憶制御インタフェース部204と、記憶媒体制御インタフェース部205と、データ蓄積制御インタフェース部206と、バス2000と、入力制御インタフェース部207と、出力制御インタフェース部208と、ネットワーク制御インタフェース部209と、を有する。
Next, a configuration example of the program generation device 10 illustrated in FIG. 4 will be described.
FIG. 5 is a block diagram illustrating a configuration example of the program generation device 10. Referring to FIG. 5, the program generation device 10 includes a CPU 200, a main storage device 201, a recording medium 202, a data storage device 203, a main storage control interface unit 204, a storage medium control interface unit 205, and a data storage. A control interface unit 206, a bus 2000, an input control interface unit 207, an output control interface unit 208, and a network control interface unit 209 are included.

プログラム生成装置10は、CPU200が実行するプログラムに従って、関数抽出、サーバプログラム生成、クライアントライブラリ生成の処理をそれぞれ実行する。   The program generation device 10 executes a function extraction process, a server program generation process, and a client library generation process according to a program executed by the CPU 200.

入力装置30は、コマンド、ユーザ定義関数プログラム11、およびターゲットシステム情報12をプログラム生成装置10に入力する。例えば、入力装置30によってユーザ定期関数プログラム11及びターゲットシステム情報12が入力された場合、CPU200は、入力されたユーザ定期関数プログラム11及びターゲットシステム情報12をデータ蓄積装置203に格納する。
出力装置40は、サーバプログラム13、クライアントライブラリ16、および回路情報19などの処理結果を出力する。
The input device 30 inputs a command, the user-defined function program 11, and the target system information 12 to the program generation device 10. For example, when the user periodic function program 11 and the target system information 12 are input by the input device 30, the CPU 200 stores the input user periodic function program 11 and the target system information 12 in the data storage device 203.
The output device 40 outputs processing results such as the server program 13, the client library 16, and the circuit information 19.

ネットワーク装置50は、例えば、ハブやルータ等である。プログラム生成装置10は、ネットワーク装置50を介して、ネットワークと接続される。ネットワーク上の情報処理装置(図示せず)にユーザ定義関数プログラム11及びターゲットシステム情報12を格納しておき、CPU200がこの情報処理装置からユーザ定義関数プログラム11及びターゲットシステム情報12を取得して、取得したユーザ定義関数プログラム11及びターゲットシステム情報12をデータ蓄積装置203に格納するようにしてもよい。   The network device 50 is, for example, a hub or a router. The program generation device 10 is connected to the network via the network device 50. The user-defined function program 11 and the target system information 12 are stored in an information processing apparatus (not shown) on the network, and the CPU 200 acquires the user-defined function program 11 and the target system information 12 from this information processing apparatus, The acquired user-defined function program 11 and target system information 12 may be stored in the data storage device 203.

CPU200は、記録媒体202に記録されたプログラムを実行する。
主記憶装置201は、CPU200の処理に必要な情報を一時的に保持する。
記録媒体202は、磁気ディスク、半導体メモリ、光ディスクなどの記録媒体である。記録媒体202は、CPU200にプログラム生成装置10としての処理を実行させるためのプログラムが記録される。
CPU 200 executes a program recorded on recording medium 202.
The main storage device 201 temporarily holds information necessary for the processing of the CPU 200.
The recording medium 202 is a recording medium such as a magnetic disk, a semiconductor memory, or an optical disk. The recording medium 202 stores a program for causing the CPU 200 to execute processing as the program generation device 10.

データ蓄積装置203には、ユーザ定義関数プログラム11、ターゲットシステム情報12、関数リスト103、サーバプログラム13、およびクライアントライブラリ16などが格納される。データ蓄積装置203には、実行バイナリ15及び回路情報19を格納するようにしてもよい。データ蓄積装置203は、磁気ディスク、半導体メモリ、および光ディスクなどの記録媒体である。このデータ蓄積装置203は、その一部又は全部をプログラム生成装置10内部でなく、外部に独立して設けられていてもよい。例えば、データ蓄積装置203の一部又は全部をプログラム生成装置10の外部のストレージや、情報処理装置に設けてもよい。情報処理装置は、例えば、PC(Personal computer)やサーバ等である。   The data storage device 203 stores a user-defined function program 11, target system information 12, a function list 103, a server program 13, a client library 16, and the like. The data storage device 203 may store the execution binary 15 and the circuit information 19. The data storage device 203 is a recording medium such as a magnetic disk, a semiconductor memory, and an optical disk. A part or all of the data storage device 203 may be provided independently outside the program generation device 10 instead of inside the program generation device 10. For example, a part or all of the data storage device 203 may be provided in a storage external to the program generation device 10 or an information processing device. The information processing apparatus is, for example, a PC (Personal computer) or a server.

主記憶制御インタフェース部204は主記憶装置201に接続される。
記憶媒体制御インタフェース部205は記録媒体202に接続される。
データ蓄積制御インタフェース部206はデータ蓄積装置203に接続される。
入力制御インタフェース部207は入力装置30と接続される。
出力制御インタフェース部208は出力装置40と接続される。
ネットワーク制御インタフェース部209はネットワーク装置50と接続される。
各インタフェース部204〜209は、これらの装置200〜203、30〜50及びバス2000の間のデータ転送を制御する。
The main memory control interface unit 204 is connected to the main memory device 201.
The storage medium control interface unit 205 is connected to the recording medium 202.
The data storage control interface unit 206 is connected to the data storage device 203.
The input control interface unit 207 is connected to the input device 30.
The output control interface unit 208 is connected to the output device 40.
The network control interface unit 209 is connected to the network device 50.
Each interface unit 204 to 209 controls data transfer between these devices 200 to 203 and 30 to 50 and the bus 2000.

バス2000には、CPU200と、主記憶制御インタフェース部204と、記憶媒体制御インタフェース部205と、データ蓄積制御インタフェース部206と、入力制御インタフェース部207と、出力制御インタフェース部208と、ネットワーク制御インタフェース部209と、が接続される。   The bus 2000 includes a CPU 200, a main storage control interface unit 204, a storage medium control interface unit 205, a data storage control interface unit 206, an input control interface unit 207, an output control interface unit 208, and a network control interface unit. 209 are connected to each other.

なお、図4に示した関数抽出装置101、サーバプログラム生成装置104およびクライアントライブラリ生成装置105のそれぞれが図5に示すハードウェア構成であってもよい。この場合、それぞれの装置の機能に対応して処理対象のデータや実行するプログラムが装置毎に異なっている。
また、処理対象のデータや実行するプログラムが異なることを除いて、図4に示したコンパイル装置14および動作合成装置18のそれぞれは、図5のブロック図に示す構成と同様であるため、コンパイル装置14および動作合成装置18の構成についての詳細な説明を省略する。
Note that each of the function extraction device 101, the server program generation device 104, and the client library generation device 105 shown in FIG. 4 may have the hardware configuration shown in FIG. In this case, the data to be processed and the program to be executed differ from device to device corresponding to the function of each device.
Further, the compiling device 14 and the behavioral synthesis device 18 shown in FIG. 4 are the same as those shown in the block diagram of FIG. 14 and the detailed description of the configuration of the behavioral synthesis device 18 are omitted.

図6は、プログラム生成装置10に入力されるユーザ定義関数プログラムの記述の一例である。
同図は、ユーザ定義関数プログラム11に、C言語で2つの関数P100、P101が記載されている場合について例示している。例えば、func2関数P101は、printf()関数内部でオペレーティングシステムのシステムコールを実行する。
関数抽出装置101は、これらの関数を識別して、関数プログラムを抽出し、関数リスト103を生成する。
FIG. 6 is an example of a description of a user-defined function program input to the program generation device 10.
This figure illustrates the case where two functions P100 and P101 are described in the C language in the user-defined function program 11. For example, the func2 function P101 executes an operating system call inside the printf () function.
The function extraction device 101 identifies these functions, extracts a function program, and generates a function list 103.

図7は、関数抽出装置が抽出した関数リストの一例を示す図である。同図に示すように、関数リストは、抽出した関数毎に固有の番号(関数ID)を付加したリストとなっている。 言い換えると、関数リストは、関数と、その関数を特定する情報とを対応付けた情報となる。   FIG. 7 is a diagram illustrating an example of a function list extracted by the function extraction device. As shown in the figure, the function list is a list to which a unique number (function ID) is added for each extracted function. In other words, the function list is information in which a function is associated with information for specifying the function.

図8は、クライアントライブラリ生成装置が出力するクライアントライブラリ16の一例を示す図である。このクライアントライブラリ16に含まれる処理は、再構成デバイス603が実行する処理となる。同図に示すように、クライアントライブラリ16には、ユーザ定義関数プログラム11に記述されている関数と名前及び引数が同じである2つのクライアント関数P205及びP209が含まれる。また、図8に示すように、再構成デバイス603内で保持するスタックデータを配列P200として記述している。このスタックデータの配列は、ターゲットシステム情報12に基づいて、動作合成装置18が適切に再構成デバイス603内での配置場所を決定する。   FIG. 8 is a diagram illustrating an example of the client library 16 output from the client library generation device. Processing included in the client library 16 is processing executed by the reconfiguration device 603. As shown in the figure, the client library 16 includes two client functions P205 and P209 having the same names and arguments as the functions described in the user-defined function program 11. Further, as shown in FIG. 8, the stack data held in the reconstruction device 603 is described as an array P200. Based on the target system information 12, the behavioral synthesis device 18 appropriately determines the arrangement location in the reconstruction device 603 based on the stack data arrangement.

ここで、スタックデータとは、ターゲットシステム6の再構成デバイス603内の記憶素子6030で形成されるデータ領域に格納されるデータのことである。再構成デバイス603内で形成される回路から自由にアクセスすることができる。また、このデータ領域は、ターゲットシステム6の書込装置606、読出装置604、及びバスライン613を介して、MPU601からも自由にアクセスできる。つまり、__stack[100]のアドレスは、クライアントライブラリ16によって、記憶素子6030におけるスタックデータ領域のアドレスが設定される。   Here, the stack data is data stored in a data area formed by the storage element 6030 in the reconfiguration device 603 of the target system 6. It can be freely accessed from the circuit formed in the reconstruction device 603. This data area can also be freely accessed from the MPU 601 via the writing device 606, the reading device 604, and the bus line 613 of the target system 6. That is, the address of __stack [100] is set by the client library 16 to the address of the stack data area in the storage element 6030.

以下、クライアントライブラリ16に含まれるクライアント関数P201、P205、P209の処理について説明する。実際は、以下に説明する処理は、再構成デバイス603によって実行される。   Hereinafter, processing of the client functions P201, P205, and P209 included in the client library 16 will be described. Actually, the processing described below is executed by the reconstruction device 603.

クライアント関数P205及びP209のそれぞれは、関数IDをスタックデータの関数ID領域__stack[0]に設定する(P206あるいはP210)。クライアント関数P205及びP209のそれぞれは、引数をスタックデータの引数領域__stack[2][3]及び__stack[2]のそれぞれに設定する(P207あるいはP211)。クライアント関数P205及びP209のそれぞれは、クライアント関数P201を呼び出す。   Each of the client functions P205 and P209 sets the function ID in the function ID area_stack [0] of the stack data (P206 or P210). Each of the client functions P205 and P209 sets an argument in each of the argument areas __stack [2] [3] and __stack [2] of the stack data (P207 or P211). Each of the client functions P205 and P209 calls the client function P201.

クライアント関数P201は、スタックデータの制御情報領域__stack[1]を初期化する(P202)。クライアント関数P201は、MPU601に対する割込みを発生させる(P203)。つまり、IntMPU()関数P203は、再構成デバイス603に割込コントローラ602に対する割込信号を出力させる処理を含む。クライアント関数P201は、MPU601からの実行プログラムの実行終了の通知を待つ(P204)。具体的には、MPU601が制御情報領域__stack[1]に0以外の値が書き込まれるのを待つ。MPU601が制御情報領域__stack[1]に0以外の値が書き込まれた場合、MPU601から実行プログラムの実行終了の通知が来たことになる。この場合、クライアント関数P201から呼び出し元のクライアント関数P205又はP209に処理が戻る。クライアント関数P205は、スタックデータの戻り値領域及び引数領域から値を取得してクライアント関数の戻り値あるいは引数に設定して(P208)、処理を終了する。   The client function P201 initializes the control information area __stack [1] of the stack data (P202). The client function P201 generates an interrupt for the MPU 601 (P203). That is, the IntMPU () function P203 includes processing for causing the reconfiguration device 603 to output an interrupt signal for the interrupt controller 602. The client function P201 waits for an execution program execution end notification from the MPU 601 (P204). Specifically, the MPU 601 waits for a value other than 0 to be written in the control information area __stack [1]. When the MPU 601 writes a value other than 0 in the control information area __stack [1], the MPU 601 has notified the execution of the execution program. In this case, the processing returns from the client function P201 to the calling client function P205 or P209. The client function P205 acquires a value from the return value area and argument area of the stack data, sets it as the return value or argument of the client function (P208), and ends the process.

また、クライアント関数のMPU601からの通知待ち(P204)では、MPU601が__stack[1]の値が0以外の値で更新されることを待つという一例を示している。つまり、ここで例示した値以外の値に更新されるまで、再構成デバイス603が待ち合わせを行うようにしてもよい。   Further, in the wait for notification of the client function from the MPU 601 (P204), an example is shown in which the MPU 601 waits for the value of __stack [1] to be updated with a value other than 0. That is, the reconfiguration device 603 may wait until the value is updated to a value other than the value exemplified here.

図9は、サーバプログラム生成装置104が出力するサーバプログラムの一例を示す図である。同図に示すように、サーバプログラム13には、ユーザ定義関数プログラム11に記述されている関数を呼び出すための1つの割込みハンドラP301が含まれる。
以下、サーバプログラム13に含まれる関数P301の処理について説明する。実際は、以下に説明する処理は、MPU601によって実行される。
FIG. 9 is a diagram illustrating an example of a server program output from the server program generation device 104. As shown in the figure, the server program 13 includes one interrupt handler P301 for calling a function described in the user-defined function program 11.
Hereinafter, the process of the function P301 included in the server program 13 will be described. Actually, the processing described below is executed by the MPU 601.

サーバプログラムの割込みハンドラP301では、MPU601への割込み信号をクリアする(P302)。また、ClearInt()関数は、制御情報領域に0の値を書き込む処理を含む。割り込みハンドラP301は、再構成デバイス603のスタックデータの関数ID領域を参照して関数IDを取得する(P303)。割り込みハンドラP301は、取得した関数IDに基づいて、処理を切替える(P304)。   The interrupt handler P301 of the server program clears the interrupt signal to the MPU 601 (P302). The ClearInt () function includes a process of writing a value of 0 in the control information area. The interrupt handler P301 refers to the function ID area of the stack data of the reconfigurable device 603 and acquires the function ID (P303). The interrupt handler P301 switches processing based on the acquired function ID (P304).

例えば、関数IDが1だった場合(P305)、割り込みハンドラP301は、ユーザ定義関数プログラム11のfunc1関数を実行する。その場合、割り込みハンドラP301は、スタックデータの引数領域から引数x、yを取り出す(P306)。割り込みハンドラP301は、取得した引数x、yを、引数x、yとしてfunc1関数を実行する(P307)。割り込みハンドラP301は、func1関数の戻り値ret及び戻り引数&zをスタックデータの戻り値領域及び引数領域に設定する(P308)。   For example, when the function ID is 1 (P305), the interrupt handler P301 executes the func1 function of the user-defined function program 11. In that case, the interrupt handler P301 takes out the arguments x and y from the argument area of the stack data (P306). The interrupt handler P301 executes the func1 function using the acquired arguments x and y as the arguments x and y (P307). The interrupt handler P301 sets the return value ret and the return argument & z of the func1 function in the return value area and argument area of the stack data (P308).

一方、関数IDが2だった場合(P309)、割り込みハンドラP301は、ユーザ定義関数プログラム11のfunc2を実行する。その場合、割り込みハンドラP301は、スタックデータの引数領域から引数xを取り出す(P310)。割り込みハンドラP301は、取得した引数xを、引数xとしてfunc2関数を実行する(P311)。
ユーザ定義関数プログラム11のfunc1関数又はfunc2関数を実行後、スタックデータの制御情報領域に1を書込み、再構成デバイスにMPU601側の処理の終了を通知する(P312)。
On the other hand, when the function ID is 2 (P309), the interrupt handler P301 executes func2 of the user-defined function program 11. In that case, the interrupt handler P301 takes out the argument x from the argument area of the stack data (P310). The interrupt handler P301 executes the func2 function using the acquired argument x as the argument x (P311).
After executing the func1 function or func2 function of the user-defined function program 11, 1 is written in the control information area of the stack data, and the end of processing on the MPU 601 side is notified to the reconfigurable device (P312).

なお、MPU601からスタックデータにアクセスする場合は、スタックデータを形成している記憶素子6030のバスアドレスが必要である。バスアドレスは、MPU601などから書込装置606又は読出装置604を介して記憶素子6030にアクセスするためのアドレスとなる。これらの情報はターゲットシステム情報12に格納されている。よって、スタックデータにアクセスする関数ReadReconfigArea()及びWriteReconfigArea()は、例えば、ターゲットシステム情報12に基づいて、記憶素子6030のバスアドレスにアクセスするようにサーバプログラム生成装置104によって生成される。   Note that when the stack data is accessed from the MPU 601, the bus address of the storage element 6030 forming the stack data is necessary. The bus address is an address for accessing the storage element 6030 from the MPU 601 or the like via the writing device 606 or the reading device 604. These pieces of information are stored in the target system information 12. Therefore, the functions ReadReconfigArea () and WriteReconfigArea () for accessing the stack data are generated by the server program generation device 104 so as to access the bus address of the storage element 6030 based on the target system information 12, for example.

図10は、図8及び図9で示したクライアントライブラリ及びサーバプログラムにおけるスタックデータの構成例である。
図10では、スタックデータは幅が8bit(1byte)、深さが100の構成例を示している。このスタックデータに関する情報はターゲットシステム情報12に含まれる。
FIG. 10 is a configuration example of stack data in the client library and server program shown in FIGS.
FIG. 10 shows a configuration example in which the stack data has a width of 8 bits (1 byte) and a depth of 100. Information regarding the stack data is included in the target system information 12.

図10に示すように、スタックデータの先頭データ(+0)は関数IDを表す。この関数IDは関数リスト103に記載している関数IDに対応する。スタックデータのオフセット+1のデータは制御情報を表す。制御情報が0の場合は、MPU601でユーザ定義関数の実行が終了していない状態を表す。制御情報が1の場合は、MPU601でユーザ定義関数の実行が終了している状態を表す。スタックデータのオフセット+2以降のデータは、引数及び戻り値の値を表す。
図10に示したスタックデータが格納されるスタックデータ領域は、再構成デバイス603の記憶素子6030に形成される。例えば、再構成デバイス603の記憶素子6030として、幅8bit、深さ100のメモリが存在する場合には、その上にスタックデータ領域を形成することができる。
As shown in FIG. 10, the top data (+0) of the stack data represents a function ID. This function ID corresponds to the function ID described in the function list 103. The data at offset + 1 of the stack data represents control information. When the control information is 0, the MPU 601 indicates that the user-defined function has not been executed. When the control information is 1, the MPU 601 indicates that the user-defined function has been executed. The data after the offset +2 of the stack data represents the value of the argument and the return value.
The stack data area in which the stack data illustrated in FIG. 10 is stored is formed in the storage element 6030 of the reconfiguration device 603. For example, when a memory having a width of 8 bits and a depth of 100 exists as the storage element 6030 of the reconstruction device 603, a stack data area can be formed thereon.

また、図11Aに示すように、再構成デバイス603内の複数の記憶素子6031、6032を使用してスタックデータを形成しても良い。このとき、図11Bに示すように、記憶素子6031、6032のバスアドレスが連続ではない場合には、MPU601から適切に記憶素子6031、6032にアクセスするようなサーバプログラム13を生成すれば良い。バスアドレスは、MPU601などから書込装置又は読出装置を経由して記憶素子6031、6032にアクセスするためのアドレスとなる。   In addition, as illustrated in FIG. 11A, stack data may be formed using a plurality of storage elements 6031 and 6032 in the reconstruction device 603. At this time, as shown in FIG. 11B, if the bus addresses of the storage elements 6031 and 6032 are not continuous, the server program 13 for appropriately accessing the storage elements 6031 and 6032 from the MPU 601 may be generated. The bus address is an address for accessing the storage elements 6031 and 6032 from the MPU 601 or the like via the writing device or the reading device.

図12は、各関数のスタックデータの使用例を示す図である。図12Aはユーザ定義関数func1の場合、図12Bはユーザ定義関数func2の場合を示している。
図12に示すように、スタックデータのオフセット+2以降のデータは、組となるクライアントライブラリ16とサーバプログラム13間で、各ユーザ定義関数の引数及び戻り値に関して対応がとられている範囲で自由に使用することができる。
FIG. 12 is a diagram illustrating an example of using stack data of each function. 12A shows the case of the user-defined function func1, and FIG. 12B shows the case of the user-defined function func2.
As shown in FIG. 12, the data after the stack data offset +2 can be freely set between the client library 16 and the server program 13 as a pair in the range in which the argument and return value of each user-defined function are handled. Can be used.

例えば、引数及び戻り値をクライアントライブラリ16側で圧縮してスタックデータに設定し、サーバプログラム13側でスタックデータから引数及び戻り値を展開してもよい。この場合、スタックデータの構成に必要な再構成デバイス603の記憶素子数は少なくてすむ。
このような圧縮及び展開部はクライアントライブラリ16及びサーバプログラム13として生成しても良いし、専用ハードウェア、又は専用ハードウェアと同等の機能を提供するソフトウェアサブルーチンをクライアントライブラリ16やサーバプログラム13から呼び出すようにしても良い。
For example, the argument and return value may be compressed on the client library 16 side and set as stack data, and the argument and return value may be expanded from the stack data on the server program 13 side. In this case, the number of storage elements of the reconfigurable device 603 required for configuring the stack data can be reduced.
Such a compression / decompression unit may be generated as the client library 16 and the server program 13, or a dedicated hardware or a software subroutine that provides a function equivalent to the dedicated hardware is called from the client library 16 or the server program 13. You may do it.

次に、図13を参照して、プログラム設計支援システム1の動作について説明する。図13は、プログラム設計支援システム1の動作を示すシーケンス図である。   Next, the operation of the program design support system 1 will be described with reference to FIG. FIG. 13 is a sequence diagram showing the operation of the program design support system 1.

関数抽出装置101は、データ蓄積装置203からユーザ定義関数プログラム11を取得する。関数抽出装置101は、ユーザ定義関数プログラム11から、関数を抽出して、個別のIDと対応させた関数リスト103を生成する(ステップS11)。関数抽出装置101は、生成した関数リスト103をデータ蓄積装置203に格納する。なお、関数抽出装置101は、生成した関数リスト103を直接サーバプログラム生成装置104及びクライアントライブラリ生成装置105に出力するようにしてもよい。   The function extraction device 101 acquires the user-defined function program 11 from the data storage device 203. The function extraction device 101 extracts a function from the user-defined function program 11, and generates a function list 103 associated with each individual ID (step S11). The function extraction device 101 stores the generated function list 103 in the data storage device 203. The function extraction apparatus 101 may output the generated function list 103 directly to the server program generation apparatus 104 and the client library generation apparatus 105.

サーバプログラム生成装置104は、データ蓄積装置203からユーザ定義関数プログラム、関数リスト103及びターゲットシステム情報12を取得する。サーバプログラム生成装置104は、ユーザ定義関数プログラム11と関数リスト103から、ターゲットシステム情報12に基づいて、サーバプログラム13を生成する(ステップS12)。サーバプログラム生成装置104は、生成したサーバプログラム13をデータ蓄積装置203に格納する。なお、サーバプログラム生成装置104は、生成したサーバプログラム13を直接コンパイル装置14に出力するようにしてもよい。   The server program generation device 104 acquires the user-defined function program, the function list 103, and the target system information 12 from the data storage device 203. The server program generation device 104 generates the server program 13 based on the target system information 12 from the user-defined function program 11 and the function list 103 (step S12). The server program generation device 104 stores the generated server program 13 in the data storage device 203. Note that the server program generation device 104 may output the generated server program 13 directly to the compilation device 14.

クライアントライブラリ生成装置105は、データ蓄積装置203からユーザ定義関数プログラム11、関数リスト103及びターゲットシステム情報12を取得する。クライアントライブラリ生成装置105は、ユーザ定義関数プログラム11と関数リスト103から、ターゲットシステム情報12に基づいて、クライアントライブラリ16を生成する(ステップS13)。クライアントライブラリ生成装置105は、生成したクライアントライブラリ16をデータ蓄積装置203に格納する。なお、クライアントライブラリ生成装置105は、生成したクライアントライブラリ16を直接動作合成装置18に出力するようにしてもよい。   The client library generation device 105 acquires the user-defined function program 11, the function list 103, and the target system information 12 from the data storage device 203. The client library generation device 105 generates the client library 16 from the user-defined function program 11 and the function list 103 based on the target system information 12 (step S13). The client library generation device 105 stores the generated client library 16 in the data storage device 203. Note that the client library generation device 105 may directly output the generated client library 16 to the behavioral synthesis device 18.

コンパイル装置14は、ユーザ定義関数プログラム11及びサーバプログラム13をデータ蓄積装置203から取得する。コンパイル装置14は、ユーザ定義関数プログラム11及びサーバプログラム13をコンパイルして、実行バイナリ15を生成する(ステップS14)。
動作合成装置18は、データ蓄積装置203からクライアントライブラリ16、動作レベル記述17及びターゲットシステム情報12を取得する。動作レベル記述17には、クライアントライブラリ16を呼び出す記述が記載されている。動作合成装置18は、クライアントライブラリ16と、動作レベル記述17と、ターゲットシステム情報12から回路情報19を生成する(ステップS15)。
The compiling device 14 acquires the user-defined function program 11 and the server program 13 from the data storage device 203. The compiling device 14 compiles the user-defined function program 11 and the server program 13 to generate an execution binary 15 (step S14).
The behavioral synthesis device 18 acquires the client library 16, the behavior level description 17, and the target system information 12 from the data storage device 203. The behavior level description 17 describes a description for calling the client library 16. The behavioral synthesis device 18 generates circuit information 19 from the client library 16, the behavior level description 17, and the target system information 12 (step S15).

図14は、動作レベル記述17の一例である。図14に示すように、動作レベル記述17では、クライアントライブラリ16のクライアント関数を実行するように記述されている。クライアント関数は、ユーザ定義関数プログラム11のユーザ定義関数と同じインタフェースを持つ。
以下、動作レベル記述17に含まれるメイン関数P400の処理について説明する。実際は、以下に説明する処理は、再構成デバイス603によって実行される。
FIG. 14 is an example of the behavior level description 17. As shown in FIG. 14, the behavior level description 17 describes that the client function of the client library 16 is executed. The client function has the same interface as the user-defined function of the user-defined function program 11.
Hereinafter, processing of the main function P400 included in the behavior level description 17 will be described. Actually, the processing described below is executed by the reconstruction device 603.

メイン関数P400は、データ2、y、&zを引数としてfunc1関数を実行する(P401)。これによって、上述したクライアント関数P205が呼び出される。
次に、メイン関数P400は、データxを引数としてfunc2関数を実行する(P402)。これによって、上述したクライアント関数P209が読み出される。
このように、再構成デバイス603において、ユーザ定義関数func1、func2を呼び出すだけで、ユーザ定義関数func1、func2における処理内容をMPU601において実行させることができるようになる。
The main function P400 executes the func1 function with the data 2, y, & z as arguments (P401). As a result, the client function P205 described above is called.
Next, the main function P400 executes the func2 function with the data x as an argument (P402). As a result, the above-described client function P209 is read.
As described above, in the reconfigurable device 603, the processing contents in the user-defined functions func1 and func2 can be executed in the MPU 601 simply by calling the user-defined functions func1 and func2.

次に、図15〜図18を参照して、ターゲットシステム6の動作について説明する。
図15は、MPU601と再構成デバイス603の動作を示すフローチャートである。この動作は、実行バイナリ15がMPU601により実行可能な状態であり、再構成デバイス603に回路情報19が書き込まれた時に開始される。なお、実際のユーザ定義関数の動作は再構成デバイス603から起動される割込みハンドラから実行されることになる。
Next, the operation of the target system 6 will be described with reference to FIGS.
FIG. 15 is a flowchart showing operations of the MPU 601 and the reconfiguration device 603. This operation is started when the execution binary 15 is executable by the MPU 601 and the circuit information 19 is written in the reconfiguration device 603. The actual operation of the user-defined function is executed from an interrupt handler activated from the reconfiguration device 603.

再構成デバイス603は回路情報19に基づいて、ユーザ定義関数に対応するクライアント関数を起動する(ステップS210)。この処理は、図14の動作レベル記述17のステップP401又はステップP402に対応する。クライアント関数本体は、それぞれ、図8のP205及びP209のそれぞれに対応する。以降、再構成デバイス603は、回路情報19に基づいて、クライアントライブラリ16及び動作レベル記述17に含まれる処理を実行する。
次に、再構成デバイス603は、スタックデータに関数IDと引数を書き込む(ステップS211)。この処理において、関数IDの設定は図8のP206もしくはP210に対応し、引数の設定は図8のP207もしくはP211に対応する。
The reconfiguring device 603 activates a client function corresponding to the user-defined function based on the circuit information 19 (step S210). This processing corresponds to Step P401 or Step P402 of the behavior level description 17 in FIG. The client function body corresponds to each of P205 and P209 in FIG. Thereafter, the reconfiguration device 603 executes processing included in the client library 16 and the behavior level description 17 based on the circuit information 19.
Next, the reconfiguration device 603 writes the function ID and the argument in the stack data (step S211). In this processing, the function ID setting corresponds to P206 or P210 in FIG. 8, and the argument setting corresponds to P207 or P211 in FIG.

次に、再構成デバイス603は、スタックデータの制御情報を初期化する(ステップS212)。この処理は、図8のP202に対応し、図8では、制御情報の値を0に初期化している。
次に、再構成デバイス603は、MPU601への割込みを生成する(ステップS213)。この処理は、図8のS203に対応する。
この時、図14のP401の処理を実行した場合のスタックデータの内容は図16Aのようになる。同様に、P402の処理を実行した場合のスタックデータの内容は図17Aのようになる。
Next, the reconfiguration device 603 initializes stack data control information (step S212). This process corresponds to P202 in FIG. 8, and the value of the control information is initialized to 0 in FIG.
Next, the reconfiguration device 603 generates an interrupt to the MPU 601 (step S213). This process corresponds to S203 in FIG.
At this time, the contents of the stack data when the process of P401 in FIG. 14 is executed are as shown in FIG. 16A. Similarly, the contents of the stack data when the process of P402 is executed are as shown in FIG. 17A.

MPU601は再構成デバイス603から発行された割込みにより、割込みハンドラを起動する(ステップS201)。この処理はMPU601で動作するオペレーティングシステムなどにより起動される。例えば、再構成デバイス603からの割込みに対する処理として図9の関数P301を事前に登録しておく。これによって、MPU601は、割込コントローラ602からの割込み信号に応じて、関数P301を割込みハンドラとして起動する。つまり、MPU601は、割込コントローラ602からの割込み信号に応じて、実行バイナリ15に含まれる処理の実行を開始する。以降、MPU601は、実行バイナリ15に基づいて、サーバプログラム13に含まれる処理を実行する。   The MPU 601 activates an interrupt handler by an interrupt issued from the reconfiguration device 603 (step S201). This process is started by an operating system or the like that operates on the MPU 601. For example, the function P301 in FIG. 9 is registered in advance as a process for an interrupt from the reconfiguration device 603. Accordingly, the MPU 601 activates the function P301 as an interrupt handler in response to the interrupt signal from the interrupt controller 602. That is, the MPU 601 starts executing the processing included in the execution binary 15 in response to the interrupt signal from the interrupt controller 602. Thereafter, the MPU 601 executes processing included in the server program 13 based on the execution binary 15.

次に、MPU601は、MPU601への割込みをクリアする(ステップS202)。この処理は、図9のP302に対応する。
次に、MPU601は、スタックデータから関数IDを読出す(ステップS203)。この処理は、図9のP303に対応する。
次に、MPU601は、実行するユーザ定義関数を選択する(ステップS204)。この処理は、図9のP304に対応する。例えば、スタックデータから読出した関数IDが1の場合は、P305以降のプログラムが実行される。
Next, the MPU 601 clears the interrupt to the MPU 601 (step S202). This process corresponds to P302 in FIG.
Next, the MPU 601 reads the function ID from the stack data (step S203). This process corresponds to P303 in FIG.
Next, the MPU 601 selects a user-defined function to be executed (step S204). This process corresponds to P304 in FIG. For example, when the function ID read from the stack data is 1, the program after P305 is executed.

次に、MPU601は、スタックデータからユーザ定義関数で必要とする引数を読出す(ステップS205)。この処理は、図9のP306あるいはP310に対応する。
次に、MPU601は、スタックデータから読出した引数を用いて、ユーザ定義関数(P100あるいはP101)を実行する(ステップS206)。この処理は、図9のP307あるいはP311に対応する。
Next, the MPU 601 reads out an argument required for the user-defined function from the stack data (step S205). This process corresponds to P306 or P310 in FIG.
Next, the MPU 601 executes a user-defined function (P100 or P101) using the argument read from the stack data (step S206). This processing corresponds to P307 or P311 in FIG.

この時、図14のP402の処理を実行した場合には、MPU601は、入出力インタフェース608を介して、実行結果を出力装置611に出力する。例えば、実行結果は、図18に示すように出力される。
次に、MPU601は、実行したユーザ定義関数の戻り値及び戻り引数をスタックデータに書き込む(ステップS207)。この処理は、図9のP308に対応する。
At this time, when the process of P402 in FIG. 14 is executed, the MPU 601 outputs the execution result to the output device 611 via the input / output interface 608. For example, the execution result is output as shown in FIG.
Next, the MPU 601 writes the return value and return argument of the executed user-defined function in the stack data (step S207). This process corresponds to P308 in FIG.

次に、MPU601は、スタックデータの制御情報を更新する(ステップS208)。この処理は、図9のP312に対応し、図9では、制御情報の値を1に更新している。
この時、図14のP401の処理を実行した場合のスタックデータの内容は図16Bのようになる。同様に、P402の処理を実行した場合のスタックデータの内容は図17Bのようになる。
Next, the MPU 601 updates the stack data control information (step S208). This process corresponds to P312 in FIG. 9, and the value of the control information is updated to 1 in FIG.
At this time, the contents of the stack data when the process of P401 in FIG. 14 is executed are as shown in FIG. 16B. Similarly, the contents of the stack data when the process of P402 is executed are as shown in FIG. 17B.

割込みハンドラで起動されたサーバプログラム13の一連の処理はこれで終了する。
一方、ステップS213でMPU601に割込みを生成した再構成デバイス603は、スタックデータの制御情報を一定間隔でポーリングして、制御情報が変更されるまで待機する(ステップS214)。この処理は、図8のP204に対応する。
A series of processes of the server program 13 started by the interrupt handler is finished here.
On the other hand, the reconfigurable device 603 that generated an interrupt to the MPU 601 in step S213 polls the control information of the stack data at regular intervals, and waits until the control information is changed (step S214). This process corresponds to P204 in FIG.

ステップS208で制御情報が変更されると、再構成デバイス603は動作を継続し、スタックデータから戻り値及び戻り引数を読出して、ユーザ定義関数の戻り値及び戻り引数に設定する。この処理は、図8のP208に対応する。そして、再構成デバイス603は、ユーザ定義関数処理を終了して呼び出し元の処理に戻る(ステップS215)。   When the control information is changed in step S208, the reconfiguration device 603 continues to operate, reads the return value and return argument from the stack data, and sets them as the return value and return argument of the user-defined function. This process corresponds to P208 in FIG. Then, the reconfigurable device 603 ends the user-defined function process and returns to the caller process (step S215).

以上説明したように、本実施形態によれば、情報処理装置において、再構成デバイス603が、演算処理装置601で動作する、事前に設計されたユーザ定義関数をバスラインを介して起動することが出来る。これによれば、再構成デバイス603が実行したい処理をユーザ定義関数で用意することで、その処理を演算処理装置601で代替して実行することができる。また、再構成デバイス603では実行することができないが、演算処理装置601では実行することができる処理がある場合であっても、その処理をユーザ定義関数で用意することで再構成デバイス603に代替して演算処理装置601に実行させることができる。ここで、システムコールやグローバル関数のように、複数のプログラムで共通化された関数がある場合、その関数をユーザ定義関数として用意するか、もしくは、その関数を含むユーザ定義関数を用意することで、再構成デバイス603においてもその関数を利用することができる。つまり、再構成デバイス603からも、演算処理装置601において共通化された処理を利用可能とすることができる。   As described above, according to the present embodiment, in the information processing apparatus, the reconfiguration device 603 can activate a user-defined function designed in advance that operates on the arithmetic processing apparatus 601 via the bus line. I can do it. According to this, by preparing a process to be executed by the reconfiguration device 603 with a user-defined function, the process can be executed by the arithmetic processing device 601 instead. Even if there is a process that can not be executed by the reconfiguration device 603 but can be executed by the arithmetic processing unit 601, it can be replaced by the reconfiguration device 603 by preparing the process with a user-defined function. And can be executed by the arithmetic processing unit 601. Here, if there is a function shared by multiple programs, such as system calls and global functions, prepare that function as a user-defined function or prepare a user-defined function that includes that function. The function can also be used in the reconstruction device 603. That is, it is possible to use the processing shared by the arithmetic processing device 601 from the reconstruction device 603 as well.

ここで、背景技術として説明したように、再構成デバイスには、様々な処理を実装するようになってきている。このようなことから、再構成デバイスからも、オペレーティングシステムが提供するシステムコールのような共通化された資源を利用することができれば、再構成デバイスにおける処理内容の設計における利便性を向上することができる。しかしながら、特許文献1乃至6や非特許文献1に記載された再構成デバイスにオペレーティングシステムを搭載することは困難である。 なぜなら、オペレーティングシステムを再構成デバイスに実装するためには、膨大な演算リソースを必要とするためである。これは、再構成デバイスに実装する箇所をオペレーティングシステムが提供する機能の一部のみに限定しても同様である。オペレーティングシステムが提供する機能の一部とは、例えば、メモリ管理や標準入出力などがある。それに対して、本実施形態によれば、再構成デバイス603は少ない演算リソースで、バスラインに接続された共有メモリ607及び入出力インタフェース608を制御するためのシステムコールを実行することができる。つまり、演算処理装置601で動作するオペレーティングシステムが提供する機能を再構成デバイス603から利用することができる。   Here, as described as the background art, various processes have been implemented in the reconfigurable device. For this reason, if a common resource such as a system call provided by the operating system can also be used from the reconfigurable device, the convenience of designing the processing contents in the reconfigurable device can be improved. it can. However, it is difficult to mount an operating system on the reconfigurable device described in Patent Documents 1 to 6 and Non-Patent Document 1. This is because enormous computational resources are required to implement the operating system on the reconfigurable device. This is the same even if the location to be mounted on the reconfigurable device is limited to only a part of the functions provided by the operating system. Some of the functions provided by the operating system include, for example, memory management and standard input / output. On the other hand, according to the present embodiment, the reconfigurable device 603 can execute a system call for controlling the shared memory 607 and the input / output interface 608 connected to the bus line with a small number of computing resources. That is, the function provided by the operating system operating on the arithmetic processing device 601 can be used from the reconfiguration device 603.

ここで、再構成デバイス603からバスアクセス装置605を介して共有メモリ607を使用するときには、MPU601が使用しており、再構成デバイス603からアクセスしてはいけない領域を避けて使用する必要がある。したがって、その領域以外にアクセスするようにするための余分な制御が必要となってしまうという問題がある。それに対して、本実施の形態によれば、上述したように、再構成デバイス603から共有メモリ607に対するアクセスをするためのシステムコールを、演算処理装置601を介して実行することができる。これによって、再構成デバイス603から、MPU601で実行されるオペレーティングシステムの管理下において共有メモリ607にアクセスすることができる。そのため、再構成デバイス603は、共有メモリ607にアクセスする際に、余分な制御をする必要がなくなる。   Here, when the shared memory 607 is used from the reconfiguration device 603 via the bus access device 605, it is necessary to avoid the area that is used by the MPU 601 and should not be accessed from the reconfiguration device 603. Therefore, there is a problem that extra control is required to access other areas. On the other hand, according to the present embodiment, as described above, a system call for accessing the shared memory 607 from the reconfigurable device 603 can be executed via the arithmetic processing unit 601. As a result, the reconfigurable device 603 can access the shared memory 607 under the management of the operating system executed by the MPU 601. Therefore, the reconfiguration device 603 does not need to perform extra control when accessing the shared memory 607.

以上、実施の形態を参照して本願発明を説明したが、本願発明は上記によって限定されるものではない。本願発明の構成や詳細には、発明のスコープ内で当業者が理解し得る様々な変更をすることができる。   Although the present invention has been described with reference to the exemplary embodiments, the present invention is not limited to the above. Various changes that can be understood by those skilled in the art can be made to the configuration and details of the present invention within the scope of the invention.

例えば、本実施形態では、プログラム設計支援システム1は、プログラム生成装置10と、コンパイル装置14と、動作合成装置18と、に各機能を分散しているが、これらの装置の全部または2台の機能を1台の装置で実現する構成としてもよい。プログラム生成装置10内の各装置についても同様である。   For example, in this embodiment, the program design support system 1 distributes the functions to the program generation device 10, the compilation device 14, and the behavioral synthesis device 18, but all or two of these devices are distributed. It is good also as a structure which implement | achieves a function with one apparatus. The same applies to each device in the program generation device 10.

また、プログラム生成装置10内の関数抽出装置101、サーバプログラム生成装置104、クライアントライブラリ生成装置105の少なくとも1つ以上を、プログラム生成装置10の外部に設ける構成としてもよい。
また、MPU601と再構成デバイス603との間で、共有メモリ607を介して、関数ID、制御情報、引数、戻り値、及び戻り引数等のターゲットデータを受け渡すようにしてもよい。
In addition, at least one of the function extraction device 101, the server program generation device 104, and the client library generation device 105 in the program generation device 10 may be provided outside the program generation device 10.
Further, target data such as a function ID, control information, an argument, a return value, and a return argument may be passed between the MPU 601 and the reconfigurable device 603 via the shared memory 607.

以上に説明した本発明にかかるプログラム設計支援システム1は、上述の実施の形態の機能を実現するプログラムを記憶した記憶媒体をコンピュータに供給し、コンピュータ又はコンピュータが有するCPU又はMPUがこのプログラムを実行することによって、構成することが可能である。   The program design support system 1 according to the present invention described above supplies a computer with a storage medium storing a program for realizing the functions of the above-described embodiments, and the computer or the CPU or MPU included in the computer executes the program. By doing so, it is possible to configure.

また、このプログラム及び実行バイナリ15は、様々なタイプの非一時的なコンピュータ可読媒体(non-transitory computer readable medium)を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体(tangible storage medium)を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体(例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ)、光磁気記録媒体(例えば光磁気ディスク)、CD−ROM(Read Only Memory)、CD−R、CD−R/W、半導体メモリ(例えば、マスクROM、PROM(Programmable ROM)、EPROM(Erasable PROM)、フラッシュROM、RAM(Random Access Memory))を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体(transitory computer readable medium)によってコンピュータに供給されてもよい。   Further, the program and the execution binary 15 can be stored using various types of non-transitory computer readable media and supplied to the computer. Non-transitory computer readable media include various types of tangible storage media. Examples of non-transitory computer-readable media include magnetic recording media (for example, flexible disks, magnetic tapes, hard disk drives), magneto-optical recording media (for example, magneto-optical disks), CD-ROMs (Read Only Memory), CD-Rs, CD-R / W, semiconductor memory (for example, mask ROM, PROM (Programmable ROM), EPROM (Erasable PROM), flash ROM, RAM (Random Access Memory)) are included. The program may also be supplied to the computer by various types of transitory computer readable media.

一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。   Examples of transitory computer readable media include electrical signals, optical signals, and electromagnetic waves. The temporary computer-readable medium can supply the program to the computer via a wired communication path such as an electric wire and an optical fiber, or a wireless communication path.

また、コンピュータが上述の実施の形態の機能を実現するプログラムを実行することにより、上述の実施の形態の機能が実現されるだけではなく、このプログラムの指示に基づき、コンピュータ上で稼動しているオペレーティングシステムもしくはアプリケーションソフトウェアと共同して上述の実施の形態の機能が実現される場合も、発明の実施の形態に含まれる。   Further, when the computer executes the program that realizes the functions of the above-described embodiment, not only the functions of the above-described embodiment are realized, but also the computer is operating on the basis of the instructions of this program. A case where the functions of the above-described embodiment are realized in cooperation with an operating system or application software is also included in the embodiment of the invention.

さらに、このプログラムの処理の全てもしくは一部がコンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットにより行われて上述の実施の形態の機能が実現される場合も、発明の実施の形態に含まれる。   Further, when the functions of the above-described embodiment are realized by performing all or part of the processing of the program by a function expansion board inserted into the computer or a function expansion unit connected to the computer, the present invention may be implemented. It is included in the form.

上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。   A part or all of the above-described embodiment can be described as in the following supplementary notes, but is not limited thereto.

(付記1)所定の処理を含むプログラムを実行する演算処理装置と、前記演算処理装置に対して、前記プログラムの実行を要求する実行要求信号を出力すると共に、前記所定の処理において使用される処理情報を有する再構成デバイスと、を備え、前記演算処理装置は、前記再構成デバイスから出力された実行要求信号に応じて前記プログラムを起動し、前記再構成デバイスから前記処理情報を読み出し、前記所定の処理を実行する、情報処理装置。 (Supplementary Note 1) An arithmetic processing device that executes a program including a predetermined process, and an output request signal that requests execution of the program to the arithmetic processing device, and a process that is used in the predetermined process A reconfigurable device having information, and the arithmetic processing unit activates the program in response to an execution request signal output from the reconfigurable device, reads the processing information from the reconfigurable device, and An information processing apparatus that executes the process.

(付記2)前記プログラムは、前記所定の処理を実行する関数を含み、前記処理情報は、前記関数の引数であり、前記プログラムは、前記再構成デバイスから読み出した引数を前記関数に設定して、当該関数を実行する、付記1に記載の情報処理装置。 (Supplementary Note 2) The program includes a function for executing the predetermined process, the processing information is an argument of the function, and the program sets an argument read from the reconfigurable device as the function. The information processing apparatus according to appendix 1, which executes the function.

(付記3)前記プログラムは、前記関数を複数含み、前記再構成デバイスは、前記関数を特定する関数特定情報を有し、前記プログラムは、前記再構成デバイスから前記関数特定情報を読み出し、当該読み出した関数特定情報によって特定される関数を実行する、付記2に記載の情報処理装置。 (Supplementary Note 3) The program includes a plurality of the functions, the reconfigurable device has function specifying information for specifying the function, and the program reads the function specifying information from the reconfigurable device and reads the function The information processing apparatus according to attachment 2, wherein the function specified by the function specifying information is executed.

(付記4)前記プログラムは、前記関数を実行した場合、当該関数の戻り値を出力し、前記再構成デバイスは、前記演算処理装置の前記プログラムから出力された戻り値を取得する、付記3に記載の情報処理装置。 (Supplementary Note 4) When the program executes the function, the program outputs a return value of the function, and the reconfiguration device acquires a return value output from the program of the arithmetic processing unit. The information processing apparatus described.

(付記5)前記再構成デバイスは、前記関数特定情報、前記引数、及び前記戻り値が格納される記憶部をさらに備え、前記再構成デバイスは、前記関数を実行する場合に、当該関数を特定する関数特定情報及び当該関数の引数を前記記憶部に格納し、前記プログラムは、前記記憶部に格納された関数特定情報及び引数を読み出すとともに、前記戻り値を出力して前記記憶部に格納する、付記4に記載の情報処理装置。 (Supplementary Note 5) The reconfigurable device further includes a storage unit that stores the function specifying information, the argument, and the return value, and the reconfigurable device specifies the function when executing the function The function specifying information and the argument of the function to be stored are stored in the storage unit, and the program reads the function specifying information and the argument stored in the storage unit and outputs the return value and stores it in the storage unit The information processing apparatus according to attachment 4.

(付記6)前記演算処理装置は、オペレーティングシステムを実行するとともに、当該オペレーティングシステム上で前記プログラムを実行するものであって、前記所定の処理は、当該オペレーティングシステムのシステムコールの実行を含む、付記1乃至5のいずれか1つに記載の情報処理装置。 (Supplementary note 6) The arithmetic processing unit executes an operating system and executes the program on the operating system, and the predetermined processing includes execution of a system call of the operating system. The information processing apparatus according to any one of 1 to 5.

(付記7)前記情報処理装置は、前記演算処理装置に割込み信号を出力する割込コントローラをさらに備え、前記再構成デバイスは、前記実行要求信号を前記割込コントローラに出力し、前記割込コントローラは、前記再構成デバイスから出力された実行要求信号に応じて、前記演算処理装置に割込み信号を出力し、前記演算処理装置は、前記割込コントローラから出力された割込み信号に応じて、前記プログラムを起動する付記1乃至6のいずれか1つに記載の情報処理装置。 (Supplementary Note 7) The information processing apparatus further includes an interrupt controller that outputs an interrupt signal to the arithmetic processing unit, and the reconfiguration device outputs the execution request signal to the interrupt controller, and the interrupt controller Outputs an interrupt signal to the arithmetic processing unit in response to the execution request signal output from the reconfigurable device, and the arithmetic processing unit outputs the program in response to the interrupt signal output from the interrupt controller. The information processing apparatus according to any one of supplementary notes 1 to 6, wherein the information processing apparatus is activated.

(付記8)前記記憶部は、前記再構成デバイスが有する記憶素子である付記5に記載の情報処理装置。 (Supplementary note 8) The information processing apparatus according to supplementary note 5, wherein the storage unit is a storage element included in the reconstruction device.

(付記9)再構成デバイスが、所定の処理を含むプログラムの実行を要求する実行要求信号を出力し、前記演算処理装置が、前記再構成デバイスから出力された実行要求信号に応じて、前記プログラムを起動し、前記再構成デバイスから前記所定の処理において使用される処理情報を読み出し、前記処理の処理を実行する情報処理方法。 (Supplementary note 9) The reconfiguration device outputs an execution request signal for requesting execution of a program including a predetermined process, and the arithmetic processing unit outputs the program according to the execution request signal output from the reconfiguration device. An information processing method for starting processing, reading processing information used in the predetermined processing from the reconfigurable device, and executing processing of the processing.

(付記10)所定の処理を含む第1のソースプログラムに基づいて、再構成デバイスの回路情報の生成に用いられ、前記再構成デバイスに前記所定の処理の実行を要求する実行要求信号を出力させる処理を含むライブラリを生成するライブラリ生成部と、前記第1のソースプログラムに基づいて、演算処理装置によって実行される実行プログラムの生成に用いられ、前記再構成デバイスから出力された実行要求信号に応じて前記演算処理装置に前記再構成デバイスから前記所定の処理において使用される処理情報を読み出させ、前記所定の処理を実行させる処理を含む第2のソースプログラムを生成するソースプログラム生成部と、を備えた設計支援システム。 (Additional remark 10) Based on the 1st source program containing a predetermined process, it is used for the production | generation of the circuit information of a reconfigurable device, and makes the said reconfigurable device output the execution request signal which requests | requires execution of the said predetermined process Based on the execution request signal output from the reconfigurable device and used to generate an execution program executed by the arithmetic processing unit based on the first source program and a library generation unit that generates a library including processing A source program generation unit that generates a second source program including a process for causing the arithmetic processing device to read processing information used in the predetermined process from the reconfigurable device and executing the predetermined process; Design support system with

(付記11)前記第1のソースプログラムは、前記関数を複数含み、前記設計支援システムは、前記第1のソースプログラムに基づいて、前記複数の関数のそれぞれについて、前記関数と、当該関数を特定する関数特定情報とを対応付けた関数対応情報を生成する関数対応情報生成部をさらに備え、前記ライブラリ生成部は、前記関数対応情報に基づいて、前記関数を実行する場合に、当該関数を特定する関数特定情報を前記再構成デバイスに保持させる処理を前記ライブラリに含め、前記ソースプログラム生成部は、前記関数対応情報に基づいて、前記演算処理装置に前記再構成デバイスから前記関数特定情報を読み出させ、当該読み出した関数特定情報によって特定される関数を実行させる処理を前記第2のソースプログラムに含める、付記10に記載の設計支援システム。 (Supplementary Note 11) The first source program includes a plurality of the functions, and the design support system identifies the function and the function for each of the plurality of functions based on the first source program. A function correspondence information generation unit that generates function correspondence information in association with the function identification information to be performed, and the library generation unit identifies the function when executing the function based on the function correspondence information. The source program generating unit reads the function specifying information from the reconfiguring device to the arithmetic processing unit based on the function correspondence information. Including a process for executing the function specified by the read function specifying information in the second source program, Design support system according to the serial 10.

(付記12)前記設計支援システムは、前記ライブラリ生成部によって生成されたライブラリと、前記再構成デバイスの動作を示す動作レベル記述とに基づいて、前記再構成デバイスの回路情報を生成する回路情報生成部と、前記ソースプログラム生成部によって生成された第2のソースプログラムに基づいて、前記演算処理装置によって実行される実行プログラムを生成するコンパイル部と、をさらに備えた付記10又は11に記載の設計支援システム。 (Supplementary Note 12) The design support system generates circuit information for generating circuit information of the reconfigurable device based on the library generated by the library generating unit and an operation level description indicating the operation of the reconfigurable device. The design according to appendix 10 or 11, further comprising: a compiling unit that generates an execution program to be executed by the arithmetic processing unit based on the second source program generated by the source program generating unit Support system.

(付記13)再構成デバイスから出力された実行要求信号に応じて実行されたときに、前記再構成デバイスから所定の処理において使用される処理情報を読み出す処理と、前記読み出した処理情報を使用して前記所定の処理を実行する処理と、を演算処理装置に実行させるプログラム。 (Supplementary note 13) When executed in response to the execution request signal output from the reconfigurable device, the processing information used in the predetermined processing is read from the reconfigurable device, and the read processing information is used. And a program for causing the arithmetic processing unit to execute processing for executing the predetermined processing.

この出願は、2010年9月15日に出願された日本出願特願2010−206659を基礎とする優先権を主張し、その開示の全てをここに取り込む。   This application claims the priority on the basis of Japanese application Japanese Patent Application No. 2010-206659 for which it applied on September 15, 2010, and takes in those the indications of all here.

1 プログラム設計支援システム
2 設計支援システム
6 ターゲットシステム
7 情報処理装置
10 プログラム生成装置
11 ユーザ定義関数プログラム
12 ターゲットシステム情報
13 サーバプログラム
14 コンパイル装置
15 実行バイナリ
16 クライアントライブラリ
17 動作レベル記述
18 動作合成装置
19 回路情報
21 ライブラリ生成部
22 ソースプログラム生成部
25 第1のソースプログラム
26 第2のソースプログラム
27 ライブラリ
30 入力装置
40 出力装置
50 ネットワーク装置
71 演算処理装置
72、603 再構成デバイス
101 関数抽出装置
103 関数リスト
104 サーバプログラム生成装置
105 クライアントライブラリ生成装置
200 CPU
201 主記憶装置
202 記憶媒体
203 データ蓄積装置
204 主記憶制御インタフェース部
205 記憶媒体制御インタフェース部
206 データ蓄積制御インタフェース部
207 入力制御インタフェース部
208 出力制御インタフェース部
209 ネットワーク制御インタフェース部
601 MPU
602 割込コントローラ
604 読出装置
605 バスアクセス装置
606 書込装置
607 共有メモリ
608 入出力インタフェース
609 ネットワークインタフェース
610 入力装置
611 出力装置
612 ネットワーク
613 バスライン
2000 バス
6030、6031、6032 記憶素子
1 Program design support system
2 Design support system 6 Target system
7 Information processing apparatus 10 Program generation apparatus
11 User-defined function programs
12 Target system information
13 Server program
14 Compile device
15 Execution binary
16 Client library
17 Behavior level description
18 Behavioral synthesis device
19 Circuit information
21 Library generator 22 Source program generator 25 First source program 26 Second source program 27 Library 30 Input device
40 Output device
50 Network device 71 Arithmetic processing device 72, 603 Reconfiguration device
101 function extractor
103 Function list
104 Server program generation device
105 Client library generation device
200 CPU
201 Main memory
202 storage medium
203 data storage device
204 Main memory control interface unit
205 Storage medium control interface unit
206 Data storage control interface unit
207 Input control interface unit
208 Output control interface unit
209 Network control interface part
601 MPU
602 Interrupt controller
604 reading device
605 bus access device
606 writing device
607 shared memory
608 I / O interface
609 Network interface
610 input device
611 Output device
612 network
613 bus line
2000 bus
6030, 6031, 6032 Memory element

本発明は、情報処理装置、情報処理方法、設計支援システム及びプログラムに関する。 The present invention relates to an information processing apparatus, it relates to an information processing method, design support system, and programs.

本発明の目的は、上述したような課題を解決するために、再構成デバイスの処理を演算処理装置で代替して実行することができる情報処理装置、情報処理方法、設計支援システム及びプログラムを提供することである。 An object of the present invention, in order to solve the above problems, reconfigurable devices processing information processing apparatus capable of executing replaced by the processing unit, information processing method, a design support system and program Is to provide.

本発明の第4の態様にかかるプログラムは、再構成デバイスから出力された実行要求信号に応じて実行されたときに、前記再構成デバイスから所定の処理において使用される処理情報を読み出す処理と、前記読み出した処理情報を使用して前記所定の処理を実行する処理と、を演算処理装置に実行させるプログラムである。 Program according to the fourth embodiment of the present invention, when executed in response to the execution signal output from the reconfigurable device, the process of reading processing information the use in a given process from the reconstruction device a program for executing a process of executing the predetermined processing by using the read processing information to the processing unit.

上述した本発明の各態様によれば、再構成デバイスの処理を演算処理装置で代替して実行することができる情報処理装置、情報処理方法、設計支援システム及びプログラムを提供することができる。

According to each aspect of the present invention described above, the information processing apparatus can be performed in an alternate processing of the reconstruction device processor, information processing method, it is possible to provide a design support system and programs.

Claims (10)

所定の処理を含むプログラムを実行する演算処理装置と、
前記演算処理装置に対して、前記プログラムの実行を要求する実行要求信号を出力すると共に、前記所定の処理において使用される処理情報を有する再構成デバイスと、を備え、
前記演算処理装置は、前記再構成デバイスから出力された実行要求信号に応じて前記プログラムを起動し、前記再構成デバイスから前記処理情報を読み出し、前記所定の処理を実行する、
情報処理装置。
An arithmetic processing unit that executes a program including predetermined processing;
A reconfiguration device that outputs processing request signals for requesting execution of the program to the arithmetic processing unit, and has processing information used in the predetermined processing;
The arithmetic processing unit starts the program in response to an execution request signal output from the reconfigurable device, reads the processing information from the reconfigurable device, and executes the predetermined process.
Information processing device.
前記プログラムは、前記所定の処理を実行する関数を含み、
前記処理情報は、前記関数の引数であり、
前記プログラムは、前記再構成デバイスから読み出した引数を前記関数に設定して、当該関数を実行する、
請求項1に記載の情報処理装置。
The program includes a function for executing the predetermined process,
The processing information is an argument of the function,
The program sets an argument read from the reconfigurable device in the function and executes the function.
The information processing apparatus according to claim 1.
前記プログラムは、前記関数を複数含み、
前記再構成デバイスは、前記関数を特定する関数特定情報を有し、
前記プログラムは、前記再構成デバイスから前記関数特定情報を読み出し、当該読み出した関数特定情報によって特定される関数を実行する、
請求項2に記載の情報処理装置。
The program includes a plurality of the functions,
The reconstruction device has function specifying information for specifying the function;
The program reads the function specifying information from the reconfigurable device and executes a function specified by the read function specifying information.
The information processing apparatus according to claim 2.
前記プログラムは、前記関数を実行した場合、当該関数の戻り値を出力し、
前記再構成デバイスは、前記演算処理装置の前記プログラムから出力された戻り値を取得する、
請求項3に記載の情報処理装置。
When the program executes the function, it outputs a return value of the function,
The reconstruction device acquires a return value output from the program of the arithmetic processing unit;
The information processing apparatus according to claim 3.
前記再構成デバイスは、前記関数特定情報、前記引数、及び前記戻り値が格納される記憶手段をさらに備え、
前記再構成デバイスは、前記関数を実行する場合に、当該関数を特定する関数特定情報及び当該関数の引数を前記記憶手段に格納し、
前記プログラムは、前記記憶手段に格納された関数特定情報及び引数を読み出すとともに、前記戻り値を出力して前記記憶手段に格納する、
請求項4に記載の情報処理装置。
The reconfigurable device further comprises storage means for storing the function specifying information, the argument, and the return value,
The reconfigurable device stores function specifying information for specifying the function and an argument of the function in the storage unit when executing the function,
The program reads the function specifying information and the argument stored in the storage unit, outputs the return value, and stores it in the storage unit.
The information processing apparatus according to claim 4.
前記演算処理装置は、オペレーティングシステムを実行するとともに、当該オペレーティングシステム上で前記プログラムを実行するものであって、
前記所定の処理は、前記オペレーティングシステムのシステムコールの実行を含む、
請求項1乃至5のいずれか1項に記載の情報処理装置。
The arithmetic processing unit executes an operating system and executes the program on the operating system,
The predetermined processing includes execution of a system call of the operating system.
The information processing apparatus according to any one of claims 1 to 5.
再構成デバイスが、所定の処理を含むプログラムの実行を要求する実行要求信号を出力し、
前記演算処理装置が、前記再構成デバイスから出力された実行要求信号に応じて、前記プログラムを起動し、前記再構成デバイスから前記所定の処理において使用される処理情報を読み出し、前記処理の処理を実行する、
情報処理方法。
The reconfigurable device outputs an execution request signal for requesting execution of a program including predetermined processing,
The arithmetic processing unit activates the program in response to an execution request signal output from the reconstruction device, reads processing information used in the predetermined processing from the reconstruction device, and performs processing of the processing Run,
Information processing method.
所定の処理を含む第1のソースプログラムに基づいて、再構成デバイスの回路情報の生成に用いられ、前記再構成デバイスに前記所定の処理の実行を要求する実行要求信号を出力させる処理を含むライブラリを生成するライブラリ生成手段と、
前記第1のソースプログラムに基づいて、演算処理装置によって実行される実行プログラムの生成に用いられ、前記再構成デバイスから出力された実行要求信号に応じて前記演算処理装置に前記再構成デバイスから前記所定の処理において使用される処理情報を読み出させ、前記所定の処理を実行させる処理を含む第2のソースプログラムを生成するソースプログラム生成手段と、を備えた設計支援システム。
A library that includes a process that is used to generate circuit information of a reconfigurable device based on a first source program that includes a predetermined process, and that causes the reconfigurable device to output an execution request signal that requests execution of the predetermined process Library generating means for generating
Based on the first source program, it is used to generate an execution program to be executed by the arithmetic processing device, and the arithmetic processing device sends the execution device to the arithmetic processing device in response to an execution request signal output from the reconfiguring device. A design support system comprising: source program generation means for generating a second source program including processing for reading processing information used in predetermined processing and executing the predetermined processing.
前記第1のソースプログラムは、前記関数を複数含み、
前記設計支援システムは、前記第1のソースプログラムに基づいて、前記複数の関数のそれぞれについて、前記関数と、当該関数を特定する関数特定情報とを対応付けた関数対応情報を生成する関数対応情報生成手段をさらに備え、
前記ライブラリ生成手段は、前記関数対応情報に基づいて、前記関数を実行する場合に、当該関数を特定する関数特定情報を前記再構成デバイスに保持させる処理を前記ライブラリに含め、
前記ソースプログラム生成手段は、前記関数対応情報に基づいて、前記演算処理装置に前記再構成デバイスから前記関数特定情報を読み出させ、当該読み出した関数特定情報によって特定される関数を実行させる処理を前記第2のソースプログラムに含める、
請求項8に記載の設計支援システム。
The first source program includes a plurality of the functions,
The design support system generates function correspondence information that associates the function with function specifying information for specifying the function for each of the plurality of functions based on the first source program. Further comprising generating means,
The library generation means includes, in the library, a process for causing the reconfigurable device to hold function specifying information for specifying the function when executing the function based on the function correspondence information.
The source program generation unit is configured to cause the arithmetic processing unit to read the function specifying information from the reconfigurable device based on the function correspondence information, and to execute a function specified by the read function specifying information. Included in the second source program;
The design support system according to claim 8.
再構成デバイスから出力された実行要求信号に応じて実行されたときに、前記再構成デバイスから所定の処理において使用される処理情報を読み出す処理と、
前記読み出した処理情報を使用して前記所定の処理を実行する処理と、
を演算処理装置に実行させるプログラムが格納された非一時的なコンピュータ可読媒体。
A process of reading processing information used in a predetermined process from the reconfiguration device when executed in response to an execution request signal output from the reconfiguration device;
A process of executing the predetermined process using the read process information;
A non-transitory computer-readable medium storing a program for causing an arithmetic processing unit to execute the program.
JP2012533837A 2010-09-15 2011-08-04 Information processing apparatus, information processing method, design support system, and program Pending JPWO2012035699A1 (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2010206659 2010-09-15
JP2010206659 2010-09-15
PCT/JP2011/004433 WO2012035699A1 (en) 2010-09-15 2011-08-04 Information processing device, information processing method, design assistance system, and non-temporary computer-readable medium wherein program is stored

Publications (1)

Publication Number Publication Date
JPWO2012035699A1 true JPWO2012035699A1 (en) 2014-01-20

Family

ID=45831195

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012533837A Pending JPWO2012035699A1 (en) 2010-09-15 2011-08-04 Information processing apparatus, information processing method, design support system, and program

Country Status (2)

Country Link
JP (1) JPWO2012035699A1 (en)
WO (1) WO2012035699A1 (en)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1996010226A1 (en) * 1994-09-26 1996-04-04 Bull Hn Information Systems Inc. Sharing register stack by two cpu execution units
US5923892A (en) * 1997-10-27 1999-07-13 Levy; Paul S. Host processor and coprocessor arrangement for processing platform-independent code
JP2001147902A (en) * 1999-11-22 2001-05-29 Nec Corp Microprocessor system
JP2002149402A (en) * 2000-11-14 2002-05-24 Pacific Design Kk Data processor and method for controlling the same
JP2006178646A (en) * 2004-12-21 2006-07-06 Sony Computer Entertainment Inc Information processor, information processing method, semiconductor device, and computer program
JP2006215592A (en) * 2004-10-27 2006-08-17 Internatl Business Mach Corp <Ibm> Method and device using fpga technology with microprocessor for speed-up of reconfigurable instruction level by hardware
JP2008077625A (en) * 2006-09-18 2008-04-03 Samsung Electronics Co Ltd System and method for processing user defined extended operation

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1996010226A1 (en) * 1994-09-26 1996-04-04 Bull Hn Information Systems Inc. Sharing register stack by two cpu execution units
US5923892A (en) * 1997-10-27 1999-07-13 Levy; Paul S. Host processor and coprocessor arrangement for processing platform-independent code
JP2001147902A (en) * 1999-11-22 2001-05-29 Nec Corp Microprocessor system
JP2002149402A (en) * 2000-11-14 2002-05-24 Pacific Design Kk Data processor and method for controlling the same
JP2006215592A (en) * 2004-10-27 2006-08-17 Internatl Business Mach Corp <Ibm> Method and device using fpga technology with microprocessor for speed-up of reconfigurable instruction level by hardware
JP2006178646A (en) * 2004-12-21 2006-07-06 Sony Computer Entertainment Inc Information processor, information processing method, semiconductor device, and computer program
JP2008077625A (en) * 2006-09-18 2008-04-03 Samsung Electronics Co Ltd System and method for processing user defined extended operation

Also Published As

Publication number Publication date
WO2012035699A1 (en) 2012-03-22

Similar Documents

Publication Publication Date Title
JP5167589B2 (en) Application server device and virtual machine program
CN111782370B (en) Kubernetes multi-cluster management system, method, terminal and storage medium
CN103370704A (en) Bulk initial download of mobile databases
CN106155749B (en) Monitoring plug-in extension method and device
US9436487B2 (en) Method and apparatus for creating a platform agnostic application file
JP6379654B2 (en) Process execution program, process execution method, and information processing apparatus
JPWO2011158478A1 (en) Data processing system and data processing method
JPWO2014167790A1 (en) Information processing apparatus and deployment method
US20090164773A1 (en) Dynamic reconfiguration supporting method, dynamic reconfiguration supporting apparatus, and dynamic reconfiguration system
JP2018014057A (en) Parallel processing device and inter-node communication method
JP2005228183A (en) Program execution method and computer system for executing the program
CN106484375B (en) Instruction block loading method, soft switch equipment and system
WO2012035699A1 (en) Information processing device, information processing method, design assistance system, and non-temporary computer-readable medium wherein program is stored
WO2020158347A1 (en) Information processing device, method, and program
US20180341475A1 (en) Just In Time Deployment with Package Managers
JP2007018091A (en) Information processor, information processing system, application development support method and program
US10635625B2 (en) Plug connector component, plug connector, plug connector system and method for assembling and operating a plug connector
JP2012141887A (en) Information processing device, information processing method, and program
CN113918290A (en) API calling method and device
CN112882698A (en) Development environment generation method and device, computer storage medium and electronic device
JP7271957B2 (en) Dynamic link device, dynamic load device, computer system, dynamic link method, dynamic load method, dynamic link program, and dynamic load program
CN114020607B (en) BMC debugging method and device and computer equipment
JP2019160243A (en) Control program, control method, and information processor
JP6452904B1 (en) Design support apparatus, design support method, and program
CN112799687B (en) Data processing method and device, storage medium and computer equipment

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140711

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150303

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150421

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20151201

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20160329