JPH1049373A - パイプライン・デジタル・プロセッサにおいて多重で高精度の事象を操作する方法と装置 - Google Patents

パイプライン・デジタル・プロセッサにおいて多重で高精度の事象を操作する方法と装置

Info

Publication number
JPH1049373A
JPH1049373A JP9116722A JP11672297A JPH1049373A JP H1049373 A JPH1049373 A JP H1049373A JP 9116722 A JP9116722 A JP 9116722A JP 11672297 A JP11672297 A JP 11672297A JP H1049373 A JPH1049373 A JP H1049373A
Authority
JP
Japan
Prior art keywords
event
stage
command
instruction
logic
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
JP9116722A
Other languages
English (en)
Inventor
John Susantha Fernando
スーザンザ ファーナンド ジョン
Shaun Patrick Whalen
パトリック ファレン シャウン
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.)
Nokia of America Corp
Original Assignee
Lucent Technologies Inc
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 Lucent Technologies Inc filed Critical Lucent Technologies Inc
Publication of JPH1049373A publication Critical patent/JPH1049373A/ja
Pending 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/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/32Address formation of the next instruction, e.g. by incrementing the instruction counter

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)
  • Complex Calculations (AREA)

Abstract

(57)【要約】 【課題】 本発明は、全体的にデジタル・マイクロプロ
セッサの分野関し、特に多重で高精度の事象を操作する
方法に関する。 【解決手段】 集積回路は、デジタル・プロセッサと、
命令セットからの命令を解読する解読ステージと、命令
を実行するために解読ステージに結合した実行ステージ
と、事象コマンドを解読ステージに提示して命令を無効
にするように作動できる解読ステージに結合した事象ロ
ジックとを備えている。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、全体的にデジタル・マ
イクロプロセッサの分野、特に多重で高精度の事象を操
作する方法に関する。
【0002】
【従来技術】マイクロプロセッサとマイクロコントロー
ラとデジタル信号プロセッサとを搭載するデジタル・プ
ロセッサは、数多くの需要家及び非需要家アプリケーシ
ョンに用いられている周知の制御デバイスである。リア
ルタイム・アプリケーションでは、プロセッサは、数サ
イクル以下で適正に任意の事象の組合せを操作しなけれ
ばならない。事象という用語は、今の命令スレッドを一
時的に保留し、事象ハンドラと呼ばれる新しいものを実
行することを、プロセッサに要求する、例外、中断、ト
ラップ、又は異常条件を意味し、保留した命令ストリー
ムを適正に再開(そんな事象が発生しなかったようにし
て)しなければならないことを意味する。事象の検出か
ら事象ハンドラの最初に命令にいたるまでの時間が、中
断待ち時間と呼ばれる。中断待ち時間は短いことが、リ
アルタイム・アプリケーションでは望ましい。多重事象
は、同時に又は互いにごく短い時間の間に生じると思わ
れる。
【0003】
【発明が解決しようとする課題】高精度事象は、事象の
前の全ての命令が実行され、その後の命令は実行されな
いように、命令が識別できることを意味している。言い
換えれば、プロセッサの状態は、事象の前の全ての命令
がプロセッサの状態を変更させ、事象後に実行される全
ての命令はプロセッサの状態を変更しないような状態で
なければならない。
【0004】高精度事象は、プロセッサの構造が、比較
的単純であり、1回に1度だけ命令を処理する時は、容
易にサポートできていた。しかし、最近のプロセッサ
は、高精度事象のサポートを複雑にしていた構成を改善
するために、数多くの技術を用いている。この趣旨に沿
う特殊な構造的な改良が、パイプラインの採用である。
プロセッサ・パイプラインは、各々命令がステージで実
行されるように、プロセッサのデータパスを区分けする
技術である。パイプラインは、各々のステージが他のス
テージと平行して動作できることから、並列方式と言え
る。従って、パイプラインは、各々命令が異なる実行ス
テージにある、多重の命令を同時に処理できる。この技
術は、命令に関するプロセッサの処理量を増加して、性
能を改善することになる。
【0005】典型的なパイプライン・プロセッサは、取
出し、解読、実行、書戻しのステージを含んでいる。第
1のステージはFETCHステージであり、プロセッサ
は次に実行される命令を取り出す。第2のステージはD
ECODEステージであり、プロセッサは、取り出され
たばかりの命令を解読し、オペランドをレジスタ・ファ
イルから読み取り、制御機能をセットアップして、それ
を実行する。第3のステージはEXECUTEステージ
であり、プロセッサは命令で指定された動作の全て又は
一部を実際に実行する。第4のステージはMEMORY
ステージであり、メモリにアクセスする命令で実際にメ
モリを読み取り又は書き込む。第5のステージはWRI
TEBACKステージであり、命令の結果が、命令で指
定された宛先(例えば、レジスタ・ファイル)に書き込
まれる。パイプラインは同時に実行される多重の命令を
含んでいるので、ある命令の終了と次の命令の開始とに
関する概念は、単純な構造の場合のように直進的でな
い。例えば、ジャンプのような一部の命令はDECOD
Eステージで終了するが、記憶のような他の命令はME
MORYステージで終了すると考えられる。
【0006】幾つかの問題が、パイプライン・プロセッ
サに適した高精度事象をサポートする事象ロジックをデ
ザインする際に生じる。これらの問題の一部は、パイプ
ライン使用に起因する直接的な帰結である。これらの問
題として、再開自在及び再開不能の命令、多重事象、パ
イプラインの流れ制御、コスト、紛らわしさがある。
【0007】周知のように、全ての命令は、パイプライ
ンが関係する事象操作である限り、同じに扱うことがで
きない。ある構造は、ステージが最後のステージを除い
てプロセッサの状態を変更しないことを確認して、パイ
プライン・プロセッサの事象を操作する。この構造にお
ける事象に対する対応として、最後のパイプライン・ス
テージの命令を終了してから、任意の他の命令がその次
のパイプライン・ステージに進まないようにする。事例
のパイプラインは、WRITEBACKステージの命令
がプロセッサ・ステージ(すなわちレジスタ・ファイ
ル)の変更を可能にし、FETCH、DECODE、E
XECUTE、MEMORYステージの命令は放棄され
る。
【0008】この方式は、プロセッサ・コア外部の構成
要素を含めるために、プロセッサ状態の概念を拡大しな
ければならないので、一部のシステムに適していない。
例えば、MEMORYステージで外部の先入れ先出し
(FIFO)メモリから読取を行うプロセッサのケース
を考えてみる。WRITEBACKステージの前にパイ
プラインを停止するシステムでは、FIFO読取が終了
するが、その命令は終了しない。このケースでは、FI
FO読取命令が内部状態を変更しないので、プロセッサ
の状態は変わらないが、それは外部状態を変えてしま
う。特に、プロセッサは、異なるFIFOロケーション
を読み取るので、FIFO読取命令を再実行して、この
事象後に再開することができない。このような命令は、
ここでは再開不能と呼ばれる。再開不能命令は、パイプ
ラインの末端に達する前に内部又は外部の状態を変えて
しまう命令である。従って、再び実行できないので、事
象がパイプラインの末端に達する前に発生しても、その
パスをパイプラインを介して終了しなければならないこ
とになる(このような状態を変える任意の状態を終えて
いるので)。一方で、再開自在の命令は、パイプライン
の全てのステージを通るまで、内部又は外部の状態を変
えない命令である。従って、それは、パイプライン末端
の前に中断される場合でも再実行できる。
【0009】パイプラインにおける事象操作を紛らわし
くする別の問題は、多重事象がパイプラインの異なるス
テージの命令に対して生じる時にある。この問題は、再
開不能命令要求のために部分的に現れる。再開不能命令
が後のステージで実行している間に、取り出される命令
がFETCHステージの異常に出会うケースについて考
えてみる。取出し異常に対応する事象は、再開不能命令
がまだ終了していないので直ちに発生しない。再開不能
命令の終了に数クロックのサイクルを要するので、一部
の構造は、取出し異常事象の検出を示すある状態を記録
する。しかし、再開不能命令を終了するプロセスは事象
を自ら発生する場合がある。このケースでは、再開不能
命令からの事象が、高精度事象の特質を維持するため
に、取出し異常事象の操作に代わることになる。ある事
象処理が取出し異常の代わりに既に行われているので、
あるプロセスの状態が変更される必要があるか、又は事
象を保留する履歴が、そのケースを操作するために記録
される必要がある。このように多重事象を操作するプロ
セッサは、それらの事象ロジックに非常に複雑な要素を
要求する。この複雑さが、性能とコストと検証を犠牲に
することになる。
【0010】再開自在の命令の問題に密接に関連する第
3の問題はパイプライン流れ制御の問題である。あるパ
イプライン・ステージが1つのクロック・サイクルで常
に実行するが、他は変更自在の数クロックのサイクルで
実行する。これは、後のステージが複数のクロック・サ
イクルを要求する時に、前半のステージを停止するか又
は進行を妨げることを、ステージ間の流れ制御メカニズ
ムに要求することになる。事象処理が正規命令の冒頭で
重なる時に、流れ制御が複雑になる。多重事象と再開不
能命令との操作は、流れ制御機構との相互作用を事象ロ
ジックに要求する。再開不能の命令がメモリ読取又は書
込動作である時に、それは、事象が検出される前のステ
ージを停止するおそれがある。これらの前半のステージ
のための事象処理は、パイプラインの流れ制御に基づい
て、後に説明するように多重事象を適正に操作しなけれ
ばならない。
【0011】事象ロジックの問題を解決する現在の方式
は、デスクトップ・コンピュータのマーケットを意図し
たプロセッサであることが多い。デスクトップ・プロセ
ッサのために開発した事象ロジックは、事象処理ロジッ
クをパイプラインの各々ステージと関連づける、例え
ば、ステージごとに事象状況を追跡して、一般的に多重
事象を操作している。一部は、パイプラインを停止し、
次に、事象発生時にパイプラインで非終了状態にあった
命令の全てを再び取り出して、多重事象を操作してい
る。この技術は、保存のための多重プログラム・カウン
タと、多重命令スレッドを再開するメカニズムとを必要
とする。他の構造は、互いに再開自在の命令の問題を無
視している。この過度の紛らわしさが、コアに必要なト
ランジスタの形状を大きくし、シリコンの面積を広く
し、それに伴うコスト高を直接導くことになる。過度の
紛らわしさは、実施時の的確性の検証だけに必要になる
資源を増やすので、営業的にも悪い影響を与えることに
なる。
【0012】
【課題を解決するための手段】本発明は、多重事象を高
精度で操作する方法と装置を提供することを意図してい
る。これを実現するために、本発明は、デジタル・プロ
セッサと、命令セットからの命令を解読する解読ステー
ジと、命令を実行するために解読ステージに結合した実
行ステージと、複数の異なる事象コマンドを解読ステー
ジに提示して命令を無効にするように作動できる解読ス
テージに結合した事象ロジックとを搭載する、集積回路
を提供する。命令を無効にし、命令処理に用いる流れ制
御機能を活用する機能を提供することによって、デジタ
ル・プロセッサは、多重で高精度の事象を廉価に操作す
ることができる。
【0013】そこで、本発明は、複数の事象を検出し
て、事象コマンドを発行し、最上位の優先順位の事象を
選択し、最上位の優先順位の事象に相応する事象ベクト
ルとリンク・アドレスとを提示し、事象コマンドが実行
ステージに発行されるまで、事象ベクトルとリンクが上
位の優先順位の事象に相応して修正されることを可能に
するステップを備えている、解読ステージと実行ステー
ジとを搭載するパイプライン・プロセッサにおいて、多
重で高精度の事象を操作する方法も提供する。従って、
本発明は、従来技術に存在する限界を大幅に解決する。
【0014】本発明のこれらの特徴と他の特徴は、図面
と共に本発明の実施例の次の詳細な説明において、更に
詳細に説明される。しかし、本発明の範囲は、添付の請
求項だけによって制限される。
【0015】
【実施例】本発明は組込み型マイクロプロセッサの特殊
な実施例を参照しながら説明するが、本発明の多重で高
精度の事象を操作する構成は、マイクロコントローラを
含めた、互換性のあるハードウェア機能を搭載する他の
デジタル処理装置と、デジタル信号プロセッサとに用い
るために適応できることも理解できると思われる。
【0016】図1に、本発明に準じて実施できるマイク
ロプロセッサ200の1つの実施例が図示してある。図
のように、マイクロプロセッサ200は、4つのパイプ
ライン・ステージ、すなわち、取出しステージ2と解読
ステージ4と実行ステージ6と書戻しステージ8(図示
せず)とを搭載している。当業者には自明のように、プ
ロセッサ上で実行される命令は、取出しステージ2を用
いて取り出されるか又は検索される。命令は、解読ステ
ージ4で解読され、実行ステージ6の該当するシーケン
スで実行される。
【0017】図2に、本発明のプロセッサに関連して実
施できる事象ロジックの1つの典型的な実施例が図示し
てある。事象ロジック10はプロセッサの解読ステージ
4と実行ステージ6とに相互に作用する。事象ロジック
10からの事象コマンド12は、取出しステージ2から
の正則命令とほぼ同様に解読ステージ4で解読される。
3つの事象コマンド12として、ESAVPC(すなわ
ち、事象保存プログラム・カウンタ)とESAVPSW
(すなわち、事象保存プログラム状況ワード)とEVN
OPがある。事象コマンド12は2ビットで符号化され
ている。コマンドは、要求されたプロセッサ状態とベク
トルとを適切な事象ハンドラに単純に保存する最小限の
セットである。解読ステージ4は、ESAVPCとES
AVPSWに正則命令より高い優先順位が割り当てられ
ているので、事象コマンド12がEVNOPである場合
にだけ正則命令を(取出しステージ2から)解読する。
事象ロジック10は、事象ベクトル14と、すなわち、
新しいプログラム・カウンタ(PC)とリンク16とを
解読ステージ4に送る。リンク16は、リターンPCと
プログラム状況ワード(PSW)とを記憶する事象操作
レジスタ・ファイルにおける4ビット・レジスタ・ナン
バーである。事象ベクトル14は、メモリ・ロケーショ
ン・ゼロから始まる事象ベクトル・テーブルに対する4
ビット・ワード・アドレスである。解読ステージ・コン
トロール18から事象ロジック10に対する入力は、状
況信号20と解読ステージ事象22から成る。解読ステ
ージ4は、プロセッサの外部に位置するHDS(ハード
ウェア開発システム)ロジックからHDS追跡信号24
も受信する。HDSロジックは、コア外部に位置するデ
バッグ関連ロジックのブロックである。解読ステージ・
コントロール18は、中止信号26も事象ロジック10
から受信する。
【0018】プロセッサ・コアの実行ステージ6の実行
ステージ・コントロール28は実行ステージ事象30の
ソースである。実行ステージ事象30は、命令実行(メ
モリ読取又は書込エラーであり、ゼロで除算される)に
関連する例外(事象)であり、実行ステージ6に解読ス
テージ4で符号化した形態で送られる事象である。実行
ステージ・コントロール28はxready制御信号3
2を事象ロジック10に出力する(xready制御信
号32は、実行ステージ6が解読ステージ4からの新し
い命令に対して準備ができていることを示す)。信号a
bortx 34は数クロックのサイクルを要する乗算
と除算の命令を終えさせる。このような命令が中止され
ると、実行ステージ6は、中止した命令が事象終了後に
再開されることを保証するフリップフロップ(SAVX
PC)をセットする。実行ステージ6は、メモリ/IO
システムからrdfault 36とwrfault
38と呼ぶ読取と書込に関する異常入力を受信し、これ
らの入力を事象ロジック10にも呈する。
【0019】事象ロジック10は、Reset、Non
Maskable Interrupt、Int0、
Intlを含んでいる外部中断ライン40に連なってい
る。事象ロジック10は、小電力動作のためのクロック
・コントロール42を介してプロセッサ・クロックも制
御する。小電力モードは、D−ステージ4からのコマン
ドに基づいて入力され、外部作動中断ライン40によっ
て始動される。図2に示すように、事象ロジック10
は、取出しステージ2と書戻しステージ8に直接インタ
フェースしない。
【0020】事象ロジック10は事象シーケンサ44と
呼ぶ状態マシンで制御される。事象ロジック10は、事
象(中断、実行ステージ事象、解読ステージ事象)をラ
ッチする事象レジスタ46と、ラッチしたと思われる多
くの事象の中から最上位の優先順位の事象を選択する優
先順位ロジック48と、選択した事象に相応する事象ベ
クトル14とリンク16とを送るベクトル/リンク・テ
ーブル50とから成る。
【0021】事象は、3つのソース、すなわち、外部中
断40、すなわち、リセットと、解読ステージ事象22
又は実行ステージ事象30からのマスク自在とマスク不
能の中断の中の1つから始まる。リセットが事象として
も扱われる(最上位の優先順位を有する)ことに注目す
べきである。解読ステージ4は命令又はテキスト読取異
常に起因する事象を導く。任意の命令のテキスト読取異
常は、状況ビットとして命令から送られ、解読ステージ
4による実行時に異常を導く。解読ステージ4は、Kc
all(核コール)又はTrace(プロセッサ状況ワ
ードの追跡ビット・セットのために)に起因する事象を
導く。解読ステージ4は、特権違反(ユーザ・モードで
実行する特権命令)と、中断点とシステム中断点命令
と、非実施命令とに関連する実行ステージ6事象に、符
号化された形態で進む。解読ステージ4は、プロセッサ
外部のHDSロジックから始まるHDS追跡事象を導
く。実行ステージ6は、解読ステージ4によって送られ
た事象、読取又は書込異常及びゼロ除算例外に関連する
事象を導く。
【0022】解読ステージ4は、取出しステージ2から
の命令より事象コマンド12に高い優先順位を割り当て
る。事象コマンド12は、命令のように、解読されて、
動作が通常の方式で実行ステージ6に発行される。今の
命令ストリームは解読ステージ4で中断される。実行ス
テージ6に既に発行されていた命令は、それらが終了す
るのに数多くのクロック・サイクルを要する多重サイク
ル演算命令でない限り、終了できる。従って、次に実行
される命令が正確に分かる、すなわち、解読ステージ4
の事象コマンドで定めた命令、又は実行ステージ6で中
止した多重サイクル演算命令のいずれかになる。従っ
て、2つのPC値があり、その1つは、中断した命令ス
トリーム、解読ステージ・プログラム・カウンタ(DP
C)、又は、実行ステージ・プログラム・カウンタ(X
PC)を再開する、保存である。どのPCが保存される
については、解読ステージ・コントロール18又は実行
ステージ・コントロール28から決まる。
【0023】図3に、事象シーケンサ44の詳細が状態
図で図示してある。ESEQ1状態54はリセット又は
アイドル状態であり、事象シーケンサ44は、事象が発
生するまで、その状態を保つ。1つ又は複数の事象が発
生すると、それらは専用事象レジスタ46にラッチされ
る。ラッチした事象の優先順位設定48では、最初に操
作される最上位の優先順位の事象を選択する。優先順位
設定48と平行して、ESAVPCコマンドがD−ステ
ージ4に発行される。X−ステージ6に、今の動作を中
止するabortx 34が発行される(abortx
34は、再開自在の多重サイクル命令が、乗算又は除
算のように、実行される場合にだけ、表明される)。事
象シーケンサ44は、ESEQ2状態56に変わる。
【0024】ESEQ2状態56で発生する任意の新し
い事象が、ラッチされ、前の事象より優先される。従っ
て、新しい事象が、前の選択に代わることになる。操作
のために選択された事象が、該当する選択ラッチでラッ
チされる。実行ステージ6が準備状態になると、事象ベ
クトルが、中断ハンドラの最初の命令を取り出すため
に、取出しステージ2に発行される。ESAVPSW事
象コマンドが発行され、ESEQ3状態58への移行
は、実行ステージ6が準備状態(xready制御信号
32で指示される)である場合にだけ行われる。実行ス
テージ6が準備状態でない(再開不能命令を実行する)
場合、優先順位設定48が引き続き行われ、より新しい
事象を含むことになる。準備状態の場合、実行ステージ
6は、保存されるPC(DPC又はXPC)を書戻しス
テージ8に送る。
【0025】ESEQ3状態58では、事象シーケンサ
44は、選択した事象を操作するように、ここで指示さ
れる。任意の新しい事象の発生は後の操作のために単純
にラッチされる。実行ステージ6はPSWを書戻しステ
ージ8に送る。HDS追跡信号24が表明されない場
合、ESEQ4状態62への移行が行われるか、又はE
SEQ3H状態60への移行が行われ、別のESAVP
Cコマンドが発行される。
【0026】ESEQ3H状態60は、ESAVPCと
ESAVPSWのコマンドを再発行可能にして、事象ハ
ンドラに対するシングル・ステップを促す。ESEQ3
H状態60の移行にESEQ3状態58によって発行さ
れたESAVPCコマンドと、ESEQ3状態58の移
行にESEQ3H状態60によって発行されたESAV
PSWコマンドは、入力される事象ハンドラのPCが、
プロセッサ・コアの外部に位置するHDSブロックに保
存され、PSWがデバッグ・シャドーPSWに保存され
るようにする。Mem/IOに対する実行ステージ6の
アクセスはPCとPSWを保存するために用いるが、レ
ジスタ・ファイルの書込みは作動不能になる。
【0027】ESEQ4状態62はシーケンスの最後の
状態であり、それは、事象レジスタ46と選択した事象
ラッチとをクリアする。ESEQ1状態54への移行
は、新しい命令が取り出された後に行われる。
【0028】事象処理は、事象を検出して対応するプロ
セッサが行う行為のセットである。事象に対する対応
は、いま命令スレッドを実行している文脈と、事象を操
作又は処置する命令スレッドの転送制御とを一般的に保
存することである。文脈と制御転送の保存は、ソフトウ
ェアでなく、ハードウェア・ロジック回路によって行わ
れる。文脈の正確な意味は、あるプロセッサの構造と次
の構造とによって異なる。古い構造では、文脈は、この
ようなものをスタックのロケーションとレジスタ・ファ
イルの内容として含んでいた。最新の構造では、文脈
は、プロセッサが事象を検出した時に実行していた命令
のアドレスと、事象が検出された時のプロセッサの実行
状況を示すPSWの値とに、限定されることが多い。本
発明は、これらの2つの項目を、その事象を処理してい
る間に、事象コマンドを用いて保存する。それは本発明
の特徴の1つでもある。
【0029】特殊な事象コマンド・セットと付随する制
御ロジックとを用いて、本発明は、事象制御機能を、従
来の手法ほど紛らわしいことはなく且つ高い性能を備え
て行う。事象コマンドは、事象ハンドラへの転送実行と
事象の文脈を保存するために、解読ステージ4に対して
事象ロジック10が発行する特殊な命令である。事象コ
マンド12は、プロセッサの内部にあるので、プログラ
マには見えない。事象コマンド12は正規の命令より高
い優先順位を備えている。言い換えれば、活動事象コマ
ンド12と正規の命令が共に同時に現れる場合、事象コ
マンド12の動作が行われ、正規の命令は無視される。
【0030】本発明のマイクロプロセッサ・コアの事象
構造は3つの事象コマンド12を備えている。これらの
事象コマンド12は、2ビット値00で符号化したEV
NOP(活動事象コマンドでなく、正規の命令解読を行
う)と、2ビット値10で符号化したESAVPC(正
規の命令解読を行わないが、中断した命令スレッドのプ
ロセッサ・カウンタを保存する)と、2ビット値11で
符号化したESAVPSW(正規の命令解読を行わない
が、中断した命令スレッドのプログラム状況ワードを保
存する)である。
【0031】図4に、正規の命令を無効にする典型的な
組合せロジックが図示してある。事象コマンド12は、
正規の命令と同じポイントで、すなわち、解読ステージ
4でパイプラインに入る。解読ステージ4は、ECMD
レジスタ64の今の事象コマンド12と、A/Bレジス
タ66の今の正規の命令を、共に、引き続き調べる。事
象コマンド12は、2ビット幅であり、正規命令の解読
を変更するので、別の解読パスを要求しない。正規命令
の解読中に、解読ステージ4は、A/Bレジスタ66の
ビットを調べて、ある行為を実施し、命令のオペランド
を作成する。更に、解読ステージ4は、命令が実行ステ
ージ6に進む時に、実行ステージ6に発行される制御ビ
ットを作成する。解読ステージ4は、データパスを用い
て、命令のオペランドを作成する動作を行う。データパ
スは、命令のオペランドを操作する機能ユニット(例え
ば、レジスタ・ファイル、アダー、マルチプレクサ)の
セットである。このデータパスは、解読ステージ・コン
トロール18によって制御される。他のパイプライン・
ステージは、類似の区分け機能をコントロールとデータ
パスの間に備えている。解読ステージ4で正規の命令を
解読すると、それは、instrval 72と呼ぶ信
号を、すなわち、命令が有効であることを表明して、有
効命令が解読されるA/Bレジスタ68に存在すること
を示す。活動事象コマンド(ESAVPC又はESAV
PSW)がECMDレジスタ64に存在する時に、解読
コントロールは、instrvalが表明されないよう
にする。これは、A/Bレジスタ66の命令の任意の制
御解読が行われることを防止する。代わりに、データパ
スへの制御信号が、ECMDレジスタ64の内容から解
読される。
【0032】図4は、前述の動作を実現する典型的な組
合せロジックを示す。正規の命令がA/Bレジスタ66
に常駐している。命令と取出しステージ2のビットは、
有効命令が任意に与えられたクロック・サイクルに対し
てA/Bレジスタ68に存在するかどうかについて指示
するために用いる。この指示は、instrval信号
72を生成するために、事象コマンドの最上位ビットの
補数を有する、ANDED 70である。従って、in
strval 72は、事象コマンド12がESAVP
C又はESAVPSWでない時にだけ表明される。in
strval信号72は、正規命令解読コントロール7
4がデータパス・コントロール76に伝搬できるように
する。ESAVPC又はESAVPSWコマンドがEC
MDレジスタ64に存在する場合、instrval
72は表明されない。ESAVPCとESAVPSWは
ECMDレジスタ64の相互に排他的な値なので、対応
するデータパス・コントロール80又は82がデータパ
ス76に対して作動可能になる。従って、事象コマンド
12は、解読ステージ4データパスに、正規の命令でな
く、事象コマンド12の行為を実施させる。
【0033】図5は、本発明のマルチプレクサのコア上
で動作する組合せロジックの更に詳細なイラストを示
す。この図は、解読ステージ4と実行ステージ6と書戻
しステージ8の一部を示す。取出しステージ2は、任意
の事象固有ロジックを備えていないので、図示してな
い。ロジックは、事象処理に包含される各々パイプライ
ン・ステージの一部だけ示す。
【0034】ESAVPC事象コマンドは、解読ステー
ジ4データパスに、DPCMXマルチプレクサ88と、
DRAADDMXマルチプレクサ90と、DADDRA
DDアダー92と、DROPMXマルチプレクサ94と
を経由して、XROPレジスタ86に転送される、DP
Cレジスタ84の値を選択させることになる。それは、
DPCレジスタ84の入力に相応して選択され、DNP
C信号の取出しステージ2に出力される、事象ロジック
10からのEVVEC信号から構成される、命令アドレ
スにも、結果としてなる。EVVEC信号は、検出され
た事象に相応する独自のコードを与える4ビット信号で
ある。信号から作成した命令アドレスは、実行がESA
VPCコマンドによって指示される事象ハンドラ(事象
ベクトル)のアドレスである。ESAVPCコマンド
は、解読ステージ・コントロール18に、ジャンプ動作
を行うことを取出しステージ2に送信させることにな
る。この送信は、解読ステージ4が正規のジャンプ命令
を解読する時に生成したものと同じである。ESAVP
Cコマンドは、解読データパスに、事象コマンドが現れ
た時に解読ステージ4にあった命令のアドレス(DPC
84の値)を、実行ステージ・コントロール(XCT
RL)96の制御ビットと共に、実行ステージ・データ
パス(XROP)86に転送させることになる。制御ビ
ットは、書戻しステージ8に送られる宛先レジスタ・ナ
ンバー(XDEST)98と実行ステージ6のデータパ
スを制御する信号を含んでいる。実行ステージ6は、W
DATAレジスタ102に転送されるXROP 86の
内容又はXPC 100の内容を選択する。XROP
86の内容は、RADMXマルチプレクサ104とアダ
ー/ロジック・ユニット106とXMX1マルチプレク
サ110とを経由して、WDATAレジスタ102に転
送される。XPC 100の内容は、XMX1マルチプ
レクサ110とXWDMXマルチプレクサ112とを経
由して、WDATAレジスタ102に転送される。実行
ステージ6はXDEST 98の内容をWDESTレジ
スタ114に転送する。書戻しステージ8は、WDAT
Aレジスタ102の内容を、WDESTレジスタ114
が与えたアドレスのGPEHRFレジスタ・ファイル1
16の事象操作バンクに書き込む。この送信とデータ
は、実行ステージ6が登録を実施して移動命令を登録す
る時に生成したものと同じである。
【0035】ESAVPSW事象コマンドは、解読ステ
ージ4に、2つの行為を行う実行ステージ6の制御ビッ
ト96を作成させることになる。実行ステージ6は、書
戻しステージ8にPSWの値を移動して、PSWの内容
をクリアするように命令される。解読ステージ4は、宛
先レジスタ・アドレス(XDEST 98)を実行ステ
ージ6に提示して、古いPSWの値を書戻しステージ8
で記憶しなければならない位置を指示する。この送信
は、ESAVPSWコマンドに独自のPSWをクリアす
ることを除けば、実行ステージ6でPSWからGPEH
RFレジスタ・ファイル116のレジスタにかけての移
動を行う時に生成したものと同じである。書戻しステー
ジ8は、WDATAレジスタ102の最下位の8ビット
の内容を、解読ステージ4のSHADPSWブロック1
18のシャドーPSWレジスタに書き込む。書き込まれ
るシャドーPSWレジスタは、WDESTレジスタ11
4から決まる。
【0036】事象コマンド12の符号化により、解読ス
テージ4は、正規の命令から事象コマンドにかけの解読
を、基本的に単一のビットで切り替えることができる。
プロセッサの残りの部分は正規命令の実行と区別できな
い制御要素を受信し、特殊な事象実行制御は必要とされ
ない。事象コマンドの処理のために実行ステージ6での
制御機能に追加するものは、PSWをクリアするための
PSWロジック108と、WDATAレジスタ102に
転送するためにリターン・プログラム・カウンタ値とし
て、XROP 86又はXPC 100を選択するロジ
ックだけである。取出しステージ2と書戻しステージ8
は事象処理専用のロジックを備えていない。従って、事
象コマンドは他の方式より事象処理機能を廉価に呈す
る。
【0037】事象コマンドは、正規の命令と同様に、パ
イプステージ間の流れ制御送信機能に準じて作動する。
これは、再開不能の命令を操作する機能を犠牲にせず
に、高精度で、多重事象を処理することを可能にする。
【0038】正規命令のための流れ制御は、xread
y制御信号32とdready信号120とを用いて行
われる。dready信号120は、命令の流れを取出
しステージ2から解読ステージ4にかけて制御する。d
ready信号120が表明されると、取出しステージ
2は、新しい命令をA/Bレジスタ66にロードする。
dready信号120が表明されない時に、取出しス
テージ2は新しい命令をA/Bレジスタ66にロードし
ない。xready制御信号32は、コマンドの流れを
解読ステージ4から実行ステージ6にかけて制御する。
xready制御信号32は、実行ステージ6で新しい
コマンドを受け取ることができる時にだけ表明される。
実行ステージ6でいまコマンドを実行している場合、そ
れはxready制御信号32の表明を解除する。xr
eady制御信号32の表明が解除されると、解読ステ
ージ4は新しいコマンドを実行ステージ6に発行しな
い。
【0039】この事象構造は、xready 32とd
ready信号120とを用いて、パイプラインを介す
る事象コマンドの実施状態を制御して、高精度の事象を
保証する。事象コマンドが解読ステージ4のECMDレ
ジスタ64にロードされると、dready信号120
の表明は、解読ステージ4で事象コマンドが終えるま
で、取出しステージ2が新しい命令をA/Bレジスタ6
6に発行することを禁止するために、解除される。これ
は、事象誘導命令後の任意の命令が、コアの内部又は外
部における任意の状態を変更させることを禁止する。事
象コマンドは、実行ステージ6が準備状態になるまで、
事象に付随する実行コマンドの発行を遅延する実行ステ
ージ流れ制御に準じて作動する。高精度事象は、保存し
たPC値が、事象誘導命令、又は再開自在の命令、又は
解読ステージ4がまだ発行していない命令のいずれかを
示す事象である。これは精度に関する前の定義と一致し
ている。事象コマンドが解読ステージ4に存在する時
に、事象を高精度にする適正なプログラム・カウンタ値
は、DPC 84の値又はXPC 100の値になる。
事象を高精度にするには、事象を導く命令のアドレス、
又は命令に起因しない事象(例えば、外部の非同期性中
断)の再開自在命令のアドレスのいずれかを保持するレ
ジスタの選定が必要になる。事象が解読ステージ4の命
令で発生していたとすると、その命令のアドレスがDP
C 84になる。事象が実行ステージ6の命令で発生し
ていたとすると、その命令のアドレスがXPC 100
になる。事象がパイプラインの命令で導かれていなかっ
た場合、保存されるアドレスは、DPC 84又はXP
C 100になる。
【0040】適正なアドレスが、解読ステージ4のロジ
ックと事象ロジック10との組合せによって選択され
る。解読ステージ4は、DPC 84又はXPC 10
0が、ESAVPC事象コマンドのために実行ステージ
6に発行するコマンドに基づいて、保存されるかどうか
について選択する。ESAVPC事象コマンドはXPC
レジスタ100を変えない。解読ステージ4は、いまコ
マンドを実行ステージ6に発行した同じ立ち上がりクロ
ック端でESAVPC事象コマンドを受信すると、その
実行ステージ6に対するコマンドが、XPCレジスタ1
00を事象リターン・アドレスとして保存することにな
る。いま実行ステージ6に発行された(従って、XPC
100によってアドレス指定された)命令は任意の状
態を変更できない。なぜならば、事象ロジック10は、
ESAVPCコマンドが実行ステージ6に発行されると
同時に実行ステージ6の処理を(abortx信号34
を介して)中止するからである。解読ステージ4が、E
SAVPC事象コマンドを受信しても、コマンドを実行
ステージ6に発行しなかった場合、それは、実行ステー
ジ6に、DPC 84を(XROP 86を介して)保
存アドレスとして転送するように指示する。実行ステー
ジ6は、ESAVPCコマンドが解読ステージ4に発行
された時に、再開自在のコマンドを実行していた場合、
それは、解読ステージ4からのDPC 84/XPC
100の選択を無視して、XPC 100を選定する。
このケースでは、再開自在の命令(マシン状態を変えな
かった命令)のアドレスが事象リターン・アドレスとし
て保存されるので、事象は高精度になる。しかし、実行
ステージ6がアイドル又は再開不能のコマンドを実行し
ていた場合、それは、解読ステージ4のESAVPCコ
マンドに準じて、DPC84をレジスタ・ファイルに事
象リターン・アドレスとして保存する。このケースで
は、事象の前の再開不能の命令が終了し、事象リターン
・アドレス(解読ステージ4のもの)によって指示され
た命令は任意の状態を変えていなかったので、事象は高
精度になる。実行ステージ6が、再開不能の命令を実行
していて、その命令に起因する事象を検出する、最終的
なケースが考えられる。このケースでは、実行ステージ
6は、XPC 100を事象リターン・アドレスとして
選択するように指示するabortx信号34を受信す
る。これは、事象誘導命令のアドレスが保存されるの
で、事象を高精度にする。全てのこれらのケースにおい
て、xready制御信号32が表明されるまで、ES
AVPC実行コマンドは実行ステージ6に発行されな
い。従って、再開不能命令の高精度事象がサポートされ
る。
【0041】事象コマンドを発行する事象制御ロジック
は、任意の履歴バッファを必要とせずに、事象コマンド
の解読に依存せずに、多重事象を操作する制御機能を含
んでいる。例えば、下位の優先順位の非同期性中断のた
めに事象コマンドを処理している間に、上位の優先順位
のデータ読取異常が発生する場合、データ読取異常は事
象ロジック10で透過的に操作される。この特長は、事
象コマンド解読に関する本発明の結合解除機能と、保存
するリターン・アドレスとレジスタ・ファイルの事象操
作バンクのそのレジスタ・アドレスとを示す情報とから
可能になる。
【0042】図6は、事象コマンドのタイミングと、事
象ベクトル14の適用がこの特長を実現する様子を示
す。この例の場合、解読ステージは、ESAVPC事象
コマンドが現れる時に命令(その1つはINSTRによ
って指示される)のストリームを処理している。この事
象コマンド12は、そのサイクルに存在する命令の解読
を無効にし、代わりに事象シーケンスを開始する。ES
AVPC事象コマンドが動作を実行ステージ6に発行す
るので、それは、実行ステージの流れ制御信号、xre
ady 32に準じて、xready 32が表明され
るまで実行ステージ6にコマンドを発行することを遅延
しなければならない。この間に、事象ロジック10は事
象ベクトル14を提示している。図6に示すように、解
読ステージ4が事象コマンド12の処理を始めても、事
象ベクトル14は、実行ステージ6がESAVPCに付
随する実行コマンド12を受け取るまで変わることがで
きる。図示する展開では、実行ステージ6は、解読ステ
ージ4が非同期性中断のための事象コマンドを受信した
時に、ロード命令を処理していたと思われる。実行ステ
ージ6がロードを終える際にデータ読取異常に気づく
と、それは、事象コマンドについて、解読ステージ4の
解読に関与せずに、事象ベクトル14を非同期性中断
(最初のベクトル)からデータ読取異常(最後のベクト
ル)に変更できる事象ロジック10に知らせる。
【0043】この特長は事象シーケンサ44(図3を参
照)の最初の2つの状態から実現される。サイクルAの
間、事象シーケンサ44がESEQ1状態54になる。
この状態で、事象シーケンサ44は、事象レジスタにラ
ッチした事象の優先順位を設定し、最上位の優先順位を
選択して操作し、ESAVPCコマンドを発行する。サ
イクルB〜Dで、事象シーケンサ44はESEQ2状態
56になる。解読ステージ4は、表明が解除されるxr
eady 32を待機するESAVPCコマンドを受信
すると、このコマンドを実行ステージ6に発行できる。
ESEQ2状態56で、事象シーケンサ44は、XDE
ST 98にロードされるレジスタ・アドレス(リンク
PCとPSWが保存される位置を示す)と、事象コマン
ド12が発行される時に取り出される事象ベクトル14
とを呈する。事象シーケンサ44は、ESEQ状態56
の間に、再び優先順位設定48を行う。それが上位の優
先順位の事象が表明されたことを知ると、それは、レジ
スタ・アドレスと事象ベクトル14とを変更し、新しい
最上位の優先順位の事象を反映する。ESAVPCコマ
ンドは処理される事象に依存しない。従って、解読ステ
ージ4が実行ステージで終了する再開不能の命令を待機
している間に、事象ロジック10は、任意の事象処理を
取り消さずに、次の事象を操作できる。
【0044】組込み型システムの事象操作の規定とし
て、周辺装置に対する読取と書込は、いちど周辺装置に
アクセスすると、再び実行することができない。これら
の命令は再開自在でないが、他の命令は再開自在でなけ
ればならない。パイプライン・プロセッサの他の事象構
造は、この規定を無視し、プロセッサ・マシンの状態を
変更しなかった全ての命令を再開する。普通、マシン状
態は、周辺装置の状態でなく、プロセッサ・コア内の状
態を意味するにすぎない。リターン・アドレス条件から
の事象コマンド解読に関する本発明の結合解除機能は、
実行パイプライン・ステージに制御機能を呈することに
よって、中断待ち時間に関与せずに、少し制御するだけ
で、再開自在と再開不能の命令を区別する。再開不能命
令の操作は実行ステージ6(図5を参照)で行われる。
実行ステージ6は、再開自在の命令を処理している時
に、rstbl信号122を表明して、事象ロジック1
0に連絡する。rstbl信号122が表明され、実行
ステージ6がある動作を実行している時に、事象ロジッ
ク10は、abortx信号34を表明して、実行ステ
ージ6の処理を中断し、それに、ESAVPC事象コマ
ンドに付随するコマンドを実施している時にXROP
86の代わりにXPC 100を選択させる。実行ステ
ージ6は、再開不能の命令を処理している時に、rst
bl信号122を表明しない。そこで、事象ロジック1
0に、abortx信号34を表明できないことを連絡
するので、再開不能命令で終了を実行することになる。
更に、実行ステージ6は、ESAVPC事象コマンドに
付随するコマンドを実施している時に、XPC 100
の代わりに、XROP 86(解読ステージPCを含ん
でいる)を選択する。従って、適正なリターン・アドレ
スがレジスタ・ファイルの事象操作バンクに保存され
る。
【0045】事象制御/コマンドの方式は、リセットと
追跡の事象を含めた、全ての事象を同じに扱う。追跡事
象はシングル・ステップ事象とも呼ばれる。事象操作の
特に難しいところは、事象を介するシングル・ステップ
である。多くのプロセッサがこの機能を提供していな
い。本発明は、この機能を最小限度の紛らわしさのもと
で提供する。事象状態マシンでは、ある更なる状態、す
なわち、ESEQ3H状態60が、シングル・ステップ
事象を呈する。更なる事象コマンドの解読は、同じ事象
コマンドが他の事象のようにシングル・ステップに用い
られないので、必要とされない。事象を介するシングル
・ステップは、他に同時の事象が発生する時に、シング
ル・ステップ事象の優先順位を最下位から最上位に劇的
に変更することによって可能になる。
【0046】図7は、事象ハンドラに対するシングル・
ステップの行為を示す。図7に示すように、(a)と
(b)とラベル表示したアセンブリ言語命令の2つのリ
ストと、命令と事象コマンドのタイミングを示す(c)
とラベル表示したタイミング図がある。リスト(a)
は、開発中のアプリケーション・プログラムの実行を制
御するデバッグ・プログラムを表す。このアプリケーシ
ョン・プログラムは、リスト(b)で表され、試験中の
コードと呼ばれる。試験中のコードは、ある事象ハンド
ラ(その一例が、ゼロ・ハンドラによる除算として、図
示してある)とアプリケーション・コード(mul/d
iv/ldシーケンスで示す)とから成る。デバッグ・
プログラムの機能の1つは、試験中のコードの正確に1
つのアセンブリ命令を実行することを可能にする。この
機能は、試験中のコードのシングル・ステップと呼ばれ
る。実行がシングル・ステップ後にデバッグ・プログラ
ムに戻ると、試験中のコードの状態は、次のシングル・
ステップが次のアセンブリ言語命令を実行するようにな
る。シングル・ステップされるアセンブリ言語命令が事
象に出会うと、ロジックは、シングル・ステップされる
次の命令がその事象のハンドラの最初の命令になるよう
なマシン状態で、デバッグ・プログラムに戻るように作
動する。図7はゼロ事象による除算の展開を示す。この
例の場合、デバッグ・プログラムはそのコードの末端で
実行している。実行は、試験中のコードに戻り、変更ア
ーク(i)で示す別の命令にステップする。ステップさ
れる命令は除算であり、除数は試験中のコードにおいて
0である。この除算が実行されている間、事象の優先順
位設定機能は、HDS追跡(又はシングル・ステップ)
事象を最下位の優先順位にする。従って、ゼロ事象によ
る除算が検出され、2つの事象コマンドがこの事象に対
応するために発行される。この結果、変更アーク(i
i)で示すゼロ事象ハンドラによる除算に転送する実行
になる。0事象ハンドラによる除算のリターン・アドレ
スは、divloopであり、レジスタ・ファイルの事
象操作バンクのレジスタに保存される。これらの2つの
事象コマンドが実行される時に、優先順位は、HDS追
跡事象だけ可能になるように効果的に変更される。この
例の場合、この信号が表明されると、第2の一対の事象
コマンドが、変更アーク(iii)で示すように、デバ
ッグ・プログラムに実行を戻すために発行される。この
事象のリターン・アドレスはev_div0であり、こ
れはコアの外部のHDSブロックのレジスタに保存され
る。従って、除算命令のシングル・ステップは、ゼロ・
ハンドラによる除算の最初の命令がシングル・ステップ
される次の命令になるようなマシン状態で、デバッグに
戻る。これは、ユーザが、ステップ機能を引き続き実施
して、ゼロ事象ハンドラによる除算をデバッグすること
を可能にする。
【0047】事象シーケンサ44がこの特長を実現す
る。図7に示すように、事象シーケンサ44は、ESE
Q1状態54、すなわち、そのアイドル状態にもともと
位置している。それがゼロ事象による除算を検出する
と、それは、ESAVPC事象コマンドを発行して、E
SEQ2状態56に入る。この例の場合、事象シーケン
サ44は、abortx 34を表明して、実行ステー
ジ6のゼロ動作による除算を中止する。従って、それ
は、ESAVPSWコマンドを発行して、ESEQ2状
態56からESEQ3状態58に移る。このESAVP
C/ESAVPSWは、一対で、ゼロによる除算のアド
レスをレジスタ・ファイルの事象操作バンクのレジスタ
に保存し、今のPSW値をシャドーPSWの1つに保存
する。ESEQ3状態58では、事象シーケンサ44が
表明されたHDS追跡事象を検出し、そのHDSモード
は表明されない。この組合せにより、シーケンサは、E
SAVPCコマンドを発行して、ESEQ3H状態60
に移る。シーケンサは、HDSモード信号をセットし
て、ESAVPSWコマンドを発行し、ESEQ3状態
58に必ず戻る。再びESEQ3状態58に戻り、HD
Sモード信号の表明された状態により、シーケンサは、
再びESEQ3H状態60に移ることが禁止され、代わ
りにESEQ4状態62に移る。この第2のESAVP
C/ESAVPSWは、一対で、ゼロ事象ハンドラによ
る除算(ゼロ事象ベクトルによる除算)のアドレスを、
ddata出力バス52(図2に図示してある)上で、
外部デバッグ・ロジック・ブロックに転送し、ゼロ事象
ハンドラPSW値による除算をHDSシャドーPSWに
転送する。HDSシャドーPSWは、他のシャドーPS
Wが事象の他のクラスの今のPSWを保存する場合と同
様に、デバッグ事象の今のPSWを保存する。
【0048】パイプラインが事象進行中に停止する一般
的な期間は4クロック・サイクル(1クロック・メモリ
の場合)である。これらのサイクルのなかの2つは、P
CとPSWを保存するためのものである。他の2つは、
事象ハンドラの最初の命令を取り出すためのものであ
り、ジャンプ命令に要求される2サイクルの停止と同じ
である。
【0049】
【発明の効果】本発明の長所は、事象制御機能/コマン
ドが、多重事象、再開不能と再開自在の命令、事象を介
するシングル・ステップ、待ち時間を保ちながら正規の
命令に対する影響を僅かにして高精度の事象を操作する
機能を提供することにある。
【0050】前述の説明から、図面を基準にして説明し
た実施例は単なる標準的なものであり、当業者は本発明
の精神と範囲から逸脱せずに図示した実施例に変更と修
正を加えることが可能なことを認めるものと思われる。
全てのこのような変更と修正は、添付の請求項で定める
本発明の範囲に属することを意図している。
【図面の簡単な説明】
【図1】本発明に準じて記載するプロセッサ・パイプラ
インの1つの実施例を示す図である。
【図2】どのように事象ロジックがプロセッサの解読と
実行のステージと相互に作用するかについて示す図であ
る。
【図3】プロセッサの事象シーケンサ(状態マシン)の
典型的な状態を示す図である。
【図4】どのようにして事象コマンドが正規の命令解読
コントロールを無効にするかについて示す図である。
【図5】デジタル・プロセッサ・コアを概略的に示す図
である。
【図5A】デジタル・プロセッサ・コアを概略的に示す
図である。
【図5B】デジタル・プロセッサ・コアを概略的に示す
図である。
【図6】事象コマンドとベクトル・タイミング図を示す
図である。
【図7A】アセンブリ言語命令のリストを示す図であ
る。
【図7B】アセンブリ言語命令のリストを示す図であ
る。
【図7C】ラベル表示したタイミングを示す図である。
【符号の説明】
2 取出しステージ 4 解読ステージ 6 実行ステージ 8 書戻しステージ 200 マイクロプロセッサ
───────────────────────────────────────────────────── フロントページの続き (72)発明者 シャウン パトリック ファレン アメリカ合衆国 18106 ペンシルヴァニ ア,ウェスコスヴィル,ハノヴァー ドラ イヴ 5301

