WO2005091160A1 - Activating code generation method - Google Patents

Activating code generation method Download PDF

Info

Publication number
WO2005091160A1
WO2005091160A1 PCT/JP2005/004963 JP2005004963W WO2005091160A1 WO 2005091160 A1 WO2005091160 A1 WO 2005091160A1 JP 2005004963 W JP2005004963 W JP 2005004963W WO 2005091160 A1 WO2005091160 A1 WO 2005091160A1
Authority
WO
WIPO (PCT)
Prior art keywords
processing
information
data
function
data path
Prior art date
Application number
PCT/JP2005/004963
Other languages
French (fr)
Japanese (ja)
Inventor
Hiroshi Shimura
Original Assignee
Ipflex Inc.
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 Ipflex Inc. filed Critical Ipflex Inc.
Priority to JP2006511244A priority Critical patent/JP4208919B2/en
Publication of WO2005091160A1 publication Critical patent/WO2005091160A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design

Abstract

There is provided an activating code generation method for executing an application by a data processing device having a circuit partition where a data path is formed by connecting processing elements, whose function is controlled by setting configuration information in a memory area corresponding to the processing elements. The method includes a step fro generating layout information for mapping a data path onto the circuit partition and generating access information enabling an access to the memory area corresponding to the processing element correlated to a first parameter. It is possible to provide a user with an environment capable of freely modifying the data path processing configured by the processing elements by modifying the parameter on the source code.

Description

