JPH0652521B2 - 情報処理システム - Google Patents

情報処理システム

Info

Publication number
JPH0652521B2
JPH0652521B2 JP63300575A JP30057588A JPH0652521B2 JP H0652521 B2 JPH0652521 B2 JP H0652521B2 JP 63300575 A JP63300575 A JP 63300575A JP 30057588 A JP30057588 A JP 30057588A JP H0652521 B2 JPH0652521 B2 JP H0652521B2
Authority
JP
Japan
Prior art keywords
instruction
processing
information
command
unit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP63300575A
Other languages
English (en)
Other versions
JPH02148164A (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 JP63300575A priority Critical patent/JPH0652521B2/ja
Priority to DE68922188T priority patent/DE68922188T2/de
Priority to EP89121903A priority patent/EP0371443B1/en
Priority to KR1019890017609A priority patent/KR940003384B1/ko
Publication of JPH02148164A publication Critical patent/JPH02148164A/ja
Priority to US08/223,834 priority patent/US5642499A/en
Publication of JPH0652521B2 publication Critical patent/JPH0652521B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/461Saving or restoring of program or task context
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30025Format conversion instructions, e.g. Floating-Point to Integer, decimal conversion
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3861Recovery, e.g. branch miss-prediction, exception handling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K7/00Methods or arrangements for sensing record carriers, e.g. for reading patterns

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は、プロセツサ及びその内部状態の退避,復帰方
法に係り、特にホストのプロセツサのコプロセツサであ
る浮動小数点プロセツサ、及びそのプロセツサに好適な
退避,復帰方法に関する。
〔従来の技術〕
従来、コプロセツサの退避方法については、アイ・イー
・イー・イー,マイクロ,ボリユウム3,ナンバー6
(アイ・エス・エス・エヌ 0272−1732)第54
項(IEEE,MICRO,Volume3 Number6(ISSN 0
272−1732)pp54)において論じられてい
る。
〔発明が解決しようとする課題〕
上記従来技術は、退避命令を受けるとコプロセツサにて
実行中の命令の実行時間にかかわらず、中断をして退避
命令を即座に実行させるようにしていた。しかし、その
都度コプロセツサにて実行中の命令を中断させて外部記
憶装置に一旦退避させ、その後復帰させることはホスト
のプロセツサに待ち状態を強いることなどにもつなが
り、応答性の点で問題があつた。つまり、上記従来技術
は、コプロセツサの退避方法についての一般的な記載に
止まり、退避命令、及び復帰命令の実行時間の短縮の点
について配慮がされておらず、コプロセツサやシステム
全体の処理能力を低下させるという問題があつた。
本発明の目的は、退避命令により記憶装置に退避する情
報と、復帰命令によりプロセツサに再び格納する情報と
を、退避命令受付け時のプロセツサの状態に応じて必要
最小限の情報とすることにより、プロセツサの退避命
令、及び復帰命令の実行時間を短縮し、プロセツサやシ
ステム全体の処理能力を向上させることにある。
〔課題を解決するための手段〕
上記目的は、実行中の命令による処理を常に中断して退
避命令を実行するのではなく、実行時間の長い命令と短
い命令とに分けるなどして、処理を中断して退避命令の
実行を開始するか、実行中の命令による処理が終了する
のを待つた後に退避命令の実行を開始するか、を選択す
ることにより達成される。
また、復帰に際しては、退避命令の正当性を評価して、
正当である場合のみ復帰を行なうように構成する点も特
徴としている。
〔作用〕
退避命令により記憶装置に転送する必要の有る情報は、
プロセツサの状態により異なり、命令の処理の途中で中
断した方がよい場合と、そうでない場合がある。本発明
の退避,復帰方法によれば、実行時間の短い命令を処理
中などに退避命令を受付けたときは、処理の終了を待つ
た後に退避命令の実行が行なわれるため、退避命令及び
復帰命令の実行時間が短縮されることになる。
〔実施例〕
以下、本発明の一実施例を図面を用いて説明する。第2
図に、浮上小数点演算を高速に実行可能とするマイクロ
コンピユータ・システムを示す。このシステムは、浮動
小数点演算を行なうために、CPU(Central Processi
ng Unit)100とFPU(Floatingpoint Processing U
nti)101の2つの演算回路を持つものである。CPU
100は本来、整数型タイプのデータのみを演算するも
ので、本実施例によるシステムでは浮動小数点タイプの
データの演算を行なわない。これは、CPU100で浮
動小数点演算も行なおうとするとソフトウエアのサポー
トが必要となり演算速度が遅くなつてしまうからであ
る。よつて本実施例によるシステムでは、浮動小数点演
算を専用に行なうFPU101をコプロセツサとして別
に設け、浮動小数点タイプのデータを高速演算するよう
に構成している。ROM(Read Only Memory)102は、
前記のCPU100とFPU101の2つの演算回路へ
の命令が混在するプログラムを格納している。しかし、
命令を解読できるのはCPU100である。そのため、
FPU101はCPU100とのプロトコルにより高速
にインターフエイスされる。ここで、このようなFPU
101をコプロセツサと呼ぶことにする。
RAM(Random Access Memory)103は、整数型や浮
動小数点型のデータを保持するものである。104は、
CPU100から出力されるアドレス・バスである。1
05は、データ・バスで、106は、インターフエイス
に関するための制御を行なうコントロール・バスであ
る。
第1図は、浮動小数点演算コプロセツサ(FPU)10
1のブロツク図を示す。
200は、高速のコプロセツサ・インターフエイスを実
行するバス・コントロール・ユニツト(BCU)であ
る。該BCU200に接続されている入出力信号は、C
LK,D31〜D0, CPST2〜CPST0,BAT3〜BAT0,A2〜
A0である。CLKは、外部から供給されるクロツク信
号で、浮動小数点演算コプロセツサの内部動作の基準と
なる信号である。D31〜D0はデータ信号で、 は、FPU101を選ぶためのチツプ・セレクト信号で
ある。
は、アドレス・バス104上にアドレス信号が存在する
ことを示すアドレス・ストローブ信号である。
データはデータ転送方向を示す入力信号であり、CPU
が外部メモリをリードする場合は“1”となり、ライト
の場合では“0”となる。
はデータ・バス105上のデータ転送が終了したことを
示す。
CPU100とFPU101間でデータを転送する場
合、 はFPU101からCPU100へ出力される。また、
FPU101と外部メモリ間でデータを転送する場合
は、外部メモリよりFPU101に入力される。
は、コプロセツサ・データ・イネーブル信号であり、こ
の信号がアサートされて、1クロツク・サイクル経過の
後、FPU01は、デステイネーシヨンオペランドをデ
ータ・バス105上に出力する。この信号は出力タイミ
ング認識信号として、CPU100より与えられる。C
PST2〜CPST0は、FPU101の内部動作状態
を示す信号である。また、BAT2〜BAT0は、CP
U100より出力されるアクセスの種類を示す信号であ
る。FPU101はCPU100より転送される制御情
報のタイプを、これら信号により認識して動作する。
つまり、FPU101は、CPU100からBAT2〜
BAT0を受けて動作し、動作状態としてCPST2〜
CPST0をCPU100に返すことで、コプロセツサ
・プロトコルを実行する。
第1表,第2表は、それぞれCPST2〜CPST0,
BAT2〜BAT0のデコード表である。
A2〜A0は、CPU100から出力されたアドレス・
データ信号である。
BCU200内の214は、CPU100より発行され
た、コマンドを格納する、BCUコマンド・レジスタ
(BCMR)である。
201は、外部型式で記述されている単精度データ,倍
精度データおよび拡張倍精度データを内部型式(拡張倍
精度型式)のデータに変換するフオーマツト変換ユニツ
ト(FCU)である。
FCU201への入出力データは、BCU200と、変
換データ・バス206を介して、受渡しが行なわれる。
その動作の一例を第3図に示す。例えば、BCU200
に格納された外部データが単精度データ(符号1ビツ
ト,指数8ビツト,仮数23ビツト)の場合、そのデー
タは、変換データ・バス206を介して、FCU201
へ入力される。FCU201へ入力された単精度データ
は、第3図に示すように、指数部はIEEEの規格によ
つてバイアス値の除去を行ない、指数15ビツトとす
る。また仮数部は23ビツトを上位ビツト側につめて設
定し、その残りのビツトは全て“0”とする。一方、F
CU201からBCU200へデータを転送する場合、
FCU201は、内部型式(拡張倍精度)から指定され
た外部型式の第3図とは逆の変換をする。
219は、FCU201が外部データを、内部形式に変
換した後の格納場所であり、エフユニツト・インプツト
・レジスタ(FIR)と呼ぶ。
220は、FCU201が内部型式データを、指定され
た外部型式に変換した後の格納場所であり、エフエニツ
ト・アウトプツト・レジスタ(FOR)と呼ぶ。
212は、FCU201が、CPU100の発行した浮
動小数点命令を格納する。エフユニツト・コマンド・レ
ジスタ(FCMR)である。
FCMR212は、FCU201が変換したデータが、
CPU100が発行したどの浮動小数点命令で使われる
かを示す。
213は、FCU201が、CPU100が発行した命
令アドレスを格納する、エフユニツト・命令アドレス・
レジスタ(FiAR)である。
202は、浮動小数点演算を行なう演算装置(EU)で
ある。EU202は、FCU201から変換された内部
型式(拡張倍精度)のデータを、演算データ・バス20
7を介して受取り、所望の演算を実行する。
EU202内の215は、8ワードで構成されている浮
動小数点レジスタ(FR0〜FR7)で演算に使われる
データや、演算結果を格納する。
216は、8ワードで構成されるテンポラリー・レジス
タ(TR0〜TR8)で、演算の途中結果を格納する。
217は、EU202がCPU100の発行した浮動小
数点命令を格納する、EUコマンド・レジスタ(ECM
R)である。EU202は、このECMR217に格納
されている浮動小点数命令を実行する。
218は、EU202がCPU100の発行した命令ア
ドレスを格納する。EU命令アドレス・レジスタ(Ei
AR)である。
EU202は、上記の各レジスタの他に、ALU,バレ
ルシフタ,乗算器などで構成されている。
203は、浮動小数点演算命令を実行するためのマイク
ロプログラム(MAC)であり、そのMAC203から
出力された命令実行コード209は命令デコーダ204
を介して、各ユニツトFCU201とEU202はそれ
ぞれFCU制御信号群211とEU制御信号群210に
よつて制御される。
205は、MAC203を制御するための命令シーケン
サ(ISC)である。またISC205へのコマンドは
命令バス208を介して、BCU200から出力された
ものである。
第4図は、FPU101のパイプライン制御方式を説明
するタイミング図である。この図では、k番目のコマン
ドCMDk〜(k+3)番目のコマンドCMDk+3の実
行の流れを示している。
CPU100とRAM103から、次々と転送された、
CMDk,OPSk,IARkは、FPU101のデー
タ・バス105を介してBCU200に入力される。こ
のうち、コマンドは、命令バス208を介して命令シー
ケンサへ入力される。また、オペランドは、変換データ
・バス206を介して、フオーマツト変換ユニツト(F
CU)201へ入力される。(例えば、状態で、k番
目のオペランドOPSkがFCU201に入力され、フ
オーマツト変換が実行される。) 次に、FCU201にてフオーマツト変換されたデータ
は、浮動小数点演算装置EU202へ送られ、k番目の
コマンドCMDkの実行を開始する。その実行が開始さ
れると同時に、次の(k+1)番目のコマンドCMDk
+1のフエツチを開始する(状態)。
このように、BCU200,FCU201とEU202
の実行をパイプライン制御することにより、の終り
で、(k−1)番目のコマンドCMDk-1、の終り
で、k番目のコマンドCMDk、の終りで(k+1)
番目のコンマンドCMDk+1、の終りで(k+2)番
目のコンマンドCMDk+2の演算結果を得ることができ
る。第4図では、ソース・オペランドはメモリから、デ
イステイネーシヨン・オペランドはレジスタからの場合
を示している。
以上の様に、FPU101は、より高速な処理を実現す
る為に、BCU200,FCU201およびEU202
を独立に動作させる事が可能である。FPU101は、
3つのユニツトともにコマンドを格納するレジスタと、
命令アドレスを格納するレジスタを有し、現在実行して
いるコマンドを記憶する。これにより、FPU101
は、パイプライン制御においても例外発生による異常停
止の原因解析を、容易にする事ができる。
(1) 退避命令の実行 次にCPU100が、FPU101へ発行するコマンド
のうち、本発明のポイントとなるFSAVEコマンドに
ついて説明する。FSAVEコマンドは、一般の転送命
令では転送する事のできない、FPU101の内部状態
や情報を、RAM103などの外部リソースへ、一旦出
力する処理、すなわち退避を行なう。すなわち、FSA
VEコマンドは、マルチタスクや異常停止の解析に対応
するために、FPU101の内部状態の退避を行なうも
のである。退避命令の実行開始はFPU101の内部状
態への依存性が強く、CPU100に待ち状態を強いる
場合もあり得る。そこで本発明は応答性を高める退避方
法を実現したものである。
ここで、退避,復帰が必要となる場合を具体例でもうす
こし詳しく説明すると、 i)タスク・スイツチ FPUで現在実行中の、タスクAをOSが別のタスクB
に切換える際、タスクAの途中結果を保存する為に、退
避命令(FSAVE)がOSより発行される。
また、再びタスクAを実行する際に保存した途中結果を
FPUに戻す為に復帰命令が発行される。
ii)例外解析 例外等の原因で異常停止してしまつたFPUに対して、
その原因を解析する為に、FPU内の各レジスタのデー
タをメモリに転送し、そのメモリの内容を参照する。
等の場合が考えられる。
第5図に、FSAVEコマンドの実行手順を、CPU1
00,FPU101,RAM103について示す。CP
U100は、FSAVEコマンドと、その命令アドレス
をFPU101に対して発行する。一方、FPU101
はCPU100から発行されたコマンドが、FSAVE
である事を認識すると、BCU200,FCU201,
EU202のそれぞれが、実行中や停止中など、内部状
態にかかわらず、無条件にFSAVEコマンドを受け付
け、CPU100に対しCPST2〜CPST0より、
コマンド受付け済み(ACC)を通知する。
FPU101の受け付けたFSAVEコマンドの処理の
開始はFCUのEU202の状態と、実行しているコマ
ンドによつて異なる。第3表にEU202の状態とFS
AVEコマンドの処理開始の関係を示す。
ここで、FREM,FMOD,FSIN,FCOS,F
TAN、あるいはFSINCOSは、FPU101が実
行する浮動小数点命令のうち、比較的、処理時間の長い
命令のグループである。FPU101は、このグループ
のコマンド実行中にFSAVEコマンドを受け付ける
と、その処理を中断した後、FSAVEコマンドの処理
を実行する。したがつて、この時EU202の内部状態
として出力するのは、中断したコマンドの中途結果であ
る。
また、上記以外のコマンド実行中にFSAVEコマンド
を受付けた場合は、コマンド実行終了までFSAVEの
処理は開始しない。これは、上記のコマンドに対して処
理時間が短い為、そのコマンドの実行の終了を待つても
FPU101全体の処理時間には、大きな影響を与えな
いからである。
いわゆる処理時間の短いコマンドとしては、FADD
(加算),FSUB(減算),FMUL(乗算),FD
IV(除算)の四則演算に用いるコマンドや、FSCA
LE(スケーリング),FABS(絶対値),FNEG
(符号反転),FSQRT(平方根),FINT,FI
NTRZ(整数値化),FEXTE(指数値抽出),F
EXTM(仮数値抽出)などの一般演算のコマンド,座
標変換用演算,判定,分岐,転送,特殊処理などに用い
られるコマンドが挙げられる。
次に、FPU101はFSAVEコマンドの処理を実行
する。ここで、FPU101は、RAM103に、退避
情報として、第1ワードに転送する内受状態と、その情
報量を示す転送語数(WC)を出力する。以下、この第
1ワードをフレームヘツド(FH)と呼ぶ。第6図にフ
レームヘツダの構成を示す。フレームヘツダはCOP・
ID,EX1,EX0,OPL,EXCO,FIRR
Q,転送語数(WC)より成る。
COP・IDは、EPU101が独自に持つている3ビ
ツトのコプロセツサ識別子である。これにより、退避す
る内部情報がFPU101のものである事を示してい
る。
EX1,EX0は、EU202の実行状態を、第4表の
ように、3状態に定義している。アイドルは、EU20
2が実行待ちで停止している状態である。中断処理は、
FPU101が実行時間の長い、FREM,FMOD,
FSIN,FCOS,FTANあるいはFSINCOS
のコマンド実行中に、FSAVEコマンドを受付けた場
合で、EU202がそれらのコマンドの実行を中断し停
止している状態である。また、例外とは、EU202の
実行中に、表現範囲を越える等の異常が発生し、これ以
上実行不可能となり停止している状態である。
OPLは、パイプライン制御によつて動作しているFP
U101内に、CPU100とのプロトコルは終了した
が、また実行していないコマンドがあることを示す。
EXCOは、前述のEX1,EX0=11(例外)の時
だけ意味を持ち、FSAVEコマンドの実行で退避する
情報のうち、実行に使われたオペランドがFCU201
によつてバイアス調整されていることを示す。
FIRRQは、FPU101内の未実行コマンドが入力
オペランドを持つている事を示す。したがつて、未実行
コマンドがある事を示すOPLがセツトされている場合
にだけ、セツトされる可能性がある。
転送語数(WC)は、FPU101がフレームヘツダ以
外に退避するワード数を示すものである。FPU101
は、EX0,EX1,OPLにより示される実行状況に
より、退避する情報を可変とし、不要な情報の転送を避
けている。退避する情報量は、EX0,EX1,OPL
に従い、一意に決定する。EX1,EX0,OPLと退
避する転送語数の対応を第5表に示す。ただし、ここで
の転送語数はフレームヘツダを含めないものであり、実
際の転送語数は、この値に1を加えたものである。
FPU101がFSAVEコマンドにより退避する情報
のフオーマツトは6通りある。以下、FPU101の転
送内容,転送順序およびメモリイメージを、第7図〜第
12図に示す。
尚、第8図,第10図,第12図中の入力オペランドに
ついて、コマンドによつては入力オペランドがない場合
や1ワードか2ワードしかないものがあるが、この場
合、固定的に3ワードの領域が必要であることを*1)
印で示している。また、第11図,第12図中の例外オ
ペランドについて、例外の種類によつては意味を持たな
い場合があることを*2)印で示している。
以下、順に説明を加える。第13図は、CPU100よ
りFSAVEコマンドが発行された時、FPU101の
実行状況が、EX1,EX0=00(アイドル状態),
OPL=0(未実行コマンドなし)で表わされる時の一
例を示したCPU100とFPU101のタイミング図
である。FSAVEコマンドが発行される前のFPU1
00は、BCU200,FCU201,EU202とも
アイドル状態である。なお、IARkはFSAVEコマ
ンドに対する命令アドレスである。
第13図の状態でFSAVEコマンドにより、退避する
情報のフオーマツト,転送内容,転送順序、およびメモ
リイメージが第7図である。
FPU101より、RAM103のアドレス$n番地に
対して、フレームヘツダを転送するだけで、他の不要な
情報の退避はない。
第14図は、FSAVEコマンドが発行された時、FP
U101の実行状況が、EX1,EX0=00(アイド
ル状態),OPL=1(未実行コマンドあり)で表わさ
れる時の一例を示したCPU100とFPU101のタ
イミング図である。CPU100は、FSAVEコマン
ドが発行される前に、コマンドCMDkを発行し、それ
に付随する入力オペランドOPSk,命令アドレスIA
Rkの転送がおこなわれる。このコマンドCMDkにつ
いての一連の転送に対してFPU101は、FCU20
1で入力オペランドOPSkのフオーマツト変換を実行
したものの、EU202はまだ実行を開始していない。
第14図の状態でFSAVEコマンドにより、退避する
情報のフオーマツト,転送内容,転送順序、およびメモ
リイメージが第8図である。FPU101がRAM10
3に退避する内容は、フレームヘツダ,未実行コマンド
CMDk,未実行アドレスIARk、および入力オペラ
ンドIARkである。
フレームヘツダは、内部状態とともに転送語数5を示
し、フレームヘツダ自身の転送の他に5ワード分の転送
がある事を示している。
FPU101において、未実行コマンドCMDkは、F
CU201のFCMR219に、また未実行アドレスI
ARkはFiAR220に、入力オペランドOPSk
は、FIR212に、それぞれ格納されている。
入力オペランドOPSkは1ワードのデータであるが、
退避する時は3ワードの領域を必要とする。これは、1
ワードの入力オペランドOPSkが、フオーマツト変換
され、内部フオーマツト(3ワード)になつている為で
ある。
FPU101は、RAM103に対して次の順序で、上
記の情報を転送する。
まず、アドレス$n番地にフレームヘツダ、次にアドレ
ス$n+14〜$n+cに、$n+14,$n+10,
$n+cの順にフオーマツトを変換後の入力オペランド
OPSkを上位バイトから、次に$n+8に未実行アド
レスIARkを、そして最後に未実行コマンドCMDk
を転送する。
第15図は、FSAVEコマンドが発行された時、FP
U101の実行状況が、EX1,EX0=10(中断処
理),OPL=0(未実行コマンドなし)で表わされる
時の一例を示したCPU100とFPU101のタイミ
ング図である。
CPU100は、三角関数(SIN)を求めるFSIN
コマンドを発行し、それに付随するOPSk,命令アド
レスIARkが転送される。これに対し、FPU101
は、BCU200がFSINコマンドの受付けた後、F
CU201が入力オペランドOPSkのフオーマツト変
換をおこなう。続いてEU202がフオーマツト変換し
た入力オペランドOPSkの、SIN値を求める演算を
おこなう。その後、CPU100から、FSAVEコマ
ンドが発行されると、FPU101はコマンドを受付
け、EU202の演算を中断し、FSAVEコマンドを
実行する。
第15図の状態でFSAVEコマンドにより、退避する
情報のフオーマツト,転送内容,転送順序およびメモリ
イメージが第9図である。
FPU101がRAM103に転送する内容は、フレー
ムヘツダ,中断コマンドFSIN,中断アドレスIAR
k,EU202のテンポラリーレジスタ216である。
フレームヘツダは内部状態とともに転送語数26を示
し、フレームヘツダ自身の転送の他に26ワード分の転
送がある事を示している。
中断コマンドFSINは、FSAVEコマンドの実行の
為に中断した、FSINコマンドで、EU202内のE
CMR217内に格納されている。
中断アドレスIARkは、FSINコマンドに対する命
令アドレスであり、EiAR218に格納されている。
テンポラリ・レジスタ216は、中断したFSINコマ
ンドの途中結果が格納されている。
FPU101はRAM103に対して次の順序で上記の
情報を転送する。
まず、アドレス$n番地にフレームヘツダを、次に、ア
ドレス$n+68番地〜アドレス$n+60番地にテン
ポラリ・レジスタ7を、上位バイトから、$n+68,
$n+64,$n+60の順に転送する。以降、同様に
テンポラリ・レジスタ6から、テンポラリ・レジスタ0
までを、次々に転送する。
次に、アドレス$n+4番地に中断アドレスIARk
を、そして最後にアドレス$n+4に中断コマンドFS
INを転送する。
第16図は、FSAVEコマンドが発行された時、FP
U101の実行状況が、EX1,EX0=10(中断処
理),OPL=1(未実行コマンドあり)で表わされる
時の一例を示したCPU100とFPU101のタイミ
ング図である。第15図と同様にFSINコマンドを例
としている。
CPU100は、FSINコマンドを発行し、それに付
随する入力オペランドOPSk,命令アドレスIARk
が転送される。その後、CPU100は直ちにCMDk
+1を発行し、それに付随するOPSk+1,IARk+1が転
送される。
これに対し、FPU101は、BCU200がFSIN
コマンドを受付けFCU201がFSINコマンドの入
力オペランドであるOPSkのフオーマツト変換を実行
し、その後、EU202は、FSINコマンドの演算を
おこなう。EU202がFSINコマンド演算中にBC
U200は、続いてCPU100より転送されたCMD
k+1を受付け、その後、FCU201は、CMDk+1の入
力オペランドであるOPSk+1のフオーマツト変換をお
こなう。この時点では、EU202はFSINコマンドの実
行を継続している。
この状態において、CPU100がFSAVEコマンド
を発行すると、FPU100はFSAVEコマンドを受
付け、EU202が実行しているFSINコマンドの演
算を中断し、FSAVEの実行に移る。なお、IARk
+2はFSAVEコマンドの命令アドレスである。
第16図の状態でFSAVEコマンドにより、退避する
情報のフオーマツト,転送内容,転送順序およびメモリ
イメージを第10図に示す。
FPU101がRAM103に転送する内容は、フレー
ムヘツダ,中断コマンドFSIN,中断アドレスIAR
k,EU202のテンポラリー・レジスタ216,未実
行コマンドCMDk+1,未実行アドレスIARk+1,コ
マンドCMDk+1の入力オペランドであるOPSk+1で、
全転送数は32ワードである。
フレームヘツダは内部状態とともに転送語数31を示
し、フレームヘツダ自身の転送の他に31ワード分の転
送がある事を示している。
中断コマンドFSINは、FSAVEコマンド実行の為
に中断した、FSINコマンドで、EU202内のEC
MR217内に格納されている。
中断アドレスIARkはFSINコマンドに対する命令
アドレスであり、EiAR218に格納されている。
テンポラリー・レジスタ216は、中断したFSINコ
マンドの途中結果が格納されている。
未実行コマンドCMDkは、FPU101が受付けたも
のの実行はしていないコマンドCMDkで、FCU20
1内のFCM219内に格納されている。
未実行アドレスIARk+1は、未実行コマンドCMDk
の命令アドレスであり、FCU201内のFiAR22
0に格納されている。
入力オペランドOPSk+1は、CMDkの入力オペラン
ドで、3ワードのデータとしてFCU201内のFIR
212に格納されている。
FPU01はRAM103に対して次の順序で上記の情
報を転送する。
まず、アドレス$n番地にフレームヘツダを、次に、ア
ドレス$n+7c〜$n+74番地に入力オペランドO
PSk+1を上位バイトから、$n+7c,$n+78,
$n+74の順に転送する。次に、未実行アドレスIA
Rk+1を$n+70番地に、未実行コマンドを$n+6
c番地に、また$n+68〜$n+cにテンポラリ・レ
ジスタ7〜テンポラリ・レジスタ0の順に、$n+8番
地に中断アドレスIARkを、そして最後に中断コマン
ドFSINを転送する。
第17図は、FSAVEコマンドが発行された時、FP
U101の実行状況がEX1,EX0=11(例外),
OPL=0(未実行コマンドなし)で表わされる時の一例
を示したタイミング図である。
CPU100は、コマンドCMDkを発行し、それに付
随する入力オペランドOPSk,命令アドレスIARk
が転送される。
これに対し、FPU101はBCU200がコマンドC
MDkを受付け、入力オペランドOPSkをFCU20
1でフオーマツト変換し、そのデータを用いたEU20
2が、コマンドCMDkを実行する。しかし、その後演
算の実行途中でEU202がオーバーフロー等の例外の
発生でこれ以上、演算を続ける事ができず停止した状態
で、CPU100よりFSAVEコマンドが発行されて
いる。なお、命令アドレスIARkはFSAVEコマン
ドに対する命令アドレスである。
第17図の状態でのFSAVEコマンドにより、退避す
る情報のフオーマツト,転送内容,転送順序およびメモ
リイメージを第11図に示す。
FPU101がRAM103に転送する内容は、フレー
ムヘツダ,例外コマンドCMDk,例外アドレスIAR
k,例外オペランド(テンポラリ・レジスタ0)で、意
味をもたないテンポラリ・レジスタ7〜テンポラリ・レ
ジスタ1の転送を含め全転送数は27ワードである。
フレームヘツダは内部状態とともに転送語数26を示
し、フレームヘツダ自身の転送の他に26ワード分の転
送がある事を示している。
例外コマンドCMDkは、例外発生で処理を中断したコ
マンドで、EU202内のECMR217に格納されて
いる。
例外アドレスIARkは、例外が発生したCMDkに対
する命令アドレスで、EU202内のEiRA218に
格納されている。
例外オペランド(テンポラリ・レジスタ0)は、EU2
02で演算されたオペランドで例外発生の原因となつた
データが格納されている。
また、テンポラリ・レジスタ7〜テンポラリ・レジスタ
1は、転送するが特に意味を持たない。
上記の情報の転送順序は次の様になつている。まず、ア
ドレス$n番地にフレームヘツダを転送する。次にアド
レス$n+68〜$n+18番地に、テンポラリ・レジ
スタ7〜テンポラリ・レジスタ1を転送するが、その内
容は特に意味を持たない。次にアドレス$n+14〜$
n+c番地に例外オペランドとして、テンポラリ・レジ
スタ0を上位バイトから、$n+14,$n+10,$
n+cの順に転送する。次に$n+8番地に例外アドレ
スIARkを、$n+4番地に例外コマンドを転送す
る。
第18図は、FSAVEコマンドが発行された時、FP
U100の実行状況がEX1,EX0=11(例外),
OPL=1(未実行コマンドあり)で表わされる時の一例
を示したタイミング図である。
CPU100は、コマンドCMDkを発行し、それに付
随する入力オペランドOPSk,命令アドレスIARk
が転送される。次に、コマンドCMDk+1を発行し、そ
れに付随する入力オペランドOPSk+1,命令アドレス
IARk+1が転送される。
これに対し、FPU101はBCU200がコマンドC
MDkを受付け、入力オペランドOPSkをFPU10
1でフオーマツト変換し、そのデータを用いEU202
が、コマンドCMDkを実行する。EU202がコマン
ドCMDkを実行している間に、BCU200は、コマ
ンドCMDk+1を受付け、入力オペランドOPSk+1をF
CU201でフオーマツト変換する。ここでは、その
後、EU202で実行しているコマンドCMDkに例外
が発生し、これ以上、実行不可能となり、EU202
は、例外停止する。次に、CPU100は、FSAVE
コマンドを発行する。なお、IARk+2は、FSAVE
コマンドに対する命令アドレスである。
第18図の状態でFSAVEコマンドにより、退避する
情報のフオーマツト,転送内容,転送順序およびメモリ
イメージを第12図に示す。
FPU101がRAM103に転送する内容は、フレー
ムヘツダ,例外コマンドCMDk,例外アドレスIAR
k,例外オペランド(テンポラリ・レジスタ0),未実
行コマンドCMDk+1,未実行アドレスIARk+1,入力
オペランドOPSk+1ので、意味をもたないテンポラリ
・レジスタ7〜テンポラリ・レジスタ1の転送を含め全
転送数は32ワードである。
フレームヘツダは内部状態とともに転送語数31を示
し、フレームヘツダ自身の転送の他に31ワードの転送
がある事を示している。例外コマンドCMDk,例外オ
ペランドIARk,例外オペランド(テンポラリ・レジ
スタ0)、および特に意味をもたないテンポラリ・レジ
スタ1〜テンポラリ・レジスタ7の転送内容について
は、第11図でのそれらと同様で、例外が発生したコマ
ンドCMDk、それに対する命令アドレスIARk,例
外オペランド(テンポラリ・レジスタ0)の転送であ
る。
未実行コマンドCMDk+1,未命令アドレスIARk+1
入力オペランドOPSk+1は、第10図のそれらと同様
で、FPU101が受け付けたにもかかわらず、EU2
02が例外発生で停止した為に、実行できなかつたコマ
ンドCMDk+1,入力オペランドOPSk+1、およびIA
Rk+1である。
これらの、情報はFPU101からRAM103に次の
順序で転送される。
まず、アドレス$n番地にフレームヘツダが転送され、
次にアドレス$n+7c番地〜$n+74番地に、未実
行コマンドの入力オペランドが上位バイトから、$n+
7c,$n+78,$n+74の順に転送される。次に
アドレス$n+70に未実行コマンドの命令アドレスI
ARk+1,$n+6cに未実行コマンドCMDk+1が転送
され、$n+68〜$n+78には、特に意味を持たな
いテンポラリ・レジスタ7〜テンポラリ・レジスタ1
が、転送され、$n+14〜$n+cに例外オペランド
(テンポラリ・レジスタ0)を上位バイトから、$n+
14,$n+10,$n+cの順に転送される。次に$
n+8番地に例外アドレスIARk、そして最後に$n
+4番地に例外コマンドCMDkを転送する。
以上のように、FPU101は、退避命令であるFSA
VEコマンドを受け付けたときEU202の状態と実行
しているコマンドの種類(処理時間が長いか短いか)に
よつて、処理を中断するか、そのまま実行中の処理を行
ないFSAVEコマンドの処理を保たせるかを選択させ
ており、状況に応じた退避が可能となる。
さらに、レジスタの内部状態を退避させると共にコプロ
セツサの識別子(COP・ID),転送語数(WC),
EX1,EX0,OPL,EXCO,FIRRQ等の退
避情報を付帯させており、後述する復帰処理の際の便宜
を図つている。
先に、FPU101がCPU100から無条件にFSA
VEコマンドを受付ける点について述べたが、その理由
について説明する。
FSAVEの時間的な基準として、次の4つがある。
1).CPUがFSAVEを発行 2).FPUがFSAVEを受付け 3).FPUがFSAVEの実行開始 4).FPUがFSAVEの実行終了 また、FSAVEに対するCPU100への受付け応答
は、次の2つが考えられる。
1)FSAVEを受付けてから、実行の準備をする(無
条件受付け)。
2)実行の準備ができてから、FSAVEを受付ける。
今、FPU101においてFSAVEの実行時間を短縮
する対策とさて、なるべくFSAVE受付け時に実行中
のコマンドはその終了を待つ事を基本に、実行時間の長
いコマンドについては中断し、FSAVE受付けから実
行開始までの実行準備時間の増大を防いでいる。
この、実行準備時間の短縮の対策をとつているFPUに
限つて、1)のFSAVEを受付けてから、実行の準備
をする方が、その対策が効果的なものとなる。従つて、
FPUは無条件受付を行なつているのである。
(2) 復帰命令の実行 FPU01の内部状態や退避情報を、RAM101など
外部リソースから入力する処理、すなわち復帰を行なう
FRESTコマンドについて説明する。この時、入力す
る内部状態や情報は、FSAVEコマンドで出力された
スタツク・フレームである。
CPU100と、FPU101、そしてRAM103の
間での、FRESTコマンドの実行手順を第19図に示
す。
CPU100は、FPU101に対してFRUESTコ
マンドを発行する。その直後にFPU101は、RAM
103に対しフレーム・ヘツダを、FPU101へ転送
される。RAM103より転送されるフレームヘツダ
は、第6図のFSAVEコマンドで、退避情報として転
送されたものと同一である。
これに対し、FPU101は、内部状態が完全にアイド
ルの時だけ、FRESTコマンドを受けつける。FPU
101が、自らの内部状態を判定し、その結果をCPU
100に対しCPST2〜CPST0を介し通知する。
もし、FPU101の内部に未実行、あるいは実行中の
コマンドがある場合、FRESTコマンドが受付けられ
ない通知を受けたCPU100は、RAM103に対
し、再びフレーム・ヘツダの転送を指示し、FPU10
1は、再び内部状態の判定をする。FPU101の内部
に未実行、あるいは実行中のコマンドが完全に終了する
まで、この手順が繰り返される。
FPU101内部にあるコマンドが完全に終了の場合
は、CPU100にFRESTコマンドの受付けを通知
した後に、FPU101は命令アドレスを発行する。ま
たFPU101はRAM103より転送されたフレーム
・ヘツダの転送語数のチエツクをする。
フレーム・ヘツダのチエツクは、FSAVEコマンドに
より退避されたフレーム・ヘツダ内の、EX1,EX
0,OPLの組合せと、転送語数の対応を調べるもので
あり、第5表に示される、FSAVEコマンド時のEX
1,EX0,OPLと転送語数の対応と一致すれば、転
送語数正常と判定し、CPU100に転送語数正常を通
知する。また、一致していない場合は、語数例外と判定
し、CPU100に通知する。
語数正常の場合は、CPU100はRAM103に、残
りの退避する情報(FSAVEコマンドで退避した情
報)を、FPU101へ転送させる。FPU101は、
フレーム・ヘツダで得た情報から、転送されてくる情報
のフオーマツトと、その内容、および転送順序を認識し
ている為、それらを、対応する内部のレジスタに格納す
ることができる。
ここで、FPU100が入力する情報のフオーマツト
は、FSAVEコマンドで出力したものと同じ内容であ
るが、FSAVEの時のは、転送順序が異なる。FPU
101が入力する情報のフオーマツトは6種類あり、第
20図〜第25図に転送される内容,順序およびメモリ
イメージを示す。図中、*1,*2)印の意味は、第7
図〜第12図と同様である。
第20図は、RAM103内に格納されているフレーム
ヘツドのEX1,EX0,OPLのフイールドが、EX
1,EX0=00(アイドル状態),OPL=0(未実行
コマンドなし)の時の、FPU101が入力する、情報
のフオーマツトである。第7図のFSAVEコマンドに
より、FPU101からRAM103に退避された情報
と対応しており、FRESTコマンドでは、RAM10
3から、FPU101へ、転送される。このフレームヘ
ツドの転送語数は、0を示しフレームヘツド以外の転送
がない事を表わしている。
第22図は、第20図と同様に、FRESTコマンドで
FPU101に入力する情報の内容と、転送順序であ
る。この転送内容は、FSAVEコマンドによりRAM
103に退避されたものと対応しており、FPU101
に復帰する際は、転送順序だけが異なる。フレームヘツ
ダが示すFPU101の実行状況は、EX1,EX0=
00(アイドル状態),OPL=1(未実行コマンドあ
り)であり、転送語数は6ワードである。
転送順序は、まずRAM103のアドレス$nに格納さ
れているフレームヘツダを転送し、次に$n+4の未実
行コマンドを転送し、次に$n+8の未実行アドレスを
転送し、最後に3ワード分のオペランドを下位バイトよ
り$n+c,$n+10,$n+14の順で転送する。
第23図は、FRESTコマンドでFPU101に入力
するスタツクフレームで、FPUの実行状況がEX1,
EX0=00,OPL=1の時にFSAVEコマンドに
より退避した情報である、第9図と対応している。第2
3図で、RAM103からFPU101に転送される情
報の内容と、第8図で、FPU101からRAM103
に転送された情報は一致している。相違点は転送順序で
フレームヘツダの転送を除き、FPU101−RAM1
03間の転送では、RAM103のアドレスの大きい方
から小さい方へ転送したが、RAM103−FPU10
1間の転送は、逆にRAM103のアドレスの小さい方
から大きい方に向つて転送される。
同様に第23図のFPU101がFRESTコマンドで
入力する情報は、第10図でFPU101がFSAVE
コマンドにより退避した情報と対応している。
以下、第23図と第11図,第25図と第12図が、そ
れぞれFSAVEコマンドで退避した情報と、FRES
Tコマンドで復帰する情報とが対応している。
FRESTコマンドを実行することで、FPU101
は、入力された情報のフオーマツトの内容に対応した状
態に戻る。フレーム・ヘツダ中のEX1,EX0,OP
Lの値と、FRESTによつて回復される状態と、FR
ESTコマンド実行直後の状態を第6表に示す。
第6表のように、FRESTコマンドによりFPU10
1はFSAVEコマンドにより、コマンド実行を中断し
た時点から処理を再開する。
また、FSAVEコマンドにより、メモリに退避したフ
レーム・ヘツドの利用方法として、 1).異常停止しているFPUを、例外解析終了後、再起
動される為に、EX0,EX1=11の状態のフレーム
・ヘツドを00に変え、FPUに復帰する。
2).フレーム・ヘツドのCOP・IDを変える事 により、他のFPUに復帰する。
等が考えられ、退避した状態とは異なる状態などから命
令の再開が可能となる。
このようにFPU101へ退避情報を復帰させる際に、
内部状態に応じてFRESTコマンドを受付けるか否か
正当性を判断し、転送語数を確認して退避を行なうた
め、他の命令実行中のFPU101の動作に悪影響など
を与えることなく復帰をすることが可能となる。
更に、他の実施例について述べる。
FSAVE,FRESTの実行時間を短縮する為の着目
点は、FSAVEを受付けた時に実行中のコマンドをど
う扱うかによつて、 1)実行中のコマンドを中断した後、FSAVEの実行
を開始すると、その中断による途中結果も退避する必要
が生じ、転送数が増え、結果としてFSAVEの実行時
間が長くなる。
2)実行中のコマンドの終了を待つた後に、FSAVE
の実行を開始すれば、中断による途中結果を退避する必
要がなく、転送数が減る。
という点にある。
したがつて、FSAVE,FRESTの実行時間の短縮
は、FSAVE受付けから実行までの時間と、転送数と
のトレードオフによる。
その解として、実行中のコマンドの実行時間により中断
したり終了を待つたりする方法を採用したわけである
が、中断する実行時間の長いコマンドについても、転送
数を少なくする対策として、コマンドの処理動作を検討
し、中断した場合に転送数が少なくすむポイントを数ケ
所設け、そのポイントで中断する方式を採ると一層効果
的である。
本発明は、FPUに限定されるものではなく、ホストと
なるプロセツサのコプロセツサに広く適用可能である。
(すなわち、ホストとなり得るプロセツサから退避・復
帰命令がなされるプロセツサには適用できるものであ
る。) また、本発明にかかる記憶装置は外部記憶装置に限らず
プロセツサ内部に設てもよい。更に記憶装置にキヤシユ
を設けたものであれば、高速実行の点でより効果であ
る。
〔発明の効果〕
本発明によれば、退避命令、及び復帰命令に対して、命
令受付け時の必要最小限の情報のみ、記憶装置に転送
し、または記憶装置から転送されるので、退避命令,復
帰命令の転送に要する時間も必要最小限となり、この両
命令の実行時間を短縮できる。
【図面の簡単な説明】
第1図は本発明にかかる浮動小数点演算プロセツサのブ
ロツクの一実施例を示す図、第2図は本発明の一実施例
にかかるコプロセツサを含むマイコンシステムの全体
図、第3図はフオーマツト変換機能を説明する図、第4
図は本発明にかかるコマンド・パイプ・ライン制御のタ
イミングを示す図、第5図は本発明の一実施例にかかる
FSAVEコマンドの実行手順を示す図、第6図は本発明に
かかるフレーム・ヘツダのフオーマツトを説明する図、
第7図〜第12図は退避情報のフオーマツトの一実施例
を示す図、第13図〜第18図は浮動小数点演算器の内
部状態を説明するタイミングを示す図、第19図は本発
明の一実施例にかかるFRESTコマンドの実行手順を
示す図、第20図〜第25図は復帰情報のフオーマツト
の一実施例を示す図である。 100……CPU、101……FPU、102……RO
M、103……RAM、200……BCU、201……F
CU、202……EU、203……MAC、204……命
令デコーダ、205……ISC、206……変換データ
・バス、207……演算データ・バス、208……命令
バス、209……命令実行コード、210……EU制御
信号群、211……FCU制御信号群。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 木田 博之 東京都小平市上水本町1450番地 株式会社 日立製作所武蔵工場内 (56)参考文献 特開 昭59−144955(JP,A) 特開 昭55−28190(JP,A) 特開 昭56−97154(JP,A)

