JPH0223431A - 割込み処理システム - Google Patents

割込み処理システム

Info

Publication number
JPH0223431A
JPH0223431A JP1124576A JP12457689A JPH0223431A JP H0223431 A JPH0223431 A JP H0223431A JP 1124576 A JP1124576 A JP 1124576A JP 12457689 A JP12457689 A JP 12457689A JP H0223431 A JPH0223431 A JP H0223431A
Authority
JP
Japan
Prior art keywords
instruction
interrupt
pipeline
interrupts
interruptions
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
JP1124576A
Other languages
English (en)
Inventor
Bartholomew Blaner
バーザラミユー・ブラナー
Agnes Y Ngai
アーグネス・イー・ウガイ
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH0223431A publication Critical patent/JPH0223431A/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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4812Task transfer initiation or dispatching by interrupt, e.g. masked
    • 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
    • G06F9/3863Recovery, e.g. branch miss-prediction, exception handling using multiple copies of the architectural state, e.g. shadow registers
    • 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
    • G06F9/3865Recovery, e.g. branch miss-prediction, exception handling using deferred exception handling, e.g. exception flags
    • 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/3867Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
    • 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)
  • Memory System Of A Hierarchy Structure (AREA)
  • Advance Control (AREA)

Abstract

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

Description

【発明の詳細な説明】 A、産業上の利用分野 本発明は一般に命令処理装置、即ちディジタル・コンピ
ュータ・システムの命令取出し及び実行部分に関する。
更に詳細に説明すれば、本発明はいわゆる”パイプライ
ン式”命令プロセッサでの割込み処理に関する。
B、従来技術 ]ンピュータ・アーキテクチャは、一般に、命令実行の
ストリームに対する大部分の割込みが特定の命令に関連
していることを必要とする。この要求が満たされる度合
を”精度”と呼び、割込み条件”i”はもし命令 旦”
の実行に明確に関連づけることができれば正確である。
バ  − ゛ プロセッサー即ち、1つの命令をもう1
つの命令が開始される前に完全に実行するプロセッサー
では、任意の所与の時点において割込みが関連すること
がある命令は1つしかないので、割込み報告する際の正
確さは容易に達成される。しかしながら、多くの命令は
同時に幾つかの実行段階にあるかもしれないので1.ベ
イti王之武プロセッサで割込みを正確に報告すること
はずっと困難である1例えば5割込み条件iの発生時に
、現在実行中の命令−n、 n+1. n+2等−のう
ちのどれが該別込みに関連しでいるがは明白ではないこ
とがある。更に、多重割込みがほぼ同時に発生し、どれ
を最初に報告し処理するかの問題が生ずることがある。
多くの場合、システム・アーキテクチャは単に最古且つ
最高優先順位の割込みを報告することができると指示す
る。
パイプライン式プロセッサで割込みを正確に報告するこ
との困難さは、過去においては設計者が直面している。
事実、設計者によってはシステム・アーキテクチャから
逸脱して割込みを不正確に報告することにより問題を回
避している1例として、D、 W、 Anderson
、 et al、、 ”The IBM System
/360  Model  91: Machine 
 Ph1losophy  andInstructi
on−Handling、 、    o  na  
January。
1967、を参照されたい0例えば1条件iによって割
込まれる、命令n、 n+ 1.rl÷2、等を実行す
るストリームにおいて、割込みは現在実行中の命令のど
れにも正確に関連づけることができない。
C0発明が解決しようとする課題 割込みが全くまれな計算環境では割込みを不正確に報告
してもおそらく許される。しかしながら。
仮想記憶装置の出現により、仮想記憶管理プロセスによ
って生じた割込みはその原因となった命令に関連しなけ
ればならないから正確な割込み報告及び処理が必要にな
っている。特に、”TLB″ (アドレス変換ルックア
サイド・バッファ)ミス割込みは、命令に含まれた仮想
記憶アドレスに関連した絶対記憶アドレスを、変換ルッ
クアサイド・バッファが生成しないときに生ずる。
前記”TLBミス” −絶対アドレスが変換ルックアサ
イド・バッファから落ちていることを意味するーは比較
的高い頻度で起こるが、多くの場合、アドレス変換を実
行してから、TLBミスを生じた命令の一部又は全部を
再実行することにより解決される。命令を再実行するた
めには、どの命令がTLBミスを生じたかを正確に判定
することが必要である。それらの割込みは他の割込みよ
りも高い頻度で生ずるから、TLBミスを報告し処理す
る速度もプロセッサの性能にかなり強い影響を与えるこ
とがある。
正確な割込み報告の問題は、追加の機能装置が主要な命
令取出し及び実行(I/E)装置パイプラインを拡張す
ると、更に悪化する。前記機能装置は命令及びデータ記
憶装置、浮動小数点実行装置、ベクトル実行装置等を含
むことがあり、且つ I/E装置と同じ命令ストリーム
によって駆動される。
特に、I/E装置はストリーム中の追加の命令を可能な
限り、たぶん機能装置により生成される一部の結果が更
に計算を要求されるまで実行し続けながら命令を要求に
従って実行するため記憶装置から取出し、命令又はコマ
ンドを機能装置に転送する。従って、システムの全域に
わたって同時に多数の命令がそれぞれの実行段階にある
ため、装置の一部又は全部で同時に割込みが生じ、正確
な割込み報告が実に恐るべき問題になることがある。
複数の機能装置を有するパイプライン式処理システムで
割込みを正確に報告するための多数の機構が実現又は提
案されている。IBM 3090ベクトル機能は設計し
制御することが難しい複雑なハードウェア構造を有する
割込みパイプラインを用いる。
S、 G、 Tucker、”The  IBM  3
090  System:  AnOverview 
、  BM  S ste+++  Jour   V
ol、 25. No。
1、1986.を参照されたい、スミス及びプレッカン
(SIllith and Pleszkun)は他の
精巧なハードウェア構造−リオーダ−(reorder
)バッファ、経歴バッファ、未来ファイル等−を提案し
ているが、その実行可能性はまだ証明されていない、 
J、 E。
5Llith and A、 R,Pleszkun″
IIplementation ofPrecise 
Interrupts in Pipelined P
rocessor 。
Pre、  2   n  al  tentiona
  Smosium  nCow ute   h’t
 ctu e  pp、 36−44. June 1
