JPH09292993A - 演算実行方法および演算実行装置 - Google Patents

演算実行方法および演算実行装置

Info

Publication number
JPH09292993A
JPH09292993A JP4409397A JP4409397A JPH09292993A JP H09292993 A JPH09292993 A JP H09292993A JP 4409397 A JP4409397 A JP 4409397A JP 4409397 A JP4409397 A JP 4409397A JP H09292993 A JPH09292993 A JP H09292993A
Authority
JP
Japan
Prior art keywords
instruction
execution
result
arithmetic
fetch
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
JP4409397A
Other languages
English (en)
Other versions
JP3630904B2 (ja
Inventor
Hiroki Miura
宏喜 三浦
Yasuto Komura
康人 甲村
Kenji Matsumoto
松本  健志
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.)
Sanyo Electric Co Ltd
Original Assignee
Sanyo Electric Co 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 Sanyo Electric Co Ltd filed Critical Sanyo Electric Co Ltd
Priority to JP04409397A priority Critical patent/JP3630904B2/ja
Publication of JPH09292993A publication Critical patent/JPH09292993A/ja
Application granted granted Critical
Publication of JP3630904B2 publication Critical patent/JP3630904B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Advance Control (AREA)

Abstract

(57)【要約】 【課題】 固有演算を行うとき、例外処理を待たさず、
性能を落とさないことの両立が困難だった。 【解決手段】 パイプラインはフェッチI、解読R、実
行A、メモリアクセスM、レジスタ書込Wの5ステージ
構成をとる。演算起動命令(命令1)と演算結果取出命
令(命令2)を別々に設ける。命令1は起動をかけるだ
けで終了する。命令2は、Rステージで命令1の演算完
了を待つ。IとRステージはハードウエアの状態を変化
させないため、ここで例外処理要求があれば、命令2を
破棄してその処理を行う。この間も演算の実行はつづ
く。例外処理後、命令2をIステージからやりなおす。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】この発明は、演算実行方法お
よびその方法を用いた演算実行装置に関する。この発明
は特に、演算を含む各種処理が命令の形で与えられると
き、これらの命令を実行する演算実行方法および装置に
関する。この発明は、例えばパイプライン方式のマイク
ロプロセッサに適用することが可能である。
【0002】
【従来の技術】RISC(Reduced Instruction Set Co
mputer)型のシングルチップ・マイクロプロセッサは、
主に特定用途において、高い処理性能、低い消費電力お
よび少ない実装面積を同時に実現するデバイスである。
最近ではさらに演算性能の強化を図るために、こうした
マイクロプロセッサの中に専用の演算回路を設けること
も多い。
【0003】日本電気(株)のV851は、そうしたマ
イクロプロセッサの1つである。NEC技報 Vol.
48 No.3/1995の42〜47ページの記載に
よれば、V851はパイプライン方式のRISCアーキ
テクチャをとり、乗算命令の高速実行のために、通常の
ALUの他にMULUと呼ばれるハードウエア乗算器を
備える。この乗算器により、乗算を1または2クロック
で実行する。
【0004】図1はV851によるパイプライン処理の
様子を示す図である。同図では、命令1がMULUを用
いて1クロックで完了し、つづく命令2が1クロック遅
れでパイプライン処理されていく様子が示されている。
同図において各クロックに対応する処理はステージと呼
ばれ、5種類のステージを経ることにより、1つの命令
の実行が完了する。V851の場合、5種類のステージ
はIF、ID、EX、MEM、WBと呼ばれ、これら各
ステージはそれぞれ、命令フェッチ、命令解読(および
レジスタの読み出し)、演算(およびメモリアドレス生
成)、メモリアクセス(乗算結果取り出し)、レジスタ
ファイルに対するデータの書き戻しを示している。
【0005】
【発明が解決しようとする課題】パイプライン方式のマ
イクロプロセッサを設計する場合、割込等例外処理の受
付に関し、いくつかの異なる設計方針がある。特に、専
用の演算回路を設ける場合、この回路の性質に応じた設
計が必要となる。演算実行と例外処理の要求が同時に発
生したとき、主な制御方法は以下のとおりである。
【0006】(1)例外処理を待たせる いったん演算が起動されたとき、この演算の実行が完了
するまで例外処理を待たせ、演算完了後例外処理を行
う。
【0007】(2)演算を中止する 例外処理を優先するために演算を中止し、演算の途中経
過を破棄する。例外処理の完了後、演算を最初からやり
なおす。
【0008】(3)演算を中断する 演算をいったん中断し、演算の途中経過を退避する。例
外処理の完了後、退避したデータを読み戻し、演算を中
途から再開する。
【0009】これらのうち、(1)は設計上最も単純で
ハードウエアも少ないが、急を要する例外処理が長時間
待たされるおそれがあり、システム上問題が生じうる。
(2)にはこの問題がないが、演算が最初からやりなお
しになるため、処理性能上問題が生じうる。(3)には
これらの問題がないが、実現するためのハードウエアが
大きくなる。例えば前述のV851のように、演算に高
々2クロックしかかからない場合は(1)の方法が現実
的と考えられるが、例えば多ビットデータを対象とする
浮動小数点演算用の演算回路を設けるような場合、
(2)または(3)の方法を選択するほかなかった。
【0010】[目的]本発明は、上記課題に鑑みてなさ
れたものであり、その目的は、例外処理を無用に待たせ
ることなく、処理性能の低下を最小限にとどめ、かつハ
ードウエアの増大を招かない演算実行方法および装置の
提供にある。
【0011】
【課題を解決するための手段】
(1)本発明の演算実行方法は、命令の形で与えられる
演算を実行する方法であって、演算の起動を指示する演
算起動命令と、その演算の結果を取り出す演算結果取出
命令を別々に設け、演算起動命令によって起動された演
算の実行完了をハードウエアによって判定し、その演算
の実行が完了するまで、後続の演算結果取出命令の実行
を、その演算結果取出命令自体を破棄することが可能な
状態で停止する。
【0012】ここで「演算」は、数値演算に限らず、各
種制御機能の単位処理全般を指す。また本発明では、命
令の「実行」ということばが2つの意味を持つ。すなわ
ち、この命令を読み取って解読し、解読内容に従って実
際にハードウエア資源に対する制御を行い、命令を終了
するまでの一連の処理が広義の実行である。一方、前記
ハードウエア資源に対する実際の制御のみを指して狭義
の実行という。以降、特に区別が必要な個所に限り、広
狭を明示して説明する。
【0013】本発明では、演算起動と演算結果の取り出
しを異なる命令で行う。演算起動命令は演算の起動のみ
を目的とするため、演算が起動された時点でその命令自
体の実行は完了する。しかしこれとは別に、演算自体は
実行中とする構成が可能であり、この演算の完了がハー
ドウエア的に判定される。
【0014】一方、演算が完了する前であっても、演算
起動命令自体の実行が完了していることから、演算結果
取出命令の実行(広義)が開始できる。しかし、この命
令は前記演算の完了を待つ必要があるため、その実行
(狭義)は演算が完了するまで停止される。このとき、
例えば例外処理の要求が発生したら、停止中の演算結果
取出命令を破棄し、当該処理を先に実行する。「破棄」
とは、命令の実行を中止することをいう。このとき、前
記演算自体は必ずしも中止する必要はないため、例外処
理等を終えた後、演算結果取出命令のみを再度実行する
ことができる。
【0015】(2)本発明の演算実行方法のある態様で
は、この方法は、前記演算起動命令によって起動された
演算の実行が完了する前であっても例外処理の要求を受
け付け、この要求が実際に発生したとき実行中の演算結
果取出命令を破棄し、例外処理を行った後、前記演算結
果取出命令を再実行する。この動作原理は(1)で説明
したとおりである。
【0016】(3)本発明の演算実行方法のある態様で
は、この方法は命令をパイプライン処理によって実行す
るものであり、前記演算起動命令によって起動された演
算の実行完了の判定は、命令の実行状況を見てパイプラ
インのステージ進行を制御するときに、パイプライン処
理動作の一環として行われる。
【0017】この態様では、前提として、命令がパイプ
ライン処理によって行われる。パイプライン処理を行う
とき、パイプラインの各ステージを進めていくために、
命令の実行状況の監視が必要となる。そこで、この監視
動作を前記演算の実行完了の判定に利用するものであ
る。
【0018】(4)一方、本発明の演算実行装置は、演
算起動命令によって演算が起動され、演算結果取出命令
によって演算結果が取り出されるよう構成された演算手
段と、演算起動命令によって起動された演算の実行完了
をハードウエアによって判定する演算完了判定手段と、
演算の実行が完了するまで、後続の演算結果取出命令の
実行を、その演算結果取出命令自体を破棄すること可能
な状態で停止する取出命令実行停止手段とを含む。「演
算手段」の一例に、固有の演算を実行するコプロセッサ
がある。
【0019】この態様において、まず演算起動命令が読
み込まれると、演算手段において演算が起動される。こ
の演算の実行完了が演算完了判定手段で判定される。つ
づいて、演算結果取出命令が読み込まれるが、この命令
の実行(狭義)は演算の実行が完了するまで停止され
る。演算結果取出命令は、その命令自体を破棄すること
が可能な状態、例えば解読までが終了したステージで停
止される。このため、例外処理の要求などが発生すれ
ば、演算結果取出命令を破棄してこれを優先的に処理す
ることができる。この後、演算結果取出命令が再実行さ
れ、演算手段から演算結果が取り出される。
【0020】(5)本発明の演算実行装置のある態様
は、命令をパイプライン処理によって実行するパイプラ
イン制御手段を含み、このパイプライン制御手段は前記
取出命令実行停止手段を含み、この取出命令実行停止手
段は、前記演算の実行完了の判定結果に従い、演算結果
取出命令の実行停止をパイプライン処理中の関連するス
テージにて行う。その作用は、(1)の説明に準ずる。
【0021】(6)このとき本発明のある態様では、前
記取出命令実行停止手段は、演算結果取出命令が解読さ
れるステージか、それよりも時間的に前のステージでそ
の命令の実行を停止し、前記パイプライン制御手段は、
演算結果取出命令の実行が停止されている間に例外処理
の要求が発生したとき、その例外処理の実行後に演算結
果取出命令の実行を再開する取出命令再実行手段を含
む。
【0022】この態様によれば、演算結果取出命令は、
その命令が解読されるステージ以前のステージ、すなわ
ち狭義の実行が開始される前に停止される。この間に例
外処理の要求が発生したとき、その例外処理の実行後に
演算結果取出命令の実行が再開される。なお、命令の狭
義の実行を開始することを、以降「命令の発行」とも呼
ぶ。
【0023】(7)本発明のある態様では、この装置は
さらに、演算起動命令が解読されたとき前記演算手段を
利用する旨の予約を行う予約手段と、この予約の状況に
応じて演算起動命令の実行を停止する起動命令停止手段
を含む。
【0024】この態様では、演算起動命令が解読された
とき、演算手段が利用されることが判明するため、これ
が予約手段で予約される。予約は、例えば単にカウンタ
などの計数回路の計数値をインクリメントすることでも
実現できる。起動命令停止手段は、この予約の状況に応
じて演算起動命令の実行を停止する。予約が多い場合、
例えばいま解読した演算起動命令の発行を即座に停止し
てもよいし、この命令は通常どおり発行し、つぎの命令
の実行を停止してもよい。
【0025】(8)このとき、本発明のある態様では、
前記演算手段は、演算起動命令の実行の際に演算対象デ
ータが送り込まれ、演算結果取出命令の実行の際に演算
結果データが取り出されるFIFO構造を有し、前記起
動命令停止手段は、このFIFO構造の段数と前記予約
の回数との比較結果から演算起動命令の実行を停止す
る。
【0026】この態様によれば、演算起動命令が実行さ
れるとき、FIFO構造に演算対象データが送り込ま
れ、演算結果取出命令が実行されるときFIFO構造か
ら演算結果データが取り出される。FIFO構造である
から、データの入力が出力よりも多いと、いずれ内部が
フル状態となる。そこで、起動命令停止手段はFIFO
構造の段数と予約の回数との比較し、FIFOが溢れる
前に、予め演算起動命令の実行を停止するものである。
【0027】
【発明の実施の形態】ここで本発明の演算実行装置の好
適な実施形態を適宜図面を参照しながら説明する。この
装置の説明により、本発明に係る演算実行方法も明らか
となる。本実施形態では、演算実行装置としてパイプラ
イン方式のマイクロプロセッサを考える。V851のM
ULUに当たる部分はコプロセッサによって実現する。
【0028】本装置のパイプラインは、5種類のステー
ジ、I(命令フェッチ)、R(命令解読と汎用レジスタ
の読出)、A(ALUによる演算)、M(メモリアクセ
ス)、W(レジスタ書込)から構成される。なお、「命
令の発行」はRステージからAステージへの移行と同義
である。
【0029】[構成]図2は本装置の全体構成図であ
る。本装置は大別して、通常の処理を統括的に行うプロ
セッサ40と、V851のMULUに当たるコプロセッ
サ50、およびプロセッサ40が実行すべき命令を格納
する命令メモリ1、プロセッサ40による処理の対象と
なるデータを格納するデータメモリ19からなる。命令
は、命令メモリバス2を介してプロセッサ40に取り込
まれる。一方、データはデータメモリバス18を介して
プロセッサ40との間でリードライトされる。
【0030】プロセッサ40内にはまず、命令メモリ2
から命令をフェッチする命令フェッチ部3、命令フェッ
チ部3から命令語を受け取り、これを解読する命令デコ
ード部5がある。これらがIステージと、Rステージの
前半に対応する。
【0031】命令デコード部5では、命令の種類に従っ
て命令語のデコードを行ない、処理すべき演算の機能を
示す機能コード6a、命令語内に埋め込まれた定数オペ
ランドである即値オペランド6b、2個のソースレジス
タ番号6c、6d、1個のディスティネーションレジス
タ番号6eなどを抽出する。
【0032】ソースレジスタ番号6c、6dは汎用レジ
スタ群7に送られる。本実施形態では、汎用レジスタ群
7の各レジスタがR0、R1…と呼ばれるものとする。
汎用レジスタ群7からは、ソースレジスタ番号6c、6
dに対応するレジスタの内容が取り出され、これらがソ
ースオペランド8a、8bとして演算部11に送られ
る。これがRステージの後半である。演算部11は一般
のプロセッサが持つ通常のALUであり、これがAステ
ージに対応する。
【0033】一方、機能コード6aはパイプライン制御
部9に送られる。パイプライン制御部9は、同図に示す
ように、装置全体の状態を監視し、ステージ進行を制御
し、個々の命令の発行時期を決定する。
【0034】命令が発行可能な時期にきたとき、機能コ
ード6aは機能コード10aとして演算部11に送られ
る。演算部11では、汎用レジスタから得られたソース
オペランド8a、8b、および即値オペランド6bのう
ち必要な値を用い、パイプライン制御部9から与えられ
る機能コード10aに従って演算を行なう。演算部11
で実行される演算の意味は命令の種類毎に異なる。
【0035】例えば、命令が演算命令のときは、命令に
示された演算が演算部11内で実行される。演算結果は
演算結果保持部13に蓄えられる。演算結果16は汎用
レジスタ書込制御部15を介して汎用レジスタ群7に送
られる。このとき書込先のレジスタ番号として、命令の
ディスティネーションレジスタ番号6eがディスティネ
ーションレジスタ番号10bとしてパイプライン制御部
9によって適切なタイミングで送り出される。汎用レジ
スタ書込制御部15は、パイプライン制御部9から得ら
れたディスティネーションレジスタ番号10bを用いて
汎用レジスタへの書込操作を行なう。これがWステージ
に当たる。この場合、MステージはNOP、すなわち何
もしない。
【0036】一方、実行中の命令がメモリアクセス命令
であれば、アクセスすべきメモリアドレスの計算が演算
部11で実行される。得られたメモリアドレス12はデ
ータメモリアクセス制御部14に渡される。データメモ
リアクセス制御部14は、データメモリバス18を介し
てデータメモリ19のリードライトを行う。これがMス
テージに相当する。メモリへの書込命令の実行は、デー
タメモリアクセス制御部14における実行によって完了
する。この場合はWステージがNOPである。メモリか
らの読出命令の実行は、リードされたデータ17が汎用
レジスタ書込制御部15を介して汎用レジスタに書き込
まれたとき、すなわちWステージの完了とともに完了す
る。
【0037】プロセッサ40はさらに、外部割込信号2
8を入力する割込信号入力部27を持つ。割込信号が入
力されたとき、これがパイプライン制御部9に通知され
る。
【0038】一方、コプロセッサ50は、以下のバスに
よってプロセッサ40とデータのやりとりを行う。すな
わち、プロセッサ40における演算結果16とデータメ
モリ19からリードされたデータ17を含むコプロセッ
サ入力バス20と、コプロセッサ50に対するデータ等
の入力を制御する信号を含むコプロセッサ入力制御バス
21と、コプロセッサ50からのデータの出力を制御す
る信号を含むコプロセッサ出力制御バス23と、コプロ
セッサから出力された演算結果データおよび状態信号を
含むコプロセッサ出力バス24である。
【0039】コプロセッサ入力バス20とコプロセッサ
入力制御バス21は、コプロセッサ入力制御部30で参
照される。コプロセッサ入力制御部30は、コプロセッ
サ50のいずれのレジスタにデータを入力すべきかを決
定するとともに、コプロセッサ50に対してデータが入
力過多になることを回避する。
【0040】コプロセッサ演算部31は、コプロセッサ
入力制御部30がデータの入力を受け付けたとき、実際
に演算を行う。演算結果はコプロセッサ出力制御部32
に与えられ、出力レジスタに格納される。コプロセッサ
出力制御部32は、コプロセッサ出力制御バス23を参
照し、データを出力すべきレジスタの決定と、そのレジ
スタからのデータ出力を制御する。出力されたデータは
コプロセッサ出力バス24を介してプロセッサ40に与
えられる。コプロセッサ出力制御部32はさらに、演算
実行の状況と、コプロセッサ入力制御部30において判
断されたデータ入力過多の状態をコプロセッサ出力バス
24に出力し、プロセッサ40のパイプライン制御部9
に対して、ステージの進行停止、命令の破棄、命令の再
実行に必要な情報を提供する。
【0041】図3は、コプロセッサ50の内部構成を示
す図である。同図のうち、実際に演算を行うのは、コプ
ロセッサ演算部31のなかの固有演算部213であり、
演算の実行は演算制御部209で制御される。固有演算
部213では、通常の乗算、除算の他、例えば浮動小数
点演算など、コプロセッサに固有の演算(主に2項演
算)を行う。固有演算部213に演算対象データを供給
するのは、固有演算部213に併設された2つの入力レ
ジスタSR0、1であり、演算結果を格納するのはコプ
ロセッサ出力制御部32のなかの出力レジスタSR2で
ある。SR2は演算結果をコプロセッサ出力バス24に
出力する。ここでは出力レジスタが1個のものとして描
いているが、これは複数でもよく、その場合は出力レジ
スタデコーダ214が、データをバスに出力すべきレジ
スタを選択する。
【0042】本実施形態では、入力レジスタSR0、1
の前段に、それぞれFIFOa202、FIFOb20
3が設けられている。これらは、直接コプロセッサ入力
バス20に接続されており、プロセッサ40から与えら
れたデータを格納することができる。プロセッサ40が
コプロセッサに演算の実行を指示したとき、入力レジス
タデコーダ210によって、SR0、1のいずれの入力
レジスタに対するデータ入力を行うべきであるかが判定
される。この判定は、入力レジスタデコーダ210がコ
プロセッサ入力制御バス21に乗せられたコプロセッサ
レジスタ番号を見て行う。データを入力すべきFIFO
に対しては、入力レジスタデコーダ210から書込指示
信号WaまたはWbが出力され、そのときコプロセッサ
入力バス20に乗せられていたデータが、FIFOa2
02またはFIFOb203に書き込まれる。固有演算
部213は、実行中の演算が終了するたびに、FIFO
a202、b203からデータを取り出し、新たな2項
演算を開始する。
【0043】本実施形態では、演算起動命令が、単にコ
プロセッサ50に対するデータ転送命令であるとする。
すなわち、明示的に演算を起動するための命令は不要で
あり、SR0、1に対する以下のデータ転送命令によっ
て演算が起動される。これはプロセッサ40のWステー
ジ(レジスタへの書込)で行われる。
【0044】 LD SR0,(R0) :メモリのR0番地のデータ
をSR0にロード LD SR1,(R1) :メモリのR1番地のデータ
をSR1にロード 固有演算部213は、SR0と1にデータが揃いしだい
演算を開始する。一方、本実施形態では、演算結果取出
命令がコプロセッサ50からの読出命令であるとする。
すなわち、 ST SR2,(R2) :メモリのR2番地にSR2
のデータをストア という命令により、演算結果の取出が行われる。これは
プロセッサ40のAステージで行われる。
【0045】コプロセッサ50内において、FIFO、
入力レジスタSR0、1、固有演算部、出力レジスタS
R2の経路は全体としてFIFO構造となり、パイプラ
インを構成する。このパイプラインにおける処理は、プ
ロセッサ40側のパイプラインの各ステージと一定の同
期関係を持つ。すなわち、プロセッサ40のWステージ
でコプロセッサ50のSR0、1にデータが書き込まれ
ると、これが演算を起動する。演算結果は、Aステージ
でSR2から読み出される。
【0046】演算結果取出命令は、後述のようにRステ
ージでコプロセッサ50の演算完了を待つ。Rステージ
は、まだハードウエア資源の状態を変化させないため、
破棄が容認されることになる。この結果、Rステージで
割込要求等を即座に受け付けることが可能となる。本実
施形態では、ハードウエア資源の状態が変化しうるAス
テージ以降では命令を破棄しないものとする。
【0047】図3において、計数回路a204、b20
5は、それぞれ前記書込指示信号Wa、Wbが出力され
たとき計数値をインクリメントするカウンタである。こ
れらの計数回路は、出力レジスタデコーダ214がSR
2に対してデータの出力を指示したとき、演算制御部2
09を介してこの通知を受け、計数値をデクリメントす
る。従って、これらの計数回路はそれぞれ、FIFOa
202、b203に格納されているデータの個数を示す
ことになり、図示しない任意の回路から任意の目的で参
照される。
【0048】一方、計数回路ra206、rb207
は、それぞれ予約レジスタデコーダ211からの書込指
示信号Wra、Wrbに従って計数値をインクリメント
し、前記計数回路a204、b205と同様の条件で計
数値をデクリメントするカウンタである。書込指示信号
Wra、Wrbは、プロセッサ40の命令デコード部5
で解読された命令が、それぞれSR0、1に対する書込
を予告する場合、予約レジスタデコーダ211から出力
される。従って、計数回路ra206、rb207にお
けるインクリメントの回数は、結果的に計数回路a20
4、b205のそれらと同じになるが、インクリメント
のタイミングが早い。計数回路ra206、rb207
の計数値は、実際にFIFOa202、b203に格納
されているデータの個数と、近い将来格納されるデータ
の個数の和を示す。なお、固有演算部213が必ず2項
演算を行う場合、計数回路a204、b205はいずれ
か一方で足りるが、演算結果に対してSR0の値を繰り
返し足していくような演算を実現する場合、両計数回路
を別々に持つ必要がある。
【0049】コプロセッサ出力制御部32はさらに、パ
イプライン処理情報生成部212を持つ。図4はその内
部構成図である。同図のごとく、この構成は、演算完了
判定部230と起動命令実行停止部231を含み、これ
らからコプロセッサレディ信号(以下単に「レディ信
号」)220が出力される。演算完了判定部230は、
演算の完了をソフトウエアのポーリングによってではな
く、演算回路内部のシーケンサの状態をハードウエア的
に監視することで検出する。ポーリングには一定のオー
バヘッドが発生するためである。
【0050】演算完了判定部230と起動命令実行停止
部231の出力は、例えばワイアードオア形式で接続さ
れる。レディ信号220は、プロセッサ40がコプロセ
ッサ50との間で処理のハンドシェイクを行うための信
号であり、次の条件で出力される。
【0051】1.SR0へのデータ転送命令の際 予約も考慮し、計数回路ra206の値がFIFOa2
02に格納できるデータの個数よりも小さいとき 2.SR1へのデータ転送命令の際 同様に、計数回路rb207の値がFIFOb203に
格納できるデータの個数よりも小さいとき 3.SR2からのデータ転送命令の際 出力レジスタに演算結果が存在するとき これらのうち、1と2の場合は前記起動命令実行停止部
231によって、3の場合は前記演算完了判定部230
によって、それぞれレディ信号220が出力される。こ
のレディ信号220は、それぞれの命令のRステージで
コプロセッサ50から出力され、同じステージにおいて
プロセッサ40から参照される。レディ信号220が出
力されたとき、プロセッサ40は上記1〜3のうち、現
在発行が待たされている命令を発行する。Rステージで
参照することにより、必要に応じて命令の破棄と再実行
が可能となる。
【0052】一方、図5は、プロセッサ40のパイプラ
イン制御部9の内部構成の一部を示す図である。パイプ
ライン制御部9はステージ進行制御部90を含み、ステ
ージ進行制御部90は、取出命令実行停止部91と取出
命令再実行部92を含む。取出命令実行停止部91はレ
ディ信号220を参照し、コプロセッサ50がレディ状
態になるまでコプロセッサ50で演算された演算結果を
これより取り出す演算結果取出命令の発行を停止する。
取出命令再実行部92は、割込の発生によって演算結果
取出命令が破棄された場合、この命令をIステージから
再実行する。
【0053】[動作]以上の構成による動作をパイプラ
イン関連動作を中心に説明する。
【0054】図6は、本実施形態の装置によって演算起
動命令(図中「命令1」と表記)および演算結果取出命
令(同「命令2」)を実行するときのパイプライン処理
を示す図である。実際には、命令1は、 LD SR0,(R0) LD SR1,(R1) の2つの命令によって構成されるが、ここでは説明の便
宜上、1命令として描いている。一方、命令2は、 ST SR2,(R2) である。
【0055】まず、図6で命令1が実行される。命令1
は演算を起動するだけであるため、I〜Wステージが1
クロックづつで終わる。Wステージ(より正確には、そ
のステージの前半)でコプロセッサ50のレジスタに対
する演算対象データの書込が完了するため、Wステージ
(より正確には、その中途)からコプロセッサ50によ
る演算が開始される。
【0056】一方、プロセッサ40自体は命令1のRス
テージと並行して命令2のIステージを開始する。命令
2は、命令1の演算結果を必要とするため、演算の完了
まで発行が待たされる。演算実行中は、図4の演算完了
判定部230がレディ信号220を出力せず、ノット・
レディの状態に維持している。同図では、演算実行中、
命令2がRステージを繰り返し、演算完了後のクロック
(n+1)ではじめてAステージに進行している。
【0057】図7は命令2がRステージにあるときにプ
ロセッサ40に対して割込要求が発生した場合のパイプ
ライン処理を示す図である。同図では、クロック6中の
矢印が割込要求の発生タイミングを示す。プロセッサ4
0はクロック7で命令2を破棄し、命令フェッチ部3に
よる命令フェッチは、割込処理ハンドラの先頭アドレス
に飛ぶ。以降、ハンドラ処理が同様にパイプラインによ
って行われ、これが終了した後、図5の取出命令再実行
部92により、命令2がIステージから再実行される。
【0058】このように本実施形態では、コプロセッサ
50による演算の実行を演算起動と演算結果取出の2段
階に分けることにより、割込要求に対して即座に対応す
ることができる。仮に命令1が、 MUL SR2,SR0,SR1 :SR0、1の積を
SR2に格納のごとく、演算の起動と結果の取出を兼ね
る命令であれば、図7の命令1がAステージ(演算)で
延々とつづく可能性があり、かつAステージでは命令の
破棄が許されないため、割込要求が長時間待たされう
る。本実施形態では、仮に命令2を破棄しても、演算の
実行自体はコプロセッサ50によって続行されていた
め、処理性能上ほとんど問題がない。
【0059】本実施形態では、予約という概念を導入し
た。すなわち、図3の予約レジスタデコーダ211と計
数回路ra206、rb207により、コプロセッサ5
0内のFIFOa202、b203の予約が行われる。
予約でフルの状態になれば、図4の起動命令実行停止部
231がつぎの演算起動命令の発行を待たせるため、コ
プロセッサ50に対するデータ入力の過多状態が回避さ
れる。このことから逆に、いったんコプロセッサ50に
入力することが許可されたデータについては、必ず円滑
に演算が行われることが保証される。本実施形態では、
コプロセッサ50に対するデータの書込が命令の最後ス
テージWで行われる。従って、後続の命令のAステージ
で、まだFIFOa202、b203に空きがあって
も、これが前の命令のWステージで埋まる可能性があ
る。そのために、Aステージで正しく空きを把握できる
よう、予約動作が必要かつ有用となる。
【0060】以上が実施形態の概要である。なお、本実
施形態については、以下の改良または変形が可能であ
る。
【0061】(1)本実施形態では、データ転送命令で
直接コプロセッサ50の演算を起動したが、この必要は
ない。例えばADDなど、明示的な演算開始命令を演算
起動命令としても同様の効果が得られる。
【0062】(2)コプロセッサ50による演算は、単
項演算、積和演算など一般的な演算に限られない。例え
ばコプロセッサ50に、周辺機器との通信の制御、マル
チプロセッサ装置におけるプロセッサ間通信制御など、
数値演算以外の演算を担当させてもよい。
【0063】(3)ここでは5段のパイプライン構成を
説明したが、これは任意の段数、任意の処理ステージか
らなるパイプラインでよい。
【0064】(4)本実施形態では、演算完了の判定を
コプロセッサ50側で行ったが、これはプロセッサ40
側で行ってもよい。実際の設計では、プロセッサ40と
コプロセッサ50の間に明確な境界線を引くことができ
ないか、または引く必要がない。特に図4と図5の構成
については、現実の設計方針に即して同様の効果を得る
構成が多数存在すること注意すべきである。
【0065】(5)本実施形態では、RICSプロセッ
サを例に挙げたが、これは当然、CISCまたはそれ以
外のアーキテクチャであってもよい。
【0066】(6)本実施形態では、命令破棄の要因と
して割込要求の発生を挙げたが、これは例外処理などい
かなる要因であってもよい。
【0067】(7)本実施形態では、Rステージで命令
の実行を停止したが、異なるパイプライン構成をとる場
合、異なるステージで停止することができる。設計の観
点からすれば、ハードウエア資源の状態を変更する以前
のステージで停止することが望ましいが、必ずしもそれ
に限るものではない。
【0068】
【発明の効果】本発明の演算実行方法によれば、演算起
動命令と演算結果取出命令を別々に設け、演算完了まで
後者の実行を破棄可能な状態で停止するため、例外処理
等が不当に待たされることはない。仮に例外処理が発生
しても、演算自体を再実行する必要はなく、処理性能が
落ちない。このためのハードウエアも複雑化、長大化し
ない。
【0069】命令をパイプライン処理によって実行する
場合、演算完了の判定をパイプライン処理動作の一環と
して行うことができるため、好都合である。
【0070】一方、本発明の演算実行装置によれば、演
算実行方法の効果を実際の装置として実現することがで
きる。演算完了もハードウエア的に判定されるため、オ
ーバヘッドによる性能低下もない。
【0071】この装置がパイプライン制御手段を含むと
き、演算結果取出命令の実行停止をパイプライン処理中
の関連するステージで行うことができるため、回路構成
上自然であり、設計上も好都合である。
【0072】演算結果取出命令が解読されるステージ以
前のステージでその命令の実行が停止されるときは、仮
に例外処理が発生しても、ハードウエア資源の状態を変
えることなく、例外処理を行うことができる。
【0073】演算手段に対する予約の効果を考慮して演
算起動命令の実行を停止する場合は、演算手段に対する
データ入力がパイプラインの後半のステージにある場合
でも、そのデータ入力が予約されるため、演算手段に対
してデータの入力が過多になることがない。演算手段が
FIFO構造を持つ場合、いったん発行された命令は必
ず最後まで実行されることを保証するものである。
【図面の簡単な説明】
【図1】 V851によるパイプライン処理の様子を示
す図である。
【図2】 実施形態に係る演算実行装置の全体構成図で
ある。
【図3】 コプロセッサの内部構成を示す図である。
【図4】 パイプライン処理情報生成部の内部構成図で
ある。
【図5】 プロセッサのパイプライン制御部の内部構成
の一部を示す図である。
【図6】 実施形態の装置によって演算起動命令および
演算結果取出命令を実行するときのパイプライン処理を
示す図である。
【図7】 命令2がRステージにあるときに割込要求が
発生した場合のパイプライン処理を示す図である。
【符号の説明】
1 命令メモリ、2 命令メモリバス、3 命令フェッ
チ部、5 命令デコード部、7 レジスタ群、9 パイ
プライン制御部、11 演算部、13 演算結果保持無
部、14 データメモリアクセス制御部、15 汎用レ
ジスタ書込制御部、18 データメモリバス、19 デ
ータメモリ、20 コプロセッサ入力バス、21 コプ
ロセッサ入力制御バス、23 コプロセッサ出力制御バ
ス、24コプロセッサ出力バス、27 割込信号入力
部、30 コプロセッサ入力制御部、31 コプロセッ
サ演算部、32 コプロセッサ出力制御部、40 プロ
セッサ、50 コプロセッサ、90 ステージ進行制御
部、91 取出命令実行停止部、92 取出命令再実行
部、202 FIFOa、203 FIFOb、204
計数回路a、205 計数回路b、206 計数回路
ra、207 計数回路rb、209 演算制御部、2
10 入力レジスタデコーダ、211 予約レジスタデ
コーダ、212 パイプライン処理情報生成部、213
固有演算部、214 出力レジスタデコーダ、220
レディ信号、230 演算完了判定部、231 起動
命令実行停止部。