明 細 書  Specification
活性化コードの生成方法  Activation code generation method
技術分野  Technical field
[0001] 本発明は、複数のプロセッシングエレメントを用いてデータパスを構成するデータ処 理装置を用いてアプリケーションを実行するためのコードの生成方法に関するもので ある。  The present invention relates to a method for generating a code for executing an application using a data processing device that configures a data path using a plurality of processing elements.
背景技術  Background art
[0002] 特開 2004-40188号公報には、プロセッサと、複数の演算器と該演算器間を変更 可能に接続する接続経路とを含む演算回路群と、パラメータ設定により処理仕様を 変更できるパラメータ付専用ハードウェアと、該プロセッサ、該演算回路群、該パラメ ータ付専用ハードウェアを互いに接続するモジュール間インターフェイスを含むこと を特徴とする集積回路が記載されている。この集積回路においては、処理のデータ 数や精度などのパラメータを変更することにより対応可能な処理は、その処理に専用 のハードウェアとパラメータ保持レジスタとの組み合わせで実行されるようになってお り、パラメータ保持レジスタの内容は集積回路を動作させる前になんらかの方法によ りセットされるようになって 、る。  [0002] Japanese Patent Application Laid-Open No. 2004-40188 discloses an arithmetic circuit group including a processor, a plurality of arithmetic units, and a connection path for variably connecting the arithmetic units, and a parameter capable of changing processing specifications by parameter setting. There is described an integrated circuit characterized by including dedicated hardware, an interface between modules for connecting the processor, the arithmetic circuit group, and the dedicated hardware with parameters to each other. In this integrated circuit, processing that can be handled by changing parameters such as the number of data and accuracy of processing is executed by a combination of dedicated hardware for the processing and a parameter holding register. In addition, the contents of the parameter holding register are set by some method before operating the integrated circuit.
[0003] 国際公開 02Z095946号公報には、種々の論理演算を行う複数のエレメントが 2 次元に配置されたマトリクスと称される領域を有し、マトリクス内に縦横に配置された 配線群の接続を切り替えることにより複数のエレメントによりフレキシブルにデータパ スを再構成できるデータ処理装置が開示されている。データパスを動的に再構成可 能な構成は、これに限定されるものではなぐ適当な論理演算を行うエレメント (プロ セッシングエレメント、 PE)をツリー状に接続したり、隣り合うエレメント同士を接続し、 エレメントを通信経路として用いる構成なども考えられる。複数のエレメントにより動的 にデータパスを再構成するデータ処理装置にぉ 、ては、各々のエレメントのコンフィ グレーシヨンデータをそれぞれ格納するコンフィグレーションメモリを用意することによ り各々のエレメントの機能を制御することができる。コンフィグレーションデータにより、 エレメント単位で、その処理あるいは演算を変更可能とし、エレメント間の接続を変更 可能とし、さらに、各々のエレメントの稼動 ·非稼動を制御することも可能である。 [0003] International Publication No. 02Z095946 discloses that a plurality of elements for performing various logical operations have a region called a matrix in which the elements are arranged two-dimensionally. There is disclosed a data processing device capable of flexibly reconfiguring a data path by a plurality of elements by switching. The configuration in which the data path can be dynamically reconfigured is not limited to this, and elements that perform appropriate logical operations (processing elements, PEs) are connected in a tree shape, and adjacent elements are connected to each other. A configuration in which the elements are connected and the elements are used as a communication path can be considered. In a data processing device that dynamically reconfigures a data path with a plurality of elements, the function of each element is provided by preparing a configuration memory for storing the configuration data of each element. Can be controlled. The processing or operation can be changed for each element by the configuration data, and the connection between elements can be changed It is also possible to control the operation and non-operation of each element.
[0004] データパスにおける処理機能あるいは処理内容をパラメータにより制御することが 可能である。複数のエレメントを有するデータ処理装置においては、複数のエレメント 力もなるデータパスを用いた処理の動き、あるいは内容を、パラメータを変更すること により制御できる。そして、変更するためのパラメータを構成データ (コンフィグレーシ ヨンデータ)の一部として各々のエレメントにセットすることにより、コンフィグレーション データを変えることによりデータパスの処理あるいは動きを制御することができる。し たがって、パラメータ設定専用の固定的なメモリは不要となる。さらに、複数のエレメ ントを用いて再構成したデータパスのパラメータを変更できるので、ノ ラメータの異な るデータパスを再構成するために要する設計時間を短縮できる。また、パラメータを 変更するために要する時間あるいはリソース力 エレメントの接続を変更してデータパ スを再構成するために要する時間あるいはリソースよりも少なくて良いデータ処理装 置においては、パラメータを変更して機能を再構成することにより処理時間やリソース の消費を低減できるというメリットがある。  [0004] It is possible to control processing functions or processing contents in a data path by using parameters. In a data processing device having a plurality of elements, the movement or content of processing using a data path having a plurality of elements can be controlled by changing parameters. By setting the parameter to be changed as a part of the configuration data (configuration data) in each element, the processing or movement of the data path can be controlled by changing the configuration data. Therefore, a fixed memory dedicated to parameter setting is not required. Furthermore, since the parameters of the reconfigured data path can be changed using a plurality of elements, the design time required to reconfigure the data path having different parameters can be reduced. In a data processing device that requires less time than changing the parameters or the time required to reconfigure the data path by changing the connection of the element, the function can be changed by changing the parameters. There is an advantage in that the processing time and resource consumption can be reduced by reconfiguring.
[0005] 複数のエレメントを要するデータ処理装置にお!、ては、汎用性を高めるために 1種 類あるいは複数種類のエレメントが複数用意され、多くのデータパスは、それら複数 のエレメントの内の一部のエレメントを用いて構成される。ある機能あるいは処理を実 現するためのデータパスをデータ処理装置に実装するためには、そのデータ処理装 置において、ある領域に所定のルールに従って物理的に配置された複数のエレメン トから、目的とするデータパスを構成するために必要なエレメントを選択して、目的と するデータパスに要するエレメントの物理的な配置と、それらのエレメント間の接続と を決定する必要がある。これらのエレメントの物理的な配置および接続を決定するェ 程は、配置配線ステップ、マッピングステップあるいはレイアウトステップと呼ばれる。 [0005] In a data processing device requiring a plurality of elements, one or more kinds of elements are prepared in order to enhance versatility, and many data paths are provided among the plurality of elements. It is configured using some elements. In order to implement a data path for realizing a certain function or process in a data processing device, the data processing device uses a plurality of elements physically arranged in a certain area in accordance with a predetermined rule. It is necessary to select the elements required to configure the data path to be used, and to determine the physical arrangement of the elements required for the target data path and the connection between those elements. The process of determining the physical placement and connection of these elements is called the placement and routing step, mapping step or layout step.
[0006] したがって、複数のエレメントを接続してデータパスを構成するデータ処理装置お V、て、ある機能を実装するためには以下の工程が必要になる。 [0006] Therefore, the following steps are required to implement a certain function in a data processing device and a data path that form a data path by connecting a plurality of elements.
a. 目的の機能を実現するためのデータパス (データフローグラム)を設計する工程。 b. 目的のデータパスを、用意された 1または複数種類のエレメントの接続により実現 する、すなわち、エレメント単位のデータパスを設計する工程。 c. 目的のエレメント単位のデータノ スを、具体的なエレメントの配置とそれらの結合と いうレイアウト情報にする工程。 a. The process of designing a data path (data flowgram) to achieve the desired function. b. The process of realizing the target data path by connecting one or more types of prepared elements, that is, designing a data path for each element. c. The process of converting the target element-based data node into layout information, which is the specific element arrangement and their combination.
[0007] これらの工程は、マニュアルで行うことも可能である。し力しながら、実際には、エレ メント間のタイミングを調整したり、複数のデータパスを同一の領域に配置する必要が あったり、用意されたエレメントの数や種類の過不足をデータパス間で調整する必要 があるなど、数多くの要素を考慮する必要がある。このため、マ-ユアルでは、データ ノ スを実際に実装できるようなレイアウト情報は得られない。したがって、適当なソフト ウェアを用いて行うことになる。  [0007] These steps can also be performed manually. In practice, it is necessary to adjust the timing between the elements, to arrange multiple data paths in the same area, and to determine whether the number and types of Many factors need to be taken into account, such as the need to make adjustments. Therefore, the manual does not provide layout information that can actually implement the data node. Therefore, it is performed using appropriate software.
[0008] このため、データ処理装置にレイアウトされたデータパスのパラメータを変更しようと しても、様々な条件により、そのデータパスを実装するために使用されている具体的 なレイアウトのロケーションを特定することはかなり難しい。さらに、 1つのエレメントが 複数の論理ゲートを含んでいることが多ぐエレメントが特定されたとしても、そのエレ メントの、どの論理ゲートが実際に変更しょうとしているパラメータに影響されるのかを 特定することはほとんど不可能である。可能であるとしても、コンピュータ設計で生成 されたレイアウト情報をマニュアルで解析することは時間の浪費に過ぎず、そのような 設計方法は現実的ではな!/、。  [0008] For this reason, even if an attempt is made to change the parameters of the data path laid out in the data processing device, the location of the specific layout used to implement the data path is specified under various conditions. Quite difficult to do. In addition, even if an element is identified that often contains multiple logic gates in one element, identify which logic gate of that element is affected by the parameter that is actually changing It is almost impossible. If possible, manually analyzing layout information generated by computer design is only a waste of time, and such a design method is not practical!
[0009] たとえば、メモリ間の転送を伴う処理を実行するデータパスであれば、コピー元のァ ドレス、コピー先のアドレス、コピーワード数などのパラメータを変更することにより、同 じ構成のデータパスにより種々の目的で利用できる。し力しながら、複数のエレメント の接続により、パラメータの異なるデータパスを構成するデータ処理装置を設計する 場合には、実際には、ノ ラメータの異なるデータパスを再構成するように設計した方 力 設計的には遥かに経済的であるという結論になる。データパスを再構成すること に何らかのネックがあり、データパスの構成を変えたくない場合は、物理的に固定さ れ、プログラムで呼び出し可能なメモリあるいはレジスタを用い、そのレジスタとの配 線を含めてデータパスをレイアウトし、プログラムによりメモリの内容を書き換えるという 方法がある。この方法は、パラメータを設定するためのレジスタが余分に必要になる だけではなぐ 目的の処理を行うデータパスを構成するためのエレメントにカ卩えて、パ ラメータを設定するレジスタとの接続のためにもデータパスを余分に設ける必要があ るので、エレメントの利用効率が低下し、データパスも複雑になる。したがって、複数 のデータパスを動的に再構成して種々の処理を行おうとする場合は、採用しがたい 解決策である。 For example, if the data path executes a process involving transfer between memories, the data path having the same configuration can be obtained by changing parameters such as a copy source address, a copy destination address, and a copy word number. Can be used for various purposes. However, when designing a data processing device that configures data paths with different parameters by connecting multiple elements, a method designed to actually reconfigure data paths with different parameters is used. The conclusion is that the design is much more economical. If there are some bottlenecks in reconfiguring the data path and you do not want to change the configuration of the data path, use a memory or register that is physically fixed and can be called by a program, and include wiring to that register. There is a method of laying out the data path and rewriting the contents of the memory by a program. This method not only requires extra registers for setting parameters, but also adds elements to configure the data path that performs the desired processing and connects them to registers for setting parameters. Also requires an extra data path. Therefore, the use efficiency of the element is reduced and the data path is complicated. Therefore, it is an inapplicable solution when trying to perform various processes by dynamically reconfiguring multiple data paths.
[0010] 特開 2004— 40188号公報のように、パラメータ付専用ハードウェアを再構成可能 な回路とは独立して設けることも可能である。し力しながら、再構成可能な回路が、パ ラメータ付専用ハードウェアで構成しょうとするデータパスを構成できる程度のエレメ ントを備えて 、る場合は、パラメータ付専用ハードウェアは重複したハードウェアを持 つた回路となり、 LSIあるいは ASICといった形でパッケージングされるデータ処理装 置をサイズダウンし、低消費電力化し、低コストィ匕することが要求される場合は採用し 難い。  [0010] As in Japanese Patent Application Laid-Open No. 2004-40188, dedicated hardware with parameters can be provided independently of a reconfigurable circuit. However, if the reconfigurable circuit has enough elements to form a data path to be configured with dedicated hardware with parameters, the dedicated hardware with parameters will be redundant hardware. It is difficult to adopt this technology if it is required to reduce the size of data processing devices packaged in the form of LSI or ASIC, reduce power consumption, and reduce costs.
発明の開示  Disclosure of the invention
[0011] そこで、本発明においては、複数のプロセッシングエレメントを用いてデータパスを 構成可能なデータ処理装置にぉ 、て、各プロセッシングエレメントに対応する各メモ リに格納されるコンフィグレーションを、データパスを使用する際にプロセッシングエレ メントの単位で簡単に制御できるコードを生成する方法を提供することを目的としてい る。そして、ユーザが各プロセッシングエレメントの物理的なアドレスを意識することな ぐ各プロセッシングエレメントのコンフィグレーション情報を自由自在に扱って、それ らのエレメントにより構成されたデータノ スの処理を、ソースコード上でパラメータを変 更することにより自由に変更することができる環境をユーザに提供することを本発明 の目的としている。  [0011] Therefore, in the present invention, a data processing device capable of configuring a data path using a plurality of processing elements is provided with a configuration stored in each memory corresponding to each processing element. It is an object of the present invention to provide a method for generating a code that can be easily controlled in a unit of a processing element when using a program. Then, the configuration information of each processing element can be handled freely without the user being aware of the physical address of each processing element, and the processing of the data node composed of those elements can be performed on the source code. An object of the present invention is to provide a user with an environment in which parameters can be freely changed by changing parameters.
[0012] 本発明においては、複数のプロセッシングエレメントを接続することにより少なくとも 1つのデータパスが形成される少なくとも 1つの回路区画を有し、プロセッシングエレ メントにそれぞれ対応するメモリ領域にコンフィグレーション情報をセットすることにより プロセッシングエレメントの機能が制御されるデータ処理装置によりアプリケーション を実行するための活性ィ匕コード (活動化コード)の生成方法であって、以下のステツ プを有する生成方法を提供する。  According to the present invention, at least one circuit section in which at least one data path is formed by connecting a plurality of processing elements is provided, and configuration information is set in a memory area corresponding to each of the processing elements. Accordingly, the present invention provides a method for generating an activation code for executing an application by a data processing device in which the function of a processing element is controlled, the method including the following steps.
A. アプリケーションの少なくとも一部を、第 1のパラメータが関係する第 1の機能を 利用して実行するようにソースコードを生成する第 1のステップ。 B. 第 1の機能を含む処理を行う第 1のデータパスを、少なくとも 1つの回路区画に マッピングするためのレイアウト情報であって、複数のプロセッシングエレメントの接続 情報を含むレイアウト情報をコンピュータにより生成すると共に、第 1のパラメータに関 係するプロセッシングエレメントに対応するメモリ領域へのアクセスを可能とするァクセ ス情報を生成する第 2のステップ。 A. The first step in generating source code to execute at least part of the application using a first function involving a first parameter. B. A computer generates layout information for mapping a first data path for performing processing including a first function to at least one circuit section, the layout information including connection information of a plurality of processing elements. And a second step of generating access information that enables access to a memory area corresponding to a processing element related to the first parameter.
C. 第 1のパラメータが関係する命令を含むソースコードと、アクセス情報とを少なく とも入力として、活性ィ匕コードをコンピュータにより生成する第 3のステップ。  C. A third step in which the activation code is generated by the computer using at least the source code including the instruction related to the first parameter and the access information.
[0013] 活性ィ匕コードは、その活性ィ匕コードにより回路区画に実装された 1つのデータパス により実行されて、他のデータパスの第 1のパラメータに関係するエレメントに対応す るメモリ領域へアクセスし、パラメータを変更するものであっても良い。データ処理装 置が、メモリ領域にコンフィグレーション情報をセットすることにより、プロセッシングェ レメントの機能を制御する制御ユニット、例えば、 RISCなどの制御用のプロセッサを 有している場合は、活性ィ匕コードは制御ユニットにより実行される実行用プログラム( 実行コード)である。  [0013] The activation code is executed by one data path mounted in a circuit section by the activation code, and is transferred to a memory area corresponding to an element related to a first parameter of another data path. It may access and change parameters. If the data processing device has a control unit that controls the processing element function by setting configuration information in the memory area, for example, a control processor such as RISC, the activation code Is an execution program (execution code) executed by the control unit.
[0014] 第 2のステップ (レイアウトステップ)にお 、ては、適当な規模の論理および Zまたは 算術演算を実行可能な複数のプロセッシングエレメント(以降において、エレメントと 記述することもある)を備えた回路区画にデータパスをマッピングするためのレイァゥ ト情報を、コンピュータを利用して生成する。この際、ソースコード (ソースプログラム) において使用される第 1のパラメータが予め判明しているので、レイアウト情報を生成 する際の、コンピュータにおける処理をトレースして第 1のパラメータに関係するプロ セッシングエレメントのメモリ領域のアドレスを示すアクセス情報を生成することが可能 である。アクセス情報は、エレメントにそれぞれ対応するメモリ領域の全体を示す情報 でも良い。さらに詳細なアクセス情報としては、エレメントに対応するメモリ領域のうち 、第 1のパラメータに対応して何らかの処理が行われるワードあるいはバイト単位のメ モリ領域の詳細なアドレスであっても良 、。  [0014] The second step (layout step) includes a plurality of processing elements (hereinafter, sometimes referred to as elements) that can execute logic of appropriate scale and Z or arithmetic operation. The layout information for mapping the data path to the circuit section is generated using a computer. At this time, since the first parameter used in the source code (source program) is known in advance, the processing in the computer when generating the layout information is traced, and the processing related to the first parameter is performed. It is possible to generate access information indicating the address of the memory area of the element. The access information may be information indicating the entire memory area corresponding to each element. Further detailed access information may be a detailed address of a memory area in a word or byte unit in which some processing is performed in accordance with the first parameter in the memory area corresponding to the element.
[0015] 本発明の生成方法では、第 1のパラメータに関係するメモリ領域へのアクセス情報 を、ソースコードをコンパイルして活性ィ匕コード、例えば、実行用プログラムを生成す る第 3のステップにフィードバックする。これにより、第 1のパラメータに関係する命令 を、その第 1のパラメータにより影響を受けるメモリ領域を具体的にアクセスする情報 を含んだ活性化コードに変換することができる。例えば、第 1のノ ラメータにより影響 を受けるメモリ領域を、その具体的なアドレスに基づき操作する実行コードに変換す ることができる。したがって、ソースコードを生成するユーザは、第 1のパラメータにより 具体的に操作されるプロセッシングエレメントの物理的なアドレスを意識することなく 第 1のパラメータを記述することができる。 [0015] In the generation method of the present invention, the access information to the memory area related to the first parameter is converted to a third step of generating an activation code, for example, an execution program by compiling a source code. give feedback. This allows the instruction related to the first parameter Can be converted into an activation code including information for specifically accessing a memory area affected by the first parameter. For example, a memory area affected by the first parameter can be converted into an execution code operated based on the specific address. Therefore, the user who generates the source code can describe the first parameter without being conscious of the physical address of the processing element specifically operated by the first parameter.
[0016] 本発明の 1つの好適な形態は、第 1の機能が第 1のパラメータにより処理が変更さ れる機能を含むケースである。そのケースにおいては、アクセス情報は、第 1のパラメ ータにより処理が変更されるプロセッシングエレメントのメモリ領域のアドレスを含み、 ソースコードは、第 1のパラメータを変更する命令を含む。そして、本発明により、ユー ザは、第 1のパラメータにより具体的に操作されるプロセッシングエレメントの物理的 なアドレスを意識することなぐそれらのエレメントにより構成されたデータパスの処理 を、ソースプログラム上で第 1のパラメータを変更することにより自由に変更することが できる。 One preferred embodiment of the present invention is a case where the first function includes a function whose processing is changed by the first parameter. In that case, the access information includes an address of a memory area of the processing element whose processing is changed by the first parameter, and the source code includes an instruction to change the first parameter. Then, according to the present invention, a user can perform processing of a data path constituted by those processing elements without being aware of the physical addresses of the processing elements specifically operated by the first parameter on a source program. It can be changed freely by changing the first parameter.
[0017] 本発明により、ユーザは、プロセッシングエレメントの物理的なアドレスを意識するこ となぐ各プロセッシングエレメントのコンフィグレーション情報を自由自在に扱えるよう になる。これにより回路の機能を変更するパラメータをストレスなく記述できることは本 発明の最も有用な効果であるが、本発明によりユーザフレンドリーな機能として開放 される機能はこれに限定されることはない。本発明により、プロセッシングエレメントの コンフィグレーション情報に対するアクセスが要求される全ての処理のソフトウェア設 計が容易になる。たとえば、デバッグ目的で所望のエレメントのコンフィグレーション 情報を読み出したり、書き込むためのコード (プログラム)も極めて容易に生成するこ とがでさる。  According to the present invention, the user can freely handle the configuration information of each processing element without being aware of the physical address of the processing element. It is the most useful effect of the present invention that the parameters that change the function of the circuit can be described without stress, but the functions released as user-friendly functions according to the present invention are not limited to this. According to the present invention, software design of all processes that require access to the configuration information of the processing element is facilitated. For example, it is very easy to generate code (program) for reading and writing configuration information of a desired element for debugging purposes.
[0018] 近年、複雑化する LSIの設計過程にぉ 、て、ノ、ィレベルなハード Zソフト協調設計 を行うことが提唱されているが、いずれも提供された仕様をノ、一ドウエアにより実現す る部分と、ソフトウェアにより実現する部分に分離した後は、基本的に独立した設計過 程を経る。設計および生成過程において、相互のタイミング収束を検証して、その結 果をノヽードウエアおよびソフトウェアに反映するような協調検証を行うことが提唱され ている。し力しながら、本発明において開示しているような、ハードウェア設計の具体 的な結果により、ソースコードの命令自体のコンパイル結果が異なるような、実行用プ ログラムの生成方法は提唱されて 、な 、。 [0018] In recent years, it has been proposed to perform co-design of hardware and software at a low level in the process of designing LSIs which are becoming more and more complex. After the separation into the parts realized by software and the parts realized by software, the design process is basically independent. In the design and generation process, it has been proposed to verify the timing convergence of each other and to conduct collaborative verification to reflect the results in hardware and software. ing. However, as disclosed in the present invention, a method of generating an execution program in which the compile result of the instruction itself of the source code differs depending on the specific result of the hardware design has been proposed. What,
[0019] 本発明の活性ィ匕コードを、コンピュータを用いて生成する、すなわち、コンパイルす るためのプログラムは、アプリケーションの少なくとも一部を、第 1のパラメータが関係 する第 1の機能を利用して実行するように生成されたソースコードに対応して、第 1の 機能を含む処理を行う第 1のデータノ スを、データ処理装置の回路区画にマッピング するためのレイアウト処理を実行するための記述を含む。そして、レイアウト処理では 、複数のプロセッシングエレメントの接続情報を含むレイアウト情報を生成すると共に 、第 1のパラメータに関係するプロセッシングエレメントに対応するメモリ領域へァクセ スするためのアクセス情報を生成する。  A program for generating, ie, compiling, the activation code of the present invention using a computer uses at least a part of an application by utilizing a first function related to a first parameter. For executing a layout process for mapping a first data node that performs a process including a first function to a circuit section of a data processing device in accordance with a source code generated to be executed by the including. Then, in the layout process, layout information including connection information of a plurality of processing elements is generated, and access information for accessing a memory area corresponding to the processing element related to the first parameter is generated.
[0020] このコンノィル用のプログラムは、さらに、第 1のパラメータが関係する命令を含むソ ースコードと、アクセス情報とを少なくとも入力として、データ処理装置の活性化コード を生成する処理を実行するための記述を有するものであっても良い。コンピュータに おいて実行するための記述とは、ソースコードあるいはコンピュータが実行可能な形 式の命令、命令群、マクロ命令、各処理を行うモジュールやサブルーチンをコールす る命令などを含むものである。このコンパイル用のプログラム、あるいはプログラム製 品は、 CD— ROMなどの適当な記録媒体に記録して提供することが可能であり、イン ターネットなどのコンピュータネットワークを介して提供することも可能である。  [0020] The connrill program further includes a source code including an instruction related to the first parameter and access information, at least as inputs, for executing a process of generating an activation code of the data processing device. It may have a description. The description to be executed by the computer includes source code or instructions in a computer-executable form, an instruction group, a macro instruction, an instruction to call a module or a subroutine for performing each processing, and the like. This compiling program or program product can be recorded on a suitable recording medium such as a CD-ROM and provided, or can be provided via a computer network such as the Internet. .
[0021] また、本発明においては、少なくとも 1つの回路区画を有するデータ処理装置にお V、てアプリケーションを実行するための活性ィ匕コードを生成する装置であって、アプリ ケーシヨンの少なくとも一部を、第 1のパラメータが関係する第 1の機能を利用して実 行するように生成されたソースコードに対応して、第 1の機能を含む処理を行う第 1の データパスを少なくとも 1つの回路区画にマッピングするためのレイアウト情報であつ て、複数のプロセッシングエレメントの接続情報を含むレイアウト情報と、第 1のパラメ ータに関係するプロセッシングエレメントに対応するメモリ領域のアドレスを含むァク セス情報とを生成するレイアウト手段と、第 1のパラメータが関係する命令を含むソー スコードと、アドレス情報とを少なくとも入力として、活性化コードを生成する手段とを 有する生成装置を提供する。 Further, according to the present invention, there is provided an apparatus for generating an activation code for executing an application in a data processing apparatus having at least one circuit section, wherein at least a part of the application is provided. And a first data path for performing processing including the first function corresponding to the source code generated to be executed using the first function related to the first parameter, by at least one circuit. Layout information for mapping to partitions, including layout information including connection information of a plurality of processing elements, and access information including addresses of memory areas corresponding to processing elements related to the first parameter. , A source code including an instruction related to the first parameter, and address information. As inputs, and means for generating an activation code The present invention provides a generating device having:
[0022] データ処理装置の回路区画におけるプロセッシングエレメントとメモリ領域との関係 は、メモリ領域にセットされたコンフィグレーション情報によりプロセッシングエレメント の機能がダイナミックに制御できるものであれば良ぐ必ずしも物理的にプロセッシン グエレメントとメモリ領域とが同じ位置に配置されている必要はない。し力しながら、配 線遅延や、プロセッシングエレメントを構成するゲート単位あるいはトランジスタ単位 の構成とメモリ領域との情報量を考慮すると、プロセッシングエレメントは物理的にメ モリ領域を含んでいる力 または、少なくともグループ単位でプロセッシングエレメント の近傍にメモリ領域が配置されることが好ましい。そのようなデータ処理装置におい ては、アクセス情報は、プロセッシングエレメント自身へのアクセスを可能にする物理 的なアドレスに対応した情報を含む。  [0022] The relationship between the processing element and the memory area in the circuit section of the data processing device is not particularly limited as long as the function of the processing element can be dynamically controlled by the configuration information set in the memory area. It is not necessary that the write element and the memory area are arranged at the same position. In consideration of the wiring delay, the configuration of each gate or transistor that constitutes a processing element, and the amount of information in the memory area, the processing element physically has a force including the memory area, or at least It is preferable that a memory area is arranged in the vicinity of the processing element in a group unit. In such a data processing device, the access information includes information corresponding to a physical address enabling access to the processing element itself.
[0023] 少なくとも 1つの回路区画力 複数のプロセッシングエレメントの接続を変更すること によりデータパスを再構成する接続手段を備えている再構成可能なデータ処理装置 においては、ソースコード力 データパスを再構成する命令を備えている。また、レイ アウト情報を生成する第 2のステップでは、第 1のデータパスを再構成するためのレイ アウト情報と共に、再構成された第 1のデータパスにおけるメモリ領域へのアクセスを 可能にするアクセス情報を生成する。したがって、本発明は、プロセッシングエレメン トにより固定的なデータパスを形成するデータ処理装置の設計および開発において も有用であり、また、再構成可能なデータパスを形成するデータ処理装置の設計およ び開発においても有用である。  [0023] In a reconfigurable data processing device having connection means for reconfiguring a data path by changing a connection of a plurality of processing elements, at least one circuit partitioning power is used. Have instructions to In the second step of generating layout information, the layout information for reconfiguring the first data path and the access for enabling access to the memory area in the reconfigured first data path are included. Generate information. Therefore, the present invention is also useful in the design and development of a data processing device that forms a fixed data path by using processing elements, and the design and development of a data processing device that forms a reconfigurable data path. It is also useful in development.
[0024] さらに、本発明の活性化コードの生成方法は、少なくとも 1つの回路領域の固定し た位置にデータパスを再構成するデータ処理装置のみならず、任意の位置にデータ パスを再構成するデータ処理装置の設計および開発においても有用である。その場 合は、アクセス情報は、相対的なアドレスを含むものになる。すなわち、データ処理装 置が、回路区画の任意の場所にデータパスを再構成する手段を備えている場合は、 レイアウトステップでは、第 1のデータノ スを任意の場所に再構成するための相対的 なレイアウト情報と、任意の場所に再構成された第 1のデータパスにおけるメモリ領域 の相対的なアドレス情報とを生成する。 [0025] さらに、本発明の活性ィ匕コードの生成方法では、ソースコードに、第 1の機能をイン スタンス形式で記述することができる。レイアウト情報を生成する第 2のステップでは、 第 1の機能をオブジェクト形式で記述したライブラリ情報を使用することにより、インス タンス毎のメモリ領域へのアクセスを可能にする情報、例えば、インスタンス毎のメモリ 領域のアドレスを含むアクセス情報を生成する。活性ィ匕コードを生成する第 3のステツ プでは、第 1のパラメータに関係する命令を、インスタンス毎にプロセッシングエレメン トに対応するメモリ領域にアクセスするコードに変換することができる。 Further, the activation code generation method of the present invention reconfigures a data path at an arbitrary position as well as a data processing device that reconfigures a data path at a fixed position of at least one circuit area. It is also useful in the design and development of data processing equipment. In that case, the access information will include the relative address. In other words, if the data processing device has a means for reconfiguring the data path anywhere in the circuit section, the layout step may include a step for reconfiguring the first data node in any location. And generates the layout information and the relative address information of the memory area in the first data path reconstructed at an arbitrary location. [0025] Further, in the method of generating an activation code according to the present invention, the first function can be described in an instance format in the source code. In the second step of generating layout information, information that enables access to a memory area for each instance by using library information describing the first function in an object format, for example, memory for each instance, is used. Generate access information including the address of the area. In the third step of generating the activation code, an instruction related to the first parameter can be converted into a code for accessing a memory area corresponding to a processing element for each instance.
図面の簡単な説明  Brief Description of Drawings
[0026] [図 1]図 1は、プロセッシングユニット(PU)の概要を示す図である。  FIG. 1 is a diagram showing an outline of a processing unit (PU).
[図 2]図 2は、マトリクスの概要を示す図である。  FIG. 2 is a diagram showing an outline of a matrix.
[図 3]図 3は、プロセッシングエレメント(PE)の一例を示す図である。  FIG. 3 is a diagram showing an example of a processing element (PE).
[図 4]図 4は、 PEの他の例を示す図である。  FIG. 4 is a diagram showing another example of PE.
[図 5]図 5は、 PEにコンフィグレーションデータをロードする構成を示す図である。  FIG. 5 is a diagram showing a configuration for loading configuration data into PEs.
[図 6]図 6は、実行用のプログラムを生成する過程を示す図である。  FIG. 6 is a diagram showing a process of generating a program for execution.
[図 7]図 7は、 DDDLコードの一例を示す図である。  FIG. 7 is a diagram showing an example of a DDDL code.
[図 8]図 8は、アクセス情報の一例を示す図である。  FIG. 8 is a diagram showing an example of access information.
[図 9]図 9は、ユーザソースプログラムの一例を示す図である。  FIG. 9 is a diagram showing an example of a user source program.
発明を実施するための最良の形態  BEST MODE FOR CARRYING OUT THE INVENTION
[0027] 図 1に、本発明により生成された実行用プログラムによりアプリケーションを実行する データ処理装置の一例を示してある。このデータ処理装置 1は、 1つのチップ化され たプロセッシングユニット(PU) 1であり、図 2に示すように複数プロセッシングエレメン ト(PE) 21によりデータパスを再構成可能なマトリクスと称される回路区画 19を備えて いる。データ処理装置 1は、さらに、 PE21などに対してコンフィグレーション情報(コ ンフィグレーシヨンデータ)を供給して制御する制御用プロセッサ (RISC) 35と、コン フィグレーシヨン情報を伝送するためのコントロールユニット (TCU) 59および転送路 51— 58とを備えている。転送路 51— 58は、複数の PE21を複数にグループ分けし たセグメント 10— 15、入力バッファ 33および出力バッファ 34のそれぞれに張り巡らさ れている。これらは、 RISC35からのみではなぐ他の PU1などから供給されるコンフ ィグレーシヨンデータを PE21などに転送する機能も備えている。この PU1において は、 TCU59が、バススイッチングユニット(バスインターフェイス、 BSU) 36に接続さ れており、 RISC35は BSU36を介してコンフィグレーションデータを TCU59を介して 各 PE21に供給する。 FIG. 1 shows an example of a data processing device that executes an application using an execution program generated according to the present invention. The data processing device 1 is a single processing unit (PU) 1 on a chip. As shown in FIG. 2, a circuit called a matrix in which a data path can be reconfigured by a plurality of processing elements (PE) 21 Block 19 is provided. The data processing device 1 further includes a control processor (RISC) 35 for supplying and controlling the configuration information (configuration data) to the PE 21 and the like, and a control processor for transmitting the configuration information. A unit (TCU) 59 and transfer paths 51-58 are provided. The transfer paths 51-58 are provided in each of the segments 10-15 in which the plurality of PEs 21 are grouped into a plurality, the input buffer 33, and the output buffer 34. These are not only supplied from RISC35 but also supplied from other PU1 etc. It also has a function to transfer the migration data to PE21. In this PU1, the TCU 59 is connected to a bus switching unit (bus interface, BSU) 36, and the RISC 35 supplies configuration data to each PE 21 via the BCU 36 via the TCU 59.
[0028] PU1は、マトリクス 19の内部にデータを入出力するインターフェイスが 2種類用意さ れている。 1つは、ダイレクト入力 31a— 31cおよびダイレクト出力 32a— 32cであり、 マトリクス 19の PE21に対して外部から直にデータを入力し、また、出力することがで きる。ダイレクト入力 31a— 31cおよびダイレクト出力 32a— 32cを用いて複数の PU1 を接続して、データノ スを構成する PE21の実数をさらに増やすことができる。これに より、 1つのチップ(PU) 1では回路要素が不足するようなアプリケーションの処理も複 数のチップ 1を連結することにより対処できる。 PU1は、さらに、他の入力方法として、 入力バッファ 33と出力バッファ 34とを用いてマトリクス 19にデータを供給する構成を 備えている。入力バッファ 33は 4つの入力エレメント LDBを備えており、ノッファ 33の 構成および制御をコンフィグレーションデータにより設定できる。出力バッファ 34も同 様であり、 4つの出力エレメント STBを備えており、構成および制御をコンフィグレー シヨンデータにより設定できる。  The PU 1 has two types of interfaces for inputting and outputting data inside the matrix 19. One is a direct input 31a-31c and a direct output 32a-32c, which can directly input and output data from the outside to the PE21 of the matrix 19. Multiple PU1s can be connected using direct inputs 31a-31c and direct outputs 32a-32c to further increase the real number of PE21s that make up the data node. As a result, application processing in which one chip (PU) 1 runs short of circuit elements can be dealt with by connecting a plurality of chips 1. PU1 is further provided with a configuration for supplying data to the matrix 19 using an input buffer 33 and an output buffer 34 as another input method. The input buffer 33 has four input elements LDB, and the configuration and control of the buffer 33 can be set by configuration data. The output buffer 34 is the same, has four output elements STB, and the configuration and control can be set by configuration data.
[0029] BSU36には、複数のコンポーネントあるいはインターフェイスが接続されており、 RI SC35に限らず、これらのコンポーネントあるいはインターフェイスを用いてコンフィグ レーシヨンデータをマトリクス 19に送り込むことができる。また、マトリクス 19の内部に 再構成されたデータパス力 他のデータパスを構成するためのコンフィグレーション データを PE21に供給できる。たとえば、 SDRAMインターフェイス 37を介して外部メ モリ力もコンフィグレーションデータを提供でき、 PCIバスインターフェイス 38を介して PCIバスに接続された外部プロセッサからもコンフィグレーションデータを供給できる 。また、その他のコンポーネントとして DMAC39が接続され、バスブリッジ回路 41を 介してシリアルインターフェイスコントローラとなる非同期通信機 (UART)などの汎用 インターフェイス 40が接続されて!、る。  [0029] A plurality of components or interfaces are connected to the BSU 36. The configuration data can be sent to the matrix 19 by using not only the RISC 35 but also these components or interfaces. Also, the configuration data for configuring another data path inside the matrix 19 can be supplied to the PE 21. For example, external memory can provide configuration data via the SDRAM interface 37, and configuration data can also be supplied from an external processor connected to the PCI bus via the PCI bus interface 38. A DMAC 39 is connected as another component, and a general-purpose interface 40 such as an asynchronous communication device (UART) serving as a serial interface controller is connected via a bus bridge circuit 41.
[0030] 再構成可能な回路区画であるマトリクス 19は、図 1においては、複数のセグメント 10 力 15に分かれて記載されている。マトリクス 19は、全体としては図 2に示すように、 複数のプロセッシングエレメントがアレイまたはマトリクス状に 2次元に配置された回路 領域となっており、そのため回路領域 19はマトリクスと称されている。 PU1のマトリクス 19は、 368個の PE21を備えており、それらに対してコンフィグレーションデータを供 給する転送路を分けて形成するために 6つのセグメント 10— 15に形式上分割されて いる。し力しながら、複数の PE21からデータパスを構成し、入力データを処理すると いう点では、これらのセグメント 10— 15により PE21が複数にグループ分けされてい るのではない。したがって、配線群 22により PE21をフレキシブルに接続し、複数の セグメントに跨ったデータパスまたはデータフローを自由に構成できる。 The matrix 19, which is a reconfigurable circuit section, is shown in FIG. The matrix 19, as a whole, as shown in Figure 2, The circuit area is a circuit area in which a plurality of processing elements are arranged two-dimensionally in an array or a matrix. Therefore, the circuit area 19 is called a matrix. The matrix 19 of PU1 includes 368 PE21s, and is formally divided into six segments 10 to 15 to separately form a transfer path for supplying configuration data to them. However, in terms of constructing a data path from a plurality of PEs 21 and processing input data, the PEs 21 are not divided into a plurality of groups by these segments 10-15. Therefore, the PEs 21 can be flexibly connected by the wiring group 22, and a data path or a data flow extending over a plurality of segments can be freely configured.
[0031] マトリクス 19は、縦横に 2次元に配置された複数のプロセッシングエレメント(PE) 21 と、それらの間に格子状に配置された配線 22と、配線 22の接続ポイントで縦横の配 線 22の接続を自由に切り替えることができるスイッチングユニット 23とを備えて 、る。 PE21は、ルックアップテーブルなどにより自在に機能を設定可能なものであっても 良い。本例の PE21は、算術論理演算用のエレメント、遅延用のエレメント、メモリ用 のエレメント、データを入力または出力するためにアドレスを発生させるエレメント、デ ータの入力または出力用のエレメントなど、ある程度機能的に異なるエレメントを含ん でいる。この PU1においては、機能的に異なる処理に適した内部構成のエレメントを 複数種類用意し、それらの機能的に異なる複数のエレメントをグループに分けて配 置することによりマトリクス 19のスペース効率を向上している。また、 PU1においては 、ある程度の機能グループに分けたエレメントを配置することにより冗長性が減少す るので AC特性および処理速度も向上できるといったメリットを得ている。 The matrix 19 is composed of a plurality of processing elements (PEs) 21 arranged two-dimensionally in the vertical and horizontal directions, wirings 22 arranged in a grid pattern therebetween, and vertical and horizontal wirings 22 at connection points of the wirings 22. And a switching unit 23 that can freely switch the connection between the two. The function of the PE 21 may be freely set by a look-up table or the like. In this example, the PE21 has some elements such as an element for arithmetic logic operation, an element for delay, an element for memory, an element for generating an address for inputting or outputting data, and an element for inputting or outputting data. Contains functionally different elements. In PU1, multiple types of elements with an internal configuration suitable for functionally different processes are prepared, and the functionally different elements are divided into groups and arranged to improve the space efficiency of matrix 19. ing. PU1 also has the advantage that the AC characteristics and processing speed can be improved because the redundancy is reduced by arranging the elements in a certain number of functional groups.
[0032] 図 3および図 4は、 PE21の一例である。 PE21は、機能を変更可能な内部データ パス領域 29と、その内部データパス領域 29の機能をコンフィグレーション情報により 制御する設定ユニット 60とを備えて 、る。内部データパス領域 29と配線 22とは入出 力のセレクタ 25および 26を介して接続されている。したがって、コンフィグレーション 情報により配線 22に含まれる複数のバスのいずれかが入力用のノ スおよび出力用 のバスとして選択され、 PE21により形成されるデータパスの構成をコンフィグレーショ ン情報により制御できる。  FIG. 3 and FIG. 4 are examples of the PE 21. The PE 21 includes an internal data path area 29 whose function can be changed, and a setting unit 60 that controls the function of the internal data path area 29 based on configuration information. The internal data path area 29 and the wiring 22 are connected via input / output selectors 25 and 26. Therefore, one of the plurality of buses included in the wiring 22 is selected as the input bus and the output bus based on the configuration information, and the configuration of the data path formed by the PE 21 can be controlled by the configuration information.
[0033] 図 3に示した PE21aの内部データパス領域 29aは、カウンタなど力 なるアドレス発 生回路 28と、セレクタ SELとを備えている。設定ユニット 60は、コンフィグレーション 情報が格納されるコンフィグレーションメモリ 68を備えており、内部データパス領域 2 9aは、コンフィグレーション情報により機能が制御される。この PE21aでは、コンフィ グレーシヨン情報により設定された条件でアドレス発生回路 28により生成されたアド レスが出力信号 doとして配線 22に出力される。そのアドレス信号は、行配線および 列配線を介して、そのまま、あるいは、他の PE21によって処理された後、入力信号 di Xあるいは diyとして PE21aにフィードバックされる。そして、コンフィグレーション情報 によりセットされた条件でセレクタ SELが選択したアドレスがマトリクス 19からデータ入 力あるいは出力用のアドレスとして出力される。 The internal data path area 29a of the PE 21a shown in FIG. It has a raw circuit 28 and a selector SEL. The setting unit 60 includes a configuration memory 68 in which configuration information is stored. The function of the internal data path area 29a is controlled by the configuration information. In this PE 21a, the address generated by the address generation circuit 28 under the conditions set by the configuration information is output to the wiring 22 as an output signal do. The address signal is fed back to the PE 21a as an input signal di X or diy as it is or after being processed by another PE 21 via the row wiring and the column wiring. Then, the address selected by the selector SEL under the condition set by the configuration information is output from the matrix 19 as a data input or output address.
[0034] したがって、 PE21aの機能はコンフィグレーションメモリ 68に格納されるコンフィグレ ーシヨン情報を書き換えることにより自由に制御できる。たとえば、メモリ間の転送を伴 う処理を実行するデータパスを、 1つまたは複数の PE21aを用いて構成した場合は、 コンフィグレーション情報に含まれるコピー元のアドレス、コピー先のアドレス、コピー ワード数などのパラメータを変更することにより、同じ構成のデータパスにより種々の 目的で利用できる。 Therefore, the function of the PE 21a can be freely controlled by rewriting the configuration information stored in the configuration memory 68. For example, if a data path that executes processing involving transfer between memories is configured using one or more PE21a, the copy source address, copy destination address, and copy word count included in the configuration information By changing the parameters such as the above, it can be used for various purposes with the same configuration data path.
[0035] 図 4に示した PE21bは、算術演算および論理演算に適した構成である。内部デー タパス部 29bは、シフト回路 SHIFT、マスク回路 MASK、論理演算ユニット ALUを 備えている。そして、上記の PE21aと同様に、設定ユニット 60のコンフィグレーション メモリ 68に格納されたコンフィグレーション情報により、これらのシフト回路 SHIFT、 マスク回路 MASK、論理演算ユニット ALUの状態が設定される。したがって、コンフ ィグレーシヨン情報を変えることにより、入力データ dixおよび diyを加算あるいは減算 したり、比較したり、論理和あるいは論理積を演算することができ、その結果が出力信 号 doとして配線 (バス) 22に出力することができる。  The PE 21b shown in FIG. 4 has a configuration suitable for arithmetic operations and logical operations. The internal data path unit 29b includes a shift circuit SHIFT, a mask circuit MASK, and a logical operation unit ALU. Then, as in the case of the PE 21a, the states of the shift circuit SHIFT, the mask circuit MASK, and the logical operation unit ALU are set by the configuration information stored in the configuration memory 68 of the setting unit 60. Therefore, by changing the configuration information, the input data dix and diy can be added or subtracted, compared, and a logical sum or a logical product can be calculated, and the result is output as an output signal do as a wiring (bus). 22 can be output.
[0036] 図 5に、 PE21において転送路を用いてデータを入出力する機構を示してある。そ れぞれの転送路 51— 56は、図 2に示した夫々のセグメント 10— 15に含まれる PE21 に設けられた 1ワード(32ビット)のレジスタ (フリップフロップ)を直列に繋ぐ配線であ る。ここでは、転送路 51を例に説明する。 PE21の設定ユニット 60は 32ビットのレジス タ(FF) 61を備えており、 32ビットの転送路 51により前後に隣接する PE21の FF61 と接続されている。したがって、転送路 51では、 1つの PE21の FF61に伝送された 1 ワードのデータ 75は、 1クロックあるいは 1サイクルの遅延で次の PE21の FF61に伝 送される。 FIG. 5 shows a mechanism for inputting and outputting data using the transfer path in the PE 21. Each of the transfer paths 51-56 is a wiring for serially connecting a 1-word (32-bit) register (flip-flop) provided in PE21 included in each of the segments 10-15 shown in FIG. You. Here, the transfer path 51 will be described as an example. The setting unit 60 of the PE 21 has a 32-bit register (FF) 61, and the FF 61 of the PE 21 adjacent to the front and rear by the 32-bit transfer path 51. Is connected to Therefore, in the transfer path 51, the one-word data 75 transmitted to the FF61 of one PE21 is transmitted to the FF61 of the next PE21 with one clock or one cycle delay.
[0037] 設定ユニット 60は、 FF61に格納されたデータ 75をデコードするデコーダ 62と、デ ータ 75を格納するためにバックグラウンドで動作するバックグラウンド動作部 63と、口 一カルのデータパス領域 29の設定を行うコンフィグレーションデータが格納されるフ オアグラウンド動作部 64とを備えている。ノ ックグラウンド動作部 63は、 3バンクのバッ クグラウンドメモリ 65と、 FF61に格納されたデータ 75をバックグラウンドメモリ 65の各 バンクと直に出力するラインに振り分けるセレクタ 66と、メモリ 65のバンクを選択して データを出力できるセレクタ 67とを備えて 、る。  The setting unit 60 includes a decoder 62 that decodes data 75 stored in the FF 61, a background operation unit 63 that operates in the background to store the data 75, and a oral data path area. And a foreground operation unit 64 in which configuration data for setting 29 are stored. The knock operation unit 63 selects three banks of the background memory 65, a selector 66 for distributing the data 75 stored in the FF 61 to each bank of the background memory 65 and a line to be directly output, and selects a bank of the memory 65. And a selector 67 capable of outputting data.
[0038] フォアグラウンド動作部 64は、データパス領域 29の現状のコンフィグレーションを維 持するフォアグラウンドメモリ 68を備えている。したがって、このフォアグラウンドメモリ 68がデータパス領域 29の機能を実際に制御するコンフィグレーションメモリとなり、こ のメモリ 68のコンフィグレーションデータの一部あるいは全部を書き換えることにより P E21の機能あるいは動作は、 PE21が設計された範囲で自由に制御することができ る。フォアグラウンド動作部 64は、フォアグラウンドメモリ 68に、ノ ックグラウンドメモリ 6 5または転送路 51の FF61からのデータを選択して供給するセレクタ 69を備えている 。フォアグラウンドメモリ 68にロードするコンフィグレーションデータ (設定データ)を選 択するセレクタ 67および 69は、選択信号を選択するための第 2のセレクタ 72および 7 0により制御され、転送路 51により FF61にセットされたデータおよびフォアグラウンド メモリ 68に設定されたコンフィグレーションデータ力も制御することができる。セレクタ 67および 69は、 RISC35からダイレクトに供給される信号により制御するようにしても 良い。  [0038] The foreground operating section 64 includes a foreground memory 68 that maintains the current configuration of the data path area 29. Therefore, this foreground memory 68 is a configuration memory that actually controls the function of the data path area 29.By rewriting a part or all of the configuration data of this memory 68, the function or operation of PE21 is It can be controlled freely within the designed range. The foreground operation unit 64 includes a selector 69 that selects and supplies data from the knock ground memory 65 or the FF 61 of the transfer path 51 to the foreground memory 68. The selectors 67 and 69 for selecting the configuration data (setting data) to be loaded into the foreground memory 68 are controlled by the second selectors 72 and 70 for selecting the selection signal, and are set to FF61 by the transfer path 51. Data and configuration data set in the foreground memory 68 can also be controlled. The selectors 67 and 69 may be controlled by a signal supplied directly from the RISC 35.
[0039] 設定ユニット 60は、下流の PE21の FF61に供給するデータ 75を、自己の PE21の FF61のデータ、バックグラウンドメモリ 65のバンクのデータ、さらにフォアグラウンドメ モリ 68のデータのいずれ力から選択できる出力セレクタ 71を備えている。デコーダ 6 2は、自己の PE21の FF61に転送されたデータ 75を解析することにより、出力セレク タ 71を切り替えて下流の PE21の FF61に転送されるデータ 75を選択する。 [0040] このように、 PU1は、 RISC35により、それぞれの PE21の設定ユニット 60、さらに具 体的には、 PE21に対応するコンフィグレーションメモリ 68に適当なコンフィグレーショ ンデータをタイムリーに供給することができる。したがって、複数の PE21により構成さ れるデータノ スを動的に変更することができる。また、 PE21の単位で、フォアグラウ ンドで PE21を制御しているコンフィグレーションデータの一部あるいは全部を書き換 えることが可能であり、データパスの構成を変えずに、個々の PE21の機能を変更し てデータパスの処理を変更することも可能である。さらに、個々の PE21のコンフイダ レーシヨンデータを読み出すことも可能であり、 RISC35によりコンフィグレーションデ ータの一部を変更してリライトしたり、 PE21からフィードバックされたコンフィグレーシ ヨンデータをデバッグするために用いることも可能である。 [0039] The setting unit 60 can select the data 75 to be supplied to the FF61 of the downstream PE21 from any one of the data of the FF61 of the own PE21, the data of the bank of the background memory 65, and the data of the foreground memory 68. An output selector 71 is provided. The decoder 62 switches the output selector 71 by analyzing the data 75 transferred to the FF61 of its own PE21, and selects the data 75 transferred to the FF61 of the downstream PE21. [0040] As described above, the PU1 can supply appropriate configuration data to the setting unit 60 of each PE21, and more specifically, the configuration memory 68 corresponding to the PE21 in a timely manner by the RISC 35. it can. Therefore, the data node composed of a plurality of PEs 21 can be dynamically changed. In addition, it is possible to rewrite part or all of the configuration data that controls PE21 in the foreground in units of PE21, so that the function of each PE21 can be changed without changing the data path configuration. It is possible to change the processing of the data path. Furthermore, it is also possible to read the configuration data of each PE21, and to change and rewrite part of the configuration data by RISC35, and to debug the configuration data fed back from PE21. It is also possible to use.
[0041] PE21の接続を動的に変更してデータノ スを再構成可能なハードウェアはこれに限 定されるものではない。たとえば、配線群 22を用いて PE21を接続する代わりに、 PE 21それ自体を接続手段として利用し、 PE21同士を接続し、変更可能なデータパス を構成することも可能である。また、各 PE21にコンフィグレーションデータを供給する 方法としては、各 PE21のコンフィグレーションメモリを個別にノ ス接続する方法を採 用することも可能である。  The hardware capable of dynamically changing the connection of the PE 21 to reconfigure the data node is not limited to this. For example, instead of using the wiring group 22 to connect the PEs 21, it is also possible to use the PEs 21 themselves as connection means and connect the PEs 21 to each other to form a changeable data path. As a method of supplying the configuration data to each PE 21, it is also possible to adopt a method of individually connecting the configuration memories of the PEs 21 to each other.
[0042] 図 6に、与えられたユーザの仕様 (アプリケーション)を PU1により実行する実行用 プログラムを生成する過程を示してある。アプリケーションは、 PU1あるいは PU1を実 装した電子機器などの装置において処理する業務を総括的に示しており、ユーザの 仕様により決定される。アプリケーションを示すユーザ仕様は、本例においては、デ バイスに依存しない記述である Cソースコード(userO. c) 81で与えられている。まず 、 Cソ ~~スコ. ~~ (userO. c) 81を、 DDDL (Device Dependent Description Language )コンパイラ 101により、 PU1のハードウェア情報を含むハードウェアライブラリ 82を参 照して PU1に依存したプログラムを生成する。このステップ ST— Aでは、ソースコード 81に記述された処理のほとんどを、 PU1のマトリクス 19の PE21により構成されるデ ータパスを用いて実行するように変換する。このため、 PE21により構成されるデータ パスを用いて実行する処理内容を、デバイス、すなわちマトリクス 19に含まれる PE21 の機能に依存の形式で記述した DDDLソースコード 85が DDDLコンパイラ 101によ り生成される。さらに、その DDDLソースコード 85によりデータパスが構成されるマトリ タス 19を制御する記述を含んだソースコード(userl . c) 84も、 DDDLコンパイラ 101 により生成される。 FIG. 6 shows a process of generating an execution program for executing a given user specification (application) by the PU1. The application generally indicates the tasks to be processed by PU1 or devices such as electronic devices that implement PU1, and is determined by the specifications of the user. In this example, the user specification indicating the application is given in the C source code (userO.c) 81 which is a device-independent description. First, the C source ~~ sco. ~~ (userO.c) 81 is referenced by a DDDL (Device Dependent Description Language) compiler 101 with reference to a hardware library 82 containing PU1 hardware information. Generate In this step ST-A, most of the processing described in the source code 81 is converted to be executed using the data path constituted by the PE 21 of the matrix 19 of PU1. Therefore, the DDDL source code 85 that describes the processing to be executed using the data path configured by the PE 21 in a format that depends on the device, that is, the function of the PE 21 included in the matrix 19 is used by the DDDL compiler 101. Generated. Further, a source code (userl.c) 84 including a description for controlling the matrix 19 whose data path is formed by the DDDL source code 85 is also generated by the DDDL compiler 101.
[0043] DDDLコンパイラ 101において参照されるマトリクスライブラリ 83には、ユーザプロ グラムにおいて多用される機能を DDDLで記述したモジュールが用意されており、 D DDLソースコード 85を生成する時間を短縮することができる。モジュール化される機 能としては、たとえば、メモリに対するアクセス制御などの入出力に関する機能、フー リエ変換などのデータ処理に関する機能がある。ある機能を実現するためのデータパ スを複数の PE21を用いて構成する方法は通常幾つかあり、それらの内、最適な構 成を選択するには多大な時間を消費する。したがって、事前に最適な構成のデータ パスの DDDLソースを用意することによりコンパイル時間を大幅に短縮できる。また、 1つの機能に対して、幾つかの条件に対して最適な構成の複数のデータパスの DD DLソースをライブラリ 83に用意してコンパイラ 101が選択できるようにすることにより、 短時間でユーザの使用に適した DDDLソースを生成することができる。  The matrix library 83 referred to by the DDDL compiler 101 has a module in which functions frequently used in a user program are described in the DDDL, so that the time required to generate the D DDL source code 85 can be reduced. it can. The functions to be modularized include, for example, functions related to input / output such as access control to a memory, and functions related to data processing such as Fourier transform. There are usually several ways to configure a data path to implement a certain function using multiple PE21s, and it takes a lot of time to select the optimal configuration. Therefore, compile time can be greatly reduced by preparing the DDDL source of the optimally configured data path in advance. In addition, by preparing DDDL sources of multiple data paths with the optimal configuration for several conditions for one function in the library 83 so that the compiler 101 can select them, it is possible to shorten the user time. You can generate a DDDL source suitable for using.
[0044] さらに、ある機能を実現するデータパスのパラメータを変更することにより、ユーザの 使用に適した DDDLソースを提供できることも多い。そのような、パラメータが関係す る機能に対しては、ユーザソースコードから変更可能な 1つまたは複数のパラメータと 、その機能を実現するデータパスを記述する DDDLコードがライブラリ 83に用意され る。したがって、 DDDLコンパイラ 101は、ユーザ仕様を実現するユーザソースコード 84、ユーザ仕様を実現するユーザ DDDLコード 85に加えて、ユーザソースコード 84 あるいはユーザ DDDLコード(user. dd2) 85に使用される 1つまたは複数のモジュ ールの DDDLコード(matrix. dd2) 86を出力する。そして、ユーザソースコード 84 には、選択された DDDLコード 86の処理を決定するパラメータを定義あるいは変更 する命令が含まれる。 [0044] Furthermore, it is often possible to provide a DDDL source suitable for use by a user by changing a parameter of a data path for realizing a certain function. For such a function related to parameters, one or more parameters that can be changed from the user source code and DDDL code that describes a data path for realizing the function are prepared in the library 83. Therefore, in addition to the user source code 84 for realizing the user specification and the user DDDL code 85 for realizing the user specification, the DDDL compiler 101 can be used for the user source code 84 or the user DDDL code (user.dd2) 85 Or, output DDDL code (matrix. Dd2) 86 of multiple modules. Then, the user source code 84 includes an instruction for defining or changing a parameter that determines the processing of the selected DDDL code 86.
[0045] ライブラリ 83に用意されたモジュールの DDDLコードをオブジェクト形式で記述す ることにより、ソースコード(ソースプログラム) 84では、そのモジュールで実現しようと する機能はインスタンス形式で記述することができる。したがって、そのモジュールで 使用されるパラメータを制御する命令をインスタンス形式で記述することができる。こ のため、同一のモジュールのインスタンスを複数のデータパスで用いるような構成を、 ユーザソースプログラムにお 、て極めて容易に記述することができる。 [0045] By describing the DDDL code of the module prepared in the library 83 in the object format, the functions to be realized by the module can be described in the source code (source program) 84 in the instance format. Therefore, the commands that control the parameters used in the module can be described in instance form. This Therefore, a configuration in which an instance of the same module is used in a plurality of data paths can be described very easily in a user source program.
[0046] さらに、ユーザの要求する処理を PU1において実現するデータパス(データフロー )を構成するために PE21のリソースが不足する場合がある。その場合は、再構成可 能なマトリクス 19の機能を利用して、 PE21を時分割で使用し、マトリクス 19にデータ パスを再構成する必要がある。したがって、 DDDLコンパイラ 101では、マトリクス 19 の PE21を時分割で使用するための複数のデータノ スの構成が生成され、それぞれ のデータパスの構成を記述した複数の DDDLコードが出力される。さらに、ユーザソ ースコード 84には、データパスを再構成する命令が含まれる。  Further, there is a case where resources of the PE 21 are insufficient because a data path (data flow) for realizing the processing requested by the user in the PU 1 is configured. In that case, it is necessary to reconfigure the data path in the matrix 19 by using the functions of the reconfigurable matrix 19 and using the PE 21 in a time-division manner. Therefore, the DDDL compiler 101 generates a plurality of data node configurations for using the PE 21 of the matrix 19 in a time-division manner, and outputs a plurality of DDDL codes describing the configuration of each data path. In addition, user source code 84 includes instructions to reconfigure the data path.
[0047] DNAコンパイラ 102は、ユーザソースコード 84、ユーザ DDDLコード 85、 1つまた は複数のモジュールの DDDLコード 86を入力としてマトリクス 19の配置配線を行う。 そのため、 DNAコンパイラ 102は、 DDDLコードに記述されたデータパスをマトリクス 19にマッピングし、そのレイアウト情報 87を出力する。このレイアウトを行うステップ S T Bでは、ユーザソースコード 84により変更可能なパラメータが定義されているモジ ユールの DDDLコード 86をマッピングする際に、そのパラメータに関係する PE21の コンフィグレーションメモリ 68のアドレスを示すアクセス情報をヘッダーファイル(matr ix. h) 88としてレイアウト情報 87と共に出力する。すなわち、ステップ ST—Aにおい ては、 DDDLコンパイラ 101により、アプリケーションの少なくとも一部を、ある(第 1の )パラメータが関係する機能 (第 1の機能)を利用して実行するようにユーザソースコー ド 84および DDDLソースコード 85を生成する。例えば、ソースコード 85ではパラメ一 タを設定したり、変更することにより機能の具体的な動きを決定する。ステップ ST— B において、レイアウト情報に加えて、第 1のパラメータに関係する PE21に対応するコ ンフィグレーシヨンメモリ 68へのアクセスを可能とするアクセス情報を生成する。  [0047] The DNA compiler 102 performs arrangement and wiring of the matrix 19 by using the user source code 84, the user DDDL code 85, and the DDDL code 86 of one or more modules as inputs. Therefore, the DNA compiler 102 maps the data path described in the DDDL code into the matrix 19 and outputs the layout information 87. In the step STB for performing this layout, when mapping the DDDL code 86 of the module in which the parameter that can be changed by the user source code 84 is defined, the access indicating the address of the configuration memory 68 of the PE 21 related to the parameter is performed. The information is output as a header file (matr ix.h) 88 together with the layout information 87. That is, in step ST-A, the user source code is executed by the DDDL compiler 101 so that at least a part of the application is executed using a function (first function) related to a certain (first) parameter. Generate 84 and DDDL source code 85. For example, in the source code 85, the specific operation of the function is determined by setting or changing parameters. In step ST-B, in addition to the layout information, access information that enables access to the configuration memory 68 corresponding to the PE 21 related to the first parameter is generated.
[0048] DDDLコード 86を PE21により具体的にマッピングする際には、データパスを実現 するための具体的な PE21の位置と、その PE21に含まれるゲート回路の具体的な構 成が決定される。したがって、 DDDLコード 86に、予め変更可能なパラメータが含ま れていれば、それにより影響を受ける具体的な PE21と、その PE21に含まれる具体 的なゲート回路とが特定され、そのゲート回路を制御するコンフィグレーション情報が 格納されるコンフィグレーションメモリ 68のアドレスも特定される。あるいは、パラメータ により影響を受ける PE21のコンフィグレーションメモリ 68のアドレスと、コンフィグレー シヨンメモリ 68にセットされるデータ中のパラメータにより影響を受けるワードあるいは ビットの位置が特定される。 [0048] When the DDDL code 86 is specifically mapped by the PE21, the specific position of the PE21 for realizing the data path and the specific configuration of the gate circuit included in the PE21 are determined. . Therefore, if the DDDL code 86 includes a parameter that can be changed in advance, the specific PE21 affected by the parameter and the specific gate circuit included in the PE21 are specified, and the gate circuit is controlled. Configuration information The address of the configuration memory 68 to be stored is also specified. Alternatively, the address of the configuration memory 68 of the PE 21 affected by the parameter and the position of the word or bit affected by the parameter in the data set in the configuration memory 68 are specified.
[0049] 本例のマトリクス 19においては、コンフィグレーションメモリ 68が PE21に物理的に 含まれているので、コンフィグレーションメモリ自体のアドレスは、マトリクス中の PE21 のアドレスと同一になる。複数の PE21に対して 1つのコンフィグレーションメモリが用 意されているデバイスにおいては、 PE21のアドレスとコンフィグレーションメモリのアド レスとは一対一では対応しない可能性がある。その場合は、共通のコンフィグレーシ ヨンメモリの中で、ノ ラメータの変更が影響を与える PE21を制御するデータが格納さ れるアドレスを含むアクセス情報 88を生成できる。 PE21をフロントで制御する前に、 コンフィグレーションデータの内のパラメータにより影響を受けるアドレスを特定して更 新することも可能である。し力しながら、多くの場合、フロントで制御する前は、データ 量を少なくするためにコンフィグレーションデータは圧縮されており、圧縮された状態 で更新を行うことは伸張および圧縮するためのハードウェアと処理時間が必要となり 好ましくない。 [0049] In the matrix 19 of this example, since the configuration memory 68 is physically included in the PE21, the address of the configuration memory itself is the same as the address of the PE21 in the matrix. In a device in which one configuration memory is provided for a plurality of PEs 21, the address of the PE 21 and the address of the configuration memory may not correspond one-to-one. In that case, the access information 88 including the address where the data for controlling the PE 21 affected by the change of the parameter is stored can be generated in the common configuration memory. Before controlling the PE21 from the front, it is also possible to identify and update the addresses affected by the parameters in the configuration data. However, in many cases, the configuration data is compressed to reduce the amount of data before control at the front, and updating in the compressed state requires hardware for expansion and compression. And processing time are required, which is not preferable.
[0050] ユーザソースプログラム 84に、インスタンス形式でモジュール 86が利用されている 場合は、 DNAコンパイラ 102は、インスタンス毎にデータパスをマトリクス 19にマツピ ングし、その配置配線情報を含むレイアウト情報 87を出力する。それと共に、 DNAコ ンノイラ 102は、データパス毎、すなわち、インスタンス毎に、パラメータにより影響を 受ける PE21のコンフィグレーションメモリのアドレスを含むアクセス情報 88を出力す る。  [0050] When the module 86 is used in the instance format in the user source program 84, the DNA compiler 102 maps the data path into the matrix 19 for each instance, and outputs the layout information 87 including the arrangement and wiring information. Output. At the same time, the DNA connector 102 outputs access information 88 including the address of the configuration memory of the PE 21 affected by the parameter for each data path, that is, for each instance.
[0051] さらに、マトリクス 19に、複数のデータパスが動的に再構成する必要がある場合は、 DNAコンパイラ 102は、マトリクス 19にデータパスを再構成するためのレイアウト情報 87を出力する。また、 DNAコンパイラ 102は、再構成されたデータパスにおいて、パ ラメータにより影響を受ける PE21のコンフィグレーションメモリのアドレスを含むァクセ ス情報 88を出力する。  Further, when a plurality of data paths need to be dynamically reconfigured in the matrix 19, the DNA compiler 102 outputs layout information 87 for reconfiguring the data paths in the matrix 19. Further, the DNA compiler 102 outputs access information 88 including the address of the configuration memory of the PE 21 affected by the parameter in the reconfigured data path.
[0052] マトリクス 19を構成する PE21が単一の構成であると、 PE21により構成されるデー タパスをマトリクス 19の任意の場所に構成することにより、マトリクス 19の資源をさらに 効率よく利用できる。しかしながら、 PE21の絶対的な位置は、実際にデータノ スがマ トリタス 19に実装されるまで決定されず、そのときまで PE21のコンフィグレーションメ モリのアドレスも決まらない。したがって、そのような PU1を対象に DNAコンパイラ 10 2がレイアウト情報を生成する場合は、 DDDLコード 85または 86によるデータパスを マトリクス 19の任意の場所に再構成するための相対的なレイアウト情報 87を出力し、 任意の場所に再構成されたデータパスにおいてパラメータにより影響を受ける PE21 のコンフィグレーションメモリのアドレスを含むアクセス情報 88を出力する。 PU1に、 データパスが実装されたマトリクス 19の基準のアドレスによりアクセス情報 88を加工 する機能を設けることにより、絶対的なアドレスを含むアクセス情報と同様に取り扱うこ とがでさる。 [0052] If the PE 21 forming the matrix 19 is a single configuration, the data By configuring tapas anywhere in the matrix 19, the resources of the matrix 19 can be used more efficiently. However, the absolute position of PE21 is not determined until the data node is actually mounted on Matrix 19, and the configuration memory address of PE21 is not determined until then. Therefore, when the DNA compiler 102 generates the layout information for such PU1, the relative layout information 87 for reconfiguring the data path by the DDDL code 85 or 86 to an arbitrary place of the matrix 19 is used. And outputs access information 88 including the address of the configuration memory of PE21 affected by the parameter in the data path reconfigured anywhere. By providing PU1 with a function of processing the access information 88 based on the reference address of the matrix 19 in which the data path is mounted, it is possible to handle the access information 88 in the same way as access information including absolute addresses.
[0053] さらに、 DNAコンパイラ 102は、モジュール化された DDDLコード 86のパラメータ を変更する機能を制御するソースコード (matrix, c) 89を出力する。この実行用プロ グラムの生成方法においては、ユーザソースプログラム 88において、あるモジュール に関連するパラメータを個々に変更する命令を記述するアドバンスドモードにカ卩えて 、あるモジュールに関連するパラメータを一括で変更するマクロ命令を記述可能なベ 一シックモードをサポートする。したがって、ユーザソースプログラム 88に記述された マクロ命令により、 DDDLコード 86に関するパラメータを変更する機能を定義するソ ースプログラム 89を用意することにより、 Cコンパイラ 103がマクロ命令を解析して実 行用プログラムを生成できるようにして 、る。  [0053] Further, the DNA compiler 102 outputs a source code (matrix, c) 89 that controls a function of changing a parameter of the modularized DDDL code 86. In this method of generating an execution program, in the user source program 88, an advanced mode is described in which an instruction for individually changing parameters related to a certain module is described, and parameters related to a certain module are changed collectively. Supports basic mode in which macro instructions can be described. Therefore, by preparing a source program 89 that defines the function to change the parameters related to the DDDL code 86 using the macro instruction described in the user source program 88, the C compiler 103 analyzes the macro instruction and executes the execution program. So that it can be generated.
[0054] 実行用プログラムを生成する Cコンパイラ(gcc) 103は、ユーザソースプログラム 90 、マトリクス 19にデータパス化されるモジュールのソースコード 89、および Cソースライ ブラリ 91に含まれるそのモジュールのソースコードを入力として PU1にお!/、て実行可 能なコード 93を生成する。ユーザソースプログラム 90は、ソースプログラム 84に、レイ アウト情報を生成するステップ ST— Bにおいて生成されたアクセス情報がヘッダーフ アイル 88としてインクルード(include)されたものである。したがって、この実行用プロ グラムを生成するステップ ST— Cでは、パラメータが関係する命令、例えば、ノラメ一 タを変更する命令を含むユーザソースプログラム 84と、アクセス情報 88とがコンパィ ラ 103の入力情報に含まれ、それらの情報に基づき実行用プログラム 93が生成され る。このため、実行用プログラム 93を生成する Cコンパイラ 103においては、ユーザソ ースプログラム 84に含まれたパラメータを変更する命令によりアクセスすべきメモリの アドレスが明確になっており、そのメモリのアドレスに対してコンフィグレーションデー タを書き込む、あるいはそのメモリのアドレスのコンフィグレーションデータを書き換え る実行用プログラム 93が自動的に生成される。 The C compiler (gcc) 103 that generates an execution program converts the user source program 90, the source code 89 of the module whose data path is converted into the matrix 19, and the source code of the module contained in the C source library 91. Generates an executable code 93 as input to PU1! The user source program 90 is a source program 84 in which the access information generated in the step ST-B for generating layout information is included as a header file 88. Therefore, in the step ST-C for generating the execution program, the user source program 84 including the instruction related to the parameter, for example, the instruction for changing the noramometer, and the access information 88 are compiled. The execution program 93 is generated based on the information included in the input information of the line 103. For this reason, in the C compiler 103 that generates the execution program 93, the address of the memory to be accessed by the instruction for changing the parameter included in the user source program 84 is clear, and the configuration of the memory address is specified. An execution program 93 for writing the configuration data or rewriting the configuration data at the address of the memory is automatically generated.
[0055] これらの実行用プログラムを生成する一連のプロセス ST— A、 ST— Bおよび ST— C を実行する DDDLコンノイラ 101、 DNAコンノイラ 102および Cコンノイラ 103は、 上述した機能を含むコンパイラとしての機能を適当なリソースを有するコンピュータで 実行するための記述を有するプログラム製品として CD— ROMなどの記録媒体に記 録して提供される。これらのプログラム製品は、インターネットなどの異なるメディアに より提供することも可能である。また、これらのプログラム製品は、それぞれ独立した製 品として提供することも可能であり、一つのノ ッケージとして提供することも可能である [0055] The DDDL connoiler 101, DNA connoiler 102, and C connoiler 103 that execute a series of processes ST-A, ST-B, and ST-C for generating these execution programs have functions as a compiler including the above-described functions. Is recorded on a recording medium such as a CD-ROM and provided as a program product having a description for executing the program on a computer having appropriate resources. These program products can also be made available on different media such as the Internet. In addition, these program products can be provided as independent products, or can be provided as a single package.
[0056] デバイスに依存しな 、ソースプログラム 81からデバイスに依存したソースプログラム 84および DDDLコード 85を生成するプロセス ST— Aは、デバイスに依存した形式に 変換する要素に対して実行手順、リソースの割り振りなど最適化のために検討する要 素が多ぐプログラマの思想や経験が活用されるプロセスである。したがって、現状で はソフトウェアとの協調設計による半自動ある 、はマニュアルで行われることも多 、。 これに対し、配置配線を行うプロセス ST— Bおよび実行用プログラムを生成するプロ セス ST— Cは、変換する要素が膨大であり、プログラムのステップ数も膨大になること からマニュアルで行うことは非現実的であり、コンピュータにより自動生成せざるを得 ない。そして、本発明によれば、コンピュータにより配置配線を自動生成するハードウ エア設計分野であるステップ ST— Bにお 、てアクセス情報 88を生成し、コンピュータ により実行用プログラムを自動生成するソフトウェア設計分野であるステップ ST—じに おいてアクセス情報 88を使用する。これにより、ハードウェア設計の最終過程と、ソフ トウエア設計の最終過程とを結合できるので、ユーザは、ソフトウェア設計においては 、最後段階まで、詳細なアドレスをクリアにしないままのハードウェア依存の命令を使 用して設計を進めることができる。 [0056] The process ST—A of generating a device-dependent source program 84 and DDDL code 85 from the device-independent source program 81 is executed by an element to be converted into a device-dependent format. This is a process that utilizes the ideas and experiences of programmers who have many factors to consider for optimization such as allocation. Therefore, at present, semi-automatic operations are often performed by co-design with software, and are often performed manually. On the other hand, the process ST-B for performing placement and routing and the process ST-C for generating an execution program require a large number of elements to be converted and a large number of program steps. It is realistic and must be automatically generated by a computer. According to the present invention, in step ST-B, which is a hardware design field for automatically generating placement and routing by a computer, access information 88 is generated in a software design field for automatically generating an execution program by a computer. The access information 88 is used in a certain step ST. As a result, the final stage of the hardware design and the final stage of the software design can be combined, so that in the software design, the user can execute hardware-dependent instructions without clearing detailed addresses until the final stage. Use Can be used to advance the design.
[0057] 図 7に、 DDDLコード(matrix. dd2) 86の一例を抜粋して示してある。記述 86aに おいて、マクロ名「cp」という DDDLソースコードが定義され、その中で「dna— setpar mphy_@_U6 ( ;)」という記述 86bおよび「dna— setparmphy— @— U8 ( ;)」と いう記述 86cにより変更可能なパラメータをオブジェクト形式で指定している。  FIG. 7 shows an example of the DDDL code (matrix. Dd2) 86 excerpted. In the description 86a, the DDDL source code with the macro name “cp” is defined. Parameters that can be changed are specified in object format by the description 86c.
[0058] 図 8に、アクセス情報 (matrix, h) 88の一例を示してある。このアクセス情報 88は、 ユーザソースプログラム 84に、 「cpi」というインスタンス名で DDDLコード 86に定義 された「matrix」と ヽぅデータパスのパラメータを変更する命令が記述されて ヽる場合 に、その命令に対応して出力される。このため、「' . 'cpl— U6」および「' . 'cpl— U 8 ( )」というインスタンス形式でパラメータが利用される PE21のアドレスが記述され、 「dna― setparmphy― cp 1― U6、 )」および「dna― setparmphy― cp 1― U8 ( ) 」という記述により、パラメータにより書き換えが必要になるメモリの詳細なアドレスが定 義されている。 FIG. 8 shows an example of the access information (matrix, h) 88. This access information 88 is used when the user source program 84 describes “matrix” defined in the DDDL code 86 with an instance name of “ cp i” and an instruction to change the data path parameter. Output in response to the instruction. Therefore, the address of the PE21 where the parameter is used is described in the instance format of "'.'Cpl-U6" and "'.'cpl-U8 ()", and "dna-setparmphy-cp1-U6,) "And" dna-setparmphy-cp1-U8 () "define the detailed address of the memory that needs to be rewritten by the parameter.
[0059] 図 9に、アクセス情報 88をインクルードしたユーザソースコード(user2. c) 90の一 例を抜粋して示してある。ユーザソースコード 90においては、ヘッダの記述 90aにより アクセス情報 88が取り込まれている。「dna— cfgram— load3 ( ;)」という記述 90bに より、 DDDLコード 86の「matrix」というデータパスのコンフィグレーションデータが、 回路区画であるマトリクス 19の適切な PE21の設定ユニット 60にロードされる。「dna _config ( )」という記述 90cにより、ロードされたコンフィグレーションデータがデー タパスを構成するための PE21の設定ユニット 60のフォアグラウンドメモリ(コンフィグ レーシヨンメモリ) 68にロードされ、内部データパス部 29を制御する。これにより、回路 区画であるマトリクス 19に目的のデータパスが構成される。  FIG. 9 shows an excerpt of an example of the user source code (user2.c) 90 including the access information 88. In the user source code 90, the access information 88 is fetched by the header description 90a. According to the description 90b of “dna—cfgram—load3 (;)”, the configuration data of the data path “matrix” of the DDDL code 86 is loaded to the appropriate PE21 setting unit 60 of the matrix 19 that is a circuit block. . According to the description 90c of “dna_config ()”, the loaded configuration data is loaded into the foreground memory (configuration memory) 68 of the setting unit 60 of the PE 21 for configuring the data path, and the internal data path unit 29 is loaded. Control. Thus, a target data path is formed in the matrix 19, which is a circuit section.
[0060] 「dna— setparmmacro— cpl ( ;)」というインスタンス名 cplを指定したマクロ命令 90dにより、データパス「matrix」において変更可能として開放されているパラメータ を予め定義した「inputl」という値にセットし、「dna_run ( ;)」という記述 90eにより データパス「matrix」による処理を開始する。そのデータパスの処理が終了すると、「 dna_stop ( ;)」という記述 90fによりデータパスの動作を停止する。このようにして、 記述 90dにより設定したパラメータにより制御される処理が実行される。 [0061] さらに、再度、記述 90gにより、コンフィグレーションデータをフォアグラウンドのコン フィグレーシヨンメモリ 68にロードする。次に、「dna— setparmmacro— cpl ( ;)」と いうマクロ命令 90hにより、データパス「matrix」のパラメータを、予め定義した「input 2」という値にセットし、記述 90jによりデータパス「matrix」による処理を開始する。こ れにより、同じ構成のデータパス「matrix」を異なるパラメータで動作させることが可 能となり、新たなコンフィグレーションデータをロードする必要はな!/、。 [0060] A macro instruction 90d specifying an instance name cpl of "dna-setparmmacro-cpl (;)" sets a parameter that is open as changeable in the data path "matrix" to a predefined value of "inputl". Then, the processing by the data path "matrix" is started by the description 90e of "dna_run (;)". When the processing of the data path ends, the operation of the data path is stopped by the description 90f of “dna_stop (;)”. In this way, the process controlled by the parameters set by the description 90d is executed. Further, the configuration data is loaded into the foreground configuration memory 68 again according to the description 90g. Next, the parameter of the data path “matrix” is set to a predefined value of “input 2” by the macro instruction 90h “dna—setparmmacro—cpl (;)”, and the data path “matrix” is described by the description 90j. To start the process. This allows the same configuration data path “matrix” to operate with different parameters, without having to load new configuration data!
[0062] ユーザソースコード 90をコンパイルして実行用プログラム 93を生成するステップ ST —Cにおいて、 Cコンパイラ 103は、「dna— setparmmacro— cp 1 ( ;)」というマクロ命 令 90dおよび 90hにおいて変更されるパラメータの詳細は、データパス「matrix」の ソースコード 89を参照することにより判明する。また、 Cコンパイラ 103は、それらのパ ラメータにより変更すべきデータが格納された、あるいは格納されるメモリの詳細なァ ドレスは、ソースコード 90に含まれたアクセス情報 88を参照することにより判明する。 したがって、ユーザソースコード 90のユーザ命令には、パラメータの変更に係るレジ スタあるいはメモリの詳細なアドレスが明示されていなくても、 Cコンパイラ 103は、ノ ラメータを変更するマクロ命令 90dおよび 90hにより、該当する PE21を制御するコン フィグレーシヨンメモリ 68の該当するアドレスの内容を書き換える実行用の命令を自 動的に生成することができる。  [0062] In the step ST—C of compiling the user source code 90 to generate the execution program 93, the C compiler 103 is changed in macro instructions 90d and 90h of “dna—setparmmacro—cp 1 (;)”. Details of these parameters can be found by referring to source code 89 of data path “matrix”. In addition, the C compiler 103 determines the detailed address of the memory in which the data to be changed according to those parameters is stored or the memory in which the data is stored is referred to by referring to the access information 88 included in the source code 90. Therefore, even if the user instruction of the user source code 90 does not clearly indicate the register or the detailed address of the memory relating to the parameter change, the C compiler 103 can execute the macro instruction 90d and 90h to change the parameter. An execution instruction for rewriting the contents of the corresponding address of the configuration memory 68 for controlling the corresponding PE 21 can be automatically generated.
[0063] なお、上記では、本発明により、 PU1の制御用のプロセッサ 35により実行されるプ ログラム (実行コード)を生成する例を示しているが、本発明により生成される活性ィ匕 コードは制御用プロセッサの実行用プログラムに限定されない。再構成可能な回路 区画であるマトリクス 19に適当なデータパスを構成することにより、マトリクス 19に制 御用プロセッサとしての機能を与えて、マトリクス 19の他のデータパスを制御すること が可能である。この場合は、本発明により生成される活性ィ匕コードは、マトリクス 19で 実行されるものになる。さらに、各 PE21の制御ユニット 60にロードされて、ハードゥエ ァの構成を制御するコンフィグレーション情報の中に、適切なタイミングでパラメータ を変更してデータパスの機能を切り換える情報を埋め込むことも可能である。この場 合は、コンフィグレーション情報が、活性化コード (活動化コード)としての機能も備え ている。 [0064] また、上記では、 C言語によりソースプログラムを記述した例を説明して 、るが、 JAV A (登録商標)などの他のソースプログラムを記述するのに適した言語を用いることは 可能である。また、本発明の対象となるアプリケーションプログラムは、エレメントを接 続することによりデータパスを構成可能なデータ処理装置において、処理の対象とな るソフトウェア全体を含むものであり、 OS、 OSを前提としたアプリケーションプロダラ ム、さらにはデバッグ用のプログラムを含む。また、上記では、パラメータを変更する プログラムを例に説明している力 S、データパスの処理結果が反映されるパラメータを 読み出したり、書き換える処理を含むデバッグ用などのプログラムの設計および開発 にも本発明を適用することが可能である。 In the above description, an example of generating a program (executable code) to be executed by the processor 35 for controlling the PU 1 according to the present invention is shown. However, the activation code generated by the present invention is It is not limited to the execution program of the control processor. By configuring an appropriate data path in the matrix 19, which is a reconfigurable circuit section, it is possible to give the matrix 19 a function as a control processor and control other data paths in the matrix 19. In this case, the activation code generated according to the present invention is executed in the matrix 19. Furthermore, it is also possible to embed information for changing parameters at appropriate timing and switching data path functions in the configuration information that is loaded into the control unit 60 of each PE 21 and controls the configuration of the hardware. . In this case, the configuration information also has a function as an activation code (activation code). In the above description, an example in which a source program is described in C language is described. However, a language suitable for describing another source program such as JAVA (registered trademark) can be used. It is. The application program that is the object of the present invention includes the entire software to be processed in a data processing device that can form a data path by connecting elements. This includes application programs that have been used, as well as debugging programs. Also, in the above description, the force S described in the example of a program for changing parameters is used, and the design and development of a program for debugging, including the process of reading and rewriting parameters reflecting the processing results of the data path, are also described. It is possible to apply the invention.
産業上の利用可能性  Industrial applicability
[0065] 以上に説明したように、本発明においては、パラメータに処理内容が変更されるよう な機能を実現するデータパスを、複数のエレメントの接続により実現するようにレイァ ゥトを決定する際に、そのパラメータに関係するプロセッシングエレメントのコンフイダ レーシヨン情報が格納されるメモリ領域のアドレスを示すアクセス情報を生成し、ソー スコードをコンパイルして活性ィ匕コードを生成する際に使用する。この生成方法は、 電気あるいは電子回路、システム LSI、 ASIC, FPGAなどを含む半導体集積回路に 限らず、電子 '光集積回路など、適当な規模の論理および Zまたは算術演算する機 能を備えた複数のプロセッシングエレメントの接続によりデータノ スを構成可能な全 てのデータ処理システムに適応可能である。さらに、パーソナルコンピュータなどの適 当なコンピュータとしての機能を備えた演算ユニットをエレメントとしてコンピュータネ ットワークで接続し、データノ スを構成するような分散型のデータ処理システムにお ヽ ても本発明を適用することが可能である。 [0065] As described above, in the present invention, when determining a layout so that a data path that realizes a function of changing the processing content to a parameter is realized by connecting a plurality of elements. Then, access information indicating the address of the memory area where the confidential information of the processing element related to the parameter is stored is generated, and the source code is used to compile the source code to generate the activation code. This generation method is not limited to semiconductor integrated circuits including electric or electronic circuits, system LSIs, ASICs, FPGAs, etc. It can be applied to all data processing systems that can compose a data node by connecting different processing elements. Further, the present invention is also applied to a distributed data processing system in which a computing unit having an appropriate computer function such as a personal computer is connected as an element by a computer network to form a data node. It is possible to do.

