JP3182177B2 - ベクトル演算処理機能を有する中央数値処理装置及びベクトル演算処理方法 - Google Patents

ベクトル演算処理機能を有する中央数値処理装置及びベクトル演算処理方法

Info

Publication number
JP3182177B2
JP3182177B2 JP26107891A JP26107891A JP3182177B2 JP 3182177 B2 JP3182177 B2 JP 3182177B2 JP 26107891 A JP26107891 A JP 26107891A JP 26107891 A JP26107891 A JP 26107891A JP 3182177 B2 JP3182177 B2 JP 3182177B2
Authority
JP
Japan
Prior art keywords
data
processing
unit
vector
numerical
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
JP26107891A
Other languages
English (en)
Other versions
JPH0573606A (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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP26107891A priority Critical patent/JP3182177B2/ja
Publication of JPH0573606A publication Critical patent/JPH0573606A/ja
Application granted granted Critical
Publication of JP3182177B2 publication Critical patent/JP3182177B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02EREDUCTION OF GREENHOUSE GAS [GHG] EMISSIONS, RELATED TO ENERGY GENERATION, TRANSMISSION OR DISTRIBUTION
    • Y02E60/00Enabling technologies; Technologies with a potential or indirect contribution to GHG emissions mitigation
    • Y02E60/10Energy storage using batteries

Landscapes

  • Advance Control (AREA)
  • Complex Calculations (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、高速な数値演算処理の
可能な中央数値処理装置及びベクトル演算処理方法に関
し、より具体的には、スカラ処理系のリアルタイム性と
汎用性を保ちながらランダムなデータ列に対してベクト
ル処理機能を行うことの可能なランダムベクトル処理機
能を有する中央数値処理装置及びベクトル演算処理方法
に関する。
【0002】
【従来の技術】従来、計算機システムの処理能力を高め
るため、数値演算処理装置としては、例えばデータのフ
ェッチとそれに対する演算処理を1つのデータ単位で逐
次実行するスカラ型演算処理装置や、連続したアドレス
に等間隔で配置された複数のデータから成るデータ列に
対して1種類の演算処理(例えば、行列演算の処理)を
繰り返して実行するベクトル型演算処理装置、さらに
は、主プロセッサのメモリシステムから演算処理用従プ
ロセッサのメモリシステムへ必要なデータを送り、その
従プロセッサに定まった演算ジョブ(演算ファンクショ
ン)を実行させるアクセラレータ型演算処理装置等が知
られている。
【0003】また、本発明に関連する従来技術として、
例えば特開昭63−316133号が知られており、こ
の従来技術では、特に命令実行シーケンスとデータ入出
力シーケンスを並列運転可能にすることによって演算処
理の高速化をはかることの可能なアプリケーションに好
適な演算処理装置の実現方法が提案されていた。
【0004】
【発明が解決しようとする課題】しかしながら、上記の
従来の数値演算処理装置を備えた計算機システムでは、
スカラ処理系とベクトル処理系とは完全に分離されて構
成されている。そのため、スカラ処理系ではランダムな
データ処理には汎用的な演算を加えることが出来るが、
高い統合処理能力が得られず、一方、ベクトル処理系で
は、長いベクトル列に対しては高い性能が得られるが、
ランダムなデータ列は扱うことが出来ないし、リアルタ
イム性能も低い等の欠点を、それぞれに有していた。
【0005】そこで、本発明では、上記の従来技術にお
ける問題点に鑑み、スカラ処理系並みのリアルタイム性
と汎用性を保ちながらランダムなデータ列に対しても同
時に高速のベクトル処理を行うことの可能なベクトル演
算処理機能を有する中央数値処理装置を提供することを
その目的としている。
【0006】本発明のさらに他の目的は、上記の中央数
値処理装置を用いて高速でベクトル演算処理をする事の
可能なベクトル演算処理方法を提供することである。
【0007】
【課題を解決するための手段】本発明は、データを保持
する機能を有するリソース部と、主CPU部と、前記リ
ソース部から読み取られたデータに対して演算処理を実
行する機能を有する数値演算処理部と、前記リソース部
と前記主CPU部と前記数値演算処理部とを接続する接
続手段とを備えた中央数値処理装置において、前記主C
PU部は前記リソース部にアクセスして任意アドレス順
にデータを読み出すランダムなデータアクセス機能と前
記数値演算処理部にベクトル長データと演算命令とを含
むベクトル処理命令を与える機能とを有し、かつ、前記
数値演算処理部は、前記主CPU部にリソースから読み
出されたデータの中の演算対象データに対して演算処理
を実行する演算実行手段と、前記主CPU部のデータア
クセスに応答して前記演算実行手段に対して演算処理す
べき対象のデータ情報を含む演算命令を与えるシーケン
サとを備えたことを特徴とするベクトル演算処理機能を
有する中央数値処理装置を開示する。
【0008】更に本発明は、データを保持する機能を有
するリソース部と、主CPU部と、前記リソース部から
読み取られたデータに基づいて演算処理を実行する演算
実行部と演算命令を与えるシーケンサと演算情報の記憶
手段とを含む数値演算処理部と、前記リソース部と前記
主CPU部と前記数値演算処理部とを接続する接続手段
とを備えた中央数値処理装置において、前記主CPU部
を用いて前記リソース部に対して任意アドレス順にデー
タアクセスする機能と前記数値演算処理部にベクトル長
データと処理命令とを含むベクトル処理命令を与える機
能とを備え、前記主PCU部のデータアクセスに応答し
て前記数値演算処理部の前記シーケンサを用いて、前記
演算実行部に対して処理すべき対象のデータ情報を含む
命令を与える機能とを有し、前記記憶手段の情報を用い
て命令された処理を実行することを特徴とするベクトル
演算処理方法を開示する。
【0009】
【作用】すなわち、前記の様な本発明になるベクトル演
算処理機能を有する中央数値処理装置の構成及び上記の
ベクトル演算処理方法によれば、前記主CPU部を用い
て前記リソース部にアクセスしてデータを任意アドレス
順に読み出すランダムなデータアクセス機能を有し、前
記数値演算処理部にベクトル長データと演算命令とを含
むベクトル処理命令を与え、前記数値演算処理部の前記
シーケンサを用いて、主CPU部の前記データアクセス
動作に応答して前記演算実行手段に対し演算処理すべき
対象のデータ情報を含む演算命令を与え、前記演算実行
手段を用いて任意順に読み取られたデータに対して命令
された演算処理を実行するようにしたことから、主CP
U部が任意のアドレス順のデータ列に対するランダムな
データ転送処理を、シーケンサ部が演算命令の指令処理
を、演算実行ユニット6が演算実行処理を並列に実行す
ることが可能になり、もって、ベクトル演算処理の高速
化及びリアルタイム性の向上を図ることが可能になる。
【0010】
【実施例】以下、添付の図面を参照しながら、本発明の
実施例について詳細に説明する。先ず、本発明になる中
央数値処理装置100の構成を図1に示す。図1におい
て、中央数値処理装置100は、メインCPU部1と、
数値演算処理部2とから構成されており、メインCPU
部1の管理下には、主メモリシステム3に代表される、
データ又は命令コードを記憶しあるいはメインCPU部
1にデータ又は命令コードを供給したりする、いわゆる
リソース(資源)3が接続されている。そして、これら
メインCPU部1と数値演算処理部2とリソース3との
間は、データバス(Data)L1、アドレスバス(A
DDR)L2、そして、コントロールラインL3〜L7
によって結合され、メインCPU部1からの指令により
必要な処理を協調して実行するように構成されている。
【0011】上記の構成の内、数値演算処理部2は、メ
インCPU部1の演算処理機能を拡張する目的で追加さ
れた付加プロセッシングユニットである。この数値演算
処理部2は、図にも示すように、シーケンサ5、演算実
行ユニット6及びスタックレジスタファイル7から構成
されている。そして、メインCPU部1からこの数値演
算処理部2への基本命令の指令は、上記アドレスバスL
2及びコントロールラインL3、L4、L6を介して行
い、サブ命令の指令及びオペランドデータMの転送はデ
ータバッファ4を介して行われるように構成されてい
る。また、メインCPU部1のデータバスL1は、デー
タバッファ4によってサブ命令用バス(IData)L
7(ゲートバッファ42を介する)とオペランドデータ
用バス(FData)L8(ラッチ41とゲートバッフ
ァ43を介する)に分配され、数値演算処理部2に接続
されている。この様な数値演算処理部2は、図にも示さ
れるように、さらに、スタックレジスタファイル7を含
んでおり、前記データバッファ4により分配されたオペ
ランドデータ用バスL8が接続されている。また、図中
の符号L9〜L12は、上記シーケンサ5からの制御線
であり、符号8はレディ制御ユニット8を示している。
【0012】次に、シーケンサ5は、シーケンスコント
ローラ51と、ベクトル長カウンタ52と、フェッチイ
ンターバルレジスタ53と、フェッチインターバルカウ
ンタ54と、命令レジスタ55とから構成されている。
また、演算実行ユニット6は、レジスタファイル61と
演算処理装置(ALU)62とから構成されている。さ
らに、データバッファ4は、ラッチ41とゲートバッフ
ァ42、43とから、また、スタックレジスタファイル
7はスタックレジスタ(SRファイル)71から構成さ
れている。
【0013】そこで、本発明によれば、上述の構成にお
いて、基本的には、メインCPU部1がデータ転送処理
を、シーケンサ部5が演算命令の指令処理を、そして、
演算実行ユニット6が演算実行処理を並列に実行するこ
とにより演算処理の高速化を図ろうとするものである。
【0014】このことを説明するため、以下、具体的に
本発明のランダムベクトル処理機能を例として説明を加
える。なお、ここで、ランダムベクトル演算処理とは、
メインCPU部1が主メモリ(例えばリソース3)やI
/O等のデータ空間からランダムにフェッチしたデータ
を、数値演算処理部2のシーケンサ部5が横取りし、演
算実行ユニット6へ直接転送することによって、そのデ
ータと演算実行ユニット6内のレジスタTnとの間で直
接演算させることにより、任意のアドレスに配置された
データの組(ランダムベクトル)に対して同一の演算を
繰り返して実行するものである。
【0015】また、本発明のランダムベクトル処理機能
は、前記メインCPU部1と数値演算処理部2とのマシ
ンサイクル又はバスサイクルレベルでの協調動作により
実行される。このランダムベクトル処理には、大きく分
けて、メインCPU部1と演算実行ユニット6との間で
実行されるランダムベクトル演算処理と、メインCPU
部1とスタックレジスタファイル7との間で実行される
ランダムベクトルスタック処理とがある。
【0016】図2は、メインCPU部1から数値演算処
理部2へのアドレスバス(ADDR)L2及びデータバ
ス(L1)を用いた命令フォーマットの一例を示す。す
なわち、図の(a)は上記のランダムベクトル演算処理
命令を、そして、図の(b)は上記のランダムベクトル
スタック処理命令のフォーマットを示している。
【0017】まず、図の(a)に示すフォーマットで
は、例えば、m=0の場合にはVEC(T(l)=T(l)
(op) M,b)というベクトル演算処理を実行す
る。すなわち、メインCPU部1がリソース3からラン
ダムに読み出したデータMと演算実行ユニット6内のレ
ジスタT(l)との間で「(op)」で規定される演算を
実行し、その結果をT(l)に格納する。その後、l=l
+1を実行して同様の処理を繰り返し、合計b個のデー
タとb回の演算を実行した後処理を終了する。また、m
≠0の場合には、T(m)で指定された演算実行ユニット
6内の定数レジスタT(l)の間で同様の処理を行う。
【0018】一方、図の(b)に示すフォーマットで
は、例えばVEC(SR(kl)=M,b)というベクトル
転送処理を実行する。すなわち、メインCPU部1がリ
ソース3からランダムに読み出したデータMをスタック
レジスタファイル7のスタックレジスタ(SRファイ
ル)71の(kl)に転送する。その後、kl=kl+
1を実行して同様の処理を繰り返し、合計b個のデータ
とb回の演算を実行した後処理を終了する。
【0019】また、上記のフォーマットでは、図3に示
すように、ビットペア(A15,A12)=(xy)に
よりフェッチインターバルを指定することが出来る。こ
れにより、すなわち、メインCPU部1がフェッチした
データの何番目が有効なデータであるかを規定すること
が出来る。一方、シーケンサ部5は、これにより有効な
データに対して指定された処理を実行し、それをb回繰
り返すシーケンスを生成することとなる。
【0020】次に、図1におけるシーケンサ部5の機能
について詳細に説明する。すなわち、シーケンサ部5内
のシーケンスコントローラ51は、ランダムベクトル命
令がアドレスバス(ADDR)L2及びサブ命令用バス
(IData)L7を介してメインCPU部1から指令
されると、以下のシーケンス(A1)〜(A4)を生成
する。
【0021】(A1) シーケンスコントローラ51
は、フェッチインターバルレジスタ53に上記のアドレ
スバス(ADDR)からの値xy(図2のフォーマット
ADDRのA15とA12に相当)をロードする。更に
ベクトル長カウンタ52へ、ランダムベクトル演算処理
の場合には、図2(a)におけるフォーマットADDR
に示す様なアドレスバス(ADDR)L2を介するベク
トル長指定フィールド値b(=A11〜A7)と、図2
(a)におけるフォーマットDataに示す様なIDa
taL7を介するレジスタ番号の初期値l(=D4〜D
0)をロードする。また、ランダムベクトルスタック処
理の場合には、図2(b)におけるフォーマットに示す
様にIDataL7を介するベクトル長指定フィールド
値b(=D15〜D8)とアドレスバス(ADDR)L
2を介するスタックレジスタの初期値kl(=A9〜A
7とA6〜A2)をベクトル長カウンタ52へ同様にロ
ードする。一方、演算命令の指示に関しては、図2の
(a)に示したランダムベクトル演算処理命令を実行す
る場合には、演算実行ユニット6への演算命令FINS
Tを出力するための命令レジスタ55に、図2の(a)
に示すフォーマットIDataの命令フィールド(o
p)の値をラッチする。また、フェッチインターバルレ
ジスタ53の値はフェッチインターバルカウンタ54に
ダウンロードしておく。
【0022】(A2) シーケンスコントローラ51
は、メインCPU部1のコントロールライン(D/ ̄
C)L3及びコントロールライン(W/ ̄R)L6をモ
ニタしており、これにより、メインCPU部1がリソー
ス(例えば主メモリシステム3)から任意のアドレスに
配置されたデータをフェッチしたことを知る(例えば、
D/ ̄C=1,W/ ̄R=0)。なお、上記の符号
「 ̄」は反転信号を表しており、以下においても同様で
ある。図面ではかかる記号表示法をとらずに、文字の真
上にバーをつけた一般的な表示法を採用している。する
と、データバス(Data)L1上に読み出された有効
なデータMをデータバッファ4のラッチ41にラッチ
し、演算実行ユニット6へのデータバス(FData)
L8に出力する。データMが有効かどうかは、フェッチ
インターバルカウンタ54の値が零(0)なら有効、さ
もなくば無効としてフェッチインターバルカウンタ54
の値xyをデクリメントする。メインCPU部1がフェ
ッチしたデータが有効である場合、もし、上述の図2の
(a)に示した命令フォーマットで指定される命令(ラ
ンダムベクトル演算処理)が指令されていれば、前記F
INSTを、その命令が有効であることを示すストロー
ブ信号 ̄ISTADと共に演算実行ユニット6に転送
し、オペランドデータ用バス(FData)L8上のデ
ータMも同様に転送して必要な演算処理を演算実行ユニ
ット6に指令する。一方、もし、命令が、図2の(b)
に示されるフォーマット(ランダムベクトルスタック処
理)で指令されている場合、スタックレジスタファイル
7に対して、制御信号 ̄SRWR(SRレジスタへの書
き込みを指示)、制御信号 ̄SRRD(SRレジスタか
らの読み出しを指示)、制御信号 ̄SRADDR(ベク
トル長カウンター52を用いてSRレジスタのアドレス
を指示)を用いて転送処理を行う。すなわち、処理とし
て例えばRSkl=Mが指示されたならば、スタックレ
ジスタアドレスSRADDR=kl、 ̄SRWR=0と
して、スタックレジスタSRklへ、データバス(Da
ta)L1からデータバッファ4のラッチ41を介して
オペランドデータ用バス(FData)L8上に出力さ
れているデータMを書き込む。一方、処理として例えば
M=SRklが指示された場合は、スタックレジスタア
ドレスSRADDR=kl、 ̄SRRD=0としてスタ
ックレジスタSRklからデータMをオペランドデータ
用バス(FData)に読み出し、データバッファ4の
ゲートバッファ43を、制御線L10をアクティブにす
ることにより開いて(この時、ラッチ41は制御線L1
2により出力段がフロート状態に制御されている)、デ
ータバス(Data)L1へデータMを出力し、メイン
CPU部1はライト動作でそのデータをリソース3へ書
き込むこととなる。
【0023】(A3) 1つの有効なデータMに対して
の処理が終了するとベクトル長カウンタ52にロードさ
れているレジスタ番号指定値l又はスタックレジスタ番
号指定値klをインクリメントし、ベクトル長bをデク
リメントする。すなわち、l=l+1又はkl=kl+
1とb=b−1をベクトル長カウンタで実行し、新たな
lの値をレジスタT1を指定するデータTxとして演算
実行ユニット6に対して出力し、新たなklの値はスタ
ックレジスタファイル7に出力する。また、フェッチイ
ンターバルカウンター54にフェッチインターバルレジ
スタ53の値xyを再度ダウンロードする。
【0024】(A4) ベクトル長レジスタ52に保持
している前記更新されたbの値が零(0)であれば、指
令されたランダムベクトル処理を完了する。もしb≠0
ならば、上記(A2)以降の処理を繰り返す。
【0025】続いて、具体的にランダムベクトル演算処
理を例にとって、添付の図4を参照しながらその動作を
説明する。ランダムベクトル演算処理とは、既に上述し
た様に、メインCPU部1が主メモリ(例えばリソース
3)、I/O等のデータ空間からランダムにフェチした
データを数値演算処理部2のシーケンサ部5が横取り
し、演算実行ユニット6へ直接転送することによって、
そのデータと演算実行ユニット6内のレジスタTnとの
間で直接演算させることにより、任意のアドレスに配置
されたデータの組(ランダムベクトル)に対して同一の
演算を繰り返して実行するものである。ユーザは、対象
となるレジスタの先頭番号l、ベクトル長b(演算回数
に一致)、及び実行すべき演算(op)を指定する。こ
こでは、上述の図2の(a)に示した命令指定フォーマ
ットを例にとって説明する。演算は一般的に、Tl=Tl
(op)Ml、又はTl=(op)Ml(l=0〜b−
1)と表現できる。特殊な場合として、Tn=f(Tn
l,Ml)(ここで、nは固定、l=0〜b−1)も許
している。このlの値は、演算が実行される度にインク
リメント(l=l+1)される。また、メインCPU部
1がフェッチした何番目のデータに対して演算処理を実
行するか(すなわち、フェッチインターバルの指定)を
基本演算命令アドレス(ADDR)の特定のビットで指
示することが出来る。例えば図2におけるビットペア
(A15,A12)=(1,1)を指定したとすれば、
メインCPU部1が4回データをフェッチすると、その
4番目のデータが演算対象となり、その単位でb回の演
算をb個の演算対象データMに対して実行する。ビット
ペア(A15,A12)=(0,0)を指定した場合
は、メインCPU部1がフェッチするデータは全て演算
対象となる(図3のビットペアによるフェッチインター
バルの指定を参照)。このフェッチインターバル値は、
フェッチインターバルレジスタ53にラッチされ、それ
をフェッチインターバルカウンタ54にロードして用い
る。フェッチインターバルカウンタ54の値はデータが
フェッチされる度にデクリメントされ、その値が零
(0)の場合演算を実行し、その後フェッチインターバ
ルレジスタ53の値をフェッチインターバルカウンタ5
4に再ロードする。
【0026】添付の図4に示したランダムベクトル処理
の例を用いて、その詳細なタイミングを以下に検討す
る。なお、本実施例では、メインCPU部1のアクセス
する(リソース3からのリード動作)データMは全てラ
ンダムベクトル処理の対象となるとする。すなわち、フ
ェッチインターバルレジスタ53の値は零(0)であ
る。また、ベクトル長カウンタ52の値は5であると
し、対象とする演算実行ユニット6内のレジスタはTl
〜Tl+4の5つであるとする。
【0027】先ず、演算実行ユニット6は、メインCP
U部1からのアドレスストローブ( ̄ADS)によって
示されるバスサイクルの開始タイミングで生成されるA
〜Eまでの5つのランダムなアドレス値に対応するリソ
ース3から、メインCPU部1によって読み出されたデ
ータa〜eに対して、演算Tn=f(Tn,Tm,M
m)(m=l〜l+4、Mm=a,b,c,d,e)を
実行する。シーケンサ5から演算実行ユニット6への命
令(FINST)はランダムベクトル処理の期間中固定
され(例えば、MACS;Tn=Tn+Tm×Mm)、
演算実行ユニット6は前記の5つのデータa〜eに対し
て同一の演算処理を行う。メインCPU部1によって読
み出されたデータa〜eは、データバス上に有効な値が
確定したことを示すリソースからのレディ( ̄RDY)
信号がアクティブになると、シーケンサ5によって一度
データバッファ4にラッチされると共に、演算実行ユニ
ット6へのデータ、すなわちオペランドデータ(FDa
ta)として演算実行ユニット6へ出力される。これと
同じタイミングで、シーケンサ5は、そのデータが演算
実行ユニット6によって使用されるまでに次のデータが
データバッファ4にラッチされることを禁止する ̄BU
SY信号をアクティブにする。また、実行ユニットへの
命令が有効であることを示すストローブ信号( ̄IST
ADS)を前記の ̄RDY信号のタイミングから生成す
る。一方、実行ユニットは、アクティブな ̄ISTAD
を受けると、そのクロックピリオドで命令FINSTを
フェッチし、次のクロックピリオドでFDataをフェ
ッチして前記演算を実行していく。本実施例では、デー
タバッファ4に1つしかデータがフェッチ出来ない場合
のタイミングを示しており、演算処理がメインCPU部
1によるデータリード動作に追従できない場合、次の演
算命令及びデータの投入が可能であることを示す演算実
行ユニット6からのレディ( ̄FRDY)信号がアクテ
ィブになるまで、メインCPU部1は待たされる。図
中、 ̄RDY信号がペンディングされて(図中に波線で
示される部分)非アクティブに保たれている間、メイン
CPU部1はそのバスサイクルを終了できずに待たされ
ることとなる。この ̄RDY信号制御は、シーケンサ5
からのアクティブな ̄BUSY信号を用いてレディ制御
ユニット8が行う。 ̄FRDY信号がアクティブになる
と、直ちに ̄BUSY信号が非アクティブになり、アク
ティブな ̄RDY信号がメインCPU部1に返送されて
そのバスサイクルを終了する。以上のタイミングで、5
つのランダムデータに対して必要な処理が実行され、そ
れらが全て終了すると、そのランダムベクトル命令は終
了し、シーケンサ5は次の命令を実行可能な状態にリセ
ットされる。
【0028】また、上記の図4で、演算実行ユニット6
及びシーケンサ5における処理の基準時刻又は信号の生
成タイミングは全てクロック(FCLK)の立ち上がり
のタイミング又は確信号の変化点のタイミングに従って
いる。
【0029】次いで、上述のランダムベクトル処理の効
果を図5を用いて説明する。この例では、次の条件下
で、メインCPU部1、データバッファ4、シーケンサ
5、演算実行ユニット6が協調動作し、演算処理Tz=
Tz×Mを実行するものとする。
【0030】(B1) メインCPU部1は、アドレス
ストローブ信号( ̄ADS)L4がアクティブ(=0)
になるとバスサイクルを開始し、データバス(Dat
a)L1に必要なデータをリソース3から読み出す。読
み出されるデータの種類には、ランダムベクトル処理の
対象外の一般データD、ランダムベクトル処理対象デー
タRVD(上記のデータMに相当)、メインCPU部1
のインストラクションフェッチIFDの3種類である。
また、ランダムベクトル処理の開始点で図2の(a)に
示すフォーマットにより、ランダムベクトル処理命令
(RV命令)が、メインCPU部1からシーケンサ5に
対して、アドレスバス(ADDR)L2及びデータバス
(Data)L1を介して出力される。
【0031】(B2) Tzは演算対象となる演算実行
ユニット6内のレジスタの指定を示し、FINSTは、
シーケンサ5から演算実行ユニット6へ指示される演算
命令(この場合は、乗算MUL)である。これらTz、
FINSTは、演算指示が有効であることを演算実行ユ
ニット6へ伝えるストローブ信号( ̄ISTADS)を
シーケンサ6がアクティブ(=0)にすることによって
演算実行ユニットへの演算の指示を行う。
【0032】(B3) xyは、シーケンサ5のフェッ
チインターバルカウンタ54の内容を示し、bはベクト
ル長カウンタ52の内容を示す。初期データとして、x
y=1、b=5を指定するものとする。
【0033】(B4) 演算実行ユニット6はFINS
T、Tx、RDV(データM)を受けるとシーケンサ5
にアクティブな ̄FRDY(=0)を返し、シーケンサ
5から演算実行ユニット6へ次の命令の指令が可能であ
ることを伝える。EXECは、演算実行ユニット6内で
演算が行われている期間を示している。すなわち、 ̄E
XEC=0の間、演算実行ユニット6は演算処理を実行
中である。
【0034】次に、添付の図5を参照しながら、上述の
ランダムベクトル処理の具体的なシーケンスを詳細に説
明する。
【0035】(C1) 図中のタイミングSで、RV命
令により指令された内容、Tz、FINST、xy,b
がシーケンサ5内にセットされ、RV命令実行状態とな
る。
【0036】(C2) メインCPU部1は、D/ ̄C
信号(D/ ̄C=1)を出力すると、そのバスサイクル
がデータのフェッチD又はRVDであることを示し、D
/ ̄C=0の時はインストラクションフェッチIFDで
あることを示している。フェッチインターバルカウンタ
54はRV命令実行中のデータフェッチ(D/ ̄C=
1、 ̄ADS=0)をモニタしており、データフェッチ
が起こるとそのバスサイクルの最後でデクリメント(x
y=xy−1)される。
【0037】(C3) xy=0でデータフェッチが起
こると、シーケンサ5はそのバスサイクルで得られたデ
ータバス(Data)L1上の有効なデータMをデータ
バッファにラッチし、オペランド用の内部データバス
(FData)L8に出力する。本実施例では、2つの
データがランダムベクトル処理対象データとなる。ま
た、そのバスサイクルで ̄ISTADSをアクティブに
し、FINST及びTzを演算実行ユニット6に指令す
る。Tzの初期値はTlであり、zの値はlから指定さ
れたベクトル長b個分、すなわちl+b−1まで変化す
る。また、本実施例では、TlからTl+4の5つのレ
ジスタがランダムベクトル処理のオペランドレジスタと
して使用される。そのバスサイクルの最後で、フェッチ
インターバルカウンタ54のxyの値をフェッチインタ
ーバルレジスタ53の値(xy=1)に再セットする。
【0038】(C4) 演算実行ユニット6は、シーケ
ンサ5からの命令とオペランドレジスタ情報を受けると
直ちに内部データバス(FData)上のデータRVD
を受け取り、次の演算指令を受け入れ可能であることを
示すシーケンサ5へのレディ信号 ̄FRDYをアクティ
ブにする。これを受けて、シーケンサ5は、ベクトル長
カウンタ52の値をデクリメント(b=b−1)し、b
=0となるまで、上記の(C2)以後のシーケンスを繰
り返す。そして、b=0となると、指令されたランダム
ベクトル処理命令を終了する(タイミングEで示す)。
【0039】図5の以上の説明から明かとなるように、
本実施例では、ランダムベクトル処理対象データとして
RVD0からRVD4までの5つのデータが扱われる。
また、その間に発生するIFDはランダムベクトル処理
開始時にすでに対象外データとなり、フェッチインター
バルカウンタ54の値xy=1の条件下でフェッチされ
るデータD0〜D4も無視される。従って、ランダムベ
クトル処理対象となるデータフェッチは1つおき(すな
わち、bの値が固定されている期間内で2番目のデータ
フェッチが有効)となる。
【0040】今、例えばメインCPU部1のみで実行さ
れ、使用されるデータフェッチD0〜D4が、RVD0
〜RVD4のフェッチを実行するためのアドレスポイン
タデータのフェッチだとする。すなわち、RVDn=M
(Dn)というリスト処理を実行しているとする。ここ
で、Dnのアドレス空間への配置自体ランダムでもかま
わないとすると、従来のベクトル処理システムでは、D
nをアドレスnに存在するランダムなアドレスA(n)
に基づいてリスト処理し、新たなリストを生成した後そ
のリストに基づいてRVDnをフェッチする必要があ
る。すなわち、RVD(n)=M(D(A(n)))を
実行することとなり、2段のリスト処理に相当し、これ
はスーパコンピュータ等のベクトル処理装置では困難な
処理である。
【0041】これに対し、本発明のランダムベクトル処
理では、Dnが1回の処理でランダムにフェッチできる
ため、1段のリスト処理で済む。また、インターバルカ
ウンタ54の値xyを増やせば、より多段のリスト処理
も同様に可能となる。これを別の見方をすれば、xy=
0を初期値としてフェッチインターバルレジスタ53に
セットした場合、つまり、連続的なランダムベクトル処
理RVD(n)=Mnは、RVD(n)=M(A
(n))に相当し、すでに一段のリスト処理を実行して
いることとなる。
【0041】すなわち、本発明では、基本的にメインC
PU部1がデータ転送処理を、シーケンサ部5が演算命
令の指令処理を、演算実行ユニット6が演算実行処理を
並列に実行することにより演算処理の高速化を図ってい
る。これにより、従来のベクトル処理装置のパイプライ
ン処理に比べてわずか3段のパイプラインで対応するデ
ータRVDに対する結果が得られ、各オペランドデータ
Mに対応する処理の総合レイテンシタイム(待ち時間)
を小さくでき、リアルタイム処理性能を著しく向上させ
ることが出来る。また、図5に示したように、メインC
PU部1が最後のデータフェッチサイクル(RVD4の
フェッチ)を開始してからわずか3クロック後には命令
処理を終了し(タイミングE)、演算実行ユニット6の
レジスタTl〜Tl+4に全ての結果が出そろう。これに対
し、従来システムでは、トータルのパイプラインの段数
(数十段)分のディレイを生じて結果が得られるため、
次ぎにスカラ処理が存在する場合や、結果を外部に出力
する場合、処理が終了するまでスカラ処理系が待たされ
ることになる。それに対して、本発明によれば、その待
ち時間を非常に小さいものにすることが可能になる。
【0043】以下に上記の本発明になるランダムベクト
ル処理の効果をまとめる。上記のランダムベクトル処理
では、目的とするランダムなデータ列をフェッチするた
めに従来のベクトル処理装置が必要としていたアドレス
計算処理A(n)を最初の一段分省くことができ、その
分、演算処理を高速化できる効果がある。
【0044】また、本発明のベクトル処理によれば、従
来のスカラ処理装置に比べると、演算処理のための命令
フェッチ(FINST、Tzに相当する)を、一演算処
理単位ごとに主メモリ等からフェッチする必要が無く、
最初に一度指定すれば良い。これにより、データのフェ
ッチ処理と演算命令の送出処理及び実行処理を並列化で
き、より高速な演算速度が得られる。メインCPU部1
も、演算命令のフェッチ動作と実行動作がない分だけよ
り高速化できる。
【0045】本発明になる中央数値処理装置のメインC
PU部1と数値演算処理部2とのインターフェース方式
は、特別な余分のバスや制御線を必要としない。したが
って低コストで実現可能であるし、また将来、中央数値
演算処理部としてメインCPU部に集積(LSI化)す
ることも可能である。さらに、同方式により複数の機能
プロセッサを自由に追加することができ、処理能力の拡
張性に富む。さらに、本発明によればメインCPU部に
よるデータ転送処理と、シーケンサにおける演算命令の
指令処理及び演算実効ユニットによる演算実効処理とを
並列に実行することにより、高速処理性能とリアルタイ
ム処理性能を著しく向上させる効果がある。
【0046】次に、スタックレジスタファイル7を用い
たスタックベクトル処理又はスタックランダムベクトル
処理について以下に簡単に説明する。スタックレジスタ
ファイル7は、前述した様に、シーケンサ5からのスタ
ックアドレス(SRADDR)、スタックライト( ̄S
RWR)、スタックリード( ̄SRRD)の各アドレ
ス、コントロール信号線により制御される一種のメモリ
システムである。扱うのはデータバス(FData)L
8上のデータであり、SRADDRで指定されたスタッ
クレジスタアドレス(スタックレジスタ番号と等価)に
対し、スタックライト( ̄SRWR)がアクティブのと
き、データバス(FData)L8上のデータをスタッ
クレジスタ(SRファイル)71に書き込み、スタック
リード( ̄SRRD)がアクティブのとき、スタックレ
ジスタ(SRファイル)71からデータバス(FDat
a)L8へデータを読み出す。スタックレジスタファイ
ル7に対する基本ベクトル処理は大きく分けて、スタッ
クレジスタへのベクトルロード処理、スタックレジスタ
からのベクトルストア処理、スタックレジスタと演算実
行ユニット6内のレジスタ間のベクトル演算処理、の3
つである。スタックレジスタ(SRファイル)71への
ベクトルロード及びストア処理は、前述した様にランダ
ムベクトル処理の一種であり、上記のシーケンス(C
1)〜(C4)に記載した動作シーケンスに従ってシー
ケンサ5によって処理される。なお、処理表記は、ラン
ダムベクトルスタックロードがVEC(SR(kl)=
M、b)、ランダムベクトルスタックストアがVEC
(M=SR(kl)、b)である。
【0047】ランダムベクトルスタックロードは、ラン
ダムベクトル演算におけるデスティネーションレジスタ
lの代わりにスタックレジスタ(SRファイル)71
のklが指定されただけで、その他の処理タイミング及
び方法は、前述の図5及び以下に説明する図6に示した
ランダムベクトル演算の処理シーケンスに従う。ただ
し、演算処理は行われず、リソースからのデータMがス
タックレジスタ(SRファイル)71のklに転送され
る処理のみが実行される。
【0048】次に、ランダムベクトルストア処理につい
て、以下に詳しく説明する。ランダムベクトルストア
は、前述したスタックレジスタ(SRファイル)71の
klを対象としたランダムベクトルスタックストアと、
演算実行ユニット内のレジスタTlを対象としたランダ
ムベクトルレジスタストアとがある。対象となるレジス
タファイルが異なるだけで、いずれも同様の処理シーケ
ンスで実行される。
【0049】図6にレジスタファイルTzを対象とした
ランダムベクトルストアの処理シーケンスを示す。詳細
な信号機能及び条件(ベクトル長、先頭レジスタ)は図
5の場合と同様である。以下にそのタイミングを説明す
る。
【0050】(D1) メインCPU部1からシーケン
サ5にRV命令によってランダムベクトルストア処理が
指示されると、シーケンサ5は直ちにFINSTにスト
ア命令STをセットし、先頭対象レジスタTlをTzにセ
ットして、それらの情報を演算実行ユニット6に与え、
それらの情報が有効であることを示すと共に、演算実行
ユニット6に対して処理の開始を指示する ̄ISTAD
S信号をアクティブにする。
【0051】(D2) 演算実行ユニット6は、アクテ
ィブな ̄ISTADSを受けて、直ちにストア処理を開
始し、先ず先頭のレジスタTlからデータを読み出し、
数値処理部2の内部データバス(FData)L8にそ
の値を出力する。
【0052】(D3) データバッファ4は、シーケン
サ5からの指示により内部データバス(FData)L
8上のデータMをラッチ回路41にラッチする。もし、
メインCPU部1で直ちに内部データバス(FDat
a)L8上のデータMが必要となる場合は、ショートカ
ットパスであるバッファゲート43を設けておき、それ
を介することによって、より短い時間で内部データバス
(FData)L8上のデータをメインCPU部1のデ
ータバス(Data)L1に出力できる様にしておく
と、ディレイ時間が短縮され、より効果的である。ラッ
チ回路41にラッチされたデータ又はバッファゲート4
3を通過したデータMは、メインCPU部1が対象とな
るランダムベクトルデータRVDのリソースへの書き込
み処理を実行しているとき、同時にデータバッファ4か
らデータバス(Data)L1へ出力され、データMが
有効なランダムベクトルデータRVDとしてリソース3
へ書き込まれる。
【0053】(D4) ストアすべき有効なランダムベ
クトルデータRVDの判定は、ランダムベクトル演算の
場合と同様である。すなわち、ランダムベクトルストア
期間内でフェッチインターバルカウンタ54の値xyが
ゼロの場合、有効とみなされる。本実施例の場合、xy
の初期値は1であり、メインCPU部1のデータフェッ
チサイクル(D/ ̄C=1すなわち命令フェッチサイク
ルは除く)のうち2番目のデータ(図6中で、RVD0
〜RVD4の5つ)が有効となる。ストア処理なので、
必然的にメインCPU部1の実行する有効なランダムベ
クトルサイクルRVD0〜RVD4は書き込みサイクル
(ライトサイクル)である。
【0054】(D5) シーケンサ5は、データバッフ
ァ4にデータがラッチできる状態にあり、かつ、演算実
行ユニット6の処理(この場合はストア処理)が終了し
ていることを示すアクティブな ̄FRDY信号を受け
て、データバッファ4にストアすべき内部データバス
(FData)L8上のデータをラッチする。その後、
直ちに対象レジスタ番号をインクリメントし、ベクトル
長カウンタの値bをデクリメントする。そして、次のス
トア処理の実行を ̄ISTADSをアクティブにするこ
とにより開始する。本実施例のベクトル長カウンタ52
の値bの初期値は5であり、対象となる演算実行ユニッ
ト6内のレジスタはTl〜Tl+4の5つになる。本実施例
では、データバッファ6内のラッチ41が1データ分の
容量しかない場合を示している。メインCPU部1の実
行が遅れている場合には、シーケンサ5による次のスト
ア処理の実行開始時に、前のデータがまだデータバッフ
ァ4に保持されていることがある。その場合、データバ
ッファ4に保持されている先行するデータをリソース3
に書き込む処理をメインCPU部1が実行するまで、シ
ーケンサ5による次のストア処理の実行開始は延期され
る。一方、数値処理部2側のストア処理の方がメインC
PU部1側の処理の実行よりも遅れる可能性がある場合
には、その際に、シーケンサ5からメインCPU部1
へ、メインCPU部1の処理の実行を適切な時間だけ待
たせるための情報を与える機能を必要とする。
【0055】(D6) メインCPU部1は、有効なラ
ンダムベクトルストアサイクルRVD0〜RVD4でデ
ータバス(Data)L1上のデータMをリソース3に
書き込む。書き込み対象データMは、メインCPU部1
が自身で出力した値ではなく、前述した様に、データバ
ッファ4がシーケンサ5からの指令によりメインCPU
部1の有効なランダムベクトルストアサイクル(ライト
サイクル)にタイミングを合わせて、データバス(Da
ta)L1上にデータMを出力し、メインCPU部1が
そのデータをリソース3に書き込むことによって実現す
る。ランダムベクトルストア処理は、ベクトル長カウン
タ52の値bがゼロであり、かつ、最後のデータ(本実
施例ではRVD4)がメインCPU部1によってリソー
ス3に書き込まれた時に終了する。
【0056】以上からも明らかなように、上記のランダ
ムベクトルストア処理には、ランダムベクトル演算処理
について既に述べた効果に加え、さらに、以下に示す特
有の効果がある。すなわち、図6に示した様に、ランダ
ムベクトルストア命令(RV命令)をメインCPU部1
がシーケンサ5に対して出力すると、直ちにストアすべ
き最初のデータをデータバッファ4まで先行フェッチ
(本実施例では演算実行部内のレジスタTzから)して
おく処理が起動される。したがって、実際にメインCP
U部1がリソース3へランダムベクトルストアの対象と
なるデータMをストアするサイクル(RVD0〜RVD
4)を実行する時刻には、すでに対象データMがデータ
バッファ4に準備されている状態にタイミングをコント
ロールすることができる。すなわち、従来のストア処理
におけるオーバーヘッドであるターゲットレジスタから
のデータのフェッチ処理が完全に並列化でき、非常に高
い転送効率が得られるという効果がある。
【0057】また、最後のデータ(本実施例ではRVD
4)をシーケンサ5がデータバッファ4にラッチした後
は、数値演算処理部2は完全に処理を終了した状態とな
り、次の処理又はペンディングされている処理の実行を
メインCPU部1の動作と並列に実行することができ、
システムの処理効率をさらに向上できる効果がある。
【0058】そして、最後に、本発明になる上記の中央
数値処理装置には、以下に述べる特徴がある。 (E1) メインCPU部1が管理するアドレス空間の
任意のデータに対してベクトル処理が可能になる。処理
対象となるデータは、メインCPU部1がターゲットの
リソース3にアクセス(一般的にはデータ読みだし。デ
ータ書き込みに用いる場合は、自身のデータ出力バッフ
ァをハイインピーダンス状態にして、代わりにデータバ
ッファ4からの出力データMを書き込めば可能であ
る。)する回数分だけそのアクセスと並列に演算が実行
される。すなわち、メインCPU部は通常のスカラ型転
送命令(MOV命令、LD命令、ST命令等)を、所望
の任意のアドレスに対して実行するだけでよい。これに
より、汎用CPUを用いた場合でも高速なベクトル処理
が可能となるばかりか、アドレスがランダムな並び方の
データに対してもベクトル処理が実現できる。
【0059】(E2) 従来のパイプライン型のベクト
ル処理とは異なり、データのフェッチ及び転送と演算処
理とを並列に処理するパラレル型のベクトル処理を実現
している。これにより、従来問題となったパイプライン
の立ち上がり時間等のオーバヘッドがほとんど無く、演
算を指令してから結果が得られるまでのレイテンシ(遅
れ時間)を小さく出来るため、スカラ処理と同等レベル
のリアルタイム性能が得られる。
【0060】(E3) ランダムベクトル命令及び必要
な管理データやオペランドデータの投入は最初の1回で
良く、それ以外の命令投入によるオーバヘッドを一切必
要としない。
【0061】(E4) ベクトル長カウンタ52を設け
ることにより、必要な処理データ数及び演算数の管理
や、対象となるレジスタTxの更新処理をシーケンサが
自律的、並列的に実行でき、メインCPU部1はそれら
の管理オーバヘッドを一切必要としない。
【0062】(E5) フェッチインターバルレジスタ
53及びフェッチインターバルカウンタ54を設けるこ
とにより、ターゲットデータのフェッチが常に等個数の
非ターゲットデータのフェッチに挟まれて存在する場
合、ターゲットデータのみに必要な演算処理を加えるこ
とが可能となる。これにより、リストに基づくデータ処
理等、メインCPU部1が1度ターゲットデータの存在
するポイントアドレスデータをフェッチした後、そのア
ドレスに基づいて間接的にターゲットアドレスをフェッ
チする場合でもベクトル処理を実行する事が出来る。そ
の場合、メインCPU部1でのポインタアドレスのフェ
ッチやターゲットアドレスの計算等を演算実行ユニット
6での演算処理と並列に行うことが出来る。
【0063】(E6) メインCPU部1のアドレスバ
ス及びデータバスを用いて、数値演算処理部2への命令
の投入及びランダムベクトルデータ(RVD)の送受信
が可能であり、特別なコマンドラインやデータラインを
必要としない。従って、プロセッサ機能の拡張が低コス
トで、低スペースで自由自在に可能であるばかりか、メ
インCPU部1のアーキテクチャにほとんど依存するこ
となく高性能な中央数値演算処理部を構成することが可
能になる。また、本発明の数値演算処理部と同じアーキ
テクチャで構成された別の機能を有するプロセッサを同
様の方法で付加していくことにより、目的に合った機能
の追加も可能になる。
【発明の効果】上記の詳細な説明からも明かな様に、本
発明によれば、主CPU部がランダムなアドレス順での
データ転送処理を、シーケンサ部が主CPU部のデータ
アクセス動作に応答した演算命令の指令処理を、そし
て、演算実行ユニットが演算実行処理を、並列に実行す
るように構成したことにより、高い統合処理能力が得ら
れ、スカラ処理系並みのリアルタイム性と汎用性を保ち
ながら、高速でベクトル処理を行うことの可能なベクト
ル演算処理機能を有する中央数値処理装置及びこれを利
用したベクトル処理を提供することが可能になる。
【図面の簡単な説明】
【図1】本発明の一実施例になるベクトル演算処理機能
を有する中央数値処理装置の全体構成を示す回路図。
【図2】上記中央数値演算処理装置により実行するベク
トル演算処理のためのフォーマットを示す図。
【図3】上記ベクトル演算処理用フォーマットにけるビ
ットペアと有効データとの関係を示す図である。
【図4】上記中央数値演算処理装置によるベクトル演算
処理動作を説明するための各部信号波形を示す図。
【図5】上記ランダムベクトル処理の処理タイミングを
説明するシーケンス図。
【図6】ランダムベクトルストアの処理シーケンスを説
明するためのタイムチャート図。
【符号の説明】
100 中央数値処理装置 1 メインCPU部 2 数値演算処理部 3 主メモリシステム 4 データバッファ 5 シーケンサ 6 演算実行ユニット 7 スタックレジスタファイル 8 レディ制御ユニット 51 シーケンスコントローラ 52 ベクトル長カウンタ 53 フェッチインターバルレジスタ 54 フェッチインターバルカウンタ L1〜L2、L7、L8 バスライン L3〜L6 コントロールライン
フロントページの続き (56)参考文献 特開 平2−207374(JP,A) 特開 平3−184127(JP,A) 特開 平2−292668(JP,A) 特開 平2−176850(JP,A) 特開 平2−176846(JP,A) 特開 平2−50259(JP,A) 国際公開89/21(WO,A1) (58)調査した分野(Int.Cl.7,DB名) G06F 17/10 G06F 9/38 310 G06F 9/38 370 JICSTファイル(JOIS)

Claims (14)

    (57)【特許請求の範囲】
  1. 【請求項1】 データを保持する機能を有するリソース
    部と、主CPU部と、前記リソース部から読み取られた
    データに対して演算処理を実行する機能を有する数値演
    算処理部と、前記リソース部と前記主CPU部と前記数
    値演算処理部とを接続する接続手段とを備えた中央数値
    処理装置において、前記主CPU部は前記リソース部に
    アクセスして任意アドレス順にデータを読み出すランダ
    ムなデータアクセス機能と前記数値演算処理部にベクト
    ル長データと演算命令とを含むベクトル処理命令を与え
    る機能とを有し、かつ、前記数値演算処理部は、前記主
    CPU部にリソースから読み出されたデータの中の演算
    対象データに対して演算処理を実行する演算実行手段
    と、前記主CPU部のデータアクセスに応答して前記演
    算実行手段に対して演算処理すべき対象のデータ情報を
    含む演算命令を与えるシーケンサとを備えたことを特徴
    とするベクトル演算処理機能を有する中央数値処理装
    置。
  2. 【請求項2】 前記シーケンサは、さらに、前記ベクト
    ル処理命令の前記ベクトル長データをラッチするカウン
    タ手段と、前記ベクトル処理命令の前記演算命令をラッ
    チするラッチ手段と、前記主CPU部が前記リソース部
    からデータを読み取ったことを検出するモニタ手段とを
    備え、前記シーケンサは、前記モニター手段によりデー
    タの読み取りが検出された時、必要に応じて読み取られ
    たデータを前記演算実行手段に送るように構成されたこ
    とを特徴とする請求項1記載のベクトル演算処理機能を
    有する中央数値処理装置。
  3. 【請求項3】 前記カウンタ手段は前記演算実行手段が
    演算処理を実行する動作タイミングに応答してカウント
    処理を行い、そのカウンタ値が所定の値になった時にそ
    のタイミングに応答してベクトル処理を終了させること
    を特徴とするベクトル演算処理機能を有する請求項2記
    載の中央数値処理装置。
  4. 【請求項4】 前記演算実行手段は演算結果を格納する
    ためのレジスタファイルを備えていることを特徴とする
    請求項1記載のベクトル演算処理機能を有する中央数値
    処理装置。
  5. 【請求項5】 演算結果を格納するためのスタックレジ
    スタ手段を設け、前記シーケンサは前記ベクトル長カウ
    ンタ手段手段からの情報に基づいて演算結果を格納する
    格納レジスタを指定する機能を有することを特徴とする
    請求項1記載のベクトル演算処理機能を有する中央数値
    処理装置。
  6. 【請求項6】 前記シーケンサは、さらに、前記データ
    が演算すべきデータであるか否かを判断する判断手段を
    備え、演算すべきデータであれば、前記演算実行手段に
    そのデータの演算実行を指令する機能を有していること
    を特徴請求項1記載のとするベクトル演算処理機能を有
    する中央数値処理装置。
  7. 【請求項7】 前記判断手段は、フェッチインターバル
    カウンタ手段を有し、前記主CPU部が前記リソース部
    との間で予め規定された条件を満たすデータの読み出し
    又は書き込みサイクルを実行するタイミングで前記フェ
    ッチインターバルカウンタ手段の値を更新し、前記フェ
    ッチインターバルカウンタ手段の内容が予め定められた
    値に一致したことにより、前記データが演算すべきデー
    タであるか否かの判断を行うことを特徴とする請求項6
    記載のベクトル演算処理機能を有する中央数値処理装
    置。
  8. 【請求項8】 前記判断手段は、さらに、その判断情報
    をラッチするラッチ手段と、前記ラッチ手段からの判断
    情報をカウントするカウント手段とを備え、前記カウン
    ト手段によってカウントされた判断情報に基づいて、前
    記データが有効か否かを判断することを特徴とする請求
    項6記載のベクトル演算処理機能を有する中央数値処理
    装置。
  9. 【請求項9】 データを保持する機能を有するリソース
    部と、主CPU部と、前記リソース部から読み取られた
    データに基づいて演算処理を実行する演算実行部と演算
    命令を与えるシーケンサと演算情報の記憶手段とを含む
    数値演算処理部と、前記リソース部と前記主CPU部と
    前記数値演算処理部とを接続する接続手段とを備えた中
    央数値処理装置において、前記主CPU部を用いて前記
    リソース部に対して任意アドレス順にデータアクセスす
    る機能と前記数値演算処理部にベクトル長データと処理
    命令とを含むベクトル処理命令を与える機能とを備え、
    前記主PCU部のデータアクセスに応答して前記数値演
    算処理部の前記シーケンサを用いて、前記演算実行部に
    対して処理すべき対象のデータ情報を含む命令を与える
    機能とを有し、前記記憶手段の情報を用いて命令された
    処理を実行することを特徴とするベクトル演算処理方
    法。
  10. 【請求項10】 前記シーケンサは、前記ベクトル処理
    命令の前記ベクトル長データ及び前記演算命令をラッチ
    し、前記主CPU部が前記リソース部から処理に用いる
    データを読み取ったことを検出した時、読み取られたデ
    ータを前記演算実行手段に送ることを特徴とする請求項
    9記載のベクトル演算処理方法。
  11. 【請求項11】 前記シーケンサはベクトル長のカウン
    タ部を備え、前記演算実行部が演算処理を実行する動作
    タイミングに応答してカウント処理を行い、そのカウン
    タ値が所定の値になった時にそのタイミングに応答して
    ベクトル処理を終了させることを特徴とする請求項9記
    載のベクトル演算処理方法。
  12. 【請求項12】 前記シーケンサは、さらに、前記ベク
    トル長カウンタ部のカウント情報に基づいて演算結果を
    格納する格納レジスタを指定することを特徴とする請求
    項9記載のベクトル演算処理方法。
  13. 【請求項13】 前記シーケンサは、さらに、前記デー
    タが演算すべきデータであるか否かを判断し、演算すべ
    きデータであれば、前記演算実行部にそのデータの演算
    実行を指令することを特徴とする請求項9記載のベクト
    ル演算処理方法。
  14. 【請求項14】 前記主CPU部はベクトルデータスト
    ア命令を前記数値演算処理部に与える機能と、前記ベク
    トルデータストア命令に対応して前記数値演算処理部が
    生成したデータをランダムなアドレス順で前記リソース
    へ書き込むデータアクセス機能とを有し、前記数値演算
    処理部は前記ベクトルデータストア命令を受信した後、
    前記主CPUのデータアクセスに応答して前記演算実行
    部によって演算された結果データ又は前記記憶手段のデ
    ータを前記リソース部と数値演算処理部との接続手段に
    対し生成してリソース部へ与え、前記主CPU部のデー
    タアクセス機能よりリソース部へ書き込んでいくことを
    特徴とする請求項9記載のベクトル演算処理方法。
JP26107891A 1991-09-12 1991-09-12 ベクトル演算処理機能を有する中央数値処理装置及びベクトル演算処理方法 Expired - Fee Related JP3182177B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP26107891A JP3182177B2 (ja) 1991-09-12 1991-09-12 ベクトル演算処理機能を有する中央数値処理装置及びベクトル演算処理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP26107891A JP3182177B2 (ja) 1991-09-12 1991-09-12 ベクトル演算処理機能を有する中央数値処理装置及びベクトル演算処理方法

Publications (2)

Publication Number Publication Date
JPH0573606A JPH0573606A (ja) 1993-03-26
JP3182177B2 true JP3182177B2 (ja) 2001-07-03

Family

ID=17356776

Family Applications (1)

Application Number Title Priority Date Filing Date
JP26107891A Expired - Fee Related JP3182177B2 (ja) 1991-09-12 1991-09-12 ベクトル演算処理機能を有する中央数値処理装置及びベクトル演算処理方法

Country Status (1)

Country Link
JP (1) JP3182177B2 (ja)

Also Published As

Publication number Publication date
JPH0573606A (ja) 1993-03-26

Similar Documents

Publication Publication Date Title
US5513366A (en) Method and system for dynamically reconfiguring a register file in a vector processor
US5499349A (en) Pipelined processor with fork, join, and start instructions using tokens to indicate the next instruction for each of multiple threads of execution
US5758176A (en) Method and system for providing a single-instruction, multiple-data execution unit for performing single-instruction, multiple-data operations within a superscalar data processing system
US6807614B2 (en) Method and apparatus for using smart memories in computing
US6088783A (en) DPS having a plurality of like processors controlled in parallel by an instruction word, and a control processor also controlled by the instruction word
US5887183A (en) Method and system in a data processing system for loading and storing vectors in a plurality of modes
JP2503164B2 (ja) デ―タ処理システム
US7707393B2 (en) Microprocessor with high speed memory integrated in load/store unit to efficiently perform scatter and gather operations
US7418575B2 (en) Long instruction word processing with instruction extensions
US20020069375A1 (en) System, method, and article of manufacture for data transfer across clock domains
WO1994003860A1 (en) Massively parallel computer including auxiliary vector processor
US8046568B2 (en) Microprocessor with integrated high speed memory
JPH11154144A (ja) プロセッサをコプロセッサにインタフェースするための方法および装置
US4819155A (en) Apparatus for reading to and writing from memory streams of data while concurrently executing a plurality of data processing operations
JPH05143443A (ja) データ処理装置
JP2008181551A (ja) ベクトルレジスタを備えたコンピュータにおけるベクトルテールゲーティング
JPH04336378A (ja) 情報処理装置
KR100210205B1 (ko) 스톨캐쉬를 제공하기 위한 장치 및 방법
US6785743B1 (en) Template data transfer coprocessor
JPH10222367A (ja) ネスト可能な遅延分岐命令を有するマイクロプロセッサを備えたデータ処理装置及びそのマイクロプロセッサを動作させる方法
JPH096614A (ja) データ処理装置
JP3182177B2 (ja) ベクトル演算処理機能を有する中央数値処理装置及びベクトル演算処理方法
JP4384828B2 (ja) コプロセッサ装置およびデータ転送を容易にするための方法
US20030009652A1 (en) Data processing system and control method
JP2668987B2 (ja) データ処理装置

Legal Events

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