JP2831742B2 - Architecture synthesis system - Google Patents

Architecture synthesis system

Info

Publication number
JP2831742B2
JP2831742B2 JP1275068A JP27506889A JP2831742B2 JP 2831742 B2 JP2831742 B2 JP 2831742B2 JP 1275068 A JP1275068 A JP 1275068A JP 27506889 A JP27506889 A JP 27506889A JP 2831742 B2 JP2831742 B2 JP 2831742B2
Authority
JP
Japan
Prior art keywords
execution
history
instruction
architecture
resource 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.)
Expired - Fee Related
Application number
JP1275068A
Other languages
Japanese (ja)
Other versions
JPH03137774A (en
Inventor
雄一 黒澤
貴久 開發
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Corp
Original Assignee
Toshiba Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Toshiba Corp filed Critical Toshiba Corp
Priority to JP1275068A priority Critical patent/JP2831742B2/en
Publication of JPH03137774A publication Critical patent/JPH03137774A/en
Application granted granted Critical
Publication of JP2831742B2 publication Critical patent/JP2831742B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Description

【発明の詳細な説明】 [発明の目的] (産業上の利用分野) 本発明は、ハードウェアのアーキテクチャ合成システ
ムに係わり、特に、設計者がハードウェア資源の割当て
過程を制御することを可能としたものである。
DETAILED DESCRIPTION OF THE INVENTION [Object of the Invention] (Field of Industrial Application) The present invention relates to a hardware architectural synthesis system, and more particularly, to enabling a designer to control a hardware resource allocation process. It was done.

(従来の技術) デジタルシステムの大規模化に伴って、設計効率の向
上を目的とした各種のCADシステムが開発されている。
特に、最近では、機能設計より上位の段階から支援を行
なうシステムとして、ソフトウェアアルゴリズムで表さ
れた仕様を入力として、該アルゴリズムを実現するハー
ドウェア構成を生成するアーキテクチャ合成システムが
実現している。
(Prior Art) With the enlargement of digital systems, various CAD systems have been developed for the purpose of improving design efficiency.
In particular, recently, as a system that provides support from a higher stage than functional design, an architecture synthesis system that receives a specification represented by a software algorithm and generates a hardware configuration that realizes the algorithm has been realized.

通常、このアーキテクチャ合成システムにおいては、
設計者は具体的なハードウェア構成を意識することな
く、実現したい処理アルゴリズムのみを着目し、汎用プ
ログラミング言語と同様の構文を用いてハードウェアの
仕様を記述する。すると、システムは、このような仕様
記述を入力し、仕様記述に含まれるオペレーションの順
序性、並列性を抽出し、オペレーションの実行順序を決
定(スケジューリング)する。そして、該実行順序にし
たがってオペレーションを行なうために必要なハードウ
ェア資源、すなわち、演算器、レジスタ、転送路の資源
割当て(データパス割当て)を行なう。これら一連の処
理は、設計者の介入なしに一定のコルゴリズムに従って
自動的に行なわれる。
Usually, in this architecture synthesis system,
The designer pays attention only to the processing algorithm to be realized without paying attention to the specific hardware configuration, and describes the hardware specifications using a syntax similar to a general-purpose programming language. Then, the system inputs such a specification description, extracts the order and parallelism of the operations included in the specification description, and determines (scheduling) the execution order of the operations. Then, hardware resources necessary for performing the operation in accordance with the execution order, that is, resource allocation (data path allocation) of a computing unit, a register, and a transfer path are performed. These series of processes are automatically performed according to a certain corrugation without the intervention of a designer.

スケジューリングについては、仕様記述された処理を
できるだけ少ないステップで実行できるよう、次記文献
[1]のASAPスケジューリングの手法が用いられ、ま
た、データパス割当てについてはできるだけ資源数を節
約するように、次記文献[2]のクリーク分割の手法が
しばしば用いられる。
For the scheduling, the ASAP scheduling method described in the following document [1] is used so that the process described in the specification can be executed in as few steps as possible. For the data path allocation, the following method is used to reduce the number of resources as much as possible. The clique splitting technique described in Reference [2] is often used.

[文献] [1] M.C.McFarland,A.C.Paker,R.Camposano,“Tuto
rial on High−Level Synthesis",25th ACM/IEEE Desig
n Automation Conference,1988,pp330〜336. [2] C.J.Tseng,D.P.Siewiorek,“Automated Synthe
sis of Data Paths in Digital Systems",IEEE Transac
tions on Computer−Aided Design,Vol.CAD−5,NO3,JUL
Y 1986,pp379〜395. ここで、最速のスケジューリング方法が、システムに
よって自動的に求められることは、これ以上高速にでき
ないという限界を知る意味において設計者にとって有利
であるが、ハードウェアの構造を決定するデータパス割
当て処理までをシステムが一定のアルゴリズムにしたが
って完全に自動的に決めてしまうことは、設計者の思想
を反映することができないという点で問題がある。
[References] [1] MCMcFarland, ACPaker, R. Camposano, “Tuto
rial on High-Level Synthesis ", 25th ACM / IEEE Desig
n Automation Conference, 1988, pp330-336. [2] CJTseng, DPSiewiorek, “Automated Synthe
sis of Data Paths in Digital Systems ", IEEE Transac
tions on Computer-Aided Design, Vol.CAD-5, NO3, JUL
Y 1986, pp379-395. Here, the fact that the fastest scheduling method is automatically determined by the system is advantageous for designers in the sense that the speed cannot be further increased. The fact that the system completely automatically determines the determined data path allocation processing according to a certain algorithm has a problem in that the idea of the designer cannot be reflected.

例えば、設計者が「変数x,yは同一のレジスタとした
方がよさそうだ。」、「演算p,qは同一のALUで実現した
い。」、「変数x,yは同一のレジスタで実現すべきでは
ない。」といった判断や意図に添ってデータパス構成を
生成することができないという問題がある。
For example, the designer says, "It is better to use the same register for variables x and y.", "I want to implement operations p and q with the same ALU.", "I want to implement variables x and y with the same register. The data path configuration cannot be generated in accordance with the determination or intention such as "

また、演算器割当てに関し、演算のオペランドの類似
性等、形式的な情報のみをもとに資源を割当てるため
に、例えば加算と除算を同一演算器に割当てる等、通常
あり得ない演算器構成を生成してしまうという問題がし
ばしば起こる。
In addition, regarding the assignment of arithmetic units, in order to allocate resources based on only formal information such as the similarity of operands of arithmetic operations, for example, assignment of addition and division to the same arithmetic unit is not possible. The problem of generation often arises.

さらに、記憶要素割当てについていえば、記憶要素共
有化の結果必要となるマルチプレクサの増加や記憶要素
のファンアウト数の増加等の転送路への影響を考慮せず
に、変数が有効である期間を示すライフタイムの重なら
ないもの同士を順次可能な限り共有化してゆくため、処
理の最初の方で選ばれた変数については、共有化がたく
さん行なわれ、その変数と対応する記憶要素の転送路が
複雑になるのに対し、処理の後の方で選ばれた変数はあ
まり共有化がなされず、バランスの悪いデータパス構成
になってしまうという問題もあった。
Furthermore, regarding the storage element allocation, the period during which the variable is valid is determined without considering the influence on the transfer path such as the increase in the number of multiplexers and the increase in the number of fan-outs of the storage element required as a result of sharing the storage element. In order to share as much as possible the non-overlapping lifetimes as much as possible, the variables selected at the beginning of the process are shared a lot, and the transfer paths of the storage elements corresponding to the variables are changed. On the other hand, there is a problem that variables selected later in the processing are not shared so much, resulting in an unbalanced data path configuration.

(発明が解決しようとする課題) 上記の如く、従来のアーキテクチャ合成システムにお
いては、ハードウェアの資源割当て問題を、設計者が通
常考えている構成を考慮せずに、短なる組合わせ最適化
問題として自動的に解いているため、設計者の意図する
データパスが生成されないという問題があった。また、
設計者がデータパスを構成してゆくという設計手法をと
ることができないため、設計者の思想を反映させること
ができず実際システムに適合できる設計を行い難いとい
う問題点があった。
(Problems to be Solved by the Invention) As described above, in the conventional architectural synthesis system, the problem of hardware resource allocation can be solved by a short combination optimization problem without considering a configuration usually considered by a designer. As a result, the data path intended by the designer is not generated. Also,
Since a designer cannot take a design method of constructing a data path, there is a problem that it is not possible to reflect a designer's idea and to carry out a design suitable for an actual system.

そこで、本発明は、ハードウェア資源を割当てる過程
において、設計者の思想を反映させることにより、設計
者の意図するデータパス構造を生成することができるア
ーキテクチャ合成システムを提供することを目的とす
る。
Therefore, an object of the present invention is to provide an architecture synthesis system capable of generating a data path structure intended by a designer by reflecting the idea of the designer in a process of allocating hardware resources.

[発明の構成] (課題を解決するための手段) 上記課題を解決する本発明は、ハードウェアの仕様記
述を入力し該記述に含まれるオペレーションの順序性や
並列性を抽出しスケジューリング及びデータパス割当て
を行うアーキテクチャ合成システムにおいて、演算の実
行スケジュールを記憶するスケジューリング結果記憶手
段、必要となるハードウェア資源を記憶するハードウェ
ア資源記憶手段、ハードウェア資源の割当てを行う割当
て実行手段、該割当て過程の履歴を記憶する実行履歴記
憶手段、上記資源割当ての過程を制御する実行制御手
段、操作者側の指示に応じて前記割当て実行手段による
資源の割当て処理の実行を中断させ、その後操作者の思
想を反映させた指示に応じて処理を実行させる指示手段
を備えたことを特徴とする。
[Means for Solving the Problems] According to the present invention for solving the above problems, a hardware specification description is input, the order and parallelism of operations included in the description are extracted, and scheduling and data paths are performed. In an architecture synthesizing system for performing allocation, a scheduling result storage unit for storing an execution schedule of an operation, a hardware resource storage unit for storing required hardware resources, an allocation execution unit for allocating hardware resources, Execution history storage means for storing a history, execution control means for controlling the resource allocation process, interrupting the execution of resource allocation processing by the allocation execution means in response to an instruction from the operator, and then changing the idea of the operator. An instruction unit for executing a process according to the reflected instruction is provided.

(作用) 本発明のアーキテクチャ合成システムでは、ハードウ
ェアの仕様記述を入力し該記述に含まれるオペレーショ
ンの順序性や並列性を抽出し自動的にスケジューリング
及びデータパス割当てを行うと共に、指示手段の指示に
応じて適時中断し、その後操作者の思想を反映させた指
示に応じて処理を実行する。
(Operation) In the architecture synthesis system of the present invention, a hardware specification description is input, the order and parallelism of the operations included in the description are extracted, and scheduling and data path allocation are automatically performed. , And the process is executed in accordance with an instruction reflecting the thought of the operator.

(実施例) 以下、本発明の実施例を説明する。(Example) Hereinafter, an example of the present invention will be described.

第1図は本発明の一実施例に係るアーキテクチャ合成
システムにおいて、特に記憶要素割当て機能の部分を示
すブロック図である。
FIG. 1 is a block diagram showing, in particular, a storage element allocation function in an architecture synthesis system according to an embodiment of the present invention.

図示のように、本例のアーキテクチャ合成システム
は、演算の実行スケジュールを記憶するスケジューリン
グ結果記憶部1と、必要となるハードウェア資源を記憶
するハードウェア資源記憶部2と、ハードウェア資源の
割当てを行う資源割当て実行部3と、該手段3の割当て
過程の履歴を記憶する実行履歴記憶部4と、資源割当て
の過程を制御する実行制御部5と、操作者側の指示に応
じて前記割当て実行部3により資源の割当て処理の実行
を中断させると共にその後操作者の思想を反映させた指
示に応じて処理を実行させる支持部6を備えている。ま
た、生成されたデータパスを表示するデータパス表示部
7と、実行履歴を表示する実行履歴表示部8を備えてい
る。
As shown in the figure, the architecture synthesis system of this example includes a scheduling result storage unit 1 that stores an execution schedule of an operation, a hardware resource storage unit 2 that stores necessary hardware resources, and an assignment of hardware resources. A resource allocation execution unit 3 to perform, an execution history storage unit 4 for storing a history of the allocation process of the means 3, an execution control unit 5 for controlling a resource allocation process, and the execution of the allocation in accordance with an instruction from the operator side A support unit 6 is provided for interrupting the execution of the resource allocation process by the unit 3 and thereafter executing the process according to an instruction reflecting the thought of the operator. Further, a data path display section 7 for displaying the generated data path and an execution history display section 8 for displaying the execution history are provided.

前記スケジューリング結果記憶部1は、各ステップで
実行される演算を第2図のような有向グラフによって記
憶するものである。
The scheduling result storage unit 1 stores the operations executed in each step in a directed graph as shown in FIG.

第2図において、ノードは、演算、エッジはデータの
流れを表す。第3図に凡例を示すように、ノードは属性
として演算のタイプ、演算を実行するステップ、演算を
実行する演算器id、演算結果を格納する変数名とそのビ
ット幅をもつ。演算タイプIのノードは入力変数、演算
タイプOのノードは出力変数を表す。
In FIG. 2, nodes represent operations and edges represent data flows. As shown in the legend in FIG. 3, the node has, as attributes, a type of operation, a step for executing the operation, an operation unit id for executing the operation, a variable name for storing the operation result, and its bit width. The operation type I node represents an input variable, and the operation type O node represents an output variable.

前記ハードウェア資源記憶部2は、割当てられた演算
器や記憶要素の情報を第4図のように記憶する。第5図
にその凡例を示す。Rはレジスタ、Rの属性はレジスタ
名とそれに対応するスケジューリング記憶部1のノード
リストとなっている。
The hardware resource storage unit 2 stores information on the assigned computing units and storage elements as shown in FIG. FIG. 5 shows the legend. R is a register, and the attribute of R is a register name and a corresponding node list in the scheduling storage unit 1.

第4図には、初期値として複数のステップで生きてい
る各変数に変数名と同名の記憶要素を割当てた結果が記
憶されている。
FIG. 4 stores the result of assigning a storage element having the same name as the variable name to each variable alive in a plurality of steps as an initial value.

データパス表示部7はハードウェア資源記憶部2の資
源を用いてスケジューリング結果記憶部1の演算を実行
するデータパスをディスプレイ7D上に表示する。第2図
及び第4図に示した情報をデータパス表示部7により表
示した例を第6図に示す。参照符号の添字Dは画面であ
ることを示す。
The data path display unit 7 displays, on the display 7D, a data path for executing the operation of the scheduling result storage unit 1 using the resources of the hardware resource storage unit 2. FIG. 6 shows an example in which the information shown in FIGS. 2 and 4 is displayed by the data path display unit 7. The suffix D of the reference sign indicates that it is a screen.

前記指示部6は、キーボードなどで構成され、下記の
如きコマンドstop,cont,return,altを用い、資源割当て
実行部3により行なわれる記憶要素の共有化処理過程に
対する指示を行なうものである。
The instructing unit 6 is constituted by a keyboard or the like, and instructs a storage element sharing process performed by the resource allocation executing unit 3 by using the following commands stop, cont, return, and alt.

stop…資源割当ての実行を中断し、その結果のデータパ
スを表示。
stop: Suspend the execution of resource allocation and display the resulting data path.

cont…実行の中断を解除して処理を続ける。cont: Release the suspension of execution and continue processing.

return…資源割当ての状態を以前の状態に戻す。return ... Return the state of resource allocation to the previous state.

alt…以前実行されたものと異なる資源割当て方法を実
行。
alt-Executes a different resource allocation method than previously performed.

前記資源割当て実行部3はハードウェア資源記憶2に
記憶されているidの小さい記憶要素から順にライフタイ
ムの重ならない最小のidをもつ他の記憶要素を求め、共
有化してゆくものである。
The resource allocation execution unit 3 sequentially obtains and shares other storage elements having the minimum ids whose lifetimes do not overlap with each other in order from the storage element with the smallest id stored in the hardware resource storage 2.

前記実行履歴記憶部4は、資源割当て実行部3による
共有化の履歴や実行制御部5に入力された指示を記憶す
るものである。前記実行履歴表示部8は、実行履歴記憶
部4の内容をディスプレイ上に表示するものである。
The execution history storage unit 4 stores a history of sharing by the resource allocation execution unit 3 and an instruction input to the execution control unit 5. The execution history display unit 8 displays the contents of the execution history storage unit 4 on a display.

以上の構成において、スケジューリング結果記憶部
1、ハードウェア資源記憶部2にそれぞれ第2図及び第
4図に示す情報が記憶されているとし、この初期状態に
おいて第4図のレジスタについてライフタイム解析を行
なった結果を第7図に示す。第7図の横方向は変数また
は割当てられた記憶要素を表し、縦方向は演算の実行ス
テップを表す。図中の記号Lは変数が有効な期間を、記
号Dはそうでない期間を表す。
In the above configuration, it is assumed that the information shown in FIGS. 2 and 4 is stored in the scheduling result storage unit 1 and the hardware resource storage unit 2, respectively. The results obtained are shown in FIG. The horizontal direction in FIG. 7 represents a variable or an assigned storage element, and the vertical direction represents an operation execution step. The symbol L in the figure represents a period during which the variable is valid, and the symbol D represents a period during which the variable is not valid.

第7図のライフタイムテーブルLTTから共有化可能な
変数を検出した結果を第8図に示す。第8図において、
グラフのノードはレジスタ(変数)を表し、エッジはそ
の両端のレジスタが共有可能であることを表す。ここ
で、第7図のライフタイムテーブルLTTにおいてレジス
タ(変数)x,yは以下に示す[規則1」,[規則2]の
いずれか一つを満たすとき共有可能であると判定してい
る。
FIG. 8 shows the result of detecting a sharable variable from the lifetime table LTT of FIG. In FIG.
Nodes in the graph represent registers (variables), and edges represent that registers at both ends can be shared. Here, in the lifetime table LTT of FIG. 7, it is determined that the registers (variables) x and y can be shared when one of the following [Rule 1] and [Rule 2] is satisfied.

[規則1]2つの変数x,yの列において、記号Lをもつ
期間が重なっていない。
[Rule 1] In the columns of two variables x and y, the periods having the symbol L do not overlap.

[規則2]2つの変数x,yの列において、ともに記号L
をもつステップが存在し、これらすべてのステップに対
し、xはこのステップでLが終了し、yはこのステップ
からLが始まる。
[Rule 2] In a column of two variables x and y, both symbols L
And for all these steps x ends L at this step and y starts L at this step.

そこで、いま、設計者が第6図のデータパスの表示を
見ながら、変数x2とx7に関する共有化に介入しようと考
え、実行制御部5において次の如きコマンドを入力した
とする。
Therefore, it is assumed that the designer has entered the following command in the execution control unit 5 while looking at the display of the data path in FIG. 6 and intending to intervene in sharing the variables x2 and x7.

>stop x2,x7; >はプロンプトを示す。このコマンドは、変数x2及び
x7に対して共有化が実行された時点で処理を中断し、そ
の時点におけるデータパスを表示するという指示を表
す。
> Stop x2, x7;> indicates a prompt. This command uses the variables x2 and
Indicates that processing is interrupted when sharing is executed for x7 and the data path at that time is displayed.

資源割当て実行部3は、ハードウェア資源記憶部2に
おいてより小さいidをもつレジスタから順に共有化を実
行してゆく。すなわち、第8図のグラフからまず、変数
x1,x4の共有化が実行され、x6はx1及びx4を共有可能で
あるから、次にx1とx6の共有化が実行される。ここで、
idがw1,w2のレジスタを共有化してできたレジスタのid
をmin(w1,w2)とし、実行履歴記憶部8は、w1,w2,min
{w1,w2}の3つの組を記憶する。よって、上記2つの
共有化によって、3つ組(4,7,4),(4,9,4)が記憶さ
れる。
The resource allocation execution unit 3 executes sharing in the hardware resource storage unit 2 in order from a register having a smaller id. That is, from the graph of FIG.
Since x1 and x4 are shared and x6 can share x1 and x4, x1 and x6 are shared next. here,
id of register created by sharing registers with id w1 and w2
Is set to min (w1, w2), and the execution history storage unit 8 stores w1, w2, min
The three sets of {w1, w2} are stored. Therefore, a triple (4,7,4) and (4,9,4) are stored by the above two sharing.

次に、資源割当て実行部3は、変数x2とx5の共有化を
行なう。この時点におけるスケジューリング情報記憶部
1、ハードウェア資源記憶部2、実行履歴記憶部4の記
憶内容を第9図〜第11図にそれぞれ示す。
Next, the resource allocation execution unit 3 shares the variables x2 and x5. The storage contents of the scheduling information storage unit 1, the hardware resource storage unit 2, and the execution history storage unit 4 at this time are shown in FIGS. 9 to 11, respectively.

ここで、実行制御部5は上記のコマンド“stop"によ
り、資源割当て実行部3の処理を中断させ、データパス
表示部7によって、第12図に示すようにデータパスを表
示させる。
Here, the execution control unit 5 interrupts the processing of the resource allocation execution unit 3 by the command "stop", and causes the data path display unit 7 to display the data path as shown in FIG.

いま、設計者が第12図のデータパスの表示を見て、変
数x2の入出力の転送路が望ましくないと判断し、この原
因を調べるために実行履歴表示部8により、第11図の情
報を、ディスプレイ8D上に表示させたとする。この情報
と例えばマルチウィンドウを用いて、別ウィンドウに表
示される第6図の情報から、第6図のデータパスに資源
idが記されているため、変数x2とx5の共有化等が行なわ
れたことがわかる。
Now, the designer looks at the display of the data path in FIG. 12, judges that the transfer path for input / output of the variable x2 is not desirable, and uses the execution history display unit 8 to check the information in FIG. Is displayed on the display 8D. Using this information and the information shown in FIG. 6 displayed in another window using, for example, a multi-window,
Since the id is described, it is understood that the variables x2 and x5 have been shared.

次に、設計者は上記情報により、変数x2とx5の共有化
は行なわない方がよいと判断した場合、表示部6から、
例えば次記のコマンドを入力したとする。
Next, when the designer determines from the above information that it is better not to share the variables x2 and x5,
For example, assume that the following command is input.

>return 1; このreturnコマンドは、オペランドをn(>0)とす
ると実行履歴記憶部4に記憶されているn時点前までの
処理をキャンセルし、その結果のデータパスを表示せよ
という命令を表す。n=1の処理手順を第13図に示す。
> Return 1; This return command represents an instruction to cancel the processing up to the time point n stored in the execution history storage unit 4 and display the resulting data path when the operand is n (> 0). . FIG. 13 shows the processing procedure for n = 1.

第13図において、ステップS1で実行履歴記憶部から最
新の履歴(w1,w2,w3)を得、ステップS2でw3をidとする
ハードウェア資源記憶部2のリストLを得、ステップS3
でw=max(w1,w2)を求め、ステップS4でリストLにお
けるノードリストの最後の要素Zを求める。
In FIG. 13, in step S1, the latest history (w1, w2, w3) is obtained from the execution history storage unit, and in step S2, a list L of the hardware resource storage unit 2 having w3 as id is obtained, and step S3 is performed.
Then, w = max (w1, w2) is obtained, and the last element Z of the node list in the list L is obtained in step S4.

次いで、ステップS5でZをidとしてもつスケジューリ
ング情報記憶部1のノードrの属性の変数名Sを求め、
ステップS6で(w,R(S,(Z))をハードウェア資源記
憶部に追加し、リストLの属性からZを外し、ステップ
S7でノードrの記憶要素名をSとし、ステップS8で結果
のデータパスを表示する。
Next, in step S5, a variable name S of an attribute of the node r of the scheduling information storage unit 1 having Z as id is obtained,
In step S6, (w, R (S, (Z)) is added to the hardware resource storage unit, Z is removed from the attribute of list L, and
In step S7, the storage element name of the node r is set to S, and in step S8, the resulting data path is displayed.

具体的には、ステップS1において、第11図から(w1,w
2,w3)=(5,8,5)を得、ステップS2において第4図か
らリストL=(5,R,(x2,(7,10)))を得るから、ス
テップS3,S4において、w=8,z=10となる。
Specifically, in step S1, (w1, w
(2, w3) = (5,8,5), and the list L = (5, R, (x2, (7,10))) is obtained from FIG. 4 in step S2. Therefore, in steps S3 and S4, w = 8 and z = 10.

よって、第2図からSはx5となり、ステップS6,S7の
実行後、スケジューリング結果記憶部1及びハードウェ
ア資源記憶部2の内容はそれぞれ第14図、第15図のよう
になり、実行履歴記憶部4には第16図のようにキャンセ
ルの履歴が記憶されて、第17図のようなデータパスがデ
ィスプレイ7D上に表示される。
Therefore, S becomes x5 from FIG. 2, and after execution of steps S6 and S7, the contents of the scheduling result storage unit 1 and the hardware resource storage unit 2 are as shown in FIGS. 14 and 15, respectively, and the execution history storage A history of cancellation is stored in the unit 4 as shown in FIG. 16, and a data path as shown in FIG. 17 is displayed on the display 7D.

n≠2の場合は、return 1;のステップS8を除いた処
理手順を実行履歴記憶部4の最近のn個の履歴について
順に行なえばよい。ただし、n個の履歴があるreturnコ
マンドの対象、すなわちreturn m;に対応するm個の履
歴の一部分のみの履歴を含む場合は、例えばreturnコマ
ンド実行後の状態までもどるものとし、あるreturnコマ
ンドの対象のすべてを含むときは、その部分をスキップ
して第13図の処理を実行すればよい。
In the case of n ≠ 2, the processing procedure excluding step S8 of return 1; may be sequentially performed for the latest n histories in the execution history storage unit 4. However, if the target of the return command having n histories, that is, the history of only a part of the m histories corresponding to return m; is included, for example, the state after execution of the return command is returned. When all of the objects are included, that part may be skipped and the processing in FIG. 13 may be executed.

次に、設計者は第17図のデータパスを見て、次記の如
きコマンドを入力したとする。
Next, it is assumed that the designer looks at the data path in FIG. 17 and inputs the following command.

>alt; このコマンドは、実行履歴記憶部5に記憶された以外
の共有化を実行することを表す。すなわち、該コマンド
により、上記の如くキャンセルされた処理を再び実行し
ないように資源割当て実行部3の処理を制御することが
できる。具体的には、資源割当て実行部3は共有化処理
を再開し、まず、x2とx5の共有化を行なおうとするが、
上記altコマンドにより、実行制御部5は、実行履歴記
憶部4に(5,8,5)があることを検出し、資源割当て実
行部3に同一内容の割当ての実行を禁止させる。この結
果、資源割当て実行部3は他の共有化を図り変数x6はx1
と共有化済みであるので、x2とx7の共有化を行なう。
>Alt; This command indicates that sharing other than that stored in the execution history storage unit 5 is performed. That is, the command can control the process of the resource allocation execution unit 3 so as not to execute the process canceled as described above again. Specifically, the resource allocation execution unit 3 restarts the sharing process, and first tries to share x2 and x5.
By the alt command, the execution control unit 5 detects that (5,8,5) exists in the execution history storage unit 4, and causes the resource allocation execution unit 3 to prohibit the execution of the same content allocation. As a result, the resource allocation execution unit 3 attempts another sharing, and the variable x6 becomes x1.
Since x2 and x7 are already shared, x2 and x7 are shared.

ここで前に入力されているstopコマンドによって共有
化の実行を再度中断し、第18図に示すような再検討後の
データパスをディスプレイ7D上に表示させることができ
る。そして、設計者が、該データパスを見ることによ
り、適切な共有化が行なわれていると判断した場合は、
次記の如きコマンドによって、資源割当て実行部3に処
理の続行を指示することができる。
Here, the execution of sharing can be interrupted again by the previously input stop command, and the data path after reconsideration as shown in FIG. 18 can be displayed on the display 7D. When the designer determines that appropriate sharing has been performed by looking at the data path,
The following command can instruct the resource allocation execution unit 3 to continue the processing.

>cont; この場合、資源割当て実行部3は変数x3とx5の共有化
を行なって処理を終了する。この結果のスケジューリン
グ結果記憶部1及びハードウェア資源記憶部2並びに実
行履歴記憶部4の内容を第19図〜第21図にそれぞれ示
す。また、このときのデータパス表示部7による表示結
果を第22図に示す。
>Cont; In this case, the resource allocation execution unit 3 shares the variables x3 and x5 and ends the processing. The contents of the scheduling result storage unit 1, hardware resource storage unit 2, and execution history storage unit 4 are shown in FIGS. 19 to 21, respectively. FIG. 22 shows a display result by the data path display unit 7 at this time.

以上により、本例では、コマンド“stop"により、設
計者が着目した変数に関する共有化が行われた時点で処
理を中断させ、コマンド“return"で所望の時点まで戻
し、コマンド“alt"により同一割当て処理を禁止し、コ
マンド“cont"で別の割当て処理を実行させることがで
きる。
As described above, in the present example, the processing is interrupted at the point in time when the sharing of the variable focused by the designer is performed by the command “stop”, the processing is returned to the desired point in time by the command “return”, and the same is executed by the command “alt”. The assignment process can be prohibited, and another assignment process can be executed by the command “cont”.

したがって、操作者は、中断すべき条件を予めめ設定
しておくことにより、意に沿わない割当て内容を変更
し、実際ハードウェアの都合を考慮して意図した通りの
資源割当てを行うことができる。
Therefore, the operator can change the unintended assignment contents by setting the conditions to be interrupted in advance, and can perform the intended resource assignment in consideration of the actual hardware convenience. .

上記実施例では、実行制御部5において、設計者が着
目した変数に関する共有化が行なわれた時点で中断をか
けられるようにしたが、共有化が行なわれる直前で資源
割当て実行部13の処理を中断させ、その段階のデータパ
スを表示し、共有化が行われようとしている資源を例え
ば、ディスプレイ上でブリンクさせる等の方法により明
示し、設計者にその共有化を許すか否かを入力させるよ
うにしてもよい。
In the above-described embodiment, the execution control unit 5 allows the designer to interrupt when the sharing of the variable of interest is performed, but the processing of the resource allocation execution unit 13 is performed immediately before the sharing is performed. Suspend, display the data path at that stage, specify the resource that is about to be shared by, for example, blinking on the display, etc., and ask the designer to enter whether or not to allow the sharing You may do so.

また、上記実施例では、特定の資源に着目して、資源
割当て実行部3に対し中断をかけられるようにしたが、
例えば、ハードウェア資源量を評価するコスト関数fを
考え、f≦M(Mは定数)となった時点で中断させるこ
ともできる。実行制御部5は資源割当て実行部3によっ
て資源の共有化が行なわれるごとに中断し、その時点に
おけるデータパスを表示させ、設計者に該共有化をキャ
ンセルするか否かを入力させるようにしてもよい。実行
制御部5において、一度設定された中断条件を適宜キャ
ンセルできるようにしてもよい。さらに、実行履歴記憶
部4には過去K時点の履歴のみを入れるようにしてもよ
い。Kは予め設定された定数であり、実行制御部5にお
いてコマンド入力可能時に設定、変更可能としてもよ
い。これによって、例えば、上記実施例中のaltコマン
ドの処理を「過去K時点において行なわれなかったスト
ラテジー(共有化を行なう組合わせの順番)を適用す
る。」とすることができる。
Further, in the above embodiment, the resource allocation execution unit 3 can be interrupted by focusing on a specific resource.
For example, considering a cost function f for evaluating the amount of hardware resources, it is also possible to suspend when f ≦ M (M is a constant). The execution control unit 5 interrupts each time a resource is shared by the resource allocation execution unit 3, displays the data path at that time, and allows the designer to input whether to cancel the sharing. Is also good. The execution control unit 5 may be configured to be able to appropriately cancel the once set interruption condition. Further, only the history at the past K time points may be stored in the execution history storage unit 4. K is a preset constant, and may be set and changed when the execution control unit 5 can input a command. Thereby, for example, the processing of the alt command in the above-described embodiment can be set to “apply a strategy that has not been performed at the past K time points (order of combinations for performing sharing)”.

さらに、スケジューリング情報記憶部1、ハードウェ
ア資源記憶部2はn(≧2)個のデータを記憶できるよ
うにしておき、実行制御部5において、中断させた時点
のデータを記憶可能とすることもできる。また、上記実
施例で説明したaltコマンドの機能によって、種々のス
トラテジーによる設計結果を求め、設計者がそれらのデ
ータパス表示部により表示させて比較し、最適なものを
選び出すといった方法も可能となる。
Furthermore, the scheduling information storage unit 1 and the hardware resource storage unit 2 may be configured to store n (≧ 2) data, and the execution control unit 5 may be able to store the data at the time of interruption. it can. Also, the function of the alt command described in the above embodiment enables a method of obtaining a design result by various strategies, displaying the data on the data path display unit, comparing the data, and selecting an optimum one. .

また、上記実施例では、記憶要素の割当てを取り上げ
たが、他の資源割当て、例えば、演算器の割当て、転送
路の共有化バス割当て)であってもよい。
Further, in the above embodiment, the assignment of the storage element has been described, but other resource assignments, for example, assignment of a computing unit, assignment of a shared bus for a transfer path) may be used.

この他、本発明は、その要旨を逸脱しない範囲で適宜
変形して実施できる。
In addition, the present invention can be appropriately modified and implemented without departing from the gist thereof.

[発明の効果] 以上詳細に説明したように、本発明によれば、設計者
は、資源割当て実行手段により行なわれる資源割当て処
理を任意の条件及び任意の時点で中断し、その時点まで
の資源割当て過程を把握した上で、以前に実行された割
当て処理を適宜キャンセルし、以前と異なるストラテジ
ーによって新たに資源割当てを行うこと等が可能とな
り、設計者の意図するところのデータパスを短時間で生
成することが可能となる。
[Effects of the Invention] As described above in detail, according to the present invention, the designer interrupts the resource allocation process performed by the resource allocation execution means at an arbitrary condition and at an arbitrary time, and After grasping the allocation process, it is possible to appropriately cancel the previously executed allocation process and perform a new resource allocation using a different strategy from the previous one, etc., and to shorten the data path intended by the designer in a short time. Can be generated.

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

第1図は本発明の一実施例に係るアーキテクチャ合成シ
ステムのブロック図、第2図はスケジューリング結果記
憶部の記憶内容を示す説明図、第3図はその凡例を示す
説明図、第4図はハードウェア資源記憶部の記憶内容を
示す説明図、第5図はその凡例を示す説明図、第6図は
データパス表示部の表示例を示す説明図、第7図はライ
フタイムテーブルの説明図、第8図はライフタイムテー
ブルを処理して得られる変数間の共有可能性を示すグラ
フの説明図、第9図及び第10図はスケジューリング情報
記憶部及びハードウェア資源記憶部の他の記憶内容をそ
れぞれ示す説明図、第11図は実行履歴表示部の表示例を
示す説明図、第12図は第9図及び第10図に対応するデー
タパス表示部の表示例を示す説明図、第13図はリターン
コマンドの処理手順を示すフローチャート、第14図及び
第15図並びに第16図はリターンコマンド実行後のスケジ
ューリング結果記憶部及びハードウェア資源記憶部並び
に実行履歴記憶部の記憶内容をそれぞれ示す説明図、第
17図はそのときのデータパス表示部の表示内容の説明
図、第18図は共有化処理後のデータパス表示例の説明
図、第19図は最終結果のスケジューリング結果記憶部の
記憶内容の説明図、第20図は最終結果のハードウェア資
源記憶部の記憶内容の説明図、第21図は最終結果の実行
記憶部の記憶内容の説明図、第22図は最終結果のデータ
パス表示例の説明図である。 1……スケジューリング結果記憶部 2……ハードウェア資源記憶部 3……資源割当て実行部 4……実行履歴記憶部 5……実行制御部 6……表示部 7……データパス表示部 8……実行履歴表示部
FIG. 1 is a block diagram of an architecture synthesizing system according to an embodiment of the present invention, FIG. 2 is an explanatory diagram showing contents stored in a scheduling result storage unit, FIG. 3 is an explanatory diagram showing a legend, and FIG. FIG. 5 is an explanatory diagram showing a legend, FIG. 6 is an explanatory diagram showing a display example of a data path display unit, and FIG. 7 is an explanatory diagram of a lifetime table. , FIG. 8 is an explanatory view of a graph showing sharability between variables obtained by processing a lifetime table, and FIGS. 9 and 10 are other storage contents of a scheduling information storage unit and a hardware resource storage unit. FIG. 11 is an explanatory diagram showing a display example of an execution history display unit, FIG. 12 is an explanatory diagram showing a display example of a data path display unit corresponding to FIG. 9 and FIG. The figure shows the processing procedure of the return command. FIGS. 14, 15 and 16 are explanatory diagrams showing the contents of a scheduling result storage unit, a hardware resource storage unit, and an execution history storage unit after execution of a return command, respectively.
FIG. 17 is an explanatory diagram of the display contents of the data path display unit at that time, FIG. 18 is an explanatory diagram of a data path display example after the sharing process, and FIG. 19 is an explanation of the storage contents of the final result scheduling result storage unit FIG. 20, FIG. 20 is an explanatory diagram of the storage contents of the hardware resource storage unit of the final result, FIG. 21 is an explanatory diagram of the storage contents of the execution storage unit of the final result, and FIG. 22 is a data path display example of the final result. FIG. 1 scheduling result storage unit 2 hardware resource storage unit 3 resource allocation execution unit 4 execution history storage unit 5 execution control unit 6 display unit 7 data path display unit 8 Execution history display section

Claims (3)

(57)【特許請求の範囲】(57) [Claims] 【請求項1】ハードウェアの仕様記述を入力し該記述に
含まれるオペレーションの順序性や並列性を抽出しスケ
ジューリング及びデータパス割当てを行うアーキテクチ
ャ合成システムにおいて、演算の実行スケジュールを記
憶するスケジューリング結果記憶手段、必要となるハー
ドウェア資源を記憶するハードウェア資源記憶手段、ハ
ードウェア資源の割当てを行う割当て実行手段、該割当
て過程の履歴を記憶する実行履歴記憶手段、上記資源割
当ての過程を制御する実行制御手段、操作者側の指示に
応じて前記割当て実行手段による資源の割当て処理の実
行を中断させ、その後操作者の思想を反映させた指示に
応じて処理を実行させる指示手段を備えたことを特徴と
するアーキテクチャ合成システム。
A scheduling result storage for storing an operation execution schedule in an architecture synthesis system that inputs a hardware specification description, extracts the order and parallelism of operations included in the description, and performs scheduling and data path allocation. Means, hardware resource storage means for storing necessary hardware resources, allocation execution means for allocating hardware resources, execution history storage means for storing a history of the allocation process, execution for controlling the resource allocation process Control means, instruction means for interrupting execution of resource allocation processing by the allocation execution means in accordance with an instruction from the operator side, and thereafter executing processing in accordance with an instruction reflecting the idea of the operator. A featured architectural synthesis system.
【請求項2】請求項1に記載のアーキテクチャ合成シス
テムにおいて、前記指示手段の指示に応じた中断後、前
記実行制御手段は、前記スケジュール結果記憶手段、前
記ハードウェア資源記憶手段による記憶内容を前記実行
履歴記憶手段により記憶される履歴において履歴番号n
(≧1)時点前の状態に戻すことを特徴とするアーキテ
クチャ合成システム。
2. The architecture synthesizing system according to claim 1, wherein, after the interruption according to the instruction of said instruction means, said execution control means stores the contents stored in said schedule result storage means and said hardware resource storage means. The history number n in the history stored by the execution history storage means
(≧ 1) An architecture synthesizing system characterized by returning to a state before the time point.
【請求項3】請求項1に記載のアーキテクチャ合成シス
テムにおいて、前記指示手段の指示に応じた中断後、前
記実行制御手段は、前記実行履歴記憶手段により記憶さ
れる履歴番号n(≧1)時点前までの履歴において出現
するハードウェア資源割当て処理と異なる資源割当て処
理を実行することを特徴とするアーキテクチャ合成シス
テム。
3. The architecture synthesizing system according to claim 1, wherein, after the interruption according to the instruction of said instruction means, said execution control means sets a time point of a history number n (≧ 1) stored in said execution history storage means. An architecture synthesizing system characterized by executing a resource allocation process different from the hardware resource allocation process that appears in the history up to the previous time.
JP1275068A 1989-10-24 1989-10-24 Architecture synthesis system Expired - Fee Related JP2831742B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP1275068A JP2831742B2 (en) 1989-10-24 1989-10-24 Architecture synthesis system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP1275068A JP2831742B2 (en) 1989-10-24 1989-10-24 Architecture synthesis system

Publications (2)

Publication Number Publication Date
JPH03137774A JPH03137774A (en) 1991-06-12
JP2831742B2 true JP2831742B2 (en) 1998-12-02

Family

ID=17550393

Family Applications (1)

Application Number Title Priority Date Filing Date
JP1275068A Expired - Fee Related JP2831742B2 (en) 1989-10-24 1989-10-24 Architecture synthesis system

Country Status (1)

Country Link
JP (1) JP2831742B2 (en)

Also Published As

Publication number Publication date
JPH03137774A (en) 1991-06-12

Similar Documents

Publication Publication Date Title
EA012912B1 (en) Controlling task execution
JPH05265975A (en) Parallel calculation processor
JP2003178170A (en) Transition method to changed process definition in work flow system
JP2001202397A (en) Architecture design supporting system for system-on-chip and architecture generating method
KR102569415B1 (en) Service platform system for generating workflow and workflow generating method
JP2831742B2 (en) Architecture synthesis system
JP5177082B2 (en) Development support device, program
CN110737533B (en) Task scheduling method and device, electronic equipment and storage medium
US20220083703A1 (en) Customizable reinforcement learning of column placement in structural design
JP2831726B2 (en) Memory element allocation support device
JP2831741B2 (en) Storage Element Allocation Support Device in Architecture Synthesis System
JP2776750B2 (en) CAD system design data management method
US20190139180A1 (en) Graphics engine resource management and allocation system
JP2831721B2 (en) Arithmetic unit assignment device
JPH11184828A (en) Test system for multiprocessor system
JPH10247142A (en) System and method for programming process control program
JP3394353B2 (en) Machine instruction scheduling device
WO2023209994A1 (en) System design device, system design method, and recording medium
Baptiste Constraint-based scheduling: Two extensions
JPH03280160A (en) Arithmetic operation scheduling supporting device
JP3080069B2 (en) Job scheduling method
JP6724380B2 (en) Repeat processing control system, repeat processing control method and program
JP4470110B2 (en) High-level synthesis method and system
JPH0229867A (en) Design execution control system
JPH09245092A (en) Method and system for defining and executing work flow

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees