JP3877002B2 - Information processing system and information processing method - Google Patents

Information processing system and information processing method Download PDF

Info

Publication number
JP3877002B2
JP3877002B2 JP2006000413A JP2006000413A JP3877002B2 JP 3877002 B2 JP3877002 B2 JP 3877002B2 JP 2006000413 A JP2006000413 A JP 2006000413A JP 2006000413 A JP2006000413 A JP 2006000413A JP 3877002 B2 JP3877002 B2 JP 3877002B2
Authority
JP
Japan
Prior art keywords
processing
module
programmable logic
logic circuit
hardware module
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.)
Expired - Fee Related
Application number
JP2006000413A
Other languages
Japanese (ja)
Other versions
JP2006107532A (en
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.)
Fujifilm Business Innovation Corp
Original Assignee
Fuji Xerox Co Ltd
Fujifilm Business Innovation 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 Fuji Xerox Co Ltd, Fujifilm Business Innovation Corp filed Critical Fuji Xerox Co Ltd
Priority to JP2006000413A priority Critical patent/JP3877002B2/en
Publication of JP2006107532A publication Critical patent/JP2006107532A/en
Application granted granted Critical
Publication of JP3877002B2 publication Critical patent/JP3877002B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Stored Programmes (AREA)

Description

この発明は、少なくとも処理の一部分を、回路構成を再構成できるプログラマブル論理回路で処理することが可能である情報処理システムおよび情報処理方法に関するものであり、特に、プログラマブル論理回路の有効な活用方法に関するものである。  The present invention relates to an information processing system and information processing method capable of processing at least a part of processing by a programmable logic circuit whose circuit configuration can be reconfigured, and more particularly to an effective utilization method of a programmable logic circuit. Is.

デジタル回路装置、特に特定用途向け集積回路(ASIC)の分野において、製品の開発期間を短縮するために、フィールドプログラマブルゲートアレイ(FPGA)やプログラマブルロジックデバイス(PLD)などで構成されたプログラマブル論理回路が広く使われている。   In the field of digital circuit devices, particularly application-specific integrated circuits (ASICs), programmable logic circuits composed of field programmable gate arrays (FPGAs), programmable logic devices (PLDs), and the like have been developed in order to shorten product development periods. Widely used.

これらのプログラマブル論理回路は、論理回路を記述する回路情報をこれらに読み込ませることで、内部の論理回路と論理回路間の結線を自由に構成することができる。このため、プログラマブル論理回路装置を用いることで、従来は回路設計の終了後に数週間から数か月を必要とした集積回路の作製時間が不要になるというメリットがある。特に、特許文献1(米国特許第4,700,187号)の発明のような電気的に再構成可能なプログラマブル論理回路装置は、一度作製した回路を必要に応じて自由に何度でも変更できるという利点があり、プログラマブル論理回路装置は、ますます広く使われるようになってきている。   These programmable logic circuits can freely configure the connection between the internal logic circuit and the logic circuit by causing them to read circuit information describing the logic circuit. For this reason, the use of a programmable logic circuit device has an advantage that it does not require time for manufacturing an integrated circuit, which conventionally required several weeks to several months after the circuit design is completed. In particular, an electrically reconfigurable programmable logic circuit device such as the invention of Patent Document 1 (US Pat. No. 4,700,187) can freely change a circuit once produced as many times as necessary. Programmable logic circuit devices are becoming more and more widely used.

ところで、最近の論理回路は複雑さが増し、一つのプログラマブル論理回路装置では実現できない規模にまで回路規模が大きくなっている。   By the way, the complexity of recent logic circuits has increased, and the circuit scale has grown to a scale that cannot be realized with a single programmable logic circuit device.

この問題を解決するためのひとつの方法として、異なる時間に異なる論理回路を実現するためにプログラマブル論理回路を処理の途中で再構成することが提案されている。この方法を用いることにより、携帯情報端末のように、装置が小型であるため、内蔵できる回路規模に制約がある場合でも、様々な処理が比較的高速に行えるという利点がある。   As one method for solving this problem, it has been proposed to reconfigure a programmable logic circuit in the middle of processing in order to realize different logic circuits at different times. By using this method, since the apparatus is small like a portable information terminal, there is an advantage that various processes can be performed at a relatively high speed even when the circuit scale that can be incorporated is limited.

しかし、プログラマブル論理回路を再構成するときには、回路全体の回路情報を再度読み込ませるため、再構成に時間がかかるという欠点がある。さらに、処理の途中で再構成することは、処理を一時中断し、その時のデータをプログラマブル論理回路の外部の記憶装置に待避させ、新たな回路情報を読み込んで再構成し、再構成前のデータと再構成に伴う新しいデータを入力するという余分な処理が必要になる。   However, when the programmable logic circuit is reconfigured, the circuit information of the entire circuit is read again, so that there is a disadvantage that it takes time to reconfigure. Furthermore, reconfiguration in the middle of processing temporarily interrupts processing, saves the data at that time to a storage device outside the programmable logic circuit, reads new circuit information, reconfigures, and reconfigures the data before reconfiguration. And extra processing of inputting new data accompanying the reconstruction is required.

この問題を解決するために、米国アトメル社の「CONFIGURABLE LOGIC」という名のデータブックに記載されているプログラマブル論理回路、および米国ザイリンクス社の「THE PROGRAMMABLE LOGIC」という名のデータブックに記載されているプログラマブル論理回路では、データを記憶するためのデータ記憶装置を有し、回路の動作中でも外部の記憶装置から回路情報の一部を読み込んで部分的に再構成を行うことで、再構成するための時間を最小に留めるようにしている。   In order to solve this problem, it is described in a programmable logic circuit described in a data book named “CONFIGURABLE LOGIC” of Atmel in the United States, and in a data book named “THE PROGRAMMABLE LOGIC” in the United States of America. A programmable logic circuit has a data storage device for storing data. For reconfiguration by reading a part of circuit information from an external storage device and performing partial reconfiguration even during circuit operation I try to keep time to a minimum.

このようなプログラマブル論理回路を情報処理システムに用いるときの問題は、処理を、プログラマブル論理回路で行う処理と、マイクロプロセッサなどの回路構成を変更できない固定的な論理回路装置で行う処理とで、分離する技術が確立していないことである。   The problem with using such a programmable logic circuit in an information processing system is that the process is separated into a process performed by a programmable logic circuit and a process performed by a fixed logic circuit device such as a microprocessor that cannot change the circuit configuration. The technology to do is not established.

この問題を解決する方法のひとつとして、特許文献2(特開平6−301522号公報)に開示される計算機の例がある。これを、従来例1として、図33を参照しながら説明する。   As one of methods for solving this problem, there is an example of a computer disclosed in Patent Document 2 (Japanese Patent Laid-Open No. 6-301522). This will be described as Conventional Example 1 with reference to FIG.

すなわち、図33の従来例1においては、計算機で実行するソースプログラム1000は、回路構成を変更できない固定部と、プログラマブル論理回路のように回路構成を変更できる可変部とで構成される。ライブラリ1001には、固定部の構成に関する情報と、可変部が構成することができる回路の情報が格納されている。   That is, in the conventional example 1 of FIG. 33, the source program 1000 executed by the computer is composed of a fixed unit whose circuit configuration cannot be changed and a variable unit whose circuit configuration can be changed like a programmable logic circuit. The library 1001 stores information on the configuration of the fixed unit and information on circuits that can be configured by the variable unit.

コンパイラ1002は、ソースプログラム1000を解析し、ライブラリ1001を参照しながら、オブジェクトコードと、ハードウエア構成データに変換する。例えば、コンパイラ1002は、ソースプログラムのフロー解析を行い、関数の頻度を検出し、その検出した頻度に基づいて、呼び出し回数の多い関数をハードウエアで処理する関数として決定し、ハードウエア構成データ1003を作成し、出力する。   The compiler 1002 analyzes the source program 1000 and converts it into object code and hardware configuration data while referring to the library 1001. For example, the compiler 1002 analyzes the flow of the source program, detects the frequency of the function, determines a function with a large number of calls as a function to be processed by hardware based on the detected frequency, and sets the hardware configuration data 1003. Is created and output.

次に、コンパイラ1002は、ハードウエアで処理すると決めた部分を所定の可変部で処理することを示すコードを生成する。そして、このコードを、残りのソフトウエアで処理する部分に付加してオブジェクトコード1004を作成し、出力する。計算機1005は、固定部と、ハードウエア構成データにより構成された可変部とを用いて、オブジェクトコードに応じた処理を実行する。   Next, the compiler 1002 generates a code indicating that a portion determined to be processed by hardware is processed by a predetermined variable unit. Then, this code is added to the portion to be processed by the remaining software to create and output an object code 1004. The computer 1005 executes processing according to the object code using the fixed unit and the variable unit configured by the hardware configuration data.

このようにして、従来例1では、コンパイル時に呼び出し回数の多い関数をハードウエア化することにより処理全体の高速化を図っている。   In this way, in Conventional Example 1, the speed of the entire process is increased by implementing a function having a large number of calls at the time of compilation into hardware.

次に、前記問題を解決する従来例2として、特許文献3(特開平5−150943号公報)に開示されるコンピュータ装置の場合を説明する。この従来例2においては、プログラマブル論理回路で行う処理と、固定的な論理回路装置で行う処理とに分離された処理を、アプリケーションプログラムとして、情報処理システムとしてのコンピュータ装置で実行する。   Next, a case of a computer device disclosed in Patent Document 3 (Japanese Patent Laid-Open No. 5-150943) will be described as Conventional Example 2 for solving the above problem. In this conventional example 2, the processing separated into the processing performed by the programmable logic circuit and the processing performed by the fixed logic circuit device is executed as the application program by the computer device as the information processing system.

この従来例2のコンピュータ装置は、CPU、メモリ、プログラマブル論理回路、ハードディスクなどの外部記憶装置、およびその他の入出力インターフェースで構成される。   The computer device of Conventional Example 2 includes a CPU, a memory, a programmable logic circuit, an external storage device such as a hard disk, and other input / output interfaces.

外部記憶装置には、プログラマブル論理回路の回路データと、アプリケーションプログラムが記憶してある。メモリには、外部記憶装置からアプリケーションプログラムをロードするイニシャルローディングプログラムが記憶してある。   The external storage device stores circuit data of the programmable logic circuit and an application program. The memory stores an initial loading program for loading an application program from an external storage device.

CPUは、これらのプログラムを実行するとともに、プログラマブル論理回路に回路データを書き込む。プログラマブル論理回路は、CPUのバスラインに接続され、バスライン上の信号を入力し、論理処理を施してバスラインへ信号を返す。この従来例2における処理手順を、図34に示す。   The CPU executes these programs and writes circuit data to the programmable logic circuit. The programmable logic circuit is connected to the bus line of the CPU, receives a signal on the bus line, performs logic processing, and returns the signal to the bus line. The processing procedure in the conventional example 2 is shown in FIG.

まず、実行すべきプログラムファイルを指定する(ステップS1)。次に、指定したプログラムファイルに回路データが含まれるか否か判別し(ステップS2)、含まれる場合は、回路データ書き込みプログラムをロードして実行し(ステップS3)、続いて回路データをロードして(ステップS4)、その回路データをプログラマブル論理回路に書き込む(ステップS5)。その後、アプリケーションプログラムをロードし(ステップS6)、実行する(ステップS7)。   First, a program file to be executed is designated (step S1). Next, it is determined whether or not circuit data is included in the designated program file (step S2). If included, the circuit data writing program is loaded and executed (step S3), and then the circuit data is loaded. (Step S4), the circuit data is written in the programmable logic circuit (Step S5). Thereafter, the application program is loaded (step S6) and executed (step S7).

指定したプログラムファイルに回路データが含まれていない場合には、ステップS2からステップS6に飛び、そのまま、アプリケーションプログラムをロードし、実行する。   If the designated program file does not include circuit data, the process jumps from step S2 to step S6, and the application program is loaded and executed as it is.

以上のように、この従来例2の場合、プログラマブル論理回路上の機能を用いる命令実行時に、回路が所定の論理処理を行う。これにより、アプリケーションごとに特殊なハードウエアを設けることなく、必要に応じた論理回路を構成して処理の高速化を図ることができる。   As described above, in the case of Conventional Example 2, the circuit performs a predetermined logic process when executing an instruction using a function on the programmable logic circuit. Thereby, without providing special hardware for each application, it is possible to configure a logic circuit as necessary to increase the processing speed.

以上に述べた処理の一部分をプログラマブル論理回路で処理する情報処理システムは、ネットワークに接続して利用することができる。その場合の例のひとつとして、特許文献4(特開平9−74556号公報)に開示される画像再生装置を、従来例3として次に示す。   An information processing system that processes a part of the processing described above with a programmable logic circuit can be used by being connected to a network. As one example of such a case, an image reproducing device disclosed in Patent Document 4 (Japanese Patent Laid-Open No. 9-74556) is shown as Conventional Example 3 below.

図35に示すように、この従来例3の画像再生装置は、処理系を再構成することが可能な動画像復号部1100と、動画像復号部1100を再構成するためのプログラムと符号化された動画像データとをネットワークNTからダウンロードするための受信部1200と、受信データがプログラムか動画像データかによって伝送先を切り換える切り換え手段1300と、該プログラムを動画像復号部1100の構成に変更できる形式に変換するプログラム変換部1400と、受信部1200と切り換え手段1300とプログラム変換部1400と動画像復号部1100の制御を行うための制御部1500とからなる。   As shown in FIG. 35, the image reproducing apparatus of Conventional Example 3 is encoded with a moving image decoding unit 1100 capable of reconfiguring the processing system, and a program for reconfiguring the moving image decoding unit 1100. The receiving unit 1200 for downloading the moving image data from the network NT, switching means 1300 for switching the transmission destination depending on whether the received data is a program or moving image data, and the program can be changed to the configuration of the moving image decoding unit 1100. It comprises a program conversion unit 1400 for converting into a format, a receiving unit 1200, a switching unit 1300, a program conversion unit 1400, and a control unit 1500 for controlling the moving image decoding unit 1100.

動画像復号部1100は、量子化された画像データを逆量子化するものであってその逆量子化処理内容を変更できる逆量子化部1101と、変換された画像データを逆変換するものであってその逆変換処理内容を変更できる逆変換部1102とを備える。   The moving image decoding unit 1100 performs inverse quantization on the quantized image data and can change the inverse quantization processing content, and inverse transforms the converted image data. And an inverse transformation unit 1102 that can change the content of the inverse transformation process.

プログラム変換部1400は、前記プログラムを、動画像復号部1100の構成を変更できる形式に変換する第1プログラム部分(ハードウエア処理部分)と、動画像再生時において制御部1500が行う第2プログラム部分(ソフトウエア処理部分)とに分割する分割部1401と、第1プログラム部分を動画像復号部1100の構成を変更できる形式に変換する第1の変換部(ハードウエアコンパイラ)1402と、第2プログラム部分を制御部1500が解読して処理を実行できる形式に変換する第2の変換部(ソフトウエアコンパイラ)1403とを備える。   The program conversion unit 1400 includes a first program part (hardware processing part) that converts the program into a format that can change the configuration of the moving picture decoding unit 1100, and a second program part that is executed by the control unit 1500 during moving picture reproduction. A dividing unit 1401 that divides (software processing part), a first conversion unit (hardware compiler) 1402 that converts the first program part into a format that can change the configuration of the moving picture decoding unit 1100, and a second program A second conversion unit (software compiler) 1403 that converts the part into a format in which the control unit 1500 can decode and execute the processing.

この画像再生装置は、ネットワークNTから、動画像再生用のプログラムと符号化された動画像データとを受信し、次にように動作する。   This image reproduction apparatus receives a moving image reproduction program and encoded moving image data from the network NT, and operates as follows.

まず、論理記述言語で記述された再生アルゴリズムプログラムを受信部1200で受信する。受信データは、伝送切り換え手段1300を通じてプログラム変換部1400に伝送され、分割部1401でハードウエア処理部分とソフトウエア処理部分とに分割される。   First, the reproduction algorithm program described in the logical description language is received by the receiving unit 1200. The received data is transmitted to the program conversion unit 1400 through the transmission switching unit 1300, and is divided into a hardware processing part and a software processing part by the dividing unit 1401.

ハードウエア処理部分は、第1の変換部1402に渡され、プログラマブル論理回路(FPGA)を書き換えることができる形式(ビットストリーム)に変換され、逆量子化部1101と逆変換部1102とを制御部1500からの制御によって書き換える。また、ソフトウエア処理部分は、第2の変換部1403に渡され、プロセッサで処理できる形式に変換された後、制御部1500に渡される。   The hardware processing part is transferred to the first conversion unit 1402 and converted into a format (bit stream) that can rewrite the programmable logic circuit (FPGA), and the inverse quantization unit 1101 and the inverse conversion unit 1102 are controlled by the control unit. Rewriting is performed under control from 1500. Further, the software processing part is transferred to the second conversion unit 1403, converted into a format that can be processed by the processor, and then transferred to the control unit 1500.

このように構成された図35の画像再生装置に、ネットワークNTから動画像データが送られると、受信部1200で受信し、切り換え手段1300によって動画像復号部1100に伝送され、復号データとして出力される。逆量子化部1101と逆変換部1102とを、回路構成が変更可能な素子で構成することにより、異なるアルゴリズムによって再生される画像データにも対応することができる。   35, when moving image data is sent from the network NT to the image reproduction apparatus of FIG. 35 configured as described above, the receiving unit 1200 receives the moving image data, and the switching unit 1300 transmits the moving image data to the moving image decoding unit 1100, which outputs the decoded data. The By configuring the inverse quantization unit 1101 and the inverse transform unit 1102 with elements whose circuit configurations can be changed, it is possible to cope with image data reproduced by different algorithms.

以上、従来例1から従来例3で示した例では、プログラマブル論理回路でハードウエア処理される部分と、マイクロプロセッサなどでソフトウエア処理される部分とが固定的に決められているが、ハードウエア処理をソフトウエア処理で置き換える例を、従来例4として次に説明する。   As described above, in the examples shown in Conventional Example 1 to Conventional Example 3, the part that is hardware-processed by the programmable logic circuit and the part that is software-processed by a microprocessor or the like are fixedly determined. An example in which the processing is replaced with software processing will be described below as Conventional Example 4.

非特許文献1(「Proceedings IEEE Symposium on FPGAs for Custom Computing Machines(1996)の195ページから203ページ」)に記載されている「Supporting FPGA Microprocessors through Retargetable Software Tools」には、動作中に書換え可能なプログラマブル論理回路を、プロセッサとして使用する技術(DISC)で用いられるプログラムのデバッグ方法が記述されている。  “Supporting FPGA Microprocessors through Retargetable Software Tools” described in Non-Patent Document 1 (“Proceedings IEEE Symposium on FPGAs for Custom Computing Machines (1996), pages 195 to 203”) is programmable that can be rewritten during operation. A program debugging method used in a technique (DISC) that uses a logic circuit as a processor is described.

この従来例4の論文では、ソフトウエアのデバッグを短時間で行うために、ハードウエアで処理するルーチンを、デバック時にソフトウエアで行うことが示されている。これは、プログラム実行時には繰り返し処理されるルーチンも、デバッグ時は1回処理するのみでよいので、回路規模の大きなハードウエアモジュールを、プログラマブル論理回路に処理時間よりも長い時間をかけて再構成して実行するよりも、ソフトウエアで実行してデバックする方が効率がよいためである。デバック時にどちらで処理するかはデバッグ用のプログラムで指示する。   This paper of Conventional Example 4 shows that a routine for processing by hardware is performed by software at the time of debugging in order to debug software in a short time. This is because routines that are repeatedly processed during program execution need only be processed once during debugging, so a hardware module with a large circuit scale is reconfigured in a programmable logic circuit over a longer time than the processing time. This is because it is more efficient to execute the debugging by software than to execute it. The debugging program indicates which processing is to be performed during debugging.

上記の先行技術文献は、次の通りである。
米国特許第4,700,187号 特開平6−301522号公報 特開平5−150943号公報 特開平9−74556号公報 Proceedings IEEE Symposium on FPGAs for Custom Computing Machines(1996)の195ページから203ページ
The above prior art documents are as follows.
US Pat. No. 4,700,187 JP-A-6-301522 Japanese Patent Laid-Open No. 5-150943 JP 9-74556 A Proceedings IEEE Symposium on FPGAs for Custom Computing Machines (1996), pages 195 to 203

しかしながら、以上説明した、処理の一部分をプログラマブル論理回路で処理する情報処理システムに関する従来例1〜4は、次のような問題がある。   However, the conventional examples 1 to 4 related to the information processing system for processing a part of the processing with the programmable logic circuit described above have the following problems.

従来例1では、プログラマブル論理回路で実行する処理は、ひとつのプログラム内で、呼び出し回数の多い関数というように一元的に決めている。このため、情報処理システムが複数のプログラムを用いて複数の処理を一連の処理として一度に行うときには、プログラマブル論理回路を用いた処理を効率的に利用できない欠点がある。   In Conventional Example 1, the processing executed by the programmable logic circuit is determined in a unified manner such as a function having a large number of calls in one program. For this reason, when the information processing system performs a plurality of processes as a series of processes at once using a plurality of programs, there is a disadvantage that the process using the programmable logic circuit cannot be efficiently used.

例えば、ひとつのプログラム内での呼び出し回数は少ないが、一連の処理として順次に実行される処理全体で共通に数多く呼び出される関数が存在する場合には、プログラマブル論理回路で処理を実行した方が効率的に良い。しかし、従来例1では、一つのプログラム内で呼び出し回数の少ない当該関数の処理をプログラマブル論理回路で実行するようには決定することができない。   For example, if the number of calls in one program is small, but there are functions that are commonly called in the entire process that is executed sequentially as a series of processes, it is more efficient to execute the process with a programmable logic circuit. Good. However, in Conventional Example 1, it is not possible to determine that the processing of the function with a small number of calls in one program is executed by the programmable logic circuit.

また、関数によっては、対応する回路情報のサイズが大きいため、プログラマブル論理回路に、回路情報を再構成する時間が長くかかり、たとえ呼び出し回数が多くともソフトウエア処理のほうが処理時間が短い場合もあるが、従来例1では、そのような関数処理であっても、呼び出し回数が多いことからプログラマブル論理回路による処理と決定してしまうことになる。   Also, depending on the function, the size of the corresponding circuit information is large, so it takes a long time to reconfigure the circuit information in the programmable logic circuit. Even if the number of calls is large, the software processing may be shorter in processing time. However, in Conventional Example 1, even such function processing is determined as processing by a programmable logic circuit because the number of calls is large.

また、従来例2では、アプリケーション毎にハードウエアで処理する部分が予め定められ、そのハードウエアでの処理部分を、プログラム開始前にプログラマブル論理回路に実装している。このため、ハードウエア処理を必要としないソフトウエア処理も回路構成が終了するまで開始されないという問題がある。   In Conventional Example 2, a part to be processed by hardware is predetermined for each application, and the part to be processed by hardware is mounted on a programmable logic circuit before starting a program. For this reason, there is a problem that software processing that does not require hardware processing is not started until the circuit configuration is completed.

特に、回路データのサイズが大きいためプログラマブル論理回路への書き込み時間が長いときには、ハードウエア処理よりも処理速度の遅いソフトウエアで処理したほうが、全体の処理時間が短い場合もある。   In particular, when the writing time to the programmable logic circuit is long due to the large size of the circuit data, the entire processing time may be shorter when the processing is performed by software having a processing speed slower than the hardware processing.