Claims (12)

    【特許請求の範囲】
  1. 【請求項1】命令を実行しデータを処理する第1の処理
    部と、上記第1の処理部から与えられた命令を実行しデ
    ータを処理する第2の処理部と上記命令又は上記データ
    を保持する記憶部とを有する情報処理システムにおい
    て、 上記第2の処理部は演算実行ユニットを含む複数の処理
    ユニットからなり、上記複数の処理ユニットはパイプラ
    イン処理によって動作するものであって、 上記第2の処理部で実行される命令は、割込み処理の際
    に上記演算実行ユニットで実行中の処理を中断して割込
    み処理を行なう第1の命令と割込み処理の際に上記演算
    実行ユニットで実行中の処理を終了して割込み処理を行
    なう第2の命令とからなり、 上記第2の処理部は、上記第1の処理部から割込み処理
    を受けると、上記演算実行ユニットで実行中の命令が上
    記第1の命令か上記第2の命令かを検出し、上記第1の
    命令なら上記演算実行ユニットで実行中の処理を中断し
    て上記複数の処理ユニットの内部情報を上記記憶部に退
    避し、上記第2の命令なら上記演算実行ユニットで実行
    中の処理を終了してから上記複数の処理ユニットの内部
    情報を上記記憶部に退避し、上記割込み処理を実行する
    ことを特徴とする情報処理システム。
  2. 【請求項2】請求項第1項において、 上記第1の命令と上記第2の命令は、命令の処理時間に
    よって分類していることを特徴とする情報処理システ
    ム。
  3. 【請求項3】請求項第1項又は第2項において、 上記第1の命令は、浮動小数点処理命令のIEEE剰余
    演算命令、剰余演算命令、SIN変換命令、COS変換
    命令、TAN変換命令、SIN・COS同時変換命令を
    含むことを特徴とする情報処理システム。
  4. 【請求項4】請求項第1項又は第2項において、 上記第2の命令は、一般演算命令、座標変換用演算命
    令、判定命令、分岐命令、転送命令、特殊処理命令を含
    むことを特徴とする情報処理システム。
  5. 【請求項5】請求項第1項、第2項又は第4項におい
    て、 上記第2の命令は、浮動小数点処理命令の加算命令、減
    算命令、乗算命令、除算命令、スケーリング命令、絶対
    値命令、符号反転命令、平方根命令、整数値化命令、指
    数値抽出命令、仮数値抽出命令を含むことを特徴とする
    情報処理システム。
  6. 【請求項6】請求項第1項において、 上記第1の命令の実行中に上記割込み処理が発生した場
    合には、予め定められた中断ポイントまで処理を実行
    し、上記複数の処理ユニットの内部情報を上記記憶部に
    退避して割込み処理を実行することを特徴とする情報処
    理システム。
  7. 【請求項7】請求項第1項又は第6項において、 上記退避する内部情報は、上記演算ユニットの内部情報
    と他の複数の処理ユニットのうち処理のされていない命
    令に関する情報であることを特徴とする情報処理システ
    ム。
  8. 【請求項8】請求項第1項、第6項又は第7項におい
    て、 上記退避する内部情報は、上記第2の処理部の識別符号
    と、上記記憶部への転送語数と、内部状態をコード化し
    た情報を含んで構成されるフレームヘッダを有すること
    を特徴とする情報処理システム。
  9. 【請求項9】命令を実行しデータを処理する第1の処理
    部と、上記第1の処理部から与えられた命令を実行しデ
    ータを処理する第2の処理部と上記命名又は上記データ
    を保持する記憶部とを有する情報処理システムにおい
    て、 上記第2の処理部は演算実行ユニットを含む複数の処理
    ユニットからなり、上記複数の処理ユニットはパイプラ
    イン処理によって動作するものであって、上記第1の処
    理部から受けた割込み処理を実行した後の復帰命令の実
    行は、上記割込み処理のために退避した上記第2の処理
    部の識別符号と内部状態を示す内部情報を含んで構成さ
    れる退避情報から、上記識別符号が上記第2の処理部の
    退避情報であることを検出して、退避した上記内部情報
    を復帰させることを特徴とする情報処理システム。
  10. 【請求項10】請求項第9項において、 上記割込み処理のために退避した上記退避情報に処理を
    行ない、上記退避情報を変更して復帰することを特徴と
    する情報処理システム。
  11. 【請求項11】請求項第9項又は第10項において、 上記退避情報の内部情報は、上記演算ユニットの情報と
    他の複数の処理ユニットとの情報を含むことを特徴とす
    る情報処理システム。
  12. 【請求項12】請求項第9項、第10項又は第11項に
    おいて、 上記退避情報には、上記記憶部への転送語数を含み、上
    記転送語数で示される語数の内部情報を復帰することを
    特徴とする情報処理システム。
