JP2862969B2 - プロセッサ - Google Patents

プロセッサ

Info

Publication number
JP2862969B2
JP2862969B2 JP2188494A JP18849490A JP2862969B2 JP 2862969 B2 JP2862969 B2 JP 2862969B2 JP 2188494 A JP2188494 A JP 2188494A JP 18849490 A JP18849490 A JP 18849490A JP 2862969 B2 JP2862969 B2 JP 2862969B2
Authority
JP
Japan
Prior art keywords
data
bus line
register
response
stored
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
Application number
JP2188494A
Other languages
English (en)
Other versions
JPH03223960A (ja
Inventor
紳一 浦本
秀幸 寺根
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
Publication of JPH03223960A publication Critical patent/JPH03223960A/ja
Priority to US07/888,329 priority Critical patent/US5204962A/en
Application granted granted Critical
Publication of JP2862969B2 publication Critical patent/JP2862969B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Complex Calculations (AREA)

Description

【発明の詳細な説明】 [産業上の利用分野] この発明は、一般にプロセッサに関し、特に、演算処
理の高速化のための改善されたプロセッサに関する。
[従来の技術] コンピュータシステムやマイクロコンピュータなどが
社会の様々な分野で利用されるにつれて、それらによる
高速演算処理への要求が高まっている。コンピュータシ
ステムやマイクロコンピュータにおける演算処理は、一
般にはプロセッサまたは論理集積回路であるマイクロプ
ロセッサにより実行される。したがって、これらのプロ
セッサを高速に動作させるための種々の努力が従来から
なされている。
第20図は、従来のマイクロプロセッサを示すブロック
図である。第20図に示したマイクロプロセッサは、たと
えばナカガワ他による“A 5Ons Video Signal Pro
cessor"と題された論文(ISSCC89,ダイジェスト オブ
テクニカルペーパーズ pp.168−169)に見られる。
この論文ではディジタルシグナルプロセッサ(DSP)と
してこのマイクロプロセッサが記されている。
第20図を参照して、このマイクロプロセッサは、様々
な演算を実行するためのデータ演算部1と、データを伝
送するためのバスライン2と、データをストアするため
のデータメモリ部24と、演算を実行するための命令プロ
グラムをストアするための命令メモリ部23と、外部から
制御信号を受けかつ命令プログラムをデコードするプロ
グラムシーケンス制御部22と、アドレスを演算するアド
レス演算部8と、外部とデータを入出力するためのイン
ターフェイス部21とを含む。データ演算部1は、バスラ
イン2を介して与えられるデータの論理演算を行なう演
算論理ユニット(以下ALUという)と、データバス2を
介して与えられるデータの乗算を行なう乗算器5と、AL
U3および乗算器5からの出力データを一時的に保持する
レジスタ部4とを含む。
動作において、プログラムシーケンス制御部22は命令
メモリ部23中にストアされた命令プログラムをデコード
し、制御信号S10およびS20をデータ演算部1,アドレス演
算部8,データメモリ部24およびインターフェイス部21に
与える。アドレス演算部8はプログラムシーケンス制御
部22から出力された制御信号S10に応答してデータ演算
部1において処理すべきデータの供給元(ソースアドレ
ス)および処理されたデータの格納先(デスティネーシ
ョンアドレス)を演算により得る。アドレス演算部8か
ら出力されたソースアドレスおよびデスティネーション
アドレスはバスライン2を介して各部に伝送される。デ
ータメモリ部24は、アドレス演算部8から出力されたア
ドレスによって指定されたデータをバスライン2を介し
てデータ演算部1に供給する。データ演算部1では、AL
U3および乗算器5が与えられたデータの演算を実行し、
演算結果をレジスタ部4に与える。レジスタ部4は与え
られたデータを一時的に保持し、アドレス演算部8から
バスライン2を介して与えられるソース指定信号S1ない
しSnに応答して保持したデータをバスライン2に出力す
る。バスライン2に与えられたデータはアドレス演算部
8によって指定された部分、たとえばデータメモリ部2
4,インターフェイス部21などにバスライン2を介して伝
送される。処理されたデータがバスライン2を介してイ
ンターフェイス部21に与えられた後、そのデータはたと
えば外部に設けられた外部記憶装置にストアされる。
第21図は、第20図に示したレジスタ部4の模式的なブ
ロック図である。第21図を参照して、レジスタ部4はn
個のレジスタR1なしいRnを含む。各レジスタR1なしいRn
は、第20図に示したように、ALU3および乗算器5から演
算処理されたデータを受けるように接続されているもの
と仮定する(図示せず)。これに加えて、各レジスタR1
ないしRnは、アドレス演算部8からバスライン2を介し
てそれぞれソース指定信号S1ないしSnを受けるように接
続される(図示せず)。データメモリ部24はアドレス演
算部8からアドレス信号ADを受けるように接続される。
データメモリ部24中には、各アドレスM1ないしM8中に演
算されるべきデータa1ないしa8がストアされているもの
とする。
動作において、たとえばレジスタR1中にALU3または乗
算器5により演算処理されたデータb1が保持される。ア
ドレス演算部8は、ソース指定信号S1を出力する。レジ
スタR1は、信号S1に応答して保持しているデータb1をデ
ータバス2に供給する。同様にして、データメモリ部24
も、アドレス演算部8から出力されたアドレス信号ADに
より指定されたデータaiをデータバス2に供給する。デ
ータバス2に供給されたデータは、さらにデータ演算部
1に与えられ、演算処理が続けられる。
一般に、マイクロプロセッサでは、ソースデータの格
納場所を指定するためにアドレス指定方式(アドレシン
グ)が使用される。アドレス指定方式として、直接アド
レシング,間接アドレシング,相対アドレシング,即値
アドレシング,オフセット付アドレシングおよびインデ
ックス付アドレシングなどが知られる。
たとえば直接アドレシングでは、命令のオペランド部
分において規定されたアドレスのデータがソースデータ
として指定される。また、間接アドレシングでは、命令
のオペランド部分において指定されたレジスタまたはデ
ータメモリ中にソースデータの格納場所が書込まれてお
り、そこからソースデータが取出される。相対アドレシ
ングでは、たとえば現在実行中の命令のアドレスが保持
されているプログラムカウンタの値に、何らかの値が加
えられた値がソースデータのアドレスとされる。即値ア
ドレスでは、命令のオペランド部分中にソースデータが
直接書込まれている。オフセット付アドレシングやイン
デックス付アドレシングでは、ソースデータがストアさ
れているアドレスの値が“修飾”される。これらのアド
レス指定方式に関しては、一般に他の文献により広く知
られている。
上記のアドレス指定方式は、ソースデータが保持され
ているレジスタの指定、ソースデータがストアされたデ
ータメモリのアドレスの指定、および命令のオペランド
部分に直接書込まれた即値データの使用のうちのいずれ
かを選択するものであるということができる。別言する
と、データ演算部1においてソースデータとして扱われ
るデータは、命令のオペランド部分に書込まれた即値デ
ータか、レジスタに保持されたデータか、データメモリ
中にストアされたデータのいずれかである。
第23図は、周波数領域分割法による離散フーリエ変換
でのバタフライ演算を示す演算記号図である。第23図か
らわかるように、バタフライ演算を実行することによ
り、2つの入力データaおよびbから次式により表わさ
れるような出力データXおよびYが得られる。
X=a+b …(1) Y=(a−b)×WN …(2) ここで、WNはひねり因子と呼ばれる係数である。
高速フーリエ変換(FFT)では、N/2個(Nはサンプリ
ング数であり、かつ2のべき乗)のバタフライ演算を含
む演算段がlog2N段にわたって直列に接続される。前述
のDCTアルゴリズムにおいても、log2N段のバタフライ演
算が実行される。
第23図および式(1)および(2)からわかるよう
に、バタフライ演算を実行するためには、加算,減算お
よび乗算をそれぞれ1回実行する必要があることが指摘
される。
一方、離散コサイン変換(以下DCTという)は直交変
換の一種として知られており、一般に、互いに強い相関
を有する画像データの変換特性が良好であるため、画像
データの圧縮に用いられている。DCTが画像データの圧
縮に用いられるもう1つの理由として、高速アルゴリズ
ムが存在することが指摘される。これまでに多くの高速
アルゴリズムが発表されており、1つの例として、W.H.
Chen他による“A Fast Computational Algorithm
for the Discrete Cosine Trasformと題された論文
(IEEE トランザクションズ オン コミュニケーショ
ンズ,VOL.COM.25,NO.9,1977年9月)に見られる。多く
の高速アルゴリズムでは、基本的に第23図に示すように
バタフライ演算が含まれる。
前述のChen他による論文では、N点のサンプリング値
を有する離散関数f(j),j=0,1,…,N−1の変換式
は、次のように表わされている。
したがって、4点のサンプリング値を有する離散関数
f(j)が与えられた場合では、式(3)においてN=
4を代入することにより、次の式(6)が得られる。
[発明が解決しようとする課題] 従来のマイクロプロセッサでは、ソースデータの指定
が上記のようになされていたので、演算処理に要する時
間が必要な演算回数およびデータ演算部1における演算
処理速度により主に決定される。すなわち、マイクロプ
ロセッサによる演算処理速度はデータ演算部1における
処理速度により制限されている。
マイクロプロセッサの演算処理を高速化するために
は、たとえば1つの命令サイクルの周期を短くする(ク
ロック周波数を高くする)方法や、浮動小数点演算装置
のように演算装置を並列に用意し、1つの命令により高
度な演算(たとえば乗算や除算、有理関数演算など)を
実行する方法などが採用されている。しかしながら、前
者の方法によると、半導体製造技術上の問題や、周辺素
子の性能上からもたらされる制限などにより、高速動作
が妨げられる。一方、後者の方法では、演算を実行する
ために必要な素子数が多数となり、加えて入出力制御が
かなり複雑となり好ましくない。数値演算処理では、加
算および減算などのような単純な演算が多数繰返される
場合が多くある。そのような場合に、後者の浮動小数点
演算装置を利用する方法では複雑な演算処理を実行させ
るための回路部分が無駄となり、適していない。
次に、数値演算の場合の簡単な例として、次式に表わ
されるような8つのデータa1ないしa8の加算が実行され
る場合について説明する。
X=a1+a2+a3+……a8 …(7) ただし各データa1ないしa8は、それぞれデータメモリ
部24中の各アドレスM1ないしM8にストアされているもの
とし、結果を示すデータXはレジスタR7に格納されるも
のとする。
第22図は、第21図に示したレジスタ部4を用いて式
(7)によって表わされた8つのデータの加算を実行す
る場合の演算フロー図である。この図では、たとえば、
ステップ1におけるa1(M1)+a2(M2)→b1(R1)は、
データメモリ部24のアドレスM1にストアされたデータa1
とアドレスM2にストアされたデータa2とを加算し、かつ
その加算データb1をレジスタR1に格納することを示す。
演算動作において、第22図に示すように、7つの計算
ステップにわたる加算が実行され、加算されたデータX
がレジスタR7中に得られる。したがって、第21図に示し
た回路構成を有するレジスタ部4を使用して8つのデー
タa1ないしa8の加算を行なうためには、7つの命令サイ
クルに相当する演算時間が必要となり、演算時間の短縮
化が妨げられている。
次に、式(6)により表わされた4点離散コサイン変
換の場合について、第21図に示したレジスタ部4が使用
されるときの演算所要時間について説明する。
第24図は、第21図に示したレジスタ部4を用いてバタ
フライ演算が実用される場合の演算フロー図である。こ
の図では、たとえば、ステップ1におけるx0(R1)+x3
(R4)→a1(R6)は、レジスタR1中に保持されたデータ
x0とレジスタR4中に保持されたデータx3とを加算し、か
つその加算データa1をレジスタR6に格納することを示
す。なお、各入力データx0ないしx3は、予め各レジスタ
R1ないしR4中にそれぞれ保持されているものと仮定す
る。
演算動作において、第24図に示すように、合計14の計
算ステップにわたる演算が実行される。ここでの演算
は、加算,減算および乗算を含んでおり、これらの演算
は第20図に示したデータ演算部1中のALU3または乗算器
5により実行される。14ステップにわたる演算が実行さ
れた後、演算結果を示す各出力データz0ないしz3は各レ
ジスタR5ないしR8中にそれぞれ保持される。したがっ
て、第21図に示した回路構成を有するレジスタ部4を使
用してバタフライ演算を行なうためには、合計14の命令
サイクルに相当する演算時間が必要となり、演算時間の
短縮化が妨げられていることが指摘される。
この発明は、上記のような課題を解決するためになさ
れたもので、プロセッサにおいて、演算をより高速に実
行することを目的とする。
[課題を解決するための手段] 請求項1に係る発明は、プログラムされた命令に従っ
てデータを処理するプロセッサであって、命令に従って
処理されるべきデータの供給元を特定するソースアドレ
ス信号および処理されたデータの供給先を特定するデス
ティネーションアドレス信号を生成するアドレス演算手
段と、データバス線と、データバス線から受けたデータ
を命令によって指定された手法に従って演算するALU
と、各々が、ALUの出力に接続され、ALUによる演算結果
のデータをデスティネーションアドレス信号に応答して
格納するとともに、その格納したデータをソースアドレ
ス信号に応答してデータバス線に出力する複数のレジス
タと、複数のレジスタのうち少なくとも1つのレジスタ
に接続され、そのレジスタに格納されたデータを予め定
められた手法に従って演算するとともに、その演算結果
のデータをソースアドレス信号に応答してデータバス線
に出力する演算手段とを含む。
請求項2に係る発明は、プログラムされた命令に従っ
てデータを処理するプロセッサであって、命令に従って
処理されるべきデータの供給元を特定するソースアドレ
ス信号および処理されたデータの供給先を特定するデス
ティネーションアドレス信号を生成するアドレス演算手
段と、データバス線と、データバス線から受けたデータ
を命令によって指定された手法に従って演算するALU
と、各々が、ALUの出力に接続され、ALUによる演算結果
のデータをデスティネーションアドレス信号に応答して
格納するとともに、その格納したデータをソースアドレ
ス信号に応答してデータバス線に出力する複数のレジス
タと、データバス線から受けたデータをデスティネーシ
ョンアドレス信号に応答して記憶するとともに、その記
憶したデータをソースアドレス信号に応答してデータバ
ス線に出力するデータ記憶手段と、データ記憶手段に接
続され、データ記憶手段に記憶されたデータを予め定め
られた手法に従って演算するとともに、その演算結果の
データをソースアドレス信号に応答してデータバス線に
出力する演算手段とを含む。
請求項3に係る発明は、プログラムされた命令に従っ
てデータを処理するプロセッサであって、命令に従って
処理されるべきデータの供給元を特定するソースアドレ
ス信号および処理されたデータの供給先を特定するデス
ティネーションアドレス信号を生成するアドレス演算手
段と、データバス線と、データバス線から受けたデータ
を命令によって指定された手法に従って演算するALU
と、ALUの出力に接続され、ALUによる演算結果のデータ
をデスティネーションアドレス信号に応答して格納する
とともに、その格納したデータをソースアドレス信号に
応答してデータバス線に出力する第1のレジスタと、AL
Uの出力に接続され、ALUによる演算結果のデータをデス
ティネーションアドレス信号に応答して格納するととも
に、その格納したデータをソースアドレス信号に応答し
てデータバス線に出力する第2のレジスタと、第1およ
び第2のレジスタに接続され、第1のレジスタに格納さ
れたデータと第2のレジスタに格納されたデータとを加
算するとともに、その加算結果のデータをソースアドレ
ス信号に応答してデータバス線に出力する加算手段と、
第1および第2のレジスタに接続され、第1のレジスタ
に格納されたデータから第2のレジスタに格納されたデ
ータを減算するとともに、その減算結果のデータをソー
スアドレス信号に応答してデータバス線に出力する減算
手段とを含む。
[作用] 請求項1の発明におけるプロセッサでは、ALUによる
演算結果のデータがレジスタに格納されるとともに、そ
の格納されたデータを予め定められた手法に従って演算
された後、その演算結果のデータがソースアドレス信号
に応答してデータバス線に供給されるので、特定の演算
に要する時間を短縮することができる。
請求項2の発明におけるプロセッサでは、データバス
線からのデータがデータ記憶手段に記憶されるととも
に、その記憶されたデータを予め定められた手法にデー
タバス線に供給されるので、特定の演算に要する時間を
短縮することができる。
請求項3の発明におけるプロセッサでは、ALUによる
演算結果のデータが第1または第2のレジスタに格納さ
れるとともに、第1のレジスタに格納されたデータは第
2のレジスタに格納されたデータと加算された後、その
加算結果のデータがソースアドレス信号に応答してデー
タバス線に供給され、他方、第1のレジスタに格納され
たデータから第2のレジスタに格納されたデータが減算
された後、その減算結果のデータがソースアドレス信号
に応答してデータバス線に供給されるので、特定の演算
に要する時間を短縮することができる。
[発明の実施例] 第1図は、この発明の一実施例を示すレジスタ部7aの
模式的なブロック図である。第1図に示したレジスタ部
7aは、第20図に示したレジスタ部4の代わりにマイクロ
プロセッサ中に適用される。レジスタ部7aは、後に説明
する8つのデータの加算を実行するのに必要な5つのレ
ジスタR1ないしR5を含む。これに加えて、レジスタ部7a
は、レジスタR1およびR2の出力に接続された加算回路51
と、レジスタR3およびR4の出力に接続された加算回路52
とを含む。加算回路51および52は、前置演算回路40とし
て、第20図に示したデータ演算部1中のALU3および乗算
器5とは別に設けられている。アドレス演算部8は加算
結果を要求するソース指定信号SADDおよびSADD′を出力
する。各前置演算回路40は信号SADDおよびSADD′に応答
して、加算結果を示すデータAR12およびAR34をバスライ
ン2に供給する。各レジスタR1ないしR5は、第11図に示
したALU3および乗算器5から演算結果を示すデータを受
けるように接続されている(図示せず)。
第2図は、第1図に示したレジスタ部7aを用いて8つ
のデータの加算を実行する場合の演算フロー図である。
第2図を参照して、前述の式(7)により表わされた演
算が第1図に示したレジスタ部7aを用いて実行される。
まず、ステップ1において、ALU3によりデータメモリ部
24のアドレスM1にストアされているデータa1とアドレス
M2にストアされているデータa2とが加算され、加算され
たデータb1がレジスタR1中に保持される。同様にして、
ステップ2,3および4のそれぞれにおいて、データメモ
リ部24中にストアされているデータの対a3およびa4,a5
およびa6,a7およびa8が加算され、加算されたデータb2,
b3およびb4がそれぞれレジスタR2,R3およびR4中に保持
される。各加算されたデータb1ないしb4がそれぞれレジ
スタR1ないしR4中に保持されると同時に、前置演算回路
40が動作する。すなわち、レジスタR1およびR2の出力に
接続された加算回路51は、データb1およびb2の加算を実
行する。一方、レジスタR3およびR4の出力に接続された
加算回路52は、データb3およびb4の加算を実行する。し
たがって、ステップ5において、アドレス演算部8から
加算結果を要求するソース指定信号SADDおよびSADD′が
前置演算回路40に与えられ、前置演算回路40は信号SADD
およびSADD′に応答して加算データAR12およびAR34をバ
スライン40に供給する。バスライン2に供給されたAR12
およびAR34は、ALU3において加算された後、加算結果を
示すデータXがレジスタR5中に保持される(ステップ
5)。
第22図に示した従来の演算フロー図と比較すると、第
1図に示したレジスタ部7aを用いて8つのデータの加算
が実行される場合には、2つの計算ステップが省かれて
いることが指摘される。すなわち、8つのデータa1ない
しa8の加算が5つの命令サイクルに相当する時間をかけ
て実行されるので、演算時間が短縮され、その結果高速
演算処理が実現される。別言すると、演算を実行するの
に必要な命令の数が減少されるので、演算に要する時間
が減じられる。一般に、算術演算においては、加算処理
が多数繰返されることが多いので、命令ステップの減少
は演算処理の高速化に大きく貢献する。
第3図は、第1図に示した加算回路51の入出力データ
の関係を示す模式図である。第3図を参照して、加算回
路51は、データビットD11ないしD18からなるデータD1
と、データビットD21ないしD28からなるデータD2とを受
ける。加算結果として、データビットA1ないしA8からな
る加算されたデータAが出力される。このように、第1
図に示した加算回路51および52は、複数のデータビット
からなるデータの演算処理を行なう。
第4図は、第1図に示した加算回路51の例を示すブロ
ック図である。第4図を参照して、加算回路51は、各々
がデータD1およびD2のデータビットを受けるように接続
された8つの全加算器(FA)51ないし58を含む。各全加
算器51ないし58から、加算されたデータAを構成するデ
ータビットA1ないしA8がそれぞれ出力される。隣接した
全加算器間は、桁上げ信号を伝送するための信号線によ
り接続されている。各全加算器51ないし58を構成する具
体的な回路の例は、たとえばムラカミ他による“A Di
gitalProcessor for DecodingComposite TV Signal
s Using Adaptive Filtering"と題された論文(IEE
E,ジャーナル オブ ソリッド ステート サーキッ
ツ,VOL.SC−21,NO.5,1986年10月)に見られる。
第5図ないし第10図は、それぞれがこの発明の他の実
施例を示すレジスタ部7aの模式的なブロック図である。
第5図を参照して、レジスタR1およびR2の出力に前置演
算回路40として減算回路9が接続される。減算回路9
は、アドレス演算部8から出力されるソース指定信号S
SUB応答して減算結果を示すデータDSUBをバスライン2
に供給する。
第6図を参照して、レジスタR1の出力に前置演算回路
40としての符号反転器10が接続される。符号を反転すべ
きデータがレジスタR1に格納されるのと同時に、符号反
転器10によって符号が反転されたデータが得られる。前
置演算回路40は、符号が反転されたデータを要求するソ
ース指定信号SNEGに応答して、符号が反転されたデータ
DNEGをバスライン2に供給する。
第7図を参照して、レジスタR1およびR2の出力に前置
演算回路40としての最大値選択回路11が接続される。最
大値選択回路11は、レジスタR1およびR2にそれぞれ保持
されたデータD1およびD2を比較し、より大きいデータを
選択する。前置演算回路40は、ソース指定信号SMAXに応
答してデータD1およびD2のうちより大きいデータを出力
データDMAXとしてバスライン2に供給する。
第8図を参照して、レジスタR1およびR2の出力に前置
演算回路40としての最小値選択回路12が接続される。レ
ジスタR1に保持されたデータD1およびレジスタR2に保持
されたデータD2のうちより小さいデータが出力データD
MINとしてバスライン2に供給される。
第9図を参照して、レジスタR1の出力に前置演算回路
40としての加算回路53が接続される。加算回路53は、一
方入力がレジスタR1からの出力データD1を受けるように
接続され、他方入力がアドレス演算部8から命令のオペ
ランド部分に書込まれている即値データD0STを受けるよ
うに接続される。したがって、加算回路53は、データD1
およびD0STの加算を行ない、加算されたデータDADDがソ
ース指定信号S0STに応答してバスライン2に供給され
る。すなわち、第9図は前置演算回路40がアドレス演算
部8から即値データD0STを受ける場合を示している。
第10図を参照して、レジスタR1ないしR4の出力に前置
演算回路40としての総和回路14が接続される。したがっ
て、総和回路14は、次式により表わされるように、各レ
ジスタR1ないしR4に保持されたデータD1ないしD4の加算
を実行する。
DS=D1+D2+D3+D4 …(8) 前置演算回路40は、アドレス演算部8から出力される
ソース指定信号SSに応答して、データの総和を示すデー
タDSをバスライン2に供給する。このように、第10図
は、2を越えるレジスタの出力に前置演算回路40が出力
される場合を示している。
第5図ないし第10図に示したいずれの実施例において
も、前置演算回路40による演算は、データが所定のレジ
スタへ格納されるのと同様に実行される。前置演算回路
40は、演算結果を要求するソース指定信号に応答して演
算結果を示すデータをバスライン2に供給する。バスラ
イン2に供給されたデータは、データ演算部1に伝送さ
れ、ALU3または乗算器5における演算に使われる。いず
れの実施例においても、従来のマイクロプロセッサにお
いてALU3により実行されていた一部の演算が前置演算回
路40によりレジスタへのデータの供給と同時に行なわれ
るので、演算に要する時間が短縮される。
したがって、データ演算部1中のALU3および乗算器5
は、特定のレジスタにデータを供給することによって得
られた演算結果をソースデータとして受ける。ALU3およ
び乗算器5は、前置演算回路40から得られたデータにつ
いて必要な残りの演算をさらに実行する。
別言すると、前置演算回路40によりALU3および乗算器
5とは別の演算が並列に実行されることが指摘される。
これに加えて、従来のマイクロプロセッサと比較して演
算に必要な命令の数が減じられるので、演算の高速化が
もたらされる。
第11図は、この発明のさらに他の実施例を示すレジス
タ部7bの模式的なブロック図である。レジスタ部7bは、
第20図に示したレジスタ部4の代わりにマイクロプロセ
ッサ中に適用される。レジスタ部7bは、後に説明する8
つのデータの加算を実行するのに必要な5つののレジス
タR1ないしR5を含む。これに加えて、レジスタ部7bは、
データメモリ部24の出力およびレジスタR1の出力に接続
された加算回路54を含む。加算回路54は、前置演算回路
40として第20図に示したデータ演算部1中のALU3および
乗算器5とは別に設けられている。アドレス演算部8は
加算結果を要求するソース指定信号SADDを出力する。前
置演算回路40は信号SADDに応答して、加算結果を示すデ
ータDADDをバスライン2に供給する。各レジスタR1ない
しR5は、第20図に示したALU3および乗算器5から演算結
果を示すデータを受けるように接続される(図示せ
ず)。
第12図は、第11図に示したレジスタ部7bを用いて8つ
のデータの加算を実行する場合の演算フロー図である。
第12図を参照して、前述の式(7)により表わされた演
算が実行される。また、ステップ1において、データメ
モリ部24のアドレスM1にストアされているデータa1とア
ドレスM2にストアされているデータa2とがALU3により加
算され、加算されたデータb1がレジスタR1中に保持され
る。データメモリ部24中にストアされているデータの指
定は、アドレス演算部8から発生されるアドレス信号AD
に基づいて行なわれる。同様にして、ステップ2におい
て、データメモリ部24のアドレスM3およびM4にストアさ
れているデータa3およびa4が加算され、加算されたデー
タb2がレジスタR2中に保持される。
ステップ3では、データメモリ部24のアドレスM5にス
トアされているデータa5とレジスタR2中に保持されてい
るデータb2とが加算され、加算されたデータb3がレジス
タR3中に保持される。同様に、ステップ4においては、
データメモリ部24中のデータa6およびレジスタR3中のデ
ータb3が加算され、加算されたデータb4がレジスタR4中
に保持される。ステップ5において、データメモリ部24
中のデータa7およびレジスタR4中のデータb4が加算さ
れ、加算されたデータb5がレジスタR5中に保持される。
ステップ6において、前置演算回路40が動作する。デ
ータメモリ部24からデータa8が読出され、読出されたデ
ータとレジスタR1に保持されているデータb1とが加算器
54により加算される。加算されたデータDADDは、バスラ
イン2を介してALU3に供給され、データDADDとレジスタ
R5に保持されているデータB5との加算がALU3において行
なわれる。したがって、式(7)により表わされたすべ
ての演算が終了する。演算結果を示すデータXは、レジ
スタR5中に保持される(ステップ6)。
第22図に示した従来の演算フロー図と比較すると、8
つのデータの加算が行なわれる場合において、1つの計
算ステップが省かれていることが指摘される。すなわ
ち、8つのデータa1ないしa8の加算が6つの命令サイク
ルに相当する時間をかけて実行されるので、演算時間が
短縮され、その結果高速演算処理が実現される。別言す
ると、演算に必要な命令の数が減少されるので、演算に
要する時間が減じられる。
第13図ないし第17図は、各々がこの発明の他の実施例
を示す模式的なブロック図である。第13図を参照して、
データメモリ部24およびレジスタR2の出力に前置演算回
路40として減算回路9′が接続される。減算回路9′
は、アドレス演算部8から出力されるソース指定信号S
SUBに応答して減算結果を示すデータDSUBをバスライン
2に供給する。
第14図を参照して、データメモリ部24の出力に前置演
算回路40としての符号反転器10′が接続される。符号を
反転すべきデータがデータメモリ部24から読出されるの
と同時に、符号反転器10′によって符号が反転されたデ
ータが得られる。前置演算回路40は、符号が反転された
データを要求するソース指定信号SNEGに応答して、符号
が反転されたデータDNEGをバスライン2に供給する。
第15図を参照して、データメモリ部24およびレジスタ
R2の出力に前置演算回路40としての最大値選択回路11′
が接続される。最大値選択回路11′は、データメモリ部
24から読出されたデータD1とレジスタR2中に保持された
データD2とを比較し、より大きいデータを選択する。前
置演算回路40は、ソース指定信号SMAXに応答して、デー
タD1およびD2のうちのより大きいデータを出力データD
MAXとしてバスライン2に供給する。
第16図を参照して、データメモリ部24およびレジスタ
R2の出力に前置演算回路40としての最小値選択回路12′
が接続される。データメモリ部24から読出されたデータ
D1とレジスタR2中に保持されたデータD2とが比較され、
より小きいデータが出力データDMINとしてバスライン2
に供給される。
第17図を参照して、データメモリ部24の出力に前置演
算回路40としての加算回路53′が接続される。加算回路
53′は、一方入力がデータメモリ部24から読出されたデ
ータD1を受けるように接続される。加算回路53の他方入
力は、命令のオペランド部分に書込まれている即値デー
タDOSTを受けるように接続される。従って、加算回路5
3′は、データD1およびDOSTの加算を行ない、加算され
たデータDADDがソース指定信号SOSTに応答してバスライ
ン2に供給される。
第13図ないし第17図に示したいずれの実施例において
も、前置演算回路40による演算は、演算に用いられるデ
ータがデータメモリ部24から読出されるのと同時に実行
される。前置演算回路40は、演算結果を要求するソース
指定信号に応答して、演算結果を示すデータをバスライ
ン2に供給する。バスライン2に供給されたデータは、
データ演算部1に伝送され、ALU3または乗算器5におけ
る演算に使われる。いずれの実施例においても、従来の
マイクロプロセッサにおいてALU3により実行されていた
一部の演算が、データメモリ部24からのデータの読出と
同時に前置演算回路40により行なわれるので、演算に要
する時間が短縮される。
第18図は、この発明のさらに他の実施例を示すレジス
タ部7cの模式的なブロック図である。第18図に示したレ
ジスタ部7cは、第20図に示したレジスタ部4の代わりに
マイクロプロセッサ中に適用される。レジスタ部7cは、
後に説明するバタフライ演算を実行するのに必要な8つ
のレジスタR1ないしR8と4つの前置演算回路40とを含
む。各前置演算回路40は、加算回路81および82ならびに
減算回路91および92のいずれかをそれぞれ含む。加算回
路81は、レジスタR1およびR4の各出力に接続されてお
り、アドレス演算部8から出力されるソース指定信号S
ADDに応答して加算結果を示すデータAR14をバスライン
2に与える。一方、減算回路91は、レジスタR1およびR4
の各出力に接続されており、アドレス演算部8から出力
されるソース指定信号SSUBに応答して減算結果を示すデ
ータSR14をバスライン2に与える。同様にして、加算回
路82および減算回路92もレジスタR2およびR3の出力に接
続されており、出力データAR32およびSR32をそれぞれバ
スライン2に与える。なお、各レジスタR1ないしR8は、
第20図に示したALU3および乗算器5から演算結果を示す
データを受けるように接続されている(図示せず)。
第19図は、第18図に示したレジスタ部7cを用いてバタ
フライ演算を実行する場合の演算フロー図である。第19
図を参照して、以下にバタフライ演算のための演算処理
を説明する。なお、第24図に示した場合と同様に、各入
力データx0ないしx3は各レジスタR1ないしR4中に予め保
持されているものと仮定する。したがって、各前置演算
回路から出力される出力データAR14,AR32,SR14およびSR
32は、次のように表わされる。
AR14=x0+x3 …(9) AR32=x2+x1 …(10) AR14=x0−x3 …(11) AR32=x2+x1 …(12) まず、ステップ1において、アドレス演算部8がソー
ス指定信号SADDおよびSADD′を出力するので、加算回路
81および82から加算データAR14およびAR32がバスライン
2に与えられる。データAR14およびAR32は、バスライン
2を介してALU3に与えられ、その加算結果を示すデータ
a3がレジスタR5(図示せず)に格納される。同様にし
て、ステップ2では、出力データAR14およびAR32がALU3
に送られ、その減算結果を示すデータa4がレジスタR7
(図示せず)に格納される。
ステップ3および4では、各レジスタR5およびR7にそ
れぞれ保持されているデータa3およびa4について乗算が
実行され、乗算結果を示すデータz0およびz2が各レジス
タR5およびR7にそれぞれ格納される。
ステップ5および6ではアドレス演算部8から出力さ
れたソース指定信号SSUBおよびSSUB′に応答して各減算
回路91および92が出力データSR14およびSR32をバスライ
ン2を介して乗算器5に与える。乗算器5では、データ
SR14およびSR32についてそれぞれ乗算が実行され、乗算
結果を示すデータa7およびa8がそれぞれレジスタR6およ
びR8(図示せず)中に格納される。ステップ7では、レ
ジスタR6中に保持されたデータa7とレジスタR8中に保持
されたデータa8とが減算され、減算結果を示すデータz1
がレジスタR6中に格納される。
ステップ8および9では、アドレス演算部8から再び
ソース指定信号SSUBおよびSSUB′が出力され、乗算器5
において出力データSR14およびSR32についての乗算が実
行される。乗算結果を示すデータa9およびa10はそれぞ
れレジスタR3およびR4中に格納される。ステップ10にお
いて、各レジスタR3およびR4中にそれぞれ保持されたデ
ータa9およびa10がALU3において加算され、加算結果を
示すデータz3がレジスタR8中に格納される。
上記の演算処理の結果、バタフライ演算の演算結果を
示す各データz0ないしz3が各レジスタR5ないしR8中にそ
れぞれ得られる。第24図に示した従来の演算フロー図と
比較すると、前置演算回路40を設けたことにより4つの
演算ステップが減じられていることが指摘される。すな
わち、第21図に示した従来のレジスタ部4を用いてバタ
フライ演算を実行すると、合計14の演算ステップが必要
であるのに対し、第18図に示したレジスタ部7cを用いた
場合では、10の演算ステップで足りる。すなわち、減じ
られた4つの演算ステップをALU3により実行する必要が
なくなるので命令数が減じられる。加えて、各レジスタ
R1ないしR4中に各データx0ないしx3が与えられるのと同
時に前置演算回路40による演算が実行されるので、高速
演算処理が実現される。別言すると、演算に必要な命令
の数が減少されるので、演算に要する時間が減じられ
る。一般に、前述のChen他による論文にも見られるよう
に、多くの高速アルゴリズムにおいてバタフライ演算が
多数回にわたって繰返し実行される。したがって、演算
ステップの減少は演算処理の高速化に大きく貢献する。
上記の実施例において示した前置演算回路40をマイク
ロプロセッサ中に設けるためには、必要な追加の回路部
分として、単純な回路構成を有するたとえば加算回路お
よび減算回路のような前置演算回路40を設けるだけで十
分である。前置演算回路40を指定するためのソース指定
信号は、命令メモリ部23中にストアされた命令プログラ
ムに従って発生される。このことは、複雑な制御回路の
追加が必要とされないことを意味する。すなわち前置演
算回路40を新たに設けるための回路変更が極めて少な
く、かつ、上記の実施例が容易に実現できるものである
ことが指摘される。
[発明の効果] 以上のように、請求項1の発明によれば、レジスタに
格納されたデータを予め定められた手法に従って演算し
かつその演算結果のデータをソースアドレス信号に応答
してデータバス線に出力する演算手段を設けたため、予
め定められた演算を含む演算をより高速に実行すること
のできるプロセッサが得られる。
また、請求項2の発明によれば、データ記憶手段に記
憶されたデータを予め定められた手法に従って演算しか
つその演算結果のデータをソースアドレス信号に応答し
てデータバス線に出力する演算手段を設けたため、予め
定められた演算を含む演算をより高速に実行することの
できるプロセッサが得られる。
さらに、請求項3の発明によれば、第1のレジスタに
格納されたデータと第2のレジスタに格納されたデータ
とを加算しかつその加算結果のデータをソースアドレス
信号に応答してデータバス線に出力する加算手段と、第
1のレジスタに格納されたデータから第2のレジスタに
格納されたデータを減算しかつその減算結果のデータを
ソースアドレス信号に応答してデータバス線に出力する
減算手段とを設けたため、2つのデータの加算および減
算を含む演算を高速に実行することのできるプロセッサ
が得られる。
【図面の簡単な説明】
第1図は、この発明の一実施例を示すレジスタ部の模式
的なブロック図である。第2図は、第1図に示したレジ
スタ部により8つのデータの加算を実行する場合の演算
フロー図である。第3図は、第1図に示した加算回路の
入出力データの関係を示す模式図である。第4図は、第
1図に示した加算回路の例を示すブロック図である。第
5図ないし第11図は、各々がこの発明の他の実施例を示
すレジスタ部の模式的なブロック図である。第12図は、
第11図に示したレジスタ部により8つのデータの加算を
実行する場合の演算フロー図である。第13図ないし第18
図は、各々がこの発明のさらに他の実施例を示すレジス
タ部の模式的なブロック図である。第19図は、第18図に
示したレジスタ部によるバタフライ演算の演算フロー図
である。第20図は、従来のマイクロプロセッサのブロッ
ク図である。第21図は、第20図に示したレジスタ部の模
式的なブロック図である。第22図は、第21図に示したレ
ジスタ部により8つのデータの加算を実行する場合の演
算フロー図である。第23図は、バタフライ演算の演算記
号図である。第24図は、第21図に示したレジスタ部によ
りバタフライ演算を実行する場合の演算フロー図であ
る。 図において、1はデータ演算部、2はバスライン、3は
ALU、5は乗算器、7a,7b,7cはレジスタ部、8はアドレ
ス演算部、24はデータメモリ部、40は前置演算回路、R1
ないしR5はレジスタである。
───────────────────────────────────────────────────── フロントページの続き (56)参考文献 特開 昭63−168772(JP,A) 特開 昭61−173382(JP,A) 特開 平2−194469(JP,A) 三菱電機技報 Vol.63,No.11 (1989−11−25)pp.61−65 (58)調査した分野(Int.Cl.6,DB名) G06F 17/10 G06F 17/14

