JPH10283182A - パイプライン型情報処理装置 - Google Patents

パイプライン型情報処理装置

Info

Publication number
JPH10283182A
JPH10283182A JP9084867A JP8486797A JPH10283182A JP H10283182 A JPH10283182 A JP H10283182A JP 9084867 A JP9084867 A JP 9084867A JP 8486797 A JP8486797 A JP 8486797A JP H10283182 A JPH10283182 A JP H10283182A
Authority
JP
Japan
Prior art keywords
instruction
stage
signal line
mode
mode change
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP9084867A
Other languages
English (en)
Other versions
JP2944563B2 (ja
Inventor
Toshiteru Shibuya
俊輝 渋谷
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.)
NEC Computertechno Ltd
Original Assignee
NEC Computertechno 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 NEC Computertechno Ltd filed Critical NEC Computertechno Ltd
Priority to JP9084867A priority Critical patent/JP2944563B2/ja
Priority to US09/049,058 priority patent/US6081886A/en
Publication of JPH10283182A publication Critical patent/JPH10283182A/ja
Application granted granted Critical
Publication of JP2944563B2 publication Critical patent/JP2944563B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30181Instruction operation extension or modification
    • G06F9/30189Instruction operation extension or modification according to execution mode, e.g. mode flag
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30076Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
    • 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/34Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
    • 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/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution

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)
  • Executing Machine-Instructions (AREA)

Abstract

