JPH08212071A - 命令コード生成方法 - Google Patents

命令コード生成方法

Info

Publication number
JPH08212071A
JPH08212071A JP1618995A JP1618995A JPH08212071A JP H08212071 A JPH08212071 A JP H08212071A JP 1618995 A JP1618995 A JP 1618995A JP 1618995 A JP1618995 A JP 1618995A JP H08212071 A JPH08212071 A JP H08212071A
Authority
JP
Japan
Prior art keywords
instruction code
register
field
cycle
code
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.)
Pending
Application number
JP1618995A
Other languages
English (en)
Inventor
Takashi Asai
敬 浅井
Koji Kawamoto
浩司 川本
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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric 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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP1618995A priority Critical patent/JPH08212071A/ja
Publication of JPH08212071A publication Critical patent/JPH08212071A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Advance Control (AREA)

Abstract

(57)【要約】 【目的】 1のサイクルにおける演算結果を格納しない
演算器の入力指定フィールドに、その演算器の1サイク
ル前の値を設定する命令コード生成方法の提供。 【構成】 入力レジスタの内容 mx2,my2を乗算した結果
を出力レジスタの内容 mz2として格納し、入力レジスタ
の内容 az2,my1を加算した結果を出力レジスタの内容 a
z2として格納することを指定するニーモニックコード
(a) に基づいて生成し、アドレスA0に格納してある命令
コード(c) を実行した次のサイクルにおいて、入力レジ
スタの内容 mx1,my1を加算した結果を出力レジスタの内
容az2 として格納することを指定するニーモニックコー
ド(b) に基づき、加算器は両レジスタの内容mx1,my1 を
加算した結果を出力レジスタの内容 az2として格納し、
両入力レジスタの内容mx2,my2 を乗算した結果を出力レ
ジスタの内容 mz1として格納しない命令コード(d) を生
成し、アドレスA1に格納する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は命令コード生成方法に関
し、特に演算器の演算結果をレジスタに格納させない指
定を含む命令コードを生成する命令コード生成方法に関
する。
【0002】
【従来の技術】図4は演算器を備えた本発明が対象とす
るマイクロプロセッサの1例を示すブロック図である。
図において11,12 はデータを転送するバスであって、バ
ス11はデータをMX1 レジスタ13又はMX2 レジスタ14へ与
え、バス12はデータをMY1 レジスタ15又はMY2 レジスタ
16へ与える。MSEL1 セレクタ17は、両レジスタ13,14 の
うちのいずれか一つを選択し、選択したレジスタの内容
をMUL 乗算器19へ与える。MSEL2 セレクタ18は、両レジ
スタ15,16 のうちのいずれか一つを選択し、選択したレ
ジスタの内容をMUL 乗算器19へ与える。MUL 乗算器19は
両セレクタ17,18から与えられる値を各サイクル毎に乗
算し、乗算した結果をMZ1 レジスタ20又はMZ2 レジスタ
21へ与える。
【0003】ASEL1 セレクタ22は、両レジスタ13,14 並
びにAZ1 レジスタ25及びAZ2 レジスタ26のうちのいずれ
か一つを選択し、選択したレジスタの内容をADD 加算器
24へ与える。ASEL2 セレクタ23は、両レジスタ20,21 及
び両レジスタ15,16 のうちのいずれか一つを選択し、選
択したレジスタの内容をADD 加算器24へ与える。ADD加
算器24は、両セレクタ22,23 から与えられた値を各サイ
クル毎に加算し、加算した結果を両レジスタ25,26 のい
ずれか一つへ与える。
【0004】図5は図4のマイクロプロセッサを制御す
る命令コードの形式を説明する説明図であって、MUL 乗
算器19及びADD 加算器24の制御に関するものを示す。図
においてMXはMSEL1 セレクタ17が選択するレジスタを指
定する1ビットのフィールドである。MXの値が“0”の
場合にMX1 レジスタ13が指定され、MXの値が“1”の場
合にMX2 レジスタ14が指定される。MYはMSEL2 セレクタ
18が選択するレジスタを指定する1ビットのフィールド
である。MYの値が“0”の場合にMY1 レジスタ15が指定
され、MYの値が“1”の場合にMY2 レジスタ16が指定さ
れる。MZはMUL乗算器19が乗算した結果を格納するレジ
スタを指定する1ビットのフィールドである。MZの値が
“0”の場合にMZ1 レジスタ20が指定され、MZの値が
“1”の場合にMZ2 レジスタ21が指定される。EMはMUL
乗算器19が乗算した結果を格納するか否かを指定する1
ビットのフィールドである。EMの値が“0”の場合にMU
L 乗算器19の乗算結果はフィールドMZの指定に関係なく
両レジスタ20,21 のいずれにも格納されない。EMの値が
“1”の場合にMUL 乗算器19の乗算結果はフィールドMZ
で指定されたレジスタに格納される。即ちEMは乗算結果
の格納の可否を指定するものであって、乗算の実行・非
乗算を指定するものではない。
【0005】AXはASEL1 セレクタ22が選択するレジスタ
を指定する2ビットのフィールドである。AXの値が“0
0”の場合にAZ1 レジスタ25が指定され“01”の場合にA
Z2 レジスタ26が指定され、“10”の場合にMX1 レジス
タ13が指定され、“11”の場合にMX2 レジスタ14が指定
される。AYはASEL2 セレクタ23が選択するレジスタを指
定する2ビットのフィールドである。AYの値が“00”の
場合にMZ1 レジスタ20が指定され、“01”の場合にMZ2
レジスタ21が指定され、“10”の場合にMY1 レジスタ15
が指定され、“11”の場合にMY2 レジスタ16が指定され
る。
【0006】AZはADD 加算器24が加算した結果を格納す
るレジスタを指定する1ビットのフィールドである。AZ
の値が“0”の場合にAZ1 レジスタ25が指定され、AZの
値が“1”の場合にAZ2 レジスタ26が指定される。EAは
ADD 加算器24が加算した結果を格納するか否かを指定す
る1ビットのフィールドである。EAの値が“0”の場合
にADD 加算器24の加算結果はフィールドAZの指定に関係
なく両レジスタ25,26のいずれかも格納されない。EAの
値が“1”の場合にADD 加算器24の加算結果はフィール
ドAZで指定されたレジスタに格納される。即ちEAは加算
結果の格納の可否を指定するものであって、加算の実行
・非実行を指定するものではない。
【0007】図6は図4のマイクロプロセッサを制御す
る命令コードで実行する操作を指定するニーモニックコ
ードを説明する説明図である。図においてmul はMUL 乗
算器19の乗算を制御するニーモニックコードであり、そ
の後に両セレクタ17,18 が夫々選択するレジスタを指定
するニーモニックコードが2つ及び乗算結果を格納する
レジスタを指定するニーモニックコードが1つ随従す
る。このmul が記述されている場合、MUL 乗算器19の乗
算結果は両レジスタ20,21 のいずれかに格納されるが、
mul が記述されていない場合、両レジスタ20,21 のいず
れにも格納されない。
【0008】add はADD 加算器24の加算を制御するニー
モニックコードであり、その後に両セレクタ22,23 が夫
々選択するレジスタを指定するニーモニックコードが2
つ及び加算結果を格納するレジスタを指定するニーモニ
ックコードが1つ随従する。このadd が記述されている
場合、ADD 加算器24の加算結果は両レジスタ25,26 のい
ずれかに格納されるが、add が記述されていない場合、
両レジスタ25,26 のいずれにも格納されない。mx1,mx2,
my1,my2,mz1,mz2,az1,az2 は、夫々MX1 レジスタ13, MX
2 レジスタ14, MY1 レジスタ15, MY2 レジスタ16, MZ1
レジスタ20, MZ 2 レジスタ21, AZ1 レジスタ25, AZ2
ジスタ26を指定するニーモニックコードである。そして
1行に記述されたニーモニックコードは1サイクルで実
行する命令を指定する。例えば、1行にニーモニックコ
ードmul とadd とが記述されている場合、2つの演算を
同じサイクルで実行させることを意味する。
【0009】図6(a) はMX2 レジスタ14の内容とMY2
ジスタ16の内容とを乗算し、その乗算結果をMZ2 レジス
タ21に格納する操作とAZ2 レジスタ26の内容とMY1 レジ
スタ15の内容とを加算し、その加算結果をAZ2 レジスタ
26に格納する操作とを同時に行なうように指定するニー
モニックコードである。図6(b) はMX1 レジスタ13の内
容とMY2 レジスタ16の内容とを乗算し、その乗算結果を
MZ1 レジスタ20に格納する操作を指定するニーモニック
コードである。図6(c) はMX1 レジスタ13の内容とMY1
レジスタ15の内容とを加算し、その加算結果をAZ2 レジ
スタ26に格納する操作を指定するニーモニックコードで
ある。マイクロプロセッサを制御する命令コードは図6
で説明したニーモニックコードによる指定に従って生成
される。
【0010】図7は図6に示すニーモニックコードの指
定に従い、従来の命令コード生成方法で生成された命令
コードの説明図である。図において(f) は命令コードを
構成する各フィールドの記号を示し、(a) は図6(a) の
ニーモニックコードに対して生成された命令コードを示
し、(b) は図6(b) のニーモニックコードに対して生成
された命令コードを示し、(c) は図6(c) のニーモニッ
クコードに対して生成された命令コードを示す。
【0011】従来の命令コード生成方法では、ニーモニ
ックコードで指定されているフィールドにはその指定に
対応した値を設定し、ニーモニックコードで指定されて
いないフィールドには一定の値 (以下デフォルトと称す
る) を設定する。あるサイクルにおいて乗算 (又は加
算) のみを行ない加算 (又は乗算) を行わない場合、3
個のフィールドAX,AY,AZ (又はMX,MY,MZ) にはデフォル
トが設定される。従ってその場合両セレクタ17,18 ( 又
は22,23)は夫々特定のレジスタを選択する。
【0012】図6(a) のニーモニックコードはMX2 レジ
スタ14の内容とMY2 レジスタ16の内容とを乗算し、乗算
した結果をMZ2 レジスタ21に格納し、同じサイクルでAZ
2 レジスタ26の内容とMY1 レジスタ15の内容とを加算
し、加算した結果をAZレジスタ26に格納すべきことを指
定している故、生成した命令コードのEMフィールド,MX
フィールド,MY フィールド,MZ フィールド,EA フィール
ド,AZ フィールドはいずれも“1”であり、AXフィール
ドは“01”であり、AYフィールドは“10”である。
【0013】図6(b) のニーモニックコードはMX1 レジ
スタ13の内容とMY2 レジスタ16の内容とを乗算し、乗算
した結果をMZ1 レジスタ21に格納すべきことを指定して
いる故、生成した命令コードのEMフィールドは“1”、
MXフィールドは“0”、MYフィールドは“1”、MZフィ
ールドは“0”である。そして乗算のみを行ない加算を
行わない故、加算結果は両レジスタ25,26 のいずれにも
格納しない。従って、EAフィールドは“0”である。デ
フォルトが“0”である場合、2桁の“0”は“00”と
なる故、AXフィールド, AYフィールドはいずれも“00”
である。
【0014】図6(c) のニーモニックコードはMX1 レジ
スタ13の内容とMY1 レジスタ15の内容とを加算し、加算
した結果をAZ2 レジスタ26に格納すべきことを指定して
いる故、生成した命令コードのEAフィールドは“1”、
AXフィールドは”10”、AYフィールドは“10”、AZフィ
ールドは“1”である。そして加算のみを行ない乗算を
行わない故、乗算結果は両レジスタ20,21 のいずれにも
格納しない。従ってEMフィールドは“0”となる。デフ
ォルトが“0”である場合、MXフィールド, MYフィール
ド, MZフィールドはいずれも“0”である。
【0015】
【発明が解決しようとする課題】必要としない演算結果
は、いずれのレジスタにも格納されない故、必要としな
い演算を行なう演算器へ与えるデータはどのような値で
あっても構わなかった。それ故、デフォルトを設定する
ことにより命令コードの生成を簡略化することができ
た。しかしながら、このような命令コードの生成方法
は、前記演算器で消費される消費電力を低減するように
考慮されたものではなかった。
【0016】前回のサイクルにおいて図7(a) に示され
る命令コードが実行され、今回のサイクルにおいて図7
(b) に示される命令コードが実行される場合、MUL 乗算
器19には前回のサイクルにおいて両レジスタ14,16 の内
容が入力され、今回のサイクルにおいて両レジスタ13,1
6 の内容が入力される。MSEL1 セレクタ17は前回のサイ
クルにおいてMX2 レジスタ14を選択し、今回のサイクル
においてMX1 レジスタ13を選択している。異なるレジス
タの内容が同一である割合は、そのビット長と相関があ
る。例えば、レジスタのビット長が16ビットである場
合、レジスタに格納されている値がランダムな値である
場合、異なるレジスタの内容が同一である場合は1/65
536 である。
【0017】MSEL2 セレクタ18は、前回及び今回の連続
した両サイクルにおいてMY2 レジスタ16を選択してい
る。同一のレジスタの内容が両サイクルの期間において
一定である割合は、その期間にレジスタに対して書き込
みが行われる頻度と相関がある。例えば、1サイクルの
間に4個のレジスタの中からランダムに選ばれた1個の
レジスタにデータを書き込む場合、同一のレジスタの内
容が両サイクルの期間において一定である割合は3/4
である。
【0018】このように、前回及び今回の連続した両サ
イクルにおいて選択される両レジスタのうち一方が同じ
レジスタであり、他方が異なるレジスタである。そして
それに伴いMUL 乗算器19に入力されるデータが一定であ
る割合は低くなる。従ってMUL 乗算器19で消費される電
力の増加が見込まれる。しかしEMフィールドで乗算結果
の格納が指定されているので、消費電力の増加は演算に
伴う必然のものであり問題にはならない。同様にしてAD
D 加算器24で消費される電力のより一層の増加が見込ま
れる。これはEAフィールドで加算結果の格納が指定され
ていないので不必要な電力消費であり問題である。この
問題に対しAXフィールドに“01”を設定し、AYフィール
ドに“10”を設定するとよい。
【0019】また、前回のサイクルにおいて図7(a) に
示される命令コードが実行され、今回のサイクルにおい
て図7(c) に示される命令コードが実行される場合、MU
L 乗算器19には、前回のサイクルにおいて両レジスタ1
4,16 の内容が入力され、今回のサイクルにおいて両レ
ジスタ13,15 の内容が入力される。即ち前回及び今回の
連続した両サイクルにおいて選択される両レジスタはい
ずれも異なるレジスタである。そして、それに伴いMUL
乗算器19に入力されるデータが一定である割合は、より
一層低くなる。従ってMUL 乗算19で消費される電力のよ
り一層の増加が見込まれる。そしてEMフィールドで乗算
結果の格納が指定されていないので不必要な電力消費で
あり、問題である。この問題に対し、MXフィールド及び
MYフィールドにいずれも“1”を設定するとよい。同様
にしてADD 加算器24で消費される電力の増加が見込まれ
る。これはEAフィールドで加算結果の格納が指定されて
いるので消費電力の増加は問題にならない。
【0020】このように今回のサイクルにおいて演算結
果の格納が指定されていない演算器がある場合、その演
算器にデータを入力すべきレジスタとして前回のサイク
ルにおいて選択したレジスタと同じレジスタを今回のサ
イクルにおいても選択する命令コードを生成することに
より消費電力を節減できる命令コード生成方法を提供す
ることを目的とする。
【0021】
【課題を解決するための手段】第1発明に係る命令コー
ド生成方法は、プロセッサの各単位サイクル毎に演算を
行う演算器に対して、前記演算器の演算の結果をレジス
タに格納しないことを指定するフィールドと、前記演算
器に入力すべきデータを指定する入力指定フィールドを
含む命令コードを生成する命令コード生成方法におい
て、前記入力指定フィールドに、生成すべき命令コード
が実行される単位サイクルの1サイクル前に実行すべく
生成した前サイクル命令コードの前記演算器に対応した
入力指定フィールドの値を設定することを特徴とする。
【0022】第2発明に係る命令コード生成方法は、前
サイクル命令コードが1つである場合、該前サイクル命
令コードの演算器に対応する入力指定フィールドの値を
所定値とすることを特徴とする。
【0023】第3発明に係る命令コード生成方法は、前
サイクル命令コードが複数ある場合、該複数の前サイク
ル命令コードのいずれか1つに含まれ演算器に対応する
入力指定フィールドの値を所定値とすることを特徴とす
る。
【0024】第4発明に係る命令コード生成方法は、前
サイクル命令コードが複数ある場合、該複数の前サイク
ル命令コードのうち実行回数が最も多い命令コードに含
まれ演算器に対応する入力指定フィールドの値を所定値
とすることを特徴とする。
【0025】
【作用】第1発明では、演算器に入力すべきデータを指
定する入力指定フィールドに、生成すべき命令コードが
実行される単位サイクルの1サイクル前に実行すべく生
成した前サイクル命令コードの前記演算器に対応した入
力指定フィールドの値を設定する。従って生成した命令
コードを実行する単位サイクルとその1サイクル前とに
おいて、演算器に入力されるデータが変化する割合が小
さくなる。
【0026】第2発明では、第1発明において前サイク
ル命令コードが1つである場合該前サイクル命令コード
の演算器に対応する入力指定フィールドの値を所定値と
する。従って生成した命令コードを実行する単位サイク
ルとその1サイクル前とにおいて、演算器に入力される
データが変化する割合が小さくなる。
【0027】第3発明では、第1発明において、前サイ
クル命令コードが2つ以上である場合、その中のいずれ
か1つに含まれ、演算器に対応する入力指定フィールド
の値を所定値とする。従って生成した命令コードを実行
する単位サイクルとその1サイクル前とにおいて、演算
器に入力されるデータが変化する割合が小さくなる。
【0028】第4発明では、第1発明において、前サイ
クル命令コードが2つ以上ある場合、その中で実行回数
が最も多い命令コードに含まれ、演算器に対応する入力
指定フィールドの値を所定値とする。従って生成した命
令コードを実行する単位サイクルとその1サイクル前と
において、演算器に入力されるデータが変化する割合が
小さくなる。
【0029】
【実施例】以下本発明をその実施例を示す図面に基づき
具体的に説明する。本発明に係る命令コード生成方法に
より生成される命令コードで制御されるマイクロプロセ
ッサは、図4に示されるものであって、乗算器及び加算
器を備え、1サイクルにおいて乗算及び加算を必要とす
る場合又は乗算若しくは加算を必要とする場合に演算を
行なう。そして後者の場合において両演算器は演算を行
なうが、必要としない演算を行った演算器の演算結果は
格納されない。生成される命令コードの形式は図5に示
されるものであって、乗算結果を格納するか否かを指定
する1ビットのフィールドがEMであり、乗算すべきデー
タを格納するレジスタを指定する1ビットのフィールド
がMX及びMYであり、乗算結果を格納するレジスタを指定
する1ビットのフィールドがMZである。
【0030】また、加算結果を格納するか否かを指定す
る1ビットのフィールドがEAであり、加算すべきデータ
を格納するレジスタを指定する2ビットのフィールドが
AX及びAYであり、加算結果を格納するレジスタを指定す
る1ビットのフィールドがAZである。生成すべき命令コ
ードを指定するニーモニックコードは図6に示されるも
のであって、mul,add は夫々乗算, 加算を制御するニー
モニックコードであり、mx1,mx2,my1,my2,mz1,mz2,az1,
az2 は夫々図4に示すレジスタMX1 , MX2 , MY 1 , M
Y2 , MZ1 , MZ2 , AZ1 , AZ2 を示すニーモニックコー
ドである。
【0031】図1は第1実施例に係る命令コード生成方
法を説明する説明図である。図において(a) はアドレス
A0に配置される命令コードを指定するニーモニックコー
ドを示し、(b) はアドレスA1に配置される命令コードを
指定するニーモニックコードを示し、(c) はアドレスA0
に配置された命令コードの一部を示し、既に生成されて
いるものであり、(d) は生成してアドレスA1に配置すべ
き命令コードの一部を示す。アドレスA0に配置された命
令コードが実行されたサイクルの次のサイクルにアドレ
スA1に配置された命令コードが実行される。
【0032】図1(b) に示されるニーモニックコードは
mul が記述されていない故、MUL 乗算器19の乗算結果は
レジスタに格納されない。従って図1(d) に示す命令コ
ードを生成する場合、その命令コードの1サイクル前で
実行される命令コード、即ち図1(c) に示される命令コ
ードを調べる。そして、図1(c) のMXフィールドの値
1、MYフィールドの値1を図1(d) のMXフィールド, MY
フィールドに設定する。その他のフィールドに対しては
図1(b) のニーモニックコードで指定されているフィー
ルドにはその指定に対応した値を設定し、ニーモニック
コードで指定されていないフィールドにはデフォルトを
設定する。即ち、MZフィールドにデフォルトとして
“0”を、EAフィールドに加算結果の格納を示す“1”
を、AXフィールドにMX1 レジスタを示す“10”を、AYフ
ィールドにMY1 レジスタを示す“10”を、AZフィールド
にAZ2 レジスタを示す“1”を夫々設定し、アドレスA1
に格納する。
【0033】図1(d) に示される命令コードは、こうし
て生成された命令コードである。このようにすることに
より、両アドレスA0,A1 に配置された命令コードを実行
する2サイクルの期間においてMUL 乗算器19に入力させ
るべく選択されるレジスタは、MX2 レジスタ14, MY2
ジスタ16となる。即ち同一のレジスタの内容が入力され
る故、MUL 乗算器19で消費される電力は少なくなる。な
お、本実施例においては、1サイクル前で実行される命
令コードが1つ存在する場合について説明したが、1つ
も存在しない場合には図1(d) のMXフィールド, MYフィ
ールドにデフォルトを設定する。また、割り込み処理ル
ーチンの先頭命令などのように、1サイクル前で実行さ
れる命令コードが予測できない場合は図1(d) のMXフィ
ールド, MYフィールドにデフォルトを設定する。
【0034】図2は第2実施例に係る命令コード生成方
法を説明する説明図である。図において(a) はアドレス
A0に配置される命令コードを指定するニーモニックコー
ドを示し、(b) はアドレスA1に配置される命令コードを
指定するニーモニックコードを示し、(c) はアドレスA2
に配置される命令コードを指定するニーモニックコード
を示す。(d) は既に生成されてアドレスA0に配置された
命令コードの一部を示し、図示しない他のフィールドに
はシーケンス制御命令が含まれ、そのシーケンス制御命
令によりアドレスA0に配置された命令コードの次にアド
レスA2に配置された命令コードが実行される。
【0035】(e) は既に生成されてアドレスA1に配置さ
れた命令コードの一部を示し、図示しない他のフィール
ドにはシーケンス制御命令が含まれ、そのシーケンス制
御命令によりアドレスA1に配置された命令コードの次に
アドレスA2に配置された命令コードが実行される。(f)
は生成してアドレスA2に配置すべき命令コードの一部を
示す。
【0036】図2(c) に示されるニーモニックコードは
mul が記述されていない故、MUL 乗算器19の乗算結果は
レジスタに格納されない。従って図2(f) に示す命令コ
ードを生成する場合、その命令コードの1サイクル前で
実行される命令コードを調べる。1サイクル前で実行さ
れる命令コードは図2(d) 及び図2(e) に示される2個
の命令コードである。このように1サイクル前で実行さ
れる命令コードが複数個存在する場合、そのうちの任意
の一つの命令コードのMXフィールド, MYフィールドの値
を生成すべき命令コードのMXフィールド, MYフィールド
に設定する。図2(f) の場合には図2(d) の命令コード
の両フィールドMX,MY の値 (1, 1) を設定している。
【0037】その他のフィールドに対しては図2(c) の
ニーモニックコードで指定されているフィールドには、
その指定に対応した値を設定し、ニーモニックコードで
指定されていないフィールドにはデフォルトを設定す
る。即ち、MZフィールドにはデフォルトとして“0”
を、EAフィールドに加算結果の格納を示す“1”を、AX
フィールドにAZ2 レジスタを示す“01”を、AYフィール
ドにMY1 レジスタを示す“10”を、AZフィールドにAZ2
レジスタを示す“1”を夫々設定し、アドレスA2に格納
する。
【0038】このようにすることにより、両アドレスA
0,A2 に配置された命令コードを実行する2サイクルの
期間においてMUL 乗算器19に入力させるべく選択される
レジスタはMX2 レジスタ14, MY2 レジスタ16となる。ま
た両アドレスA1,A2 に配置された命令コードを実行する
期間においてMUL 乗算器19に入力させるべく選択される
レジスタは先のサイクルにおいてMX1 レジスタ13, MY2
レジスタ16となり、後のサイクルにおいてMX2 レジスタ
14, MY2 レジスタ16となる。従来のデフォルトを設定す
る場合は、後のサイクルにおいてMX1 レジスタ13, MY1
レジスタ15が選択される故、本実施例の方が両サイクル
においてレジスタの種類が変化する割合が小さく、MUL
乗算器19で消費される電力は少なくなる。即ち、乗算器
の入力選択フィールドにデフォルトの値を設定する方式
を用いた場合は、図6(d) の命令コードの後に図6(f)
の命令コードが実行される時と図6(e) の命令コードの
後に図6(f) の命令コードが実行される時のいずれの時
も、MUL 乗算器19に入力されるレジスタの種類が変化す
る場合も生じるので、本発明の方式の方が入力されるレ
ジスタの種類が変化する割合が少ない。
【0039】図3は第3実施例に係る命令コード生成方
法を説明する説明図である。図において(f) は生成して
アドレスA2に配置すべき命令コードの一部を示す。(a),
(b) …(e) は図2と同様であるので説明を省略する。図
3(f) に示す命令コードを生成する場合、その命令コー
ドの1サイクル前で実行される命令コードを調べる。1
サイクル前で実行される命令コードは図3(d) 及び図3
(e) に示される2個の命令コードである。
【0040】図3(d) に示される命令コードはNd 回実
行され、図3(e) に示される命令コードはNe 回実行さ
れ、Nd <Ne である場合、図3(e) の命令コードのMX
フィールド, MYフィールドの値 (0, 1) を生成すべき
命令コードのMXフィールド,MYフィールドに設定する。
図3(f) に示される命令コードは、こうして生成された
命令コードである。このように1サイクル前で実行され
る命令コードが複数個存在する場合、その1サイクル前
で実行される回数が最も多い命令コードの両フィールド
MX,MY の値を生成すべき命令コードの両フィールドMX,M
Y に設定する。1サイクル前で実行される回数が最も多
い命令コードが複数ある場合は、その中のいずれか一つ
の命令コードの両フィールドMX,MY の値を、生成すべき
命令コードの両フィールドMX,MY に設定する。このよう
にすることにより、1サイクル前と現サイクルとにおい
てMUL 乗算器19に入力させるべく選択されたレジスタの
種類が変化する割合が小さく、MUL 乗算19で消費される
電力は少なくなる。
【0041】
【発明の効果】第1発明によれば、演算器に対応する生
成すべき入力指定フィールドに、生成すべき命令コード
が実行される単位サイクルの1サイクル前に実行すべく
生成した前サイクル命令コードの前記演算器に対応した
入力指定フィールドの値を設定する故、演算器に入力さ
れるデータが変化する割合が小さくなり、演算器で消費
される電力が少なくなる。
【0042】第2発明によれば、第1発明において前サ
イクル命令コードが1つである場合、その前サイクル命
令コードの演算器に対応する入力指定フィールドの値を
所定値とする故、演算器に入力されるデータが変化する
割合が小さくなり、演算器で消費される電力が少なくな
る。
【0043】第3発明によれは、第1発明において前サ
イクル命令コードが2つ以上である場合、その中のいず
れか1つに含まれ、演算器に対応する入力指定フィール
ドの値を所定値とする故、演算器に入力されるデータが
変化する割合が小さくなり、演算器で消費される電力が
少なくなる。
【0044】第4発明によれば、第1発明において前サ
イクル命令コードが2つ以上ある場合、その中で実行回
数が最も多い命令コードに含まれ、演算器に対応する入
力指定フィールドの値を所定値とする故、演算器に入力
されるデータが変化する割合が小さくなり、演算器で消
費される電力が少なくなる。
【図面の簡単な説明】
【図1】 第1実施例に係る命令コード生成方法を説明
する説明図である。
【図2】 第2実施例に係る命令コード生成方法を説明
する説明図である。
【図3】 第3実施例に係る命令コード生成方法を説明
する説明図である。
【図4】 マイクロプロセッサの1例を示すブロック図
である。
【図5】 図4に示すマイクロプロセッサを制御する命
令コードの形式を説明する説明図である。
【図6】 図4に示すマイクロプロセッサを制御する命
令コードを指定するニーモニックコードを説明する説明
図である。
【図7】 従来の命令コード生成方法を説明する説明図
である。
【符号の説明】
13,14,15,16,20,21,25,26 レジスタ、17,18,22,23
セレクタ、19 乗算器、24 加算器。