Claims (43)

    【特許請求の範囲】
  1. 【請求項1】 命令セットを処理するデジタル・プロセ
    ッサを具備する、集積回路であって、 命令セットから命令を解読する、解読ステージと、 前記の命令を実行するために前記の解読ステージに結合
    された実行ステージと、 解読される前記の命令を無効にするために前記の解読ス
    テージに事象コマンドを提示する前記の解読ステージに
    結合された事象ロジックにおいて、前記の解読ステージ
    と前記の実行ステージは、事象に対応して命令セットか
    らの命令を処理するために、前記の実行と解読ステージ
    のデータ・パスと制御ロジックに結合されていることを
    特徴とする集積回路。
  2. 【請求項2】 前記の事象コマンドに前記の命令より上
    位の優先順位が割り当てられる、請求項1に記載の集積
    回路。
  3. 【請求項3】 前記の事象コマンドが2ビットで符号化
    される、請求項1に記載の集積回路。
  4. 【請求項4】 前記の事象コマンドが前記の解読ステー
    ジにプログラム・カウンタを保存するように命令し、前
    記の事象コマンドは、事象ベクトルによって指示された
    事象ハンドラに制御要素を転送するために、前記の命令
    セットからの命令を実行する、複数の制御とデータパス
    信号を介して処理される、請求項1に記載の集積回路。
  5. 【請求項5】 前記の事象コマンドが前記の解読ステー
    ジにプログラム状況ワードを保存するように命令し、前
    記の事象コマンドは、リンクによって指示されたシャド
    ーPSWレジスタに前記のプログラム状況ワードを保存
    するために、正規の命令を実行する制御とデータパス信
    号を介して処理される、請求項1に記載の集積回路。
  6. 【請求項6】 前記の事象コマンドが前記の命令の実行
    を可能にする非動作コマンドである、請求項1に記載の
    集積回路。
  7. 【請求項7】 前記の事象ロジックが、前記の解読ステ
    ージに事象ハンドラのアドレスを提示するために事象ベ
    クトルを更に呈する、請求項1に記載の集積回路。
  8. 【請求項8】 前記の事象ベクトルが事象ベクトル・テ
    ーブルの4ビット・アドレスである、請求項7に記載の
    集積回路。
  9. 【請求項9】 前記の事象ロジックが、前記の解読ステ
    ージに中断された命令のプログラム・カウンタを記憶す
    るレジスタ・アドレスを提示するリンクを更に呈する、
    請求項1に記載の集積回路。
  10. 【請求項10】 前記のリンクが、どのシャドーPSW
    が前記のプログラム状況ワードを記憶するについて指示
    し且つプログラムを記憶する、事象操作レジスタ・ファ
    イルにおいて、4ビット・レジスタ・ナンバーである、
    請求項9に記載の集積回路。
  11. 【請求項11】 前記の解読ステージが状況信号と事象
    とを前記の事象ロジックに入力する、請求項1に記載の
    集積回路。
  12. 【請求項12】 前記の事象ロジックが前記の実行ステ
    ージから事象を受信する、請求項1に記載の集積回路。
  13. 【請求項13】 多重事象を高精度に処理するために、
    前記の解読ステージと前記の実行ステージとに関する混
    雑/準備状況を示す、複数のパイプライン流れ制御信号
    を更に備えている、請求項1に記載の集積回路。
  14. 【請求項14】 前記の事象ロジックが、事象をラッチ
    する事象レジスタと、同時に発生する複数の事象から上
    位の優先順位の事象を選択する優先順位設定ロジック
    と、前記の選択された事象に相応する事象ベクトルとリ
    ンクを呈するベクトル/リンク・テーブルとを更に備え
    ている、請求項1に記載の集積回路。
  15. 【請求項15】 前記の事象ロジックがシーケンサを具
    備し、前記のシーケンサが有限状態マシンである、請求
    項1に記載の集積回路。
  16. 【請求項16】 前記の事象コマンドが事象保存プログ
    ラム・カウンタ・コマンドと事象保存プログラム状況ワ
    ード・コマンドと非動作コマンドとを含んでいるグルー
    プから選択される、請求項1に記載の集積回路。
  17. 【請求項17】 前記の事象が例外と中断とトラップと
    異常とを含んでいるグループから選択される、請求項1
    に記載の集積回路。
  18. 【請求項18】 命令セットを処理するデジタル・プロ
    セッサであって、 命令セットから命令を解読する、解読ステージと、 前記の命令を実行するために前記の解読ステージに結合
    された実行ステージと、 解読される前記の命令を無効にするために前記の解読ス
    テージに事象コマンドを提示する前記の解読ステージに
    電気的に結合された事象ロジックにおいて、前記の解読
    ステージと前記の実行ステージは、事象に対応して命令
    セットからの命令を処理するために用いられるメカニズ
    ムを活用する、前記の事象ロジックとを搭載する集積回
    路。
  19. 【請求項19】 前記の事象コマンドに前記の命令より
    上位の優先順位が割り当てられる、請求項18に記載の
    集積回路。
  20. 【請求項20】 前記の事象コマンドが2ビットで符号
    化される、請求項18に記載の集積回路。
  21. 【請求項21】 前記の事象コマンドが前記の解読ステ
    ージにプログラム・カウンタを保存するように命令し、
    前記の事象コマンドは、事象ベクトルによって指示され
    た事象ハンドラに制御要素を転送するために、正規の命
    令を実行する、複数の制御とデータパス信号を介して処
    理される、請求項18に記載のデジタル・プロセッサ。
  22. 【請求項22】 前記の事象コマンドが前記の解読ステ
    ージにプログラム状況ワードを保存するように命令し、
    前記の事象コマンドは、リンクによって指示されたシャ
    ドーPSWレジスタに前記のプログラム状況ワードを保
    存するために、正規の命令を実行する制御とデータパス
    信号を介して処理される、請求項18に記載のデジタル
    ・プロセッサ。
  23. 【請求項23】 前記の事象コマンドが前記の命令の実
    行を可能にする非動作コマンドである、請求項18に記
    載のデジタル・プロセッサ。
  24. 【請求項24】 前記の事象ロジックが、前記の解読ス
    テージに事象ハンドラのアドレスを提示するために事象
    ベクトルを更に呈する、請求項18に記載のデジタル・
    プロセッサ。
  25. 【請求項25】 前記の事象ベクトルが事象ベクトル・
    テーブルの4ビット・アドレスである、請求項24に記
    載のデジタル・プロセッサ。
  26. 【請求項26】 前記の事象ロジックが、前記の解読ス
    テージに中断された命令のプログラム・カウンタを記憶
    するレジスタ・アドレスを提示するリンクを更に呈す
    る、請求項25に記載のデジタル・プロセッサ。
  27. 【請求項27】 前記のリンクが、どのシャドーPSW
    が前記のプログラム状況ワードを記憶するについて指示
    し且つプログラムを記憶する、事象操作レジスタ・ファ
    イルにおいて、4ビット・レジスタ・ナンバーである、
    請求項26に記載のデジタル・プロセッサ。
  28. 【請求項28】 前記の解読ステージが状況信号と事象
    とを前記の事象ロジックに入力する、請求項18に記載
    のデジタル・プロセッサ。
  29. 【請求項29】 前記の事象ロジックが前記の実行ステ
    ージから事象を受信する、請求項18に記載のデジタル
    ・プロセッサ。
  30. 【請求項30】 多重事象を高精度に処理するために、
    前記の解読ステージと前記の実行ステージとに関する混
    雑/準備状況を示す、複数の正規パイプライン流れ制御
    信号を更に備えている、請求項18に記載のデジタル・
    プロセッサ。
  31. 【請求項31】 前記の事象ロジックが、事象をラッチ
    する事象レジスタと、同時に発生する複数の事象から上
    位の優先順位の事象を選択する優先順位設定ロジック
    と、前記の選択された事象に相応する事象ベクトルとリ
    ンクを呈するベクトル/リンク・テーブルとを更に備え
    ている、請求項18に記載のデジタル・プロセッサ。
  32. 【請求項32】 前記の事象ロジックがシーケンサを具
    備し、前記のシーケンサが有限状態マシンである、請求
    項18に記載のデジタル・プロセッサ。
  33. 【請求項33】 前記の事象コマンドが事象保存プログ
    ラム・カウンタ・コマンドと事象保存プログラム状況ワ
    ード・コマンドと非動作コマンドとを含んでいるグルー
    プから選択される、請求項18に記載のデジタル・プロ
    セッサ。
  34. 【請求項34】 前記の事象が例外と中断とトラップと
    異常とを含んでいるグループから選択される、請求項1
    8に記載のデジタル・プロセッサ。
  35. 【請求項35】 前記の事象ロジックが、デバッグを可
    能にするために、事象ハンドラに対するシングル・ステ
    ップの方法を更に提供する、請求項1に記載の集積回
    路。
  36. 【請求項36】 前記のシングル・ステップの方法が、 (a)ハードウェア・シングル・ステップ・モードにお
    けるデバッグ事象ハンドラからデジタル・プロセッサの
    動作を戻し、 (b)HDS−モード信号をクリアして、プロセッサの
    状態を変更し、デバッグ・モードから離れ、 (c)単一命令の実行を開始し、 (d)事象を検出し、 (e)事象コマンドを発行してプログラム・カウンタを
    解読ステージに保存し、 (f)事象コマンドを発行してプログラム状況ワードを
    解読ステージに保存し、 (g)ハードウェア・シングル・ステップ可能信号が表
    明され、HDS−モード信号が表明される場合に、事象
    コマンドを発行して、プログラム・カウンタを保存し、 (h)ハードウェア・シングル・ステップ可能信号が表
    明され、HDS−モード信号が表明される場合に、事象
    コマンドを発行して、プログラム状況ワードを保存し、 (i)ハードウェア・シングル・ステップ可能信号が表
    明され、HDS−モード信号が表明されない場合に、H
    DS−モード信号をセットして、 (j)デバッグ事象ハンドラに戻る、ステップを備えて
    いる、請求項35に記載の集積回路。
  37. 【請求項37】 前記の事象ロジックが、デバッグを可
    能にするために、事象ハンドラに対するシングル・ステ
    ップの方法を更に提供する、請求項18に記載の集積回
    路。
  38. 【請求項38】 前記のシングル・ステップの方法が、 (a)ハードウェア・シングル・ステップ・モードにお
    けるデバッグ事象ハンドラからデジタル・プロセッサの
    動作を戻し、 (b)HDS−モード信号をクリアして、プロセッサの
    状態を変更し、デバッグ・モードから離れ、 (c)単一命令の実行を開始し、 (d)事象を検出し、 (e)事象コマンドを発行してプログラム・カウンタを
    解読ステージに保存し、 (f)事象コマンドを発行してプログラム状況ワードを
    解読ステージに保存し、 (g)ハードウェア・シングル・ステップ可能信号が表
    明され、HDS−モード信号が表明される場合に、事象
    コマンドを発行して、プログラム・カウンタを保存し、 (h)ハードウェア・シングル・ステップ可能信号が表
    明され、HDS−モード信号が表明される場合に、事象
    コマンドを発行して、プログラム状況ワードを保存し、 (i)ハードウェア・シングル・ステップ可能信号が表
    明され、HDS−モード信号が表明されない場合に、H
    DS−モード信号をセットして、 (j)デバッグ事象ハンドラに戻る、ステップを備えて
    いる、請求項37に記載の集積回路。
  39. 【請求項39】 解読ステージと事象ロジックと実行ス
    テージとを有するパイプライン・プロセッサにおいて多
    重で高精度の事象を操作する方法であって、 (a)複数の事象を検出し、事象コマンドを事象ロジッ
    クから解読ステージに発行して、命令の流れを中断し、 (b)前記の複数の事象から最上位の優先順位の事象を
    選択し、 (c)前記の最上位の優先順位の事象に相応して事象ベ
    クトルとリンク・アドレスを提示し、 (d)実行ステージが前記の事象コマンドに対して準備
    状態になるまで、前記の事象ベクトルと前記のリンクと
    が、上位の優先順位の事象に相応して修正されることを
    可能にする、ステップを備えている方法。
  40. 【請求項40】 選択するステップの前に、事象レジス
    タに全ての事象を記憶するステップを更に備えている、
    請求項39に記載の方法。
  41. 【請求項41】 可能にするステップが事象入力をラッ
    チするステップを更に含んでいる、請求項37に記載の
    方法。
  42. 【請求項42】 検出するステップが、外部中断と解読
    ステージ事象と実行ステージ事象とから成るグループか
    らの全ての事象をラッチするステップを含んでいる、請
    求項39に記載の方法。
  43. 【請求項43】 前半のパイプライン・ステージに付随
    する選択された事象をクリアするステップを更に含んで
    いる、請求項39に記載の方法。
JP9116722A 1996-05-07 1997-05-07 パイプライン・デジタル・プロセッサにおいて多重で高精度の事象を操作する方法と装置 Pending JPH1049373A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/646157 1996-05-07
US08/646,157 US5761492A (en) 1996-05-07 1996-05-07 Method and apparatus for uniform and efficient handling of multiple precise events in a processor by including event commands in the instruction set

Publications (1)

Publication Number Publication Date
JPH1049373A true JPH1049373A (ja) 1998-02-20

Family

ID=24592000

Family Applications (1)

Application Number Title Priority Date Filing Date
JP9116722A Pending JPH1049373A (ja) 1996-05-07 1997-05-07 パイプライン・デジタル・プロセッサにおいて多重で高精度の事象を操作する方法と装置

Country Status (3)

Country Link
US (1) US5761492A (ja)
EP (1) EP0806723A3 (ja)
JP (1) JPH1049373A (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5987495A (en) * 1997-11-07 1999-11-16 International Business Machines Corporation Method and apparatus for fully restoring a program context following an interrupt
US7487502B2 (en) 2003-02-19 2009-02-03 Intel Corporation Programmable event driven yield mechanism which may activate other threads
US7849465B2 (en) * 2003-02-19 2010-12-07 Intel Corporation Programmable event driven yield mechanism which may activate service threads
US7363407B2 (en) * 2003-09-29 2008-04-22 Microsoft Corporation Concurrent arbitration of multidimensional requests for interrupt resources
US7334114B2 (en) * 2005-05-16 2008-02-19 Texas Instruments Incorporated Real-time monitoring, alignment, and translation of CPU stalls or events
US10311427B2 (en) * 2006-12-29 2019-06-04 Google Technology Holdings LLC Method and system for monitoring secure application execution events during contactless RFID/NFC communication
US9274573B2 (en) * 2008-02-07 2016-03-01 Analog Devices, Inc. Method and apparatus for hardware reset protection
CN115075985B (zh) * 2022-05-27 2025-06-24 华东计算技术研究所(中国电子科技集团公司第三十二研究所) 面向运载火箭时序指令回采的方法、系统及介质

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4779195A (en) * 1985-06-28 1988-10-18 Hewlett-Packard Company Interrupt system using masking register in processor for selectively establishing device eligibility to interrupt a particular processor
US5003462A (en) * 1988-05-31 1991-03-26 International Business Machines Corporation Apparatus and method for implementing precise interrupts on a pipelined processor with multiple functional units with separate address translation interrupt means
JP2858140B2 (ja) * 1988-10-19 1999-02-17 アポロ・コンピューター・インコーポレーテッド パイプラインプロセッサ装置および方法
US5390305A (en) * 1991-03-29 1995-02-14 Kabushiki Kaisha Toshiba Information processing apparatus capable of executing exception at high speed
DE69230554T2 (de) * 1991-07-08 2000-07-06 Seiko Epson Corp., Tokio/Tokyo Risc-mikroprozessorarchitektur mit schnellem unterbrechungs- und ausnahmemodus
JP2748822B2 (ja) * 1993-07-05 1998-05-13 日本電気株式会社 情報処理装置
WO1995010806A1 (en) * 1993-10-12 1995-04-20 Sony Corporation Device and method for controlling interruption
US5537559A (en) * 1994-02-08 1996-07-16 Meridian Semiconductor, Inc. Exception handling circuit and method

Also Published As

Publication number Publication date
EP0806723A3 (en) 1999-09-22
EP0806723A2 (en) 1997-11-12
US5761492A (en) 1998-06-02

Similar Documents

Publication Publication Date Title
US7020871B2 (en) Breakpoint method for parallel hardware threads in multithreaded processor
US6728866B1 (en) Partitioned issue queue and allocation strategy
US10795675B2 (en) Determine whether to fuse move prefix instruction and immediately following instruction independently of detecting identical destination registers
US8713294B2 (en) Heap/stack guard pages using a wakeup unit
US7689867B2 (en) Multiprocessor breakpoint
US6282601B1 (en) Multiprocessor data processing system and method of interrupt handling that facilitate identification of a processor requesting a system management interrupt
US6301655B1 (en) Exception processing in asynchronous processor
JP5047542B2 (ja) マルチスレッドプロセッサのディスパッチ時にスレッドをブロックする方法、コンピュータプログラム、および装置(精細なマルチスレッドディスパッチロックメカニズム)
JP2000029737A (ja) デバッグ機能のためのリアルタイム外部命令挿入を有するプロセッサ
US5596735A (en) Circuit and method for addressing segment descriptor tables
US8533394B2 (en) Controlling simulation of a microprocessor instruction fetch unit through manipulation of instruction addresses
US11023342B2 (en) Cache diagnostic techniques
US5948093A (en) Microprocessor including an interrupt polling unit configured to poll external devices for interrupts when said microprocessor is in a task switch state
JPH1049373A (ja) パイプライン・デジタル・プロセッサにおいて多重で高精度の事象を操作する方法と装置
KR102379886B1 (ko) 벡터 명령 처리
US7831979B2 (en) Processor with instruction-based interrupt handling
US5742755A (en) Error-handling circuit and method for memory address alignment double fault
US5864701A (en) Apparatus and method for managing interrupt delay associated with mask flag transition
US7496899B2 (en) Preventing loss of traced information in a data processing apparatus
JP2001249805A (ja) マイクロプロセッサ内の命令取出ユニット
JP2710994B2 (ja) データ処理装置
US11119149B2 (en) Debug command execution using existing datapath circuitry
US10901747B2 (en) Unified store buffer
IE62074B1 (en) Apparatus and method for synchronization of arithmetic exceptions in parallel pipelined execution units
JPS61294550A (ja) 電子計算機におけるデ−タ読取書込制御方式

Legal Events

Date Code Title Description
A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20040428