JPS6232541A - プリフエツチ・モニタ - Google Patents

プリフエツチ・モニタ

Info

Publication number
JPS6232541A
JPS6232541A JP61179768A JP17976886A JPS6232541A JP S6232541 A JPS6232541 A JP S6232541A JP 61179768 A JP61179768 A JP 61179768A JP 17976886 A JP17976886 A JP 17976886A JP S6232541 A JPS6232541 A JP S6232541A
Authority
JP
Japan
Prior art keywords
instruction
instructions
execution
byte
prefetch
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
JP61179768A
Other languages
English (en)
Other versions
JPH0625968B2 (ja
Inventor
デービッド・ジェイ・アンジェル
ゲイリー・アラン・カードン
マーク・デントン・ホルブルック
ジェームズ・フィリップ・モスカン
ブルース・パターソン
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.)
Wang Laboratories Inc
Original Assignee
Wang Laboratories 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 Wang Laboratories Inc filed Critical Wang Laboratories Inc
Publication of JPS6232541A publication Critical patent/JPS6232541A/ja
Publication of JPH0625968B2 publication Critical patent/JPH0625968B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime 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/3017Runtime instruction translation, e.g. macros
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Advance Control (AREA)

Abstract

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

Description

【発明の詳細な説明】 産業上の利用分野 本発明はプリフェッチ・モニタに関する。より詳細には
、ある命令がそれに対応する他の命もシーケンスの実行
に帰結する情報処理システムにおいて使用されるプリフ
ェッチ・モニタに関Tろ。
発明の背景 1)関連する特許出願 本特許出願は、本特許出願の譲受人に譲渡さt’L19
84年7月9日に出願された、データ処理システムのエ
ミュレーションに関する米国特許出願第3’29028
号に関連する。
11)従来技術の説明 当該技術分野において公知のように、多くの情報処理シ
ステムは、それらの中央処理装置と関連して、命令の実
行に先立ち命令乞フェッチし記憶する命令待)行列2有
する。例えば、あるシステムにおいては、命令ブリフェ
ッチ(先取り)待)行列と次のような命令復号待ち行列
とから成る。
この命令先取り待)行列は命令乞その実行の前にフェッ
チして記憶し、命令復号待)行列は、先取り待ち行列か
らの命令の実行を、それらの命令の実際の実行前に少な
(とも部分的に復号することにより効果的にパイプライ
ン比する。
同様に当該技術分野において公知のように、命令の通常
の実行が、命令の異なるシーケンスを実行すること、例
えばキーストローク入力tサービスすることの1こめに
割込まれ得るような機構をも有している。この点におい
て、同様に当該技術分野において公知のように割込みは
2つの広義なりラス、アなわちマスク可能な割込みとマ
スク不能な割込み(NMI)とに分けられる。端的に言
えば、マスク可能な割込みとは、七の割込みのサービス
が、現在実行中のルーチンの完了まで、又はそのルーチ
ンにおける、ある都合の良い停止点まで延期可能なもの
である。NMIとは、本来割込みに至った発生セグメン
トの性質のためにその割込みが即座にサービスされなけ
ればならないものである。この点、本発明において特に
興味があるNMIのクラスは、異なるシステムのオペレ
ーションをエミュレート丁石上であるシステムのオペレ
ーションから生ずる。公知のよ5に、任意の計算機を別
の計算機でエミュレートする1こめには、元来エミュレ
ートされるシステム用に書かれた命令シーケンス、即ち
プログラム馨、エミュレートする計算機が実行すること
か必要である。本実施例において、関連する米国特許出
願第329028号に詳細に記載すれているように、こ
のエミュレーションは、エミュレートするシステムが「
外部」命令の発生を検出しある「外部」命令が恢出さn
たときNMIv発するという、NMIの動作馨介して行
われる。そのエミュレートをするシステムは、該エミュ
レートするシステムに指示してその命令からエミュレー
トされたシステムに帰結するであろう機能乞エミュレー
トする動作を行わせるエミュレーション・ルーチンケ選
択し実行するこトニよりそのようなNMIに応答する。
もし命令の実行乞システムがバイブライ/1ヒするなら
、現在の命令の実行中若しくは実行の終わりにはNMI
は実行されず、システムは割込みの発生前に1以上の命
令を実行できる。殆んどの場合、NMIはパリティ−エ
ラーのような重大な事態に関してのみ使用され、このよ
うな場合能の1以上の命令の実行は重大な結果乞もたら
さない。即ち、そのシステム・オペレーションの破壊は
、その割込まれた命令シーケンスを再び実行するために
必要な努力及び破壊が比較的に重要性の低いものである
ような程度である。しかし、ある場合には、例えば別の
システムのエミュレーションにおいて、NMIに応答し
て実行された割込みルーチンは七のNMIに至つ1こ命
令に従う命令で始まる通常の実行に戻らなければならな
い。しかし、もし別の命令が実行されれば、システムの
動作状態は変更されて次に続(命令の実行に必要な情報
が失なわれ又は変更され、そのシステムは次の命令で再
び動作χすることができな(なる。この点、NMIに至
っ1こ命令は、システムの状態に回復不能な変比乞生じ
させて、後に続く命令の通常の実行乞再び開始され得な
い。
本発明は、従来技術のこの問題及び関連する問題を解決
するものである。
’l(7υ【i 命令に応答してオペレーションχ行5処理手段を含む情
報処理システムにおいて、前記処理手段は実行に先立っ
て命令をフェッチし記憶する命令待ち行列手段?含み、
前記システムは、対応する命令シーケンス乞実行させる
、ある命令に応答し、前記システムは、対応する命令を
実行する結果となる命令の検出手段を含むプリフェッチ
モニタ一手段がある。このプリフェッチモニタ一手段は
、さらに命令置換手段χ含み、該置換手段は前記検出手
段に応答し、記憶手段から前記処理手段へ次の命令音読
み出すことを抑止し、前記処理手段のオペレーションを
フェッチする命令に応答して前記処理手段ヘヌル(nu
ll)命令(空命令)を読出す。前記プリフェッチ・モ
ニタ一手段はさらに同期手段欠含んでおり、該同期手段
は前記処理手段のオペレーションの7エツチに応答して
次の有効命令への実行の転送を検出し、前記置換手段は
前記同期手段に応答して前記の次の有効命令とともに前
記記憶手段から前記処理手段へ命令を読み出すこと?再
開する。
本発明の別の特徴において、前記同期手段は空命令の置
換オペレーションと命令の実行との間の同期を維持する
手段を含んでいろ。第1の特徴においては、前記同期手
段は次の有効命令?表示する初期フェッチ・アドレス乞
受は取る命令ポインタ手段を含み、前記処理手段の7エ
ツチ・オペレーションに応答して連続的命令アドレスを
生成する。比較手段は、前記処理手段によって生成され
たフェッチ・アドレスに応答するとともに、対応する命
令ポインタアドレスと連続しないフェッチアドレスを指
示する連続的命令ポインタアドレスに応答し、この命令
ストリームに前記プリフェッチ・モニタ手段を再び同期
させる。
本発明のさらに別の特徴において、前記プリフェッチ・
モニタ手段は実行の連続転送の範囲外となる命令の検出
手段を含む。前記置換手段は、前記記憶手段から前記処
理手段へ次の命令?読み出すこと?抑止し、前記処理手
段ヘヌル命令を読み出す、実行の連続転送の範囲外にあ
る命令の検出に応答する。そのような事が起ったとき、
前記同期手段は前記処理手段のフェッチ・オペレーショ
ンに応答して、次の有効命令までの実行の次の転送を検
出し、前記置換手段は前記同期手段に応答して前記記憶
手段から前記処理手段へ、前記の次の有効命令とともに
命令′ff:読み出すこと乞再開する。
本発明の特定の実施において、対応する命令シーケンス
の実行に至る命令は、前記システムに対応する命令シー
ケンスの実行馨指示するマスク不能割込みとなり、前記
ヌル命令は「ジャンプ・ツー・セルフ (j ump−
to−se l f )J命令である。特に、対応する
命令シーケンスの実行に至る命令は、前記システムには
外部のものであり、前記の対応するマスク不能割込みは
、前記の外部命令の実行乞エミュレートするルーチンの
実行ということになる。
従って、本発明の目的は、改良されたプリフェッチ・モ
ニタ乞提供することである。
さらに本発明の別の目的は、ある命令の実行が対応する
他の命令シーケンスの実行に至るという情報処理システ
ムにおいて使用される改良されたプリフェッチ・モニタ
ーを提供することである。
本発明の他の目的、利点及び特徴は、以下の好適な実施
例の詳細な説明と図面馨参照丁れば当該技術分野におい
て通常の知識を有する者によって理解されよ5゜ 好適な実施例の説明 以下においては、まず本発明を具体1ヒする情報処理シ
ステム、即ち計算機システムについて簡単に説明する。
次に本発明の動作原理乞説明し、さらに本発明馨具体比
するプリフェッチ・モニタを説明する。
A、一般システムの説明(第1図) 第1図を参照すると、本発明に従5プリフェッチモニタ
ー乞組み込んだ計算機システムの簡単[とされ一般(ヒ
されたブロック線図が示されている。
第1図に示された好適な例示システムは、例えば、マサ
チューセッツ州ローウェルのウオングラボラトリー社製
のアドバンスト・プロフェッショナル・コンピュータ(
APC)のようなパーソナル又はプロフェッショナル・
クラスのシステムの部分乞示す。
第1図に示したように、システム10は、情報部)シス
テム10によって行われるオペレーション乞指示するデ
ータ及び命令χ記憶するメモリ(MEM)12を含んで
いる。マイクロプロセッサ(UP)14は、そのオペレ
ーション’a’行5命令に応答して、例えば本実施例に
おいては、インテルの1APX286(80286)マ
イクロプロセッサから成る。命令及びデータはMEM1
2とUP140間と、以下に説明するシステムの諸エレ
メント間を、システムデータ(SD)バスヲ介して通信
し、システムアドレス(SA)バス18を介して与えら
れるアドレスに応答する。
システム10の他のエレメントは、例えば、キーボード
、ディスプレイ、ディスクドライブ及び通信リンクを含
む入出力装置(IOD)20と、入出力構造(IO5)
22とを有し、その入出力構造を介してl0D20のエ
レメントはSDババス6とSAババス8に接続される。
l0822は、例えば、キーボード、ディスプレイバッ
ファ、ディスプレイコントローラ、ディスクドライブコ
ントローラ及び通信コントローラから成り、l0D20
の各エレキ、 メントのインターフェースコノトロールエレメント馨含
んでいる。
ここに記載された好適な例示システム10において、l
0522は、システム10の残りに対して、1組のアド
レス空間ロケーションとして現われ、1以上のそのよう
なアドレス空間ロケーションはl0D20の各エレメン
ト及びl0822の関係エレメントと関連することに注
意丁べきである。システム10は、関連アドレス空間ロ
ケーションへの(及びからの)書込み及び読出し命令、
指令及びデータによってl0D20及びl0S22のエ
レメントと通信する。
システム10のエレメントはさらに割込みロジック(I
L)24 ’r含むが、これは当該技術分野の通常の知
識2有する者にはよく知られているように、UP14に
よって現在実行されているルーチンや命令シーケンスが
異なるルーチンを実行するためにそれによって割込まれ
る機構を提供する。そのようなオペレーションの典W的
す例Gi、 l0D20に含まれるキーボードからのキ
ーストローク入カサービスである。この例において、キ
ーストロークのエントリは、l0822のキーボードイ
ンターフェースロジックからIL24への割込み信号が
生成する結果となる。IL24は次にUP14への対応
する割込信号(INT)χ生成する。そしてUP14は
、キーストローク入力2受は取りそれに作用するルーチ
ンを実行するため現在実行中のルーチンに割込むことに
より応答する。
この点、公知のように、割込みは2つの広いクラス、即
ちマスク可能割込み及びマスク不能割込(NMI)に分
けられることに注意丁べきである。
端的に言えば、マスク可能割込みとは割込みのサービス
が現在実行中のルーチンの完了又はそのルーチンの都合
の良い停止点まで延期されるものである。NMIとは、
割込に至った発生事象の性質の1こめに即座にサービス
されなければならないものである。
この点、本実施例において特に興味のあるNMIのクラ
スは、異なるシステム、例えばインターナショナルビジ
ネルマシン社(IBM)のパーソナルコンピュータ(p
c)のオペノージョン乞エミュレートする上で、システ
ム10の動作から生ずる。
公知のよ5に、任意の計算機を他の計算機によってエミ
ュレートすることはエミュレートされるベキシステム用
に元来葺かれた命令シーケンス、即ちプログラム乞、エ
ミュレートする計算機が実行することか必要である。本
実施例において、関連する米国特許出願第329028
号に詳細に記載されているように、このエミュレートす
るシステムは「外部」命令の発生を検出し、その「外部
」命令が検出されたときNMI’に発する。エミュレー
トするシステムはエミュレーションルーチンYJ択して
実行することによりそのNMIに応答するカ、コのエミ
ュレーションルーチンはその命令力らエミュレートされ
るシステムに至ったであろう機能ヲエミュレートするオ
ペレーションv行うように、エミュレートするシステム
に指示すろ。
さらに以下に説明され、且つ、上記の関連米国特許出願
に詳細に説明されるように、入出力(Ilo)動作に関
係する、即ちl0822及びl0D20の動作に関係す
る、エミュV−)された命令は、本実施例において特に
興味のあるものである。即ち、本実施例の2つのシステ
ム、ウオング社のAPC及びIBM社のPCは関連する
マイクロプロセッサを使用するもののそれらのI10構
造、即ちl0822において大きく相違している。特に
、そ02つのシステムの170「ポート]のアドレス2
2間ロケーションはそれらのアドレス空間の異する領域
を占める。この1こめ、システム10は、I10命令の
発生を監視するエミュレーション割込み(EI)26 
を有し、システム10のI10ボートアドレスの通常の
範囲外のI10ポートに向けられ−「外部」■10命令
が発生するときNMIン生成する。システム10ば上記
のよ5なNMIに対して割込みサービスルーチンでその
110要求乞変換することにより応答するが、この割込
サービスルーチンはシステム10に、ソのI10要求か
らエミュレートされたシステムに至つ1こであろう機能
をエミュレートするルーチンを実行するように指示する
最後に、システム10は、MEM12とUP140間で
SDババス6及びSAババスBから接続されたプリフェ
ッチモニタ(PM)28 ’c含i!:。以下ニおいて
詳細に説明するように、PM28は、NMIによって割
込まれたルーチンの実行の再開を、七のN MIの時点
で実行中の命令に続く次の命令で許丁よ5に、MEM1
2からUP14へ与えられた命令シーケンス暑監視し取
り扱うように作動する。
本発明を具体[ヒする好適な例示システムの全体構造及
び動作乞説明してきたが、次に以下においては、本発明
の動作原理乞説明する。
注意丁べきことは、以下の説明は、カリフォルニア州の
サンタクララのインテル社から出されている、インテル
1APX286ハードウエアレフアレンスマ=ユフル(
「Intel  iAPX286E−1ardware
 Reference ManualJ )及び/17
テル1APXプログラマーレファレンスマニュアル(「
Intel  1APX Programmer’s 
ReferenceManualJ )  に記載され
ている、インテル社の1APX286(80286)マ
イクロプロセッサの構造と動作について精通しているこ
とを前提としていることである。
B3本発明の動作原理(第2図) 上記の引用刊行物に記載されているように、UP14は
命令ブリフェッチ待ち行列と次命令復号待ち行列とを有
する。公知のように、命令ブリフェッチ待ち行列は命令
乞実行前に7エツチして記憶する1こめに設けられ、一
方決命令復号待ち行列は命令ブリフェッチ待ち行列から
の命令の実行?、実際の実行前に少なくとも命令を部分
的に復号することによりパイプライン比する。
次の説明において、命令ブリフェッチ及び復号待ち行列
はまとめて命令待ち行列のように言及される。注意丁べ
きことは、多(の処理装置は命令のフェッチ及び実行を
スピードアップするそのような又は類似の機撰を備えて
いる。80286(1APX 286 )  マイクロ
プロセッサにおいては、例えば、命令ブリフェッチ待ち
行列は6バイト幅であり命令復号待)行列は6バイト幅
であって、このため80286マイクロプロセツサの命
令待ち行列は9バイト幅であって現在実行中の命令に先
立って1以上の命令を含み得ることとなる。
UP14は命令の実行乞パイプライン比するため、NM
Iは現在の命令実行の間又は終わりに実行されず、UP
14はNMIの発生に応答する前に1以上の別の命令乞
実行し得ろ。殆んどの場合、NMIはパリティエラーの
ような重大な事象に関してのみ使用され1以上の別の命
令の実行は重大な結果とはナラない。即す、システムオ
ペノージョンへの破壊は、割込まれた命令シーケンスの
実行乞再開するために必要な努力や破壊が相対的に小さ
な重要性で済む程度の犬ぎさである。
しかし、ある場合には、例えばシステム10による別の
システムのエミュレーションにおいて、NMIに応答し
て実行された割込みルーチンは、NMIに至った命令に
続く命令で始まる通常の実行に復帰しなければならない
。もし別の命令が実行されれば、システムのオペレーシ
ョンの状態は、次に続(命令の実行に必要な情報が失わ
れ1こり変えろれ1こりシステムが次の命令で動作を再
開できないように変更されろ。この点、NMIに至つ1
こ命令は、次の命令の実行が再開できないようにシステ
ムの状態に回復不能な変化を起したようにみなされ得ろ
以下に説明するように、PM28はUP14への命令の
ストリーム乞監視して、N M Iのような、システム
状態における回復不能な変化に至る命令を検出する。そ
のような命令を検出すると、PM28はMEM12から
UP14への命令のフェッチを抑止し、「見かけ命令」
即ちヌル(空)命令を、NMIに至る命令に続(命令ス
トリーム中に挿入する。
この「見かけ命令」の[押込め(スタッフィング(st
uffing))JはNMIに至る命令が実行されるま
で、さもなければ又は以下に説明するようなUP14が
次の有効命令へ実行を種子まで続く。この時点で、PM
28はヌル命令を「押し込め」ること乞止め、MEM1
2からUP14への命令の読み出しが再開されて次の有
効命令から始められる。
注意丁べきことは、この「見かけ」即)空の命令を押し
込めた結果として、NMIに至るどのような命令に続く
空命令のみxUP14の命令待)行列は含むことになる
。これによりNMIに至る命令に続(次の実際の命令は
UP14の命令待ち行列にロードされるよりはMEM1
2に残り、そのNMIがサービスされた後に命令シーケ
ンスの実行の再開の1こめに使用される。
この点、PM28は、UP14とIL24/EI  2
6が、中断した命令に応答する時間を有さなければなら
なくなるまで、見かけ命令を押し込めることによりNM
Iに至る命令に続く命令の7エツチ乞遅らせるように考
えられる。これにより、もし中断した命令がNMIに至
れば、次の命令はUP14の命令待ち行列にはないこと
となる。
PM28の説明を続ける前に1選択された解決策を上記
のように行う要素の問題に留意しなければならない。第
一に、UP14、即ち本実施例の80286マイクロプ
ロセツサは「見かけ命令」をUP14の命令待ち行列に
おける実際の命令と置換する機構を供給しない。これに
より命令がUPI4までフェッチされるとき「見かけ命
令」の挿入が行わなければならない。第二に、UP14
は数バイトのアドレス、特に2バイト語のアドレス”k
 MEM12に供給することにより命令をフェッチする
上記の引用刊行物に記載されているように、各命令は行
うべきオペレーションを定義する少なくとも1つのオペ
レーションコード(Opコード)バイl−’Y含み、且
つ、命令に関係する情報χ含むModRMと呼ばれる1
以上の追加のバイト即ちオフセットバイトラ有し得る。
条件付飛越し命令においては、例えば、この追加のバイ
トは命令ストリーム中の飛越しの距離を含んでいる。結
果として、それらの命令は竺てが同じ大きさとは限らず
、即ち、乍く同じ数のバイトラ含んでいない。従ってP
M28は[見かけ命令JYr押し込んで]いる間、命令
ストリームでバイト整列を維持しなければならない。
最後に、「見かけの命令」はUP14によって行われる
べきオペレーションを生じさせないように選択されねば
ならず、これによりシステムのオペレーションの状態は
延期しなければならない。さらに「見かけの命令」は命
令ポインタ即ち次の命令を指示し、且つNMIに至る次
の命令を指示する命令に続く次の命令乞指示する、UP
14によってレジスタに維持する命令アドレスを残して
おかねばならない。これらの要件を満足するよ5に選択
された命令は、有効にUP14とその命令ポインタに「
適所にスキップ」させる無条件のジャンプ・ツー・セル
フ命令である。上で引用したインテルの刊行物に記載さ
れたように、選択された命令は、16進形式では”EB
″″FE”で表わされるJMP−’2命令即ちJMP$
命令である。注意丁べきことは、”EB”が1バイトの
JUMP(JU)命令の16進表示であるのに対しFE
”が次の1つのNMODバイトの16進表示であること
である。
上記のように、PM28は、UP14がNMIを結果と
しても1こら丁であろプ命令に至って実行するかセブで
なければ次の有効命令まで制御即ち命令の実行を種子ま
で、NMIのようなシステム状態の回復不能な変化をも
1こらず命令に続(命令ストリームに、JMP$ 命令
yx「押し込め」ろ。この点で、PM28は次の有効命
令がMEM12からUP14にフェッチされるようにで
きる。
以下に説明するように、JMP $命令?「見かけ」命
令として使用することは、この事象の検出ケ容易にする
。即ち、以下に述べるように、PM28は、内部アトV
スポインタを介して、UP14への命令フェッチのアド
レスを追跡し監視する。PM28の内部アドレスポイン
タは、追跡されることを期待される命令アドレスシーケ
ンスを生成する、即ちUP14によって生成された命令
フェッチアドレスの期待シーケンスに対応する。PM2
8の内部アドレスポインタの現在の値はPM28の値と
対応しないUP14のフェッチアドレスを検出するため
に各命令フェッチサイクルにおいてUP14から与えら
れ1こフェッチアドレスの値と比較される。
「シーケンス外の」磁フェッチアドレスの発生は、UP
14が新しいロケーションからの命令のブリフエツチヲ
開始した、即ち、命令の新しいシーケンスへ制御114
1乞渡したこと乞示す。そのような事象は、UP14が
分岐を実行してこれによりNMIを生じさせるかもしれ
ない命令をバイパスするか、JMP牢命令?実行するか
、エミュレーションルーチンへベクトル比することによ
りNMIに応答するときに起こる。命令分岐の例は、以
下に説明するように、条件付及び無条件飛越しを含む。
従来の割込みは同様の事象に至ることχ注意丁べきであ
る。
「シーケンス外」フェッチアドレス2見かけ命令の押し
込めの停止のため信号として使用することに加えて、P
M28はこの事象の発生乞利用して命令ストリームと再
び同期する。即ち、シーケンス外フェッチの第1バイト
は次の有効命令のOpコードであると仮定される。従っ
てPM28はこのアドレスを命令ストリームにおける正
しい次のポインha?表わ丁ように同期する。さらに注
意丁べきことは、以下に説明するように、バイト・フェ
ッチは、同様に次の有効命令のopコードバイトのもの
であり、そして同様に命令ストリームとの再同期のため
に使用される。
さらに命令ストリームとのPM28のバイト整列に関し
ていえば、UP14は9バイト長命令待ち行列2有し、
命令フェッチサイクルの起こる時χ示す信号乞供給する
のに任意のバイトが命令の第1バイト、即ちopコード
であるかどうかは示さないことに注意丁べきである。さ
らに、上記のように、命令は可変長である。しかし、′
PM28にとって、各命令の第1バイト即ちopコード
を調べその命令がNMIに至るものか否か決定すること
が必要である。
押し込めの後の上記の再同期に加え、即ち、シーケンス
外フェッチアドレスの検出時に、PM28は、そのよう
な事象の後にプリフェッチされた第1バイトが、命令の
第1バイト即)opコードであると仮定して、電源オン
又は初期の使用可能比のときに命令の第1バイトと同期
する。そのプリフェッチサイクル及び後の全てのプリフ
ェッチサイy ルノrca!’) PM28&!、 命
令の型を決めるOpコードの第1バイトχ読み出し、以
下に述べるよ5に内部のルックアップテーブルから命令
の長さを決定し、処理の(り返される次の命令の始めま
でのバイトの結果数を計数する。後に説明されるように
、この内部命令ルックアップテーブルは同様に命令の型
、即ちその命令がNMIに至る型のものかに関する情報
を供給する。
JMP$命令の”FE”及び”EB”バイトの押し込み
の間の命令ストリームのバイト整列に関しては、以下に
説明するように、命令がMEM12からUP14へ2バ
イト語でフェッチされることに注意丁べきである。従っ
て、もし、NMIに至る命令の最後のバイトが1ハード
の高位のバイトにあるなら、PM28は”EBFE” 
Y、UP14による次の後続の語の7工ツチ時に命令ス
トリーム中に押し込める。
もしNMIに至る命令の最後のバイトが1語の偶数番目
のバイトであるならラッチされて七の語の奇数番目のバ
イトに“EB”が押し込められる。
PM28は次に′″FEEB″乞後続のUP14への7
工ツチ時にUP14まで押し込める。
最後に、PM28は命令ストリームと再び同期するため
、ある命令、特に条件付及び無条件飛越し命令の発生を
利用できろ。即)、命令の第1バイト即ちopコード?
含むロケーションまで飛越しオペレーションカサれ、P
M28は命令ストリームと再び同期するためにそのよう
な飛越し?検出する。
しかし、UP14の命令待)行列の定め、短いプログラ
ムの転送、即)飛越しは、UP14がプリフエッチする
のと同じアドレスを有するロケーションへ実行を転送す
ることによるPM28の同期からの命令追跡機構に強制
してその転送を生じないようにさせられる。このプリン
エッチアドレスは両方の場合に同じであるので、PM2
8は転送が起るのか否か検知できなかった。もしPM2
8がこのとき中間opコードバイ)Y処理することを期
待し転送が実行されて、新しい第1のOpコードが現わ
れること乞示すなら、PM28は同期を失なう。
PM28は、N M Iに至るような命令の後と同様に
飛越し命令の後にJMP $命令を押し込めることによ
って条件付及び条件無しの飛越し命令後に再同期を強制
してこの問題をアドレス付はする。即)、粂件付又は条
件無しの飛越し命令後のJMP本命本命弁し込めは、結
局「シーケンス外」フェッチアドレスに強制してUP1
4がその押し込められγこJMP $命令に至り且つそ
の命令を実行したこと、従って新しいロケーションから
命令をプリフェッチし始めたこと又はUP14が首尾よ
(分岐されたこと又は割込まれた即T)NMI比された
ことを示す。
条件無しの転送、即)飛越しの場合、もし命令の最後の
バイトがフェッチされり語の高位の半分にあるなら、P
M28が次のopコードフェッチサイクルに”EB″”
FE″を押し込め始める。もし命令の最後のバイトが語
の低位の半分にあるなら、「押し込め」は1バイト分遅
らされろ、即ち、高位のバイトはスキップされ”EB”
FE”の押し込めが次の低位のバイトで再び始まる。
さらに、もしその転送が、次の命令の開始アドレス未満
のアドレスまで、又は、(次の命令の開始アドレス)+
(命令待ち行列の最大長)より大きいアドレスまでのも
のならば、シーケンス外のアドレスは飛越しの実行後に
生じ、これによりPM28の再同期が強制される。この
点、偶数アドンスロクーションへの短いフォーワード伝
送は常に、押し込まれたJMP 串命令のJJMPJ部
分へのものであり、これによりJMP 手命令の実行時
に再び同Mが行われる。奇数アドレスロケーションへの
伝送は次のopコードのフェッチが高位のバイトになる
ようにされる。これは、PM28が奇数アドレスopコ
ードフェッチを行う唯一の条件であり、特殊なロジック
がこの条件を検出し再同期を強制するために設けられる
条件付飛越し即ち伝送の場合、条件付飛越し命令の第2
バイトは、その飛越しのため相対的オフセラトラ含んで
おり、PM28のオペソージョンは飛越しの範囲に依る
。もしそのオフセットが2未満又は命令待ち行列の最大
の長さく7)よりも大きいなら、PM28は何も動作を
しない。即ち、もし条件付飛越しに関してテストされる
その条件が満1こされないなら、プログラムは単に次の
命令へと進みPM28は適切にその事象を追跡する。も
し七の条件が満たされれば、認識可能なシーケンス外ア
ドレスが生じそのときPM28は命令シーケンスと再び
同期する。
もし条件付飛越しのオフセットが、2と7とを含めそれ
らの間なら、PM28はNMIK至る命令の場合と同様
にJMP $命令を押し込み始める。もし飛び越しに関
してテストサれる条件が満たされし命令ストリームに再
び同期する。
2と7を含めそれらの間のオフセラトラ有する条件付飛
越し命令の場合の、しかもその場合の条件が満たされて
いるかテストされているときのPM28(7)動作は命
令ストリームのオフセットバイトのロケーション、即)
、偶数又は奇数のアドレスバイトかと5かということと
、オフセットの値との双方に依る。以下に説明するよ5
に、PM28は、全ての条件付飛越し命令のオフセット
パイトン調べて、その命令のオフセットバイトが偶数又
は奇数のアドレスバイトなのかということと七のオフセ
ットの値乞決定する。もし七のオフセットバイトがワー
ドの高位、即)奇数にアドレスされたバイトであるか、
七のオフセットが偶数の値である、即)2,4又は6で
あるなら、PM28はその命令の後のJMP $命令を
押し込めること以外はしない。これらの場合、もし起る
なら、飛越しは、次のJMP $命令の[JMPJ部分
までであるか、奇数アドレス位置までであるかである。
これらのどちらかでも起れば上記のように、PM28v
命令ストリームに同期させる。
2と7ン含めそれらの間のオフセットである条件付飛越
しであって、且つそのオフセットバイトが偶数にアドレ
スされたロケーションにあり奇数の値、即ち6,5又は
7ン有する場合、その飛越しは、もし起るなら、次のJ
MP 牟命令の「$」部分を含む偶数アドレスまで進も
うとするものであり、これにより、不適当な動作に至る
。このため、さらに後で説明するよ5に、PM28は条
件付飛越し命令のオフセット値がロードされるカウンタ
ーを備えている。このカウンターは次に、条件付飛越し
命令がフェッチされたときにアクティブにされ各々連続
的なopコードの7エツチサイクルの間2だけ減分され
る。オフセットカウンターにおける値が0になるとき、
PM28はUP14がJMPキ命令の現在の「$」部で
はな(条件付飛越し命令のターゲットアドレスで命令乞
フェッチ丁べきである。PM28は、オフセットカウン
ターの値がOになるときJMP $の命令の「$」の部
分に試みられたフェッチの発生時に、命令ストリームへ
再び同期させる。
条件付飛越しであって、オフセットの値が2より小さい
、即)、0か1かであるような命令であって、七のオフ
セットの条件付飛越し命令における値がゼロであるよう
な場合、何の作用もPM28によってとられない。この
場合、命令のフェッチは飛越シの条件が満1こされてい
ようといまいと同期し続ける。即)、その条件が満1こ
されていようといまいと次の命令へ制御が進むこととな
る。
オフセットが1の条件付飛越しの場合、PM28の動作
は次のバイトに依る。もし次のバイトが1の長さの命令
なら、PM28は上記のように動作する、即)次の命令
へ飛越し同期が維持される。
もし次に続くバイトが、「ガーベッジ」 (不要情報)
バイト、即ち存在しても命令ではないバイトなら、PM
28は同期を失なう。しかしPM28は命令を復号して
いるときに「ガーベツジ」バイトを検出し、PM28の
その後の動作は命令のオフセットバイトカ偶数又は奇数
アドレスロケーションにあるか否かに依る。もし条件付
飛越し命令が語境界にまたがっている、即bopコード
部が高イ即)奇数にアドレスされたバイトにあり、オフ
セットバイトカ低い即ち偶数にアドレスされたバイトに
あるなら、PM28はこの発生を検出し、オフセットバ
イトとあり得る「ガーベツジ」バイトとのフェッチの後
に次のopコードで再同期比を強制Tる。もしそのオフ
セットバイトカ属い即ち奇数にアドレスされるなら、特
別の作用はPM28によってとられない。即ち、もし1
の飛越しがされれば、飛越しは上記のように再び同期さ
せる奇数でアドレスされたバイトまで進む。もしその飛
越しがされなければ、実行では「ガーペッジ」バイトま
で進む。もしその追わしい「ガーベツジ」バイトは少な
(とも有効な命令の場合、次に実行は所望のまま続(わ
けである。
上記のような一般的場合の各々に関し、即)、条件無し
の飛越し命令に関し、条件材の飛越しの条件無し飛越し
に関し、セしてNMIに至るよ5な命令に関し、JMP
 牢命令を押し込める上でのPM28の動作が第2図に
示されている。命令の後のクラスは前に記述するように
エミュレートされrs I / 0命令によって示され
ることに注意子べきである。
こレラノクラスの命令の各々は第2図においてオペレー
ションの順次的な列により示され、列ノ頂部から底部ヘ
シーケンスは進み、1つの列における各ブロックは、1
語の偶数にアドレスされたバイト及び奇数にアドレスさ
れたバイトに対するPM28によって行われた押し込め
動作を表わ丁。
各列は、左半分と右半分に分けられ、1列の左半分は、
1語の偶数でアドレスされたバイトに命令のopコード
部が現われるときのPM28の動作2示す。1列の右半
分は、1語の奇数にアドレスされたバイトに1つの命令
のopコード部分があるときのPM28の動作音光わす
最後に、そして、特定のマイクロプロセッサに関し、P
M28の動作t%定の説明を介する説明のように次のテ
ーブルはインテルの1APX 286(80286)マ
イクロプロセッサにおいて用いられる命令の各クラスに
関しPM28の動作により処理がなされる。
i A P X 286の命令の処理 l)PM28は1APX286の全ての完全に記録され
た組に関し動作することは期待される。まだ使われてい
ないopコードは、もし実行されるならば、丁でに用い
られたopコードにおけるそれらと論理的に類似のもの
が出て(る。
2)全てのI10命令はJMP $命令のバイト整列さ
れた押し込めが行われる。
3)全てのI10命令はJMP 本命令のバイト整列し
た押し込め(スタッフインク(stuff団g))Y生
じさせる。
4)F2及びF6のOpコード(REP 5TRING
命令からREPプレフィックス)は通常の1バイト命令
として処理される。REP  5TRINGのクラスの
命令の第2のバイトは、命令がスタッフインクを要する
ストリングI10であるか否か決定する。
5)ENTERとLEAVEは通常の命令(スタッフイ
ンクなし)として処理される。
6)特殊なINT、INT3とIRETのタイプの命令
は無条件飛越し命令として処理される。
7)INTO及びBOUNDは通常の命令(スタッフイ
ンクなし)として処理される。
8)  rOFJ op  コード(保護制御命令の接
頭部)は通常の1バイト命令として扱われろ。第2のノ
くイトはopコードの第1のバイトとして復号される。
9)LOCK及び5EG(セグメントのオーバライド)
接頭部は通常の1バイト命令として処理される。
10)F6及びF7opコードはOpコードの第1ノ(
イトによつ℃−意に長さが決まらない。PM28はTE
ST命令に対し七の長さに1乃至2バイトを加える。
C,PM28のブロック線図の説明(第3図第3図を参
照すると、本発明に従’)PM28のブロック線図が示
されている。PM28の動作原理は上記のように詳しく
説明した。そしてPM28の実施例の以下の説明はそれ
らの動作原理を実現する手段乞記述する。
第3図に示されるように、PM28は低インプットラッ
チ(LIL)30及び高インプットラッチ(HIL)3
2 ’に備え、これらはそれぞれSDババス高及び低位
バイトから接続され、MEM12からSDババス6を介
しUP14ヘフエツチされる高位及び低位バイト?受は
取り獲得する。
上記ノように、そのようなフェッチオペレーションにお
いてSDババス6に現われる語の高位及び低位バイトは
、命令ス) IJ−ムの命令の連続するバイトから成る
。上記のPM28の動作原理の説明から明らかなように
、任意の命令のOpコードバイトはUP14によってフ
ェッチされり語の高位又は低位バイトのどちらにも現わ
れ、任意の命令乞構成するそれらのバイトは2以上の連
続的命令に現われ得る。
特に、命令のopコードバイトは1語の奇数でアドレス
されたバイトに現われ、随伴するModRMバイトは次
の語の偶数でアドレスされたバイトに現われる。この場
合、Opコードは第1の語が現われている間HIL32
にラッチされ、次の語に随伴のMo d RMバイトが
現われるまで保持される。Mo d RMバイトが次の
語の偶数にアドレスされたバイトにおいてSDババス現
われるとき、ModRMバイトはLIL30に獲得され
、命令の2つのバイトは以下に説明するようにそのフェ
ッチサイクル中PM28によって処理される。
命令がOpコードバイトのみを含む場合、又はModR
Mバイトがopコードバイトとして同じ語に現われる場
合、七の命令は、同じフェッチサイクルにPM28によ
って処理されopコードはSDババス6に現われる。こ
の場合、Opコードバイトは偶数にアドレスされたバイ
トに現われModRMバイトがもしあるならそれがHI
L32に獲得されろ間に、LIL30に獲得されること
に注意しなければならない。
上記のように、PM28はSDババス6に現われる全て
の命令のOpコードパイトン復号して命令の型と長さを
決定する。第3図に示すよ5に、opコードの復号オペ
レーションはDecode C復号) ROM(DR)
34によって行われ、その入力端はLIL30及びI−
(IL32の出力端からDecode ROMマルチプ
レクサ(DRM)36  を介して接続される。
上記のように、opコードは1語の奇数又は偶数にアド
レスされたバイトに、即−f)、HIL32 。
LIL30のどちらにも現われる。DRM3(Sは、以
下に説明するPM28のマスタ状態マシンからのROM
MUX制御信号に応答して、DR34の入力端へ供給さ
れるべき、LIL30又はHIE、32からのopコー
ドを選択する。この点、PM28のマスク状態マシンは
連続的命令のopコードバイトのロケーション、即)そ
れらが奇数又は偶数でアドレスされたバイトにあるか否
かを追跡してROMMUX を生成する。
DR34は有効命令を表わ丁各opコード入力に、対応
する出力In5truction Translate
  (命令変換信号)(IT)とC0UNTを供給する