(57)【要約】 【課題】パイプライン型情報処理装置において、動作モ
ード変更命令の処理速度を向上させる。 【解決手段】IDブロック2は、動作モード変更命令の
実行ステージに先立って、動作モード変更命令が変更す
るモードによってその処理内容が変更されるステージを
あらかじめ判定する。ホールド手段14は判定されたス
テージにおいて実際にモードが確定するまで後続の命令
の処理を抑止する。EXブロックは動作モードの確定に
伴いホールド手段14による抑止を解除する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、パイプライン型情
報処理装置において動作モードの変更を行う命令(以
下、モード変更命令と記す)の実行時間の短縮に関す
る。ここに、モード変更命令とは、例えば、アドレスモ
ードを実アドレスと仮想アドレスとの間で切替えたり、
アドレス計算のモードを切替えたり、あるいは、全ての
種類の命令を実行できる特権モードと特権命令は実行で
きない一般モードとの切替えたりする命令を意味する。
【0002】
【従来の技術】従来のパイプライン型情報処理装置にと
って、モード変更命令の実行は、その実行結果がパイプ
ラインのほぼ全体に影響を与えるため、モード変更命令
の次の命令をモード変更命令の直後にパイプラインの各
ステージで実行することができない。これは、直前の命
令の結果によって後続の命令の実行内容が変更されるか
らであり、このようにパイプラインが円滑に作動させる
ことができなくなることを、パイプラインハザードと呼
び、特にモード変更命令や、分岐命令によるパイプライ
ンハザードを制御ハザードと呼ぶ。
【0003】この制御ハザードが発生した時には、パイ
プライン型情報処理装置は、例えば、ヘネーシ・パター
ソン著、コンピュータ・アーキテクチャ6.4章 図
6.16に記載されているように、制御ハザードの原因
となった命令の完了を待って更めて後続の命令の起動を
行うようにしている。
【0004】
【発明が解決しようとする課題】上述した従来のパイプ
ライン型情報処理装置では、モード変更命令の次命令
が、直前のモード変更命令で変更されるモードによっ
て、その処理内容が変更されるか否かわからないため、
またモード変更命令の実行結果がパイプラインのどのス
テージに影響を及ぼすかがわからないために、モード変
更命令の実行完了まで次命令の起動ができないので、パ
イプライン動作をさせることが出来ず、性能向上の大き
な足枷となっているという問題点がある。
【0005】本発明の第1の目的は、このような問題点
を解消し、モード変更命令の実行の高速化を図ることが
できるパイプライン型情報処理装置を提供することにあ
る。
【0006】また、本発明の第2の目的は、従来のパイ
プライン型情報処理装置に、極めて少量のハードウェア
の追加を行うのみで、上述の第1の目的を達成すること
にある。
【0007】
【課題を解決するための手段】本発明の装置は、命令の
実行を複数のステージに分割し、各々のステージを処理
するためのハードウェアを一連となるように結合し、連
続した複数の命令が各ステージで同時に実行されるよう
に構成されたパイプライン型情報処理装置であって、命
令の実行に際し、その動作を規定するモードを複数有
し、かつ、前記モードの変更を指示するための動作モー
ド変更命令の実行を行う情報処理装置において、動作モ
ード変更命令をデコードして、該動作モード変更命令が
変更するモードによって動作が変わるステージを、該動
作モード変更命令の実行ステージに先立って当該ステー
ジかそれよりも前のステージで判定する命令デコード手
段と、前記命令デコード手段によって判定されたステー
ジにおいて該動作モード変更命令の次命令の処理を抑止
するホールド手段と、該動作モード変更命令の実行に際
して、モードの変更を行うとともに、前記命令デコード
手段によって判定されたステージのホールド手段に対し
て、抑止の解除指示と与える実行手段とを設けたことを
特徴とする。
【0008】本発明のパイプライン型情報処理装置で
は、モード変更命令が変更するモードによって処理内容
が変り得るステージまで、無条件に後続の命令の処理を
進め、モードが確定しだい、即座にそのモードの影響を
受けるステージから後続命令の実行を続けることによ
り、モード変更によるパイプラインハザードを小さく
し、モード変更命令の性能を向上させることができる。
【0009】さらに、モードによって処理が変わり得る
ステージにおいて、実際に後続の命令がモードに依存し
て処理内容が変わるかを知り得るため、処理内容が変わ
らない命令の場合には、ステージを進め、実際にモード
の影響を受ける命令がそのモードの影響を受けるステー
ジに現われた時にその命令の処理を抑止することによ
り、より一層モード変更によるパイプラインハザードを
小さくすることができる。
【0010】
【発明の実施の形態】次に、本発明の実施例について図
面を参照しつつ詳細に説明する。
【0011】図1を参照すると、本発明の第1の実施例
は、命令を記憶し、読出すインストラクションキャッシ
ュ(以下、ICと記す)ブロック1,命令を解読するイ
ンストラクションデコーダ(以下、IDと記す)ブロッ
ク2,オペランドアドレスを計算するアドレッシングア
ダー(以下、OA)ブロック3,オペランドアドレスを
仮想アドレスから実アドレスに変換するオペレーション
アドレストランスレータ(以下、OT)ブロック4,メ
モリオペランドを記憶し、メモリオペランドを読出すオ
ペランドキャッシュ(以下、OC)ブロック5,命令の
実行を行なうエキュシュレータ(以下、EX)ブロック
6,モードを保持するモードレジスタ7および6個のフ
リップフロップ8〜13とから構成される。
【0012】ICブロック1とOCブロック5は主記憶
装置そのものであっても、又は命令キャッシュメモリ,
オペランドキャッシュメモリとして構成してもよい。
又、ICブロック1とOCブロック5とが共用の一つの
ブロックとしても構成され得る。
【0013】図1における各ブロック1〜6は、各々パ
イプラインの各ステージを構成しており、したがって、
情報処理装置は6ステージから成るパイプラインを有す
ることになる。フリップフロップ8,10,13は信号
線110,117,120を介して“1”を与えられる
と“1”を保持し続け、信号線122,123,124
を介して“1”を与えられると“0”にリセットされ
る。フリップフロップ9,11はIDステージに属し、
フリップフロップ12はOAステージに属し、IDステ
ージの命令がOAステージに移行する時に、その内容は
次のステージへ移される。
【0014】EXブロック6はモード変更命令を処理す
ると、変更されタモードを信号線106を介してモード
レジスタ7にセットするよう指示するとともに、そのモ
ード変更命令が後述のICP,ICG命令の時には信号
線122に“1”を、ACS,ACL命令では信号線1
23に“1”を、ACD,ACM命令では信号線124
に“1”を出力する機能を有する。
【0015】図2はIDブロック2の詳細を示し、IC
ブロック1で読出された命令語を保持する命令レジスタ
21,命令レジスタ21の内容が有効であることを示す
Vフリップフロップ22,命令レジスタ21に保持され
た命令の解読を行う命令デコーダ23,本発明の特徴部
分である、モード変更命令のみを専用に解読し、その変
更されるモードによって動作が変わるステージを判定す
る命令デコード手段としての命令デコーダ24,NOT
ゲート25,ANDゲート26とから構成される。
【0016】命令デコーダ23と24は、共用の一つの
命令デコーダとしても構成され得る。IDブロック2
は、ICブロック1で読出された命令語を信号線101
を介して受け取る。同じく、ICブロック1から信号線
111を介して与えられるV信号は信号線101が有効
であることを示し、命令レジスタ21は、信号線111
が“1”の時に信号線101のデータを受け取る。信号
線111のV信号は、そのままVフリップフロップ22
に保持され、命令レジスタ21の有効を表示する。
【0017】IDブロック2から次のOAブロック3に
至る信号線102は、IDブロック2の出力する命令情
報であり、信号線112は信号線102の有効を示すV
信号である。命令レジスタ21,Vフリップフロップ2
2とも信号線116のホールド指示が“1”の時は、信
号線101,111の状態によらず無条件にその内容を
保持しつづける。又、信号線116のホールド指示が
“1”の時には、Vフリップフロップ22の内容によら
ず、NOTゲート25及びANDゲート26により、信
号線112には無条件に“0”がV信号として出力さ
れ、ホールド指示が“0”の時には、Vフリップフロッ
プ22の内容がV信号として信号線112に出力され
る。
【0018】命令で項だ24で解読されるモード変更命
令は以下の6種類である。
【0019】ICP命令:特権モード移入命令(特権命
令も実行可能なモードへ変更) ICG命令:特権モード退出命令(特権命令は実行でき
ない一般モードへ変更) ACS命令:オペランドアドレス計算保護モード移入命
令(オペランドアドレス計算時にキャリー,ボローの発
生を許さないモードへ変更) ACL命令:オペランドアドレス計算保護モード退出命
令(オペランドアドレス計算時にキャリー,ボローの発
生を許すモードへ変更) ACD命令:メモリオペランド実アドレスモード移入命
令(オペランドアドレス計算結果を実アドレスとして扱
うモードへ変更) ACM命令:オペランド仮想アドレスモード移入命令
(オペランドアドレス計算結果を仮想アドレスとして扱
うモードへ変更) 命令レジスタ21に保持される命令語がICP命令,I
CG命令の時には信号線110に“1”を出力し、AC
S命令,ACL命令の時には信号線109に“1”を出
力し、ACD命令,ACM命令の時には信号線108に
“1”を出力する。信号線108,109,110は、
これ以外の時は“0”が出力される。
【0020】命令デコーダ23は、信号線107を介し
て与えられるモードにより、特権モードでは特権命令を
含む全ての命令の解読を行い、一般モードにおいては、
特権命令の解読を行なわずに特権命令例外を検出する。
【0021】図3はOAブロック3の詳細を示し、信号
線102を介して与えられる命令情報を保持するレジス
タ31,オペランドアドレスの計算を行ない、その結果
を信号線103に出力するアドレス加算器33,レジス
タ31の有効を表示するVフリップフロップ32,NO
Tゲート34,ANDゲート35とから構成される。
【0022】信号線112は、IDブロック2からのV
信号であり、信号線112を介して“1”が与えられる
と信号線102の内容をレジスタ31は保持し、同時に
Vフリップフロップ32も“1”となる。レジスタ3
1,Vフリップフロップ32とも信号線118のホール
ド指示が“1”の時には、信号線102,112の状態
によらず無条件にその内容を保持しつづける。又は、信
号線113には信号線118のホールド指示が“1”の
時には、無条件に“0”がV信号として出力され、ホー
ルド指示が“0”の時には、Vフリップフロップ32の
内容がV信号として出力される。
【0023】アドレス加算器33は、信号線107を介
して与えられるモードにより、オペランドアドレス計算
保護モードでは、計算時にキャリー,ボローが発生した
時に、アドレス計算例外として検出し非保護モードでは
例外を検出しない。
【0024】図4はOTブロック4の詳細を示し、信号
線103を介して与えられるオペランドアドレス計算結
果を保持するアドレスレジスタ41,アドレスレジスタ
41の有効を表示するVフリップフロップ42,アドレ
スレジスタ41の保持する仮想アドレスを実アドレスに
変換するアドレス変換バッファ43,アドレスレジスタ
1とアドレス変換バッファ43のどちらかを選択し信号
線104に出力するセレクタ46,NOTゲート44,
ANDゲート45とから構成される。
【0025】信号線113のOAブロックからのV信号
が“1”になると、アドレスレジスタ41は、信号線1
03のオペランドアドレスを保持し、同時にVフリップ
フロップ42も“1”となる。アドレスレジスタ41,
Vフリップフロップ42とも信号線121のホールド指
示が“1”の時は信号線103,113の状態によらず
無条件にその内容を保持しつづける。又、信号線114
には、信号線121のホールド指示が“1”の時には、
Vフリップフロップ42の内容によらず無条件に“0”
がV信号として出力され、ホールド指示が“0”の時に
はVフリップフロップ42の内容がV信号として出力さ
れる。
【0026】セレクタ46は、信号線107を介して与
えられるモード信号がメモリオペランド実アドレスモー
ドの時には、アドレスレジスタ41の内容をそのまま信
号線124に出力し、メモリオペランド仮想アドレスモ
ードの時には、アドレス変換バッファ43の出力を信号
線104に出力する。
【0027】次に、実施例の動作について図面を参照し
て詳細に説明する。
【0028】なお、以下の説明において、パイプライン
の後で実行されるステージ、例えば、OTステージが何
らかの要因によってホールドされた時、それより先に実
行されるステージ、例えば、OA,ID,ICの各ステ
ージがホールドされることは周知の事実なので、その動
作についての説明は省略してある。
【0029】図5は本実施例において、特権モード移入
命令ICPの実行時の様子を示すタイムチャートであ
る。以下、図1,2,5を参照して、この動作について
声明する。
【0030】図5において、特権モード移入命令ICP
が時刻0で読み出され、時刻1でIDステージに入る。
この時、命令ICPの後続の命令I1は、ICステージ
にある。この状態において、モードレジスタ7は一般モ
ードにある。
【0031】時刻1では、命令ICPは命令レジスタ2
1にセットされ、同時にVフリップフロップ22も
“1”にセットされる。命令デコーダ24は、命令レジ
スタにセットされた命令がICPであることを判定して
信号線110に“1”を出力する。信号線112のV信
号はフリップフロップ8が“0”で信号線116のホー
ルド指示が“0”のため、Vフリップフロップ22の出
力がそのまま現われ“1”となる。
【0032】次の時刻2では、信号線112の値を受け
て命令ICPはOAステージに進み、IDステージには
後続の命令I1が進み、命令レジスタ21にはI1がV
フリップフロップ22には“1”がセットされる。この
時、同時に信号線110の値を受けてフリップフロップ
8には“1”がセットされ、信号線116のホールド指
示は“1”となる。このため、信号線112のV信号は
NOTゲート25とANDゲート26により“0”とな
る。
【0033】次の時刻3では、命令ICPはOTステー
ジに進むが、後続の命令I1は信号線112のV信号が
“0”のため、OAステージへは進まず、信号線116
のホールド指示“1”により命令レジスタ21とVフリ
ップフロップ22はその内容を保持しつづけ、結果とし
て命令I1はIDステージにとどまる。
【0034】その後の時刻4,5でも、命令I1はID
ステージにとどまるが、時刻5において命令ICPがE
Xステージに達すると、EXブロック6は命令ICPを
実行し、信号線106にモードレジスタ7への特権モー
ドのセットを指示し、同時にEXステージで処理する命
令がICPであるために信号線122に“1”が出力さ
れる。
【0035】次の時刻6において、モードレジスタ7は
信号線106を受けて特権モードを表示するように更新
され、命令ICPの実行が完了するが、同時にフリップ
フロップ8は信号線122を受けて“0”にリセットさ
れる。この結果、信号線116のホールド指示は“0”
になり、命令レジスタ21,Vフリップフロップ22の
ホールドは解除され、信号線112のV信号は“1”に
なる。命令デコーダ23は信号線107を介して与えら
れる特権モードに従ってIR21の命令I1の解読を行
う。
【0036】時刻7において、ホールドの解除された命
令I1は、IDステージからOAステージに進み、以
降、後続の命令は順次パイプライン処理される。この場
合、命令ICPの実行が完了してから、後続の命令I1
が完了するまでに、4マシンサイクルの空きが発生して
おり、都合、命令ICPの実行に5マシンサイクルを要
していることに相当する。
【0037】一方、本発明を適用しない場合の従来技術
によるタイムチャートを図10に示すが、図10におけ
るモード変更命令MCの実行には、MCの完了後に後続
のI1命令を起動しているため、6マシンサイクルを要
しており、本発明により、1マシンサイクルの高速化が
なされていることになる。なお、命令IC6の動作も、
この命令ICPの動作とタイミング的には全く等価であ
る。
【0038】図6はオペランドアドレス計算保護モード
移入命令ACSの実行を説明するタイムチャートであ
る。以下、図1,2,3,6を参照して、この動作につ
いて説明する。
【0039】図6において、命令ACSは時刻0で読み
出され、時刻1でIDステージの命令レジスタ21にセ
ットされる。この結果、命令デコーダ24は、命令レジ
スタ1にセットされた命令がACSであることを判定し
て、信号線109に“1”を出力する。この時、信号線
112のIDステージのV信号は“1”である。
【0040】次の時刻2では、命令ACSはOAステー
ジに進み、OAステージのVフリップフロップ32には
“1”がセットされ、IDステージには後続の命令I1
が進み命令レジスタ21には命令I1がセットされる。
命令デコーダ24は、命令I1がモード変更命令でない
ことから信号線109に“0”を出力し、フリップフロ
ップ9は信号線109の値を受けて“1”がセットされ
る。信号線113のOAステージのV信号は、フリップ
フロップ10が“0”であり信号線118のホールド指
示が“0”のために、Vフリップフロップ32の値
“1”をそのまま出力する。
【0041】時刻3では、信号線113の値を受けて命
令ACSはOTステージに進み、後続の命令I1はOA
ステージに進み、OAステージのVフリップフロップ3
2は“1”にセットされる。フリップフロップ10は時
刻2のフリップフロップ9の値を受けて“1”にセット
され、フリップフロップ9は信号線109を受けて
“0”がセットされる。フリップフロップ10が“1”
のため、信号線118のホールド指示は“1”となり、
OAステージのV信号、信号線113にはNOTゲート
34,ANDゲート35により“0”が出力される。
【0042】次の時刻4では、命令ACSはOCステー
ジに進むが、後続の命令I1は時刻3で信号線113の
V信号が“0”だったため、OTステージには進まず信
号線118のホールド指示が“1”だったことにより、
レジスタ31とVフリップフロップ32はその内容を保
持しつづけ、結果として、命令I1はOAステージにと
どまる。
【0043】時刻5では、命令ACSはEXステージに
進むが、命令I1はOAステージにとどまる。EXブロ
ック6は命令ACSを実行し、信号線106にモードレ
ジスタ7へのオペランドアドレス計算保護モードのセッ
トを指示し、同時にEXステージで処理する命令がAC
Sであるために信号線123に“1”を出力する。
【0044】次の時刻6において、モードレジスタ7は
信号線106を受けてオペランドアドレス計算保護モー
ドを表示するように更新され、命令ACSの実行が完了
する。同時にフリップフロップ10は時刻5の信号線1
23の“1”を受けて“0”にリセットされ、信号線1
18のホールド指示は“0”になり、レジスタ31,V
フリップフロップ32のホールド指示は解除され、信号
線113のV信号は“1”となる。OAブロック3のア
ドレス加算器33は、信号線107を介して与えられ
る。オペランドアドレス計算保護モードに従い、命令I
1のオペランドアドレスの計算を行い、結果を信号線1
03に出力する。
【0045】時刻7において、ホールドの解除された命
令I1はOAステージからOTステージに進み、以降後
続の命令は順次処理される。この場合、命令ACSの実
行には、4マシンサイクルを要していることに相当する
ため、本発明の適用しない図10のタイムチャートの6
マシンサイクルに比べ、2マシンサイクルの高速化がな
されている。なお、命令ACNの動作も命令ACSの動
作とタイミング的には全く等価である。
【0046】次に、図1,2,4,7を参照して、命令
ACMの実行における本実施例の動作を説明する。
【0047】図7のタイムチャートにおいて、メモリオ
ペランド仮想アドレスモード移入モードACMは時刻0
で読み出され、時刻1でIDステージの命令レジスタ1
にセットされる。命令デコーダ24は、命令レジスタ2
1にセットされた命令がACMであることを判定して、
信号線108に“1”を出力する。
【0048】次の時刻2において、命令ACMはOAス
テージに進み、フリップフロップ11は時刻1の信号線
108を受けて“1”にセットされる。命令ACMの後
続の命令I1はIDスデージにあり、命令レジスタ21
の命令I1により命令デコーダ24は、信号線108に
“0”を出力する。
【0049】時刻3で、命令ACMはOTステージへ、
命令I1はOAステージへ進み、フリップフロップ11
は時刻2の信号線108を受けて“0”にセットされ、
フリップフロップにはフリップフロップ11を受けて
“1”にセットされる。
【0050】時刻4では、命令ACMはOCステージ
へ、命令I1はOTステージへ進み、時刻3でOAステ
ージで計算された命令ICのオペランドアドレスは、ア
ドレスレジスタ41にセットされ、OTステージのVフ
リップフロップ42は“1”にセットされる。フリップ
フロップ13には、時刻3のフリップフロップ12によ
り“1”がセットされ、信号線121のホールド指示は
“1”となる。このため、OTステージのV信号信号線
114は、NOTゲート44,ANDゲート45により
“0”が出力される。
【0051】次の時刻5では、命令ACMはEXステー
ジに進むが、命令I1は時刻4で信号線114のV信号
が“0”のため、OCステージには進まず、信号線12
1のホールド指示が“1”だったことによりアドレスレ
ジスタ41とVフリップフロップ42は、その内容を保
持し、結果として命令I1はOTステージにとどまる。
EXブロック6は命令ACMを実行し、信号線106に
モードレジスタ7へのメモリオペランド仮想アドレスモ
ードのセットを指示し、同時にEXステージで処理する
命令がACMであることから信号線124に“1”を出
力する。
【0052】次の時刻6において、モードレジスタ7は
メモリオペランド仮想アドレスモードを表示するように
更新され、命令ACMの実行が完了する。同時にフリッ
プフロップ13は時刻5の信号線124を受けて“0”
にリセットされ、信号線121のホールド指示は“0”
となり、アドレスレジス41,Vフリップフロップ42
のホールドは解除され、信号線114のV信号は“1”
となる。OTブロック4のセレクタ46は信号線107
を介して与えられるメモリオペランド仮想アドレスモー
ドに従い、アドレス変換バッファ43の出力を信号線1
04に出力するように切替わる。
【0053】時刻7において、ホールドの解除された命
令I1はOTステージからOCステージに進み、以降、
後続の命令は順次処理される。この場合命令ACMの実
行には3マシンサイクルを要していることに相当するた
め、本発明を適用しない図10のタイムチャートに比べ
て、3マシンサイクルの高速化がなされている。
【0054】なお、命令ACDの動作も命令ACMの動
作とタイミング的には全く等価である。
【0055】次に、本発明の第2の実施例について図面
を参照して説明する。
【0056】図8は、本発明の第2の実施例におけるI
Dブロック2aの詳細を示すブロック図であり、このI
Dブロック2aは、図1のパイプライン型情報処理装置
においてIDブロック2の代りに使用するものである。
【0057】図8において、IDブロック2aは、命令
レジスタ21,Vフリップフロップ22命令デコーダ2
3,24,NOTゲート25,ANDゲート26を含
み、図2のIDブロック2と全く同じ動作を行なう。図
8のIDブロック2aで新規に付加されたものは、第2
の命令デコード手段としての命令デコーダ27と、無効
化手段としてのANDゲート28である。
【0058】命令デコーダ27は、命令レジスタ21に
セットされた命令が特権命令である時に信号線205に
“1”を出力し、特権モードでなくとも動作が許される
非特権命令の時には“0”を出力する。ANDゲート2
8は、信号線205と信号線116のホールド指示の論
理席を求めており、命令レジスタ21にセットされた命
令が非特権命令の時には、無条件に信号線204に
“0”を出力し、命令レジスタ21の命令が特権命令の
時のみ信号線116のホールド指示を信号線204に出
力する。
【0059】次に、この第2の実施例の動作について図
1,8,9を参照して説明する。図9は、第2の実施例
における命令ICPの実行を示すタイムチャートであ
る。このタイムチャートは、命令ICPの後続に非特権
命令I1,I2,I3が続き、その次に特権命令P1が
続く場合についてのものである。
【0060】まず、時刻0で読出された命令ICPは、
時刻1でIDステージに進み、命令レジスタ21にセッ
トされる。その結果、命令デコーダ24は信号線110
に“1”を出力する。
【0061】次の時刻2では、命令ICPはOAステー
ジに進み、後続の非特権命令I1はIDステージに進ん
で命令レジスタ21にセットされVフリップフロップ2
2は“1”にセットされる。同時に、フリップフロップ
8は、時刻2の信号線110を受けて“1”にセットさ
れ、信号線116のホールド指示は“1”になる。ここ
までの動きは、図5に示す第1の実施例における動作と
同じである。
【0062】さて、命令デコーダ27は命令レジスタ2
1の命令が非特権命令であるため、信号線205に
“0”を出力し、この結果によりANDゲート28によ
り信号線204のホールド指示は“0”となる。従っ
て、命令レジスタ21,Vフリップフロップ22ともホ
ールドさわることなく、又、V信号112もVフリップ
フロップの値をそのまま“1”と出力する。
【0063】次の時刻3では、命令ICPはOTステー
ジへ進み、後続の非特権命令I1はホールドされること
なくOAステージに進む。命令I1の次の命令I2はI
Dステージに達するが、これも非特権命令のためにホー
ルドされない。
【0064】次の時刻4では、命令ICPはOCステー
ジに達し、命令I1,I2,I3は各々、OT,OA,
IDの各ステージに進み、その次の特権命令P1は、I
Cステージで読み出される。この間、IDステージのホ
ールドを指示するフリップフロップ8は“1”を保持し
たままとなる。
【0065】時刻5において、命令ICPはEXステー
ジに進み、EXブロック6は信号線106に対して、モ
ードレジスタ7へ特権モードをセットするよう指示し、
信号線122は“1”を出力する。非特権命令I1,I
2,I3はそれぞれOC,OT,OAの各ステージに進
み、特権命令P1はIDステージに進み命令レジスタ2
1にセットされる。この時、IDステージのVフリップ
フロップ22も“1”にセットされる。ここで、命令デ
コーダ27は、命令レジスタ21にある命令P1は特権
命令であることを判定し、信号線205に“1”を出力
する。このため、ANDゲート28によりフリップフロ
ップ8の値がそのまま信号線204に出力され、信号線
204のホールド指示は“1”となる。従って、命令レ
ジスタ21,Vフリップフロップ22はホールドされI
DステージのV信号信号線112は“0”となる。
【0066】次の時刻6では、モードレジスタ7が特権
モードを表示するように更新され、命令ICPの実行が
完了し、フリップフロップ8は信号線122により
“0”にリセットされる。非特権命令I1,I2,I3
は、EX,OC,OTの各ステージに進むが、特権命令
P1はIDステージにとどまる。
【0067】ここで、命令デコーダ23は信号線107
を介して与えられる特権モードに従って特権命令P1の
解読を行なう。フリップフロップ8が“0”にリセット
されたため、信号線116のホールド指示は“0”にな
り、信号線205の値は、命令レジスタ21にある命令
が特権命令P1であるために“1”であるにもかかわら
ず、ANDゲート28により信号線204のホールド指
示は“0”になる。このため、命令レジスタ21,Vフ
リップフロップ22のホールドが解除され、IDステー
ジのV信号、信号線112も“1”となる。
【0068】次の時刻7において、IDステージにホー
ルドされていた特権命令P1はOAステージに進み、以
降、後続の命令が順次処理される。この場合、モード変
更命令ICPによって生じたパイプラインハザードは、
1マシンサイクルであり、命令ICPの実行に2マシン
サイクルを要したことに相当する。従って、本発明を適
用しない場合のタイムチャートを示す図10の6マシン
サイクルに比べ、5マシンサイクルも性能が改善されて
いる。図9のタイムチャートでは、命令ICPの後続4
命令目に特権命令P1が現われる場合を説明している
が、特権命令P1が5命令目以降に出現する場合にはパ
イプラインハザードは全く生ぜず、モード変更命令IC
Pは1マシンサイクルで処理され、従来例と比べ6マシ
ンサイクルもの性能改善が図られる。
【0069】なお、この第2の実施例では命令ICP,
ICGの例しか説明していないが、命令ACS,AC
L,ACDについても改善を図るには、第2の命令デコ
ード手段としてメモリオペランドアドレス計算を行なわ
ない命令を判定するようにし、メモリオペランドアドレ
ス計算を行なわない命令では、OAステージ,OTステ
ージにおいてホールド指示の無効化を行うように構成す
ればよい。
【0070】また、本実施例では、命令デコード手段,
第2の命令デコード手段とも命令の解読を行うIDステ
ージに設けてあるが、IDステージをホールドしなけれ
ばならない命令ICP,ICG以外の命令の高速化のた
めには、OA,OTステージに設けることも可能であ
る。さらに、本実施例では、IDブロック2や2aに命
令デコーダ23,24,27を設けているが、これらを
単一の命令デコーダとして実現することも当然可能であ
る。
【0071】
【発明の効果】本発明によれば、モード変更命令の実行
結果がパイプラインのどのステージに影響を与えるかが
判定できるため、モード変更命令の後続の命令がいかな
る命令であっても無条件に進めてもよいステージが判定
でき、そこまでは後続命令を進めておいて、変更される
モードの確定を待つことができるようになるので、モー
ド変更命令の実行時間を短縮することが可能となるとい
う第1の効果が得られる。
【0072】また、モード変更命令の影響を受ける後続
の命令を判定できるため、モード変更命令の後続の命令
のうち、変更されるモードの影響を受ける命令だけ、そ
の影響を受けるステージで待機させ、影響を受けない命
令は無条件に処理を進めることができるようになるの
で、モード変更命令の実行時間をさらに短縮することが
可能となるという第2の効果も得ることができる。
【図面の簡単な説明】
【図1】本発明のパイプライン型情報処理装置の第1の
実施例を示すブロック図である。
【図2】図1に示すIDブロック2の詳細なブロック図
である。
【図3】図1に示すOAブロック3の詳細なブロック図
である。
【図4】図1に示すOTブロック3の詳細なブロック図
である。
【図5】図1に示すパイプライン型情報処理装置におけ
る特権モード移入命令ICP実行時の動作を示すタイム
チャートである。
【図6】図1に示すパイプライン型情報処理装置におけ
るオペランドアドレス計算保護モード移入命令ACS実
行時の動作を示すタイムチャートである。
【図7】図1に示すパイプライン型情報処理装置におけ
るオペランド仮想アドレスモード移入命令ACM実行時
の動作を示すタイムチャートである。
【図8】図1に示すIDブロック2の他の詳細なブロッ
ク図であり、本発明の第2の実施例を示す。
【図9】図8の実施例における動作を示すタイムチャー
トである。
【図10】従来のパイプライン型情報処理装置における
動作を説明するタイムチャートである。
【符号の説明】
1 ICブロック 2 IDブロック 3 OAブロック 4 OTブロック 5 OCブロック 6 EXブロック 7 モードレジスタ 8〜13 フリップフロップ 14 ホールド手段 21 命令レジスタ 23,24,27 命令デコーダ 22,32,42 Vフリップフロップ 25,34,44 NOTゲート 26,28,35,45 ANDゲート 31 レジスタ 33 アドレス加算器 41 アドレスレジスタ 43 アドレス変換バッファ 46 セレクタ。