JP63300575A 1988-11-30 1988-11-30 情報処理システム Expired - Fee Related JPH0652521B2 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP63300575A JPH0652521B2 (ja) 1988-11-30 1988-11-30 情報処理システム
DE68922188T DE68922188T2 (de) 1988-11-30 1989-11-28 Rettungs- und Rückspeicherungsverfahren und Prozessorsystem dafür.
EP89121903A EP0371443B1 (en) 1988-11-30 1989-11-28 A saving and restoring method and a processor system for implementation of the same method
KR1019890017609A KR940003384B1 (ko) 1988-11-30 1989-11-30 저장 및 복귀방법과 이 방법의 실행에 가장 적절한 프로세서 시스템
US08/223,834 US5642499A (en) 1988-11-30 1994-04-06 Method and apparatus for controlling timing of execution of saving and restoring operations in a processor system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP63300575A JPH0652521B2 (ja) 1988-11-30 1988-11-30 情報処理システム

Publications (2)

Publication Number Publication Date
JPH02148164A JPH02148164A (ja) 1990-06-07
JPH0652521B2 true JPH0652521B2 (ja) 1994-07-06

Family

ID=17886489

Family Applications (1)

Application Number Title Priority Date Filing Date
JP63300575A Expired - Fee Related JPH0652521B2 (ja) 1988-11-30 1988-11-30 情報処理システム

