JP2001320271A - Method for reconfiguring circuit into programmable logic circuit and information processing system - Google Patents

Method for reconfiguring circuit into programmable logic circuit and information processing system

Info

Publication number
JP2001320271A
JP2001320271A JP2000133652A JP2000133652A JP2001320271A JP 2001320271 A JP2001320271 A JP 2001320271A JP 2000133652 A JP2000133652 A JP 2000133652A JP 2000133652 A JP2000133652 A JP 2000133652A JP 2001320271 A JP2001320271 A JP 2001320271A
Authority
JP
Japan
Prior art keywords
circuit
processing
programmable logic
reconfigured
overlapping
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.)
Granted
Application number
JP2000133652A
Other languages
Japanese (ja)
Other versions
JP3832557B2 (en
Inventor
Yoshihide Sato
嘉秀 佐藤
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
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 filed Critical Fuji Xerox Co Ltd
Priority to JP2000133652A priority Critical patent/JP3832557B2/en
Publication of JP2001320271A publication Critical patent/JP2001320271A/en
Application granted granted Critical
Publication of JP3832557B2 publication Critical patent/JP3832557B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Abstract

PROBLEM TO BE SOLVED: To eliminate or shorten a waiting time between processings in each of circuits in the case of parallel and successively performing processing in reconfigured circuits while successively reconfiguring plural circuits into programmable logic circuit. SOLUTION: Concerning a circuit, with which a former circuit reconfigured before under executing processing thereof exists in the area of at least one part to next reconfigure a circuit, data for reconfiguration are divided into a part to be overlapped with the area of the former circuit and a part not to be overlapped. In the case of real reconfiguration, the part not to be overlapped is reconfigured parallel with processing in the former circuit and after the end of processing in the former circuit, the part to be overlapped is reconfigured.

Description

【発明の詳細な説明】DETAILED DESCRIPTION OF THE INVENTION

【0001】[0001]

【発明の属する技術分野】この発明は、アプリケーショ
ンプログラムによる処理の一部分を、回路構成を再構成
できるプログラマブル論理回路で処理することが可能で
ある情報処理システムおよびプログラマブル論理回路へ
の回路の再構成方法に関する。特に、回路の再構成と処
理を並列に高速実行する方法に関する。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to an information processing system capable of processing a part of processing by an application program by a programmable logic circuit whose circuit configuration can be reconfigured, and a method of reconfiguring a circuit into a programmable logic circuit. About. In particular, the present invention relates to a method for executing circuit reconfiguration and processing in parallel and at high speed.

【0002】[0002]

【従来の技術】デジタル回路装置、特に特定用途向け集
積回路(ASIC)の分野において、製品の開発期間を
短縮するために、フィールドプログラマブルゲートアレ
イ(FPGA)やプログラマブルロジックデバイス(P
LD)などで構成されたプログラマブル論理回路が広く
使われている。これらのプログラマブル論理回路は、論
理回路を記述する回路情報をこれらに読み込ませること
で、内部の論理回路と論理回路間の結線を自由に構成す
ることができる。
2. Description of the Related Art In the field of digital circuit devices, in particular, application specific integrated circuits (ASICs), field programmable gate arrays (FPGAs) and programmable logic devices (PGAs) have been developed in order to shorten the development period of products.
2. Description of the Related Art Programmable logic circuits including LDs) are widely used. By reading circuit information describing the logic circuit into these programmable logic circuits, the connection between the internal logic circuits and the logic circuits can be freely configured.

【0003】このため、プログラマブル論理回路を用い
ることで、従来は回路設計の終了後に数週間から数か月
を必要とした集積回路の作製時間が不要となるメリット
がある。特に米国特許第4,700,187号の発明の
ような電気的に再構成可能なプログラマブル論理装置
は、一度作製した回路を必要に応じて自由に何度でも変
更できるという利点があり、ますます広く使われるよう
になってきている。
For this reason, the use of a programmable logic circuit has the advantage that the time required to manufacture an integrated circuit, which conventionally required several weeks to several months after the completion of circuit design, is not required. In particular, electrically reconfigurable programmable logic devices, such as the invention of U.S. Pat. No. 4,700,187, have the advantage that once fabricated circuits can be freely modified as often as needed. It is becoming widely used.

【0004】ところで、最近の論理回路は複雑さが増
し、一つのプログラマブル論理回路では実現できない規
模にまで回路規模が大きくなっている。この問題を解決
するための一つの方法として、異なる時間に異なる論理
回路を実現するために、プログラマブル論理回路を処理
の途中で再構成することが提案されている。この方法を
用いることにより、携帯情報端末のように装置が小型で
あるため内蔵できる回路規模に制約がある場合でも、様
々な処理が比較的高速に行えるという利点がある。
[0004] Recently, logic circuits have increased in complexity, and the circuit scale has increased to a level that cannot be realized by a single programmable logic circuit. As one method for solving this problem, it has been proposed to reconfigure a programmable logic circuit during processing in order to realize different logic circuits at different times. By using this method, there is an advantage that various processes can be performed at relatively high speed even when the size of a circuit that can be built in is limited due to the small size of a device such as a portable information terminal.

【0005】しかし、この方法は、プログラマブル論理
回路を再構成するときには、回路全体の回路情報を再度
読み込ませるため、再構成に時間がかかるという欠点が
ある。さらに、処理の途中で再構成することは、処理を
一時中断し、そのときのデータをプログラマブル論理回
路の外部の記憶装置に待避させ、新たな回路情報を読み
込んで再構成し、再構成前のデータと再構成に伴う新し
いデータを入力するという余分な処理が必要になる。
However, this method has a drawback in that when reconfiguring a programmable logic circuit, the circuit information of the entire circuit is read again, so that the reconfiguration takes time. Furthermore, reconfiguring in the middle of the process means that the process is temporarily suspended, the data at that time is saved in a storage device outside the programmable logic circuit, new circuit information is read and reconfigured, and the Extra processing of inputting new data with data and reconstruction is required.

【0006】この問題を解決するために、米国アトメル
社の「CONFIGURABLELOGIC」という名
のデータブックに記載されているプログラマブル論理回
路、および米国ザイリンクス社の「THE PROGR
AMMABLE LOGIC」という名のデータブック
に記載されているプログラマブル論理回路では、データ
を記憶するためのデータ記憶装置を有し、回路の動作中
でも外部の記憶装置から回路情報の一部を読み込んで部
分的に再構成を行うことで、再構成するための時間を最
小に留めるようにしている。
[0006] To solve this problem, a programmable logic circuit described in a data book named "CONFIGURABLE LOGIC" of Atmel, USA and a THEPROGR of Xilinx, USA.
A programmable logic circuit described in a data book named "AMMABLE LOGIC" has a data storage device for storing data, and reads part of circuit information from an external storage device during operation of the circuit to partially store the circuit information. By performing the reconfiguration, the time required for the reconfiguration is minimized.

【0007】このようなプログラマブル論理回路を情報
処理システムに用いるときの問題は、所望の論理回路を
構成するための回路情報を格納先から取り出し、必要に
応じて複数の回路情報を合成し、所望の論理回路を再構
成しながら、アプリケーションの処理を、高速かつ効率
的に行わねばならないことである。
A problem when such a programmable logic circuit is used in an information processing system is that circuit information for forming a desired logic circuit is extracted from a storage destination, and a plurality of pieces of circuit information are synthesized as needed, thereby obtaining a desired logic circuit. Application processing must be performed at high speed and efficiently while reconfiguring the logic circuit.

【0008】以上に述べた複数の回路情報をプログラマ
ブル論理回路で処理する情報システムは、ネットワーク
に接続して利用することができる。その例として、特開
平10−78932号公報に公開される「リコンフィグ
ラブル・ネットワークコンピュータ」があり、それを従
来例1として図9を参照しながら説明する。
The above-described information system for processing a plurality of pieces of circuit information by a programmable logic circuit can be used by connecting to a network. As an example, there is a “reconfigurable network computer” disclosed in Japanese Patent Application Laid-Open No. 10-78932, which will be described as a first conventional example with reference to FIG.

【0009】この従来例1の情報処理システムは、通信
ネットワークNETに接続された複数のコンピュータで
構成され、その内の少なくとも一つがアプリケーション
プログラムを配布するコンピュータ(アプリケーション
・サーバ)SBであり、残りのコンピュータが前記アプ
リケーションプログラムをダウンロードし、実行するク
ライアントとなるコンピュータ(クライアント・コンピ
ュータ)CLで構成されたシステムである。複数のクラ
イアント・コンピュータCLの一部に、プログラムによ
り機能を随時変更し再構成することが可能な拡張ハード
ウェア(拡張HW)1が搭載されている。
The information processing system of the prior art 1 is composed of a plurality of computers connected to a communication network NET, at least one of which is a computer (application server) SB for distributing an application program, and the rest of the computers SB. The computer is a system configured by a computer (client computer) CL which is a client that downloads and executes the application program. An extended hardware (extended HW) 1 capable of changing and reconfiguring functions as needed by a program is mounted on a part of the plurality of client computers CL.

【0010】アプリケーション・サーバSBに格納され
たアプリケーションプログラムAPには、その一部の機
能に対して、拡張ハードウェアで実行されるプログラム
コード(拡張コード)と、クライアント・コンピュータ
CLのメインプロセッサ(メインP)2で実行されるメ
インプロセッサコードが含まれている。
The application program AP stored in the application server SB has, for some of its functions, a program code (extension code) executed by extension hardware and a main processor (main processor) of the client computer CL. P) 2 contains the main processor code executed.

【0011】クライアント・コンピュータCLのOS
は、拡張ハードウェア1が実装されているか否かを判断
する機能を持ち、その判断に基づいて、ハードウエア構
成に適したコードをアプリケーションプログラムAPか
ら取り出すコード選択機能3を備える。そして、図9の
上側のクライアント・コンピュータCLのように、拡張
ハードウエア1が実装されている場合には、コード選択
機能3を通じてアプリケーションプログラムAPの中か
ら拡張コードが取り出されて、拡張ハードウエアで処理
が実行される。
OS of the client computer CL
Has a function of determining whether or not the extended hardware 1 is installed, and includes a code selection function 3 for extracting a code suitable for the hardware configuration from the application program AP based on the determination. When the extension hardware 1 is installed as in the client computer CL on the upper side in FIG. 9, the extension code is extracted from the application program AP through the code selection function 3 and is executed by the extension hardware. The processing is executed.

【0012】また、図9の下側のクライアント・コンピ
ュータCLのように、拡張ハードウェア1を持たない場
合には、アプリケーションプログラムAPから、コード
選択機能3を通じてメインプロセッサコードが取り出さ
れて、メインプロセッサ2で処理が実行される。
In the case where the extended hardware 1 is not provided as in the client computer CL shown in the lower part of FIG. 9, the main processor code is extracted from the application program AP through the code selecting function 3 and is executed. The process is executed in 2.

【0013】別の構成では、拡張ハードウェア1で実現
する機能を、クライアント・コンピュータCL上に、後
から動的に追加/削除が可能なOSの拡張機能あるいは
動的ライブラリとして実現し、アプリケーションプログ
ラムがOSに対し処理中に利用する拡張機能あるいは動
的ライブラリの種類を登録する。OSは、拡張機能ある
いは動的ライブラリがクライアントに上に存在する場合
にはそれを用い、存在しない場合にはネットワーク上の
サーバーから必要とする拡張機能あるいは動的ライブラ
リを転送し利用する。
In another configuration, a function realized by the extended hardware 1 is realized as an OS extended function or a dynamic library which can be dynamically added / deleted later on the client computer CL, and an application program Registers the type of an extended function or a dynamic library used during processing with the OS. The OS uses the extended function or the dynamic library if it exists on the client, and if not, transfers and uses the required extended function or the dynamic library from a server on the network.

【0014】また、メインプロセッサ2用のコード、拡
張ハードウェア1用のコードは、一体となっているので
はなく、アプリケーションプログラムまたはOSの拡張
機能または動的ライブラリ毎に、個々のコードをホスト
コンピュータに上に備えることもできる。
Further, the code for the main processor 2 and the code for the extended hardware 1 are not integrated, but individual codes for each extended function or dynamic library of the application program or the OS are transferred to the host computer. Can also be provided above.

