JP2001092633A - 複数の結果を出力する命令を有する演算装置 - Google Patents
複数の結果を出力する命令を有する演算装置Info
- Publication number
- JP2001092633A JP2001092633A JP26945699A JP26945699A JP2001092633A JP 2001092633 A JP2001092633 A JP 2001092633A JP 26945699 A JP26945699 A JP 26945699A JP 26945699 A JP26945699 A JP 26945699A JP 2001092633 A JP2001092633 A JP 2001092633A
- Authority
- JP
- Japan
- Prior art keywords
- data
- instruction
- register
- arithmetic unit
- bits
- 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.)
- Abandoned
Links
Landscapes
- Executing Machine-Instructions (AREA)
Abstract
(57)【要約】
【課題】 従来の演算装置に実装されている命令に比べ
て、プログラムの命令数を削減することができ、それに
よってプログラムの実行時間やプログラム・サイズを小
さくすることができる演算装置を提供すること。 【解決手段】 実装する命令に従って所定の演算を実行
する演算装置であって、少なくとも1つ以上のデータを
用いて演算を行い、1つ又は2つ以上の演算結果を出力
することを特徴とする。本発明により、頻繁に使われる
ような一連の命令を単一の命令に置き換えることが可能
となるため、従来に比べて、命令の数を少なくすること
ができ、それによってプログラムのサイズや実行時間を
小さくすることができる。
て、プログラムの命令数を削減することができ、それに
よってプログラムの実行時間やプログラム・サイズを小
さくすることができる演算装置を提供すること。 【解決手段】 実装する命令に従って所定の演算を実行
する演算装置であって、少なくとも1つ以上のデータを
用いて演算を行い、1つ又は2つ以上の演算結果を出力
することを特徴とする。本発明により、頻繁に使われる
ような一連の命令を単一の命令に置き換えることが可能
となるため、従来に比べて、命令の数を少なくすること
ができ、それによってプログラムのサイズや実行時間を
小さくすることができる。
Description
【0001】
【発明の属する技術分野】本発明は演算装置に関し、特
に演算処理において演算結果を複数出力することができ
る命令を備える演算装置に関する。
に演算処理において演算結果を複数出力することができ
る命令を備える演算装置に関する。
【0002】
【従来の技術】一般に、演算装置に実装される命令は、
図10に示すように、オペレーションコード10とオペ
ランド21〜2nから成り立っている。オペレーション
コード10は命令の種類を表し、オペランド21〜2n
は命令を実行する際に用いるデータの格納場所を示す。
オペランドの数はコンピュータの種類や命令の種類によ
って異なり、一つのオペランドで命令が成り立っている
1オペランド方式、二つのオペランドで命令が成り立っ
ている2オペランド方式、三つのオペランドで命令が成
り立っている3オペランド方式がある。
図10に示すように、オペレーションコード10とオペ
ランド21〜2nから成り立っている。オペレーション
コード10は命令の種類を表し、オペランド21〜2n
は命令を実行する際に用いるデータの格納場所を示す。
オペランドの数はコンピュータの種類や命令の種類によ
って異なり、一つのオペランドで命令が成り立っている
1オペランド方式、二つのオペランドで命令が成り立っ
ている2オペランド方式、三つのオペランドで命令が成
り立っている3オペランド方式がある。
【0003】1オペランド方式では、演算はアキュムレ
ータとオペランド間で実行され、結果はアキュムレータ
に格納される。
ータとオペランド間で実行され、結果はアキュムレータ
に格納される。
【0004】2オペランド方式では、アキュムレータに
代わって複数のレジスタが用意されており、a=a+b
のような形式の演算を行う。
代わって複数のレジスタが用意されており、a=a+b
のような形式の演算を行う。
【0005】3オペランド方式では、演算に使う二つの
データとその結果を格納する場所を一つの命令で表現で
き、a=b+cのような形式の演算が一つの命令で実現
できる。
データとその結果を格納する場所を一つの命令で表現で
き、a=b+cのような形式の演算が一つの命令で実現
できる。
【0006】これらの命令は、例えば、図11に示す演
算装置に実装されて実現される(D.A.パターソン,
J.L.ヘネシー著/成田光影訳,”コンピュータの構
造と設計”,日経BP社,1996年,P.245)。
算装置に実装されて実現される(D.A.パターソン,
J.L.ヘネシー著/成田光影訳,”コンピュータの構
造と設計”,日経BP社,1996年,P.245)。
【0007】図11を参照して、一般的な命令の実行に
ついて説明する。
ついて説明する。
【0008】まずプログラムカウンタ(PC)1から命
令メモリ2に命令のアドレスが供給されて命令が取り出
される(フェッチ)。命令が取り出されると、その命令
のレジスタフィールドに指定されているレジスタ・オペ
ランド35,36が取り出され、それらに対してALU
4aでオペレーションが実行される。
令メモリ2に命令のアドレスが供給されて命令が取り出
される(フェッチ)。命令が取り出されると、その命令
のレジスタフィールドに指定されているレジスタ・オペ
ランド35,36が取り出され、それらに対してALU
4aでオペレーションが実行される。
【0009】メモリ参照命令ではデータ・メモリ5にア
クセスしてデータをストアしたりロードしたりする。ま
た、算術論理命令で演算を行った結果は、ALU4aか
らレジスタ3aに書き込まれる。
クセスしてデータをストアしたりロードしたりする。ま
た、算術論理命令で演算を行った結果は、ALU4aか
らレジスタ3aに書き込まれる。
【0010】例えば、3オペランド形式の算術論理命令
では、レジスタ3aから2つのデータ語を読出し、1つ
のデータ語を書き込む。レジスタ3aには、データを読
み出すための入力(読出しレジスタの指定情報31,3
2)と出力(読出しデータ35,36)と、データを書
き込むための入力(書込みレジスタの指定情報33,及
び書込みデータ34)を必要とする。
では、レジスタ3aから2つのデータ語を読出し、1つ
のデータ語を書き込む。レジスタ3aには、データを読
み出すための入力(読出しレジスタの指定情報31,3
2)と出力(読出しデータ35,36)と、データを書
き込むための入力(書込みレジスタの指定情報33,及
び書込みデータ34)を必要とする。
【0011】図11からも解るように、従来の命令にお
いては、浮動小数点乗算命令などの特殊な命令を除い
て、演算結果の出力は一つである。
いては、浮動小数点乗算命令などの特殊な命令を除い
て、演算結果の出力は一つである。
【0012】
【発明が解決しようとする課題】演算結果の出力が一つ
しかないという制約は、ソフトウェア作成の際にしばし
ば、命令数を増加させたり、プログラムの自由度を制限
したりする。
しかないという制約は、ソフトウェア作成の際にしばし
ば、命令数を増加させたり、プログラムの自由度を制限
したりする。
【0013】例えば、プログラムによっては演算装置が
扱えるデータの大きさを超えたデータを扱いたい場合が
ある。図12及び図13に示すように、演算装置が扱え
るデータの大きさ(ここでは8ビット)を超えた16ビ
ットのデータを左または右にシフトしたい場合には、2
つのレジスタ(reg1,reg2)をペア・レジスタ
と見なして、16ビットのデータを上位ビットと下位ビ
ットに分けてシフト演算を行うという手法が用いられ
る。
扱えるデータの大きさを超えたデータを扱いたい場合が
ある。図12及び図13に示すように、演算装置が扱え
るデータの大きさ(ここでは8ビット)を超えた16ビ
ットのデータを左または右にシフトしたい場合には、2
つのレジスタ(reg1,reg2)をペア・レジスタ
と見なして、16ビットのデータを上位ビットと下位ビ
ットに分けてシフト演算を行うという手法が用いられ
る。
【0014】図12は、reg1とreg2を2ビット
左にシフトさせ、reg2でシフトアウトした上位2ビ
ットをreg1の下位2ビットに埋める処理であり、図
13は、reg1とreg2を2ビット右にシフトさ
せ、reg1でシフトアウトした下位2ビットをreg
2の上位2ビットに埋める処理である。
左にシフトさせ、reg2でシフトアウトした上位2ビ
ットをreg1の下位2ビットに埋める処理であり、図
13は、reg1とreg2を2ビット右にシフトさ
せ、reg1でシフトアウトした下位2ビットをreg
2の上位2ビットに埋める処理である。
【0015】図12の左シフトの場合も図13の右シフ
トの場合も、〜の5個の命令からなる一連の手続き
が必要である。
トの場合も、〜の5個の命令からなる一連の手続き
が必要である。
【0016】また、演算装置が扱えるデータの大きさを
超えたデータの加算を行いたい場合には、上位ビット同
士、下位ビット同士を加算した後で、下位ビットの加算
で生じた桁上がりを上位ビットに加えるという手法が用
いられる。図14に、2つのレジスタ(reg1,re
g2)を加算して、その時の桁上げ(キャリー)を別の
レジスタ(reg3)に加える処理を示す。図14の
(1)はキャリーフラグ(CY)がある演算装置の例で
あり、図14の(2)はキャリーフラグがない演算装置
の例である。(1)では〜の2命令、(2)では
〜の3命令からなる一連の手続きが必要である。
超えたデータの加算を行いたい場合には、上位ビット同
士、下位ビット同士を加算した後で、下位ビットの加算
で生じた桁上がりを上位ビットに加えるという手法が用
いられる。図14に、2つのレジスタ(reg1,re
g2)を加算して、その時の桁上げ(キャリー)を別の
レジスタ(reg3)に加える処理を示す。図14の
(1)はキャリーフラグ(CY)がある演算装置の例で
あり、図14の(2)はキャリーフラグがない演算装置
の例である。(1)では〜の2命令、(2)では
〜の3命令からなる一連の手続きが必要である。
【0017】図15に、2つのレジスタ(reg1,r
eg2)を減算して、その時の借り(ボロー)を別のレ
ジスタ(reg3)から引く処理を示す。〜の3命
令からなる一連の手続きが必要である。
eg2)を減算して、その時の借り(ボロー)を別のレ
ジスタ(reg3)から引く処理を示す。〜の3命
令からなる一連の手続きが必要である。
【0018】このように、従来の演算装置に実装されて
いる命令では、プログラムの命令数が多くなり、プログ
ラムの実行時間の増大やプログラム・サイズの増大を招
いていた。
いる命令では、プログラムの命令数が多くなり、プログ
ラムの実行時間の増大やプログラム・サイズの増大を招
いていた。
【0019】
【課題を解決するための手段】上記課題を解決するため
に、本発明は、従来の演算装置に実装されている命令に
比べて、プログラムの命令数を削減することができ、そ
れによってプログラムの実行時間やプログラム・サイズ
を小さくすることができる演算装置を提供することを目
的とする。
に、本発明は、従来の演算装置に実装されている命令に
比べて、プログラムの命令数を削減することができ、そ
れによってプログラムの実行時間やプログラム・サイズ
を小さくすることができる演算装置を提供することを目
的とする。
【0020】すなわち本発明は、実装する命令に従って
所定の演算を実行する演算装置であって、少なくとも1
つ以上のデータを用いて演算を行い、1つ又は2つ以上
の演算結果を出力することを特徴とする。
所定の演算を実行する演算装置であって、少なくとも1
つ以上のデータを用いて演算を行い、1つ又は2つ以上
の演算結果を出力することを特徴とする。
【0021】本発明により、頻繁に使われるような一連
の命令を単一の命令に置き換えることが可能となるた
め、従来に比べて、命令の数を少なくすることができ、
それによってプログラムのサイズや実行時間を小さくす
ることができる。
の命令を単一の命令に置き換えることが可能となるた
め、従来に比べて、命令の数を少なくすることができ、
それによってプログラムのサイズや実行時間を小さくす
ることができる。
【0022】
【発明の実施の形態】以下、図面に基づいて、本発明の
実施形態について説明する。
実施形態について説明する。
【0023】図1は本発明に係る演算装置の一実施形態
を示す概略図である。尚、図11と共通の構成要素は同
一符号を付す。
を示す概略図である。尚、図11と共通の構成要素は同
一符号を付す。
【0024】まずプログラムカウンタ(PC)1から命
令メモリ2に命令のアドレスが供給されて命令が取り出
される(フェッチ)。命令が取り出されると、その命令
のレジスタフィールド3に指定されているレジスタ・オ
ペランド35,36が取り出され、それらに対してAL
U4でオペレーションが実行される。
令メモリ2に命令のアドレスが供給されて命令が取り出
される(フェッチ)。命令が取り出されると、その命令
のレジスタフィールド3に指定されているレジスタ・オ
ペランド35,36が取り出され、それらに対してAL
U4でオペレーションが実行される。
【0025】メモリ参照命令ではデータ・メモリ5にア
クセスしてデータをストアしたりロードしたりする。ま
た、算術論理命令で演算を行った結果は、ALU4から
レジスタ3に書き込まれる。ALU4は複数個のユニッ
トで構成されても良い。
クセスしてデータをストアしたりロードしたりする。ま
た、算術論理命令で演算を行った結果は、ALU4から
レジスタ3に書き込まれる。ALU4は複数個のユニッ
トで構成されても良い。
【0026】本実施例における演算装置は、レジスタ3
から2つのデータ語を読出し、演算を行い、2つの演算
結果データ語を書き込むような4オペランド形式の算術
論理命令が可能である。この4オペランド形式の算術論
理命令を実現するために、レジスタ3には、データを読
み出すための入力(読出しレジスタの指定情報31,3
2)と出力(読出しデータ35,36)と、データを書
き込むための入力(書込みレジスタの指定情報33,3
7,及び書込みデータ34,38)を備えている。
から2つのデータ語を読出し、演算を行い、2つの演算
結果データ語を書き込むような4オペランド形式の算術
論理命令が可能である。この4オペランド形式の算術論
理命令を実現するために、レジスタ3には、データを読
み出すための入力(読出しレジスタの指定情報31,3
2)と出力(読出しデータ35,36)と、データを書
き込むための入力(書込みレジスタの指定情報33,3
7,及び書込みデータ34,38)を備えている。
【0027】図1に記載した演算装置は、4オペランド
形式の命令を実装した場合の例を記述したが、実装され
る命令は必ずしも4オペランド形式に限定されず、例え
ば、3つのデータ語を読出し、演算を行い、2つの演算
結果データ語を書き込むような5オペランド形式など、
必要に応じて様々な形式の命令を実装することが考えら
れる。
形式の命令を実装した場合の例を記述したが、実装され
る命令は必ずしも4オペランド形式に限定されず、例え
ば、3つのデータ語を読出し、演算を行い、2つの演算
結果データ語を書き込むような5オペランド形式など、
必要に応じて様々な形式の命令を実装することが考えら
れる。
【0028】また、例えば、パイプライン制御方式のプ
ロセッサの場合には、演算結果のデータはパイプライン
・レジスタ経由でバイパスされる。
ロセッサの場合には、演算結果のデータはパイプライン
・レジスタ経由でバイパスされる。
【0029】次に、本発明に係る演算装置に実装される
命令の実施形態を図2乃至図9に基づいて説明する。
尚、本実施例では、演算装置が扱えるデータの大きさは
8ビットとする。
命令の実施形態を図2乃至図9に基づいて説明する。
尚、本実施例では、演算装置が扱えるデータの大きさは
8ビットとする。
【0030】(第1実施例)16ビットのデータについ
て左シフト演算を行う例を図2をもとに説明する。先に
従来例として図12を用いて説明した機能と同様の機能
を実現するものである。
て左シフト演算を行う例を図2をもとに説明する。先に
従来例として図12を用いて説明した機能と同様の機能
を実現するものである。
【0031】2つのレジスタ(src1,src2)を
ペア・レジスタと見なして、16ビットのデータのうち
上位8ビットはレジスタsrc1に、下位8ビットはレ
ジスタsrc2に入っている。
ペア・レジスタと見なして、16ビットのデータのうち
上位8ビットはレジスタsrc1に、下位8ビットはレ
ジスタsrc2に入っている。
【0032】本実施例は、レジスタsrc1,src2
に入っている値をレジスタsrc3に指定されたビット
数(ここでは2ビットが指定されている)だけ左シフト
を行う論理演算である。演算結果は、レジスタdest
1,dest2に格納される。レジスタdest1の下
位2ビットには、src2からシフトアウトされた2ビ
ットのデータが入り、dest2の下位2ビットには0
が埋められる。
に入っている値をレジスタsrc3に指定されたビット
数(ここでは2ビットが指定されている)だけ左シフト
を行う論理演算である。演算結果は、レジスタdest
1,dest2に格納される。レジスタdest1の下
位2ビットには、src2からシフトアウトされた2ビ
ットのデータが入り、dest2の下位2ビットには0
が埋められる。
【0033】本機能を実施するための命令形式の例を二
例、図6に示す。
例、図6に示す。
【0034】図6の(1)において、src1,src
2はシフト対象のビット列が格納されるレジスタであ
り、src3はシフト数を指定するレジスタ、dest
1,dest2はシフト演算結果が格納されるレジスタ
である。シフト数の指定は即値でもかまわない。des
t1にはsrc1を左に2ビットシフトした結果が入
り、下位2ビットはsrc2からシフトアウトされたビ
ットが入る。dest2にはsrc2を左に2ビットシ
フトした結果が入り、下位2ビットは0で埋められる。
2はシフト対象のビット列が格納されるレジスタであ
り、src3はシフト数を指定するレジスタ、dest
1,dest2はシフト演算結果が格納されるレジスタ
である。シフト数の指定は即値でもかまわない。des
t1にはsrc1を左に2ビットシフトした結果が入
り、下位2ビットはsrc2からシフトアウトされたビ
ットが入る。dest2にはsrc2を左に2ビットシ
フトした結果が入り、下位2ビットは0で埋められる。
【0035】図6の(2)において、(1)と同様にs
rc1,src2はシフト対象のビット列が格納される
レジスタであり、src3はシフト数を指定するレジス
タである。シフト数の指定は即値でもかまわない。シフ
ト演算の結果は、src1,src2にそれぞれ格納さ
れる。
rc1,src2はシフト対象のビット列が格納される
レジスタであり、src3はシフト数を指定するレジス
タである。シフト数の指定は即値でもかまわない。シフ
ト演算の結果は、src1,src2にそれぞれ格納さ
れる。
【0036】このように16ビットのデータについて左
シフト演算を行う場合、従来の演算装置では図12に示
したように5つの命令からなる一連の手続きが必要であ
ったが、本発明では1つの命令で実現できる。
シフト演算を行う場合、従来の演算装置では図12に示
したように5つの命令からなる一連の手続きが必要であ
ったが、本発明では1つの命令で実現できる。
【0037】(第2実施例)16ビットのデータについ
て右シフト演算を行う例を図3をもとに説明する。先に
従来例として図13を用いて説明した機能と同様の機能
を実現するものである。
て右シフト演算を行う例を図3をもとに説明する。先に
従来例として図13を用いて説明した機能と同様の機能
を実現するものである。
【0038】2つのレジスタ(src1,src2)を
ペア・レジスタと見なして、16ビットのデータのうち
上位8ビットはレジスタsrc1に、下位8ビットはレ
ジスタsrc2に入っている。
ペア・レジスタと見なして、16ビットのデータのうち
上位8ビットはレジスタsrc1に、下位8ビットはレ
ジスタsrc2に入っている。
【0039】本実施例は、レジスタsrc1,src2
に入っている値をレジスタsrc3に指定されたビット
数(ここでは2ビットが指定されている)だけ右シフト
を行う論理演算である。演算結果は、レジスタdest
1,dest2に格納される。レジスタdest2の上
位2ビットには、src1からシフトアウトされた2ビ
ットのデータが入り、dest1の上位2ビットには0
が埋められる。
に入っている値をレジスタsrc3に指定されたビット
数(ここでは2ビットが指定されている)だけ右シフト
を行う論理演算である。演算結果は、レジスタdest
1,dest2に格納される。レジスタdest2の上
位2ビットには、src1からシフトアウトされた2ビ
ットのデータが入り、dest1の上位2ビットには0
が埋められる。
【0040】本機能を実施するための命令形式の例を二
例、図7に示す。
例、図7に示す。
【0041】図7の(1)において、src1,src
2はシフト対象のビット列が格納されるレジスタであ
り、src3はシフト数を指定するレジスタ、dest
1,dest2はシフト演算結果が格納されるレジスタ
である。シフト数の指定は即値でもかまわない。des
t2にはsrc2を右に2ビットシフトした結果が入
り、上位2ビットはsrc1からシフトアウトされたビ
ットが入る。dest1にはsrc1を右に2ビットシ
フトした結果が入り、上位2ビットは0で埋められる。
2はシフト対象のビット列が格納されるレジスタであ
り、src3はシフト数を指定するレジスタ、dest
1,dest2はシフト演算結果が格納されるレジスタ
である。シフト数の指定は即値でもかまわない。des
t2にはsrc2を右に2ビットシフトした結果が入
り、上位2ビットはsrc1からシフトアウトされたビ
ットが入る。dest1にはsrc1を右に2ビットシ
フトした結果が入り、上位2ビットは0で埋められる。
【0042】図7の(2)において、(1)と同様にs
rc1,src2はシフト対象のビット列が格納される
レジスタであり、src3はシフト数を指定するレジス
タである。シフト数の指定は即値でもかまわない。シフ
ト演算の結果は、src1,src2にそれぞれ格納さ
れる。
rc1,src2はシフト対象のビット列が格納される
レジスタであり、src3はシフト数を指定するレジス
タである。シフト数の指定は即値でもかまわない。シフ
ト演算の結果は、src1,src2にそれぞれ格納さ
れる。
【0043】このように16ビットのデータについて右
シフト演算を行う場合、従来の演算装置では図12に示
したように5つの命令からなる一連の手続きが必要であ
ったが、本発明では1つの命令で実現できる。
シフト演算を行う場合、従来の演算装置では図12に示
したように5つの命令からなる一連の手続きが必要であ
ったが、本発明では1つの命令で実現できる。
【0044】(第3実施例)レジスタに格納されている
8ビットのデータ同士を加算し、その結果をレジスタに
格納し、また加算によって生じたキャリーを別のレジス
タに足しこむという機能の例を図4をもとに説明する。
先に従来例として図14を用いて説明した機能と同様の
機能を実現するものである。
8ビットのデータ同士を加算し、その結果をレジスタに
格納し、また加算によって生じたキャリーを別のレジス
タに足しこむという機能の例を図4をもとに説明する。
先に従来例として図14を用いて説明した機能と同様の
機能を実現するものである。
【0045】本実施例は、レジスタsrc1,src2
に入っている値を加算して、加算によって生じたキャリ
ーをレジスタsrc3に入っている値に足し込むという
算術演算である。src1とsrc2を加算した演算結
果はレジスタdest1に格納され、レジスタsrc3
にキャリーを足し込んだ結果はdest2に格納され
る。
に入っている値を加算して、加算によって生じたキャリ
ーをレジスタsrc3に入っている値に足し込むという
算術演算である。src1とsrc2を加算した演算結
果はレジスタdest1に格納され、レジスタsrc3
にキャリーを足し込んだ結果はdest2に格納され
る。
【0046】本機能を実施するための命令形式の例を三
例、図8に示す。
例、図8に示す。
【0047】図8の(1)において、src1,src
2は加算対象のビット列が格納されるレジスタであり、
src3はキャリーを足し込む値が格納されているレジ
スタである。演算が実行されると、dest1にはsr
c1とsrc2を加算した結果が格納され,dest2
にはキャリーがsrc3の値に足し込まれた結果が格納
される。
2は加算対象のビット列が格納されるレジスタであり、
src3はキャリーを足し込む値が格納されているレジ
スタである。演算が実行されると、dest1にはsr
c1とsrc2を加算した結果が格納され,dest2
にはキャリーがsrc3の値に足し込まれた結果が格納
される。
【0048】図8の(2)において、src1,src
2は加算対象のビット列が格納されるレジスタであり、
dest2はキャリーを足し込む値が格納されているレ
ジスタである。演算が実行されると、src1とsrc
2を加算した結果がdest1に格納され,dest2
にはキャリーが足し込まれた結果が格納される。
2は加算対象のビット列が格納されるレジスタであり、
dest2はキャリーを足し込む値が格納されているレ
ジスタである。演算が実行されると、src1とsrc
2を加算した結果がdest1に格納され,dest2
にはキャリーが足し込まれた結果が格納される。
【0049】図8の(3)において、src1,src
2は加算対象のビット列が格納されるレジスタであり、
dest1はキャリーを足し込む値が格納されているレ
ジスタである。演算が実行されると、src1とsrc
2を加算した結果がsrc1に格納され,dest1に
はキャリーが足し込まれた結果が格納される。
2は加算対象のビット列が格納されるレジスタであり、
dest1はキャリーを足し込む値が格納されているレ
ジスタである。演算が実行されると、src1とsrc
2を加算した結果がsrc1に格納され,dest1に
はキャリーが足し込まれた結果が格納される。
【0050】このような加算処理を行う場合、従来の演
算装置では図14に示したように2つまたは3つの命令
からなる一連の手続きが必要であったが、本発明では同
様の機能が1つの命令で実現できる。
算装置では図14に示したように2つまたは3つの命令
からなる一連の手続きが必要であったが、本発明では同
様の機能が1つの命令で実現できる。
【0051】(第4実施例)レジスタに格納されている
8ビットのデータの減算を行い、その結果をレジスタに
格納し、また減算によって生じたボローを別のレジスタ
から引くという機能の例を図4をもとに説明する。先に
従来例として図15を用いて説明した機能と同様の機能
を実現するものである。
8ビットのデータの減算を行い、その結果をレジスタに
格納し、また減算によって生じたボローを別のレジスタ
から引くという機能の例を図4をもとに説明する。先に
従来例として図15を用いて説明した機能と同様の機能
を実現するものである。
【0052】本実施例は、レジスタsrc1からsrc
2に入っている値を減算して、減算によって生じたボロ
ーをレジスタsrc3に入っている値から引くという算
術演算である。src1からsrc2を減算した演算結
果はレジスタdest1に格納され、レジスタsrc3
からボローを引いた結果はdest2に格納される。
2に入っている値を減算して、減算によって生じたボロ
ーをレジスタsrc3に入っている値から引くという算
術演算である。src1からsrc2を減算した演算結
果はレジスタdest1に格納され、レジスタsrc3
からボローを引いた結果はdest2に格納される。
【0053】本機能を実施するための命令形式の例を三
例、図9に示す。
例、図9に示す。
【0054】図9の(1)において、src1,src
2は減算対象のビット列が格納されるレジスタであり、
src3はボローを引く値が格納されているレジスタで
ある。演算が実行されると、dest1にはsrc1か
らsrc2を減算した結果が格納され,dest2には
src3の値からボローが引かれた結果が格納される。
2は減算対象のビット列が格納されるレジスタであり、
src3はボローを引く値が格納されているレジスタで
ある。演算が実行されると、dest1にはsrc1か
らsrc2を減算した結果が格納され,dest2には
src3の値からボローが引かれた結果が格納される。
【0055】図8の(2)において、src1,src
2は減算対象のビット列が格納されるレジスタであり、
dest2はボローを引く値が格納されているレジスタ
である。演算が実行されると、src1からsrc2を
減算した結果がdest1に格納され,dest2には
ボローが引かれた結果が格納される。
2は減算対象のビット列が格納されるレジスタであり、
dest2はボローを引く値が格納されているレジスタ
である。演算が実行されると、src1からsrc2を
減算した結果がdest1に格納され,dest2には
ボローが引かれた結果が格納される。
【0056】図8の(3)において、src1,src
2は減算対象のビット列が格納されるレジスタであり、
dest1はボローを引く値が格納されているレジスタ
である。演算が実行されると、src1からsrc2を
減算した結果がsrc1に格納され,dest1にはボ
ローが引かれた結果が格納される。
2は減算対象のビット列が格納されるレジスタであり、
dest1はボローを引く値が格納されているレジスタ
である。演算が実行されると、src1からsrc2を
減算した結果がsrc1に格納され,dest1にはボ
ローが引かれた結果が格納される。
【0057】このような加算処理を行う場合、従来の演
算装置では図15に示したように3つの命令からなる一
連の手続きが必要であったが、本発明では同様の機能が
1つの命令で実現できる。
算装置では図15に示したように3つの命令からなる一
連の手続きが必要であったが、本発明では同様の機能が
1つの命令で実現できる。
【0058】以上に述べたように、本発明は、頻繁に使
われるような一連の命令を単一の命令に置き換えること
が可能となるため、従来に比べて、命令の数を少なくす
ることができ、それによってプログラムのサイズや実行
時間を小さくすることができる。
われるような一連の命令を単一の命令に置き換えること
が可能となるため、従来に比べて、命令の数を少なくす
ることができ、それによってプログラムのサイズや実行
時間を小さくすることができる。
【0059】以上、本発明の演算装置について、詳細に
説明したが、本発明は本実施例に限定されず、本発明の
主旨を逸脱しない範囲において、種々の改良や変更を成
し得るであろう。従って、本発明はこの開示から妥当な
特許請求の範囲に係わる発明特定事項によってのみ限定
されるものでなければならない。
説明したが、本発明は本実施例に限定されず、本発明の
主旨を逸脱しない範囲において、種々の改良や変更を成
し得るであろう。従って、本発明はこの開示から妥当な
特許請求の範囲に係わる発明特定事項によってのみ限定
されるものでなければならない。
【0060】
【発明の効果】本発明によれば、頻繁に使われるような
一連の命令を単一の命令に置き換えることが可能となる
ため、従来に比べて、命令の数を少なくすることがで
き、それによってプログラムのサイズや実行時間を小さ
くすることができる。特に、精度がレジスタのビットサ
イズを超えた浮動小数点データや整数データの計算など
の、多桁計算を行う上で有用である。
一連の命令を単一の命令に置き換えることが可能となる
ため、従来に比べて、命令の数を少なくすることがで
き、それによってプログラムのサイズや実行時間を小さ
くすることができる。特に、精度がレジスタのビットサ
イズを超えた浮動小数点データや整数データの計算など
の、多桁計算を行う上で有用である。
【図1】本発明に係る演算装置の一実施例を示す構成図
である。
である。
【図2】本発明に係る演算装置に実装される左シフト演
算機能の一実施例を示す入出力関連図である。
算機能の一実施例を示す入出力関連図である。
【図3】本発明に係る演算装置に実装される右シフト演
算機能の一実施例を示す入出力関連図である。
算機能の一実施例を示す入出力関連図である。
【図4】本発明に係る演算装置に実装される加算演算機
能の一実施例を示す入出力関連図である。
能の一実施例を示す入出力関連図である。
【図5】本発明に係る演算装置に実装される減算演算機
能の一実施例を示す入出力関連図である。
能の一実施例を示す入出力関連図である。
【図6】図2における左シフト命令の記述例を示す図で
ある。
ある。
【図7】図3における右シフト命令の記述例を示す図で
ある。
ある。
【図8】図4における加算命令の記述例を示す図であ
る。
る。
【図9】図5における減算命令の記述例を示す図であ
る。
る。
【図10】従来の標準的な演算装置に実装される命令形
式を示す図である。
式を示す図である。
【図11】従来の標準的な演算装置の一実施例を示す構
成図である。
成図である。
【図12】従来の標準的な演算装置に実装される命令で
図2の左シフト処理を実現する例を示す図である。
図2の左シフト処理を実現する例を示す図である。
【図13】従来の標準的な演算装置に実装される命令で
図3の右シフト処理を実現する例を示す図である。
図3の右シフト処理を実現する例を示す図である。
【図14】従来の標準的な演算装置に実装される命令で
図4の加算処理を実現する例を示す図である。
図4の加算処理を実現する例を示す図である。
【図15】従来の標準的な演算装置に実装される命令で
図5の減算処理を実現する例を示す図である。
図5の減算処理を実現する例を示す図である。
1....プログラムカウンタ(PC) 2....命令メモリ 3,3a....レジスタ 4,4a....ALU 5....データメモリ 31,32....読出しレジスタ 33,37....書込みレジスタ 34,38....書込みデータ 35,36....読出しデータ
Claims (5)
- 【請求項1】 実装する命令に従って所定の演算を実行
する演算装置であって、 少なくとも1つ以上のデータを用いて演算を行い、1つ
又は2つ以上の演算結果を出力することを特徴とする演
算装置。 - 【請求項2】 前記演算装置は、第1のビットデータ及
び第2のビットデータを左方向に任意のビット数シフト
し、 このシフトによって前記第2のビットデータからシフト
アウトするビットを、前記第1のビットデータの下位ビ
ットに埋める演算を行い、 前記第1のビットデータと前記第2のビットデータを演
算結果として出力することを特徴とする演算装置。 - 【請求項3】 前記演算装置は、第1のビットデータ及
び第2のビットデータを右方向に任意のビット数シフト
し、 このシフトによって前記第1のビットデータからシフト
アウトするビットを、前記第2のビットデータの上位ビ
ットに埋める演算を行い、 前記第1のビットデータと前記第2のビットデータを演
算結果として出力することを特徴とする演算装置。 - 【請求項4】 前記演算装置は、第1のデータに第2の
データを加算し、 この加算によって生じたキャリーを第3のデータに加算
する演算を行い、 前記第1のデータ,第2のデータ及び第3のデータを演
算結果として出力することを特徴とする演算装置。 - 【請求項5】 前記演算装置は、第1のデータから第2
のデータを減算し、 この減算によって生じたボローを第3のデータから減算
する演算を行い、 前記第1のデータ,第2のデータ及び第3のデータを演
算結果として出力することを特徴とする演算装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP26945699A JP2001092633A (ja) | 1999-09-22 | 1999-09-22 | 複数の結果を出力する命令を有する演算装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP26945699A JP2001092633A (ja) | 1999-09-22 | 1999-09-22 | 複数の結果を出力する命令を有する演算装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2001092633A true JP2001092633A (ja) | 2001-04-06 |
Family
ID=17472698
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP26945699A Abandoned JP2001092633A (ja) | 1999-09-22 | 1999-09-22 | 複数の結果を出力する命令を有する演算装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2001092633A (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011134305A (ja) * | 2009-12-22 | 2011-07-07 | Intel Corp | 3個のソースオペランドを加算する加算命令 |
US9189234B2 (en) | 2013-09-04 | 2015-11-17 | Globalfoundries Inc. | Reducing overhead in loading constants |
JP2017515177A (ja) * | 2014-03-26 | 2017-06-08 | インテル・コーポレーション | 3ソースオペランド浮動小数点加算プロセッサ、方法、システム、及び命令 |
-
1999
- 1999-09-22 JP JP26945699A patent/JP2001092633A/ja not_active Abandoned
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011134305A (ja) * | 2009-12-22 | 2011-07-07 | Intel Corp | 3個のソースオペランドを加算する加算命令 |
JP2014038664A (ja) * | 2009-12-22 | 2014-02-27 | Intel Corp | 3個のソースオペランドを加算する加算命令 |
US9189234B2 (en) | 2013-09-04 | 2015-11-17 | Globalfoundries Inc. | Reducing overhead in loading constants |
JP2017515177A (ja) * | 2014-03-26 | 2017-06-08 | インテル・コーポレーション | 3ソースオペランド浮動小数点加算プロセッサ、方法、システム、及び命令 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP2241968A2 (en) | System with wide operand architecture, and method | |
JPH09311786A (ja) | データ処理装置 | |
JPH04172533A (ja) | 電子計算機 | |
US7546442B1 (en) | Fixed length memory to memory arithmetic and architecture for direct memory access using fixed length instructions | |
US6430684B1 (en) | Processor circuits, systems, and methods with efficient granularity shift and/or merge instruction(s) | |
US5854939A (en) | Eight-bit microcontroller having a risc architecture | |
CN104133748B (zh) | 用以在微处理器内组合来自多个寄存器单元的对应半字单元的方法及系统 | |
US20110072170A1 (en) | Systems and Methods for Transferring Data to Maintain Preferred Slot Positions in a Bi-endian Processor | |
EP2302510A1 (en) | System for matrix multipy operation with wide operand architecture and method | |
US20080046682A1 (en) | Data processing unit and method for parallel vector data processing | |
KR20060103282A (ko) | 보안 메시지 인증 제어 명령어의 처리 방법 | |
US7111155B1 (en) | Digital signal processor computation core with input operand selection from operand bus for dual operations | |
US6889242B1 (en) | Rounding operations in computer processor | |
EP2267596B1 (en) | Processor core for processing instructions of different formats | |
JP2000322235A (ja) | 情報処理装置 | |
JP3556252B2 (ja) | オフセット合計を計算するデータ処理システムとその方法 | |
JP2001092633A (ja) | 複数の結果を出力する命令を有する演算装置 | |
US6408380B1 (en) | Execution of an instruction to load two independently selected registers in a single cycle | |
US6275925B1 (en) | Program execution method and program execution device | |
US8332447B2 (en) | Systems and methods for performing fixed-point fractional multiplication operations in a SIMD processor | |
US8938485B1 (en) | Integer division using floating-point reciprocal | |
US6820189B1 (en) | Computation core executing multiple operation DSP instructions and micro-controller instructions of shorter length without performing switch operation | |
JPS62156742A (ja) | デ−タ書込み制御方式 | |
JP2002215606A (ja) | データ処理装置 | |
GB2461849A (en) | Push immediate instruction with several operands |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20040419 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040511 |
|
A762 | Written abandonment of application |
Free format text: JAPANESE INTERMEDIATE CODE: A762 Effective date: 20040721 |