985゜を参照されたい。
本発明の主たる目的は、急速に処理すべきTLBミス割
込みのような、仮想記憶管理割込みを可能にしながら追
加ハードウェアの要求を最小にするパイプライン式命令
プロセッサにおいて割込みを正確に報告するためのシス
テムを提供することである。
08課題を解決するための手段 本発明に従って、TLBミス割込みのように頻繁に起き
る割込みを正確且つ速やかに処理するための別個のハー
ドウェア構造、及び残余の割込みを正確に報告し処理す
るための低速・低価格でソフトウェアに基づいたシステ
ムを提供することにより、前記目的並びに、以下の説明
から明らかになるその他の目的が達成される。
このように、仮想記憶管理から生ずる割込みは、それら
が関連する命令を再実行し、はんの短時間の休止で計算
機の動作を続行することができるように、速やかに処理
される0通常は命令処理を完全に停止することを必要と
する他のタイプの割込みは、ソフトウェアに基づいた割
込みルーチンによりずっと低速で処理される。
前述の本発明の一般的な機構は、パイプライン式命令プ
ロセッサにより正確な割込み処理を提供するため下記の
ように実現される。
(1)命令パイプラインと並行に別個の割込みパイプラ
インがTLBミス割込みのため提供される。この割込み
は、それらが命令取出しTLBミスであっても、あるい
は記憶オペランドTLBミス(″データ”TLBミス)
であっても、命令パイプライン中を進む関連した命令と
同期して、割込みパイプライン中を進められる。よって
、命令パイプラインはTしBミス割込みの発生後、その
TLBミス割込みを生じた命令に先行する全ての命令を
実行することにより、TLBミス割込み自身が報告され
処理される前に排出(ドレーン)することができる。
(2)ソフトウェアにより処理される他の割込みの正確
な報告は、命令番号付与及び追跡機構により容易になる
。それによって、命令がプロセッサ・パイプラインに入
るにつれて実行中の命令に関する適切な情報が追跡アレ
イに記録される。特に、命令プロセッサで受取った各命
令に番号が割当てられ、受取った各命令はその割当て番
号とともに追跡アレイに記憶される1割込みハンドラ(
handler)は(TLBミス割込み以外の)割込み
を生じた命令プロセッサで各命令に割当てられた番号を
決定し、割込みを生じた命令の中から最も早く割当てら
れた番号を有する命令を選択し、且つ次の割込み処理に
関し選択された命令をアドレス指定し追跡アレイから取
出すように動作する。これらの機能を実行するソフトウ
ェアは、命令パイプラインを形成する同じ命令処理装置
、又はパイプライン式処理装置と異なる別個の命令処理
装置で走行することができる。
もしパイプライン式プロセッサが異なるタスクを実行す
る幾つかの機能装置を含むなら、各命令に割当てられた
追跡番号は命令パイプライン又は当該特定の命令を実行
することになっている機能装置に同報通信される。この
番号はその命令が完全に実行されるまで実行中のハード
ウェアに留まるので、もし割込みが生ずれば、割込み処
理ソフトウェアは機能装置をポーリングすることにより
、割込みを生じた命令の指定された番号を決定すること
ができる。
E、実施例 第1図〜第6図により1本発明の良好な実施例について
説明する。
第1図は本発明が関連するコンピュータ・システム環境
を概略的に示す、該システムは連続するプログラム命令
を記憶装置から取出し実行するための命令処理装置(I
PU) 2を含む。
このIPtJはパイプライン式命令取出し/実行(1/
E)装置4及び多数の機能装置、例えば記憶装置、浮動
小数点装置、ベクトル装置等を含み、前記命令がI/E
装置パイプラインで絶えず循環している間に各装置は特
定のタイプの命令を実行することができる。
記憶装置は記憶領域6及び変換ルックアサイド・バッフ
ァ (TLB) 8−仮想記憶アドレスを絶対記憶アド
レスに変換する−を含む、それ自身が一定の命令を実行
することができる実行装置4は、もう1つの機能装置と
みなされる。
ran二゛:前述のように、命令及び データ取出しのTLBミス割込みは、それらを処理する
ための特殊なハードウェア構造の構築を正当化するほど
頻繁に生ずる6本発明では、TLBミス割込みを記録し
適切な時点まで処理を据置くため特殊なパイプライン・
ハードウェアが提供される。
その時点で、もしTLBミスが(システム・アーキテク
チャによって指定された)最も高い優先順位の割込みで
あれば、該TLBミス割込みが報告され処理される。
一般的なパイプライン割込み制御アルゴリズムを下記に
示す。
(1)ある記憶手段にTLBミス割込みを記録する。
(2) I/E及び全ての機能装置のパイプラインが前
の命令の実行を完了する(即ち、ドレーンする)のを待
つとともに新しい命令はどれも実行を取消す、追加割込
みがこの期間に生ずるかも知れない。
(3)全てのパイプラインがドレーンされたとき。
もし該TLBミスがなお最も高い優先順位の割込みであ
るなら、それをTLBミス割込み処理プログラムに報告
する。この時点で、全ての前の命令は実行を完了してお
り、該TLBミスの記録後に開始された新しい命令はな
いので、該TLBミスに関連する命令は明確である。
(4)もしTLBミスが最も高い優先順位の割込みでは
ないなら、保留している割込みを解決するため特殊な命
令追跡機構を用いることができるソフトウェア割込み処
理プログラムが呼出される。
このアルゴリズムは、 TLBミス割込み並びに他のタ
イプの割込みに応答しなければならないパイプライン式
命令処理装置(IPU)を有する任意のディジタル・コ
ンピュータ・システムに適用することができる0本発明
を実施する良好な実施例並びに最良のモードで、該アル
ゴリズムは、米国特許出願第159016号(1988
年2月22日出願)に開示された命令/実行(I/E)
装置パイプラインで実現される。このパイプラインは便
宜的に下記の記号で記述される。
I:記憶装置から命令を取出す。
R:命令を復号する;汎用レジスタを読取る。
A:記憶装置オペランド・アドレスを計算する;動作コ
マンドを、もしあれば1機能装置に送る。
D=記憶装置アクセス、第1サイクル。
F:記憶装置アクセス、第2サイクル。
E:実行段階。
W:実行結果を汎用レジスタに書込む。
特定のパイプライン段階は省略されることがある。即ち
必要に応じて空パイプライン段階に置き換えられる。
第2図に典型的なパイプライン・シーケンスを示す、こ
こでは、命令a、b及びCがI/E装置パイプラインの
それぞれの実行段階に示されている。
しかしながら、第4の命令dが記憶装置がら取出される
と、TLBミスが生ずる。従って、TLBミスのため実
行する命令がないので、ダッシュ(−)記号で示す空サ
イクルが工に代ってサイクル4に示される。前記アルゴ
リズムのステップ(1)及びステップ(2)を実行する
ため、TLBミスがサイクル4で記録され、割込みの直
前に開始された命令Cがその実行を完了するまで、サイ
クル4がら9までパイプラインされる (1/E装置パ
イプラインに合わせて延期される)。
サイクル9で、 TLBミス割込みの報告に関する決定
が行われる。もし命令a、bないしはC(サイクル4〜
9)が完了するまでの間に他の追加の割込みが発生しな
かったか、又は発生してもその優先順位が命令取出しの
TLBミスの割込みよりも低ければ、TLBミスはサイ
クル9で報告される。
これに反し、もしサイクル4〜9でより高い優先順位の
割込みが発生したなら、この割込みを処理するためソフ
トウェア割込み処理プログラムが呼出される。 TLB
ミス割込みだけがパイプラインされるので、他の全ての
割込みは状況を解明してこの割込みを正確に報告するた
めには命令追跡機構を利用しなければならない。
オペランド・データ記憶域の参照でTLBミスが生じた
場合にも、同様の機構が、TLBミス割込みを正確に報
告するのに用いられる。
先立1遵:本発明による命令追跡機構はソフトウェア割
込み処理プログラムによる割込みの正確な報告を容易に
するハードウェアを用いる。このハードウェアは下記の
要素を含む。
(1)命令番号割当て及び同報通信装置。
(2)実行される命令のアドレス及びテキスト。
並びに、もし所望されれば、他の関連する情報を追跡す
る装置、ここでは、”テキスト”は当該命令それ自身を
指し、一般に命令コードとオペランド・アドレスから成
る。
特定の番号(モジューロn)が各命令にそのRサイクル
で割当てられる。この場合、nはI/E装置パイプライ
ンでのステージ数と1機能装置からの実行結果を待つた
めのI/E装置の停止を伴わずに機能装置がI/E装置
の先に進むことができるパイプラインステージ数との合
計よりも大きいか又はそれに等しい0本実施例では、n
の値として。
3ビツトで都合よく表わすことができる8が選択されて
いる。
命令のAサイクルでは、当該命令の番号はその命令の動
作コマンド、例えば記憶装置へのデータ取出しコマンド
、又は浮動小数点実行装置への平方根計算コマンドと一
緒に各機能装置に回報通信される。動作コマンド及び命
令番号を受領すると、機能装置は、該動作コマンドが当
該機能装置に関連することを条件に、この情報を記録す
る。その後、所与の動作コマンドとその命令番号との関
連を、数が不確定の段階から成るかも知れない動作の実
行中ずっと維持することは機能装置の責任である。動作
の実行が完了すると、もし該実行中に割込みが発生しな
ければ、該命令番号は放棄される。さもなければ、ソフ
トウェア割込み処理プログラムがあとで使用するため、
該番号は関連する割込み情報と一緒に保持される。この
ように1割込みと特定の命令との関連は常に知られてい
る。
命令番号の回報通信と並行して、所与の命令の番号、ア
ドレス及びテキストは”追跡アレイ”と呼ばれる記憶装
置に記録される1番号、アドレス、テキストの3要素か
ら成る各組は追跡アレイで単一の項目を形成し、該アレ
イは少なくともn項目を有しなければならない、追跡ア
レイレこ最も遅く書込まれた命令は現命令と呼ばれる。
別個の記憶装置が現命令の番号を記録する。この番号は
、各々の新しい命令のRサイクルで1だけ増分される(
モジューロn)。
これらのハードウェア構造が与えられると、それぞれの
機能装置に記録された命令番号、命令追跡アレイに記憶
された情報、及び現命令の番号をアクセスするための機
構を提供することは簡単なことであるので、割込みの正
確な報告は下記のように行われる。
(1)記録されたあらゆる割込みについて、割込みを生
じた命令の番号を対応する機能装置に尋ねる。
(2)命令番号がX及びyで、x<y(モジューロn)
の場合、たとえ命令yに関連した割込みが命令Xに関連
した割込みよりも早く発生していたとしても、Xに関連
した命令はyに関連した命令よりも前に処理される。
正確な割込み報告は命令Xの割込みが命令yの割込みの
前に報告されることを必要とする。命令Xの多重割込み
の場合には、何らかの優先順位決定機構が、これらの割
込みを報告する順序を決定するために用いられることが
ある。
割込みを正確に報告する命令追跡方法を用いる例として
、第3図に示す例を検討してみよう、この例では、パイ
プライン段階n U NがI/E装置又は記憶装置以外
のある機能装置で実行するパイプライン・ステージを識
別するために導入されている。
この例では、命令a、b及びCの番号はそれぞれ1.2
及び3であると仮定する。更に、サイクル4で、 I/
E装置は、命令Cのテキストで、一般に“指定例外”と
呼ばれるある誤りを検出し、割込みとそれに続いて命令
Cの残余の実行の取消しを生ずるものと仮定する。命令
aの実行段階(E−サイクル6)で、算術術あふれが検
出され、割込みを生ずる。そして、サイクルマで、命令
すを実行する機能装置は何らかの例外的な状態、例えば
浮動小数点演算例外−割込みを生ずる−を検出する。最
後に、命令dの取出しはサイクル4でTLBミスを生ず
る。実行すべき命令が全く存在していないので、命令d
には番号が割当てられていないが、次の順次命令番号が
割当てられているとみなすことができる。
前例の場合のように、パイプラインがドレーンされない
うちは割込み報告の決定を行うことができない、よって
、TLBミスは前述のようにサイクル8にパイプライン
され、そして、このパイプライン動作が進むにつれて、
他の、前述の割込みが検出される。サイクル8で、他の
割込みが検出されているので、TLB ミスは処理され
ず1代りにソフトウェア割込み処理プログラムが呼出さ
れる。
ソフトウェア割込み処理プログラムは現存する割込み及
びそれらに関連した命令番号について機能装置をポーリ
ングすることができる。 I/E装置は命令番号1での
算術術あふれ、及び命令番号3(現命令)での指定例外
割込みを報告するであろう0機能装置、この場合には浮
動小数点演算装置は命令番号2での浮動小数点演算例外
を報告するであろう、 TLBミスは失敗した命令取出
しに関連し、論理的には最も遅い割込みでなければなら
ない。
次に前記の規定された規則を用いて、ソフトウェア割込
み処理プログラムは、算術術あふれか、全ての保留割込
みのうちの最古のものであることから報告すべき割込み
であることを認識するであろう、その場合、一般に割込
み命令のアドレス及びテキストは割込み報告プロセスを
完了するように要求される。これらのデータは命令番号
1に割当てられた命令、追跡アレイ項目をアクセスする
ことにより取得することができる。
n    :第4図はI/Eパイプライン1゜及び割込
みパイプライン12並びにそれぞれの関連した制御ハー
ドウェアを示す、前に定義したパイプライン技術を用い
て、パイプラインのI段階の間に、命令が記憶装置から
取出され、命令バス(IBUS)を介してI/E装置に
供給され、そして命令レジスタ (IREG) 14に
保持される。R段階で、パイプライン制御装置16は、
命令の実行を開始すべきかどうかを、復号された命令(
即ち、実行される命令のタイプ、それが必要とする資源
等)並びに I/Eパイプライン10及び割込みパイプ
ライン 12の状態に基づいて決定する。もし命令を開
始することができなければ、パイプライン制御装置16
は、必要な資源が使用可能になるまで循環経路18によ
り命令をIREG 14に保持することにより、該命令
を延期することができる。更に、パイプライン制御装置
118はI/Eパイプラインのどの段階でも保持又は除
去する(保留動作を無効にする)ことができる、これら
の制御により、装置16は前述の動作に影響を及ぼすこ
とができる、即ちいったん割込みが検出されると、既に
進行中の動作のパイプラインをドレーンし、新しい動作
の開始を阻止することができる。
TLBミス割込みの2つの形式がI/Eパイプラインに
合わせてパイプライン化される。命令取出しTLB (
ITLB)ミスは命令取出し (I)段階の間に割込み
パイプラインの1つのチャネル2oに入るのに対し、記
憶オペランドTLB (DTLB)ミス(″データ”T
LBミス)は最初の記憶アクセス段階(D)の間にもう
1つのチャネル22に入る。それぞれの機能装置(FU
)からの他の全ての割込みはライン24を介して直接パ
イプライン制御装置16に入り、割込み状況レジスタ 
25に記憶される。レジスタ25の各ビットは、I/E
装置を含むそれぞれ異なった機能装置に関連している1
次に、これらの記憶された割込みは(あとで説明する)
ソフトウェア割込み処理プログラム・ルーチンにより、
ライン26上の割込みパイプラインからのあらゆる未解
決のTLBミス割込み出力と共に優先順位を付与され、
適切な割込み処理機構(TLBミス割込みのためのハー
ドウェア又は他の全ての割込みのためのソフトウェア)
が呼出される。
第5図は命令追跡ハードウェアを示す、第4図の場合の
ように、割込みはパイプラインのI段階の間にIREG
 14に入る。同時に、当該命令の記憶アドレスが命令