Country Status (5)

Country Link
US (1) US5642499A (ja)
EP (1) EP0371443B1 (ja)
JP (1) JPH0652521B2 (ja)
KR (1) KR940003384B1 (ja)
DE (1) DE68922188T2 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6785803B1 (en) * 1996-11-13 2004-08-31 Intel Corporation Processor including replay queue to break livelocks
US5987620A (en) * 1997-09-19 1999-11-16 Thang Tran Method and apparatus for a self-timed and self-enabled distributed clock
WO2004084064A2 (en) * 2003-03-19 2004-09-30 Koninklijke Philips Electronics N.V. Type conversion unit in a multiprocessor system
EP1622009A1 (en) * 2004-07-27 2006-02-01 Texas Instruments Incorporated JSM architecture and systems
US7490223B2 (en) * 2005-10-31 2009-02-10 Sun Microsystems, Inc. Dynamic resource allocation among master processors that require service from a coprocessor
JP5668573B2 (ja) * 2011-03-30 2015-02-12 日本電気株式会社 マイクロプロセッサ、メモリアクセス方法

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3789365A (en) * 1971-06-03 1974-01-29 Bunker Ramo Processor interrupt system
JPS5528190A (en) * 1978-08-22 1980-02-28 Nippon Telegr & Teleph Corp <Ntt> Microprogram control system
JPS5697154A (en) * 1979-12-29 1981-08-05 Nec Corp Interruption control system for information processor
JPS59144955A (ja) * 1983-02-08 1984-08-20 Nec Corp 情報処理装置
US4750110A (en) * 1983-04-18 1988-06-07 Motorola, Inc. Method and apparatus for executing an instruction contingent upon a condition present in another data processor
US4715013A (en) * 1983-04-18 1987-12-22 Motorola, Inc. Coprocessor instruction format
US4977497A (en) * 1988-03-23 1990-12-11 Mitsubishi Denki Kabushiki Kaisha Data processor