すなわち、従来例2の場合には、個々のハードウエア処理とソフトウエア処理の処理時間だけに注目し、プログラマブル論理回路の再構成時間も含めた処理時間全体の短縮を考慮していないことに問題がある。また、個々のプログラム毎にプログラマブル論理回路を再構成しているので、複数のプログラムを実行するときに共通に用いられる回路も重複して構成されてしまい、非効率であるという問題もある。   That is, in the case of Conventional Example 2, the problem is that only the processing time of each hardware processing and software processing is focused, and the reduction of the entire processing time including the reconfiguration time of the programmable logic circuit is not considered. There is. In addition, since the programmable logic circuit is reconfigured for each program, there is also a problem that the circuits that are commonly used when executing a plurality of programs are also configured redundantly, which is inefficient.

従来例3では、ネットワークから論理記述言語で記述されたプログラムをダウンロードするので、画像再生装置内でそのプログラムを回路情報に変換する処理に時間がかかるという問題がある。   In Conventional Example 3, since a program described in a logical description language is downloaded from the network, there is a problem that it takes time to convert the program into circuit information in the image reproducing apparatus.

すなわち、論理記述言語から回路情報に変換する処理は、論理記述言語からネットリストに変換し、それをデバイスに合わせてテクノロジーマッピングを行い、配置配線のレイアウト処理を施し、さらに、その結果を回路情報に変換する必要がある。特に、配置配線の処理はアルゴリズムが複雑で、時間がかかることが知られている。   That is, the process of converting logic description language to circuit information is converted from logic description language to netlist, technology mapping is performed according to the device, layout processing of placement and routing is performed, and the result is further converted to circuit information. Need to be converted to In particular, it is known that the placement and routing process has a complicated algorithm and takes time.

つまり、従来例3では、ネットワーク上のサーバに格納されていてクライアントが共有するプログラムに、互換性を持たせる目的で、論理記述言語のような抽象度の高い記述方法を用いるために、クライアントでの前処理量が大きくなり、ハードウエア処理による処理時間の短縮を損なうほどに全体の処理時間が長くなる問題がある。   In other words, in Conventional Example 3, the client uses a description method with a high degree of abstraction such as a logical description language for the purpose of making the program stored in the server on the network and shared by the client compatible. There is a problem in that the amount of pre-processing increases and the overall processing time becomes long enough to impair the reduction of processing time by hardware processing.

さらに、従来例3では、プログラムをネットワークから取得しているが、ネットワークでの伝送は、途中で通信が切断し、プログラムをダウンロードできないことも起こり得るため、信頼性の点で問題がある。   Furthermore, in Conventional Example 3, the program is acquired from the network, but transmission over the network has a problem in terms of reliability because communication may be interrupted and the program may not be downloaded.

また、従来例4では、プログラム実行時には、繰り返し処理回数が1回以上であっても少ない場合は、ハードウエアモジュールをプログラマブル論理回路に実装して処理するよりは、ソフトウエアで処理したほうが処理時間が短くなる可能性もあるが、デバック時のみハードウエア処理をソフトウエア処理で置換している。すなわち、プログラム実行時におけるプログラマブル論理回路の再構成時間も含めた処理時間全体の短縮を考慮していないことに問題がある。   In the conventional example 4, when the program is executed, if the number of repetitions is small even if it is one or more, the processing time is more when the processing is performed by software than when the hardware module is mounted on the programmable logic circuit. However, the hardware processing is replaced with the software processing only at the time of debugging. That is, there is a problem in that the reduction of the entire processing time including the reconfiguration time of the programmable logic circuit at the time of program execution is not considered.

そして、以上の従来例1〜4に共通した問題として、回路情報を取得する時間も含めたプログラマブル論理回路の再構成時間と、一連の処理として実行される複数のプログラムで共通して用いられる処理を考慮しないで、処理をハードウエア処理とソフトウエア処理に一元的に分離していることが挙げられる。   As a problem common to the conventional examples 1 to 4, the reconfiguration time of the programmable logic circuit including the time for acquiring the circuit information, and the process commonly used in a plurality of programs executed as a series of processes It is mentioned that the processing is unified into hardware processing and software processing without considering the above.

この発明は、以上の点にかんがみ、複数の処理を一連の処理として一度に行う情報処理システムにおいて、プログラマブル論理回路による処理を、プログラマブル論理回路の再構成時間も考慮に入れ、かつ、前記一連の処理全体として効率的な処理ができるように、活用できるようにすることを目的とする。   In view of the above points, the present invention provides an information processing system in which a plurality of processes are performed as a series of processes at once, in which processing by a programmable logic circuit takes into account the reconfiguration time of the programmable logic circuit, and the series of processes The purpose is to enable efficient use of the entire process.

上記課題を解決するため、請求項1の発明による情報処理システムは、
CPUが実行するソフトウエアプログラムで処理が記述されたソフトウエアモジュールからなる処理モジュールの複数個で構成される処理プログラムで記述される一連の処理を実行するものであり、かつ、前記一連の処理の一部分が、プログラマブル論理回路で処理可能である情報処理システムであって、
前記プログラム内のソフトウエアモジュールが行う処理と同じ処理を、前記プログラマブル論理回路に再構成する回路情報で記述したハードウエアモジュールを記憶する記憶装置部と、
前記記憶装置部から前記ハードウエアモジュールを入手して、前記プログラマブル論理回路を再構成するハードウエアモジュール取得手段と、
前記プログラムに記述された処理モジュールを、前記ソフトウエアモジュールと、前記ハードウエアモジュールのどちらで実行するかを、前記処理プログラムの前記処理モジュールの実行時に決める実行モジュール決定手段と、
を備え、前記実行モジュール決定手段は、
前記処理モジュールの実行時に、前記実行モジュールの選択条件として、前記実行する処理のハードウエアモジュールの前記プログラマブル論理回路への再構成が終了しているか否かを判別し、前記再構成が終了しているときには、前記処理をハードウエアモジュールにより再構成されたプログラマブル論理回路で実行するように決定する
ことを特徴とする。
In order to solve the above problems, an information processing system according to the invention of claim 1
A series of processing described by a processing program composed of a plurality of processing modules composed of software modules whose processing is described by a software program executed by the CPU is executed, and the series of processing A part of the information processing system that can be processed by a programmable logic circuit,
A storage device unit for storing a hardware module in which the same processing as that performed by the software module in the program is described by circuit information to be reconfigured in the programmable logic circuit;
Hardware module acquisition means for obtaining the hardware module from the storage unit and reconfiguring the programmable logic circuit;
Execution module determining means for determining at the time of execution of the processing module of the processing program whether the processing module described in the program is to be executed by the software module or the hardware module;
The execution module determining means includes:
When executing the processing module, as a selection condition of the execution module, it is determined whether or not the reconfiguration of the hardware module of the process to be executed into the programmable logic circuit is completed, and the reconfiguration is completed. If it is, the process is determined to be executed by a programmable logic circuit reconfigured by a hardware module.

また、請求項2の発明は、
処理の一部分が、プログラマブル論理回路で処理可能であり、前記プログラマブル論理回路に構成する回路情報で処理を記述したハードウエアモジュールからなる処理モジュールの複数個で構成される処理プログラムで記述される一連の処理を実行する情報処理システムであって、
前記プログラム内のハードウエアモジュールが行う処理と同じ処理を、CPUが実行するソフトウエアプログラムで記述したソフトウエアモジュールを記憶する記憶装置部と、
前記記憶装置部から前記ソフトウエアモジュールを入手して、実行プログラム用記憶部に格納するソフトウエアモジュール取得手段と、
前記プログラムに記述された処理モジュールを、前記ソフトウエアモジュールと、前記ハードウエアモジュールのどちらで実行するかを、前記プログラムの前記処理モジュールの実行時に決める実行モジュール決定手段と、
を備え、前記実行モジュール決定手段は、
前記処理モジュールの実行時に、前記実行モジュールの選択条件として、前記実行する処理のハードウエアモジュールの前記プログラマブル論理回路への再構成が終了しているか否かを判別し、前記再構成が終了しているときには、前記処理をハードウエアモジュールにより再構成されたプログラマブル論理回路で実行するように決定する
ことを特徴とする。
The invention of claim 2
A part of the process can be processed by a programmable logic circuit, and a series of processes described by a processing program including a plurality of processing modules including hardware modules in which the process is described by circuit information configured in the programmable logic circuit. An information processing system that executes processing,
A storage unit for storing a software module described by a software program executed by the CPU, the same processing as that performed by the hardware module in the program;
Software module acquisition means for obtaining the software module from the storage device and storing it in the execution program storage;
Execution module determination means for determining at the time of execution of the processing module of the program whether the processing module described in the program is executed by the software module or the hardware module;
The execution module determining means includes:
When executing the processing module, as a selection condition of the execution module, it is determined whether or not the reconfiguration of the hardware module of the process to be executed into the programmable logic circuit is completed, and the reconfiguration is completed. If it is, the process is determined to be executed by a programmable logic circuit reconfigured by a hardware module.

また、請求項3の発明は、
CPUが実行するソフトウエアプログラムで処理が記述されたソフトウエアモジュールからなる処理モジュールの複数個で構成される処理プログラムで記述される一連の処理を実行するものであり、かつ、前記一連の処理の一部分が、プログラマブル論理回路で処理可能である情報処理システムであって、
前記処理プログラム内のソフトウエアモジュールが行う処理と同じ処理を、前記プログラマブル論理回路に再構成する回路情報で記述した処理モジュールであるハードウエアモジュールをネットワークを通じて入手して、前記プログラマブル論理回路を再構成するハードウエアモジュール取得手段と、
前記処理プログラムに記述された処理モジュールを、前記ソフトウエアモジュールと、前記ハードウエアモジュールのどちらで実行するかを、前記処理プログラムの前記処理モジュールの実行時に決める実行モジュール決定手段と、
を備え、前記実行モジュール決定手段は、
前記処理モジュールの実行時に、前記実行モジュールの選択条件として、前記実行する処理のハードウエアモジュールの前記プログラマブル論理回路への再構成が終了しているか否かを判別し、前記再構成が終了しているときには、前記処理をハードウエアモジュールにより再構成されたプログラマブル論理回路で実行するように決定する
ことを特徴とする。
The invention of claim 3
A series of processing described by a processing program composed of a plurality of processing modules composed of software modules whose processing is described by a software program executed by the CPU is executed, and the series of processing A part of the information processing system that can be processed by a programmable logic circuit,
Reconfiguring the programmable logic circuit by obtaining a hardware module, which is a processing module in which the same processing as that performed by the software module in the processing program is described with circuit information to be reconfigured in the programmable logic circuit, via a network Hardware module acquisition means for
Execution module determination means for determining at the time of execution of the processing module of the processing program whether the processing module described in the processing program is to be executed by the software module or the hardware module;
The execution module determining means includes:
When executing the processing module, as a selection condition of the execution module, it is determined whether or not the reconfiguration of the hardware module of the process to be executed into the programmable logic circuit is completed, and the reconfiguration is completed. If it is, the process is determined to be executed by a programmable logic circuit reconfigured by a hardware module.

また、請求項4の発明は、
処理の一部分が、プログラマブル論理回路で処理可能であり、前記プログラマブル論理回路に構成する回路情報で処理を記述したハードウエアモジュールからなる処理モジュールの複数個で構成される処理プログラムで記述される一連の処理を実行する情報処理システムであって、
前記プログラム内のハードウエアモジュールが行う処理と同じ処理を、CPUが実行するソフトウエアプログラムで記述した処理モジュールであるソフトウエアモジュールをネットワークを通じて入手して、実行プログラム用記憶部に格納するソフトウエアモジュール取得手段と、
前記処理プログラムに記述された処理モジュールを、前記ソフトウエアモジュールと、前記ハードウエアモジュールのどちらで実行するかを、前記処理プログラムの前記処理モジュールの実行時に決める実行モジュール決定手段と、
を備え、前記実行モジュール決定手段は、
前記処理モジュールの実行時に、前記実行モジュールの選択条件として、前記実行する処理のハードウエアモジュールの前記プログラマブル論理回路への再構成が終了しているか否かを判別し、前記再構成が終了しているときには、前記処理をハードウエアモジュールにより再構成されたプログラマブル論理回路で実行するように決定する
ことを特徴とする。
The invention of claim 4
A part of the process can be processed by a programmable logic circuit, and a series of processes described by a processing program including a plurality of processing modules including hardware modules in which the process is described by circuit information configured in the programmable logic circuit. An information processing system that executes processing,
A software module that obtains a software module, which is a processing module described by a software program executed by the CPU, through the network, and stores the same processing as the processing performed by the hardware module in the program in the storage unit for execution program Acquisition means;
Execution module determination means for determining at the time of execution of the processing module of the processing program whether the processing module described in the processing program is to be executed by the software module or the hardware module;
The execution module determining means includes:
When executing the processing module, as a selection condition of the execution module, it is determined whether or not the reconfiguration of the hardware module of the process to be executed into the programmable logic circuit is completed, and the reconfiguration is completed. If it is, the process is determined to be executed by a programmable logic circuit reconfigured by a hardware module.

上述の構成の各請求項の発明による情報処理システムにおいては、予め、ソフトウエアモジュールまたはハードウエアモジュールの一方が処理プログラム内に記述され、ソフトウエアモジュールあるいはハードウエアモジュールの他方が、システム内の記憶装置部に記憶されている。   In the information processing system according to the invention of each claim having the above-described configuration, one of the software module or the hardware module is described in advance in the processing program, and the other of the software module or the hardware module is stored in the system. It is stored in the device section.

この記憶装置部に記憶されているハードウエア(またはソフトウエア)モジュールは、ハードウエア(またはソフトウエア)取得手段により読み出され、プログラマブル論理回路に回路情報が再構成(または記憶部に記憶)される。   The hardware (or software) module stored in the storage device is read by the hardware (or software) acquisition means, and circuit information is reconfigured (or stored in the storage) in the programmable logic circuit. The

実行モジュール決定手段は、処理プログラムの実行時に、ソフトウエアモジュールとハードウエアモジュールのどちらで処理単位を実行するかを決定する。  The execution module determining means determines whether the processing unit is executed by the software module or the hardware module when the processing program is executed.

従来のように、アプリケーションプログラムにおいて、ソフトウエア処理部分と、ハードウエア処理部分とを事前に固定的に決定するものではないので、その実行モジュールの決定時点における、プログラマブル論理回路の再構成時間も考慮に入れた種々の条件に基づいて、プログラムに記述された処理全体として効率のよい実行モジュールを選択するように決定することができる。   As in the past, in the application program, the software processing part and the hardware processing part are not fixedly determined in advance, so the reconfiguration time of the programmable logic circuit at the time of determining the execution module is also taken into consideration It is possible to decide to select an efficient execution module as a whole of the processing described in the program based on the various conditions entered in.

そして、請求項3または請求項4の発明においては、ハードウエアモジュールあるいはソフトウエアモジュールはシステム内にはなく、ネットワークを通じて取得するようにされる。   In the invention of claim 3 or claim 4, the hardware module or software module is not in the system but is acquired through a network.

したがって、この請求項3または請求項4の発明の場合には、システム内にハードウエアモジュールを予め記憶する記憶装置部やソフトウエアモジュールを予め記憶しておく記憶装置部を備える必要がなく、システム構成を簡単にできるものである。   Therefore, in the case of the invention of claim 3 or claim 4, it is not necessary to provide a storage device unit for storing hardware modules in advance or a storage device unit for storing software modules in the system. The configuration can be simplified.

そして、もしも、ネットワークの不具合により、ハードウエアモジュールやソフトウエアモジュールのネットワークからの取得が困難な場合であっても、この請求項3または請求項4の発明の場合には、同じ処理内容を実行するソフトウエアモジュールやハードウエアモジュールが存在するので、それらを用いて、処理を中断することなく、継続することが可能である。  And even if it is difficult to acquire hardware modules and software modules from the network due to network problems, the same processing contents are executed in the case of the invention of claim 3 or claim 4. Since there are software modules and hardware modules to be used, it is possible to continue the processing without interrupting them.

また、各請求項の発明においては、実行モジュール決定手段は、処理を実行しようとする時に、その処理に対応するハードウエアモジュールの再構成が終了しているには、ソフトウエア処理に代えて、プログラマブル論理回路によるハードウエア処理を実行するように決定する。   Further, in the invention of each claim, the execution module determining means, when attempting to execute the process, to complete the reconfiguration of the hardware module corresponding to the process, instead of the software process, A decision is made to execute hardware processing by the programmable logic circuit.

処理時間に関しては、一般に、ハードウエア処理は、ソフトウエア処理よりも速いので、この発明のようにすることにより、全体としての処理時間を短縮することが可能になる。   Regarding the processing time, generally, hardware processing is faster than software processing, so that the processing time as a whole can be shortened by using the present invention.

また、この発明においては、プログラムの開始は、ソフトウエア処理により始め、同時にハードウエアモジュールによるプログラム論理回路への再構成を並行して行うことができる。そして、処理単位の実行時に、プログラマブル論理回路の再構成が完了しているときには、そのプログラマブル論理回路を用いたハードウエア処理を実行するようにする。   In the present invention, the start of the program can be started by software processing, and at the same time, reconfiguration of the program logic circuit by the hardware module can be performed in parallel. Then, when the reconfiguration of the programmable logic circuit is completed at the time of execution of the processing unit, hardware processing using the programmable logic circuit is executed.

例えば繰り返し処理の場合、最初の処理はソフトウエア処理で実行されるが、プログラマブル論理回路の再構成が完了したときからは、同じ処理がハードウエア処理によりなされる。   For example, in the case of repetitive processing, the first processing is executed by software processing, but the same processing is performed by hardware processing after the reconfiguration of the programmable logic circuit is completed.

繰り返し処理だからといって、最初から、プログラマブル論理回路による処理をすべきとして一元的に定める場合には、処理の開始がプログラマブル論理回路の再構成が完了するまで遅れることになるが、この発明の場合には、始めはソフトウエア処理により処理が実行するようにすれば、全体として、処理時間の短縮化が期待ができる。   If it is determined that the processing by the programmable logic circuit should be performed from the beginning because it is an iterative process, the start of the process will be delayed until the reconfiguration of the programmable logic circuit is completed. First, if processing is executed by software processing, overall processing time can be expected to be shortened.

この発明によれば、少なくとも処理の一部分が回路構成を再構成できるプログラマブル論理回路で処理される情報処理システムにおいて、ソフトウエアで処理を実行するか、プログラマブル論理回路によるハードウエアで処理を実行するかを、処理を実行しながら柔軟に決定することができ、従来のように、アプリケーションプログラムにおいて、ソフトウエアモジュールとハードウエアモジュールとで、処理する部分を事前に固定的に決定する必要が無い。  According to the present invention, in an information processing system in which at least a part of processing is processed by a programmable logic circuit capable of reconfiguring a circuit configuration, whether processing is executed by software or hardware by a programmable logic circuit Can be determined flexibly while executing the processing, and it is not necessary to fixedly determine in advance the portion to be processed between the software module and the hardware module in the application program as in the prior art.

また、プログラム論理回路の再構成時間を考慮した最善のソフトウエアモジュールとハードウエアモジュールの組み合わせで処理プログラムを実行することができ、情報処理システムの最高の処理能力を発揮することが可能となる。   In addition, the processing program can be executed by the best combination of the software module and the hardware module in consideration of the reconfiguration time of the program logic circuit, and the maximum processing capability of the information processing system can be exhibited.

また、アプリケーションプログラム中で共通して用いるハードウエアモジュールやソフトウエアモジュールを重複してコンフィギュレーションすることがなくなり、プログラマブル論理回路の再構成時間を最小にすることができ、情報処理システムの最高の処理能力を発揮することが可能となる。   In addition, hardware modules and software modules that are commonly used in application programs are not redundantly configured, and the reconfiguration time of the programmable logic circuit can be minimized. It becomes possible to demonstrate ability.

以下、この発明による情報処理システムの幾つかの実施の形態を、図を参照しながら説明する。   Several embodiments of an information processing system according to the present invention will be described below with reference to the drawings.

[第1の実施の形態]
この発明による、少なくとも処理の一部分が回路構成を再構成できるプログラマブル論理回路で処理される情報処理システムの第1の実施の形態の主要な概念構成を図1に示す。
[First Embodiment]
FIG. 1 shows a main conceptual configuration of an information processing system according to a first embodiment in which at least a part of processing is processed by a programmable logic circuit capable of reconfiguring a circuit configuration according to the present invention.

この実施の形態において、対象とするアプリケーションプログラム(単にプログラムという場合もある)100は、当該プログラムにより実行しようとする一連の処理を複数個の処理に分離し、分離された各処理ごとにモジュールとして構成したものである。このモジュールを、この明細書では処理モジュールと称することとする。   In this embodiment, a target application program (sometimes simply referred to as a program) 100 separates a series of processes to be executed by the program into a plurality of processes, and each separated process is converted into a module. It is composed. This module will be referred to as a processing module in this specification.

この第1の実施の形態では、プログラム100を構成する各処理モジュールは、CPUが処理を実行するソフトウエアプログラムで記述されたものである。このソフトウエアプログラムは、それぞれソフトウエアモジュールSMと称することとする。したがって、この実施の形態の場合、アプリケーションプログラム100は、複数個のソフトウエアモジュールSMの集合からなる。   In the first embodiment, each processing module constituting the program 100 is described by a software program that is executed by the CPU. Each of the software programs is referred to as a software module SM. Therefore, in the case of this embodiment, the application program 100 consists of a set of a plurality of software modules SM.

この実施の形態においては、記憶装置200に、ソフトウエアモジュールSMのそれぞれが行う処理と同じ処理をプログラマブル論理回路に再構成する回路情報で記述したモジュール(この明細書では、このモジュールをハードウエアモジュールと称する)HMを保存して用意する。記憶装置200は、当該情報処理システム内に設けてもよいし、ネットワーク上の記憶装置であってもよい。   In this embodiment, a module (in this specification, this module is referred to as a hardware module) described in the storage device 200 as circuit information for reconfiguring the same processing as that performed by each of the software modules SM into a programmable logic circuit. Save the HM and prepare it. The storage device 200 may be provided in the information processing system or may be a storage device on a network.

この例の場合、プログラム100は、図2に示すように、ヘッダ部HEDと、本体部PRGとからなり、本体部PRGが前述したように複数個のソフトウエアモジュールSMの集合で構成されている。そして、ヘッダ部HEDには、各ソフトウエアモジュールSMと同じ処理をプログラマブル論理回路に再構成する回路情報で記述した、対応するハードウエアモジュールHMの識別符号IDが記述されている。   In the case of this example, as shown in FIG. 2, the program 100 includes a header part HED and a main part PRG, and the main part PRG is composed of a set of a plurality of software modules SM as described above. . In the header portion HED, the identification code ID of the corresponding hardware module HM described with circuit information for reconfiguring the same processing as each software module SM into a programmable logic circuit is described.

この場合、プログラム100には、同じ処理を行うソフトウエアモジュールSMとハードウエアモジュールHMとの対応が付くように識別符号IDが記述されている。例えば、この例では、本体部PRGの複数個のソフトウエアモジュールSMのプログラム上の処理実行順に従った順番で、各ソフトウエアモジュールSMに対応するハードウエアモジュールHMの識別符号IDが、ヘッダ部HEDに記述される。   In this case, the identification code ID is described in the program 100 so that the correspondence between the software module SM performing the same processing and the hardware module HM is attached. For example, in this example, the identification code ID of the hardware module HM corresponding to each software module SM in the order according to the processing execution order on the programs of the plurality of software modules SM of the main body part PRG is the header part HED. Described in

ハードウエアモジュール取得手段300は、プログラム100中に記述されている識別符号IDを用いて、ソフトウエアモジュールSMが実行する処理と同じ処理を実行するハードウエアモジュールHMを、システム内の記憶装置200から、あるいはネットワーク上の記憶装置200から取得する。そして、ハードウエアモジュール取得手段300は、取得したハードウエアモジュールHMによる回路をプログラマブル論理回路400上に再構成する。   The hardware module acquisition unit 300 uses the identification code ID described in the program 100 to obtain a hardware module HM that executes the same process as the process executed by the software module SM from the storage device 200 in the system. Or from the storage device 200 on the network. Then, the hardware module acquisition unit 300 reconfigures the circuit based on the acquired hardware module HM on the programmable logic circuit 400.

