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

情報処理システム

Info

Publication number
JPH02148164A
JPH02148164A JP63300575A JP30057588A JPH02148164A JP H02148164 A JPH02148164 A JP H02148164A JP 63300575 A JP63300575 A JP 63300575A JP 30057588 A JP30057588 A JP 30057588A JP H02148164 A JPH02148164 A JP H02148164A
Authority
JP
Japan
Prior art keywords
instruction
processor
command
save
information
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
JP63300575A
Other languages
English (en)
Other versions
JPH0652521B2 (ja
Inventor
Mamoru Oba
衛 大場
Shigeki Morinaga
茂樹 森永
Mitsuru Watabe
満 渡部
Hiroyuki Kida
博之 木田
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 EP89121903A priority patent/EP0371443B1/en
Priority to DE68922188T priority patent/DE68922188T2/de
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 OR CALCULATING; 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 OR CALCULATING; 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 OR CALCULATING; 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 OR CALCULATING; 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 or look ahead
    • G06F9/3861Recovery, e.g. branch miss-prediction, exception handling
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Artificial Intelligence (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Advance Control (AREA)
  • Multi Processors (AREA)
  • Debugging And Monitoring (AREA)

Abstract

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

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は、プロセッサ及びその内部状態の退避。
復帰方法に係り、特にホストのプロセッサのコプロセッ
サである浮動小数点プロセッサ、及びそのプロセッサに
好適な退避、復帰方法に関する。
〔従来の技術〕
従来、コプロセッサの退避方法については、アイ・イー
・イー・イー、マイクロ、ボリュウム3゜ナンバー6(
アイ・ニス・ニス・エヌ 0272−1732)第54
項(IEE[E、 MICRO,Vol、ua+e3N
un+ber6 (ISSN  0272−1732)
pp54)において論じられている。
〔発明が解決しようとする課題〕
上記従来技術は、退避命令を受付けるとコプロセッサに
て実行中の命令の実行時間にかかわらず、中断をして退
避命令を即座に実行させるようにしていた。しかし、そ
の都度コプロセッサにて実行中の命令を中断させて外部
記憶装置に一旦退避させ、その後復帰させることはホス
トのプロセッサに待ち状態を強いることなどにもつなが
り、応答性の点で問題があった。つまり、」二記従来技
術は、コプロセッサの退避方法についての一般的な記載
に止まり、退避命令、及び復帰命令の実行時間の短縮の
点について配慮がされておらず、コプロセッサやシステ
ム全体の処理能力を低下させるという問題があった。
本発明の目的は、退避命令により記憶装置に退避する情
報と、復帰命令によりプロセッサに再び格納する情報と
を、退避命令受付は時のプロセッサの状態に応じて必要
最小限の情報とすることにより、プロセッサの退避命令
、及び復帰命令の実行時間を短縮し、プロセッサやシス
テム全体の処理能力を向上させることにある。
〔課題を解決するための手段〕
上記目的は、実行中の命令による処理を常に中断して退
避命令を実行するのではなく、実行時間の長い命令と短
い命令とに分けるなどして、処理を中断して退避命令の
実行を開始するか、実行中の命令による処理が終了する
のを待った後に退避命令の実行を開始するか、を選択す
ることにより達成される。
また、復帰に際しては、退避情報の正当性を評価して、
正当である場合のみ復帰を行なうように構成する点も特
徴としている。
〔作用〕
退避命令により記憶装置に転送する必要の有る情報は、
プロセッサの状態により異なり、命令の処理の途中で中
断した方がよい場合と、そうでない場合がある。本発明
の退避、復帰方法によれば。
実行時間の短い命令を処理中などに退避命令を受付けた
ときは、処理の終了を待った後に退避命令の実行が行な
われるため、退避命令及び復帰命令の実行時間が短縮さ
れることになる。
〔実施例〕
以下、本発明の一実施例を図面を用いて説明する。第2
図に、浮上小数点演算を高速に実行可能とするマイクロ
コンピュータ・システムを示す。
このシステムは、浮動小数点演算を行なうために、CP
 U  (Central  Processing 
 Unit)  1 0 0  とF P U (Fl
oatingpoint Processing Un
it)  101の2つの演算回路を持つものである。
CPU100は本来、整数型タイプのデータのみを演算
するもので、本実施例によるシステムでは浮動小数点タ
イプのデータの演算を行なわない。これは、CPU10
0で浮動小数点演算も行なおうとするとソフトウェアの
サポートが必要となり演算速度が遅くなってしまうから
である。よって本実施例によるシステムでは、浮動小数
点演算を専用に行なうFPUIOIをコプロセッサとし
て別に設け、i11動小数タイプのデータを高速演算す
るように構成している。ROM (Read 0nly
 Memory) 102は、前記CPU100とFP
UIOIの2つの演算回路への命令が混在するプログラ
ムを格納している。しかし、命令を解読できるのはCP
U100である。そのため、FPUIOIはCPU10
0とのプロトコルにより高速にインターフェイスされる
。ここで、このようなFPUIOIをコプロセッサと呼
ぶことにする。
RAM (Itandom Access Memor
y) 103は、整数型や浮動小数点型のデータを保持
するものである。104は、CPU100から出力され
るアドレス・バスである。105は、データ・バスで、
106は、インターフェイスに関するための制御を行な
うコントロール・バスである。
第1図は、71動小数点演算コプロセッサ(FPU)1
01のブロック図を示す。
200は、高速のコプロセッサ・インターフェイスを実
行スるバス・コントロール・ユニット(B CU)であ
る。該BCtJ200に接続されていル入出力信号は、
CLK、D31〜DO,C8゜〜CPSTO,BAT3
〜BATO,A2〜AOである。CLKは、外部から供
給されるりaツク信号で、浮動小数点演算コプロセッサ
の内部動作の基準となる信号である。D31〜Doはデ
ータ(言号で、C8は、FPUIOIを選ぶためのチッ
プ・セレクト信号である。ASは、アドレス・バス10
4上にアドレス信号が存在することを示すアドレス・ス
トローブ信号である。R/Wデータはデータ転送方向を
示す入力信号であり、CPUが外部メモリをリードする
場合は′1″となり、ライトの場合では“0″となる。
DCはデータ・バス105上のデータ転送が終了したこ
とを示す。
CPU 100とFPUIOI間でデータを転送する場
合、DCはFPUIOIからcPUlooへ出力される
。また、FPUIOIと外部メモリ間でデータを転送す
る場合は、外部メモリよりFPUIOIに入力される。
CDEは、コプロセッサ・データ・イネーブル信号であ
り、この信号がアサートされて、1クロツク・サイクル
経過の後、FPUOIは、デスティネーションオペラン
ドをデータ・バス105上1出力する。この信号は出力
タイミング認識信号として、CPU100より与えられ
る。CPST2〜CPSTOは、FPUIOIの内部動
作状態を示す信号である。
また、BAT2〜BATOは、CPU100より出力さ
れるアクセスの種類を示す信号である。
FPUIOIはCPU100より転送される制御情報の
タイプを、これら信号により認識して動作する。
つまり、FPUIOIは、CPU100からBAT2〜
BATOを受けて動作し、動作状態としてCPST2〜
CPSTOをCPU100に返すことで、コプロセッサ
・プロ1−コルを実行する。
第1表、第2表は、それぞれCPST2〜CPSTO,
BAT2〜BATOのデコート表である。
A2〜AOは、CPU100から出力されたアドレス・
データ信号である。
BCU200内の214は、CPU100より発行され
た、コマンドを格納する、BCUコマンド・レジスタ 
(BCMR)である。
第1表 CPST2〜CPSTOのデコード表第2表 
BAT2〜BATOのデコード表201は、外部型式で
記述されている単精度データ、倍精度データおよび拡張
倍精度データを内部型式(拡張倍精度型式)のデータに
変換するフォーマット変換ユニット(FCU)である。
FCU201への入出力データは、B CU 200と
、変換データ・バス206を介して、受渡しが行なわれ
る。その動作の一例を第3図に示す。例えば、BCU2
00に格納された外部データが単精度データ (符号1
ビツト、指数8ビツト、仮数23ビツト)の場合、その
データは、変換データ・バス206を介して、FCU2
01へ人力される。FCU201へ入力された単精度デ
ータは、第3図に示すように、指数部はIEEEの規格
によってバイアス値の除去を行ない、指数15ビツトと
する。また仮数部は23ビツトを上位ビット側につめて
設定し、その残りのビットは全てO′″とする。一方、
FCU201からBCU200ヘデータを転送する場合
、FCU’201は、内部型式(拡張倍精度)から指定
された外部型式の第23図とは逆の変換をする。
219は、FCU201が外部データを、内部形式に変
換した後の格納場所であり、エフユニット・インプット
・レジスタ(F I R)と呼ぶ。
220は、FCU201が内部型式データを、指定され
た外部型式に変換した後の格納場所であり、エフユニッ
ト・アウトプット・レジスタ(FOR)と呼ぶ。
212は、FCU201が、CPU100の発行した浮
動小数点命令を格納する、エフユニット・コマンド・レ
ジスタ(FCMR)である。
FCMR212は、FCU201が変換したデータが、
CPU100が発行したどの浮動小数点命令で使われる
かを示す。
213は、FCU201が、CPU 100が発行した
命令アドレスを格納する。エフユニット・命令アドレス
・レジスタ(F i AR)である。
202は、浮動小数点演算を行なう演算装置(EU)で
ある。Eu2O3は、FCU201から変換された内部
型式(拡張倍精度)のデータを、演算データ・バス20
7を介して受取り、所望の演算を実行する。
Eu2O3内の215は、8ワードで構成されている浮
動小数点レジスタ(FRO〜FR7)で演算に使われる
データや、演算結果を格納する。
216は、8ワードで構成されるテンポラリ−・レジス
タ(TRO−TR8)で、演算の途中結果を格納する。
217は、Eu2O3がCPU100の発行した浮動小
数点命令を格納する、EUコマン1〜・レジスタ(EC
MR)である。Eu2O3は、このECMR217に格
納されている浮動小数点令を実行する。
218は、Eu2O3がCPU100の発行した命令ア
ドレスを格納する。EU命令アドレス・レジスタ (E
iAR)である。
Eu2O3は、上記の各レジスタの他に、ALIJ。
バレルシフタ、乗算器などで構成されている。
203は、浮動小数点演算命令を実行するためのマイク
ロプログラム(MAC)であり、そのMAC203から
出力された命令実行コード209は命令デコーダ204
を介して、各ユニットFCU201とEu2O3はそれ
ぞれFCU制御信号群211とEU制御信号群21.0
によって制御される。
205は、MAC203を制御するための命令シーケン
サ(ISC)である。またl5C205へのコマンドは
命令バス208を介して、BCU200から出力された
ものである。
第4図は、FPUlolのパイプライン制御方式を説明
するタイミング図である。この図では、k番目のコマン
ドCMDk〜(k+3)番目のコマンドCMDk+aの
実行の流れを示している。
CPU 100とRAM103から1次々と転送された
、CMDk、0PSk、IARkは、FPUIOIノデ
ータ・バス105を介してBCU200に入力される。
このうち、コマンドは、命令バス208を介して命令シ
ーケンサへ入力される。また、オペランドは、変換デー
タ・バス206を介して、フォーマット変換ユニツh(
FCU)201へ人力される。(例えば、■状態で、k
番目のオペランド0PSkがFCU201に入力され、
フォーマット変換が実行される。) 次に、FCU201にてフォーマット変換されたデータ
は、浮動小数点演算装置EU202へ送られ、k番目の
コマンドCMDkの実行を開始する。その実行が開始さ
れると同時に、次の(k+1)番目のコマンドCMDk
+tのフェッチを開始する(■状態)。
コノように、BCU200.FCU201とEu2O3
の実行をパイプライン制御することにより、■の終りで
、(k−1)番目のコマンドCMDk−x、■の終すテ
、k番目ノコマントcMDk。
■の終りで(k+1)番目のコマンドCMDk+t、■
の終りで(k+2)番目のコマンドCMDk+zの演算
結果を得ることができる。第4図では、ソース・オペラ
ンドはメモリから、ディスティネーション・オペランド
はレジスタからの場合を示している。
以上の様に、FPUIOIは、より高速な処理を実現す
る為に、BCU200.FCU201およびEu2O3
を独立に動作させる事が可能である。FPUIOIは、
3つのユニットともにコマンドを格納するレジスタと、
命令アドレスを格納するレジスタを有しj現在実行して
いるコマンドを記憶する。これにより、FPUI O1
は、パイプライン制御においても例外発生による異常停
止の原因解析を、容易にする事ができる。
(1)退避命令の実行 次にCPU100が、FPUIOIへ発行するコマンド
のうち、本発明のポイントとなるFSAVEコマンドに
ついて説明する。FSAVEコマンドは、一般の転送命
令では転送する事のできない、FPUIOIの内部状態
や情報を、RAM103などの外部リソースへ、−見出
力する処理、すなわち退避を行なう。すなわち、FSA
VEコマンドは、マルチタスクや異常停止の解析に対応
するために、FPUIOIの内部状態の退避を行なうも
のである。退避命令の実行開始はFPUIOIの内部状
態への依存性が強く、CPU100に待ち状態を強いる
場合もあり得る。そこで本発明は応答性を高める退避方
法を実現したものである。
ここで、退避、復帰が必要となる場合を具体例でもうす
こし詳しく説明すると、 i)タスク・スイッチ FPUで現在実行中の、タスクAをO8が別のタスクB
に切換える際、タスクAの途中結果を保存する為に、退
避命令(FSAVE)がO8より発行される。
また、再びタスクAを実行する際に保存した途中結果を
F P Uに戻す為に復帰命令が発行される。
it)例外解析 例外等の原因で異常停止してしまったFPUに対して、
その原因を解析する為に、FPU内の各レジスタのデー
タをメモリに転送し、そのメモリの内容を参照する。
等の場合が考えられる。
第5図に、FSAVEコマンドの実行手順を、CPU1
00.FPUIOI、RAM103について示す。CP
U100は、FSAVE:17’zドと、その命令アド
レスをFPUIOIに対して発行する。一方、FPUI
 O1はcPUloOがら発行されたコマンドが、FS
AVEである事を認識すると、BCU200.FCU2
01.Eu2O3のそれぞれが、実行中や停止中など、
内部状態にかかわらず、無条件にFSAVEコマンドを
受は付け、CP U 100 ニ対しcPsT2〜CP
STOより、コマンド受付は済み(ACC)を通知する
FPUlolの受は付けたFSAVE:+マントの処理
の開始はFPUのEu2O3の状態と、実行しているコ
マンドによって異なる。第3表にEu2O3の状態とF
SAVEコマンドの処理開始の関係を示す。
第  3  表 注(申1)FREM: IEEE剰余演算命令FMOD
:東金演算命令 FSIN:SIN変換命令 FeO2:CO8変換命令 FTAN:TAN変換命令 FSINCO5: S I N −Co S同時変換命
令ここで、FREM、FMOD、FS IN、FeO2
゜FTAN、あるいはFSINCO3は、FPUIOI
が実行する浮動小数点命令のうち、比較的、処理時間の
長い命令のグループである。FPUIOIは、このグル
ープのコマンド実行中にFSAVEコマンドを受は付け
ると、その処理を中断した後、FSAVEコマンドの処
理を実行する。したがって、この時EU202の内部状
態として出力するのは、中断したコマンドの中途結果で
ある。
また、上記以外のコマンド実行中にFSAVEコマンド
を受付けた場合は、コマンド実行終了までFSAVEの
処理は開始しない。これは、上記のコマンドに対して処
理時間が短い為、そのコマンドの実行の終了を待っても
FPUiO1全体の処理時間には、大きな影響を与えな
いからである。
いわゆる処理時間の短いコマンドとしては、FADD 
(加算)、FSUB (減算)、FMUL(乗算)、p
prv (除算)の四則演算に用いるコマンドや、 F
SCALE (スケーリング)、FABS(絶対値)、
FNEG (符号反転)、FSQRT(平方根)、FI
NT、FINTRZ(整数値化)。
FEXTE (指数値抽出)、FEXTM (仮数値抽
出)などの一般演算のコマンド、座標変換用演算2判定
2分岐、転送、特殊処理などに用いられるコマンドが挙
げられる。
次に、FPUIOIはFSAVE:+マントの処理を実
行する。ここで、FPUIOIは、RAM103に、退
避情報として、第1ワードに転送する内部状態と、その
情報量を示す転送語数(W C)を出力する。以下、こ
の第1ワードをフレームヘッダ(F H)と呼ぶ。第6
図にフレームヘッダの構成を示す。フレームヘッダはC
0P−ID。
EXI、EXO,○PL、EXCO,FIRRQ。
転送語数(WC)より成る。
cop・IDは、EPUIOIが独自に持って。
いる3ピツI・のコプロセッサ識別子である。これによ
り、退避する内部情報がFPUIO1のものである事を
示している。
EXI、EXOは、Eu2O3の実行状態を、第4表の
ように、3状態に定義している。アイドルは、Eu2O
3が実行待ちで停止している状態である。中断処理は、
FPUIOIが実行時間の長い、FREM、FMOD、
FSIN、FeO2゜FTANあるいはFSINCO3
のコマンド実行中に5FSAVEコマンドを受付けた場
合で、Eu2O3がそれらのコマンドの実行を中断し停
止している状態である。また、例外とは、Eu2O3の
実行中に、表現範囲を越える等の異常が発生し、これ以
上実行不可能となり停止している状態である。
第  4  表 OPLは5パイプライン制御によって動作しているEP
UIOI内に、CPU100とのプロトコルは終了した
が、また実行していないコマンドがあることを示す。
EXCOは、前述(7)EXI、EXO=11 (例外
)の時だけ意味を持ち、F S A V Eコマンドの
実行で退避する情報のうち、実行に使われたオペランド
がFCU201によってバイアス調整されていることを
示す。
FIRRQは、FPUlol内の未実行コマンドが入力
オペランドを持っている事を示す。したがって、未実行
コマンドがある事を示すOPLがセットされている場合
にだけ、セットされる可能性がある。
転送語数(WC)は、FPUIOIがフレームヘッダ以
外に退避するワード数を示すものである。
FPUIOIは、EXO,EXI、OPLにより示され
る実行状況により、退避する情報を可変とし、不要な情
報の転送を避けている。退避する情報量は、EXO,E
XI、OPLに従い、−意に決定する。EXI、EXO
,OPLと退避する転送語数の対応を第5表に示す。た
だし、ここでの転送語数はフレームヘッダを含めないも
のであり、実際の転送語数は、この値に1を加えたもの
である。
第  5  表 FPUIOIがFSAVE:+マントにより退避する情
報のフォーマツ1−は6通りある。以下、FPUIOI
の転送内容、転送順序およびメモリイメージを、第7図
〜第12図に示す。
尚、第8図、第10図、第12図中の入力オペランドに
ついて、コマンドによっては入力オペランドがない場合
や1ウードか2ワードしかないものがあるが、この場合
、固定的に3ワードの領域が必要であることを$1)印
で示している。また、第11図、第12図中の例外オペ
ランドについて、例外の種類によっては意味を持たない
場合があることを−2)印で示している・ 以下、順に説明を加える。第13図は、CPU100よ
りFSAVEコマンドが発行された時、FPUIOIの
実行状況が、EXI、EXO=00(アイドル状態)、
0PL=O(未実行コマンドなし)で表わされる時の一
例を示したCPU100とFPUIOIのタイミング図
である。
FS A V Eコマンドが発行される前のFPUlo
oは、BCU200.FCU20L、Eu2O3ともア
イドル状態である。なお、IARkはFSAVEコマン
ドに対する命令アドレスである。
第13図の状態でFSAVEコマンドにより、退避する
情報のフォーマット、転送内容、転送順序、およびメモ
リイメージが第7図である。
FPUIOIより、RAM103のアドレス$n番地に
対して、フレームヘッダを転送するだけで、他の不要な
情報の退避はない。
第14図は、FSAVEコマンドが発行された時、[?
 P U 101 (7)実行状況が、EXI、EXO
=00(アイドル状態)、0PL=1 (未実行コマン
ドあり)で表わされる時の一例を示したCPU100.
!l:FPUIOI(7)タイミング図である。CPU
100は、FSAVE:I?マント発行される前に、コ
マンドCMDkを発行し、それに付随する入力オペラン
ドOr’Sk、命令アドレスIARkの転送がおこなわ
れる。このコマンドCMDkについての一連の転送に対
してFPUlolは、FCU201で入力オペランドO
P S kのフォーマット変換を実行したものの、Eu
2O3はまだ実行を開始していない。第14図の状態で
FSAVEコマンドにより、退避する情報のフォーマッ
ト、転送内容、転送順序、およびメモリイメージが第8
図である。FPUl、01がRAM、103に退避する
内容は、フレームヘシダ、未実行コマンドCM Dk、
未実行アドレスIARk、および入力オペランドIAR
kである。
フレームヘッダiヨ、内部状態とともに転送語数5を示
し、フレームヘッダ自身の転送の他に5ワー1<分の転
送がある事を示している。
FPUIOlにおいて、未実行コマンドCMDkは、F
CU201のFCMI+219に、また未実行アドレス
IARkはFiAR220に、入力オペランド0PSk
は、FIR212に、それぞれ格納されている。
入力オペランド0PSkは1ワードのデータであるが、
退避する時は3ワードの領域を必要とする。これは、1
ワードの入力オペランド0PSkが、フォーマツ1−変
換され、内部フォーマット(3ワード)になっている為
である。
FPUIOIは、RAMIO3に対して次の順序で、上
記の情報の転送をする。
まず、アドレス$n番地にフレームヘッダ、次にアドレ
ス$ n + 14〜$ n + cに、$n+14゜
$n+lO,$n+cの順にフォーマットを変換後の入
力オペランド○PSkを上位バイトから。
次に$n+8に未実行アドレスIARkを、そして最後
に未実行コマンドCMDk を転送する。
第15図は、FSAVEコマンドが発行された時、FP
UIOIの実行状況が、EXI、EXO=10(中断処
理)、0PL=O(未実行コマンドなし)で表わされる
時の一例を示したCPU100とFPUIOIのタイミ
ング図である。
CPU100は、三角関数(S I N)を求めるFS
INコマンドを発行し、それに付随する01)Sk。
命令アドレスIARkが転送される。これに対し、FP
UIOIは、BCU200がFSINコマンドの受付け
た後、FCU201が入力オペランド0PSkのフォー
マット変換をおこなう。続いてEu2O3がフォーマッ
ト変換した入力オペランド0PSkの、SIN値を求め
る演算をおこなう。
その後、CPU100から、FSAVEコマンドが発゛
行されると、FPUIOIはコマンドを受付け、Eu2
O3の演算を中断し、FSAVEコマンドを実行する。
第15図の状態でFSAVEコマンドにより、退避する
情報のフォーマット、転送内容、転送順序およびメモリ
イメージが第9図である。
FPUIOIが・RAM103に転送する内容は、フレ
ームヘッダ、中断コマンドFSIN、中断アドレスIA
Rk 、Eu2O3のテンポラリ−レジスタ216であ
る。
フレームヘッダは内部状態とともに転送語数26を示し
、フレームヘッダ自身の転送の他に26ワ一ド分の転送
がある事を示している。
中断コマンドFSINは、FSAVEコマンドの実行の
為に中断した、FSINコマンドで、Eu2O3内のE
CMR217内に格納されている。
中断アドレスIARkはFSINコマンドに対する命令
アドレスであり、EiAR218に格納されている。
テンポラリ・レジスタ216は、中断したFSINコマ
ンドの途中結果が格納されている。
FPUIOIは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
UIOIの実行状況が、EXI、EXO=10(中断処
理)、0PL=1 (未実行コマンドあり)で表わされ
る時の一例を示したCPU100とFPUIOIのタイ
ミング図である。第15図と同様にFSINコマンドを
例としている。
CPU100は、FSINコマンドを発行し。
それり付随する入力オペランド0PSk、命令アドレス
IARkが転送される。その後、CPU100は直ちに
CMDk+tを発行し、それに付随する0PSk+1 
、IARk+tが転送される。
これに対し、FPUIOIは、BCU200がFSIN
コマンドを受付けFCU201がF’SINコマンドの
入力オペランドであるOPS kのフォーマット変換を
実行し、その後、Eu2O3は、FSINコマンドの演
算をおこなう。EU202がFSINコマンド演算中に
BCU200は、続いてCPU100より転送されたC
MDk+tを受付け、その後、FCU201は、CMD
k+tの入力オペランドである○PSk+tのフォーマ
ット変換をおこなう。この時点では、Eu2O3はFS
INコマンドの実行を継続している。
コノ状態におイテ、CPU100が、FSAvE :]
マントを発行すると、FPUlooはFSAVEコマン
ドを受付け、Eu2O3が実行しているF S I N
コマンドの演算を中断し、FSAVEの実行に移る。な
お、IARk+2はFSAVEコマンドの命令アドレス
である。
第16図の状態でFSAVEコマンドにより、退避する
情報のフォーマット、転送内容、転送順序およびメモリ
イメージを第10図に示す。
FPUIOIがRAM103に転送する内容は、フレー
ムヘッダ、中断コマンドFSIN、中断アドレスIAR
k 、Eu2O3のテンポラリ−レジスタ216.未実
行コマンドCMDk+t、未実行アドレスIARk+1
.コマンドCMDk+tの人力オペランドである0PS
k+xで、全転送数は32ワードである。
フレームヘッダは内部状態とともに転送語数31を示し
、フレームヘッダ自身の転送の他に31ワ一ド分の転送
がある事を示している。
中断コマンドFSINは、FSAVEコマンド実行の為
に中断した、FSINコマンドで、Eu2O3内のEC
MR217内に格納されている。
中断アドレスIARkはFSINコマンドに対する命令
アドレスであり、EiAR218に格納されている。
テンポラリ−レジスタ216は、中断したFSINコマ
ンドの途中結果が格納されている。
未実行コマンドCMDkは、FPUIOIが受付けたも
のの実行はしていないコマンドCMDkで、FCU20
1内のFCMR219内に格納されている。
未実行アドレスIARk+iは、未実行コマンドCMD
kの命令アドレスであり、FCU201内のFiAR2
20に格納されている。
入力オペランド0PSk+tは、CMDkの入力オペラ
ンドで、3ワードのデータとしてFCU201内のFI
R212に格納されている。
FPUO1はRAM L O3に対して次の順序で上記
の情報を転送する。
まず、アドレス$n番地にフレームヘッダを、次に、ア
ドレス$n+7c〜$n+74番地に人力オペランド0
PSk+1を上位バイ1−から、$n+7c、、$n+
78.$n+74の順に転送する。
次に5未実行アドレスIARk+1を$n+70番地に
、未実行コマンドを$n+6c番地に、また$n+68
〜$n+cにテンポラリ・レジスタ7〜テンポラリ・レ
ジスタOの順に、$n+8番地に中断アドレスIARk
を、そして最後に中断コマンドFSINを転送する。
第17図は、FSAVEコマンドが発行された時、FP
ULOIの実行状況がEXI、EXO=11(例外)、
0PL=O(未実行コマンドなし)で表わされる時の一
例を示したタイミング図である。
CPU100は、コマンドCMDkを発行し、それに付
随する入力オペランド0PSk、命令アドレスIARk
が転送される。
これに対し、FPUIOIはBCU200がコマンドC
MDkを受付け、入力オペランド0PSkをFCU20
1でフォーマット変換し、そのデータを用いたEu2O
3が、コマンドCMDkを実行する。しかし、その後演
算の実行途中で1Eu202がオーバフロー等の例外の
発生でこれ以上、演算を続ける事ができず停止した状態
で、CPU100よりFSAVEコマンドが発行されて
いる。なお、命令アドレスIARkはF S A V 
Eコマンドに対する命令アドレスである。
第17図の状態でのFSAVEコマンドにより、退避す
る情報のフォーマット、転送内容、転送順序およびメモ
リイメージを第11図に示す。
FPUIOIがRAM103に転送する内容は、フレー
ムヘッダ、例外コマンドCMDk 、例外アドレスIA
Rk、例外オペランド(テンポラリ・レジスタO)で、
意味をもたないテンポラリ・しジスタフ−テンポラリ・
レジスタ1の転送を含め全転送数は27ワードである。
フレームヘッダは内部状態とともに転送語数26を示し
、フレームヘッダ自身の転送の他に26ワ一ド分の転送
がある事を示している。
例外コマンドCMDkは、例外発生で処理を中断したコ
マンドで、Eu2O3内のECMR217に格納されて
いる。
例外アドレスIARkは、例外が発生したCMDkに対
する命令アドレスで、Eu2O3内のEiRA218に
格納されている。
例外オペランド(テンポラリ・レジスタO)は、Eu2
O3で演算されたオペランドで例外発生の原因となった
データが格納されている。
また、テンポラリ・レジスタ7〜テンポラリ・レジスタ
1は、転送するが特に意味を持たない。
上記の情報の転送順序は次の様になっている。
まず、アドレス$n番地にフレームヘッダを転送する。
次にアドレス$n+68〜$n+18番地に、テンポラ
リ・レジスタ7〜テンポラリ・レジスタ1を転送するが
、その内容は特に意味を持たない。次にアドレス$n+
14〜$n+c番地に例外オペランドとして、テンポラ
リ・レジスタOを上位バイトから、$ n + 14 
、  $ n + 10 。
$ n+cの順に転送する。次に$n+8番地に例外ア
ドレスIARkを、$n千4番地に例外コマンドを転送
する。
第18図は、FSAVEコマンドが発行された時、FP
Uloo(7)実行状況がEXI、EXO=11(例外
)、0PL=1(未実行コマンドあり)で表わされる時
の一例を示したタイミング図である。
CPU100は、コマンドCMDkを発行し、それに付
随する入力オペランド0PSk、命令アドレスIARk
が転送される。次に、コマンドCMDk+1を発行し、
それに付随する入カオペランド○PSk+1.命令アド
レスIARk+tが転送される。
これに対し、FPUIOIはBCU200がコマンドC
MDkを受付け、入力オペランド0PSkをFCU20
1でフォーマット変換し、そのデータを用いETJ20
2が、コマンドCMDkを実行する。Eu2O3がコマ
ンドCMDkを実行している間に、BUC200は、コ
マンドCMDk+tを受付け、入力オペランド0PSk
+tをFCU201でフォーマット変換する。ここでは
、その後、Eu2O3で実行しているコマンドCMDk
に例外が発生し、これ以上、実行不可能となり、Eu2
O3は、例外停止する。次に、CI) U 100は、
FSAVEコマンドを発行する。なお、IARk+zは
、FSAVEコマンドに対する命令アドレスである。
第18図の状態でFSAVEコマンドにより、退避する
情報のフォーマット、転送内容、転送順序およびメモリ
イメージを第12図に示す。
FPUIOIがRAM103に転送する内容は、フレー
ムヘッダ、例外コマンドCMDk 、例外アドレスIA
Rk、例外オペランド(テンポラリ・レジスタO)、未
実行コマンドCMDk+t、未実行アドレスIARk+
1.入力オペランド0PSk+tので、意味をもたない
テンポラリ・レジスタ7〜テンポラリ・レジスタ1の転
送を含め全転送数は32ワードである。
フレーム・ヘッダは内部状態とともに転送語数31を示
し、フレームヘッダ自身の転送の他に31ワードの転送
がある事を示している。例外コマンドCMDk 、例外
オペランドIARk、例外オペランド(テンポラリ・レ
ジスタ0)、および特に意味をもたないテンポラリ・レ
ジスタ1〜テンポラリ・レジスタ7の転送内容について
は、第11図でのそれらと同様で、例外が発生したコマ
ンドCMDk、それに対する命令アドレスIARk。
例外オペランド(テンポラリ・レジスタO)の転送であ
る。
未実行コマンド0閘Dk+1+未命令アドレスIARk
+t、入力オペランドQpSk+1は、第10図のそれ
らと同様で、’FPU101が受は付けたにもかかわら
ず、Eu2O3が例外発生で停止した為に、実行できな
かったコマンドCMDk+t 。
入力オペランド0PSk+1、およびIARk+tであ
る。
これらの、情報はFPUlolからRA M 103に
次の順序で転送される。
まず、アドレス$n番地にフレーム・ヘッダが転送され
、次にアドレス$n+7c番地〜$n+74i地に、未
実行コマンドの入力オペランドが上位バイトから、$n
+7c、$n+78.$n+74の順に転送される。次
にアドレス$n+70に未実行コマンドの命令アドレス
I A Rk ” 1 e$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 を転送する。
以上のように、FPUIOIは、退避命令であるFSA
VEコマンドを受は付けたときFLJ202の状態と実
行しているコマンドの種類(処理時間が長いか短いか)
によって、処理を中断するか、そのまま実行中の処理を
行ないFSAVEコマンドの処理を保たせるかを選択さ
せており、状況に応じた退避が可能となる。
さらに、レジスタの内部状態を退避させると共にコプロ
セッサの識別子(COP・ID)、転送語数(WC)、
EXI、EXO,OPL、EXCO。
F IRRQ等の退避情報を付帯させており、後述する
復帰処理の際の便宜を図っている。
先に、FPUIOIがCPU100から無条件にFSA
VEコマンドを受付ける点について述へたが、その理由
について説明する。
FSAVEの時間的な基準として、次の4つがある。
i)、cpuがFSAVEを発行 2)、FPUがFSAVEを受付け 3)、FPUがFSAVEの実行開始 4)、FPUがFSAVE(7)実行終了また、F S
 A V E ニ対するCPU100への受付は応答は