Claims (5)

    【特許請求の範囲】
  1. 【請求項1】 命令の実行を複数のステージに分割し、
    各々のステージを処理するためのハードウェアを一連と
    なるように結合し、連続した複数の命令が各ステージで
    同時に実行されるように構成されたパイプライン型情報
    処理装置であって、命令の実行に際し、その動作を規定
    するモードを複数有し、かつ、前記モードの変更を指示
    するための動作モード変更命令の実行を行う情報処理装
    置において、 動作モード変更命令をデコードして、該動作モード変更
    命令が変更するモードによって動作が変わるステージ
    を、該動作モード変更命令の実行ステージに先立って当
    該ステージかそれよりも前のステージで判定する命令デ
    コード手段と、 前記命令デコード手段によって判定されたステージにお
    いて該動作モード変更命令の次命令の処理を抑止するホ
    ールド手段と、 該動作モード変更命令の実行に際して、モードの変更を
    行うとともに、前記命令デコード手段によって判定され
    たステージのホールド手段に対して、抑止の解除指示と
    与える実行手段とを設けたことを特徴とするパイプライ
    ン型情報処理装置。
  2. 【請求項2】 前記命令デコード手段によって該動作モ
    ード変更命令が変更するモードによって動作が変わると
    判定されたステージにおいて、処理すべき命令が該動作
    モード変更命令の変更するモードによって処理内容が変
    わるか否かを、当該ステージかそれよりも前のステージ
    で判定する第2の命令デコード手段と、 前記第2の命令デコード手段が、処理内容が変わらない
    と判定した命令の処理に際しては、前記ホールド手段の
    抑止指示を無効化する無効化手段とを設けたことを特徴
    とする請求項1記載のパイプライン型情報処理装置。
  3. 【請求項3】 前記命令デコード手段をパイプラインの
    デコードステージ,アドレッシングアダーステージ又は
    オペレーションアドレストランスレーションステージに
    設けたことを特徴とする請求項1記載のパイプライン型
    情報処理装置。
  4. 【請求項4】 前記第2の命令デコード手段をパイプラ
    インのデコードステージ,アドレッシングアダーステー
    ジ又はオペレーションアドレストランスレーションステ
    ージに設けたことを特徴とする請求項2記載のパイプラ
    イン型情報処理装置。
  5. 【請求項5】 前記命令デコード手段と前記第2の命令
    デコード手段とを単一の命令デコーダとして実現するこ
    とを特徴とする請求項2記載のパイプライン型情報処理
    装置。
