JPS63193239A - 命令順序監視装置と方法 - Google Patents

命令順序監視装置と方法

Info

Publication number
JPS63193239A
JPS63193239A JP63011833A JP1183388A JPS63193239A JP S63193239 A JPS63193239 A JP S63193239A JP 63011833 A JP63011833 A JP 63011833A JP 1183388 A JP1183388 A JP 1183388A JP S63193239 A JPS63193239 A JP S63193239A
Authority
JP
Japan
Prior art keywords
instruction
address
exception
cpu
bus
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
JP63011833A
Other languages
English (en)
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.)
National Semiconductor Corp
Original Assignee
National Semiconductor Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by National Semiconductor Corp filed Critical National Semiconductor Corp
Publication of JPS63193239A publication Critical patent/JPS63193239A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3664Environments for testing or debugging software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3636Software debugging by tracing the execution of the program

Abstract

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

Description

【発明の詳細な説明】 産業上の利用分野 この発明はデータ処理装置、特にマイクロプロセッサに
よって実行される命令の順序を、その動作に悪影響を与
えずに監視する方法に関する。
従来技術及び発明が解決しようとする問題点マイクロプ
ロセッサは、このマイクロブ[1セツサを取入れたシス
テムの設計技術者が、そのシステムの「デバッグ」がで
きる場合にだけ役に立つ。
システムの設計技術者は、開発中のシステムの動作を観
察し、システムの動作とそれに定められた機能的な仕様
の違いを確認し、その後、その挙動が機能的な仕様と合
うように、システムの設計を補正することができなけれ
ばならない。
システムの動作を観察する重要な一面は、マイクロプロ
セッサによって実行さ゛れる命令の順序を追うことであ
る。システムの設計技術者は、システムを減速したり、
あるいは命令の順序がシステムを普通の動作と変るよう
にしたすせずに、実行される命令の順序を追うことがで
きなければならない。
普通、マイクロプロセッサは、1つの命令から次の命令
への制御の切換えが、実行される命令の場所および種類
ならびに例外が起こるかどうかの両方によって決定され
るように設計される。例外は、違法の命令を実行しよう
とする試み、または周辺装置から出た割込み要語のよう
に、マイクロプロセッサによって検出される事象、誤り
および特殊な状態である。
マイクロプロセッサによって実行される命令は、ブラン
チ命令、飛越し命令および「その他の」命令の3種類に
分類することができる。
「ブランチ」命令は、現在実行中の命令に符号化された
変位値を現在実行している命令のアドレスに加算するこ
とによって計算された宛先アドレスにある命令に制御作
用を切換える可能性のある命令である。ブランチ命令は
「無条件」または「条件つき」の何れかになることがあ
る。後者の場合、マイクロプロセッサの状態に関する特
定された状態が真であるかどうかを判定する試験を行な
う。ブランチ命令は、それが無条件であるか、あるいは
条件つきであって特定された条件が真である場合、[採
用」されるという。
「飛越しくジャンプ)」命令は、特定の命令の定義に応
じた一般的な形で計算される宛先アドレスにある命令に
制御作用を切換える可能性のある命令である。普通の飛
越し命令の例は、メモリ内のスタックの頂部から読取っ
たアドレスに制御作用を切換える「戻り(リターン)」
、およびメモリ内にあるアドレス表を割出すためにオペ
ランドの値を使うことによって所在が定められるアドレ
スに制御作用を切換える格(ケース、’CASE’ )
がある。ブランチ命令と同じく、飛越し命令は「無条件
」または「条件つぎ」になることがあり、無条件である
か、または条件つきであって特定された条件が真である
場合、「採用」されるという。
ブランチ命令および飛越し命令の間の意味のある違いは
、ブランチ命令では、命令の符号および場所だけが判っ
て、宛先アドレスを計算することが可能であるが、飛越
し命令では、一般的に宛先アドレスが、レジスタまたは
メモリ位置の内容のように変化し得るあるデータ値に関
係することである。
キャッシュ・メモリまたはメモリ管理装置を「チップ上
」に集積していないマイクロプロセッサでは、全ての命
令およびデータ参照(リファレンス)の仮想アドレスが
マイクロプロセッサの外部インターフェースから利用し
得る。その為、マイクロプロセッサによって実行される
命令順序を外部から追うことは簡単である。
例えば、ナショナル・セミコンダクター・コーポレーシ
ョンのN532032マイクロプロセツサの場合、採用
したブランチまたは飛越し命令を実行した後、特別の状
態コードを用いて、メモリにある宛先アドレ“スから次
の命令を読取る。マイクロプロセッサが、新しい命令の
実行を始める時には、何時でもプログラム・フロー状態
インターフェース信号を作動する。従って、N5320
32マイクロプロセツサが次に述べるように、実行され
る命令の順序を監視することが可能である。
1、採用された各々のブランチまたは飛越し命令に対し
、宛先アドレスが外部インターフェースから利用し得る
2)採用されたブランチまたは飛越し命令の実行の後、
プログラム・フロー状態インターフェース信号を観測し
て、次の採用されたブランチまたは飛越しを実行するま
で、相次ぐメモリ・アドレスで実行される命令の順序を
決定する。
3、例外が起こった時を決定するために、例外サービス
手順のアドレスを記憶しているメモリ位置から読取った
データを外部インターフェースで検出する。
しかし、この発明のようなマイクロプロセッサは、チッ
プ上にキャッシュ・メモリおよびメモリ管理装置を集積
しているが、この場合、実行される命令の順序を外部か
ら監視するために解決しなければならない2つの問題が
ある。第1に、所要の命令またはデータがチップ上のキ
ャッシュ・メモリにあることがあるから、マイクロプロ
セッサの外部インターフェースでは全てのメモリ参照を
観察することができない。これは、マイクロプロセッサ
の内部キャッシュにあるメモリ参照、外部メモリを参照
せずに遂行されるからである。第2に、マイクロプロセ
ッサの外部インターフェースで観察し得るメモリ参照は
、仮想アドレスではなく、実アドレスを使っている。こ
れは、集積されたメモリ管理装置が、実行プログラムに
よって発生された仮想アドレスを、メモリのアクセスに
使われる実アドレスに変換するからである。ある場合、
この変換は1対1ではない。
即ち、2つ以上の仮想アドレスが1個の実アドレスに変
換されることがある。この場合、単に外部インターフェ
ースのメモリ参照の実アドレスを観測するだけでは、実
行ブl]グラムに対するメモリ参照の仮想アドレスを決
定することは不可能である。
問題点を 決するための手段及び作用 上に述べた問題を解決するこの発明の方法は、2つの特
徴がある。第1に、実行を開始する命令が逐次形である
か非逐次形であるかを表わす付加的なインターフェース
信号を用いる。第2に、外部メモリ参照に使われるイン
ターフェース信号に付加的な情報を用いる。
以下明細書で説明するマイクロプロセッサで利用する付
加的なインターフェース信号は、[内部逐次取出しJ 
(ISF)と呼ばれる。採用されたブランチまたは飛越
し命令が実行される時には、何時でもマイクロプロセッ
サが、[プログラム・フロー状態J (PFS)信号と
共にISF信号を作動する。
従って、ブランチまたは飛越し命令を実行する時、制御
の流れを監視することが可能である。命令を採用する時
、これはISF信号を作動状態に駆動することによって
表示されるが、制御作用は宛先命令に切換えられる。命
令が採用されない場合、これはISF信号を不作動に駆
動することによって表わされるが、このとき制御作用は
メモリ内の次の逐次アドレスに切換えられる。
例外が起こるとき、または採用された飛越し命令が実行
された時、外部インターフェースには、制御の流れを監
視するための付加的な情報を用いる。例外が起こる時、
マイクロプロセッサが例外の種類を示すコードと、例外
サービス手順の仮想アドレスの両方を表示する。採用さ
れた飛越し命令を実行する時、マイクロプロセッサが飛
越し宛先の仮想アドレスを表示する。
制御の流れを監視するという問題に対するこの発明のこ
の解決策は、極めて効率が良い。1つの新しいインター
フェース信号しか必要としないから、コストが僅かであ
る。メモリ参照に対するインターフェース信号が使われ
ることは頻繁ではないから、マイクロプロセッサの外部
参照との干渉が小さく、性能が目立って低下することが
ない。
典型的には、採用される飛越し命令は、実行される命令
の10%未満である。典型的には、例外が起こる割合は
、100個の命令に対して1個未満である。このため、
インターフェース信号を使って制御の流れを監視するた
めの付加的な情報を発生することは、マイクロプロセッ
サの性能に対する影響が殆どない。
衷−JLJfl 第1図はとの発明の制御の流れを監視する方法を実施す
るマイクロプロセッサ(cpu)(io)の全般的なア
ーキテクチュアを示す。
CP旧10)が外部メモリおよび計算クラスタ内のその
他の装置との連絡のためのバス・サイクルを開始して、
命令を取出し、データを読取り且つ書込み、浮動小数点
動作を行ない、例外の要請に応答する。
CPU(10)が、20882 r、10HIPS (
1秒あたり100万個の命令)まで実行し得る4段形命
令パイプライン(12)を含む。命令パイプライン(1
2)と共に命令およびデータに対するバイブライン(1
2)の強い需要を支援する3つの記憶バッファがチップ
上に集積されている。記憶バッファが512バイトの命
令キャッシュ(14)、1,024バイトのデータ・キ
ャッシュ(16)、および64エントリの変換バッファ
を含み、これがチップ上のメモリ管理装置(MMO) 
(18)(7)中1.:含マレテイル。HHU(18)
 (7) 主す機能は、メモリ参照の要請を調停し、仮
想アドレスを実アドレスに変換することである。CPU
 (10)は、外部参照のためのバス・サイクルを制御
する集積バス・インターフェース装置(Btu) (2
0)をも含む。
キャッシュおよびメモリ管理機能を命令パイプライン(
12)と同じチップ上に配置することにより、マイクロ
プロセッサのあらゆる用途に対し、メモリ・アクセス時
間および帯域幅を改善することにより、優れたコスト/
性能が得られる。
CPU(10) ハ、割込み制御装置CICUT(24
)  (例えばN532202)のような利用し得る周
辺装置とも両立性がある。cpu(io)に対するIC
Uインターフェースは完全に非同期であり、このため、
10口(24)をCPU(10)よりも一層低い周波数
で動作させることができる。
CPU(10)がそれ自身のクロック発生器を持ってい
る。従って、タイミング制御装置を必要としない。
CPII(10)が外部キャッシュ・メモリ(25)な
らびに「バス監視」回路(2G)の両方を支援する、こ
の回路は後で説明するが、内部キャッシュの一貫性を保
つのを助ける。
第2図に示すように、CPU(10)は、バスのタイミ
ングおよび制御、キャッシュの制御、例外の要請および
その他の機能のために、114個のインターフェース信
号を持っている。下記のリストは、CPU(1G)イン
ターフェース信号の機能をまとめたものである。
入」叛」L旦 BACに   バースト確認(アクティブロー、即ち、
低で作用)。バースト要語に応答して 作用する時、メモリがバースト・サイ クルを支援することを示゛す。
B[Rバスの誤り(低で作用)。現在のバス・サイクル
の間、誤りが検出された ことをCPU(10)に知らせる。
BIT    バスの再試行(低で作用)。CPU(1
0)が現在のバス・サイクルをもう1回遂 行しなければならないことを示す。
BMO−BWI  バスの幅(2本の符号化された線)
これらの線が、を記の表1に示すよう に、各々のデータ転送に対するバスの 幅(8,16または32ビツト)を定める。
表    1 CIAO−CIA6キヤツシユ無効アドレス(7本の符
号化された線)。キャッシュ無効アド レスがC■^バスに出る。表2が、cpu(1G)の各
々の内部キャッシュに関連するCIA線を示す。
表    2 CII    キャッシュ入力禁止(アクティブハイ、
即ち、高で作用)。現在のバス・サイ クルのメモリ参照がキャッシュ可能で ないことをCPU(10)に知らせる。
CINVE   キャッシュ無効付能。外部キャッシュ
無効の選択か或いは試験モード動作が 選択されたかを決定する入力。
CLK    クロック。CPU(10)に対する全て
のタイミングを取出すのに使われる入力ク ロック。
DBG    デバッグ・トラップ要請(立下りで作動
)。この信号の高から低への変化が トラップ(DBG)を生じる。
HOLD    保持要M(低で作用)。直接メモリ・
アクセス装置(DMA)のためまたはマルチプロセッサ
用にバスを解放するよう にCPt1(1G)に要請する。
INT    割込み(低で作用)。マスク可能な割込
み要請。
INVSET   組無効(低で作用)。低である時、
チップ上のキャッシュ内のある組だ けが無効にされる。高であるとぎ、 キャッシュ全体が無効にされる。
INVDCデータ・キャッシュ無効(低で作用)。
低である時、データ・キャッシュ内で 無効作用が行なわれる。
INVIC命令キャッシュ無効(低で作用)。低である
時、命令キャッシュ内で無効作 用が行なわれる。
l0DECI10復号(低で作用)。周辺装置が現在の
バス・サイクルによってアド レスされたことをCPU(1G)に知らせる。
MHI    マスク出来ない割込み(立下りで作動)
。この信号の高から低への変化が、マスクできない割込
みを要請する。
RDY    用意完了(高で作用)。この信号が作動
されていない間、CPU(10)は遅いメモリまたは周
辺装置を支援するために、現在のバス・サイクルを延長
する。
R3T    リセット(低で作用)。CPU(10)
を初期設定するためのリセットの例外を発 生する。
5DONE   スレーブ済み(低で作用)。スレーブ
・プロセッサが命令の実行を完了し たことをCPU(10)に知らせる。
5TRAP   スレーブ・トラップ(低で作用)。ス
レーブ・プロセッサが、命令を実行1ノでいる間に、ト
ラップ状態を検出した ことをCPU(10)に知らせる。
瓜二F) (”=旦 AO−A31   アドレス・バス(3状態、32本の
線)。
バス・サイクルの間、32ビツト・アドレスを転送する
。AOが最下位ビットを転送する。
ADS    アドレス・ストローブ(低で作用、3状
態)。バス・サイクルが開始され、 有効アドレスがアドレス・バスにある ことを知らせる。
BEO−BE3バイト付能何部で作用、3状態、4本の
線)。表3に示すように、データ・ バスの各々のバイトの転送ができるよ うにする信号。
B)IT    メモリ・トランザクション開始(低で
作用、3状態)。現在のバス・サイク ルが有効であること、即ち、バス・サ イクルが取消されなかったことを示す。
バス・サイクル中でCON Fよりも早く利用し得る。
n    テレーク点(低で作用)。CPU(10)が
デバッグ状態を検出したことを知らせ る。
BREQ    バースト要請(低で作用、3状態)。
cpu(io)がバースト・サイクルを遂行することを
要請していることを示す。
BUSCLK   バス・クロック。バスのタイミング
のための出力クロック。
CUSECキャッシュ区間(3状態)。キャッシュ可能
なデータ読取バス・サイクル に対し、チップ上のデータ・キャッ シュ(18)のうち、データが入れられる区間を示す。
CIOキャッシュ禁止(高で作用)。現在のバス・サイ
クルのメモリ参照がキャッ シュ可能でないというCPU(10)による表示。レベ
ル−2のページ・テーブ ル・エントリ中のCL−ビットによって制御される。
C0NF    バス・サイクル確認(低で作用、3状
態)。ADSで開始されたバス・サイクルが有効である
こと、即ら、バス・サ イクルが取消されていないことを知ら せる。
DDIN    データ入力方向く低で作用、3状態)
データ・バスにおける転送方向を示す。
バス・サイクルの間に低である時、 CPU 10がデータを読取っていることを示す。バス
・サイクルの間高である時、CPU10がデータを書込
んでいることを示す。
+11DA    保持確認(低で作用)。1−HOL
D入力に応答して、CPPO2よって作動され、cpu
 ioがバスを解放したことを示す。