【0015】拡張ハードウェア1を構成するプログラマ
ブルロジックの構成が、クライアント・コンピュータC
L間で異なる場合は、拡張コードを、適当なゲート数と
入出力端子数の論理回路の機能をブール式等で記述した
基本モジュールと、それらの接続関係を表現したコード
とすることもできる。この基本モジュールをそれぞれプ
ログラマブルロジックの基本プログラムに割り付ける機
能と、複数のプログラマブルロジックチップにまたがる
大きな拡張コードの場合には、基本モジュールを接続の
度合いに応じて分割し、各プログラマブルロジックチッ
プに配置配線する機能を、アプリケーション・サーバS
Bまたはクライアント・コンピュータCL上に持つ。
The configuration of the programmable logic constituting the extended hardware 1 is a client computer C
If different between L, the extension code may be a basic module in which the function of a logic circuit with an appropriate number of gates and the number of input / output terminals is described by a Boolean expression or the like, and a code expressing their connection relation. In the case of a function for assigning each basic module to a basic program of programmable logic, and in the case of a large extension code extending over a plurality of programmable logic chips, the basic module is divided according to the degree of connection and arranged and wired to each programmable logic chip. The function of the application server S
B or on the client computer CL.

【0016】拡張ハードウェア1を利用する複数のアプ
リケーションを同時に実行できるように、必要のなくな
ったハードウェア資源を別のアプリケーションプログラ
ムのために再利用するハードウェア資源の管理機能と、
拡張ハードウェア1に入りきらない拡張コードを時分割
で入れ替えるコード入れ替え機能を持つ。クライアント
・コンピュータCL上で実行されるアプリケーションプ
ログラム毎に適宜設定されるプライオリティ値、メイン
プロセッサ2の処理能力値、拡張ハードウェア1の処理
能力値、ハードウェア資源量、コード入れ替えるために
必要な処理能力値を基に、ハードウェア資源に入りきら
ない複数のアプリケーションプログラムに対して選択す
る拡張ハードウェア管理機能を持つ。
A hardware resource management function of reusing unnecessary hardware resources for another application program so that a plurality of applications using the extended hardware 1 can be executed simultaneously;
It has a code replacement function for replacing an extension code that cannot be accommodated in the extension hardware 1 by time division. Priority value appropriately set for each application program executed on the client computer CL, processing capacity value of the main processor 2, processing capacity value of the extended hardware 1, amount of hardware resources, processing capacity required for code replacement It has an extended hardware management function for selecting multiple application programs that cannot fit into the hardware resources based on the values.

【0017】複数のアプリケーションが同時に同じ拡張
コードを拡張ハードウェア1で利用する場合には、内部
状態のみを時分割で切り替えて機能を共有する。
When a plurality of applications use the same extension code in the extension hardware 1 at the same time, the function is shared by switching only the internal state by time division.

【0018】以上のように、ネットワークで接続された
コンピュータ上で、サーバから配布されたアプリケーシ
ョンプログラムをクライアント側で実行する際、クライ
アントにプログラムにより機能を随時変更し、再構成可
能な拡張ハードウェアを搭載し、サーバーに格納された
アプリケーションプログラムには、メインプロセッサコ
ードと拡張コードを含ませ、拡張ハードウェアの有無、
種類を判断したコード選択機能によって、クライアント
側の計算機の構成を変え、処理に適した構成にすること
でアプリケーションプログラムを高速に処理できる。
As described above, when an application program distributed from a server is executed on a client side on a computer connected to a network, the client can use a program to change its function as needed and use reconfigurable extended hardware. The application program installed and stored in the server includes the main processor code and extension code,
The configuration of the computer on the client side is changed by the code selection function that has determined the type, and the application program can be processed at high speed by making the configuration suitable for processing.

【0019】また、従来、ネットワーク上で、クライア
ント側に特殊なハードウェアを必要とする新しいサービ
スを開始しようとする場合、クライアント側のユーザは
そのために新しいハードウェアを導入する必要があった
し、サービスの提供者は、新しいハードウェアをもつ一
部のユーザに対してのみ新しいサービスを提供すること
になった。このように、新しいハードウェアを導入する
ことなく、新しいサービスを開始することが可能とな
る。
Conventionally, when trying to start a new service that requires special hardware on the client side on the network, the user on the client side has to introduce new hardware for that purpose. Service providers have decided to offer new services only to some users with new hardware. Thus, a new service can be started without introducing new hardware.

【0020】次にプログラマブル論理回路の新しいデバ
イス技術について述べる。アプリケーションの処理に合
わせた処理回路をプログラマブル論理回路上に構成し、
この専用の処理回路を用いて高速処理を実現するという
リコンフィギュラブルコンピューティングにプログラマ
ブル論理回路が活用され始めている。
Next, a new device technology for a programmable logic circuit will be described. Configure a processing circuit according to the processing of the application on a programmable logic circuit,
Programmable logic circuits have begun to be used in reconfigurable computing that realizes high-speed processing using this dedicated processing circuit.

【0021】リコンフィギュラブルコンピューティング
では、アプリケーション処理で必要となる複数の処理回
路の回路情報を記憶装置へ事前に格納しておき、必要に
応じて記憶装置から読み出した回路情報をプログラマブ
ル論理回路に書きこむことで、その時点で必要となる回
路を生成する。この技術はキャッシュロジック技術とか
バーチャルロジック技術と呼ばれる。
In reconfigurable computing, circuit information of a plurality of processing circuits required for application processing is stored in a storage device in advance, and the circuit information read from the storage device is stored in a programmable logic circuit as needed. By writing, a circuit required at that time is generated. This technology is called cache logic technology or virtual logic technology.

【0022】キャッシュロジック技術は、おなじプログ
ラマブル論理回路上に必要に応じて異なる回路を構成す
るという時分割駆動技術である。その結果、回路規模の
小さなプログラマブル論理回路を用いて、その回路規模
以上の回路を実現でき、回路装置の小型化と低コスト化
が可能となる。しかしながら、プログラマブル論理回路
に書きこむ回路情報の規模によっては、回路の再構成時
間が長くなり、専用の処理回路を用いて高速処理を実現
するというリコンフィギュラブルコンピューティングの
効果を損なうという問題がある。
The cache logic technique is a time-division driving technique in which different circuits are formed as necessary on the same programmable logic circuit. As a result, by using a programmable logic circuit having a small circuit scale, a circuit larger than the circuit scale can be realized, and the size and cost of the circuit device can be reduced. However, depending on the size of the circuit information to be written in the programmable logic circuit, there is a problem that the reconfiguration time of the circuit becomes longer and the effect of the reconfigurable computing of realizing high-speed processing using a dedicated processing circuit is impaired. .

【0023】この回路の再構成というコンフィギュレー
ションは、その回路による処理、すなわちプロセスのオ
ーバーヘッドとして作用し、処理の低速化を引き起こ
す。このオーバーヘッドによる影響を低減するために、
コンフィギュレーションとプロセスの並列化処理が行わ
れる。すなわち、あるプロセスの実行中に、プログラマ
ブル論理回路の非動作領域に次の回路のコンフィギュレ
ーションを並行して実行するものである。
This configuration of reconfiguration of the circuit acts as processing overhead, that is, process overhead, and causes a reduction in processing speed. To reduce the impact of this overhead,
Parallel processing of configuration and process is performed. In other words, during the execution of a certain process, the configuration of the next circuit is executed in parallel with the non-operating region of the programmable logic circuit.

【0024】ここで、コンフィギュレーションの単位と
しては、アプリケーションの処理に応じて、回路を機能
単位に細分化して、コンフィギュレーションデータが生
成したものとする。この生成された回路データ単位でプ
ログラマブル論理回路上に配置、再構成される。再構成
が完了した後から、プロセスとしてデータの処理が順次
実行されていく。このプロセス期間に、デバイス上の別
の非動作領域において、次の機能回路を再構成するため
のコンフィギュレーションデータが転送され、回路が再
構成されていく。
Here, as a configuration unit, it is assumed that the circuit is subdivided into functional units according to the processing of the application and configuration data is generated. These generated circuit data units are arranged and reconfigured on the programmable logic circuit. After the reconstruction is completed, data processing is sequentially executed as a process. During this process period, configuration data for reconfiguring the next functional circuit is transferred to another non-operating region on the device, and the circuit is reconfigured.

【0025】しかし、コンフィギュレーションしようと
する領域に既にコンフィギュレーションされていて、そ
のプロセスが実行されている場合、そのプロセスが完了
するまで待たなければならない。そのため、場合によっ
ては、コンフィギュレーション時間が長くなって、次の
プロセス開始が連続的に実行できず、待ち時間が発生
し、全体の処理が遅くなる問題がある。
However, if the area to be configured has already been configured and the process is running, it must wait until the process is completed. Therefore, in some cases, there is a problem that the configuration time becomes longer, the next process cannot be started continuously, a waiting time occurs, and the entire processing is slowed down.

【0026】この問題点を、図10、図11および図1
2を用いて説明する。例えば、処理回路を4つに分割し
て、順次部分書き換えを行いながら処理を実行していく
場合で説明する。
This problem will be described with reference to FIGS.
2 will be described. For example, a case will be described in which the processing circuit is divided into four parts and the processing is performed while sequentially performing partial rewriting.

【0027】図10に示すように、それぞれの分割され
た回路ブロックをA,B,C,Dとし、それらのコンフ
ィギュレーションデータをCDa、CDb、CDc、C
Ddとし、それぞれのコンフィギュレーション時間をt
ca、tcb、tcc、tcdとし、プロセス時間をそ
れぞれtpa、pb、tpc、tpdとする。
As shown in FIG. 10, the divided circuit blocks are denoted by A, B, C, and D, and their configuration data is represented by CDa, CDb, CDc, and C.
Dd, and each configuration time is t
It is assumed that ca, tcb, tcc, and tcd, and the process times are tpa, pb, tpc, and tpd, respectively.

【0028】コンフィギュレーション時間は、コンフィ
ギュレーションデータの格納先からプログラマブルデバ
イスに転送される速度、すなわち、転送周波数と信号ラ
インのバス幅によって転送速度が決定され、それらの構
成回路の最高動作周波数まで動作が可能になる。したが
って、転送速度をDTR[bps]とすると、コンフィ
ギュレーションデータに対して、それぞれのコンフィギ
ュレーション時間が求められる。
The configuration time is determined by the speed at which the configuration data is transferred from the storage location to the programmable device, that is, the transfer speed is determined by the transfer frequency and the bus width of the signal line, and the circuit operates up to the maximum operating frequency of those constituent circuits. Becomes possible. Therefore, assuming that the transfer rate is DTR [bps], each configuration time is obtained for the configuration data.

【0029】一方、アプリケーションの処理において、
プロセス時間は、プログラマブル論理回路の動作速度や
回路構成によって決定され、あらかじめ回路動作シミュ
レーションによって求めることができ、処理データ量を
加味して算出できる。
On the other hand, in the processing of the application,
The process time is determined by the operation speed and the circuit configuration of the programmable logic circuit, can be obtained in advance by a circuit operation simulation, and can be calculated in consideration of the processing data amount.

【0030】したがって、回路ブロックAから回路ブロ
ックDまでの一連の処理を順番に実行する場合には、ま
ず、回路ブロックAをコンフィギュレーションし、その
コンフィギュレーション終了後から回路ブロックAの処
理が実行されると同時に、次の回路ブロックBのコンフ
ィギュレーションが並列処理で実行される。以下同様
に、回路ブロックDのコンフィギュレーションが完了し
た後から回路ブロックDの処理が実行される。さらに、
回路ブロックAの処理に戻って繰り返される場合には、
回路ブロックDの処理と同時に回路ブロックAのコンフ
ィギュレーションが並列処理で実行される。以上のよう
に、コンフィギュレーションデータが回路ブロック単位
で扱われ、そのコンフィギュレーションが完了した後に
その処理が実行可能になる。
Therefore, when a series of processes from the circuit block A to the circuit block D are sequentially executed, the circuit block A is first configured, and after the completion of the configuration, the process of the circuit block A is executed. At the same time, the configuration of the next circuit block B is executed in parallel. Similarly, after the configuration of the circuit block D is completed, the processing of the circuit block D is executed. further,
When returning to the processing of the circuit block A and repeating it,
The configuration of the circuit block A is executed in parallel with the processing of the circuit block D. As described above, the configuration data is handled in units of circuit blocks, and the processing can be executed after the configuration is completed.