プログラム100のソフトウエアモジュールSMによるソフトウエア処理は、CPU500が実行する。   The software processing by the software module SM of the program 100 is executed by the CPU 500.

実際のアプリケーションプログラム100の処理は、処理モジュールごとに、実行モジュール決定手段600により、ソフトウエアモジュールSMまたはハードウエアモジュールHMのいずれで実行するかが選択されて、実行される。この実施の形態では、実行モジュール決定手段は、選択条件設定手段700に設定されている実行モジュール選択条件に基づいて、どちらのモジュールで処理モジュールを実行するかを決定する。   The actual processing of the application program 100 is executed for each processing module by the execution module determination means 600 selecting whether to execute the software module SM or the hardware module HM. In this embodiment, the execution module determination unit determines which module to execute the processing module based on the execution module selection condition set in the selection condition setting unit 700.

選択条件設定手段700には、予め、例えばソフトウエアやハードウエアによる処理時間、メモリ消費量、プログラマブル論理回路の再構成時間などの種々の選択条件項目を想定し、その一つの条件項目あるいは複数個の条件項目を組み合わせて、実行モジュール選択条件を設定することができる。   The selection condition setting means 700 assumes various selection condition items such as processing time by software or hardware, memory consumption, reconfiguration time of a programmable logic circuit, and the like. Execution module selection conditions can be set by combining these condition items.

なお、選択条件設定手段700は、実行モジュール選択条件をユーザにより設定変更可能なように設けられるものである。したがって、実行モジュール決定手段600に対して、予め、特定の実行モジュール選択条件が定められて、その選択条件を変えることなく、その選択条件に従って実行モジュールを決定する場合には、この選択条件設定手段700は、実行モジュール決定手段600に包含されていることになるので、その場合には、特に設ける必要がなくなる。   The selection condition setting means 700 is provided so that the user can change the execution module selection condition. Therefore, when a specific execution module selection condition is determined in advance for the execution module determination unit 600 and the execution module is determined according to the selection condition without changing the selection condition, the selection condition setting unit 700 is included in the execution module determination unit 600, and in that case, it is not necessary to provide the module 700 in particular.

実行モジュール決定手段600での実行モジュールの決定は、この第1の実施の形態では、プログラム実行時であって、各処理モジュールの実行開始時に行う。   In the first embodiment, execution module determination by the execution module determination unit 600 is performed at the time of program execution and at the start of execution of each processing module.

[第1の実施の形態のハードウエア構成例]
図3は、この発明の第1の実施の形態の情報処理システム10のハードウエア構成例を示すブロック図である。この実施の形態の情報処理システム10においては、CPU11のホストバス11Bに、チップセット12に含まれるメモリコントローラ(図示せず)を介して、DRAMで構成されるメインメモリ13が接続される。
[Hardware Configuration Example of the First Embodiment]
FIG. 3 is a block diagram illustrating a hardware configuration example of the information processing system 10 according to the first embodiment of this invention. In the information processing system 10 of this embodiment, a main memory 13 composed of a DRAM is connected to a host bus 11B of a CPU 11 via a memory controller (not shown) included in a chip set 12.

ホストバス11Bは、また、チップセット12に含まれるホスト−PCIバスブリッジ(図示せず)を介して、PCIバス14に接続される。PCIバス14には、プログラマブル論理回路インターフェース15を介してプログラマブル論理回路16と、ハードディスクインターフェース17を介してハードディスクドライブ18と、通信インターフェース19とが接続される。   The host bus 11B is also connected to the PCI bus 14 via a host-PCI bus bridge (not shown) included in the chip set 12. A programmable logic circuit 16 through a programmable logic circuit interface 15, a hard disk drive 18 through a hard disk interface 17, and a communication interface 19 are connected to the PCI bus 14.

通信インターフェース19は、LANやインターネットなどのネットワーク20を介して、プログラマブル論理回路16に再構成される回路情報が格納されている記憶装置21に接続される。   The communication interface 19 is connected to a storage device 21 in which circuit information reconfigured in the programmable logic circuit 16 is stored via a network 20 such as a LAN or the Internet.

ハードディスクドライブ18により読み書きされるハードディスクには、アプリケーションプログラムが格納されている。また、アプリケーションプログラムは、ネットワーク20上の記憶装置(サーバ)に格納されている場合もある。   An application program is stored in the hard disk read / written by the hard disk drive 18. The application program may be stored in a storage device (server) on the network 20.

また、ハードディスクドライブ18のハードディスクには、プログラマブル論理回路16に再構成される回路情報が格納されている場合もある。この例の場合、ハードディスクドライブ18により読み書きされるハードディスクは、この情報処理システム10内の記憶装置を構成する。   The hard disk of the hard disk drive 18 may store circuit information reconfigured in the programmable logic circuit 16. In this example, the hard disk read and written by the hard disk drive 18 constitutes a storage device in the information processing system 10.

この実施例では、ハードウエア取得手段300と、実行モジュール決定手段600が、図3で示した情報処理システム10のOSのひとつの機能としてソフトウエア的に実装される。   In this embodiment, the hardware acquisition means 300 and the execution module determination means 600 are implemented in software as one function of the OS of the information processing system 10 shown in FIG.

次に、プログラマブル論理回路16の構造を図4に示す。プログラマブル論理回路16は、図5に示すように、回路情報を格納するためのコンフィギュレーションメモリ160と、論理セル161と、配線領域162と、入出力端子163とで構成される。   Next, the structure of the programmable logic circuit 16 is shown in FIG. As shown in FIG. 5, the programmable logic circuit 16 includes a configuration memory 160 for storing circuit information, a logic cell 161, a wiring region 162, and an input / output terminal 163.

コンフィギュレーションメモリ160は、論理セル161内および配線領域162内のSRAM、DRAMなどの書き換え可能なメモリ素子で構成されている。コンフィギュレーションメモリ160にアドレスADRが与えられて、新しい回路情報のデータDAが格納されると、この回路情報に従って、論理セル161内の回路構成と、論理セル161および入出力端子163を相互に接続する配線領域162の接続状態が再構成される。この一連の動作をコンフィギュレーションと呼ぶ。コンフィギュレーションメモリ160の一部分を書き換えることで、プログラマブル論理回路が動作中であっても、回路を部分的に再構成することができる。   The configuration memory 160 is composed of rewritable memory elements such as SRAM and DRAM in the logic cell 161 and the wiring area 162. When the address ADR is given to the configuration memory 160 and new circuit information data DA is stored, the circuit configuration in the logic cell 161 and the logic cell 161 and the input / output terminal 163 are connected to each other according to this circuit information. The connection state of the wiring area 162 to be reconfigured is reconfigured. This series of operations is called configuration. By rewriting a part of the configuration memory 160, the circuit can be partially reconfigured even when the programmable logic circuit is operating.

図5に示すように、プログラマブル論理回路16に再構成されて形成された回路素子164に、処理すべきデータが入力され、また、その処理結果が出力される。   As shown in FIG. 5, data to be processed is input to a circuit element 164 formed by reconfiguring the programmable logic circuit 16, and the processing result is output.

[第1の実施の形態による処理の説明]
図6は、この発明の第1の実施の形態における基本的な処理の流れを示すフローチャートである。前述したように、この実施の形態では、ハードウエア取得手段と実行モジュール決定手段が、図3の情報処理システム10のOSのひとつの機能としてソフトウエア的に実装されており、アプリケーションプログラム100の開始により、当該OSにより処理が実行される。
[Description of Processing According to First Embodiment]
FIG. 6 is a flowchart showing a flow of basic processing in the first embodiment of the present invention. As described above, in this embodiment, the hardware acquisition means and the execution module determination means are implemented as software as one function of the OS of the information processing system 10 in FIG. Thus, the process is executed by the OS.

以下に説明する例においては、図1の選択条件設定手段700は設けられず、実行モジュール決定手段600内に含まれているものとする。そして、この第1の実施の形態では、コンフィギュレーションが完了したプログラマブル論理回路によるハードウエア処理は、一般に、対応するソフトウエア処理よりも高速処理が可能であることから、実行モジュール選択条件として、「実行する処理モジュールに対応するハードウエアモジュールのプログラマブル論理回路16への再構成が終了しているか否かを判別し、再構成が終了しているときには、処理をハードウエアモジュールにより再構成されたプログラマブル論理回路で実行する」という条件が設定されている。   In the example described below, it is assumed that the selection condition setting unit 700 of FIG. 1 is not provided and is included in the execution module determination unit 600. In the first embodiment, hardware processing by a programmable logic circuit whose configuration has been completed can generally be performed at higher speed than the corresponding software processing. It is determined whether or not the reconfiguration of the hardware module corresponding to the processing module to be executed into the programmable logic circuit 16 has been completed. When the reconfiguration has been completed, the process is reconfigured by the hardware module. The condition “execute with logic circuit” is set.

アプリケーションプログラム100の実行に先立ち、まず、図2に示したようにプログラム100内のヘッダ部HEDに記述されているハードウエアモジュールHMの識別符号IDが読み込まれ、プログラマブル論理回路16上に構成するハードウエアモジュールHMがハードウエアモジュール取得手段300で認識される(ステップS11)。   Prior to the execution of the application program 100, first, as shown in FIG. 2, the identification code ID of the hardware module HM described in the header portion HED in the program 100 is read, and the hardware configured on the programmable logic circuit 16 is read. The hardware module HM is recognized by the hardware module acquisition unit 300 (step S11).

次に、2つのルーチンが並行して実行される。ひとつは、ハードウエアモジュール取得手段300によるプログラマブル論理回路16へのコンフィギュレーションの実行で、もうひとつは、実行モジュール決定手段600によるプログラムで実行される、処理モジュールごとのソフトウエアモジュールSMまたはハードウエアモジュールHMの決定およびその処理モジュールの実行である。   Next, two routines are executed in parallel. One is the execution of configuration of the programmable logic circuit 16 by the hardware module acquisition means 300, and the other is the software module SM or hardware module for each processing module executed by the program by the execution module determination means 600. HM determination and execution of its processing module.

ハードウエアモジュール取得手段300は、先に読み込まれた識別符号IDの最初の識別符号IDに対応するハードウエアモジュールHMの回路情報を、情報処理システム10内の記憶装置18またはネットワーク20上の記憶装置21から、プログラマブル論理回路16のコンフィギュレーションメモリ160に転送し、コンフィギュレーションを実行して、実行モジュール決定手段600からの問い合わせに対し、コンフィギュレーションの成否を答える(ステップS12)。   The hardware module acquisition unit 300 stores the circuit information of the hardware module HM corresponding to the first identification code ID of the previously read identification code ID, in the storage device 18 in the information processing system 10 or the storage device on the network 20. 21, the configuration is transferred to the configuration memory 160 of the programmable logic circuit 16, the configuration is executed, and the success or failure of the configuration is answered in response to the inquiry from the execution module determination unit 600 (step S 12).

そして、ハードウエアモジュール取得手段300は、最初のハードウエアモジュールHMのコンフィギュレーションが完了すると、次のハードウエアモジュールHMがあるか否か判断し(ステップS13)、次のハードウエアモジュールHMがあれば、ステップS12に戻って、その識別符号IDに対応するハードウエアモジュールHMの回路情報を、情報処理システム10内の記憶装置18またはネットワーク20上の記憶装置21から、プログラマブル論理回路16のコンフィギュレーションメモリ160に転送し、コンフィギュレーションを実行する。   Then, when the configuration of the first hardware module HM is completed, the hardware module acquisition unit 300 determines whether or not there is a next hardware module HM (step S13), and if there is a next hardware module HM. Returning to step S12, the circuit information of the hardware module HM corresponding to the identification code ID is transferred from the storage device 18 in the information processing system 10 or the storage device 21 on the network 20 to the configuration memory of the programmable logic circuit 16. 160 to execute configuration.

ハードウエアモジュール取得手段300は、先に読み込んだ識別符号IDのすべてのハードウエアモジュールHMについて、上述の処理を実行して、そのコンフィギュレーションを行うようにする。   The hardware module acquisition unit 300 executes the above-described processing for all the hardware modules HM having the identification code ID read in advance, and performs the configuration.

実行モジュール決定手段600は、実行しようとする処理モジュールに対応するハードウエアモジュールHMのコンフィギュレーションが完了しているか否か、ハードウエアモジュール取得手段300に問い合わせて判断し(ステップS14)、当該対応するハードウエアモジュールHMのコンフィギュレーションが完了していれば、ハードウエアモジュールHMによる処理を行い(ステップS15)、コンフィギュレーションが完了していなければ、対応するソフトウエアモジュールSMによる処理を実行する(ステップS16)。   The execution module determination unit 600 makes an inquiry to the hardware module acquisition unit 300 to determine whether or not the configuration of the hardware module HM corresponding to the processing module to be executed has been completed (step S14). If the configuration of the hardware module HM has been completed, the processing by the hardware module HM is performed (step S15). If the configuration has not been completed, the processing by the corresponding software module SM is executed (step S16). ).

そして、当該処理モジュールの処理が終了すると、次の処理モジュールがあるか否か判断し(ステップS17)、次の処理モジュールがあれば、ステップS15に戻り、次の処理モジュールがなければ、このアプリケーションによる処理を終了する。   When the processing of the processing module is completed, it is determined whether or not there is a next processing module (step S17). If there is a next processing module, the process returns to step S15. The process by is terminated.

ここで、ハードウエアモジュール取得手段300と、実行モジュール決定手段600との間でのコミュニケーションは、図3のシステム10においては、具体的には、次のようにしてなされる。   Here, the communication between the hardware module acquisition unit 300 and the execution module determination unit 600 is specifically performed as follows in the system 10 of FIG.

すなわち、ハードウエアモジュールHMがプログラマブル論理回路16上にコンフィギュレーションされると、PCIバス14を介してCPU11上で稼動するOSに検知され、そのOSの一部として機能しているハードウエアモジュール取得手段300から、実行モジュール決定手段600に通知される。   That is, when the hardware module HM is configured on the programmable logic circuit 16, it is detected by the OS running on the CPU 11 via the PCI bus 14, and the hardware module acquisition means functioning as part of the OS. From 300, the execution module determination means 600 is notified.

また、プログラムの処理状況がCPU11上で稼動するOSで検知され、このOSの一部として機能している実行モジュール決定手段600から、ハードウエアモジュール取得手段300に対して、ハードウエアモジュールHMの回路情報の転送およびコンフィギュレーションの開始や中断が指示される。   Further, the processing status of the program is detected by the OS running on the CPU 11, and the circuit of the hardware module HM is sent from the execution module determination unit 600 functioning as a part of the OS to the hardware module acquisition unit 300. Instructed to transfer information and start or stop configuration.

以上のようにして、この実施の形態では、処理モジュールの実行をするときに、対応するハードウエアモジュールHMが、プログラマブル論理回路16に再構成されていれば、当該処理モジュールの処理は、ハードウエアモジュールで実行するようにする。   As described above, in this embodiment, when a processing module is executed, if the corresponding hardware module HM is reconfigured in the programmable logic circuit 16, the processing of the processing module is performed by the hardware. Make it run in a module.

前述もしたように、通常、プログラマブル論理回路へのコンフィギュレーションのための時間を考慮しなければ、ハードウエアで処理した方が高速処理が可能である。したがって、上述のように、コンフィギュレーションが完了した時点から、そのコンフィギュレーションが完了したハードウエアモジュールで処理を実行することで、アプリケーションプログラムによる一連の処理を高速に行うことができるようになる。   As described above, normally, if the time for the configuration to the programmable logic circuit is not taken into consideration, it is possible to perform processing at high speed by hardware. Therefore, as described above, a series of processing by the application program can be performed at high speed by executing processing with the hardware module for which the configuration has been completed from the time when the configuration has been completed.

[処理の具体例の実施例(第1の実施例)]
次に、図7、図8および図9のフローチャートを用いて、第1の実施の形態の処理の具体例である第1の実施例を、以下に説明する。
[Example of processing example (first example)]
Next, a first example, which is a specific example of the processing according to the first embodiment, will be described below with reference to the flowcharts of FIGS. 7, 8, and 9.

図7は、この第1の実施例における、図6のフローチャートに対応する詳細な処理の流れの全体を示したフローチャートである。図8は、図7におけるハードウエアモジュールHMのコンフィギュレーションのルーチンのステップS22の詳細なフローチャートを示している。また、図9は、図7におけるソフトウエアモジュールSMまたはハードウエアモジュールHMによる処理ルーチンのステップS32の詳細なフローチャートを示している。   FIG. 7 is a flowchart showing the entire flow of detailed processing corresponding to the flowchart of FIG. 6 in the first embodiment. FIG. 8 shows a detailed flowchart of step S22 of the configuration routine of the hardware module HM in FIG. FIG. 9 shows a detailed flowchart of step S32 of the processing routine by the software module SM or the hardware module HM in FIG.

図7において、ソフトウエアモジュールSMまたはハードウエアモジュールHMによる処理と、ハードウエアモジュールHMのコンフィギュレーションは並行して実行される。   In FIG. 7, the processing by the software module SM or the hardware module HM and the configuration of the hardware module HM are executed in parallel.

ここで、この第1の実施例では、ソフトウエアモジュールSMまたはハードウエアモジュールHMによる処理モジュールをM種類行い、これらのM種類の処理モジュールからなる一連の処理を、N回繰り返すものとする。   Here, in the first embodiment, it is assumed that M types of processing modules by the software module SM or the hardware module HM are performed, and a series of processing consisting of these M types of processing modules is repeated N times.

図7に示すように、アプリケーションプログラムの実行に先立ち、ハードウエアモジュールの識別符号がアプリケーションプログラムのヘッダ部から読み取られる(ステップS11)。このあと、ハードウエアモジュールHMのコンフィギュレーションを行うルーチンR20と、ソフトウエアモジュールSMまたはハードウエアモジュールHMによる処理を行うルーチンR30とが並行して実行される。   As shown in FIG. 7, prior to executing the application program, the identification code of the hardware module is read from the header portion of the application program (step S11). Thereafter, a routine R20 for configuring the hardware module HM and a routine R30 for performing processing by the software module SM or the hardware module HM are executed in parallel.

ルーチンR20においては、まず、M種類のハードウエアモジュールの、何番目までのハードウエアモジュールHMがコンフィギュレーションされたかを示す変数iを初期化し(ステップS20)、その後、ハードウエアモジュールHMのコンフィギュレーションの処理ルーチンR40を実行するステップS22に進む。   In the routine R20, first, a variable i indicating how many hardware modules HM of the M types of hardware modules are configured is initialized (step S20), and then the configuration of the hardware module HM is initialized. It progresses to step S22 which performs processing routine R40.

このステップS22のコンフィギュレーションの処理ルーチンR40においては、図8に示すように、i番目のハードウエアモジュールHMが、プログラマブル論理回路16上に存在するかどうかを確認し(ステップS41)、存在すれば、既に構成されていることをOSに通知する(ステップS43)。i番目のハードウエアモジュールHMが、プログラマブル論理回路16上に存在しなければ、ステップS42のコンフィギュレーションを行う。   In the configuration processing routine R40 in step S22, as shown in FIG. 8, it is confirmed whether or not the i-th hardware module HM exists on the programmable logic circuit 16 (step S41). Then, it notifies the OS that it has already been configured (step S43). If the i-th hardware module HM does not exist on the programmable logic circuit 16, the configuration in step S42 is performed.

このステップS42のコンフィギュレーションにおいては、まず、ハードウエアモジュールHMの回路情報が、情報処理システム10内の記憶装置に存在するかを確認し、存在すれば情報処理システム10内の記憶装置から回路情報を取得し、存在しなければ、ネットワーク20上の記憶装置21から回路情報を取得して、コンフィギュレーションを行う。   In the configuration in step S42, first, it is confirmed whether the circuit information of the hardware module HM exists in the storage device in the information processing system 10, and if it exists, the circuit information is read from the storage device in the information processing system 10. If it does not exist, circuit information is obtained from the storage device 21 on the network 20 and configuration is performed.

そして、ハードウエアモジュールHMの構成が終了した時点で、ステップS43に移り、コンフィギュレーションの終了をOSに通知し、図7に戻って変数iをカウントアップする(ステップS23)。   Then, when the configuration of the hardware module HM is completed, the process proceeds to step S43, where the end of configuration is notified to the OS, and the process returns to FIG. 7 to increment the variable i (step S23).

ハードウエアモジュールHMのコンフィギュレーションが完了する前に、このハードウエアモジュールHMに対応する処理が開始される場合には、ソフトウエアモジュールSMまたはハードウエアモジュールHMによる処理を行うルーチンR30で、ソフトウエアモジュールSMによる処理が行われるが、ハードウエアモジュールHMのコンフィギュレーションは続行される。   If the processing corresponding to the hardware module HM is started before the configuration of the hardware module HM is completed, the software module SM or the routine R30 for processing by the hardware module HM performs the software module. Processing by the SM is performed, but the configuration of the hardware module HM is continued.

そして、M種類のハードウエアモジュールHMのすべてを、コンフィギュレーションする途中で、アプリケーションプログラム100により実行される一連の繰り返し処理数をカウントする変数jが、j>Nとなったと判別され(ステップS24)、アプリケーションが終了する場合には、M種類のハードウエアモジュールHMのうちの一部は、コンフィギュレーションされない。   Then, during the configuration of all of the M types of hardware modules HM, it is determined that the variable j that counts the series of repeated processes executed by the application program 100 is j> N (step S24). When the application is terminated, some of the M types of hardware modules HM are not configured.

しかし、情報処理システム10内の記憶装置に余裕があれば、ネットワーク20上の記憶装置21から回路情報を取得することを続行することもできる。そのようにすれば、同種のアプリケーションが、その後に実行されるときに、ネットワーク20からの回路情報の取得が完了しており、その分のアクセス時間を短縮することができる。また、後で、ネットワーク20から取得しようとしたときに、ネットワーク20に障害が生じていて、必要なハードウエアモジュールHMが取得できない事態になっても、その影響が最小限に押さえられる。   However, if there is room in the storage device in the information processing system 10, it is possible to continue acquiring circuit information from the storage device 21 on the network 20. By doing so, when the same type of application is subsequently executed, the acquisition of the circuit information from the network 20 is completed, and the access time can be reduced accordingly. Further, when an attempt is made to acquire from the network 20 later, even if a failure occurs in the network 20 and a necessary hardware module HM cannot be acquired, the influence is minimized.

次に、コンフィギュレーションするべきハードウエアモジュールHMが残っているかを確認するために、変数iと変数Mを比較する(ステップS25)。変数iが、変数Mと等しいか小さければ、次のハードウエアモジュールHMのコンフィギュレーションを開始し、変数iが変数Mよりも大きければ、すべてのハードウエアモジュールHMがプログラマブル論理回路16上に構成されたことがわかり、図8のコンフィギュレーション処理を終了する。   Next, in order to confirm whether or not the hardware module HM to be configured remains, the variable i and the variable M are compared (step S25). If the variable i is equal to or smaller than the variable M, the configuration of the next hardware module HM is started. If the variable i is larger than the variable M, all the hardware modules HM are configured on the programmable logic circuit 16. The configuration process in FIG. 8 is terminated.

次に、図7において、ルーチン20と並行して実行されるルーチンR30では、まず、一連の繰り返し処理数をカウントする変数jが初期化され(ステップS31)、その後、ソフトウエアモジュールSMまたはハードウエアモジュールHMによる処理を実行するルーチンR50のステップS32に移る。   Next, in FIG. 7, in a routine R30 executed in parallel with the routine 20, first, a variable j for counting a series of repeated processing is initialized (step S31), and then the software module SM or hardware Control goes to step S32 of the routine R50 for executing processing by the module HM.

