JPH1153171A - データ演算装置および方法、並びに伝送媒体 - Google Patents

データ演算装置および方法、並びに伝送媒体

Info

Publication number
JPH1153171A
JPH1153171A JP9210256A JP21025697A JPH1153171A JP H1153171 A JPH1153171 A JP H1153171A JP 9210256 A JP9210256 A JP 9210256A JP 21025697 A JP21025697 A JP 21025697A JP H1153171 A JPH1153171 A JP H1153171A
Authority
JP
Japan
Prior art keywords
operand
data
value
register
address
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.)
Withdrawn
Application number
JP9210256A
Other languages
English (en)
Inventor
Masuyoshi Kurokawa
益義 黒川
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.)
Sony Corp
Original Assignee
Sony 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 Sony Corp filed Critical Sony Corp
Priority to JP9210256A priority Critical patent/JPH1153171A/ja
Publication of JPH1153171A publication Critical patent/JPH1153171A/ja
Withdrawn legal-status Critical Current

Links

Abstract

(57)【要約】 【課題】 プログラムのステップの削減を図る。 【解決手段】 シーケンサ50は、第1のオペランドま
たは第2のオペランドのうち、より長いビット長を有す
るオペランドのビット長をリピートカウンタ52にロー
ドし、より短いビット長を有するオペランドのビット長
をビットカウンタ53にロードし、リピート処理ととも
にこれらをデクリメントする。リピート処理のリピート
回数は、リピートカウンタのカウント数+1回に設定さ
れる。ビットカウンタ52の値が0となった以降、より
短いビット長を有するオペランドが2の補数である場
合、そのMSBがフルアダーに供給され、ストレートバイ
ナリである場合、値0がフルアダーに供給される。ま
た、シーケンサ50によるリピート処理の最後のクロッ
クにおいて、より長いビット長を有するオペランドが2
の補数である場合、そのMSBがフルアダーに供給され、
ストレートバイナリである場合、値0がフルアダーに供
給される。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、データ演算装置お
よび方法、並びに伝送媒体に関し、特に、SIMD並列制御
を行う場合に用いて好適なデータ演算装置および方法、
並びに伝送媒体に関する。
【0002】
【従来の技術】従来のデータ演算装置としては、特願平
07-230743号に開示されたものや、IEEE(The Institute
of Electrical and Electronics Engineers, Inc.)19
90 CUSTOM INTEGRATED CIRCUITS CONFERENCE ,P17. 3.1
に記載のSVP(Serial Video Processsor)と呼ばれるプ
ロセッサがある。このSVPは、映像信号をリアルタイム
でデジタル処理するプロセッサで、1024個のプロセ
ッサを1チップに収めたものである。そしてこのSVP
は、SIMD(Single Instruction stream/Multiple Datas
tream)構造で、水平走査線の画素データを並列処理可
能である。ここで、SIMDとは、コンピュータのデータ処
理方式の1つで、データは異なるが、同一の仕事を同時
処理するものである。
【0003】図15は、このような従来のデータ演算装
置の一構成例を示している。このデータ演算装置は、上
述のSIMD制御並列プロセッサである。このデータ演算装
置において、入力シリアルアクセスメモリ31、データ
メモリ32、演算回路33、および、出力シリアルアク
セスメモリ34は、リニアアレイ(直線配列)型に並列
化されたプロセッサエレメント群を構成している。これ
らのプロセッサエレメント35は、プログラム制御回路
37が有するプログラムメモリ38に記憶されている1
つのプログラムに従って、連動して制御される。
【0004】プログラム制御回路37は、プログラムメ
モリ38のアドレスを制御するシーケンサ(図示せず)
を内蔵し、プログラムメモリ38に記憶されているプロ
グラムに従って、プログラムメモリ38のアドレスを更
新していくとともに、各種制御信号を発生して、各種回
路を制御する。
【0005】なお、入力シリアルアクセスメモリ31、
データメモリ32、出力シリアルアクセスメモリ34
は、主にメモリで構成されいる。図の装置においては、
これらのメモリのためのロウ(ROW)アドレスデコーダ
は、プログラム制御回路37に含まれているものとす
る。また、データメモリ32は、2リード、1ライトの
3ポートを有しているメモリであり、データの書き込み
または読み出しのためのビット線は、この場合は縦に走
っており、このビット線端に演算回路33が接続されて
いる。
【0006】並列化されたプロセッサエレメント35
(単一エレメント分)は、図において斜線で示した部分
に対応し、複数のプロセッサエレメント35が、図中に
おいて横方向に配列されている。即ち、図の斜線の部分
だけで、1つのプロセッサに対応する構成要素を有して
いる。なお、要素演算回路36は、演算回路33の単一
エレメント分の回路である。
【0007】図16は、単一エレメント分のデータメモ
リ32および要素演算回路36の構成例を示している。
各プロセッサエレメントにおける演算の際に、自らに割
り当てられたデータ以外に、近傍のプロセッサエレメン
ト35に割り当てられたデータを用いて演算を行う場合
がある。そのため、データメモリ32には、セレクタ3
01Aおよびセレクタ301Bが設けられており、隣接
したプロセッサエレメント35のデータメモリに供給さ
れているデータを、プログラム制御回路37の制御によ
り適宜読み出すことができるようになされている。
【0008】例えば、セレクタ301Aおよびセレクタ
301Bには、図に示されているデータメモリ32のデ
ータと、左側および右側に隣接している図示せぬプロセ
ッサエレメント35のデータメモリ32のデータが供給
されている。セレクタ301Aは、この3つの入力のう
ちの1つを選択して、セレクタ302Aおよびセレクタ
302Bに供給する。また、セレクタ301Bも同様
に、3つの入力のうち1つを選択し、セレクタ302C
に供給する。
【0009】セレクタ301Aからのデータは、セレク
タ302Aを介してレジスタ303Aに供給されるとと
もに、セレクタ302Bを介してレジスタ303Bに供
給される。レジスタ303Aは供給されたデータを保持
した後、論理和回路304およびセレクタ307に出力
するとともに、セレクタ302Aに帰還させる。レジス
タ303Bは供給されたデータを保持した後、論理積回
路304およびセレクタ305に供給する。
【0010】セレクタ301Bからのデータは、セレク
タ302Cを介してレジスタ303Cに供給される。レ
ジスタ303Cは、供給されたデータを保持した後、セ
レクタ307およびフルアダー308に供給する。ま
た、レジスタ303Dは、フルアダー308からセレク
タ302Dを介して供給されるキャリーを保持するよう
になされている。
【0011】論理積回路304は、レジスタ303Aと
レジスタ303Bに保持されているデータの論理積を演
算し、セレクタ305に出力するようになされている。
排他的論理和回路306は、論理積回路304の出力
と、プログラム制御回路37から供給されるデータとの
排他的論理和を演算し、その演算結果をフルアダー30
8に供給している。フルアダー308は、さらにレジス
タ303Cとレジスタ303Dに保持されているデータ
が供給されている。フルアダー308は、これらの3つ
の入力の加算を行い、その演算の結果生成されたサムと
キャリーとを、セレクタ309に出力するようになされ
ている。このうちキャリーはセレクタ302Dにも供給
されている。
【0012】セレクタ307はレジスタ303Aの値に
よって、排他的論理和回路306、レジスタ303Cか
ら供給されるデータを選択し、セレクタ309に出力し
ている。セレクタ309は、プログラム制御回路37の
制御信号により、セレクタ307の入力、フルアダー3
08からの2つの入力の、合計3つの入力のうちのいず
れか1つを選択し、データメモリ32に出力している。
セレクタ305は、プログラム制御回路37からの信号
により制御され、レジスタ303Bまたは論理積回路3
04の値を選択し、排他的論理和回路306に出力す
る。
【0013】例えば、プログラム制御回路37からの信
号により、セレクタ305を制御し、データメモリ32
から供給されレジスタ303Bに保持されているデータ
が排他的論理和回路306を介して、フルアダー308
に入力される。フルアダー308は、排他的論理和回路
306より入力されるデータ(レジスタ303Bから供
給されたデータ)、データメモリ32より供給され、レ
ジスタ303Cに保持されたデータ、およびレジスタ3
03Dに保持されている前回の演算時に発生したキャリ
ーを加算し、その加算結果と、新たに生成したキャリー
をセレクタ309に出力する。キャリーはまた、レジス
タ303Dに供給され、保持される。
【0014】また、プログラム制御回路37は、セレク
タ309を制御して、フルアダー308の出力するキャ
リーを選択し、データメモリ32に出力させることがで
きる。あるいはまた、セレクタ307を制御し、排他的
論理和回路306またはレジスタ303Cから供給され
たデータの一方を選択し、これをさらにセレクタ309
で選択させて、データメモリ32に供給することができ
る。
【0015】プログラム制御回路37は、論理積回路3
04より出力されるデータの論理を反転して、フルアダ
ー308に供給する場合、排他的論理和回路306の一
方の入力に論理1を供給する。このようにすると、排他
的論理和回路306は、論理積回路304より論理1が
出力されたとき、論理0を出力し、論理積回路304よ
り論理0が入力されたとき、論理1を出力することがき
る。
【0016】以上のようにして1水平走査期間に割り当
てられている演算が終了すると、その水平走査期間のう
ちに、その水平走査期間に演算されたデータは、出力シ
リアルアクセスメモリ34に転送される。
【0017】以上のように、入力データを入力シリアル
アクセスメモリ31に取り込む入力処理、プログラム制
御回路37による、入力シリアルアクセスメモリ31に
蓄積された入力データのデータメモリ32への転送、演
算回路33による演算、および、出力シリアルアクセス
メモリ34への出力データの転送の演算処理、並びに、
出力データを出力シリアルアクセスメモリ34から読み
出す出力処理の3つの処理が、各プロセッサエレメント
35の各入力データに対して行われる。なお、これらの
3つの処理は、画像信号の1水平走査期間を単位とする
パイプライン処理として実行される。すなわち、データ
演算装置において、割り当てられた1水平走査期間分の
画素データに対して、3つの処理が一括して行われてい
る。
【0018】
【発明が解決しようとする課題】ところで、データ演算
装置において行われる主な演算は、加算、減算、または
乗算である。このような演算を行う場合において、オペ
ランドのビット長などの演算において必要な情報が指定
される。この場合、プログラムメモリ38におけるプロ
グラムをそのように記述することにより実現することが
できる。しかしながら、その分の処理のためにプログラ
ムのステップが増加する課題があった。
【0019】本発明は、このような状況に鑑みてなされ
たものであり、データ演算装置における演算の効率を向
上させることを目的とする。
【0020】
【課題を解決するための手段】請求項1に記載のデータ
演算装置は、演算の対象となる第1のオペランドと第2
のオペランドの間で所定の演算を行う演算手段と、第1
のオペランドのビット長および第2のオペランドのビッ
ト長を検出する第1の検出手段と、第1の検出手段の検
出結果に応じて、第1のオペランドまたは第2のオペラ
ンドのうち、より長いビット長を有するオペランドのビ
ット長を計数する第1の計数手段と、第1の検出手段の
検出結果に応じて、第1のオペランドまたは第2のオペ
ランドのうち、より短いビット長を有するオペランドの
ビット長を計数する第2の計数手段と、第1の計数手段
による計数値に1を加算した回数だけ演算手段に所定の
演算をリピートさせるリピート手段と、第1のオペラン
ドと第2のオペランドのデータの表現形式を検出する第
2の検出手段と、第2の計数手段による計数値と、第2
の検出手段による検出値とに応じて、より短いビットを
有する前記オペランドの上位ビットを補足する第1の補
足手段と、第1の計数手段による計数値と、第1の検出
手段による検出値とに応じて、より長いビットを有する
オペランドの上位ビットを補足する第2の補足手段とを
備えることを特徴とする。
【0021】請求項7に記載のデータ演算方法は、演算
の対象となる第1のオペランドと第2のオペランドの間
で所定の演算を行う演算ステップと、第1のオペランド
のビット長および第2のオペランドのビット長を検出す
る第1の検出ステップと、第1の検出ステップの検出結
果に応じて、第1のオペランドまたは第2のオペランド
のうち、より長いビット長を有するオペランドのビット
長を計数する第1の計数ステップと、第1の検出ステッ
プの検出結果に応じて、第1のオペランドまたは第2の
オペランドのうち、より短いビット長を有するオペラン
ドのビット長を計数する第2の計数ステップと、第1の
計数ステップによる計数値に1を加算した回数だけ演算
ステップに所定の演算をリピートさせるリピートステッ
プと、第1のオペランドと第2のオペランドのデータの
表現形式を検出する第2の検出ステップと、第2の計数
ステップによる計数値と、第2の検出ステップによる検
出値とに応じて、より短いビットを有するオペランドの
上位ビットを補足する第1の補足ステップと、第1の計
数ステップによる計数値と、第1の検出ステップによる
検出値とに応じて、より長いビットを有するオペランド
の上位ビットを補足する第2の補足ステップとを備える
ことを特徴とする。
【0022】請求項8に記載の伝送媒体は、演算の対象
となる第1のオペランドと第2のオペランドの間で所定
の演算を行う演算ステップと、第1のオペランドのビッ
ト長および第2のオペランドのビット長を検出する第1
の検出ステップと、第1の検出ステップの検出結果に応
じて、第1のオペランドまたは第2のオペランドのう
ち、より長いビット長を有するオペランドのビット長を
計数する第1の計数ステップと、第1の検出ステップの
検出結果に応じて、第1のオペランドまたは第2のオペ
ランドのうち、より短いビット長を有するオペランドの
ビット長を計数する第2の計数ステップと、第1の計数
ステップによる計数値に1を加算した回数だけ演算ステ
ップに所定の演算をリピートさせるリピートステップ
と、第1のオペランドと第2のオペランドのデータの表
現形式を検出する第2の検出ステップと、第2の計数ス
テップによる計数値と、第2の検出ステップによる検出
値とに応じて、より短いビットを有するオペランドの上
位ビットを補足する第1の補足ステップと、第1の計数
ステップによる計数値と、第1の検出ステップによる検
出値とに応じて、より長いビットを有するオペランドの
上位ビットを補足する第2の補足ステップとを有するプ
ログラムを伝送することを特徴とする。
【0023】請求項1に記載のデータ演算装置、請求項
3に記載のデータ演算方法、および請求項4に記載の伝
送媒体においては、第1のオペランドのビット長および
第2のオペランドのビット長を検出し、検出結果に応じ
て、第1のオペランドまたは第2のオペランドのうち、
より長いビット長を有するオペランドのビット長を計数
し、検出結果に応じて、第1のオペランドまたは第2の
オペランドのうち、より短いビット長を有するオペラン
ドのビット長を計数し、その計数値に1を加算した回数
だけ演算手段に所定の演算をリピートさせ、第1のオペ
ランドと第2のオペランドのデータの表現形式を検出
し、オペランドのデータの表現形式およびビット長に基
づいて、各オペランドの上位ビットを補足する。
【0024】
【発明の実施の形態】以下に本発明の実施の形態を説明
するが、特許請求の範囲に記載の発明の各手段と以下の
実施の形態との対応関係を明らかにするために、各手段
の後の括弧内に、対応する実施の形態(但し一例)を付
加して本発明の特徴を記述すると、次のようになる。但
し勿論この記載は、各手段を記載したものに限定するこ
とを意味するものではない。
【0025】請求項1に記載のデータ演算装置は、演算
の対象となる第1のオペランドと第2のオペランドの間
で所定の演算を行う演算手段(例えば、図2のフルアダ
ー97)と、第1のオペランドのビット長および第2の
オペランドのビット長を検出する第1の検出手段(例え
ば、図1のプログラム制御回路42)と、第1の検出手
段の検出結果に応じて、第1のオペランドまたは第2の
オペランドのうち、より長いビット長を有するオペラン
ドのビット長を計数する第1の計数手段(例えば、図3
のリピートカウンタ52)と、第1の検出手段の検出結
果に応じて、第1のオペランドまたは第2のオペランド
のうち、より短いビット長を有するオペランドのビット
長を計数する第2の計数手段(例えば、図3のビットカ
ウンタ53)と、第1の計数手段による計数値に1を加
算した回数だけ演算手段に所定の演算をリピートさせる
リピート手段(例えば、図3のシーケンサ50)と、第
1のオペランドと第2のオペランドのデータの表現形式
を検出する第2の検出手段(例えば、図1のプログラム
制御回路42)と、第2の計数手段による計数値と、第
2の検出手段による検出値とに応じて、より短いビット
を有する前記オペランドの上位ビットを補足する第1の
補足手段(例えば、図2のレジスタ80,81)と、第
1の計数手段による計数値と、第1の検出手段による検
出値とに応じて、より長いビットを有するオペランドの
上位ビットを補足する第2の補足手段(例えば、図2の
レジスタ80,81)とを備えることを特徴とする。
【0026】図1は、本発明を適用したデータ演算装置
の構成例を示すブロック図であり、図15に示した従来
の構成例と対応する部分には同一の符号を付してあり、
その説明は適宜省略する。図1において、プログラム制
御回路42は、プログラムメモリ43およびシーケンサ
50(図3を用いて後述する)などから構成されてい
る。プログラムメモリ43は、制御プログラムを記憶し
ており、プログラム制御回路42は、このプログラムに
基づいて各プロセッサエレメント35を制御する。
【0027】図2は、図1の各プロセッサエレメント3
5の要素演算回路41の構成例を示している。この構成
例において、CD0乃至CD24と示されているもの
は、図1のプログラム制御回路42において生成される
25ビットの制御コードであり、それぞれ所定のセレク
タに割り当てられ、割り当てられたセレクタを制御する
ようになされている。セレクタ70Aおよびセレクタ7
0Bには、それぞれ読み出しポートRP1と読み出しポ
ートRP2を介して、図1のデータメモリ32の所定の
アドレスのデータが供給されている。これらのアドレス
は、アドレス修飾回路45Aおよびアドレス修飾回路4
5B(図3を用いて後述)によって独立に指定すること
ができる。また、読み出しポートRP1からのデータ
は、左右に隣接したプロセッサエレメント35に対して
も供給されるようになされている。
【0028】セレクタ70Aおよびセレクタ70Bに
は、自分自身に対応するもの以外に、近傍のプロセッサ
エレメント35からのデータが供給されており、適宜演
算に用いることができる。セレクタ70Bには、さらに
セレクタ101からのデータが帰還的に供給されてお
り、前回の演算結果を繰り返して用いる場合においてこ
れが選択される。
【0029】セレクタ70Aにより選択されたデータ
は、セレクタ72およびセレクタ74に供給され、セレ
クタ70Bにより選択されたデータは、セレクタ71、
セレクタ73、セレクタ75、およびセレクタ98に供
給される。セレクタ71は、セレクタ70Bから供給さ
れるデータ、値0、値1、またはレジスタ77から帰還
されるデータのうちいずれか1つを選択し、レジスタ7
7に供給する。レジスタ77は、供給されたデータを一
旦保持した後、セレクタ88、セレクタ100、論理積
回路84、および論理積回路85に出力し、また、セレ
クタ71に帰還させるとともに、セレクタ73にも供給
している。セレクタ88は、制御コードCD4がイネー
ブルである場合、レジスタ77からのデータを選択し、
制御コードCD4がディセーブルである場合、予め設定
されている値0を選択し、また、選択したデータを制御
データとしてセレクタ93に出力し、セレクタ93を制
御するようになされている。
【0030】セレクタ72は、セレクタ70Aからのデ
ータ、値0、値1、またはレジスタ78から帰還される
データのうちいずれか1つを選択し、レジスタ78に出
力するようになされている。セレクタ73は、セレクタ
70Bからのデータ、値0、値1、レジスタ77からの
データ、またはレジスタ79から帰還されるデータのう
ちいずれか1つを選択し、レジスタ79に出力する。レ
ジスタ78とレジスタ79は、供給されたデータを一旦
保持した後、排他的論理和回路83、論理積回路84、
および論理積回路85に出力するとともに、それぞれセ
レクタ72とセレクタ73に帰還させる。
【0031】排他的論理和回路83は、レジスタ78お
よびレジスタ79から供給されるデータが、ともに値0
である場合、またはともに値1である場合は論理1を、
それ以外の場合は論理0をセレクタ87に出力するよう
になされている。セレクタ87は、制御コードCD3が
イネーブルである場合、排他的論理和回路83からのデ
ータを選択し、制御コードCD3がディセーブルである
場合、値0を選択するようになされている。セレクタ8
7はまた、選択したデータを制御データとしてセレクタ
91に出力し、セレクタ91を制御する。
【0032】論理積回路84は、供給される3つのデー
タの論理積を演算し、演算結果を論理和回路86に出力
する。論理積回路85は、供給される3つのデータを反
転した後、論理積を演算し、演算結果を論理和回路86
に出力する。論理和回路86は、供給されたデータの論
理和を演算し、演算結果をセレクタ89に出力するよう
になされている。論理積回路84、論理積回路85、お
よび論理和回路86がこのように構成されることによ
り、例えば、レジスタ77乃至79からのデータが全て
値0または全て値1となる場合のみ論理和回路86は論
理1をセレクタ89に出力し、それ以外の場合、論理0
をセレクタ89に出力するように制御することができ
る。
【0033】セレクタ89は、制御コードCD2がイネ
ーブルの場合、論理和回路86からのデータを選択し、
制御コードCD2がディセーブルの場合、値0を選択す
る。また、セレクタ89は選択したデータを制御データ
としてセレクタ94に出力し、セレクタ94を制御す
る。
【0034】セレクタ74は、セレクタ70Aからのデ
ータ、値0、値1、およびレジスタ80から帰還される
データのうちいずれか1つを選択し、セレクタ75は、
セレクタ70Bからのデータ、値0、値1、およびレジ
スタ81から帰還されるデータのうちいずれか1つを選
択し、また、セレクタ76は、フルアダー97からのキ
ャリー、値0、値1、レジスタ82から帰還されるデー
タのうちいずれか1つを選択し、それぞれレジスタ80
乃至82に出力するようになされている。レジスタ81
とレジスタ82は、供給されたデータを一旦保持した
後、フルアダー97に出力するとともに、それぞれセレ
クタ75とセレクタ76に帰還させるようになされてい
る。
【0035】レジスタ80は、供給されたデータを一旦
保持した後、セレクタ91およびレジスタ90に出力す
るとともに、セレクタ74に帰還させる。レジスタ90
は、レジスタ80からのデータを一旦保持した後、セレ
クタ91に出力するようになされている。セレクタ91
は、セレクタ87からの制御データの値が0の場合、レ
ジスタ80からのデータを選択し、セレクタ87からの
制御データの値が1の場合、レジスタ90に保持されて
いるデータを選択し、セレクタ93およびインバータ9
2に出力するようになされている。インバータ92は、
セレクタ91からのデータを反転し、セレクタ93に供
給している。
【0036】セレクタ93は、セレクタ88からの制御
データの値が0の場合、セレクタ91からのデータを選
択し、セレクタ88からの制御データの値が1の場合、
セレクタ91から出力され、インバータ92により反転
されたデータを選択し、セレクタ94に供給する。セレ
クタ94は、セレクタ89からの制御データの値が0の
場合、セレクタ93からのデータを選択し、セレクタ8
9からの制御データの値が1の場合、値0を選択し、セ
レクタ96に出力するようになされている。セレクタ9
6は、制御コードCD5がディセーブルの場合、セレク
タ94からのデータを選択し、制御コードCD5がイネ
ーブルの場合、セレクタ94から出力され、インバータ
95により反転されたデータを選択してフルアダー97
に供給する。
【0037】フルアダー97は、セレクタ96からのデ
ータ、レジスタ81からのデータ、およびレジスタ82
からのデータを加算し、その加算結果であるサムと、新
たに発生したキャリーをセレクタ101に出力する。さ
らにサムはセレクタ100にも供給され、キャリーは、
セレクタ76およびセレクタ98に供給される。セレク
タ98は、制御コードCD6に対応して、セレクタ70
Bからのデータまたはフルアダー97からのキャリーの
どちらか一方を選択し、レジスタ99に出力する。レジ
スタ99は、セレクタ98より供給されたデータを一旦
保持した後、セレクタ100およびセレクタ101に出
力する。
【0038】セレクタ100は、レジスタ77からの制
御データに対応して、フルアダー97のサムまたはレジ
スタ99からのデータのうちどちらか一方を選択し、セ
レクタ101に出力する。セレクタ101は、制御コー
ドCD0または制御コードCD1に対応して、フルアダ
ー97からのサム、フルアダー97からのキャリー、セ
レクタ100からのデータ、またはレジスタ99からの
データのうちいずれか1つを選択し、セレクタ70Bに
帰還させるとともに、レジスタ102に出力する。レジ
スタ102は、セレクタ101からのデータを一旦保持
した後、書き込みポートWPを介して、アドレス修飾回
路45C(図3を用いて後述する)により指定されるア
ドレスに書き込まれる。
【0039】要素演算回路41をこのように構成するこ
とにより、レジスタ80にロードされるデータに対し、
1クロック遅延、反転、または値0によるマスクなどの
処理を施した後、フルアダー97において演算すること
ができる。また、所定のクロックにおいてフルアダー9
7から出力されたサムおよびキャリーをともにデータメ
モリ32に書き込む場合、まずキャリーをレジスタ99
に保持させておき、サムをデータメモリ32の所定のア
ドレスに書き込んだ後、次のクロックにおいてキャリー
をレジスタ99から読み出し、データメモリ32に書き
込むようにすることができる。
【0040】図3は、図1のプログラム制御回路42の
構成例を示している。この構成例において、シーケンサ
50は、アドレスカウンタ51、リピートカウンタ5
2、ビットカウンタ53、およびスタックレジスタ54
を備え、さらに、補助レジスタ55A、補助レジスタ5
5B、およびループカウンタ56を備えている。アドレ
スカウンタ51は、プログラムメモリ43のシーケンス
制御フィールドSQCに基づいて、プログラムメモリ43
のアドレスを順次更新するようになされている。リピー
トカウンタ52は、プログラムメモリ43の同一アドレ
スを繰り返し生成する処理(以後、リピート処理と表記
する)の回数をカウントし、ビットカウンタ53は、オ
ペランドのビット長をカウントするようになされてい
る。シーケンサ50のリピート処理により、プログラム
制御回路42は、図1の各プロセッサエレメント35に
対して同一の制御を繰り返し実行するようになされてい
る。
【0041】スタックレジスタ54は、サブルーチンの
リターンアドレスなどを一時的に格納するようになされ
ている。補助レジスタ55Aは、スタックレジスタ54
およびループカウンタ56にロードされる値を一時的に
保持し、補助レジスタ55Bは、リピートカウンタ52
にロードされる値を一時的に保持するようになされてい
る。ループカウンタ56は、プログラムのループ処理の
回数をカウントするようになされている。
【0042】図4は、シーケンス制御フィールドSQCお
よび拡張フィールドEXTに対応して、シーケンサ50が
実行する各機能FUNCTIONのテーブルを表している。シー
ケンサ50は、CONT命令により、次に実行されるアドレ
スを生成し、プログラムメモリ43に供給する。このア
ドレスに対応して、プログラム制御回路42は図1の各
プロセッサエレメント35を制御する。SUB命令およびR
TN命令により、シーケンサ50は、サブルーチン処理を
実行するようになされている。SUB命令では、シーケン
サ50は、サブルーチン処理の後に実行されるアドレス
をスタックレジスタ54にプッシュし、拡張フィールド
EXTで指示されるサブルーチンアドレスにジャンプす
る。サブルーチンにおけるプログラムに従って、プログ
ラム制御回路42により所定の処理が実行された後、シ
ーケンサ50は、RTN命令によりスタックレジスタ54
のアドレスにジャンプし、格納されているアドレスをポ
ップし、そのアドレスの処理に移る。
【0043】FOR命令およびFEND命令は、シーケンサ5
0にループ処理を実行させるようになされている。FOR
命令において、シーケンサ50は、ループの先頭アドレ
スをスタックレジスタ54にプッシュし、拡張フィール
ドEXTで指定されるループ回数をループカウンタ56に
ロードする。シーケンサ50は、FEND命令により、ルー
プカウンタ56の値をデクリメントし、この値が0では
ない場合、スタックレジスタ54のアドレスにジャンプ
する。また、シーケンサ50は、ループカウンタ56の
値が0である場合、格納されているアドレスをポップ
し、次のアドレスの処理に移る。
【0044】RPT命令により、シーケンサ50はリピー
トカウンタ52を用いて、拡張フィールドEXTで指定さ
れる回数だけリピート処理を実行し、WAIT命令により、
拡張フィールドEXTで指定される信号が真になるまでア
ドレスカウンタ51のインクリメントを一時的に停止さ
せる。このWAIT命令は、外部からの信号に同期して、プ
ログラムを起動させるための命令である。また、JMP命
令により、シーケンサ50は、拡張フィールドEXTで指
定されるアドレスの処理に移る。
【0045】以上に示した各命令を組み合わせることに
より、シーケンサ50を制御することができる。
【0046】プログラムメモリ43は、シーケンサ50
により順次更新されるアドレスに従い、シーケンス制御
コードをシーケンサ50に供給し、図1のデータメモリ
32の読み出しポートRP1およびRP2(図2参照)
から所定のデータをロードする際に指定するアドレス、
所定の演算結果を書き込みポートWP(図2参照)を介
して書き込む際に指定するアドレスを、アドレスフィー
ルドからアドレス修飾回路45A乃至45Cにそれぞれ
供給する。また、プログラムメモリ43は、制御コード
フィールドから制御コードCD0乃至CD24をコード
修飾回路44に供給する。コード修飾回路44は、プロ
グラムメモリ43の制御コードフィールドから供給され
た制御コードCD0乃至CD24に対して所定の修飾を
施し、図1の各プロセッサエレメント35に供給する。
【0047】図5は、図3のアドレス修飾回路45Aの
構成例を示している。なお、アドレス修飾回路45Bお
よびアドレス修飾回路45Cも同様な構成とされている
ものとする。この構成例において、アドレスカウンタ6
0は、プログラムメモリ43のアドレスフィールドから
供給されるアドレス、アドレスレジスタ61Aに格納さ
れているアドレス、またはアドレスレジスタ61Bに格
納されているアドレスをロードし、インクリメントする
ことができるようになされている。例えば、所定のオペ
ランドの各ビットが、図1のデータメモリ32に所定の
アドレスから順に格納されているものとすると、アドレ
スカウンタ60は、オペランドのLSBが格納されている
アドレスを先頭アドレスとしてロードし、それをインク
リメントすることにより、オペランドの各ビットのアド
レスを順次指定することができる。
【0048】アドレスカウンタ60は9ビットのカウン
タであり、図6はそのアドレスマップを表している。こ
こで、メモリのローアドレスは、256ビットであるも
のとする。この図において、上位4ビットが1,0,
0,0であるアドレスは入力シリアルアクセスメモリ
(IR)31のアドレス、上位4ビットが1,0,1,0
であるアドレスは出力シリアルアクセスメモリ(OR)の
アドレス、MSBが0のアドレスはデータメモリ32のア
ドレスにそれぞれ対応している。また、上位ビットが
1,1,1,1である場合は、制御の対象とならないこ
とを示している。なお、図における記号?および記号*
は、任意のアドレス値を示している。
【0049】アドレスレジスタ61Aおよびアドレスレ
ジスタ61Bは、プログラムメモリ43のアドレスフィ
ールドから供給されるアドレスを一時的に保持し、ま
た、そのアドレスをインクリメントすることができよう
になされている。例えば、アドレスレジスタ61Aおよ
びアドレスレジスタ61Bは、サブルーチンの引数とし
て、オペランドの先頭アドレスを格納し、適宜インクリ
メントすることにより、必要となるアドレスを各プロセ
ッサエレメント35に指定することができる。
【0050】なお、アドレス修飾回路45Aのアドレス
レジスタ61Aおよびアドレスレジスタ61Bのうち少
なくともどちらか一方、アドレス修飾回路45Bのアド
レスレジスタ61Aおよびアドレスレジスタ61Bの両
方、アドレス修飾回路45Cのアドレスレジスタ61A
およびアドレスレジスタ61Bの少なくともどちらか一
方は、2づつのインクリメントができるものとする。
【0051】次に、図7および図8のフローチャートを
参照して図2の要素演算回路41において加算演算処理
を行う場合の動作例を説明する。ここで、第1のオペラ
ンドのビット長が、第2のオペランドのビット長よりも
長いものとし、第1のオペランドが読み出しポートRP
1から、第2のオペランドが読み出しポートRP2から
それぞれロードされるものとする。また、読み出しポー
トRP1からロードされるオペランドが格納されている
アドレスは、図3のアドレス修飾回路45Aにより指定
され、読み出しポートRP2からロードされるオペラン
ドが格納されているアドレスは、アドレス修飾回路45
Bにより指定される。さらにWPを介して演算結果を書
き込むアドレスは、アドレス修飾回路45Cにより指定
される。
【0052】まずステップS1において、プログラムメ
モリ43における制御コードフィールドが加算減算モー
ドに設定される。ステップS2では、第1のオペランド
および第2のオペランドのビット長や、これらのオペラ
ンドが2の補数であるか否かの情報が、プログラムメモ
リ43の1ワードで指定される。
【0053】ステップS3において、シーケンサ50
は、ステップS1で指定された各オペランドのビット長
に基づいて、他方よりビット長が長い方、即ちいまの場
合、第1のオペランドのビット長+1をプログラムメモ
リ43の拡張フィールドEXTからリピートカウンタ52
にロードする。また、ステップ4において、他方よりビ
ット長が短い方、即ちいまの場合、第2のオペランドの
ビット長をビットカウンタ53にロードする。ここで、
プログラム制御回路42は1回のリピート処理におい
て、第1のオペランドと第2のオペランドの読み出し、
フルアダー97における演算、データメモリ32の所定
のアドレスへのサムの書き込み、およびキャリーのセレ
クタ76への出力、という一連の動作を各プロセッサエ
レメントに実行させる。
【0054】ここで、図3のコード修飾回路44は1回
のリピート処理が終了するまで、同一制御コードを各プ
ロセッサエレメント35に供給し、次のリピート処理に
移る際に、新たな制御コードを各プロセッサエレメント
35に供給する。
【0055】ステップS5では、要素演算回路41で加
算が行われる場合、リピート処理の第1クロック目にお
いて、セレクタ76が値0を選択するように設定され、
減算が行われる場合、リピート処理の第1クロック目に
おいてセレクタ76が値1を選択するように設定され
る。
【0056】ステップS6において、要素演算回路41
で減算が行われる場合、2つのオペランドのうちの減算
数である方のオペランドが、インバータ95により反転
されてフルアダー97に供給されるように設定される。
【0057】ステップS7において、リピート処理の2
クロック目以降において、セレクタ76がフルアダー9
7からのキャリーを選択するように設定される。ステッ
プS8において、シーケンサ50は、リピート処理を実
行するとともに、リピートカウンタ52およびビットカ
ウンタ53の値をデクリメントする。そして、ステップ
S9において、ビットカウンタ53の値が0であるか否
かが判定され、ビットカウンタ53の値が0ではないと
判定された場合、ステップS8に戻り、ビットカウンタ
53の値が0であると判定された場合、ステップS10
に進む。
【0058】ステップS10において、ステップS2に
おいて指定されたオペランドの情報に基づいて、第2の
オペランドが2の補数であるか否かが判定され、第2の
オペランドが2の補数であると判定された場合、ステッ
プS11に進み、第2のオペランドのMSBの値がレジス
タ81に保持され、以降のリピート処理においてこの値
が読み出され、フルアダー97に供給されるように設定
される。ステップS10において、第2のオペランドが
2の補数ではない(ストレートバイナリである)と判定
された場合、ステップS12に進み、セレクタ75によ
り値0が選択され、レジスタ81に保持される。そし
て、以降のリピート処理においてこの値が読み出され、
フルアダー97に供給されるように設定される。
【0059】ステップS13において、リピート処理が
最後のクロックの処理であるか否かが判定され、リピー
ト処理が最後のクロックの処理ではないと判定された場
合、ステップS8に戻り、リピート処理が最後のクロッ
クの処理であると判定された場合、ステップS14に進
む。
【0060】ステップS14において、第1のオペラン
ドが2の補数であるか否かが判定され、第1のオペラン
ドが2の補数であると判定された場合、ステップS15
に進み、第1のオペランドのMSBがレジスタ80を介し
てフルアダー97に供給され、演算に用いられる。ステ
ップS14において、第2のオペランドが2の補数では
ないと判定された場合、ステップS16において、セレ
クタ74により値0が選択され、レジスタ80を介して
フルアダー97に供給され演算に用いられる。
【0061】このように、演算のリピート回数は、2つ
のオペランドのビット長が、シーケンサ50のリピート
カウンタ52およびビットカウンタ53によりカウント
されることにより設定することができ、2つのオペラン
ドが2の補数であるか否かによる処理の相違は、プログ
ラム制御回路42がセレクタ74またはセレクタ75の
選択を制御することにより対処することが可能となる。
【0062】以上の説明においては、加算減算処理の場
合について述べたが、次に乗算処理について述べる。
【0063】本発明のデータ演算装置においては、乗算
方法の例として2次のブースの方法に従ってプログラム
がインプリメントされており、この2次のブースの方法
のアルゴリズムを示す。ここで、被乗数および乗数をそ
れぞれX,Yとし、n,mは正の整数とする。また、簡
単のため、mは奇数であるものとする。被乗数X、およ
び乗数Yは、2の補数として以下のように表される。
【0064】
【数1】
【0065】
【数2】
【0066】この被乗数Xと乗数Yとの乗算Z(=X×
Y)は、次のように表される。ただし、Ym+1=0と
する。
【0067】
【数3】
【0068】これは、(Y2i+2+Y2i+1−2×Y2i)の
値と被乗数Xの積(部分積)が、(m−1)/2+1
回、順次シフト加算されることにより、乗算結果が得ら
れることを示している。ここで、図9は、変数Y2i、変
数Y2i+1、および変数2×Y2iがそれぞれ取り得る値の
組み合わせと、それに対応する(Y2i+2+Y2i+1−2×
2i)の値を示す図である。(Y2i+2+Y2i+1−2×Y
2i)の値は、部分積の係数に依存している。
【0069】いま、整数nおよび整数mを値3とする。
通常の並列乗算において、乗数が4ビットの場合、部分
積の加算が4回行われる。ここで、4ビットの乗数を”
SBBB”と表すと、そのときの式の様子は以下のよう
になる。なお、Sはサインビット、Bは他のビットをそ
れぞれ表しており、サインビットSは上位桁に無限に存
在する。
【0070】
【数4】
【0071】そこで、2次のブースの方法を用いると以
下の式のようになる。
【0072】
【数5】
【0073】この式において、部分積のサインビットS
を除く他のビットBが4ビットとされているが、これ
は、部分積が2倍されることにより、左に1ビットシフ
トされる場合を考慮したものであり、この場合、”SB
BB0”となる。2倍されない場合は、LSBから4ビッ
ト目は、サインビットSとなる。
【0074】このように、2次のブースの方法を用いる
ことにより、通常の並列乗算に較べ、部分積の加算回数
をほぼ半分に削減することができる。
【0075】ところで、(5)式の演算の際に、上位桁
に続くサインビットSについても演算をしなければなら
ない。そこで、サインビットの部分を以下のように置き
換える。
【0076】
【数6】
【0077】このようにすることにより、MSBを値1と
確定することができ、無限に続くのサインビットを切り
捨てることができる。これにより、ブースの方法の演算
ステップをさらに削減することができる。
【0078】次に図10乃至13を参照して、図2の要
素演算回路41における、上述のブースの方法を用いた
乗算処理の動作例を説明する。ここでは、被乗数X(4
ビット)と、乗数Y(4ビット)の演算を行うものと
し、被乗数Xの各ビットをX0(サインビット),X
1,X2,X3とし、乗数Yの各ビットをY0(サイン
ビット),Y1,Y2,Y3とする。また、これらの各
ビットは、データメモリ32の所定のアドレスから順に
格納されているものとする。さらに、演算結果をW0,
W1,W2,W3,W4,W5,W6,W7とし、デー
タメモリ32の所定のアドレスから順に格納されるもの
とする。なお、図10乃至13において、記号(<-)
は、指定されるアドレスに所定の値をロードすることを
示し、ホールド(hold)は、1つ前のステップにおいて
ロードされたデータが再びロードされることを示す。記
号(CDn = )は、それぞれの制御コードの状態を示し、
制御コードがイネーブル(enable)の場合、所定の制御
が可能であり、ディセーブル(disable)の場合、所定
の制御が禁止されることを示す。
【0079】まずステップS101において、レジスタ
(REG)77、レジスタ78、およびレジスタ79に、
それぞれ乗数ビットY2、乗数ビットY3、および値0
がロードされ、レジスタ80およびレジスタ81には、
それぞれ値0、値1がロードされる。この際、データメ
モリ32からデータがロードされる際に、図3のアドレ
ス修飾回路45Aは乗数ビットY3が格納されているア
ドレス、アドレス修飾回路45Bは乗数ビットY2のア
ドレスを指定するが、これらのアドレスは、部分積の演
算が1段終了する毎に2づつインクリメントされる。
【0080】制御コードCD2はイネーブル(これによ
りセレクタ89からのデータによるセレクタ94の制御
が可能とされる)、制御コードCD3はディセーブル
(これによりセレクタ87からのデータによるセレクタ
91の制御が禁止とされる)、制御コードCD4はイネ
ーブル(これによりレジスタ77によるセレクタ93の
制御が可能とされる)、および制御コードCD5は、デ
ィセーブル(これにより、セレクタ96は、セレクタ9
4からのデータを選択する)にそれぞれ設定される。セ
レクタ101は、この場合N.C.(Not Concerned)であ
り、その動作は考慮されない。
【0081】ステップS101においては、レジスタ7
7乃至レジスタ79にロードされるデータにより、
(6)式の第2段目における部分積の係数が設定され
る。部分積の係数が負の値に設定された場合、即ち、レ
ジスタ77にロードされたデータが値1であり、かつレ
ジスタ78およびレジスタ79にロードされたデータの
うち少なくとも一方が値0である場合、レジスタ77の
値1は、セレクタ88を介して、セレクタ93がインバ
ータ92からのデータを選択するように制御する。これ
により、レジスタ80にロードされた値0は、インバー
タ92により反転されてフルアダー97に供給され、レ
ジスタ81からの値1と加算される。このときキャリー
が発生し、このキャリーは、セレクタ76を介してレジ
スタ82に保持される。また、以降のステップにおいて
レジスタ80からのデータは、インバータ92により反
転されてフルアダー97に供給されることになる。
【0082】部分積の係数が正の値に設定された場合、
即ち、レジスタにロードされたデータが値0であり、か
つレジスタ78およびレジスタ79にロードされたデー
タのうち少なくとも一方が値1である場合、レジスタ7
7にロードされた値0は、セレクタ88を介して、セレ
クタ93がレジスタ80からのデータを選択するように
制御する。これにより、レジスタ80にロードされた値
0は、フルアダー97にそのまま供給され、レジスタ8
1からの値1と加算される。この際にキャリーは発生し
ないので、値0がセレクタ76を介してレジスタ82に
保持される。
【0083】部分積の係数が0に設定される場合、即
ち、レジスタ77乃至79にロードされたデータが全て
値0または値1である場合、論理和回路から論理1が出
力される。出力された論理1は、セレクタ89を介し
て、セレクタ94が値0を選択するように制御する。こ
れにより、レジスタ80からのデータは値0となり、フ
ルアダー97に供給される。
【0084】ステップS102において、レジスタ80
に被乗数ビットX3、レジスタ81に値0がロードさ
れ、レジスタ77乃至79はホールドとされる。また、
制御コードCD3がイネーブルに設定され、これにより
セレクタ87からのデータによるセレクタ91の制御が
可能とされる。
【0085】部分積の係数が2または−2に設定された
場合、即ち、レジスタ78およびレジスタ79にロード
されたデータが、ともに値0であり、レジスタ77にロ
ードされたデータが値1である場合、またはレジスタ7
8およびレジスタ79にロードされたデータがともに値
1であり、レジスタ77にロードされたデータが値0で
ある場合、排他的論理和回路83より論理1が出力され
る。出力された論理1は、セレクタ87を介して、セレ
クタ91がレジスタ90のデータを選択するように制御
する。これにより、フルアダー97に供給されるデータ
は、いまの場合ステップS101においてレジスタ90
にロードされた値0であり、被乗数ビットX3を含め、
以降のステップにおいてレジスタ80にロードされる被
乗数ビットは、レジスタ90により1クロック遅延され
てフルアダー97に供給されることになる。
【0086】セレクタ96からのデータ、レジスタ81
にロードされたデータ(いまの場合、値0)、および前
回の演算時に発生したキャリーがフルアダー97に供給
され、加算される。セレクタ101は、フルアダー97
のサムを選択し、レジスタ102に出力する。レジスタ
102に保持されたサムは、演算結果W7としてアドレ
ス修飾回路45Cにより指定されるアドレスに書き込ま
れる。また、新たに発生したキャリーは、セレクタ76
を介してレジスタ82に保持されるとともに、セレクタ
98に供給される。
【0087】ステップS103乃至S105では、ステ
ップS102と同様の処理が、被乗数ビットX2乃至X
0に対して行われる。アドレス修飾回路45Aは、各ス
テップ毎にロードされる被乗数ビットのアドレスを、1
づつインクリメントすることによりアドレスを指定す
る。そして、フルアダー97のサムは、演算結果W6乃
至W4としてアドレス修飾回路45Cにより指定される
アドレスに順次書き込まれる。
【0088】ステップS106において、レジスタ81
には値1がロードされる。この値1は、(6)式の第1
段目の値1に対応する。また、部分積の係数が2または
−2に設定されることにより、部分積が左に1ビットシ
フトされる場合のために、レジスタ80には、ステップ
105においてロードされた被乗数XのサインビットX
0が再びロードされる。ここで、制御コードCD5がイ
ネーブルに設定されることにより、被乗数Xのサインビ
ットX0はインバータ95により反転され、フルアダー
97に供給される。そして、フルアダー97において、
反転されたサインビットX0、値1、および前回の演算
で発生したキャリーの加算が行われる。サムは演算結果
W3としてアドレス修飾回路45Cにより指定されるア
ドレスに書き込まれる。新たに発生したキャリーは、セ
レクタ76を介してレジスタ82に保持されるととも
に、セレクタ98に供給される。
【0089】ステップS107において、レジスタ80
には値0がロードされ、レジスタ81には(6)式の第
2段目の部分積のMSBに対応する値1がロードされる。
また、制御コードCD2乃至CD5がディセーブルとさ
れる。フルアダー97では、レジスタ80からの値0、
レジスタ81からの値1、および前回の演算で発生した
キャリーの加算が行われ、演算結果W2がアドレス修飾
回路45Cにより指定されるアドレスに書き込まれる。
また、キャリーは、セレクタ76に供給されるととも
に、セレクタ98を介して、レジスタ99に保持され
る。
【0090】ステップS108では、レジスタ77に保
持されていた乗数ビットY2がレジスタ79にロードさ
れる。また、レジスタ77に、アドレス修飾回路45B
により指定されるアドレスから乗数ビットY0がロード
され、レジスタ78に、アドレス修飾回路45Aより指
定されるアドレスから乗数ビットY1がロードされる。
ステップS107の演算で発生し、レジスタ99に保持
されていたキャリーは、セレクタ101により選択さ
れ、レジスタ102を介して、アドレス修飾回路45C
により指定されるアドレスに演算結果W1として書き込
まれる。
【0091】そして、ステップS101の場合と同様
に、レジスタ77乃至79にロードされたデータに対応
して、係数が設定される。そして、フルアダー97にお
いて、セレクタ96からのデータ、レジスタ81からの
値1、および前回の演算時に発生したキャリーが加算さ
れ、発生したキャリーがレジスタ82にロードされる。
【0092】ここまでのステップで、(6)式の第1段
目および第2段目にまでに対応する演算が終了し、その
演算結果W1乃至W7がデータメモリ32の所定のアド
レスに順に格納されていることになる。
【0093】続いてステップS109乃至S112にお
いては、被乗数ビットX3乃至X0、演算結果W5乃至
W2、およびレジスタ82に保持されているキャリーと
の加算が順次行われ、演算結果W5乃至W2が更新さ
れ、以前の演算結果が格納されていたアドレスに上書き
される。
【0094】ステップS113において、ステップS1
06と同様に、レジスタ80にはステップ112におい
てロードされた被乗数XのサインビットX0が再びロー
ドされる。レジスタ81には、前段までの演算結果W1
のデータがロードされる。そして、制御コードCD5が
イネーブルされることにより被乗数XのサインビットX
0が反転されフルアダー97に入力される。フルアダー
97では、反転された被乗数XのサインビットX0、前
段の演算結果W1のデータ、および前回の演算において
発生したキャリーが加算され、そのサムは、更新された
演算結果W1として、更新前の演算結果W1が格納され
ていたアドレスに上書きされる。また新たに発生したキ
ャリーは、セレクタ76に供給され、レジスタ82に保
持される。
【0095】ステップS114において、レジスタ80
に(6)式の第3段目のLSBに対応する値1がロードさ
れる。また、制御信号CD2乃至CD4はディセーブル
とされる。フルアダー97は、セレクタ76からのデー
タ、レジスタ81からのデータ、およびレジスタ82か
らのデータを加算する。サムは、更新された演算結果W
0として、更新前の演算結果W0が格納されていたアド
レスに上書きされる。
【0096】このように、被乗数4ビットと乗数4ビッ
トの乗算は14ステップで行うことができる。
【0097】次に図14のフローチャートを参照して、
被乗数のビット長をnビット、乗数のビット長をm(>
4)ビットとし、図10乃至13の処理をサブルーチン
とした場合の乗算処理例を説明する。まず、補助レジス
タ55Aにリピート回数n(被乗数のビット長)、補助
レジスタ55Bにループ回数(m−1)/2、アドレス
修飾回路45Aのアドレスレジスタ61Aに乗数のLSB
から2ビット目のアドレス、アドレス修飾回路45Bの
アドレスレジスタ61Aに乗数のLSBのアドレスがそれ
ぞれロードされ、また、アドレス修飾回路45Aのアド
レスレジスタ61Bに被乗数のLSBアドレス、アドレス
修飾回路45Bのアドレスレジスタ61Bおよびアドレ
ス修飾回路45Cのアドレスレジスタ61Bに演算結果
のLSBのアドレスがそれぞれロードされた後、ステップ
S201に進む。
【0098】ステップS201において、CONT命令によ
り、ステップS101の処理が実行される。この際、ア
ドレス修飾回路45Aおよびアドレス修飾回路45B
は、データメモリ32から読み出されるデータのアドレ
スとして、それぞれのアドレスレジスタ61Aに格納さ
れているアドレスを指定する。次に、ステップS202
において、RPT命令により、ステップS102の処理が
n回リピートされる。このとき、アドレス修飾回路45
Aおよびアドレス修飾回路45Cは、それぞれのアドレ
スレジスタ61Bに格納されているアドレスを指定す
る。
【0099】ステップS102乃至S105は、同一の
処理を行っており、ただ、レジスタ80にロードされる
被乗数のビットのアドレスと、データメモリ32に書き
込まれる演算結果のアドレスが変化するのみである。よ
ってステップS102の処理が、補助レジスタ55Aに
ロードされている回数だけリピートされるとともに、ア
ドレス修飾回路45Aにおける乗数のアドレス、アドレ
ス修飾回路45Cにおける演算結果のアドレスが1づつ
インクリメントされればよいことになる。
【0100】続いてステップS203において、CONT命
令により、ステップS106の処理が実行され、ステッ
プS204において、ステップS107の処理が実行さ
れる。また、ステップS205では、アドレス修飾回路
45Aおよびアドレス修飾回路45Bは、それぞれのア
ドレスレジスタ61Aに格納しているアドレスを2つイ
ンクリメントした後、それぞれのアドレスカウンタ60
にロードする。そして、CONT命令によりステップS10
8の処理が実行される。その後、アドレス修飾回路45
Cは、アドレスレジスタ61Bに保持している演算結果
の先頭アドレスを2つインクリメントした後、アドレス
カウンタ60にロードする。また、アドレス修飾回路4
5Aは、アドレスレジスタ61Bのアドレスをアドレス
カウンタ60にロードし、アドレス修飾回路45Bは、
アドレスレジスタ61Bのアドレスを2つインクリメン
トした後、アドレスカウンタ60にロードする。
【0101】ステップS206において、RPT命令によ
り、ステップS202の場合と同様にステップS109
の処理が、補助レジスタ55Aにロードされている回数
だけリピートされる。
【0102】ステップS207において、CONT命令によ
り、ステップS113の処理が実行され、ステップS2
08において、ステップS114の処理が実行される。
そして、ステップS209では、ステップS205乃至
S208までの処理が補助レジスタ55Aにロードされ
ている回数((m−1)/2−1)実行されたか否かが
判定され、まだ実行されていないと判定された場合、ス
テップS205乃至S208までの処理が、FOR命令お
よびFEND命令により再び実行され、既に実行されたと判
定された場合、乗算処理が終了となる。
【0103】このように、任意のビット長の被乗数およ
び乗数の乗算をサブルーチンにおいて実行することがで
きる。
【0104】以上のように、専用の回路を用いて、オペ
ランドのビット長や、そのオペランドのアドレスなどの
引数を指定して演算を実行するようにしたので、その分
のプログラムのステップ数を削減することができる。
【0105】なお、本明細書中において、伝送媒体に
は、FD,CD−ROMなどの情報記録媒体の他、イン
ターネット、デジタル衛星などのネットワーク伝送媒体
も含まれる。
【0106】
【発明の効果】以上の如く、請求項1に記載のデータ演
算装置、請求項7に記載のデータ演算方法、および請求
項8に記載の伝送媒体によれば、演算の対象となるオペ
ランドのビット長の指定、オペランドが2の補数である
か否の指定を専用の回路により行うことにより、プログ
ラムのステップを削減できる。
【図面の簡単な説明】
【図1】本発明のデータ演算装置の構成例を示すブロッ
ク図である。
【図2】図1の要素演算回路の構成例を示すブロック図
である。
【図3】図1のプログラム制御回路42の構成例を示す
ブロック図である。
【図4】図3のプログラムメモリのシーケンス制御フィ
ールドSQCおよび拡張フィールドEXTに対応する機能FUNC
TIONを示した図である。
【図5】図3のアドレス修飾回路の構成例を示すブロッ
ク図である。
【図6】図5のアドレスカウンタのアドレスマップを示
す図である。
【図7】加算減算処理の動作例を説明するフローチャー
トである。
【図8】図7に続くフローチャートである。
【図9】(3)式を説明する図である。
【図10】乗算処理の動作例を説明する図である。
【図11】図10に続く図である。
【図12】図11に続く図である。
【図13】図12に続く図である。
【図14】乗算処理の動作例を説明するフローチャート
である。
【図15】従来のデータ演算装置の構成例を示すブロッ
ク図である。
【図16】図15の要素演算回路36の構成例を示すブ
ロック図である。
【符号の説明】
31 シリアルアクセスメモリ, 32 データメモ
リ, 33 演算回路,34 出力シリアルアクセスメ
モリ, 35 プロセッサエレメント, 41要素演算
回路, 42 プログラム制御回路, 43 プログラ
ムメモリ,44 コード修飾回路, 45A,45B,
45C アドレス修飾回路, 50シーケンサ, 51
アドレスカウンタ, 52 リピートカウンタ, 5
3ビットカウンタ, 54 スタックレジスタ, 55
A,55B レジスタ,56 ループカウンタ