Claims

請求の範囲 The scope of the claims
[1] 複数のプロセッシングエレメントを接続することにより少なくとも 1つのデータノ スが 形成される少なくとも 1つの回路区画を有し、プロセッシングエレメントにそれぞれ対 応するメモリ領域にコンフィグレーション情報がセットされることにより前記プロセッシン グエレメントの機能が制御されるデータ処理装置によりアプリケーションを実行するた めの活性化コードの生成方法であって、  [1] At least one circuit section in which at least one data node is formed by connecting a plurality of processing elements, and the configuration information is set in memory areas respectively corresponding to the processing elements. A method for generating an activation code for executing an application by a data processing device in which a function of a processing element is controlled, the method comprising:
前記アプリケーションの少なくとも一部を、第 1のノ ラメータが関係する第 1の機能を 利用して実行するようにソースコードを生成する第 1のステップと、  A first step of generating source code to execute at least a portion of the application using a first function associated with a first parameter;
前記第 1の機能を含む処理を行う第 1のデータパスを前記少なくとも 1つの回路区 画にマッピングするためのレイアウト情報であって、前記複数のプロセッシングエレメ ントの接続情報を含むレイアウト情報をコンピュータにより生成すると共に、前記第 1 のパラメータに関係する前記プロセッシングエレメントに対応する前記メモリ領域への アクセスを可能とするアクセス情報を生成する第 2のステップと、  A computer outputs layout information for mapping a first data path for performing a process including the first function to the at least one circuit section, the layout information including connection information for the plurality of processing elements. A second step of generating access information enabling access to the memory area corresponding to the processing element related to the first parameter;
前記第 1のパラメータが関係する命令を含む前記ソースコードと、前記アクセス情報 とを少なくとも入力として、前記活性化コードをコンピュータにより生成する第 3のステ ップとを有する、生成方法。  A generation method, comprising: a third step of generating the activation code by a computer using at least the source code including an instruction related to the first parameter and the access information as inputs.
[2] 前記データ処理装置は、前記メモリ領域に前記コンフィグレーション情報をセットす ることにより、前記プロセッシングエレメントの機能を制御する制御ユニットを有してお り、 [2] The data processing device has a control unit that controls the function of the processing element by setting the configuration information in the memory area.
前記活性化コードは、前記制御ユニットの実行用プログラムである、請求項 1の生 成方法。  2. The generation method according to claim 1, wherein the activation code is a program for executing the control unit.
[3] 前記第 1の機能は、前記第 1のパラメータにより処理が変更される機能を含み、 前記アクセス情報は、前記第 1のパラメータにより処理が変更される前記プロセッシ ングエレメントの前記メモリ領域のアドレスを含み、  [3] The first function includes a function in which processing is changed by the first parameter, and the access information includes a function in the memory area of the processing element in which processing is changed by the first parameter. Address,
前記命令は、前記第 1のパラメータを変更する命令を含む、請求項 1の生成方法。  2. The generation method according to claim 1, wherein the instruction includes an instruction to change the first parameter.
[4] 前記プロセッシングエレメントは物理的に前記メモリ領域を含んでいる、請求項 1の 生成方法。 [4] The method according to claim 1, wherein the processing element physically includes the memory area.
[5] 前記ソースコードでは、前記第 1の機能はインスタンス形式で記述され、 前記第 2のステップでは、前記第 1の機能をオブジェクト形式で記述したライブラリ 情報を使用し、インスタンス毎の前記メモリ領域へのアクセスを可能とする前記ァクセ ス情報を生成する、請求項 1の生成方法。 [5] In the source code, the first function is described in an instance format, 2. The method according to claim 1, wherein in the second step, the access information that enables access to the memory area for each instance is generated using library information in which the first function is described in an object format. 3. Method.
[6] 前記少なくとも 1つの回路区画は、前記複数のプロセッシングエレメントの接続を変 更することによりデータパスを再構成する接続手段を備え、前記ソースコードは、デ ータパスを再構成する命令を備えており、 [6] The at least one circuit section includes connection means for reconfiguring a data path by changing connections of the plurality of processing elements, and the source code includes an instruction for reconfiguring the data path. Yes,
前記第 2のステップでは、前記第 1のデータパスを再構成するための前記レイアウト 情報と、再構成された前記第 1のデータパスにおける前記メモリ領域へのアクセスを 可能とする前記アクセス情報とを生成する、請求項 1の生成方法。  In the second step, the layout information for reconfiguring the first data path and the access information enabling access to the memory area in the reconfigured first data path are stored. The method of claim 1, wherein the method comprises:
[7] 前記データ処理装置は、前記回路区画の任意の場所にデータパスを再構成する 手段を有しており、 [7] The data processing device has means for reconfiguring a data path at an arbitrary position in the circuit section,
前記第 2のステップでは、前記第 1のデータパスを任意の場所に再構成するための 前記レイアウト情報と、任意の場所に再構成された前記第 1のデータパスにおける前 記メモリ領域の相対的なアドレス情報とを生成する、請求項 6の生成方法。  In the second step, the layout information for reconfiguring the first data path at an arbitrary location and the relative position of the memory area in the first data path reconfigured at an arbitrary location 7. The method according to claim 6, wherein the address information is generated.
[8] 複数のプロセッシングエレメントを接続することにより少なくとも 1つのデータノ スが 形成される少なくとも 1つの回路区画を有し、プロセッシングエレメントにそれぞれ対 応するメモリ領域にコンフィグレーション情報がセットされることにより前記プロセッシン グエレメントの機能が制御されるデータ処理装置におけるレイアウト情報を出力する ためのレイアウト処理をコンピュータにおいて実行するための記述を有するプログラム であって、 [8] At least one circuit block in which at least one data node is formed by connecting a plurality of processing elements, and the configuration information is set in memory areas respectively corresponding to the processing elements. A program having a description for causing a computer to execute a layout process for outputting layout information in a data processing device in which a function of a processing element is controlled, and
前記レイアウト処理では、アプリケーションの少なくとも一部を、第 1のパラメータが 関係する第 1の機能を利用して実行するように生成されたソースコードに対応して、 前記第 1の機能を含む処理を行う第 1のデータパスを、前記少なくとも 1つの回路区 画にマッピングするために、前記複数のプロセッシングエレメントの接続情報を含む 前記レイアウト情報を生成すると共に、前記第 1のパラメータに関係する前記プロセッ シングエレメントに対応する前記メモリ領域へのアクセスを可能とするアクセス情報を 生成する、プログラム。  In the layout process, a process including the first function is performed in response to a source code generated to execute at least a part of an application using a first function related to a first parameter. Generating the layout information including connection information of the plurality of processing elements to map a first data path to be performed to the at least one circuit section, and performing the processing related to the first parameter; A program for generating access information enabling access to the memory area corresponding to an element.
[9] 前記第 1のパラメータに関係する命令を含む前記ソースコードと、前記アクセス情報 とを少なくとも入力として、前記データ処理装置において前記アプリケーションを実行 するための活性ィ匕コードを生成するための処理をコンピュータにおいて実行するため の記述をさらに有する、請求項 8のプログラム。 [9] The source code including an instruction related to the first parameter, and the access information 9. The program according to claim 8, further comprising a description for executing, on a computer, a process for generating an activation code for executing the application in the data processing device, using at least the above as an input.
[10] 前記第 1の機能は前記第 1のパラメータにより処理が変更される機能を含み、 前記アクセス情報は、前記第 1のパラメータにより処理が変更される前記プロセッシ ングエレメントの前記メモリ領域のアドレスを含み、 [10] The first function includes a function whose processing is changed by the first parameter, and the access information includes an address of the memory area of the processing element whose processing is changed by the first parameter. Including
前記命令は、前記第 1のパラメータを変更する命令を含む、請求項 9のプログラム。  10. The program according to claim 9, wherein the instruction includes an instruction to change the first parameter.
[11] 前記ソースコードでは、前記第 1の機能はインスタンス形式で記述され、 [11] In the source code, the first function is described in an instance format.
前記レイアウト処理では、前記第 1の機能をオブジェクト形式で記述したライブラリ 情報を使用し、インスタンス毎の前記メモリ領域へのアクセスを可能とする前記ァクセ ス情報を生成する、請求項 8のプログラム。  9. The program according to claim 8, wherein in the layout processing, the access information that enables access to the memory area for each instance is generated using library information describing the first function in an object format.
[12] 前記少なくとも 1つの回路区画は、前記複数のプロセッシングエレメントの接続を変 更することによりデータパスを再構成する接続手段を備え、前記ソースコードは、デ ータパスを再構成する命令を備えており、 [12] The at least one circuit section includes connection means for reconfiguring a data path by changing a connection of the plurality of processing elements, and the source code includes an instruction for reconfiguring a data path. Yes,
前記レイアウト処理では、前記第 1のデータパスを再構成するための前記レイアウト 情報と、再構成された前記第 1のデータパスにおける前記メモリ領域へのアクセスを 可能とする前記アクセス情報とを生成する、請求項 8のプログラム。  In the layout processing, the layout information for reconfiguring the first data path and the access information for enabling access to the memory area in the reconfigured first data path are generated. The program of claim 8.
[13] 複数のプロセッシングエレメントを接続することにより少なくとも 1つのデータノ スが 形成される少なくとも 1つの回路区画を有し、プロセッシングエレメントにそれぞれ対 応するメモリ領域にコンフィグレーション情報がセットされることにより前記プロセッシン グエレメントの機能が制御されるデータ処理装置によりアプリケーションを実行するた めの活性ィ匕コードを生成する装置であって、 [13] At least one circuit section in which at least one data node is formed by connecting a plurality of processing elements, and the configuration information is set in memory areas respectively corresponding to the processing elements. An apparatus for generating an activation code for executing an application by a data processing apparatus in which a function of a processing element is controlled, the apparatus comprising:
前記アプリケーションの少なくとも一部を、第 1のノ ラメータが関係する第 1の機能を 利用して実行するように生成されたソースコードに対応して、前記第 1の機能を含む 処理を行う第 1のデータパスを前記少なくとも 1つの回路区画にマッピングするための レイアウト情報であって、前記複数のプロセッシングエレメントの接続情報を含むレイ アウト情報と、前記第 1のパラメータに関係する前記プロセッシングエレメントに対応 する前記メモリ領域へのアクセスを可能とするアクセス情報とを生成するレイアウト手 段と、 A first function that performs a process including the first function in accordance with a source code generated to execute at least a part of the application using a first function related to a first parameter; Layout information for mapping the data path of the plurality of processing elements to the at least one circuit section, the layout information including connection information of the plurality of processing elements, and the layout information corresponding to the processing element related to the first parameter. A layout method for generating access information enabling access to the memory area; Steps and
前記第 1のパラメータが関係する命令を含む前記ソースコードと、前記アドレス情報 とを少なくとも入力として、前記活性化コードを生成する手段とを有する生成装置。 前記データ処理装置は、前記メモリ領域に前記コンフィグレーション情報をセットす ることにより、前記プロセッシングエレメントの機能を制御する制御ユニットを有してお り、  A generation device comprising: a source code including an instruction related to the first parameter; and a unit configured to generate the activation code by using at least the address information as input. The data processing device includes a control unit that controls the function of the processing element by setting the configuration information in the memory area.
前記活性化コードは、前記制御ユニットの実行用プログラムである、請求項 13の生 成装置。  14. The generator according to claim 13, wherein the activation code is a program for executing the control unit.
PCT/JP2005/004963 2004-03-19 2005-03-18 Activating code generation method WO2005091160A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006511244A JP4208919B2 (en) 2004-03-19 2005-03-18 Activation code generation method

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2004080000 2004-03-19
JP2004-080000 2004-03-19