このステップS32のルーチンR50においては、図9に示すように、まず、M種の処理モジュールの何番目の処理モジュールによる処理であるかをカウントする変数kが初期化される(ステップS51)。   In the routine R50 of step S32, as shown in FIG. 9, first, a variable k for counting the number of processing modules among the M types of processing modules is initialized (step S51).

次に、k番目のハードウエアモジュールHMが、プログラマブル論理回路16上に構成されたかを確認するために、このルーチンR50で、M種のハードウエアモジュールHMのうちの何番目までのコンフィギュレーションが終了したかを示す変数iと、前記処理を実行しようとする処理モジュールが、M種の処理モジュールの何番目であるかの変数kとの比較を行なう(ステップS52)。   Next, in order to confirm whether or not the k-th hardware module HM is configured on the programmable logic circuit 16, in this routine R50, the configuration up to which number of the M types of hardware modules HM is completed. The variable i indicating whether or not the process module is to execute the process is compared with the variable k indicating the order of the M types of process modules (step S52).

変数kが変数iより小さければ、プログラマブル論理回路16上に、k番目の処理モジュールに対応するハードウエアモジュールHMの構成が終了していることがわかるので、ハードウエアモジュールHMで処理を実行する(ステップS53)。   If the variable k is smaller than the variable i, it can be seen that the configuration of the hardware module HM corresponding to the k-th processing module is completed on the programmable logic circuit 16, and therefore the processing is executed by the hardware module HM ( Step S53).

変数kが、変数iに等しいか、変数iより大きければ、まだ、k番目の処理モジュールに対応するハードウエアモジュールHMが、プログラマブル論理回路16上に構成されていないので、ソフトウエアモジュールSMで処理を実行する(ステップS54)。   If the variable k is equal to or greater than the variable i, the hardware module HM corresponding to the k-th processing module has not yet been configured on the programmable logic circuit 16, so that the processing is performed by the software module SM. Is executed (step S54).

次に、処理モジュールが何番目のものであるかの変数kをカウントアップし(ステップS55)、次のk+1番目の処理モジュールについて、その前のk番目の処理モジュールと同様にしてステップS52からステップS55のステップを実行し、それを、最後のM番目の処理モジュールまで前記処理ステップを繰り返す(ステップS56)。そして、最後のM番目の処理モジュールについての処理が終了したときには、図7のルーチンに戻る。   Next, the number k of the processing module is counted up (step S55), and the next k + 1-th processing module is stepped from step S52 in the same manner as the previous k-th processing module. Step S55 is executed, and the above processing steps are repeated until the last M-th processing module (step S56). When the process for the last M-th processing module is completed, the routine returns to the routine of FIG.

図7においては、繰り返しの変数jをカウントアップし(ステップS33)、次の繰り返し処理が開始される。繰り返し処理をN回行うとアプリケーションは終了する(ステップS34)。   In FIG. 7, the iteration variable j is counted up (step S33), and the next iteration process is started. When the repeated process is performed N times, the application ends (step S34).

以上説明したように、第1の実施例においては、M種の処理モジュールのN回の繰り返しを行う処理のアプリケーションプログラムにおいて、最初は、ソフトウエアモジュールSMによる処理が実行されるが、繰り返し処理の間に、M種のハードウエアモジュールHMのコンフィギュレーションが、徐々に完了し、その完了したハードウエアモジュールHMが順次に使用される。したがって、繰り返し処理の繰り返しの回数が増加するにつれて、コンフィギュレーションが完了するハードウエアモジュールHMの数も増加し、処理速度が徐々に上がり、全体としての処理時間は、短縮化されるものである。   As described above, in the first embodiment, in the application program for the process of performing N repetitions of M types of processing modules, the process by the software module SM is first executed. In the meantime, the configuration of the M types of hardware modules HM is gradually completed, and the completed hardware modules HM are sequentially used. Therefore, as the number of repetitions of the repeated processing increases, the number of hardware modules HM that complete the configuration also increases, the processing speed gradually increases, and the overall processing time is shortened.

[第1の実施の形態の処理の他の実施例(第2の実施例)]
次に、この発明の第1の実施の形態を、画像処理に適用したより詳細な実施例(第2の実施例という)について説明する。この第2の実施例では、線形変換処理、ノイズ除去処理および輪郭強調処理の3種の処理を、それぞれ以下に説明するような3種の画像フィルタを用いて画像データについて行うことにより、不鮮明な画像を鮮明にする画像処理を行うようにする。まず、各画像フィルタについて説明する。
[Another Example of Processing of the First Embodiment (Second Example)]
Next, a more detailed example (referred to as a second example) in which the first embodiment of the present invention is applied to image processing will be described. In the second embodiment, the three types of processing, that is, linear conversion processing, noise removal processing, and contour enhancement processing, are performed on the image data using three types of image filters as will be described below, thereby making the image unclear. Image processing that makes the image clearer is performed. First, each image filter will be described.

[ノイズ除去処理用フィルタの例の説明]
画像処理のひとつである空間フィルタ処理は、単位画素から構成される画像ファイルの単一もしくは複数画素に対して演算を行う。これは、ある画素(データxl,m )の近傍の画素(データpl,m )に、マスクデータfilterl,m を掛けて足し合わせ、係数Nを乗じたものを処理後の画素値xl,m として得る処理として、次の式(1)のように表すことができる。ここで、マスクデータfilterl,m や係数Nの値を変えることにより、空間フィルタは様々な処理を実行することが可能である。

Figure 0003877002
[Description of filter for noise removal processing]
Spatial filter processing, which is one of image processing, performs an operation on a single pixel or a plurality of pixels of an image file composed of unit pixels. This is obtained by multiplying the pixel (data pl, m) in the vicinity of a certain pixel (data xl, m) by the mask data filterl, m and multiplying by the coefficient N as the pixel value xl, m after processing. As a process to obtain, it can represent like following Formula (1). Here, by changing the values of the mask data filterl, m and the coefficient N, the spatial filter can execute various processes.
Figure 0003877002

図10は、画像にガウス分布の平滑化処理を施してノイズ除去を行うGaussianフィルタと呼ばれる画像フィルタのマスクデータの例である。中心画素のデータxl,m およびその近傍の3×3画素内にある8画素のデータpl,m に、マスクデータの係数filterl,m を掛けて足し合わせ、係数N(=1/16)を乗じて中心画素のデータと置き換える。このフィルタ処理を施すことにより、画像のノイズを除去することができる。   FIG. 10 is an example of mask data of an image filter called a Gaussian filter that performs noise removal by performing a Gaussian distribution smoothing process on an image. The center pixel data xl, m and the 8 pixel data pl, m in the 3 × 3 pixels in the vicinity are multiplied by the mask data coefficient filterl, m and multiplied by the coefficient N (= 1/16). To replace the data of the center pixel. By applying this filter processing, image noise can be removed.

図11は、図10のGaussianフィルタ処理を実現するソフトウエアモジュールSmABC001のプログラムを示すものである。また、図12は、図10のGaussianフィルタ処理を実現するハードウエアモジュールHmABC001の回路を示すものである。   FIG. 11 shows a program of the software module SmABC001 that realizes the Gaussian filter processing of FIG. FIG. 12 shows a circuit of the hardware module HmABC001 that realizes the Gaussian filter processing of FIG.

そして、前述もしたように、この場合、ある任意の処理モジュールに対し、同一の入出力仕様を持つソフトウエアモジュールとハードウエアモジュールを対にして持つ。それぞれのモジュールには唯一の識別符号が付けられている。例えば、Gaussianフィルタ処理に、「ABC001」という処理を識別する符号を付けるとすれば、ソフトウエアモジュールSMには、ソフトウエアモジュールであることを示す接頭語Smを付けて、SmABC001という識別符号を付け、ハードウエアモジュールHMには、ハードウエアモジュールであることを示す接頭語Hmを付けて、HmABC001という識別符号を付けることにする。   As described above, in this case, a software module and a hardware module having the same input / output specification are paired with respect to an arbitrary processing module. Each module has a unique identification code. For example, if the Gaussian filter process is given a code identifying the process “ABC001”, the software module SM is given a prefix Sm indicating that it is a software module, and an identification code SmABC001 is added. The hardware module HM is given a prefix Hm indicating that it is a hardware module, and an identification code of HmABC001.

ソフトウエアモジュールSMは、例えばC/C++言語などで記述されたソースプログラムをコンパイルしたものであり、ハードウエアモジュールHMは、例えば図12に示すような回路構成を、プログラマブル論理回路16上に構成する回路情報である。   The software module SM is obtained by compiling a source program described in, for example, the C / C ++ language, and the hardware module HM configures a circuit configuration as shown in FIG. 12 on the programmable logic circuit 16, for example. Circuit information.

図11は、GaussianフィルタのソフトウエアモジュールとなるCプログラムの一例である。演算を施す元の画像データp[l][m]に対し、for文を用いた二重ループ構成によって、あらかじめ図10に示すフィルタ係数を代入した配列filter[l][m]を乗算し、累積した後、ビットシフト演算子によって4ビット下位にシフトすることで、1/16の演算を実現する。   FIG. 11 is an example of a C program that is a software module of a Gaussian filter. The original image data p [l] [m] to be subjected to the calculation is multiplied by an array filter [l] [m] into which filter coefficients shown in FIG. After accumulating, 1/16 operation is realized by shifting down by 4 bits by a bit shift operator.

図12は、ハードウエアによる、対応するGaussianフィルタの回路構成の一例である。元の画像ファイルからフィルタ処理を行うマスク領域のうち、p[l-1][m-1],p[l][m-1],p[l+1][m-1]の3画素分のデータを、一つのデータとして、ハードウエアモジュールHMに転送する。例えば、1画素当たり8ビットのデータであれば、3つのデータを結合して、24ビットのデータとして転送する。   FIG. 12 is an example of a circuit configuration of a corresponding Gaussian filter by hardware. Of the mask area to be filtered from the original image file, 3 pixels of p [l-1] [m-1], p [l] [m-1], p [l + 1] [m-1] Minute data is transferred to the hardware module HM as one data. For example, if the data is 8 bits per pixel, the three data are combined and transferred as 24-bit data.

転送されたデータは、ハードウエアモジュールのINに入力され、最初のクロックでレジスタ101,102,103に入力される。結合したデータはここで分離されて出力D1,D2,D3とされ、これらの出力D1,D2,D3が、それぞれレジスタ111,112,113および加算器211、212、213に入力される。   The transferred data is input to the IN of the hardware module and input to the registers 101, 102, and 103 at the first clock. The combined data is separated here to become outputs D1, D2, and D3, and these outputs D1, D2, and D3 are input to registers 111, 112, and 113 and adders 211, 212, and 213, respectively.

そして、次のクロックで、p[l-1][m],p[l][m],p[l+1][m]の3画素分のデータが、同様にして出力D1,D2,D3に現れる。この時点で、加算器211,212,213の出力A1,A2,A3は、それぞれ、
A1=p[l-1][m-1]+p[l-1][m]
A2=p[l][m-1]+p[l][m]
A3=p[l+1][m-1]+p[l+1][m]
となる。
Then, at the next clock, data for three pixels p [l−1] [m], p [l] [m], and p [l + 1] [m] are output in the same manner as outputs D1, D2, and D2. Appears at D3. At this point, the outputs A1, A2, A3 of the adders 211, 212, 213 are respectively
A1 = p [l-1] [m-1] + p [l-1] [m]
A2 = p [l] [m-1] + p [l] [m]
A3 = p [l + 1] [m-1] + p [l + 1] [m]
It becomes.

この加算器211,212,213の出力は、同時に、レジスタ121,122,123および加算器221,222,223に入力されている。   The outputs of the adders 211, 212, and 213 are simultaneously input to the registers 121, 122, and 123 and the adders 221, 222, and 223.

そして、その次のクロックで、p[l-1][m+1],p[l][m+1],p[l+1][m+1]の3画素分のデータが、同様にして、出力D1,D2,D3に現れる。   Then, at the next clock, the data for three pixels p [l-1] [m + 1], p [l] [m + 1], and p [l + 1] [m + 1] are the same. Appearing at outputs D1, D2, D3.

このとき、加算器211,212,213A1,A2,A3の出力は、それぞれ、
A1=p[l-1][m]+p[l-1][m+1]
A2=p[l][m]+p[l][m+1]
A3=p[l+1][m]+p[l+1][m+1]
であり、また、加算器221,222,223の出力A4,A5,A6は、それぞれ、
A4=p[l-1][m-1]+p[l-1][m]×2+p[l-1][m+1]
A5=p[l][m-1]+p[l][m]×2+p[l][m+1]
A6=p[l+1][m-1]+p[l+1][m]×2+p[l+1][m+1]
となる。
At this time, the outputs of the adders 211, 212, 213A1, A2 and A3 are respectively
A1 = p [l-1] [m] + p [l-1] [m + 1]
A2 = p [l] [m] + p [l] [m + 1]
A3 = p [l + 1] [m] + p [l + 1] [m + 1]
The outputs A4, A5, and A6 of the adders 221, 222, and 223 are respectively
A4 = p [l-1] [m-1] + p [l-1] [m] × 2 + p [l-1] [m + 1]
A5 = p [l] [m-1] + p [l] [m] × 2 + p [l] [m + 1]
A6 = p [l + 1] [m-1] + p [l + 1] [m] × 2 + p [l + 1] [m + 1]
It becomes.

ここで、レジスタ101,102,103,111,112,113,121,122,133を動作させているクロックを止め、シフトレジスタ301により、1ビット上位にシフトさせることで、加算器222の出力A5が2倍されて、シフトレジスタ301の出力A7とされる。   Here, the clocks that operate the registers 101, 102, 103, 111, 112, 113, 121, 122, and 133 are stopped, and the shift register 301 shifts them one bit higher so that the output A5 of the adder 222 is output. Is doubled and used as the output A7 of the shift register 301.

次に、加算器231,232により、加算器221、223の出力A4,A6と、シフトレジスタ301の出力A7との総和をとり、シフトレジスタ302によって、下位に4ビットシフトすることで、1/16の演算が実行される。以上で、単位マスク領域でのGaussianフィルタ処理が終了する。以降この処理を繰り返すことで、画像全体の処理が施される。   Next, the adders 231 and 232 take the sum of the outputs A4 and A6 of the adders 221 and 223 and the output A7 of the shift register 301, and the shift register 302 shifts the lower 4 bits to 1 / Sixteen operations are performed. Thus, the Gaussian filter processing in the unit mask area is completed. Thereafter, by repeating this process, the entire image is processed.

以上のように、この実施例では、Bi−nominalフィルタ回路構成によって、Gaussianフィルタを実現しているが、他にも様々なアルゴリズムが考えられる。   As described above, in this embodiment, the Gaussian filter is realized by the Bi-nominal filter circuit configuration, but various other algorithms are conceivable.

[輪郭強調処理用のフィルタの例の説明]
図13は、2次微分によりエッジを検出するLaplacianフィルタと呼ばれる画像フィルタに原画像を加えたマスクデータである。このフィルタ処理を施すことにより、画像の輪郭強調を行うことができる。
[Description of example of filter for contour emphasis processing]
FIG. 13 shows mask data obtained by adding an original image to an image filter called a Laplacian filter that detects edges by second-order differentiation. By applying this filtering process, it is possible to enhance the contour of the image.

図14は、図13のLaplacianフィルタ処理を実現するソフトウエアモジュールSmXYZ001のプログラム例を示すものである。また、図15は、図13のLaplacianフィルタ処理を実現するハードウエアモジュールHmXYZ001の回路例を示すものである。   FIG. 14 shows a program example of the software module SmXYZ001 that realizes the Laplacian filter processing of FIG. FIG. 15 shows a circuit example of the hardware module HmXYZ001 that realizes the Laplacian filter processing of FIG.

図14は、図13と同様なアルゴリズムを持つCプログラムの一例で、フィルタ係数を代入した配列filter[l][m]が、図13に示すエッジ強調フィルタの係数に置き換えられたものである。   FIG. 14 shows an example of a C program having the same algorithm as that in FIG. 13, in which the array filter [l] [m] into which filter coefficients are substituted is replaced with the edge enhancement filter coefficients shown in FIG.

図15は、ハードウエアによるLaplacianフィルタの回路構成の一例である。まず、元の画像データの演算する単位領域から、データストリームとして、例えば、p[l][m],p[l-1][m],p[l][m-1],p[l][m+1],p[l+1][m]を構成し、時系列的にハードウエアモジュールの入力端INへ入力する。   FIG. 15 is an example of a circuit configuration of a Laplacian filter by hardware. First, from the unit area where the original image data is calculated, for example, p [l] [m], p [l-1] [m], p [l] [m-1], p [l ] [m + 1], p [l + 1] [m] are input to the input terminal IN of the hardware module in time series.

4クロックによって、前記のデータストリームを入力した時点で、画像データp[l][m],p[l-1][m],p[l][m-1],p[l][m+1],p[l+1][m]が、それぞれレジスタ44、43、42、41の出力端34,33,32,31および入力端INに現れている。そして、このとき、加算器45,46および47による演算によって、加算器47の出力端38には、
p[l-1][m]+p[l][m-1]+p[l][m+1]+p[l+1][m]
が出力されている。
When the data stream is input by 4 clocks, the image data p [l] [m], p [l-1] [m], p [l] [m-1], p [l] [m +1] and p [l + 1] [m] appear at the output terminals 34, 33, 32, 31 and the input terminal IN of the registers 44, 43, 42, 41, respectively. At this time, the output terminal 38 of the adder 47 is connected to the output terminal 38 by the operations of the adders 45, 46 and 47.
p [l-1] [m] + p [l] [m-1] + p [l] [m + 1] + p [l + 1] [m]
Is output.

一方、シフトレジスタ50により、その入力データが2ビット左シフトされることで、このシフトレジスタ50の出力端37には、
4×p[l][m]
が出力される。
On the other hand, when the input data is shifted left by 2 bits by the shift register 50, the output terminal 37 of the shift register 50 has
4 x p [l] [m]
Is output.

そして、減算器48により、シフトレジスタ50の出力端37のデータと、加算器47の出力端38のデータとの減算が行われ、この減算器48の出力端39には、
4×p[l][m]−(p[l-1][m]+p[l][m-1]+p[l][m+1]+p[l+1][m])
が出力され、さらに加算器49により、この出力端39の出力データに、レジスタ44の出力端34の出力データp[l][m]が加算されることで、エッジ強調出力がOUTに得られる。
Then, the subtracter 48 subtracts the data at the output terminal 37 of the shift register 50 and the data at the output terminal 38 of the adder 47.
4 × p [l] [m] − (p [l−1] [m] + p [l] [m−1] + p [l] [m + 1] + p [l + 1] [m])
Further, the adder 49 adds the output data p [l] [m] of the output terminal 34 of the register 44 to the output data of the output terminal 39, whereby an edge emphasis output is obtained at OUT. .

[線形変換処理用のフィルタの例の説明]
図16は、画像の単一画素の線形変換を行うフィルタを実現するソフトウエアモジュールSmPQR001のプログラム例を示し、また、図17は、そのハードウエアモジュールHmPQR001の回路例を示す。このフィルタ処理を施すことにより、画像の濃度分布を線形に変換してコントラストなどを補正することができる。
[Description of filter example for linear transformation]
FIG. 16 shows a program example of the software module SmPQR001 that realizes a filter that performs linear conversion of a single pixel of an image, and FIG. 17 shows a circuit example of the hardware module HmPQR001. By applying this filter processing, the density distribution of the image can be converted into a linear shape and the contrast can be corrected.

図16の例は、画像の単一画素の線形変換を行うフィルタを、C言語で記述したソフトウエアモジュールの一例であり、次の式(2)で示す線形変換を用いている。   The example of FIG. 16 is an example of a software module in which a filter that performs linear conversion of a single pixel of an image is described in C language, and linear conversion represented by the following equation (2) is used.

x(l,m)=a×p(l,m)+b 式(2)
図17は、この線形変換を実現する回路の一例である。この例では、線形変換は、ルックアップテーブル(LUT)方式を用いている。すなわち、入力データINに対し、テーブル55を参照して、前記式(2)に対応する値OUTを出力する。
x (l, m) = a × p (l, m) + b Equation (2)
FIG. 17 is an example of a circuit that realizes this linear conversion. In this example, the linear transformation uses a look-up table (LUT) method. That is, with reference to the table 55, the value OUT corresponding to the equation (2) is output for the input data IN.

テーブル55は、SRAMやROMなどのメモリ回路でテーブルデータをあらかじめ設定することで実現することができる。また、式(2)に従った入出力の真理値表を作って、アンドゲート、オアゲート、イクスクルーシブオアゲートなどの基本的ロジックゲートで、回路を構成することでテーブルを実現することもできる。   The table 55 can be realized by setting table data in advance with a memory circuit such as SRAM or ROM. It is also possible to create an input / output truth table according to equation (2) and configure the circuit with basic logic gates such as AND gates, OR gates, and exclusive OR gates to realize the table. .

この線形変換の動作は、元の画像データから、画素データp[l][m]を、順次、入力データINとしてハードウエアモジュールに転送し、この入力データに対する出力データOUTをテーブル55を参照して求め、出力するものである。   In this linear conversion operation, pixel data p [l] [m] is sequentially transferred from the original image data to the hardware module as input data IN, and output data OUT for the input data is referred to table 55. Is obtained and output.

[処理の具体例の第2の実施例の説明]
第2の実施例では、以上説明した3つの画像フィルタを連続して処理することにより、画像のコントラストを上げ、ノイズを除去し、輪郭の強調をすることができ、不鮮明な画像を鮮明にするという画像処理アプリケーションを実現するものである。
[Description of Second Example of Specific Example of Processing]
In the second embodiment, by continuously processing the three image filters described above, the contrast of the image can be increased, noise can be removed, the contour can be enhanced, and the blurred image can be sharpened. The image processing application is realized.

このアプリケーションプログラムAPの構造を、図18を用いて説明する。このアプリケーションプログラムAPで利用するソフトウエアモジュールSMと、ハードウエアモジュールHMとを関連付ける識別符号IDのリストが、アプリケーションプログラムAPのヘッダ部HEDに付加されている。   The structure of this application program AP will be described with reference to FIG. A list of identification code IDs for associating the software module SM used in the application program AP with the hardware module HM is added to the header portion HED of the application program AP.

プログラムAP内では、ハードウエアモジュールSMとソフトウエアモジュールHMとが、二重化された処理として呼び出される。   In the program AP, the hardware module SM and the software module HM are called as a duplicated process.

利用する処理モジュールは、ABC001,XYZ001,PQR001の3つとされるので、ヘッダ部HEDには、これらの処理に対応するハードウエアモジュールHMの識別符号HmABC001,HmXYZ001,HmPQR001が記載されている。   Since there are three processing modules ABC001, XYZ001, and PQR001, identification codes HmABC001, HmXYZ001, and HmPQR001 of the hardware module HM corresponding to these processes are described in the header part HED.

ソフトウエアモジュールSMとハードウエアモジュールHMとは同一の引数および戻り値を持って互換性が完全に保たれており、アプリケーションプログラムAPからは同じ処理モジュールに見えるように構成されている。   The software module SM and the hardware module HM have the same arguments and return values and are completely compatible with each other, and are configured to appear to the same processing module from the application program AP.

次に、この画像処理の動作を図19およびその続きである図20に示したフローチャートに示す。この図19および図20のフローチャートは、図7〜図9を用いて説明した処理動作に対応しており、対応する各ステップには、同一ステップ番号を付してある。   Next, this image processing operation is shown in FIG. 19 and the flowchart shown in FIG. The flowcharts of FIGS. 19 and 20 correspond to the processing operations described with reference to FIGS. 7 to 9, and the corresponding step numbers are assigned to the corresponding steps.

