JPH0470931A - Arithmetic allocation method for logical synthesization - Google Patents

Arithmetic allocation method for logical synthesization

Info

Publication number
JPH0470931A
JPH0470931A JP2176291A JP17629190A JPH0470931A JP H0470931 A JPH0470931 A JP H0470931A JP 2176291 A JP2176291 A JP 2176291A JP 17629190 A JP17629190 A JP 17629190A JP H0470931 A JPH0470931 A JP H0470931A
Authority
JP
Japan
Prior art keywords
blocks
intermediate code
block
arithmetic
allocation
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2176291A
Other languages
Japanese (ja)
Other versions
JPH0782440B2 (en
Inventor
Hitoshi Araki
均 荒木
Ryuichi Mato
隆一 間藤
Mineo Tateno
舘野 峰夫
Takami Motoyama
貴巳 本山
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
National Institute of Advanced Industrial Science and Technology AIST
Original Assignee
Agency of Industrial Science and Technology
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 Agency of Industrial Science and Technology filed Critical Agency of Industrial Science and Technology
Priority to JP2176291A priority Critical patent/JPH0782440B2/en
Publication of JPH0470931A publication Critical patent/JPH0470931A/en
Publication of JPH0782440B2 publication Critical patent/JPH0782440B2/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

  • Multi Processors (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

PURPOSE:To perform the arithmetic allocation in a short time by dividing an intermediate code to attain the parallel processing of the arithmetic allocation. CONSTITUTION:A source interpreting part 1 is provided to evolve a source program into an intermediate code together with a block dividing part 2 which divides the intermediate code into blocks, and a scheduling part 3 which applies the arithmetic allocation to each divided block, and a block integrating part 4 which collects the divided blocks into a single body. Therefore an intermediate code is divided into blocks that have the reduced interactions as much as possible. The arithmetic allocation is carried out to the divided blocks in parallel with each other by means of plural processors. Then these blocks undergone the arithmetic allocation can be collected into a single body. Thus the arithmetic allocation is attained in a short time.

Description

【発明の詳細な説明】 産業上の利用分野 本発明は、論理合成のアルゴリズムの並列性を抽出する
論理合成の演算割り当て方法に関するものである。
DETAILED DESCRIPTION OF THE INVENTION Field of Industrial Application The present invention relates to a logic synthesis operation allocation method for extracting parallelism in a logic synthesis algorithm.

従来の技術 最近、論理合成の分野で、C言語等のシーケンシャルな
プログラムから並列に実行するハードウェアを合成する
ために、アルゴリズムの並列性を抽出する演算割り当て
が盛んに行われるようになってきた。
Conventional technology Recently, in the field of logic synthesis, in order to synthesize hardware that executes in parallel from sequential programs such as C language, calculation assignment that extracts the parallelism of algorithms has become popular. .

従来の論理合成における演算割り当ての方法には、例え
ば、シュミレーティラド・アニーリングを用いた方法が
ある。以下、シュミレーティラドアニーリングを用いた
方法について説明する。
Conventional methods for allocating operations in logic synthesis include, for example, a method using simulated rad annealing. A method using simulated rad annealing will be described below.

まず、現在の温度を設定し、現在の演算割り当てに対す
るコストを計算する0次に、無作為に演算を選び、割り
当てる演算器及びステップを変更したときのコストを計
算する。そして、そのコストが現在のコストよりも低い
ときは演算の割り当てを実際に変更する。現在のコスト
より高いときはコストの差、及び温度番こよって実際に
変更するかしないかを確率的に決定する。温度が高く、
コストの差が小さいほど変更する確率が大きい。変更し
た場合は、そのコストを新たに現在のコストとする。以
上のような変更を行いつつ、徐々に温度を下げる。そし
て、数回続けて演算割り当てが変更されなかった場合は
、その演算割り当てを最終結果とする。
First, the current temperature is set, and the cost for the current operation allocation is calculated. Next, an operation is selected at random, and the cost when the allocated operation units and steps are changed is calculated. Then, when the cost is lower than the current cost, the allocation of operations is actually changed. If the cost is higher than the current cost, it is determined based on the difference in cost and temperature whether or not to actually make the change. The temperature is high;
The smaller the cost difference, the greater the probability of change. If changed, that cost becomes the new current cost. While making the above changes, gradually lower the temperature. If the calculation assignment is not changed several times in a row, that calculation assignment is taken as the final result.

発明が解決しようとする課題 しかし、以上の方法では、割り当てる演算の個数が多く
なればなるほど、変更回数も多くする必要があり、かつ
コストの計算時間も大きくなるため、演算割り当てを行
う実行時間は急激に増大するという課題を有していた。
Problems to be Solved by the Invention However, in the above method, as the number of operations to be allocated increases, the number of changes must also increase, and the time required to calculate the cost also increases. The problem was that it was rapidly increasing.

本発明は上記課題に鑑み、演算割り当てを並列に処理す
ることにより、演算割り当てを短時間で行うことを目的
とする。
In view of the above problems, it is an object of the present invention to perform calculation assignments in a short time by processing the calculation assignments in parallel.

課題を解決するための手段 この目的を達成するために、本発明は、与えられたソー
ス・プログラムの文解釈を行って、中間コードに展開す
るソース解釈部と、中間コードを互いに相互作用が少な
いブロックに分割するブロック分割部と、複数のプロセ
ッサを用いて、並列に各ブロックの演算割り当てを行う
スケジューリング部と、演算割り当てが行われた各ブロ
ックを一つにまとめるブロック統合部から成り、演算割
り当てを並列に処理できるよう中間コードを分割するよ
うに構成されている。
Means for Solving the Problems To achieve this object, the present invention provides a source interpreter that interprets sentences of a given source program and develops it into intermediate code, and a source interpreter that interprets the sentences of a given source program and develops it into intermediate code. It consists of a block dividing unit that divides the blocks into blocks, a scheduling unit that uses multiple processors to allocate calculations to each block in parallel, and a block integration unit that combines the blocks to which calculations have been allocated. The intermediate code is divided so that it can be processed in parallel.

作用 本発明は、前記構成により、中間コードを可能な限り相
互作用が少ないブロックに分割し、複数のプロセッサを
用いて並列に、各ブロックの演算割り当てを実行し、演
算割り当てが行われた各ブロックを一つにまとめること
により、短時間で演算割り当てを行うようにしたもので
ある。
Effect of the present invention With the above configuration, the intermediate code is divided into blocks with as little interaction as possible, and a plurality of processors are used in parallel to execute calculation assignments for each block, and each block to which the calculation assignment has been performed. By combining these into one, calculation assignments can be made in a short time.

実施例 以下、本発明の一実施例について図面を参照しながら説
明する。第1図は、本発明による論理合成の演算割り当
て方法の一実施例を示すブロック図である。第1図にお
いて、1はソースプログラムを中間コードに展開するソ
ース解釈部、2は中間コードをブロックに分割するブロ
ック分割部、3は分割された各ブロックに対して演算割
り当てを行うスケジューリング部、4はブロックを一つ
にまとめるブロック統合部である。
EXAMPLE Hereinafter, an example of the present invention will be described with reference to the drawings. FIG. 1 is a block diagram showing an embodiment of the logical synthesis operation allocation method according to the present invention. In FIG. 1, 1 is a source interpreter that develops a source program into intermediate code, 2 is a block division unit that divides the intermediate code into blocks, 3 is a scheduling unit that assigns operations to each divided block, and 4 is a block integration unit that combines blocks into one.

以上のような第1図の構成において、以下その動作につ
いて第2図に示すフローチャートと共に説明する。
The operation of the configuration shown in FIG. 1 as described above will be explained below with reference to the flowchart shown in FIG. 2.

まず、ソース解釈部1はソース・プログラムの文解釈を
行って中間コードに展開する。
First, the source interpreter 1 interprets the sentences of the source program and develops it into intermediate code.

次に、ブロック分割部2は、互いに相互作用が少ないブ
ロックに中間コードを分割する。互いに相互作用が少な
いブロックとは、中間コードの依存関係から、あるブロ
ックの演算の中で別のブロックで実行できる演算が少な
いブロックである。
Next, the block dividing unit 2 divides the intermediate code into blocks that have little interaction with each other. Blocks that have little interaction with each other are blocks that have a small number of operations that can be executed by another block due to dependencies in intermediate code.

第2図は、このようなブロックに分割すべく、ブロック
分割部2におけるフロー・チャートの例である。
FIG. 2 is an example of a flow chart in the block dividing section 2 for dividing into such blocks.

デー夕・フロー・グラフの作成21は、ソース解釈部1
にて変換された第3図に示すような中間コードから第4
図に示すデータ・フロー・グラフを作成する。即ち、中
間コードri=to」に対応するロードを示す節、中間
コードra=i+tl」に対応する加算を示す節を用意
する。そして、データの依存関係から中間コードra=
i+t1」に対応する加算は中間コードri=toJに
対応するロードよりも後に実行されなければならないの
で、それを矢印で示す。以下同様にして、第4図に示す
データ・フロー・グラフを作成する。
Creation 21 of the data flow graph is performed by the source interpretation unit 1.
From the intermediate code as shown in Fig. 3 converted by
Create the data flow graph shown in the diagram. That is, a clause indicating a load corresponding to the intermediate code ri=to'' and a clause indicating addition corresponding to the intermediate code ra=i+tl are prepared. Then, from the data dependencies, the intermediate code ra=
Since the addition corresponding to "i+t1" must be executed after the load corresponding to the intermediate code ri=toJ, this is indicated by an arrow. In the same manner, the data flow graph shown in FIG. 4 is created.

ステップ範囲の決定22は、データ・フロー・グラフに
もとづいて、各演算について割り当て可能なステ、プ範
囲を決定する。即ち、中間コードを上から順に可能な限
り前のステップに割り当てることにより、第5図(A)
に示すようなステップ割り当“こと、中間コードを下か
ら順に可能な限り後のステップに割り当てることにより
第5図(ロ)に示すようなステップ割り当てを行う。そ
して、第5図(^)で割り当てられ°ζいるステップか
ら第5図(B)で割り当てられているステップまでを演
算のステップ範囲とする。第6図は第5図に示すステッ
プ割り当てから得られるステップ範囲である。
Step range determination 22 determines the step range that can be assigned to each operation based on the data flow graph. That is, by assigning the intermediate code to the step as early as possible in order from the top, as shown in FIG. 5(A).
Step assignment as shown in Figure 5 (b) is performed by assigning the intermediate code from the bottom to the next possible step. Then, in Figure 5 (^) The calculation step range is from the assigned step to the assigned step in FIG. 5(B). FIG. 6 is the step range obtained from the step assignment shown in FIG.

ステップ範囲分布グラフの作成23は、各ステップ間に
ついて、ステップ範囲がそのステップ間を横切る個数を
求めたステップ範囲分布グラフを作成する。例えば、第
6図のステップ範囲からは第7図に示すステップ範囲分
布グラフが作成される。
Step range distribution graph creation 23 creates a step range distribution graph in which the number of step ranges that intersect between each step is calculated. For example, the step range distribution graph shown in FIG. 7 is created from the step range shown in FIG.

ステップ間での分割24は、ステップ範囲分布グラフの
作成23が作成したステップ範囲分布グラフにもとづい
て、ブロックを二分割することを繰り返すことにより、
互いに相互作用が少ない複数のブロックに分割する。ま
ず、ステップ範囲分布グラフが最小のステップ間で分割
する。ただし、分布グラフが最小のステップ間が複数存
在する場合は、それらの中で、分割したときの二つのブ
ロックでの中間コート数の差が最小となるところで分割
する。そして、分割された二つのブロックに対しても同
様に、そのブロック内でステップが最小となるステップ
間で分割する。この処理をブロックに含まれる中間コー
ド数が充分小さくなるまで繰り返す。
The division between steps 24 is performed by repeatedly dividing the block into two based on the step range distribution graph created in step range distribution graph creation 23.
Split into multiple blocks that have little interaction with each other. First, the step range distribution graph is divided between the smallest steps. However, if there are multiple steps where the distribution graph is the minimum, the block is divided at the point where the difference in the number of intermediate coats between the two blocks when divided is the minimum. Similarly, the two divided blocks are divided between the steps that have the minimum steps within the block. This process is repeated until the number of intermediate codes included in the block becomes sufficiently small.

このようにして中間コードがブロックに分割されると、
スケジューリング部3は、各ブロックで独立にシュミレ
ーティラド・アニーリングを用いて演算割り当てを行う
。なお、言うまでもなく、各ブロックの演算割り当ては
、複数のプロセッサを用いて並列に実行される。
When the intermediate code is divided into blocks in this way,
The scheduling unit 3 performs calculation assignment for each block independently using simulated rad annealing. Needless to say, the calculation assignment for each block is executed in parallel using a plurality of processors.

最後に、ブロック統合部4は、演算割り当てが行われた
各ブロックを統合する。
Finally, the block integration unit 4 integrates the blocks to which calculations have been assigned.

以上、本実施例に依れば、ブロック分割部2、ブロック
統合部4を設け、演算割り当てを並列すこ実行すること
により、演算割り当てを短時間に行うことができる。な
お、本実施例では、スケジューリング部3でシュミレー
ティラド・アニーリングを用いて演算削り当てを行った
が、割り当てる演算の個数が多くなるほど、演算割り当
ての実行時間が増大する演算割り当て方法ならば、同様
に効果を得ることができる。
As described above, according to the present embodiment, by providing the block division section 2 and the block integration section 4 and executing the calculation assignment in parallel, the calculation assignment can be performed in a short time. In this embodiment, the scheduling unit 3 performs calculation reduction using simulated rad annealing, but any calculation allocation method in which the execution time of calculation allocation increases as the number of allocated calculations increases, can be similarly applied. effect can be obtained.

発明の効果 以上のように本発明は、与えられたソース・プログラム
の文解釈を行って、中間コードに展開するソース解釈部
と、中間コードを互いに相互作用が少ないブロックに分
割するブロック分割部と、複数のプロセッサを用いて、
並列に各ブロックの演算割り当てを行うスケジューリン
グ部と、演算割り当てが行われた各ブロックを一つにま
とめるブロック統合部から成り、演算割り当てを並列に
処理できるよう中間コードを分割するように構成したの
で、中間コートをブロックに分割し、各プロ、ツタの演
算割り当てを並列に実行するごとにより、演算割り当て
を短時間で行うことができる。
Effects of the Invention As described above, the present invention includes a source interpretation unit that interprets sentences of a given source program and develops it into intermediate code, and a block division unit that divides the intermediate code into blocks that have little interaction with each other. , using multiple processors,
It consists of a scheduling section that assigns operations to each block in parallel, and a block integration section that combines the blocks to which operations have been assigned, and is configured to divide the intermediate code so that operation assignments can be processed in parallel. By dividing the intermediate court into blocks and executing the calculation assignments for each pro and ivy in parallel, the calculation assignments can be made in a short time.

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

第1図は、本発明による論理合成の演算割り当て方法の
一実施例の構成を示ずブロック図、第2図は、本発明に
よる論理合成の演算割り当て方法の一実施例の要部であ
るブロック分割部の動作を示すフローチャート、第3図
は、本発明による論理合成の演算割り当て方法の動作を
説明する中間コードのa倉口、第4図は、本発明による
論理合成の演算割り当て方法の動作を説明するデータフ
ローグラフの概念図、第5図(A)、及び(11)は、
本発明による論理合成の演算割り当て方法の動作を示し
、第5図(A)は、ステップ割り当ての概念図、第5図
(+1)は割り当てられているステップを示す概念図、
第6図は、本発明による論理合成の演算割り当て方法の
動作を説明するステップ範囲の概念図、第7図は、本発
明による論理合成の演算割り当て方法の動作を説明する
ステップ範囲分布グラフのi意向である。 1・・・・・・ソース解釈部、2・・・・・・ブロック
分割部、3・・・・・・スケジューリング部、4・・・
・・・ブロック統合部。 特許出願人 工業技術院長 杉油 賢 第1図 第2図 第3図 1=tO a=i+tl 第4図 に=に’+h
FIG. 1 is a block diagram showing the configuration of an embodiment of the logic synthesis operation assignment method according to the present invention, and FIG. 2 is a block diagram showing a main part of an embodiment of the logic synthesis operation assignment method according to the present invention. FIG. 3 is a flowchart showing the operation of the dividing section, FIG. 3 is an intermediate code illustrating the operation of the operation assignment method for logic synthesis according to the present invention, and FIG. 4 is a flowchart showing the operation of the operation assignment method for logic synthesis according to the present invention. The conceptual diagram of the data flow graph, Figures 5 (A) and (11), explain
5(A) is a conceptual diagram of step assignment, FIG. 5(+1) is a conceptual diagram showing assigned steps,
FIG. 6 is a conceptual diagram of a step range explaining the operation of the operation assignment method for logic synthesis according to the present invention, and FIG. 7 is a step range distribution graph illustrating the operation of the operation assignment method for logic synthesis according to the present invention. It is the intention. 1... Source interpretation section, 2... Block division section, 3... Scheduling section, 4...
...Block integration department. Patent applicant: Director of the Agency of Industrial Science and Technology Ken Sugiyu

Claims (1)

【特許請求の範囲】[Claims] 与えられたソース・プログラムの文解釈を行って、中間
コードに展開するソース解釈部と、前記中間コードを互
いに相互作用が少ないブロックに分割するブロック分割
部と、複数のプロセッサを用いて、並列に各ブロックの
演算割り当てを行うスケジューリング部と、演算割り当
てが行われた各ブロックを一つにまとめるブロック統合
部から成り、演算割り当てを並列に処理できるよう前記
中間コードを分割することを特徴とする論理合成の演算
割り当て方法。
A source interpreter interprets the sentences of a given source program and develops it into intermediate code, and a block divider divides the intermediate code into blocks that have little interaction with each other, using multiple processors in parallel. Logic comprising a scheduling unit that assigns operations to each block, and a block integration unit that combines the blocks to which operations have been assigned, and divides the intermediate code so that the assignments of operations can be processed in parallel. Composite operation assignment method.
JP2176291A 1990-07-05 1990-07-05 Logic synthesis operation allocation method Expired - Lifetime JPH0782440B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2176291A JPH0782440B2 (en) 1990-07-05 1990-07-05 Logic synthesis operation allocation method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2176291A JPH0782440B2 (en) 1990-07-05 1990-07-05 Logic synthesis operation allocation method

Publications (2)

Publication Number Publication Date
JPH0470931A true JPH0470931A (en) 1992-03-05
JPH0782440B2 JPH0782440B2 (en) 1995-09-06

Family

ID=16011022

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2176291A Expired - Lifetime JPH0782440B2 (en) 1990-07-05 1990-07-05 Logic synthesis operation allocation method

Country Status (1)

Country Link
JP (1) JPH0782440B2 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102164217A (en) * 2010-02-10 2011-08-24 夏普株式会社 Image processing device, image forming apparatus, and image processing method
JP2013502642A (en) * 2009-08-18 2013-01-24 インターナショナル・ビジネス・マシーンズ・コーポレーション Decentralized load balancing method and computer program in event-driven system

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63304325A (en) * 1987-06-05 1988-12-12 Hitachi Ltd Parallel compiling system
JPH01287744A (en) * 1988-05-13 1989-11-20 Matsushita Electric Ind Co Ltd Program converting device
JPH02135530A (en) * 1988-11-16 1990-05-24 Fujitsu Ltd Supporting and processing method for program paralleling

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63304325A (en) * 1987-06-05 1988-12-12 Hitachi Ltd Parallel compiling system
JPH01287744A (en) * 1988-05-13 1989-11-20 Matsushita Electric Ind Co Ltd Program converting device
JPH02135530A (en) * 1988-11-16 1990-05-24 Fujitsu Ltd Supporting and processing method for program paralleling

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013502642A (en) * 2009-08-18 2013-01-24 インターナショナル・ビジネス・マシーンズ・コーポレーション Decentralized load balancing method and computer program in event-driven system
US9665407B2 (en) 2009-08-18 2017-05-30 International Business Machines Corporation Decentralized load distribution to reduce power and/or cooling costs in an event-driven system
CN102164217A (en) * 2010-02-10 2011-08-24 夏普株式会社 Image processing device, image forming apparatus, and image processing method

Also Published As

Publication number Publication date
JPH0782440B2 (en) 1995-09-06

Similar Documents

Publication Publication Date Title
US5694602A (en) Weighted system and method for spatial allocation of a parallel load
US9311157B2 (en) Method and apparatus for dynamic resource allocation of processing units on a resource allocation plane having a time axis and a processing unit axis
KR20190049593A (en) Method and apparatus for performing operations in convolutional neural network
US6539542B1 (en) System and method for automatically optimizing heterogenous multiprocessor software performance
US5950170A (en) Method to maximize capacity in IC fabrication
US20210089534A1 (en) System and method for dynamically reallocating resources among multiple task groups in a database system
Hogg et al. Parallel-channel, dual-resource constrained queueing systems with heterogeneous resources
US7454749B2 (en) Scalable parallel processing on shared memory computers
CN110088730B (en) Task processing method, device, medium and equipment
JPH0470931A (en) Arithmetic allocation method for logical synthesization
Francis et al. A parallel partition for enhanced parallel quicksort
CN109977497A (en) Accelerate the parallel method of general purpose radar signal processing flow based on CPU
Garner et al. On the end-user productivity of a pseudo-constrained parallel data refinement method for the advancing front local reconnection mesh generation software
Sood et al. Total airport and airspace model (TAAM) parallelization combining sequential and parallel algorithms for performance enhancement
CN108062249A (en) High in the clouds data allocation schedule method based on big data
Lee et al. Partitioning and scheduling for parallel image processing operations
Wu et al. Mixed mode matrix multiplication
JPH05165397A (en) Scheduling device
Wang et al. A General-Purpose Compiler Design for Instruction-Based AI Accelerator Implementation
Almaaitah et al. Performance-driven scheduling for malleable workloads
CN115204406A (en) Quantum computation simulation method, quantum circuit simulator and related equipment
Kadam et al. Scheduling Tasks in Grid Computing Environments
JPS63189944A (en) Objective program formation processing system
JPH08180112A (en) Scheduling method
Friesen et al. The Modified Splitting Strategy for the Parallel Multisection Algorithm

Legal Events

Date Code Title Description
EXPY Cancellation because of completion of term