JP9084867A 1997-04-03 1997-04-03 パイプライン型情報処理装置 Expired - Fee Related JP2944563B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP9084867A JP2944563B2 (ja) 1997-04-03 1997-04-03 パイプライン型情報処理装置
US09/049,058 US6081886A (en) 1997-04-03 1998-03-27 Holding mechanism for changing operation modes in a pipelined computer

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP9084867A JP2944563B2 (ja) 1997-04-03 1997-04-03 パイプライン型情報処理装置

Publications (2)

Publication Number Publication Date
JPH10283182A true JPH10283182A (ja) 1998-10-23
JP2944563B2 JP2944563B2 (ja) 1999-09-06

Family

ID=13842769

Family Applications (1)

Application Number Title Priority Date Filing Date
JP9084867A Expired - Fee Related JP2944563B2 (ja) 1997-04-03 1997-04-03 パイプライン型情報処理装置

Country Status (2)

Country Link
US (1) US6081886A (ja)
JP (1) JP2944563B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004500666A (ja) * 2000-03-31 2004-01-08 インテル・コーポレーション 分離実行のための分離命令

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102411492B (zh) * 2011-11-25 2014-04-23 北京创毅视讯科技有限公司 一种数据处理的方法和装置

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5097407A (en) * 1986-08-08 1992-03-17 Integrated Inference Machines Artificial intelligence processor
JP2695157B2 (ja) * 1986-12-29 1997-12-24 松下電器産業株式会社 可変パイプラインプロセッサ
JPH01291327A (ja) * 1988-05-18 1989-11-22 Hitachi Ltd 処理モード先取り制御方式
EP0463966B1 (en) * 1990-06-29 1998-11-25 Digital Equipment Corporation High-performance multi-processor having floating point unit and operation method
US5261063A (en) * 1990-12-07 1993-11-09 Ibm Corp. Pipeline apparatus having pipeline mode eecuting instructions from plural programs and parallel mode executing instructions from one of the plural programs
US5488729A (en) * 1991-05-15 1996-01-30 Ross Technology, Inc. Central processing unit architecture with symmetric instruction scheduling to achieve multiple instruction launch and execution
US5710912A (en) * 1993-05-06 1998-01-20 Hewlett-Packard Co. Method and apparatus for enabling a computer system to adjust for latency assumptions
US5898852A (en) * 1997-06-26 1999-04-27 Sun Microsystems, Inc. Load instruction steering in a dual data cache microarchitecture

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004500666A (ja) * 2000-03-31 2004-01-08 インテル・コーポレーション 分離実行のための分離命令

Also Published As

Publication number Publication date
JP2944563B2 (ja) 1999-09-06
US6081886A (en) 2000-06-27

Similar Documents

Publication Publication Date Title
US5404552A (en) Pipeline risc processing unit with improved efficiency when handling data dependency
US5961637A (en) Split branch system utilizing separate set branch, condition and branch instructions and including dual instruction fetchers
US5809294A (en) Parallel processing unit which processes branch instructions without decreased performance when a branch is taken
US20060236080A1 (en) Reducing the fetch time of target instructions of a predicted taken branch instruction
JP2004145454A (ja) 情報処理装置及び情報処理方法
US7003649B2 (en) Control forwarding in a pipeline digital processor
JP2944563B2 (ja) パイプライン型情報処理装置
JP2008299729A (ja) プロセッサ
JP3534987B2 (ja) 情報処理装置
JP3493110B2 (ja) 高速分岐処理装置
JPH06131180A (ja) 命令処理方式および命令処理装置
JPS5844569A (ja) 命令処理同期制御方式
JP3102846B2 (ja) ロードアドレスキャッシュ装置及び方法
JP2591325B2 (ja) 分岐制御装置
JP4564025B2 (ja) 情報処理装置における割り込み処理方法
JPS6047618B2 (ja) 情報処理装置
JPH01271842A (ja) 情報処理装置
JP2597744B2 (ja) 分岐制御方法
JPH03113535A (ja) パイプライン制御機構
JPH0774992B2 (ja) データ処理装置
KR20030097018A (ko) 잘못된 분기 예측의 페널티를 최소화 또는 제거할 수 있는방법 및 이를 이용한 명령어 페치회로
JPS60123935A (ja) 情報処理装置
JPH05257686A (ja) 命令キャッシュ回路
JPH05143362A (ja) 割込み処理方式
JPS61273637A (ja) 情報処理装置

Legal Events

Date Code Title Description
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 19990601

LAPS Cancellation because of no payment of annual fees