JPH096614A - データ処理装置 - Google Patents
データ処理装置Info
- Publication number
- JPH096614A JPH096614A JP7154695A JP15469595A JPH096614A JP H096614 A JPH096614 A JP H096614A JP 7154695 A JP7154695 A JP 7154695A JP 15469595 A JP15469595 A JP 15469595A JP H096614 A JPH096614 A JP H096614A
- Authority
- JP
- Japan
- Prior art keywords
- data
- arithmetic
- register
- instruction
- data processing
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 230000015654 memory Effects 0.000 claims abstract description 42
- 238000004364 calculation method Methods 0.000 claims description 35
- 230000004913 activation Effects 0.000 claims description 8
- 230000003213 activating effect Effects 0.000 claims description 2
- 238000010586 diagram Methods 0.000 description 23
- 235000019800 disodium phosphate Nutrition 0.000 description 14
- 238000000034 method Methods 0.000 description 12
- 230000008569 process Effects 0.000 description 7
- 230000004044 response Effects 0.000 description 4
- 230000006870 function Effects 0.000 description 3
- 230000006872 improvement Effects 0.000 description 3
- 101001075561 Homo sapiens Rho GTPase-activating protein 32 Proteins 0.000 description 2
- 102100020900 Rho GTPase-activating protein 32 Human genes 0.000 description 2
- 238000003491 array Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 230000006866 deterioration Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000000090 raster image correlation spectroscopy Methods 0.000 description 2
- 102100026693 FAS-associated death domain protein Human genes 0.000 description 1
- 101000911074 Homo sapiens FAS-associated death domain protein Proteins 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/3001—Arithmetic instructions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/3004—Arrangements for executing specific machine instructions to perform operations on memory
- G06F9/30043—LOAD or STORE instructions; Clear instruction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Advance Control (AREA)
- Executing Machine-Instructions (AREA)
Abstract
(57)【要約】
【目的】 性能向上とプログラムサイズの縮小。
【構成】 命令フェッチ部2がメモリ1から命令とデー
タを読み込み、命令デコード部3で解読する。レジスタ
群4の入力用レジスタへのデータ転送命令によって第2
演算部7の演算が起動され、演算結果は出力用レジスタ
に格納される。入力用または出力用レジスタに未処理の
データが残っていれば、後続のデータ処理を停止する。
入力用、出力用レジスタセット、演算器を複数設け、処
理に応じて択する。データ転送命令で所期の演算が実行
されるため、処理の高速化、プログラムの簡素化が可能
となる。特別な演算命令の追加が不要のため、拡張性も
高い。
タを読み込み、命令デコード部3で解読する。レジスタ
群4の入力用レジスタへのデータ転送命令によって第2
演算部7の演算が起動され、演算結果は出力用レジスタ
に格納される。入力用または出力用レジスタに未処理の
データが残っていれば、後続のデータ処理を停止する。
入力用、出力用レジスタセット、演算器を複数設け、処
理に応じて択する。データ転送命令で所期の演算が実行
されるため、処理の高速化、プログラムの簡素化が可能
となる。特別な演算命令の追加が不要のため、拡張性も
高い。
Description
【0001】
【産業上の利用分野】本発明は、各種命令を実行してデ
ータ処理を行うデータ処理装置に関する。
ータ処理を行うデータ処理装置に関する。
【0002】
【従来の技術】マイクロプロセッサを代表とするデータ
処理装置として、メモリに格納された命令を順次フェッ
チ、デコードして実行する制御駆動型の装置が数多く存
在する。
処理装置として、メモリに格納された命令を順次フェッ
チ、デコードして実行する制御駆動型の装置が数多く存
在する。
【0003】図1はRISC(reduced instruction se
t computer)方式のプロセッサの構成図である。このプ
ロセッサは、メモリ1、命令フェッチ部2、命令デコー
ド部3、レジスタ群4、演算部5、データアクセス部6
を持つ。この構成において、メモリ1から順次フェッチ
される演算命令、データ転送(ロード/ストア)命令な
どがデコードされ、演算部5において、命令コードで指
示される演算が実施される。
t computer)方式のプロセッサの構成図である。このプ
ロセッサは、メモリ1、命令フェッチ部2、命令デコー
ド部3、レジスタ群4、演算部5、データアクセス部6
を持つ。この構成において、メモリ1から順次フェッチ
される演算命令、データ転送(ロード/ストア)命令な
どがデコードされ、演算部5において、命令コードで指
示される演算が実施される。
【0004】従来、図1の演算部5の中に、加算、減
算、論理和、論理積などの演算を実行する基本的な算術
論理演算部(ALU)と別に、例えば乗算を高速に実行
するための乗算器を並列的に備えるものが存在した。ま
た、整数演算用のALUと浮動小数点演算用のALUが
並設されたものもあった。演算部5を構成する各種演算
器を利用してデータ処理を行う場合、演算器による演算
処理に対応する演算命令を設け、これをプログラム中に
記述してプロセッサに読み込む方法が一般的だった。す
なわち、例えばADD(整数加算)、SUB(整数減
算)、AND(論理和)、OR(論理積)などの基本的
な演算命令に加え、MUL(乗算)、DIV(除算)、
MAC(積和演算)、FADD(浮動小数点加算)、F
SUB(浮動小数点減算)などの拡張された演算命令を
設け、これらの演算命令をプログラム中に記述して実行
させるのである。
算、論理和、論理積などの演算を実行する基本的な算術
論理演算部(ALU)と別に、例えば乗算を高速に実行
するための乗算器を並列的に備えるものが存在した。ま
た、整数演算用のALUと浮動小数点演算用のALUが
並設されたものもあった。演算部5を構成する各種演算
器を利用してデータ処理を行う場合、演算器による演算
処理に対応する演算命令を設け、これをプログラム中に
記述してプロセッサに読み込む方法が一般的だった。す
なわち、例えばADD(整数加算)、SUB(整数減
算)、AND(論理和)、OR(論理積)などの基本的
な演算命令に加え、MUL(乗算)、DIV(除算)、
MAC(積和演算)、FADD(浮動小数点加算)、F
SUB(浮動小数点減算)などの拡張された演算命令を
設け、これらの演算命令をプログラム中に記述して実行
させるのである。
【0005】しかしこうしたプロセッサでは、演算に必
要なデータを演算用データ記憶箇所(例えばレジスタ)
に準備する命令と、実際に演算を起動・実行する命令の
双方を実行しなければ、所定の演算処理を遂行すること
ができなかった。例えばRISCプロセッサによってメ
モリに格納されたオペランドデータに対する繰り返し乗
算を行うとき、下記のプログラムが考えられるが、ここ
では2つのレジスタ(R2、R3)にデータを転送する
2つのロード命令および乗算命令が必須であり、1回の
乗算に最低3命令の実行が必要であった。
要なデータを演算用データ記憶箇所(例えばレジスタ)
に準備する命令と、実際に演算を起動・実行する命令の
双方を実行しなければ、所定の演算処理を遂行すること
ができなかった。例えばRISCプロセッサによってメ
モリに格納されたオペランドデータに対する繰り返し乗
算を行うとき、下記のプログラムが考えられるが、ここ
では2つのレジスタ(R2、R3)にデータを転送する
2つのロード命令および乗算命令が必須であり、1回の
乗算に最低3命令の実行が必要であった。
【0006】 LD R2,(R0) (R2 ← mem(R0)) LD R3,(R1) (R3 ← mem(R1)) MUL R2, R3 (R2 ← R2×R3) この結果、以下の課題があった。
【0007】[課題1]処理性能の限界 仮に、1命令サイクルで演算を実行する高速の演算器を
搭載しても、全体の処理レートとしては、3命令サイク
ルでようやく1回の演算にとどまる。これが性能向上の
足かせとなる。
搭載しても、全体の処理レートとしては、3命令サイク
ルでようやく1回の演算にとどまる。これが性能向上の
足かせとなる。
【0008】[課題2]プログラムサイズの増大 演算処理に必要な命令数が多いため、プログラムサイズ
全体が大きくなる。
全体が大きくなる。
【0009】[課題3]命令コードの長大化 演算処理を新規に追加するとき、命令コード中に処理内
容を示す演算コードを追加して割り当てる必要があるた
め、処理機能の拡充が命令コード長の長大化に直結す
る。この結果、課題2が顕著になり、プロセッサのハー
ドウェア規模も大きくなる。
容を示す演算コードを追加して割り当てる必要があるた
め、処理機能の拡充が命令コード長の長大化に直結す
る。この結果、課題2が顕著になり、プロセッサのハー
ドウェア規模も大きくなる。
【0010】[課題4]命令のコンパクト設計の困難性 基本演算以外の演算処理も将来的に追加、拡張されうる
ため、予め仕様に組み込む必要がある。このため、多く
の演算コードの割当てによって命令コード長のコンパク
トな設計が困難となる。
ため、予め仕様に組み込む必要がある。このため、多く
の演算コードの割当てによって命令コード長のコンパク
トな設計が困難となる。
【0011】[課題5]拡張性を考慮したプロセッサ設
計の困難性 長期的な演算処理の追加・拡張をすべて考慮した設計自
体極めて困難であり、追加等は自ずと限定される。柔軟
かつ拡張性を保持したプロセッサの設計は非常に困難で
ある。
計の困難性 長期的な演算処理の追加・拡張をすべて考慮した設計自
体極めて困難であり、追加等は自ずと限定される。柔軟
かつ拡張性を保持したプロセッサの設計は非常に困難で
ある。
【0012】これらの課題を一部解決する技術として、
日本電気(株)のDSPであるμPD77240(商
標)を挙げることができる。「ユーザーズ・マニュアル
μPD77240」(1991年9月版)の66ペー
ジの記載によれば、このDSPの特徴は以下の通りであ
る。
日本電気(株)のDSPであるμPD77240(商
標)を挙げることができる。「ユーザーズ・マニュアル
μPD77240」(1991年9月版)の66ペー
ジの記載によれば、このDSPの特徴は以下の通りであ
る。
【0013】(1)通常のALUの他に浮動小数点乗算
専用の回路(FMPY)を持つ。前者は明示的な演算命
令(ADD、SUBなど)によって演算を起動し、後者
はデータ転送命令によって、転送されたデータに対する
演算を自動的に起動する。
専用の回路(FMPY)を持つ。前者は明示的な演算命
令(ADD、SUBなど)によって演算を起動し、後者
はデータ転送命令によって、転送されたデータに対する
演算を自動的に起動する。
【0014】(2)FMPYでは、乗算入力用レジスタ
K、Lの2つのレジスタに転送されるデータが命令サイ
クルごとに掛け合わされ、乗算結果が1命令サイクル後
にFMPYの出力バスに出力され、2命令サイクル後に
乗算出力用レジスタMに書き込まれる。
K、Lの2つのレジスタに転送されるデータが命令サイ
クルごとに掛け合わされ、乗算結果が1命令サイクル後
にFMPYの出力バスに出力され、2命令サイクル後に
乗算出力用レジスタMに書き込まれる。
【0015】この結果、データ転送命令のみの記述によ
って乗算起動が可能となり、上記課題1及び2にある程
度の解決を与えるものである。
って乗算起動が可能となり、上記課題1及び2にある程
度の解決を与えるものである。
【0016】
【発明が解決しようとする課題】しかしこのDSPで
も、以下の問題が残る。
も、以下の問題が残る。
【0017】1.課題1、2について 図2はこのDSPの特定命令のフィールド構成図であ
る。この構成は上記マニュアルの14ページに掲載され
る「オペレーション命令」と総称される命令のフィール
ド構成で、その概要は以下通りである。
る。この構成は上記マニュアルの14ページに掲載され
る「オペレーション命令」と総称される命令のフィール
ド構成で、その概要は以下通りである。
【0018】1.命令コード長は32ビットである 2.OPは演算処理の種類を示す 3.CNTはDSPの内部状態の変更指示、例えばアド
レスレジスタのインクリメント等を行う 4.Q、Pはそれぞれ第1、第2オペランドを表す 5.SRC、DSTはそれぞれ転送命令の転送元、転送
先を示す すなわち、原則として32ビット固定の命令の中に、演
算、転送、内部状態指示という、性質の異なる命令(以
下「個別命令」という)が3つ並記される(同図下を参
照)。これは、DSPの多くがマイクロプログラム制御
計算機のアーキテクチャを踏襲するためであり、結果的
に、ある程度命令コード長が長くなることと引き換え
に、合計ステップ数を削減する効果を持つ。この際、各
個別命令の記述に必要なビット数の多寡をうまく組み合
わせることによって、これらを32ビットに収めるた
め、このアーキテクチャは課題1、2を解決する方向に
ある。
レスレジスタのインクリメント等を行う 4.Q、Pはそれぞれ第1、第2オペランドを表す 5.SRC、DSTはそれぞれ転送命令の転送元、転送
先を示す すなわち、原則として32ビット固定の命令の中に、演
算、転送、内部状態指示という、性質の異なる命令(以
下「個別命令」という)が3つ並記される(同図下を参
照)。これは、DSPの多くがマイクロプログラム制御
計算機のアーキテクチャを踏襲するためであり、結果的
に、ある程度命令コード長が長くなることと引き換え
に、合計ステップ数を削減する効果を持つ。この際、各
個別命令の記述に必要なビット数の多寡をうまく組み合
わせることによって、これらを32ビットに収めるた
め、このアーキテクチャは課題1、2を解決する方向に
ある。
【0019】しかし、現実のプログラミングを考える
と、この技術による改善効果はさして大きくない。すな
わち、効率の最大化を図る場合、常に3つの並記可能な
個別命令をセットにする必要がある一方、実際にはそう
した配列が不可能だからである。例えば、転送命令のみ
を数回続けなければならない場合、実質的に上記SR
C、DSTのフィールドのみ(計10ビット)を記述す
るために、毎回32ビットの命令コードが必要となり、
この間メモリの使用効率は約1/3となる。この結果、
再度課題1、2が問題として現れる。
と、この技術による改善効果はさして大きくない。すな
わち、効率の最大化を図る場合、常に3つの並記可能な
個別命令をセットにする必要がある一方、実際にはそう
した配列が不可能だからである。例えば、転送命令のみ
を数回続けなければならない場合、実質的に上記SR
C、DSTのフィールドのみ(計10ビット)を記述す
るために、毎回32ビットの命令コードが必要となり、
この間メモリの使用効率は約1/3となる。この結果、
再度課題1、2が問題として現れる。
【0020】2.課題3〜5について このDSPでは、FMPYによる演算が乗算に限られて
いる。しかし将来別の演算が追加される場合、なんらか
の方法で、複数の演算から所期の演算を選択する必要が
生じる。図2の構成を採る限り、こうした選択はOPに
新たな個別命令を追加することによって行われるが、こ
うした対処は、データ転送に関する個別命令のみによっ
て乗算が実行されるというFMPYの設計思想に沿わな
いだけでなく、課題3〜5に直結するおそれがある。も
ともと、このDSPはこれらの課題を念頭において設計
されたものではない点に注意すべきである。
いる。しかし将来別の演算が追加される場合、なんらか
の方法で、複数の演算から所期の演算を選択する必要が
生じる。図2の構成を採る限り、こうした選択はOPに
新たな個別命令を追加することによって行われるが、こ
うした対処は、データ転送に関する個別命令のみによっ
て乗算が実行されるというFMPYの設計思想に沿わな
いだけでなく、課題3〜5に直結するおそれがある。も
ともと、このDSPはこれらの課題を念頭において設計
されたものではない点に注意すべきである。
【0021】以上が課題1〜5とDSPの関係である。
なお、本発明の主用途であるRICSプロセッサを考え
た場合、このDSPにはさらに次の課題が考えられる。
なお、本発明の主用途であるRICSプロセッサを考え
た場合、このDSPにはさらに次の課題が考えられる。
【0022】[課題6]プログラミングの困難性 FMPYによれば、常時K、Lレジスタに対する乗算が
行われており、2サイクル前の計算結果がMレジスタに
現れる。計算結果は参照の有無に関係なく1サイクル毎
に更新されるため、アセンブリ言語を使用するプログラ
マは、Mレジスタから所望の計算結果を読み出す際、タ
イミングに細心の注意を払わねばならない。一方、高級
言語を使用する場合は、プラグラマの意図した読み出し
タイミングを実現するコンパイラの開発が極めて困難で
ある。
行われており、2サイクル前の計算結果がMレジスタに
現れる。計算結果は参照の有無に関係なく1サイクル毎
に更新されるため、アセンブリ言語を使用するプログラ
マは、Mレジスタから所望の計算結果を読み出す際、タ
イミングに細心の注意を払わねばならない。一方、高級
言語を使用する場合は、プラグラマの意図した読み出し
タイミングを実現するコンパイラの開発が極めて困難で
ある。
【0023】また、仮にタイミングの問題を解決したと
しても、計算結果の読み出し前に割込みが発生すれば別
の問題が発生する。割込み処理が終了するまでに、必要
な計算結果が失われうるためである。乗算前に割込み禁
止を設定する方法もあるが、(1)プログラムが複雑に
なり、(2)割込みの禁止許可はシステムレベルで判断
すべき問題であり、(3)FMPYの目的である即時性
が失われる、の諸点から現実的でない。
しても、計算結果の読み出し前に割込みが発生すれば別
の問題が発生する。割込み処理が終了するまでに、必要
な計算結果が失われうるためである。乗算前に割込み禁
止を設定する方法もあるが、(1)プログラムが複雑に
なり、(2)割込みの禁止許可はシステムレベルで判断
すべき問題であり、(3)FMPYの目的である即時性
が失われる、の諸点から現実的でない。
【0024】[課題7]アーキテクチャに起因する制限 このDSPでは、K、L、Mレジスタセットを1つしか
持たず、これとFMPYが組として設けられているた
め、仮に新たな演算(例えば加算)を追加する場合、そ
れに応じて別のレジスタセット(例えばK2 、L2 、M
2 )を追加しなければならない。RICSプロセッサで
は、画像処理やCGなどの科学技術計算を実施するため
に、加減乗除、三角関数等各種演算が必要であり、演算
ごとに32ビットレジスタのセットを増設していくとす
ればハードウエアの大規模化を招く。
持たず、これとFMPYが組として設けられているた
め、仮に新たな演算(例えば加算)を追加する場合、そ
れに応じて別のレジスタセット(例えばK2 、L2 、M
2 )を追加しなければならない。RICSプロセッサで
は、画像処理やCGなどの科学技術計算を実施するため
に、加減乗除、三角関数等各種演算が必要であり、演算
ごとに32ビットレジスタのセットを増設していくとす
ればハードウエアの大規模化を招く。
【0025】[課題8]ハードウエアの規模 このDSPでは、K、Lレジスタに同時にデータを転送
することによって高速化を図っている。このため、これ
らのレジスタの入り口に二重構造の32ビットデータバ
スを採用する。従ってこの部分のハードウエアが複雑で
あり、回路規模も大きい。コンパクト設計、製品コスト
の観点からは改善することが望ましい。
することによって高速化を図っている。このため、これ
らのレジスタの入り口に二重構造の32ビットデータバ
スを採用する。従ってこの部分のハードウエアが複雑で
あり、回路規模も大きい。コンパクト設計、製品コスト
の観点からは改善することが望ましい。
【0026】本発明の目的 本発明の目的は、従来一般的に問題となった課題1〜5
のみならず、上記したDSPの課題6〜8をも解決する
データ処理装置を提供することにある。
のみならず、上記したDSPの課題6〜8をも解決する
データ処理装置を提供することにある。
【0027】
【課題を解決するための手段】本発明のデータ処理装置
は、演算命令の実行によって所定の演算処理を起動する
第1演算手段と、所定の入力用レジスタ及び出力用レジ
スタを含み、データ転送命令によるアクセスが可能な複
数のレジスタと、データ転送命令の実行によって前記入
力用レジスタに対するデータ転送が行われたことを契機
としてそのデータに対する所定の演算処理を起動し、そ
の演算結果データを前記出力用レジスタに書き込む第2
演算手段と、前記演算結果データの読み出しが行われる
まで、前記出力用レジスタに対する後続の演算結果デー
タの書き込みを待たせる書込停止手段とを備える。
は、演算命令の実行によって所定の演算処理を起動する
第1演算手段と、所定の入力用レジスタ及び出力用レジ
スタを含み、データ転送命令によるアクセスが可能な複
数のレジスタと、データ転送命令の実行によって前記入
力用レジスタに対するデータ転送が行われたことを契機
としてそのデータに対する所定の演算処理を起動し、そ
の演算結果データを前記出力用レジスタに書き込む第2
演算手段と、前記演算結果データの読み出しが行われる
まで、前記出力用レジスタに対する後続の演算結果デー
タの書き込みを待たせる書込停止手段とを備える。
【0028】本発明は、命令の実行が前記演算結果デー
タの読み出しを伴うとき、所望の演算結果データが前記
出力用レジスタに書き込まれるまで読み出しを待たせる
読出停止手段を含む。
タの読み出しを伴うとき、所望の演算結果データが前記
出力用レジスタに書き込まれるまで読み出しを待たせる
読出停止手段を含む。
【0029】本発明は、前記書込停止手段によって書き
込みが待たされているときに、前記入力用レジスタに対
するデータ転送が行われた場合、前記第2演算手段によ
る演算処理の起動を待たせる演算停止手段を含む。
込みが待たされているときに、前記入力用レジスタに対
するデータ転送が行われた場合、前記第2演算手段によ
る演算処理の起動を待たせる演算停止手段を含む。
【0030】本発明は、前記入力用レジスタに有効なデ
ータが保持されているとき、後続のデータ転送命令の実
行による該レジスタへのデータ転送を待たせる転送停止
手段を含む。
ータが保持されているとき、後続のデータ転送命令の実
行による該レジスタへのデータ転送を待たせる転送停止
手段を含む。
【0031】本発明は、前記入力用レジスタ及び出力用
レジスタの組合せによる複数のレジスタセットを備え、
さらにこれら複数のレジスタセットから演算処理を行う
べきレジスタセットを指定する指定手段を有する。
レジスタの組合せによる複数のレジスタセットを備え、
さらにこれら複数のレジスタセットから演算処理を行う
べきレジスタセットを指定する指定手段を有する。
【0032】前記第2演算手段は、それぞれが異なる演
算を行う複数の演算器を有し、本発明の装置は、これら
複数の演算器のうちデータ転送が行われたとき実際に演
算処理を起動すべきものを指定する指定手段を有する。
算を行う複数の演算器を有し、本発明の装置は、これら
複数の演算器のうちデータ転送が行われたとき実際に演
算処理を起動すべきものを指定する指定手段を有する。
【0033】前記指定手段は、前記入力用レジスタおよ
び出力用レジスタとは別に設けられた制御レジスタであ
る。
び出力用レジスタとは別に設けられた制御レジスタであ
る。
【0034】前記第2演算手段は、それぞれが異なる演
算を行う複数の演算器を有し、本発明の装置は、前記複
数の演算器のうち1つの演算器の演算結果データを別の
演算器へ入力する手段と、前記出力用レジスタに書き込
まれたデータを前記別の演算器に入力する手段と、前記
別の演算器の演算結果データを前記出力用レジスタに再
帰的に入力する手段とを有する。
算を行う複数の演算器を有し、本発明の装置は、前記複
数の演算器のうち1つの演算器の演算結果データを別の
演算器へ入力する手段と、前記出力用レジスタに書き込
まれたデータを前記別の演算器に入力する手段と、前記
別の演算器の演算結果データを前記出力用レジスタに再
帰的に入力する手段とを有する。
【0035】本発明は、前記入力用レジスタを複数備
え、これらの入力用レジスタに対して順次データ転送が
なされるとき、1回の演算処理に必要な複数のデータが
入力用レジスタに揃うタイミングを検出する検出手段
と、これらのデータが揃うまで、前記第2演算手段によ
る演算処理の起動を待たせる演算停止手段を含む。
え、これらの入力用レジスタに対して順次データ転送が
なされるとき、1回の演算処理に必要な複数のデータが
入力用レジスタに揃うタイミングを検出する検出手段
と、これらのデータが揃うまで、前記第2演算手段によ
る演算処理の起動を待たせる演算停止手段を含む。
【0036】本発明は、前記入力用レジスタと前記第2
演算手段との間に介挿され、前記入力用レジスタに転送
されたデータを順次記憶するFIFOメモリと、前記F
IFOメモリからのデータ読み出しを制御する制御手段
とを有する。
演算手段との間に介挿され、前記入力用レジスタに転送
されたデータを順次記憶するFIFOメモリと、前記F
IFOメモリからのデータ読み出しを制御する制御手段
とを有する。
【0037】
【作用】本発明のデータ処理装置によれば、第1演算手
段において演算命令の実行により、所定の演算処理が起
動される。一方、データ転送命令の実行によって入力用
レジスタに対するデータ転送が行われたとき、第2演算
手段においてそのデータに対する所定の演算処理が起動
され、その演算結果データが出力用レジスタに書き込ま
れる。この際、演算結果データの読み出しが行われるま
で、出力用レジスタに対する後続の演算結果データの書
き込みが待たされる。
段において演算命令の実行により、所定の演算処理が起
動される。一方、データ転送命令の実行によって入力用
レジスタに対するデータ転送が行われたとき、第2演算
手段においてそのデータに対する所定の演算処理が起動
され、その演算結果データが出力用レジスタに書き込ま
れる。この際、演算結果データの読み出しが行われるま
で、出力用レジスタに対する後続の演算結果データの書
き込みが待たされる。
【0038】別の態様では、命令の実行が前記演算結果
データの読み出しを伴うとき、所望の演算結果データが
前記出力用レジスタに書き込まれるまで読み出しが待た
される。
データの読み出しを伴うとき、所望の演算結果データが
前記出力用レジスタに書き込まれるまで読み出しが待た
される。
【0039】また別の態様では、前記書き込みが待たさ
れているときに、前記入力用レジスタに対するデータ転
送が行われた場合、前記第2演算手段による演算処理の
起動が待たされる。
れているときに、前記入力用レジスタに対するデータ転
送が行われた場合、前記第2演算手段による演算処理の
起動が待たされる。
【0040】さらに別の態様では、前記入力用レジスタ
に有効なデータが保持されているとき、後続のデータ転
送命令の実行による該レジスタへのデータ転送が待たさ
れる。
に有効なデータが保持されているとき、後続のデータ転
送命令の実行による該レジスタへのデータ転送が待たさ
れる。
【0041】前記入力用レジスタ及び出力用レジスタの
組合せによるレジスタセットが複数存在する場合は、こ
れら複数のレジスタセットから演算処理を行うべきレジ
スタセットが指定される。
組合せによるレジスタセットが複数存在する場合は、こ
れら複数のレジスタセットから演算処理を行うべきレジ
スタセットが指定される。
【0042】前記第2演算手段がそれぞれ異なる演算を
行う複数の演算器を有する場合は、これら複数の演算器
のうちデータ転送が行われたとき実際に演算処理を起動
すべきものが指定される。
行う複数の演算器を有する場合は、これら複数の演算器
のうちデータ転送が行われたとき実際に演算処理を起動
すべきものが指定される。
【0043】この指定は、前記入力用レジスタおよび出
力用レジスタとは別に設けられた制御レジスタによって
行われる。
力用レジスタとは別に設けられた制御レジスタによって
行われる。
【0044】この場合、別の態様によれば、前記複数の
演算器のうち1つの演算器の演算結果データが別の演算
器へ入力され、前記出力用レジスタに書き込まれたデー
タが前記別の演算器に入力され、前記別の演算器の演算
結果データが前記出力用レジスタに再帰的に入力され
る。
演算器のうち1つの演算器の演算結果データが別の演算
器へ入力され、前記出力用レジスタに書き込まれたデー
タが前記別の演算器に入力され、前記別の演算器の演算
結果データが前記出力用レジスタに再帰的に入力され
る。
【0045】前記入力用レジスタが複数存在する場合、
これらの入力用レジスタに対して順次データ転送がなさ
れるとき、1回の演算処理に必要な複数のデータが入力
用レジスタに揃うまで、前記第2演算手段による演算処
理の起動が待たされる。
これらの入力用レジスタに対して順次データ転送がなさ
れるとき、1回の演算処理に必要な複数のデータが入力
用レジスタに揃うまで、前記第2演算手段による演算処
理の起動が待たされる。
【0046】前記入力用レジスタと前記第2演算手段と
の間にFIFOメモリが介挿される場合は、このメモリ
が前記入力用レジスタに転送されたデータを順次記憶す
る。記憶されたデータは、必要なタイミングで順次読み
出される。
の間にFIFOメモリが介挿される場合は、このメモリ
が前記入力用レジスタに転送されたデータを順次記憶す
る。記憶されたデータは、必要なタイミングで順次読み
出される。
【0047】より具体的には、演算処理に必要な複数の
データが前記FIFOに揃ったとき前記FIFOメモリ
からデータの読み出しが行われ、前記FIFOメモリか
らデータが読み出されたとき、前記第2演算手段による
演算処理の起動が許可される。
データが前記FIFOに揃ったとき前記FIFOメモリ
からデータの読み出しが行われ、前記FIFOメモリか
らデータが読み出されたとき、前記第2演算手段による
演算処理の起動が許可される。
【0048】
【実施例】以下、本発明の好適な実施例を適宜図面を参
照しながら説明する。
照しながら説明する。
【0049】実施例1.本発明のデータ処理装置では、
図1同様の演算部における演算が演算命令によって起動
される一方、新たな演算部(以下、第2演算部という)
における演算処理が特定のレジスタに対するデータ転送
命令のみによって起動される。
図1同様の演算部における演算が演算命令によって起動
される一方、新たな演算部(以下、第2演算部という)
における演算処理が特定のレジスタに対するデータ転送
命令のみによって起動される。
【0050】図3は本実施例に係るデータ処理装置の全
体構成図である。
体構成図である。
【0051】同図において、メモリ1には命令およびデ
ータが格納される。命令は命令バス1A、データはデー
タバス1Bを介してアクセスされる。命令フェッチ部2
はメモリ1からデータ転送命令や演算命令などの命令を
順次フェッチし、信号線2Aを介してこれを命令デコー
ド部3に渡す。
ータが格納される。命令は命令バス1A、データはデー
タバス1Bを介してアクセスされる。命令フェッチ部2
はメモリ1からデータ転送命令や演算命令などの命令を
順次フェッチし、信号線2Aを介してこれを命令デコー
ド部3に渡す。
【0052】命令デコード部3では命令の種類に従って
命令コードを所定のフィールドに分割し、処理すべき演
算の種類を示すオペレーション、命令コード内に埋め込
まれたオペランドである即値オペランド、ソースレジス
タ番号、ディスティネーションレジスタ番号などを抽出
する。オペレーションは信号線3Bを介して演算部5へ
送られ、レジスタ群4は信号線3Aを介してアクセスさ
れる。
命令コードを所定のフィールドに分割し、処理すべき演
算の種類を示すオペレーション、命令コード内に埋め込
まれたオペランドである即値オペランド、ソースレジス
タ番号、ディスティネーションレジスタ番号などを抽出
する。オペレーションは信号線3Bを介して演算部5へ
送られ、レジスタ群4は信号線3Aを介してアクセスさ
れる。
【0053】次にレジスタ群4からソースレジスタ番号
で指定されたレジスタの内容が読み出され、信号線4D
を介して演算部5へ送られる。オペレーションが加減算
などの演算命令を示していれば、ソースオペランドに対
し、演算部5で通常の演算が行われる。演算結果は信号
線5Aを介してデータアクセス部6へ送られ、信号線6
Aを介してレジスタ群4中のディスティネーションレジ
スタ番号で示されるレジスタに書き戻される。
で指定されたレジスタの内容が読み出され、信号線4D
を介して演算部5へ送られる。オペレーションが加減算
などの演算命令を示していれば、ソースオペランドに対
し、演算部5で通常の演算が行われる。演算結果は信号
線5Aを介してデータアクセス部6へ送られ、信号線6
Aを介してレジスタ群4中のディスティネーションレジ
スタ番号で示されるレジスタに書き戻される。
【0054】一方、オペレーションがメモリへのストア
命令なら、演算部5によって生成されるデータアドレス
と書き込みデータにより、データバス1Bを介してメモ
リ1にデータが書き込まれる。また、ロード命令なら、
演算部5によって生成されるデータアドレスに従ってメ
モリ1の内容が読み出され、レジスタ群4中の指定され
たレジスタに書き込まれる。
命令なら、演算部5によって生成されるデータアドレス
と書き込みデータにより、データバス1Bを介してメモ
リ1にデータが書き込まれる。また、ロード命令なら、
演算部5によって生成されるデータアドレスに従ってメ
モリ1の内容が読み出され、レジスタ群4中の指定され
たレジスタに書き込まれる。
【0055】以上の構成は従来の装置とほぼ同様である
が、本実施例の特徴はレジスタ群4に接続された第2演
算部7にある。
が、本実施例の特徴はレジスタ群4に接続された第2演
算部7にある。
【0056】図4は図3のレジスタ群4と第2演算部7
の接続を示す図である。同図において、R0〜3および
SR0〜2は作業用レジスタであり、ロード命令、スト
ア命令などのデータ転送命令によってアクセスされる。
R0〜3は汎用の作業用レジスタ、SR0〜2は第2演
算部7による使用が可能なデータ格納用レジスタであ
る。SR0、1、2はそれぞれデータ線4A、4B、7
Aによって第2演算部7と接続される。さらにSR2か
ら信号線4Cにより、後述の出力データ存在フラグの状
態が第2演算部7へ送られる。本実施例では、SR0、
1を第2演算部7への入力データ格納用、SR2を第2
演算部7からの出力データ格納用に用いる。
の接続を示す図である。同図において、R0〜3および
SR0〜2は作業用レジスタであり、ロード命令、スト
ア命令などのデータ転送命令によってアクセスされる。
R0〜3は汎用の作業用レジスタ、SR0〜2は第2演
算部7による使用が可能なデータ格納用レジスタであ
る。SR0、1、2はそれぞれデータ線4A、4B、7
Aによって第2演算部7と接続される。さらにSR2か
ら信号線4Cにより、後述の出力データ存在フラグの状
態が第2演算部7へ送られる。本実施例では、SR0、
1を第2演算部7への入力データ格納用、SR2を第2
演算部7からの出力データ格納用に用いる。
【0057】図5は第2演算部7の内部構成図である。
同図に示す通り、第2演算部7は実際の演算を行う演算
回路71と、これを制御する制御回路72からなる。演
算回路71は2入力1出力であり、例えば乗算、除算な
どを行う。同図中、入力データ存在フラグ0、1はそれ
ぞれ処理の対象となるデータがSR0、1に存在するか
否かを示し、存在するときにセット状態、しないときに
リセット状態になる。これらフラグの状態は信号線4A
f、4Bfを介して制御回路72に与えられる。
同図に示す通り、第2演算部7は実際の演算を行う演算
回路71と、これを制御する制御回路72からなる。演
算回路71は2入力1出力であり、例えば乗算、除算な
どを行う。同図中、入力データ存在フラグ0、1はそれ
ぞれ処理の対象となるデータがSR0、1に存在するか
否かを示し、存在するときにセット状態、しないときに
リセット状態になる。これらフラグの状態は信号線4A
f、4Bfを介して制御回路72に与えられる。
【0058】SR0、1から読み出されたデータ自体は
演算回路71に与えられる。演算回路71に有効な演算
結果が生じたとき、制御回路72は演算結果存在フラグ
をセットし、信号線7Aeに出力する。演算回路71は
演算結果データをデータ線7Adに出力する。信号線7
Aeとデータ線7Adによってデータ線7Aが構成さ
れ、これらがSR2へ与えられる。なお、制御回路72
は制御線72Aにより、演算回路71に対して演算の起
動を許可する。
演算回路71に与えられる。演算回路71に有効な演算
結果が生じたとき、制御回路72は演算結果存在フラグ
をセットし、信号線7Aeに出力する。演算回路71は
演算結果データをデータ線7Adに出力する。信号線7
Aeとデータ線7Adによってデータ線7Aが構成さ
れ、これらがSR2へ与えられる。なお、制御回路72
は制御線72Aにより、演算回路71に対して演算の起
動を許可する。
【0059】以下、図3〜5を用いて本実施例に特徴的
なデータ処理動作を説明する。
なデータ処理動作を説明する。
【0060】1.SR0へのデータロード まず「メモリからレジスタSR0へのロード」命令がフ
ェッチされたとする。このときメモリから必要なデータ
が読み出され、データ線6Aを経てSR0にロードさ
れ、前述の入力データ存在フラグ0がセットされる。デ
ータは演算回路71に与えられる。
ェッチされたとする。このときメモリから必要なデータ
が読み出され、データ線6Aを経てSR0にロードさ
れ、前述の入力データ存在フラグ0がセットされる。デ
ータは演算回路71に与えられる。
【0061】2.SR1へのデータロード つづいて、「メモリからレジスタSR1へのロード」命
令がフェッチされると、同様にメモリからデータが読み
出され、SR1にロードされる。ここで入力データ存在
フラグ1もセットされ、データは演算回路71へ与えら
れる。
令がフェッチされると、同様にメモリからデータが読み
出され、SR1にロードされる。ここで入力データ存在
フラグ1もセットされ、データは演算回路71へ与えら
れる。
【0062】3.演算の起動 制御回路72は、入力データ存在フラグ0、1がともに
セット状態であることを確認し、制御線72Aを介して
演算起動指令を演算回路71に与える。演算回路71は
指令に応じて演算を起動、実行する。
セット状態であることを確認し、制御線72Aを介して
演算起動指令を演算回路71に与える。演算回路71は
指令に応じて演算を起動、実行する。
【0063】4.SR2に対する演算結果の格納 制御回路72は演算回路71における演算実行に必要な
時間の経過後、演算結果存在フラグをセットする。演算
結果データとこのフラグはデータ線7Aを介してレジス
タSR2に与えられる。
時間の経過後、演算結果存在フラグをセットする。演算
結果データとこのフラグはデータ線7Aを介してレジス
タSR2に与えられる。
【0064】SR2は、出力データ存在フラグ、すなわ
ち自レジスタに有効な演算結果データが存在するか否か
を示すフラグを持つ。このフラグは初期状態でリセット
されており、かつ、リセット状態にある場合に限って演
算結果の書き込みが許可される。書き込み後、このフラ
グはセットされる。出力データ存在フラグがセットされ
たとき、演算結果存在フラグはリセットされる。
ち自レジスタに有効な演算結果データが存在するか否か
を示すフラグを持つ。このフラグは初期状態でリセット
されており、かつ、リセット状態にある場合に限って演
算結果の書き込みが許可される。書き込み後、このフラ
グはセットされる。出力データ存在フラグがセットされ
たとき、演算結果存在フラグはリセットされる。
【0065】5.SR2からメモリへのデータストア この後、「SR2からメモリへのストア命令」がフェッ
チされると、データ線4Dを介してSR2の読み出しが
行われ、出力データ存在フラグは再度リセットされる。
チされると、データ線4Dを介してSR2の読み出しが
行われ、出力データ存在フラグは再度リセットされる。
【0066】以上が一連の処理の例である。以降、制御
回路72は同様に、入力データ存在フラグ0、1がとも
にセット状態にあることを検出するたびに、演算回路7
1に演算起動指令を送り、演算が完了すれば演算結果存
在フラグをセットする。ただし、演算結果存在フラグが
セットされたとき、出力データ存在フラグがいまだセッ
ト状態にあれば、SR2への演算結果の書き込みを停止
する。
回路72は同様に、入力データ存在フラグ0、1がとも
にセット状態にあることを検出するたびに、演算回路7
1に演算起動指令を送り、演算が完了すれば演算結果存
在フラグをセットする。ただし、演算結果存在フラグが
セットされたとき、出力データ存在フラグがいまだセッ
ト状態にあれば、SR2への演算結果の書き込みを停止
する。
【0067】さらに、演算結果存在フラグがセット状態
にあり、かつSR2への書き込みも停止されていれば、
この間制御回路72は演算回路71に対する演算起動指
令の発行を停止する。
にあり、かつSR2への書き込みも停止されていれば、
この間制御回路72は演算回路71に対する演算起動指
令の発行を停止する。
【0068】これらの配慮の結果、プログラマまたはコ
ンパイラは所期データの読み出しタイミングに注意を払
う必要がなくなる。すなわち本実施例によれば、必要な
データが必要な箇所に準備されたことを確認して、はじ
めて後続の処理が行われるため、いかなるタイミングで
演算結果の読み出し命令を実行しても、いかなるタイミ
ングで入力データをセットする命令を実行しても、正し
い処理を行うことができる。この結果、従来の課題6を
解決するものである。
ンパイラは所期データの読み出しタイミングに注意を払
う必要がなくなる。すなわち本実施例によれば、必要な
データが必要な箇所に準備されたことを確認して、はじ
めて後続の処理が行われるため、いかなるタイミングで
演算結果の読み出し命令を実行しても、いかなるタイミ
ングで入力データをセットする命令を実行しても、正し
い処理を行うことができる。この結果、従来の課題6を
解決するものである。
【0069】本実施例では、演算部5における演算が従
来通り演算命令によって起動される一方、第2演算部7
における演算処理はSR0、1へのデータ転送命令のみ
によって起動される。演算回路71が乗算器のとき、メ
モリに格納された各々異なるオペランドデータに対する
乗算を繰り返し実行する場合、例えば下記のプログラム
となる。ここでは1回の乗算あたり2命令しか必要とせ
ず、処理の高速化とプログラムサイズの縮小が実現され
る。
来通り演算命令によって起動される一方、第2演算部7
における演算処理はSR0、1へのデータ転送命令のみ
によって起動される。演算回路71が乗算器のとき、メ
モリに格納された各々異なるオペランドデータに対する
乗算を繰り返し実行する場合、例えば下記のプログラム
となる。ここでは1回の乗算あたり2命令しか必要とせ
ず、処理の高速化とプログラムサイズの縮小が実現され
る。
【0070】 LD SR0,(R0) ( SR0 ← men(R0) ) LD SR1,(R1) ( SR1 ← men(R1) ) 乗算起動 また、別の処理として、メモリに格納された一次元配列
データ(すなわちデータストリーム)どうしの積を計算
し、その結果の一次元配列をメモリ格納する場合を考え
る。こうした処理は、音声処理や画像処理の応用分野で
頻繁に実行されるものである。本実施例では、乗算に第
2演算部7、配列アドレスの計算に演算部5を使う。プ
ログラム例を示す。
データ(すなわちデータストリーム)どうしの積を計算
し、その結果の一次元配列をメモリ格納する場合を考え
る。こうした処理は、音声処理や画像処理の応用分野で
頻繁に実行されるものである。本実施例では、乗算に第
2演算部7、配列アドレスの計算に演算部5を使う。プ
ログラム例を示す。
【0071】 LD SR0,(R0++) ( SR0 ← men(R0), R0 ← R0+1 ) LD SR1,(R1) ( SR1 ← men(R1) ) 乗算起動 ADD R1,8(R1←R1+8) 加算と乗算の並列処理 ST SR2,(R2++) ( mem(R2) ← SR2, R2 ← R2+1 ) ここで3行目の数値「8」は、ポインタR1に与えるべ
きシフト量である。このプログラムの場合、2行目のロ
ード命令の実行によって第2演算部7の乗算が起動さ
れ、3行目の加算命令の実行によって演算部5の加算が
起動され、加算と乗算が同時並列的に処理される。この
後、ストア命令により、SR2に書き込まれた乗算結果
がメモリにストアされる。このプログラムを従来型のR
ISCプロセッサで実行する場合、乗算命令(MUL)
が必要となり、処理速度とプログラムサイズの面で不利
である。
きシフト量である。このプログラムの場合、2行目のロ
ード命令の実行によって第2演算部7の乗算が起動さ
れ、3行目の加算命令の実行によって演算部5の加算が
起動され、加算と乗算が同時並列的に処理される。この
後、ストア命令により、SR2に書き込まれた乗算結果
がメモリにストアされる。このプログラムを従来型のR
ISCプロセッサで実行する場合、乗算命令(MUL)
が必要となり、処理速度とプログラムサイズの面で不利
である。
【0072】以上、これらのプログラムから明らかなよ
うに、本実施例によれば従来の課題6のみならず、課題
1、2をも解決することができる。
うに、本実施例によれば従来の課題6のみならず、課題
1、2をも解決することができる。
【0073】本実施例では、第2演算部7が2入力であ
り、2つのデータがSR0、1に書き込まれたことを検
出して演算を起動したが、例えばSR0にデータが書き
込まれた時には入力データ存在フラグ0を出さず、SR
1にデータが書き込まれた時に入力データ存在フラグ
0、1を同時に出力する構成としてもよい。なお、この
演算の場合、例えば定数データをSR0に格納しておけ
ば、SR1へのロード命令のみを連続実行することによ
り、演算を繰り返し行うことができる。これらの構成に
よれば、従来の課題8をも同時に解決することができ
る。
り、2つのデータがSR0、1に書き込まれたことを検
出して演算を起動したが、例えばSR0にデータが書き
込まれた時には入力データ存在フラグ0を出さず、SR
1にデータが書き込まれた時に入力データ存在フラグ
0、1を同時に出力する構成としてもよい。なお、この
演算の場合、例えば定数データをSR0に格納しておけ
ば、SR1へのロード命令のみを連続実行することによ
り、演算を繰り返し行うことができる。これらの構成に
よれば、従来の課題8をも同時に解決することができ
る。
【0074】実施例2.つぎに、実施例1の改良例であ
る実施例2を説明する。実施例1の構成では、例えばS
R0、1へのロード命令が連続的に実行されたとき、S
R2の読み出しがボトルネックとなり、演算処理全体が
停止する場合がある。本実施例はこうした性能低下を回
避するものである。
る実施例2を説明する。実施例1の構成では、例えばS
R0、1へのロード命令が連続的に実行されたとき、S
R2の読み出しがボトルネックとなり、演算処理全体が
停止する場合がある。本実施例はこうした性能低下を回
避するものである。
【0075】図6は実施例2の第2演算部7の内部構成
図、図7は図6の制御回路72の内部構成図である。こ
れら以外の部分は実施例1と同等でよく、ここでは相違
点のみを説明する。
図、図7は図6の制御回路72の内部構成図である。こ
れら以外の部分は実施例1と同等でよく、ここでは相違
点のみを説明する。
【0076】本実施例の特徴は、演算回路71の2つの
入力部に、FIFO(先入れ先出し)メモリ73、74
を設け、それぞれSR0、1への連続的書き込みを可能
にする点にある。図6に示すごとく、FIFOメモリ7
3、74は制御回路71から書き込み信号721、72
2、および読み出し信号723によって制御される。一
方、図7に示す通り、制御回路72は以下の構成を持
つ。
入力部に、FIFO(先入れ先出し)メモリ73、74
を設け、それぞれSR0、1への連続的書き込みを可能
にする点にある。図6に示すごとく、FIFOメモリ7
3、74は制御回路71から書き込み信号721、72
2、および読み出し信号723によって制御される。一
方、図7に示す通り、制御回路72は以下の構成を持
つ。
【0077】(1)計数回路A724、B727 それぞれFIFOメモリ73、74内に記憶されている
データ数を計数する。これらの回路の初期出力値は0
で、それぞれ入力データ存在フラグ0、1がセットされ
るたびに信号線4Af、4Bfによってカウントアップ
され、カウントダウン信号731によってカウントダウ
ンされる。
データ数を計数する。これらの回路の初期出力値は0
で、それぞれ入力データ存在フラグ0、1がセットされ
るたびに信号線4Af、4Bfによってカウントアップ
され、カウントダウン信号731によってカウントダウ
ンされる。
【0078】(2)入力制御回路A725 入力データ存在フラグ0がセットされたとき、計数回路
A724の示すデータ量がFIFOメモリ73の最大容
量未満であれば、そのメモリに対する書き込み信号72
1を出力し、SR0から送られたデータを書き込む。ま
た、計数回路A724の示すデータ量が0でない限り、
常に読み出し要求信号726を出力する。
A724の示すデータ量がFIFOメモリ73の最大容
量未満であれば、そのメモリに対する書き込み信号72
1を出力し、SR0から送られたデータを書き込む。ま
た、計数回路A724の示すデータ量が0でない限り、
常に読み出し要求信号726を出力する。
【0079】(3)入力制御回路B728 入力制御回路A725同様の制御をFIFOメモリ74
について行う。すなわち、入力データ存在フラグ1がセ
ットされたとき、計数回路B727の示すデータ量がF
IFOメモリ74の最大容量未満なら書き込み信号72
2を出力し、SR1から送られたデータを書き込む。ま
た、計数回路B727の示すデータ量が0でない限り、
常に読み出し要求信号729を出力する。
について行う。すなわち、入力データ存在フラグ1がセ
ットされたとき、計数回路B727の示すデータ量がF
IFOメモリ74の最大容量未満なら書き込み信号72
2を出力し、SR1から送られたデータを書き込む。ま
た、計数回路B727の示すデータ量が0でない限り、
常に読み出し要求信号729を出力する。
【0080】(4)演算制御回路730 読み出し要求信号726、729の両方が出力されたと
き、演算対象である2つのデータがレジスタに揃ったと
判断する。データが揃い、かつ図6の演算結果存在フラ
グがリセット状態にあるとき、読み出し信号723をF
IFOメモリ73、74に対して同時に出力し、これら
のメモリから2つのデータを読み出す。読み出されたデ
ータは演算回路71に与えられる。このとき同時に、制
御線72Aを介して演算回路71に演算の起動を許可す
る。さらに、計数回路A724、B727に向けてカウ
ントダウン信号731を出力する。
き、演算対象である2つのデータがレジスタに揃ったと
判断する。データが揃い、かつ図6の演算結果存在フラ
グがリセット状態にあるとき、読み出し信号723をF
IFOメモリ73、74に対して同時に出力し、これら
のメモリから2つのデータを読み出す。読み出されたデ
ータは演算回路71に与えられる。このとき同時に、制
御線72Aを介して演算回路71に演算の起動を許可す
る。さらに、計数回路A724、B727に向けてカウ
ントダウン信号731を出力する。
【0081】以上が実施例2の概要である。この構成に
よれば、データの入力を連続して行うことができる。従
って、実施例1の構成による性能の低下を回避すること
ができ、従来の課題6を解決しつつ課題1に対して別の
方法による解決を与えるものである。またこの際、SR
0、1に対してデータを同時に入力する必要もなく、課
題8も解決される。例えば、実施例1で述べた一次元配
列どうしの積和計算を考える場合、2つのデータストリ
ームを別々のレジスタに向けて非同期的に投入し、所定
のレジスタから非同期的に読み出すようなプログラミン
グが許され、かつその処理時間も短い。こうした特徴か
ら、本実施例は複雑な科学計算などで大きな効果を発揮
する。
よれば、データの入力を連続して行うことができる。従
って、実施例1の構成による性能の低下を回避すること
ができ、従来の課題6を解決しつつ課題1に対して別の
方法による解決を与えるものである。またこの際、SR
0、1に対してデータを同時に入力する必要もなく、課
題8も解決される。例えば、実施例1で述べた一次元配
列どうしの積和計算を考える場合、2つのデータストリ
ームを別々のレジスタに向けて非同期的に投入し、所定
のレジスタから非同期的に読み出すようなプログラミン
グが許され、かつその処理時間も短い。こうした特徴か
ら、本実施例は複雑な科学計算などで大きな効果を発揮
する。
【0082】実施例3.つづいて、実施例1の別の改良
例である実施例3を説明する。
例である実施例3を説明する。
【0083】図8は本実施例に係るデータ処理装置の全
体構成図、図9は図8のレジスタ群4と第2演算部7の
接続を示す図である。これらの図はそれぞれ、実施例1
の図3、4に対応する。以下、実施例1と同じ構成と動
作については説明を省略する。
体構成図、図9は図8のレジスタ群4と第2演算部7の
接続を示す図である。これらの図はそれぞれ、実施例1
の図3、4に対応する。以下、実施例1と同じ構成と動
作については説明を省略する。
【0084】実施例3で新設される構成は、 (1)出力データ存在フラグの状態をデータアクセス部
6に伝える信号線4C’ (2)入力データ存在フラグ0、1の状態を命令デコー
ド部3へ伝える信号線4J(信号線4Jは信号線4Af
と4Bfの総括名称) (3)本装置によるパイプライン処理動作に対する停止
要求信号3Cおよび6B (4)停止要求信号3C、6Bのワイヤード・オアをと
る、例えばオープンドレインタイプのゲートg1、g2 (5)前記ワイヤード・オアの結果生じる停止信号10
0 である。この構成による動作の特徴は次の通りである。
6に伝える信号線4C’ (2)入力データ存在フラグ0、1の状態を命令デコー
ド部3へ伝える信号線4J(信号線4Jは信号線4Af
と4Bfの総括名称) (3)本装置によるパイプライン処理動作に対する停止
要求信号3Cおよび6B (4)停止要求信号3C、6Bのワイヤード・オアをと
る、例えばオープンドレインタイプのゲートg1、g2 (5)前記ワイヤード・オアの結果生じる停止信号10
0 である。この構成による動作の特徴は次の通りである。
【0085】1.SR2からの読み出し命令実行の際、
出力データ存在フラグがセットされていなければ、デー
タアクセス部6が停止要求信号6Bを出力し、ゲートg
2を経て停止信号100が出力される。この結果、装置
は実行待ち状態になる。
出力データ存在フラグがセットされていなければ、デー
タアクセス部6が停止要求信号6Bを出力し、ゲートg
2を経て停止信号100が出力される。この結果、装置
は実行待ち状態になる。
【0086】2.SR0にデータを書き込む命令を実行
する際に入力データ存在フラグ0がセット状態にあると
き、またはSR1にデータを書き込む命令を実行する際
に入力データ存在フラグ1がセット状態にあるとき、命
令デコード部3が停止要求信号3Cを出力し、ゲートg
1を経て停止信号100が出力される。この結果、装置
は実行待ち状態になる。
する際に入力データ存在フラグ0がセット状態にあると
き、またはSR1にデータを書き込む命令を実行する際
に入力データ存在フラグ1がセット状態にあるとき、命
令デコード部3が停止要求信号3Cを出力し、ゲートg
1を経て停止信号100が出力される。この結果、装置
は実行待ち状態になる。
【0087】以上が実施例3の概要である。本実施例に
よれば、必要に応じて装置のパイプライン処理自体が停
止されるため、演算結果の読み出しタイミングに従来の
ような制約がない。この結果、前述の課題6を根本的に
解決することができる。なお、本実施例においても実施
例2同様の配慮を行うことにより、性能の低下を回避す
ることが望ましい。
よれば、必要に応じて装置のパイプライン処理自体が停
止されるため、演算結果の読み出しタイミングに従来の
ような制約がない。この結果、前述の課題6を根本的に
解決することができる。なお、本実施例においても実施
例2同様の配慮を行うことにより、性能の低下を回避す
ることが望ましい。
【0088】実施例4.つづいて実施例4を説明する。
図10は本実施例のレジスタ群4と第2演算部7の接続
を示す図である。その他の構成はこれまでの実施例と同
等である。
図10は本実施例のレジスタ群4と第2演算部7の接続
を示す図である。その他の構成はこれまでの実施例と同
等である。
【0089】実施例4では、第2演算部7のために使用
できる作業用レジスタとして、SR0〜5の6本のレジ
スタを備え、レジスタセットSR0〜2またはSR3〜
5のいずれか一方が選択的に使用されるものとする。レ
ジスタセットの選択は、新たな構成である選択回路4
1、42とコントロールレジスタ(CTLR)による。
選択回路41、42の実体は、例えば2入力1出力のセ
レクタ群である。選択回路41、42による選択は、コ
ントロールレジスタのselビットによる。レジスタセ
ットが3以上存在するときは、複数のselビット(s
elフィールド)によって選択を行う。
できる作業用レジスタとして、SR0〜5の6本のレジ
スタを備え、レジスタセットSR0〜2またはSR3〜
5のいずれか一方が選択的に使用されるものとする。レ
ジスタセットの選択は、新たな構成である選択回路4
1、42とコントロールレジスタ(CTLR)による。
選択回路41、42の実体は、例えば2入力1出力のセ
レクタ群である。選択回路41、42による選択は、コ
ントロールレジスタのselビットによる。レジスタセ
ットが3以上存在するときは、複数のselビット(s
elフィールド)によって選択を行う。
【0090】この構成より、予めコントロールレジスタ
によって選択すべきレジスタセットを設定すると、コン
トロールレジスタから制御信号4Eが選択回路41、4
2に与えられる。以降、選択されたレジスタセットによ
り、実施例1同様の処理がなされる。
によって選択すべきレジスタセットを設定すると、コン
トロールレジスタから制御信号4Eが選択回路41、4
2に与えられる。以降、選択されたレジスタセットによ
り、実施例1同様の処理がなされる。
【0091】以上、本実施例によれば、例えば割込み処
理等の実行に通常とは別のレジスタセットを使用するこ
とができ、割込み処理中に所望の演算結果が失われるお
それがない。従って、従来の課題7を解決することがで
きる。
理等の実行に通常とは別のレジスタセットを使用するこ
とができ、割込み処理中に所望の演算結果が失われるお
それがない。従って、従来の課題7を解決することがで
きる。
【0092】実施例5.図11は実施例5のレジスタ群
4と第2演算部7の接続を示す図である。その他の構成
は実施例1等と同等である。
4と第2演算部7の接続を示す図である。その他の構成
は実施例1等と同等である。
【0093】実施例5では、第2演算部7の中に乗算器
700、加算器701の2つの演算器を含み、使用すべ
き演算器を選択可能としている。このため、選択回路4
3、44とコントロールレジスタが新設される。すなわ
ち、予めコントロールレジスタのselビットによって
使用すべき演算器を設定することにより、制御信号4F
に従って所期の演算を行うことができる。3以上の演算
器が存在するときは複数のselビット(すなわちse
lフィールド)を設ければよい。
700、加算器701の2つの演算器を含み、使用すべ
き演算器を選択可能としている。このため、選択回路4
3、44とコントロールレジスタが新設される。すなわ
ち、予めコントロールレジスタのselビットによって
使用すべき演算器を設定することにより、制御信号4F
に従って所期の演算を行うことができる。3以上の演算
器が存在するときは複数のselビット(すなわちse
lフィールド)を設ければよい。
【0094】以上、本実施例によれば、演算器の数が増
えてもレジスタの数を増加させる必要がない。また、演
算の選択をコントロールレジスタで行うため、演算の指
定に例えば図2の命令コード中のOPを使用する必要は
なく、命令コード長のコンパクト化が可能となる。ま
た、従来ならば命令によって指定されるべき演算をコン
トロールレジスタで指定するため、将来の拡張性を確保
する意味でも好都合である。これらの結果、従来の課題
3〜5を解決することができる。
えてもレジスタの数を増加させる必要がない。また、演
算の選択をコントロールレジスタで行うため、演算の指
定に例えば図2の命令コード中のOPを使用する必要は
なく、命令コード長のコンパクト化が可能となる。ま
た、従来ならば命令によって指定されるべき演算をコン
トロールレジスタで指定するため、将来の拡張性を確保
する意味でも好都合である。これらの結果、従来の課題
3〜5を解決することができる。
【0095】実施例6.図12は実施例6のレジスタ群
4と第2演算部7の接続を示す図である。実施例6で
は、第2演算部7の中に乗算器702、加算器703の
2つの演算器を含み、いずれかの演算器を単独で使用す
る場合、さらには乗算器と加算器を連結して使用する場
合を選択できるよう、選択回路46〜48と制御回路4
5を備える。予め制御回路45に、これら3通りの演算
のうち所望の演算を設定すると、制御信号4Gによって
選択回路46〜48が制御される。
4と第2演算部7の接続を示す図である。実施例6で
は、第2演算部7の中に乗算器702、加算器703の
2つの演算器を含み、いずれかの演算器を単独で使用す
る場合、さらには乗算器と加算器を連結して使用する場
合を選択できるよう、選択回路46〜48と制御回路4
5を備える。予め制御回路45に、これら3通りの演算
のうち所望の演算を設定すると、制御信号4Gによって
選択回路46〜48が制御される。
【0096】1.乗算のみが選択されたとき SR0、1へのデータ転送命令の実行に応じて乗算が実
行され、選択回路48で乗算器702の出力が選択さ
れ、SR2に乗算結果が書き込まれる。選択回路46、
47の状態は任意である。
行され、選択回路48で乗算器702の出力が選択さ
れ、SR2に乗算結果が書き込まれる。選択回路46、
47の状態は任意である。
【0097】2.加算のみが選択されたとき SR0、1へのデータ転送命令の実行に応じ、選択回路
46でSR1側が選択され、選択回路47でSR0側が
選択され、加算が実行される。選択回路48では加算器
703の出力が選択され、SR2に加算結果が書き込ま
れる。
46でSR1側が選択され、選択回路47でSR0側が
選択され、加算が実行される。選択回路48では加算器
703の出力が選択され、SR2に加算結果が書き込ま
れる。
【0098】3.積和演算が選択されたとき 予め、SR2にゼロをロードしてクリアし、選択回路4
6でSR2側、選択回路47で乗算器702の出力側を
選択しておく。ここでSR0、1へデータ転送命令の実
行すると、まず乗算器702による乗算が実行され、そ
の結果がSR2に書き込まれる。この乗算結果はSR2
から選択回路46を経て加算器703に入力され、一
方、乗算結果は選択回路47を経て加算器703へ入力
される。この結果、SR0、1の乗算結果とSR2の間
で加算が行われる。この後、選択回路48で加算器70
3の出力が選択され、SR2に加算結果が書き込まれ
る。
6でSR2側、選択回路47で乗算器702の出力側を
選択しておく。ここでSR0、1へデータ転送命令の実
行すると、まず乗算器702による乗算が実行され、そ
の結果がSR2に書き込まれる。この乗算結果はSR2
から選択回路46を経て加算器703に入力され、一
方、乗算結果は選択回路47を経て加算器703へ入力
される。この結果、SR0、1の乗算結果とSR2の間
で加算が行われる。この後、選択回路48で加算器70
3の出力が選択され、SR2に加算結果が書き込まれ
る。
【0099】こうした制御を繰り返し行うことにより、
SR0、1へのロード命令を連続的に実行するだけで積
和演算処理を行うことができる。以下、このプログラム
例を示す。この例は、メモリ上にそれぞれR0、1をポ
インタとして格納されている2つの1次元配列の各要素
の積をとり、それらの総和をSR2に得る処理をループ
処理によって記述したものである。
SR0、1へのロード命令を連続的に実行するだけで積
和演算処理を行うことができる。以下、このプログラム
例を示す。この例は、メモリ上にそれぞれR0、1をポ
インタとして格納されている2つの1次元配列の各要素
の積をとり、それらの総和をSR2に得る処理をループ
処理によって記述したものである。
【0100】 MOV SR2,0 ( SR2 ←0 ) L1: LD SR0,(R0++) ( SR0 ← men(R0), R0 ← R0+1 ) LD SR1,(R1++) ( SR1 ← men(R1), R1 ← R1+1 ) CB R3,L1 (R3がゼロでない時L1に分岐) 従来のRISCプロセッサで同様の処理を実行する場
合、加算(ADD)、乗算(MUL)などの演算命令が
不可欠であるが、この例では不要である。従って、本実
施例でも従来の課題1、2を解決することができる。
合、加算(ADD)、乗算(MUL)などの演算命令が
不可欠であるが、この例では不要である。従って、本実
施例でも従来の課題1、2を解決することができる。
【0101】以上、各実施例で本発明のデータ処理装置
を説明した。ここでは、第2演算部7が備える演算器と
して、乗算器、加算器など2入力のものを挙げたが、こ
れを例えば逆数演算、三角関数、対数関数などの1入力
の演算器に置き換え、1つの入力用レジスタへの転送命
令に応じて演算を起動するよう構成してもよい。
を説明した。ここでは、第2演算部7が備える演算器と
して、乗算器、加算器など2入力のものを挙げたが、こ
れを例えば逆数演算、三角関数、対数関数などの1入力
の演算器に置き換え、1つの入力用レジスタへの転送命
令に応じて演算を起動するよう構成してもよい。
【0102】また各実施例では、汎用の作業用レジスタ
(R0〜3)と、第2演算部7による使用も可能なレジ
スタ(SR0〜5)を同一の機能ブロック内にあるもの
として図示したが、例えば本発明をLSI化する際、R
0〜3を演算部5と同じ回路ブロックに、SR0〜5を
第2演算部7と同じ回路ブロックに配置してもよい。
(R0〜3)と、第2演算部7による使用も可能なレジ
スタ(SR0〜5)を同一の機能ブロック内にあるもの
として図示したが、例えば本発明をLSI化する際、R
0〜3を演算部5と同じ回路ブロックに、SR0〜5を
第2演算部7と同じ回路ブロックに配置してもよい。
【0103】
【発明の効果】本発明のデータ処理装置によれば、デー
タ転送命令の実行によって第2演算手段における所定の
演算処理が起動されるため、少ない命令サイクルでデー
タ処理を行うことができ、性能向上とプログラムサイズ
の縮小が可能となる。また、演算結果データの読み出し
まで後続の演算結果データの書き込みが待たされるた
め、プログラミングまたはコンパイラ設計が容易とな
る。さらに本発明では、演算機能が追加、拡張されて
も、それが通常のデータ転送命令で起動されるため、別
途演算命令を設ける必要がない。従って、命令コードサ
イズの長大化、ハードウェア規模の増大を抑制すること
ができる。
タ転送命令の実行によって第2演算手段における所定の
演算処理が起動されるため、少ない命令サイクルでデー
タ処理を行うことができ、性能向上とプログラムサイズ
の縮小が可能となる。また、演算結果データの読み出し
まで後続の演算結果データの書き込みが待たされるた
め、プログラミングまたはコンパイラ設計が容易とな
る。さらに本発明では、演算機能が追加、拡張されて
も、それが通常のデータ転送命令で起動されるため、別
途演算命令を設ける必要がない。従って、命令コードサ
イズの長大化、ハードウェア規模の増大を抑制すること
ができる。
【0104】別の態様では、命令の実行が演算結果デー
タの読み出しを伴うとき、所望の演算結果データが出力
用レジスタに書き込まれるまで読み出しが待たされるた
め、やはりプログラミング等が容易となる。
タの読み出しを伴うとき、所望の演算結果データが出力
用レジスタに書き込まれるまで読み出しが待たされるた
め、やはりプログラミング等が容易となる。
【0105】さらにこのとき、前記書き込みが待たされ
ている間に入力用レジスタに対するデータ転送が行われ
た場合、第2演算手段による演算処理の起動が待たされ
るため、同様の目的が達成される。
ている間に入力用レジスタに対するデータ転送が行われ
た場合、第2演算手段による演算処理の起動が待たされ
るため、同様の目的が達成される。
【0106】入力用レジスタに有効なデータが保持され
ているとき、後続のデータ転送命令の実行による該レジ
スタへのデータ転送が待たされる場合も同様である。
ているとき、後続のデータ転送命令の実行による該レジ
スタへのデータ転送が待たされる場合も同様である。
【0107】また本発明では、入力用レジスタ及び出力
用レジスタのレジスタセットが複数存在するため、用途
に応じて別のレジスタセットを使用することができ、例
えば割込み処理等を円滑に行うことができる。
用レジスタのレジスタセットが複数存在するため、用途
に応じて別のレジスタセットを使用することができ、例
えば割込み処理等を円滑に行うことができる。
【0108】第2演算手段が複数の演算器を有し、演算
の選択が制御レジスタによって行われる場合は、選択内
容を命令コード中に反映する必要がないため、命令コー
ドサイズの短縮、将来の機能拡張に対する柔軟な対応が
可能となる。
の選択が制御レジスタによって行われる場合は、選択内
容を命令コード中に反映する必要がないため、命令コー
ドサイズの短縮、将来の機能拡張に対する柔軟な対応が
可能となる。
【0109】この場合さらに、ある演算器の演算結果デ
ータを別の演算器へ入力することによって複数の演算を
連続的に実施することができる。この結果、例えば積和
計算など連続的に高速実行することができる。
ータを別の演算器へ入力することによって複数の演算を
連続的に実施することができる。この結果、例えば積和
計算など連続的に高速実行することができる。
【0110】一方、入力用レジスタが複数存在するとき
は、1回の演算処理に必要な複数のデータが入力用レジ
スタに揃うまで演算処理の起動が待たされるため、プロ
グラミングが容易となる。また、データの同時投入のた
めのハードウエアも不要であり、ハードウエア規模の縮
小が可能となる。
は、1回の演算処理に必要な複数のデータが入力用レジ
スタに揃うまで演算処理の起動が待たされるため、プロ
グラミングが容易となる。また、データの同時投入のた
めのハードウエアも不要であり、ハードウエア規模の縮
小が可能となる。
【0111】入力用レジスタと第2演算手段との間にF
IFOメモリが介挿される場合は、演算結果データの読
み出し等が遅れた場合でもデータの入力を待たせる必要
がなく、処理の高速化が可能となる。
IFOメモリが介挿される場合は、演算結果データの読
み出し等が遅れた場合でもデータの入力を待たせる必要
がなく、処理の高速化が可能となる。
【0112】以上、本発明によれば従来の課題をすべて
解決することができる。
解決することができる。
【図1】 RISC方式のプロセッサの構成図である。
【図2】 従来のDSPの特定命令のフィールド構成図
である。
である。
【図3】 実施例1に係るデータ処理装置の全体構成図
である。
である。
【図4】 図3のレジスタ群4と第2演算部7の接続を
示す図である。
示す図である。
【図5】 実施例1の第2演算部7の内部構成図であ
る。
る。
【図6】 実施例2の第2演算部7の内部構成図であ
る。
る。
【図7】 図6の制御回路72の内部構成図である。
【図8】 実施例3に係るデータ処理装置の全体構成図
である。
である。
【図9】 図8のレジスタ群4と第2演算部7の接続を
示す図である。
示す図である。
【図10】 実施例4のレジスタ群4と第2演算部7の
接続を示す図である。
接続を示す図である。
【図11】 実施例5のレジスタ群4と第2演算部7の
接続を示す図である。
接続を示す図である。
【図12】 実施例6のレジスタ群4と第2演算部7の
接続を示す図である。
接続を示す図である。
1 メモリ、2 命令フェッチ部、3 命令デコード
部、4 レジスタ群、5演算部、6 データアクセス
部、7 第2演算部、41〜44,46〜48選択回
路、45 制御回路、71 演算回路、72 制御回
路、73,74 FIFO、700,702 乗算器、
701,703 加算器、724 計数回路A、725
入力制御回路A、727 計数回路B、728 入力
制御回路B、730 演算制御回路。
部、4 レジスタ群、5演算部、6 データアクセス
部、7 第2演算部、41〜44,46〜48選択回
路、45 制御回路、71 演算回路、72 制御回
路、73,74 FIFO、700,702 乗算器、
701,703 加算器、724 計数回路A、725
入力制御回路A、727 計数回路B、728 入力
制御回路B、730 演算制御回路。
Claims (11)
- 【請求項1】 各種命令を実行してデータ処理を行うデ
ータ処理装置であって、 演算命令の実行によって所定の演算処理を起動する第1
演算手段と、 所定の入力用レジスタ及び出力用レジスタを含み、デー
タ転送命令によるアクセスが可能な複数のレジスタと、 データ転送命令の実行によって前記入力用レジスタに対
するデータ転送が行われたことを契機としてそのデータ
に対する所定の演算処理を起動し、その演算結果データ
を前記出力用レジスタに書き込む第2演算手段と、 前記演算結果データの読み出しが行われるまで、前記出
力用レジスタに対する後続の演算結果データの書き込み
を待たせる書込停止手段と、 を備えたことを特徴とするデータ処理装置。 - 【請求項2】 請求項1に記載のデータ処理装置におい
て、該装置はさらに、 命令の実行が前記演算結果データの読み出しを伴うと
き、所望の演算結果データが前記出力用レジスタに書き
込まれるまで読み出しを待たせる読出停止手段を含むこ
とを特徴とするデータ処理装置。 - 【請求項3】 請求項1に記載のデータ処理装置におい
て、該装置はさらに、 前記書込停止手段によって書き込みが待たされていると
きに、前記入力用レジスタに対するデータ転送が行われ
た場合、前記第2演算手段による演算処理の起動を待た
せる演算停止手段を含むことを特徴とするデータ処理装
置。 - 【請求項4】 請求項1に記載のデータ処理装置におい
て、該装置はさらに、 前記入力用レジスタに有効なデータが保持されていると
き、後続のデータ転送命令の実行による該レジスタへの
データ転送を待たせる転送停止手段を含むことを特徴と
するデータ処理装置。 - 【請求項5】 請求項1に記載のデータ処理装置におい
て、 該装置は、前記入力用レジスタ及び出力用レジスタの組
合せによる複数のレジスタセットを備え、さらにこれら
複数のレジスタセットから演算処理を行うべきレジスタ
セットを指定する指定手段を有することを特徴とするデ
ータ処理装置。 - 【請求項6】 請求項1に記載のデータ処理装置におい
て、 前記第2演算手段は、それぞれが異なる演算を行う複数
の演算器を有し、 該装置は、これら複数の演算器のうちデータ転送が行わ
れたとき実際に演算処理を起動すべきものを指定する指
定手段を有することを特徴とするデータ処理装置。 - 【請求項7】 請求項6に記載のデータ処理装置におい
て、 前記指定手段は、前記入力用レジスタおよび出力用レジ
スタとは別に設けられた制御レジスタであることを特徴
とするデータ処理装置。 - 【請求項8】 請求項1に記載のデータ処理装置におい
て、 前記第2演算手段は、それぞれが異なる演算を行う複数
の演算器を有し、 該装置は、 前記複数の演算器のうち1つの演算器の演算結果データ
を別の演算器へ入力する手段と、 前記出力用レジスタに書き込まれたデータを前記別の演
算器に入力する手段と、 前記別の演算器の演算結果データを前記出力用レジスタ
に再帰的に入力する手段と、 を有することを特徴とするデータ処理装置。 - 【請求項9】 請求項1に記載のデータ処理装置におい
て、 該装置は、前記入力用レジスタを複数備え、 これらの入力用レジスタに対して順次データ転送がなさ
れるとき、1回の演算処理に必要な複数のデータが入力
用レジスタに揃うタイミングを検出する検出手段と、 これらのデータが揃うまで、前記第2演算手段による演
算処理の起動を待たせる演算停止手段を含むことを特徴
とするデータ処理装置。 - 【請求項10】 請求項8に記載のデータ処理装置にお
いて、 前記入力用レジスタと前記第2演算手段との間に介挿さ
れ、前記入力用レジスタに転送されたデータを順次記憶
するFIFOメモリと、 前記FIFOメモリからのデータ読み出しを制御する制
御手段と、 を有することを特徴とするデータ処理装置。 - 【請求項11】 請求項9に記載のデータ処理装置にお
いて、 前記制御手段は、演算処理に必要な複数のデータが前記
FIFOに揃ったとき前記FIFOメモリからのデータ
読み出しを行い、 前記演算停止手段は、前記FIFOメモリからデータが
読み出されたとき前記第2演算手段による演算処理の起
動を許可することを特徴とするデータ処理装置。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP7154695A JPH096614A (ja) | 1995-06-21 | 1995-06-21 | データ処理装置 |
US08/665,630 US5987597A (en) | 1995-06-21 | 1996-06-18 | Data processor with execution control for first and second execution units |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP7154695A JPH096614A (ja) | 1995-06-21 | 1995-06-21 | データ処理装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH096614A true JPH096614A (ja) | 1997-01-10 |
Family
ID=15589931
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP7154695A Pending JPH096614A (ja) | 1995-06-21 | 1995-06-21 | データ処理装置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US5987597A (ja) |
JP (1) | JPH096614A (ja) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0898226A2 (en) * | 1997-08-20 | 1999-02-24 | Matsushita Electric Industrial Co., Ltd. | Data processor with register file and additional substitute result register |
US6832117B1 (en) | 1999-09-22 | 2004-12-14 | Kabushiki Kaisha Toshiba | Processor core for using external extended arithmetic unit efficiently and processor incorporating the same |
JP2007264909A (ja) * | 2006-03-28 | 2007-10-11 | Toshiba Corp | 演算処理装置 |
JP2010176350A (ja) * | 2009-01-29 | 2010-08-12 | Seiko Epson Corp | 情報処理装置、演算処理方法及び電子機器 |
JP2012009021A (ja) * | 2010-06-22 | 2012-01-12 | Internatl Business Mach Corp <Ibm> | 2つのオペランドに対して演算を行い、その後オペランドの元の値を格納するための命令 |
JP2013174942A (ja) * | 2012-02-23 | 2013-09-05 | Le Tekku:Kk | 複数のコンディションフラグを有するcpu |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5864703A (en) * | 1997-10-09 | 1999-01-26 | Mips Technologies, Inc. | Method for providing extended precision in SIMD vector arithmetic operations |
WO2006018822A1 (en) * | 2004-08-20 | 2006-02-23 | Koninklijke Philips Electronics, N.V. | Combined load and computation execution unit |
GB2570729B (en) * | 2018-02-06 | 2022-04-06 | Xmos Ltd | Processing system |
US11656909B2 (en) * | 2021-04-15 | 2023-05-23 | National Taiwan University | Tensor accelerator capable of increasing efficiency of data sharing |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6043535B2 (ja) * | 1979-12-29 | 1985-09-28 | 富士通株式会社 | 情報処理装置 |
JPH0640301B2 (ja) * | 1983-09-22 | 1994-05-25 | ソニー株式会社 | 並列乗算回路 |
EP0262429B1 (en) * | 1986-09-01 | 1995-11-22 | Nec Corporation | Data processor having a high speed data transfer function |
US5222240A (en) * | 1990-02-14 | 1993-06-22 | Intel Corporation | Method and apparatus for delaying writing back the results of instructions to a processor |
JPH0689269A (ja) * | 1991-02-13 | 1994-03-29 | Hewlett Packard Co <Hp> | プロセッサの制御装置、プロセッサの休止装置およびそれらの方法 |
JP3546437B2 (ja) * | 1993-03-31 | 2004-07-28 | ソニー株式会社 | 適応形ビデオ信号演算処理装置 |
US5694588A (en) * | 1993-05-07 | 1997-12-02 | Texas Instruments Incorporated | Apparatus and method for synchronizing data transfers in a single instruction multiple data processor |
WO1994027216A1 (en) * | 1993-05-14 | 1994-11-24 | Massachusetts Institute Of Technology | Multiprocessor coupling system with integrated compile and run time scheduling for parallelism |
JPH07219769A (ja) * | 1994-02-07 | 1995-08-18 | Mitsubishi Electric Corp | マイクロプロセッサ |
US5664114A (en) * | 1995-05-16 | 1997-09-02 | Hewlett-Packard Company | Asynchronous FIFO queuing system operating with minimal queue status |
US5694565A (en) * | 1995-09-11 | 1997-12-02 | International Business Machines Corporation | Method and device for early deallocation of resources during load/store multiple operations to allow simultaneous dispatch/execution of subsequent instructions |
-
1995
- 1995-06-21 JP JP7154695A patent/JPH096614A/ja active Pending
-
1996
- 1996-06-18 US US08/665,630 patent/US5987597A/en not_active Expired - Lifetime
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0898226A2 (en) * | 1997-08-20 | 1999-02-24 | Matsushita Electric Industrial Co., Ltd. | Data processor with register file and additional substitute result register |
EP0898226A3 (en) * | 1997-08-20 | 2001-04-04 | Matsushita Electric Industrial Co., Ltd. | Data processor with register file and additional substitute result register |
CN1100291C (zh) * | 1997-08-20 | 2003-01-29 | 松下电器产业株式会社 | 数据处理装置 |
US6832117B1 (en) | 1999-09-22 | 2004-12-14 | Kabushiki Kaisha Toshiba | Processor core for using external extended arithmetic unit efficiently and processor incorporating the same |
US7308320B2 (en) | 1999-09-22 | 2007-12-11 | Kabushiki Kaisha Toshiba | Processor core for using external extended arithmetic unit efficiently and processor incorporating the same |
JP2007264909A (ja) * | 2006-03-28 | 2007-10-11 | Toshiba Corp | 演算処理装置 |
JP2010176350A (ja) * | 2009-01-29 | 2010-08-12 | Seiko Epson Corp | 情報処理装置、演算処理方法及び電子機器 |
JP2012009021A (ja) * | 2010-06-22 | 2012-01-12 | Internatl Business Mach Corp <Ibm> | 2つのオペランドに対して演算を行い、その後オペランドの元の値を格納するための命令 |
KR101464809B1 (ko) * | 2010-06-22 | 2014-11-27 | 인터내셔널 비지네스 머신즈 코포레이션 | 두 개의 피연산자에 대해 연산을 수행하고 후속적으로 피연산자의 원래 값을 저장시키는 명령어 |
JP2013174942A (ja) * | 2012-02-23 | 2013-09-05 | Le Tekku:Kk | 複数のコンディションフラグを有するcpu |
Also Published As
Publication number | Publication date |
---|---|
US5987597A (en) | 1999-11-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5838984A (en) | Single-instruction-multiple-data processing using multiple banks of vector registers | |
US6058465A (en) | Single-instruction-multiple-data processing in a multimedia signal processor | |
EP1001335B1 (en) | Data processing unit with coprocessor interface | |
US4454578A (en) | Data processing unit with pipelined operands | |
US5371860A (en) | Programmable controller | |
US4740893A (en) | Method for reducing the time for switching between programs | |
US5764943A (en) | Data path circuitry for processor having multiple instruction pipelines | |
EP1102163A2 (en) | Microprocessor with improved instruction set architecture | |
JPH09311786A (ja) | データ処理装置 | |
US20060259747A1 (en) | Long instruction word processing with instruction extensions | |
USRE32493E (en) | Data processing unit with pipelined operands | |
JPH0766324B2 (ja) | データ処理装置 | |
JP2581236B2 (ja) | データ処理装置 | |
JPH07120278B2 (ja) | データ処理装置 | |
EP0982655A2 (en) | Data processing unit and method for executing instructions of variable lengths | |
JPH096614A (ja) | データ処理装置 | |
JP3510729B2 (ja) | 命令実行方法および命令実行装置 | |
JP2874351B2 (ja) | 並列パイプライン命令処理装置 | |
JP3727395B2 (ja) | マイクロコンピュータ | |
KR19980018071A (ko) | 멀티미디어 신호 프로세서의 단일 명령 다중 데이터 처리 | |
JPH1165840A (ja) | 演算処理装置およびその方法 | |
JPH0769806B2 (ja) | データ処理装置 | |
JP2861560B2 (ja) | データ処理装置 | |
JP2668987B2 (ja) | データ処理装置 | |
JPH0651984A (ja) | マイクロプロセッサ |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040706 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20041116 |