JP2831741B2 - Storage Element Allocation Support Device in Architecture Synthesis System - Google Patents

Storage Element Allocation Support Device in Architecture Synthesis System

Info

Publication number
JP2831741B2
JP2831741B2 JP1275067A JP27506789A JP2831741B2 JP 2831741 B2 JP2831741 B2 JP 2831741B2 JP 1275067 A JP1275067 A JP 1275067A JP 27506789 A JP27506789 A JP 27506789A JP 2831741 B2 JP2831741 B2 JP 2831741B2
Authority
JP
Japan
Prior art keywords
storage
storage element
allocation
synthesis system
unit
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
JP1275067A
Other languages
Japanese (ja)
Other versions
JPH03137726A (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 JP1275067A priority Critical patent/JP2831741B2/en
Publication of JPH03137726A publication Critical patent/JPH03137726A/en
Application granted granted Critical
Publication of JP2831741B2 publication Critical patent/JP2831741B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Stored Programmes (AREA)

Description

【発明の詳細な説明】 [発明の目的] (産業上の利用分野) 本発明は、ハードウェアのアーキテクチャ設計を支援
するアーキテクチャ合成システムにおける記憶要素割当
て支援装置に関する。
The present invention relates to a storage element allocation support device in an architecture synthesis system that supports hardware architecture design.

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

通常、このアーキテクチャ合成システムにおいては、
設計者は具体的なハードウェア構成を意識することな
く、実現したい処理アルゴリズムのみに着目し、汎用プ
ログラミング言語と同様の構文を用いて、ハードウェア
の仕様を記述する。すると、システムは、このような仕
様記述を入力し、仕様記述に含まれるオペレーションの
順序性、並列性を抽出し、オペレーションの実行順序を
決定(スケジューリング)し、該実行順序にしたがって
オペレーションを行なうために必要なハードウェア資
源、すなわち、演算器,レジスタ,転送路の割当て(デ
ータパス割当て)を行なう。これらスケジューリング及
びデータパス割当てについての一連の処理は、設計者の
介入なしに一定のアルゴリズムに従って自動的に行なわ
れる。例えば、記憶要素の割当てについていえば、次記
文献1),2)に示されるところのクリーク分割の手法や
Left−edge法により、変数が有効である期間(ライフタ
イム)を算出し、ライフタイムの重ならないもの同士を
機械的にマージしてゆく。
Usually, in this architecture synthesis system,
The designer pays attention to only the processing algorithm to be realized without being conscious of the specific hardware configuration, and describes the hardware specifications using the same syntax as that of 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, determines the execution order of the operations (scheduling), and performs the operations in accordance with the execution order. Allocating hardware resources necessary for the operation, that is, computing units, registers, and transfer paths (data path allocation). A series of processes for these scheduling and data path assignment are automatically performed according to a certain algorithm without intervention of a designer. For example, regarding the assignment of storage elements, the clique division method described in the following documents 1) and 2)
By the left-edge method, a period during which the variable is valid (lifetime) is calculated, and those having no overlapping lifetime are mechanically merged.

文献1) M.C.McFarland.A.C.Parker,R.Camposano,“Tutorial
on High−Level Synthesis",25th ACM/IEEE Design Aut
omation Conference,1988,pp330〜336. 文献2) C.J.Tseng,D.P.Siewiorek,“Automated Synthesis of
Data Paths in Digital Systems",IEEE Transactions
on Computer−Aided Design,Vol.CAD−5,NO3,JULY 198
6,pp379〜395. しかし、記憶要素の割当てでは、記憶要素を共有化す
ることによって必要となる転送路の形が変わるので、具
体的には、記憶要素の入力部分にセレクタが必要とな
り、出力のファンアウト数が増加するという問題を含ん
でおり、これらの影響とのトレードオフを考慮しつつ共
有化を行なうことが必要であるが、上記の記憶要素の割
当て方法では、転送路への影響がほとんど考慮されてお
らず、共有化した結果適切なデータパスが生成されない
という問題があった。
Reference 1) MCMcFarland.ACParker, R.Camposano, “Tutorial
on High-Level Synthesis ", 25th ACM / IEEE Design Aut
omation Conference, 1988, pp330-336. Reference 2) CJTseng, DPSiewiorek, “Automated Synthesis of
Data Paths in Digital Systems ", IEEE Transactions
on Computer-Aided Design, Vol.CAD-5, NO3, JULY 198
6, pp379-395. However, in the assignment of storage elements, the shape of the required transfer path changes by sharing the storage elements. Specifically, a selector is required for the input part of the storage element, and The problem is that the number of fan-outs increases, and it is necessary to perform sharing while taking into account the trade-off with these effects. However, there is a problem that an appropriate data path is not generated as a result of sharing.

特に、上記の方法では、各変数についてできる限り共
有化を行なってゆくため、処理の最初の方で選ばれた変
数については、共有化がたくさん行なわれ、その変数と
対応する記憶要素の転送路が複雑になるのに対し、処理
の後の方で選ばれた変数は、あまり共有化がなされず、
バランスの悪いデータパス構成になってしまうという問
題があった。
In particular, in the above method, each variable is shared as much as possible, so that a variable selected at the beginning of the process is shared a lot, and the transfer path of the storage element corresponding to that variable is performed. Becomes more complex, while variables chosen later in the process are less shared,
There is a problem that the data path configuration becomes unbalanced.

また、共有化処理はすべてシステムにまかされている
ため、「変数x,yは同一のレジスタとした方がよさそう
だ」、または「変数x,yは同一のレジスタで実現した
い」、あるいは「変数x,yは同一のレジスタで実現すべ
きではない」といったような設計者の判断や意図に添っ
たデータパス構成を生成することができないという問題
もあった。さらに、設計者が記憶要素共有化後の影響を
も考慮しながら試行錯誤を行なってデータパスを構成し
てゆくというような設計手法をとることができない。
Also, since all sharing processing is left to the system, "it seems better to use the same register for variables x and y", or "I want to implement variables x and y with the same register", or " The variables x and y should not be realized by the same register. " Further, it is impossible to adopt a design method in which a designer performs trial and error while configuring the data path while also considering the influence after sharing the storage element.

その結果、従来のアーキテクチャ合成システムは実際
の設計に使用し難いという問題点があった。
As a result, there is a problem that the conventional architecture synthesis system is difficult to use for actual design.

(発明が解決しようとする課題) 以上のように、従来のアーキテクチャ合成システムに
おいては、設計者がデータパス割当てに介入することが
できず、設計者の意図するデータパスを生成することが
できない、という問題があった。
(Problems to be Solved by the Invention) As described above, in the conventional architecture synthesis system, the designer cannot intervene in the data path allocation, and cannot generate the data path intended by the designer. There was a problem.

そこで、本発明は、アーキテクチャ合成システムにお
いて、特に記憶要素を割当てる過程において、設計者の
意図するデータパスを生成することができるアーキテク
チャ合成システムにおける記憶要素割当て支援装置を提
供することを目的とする。
Therefore, an object of the present invention is to provide a storage element allocation support device in an architecture synthesis system, particularly in an architecture synthesis system capable of generating a data path intended by a designer in a process of allocating storage elements.

