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 PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program 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
再構成デバイスは、一般に、コンフィギュレーション・コード、すなわち回路情報と、処理に必要な入力データ及び初期値と、処理結果とを一時的に保持するための内部メモリを備える。この内部メモリは、複数の記憶素子から構成される。
また、再構成デバイスを備える情報処理装置には、回路情報を再構成デバイス内の記憶素子に書き込むための書込装置が設けられる。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のいずれにも、再構成デバイスの処理を演算処理装置で代替して実行することを可能とする技術は開示されていない。
背景技術として説明したように、再構成デバイスの処理を演算処理装置で代替して実行することができないという問題がある。 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.
まず、図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
The
The
続いて、本発明の実施の形態にかかる情報処理装置7の動作について説明する。
演算処理装置71は、オペレーティングシステムの実行を開始する。
再構成デバイス72は、演算処理装置に対して、実行要求信号を出力する。
演算処理装置71は、再構成デバイス72から出力された実行要求信号に応じて、プログラムを実行する。このとき、演算処理装置71は、再構成デバイス72から処理情報を読み出し、所定の処理を実行する。Next, the operation of the
The
The
The
続いて、本発明の実施の形態にかかるプログラム設計支援システムの概要となる設計支援システムについて説明する。図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
ソースプログラム生成部21は、第1のソースプログラム25に基づいて、再構成デバイスが出力した実行要求信号に応じて、演算処理装置に再構成デバイスから所定の処理において使用される処理情報を読み出させ、所定の処理を実行させる処理を含む第2のソースプログラム26を生成する。この第2のソースプログラム26は、オペレーティングシステムを実行する演算処理装置によってオペレーティングシステム上で実行される実行プログラムの生成に用いられる。
ライブラリ生成部22は、所定の処理を含む第1のソースプログラム25に基づいて、再構成デバイスに所定の処理の実行を要求する実行要求信号を出力させる処理を含むライブラリ27を生成する。このライブラリ27は、再構成デバイスの回路情報の動作合成に用いられる。Based on the
Based on the
続いて、本発明の実施の形態にかかる設計支援システム2の動作について説明する。
ソースプログラム生成部21は、第1のソースプログラム25に基づいて、第2のソースプログラム26を生成する。
ライブラリ生成部22は、第1のソースプログラム26に基づいて、ライブラリ27を生成する。Next, the operation of the
The source
The
本発明を実施するための形態について図面を参照して詳細に説明する。
本実施形態の情報処理装置と、その情報処理装置を対象として、実行プログラム及び回路情報を設計するためのプログラム設計支援システムとのそれぞれの構成を順に説明する。なお、プログラム設計支援システムにとって情報処理装置は設計対象であることから、以下では、情報処理装置をターゲットシステムと称する。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
MPU601は、割込コントローラ602、読出装置604、および書込装置606を制御することによって、再構成デバイス603との間でデータを送受信する演算処理装置である。さらに、MPU601は、オペレーティングシステムを実行する。MPU601は、オペレーティングシステムの実行に応じて、共有メモリ607、入出力インタフェース608、ネットワークインタフェース609を制御する。MPU601は、例えば、種々の演算、入力装置610からの入力、出力装置611への出力、ネットワーク612との入出力などを実行する。
The
また、MPU601は、オペレーティングシステム上で動作する実行プログラムを実行する。実行プログラムは、オペレーティングシステムが提供するシステムコールを実行する処理を含めてもよい。この場合、実行プログラムを実行することによって、システムコール等のオペレーティングシステムが提供する機能が利用される。MPU601は、割込コントローラ602からの割込み信号に応じて、実行プログラムを実行する。
The
バスライン613には、MPU601、割込コントローラ602、読出装置604、バスアクセス装置605、書込装置606、共有メモリ607、入出力インタフェース608、ネットワークインタフェース609が接続される。
共有メモリ607には、MPU601及び再構成デバイス603が処理対象とするデータや、MPU601及び再構成デバイス603が処理した結果が一時的に保持される。
割込コントローラ602は、再構成デバイス603からの割込信号を受けて、MPU601に割込みを発生させる。具体的には、割込コントローラ602は、再構成デバイス603からの割込信号に応じて、割込み信号をMPU601に出力する。An
The shared
The interrupt
再構成デバイス603は、FPGA、DRPなどの再構成デバイスである。再構成デバイス603内には、複数の記憶素子6030が設けられる。
記憶素子6030は、再構成デバイス603が処理対象とするデータや処理結果を一時的に保持する。また、記憶素子6030は、事前に設定したユーザ定義関数をMPU601で動作させるためのスタックデータも保持する。The
The
再構成デバイス603は、記憶素子6030に書き込まれた回路情報の示す回路を構成する。また、再構成デバイス603は、バスアクセス装置605を制御することにより、共有メモリ607にアクセスする。これは、記憶素子6030では保持できないサイズの処理対象のデータ、処理途中のデータ、処理結果のデータを共有メモリ607で保持させるためである。また、再構成デバイス603は、記憶素子6030に書き込まれた回路情報に従って、割込信号を発生させる。
The
具体的には、MPU601に、オペレーティングシステム上で動作する実行プログラムを実行させる場合に、割込信号を割込コントローラ602に出力する。これによって、上述したように、MPU601が実行プログラムを実行する。言い換えると、この割込信号は、演算処理装置601に対して実行プログラムの実行を要求する信号となる。
Specifically, when causing the
読出装置604は、MPU601の制御に従って、再構成デバイス603とMPU601との間で授受するスタックデータを再構成デバイス603の記憶素子6030から読出す。具体的には、読出装置604は、記憶素子6030からMPU601が要求したスタックデータを取得して、取得したスタックデータをMPU601に出力する。
The
バスアクセス装置605は、再構成デバイス603の制御に従って、バスライン613を介して共有メモリ607にアクセスする。具体的には、バスアクセス装置605は、再構成デバイス603から出力されたデータを共有メモリ607に格納する。また、バスアクセス装置605は、共有メモリ607から再構成デバイス603が要求したデータを取得して、取得したデータを再構成デバイス603に出力する。
The
書込装置606は、MPU601の制御に従って、回路情報を再構成デバイス603の記憶素子6030に書き込む。また、書込装置606は、回路情報のほか、再構成デバイス603とMPU601との間で授受するスタックデータを再構成デバイス603の記憶素子6030に書き込む。具体的には、書込装置606は、MPU601から出力されたデータを記憶素子6030に書き込む。
The
入出力インタフェース608は、MPU601と、入力装置610及び出力装置611との間のデータの入出力を制御する。
ネットワークインタフェース609は、MPU601とネットワーク612との間のデータの送受信を制御する。
入力装置610は、例えば、キーボードやマウス等である。
出力装置611は、例えば、ディスプレイである。The input /
The
The
The
以上に説明した構成によって、再構成デバイス603が、演算処理装置601に対して実行プログラムの実行を要求する信号を出力することで、演算処理装置601にオペレーティングシステム上で動作する実行プログラムを実行させることができるようにしている。つまり、再構成デバイス603は、実行プログラムの実行を介して、オペレーティングシステムが提供する機能を利用することができる。
With the configuration described above, the
次に、図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
図4は、プログラム設計支援システム1の一構成例を示すブロック図である。図4を参照すると、プログラム設計支援システム1は、プログラム生成装置10と、コンパイル装置14と、動作合成装置18とを有する。
プログラム生成装置10は、関数抽出装置101と、サーバプログラム生成装置104と、クライアントライブラリ生成装置105とを有する。FIG. 4 is a block diagram illustrating a configuration example of the program
The
ターゲットシステム情報12は、MPU601の内部構成と、アドレスマップ情報と、再構成デバイス603内の演算器の数及び種類と、相互接続部の構造と、記憶素子6030の数や種類と、バスアドレスのマップと、スタックデータ領域の構成等を示す情報である。アドレスマップ情報は、バスライン613に接続されている割込コントローラ602、共有メモリ607、入出力インタフェース608及びネットワークインタフェース609等のアドレスマップを示す。バスアドレスのマップは、記憶素子6030にバスライン613から書込装置606又は読出装置604を介してアクセスするためのものである。スタックデータ領域は、ターゲットシステム6のMPU601と再構成デバイス603とで授受するスタックデータが格納される。また、スタックデータ領域の構成とは、スタックデータが格納される再構成デバイス603の記憶素子6030の位置や、この記憶素子6030に書込装置606や読出装置604を介してアクセスするためのバスアドレスである。
The
関数抽出装置101には、ユーザ定義関数プログラム11が入力される。ユーザ定義関数プログラム11は、図3におけるMPU601で実行する関数が記述されている。また、ユーザ定義関数プログラム11は、再構成デバイス603が演算処理装置601に実行させる処理が記述されている。このユーザ定義関数プログラム11は、例えば、C言語、C++言語、あるいはjava言語等のプログラミング言語で記述されたソースプログラムである。このユーザ定義関数プログラム11の記載内容の具体例については、図6で後述する。
A user-defined
関数抽出装置101は、ユーザ定義関数プログラム11から、プログラミング言語仕様に従って関数を抽出して関数リスト103を出力する。関数抽出装置101は、生成した関数リスト103を、サーバプログラム生成装置104及びクライアントライブラリ生成装置105にそれぞれ送信する。
関数リスト103は、関数抽出装置101で抽出した関数に固有の番号を割り当てたリストである。ここで、固有の番号は、例えば、関数抽出装置101が、抽出した関数毎に一意となるように生成された番号である。関数リスト103の記載内容の具体例については、図7で後述する。The
The
サーバプログラム生成装置104には、ユーザ定義関数プログラム11、関数リスト103、およびターゲットシステム情報12が入力される。サーバプログラム生成装置104は、ターゲットシステム情報12に基づいて、ユーザ定義関数プログラム11と関数リスト103から、サーバプログラム13を生成し、コンパイル装置14に送信する。
The server
ここで、サーバプログラム13は、ユーザ定義関数プログラム11の個々のユーザ定義関数を呼び出すための割込みハンドラで構成される。割込みハンドラは、クライアントライブラリ16で設定されたスタックデータをユーザ定義関数の引数に変換してから個々のユーザ定義関数を呼び出す。サーバプログラム13の具体例については、図9で後述する。サーバプログラム13は、後述する図9に例示するような、ソースプログラムとなる。
Here, the
クライアントライブラリ生成装置105には、ユーザ定義関数プログラム11、関数リスト103、およびターゲットシステム情報12が入力される。
クライアントライブラリ生成装置105は、ターゲットシステム情報12に基づいて、ユーザ定義関数プログラム11と関数リスト103から、クライアントライブラリ16を生成し、動作合成装置18に送信する。The user-defined
Based on the
ここで、クライアントライブラリ16は、クライアント関数を含む。クライアント関数は、ユーザ定義関数プログラム11の個々の関数の引数をスタックデータに変換し、MPU601に対して実行プログラムの実行を要求し、MPU601からの実行結果の通知を待つ。クライアントライブラリ16の具体例については、図8で後述する。
Here, the
コンパイル装置14は、サーバプログラム13をターゲットシステム6のMPU601で実行可能な形式(実行バイナリ15)に変換する。この実行バイナリ15が、MPU601において、オペレーティングシステム上で実行される実行プログラムとなる。
動作合成装置18は、ターゲットシステム情報12と、クライアントライブラリ16と、動作レベル記述17から、動作合成、論理合成、および配置配線を行い、再構成デバイス603の回路の構成、配置、配線を示す回路情報19を生成する。動作レベル記述17の具体例については、図14で後述する。動作レベル記述17には、クライアントライブラリ16を呼び出す記述が含まれる。
また、動作合成装置18は、ターゲットシステム情報12に含まれるスタックデータ領域の構成から、クライアントライブラリ16で指定されたスタックデータ領域の配置場所を決定して、回路情報19を生成する。The compiling
The
Further, the
上述したように、プログラム設計支援システム1には、ユーザ定義関数プログラム11、ターゲットシステム情報12、および動作レベル記述17が入力される。プログラム設計支援システム1内部で、ユーザ定義関数プログラム11、関数リスト103、サーバプログラム13、およびクライアントライブラリ16が送受信される。そして、プログラム設計支援システム1は、実行バイナリ15、および回路情報19を出力する。
これらの入出力または送受信される情報は、所定の記憶装置(不図示)に格納される。この記憶装置は、プログラム設計支援システム1内部の各装置に設けられていてもよいし、外部に独立して設けられていてもよい。この記憶装置は、例えば、後述するデータ蓄積装置203である。As described above, the user-defined
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
次に、図4に示したプログラム生成装置10の構成例を説明する。
図5は、プログラム生成装置10の一構成例を示すブロック図である。図5を参照すると、プログラム生成装置10は、CPU200と、主記憶装置201と、記録媒体202と、データ蓄積装置203と、主記憶制御インタフェース部204と、記憶媒体制御インタフェース部205と、データ蓄積制御インタフェース部206と、バス2000と、入力制御インタフェース部207と、出力制御インタフェース部208と、ネットワーク制御インタフェース部209と、を有する。 Next, a configuration example of the
FIG. 5 is a block diagram illustrating a configuration example of the
プログラム生成装置10は、CPU200が実行するプログラムに従って、関数抽出、サーバプログラム生成、クライアントライブラリ生成の処理をそれぞれ実行する。
The
入力装置30は、コマンド、ユーザ定義関数プログラム11、およびターゲットシステム情報12をプログラム生成装置10に入力する。例えば、入力装置30によってユーザ定期関数プログラム11及びターゲットシステム情報12が入力された場合、CPU200は、入力されたユーザ定期関数プログラム11及びターゲットシステム情報12をデータ蓄積装置203に格納する。
出力装置40は、サーバプログラム13、クライアントライブラリ16、および回路情報19などの処理結果を出力する。 The
The
ネットワーク装置50は、例えば、ハブやルータ等である。プログラム生成装置10は、ネットワーク装置50を介して、ネットワークと接続される。ネットワーク上の情報処理装置(図示せず)にユーザ定義関数プログラム11及びターゲットシステム情報12を格納しておき、CPU200がこの情報処理装置からユーザ定義関数プログラム11及びターゲットシステム情報12を取得して、取得したユーザ定義関数プログラム11及びターゲットシステム情報12をデータ蓄積装置203に格納するようにしてもよい。
The
CPU200は、記録媒体202に記録されたプログラムを実行する。
主記憶装置201は、CPU200の処理に必要な情報を一時的に保持する。
記録媒体202は、磁気ディスク、半導体メモリ、光ディスクなどの記録媒体である。記録媒体202は、CPU200にプログラム生成装置10としての処理を実行させるためのプログラムが記録される。
The
The
データ蓄積装置203には、ユーザ定義関数プログラム11、ターゲットシステム情報12、関数リスト103、サーバプログラム13、およびクライアントライブラリ16などが格納される。データ蓄積装置203には、実行バイナリ15及び回路情報19を格納するようにしてもよい。データ蓄積装置203は、磁気ディスク、半導体メモリ、および光ディスクなどの記録媒体である。このデータ蓄積装置203は、その一部又は全部をプログラム生成装置10内部でなく、外部に独立して設けられていてもよい。例えば、データ蓄積装置203の一部又は全部をプログラム生成装置10の外部のストレージや、情報処理装置に設けてもよい。情報処理装置は、例えば、PC(Personal computer)やサーバ等である。
The
主記憶制御インタフェース部204は主記憶装置201に接続される。
記憶媒体制御インタフェース部205は記録媒体202に接続される。
データ蓄積制御インタフェース部206はデータ蓄積装置203に接続される。
入力制御インタフェース部207は入力装置30と接続される。
出力制御インタフェース部208は出力装置40と接続される。
ネットワーク制御インタフェース部209はネットワーク装置50と接続される。
各インタフェース部204〜209は、これらの装置200〜203、30〜50及びバス2000の間のデータ転送を制御する。The main memory
The storage medium
The data storage
The input
The output
The network
Each
バス2000には、CPU200と、主記憶制御インタフェース部204と、記憶媒体制御インタフェース部205と、データ蓄積制御インタフェース部206と、入力制御インタフェース部207と、出力制御インタフェース部208と、ネットワーク制御インタフェース部209と、が接続される。
The bus 2000 includes a
なお、図4に示した関数抽出装置101、サーバプログラム生成装置104およびクライアントライブラリ生成装置105のそれぞれが図5に示すハードウェア構成であってもよい。この場合、それぞれの装置の機能に対応して処理対象のデータや実行するプログラムが装置毎に異なっている。
また、処理対象のデータや実行するプログラムが異なることを除いて、図4に示したコンパイル装置14および動作合成装置18のそれぞれは、図5のブロック図に示す構成と同様であるため、コンパイル装置14および動作合成装置18の構成についての詳細な説明を省略する。Note that each of the
Further, the compiling
図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
This figure illustrates the case where two functions P100 and P101 are described in the C language in the user-defined
The
図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
ここで、スタックデータとは、ターゲットシステム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
以下、クライアントライブラリ16に含まれるクライアント関数P201、P205、P209の処理について説明する。実際は、以下に説明する処理は、再構成デバイス603によって実行される。
Hereinafter, processing of the client functions P201, P205, and P209 included in the
クライアント関数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
また、クライアント関数の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
図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
Hereinafter, the process of the function P301 included in the
サーバプログラムの割込みハンドラ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
例えば、関数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
一方、関数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
After executing the func1 function or func2 function of the user-defined
なお、MPU601からスタックデータにアクセスする場合は、スタックデータを形成している記憶素子6030のバスアドレスが必要である。バスアドレスは、MPU601などから書込装置606又は読出装置604を介して記憶素子6030にアクセスするためのアドレスとなる。これらの情報はターゲットシステム情報12に格納されている。よって、スタックデータにアクセスする関数ReadReconfigArea()及びWriteReconfigArea()は、例えば、ターゲットシステム情報12に基づいて、記憶素子6030のバスアドレスにアクセスするようにサーバプログラム生成装置104によって生成される。
Note that when the stack data is accessed from the
図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
図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
The stack data area in which the stack data illustrated in FIG. 10 is stored is formed in the
また、図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
図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
例えば、引数及び戻り値をクライアントライブラリ16側で圧縮してスタックデータに設定し、サーバプログラム13側でスタックデータから引数及び戻り値を展開してもよい。この場合、スタックデータの構成に必要な再構成デバイス603の記憶素子数は少なくてすむ。
このような圧縮及び展開部はクライアントライブラリ16及びサーバプログラム13として生成しても良いし、専用ハードウェア、又は専用ハードウェアと同等の機能を提供するソフトウェアサブルーチンをクライアントライブラリ16やサーバプログラム13から呼び出すようにしても良い。For example, the argument and return value may be compressed on the
Such a compression / decompression unit may be generated as the
次に、図13を参照して、プログラム設計支援システム1の動作について説明する。図13は、プログラム設計支援システム1の動作を示すシーケンス図である。
Next, the operation of the program
関数抽出装置101は、データ蓄積装置203からユーザ定義関数プログラム11を取得する。関数抽出装置101は、ユーザ定義関数プログラム11から、関数を抽出して、個別のIDと対応させた関数リスト103を生成する(ステップS11)。関数抽出装置101は、生成した関数リスト103をデータ蓄積装置203に格納する。なお、関数抽出装置101は、生成した関数リスト103を直接サーバプログラム生成装置104及びクライアントライブラリ生成装置105に出力するようにしてもよい。
The
サーバプログラム生成装置104は、データ蓄積装置203からユーザ定義関数プログラム、関数リスト103及びターゲットシステム情報12を取得する。サーバプログラム生成装置104は、ユーザ定義関数プログラム11と関数リスト103から、ターゲットシステム情報12に基づいて、サーバプログラム13を生成する(ステップS12)。サーバプログラム生成装置104は、生成したサーバプログラム13をデータ蓄積装置203に格納する。なお、サーバプログラム生成装置104は、生成したサーバプログラム13を直接コンパイル装置14に出力するようにしてもよい。
The server
クライアントライブラリ生成装置105は、データ蓄積装置203からユーザ定義関数プログラム11、関数リスト103及びターゲットシステム情報12を取得する。クライアントライブラリ生成装置105は、ユーザ定義関数プログラム11と関数リスト103から、ターゲットシステム情報12に基づいて、クライアントライブラリ16を生成する(ステップS13)。クライアントライブラリ生成装置105は、生成したクライアントライブラリ16をデータ蓄積装置203に格納する。なお、クライアントライブラリ生成装置105は、生成したクライアントライブラリ16を直接動作合成装置18に出力するようにしてもよい。
The client
コンパイル装置14は、ユーザ定義関数プログラム11及びサーバプログラム13をデータ蓄積装置203から取得する。コンパイル装置14は、ユーザ定義関数プログラム11及びサーバプログラム13をコンパイルして、実行バイナリ15を生成する(ステップS14)。
動作合成装置18は、データ蓄積装置203からクライアントライブラリ16、動作レベル記述17及びターゲットシステム情報12を取得する。動作レベル記述17には、クライアントライブラリ16を呼び出す記述が記載されている。動作合成装置18は、クライアントライブラリ16と、動作レベル記述17と、ターゲットシステム情報12から回路情報19を生成する(ステップS15)。The compiling
The
図14は、動作レベル記述17の一例である。図14に示すように、動作レベル記述17では、クライアントライブラリ16のクライアント関数を実行するように記述されている。クライアント関数は、ユーザ定義関数プログラム11のユーザ定義関数と同じインタフェースを持つ。
以下、動作レベル記述17に含まれるメイン関数P400の処理について説明する。実際は、以下に説明する処理は、再構成デバイス603によって実行される。FIG. 14 is an example of the
Hereinafter, processing of the main function P400 included in the
メイン関数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
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
次に、図15〜図18を参照して、ターゲットシステム6の動作について説明する。
図15は、MPU601と再構成デバイス603の動作を示すフローチャートである。この動作は、実行バイナリ15がMPU601により実行可能な状態であり、再構成デバイス603に回路情報19が書き込まれた時に開始される。なお、実際のユーザ定義関数の動作は再構成デバイス603から起動される割込みハンドラから実行されることになる。Next, the operation of the
FIG. 15 is a flowchart showing operations of the
再構成デバイス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
Next, the
次に、再構成デバイス603は、スタックデータの制御情報を初期化する(ステップS212)。この処理は、図8のP202に対応し、図8では、制御情報の値を0に初期化している。
次に、再構成デバイス603は、MPU601への割込みを生成する(ステップS213)。この処理は、図8のS203に対応する。
この時、図14のP401の処理を実行した場合のスタックデータの内容は図16Aのようになる。同様に、P402の処理を実行した場合のスタックデータの内容は図17Aのようになる。Next, the
Next, the
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
次に、MPU601は、MPU601への割込みをクリアする(ステップS202)。この処理は、図9のP302に対応する。
次に、MPU601は、スタックデータから関数IDを読出す(ステップS203)。この処理は、図9のP303に対応する。
次に、MPU601は、実行するユーザ定義関数を選択する(ステップS204)。この処理は、図9のP304に対応する。例えば、スタックデータから読出した関数IDが1の場合は、P305以降のプログラムが実行される。Next, the
Next, the
Next, the
次に、MPU601は、スタックデータからユーザ定義関数で必要とする引数を読出す(ステップS205)。この処理は、図9のP306あるいはP310に対応する。
次に、MPU601は、スタックデータから読出した引数を用いて、ユーザ定義関数(P100あるいはP101)を実行する(ステップS206)。この処理は、図9のP307あるいはP311に対応する。Next, the
Next, the
この時、図14のP402の処理を実行した場合には、MPU601は、入出力インタフェース608を介して、実行結果を出力装置611に出力する。例えば、実行結果は、図18に示すように出力される。
次に、MPU601は、実行したユーザ定義関数の戻り値及び戻り引数をスタックデータに書き込む(ステップS207)。この処理は、図9のP308に対応する。At this time, when the process of P402 in FIG. 14 is executed, the
Next, the
次に、MPU601は、スタックデータの制御情報を更新する(ステップS208)。この処理は、図9のP312に対応し、図9では、制御情報の値を1に更新している。
この時、図14のP401の処理を実行した場合のスタックデータの内容は図16Bのようになる。同様に、P402の処理を実行した場合のスタックデータの内容は図17Bのようになる。Next, the
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
On the other hand, the
ステップS208で制御情報が変更されると、再構成デバイス603は動作を継続し、スタックデータから戻り値及び戻り引数を読出して、ユーザ定義関数の戻り値及び戻り引数に設定する。この処理は、図8のP208に対応する。そして、再構成デバイス603は、ユーザ定義関数処理を終了して呼び出し元の処理に戻る(ステップS215)。
When the control information is changed in step S208, the
以上説明したように、本実施形態によれば、情報処理装置において、再構成デバイス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
ここで、背景技術として説明したように、再構成デバイスには、様々な処理を実装するようになってきている。このようなことから、再構成デバイスからも、オペレーティングシステムが提供するシステムコールのような共通化された資源を利用することができれば、再構成デバイスにおける処理内容の設計における利便性を向上することができる。しかしながら、特許文献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
ここで、再構成デバイス603からバスアクセス装置605を介して共有メモリ607を使用するときには、MPU601が使用しており、再構成デバイス603からアクセスしてはいけない領域を避けて使用する必要がある。したがって、その領域以外にアクセスするようにするための余分な制御が必要となってしまうという問題がある。それに対して、本実施の形態によれば、上述したように、再構成デバイス603から共有メモリ607に対するアクセスをするためのシステムコールを、演算処理装置601を介して実行することができる。これによって、再構成デバイス603から、MPU601で実行されるオペレーティングシステムの管理下において共有メモリ607にアクセスすることができる。そのため、再構成デバイス603は、共有メモリ607にアクセスする際に、余分な制御をする必要がなくなる。
Here, when the shared
以上、実施の形態を参照して本願発明を説明したが、本願発明は上記によって限定されるものではない。本願発明の構成や詳細には、発明のスコープ内で当業者が理解し得る様々な変更をすることができる。 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
また、プログラム生成装置10内の関数抽出装置101、サーバプログラム生成装置104、クライアントライブラリ生成装置105の少なくとも1つ以上を、プログラム生成装置10の外部に設ける構成としてもよい。
また、MPU601と再構成デバイス603との間で、共有メモリ607を介して、関数ID、制御情報、引数、戻り値、及び戻り引数等のターゲットデータを受け渡すようにしてもよい。In addition, at least one of the
Further, target data such as a function ID, control information, an argument, a return value, and a return argument may be passed between the
以上に説明した本発明にかかるプログラム設計支援システム1は、上述の実施の形態の機能を実現するプログラムを記憶した記憶媒体をコンピュータに供給し、コンピュータ又はコンピュータが有するCPU又はMPUがこのプログラムを実行することによって、構成することが可能である。
The program
また、このプログラム及び実行バイナリ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
一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。 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
(付記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
(付記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
(付記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
(付記8)前記記憶部は、前記再構成デバイスが有する記憶素子である付記5に記載の情報処理装置。
(Supplementary note 8) The information processing apparatus according to
(付記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
(付記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
7
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
40 Output device
50
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のソースプログラムに基づいて、演算処理装置によって実行される実行プログラムの生成に用いられ、前記再構成デバイスから出力された実行要求信号に応じて前記演算処理装置に前記再構成デバイスから前記所定の処理において使用される処理情報を読み出させ、前記所定の処理を実行させる処理を含む第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のソースプログラムに基づいて、前記複数の関数のそれぞれについて、前記関数と、当該関数を特定する関数特定情報とを対応付けた関数対応情報を生成する関数対応情報生成手段をさらに備え、
前記ライブラリ生成手段は、前記関数対応情報に基づいて、前記関数を実行する場合に、当該関数を特定する関数特定情報を前記再構成デバイスに保持させる処理を前記ライブラリに含め、
前記ソースプログラム生成手段は、前記関数対応情報に基づいて、前記演算処理装置に前記再構成デバイスから前記関数特定情報を読み出させ、当該読み出した関数特定情報によって特定される関数を実行させる処理を前記第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.
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)
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 |
-
2011
- 2011-08-04 WO PCT/JP2011/004433 patent/WO2012035699A1/en active Application Filing
- 2011-08-04 JP JP2012533837A patent/JPWO2012035699A1/en active Pending
Patent Citations (7)
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 |