JP2986761B2 - Hardware scaleable microprocessor / soft core design method - Google Patents
Hardware scaleable microprocessor / soft core design methodInfo
- Publication number
- JP2986761B2 JP2986761B2 JP9133133A JP13313397A JP2986761B2 JP 2986761 B2 JP2986761 B2 JP 2986761B2 JP 9133133 A JP9133133 A JP 9133133A JP 13313397 A JP13313397 A JP 13313397A JP 2986761 B2 JP2986761 B2 JP 2986761B2
- Authority
- JP
- Japan
- Prior art keywords
- microcode
- hardware
- soft core
- replacement
- software
- 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
Links
Description
【0001】[0001]
【発明の属する技術分野】この発明は、半導体のASI
C化を目的としたマイクロプロセッサ・ソフトコアのハ
ードウェア、ソフトウェアの協調デザイン手法に関する
ものである。[0001] The present invention relates to a semiconductor ASI.
The present invention relates to a cooperative design method of hardware and software of a microprocessor / soft core for the purpose of computerization.
【0002】[0002]
【従来の技術】半導体上に専用の命令をハードウェア
(H/W)で実行して高速化を目指すASICに搭載さ
れるマイクロプロセッサ(μP)・ソフトコアは、一般
的に汎用部品のマイクロプロセッサ(μP)と同様に、
ハードウェア、ソフトウェア(S/W)設計で扱うこと
のできる各種命令セットが予め規定されている。図8
は、これらの命令セットを組み合わせてプログラム処理
を実現するためのH/W構成11の例を示す図である。
図において、H/W11は、プログラムをマイクロコー
ド化して記憶するROM12と、プログラムをH/W的
に解読するデコーダ13と、演算に用いる値を一時的に
保持するアキュムレータ14と、演算結果を格納したり
演算結果によってフラグも含めて値が変化するレジスタ
15と、演算結果保持レジスタ値の待避やアキュムレー
タ14へのデータロードに使われるRAM16と、各演
算器17を有している。μPの品種毎に、これらの搭載
されるH/Wブロックは仕様として固定され、S/Wに
依存して増減することはない。図9は、S/Wプログラ
ム処理フロー21の例を示す図であり、C言語などの高
級言語やアセンブラ22などの言語でμPソフトコア用
のプログラムをコーティングし、それをコンパイラ又は
アセンブラにかけて(ステップ23)、マイクロコード
24を生成する。この生成されたマイクロコード群をR
OM12に格納して使用する。2. Description of the Related Art A microprocessor (.mu.P) / soft core mounted on an ASIC aiming at high speed by executing dedicated instructions on a semiconductor by hardware (H / W) is generally a microprocessor of general-purpose parts. (ΜP),
Various instruction sets that can be handled by hardware and software (S / W) design are defined in advance. FIG.
FIG. 3 is a diagram showing an example of an H / W configuration 11 for realizing program processing by combining these instruction sets.
In the figure, an H / W 11 is a ROM 12 for storing a program by microcoding, a decoder 13 for decoding the program in H / W, an accumulator 14 for temporarily holding a value used for an operation, and storing an operation result. It has a register 15 whose value changes including a flag depending on the operation result, a RAM 16 used for saving the operation result holding register value and loading data to the accumulator 14, and each operation unit 17. The H / W blocks to be mounted are fixed as specifications for each μP type, and do not increase or decrease depending on the S / W. FIG. 9 is a diagram showing an example of the S / W program processing flow 21. The program for the μP soft core is coated with a high-level language such as C language or a language such as the assembler 22, and the program is applied to a compiler or assembler (step). 23), generate microcode 24; This generated microcode group is denoted by R
It is stored in the OM 12 and used.
【0003】次に、上述の設計方法で生成されたマイク
ロコード群による動作について説明する。μPが起動さ
れると、まず、ROM12に格納されたマイクロコード
の先頭を読み出しにいく。読み出されたマイクロコード
をデコーダで解析し、命令を実行する。マイクロコード
は、プログラムの実行アドレスを示すプログラムカウン
タに従って、順次読み出され実行される。ここでは、メ
モリのアドレスA番地の値にアドレスB番地の値を乗
じ、結果をメモリアドレスC番地に格納するといった場
合の具体例を挙げ、説明する。 (1)まず、RAMのアドレスAからアキュムレータA
に値をロードする。 (2)次に、RAMのアドレスBからアキュムレータB
に値をロードする。各々のアキュムレータに値がロード
されると同時に、乗算器へ値が入力され、H/W実行性
能に従った時間を経過した後、乗算結果がレジスタにセ
ットされる。 (3)演算結果がセットされたレジスタの値を、RAM
のアドレスCに格納する。[0003] Next, the operation of the microcode group generated by the above-described design method will be described. When the μP is started, first, the head of the microcode stored in the ROM 12 is read. The read microcode is analyzed by the decoder, and the instruction is executed. The microcode is sequentially read and executed according to a program counter indicating an execution address of the program. Here, a specific example in which the value of the address A of the memory is multiplied by the value of the address B and the result is stored in the memory address C will be described. (1) First, accumulator A from address A of RAM
Load values into (2) Next, from the address B of the RAM to the accumulator B
Load values into At the same time that each accumulator is loaded with a value, the value is input to the multiplier, and after a lapse of time according to the H / W execution performance, the result of the multiplication is set in the register. (3) The value of the register in which the operation result is set is stored in RAM
Is stored at the address C.
【0004】上述のμPソフトコアでは、汎用部品のμ
Pと同様に、どのようなH/W要素を組み込むかといっ
たH/W仕様が固定されている。そのため、システムを
構成するためには、μPソフトコアで全く使わない演算
器やH/Wブロックがあっても、H/W仕様として削除
されることなく、ASICに残存してしまう。図10
は、一般的なシステム要求性能とシステム処理時間の関
係を示した図である。特定のS/W実行に限定すると、
実行時間に余裕のあることが多い。即ち、システム要求
性能に対し、μPを特定のS/Wプログラムに用いた時
の性能(システム処理時間)がオーバースペックになる
ことが多い。これは結果的に無駄な待ち時間が生じるこ
とになる。In the above-described μP soft core, the μP soft core
As with P, H / W specifications such as what H / W elements are incorporated are fixed. Therefore, in order to configure the system, even if there are arithmetic units and H / W blocks that are not used at all by the μP soft core, they remain in the ASIC without being deleted as H / W specifications. FIG.
FIG. 2 is a diagram showing a relationship between general system required performance and system processing time. When limited to a specific S / W execution,
There is often room for execution time. That is, the performance (system processing time) when μP is used for a specific S / W program often exceeds the system required performance. This results in wasted waiting time.
【0005】[0005]
【発明が解決しようとする課題】従来のμPソフトコア
は、上記のように構成されており、H/W仕様が固定さ
れているため、使わないH/Wブロックがあっても削除
されることがない。そのため、本来必要なμPソフトコ
アのブロックだけを使ってASIC化した場合に比べ、
チップ面積が増大してASIC内部の遅延時間の増加、
コスト、消費電力の上昇などが生じるという課題があっ
た。また更に、システム要求性能がオーバースペックで
あっても、S/Wプログラムを他のマイクロコードに置
換せず、無駄な待ち時間が生じるという課題があった。The conventional μP soft core is configured as described above, and has a fixed H / W specification. Therefore, even if there is an unused H / W block, it is deleted. There is no. Therefore, compared to the case where the ASIC is formed using only the originally necessary μP soft core block,
The chip area increases and the delay time inside the ASIC increases,
There has been a problem that costs and power consumption increase. Furthermore, even if the system required performance is over-spec, there is a problem that the S / W program is not replaced with another microcode, and a wasteful waiting time occurs.
【0006】この発明は、上記のような課題を解消する
ためになされたもので、μPソフトコアにおいて、μP
用S/W処理に不要なH/Wブロックを削減したり、オ
ーバースペック時に所定の時間内で等価な処理ができる
他のマイクロコードに置換して、S/W処理の比重を高
めてH/Wブロックを削減することを目的とする。そし
て、結果的にASIC全体でのチップ面積を削減し、ま
た、遅延時間、消費電力を低減することを目的とする。SUMMARY OF THE INVENTION The present invention has been made to solve the above-described problems.
H / W blocks unnecessary for the S / W processing are reduced, or replaced with another microcode capable of performing equivalent processing within a predetermined time when over-specifying, and the specific gravity of the S / W processing is increased to increase the H / W block. The purpose is to reduce W blocks. As a result, it is an object to reduce the chip area of the entire ASIC and to reduce the delay time and the power consumption.
【0007】[0007]
【課題を解決するための手段】この発明に係るハードウ
ェア規模可変マイクロプロセッサ・ソフトコア設計方法
は、必要な命令群を対象マイクロプロセッサが扱うマイ
クロコードに分解し、この分解したマイクロコードを実
行するために必要なハードウェア・サブ要素を求める要
素確定ステップと、分解したマイクロコードのうち特定
の置換対象マイクロコードを他のマイクロコード群に置
き換えるソフトウェア置換ステップと、 この置換した他
のマイクロコード群の使用により未使用になったハード
ウェア・サブ要素を削除する不要ハードウェア・ブロッ
ク削除ステップとを備えて、要求実行時間内にソフトウ
エア処理を収めるようにした。 According to the present invention, a method for designing a hardware-scale variable microprocessor / soft core according to the present invention decomposes a necessary instruction group into microcodes handled by a target microprocessor, and executes the decomposed microcodes. Element determination step to find the necessary hardware sub-elements and identification of decomposed microcode
Place the replacement microcode in another microcode group
Software replacement step to replace and other
Hardware that has become unused due to the use of microcode groups
Unnecessary hardware blocks to remove hardware sub-elements
Software deletion step, and the software
The air treatment was added.
【0008】[0008]
【0009】また更に、ソフトウェア置換ステップにお
いて、等価な命令に置換が可能/不可の情報を付加し、
置換が可能な情報が付加されたマイクロコードのみを他
のマイクロコード群を用いて置換するようにした。Still further, in the software replacement step, information indicating whether replacement is possible or not is added to an equivalent instruction,
Only the microcode to which the replaceable information is added is replaced by using another microcode group.
【0010】また更に、ソフトウェア置換ステップにお
いて、等価な命令に置換する優先度を設けて、置換の優
先度が高いマイクロコードから順に他のマイクロコード
群を用いて置換するようにした。Further, in the software replacement step, priorities for replacing with equivalent instructions are provided, and replacement is performed using another microcode group in order from the microcode having the highest replacement priority.
【0011】[0011]
実施の形態1.μPソフトコアとそのS/Wプログラム
から不要なH/Wブロックを削除するためには、S/W
プログラムを解析して命令に対応するH/W要素の使用
状況を把握して、未使用H/W要素を確定する必要があ
る。更に、システム処理時間がシステム要求性能より十
分余裕がある場合は、いくつかのS/W命令(マイクロ
コード)を他のマイクロコードに置き換えて使用H/W
要素を減らすことがバランスのとれたμPソフトコア設
計に有効である。図1は、本実施の形態におけるμPソ
フトコア設計方法の工程(ステップ)を示す図である。
図2は、ASICのμPソフトコア対応のH/W要素の
基本的な構成概念図である。このμPソフトコア31内
には、S/Wプログラムを分解したマイクロコードが格
納されたROM32、マイクロコードを解析して命令を
制御するデコーダ33、被演算値が格納されるアキュム
レータ34、演算結果を格納したり、演算結果によって
値が変化(フラグ)したりするレジスタ35、アキュム
レータ34へのデータロードや演算結果を格納するレジ
スタ35の値を待避するためのRAM36、各演算器3
7を設けてある。これらのH/W要素は、後に説明する
ように、マイクロコードで使用されない場合は、削除で
きる構成となっているところが新しい。Embodiment 1 FIG. To delete unnecessary H / W blocks from the μP soft core and its S / W program, use S / W
It is necessary to analyze the program to grasp the usage status of the H / W element corresponding to the instruction, and to determine the unused H / W element. Further, if the system processing time has a sufficient margin than the required performance of the system, some S / W instructions (microcodes) are replaced with other microcodes and used.
Reducing the number of elements is effective for a well-balanced μP soft core design. FIG. 1 is a diagram showing the steps (steps) of the μP soft core design method according to the present embodiment.
FIG. 2 is a conceptual diagram of a basic configuration of an H / W element corresponding to the μP soft core of the ASIC. The μP soft core 31 includes a ROM 32 in which microcode obtained by decomposing the S / W program is stored, a decoder 33 that analyzes the microcode and controls an instruction, an accumulator 34 in which a value to be operated is stored, and an operation result. A register 35 for storing or changing (flag) a value according to the operation result, a RAM 36 for loading data into the accumulator 34 and saving the value of the register 35 for storing the operation result,
7 is provided. As described later, these H / W elements are new in that they can be deleted if they are not used in microcode.
【0012】また、図2は、本実施の形態におけるハー
ドウェア規模可変のμPソフトコアの構成図である。更
に、図3は、図2に示すH/W構成を用いてμPソフト
コアのマイクロコードを記述した例を示す図であり、μ
Pソフトコア全体をモジュールとして各H/Wを階層的
に使うよう設計されている。図3において、第1行目の
module宣言から最終行のendmodule宣言
までがμPソフトコア全体で、その2つの行に挟まれる
第2行から第10行までの各行が、各H/Wブロックの
動作に対応することを意味する。図4は、図3のμPソ
フトコアで使用するアセンブラ命令とそれを変換したマ
イクロコードが、その命令を実行するのに必要なH/W
要素で記述した対応リストを示したものである。例え
ば、LD(ロード命令)は、RAMのあるアドレスから
アキュムレータAに値をロードするものであるが、その
ために必要なH/W要素のリストを表している。FIG. 2 is a configuration diagram of a μP soft core with a variable hardware scale according to the present embodiment. FIG. 3 is a diagram showing an example in which microcode of a μP soft core is described using the H / W configuration shown in FIG.
The entire P soft core is designed as a module and each H / W is used hierarchically. In FIG. 3, from the module declaration on the first line to the end module declaration on the last line is the entire μP soft core, and each of the lines from the second line to the tenth line between the two lines is the H / W block of each H / W block. It means corresponding to the operation. FIG. 4 shows the H / W required for executing the instruction by the assembler instruction used in the μP soft core of FIG. 3 and the converted microcode.
It shows the correspondence list described by the element. For example, an LD (load instruction), which loads a value from a certain address in the RAM to the accumulator A, represents a list of H / W elements necessary for that.
【0013】上述の設計フローチャートとμPソフトコ
アの説明図を用いて本実施の形態におけるμPソフトコ
ア設計方法を説明する。まず、最初に図1のステップS
1でμPソフトコアの命令セット基本構成に従い、元の
C言語又はアセンブラに代表されるような言語でコーテ
ィングしたμPソフトコア用S/WプログラムからμP
のマイクロコードに分解する。上記のようなμPソフト
コアのH/W構成においては、S/W設計者はアキュム
レータAへのロード命令、加減算命令、乗算命令、除算
命令、演算結果の格納命令、ジャンプ命令(条件ジャン
プ含む)の合計6つの命令をC言語に代表される高級言
語やアセンブラのS/Wで扱うことができるものとす
る。例えば、次のようなS/Wプログラムをアセンブラ
で記述したとする。 LD A MUL B ST C (1) (1)式の意味は、RAMアドレスAの値をアキュムレ
ータAにロードし、RAMアドレスBの値と掛け合わ
せ、結果をRAMアドレスCに格納するというものであ
る。A method of designing a μP soft core according to the present embodiment will be described with reference to the above-described design flowchart and an explanatory diagram of the μP soft core. First, step S in FIG.
In step 1, according to the basic configuration of the instruction set of the μP soft core, the μP soft core S / W program coated with the original C language or a language such as
Into microcodes. In the H / W configuration of the μP soft core as described above, the S / W designer can load the accumulator A, add / subtract, multiply, divide, store the operation result, and jump (including conditional jump). Can be handled by a high-level language represented by C language or S / W of an assembler. For example, assume that the following S / W program is described in assembler. LD A MUL B ST C (1) The expression (1) means that the value of the RAM address A is loaded into the accumulator A, multiplied by the value of the RAM address B, and the result is stored in the RAM address C. .
【0014】次に、上述のμPソフトコア用にC言語な
どの高級言語やアセンブラで作成されたS/Wプログラ
ムを演算命令別に抜き出し、図4のS/W命令、マイク
ロコードとその命令を実行するために必要な全てのH/
W記述を抽出する。例えば、元のμPソフトコアでは乗
算器を有しているが、S/Wプログラムで乗算命令を使
用していない場合は、mltply(乗算器)が必要な
H/Wブロックとしてリストアップされないことにな
り、不要なH/Wブロックであるということが特定でき
る。特定したH/Wブロックに関連するH/W記述をμ
Pソフトコアから削除することで、最終的に不要なH/
WブロックはASIC化されないことになり、チップ面
積を削減することができる。即ち、このS/Wプログラ
ムから使用しているμPソフトコアの全体H/W記述を
抽出すると、図4のマイクロコードとH/W要素との対
応表から、次の(2)式の要素が必要となる。 rom decoder ram acca accb mltply re g (2) つまり、(1)式のS/Wを実行するマイクロコード
は、図3のμPソフトコアのalu(加減算器)、de
vide(除算器)に当たるH/Wブロックは不要であ
る。この場合には、図3のμPソフトコア中のalu、
devide関連ブロックをH/W構成要素から削除す
ることができ、従って、ステップS7でASICのチッ
プ面積を削減できる。Next, an S / W program created by a high-level language such as C language or an assembler for the μP soft core described above is extracted for each operation instruction, and the S / W instruction, microcode and its instructions shown in FIG. 4 are executed. All necessary H /
Extract W description. For example, if the original μP soft core has a multiplier, but the multiplication instruction is not used in the S / W program, mltply (multiplier) is not listed as a necessary H / W block. That is, it can be specified that the block is an unnecessary H / W block. The H / W description related to the specified H / W block
By deleting from P soft core, unnecessary H /
Since the W block is not formed into an ASIC, the chip area can be reduced. That is, when the entire H / W description of the μP soft core used is extracted from this S / W program, the element of the following equation (2) is obtained from the correspondence table between the microcode and the H / W element in FIG. Required. rom decoder ram acca accb mltply reg (2) In other words, the microcode for executing the S / W of the equation (1) is an alu (adder / subtractor) of the μP soft core shown in FIG.
The H / W block corresponding to the video (divider) is unnecessary. In this case, alu in the μP soft core of FIG.
The device related block can be deleted from the H / W component, and therefore, the chip area of the ASIC can be reduced in step S7.
【0015】次に、システム要求性能が許す範囲内で一
部のマイクロコードを置換して他の冗長な、しかし、H
/W要素が他のマイクロコードと共用できるコードにし
て、H/W要素を削減する方法を説明する。このマイク
ロコードの置換のためには、μPソフトコア中で扱われ
る命令群の中で命令同士が等価な処理となる置換マッピ
ング情報を作成しておくと便利である。マッピング情報
には、ある専用のH/Wブロックを扱うようなS/W命
令と、専用のH/Wブロックを用いずに等価な処理をす
る別の汎用的なS/W命令を組み合わせたものを情報と
して作成しておく。更に、システム要求性能内にシステ
ム処理時間の上限が収まることを調べるために、図1の
ステップS3でμPソフトコアのクロック周期を情報と
して与えておき、ステップS5でS/Wプログラム処理
ステップ数から求めた実処理時間とシステム要求性能と
を比較する。ステップS5でシステム要求性能に対し、
処理時間に余裕がある場合には、ステップS6でS/W
プログラムのマイクロコードで使用されている命令を上
記マッピング情報から検索し、そのマイクロコードでは
使用している専用のH/Wブロックを使用しない他の等
価な処理を行うマイクロコードに置換する。以後、ステ
ップS12ないしステップS15を行ってシステム要求
性能を満足していれば、ステップS6で仮定した置換は
満足され、S/Wで当初用いていた命令に当たる専用H
/Wブロックは不要となるため、ステップS17で確定
してASIC化するH/W要素は削減できる。Next, a part of the microcode is replaced within the range required by the system requirement performance to replace the other redundant, but H
A description will be given of a method of reducing the number of H / W elements by making the / W element a code that can be shared with other microcodes. For the replacement of the microcode, it is convenient to create replacement mapping information in which instructions in the group of instructions handled in the μP soft core perform equivalent processing. The mapping information is a combination of an S / W instruction that handles a dedicated H / W block and another general-purpose S / W instruction that performs equivalent processing without using a dedicated H / W block. Is created as information. Further, in order to check that the upper limit of the system processing time falls within the required system performance, the clock cycle of the μP soft core is given as information in step S3 of FIG. 1, and the number of S / W program processing steps is determined in step S5. The obtained actual processing time is compared with the required system performance. In step S5, for the system required performance,
If there is enough processing time, S / W in step S6
The instructions used in the microcode of the program are searched from the mapping information, and replaced with microcode that performs other equivalent processing without using the dedicated H / W block used in the microcode. Thereafter, if the system required performance is satisfied by performing steps S12 to S15, the replacement assumed in step S6 is satisfied, and the dedicated H corresponding to the instruction originally used in S / W is satisfied.
Since the / W block is not required, the H / W element determined in step S17 and converted into an ASIC can be reduced.
【0016】図5に示す具体的な命令群を用いて、図1
の設計方法を説明する。以下、まず、ステップS1でμ
Pソフトコアのマイクロコードが使用するH/Wを記述
する。次に、ステップS2でASICのテクノロジライ
ブラリを用いて論理素子を使ったネットリストに合成
し、動作可能なクロック動作周波数を求めた後、ステッ
プS3で実際に印加するクロックの周期を決定する。図
5は、ステップS6の例として、S/W命令群の内、命
令同士が等価な処理を行うようなマッピング情報を示し
た図であり、乗算命令を加算命令に置換した場合の記述
を示している。図5では、高級言語とアセンブラレベル
それぞれで置換した例を示し、矢印の左側と右側で等価
な処理を行うよう定義する。このようなマッピング情報
に加え、S/Wプログラムの実行が完了しなければなら
ない時間と、先に決定したクロック周期をコンパイラに
与える。例えば、S/W処理制約時間を50μsとして
クロック周期を20nsとした場合、μPソフトコアで
のS/W処理ステップは、(3)式のようになる。 50μs/20ns=50000ns/20ns =2500(ステップ) (3) 即ち、最大2500ステップまでに抑えなければならな
いことがわかる。Using the specific instruction group shown in FIG. 5, FIG.
The design method will be described. Hereinafter, first, in step S1, μ
Describes the H / W used by the microcode of the P soft core. Next, in step S2, an ASIC technology library is used to synthesize a netlist using logic elements to determine an operable clock operating frequency, and then in step S3, the period of the clock to be actually applied is determined. FIG. 5 is a diagram showing, as an example of step S6, mapping information in which instructions in the S / W instruction group perform equivalent processing, and shows a description when a multiplication instruction is replaced with an addition instruction. ing. FIG. 5 shows an example in which the high-level language and the assembler level are replaced, and it is defined that equivalent processing is performed on the left and right sides of the arrow. In addition to such mapping information, the time when the execution of the S / W program must be completed and the previously determined clock cycle are given to the compiler. For example, if the S / W processing constraint time is 50 μs and the clock cycle is 20 ns, the S / W processing step in the μP soft core is as shown in equation (3). 50 μs / 20 ns = 50000 ns / 20 ns = 2500 (steps) (3) That is, it is understood that the number of steps must be suppressed to a maximum of 2500 steps.
【0017】μPソフトコア基本構成で扱える高級言語
やアセンブラ命令を用いたS/Wプログラムを命令を置
換せずにコンパイルしてマイクロコードを生成し、ステ
ップ数とμPソフトコアのクロック周期から、システム
処理時間が算出できる。システム処理時間と与えておい
た制約時間とを比較し、システム処理時間が時間的に余
裕がある場合、ステップS6以降でマイクロコードを置
換して再評価をする。上述の場合、S/W処理ステップ
数が2500ステップ以内であれば、システム処理時間
に余裕があると判断できる。A microcode is generated by compiling an S / W program using a high-level language or assembler instruction that can be handled by the μP soft core basic configuration without replacing the instruction, and generating a microcode based on the number of steps and the clock cycle of the μP soft core. Processing time can be calculated. The system processing time is compared with the given constraint time, and if there is enough time in the system processing time, the microcode is replaced and the reevaluation is performed after step S6. In the case described above, if the number of S / W processing steps is 2500 steps or less, it can be determined that there is enough system processing time.
【0018】システム処理時間に余裕がある場合、S/
Wプログラムで置換可能な命令を検索し、それをマッピ
ング情報に従って、等価なS/W命令での処理に置換す
る。例えば、S/Wプログラムで使用している全ての乗
算命令を図5のマッピング情報に従って、等価な加算命
令に置換する。こうすれば、乗算器はμPソフトコアか
ら削除できる。If there is a margin in the system processing time, S /
The W program searches for replaceable instructions and replaces them with equivalent S / W instruction processing according to the mapping information. For example, all multiplication instructions used in the S / W program are replaced with equivalent addition instructions according to the mapping information in FIG. In this way, the multiplier can be eliminated from the μP soft core.
【0019】不要な乗算器を削除したμPソフトコアに
よるH/W構成記述を基に、ステップS12ないしステ
ップS13で、ASICのテクノロジライブラリを用い
て論理素子を使ったネットリストに再び合成する。そし
て、動作可能なクロック動作周波数を求めた後、印加す
るクロックの周期を決定する。一方、等価なシステム処
理を行うように命令を置換されたS/Wプログラムを再
びコンパイルしてマイクロコードを生成し、実行完了ま
でのステップ数を算出する。このステップ数とシステム
動作周波数からステップS14でシステム処理時間を算
出し、ステップS15でシステム処理制約時間(仕様)
と比較する。システム処理制約時間内で処理が可能であ
るならば、ステップS17で最終的に乗算器は不要であ
るといえ、μPソフトコアの面積削減が確定する。Based on the H / W configuration description by the μP soft core from which unnecessary multipliers have been deleted, in steps S12 to S13, the data is re-synthesized into a netlist using logic elements using an ASIC technology library. After obtaining an operable clock operating frequency, the period of the clock to be applied is determined. On the other hand, the S / W program in which instructions have been replaced so as to perform equivalent system processing is recompiled to generate microcode, and the number of steps until the execution is completed is calculated. A system processing time is calculated in step S14 from the number of steps and the system operating frequency, and a system processing restriction time (specification) is determined in step S15.
Compare with If the processing can be performed within the system processing restriction time, it can be concluded in step S17 that the multiplier is finally unnecessary, and the reduction in the area of the μP soft core is determined.
【0020】上述したμPソフトコア設計方法によれ
ば、S/W処理で不要なH/Wブロックを削除したり、
H/W処理とS/W処理の比重を変えたりすることが可
能になる。マッピング情報を任意に変更することで将来
的に使い得る回路を残したり、一部だけ等価なS/W処
理に置換することもできる。According to the μP soft core design method described above, unnecessary H / W blocks can be deleted by S / W processing,
It is possible to change the specific gravity of H / W processing and S / W processing. By arbitrarily changing the mapping information, a circuit that can be used in the future can be left, or only part of the circuit can be replaced with equivalent S / W processing.
【0021】実施の形態2.S/W命令の置換に優劣、
制限を加える場合を説明する。複数のマッピング情報が
存在するとき、将来的なS/Wプログラムの変更を考慮
し、一部のS/W命令だけの置換に留めておくことが考
えられる。以下、本実施の形態におけるソフトコア設計
方法を図を用いて述べる。図6は、将来のS/W利用を
考えて置換をしてもよい命令と、置換してはいけない命
令とを記述したマッピング情報の例を示す図である。図
において、F1は変換可/変換不可を仮に設計時に指示
する置換可否指定フラグである。このフラグが1(変換
可)の命令のみを置換してみる。こうして、複数の処理
が等価になる命令同士のマッピング情報に置換可否の条
件を定義として追加するだけで簡単に命令の置換条件を
変えることができる。マッピング情報は自由に変更でき
るため、置換負荷を変更していって任意の条件でS/W
プログラムのステップ数、μPソフトコアのチップ面
積、システム処理時間を算出し、システム処理制約時間
内処理の可否を判断できる。Embodiment 2 FIG. Superiority in replacing S / W instruction,
The case where restrictions are added will be described. When there are a plurality of pieces of mapping information, it is conceivable that only some of the S / W instructions may be replaced in consideration of future changes in the S / W program. Hereinafter, the soft core design method in the present embodiment will be described with reference to the drawings. FIG. 6 is a diagram illustrating an example of mapping information describing an instruction that may be replaced in consideration of future S / W use and an instruction that should not be replaced. In the figure, F1 is a replaceability / non-replacement designation flag which temporarily indicates at the time of design whether or not conversion is possible. Attempt to replace only the instruction whose flag is 1 (convertible). In this way, it is possible to easily change the instruction replacement condition simply by adding, as a definition, the condition of whether or not replacement is possible to the mapping information between instructions for which a plurality of processes are equivalent. Since the mapping information can be changed freely, the replacement load is changed and the S / W
The number of steps of the program, the chip area of the μP soft core, and the system processing time are calculated, and it is possible to determine whether or not the processing can be performed within the system processing restriction time.
【0022】本実施の形態における他のμPソフトコア
設計方法を、図7を用いて述べる。複数のマッピング情
報が存在するとき、命令の置換に優先順位を与えてシス
テム仕様の限界まで置換を検討する。即ち、図7におい
て、F2は優先順位指定フラグであり、複数の処理が等
価になる命令同士のマッピング情報に置換する命令に優
先順位を与える。優先順位が高い(数字の小さい)もの
から置換していく。こうして、定義情報に追加して簡単
に命令の置換順位を変えることができる。S/W命令の
優先順に命令を置換して、μPソフトコアの不要なH/
Wブロックを削除する。順位を変更してμPソフトコア
の動作周波数を求めて、S/Wプログラムをコンパイル
するというループを繰り返し、システム制約時間を超え
ない範囲で処理を終了する。Another μP soft core design method according to the present embodiment will be described with reference to FIG. When there is a plurality of pieces of mapping information, priority is given to instruction replacement, and replacement is considered up to the limit of system specifications. That is, in FIG. 7, F2 is a priority designation flag, which gives a priority to an instruction to be replaced with mapping information between instructions for which a plurality of processes are equivalent. Replace with the one with the highest priority (smaller number). In this way, it is possible to easily change the order of replacement of instructions in addition to the definition information. The instruction is replaced in the priority order of the S / W instruction, and the unnecessary H /
Delete the W block. The order is changed to find the operating frequency of the μP soft core, and a loop of compiling the S / W program is repeated, and the processing is completed within a time period not exceeding the system constraint time.
【0023】[0023]
【発明の効果】以上述べたように本発明によれば、要素
確定ステップとシステム制約算定ステップとを設けて、
要求仕様以下ならH/Wを削減するようにしたので、チ
ップ面積を低減し小形低消費電力、動作周波数の向上が
得られる効果がある。As described above, according to the present invention, an element determination step and a system constraint calculation step are provided.
Since H / W is reduced if the required specifications are not satisfied, there is an effect that the chip area is reduced, and small and low power consumption and an improvement in operating frequency are obtained.
【0024】また更に、ソフトウェア置換ステップを設
けて、等価なマイクロコードでシステムを評価するよう
にしたので、無駄な遅れ時間のないバランスのとれたμ
Pソフトコアが得られる効果がある。Furthermore, a software replacement step is provided to evaluate the system with equivalent microcode, so that a well-balanced μ without wasteful delay time can be obtained.
There is an effect that a P soft core can be obtained.
【図1】 本発明によるマイクロプロセッサ・ソフトコ
ア設計方法の工程(ステップ)の例を示す図である。FIG. 1 is a diagram showing an example of a step of a microprocessor / softcore design method according to the present invention.
【図2】 本発明によるマイクロプロセッサ・ハードウ
ェア構成要素の例を示す図である。FIG. 2 illustrates an example of a microprocessor hardware component according to the present invention.
【図3】 図2のハードウェア構成要素を用いたμPソ
フトコアのハードウェア記述例を示す図である。FIG. 3 is a diagram illustrating an example of hardware description of a μP soft core using the hardware components of FIG. 2;
【図4】 アセンブラ命令とマイクロコードと使用ハー
ドウェア要素との対応の例を示す図である。FIG. 4 is a diagram showing an example of correspondence between assembler instructions, microcode, and used hardware elements.
【図5】 S/W命令群の中で等価な他のS/W命令に
置換可能な命令の例を示す図である。FIG. 5 is a diagram showing an example of an instruction that can be replaced with another equivalent S / W instruction in the S / W instruction group.
【図6】 実施の形態2におけるマッピング情報の例を
示す図である。FIG. 6 is a diagram illustrating an example of mapping information according to the second embodiment.
【図7】 実施の形態2における他のマッピング情報の
例を示す図である。FIG. 7 is a diagram showing another example of mapping information according to the second embodiment.
【図8】 H/W要素が固定のマイクロプロセッサH/
W構成要素図である。FIG. 8 shows a microprocessor H / having a fixed H / W element.
It is a W component diagram.
【図9】 一般的なμP用マイクロコード生成のための
プログラム処理フロー図である。FIG. 9 is a flowchart of a program processing for generating a general μP microcode.
【図10】 一般的なシステム処理時間とシステム要求
性能との関係を示す図である。FIG. 10 is a diagram showing a relationship between general system processing time and system required performance.
S1 μPのマイクロコードに分解、ハードウェア構成
要素を求める要素確定ステップ、S4,S14 マイク
ロコードによるS/W処理時間算出ステップ、S5,S
15 システム制約時間内に収まるかを調べる比較ステ
ップ、S6 等価な他のマイクロコードに置き換える置
換ステップ、S7,S17 マイクロコードが使用しな
いH/W要素を削除する削除ステップ、F1 置換可否
指定フラグ、F2 優先順位指定フラグ。S1 Decomposition into μP microcode, element determination step for obtaining hardware components, S4, S14 S / W processing time calculation step using microcode, S5, S
15 Comparing step to check whether it falls within the system constraint time, S6: replacing step by replacing with another equivalent microcode, S7, S17: deleting step by which H / W elements not used by the microcode are deleted, F1 replacement enable / disable designation flag, F2 Priority specification flag.
───────────────────────────────────────────────────── フロントページの続き (56)参考文献 特開 平10−116302(JP,A) 特開 平10−31693(JP,A) 特開 平9−160949(JP,A) 特開 平9−81604(JP,A) 特開 平9−251477(JP,A) 特開 平3−102571(JP,A) 国際公開95/31778(WO,A1) 池永剛,白井克彦,”高級言語により 記述されたアルゴリズムを実現する専用 プロセッサ設計支援システム”,情報処 理学会論文誌,平成3年11月,第32巻, 第11号,p.1445−1456 (58)調査した分野(Int.Cl.6,DB名) G06F 17/50 ────────────────────────────────────────────────── ─── Continuation of the front page (56) References JP-A-10-116302 (JP, A) JP-A-10-31693 (JP, A) JP-A-9-160949 (JP, A) JP-A 9-160 81604 (JP, A) JP-A-9-251477 (JP, A) JP-A-3-102571 (JP, A) WO 95/31778 (WO, A1) Tsuyoshi Ikenaga, Katsuhiko Shirai, " Specialized Processor Design Support System for Realizing Advanced Algorithms, ”Transactions of the Information Processing Society of Japan, November 1991, Vol. 32, No. 11, p. 1445-1456 (58) Field surveyed (Int.Cl. 6 , DB name) G06F 17/50
Claims (3)
が扱うマイクロコードに分解し、該分解したマイクロコ
ードを実行するために必要なハードウェア・サブ要素を
求める要素確定ステップと、分解したマイクロコードのうち特定の置換対象マイクロ
コードを他のマイクロコード群に置き換えるソフトウェ
ア置換ステップと、 該置換した他のマイクロコード群の使用により未使用に
なったハードウェア・サブ要素を削除する不要ハードウ
ェア・ブロック削除ステップとを備えて、要求実行時間
内にソフトウエア処理を収めるようにした ことを特徴と
するハードウェア規模可変マイクロプロセッサ・ソフト
コア設計方法。1. An element determining step of decomposing a necessary instruction group into microcodes handled by a target microprocessor, and determining a hardware sub-element required to execute the decomposed microcode; Micro to be replaced
Software that replaces code with other microcode groups
A) by using the substituting step and using the substituting other microcode group
Unnecessary hardware to remove hardware sub-elements
Request execution time with a hardware block deletion step
A hardware scale variable microprocessor / soft core design method characterized in that software processing is stored in the software .
価な命令に置換が可能/不可の情報を付加し、該置換が
可能な情報が付加されたマイクロコードのみを他のマイ
クロコード群を用いて置換するようにしたことを特徴と
する請求項1記載のハードウェア規模可変マイクロプロ
セッサ・ソフトコア設計方法。 2. In the software replacement step,
Information that can or cannot be replaced is added to a valuable instruction,
Only microcode with possible information added to other
The feature is that replacement is performed using crocode groups.
The hardware scale variable microprocessor according to claim 1,
Sessa soft core design method.
価な命令に置換する優先度を設けて、該置換の優先度が
高いマイクロコードから順に他のマイクロコード群を用
いて置換するようにしたことを特徴とする請求項1記載
のハードウェア規模可変マイクロプロセッサ・ソフトコ
ア設計方法。 3. In the software replacement step,
Priority is set to replace expensive instructions, and the priority of the replacement is
Use other microcode groups in descending order of microcode
2. The method according to claim 1, wherein the replacement is performed.
Hardware scalable microprocessor / software
A design method.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP9133133A JP2986761B2 (en) | 1997-05-23 | 1997-05-23 | Hardware scaleable microprocessor / soft core design method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP9133133A JP2986761B2 (en) | 1997-05-23 | 1997-05-23 | Hardware scaleable microprocessor / soft core design method |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH10326291A JPH10326291A (en) | 1998-12-08 |
JP2986761B2 true JP2986761B2 (en) | 1999-12-06 |
Family
ID=15097555
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP9133133A Expired - Fee Related JP2986761B2 (en) | 1997-05-23 | 1997-05-23 | Hardware scaleable microprocessor / soft core design method |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2986761B2 (en) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7761817B2 (en) * | 2006-05-22 | 2010-07-20 | Coherent Logix, Incorporated | Designing an ASIC based on execution of a software program on a processing system |
-
1997
- 1997-05-23 JP JP9133133A patent/JP2986761B2/en not_active Expired - Fee Related
Non-Patent Citations (1)
Title |
---|
池永剛,白井克彦,"高級言語により記述されたアルゴリズムを実現する専用プロセッサ設計支援システム",情報処理学会論文誌,平成3年11月,第32巻,第11号,p.1445−1456 |
Also Published As
Publication number | Publication date |
---|---|
JPH10326291A (en) | 1998-12-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Goodwin et al. | Automatic generation of application specific processors | |
Levesque et al. | A Guidebook to FORTRAN on Supercomputers | |
Kozyrakis et al. | Scalable, vector processors for embedded systems | |
Eichenberger et al. | Stage scheduling: a technique to reduce the register requirements of a module schedule | |
US7010558B2 (en) | Data processor with enhanced instruction execution and method | |
JP4130654B2 (en) | Method and apparatus for adding advanced instructions in an extensible processor architecture | |
EP2490141A2 (en) | Method of, and apparatus for, stream scheduling in parallel pipelined hardware | |
JP2003515203A (en) | Optimization of N-base type arithmetic expression | |
Petric et al. | Reno: a rename-based instruction optimizer | |
US20040003376A1 (en) | Method of programming linear graphs for streaming vector computation | |
JP4396987B2 (en) | Behavioral synthesis apparatus and behavioral synthesis method, digital circuit manufacturing method, behavioral synthesis control program, and readable recording medium | |
Verma et al. | Fast, nearly optimal ISE identification with I/O serialization through maximal clique enumeration | |
Wittenburg et al. | HiPAR-DSP: A parallel VLIW RISC processor for real time image processing applications | |
Hwang et al. | Zone scheduling | |
Kumar et al. | Highly flexible multimode digital signal processing systems using adaptable components and controllers | |
JP2986761B2 (en) | Hardware scaleable microprocessor / soft core design method | |
US6275969B1 (en) | Common case optimized circuit structure for high-performance and low-power VLSI designs | |
Sastry et al. | Exploiting idle floating-point resources for integer execution | |
Kolson et al. | Elimination of redundant memory traffic in high-level synthesis | |
EP1828889B1 (en) | Compiling method, compiling apparatus and computer system to compile a loop in a program | |
Cheresiz et al. | The CSI multimedia architecture | |
US20070074186A1 (en) | Method and system for performing reassociation in software loops | |
Corbal et al. | On the efficiency of reductions in/spl mu/-SIMD media extensions | |
Moon et al. | A 32-bit RISC microprocessor with DSP functionality: Rapid prototyping | |
US20030182511A1 (en) | Apparatus and method for resolving an instruction conflict in a software pipeline nested loop procedure in a digital signal processor |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
LAPS | Cancellation because of no payment of annual fees |