、次の2つが考えられる。
1)FSAVEを受付けてから、実行の準備をする(無
条件受付け)。
2)実行の準備ができてから、FSAVEを受付ける。
今、F P U I O1ニおいてFSAvEの実行時
間を短縮す対策として、なるべく、FSAVE受付は時
に実行中のコマンドはその終了を待つ事を基本に、実行
時間の長いコマンドについては中断し、FSAVE受付
けから実行開始までの実行準備時間の増大を防いでいる
この、実行準備時間の短縮の対策をとっているFPUに
限って、1)のFSAVEを受付けてから、実行の準備
をする方が、その対策が効果的なものとなる。従って、
FPUは無条件受付を行なっているのである。
(2)復帰命令の実行 FPUO1の内部状態や退避情報を、RAM101など
外部リソースから入力する処理、すなわち復帰を行なう
FRESTコマンドについて説明する。この時、人力す
る内部状態や情報は、FSAVEコマンドで出力された
スタック・フレームである。
CP U I OOと、FPUlol、そしてRAM1
03の間での、FRESTコマンドの実行手順を第19
図に示す。
CPU L OOは、FPUIOIに対してFRIES
Tコマンドを発行する。その直後にCPU100は、R
AM 103に対しフレーム・ヘッダを、F P Ul
olへ転送される。RAM103より転送されるフレー
ム・ヘッダは、第6図のFSAVEコマンドで、退避情
報として転送されたものと同一である。
これに対し、FPUIOIは、内部状態が完全にアイド
ルの時にだけ、FRESTコマンドを受けつける。FP
UIOIが、自らの内部状態を判定し、その結果をCP
U100に対しCPST2〜CPSTOを介し通知する
もし、FPUIOlの内部に未実行、あるいは実行中の
コマンドがある場合、FRESTコマンドが受付けられ
ない通知を受けたCPU100は、RAM 103に対
し、再びフレーム・ヘッダの転送を指示し、FPUIO
Iは、再び内部状態の判定をする。FPUIOIの内部
に未実行、あるいは実行中のコマンドが完全に終了する
まで、この手順が繰り返される。
FPUIOI内部にあるコマンドが完全に終了の場合は
、CPU100にFRESTコマンドの受付けを通知し
た後に、CPU100は命令アドレスを発行する。また
FPUIOIはRA M 103より転送されたフレー
lトヘッダの転送語数のチエツクをする。
フレーム・ヘッダのチエツクは、FSAVEコマンドに
より退避されたフレーム・ヘッダ内の、EXI、EXO
,OPLの組合せと、転送語数の対応を調べるものであ
り、第5表に示される、FSAVE:+マント時(7)
EXI、EXO,OPLと転送語数の対応と一致すれば
、転送語数正常と判定し、CPU100に転送語数正常
を通知する。
また、一致していない場合は1語数例外と判定し、CP
U100に通知する。
語数正常の場合は、CPU100はRA M 103に
、残りの退避する情報(FSAVEコマンドで退避した
情報)を、FPUIOIへ転送させる。
FPUIOIは、フレーム・ヘッダで得た情報から、転
送されてくる情報のフォーマットと、その内容、および
転送順序を認識している為、それらを、対応する内部の
レジスタに格納することができる。
ここで、FPUlooが入力する情報のフォーマットは
、FSAVEコマンドで出力したものと同じ内容である
が、FSAVEの時とは、転送順序が異なる。FPUI
OIが入力する情報のフォーマットは6種類あり、第2
0図〜第25図に転送される内容、順序およびメモリイ
メージを示す。
図中、ml)、*2)印の意味は、第7図〜第12図と
同様である。
第20図は、RAM 103内に格納されているフレー
ムヘッドのEXI、EXO,OPLのフィールドが、E
XI、EXO=OO(アイドル状態)。
0PL=O(未実行コマンドなし)の時の、FPUIO
Iが入力する、情報のフォーマツ1〜である。第7図の
FSAVEコマンドにより、FPUIOIからRAM 
103に退避された情報と対応しており、FRESTコ
マンドでは、RAM 103から、FPUIOIへ、転
送される。
このフレームヘッドの転送語数は、Oを示しフレームヘ
ッド以外の転送がない事を表わしている。
第22図は、第20図と同様に、FRESTコマンドで
FPUIOIに入力する情報の内容と、転送順序である
。この転送内容は、FSAVEコマンドによりRAM1
03に退避されたものと対応しており、FPUIOIに
復帰する際は、転送順序だけが異なる。フレームヘッダ
が示すFPUlolの実行状況は、EXI、EXO=O
O(アイドル状態)、0PL=1(未実行コマンドあり
)であり、転送語数は6ワードである。
転送順序は、まずRAM 103のアドレス$nに格納
されているフレームヘッダを転送し、次に$n+4の未
実行コマンドを転送し、次に$n+8の未実行アドレス
を転送し、最後に3ワ一ド分のオペランドを下位バイト
より$ n + c * $ n +10、$n+14
の順で転送する。
第23図は、FRESTコマンドでFPUIOIに入力
するスタックフレームで、FPUの実行状況がEXI、
EXO=OO,○PL=1の時にFSAVEコマンドに
より退避した情報である、第9図と対応している。第2
3図で、RA M 103からFPUIOIに転送され
る情報の内容と、第8図で、FPUIOIからRAM 
I O3に転送された情報は一致している。相違点は転
送順序でフレームヘッダの転送を除き、FPUIOI−
RAM 103間の転送では、RAM103のアドレス
の大きい方から小さい方へ転送したが、RAMl03−
FPUIO1間の転送は、逆にRAM 103のアドレ
スの小さい方から大きい方に向って転送される。
同様に第23図のFPUIOIがFRESTコマンドで
入力する情報は、第10図でF P U 101がFS
AVEコマンドにより退避した情報と対応している。
以下、第23図と第11図、第25図と第12図が、そ
れぞれFSAVEコマンドで退避した情報と、FRES
Tコマンドで復帰する情報とが対応している。
F RE S Tコマンドを実行することで、FPUl
olは、入力された情報のフォーマットの内容に対応し
た状態に戻る。フレーム・ヘッダ中のEXI、EXO,
OPLの値と、FRESTによって回復される状態と、
FRESTコマンド実行直後の状態を第6表に示す。
第6表のように、FRESTコマンドによりF P U
 101はFSAVE:l?ンドにより、コマンド実行