【0031】しかし、コンフィギュレーションデータの
サイズが大きく、そのコンフィギュレーション期間にお
いて、先の機能回路ブロックの処理時間が短い場合に
は、次の処理回路の実行開始まで待ち時間が発生するこ
とになる。そのため、アプリケーション全体の処理時間
でみたときには、この待ち時間の累積時間分だけ処理時
間が長くかかることになり、性能の低下が発生する問題
がある。
However, if the size of the configuration data is large and the processing time of the preceding functional circuit block is short during the configuration period, a waiting time is generated until the next processing circuit starts to be executed. Therefore, when viewed from the processing time of the entire application, the processing time is longer by the accumulated time of the waiting time, and there is a problem that the performance is reduced.

【0032】今、回路ブロックA〜回路ブロックDのそ
れぞれが図11に示すような形状および大きさであり、
プログラマブル論理回路4上に、図11に示すような状
態で配置される場合について、図12の処理タイミング
図を参照して説明する。
Now, each of the circuit blocks A to D has a shape and a size as shown in FIG.
The case of being arranged on the programmable logic circuit 4 in a state as shown in FIG. 11 will be described with reference to the processing timing chart of FIG.

【0033】まず、スタート時点t0から、回路ブロッ
クAのコンフィギュレーションCaが行われる。この回
路ブロックAのコンフィギュレーションが完了した時点
t1から回路ブロックAによるプロセスPaが実行され
ると共に、次の回路ブロックBのコンフィギュレーショ
ンCbが、プロセスCaと並列に、コンフィギュレーシ
ョン時間tcbの期間実行され、時点t2で回路ブロッ
クBのコンフィギュレーションが完了する。
First, from the start time t0, the configuration Ca of the circuit block A is performed. From time t1 when the configuration of the circuit block A is completed, the process Pa by the circuit block A is executed, and the configuration Cb of the next circuit block B is executed in parallel with the process Ca for the configuration time tcb. At time t2, the configuration of the circuit block B is completed.

【0034】回路ブロックAによるプロセスPaと、回
路ブロックBによるプロセスPbが連続であるため、プ
ロセスPaが完了した時点t3後から連続してプロセス
Pbが実行され、プロセス時間tpb後の時点t4まで
行なわれる。
Since the process Pa by the circuit block A and the process Pb by the circuit block B are continuous, the process Pb is continuously executed from the time t3 when the process Pa is completed, and is performed until the time t4 after the process time tpb. It is.

【0035】次の回路ブロックCは、図11に示すよう
に、回路ブロックAの領域と重複している部分があるた
め、回路ブロックAがプロセスPaが終了するまで、こ
の回路ブロックCのコンフィギュレーションはできな
い。したがって、プロセスPaが終了し、プロセスPb
が開始する時点t3以後に、回路ブロックCのコンフィ
ギュレーションも開始されることになる。
As shown in FIG. 11, the next circuit block C overlaps with the area of the circuit block A, so that the configuration of the circuit block C is not changed until the process Pa ends. Can not. Therefore, the process Pa ends and the process Pb
After the time point t3 at which the operation starts, the configuration of the circuit block C is also started.

【0036】ところが、回路ブロックCのコンフィギュ
レーションデータCDcが大きく、そのコンフィギュレ
ーション時間tccが、回路ブロックBによるプロセス
Pbのプロセス時間tpbより長い場合、回路ブロック
によるプロセスPcが開始できるまで、図12において
期間twcで示す待ち時間が発生する。
However, if the configuration data CDc of the circuit block C is large and the configuration time tcc is longer than the process time tpb of the process Pb of the circuit block B, the process shown in FIG. A waiting time indicated by a period twc occurs.

【0037】この図12では、他にもプロセスPdとコ
ンフィギュレーションCaとの間においても待ち時間t
waが発生していることを示している。これらの待ち時
間twa,twcは、プロセスPaからプロセスPdま
での繰り返しサイクル数分だけ累積され、全体の処理時
間が長くなってしまう。
In FIG. 12, the waiting time t is also set between the process Pd and the configuration Ca.
wa is generated. These waiting times twa and twc are accumulated by the number of repetition cycles from the process Pa to the process Pd, and the overall processing time becomes longer.

【0038】この問題を解決できる手段としては、コン
フィギュレーションデータを小さくしたり、コンフィギ
ュレーション転送速度を上げることで、コンフィギュレ
ーション時間を短縮することが挙げられる。
As a means for solving this problem, the configuration time can be shortened by reducing the configuration data or increasing the configuration transfer speed.

【0039】しかし、コンフィギュレーションデータを
小さくするためには、プログラマブル論理回路の中の空
いている論理回路部に対して回路利用効率を上げる必要
があり、そのコンフィギュレーション再生成のために
は、設計ツールを用いて複雑な処理が必要になり、多大
な時間と労力を必要とする。
However, in order to reduce the configuration data, it is necessary to increase the circuit utilization efficiency of the vacant logic circuit portion in the programmable logic circuit. Complicated processing is required using tools, which requires a great deal of time and effort.

【0040】また、コンフィギュレーション転送速度を
上げてコンフィギュレーション時間を短縮する場合、転
送に関わる回路の動作速度には限界があり、必ずしも処
理時間よりコンフィギュレーション時間を短くできると
は限らない。また、動作周波数を上げることは、消費電
力の増加をもたらすため、バッテリー駆動などで低消費
電力仕様を求められる場合には不適となる。
When the configuration transfer speed is increased to reduce the configuration time, there is a limit to the operation speed of a circuit related to the transfer, and the configuration time cannot always be shortened from the processing time. In addition, increasing the operating frequency causes an increase in power consumption, which is inappropriate when a low power consumption specification is required for battery driving or the like.

【0041】[0041]

【発明が解決しようとする課題】以上のように、従来の
汎用CPUとソフトウェアによるアプリケーションプロ
グラムの処理を高速化するため、あるいは新しい機能を
付加する場合などに、拡張したハードウェアが用いられ
る。特に、拡張ハードウェアにプログラマブル論理回路
を用いて、回路を再構成しながら処理を並列で実行して
いく場合には、回路の再構成時間による影響を小さくす
る必要がある。
As described above, extended hardware is used to speed up the processing of an application program by a conventional general-purpose CPU and software, or to add a new function. In particular, when a program is executed in parallel while reconfiguring a circuit by using a programmable logic circuit as extended hardware, it is necessary to reduce the influence of the reconfiguration time of the circuit.

【0042】通常、アプリケーションプログラムにおい
て、処理の順番が決定されていて、そのために用いる機
能回路もあらかじめ決定されている。しかし、プログラ
マブル論理回路には、応用システムに適した実装回路規
模、処理性能、消費電力などに応じて、サイズが選択さ
れるため、あらかじめ回路ブロックの分割サイズや配置
などは適性化されていない。
Normally, the order of processing is determined in the application program, and the functional circuit used for that is also determined in advance. However, since the size of the programmable logic circuit is selected according to the size of the mounted circuit, processing performance, power consumption, and the like suitable for the application system, the division size and arrangement of the circuit blocks are not optimized in advance.

【0043】そのため、特にプログラマブル論理回路の
サイズが小さくなると、前述したように、回路ブロック
間で重なる配置とする場合が発生し、先にコンフィギュ
レーションされた回路のプロセスが終了しないと、次の
回路ブロックのコンフィギュレーションができない。し
たがって、コンフィギュレーションしようとする回路に
よるプロセス開始までの待ち時間が発生し、全体の処理
性能が低下する欠点がある。
For this reason, when the size of the programmable logic circuit is particularly reduced, as described above, the arrangement may be such that the circuit blocks overlap each other. If the process of the previously configured circuit is not completed, the next circuit The block cannot be configured. Therefore, there is a drawback that a waiting time until a process to be started by a circuit to be configured occurs and the overall processing performance is reduced.

【0044】この発明は、以上の点にかんがみ、回路ブ
ロックのコンフィギュレーションによるオーバーヘッド
の影響を軽減し、システム全体の処理性能を向上させる
ことを目的とする。
In view of the above, it is an object of the present invention to reduce the influence of overhead due to the configuration of a circuit block and improve the processing performance of the entire system.

【0045】[0045]

【課題を解決するための手段】上記課題を解決するため
に、この発明によるプログラマブル論理回路への回路の
再構成方法おいては、プログラマブル論理回路に、複数
個の回路を順次に再構成しながら、再構成した回路によ
る処理を並行して順次に実行させるようにする場合にお
ける前記複数個の回路の再構成方法であって、次に回路
を再構成しようとする少なくとも一部の領域に、前に再
構成されていて、その処理が実行されている前回路が存
在するような回路については、前記前回路の領域と重な
る部分と、重ならない部分とに、再構成のためのデータ
を分割しておき、前記重ならない部分を前記前回路の処
理と並行して再構成し、前記前回路の処理が終了した後
に、前記重なる部分を再構成することを特徴とする。
In order to solve the above problems, in a method for reconfiguring a circuit into a programmable logic circuit according to the present invention, a plurality of circuits are sequentially reconfigured in the programmable logic circuit. A method for reconfiguring the plurality of circuits in a case where the processes by the reconfigured circuits are sequentially executed in parallel; For a circuit that has been reconfigured and has a previous circuit for which the process is being executed, the data for reconfiguration is divided into a portion that overlaps the area of the previous circuit and a portion that does not overlap. In addition, the non-overlapping part is reconfigured in parallel with the processing of the preceding circuit, and after the processing of the preceding circuit ends, the overlapping part is reconfigured.

【0046】[0046]

【作用】上述の構成のこの発明によれば、プログラマブ
ル論理回路に再構成されていて、処理が実行されている
前回路の処理時間(プロセス時間)が、再構成(コンフ
ィギュレーション)しようとする回路のコンフィギュレ
ーション時間よりも短いため、待ち時間が発生する場合
には、その回路を再構成するためのデータを前回路の領
域と重なる部分と、重ならない部分とに、分割して生成
しておく。
According to the present invention having the above-described configuration, the circuit to be reconfigured into a programmable logic circuit and the processing time (process time) of the previous circuit in which processing is being executed is to be reconfigured (configured). Therefore, if a waiting time occurs, the data for reconfiguring the circuit is divided into a part overlapping the area of the previous circuit and a part not overlapping the part, and is generated. .

【0047】そして、実際のコンフィギュレーションに
おいては、その回路の前回路と重ならない部分を、当該
前回路の処理と並行して再構成する。そして、その前回
路の処理が終了した後に、残りの前回路と重なる部分の
再構成を行う。
Then, in the actual configuration, a portion which does not overlap with the preceding circuit of the circuit is reconfigured in parallel with the processing of the preceding circuit. Then, after the processing of the preceding circuit is completed, the portion overlapping with the remaining preceding circuit is reconfigured.

【0048】したがって、各回路の処理と処理との間の
待ち時間を無くす、あるいは短くすることができ、全体
としての処理時間を短縮化することができる。
Therefore, it is possible to eliminate or shorten the waiting time between the processings of each circuit, and to shorten the processing time as a whole.

【0049】[0049]

【発明の実施の形態】以下、この発明による情報処理シ
ステムの実施の形態およびプログラマブル論理回路への
回路再構成方法を、図を参照しながら説明する。なお、
以下に説明する実施の形態においては、アプリケーショ
ンプログラムにおいて、使用する回路情報と処理順など
の処理フローがあらかじめ決定されているものとする。
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS An embodiment of an information processing system according to the present invention and a method for reconfiguring a programmable logic circuit will be described below with reference to the drawings. In addition,
In the embodiment described below, it is assumed that the processing flow such as the circuit information to be used and the processing order is determined in advance in the application program.

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

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

【0052】そして、プログラマブル論理回路インター
フェース21には、プログラマブル論理回路22とロー
カルメモリ23とが接続される。そして、プログラマブ
ル論理回路22は、外部入出力インターフェース24を
介して外部機器31に接続され、データの入出力が行な
われる。
Then, the programmable logic circuit 22 and the local memory 23 are connected to the programmable logic circuit interface 21. The programmable logic circuit 22 is connected to an external device 31 via an external input / output interface 24, and inputs and outputs data.