ことにより応答するが、それらの出力はPM28の残り
に供給されるべきDecode (復号)ROM LA
TCH(ラッチ)(DRL)38にラッチされる。以下
に説明されるように、ITは6ビツト(ITO−IT2
)のコードで命令のクラスχ表わし、現在のopコード
に関してPM28のオペレーションを部分的に制御する
。C0UNTも6ビツトの出力で第1のバイト、即ちo
pコードバイトの他に基本的な命令においていくつのバ
イトがあるかt表わ丁。
DR34のIT出力tまず考えろと、IT出力によって
表わされた命令のクラスは、PM28の動作原理に上記
したように次のものを含む:上記の命令のクラスは、命
令ストリームとの同期と整列馨維持するための上記のス
タッフインク操作に部分的に反映していることに気付か
れるであろう。さてDR34のC0UNT出力Z参照す
ると、上記のようにPM28は各命令におけるプリフェ
ッチされたバイト数馨計数して次の命令の始めを決定す
る。以下に説明するように、PM28はその始め、即b
opコードと1命令中のバイト数とを識別すること、O
pコードバイトから次の命令の始めに対し指示されたバ
イト数tカウントダウンすることによりこのオペレーシ
ョンヲ行う。この点、ModRMバイト乞有さないそれ
らの命令において、C0UNTは命令の追加の長さを完
全に規定する。
ModRMバイトヲ有する命令において、M o d 
RMバイトも調べられて命令の全バイト数を決定する。
上記のように、命令のOpコードバイI−ハLIL60
又はHIL32のど)らにもあり、それに含まれる長さ
の情報はDR34によって変換され、DRL68のC0
UNT出力から供給される。同様に上記のように、命令
のOpコードバイトがLIL30とHIL32とのどち
らにでも常駐しているときは、もしあれば随伴ModR
MはLIL30かHIL32の他方に存在する。
第3図に示されろように、DRM36によって行われる
バイト選択機能はRMフィールドマルチプレクサ(RM
M)40の機能と並行比され、このマルチプレクサは、
DRM36と同様にLIL30とHIL62の出力から
接続されている。上記のように、PM28は、LIL5
0かHIT、52のどちらが命令のopコード乞含んで
いるか追跡し、ROM MUX信号をDRM36に生成
して結局DRM36乞介しOpコードバイl”選択する
。同様に、PM28のマスク状態マシンは、もしあれば
Mo d RMバイトのロケーションを追跡し、RM 
MUX信号YRMM40に対して生成してModRMバ
イトvRMM40の出力とし℃選択し、今度はそれがR
Mラッチ(RML)42にラッチされる。RMLのM 
o d RMバイト出力は今度はRMデコーダ(RMD
 ) 44の入力に供給され、これはModRMバイト