Claims (8)

    【特許請求の範囲】
  1. 【請求項1】 命令の形で与えられる演算を実行する方
    法であって、 演算の起動を指示する演算起動命令と、その演算の結果
    を取り出す演算結果取出命令を別々に設け、 演算起動命令によって起動された演算の実行完了をハー
    ドウエアによって判定し、 その演算の実行が完了するまで、後続の演算結果取出命
    令の実行を、その演算結果取出命令自体を破棄すること
    が可能な状態で停止することを特徴とする演算実行方
    法。
  2. 【請求項2】 請求項1に記載の演算実行方法におい
    て、この方法は、 前記演算起動命令によって起動された演算の実行が完了
    する前であっても例外処理の要求を受け付け、 この要求が実際に発生したとき、実行中の前記演算結果
    取出命令を破棄し、 例外処理を行った後、前記演算結果取出命令を再実行す
    ることを特徴とする演算実行方法。
  3. 【請求項3】 請求項1、2のいずれかに記載の演算実
    行方法において、 この方法は、命令をパイプライン処理によって実行する
    ものであり、 前記演算起動命令によって起動された演算の実行完了の
    判定は、命令の実行状況を見てパイプラインのステージ
    進行を制御するときに、パイプライン処理動作の一環と
    して行われることを特徴とする演算実行方法。
  4. 【請求項4】 演算起動命令によって演算が起動され、
    演算結果取出命令によって演算結果が取り出されるよう
    構成された演算手段と、 演算起動命令によって起動された演算の実行完了をハー
    ドウエア的に判定する演算完了判定手段と、 演算の実行が完了するまで、後続の演算結果取出命令の
    実行を、その演算結果取出命令自体を破棄することが可
    能な状態で停止する取出命令実行停止手段と、 を含むことを特徴とする演算実行装置。
  5. 【請求項5】 請求項4に記載の演算実行装置におい
    て、 この装置は、命令をパイプライン処理によって実行する
    パイプライン制御手段を含み、 このパイプライン制御手段は、前記取出命令実行停止手
    段を含み、 この取出命令停止手段は、前記演算の実行完了の判定結
    果に従い、演算結果取出命令の実行停止をパイプライン
    処理中の関連するステージにて行うことを特徴とする演
    算実行装置。
  6. 【請求項6】 請求項5に記載の演算実行装置におい
    て、 前記取出命令実行停止手段は、演算結果取出命令が解読
    されるステージまたはそれよりも前のステージでその命
    令の実行を停止し、 前記パイプライン制御手段は、演算結果取出命令の実行
    が停止されている間に例外処理の要求が発生したとき、
    その例外処理の実行後に演算結果取出命令の実行を再開
    する取出命令再実行手段を含むことを特徴とする演算実
    行装置。
  7. 【請求項7】 請求項4〜6のいずれかに記載の演算実
    行装置において、この装置はさらに、 演算起動命令が解読されたとき前記演算手段を利用する
    旨の予約を行う予約手段と、 この予約の状況に応じて演算起動命令の実行を停止する
    起動命令停止手段と、 を含むことを特徴とする演算実行装置。
  8. 【請求項8】 請求項7に記載の演算実行装置におい
    て、 前記演算手段は、演算起動命令の実行の際に演算対象デ
    ータが送り込まれ、演算結果取出命令の実行の際に演算
    結果データが取り出されるFIFO構造を有し、 前記起動命令停止手段は、このFIFO構造の段数と前
    記予約の回数との比較結果から演算起動命令の実行を停
    止することを特徴とする演算実行装置。