【0053】プログラマブル論理回路インターフェース
21は、PCIバス14などのシステムバスによってC
PU11やメインメモリ13やローカルメモリ23に接
続されて、データ転送や制御を行うためのものである。
このプログラマブル論理回路インターフェース21に
は、プログラマブル論理回路22の回路の再構成のため
の処理データに付加されたヘッダ情報を解釈する機能回
路、回路再構成のための回路情報、処理データや中間処
理データの最後に付加されるEOF(End Of F
rame)のマーカ検出機能回路が含まれる。
The programmable logic circuit interface 21 is connected to the C bus by a system bus such as the PCI bus 14.
It is connected to the PU 11, the main memory 13, and the local memory 23 to perform data transfer and control.
The programmable logic circuit interface 21 includes a functional circuit for interpreting header information added to processing data for reconfiguring the circuit of the programmable logic circuit 22, circuit information for circuit reconfiguration, processing data and intermediate processing data. EOF (End Of F
) is included.

【0054】ハードディスクインターフェース15に
は、ハードディスクドライブ17が接続される。ハード
ディスクドライブ17により読み書きされるハードディ
スクには、アプリケーションプログラムが格納されてい
る。アプリケーションプログラムは、ハードディスクイ
ンターフェース15、PCIバス14およびチップセッ
ト12に含まれるホスト−PCIブリッジ(図示せず)
を介して、ハードディスクドライブ17からメインメモ
リ13にロードされて、CPU11によって実行され
る。
A hard disk drive 17 is connected to the hard disk interface 15. An application program is stored in a hard disk that is read and written by the hard disk drive 17. The application program includes a host-PCI bridge (not shown) included in the hard disk interface 15, the PCI bus 14, and the chipset 12.
Is loaded from the hard disk drive 17 to the main memory 13 and executed by the CPU 11.

【0055】また、ハードディスクドライブ17のハー
ドディスクには、プログラマブル論理回路22に再構成
される回路情報が格納されている場合もある。
The hard disk of the hard disk drive 17 may store circuit information reconfigured in the programmable logic circuit 22.

【0056】通信インターフェース16は、LANやイ
ンターネットなどのネットワーク32を介して様々な機
器に接続することができる。このため、アプリケーショ
ンプログラムは、ネットワーク32に接続される記憶装
置33に格納されている情報へのアクセスも行え、様々
なアプリケーションプログラムやデータなどを入手でき
る。この場合は、情報処理システム10が、アプリケー
ションプログラムを、ネットワーク32に接続される通
信インターフェース16を介してメインメモリ13に取
得して実行あるいはPCIバス14から直接プログラマ
ブル論理回路インターフェース21を介してプログラマ
ブル論理回路22へ転送することもできる。
The communication interface 16 can be connected to various devices via a network 32 such as a LAN or the Internet. Thus, the application program can also access information stored in the storage device 33 connected to the network 32, and can obtain various application programs and data. In this case, the information processing system 10 acquires the application program into the main memory 13 via the communication interface 16 connected to the network 32 and executes the application program, or executes the programmable logic via the programmable logic circuit interface 21 directly from the PCI bus 14. It can also be transferred to the circuit 22.

【0057】尚、プログラマブル論理回路22と、その
関連する周辺部であるプログラマブル論理回路インター
フェース21と、ローカルメモリ23と、外部入出力イ
ンターフェース24とは、集積化により一体化されて、
図2において点線で囲むプログラマブル論理回路ユニッ
ト20の構成とされる。このユニット20の構成とする
ことで、入出力部のライン負荷を低減させたり、専用バ
ス化の構成により、高速化および低消費電力化が図れ
る。
The programmable logic circuit 22 and its associated peripherals, ie, the programmable logic circuit interface 21, the local memory 23, and the external input / output interface 24 are integrated by integration.
The configuration of the programmable logic circuit unit 20 surrounded by a dotted line in FIG. With the configuration of the unit 20, the line load of the input / output unit can be reduced, and the configuration of a dedicated bus can achieve higher speed and lower power consumption.

【0058】次に、プログラマブル論理回路22の構造
を図3および図4に示す。プログラマブル論理回路22
は、回路情報を格納するためのコンフィギュレーション
メモリ41と、論理セル42と、配線領域43と、入出
力端子44とで構成される。
Next, the structure of the programmable logic circuit 22 is shown in FIGS. Programmable logic circuit 22
Is composed of a configuration memory 41 for storing circuit information, a logic cell 42, a wiring area 43, and an input / output terminal 44.

【0059】コンフィギュレーションメモリ41は、論
理セル42内および配線領域43内のEEPROM、S
RAMなどの書き換え可能なメモリ素子で構成されてい
る。回路データはアドレスADRとデータDTの対で構
成される。図4に示すように、コンフィギュレーション
メモリ41にアドレスADRが与えられて、そのアドレ
スに対応するメモリセルにアドレスと対になった新しい
回路情報のデータDTが格納されると、この回路情報に
従って、論理セル42内の回路構成と、論理セル42お
よび入出力端子44を相互に接続する配線領域43の接
続状態が再構成される。この一連の動作をコンフィギュ
レーションと呼ぶ。コンフィギュレーションメモリ41
の一部分を書き換えることで、プログラマブル論理回路
が動作中であっても、回路を部分的に再構成することが
できる。
The configuration memory 41 includes an EEPROM and a S in the logic cell 42 and the wiring area 43.
It is composed of a rewritable memory element such as a RAM. The circuit data is composed of a pair of an address ADR and data DT. As shown in FIG. 4, when the address ADR is given to the configuration memory 41 and the data DT of the new circuit information paired with the address is stored in the memory cell corresponding to the address, according to the circuit information, The circuit configuration in the logic cell 42 and the connection state of the wiring region 43 for interconnecting the logic cell 42 and the input / output terminal 44 are reconfigured. This series of operations is called a configuration. Configuration memory 41
Can partially reconfigure the circuit even when the programmable logic circuit is operating.

【0060】図4に示すように、プログラマブル論理回
路22に再構成されて形成された回路素子45に、入出
力端子44を介して、処理すべきデータが入力され、ま
た、その処理結果が出力される。データ入力先の論理セ
ルと、データ出力元の論理セルを、論理セルの位置に対
応するセル座標を示した制御コードによってアプリケー
ションプログラムが指定する。
As shown in FIG. 4, data to be processed is input to a circuit element 45 formed by being reconfigured in the programmable logic circuit 22 via an input / output terminal 44, and the processing result is output. Is done. The application program specifies the logic cell of the data input destination and the logic cell of the data output source by a control code indicating the cell coordinates corresponding to the position of the logic cell.

【0061】以上のシステム構成によって、プログラマ
ブル論理回路22による処理のデータの入出力方法によ
り処理するデータとしては、マルチメディアのような画
像、音声などのストリーミングデータなどがある。
With the above system configuration, data processed by the data input / output method of the processing by the programmable logic circuit 22 includes streaming data such as multimedia images and sounds.

【0062】[プログラマブル論理回路への再構成方
法]この実施の形態のプログラマブル論理回路への再構
成方法においては、アプリケーションプログラムにおけ
るプロセスの順序、それぞれのプロセスに対応する回路
ブロックの回路サイズ、配置アドレスの情報、および、
プログラマブル論理回路のサイズによって、コンフィギ
ュレーション時の重なりによる次のプロセスの待ち時間
の発生を検出する。そして、コンフィギュレーションの
重なりにより待ち時間発生となる回路ブロックのコンフ
ィギュレーションデータを重なり部と重ならない部分と
に分割し、重ならない部分のコンフィギュレーションを
先のプロセスと並列実行し、先のプロセス終了後に、重
なり部のコンフィギュレーションを実行するようにす
る。
[Method of Reconfiguring into Programmable Logic Circuit] In the method of reconfiguring into a programmable logic circuit according to the present embodiment, the order of processes in an application program, the circuit size of a circuit block corresponding to each process, and the placement address Information, and
Based on the size of the programmable logic circuit, the occurrence of a waiting time for the next process due to the overlap during configuration is detected. Then, the configuration data of the circuit block which causes a waiting time due to the overlapping of the configuration is divided into an overlapping portion and a non-overlapping portion, and the configuration of the non-overlapping portion is executed in parallel with the previous process. , So as to execute the configuration of the overlapping portion.

【0063】これにより、プロセス間の待ち時間をなく
すか、短くすることによって、コンフィギュレーション
によるオーバーヘッドの影響を軽減し、システム全体の
処理性能を向上させるようにする。なお、分割コンフィ
ギュレーションデータの生成時間が、アプリケーション
時間の処理時間を短くできるときに、その分割コンフィ
ギュレーションデータの生成を行うようにするのは勿論
である。
Thus, by eliminating or shortening the waiting time between the processes, the influence of the overhead due to the configuration is reduced, and the processing performance of the entire system is improved. Note that when the generation time of the divided configuration data can shorten the processing time of the application time, the divided configuration data is naturally generated.

【0064】この分割コンフィギュレーションデータの
生成は、CPU11が行うが、ネットワーク32に接続
されたサーバにおいて、そのCPUなどの演算手段が行
うようにしてもよい。
The generation of the divided configuration data is performed by the CPU 11, but may be performed by an arithmetic means such as the CPU in a server connected to the network 32.

【0065】まず、プログラマブル論理回路に対する回
路ブロックのサイズと配置、並びに、回路ブロックの重
なり検出と、分割コンフィギュレーションデータの生成
のための方法について述べる。
First, a description will be given of the size and arrangement of the circuit blocks with respect to the programmable logic circuit, the method of detecting the overlap of the circuit blocks, and the method of generating the divided configuration data.

【0066】プログラマブル論理回路は、応用システム
に適した実装回路規模、処理性能、消費電力などに応じ
て、サイズが選択されるため、プログラマブル論理回路
のサイズが決まらないと、あらかじめ回路ブロックの分
割サイズと配置などは決定できない。
The size of the programmable logic circuit is selected in accordance with the size of the mounted circuit, processing performance, power consumption, etc., which are suitable for the application system. And the arrangement cannot be determined.

【0067】しかし、一般的には、小さなサイズのプロ
グラマブル論理回路に対しても利用できるような回路ブ
ロックサイズで、回路ブロックのデータが生成される。
However, in general, circuit block data is generated in a circuit block size that can be used even for a small-sized programmable logic circuit.

【0068】回路ブロックの配置は、プログラマブル論
理回路のサイズに対応して配置が決定され、その配置は
アドレスで指定される。すなわち、大きなサイズのプロ
グラマブル論理回路においては、配置の自由度が高いた
め、回路の重なりは少なくなり、逆にサイズの小さなプ
ログラマブル論理回路では、配置の制約により重なりが
多くなる。
The layout of the circuit blocks is determined according to the size of the programmable logic circuit, and the layout is specified by an address. That is, in a large-sized programmable logic circuit, the degree of freedom in arrangement is high, and thus the overlap of the circuits is reduced. On the other hand, in a small-sized programmable logic circuit, the overlap is increased due to restrictions on the arrangement.

【0069】配置状態が決定されると、そのアドレス情
報を用いて、あらかじめ、回路ブロック間で重なる領域
になるかどうかの判別が可能である。
When the arrangement state is determined, it is possible to determine in advance whether or not the area overlaps between circuit blocks by using the address information.

【0070】すなわち、まず、コンフィギュレーション
しようとする回路ブロックが、プロセスを実行中の領域
に重なるかどうかの検出のために、コンフィギュレーシ
ョンしようとする回路ブロックのコンフィギュレーショ
ン時間と、そのコンフィギュレーション時に実行中とな
るプロセス時間との比較を行う。コンフィギュレーショ
ン時間の方がプロセス時間よりも長い場合には、プロセ
ス間の待ち時間が発生することになるため、重なり処理
を行うように判別する。コンフィギュレーション時間の
方がプロセス時間よりも短く、重ならないと判別された
場合には、そのままコンフィギュレーションを行う。
That is, first, in order to detect whether or not a circuit block to be configured overlaps an area where a process is being executed, the configuration time of the circuit block to be configured and the time of execution during the configuration are determined. Compare with the middle process time. If the configuration time is longer than the process time, a waiting time between processes will occur, so that it is determined to perform the overlap processing. If it is determined that the configuration time is shorter than the process time and does not overlap, the configuration is performed as it is.

