JPH1196006A - 情報処理装置 - Google Patents

情報処理装置

Info

Publication number
JPH1196006A
JPH1196006A JP9255012A JP25501297A JPH1196006A JP H1196006 A JPH1196006 A JP H1196006A JP 9255012 A JP9255012 A JP 9255012A JP 25501297 A JP25501297 A JP 25501297A JP H1196006 A JPH1196006 A JP H1196006A
Authority
JP
Japan
Prior art keywords
instruction
exception
instructions
processing
execution
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
Application number
JP9255012A
Other languages
English (en)
Inventor
Chiaki Takahashi
千秋 高橋
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
Hitachi Information Technology Co Ltd
Original Assignee
Hitachi Ltd
Hitachi Information Technology 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 Hitachi Ltd, Hitachi Information Technology Co Ltd filed Critical Hitachi Ltd
Priority to JP9255012A priority Critical patent/JPH1196006A/ja
Priority to US09/154,715 priority patent/US6125443A/en
Publication of JPH1196006A publication Critical patent/JPH1196006A/ja
Pending 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/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; 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 or look ahead
    • G06F9/3885Concurrent 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 Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Advance Control (AREA)

Abstract

(57)【要約】 【課題】 複数命令を同時処理可能なパイプライン方式
の情報処理装置において、複雑な回路を設ける事無く、
例外発生に伴う正確な割込みを実現する。 【解決手段】 同時処理される複数命令毎に、それぞれ
の例外発生を検出する手段と、前記検出された例外発生
をそれぞれの例外要因毎に複数命令を単位としてまとめ
て報告する手段と、前記同時処理される複数命令で例外
発生が報告された場合に、該複数命令の実行を抑止する
割込みを発行する手段と、前記割込みを受けて、当該複
数命令の先行命令実行前の状態に戻し、該先頭命令から
一命令ずつ処理を再開せしめる手段を設ける。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、パイプライン処理
方式を用いて命令を処理する情報処理装置に係わり、特
に、同時に複数の命令をパイプライン処理する場合の正
確な割込みを保証する技術に関する。
【0002】
【従来の技術】パイプライン処理とは、一つの命令処理
を複数の同一実行時間(サイクル)を有する処理ステー
ジに分割し、1サイクルピッチに複数の命令をオーバラ
ップして実行することにより、処理速度の向上を図る方
式である。パイプライン処理方式の実現にあたっては、
処理ステージの数(パイプライン段数)と1ステージの
処理時間(マシンサイクル)をいかにバランスよく設計
するかが、情報処理装置の速度向上のポイントといえ
る。
【0003】パイプライン処理方式の情報処理装置を設
計する上でもう一つの重要なポイントは、分岐予測が失
敗したケースや、例外発生に伴う割込みケースの様に、
パイプラインが乱れた場合の処理方式が挙げられる。
【0004】分岐予測とは、動的に予測した分岐命令の
飛び先から命令の処理を先行して実行することにより、
分岐命令処理のオーバヘッドを削減する方式である。予
測が成功した場合は処理を継続するが、予測が失敗した
場合は、当該予測失敗した命令ストリームの処理をキャ
ンセルし、直ちに正しい命令ストリームから命令処理を
再開する必要がある。分岐命令の動的な出現頻度は、一
般に3〜5命令に一回と言われる程高く、分岐予測精度
を向上させる事と予測失敗時のオーバヘッドタイムを小
さくする事が、分岐予測方式を実現する上でのポイント
となる。
【0005】これに対し、命令実行に伴い発生する各種
例外に起因する割込みは、一般にその頻度が低い事と、
ハードウェアによる割込み処理に加えソフトウェア(割
込みハンドラなど)による原因解析及び対応が必要とな
るため、分岐予測失敗時の如く時間的にクリティカルな
処理は要求されない。割込みにおいて必要な事は、当該
情報処理装置が遵守しなければいけない、アーキテクチ
ャ上定義される割込みの仕様を満足する事にある。
【0006】例えば、不正な命令コード割込みの場合
は、ハードウェアは当該命令の処理を行わず(抑止)、
割込みハンドラ経由で、当該プログラムに対し割込み発
生アドレスとその原因(この場合は不当命令コード例
外)を通知する。ページフォールト割込みの場合も、ハ
ードウェアは当該命令の処理を行わず(取消)、メモリ
管理ソフトウェアが当該ページフォールト要因を解消し
た後、再度当該割込み発生命令から処理を再開すること
で、プログラムの実行を継続する。また、固定小数点オ
ーバフロー例外の場合は、当該命令の処理を行い(完
了)、割込みハンドラ経由で当該プログラムに対し通知
する。
【0007】抑止や取消は、命令の実行と同時に例外検
出が可能であるのに対し、完了の場合当該命令を実行し
ないと例外の検出が不可能であるという特徴がある。例
外発生に伴う割込みでは、当該割込み発生命令アドレス
と割込みの種類等を正しく割込みハンドラ等に報告する
とともに、当該割込み発生命令に関しては、処理を行う
か否かを割込みの種類に応じて保証する必要がある。
【0008】図2乃至図4に、従来の情報処理装置にお
けるパイプライン処理の一例を示す。
【0009】図中、IFは命令読み出し、Dはデコー
ド、Aはオペランドアドレス計算、Bはオペランド読み
出し、Lはオペランド転送、Eは実行、Pは実行結果転
送、Sは実行結果格納のパイプラインの各ステージであ
る。また、タイムチャートにおけるEXCUTEは実行
許可信号、WRITEは結果格納許可信号、SUPIN
Tは取消または抑止タイプの例外検出信号、CMPIN
Tは完了タイプの例外検出信号である。
【0010】図2は、パイプラインを乱す要因が無く連
続して命令が処理されるケース、図3は、命令におい
て取消あるいは抑止タイプの割込みが発生したケース、
図4は、命令において完了タイプの割込みが発生した
ケース、をそれぞれ示す。図3、図4に示すように、従
来、一命令ずつのパイプライン処理の場合、例外発生時
には例外要因に応じて当該命令あるいは後続命令の結果
格納許可信号を抑止することにより、オーバラン命令を
実行すること無く、前記アーキテクチャで要求される正
確な割込みを実現している。
【0011】例外の検出から結果書き込みまでのタイミ
ングがクリティカルな場合は、例えば、レジスタへの命
令実行オーバランによる結果格納を許すかわりに、当該
レジスタの更新前の値をヒストリバッファ等に待避し、
ハードウェアの割込み処理において当該オーバラン命令
により不当に更新されたレジスタを回復することにより
等価な機能を実現する場合もある。また、ストア処理に
関しては、ストアバッファを設け、結果格納ステージ
を、例外により抑止可能なタイミングまで遅らせる方法
等も知られている。
【0012】
【発明が解決しようとする課題】情報処理装置の更なる
高速化手法として、複数の命令を同時にパイプライン処
理するスーパースカラ処理方式などがある。この種の情
報処理装置において、従来方式の延長で正確な割込みを
実現するためには、同時に処理される複数命令個別に例
外の検出から報告及び割込み情報を保持するための回路
を複数倍設ける必要があるのみならず、同時に処理され
る複数命令の何れで例外が発生したかに従い、処理を完
了させる命令と抑止する命令をそれぞれ区別するため
に、複雑な回路を必要とする。
【0013】本発明の目的は、複数命令を同時処理可能
なパイプライン制御方式の情報処理装置において、従来
の一命令単位のパイプライン処理を基本とする情報処理
装置と同様に、正確な割込みを実現するとともに、実行
制御回路が複雑になることを抑える事にある。
【0014】
【課題を解決するための手段】上記目的を達成するため
に、本発明の情報処理装置は同時に処理される複数命令
毎に、それぞれの例外発生を検出する手段と、前記検出
された例外をそれぞれの例外要因毎に複数命令を単位と
してまとめて報告する手段と、前記同時に処理される複
数命令において例外発生が報告された場合に割込みを発
行する手段と、前記割込みの発行を受けて、当該複数命
令の先頭命令実行前の状態に戻し、一命令ずつ命令処理
を制御する手段を設ける。
【0015】本構成によれば、同時処理される複数命令
処理の何れかのステージで例外が検出された場合、まず
該当する全ての複数命令の実行を抑止するか、あるいは
当該複数命令の実行抑止が不可能でオーバランが発生す
る場合は実行後、再度当該複数命令の先頭から一命令ず
つ命令を実行することにより、正確な割込みを実現する
ことができる。
【0016】また、複数命令処理で無い場合に例外が検
出された場合は、従来通りの例外処理を実施すること
で、正確な割込みを実現できる。
【0017】
【発明の実施の形態】以下本発明の実施の形態を図面を
用いて説明する。図1は本発明の一実施形態を示す情報
処理装置のブロック図である。本情報処理装置は、二つ
の命令を同時にパイプライン処理する事により処理の高
速化を計ると同時に、正確な割込みも従来通り実現する
構成を示すものである。
【0018】図1において、10は命令の高速アクセス
を可能とするための命令バッファ、20,21はそれぞ
れ命令バッファ10より読み出した先行及び後続の命令
を保持するための命令レジスタ(IRP,IRS)、3
0,31はそれぞれIRP20,IRS21に保持され
た先行命令、後続命令のオペランドアドレスを生成する
アドレス生成回路、40はオペランド用のメモリあるい
はレジスタデータを保持し、アドレス生成回路30,3
1の指示に従い、それぞれ先行命令、後続命令毎に演算
オペランドの演算実行部への供給、当該オペランドに関
する例外の検出を行うとともに、演算実行部の演算結果
を格納するためのオペランドバッファ、50,51はそ
れぞれ先行命令、後続命令毎に当該命令で指示される演
算を実行するとともに、その演算例外を検出する演算実
行部、60は先行後続の二命令処理あるいは一命令処理
を含めて、当該情報処理装置の命令実行全体を制御する
命令制御ユニット、70,71はIRP20,IRS2
1に保持された命令をもとに、不当命令コード例外など
の当該命令の例外を検出する命令例外検出回路、80,
81,82は命令例外検出回路70,71、オペランド
バッファ40、演算実行部50,51でそれぞれ先行命
令、後続命令毎に検出された例外情報をまとめるための
オア回路、90はオア回路80,81,82から送出さ
れる例外情報と、命令制御ユニット60から通知される
二命令あるいは一命令処理モードに従い割込み処理を制
御する割込み制御回路である。
【0019】命令バッファ10には、主記憶(図示せ
ず)上の連続する複数の命令があらかじめ読み出されて
格納されている。通常、命令制御ユニット60の制御下
で、1サイクルピッチで順次、先行後続の二つの命令そ
れぞれの、命令バッファ10からIRP20,IRS2
1への同時読出し(IFステージ)、デコード(Dステ
ージ)、アドレス生成回路30,31でのオペランドア
ドレス生成(Aステージ)、オペランドバッファ40か
らのオペランドデータ読出し(Bステージ)、演算実行
部50,51での演算実行(Eステージ)、演算結果の
オペランドバッファ40への転送(Pステージ)、格納
(Sステージ)を繰り返して、先行後続の二つの命令毎
の同時パイプライン処理を実現している。
【0020】このパイプライン処理過程のデコード、オ
ペランドデータ読出し、演算実行の各ステージにおい
て、それぞれ命令例外検出回路70,71、オペランド
バッファ40、演算実行部50,51が先行後続命令毎
に例外の発生をチエックし、例外を検出すると、それぞ
れ例外情報をオア回路80,81,82でタイプ毎に1
本にまとめ、割込み制御ユニット90に送出する。図1
では、簡略化のため、例外タイプをそれぞれ1本の線で
示してあるが、これに限定されるものではない。割込み
制御ユニット90は、同時に処理される先行後続の二つ
の命令において例外が報告された場合、命令制御ユニッ
ト60に対して、当該先行後続の二つの命令全ての実行
を抑止し、当該先行命令から一命令ずつの処理再開を示
す割込みを発行する。
【0021】上記割込み制御ユニット90からの割込み
を受けて、命令制御ユニット60は、例外の発生した当
該先行後続命令の実行を抑止して、パイプライン状態を
当該先行後続命令の先頭命令実行前の状態に戻す。な
お、当該先行後続の二命令の実行の抑止が不可能な場合
には、該二命令の実行結果のオペランドバッファ等への
格納を許すかわりに、図1では省略したが、当該オペラ
ンドバッファの更新前の値をヒストリバッファ等に待避
し、当該先行後続命令の先頭命令実行前の状態に戻すよ
うにすればよい。その後、命令制御ユニット60の制御
下で、1サイクルピッチで、今度は例外の発生した当該
先行後続命令の先頭命令から一命令ずつのパイプライン
処理が再開する。このパイプライン処理の過程で、例外
情報が割込み制御ユニット90に報告され、該例外情報
に従って、割込み制御ユニット90から命令制御ユニッ
ト60に対して割込みが発行される。これは従来と同様
である。即ち、従来と同様に正確な割込みが実現する。
【0022】図5及び図6は、1〜6の命令を二つずつ
同時処理するケースにおいて、命令でそれぞれSUP
INT(取消、抑止)とCMPINT(完了)が発生し
た場合のタイムチャートを示したものでる。
【0023】図5のSUPINTのケースでは、図3と
同様なタイミングでWRITE信号を抑止することによ
り、例外発生命令に加え、その先行命令の実行も抑
止する。その後、命令より一命令ずつ再実行すること
により、命令の実行完了後に、例外を有する命令に
て正しく割込む事を実現している。
【0024】図6のCMPINTでは、図4に対し例外
検出から実行抑止までのタイミングが1サイクル早くな
るため、CMPINT信号でWRITE信号を直接抑止
する事により、従来ならば処理を完了すべき命令及び
その先行命令の実行を抑止する。以降は、図4と同様
である。
【0025】以上、図1の実施形態では、先行後続の二
つの命令の同時実行時に何らかの例外が発生した場合、
パイプライン処理状態を当該二つの命令の先頭命令実行
前状態に戻し、当該二つの命令の先頭命令から一命令ず
つパイプライン処理を再開することにより、正確な割込
みが保証される。なお、同時に処理される命令が3つ以
上の場合でも、まったく同様であることは云うまでもな
い。
【0026】
【発明の効果】以上の如く本発明によれば、複数命令の
同時処理を行うパイプライン方式の情報処理装置におい
て、複雑な回路を設けることなく、複数命令の同時処理
において例外が発生した場合も、従来の処理装置と同様
に正確な割込みを実現することが可能となる。
【図面の簡単な説明】
【図1】本発明の一実施形態を示すブロック図である。
【図2】従来のパイプライン処理の通常実行ケースのタ
イムチャートである。
【図3】従来のパイプライン処理の取消または抑止タイ
プの例外ケースの割込みのタイムチャートである。
【図4】従来のパイプライン処理の完了タイプの例外発
生ケースの割込みのタイムチャートである。
【図5】本発明におけるパイプライン処理の取消または
抑止タイプの例外発生ケースの割込みのタイムチャート
である。
【図6】本発明におけるパイプライン処理の完了タイプ
の例外発生ケースの割込みのタイムチャートである。
【符号の説明】
10 命令バッファ 20,21 命令レジスタ 30,31 アドレス生成回路 40 オペランドバッファ 50,51 演算実行部 60 命令制御ユニット 70,71 命令例外検出回路 80,81,82 例外通知OR回路 90 割込み制御ユニット

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】 複数命令を同時処理可能なパイプライン
    制御方式の情報処理装置において、 同時に処理される複数命令毎に、それぞれの例外発生を
    検出する手段と、 前記検出された複数命令の例外発生をそれぞれの例外要
    因毎にまとめて報告する手段と、 前記同時に処理される複数命令において例外発生が報告
    された場合に割込みを発行する手段と、 前記割込みを受けて、当該複数命令の先頭命令実行前の
    状態に戻し、当該先頭命令から一命令ずつ命令処理を制
    御する手段と、 を有することを特徴とする情報処理装置。