Publications (1)

Publication Number Publication Date
WO2005091160A1 true WO2005091160A1 (en) 2005-09-29

Family

ID=34993900

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2005/004963 WO2005091160A1 (en) 2004-03-19 2005-03-18 Activating code generation method

Country Status (2)

Country Link
JP (1) JP4208919B2 (en)
WO (1) WO2005091160A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113348439A (en) * 2019-02-26 2021-09-03 株式会社日立制作所 Application screen display program execution method

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06301522A (en) * 1993-04-09 1994-10-28 Sony Corp Computer system constituting method
JP2000089963A (en) * 1998-09-11 2000-03-31 Canon Inc Data processor and its processing method
WO2002095946A1 (en) * 2001-05-24 2002-11-28 Ip Flex Inc. Integrated circuit device
JP2004040188A (en) * 2002-06-28 2004-02-05 Fujitsu Ltd Integrated circuit and method for developing system

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06301522A (en) * 1993-04-09 1994-10-28 Sony Corp Computer system constituting method
JP2000089963A (en) * 1998-09-11 2000-03-31 Canon Inc Data processor and its processing method
WO2002095946A1 (en) * 2001-05-24 2002-11-28 Ip Flex Inc. Integrated circuit device
JP2004040188A (en) * 2002-06-28 2004-02-05 Fujitsu Ltd Integrated circuit and method for developing system

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113348439A (en) * 2019-02-26 2021-09-03 株式会社日立制作所 Application screen display program execution method