【0071】ここで、重なる場合には、重なる部分と重
ならない部分とをプログラマブル論理回路の論理セル単
位で切り分ける分割コンフィギュレーションデータの生
成処理を行う。
Here, in the case of overlapping, a process of generating divided configuration data for separating the overlapping portion and the non-overlapping portion for each logic cell of the programmable logic circuit is performed.

【0072】分割コンフィギュレーションデータの生成
処理においては、先のプロセスと並行して重ならない部
分のコンフィギュレーションを行い、先のプロセスが終
了した後から重なる部分のコンフィギュレーションを行
う。このようにして、重なりのない回路部分のコンフィ
ギュレーションを先行させることにより、先のプロセス
終了後からのコンフィギュレーション時間を短縮でき
る。
In the process of generating the divided configuration data, the non-overlapping portions are configured in parallel with the previous process, and the overlapping portions are configured after the previous process is completed. In this way, by prioritizing the configuration of the circuit portion having no overlap, the configuration time from the end of the previous process can be reduced.

【0073】例えば、前述の図10の回路ブロックA〜
Dの場合を例にとると、回路ブロックCのコンフィギュ
レーション時間tccは、回路ブロックBのプロセス時
間tpbよりも大きいので、図5に示すように、回路ブ
ロックCは、回路ブロックAと重ならず、回路ブロック
Aでのプロセスに影響しない領域C1と、回路ブロック
Aと重なり、回路ブロックAでのプロセスに影響する領
域C2とに分ける。
For example, the circuit blocks A to A shown in FIG.
Taking the case of D as an example, the configuration time tcc of the circuit block C is longer than the process time tpb of the circuit block B, so that the circuit block C does not overlap with the circuit block A as shown in FIG. , A region C1 that does not affect the process in the circuit block A, and a region C2 that overlaps the circuit block A and affects the process in the circuit block A.

【0074】なお、図5に示すように、回路ブロックC
を、回路ブロックAの処理に影響しない領域C1と、回
路ブロックAの処理が終了した後にコンフィギュレーシ
ョンを実行すべき領域C2に分割する場合、C1とC2
の境界は、回路ブロックAと完全に分離できるところに
する必要があるため、プログラマブル論理回路の論理回
路セル単位での分割となり、回路ブロックA側に関係す
る回路セルで未使用であっても、重なり拡張部Cmとし
て領域C2に含める。また、配線についても同様に、回
路ブロックAに含まれる部分までは、重なり拡張部Cm
として領域C2に含める。
Note that, as shown in FIG.
Is divided into an area C1 that does not affect the processing of the circuit block A and an area C2 where the configuration is to be executed after the processing of the circuit block A is completed.
Is required to be completely separated from the circuit block A, so that the programmable logic circuit is divided in units of logic circuit cells. Even if the boundary is not used in the circuit cells related to the circuit block A, It is included in the area C2 as the overlap extension Cm. Similarly, for the wiring, up to the portion included in the circuit block A, the overlapping extension Cm
In the area C2.

【0075】また、回路ブロックの重なり検出と、分割
コンフィギュレーションデータの生成の方法として二つ
の形態がある。一つは、アプリケーション処理開始前
に、回路ブロックの重なりの有無をチェックし、有る場
合には、最初に分割コンフィギュレーションデータを生
成し、それらを用いてアプリケーションを実行する方法
である。もう一つは、アプリケーション処理開始後の第
1サイクルで、回路ブロックの重なりの有無をチェック
し、重なりがある場合には、分割コンフィギュレーショ
ンデータを生成し、以降の処理では分割コンフィギュレ
ーションを用いてアプリケーションを実行する方法であ
る。
There are two modes for detecting the overlap of the circuit blocks and for generating the divided configuration data. One is a method in which the presence or absence of overlapping circuit blocks is checked before application processing is started, and if there is, divided configuration data is first generated, and the application is executed using the data. The other is the first cycle after the start of application processing, checking for the presence or absence of overlapping circuit blocks. If there is an overlap, generate divided configuration data, and in the subsequent processing, use the divided configuration. How to run the application.

【0076】前者の形態の場合、後者の形態の場合のい
ずれの場合にも、コンフィギュレーションデータの分割
生成処理は、情報処理システム10内のCPU11で
も、ネットワーク32に接続されたサーバのどちらでも
よい。
In either case of the former case or the latter case, the division and generation processing of the configuration data may be performed by either the CPU 11 in the information processing system 10 or the server connected to the network 32. .

【0077】[第一の形態;アプリケーション処理開始
前に検出、分割データ生成]回路ブロックの重なり検出
と分割コンフィギュレーションデータの生成の方法とし
て挙げた二つの形態のうちの第1の形態を、図5の回路
ブロック配置図、図6のタイミング図および図1のフロ
ーチャートを用いて説明する。
[First Mode; Detection Before Application Processing Starts, and Generation of Divided Data] The first mode of the two modes listed as the method of detecting the overlap of circuit blocks and generating the divided configuration data is shown in FIG. 5 and the timing chart of FIG. 6 and the flowchart of FIG.

【0078】アプリケーション処理の開始前に、プログ
ラマブル論理回路のサイズ、機能回路ブロックの個別サ
イズと配置アドレス、処理順序を基に、重なり部が発生
する回路ブロックを、前述のようにしてコンフィギュレ
ーション時間とプロセス時間との比較によって待ち時間
を検出する。検出されたコンフィギュレーションデータ
を分割生成する処理方法である。これらの処理フローを
図1に示すフローチャートを用いて説明する。
Prior to the start of the application processing, the circuit block in which the overlapping portion occurs is determined based on the size of the programmable logic circuit, the individual size and the arrangement address of the functional circuit block, and the processing order as described above. The waiting time is detected by comparing with the process time. This is a processing method for dividing and generating detected configuration data. These processing flows will be described with reference to the flowchart shown in FIG.

【0079】ここでは、種類がN個の回路ブロックにつ
いて、順番にコンフィギュレーションとプロセスが実行
されていく場合を示す。
Here, a case is shown in which the configuration and the process are sequentially executed for N types of circuit blocks.

【0080】まず、回路ブロックの順番を示す変数jの
初期化(j=1)を行い(ステップS1)、j番目の回
路ブロックのコンフィギュレーションCjの時間tcj
を算出する(ステップS2)。コンフィギュレーション
時間tcjは、コンフィギュレーションデータの格納先
からプログラマブル論理回路に転送される速度、すなわ
ち、転送周波数と信号ラインのバス幅によって転送速度
が決定される。この場合、それらの構成回路の最高動作
周波数まで動作が可能になる。したがって、転送速度を
DTR[bps]とすると、コンフィギュレーションデ
ータサイズ[bit]をDTRで割ることによって、そ
れぞれのコンフィギュレーション時間が求められる。
First, a variable j indicating the order of the circuit blocks is initialized (j = 1) (step S1), and the time tcj of the configuration Cj of the j-th circuit block is initialized.
Is calculated (step S2). The configuration time tcj is determined by the speed at which the configuration data is transferred from the storage location to the programmable logic circuit, that is, the transfer speed is determined by the transfer frequency and the bus width of the signal line. In this case, the components can operate up to the maximum operating frequency. Therefore, assuming that the transfer rate is DTR [bps], each configuration time is obtained by dividing the configuration data size [bit] by DTR.

【0081】次に、順番jが最初か否か判別し(ステッ
プS3)、最初であれば、コンフィギュレーション時間
tcjと時間比較するプロセス時間tpは、複数個の回
路ブロックを繰り返すアプリケーションの場合として、
最後の回路ブロックPM(j=M)のプロセス時間tp
(M)であると決定する(ステップS4)。また、順番
jが最初でなければ、コンフィギュレーション時間tc
jと時間比較するプロセス時間tpは、一つ前のプロセ
スのプロセス時間tp(j−1)とする(ステップS
5)。
Next, it is determined whether or not the order j is the first (step S3). If it is the first time, the process time tp for comparing the configuration time tcj with the configuration time tcj is as follows for an application in which a plurality of circuit blocks are repeated.
Process time tp of the last circuit block PM (j = M)
(M) is determined (step S4). If the order j is not the first, the configuration time tc
The process time tp for time comparison with j is the process time tp (j-1) of the immediately preceding process (step S
5).

【0082】プロセス時間は、プログラマブル論理回路
の動作速度や回路構成によって決定され、あらかじめシ
ミュレーションなどで求めることができるため、アプリ
ケーションにおける処理データ量を加味して算出する。
The process time is determined by the operation speed and the circuit configuration of the programmable logic circuit and can be obtained in advance by simulation or the like. Therefore, the process time is calculated in consideration of the processing data amount in the application.

【0083】そして、j番目のコンフィギュレーション
Cjのコンフィギュレーション時間tcjと、ステップ
S4またはステップS5で算出されたプロセス時間tp
との比較を行う(ステップS6)。この場合に、最初の
回路ブロック(j=1)のコンフィギュレーション時間
のときは、最終の回路ブロックのプロセス時間tp=t
p(M)との比較を行い、その後の回路ブロックのコン
フィギュレーション時間のときには、その前のj−1番
目のプロセス時間tp=tp(j−1)との比較を行
う。
Then, the configuration time tcj of the j-th configuration Cj and the process time tp calculated in step S4 or S5
(Step S6). In this case, when the configuration time of the first circuit block (j = 1) is reached, the process time tp = t of the last circuit block
The comparison with p (M) is performed, and in the case of the subsequent configuration time of the circuit block, the comparison is performed with the preceding (j−1) th process time tp = tp (j−1).

【0084】コンフィギュレーション時間tcjがプロ
セス時間tpより長いときには、重なりが発生している
と判定し、重なり状態を示すフラグFjをFj=1とし
(ステップS7)、短いときには重なりがないと判定
し、フラグFjをFj=0とする(ステップS8)。
When the configuration time tcj is longer than the process time tp, it is determined that an overlap has occurred. The flag Fj indicating the overlap state is set to Fj = 1 (step S7). When the overlap time is short, it is determined that there is no overlap. The flag Fj is set to Fj = 0 (step S8).

【0085】重なりが発生するときには、重なり領域の
コンフィギュレーションデータのアドレスをプログラマ
ブル論理回路のサイズに対して配置が決定されたコンフ
ィギュレーションデータのアドレスから算出する(ステ
ップS9)。このアドレス算出アドレスデータに基づい
て、分割コンフィギュレーションデータCj1およびC
j2を生成する(ステップS10)。ここでは、Cj1
を重ならない領域、Cj2を重なり領域のコンフィギュ
レーションデータとして扱う。
When the overlap occurs, the address of the configuration data in the overlap area is calculated from the address of the configuration data whose arrangement is determined with respect to the size of the programmable logic circuit (step S9). Based on the address calculation address data, divided configuration data Cj1 and Cj1
j2 is generated (step S10). Here, Cj1
Are treated as non-overlapping areas, and Cj2 is treated as configuration data of the overlapping areas.

【0086】ここで、重なり部側の分割コンフィギュレ
ーションデータCj2には、プログラマブル論理回路の
最小構成単位である論理セルで分割するが、重なり部か
らの配線が含まれるセル部分をも含める。また、重なら
ない領域の分割コンフィギュレーションデータCj1に
ついても、プログラマブル論理回路の最小構成単位であ
る論理セルを分割される最小単位とする。
Here, the divided configuration data Cj2 on the overlapping portion side is divided by a logic cell, which is the minimum structural unit of the programmable logic circuit, but also includes a cell portion including wiring from the overlapping portion. Also, regarding the divided configuration data Cj1 in the non-overlapping area, the logic cell, which is the minimum configuration unit of the programmable logic circuit, is set as the minimum unit to be divided.

【0087】分割コンフィギュレーションデータの生成
が終了したら、順番を示す変数を次の順番にする(ステ
ップS11)。ステップS8でフラグFjをFj=0と
したときには、重なり領域のアドレス算出のステップS
9と分割コンフィギュレーションの生成のステップS1
0とをバイパスして、コンフィギュレーションの順番を
次の順番にする、このステップS11に飛ぶ。
When the generation of the divided configuration data is completed, the variable indicating the order is set to the next order (step S11). When the flag Fj is set to Fj = 0 in Step S8, Step S8 of calculating the address of the overlapping area is performed.
9 and step S1 for generating a split configuration
0, and the configuration order is set to the next order. The process jumps to step S11.