Claims (8)

    【特許請求の範囲】
  1. 【請求項1】 プログラムメモリのプログラムに基づい
    て、複数のプロセッサエレメントで共通した演算を並列
    に行うデータ演算装置において、 演算の対象となる第1のオペランドと第2のオペランド
    の間で所定の演算を行う演算手段と、 前記第1のオペランドのビット長および前記第2のオペ
    ランドのビット長を検出する第1の検出手段と、 前記第1の検出手段の検出結果に応じて、前記第1のオ
    ペランドまたは前記第2のオペランドのうち、より長い
    ビット長を有するオペランドのビット長を計数する第1
    の計数手段と、 前記第1の検出手段の検出結果に応じて、前記第1のオ
    ペランドまたは前記第2のオペランドのうち、より短い
    ビット長を有するオペランドのビット長を計数する第2
    の計数手段と、 前記第1の計数手段による計数値に1を加算した回数だ
    け前記演算手段に前記所定の演算をリピートさせるリピ
    ート手段と、 前記第1のオペランドと前記第2のオペランドのデータ
    の表現形式を検出する第2の検出手段と、 前記第2の計数手段による計数値と、前記第2の検出手
    段による検出値とに応じて、より短いビットを有する前
    記オペランドの上位ビットを補足する第1の補足手段
    と、 前記第1の計数手段による計数値と、前記第1の検出手
    段による検出値とに応じて、より長いビットを有する前
    記オペランドの上位ビットを補足する第2の補足手段と
    を備えることを特徴とするデータ演算装置。
  2. 【請求項2】 前記演算手段による演算が加算であるか
    または減算であるかを判定する判定手段と、 前記判定手段の判定結果に応じて、前記演算手段に供給
    する値を選択する選択手段と、 前記判定手段に応じて、演算の対象となる前記オペラン
    ドのビットを反転して前記演算手段に供給する供給手段
    とをさらに備えることを特徴とする請求項1に記載のデ
    ータ演算装置。
  3. 【請求項3】 次に実行されるプログラムメモリのアド
    レスを保持する第1の保持手段と、 前記プログラムメモリより供給されるループ回数を計数
    する第3の計数手段と、 前記係数手段の値を保持する第2の保持手段と、 前記係数手段にロードされる値を保持する第3の保持手
    段とをさらに備えることを特徴とする請求項1に記載の
    データ演算装置。
  4. 【請求項4】 前記第1のオペランドが格納されている
    アドレスを指定する第1の指定手段と、 前記第2のオペランドが格納されているアドレスを指定
    する第2の指定手段と、 前記演算手段の演算結果を格納するためのアドレスを指
    定する第3の指定手段とをさらに備え、 前記第1の指定手段および前記第2の指定手段は、所定
    のアドレスを格納する格納手段を少なくとも2つ備え、 前記第3の指定手段は、前記格納手段を少なくとも1つ
    備えることを特徴とする請求項1に記載のデータ演算装
    置。
  5. 【請求項5】 前記格納手段は、格納しているアドレス
    値を2ずつインクリメントすることが可能であることを
    特徴とする請求項1に記載のデータ演算装置。
  6. 【請求項6】 第1のレジスタ、第2のレジスタ、およ
    び第3のレジスタからのデータが全て値0または値1と
    なる場合、値1を出力し、それ以外の場合、値0を出力
    する第1の出力手段と、 前記第1のレジスタおよび前記第2のレジスタからのデ
    ータがともに値0または値1となる場合、値1を出力
    し、それ以外の場合、値0を出力する第2の出力手段
    と、 前記第2の出力手段から出力されるデータが値1の場
    合、演算の対象となるデータを1クロック遅延させる遅
    延手段と、 前記第3のレジスタからのデータが値1の場合、演算の
    対象となるデータを反転する反転手段と、 前記第1の出力手段から出力されるデータが値1の場
    合、演算の対象となるデータを値0に変換する変換手段
    とをさらに備えることを特徴とする請求項1に記載のデ
    ータ演算装置。
  7. 【請求項7】 プログラムメモリのプログラムに基づい
    て、複数のプロセッサエレメントで共通した演算を並列
    に行うデータ演算装置におけるデータ演算方法におい
    て、 演算の対象となる第1のオペランドと第2のオペランド
    の間で所定の演算を行う演算ステップと、 前記第1のオペランドのビット長および前記第2のオペ
    ランドのビット長を検出する第1の検出ステップと、 前記第1の検出ステップの検出結果に応じて、前記第1
    のオペランドまたは前記第2のオペランドのうち、より
    長いビット長を有するオペランドのビット長を計数する
    第1の計数ステップと、 前記第1の検出ステップの検出結果に応じて、前記第1
    のオペランドまたは前記第2のオペランドのうち、より
    短いビット長を有するオペランドのビット長を計数する
    第2の計数ステップと、 前記第1の計数ステップによる計数値に1を加算した回
    数だけ前記演算ステップに前記所定の演算をリピートさ
    せるリピートステップと、 前記第1のオペランドと前記第2のオペランドのデータ
    の表現形式を検出する第2の検出ステップと、 前記第2の計数ステップによる計数値と、前記第2の検
    出ステップによる検出値とに応じて、より短いビットを
    有する前記オペランドの上位ビットを補足する第1の補
    足ステップと、 前記第1の計数ステップによる計数値と、前記第1の検
    出ステップによる検出値とに応じて、より長いビットを
    有する前記オペランドの上位ビットを補足する第2の補
    足ステップとを備えることを特徴とするデータ演算方
    法。
  8. 【請求項8】 プログラムメモリのプログラムに基づい
    て、複数のプロセッサエレメントで共通した演算を並列
    に行うデータ演算装置におけるデータ演算方法が記録さ
    れている伝送媒体において、 演算の対象となる第1のオペランドと第2のオペランド
    の間で所定の演算を行う演算ステップと、 前記第1のオペランドのビット長および前記第2のオペ
    ランドのビット長を検出する第1の検出ステップと、 前記第1の検出ステップの検出結果に応じて、前記第1
    のオペランドまたは前記第2のオペランドのうち、より
    長いビット長を有するオペランドのビット長を計数する
    第1の計数ステップと、 前記第1の検出ステップの検出結果に応じて、前記第1
    のオペランドまたは前記第2のオペランドのうち、より
    短いビット長を有するオペランドのビット長を計数する
    第2の計数ステップと、 前記第1の計数ステップによる計数値に1を加算した回
    数だけ前記演算ステップに前記所定の演算をリピートさ
    せるリピートステップと、 前記第1のオペランドと前記第2のオペランドのデータ
    の表現形式を検出する第2の検出ステップと、 前記第2の計数ステップによる計数値と、前記第2の検
    出ステップによる検出値とに応じて、より短いビットを
    有する前記オペランドの上位ビットを補足する第1の補
    足ステップと、 前記第1の計数ステップによる計数値と、前記第1の検
    出ステップによる検出値とに応じて、より長いビットを
    有する前記オペランドの上位ビットを補足する第2の補
    足ステップとを有する制御プログラムを伝送することを
    特徴とする伝送媒体。