[発明の構成] (課題を解決するための手段) 上記課題を解決する本発明は、ハードウェアの仕様記
述を入力し該記述に含まれるオペレーションの順序性や
並列性を抽出しスケジューリング及びデータパス割当て
を行うアーキテクチャ合成システムにおける記憶要素割
当て支援装置において、記憶要素を割当てる手段とし
て、演算の実行スケジュールを記憶するスケジューリン
グ結果記憶手段、必要となるハードウェア資源を記憶す
るハードウェア資源記憶手段、変数または記憶要素の集
合を指定する記憶要素指定手段、前記変数または記憶要
素の集合において記憶要素の共有化が可能である要素の
組を検出する共有可能性検出手段、該手段の検出結果を
表示する検出結果表示手段、記憶要素の割当てを指定す
る割当て指定手段、該手段の指定及び前記共有可能性検
出手段の検出結果にもとづいて前記記憶要素指定手段に
よって指定された集合を対象として記憶要素の割当てを
行なう割当て実行手段をもつことを特徴とする。
[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 a storage element allocation support device in an architecture synthesis system for performing allocation, as a means for allocating storage elements, a scheduling result storage means for storing an execution schedule of an operation, a hardware resource storage means for storing necessary hardware resources, a variable or Storage element designating means for designating a set of storage elements, sharability detecting means for detecting a set of elements in which the storage element can be shared in the variable or the set of storage elements, and detection for displaying a detection result of the means Result display means, assignment designating means for designating the assignment of storage elements, It characterized by having an allocation execution means for performing allocation of storage elements as a target a specified set by Jooyobi the shared possibility detection means detects that said storage element specifying means based on.

(作用) 本発明のアーキテクチャ合成システムにおける記憶要
素割当て支援装置においては、設計者が変数または記憶
要素の集合を指定すると、スケジューリング結果記憶手
段、ハードウェア資源記憶手段により記憶されている情
報をもとに共有可能性検出手段が変数または記憶要素の
集合の要素のうち共有化可能な組を検出し、その内容を
呈示する。この結果、設計者は指定された変数や記憶要
素のうちどれとどれが共有可能であるかという情報を得
ることができ、この情報にもとづいて意図したままに記
憶要素の割当てを行なうことができる。
(Operation) In the storage element allocation support apparatus in the architecture synthesis system of the present invention, when a designer specifies a variable or a set of storage elements, the storage result is based on the information stored in the scheduling result storage means and the hardware resource storage means. , The sharability detecting means detects a sharable set among the variables or elements of the set of storage elements, and presents the contents. As a result, the designer can obtain information as to which of the specified variables and storage elements can be shared, and can allocate storage elements as intended based on this information. .

(実施例) 以下、図面に基づいて本発明の実施例を説明する。第
1図は本発明の一実施例に係わるアーキテクチャ合成シ
ステムにおける記憶要素割当て支援装置の構成を示すブ
ロック図である。
(Example) Hereinafter, an example of the present invention is described based on a drawing. FIG. 1 is a block diagram showing a configuration of a storage element allocation support device in an architecture synthesis system according to one embodiment of the present invention.

本例の記憶要素割当て支援装置は、アーキテクチャ合
成システムの演算の実行スケジュールを記憶するスケジ
ューリング結果記憶部1と、必要となるハードウェア資
源を記憶するハードウェア資源記憶部2と、変数または
記憶要素の集合を指定する記憶要素指定部3と、変数ま
たは記憶要素の集合において記憶要素の共有化が可能で
ある要素の組を検出する共有可能性検出部4と、該手段
4の検出結果を表示する検出結果表示部5と、記憶要素
の割当てを指定する割当て指定部6と、該手段6の指定
及び前記共有可能性検出部4の検出結果にもとづいて前
記記憶要素指定部3によって指定された集合を対象とし
て記憶要素の割当てを行なう割当て実行部7を有する。
また、本例の記憶要素割当て支援装置は、スケジューリ
ング結果記憶部1と記憶要素指定部3との間に配置され
るライフタイム解析部8と、コントロール情報表示部9
と、ハードウェア資源記憶部2と接続されるデータパス
表示部10が設けられている。
The storage element allocation support device of this example includes a scheduling result storage unit 1 that stores an execution schedule of an operation of an architecture synthesis system, a hardware resource storage unit 2 that stores necessary hardware resources, and a variable or storage element. A storage element specifying unit 3 for specifying a set, a sharability detecting unit 4 for detecting a set of variables or a set of elements that can share storage elements in a set of storage elements, and a detection result of the means 4 are displayed. A detection result display unit 5, an assignment designation unit 6 for designating the assignment of storage elements, and a set designated by the storage element designation unit 3 based on the designation of the means 6 and the detection result of the sharability detection unit 4 And an assignment execution unit 7 for assigning a storage element to the target.
Further, the storage element allocation support device of the present example includes a lifetime analysis unit 8 disposed between the scheduling result storage unit 1 and the storage element designation unit 3, and a control information display unit 9
And a data path display unit 10 connected to the hardware resource storage unit 2.

前記スケジューリング結果記憶部1はアーキテクチャ
合成システムの各ステップで実行されるオペレーション
を第2図に示すような有向グラフによって記憶するもの
である。参照符号の添字Mは、メモリであることを意味
する。
The scheduling result storage unit 1 stores operations executed in each step of the architecture synthesis system in a directed graph as shown in FIG. The suffix M of the reference sign means that it is a memory.

第2図に示す有向グラフにおいて、ノードはオペレー
ション、エッジはデータの流れを表す。ノードは、第3
図に凡例として示すように、属性として、オペレーショ
ンのタイプ、オペレーションを実行するステップ、オペ
レーションを実行する演算器の固有番号(id)、結果を
格納する変数名とそのビット幅の記載欄をもつ。オペレ
ーションタイプIのノードは入力変数、オペレーション
タイプOのノードは出力変数を表す。記憶要素名や演算
器idの一部において属性が空白とされている部分は属性
がまだ与えられていないことを示す。なお、入力及び出
力ノードに対するステップはいずれも0としている。
In the directed graph shown in FIG. 2, nodes represent operations, and edges represent data flows. Node is third
As shown in the legend in the figure, the attributes include a type of the operation, a step for executing the operation, a unique number (id) of the operation unit for executing the operation, a variable name for storing the result, and a description column for the bit width thereof. The operation type I node represents an input variable, and the operation type O node represents an output variable. A part where the attribute is blank in a part of the storage element name or the computing unit id indicates that the attribute has not been given yet. The steps for the input and output nodes are both set to 0.

前記ハードウェア資源記憶部2は、割当てられた演算
器や記憶要素の情報を第4図のように記憶する。すなわ
ち、凡例として第5図に示すように、各演算器を使用す
るスケジューリング結果記憶部1のオペレーションや、
各記憶要素に格納されるスケジューリング結果記憶部1
の変数を記憶する。
The hardware resource storage unit 2 stores information on the assigned computing units and storage elements as shown in FIG. That is, as shown in FIG. 5 as a legend, the operation of the scheduling result storage unit 1 using each arithmetic unit,
Scheduling result storage unit 1 stored in each storage element
Is stored.

前記コントロール情報表示部9は、第6図に示すよう
に、スケジューリング結果記憶部1の内容をグラフ形式
でCRT上に表示する。参照符号の添字Dは画面であるこ
とを意味する。第7図に凡例として示すように、この表
示ではノードは演算タイプを示し、この両例には、ステ
ップ番号と演算器idがそれぞれ表示される。またノード
の下方には変数名が表示される。
As shown in FIG. 6, the control information display unit 9 displays the contents of the scheduling result storage unit 1 on a CRT in a graph format. The suffix D of the reference sign means a screen. As shown as a legend in FIG. 7, in this display, the node indicates an operation type, and in both examples, a step number and an operation unit id are displayed, respectively. A variable name is displayed below the node.

前記データパス表示部10は、第8図に示すように、ハ
ードウェア資源記憶部2の資源を用いてスケジューリン
グ結果記憶部1のオペレーションを実行するデータパス
をCRT上に表示する。この表示において、記憶要素の共
有化が行なわれていない変数は入出力変数を除いてそれ
ぞれ変数名と同名の記憶要素として表示する。また、
「e」のように複数のステップで参照される入力変数は
値を保持する記憶要素が必要であると考え、変数名と同
名の記憶要素として表示する。
As shown in FIG. 8, the data path display unit 10 displays, on the CRT, a data path for executing the operation of the scheduling result storage unit 1 using the resources of the hardware resource storage unit 2. In this display, variables whose storage elements are not shared are displayed as storage elements having the same names as the variable names, except for input / output variables. Also,
It is considered that an input variable referred to in a plurality of steps such as “e” needs a storage element to hold a value, and is displayed as a storage element having the same name as the variable name.

前記記憶要素指定部3は、設計者が共有可能性につい
て知りたいと考える変数または記憶要素を指定する部分
である。
The storage element specification unit 3 is a part for specifying a variable or a storage element that the designer wants to know about the sharability.

前記ライフタイム解析部8は、記憶要素指定部3で与
えられた変数または記憶要素のライフタイムを解析する
ものである。
The lifetime analysis unit 8 analyzes the lifetime of a variable or a storage element given by the storage element designating unit 3.

前記共有可能性検出部4は記憶要素指定部3において
指定された変数または記憶要素についてライフタイム解
析結果をもとに共有可能な組合わせを検出するものであ
る。その結果は検出結果表示部5によりCRT上に表示さ
れる。
The sharability detection unit 4 detects a sharable combination based on the lifetime analysis result for the variable or storage element specified by the storage element specification unit 3. The result is displayed on the CRT by the detection result display unit 5.

前記割当て指定部6は、共有可能性検出部4による検
出結果にもとづいて、設計者が記憶要素の割当て指示を
行なう部分である。
The assignment specifying section 6 is a section in which a designer issues a storage element assignment instruction based on the detection result by the sharability detecting section 4.

前記割当て実行部7は割当て指定部6の指定にもとづ
いて記憶要素の割当てを行ない、スケジューリング結果
記憶部1,ハードウェア資源記憶部2の内容を変更するも
のである。
The assignment execution unit 7 assigns storage elements based on the designation of the assignment designation unit 6, and changes the contents of the scheduling result storage unit 1 and the hardware resource storage unit 2.

以上の構成において、スケジューリング結果記憶部1,
ハードウェア資源記憶部2にそれぞれ第2図,第4図に
示す情報が記憶されている場合を考え、以下、具体例を
示す。
In the above configuration, the scheduling result storage unit 1,
Considering the case where the information shown in FIGS. 2 and 4 is stored in the hardware resource storage unit 2, a specific example will be described below.

いま、設計者が記憶要素指定部3において、第6図と
第8図の表示を見ながら、共有化可能性を調べたいと考
えた変数を第9図のコマンドによって指示したとする。
第9図のコマンドは、変数e,f,h,i,jにおいて共有可能
な組合わせを求めるという指定を表す。
Now, it is assumed that the designer designates a variable in the storage element specifying unit 3 with the command of FIG. 9 that the user wants to check the sharability while viewing the display of FIGS.
The command shown in FIG. 9 indicates that a sharable combination is to be obtained for the variables e, f, h, i, j.

すると、前記ライフタイム解析部8は、指定された変
数e,f,h,i,jに関して代入と参照が行なわれるステップ
を求め、第11図に示すライフタイムテーブルLTTを作成
する。すなわち、まず第10図に示すように、各変数に対
して値が代入されたステップに記号dを、参照が行なわ
れたステップに記号rを入れたテーブルLTを作る。第10
図の横方向は変数または割当てられれた記憶要素を表
し、縦方向はオペレーションの実行ステップを表す。
Then, the lifetime analysis unit 8 finds a step in which substitution and reference are performed for the specified variables e, f, h, i, j, and creates a lifetime table LTT shown in FIG. That is, first, as shown in FIG. 10, a table LT is created in which a symbol d is inserted in a step in which a value is substituted for each variable and a symbol r is inserted in a step in which a reference is made. Tenth
The horizontal direction in the figure represents a variable or an assigned storage element, and the vertical direction represents a step of executing an operation.

次に、第10図の各変数に対して、ステップ1より順に
たどって、第11図に示すように区間[d,r]に記号L,区
間[r,d]に記号D,区間[r,r]に記号L,残った部分に記
号Dを入れ、ライフタイムテーブルLTTを作成する。
Next, for each variable in FIG. 10, following step 1 in order, as shown in FIG. 11, the symbol L is assigned to the interval [d, r], the symbol D is assigned to the interval [r, d], and the interval [r , r], the symbol L is entered into the remaining portion, and a lifetime table LTT is created.

前記共有可能性検出部4は、第11図のライフタイムテ
ーブルLTTから共有化可能な変数の組を検出し、検出結
果表示部5はこれを第13図に示すようなグラフとして表
示する。
The sharability detecting section 4 detects a set of sharable variables from the lifetime table LTT of FIG. 11, and the detection result display section 5 displays this as a graph as shown in FIG.

グラフ作成のアルゴリズムを第12図に示す。 Fig. 12 shows the algorithm for creating a graph.

すなわち、ステップ1201でライフタイムテーブルLTT
に現れる変数をyj(j=1…N)とし、これに対応する
ノードを作り、ステップ1202でj=1として、ステップ
1203でj<Nとなるまで以下の処理を実行する。
That is, in step 1201, the lifetime table LTT
Is a variable that appears in yj (j = 1... N), and a node corresponding to this is created.
The following processing is executed until j <N in 1203.

まず、ステップ1204では、変数yjの記号Lを持つ期間
は1つであるか否かを判別し、1つであればステップ12
07へ移行し、j=j+1とするが、1つでない場合には
ステップ1205へ移行し、k=j+1としてステップ1206
へ移行する。
First, in step 1204, it is determined whether or not one period has the symbol L of the variable yj.
07, j = j + 1 is set, but if there is not one, step 1205 is reached, and k = j + 1 is set, step 1206
Move to.

ステップ1206では、k<Nを判別し、k<Nでない場
合には、ステップ1206へ移行する。
In step 1206, k <N is determined, and if k <N is not satisfied, the process proceeds to step 1206.

ステップ1206でk<Nが判別されると、ステップ1207
へ移行し、変数yjとykが次の<規則1>または<規則2
>を満たすか否かを検討する。
If k <N is determined in step 1206, step 1207
And the variables yj and yk are set to the following <Rule 1> or <Rule 2>
Consider whether or not> is satisfied.

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

<規則2> 変数yj,ykの列において、共に記号Lをもつステップ
が存在し、これらすべてのステップに対し、変数yjはこ
のステップでLが終了し、変数ykはこのステップからL
が始まる。
<Rule 2> In the column of the variables yj and yk, there are steps having the symbol L, and for all these steps, the variable yj ends L at this step, and the variable yk changes from this step to L
Begins.

ステップ1207で規則1または2が満たされた場合に
は、ステップ1208へ移行し、ここでノードyj,ykを結
ぶ。また、満たされない場合は、ステップ1209でk=k
+1としてステップ1206へ返る。
If rule 1 or 2 is satisfied in step 1207, the process proceeds to step 1208, where nodes yj and yk are connected. If not satisfied, k = k in step 1209
Return to step 1206 as +1.

第13図において、グラフのノードは変数を表し、エッ
ジはその両端の変数が記憶要素を共有可能であることを
表す。このグラフによって、設計者は、コマンドで指定
した変数について、「eと共有できる変数はない。」,
「i,f,hは共有可能である。」等の情報を得ることがで
きる。
In FIG. 13, the nodes of the graph represent variables, and the edges represent that the variables at both ends can share storage elements. According to this graph, the designer indicates that there is no variable that can be shared with e for the variable specified by the command.
Information such as "i, f, h can be shared" can be obtained.

いま、設計者が割当て指定部6において、第6図ある
いは第8図と第13図に示すような表示を見ながら、共有
させたい変数を第14図に示すようなコマンドによって指
示できる。第14図のコマンドは変数i,f,hをR1という名
前のレジスタに記憶させることを示す。
Now, the designer can designate a variable to be shared by a command as shown in FIG. 14 while viewing the display as shown in FIG. 6 or FIG. 8 and FIG. The command in FIG. 14 indicates that the variables i, f, and h are stored in a register named R1.

そこで、第14図に示すコマンドが指示されたとする
と、前記割当て実行部7は、まず、第13図に示される変
数間を互いに結ぶエッジがあることをチェックし、これ
らのエッジが1つも存在しない場合または指定された変
数を表すノードが存在しない場合は、割当て指定部6に
おける入力が誤まっていたものとみなし、エラーメッセ
ージをCRT上に出力する。すなわち、searchコマンドの
オペランドとしては、その時点で検出結果表示部5によ
り表示されている変数の部分集合に限るものとする。
Therefore, assuming that the command shown in FIG. 14 is instructed, the assignment execution unit 7 first checks that there are edges connecting the variables shown in FIG. 13, and there is no such edge. In this case, or when there is no node representing the specified variable, it is assumed that the input in the assignment specifying unit 6 has been erroneous, and an error message is output on the CRT. That is, the operand of the search command is limited to a subset of the variables displayed by the detection result display unit 5 at that time.

第13図においては、iとf,iとh,fとhはそれぞれ結ば
れているため、割当て実行部7は、入力が正しかったも
のとし、第14図のコマンドに従って、スケジューリング
結果記憶部1,ハードウェア資源記憶部2の内容を修正す
る。
In FIG. 13, since i and f, i and h, and f and h are connected to each other, the assignment execution unit 7 assumes that the input is correct, and according to the command in FIG. Then, the contents of the hardware resource storage unit 2 are corrected.

この結果としての両記憶部1,2の記憶内容を第15図及
び第16図に示す。第15図においては、変数i,f,hと対応
するノードにレジスタ名R1がセットされ、第16図におい
てはレジスタR1が資源として追加されている。データパ
ス表示部10によって第15図,第16図の情報を表示させた
例を第17図に示す。このように、データ表示部10によっ
て設計者は記憶要素を共有させた結果のデータパスを確
認することができる。
FIGS. 15 and 16 show the storage contents of both storage units 1 and 2 as a result. In FIG. 15, a register name R1 is set to a node corresponding to the variables i, f, h, and in FIG. 16, the register R1 is added as a resource. FIG. 17 shows an example in which the information shown in FIGS. 15 and 16 is displayed by the data path display unit 10. As described above, the data display unit 10 allows the designer to confirm the data path as a result of sharing the storage element.

ここで、記憶要素指定部3において、さらに共有可能
な変数があるか否かを第18図に示すようなコマンドを入
力して調べると、R1は変数i,f,hとみなされるため、ラ
イフタイム解析部8は第19図のライフタイムテーブルLT
Tを作り、検出結果表示部5は第20図のような孤立点の
みから成るグラフをCRT上に表示する。この結果、これ
以上記憶要素の共有化はできないことがわかる。
Here, when the memory element specifying unit 3 checks whether there are any more sharable variables by inputting a command as shown in FIG. 18, R1 is regarded as the variables i, f, h. The time analysis unit 8 uses the life time table LT shown in FIG.
T is generated, and the detection result display unit 5 displays a graph including only isolated points on the CRT as shown in FIG. As a result, it is understood that the storage elements cannot be shared any more.

検出結果表示部5における表示の形式は第13図に示す
ようなグラフに限られず、例えば第21図のマトリックス
のような表形式であってもよい。第21図のマトリックス
において、○が表示されている欄は、その行と列に対応
する変数または記憶要素同士が共有可能であることを表
す。また、検出結果表示部5は、記憶要素指定部3で指
定された変数または記憶要素と共有可能なものを順次列
挙するようにしてもよい。さらに、指定された変数また
は記憶要素の数が多いときは、n個ずつm回に分けて、
例えば、設計者がリターンキーで入力するごとに次のn
個の変数についての結果を表示することもできる。
The display format in the detection result display section 5 is not limited to the graph shown in FIG. 13, but may be a table format such as a matrix shown in FIG. In the matrix of FIG. 21, a column with a circle indicates that variables or storage elements corresponding to the row and column can be shared. Further, the detection result display unit 5 may sequentially list the variables designated by the storage element designation unit 3 or those which can be shared with the storage elements. Further, when the number of designated variables or storage elements is large, the number is divided into n times and m times,
For example, every time the designer inputs with the return key, the next n
You can also display results for individual variables.

本例では、特定の変数や記憶要素についてそれらが共
有化可能であるか否かをシステムに問い合わせ、それら
の共有可能性を知ることができる。それゆえ、この問い
合わせ結果をもとに、記憶要素の割当てを試行錯誤する
ことが可能となる。
In this example, it is possible to inquire the system as to whether or not specific variables and storage elements can be shared, and to know their sharability. Therefore, based on the result of this inquiry, it is possible to perform trial and error allocation of storage elements.

上記実施例では、記憶要素の共有化を実行する場合、
記憶要素指定部3とは別に割当て指定部6において再度
指示を行なうものとしたが、共有可能性検出部4におい
て、記憶要素指定部3における1つのコマンドで指定さ
れた変数や記憶要素が同一の記憶要素により実現可能で
あると判断された場合は、割当て実行部7を自動的に起
動させることも可能である。
In the above embodiment, when the storage element is shared,
Although the assignment is specified again in the assignment specifying unit 6 separately from the storage element specifying unit 3, in the sharability detecting unit 4, the variable and the storage element specified by one command in the storage element specifying unit 3 are the same. When it is determined that the assignment can be realized by the storage element, the assignment execution unit 7 can be automatically started.

また、従来の自動的な方法を組み合わせて用いること
もできる。すなわち、設計者が「このような構成にしな
ければならない。」等と考える部分については、記憶要
素指定部3で問い合わせを行なって共有化可能性を調べ
た後、割当て指定部7においてマニュアルで指定し、他
の部分については、従来からのアルゴリズムによってシ
ステムが適当に割当てるようにすれば、設計者の意図に
添った記憶要素の割当てを効率よく行なうことができ
る。
Also, conventional automatic methods can be used in combination. In other words, for the part that the designer considers to be "such a configuration must be made" or the like, the storage element specifying unit 3 makes an inquiry to check the sharability, and then manually specifies it in the allocation specifying unit 7. If the other parts are appropriately assigned by the system using a conventional algorithm, storage elements can be efficiently assigned according to the intention of the designer.

さらに、この場合、割当て指定部6において、設計者
が以降の処理における共有化を禁止することを指定する
こともできる。例えば、設計者が第13図の判定結果のグ
ラフと第8図の表示を見て、「変数iとhは共有化して
欲しくない。」と考えた場合、割当て実指定部6におい
て、例えば、 umrg i,h; とその旨指定することにより、割当て実行部6にスケジ
ューリング結果記憶部1の変数i,hのノードの属性とし
て共有化を禁止するノードのidをセット(例えば、第21
図に示すノード10に7を、ノード7に10をセット)さ
せ、以降の処理において、この属性情報を参照して共有
化を行なうか否かを判断させることもできる。
Further, in this case, the designer can specify in the assignment specifying section 6 that the sharing in the subsequent processing is prohibited. For example, when the designer looks at the graph of the determination result of FIG. 13 and the display of FIG. 8, and thinks that “I do not want the variables i and h to be shared,” By designating umrg i, h; to that effect, the id of the node whose sharing is prohibited is set as the attribute of the node of the variable i, h in the scheduling result storage unit 1 in the assignment execution unit 6 (for example, 21st
The node 10 shown in the figure is set to 7 and the node 7 is set to 10), and in the subsequent processing, it can be determined whether or not to perform sharing by referring to this attribute information.

また、設計者が記憶要素指定部3において1つのコマ
ンドで指定した変数や記憶要素のみを対象として、シス
テムが従来からのアルゴリズムによって自動的に割当て
を行うようにすることもできる。これにより、システム
によって行われる共有化の対象となる範囲をコントロー
ルすることも可能となる。
In addition, the system can automatically assign only variables and storage elements specified by a single command in the storage element specifying unit 3 by the designer using a conventional algorithm. As a result, it becomes possible to control a range to be shared by the system.

本発明は、上記実施例に限定されるものではなく、そ
の要旨を逸脱しない範囲で適宜変形して実施できる。
The present invention is not limited to the above embodiment, and 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, based on an input of a storage element desired to be shared, it is determined whether or not the sharing is actually possible, and then the combination is appropriately determined. Since it is a storage element allocation support device in an architecture synthesis system that is presented and accepts an arbitrary sharing designation, it is possible to easily design a storage element allocation as intended by a designer.

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

第1図は本発明の一実施例に係るアーキテクチャ合成シ
ステムにおける記憶要素割当て支援装置のブロック図、
第2図はスケジューリング記憶部の記憶内容の説明図、
第3図はその凡例の説明図、第4図はハードウェア資源
記憶部の記憶内容を示す説明図、第5図はその凡例の説
明図、第6図はコントロール情報表示部の表示例を示す
説明図、第7図はその凡例の説明図、第8図はデータパ
ス表示部の表示例の説明図、第9図は記憶要素指定部に
おけるコマンドの説明図、第10図はライフタイムテーブ
ル作成のためのテーブルの説明図、第11図はライフタイ
ムテーブルの説明図、第12図は共有可能性を示すグラフ
の作成手順を示すフローチャート、第13図は検出結果表
示部の表示例の説明図、第14図は割当て指定部の記憶要
素共有化のコマンドの説明図、第15図は共有化コマンド
実行後のスケジューリング結果記憶部の記憶内容の説明
図、第16図は同コマンド実行後のハードウェア資源記憶
部の記憶内容の説明図、第17図は同コマンド実行後のデ
ータパス表示部の表示例の説明図、第18図は共有可能性
を調べるためのコマンドの説明図、第19図はライフタイ
ム解析結果の説明図、第20図は検出結果表示部の共有可
能性がなかった場合の表示例を示す説明図、第21図は検
出結果表示部の他の表示例を示す説明図である。 1……スケジューリング結果記憶部 2……ハードウェア資源記憶部 3……記憶要素指定部 4……共有可能性検出部 5……検出結果表示部 6……割当て指定部 7……割当て実行部 8……ライフタイム解析部 9……コントロール情報表示部 10……データパス表示部
FIG. 1 is a block diagram of a storage element allocation support device in an architecture synthesis system according to one embodiment of the present invention;
FIG. 2 is an explanatory diagram of storage contents of a scheduling storage unit,
FIG. 3 is an explanatory diagram of the legend, FIG. 4 is an explanatory diagram showing contents stored in a hardware resource storage unit, FIG. 5 is an explanatory diagram of the legend, and FIG. 6 is a display example of a control information display unit. FIG. 7 is an explanatory diagram of the legend, FIG. 8 is an explanatory diagram of a display example of a data path display unit, FIG. 9 is an explanatory diagram of a command in a storage element designating unit, and FIG. Diagram for the table for FIG. 11, FIG. 11 is a diagram for explaining the lifetime table, FIG. 12 is a flowchart showing a procedure for creating a graph indicating sharability, FIG. 13 is a diagram for explaining a display example of a detection result display section FIG. 14 is an explanatory diagram of a command for sharing a storage element of an assignment specifying unit, FIG. 15 is an explanatory diagram of storage contents of a scheduling result storage unit after execution of a sharing command, and FIG. Explanatory drawing of the storage contents of the ware resource storage unit FIG. 17 is an explanatory diagram of a display example of a data path display section after executing the command, FIG. 18 is an explanatory diagram of a command for checking sharability, FIG. 19 is an explanatory diagram of a lifetime analysis result, FIG. FIG. 21 is an explanatory view showing a display example when there is no possibility of sharing the detection result display section, and FIG. 21 is an explanatory view showing another display example of the detection result display section. DESCRIPTION OF SYMBOLS 1 ... Scheduling result storage part 2 ... Hardware resource storage part 3 ... Storage element designation part 4 ... Shareability detection part 5 ... Detection result display part 6 ... Assignment designation part 7 ... Assignment execution part 8 ...... Lifetime analysis unit 9 Control information display unit 10 Data path display unit

Claims (2)

(57)【特許請求の範囲】(57) [Claims] 【請求項1】ハードウェアの仕様記述を入力し該記述に
含まれるオペレーションの順序性や並列性を抽出しスケ
ジューリング及びデータパス割当てを行うアーキテクチ
ャ合成システムにおける記憶要素割当て支援装置におい
て、記憶要素を割当てる手段として、演算の実行スケジ
ュールを記憶するスケジューリング結果記憶手段、必要
となるハードウェア資源を記憶するハードウェア資源記
憶手段、変数または記憶要素の集合を指定する記憶要素
指定手段、前記変数または記憶要素の集合において記憶
要素の共有化が可能である要素の組を検出する共有可能
性検出手段、該手段の検出結果を表示する検出結果表示
手段、記憶要素の割当てを指定する割当て指定手段、該
手段の指定及び前記共有可能性検出手段の検出結果にも
とづいて前記記憶要素指定手段によって指定された集合
を対象として記憶要素の割当てを行なう割当て実行手段
をもつことを特徴とするアーキテクチャ合成システムに
おける記憶要素割当て支援装置。
1. A storage element allocation support device 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, a scheduling result storage means for storing an execution schedule of the operation, a hardware resource storage means for storing necessary hardware resources, a storage element designating means for designating a set of variables or storage elements, Sharability detecting means for detecting a set of elements which can share storage elements in a set, detection result display means for displaying detection results of the means, allocation specifying means for specifying allocation of storage elements, The storage based on the designation and the detection result of the sharability detection means. Storage element assigned supporting device in the architecture synthesis system, characterized in that with assignment execution means for performing allocation of storage elements as a target a specified set by element specifying means.
【請求項2】請求項1に記載のアーキテクチャ合成シス
テムにおける記憶要素割当て支援装置において、前記ア
ーキテクチャ合成システムが記憶要素割当てを自動的に
行う手段を備える場合、前記割当て指定手段は、変数ま
たは記憶要素に対する共有化を禁止する指定を行なうこ
とができることを特徴とするアーキテクチャ合成システ
ムにおける記憶要素割当て支援装置。
2. The storage element allocation support device in an architecture synthesis system according to claim 1, wherein, when said architecture synthesis system includes means for automatically allocating storage elements, said allocation designation means includes a variable or a storage element. A storage element allocation support device in an architecture synthesis system characterized in that designation for prohibiting sharing of a storage element can be performed.
JP1275067A 1989-10-24 1989-10-24 Storage Element Allocation Support Device in Architecture Synthesis System Expired - Fee Related JP2831741B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP1275067A JP2831741B2 (en) 1989-10-24 1989-10-24 Storage Element Allocation Support Device in Architecture Synthesis System

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP1275067A JP2831741B2 (en) 1989-10-24 1989-10-24 Storage Element Allocation Support Device in Architecture Synthesis System

Publications (2)

Publication Number Publication Date
JPH03137726A JPH03137726A (en) 1991-06-12
JP2831741B2 true JP2831741B2 (en) 1998-12-02

Family

ID=17550379

Family Applications (1)

Application Number Title Priority Date Filing Date
JP1275067A Expired - Fee Related JP2831741B2 (en) 1989-10-24 1989-10-24 Storage Element Allocation Support Device in Architecture Synthesis System

Country Status (1)

Country Link
JP (1) JP2831741B2 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5396923B2 (en) * 2009-03-06 2014-01-22 株式会社リコー Embedded program development system

Also Published As

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

Similar Documents

Publication Publication Date Title
US5287449A (en) Automatic program generation method with a visual data structure display
US5005119A (en) User interactive control of computer programs and corresponding versions of input/output data flow
JPH0786819B2 (en) Tree structure display method
JP6568017B2 (en) Test support apparatus and test support method
CN109885580A (en) A kind of hot spot account batch updating method, apparatus, server and storage medium
JP2831741B2 (en) Storage Element Allocation Support Device in Architecture Synthesis System
US7134114B2 (en) Apparatus, method, and program product for supporting programming
Jiang Analysis and Discussion of Radar Construction Problems with Greedy Algorithm
JP3476688B2 (en) Netlist generation method and netlist generation device
JP2831726B2 (en) Memory element allocation support device
JPH0588863A (en) Program development supporting system
JP2831721B2 (en) Arithmetic unit assignment device
JP2831742B2 (en) Architecture synthesis system
RU2802777C1 (en) Method for distributing data over memory levels of a computing system with multi-level shared memory
JP3065707B2 (en) Design support system
JP3801343B2 (en) Design specification creation support device
EP0315172A2 (en) Automatic program generation method with a visual data structure display
JPH07141137A (en) Method for selecting menu
JP3086087B2 (en) Drawing creation method
JPH07192041A (en) Design data management equipment
JP3266609B2 (en) Program creation device
JP2831816B2 (en) Display device for correspondence between design information
US20070100895A1 (en) Data maintenance apparatus, data maintenance method, and data maintenance system
JP3394353B2 (en) Machine instruction scheduling device
JPH11272524A (en) Data converter and storage medium

Legal Events

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