Claims (4)

    【特許請求の範囲】
  1. 【請求項1】 プロセッサの各単位サイクル毎に演算を
    行う演算器に対して、前記演算器の演算の結果をレジス
    タに格納しないことを指定するフィールドと、前記演算
    器に入力すべきデータを指定する入力指定フィールドを
    含む命令コードを生成する命令コード生成方法におい
    て、 前記入力指定フィールドに、生成すべき命令コードが実
    行される単位サイクルの1サイクル前に実行すべく生成
    した前サイクル命令コードの前記演算器に対応した入力
    指定フィールドの値を設定することを特徴とする命令コ
    ード生成方法。
  2. 【請求項2】 前サイクル命令コードが1つである場
    合、該前サイクル命令コードの演算器に対応する入力指
    定フィールドの値を所定値とする請求項1記載の命令コ
    ード生成方法。
  3. 【請求項3】 前サイクル命令コードが複数ある場合、
    該複数の前サイクル命令コードのいずれか1つに含まれ
    演算器に対応する入力指定フィールドの値を所定値とす
    る請求項1記載の命令コード生成方法。
  4. 【請求項4】 前サイクル命令コードが複数ある場合、
    該複数の前サイクル命令コードのうち実行回数が最も多
    い命令コードに含まれ演算器に対応する入力指定フィー
    ルドの値を所定値とする請求項1記載の命令コード生成
    方法。