【0088】以下同様にして、N個の回路ブロックの最
後の回路ブロックについて、重なりが生じるすべての回
路ブロックについては、重なり領域の検出と分割データ
生成の処理を行う(ステップS12)。
In the same manner, for the last circuit block of the N circuit blocks, the processing of detecting the overlapping area and generating the divided data is performed for all the circuit blocks where the overlap occurs (step S12).

【0089】以上のようにして生成された分割コンフィ
ギュレーションデータを用いて、アプリケーション処理
の実行を行う(ステップS13)。この場合に、重なり
判別フラグFjにより、重なりのあるコンフィギュレー
ションデータをCj1とCj2に分割したコンフィギュ
レーションデータを用いて、先に重ならない領域Cj1
のコンフィギュレーションを行い、先のプロセスが終了
した後に重なりの領域Cj2のコンフィギュレーション
を行う。
The application processing is executed using the divided configuration data generated as described above (step S13). In this case, by using the configuration data obtained by dividing the overlapping configuration data into Cj1 and Cj2 according to the overlap determination flag Fj, an area Cj1 that does not overlap first is used.
After the previous process is completed, the overlapping area Cj2 is configured.

【0090】図5に示した4個の回路ブロックの例の場
合であれば、図6に示すように、回路ブロックBのコン
フィギュレーションの後に、回路ブロックAのプロセス
Paの終了を待つことなく、プロセスPaに並行して、
分割コンフィギュレーションデータの生成処理で生成し
た、重ならない領域についての分割コンフィギュレーシ
ョンデータC1のコンフィギュレーションCc1を実行
する。そして、回路ブロックAのプロセスPaの終了
後、回路ブロックBのプロセスPbと並行して、重なる
領域についての分割コンフィギュレーションデータC2
のコンフィギュレーションCc2を実行する。以上によ
り、この実施の形態の場合には、従来の図12の場合の
ような待ち時間twcを生じることなく、アプリケーシ
ョンの実行を行うことができる。
In the case of the example of four circuit blocks shown in FIG. 5, as shown in FIG. 6, after the configuration of the circuit block B, without waiting for the end of the process Pa of the circuit block A, In parallel with the process Pa,
The configuration Cc1 of the divided configuration data C1 for the non-overlapping region generated in the divided configuration data generation process is executed. After the completion of the process Pa of the circuit block A, the divided configuration data C2 for the overlapping area is concurrently provided with the process Pb of the circuit block B.
Of the configuration Cc2. As described above, in the case of this embodiment, the application can be executed without generating the waiting time twc as in the case of the related art in FIG.

【0091】[第2の形態;アプリケーション処理開始
後の第1サイクルで検出、分割データ生成]この第2の
形態は、アプリケーション処理は、N個の回路ブロック
によるプロセスが繰り返し行われるもので、そのアプリ
ケーション処理開始後の第1サイクルで、回路ブロック
の重なりの有無をチェックし、重なりがある場合には、
分割コンフィギュレーションデータを生成し、以降の処
理では分割コンフィギュレーションを用いてアプリケー
ションを実行する方法である。
[Second form: detection and division data generation in the first cycle after the start of application processing] In the second form, application processing is a process in which N circuit blocks are repeatedly executed. In the first cycle after the start of the application processing, it is checked whether or not the circuit blocks overlap.
In this method, divided configuration data is generated, and in the subsequent processing, an application is executed using the divided configuration.

【0092】なお、この分割コンフィギュレーションデ
ータを生成するための処理時間が必要になるため、第1
サイクルで分割コンフィギュレーションデータの生成が
完了するまで、第2サイクルを待たせる必要はなく、ア
プリケーション処理と並列に、CPUによる分割コンフ
ィギュレーションデータの生成処理、あるいは、ネット
ワークに接続されたサーバーなどによる分割コンフィギ
ュレーションデータの生成処理によって生成できた時点
のサイクルから、分割コンフィギュレーションの処理を
実行することもできる。
Note that a processing time for generating the divided configuration data is required.
There is no need to wait for the second cycle until the generation of the divided configuration data in the cycle is completed. The divided configuration data is generated by the CPU in parallel with the application processing, or divided by a server connected to a network. The split configuration process can be executed from the cycle at which the configuration data can be generated by the configuration data generation process.

【0093】ここでは、種類がN個の回路ブロックにつ
いて、順番にコンフィギュレーションとプロセスを実行
するサイクルをM回実行するアプリケーション処理で、
第1のサイクルで回路ブロックの重なり検出と分割コン
フィギュレーション生成処理を行い、第2サイクル以降
から分割コンフィギュレーションデータによる処理とし
た処理フローを図7および図8に示すフローチャートを
用いて説明する。
In this example, the application processing is to execute a cycle of sequentially executing the configuration and the process M times for N types of circuit blocks.
A process flow in which overlap detection of circuit blocks and generation of a divided configuration are performed in the first cycle, and processing based on the divided configuration data from the second cycle onward will be described with reference to flowcharts shown in FIGS.

【0094】まず、サイクル数を示す変数iと、回路ブ
ロックのコンフィギュレーションの順番を示す変数(回
路ブロックを示す変数に等しい)jとを初期化する(ス
テップS21)。次に、第iサイクルのj番目の回路ブ
ロックについてのコンフィギュレーションC(ij)を
行う(ステップS22)。そして、そのプロセスP(i
j)を実行する(ステップS23)。
First, a variable i indicating the number of cycles and a variable j (equal to a variable indicating the circuit block) j indicating the order of configuration of the circuit block are initialized (step S21). Next, the configuration C (ij) for the j-th circuit block in the i-th cycle is performed (step S22). Then, the process P (i
j) is executed (step S23).

【0095】次に、そのコンフィギュレーションC(i
j)およびプロセスP(ij)が最初の処理サイクル
(i=1)であるか否か判別する(ステップS24)。
そして、最初の処理サイクルであると判別したときに
は、この最初の処理サイクルにおいて、j番目の回路ブ
ロックのコンフィギュレーションC(1j)の時間tc
jを、前述と同様にして、算出する(ステップS2
5)。
Next, the configuration C (i
j) and the process P (ij) are in the first processing cycle (i = 1) (step S24).
When it is determined that this is the first processing cycle, the time tc of the configuration C (1j) of the j-th circuit block is determined in the first processing cycle.
j is calculated in the same manner as described above (step S2).
5).

【0096】次に、順番jが、最初の処理のサイクルに
おいて1番目か否か判別し(ステップS26)、1番目
であれば、コンフィギュレーション時間tcjと時間比
較するプロセス時間tpは、その最初のサイクルの最後
の回路ブロックPM(j=M)のプロセス時間tp
(M)であると決定する(ステップS27)。また、順
番jがその最初のサイクルにおいて1番目でなければ、
コンフィギュレーション時間tcjと時間比較するプロ
セス時間tpは、一つ前のプロセスのプロセス時間tp
(j−1)とする(ステップS28)。
Next, it is determined whether or not the order j is the first in the cycle of the first processing (step S26). If it is the first, the process time tp for comparing the time with the configuration time tcj is the first time. Process time tp of the last circuit block PM (j = M) of the cycle
(M) is determined (step S27). Also, if the order j is not the first in the first cycle,
The process time tp to be compared with the configuration time tcj is the process time tp of the immediately preceding process.
(J-1) (Step S28).

【0097】そして、j番目のコンフィギュレーション
C(1,j)のコンフィギュレーション時間tcjと、
ステップS27またはステップS28で算出されたプロ
セス時間tpとの比較を行う(ステップS31)。この
場合に、最初の回路ブロック(j=1)のコンフィギュ
レーション時間のときは、最終の回路ブロックのプロセ
ス時間tp=tp(M)との比較を行い、その後の回路
ブロックのコンフィギュレーション時間のときには、そ
の前のj−1番目のプロセス時間tp=tp(j−1)
との比較を行う。
Then, the configuration time tcj of the j-th configuration C (1, j),
A comparison is made with the process time tp calculated in step S27 or S28 (step S31). In this case, at the time of the configuration time of the first circuit block (j = 1), comparison is made with the process time tp = tp (M) of the last circuit block, and at the time of the configuration time of the subsequent circuit block. , The (j−1) th process time tp = tp (tp (j−1))
Compare with.

【0098】コンフィギュレーション時間tcjがプロ
セス時間tpより長いときには、重なりが発生している
と判定し、重なり状態を示すフラグFjをFj=1とし
(ステップS32)、短いときには重なりがないと判定
し、フラグFjをFj=0とする(ステップS33)。
If the configuration time tcj is longer than the process time tp, it is determined that an overlap has occurred. The overlap state flag Fj is set to Fj = 1 (step S32). If the overlap time is short, it is determined that there is no overlap. The flag Fj is set to Fj = 0 (step S33).

【0099】重なりが発生するときには、重なり領域の
コンフィギュレーションデータのアドレスをプログラマ
ブル論理回路のサイズに対して配置が決定されたコンフ
ィギュレーションデータのアドレスから算出する(ステ
ップS34)。このアドレス算出アドレスデータに基づ
いて、分割コンフィギュレーションデータCj1および
Cj2を生成する(ステップS35)。ここでは、Cj
1を重ならない領域、Cj2を重なり領域のコンフィギ
ュレーションデータとして扱う。
When the overlap occurs, the address of the configuration data in the overlap area is calculated from the address of the configuration data whose arrangement is determined with respect to the size of the programmable logic circuit (step S34). The divided configuration data Cj1 and Cj2 are generated based on the address calculation address data (step S35). Here, Cj
1 is treated as a non-overlapping area, and Cj2 is treated as configuration data of the overlapping area.

【0100】ここで、重なり部側の分割コンフィギュレ
ーションデータCj2には、プログラマブル論理回路の
最小構成単位である論理セルで分割するが、重なり部か
らの配線が含まれるセル部分をも含める。また、重なら
ない領域の分割コンフィギュレーションデータCj1に
ついても、プログラマブル論理回路の最小構成単位であ
る論理セルを分割される最小単位とする。
Here, the divisional configuration data Cj2 on the overlapping portion side is divided by a logic cell which is the minimum structural unit of the programmable logic circuit, but also includes a cell portion including wiring from the overlapping portion. Also, regarding the divided configuration data Cj1 in the non-overlapping area, the logic cell, which is the minimum configuration unit of the programmable logic circuit, is set as the minimum unit to be divided.

【0101】但し、それぞれの分割領域Cj1またはC
j2のサイズが小さい場合には、分割コンフィギュレー
ションデータを生成するための時間が発生するため、ア
プリケーションの全体の処理時間に対して、分割コンフ
ィギュレーション時間によるプロセス待ち時間の短縮時
間の総和によって処理時間を短くできる効果がない場合
には、分割処理をする必要はない。
However, each divided area Cj1 or Cj1
When the size of j2 is small, a time for generating the divided configuration data is generated. Therefore, the processing time is calculated by summing the reduction time of the process waiting time by the divided configuration time with respect to the entire processing time of the application. If there is no effect of reducing the length, there is no need to perform the division processing.

【0102】分割コンフィギュレーションデータの生成
が終了したら、順番を示す変数を次の順番にする(ステ
ップS36)。ステップS33でフラグFjをFj=0
としたときには、重なり領域のアドレス算出のステップ
S34と分割コンフィギュレーションの生成のステップ
S35とをバイパスして、コンフィギュレーションの順
番を次の順番にする、このステップS36に飛ぶ。
When the generation of the divided configuration data is completed, the variables indicating the order are set to the next order (step S36). In step S33, the flag Fj is set to Fj = 0.
In this case, the process skips step S34 for calculating the address of the overlapping area and step S35 for generating the divided configuration, and sets the order of the configuration to the next order, and jumps to step S36.

【0103】以下同様にして、N個の回路ブロックの最
後の回路ブロックについて、重なりが生じるすべての回
路ブロックについては、重なり領域の検出と分割データ
生成の処理を行う(ステップS37)。
In the same manner, for the last circuit block of the N circuit blocks, the processing of detecting the overlapping area and generating the divided data is performed for all the circuit blocks where the overlap occurs (step S37).