Also Published As

Publication number Publication date
JP4208919B2 (en) 2009-01-14
JPWO2005091160A1 (en) 2008-02-07

Similar Documents

Publication Publication Date Title
Vipin et al. FPGA dynamic and partial reconfiguration: A survey of architectures, methods, and applications
JP4208577B2 (en) Integrated circuit device
JP5270529B2 (en) Reconfigurable multi-process coarse grain array
JP5077597B2 (en) Data processing device
US20230359509A1 (en) Programming Flow for Multi-Processor System
US20050283743A1 (en) Method for generating hardware information
EP1184785A2 (en) System and method for preparing software for execution in a dynamically configurable hardware environment
JP2005182654A (en) Reconfigurable circuit, processing device having reconfigurable circuit, function determination method of logic circuit in reconfigurable circuit, circuit generation method and circuit
WO2006046711A1 (en) Data processing device having reconfigurable logic circuit
JP2010182326A (en) Method for programming mask-programmable logic device and device programmed by the method
WO2002061631A2 (en) System, method and article of manufacture for using a library map to create and maintain ip cores effectively
Otero et al. Dreams: A tool for the design of dynamically reconfigurable embedded and modular systems
US11232247B1 (en) Adaptable dynamic region for hardware acceleration
Gokhale et al. Co-synthesis to a hybrid RISC/FPGA architecture
Silva et al. Support for partial run-time reconfiguration of platform FPGAs
JPH05101141A (en) High-level composition device
JP4208919B2 (en) Activation code generation method
Zamacola et al. An integrated approach and tool support for the design of fpga-based multi-grain reconfigurable systems
JP2002099498A (en) Program performance device and program development support device
Wu et al. Run-time dynamic reconfiguration: a reality check based on FPGA architectures from Xilinx
Neuendorffer FPGA platforms for embedded systems
Nicolescu et al. FPGA Platforms for Embedded Systems
Luchterhandt et al. Towards a Rocket Chip Based Implementation of the RISC-V GPC Architecture
Ortiz et al. Automated Toolchain for Enhanced Productivity in Reconfigurable Multi-accelerator Systems
Yu Automated compilation framework for RISC-V+ CGRA systems

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BW BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE EG ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NA NI NO NZ OM PG PH PL PT RO RU SC SD SE SG SK SL SM SY TJ TM TN TR TT TZ UA UG US UZ VC VN YU ZA ZM ZW

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): GM KE LS MW MZ NA SD SL SZ TZ UG ZM ZW AM AZ BY KG KZ MD RU TJ TM AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IS IT LT LU MC NL PL PT RO SE SI SK TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
WWE Wipo information: entry into national phase

Ref document number: 2006511244

Country of ref document: JP

NENP Non-entry into the national phase

Ref country code: DE

WWW Wipo information: withdrawn in national office

Country of ref document: DE

122 Ep: pct application non-entry in european phase