JP1618995A 1995-02-02 1995-02-02 命令コード生成方法 Pending JPH08212071A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP1618995A JPH08212071A (ja) 1995-02-02 1995-02-02 命令コード生成方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP1618995A JPH08212071A (ja) 1995-02-02 1995-02-02 命令コード生成方法

Publications (1)

Publication Number Publication Date
JPH08212071A true JPH08212071A (ja) 1996-08-20

Family

ID=11909579

Family Applications (1)

Application Number Title Priority Date Filing Date
JP1618995A Pending JPH08212071A (ja) 1995-02-02 1995-02-02 命令コード生成方法

Country Status (1)

Country Link
JP (1) JPH08212071A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7382401B2 (en) 2002-09-10 2008-06-03 Sanyo Electric Co., Ltd. Data processing apparatus

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7382401B2 (en) 2002-09-10 2008-06-03 Sanyo Electric Co., Ltd. Data processing apparatus

Similar Documents

Publication Publication Date Title
KR100313261B1 (ko) 저전력형다중작업제어기(명칭정정)
US4617625A (en) Vector processor
JP2006196013A (ja) データ処理方法
JP4349265B2 (ja) プロセッサ
Padegs et al. The IBM System/370 vector architecture: Design considerations
JP2882426B2 (ja) アドレス発生装置
JP3479385B2 (ja) 情報処理装置
JPH08212071A (ja) 命令コード生成方法
JPH1173408A (ja) 演算処理システム及び演算処理方法
JPH0528431B2 (ja)
JP2885197B2 (ja) 演算処理装置及び演算処理方法
JP3014618B2 (ja) ファジー演算装置
JPH04349570A (ja) 情報処理装置
JPS60204029A (ja) 信号処理装置
JP2568760B2 (ja) 積和演算回路
JP2760808B2 (ja) データ処理装置
Burkowski Instruction set design issues relating to a static dataflow computer
JPH06342450A (ja) 行列乗算装置
JP3489360B2 (ja) デジタル信号処理装置
JPH02273834A (ja) ファジィ推論装置
JPH0764789A (ja) 並列処理プロセッサおよびそのプロセッシングユニットならびにこの並列処理プロセッサの動作方法
JP3723311B2 (ja) 並列演算プロセッサ
JPH04199428A (ja) レジスタ装置およびレジスタ割り付け方法
JPH0452760A (ja) ベクトル処理装置
JPH08339294A (ja) マルチプロセッサシステムにおける乱数発生装置および乱数発生方法