【0104】以上のようにして、第1の処理サイクル
(i=1)において回路ブロックの重なりの検出と分割
コンフィギュレーションデータの生成が行われる。そし
て、第2の処理サイクル以降に移行する(ステップS3
8、ステップS39)。
As described above, in the first processing cycle (i = 1), the detection of the overlap of the circuit blocks and the generation of the divided configuration data are performed. Then, the process proceeds to the second processing cycle or later (step S3).
8, step S39).

【0105】この第2の処理サイクル以降からは、生成
された分割コンフィギュレーションデータを用いて、ア
プリケーション処理の実行を行う(ステップS22、ス
テップS23)。この場合に、重なり判別のフラグFj
により、重なりのあるコンフィギュレーションデータを
Cj1とCj2に分割したコンフィギュレーションデー
タを用いて、図5および図6に示したように、先に重な
らない領域Cj1のコンフィギュレーションを行い、先
のプロセスが終了した後に重なりの領域Cj2のコンフ
ィギュレーションを行う。
After the second processing cycle, application processing is executed using the generated divided configuration data (steps S22 and S23). In this case, the overlap determination flag Fj
By using the configuration data obtained by dividing the overlapping configuration data into Cj1 and Cj2, the non-overlapping region Cj1 is configured as shown in FIGS. 5 and 6, and the previous process is completed. After that, the configuration of the overlapping area Cj2 is performed.

【0106】[0106]

【発明の効果】以上説明したように、この発明によれ
ば、処理を実行中の回路ブロックと次にコンフィギュレ
ーションしようとする回路ブロックとの重なりを検出
し、重ならない部分を先にコンフィギュレーションして
おき、先の回路ブロックによる処理が終了した後に残り
の重なり部のコンフィギュレーションを行うことで、プ
ロセス間の待ち時間をなくす、あるいは、短くすること
ができるため、全体の処理時間の高速化が図れる。
As described above, according to the present invention, an overlap between a circuit block which is executing a process and a circuit block to be configured next is detected, and a non-overlapping portion is configured first. In addition, by configuring the remaining overlapping part after the processing by the previous circuit block is completed, the waiting time between processes can be eliminated or shortened, so that the overall processing time can be shortened. I can do it.

【0107】また、コンフィギュレーション時間を短く
するために、コンフィギュレーションデータを小さくす
るための複雑で多大な労力と時間を要する再生成処理や
コンフィギュレーションデータの転送速度を上げて消費
電力を増加させることなしに、全体のコンフィギュレー
ション時間を同等にした構成で対応でき、システムの変
更が不要である。
Further, in order to shorten the configuration time, it is necessary to increase the power consumption by increasing the transfer rate of the configuration data and the regeneration processing which is complicated and requires much labor and time to reduce the configuration data. No configuration change is required, and a configuration in which the entire configuration time is the same can be used, and no system change is required.

【図面の簡単な説明】[Brief description of the drawings]

【図1】この発明によるプログラマブル論理回路への回
路の再構成方法の実施の形態を説明するためのフローチ
ャートである。
FIG. 1 is a flowchart illustrating an embodiment of a method for reconfiguring a circuit into a programmable logic circuit according to the present invention.

【図2】この発明による情報処理システムの実施の形態
のハードウエア構成例を示す図である。
FIG. 2 is a diagram illustrating an example of a hardware configuration of an information processing system according to an embodiment of the present invention;

【図3】プログラマブル論理回路の構造の例を説明する
ための図である。
FIG. 3 is a diagram illustrating an example of a structure of a programmable logic circuit.

【図4】プログラマブル論理回路の構造の例を説明する
ための図である。
FIG. 4 is a diagram illustrating an example of a structure of a programmable logic circuit.

【図5】実施の形態の再構成方法によって、プログラマ
ブル論理回路に順次に再構成しようとする回路ブロック
の配置関係を説明するための図である。
FIG. 5 is a diagram for explaining an arrangement relationship of circuit blocks to be sequentially reconfigured into a programmable logic circuit by the reconfiguration method according to the embodiment;

【図6】実施の形態の再構成方法を用いたアプリケーシ
ョンの実行動作のタイミングチャートを示す図である。
FIG. 6 is a diagram illustrating a timing chart of an application execution operation using the reconfiguration method according to the embodiment;

【図7】この発明によるプログラマブル論理回路への回
路の再構成方法の他の実施の形態を説明するためのフロ
ーチャートの一部を示す図である。
FIG. 7 is a part of a flowchart for explaining another embodiment of the method for reconfiguring a circuit into a programmable logic circuit according to the present invention;

【図8】図7のフローチャートの残部を示す図である。FIG. 8 is a diagram showing the remaining part of the flowchart of FIG. 7;

【図9】プログラマブル論理回路を用いた情報処理シス
テムの従来例のブロック図である。
FIG. 9 is a block diagram of a conventional example of an information processing system using a programmable logic circuit.

【図10】プログラマブル論理回路に順次に再構成しよ
うとする複数個の回路ブロックのそれぞれのパラメータ
を示す図である。
FIG. 10 is a diagram illustrating parameters of a plurality of circuit blocks to be sequentially reconfigured into a programmable logic circuit.

【図11】従来の再構成方法によって、プログラマブル
論理回路に順次に再構成しようとする回路ブロックの配
置関係を説明するための図である。
FIG. 11 is a diagram for explaining an arrangement relationship of circuit blocks to be sequentially reconfigured into a programmable logic circuit by a conventional reconfiguration method.

【図12】図11の例の場合のアプリケーションの実行
動作のタイミングチャートを示す図である。
12 is a diagram showing a timing chart of an execution operation of an application in the case of the example of FIG. 11;

【符号の説明】[Explanation of symbols]

10 情報処理システム 20 プログラマブル論理回路ユニット 22 プログラマブル論理回路 A,B,C,D 回路ブロック C1,C2 分割回路ブロック DESCRIPTION OF SYMBOLS 10 Information processing system 20 Programmable logic circuit unit 22 Programmable logic circuit A, B, C, D Circuit block C1, C2 Divided circuit block

Claims (8)

【特許請求の範囲】[Claims] 【請求項1】プログラマブル論理回路に、複数個の回路
を順次に再構成しながら、再構成した回路による処理を
並行して順次に実行させるようにする場合における前記
複数個の回路の再構成方法であって、 次に回路を再構成しようとする領域の少なくとも一部
に、前に再構成されていて、その処理が実行されている
前回路が存在するような回路については、前記前回路の
領域と重なる部分と、重ならない部分とに、再構成のた
めのデータを分割しておき、 前記重ならない部分を前記前回路の処理と並行して再構
成し、前記前回路の処理が終了した後に、前記重なる部
分を再構成することを特徴とするプログラマブル論理回
路への回路の再構成方法。
1. A method for reconfiguring a plurality of circuits in a case where a plurality of circuits are sequentially reconfigured in a programmable logic circuit while processing by the reconfigured circuits is performed sequentially in parallel. For a circuit in which a previous circuit has been reconfigured before and in which at least a part of a region where the circuit is to be reconfigured, and the processing of which is being performed, the former circuit is Data for reconstruction is divided into a part overlapping with the region and a part not overlapping, and the non-overlapping part is reconstructed in parallel with the processing of the preceding circuit, and the processing of the preceding circuit is completed. A method for reconfiguring a circuit into a programmable logic circuit, comprising reconfiguring the overlapping portion later.
【請求項2】請求項1に記載のプログラマブル論理回路
への回路の再構成方法において、 前記プログラマブル論理回路への回路の再構成および処
理の実行を開始する前に、前記前回路の領域と重なる部
分と、重ならない部分とに、再構成のためのデータを分
割する処理を行っておくことを特徴とするプログラマブ
ル論理回路への回路の再構成方法。
2. The method for reconfiguring a circuit into a programmable logic circuit according to claim 1, wherein the area of the previous circuit overlaps with the area before the reconfiguration of the programmable logic circuit and execution of processing are started. A method for reconfiguring a circuit into a programmable logic circuit, wherein a process for dividing data for reconfiguration into a part and a part that does not overlap is performed.
【請求項3】請求項1に記載のプログラマブル論理回路
への回路の再構成方法において、 前記複数個の回路による処理を複数回実行する場合であ
り、 前記プログラマブル論理回路への回路の再構成および処
理の実行を開始した後、前記処理の実行中に、各回路の
再構成に要する時間と、その回路の前記前回路のプロセ
ス時間との比較によって、前記前回路との重なりが発生
する回路を検出し、その検出結果に基づいて、重なりを
発生する回路について、前記前回路の領域と重なる部分
と、重ならない部分とに、再構成のためのデータを分割
し、 前記再構成のためにデータが分割された回路が再度使用
されるときに、前記重ならない部分を前記前回路の処理
と並行して再構成し、前記前回路の処理が終了した後
に、前記重なる部分を再構成することを特徴とするプロ
グラマブル論理回路への回路の再構成方法。
3. The method for reconfiguring a circuit into a programmable logic circuit according to claim 1, wherein the processing by the plurality of circuits is performed a plurality of times. After the execution of the processing is started, during the execution of the processing, the time required for the reconfiguration of each circuit is compared with the processing time of the previous circuit of the circuit. Detecting, based on the detection result, for a circuit that generates an overlap, divides data for reconstruction into a part that overlaps with the area of the previous circuit and a part that does not overlap, When the divided circuit is used again, the non-overlapping part is reconfigured in parallel with the processing of the preceding circuit, and after the processing of the preceding circuit is completed, the overlapping part is reconfigured. Reconstruction method of the circuit to the programmable logic circuit, characterized in that.
【請求項4】前記前回路の領域と重なる部分と、重なら
ない部分との分割は、プログラマブル論理回路の最小構
成単位セルを分割単位とし、重なり部からの配線が含ま
れるセル部分をも含める分割とすることを特徴とする請
求項1〜3のいずれかに記載のプログラマブル論理回路
への回路の再構成方法。
4. The division into a part overlapping with the region of the preceding circuit and a part not overlapping with each other is performed by using a minimum unit cell of the programmable logic circuit as a division unit and including a cell part including wiring from the overlap part. The method for reconfiguring a circuit into a programmable logic circuit according to claim 1, wherein:
【請求項5】請求項3に記載のプログラマブル論理回路
への回路の再構成方法において、 前記前回路との重なり領域を生じる回路の検出および前
記前回路の領域と重なる部分と、重ならない部分との分
割処理は、前記繰り返し処理の最初のサイクルにおい
て、前記複数個の回路による処理の実行と並行して行
い、 前記繰り返し処理の2回目以降のサイクルにおいて、前
記分割された回路データを用いた再構成を行うことを特
徴とするプログラマブル論理回路への回路の再構成方
法。
5. A method for reconfiguring a circuit into a programmable logic circuit according to claim 3, wherein a circuit causing an overlapping area with the preceding circuit is detected, and a part overlapping with the preceding circuit area and a part not overlapping with the preceding circuit area. Is performed in parallel with the execution of the processing by the plurality of circuits in the first cycle of the iterative processing. In the second and subsequent cycles of the iterative processing, the re-use using the divided circuit data is performed. A method for reconfiguring a circuit into a programmable logic circuit, comprising performing a configuration.
【請求項6】プログラムで処理を記述した一連の処理を
アプリケーションプログラムとして実行するものであ
り、アプリケーションプログラムの一部分を、プログラ
ムによって機能を随時変更し再構成することが可能なプ
ログラマブル論理回路で処理するものであって、前記ア
プリケーションプログラムの一部分が複数の処理機能に
分割されて、それぞれの処理機能が回路ブロックと対応
させられ、それらの回路ブロックを前記プログラマブル
論理回路に再構成しながら、回路の再構成と処理機能の
実行とを並列に、順次、実行していくようにする情報処
理システムにおいて、 前記プログラマブル論理回路への前記複数個の回路ブロ
ックの再構成および処理の実行を開始する前に、各回路
ブロックについて、当該回路ブロックの再構成に要する
時間と、その前に前記プログラマブル論理回路に再構成
されていて、その処理が実行される前回路のプロセス時
間との比較によって、前記前回路との重なりが発生する
回路であるか否かを判別し、重なりが発生する回路につ
いては、前記前回路の領域と重なる部分と、重ならない
部分とに、再構成のためのデータを分割する手段を備
え、 前記プログラマブル論理回路への前記複数個の回路ブロ
ックの再構成および処理の実行においては、前記分割さ
れた回路ブロックについては前記重ならない部分を前記
前回路の処理と並行して再構成し、前記前回路の処理が
終了した後に、前記重なる部分を再構成することを特徴
とする情報処理システム。
6. A series of processes described by a program are executed as an application program, and a part of the application program is processed by a programmable logic circuit whose function can be changed and reconfigured by the program at any time. A part of the application program is divided into a plurality of processing functions, each processing function is made to correspond to a circuit block, and the circuit block is reconfigured while reconfiguring the circuit block into the programmable logic circuit. In an information processing system configured to execute the configuration and the execution of the processing functions in parallel and sequentially, before reconfiguring the plurality of circuit blocks to the programmable logic circuit and starting execution of the processing, For each circuit block, it is necessary to reconfigure the circuit block. Time, and comparing the process time of the previous circuit, which has been reconfigured to the programmable logic circuit before, and the processing is executed, to determine whether the circuit overlaps with the previous circuit. Discriminating and, for a circuit in which an overlap occurs, a unit that divides data for reconfiguration into a part that overlaps with a region of the previous circuit and a part that does not overlap, and In the reconfiguration of the circuit block and the execution of the processing, the non-overlapping part of the divided circuit block is reconfigured in parallel with the processing of the preceding circuit, and after the processing of the preceding circuit is completed, the overlapping occurs. An information processing system for reconstructing a part.
【請求項7】プログラムで処理を記述した一連の処理を
アプリケーションプログラムとして実行するものであ
り、アプリケーションプログラムの一部分を、プログラ
ムによって機能を随時変更し再構成することが可能なプ
ログラマブル論理回路で処理するものであって、前記ア
プリケーションプログラムの一部分が複数の処理機能に
よる繰り返し処理とされ、それぞれの前記処理機能が回
路ブロックと対応させられ、それらの回路ブロックを前
記プログラマブル論理回路に再構成しながら、回路の再
構成と処理機能の実行とを並列に、順次、実行していく
ようにする情報処理システムにおいて、 前記繰り返し処理の最初のサイクルにおいて、前記再構
成および処理の実行と並行して、前記各回路ブロックに
ついて、当該回路ブロックの再構成に要する時間と、そ
の前に前記プログラマブル論理回路に再構成されてい
て、その処理が実行される前回路のプロセス時間との比
較によって、前記前回路との重なりが発生する回路であ
るか否かを判別し、重なりが発生する回路については、
前回路の領域と重なる部分と、重ならない部分とに、再
構成のためのデータを分割する手段を備え、 前記繰り返し処理の2回目以降のサイクルにおいて、前
記分割された回路ブロックについては前記重ならない部
分を前記前回路の処理と並行して再構成し、前記前回路
の処理が終了した後に、前記重なる部分を再構成するこ
とを特徴とする情報処理システム。
7. A series of processes described by a program are executed as an application program, and a part of the application program is processed by a programmable logic circuit whose function can be changed and reconfigured by the program at any time. A part of the application program is repeatedly processed by a plurality of processing functions, each of the processing functions is associated with a circuit block, and the circuit blocks are reconfigured into the programmable logic circuit. In an information processing system that performs the reconfiguration and the execution of the processing functions in parallel and sequentially, in the first cycle of the repetitive processing, For a circuit block, reconfigure the circuit block The time required for the circuit is compared with the process time of the previous circuit that has been reconfigured before and is executed in the programmable logic circuit, and the processing is executed. And for circuits where overlap occurs,
Means for dividing data for reconstruction into a part overlapping with the area of the previous circuit and a part not overlapping with the area of the previous circuit, and in the second and subsequent cycles of the repetitive processing, the divided circuit block does not overlap An information processing system, wherein a part is reconfigured in parallel with the processing of the preceding circuit, and after the processing of the preceding circuit is completed, the overlapping part is reconfigured.
【請求項8】請求項6または請求項7に記載の情報処理
システムにおいて、 前記回路ブロックについての再構成のためのデータの分
割処理は、プログラマブル論理回路を搭載したシステム
内の演算手段による演算処理、または、システムに接続
されたネットワークに接続された演算手段による演算処
理によって行われることを特徴とする情報処理システ
ム。
8. The information processing system according to claim 6, wherein the data dividing process for reconfiguring the circuit block is performed by a computing unit in a system equipped with a programmable logic circuit. Alternatively, the information processing system is performed by arithmetic processing by arithmetic means connected to a network connected to the system.
JP2000133652A 2000-05-02 2000-05-02 Circuit reconfiguration method and information processing system for programmable logic circuit Expired - Fee Related JP3832557B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2000133652A JP3832557B2 (en) 2000-05-02 2000-05-02 Circuit reconfiguration method and information processing system for programmable logic circuit

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2000133652A JP3832557B2 (en) 2000-05-02 2000-05-02 Circuit reconfiguration method and information processing system for programmable logic circuit