ヲ復号してもしあれば現在の命令にどんな追加のバイト
が含まれるか決定する。
第3図に示されるように、DRL38のC0UNT出力
は復号されたRMD44のModRMバ()YCOUN
T/RM加算器の入力に供給するが、この加算器はこれ
ら2つの入力馨加算して現在の命令における全バイト数
を表わ丁Byte Count (バイトカラン) )
 (BC)出力乞供給する。
C1MA46  の出力から接続されているのは、ノ(
イト加算器(BA)48  、バイト計数ラッチ(BC
L)50、減分バイトマルチプレクサ(DBM)52及
びバイトラッチマルチプレクサ(BLM)54からなる
従来からのアキュムレータである。BA48は、BCL
50が現在のバイトカウント(Byte Count)
を記憶するために設けられている一方でBA48は現在
のバイトカウントを減分する算術演算を行5゜BLM5
4は、新しい始めのバイトカウントがロードされるべき
ときにC1MA46から、現在のノ(イトカウントがカ
ウントダウンされているときはBCL50からBA48
へ第1の入力を供給する。
DBM52はBA48へと第2の入力を供給し、PM2
8のマスク状態マシンに応答して現在の)(イトカウン
トのどのような量がUP14ヘゲリフエッチされるバイ
トとして減分されるかによって選択する。
第3図に示されろように、新しい初期バイトカウントを
表わ丁CFLMA46の出力と、現在減じられているバ
イトカラン)Y表わ丁BCL50の出力は、カウントマ
ルチプレクサ(Coun t Mul t iplex
er)(CM)56の入力に供給される。CM56の選
択された出力が今度はカウントデコーダ(CD)58の
入力に接続され、このデコーダは現在のバイトカウント
Y調べ復号して現在のバイトカウントがゼロに達する又
は達したとき即ち、命令の最後のバイトがプリフェッチ
され新しい命令が始まるときPM28のマスク状態マシ
ンに示す。この点、α東46の現在の初期のバイトカウ
ント出力は、現在の命令がたった1つのバイトしか含ま
ない場合にCM56とCD58とを供給する。丁なわち
、C1MA46の出力は命令の終わり乞示すためCD5
8に供給され即時に復号される。
次の、条件付及び無条件飛越し命令の特別な場合?考え
ると上記のようにPM28は次の命令がいつ生ずるか決
定する1こめの飛び越し命令に関してオペレーションを
行う。同様に説明されていたように、それらのオペレー
ションは飛越し命令のオフセットバイトに規定された飛
越しの値に部分的に依る。
再び1MM40及びRML42に言及すると、飛越し命
令のオフセットバイトに関するPM28のオペレーショ
ンはMo d RM Y:有する命令に関して行わレル
、t−ペレーションに類似する。即ち、飛越し命令のo
pコードがLIL30又はHIL32に現われるときオ
フセットバイトはLIL30又はHIL32の他方に現
われ、RML42の出力に現われろように1MM40に
よって選択される。
第3図に示されるように、RML42の出力はさらにオ
フセット・レンジ・デコーダ(ORD)60とオフセッ
トカウンタ(OC)62の入力端に接続される。0RD
60は、上記のように、条件付飛越し命令のオフセット
バイl’復号してPM28のマスク状態マシンに、条件
付飛越しの値が奇数であり2と7との間の範囲内、即ち
6,5又は7か否か示す。PM28のマスク状態マシン
は上記のそのような表示に応答する。
さらに上記のよ5に、もし条件付飛越しが2乃至7の範
囲内の奇数のオフセット7有し、そのオフセットバイト
が偶数でアドレスされたバイトであるなら、PM28は
オフセットフィールドによって規定されたバイト数をカ
ウントダウンして、UP 14がもし条件の満1こされ
た場合には条件付飛越し命令によって規定される命令の
バイトラいつフェッチするべきか決定する。このカウン
トダウンオペレーションは0C62によって行ワれ、0
C62にはRML42かもの条件付飛越しのオフセット
直音ロードして命令バイトをUP14がブリフェッチす
るように減分されまず。第3図に示されるように0C6
2はPM28のマスク状態マシンに対して、オフセット
値がゼロに減分されたときに信号0C=Oを生成しま丁
最後に、上記のように、PM28は内部命令ポインタ乞
介して「押し込め」るときに命令ストリームと部分的に
同期を維持し、このポインタはUP14の期待フエツチ
ングシーケンスヲ追跡し、UP14によるフェッチがP
M28の内部命令ポインタによって指示されるようにそ
の期待フェッチに対応しないのはいつかt指示する。上
述のように、「シーケンス外」のopコードフェッチは
、UP14がJMP $命令に至って実行するとき又は
命令ストリームの次の順次的な命令ではなくて飛越しの
ような分岐馨実行したときに生ずる。
第3図に示されるように、この機能は、アドレスカウン
タ(ACTR)64とアドレスコンパレータ(AC)6
6により行われる。ACTR64は、SAババス8から
接続され、UP14が新しい命令シーケンスの7エツチ
?始めるとき、即ち、上記のよプにPM28が命令の始
めのopコードに再び同期するときにはいつも新しい開
始アドレスをロードされる。次にACTR64はUP1
4による各連続的フェッチで増分され、UP14の各フ
ェッチで、ACTR64の中味の現在の値はkC66に
よってUP14からSAババス8に与えられた現在のア
ドレスに比較される。kC66は上述のように、出力C
OMP馨、SAババス8に存在する現在のフェッチアド
レスにPM28の内部アドレスポインタが対応するか否
かを指示するPM28のマスタ状態マシンに供給する。
SDババス6とPM28との接続についての話に戻ると
、上記の様にPM28はデータ即ちJMP $ツバイト
″EB’及び”FE″t、上記のスタッフィングするオ
ペレーションを実行するのに要するように、SDババス
6にドライブすることが必要とされる。PM28もSD
ババス6から読み出した命令ハイトラドライブしてSD
ババス6に戻丁ことを必要とされ得る。このオペレーシ
ョンは、例工ば、命令のopコード及びM o d R
M即ちオフセットバイトが異なる語に現われるとき必要
とされる。
この場合、上述し1こよ5に、opコードバイトはLI
L30又はHIL32のどちらでも記憶されSDババス
6に、tJP14までフェッチされる次の語における“
EB”又は”FE”のスタッフィングするバイトと共に
戻される。
まず”EB”及び”FE″バイl’sDバス16にスタ
ッフィングすることt考えると、第3図に示されるよう
に、PM28は、低出力ドライバ(LOD)72 ’Y
介してSDババス6の低位ハイドに接続gtty、:低
出力マルチプレクサ(LOM) 70と、漏出力ドライ
バ(HOD)76  ン介してSDババス乙の高位バイ
トに接続される高出力マルチプレクサ(HOM)74 
 と、を有する。LOM70とHOM74は、バイト”
EB”及び“FE″を表わ丁ハードワイヤード入力を各
々設けてあり、PM28のマスク状態マシンによって供
給される対応の制御信号に応答して、スタッフインク・
オペレーションが実行されることにより必要とされるS
Dババス6の高位及び低位のバイトに”EB”及び“F
E”?押しやる。
上記“EB″及び“FE”入力に加えて、LOM70に
はLIL30の出力から接続されろ第3の入力が設けら
れ、HOM74にはHIL32の出力から接続された第
3の入力が設けられている。この接続によりopコード
バイトはSDババス6に現われる語から受けられ、LI
L30又はHIL32のど)らに退避させられ、同じS
Dババス6に戻されそこからUPによる次の語のフェッ
チの間に受けられる。
最後に、第3図に示されるように、PM28はマスク状
態マシンを備えるが、このマシンはPM28のオペレー
ションの指令とfftlJ ?Iil ’に行う。この
マスタ状Dマシンはマスタ状態マシンロジック(MSM
)78と関連するバイトフリップフロップ(BFF)8
0とコンディションコードレジスタ(CCR)82とを
含む。上記のようにMSM78はopコードのブリフェ
ッチを検出し、opコードのバイトアドレスを追跡する
。この機能、即ち、現在のopコードが奇数又は偶数で
アドレスされたバイトか否かの追跡がBFF80に記憶
された情報を介して行われる。
CCR82は、MSM78のオペレーションの状態に関
する情報を記憶するために設けられる。MSM78の主
要な状態はUP14、即b80286(iAPX286
)マイクロプロセッサのTs、Tc及びTw状 態に対
応する。この点、PM28のオペレーションの現状態は
次のものを含む。
CC1opコードバイl’捜丁か処理する;る; 最後に、PM28はMEM12からUP14へ命令を読
み出すことをJMP 串命令が命令ストリームに押し込
めろときに抑止すると上述した。この機能も、第3図に
おいてMSM78からMEM12への信号MEMINH
IBITによって示されるように、MSM78によって
行われる。
そのようなMSM78の設計は当該技術分野において公
知であり、当該技術分野における通常の知識乞有する者
によって上記のPM28の構造と動作の説明を読まt”
した後に理解されろであろうから、ここではMSM78
についてはさらに詳しく説明はしない。
【図面の簡単な説明】
第1図は、本発明に従うブリフェッチモニターを組み込
んだ情報処理システム乞示すブロック線図であり、 第2図は、本発明乞具体比するプリフェッチ・モニタに
よって実行されるオペレーションを示す図解であり、 第3図は、本発明を具体比するグリフエッチ・モニタの
ブロック線図である。 なお、図面において、 10ニジステム     12:メ モ リ14:マイ
クロプロセッサ28ニブリフエッチモニタ64:デコー
ドROM   38:デコードROMラッチ40;52
;54;56;70;74:マルチプレクサ42;50
ニラ ッ チ   44;58;60:デコーダ46;
48:加 算器  64ニアドレスカウンタ66:コン
パレータ   72;76:ドライバ78:マスク状態
ロジック 80:フリップ70ツグ。 IG 2

Claims (1)

  1. 【特許請求の範囲】 1)命令を記憶するメモリ手段と、 オペレーションを行うための上記命令に応答するプロセ
    ッサ手段と、を備え、上記プロセッサ手段は実行に先立
    つて命令をフェッチし記憶する命令待ち行列手段を含み
    、さらに命令の対応シーケンスの実行を行うためのある
    命令に応答する手段と、を備える情報処理システムにお
    けるプリフェッチ・モニタ手段であつて、 命令の対応するシーケンスが実行されることとなる命令
    の検出手段と、 上記メモリ手段から上記プロセッサ手段へ後続の命令を
    読み出すことを抑止する検出手段に応答するとともに、
    上記プロセッサ手段へ空命令を読み出す上記プロセッサ
    手段の命令フェッチ動作に応答する命令置換手段と、を
    備えることを特徴とする上記プリフェッチ・モニタ手段
    。 2)上記プロセッサ手段のフェッチ動作に応答して次の
    有効命令への実行の転送を検出する同期手段をさらに備
    え、 上記の次の有効命令でメモリ手段からプロセッサ手段へ
    命令の読み出しを再開する上記同期手段に上記置換手段
    は応答する 特許請求の範囲第1項に記載のプリフェッチ・モニタ手
    段。 3)上記の空命令はジャンプ・ツー・セルフ命令である 特許請求の範囲第1項に記載のプリフェッチ・モニタ手
    段。 4)対応する命令シーケンスの実行をすることとなり得
    る上記命令は、上記システムに対応する命令シーケンス
    を実行するように指示するマスク不能割込になる 特許請求の範囲第1項に記載のプリフェッチ・モニタ手
    段。 5)対応する命令シーケンスを実行することとなり得る
    上記命令は上記システムに対して外部の命令であり、 対応するマスク不能割込は上記外部命令の実行をエミュ
    レートするルーチンの実行をする結果となる 特許請求の範囲第3項に記載のプリフェッチ・モニタ手
    段。 6)上記同期手段は、 有効な次の命令を表示する初期フェッチアドレスを受け
    、上記プロセッサ手段のフェッチオペレーションに応答
    し、連続的命令アドレスを生成する命令ポインタ手段と
    、 上記プロセッサ手段によつて生成されたフェッチアドレ
    スと、対応する命令ポインタアドレスでシーケンス外の
    フェッチアドレスを指示する連続的命令ポインタアドレ
    スに応答する比較手段と、を備える特許請求の範囲第2
    項に記載のプリフェッチ・モニタ。 7)実行のシーケンス外転送となる命令を検出する手段
    をさらに含み、 上記置換手段は、実行のシーケンス外転送に至る命令の
    検出に応答し、 上記メモリ手段から上記プロセッサ手段への後続の命令
    の読出しを抑止し、 上記プロセッサ手段のオペレーションをフェッチする命
    令に応答して上記プロセッサ手段に空命令を読出す 特許請求の範囲第1項に記載するプリフェッチ・モニタ
    手段。 8)実行のシーケンス外転送ということとなる命令は条
    件付及び条件無し飛越し命令を含む 特許請求の範囲第7項に記載のプリフェッチ・モニタ手
    段。 9)上記プロセッサ手段のフェッチ動作に応答して次の
    有効命令までの実行の転送をする同期手段を設け、 上記置換手段は上記同期手段に応答して上記メモリ手段
    から上記プロセッサ手段へ上記の次の有効命令で命令の
    読出しを再開する 特許請求の範囲第7項に記載のプリフェッチ・モニタ手
    段。 10)実行のシーケンス外転送ということになり得る命
    令の条件付飛越し命令を含み、 上記同期手段はさらに、 条件付飛越し命令に応答して条件付で飛越す距離を決定
    する手段と、 上記プロセッサ手段のフェッチオペレーションに応答し
    て上記の飛越す距離を記憶し連続的に減分する手段と、 上記の記憶され減分された飛越す距離に応答して実行が
    転送された命令のフェッチを指示する手段と、を備え、 上記置換手段は上記同期手段に応答して上記メモリ手段
    から上記プロセッサ手段への命令の読み出しを再び行う 特許請求の範囲第9項に記載のプリフェッチ・モニタ手
    段。 11)上記同期手段は、さらに、 上記命令に応答して1つの命令におけるバイト数を決定
    する手段と、 上記プロセッサ手段のフェッチオペレーションに応答し
    て上記命令におけるバイト数を記憶し連続的に減分する
    手段と、 記憶され減分されたバイト数は、次の命令の始めを示す
    手段と、を備え、 上記置換手段は上記同期手段に応答して上記メモリ手段
    から上記プロセッサへ上記の次の命令の始めで命令の読
    出しを再び行う 特許請求の範囲第2項に記載されたプリフェッチ・モニ
    タ手段。
JP61179768A 1985-07-31 1986-07-30 プリフエツチ・モニタ Expired - Lifetime JPH0625968B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US761213 1985-07-31
US06/761,213 US4791557A (en) 1985-07-31 1985-07-31 Apparatus and method for monitoring and controlling the prefetching of instructions by an information processing system

Publications (2)

Publication Number Publication Date
JPS6232541A true JPS6232541A (ja) 1987-02-12
JPH0625968B2 JPH0625968B2 (ja) 1994-04-06

Family

ID=25061519

Family Applications (1)

Application Number Title Priority Date Filing Date
JP61179768A Expired - Lifetime JPH0625968B2 (ja) 1985-07-31 1986-07-30 プリフエツチ・モニタ

Country Status (6)

Country Link
US (1) US4791557A (ja)
EP (1) EP0211384B1 (ja)
JP (1) JPH0625968B2 (ja)
AU (1) AU587475B2 (ja)
CA (1) CA1260150A (ja)
DE (1) DE3689184T2 (ja)

Families Citing this family (44)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2188759B (en) * 1986-04-05 1990-09-05 Burr Brown Ltd Data processing with op code early comparison
JPS6398737A (ja) * 1986-10-15 1988-04-30 Mitsubishi Electric Corp デ−タ処理装置
JPS63282528A (ja) * 1987-02-04 1988-11-18 Sharp Corp 中央処理装置実行命令の検出方式
GB2203572B (en) * 1987-03-24 1991-11-27 Insignia Solutions Limited Improvements in data processing means
US4991090A (en) * 1987-05-18 1991-02-05 International Business Machines Corporation Posting out-of-sequence fetches
US5291581A (en) * 1987-07-01 1994-03-01 Digital Equipment Corporation Apparatus and method for synchronization of access to main memory signal groups in a multiprocessor data processing system
IN169634B (ja) * 1987-07-01 1991-11-23 Digital Equipment Corp
IN170672B (ja) * 1987-07-01 1992-05-02 Digital Equipment Corp
US5218712A (en) * 1987-07-01 1993-06-08 Digital Equipment Corporation Providing a data processor with a user-mode accessible mode of operations in which the processor performs processing operations without interruption
US4933847A (en) * 1987-11-17 1990-06-12 International Business Machines Corporation Microcode branch based upon operand length and alignment
US5115500A (en) * 1988-01-11 1992-05-19 International Business Machines Corporation Plural incompatible instruction format decode method and apparatus
JP2752076B2 (ja) * 1988-02-23 1998-05-18 株式会社東芝 プログラマブル・コントローラ
US4879676A (en) * 1988-02-29 1989-11-07 Mips Computer Systems, Inc. Method and apparatus for precise floating point exceptions
JPH0244431A (ja) * 1988-08-05 1990-02-14 Nippon Motoroola Kk 保護命令取出し装置
JP2504149B2 (ja) * 1988-12-02 1996-06-05 三菱電機株式会社 命令キュ―管理装置
US5127091A (en) * 1989-01-13 1992-06-30 International Business Machines Corporation System for reducing delay in instruction execution by executing branch instructions in separate processor while dispatching subsequent instructions to primary processor
GB2230119B (en) * 1989-04-07 1993-04-21 Intel Corp Conditional execution speed-up on synchronizing instructions
US5226127A (en) * 1989-04-07 1993-07-06 Intel Corporation Method and apparatus providing for conditional execution speed-up in a computer system through substitution of a null instruction for a synchronization instruction under predetermined conditions
CA2016068C (en) * 1989-05-24 2000-04-04 Robert W. Horst Multiple instruction issue computer architecture
US5185871A (en) * 1989-12-26 1993-02-09 International Business Machines Corporation Coordination of out-of-sequence fetching between multiple processors using re-execution of instructions
DE69030648T2 (de) * 1990-01-02 1997-11-13 Motorola Inc Verfahren zum sequentiellen Vorabruf von 1-Wort-, 2-Wort oder 3-Wort-Befehlen
KR910018909A (ko) * 1990-04-20 1991-11-30 미다 가쓰시게 데이타처리장치 및 그것을 사용한 시스템개발장치
JP2839730B2 (ja) * 1991-02-25 1998-12-16 株式会社東芝 エミュレーション装置及び半導体装置
US5432795A (en) * 1991-03-07 1995-07-11 Digital Equipment Corporation System for reporting errors of a translated program and using a boundry instruction bitmap to determine the corresponding instruction address in a source program
US5301312A (en) * 1991-08-21 1994-04-05 International Business Machines Corporation Method and system for utilizing benign fault occurrence to measure interrupt-blocking times
WO1994027214A1 (en) * 1993-05-07 1994-11-24 Apple Computer, Inc. Method for decoding sequences of guest instructions for a host computer
US6704861B1 (en) 1993-06-17 2004-03-09 Hewlett-Packard Development Company, L.P. Mechanism for executing computer instructions in parallel
US5421022A (en) * 1993-06-17 1995-05-30 Digital Equipment Corporation Apparatus and method for speculatively executing instructions in a computer system
US5428807A (en) * 1993-06-17 1995-06-27 Digital Equipment Corporation Method and apparatus for propagating exception conditions of a computer system
US5420990A (en) * 1993-06-17 1995-05-30 Digital Equipment Corporation Mechanism for enforcing the correct order of instruction execution
US5544342A (en) * 1993-06-30 1996-08-06 International Business Machines Corporation System and method for prefetching information in a processing system
US5574887A (en) * 1993-09-20 1996-11-12 Apple Computer, Inc. Apparatus and method for emulation routine pointer prefetch
US5361389A (en) * 1993-09-27 1994-11-01 Apple Computer, Inc. Apparatus and method for emulation routine instruction issue
SG47981A1 (en) * 1994-03-01 1998-04-17 Intel Corp Pipeline process of instructions in a computer system
US5590358A (en) * 1994-09-16 1996-12-31 Philips Electronics North America Corporation Processor with word-aligned branch target in a byte-oriented instruction set
US6092186A (en) * 1996-05-07 2000-07-18 Lucent Technologies Inc. Apparatus and method for aborting un-needed instruction fetches in a digital microprocessor device
US5944818A (en) * 1996-06-28 1999-08-31 Intel Corporation Method and apparatus for accelerated instruction restart in a microprocessor
US6122692A (en) * 1998-06-19 2000-09-19 International Business Machines Corporation Method and system for eliminating adjacent address collisions on a pipelined response bus
US6223338B1 (en) 1998-09-30 2001-04-24 International Business Machines Corporation Method and system for software instruction level tracing in a data processing system
US6789187B2 (en) * 2000-12-15 2004-09-07 Intel Corporation Processor reset and instruction fetches
US7171546B2 (en) * 2002-05-23 2007-01-30 Adams Phillip M CPU life-extension apparatus and method
US8019914B1 (en) 2005-10-07 2011-09-13 Western Digital Technologies, Inc. Disk drive implementing shared buffer memory with reduced interrupt latency
US9639472B2 (en) 2014-07-15 2017-05-02 International Business Machines Corporation Prefetch list management in a computer system
US20170277539A1 (en) * 2016-03-24 2017-09-28 Imagination Technologies Limited Exception handling in processor using branch delay slot instruction set architecture

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3401376A (en) * 1965-11-26 1968-09-10 Burroughs Corp Central processor
US3553655A (en) * 1969-03-28 1971-01-05 Ibm Short forward conditional skip hardware
US4200927A (en) * 1978-01-03 1980-04-29 International Business Machines Corporation Multi-instruction stream branch processing mechanism
US4189772A (en) * 1978-03-16 1980-02-19 International Business Machines Corporation Operand alignment controls for VFL instructions
US4279016A (en) * 1979-06-21 1981-07-14 International Business Machines Corporation Instruction pre-fetch microprocessor interrupt system
US4438492A (en) * 1980-08-01 1984-03-20 Advanced Micro Devices, Inc. Interruptable microprogram controller for microcomputer systems
US4498136A (en) * 1982-12-15 1985-02-05 Ibm Corporation Interrupt processor
US4562537A (en) * 1984-04-13 1985-12-31 Texas Instruments Incorporated High speed processor

Also Published As

Publication number Publication date
JPH0625968B2 (ja) 1994-04-06
EP0211384B1 (en) 1993-10-20
CA1260150A (en) 1989-09-26
EP0211384A3 (en) 1989-10-25
US4791557A (en) 1988-12-13
EP0211384A2 (en) 1987-02-25
DE3689184T2 (de) 1994-05-11
DE3689184D1 (de) 1993-11-25
AU6025886A (en) 1987-02-05
AU587475B2 (en) 1989-08-17

Similar Documents

Publication Publication Date Title
JPS6232541A (ja) プリフエツチ・モニタ
JPH0429093B2 (ja)
US5742794A (en) Emulation techniques for computer systems having mixed processor/software configurations
US6760835B1 (en) Instruction branch mispredict streaming
US6647488B1 (en) Processor
JP2513417B2 (ja) 情報処理装置
KR100263262B1 (ko) 마이크로프로세서
EP0279953B1 (en) Computer system having mixed macrocode and microcode instruction execution
US4937783A (en) Peripheral controller for executing multiple event-count instructions and nonevent-count instructions in a prescribed parallel sequence
JPH06295243A (ja) データ処理装置
JPH0564375B2 (ja)
JP2536726B2 (ja) マイクロプロセッサ
JPS62197831A (ja) デ−タ処理装置
JP2636074B2 (ja) マイクロプロセッサ
JPS6221131B2 (ja)
JPS6148181B2 (ja)
JP2711159B2 (ja) プロセッサ動作状態調整方法
JP2925820B2 (ja) マイクロプロセッサ
JP2701799B2 (ja) マイクロコンピュータ
JPH02307130A (ja) 命令先読み形マイクロプロセッサの実行制御装置
JPH02133833A (ja) インサーキツトエミユレータ制御装置
JPH0452973B2 (ja)
JPH05257751A (ja) マイクロコンピュータ
JPH065528B2 (ja) 情報処理システム
JPH01284943A (ja) 情報処理装置

Legal Events

Date Code Title Description
R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term