JP9210256A 1997-08-05 1997-08-05 データ演算装置および方法、並びに伝送媒体 Withdrawn JPH1153171A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP9210256A JPH1153171A (ja) 1997-08-05 1997-08-05 データ演算装置および方法、並びに伝送媒体

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP9210256A JPH1153171A (ja) 1997-08-05 1997-08-05 データ演算装置および方法、並びに伝送媒体

Publications (1)

Publication Number Publication Date
JPH1153171A true JPH1153171A (ja) 1999-02-26

Family

ID=16586381

Family Applications (1)

Application Number Title Priority Date Filing Date
JP9210256A Withdrawn JPH1153171A (ja) 1997-08-05 1997-08-05 データ演算装置および方法、並びに伝送媒体

Country Status (1)

Country Link
JP (1) JPH1153171A (ja)

Similar Documents

Publication Publication Date Title
JP4980834B2 (ja) 算術プロセッサ
US4754421A (en) Multiple precision multiplication device
EP0293851B1 (en) Digital signal processor
JP2003296096A (ja) シリアル演算パイプライン、演算装置、算術論理演算回路およびシリアル演算パイプラインによる演算方法
JP3312317B2 (ja) 補間プロセツサ
JPS62284510A (ja) 移動係数を用いた縦続接続可能なデジタルフイルタプロセツサ
JP3285430B2 (ja) データ駆動型情報処理装置
JPH0444970B2 (ja)
JP3003467B2 (ja) 演算装置
JPH1153171A (ja) データ演算装置および方法、並びに伝送媒体
JP2861994B1 (ja) 回路合成方法、回路合成装置および記録媒体
JPH08329038A (ja) データ処理装置
JP3144859B2 (ja) 算術論理演算装置
EP2296093A2 (en) DSP execution unit for efficient alternate modes of operation
US7007059B1 (en) Fast pipelined adder/subtractor using increment/decrement function with reduced register utilization
JP2970512B2 (ja) ベクトルプロセッサ
US6275837B1 (en) Method for the implementation of an elementary modular operation according to the Montgomery method
JPH1063500A (ja) 信号処理装置
US6470369B1 (en) Euclid mutual division arithmetic circuit and processing circuit
JP3526773B2 (ja) マルチプロセッサ装置およびその制御方法
JP2654451B2 (ja) データ出力方法
JP2001092658A (ja) データ処理回路及びデータ処理装置
JP2696903B2 (ja) 数値計算装置
JP2503983B2 (ja) 情報処理装置
JPH08335167A (ja) 2つの数のベース4への除算を、特に行うことができる電子コンポーネント

Legal Events

Date Code Title Description
A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20041005