カウンタ (ICTR) 28にロードされる、増分さ
れた追跡アレイ・アドレス・レジスタ30の出力の最下
位の3ビツトが命令番号 (INUM)を生成するため
に用いられる。命令番号はライン32を介して機能装置
(FU)コマンド生成装置34に転送される。装置34
は、その間に、 IREG 14の命令を復号し、該命
令に特有のFtlコマンドを生成している。このコマン
ドは命令番号と組合わされ、コマンドレジスタ (CR
EG) 36にロードされる。
次のサイクル5八段階で、ICTR28及びIREG 
14の内容はICTRバックアップ・レジスタ (IC
TRBIJ)38及び命令テキスト・レジスタ (IT
EXT) 40にそれぞれ転送される。アドレス・レジ
スタ 30は1だけ増分され、ICTRBII 38 
及びITEXT 40の内容はアドレス・レジスタ 3
0により指示されたアドレスで命令追跡アレイ 42に
ロードされる。その間に、CREG 36内のコマンド
及び命令はコマンド・バス(CBUS) 46を介して
複数のFU 44に回報通信される。コマンドが指向さ
れるFUはコマンド及び命令番号をラッチし、後者は該
コマンドを実行するあいだ保持される。該命令番号は、
もし後にソフトウェア割込み処理プログラムにより要求
されれば、 FUから結果バス(RBUS) 48を介
して取得することができる。
第5図に示すように、IBUS上の命令及びINUMは
実行(E)装置50にも供給される。前に説明したよう
に、E装置は他の機能装置と同様に扱われる。
本実施例では、追跡アレイ 42は32項目の深さがあ
り、従ってアドレス・レジスタ 30は5ビツトの幅が
あり、命令番号はOから7まで変化することができる。
第5図の各レジスタは、実際には、I/Eパイプライン
の一部であり、その結果、前述のI/Eパイプライン制
御装置16から保持及び除去制御信号を受取る。
このハードウェアの動作を示すため、下記の動作例によ
って説明する。命令↓及びその対応するアドレスlがそ
れぞれIREG 14及びIcTRZBにロードされる
。その時点で、アドレス・レジスタ30は2進値100
11を含む、それゆえ、増分器の出力は10100とな
り、命令番号は100、即ち10進数4になる。命令土
はFUコマンド生成装置34により復号され、FUコマ
ンドが生成されて命令番号と組合わされる0次のクロッ
ク時に、IREG 14及びICTR2817)内容が
ITEXT 40及びICTR8口38にそれぞれ転送
され、 FUコマンド及び命令番号はCREG 36に
ロードされて全てのFU 44に回報通信され、アドレ
ス・レジスタ 30に2進数10100がロードされ、
そしテITEXT 40 及びICTRBII 38ノ
内容がアドレス10100で追跡アレイ 42に書込ま
れる。
第5図に示した命令追跡アレイ42、アドレス・レジス
タ 30、ITEXTL/ジスタ 40及びICTRB
Uレジスタ 38は、ソフトウェア割込み処理プログラ
ムからもアクセスできる。従って、割込み処理プログラ
ムは追跡アレイ42で割込みを生ずる命令を見つけるた
めFUにより記憶された命令番号を用いることができる
八゛ ・フ    :第6図はI/E装置及びその他の
機能装置により処理されたとき割込みを生じた命令の記
憶装置アドレスを判定するためのソフトウェア・ルーチ
ンの良好な実施例を流れ図の形で示す、■段階の割込み
のためたとえ”現命令”がなくても、現命令番号を取得
することによりプログラムが開始する。この現命令番号
−ルーチン内の変数IN  −はアドレス・カウンタ3
0で最後の3個のアドレス・ビットから得られる。
次に、プログラムは割込み状況レジスタ 25を検査し
1割込みを表わす状況ビットが(E装置を含む)どの機
能装置のためにセットされているかを判定する。もし少
なくとも1つの状況ビットがセットされていれば、プロ
グラムは割込みを生じた各機能装置から命令番号を取得
する。これらの番号は変数INUMI、 INLIM2
等として記憶される。
次に、プログラムは8カウント・ループに入る、即ち、
LC= 8からLC= Oに逆にカウントし、その都度
、可能な命令番号の全てが考慮されるように変数INを
減分する。 INの値が減分される毎に、この変数は記
憶された番号INUMI、INUM2等と比較される。
もし変数INが変数INUMI、IN[1M2 等のど
れかと一致すれば、この一致は記録され、ル−プは続行
する。
ループが終了すると、プログラムはINの一致があった
かどうかを判定する。もしなければ、制御はハードウェ
ア割込み処理機構に移され、■段階の割込みを、もし生
じていれば、処理する。もしIN 一致が見つかったな
ら、プログラムは記録された命令番号により指定された
命令のアドレスを追跡アレイから取出す1次いで、プロ
グラムは割込みの優先順位を決め、最も高い優先順位を
有する割込みのため専用ソフトウェア割込み処理プログ
ラムに制御を移す。
F0発明の効果 複数の機能装置を有するパイプライン式プロセッサで割
込みを正確に報告するための新しい手法は所与の割込み
の予想された頻度に応じて割込み報告を効率的に分割す
る。高頻度割込み、TLBミスはハードウェアにより直
接処理され、残余の割込み5例えば比較的低い頻度で発
生する算術術あふれは、命令番号付与及び追跡機構によ
り正確に割込みを報告することができるソフトウェア割
込み処理プログラムによって処理される。これにより、
パイプライン式プロセッサでの正確な割込み報告が可能
になる。
【図面の簡単な説明】
第1図は本発明に関連するディジタル・コンピュータ・
システムの特定の構成装置のブロック図である。 第2図はパイプライン式プロセッサの動作を示すサイク
ル図である。 第3図はパイプライン式プロセッサで正確な割込み処理
のため命令追跡を必要とする例を表わす。 第2図に示すタイプのサイクル図である。 第4図は全て本発明に従って構成された命令取出し及び
実行CI/E)装置パイプライン、TLBミス割込みパ
イプライン並びにパイプライン制御装置の詳細なブロッ
ク図である。 第5図は、本発明に従って、複数の機能装置を有するパ
イプライン式プロセッサへの追跡アレイの付加を示す詳
細なブロック図である。 第6図は割込みを生じた命令を追跡し優先順位を決める
ソフトウェア割込み処理プログラム・ルーチンの流れ図
である。