JP9255012A 1997-09-19 1997-09-19 情報処理装置 Pending JPH1196006A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP9255012A JPH1196006A (ja) 1997-09-19 1997-09-19 情報処理装置
US09/154,715 US6125443A (en) 1997-09-19 1998-09-17 Interrupt processing system and method for information processing system of pipeline control type

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP9255012A JPH1196006A (ja) 1997-09-19 1997-09-19 情報処理装置

Publications (1)

Publication Number Publication Date
JPH1196006A true JPH1196006A (ja) 1999-04-09

Family

ID=17272977

Family Applications (1)

Application Number Title Priority Date Filing Date
JP9255012A Pending JPH1196006A (ja) 1997-09-19 1997-09-19 情報処理装置

Country Status (2)

Country Link
US (1) US6125443A (ja)
JP (1) JPH1196006A (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3897897B2 (ja) * 1998-03-20 2007-03-28 富士通株式会社 ネットワークコンピューティング環境におけるトラブルシューティング装置及びトラブルシューティング方法並びにトラブルシューティングプログラムを記録したコンピュータ読取可能な記録媒体
JP3532835B2 (ja) * 2000-07-04 2004-05-31 松下電器産業株式会社 データ処理装置およびプログラム変換装置
US6807628B2 (en) 2000-12-29 2004-10-19 Stmicroelectronics, Inc. System and method for supporting precise exceptions in a data processor having a clustered architecture
JP3853188B2 (ja) * 2001-10-04 2006-12-06 Necエレクトロニクス株式会社 非同期バスインターフェイス装置
US7013383B2 (en) * 2003-06-24 2006-03-14 Via-Cyrix, Inc. Apparatus and method for managing a processor pipeline in response to exceptions
JP4151497B2 (ja) * 2003-07-04 2008-09-17 株式会社デンソー パイプライン処理装置
US7996662B2 (en) * 2005-11-17 2011-08-09 Apple Inc. Floating point status/control register encodings for speculative register field
US20170300336A1 (en) * 2016-04-18 2017-10-19 International Business Machines Corporation Fpscr sticky bit handling for out of order instruction execution

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5341482A (en) * 1987-03-20 1994-08-23 Digital Equipment Corporation Method for synchronization of arithmetic exceptions in central processing units having pipelined execution units simultaneously executing instructions
US5822578A (en) * 1987-12-22 1998-10-13 Sun Microsystems, Inc. System for inserting instructions into processor instruction stream in order to perform interrupt processing
US5673426A (en) * 1995-02-14 1997-09-30 Hal Computer Systems, Inc. Processor structure and method for tracking floating-point exceptions

Also Published As

Publication number Publication date
US6125443A (en) 2000-09-26

Similar Documents

Publication Publication Date Title
US5003462A (en) Apparatus and method for implementing precise interrupts on a pipelined processor with multiple functional units with separate address translation interrupt means
JP2858140B2 (ja) パイプラインプロセッサ装置および方法
US7328331B2 (en) Method and system of aligning execution point of duplicate copies of a user program by copying memory stores
EP0207665A1 (en) Bidirectional branch prediction and optimization
US20060020852A1 (en) Method and system of servicing asynchronous interrupts in multiple processors executing a user program
US7752494B2 (en) Method and system of aligning execution point of duplicate copies of a user program by exchanging information about instructions executed
JP3439033B2 (ja) 割り込み制御装置及びプロセッサ
US8799706B2 (en) Method and system of exchanging information between processors
US20010023479A1 (en) Information processing unit, and exception processing method for specific application-purpose operation instruction
JPS58121457A (ja) 情報処理装置
JPH1196006A (ja) 情報処理装置
US5283891A (en) Error information saving apparatus of computer
EP0212132A1 (en) Method and digital computer for recovering from errors
JPH1049373A (ja) パイプライン・デジタル・プロセッサにおいて多重で高精度の事象を操作する方法と装置
JPH0895798A (ja) データ処理装置
JP2671160B2 (ja) 例外処理方式
JP2783285B2 (ja) 情報処理装置
CN116841614B (zh) 乱序访存机制下的顺序向量调度方法
JP2793386B2 (ja) 電子計算機の演算エラー情報保持装置
JP3766772B2 (ja) 情報処理装置、例外回復処理方法および記録媒体
JPH04181331A (ja) 命令リトライ方式
JP2793396B2 (ja) 電子計算機の演算ステータス保持装置
JPH06295252A (ja) 計算機
US20020078286A1 (en) Computer and control method of the computer
JPS6149695B2 (ja)