JP04409397A 1996-02-29 1997-02-27 演算実行方法および演算実行装置 Expired - Fee Related JP3630904B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP04409397A JP3630904B2 (ja) 1996-02-29 1997-02-27 演算実行方法および演算実行装置

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP8-42724 1996-02-29
JP4272496 1996-02-29
JP04409397A JP3630904B2 (ja) 1996-02-29 1997-02-27 演算実行方法および演算実行装置

Publications (2)

Publication Number Publication Date
JPH09292993A true JPH09292993A (ja) 1997-11-11
JP3630904B2 JP3630904B2 (ja) 2005-03-23

Family

ID=26382455

Family Applications (1)

Application Number Title Priority Date Filing Date
JP04409397A Expired - Fee Related JP3630904B2 (ja) 1996-02-29 1997-02-27 演算実行方法および演算実行装置

Country Status (1)

Country Link
JP (1) JP3630904B2 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008507020A (ja) * 2004-07-15 2008-03-06 イマジネイション テクノロジーズ リミテッド マイクロプロセッサ出力ポート、及び、そこから提供された命令の制御
JP2018195129A (ja) * 2017-05-18 2018-12-06 富士通株式会社 演算処理装置及び演算処理装置の制御方法
JP2024522435A (ja) * 2021-06-17 2024-06-21 インターナショナル・ビジネス・マシーンズ・コーポレーション ニューラル・ネットワーク処理支援命令

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008507020A (ja) * 2004-07-15 2008-03-06 イマジネイション テクノロジーズ リミテッド マイクロプロセッサ出力ポート、及び、そこから提供された命令の制御
JP2018195129A (ja) * 2017-05-18 2018-12-06 富士通株式会社 演算処理装置及び演算処理装置の制御方法
JP2024522435A (ja) * 2021-06-17 2024-06-21 インターナショナル・ビジネス・マシーンズ・コーポレーション ニューラル・ネットワーク処理支援命令