Publications (2)

Publication Number Publication Date
JP2001320271A true JP2001320271A (en) 2001-11-16
JP3832557B2 JP3832557B2 (en) 2006-10-11

Family

ID=18642097

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000133652A Expired - Fee Related JP3832557B2 (en) 2000-05-02 2000-05-02 Circuit reconfiguration method and information processing system for programmable logic circuit

Country Status (1)

Country Link
JP (1) JP3832557B2 (en)

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005034353A1 (en) * 2003-10-03 2005-04-14 Fujitsu Limited Field programmable gate array rewrite system
JP2007068194A (en) * 2002-04-03 2007-03-15 Sony Corp Integrated circuit, and integrated circuit device
JP2007279984A (en) * 2006-04-05 2007-10-25 Fuji Xerox Co Ltd Data processor and program
JPWO2007060932A1 (en) * 2005-11-25 2009-05-07 パナソニック株式会社 Multi-thread processor with dynamically reconfigurable logic
JP2010531556A (en) * 2007-05-16 2010-09-24 ローデ ウント シュワルツ ゲゼルシャフト ミット ベシュレンクテル ハフツング ウント コンパニー コマンディット ゲゼルシャフト Method and apparatus for dynamic reconfiguration of a wireless communication system
JP2011181078A (en) * 2002-10-31 2011-09-15 Lockheed Martin Corp Programmable circuit and related computing machine, and method
JP2011198085A (en) * 2010-03-19 2011-10-06 Fuji Xerox Co Ltd Image processing apparatus, image forming system, and image processing program
US8299816B2 (en) 2010-03-11 2012-10-30 Fuji Xerox Co., Ltd. Data processing apparatus
JP2013236380A (en) * 2002-10-31 2013-11-21 Lockheed Martin Corp Programmable circuit, related computing machine, and method
JP2014500644A (en) * 2010-10-22 2014-01-09 サムスン ヘビー インダストリーズ カンパニー リミテッド Control system and method reconfigurable during operation
JP2014238617A (en) * 2013-06-05 2014-12-18 富士通株式会社 Data processing apparatus, data processing method, and information processing apparatus
US10084452B2 (en) 2014-11-28 2018-09-25 Canon Kabushiki Kaisha Information processing apparatus, image processing apparatus with information processing apparatus, and control method for information processing apparatus
WO2019044141A1 (en) * 2017-08-28 2019-03-07 日立オートモティブシステムズ株式会社 Electronic control device, and reconfiguration method for circuit

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2022042856A (en) 2020-09-03 2022-03-15 富士フイルムビジネスイノベーション株式会社 Information processing device, and program

Cited By (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007068194A (en) * 2002-04-03 2007-03-15 Sony Corp Integrated circuit, and integrated circuit device
JP4501914B2 (en) * 2002-04-03 2010-07-14 ソニー株式会社 Integrated circuit and integrated circuit device
JP2011181078A (en) * 2002-10-31 2011-09-15 Lockheed Martin Corp Programmable circuit and related computing machine, and method
JP2013236380A (en) * 2002-10-31 2013-11-21 Lockheed Martin Corp Programmable circuit, related computing machine, and method
WO2005034353A1 (en) * 2003-10-03 2005-04-14 Fujitsu Limited Field programmable gate array rewrite system
JP5096923B2 (en) * 2005-11-25 2012-12-12 パナソニック株式会社 Multi-thread processor with dynamically reconfigurable logic
JPWO2007060932A1 (en) * 2005-11-25 2009-05-07 パナソニック株式会社 Multi-thread processor with dynamically reconfigurable logic
JP2007279984A (en) * 2006-04-05 2007-10-25 Fuji Xerox Co Ltd Data processor and program
JP2010531556A (en) * 2007-05-16 2010-09-24 ローデ ウント シュワルツ ゲゼルシャフト ミット ベシュレンクテル ハフツング ウント コンパニー コマンディット ゲゼルシャフト Method and apparatus for dynamic reconfiguration of a wireless communication system
US8299816B2 (en) 2010-03-11 2012-10-30 Fuji Xerox Co., Ltd. Data processing apparatus
JP2011198085A (en) * 2010-03-19 2011-10-06 Fuji Xerox Co Ltd Image processing apparatus, image forming system, and image processing program
US8773713B2 (en) 2010-03-19 2014-07-08 Fuji Xerox Co., Ltd. Image processing apparatus, image forming system and non-transitory computer readable medium
JP2014500644A (en) * 2010-10-22 2014-01-09 サムスン ヘビー インダストリーズ カンパニー リミテッド Control system and method reconfigurable during operation
JP2014238617A (en) * 2013-06-05 2014-12-18 富士通株式会社 Data processing apparatus, data processing method, and information processing apparatus
US10084452B2 (en) 2014-11-28 2018-09-25 Canon Kabushiki Kaisha Information processing apparatus, image processing apparatus with information processing apparatus, and control method for information processing apparatus
WO2019044141A1 (en) * 2017-08-28 2019-03-07 日立オートモティブシステムズ株式会社 Electronic control device, and reconfiguration method for circuit
US11342917B2 (en) 2017-08-28 2022-05-24 Hitachi Astemo, Ltd. Electronic control device and circuit reconfiguration method

Also Published As

Publication number Publication date
JP3832557B2 (en) 2006-10-11

Similar Documents

Publication Publication Date Title
JP3587095B2 (en) Information processing equipment
Noguera et al. Multitasking on reconfigurable architectures: microarchitecture support and dynamic scheduling
JP2020537786A (en) Neural network processing system with multiple processors and neural network accelerators
JP3809727B2 (en) Information processing system, circuit information management method, and circuit information storage device
KR101080465B1 (en) Data processing device
US11347480B2 (en) Transpose operations using processing element array
JP3832557B2 (en) Circuit reconfiguration method and information processing system for programmable logic circuit
CN104615488A (en) Task scheduling method and device on heterogeneous multi-core reconfigurable computing platform
JP2002503839A (en) Method of generating an application specific integrated circuit using a programmable hardware architecture
So et al. Improving usability of FPGA-based reconfigurable computers through operating system support
JP2005182654A (en) Reconfigurable circuit, processing device having reconfigurable circuit, function determination method of logic circuit in reconfigurable circuit, circuit generation method and circuit
JP2006004345A (en) Dataflow graph processing method, reconfigurable circuit, and processing apparatus
US20090222252A1 (en) Data driven logic simulation chip and toolchain
EP1653346A2 (en) Message-passing processor based on the Pi-calculus
WO2018067251A1 (en) Methods and apparatus for dynamically configuring soft processors on an integrated circuit
EP3555760A1 (en) Parallel processing on demand using partially dynamically reconfigurable fpga
Marconi Online scheduling and placement of hardware tasks with multiple variants on dynamically reconfigurable field-programmable gate arrays
JP6834097B1 (en) Hardware-specific partitioning of inference neural network accelerators
Jain Architecture centric coarse-grained FPGA overlays
Hartenstein et al. On reconfgurable co-processing units
JP3613314B2 (en) Information processing system
JPH1078932A (en) Reconfigurable network computer
Yeniceri et al. An emulated digital wave computer core implementation
Li et al. Improving CNN performance on FPGA clusters through topology exploration
Otero et al. Cost and energy efficient reconfigurable embedded platform using Spartan-6 FPGAs

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20040512

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20060623

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: 20060628

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20060711

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: 20100728

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20110728

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20110728

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20120728

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20130728

Year of fee payment: 7

LAPS Cancellation because of no payment of annual fees