Claims (1)

  1. 【特許請求の範囲】 メモリと、 前記メモリから命令を取出して実行する命令処理手段と
    、 前記メモリをアクセスするためのアドレス変換バッファ
    (TLB)と、 前記アドレス変換バッファからのTLBミス割込みに応
    答して該割込みを処理する専用の割込み処理手段と、 命令の取出し、復号及び実行中に生じた他の割込みに応
    答して該他の割込みを処理する第2の割込み処理手段と
    、 を具備する割込み処理システム。
JP1124576A 1988-05-31 1989-05-19 割込み処理システム Pending JPH0223431A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US07/200,688 US5003462A (en) 1988-05-31 1988-05-31 Apparatus and method for implementing precise interrupts on a pipelined processor with multiple functional units with separate address translation interrupt means
US200688 1988-05-31

Publications (1)

Publication Number Publication Date
JPH0223431A true JPH0223431A (ja) 1990-01-25

Family

ID=22742758

Family Applications (1)

Application Number Title Priority Date Filing Date
JP1124576A Pending JPH0223431A (ja) 1988-05-31 1989-05-19 割込み処理システム

Country Status (3)

Country Link
US (1) US5003462A (ja)
EP (1) EP0344450A3 (ja)
JP (1) JPH0223431A (ja)