を中断した時点から処理を再開する。
第  6  表 また、FSAVEコマンドにより、メモリに退避したフ
レーム・ヘッドの利用方法として。
■)、異常停止しているFPUを、例外解析終了後、再
起動される為に、EXO,EXl=LLの状態のフレー
ム・ヘッドをOOに変え、FPUに復帰する。
2)、フレーム・ヘッドのCOP・IDを変える事によ
り、他のFPUに復帰する。
等が考えられ、退避した状態とは異なる状態などから命
令の再開が可能となる。
このようにFPUIOIへ退避情報を復帰させる際に、
内部状態に応じてFRESTコマンドを受付けるか否か
正当性を判断し、転送語数を確認して退避を行なうため
、他の命令実行中のFPUlolの動作に悪影響などを
与えることなく復帰をすることが可能となる。
更に、他の実施例について述べる。
FSAVE、FREST(7)実行時間を短縮する為の
着目点は、FSAVEを受付けた時に実行中のコマンド
をどう扱うかによって、 1)実行中のコマンドを中断した後、FSAVEの実行
を開始すると、その中断による途中結果も退避する必要
が生じ、転送数が増え′、結果としてFSAVEの実行
時間が長くなる。
2)実行中のコマンドの終了を待った後に。
FSAVEの実行を開始すれば、中断による途中結果を
退避する必要がなく、転送数が減る。
という点にある。
したがッテ、FSAVE、FREST(7)実行時間の
短縮は、FSAVE受付けから実行までの時間と、転送
数とのトレードオフによる。
その解として、実行中のコマンドの実行時間により中断
したり終了を待ったりする方法を採用したわけであるが
、中断する実行時間の長いコマンドについても、転送数
を少なくする対策として、コマンドの処理動作を検討し
、中断した場合に転送数が少なくすむポイントを数ケ所
設け、そのポイントで中断する方式を採ると一層効果的
である。
本発明は、FPUに限定されるものではなく、ホストと
なるプロセッサのコプロセッサに広く適用可能である。
(すなわち、ホストとなり得るプロセッサから退避・復
帰命令がなされるプロセッサには適用できるものである
。) また、本発明にかかる記憶装置は外部記憶装置に限らず
プロセッサ内部に設けてもよい。更に記憶′!A置にキ
ャシュを設けたものであれば、高速実行の点でより効果
である。
〔発明の効果〕
本発明によれば、退避命令、及び復帰命令に対して5命
令受付は時の必要最小限の情報のみ、記憶装置に転送し
、または記憶装置から転送されるので、退避命令、復帰
命令の転送に要する時間も必要最小限となり、この両命
令の実行時間を短縮できる。
【図面の簡単な説明】
第1図は本発明にかかる浮動小数点演算プロセッサのブ
ロックの一実施例を示す図、第2図は本発明の一実施例
にかかるコプロセッサを含むマイコンシステムの全体図
、第3図はフォーマット変換機能を説明する図、第4図
は本発明にかかるコマンド・パイプ・ライン制御のタイ
ミングを示す図、第5図は本発明の一実施例にがかるF
SAVEコマンドの実行手順を示す図、第6図は本発明
にかかるフレーム・ヘッダのフォーマットを説明する図
、第7図〜第12図は退避情報のフォーマットの一実施
例を示す図、第13図〜第18図は浮動小数点演算器の
内部状態を説明するタイミングを示す図、第19図は本
発明の一実施例にがかるFRESTコマンドの実行手順
を示す図、第20図〜第25図は復帰情報のフォーマッ
トの一実施例を示す図である。 100・・・CPU、101・・・FPU、102・・
・1(OM、103・・・RAM、200・・・BCU
、201・・・FCυ、202・・・EU、203・・
・MAC1204・・・命令デコーダ、205・・・l
5C1206・・・変換データ・バス、207・・・演
算データ・バス、208・・・命令バス、209・・・
命令実行コード、210・・・EU制第2図 第 図 (拡張倍精度) 第 図 EXI、EXO=10,0PL=0 全転送数=27ワード 第7図 EXI、EXO=OO,0PL=0 全転送数=1ワード アト  転送 第 図 EXI、EXO=OO,0PL=0 全転送数=6ワード 第 図 EXI、EXO=10,0PL=1 全転送数=32ワード EU 第 図 EXI、EX=11.0PL=0 全転送数=27ワード 第13図 第14図 第 図 EXI、EXO=11,0PL=1 全転送数=32ワード 第19図 第20図 第21図 アト 転送 第22図 第24図 アト 転送 第23図 EXI、EXO=10,0PL=1 全転送数=32ワード アト   転送 第25図 アト 転送

Claims (1)

  1. 【特許請求の範囲】 1、与えられた命令に応じて処理を実行する演算部を備
    え、退避命令を受付けたとき内部状態を記憶装置に退避
    するプロセッサにおいて、上記退避命令を受付けたとき
    、上記演算部にて実行中の命令の処理を中断して上記退
    避命令の実行を開始するか、又は上記実行中の命令の処
    理が終了するのを待つた後に上記退避命令の実行を開始
    するか、を選択することを特徴とするプロセッサの退避
    方法。 2、請求項第1項において、プロセッサに与えられる命
    令を実行時間の長い命令と短い命令とに分類し、上記退
    避命令を受付けたとき、上記演算部にて実行中の命令が
    実行時間の長い命令の場合には処理を中断して上記退避
    命令の実行を開始し、実行中の命令が実行時間の短い命
    令の場合には処理が終了するのを待つた後に上記退避命
    令の実行を開始するプロセッサの退避方法。 3、請求項第2項において、上記実行時間の長い命令の
    処理の中で中断するポイントを予め設けたプロセッサの
    退避方法。 4、請求項第1項において、退避命令により、内部状態
    を示すレジスタに格納された情報と共に他の退避情報を
    合せて出力するプロセッサの退避方法。 5、請求項第4項において、上記退避情報は、プロセッ
    サの識別符号と、記憶装置への転送語数と、内部状態を
    コード化した情報を含むプロセッサの退避方法。 6、与えられた命令に応じて処理を実行する演算部を備
    え、退避命令を受付けたとき内部状態を記憶装置に退避
    するプロセッサにおいて、上記退避命令を受付けたとき
    、上記演算部にて特定の命令を実行中の場合のみ、処理
    を中断して上記退避命令の実行を開始させることを特徴
    とするプロセッサの内部状態を退避方法。 7、復帰命令を受付けたとき、記憶装置に退避したプロ
    セッサの内部状態と他の退避情報を復帰させるプロセッ
    サにおいて、上記復帰命令を受付けたとき、上記退避情
    報の正当性を評価し、正当である場合のみ、上記退避し
    た内部状態と上記退避情報とを格納することを特徴とす
    るプロセッサの復帰方法。 8、請求項第7項において、上記退避情報は、プロセッ
    サの識別符号と、記憶装置への転送語数と、内部状態を
    コード化した情報を含むプロセッサの復帰方法。 9、請求項第8項において、上記正当性の評価は、上記
    プロセッサの識別符号の一致と、上記転送語数及び内部
    状態をコード化した情報との対応関係により行なうプロ
    セッサの復帰方法。 10、請求項第7項において、上記退避情報を操作する
    ことにより、退避命令を受付けた状態とは異なる状態に
    て復帰させるプロセッサの復帰方法。 11、与えられた命令に応じて処理を実行する演算部を
    備え、退避命令を受付けたとき、内部状態と他の退避情
    報を記憶装置に退避し、復帰命令を受けたとき、その記
    憶装置に退避した内部状態と他の退避情報を復帰させる
    プロセッサにおいて、上記退避命令を受付けたとき、上
    記演算部にて実行中の命令の処理を中断して上記退避命
    令の実行を開始するか、又は上記実行中の命令の処理が
    終了するのを待つた後に上記退避命令の実行を開始する
    かを選択して上記退避命令を実行し、上記復帰命令を受
    付けたとき、上記退避情報の正当性を評価し、正当であ
    る場合のみ上記退避した内部状態と退避情報とを格納し
    て復帰命令を実行することを特徴とするプロセッサの退
    避及び復帰方法。 12、与えられた命令に応じて処理を実行する演算部を
    備え、退避命令を受付けたとき内部状態と記憶装置に退
    避するプロセッサにおいて、上記退避命令を受付けるイ
    ンタフェイス部と、上記演算部にて実行中の命令の処理
    を中断して上記退避命令の実行を開始するか、又は上記
    実行中の命令の処理が終了するのを待つた後に上記退避
    命令の実行を開始するか選択する手段を備えたことを特
    徴とするプロセッサ。 13、請求項第12項において、退避した内部状態を内
    部のレジスタに復帰させる手段を備えたプロセッサ。 14、請求項第12項において、上記記憶装置をプロセ
    ッサ内部に備えたものであるプロセッサ。 15、請求項第12項において、上記記憶装置にキャッ
    シュを設けたものであるプロセッサ。 16、請求項第12項において、上記プロセッサの外部
    に他のホストのプロセッサが接続され、そのホストのプ
    ロセッサより退避命令を受付けるコプロセッサ構成のプ
    ロセッサ。 17、請求項第12項において、上記プロセッサは浮動
    小数点演算を専用に行なうものであるプロセッサ。
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 情報処理システム
EP89121903A EP0371443B1 (en) 1988-11-30 1989-11-28 A saving and restoring method and a processor system for implementation of the same method
DE68922188T DE68922188T2 (de) 1988-11-30 1989-11-28 Rettungs- und Rückspeicherungsverfahren und Prozessorsystem dafür.
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 true JPH02148164A (ja) 1990-06-07
JPH0652521B2 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 (7)

* 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
RU2117326C1 (ru) * 1998-01-29 1998-08-10 Алешин Борис Сергеевич Вычислительная система на базе матрицы процессорных элементов
US20060179285A1 (en) * 2003-03-19 2006-08-10 Bekooij Marco J G 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 日本電気株式会社 マイクロプロセッサ、メモリアクセス方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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 情報処理装置

Family Cites Families (4)

* 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
US4715013A (en) * 1983-04-18 1987-12-22 Motorola, Inc. Coprocessor instruction format
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
US4977497A (en) * 1988-03-23 1990-12-11 Mitsubishi Denki Kabushiki Kaisha Data processor

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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 情報処理装置

Also Published As

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

Similar Documents

Publication Publication Date Title
EP0740249B1 (en) Data processing device with coprocessor
US5349667A (en) Interrupt control system for microprocessor for handling a plurality of maskable interrupt requests
US6216222B1 (en) Handling exceptions in a pipelined data processing apparatus
US5884062A (en) Microprocessor with pipeline status integrity logic for handling multiple stage writeback exceptions
EP0287115B1 (en) Coprocessor and method of controlling the same
US7051146B2 (en) Data processing systems including high performance buses and interfaces, and associated communication methods
JPH02148164A (ja) 情報処理システム
JPS63261449A (ja) デ−タ処理装置
IL155298A (en) Locking source registers in a data processing apparatus
JPH07120338B2 (ja) 共同プロセッサによる命令の実行をデータプロセッサが調整する方法および該データプロセッサ
EP0385136B1 (en) Microprocessor cooperating with a coprocessor
US6922771B2 (en) Vector floating point unit
EP1039376B1 (en) Sub-instruction emulation in a VLIW processor
EP0936540B1 (en) Information processing apparatus having a CPU and an auxiliary arithmetic unit
EP0306891A2 (en) Pipelined slave protocol for high performance CPU-FPU cluster
JP2520882B2 (ja) デ−タ処理装置およびデ−タ処理方法
JPH01297727A (ja) 浮動小数点演算の正規化制御方式
JPS623347A (ja) エラ−回復情報退避方式
JP2510691B2 (ja) 演算処理方法
JP2000235489A (ja) プロセッサ
JPH0524537B2 (ja)
JPS62154023A (ja) オペランド・デ−タのマスク読み出し制御方式
JPS6393065A (ja) コ・プロセツサid変換方式
JPH0242530A (ja) 中央処理装置

Legal Events

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