Claims (3)

    (57)【特許請求の範囲】
  1. 【請求項1】プログラムされた命令に従ってデータを処
    理するプロセッサであって、 前記命令に従って処理されるべきデータの供給元を特定
    するソースアドレス信号および処理されたデータの供給
    先を特定するデスティネーションアドレス信号を生成す
    るアドレス演算手段と、 データバス線と、 前記データバス線から受けたデータを前記命令によって
    指定された手法に従って演算するALUと、 各々が、前記ALUの出力に接続され、前記ALUによる演算
    結果のデータを前記デスティネーションアドレス信号に
    応答して格納するとともに、その格納したデータを前記
    ソースアドレス信号に応答して前記データバス線に出力
    する複数のレジスタと、 前記複数のレジスタのうち少なくとも1つのレジスタに
    接続され、そのレジスタに格納されたデータを予め定め
    られた手法に従って演算するとともに、その演算結果の
    データを前記ソースアドレス信号に応答して前記データ
    バス線に出力する演算手段とを含む、プロセッサ。
  2. 【請求項2】プログラムされた命令に従ってデータを処
    理するプロセッサであって、 前記命令に従って処理されるべきデータの供給元を特定
    するソースアドレス信号および処理されたデータの供給
    先を特定するデスティネーションアドレス信号を生成す
    るアドレス演算手段と、 データバス線と、 前記データバス線から受けたデータを前記命令によって
    指定された手法に従って演算するALUと、 各々が、前記ALUの出力に接続され、前記ALUによる演算
    結果のデータを前記デスティネーションアドレス信号に
    応答して格納するとともに、その格納したデータを前記
    ソースアドレス信号に応答して前記データバス線に出力
    する複数のレジスタと、 前記データバス線から受けたデータを前記デスティネー
    ションアドレス信号に応答して記憶するとともに、その
    記憶したデータを前記ソースアドレス信号に応答して前
    記データバス線に出力するデータ記憶手段と、 前記データ記憶手段に接続され、前記データ記憶手段に
    記憶されたデータを予め定められた手法に従って演算す
    るとともに、その演算結果のデータを前記ソースアドレ
    ス信号に応答して前記データバス線に出力する演算手段
    とを含む、プロセッサ。
  3. 【請求項3】プログラムされた命令に従ってデータを処
    理するプロセッサであって、 前記命令に従って処理されるべきデータの供給元を特定
    するソースアドレス信号および処理されたデータの供給
    先を特定するデスティネーションアドレス信号を生成す
    るアドレス演算手段と、 データバス線と、 前記データバス線から受けたデータを前記命令によって
    指定された手法に従って演算するALUと、 前記ALUの出力に接続され、前記ALUによる演算結果のデ
    ータを前記デスティネーションアドレス信号に応答して
    格納するとともに、その格納したデータを前記ソースア
    ドレス信号に応答して前記データバス線に出力する第1
    のレジスタと、 前記ALUの出力に接続され、前記ALUによる演算結果のデ
    ータを前記デスティネーションアドレス信号に応答して
    格納するとともに、その格納したデータを前記ソースア
    ドレス信号に応答して前記データバス線に出力する第2
    のレジスタと、 前記第1および第2のレジスタに接続され、前記第1の
    レジスタに格納されたデータと前記第2のレジスタに格
    納されたデータとを加算するとともに、その加算結果の
    データを前記ソースアドレス信号に応答して前記データ
    バス線に出力する加算手段と、 前記第1および第2のレジスタに接続され、前記第1の
    レジスタに格納されたデータから前記第2のレジスタに
    格納されたデータを減算するとともに、その減算結果の
    データを前記ソースアドレス信号に応答して前記データ
    バス線に出力する減算手段とを含む、プロセッサ。