Families Citing this family (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0268632A (ja) * 1988-09-05 1990-03-08 Toshiba Corp 割込み制御装置
EP0365322A3 (en) * 1988-10-19 1991-11-27 Hewlett-Packard Company Method and apparatus for exception handling in pipeline processors having mismatched instruction pipeline depths
US5214765A (en) * 1989-08-31 1993-05-25 Sun Microsystems, Inc. Method and apparatus for executing floating point instructions utilizing complimentary floating point pipeline and multi-level caches
JPH0437927A (ja) * 1990-06-01 1992-02-07 Sony Corp プロセッサの処理方法
US5630157A (en) * 1991-06-13 1997-05-13 International Business Machines Corporation Computer organization for multiple and out-of-order execution of condition code testing and setting instructions
US5539911A (en) 1991-07-08 1996-07-23 Seiko Epson Corporation High-performance, superscalar-based computer system with out-of-order instruction execution
ATE188786T1 (de) * 1991-07-08 2000-01-15 Seiko Epson Corp Risc-mikroprozessorarchitektur mit schnellem unterbrechungs- und ausnahmemodus
US5493687A (en) 1991-07-08 1996-02-20 Seiko Epson Corporation RISC microprocessor architecture implementing multiple typed register sets
EP1526446A3 (en) * 1991-07-08 2007-04-04 Seiko Epson Corporation Extensible RISC microprocessor architecture
US5961629A (en) * 1991-07-08 1999-10-05 Seiko Epson Corporation High performance, superscalar-based computer system with out-of-order instruction execution
US5438668A (en) * 1992-03-31 1995-08-01 Seiko Epson Corporation System and method for extraction, alignment and decoding of CISC instructions into a nano-instruction bucket for execution by a RISC computer
EP0636256B1 (en) * 1992-03-31 1997-06-04 Seiko Epson Corporation Superscalar risc processor instruction scheduling
DE69308548T2 (de) * 1992-05-01 1997-06-12 Seiko Epson Corp Vorrichtung und verfahren zum befehlsabschluss in einem superskalaren prozessor.
CA2105806C (en) * 1992-09-18 2001-11-20 Paul V. Jeffs Apparatus for implementing interrupts in pipelined processors
US6735685B1 (en) 1992-09-29 2004-05-11 Seiko Epson Corporation System and method for handling load and/or store operations in a superscalar microprocessor
EP0663083B1 (en) 1992-09-29 2000-12-20 Seiko Epson Corporation System and method for handling load and/or store operations in a superscalar microprocessor
US5628021A (en) * 1992-12-31 1997-05-06 Seiko Epson Corporation System and method for assigning tags to control instruction processing in a superscalar processor
DE69330889T2 (de) * 1992-12-31 2002-03-28 Seiko Epson Corp System und Verfahren zur Änderung der Namen von Registern
JPH06236274A (ja) * 1993-01-08 1994-08-23 Internatl Business Mach Corp <Ibm> スーパースカラ・プロセッサ・システム内でスカラ命令を追跡する方法およびシステム
CA2107305A1 (en) * 1993-01-08 1994-07-09 James Allen Kahle Method and system for nonsequential instruction dispatch and execution in a superscalar processor system
US5493669A (en) * 1993-03-03 1996-02-20 Motorola, Inc. Data processor for simultaneously searching two fields of the rename buffer having first and second most recently allogated bits
US5752013A (en) * 1993-06-30 1998-05-12 Intel Corporation Method and apparatus for providing precise fault tracing in a superscalar microprocessor
GB2281986B (en) * 1993-09-15 1997-08-06 Advanced Risc Mach Ltd Data processing reset
WO1995019006A1 (en) * 1994-01-10 1995-07-13 The Dow Chemical Company A massively miltiplexed superscalar harvard architecture computer
JPH0877021A (ja) * 1994-09-01 1996-03-22 Fujitsu Ltd 割込処理装置および方法
US5649136A (en) * 1995-02-14 1997-07-15 Hal Computer Systems, Inc. Processor structure and method for maintaining and restoring precise state at any instruction boundary
JPH096633A (ja) * 1995-06-07 1997-01-10 Internatl Business Mach Corp <Ibm> データ処理システムに於ける高性能多重論理経路の動作用の方法とシステム
US5867701A (en) * 1995-06-12 1999-02-02 Intel Corporation System for inserting a supplemental micro-operation flow into a macroinstruction-generated micro-operation flow
US5815733A (en) * 1996-02-01 1998-09-29 Apple Computer, Inc. System for handling interrupts in a computer system using asic reset input line coupled to set of status circuits for presetting values in the status circuits
JP3495173B2 (ja) * 1996-02-14 2004-02-09 富士通株式会社 演算処理方法および演算処理装置
US5758190A (en) * 1996-04-09 1998-05-26 International Business Machines Corporation Control unit threshold timeout controls for software missing interrupt handlers in operating systems
US5768620A (en) * 1996-04-09 1998-06-16 International Business Machines Corporation Variable timeout method in a missing-interrupt-handler for I/O requests issued by the same operating system
US5894583A (en) * 1996-04-09 1999-04-13 International Business Machines Corporation Variable timeout method for improving missing-interrupt-handler operations in an environment having I/O devices shared by one or more systems
US5761492A (en) * 1996-05-07 1998-06-02 Lucent Technologies Inc. Method and apparatus for uniform and efficient handling of multiple precise events in a processor by including event commands in the instruction set
JP3801987B2 (ja) 2000-10-18 2006-07-26 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ ディジタル信号処理装置
US7861104B2 (en) * 2001-08-24 2010-12-28 Broadcom Corporation Methods and apparatus for collapsing interrupts
US20030135719A1 (en) * 2002-01-14 2003-07-17 International Business Machines Corporation Method and system using hardware assistance for tracing instruction disposition information
JP5119994B2 (ja) * 2008-03-14 2013-01-16 富士通株式会社 性能モニタリングプログラム、性能モニタリング方法、性能モニタリング装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5692643A (en) * 1979-12-26 1981-07-27 Hitachi Ltd Operational processor
JPS60179846A (ja) * 1984-02-27 1985-09-13 Fujitsu Ltd 変換例外割込み制御方式
JPS62264345A (ja) * 1986-05-13 1987-11-17 Fujitsu Ltd ベクトル・プロセツサにおけるアドレス変換例外時の処理方式
JPS63241637A (ja) * 1987-03-28 1988-10-06 Toshiba Corp パイプライン制御による演算処理装置の割込み受付け方式

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB1448866A (en) * 1973-04-13 1976-09-08 Int Computers Ltd Microprogrammed data processing systems
US4057785A (en) * 1975-03-14 1977-11-08 Westinghouse Electric Corporation Sequence of events recorder and system for transmitting sequence data from a remote station to a master station
US4027289A (en) * 1975-06-26 1977-05-31 Toman Donald J Operating condition data system
US4037215A (en) * 1976-04-30 1977-07-19 International Business Machines Corporation Key controlled address relocation translation system
JPS593651A (ja) * 1982-06-30 1984-01-10 Fujitsu Ltd フア−ムウエアによる性能測定システム
US4498136A (en) * 1982-12-15 1985-02-05 Ibm Corporation Interrupt processor
US4538241A (en) * 1983-07-14 1985-08-27 Burroughs Corporation Address translation buffer
JPH06100981B2 (ja) * 1983-12-28 1994-12-12 株式会社日立製作所 記憶階層制御方式
JPS62222344A (ja) * 1986-03-25 1987-09-30 Hitachi Ltd アドレス変換機構

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5692643A (en) * 1979-12-26 1981-07-27 Hitachi Ltd Operational processor
JPS60179846A (ja) * 1984-02-27 1985-09-13 Fujitsu Ltd 変換例外割込み制御方式
JPS62264345A (ja) * 1986-05-13 1987-11-17 Fujitsu Ltd ベクトル・プロセツサにおけるアドレス変換例外時の処理方式
JPS63241637A (ja) * 1987-03-28 1988-10-06 Toshiba Corp パイプライン制御による演算処理装置の割込み受付け方式

Also Published As

Publication number Publication date
US5003462A (en) 1991-03-26
EP0344450A3 (en) 1992-05-20
EP0344450A2 (en) 1989-12-06

Similar Documents

Publication Publication Date Title
JPH0223431A (ja) 割込み処理システム
EP0207665B1 (en) Bidirectional branch prediction and optimization
KR930004214B1 (ko) 데이타 처리 시스템
US5341482A (en) Method for synchronization of arithmetic exceptions in central processing units having pipelined execution units simultaneously executing instructions
EP0106670B1 (en) Cpu with multiple execution units
EP0437044B1 (en) Data processing system with instruction tag apparatus
EP0331372B1 (en) Method of and apparatus using floating point execption signals for controlling several processors
US5280593A (en) Computer system permitting switching between architected and interpretation instructions in a pipeline by enabling pipeline drain
US5247628A (en) Parallel processor instruction dispatch apparatus with interrupt handler
US5109514A (en) Method and apparatus for executing concurrent CO processor operations and precisely handling related exceptions
US5043867A (en) Exception reporting mechanism for a vector processor
US6301655B1 (en) Exception processing in asynchronous processor
JPH07248897A (ja) コンピュータ・システムにおける例外からの回復方法、及びそのための装置
JP3207124B2 (ja) カウント/リンク・レジスタ変更命令の投機実行をサポートする方法及び装置
CA2056356C (en) Interruption handling system
JPH02227730A (ja) データ処理システム
JP3170472B2 (ja) レジスタ・リマップ構造を有する情報処理システム及び方法
US5283891A (en) Error information saving apparatus of computer
US5903918A (en) Program counter age bits
JPH1196006A (ja) 情報処理装置
US5784606A (en) Method and system in a superscalar data processing system for the efficient handling of exceptions
JP2778717B2 (ja) データ処理ユニット
JPH1049373A (ja) パイプライン・デジタル・プロセッサにおいて多重で高精度の事象を操作する方法と装置
EP0510429A2 (en) Millicode register management system
JPH0377137A (ja) 情報処理装置