図21は、この画像処理動作のタイミングチャートを示すものである。図19、図20のフローチャートと、この図21のタイミングチャートを用いて、この第2の実施例の画像処理動作を以下に説明する。なお、図21では、処理aが線形変換PQR001、処理bがGaussianフィルタを使ったノイズ除去処理ABC001、処理cがLaplacianフィルタを使った輪郭強調処理XYZ001をそれぞれ示している。   FIG. 21 shows a timing chart of this image processing operation. The image processing operation of the second embodiment will be described below using the flowcharts of FIGS. 19 and 20 and the timing chart of FIG. In FIG. 21, the process a shows a linear transformation PQR001, the process b shows a noise removal process ABC001 using a Gaussian filter, and the process c shows an edge enhancement process XYZ001 using a Laplacian filter.

また、使用する処理モジュールは、線形変換PQR001、ノイズ除去処理ABC001、輪郭強調処理XYZ001の3種類なので、図7〜図9における処理モジュール数Mは3となる。また、画像のR(赤データ)、G(緑データ)、B(青データ)の各プレーンに対して、処理aから処理cまでを繰り返し実行するので、図7〜図9における繰り返し数Nは3となる。   Also, since there are three types of processing modules to be used, linear transformation PQR001, noise removal processing ABC001, and contour enhancement processing XYZ001, the number M of processing modules in FIGS. Further, since the process a to the process c are repeatedly executed for each plane of R (red data), G (green data), and B (blue data) of the image, the repetition number N in FIGS. 3

図21において、時点t0で、アプリケーションプログラムが起動すると、プログラムAPの初期化処理や処理画像の準備などが行われる。同時にアプリケーションプログラムAPのヘッダ部HEDにある識別符号IDを読み込み、そこに記載されているハードウエアモジュールHMの回路情報を取得して、プログラマブル論理回路上にコンフィギュレーションする処理を、時点t1から開始する。   In FIG. 21, when the application program is activated at time t0, initialization processing of the program AP, preparation of a processed image, and the like are performed. At the same time, the process of reading the identification code ID in the header part HED of the application program AP, obtaining the circuit information of the hardware module HM described therein, and configuring it on the programmable logic circuit is started from time t1. .

図19において、繰り返し数をカウントするjが初期化されてj=1となり(ステップS31)、画像のRプレーンに対する処理を開始する。次に何番めのモジュールデータについての処理かを示す変数kを初期化してk=1とする(ステップS51)。   In FIG. 19, j for counting the number of repetitions is initialized to j = 1 (step S31), and processing for the R plane of the image is started. Next, a variable k indicating the number of module data to be processed is initialized to k = 1 (step S51).

図21において、処理a(PQR001)を実行する直前の時点t2で、OSにコンフィギュレーション完了を問い合わせる(ステップS52)。完了していない場合(k≧i)、アプリケーションプログラムAPは、ソフトウエアモジュールSmPQR001を使って処理を実行する(ステップS53)。   In FIG. 21, at the time t2 immediately before executing the process a (PQR001), the OS is inquired of the completion of configuration (step S52). If not completed (k ≧ i), the application program AP executes processing using the software module SmPQR001 (step S53).

以降、処理bおよび処理cの直前の時点t4、t6でも同様の問い合わせを、OSに対し行う。しかし、この例では、図21のタイミングチャートに示すように、対応するハードウエアモジュールHmABC001,HmXYZ001のコンフィギュレーションが完了していないので、それぞれソフトウエアモジュールSmABC001,SmXYZ001を用いて処理を実行して、繰り返し処理の1回目が終了する。   Thereafter, the same inquiry is made to the OS at time points t4 and t6 immediately before the process b and the process c. However, in this example, as shown in the timing chart of FIG. 21, since the configuration of the corresponding hardware modules HmABC001, HmXYZ001 is not completed, the processing is executed using the software modules SmABC001, SmXYZ001, respectively. The first iteration is completed.

一方、図21に示すように、処理aのハードウエアモジュールHmPQR001がプログラマブル論理回路16上にコンフィギュレーションされると、OSに対し、時点t8で、そのコンフィギュレーションの完了が通知される(ステップS43)。   On the other hand, as shown in FIG. 21, when the hardware module HmPQR001 of process a is configured on the programmable logic circuit 16, the completion of the configuration is notified to the OS at time t8 (step S43). .

上述した繰り返し処理の1回目が終了した後に、画像のGプレーンを処理する繰り返し処理の2回目が始まり(j=2)、再び、処理aの直前の時点t9までプログラムが進行すると、再び、OSにコンフィギュレーション完了を問い合わせる(ステップS52)。コンフィギュレーション完了(k<i)の返答があると、今度は、処理データをハードウエアモジュールHmPQR001に渡し、ハードウエアで処理した後、時点t11 で、結果のみをプログラムへ戻す(ステップS53)。   After the first repetition of the above-described repetition process, the second repetition of the G-plane processing of the image starts (j = 2), and when the program proceeds to time t9 immediately before the process a, the OS again Is inquired of the completion of configuration (step S52). If there is a response indicating that the configuration is complete (k <i), the processing data is passed to the hardware module HmPQR001 and processed by the hardware, and then only the result is returned to the program at time t11 (step S53).

処理bの直前の時点t12 でも、OSに対し問い合わせを行うが(ステップS52)、この例では、図21に示すように、対応するハードウエアモジュールHmABC001のコンフィギュレーションが完了していないので、ソフトウエアモジュールSmABC001で処理を行う(ステップS53)。   Even at time t12 immediately before process b, an inquiry is made to the OS (step S52). In this example, as shown in FIG. 21, the configuration of the corresponding hardware module HmABC001 has not been completed. Processing is performed by the module SmABC001 (step S53).

しかし、処理cの直前の時点t16 でOSに対し問い合わせを行うと、この例では、図21に示すように、対応するハードウエアモジュールHmXYZ001のコンフィギュレーションが完了しているので、このハードウエアモジュールHmXYZ001で処理を行って(ステップS53)、繰り返し処理の2回目が終了する。   However, when an inquiry is made to the OS at time t16 immediately before the process c, in this example, as shown in FIG. 21, the configuration of the corresponding hardware module HmXYZ001 has been completed, so this hardware module HmXYZ001. In step S53, the second iteration is completed.

繰り返し処理の2回目が終了した後に、画像のBプレーンを処理する繰り返し処理の3回目が始まる(j=3)。このときには、各処理の直前の時点t18 、t20 、t22 で、OSにコンフィギュレーションを問い合わすと、対応するハードウエアモジュールHmPQR001,HmABC001,HmXYZ001の全てがプログラマブル論理回路16上にコンフィギュレーションされているので、処理a,b,cは、全て、ハードウエアモジュールHmPQR001,HmABC001,HmXYZ001にて処理が実行され、くり返し処理の3回目が終了し、アプリケーションも終了する。   After the second iteration, the third iteration of processing the B plane of the image begins (j = 3). At this time, when the configuration is inquired to the OS at time points t18, t20, and t22 immediately before each processing, all the corresponding hardware modules HmPQR001, HmABC001, and HmXYZ001 are configured on the programmable logic circuit 16. The processes a, b, and c are all executed by the hardware modules HmPQR001, HmABC001, and HmXYZ001, the third repeat process is completed, and the application is also terminated.

以上のようにして、この第1の実施の形態の第2の実施例においても、ソフトウエアモジュールによる処理を実行しながら、ハードウエアモジュールのプログラマブル論理回路16へのコンフィギュレーションを並行して行い、コンフィギュレーションが完了したものについては、プログラマブル論理回路16によるハードウエア処理を行うようにしたので、コンフィギュレーションの時間を考慮することなく、効率的にソフトウエア処理と、ハードウエア処理を行って、全体としての処理時間の短縮化を図ることができる。   As described above, also in the second example of the first embodiment, the configuration of the hardware logic programmable logic circuit 16 is performed in parallel while executing the processing by the software module. Since the hardware processing by the programmable logic circuit 16 is performed for those for which the configuration has been completed, the software processing and the hardware processing are efficiently performed without considering the configuration time. The processing time can be shortened.

[第2の実施の形態]
次に、この発明による情報処理システムの第2の実施の形態の構成を図22に示す。
[Second Embodiment]
Next, the configuration of a second embodiment of the information processing system according to the present invention is shown in FIG.

この第2の実施の形態においては、ハードウエアモジュール取得手段300が取得して、プログラマブル論理回路400に構成したハードウエアモジュールHMの識別符号は、識別符号記録手段800に記録される点が、第1の実施の形態と異なる。他の構成要素は、第1の実施の形態と同様である。   In the second embodiment, the identification code of the hardware module HM acquired by the hardware module acquisition unit 300 and configured in the programmable logic circuit 400 is recorded in the identification code recording unit 800. Different from the first embodiment. Other components are the same as those in the first embodiment.

この実施の形態の場合、識別符号記録手段800には、ハードウエアモジュール取得手段300により、情報処理システム内の記憶装置あるいはネットワーク20上の記憶装置21から取得されて、プログラマブル論理回路400に再構成されたハードウエアモジュールHMの識別符号IDが、その再構成順に記録される。したがって、この識別符号記録装置800には、ハードウエアモジュールHMの使用履歴が記録されることになる。   In the case of this embodiment, the identification code recording means 800 is acquired by the hardware module acquisition means 300 from the storage device in the information processing system or the storage device 21 on the network 20 and reconfigured into the programmable logic circuit 400. The identification codes ID of the hardware modules HM that have been recorded are recorded in the order of their reconstruction. Therefore, the identification code recording device 800 records the usage history of the hardware module HM.

この第2の実施の形態のハードウエア構成は、識別符号記録手段800を、次に説明するように構成することにより、図3に示した第1の実施の形態を実現する情報処理システム10と同じハードウエア構成で実現できる。   The hardware configuration of the second embodiment includes an information processing system 10 that realizes the first embodiment shown in FIG. 3 by configuring the identification code recording means 800 as described below. It can be realized with the same hardware configuration.

すなわち、ハードウエアモジュールHMのコンフィギュレーションが終了し、図8のステップS43に示すように、コンフィギュレーションの終了がOSに通知されたとき、コンフィギュレーションが終了したハードウエアモジュールHMの識別符号を、システム10内の記憶装置、例えば、図3のハードディスクドライブ18によりハードディスクやメインメモリ13に記録することにより、識別符号記録手段800を実現する。   That is, when the configuration of the hardware module HM is completed and the OS is notified of the end of the configuration as shown in step S43 in FIG. 8, the identification code of the hardware module HM that has completed the configuration is The identification code recording means 800 is realized by recording on the hard disk or the main memory 13 by the storage device 10 such as the hard disk drive 18 of FIG.

[処理の具体例の実施例(第3の実施例)]
次に、この第2の実施の形態における第1の実施例(以下、第3の実施例という)を、図23のフローチャートを用いて説明する。
[Example of specific example of processing (third example)]
Next, a first example (hereinafter referred to as a third example) in the second embodiment will be described with reference to the flowchart of FIG.

この第3の実施例は、紙文書をスキャナで読み込んで、電子文書に変換する処理の例である。紙文書は、文字で記述された文字部分と、図や写真の画像部分で構成される。   The third embodiment is an example of processing for reading a paper document with a scanner and converting it into an electronic document. A paper document is composed of a character portion described in characters and an image portion of a figure or photograph.

図23に示すように、まず、最初に、スキャナを使って、画像部の読み取りに必要な解像度と階調数で紙文書を読み取り、画像データとして蓄積する(ステップS61)。次に、読み取った画像データを、既知の文字画像分離処理技術を用いて、文字部と画像部に分離する(ステップS62)。   As shown in FIG. 23, first, using a scanner, a paper document is read with the resolution and the number of gradations necessary for reading the image portion, and stored as image data (step S61). Next, the read image data is separated into a character portion and an image portion using a known character image separation processing technique (step S62).

分離した文字部の画像データは、第1のアプリケーションによって、Laplacianフィルタによりエッジ強調の前処理を行い(ステップS63)、既知の文字認識技術を用いて認識し(ステップS64)、文字コードによって表される文字データに変換する(ステップS65)。   The separated image data of the character part is subjected to edge enhancement preprocessing by a Laplacian filter by the first application (step S63), recognized using a known character recognition technique (step S64), and represented by a character code. Is converted into character data (step S65).

また、画像部の画像データは、第2のアプリケーションによって、前述の第2の実施例で述べた線形変換処理によりコントラストを整え(ステップS66)、第2の実施例で述べたGaussianフィルタによりノイズを除去し(ステップS67)、さらに、第2の実施例で述べたLaplacianフィルタにより、エッジを強調して(ステップS68)、ディスプレイ表示に適した画像データに変換する(ステップS69)。   Further, the image data of the image portion is adjusted by the second application by the linear conversion process described in the second embodiment (step S66), and noise is reduced by the Gaussian filter described in the second embodiment. Then, the edge is emphasized by the Laplacian filter described in the second embodiment (step S68) and converted into image data suitable for display (step S69).

最後に、例えば市販の電子文書編集ソフトウエアを用いて、文字部の文字データと画像部の画像データを、所望のレイアウトに編集して(ステップS70)、電子文書が完成する。   Finally, for example, using commercially available electronic document editing software, the character data of the character part and the image data of the image part are edited into a desired layout (step S70), and the electronic document is completed.

第1のアプリケーションと第2のアプリケーションは、ともに前記第2の実施例で示したアプリケーションと同じように、アプリケーションを構成するソフトウエアモジュールSMと同じ処理をするハードウエアモジュールHMの識別符号IDをアプリケーションのヘッダ部HEDに持つ。   As in the application shown in the second embodiment, both the first application and the second application use the identification code ID of the hardware module HM that performs the same processing as the software module SM constituting the application. In the header part HED.

すなわち、第1のアプリケーションは、Laplacianフィルタのハードウエアモジュールの識別符号HmXYZ001を、そのヘッダ部HEDに持ち、また、第2のアプリケーションは、Gaussianフィルタのハードウエアモジュールの識別符号HmABC001と、線型変換のハードウエアモジュールの識別符号HmPQR001とを、そのヘッダ部HEDに持つ。   That is, the first application has the identification code HmXYZ001 of the hardware module of the Laplacian filter in its header part HED, and the second application has the identification code HmABC001 of the hardware module of the Gaussian filter and linear conversion. The identification code HmPQR001 of the hardware module is included in the header part HED.

この第2の実施の形態のハードウエアモジュール取得手段300は、第1の実施の形態で述べた手順と同様の手順で、第1のアプリケーションと第2のアプリケーションからハードウエアモジュールHMの識別符号IDを読み込むことで、コンフィギュレーションするハードウエアモジュールHMを認識する。   The hardware module acquisition unit 300 according to the second embodiment is similar to the procedure described in the first embodiment, and the identification code ID of the hardware module HM is obtained from the first application and the second application. Is recognized, the hardware module HM to be configured is recognized.

例えば、第1のアプリケーション、第2のアプリケーションの順序で実行する場合、第1のアプリケーションが実行されるときに、ハードウエアモジュールHmXYZ001が、プログラマブル論理回路400に構成され、識別符号HmXYZ001が識別符号記録手段800に記録される。   For example, when executing in the order of the first application and the second application, when the first application is executed, the hardware module HmXYZ001 is configured in the programmable logic circuit 400, and the identification code HmXYZ001 is recorded as the identification code. Recorded in means 800.

そして、第2のアプリケーションが実行されるときには、ハードウエアモジュール取得手段300は、3種のハードウエアモジュールHmPQR001,HmABC001,HmXYZ001を取得して、コンフィギュレーションする必要があるが、ハードウエアモジュール取得手段300が、識別符号記録手段800を参照することにより、ハードウエアモジュールHmXYZ001は、既にプログラマブル論理回路上に構成されていることが分かる。   When the second application is executed, the hardware module acquisition unit 300 needs to acquire and configure three types of hardware modules HmPQR001, HmABC001, and HmXYZ001, but the hardware module acquisition unit 300 However, by referring to the identification code recording means 800, it can be seen that the hardware module HmXYZ001 is already configured on a programmable logic circuit.

そこで、ハードウエアモジュール取得手段300は、第2のアプリケーションを実行するときには、ハードウエアモジュールHmXYZ001は、重ねてコンフィギュレーションすることはしない。しかし、ハードウエアモジュールHmXYZ001は、既にプログラマブル論理回路400上に構成されているので、前述した第1の実施例と第2の実施例で示したハードウエアモジュールの構成手順を経ること無く、LaplacianフィルタのソフトウエアモジュールHmXYZ001をハードウエアモジュールに置き換えて処理することができる。   Therefore, when the hardware module acquisition unit 300 executes the second application, the hardware module HmXYZ001 is not configured to overlap. However, since the hardware module HmXYZ001 has already been configured on the programmable logic circuit 400, the Laplacian filter can be used without going through the hardware module configuration procedure described in the first and second embodiments. The software module HmXYZ001 can be replaced with a hardware module for processing.

[処理の具体例の実施例(第4の実施例)]
次に、この発明の第2の実施の形態における他の実施例(以下、第4の実施例という)を説明する。
[Example of processing example (fourth example)]
Next, another example (hereinafter referred to as a fourth example) in the second embodiment of the present invention will be described.

前述の第3の実施例で示した、画像データからの文字認識を行う第1のアプリケーションと、画像データをディスプレイ表示に適した画像に変換する第2のアプリケーションは、それぞれが独立した処理であるから、それぞれが異なった画像データを処理することもできる。この第4の実施例は、それぞれ第1および第2のアプリケーションが異なった画像データを処理する場合である。   The first application for recognizing characters from image data and the second application for converting image data into an image suitable for display display shown in the third embodiment are independent processes. Therefore, different image data can be processed. In the fourth embodiment, the first and second applications respectively process different image data.

この第4の実施例において、第1のアプリケーションと第2のアプリケーションを続けて実行する場合は、識別符号記録手段800を参照することにより、共通に用いられるハードウエアモジュールHmXYZ001が、一方のアプリケーションを実行した後には既にプログラマブル論理回路上に構成されていることが分かる。したがって、他方のアプリケーションを実行するときに、第1、第2の実施例で示したハードウエアモジュールのコンフィギュレーションを行うこと無く、Laplacianフィルタのソフトウエアモジュールを、ハードウエアモジュールHmXYZ001に置き換えて処理するようにする。   In the fourth embodiment, when the first application and the second application are continuously executed, by referring to the identification code recording unit 800, the commonly used hardware module HmXYZ001 can execute one application. It can be seen that it is already configured on the programmable logic circuit after execution. Therefore, when the other application is executed, the Laplacian filter software module is replaced with the hardware module HmXYZ001 without performing the configuration of the hardware module shown in the first and second embodiments. Like that.

また、第4の実施例においては、一方のアプリケーションを実行した後に、情報処理システムの運転を停止し、後にシステムの運転を再開して他方のアプリケーションを実行するときには、次のようにすることにより、ハードウエアモジュールのコンフィギュレーションを効率的に行うことができる。   In the fourth embodiment, after one application is executed, the operation of the information processing system is stopped, and when the other application is executed by restarting the operation of the system later, the following is performed. The hardware module can be efficiently configured.

すなわち、システムを再開したときに、他方のアプリケーションの処理開始前に、識別符号記録手段800を参照して、記録されている識別符号に対応するハードウエアモジュールHMを、プログラマブル論理回路16上に構成する。   That is, when the system is restarted, the hardware module HM corresponding to the recorded identification code is configured on the programmable logic circuit 16 with reference to the identification code recording means 800 before starting the processing of the other application. To do.

これにより、他方のアプリケーションの処理を開始したときには、既に、前に処理を行ったアプリケーションと共通に用いるハードウエアモジュールHmXYZ001は、プログラマブル論理回路400上に構成されている。   Thereby, when the processing of the other application is started, the hardware module HmXYZ001 used in common with the previously processed application is configured on the programmable logic circuit 400.

したがって、第1、第2の実施例で示したハードウエアモジュールの構成手順を経ること無く、Laplacianフィルタのソフトウエアモジュールを、共通に用いるハードウエアモジュールHmXYZ001に置き換えて処理することができる。   Therefore, the Laplacian filter software module can be replaced with the commonly used hardware module HmXYZ001 without going through the hardware module configuration procedure shown in the first and second embodiments.

[第3の実施の形態]
以上に述べたように、プログラマブル論理回路16への回路情報の転送は、ネットワーク上の記憶装置21、またはシステム内部の記憶装置18から行われる。回路情報の転送には、システムの構成によっていくつかの方法がある。
[Third Embodiment]
As described above, the circuit information is transferred to the programmable logic circuit 16 from the storage device 21 on the network or the storage device 18 in the system. There are several methods for transferring circuit information depending on the system configuration.

例えば、(1)アプリケーションの実行と並行して、ネットワークから必要な情報を随時ダウンロードしながら、情報転送とコンフィギュレーションを行う方法や、(2)ネットワークから一旦すべての情報をシステム内部のハードディスク等の記憶装置にダウンロードしてから、アプリケーションの実行と並行して随時読み出し、その後ローカルバス転送、コンフィギュレーションといったシステム内部だけのローカルの転送方法がある。   For example, (1) a method of transferring information and configuration while downloading necessary information from the network in parallel with the execution of the application, or (2) temporarily transferring all information from the network to a hard disk in the system, etc. There is a local transfer method only inside the system, such as downloading to a storage device, reading at any time in parallel with execution of an application, and then local bus transfer and configuration.

しかし、いずれの場合でも、回路の再構成は、アプリケーションが、その回路を実行するまでに完了しなければならない。転送の時間が長くなるとアプリケーションの実行待ちが発生し、結果として処理速度が低下する問題がある。   In either case, however, circuit reconfiguration must be completed before the application executes the circuit. When the transfer time becomes long, there is a problem that execution waiting of an application occurs, and as a result, the processing speed decreases.

この問題を解決する方法のひとつとして、特開平8−76974号公報に示される方法がある。この公報に記載された方法は、次のようなものである。   As a method for solving this problem, there is a method disclosed in JP-A-8-76974. The method described in this publication is as follows.

プログラマブル論理回路を備えたデータ処理装置において、電源投入時には、読み取り専用メモリにあらかじめ格納されている回路情報をプログラマブル論理回路内のコンフィギュレーションメモリにダウンロードする。外部から回路情報をダウンロードするときには、回路情報を所定のRAMにコピーした後、RAMからプログラマブル論理回路内のコンフィギュレーションメモリにダウンロードする。   In a data processing apparatus equipped with a programmable logic circuit, circuit information stored in advance in a read-only memory is downloaded to a configuration memory in the programmable logic circuit when power is turned on. When circuit information is downloaded from the outside, the circuit information is copied to a predetermined RAM, and then downloaded from the RAM to the configuration memory in the programmable logic circuit.

さらに、外部から回路情報をダウンロードするときには、すでにプログラマブル論理回路内のコンフィギュレーションメモリにある回路情報と新たな回路情報を比較し、同一の場合、再ダウンロードしない。いわゆるキャッシングと呼ばれる手法である。   Furthermore, when downloading circuit information from the outside, the circuit information already in the configuration memory in the programmable logic circuit is compared with the new circuit information, and if they are the same, they are not downloaded again. This is a so-called caching method.

しかしながら、この従来例の方法には、次のような問題がある。   However, this conventional method has the following problems.

すなわち、前記従来例では、繰り返し使用されるにもかかわらず、プログラマブル論理回路の回路規模の制限により常駐することができない回路情報を、いわゆるキャッシングを用いて短い時間で再構成する。しかしながら、RAMの容量やその管理方法、また、データの種別の管理方法に不備な点があり、効率的なコンフィギュレーションが行えるとは言い難い。   That is, in the conventional example, circuit information that cannot be resident due to the limitation of the circuit scale of the programmable logic circuit despite being repeatedly used is reconfigured in a short time using so-called caching. However, there is a deficiency in the RAM capacity, its management method, and the data type management method, and it is difficult to say that efficient configuration can be performed.

