JPS62285137A - デイジタル信号処理プロセツサ - Google Patents
デイジタル信号処理プロセツサInfo
- Publication number
- JPS62285137A JPS62285137A JP61127926A JP12792686A JPS62285137A JP S62285137 A JPS62285137 A JP S62285137A JP 61127926 A JP61127926 A JP 61127926A JP 12792686 A JP12792686 A JP 12792686A JP S62285137 A JPS62285137 A JP S62285137A
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- output
- bit
- result
- division
- 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
- 230000015654 memory Effects 0.000 claims abstract description 14
- 238000004364 calculation method Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 5
- 238000000034 method Methods 0.000 description 5
- 230000000295 complement effect Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000008676 import Effects 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 201000008103 leukocyte adhesion deficiency 3 Diseases 0.000 description 1
- 230000003340 mental effect Effects 0.000 description 1
- AHLBNYSZXLDEJQ-FWEHEUNISA-N orlistat Chemical compound CCCCCCCCCCC[C@H](OC(=O)[C@H](CC(C)C)NC=O)C[C@@H]1OC(=O)[C@H]1CCCCCC AHLBNYSZXLDEJQ-FWEHEUNISA-N 0.000 description 1
- 238000003786 synthesis reaction Methods 0.000 description 1
Landscapes
- Complex Calculations (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
3、発明の詳細な説明
〔産業上の利用分野〕
本発明は、音声の分析や合成、符号化等の音声情報処理
1画像情報処理などに用いられるディジタル信号処理プ
ロセッサに係り、特に除算を高速に行うのに好適なディ
ジタル信号処理プロセッサに関する6 〔従来の技術〕 まず、伝統的な除算アルゴリズムに、コンピュータ ア
リスメテイツク プリンシプルズ、アーキテクチャ、ア
ンドデザイン(Computer Arithmeti
cPrinciples、 Architecture
、 and Design、 KaiHwanH,Jo
hn li’1lay&5ons、 Inc、 )97
9)などに記載されている、ノン リストアリングデイ
ヴイジョンアルゴリズ云(Non−Restoring
DivisionAlgorithm )がある。従
来のディジタル信号処理プロセッサでは、このアルゴリ
ズムを用いて、たとえば、(32ビツトの固定小数点形
式の正数)÷(16ビツトの同様の数)の除算を約10
0命令サイクルで処理していた。ヴかし、除算の高速化
については配慮されていなかった。
1画像情報処理などに用いられるディジタル信号処理プ
ロセッサに係り、特に除算を高速に行うのに好適なディ
ジタル信号処理プロセッサに関する6 〔従来の技術〕 まず、伝統的な除算アルゴリズムに、コンピュータ ア
リスメテイツク プリンシプルズ、アーキテクチャ、ア
ンドデザイン(Computer Arithmeti
cPrinciples、 Architecture
、 and Design、 KaiHwanH,Jo
hn li’1lay&5ons、 Inc、 )97
9)などに記載されている、ノン リストアリングデイ
ヴイジョンアルゴリズ云(Non−Restoring
DivisionAlgorithm )がある。従
来のディジタル信号処理プロセッサでは、このアルゴリ
ズムを用いて、たとえば、(32ビツトの固定小数点形
式の正数)÷(16ビツトの同様の数)の除算を約10
0命令サイクルで処理していた。ヴかし、除算の高速化
については配慮されていなかった。
つぎに、マイクロプロセッサの分野で除算技術を調査す
れば、Am2900フアミリーデータ ブック2−22
頁から2−24頁(The Am2900 Famil
yDate Book、 Advanced Micr
o Devices、 Inc、 2−22−2−24
)に見られるように、加算命令コド(ADD)をステー
タスレジスタの符号ビットでモディファイすることによ
って、ノン−レスドアリング−ディビジョン(Non−
RestoringDivision )の高速化をは
かった例がある。しかし、マイクロプロセッサとして除
算を見た場合ここては、命令メモリ愈の低減、およびユ
ーザにとっての命令の使い勝手については配慮されてい
なかった。
れば、Am2900フアミリーデータ ブック2−22
頁から2−24頁(The Am2900 Famil
yDate Book、 Advanced Micr
o Devices、 Inc、 2−22−2−24
)に見られるように、加算命令コド(ADD)をステー
タスレジスタの符号ビットでモディファイすることによ
って、ノン−レスドアリング−ディビジョン(Non−
RestoringDivision )の高速化をは
かった例がある。しかし、マイクロプロセッサとして除
算を見た場合ここては、命令メモリ愈の低減、およびユ
ーザにとっての命令の使い勝手については配慮されてい
なかった。
上記従来技術は、ノン・レスドアリング・ディビジョン
・アルゴリズムNon−RastoringDivis
Non−Ra5torinによる高速除算が可能なもの
の、加算命令が除算用であることを示すための別なビッ
トが命令メモリに必要な点でメモリ量の低減については
配慮されておらず、また、除算なのに加算命令を発行す
ることが必要な点でユーザの使い勝手について配慮され
ておらず、命令メモリ量がふえる、使い勝手が悪いとい
う問題があった。
・アルゴリズムNon−RastoringDivis
Non−Ra5torinによる高速除算が可能なもの
の、加算命令が除算用であることを示すための別なビッ
トが命令メモリに必要な点でメモリ量の低減については
配慮されておらず、また、除算なのに加算命令を発行す
ることが必要な点でユーザの使い勝手について配慮され
ておらず、命令メモリ量がふえる、使い勝手が悪いとい
う問題があった。
本発明の目的は、命令メモリの増加をおさえて、使い勝
手のよい高速除算が可能なディジタル信号処理プロセッ
サを提供することにある。
手のよい高速除算が可能なディジタル信号処理プロセッ
サを提供することにある。
上記目的は、ディジタル信号処理プロセッサにおいて、
命令デコーダ(IDECと言う)の出力とコンディショ
ンコードレジスタ (OCRと言う)の出力との論理演
算を行い、その結果でアリスメテイックロジックユニッ
ト(ALUと言う)の動作を制御する制御部を設けるこ
とにより達成される。
命令デコーダ(IDECと言う)の出力とコンディショ
ンコードレジスタ (OCRと言う)の出力との論理演
算を行い、その結果でアリスメテイックロジックユニッ
ト(ALUと言う)の動作を制御する制御部を設けるこ
とにより達成される。
加算命令に対応するIDECの出力ビットをADD、減
算命令に対応する出力ビットをSUB、除算命令に対応
する出力ビットをDVD、などと呼ぶ。
算命令に対応する出力ビットをSUB、除算命令に対応
する出力ビットをDVD、などと呼ぶ。
CCRは、1命令前のALUの演算結果の状態、たとえ
ば符号ビット(Sと呼ぶ)などの値を記憶している。
ば符号ビット(Sと呼ぶ)などの値を記憶している。
制御部は、IDECの出力とCCRの値を入力として、
ADD+DVD −Sなる論理演算の結果が真値のとき
にはALUに加算動作をさせ、SUB+DVD −Sが
真値のときには減算をさせる。
ADD+DVD −Sなる論理演算の結果が真値のとき
にはALUに加算動作をさせ、SUB+DVD −Sが
真値のときには減算をさせる。
これによって、除算命令1サイクルでNNon−Re5
torin Division Algorithmに
もとづく除算の1ビット分を処理できる。
torin Division Algorithmに
もとづく除算の1ビット分を処理できる。
すなわち、IDECは、加算や減算命令などと同様に設
定した除算命令コードをデコードして、ある特定のビッ
トに出力を発生するので、命令メモリに除算を示すため
の他のビットは不要である。また、ユーザは除算のとき
には除算命令をプログラムすればよい。
定した除算命令コードをデコードして、ある特定のビッ
トに出力を発生するので、命令メモリに除算を示すため
の他のビットは不要である。また、ユーザは除算のとき
には除算命令をプログラムすればよい。
以下、本発明の一実施例を第1図から第6図により説明
する。
する。
第1図はディジタル信号処理プロセッサの構成を示す。
まず、図のI M、 I R,AGENおよびARを説
明する。これらの構成方法は従来から広く知られている
。IMはクイクロ命令を格納したメモリで、ADRはア
ドレス入力端子、DOはデータ出力端子を示す。IRは
IMから読み出されたマイクロ命令をラッチするレジス
タで、DIはデータ入力端子、DOはデータ出力端子を
示す。AGENはIMのアドレスを生成する回路で、I
Iはマイクロ命令の一部(命令名とブランチ先のアドレ
ス)をIRから入力する端子、CIはブランチ条件をコ
ンディションコードレジスタOCRから入力する端子、
AOはIMのアドレスを出力する端子を示す。たとえば
、IMのn番地のマイクロ命令がADD (加算) などの演算命令であった場合、AGENは次に実行する
命令をIMから読み出すためにアドレスrl+ 1をA
Oに出力する。n番地の命令が Jump m if CCR(S )= 0(O
CRのサインビットSが0のときm番地の命命を実行せ
よ)などのブランチ命令であった場合には、 AGEN
はS=oならばmを、S=1ならばn+1をAOに出力
する。ARはIMのアドレスデータをラッチするレジス
タで、DIはデータ入力端子、DOはデータ出力端子を
示す。
明する。これらの構成方法は従来から広く知られている
。IMはクイクロ命令を格納したメモリで、ADRはア
ドレス入力端子、DOはデータ出力端子を示す。IRは
IMから読み出されたマイクロ命令をラッチするレジス
タで、DIはデータ入力端子、DOはデータ出力端子を
示す。AGENはIMのアドレスを生成する回路で、I
Iはマイクロ命令の一部(命令名とブランチ先のアドレ
ス)をIRから入力する端子、CIはブランチ条件をコ
ンディションコードレジスタOCRから入力する端子、
AOはIMのアドレスを出力する端子を示す。たとえば
、IMのn番地のマイクロ命令がADD (加算) などの演算命令であった場合、AGENは次に実行する
命令をIMから読み出すためにアドレスrl+ 1をA
Oに出力する。n番地の命令が Jump m if CCR(S )= 0(O
CRのサインビットSが0のときm番地の命命を実行せ
よ)などのブランチ命令であった場合には、 AGEN
はS=oならばmを、S=1ならばn+1をAOに出力
する。ARはIMのアドレスデータをラッチするレジス
タで、DIはデータ入力端子、DOはデータ出力端子を
示す。
つぎに、D[lUS、DM、REGおよびMOLTを説
明する。 DBUSは、たとえば3本の16ビツトデー
タバス(それぞれ、XD、YD、ZDと言う)を示す。
明する。 DBUSは、たとえば3本の16ビツトデー
タバス(それぞれ、XD、YD、ZDと言う)を示す。
DMはデータメモリで、出力DBUSのうちXDまたは
YDに接続され、入力はZDに接続されている。REG
はレジスタ類1M0LTは乗算器を示す。
YDに接続され、入力はZDに接続されている。REG
はレジスタ類1M0LTは乗算器を示す。
つぎに、本発明の主旨であるIDEC,CALU、AL
U。
U。
ACC,CCRを説明する。ALUは加減算、論理演算
を実行するアリスメテイツクロジックユニットで、XI
、YIはデータ入力端子、FCは制御信号入力端子、R
eは演算結果出力端子を示す。
を実行するアリスメテイツクロジックユニットで、XI
、YIはデータ入力端子、FCは制御信号入力端子、R
eは演算結果出力端子を示す。
ACCはALUの演算結果を蓄えるアキュムレータで、
DIはデータ入力端子、ENは入出力制御信号の入力端
子、DOはデータ出力端子を示す。
DIはデータ入力端子、ENは入出力制御信号の入力端
子、DOはデータ出力端子を示す。
CCRはALU演算結果の状態をあられすサインビット
、キャリービット、オーバーフローフラグおよびゼロフ
ラグを蓄えるコンディションコードレジスタで、DI、
ENおよびDOはACCと同様の端子である。IDEC
jよマイクロ命令をデコードするデコーダで、DIは命
令コードの入力端子、Doはデコード結果の出力端子で
あり、たとえば、マイクロ命令が加算命令の場合にはそ
れに対応する出力ビット(以下[IADDと言う)に信
号を発生し、減算命令の場合にはそれに対応する別な出
力ビット(以下BSUBと言う)に信号を発生し、命令
メモリ量を増加させることなく除算を行うための除算命
令であった場合にはそれに対応する別な出力ビット(以
下BDVDと言う)に信号を発生する。CALUはID
[ECの出力とOCRの値との論理演算を行い、その結
果でALUの動作を制御することを特徴とする。論理演
算回路から成る制御部で、工1はデコードされたマイク
ロ命令の入力端子、CIはOCRの値の入力端子、CA
はA L U制御信号の出力端子、C1,C2はそれぞ
れACC,OCR制御信号の出力端子である。CALL
Iの論理演算の内容は、命令セットをたとえば加算、減
算および除算の3種に限定した場合は、 ADDM=BADD+BSUB+BDVD、I NVX
=BSUB+S −BDVDなどである。ここでSはC
CRのサインビット。
、キャリービット、オーバーフローフラグおよびゼロフ
ラグを蓄えるコンディションコードレジスタで、DI、
ENおよびDOはACCと同様の端子である。IDEC
jよマイクロ命令をデコードするデコーダで、DIは命
令コードの入力端子、Doはデコード結果の出力端子で
あり、たとえば、マイクロ命令が加算命令の場合にはそ
れに対応する出力ビット(以下[IADDと言う)に信
号を発生し、減算命令の場合にはそれに対応する別な出
力ビット(以下BSUBと言う)に信号を発生し、命令
メモリ量を増加させることなく除算を行うための除算命
令であった場合にはそれに対応する別な出力ビット(以
下BDVDと言う)に信号を発生する。CALUはID
[ECの出力とOCRの値との論理演算を行い、その結
果でALUの動作を制御することを特徴とする。論理演
算回路から成る制御部で、工1はデコードされたマイク
ロ命令の入力端子、CIはOCRの値の入力端子、CA
はA L U制御信号の出力端子、C1,C2はそれぞ
れACC,OCR制御信号の出力端子である。CALL
Iの論理演算の内容は、命令セットをたとえば加算、減
算および除算の3種に限定した場合は、 ADDM=BADD+BSUB+BDVD、I NVX
=BSUB+S −BDVDなどである。ここでSはC
CRのサインビット。
ADDM、 INVXはCAの信号の一部で詳細は後で
述べる。
述べる。
本発明の主旨は、上述のように、1DIEcの出力とO
CRの値をALUの制御部CALUに入力し、二二で論
理演算を行うことによって、IDECの出力が念算命令
であった場合にはOCRの値に応じてALLIを制御す
ることにある。
CRの値をALUの制御部CALUに入力し、二二で論
理演算を行うことによって、IDECの出力が念算命令
であった場合にはOCRの値に応じてALLIを制御す
ることにある。
加減算器を用いた除算には、Non−RestoNon
−Re5torin Algorithmが広く使用さ
れている。この方法は、基本的には、 [第1ステツプコ Ro”DD−D ここで、 DDは被除数 りは除数 Roは余り。
−Re5torin Algorithmが広く使用さ
れている。この方法は、基本的には、 [第1ステツプコ Ro”DD−D ここで、 DDは被除数 りは除数 Roは余り。
〔第1ステツプ]
Ro<Oならば。
Ro>Oならば、
ここで、
Qlは商のMS’B(最上位ビット)、Ro ’ はR
oをMSB側へ1ビツトシフトした値。
oをMSB側へ1ビツトシフトした値。
R1は第1ステツプでの余り。
〔第1ステツプコ
R1−1<Oならば。
R1−1>Oならば、
ここで、
R1−1は第i−1ステップでの余り、Qlは商のMS
Bから数えて第iビット目の値、R,−裏′はR1−t
をMSB側へ1ビツト・シフトした値、 12、は第1ステツプでの余り。
Bから数えて第iビット目の値、R,−裏′はR1−t
をMSB側へ1ビツト・シフトした値、 12、は第1ステツプでの余り。
のように、余り(Rr−1)の正負によって、商の値(
Q、’)と次のステップ(i)の演算を順次。
Q、’)と次のステップ(i)の演算を順次。
決めて行く方法である。
従来のディジタル信号処理プロセッサでは、このアルゴ
リズムを、ブランチ命令を主体として、つぎのように処
理していた。
リズムを、ブランチ命令を主体として、つぎのように処
理していた。
b Jump a if (CCR(S(R,−z
))=O)鈷=O 3hift R1−■ Rr = R1−1’ + D Jump b aQt=1 Shift Rt−u Rr =R+−t’ D Jumpb ここで、CCR(S(R,−1))はOCRのサインビ
ットを示し、Jump a if (CCR()=O)
は第1図のAGENによる制御である。この処理には、
1ステツプ(1ビツト)あたり6〜7命令サイクル(命
令サイクルとは加算などの基本命令実行時間を言う)必
要とし、 (32ビツト数)÷(16ビツト数)では6
.5 X16で104命令サイクル程度必要であった
。
))=O)鈷=O 3hift R1−■ Rr = R1−1’ + D Jump b aQt=1 Shift Rt−u Rr =R+−t’ D Jumpb ここで、CCR(S(R,−1))はOCRのサインビ
ットを示し、Jump a if (CCR()=O)
は第1図のAGENによる制御である。この処理には、
1ステツプ(1ビツト)あたり6〜7命令サイクル(命
令サイクルとは加算などの基本命令実行時間を言う)必
要とし、 (32ビツト数)÷(16ビツト数)では6
.5 X16で104命令サイクル程度必要であった
。
本発明はこの除算アルゴリズムを1ステツプあたり1命
令サイクルで処理するもので、除算命令が第1図のID
ECでデコードされてCALUのII端子に入力された
とき、CALUはCA端子につぎのALυ制御信号群F
Cを出力する。
令サイクルで処理するもので、除算命令が第1図のID
ECでデコードされてCALUのII端子に入力された
とき、CALUはCA端子につぎのALυ制御信号群F
Cを出力する。
FC:5X11=1
SXI2=O
8XI3:0
3Y11=O
3Y I 2=O
8YI3=1
QI=S
CLKX=1
CLKY=1
1NVX=S
INVY=O
ADDM=1
ANDM=0
0BM= O
EORM=O
CIN=S
TH= 1
SL=O
3R=O
3IN=0
ここで、Sは前命令でのALUの演算結果の状態を記憶
しているOCRのサインビット(CALUのCI端子に
入力)で、 はNOT (1の補数)を示す。
しているOCRのサインビット(CALUのCI端子に
入力)で、 はNOT (1の補数)を示す。
ALUの実施例を第2図、第3図により説明する。まず
、ALUの構成を第2図に示す。破線内がALUで、D
BUS、XI、YI、FC,ROおよびACCは第1図
で説明した信号や回路である。
、ALUの構成を第2図に示す。破線内がALUで、D
BUS、XI、YI、FC,ROおよびACCは第1図
で説明した信号や回路である。
河υXXは入力II、I2.I3のいずれか一つを、制
御端子5IELX4:印加される信号5XII、 5X
I2.5XI3で選択して○に出力するマルチプレクサ
で、たとえば。
御端子5IELX4:印加される信号5XII、 5X
I2.5XI3で選択して○に出力するマルチプレクサ
で、たとえば。
SXI 1=1のときには、○に
((X D )1B (0)ta) を出力し、5X
I2=1のときには。
I2=1のときには。
((ZD)1B (0)16)
SXI 3=1のときには、○に
((MO)32)を出力する。
添字16.32はビット数をあられし、(0)zaは下
位16ビツトがOであることを示す。阿υXYも同様で
。
位16ビツトがOであることを示す。阿υXYも同様で
。
5Y11=1のときには、Oに
((Y D)re (0)tB) を出力し、5YI2
=1のときには、 ((Accの値)82) SYI3=1のときには、○に ((MSBを除いたACCの値)ss (Q I )t
)を出力する。
=1のときには、 ((Accの値)82) SYI3=1のときには、○に ((MSBを除いたACCの値)ss (Q I )t
)を出力する。
AINXはクロック端子に入力される信号CLKXが1
のとき、32ビツトのデータエをラッチしてOに出力す
るレジスタで、AiNYも同様である。CMPXはCM
Xに入力される制御信号1NVXが1のとき、1に入力
された32ビツトのデータのうち上位16ビツトは1の
補数をOに、下位16ビツトはそのまま○に、 INV
Xが0のとき、■に入力されたデータをそのまま○に出
力する補数回路である。CMPYも同様。FADは全加
算あるいは論理演算を実行する回路で、FUIIICに
入力される制mtR号により、ADDM=1のとき、σ
=a+b+cINADDM=1のとき、σ=a−b などを行う。加W時、CINはaまたはbのMS[lか
ら数えて16ビツト目に入力される(第5図参照)。σ
はキャリー出力を含めて33ビツトとなる。SHFはシ
フタで、 TH=1のとき、 r=((σ’ )−z) SL=1のとき、 r=1MsBを除いた(1 ’ )ax (S I M
)1)SR=1のとき、 r=((S I Nb (LSBを除いたa’ )31
)を端子○に出力する。ここで、σ′はσからキャリー
ビットCを取った値である。さらにSHF’には、入力
1 (C,σ′)のうちキャリーピッI−Cおよびサ
インビットS (σ′のMSB)をそのまま端子○に、
σのオーバーフローおよびσ′のゼロを検出してフラグ
○と2を端子Oに出力する機能を含むものとする。AC
CはALU出力出力力える32ビツトのアキュームレー
タである。また、ALU出力C,S、○および2はCC
Rに菩えられる。
のとき、32ビツトのデータエをラッチしてOに出力す
るレジスタで、AiNYも同様である。CMPXはCM
Xに入力される制御信号1NVXが1のとき、1に入力
された32ビツトのデータのうち上位16ビツトは1の
補数をOに、下位16ビツトはそのまま○に、 INV
Xが0のとき、■に入力されたデータをそのまま○に出
力する補数回路である。CMPYも同様。FADは全加
算あるいは論理演算を実行する回路で、FUIIICに
入力される制mtR号により、ADDM=1のとき、σ
=a+b+cINADDM=1のとき、σ=a−b などを行う。加W時、CINはaまたはbのMS[lか
ら数えて16ビツト目に入力される(第5図参照)。σ
はキャリー出力を含めて33ビツトとなる。SHFはシ
フタで、 TH=1のとき、 r=((σ’ )−z) SL=1のとき、 r=1MsBを除いた(1 ’ )ax (S I M
)1)SR=1のとき、 r=((S I Nb (LSBを除いたa’ )31
)を端子○に出力する。ここで、σ′はσからキャリー
ビットCを取った値である。さらにSHF’には、入力
1 (C,σ′)のうちキャリーピッI−Cおよびサ
インビットS (σ′のMSB)をそのまま端子○に、
σのオーバーフローおよびσ′のゼロを検出してフラグ
○と2を端子Oに出力する機能を含むものとする。AC
CはALU出力出力力える32ビツトのアキュームレー
タである。また、ALU出力C,S、○および2はCC
Rに菩えられる。
ALUの動作タイミングを第3図に示す。1命令サイク
ルは、加算などの基本命令の実行時間で。
ルは、加算などの基本命令の実行時間で。
たとえば50nSである。ALUは、φ0〜ψ杏のクロ
ックで制御する。φOのタイミングでCALUはACC
のEN端子を制御し、ACCはデータを端子01または
02に出力する。同時にCALUは、MUXX、 MU
XY、 AINX、 AINY(71制御信号を出力す
る。
ックで制御する。φOのタイミングでCALUはACC
のEN端子を制御し、ACCはデータを端子01または
02に出力する。同時にCALUは、MUXX、 MU
XY、 AINX、 AINY(71制御信号を出力す
る。
:、::テAINX、 AINYは、MUXX、 MU
XYテ選択されたデータをラッチする。データメモリD
Mからouusに、あるいは乗算器MULTからMOに
データが出力されろタイミングも、ACCと同様にφ0
である。つぎに、φ1からφ3の後縁までの間、 CA
LUはCMPX 。
XYテ選択されたデータをラッチする。データメモリD
Mからouusに、あるいは乗算器MULTからMOに
データが出力されろタイミングも、ACCと同様にφ0
である。つぎに、φ1からφ3の後縁までの間、 CA
LUはCMPX 。
CMPY、 FAD 、 S I■Fの制御信号を出力
する。そして、ALUの演算結果は、φ3のタイミング
で、ACCおよびCCRに取り込んで、1命令を終了す
る。
する。そして、ALUの演算結果は、φ3のタイミング
で、ACCおよびCCRに取り込んで、1命令を終了す
る。
第1図、第2図の構成におけるデータの動きを説明する
。
。
第4図に被除数DDと除数りのデータフォーマットを示
す。DDは32ビツトの正数(サインビット5=O)で
、すでにACCに設定されていて。
す。DDは32ビツトの正数(サインビット5=O)で
、すでにACCに設定されていて。
これをACC(DD)とあられす、Dは16ビツトの正
数で、DMに蓄えられていて、これをDM(D)とあら
れす。
数で、DMに蓄えられていて、これをDM(D)とあら
れす。
さて、DD÷Dは、除算命令(以下DVD命令とも言う
)などを使って、つぎのように行う。
)などを使って、つぎのように行う。
SUB ACCU←ACCU−DM ・・・(
1)JMP OVP IF CCR(S)=O・
(2)REPI、16 ・・・
(3)DVD (ACC,DM)
・・・(4)TRF REG4−ACCU
・・・(5)DVD (ACC,DM)
・・・(6)LDA ACCU−+RE
G ・・・(7)JMP E
ND I F CCR(S)=O・・・(8)
ADD ACCU4−A、CCU+DM
・・・(9)JMP END
・・・(10)ここで(1)は減算命令
(SUB)で、NNon−Re5torin Divi
sionΔ1gorithmの[第Oステップコに相当
して、 CALUの制御によってACCに蓄えられてい
るDDの上位16ビツトからDMに蓄えられているDの
値を減算して、その結果をACCの上位16ビツト(A
CCUとあられす)およびCCRに格納することを示す
。(2)は、前命令SOBの結果が正または0、すなわ
ちDD>Dであれば○VF番地へブランチする命令(J
MP)である。
1)JMP OVP IF CCR(S)=O・
(2)REPI、16 ・・・
(3)DVD (ACC,DM)
・・・(4)TRF REG4−ACCU
・・・(5)DVD (ACC,DM)
・・・(6)LDA ACCU−+RE
G ・・・(7)JMP E
ND I F CCR(S)=O・・・(8)
ADD ACCU4−A、CCU+DM
・・・(9)JMP END
・・・(10)ここで(1)は減算命令
(SUB)で、NNon−Re5torin Divi
sionΔ1gorithmの[第Oステップコに相当
して、 CALUの制御によってACCに蓄えられてい
るDDの上位16ビツトからDMに蓄えられているDの
値を減算して、その結果をACCの上位16ビツト(A
CCUとあられす)およびCCRに格納することを示す
。(2)は、前命令SOBの結果が正または0、すなわ
ちDD>Dであれば○VF番地へブランチする命令(J
MP)である。
OVF番地に;まオーバーフロー処理プログラムがある
。、I M F命令はAGENで処理し、ACC,CC
Rは変化しない、(2)はリピート命令(RF P )
で、つぎの1命令すなわちDVD命令を16回繰り返し
て実行することを示す、RFPはAGIENで処理し、
ACC,OCRは不変である。
。、I M F命令はAGENで処理し、ACC,CC
Rは変化しない、(2)はリピート命令(RF P )
で、つぎの1命令すなわちDVD命令を16回繰り返し
て実行することを示す、RFPはAGIENで処理し、
ACC,OCRは不変である。
(4)は除算命令(DVD)で、Non−Restor
inKDivision Algorithmの[第1
ステツプコから[第16ステツプ]に相当する。第5図
に[第iステップ]でのALUのデータの動きを示す。
inKDivision Algorithmの[第1
ステツプコから[第16ステツプ]に相当する。第5図
に[第iステップ]でのALUのデータの動きを示す。
まず、前述したようにタイミングφ0でCALUは、A
CCおよびCCRの出力制御信号を発生し、前ステップ
でCCRに格納された演算結果のサインビット、すなわ
ちCCR(S (Rt−t))に応じて商Q、のL S
B (S (R+−t))を出カシ、MUXX、 M
UXYノf= L/タクト号5XII、 5YI3を発
生り、 AINX、 AINY(7)ラッチクロックC
LKX、 CLKYを発生する。これによってALUは
、ACCの出力(A CC(Rl−1、Q t−1))
を1ビツトMSB側ヘシフトしてLSBにS(Rt−t
)を加えた値(Rt−t’ 、 Ql−1)を選んでA
INYに取り込み、AINXには上位16ビツトにDM
の出力りを、下位16ビツ1〜にOをラッチする。つぎ
にφ1からφ3の後縁までの間、 CALUは、c C
R(S (R、−t))がOのときはINVX、 AD
DMおよびCINを、c CR(s (R、−t))が
1のときは、A I)D Mを発生する。これによって
ALUのFADは上位16ビツトで OCR(S (R+−1))が○のときはR1= R1
−h’ + D + 1=R+−t’ D CCR(S(Rt−t))が1のときはR,= R1−
1’ + D を行う。下位16ビツトには、入力すの下位16ビツ1
〜(Rt−i’の一部とQ、)がそのまま出力される。
CCおよびCCRの出力制御信号を発生し、前ステップ
でCCRに格納された演算結果のサインビット、すなわ
ちCCR(S (Rt−t))に応じて商Q、のL S
B (S (R+−t))を出カシ、MUXX、 M
UXYノf= L/タクト号5XII、 5YI3を発
生り、 AINX、 AINY(7)ラッチクロックC
LKX、 CLKYを発生する。これによってALUは
、ACCの出力(A CC(Rl−1、Q t−1))
を1ビツトMSB側ヘシフトしてLSBにS(Rt−t
)を加えた値(Rt−t’ 、 Ql−1)を選んでA
INYに取り込み、AINXには上位16ビツトにDM
の出力りを、下位16ビツ1〜にOをラッチする。つぎ
にφ1からφ3の後縁までの間、 CALUは、c C
R(S (R、−t))がOのときはINVX、 AD
DMおよびCINを、c CR(s (R、−t))が
1のときは、A I)D Mを発生する。これによって
ALUのFADは上位16ビツトで OCR(S (R+−1))が○のときはR1= R1
−h’ + D + 1=R+−t’ D CCR(S(Rt−t))が1のときはR,= R1−
1’ + D を行う。下位16ビツトには、入力すの下位16ビツ1
〜(Rt−i’の一部とQ、)がそのまま出力される。
なお、シフタS II FはDVD命令のときはスルー
(TH)とする。タイミングφ3で(R1、Qt )を
ACCに、S(R,)等をCCRに取り込んで[第iス
テップ]のDVD命令を完了する。
(TH)とする。タイミングφ3で(R1、Qt )を
ACCに、S(R,)等をCCRに取り込んで[第iス
テップ]のDVD命令を完了する。
このようにDVD命令では、前ステップでCCRに格納
された演算結果をサインピッ1−に応じて、ALU演算
(Q、の値と加算/減算の演算)を制御する。
された演算結果をサインピッ1−に応じて、ALU演算
(Q、の値と加算/減算の演算)を制御する。
(4)までの演算結果を第6図に示す。DVD命令が1
6回実行されたので、ACCの上位16ビツトにRxa
が、下位16ビツトにQIBが蓄えられている。ところ
が、商Qを求めるためには[第16ステツプコのDVD
命令の結果(CCR(S(Rls)))をQzeのLS
Bに追加することが必要なので、(5)RzaをDBU
S経由でREGに退避した後(TRFはトランスファー
命令を示し、このときCCRは不変)、(6) でDV
D命令を1回実行する。この結果、ACCの下位16ビ
ツトに商Qが得られる。余りについては、R1[+が負
ならば引きすぎなので、R1B + Dを行う必要があ
る。
6回実行されたので、ACCの上位16ビツトにRxa
が、下位16ビツトにQIBが蓄えられている。ところ
が、商Qを求めるためには[第16ステツプコのDVD
命令の結果(CCR(S(Rls)))をQzeのLS
Bに追加することが必要なので、(5)RzaをDBU
S経由でREGに退避した後(TRFはトランスファー
命令を示し、このときCCRは不変)、(6) でDV
D命令を1回実行する。この結果、ACCの下位16ビ
ツトに商Qが得られる。余りについては、R1[+が負
ならば引きすぎなので、R1B + Dを行う必要があ
る。
そこで、REGに退避したR11lを(7)でACCU
にロードして(CCRにRtaの状態が反映される)、
(8)でRleが正またはOならばEND番地へブラン
チし、負ならば(9)でR+e+Dを実行してその結果
をACCLIに格納し、 (10)でEND番地へ行
く。END番地は除算プログラムの終了番地を示す。(
7)〜(10)を補足する。(7)のLDAはロードア
キュムレータ命令を言い、このときCALU ノ制御に
よってALUとACCは、AINXに((Rre)ts
(0)ta)を、AINYに((0)12)をラッチ
して、 ((Rlc)ts (0)ts)→・((0
)32)を行い、この結果の−F位16ビツ1−をAC
CUに取り込む。ACCの下位16ビツj−は不変であ
る。(8)。
にロードして(CCRにRtaの状態が反映される)、
(8)でRleが正またはOならばEND番地へブラン
チし、負ならば(9)でR+e+Dを実行してその結果
をACCLIに格納し、 (10)でEND番地へ行
く。END番地は除算プログラムの終了番地を示す。(
7)〜(10)を補足する。(7)のLDAはロードア
キュムレータ命令を言い、このときCALU ノ制御に
よってALUとACCは、AINXに((Rre)ts
(0)ta)を、AINYに((0)12)をラッチ
して、 ((Rlc)ts (0)ts)→・((0
)32)を行い、この結果の−F位16ビツ1−をAC
CUに取り込む。ACCの下位16ビツj−は不変であ
る。(8)。
(10)はAGENの制御による。(9)の加算命令(
ADD)ではCALUの制御でALUとACCは、AI
NXに((D)xe (○)la) をAINYに(
(Rts)t。
ADD)ではCALUの制御でALUとACCは、AI
NXに((D)xe (○)la) をAINYに(
(Rts)t。
(0)zc)をラッチし、FADで両者を加算して。
結果の上位16ビツトをACCUに取り込む、ACCの
下位16ビツトは不変である。
下位16ビツトは不変である。
(1)〜(10)の結果、ACCの上位16ヒツトに余
りが、下位16ビツトに商が得られる。
りが、下位16ビツトに商が得られる。
最後に数値例を2例示す。説明の簡略化のため被除数D
Dは6ビツト、除数りは3ビツトとする。
Dは6ビツト、除数りは3ビツトとする。
[例1コ 11÷3=3余り2
DD=OO1011
D =011
CCR(S (R1))= 1なので
DVD 111110口
ここで、余りR=Rs=010が得られる。
商Q=011が得られる。
[例2]11÷5=2余りI
DD=OO1OLL
D =101
o1011
SUB 101 ↓
CCR(S (R2))= Oなので
DVD OO10on
商Qは、
余りRは、Raが負なので
ともとめられる。
本実施例によれば、(32ビツトの数値)÷(16ビツ
トの数値)の除算を24命令サイクルで処理することが
できる。商だけ必要な場合は。
トの数値)の除算を24命令サイクルで処理することが
できる。商だけ必要な場合は。
SUB
M P
RFP 1.17
VD
の20命令サイクルで済む。
本発明によれば、命令メモリ量の増加をおさえて、使い
勝手のよい高速除算が可能なディジタル信号処理プロセ
ッサを提供できる。
勝手のよい高速除算が可能なディジタル信号処理プロセ
ッサを提供できる。
たとえば、IKワードの命令メモリ容量を有するプロセ
ッサであればIKビット救済できる。除算の高速性につ
いては、たとえば、(32ビツトの固定小数点形式の正
数)÷(16ビツトの同様の数)は20〜24命令サイ
クルで処理できるので従来のプロセッサに比べると5倍
程度高速である。
ッサであればIKビット救済できる。除算の高速性につ
いては、たとえば、(32ビツトの固定小数点形式の正
数)÷(16ビツトの同様の数)は20〜24命令サイ
クルで処理できるので従来のプロセッサに比べると5倍
程度高速である。
第1図はディジタル信号処理プロセッサの構成図、第2
図はアリスメテイツクロジック二二ツ1〜の構成図、第
3図は動作タイムチャート、第4図は被除数と除数のデ
ータフォーマットを示す図。 第5図は除算命令でのデータの動きを示す図、第6図は
商と余りのデータフォーマットを示す図である。 ALU・・・アリスメテイックロジックユニット、AC
C・・・アキュムレータ、CCR・・・コンディション
コードレジスタ、IO[EC・・マイクロ命令のデコー
ダ、 CALU・・・IDECの出力とCCRの値との
論理演算を行い、その結果でALUの動作を制御する制
御笛l 図 箋3図 算2Σ 第4固 名5図 第6図
図はアリスメテイツクロジック二二ツ1〜の構成図、第
3図は動作タイムチャート、第4図は被除数と除数のデ
ータフォーマットを示す図。 第5図は除算命令でのデータの動きを示す図、第6図は
商と余りのデータフォーマットを示す図である。 ALU・・・アリスメテイックロジックユニット、AC
C・・・アキュムレータ、CCR・・・コンディション
コードレジスタ、IO[EC・・マイクロ命令のデコー
ダ、 CALU・・・IDECの出力とCCRの値との
論理演算を行い、その結果でALUの動作を制御する制
御笛l 図 箋3図 算2Σ 第4固 名5図 第6図
Claims (1)
- 1、マイクロ命令で演算器やデータメモリ等の動作が制
御されるディジタル信号処理プロセッサにおいて、命令
デコーダの出力とコンディションコードレジスタの出力
との論理演算を行い、該演算結果でアリスメテイックロ
ジックユニットを制御する制御部を設けることによって
、特定の命令に対しては、コンディションコードレジス
タの値に応じてアリスメテイックロジックユニットの動
作を制御することを特徴とするディジタル信号処理プロ
セッサ。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP61127926A JPS62285137A (ja) | 1986-06-04 | 1986-06-04 | デイジタル信号処理プロセツサ |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP61127926A JPS62285137A (ja) | 1986-06-04 | 1986-06-04 | デイジタル信号処理プロセツサ |
Publications (1)
Publication Number | Publication Date |
---|---|
JPS62285137A true JPS62285137A (ja) | 1987-12-11 |
Family
ID=14972049
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP61127926A Pending JPS62285137A (ja) | 1986-06-04 | 1986-06-04 | デイジタル信号処理プロセツサ |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPS62285137A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH02125330A (ja) * | 1988-07-13 | 1990-05-14 | Nec Corp | データ処理装置 |
US5517439A (en) * | 1994-02-14 | 1996-05-14 | Matsushita Electric Industrial Co., Ltd. | Arithmetic unit for executing division |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS54102842A (en) * | 1978-01-30 | 1979-08-13 | Hitachi Ltd | Microprogram control system |
JPS56147243A (en) * | 1980-04-15 | 1981-11-16 | Fujitsu Ltd | Microprogram control device |
-
1986
- 1986-06-04 JP JP61127926A patent/JPS62285137A/ja active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS54102842A (en) * | 1978-01-30 | 1979-08-13 | Hitachi Ltd | Microprogram control system |
JPS56147243A (en) * | 1980-04-15 | 1981-11-16 | Fujitsu Ltd | Microprogram control device |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH02125330A (ja) * | 1988-07-13 | 1990-05-14 | Nec Corp | データ処理装置 |
US5517439A (en) * | 1994-02-14 | 1996-05-14 | Matsushita Electric Industrial Co., Ltd. | Arithmetic unit for executing division |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100294559B1 (ko) | 마이크로컴퓨터및제산회로 | |
US5426600A (en) | Double precision division circuit and method for digital signal processor | |
JPH03286332A (ja) | デジタルデータ処理装置 | |
JPS58182754A (ja) | 演算処理装置 | |
JPS62285137A (ja) | デイジタル信号処理プロセツサ | |
JPH07107664B2 (ja) | 乗算回路 | |
US20080307029A1 (en) | Arithmetic device and arithmetic method | |
JP3435744B2 (ja) | 乗算回路 | |
US5784634A (en) | Pipelined CPU with instruction fetch, execution and write back stages | |
KR100385233B1 (ko) | 데이터 프로세싱 시스템의 익스포넌트 유닛 | |
JPH0228828A (ja) | 最大値最小値検出回路 | |
JP2520484B2 (ja) | 除算回路 | |
JPH09212482A (ja) | 浮動小数点積和演算器 | |
JPS60175146A (ja) | プログラマブル・コントロ−ラ | |
JPH0553759A (ja) | 固定小数点演算ユニツト | |
JPH0648499B2 (ja) | プロセッシングユニット | |
JPH03255524A (ja) | 加算回路 | |
JP2000181705A (ja) | 命令制御装置 | |
JPS5985539A (ja) | 除算処理装置 | |
JPH0357488B2 (ja) | ||
JPH04160533A (ja) | マイクロ・プロセッサ | |
JPH01150934A (ja) | 情報処理装置のプログラムカウンタ | |
JPS5972541A (ja) | デ−タ処理装置 | |
JPS62189535A (ja) | マイクロプロセツサ制御装置 | |
JPS6239909B2 (ja) |