JP3154150B2 - 演算装置 - Google Patents
演算装置Info
- Publication number
- JP3154150B2 JP3154150B2 JP20997291A JP20997291A JP3154150B2 JP 3154150 B2 JP3154150 B2 JP 3154150B2 JP 20997291 A JP20997291 A JP 20997291A JP 20997291 A JP20997291 A JP 20997291A JP 3154150 B2 JP3154150 B2 JP 3154150B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- register
- output
- arithmetic
- multiplexer
- 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
Landscapes
- Image Processing (AREA)
- Complex Calculations (AREA)
Description
【0001】
【産業上の利用分野】本発明は、例えば画像データを高
速処理するCPUなどに用いて好適な演算装置に関す
る。
速処理するCPUなどに用いて好適な演算装置に関す
る。
【0002】
【従来の技術】CPUにおいて画像データを処理する場
合、例えば図3のフローチャートに示すような処理を繰
り返し実行する必要が生じることがある。この処理は入
力データAとBのそれぞれ絶対値を得て、その絶対値同
士を比較し、入力データAの絶対値が入力データBの絶
対値と等しいかあるいは大きい時、変数Yに入力データ
をAをセットし、入力データBの絶対値が入力データA
の絶対値より大きい場合は、変数Yにあらかじめ設定さ
れた所定のデータCR0をセットするものである。
合、例えば図3のフローチャートに示すような処理を繰
り返し実行する必要が生じることがある。この処理は入
力データAとBのそれぞれ絶対値を得て、その絶対値同
士を比較し、入力データAの絶対値が入力データBの絶
対値と等しいかあるいは大きい時、変数Yに入力データ
をAをセットし、入力データBの絶対値が入力データA
の絶対値より大きい場合は、変数Yにあらかじめ設定さ
れた所定のデータCR0をセットするものである。
【0003】従来のCPUにおいてこの処理を実行する
には、例えば次のような処理ステップが必要であった。
には、例えば次のような処理ステップが必要であった。
【0004】MOVE.W D0,D5 1 TST.W D0 2 BGE.S pass0 3 MOVE. W D0,D4 4 EXT.L D4 5 NEG.L D4 6 MOVE.W D4,D0 pass0: 7 TST.W D1 8 BGE.S pass1 9 MOVE. W D1,D4 10 EXT.L D4 11 NEG.L D4 12 MOVE.W D4,D1 pass1: 13 CMP. W D1,D0 14 BLT.S const 15 BRA.S finish const: 16 MOVE.W D3,D2 17 BRA.S end finish: 18 MOVE.W D5,D2 end : ・ ・ ・
【0005】ここでD0ないしD5はデータレジスタを
表し、それぞれ次の各データを記憶する。
表し、それぞれ次の各データを記憶する。
【0006】D0:A D1:B D2:Y D3:CR0 D4: ワーク用 D5: ストア用
【0007】上記18のステップで示される処理を実行
する前に、データレジスタD0とD5にデータAがスト
アされる。ステップ1の前の命令はこの処理を意味して
いる。ステップ1においてデータレジスタD0にストア
されているデータの正負を判定する。ステップ2はデー
タレジスタD0のデータが正である場合、pass0に
ジャンプすることを指令する。すなわちデータレジスタ
D0にストアされているデータAが正である場合、その
まま絶対値データとして用いることができるため、それ
以降のステップ3ないし6の処理がスキップされること
になる。
する前に、データレジスタD0とD5にデータAがスト
アされる。ステップ1の前の命令はこの処理を意味して
いる。ステップ1においてデータレジスタD0にストア
されているデータの正負を判定する。ステップ2はデー
タレジスタD0のデータが正である場合、pass0に
ジャンプすることを指令する。すなわちデータレジスタ
D0にストアされているデータAが正である場合、その
まま絶対値データとして用いることができるため、それ
以降のステップ3ないし6の処理がスキップされること
になる。
【0008】データレジスタD0のデータAが負である
場合ステップ3に進み、データレジスタD0の値がデー
タレジスタD4にストアされる。次にステップ4におい
てデータレジスタD4にストアされている例えば16ビ
ットのデータAを32ビットのデータに拡張する。ステ
ップ5においてはデータレジスタD4にストアされてい
るデータの極性を反転させる。そしてステップ6におい
てデータレジスタD4にストアされているデータのう
ち、16ビットをデータレジスタD0にストアする。以
上の処理により、データレジスタD0にデータAの絶対
値がストアされたことになる。
場合ステップ3に進み、データレジスタD0の値がデー
タレジスタD4にストアされる。次にステップ4におい
てデータレジスタD4にストアされている例えば16ビ
ットのデータAを32ビットのデータに拡張する。ステ
ップ5においてはデータレジスタD4にストアされてい
るデータの極性を反転させる。そしてステップ6におい
てデータレジスタD4にストアされているデータのう
ち、16ビットをデータレジスタD0にストアする。以
上の処理により、データレジスタD0にデータAの絶対
値がストアされたことになる。
【0009】ステップ7ないし12はステップ1ないし
6に対応するものであり、データBの絶対値をデータレ
ジスタD1にストアさせるものである。
6に対応するものであり、データBの絶対値をデータレ
ジスタD1にストアさせるものである。
【0010】ステップ13はデータレジスタD1とD0
にストアされているデータBとAの絶対値の差を演算す
る。ステップ14はステップ13における演算結果のス
テイタスからその大小を判定し、データAの絶対値がデ
ータBの絶対値より小さい時、constにジャンプさ
せる。データAの絶対値がデータBの絶対値と等しいか
それより大きい場合は、ステップ15においてfinis
hにジャンプされる。ステップ16においてはデータレ
ジスタD3にストアされているデータ(CR0)がデー
タレジスタD2にストアされる。そしてステップ17に
おいてはendにジャンプされる。また、ステップ18
においてはデータレジスタD5にストアされているデー
タ(データA)がデータレジスタD2にストアされる。
にストアされているデータBとAの絶対値の差を演算す
る。ステップ14はステップ13における演算結果のス
テイタスからその大小を判定し、データAの絶対値がデ
ータBの絶対値より小さい時、constにジャンプさ
せる。データAの絶対値がデータBの絶対値と等しいか
それより大きい場合は、ステップ15においてfinis
hにジャンプされる。ステップ16においてはデータレ
ジスタD3にストアされているデータ(CR0)がデー
タレジスタD2にストアされる。そしてステップ17に
おいてはendにジャンプされる。また、ステップ18
においてはデータレジスタD5にストアされているデー
タ(データA)がデータレジスタD2にストアされる。
【0011】以上のようにして、17のインストラクシ
ョン(命令)により図3のフローチャートに示した処理
が行われることになる。一つのインストラクションの実
行には一つのクロックが必要であるため、以上の処理を
実行するは17クロックの時間が必要になる。
ョン(命令)により図3のフローチャートに示した処理
が行われることになる。一つのインストラクションの実
行には一つのクロックが必要であるため、以上の処理を
実行するは17クロックの時間が必要になる。
【0012】
【発明が解決しようとする課題】従来の装置は、上述し
たように所定の処理を実行するのに多くの命令が必要に
なり、処理に時間がかかる課題があった。また、プログ
ラムを作成する面からもステップ数が多くなり、多くの
労力を必要とした。
たように所定の処理を実行するのに多くの命令が必要に
なり、処理に時間がかかる課題があった。また、プログ
ラムを作成する面からもステップ数が多くなり、多くの
労力を必要とした。
【0013】本発明はこのような状況に鑑みてなされた
ものであり、命令の数を少なくし短時間で処理が完了す
るようにしたものである。
ものであり、命令の数を少なくし短時間で処理が完了す
るようにしたものである。
【0014】
【課題を解決するための手段】請求項1に記載の演算装
置は、演算するデータを保持する第1のレジスタ21,
22と、演算した結果得られたステイタスを保持する第
2のレジスタ40と、レジスタ21,22とレジスタ4
0の間に配置され、レジスタ21,22に保持されたデ
ータを演算する算術論理演算器29と、算術論理演算器
29より出力されるステイタスを判定するとともに、レ
ジスタ40に供給するロジック回路39と、ロジック回
路39におけるステイタスの判定結果に対応して算術論
理演算器29の出力を選択するマルチプレクサ35とを
備えることを特徴とする。
置は、演算するデータを保持する第1のレジスタ21,
22と、演算した結果得られたステイタスを保持する第
2のレジスタ40と、レジスタ21,22とレジスタ4
0の間に配置され、レジスタ21,22に保持されたデ
ータを演算する算術論理演算器29と、算術論理演算器
29より出力されるステイタスを判定するとともに、レ
ジスタ40に供給するロジック回路39と、ロジック回
路39におけるステイタスの判定結果に対応して算術論
理演算器29の出力を選択するマルチプレクサ35とを
備えることを特徴とする。
【0015】請求項2に記載の演算装置は、マルチプレ
クサ35がレジスタ21に保持されたデータまたはレジ
スタ36にあらかじめ設定されている所定のデータの一
方を選択する。あるいは又レジスタ36と37に保持さ
れているデータの一方、レジスタ21と22に保持され
ているデータの一方、又は算術論理演算器29の出力と
レジスタ36の出力のいずれか一方のデータを選択する
ようになされていることを特徴とする。
クサ35がレジスタ21に保持されたデータまたはレジ
スタ36にあらかじめ設定されている所定のデータの一
方を選択する。あるいは又レジスタ36と37に保持さ
れているデータの一方、レジスタ21と22に保持され
ているデータの一方、又は算術論理演算器29の出力と
レジスタ36の出力のいずれか一方のデータを選択する
ようになされていることを特徴とする。
【0016】請求項3に記載の演算装置は、レジスタ2
1,22に保持されたデータのパス出力、絶対値出力、
ビット反転出力、又はビット符号拡張出力のうち少なく
とも2つのいずれかを選択し、算術論理演算器29に供
給するマルチプレクサ27,34を備えることを特徴と
する。
1,22に保持されたデータのパス出力、絶対値出力、
ビット反転出力、又はビット符号拡張出力のうち少なく
とも2つのいずれかを選択し、算術論理演算器29に供
給するマルチプレクサ27,34を備えることを特徴と
する。
【0017】
【作用】請求項1に記載の演算装置においては、レジス
タ21,22とレジスタ40の間に算術論理演算器29
とロジック回路39が配置され、ロジック回路39は算
術論理演算器29が出力するステイタスがレジスタ40
にストアされる前にそれを判定し、マルチプレクサ35
を制御する。従って短い命令で短時間に処理を完了する
ことができる。
タ21,22とレジスタ40の間に算術論理演算器29
とロジック回路39が配置され、ロジック回路39は算
術論理演算器29が出力するステイタスがレジスタ40
にストアされる前にそれを判定し、マルチプレクサ35
を制御する。従って短い命令で短時間に処理を完了する
ことができる。
【0018】請求項2に記載の演算装置においては、マ
ルチプレクサ35は4つの組み合わせの中から1つの組
み合わせを選択することができ、選択された組み合わせ
の中において一方のデータを選択することができる。従
って多くの用途に適用することが可能になる。
ルチプレクサ35は4つの組み合わせの中から1つの組
み合わせを選択することができ、選択された組み合わせ
の中において一方のデータを選択することができる。従
って多くの用途に適用することが可能になる。
【0019】請求項3に記載の演算装置においては、マ
ルチプレクサ27,34はレジスタ21,22に保持さ
れたデータのパス出力、絶対値出力、ビット反転出力、
又はビット符号拡張出力のち、少なくとも2つのいずれ
かを選択する。従って、種々の演算に利用することが可
能になる。
ルチプレクサ27,34はレジスタ21,22に保持さ
れたデータのパス出力、絶対値出力、ビット反転出力、
又はビット符号拡張出力のち、少なくとも2つのいずれ
かを選択する。従って、種々の演算に利用することが可
能になる。
【0020】
【実施例】図2は本発明の演算装置の一実施例の構成を
示すブロック図である。ラインメモリ1には図示せぬ回
路から処理されるべきデータが入力され、記憶される。
マルチプライヤ2はラインメモリ1より供給されたデー
タを乗算し、その演算結果をレジスタファイル3の各レ
ジスタに供給し、記憶させる。また、レジスタファイル
3のレジスタ間の乗算もできるようになっている。レジ
スタファイル3には必要に応じてラインメモリ1から直
接データが供給され、記憶される。算術論理演算部(A
LU)4はレジスタファイル3より供給されるデータを
演算し、その演算結果をレジスタファイル3に供給し、
記憶させる。またそのステイタスをステイタスレジスタ
5に供給し、記憶させる。
示すブロック図である。ラインメモリ1には図示せぬ回
路から処理されるべきデータが入力され、記憶される。
マルチプライヤ2はラインメモリ1より供給されたデー
タを乗算し、その演算結果をレジスタファイル3の各レ
ジスタに供給し、記憶させる。また、レジスタファイル
3のレジスタ間の乗算もできるようになっている。レジ
スタファイル3には必要に応じてラインメモリ1から直
接データが供給され、記憶される。算術論理演算部(A
LU)4はレジスタファイル3より供給されるデータを
演算し、その演算結果をレジスタファイル3に供給し、
記憶させる。またそのステイタスをステイタスレジスタ
5に供給し、記憶させる。
【0021】ステイタスレジスタ5に記憶されたステイ
タスは、さらにシーケンサ6に供給され、処理される。
シーケンサ6の処理結果は、マイクロメモリ7に供給さ
れる。マイクロメモリ7には図示せぬ回路からマイクロ
プログラミングコード(マイクロコード)が供給されて
いる。マイクロメモリ7は供給されたマイクロコードを
パイプラインレジスタ8を介してラインメモリ1ないし
シーケンサ6に供給するようになされている。
タスは、さらにシーケンサ6に供給され、処理される。
シーケンサ6の処理結果は、マイクロメモリ7に供給さ
れる。マイクロメモリ7には図示せぬ回路からマイクロ
プログラミングコード(マイクロコード)が供給されて
いる。マイクロメモリ7は供給されたマイクロコードを
パイプラインレジスタ8を介してラインメモリ1ないし
シーケンサ6に供給するようになされている。
【0022】ラインメモリ1は512ワード×9ビット
の構成とされ、マルチプライヤ2は8ビット×9ビット
の構成とされている。レジスタファイル3は16ビット
×16本の構成とされ、書き込み及び読み出し用にそれ
ぞれ3ポートが設けられている。算術論理演算部4は通
常の算術論理演算のみならずバレルシフタ、プライオリ
ティエンコーダ、シングルビットシフタ、などを包含し
ている。ステイタスレジスタ5は1ビットのものが4個
設けられている。マイクロメモリ7は64ワード×72
ビット及び8ワード×72ビットの構成とされている。
の構成とされ、マルチプライヤ2は8ビット×9ビット
の構成とされている。レジスタファイル3は16ビット
×16本の構成とされ、書き込み及び読み出し用にそれ
ぞれ3ポートが設けられている。算術論理演算部4は通
常の算術論理演算のみならずバレルシフタ、プライオリ
ティエンコーダ、シングルビットシフタ、などを包含し
ている。ステイタスレジスタ5は1ビットのものが4個
設けられている。マイクロメモリ7は64ワード×72
ビット及び8ワード×72ビットの構成とされている。
【0023】図2に示す処理エレメントは図示はしてい
ないが4段設けられており、各エレメント間においては
相互にデータの授受が可能になされている。
ないが4段設けられており、各エレメント間においては
相互にデータの授受が可能になされている。
【0024】図1は算術論理演算部4のより詳細な構成
を示している。レジスタ21,22,38は図2におけ
るレジスタファイル3の一部を構成しており、レジスタ
40はステイタスレジスタ5の一部を構成している。レ
ジスタ21,22とレジスタ38,40の間には、マル
チプレクサ27,34、マルチプレクサ27,34の出
力を演算する算術論理演算器29、レジスタ36,3
7、バレルシフタ41、プライオリティエンコーダ4
2、シングルビットシフタ43の出力のいずれかを選択
するマルチプレクサ35、マルチプレクサ35を制御す
るロジック回路39が設けられている。マルチプレクサ
27と算術論理演算器29にはロジック回路28の出力
が供給されている。
を示している。レジスタ21,22,38は図2におけ
るレジスタファイル3の一部を構成しており、レジスタ
40はステイタスレジスタ5の一部を構成している。レ
ジスタ21,22とレジスタ38,40の間には、マル
チプレクサ27,34、マルチプレクサ27,34の出
力を演算する算術論理演算器29、レジスタ36,3
7、バレルシフタ41、プライオリティエンコーダ4
2、シングルビットシフタ43の出力のいずれかを選択
するマルチプレクサ35、マルチプレクサ35を制御す
るロジック回路39が設けられている。マルチプレクサ
27と算術論理演算器29にはロジック回路28の出力
が供給されている。
【0025】マルチプレクサ27にはレジスタ21の出
力データがパス(PASS)回路23、絶対値(AB
S)回路24、反転(INV)回路26を介して供給さ
れるようになされている。またマルチプレクサ27には
ゼロ(ZERO)回路25の出力も供給されている。同
様にマルチプレクサ34にはレジスタ22の出力がパス
回路30、絶対値回路31、拡張(SNEX)回路32
を介して供給されるようになされている。マルチプレク
サ34にはゼロ回路33の出力も供給されている。
力データがパス(PASS)回路23、絶対値(AB
S)回路24、反転(INV)回路26を介して供給さ
れるようになされている。またマルチプレクサ27には
ゼロ(ZERO)回路25の出力も供給されている。同
様にマルチプレクサ34にはレジスタ22の出力がパス
回路30、絶対値回路31、拡張(SNEX)回路32
を介して供給されるようになされている。マルチプレク
サ34にはゼロ回路33の出力も供給されている。
【0026】PLB、PLC2,1,0、PLD1,
0、PLF5,4,3,2,1,0、PLE2,1,0
及びPLG0はパイプラインレジスタ8より供給される
マイクロコードを示している。
0、PLF5,4,3,2,1,0、PLE2,1,0
及びPLG0はパイプラインレジスタ8より供給される
マイクロコードを示している。
【0027】次にその動作について説明する。レジスタ
21と22にはマルチプライヤ2あるいはラインメモリ
1から所定のデータが供給されストアされている。レジ
スタ21のデータはパス回路23を介してそのまま(ス
ルーして)マルチプレクサ27に供給される。また、絶
対値回路24によりその絶対値が演算された後、マルチ
プレクサ27に供給される。あるいはまた、反転回路2
6により各ビットの論理が反転されてマルチプレクサ2
7に供給されるようになされている。マルチプレクサ2
7はパス回路23、絶対値回路24、反転回路26、あ
るいはまたゼロ回路25から供給されるゼロデータ(全
てのビットが0であるデータ)のいずれかを選択し、算
術論理演算器29の一方の入力端子に供給する。
21と22にはマルチプライヤ2あるいはラインメモリ
1から所定のデータが供給されストアされている。レジ
スタ21のデータはパス回路23を介してそのまま(ス
ルーして)マルチプレクサ27に供給される。また、絶
対値回路24によりその絶対値が演算された後、マルチ
プレクサ27に供給される。あるいはまた、反転回路2
6により各ビットの論理が反転されてマルチプレクサ2
7に供給されるようになされている。マルチプレクサ2
7はパス回路23、絶対値回路24、反転回路26、あ
るいはまたゼロ回路25から供給されるゼロデータ(全
てのビットが0であるデータ)のいずれかを選択し、算
術論理演算器29の一方の入力端子に供給する。
【0028】一方、レジスタ22にストアされたデータ
はパス回路30を介してそのままマルチプレクサ34に
供給される。また絶対値回路31はレジスタ22にスト
アされたデータの絶対値を演算して、マルチプレクサ3
4に供給する。拡張回路32は例えば8ビットのデータ
を16ビットのデータに拡張して、マルチプレクサ34
に供給する。ゼロ回路33はマルチプレクサ34に全て
のビットが0であるデータを供給している。
はパス回路30を介してそのままマルチプレクサ34に
供給される。また絶対値回路31はレジスタ22にスト
アされたデータの絶対値を演算して、マルチプレクサ3
4に供給する。拡張回路32は例えば8ビットのデータ
を16ビットのデータに拡張して、マルチプレクサ34
に供給する。ゼロ回路33はマルチプレクサ34に全て
のビットが0であるデータを供給している。
【0029】マルチプレクサ34はマイクロコードPL
D1,0により表7に示すように各回路の出力を選択す
る。すなわち、PLD1とPLD0が00の場合パス回
路30の出力を選択し、01の場合絶対値回路31の出
力を選択し、10の場合拡張回路32の出力を選択し、
11の場合ZERO回路33の出力を選択する。マルチ
プレクサ34の出力は算術論理演算器29の他方の入力
に供給される。
D1,0により表7に示すように各回路の出力を選択す
る。すなわち、PLD1とPLD0が00の場合パス回
路30の出力を選択し、01の場合絶対値回路31の出
力を選択し、10の場合拡張回路32の出力を選択し、
11の場合ZERO回路33の出力を選択する。マルチ
プレクサ34の出力は算術論理演算器29の他方の入力
に供給される。
【表7】
【0030】マルチプレクサ27と算術論理演算器29
の動作は、ロジック回路28によって表1に示すように
制御される。
の動作は、ロジック回路28によって表1に示すように
制御される。
【表1】
【0031】マイクロコードPLBはマルチプレクサ
(MUXA)27の出力選択を指令するものであり、P
LC2,1,0は算術論理演算器29の機能を選択する
ものである。今、マルチプレクサ27より供給されるデ
ータをA、マルチプレクサ34より供給されるデータを
Bとすると、PLC2,1,0が000であるとき、算
術論理演算器29は2つの入力の加算(A+B)を行
う。但し、PLC2,1,0が000であるとき、マイ
クロコードPLBがどのような状態にあったとしてもマ
ルチプレクサ27は反転回路26の出力を選択するよう
に制御される。そして、後述するようにこの場合マルチ
プレクサ34はZERO回路33の出力を選択する。従
って、算術論理演算器29はレジスタ21のラッチデー
タの反転データを出力することになる。もちろん、この
とき、Cn(キャリィイン)もあれば、出力される。
(MUXA)27の出力選択を指令するものであり、P
LC2,1,0は算術論理演算器29の機能を選択する
ものである。今、マルチプレクサ27より供給されるデ
ータをA、マルチプレクサ34より供給されるデータを
Bとすると、PLC2,1,0が000であるとき、算
術論理演算器29は2つの入力の加算(A+B)を行
う。但し、PLC2,1,0が000であるとき、マイ
クロコードPLBがどのような状態にあったとしてもマ
ルチプレクサ27は反転回路26の出力を選択するよう
に制御される。そして、後述するようにこの場合マルチ
プレクサ34はZERO回路33の出力を選択する。従
って、算術論理演算器29はレジスタ21のラッチデー
タの反転データを出力することになる。もちろん、この
とき、Cn(キャリィイン)もあれば、出力される。
【0032】またマイクロコードPLC2,1,0が1
11である場合、算術論理演算器29は両入力の加算を
実行する。但し、この場合マルチプレクサ34はパス回
路30の出力を選択するように制御され、またマルチプ
レクサ27はゼロ回路25の出力を選択するように制御
される(A=0)ので、算術論理演算器29の出力デー
タはB(Cnも含む)となる。
11である場合、算術論理演算器29は両入力の加算を
実行する。但し、この場合マルチプレクサ34はパス回
路30の出力を選択するように制御され、またマルチプ
レクサ27はゼロ回路25の出力を選択するように制御
される(A=0)ので、算術論理演算器29の出力デー
タはB(Cnも含む)となる。
【0033】マイクロコードPLC2,1,0が001
である場合、算術論理演算器29はB−Aの演算を実行
する。なお、表1において−1+Cnは回路の内部的処
理のために必要なものであり、実質的な演算はデータB
からデータAを減算する処理である。以下同様にマイク
ロコードPLC2,1,0が010のときA−B、01
1のときA+Bの演算を実行する。また100のときA
とBのイクスクルーシブオアを演算し、101のときA
とBのオアを演算し、110のときAとBのアンドを演
算する。
である場合、算術論理演算器29はB−Aの演算を実行
する。なお、表1において−1+Cnは回路の内部的処
理のために必要なものであり、実質的な演算はデータB
からデータAを減算する処理である。以下同様にマイク
ロコードPLC2,1,0が010のときA−B、01
1のときA+Bの演算を実行する。また100のときA
とBのイクスクルーシブオアを演算し、101のときA
とBのオアを演算し、110のときAとBのアンドを演
算する。
【0034】またマイクロコードPLBが0のとき、マ
ルチプレクサ27はパス回路23の出力を選択し、1の
とき絶対値回路24の出力を選択する。
ルチプレクサ27はパス回路23の出力を選択し、1の
とき絶対値回路24の出力を選択する。
【0035】このようにして、算術論理演算器29によ
り演算されたデータはマルチプレクサ35に入力され
る。マルチプレクサ35にはこの他レジスタ36に記憶
されているデータCR0(固定値)、レジスタ37に記
憶されているデータCR1(固定値)、バレルシフタ4
1の出力、プライオリティエンコーダ42の出力、およ
びシングルビットシフタ43の出力がそれぞれ供給され
ている。マルチプレクサ35はこれらの入力のいずれか
を選択し、レジスタ38に出力する。マルチプレクサ3
5の選択はロジック回路39により制御される。
り演算されたデータはマルチプレクサ35に入力され
る。マルチプレクサ35にはこの他レジスタ36に記憶
されているデータCR0(固定値)、レジスタ37に記
憶されているデータCR1(固定値)、バレルシフタ4
1の出力、プライオリティエンコーダ42の出力、およ
びシングルビットシフタ43の出力がそれぞれ供給され
ている。マルチプレクサ35はこれらの入力のいずれか
を選択し、レジスタ38に出力する。マルチプレクサ3
5の選択はロジック回路39により制御される。
【0036】
【表2】 表2はロジック回路39の論理を示している。ロジック
回路39には、パイプラインレジスタ8が出力するマイ
クロコードPLF5,4,3,2,1,0、算術論理演
算器29が出力するステイタス(キャリー、サイン、オ
ーバーフロー及びゼロ)、バレルシフタ41が出力する
BZ(バレルシフタゼロフラグ)とNT(バレルシフタ
41の入力データの上位2ビットが01または10のと
き1となる出力)、プライオリティエンコーダ42の出
力GS(プライオリティエンコーダ42の入力が全て1
のとき1となる出力)、シングルビットシフタ43が出
力するSC(シングルビットシフタキャリーフラグ)と
SZ(シングルビットシフタゼロフラグ)、が入力され
ている。ロジック回路39はマイクロコードPLF2,
1,0が000であるとき算術論理演算器29の出力を
選択するようにし、001のときバレルシフタ41の出
力を選択し、010のときプライオリティエンコーダ4
2の出力を選択し、011の時シングルビットシフタ4
3の出力を選択するようにマルチプレクサ35を制御す
る。
回路39には、パイプラインレジスタ8が出力するマイ
クロコードPLF5,4,3,2,1,0、算術論理演
算器29が出力するステイタス(キャリー、サイン、オ
ーバーフロー及びゼロ)、バレルシフタ41が出力する
BZ(バレルシフタゼロフラグ)とNT(バレルシフタ
41の入力データの上位2ビットが01または10のと
き1となる出力)、プライオリティエンコーダ42の出
力GS(プライオリティエンコーダ42の入力が全て1
のとき1となる出力)、シングルビットシフタ43が出
力するSC(シングルビットシフタキャリーフラグ)と
SZ(シングルビットシフタゼロフラグ)、が入力され
ている。ロジック回路39はマイクロコードPLF2,
1,0が000であるとき算術論理演算器29の出力を
選択するようにし、001のときバレルシフタ41の出
力を選択し、010のときプライオリティエンコーダ4
2の出力を選択し、011の時シングルビットシフタ4
3の出力を選択するようにマルチプレクサ35を制御す
る。
【0037】マイクロコードPLF2,1,0が000
である場合において、マイクロコードPLF5,4,3
が000である時、算術論理演算器29が出力するステ
イタスのキャリーが1であれば、ロジック回路39はス
テイタスとして1を出力する。これは桁上げがあったこ
とを意味する。またキャリーが0である時はステイタス
も0とされる。PLF5,4,3が001である時、サ
インが1であればステイタスも1とされる。これは演算
結果Yが負であることを意味する。サインが0の時はス
テイタスも0とされる。また、マイクロコードPLF
5,4,3が010の時、オーバーフローが1であれば
ステイタスは1とされる。これはYが16ビットで表す
ことのできる数を超えていることを意味する。オーバー
フローが0である時、ステイタスも0とされる。以下同
様にしてマイクロコードPLF5,4,3が011の場
合、算術論理演算器29が出力するステータスのゼロが
1の時、ロジック回路39が出力するステイタスが1と
され、ゼロが0の時ステイタスも0とされる。
である場合において、マイクロコードPLF5,4,3
が000である時、算術論理演算器29が出力するステ
イタスのキャリーが1であれば、ロジック回路39はス
テイタスとして1を出力する。これは桁上げがあったこ
とを意味する。またキャリーが0である時はステイタス
も0とされる。PLF5,4,3が001である時、サ
インが1であればステイタスも1とされる。これは演算
結果Yが負であることを意味する。サインが0の時はス
テイタスも0とされる。また、マイクロコードPLF
5,4,3が010の時、オーバーフローが1であれば
ステイタスは1とされる。これはYが16ビットで表す
ことのできる数を超えていることを意味する。オーバー
フローが0である時、ステイタスも0とされる。以下同
様にしてマイクロコードPLF5,4,3が011の場
合、算術論理演算器29が出力するステータスのゼロが
1の時、ロジック回路39が出力するステイタスが1と
され、ゼロが0の時ステイタスも0とされる。
【0038】表2におけるCバー(Cの上に線を付加し
たものをこのように表現する)はキャリーの反転を意味
し、Zはゼロを、Nはサインを、Vはオーバーフロー
を、それぞれ示している。CバーとZのオア、NとVの
イクスルーシブオア、NとVのイクスクルーシブオアと
Zとのオアなどは、全てキャリー、サイン、オーバーフ
ロー、またはゼロから演算されるものである。
たものをこのように表現する)はキャリーの反転を意味
し、Zはゼロを、Nはサインを、Vはオーバーフロー
を、それぞれ示している。CバーとZのオア、NとVの
イクスルーシブオア、NとVのイクスクルーシブオアと
Zとのオアなどは、全てキャリー、サイン、オーバーフ
ロー、またはゼロから演算されるものである。
【0039】このほか、マルチプレクサ35により、レ
ジスタ36に記憶されている固定データCR0またはレ
ジスタ21に記憶されているデータのいずれかを選択し
たい場合、マイクロコードPLF2,1,0は100と
される(表3)。またレジスタ36に記憶されている固
定データCR0とレジスタ37に記憶されている固定デ
ータCR1のいずれかを選択したい場合においては、P
LF2,1,0は101とされ(表4)、レジスタ21
に記憶されているデータとレジスタ22に記憶されてい
るデータのいずれかを選択したい場合には110とされ
(表5)、レジスタ36に記憶されている固定データC
R0と算術論理演算器29の出力のいずれかを選択した
い場合においては、111とされる(表6)。
ジスタ36に記憶されている固定データCR0またはレ
ジスタ21に記憶されているデータのいずれかを選択し
たい場合、マイクロコードPLF2,1,0は100と
される(表3)。またレジスタ36に記憶されている固
定データCR0とレジスタ37に記憶されている固定デ
ータCR1のいずれかを選択したい場合においては、P
LF2,1,0は101とされ(表4)、レジスタ21
に記憶されているデータとレジスタ22に記憶されてい
るデータのいずれかを選択したい場合には110とされ
(表5)、レジスタ36に記憶されている固定データC
R0と算術論理演算器29の出力のいずれかを選択した
い場合においては、111とされる(表6)。
【表3】
【表4】
【表5】
【表6】
【0040】これらの表からも分かるように、マイクロ
コードPLF5ないし0を所定の値に設定することによ
りマルチプレクサ35から所定のデータを選択・出力さ
せることができる。そしてそれに対応するステイタスが
ロジック回路39からレジスタ40に供給されることに
なる。
コードPLF5ないし0を所定の値に設定することによ
りマルチプレクサ35から所定のデータを選択・出力さ
せることができる。そしてそれに対応するステイタスが
ロジック回路39からレジスタ40に供給されることに
なる。
【0041】今、図3に示したように入力データAの絶
対値が入力データBの絶対値と等しいかそれより大きい
場合、変数Yに入力データAをセットし、入力データB
の絶対値が入力データAの絶対値より大きい場合、変数
Yに所定のデータCR0をセットする処理を実行するこ
とを考える。この場合、算術論理演算器29には表8に
示すようにA−Bの処理を実行させるか、表9に示すよ
うにB−Aの処理を実行させる。
対値が入力データBの絶対値と等しいかそれより大きい
場合、変数Yに入力データAをセットし、入力データB
の絶対値が入力データAの絶対値より大きい場合、変数
Yに所定のデータCR0をセットする処理を実行するこ
とを考える。この場合、算術論理演算器29には表8に
示すようにA−Bの処理を実行させるか、表9に示すよ
うにB−Aの処理を実行させる。
【表8】
【表9】
【表10】
【0042】そしてこれらの表8または表9に示す出力
データYA、またはYBとして表10の第2番目の値を選
択するようにすればよい。ステイタスとしてはCバーを
選ぶことができる。すなわち、この場合パイプラインレ
ジスタ8より出力されるマイクロコードのうち、PLB
は1、PLC2,1,0は010、PLD1,0は0
1、PLF5,4,3,2,1,0は100100とさ
れる。
データYA、またはYBとして表10の第2番目の値を選
択するようにすればよい。ステイタスとしてはCバーを
選ぶことができる。すなわち、この場合パイプラインレ
ジスタ8より出力されるマイクロコードのうち、PLB
は1、PLC2,1,0は010、PLD1,0は0
1、PLF5,4,3,2,1,0は100100とさ
れる。
【0043】また、以上の処理を実行させるための命令
は次のように一つの命令(1クロックで動作する命令)
で表すことができる。
は次のように一つの命令(1クロックで動作する命令)
で表すことができる。
【0044】 COMR.AB R3A, RA0.A, RB1.A, WC2, C1 & SSW0 AUL
【0045】ここでCOMR.ABはデータAからデー
タBを減算することを意味する。R3AはCR0または
データAを出力することを意味する。RA0.Aはリー
ド側のAポートの番号0のレジスタファイルのデータの
絶対値をとることを意味する。またRB1.Aはリード
側のBポートから番号1のレジスタファイルのデータを
取り出し、その絶対値をとることを意味する。WC2は
ライト側のCポートから番号2のレジスタファイルを選
び、そこに書き込むことを意味する(CR0またはデー
タAが書き込まれることになる)。C1は算術論理演算
器29のキャリーインを表す。この場合この値は1とな
る。SSW0はレジスタ40の0番に選択されたステイ
タスを書き込むことを意味する。AULはステイタスと
してCバーを選択することを意味する。
タBを減算することを意味する。R3AはCR0または
データAを出力することを意味する。RA0.Aはリー
ド側のAポートの番号0のレジスタファイルのデータの
絶対値をとることを意味する。またRB1.Aはリード
側のBポートから番号1のレジスタファイルのデータを
取り出し、その絶対値をとることを意味する。WC2は
ライト側のCポートから番号2のレジスタファイルを選
び、そこに書き込むことを意味する(CR0またはデー
タAが書き込まれることになる)。C1は算術論理演算
器29のキャリーインを表す。この場合この値は1とな
る。SSW0はレジスタ40の0番に選択されたステイ
タスを書き込むことを意味する。AULはステイタスと
してCバーを選択することを意味する。
【0046】以上のように本実施例においては、図3に
示す処理を1つの命令により表現することができる。従
って、この処理は1つのクロックの間に実行される。そ
の結果、極めて短時間の間に処理が完了されることにな
る。
示す処理を1つの命令により表現することができる。従
って、この処理は1つのクロックの間に実行される。そ
の結果、極めて短時間の間に処理が完了されることにな
る。
【0047】
【発明の効果】以上のごとく、請求項1に記載の演算装
置によれば、第1のレジスタと第2のレジスタとの間に
算術論理演算器を配置し、その演算により得られるステ
イタスを第2のレジスタに保持させる前に、ロジック回
路により判定し、その判定結果に対応して第1のマルチ
プレクサを制御するようにしたので、短時間の間に多く
の処理を実行することができる。またプログラムも少な
くてすみプログラム作成の時間も短くすることができ
る。
置によれば、第1のレジスタと第2のレジスタとの間に
算術論理演算器を配置し、その演算により得られるステ
イタスを第2のレジスタに保持させる前に、ロジック回
路により判定し、その判定結果に対応して第1のマルチ
プレクサを制御するようにしたので、短時間の間に多く
の処理を実行することができる。またプログラムも少な
くてすみプログラム作成の時間も短くすることができ
る。
【0048】請求項2に記載の演算装置によれば、第1
のレジスタに保持されたデータとあらかじめ設定された
所定のデータ、あらかじめ設定された2つの所定のデー
タ、第1のレジスタに保持された2つのデータ、又は算
術論理演算器の出力とあらかじめ設定された所定のデー
タのうちいずれか1つの一方のデータを第1のマルチプ
レクサにより選択するようにしたので、同一の回路で種
々の演算に適用することが可能になる。
のレジスタに保持されたデータとあらかじめ設定された
所定のデータ、あらかじめ設定された2つの所定のデー
タ、第1のレジスタに保持された2つのデータ、又は算
術論理演算器の出力とあらかじめ設定された所定のデー
タのうちいずれか1つの一方のデータを第1のマルチプ
レクサにより選択するようにしたので、同一の回路で種
々の演算に適用することが可能になる。
【0049】また請求項3に記載の演算装置によれば、
第1のレジスタに保持されたデータのパス出力、絶対値
出力、ビット反転出力、またはビット符号拡張出力のう
ち、少なくとも2つのいずれかを選択して算術論理演算
器に供給するようにしたので、請求項2に記載した場合
と同様に同一の回路で種々の演算に適用することが可能
になる。
第1のレジスタに保持されたデータのパス出力、絶対値
出力、ビット反転出力、またはビット符号拡張出力のう
ち、少なくとも2つのいずれかを選択して算術論理演算
器に供給するようにしたので、請求項2に記載した場合
と同様に同一の回路で種々の演算に適用することが可能
になる。
【図1】図2の実施例における算術論理演算部4のより
詳細な構成を示すブロック図
詳細な構成を示すブロック図
【図2】本発明の演算装置の1実施例の構成を示すブロ
ック図
ック図
【図3】演算処理の一例を示すフローチャート
1 ラインメモリ 2 マルチプライヤ 3 レジスタファイル 4 算術論理演算部 5 ステイタスレジスタ 6 シーケンサ 7 マイクロメモリ 8 パイプラインレジスタ 21,22 レジスタ 23 パス回路 24 絶対値回路 25 ZERO回路 26 反転回路 27 マルチプレクサ 28 ロジック回路 29 算術論理演算器 30 パス回路 31 絶対値回路 32 拡張回路 33 ZERO回路 34,35 マルチプレクサ 36,37,38 レジスタ 39 ロジック回路 40 レジスタ
Claims (3)
- 【請求項1】 演算するデータを保持する第1のレジス
タと、 演算した結果得られたステータスを保持する第2のレジ
スタと、 前記第1のレジスタと第2のレジスタの間に配置され、
前記第1のレジスタに保持されたデータを演算する算術
論理演算器と、 前記算術論理演算器より出力されるステータスを判定す
るとともに、前記第2のレジスタに供給するロジック回
路と、 前記ロジック回路におけるステータスの判定結果に対応
して前記算術論理演算器の出力を選択する第1のマルチ
プレクサとを備えることを特徴とする演算装置。 - 【請求項2】 前記第1のマルチプレクサは、 前記第1のレジスタに保持されたデータと予め設定され
た所定のデータ、 予め設定された2つの所定のデータ、 前記第1のレジスタに保持された2つのデータ、 または前記算術論理演算器の出力と予め設定された所定
のデータのうち、いずれか1つの一方のデータを選択す
ることを特徴とする請求項1に記載の演算装置。 - 【請求項3】 前記演算装置は、前記第1のレジスタに
保持されたデータのパス出力、絶対値出力、ビット反転
出力またはビット符号拡張出力のうち少なくとも2つの
いずれかを選択し、前記算術論理演算器に供給する第2
のマルチプレクサをさらに備えることを特徴とする請求
項1に記載の演算装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP20997291A JP3154150B2 (ja) | 1991-07-26 | 1991-07-26 | 演算装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP20997291A JP3154150B2 (ja) | 1991-07-26 | 1991-07-26 | 演算装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH0535445A JPH0535445A (ja) | 1993-02-12 |
JP3154150B2 true JP3154150B2 (ja) | 2001-04-09 |
Family
ID=16581733
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP20997291A Expired - Fee Related JP3154150B2 (ja) | 1991-07-26 | 1991-07-26 | 演算装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3154150B2 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005135090A (ja) * | 2003-10-29 | 2005-05-26 | Seiko Epson Corp | 演算処理装置 |
DE102015100169B3 (de) * | 2015-01-08 | 2016-01-28 | German Tech Precision Co., Ltd. | Umlaufgetriebe |
-
1991
- 1991-07-26 JP JP20997291A patent/JP3154150B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH0535445A (ja) | 1993-02-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6327605B2 (en) | Data processor and data processing system | |
US6189021B1 (en) | Method for forming two-dimensional discrete cosine transform and its inverse involving a reduced number of multiplication operations | |
JPH06103068A (ja) | データ処理装置 | |
JP3154150B2 (ja) | 演算装置 | |
US5546551A (en) | Method and circuitry for saving and restoring status information in a pipelined computer | |
EP0169030A2 (en) | Data processing circuit for calculating either a total sum or a total product of a series of data at a high speed | |
KR100188374B1 (ko) | 연산처리장치 | |
JPH09198231A (ja) | 演算処理装置 | |
JP3619343B2 (ja) | データ処理装置と方法 | |
JP2006502489A (ja) | 並行処理する機能ユニットを有するデータ処理装置 | |
US6792442B1 (en) | Signal processor and product-sum operating device for use therein with rounding function | |
JP2003084972A (ja) | 条件付減算命令の実行速度を改善し、命令が正しく実行されるオペランドの範囲を拡大する方法 | |
JP2002182905A (ja) | ディジタル信号処理プロセッサ | |
JP2989830B2 (ja) | ベクトル処理方法 | |
KR100307518B1 (ko) | 디씨티구현방법및장치 | |
EP0862112A2 (en) | Data processing system having an instruction pipeline | |
JP2989829B2 (ja) | ベクトル処理方法 | |
JPH01237766A (ja) | データ処理装置およびそれを用いた画像データ処理システム | |
JP3088956B2 (ja) | 演算装置 | |
JPH05165875A (ja) | ベクトル演算処理装置 | |
JPS60214004A (ja) | プログラマブル・コントロ−ラの機能命令方式 | |
JPH03139773A (ja) | ディジタル画像処理装置 | |
US20050188183A1 (en) | Digital signal processor having data address generator with speculative register file | |
JPH0398163A (ja) | ベクトルデータ処理装置 | |
JPH0895781A (ja) | プロセッサの算術論理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20001220 |
|
LAPS | Cancellation because of no payment of annual fees |