コンフィギュレーションデータは、一旦、所定のRAMにコピーした後に、コンフィギュレーションメモリにダウンロードされ、直接、ネットワークからコンフィギュレーションメモリへ転送されるものではない。したがって、転送のためのデータの流れとしてみると、システムの共通バスであるPCIバスを経由することになり、このバスのトラフィック混雑状態、転送段数の増加などにより、結果として転送時間が長くかかってしまう問題がある。   The configuration data is not copied to a predetermined RAM, downloaded to the configuration memory, and directly transferred from the network to the configuration memory. Therefore, the data flow for transfer is via the PCI bus, which is a common bus of the system. As a result, the transfer time is long due to the traffic congestion state of this bus and the increase in the number of transfer stages. There is a problem.

また、電源投入時に、読み取り専用メモリからのダウンロード、または、一旦RAMにコピーされたもののダウンロードというように、コンフィギュレーションメモリに対して一方向の転送しか行われず、常に、RAMの中には、コンフィギュレーションメモリと同じ情報が格納されている状態になり、メモリの容量としては効率的ではないという問題がある。   Also, when the power is turned on, only one-way transfer is performed to the configuration memory, such as downloading from a read-only memory or downloading once copied to the RAM. The same information as the storage memory is stored, and there is a problem that the memory capacity is not efficient.

この第3の実施の形態は、以上の問題を解決したものである。   The third embodiment solves the above problems.

この第3の実施の形態のブロック図を、図24に示す。この図24から分かるように、この第3の実施の形態においては、ハードウエアモジュール取得手段300が取得したハードウエアモジュールの回路情報を一時的に記憶するローカルメモリ900を設ける。他は、第2の実施の形態の場合と全く同様である。   A block diagram of the third embodiment is shown in FIG. As can be seen from FIG. 24, in the third embodiment, a local memory 900 for temporarily storing the circuit information of the hardware module acquired by the hardware module acquiring unit 300 is provided. Others are exactly the same as in the second embodiment.

この第3の実施の形態においては、ハードウエアモジュール取得手段300は、プログラマブル論理回路400に対してコンフィギュレーションを行うときには、ローカルメモリ900にもその回路情報を記憶させるようにする。このとき、識別符号記録手段800には、そのコンフィギュレーションされ、また、ローカルメモリ900に記憶された回路情報を持つハードウエアモジュールの識別符号が記録される。   In the third embodiment, the hardware module acquisition unit 300 stores the circuit information in the local memory 900 when the programmable logic circuit 400 is configured. At this time, the identification code recording means 800 records the identification code of the hardware module that has been configured and has circuit information stored in the local memory 900.

そして、プログラム100内のヘッダ部HEDの識別符号に従って新たなハードウエアを取得するとき、前記識別符号記録手段800の識別符号を参照して、この識別符号記録手段800内に、取得しようとするハードウエアモジュールの識別符号があるが、プログラマブル論理回路には、コンフィギュレーションメモリの容量などの影響のために、その回路情報が構成されていないときには、ローカルメモリ900の記憶内容を確認した後、ローカルメモリ900に保存されている当該ハードウエアモジュールの回路情報を用いて、プログラマブル論理回路400のコンフィギュレーションを実行する。   When new hardware is acquired in accordance with the identification code of the header portion HED in the program 100, the identification code of the identification code recording unit 800 is referred to and the hardware to be acquired is stored in the identification code recording unit 800. If the circuit information is not configured in the programmable logic circuit due to the influence of the capacity of the configuration memory, etc., the stored contents of the local memory 900 are confirmed and then the local memory is checked. Using the circuit information of the hardware module stored in 900, the configuration of the programmable logic circuit 400 is executed.

これにより、PCIバス14を経由したデータ伝送は不要になり、高速にハードウエアモジュールの回路情報の、プログラマブル論理回路へのコンフィギュレーションができる。   As a result, data transmission via the PCI bus 14 is not required, and the hardware module circuit information can be configured into the programmable logic circuit at high speed.

すなわち、例えば、システム内記憶装置18から、あるいはネットワーク20から取得してハードウエアモジュールの回路情報を、一旦、メインメモリ13に蓄積し、コンフィギュレーションを実行する場合には、PCIバス14がコンフィギュレーションのために回路情報の伝送に使用されしまうことになるが、この第3の実施の形態のように、ローカルメモリ900に記憶されているハードウエアモジュールHMの回路情報により、プログラマブル論理回路16のコンフィギュレーションを実行するようにすれば、PCIバス14は、コンフィギュレーション時の回路情報が伝送されることがなくなり、PCIバス14を効率良く使用することができる。   That is, for example, when the circuit information of the hardware module obtained from the internal storage device 18 or the network 20 is temporarily stored in the main memory 13 and the configuration is executed, the PCI bus 14 is configured. Therefore, the configuration of the programmable logic circuit 16 is determined by the circuit information of the hardware module HM stored in the local memory 900 as in the third embodiment. If the configuration is executed, circuit information at the time of configuration is not transmitted to the PCI bus 14, and the PCI bus 14 can be used efficiently.

また、一度、プログラマブル論理回路にコンフィギュレーションされた回路情報が、コンフィギュレーションメモリの容量不足のために、他の回路情報に上書きされてしまう場合には、ローカルメモリ900に蓄えておくことが可能になり、当該ハードウエアモジュールをプログラマブル論理回路に再度コンフィギュレーションする必要が生じたときでも、ローカルメモリ900からプログラマブル論理回路400のコンフィギュレーションメモリに転送してコンフィギュレーションを実行することができる。   Also, if circuit information once configured in the programmable logic circuit is overwritten with other circuit information due to insufficient capacity of the configuration memory, it can be stored in the local memory 900. Thus, even when the hardware module needs to be reconfigured in the programmable logic circuit, the configuration can be executed by transferring the configuration from the local memory 900 to the configuration memory of the programmable logic circuit 400.

さらに、前述した実施例のように、例えば2つのアプリケーションを続けて実行する場合の後のアプリケーションの実行に先立ち、識別符号記録手段800に記録されている識別符号に基づき、ローカルメモリ900に格納されている回路情報を、プログラマブル論理回路に、高速にコンフィギュレーションして構成しておくことができる。   Further, as in the above-described embodiment, for example, prior to execution of an application after two applications are continuously executed, the application is stored in the local memory 900 based on the identification code recorded in the identification code recording unit 800. Circuit information can be configured in a programmable logic circuit at high speed.

この第4の実施の形態の場合の情報処理システム70のハードウエア構成例を図25に示す。   FIG. 25 shows a hardware configuration example of the information processing system 70 in the case of the fourth embodiment.

この情報処理システム70は、コンフィギュレーション用の回路情報を一時的に格納しておくキャッシュ用のローカルメモリとして、SRAMまたはDRAMで構成されるローカルメモリ71を備える。このローカルメモリ71へは、プログラマブル論理回路16からアクセスすることができるとともに、プログラマブル論理回路インターフェース15を介してPCIバス14からもアクセスすることができる。   The information processing system 70 includes a local memory 71 composed of SRAM or DRAM as a local memory for cache that temporarily stores circuit information for configuration. The local memory 71 can be accessed from the programmable logic circuit 16 and can also be accessed from the PCI bus 14 via the programmable logic circuit interface 15.

また、プログラマブル論理回路16のコンフィギュレーションメモリに格納された回路情報は、アドレスの制御によって読み出すことができ、ローカルメモリ71あるいはPCIバス14を経由して、メインメモリ13や記憶装置としてのハードディスクドライブ18に転送できる。   The circuit information stored in the configuration memory of the programmable logic circuit 16 can be read out by controlling the address, and via the local memory 71 or the PCI bus 14, the main memory 13 or the hard disk drive 18 as a storage device. Can be transferred to.

情報処理システム70のその他の構成は、図3の情報処理システム10と全く同様である。   The other configuration of the information processing system 70 is exactly the same as that of the information processing system 10 of FIG.

プログラマブル論理回路16と、メモリ13や記憶装置18間で回路情報を転送する速度は、デバイスの種類、転送バス幅、バス動作周波数、転送モード、転送バスのトラフィック状態、転送経路等の要因により変化する。   The speed at which circuit information is transferred between the programmable logic circuit 16 and the memory 13 or storage device 18 varies depending on factors such as device type, transfer bus width, bus operating frequency, transfer mode, transfer bus traffic status, and transfer path. To do.

ここで、プログラマブル論理回路16に対して回路情報の転送速度が高速なメモリや記憶装置を高位、低速なメモリや記憶装置を低位であると呼ぶことにする。この第3の実施の形態では、高位から順に並べると、プログラマブル論理回路16内部のコンフィギュレーションメモリ、ローカルメモリ71、メインメモリ13、システム内記憶装置としてのハードディスクドライブ18、ネットワークで接続された記憶装置21の順であるとする。   Here, a memory or a storage device having a high circuit information transfer speed with respect to the programmable logic circuit 16 is called a high level, and a low-speed memory or a storage device is called a low level. In the third embodiment, when arranged in order from the highest, the configuration memory in the programmable logic circuit 16, the local memory 71, the main memory 13, the hard disk drive 18 as a storage device in the system, and a storage device connected via a network Assume that the order is 21.

次に、この第3の実施の形態の基本的な動作は、第1の実施の形態の場合と同様であり、アプリケーションプログラムの実行時に、処理モジュールとして、ソフトウエアモジュールとハードウエアモジュールのいずれを使用するのかを、図6に示したフローチャートのようにして決定しながら処理を行うものである。   Next, the basic operation of the third embodiment is the same as that of the first embodiment. When an application program is executed, either a software module or a hardware module is used as a processing module. The process is performed while determining whether to use it as shown in the flowchart of FIG.

[処理の具体例の実施例(第5の実施例)]
この第5の実施例は、ローカルメモリ71を利用して、コンフィギュレーションの効率化を図るものである。この第6の実施例の要部の動作であるコンフィギュレーションの処理を、図26、図27、図28に示したフローチャートを使って説明する。
[Example of processing example (fifth example)]
The fifth embodiment uses the local memory 71 to improve the configuration efficiency. Configuration processing, which is the operation of the main part of the sixth embodiment, will be described with reference to the flowcharts shown in FIG. 26, FIG. 27, and FIG.

図26に示すように、ハードウエアモジュール取得手段300は、ハードウエアモジュールを取得するとき、識別符号記録手段800に記録された識別符号を参照することにより、コンフィギュレーションメモリに、コンフィギュレーションしようとするハードウエアモジュールに対応する回路情報が存在するかを確認する(ステップS71)。存在する場合は、コンフィギュレーションは行わずに、完了とする(ステップS72)。存在しない場合は、ローカルメモリ71の回路情報を確認する(ステップS73)。ローカルメモリ71上に、回路情報が存在する場合は、ローカルメモリ71からの回路情報のコンフィギュレーションの処理を行う(ステップS74)。   As shown in FIG. 26, when acquiring the hardware module, the hardware module acquisition unit 300 attempts to configure the configuration memory by referring to the identification code recorded in the identification code recording unit 800. It is checked whether circuit information corresponding to the hardware module exists (step S71). If it exists, the configuration is not performed and the processing is completed (step S72). If it does not exist, the circuit information of the local memory 71 is confirmed (step S73). If circuit information exists on the local memory 71, configuration processing of circuit information from the local memory 71 is performed (step S74).

図27は、ローカルメモリ71からのコンフィギュレーションのルーチンのフローチャートである。この図27に示すように、コンフィギュレーションメモリに十分な空き領域があるか否か判断する(ステップS81)。十分な空き領域があれば、ステップS83に飛んで、ローカルメモリ71から回路情報を、プログラマブル論理回路16のコンフィギュレーションメモリへ転送して、コンフィギュレーションをそのまま実行する。空き領域がない場合は、ステップS82に進み、優先順位の低いハードウエアモジュール上に上書きした後、ステップS83に進んで、コンフィギュレーションを行う。   FIG. 27 is a flowchart of a configuration routine from the local memory 71. As shown in FIG. 27, it is determined whether or not there is a sufficient free area in the configuration memory (step S81). If there is sufficient free space, the process jumps to step S83 to transfer the circuit information from the local memory 71 to the configuration memory of the programmable logic circuit 16 and execute the configuration as it is. If there is no free space, the process proceeds to step S82, overwriting the hardware module with a lower priority, and then proceeds to step S83 to perform configuration.

ローカルメモリ71上に回路情報がない場合には、メインメモリ13の回路情報を確認する(ステップS75)。メインメモリ13に回路情報があれば、その回路情報を、メインメモリ13からローカルメモリ71と、プログラマブル論理回路16のコンフィギュレーションメモリとへ転送する処理を行う(ステップS76)。   If there is no circuit information on the local memory 71, the circuit information of the main memory 13 is confirmed (step S75). If there is circuit information in the main memory 13, the circuit information is transferred from the main memory 13 to the local memory 71 and the configuration memory of the programmable logic circuit 16 (step S76).

図28は、このメインメモリ13からの転送処理のルーチンのフローチャートを示すものである。メインメモリ13からの転送に当たって、まず、プログラマブル論理回路16のコンフィギュレーションメモリ上の空き領域を確認し(ステップS91)、空き領域が十分でないときには、優先順位の低い回路情報に上書きするために、その上書きする領域を決定し(ステップS92)、次のステップS93に進む。   FIG. 28 shows a flowchart of a routine for transfer processing from the main memory 13. In transferring from the main memory 13, first, an empty area on the configuration memory of the programmable logic circuit 16 is confirmed (step S91). When the empty area is not enough, the circuit information with low priority is overwritten. The area to be overwritten is determined (step S92), and the process proceeds to the next step S93.

コンフィギュレーションメモリ上の空き領域が十分であれば、ステップS91からステップS93に飛んで、ローカルメモリ71上の空き領域を確認する(ステップS93)。ローカルメモリ71の空き領域が十分でないときには、優先順位の低い回路情報に上書きして転送を行うために、ステップS94に進んで、その上書きする領域を決定する。そして、次のステップS95において、ローカルメモリ71にメインメモリ13からの回路情報の転送を行い、その転送された回路情報に基づいてプログラマブル論理回路16のコンフィギュレーションを行う。   If there is enough free space on the configuration memory, the process jumps from step S91 to step S93 to check the free space on the local memory 71 (step S93). If there is not enough free space in the local memory 71, the process proceeds to step S94 to determine the area to be overwritten in order to perform transfer by overwriting circuit information having a low priority. In the next step S95, the circuit information from the main memory 13 is transferred to the local memory 71, and the programmable logic circuit 16 is configured based on the transferred circuit information.

ローカルメモリ71の空き領域が十分であれば、ステップS93からステップS95に飛んで、ローカルメモリ71にメインメモリ13からの回路情報の転送を行い、その転送された回路情報に基づいてプログラマブル論理回路16のコンフィギュレーションを行う。   If the free space in the local memory 71 is sufficient, the process jumps from step S93 to step S95 to transfer the circuit information from the main memory 13 to the local memory 71, and the programmable logic circuit 16 based on the transferred circuit information. Configure.

そして、図26に戻って、メインメモリ13に回路情報がない場合には、さらに低位の回路情報格納先へと探索していく。この実施例では、ネットワーク20上の記憶装置21から回路情報をメインメモリ13に転送する(ステップS77)。この場合も、メインメモリ13上に空き領域がない場合は、メインメモリ13上の優先順位の回路情報に上書きする。   Then, returning to FIG. 26, if there is no circuit information in the main memory 13, the search is made to a lower circuit information storage destination. In this embodiment, circuit information is transferred from the storage device 21 on the network 20 to the main memory 13 (step S77). Also in this case, when there is no free space on the main memory 13, the priority order circuit information on the main memory 13 is overwritten.

メインメモリ13への転送後は、メインメモリ13に回路情報が存在する場合と同じ処理を行うことになり、ローカルメモリ71と、プログラマブル論理回路16のコンフィギュレーションメモリへと転送される。このように、回路情報は、プログラマブル論理回路16のコンフィギュレーションメモリへ書き込まれるとともに、最も、転送が高速にできるローカルメモリ71にも転送される。   After the transfer to the main memory 13, the same processing as when the circuit information exists in the main memory 13 is performed and transferred to the local memory 71 and the configuration memory of the programmable logic circuit 16. As described above, the circuit information is written to the configuration memory of the programmable logic circuit 16 and is also transferred to the local memory 71 which can be transferred at the highest speed.

ローカルメモリ71からのプログラマブル論理回路16のコンフィギュレーションメモリへの転送およびコンフィギュレーションは、メインメモリ13からの転送およびコンフィギュレーションに比べて、PCIバス14を経由することがないので、他のデータ転送との輻輳がなく、高速にコンフィギュレーションが実行できる。   Since the transfer and configuration from the local memory 71 to the configuration memory of the programmable logic circuit 16 do not go through the PCI bus 14 as compared with the transfer and configuration from the main memory 13, other data transfer and The configuration can be executed at high speed without congestion.

次に、ローカルメモリ71を使用して、4つのハードウエアモジュールを、プログラマブル論理回路16にコンフィギュレーションする具体例を、図29、図30を用いて説明する。   Next, a specific example in which four hardware modules are configured in the programmable logic circuit 16 using the local memory 71 will be described with reference to FIGS. 29 and 30. FIG.

この第6の実施例では、プログラムのヘッダHEDに記載された識別符号に基づいて、ハードウエアモジュールを、例えばネットワーク上の記憶装置20から取得し、ローカルメモリ71を使うことにより、より高速に回路情報をプログラマブル論理回路16にコンフィギュレーションする。   In the sixth embodiment, the hardware module is acquired from, for example, the storage device 20 on the network based on the identification code described in the header HED of the program, and the local memory 71 is used, so that the circuit is faster. Information is configured into the programmable logic circuit 16.

4つのハードウエアモジュールA〜Dを用いた処理フローを、図29に示す。ハードウエアモジュールの処理順序は、A→B→C→A→Dである。ハードウエアモジュールAによる処理を2回行うため、ハードウエアモジュールAの優先順位が最も高い。プログラマブル論理回路16上のハードウエアモジュールA,B,C,Dの配置を図30に示す。この場合、ハードウエアモジュールAとハードウエアモジュールCは重なりを持つので、同時にコンフィギュレーションできない。   A processing flow using the four hardware modules A to D is shown in FIG. The processing order of the hardware modules is A → B → C → A → D. Since the processing by the hardware module A is performed twice, the hardware module A has the highest priority. The arrangement of the hardware modules A, B, C, and D on the programmable logic circuit 16 is shown in FIG. In this case, the hardware module A and the hardware module C are overlapped and cannot be configured at the same time.

これらのハードウエアモジュールA〜Dのコンフィギュレーション手順を、図29を使って説明する。   The configuration procedure of these hardware modules A to D will be described with reference to FIG.

処理時間tc0 に、ネットワーク上の記憶装置21からハードウエアモジュールAの転送が開始され、その回路情報は、一旦、メインメモリ13に格納される。そして、処理時間tc1 〜tc2 の期間で、メインメモリ13から、ローカルメモリ71とプログラマブル論理回路16のコンフィギュレーションメモリへ転送される。   At the processing time tc0, the transfer of the hardware module A from the storage device 21 on the network is started, and the circuit information is temporarily stored in the main memory 13. Then, the data is transferred from the main memory 13 to the local memory 71 and the configuration memory of the programmable logic circuit 16 during the processing time tc1 to tc2.

ハードウエアモジュールAは最も優先順位が高いので、ローカルメモリ71のメモリ容量が十分でない場合には、ハードウエアモジュールB、C、Dがローカルメモリ71に格納されずに、これらハードウエアモジュールB、C、Dは、さらに低位のメインメモリ13、または、内部記憶装置としてのハードディスクドライブ18へ格納されることになる。ハードウエアモジュールAのコンフィギュレーションは処理時間tc2 で完了する。   Since the hardware module A has the highest priority, when the memory capacity of the local memory 71 is not sufficient, the hardware modules B, C, and D are not stored in the local memory 71, and the hardware modules B, C , D are stored in the lower main memory 13 or the hard disk drive 18 as an internal storage device. The configuration of hardware module A is completed in processing time tc2.

次に、ハードウエアモジュールBおよびCは、それぞれ処理時間tc1 〜tc2 、処理時間tc3 〜tc4 の期間内で、ネットワーク20上の記憶装置21からの転送が開始され、処理時間tc4 、処理時間tc6 でプログラマブル論理回路16へのコンフィギュレーションが完了する。   Next, the hardware modules B and C start the transfer from the storage device 21 on the network 20 within the processing times tc1 to tc2 and the processing times tc3 to tc4, respectively, and at the processing time tc4 and processing time tc6. Configuration to the programmable logic circuit 16 is complete.

ここで、ハードウエアモジュールCのコンフィギュレーションを開始する処理時間tc5 のときには、プログラマブル論理回路16上のハードウエアモジュールCは、ハードウエアモジュールAの一部に上書きして構成する。したがって、プログラマブル論理回路16上でのコンフィギュレーション状態としては、ハードウエアモジュールAが無効になり、ハードウエアモジュールBはそのまま有効で、処理時間tc6 からハードウエアモジュールCが有効になる。   Here, at the processing time tc5 when the configuration of the hardware module C is started, the hardware module C on the programmable logic circuit 16 is configured by overwriting a part of the hardware module A. Therefore, as a configuration state on the programmable logic circuit 16, the hardware module A is invalid, the hardware module B is valid as it is, and the hardware module C is valid from the processing time tc6.

ここで、ハードウエアモジュールCをローカルメモリ71に転送するときに、ローカルメモリ71の空き容量を考える必要がある。この実施例の場合、ローカルメモリ71の容量が、ハードウエアモジュールA、BおよびCのすべてを格納するために十分でないので、ハードウエアモジュールBのローカルメモリ71の領域に、ハードウエアモジュールCを上書きして格納させる。   Here, when the hardware module C is transferred to the local memory 71, it is necessary to consider the free capacity of the local memory 71. In this embodiment, since the capacity of the local memory 71 is not sufficient to store all of the hardware modules A, B and C, the area of the local memory 71 of the hardware module B is overwritten with the hardware module C. And store it.

これは、ハードウエアモジュールBは、ハードウエアモジュールAに比べて優先順位が低いためである。したがって、処理時間tc5 の時点からハードウエアモジュールCの情報がローカルメモリ71に格納されていくことになる。   This is because the hardware module B has a lower priority than the hardware module A. Therefore, the information of the hardware module C is stored in the local memory 71 from the time of the processing time tc5.

次に、再びハードウエアモジュールAによる処理が行われるが、前に無効になったハードウエアモジュールAを再びコンフィギュレーションするために、ハードウエアモジュールCによるアプリケーションプログラムの処理が完了する処理時間tc7 の時点から、ローカルメモリ71に格納されているハードウエアモジュールAの回路情報を、プログラマブル論理回路16のコンフィギュレーションメモリに転送する。   Next, the processing by the hardware module A is performed again. At the time of processing time tc7 when the processing of the application program by the hardware module C is completed in order to reconfigure the previously invalidated hardware module A. Then, the circuit information of the hardware module A stored in the local memory 71 is transferred to the configuration memory of the programmable logic circuit 16.

したがって、この処理時間tc7 の時点からハードウエアモジュールCが無効になり、ハードウエアモジュールAがプログラマブル論理回路に再構成されて、処理時間tc8 の時点でコンフィギュレーションが完了する。メモリへの格納状態からみると、図29のローカルメモリ71から、プログラマブル論理回路16のコンフィギュレーションメモリへ、図29でTraで示すような転送が行われたことになる。   Therefore, the hardware module C becomes invalid from the time point of the processing time tc7, the hardware module A is reconfigured into a programmable logic circuit, and the configuration is completed at the time point of the processing time tc8. From the viewpoint of the storage state in the memory, the transfer as indicated by Tra in FIG. 29 is performed from the local memory 71 in FIG. 29 to the configuration memory of the programmable logic circuit 16.

最後に、ハードウエアモジュールDのコンフィギュレーションが行われる。   Finally, the hardware module D is configured.

なお、上記の例で、ハードウエアモジュールの回路情報を、ネットワーク20上の記憶装置21から、一旦、メインメモリ13に格納して、ローカルメモリ71とコンフィギュレーションメモリに転送したが、ネットワーク20から、直接、メインメモリ13とローカルメモリ71とコンフィギュレーションメモリに転送してもよい。   In the above example, the circuit information of the hardware module is temporarily stored in the main memory 13 from the storage device 21 on the network 20 and transferred to the local memory 71 and the configuration memory. You may transfer directly to the main memory 13, the local memory 71, and the configuration memory.

ここで、回路情報を格納するメモリの容量を効率的に使用する場合には、メモリの格納状態においては、図29で、メインメモリ13の格納状態が存在しない状態がよい。   Here, when the capacity of the memory for storing circuit information is used efficiently, it is preferable that the storage state of the main memory 13 does not exist in FIG. 29 in the storage state of the memory.

ネットワーク20から、直接、ローカルメモリ71と、プログラマブル論理回路16のコンフィギュレーションメモリに転送された後の、処理時間tc5 以降では、ハードウエアモジュールBは、ローカルメモリ71では、ハードウエアモジュールCによって上書きされてしまい、コンフィギュレーションメモリにしか、その回路情報は残っていないことになる。   After the processing time tc5 after being transferred directly from the network 20 to the local memory 71 and the configuration memory of the programmable logic circuit 16, the hardware module B is overwritten by the hardware module C in the local memory 71. Thus, the circuit information remains only in the configuration memory.

もし、プログラマブル論理回路16のコンフィギュレーションメモリのハードウエアモジュールBの領域に新たなハードウエアモジュールが構成されて、上書きされてしまうと、再び、このハードウエアモジュールBを使用する予定がある場合には、このハードウエアモジュールBをコンフィギュレーションメモリからローカルメモリ71へと転送して格納しておく。   If a new hardware module is configured in the area of the hardware module B in the configuration memory of the programmable logic circuit 16 and is overwritten, the hardware module B is again used. The hardware module B is transferred from the configuration memory to the local memory 71 and stored.

ハードウエアモジュールの使用予定に関する情報は、例えば、プログラムを事前に解析しておくことにより、得ることができる。また、この実施の形態の場合には、プログラムのヘッダ部HEDに、識別符号IDが処理モジュール順に記述されるので、そのヘッダ部HEDの識別符号IDの並びを参照することでも、知ることができる。   Information regarding the use schedule of the hardware module can be obtained by, for example, analyzing the program in advance. In the case of this embodiment, since the identification code IDs are described in the order of processing modules in the header part HED of the program, it can also be known by referring to the arrangement of the identification code IDs of the header part HED. .

さらに、識別符号記録手段800に記録されている識別符号を参照することにより、過去の使用履歴から推定することもできる。この例では、識別符号記録手段800の識別符号による使用されたハードウエアモジュールHMの過去の使用履歴から、使用が予定されるハードウエアモジュールHMの回路情報を、プログラマブル論理回路のコンフィギュレーションメモリから、ローカルメモリ71に転送しておくようにする。   Furthermore, by referring to the identification code recorded in the identification code recording means 800, it can be estimated from the past use history. In this example, from the past use history of the hardware module HM used by the identification code of the identification code recording means 800, the circuit information of the hardware module HM scheduled to be used is obtained from the configuration memory of the programmable logic circuit. The data is transferred to the local memory 71.

このようにすることによって、ローカルメモリ71と、プログラマブル論理回路16のコンフィギュレーションメモリとの高速転送に関わるメモリ容量を、効率良く使うことができる。   By doing so, the memory capacity related to the high-speed transfer between the local memory 71 and the configuration memory of the programmable logic circuit 16 can be used efficiently.

次に、プログラマブル論理回路16のコンフィギュレーションメモリと、このコンフィギュレーションメモリの容量より大きなローカルメモリ71との間で、ハードウエアモジュールHMの回路情報を通信する実施例について、図31を用いて説明する。   Next, an embodiment in which circuit information of the hardware module HM is communicated between the configuration memory of the programmable logic circuit 16 and the local memory 71 larger than the capacity of the configuration memory will be described with reference to FIG. .

プログラマブル論理回路16のコンフィギュレーションメモリ160と、ローカルメモリ71を結線するアドレスバスの幅と、データバスの幅において、ローカルメモリ71のアドレスバスの幅の方が大きくなるため、その下位ビット側をコンフィギュレーションメモリ160のアドレスバス幅に対応させる。   Since the width of the address bus connecting the configuration memory 160 of the programmable logic circuit 16 and the local memory 71 and the width of the data bus are larger, the width of the address bus of the local memory 71 is larger. Corresponding to the address bus width of the storage memory 160.

ローカルメモリ71のアドレスバスの上位ビット側の制御により、コンフィギュレーションメモリ160と同等なメモリ容量で、アドレス制御も同じくした、複数に分割されたメモリ空間の構成ができる。   By controlling the upper bits of the address bus of the local memory 71, it is possible to configure a memory space divided into a plurality of parts with the same memory capacity as the configuration memory 160 and the same address control.

なお、データバス幅に関しては、必ずしも同じにする必要はないが、制御のしやすさから考えると、例えばバイト単位の倍数で構成しておく。一方、それぞれのメモリ空間に格納されているハードウエアモジュールHMの識別符号IDの情報は、識別符号記録手段800に記録されており、コンフィギュレーションの要求に応じて、記録された識別符号の情報に基づいて選択的に転送される。   Note that the data bus widths are not necessarily the same. However, considering the ease of control, the data bus widths are configured in multiples of, for example, bytes. On the other hand, the information of the identification code ID of the hardware module HM stored in each memory space is recorded in the identification code recording means 800, and is recorded in the information of the recorded identification code in response to a configuration request. Based on the selective transfer.

このように構成及び制御をすることによって、この分割されたメモリ空間単位でコンフィギュレーションする場合には、一括転送ができるためハードウエアモジュールの転送の制御が簡単になり、しかも、コンフィギュレーションの高速化が図れる。   By configuring and controlling in this way, when configuring in units of the divided memory space, batch transfer is possible, which makes it easy to control the transfer of hardware modules, and speeds up the configuration. Can be planned.

さらに、図30に示すような複数のハードウエアモジュールによるコンフィギュレーションにおいて、複数個を組み合わせて繰り返し用いられるハードウエアモジュールが発生する場合、例えば、ハードウエアモジュールAおよびハードウエアモジュールBが組み合わされて用いられる場合、これらを結線する配線情報も合わせて前述のローカルメモリ71において、複数に分割構成されたメモリ空間に対応させて格納する。   Further, in the configuration by a plurality of hardware modules as shown in FIG. 30, when a hardware module that is repeatedly used by combining a plurality of hardware modules is generated, for example, the hardware module A and the hardware module B are used in combination. In this case, the wiring information for connecting them is also stored in the local memory 71 in association with the memory space divided into a plurality of parts.

この格納されたハードウエアモジュールおよび配線情報に関する情報は、識別符号記録手段800に記録される。したがって、コンフィギュレーションが必要になったときには、記録された情報に基づいて、ハードウエアモジュール(A+B)および配線情報を個別に順次転送することなく、コンフィギュレーションメモリに、一括で、あるいは部分的に、高速に転送できる。   Information regarding the stored hardware module and wiring information is recorded in the identification code recording means 800. Therefore, when configuration becomes necessary, the hardware module (A + B) and the wiring information are transferred to the configuration memory all at once or partially without sequentially transferring the hardware module (A + B) and the wiring information individually. Transfer at high speed.

[第4の実施の形態]
以上に示した第1の実施の形態、第2の実施の形態、第3の実施の形態では、アプリケーションプログラムが、ソフトウエアモジュールの集合で構成され、ソフトウエアモジュールと同じ処理を行うハードウエアモジュールを、プログラムのヘッダ部HEDの識別符号により取得し、プログラムの実行前またはプログラム実行時に、実行モジュールを決定した。
[Fourth Embodiment]
In the first embodiment, the second embodiment, and the third embodiment described above, the application program is configured by a set of software modules, and a hardware module that performs the same processing as the software module Is obtained from the identification code of the header part HED of the program, and the execution module is determined before or during execution of the program.

しかし、この発明は、この逆に、アプリケーションプログラムが、ハードウエアモジュールの集合で構成され、ハードウエアモジュールと同じ処理を行うソフトウエアモジュールを、プログラムのヘッダ部HEDの識別符号によりシステム内の記憶装置やネットワーク上の記憶装置から取得する場合も、ソフトウエアモジュールとハードウエアモジュールとを置き換えるだけで、前述した第1の実施の形態、第2の実施の形態、第3の実施の形態と、同様な処理を行うことができる。   However, in the present invention, conversely, the application program is composed of a set of hardware modules, and the software module that performs the same processing as the hardware module is stored in the storage device in the system by the identification code of the header portion HED of the program. When acquiring from a network or a storage device on the network, it is the same as the first embodiment, the second embodiment, and the third embodiment just by replacing the software module and the hardware module. Can be processed.

なぜならば、両方のモジュールを取得した後では、実行モジュールを決定する手順は同じであり、実行プログラム用記憶部としての主記憶装置である、例えばメインメモリ13に格納されているソフトウエアモジュールを、再び取得する必要はないし、アプリケーションの開始前にソフトウエアモジュールを、主記憶装置に格納することができるからである。   This is because, after obtaining both modules, the procedure for determining the execution module is the same, and the software module stored in the main memory 13, for example, which is the main storage device as the execution program storage unit, This is because it is not necessary to acquire the software module again, and the software module can be stored in the main memory before starting the application.

その場合の、ブロック図を、図32に示す。この図32は、第2の実施の形態に対応したものであり、第1の実施の形態に対応する構成の場合には、識別情報記憶手段800が存在しない。   A block diagram in that case is shown in FIG. FIG. 32 corresponds to the second embodiment. In the case of the configuration corresponding to the first embodiment, the identification information storage unit 800 does not exist.

この場合には、アプリケーションプログラム110に記述されているハードウエアモジュールHMは、プログラマブル論理回路400に転送されて、再構成される。   In this case, the hardware module HM described in the application program 110 is transferred to the programmable logic circuit 400 and reconfigured.

また、前述の実施の形態のハードウエアモジュール取得手段に対応するソフトウエアモジュール取得手段330は、取得したソフトウエアモジュールを、実行プログラム記憶手段550に格納し、CPU500で実行するようにする。この実行プログラム記憶手段440は、前述したように、情報処理システムでは、メインメモリ13で構成される。   Also, the software module acquisition unit 330 corresponding to the hardware module acquisition unit of the above-described embodiment stores the acquired software module in the execution program storage unit 550 and executes it by the CPU 500. As described above, the execution program storage unit 440 is configured by the main memory 13 in the information processing system.

[実施の形態の効果]
以上説明したように、第1の実施の形態、第2の実施の形態、第3の実施の形態および第4の実施の形態では、少なくとも処理の一部分が回路構成を再構成できるプログラマブル論理回路で処理される情報処理システムにおいて、ソフトウエアモジュールによるアプリケーションプログラムの実行と並行して、ソフトウエアモジュールと同じ処理を行うハードウエアモジュールのコンフィギュレーションを行うことにより、プログラム論理回路の再構成時間を考慮した最善のソフトウエアモジュールとハードウエアモジュールの組み合わせでプログラムを実行することができ、情報処理システムの最高の処理能力を発揮することが可能となる。
[Effect of the embodiment]
As described above, in the first embodiment, the second embodiment, the third embodiment, and the fourth embodiment, at least a part of the processing is a programmable logic circuit that can reconfigure the circuit configuration. In the information processing system to be processed, reconfiguration time of the program logic circuit is considered by configuring the hardware module that performs the same processing as the software module in parallel with the execution of the application program by the software module. The program can be executed with the best combination of software modules and hardware modules, and the highest processing capability of the information processing system can be exhibited.

したがって、従来のように、アプリケーションプログラムにおいてソフトウエアモジュールとハードウエアモジュールとで、処理する部分を事前に固定的に決定する必要が無い。   Therefore, unlike the prior art, there is no need to fixedly determine in advance the portion to be processed between the software module and the hardware module in the application program.

また、第1の実施の形態、第2の実施の形態および第3の実施の形態によれば、ネットワーク上の記憶装置にハードウエアモジュールが格納され、処理の途中でネットワーク通信が切断されることがあっても、処理を中断することなく、ソフトウエアモジュールにより処理を継続することが可能となる。   In addition, according to the first embodiment, the second embodiment, and the third embodiment, the hardware module is stored in the storage device on the network, and the network communication is disconnected during the processing. Even if there is, it is possible to continue the processing by the software module without interrupting the processing.

同様に、第4の実施の形態によれば、ネットワーク上の記憶装置にソフトウエアモジュールが格納され、処理の途中でネットワーク通信が切断されることがあっても、処理を中断することなく、ハードウエアモジュールにより処理を継続することが可能となる。   Similarly, according to the fourth embodiment, even if the software module is stored in the storage device on the network and the network communication is interrupted in the middle of the processing, the hardware is not interrupted. The processing can be continued by the wear module.

また、第1〜第3のいずれの実施の形態においても、複数のアプリケーションプログラムを実行する場合、プログラマブル論理回路にコンフィギュレーションされているハードウエアモジュールが識別符号記録手段800に記録されているので、共通して用いるハードウエアモジュールを重複してコンフィギュレーションすることがなくなり、プログラマブル論理回路の再構成時間を最小にすることができ、情報処理システムの最高の処理能力を発揮することが可能となる。   In any of the first to third embodiments, when a plurality of application programs are executed, the hardware module configured in the programmable logic circuit is recorded in the identification code recording unit 800. The common hardware modules are not redundantly configured, the reconfiguration time of the programmable logic circuit can be minimized, and the highest processing capacity of the information processing system can be exhibited.

同様に、第4の実施の形態によれば、複数のアプリケーションプログラムを実行する場合、メインメモリに格納されているソフトウエアモジュールが、識別符号記録手段800に記録されているので、共通して用いるソフトウエアモジュールを重複して格納することがなくなり、メインメモリへのロード時間を最小にすることができ、情報処理システムの最高の処理能力を発揮することが可能となる。   Similarly, according to the fourth embodiment, when a plurality of application programs are executed, the software module stored in the main memory is recorded in the identification code recording means 800, so that it is commonly used. Software modules are not stored redundantly, the load time to the main memory can be minimized, and the highest processing capacity of the information processing system can be exhibited.

また、第1の実施の形態、第2の実施の形態、第3の実施の形態においては、識別符号記録手段800に記録されているハードウエアモジュールの使用経歴に基づいて、アプリケーションプログラムの開始前にプログラマブル論理回路上にハードウエアモジュールを構成することができるので、アプリケーションプログラムの実行開始時からからハードウエアモジュールを効率的に利用することができ、情報処理システムの最高の処理能力を発揮することが可能となる。   Further, in the first embodiment, the second embodiment, and the third embodiment, before starting the application program based on the usage history of the hardware module recorded in the identification code recording means 800. Since hardware modules can be configured on programmable logic circuits, hardware modules can be used efficiently from the start of application program execution, and the best processing power of the information processing system can be demonstrated. Is possible.

同様に、第4の実施の形態においては、同様にして、識別符号記録手段800のソフトウエアモジュールの使用経歴に基づいて、アプリケーションプログラムの開始前に主記憶にソフトウエアモジュールを格納することができるので、アプリケーションプログラムの実行開始時からからCPUを効率的に利用することができ、情報処理システムの最高の処理能力を発揮することが可能となる。   Similarly, in the fourth embodiment, similarly, based on the usage history of the software module of the identification code recording means 800, the software module can be stored in the main memory before the application program is started. Therefore, the CPU can be used efficiently from the start of execution of the application program, and the highest processing capacity of the information processing system can be exhibited.

また、第3の実施の形態の場合には、ローカルメモリと、プログラマブル論理回路のコンフィギュレーションメモリとの間で、ハードウエアモジュールの回路情報を通信できるため、ローカルメモリまたはコンフィギュレーションメモリのいずれかに回路情報が格納されていれば十分であり、高速転送可能なメモリの容量を効率的に用いることができる。   In the case of the third embodiment, since the circuit information of the hardware module can be communicated between the local memory and the configuration memory of the programmable logic circuit, either the local memory or the configuration memory is used. It is sufficient if circuit information is stored, and the capacity of a memory capable of high-speed transfer can be used efficiently.

さらに、第3の実施の形態の場合には、コンフィギュレーションメモリ空間と同じ容量でローカルメモリを複数に分割したメモリ空間を持つことにより、同時に構成されている回路情報と配線情報を含めた複数のハードウエアモジュールを単位として一括あるいは部分的に高速に転送できる。   Furthermore, in the case of the third embodiment, by having a memory space in which the local memory is divided into a plurality of pieces with the same capacity as the configuration memory space, a plurality of pieces of information including circuit information and wiring information that are configured simultaneously are provided. Hardware modules can be transferred in batches or partially at high speed.

また、この発明による情報処理システムは、第4の実施の形態のように、ソフトウエアモジュールによる処理と、ハードウエアモジュールによる処理とのどちらでも行うことができるので、プログラムを、ソフトウエアモジュールの集合としても、ハードウエアモジュールの集合としても記述することができる。   In addition, since the information processing system according to the present invention can perform either the processing by the software module or the processing by the hardware module as in the fourth embodiment, the program is stored in a set of software modules. Or as a set of hardware modules.

この発明による情報処理システムの第1の実施の形態の概念構成を示すブロック図である。It is a block diagram which shows the conceptual structure of 1st Embodiment of the information processing system by this invention. この発明による情報処理システムで用いるアプリケーションプログラムの一例を説明するための図である。It is a figure for demonstrating an example of the application program used with the information processing system by this invention. この発明による情報処理システムの第1の実施の形態のハードウエア構成例を示す図である。It is a figure which shows the hardware structural example of 1st Embodiment of the information processing system by this invention. プログラマブル論理回路の一例を説明するための図である。It is a figure for demonstrating an example of a programmable logic circuit. プログラマブル論理回路の一例を説明するための図である。It is a figure for demonstrating an example of a programmable logic circuit. この発明による情報処理システムの第1の実施の形態の主要な処理動作を説明するためのフローチャートである。It is a flowchart for demonstrating main processing operation | movement of 1st Embodiment of the information processing system by this invention. この発明による情報処理システムの第1の実施の形態の処理の具体例(第1の実施例)を説明するためのフローチャートである。It is a flowchart for demonstrating the specific example (1st Example) of the process of 1st Embodiment of the information processing system by this invention. 図7の一部の処理ルーチンを説明するためのフローチャートである。It is a flowchart for demonstrating the one part processing routine of FIG. 図7の一部の処理ルーチンを説明するためのフローチャートである。It is a flowchart for demonstrating the one part processing routine of FIG. この発明による情報処理システムの第1の実施の形態における処理の具体例(第2の実施例)で用いる処理モジュールの一つを説明のための図である。It is a figure for demonstrating one of the processing modules used by the specific example (2nd Example) of the process in 1st Embodiment of the information processing system by this invention. 第2の実施例で用いるソフトウエアモジュールの一つを説明するための図である。It is a figure for demonstrating one of the software modules used in a 2nd Example. 第2の実施例で用いるハードウエアモジュールの一つを説明するための図である。It is a figure for demonstrating one of the hardware modules used in a 2nd Example. この発明による情報処理システムの第1の実施の形態における処理の具体例(第2の実施例)で用いる処理モジュールの一つを説明のための図である。It is a figure for demonstrating one of the processing modules used by the specific example (2nd Example) of the process in 1st Embodiment of the information processing system by this invention. 第2の実施例で用いるソフトウエアモジュールの一つを説明するための図である。It is a figure for demonstrating one of the software modules used in a 2nd Example. 第2の実施例で用いるハードウエアモジュールの一つを説明するための図である。It is a figure for demonstrating one of the hardware modules used in a 2nd Example. 第2の実施例で用いるソフトウエアモジュールの一つを説明するための図である。It is a figure for demonstrating one of the software modules used in a 2nd Example. 第2の実施例で用いるハードウエアモジュールの一つを説明するための図である。It is a figure for demonstrating one of the hardware modules used in a 2nd Example. 第2の実施例で用いるアプリケーションプログラムを説明するための図である。It is a figure for demonstrating the application program used in a 2nd Example. 第2の実施例の処理の流れを説明するためのフローチャートである。It is a flowchart for demonstrating the flow of a process of 2nd Example. 図19のフローチャートの一部のフローチャートである。FIG. 20 is a partial flowchart of the flowchart of FIG. 19. FIG. 第2の実施例の処理の流れを説明するためのタイミングチャートである。It is a timing chart for explaining the flow of processing of the 2nd example. この発明による情報処理システムの第2の実施の形態の概念構成を示すブロック図である。It is a block diagram which shows the conceptual structure of 2nd Embodiment of the information processing system by this invention. 第2の実施の形態における処理の具体例(第3の実施例)の処理の流れを説明するためのフローチャートである。It is a flowchart for demonstrating the flow of a process of the specific example (3rd Example) of the process in 2nd Embodiment. この発明による情報処理システムの第3の実施の形態の概念構成を示すブロック図である。It is a block diagram which shows the conceptual structure of 3rd Embodiment of the information processing system by this invention. この発明による情報処理システムの第3の実施の形態の場合のハードウエア構成例を示す図である。It is a figure which shows the hardware structural example in the case of 3rd Embodiment of the information processing system by this invention. この発明による情報処理システムの第3の実施の形態の場合の処理の具体例(第6の実施例)を説明するためのフローチャートである。It is a flowchart for demonstrating the specific example (6th Example) of the process in the case of 3rd Embodiment of the information processing system by this invention. 図26の一部の処理ルーチンのフローチャートである。It is a flowchart of a part of processing routine of FIG. 図26の一部の処理ルーチンのフローチャートである。It is a flowchart of a part of processing routine of FIG. 第5の実施例の処理の流れを説明するためのタイミングチャートである。It is a timing chart for explaining the flow of processing of the 5th example. 第5の実施例の説明に供する、プログラマブル論理回路上に形成された回路配置を説明するための図である。It is a figure for demonstrating the circuit arrangement | positioning formed on the programmable logic circuit with which it uses for description of a 5th Example. 第5の実施例の説明に供する、ハードウエアの主要部分を示す図である。It is a figure which shows the principal part of the hardware for description of a 5th Example. この発明による情報処理システムの第4の実施の形態の概念構成を示すブロック図である。It is a block diagram which shows the conceptual structure of 4th Embodiment of the information processing system by this invention. 従来の情報処理システムの一つを説明するための図である。It is a figure for demonstrating one of the conventional information processing systems. 従来の情報処理システムの他の一つを説明するための図である。It is a figure for demonstrating another one of the conventional information processing systems. 従来の情報処理システムの、さらに他の一つを説明するための図である。It is a figure for demonstrating another one of the conventional information processing systems.

符号の説明Explanation of symbols

10 情報処理システム
11 CPU
12 チップセット
13 メインメモリ
14 バス
15 プログラマブル論理回路インターフェース
16 プログラマブル論理回路
17 ハードディスクインターフェース
18 ハードディスクドライブ
19 通信インターフェース
20 ネットワーク
21 ネットワーク上の記憶装置
60 情報処理システム
61 ディスプレイ
62 ディスプレイインターフェース
63 キー操作部
64 キーインターフェース
70 情報処理システム
71 ローカルメモリ
100 アプリケーションプログラム
160 コンフィギュレーションメモリ
200 情報処理システム内またはネットワーク上の記憶装置
300 ハードウエアモジュール取得手段
330 ソフトウエアモジュール取得手段
400 プログラマブル論理回路
440 実行プログラム記憶手段
500 CPU
600 実行モジュール決定手段
700 選択条件設定手段
800 識別符号記憶手段
900 ローカルメモリ
10 Information processing system 11 CPU
DESCRIPTION OF SYMBOLS 12 Chipset 13 Main memory 14 Bus 15 Programmable logic circuit interface 16 Programmable logic circuit 17 Hard disk interface 18 Hard disk drive 19 Communication interface 20 Network 21 Storage device on network 60 Information processing system 61 Display 62 Display interface 63 Key operation part 64 Key interface DESCRIPTION OF SYMBOLS 70 Information processing system 71 Local memory 100 Application program 160 Configuration memory 200 Storage device in information processing system or on network 300 Hardware module acquisition means 330 Software module acquisition means 400 Programmable logic circuit 440 Execution program storage means 500 CPU
600 execution module determination means 700 selection condition setting means 800 identification code storage means 900 local memory