JP2188494A 1989-11-30 1990-07-16 プロセッサ Expired - Fee Related JP2862969B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US07/888,329 US5204962A (en) 1989-11-30 1992-05-26 Processor with preceding operation circuit connected to output of data register

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP31386489 1989-11-30
JP1-313864 1989-11-30
JP31602289 1989-12-04
JP1-316022 1989-12-04

Publications (2)

Publication Number Publication Date
JPH03223960A JPH03223960A (ja) 1991-10-02
JP2862969B2 true JP2862969B2 (ja) 1999-03-03

Family

ID=26567743

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2188494A Expired - Fee Related JP2862969B2 (ja) 1989-11-30 1990-07-16 プロセッサ

Country Status (1)

Country Link
JP (1) JP2862969B2 (ja)

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61173382A (ja) * 1985-01-28 1986-08-05 Matsushita Electric Ind Co Ltd デイジタル信号処理装置
JPS63168772A (ja) * 1987-01-07 1988-07-12 Yokogawa Electric Corp 累算器

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
三菱電機技報 Vol.63,No.11(1989−11−25)pp.61−65

Also Published As

Publication number Publication date
JPH03223960A (ja) 1991-10-02

Similar Documents

Publication Publication Date Title
CN107608715B (zh) 用于执行人工神经网络正向运算的装置及方法
JP2835103B2 (ja) 命令指定方法及び命令実行方式
US8904152B2 (en) Efficient complex multiplication and fast fourier transform (FFT) implementation on the ManArray architecture
US6467035B2 (en) System and method for performing table look-ups using a multiple data fetch architecture
EP0789297B1 (en) Data processor loading data and performing multiply-add operation in parallel
JP4064989B2 (ja) パック・データの乗加算演算を実行する装置
EP1058185A1 (en) A multiply and accumulate apparatus and a method thereof
JP2000503427A (ja) 画像処理プロセッサ
JPH10134036A (ja) マルチメディア信号プロセッサの単一命令多重データ処理
JP2001256038A (ja) 柔軟な乗算ユニットを有するデータ・プロセッサ
JPH02300983A (ja) 中央処理装置における高速演算処理の方法
WO1993020502A1 (en) Exponential/logarithmic computational apparatus and method
JP2002149400A (ja) 複数レジスタ指定が可能なsimd演算方式
CN112712172B (zh) 用于神经网络运算的计算装置、方法、集成电路和设备
JP3479385B2 (ja) 情報処理装置
Senzig et al. Computer organization for array processing
JPH10143494A (ja) スカラ/ベクトル演算の組み合わせられた単一命令複数データ処理
JP2862969B2 (ja) プロセッサ
US5204962A (en) Processor with preceding operation circuit connected to output of data register
KR19980018071A (ko) 멀티미디어 신호 프로세서의 단일 명령 다중 데이터 처리
US6275925B1 (en) Program execution method and program execution device
US7047271B2 (en) DSP execution unit for efficient alternate modes for processing multiple data sizes
JP2001216136A (ja) 加算回路およびプロセッサ
US6792442B1 (en) Signal processor and product-sum operating device for use therein with rounding function
Rovatti et al. Linear and fuzzy piecewise-linear signal processing with an extended DSP architecture

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees