JPH086790A - プロセッサ制御装置 - Google Patents

プロセッサ制御装置

Info

Publication number
JPH086790A
JPH086790A JP13704294A JP13704294A JPH086790A JP H086790 A JPH086790 A JP H086790A JP 13704294 A JP13704294 A JP 13704294A JP 13704294 A JP13704294 A JP 13704294A JP H086790 A JPH086790 A JP H086790A
Authority
JP
Japan
Prior art keywords
instruction
exception
request
execution
holding unit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
JP13704294A
Other languages
English (en)
Inventor
Takumi Takeno
巧 竹野
Yuji Kamisaka
裕士 神阪
Kazuyasu Nonomura
一泰 野々村
Toru Watabe
徹 渡部
Takumi Maruyama
拓巳 丸山
Shinya Kato
慎哉 加藤
Chiyonsuwannapaisaan Poonchiyai
ポーンチャイ・チョンスワンナパイサーン
Katsunori Takeshita
克典 竹下
Takumi Nonaka
巧 野中
Koji Ishizuka
孝治 石塚
Atsushi Sokawa
淳 惣川
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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP13704294A priority Critical patent/JPH086790A/ja
Publication of JPH086790A publication Critical patent/JPH086790A/ja
Withdrawn legal-status Critical Current

Links

Landscapes

  • Advance Control (AREA)

Abstract

(57)【要約】 【目的】 パイプラインにおいて、スカラ実行時に割込
みが発生したとき、正確な割込み処理制御を可能とする
プロセッサ制御装置を提供すること。 【構成】 パイプラインでマクロ命令を実行し、複数の
マクロ命令を同時に実行可能であり、命令の例外発生タ
イミングを知る発生タイミング指示部IGMと、スカラ
実行とシングル実行を制御するスカラシングル実行制御
部を備え、命令アドレス保持部IA0と、リクエストタ
イプ保持部RQAと、命令シーケンス保持部SEQ0
と、シングルスカラ実行保持部MIE0と、リードサイ
ズ保持部RBAと、ライトサイズ保持部ACAと、リク
エストアドレス保持部SARと、リクエスト自動挿入指
示部LST2と、上記命令の例外発生タイミングが、命
令実行途中である場合、例外処理後に再度リクエストを
出し直すことを可能にするリクエスト再出部SARQと
を具備する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明はプロセッサ制御装置に係
り、特にパイプライン・プロセッサの命令処理の制御に
関するものである。プロセッサの高速化の要求に伴い、
スーパーパイプラインやスーパースカラ技術が提案さ
れ、用いられているが、スーパースカラ実行は、複数の
命令を同時に実行するため、複数の例外が同時に発生す
るが、プロセッサは正確な割込み処理制御を要求され
る。
【0002】
【従来の技術】従来のスーパースカラプロセッサでは、
スカラ実行中つまり複数の命令を同時に実行中に例外が
発生すると、正確な割込みを保証するため、割込み先で
その時点の実行命令コード等を解析し、例外処理完了後
にそれらの命令をエミュレーションして完了させ、次の
命令列から実行を再開する処理を行ったり、あるいは演
算命令のオーバーフロー例外をなくし、ソフトでチェッ
クが必要な場合には、演算命令の後ろに挿入して例外を
刈り取る専用命令を設けているものである。
【0003】
【発明が解決しようとする課題】しかしながら、前者の
エミュレーションでは、リカバリ処理が複雑でかつ時間
がかかるという欠点があり、後者の専用命令を用いる場
合には、従来からのアーキテクチャを資産継承している
場合には、アーキテクチャの変更及び拡張の必要があ
り、適用が難しい。
【0004】そこで、割込みのタイミング等を従来のま
ま変更することなく、スーパースカラ実行を行い、マイ
クロコードにより割込みを処理するシステムを考えて、
その場合に存在する問題点を考察する。
【0005】スーパースカラで実行を行わないシステム
では、各マクロ命令は1命令単位で実行を行っていたた
め、命令に関して発生する割込みは命令実行順でかつ1
つに限られていた。ところが、スーパースカラで命令を
実行すると、例外が発生した際、例外の発生した命令よ
りも本来後ろにあるべき命令はキャンセルされ、例外処
理完了後、再度実行する必要がある。
【0006】このため、再開処理の方法として、割込み
アドレス等からメモリ中の命令列をリードし、分析した
のち再開命令を実行することを考えたが、前記同様に処
理が複雑化し、処理速度の低下は免れない。また分岐命
令が同時に実行されていると、分岐動作が途中で中断さ
れるため分岐先からの継続実行が難しい。
【0007】本発明ではこれらのことを考慮して、命令
シーケンス分析及びスカラ実行状態等を簡単に判定し、
命令の完了、キャンセル等を簡単に行えるプロセッサ制
御装置を提供することを目的とする。
【0008】
【課題を解決するための手段】前記目的を達成するた
め、本発明の請求項1の発明では、図1に示す如く、パ
イプラインでマクロ命令を実行し、更に複数のマクロ命
令を同時に実行可能な、つまりスーパースカラ実行可能
なプロセッサにおいて、マイクロコードによりリードラ
イト可能な、マクロ命令の命令アドレスを保持する命令
アドレス保持部IA0と、マイクロコードによりリード
ライト可能な、マクロ命令のリクエストのタイプを保持
するリクエストタイプ保持部RQAと、マイクロコード
によりリードライト可能な、マクロ命令の命令シーケン
スを保持する命令シーケンス保持部SEQ0と、マイク
ロコードによりリードライト可能な、マクロ命令がスカ
ラ実行(複数命令実行)かスカラ実行かを保持するシン
グルスカラ実行保持部MIE0と、マクロ命令のリクエ
ストのリードサイズを示すリードサイズ保持部RBA
と、マイクロコードによりリードライト可能な、マクロ
命令のリクエストのライトサイズを示すライトサイズ指
示部ACAと、マイクロコードによりリードライト可能
な、上記リクエストのアドレスを保持するリクエストア
ドレス保持部SARと、マイクロコードによりリードラ
イト可能な、マクロ命令のリクエストがバウンダリを跨
がる場合にリクエストが2つに分割されたことを示し、
ハードの後半のリクエストを自動的に挿入することを示
すリクエスト自動挿入指示部LST2と、例外発生タイ
ミングが命令実行途中か命令の切れ目かを示す発生タイ
ミング指示部IGMを有する。
【0009】そして例外発生タイミングが命令実行途中
の場合、例外処理後に、再度リクエストを出し直すこと
を可能にするリクエスト再出部SARQ及び、例外発生
タイミングが命令の切れ目である場合に再度リクエスト
を出し直すことを可能にするリクエスト再出部SADQ
を設ける。
【0010】更にパイプE1においては、本発明の請求
項2の発明に記載のように、マイクロコードによりリー
ド可能な、マクロ命令の命令のアドレス又はそれを含む
命令列の先頭アドレスを保持する命令アドレス保持部I
ADと、マイクロコードによりリードライト可能な、マ
クロ命令あるいはそれを含む命令列のリクエストのタイ
プを保持するリクエストタイプ保持部RQDと、マイク
ロコードによりリードライト可能な、マクロ命令あるい
はそれを含む命令列のリクエストのサイズを保持するサ
イズ保持部ACDと、マイクロコードによりリードライ
ト可能な、上記リクエストのアドレスを保持するリクエ
ストアドレス保持部SADと、マイクロコードによりリ
ードライト可能な、マクロ命令あるいはそれを含む命令
列の命令シーケンスを保持する命令シーケンス保持部S
EQDと、マイクロコードによりリードライト可能な、
マクロ命令あるいはそれを含む命令列がスカラ実行かシ
ングル実行かを保持するシングルスカラ実行保持部MI
EDと、マイクロコードによりリードライト可能な、マ
クロ命令あるいはそれを含む命令列によるゼネラルレジ
スタ書込みがあることを示すゼネラルレジスタ書込指示
部GRWDと、マイクロコードによりリードライト可能
な、マクロ命令あるいはそれを含む命令列のうち、演算
命令のゼネラルレジスタ書込み番号を保持する演算命令
用GR番号保持部R1WADと、マイクロコードにより
リードライト可能な、マクロ命令あるいはそれを含む命
令列のうちロード命令のゼネラルレジスタ書込み番号を
保持するロード命令用GR番号保持部R1WLDを有す
る。
【0011】なお、本発明の請求項3では、スカラ実行
中の命令のうち、ロード命令用GR番号保持部R1WL
D及びリクエストタイブ保持部RQDをクリアした後、
リクエスト再出部SADQを動作させることにより演算
命令のみを完了させることができ、演算命令用GR番号
保持部R1WADをクリアしてリクエスト再出部SAD
Qを動作させることによりロードストア命令のみを完了
することを可能にする。
【0012】本発明の請求項4では、マクロ命令途中の
例外に対して再開処理時、リクエスト再出部SADQ
と、リクエスト再出部SARQを連続して動作させるこ
とにより保留中のリクエスト及びゼネラルレジスタへの
書込みを完了できるようにする。
【0013】本発明の請求項5では、マクロ命令途中の
例外に対しては、上記シングルスカラ実行保持部MIE
0をチェックしてこれが例えば「1」のときその例外が
スカラ実行時に発生し、「0」のときその例外がシング
ル実行時に発生したと判断し、マクロ命令の切れ目の例
外に対しては上記シングルスカラ実行保持部MIEDを
チェックしてこれが例えば「1」のとき、その例外がス
カラ実行時に発生し、「0」のときその例外がシングル
実行時に発生したものと判断し、例外処理からの再開処
理を変更できるようにする。
【0014】本発明の請求項6では、シングルスカラ実
行保持部MIE0をチェックしてこれが例えば「1」の
とき上記命令シーケンス保持部SEQ0をチェックし
て、例外を発生したスカラ実行命令列の命令順序は、こ
の命令シーケンス保持部SEQ0が「1」のとき演算命
令→ロードストア命令の順であり、これが「0」のとき
ロードストア命令→演算命令の順であることを示し、ま
たシングルスカラ実行保持部MIEDをチェックしてこ
れが例えば「1」のとき上記命令シーケンス保持部SE
QDをチェックして、例外を発生したスカラ実行命令列
の命令順序は、この命令シーケンス保持部SEQDが例
えば「1」のとき演算命令→ロードストア命令の順であ
り、これが「0」のときロードストア命令→演算命令の
順であることを示し、これらの情報により例外処理から
の再開処理を変更できるようにする。
【0015】本発明の請求項7では、演算命令で例外が
発生した場合、同時に実行中のロードストア命令のリク
エストを抑止し、リクエストによる例外は発生しないよ
うにして、リクエストの再投入を可能とする。
【0016】本発明の請求項8では、演算命令で例外が
発生した場合、同時に実行中のロードストア命令のリク
エストを抑止し、リクエストによる例外は発生しないよ
うにし、スカラ実行中の命令列のうち、ロードストア命
令又は演算命令のいずれかあるいは両方の命令実行完了
をキャンセルすることを可能にする。
【0017】本発明の請求項9では、命令実行中に例外
を検出した場合、シングル実行ならば命令アドレス保持
部IA0に保持されたアドレスをもとに例外を発生した
命令の次の命令から再フェッチを行い、スカラ実行でロ
ードストア命令で例外が発生し、スカラ命令列がロード
ストア命令、演算命令、分岐命令の順である場合、ロー
ドストア命令のみ完了させ、演算命令から再フェッチを
行い、スカラ実行でロードストア命令で例外が発生し、
スカラ命令列が演算命令、ロードストア命令、分岐命令
の順である場合、演算命令とロードストア命令を完了さ
せ、分岐命令から再フェッチを行うようにする。
【0018】本発明の請求項10では、命令の切れ目に
例外を検出した場合、シングル実行ならば、次命令即ち
命令アドレス保持部IA0に保持されたアドレスから再
フェッチを行い、スカラ実行でロードストア命令で例外
が発生し、スカラ命令列がロードストア命令、演算命
令、分岐命令の順である場合、ロードストア命令のみ完
了させ、演算命令から再フェッチを行い、スカラ実行で
ロードストア命令で例外が発生し、スカラ命令列が演算
命令、ロードストア命令、分岐命令の順である場合、演
算命令とロードストア命令を完了させ、分岐命令から再
フェッチを行うようにする。
【0019】本発明の請求項11では、命令の切れ目に
例外を検出した場合、スカラ実行で演算命令で例外が発
生し、スカラ命令列が演算命令、ロードストア命令、分
岐命令の順である場合、演算命令のみを完了させ、ロー
ドストア命令から再フェッチを行い、スカラ実行で演算
命令で例外が発生し、スカラ命令列がロードストア命
令、演算命令、分岐命令の順である場合、実行モードを
シングルモードにして再度ロードストア命令から再フェ
ッチを行うようにする。
【0020】本発明の請求項12では、スカラ実行時
に、アドレス指定例外あるいはオペレーション例外で割
込みが発生した場合には、実行モードをシングルモード
にして次命令から再フェッチを行い割込み時の状態を単
純化した状態で再度割込みを発生させるようにする。
【0021】本発明の請求項13では、スカラ実行時
に、命令系の例外が発生した場合にはロードストア命令
及び演算命令は完了させ、実行モードをシングルモード
にして、以降の命令から再フェッチを行い、すべての発
行可能な命令を完了したのち例外処理を行うようにす
る。
【0022】本発明の請求項14では、シングルモード
で再度例外が発生し、処理を完了したらその再開処理時
にスカラモードに戻すようにする。
【0023】
【作用】命令の実行中に割込みが発生したとき、例外検
出部がこれを検知して例外要因を分析する。例えばリク
エスト命令による例外であってTLB(Transla
tion Lookasid Buffer)フォルト
等が分析される。そしてこの割込みの発生が命令の切れ
目か、命令の実行中であるかを発生タイミング指示部I
GMをみて識別する。例えばIGM=「0」のとき命令
実行中と判断し、IGM=「1」のとき命令の切れ目で
割込みが発生したものと判断する。
【0024】命令の実行中で割込みが発生した場合に
は、シングルスカラ実行保持部MIE0が「1」か
「0」かをチェックし、MIE0が「0」のとき例えば
シングル実行と判断し、再開アドレスは、図示省略した
パイプP1の命令アドレス保持部に再開アドレスが保持
された次命令から実行するため、これを再開アドレスと
して設定する。
【0025】しかしシングルスカラ実行保持部MIE0
が「1」のときスカラ実行であるので、命令シーケンス
保持部SEQ0をチェックする。このSEQ0が「0」
のとき、スカラ実行している複数の命令の先頭がロード
ストア命令(LS命令)であるので、命令アドレス保持
部IA0に保持されたアドレスに命令長のバイト数であ
る4を加算したものを再開アドレスとして設定する。
【0026】命令シーケンス保持部SEQ0が「1」の
ときは複数の命令の先頭が演算命令(ALU命令)であ
るので、割込みの発生しているロードストア命令の次の
命令から再開させるため、命令アドレス保持部IA0に
保持されたアドレスに8を加算したものを再開アドレス
として設定する。
【0027】それから例外処理、例えばTLBフォルト
の場合にはTLBのエントリーの入れ替えの如き例外処
理を行い、実行モードをスカラモードに戻す。そしてリ
クエスト再出部SADQにより、例外を発生したリクエ
ストを再度出し直してこれを完了させる。
【0028】また例外を発生したリクエストの次のサイ
クルで出しているリクエストが存在するとき、これをリ
クエスト再出部SARQにより実行させる。ところで、
前記発生タイミング指示部IGM=「1」のときは、命
令の切れ目で割込みが発生した場合であるので、例外処
理を行い、シングルスカラ実行保持部MIEDが「0」
のときシングル実行と判断し、パイプP0の命令アドレ
ス保持部IA0に保持されている命令のアドレスを再開
アドレスとしてセットし、リクエスト再出部SADQに
より、例外を発生したリクエストを再度出し直す。
【0029】しかしシングルスカラ実行保持部MIED
が「1」のとき、スカラ実行と判断し、次に命令シーケ
ンス保持部SEQDをチェックする。このSEQDが
「0」のとき、スカラ実行している複数の命令の先頭が
ロードストア命令(LS命令)であるので、命令アドレ
ス保持部IADに保持されたアドレスに命令のバイト数
である4を加算したものを再開アドレスとして設定す
る。
【0030】命令シーケンス保持部SEQDが「1」の
ときは複数の命令の先頭が演算命令(ALU命令)であ
るので、割込みの発生しているロードストア命令の次の
命令から再開させるため、命令アドレス保持部IADに
保持されたアドレスに8を加算したものを再開アドレス
として設定する。
【0031】それからリクエスト再出部SADQによ
り、例外を発生したリクエストを再度出し直してこれを
完了させる。このように、複数命令を実行している場合
でも、例外が発生したとき、これに対する例外処理を行
い、例外の発生した命令を再度実行するとともに、それ
以外の命令も実行させることができる。
【0032】
【実施例】本発明の一実施例を図2〜図11に基づき説
明する。図2はパイプラインにおいて同時実行の命令シ
ーケンスのパターン説明図、図3はパイプラインと割込
みタイミング説明図、図4は本発明を実施したデータ処
理装置の概略図、図5は本発明の一実施例構成図、図6
はリクエスト制御回路構成図、図7は命令の実行中に割
込みが発生した場合(リクエスト命令による例外)の動
作説明図、図8は命令の切れ目で割込みが発生した場合
(リクエストTLBフォルト以外)の動作説明図、図9
は命令の切れ目で割込みが発生した場合(LS命令で例
外が発生)の動作説明図、図10はアドレス指定の例外
(ADEX例外)あるいはオペレーション例外(OPE
X例外)の発生した場合の動作説明図、図11は命令系
の例外が発生した場合の動作説明図である。
【0033】まず図2により、スーパースカラ実行を行
った場合の命令シーケンスパターンを示す。図2におい
てLSはロードストア命令、ALUは演算命令、BRは
分岐命令をそれぞれ示す。従って図2のaは命令列が演
算命令→ロードストア命令→分岐命令の順に並んでいた
場合でこれら3命令を同時に投入した場合を示し、bは
演算命令→ロードストア命令の2命令を同時実行した場
合を、cは演算命令→分岐命令の2命令を同時実行した
場合を、dはロードストア命令→演算命令→分岐命令の
3命令を同時実行した場合を、eはロードストア命令→
演算命令の2命令を同時実行した場合を、fはロードス
トア命令→分岐命令の2命令を同時実行した場合をそれ
ぞれ示す。
【0034】図3はパイプラインの構造と当パイプライ
ンにおける割込みタイミングの一例を示す。本発明の各
部の制御及び実施例の場合のパイプラインの構造はこの
図3の制御を用いているものとする。またスカラ実行す
る命令の命令長は、例えば4バイトの固定長とする。
【0035】図3においてP3〜P0、E1はそれぞれ
各パイプのステージを示しており、P3はフェッチステ
ージ、P2はデコードステージ、P1は演算ステージ、
P0はメモリアクセスステージ、E1はゼネラルレジス
タ(GR)ライトバックステージである。そして、
は図2のa〜fで示した同時実行の命令が一度に入って
いることを示す。
【0036】また、図3においてEIは命令が完了でき
る状態になったことを示す信号End Instruc
tionである。この信号がオンのとき例外要因があれ
ば、割込みが発生する。REQはリクエストであり、ロ
ード命令のときはリードせよというリクエストが出力さ
れ、ライト命令のときはストアせよというリクエストが
出力される。そしてST0、ST1はリクエストに制御
を移すためのステージ信号を示す。
【0037】INT0、INT1は割込みに制御を移す
ためのステージ信号である。割込みの発生するタイミン
グには、図3(A)、(B)、(C)で示すパターンが
ある。
【0038】図3(A)は命令の切れ目で割込む場合を
示している。これはの命令のパイプP0のEIで割込
む。例外を発生したのはの命令であり、の命令のリ
クエストが例外要因ならそのリクエストは抑止され、ス
テージST1がでない。したがって命令は未完了であ
る。更にに入っている命令も実行の途中で止まる。×
印はこれらの状態を示す。なお☆印は割込み要因の発生
を示す。
【0039】図3(B)も命令の切れ目で割込む場合を
示すが、この場合割込みを発生したのは命令であり、
未定義の命令とかアドレス指定例外の命令のように実行
してはいけない命令を実行しようとしたことによる割込
みが発生した場合である。この場合は、割込みは1つ先
のタイミングで検出する。図3(A)と同じタイミング
で検出すると、実行終了の可能性があるので、1つ前の
タイミングで割込む。このため、図3(B)に示す如
く、割込むタイミングはの命令のEIであり、(A)
と同じタイミングとなる。この場合の命令のリクエス
トは例外を発生していないので、リクエストREQに対
するステージST0、ST1は実行され、リクエストは
完了しているものとなる。しかしによるリクエストR
EQに対してはステージST0は実行されない。
【0040】図3(C)は、命令の途中で割込む場合を
示す。例えばメモリに連続的に複数回にわたってライト
している途中でページフォルトの如き例外が発生した場
合である。この場合には割込みのトリガはリクエストR
EQのステージ信号ST0である。このステージ信号S
T0がONのとき、例外要因があると割込みが引き起こ
される。
【0041】図4は本発明を実施したデータ処理装置を
示す。1はメモリ制御回路であり、データ用キャッシュ
2と、命令用キャッシュ3を有し、中央処理装置CPU
からのアクセス要求に基づきデータや命令をリード、ラ
イトするものである。
【0042】データ用キャッシュ2には1次キャッシュ
4とTLB5が設けられ、TLB5はCPUからアクセ
ス先のデータが1次キャッシュ4に存在するか否かチェ
ックし、存在すればこれを読み出してCPUに渡し、存
在しなければ、これをCPUに通知する。
【0043】命令用キャッシュ3にも1次キャッシュ6
とTLB7が設けられる。TLB7はCPUからアクセ
ス先の命令が1次キャッシュ6に存在するか否かチェッ
クし、存在すればこれを読み出してCPUに渡し、存在
しなければ、これをCPUに通知する。
【0044】CPUには読出部8、解読部9、演算部1
0、メモリアクセス部11、ライトバック部12、イン
ストラクション・バッファ13、リード・バッファ1
4、ゼネラル・レジスタ15、例外検出部16、リクエ
スト制御回路17、ロジック及びマイクロプログラム保
持部18、偏位値加算部19、リクエストアドレス保持
部SAR、スカラシングル実行制御部SSMS等が設け
られる。なおP3〜P0、E1はパイプのステージを示
す。
【0045】例外検出部16は、例えばTLBフォルト
とか、アドレス指定例外とかの如き例外の発生及びその
要因を検出するものである。リクエスト制御回路17
は、演算部10でオーバーフローが生じたときそのあと
のリクエストの実行を阻止するものであり、図6に示す
如く、演算部10から例えばオーバーフローが生じて例
外が発生したとき例外発生信号「1」が出力され、論理
回路23がオフになる。これに続き、リクエスト生成回
路21からリクエストREQが出力されたとき、前記論
理回路23がオフになっているので、これを抑止するこ
とができる。
【0046】この図6はリクエストのステージ回路を示
し、リクエスト生成回路21はリクエスト生成の制御ロ
ジックで構成され、22、24はリクエストのステージ
を生成するフリップ・フロップである。演算部10で演
算された結果、例外が発生したとき、例外発生信号
「1」が出力され、論理回路23がオフになり、リクエ
ストREQのステージ信号ST0を抑止される。
【0047】このように、演算命令、ロード命令が同時
に実行されているとき、演算命令が例外を引き起こすと
ロード命令のリクエストREQが抑止されるため、割込
み発生後にシングル実行に切り換えて、先頭の命令から
再度実行させることが可能となる。もし、このリクエス
ト制御回路17がなければ、スカラ実行により演算命令
の後にあるロード命令を同時実行している場合には、先
にロード命令が完了しているため正確な割込みを実現す
るのが難しい。
【0048】ロジック及びマイクロプログラム保持部1
8は、本発明における割込み制御を行うためのロジック
回路及びマイクロプログラムを保持するものであり、マ
イクロ命令で構成される前記SARQやSADQの外
に、割込みが発生したとき、その例外要因に応じて動作
するマイクロプログラム等を保持する。例えばTLBフ
ォルトが発生したとき、これに対応するマイクロプログ
ラムが格納され、また演算部にオーバーフローが発生し
たとき、これに対応するマイクロプログラムが格納され
ている。
【0049】偏位値加算部19は、命令の読み出しのた
めにアドレスを計算するものであって、ベース値にオフ
セット値を加算するものである。そしてその加算結果に
より得られたアドレスを、リクエストアドレス保持部S
ARにより保持する。
【0050】またスカラ実行とシングル実行を制御する
スカラシングル実行制御部SSMSが設けられる。図5
は本発明の一実施例構成図であり、前記命令アドレス保
持部IA0、リクエストタイプ保持部RQA、命令シー
ケンス保持部SEQ0、シングルスカラ実行保持部MI
E0、リードサイズ保持部RBA、ライトサイズ指示部
ACA、リクエストアドレス保持部SAR、リクエスト
自動挿入指示部LST2、発生タイミング指示部IG
M、リクエスト再出部SARQ、SADQ、命令アドレ
ス保持部IAD、リクエストタイプ保持部RQD、サイ
ズ保持部ACD、リクエストアドレス保持部SAD、命
令シーケンス保持部SEQD、シングルスカラ実行保持
部MIED、ゼネラルレジスタ書込指示部GRWD、演
算命令用GR番号保持部R1WAD、ロード命令用GR
番号保持部R1WLD等を有する。
【0051】この外、演算命令用GR番号保持部R1W
A、ロード命令用GR番号保持部R1WL、命令の例外
発生タイミングが命令実行途中か命令の切れ目かを示す
発生タイミング指示部IGM、レジスタライト用のデー
タが記入されるレジスタTBB、各コマンドレジスタに
設けられたライトパスA、書き込みデータをライトパス
経由のデータかパイプ前段からのデータかを選択するマ
ルチプレクサ、パイプライン制御回路PC等が設けられ
る。
【0052】実際では、パイプP0の横に並んでいる命
令アドレス保持部IA0、リクエスト自動挿入指示部L
ST2、ライトサイズ指示部ACA、リードサイズ保持
部RBA、リクエストタイプ保持部RQA、リクエスト
アドレス保持部SAR、シングルスカラ実行保持部MI
E0、命令シーケンス保持部SEQ0、演算命令用GR
番号保持部R1WA、ロード命令用GR番号保持部R1
WL、及びパイプE1の横に並んでいる命令アドレス保
持部IAD、サイズ保持部ACD、リクエストタイプ保
持部RQD、リクエストアドレス保持部SAD、シング
ルスカラ実行保持部MIED、命令シーケンス保持部S
EQD、ロード命令用GR番号保持部R1WLD、演算
命令用GR番号保持部R1WAD等はレジスタで構成さ
れる。
【0053】これらのレジスタは、通常動作時には毎ク
ロックごとに上のパイプ(P1又はP0)からの命令実
行に関するコマンド情報(割込みが発生した場合に命令
を継続実行できる)がセットされる。ひとたび割込みが
発生すると制御は、例えばマイクロコードRAMで構成
される割込処理用マイクロ命令保持部18−1に渡さ
れ、割込みに対応したマイクロプログラムが選択的に動
作する。
【0054】このマイクロプログラムは、割込みが発生
した時点のマクロ命令の実行状態を分析し、例外処理後
完了させる命令SARQと、再開時再実行させる命令S
ADQを切り分け、再実行させる命令のコマンド情報を
クリアする。このクリアは、図中の各コマンドレジスタ
に設けられたライトパスAから行われる。またライトす
るデータはレジスタTBBに予めセットする。
【0055】次に本発明の動作を、A、命令の実行中に
割込みが発生した場合(リクエスト命令による例外)、
B、命令の切れ目で割込みが発生した場合、C、命令の
切れ目で割込みが発生した場合(LS命令で例外が発生
した場合)、D、アドレス指定の例外(ADEX)/オ
ペレーション例外(OPEX)の発生した場合、E、命
令系の例外が発生した場合等について説明する。なお、
これらの説明に示す各フローチャートの制御は、図5等
に示すロジック及びマイクロプログラム保持部18によ
り行われる。
【0056】A.命令の実行中に割込みが発生した場合
(リクエスト命令による例外) 命令の実行中に割込みが発生した場合を図7及び図9に
基づき説明する。この場合は、図2(C)の例であり、
例外を発生した命令はパイプP0にある。また例えばT
LBフォルトが発生したものとして説明する。
【0057】(1)命令の実行中に割込みが発生したと
き、図4に示す例外検出部16がこれを検出して例外要
因を分析する。そしてリクエスト命令REQによる例外
であり、データ用キャッシュ2において、TLBフォル
トの発生したことが分析される。そしてこれがロジック
及びマイクロプログラム保持部18に通知され、これに
基づきTLBフォルトに対処するマイクロプログラムが
選択動作される。
【0058】(2)先ず発生タイミング指示部IGMを
みて割込みの発生が命令の切れ目か命令の実行中かを判
別する。例えばIGM=「0」のとき命令実行中と判別
され、IGM=「1」のとき命令の切れ目で割込みが発
生したものと判断する。
【0059】(3)IGM=「0」の場合は、図2
(C)に示す如く、命令実行中と判別される。そしてシ
ングルスカラ実行保持部MIE0が読み取られ、「0」
の場合は例えばシングル実行と判別され「1」の場合は
スカラ実行と判別される。そしてシングル実行の場合に
は再開アドレスは、パイプP1の命令アドレス保持部I
A1(図示省略)に保持された次命令のアドレスを再開
アドレスとして設定する。
【0060】(4)スカラ実行の場合には、命令シーケ
ンス保持部SEQ0をチェックし、「0」の場合は例え
ばスカラ実行している複数の命令の先頭がロードストア
命令(LS命令)であるので、割込みの発生しているロ
ードストア命令の次の命令から再開させるため、命令ア
ドレス保持部IA0に保持されたアドレスに命令長のバ
イト数である4を加算したものを再開アドレスとして設
定する。
【0061】(5)命令シーケンス保持部SEQ0が
「1」のときは、複数の命令の先頭が演算命令(ALU
命令)であるので、割込みの発生しているロードストア
命令の次の命令から再開させるため、命令アドレス保持
部IA0に保持されたアドレスに8を加算したものを再
開アドレスとして設定する。
【0062】(6)それから例外処理を行う。例えばT
LBフォルトの場合には、TLBのエントリーの入れ替
えを行ない、実行モードをスカラモードにする。これは
シングルモードになっている場合もあり、シングルモー
ドのまま走行したのでは性能が悪いのでスカラモードに
する。
【0063】(7)マイクロ命令で構成されるリクエス
ト再出部SADQは、例外を発生したリクエストREQ
を出し直してこれを完了させる。 (8)マイクロ命令で構成されるリクエスト再出部SA
RQは、例外を発生したリクエストREQの次のサイク
ルで出しているリクエストがあった場合にこれを実行さ
せる。
【0064】(9)それから再開アドレスから実行が行
われ、復帰完了となる。ところで前記(2)において発
生タイミング指示部IGM=「1」のときは、命令の切
れ目で割込みが発生した場合であり、図9に示す如き制
御が行われる。
【0065】(1)′その例外要因に基づく例外処理が
行われ、例えばTLBのエントリーの書き替えが行われ
る。 (2)′そしてシングルスカラ実行保持部MIEDをチ
ェックして、MIED=「0」のときシングル実行と判
断し、パイプP0の命令アドレス保持部IA0に保持さ
れている命令のアドレスを再開アドレスとしてセット
し、それからマイクロ命令で構成されているリクエスト
再出部SADQにより、例外を発生したリクエストを再
度実行する。
【0066】(3)′しかしシングルスカラ実行保持部
MIED=「1」のとき、スカラ実行と判断し、それか
ら命令シーケンス保持部SEQDをチェックする。この
SEQDが「0」のとき、スカラ実行している複数の命
令の先頭がロードストア命令(LS命令)であるので、
命令アドレス保持部IADに保持されたアドレスに命令
長バイト数である4を加算したものを再開アドレスとし
て設定する。
【0067】命令シーケンス保持部SEQDが「1」の
ときは複数の命令の先頭が演算命令(ALU命令)であ
るので、割込みの発生しているロードストア命令から再
開させるため、命令アドレス保持部IADに保持された
アドレスに8を加算したものを再開アドレスとして設定
する。
【0068】それからリクエスト再出部SADQにより
例外を発生したリクエストを再度出し直してこれを完了
させる。そして再開アドレスから実行を行い復帰する。 B.命令の切れ目で割込みが発生した場合 命令の切れ目で割込みが発生した場合を図8に基づき説
明する。この場合は図3(A)、(B)の例であり、リ
クエストやTLBフォルト以外のケースである。
【0069】(1)命令の切れ目で割込みが発生したと
き、図4に示す例外検出部16がこれを検出して、割込
み要因をリードし、オペレーション例外(OPEX)又
はアドレス指定例外(ADEX)か、それ以外かを判断
する。オペレーション例外は例えば未定義の命令がパイ
プに入ってきた場合であり、図3(B)に相当するもの
である。アドレス指定例外は、例えばメモリのアドレス
アライメント例外である。いずれも抑止することが必要
である。
【0070】(2)オペレーション例外又はアドレス指
定例外の場合、(B)のルートに移り後述する図10に
移行する。この場合、例外を起こした命令は、現在実行
中の命令の次のパイプに入っている命令である。
【0071】(3)しかしオペレーション例外でもなく
またアドレス指定例外でもなければ、命令系例外か否か
を判断する。命令系例外は、例えば命令を読みに行った
ときTLBフォルトを生じた場合であり、これも割込み
要因をチェックして行う。命令系例外の場合は、(C)
のルートに移り、後述する図11に移行する。
【0072】(4)命令系例外でなければ、例外命令つ
まり例外を発生した命令がロードストア命令(LS命
令)か、演算命令(ALU)かを割込み要因をチェック
して判定する。この場合演算命令の例外とロードストア
命令の例外が同時に発生することはない。そしてロード
ストア命令の例外の場合には(A)のルート、即ち前記
図9について説明した(1)′、(2)′、(3)′等
の制御が行われる。
【0073】(5)演算命令の場合は、命令実行モード
がシングル実行かスカラ実行かをシングルスカラ実行保
持部MIEDにより判別する。演算命令の例外信号によ
りロードストア命令のリクエストが抑止されるため、こ
の命令実行モードの判定は、図5に示されるシングルス
カラ実行保持部MIEDをチェックして行う。このシン
グルスカラ実行保持部MIEDが例えば「1」のときス
カラ実行、「0」のときシングル実行である。シングル
実行のときは、割込みを起こした命令と同時に実行して
いる命令はないので、例外処理後の再開アドレスは、パ
イプP0の命令アドレス保持部IA0に入っている命令
でよい。このとき、パイプE1の命令アドレス保持部I
ADには例外を発生した命令を含む命令列の先頭アドレ
スが入っている。
【0074】(6)またスカラ実行のときは、割込みを
起こした命令と同時に実行している命令があるので、命
令シーケンスを調べる必要がある。このため、命令シー
ケンスの判定を、図5に示す命令シーケンス保持部SE
QDをチェックして行う。この命令シーケンス保持部S
EQDが例えば「1」のとき演算命令ALUが先頭であ
り、「0」のときはロードストア命令LSが先頭であ
る。このとき、例外を発生しているのは演算命令なの
で、演算命令まで完了させ、演算命令の次から実行させ
る。即ち、再開アドレスは、命令シーケンス保持部SE
QDが「1」のときIAD+4、命令シーケンス保持部
SEQDが「0」のときIADに保持されたアドレスと
なる。
【0075】(7)ここで命令アドレス保持部IADに
保持されたアドレスから再実行するということは、ロー
ドストア命令から実行をやり直し、実行モードをシング
ル実行モードに変更し再実行することによりロードスト
ア命令を先に単独で実行し、次に演算命令を実行するこ
とにより演算命令単独で再度例外を発生し割込む。これ
により正確な割込みを保証し、さらに処理を単純化する
ことが可能となる。
【0076】(8)先頭が演算命令の場合は、再開アド
レスはIAD+4として設定され、演算命令に対する例
外処理例えばオーバーフロー処理が行われる。それから
実行モードをスカラモードに設定し、マイクロ命令によ
り構成されるリクエスト再出部SADQにより例外を発
生した命令つまり演算命令を再度とり出して完了させ、
復帰する。
【0077】C.命令の切れ目で割込みが発生した場合
(LS命令で例外が発生した場合)は、前記(1)′、
(2)′、(3)′により説明したように図9に基づく
制御が行われる。
【0078】D.アドレス指定の例外(ADEX)/オ
ペレーション例外(OPEX)の発生した場合 アドレス指定の例外(ADEX)又はオペレーション例
外(OPEX)の発生した場合について、図10に基づ
き説明する。この場合は、前記図8の(2)の(B)に
対するものである。
【0079】この場合は命令の実行を抑止する必要のあ
る例外が発生した場合の処理フローであり、割込みを受
け付けるのは1サイクル早いタイミングである。従って
1つ上のパイプの情報をみることが必要である。
【0080】(1)シングルスカラ実行保持部MIE0
をチェックし、命令実行モードがシングル実行かスカラ
実行かを判別する。 (2)シングル実行の場合は、この状態の場合、命令自
体は打ち切りとなり、OSに処理を渡すことになる。そ
のため、実行モードをスカラモードとし、例外処理とし
てOSに制御を渡して中断処理を行う。これ以上この命
令を継続実行することはない。
【0081】(3)スカラ実行の場合は、再開アドレス
を命令アドレス保持部IA0に記入されているもので設
定する。そして実行モードをシングルモードにして、例
外の発生した命令を検出する。そしてリクエスト再出部
SADQにより、図3(B)のの命令を正常に終ら
せ、復帰する。
【0082】即ち、図8において、例外を引き起こして
いる命令は、図3(B)のに入っている。従って図3
(B)のに入っている命令は、無条件に完了してよ
い。またこの図3(B)のもスカラ実行している可能
性があるため、どの命令が例外を引き起こしたのかを判
定するのが難しい。そこで図3(B)のの命令列を全
て完了して、の命令列の先頭からシングル実行モード
で1命令ずつ実行させる。これにより例外を発生したと
ころでシングル実行で割込むので、そのとき例外を処理
することになる。
【0083】E.命令系の例外が発生した場合 命令系の例外が発生した場合について、図11に基づき
説明する。この場合は前記図8の(3)の(C)に対す
るものである。この場合の例外は命令系の例外、例えば
命令を読み出したときTLBフォルトが発生したような
ケースであるので、実行できる命令まですべて完了させ
たのち、当例外処理を実行する。割込みが発生したとき
スカラ実行であればロードストア命令まで完了させ、シ
ングル実行モードにしてロードストア命令の次から再実
行させる。やがてパイプに実行中の命令がなくなるとシ
ングルモードで割込むので、このとき例外処理を実行す
る。
【0084】(1)割込みが発生したときシングルスカ
ラ実行保持部MIEDをチェックし、命令実行モードが
シングル実行か、スカラ実行か判別する。このシングル
スカラ実行保持部MIEDが例えば「0」のときシング
ル実行と判別する。シングル実行の場合は、その例外発
生に対する例外処理を行い、例外発生要因を解消してか
ら実行モードをスカラモードにし、この例外発生した命
令を再度実行し、復帰する。
【0085】(2)スカラ実行の場合には、命令シーケ
ンス保持部SEQDをチェックし、例えばこれが「0」
のとき先頭の命令がロードストア命令であると判断され
る。このロードストア命令についてはこれを終了させ、
その次の命令から再開させるため、命令アドレス保持部
IADに記入されたアドレスに命令長のバイト数4を加
算したものを再開アドレスとして設定する。
【0086】(3)また命令シーケンス保持部SEQD
が「1」のとき、先頭の命令が演算命令ALUであると
判断される。このときリクエスト命令がないかをみて、
なければ前記(2)の命令アドレス保持部IADに記入
されたアドレスに命令長のバイト数4を加算したものを
再開アドレスとして設定する。またリクエスト命令があ
れば、リクエスト命令を終わらせ、再開アドレスを命令
アドレス保持部IADに記入されたアドレスに8を加算
したものを再開アドレスとして設定する。
【0087】(4)それから実行モードをシングルモー
ドとし、命令を1つ1つ順次実行させ、例外発生中の命
令を検出する。そしてそれに対応する処理を行い、リク
エスト再出部SADQによりこの例外の発生した命令を
再実行し、復帰する。
【0088】なお上記説明は命令長が4バイトの例につ
いて説明したが、本発明は勿論これのみに限定されるも
のではない。
【0089】
【発明の効果】請求項1及び請求項2に記載された本発
明によれば、スーパースカラ制御における命令列中に各
種の割込みが発生した場合、複雑な命令コードを解析す
ることなく、高速に割込み処理を実行することが可能と
なる。
【0090】請求項3に記載された本発明によれば演算
命令のみを完了させたり、ロードストア命令のみを完了
させることができる。請求項4に記載された本発明によ
れば、保留中のリクエスト及びゼネラルレジスタへの書
込みを完了させることができる。
【0091】請求項5に記載された本発明によれば例外
がスカラ実行時に発生したのか、シングル実行時に発生
したのか判断し、また例外処理からの再開処理を変更で
きる。
【0092】請求項6に記載された本発明によれば、ス
カラ実行のときの命令列の順序が演算命令→ロードスト
ア命令の順か、この逆のロードストア命令→演算命令の
順か判断でき、例外処理からの再開処理を変更すること
ができる。
【0093】請求項7に記載された本発明によれば、演
算命令でオーバーフローの如き例外が発生したとき同時
に実行中のロードストア命令のリクエストを抑制し、リ
クエストによる例外を防止し、リクエストの再投入が可
能となる。
【0094】請求項8に記載された本発明によれば、ス
ーパースカラ実行中の命令列のうちからロードストア命
令または演算命令のいずれかあるいは両方の命令実行完
了をキャンセルすることができる。
【0095】請求項9に記載された本発明によれば命令
実行中に例外を検出した場合に、どの命令から再フェッ
チできるか判別し、正しい再開処理ができる。請求項1
0に記載された本発明によれば、命令の切れ目に例外を
検出した場合に、どの命令から再フェッチできるのか判
別し、正しい再開処理ができる。
【0096】請求項11に記載された本発明によれば、
命令の切れ目に例外を検出した場合に、ロードストア命
令より再フェッチすることができる。請求項12に記載
された本発明によれば、割込み時の状態を単純化した状
態で再度割込みを発生させることができる。
【0097】請求項13に記載された本発明によればす
べて発行可能な命令を完了したのちに例外処理を行うこ
とができる。請求項14に記載された本発明によれば、
シングルモードで再度例外を発生させてその例外処理を
行ってから、スカラモードに戻して再開処理を効率的に
行うことができる。
【図面の簡単な説明】
【図1】本発明の原理図である。
【図2】パイプラインにおいて同時実行の命令シーケン
スのパターン説明図である。
【図3】パイプラインのステージと割込みタイミング説
明図である。
【図4】本発明を実施したデータ処理装置の概略図であ
る。
【図5】本発明の一実施例構成図である。
【図6】本発明のリクエスト制御回路構成図である。
【図7】命令の実行中に割込みが発生した場合(リクエ
スト命令による例外)の本発明の動作説明図である。
【図8】命令の切れ目で割込みが発生した場合(リクエ
ストTLBフォルト以外)の本発明の動作説明図であ
る。
【図9】命令切れ目で割込みが発生した場合(LS命令
で例外が発生)の本発明の動作説明図である。
【図10】アドレス指定の例外(ADEX例外)あるい
はオペレーション例外(OPEX例外)の発生した場合
の本発明の動作説明図である。
【図11】命令系の例外が発生した場合の本発明の動作
説明図である。
【符号の説明】
IGM 発生タイミング指示部 IBB レジスタライト用のデータが記入されるレジス
タ A ライトパス IA0 命令アドレス保持部 RQA リクエストタイプ保持部 SEQ0 命令シーケンス保持部 MIE0 シングルスカラ実行保持部 RBA リードサイズ保持部 ACA ライトサイズ指示部 SAR リクエストアドレス保持部 LST2 リクエスト自動挿入指示部 SARQ リクエスト再出部 SADQ リクエスト再出部 IAD 命令アドレス保持部 RQD リクエストタイプ保持部 ACD サイズ保持部 SAD リクエストアドレス保持部 SEQD 命令シーケンス保持部 MIED シングルスカラ実行保持部 GRWD ゼネラルレジスタ書込指示部 R1WAD 演算命令用GR番号保持部 R1WLD ロード命令用GR番号保持部 PC パイプライン制御回路 LMC ロジック・マイクロプログラム保持部 SSMS スカラシングル実行制御部
フロントページの続き (72)発明者 渡部 徹 神奈川県川崎市中原区上小田中1015番地 富士通株式会社内 (72)発明者 丸山 拓巳 神奈川県川崎市中原区上小田中1015番地 富士通株式会社内 (72)発明者 加藤 慎哉 神奈川県川崎市中原区上小田中1015番地 富士通株式会社内 (72)発明者 ポーンチャイ・チョンスワンナパイサーン 神奈川県川崎市中原区上小田中1015番地 富士通株式会社内 (72)発明者 竹下 克典 神奈川県川崎市中原区上小田中1015番地 富士通株式会社内 (72)発明者 野中 巧 神奈川県川崎市中原区上小田中1015番地 富士通株式会社内 (72)発明者 石塚 孝治 神奈川県川崎市中原区上小田中1015番地 富士通株式会社内 (72)発明者 惣川 淳 石川県金沢市増泉3丁目4番30号 株式会 社富士通北陸システムズ内

Claims (14)

    【特許請求の範囲】
  1. 【請求項1】 パイプラインでマクロ命令を実行し、更
    に複数のマクロ命令を同時に実行可能であり、命令の例
    外発生タイミングを知る発生タイミング指示部IGM
    と、スカラ実行とシングル実行を制御するスカラシング
    ル実行制御部を備え、分岐命令と後続の命令の間では割
    込みを受けつけないプロセッサにおいて、 マイクロコードによりリードライト可能な、マクロ命令
    の命令アドレスを保持する命令アドレス保持部IA0
    と、 マイクロコードによるリードライト可能な、マクロ命令
    のリクエストのタイプを保持するリクエストタイプ保持
    部RQAと、 マイクロコードによりリードライト可能な、マクロ命令
    の命令シーケンスを保持する命令シーケンス保持部SE
    Q0と、 マイクロコードによりリードライト可能な、マクロ命令
    がスカラ実行かシングル実行かを保持するシングルスカ
    ラ実行保持部MIE0と、 マイクロコードによりリードライト可能な、マクロ命令
    のリクエストのリードサイズを示すリードサイズ保持部
    RBAと、 マイクロコードによりリードライト可能な、マクロ命令
    のリクエストのライトサイズを示すライトサイズ保持部
    ACAと、 マイクロコードによりリードライト可能な、上記リクエ
    ストのアドレスを保持するリクエストアドレス保持部S
    ARと、 マイクロコードによりリードライト可能な、マクロ命令
    のリクエストがバウンダリを跨がる場合にリクエストが
    2つに分割されたことを示し、ハードで後半のリクエス
    トを自動的に挿入することを示すリクエスト自動挿入指
    示部LST2と、 上記命令の例外発生タイミングが、命令実行途中である
    場合、例外処理後に再度リクエストを出し直すことを可
    能にするリクエスト再出部SARQとを具備したことを
    特徴とするプロセッサ制御装置。
  2. 【請求項2】 マイクロコードによりリード可能な、マ
    クロ命令の命令アドレス又はそれを含む命令列の先頭ア
    ドレスを保持する命令アドレス保持部IADと、 マイクロコードによりリードライト可能な、マクロ命令
    あるいはそれを含む命令列のリクエストのタイプを保持
    するリクエストタイプ保持部RQDと、 マイクロコードによりリードライト可能な、マクロ命令
    あるいはそれを含む命令列のリクエストのサイズを保持
    するサイズ保持部ACDと、 マイクロコードによりリードライト可能な、上記リクエ
    ストのアドレスを保持するリクエストアドレス保持部S
    ADと、 マイクロコードによりリードライト可能な、マクロ命令
    あるいはそれを含む命令列の命令シーケンスを保持する
    命令シーケンス保持部SEQDと、 マイクロコードによりリードライト可能な、マクロ命令
    あるいはそれを含む命令列がスカラ実行かシングル実行
    かを保持するシングルスカラ実行保持部MIEDと、 マイクロコードによりリードライト可能な、マクロ命令
    あるいはそれを含む命令列によるゼネラルレジスタ書込
    みがあることを示すゼネラルレジスタ書込指示部GRW
    Dと、 マイクロコードによりリードライト可能な、マクロ命令
    あるいはそれを含む命令列のうち演算命令のゼネラルレ
    ジスタ書込み番号を保持する演算命令用GR番号保持部
    R1WADと、 マイクロコードによりリードライト可能な、マクロ命令
    あるいはそれを含む命令列のうちロード命令のゼネラル
    レジスタ書込み番号を保持するロード命令用GR番号保
    持部R1WLDと、 上記命令の例外発生タイミングが命令の切れ目である場
    合、例外処理後に再度リクエストを出し直すことを可能
    とするリクエスト再出部SADQとを具備したことを特
    徴とする請求項1記載のプロセッサ制御装置。
  3. 【請求項3】 スカラ実行中の命令のうち、ロード命令
    用GR番号保持部R1WLD及びリクエストタイプ保持
    部RQDをクリアした後、リクエスト再出部SADQを
    動作させることにより演算命令のみを完了させることが
    でき、演算命令用GR番号保持部R1WADをクリアし
    てリクエスト再出部SADQを動作させることによりロ
    ードストア命令のみを完了することを可能にした請求項
    2記載のプロセッサ制御装置。
  4. 【請求項4】 マクロ命令途中の例外に対して再開処理
    時、リクエスト再出部SADQと、リクエスト再出部S
    ARQを連続して動作させることにより保留中のリクエ
    スト及びゼネラルレジスタへの書込みを完了できるよう
    に構成したことを特徴とする請求項2記載のプロセッサ
    制御装置。
  5. 【請求項5】 マクロ命令途中の例外に対しては、上記
    シングルスカラ実行保持部MIE0をチェックしてこれ
    が例えば「1」のときその例外がスカラ実行時に発生
    し、「0」のときその例外がシングル実行時に発生した
    と判断し、マクロ命令の切れ目の例外に対しては上記シ
    ングルスカラ実行保持部MIEDをチェックしてこれが
    例えば「1」のとき、その例外がスカラ実行時に発生
    し、「0」のときその例外がシングル実行時に発生した
    ものと判断し、例外処理からの再開処理を変更できるよ
    うにしたことを特徴とする請求項2記載のプロセッサ制
    御装置。
  6. 【請求項6】 シングルスカラ実行保持部MIE0をチ
    ェックしてこれが例えば「1」のとき上記命令シーケン
    ス保持部SEQ0をチェックして、例外を発生したスカ
    ラ実行命令列の命令順序は、この命令シーケンス保持部
    SEQ0が例えば「1」のとき演算命令→ロードストア
    命令の順であり、これが「0」のときロードストア命令
    →演算命令の順であることを示し、またシングルスカラ
    実行保持部MIEDをチェックしてこれが例えば「1」
    のとき上記命令シーケンス保持部SEQDをチェックし
    て、例外を発生したスカラ実行命令列の命令順序は、こ
    の命令シーケンス保持部SEQDが例えば「1」のとき
    演算命令→ロードストア命令の順であり、これが「0」
    のときロードストア命令→演算命令の順であることを示
    し、これらの情報により例外処理からの再開処理を変更
    できるようにしたことを特徴とする請求項2記載のプロ
    セッサ制御装置。
  7. 【請求項7】 演算命令で例外が発生した場合、同時に
    実行中のロードストア命令のリクエストを抑止し、リク
    エストによる例外は発生しないようにして、リクエスト
    の再投入を可能としたことを特徴とする請求項2記載の
    プロセッサ制御装置。
  8. 【請求項8】 演算命令で例外が発生した場合、同時に
    実行中のロードストア命令のリクエストを抑止し、リク
    エストによる例外は発生しないようにし、スカラ実行中
    の命令列のうち、ロードストア命令又は演算命令のいず
    れかあるいは両方の命令実行完了をキャンセルすること
    を可能にしたことを特徴とする請求項2記載のプロセッ
    サ制御装置。
  9. 【請求項9】 命令実行中に例外を検出した場合、 シングル実行ならば命令アドレス保持部IA0に保持さ
    れたアドレスをもとに例外を発生した命令の次の命令か
    ら再フェッチを行い、 スカラ実行でロードストア命令で例外が発生し、スカラ
    命令列がロードストア命令、演算命令、分岐命令の順で
    ある場合、ロードストア命令のみ完了させ、演算命令か
    ら再フェッチを行い、 スカラ実行でロードストア命令で例外が発生し、スカラ
    命令列が演算命令、ロードストア命令、分岐命令の順で
    ある場合演算命令とロードストア命令を完了させ、分岐
    命令から再フェッチを行うようにしたことを特徴とする
    請求項2記載のプロセッサ制御装置。
  10. 【請求項10】 命令の切れ目に例外を検出した場合、 シングル実行ならば、次命令即ち命令アドレス保持部I
    A0に保持されたアドレスから再フェッチを行い、 スカラ実行でロードストア命令で例外が発生し、スカラ
    命令列がロードストア命令、演算命令、分岐命令の順で
    ある場合、ロードストア命令のみ完了させ、演算命令か
    ら再フェッチを行いスカラ実行でロードストア命令で例
    外が発生し、スカラ命令列が演算命令、ロードストア命
    令、分岐命令の順である場合、演算命令とロードストア
    命令を完了させ、分岐命令から再フェッチを行うように
    したことを特徴とする請求項2記載のプロセッサ制御装
    置。
  11. 【請求項11】 命令の切れ目に例外を検出した場合、 スカラ実行で演算命令で例外が発生し、スカラ命令列が
    演算命令、ロードストア命令、分岐命令の順である場
    合、演算命令のみを完了させ、ロードストア命令から再
    フェッチを行い、 スカラ実行で演算命令で例外が発生し、スカラ命令列が
    ロードストア命令、演算命令、分岐命令の順である場
    合、実行モードをシングルモードにして再度ロードスト
    ア命令から再フェッチを行うようにしたことを特徴とす
    る請求項2記載のプロセッサ制御装置。
  12. 【請求項12】 スカラ実行時に、アドレス指定例外あ
    るいはオペレーション例外で割込みが発生した場合に
    は、実行モードをシングルモードにして次命令から再フ
    ェッチを行い割込み時の状態を単純化した状態で再度割
    込みを発生させるようにしたことを特徴とする請求項2
    記載のプロセッサ制御装置。
  13. 【請求項13】 スカラ実行時に、命令系の例外が発生
    した場合には、ロードストア命令及び演算命令は完了さ
    せ、実行モードをシングルモードにして、以降の命令か
    ら再フェッチを行い、すべての発行可能な命令を完了し
    たのち例外処理を行うようにしたことを特徴とする請求
    項2記載のプロセッサ制御装置。
  14. 【請求項14】 シングルモードで再度例外が発生し、
    処理を完了したらその再開処理時にスカラモードに戻す
    ことを特徴とする請求項2記載のプロセッサ制御装置。
JP13704294A 1994-06-20 1994-06-20 プロセッサ制御装置 Withdrawn JPH086790A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP13704294A JPH086790A (ja) 1994-06-20 1994-06-20 プロセッサ制御装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP13704294A JPH086790A (ja) 1994-06-20 1994-06-20 プロセッサ制御装置

Publications (1)

Publication Number Publication Date
JPH086790A true JPH086790A (ja) 1996-01-12

Family

ID=15189512

Family Applications (1)

Application Number Title Priority Date Filing Date
JP13704294A Withdrawn JPH086790A (ja) 1994-06-20 1994-06-20 プロセッサ制御装置

Country Status (1)

Country Link
JP (1) JPH086790A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116226014A (zh) * 2022-12-16 2023-06-06 成都海光集成电路设计有限公司 一种信用管理下的溢出处理方法,处理装置及相关设备

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116226014A (zh) * 2022-12-16 2023-06-06 成都海光集成电路设计有限公司 一种信用管理下的溢出处理方法,处理装置及相关设备

Similar Documents

Publication Publication Date Title
US5907860A (en) System and method of retiring store data from a write buffer
US7571304B2 (en) Generation of multiple checkpoints in a processor that supports speculative execution
US5471598A (en) Data dependency detection and handling in a microprocessor with write buffer
JP3588755B2 (ja) コンピュータシステム
US6138230A (en) Processor with multiple execution pipelines using pipe stage state information to control independent movement of instructions between pipe stages of an execution pipeline
US5142634A (en) Branch prediction
JP3781052B2 (ja) スーパースケーラマイクロプロセサ
US5630149A (en) Pipelined processor with register renaming hardware to accommodate multiple size registers
EP0649085B1 (en) Microprocessor pipe control and register translation
US7330963B2 (en) Resolving all previous potentially excepting architectural operations before issuing store architectural operation
US7624253B2 (en) Determining register availability for register renaming
US7363477B2 (en) Method and apparatus to reduce misprediction penalty by exploiting exact convergence
US5740398A (en) Program order sequencing of data in a microprocessor with write buffer
EP0651331B1 (en) A write buffer for a superpipelined, superscalar microprocessor
US5615402A (en) Unified write buffer having information identifying whether the address belongs to a first write operand or a second write operand having an extra wide latch
JPH1021074A (ja) 割り込み制御方式、プロセッサ及び計算機システム
JP3800533B2 (ja) プログラムカウンタ制御方法及びプロセッサ
US5841999A (en) Information handling system having a register remap structure using a content addressable table
JPH086790A (ja) プロセッサ制御装置
JP3748191B2 (ja) 計算機とその制御方法
JPH05307483A (ja) レジスタ書き込み制御方法および回路

Legal Events

Date Code Title Description
A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20010904