Also Published As

Publication number Publication date
EP0371443A2 (en) 1990-06-06
DE68922188T2 (de) 1995-09-14
EP0371443B1 (en) 1995-04-12
KR940003384B1 (ko) 1994-04-21
EP0371443A3 (en) 1992-02-12
JPH02148164A (ja) 1990-06-07
US5642499A (en) 1997-06-24
DE68922188D1 (de) 1995-05-18
KR900008402A (ko) 1990-06-04

Similar Documents

Publication Publication Date Title
US5349667A (en) Interrupt control system for microprocessor for handling a plurality of maskable interrupt requests
CA1321655C (en) Tightly coupled multiprocessor instruction synchronization
JP2535518B2 (ja) デ−タ処理システム
JPH0758466B2 (ja) ソース命令実行をエミュレートする装置
US20030206173A1 (en) Geometry processor capable of executing input/output and high speed geometry calculation processing in parallel
JPH11154144A (ja) プロセッサをコプロセッサにインタフェースするための方法および装置
US5884062A (en) Microprocessor with pipeline status integrity logic for handling multiple stage writeback exceptions
US6216222B1 (en) Handling exceptions in a pipelined data processing apparatus
EP0287115B1 (en) Coprocessor and method of controlling the same
US20220075626A1 (en) Processor with instruction concatenation
US8291436B2 (en) Synchronization of event handlers
JPH0652521B2 (ja) 情報処理システム
JPH01177127A (ja) 情報処理装置
US20140089646A1 (en) Processor with interruptable instruction execution
JP2754825B2 (ja) マイクロプロセッサ
JPH01140330A (ja) 高性能cpu−fpuクラスタ用パイプライン型スレーブプロトコル
US4991130A (en) Normalization control system for floating point arithmetic operation
JP2000235489A (ja) プロセッサ
JPH01243167A (ja) データ処理装置
RU2427883C2 (ru) Окончание инструкции с учетом потребляемой энергии
JP2667864B2 (ja) データ処理装置
JPH05165652A (ja) タスク切替え制御方法
JPH05250161A (ja) マイクロコンピュータ装置
JPH05143320A (ja) 浮動小数点演算方式および浮動小数点演算装置
JPH052485A (ja) パイプライン制御方式

Legal Events

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