JPH0635669A - 中央演算処理装置 - Google Patents
中央演算処理装置Info
- Publication number
- JPH0635669A JPH0635669A JP4214750A JP21475092A JPH0635669A JP H0635669 A JPH0635669 A JP H0635669A JP 4214750 A JP4214750 A JP 4214750A JP 21475092 A JP21475092 A JP 21475092A JP H0635669 A JPH0635669 A JP H0635669A
- Authority
- JP
- Japan
- Prior art keywords
- data
- register
- bit
- held
- adder
- 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
Links
Abstract
(57)【要約】
【目的】 複数組のデータを同時に加算処理して、演算
速度を向上する。 【構成】 並列加算器を構成する各1ビット全加算器1
3a〜13dの桁上がり信号を次の桁の1ビット全加算
器13a〜13dに伝えず、その桁上がり信号をフラグ
レジスタ16のキャリービットに反映させることによ
り、CPU11に、並列加算器12に与える1組のデー
タ(2つのデータ)のそれぞれを、その1組のデータの
データサイズより小さいサイズの複数のデータの集まり
とみなして、それぞれのデータを同時に干渉することな
く加算させる。
速度を向上する。 【構成】 並列加算器を構成する各1ビット全加算器1
3a〜13dの桁上がり信号を次の桁の1ビット全加算
器13a〜13dに伝えず、その桁上がり信号をフラグ
レジスタ16のキャリービットに反映させることによ
り、CPU11に、並列加算器12に与える1組のデー
タ(2つのデータ)のそれぞれを、その1組のデータの
データサイズより小さいサイズの複数のデータの集まり
とみなして、それぞれのデータを同時に干渉することな
く加算させる。
Description
【0001】
【産業上の利用分野】この発明は、マイクロコンピュー
タにおいて、高速な加算および乗算を可能とする中央演
算処理装置に関するものである。
タにおいて、高速な加算および乗算を可能とする中央演
算処理装置に関するものである。
【0002】
【従来の技術】図6は従来の算術論理演算ユニットを有
する中央演算処理装置を示すブロック図であり、図にお
いて、1は並列加算器を内蔵する算術論理演算ユニット
(以下、ALUという)、2はデータバス、3,4はA
LU1に入力するデータを一時保持するレジスタで、そ
れぞれAレジスタおよびBレジスタ、5は乗算のときに
用いるMレジスタ、6はALU1による演算結果を一時
保持するSレジスタである。
する中央演算処理装置を示すブロック図であり、図にお
いて、1は並列加算器を内蔵する算術論理演算ユニット
(以下、ALUという)、2はデータバス、3,4はA
LU1に入力するデータを一時保持するレジスタで、そ
れぞれAレジスタおよびBレジスタ、5は乗算のときに
用いるMレジスタ、6はALU1による演算結果を一時
保持するSレジスタである。
【0003】また、7はALU1と各レジスタ3〜6、
命令の解読を行う図示しない命令解読部、およびこの命
令解読部で解読された結果によりALU1と各レジスタ
3〜6を制御する制御部から構成された中央演算処理装
置(以下、CPUという)、8はメモリである。なお、
ALU1は32ビットのデータの加算,乗算および他の
処理を行う。また、各レジスタ3〜6は32ビットのレ
ジスタである。
命令の解読を行う図示しない命令解読部、およびこの命
令解読部で解読された結果によりALU1と各レジスタ
3〜6を制御する制御部から構成された中央演算処理装
置(以下、CPUという)、8はメモリである。なお、
ALU1は32ビットのデータの加算,乗算および他の
処理を行う。また、各レジスタ3〜6は32ビットのレ
ジスタである。
【0004】次に動作について説明する。まず、加算方
法について、図7のメモリマップを用いて説明する。図
7に示すメモリマップにおいて、データ格納領域Cに格
納された16ビットのデータ(データ)C とデータ格納
領域C’に格納された16ビットのデータ(データ)C'
を加算し、データ格納領域C''に格納する操作と、デー
タ格納領域Dに格納された16ビットのデータ(デー
タ)D とデータ格納領域D’に格納された16ビットの
データ(データ)D'を加算し、データ格納領域D''に格
納する操作が行われる場合について、図8を用いて説明
する。
法について、図7のメモリマップを用いて説明する。図
7に示すメモリマップにおいて、データ格納領域Cに格
納された16ビットのデータ(データ)C とデータ格納
領域C’に格納された16ビットのデータ(データ)C'
を加算し、データ格納領域C''に格納する操作と、デー
タ格納領域Dに格納された16ビットのデータ(デー
タ)D とデータ格納領域D’に格納された16ビットの
データ(データ)D'を加算し、データ格納領域D''に格
納する操作が行われる場合について、図8を用いて説明
する。
【0005】上記の2つの加算を行うために、CPU7
は2つの命令(ADD C C’C'')と(ADD D
D’D'')を実行する。はじめに命令(ADD C
C’C'')を実行する(図8(a))。命令(ADD
C C’ C'')が実行されると、まず、Aレジスタ3
にデータ(データ)C が保持され、続いてBレジスタ4
にデータ(データ)C'が保持される。
は2つの命令(ADD C C’C'')と(ADD D
D’D'')を実行する。はじめに命令(ADD C
C’C'')を実行する(図8(a))。命令(ADD
C C’ C'')が実行されると、まず、Aレジスタ3
にデータ(データ)C が保持され、続いてBレジスタ4
にデータ(データ)C'が保持される。
【0006】ここで、Aレジスタ3とBレジスタ4にそ
れぞれ保持されているデータ(データ)C と(データ)
C'をALU1が加算し、結果をSレジスタ6に出力す
る。Sレジスタ6に保持された加算結果をメモリ8のデ
ータ格納領域C''に格納して、命令(ADD C C’
C'')の実行を終了する。
れぞれ保持されているデータ(データ)C と(データ)
C'をALU1が加算し、結果をSレジスタ6に出力す
る。Sレジスタ6に保持された加算結果をメモリ8のデ
ータ格納領域C''に格納して、命令(ADD C C’
C'')の実行を終了する。
【0007】次に、命令(ADD D D’D'')を実
行する(図8(b))。命令(ADD D D’D'')
が実行されると、まず、Aレジスタ3にデータ(デー
タ)Dが保持され、続いてBレジスタ4にデータ(デー
タ)D'が保持される。
行する(図8(b))。命令(ADD D D’D'')
が実行されると、まず、Aレジスタ3にデータ(デー
タ)Dが保持され、続いてBレジスタ4にデータ(デー
タ)D'が保持される。
【0008】ここで、Aレジスタ3とBレジスタ4にそ
れぞれ保持されたデータ(データ)D と(データ)D'を
ALU1が加算し、結果をSレジスタ6に出力する。S
レジスタ6に保持されたデータをメモリ8のデータ格納
領域C''に格納して、命令(ADD D D’D'')の
実行を終了する。
れぞれ保持されたデータ(データ)D と(データ)D'を
ALU1が加算し、結果をSレジスタ6に出力する。S
レジスタ6に保持されたデータをメモリ8のデータ格納
領域C''に格納して、命令(ADD D D’D'')の
実行を終了する。
【0009】なお、命令(ADD C C’ C'')と
(ADD D D’D'')が実行される順番は逆でもか
まわない。以上の操作は、図示しない手段によりCPU
7に与えられた命令を、CPU7の図示しない命令解読
部が解読し、解読した結果を用いて図示しない制御部が
ALU1と各レジスタ3〜6を制御することにより行わ
れる。
(ADD D D’D'')が実行される順番は逆でもか
まわない。以上の操作は、図示しない手段によりCPU
7に与えられた命令を、CPU7の図示しない命令解読
部が解読し、解読した結果を用いて図示しない制御部が
ALU1と各レジスタ3〜6を制御することにより行わ
れる。
【0010】次に、従来の並列加算器を内蔵するALU
1を有するCPU7による乗算方法を、図9を用いて説
明する。図9は各レジスタ3〜6に保持されるデータの
変化のみを示す。まず、CPU1に図示しない手段によ
り乗算命令(MUL E F)を与える。ここで、Eお
よびFは、図示しないが、データ格納領域を示す。この
データ格納領域はメモリでもレジスタでもよい。
1を有するCPU7による乗算方法を、図9を用いて説
明する。図9は各レジスタ3〜6に保持されるデータの
変化のみを示す。まず、CPU1に図示しない手段によ
り乗算命令(MUL E F)を与える。ここで、Eお
よびFは、図示しないが、データ格納領域を示す。この
データ格納領域はメモリでもレジスタでもよい。
【0011】データ格納領域EおよびFには、16ビッ
トの2つのデータ(データ)E =(E15,E14,・・
・,E1 ,E0 )(EX =0または1)と(データ)F
=(F15,F14,・・・,F1 ,F0 )(FX =0また
は1)がそれぞれ格納されており、この命令において
は、(データ)E が被乗数、(データ)F が乗数である
とする。
トの2つのデータ(データ)E =(E15,E14,・・
・,E1 ,E0 )(EX =0または1)と(データ)F
=(F15,F14,・・・,F1 ,F0 )(FX =0また
は1)がそれぞれ格納されており、この命令において
は、(データ)E が被乗数、(データ)F が乗数である
とする。
【0012】次に(データ)E をAレジスタ3に、(デ
ータ)F をMレジスタ5にそれぞれ保持し、値`0´を
Bレジスタに保持する(図9)。ALU1は、Bレジ
スタ4に保持されているデータ`0´を取り込み、Aレ
ジスタ3に格納されているデータ(データ)E か、また
はデータ(データ)E の代わりにデータ`0´を加算し
て、Bレジスタ4に再び保持する操作を行う(図9
)。どちらのデータを加算するかは、Mレジスタ5に
保持されているデータの最下位ビットによって決まる。
ータ)F をMレジスタ5にそれぞれ保持し、値`0´を
Bレジスタに保持する(図9)。ALU1は、Bレジ
スタ4に保持されているデータ`0´を取り込み、Aレ
ジスタ3に格納されているデータ(データ)E か、また
はデータ(データ)E の代わりにデータ`0´を加算し
て、Bレジスタ4に再び保持する操作を行う(図9
)。どちらのデータを加算するかは、Mレジスタ5に
保持されているデータの最下位ビットによって決まる。
【0013】すなわち、図9の矢印αで示すように、、
図示しない制御部がMレジスタ5に保持されているデー
タの最下位ビットを監視しており、この最下位ビットが
`1´であれば、(データ)E の加算を行い、`0´で
あればデータ`0´の加算を行う。
図示しない制御部がMレジスタ5に保持されているデー
タの最下位ビットを監視しており、この最下位ビットが
`1´であれば、(データ)E の加算を行い、`0´で
あればデータ`0´の加算を行う。
【0014】続いて、Bレジスタ4に保持されたデータ
を1ビット右にシフトする。このときBレジスタ4から
1ビット外に出てしまうことになるが、この1ビットは
Mレジスタ5の最上位ビットに入れられる。このため、
Mレジスタに保持されている(データ)F も1ビット右
にシフトし、最下位ビット`F0´はMレジスタ5の外
に捨てられる(図9)。
を1ビット右にシフトする。このときBレジスタ4から
1ビット外に出てしまうことになるが、この1ビットは
Mレジスタ5の最上位ビットに入れられる。このため、
Mレジスタに保持されている(データ)F も1ビット右
にシフトし、最下位ビット`F0´はMレジスタ5の外
に捨てられる(図9)。
【0015】次に、ALU1は、Bレジスタ4に保持さ
れているデータをALU1内部に取り込み、Aレジスタ
3に格納されているデータ(データ)E かまたは、デー
タ(データ)E の代わりにデータ`0´を加算し、Bレ
ジスタ4に再び保持する操作を行う(図9)。どちら
のデータを加算するかの判断は上記と同様にして行われ
る。
れているデータをALU1内部に取り込み、Aレジスタ
3に格納されているデータ(データ)E かまたは、デー
タ(データ)E の代わりにデータ`0´を加算し、Bレ
ジスタ4に再び保持する操作を行う(図9)。どちら
のデータを加算するかの判断は上記と同様にして行われ
る。
【0016】続いて、Bレジスタ4に保持されたデータ
を1ビット右にシフトする。このときもBレジスタ4か
ら1ビット外に出てしまうことになるが、この1ビット
はMレジスタ5の最上位ビットに入れられる。このため
Mレジスタ5に保持されているデータ(データ)F も1
ビット右にシフトし、最下位ビットはMレジスタ5の外
に捨てられる(図9)。
を1ビット右にシフトする。このときもBレジスタ4か
ら1ビット外に出てしまうことになるが、この1ビット
はMレジスタ5の最上位ビットに入れられる。このため
Mレジスタ5に保持されているデータ(データ)F も1
ビット右にシフトし、最下位ビットはMレジスタ5の外
に捨てられる(図9)。
【0017】このようにして、図9と図9に示す2
つの操作を14回繰り返した後の、図9の斜線で示し
たBレジスタ4とMレジスタ5にまたがるデータが乗算
結果である。
つの操作を14回繰り返した後の、図9の斜線で示し
たBレジスタ4とMレジスタ5にまたがるデータが乗算
結果である。
【0018】
【発明が解決しようとする課題】従来の中央演算処理装
置は以上のように構成されているので、加算器が加算で
きるデータサイズよりも小さいデータサイズの1組のデ
ータ(2つのデータ)の加算を複数回行う場合、2組以
上のデータの加算を同時に行うことができず、結果的に
加算および乗算の演算速度が遅くなるなどの問題点があ
った。
置は以上のように構成されているので、加算器が加算で
きるデータサイズよりも小さいデータサイズの1組のデ
ータ(2つのデータ)の加算を複数回行う場合、2組以
上のデータの加算を同時に行うことができず、結果的に
加算および乗算の演算速度が遅くなるなどの問題点があ
った。
【0019】この発明は上記のような問題点を解消する
ためになされたもので、2つ以上のデータを同時に加算
処理することによって、加算および乗算の演算処理速度
を迅速化できる中央演算処理装置を得ることを目的とす
る。
ためになされたもので、2つ以上のデータを同時に加算
処理することによって、加算および乗算の演算処理速度
を迅速化できる中央演算処理装置を得ることを目的とす
る。
【0020】
【課題を解決するための手段】この発明に係る中央演算
処理装置は、複数の1ビット全加算器により構成された
並列加算器を内蔵する算術論理演算ユニットと、該算術
論理演算ユニットの入出力データを一時保持する複数の
レジスタとを備えて、与えられた命令に従って上記算術
論理演算ユニットおよび上記各レジスタの動作を制御す
るものにおいて、上記並列加算器による加算動作におい
て、上記各1ビット全加算器の桁上がり信号を次の1ビ
ット全加算器に伝えずに、フラグレジスタのキャリービ
ットに反映させるようにしたものである。
処理装置は、複数の1ビット全加算器により構成された
並列加算器を内蔵する算術論理演算ユニットと、該算術
論理演算ユニットの入出力データを一時保持する複数の
レジスタとを備えて、与えられた命令に従って上記算術
論理演算ユニットおよび上記各レジスタの動作を制御す
るものにおいて、上記並列加算器による加算動作におい
て、上記各1ビット全加算器の桁上がり信号を次の1ビ
ット全加算器に伝えずに、フラグレジスタのキャリービ
ットに反映させるようにしたものである。
【0021】
【作用】この発明における中央演算処理装置は、加算器
に与える1組のデータ(2つのデータ)のそれぞれを、
その1組のデータのデータサイズより小さいサイズの複
数のデータの集まりとみなして、それぞれのデータを同
時に干渉することなく加算する。
に与える1組のデータ(2つのデータ)のそれぞれを、
その1組のデータのデータサイズより小さいサイズの複
数のデータの集まりとみなして、それぞれのデータを同
時に干渉することなく加算する。
【0022】
実施例1.以下、この発明の一実施例を図について説明
する。図2はこの発明における並列加算器を示す。図2
において、12は1ビット全加算器32個で構成された
32ビットの並列加算器であり、これが32個の1ビッ
ト全加算器13a〜13b,13c〜13dおよび1ビ
ット全加算器13a〜13dの桁上がり信号線14a〜
14dをそれぞれ有する。
する。図2はこの発明における並列加算器を示す。図2
において、12は1ビット全加算器32個で構成された
32ビットの並列加算器であり、これが32個の1ビッ
ト全加算器13a〜13b,13c〜13dおよび1ビ
ット全加算器13a〜13dの桁上がり信号線14a〜
14dをそれぞれ有する。
【0023】また、3,4は上記並列加算器12に入力
するデータを一時保持するレジスタで、Aレジスタおよ
びBレジスタ、6は加算結果を一時保持するSレジスタ
である。各レジスタ3,4および6は図6に示すものと
同じものである。
するデータを一時保持するレジスタで、Aレジスタおよ
びBレジスタ、6は加算結果を一時保持するSレジスタ
である。各レジスタ3,4および6は図6に示すものと
同じものである。
【0024】次に動作を説明する。ここでは、並列加算
器12により32ビットのデータGとHを加算する場合
の動作について、図1を用いて説明する。図2におい
て、15は全加算器FA15の桁上がり信号14bの接
続を切り換えるためのスイッチであり、データGの上位
16ビットをG1、下位16ビットを62、データHの
上位16ビットをH1、下位16ビットをH2とする。
器12により32ビットのデータGとHを加算する場合
の動作について、図1を用いて説明する。図2におい
て、15は全加算器FA15の桁上がり信号14bの接
続を切り換えるためのスイッチであり、データGの上位
16ビットをG1、下位16ビットを62、データHの
上位16ビットをH1、下位16ビットをH2とする。
【0025】いま、データGとHがAレジスタ3とBレ
ジスタ4に図1に示すように保持されているとする。図
示しない制御部は、スイッチ手段としてのスイッチ15
を図1に示すように切り換えると、これにより1ビット
全加算器13bで桁上がりが生じた場合は、この桁上が
り情報は1ビット全加算器13cには伝わらずに、フラ
グレジスタ16に伝えられて、桁上がりフラグ(以下、
キャリーフラグと称す)CF0をセットする。
ジスタ4に図1に示すように保持されているとする。図
示しない制御部は、スイッチ手段としてのスイッチ15
を図1に示すように切り換えると、これにより1ビット
全加算器13bで桁上がりが生じた場合は、この桁上が
り情報は1ビット全加算器13cには伝わらずに、フラ
グレジスタ16に伝えられて、桁上がりフラグ(以下、
キャリーフラグと称す)CF0をセットする。
【0026】次に、データG,Hの上位16ビットG
1,H1を1ビット全加算器13c〜13dに、下位1
6ビットG2,H2を全加算器FA0〜FA15に入力
し加算を行い、結果をSレジスタ6に出力する。1ビッ
ト全加算器13bの桁上がりを全加算器13cに伝えな
いため、Sレジスタ6に保持されるデータの上位16ビ
ットはG1とH1を加算した値となり、Sレジスタ6に
保持されるデータの下位16ビットはG2とH2を加算
した値となる。
1,H1を1ビット全加算器13c〜13dに、下位1
6ビットG2,H2を全加算器FA0〜FA15に入力
し加算を行い、結果をSレジスタ6に出力する。1ビッ
ト全加算器13bの桁上がりを全加算器13cに伝えな
いため、Sレジスタ6に保持されるデータの上位16ビ
ットはG1とH1を加算した値となり、Sレジスタ6に
保持されるデータの下位16ビットはG2とH2を加算
した値となる。
【0027】また、1ビット全加算器13bで桁上がり
が生じた場合は、スイッチ15によりこの桁上がり情報
がフラグレジスタ16に伝えられて、キャリーフラグC
F0をセットする。1ビット全加算器13dで桁上がり
が生じた場合は、桁上がり信号線14dによりこの桁上
がり情報がフラグレジスタ16に伝えられて、キャリー
フラグCF1をセットする。
が生じた場合は、スイッチ15によりこの桁上がり情報
がフラグレジスタ16に伝えられて、キャリーフラグC
F0をセットする。1ビット全加算器13dで桁上がり
が生じた場合は、桁上がり信号線14dによりこの桁上
がり情報がフラグレジスタ16に伝えられて、キャリー
フラグCF1をセットする。
【0028】すなわち、図2に示した並列加算器12で
は、Aレジスタ3およびBレジスタ4に保持される32
ビットのデータの下位16ビットと上位16ビットとを
別々のデータとみなし、上位の16ビットのデータどう
しと下位の16ビットどうしをそれぞれ独立に、しかも
同時に加算することができ、加算結果は、それぞれSレ
ジスタの上位16ビットと下位16ビットに出力され
る。
は、Aレジスタ3およびBレジスタ4に保持される32
ビットのデータの下位16ビットと上位16ビットとを
別々のデータとみなし、上位の16ビットのデータどう
しと下位の16ビットどうしをそれぞれ独立に、しかも
同時に加算することができ、加算結果は、それぞれSレ
ジスタの上位16ビットと下位16ビットに出力され
る。
【0029】図3は図2における並列加算器12を内蔵
するALU21を有するCPU11とメモリ8の接続を
示す。同図において、符号2〜6および8は図6におけ
るものと同じものである。また、21は図2における並
列加算器12を内蔵する上記のALU、16は図1に示
すものと同様のフラグレジスタである。ここでCPU1
1は、ALU21,データバス2,各レジスタ3,4,
5,6,16により構成される。
するALU21を有するCPU11とメモリ8の接続を
示す。同図において、符号2〜6および8は図6におけ
るものと同じものである。また、21は図2における並
列加算器12を内蔵する上記のALU、16は図1に示
すものと同様のフラグレジスタである。ここでCPU1
1は、ALU21,データバス2,各レジスタ3,4,
5,6,16により構成される。
【0030】また、図3において、図7に示したメモリ
マップのデータ格納領域Cに格納された16ビットのデ
ータ(データ)C とデータ格納領域C’に格納された1
6ビットのデータ(データ)C'を加算し、データ格納領
域C''に格納する操作と、データ格納領域Dに格納され
た16ビットのデータ(データ)D とデータ格納領域
D’に格納された16ビットのデータ(データ)D'を加
算し、データ格納領域D''に格納する操作が行われる。
マップのデータ格納領域Cに格納された16ビットのデ
ータ(データ)C とデータ格納領域C’に格納された1
6ビットのデータ(データ)C'を加算し、データ格納領
域C''に格納する操作と、データ格納領域Dに格納され
た16ビットのデータ(データ)D とデータ格納領域
D’に格納された16ビットのデータ(データ)D'を加
算し、データ格納領域D''に格納する操作が行われる。
【0031】以上の操作を行うために、図3に示すCP
U11には加算命令(ADDW II’I'')が用意さ
れている。ここで、Iはデータ格納領域Cとデータ格納
領域Dを合わせた32ビットのデータの格納領域、I’
はデータ格納領域C’とデータ格納領域D’を合わせた
32ビットのデータ格納領域、I''はデータ格納領域
C''とデータ格納領域D''を合わせた32ビットのデー
タの格納領域である。
U11には加算命令(ADDW II’I'')が用意さ
れている。ここで、Iはデータ格納領域Cとデータ格納
領域Dを合わせた32ビットのデータの格納領域、I’
はデータ格納領域C’とデータ格納領域D’を合わせた
32ビットのデータ格納領域、I''はデータ格納領域
C''とデータ格納領域D''を合わせた32ビットのデー
タの格納領域である。
【0032】いま、加算命令(ADDW I I’
I'')が実行されると、まず、データ格納領域Iに格納
されているデータ(データ)C と(データ)D がAレジ
スタ3に保持され、続いてデータ格納領域I’に格納さ
れているデータ(データ)C'と(データ)D'がBレジス
タ4に保持される。
I'')が実行されると、まず、データ格納領域Iに格納
されているデータ(データ)C と(データ)D がAレジ
スタ3に保持され、続いてデータ格納領域I’に格納さ
れているデータ(データ)C'と(データ)D'がBレジス
タ4に保持される。
【0033】ALU21はAレジスタ3とBレジスタ4
に保持されている32ビットのデータの上位16ビット
どうし((データ)C と(データ)C')と、下位16ビ
ットどうし((データ)D と(データ)D')を独立にし
かも同時に加算して、Sレジスタ6に出力する。
に保持されている32ビットのデータの上位16ビット
どうし((データ)C と(データ)C')と、下位16ビ
ットどうし((データ)D と(データ)D')を独立にし
かも同時に加算して、Sレジスタ6に出力する。
【0034】このとき、上位16ビットの加算で桁上げ
が生じた場合はフラグレジスタ16のキャリーフラグC
F1をセットし、下位16ビットの加算で桁上げが生じ
た場合はフラグレジスタ16のキャリーフラグCF0を
セットする。Sレジスタ6に保持された加算結果をメモ
リ8のデータ格納領域I''に格納して、命令(ADDW
I I’I'')の実行を終了する。
が生じた場合はフラグレジスタ16のキャリーフラグC
F1をセットし、下位16ビットの加算で桁上げが生じ
た場合はフラグレジスタ16のキャリーフラグCF0を
セットする。Sレジスタ6に保持された加算結果をメモ
リ8のデータ格納領域I''に格納して、命令(ADDW
I I’I'')の実行を終了する。
【0035】実施例2.図4は図2に示す並列加算器1
2を内蔵するALU21を有するCPU28において、
乗算が行われるときの構成を示し、同図において、2は
データバス、6はSレジスタ、21は並列加算器12を
内蔵する上記のALUである。
2を内蔵するALU21を有するCPU28において、
乗算が行われるときの構成を示し、同図において、2は
データバス、6はSレジスタ、21は並列加算器12を
内蔵する上記のALUである。
【0036】また、22,23,24,25はALU2
1に入力するデータを一時保持する16ビットのレジス
タで、それぞれA1レジスタ,A2レジスタ,B1レジ
スタ,B2レジスタ、26,27は乗算のときに用いる
レジスタで、それぞれM1レジスタ,M2レジスタ、2
8はALU21,データバス2,各レジスタ22〜2
7、図示しない命令解読部および図示しない制御部によ
って構成される上記のCPUである。
1に入力するデータを一時保持する16ビットのレジス
タで、それぞれA1レジスタ,A2レジスタ,B1レジ
スタ,B2レジスタ、26,27は乗算のときに用いる
レジスタで、それぞれM1レジスタ,M2レジスタ、2
8はALU21,データバス2,各レジスタ22〜2
7、図示しない命令解読部および図示しない制御部によ
って構成される上記のCPUである。
【0037】さらに、A1レジスタ22およびA2レジ
スタ23は図6におけるAレジスタ3を半分ずつに分割
したもの、B1レジスタ24およびB2レジスタ25は
図6におけるBレジスタ4を半分ずつに分割したもの、
M1レジスタ26およびM2レジスタ27は図6におけ
るMレジスタ5を半分ずつに分割したものである。
スタ23は図6におけるAレジスタ3を半分ずつに分割
したもの、B1レジスタ24およびB2レジスタ25は
図6におけるBレジスタ4を半分ずつに分割したもの、
M1レジスタ26およびM2レジスタ27は図6におけ
るMレジスタ5を半分ずつに分割したものである。
【0038】各レジスタ22〜27は通常は分割されて
おらず、図6と同じ構成になっており、以下に示す乗算
命令を実行するときに分割されて、図4に示す構成とな
る。また、ALU21は図2に示す並列加算器12を内
蔵しており、図示しないが、A1レジスタ22とB1レ
ジスタ24は並列加算器12の上位16ビットに、A2
レジスタ23とB2レジスタ25は並列加算器12の下
位16ビットに接続されている。
おらず、図6と同じ構成になっており、以下に示す乗算
命令を実行するときに分割されて、図4に示す構成とな
る。また、ALU21は図2に示す並列加算器12を内
蔵しており、図示しないが、A1レジスタ22とB1レ
ジスタ24は並列加算器12の上位16ビットに、A2
レジスタ23とB2レジスタ25は並列加算器12の下
位16ビットに接続されている。
【0039】このため、ALU21は乗算を行うとき、
A1レジスタ22とB1レジスタ24に保持される16
ビットのデータ加算と、A2レジスタ23とB2レジス
タ25に保持される16ビットのデータの加算を同時に
独立して行うことができる。
A1レジスタ22とB1レジスタ24に保持される16
ビットのデータ加算と、A2レジスタ23とB2レジス
タ25に保持される16ビットのデータの加算を同時に
独立して行うことができる。
【0040】次に、図4に示すCPU28による乗算方
法を図5を用いて説明する。図5では、各レジスタ22
〜27に保持されるデータの変化のみを示す。まずCP
U28に図示しない手段により乗算命令(MULW E
F)が与えられる。ここで、E,Fは図示しないデー
タ格納領域を示す(このデータ格納領域はメモリでもレ
ジスタでもよい)。
法を図5を用いて説明する。図5では、各レジスタ22
〜27に保持されるデータの変化のみを示す。まずCP
U28に図示しない手段により乗算命令(MULW E
F)が与えられる。ここで、E,Fは図示しないデー
タ格納領域を示す(このデータ格納領域はメモリでもレ
ジスタでもよい)。
【0041】データ格納領域EおよびFには、16ビッ
トの2つのデータ(データ)E =(E15,E14,・・
・,E1 ,E0 )(EX =0または1)と(データ)F
=(F15,F14,・・・,F1 ,F0 )(FX =0また
は1)がそれぞれ格納されている。この命令において、
(データ)E が被乗数、(データ)F が乗数であるとす
る。
トの2つのデータ(データ)E =(E15,E14,・・
・,E1 ,E0 )(EX =0または1)と(データ)F
=(F15,F14,・・・,F1 ,F0 )(FX =0また
は1)がそれぞれ格納されている。この命令において、
(データ)E が被乗数、(データ)F が乗数であるとす
る。
【0042】次に(データ)E をA1レジスタ22とA
2レジスタ23に保持する。(データ)F の上位ビット
(データ)F1をM1レジスタ26に、下位8ビット(デ
ータ)F2をM2レジスタ27にそれぞれ保持する。B1
レジスタ24とB2レジスタ25はクリアする(図5
)。
2レジスタ23に保持する。(データ)F の上位ビット
(データ)F1をM1レジスタ26に、下位8ビット(デ
ータ)F2をM2レジスタ27にそれぞれ保持する。B1
レジスタ24とB2レジスタ25はクリアする(図5
)。
【0043】図5に示すように、ALU21はB1レ
ジスタ24に保持されているデータ`0´を取り込み、
A1レジスタ22に格納されている(データ)E かまた
は、(データ)E の代わりにデータ`0´を加算して、
B1レジスタ24に再び保持する操作を行う。どちらの
データを加算するかは、M1レジスタ26に保持されて
いるデータの最下位ビットによって決まる。
ジスタ24に保持されているデータ`0´を取り込み、
A1レジスタ22に格納されている(データ)E かまた
は、(データ)E の代わりにデータ`0´を加算して、
B1レジスタ24に再び保持する操作を行う。どちらの
データを加算するかは、M1レジスタ26に保持されて
いるデータの最下位ビットによって決まる。
【0044】すなわち、図5の矢印α1で示すように、
図示しない制御部がM1レジスタ26に保持されている
データの最下位ビットを監視しており、この最下位ビッ
トが`1´であれば(データ)E の加算を行い、`0´
であればデータ`0´の加算を行う。
図示しない制御部がM1レジスタ26に保持されている
データの最下位ビットを監視しており、この最下位ビッ
トが`1´であれば(データ)E の加算を行い、`0´
であればデータ`0´の加算を行う。
【0045】これと同時に、ALU21は、B2レジス
タ25に保持されているデータ`0´を取り込み、A2
レジスタ23に格納されているデータ(データ)E かま
たは、データ(データ)E の代わりにデータ`0´を加
算して、B2レジスタ25に再び保持する操作を行う。
ここでも、どちらのデータを加算するかは、M2レジス
タ27に保持されているデータの最下位ビットによって
決まる。
タ25に保持されているデータ`0´を取り込み、A2
レジスタ23に格納されているデータ(データ)E かま
たは、データ(データ)E の代わりにデータ`0´を加
算して、B2レジスタ25に再び保持する操作を行う。
ここでも、どちらのデータを加算するかは、M2レジス
タ27に保持されているデータの最下位ビットによって
決まる。
【0046】すなわち、図5の矢印α2で示すように、
図示しない制御部がM2レジスタ27に保持されている
データの最下位ビットを監視しており、この最下位ビッ
トが`1´であればデータ(データ)E の加算を行い、
`0´であればデータ`0´の加算を行う。
図示しない制御部がM2レジスタ27に保持されている
データの最下位ビットを監視しており、この最下位ビッ
トが`1´であればデータ(データ)E の加算を行い、
`0´であればデータ`0´の加算を行う。
【0047】続いて、B1レジスタ24に保持されたデ
ータを1ビット右にシフトする。このときB1レジスタ
24から1ビット外に出てしまうことになるが、この1
ビットは、M1レジスタ26の最上位ビットに入れられ
る。このためM1レジスタ26に保持されている(デー
タ)F1も1ビット右にシフトし、最下位ビット`F8´
はM1レジスタ26の外に捨てられる。これと同様の操
作がB2レジスタ25とM2レジスタ27に対しても行
われる(図5)。
ータを1ビット右にシフトする。このときB1レジスタ
24から1ビット外に出てしまうことになるが、この1
ビットは、M1レジスタ26の最上位ビットに入れられ
る。このためM1レジスタ26に保持されている(デー
タ)F1も1ビット右にシフトし、最下位ビット`F8´
はM1レジスタ26の外に捨てられる。これと同様の操
作がB2レジスタ25とM2レジスタ27に対しても行
われる(図5)。
【0048】次に、図5に示すように、ALU21は
B1レジスタ24に保持されているデータをALU21
内部に取り込みA1レジスタ22に保持されているデー
タ(データ)E かまたは、データ(データ)E の代わり
にデータ`0´を加算し、B1レジスタ24に再び保持
する操作を行う。どちらのデータを加算するかの判断は
上記と同様にして行われる。
B1レジスタ24に保持されているデータをALU21
内部に取り込みA1レジスタ22に保持されているデー
タ(データ)E かまたは、データ(データ)E の代わり
にデータ`0´を加算し、B1レジスタ24に再び保持
する操作を行う。どちらのデータを加算するかの判断は
上記と同様にして行われる。
【0049】これと同時に、ALU21は、B2レジス
タ25に保持されているデータをALU21内部に取り
込み、A2レジスタ23に保持されているデータ(デー
タ)E かまたは、データ(データ)E の代わりにデータ
`0´を加算し、B2レジスタ25に再び保持する操作
を行う。どちらのデータを加算するかの判断は上記と同
様にして行われる。
タ25に保持されているデータをALU21内部に取り
込み、A2レジスタ23に保持されているデータ(デー
タ)E かまたは、データ(データ)E の代わりにデータ
`0´を加算し、B2レジスタ25に再び保持する操作
を行う。どちらのデータを加算するかの判断は上記と同
様にして行われる。
【0050】続いて、図5に示すように、B1レジス
タ24に保持されたデータを1ビット右にシフトする。
このときもB1レジスタ24から1ビット外に出てしま
うことになるが、この1ビットはM1レジスタ26の最
上位ビットに入れられる。このためM1レジスタ26に
保持されている(データ)F1も1ビット右にシフトし、
最下位ビットF9はM1レジスタ26の外に捨てられ
る。これと同様の操作がB2レジスタ25とM2レジス
タ27に対しても行われる。
タ24に保持されたデータを1ビット右にシフトする。
このときもB1レジスタ24から1ビット外に出てしま
うことになるが、この1ビットはM1レジスタ26の最
上位ビットに入れられる。このためM1レジスタ26に
保持されている(データ)F1も1ビット右にシフトし、
最下位ビットF9はM1レジスタ26の外に捨てられ
る。これと同様の操作がB2レジスタ25とM2レジス
タ27に対しても行われる。
【0051】以上のとに示す2つの操作を7回繰り
返した後、B2レジスタ25とM2レジスタ27に保持
されたデータを右に4ビットシフトする。この結果、斜
線βで示した位置にシフトされる。最後に斜線γとδで
示したデータを加算したものが乗算結果となる。
返した後、B2レジスタ25とM2レジスタ27に保持
されたデータを右に4ビットシフトする。この結果、斜
線βで示した位置にシフトされる。最後に斜線γとδで
示したデータを加算したものが乗算結果となる。
【0052】
【発明の効果】以上のように、この発明によれば、複数
の1ビット全加算器により構成された並列加算器を内蔵
する算術論理演算ユニットと、該算術論理演算ユニット
の入出力データを一時保持する複数のレジスタとを備え
て、与えられた命令に従って上記算術論理演算ユニット
および上記各レジスタの動作を制御するものにおいて、
上記並列加算器による加算動作において、上記各1ビッ
ト全加算器の桁上がり信号を次の1ビット全加算器に伝
えずに、フラグレジスタのキャリービットに反映させる
ように構成したので、1つの加算で2つ以上のデータの
集まりの加算を行うことができるため、加算および乗算
を高速に行うことができるものが得られる効果がある。
の1ビット全加算器により構成された並列加算器を内蔵
する算術論理演算ユニットと、該算術論理演算ユニット
の入出力データを一時保持する複数のレジスタとを備え
て、与えられた命令に従って上記算術論理演算ユニット
および上記各レジスタの動作を制御するものにおいて、
上記並列加算器による加算動作において、上記各1ビッ
ト全加算器の桁上がり信号を次の1ビット全加算器に伝
えずに、フラグレジスタのキャリービットに反映させる
ように構成したので、1つの加算で2つ以上のデータの
集まりの加算を行うことができるため、加算および乗算
を高速に行うことができるものが得られる効果がある。
【図1】この発明の一実施例による中央演算処理装置内
の並列加算器を示すブロック図を示す。
の並列加算器を示すブロック図を示す。
【図2】図1に示す並列加算器の概略を示すブロック図
である。
である。
【図3】この発明の一実施例における中央演算処理装置
によるデータの加算方法を示すブロック図である。
によるデータの加算方法を示すブロック図である。
【図4】この発明の一実施例における中央演算処理装置
によるデータの乗算方法を示すブロック図である。
によるデータの乗算方法を示すブロック図である。
【図5】図4において乗算が行われるときの演算方法を
示す説明図である。
示す説明図である。
【図6】従来の中央演算処理装置を示すブロック図であ
る。
る。
【図7】図6におけるメモリのデータ内容を示すメモリ
マップ図である。
マップ図である。
【図8】図6における中央演算処理装置によるデータの
加算方法を示すブロック図である。
加算方法を示すブロック図である。
【図9】図6における中央演算処理装置によるデータの
乗算方法を示す説明図である。
乗算方法を示す説明図である。
【符号の説明】 3 Aレジスタ(レジスタ) 4 Bレジスタ(レジスタ) 5 Mレジスタ(レジスタ) 6 Sレジスタ(レジスタ) 12 並列加算器 13a〜13d 1ビット全加算器 15 スイッチ(スイッチ手段) 16 フラグレジスタ 21 ALU(算術論理演算ユニット) 22 A1レジスタ(レジスタ) 23 A2レジスタ(レジスタ) 24 B1レジスタ(レジスタ) 25 B2レジスタ(レジスタ) 26 M1レジスタ(レジスタ) 27 M2レジスタ(レジスタ)
【手続補正書】
【提出日】平成4年12月8日
【手続補正1】
【補正対象書類名】明細書
【補正対象項目名】特許請求の範囲
【補正方法】変更
【補正内容】
【特許請求の範囲】
【手続補正2】
【補正対象書類名】明細書
【補正対象項目名】0052
【補正方法】変更
【補正内容】
【0052】
【発明の効果】以上のように、この発明によれば、複数
の1ビット全加算器により構成された並列加算器を内蔵
する算術論理演算ユニットと、該算術論理演算ユニット
の入出力データを一時保持する複数のレジスタとを備え
て、与えられた命令に従って上記算術論理演算ユニット
および上記各レジスタの動作を制御するものにおいて、
上記並列加算器による加算動作において、上記1ビット
全加算器の桁上がり信号を次段の1ビット全加算器に伝
えずに、フラグレジスタのキャリービットに反映させる
ように構成したので、1つの加算で2つ以上のデータの
集まりの加算を行うことができるため、加算および乗算
を高速に行うことができるものが得られる効果がある。
の1ビット全加算器により構成された並列加算器を内蔵
する算術論理演算ユニットと、該算術論理演算ユニット
の入出力データを一時保持する複数のレジスタとを備え
て、与えられた命令に従って上記算術論理演算ユニット
および上記各レジスタの動作を制御するものにおいて、
上記並列加算器による加算動作において、上記1ビット
全加算器の桁上がり信号を次段の1ビット全加算器に伝
えずに、フラグレジスタのキャリービットに反映させる
ように構成したので、1つの加算で2つ以上のデータの
集まりの加算を行うことができるため、加算および乗算
を高速に行うことができるものが得られる効果がある。
Claims (1)
- 【請求項1】 複数の1ビット全加算器により構成され
た並列加算器を内蔵する算術論理演算ユニットと、該算
術論理演算ユニットの入出力データを一時保持する複数
のレジスタとを備えて、与えられた命令に従って上記算
術論理演算ユニットおよび上記各レジスタの動作を制御
する中央演算処理装置において、上記並列加算器による
加算動作において、上記各1ビット全加算器の桁上がり
信号を次の1ビット全加算器に伝えずに、フラグレジス
タのキャリービットに反映させるスイッチ手段を設けた
ことを特徴とする中央演算処理装置。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP4214750A JPH0635669A (ja) | 1992-07-21 | 1992-07-21 | 中央演算処理装置 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP4214750A JPH0635669A (ja) | 1992-07-21 | 1992-07-21 | 中央演算処理装置 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH0635669A true JPH0635669A (ja) | 1994-02-10 |
Family
ID=16660959
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP4214750A Pending JPH0635669A (ja) | 1992-07-21 | 1992-07-21 | 中央演算処理装置 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH0635669A (ja) |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2010057019A (ja) * | 2008-08-29 | 2010-03-11 | Sony Corp | 撮像素子及び撮像装置 |
| US7844654B2 (en) | 2004-11-12 | 2010-11-30 | Seiko Epson Corporation | Arithmetic unit of arbitrary precision, operation method for processing data of arbitrary precision and electronic equipment |
Citations (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS6186839A (ja) * | 1984-10-05 | 1986-05-02 | Hitachi Ltd | 演算処理装置 |
| JPS6355627A (ja) * | 1986-08-27 | 1988-03-10 | Toshiba Corp | 半導体論理演算装置 |
| JPS63278136A (ja) * | 1987-05-11 | 1988-11-15 | Hitachi Ltd | 演算回路 |
| JPH01134528A (ja) * | 1987-11-19 | 1989-05-26 | Mitsubishi Electric Corp | 乗算器 |
| JPH043222A (ja) * | 1990-04-19 | 1992-01-08 | Mitsubishi Electric Corp | データ処理装置 |
| JPH0462635A (ja) * | 1990-06-29 | 1992-02-27 | Matsushita Electric Ind Co Ltd | マイクロコンピュータ |
-
1992
- 1992-07-21 JP JP4214750A patent/JPH0635669A/ja active Pending
Patent Citations (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS6186839A (ja) * | 1984-10-05 | 1986-05-02 | Hitachi Ltd | 演算処理装置 |
| JPS6355627A (ja) * | 1986-08-27 | 1988-03-10 | Toshiba Corp | 半導体論理演算装置 |
| JPS63278136A (ja) * | 1987-05-11 | 1988-11-15 | Hitachi Ltd | 演算回路 |
| JPH01134528A (ja) * | 1987-11-19 | 1989-05-26 | Mitsubishi Electric Corp | 乗算器 |
| JPH043222A (ja) * | 1990-04-19 | 1992-01-08 | Mitsubishi Electric Corp | データ処理装置 |
| JPH0462635A (ja) * | 1990-06-29 | 1992-02-27 | Matsushita Electric Ind Co Ltd | マイクロコンピュータ |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US7844654B2 (en) | 2004-11-12 | 2010-11-30 | Seiko Epson Corporation | Arithmetic unit of arbitrary precision, operation method for processing data of arbitrary precision and electronic equipment |
| JP2010057019A (ja) * | 2008-08-29 | 2010-03-11 | Sony Corp | 撮像素子及び撮像装置 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US5132898A (en) | System for processing data having different formats | |
| EP0239081B1 (en) | Pipelined data processor capable of decoding and executing plural instructions in parallel | |
| JPH02300983A (ja) | 中央処理装置における高速演算処理の方法 | |
| JPH0850575A (ja) | プログラマブルプロセッサ、前記プログラマブルプロセッサを用いてデジタル信号処理を行なうための方法およびその改良 | |
| US4713750A (en) | Microprocessor with compact mapped programmable logic array | |
| JP2000227858A (ja) | プロセッサおよびその命令処理方法 | |
| JP2001516916A (ja) | デジタル信号処理能力を有するデータ処理装置 | |
| US4755962A (en) | Microprocessor having multiplication circuitry implementing a modified Booth algorithm | |
| US5704052A (en) | Bit processing unit for performing complex logical operations within a single clock cycle | |
| US4821225A (en) | Arithmetic and logic unit with prior state dependent logic operations | |
| US4954947A (en) | Instruction processor for processing branch instruction at high speed | |
| JP2001027945A (ja) | Simd演算を実行するために標準macユニットを利用する浮動小数点ユニット | |
| JP3578883B2 (ja) | データ処理装置 | |
| JP3479385B2 (ja) | 情報処理装置 | |
| JPH07239780A (ja) | 1クロック可変長命令実行処理型命令読み込み電子計 算機 | |
| US4771376A (en) | Processor | |
| US5077659A (en) | Data processor employing the same microprograms for data having different bit lengths | |
| JPH0635669A (ja) | 中央演算処理装置 | |
| JP2520882B2 (ja) | デ−タ処理装置およびデ−タ処理方法 | |
| JPH1091432A (ja) | プログラム実行方法およびプログラム実行装置 | |
| JPH05108345A (ja) | 分岐命令処理装置 | |
| JP3144859B2 (ja) | 算術論理演算装置 | |
| US5086406A (en) | Circuit arrangement for decimal arithmetic | |
| JPS5995646A (ja) | 演算制御装置 | |
| JPH0683618A (ja) | フラグ制御回路 |