Also Published As

Publication number Publication date
JP3630904B2 (ja) 2005-03-23

Similar Documents

Publication Publication Date Title
CN115374923B (zh) 基于risc-v扩展的通用神经网络处理器微架构
JP2004171573A (ja) 新規な分割命令トランズアクションモデルを使用して構築したコプロセッサ拡張アーキテクチャ
EP0455345A2 (en) Programmable controller
JPH11154144A (ja) プロセッサをコプロセッサにインタフェースするための方法および装置
CN115774575A (zh) 一种risc-v矢量处理单元实现方法及架构
WO2026016845A1 (zh) 处理器、显卡、计算机设备以及依赖解除方法
JP3510729B2 (ja) 命令実行方法および命令実行装置
US7051146B2 (en) Data processing systems including high performance buses and interfaces, and associated communication methods
JP2001142701A (ja) プロセッサにおけるパイプライン制御用メカニズムおよび方法
US7831979B2 (en) Processor with instruction-based interrupt handling
JP3630904B2 (ja) 演算実行方法および演算実行装置
US6704863B1 (en) Low-latency DMA handling in pipelined processors
US5737562A (en) CPU pipeline having queuing stage to facilitate branch instructions
CN118747084A (zh) 基于多核处理器的指令处理方法、设备及存储介质
US5898877A (en) Processor using special instruction set to enhance exception handling
US20040128484A1 (en) Method and apparatus for transparent delayed write-back
CN120179296B (zh) 基于分支跳转的伪乱序指令调度方法
JPH0384632A (ja) データ処理装置
CN118295712B (zh) 数据处理方法、装置、设备和介质
JP3520372B2 (ja) メモリ制御ユニット並びに入出力制御ユニットの動作におけるクリティカル・パスの削除
JP2924735B2 (ja) パイプライン演算装置及びデコーダ装置
JP3102399B2 (ja) データ処理装置及び方法
JPH0524537B2 (ja)
JP3147884B2 (ja) 記憶装置及び情報処理装置
JP2002351658A (ja) 演算処理装置

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20041125

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Effective date: 20041207

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Effective date: 20041215

Free format text: JAPANESE INTERMEDIATE CODE: A61

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20081224

Year of fee payment: 4

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20081224

Year of fee payment: 4

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20091224

Year of fee payment: 5

FPAY Renewal fee payment (prs date is renewal date of database)

Year of fee payment: 6

Free format text: PAYMENT UNTIL: 20101224

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101224

Year of fee payment: 6

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111224

Year of fee payment: 7

LAPS Cancellation because of no payment of annual fees