JPH01187638A - プロセッシングユニット - Google Patents

プロセッシングユニット

Info

Publication number
JPH01187638A
JPH01187638A JP63010775A JP1077588A JPH01187638A JP H01187638 A JPH01187638 A JP H01187638A JP 63010775 A JP63010775 A JP 63010775A JP 1077588 A JP1077588 A JP 1077588A JP H01187638 A JPH01187638 A JP H01187638A
Authority
JP
Japan
Prior art keywords
data
token
processing
adder
processing unit
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.)
Granted
Application number
JP63010775A
Other languages
English (en)
Other versions
JPH0648499B2 (ja
Inventor
Kaoru Uchida
薫 内田
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.)
NEC Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Priority to JP63010775A priority Critical patent/JPH0648499B2/ja
Publication of JPH01187638A publication Critical patent/JPH01187638A/ja
Publication of JPH0648499B2 publication Critical patent/JPH0648499B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Multi Processors (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は、メモリ部、演算部をパイプライン状のバスで
結合し、データ駆動方式により演算順序をコントロール
するデータフロープロセッサのプロセッシングユニット
に関するものである。
〔従来の技術〕
従来、データフロープロセッサとしては特開昭56−1
69152号公報に記載されている技術があり、それを
製品化したものとして日本電気株式会社製のμP072
81がある。μPD7281は第7図に示されるような
構成を持つ。このμPD7281によれば、外部バスか
ら装置に入力されるデータの単位となるトークンは、デ
ータ値、入力後にリンクテーブル92を参照するための
識別子、そのトークンが処理されるべき装置を示すモジ
ュール番号を持ち、トークン入力部91は、外部バスを
通るトークンのモジュール番号がその装置の番号と一致
する場合にそのトークンを内部に入力し、そうでない場
合トークン出力部97を通じてそのまま外部バスから出
力する。入力されたトークンは、その持つ識別子により
リンクテーブル92を参照し、そこでファンクションテ
ーブル93を参照するためのファンクションテーブルア
ドレスと次回にリンクテーブル92を参照するための識
別子を得た後にファンクションテーブル93へ送られる
トークンはファンクションテーブル93においてそのフ
ァンクションテーブルアドレスによる参照を行い、そこ
でデータメモリ94の管理情報の参照・更新を行うと同
時に、プロセンシングユニット96での処理内容を示す
処理コードとデータメモリ94のアクセスアドレスを得
、データメモリ94に送られ、そこモ必要に応じて2項
演算の相手方のオペランドの待合わせ、あるいは定数演
算のための定数の読出しを行う。キューメモリ95はプ
ロセッシングユニット96が前のトークンを処理中でト
ークンを入力できない時にトークンを一時保持するため
のメモリであり、プロセンシングユニット96がビジー
でない場合には、トークンはキューメモリ95からプロ
セッシングユニット96に送られ、その処理コードに応
じて、整数データの加減乗算、論理演算、シフト、比較
、ビット反転、プライオリティエンコーディング、分流
、数値発す、コピー、内部レジスタを利用した累積加算
演算などのうち1つの処理を受ける。なおトークンの持
つ処理コードが出力を示すものである場合には、トーク
ンはキューメモリ95からトークン出力部97へ送られ
、入カドークンと同一の形に変形された後に、外部ハス
へ出力される。プロセッシングユニット96で処理を受
けたトークンは、リンクテーブル92に送られ、再びそ
の識別子により参照を行う。以下同様にして出力命令が
実行されるまで内部のリングバスを回り、そのデータ値
に対して必要な処理を受ける。
〔発明が解決しようとする課題〕
数値シュミレーションやパターン認識などの応用分野に
おいて用いられる数値計算では、データの精度を確保す
るために浮動小数点データを扱う必要があり、特に浮動
小数点データを要素とする行列とベクトルの乗算や行列
同士の乗算は、これらのアプリケーションにおいて頻繁
に行われる。
前述のデータフロープロセッサで、この様な乗算に現れ
る、外部メモリ上にある複数のデータに対しそれぞれあ
る係数を掛けそれらの積の和をとる、いわゆるコンボリ
ューション処理を行う場合を考える。従来のデータフロ
ープロセッサにおいては演算器が一つしかなく、トーク
ンが内部リングを1周してプロセッシングユニットに入
った時にそのトークンの持つ2つのデータの間の1つの
2項演算しかできないため、コンボリューションにおい
ではN個のデータ組の乗算を行うためにN回と、その結
果の加算を行うために(N−1)回トークンが内部リン
グを周回しプロセッシングユニットに流れ込む必要があ
り、さらにそのうちの加算は時間的に直列に行わなけれ
゛ばならないため処理時間が長くなるという問題点があ
る。
μP07281においては上の問題点のうち連続データ
の加算を高速化するためにプロセッシングユニットにレ
ジスタを設は累積加算を行うようになっているが、これ
でも−度には乗算と加算の一方しかできないため乗算に
ついては高速化できない。
従ってコンボリューションの高速化のためには、係数と
入力データとの乗算を行う乗算器と、レジスタを用いて
その積の累積加算を行う演算器とが縦列に配置されなけ
ればならない。
一方、前述のデータフロープロセッサではサポートされ
ている算術演算処理が整数データに対する加減乗算に限
られているため、これら以外の浮動小数点表現のデータ
の演算を必要とする処理は実行できず、これを行おうと
する場合、ソフトウエアで実現しなければならず、処理
時間の増大を招いていた。
これを解決するために、前記データフロープロセッサの
プロセッシングユニットに通常のプロセッサで用いられ
ている浮動小数点演算用ハードウェアを組み込んだプロ
セッサを提供することは可能である。しかしこの場合、
浮動小数点演算のためには他の固定小数点演算における
より長い処理時間が必要であるため、プロセッサ内部の
トークン転送をパイプラインクロックに同期して行うデ
ータフロープロセッサでは全体の動作パイプラインサイ
クルを長くせざるを得す、全体の処理速度が低下すると
いう問題が生ずる。
これに対し一般にはこのように浮動小数点演算部が複雑
な処理を必要とする場合、その内部を複数ステージに分
割し、各段をパイプライン的に動作させることにより全
体のクロック周期を短くするという手法が取られる。し
かしこの場合でも、例えばベクトル内の要素の累積加算
をとる際はその前の和をとる演算が終了しなければ次の
加算を開始できないというようにそれらの加算はパイプ
ライン化できないため、その分だけ処理時間がかかる。
例えばそれぞれ浮動小数点データを要素とす2mXnの
行列A(要素a[i、jコ)と長さnのベクトルマ(要
素x[jlの乗算ブーAマを、浮動小数点乗算器とSス
テージからなるパイプライン化された浮動小数点加算器
を持つデータフロープロセッサで行う場合を考える。
y[i]=Σa[i、jl・x[j] J!+ (i = l A−m) を求める場合、連続して入力される2つのデータ列の乗
算を行った後、その結果の累積加算を行うためにはn個
の積の和を求めなければならない。
そこでそのための(n−1)回の加算のためには、1回
の加算がSステップかかり、かつ全ての加算は時間的に
直列に行わざるを得ないため、s×(n−1)ステップ
かかり、従って全部で5x(n−1)×m  ステップ かかることになる。
本発明の目的は上記のような問題点を解決し、浮動小数
点表現のデータによる積和演算をなるべくパイプライン
性能を低下させずに実行でき、上述のような処理を高速
化できるデータフロープロセッサのプロセッシングユニ
ットを提供することにある。
〔課題を解決するための手段〕
本発明のプロセッシングユニットは、 前記内部メモリ部から前記バスを介して入力されるコン
トロール情報とオペランドデータを持つトークン上の2
つのオペランドデータの演算を行い、結果データを持つ
トークンを出力する算術計算部と、 前記算術計算部の出力トークン上の結果データ、及び、
加算の途中結果を一時保持する複数のレジスタからなる
レジスタファイルと、 前記算術計算部の出力トークン上の結果データと前記レ
ジスタファイルから読出したデータとの演算を行い、結
果を前記レジスタファイルに送る加算器と、 前記算術計算部の出力トークン上のコントロール情報を
前記加算器を通過するデータと同期させるための遅延回
路と、 前記加算器の結果出力データと前記遅延回路から得られ
るコントロール情報とから演算結果データを持つトーク
ンを生成する結果トークン生成部と、 からなることを特徴としている。
〔作用〕
本発明のプロセッシングユニットを持つデータフロープ
ロセッサにおいて、前記の行列Aとベクトルマの乗算を
行う場合、予めベクトルマの要素x[1]、x[2]、
  ・・、x[nコを外部から与えることにより内部メ
モリに保持しておく。処理に際し、行列Aの要素データ
a[1,1]、a[2,1]。
・ +、   a[m、   11.   a[1,2
L  ・ +、   a[m。
2]、・・、a[1,n]、  ・・、a[m、n]を
この順で持つnxm個のトークンをデータフロープロセ
ッサに入力する。入力されたトークンは内部メモリを経
由する際に必要な2項演算の相手方デ−タとなるベクト
ルマの要素と処理コードとを得る。この相手方データは
X[1]、  ・・、x[1](m個)、x[2]、 
 ・・x[2]、  ・+、x[n]。
・・、x[n]のようにm X n個アクセスされる。
2つのオペランドを持つトークンは、プロセッシングユ
ニットの前段を構成する算術計算部に順に連続して入力
される。そこでは入力された2つのオペランドについて
乗算を行い、後段の累積加算部へその結果の積p[i、
j]=a[i、jCx[j]を持つトークンをそのデー
タがp[1,1]。
p[2,1]、   ・ ・ 、   p[m、   
1  コ、   p[1,2]、   ・・、p[1,
n]、  ・・、p[m、n]の順になるように送出す
る。累積加算部では内部のレジスタファイル内のレジス
タの長さmのFIFOとして用いることにより、第1行
の部分和q[1,に−1]=q[i、1]+・・+p[
i、に−1]をp[x、にコが入力されるまでサイクリ
ックに保持し、保持した部分和が次にmクロック遅れて
入って来る次の加算されるべきデータに同期するように
これらを加算器へ送る。加算器では連続して入って来る
オペランドの組が、第(i−1)列に関するもの、第1
列に関するもの、第(i+1)列に関するものというよ
うに互いに独立なもののためパイプラインの各段をフル
に用いて加算することができ、加算の後、結果の部分和
が再びレジスタファイルに保持される。
このようにしてrn x n組のデータが入力される間
に、m個の積和をパイプライン的に動作する加算器によ
って求めることができる。
〔実施例〕
次に本発明の実施例について図面を参照して説明する。
第2図は本発明の一実施例におけるデータフロープロセ
ッサ1全体の構成を示す内部ブロック図であり、10は
トークン入力部、11はリンクテーブル、12はオペラ
ンドフェッチテーブル、13はデータメモリ、14はフ
ァンクションテーブル、15はバッファキュー、16は
プロセッシングユニット、17はトークン出力部であり
、リンクテーブル11、オペランドフェッチテーブル1
2、データメモリ13、ファンクションテーブル14、
バッファキュ−15、プロセッシングユニット6は、図
に示すようにこの順にパイプライン方式のバスでリング
状に接続されており、トークンはこの内部リングバス上
を転送される。またプロセッシングユニット16は、算
術計算部20と、累積加算部21とが縦列に配置された
ものである。
第3図は第2図のデータフロープロセッサを用いたデー
タ処理装置の一例の全体構成図である。
このデータ処理装置においては複数のデータフロープロ
セッサト・・2と、1つのメモリインタフェース回路3
が外部バス5で結ばれており、外部バス5はメモリイン
タフェース回路3を介してメモリ4と接続されている。
外部バス5上でトークンはハンドシェーク方式により非
同期に転送される。
第4図は第2図のデータフロープロセッサ、および第3
図のデータ処理装置で用いられる、データの単位である
トークンの形式を示す。第4図(a)に示す外部バス5
上でのトークン60はモジュール番号61、コントロー
ルフラグ62、リンクテーブルアドレス63とデータ部
64からなる。コントロールフラグ62は、プログラム
実(テの前にリンクテーブル11などデータフロープロ
セッサ内部のテーブルにプログラムをロードする際に用
いるトークンを処理実行時の実行トークンと区別するた
めに用いる。
トークン入力部10は前段のデータフロープロセッサま
たはメモリインタフェース回路から入力されるトークン
のうちそのモジュール番号61が、その装置に与えられ
た番号に等しいもののみを内部へ取り込みリンクテーブ
ル11へパイプラインサイクルに同期して送り、その他
のトークンは通過トークンとしてそのままトークン出力
部17へ送る。
ただし、それに対して送出すべきリンクテーブル11あ
るいはトークン出力部17がビジー状態である場合には
トークンを送出せず、更に前段のデータフロープロセッ
サまたはメモリインタフェース回路からの入力をハンド
シェークのアルルジ信号を返さないことにより停止する
リンクテーブル11はプロセッシングユニット16また
はトークン入力部10からトークンを入力するが、両方
から同時に入力要求があった場合にはトークン入力部l
Oからの入力を優先する。リンクテーブル11はプロセ
ッシングユニット16またはトークン入力部10から入
力されたトークン60のリンクテーブルアドレス63に
よって参照され、トークンはオペランドフェッチテーブ
ル12をアクセスするアドレス、ファンクションテーブ
ル14をアクセスするアドレス及び次回のリンクテーブ
ル11参照のためのリンクテーブルアドレスを得てオペ
ランドフェッチテーブル12に送られる。
オペランドフェッチテーブル12は入カドークン60の
持つリンクテーブル11から読出したオペランドフェッ
チテーブルアクセスアドレスによって参照され、そのア
ドレスにある、データメモリ13の読出し、書込み、デ
ータの2項キュー制御の命令コードの参照と状態管理を
行う情報の参照、更新を行う。これによりトークンはデ
ータメモリ13のアクセスアドレスとデータメモリ13
における動作を指定するデータメモリ処理コードを受は
取る。
データメモ1月3は入カドークン60の持つデータメモ
リアクセスアドレスによってアクセスされ、必要に応じ
て2項演算のデータ同士の待ち合わせのキューとして、
あるいは2項演算のための一方のオペランドデータを一
時格納するためのメモリとして用いられる。例えば予め
外部メモリからデータフロープロセッサに入力したデー
タをデータメモ1月3の順に連続した番地に書き込むこ
とによって保持し、その後演算処理を行う際に2項演算
のための第1オペランド、を持つデータメモリ読出しト
ークンによってデータメモリ13からその書込んだデー
タを読出し、読出しデータを第2オペランドとしてトー
クンに付加することによりプロセッシングユニット16
での2項演算に用いることができる。更にデータメモリ
13の出口で第1オペランドと第2オペランドをデータ
メモリ処理コードに従って交換することができる。
ファンクションテーブル14では入力されるトークンは
、そのファンクションテーブルアクセスアドレスにより
その内部のテーブルをアクセスする。
これによりプロセッシングユニット6での処理内容を示
す処理コードがトークンに付加される。同時にファンク
ションテーブル14に保存された内部状態により、流れ
るトークンのリンクテーブルアドレス部が変更されるこ
とにより必要に応じて流れの制御が行われる。また上述
の流れ制御動作の代わりにその内部状態保持部にあるデ
ータを第2オペランドとしてトークンに付加し、ファン
クションテーブル14の入力時に持っていた第1オペラ
ンドのデータと共にプロセッシングユニット16へ入力
することができる。なおファンクションテーブル14で
フェッチされる処理コードは、算術計算部20での処理
を規定する算術計算部処理コード、累積加算部21での
処理を規定する累積加算部処理コード、及びプロセッシ
ングユニット16の処理結果を持つトークンをリンクテ
ーブル11へ送るかトークン出力部へ送るかを指定する
出力選択コードからなる。
バッファキュー15は、プロセッシングユニット16に
トークンを人力する前にトークンを一時保持するための
FTPOメモリであり、プロセッシングユニット16が
トークン入力を停止している際にプロセッシングユニッ
ト16に対する出力を停止する。バッファキュー15か
らプロセッシングユニット16へ送られる際のトークン
の形式を、第4図(b)のトークン65に示す。トーク
ン65はコントロールフラグ69、リンクテーブルアド
レス70と、処理されるべき第1オペランド71、第2
オペランド72を持ち、さらにファンクションテーブル
14でフェッチした算術計算部処理コード66、累積加
算部処理コード67、出力選択コード68を持っている
プロセッシングユニット16は第1図に示されるように
、算術計算部20、累積加算部21が直列に接続される
ことにより構成され、入力されたトークンが独立に動作
するそれらを順に通過する際に、これらのトークンに対
しパイプライン的に作用する。
算術計算部20はそこへ入力されるトークンの第1オペ
ランドと第2オペランドとの2項演算、あるいは第1オ
ペランドの単項演算を、ファンクションテーブル14で
フェッチした処理コードのうちの算術計算部処理コード
に従い内部状態を持たずに実行し、結果データを持つト
ークンを信号線101を介して累積加算部21へ出力す
る。演算としては算術演算、論理演算、シフト、比較、
ビット操作などがある。特にトークンの持つデータが浮
動小数点データであり、トークンが浮動小数点乗算を指
示する処理コードを持つ場合には、入力された2つの浮
動小数点データ間の乗算を行い、結果の浮動小数点デー
タを持つトークンを結果トークンとする。なお算術計算
部20は全体のパイプラインクロックを上げるため、そ
のハードウェアをパイプライン的に動作する複数ステー
ジに分割して構成することも可能である。
累積加算部21では算術計算部20から信号線101を
介して入力されるトークンの持つ累積加算部処理コード
に従って、そのデータを加算器22に送ってレジスタフ
ァイル23から読出したデータと加算を行わせ、あるい
はレジスタファイル23の中の適当なレジスタにそのイ
直をセットすることができる。
算術計算部20からの入カドークンは入カドークンレジ
スタ30に保持され、その内容のうち処理されるべきデ
ータ値が信号線102に、その他の制御用のトークン情
報が信号′ftyA107に出力される。信号線107
上のトークン情報としては、第4図(b)に示すプロセ
ッシングユニソト16に対する入カドークン65が持っ
ていたリンクテーブルアドレス70、コントロールフラ
グ69、累積加算部処理コード67、出力選択コード6
8がある。特にそのうち累積加算部処理コード67には
レジスタファイル23の書込み制御コード、読出し制御
コード、結果トークン生成制御コードが含まれ、また出
力選択コード68には、その結果トークンをトークン出
力部17に対して出力するかリンクテーブル11に対し
て出力するかのフラグと、トークン出力部17から外部
パスに出力する際に持つべきモジュール番号が含まれる
レジスタファイル23はr個のレジスタからなり、レジ
スタファイル書込み制御部24からの信号109により
信号線105上のデータが指定されたレジスタに書込ま
れる。レジスタファイル書込み制御部24は信号107
または信号10Bのレジスタファイル書込み制御コード
で制御され、信号線102または104から入力される
データの何れかをレジスタファイル23の内の指定され
たレジスタに信号線105を介して書き込む。信号10
7と信号108では信号107を優先する。レジスタフ
ァイル読出し制御部25は信号107のレジスタファイ
ル読出し制御コードで制御され、レジスタファイル23
の各レジスタのうち指定されたレジスタのデータを信号
線103への出力とする。
加算器22は信号線102.103上の2つの浮動小数
点データに対してパイプライン的に加算動作を行い、同
じフォーマットを持つ結果データを信号線104に出力
する。第5図に5段のステージで構成される加算器22
の一例を示す。この例では扱うデータはIEEE754
標準規格の浮動小数点フォーマットに準拠しており、各
データの指数部と仮数部を分離した後、各々を内部の5
段のラッチで順に保持しながら演算を進めていく。第5
図中、Lで示されるのはパイプラインの各ステージを構
成するためのランチである。以下簡単にその動作を説明
する。2つの入力データは比較選択部150で比較され
、信号151に2つのデータのうち大きい方の指数部が
、信号152にその仮数部が、信号153に小さい方の
データの仮数部が、信号154に2つの指数部の差の絶
対値が選択出力される。小さい方のデータの仮数部は指
数部の差だけ右シフク155で右フシトされ、加算器1
56でもう一方の仮数部と加算される。その結果の上位
から2進法表現で0の続く数が零敗カウンタ157で計
数され、その数だけ仮数の和が左シフタ158で左シフ
トされ正規化された演算結果の仮数部が得られる。同時
に同じく零敗カウンタ157の出力が加算器159で元
の大きい方の指数部に加えられることによって演算結果
の指数部が得られる。なおここでは加0算器22のパイ
プライン段数は5段の例を示したが、以下では一般的に
8段と仮定して説明する。
遅延回路26は3個の遅延のためのランチを直列に接続
したものであり、信号線107上のトークン情報を、S
段遅らせることにより加算器22を通過する演算データ
に同期して結果トークン生成部25及びレジスタファイ
ル書込み制御部24に送るために用いられる。
結果トークン生成部29は信号107の結果トークン生
成制御コードで制御され、加算器22から出力される浮
動小数点形式の結果データ104に信号線107で送ら
れるトークン情報のうちリンクテーブルアドレス、コン
トロールフラグ、出力選択コートを付加してプロセッシ
ングユニット16からの出力トークンの形式を整え、指
定されたタイミング゛  で結果トークンを信号線11
0へ出力する。
プロセッシングユニット16からの出力トークンは通常
リンクテーブル11に送出されるが、そのトークンがデ
ータフロープロセッサ外へ出力されるべきであることを
示す出力選択コードを持つときには、出力選択コード内
にある外部バスのトークンに必要なモジュール番号をそ
のトークンに付加し、トークン出力部17へ送出する。
ただしトークン出力部17がビジー状態である場合には
そこへの出力を停止し、プロセッシングユニット16へ
のバッファキュー15からの入力も禁止する。
トークン出力部17はプロセッシングユニット16また
はトークン入力部10から入力されたトークンを外部バ
ス5を介して後段のデータフロープロセッサまたはメモ
リインタフェース回路3に対して出力する。ただしプロ
セッシングユニット6及び。
トークン入力部10の両方から同時にそのリクエストが
あった場合にはトークン入力部10からの入力を優先し
、プロセッシングユニット6に対し、ビジー状態である
ことを知らせる信号を送ることによってプロセッシング
ユニット16からのトークンの受付を停止する。また後
段のデータフロープロセッサまたはメモリインタフェー
ス回路がビジー状態でハンドシェークのアクルジ信号を
返さない場合にも、出力を停止し、またプロセッシング
ユニット16からもトークンの受付を停止する。
以上の実施例で説明したプロセッシングユニットにおい
て、加算器22を構成するステージ数S、レジスタファ
イル23のレジスタ数r、また本発明で扱うべき行列A
とベクトルマの乗算問題においては、その行列Aのサイ
ズm x nについて、r ≧m≧ S が成立しなければならない。
次に本実施例を用いて例えば先で述べたような行列A(
サイズmXn)Xベクトル要素サイズn)の演算処理を
行う場合の動作について説明する。
実施例において加算器22を構成するステージ数S−5
、レジスタファイル23のレジスタ数r−32とし、ま
たmについては前述の条件に従ってm−32とする。な
おここではm=rであるが、mくrの場合には、レジス
タファイル23のr個のレジスタのうちm個だけをFI
FOとして用いるようにアクセスレジスタ選択を行うの
で、全く同様に処理を進められる。
まず演算に先立ってベクトルマの要素x[1]。
x[2]、  ・・、x[n]をデータメモリに設定す
る。
次に処理に用いる行列Aの要素を持つトークンを外部メ
モリ4からメモリインタフェース回路3を介してデータ
フロープロセッサに次々に入力する。
この際は、 a[1,1コ、   a[2,1]、   ・ ・ 、
   a[m、1]。
a[L2]、a[2,2]、  ・・、a[m、2]。
a[1,n]、a[2,n]、  ・・、a[m、n]
の順でmxn個の行列の要素データが入力されるように
外部メモリ4をアクセスする。
入力されたトークンは1・−クン入力部10からリンク
テーブル11に入力され、オペランドフェッチテーブル
12において、データメモリ13のベクトル要素を入力
順に、 x[1]をm回、x[2]をm回、・・・、x[n]を
m回 というようにアクセスされるように5till J卸さ
れる。
これによりプロセッシングユニット16に入力される際
の2つのオペランドの組は (a[1,1]、x[1])、(a[2,1]、x[1
])。
・・、  (a[m、1]、x[1])。
(a[1,2コ、x[2])  、  (a[2,2]
、x[2])  。
・・、  (a[m、2]、x[2])。
(a[1,n]、x[n])、(a[2,n]、x[n
])。
・ ・、  (a[m、n]、x[n])のようになる
次いでファンクションテーブル14において各トークン
はプロセッシングユニット16における処理内容を指定
する処理コードをフェッチする。処理コードとしては先
に述べたように次のようなものがあり、各々を以下の説
明に用いる二一モニソクの内容とともに示すと次のよう
になる。
1、算術計算部20における処理を規定するコードfm
ul :入力される2つのオペランドの浮動小数点乗算 2、累積加算部21のレジスタファイル書込みの制御コ
ード 一〇:信号線102上のデータをサイクリックに書込む &41:信号線104上のデータをサイクリックに書込
む 3、累積加算部21のレジスタファイル続出しの制御コ
ード rdcyc  :レジスタをサイクリックに読出ず−:
読出さない 4、累積加算部21のトークン生成制御コードfadd
 : トークン生成する ー :出力トークンを生成しない 5、出力選択コード out  : トークンをトークン出力部17へ送る一
ニドークンをリンクテーブル11へ送る。
各トークンについてこの5つのコードの組を順に括弧に
入れて示すとすると、本処理を行うには流れるmXn個
のトークンについてのコードの組が 最初のm個について: (f’mulIWO+−+   −+   −)次のm
x (n −2)個について: (fmul、wl+rdcyc+−+  −)最後のm
個について: (fmul、−、rdcyc、fadd、out)とな
るようにする。以上によりプロセッシングユニット16
で演算されるべきデータとそのための処理コードを持つ
トークンがm X n個連続して、即ちクロック毎にプ
ロセッシングユニット16へ流入する。
算術計算部20では処理を規定するコードが全てのトー
クンについてfmulなので入力される2つのオペラン
ドの浮動小数点乗算を行い、それらの積を同じく連続デ
ータとして累積加算部21へ送る。
以下簡単のため p[i、   j]=a 口 、  j コ ・ x[
j]Eすると、算術計算部20の出力トークンのデータ
は順に、 p[1,1]、   p[2,1コ、  ・ ・ 、 
  p[m、   1]。
p[1,2]、p[2,2]、  ・・、p[m、2]
p[1,n]、p[2,n]、  ・・+  p[m、
n]。
となり、これもクロック毎に連続して累積加算部21へ
流入する。
累積加算部21では上記の順で入力されるトークンの処
理コードに従い、 a)最初のm個についてはそのデータをレジスタファイ
ル23にサイクリックに書込み、b)次のmx (n 
−2)個についてはレジスタファイル23からサイクリ
ックに読出したデータと、入力したデータを加算器23
で加算し、その結果データをレジスタファイル23にサ
イクリックに占込み、 C)最後のm個についてはレジスタファイル23からサ
イクリックに読出したデータと、入力したデータを加算
器22で加算し、その結果データを持つトークンを生成
し、プロセッシングユニット6の出力としてトークン出
力部に送出する、という動作を行う。このようにレジス
タファーイル23を長さmのFIFOとして用いること
により、最初のm個のトークンはmクロック遅れ、次の
p[1,2]、  ・・、p[m、2]の列のトークン
と同期して加算器22へ入力される。その結果の部分和
(第2部分和)は加算器22内でSステージ通過するた
めにSクロック遅れ、その後レジスタファイル23に一
度書込まれ、(m−s )クロック後に読出されること
により計量クロック遅れ、次のp[1,3]、  ・・
、p[m、3]の列のトークンと同期して加算器22へ
入力されることとなる。以下これを繰り返すことにより
第n部分和の列が求まり、これを最終結果として結果ト
ークン生成部29から出力することにより、処理を終了
する。
第6図はこの処理における、累積加算部21の各部分で
処理されるデータのタイミングの概略を示す。図中、p
i+jとあるのは説明中のp[i、j]を示し、また である。従ってqi、fi=)’iである。さらにとあ
るのはそのタイミングの間にpl+j *  p2.j
 +・・+pH+jが順に流れたことを意味し、同様に
は加算器22に2つのオペランドの組とじて(p+、j
 、 Q+、J−+)、(pg、j 、 Qz、J−+
)、 ・ ・。
(p−・j ・ qlI・J−1) を順に入力することを示す。この時は当然加算器22の
出力は qI+J  +  qz+J l   ”  +  Q
m+aとなる。加算器22はオペランドの組が入力され
てから結果が出力されるまでSステップかかるので、そ
の結果を利用するレジスタファイル書込み制御部24、
結果トークン生成部29の動作タイミングはSクロック
遅れる。
〔発明の効果〕
以上説明したように本発明においては、(1)大きなハ
ードウェアを必要とし本来ならば長い処理時間がかかる
浮動小数点の加算を行う専用ハードウェアを用意し、し
かもそれをパイプライン的に動作する複数ステージに分
割して構成している。これにより浮動小数点計算のスル
ープットを向上させ、つまり実効的な演算時間を短縮す
ることができ、さらにプロセッシングユニット・部、さ
らにはデータフロープロセッサ全体の動作パイプライン
サイクルを短縮することが可能になることにより処理性
能が向上される。
(2)さらに浮動小数点の乗算が可能な算術計算部をこ
の加算器と縦列に配置することにより、浮動小数点デー
タのコンボリューションがデータを1度でプロセッシン
グユニットに通すだけで行える。
(3)このようなパイプライン化された加算器を装備し
た場合、従来は積和演算を含む行列×ベクトルマの計算
時にその加算器のステージ数をSとしてSx(n−1)
xmステップかかっていたが、本発明では第6図が示す
ように約 mXn+s  ステップ で終了し、処理の高速化が図れる。これはレジスタファ
イルの利用により加算器の各パイプラインステージをフ
ル稼働させることが可能となったことによる。
という効果があり、これにより数値演算処理の高速化を
図ることができる。
【図面の簡単な説明】
第1図は本発明のプロセッシングユニットの一実施例の
構成を示すブロック図、 第2図は第1図のプロセッシングユニットを用いたデー
タフロープロセッサの構成図、第3図は第2図のデータ
フロープロセッサを用いたデータフロー処理装置の例を
示す全体構成図、第4図は本発明の説明に供するトーク
ンの形式第5図は累積加算部内の加算器の構成の一例を
示すブロック図、 第6図は累積加算部におけるデータ処理の動作を示すタ
イミングチャート図、 第7図は従来のデータフロープロセッサの構成を示す図
である。 16・・・・・プロセッシングユニット20・・・・・
算術計算部 2I・・・・・累積加算部 22・・・・・加算器 23・・・・・レジスタファイル 24・・・・・レジスタファイル書込み制御部25・・
・・・レジスタファイル読出し制御部26・・・・・遅
延回路 29・・・・・結果トークン生成部 30・・・・・入カド−クンレジスタ 代理人 弁理士  岩 佐  義 幸 第1図 第3図 第4図 第5図 第7図

Claims (1)

    【特許請求の範囲】
  1. (1)内部のメモリ部、演算部を結合するパイプライン
    状のバスにデータの単位であるトークンを流し、データ
    駆動方式により演算順序をコントロールするデータフロ
    ープロセッサのプロセッシングユニットにおいて、 前記内部メモリ部から前記バスを介して入力されるコン
    トロール情報とオペランドデータを持つトークン上の2
    つのオペランドデータの演算を行い、結果データを持つ
    トークンを出力する算術計算部と、 前記算術計算部の出力トークン上の結果データ、及び、
    加算の途中結果を一時保持する複数のレジスタからなる
    レジスタファイルと、 前記算術計算部の出力トークン上の結果データと前記レ
    ジスタファイルから読出したデータとの演算を行い、結
    果を前記レジスタファイルに送る加算器と、 前記算術計算部の出力トークン上のコントロール情報を
    前記加算器を通過するデータと同期させるための遅延回
    路と、 前記加算器の結果出力データと前記遅延回路から得られ
    るコントロール情報とから演算結果データを持つトーク
    ンを生成する結果トークン生成部と、 からなることを特徴とするプロセッシングユニット。
JP63010775A 1988-01-22 1988-01-22 プロセッシングユニット Expired - Fee Related JPH0648499B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP63010775A JPH0648499B2 (ja) 1988-01-22 1988-01-22 プロセッシングユニット

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP63010775A JPH0648499B2 (ja) 1988-01-22 1988-01-22 プロセッシングユニット

Publications (2)

Publication Number Publication Date
JPH01187638A true JPH01187638A (ja) 1989-07-27
JPH0648499B2 JPH0648499B2 (ja) 1994-06-22

Family

ID=11759704

Family Applications (1)

Application Number Title Priority Date Filing Date
JP63010775A Expired - Fee Related JPH0648499B2 (ja) 1988-01-22 1988-01-22 プロセッシングユニット

Country Status (1)

Country Link
JP (1) JPH0648499B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0469783A (ja) * 1990-07-11 1992-03-04 Nec Corp データフロー型計算機用データ列補間モジュール
JPH05233853A (ja) * 1992-02-24 1993-09-10 Sharp Corp 演算処理装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0469783A (ja) * 1990-07-11 1992-03-04 Nec Corp データフロー型計算機用データ列補間モジュール
JPH05233853A (ja) * 1992-02-24 1993-09-10 Sharp Corp 演算処理装置

Also Published As

Publication number Publication date
JPH0648499B2 (ja) 1994-06-22

Similar Documents

Publication Publication Date Title
US11188330B2 (en) Vector multiply-add instruction
US8106914B2 (en) Fused multiply-add functional unit
US5844830A (en) Executing computer instrucrions by circuits having different latencies
US5923871A (en) Multifunctional execution unit having independently operable adder and multiplier
US5081573A (en) Parallel processing system
US20110208946A1 (en) Dual Mode Floating Point Multiply Accumulate Unit
JPH0635675A (ja) データプロセッサにおいて除算を行うための方法および装置
JPH06195322A (ja) 汎用型ニューロコンピュータとして用いられる情報処理装置
US5426600A (en) Double precision division circuit and method for digital signal processor
US6295597B1 (en) Apparatus and method for improved vector processing to support extended-length integer arithmetic
JPH05150979A (ja) 即値オペランド拡張方式
JP2518293B2 (ja) デ−タフロ−プロセツサ
US5822557A (en) Pipelined data processing device having improved hardware control over an arithmetic operations unit
JPH08123769A (ja) 並列プロセッサ
US5546551A (en) Method and circuitry for saving and restoring status information in a pipelined computer
Sahin et al. Feasibility of floating-point arithmetic in reconfigurable computing systems
US6922771B2 (en) Vector floating point unit
JPH01187638A (ja) プロセッシングユニット
Lei et al. FPGA implementation of an exact dot product and its application in variable-precision floating-point arithmetic
EP1936492A1 (en) SIMD processor with reduction unit
JP2654451B2 (ja) データ出力方法
JP3278441B2 (ja) ベクトル処理装置
RU2276805C2 (ru) Способ и устройство для выделения целой и дробных компонент из данных с плавающей точкой
US7237000B2 (en) Speed of execution of a conditional subtract instruction and increasing the range of operands over which the instruction would be performed correctly
JPS60175145A (ja) デジタルデ−タ処理システム用マイクロコ−ド制御システム

Legal Events

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