110    インターロック形バス・ナイクル(低で
作用)。インターロック保護を伴う 一連のバス・サイクルが進行中である ことを示す。
101NHI10禁止(低で作用)。周辺装置がアドレ
スされた場合、現在のバス・サイ クルを無視すべきであることを示す。
ISF    内部逐次取出し。PFSと共に、実行を
U;1始する命令が逐次形(ISF=低)または非逐次
形Cl5F−高)であることを示す。
PFS    プログラム・フロー状態(低で作用)。
この信号のパルスは、各々の命令に対 する実行の開始を示す。
SPCスレーブ・プロセッサ制御(低で作用)。スレー
ブ・ブOセッサのバス・ サイクルに対するデータ・ストローブ。
5TO−3T4  状態(5本の符号化された線)。バ
ス・サイクル状態コード。STOは最下位ビットである
。符号化が表4に示さ れている。
U/S    ユーザ/スーパバイザ(3状態)。
ユーザ・モード(U/S=高)またはスーパバイザ・モ
ード(U/S−低)であることを示す。
両方向信号 口0−031   データ・バス(3状態、32本の線
)。
バス・サイクルの間、8.16または32個のデータ・
ビットを転送する。口Oが最下位ビットを転送づる。
第3図について説明すると、CPU(10)は内部では
8個の主要な櫟能装置として構成されており、これらは
並列に動作しで、命令を実行するために次の動作を行な
う。予備取出し、復号、実効アドレスの計算、原始オペ
ランドの読取り、結果を読取ってレジスタに記憶、結果
をメモリに記憶。
ローダ(28)が命令の予備取出しを行ない、アドレス
装置(30)および実行装置(32)で使うためにそれ
らを復号する。ローダ(28)が命令キャッシュ(14
)からtausバスを介して受取った命令を8バイト命
令待ち行列に転送する。ローダ(28)は各々のサイク
ルで命令フィールドを取出すことができる。
「フィールド」は動作コード(アドレス・モード指定子
を含めて1乃至3バイト)、変位値または即値のいずれ
かを意味する。ローダ(28)が、・動作コードを復号
して初期マイクロコード・アドレスを発生し、それがL
ADRバスを介して実行装置(32)に送られる。復号
された一般アドレス・モードがADHSバスを介してア
ドレス装置(30)に送られる。
変位値がDISPバスを介してアドレス装置(30)に
送られる。即値がGCBUSバスに利用できる。ローダ
(28)が後で説明するブランチ予測様構をも含む。
アドレス装置(30)が、専用32ビツト加算器を用い
て実効アドレスを計算し、実行装置(32)に対して原
始オペランドを読取る。アドレス装置(30)が、レジ
スタ・ファイル(34)からGCBUSへのボートを制
御する。このボートを介して、基底値および指標値をア
ドレス加算器に転送し、データ値を実行装fffi(3
2)に転送する。オペランド参照用の実効アドレスが、
仮想アドレス・バスであるGV八ババス介してMMO(
18)およびデータ・キャッシュ(16)に転送される
実行装置(32)がデータ通路と、命令を実行し且つ例
外を処理するためのマイクロコード形制御装置を含んで
いる。このデータ通路は32ビツト募術論理装置(^L
U)、32ビツト・バレル・シフター、8ビツト優先順
位符号器および多数のカウンタを含む。実行装置(32
)に設けられた特殊用ハードウェアが乗算を支援し、絶
対値の小さい乗数に対する最適化を伴って1サイクル毎
に1ビツトを引込める。
実行装置(32)が結果を記憶するGNAバスからレジ
スタ・ファイル(34)へのボートを制御する。
GNAバスは、レジスタ・ファイル(34)に含まれて
いる多数の専用レジスタ、同じような形式レジスタ、及
び割込み基底レジスタの値を読取るためにも、実行装置
(32)によって使われる。2−エントリ・データ・バ
ッファは、実行装置(32)が、1つの命令の実行と、
前の命令に対する結果をメモリに記憶することをオーバ
ラップすることができるようにする。GVAVスは、複
雑な命令(例えばストリング動作)に対するメモリ参照
を実行するため並びに例外の処理のために、実行装置(
3?)によって使われる。
レジスタ・ファイル(34)は2重ボートを用い、。
GCBUSに対するアドレス装置(30)の読取アクセ
スと、GNNババス対する実行装置(32)の読取/書
込みアクレスができるようにする。レジスタ・ファイル
(34)は、汎用レジスタ、専用レジスタ、およびアド
レス装置(30)と実行装置(32)に対するプログラ
ム・カウンタの値を保持する。
HHtl(18) ハCPt1[10) (7)メ−E
 1,1管理機能ト両立性を持つ。命令キャッシュ(1
4)、アドレス装置ff (30)および実行装置(3
2)が、メモリ参照のために、MMO(18)に対して
要請をする。8M1(18)がこれらの要請を調停し、
Gv^バスに仮想アドレスを転送するためにアクセスを
許す。)IHU(18)がGVAVスから受取った仮想
アドレスを、その内部の64−エントリ変換バッファを
用いて、対応する実アドレスに変換する。)IHU(1
8)がHP八ババス実アドレスを、命令またはデータの
どちらを参照しているかに応じて、命令キャッシュ(1
4)またはデータ・キャッシュ(16)に対して転送す
る。実アドレスが外部バス・サイクルのために、810
(20)にも転送される。
バス・インターフェース装置(BIU)(20)が、命
令キャッシュ(14)、アドレス装置(30)J3よび
実行装置(32)による参照のために、バス・サイクル
を制御する。BIU(20)は外部参照のための3−エ
ントリ・バッファを持っている。このため、たとえば、
811(20)は命令取出しのためのバス・サイクルを
実行しながら、別のバス・サイクルに対する情報を保持
し、メモリにill’J込むと同時に、次の読取りデー
タを受取ることができる。
第4図について説明すると、命令キャッシュ(14)が
直接マツプ構成で512バイトを記憶している。参照命
令のアドレスのビット6乃至8が、8個の組のうちの1
つを選択する。各組は16バイト、即ちコードの4個の
二重ワードと、その組に記憶される位置に対する実アド
レスの最上位の23ビツトで構成されたアドレス・タグ
を保持するログとを持っている。二重ワード毎に有効ビ
ットが付設されている。
命令キャッシュ(14)は16バイトの命令バッファを
も持ち、それから1サイクル毎にコードの32ビツトを
IBUSを介してローダ(28)へ転送することができ
る。所望の命令が命令キャッシュ(14)に見つかった
場合に(゛ヒツト′)、命令バッファは命令キャッシュ
(14)の選ばれた組からロードされる。ミスの場合、
命令キャッシュ(14)がGVAバス上の抜けている二
重ワードのアドレスをMHO(18)に転送し、これが
そのアドレスをBID(20)用に変換する。BIU(
20)が、GBDIバスを介して外部メモリから命令バ
ッファをロードするためのバースト読取サイクルを開始
する。その後、命令バッフ?が命令キャッシュ(14)
の1つの組に書込まれる。
命令キャッシュ(14)が、命令ストリームの次の二重
ワードの予備取出しを行なうための仮想アドレスおよび
実アドレスの両方に対するカウンタを持っている。命令
キャッシュ(10が新しい命令ストリームからの予備取
出しを開始しなければならない時、新しいストリームに
対する仮想アドレスがローダ(28)からJBUSを介
して転送される。新しいページに交差するとき、命令キ
ャッシュ(14)がGVAバスを介して仮想アドレスを
MHO(18)に転送し、HP^バスを介して実アドレ
スを受取る。
命令キャッシュ(14)が、その内容を一定位置に固定
するための動作モードを支援する。この特徴は、形式レ
ジスタにある命令キャッシュ固定(LJC)ビットをセ
ットすることによって付能される。これを実時間システ
ムで使って、最も!1要なルーチンに対する速いチップ
上のアクセスができる。命令キャッシュ(14)は、形
式レジスタにある命令キャッシュ付能(IC)高次ビッ
トをセットすることによって、付能することができる。
データ・キャッシュ(16)が、第5図に示すように、
2通りの組と連想する構成で、1,024バイトのデー
タを記憶している。各組は、16バイトを含む2エント
リと2つのエントリに記憶される位置に対する実アドレ
スの最上位の23ビツトを持つ2つのタグとをを持って
いる。二重ワード毎に有効ビットが付設されている。
データ・キャッシュ(16)をアクセスするタイミング
が第6図に示されている。最初に、GV^バスの仮想ア
ドレス・ビット4乃至8を使って、データ・キャッシュ
(16)内の適当な組を選択1ノ、2エントリを読取る
。同時に、MHU(18)が仮想アドレスを変換し、実
アドレスをHPAバスを介してデータ・キャッシュ(1
6)およびBID(20)に転送している。その後、デ
ータ・キャッシュ(16)が2つのアドレス・タグを実
アドレスと比較し、これに対してBID(20)が、外
部メモリからデータを読取るための外部バス・サイクル
を開始する。参照がヒツトであれば、選択されたデータ
がデータ・キャッシュ(16)によって調整され、GD
ATAバスを介して実行装置(32)に転送され、BI
U(2G)が外部バス・サイクルを取消すが、BHTお
よびCON F信号を出さない。参照がミスであれば、
81tl (20)が外部バス・サイクルを完了し、外
部メモリからのデータを実行装置(32)およびデータ
・キャッシュ(16)に転送し、キャッシュはそのキャ
ッシュ・エントリを更新する。ヒツトである参照では、
データ・キャッシュ(16)は1サイクル当たり1個の
二1ワードのスルーブツトを保つことができ、1.5サ
イクルの潜在能力を持つ。
データ・キャッシュ(16)は書写しキャッシュである
。メモリの書込み参照では、データ・キャッシュ(16
)は参照がヒツトであるかどうかを検査する。ヒツトで
あれば、キャッシュの内容を更新する。ヒツトまたはミ
スの場合、BID(2G)がデータを外部メモリに肉写
す。
命令キャッシュ(14)と同じく、データ・キャッシュ
(16)がその内容を一定位置に固定する動作モードを
支援する。この特徴は、形式レジスタのデータ・キャッ
シュ固定(LDC)ビットをセットすることによって付
能される。これを実時間システムで用いて、最も重要な
データ位置に対するチップ上の速いアクセスができる。
データ・キャッシュ(16)は、形式レジスタのデータ
・キャッシュ付能(DC)ビットをセットすることによ
って付能することができる。
CPU(10)が、CPLI(10)の動作速度の2倍
の周波数を持つ単相入力クロックCLKを受取る。例え
ば、入力クロックの周波数は、20HIIzで動作する
CPU(10)では、408)1zである。CPU(1
0)がC1,に入力を2で除し、重ならない2相PHI
IおよびPH12で構成される内部クロックを求める。
CP +1 (10)がB II S OI−K出力信
号のPH11を駆動する。
ff17図は、CLに入力とBUSCLK出力信号の間
の関係を示す。
第8図に示すように、BUSCLK出力のことごとくの
立上りが、CPU(10)のタイミング状5(rT状態
」)の変化を定める。バス・サイクルは、関連する時間
線図にrl、 T2およびT2Bと記した一連のT状態
の間に起こる。バス・サイクルの間にアイドルT状態(
丁1)があることがある、、C1,に入力に対する81
13CLK出力の位相関係はリセットの時に設定するこ
とができる。
外部メモリおよび周辺装置から読取りまたはそれに書込
むために、CPU(10)によって行なわれる基本バス
・サイクルは、T1およびT2と呼ぶバス・クロックの
2サイクルの間に行なわれる。基本バス・サイクルは、
2つの理由で、2クロツク・サイクルを越えて延長づる
ことができる。第1に、遅いメモリおよび周辺装置を持
つために、付加的す■2サイクルを追加することができ
る。第2に、外部メモリから読取る時、バースト・サイ
クル(1’−T2B Jと呼ばれる)を使って、相次ぐ
位置から多数の二重ワードを転送することができる。
「侍ち」状態がない基本読取および書込みバス・サイク
ルのタイミングが、夫々第8図および第9図に示される
。読取および書込みの両方のバス・サイクルで、CPt
1(10)が、T1の前半の間、バス・サイクルの開始
を示す°アドレス・ストローブ^O3を出す。T1の開
始からバス・サイクルの完了まで、CPU(10)が状
II (STO−3T4) 、バイト付能(BEO−B
F3) 、データ入力方向(DDIN) 、キャッシュ
禁止(CIO) 、I10禁止(IOINI+ ) 、
およびキャッシュ区間(CASEC)信号に対するアド
レス・バスおよび制御信号を駆動する。
バス・サイクルが取消されない場合(即ち、次のクロッ
クで12が続く場合) 、CPU(10)がT1の間に
メモリ・トランザクション開始(BHT)を出し、T1
の中心からバス・サイクルの完了まで、バス・サイクル
確1cONFを出し、完了した時、CON Fを否定す
る。
T2の終りに、CPLI(10)は、バス・サイクルが
完了したことを示す、RDYが作動状態であることを標
本化する。即ち、これ以上の付加的なT2状態を追加し
てはならない。T2の後、次のバス・サイクルに対する
T1か、またはCPU(10)が行なうべきバス・サイ
クルがなければTiが続く。
第10図に示すように、前に説明した基本読取および書
込みバス・サイクルは、更に良いアクセス時間を支援す
るように延長することができる。前に述べたように、各
々の12状態の終りにCPU(10)がRDYを標本化
する。RDYが不作動であれば、もう1つのクロックに
対してT2を繰返すことにより、バス・サイクルを延長
する。最初より後の付加的な■2状態は「待ち」状態と
呼ばれる。第10図は、2つの持ち状態を追加すること
によって、読取バス・サイクルを延(?iることを示し
ている。
第11図に示すように、基本読取サイクルは、相次ぐメ
モリ位置から4つまでの二重ワードのバースト転送を支
援するために、延長することができる。バースト読取サ
イクルの間、最初の二重ワードが、基本読取サイクルと
同じく、一連のT1.1よびT2状態の間に転送される
。この後の二重1フードは、’T2B’ と呼ばれる状
態の間に転送される。
バースト・サイクルは、32ビット幅のメモリから読取
るためにだけ使われる。
バースト読取サイクルに於ける転送の回数が、T2また
はT2B状態の間、バースト要請BREQという出力信
号とバースト@ Q BACにという入力信号の間のハ
ンドシェイクによって制御され、それが現在の転送に続
くもう1回の転送を要語していることを示す。メモリが
BACにを出して、それがもう1回の転送を支援するこ
とができることを示す。第11図は3回の転送のバース
ト読取サイクルを示しており、CPU(10)は2回目
の転送の後、BREQを否定にすることにより、この順
序を終了する。第12図は2回の転送のバースト・ナイ
クルを示しており、これは2回目の転送の間、BACに
が不作動であるときに装置によって終了させられる。
バースト順序中の最初より後の各々の転送では、CPU
(10)がアドレス・ビット2および3をインクレメン
トして、次の二重ワードを選択する。第12図に2回目
の転送について示されているように、cpu(to)が
各々の12B状態の終りにROYを標本化し、IIDY
が不作動であれば、バースト転送に対するアクセス時間
を延長する。
CPU(10)はチップ上の2つのキャッシュと外部メ
モリの間のデータの一貫性を保つために多数の方式を用
いる。こういう方式を表5にまとめである。
レベル−2)ページ・テーブル・エントリにあるCIビ
ットを用いて個別のページに対してキャッシュを使うこ
とを禁止することができる。
第1図に示す外部の1−バス監視装置」回路(26)を
使うことにより、cpu(1o)のチップ上の2つのキ
ャッシュと外部メモリの間の一貫性を保証することがで
きる。回路(26)は次のバスとインターフェース接続
される。
1、 CPU(10)のアドレス・バスおよびCASE
C出力。
内部キャッシュ・エントリ(タグ)を修正する情報を求
めるため、ならびにcpu(io)の内部キャッシュ・
タグの更新コピーを保持するため。
2)システム・バス。どの内部メモリ・アドレスが修正
されたかを検出するため。
3、 INVSET、 INVDC、INVIcおヨヒ
CIAO−CIA6信号で構成されるCPU(10)の
キャッシュ無効バス。
バス監視装置(26)が、命令キャッシュ(14)およ
びデータ・キャッシュ(16)のエントリのタグ・コピ
ーを持っている。システム・バスのメモリ書込みサイク
ルのアドレスが、バス監視装置(26)内にある1つの
タグと符合する場合、バス監視装置(26)からキャッ
シュ無効バスを介してCPU(10)に対して指令が出
され、適切な内部キャッシュにある対応するエントリを
無効にする。CPU(10)による内部キャッジ:L・
エントリの無効化は、1クロツク・サイクルしかかから
ず、進行中のCPuバス・サイクルを妨げない。データ
・キャッシュ(16)は1度に32バイトが無効にされ
るが、命令キャッシュ(14)は1度に16バイトが無
効にされる。
CPU(10)の2つのチップ上のキャッシュと外部メ
モリの間の一貫性を保つこういう方式が、係属中の米国
特許出願通し番号用006,015号に詳しく記載され
ている。
命令を実行するため、cpu(10)が最初に命令を取
出す。そのアドレスはプログラム・カウンタにあり、そ
の後その特定の命令に対する動作を行なう。命令を実行
した後、ブ1]グラム・カウンタの値を2通りのうちの
一方で更新されて、次に実行すべき命令のアドレスを持
つようにする。即ち、現在の命令が明白にプログラム・
カウンタをU −ドする(飛越し命令のように)か、ま
たは現在の命令の長さによってプログラム・カウンタが
インクレメントされる。
マイクロプロセッサによって実行される命令の順序が、
次の4つの規則を反復的に適用することによって決定さ
れる。
1、マイクロプロセッサが例外を検出した場合、制御作
用は、その形式の例外に対する適切なサービス手順の最
初の命令に切換えられる。マイクロプロセッサの動作の
定義に応じて、例外サービス手順のアドレスおよびメモ
リは固定であるか、あるいはこのような手順に対するア
ドレス表にある。
2)マイクロプロセッサが採用されたブランチ命令を実
行する場合、制御作用は、ブランチ命令にある変位値を
ブランチ命令のアドレスに加算することによって計算さ
れたメモリ・アドレスにある命令に切換えられる。
3、マイクロプロセッサが採用された飛越し命令を実行
する場合、制御作用は、その特定の命令の定義に従って
一般的に計算されるメモリ・アドレスにある命令に切換
えられる。
4、マイクロプロセッサが命令を実行し、上に述べたど
の規則も適用されない場合、制御作用は、実行された命
令に直ぐ続くメモリ・アドレスにある命令に切換えられ
る。
CPU(10)は、命令の実行ならびに例外の処理に関
する5つの動作状態を持つ。即ち、リセット、命令の実
行、例外の処理、割込みの待ちおよび停止である。
命令を実行している間、CP[I(10)が例外を確認
すると、それが適5なレジスタの内容を保管し、その後
例外サービス手順の実行を開始する。例外とは、命令の
実行順序を変更するような状態、事象および誤りである
cpu(io)が4つの形式の例外、即ちリセット、バ
スの誤り、割込およびトラップを確認する。リセット例
外はR8T信号が作動された時に起こる。
R3TはCPU(10)の初期設定に使われる。バスの
誤りは、命令を実行づるために、CPU(10)によっ
て要求された命令取出しまたはデータ転送に応答して、
BER信号が作動されたとぎに起こる。割込みは、NH
IまたはTNT信号を作動することによって表わされる
事象に応答して起こる。割込みは、cpu(io)の注
意を必要とする周辺装置によって要請されるのが典型的
である。トラップは、除数ゼロのようなある状態が、命
令の実行中にcpu(io) 。
によって検出された時に起こる。
R3T信号が作動された時には、何時でもCPU(10
)がリセット状態に入る。cpu(io)は、R3Tが
不作動になるまで、リセット状態に留まり、不作動にな
ると、命令を実行する状f!に入る。CPU(10)が
リセット状態にある間、成る専用レジスタの内容を初期
設定する。
命令を実行する状態にある間、CPU(10)は、例外
が確認されるかまたは「待ち」命令が実行されるまで、
命令の実行を続ける。リセット以外の命令が確認された
時、CPU(10)は例外を処理する状態に入る。「待
ち」命令を実行した後、CPII(10)は割込みを持
つ状態に入る。
例外を処理する状態にある間、cpu(to)は適当な
レジスタの内容を保管し、例外サービス手順の実行を開
始するために、プログラム−カウンタおよびモジュール
・リンケージの値を読取る。割込ミラ処理スルタメ、C
PU(10) ハ更1.: ICU(24)から1つま
たは2つのベクトル値を読取る。例外を処理するのに必
要な全てのデータ参照が首尾良く完了した後、CPU(
10)が命令を実行する状態に入る。
る。しかし、cpu(io)が例外を処理している間に
、バスの誤りまたはアボートくうちきり)が検出された
場合、停止状態に入る。
υj込みを持つ状態にある間、CPU(10)はアイド
ルである。この状態を同定する。特殊状態がシステム・
インターフェースに出る。割込みまたは外部デバッグ状
態が検出された時、CPU(10)が例外を処理する状
態に入る。
CPU(10)が例外を処理している間、バスの誤りま
たはアボートが検出された時に、CPU(10)が停止
状態に入り、こうして適当な例外サービス手順に制御作
用が切換えられるのを防止する。この状態を同定する特
殊状態がシステム・インターフェースに出る。
CPIJ(10)は命令を実行するために、下記の動作
を行なう。
命令の取出し 原始オペランドがあれば、それを読取る結果を計算する 結果オペランドがあれば、それを書込む必要であれば、
フラグを修正する プログラム・カウンタを更新する 大抵の場合、CPU(10)は、1つの命令に対して上
に述べた動作を#を密な順序で完了することにより、命
令を実行し、その接法の命令に対する動作順序を開始す
る。しかし、前に述べたように、例外によって、命令を
実行するか或いは1つの命令から次の命令に進む動作順
序が変更されることがある。更に、性能を高めるため、
CPU(10)は幾つかの命令を実行する動作をパイプ
ライン式に並行(オーバーラツプ)して行う。
以下の説明は、命令の実行に対するパイプライン(10
)における例外の影響を説明するものである。この説明
では、実効アドレスはアクセス級の書込みを伴なうオペ
ランドに対して計算されるけれども、メモリに関連する
モードおよび外部アドレス・モードに対する実効アドレ
スを計算するためのメモリからのアドレスの読取は、原
始オペランドと同様にみなされる。
cpu(io)は、命令の実行中の種々の点で、例外を
検査する。例外が確認されると、実行中の命令は考えら
れる4通りのうちの何れかで終る。即ち、それを完了す
るか、それを中断するか、それを終了するか、或いは途
中まで完了する。この4種類の例外の各々により、特定
の終りになる。
命令が完了した後に例外が確認された時、CPu(10
)は、その命令、ならびに最後の例外が起こった以降に
実行された他の全ての命令に対する全ての動作を遂行し
ている。結果オペランドが書込まれ、フラグが修正され
、割込みスタックに保管されたプログラム・カウンタの
値は次に実行すべき命令のアドレスを持っている。例外
サービス手順は、それが終った時、適当な戻り命令を実
行することができ、CPU(10)は完了した命令に続
く命令の実行を開始する。
命令の実行中に、幾つかのトラップ状態の1つまたは再
開再開し得るバスの誤りが検出された時、命令を中断す
る。中断された命令は完了していないが、最後の例外が
起こった以降に実行された他の全ての命令は完了してい
る。この命令によってで影響を受ける結果オペランドお
よびフラグは修正されていることがあるが、命令を再び
実行して完了することができるような修正だけが起こり
得る。成る例外(例えば、バスの誤り、アボート、定義
されていない命令、J5よび違法な動作のトラップ)で
は、CPU(10)がプログラム状態レジスタにある適
当な制御フラグをクリアしてから、割込みスタックに押
込まれたコピーを保管する。割込みスタックに保管され
たプログラム・カウンタの値が中断された命令のアドレ
スを持っている。
例えば、復元命令がスタックから8個の汎用レジスタに
ポツプアップされる。無効なページ・テーブル・エント
リがスタックに対する1つの参照で検出された場合、命
令が中断される。命令によってロードすべき汎用レジス
タが修正されていることがあるが、スタック・ポインタ
は、この命令が開始された時と同じ値をまだ持っている
中断された命令を完了するため、例外サービス手順は2
つのN置の何れかをとる。
1、サービス手順が中断された命令の実行をシミュレー
トすることができる。命令の結果を計算して書込んだ後
、割込みスタックに保管されたプログラム状態レジスタ
のコピーによるフラグを修正し、割込みスタックに保管
されたプログラム・カウンタの値を更新して、次に実行
すべき命令を指すようにする。その後、サービス手順が
適当な戻り命令を実行し、CPU(10)は、中断され
た命令に続く命令の実行を開始する。
これは、ハードウェアの浮動小数点装置を持たないシス
テムで、浮動小数点命令をソフトウェアによってシミュ
レートする時にとられる措置である。
2)サービス手順が、命令を中断させる原因になったト
ラップ状態を除いた後、中断された命令を再び実行する
ことができる。サービス手順がその終りに適当な戻り命
令を実行する。その後、CPU(10)が中断された命
令の実行を再び開始する。
CPU(10)は中断された命令を再び実行して完了す
ることができるようにするが、例外が確認されれる前に
、CPU(10)がメモリ、マツプの周辺ボートから原
始オペランドまたは命令を読取っていることがある。こ
の場合、周辺装置の特性は、命令の正しい再実行を妨げ
ないことがある。
実行中の命令は、リセットされた時、または再開できな
いバスの誤りが発生した時に終了する。
命令によって影響を受ける結果オペランドおよびフラグ
があれば、それらは限定されず、プログラム・カウンタ
の内容も同じである。最後の直列化動作以降に実行され
た他の命令の結果オペランドがメモリに書込まれていな
いかもしれない。終了した命令は完了することができな
い。
ストリング命令の実行中に、再開し得るバスの誤り、割
込み、アボートまたはデバッグ状態が確認された時、命
令は途中まで完了したという。途中まで完了した命令は
完了していないが、最後の例外以降に実行された伯の全
ての命令は完了している。命令によって影響を受器ノる
結果オペランドおよびフラグは修正されているかもしれ
ないが、命令の実行中に使われたストリーム・ポインタ
おおよびその伯の汎用レジスタに記憶されている値は、
命令を再び実行して完了することができるようにする。
割込みスタックに保管されたプログラム・カウンタの値
が、途中まで完了した命令のアドレスを持っている。例
外サービス手順は、それが終った時、単に適当な戻り命
令を実行することができ、CPU(10)は途中まで完
了した命令の実行を再開する。
前に)本べたように、CPU(10)は、幾つかの命令
を実行する動作を4段のパイプライン(12)で同時に
並行して行なう。パイプライン(12)の全体的な構成
が第13図に示されている。実行装置(32)が1つの
命令の結果を計算している間、アドレス装置(30)が
、次の命令に対する実効アドレスの計口および原始オペ
ランドの読取をすることができ、ローダ(28)は3本
口の命令を復号して、4番目の命令をその8バイトの待
ち行列に予備取出しすることができる。成る状況では、
命令の実行が重く≧る効果は、厳密に逐次的な命令の実
行の効果と異異なることがある。具体的にいうと、cp
s(10)によって行なわれるメモリ参照の順序が違っ
ているように見えることがある。
命令を実行する間、CPU(10)は、命令を完全に取
出す前に、メモリから成る原始オペランドを読取ること
ができる。しかし、CPU(10)は、その結果を書込
む前に、常に命令の取出しJ5よび原始オペランドの読
取を完了する。命令を実行するために、メモリから2つ
以上の原始オペランドを読取らなければならない時、オ
ペランドは任意の順序で読取ることができる。同様に、
命令を実行するために、2つ以上の結果オペランドをメ
モリに書込む時、オペランドは任意の順序で書込むこと
ができる。
CPU(10)は、それまでの全ての命令が完全に取出
された後にのみ、命令の取出しを開始する。しかし、C
PIJ(10)は、前の命令に対する全ての原始オペラ
ンドが読取られ、結果が書込まれる前に、命令の取出し
を開始することができる。
CPU(10)が、それまでの全ての命令が取出され、
その原始オペランドが読取られた後にのみ、成る命令に
対する原始オペランドの読取を開始する。
命令に対する原始オペランドは、原始オペランドの値が
まだ書込まれていない結果に依存する時を除いて、それ
までの命令の全ての結果が書込まれる前に、読取ること
ができる。CPU(10)が、原始オペランドの良さに
ある実アドレスをまだ書込まれていない結果があれば、
その実アドレスと比較し、原始オペランドが依存する全
ての結果を書込む後まで、原始オペランドの読取を遅ら
せる。
更に、cpu(io)が、メモリ・マツプ形周辺装置に
ある原始オペランドを同定し、メモリ・マツプ形周辺ボ
ート行きのそれまでの全ての結果が書込まれる後まで、
このようなオペランドの読取を遅ら往る。特別の処理手
順により、メモリ・マツプ形I10ボートに対する読取
および書込みの参照が、プログラムが含意する順序で常
に行なわれることを保証する。こういう手順は、係属中
の米国特許出願通し番号第006.012号に記載され
ている。
CPII(10)は、それまでの命令の全ての結果が書
込まれた後にのみ、成る命令に対づ°る結果オペランド
の書込みを開始する。
幾つかの命令に対する動作を並行して実行する結果とし
て、命令が実行されなくても(例えば、前の命令がトラ
ップを生じた場合) 、CPU(10)は命令を取出し
てその原始オペランドを読取ることができる。しかし、
成る命令ド対する原始オペランドがメモリ・マツプ形周
辺ボートにあることをCPU(10)が同定する時、そ
の命令が実行される場合にだけ、CPU(10)が原始
オペランドを読取る。
cpu(io)が、命令の取出しと前の命令の結果の占
込みの間の関係を検査しないことに注意されたい。この
ため、自己修正コードは、所期の通りに実行するために
は特別の扱いをしなければならない。
成る命令を実行した後または例外を処理した後、CPU
(10)が命令の実行を直列にする。直列化命令の実行
は、cpu(io)がそれまでの全ての命令の結果のメ
モリに対する書込みを完了し、その接法の命令の取出し
および実行を開始することを意味する。従って、プログ
ラム状態レジスタに新しい値がロードされた時、新しい
プログラム状態レジスタの値が、次の命令を取出して実
行するために使われる特権状態を決定する。
この発明では、cpu(io)が実行される命令の順序
を監視するために2工程手順を実施する。1番目に、実
行を開始する命令が逐次形であるか非逐次形であるかを
示す付加的なインターフェース信号を用いる。2番目に
、外部メモリ参照に使われるインターフェース信号に付
加的な情報を表示する。
インターフェース信号が「内部逐次取出し」(ISF)
と呼ばれる。CPU(10)が、採用されたブランチ命
令または飛越し命令を実行する時には、い ′つでもプ
ログラム・フロー状a(PFS)信号と共にISF信号
を作動する。この発明では、CPU(10)が採用され
たブランチ命令に対するISF信号を作動しさえすれば
良い。従って、ブランチ命令を実行する時、制御の流れ
を監視することが可能である。
ブランチ命令が採用された場合、これはISF信号を作
動状態に駆動することによって表示されるが、制御作用
は宛先や命令に切換えられる。この命令のアドレスは、
ブランチ命令の符号及びアドレスが判っていれば、計算
することができる。ブランチを採用しない場合、これは
ISF信号を不作動状態に駆動することによって表示さ
れるが、この時制御作用は、メモリ内のブランチ命令に
続く命令に切換えられる。
採用された飛越し命令を実行する時または例外が起こる
時にだけに、制御の流れを監視するための付加的な情報
が外部メモリ・インターフェースに表示される。例外が
起こるとき、CPU(10)は、例外の種類を示すコー
ドと、例外サービス手順の仮想アドレスの両方を表示す
る。採用された飛越し命令を実行する時、CPII(1
0)は飛越し宛先の仮想アドレスを表示する。CPU(
10)が飛越し宛先による命令の取出しを開始した後に
、宛先アドレスが表示される。この時、メモリ・インタ
ーフェースはアイドル状態であるのが典型的であるが、
他方CPU(10)は飛越し宛先による命令を復号して
、その実行を準備している。CPU(10)は、状態情
報を通じて、メモリを参照する代わりに、例外に対する
コードまたは採用された飛越し命令に対する宛先アドレ
スの何れかを表示する時を示す。
アドレス装置(30)および実行装置(32)は、命令
1個当り2サイクルのピーク速度で命令を処理すること
ができる。ローダ(28)は命令1個当りに1サイクル
のピーク速度で命令を処理することができ、従って、ア
ドレス装置(30)および実行装置(32)に対して着
実に命令の供給を続けるのが典型的である。ローダ(2
8)は、ブランチ命令または命令キャッシュのミスのた
めに、命令ストリームにギVツブが生じた時にだけ、バ
イブライン(12)のスルーブツトを乱す。
第14図はアドレス装置(30)および実行装置(32
)によるメモリからレジスタへの2つの命令の実行を示
す。CPU(10)が大抵の普通の命令に対しては、2
サイクルの実行速度を保つことができ、典型的には次の
場合にだけ、遅延を持つ。
1、キャッシュおよび変換バッファのミスおよび調整さ
れてない参照に対する記憶遅延、2)命令パイプライン
(12)の段の間のリソースのコンテンション(競合)
、 3、ブランチおよびその他の非逐次形命令の取出し、 4、位取り指標のような複雑なアドレス・モードおよび
除算のような複雑な動作。
第15図はパイプライン(12)のタイミングに対する
データ・キVツシュ(16)のミスの影響を示す。
実行装置(32)は、BIUがデータを読取るバス・サ
イクルを完了するまで、2サイクル遅延する。
第16図はバイブライン(12)のタイミングに対する
アドレス・レジスタのインターロックのInを示す。1
つの命令がレジスタを修正しており、次の命令がアドレ
ス計?)のためにそのレジスタを使う。実行装置(32
)がレジスタの更新を完了するまで、アドレス装置(3
0)は3サイクル遅延する。2番目の命令がアドレス計
算ではなく、データの値のためにそのデータを使った場
合(例えばADDD RO,R1) 、実行装置(32
)にある側路回路を使って、バイブライン(12)の遅
延を避ける。
ローダ(28)はブランチ命令を処理するだめの特別な
回路を持っている。ブランチ命令が復号されると、ロー
ダ(28)は宛先アドレスを計口し、逐次および非逐次
の命令ストリームのどちらかを選択する。この選択はブ
ランチの条件および方向に基づく。ブランチが採用され
るとローダ(28)が予測する場合、宛先アドレスがJ
BUSを介して命令キャッシュ(14)に転送される。
ブランチが採用されると予測されるかどうかに関係なく
、ローダ(28)が交代的な命令ストリームのアドレス
を保管する。その後で、ブランチ命令が実行装ffi 
(32)に達し、そこで条件を解く。実行装置(32)
は、ブランチを採用したかどうかをローダ(28)に知
らせる。
ブランチの予測が正しくなかった場合、バイブライン(
12)がフラッシュし、命令キ↑7ツシユ(14)に正
しいストリームからの命令の予備取出しを開始する。
第17図はブランチ命令が採用されると正しく予測した
効果を示す。ローダ(28)による命令の復号に2サイ
クルのギャップが生ずる。バイブライン(12)の先頭
のこのギャップは、完全に復号された1つの命令がロー
ダ(28)とアドレス装置(30)の間のバッファ作用
を受けるため、ならびにバイブライン(12)内の後続
の段で同時に遅延が起こり得るため、詰っている場合が
多い。
第18図はブランチ命令の解の予測が正しくない影響を
示す。実行装置(32)で4サイクルのギャップが起こ
る。
CPU(10)の動作に関するこの他の情報は、係属中
の米国特許出願通し番号第006,01f3 @に記載
されている。
ここに示した実施例の種々の変更をこの発明を実施する
のに用いることができることを承知されたい。特許請求
の範囲にこの発明の範囲を限定しており、この請求の範
囲内に含まれる構成J3よび方法およびその均等物がこ
の発明に属することを承知されたい。
【図面の簡単な説明】
第1図はこの発明の制御の流れを監視する方法を利用し
たマイクロプロセッサの仝体的なアーキテクチュアを示
す簡略ブロック図、第2図はマイクロプロセッサのイン
ク−フェース信号を示す図、第3図はマイクロプロセッ
サの主要な機能装置および相H接続バスを示す簡略ブロ
ック図、第4図はマイクロプロセッサの命令キャッシュ
の構成を示す簡略ブロック図、第5図はマイクロプロセ
ッサのデータ・キャッシュの構成を示す簡略ブロック図
、第6図はマイクロプロセッサのデータ・キャッシュを
アクセスする時のタイミング順序を示1時間線図、第7
図はマイクロプロセッサのCLK入力とBUSCLK出
力信号の間の関係を示す時間線図、第8図はマイクロプ
ロセッサの基本読取サイクルを示す時間線図、第9図は
マイクロプロセッサの基本書込みサイクルを示す時間線
図、第10図は2持ちサイクルだけ延長した、マイクロ
プロセッサの読取サイクルを示す時間線図、第11図は
3回の転送を持ち、マイクロプロセッサによって終了さ
せられるバースト読取サイクルの時間線図、第12図は
、2回の転送を持ち、2番目の転送が1持ち状態だけ延
長していて、装置によって終了させられるバースト読取
サイクルの時間線図、第13図はマイクロプロセッサの
4段形命令バイブラインの全体的な溝成を示す略図、第
14図は内部データ・キャッシュのヒツトに対するパイ
プラインのタイミングを示す時間線図、第15図は内部
データ・キャッシュのミスに対するパイプラインのタイ
ミングを示す時間線図、第16図は命令パイプラインの
タイミングに対するアドレス・レジスタのインターロッ
クの効果を示す時間線図、第11図はマイクロプロセッ
サの動作でブランチ命令が採用されることを正しく予測
した効果を示す時間線図、第18図はマイクロプロセッ
サの動作でブランチ命令の解の予測が正しくない効果を
示す時間線図である。 王ミエロトXヨ CLX(IN) Fエロトー7 <ti、cν1:1′=11−;]B        
TI         T2       n14TI
F工口?−ES 4搏4T4爛、   71     T2    ηf
f1iT11三工Cr−”E3 1T2 竹@pT1メ41      71        T
ス       (手iち)     (引階9   
ηヌ、4TIFエロー10 竹14m1i、   TI    T2    Tel
    T0n   r+t+m王三工〔トー11゜ <d部子si、%      TI        T
2       T2B       +’l1%) 
    nff4丁+FIロトー12 峠   4+   ヤ N112 & N43       N◆1+2’  
     I’ X [:r−IBADDD J(FP
l、RO 工;エロ%−14− At7DDボ汗1.RO ■=エロトー16

Claims (16)

    【特許請求の範囲】
  1. (1)外部インターフェースを持つ形式のデータ処理装
    置に用いられ、該データ処理装置によって実行される命
    令の順序を監視する装置に於いて、実行を開始する命令
    が逐次形であるか非逐次形であるかを示すインターフェ
    ース信号を発生し、採用されたブランチまたは飛越し命
    令を実行する時または例外が起こる時を示す情報がイン
    ターフェースに表示されるようにした監視装置。
  2. (2)特許請求の範囲第1項に記載した監視装置に於い
    て、採用されたブランチ命令を実行する時に上記インタ
    ーフェース信号を作動する監視装置。
  3. (3)特許請求の範囲第2項に記載した監視装置に於い
    て、上記採用されたブランチ命令の符号およびアドレス
    からそのアドレスが計算される宛先命令に制御作用を切
    換える監視装置。
  4. (4)特許請求の範囲第1項に記載した監視装置に於い
    て、ブランチ命令を採用しない場合、インターフェース
    信号が不作動である監視装置。
  5. (5)特許請求の範囲第4項に記載した監視装置に於い
    て、メモリにあるブランチ命令に逐次的に続く命令に制
    御作用が切換えられる監視装置。
  6. (6)特許請求の範囲第1項に記載した監視装置に於い
    て、例外が起こる時、例外の種類を示すコードを表示す
    る監視装置。
  7. (7)特許請求の範囲(6)の右側に記載した監視装置
    い於いて、例外サービス手順の仮想アドレスを表示する
    監視装置。
  8. (8)特許請求の範囲第1項に記載した監視装置に於い
    て、採用した飛越し命令を実行する時、飛越し宛先の仮
    想アドレスを表示する監視装置。
  9. (9)特許請求の範囲第8項に記載した監視装置に於い
    て、装置が飛越し宛先にある命令の取出しを開始した後
    、宛先アドレスが表示される監視装置。
  10. (10)外部インターフェースを持つ中央処理装置によ
    って実行される命令の順序を監視する方法に於いて、実
    行を開始する命令が逐次形であるか非逐次形であるかを
    示すインターフェース信号を発生し、採用した飛越し命
    令を実行する時または例外が起こる時を示す情報をイン
    ターフェースに表示する工程を含む方法。
  11. (11)特許請求の範囲第10項に記載した方法に於い
    て、採用したブランチ命令を実行する時、インターフェ
    ース信号を作動する方法。
  12. (12)特許請求の範囲第10項に記載した方法に於い
    て、例外が起こる時、例外の種類を示すコードを表示す
    る方法。
  13. (13)特許請求の範囲第12項に記載した方法に於い
    て、対応する例外サービス手順の仮想アドレスを表示す
    る方法。
  14. (14)特許請求の範囲第10項に記載した方法に於い
    て、採用した飛越し命令を実行する時、飛越し宛先の仮
    想アドレスを表示する方法。
  15. (15)特許請求の範囲第14項に記載した方法に於い
    て、中央処理装置が飛越し宛先の命令の取出しを開始し
    た後に、宛先アドレスが表示される方法。
  16. (16)外部インターフェースを持つ中央処理装置によ
    つて実行される命令の順序を監視する方法に於いて、ブ
    ランチ命令の実行を表わすインターフェース信号を発生
    し、該インターフェース信号は、ブランチを採用する場
    合は第1の状態であり、ブランチを採用しない場合は第
    2の状態であり、インターフェース信号が第1の状態で
    ある場合、中央処理装置の制御を、ブランチ命令の符号
    およびアドレス情報を使って計算されたアドレスを持つ
    宛先命令に切換え、インターフェース信号が第2の状態
    である場合、中央処理装置の制御をブランチ命令に続く
    次の逐次的な命令に切換え、採用した飛越し命令の実行
    または例外の発生を表わす情報をインターフェースに表
    示して、例外が起こった時、例外の種類および関連する
    例外サービス手順のメモリ位置を示す符号を表示し、採
    用した飛越し命令を実行する時、飛越し宛先命令のメモ
    リ位置を表示する工程を含む方法。
JP63011833A 1987-01-22 1988-01-21 命令順序監視装置と方法 Pending JPS63193239A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US600987A 1987-01-22 1987-01-22
US006,009 1987-01-22

Publications (1)

Publication Number Publication Date
JPS63193239A true JPS63193239A (ja) 1988-08-10

Family

ID=21718831

Family Applications (1)

Application Number Title Priority Date Filing Date
JP63011833A Pending JPS63193239A (ja) 1987-01-22 1988-01-21 命令順序監視装置と方法

Country Status (3)

Country Link
JP (1) JPS63193239A (ja)
DE (1) DE3740762A1 (ja)
GB (1) GB2200482B (ja)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0453268B1 (en) * 1990-04-20 1997-10-22 Hitachi, Ltd. A microprocessor for inserting a bus cycle to output an internal information for an emulation
GB9114975D0 (en) * 1991-07-11 1991-08-28 Int Computers Ltd Monitoring a computer system
JPH0528002A (ja) * 1991-07-24 1993-02-05 Nec Corp マイクロプロセツサ
JPH05257710A (ja) * 1991-08-12 1993-10-08 Advanced Micro Devicds Inc 内部実行パラメータを与えるためのシステムおよびプロセッサによって実行されるべき命令を検証するための配列
EP0530816A3 (en) * 1991-09-04 1993-09-15 Nec Corporation Microprocessor with cache memory and trace analyzer therefor
EP0569987A1 (en) * 1992-05-13 1993-11-18 Nec Corporation Microprocessor incorporating cache memory enabling efficient debugging
GB2273184B (en) * 1992-12-05 1996-11-20 Motorola Inc A cache processor and a method for observing program flow in a cache processor
US5473754A (en) * 1993-11-23 1995-12-05 Rockwell International Corporation Branch decision encoding scheme
CN1279449C (zh) * 1994-12-28 2006-10-11 株式会社东芝 微处理器
JP2752592B2 (ja) * 1994-12-28 1998-05-18 日本ヒューレット・パッカード株式会社 マイクロプロセッサ、マイクロプロセッサ−デバッグツール間信号伝送方法及びトレース方法
US5964893A (en) * 1995-08-30 1999-10-12 Motorola, Inc. Data processing system for performing a trace function and method therefor
GB2459652B (en) * 2008-04-28 2010-09-22 Imagination Tech Ltd Controlling instruction scheduling based on the space in a trace buffer

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE2246863C3 (de) * 1972-09-23 1979-01-11 Ibm Deutschland Gmbh, 7000 Stuttgart Einrichtung zur Protokollierung des Programmablaufs in einer Datenverarbeitungsanlage
DE2432024A1 (de) * 1974-07-03 1976-01-22 Siemens Ag Verfahren zum betrieb einer datenverarbeitungsanlage
US4422141A (en) * 1979-07-30 1983-12-20 Bell Telephone Laboratories, Incorporated Microprocessor architecture for improved chip testability
US4604691A (en) * 1982-09-07 1986-08-05 Nippon Electric Co., Ltd. Data processing system having branch instruction prefetching performance
JPS59133610A (ja) * 1983-01-19 1984-08-01 Omron Tateisi Electronics Co プログラマブルコントロ−ラ
EP0199009A3 (en) * 1985-02-28 1989-05-31 Kabushiki Kaisha Toshiba Path coverage measuring system in a programme
JPS61264447A (ja) * 1985-05-20 1986-11-22 Hitachi Ltd 命令実行事象記録装置

Also Published As

Publication number Publication date
DE3740762A1 (de) 1988-08-04
GB8729325D0 (en) 1988-01-27
GB2200482A (en) 1988-08-03
GB2200482B (en) 1991-09-04

Similar Documents

Publication Publication Date Title
US4802085A (en) Apparatus and method for detecting and handling memory-mapped I/O by a pipelined microprocessor
US5438670A (en) Method of prechecking the validity of a write access request
US5263153A (en) Monitoring control flow in a microprocessor
EP0776504B1 (en) Integrated circuit with multiple functions sharing multiple internal signal buses for distributing bus access control and arbitration control
US4701844A (en) Dual cache for independent prefetch and execution units
US5375216A (en) Apparatus and method for optimizing performance of a cache memory in a data processing system
US5226130A (en) Method and apparatus for store-into-instruction-stream detection and maintaining branch prediction cache consistency
US5249286A (en) Selectively locking memory locations within a microprocessor's on-chip cache
US5469544A (en) Central processing unit address pipelining
US5289587A (en) Apparatus for and method of providing the program counter of a microprocessor external to the device
JP2001504957A (ja) 先進のプロセッサにおけるメモリ・データ・エリアシング方法および装置
JP2001519956A (ja) アドレスされた構成部分の思索の失敗を検出するメモリ・コントローラ
KR100309615B1 (ko) 고속프로그램가능로직컨트롤러(plc)
US5488728A (en) Microprocessor having a run/stop pin for accessing an idle mode
KR100386638B1 (ko) 외부메모리로의액세스요청을파이프라이닝하는마이크로프로세서
US5649137A (en) Method and apparatus for store-into-instruction-stream detection and maintaining branch prediction cache consistency
JPS63193239A (ja) 命令順序監視装置と方法
GB2200481A (en) Maintaining coherence between a microprocessor's integrated cache and external memory
EP0459233A2 (en) Selectively locking memory locations within a microprocessor's on-chip cache
JP2001519955A (ja) 先進のプロセッサのための変換メモリ保護装置
US6209083B1 (en) Processor having selectable exception handling modes
EP0156307A2 (en) Pipelined processor having dual cache memories
JP3045959B2 (ja) スーパースカラ・プロセッサ装置内の非アーキテクト命令を選択的にサポートする方法及び装置
JPH1049373A (ja) パイプライン・デジタル・プロセッサにおいて多重で高精度の事象を操作する方法と装置
JP3105110B2 (ja) 演算装置