Claims (16)

CPUが実行するソフトウエアプログラムで処理が記述されたソフトウエアモジュールからなる処理モジュールの複数個で構成される処理プログラムで記述される一連の処理を実行するものであり、かつ、前記一連の処理の一部分が、プログラマブル論理回路で処理可能である情報処理システムであって、
前記処理プログラム内のソフトウエアモジュールが行う処理と同じ処理を、前記プログラマブル論理回路に再構成する回路情報で記述した処理モジュールであるハードウエアモジュールを記憶する記憶装置部と、
前記記憶装置部から前記ハードウエアモジュールを入手して、前記プログラマブル論理回路を再構成するハードウエアモジュール取得手段と、
前記処理プログラムに記述された処理モジュールを、前記ソフトウエアモジュールと、前記ハードウエアモジュールのどちらで実行するかを、前記処理プログラムの前記処理モジュールの実行時に決める実行モジュール決定手段と、
を備え、前記実行モジュール決定手段は、
前記処理モジュールの実行時に、前記実行モジュールの選択条件として、前記実行する処理のハードウエアモジュールの前記プログラマブル論理回路への再構成が終了しているか否かを判別し、前記再構成が終了しているときには、前記処理をハードウエアモジュールにより再構成されたプログラマブル論理回路で実行するように決定する
ことを特徴とする情報処理システム。
A series of processing described by a processing program composed of a plurality of processing modules composed of software modules whose processing is described by a software program executed by the CPU is executed, and the series of processing A part of the information processing system that can be processed by a programmable logic circuit,
A storage device unit that stores a hardware module that is a processing module described by circuit information to be reconfigured in the programmable logic circuit, the same processing as the processing performed by the software module in the processing program;
Hardware module acquisition means for obtaining the hardware module from the storage unit and reconfiguring the programmable logic circuit;
Execution module determination means for determining at the time of execution of the processing module of the processing program whether the processing module described in the processing program is to be executed by the software module or the hardware module;
The execution module determining means includes:
When executing the processing module, as a selection condition of the execution module, it is determined whether or not the reconfiguration of the hardware module of the process to be executed into the programmable logic circuit is completed, and the reconfiguration is completed. And determining whether to execute the processing by a programmable logic circuit reconfigured by a hardware module.
処理の一部分が、プログラマブル論理回路で処理可能であり、前記プログラマブル論理回路に構成する回路情報で処理を記述したハードウエアモジュールからなる処理モジュールの複数個で構成される処理プログラムで記述される一連の処理を実行する情報処理システムであって、
前記処理プログラム内のハードウエアモジュールが行う処理と同じ処理を、CPUが実行するソフトウエアプログラムで記述した処理モジュールであるソフトウエアモジュールを記憶する記憶装置部と、
前記記憶装置部から前記ソフトウエアモジュールを入手して、実行プログラム用記憶部に格納するソフトウエアモジュール取得手段と、
前記処理プログラムに記述された処理モジュールを、前記ソフトウエアモジュールと、前記ハードウエアモジュールのどちらで実行するかを、前記処理プログラムの前記処理モジュールの実行時に決める実行モジュール決定手段と、
を備え、前記実行モジュール決定手段は、
前記処理モジュールの実行時に、前記実行モジュールの選択条件として、前記実行する処理のハードウエアモジュールの前記プログラマブル論理回路への再構成が終了しているか否かを判別し、前記再構成が終了しているときには、前記処理をハードウエアモジュールにより再構成されたプログラマブル論理回路で実行するように決定する
ことを特徴とする情報処理システム。
A part of the process can be processed by a programmable logic circuit, and a series of processes described by a processing program including a plurality of processing modules including hardware modules in which the process is described by circuit information configured in the programmable logic circuit. An information processing system that executes processing,
A storage device unit for storing a software module, which is a processing module described by a software program executed by the CPU, for the same processing as the processing performed by the hardware module in the processing program;
Software module acquisition means for obtaining the software module from the storage device and storing it in the execution program storage;
Execution module determination means for determining at the time of execution of the processing module of the processing program whether the processing module described in the processing program is to be executed by the software module or the hardware module;
The execution module determining means includes:
When executing the processing module, as a selection condition of the execution module, it is determined whether or not the reconfiguration of the hardware module of the process to be executed into the programmable logic circuit is completed, and the reconfiguration is completed. And determining whether to execute the processing by a programmable logic circuit reconfigured by a hardware module.
CPUが実行するソフトウエアプログラムで処理が記述されたソフトウエアモジュールからなる処理モジュールの複数個で構成される処理プログラムで記述される一連の処理を実行するものであり、かつ、前記一連の処理の一部分が、プログラマブル論理回路で処理可能である情報処理システムであって、
前記処理プログラム内のソフトウエアモジュールが行う処理と同じ処理を、前記プログラマブル論理回路に再構成する回路情報で記述した処理モジュールであるハードウエアモジュールをネットワークを通じて入手して、前記プログラマブル論理回路を再構成するハードウエアモジュール取得手段と、
前記処理プログラムに記述された処理モジュールを、前記ソフトウエアモジュールと、前記ハードウエアモジュールのどちらで実行するかを、前記処理プログラムの前記処理モジュールの実行時に決める実行モジュール決定手段と、
を備え、前記実行モジュール決定手段は、
前記処理モジュールの実行時に、前記実行モジュールの選択条件として、前記実行する処理のハードウエアモジュールの前記プログラマブル論理回路への再構成が終了しているか否かを判別し、前記再構成が終了しているときには、前記処理をハードウエアモジュールにより再構成されたプログラマブル論理回路で実行するように決定する
ことを特徴とする情報処理システム。
A series of processing described by a processing program composed of a plurality of processing modules composed of software modules whose processing is described by a software program executed by the CPU is executed, and the series of processing A part of the information processing system that can be processed by a programmable logic circuit,
Reconfiguring the programmable logic circuit by obtaining a hardware module, which is a processing module in which the same processing as that performed by the software module in the processing program is described with circuit information to be reconfigured in the programmable logic circuit, via a network Hardware module acquisition means for
Execution module determination means for determining at the time of execution of the processing module of the processing program whether the processing module described in the processing program is to be executed by the software module or the hardware module;
The execution module determining means includes:
When executing the processing module, as a selection condition of the execution module, it is determined whether or not the reconfiguration of the hardware module of the process to be executed into the programmable logic circuit is completed, and the reconfiguration is completed. And determining whether to execute the processing by a programmable logic circuit reconfigured by a hardware module.
処理の一部分が、プログラマブル論理回路で処理可能であり、前記プログラマブル論理回路に構成する回路情報で処理を記述したハードウエアモジュールからなる処理モジュールの複数個で構成される処理プログラムで記述される一連の処理を実行する情報処理システムであって、
前記プログラム内のハードウエアモジュールが行う処理と同じ処理を、CPUが実行するソフトウエアプログラムで記述した処理モジュールであるソフトウエアモジュールをネットワークを通じて入手して、実行プログラム用記憶部に格納するソフトウエアモジュール取得手段と、
前記処理プログラムに記述された処理モジュールを、前記ソフトウエアモジュールと、前記ハードウエアモジュールのどちらで実行するかを、前記処理プログラムの前記処理モジュールの実行時に決める実行モジュール決定手段と、
を備え、前記実行モジュール決定手段は、
前記処理モジュールの実行時に、前記実行モジュールの選択条件として、前記実行する処理のハードウエアモジュールの前記プログラマブル論理回路への再構成が終了しているか否かを判別し、前記再構成が終了しているときには、前記処理をハードウエアモジュールにより再構成されたプログラマブル論理回路で実行するように決定する
ことを特徴とする情報処理システム。
A part of the process can be processed by a programmable logic circuit, and a series of processes described by a processing program including a plurality of processing modules including hardware modules in which the process is described by circuit information configured in the programmable logic circuit. An information processing system that executes processing,
A software module that obtains a software module, which is a processing module described by a software program executed by the CPU, through the network, and stores the same processing as the processing performed by the hardware module in the program in the execution program storage unit Acquisition means;
Execution module determination means for determining at the time of execution of the processing module of the processing program whether the processing module described in the processing program is to be executed by the software module or the hardware module;
The execution module determining means includes:
When executing the processing module, as a selection condition of the execution module, it is determined whether or not the reconfiguration of the hardware module of the process to be executed into the programmable logic circuit is completed, and the reconfiguration is completed. And determining whether to execute the processing by a programmable logic circuit reconfigured by a hardware module.
請求項1〜請求項4のいずれかに記載の情報処理システムにおいて、
前記処理プログラムの実行処理と並行してハードウエアモジュールによるプログラマブル論理回路の再構成を行う
ことを特徴とする情報処理システム。
In the information processing system according to any one of claims 1 to 4,
An information processing system comprising: reconfiguring a programmable logic circuit using a hardware module in parallel with execution processing of the processing program.
請求項1〜請求項4のいずれかに記載の情報処理システムにおいて、
前記ハードウエアモジュールを示す識別符号が、前記処理プログラム内に記述されているとともに、前記プログラマブル論理回路に再構成されている前記ハードウエアモジュールの識別符号を記録する識別符号記録手段を備え、
前記実行モジュール決定手段は、
前記処理モジュールの実行時に、前記識別符号記録手段を参照して、前記識別符号記録手段に、実行しようとする処理のハードウエアモジュールの識別符号が記録されているときには、当該ハードウエアモジュールの再構成は終了していると判別して、前記処理をハードウエアモジュールにより再構成されたプログラマブル論理回路で実行するように決定する
ことを特徴とする情報処理システム。
In the information processing system according to any one of claims 1 to 4,
An identification code indicating the hardware module is described in the processing program, and includes an identification code recording means for recording the identification code of the hardware module reconfigured in the programmable logic circuit,
The execution module determining means includes
When the processing module is executed, the identification code recording unit is referred to, and when the identification code of the hardware module of the process to be executed is recorded in the identification code recording unit, the hardware module is reconfigured. The information processing system is characterized in that it is determined that the processing is completed and the processing is executed by a programmable logic circuit reconfigured by a hardware module.
請求項1または請求項3に記載の情報処理システムにおいて、
前記ソフトウエアモジュールが行う処理と同じ処理を行うハードウエアモジュールを示す識別符号が、前記処理プログラム内に記述されており、
前記プログラマブル論理回路に再構成されたハードウエアモジュールの識別符号を記録する識別符号記録手段を設けるとともに、
前記ハードウエアモジュールの回路情報を一時記憶するローカルメモリを、前記プログラマブル論理回路のコンフィギュレーションメモリと直接的なデータの通信が可能な位置に設け、
前記ハードウエアモジュール取得手段は、
前記処理プログラム内の識別符号に基づいて前記ハードウエアモジュールを入手して前記プログラマブル論理回路に再構成するものであり、かつ、前記入手した前記ハードウエアモジュールの回路情報を前記ローカルメモリにも転送して記憶させる
ことを特徴とする情報処理システム。
In the information processing system according to claim 1 or 3,
An identification code indicating a hardware module that performs the same processing as the processing performed by the software module is described in the processing program,
While providing an identification code recording means for recording the identification code of the reconfigured hardware module in the programmable logic circuit,
A local memory for temporarily storing circuit information of the hardware module is provided at a position where data can be directly communicated with the configuration memory of the programmable logic circuit;
The hardware module acquisition means includes
The hardware module is obtained based on the identification code in the processing program and reconfigured into the programmable logic circuit, and the obtained circuit information of the hardware module is also transferred to the local memory. An information processing system characterized by storage.
請求項2または請求項4に記載の情報処理システムにおいて、
前記ハードウエアモジュールを示す識別符号が、前記処理プログラム内に記述されており、
前記プログラマブル論理回路に再構成されたハードウエアモジュールの識別符号を記録する識別符号記録手段を設けるとともに、
前記ハードウエアモジュールの回路情報を一時記憶するローカルメモリを、前記プログラマブル論理回路のコンフィギュレーションメモリと直接的なデータの通信が可能な位置に設け、
前記処理プログラム内の識別符号に対応する前記ハードウエアモジュールの回路情報を、前記記憶装置あるいはネットワークから取得して、前記プログラマブル論理回路に再構成するとともに、前記ローカルメモリにも転送して記憶する
ことを特徴とする情報処理システム。
In the information processing system according to claim 2 or 4,
An identification code indicating the hardware module is described in the processing program,
While providing an identification code recording means for recording the identification code of the reconfigured hardware module in the programmable logic circuit,
A local memory for temporarily storing circuit information of the hardware module is provided at a position where data can be directly communicated with the configuration memory of the programmable logic circuit;
Obtaining circuit information of the hardware module corresponding to the identification code in the processing program from the storage device or network, reconfiguring the programmable logic circuit, and transferring and storing it in the local memory. An information processing system characterized by
請求項7または請求項8に記載の情報処理システムにおいて、
前記識別符号記録手段に記録された前記ハードウエアモジュールの使用履歴に基づいて、前記ハードウエアモジュールの回路情報を、前記プログラマブル論理回路のコンフィギュレーションメモリから前記ローカルメモリに転送して記憶するようにしたことを特徴とする情報処理システム。
In the information processing system according to claim 7 or claim 8,
Based on the usage history of the hardware module recorded in the identification code recording means, the circuit information of the hardware module is transferred from the configuration memory of the programmable logic circuit to the local memory for storage. An information processing system characterized by this.
請求項7〜請求項9のいずれかに記載の情報処理システムにおいて、
前記プログラマブル論理回路内のコンフィギュレーションメモリの全領域と同等な記憶容量を単位として、前記ローカルメモリのメモリ空間を複数の単位に分割して構成し、
前記分割されたメモリ空間の単位によって、前記コンフィギュレーションメモリと前記ローカルメモリとの間で、前記ハードウエアモジュールの回路情報を通信することを特徴とする情報処理システム。
In the information processing system according to any one of claims 7 to 9,
The storage space equivalent to the entire area of the configuration memory in the programmable logic circuit is used as a unit, and the memory space of the local memory is divided into a plurality of units.
An information processing system, wherein circuit information of the hardware module is communicated between the configuration memory and the local memory in units of the divided memory space.
請求項7〜請求項10のいずれかに記載の情報処理システムにおいて、
前記ハードウエアモジュールの複数個と、それらの配線情報とによって前記プログラマブル論理回路に同時に構成される機能回路を一つの回路情報とし、
前記コンフィギュレーションメモリ、または、前記分割されたローカルメモリの任意のメモリ空間に対応して前記ハードウエアモジュールの回路情報を記憶することを特徴とする情報処理システム。
The information processing system according to any one of claims 7 to 10,
A function circuit that is simultaneously configured in the programmable logic circuit by a plurality of the hardware modules and their wiring information as one circuit information,
An information processing system for storing circuit information of the hardware module corresponding to an arbitrary memory space of the configuration memory or the divided local memory.
請求項7〜請求項10のいずれかに記載の情報処理システムにおいて、
使用された前記ハードウエアモジュールの識別符号を記録する識別符号記録手段を設け、
前記コンフィギュレーションメモリまたは前記分割されたローカルメモリの任意のメモリ空間に格納されている前記ハードウエアモジュールの情報を、前記識別符号によって、前記識別符号記録手段に記録しておくことを特徴とする情報処理システム。
The information processing system according to any one of claims 7 to 10,
Provided with an identification code recording means for recording the identification code of the used hardware module;
Information of the hardware module stored in an arbitrary memory space of the configuration memory or the divided local memory is recorded in the identification code recording means by the identification code. Processing system.
CPUが実行するソフトウエアプログラムで処理が記述されたソフトウエアモジュールからなる処理モジュールの複数個で構成される処理プログラムで記述される一連の処理を実行するものであり、かつ、前記一連の処理の一部分が、プログラマブル論理回路で処理可能である情報処理システムによる情報処理方法であって、
前記情報処理システムのハードウエアモジュール取得手段が、前記処理プログラム内のソフトウエアモジュールが行う処理と同じ処理を前記プログラマブル論理回路に再構成する回路情報で記述した処理モジュールであるハードウエアモジュールを取得する工程と、
前記情報処理システムの実行モジュール決定手段が、前記処理プログラムに記述された処理モジュールを、前記ソフトウエアモジュールと、前記ハードウエアモジュールのどちらで実行するかを、前記プログラムの前記処理モジュールの実行時に決める工程であって、前記実行する処理のハードウエアモジュールの前記プログラマブル論理回路への再構成が終了しているか否かを判別し、前記再構成が終了しているときには、前記処理をハードウエアモジュールにより再構成されたプログラマブル論理回路で実行するように決定する工程と、
を備えることを特徴とする情報処理方法。
A series of processing described by a processing program composed of a plurality of processing modules composed of software modules whose processing is described by a software program executed by the CPU is executed, and the series of processing An information processing method by an information processing system in which a part can be processed by a programmable logic circuit,
A hardware module acquisition unit of the information processing system acquires a hardware module that is a processing module described by circuit information for reconfiguring the programmable logic circuit as the processing performed by the software module in the processing program. Process,
The execution module determining means of the information processing system determines at the time of execution of the processing module of the program whether the processing module described in the processing program is to be executed by the software module or the hardware module. Determining whether or not the reconfiguration of the hardware module of the process to be executed into the programmable logic circuit has been completed, and when the reconfiguration has been completed, the process is performed by the hardware module. Deciding to run on a reconfigured programmable logic circuit;
An information processing method comprising:
前記ハードウエアモジュールは、ネットワークを通じて入手することを特徴とする請求項13に記載の情報処理方法。   The information processing method according to claim 13, wherein the hardware module is obtained through a network. 処理の一部分が、プログラマブル論理回路で処理可能であり、前記プログラマブル論理回路に構成する回路情報で処理を記述したハードウエアモジュールからなる処理モジュールの複数個で構成される処理プログラムで記述される一連の処理を実行する情報処理システムによる情報処理方法であって、
前記情報処理システムのソフトウエアモジュール取得手段が、プログラム内のハードウエアモジュールが行う処理と同じ処理を、CPUが実行するソフトウエアプログラムで記述した処理モジュールであるソフトウエアモジュールを入手して、実行プログラム用記憶部に格納する工程と、
前記情報処理システムの実行モジュール決定手段が、前記処理プログラムに記述された処理モジュールを、前記ソフトウエアモジュールと、前記ハードウエアモジュールのどちらで実行するかを、前記処理プログラムの前記処理モジュールの実行時に決める工程であって、前記実行する処理のハードウエアモジュールの前記プログラマブル論理回路への再構成が終了しているか否かを判別し、前記再構成が終了しているときには、前記処理をハードウエアモジュールにより再構成されたプログラマブル論理回路で実行するように決定する工程と、
を備えることを特徴とする情報処理方法。
A part of the process can be processed by a programmable logic circuit, and a series of processes described by a processing program including a plurality of processing modules including hardware modules in which the process is described by circuit information configured in the programmable logic circuit. An information processing method by an information processing system for executing processing,
The software module acquisition means of the information processing system obtains a software module, which is a processing module described by a software program executed by the CPU, in the same processing as the processing performed by the hardware module in the program. Storing in the storage unit for
The execution module determining means of the information processing system determines whether the processing module described in the processing program is executed by the software module or the hardware module when the processing module of the processing program is executed. Determining whether or not the reconfiguration of the hardware module of the process to be executed into the programmable logic circuit has been completed, and when the reconfiguration has been completed, the process is determined as a hardware module. Determining to execute with a programmable logic circuit reconfigured by:
An information processing method comprising:
前記ソフトウエアモジュールは、ネットワークを通じて入手することを特徴とする請求項15に記載の情報処理方法。   The information processing method according to claim 15, wherein the software module is obtained through a network.
JP2006000413A 2006-01-05 2006-01-05 Information processing system and information processing method Expired - Fee Related JP3877002B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006000413A JP3877002B2 (en) 2006-01-05 2006-01-05 Information processing system and information processing method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006000413A JP3877002B2 (en) 2006-01-05 2006-01-05 Information processing system and information processing method

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP02966998A Division JP4212676B2 (en) 1998-02-12 1998-02-12 Information processing system and information processing method

Publications (2)

Publication Number Publication Date
JP2006107532A JP2006107532A (en) 2006-04-20
JP3877002B2 true JP3877002B2 (en) 2007-02-07

Family

ID=36377065

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006000413A Expired - Fee Related JP3877002B2 (en) 2006-01-05 2006-01-05 Information processing system and information processing method

Country Status (1)

Country Link
JP (1) JP3877002B2 (en)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010044578A (en) * 2008-08-12 2010-02-25 Toshiba Corp Multicore processor
JP5441740B2 (en) * 2009-03-23 2014-03-12 キヤノン株式会社 INFORMATION DISTRIBUTION DEVICE, INFORMATION DISTRIBUTION DEVICE CONTROL METHOD, AND COMPUTER PROGRAM
JP6351315B2 (en) * 2014-03-13 2018-07-04 キヤノン株式会社 Image processing apparatus, control method thereof, and program
JP6810651B2 (en) * 2017-04-24 2021-01-06 日立オートモティブシステムズ株式会社 Electronic control device, logic circuit control method
JP7048439B2 (en) * 2018-07-03 2022-04-05 本田技研工業株式会社 Controls, control units, control methods, and programs
JP6864721B2 (en) * 2019-08-08 2021-04-28 キヤノン株式会社 Information processing device and its control method

Also Published As

Publication number Publication date
JP2006107532A (en) 2006-04-20

Similar Documents

Publication Publication Date Title
JP4212676B2 (en) Information processing system and information processing method
JP6106752B2 (en) Result generation for state machine engines
EP2668577B1 (en) Unrolling quantifications to control in-degree and/or out degree of automaton
KR101606622B1 (en) Utilizing special purpose elements to implement a fsm
JP6122121B2 (en) Method and system for power management in pattern recognition processing
JP6017034B2 (en) Method and system for handling data received by a state machine engine
JP3877002B2 (en) Information processing system and information processing method
JP4833303B2 (en) Sequence conversion in behavioral synthesis tools
WO2014150554A1 (en) Methods and apparatuses for providing data received by a state machine engine
GB2560600A (en) Nueral Network Hardware
CN111324294B (en) Method and device for accessing tensor data
WO2014014710A1 (en) Methods and systems for using state vector data in a state machine engine
WO2020073801A1 (en) Data reading/writing method and system in 3d image processing, storage medium, and terminal
KR100823379B1 (en) Data filtering apparatus, method, and system for image processing
EP3933778A2 (en) Method and graphics processing system for rendering one or more fragments having shader-dependent properties
JPH11232079A (en) Information processing system
JP3738802B2 (en) Information processing system
JP3675255B2 (en) Information processing device
JP3747985B2 (en) Information processing system
JP4014486B2 (en) Image processing method and image processing apparatus
CN117076095B (en) Task scheduling method, system, electronic equipment and storage medium based on DAG
US8538185B1 (en) Optimizing bounds checking in neighborhood processes
JP4646854B2 (en) Control information supply device
Laprise Toward the parallel distributed camera array: design of a reconfigurable framework
JP2001344099A (en) Information processor and information processing method for the same

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060105

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20061011

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20061024

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101110

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111110

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111110

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121110

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121110

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131110

Year of fee payment: 7

LAPS Cancellation because of no payment of annual fees