JPH03137726A - Storage element allocation support device in architecture composite system - Google Patents
Storage element allocation support device in architecture composite systemInfo
- Publication number
- JPH03137726A JPH03137726A JP1275067A JP27506789A JPH03137726A JP H03137726 A JPH03137726 A JP H03137726A JP 1275067 A JP1275067 A JP 1275067A JP 27506789 A JP27506789 A JP 27506789A JP H03137726 A JPH03137726 A JP H03137726A
- Authority
- JP
- Japan
- Prior art keywords
- storage
- allocation
- storage element
- storage elements
- variables
- 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
Links
Landscapes
- Stored Programmes (AREA)
Abstract
Description
【発明の詳細な説明】
[発明の目的]
(産業上の利用分野)
本発明は、ハードウェアのアーキテクチャ設計を支援す
るアーキテクチャ合成システムにおける記憶要素割当て
支援装置に関する。DETAILED DESCRIPTION OF THE INVENTION [Object of the Invention] (Industrial Application Field) 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, as digital systems have become larger in scale, various CAD systems have been developed with the aim of improving design efficiency. In particular, recently, architecture synthesis systems have emerged as systems that support functional design from a higher stage, which uses specifications expressed in software algorithms to manually generate the hardware configuration to realize the algorithms. ing.
通常、このアーキテクチャ合成システムにおいては、設
計者は具体的なノ1−ドウエア構成を意識することなく
、実現したい処理アルゴリズムのみに着目し、汎用プロ
グラミング言語と同様の構文を用いて、ハードウェアの
仕様を記述する。すると、システムは、このような仕様
記述を人力し、仕様記述に含まれるオペレーションの順
序性、並列性を抽出し、オペレーションの実行順序を決
定(スケジューリング)シ、該実行順序にしたがってオ
ペレーションを行なうために必要なノ1−ドウエア資源
、すなわち、演算器、レジスタ、転送路の割当て(デー
タパス割当て)を行なう。これらスケジューリング及び
データパス割当てについての一連の処理は、設計者の介
入なしに一定のアルゴリズムに従って自動的に行なわれ
る。例えば、記憶要素の割当てについていえば、次記文
献1)。Normally, in this architecture synthesis system, the designer focuses only on the processing algorithm he or she wants to implement, without being aware of the specific hardware configuration, and writes the hardware specifications using syntax similar to a general-purpose programming language. Describe. Then, the system manually writes such a specification description, extracts the orderliness and parallelism of the operations included in the specification description, determines the execution order of the operations (scheduling), and performs operations according to the execution order. Allocates the necessary hardware resources, ie, arithmetic units, registers, and transfer paths (data path allocation). A series of processes regarding these scheduling and data path assignments are automatically performed according to a certain algorithm without any intervention by the designer. For example, regarding the allocation of storage elements, see the following document 1).
2)に示されるところのクリーク分割の手法やLert
−edge法により、変数が有効である期間(ライフタ
イム)を算出し、ライフタイムの重ならないもの同士を
機械的にマージしてゆく。2) The clique partitioning method shown in 2) and the Lert
The -edge method calculates the period (lifetime) during which variables are valid, and automatically merges those whose lifetimes do not overlap.
文献1)
M、C,MeFar tand 、^、C,Parke
r、R,Camposano。Reference 1) M, C, MeFar tand, ^, C, Parke
r, R, Camposano.
“Tutorial on 111gh−Level
5ynthesis”25th ACM/IEEE D
esign Automat1onConf’eren
ce、1988.pp330〜33B。“Tutorial on 111gh-Level
5ynthesis”25th ACM/IEEE D
esign Automat1onConf'eren
ce, 1988. pp330-33B.
文献2) C,J、Tseng、D、P、5levlorek。Reference 2) C, J, Tseng, D, P, 5levlorek.
“Automated 5ynthesis of D
ata Paths inDigital Syste
ms
IEEE Transactions on CoBu
ter−^idedDesign、Vo1.CAD−5
,NO3,JULY 198B、pp379〜395゜
しかし、記憶要素の割当てでは、記憶要素を共有化する
ことによって必要となる転送路の形が変わるので、具体
的には、記憶要素の入力部分にセレクタが必要となり、
出力のファンアウト数が増加するという問題を含んでお
り、これらの影響とのトレードオフを考慮しつつ共有化
を行なうことが必要であるが、上記の記憶要素の割当て
方法では、転送路への影響がほとんど考慮されておらず
、共有化した結果適切なデータパスが生成されないとい
う問題があった。“Automated 5 synthesis of D
ata Paths in Digital System
ms IEEE Transactions on CoBu
ter-^idedDesign, Vol1. CAD-5
, NO3, JULY 198B, pp379-395゜However, in the allocation of storage elements, the shape of the required transfer path changes by sharing the storage elements, so specifically, it is necessary to assign a selector to the input part of the storage element. It becomes necessary,
This includes the problem of an increase in the number of output fanouts, and it is necessary to carry out sharing while considering the trade-off with these effects. However, the above storage element allocation method There was a problem that little consideration was given to the impact, and as a result of sharing, an appropriate data path was not generated.
特に、上記の方法では、各変数についてできる限り共有
化を行なってゆくため、処理の最初の方で選ばれた変数
については、共有化がたくさん行なわれ、その変数と対
応する記憶要素の転送路が慢雑になるのに対し、処理の
後の方で選ばれた変数は、あまり共有化がなされず、バ
ランスの悪いデータパス構成になってしまうという問題
があった。In particular, in the above method, each variable is shared as much as possible, so the variables selected at the beginning of the process are shared a lot, and the transfer path of the storage element corresponding to that variable is However, variables selected later in the process are not often shared, resulting in an unbalanced data path configuration.
また、共有化処理はすべてシステムにまかされているた
め、「変数x、yは同一のレジスタとした方がよさそう
だ」、または「変数KEYは同一のレジスタで実現した
い」、あるいは「変数X。In addition, since all sharing processing is left to the system, it is possible to say, "It seems better to use the same register for variables x and y," or "I want to implement variable KEY in the same register," or "variable .
yは同一のレジスタで実現すべきではないJといったよ
うな設計者の判断や意図に添ったデータパス構成を生成
することができないという問題もあった。さらに、設計
者が記憶要素共有化後の影響をも考慮しながら試行錯誤
を行なってデータパスを構成してゆくというような設計
手法をとることができない。There is also the problem that it is not possible to generate a data path configuration that meets the designer's judgment and intention, such as y and J, which should not be realized by the same register. Furthermore, it is not possible to use a design method in which a designer configures a data path through trial and error while also taking into account the effects of sharing storage elements.
その結果、従来のアーキテクチャ合成システムは実際の
設計に使用し難いという問題点があった。As a result, the conventional architecture synthesis system has the problem of being difficult to use in actual design.
(発明が解決しようとする課題)
以上のように、従来のアーキテクチャ合成システムにお
いては、設計者がデータパス割当てに介入することがで
きず、設計者の意図するデータパスを生成することがで
きない、という問題があった。(Problems to be Solved by the Invention) As described above, in the conventional architecture synthesis system, the designer cannot intervene in data path allocation, and the data path intended by the designer cannot be generated. There was a problem.
そこで、本発明は、アーキテクチャ合成システムにおい
て、特に記憶要素を割当てる過程において、設計者の意
図するデータパスを生成することができるアーキテクチ
ャ合成システムにおける記憶要素割当て支援装置を11
1+’−することを目的とする。Therefore, the present invention provides a storage element allocation support device for an architecture synthesis system that can generate a data path intended by a designer, especially in the process of allocating storage elements.
The purpose is to achieve 1+'-.
[発明の構成]
(課題を解決するための手段)
上記課題を解決する本発明は、ハードウェアの仕様記述
を人力し該記述に含まれるオペレーションの順序性や並
列性を抽出しスケジューリング及びデータパス割当てを
行うアーキテクチャ合成システムにおける記憶要素割当
て支援装置において、記憶要素を割当てる手段として、
演算の実行スケジュールを記憶するスケジューリング結
果記憶手段、必要となるハードウェア資源を記を伍する
ハードウェア資源記憶手段、変数または記憶要素の集合
を指定する記憶要素指定手段、前記変数または記憶要素
の集合において記憶要素の共有化が可能である要素の組
を検出する共有可能性検出手段、該手段の検出結果を表
示する検出結果表示手段、記憶要素の割当てを指定する
割当て指定手段、該手段の指定及び前記共有可能性検出
手段の検出結果にもとづいて前記記憶要素指定手段によ
って指定された集合を対象として記憶要素の割当てを行
なう割当て実行手段をもっことを特徴とする。[Structure of the Invention] (Means for Solving the Problems) The present invention solves the above problems by manually writing hardware specification descriptions, extracting the order and parallelism of operations included in the descriptions, and determining scheduling and data paths. In a storage element allocation support device in an architecture synthesis system that performs allocation, as a means for allocating storage elements,
Scheduling result storage means for storing an execution schedule of calculations, hardware resource storage means for storing required hardware resources, storage element designation means for designating a set of variables or storage elements, and a collection of the variables or storage elements. sharing possibility detection means for detecting a set of elements for which storage elements can be shared; detection result display means for displaying detection results of the means; allocation specification means for specifying allocation of storage elements; specification of the means. and allocation execution means for allocating storage elements to the set designated by the storage element designation means based on the detection result of the sharing possibility detection means.
(作用)
本発明のアーキテクチャ合成システムにおける記憶要素
割当て支援装置においては、設計者が変数または記憶要
素の集合を指定すると、スケジューリング結果記憶手段
、ハードウェア資源記憶手段により記憶されている情報
をもとに共有可能性検出手段が変数または記憶要素の集
合の要素のうちノ(有化可能な組を検出し、その内容を
呈示する。この結果、設計者は指定された変数や記憶要
素のうちどれとどれが共有可能であるがという情報を得
ることができ、この情報にもとづいて意図したままに記
憶要素の割当てを行なうことができる。(Operation) In the storage element allocation support device in the architecture synthesis system of the present invention, when the designer specifies a variable or a set of storage elements, the information stored in the scheduling result storage means and the hardware resource storage means is used. The shareability detection means detects a set of elements in a set of variables or storage elements and presents the contents.As a result, the designer can select which of the specified variables or storage elements. It is possible to obtain information on which data can be shared and which data can be shared, and to allocate storage elements as intended based on this information.
(実施例)
以下、図面に基づいて本発明の詳細な説明する。第1図
は本発明の一実施例に係わるアーキテクチャ合成システ
ムにおける記憶要素割当て支援装置の構成を示すブロッ
ク図である。(Example) Hereinafter, the present invention will be described in detail based on the drawings. FIG. 1 is a block diagram showing the configuration of a storage element allocation support device in an architecture synthesis system according to an 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 execution schedules for calculations of an architecture synthesis system, a hardware resource storage unit 2 that stores necessary hardware resources, and a storage element allocation support device that stores variables or storage elements. a storage element specifying unit 3 for specifying a set; a sharing possibility detection unit 4 for detecting a set of elements whose storage elements can be shared in a set of variables or storage elements;
a detection result display section 5 for displaying the detection result of , an allocation specification section 6 for specifying the allocation of storage elements, and a storage element specification section based on the specification of the means 6 and the detection result of the sharing possibility detection section 4 It has an allocation execution unit 7 that allocates storage elements to the set specified by 3. Further, the storage element allocation support device of this example includes a lifetime analysis section 8 disposed between the scheduling result storage section 1 and the storage element specification section 3, a control information display section 9, and a hardware resource storage section 2. A data path display section 10 is provided which is connected to.
前記スケジューリング結果記憶部1はアーキテクチャ合
成システムの各ステップで実行されるオペレーションを
第2図に示すような有向グラフによって記憶するもので
ある。参照符号の添字Mは、メモリであることを意味す
る。The scheduling result storage unit 1 stores operations executed at each step of the architecture synthesis system in a directed graph as shown in FIG. The subscript M of the reference sign means memory.
第2図に示す有向グラフにおいて、ノードはオペレーシ
ョン、エツジはデータの流れを表す。ノードは、第3図
に凡例として示すように、属性として、オペレーション
のタイプ、オペレーションを実行するステップ、オペレ
ーションを実行する演算器の固有番号(id)、結果を
格納する変数名とそのビット幅の記載欄をもつ。オペレ
ーションタイプ1のノードは入力変数、オペレーション
タイプOのノードは出力変数を表す。記憶要素名や演算
器idの一部において属性が空白とされている部分は属
性がまだ与えられていないことを示す。なお、入力及び
出力ノードに対するステップはいずれも0としている。In the directed graph shown in FIG. 2, nodes represent operations and edges represent data flows. As shown in the legend in Figure 3, a node has attributes such as the type of operation, the step in which the operation is executed, the unique number (id) of the arithmetic unit that executes the operation, the name of the variable that stores the result, and its bit width. It has a writing column. Nodes of operation type 1 represent input variables, and nodes of operation type O represent output variables. A blank attribute in a part of the storage element name or arithmetic unit ID indicates that the attribute has not been given yet. Note that the steps for input and output nodes are both 0.
前記ハードウェア資源記tti部2は、割当てられた演
算器や記憶要素の情報を第4図のように記憶する。すな
わち、凡例として第5図に示すように、各演算器を使用
するスケジューリング結果記憶部1のオペレーションや
、各記憶要素に格納されるスケジューリング結果記憶部
1の変数を記憶する。The hardware resource recorder tti section 2 stores information on the assigned arithmetic units and storage elements as shown in FIG. That is, as shown in FIG. 5 as a legend, operations of the scheduling result storage section 1 using each arithmetic unit and variables of the scheduling result storage section 1 stored in each storage element are stored.
前記コントロール情報表示部9は、第6図に示すように
、スケジューリング結果記憶部1の内容をグラフ形式で
CRT上に表示する。参照符号の添字りは画面であるこ
とを意味する。第7図に凡例として示すように、この表
示ではノードは演算タイプを示し、この両例には、ステ
ップ番号と演算器idがそれぞれ表示される。またノー
ドの下方には変数名が表示される。The control information display section 9 displays the contents of the scheduling result storage section 1 in a graph format on the CRT, as shown in FIG. A subscript in a reference sign means a screen. As shown as a legend in FIG. 7, in this display, the node indicates the calculation type, and in both examples, the step number and the calculation unit ID are respectively displayed. Also, the variable name is displayed below the node.
前記データパス表示部10は、第8図に示すように、ハ
ードウェア資源記憶部2の資源を用いてスケジューリン
グ結果記憶部1のオペレーションを実行するデータパス
をCRT上に表示する。この表示において、記憶要素の
共有化が行なわれていない変数は入出力変数を除いてそ
れぞれ変数名と同名の記憶要素として表示する。また、
reJのように複数のステップで参照される人力変数は
値を保持する記憶要素が必要であると考え、変数名と同
名の記憶要素として表示する。As shown in FIG. 8, the data path display section 10 displays on the CRT a data path for executing the operation of the scheduling result storage section 1 using the resources of the hardware resource storage section 2. In this display, variables whose storage elements are not shared are each displayed as a storage element with the same name as the variable name, except for input/output variables. Also,
A human variable such as reJ that is referenced in multiple steps is considered to require a storage element to hold the value, and is displayed as a storage element with the same name as the variable name.
前記記憶要素指定部3は、設計者が共有可能性について
知りたいと考える変数または記憶要素を指定する部分で
ある。The storage element specifying section 3 is a section for specifying variables or storage elements that the designer would like to know about the possibility of sharing.
前記ライフタイム解析部8は、記憶要素指定部3で与え
られた変数または記憶要素のライフタイムを解析するも
のである。The lifetime analysis section 8 analyzes the lifetime of the variable or storage element given by the storage element specification section 3.
前記共有可能性検出部4は記憶要素指定部3において指
定された変数または記憶要素についてライフタイム解析
結果をもとに共有可能な組合わせを検出するものである
。その結果は検出結果表示部5によりCRT上に表示さ
れる。The shareability detection unit 4 detects shareable combinations of the variables or storage elements specified by the storage element specification unit 3 based on the lifetime analysis results. The results are displayed on the CRT by the detection result display section 5.
前記割当て指定部6は、共有可能性検出部4による検出
結果にもとづいて、設計者が記憶要素の割当て指示を行
なう部分である。The allocation designation section 6 is a section where the designer issues an instruction to allocate storage elements based on the detection result by the shareability detection section 4.
前記割当て実行部7は割当て指定部6の指定にもとづい
て記憶要素の割当てを行ない、スケジューリング結果記
憶部1.ハードウェア資−源記憶部2の内容を変更する
ものである。The allocation execution section 7 allocates storage elements based on the specifications of the allocation specification section 6, and assigns the storage elements to the scheduling result storage section 1. This is to change the contents of the hardware resource storage section 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 shown below.
いま、設計者が記憶要素指定部3において、第6図と第
8図の表示を見ながら、共有化可能性を調べたいと考え
た変数を第9図のコマンドによって指示したとする。第
9図のコマンドは、変数e。Suppose that the designer, in the storage element specifying unit 3, specifies a variable whose sharability is to be investigated using the command shown in FIG. 9 while looking at the displays shown in FIGS. 6 and 8. The command in FIG. 9 uses the variable e.
f、h、t、jにおいて共有可能な組合わせを求めると
いう指定を表す。Represents a designation to find a combination that can be shared among f, h, t, and j.
すると、前記ライフタイム解析部8は、指定された変数
e、f、h、t、jに関して代入と参照が行なわれるス
テップを求め、第11図に示すライフタイムテーブルL
TTを作成する。すなわち、まず第10図に示すように
、各変数に対して値が代入されたステップに記号dを、
参照が行なわれたステップに記号rを入れたテーブルL
、Tを作る。Then, the lifetime analysis unit 8 determines the steps in which assignments and references are made for the specified variables e, f, h, t, and j, and creates a lifetime table L shown in FIG.
Create TT. That is, as shown in Fig. 10, the symbol d is added to the step where a value is assigned to each variable.
Table L with the symbol r placed in the step where the reference was made
, make T.
第10図の横方向は変数または割当てられれた記憶要素
を表し、縦方向はオペレーションの実行ステップを表す
。The horizontal direction in FIG. 10 represents variables or allocated storage elements, and the vertical direction represents execution steps of operations.
次に、第10図の各変数に対して、ステップ1より順に
たどって、第11図に示すように区間[d、r]に記号
り1区間[r、d]に記号り。Next, for each variable in FIG. 10, follow step 1 in order, and as shown in FIG. 11, mark the interval [d, r] and mark 1 interval [r, d].
区間[r、r]に記号り、残った部分に記号りを入れ、
ライフタイムテーブルLTTを作成する。Mark the interval [r, r], mark the remaining part,
Create a lifetime table LTT.
前記共有可能性検出部4は、第11図のライフタイムテ
ーブルLTTから共有化可能な変数の組を検出し、検出
結果表示部5はこれを第13図に示すようなグラフとし
て表示する。The shareability detection section 4 detects a set of variables that can be shared from the lifetime table LTT shown in FIG. 11, and the detection result display section 5 displays this as a graph as shown in FIG. 13.
グラフ作成のアルゴリズムを第12図に示す。The algorithm for creating the graph is shown in FIG.
すなわち、ステップ1201でライフタイムテーブルL
TTに現れる変数をyj(j−1・・・N)とし、°こ
れに対応するノードを作り、ステップ1202でj−1
として、ステップ1203でjくNとなるまで以下の処
理を実行する。That is, in step 1201, the lifetime table L
Let the variable appearing in TT be yj (j-1...N), create a node corresponding to this, and in step 1202 set j-1
In step 1203, the following process is executed until j<N.
まず、ステップ1204では、変数yjの記号りを持つ
期間は1つであるか否かを判別し、1つであればステッ
プ1207へ移行し、J = J + 1とするが、1
つでない場合にはステップ12o5へ移行し、k−j+
lとしてステップ12o6へ移行する。First, in step 1204, it is determined whether there is one period with the symbol of variable yj. If there is one, the process moves to step 1207, and J = J + 1 is set, but 1
If not, proceed to step 12o5 and k−j+
1, and the process moves to step 12o6.
ステップ1206では、k<Nを判別し、kくNでない
場合には、ステップ1206へ移行する。In step 1206, it is determined whether k<N, and if k<N, the process moves to step 1206.
ステップ1206でk<Nが判別されると、ステップ1
207へ移行し、変数yjとykが次のく規則1〉また
はく規則2〉を満たすか否かを検討する。If k<N is determined in step 1206, step 1
The process moves to 207, and it is examined whether variables yj and yk satisfy the following rule 1> or rule 2>.
く規則1〉
変数yj、ykO列において、記号りをもつ期間が重な
っていない。Rule 1> In the variable yj and ykO sequences, periods with symbols do not overlap.
く規則2〉
変数yj、ykの列において、共に記号りをもつステッ
プが存在し、これらすべてのステップに対し、変数yj
はこのステップでLが終了し、変数ykはこのステップ
からしが始まる。Rule 2> In the sequence of variables yj and yk, there are steps that both have symbols, and for all these steps, the variable yj
At this step, L ends, and the variable yk begins at this step.
ステップ1207で規則1または2が満たされた場合に
は、ステップ1208へ移行し、ここでノードyj、y
kを結ぶ。また、満たされない場合は、ステップ120
9でに−に+1としてステップ1206へ返る。If rule 1 or 2 is satisfied in step 1207, the process moves to step 1208, where nodes yj, y
Connect k. Also, if not satisfied, step 120
At step 9, - is set to +1 and the process returns to step 1206.
第13図において、グラフのノードは変数を表し、エツ
ジはその両端の変数が記憶要素を共有可能であることを
表す。このグラフによって、設計者は、コマンドで指定
した変数について、[eと共有できる変数はない。J+
r’、f+ hは共有可能である。」等の情報を
得ることができる。In FIG. 13, nodes of the graph represent variables, and edges represent that variables at both ends can share a storage element. Using this graph, the designer can check the variables specified by the command [There are no variables that can be shared with e]. J+
r', f+h can be shared. ” and other information.
いま、設計者が割当て指定部6において、第6図あるい
は第8図と第13図に示すような表示を見ながら、共有
させたい変数を第14図に示すよ−うなコマンドによっ
て指示できる。第14図のコマンドは変数t、f、hを
R1という名前のレジスタに記憶させることを示す。Now, the designer can designate variables to be shared using commands as shown in FIG. 14 in the allocation specifying section 6 while viewing the display as shown in FIG. 6, FIG. 8, and FIG. 13. The command in FIG. 14 indicates that variables t, f, and h are to be stored in a register named R1.
そこで、第14図に示すコマンドが指示されたとすると
、前記割当て実行部7は、まず、第13図に示される変
数間を互いに結ぶエツジがあることをチエツクし、これ
らのエツジが1つも存在しない場合または指定された変
数を表すノードが存在しない場合は、割当て指定部6に
おける入力が誤まっていたものとみなし、エラーメツセ
ージをCRT上に出力する。すなわち、5earchコ
マンドのオペランドとしては、その時点で検出結果表示
部5により表示されている変数の部分集合に限るものと
する。Therefore, if the command shown in FIG. 14 is instructed, the allocation execution unit 7 first checks whether there are edges connecting the variables shown in FIG. 13 to each other, and if none of these edges exist. If the node representing the specified variable does not exist, it is assumed that the input in the assignment designation section 6 is incorrect, and an error message is output on the CRT. That is, the operands of the 5search command are limited to a subset of the variables currently displayed by the detection result display section 5.
第13図においては、iとf、iとり、fとhはそれぞ
れ結ばれているため、割当て実行部7は、人力が正しか
ったものとし、第14図のコマンドに従って、スケジュ
ーリング結果記憶部1./%−ドウエア資源記憶部2の
内容を修正する。In FIG. 13, since i and f are connected, and f and h are connected, respectively, the allocation execution unit 7 assumes that the manual input was correct, and according to the command in FIG. 14, the scheduling result storage unit 1. /% - Modify the contents of the hardware resource storage section 2.
この結果としての両記憶部1.2の記憶内容を第15図
及び第16図に示す。第15図においては、変数i、f
、hと対応するノードにレジスタ名R1がセットされ、
第16図においてはレジスタR1が資源として追加され
ている。データパス表示部10によって第15図、第1
6図の情報を表示させた例を第17図に示す。このよう
に、データパス表示部10によって設計者は記憶要素を
共有させた結果のデータパスを確認することができる。The resulting storage contents of both storage units 1.2 are shown in FIGS. 15 and 16. In Figure 15, variables i, f
, the register name R1 is set to the node corresponding to h,
In FIG. 16, register R1 is added as a resource. 15 and 1 by the data path display unit 10.
FIG. 17 shows an example in which the information shown in FIG. 6 is displayed. In this way, the data path display section 10 allows the designer to confirm the data path resulting from sharing storage elements.
ここで、記憶要素指定部3において、さらに共有可能な
変数があるか否かを第18図に示すようなコマンドを人
力して調べると、R1は変数i。Here, when the storage element specifying unit 3 manually checks whether there are any more shareable variables by manually issuing a command as shown in FIG. 18, R1 is the variable i.
f、hとみなされるため、ライフタイム解析部8は第1
9図のライフタイムテーブルLTTを作り、検出結果表
示部5は第20図のような孤立点のみから成るグラフを
CRT上に表示する。この結果、これ以上記憶要素の共
有化はできないことがわかる。f and h, the lifetime analysis unit 8
The lifetime table LTT shown in FIG. 9 is created, and the detection result display section 5 displays a graph consisting of only isolated points as shown in FIG. 20 on the CRT. As a result, it can be seen that storage elements cannot be shared any more.
検出結果表示部5における表示の形式は第13図に示す
ようなグラフに限られず、例えば第21図のマトリック
スのような表形式であってもよい。The display format on the detection result display section 5 is not limited to the graph shown in FIG. 13, but may be in a tabular format such as the matrix shown in FIG. 21, for example.
第21図のマトリックスにおいて、Oが表示されている
欄は、その行と列に対応する変数または記憶要素同士が
共有可能であることを表す。また、検出結果表示部5は
、記憶要素指定部3で指定された変数または記憶要素と
共有可能なものを順次列挙するようにしてもよい。さら
に、指定された変数または記憶要素の数が多いときは、
n個ずつm回に分けて、例えば、設計者がリターンキー
で人力するごとに次のn個の変数についての結果を表示
することもできる。In the matrix of FIG. 21, a column in which O is displayed indicates that variables or storage elements corresponding to that row and column can be shared. Further, the detection result display section 5 may sequentially list variables or storage elements that can be shared with the variable or storage element specified by the storage element specification section 3. Additionally, when the number of specified variables or storage elements is large,
It is also possible to display the results for the next n variables each time the designer presses the return key, for example, by dividing the result into m times of n variables.
本例では、特定の変数や記憶要素についてそれらが共有
化可能であるか否かをシステムに問い合わせ、それらの
共有可能性を知ることができる。In this example, it is possible to know whether a specific variable or storage element can be shared by inquiring the system as to whether or not it can be shared.
それゆえ、この問い合わせ結果をもとに、記憶要素の割
当てを試行錯誤することが可能となる。Therefore, it is possible to allocate storage elements by trial and error based on the result of this inquiry.
上記実施例では、記憶要素の共有化を実行する場合、記
憶要素指定部3とは別に割当て指定部6において再度指
示を行なうものとしたが、共有可能性検出部4において
、記憶要素指定部3における1つのコマンドで指定され
た変数や記憶要素が同一の記憶要素により実現可能であ
ると判断された場合は、割当て実行部7を自動的に起動
させることも可能である。In the above embodiment, when sharing a storage element, the allocation specification unit 6 issues an instruction again separately from the storage element specification unit 3. However, in the sharing possibility detection unit 4, the storage element specification unit 3 If it is determined that the variables and storage elements specified by one command can be realized by the same storage element, the allocation execution unit 7 can be automatically activated.
また、従来の自動的な方法を組み合わせて用いることも
できる。すなわち、設計者が「このような構成にしなけ
ればならない。j等と考える部分については、記憶要素
指定部3で問い合わせを行なって共有化可能性を調べた
後、割当て指定部7においてマニュアルで指定し、他の
部分については、従来からのアルゴリズムによってシス
テムが適当に割当てるようにすれば、設計者の意図に添
った記憶要素の割当てを効率よく行なうことができる。It is also possible to use a combination of conventional automatic methods. In other words, if the designer thinks, ``We have to have this kind of configuration. However, if the system appropriately allocates other parts using a conventional algorithm, it is possible to efficiently allocate storage elements in accordance with the designer's intention.
さらに、この場合、割当て指定部6において、設計者が
以降の処理における共有化を禁止することを指定するこ
ともできる。例えば、設計者が第13図の判定結果のグ
ラフと第8図の表示を見て、「変数iとhは共有化して
欲しくない。」と考えた場合、割当て実指定部6におい
て、例えば、umrg t、h;
とその旨指定することにより、割当て実行部6にスケジ
ューリング結果記憶部1の変数11 hのノードの属性
として共有化を禁止するノードのidをセット(例えば
、第21図に示すノード10に7を、ノード7に10を
セット)させ、以降の処理において、この属性情報を参
照して共有化を行なうか否かを判断させることもできる
。Furthermore, in this case, the designer can also specify in the allocation specification section 6 that sharing in subsequent processing is prohibited. For example, if a designer looks at the graph of the determination results in FIG. 13 and the display in FIG. By specifying this as umrg t, h;, the ID of the node whose sharing is prohibited is set in the allocation execution unit 6 as the node attribute of the variable 11 h of the scheduling result storage unit 1 (for example, the It is also possible to set node 10 to 7 and node 7 to 10), and in subsequent processing, refer to this attribute information to determine whether or not to perform sharing.
また、設計者が記憶要素指定部3において1つのコマン
ドで指定した変数や記憶要素のみを対象として、システ
ムが従来からのアルゴリズムによって自動的に割当てを
行うようにすることもできる。これにより、システムに
よって行われる共有化の対象となる範囲をコントロール
することも可能となる。Furthermore, the system can automatically allocate only the variables and storage elements specified by the designer using one command in the storage element specifying unit 3 using a conventional algorithm. This also makes it possible to control the scope of sharing performed by the system.
本発明は、上記実施例に限定されるものではなく、その
要旨を逸脱しない範囲で適宜変形して実施できる。The present invention is not limited to the above embodiments, and can be implemented with appropriate modifications without departing from the gist thereof.
[発明の効果]
以上、詳細に説明したように、本発明によれば、共有を
希望する記憶要素の人力に基いて、その共有が実際に可
能か否かを判別した上で適宜その組み合わせを呈示し、
任意の共有指定を受は付けるようにしたアーキテクチャ
合成システムにおける記憶要素割当て支援装置であるの
で、記憶要素の割当てに関し設計者の意図した通りの設
計が容易にできる。[Effects of the Invention] As described above in detail, according to the present invention, based on the human power of the memory elements that are desired to be shared, it is determined whether or not the sharing is actually possible, and then the combination is appropriately selected. presentation,
Since this is a storage element allocation support device for an architecture synthesis system that accepts arbitrary sharing specifications, it is possible to easily design the storage element allocation as intended by the designer.
第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 an embodiment of the present invention;
FIG. 2 is an explanatory diagram of the storage contents of the scheduling storage unit;
Fig. 3 is an explanatory diagram of the legend, Fig. 4 is an explanatory diagram showing the storage contents of the hardware resource storage unit, Fig. 5 is an explanatory diagram of the legend, and Fig. 6 is a display example of the control information display unit. Explanatory diagram, Figure 7 is an explanatory diagram of the legend, Figure 8 is an explanatory diagram of a display example of the data path display section, Figure 9 is an explanatory diagram of commands in the storage element specification section, and Figure 10 is an illustration of lifetime table creation. Figure 11 is an explanatory diagram of a lifetime table, Figure 12 is a flowchart showing the procedure for creating a graph showing shareability, and Figure 13 is an explanatory diagram of a display example of the detection result display section. , FIG. 14 is an explanatory diagram of the command for sharing storage elements in the allocation specification section, FIG. 15 is an explanatory diagram of the storage contents of the scheduling result storage section after execution of the sharing command, and FIG. 16 is an illustration of the hardware after executing the same command. FIG. 17 is an explanatory diagram of a display example of the data path display unit after executing the same command; FIG. 18 is an explanatory diagram of a command for checking sharability;
Fig. 19 is an explanatory diagram of the lifetime analysis results, Fig. 20 is an explanatory diagram showing a display example when there is no possibility of sharing the detection result display section, and Fig. 21 is an explanatory diagram showing another display example of the detection result display section. FIG. 1... Scheduling result storage section 2... Hardware resource storage section 3... Storage element specification section 4... Sharability detection section 5... Detection result display section 6... Allocation specification section 7 ... Allocation execution section 8 ... Lifetime analysis section 9 ... Control information display section 10 ... Data path display section
Claims (2)
るオペレーションの順序性や並列性を抽出しスケジュー
リング及びデータパス割当てを行うアーキテクチャ合成
システムにおける記憶要素割当て支援装置において、記
憶要素を割当てる手段として、演算の実行スケジュール
を記憶するスケジューリング結果記憶手段、必要となる
ハードウェア資源を記憶するハードウェア資源記憶手段
、変数または記憶要素の集合を指定する記憶要素指定手
段、前記変数または記憶要素の集合において記憶要素の
共有化が可能である要素の組を検出する共有可能性検出
手段、該手段の検出結果を表示する検出結果表示手段、
記憶要素の割当てを指定する割当て指定手段、該手段の
指定及び前記共有可能性検出手段の検出結果にもとづい
て前記記憶要素指定手段によって指定された集合を対象
として記憶要素の割当てを行なう割当て実行手段をもつ
ことを特徴とするアーキテクチャ合成システムにおける
記憶要素割当て支援装置。(1) As a means for allocating storage elements in a storage element allocation support device in an architecture synthesis system that inputs a hardware specification description, extracts the orderliness and parallelism of operations included in the description, and performs scheduling and data path allocation. , a scheduling result storage means for storing an execution schedule of an operation, a hardware resource storage means for storing necessary hardware resources, a storage element specifying means for specifying a set of variables or storage elements, and in the set of variables or storage elements. sharing possibility detection means for detecting a set of elements whose storage elements can be shared; detection result display means for displaying the detection results of the means;
Allocation specifying means for specifying the allocation of storage elements; allocation execution means for allocating storage elements to the set specified by the storage element specifying means based on the specification of the means and the detection result of the sharing possibility detection means; A storage element allocation support device in an architecture synthesis system characterized by having the following features:
おける記憶要素割当て支援装置において、前記アーキテ
クチャ合成システムが記憶要素割当てを自動的に行う手
段を備える場合、前記割当て指定手段は、変数または記
憶要素に対する共有化を禁止する指定を行なうことがで
きることを特徴とするアーキテクチャ合成システムにお
ける記憶要素割当て支援装置。(2) In the storage element allocation support device in an architecture synthesis system according to claim 1, when the architecture synthesis system includes means for automatically allocating storage elements, the allocation specification means is configured to share 1. A storage element allocation support device in an architecture synthesis system, characterized in that it is possible to specify that structuring is prohibited.
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 true JPH03137726A (en) | 1991-06-12 |
| JP2831741B2 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) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2010211291A (en) * | 2009-03-06 | 2010-09-24 | Ricoh Co Ltd | Built-in program development system |
-
1989
- 1989-10-24 JP JP1275067A patent/JP2831741B2/en not_active Expired - Fee Related
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2010211291A (en) * | 2009-03-06 | 2010-09-24 | Ricoh Co Ltd | Built-in program development system |
Also Published As
| Publication number | Publication date |
|---|---|
| JP2831741B2 (en) | 1998-12-02 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US5933139A (en) | Method and apparatus for creating help functions | |
| RU2004131538A (en) | METHOD AND SYSTEM FOR MANAGEMENT OF BUSINESS ENTERPRISE PROCESS | |
| US5493489A (en) | Method and apparatus for defining enterprise information flow | |
| US5386558A (en) | Method and apparatus for executing control system functions in a computer system | |
| JPH02242352A (en) | Using right setting system for data base system | |
| JPH096628A (en) | Parallel processing procedure selection device and method | |
| JPS582978A (en) | Picture registering device | |
| JPH03137726A (en) | Storage element allocation support device in architecture composite system | |
| Jiang | Analysis and Discussion of Radar Construction Problems with Greedy Algorithm | |
| JPH0588863A (en) | Program development supporting system | |
| JP2831726B2 (en) | Memory element allocation support device | |
| JPH07146767A (en) | Help information control system | |
| JPH0277838A (en) | Control system for program selective execution menu | |
| JP3312444B2 (en) | Information presentation device | |
| JPH01309146A (en) | Process monitor device and production of network chart used for the same | |
| JPH08241347A (en) | Information processing apparatus and information processing method | |
| RU117675U1 (en) | AUTOMATED INFORMATION SYSTEM FOR OPERATIVE-TACTICAL CONTROL ON THE ELECTRONIC LOCATION MAP | |
| JP2831697B2 (en) | Architecture synthesis equipment | |
| JP3091095B2 (en) | Automatic selection and display method of operation buttons for computer processing | |
| JPS63138466A (en) | Control method for form data on cad system | |
| JPH086750A (en) | Window structure display method and apparatus | |
| JPS63155228A (en) | Icon control method | |
| JPH02148332A (en) | Intraprogram interface system | |
| JP2001034791A (en) | Analysis model mesh creation system | |
| JPH02287612A (en) | Data display method for display device |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| LAPS | Cancellation because of no payment of annual fees |