JPS6158044A - 中央処理ユニツトの条件分岐命令のための命令プレフエツチシステム - Google Patents

中央処理ユニツトの条件分岐命令のための命令プレフエツチシステム

Info

Publication number
JPS6158044A
JPS6158044A JP60109217A JP10921785A JPS6158044A JP S6158044 A JPS6158044 A JP S6158044A JP 60109217 A JP60109217 A JP 60109217A JP 10921785 A JP10921785 A JP 10921785A JP S6158044 A JPS6158044 A JP S6158044A
Authority
JP
Japan
Prior art keywords
instruction
memory
operand
address
instructions
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
JP60109217A
Other languages
English (en)
Other versions
JPH0585926B2 (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.)
Digital Equipment Corp
Original Assignee
Digital Equipment 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 Digital Equipment Corp filed Critical Digital Equipment Corp
Publication of JPS6158044A publication Critical patent/JPS6158044A/ja
Publication of JPH0585926B2 publication Critical patent/JPH0585926B2/ja
Granted legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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, look ahead
    • G06F9/3802Instruction prefetching
    • G06F9/3804Instruction prefetching for branches, e.g. hedging, branch folding

Abstract

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

Description

【発明の詳細な説明】 産業上の利用分野 本発明は、一般に、デジタルデータ処理システムの分野
に係り、特に、このようなシステムに使用するプロセッ
サに係る。本発明は、「プレフェッチ」を行なうプロセ
ッサ、即ち、成る命令の実行中に命令流の中から別の命
令をフェッチして、この予めフェッチした命令を実行中
の命令の後に実行するようなプロセッサ、に特に有用で
ある。
本発明によれば、プロセッサは、手前の処理結果に基づ
いて命令流において分岐を行なうべきであるか否かを判
断するような条件分岐命令であるかどうか決定できると
共に、「分岐実行」命令流並びに「分岐非実行」命令流
の両方から命令をプレフェッチすることができる6 従来の技術 デジタルデータ処理システムは、一般に、3つの基本的
な要素、即ち、メモリ要素、入出力要素及びプロセッサ
要素を含んでおり、これらは全て1つ以上のバスによっ
て相互接続される。メモリ要素は、アドレス可能な記憶
位置にデータを記憶する。このデータは、オペランドと
、オペランドを処理する命令の両方を含む。プロセッサ
要素は、メモリ要素からプロセッサ要素自体にデータを
転送もしくはフェッチし、このデータを命令又はオペラ
ンドとして解読し、そして命令に基づいてオペランドを
処理する。次いで、処理結果を、メモリ内のアドレスさ
れた位置に記憶する。入出力要素もメモリ要素と通信を
行ない、システムにデータを転送したり、処理済みデー
タをシステムから取り出したりする6通常、入出力要素
は、プロセッサ要素によってこれに送られる制御情報に
基づいて動作する。入出力要素は、例えば、プリンタや
、テレタイプ又はキーボードや、ビデオ表示ターミナル
を含むと共に、ディスク駆動装置やテープ駆動装置とい
った二次データ記憶装置も含む。
典型的に、プロセッサは、メモリ要素からの命令流にお
いて命令を検索する。プロセッサユニットは、処理され
ている命令のアドレスがプログラムカウンタに維持され
るようにする。現在の命令が検索されると、プログラム
カウンタが増加され、命令流の中の次の命令を含むメモ
リ内の位置のアドレスがプログラムカウンタに含まれる
1980年11月25日付のウィリアム D。
ストレッカー(William D、 St;reck
er)氏等の米国特許第4,236,206号には、単
一の命令がメモリ要素内の色々な数の記憶位置をとるよ
うな改良が開示されている。中央処理ユニットは、命令
流から検索したワードがロードされる命令バッファを含
んでいる。一般に、プロセッサがこの命令バッファ内の
命令の部分を処理する時には、これらがバッファからシ
フトされて出されると共に、それに続くワードがバッフ
ァにおいてシフトアップされる。プロセッサは、命令流
の中から命令ワードをプレフェッチして、命令バッファ
をいっばいの状屈に保つ。プロセッサが現在命令の処理
を終えると、次の命令のプレフェッチされたワードがバ
ッファにおいてシフトアップされ、プロセッサは現在命
令の処理を終えると、直ちにこれらワードを処理するこ
とができる。このプレフェッチにより、プロセッサは命
令を非常に迅速に処理することができる。
発明が解決しようとする問題点 然し乍ら、プロセッサが現在命令流からの命令の処理を
続行するか或いは別の命令流へ移行することが必要であ
るような分岐命令に達した場合に、成る種の問題が生じ
る。幾つかの分岐は、無条件分岐である。
その他の分岐は、条件分岐であり、プロセッサは、命令
を受けた時にプロセッサの状態に基づいて別の命令流へ
移行するか否かを決定する。プロセッサは、無条件分岐
に出会うと、「分岐実行」命令流から直ちにプレフェッ
チを開始することができる。然し乍ら、条件分岐の場合
には、プロセッサは、処理の進行が停滞することになる
。プロセッサは、現在命令流からプレフェッチを続行で
きるが、この場合、分岐を実行すれば、プレフェッチし
た命令が使用されないことになる。これに対し、「分岐
実行」命令流からも命令をプレフェッチできるが、分岐
を行なわない場合には、これらの命令ワードが使用され
ないことになる。第3のやり方は、条件分岐命令に応答
して命令をプレフェッチできないようにすることである
。これら3つの方法は、いずれも、命令の処理を少なく
とも若干遅延させる。
問題を解決するための手段 それ故、本発明は、中央プロセッサユニットが条件分岐
命令に応答して「分岐実行」命令流と「分岐非実行」命
令流との両方から命令をプリフェッチするような構成を
提供する。プロセッサは、処理すべきオペランドをフェ
ッチするためのフェッチユニットを備えている。このフ
ェッチユニットは、命令もフェッチし、この命令を実行
する際に行なうべきオペレーションを予め決定すると共
に、特に、この命令が条件分岐命令であるかどうかを決
定する。実行ユニットは、フェッチュニツ1へからオペ
ランドを受け取り、命令に応じてオペランドを処理し、
処理されたオペランドをフェッチユニットに戻し、フェ
ッチユニットは、処理されたオペランドをメモリに記憶
する。
フエツチュニツ1〜は、2つの部分、即チ、「ボート」
に分割され、その一方は、メモリがら命令をフェッチす
る。第2の部分は、メモリからオペランドをフェッチす
る。条件分岐命令に応答して、フェッチユニットは、「
分岐実行J命令流のアドレスを決定し、オペランドフェ
ッチ部分を使用して、r分岐実行J命令流から命令ワー
ドのプレフェッチを開始する。
実行ユニットは1分岐を行なうべきかどうかを指示する
信号をフェッチユニットに送信する。
分岐を行なわない場合には、フェッチユニットは、メモ
リがr分岐実行ノ命令のプレフェッチをアボートするよ
うにさせる。実行ユニットが9分岐を行なうべきである
ことをフェッチユニットに指示する場合には、フェッチ
ユニットは、メモリがプレフェッチを実行できるように
する。次いで、フェッチユニットのオペランドフェッチ
部分が、「分岐実行」命令流の位置のアドレスを命令プ
レフェッチ部分に転送し、その後、フェッチユニットは
、前記したように、「分岐実行」命令流を用いて条件分
岐命令を実行する。
本発明は、特許請求の範囲に特に指摘する。
本発明の上記及び他の目的並びに効果は、添付図面を参
照した以下の詳細な説明より理解されよう。
実施例 第1図に示すように、本発明によるデータ処理システム
の基本的な要素は、中央処理ユニット(プロセッサ)1
0と、メモリユニット11と。
入/出力要素12とを含む。プロセッサ10は、メモリ
制御器1〜11のアドレス、可能な記憶位置に記憶され
た命令を実行する。命令は、オペランドに基づいて実行
さるべきオペレーションを識別し、オペランドもメモリ
ユニットのアドレス可能な位置に記憶される。命令及び
オペランドは、プロセッサ1oにより必要な時にフェッ
チされ、処理されたデータは、メモリユニットに戻され
る。又、プロセッサ10は、入/出力要素内の二二ツ1
〜に制御情報を送信し、これらユニットが選択されたオ
ペレーションを実行して例えばデータをメモリユニット
11へ送信したりメモリユニット11がらデータを検索
したりできるようにする。このようなデータは、命令で
あるか、メモリユニットに送信されるオペランドである
か、或いは、記憶又は表示のためにメモリから検索され
る処理済みデータである。
オペレータコンソール13は、オペレータのインターフ
ェイスとして働く。このオペレータコンソールにより、
オペレータは、データを検査及び記憶したり、中央処理
ユニット10の動作を停止したり、一連の命令を介して
中央処理ユニットの動作を進めてこ九ら命令に対するプ
ロセッサの応答を決定したりすることができる。又、オ
ペレータは、ブートストラップによってシステムを初期
化したり、データ処理システム全体に対して種々の診断
テストを行なったりすることができる。
中央処理ユニット10は、参照番号14で一般的に示さ
れた多数のバスを介してメモリユニット11に接続され
る。特に、中央処理ユニット10は、メモリ制御器15
に直結され、このメモリ制御器がアレイバス17を経て
複数のアレイ16に接続される。1つの特定の実施例に
おいては、メモリ制御器がカッシュメモリも収容する。
メモリ制御器15は、カッシュ又はアレイ16のアドレ
スされた位置からその内容を検察したり情報を一般のや
り方で記憶したりする回路を含んでいる。
カッシュメモリは、公知であり、これについては詳細に
説明しない。
データ処理システムは、ディスク及びテープの二次記憶
要素、テレタイプ、キーボード及びビデオターミナル等
を含む多数の形式の入/出カニニットを備えている。こ
れらユニット20は、入/出力バス21を経てバスアダ
プタ22へ接続される。入/出力バス21は、本発明の
譲受人に譲渡された「オーバーラツプシーケンス式のデ
ータ処理システムのためのバス(Bus For Da
ta Pro−cessin(HSystem Wit
h 0verlap 5equences) Jと題す
るジョーン V、レビイ (John V、 Levy
)氏等の米国特許第4,232,366号に開示された
ようなものである。別の形式の入/出力バスを用いて、
同様の入/出カニニット(図示せず)に接続することも
でき、このようなバスには、バスアダプタ24に接続さ
れた入/出力バス23が含まれるが、これは、J、コー
エン(J、 Cohen)氏等の「データ処理システム
(Data Processinに System) 
Jと題する米国特許第3,815,099号に開示され
たものである。
バスアダプタ22及び24は、アダプタバス25を経て
メモリ制御器15とデータをやり取りするように接続さ
れる。バスアダプタは、割込み要求/許可バス26にも
接続され、バスアダプタは、1つ以上の入/出カニニッ
ト20の状態が変化した場合に、このバス26を経て、
一般的なやり方で中央処理ユニット10の処理に割り込
むことができる。従って、中央処理ユニット10は、入
/出力要素内のユニットに割込み要求許可信号を直接転
送すると共に、メモリ制御器15を経て入/出力要素1
2内のユニットへ制御情報を送信したりこれらユニット
から状態情報を受信したりする。従って、メモリ制御器
は、中央処理二ニット1o及び入/出力要素12とのデ
ータのやり取りを制御すると共に、中央処理ユニットと
入/出力要素12との間の制御及び状態情報の転送もj
lA御する。
第2図は、中央処理ユニット10の一般的なブロック図
である。簡単に述べると、フェッチユニット30は、メ
モリ要素11から命令及びオペランドをフェッチし、命
令オペレーションコードの初期デコーディングを行なっ
て、実行すべきオペレーションの性質を判断し、オペレ
ーション及びオペランドを識別する信号をオペランドバ
ス32を経て実行ユニッ1−31に送信する。実行ユニ
ット31は、処理済みのデータを書き込みバス33を経
てフェッチユニット30へ送信し、次いで。
フェッチユニット30は、これらデータを記憶のために
メモリ制御器15・\送信する。
命令が、「浮動小数点」命令と称する良く知られた種類
の命令の1つである場合には、実行ユニッ1−31は、
浮動4)数点プロセッサ34がオペランドを処理できる
ようにする。この場合、浮動小数点プロセッサは、実行
ユニット31の場合と同様に処理済みのデータを記憶の
ためにフェッチユニットへ送信する。実行ユニット31
は、コンソールバス35を経てコンソールへ接続される
と共に、割込み要求/許可バス26にも接続され、入/
出力要素から割込み要求を受けて、公知のやり方で割込
み許可を与える。
前記したように、フェッチユニット3oは、メモリ制御
器から命令及びオペランドをフェッチし、処理済みのデ
ータをメモリ制御器へ送信する6フエツチユニツト30
は、IVAバス40を介してメモリ制御器へ接続され、
このバスを介して仮想アドレスをメモリ制御器へ送信す
ると共に、メモリデータバス41を経て命令及びオペラ
ンドを受け取り、処理済みのデータをメモリ制御器とや
り取りする。メモリ制御器は、一般のやり方で仮想アド
レスを物理アドレスに変換する回路(図示せず)を備え
ている。
更に、実行ユニット31は、EVAバス42を介してメ
モリ制御器に接続される。成る場合には、実行ユニット
31は、EVAバス42を経てメモリ制御器15へ仮想
アドレスを送信し、メモリデータバス41及びオペラン
ドバス32を経てメモリからデータを受信する。
更に説明を続ける前に、1つの特定の実施例により構成
された中央処理ユニット1oによって実行される命令の
構造について説明するのが有用であろう。この構造は、
米国特許第4,236゜206号に開示されたものと同
じである。節単に説明すると、命令の見出しとしてオペ
レーションコード、即ち、rOP  C0DEJが付1
 これはメモリの1つ又は2つの連続した記憶位置に含
まれる。その後、1つ以上のオペランド指定子が続く、
オペランド指定子の数は、命令のオペレーションコード
部分で指定されたオペレーションの性質によって決まる
特許第4,236,206号に詳細に説明されたように
、各オペランド指定子は、多数のアドレスモードの1つ
において処理すべきオペランドを識別する。成るモード
においては、命令のオペランド指定子がオペランド自体
を含む。他のアドレスモードにおいては、オペランドが
、オペランド指定子によって識別されたフェッチユニッ
ト内のレジスタの内容によって構成されるか又はこれら
内容から導出される。或いは又、オペランドは、オペラ
ンド指定子によって識別されたレジスタの内容から導出
されるか又はこれによって指示されたメモリ内の位置に
記憶される。
フェッチユニット30は、命令バッファ50を含み、こ
のバッファは、メモリ要素11からフェッチされた命令
ワードを記憶する。命令デコーダ51は、命令(第2図
B)のオペレーションコード(OF  C0DE)部分
をデコードし、命令に含まれたオペランド指定子の数を
決定し、オペランド指定子を1つづつデコードしてオペ
ランドを得るようにする。オペランド指定子がオペラン
ドを含む場合には、オペランドがオペランドインターフ
ェイス53ヘシフトされ、オペランドバス32を経て実
行ユニット31へ送信される。オペランド指定子がフェ
ッチユニット30内のレジスタ′、例えば、汎用レジス
タ54の1つ、を識別す する場合には、この識別され
たレジスタの内容もオペランドインターフェイス53へ
送られ、オペランドバス32を経て送信される。
汎用レジスタ54の1つがオペランドのメモリ位置を含
むことがオペランド指定子によって指示された場合には
、識別されたレジスタの内容を、マルチプレクサ55、
演算論理ユニット56を経て伝送して、 VA (仮想
アドレス)ラッチ57に記憶することができる。次いで
、VAクラッチ内容が工VAマルチプレクサ60及びI
VAバスインターフェイス61を経て送られ、IVAバ
ス40を経て伝送されて、メモリ制御器15(第1図)
がアドレスされた位置の内容を検索できるようにする。
メモリ制御器は、要求された位置の内容を検索すると、
これらをメモリデータバス41に送信する。フェッチユ
ニット30は、メモリデータ(M D )バスインター
フェイス62を経てデータを受け取り、これをIMDメ
モリデータラッチ63にロードする。データがオペラン
ドを含む場合には、フェッチユニット30がこれをオペ
ランドバスインターフェイス53及びオペランドバス3
2を経て実行ユニット31へ送信する。
米国特許第4,236,206号には、多数の他の形式
のアドレスモードが説明されている。
「レジスタデフアート」と称する1つのモードにおいて
は、識別された汎用レジスタは、それ自体がオペランド
が記憶される位置のアドレスであるようなメモリ内のア
ドレスを含む。この場合、オペランドを得るためには、
メモリ11から2回の検索を行なうことが必要である。
最初のメモリアクセスの結果は、IMDラッチ63に記
憶されるが、これはこの場合オペランドではなく、オペ
ランドのメモリアドレスである。従って、IMDラッチ
63の内容は、マルチプレクサ64及び第2のマルチプ
レクサ65を経、演算論理ユニット56を経て送られて
、仮想アドレスラッチ57に記憶される。次いで、IV
’Aバスインターフェイス61は、マルチプレクサ60
を経てラッチ57の内容を受け取り、第2のメモリ検索
を開始する6これにより、メモリは、メモリデータバス
41を経てフェッチユニット30にオペランドを送信す
る。次いで、オペランドは、IMDラッチ63に記憶さ
れ、インターフェイス53を経、オペランドバス32を
経て前記したように実行ユニット31に接続される。
別のアドレスモードにおいては、オペランド指定子が変
位値を含み、これは、識別された汎用レジスタ54の内
容に追加される。その和は、オペランドのメモリアドレ
スであるか、或いは、「デフアート」モードの場合には
オペランドのアドレスのアドレスである。変位値は、命
令バッファからマルチプレクサ64及び65を経てシフ
トされ、演算論理ユニット56の識別されたレジスタの
内容に加えられる。その和は1次いで、仮想アドレスラ
ッチ57に記憶され、IVAバスインターフェイス61
は、上記したようにメモリ11からの検索を開始する。
この場合も、オペランドは、メモリ要素11によりイン
ターフェイス62を経て戻され、IMDメモリデータラ
ッチ63に記憶され、その後、オペランドバスインター
フェイス53を経、オペランドバス32を経て、実行ユ
ニット31ヘシフトされる。
前記したように、フェッチユニット30は。
実行ユニット31及び浮動小数点プロセッサ34のため
のオペランドを検索するだけでなく、メモリへの処理済
みデータの転送を開始する。実行ユニット及び浮動小数
点プロセッサは、書き込みバス33を経てフェッチュニ
ツ1−30へ処理済みデータを送信する。処理済みデー
タは、その行き先きを定める命令のオペランド指定子の
値に基づいて、汎用レジスタ54か又はメモリかに記憶
される。フェッチユニット30は、書き込みバスからイ
ンターフェイス67を経て処理済みデータを受け取る。
処理済みデータの行き先きが汎用レジスタの場合には、
データがインターフェイス67から識別されたレジスタ
54へ直接送られる。一方。
処理済みデータの行き先きがメモリユニット11の場合
には、データがインターフェイス67からメモリデータ
バスインターフェイス62を経てメモリユニット11の
行き先き位置へ接続される。
又、フェッチユニット30は、命令バッファ50のため
の命令ワードをフェッチする回路も備えている。米国特
許第4,236,206号に開示されたように、命令は
、色々な長さである。本発明の特定の実施例においては
、メモリから検索される命令ワードの長さが4バイ1−
である。命令は、メモリからメモリデータバス41を経
てフェッチされる1つの命令ワードで構成されてもよい
し、2つ以上の命令ワードで構成されてもよいし、或い
は、分数個の命令ワードで構成されてもよい。
フェッチユニット30は、VIBA仮想命令バッファア
ドレスラッチ70を含み、このラッチは、メモリからフ
ェッチすべき次の命令ワードのアドレスを記憶する。フ
ェッチユニット30は、命令バッファ50に記憶された
命令流に含まれた選択された数のバイトを処理すると、
別の命令ワードのフェッチを開始する。VIBAラッチ
70の内容は、IVAマルチプレクサ60を経て接続さ
れる。次いで、IVAバスインターフェイス61を経、
IVAバス4oを経てメモリ制御器15へ転送される。
その後、フェッチユニット3oは、演算論理ユニット7
1の(+)で指示された内容だけVIBAラッチ70の
内容を増加し、その結果をマルチプレクサ72を経てV
IBAラッチ70ヘロードする。メモリ制御器は、命令
ワードのフェッチに応答してデータをメモリデータバス
41に送信する。フェッチュニッ1−は、メモリデータ
バスインターフェイス62を経て命令ワードを受け取り
、命令バッファ50に記憶する。
又、フェッチユニットは、プログラムカウンタレジスタ
73を然るべき状態に維持し、その内容は、命令のメモ
リアドレスであり、更に詳しくは、命令のオペレーショ
ンコード(i2図B) 部分のアドレスである。フェッ
チユニット30は、命令のオペランド指定子について処
理されるバイトの数と、オペレーションコードを構成す
るバイトの数(典型的に、1又は2)との記録を保持す
る。前記で説明しそして米国特許第4,236゜206
号にも述べられたように、全てのオペランド指定子がデ
コードされると、現在命令において処理されるオペラン
ド指定子のバイト及びオペレーションコードのパイ1〜
の数がプログラムカウンタ73の内容に追加され、その
和が、メモリユニット11の次の命令のアドレスとなる
。プログラムカウンタ73の内容は、以下に述べるよう
に使用される。
フェッチユニット30は、2つの部分より成り、その一
方は、オペランド指定子をデコードし、メモリユニット
11からオペランドをフェッチしそして処理済みのデー
タをメモリユニット11に記憶する。この部分は、仮想
アドレスラッチ57と、演算論理ユニット56と、マル
チプレクサ55.64及び65と、レジスタ54と、バ
ッファ50及び63と、命令デコーダ51とを含む。フ
ェッチユニットの第2の部分は、メモリユニット11か
ら命令ワードを検索する。この部分は、■IBA仮想命
仮想命令バッファアドレスラッチフッルチプレクサ72
と、演算論理ユニット71とを含む。
本発明によれば、命令デコーダ51が条件分岐命令をデ
コードする時には、フェッチュニッ1−30が、オペラ
ンドデコード及びフェッチ部分、特に、仮想アドレスラ
ッチ57、マルチプレクサ65及び演算論理ユニット5
6を使用して、「分岐実行」命令流のプレフェッチを開
始する6本発明の1つの特定の実施例においては、条件
分岐命令は、プログラムカウンタの内容に加えた時に「
分岐実行」命令流の第1命令のアドレスを形成するよう
な変位値より成るオペランド指定子を含んでいる。従っ
て、「分岐実行」命令流の第1命令のアドレスを決定す
るために、フェッチュニツ1−30は、プログラムカウ
ンタレジスタ73の内容をマルチプレクサ55を経て演
算論理ユニット56の一方の入力へ接続する。命令バッ
ファ50からの変位値がマルチプレクサ64及び6Sを
経て演算論理ユニットの他方の入力に接続される。演算
論理ユニット56のこれら入力の値が互いに加えられ、
その結果、即ち、「分岐実行」命令流の第1命令のアド
レスが仮想アドレスラッチ57に記憶される6次いで、
IVAバスインターフェイス61は、IVAバス40を
経てメモリ制御器15ヘメモリ要求を転送し、メモリ制
御器は、「分岐実行」命令流の第1命令の検索を開始す
る。
この点において、実行ユニット31は1手前の命令の処
理を終了し、その結果によって、分岐を行なうべきかど
うか判断する6 より詳細には、実行ユニット31は、条件分岐命令の手
前の命令の処理を終了した時に、フェッチユニット30
へ条件コードを送信する。フェッチュニツ1−30は、
この条件コードに基づいて分岐を行なうべきかどうか判
断する0分岐を行なうべきでない場合には、フエツチュ
ニツ1−30は、゛ メモリに「分岐実行」検索動作を
アポ−1−させるP号を送る。然し乍ら、条件コードが
分岐を行なうべきであることを指示する場合には、フェ
ッチユニットは、メモリ制御器15が「分岐実行」検索
動作を完了できるようにし、「分岐実行」命令流の第1
命令ワードがメモリデータバス41及びメモリデータバ
スインターフェイス62を経てフェッチユニットに受け
取られ、命令バッファ50にロードされる。次いで、古
い命令流からの命令バッファ50の命令ワードの上に新
たな命令ワードが書き込まれる。
この間、仮想アドレスラッチ57の内容は、この新たな
命令流の第2命令ワードの位置を識別するように増加さ
れる。仮想アドレスラッチ57の内容は、マルチプレク
サ65を経て演算論理ユニット56の一方の入力ヘシフ
トして送り出される。種々の定数を含む回路74からの
定数値がマルチプレクサ55を経て演算論理ユニット5
6の他方の入力に送られ、これらが互いに加えられる。
その結果は、「分岐実行」命令流の第2の命令ワードの
アドレスであり、これは、仮想アドレスラッチ57にロ
ードされると共に、マルチプレクサ72を経てVIBA
仮想命令バッファアドレスラッチ70にロードされる。
仮想アドレスラッチ57の内容は、マルチプレクサ60
を経てIVAバスインターフェイス61に接続され、こ
れは、第2の「分岐実行」命令ワードのフェッチを行な
う。
フェッチされた命令ワードは、命令バッファ50に記憶
される。VIBAラッチ70の内容は、演算論理二ニッ
ト71において増加され、「分岐実行」命令流の第3の
命令ワードを識別する。「分岐実行」命令ワードのその
後のフェッチは、上記の方法でVIBAラッチ70から
のアドレスを用いて実行される。
この点において、フェッチユニット30とメモリ制御器
15との間でやり取りされる種々の信号について説明す
るのが有用であろう6第3図を説明すれば、フェッチユ
ニットは、メモリ動作を開始する時に、IVA (31
: 00)5イン100を経てメモリ制御器15へ仮想
アドレスを送信する。仮想アドレスの発生源が仮想アド
レスラッチ57(第2図A)であるかVIBAラッチ7
0であるかに基づイテ、OP  MCF (3: O)
オペランドメモリ制御フィールド信号をライン101に
送信するか或いはIBUF  REQ命令バッファ要求
信号をライン102に送信する。OPMCF信号は、仮
想アドレスの発生源が仮想アドレスラッチ57である場
合に送信され、この信号は、データをメモリ制御器15
によってフェッチユニット30に送るべきか(即ち、転
送が読み取り転送であるか)メモリデータバス41を経
てメモリ制御器15に送るべきか(即ち、転送が書き込
み転送であるか)を指示するメモリ制御器15へのコマ
ンドである。更に、OP  MCF信号は、読み取りト
ランザクションにおいて、データを工MDラッチ63に
ロードすべきであるか命令バッファ5oにロードすべき
であるかを指示する。OP  MCF信号は、前記した
ようにフェッチが条件分岐命令に応じたものである場合
だけデータを命令バッファ5oにロードすべきであるこ
とを指示する。
IBUF  REQ信号は、工vAライン1゜Oを経て
送信される仮想アドレス信号の発生源がVIBAラッチ
70である時にバスインターフェイス61(第2図A)
によって送られる。この場合、転送は、常に、読み取り
転送であり、返送される命令ワードは、命令バッファ5
oに記憶される。
ライン100を経て送信される仮想アドレスの発生源が
仮想アドレスラッチ57の場合には。
インターフェイス61がOP  MEM  CXTオペ
ランドメモリコンテックス1−信号をライン103に送
信し、この信号は、メモリ制御器ISとやり取りさるべ
きデータバイトの数を指示する。
ライン100の仮想アドレス並びにOP  MCF信号
もしくはIBUF  REQ信号に応答して、メモリ制
御器15は、仮想アドレスを首尾よく物理アドレスに変
換して転送を完了できる場合に2つの確認信号の一方を
フェッチユニット30に送信する。(仮想アドレスの使
用及び仮想アドレスから物理アドレスへの変換は公知で
あり、ここでは詳細に説明しない。例えば、1974年
12月10日にロバート C,グレイ(Robert 
C。
cray)氏等に与えられた「仮想アドレスを物理アド
レスに変換する回路(Circuit For Con
vertingVirtual Addrasses 
Into Physical Addresses)と
題する米国特許第3,854,126号を参照されたい
、メモリ・、;S器15によって返送される確認信号は
、仮想アドレス信号の発生源が仮想アドレスラッチ57
であるかVIBAラッチ70であるかによって決まる。
アドレス信号の発生源が仮想アドレスラッチ57である
場合には、メモリ制御器15は、OP  PA  AC
Kオペランド物理アドレス確認信号をライン104に送
信する。
然°し乍ら、アドレス信号の発生源がVIVAラッチ7
0である場合には、メモリ制御器15は、よりF  P
A  ACK命令バッファ物理アドレス確認信号をライ
ン105に送信する。
ライン104を経て送られるOP  PA  ACK確
認信号の受信に続いて、OP  MCFコマンド信号が
読み取りトランザクションを指示しそしてフェッチされ
たワードを命令バッファ50に記憶すべきであった場合
には、フェッチュニッ1−3oがOP  ABORT信
号をライン106に送信する。これは、実行ユニット3
1がフェッチユニット30に分岐を行なうべきでないこ
とを示す条件コードを送信する場合に生じる。OP  
ABORT信号により、メモリ制御器15は、仮想アド
レスラッチ57からのメモリ参照をア余−1−する。
又、IVAバス40は、多数の種々のタイミング及び制
御信号を送るライン107も備えているが、これらの信
号は一般的なものであり、本発明を理解するのには不要
であろう。
メモリデータバス41は、ライン110を含み、これを
介してフェッチユニット30とメモリ制御器15との間
でメモリデータ信号(31: 00)が伝送される。更
に、メモリ制御器15は。
行き先きコード(1: O)信号をライン111を経て
フェッチユニット30に送信する。これらの信号は、メ
モリ制御器からフェッチユニットへ送イBされるメモリ
データ信号の行き先きとして命令バッファ50又はIM
Dラッチ63を識別する。
MD  RESP応答信号は、フェッチユニット30が
信号を識別された行き先きバッファ50又は63にスト
ローブできるようにするタイミング信号としてライン1
12に送られる。ライン113によって送られるEN 
 MD  BUS信号は、フェッチユニット30がライ
ン110にデータ信号を送信できるようにする。更に、
メモリデータバス41は、種々のタイミング及び制御信
号を送信するライン114を含んでいる。
第4図A、B及びCは、条件分岐命令に応答して主とし
てフェッチユニット30によって実行されるステップを
詳細に示すフローチャートである。先ず、命令デコーダ
51が命令バッファ50の命令をデコードする(ステッ
プ120)。命令が条件分岐命令でないことがオペレー
ションコードによって指示されると(ステップ120)
、命令デコーダ51は、中央処理ユニット1oの他部分
が命令を実行できるようにする(ステップ122)。然
し乍ら、オペレーションコードが条件分岐を指示する場
合には、フェッチユニット30のオペランド指定子デコ
ード部分が「分岐実行」命令流の第1命令のアドレスを
計算する(ステップ123)。
「分岐実行」命令流の第1命令のアドレスを計算する際
には、プログラムカウンタ73(第2図A)の内容がマ
ルチプレクサ55を経て演算論理ユニット56の一方の
入力に接続される(ステップ124)6条件分岐命令の
オペランド指定子部分の値が命令バッファ50からマル
チプレクサ64及び65を経て演算論理ユニット56の
他方の入力に送られる。次いで、演算論理ユニットは、
2つの値を加え、その結果を仮想アドレスラッチ57に
記憶する(ステップ124)。この点において、「分岐
実行」命令流の第1命令ワードのアドレスが仮想アドレ
スラッチ57に記憶され、「分岐非実行」命令流の次の
命令ワードのアドレスがVIBAラッチ70に記憶され
る。
命令デコーダ51は、現在処理されている命令が条件分
岐命令であることを指示しているので、「分岐実行」命
令流の命令ワードのアドレスが仮想アドレスラッチ57
に記憶されると、IVAバスインターフェイス61は、
実行ユニッ1−31がこの条件分岐命令の手前の命令を
実行した時のアドレスを用いて命令フェッチを開始する
。フェッチユニット30は、VIBAラッチ70のアド
レスを用いた命令フェッチの場合のように検索の実行を
保証するために命令バッファ50に充分な位置が記憶さ
れるまで待機する必要はない。なぜならば、分岐を行な
う場合、命令バッファ50の内容の上に、フェッチした
「分岐実行」命令ワードが書き込まれるからである。V
IBAラッチ70のアドレスを用いた命令フェッチでは
、命令バッファ50の内容の上に書き込みが行なわれる
ことはない。
「分岐実行」命令ワードのフェッチを行なう時には、I
VAバスインターフェイス61が、VAクラッチ7の内
容をライン100(第3図)に送信し、オペレーション
が読み取り動作であってフェッチした命令ワードを命令
バッファ5oにロードすべきであることを示すOP  
MCF(3:0)信号をライン101に送信し、全ワー
ドが検索されていることを示すOP  MEM  CX
Tコンテックス1−フィールドをライン103に送信す
る(ステップ125)。メモリ制御器15は、これらの
信号を受け取ると、仮想アドレスを変換してフェッチを
完了できるかどうかを判断する。フェッチを完了できる
場合には、OP  PA  ACK Wi認倍信号ライ
ン104に返送する。
IVAバスインターフェイス61がステップ125で示
された信号を送信した後、フェッチユニット30は、実
行ユニット31から条件コードを受け取る。フェッチュ
ニッ1へは、これらの条件コードから、分岐を行なうべ
きかどうかを判断する(ステップ126)。特に、実行
ユニット31は、各命令に対する条件コードをフェッチ
ュニツ1〜30に送信する。フェッチユニット30は、
条件分岐命令を受けると、条件コードをその受信時に検
査し、分岐を行なうべきかどうかの判断をする。フェッ
チユニットは、「分岐実行」命令を継続もしくはアポ−
I−できるようにし、実行ユニット31は、条件分岐命
令を受け取る必要もないし、これに応答して何等かの動
作を行なう必要もない。
条件コードが分岐を行なうべきでないことを示すと(ス
テップ126)、フェッチユニットは、OP  ABO
RT信号をライン106(第3図)に発生する。次いで
、メモリ制御器15は、「分岐実行J検索要求をアボー
トする6次いで、フェッチユニットは、条件分岐命令を
命令バッファ50からシフトして出し、次の命令へと進
む(即ち、ステップ120へ復帰する)。
然し乍ら、ステップ126において、条件コードが分岐
を行なうべきであることを示すと、仮想アドレスラッチ
57の内容のコピーがプログラムカウンタ73に記憶さ
れる(ステップ130)。
従って、プログラムカウンタは、次に実行すべき「分岐
実行」命令流の第1命令のアドレスを受け取る。次いで
、VAラッチの内容が増加されて、「分岐実行」命令流
の次の命令ワードを識別する(ステップ131)、ラッ
チの内容は、マルチプレクサ65を経て演算論理ユニッ
ト56の入力に接続される。マルチプレクサ55は、演
算論理ユニット56の他方の入力に対し、種々の入力の
装置74から成る定数を選択し、演算論理ユニットは加
算を行なう。その結果は、仮想アドレスラッチ57に記
憶されると共に、マルチプレクサ72を経てVIBAラ
ッチ7Qに記憶される。従って、「分岐実行」命令流の
第2の命令ワードのアドレスは、VAクラッチ7及びV
IBAラッチ70に記憶される。
次いで、IVAバスインターフェイス61は、ラッチ5
7からライン100にアドレス信号を送信すると共に、
適当なコマンド及び長さ信号をライン101及び103
(第3図)に送信し、第2の命令ワードフェッチを実行
する(ステップ132)。
ステップ125において命令ワードフェッチ要求が送信
された成る時間後に、フェッチユニット30によってO
P  ABORT信号が送信されないならば(ステップ
127)、メモリ制御器15は、メモリデータライン1
10(第3図)を経て第1命令ワードを送信する用意が
できると共に、命令バッファ50を識別する行き先きコ
ードがライン111に送信される(ステップ133)。
メモリデータバスインターフェイス62は、命令ワード
を受け取り、これを命令バッファ50に記憶しくステッ
プ134)、新たに検索した命令ワードを命令バッファ
を通してバッファの先頭部ヘシフトし、バッファに命令
ワードを重畳書き込みする。これら命令ワードは、全て
、「分岐非実行」命令流からのものである。その後、メ
モリ制御器は、第2の検索要求(ステップ132で開始
された)から命令ワードを送信し、メモリデータバスイ
ンターフェイス62は、第1データワードに続いて命令
バッファに命令をロードする(ステップ136)。「分
岐実行」命令流から第1命令ワードを受信した(ステッ
プ134)後、フェッチユニット30は、一般のやり方
で命令の処理を開始する(第4図A、ステップ120)
、VAラッチS7のアドレスを用いて「分岐実行」命令
の第2のフェッチを開始した後、フェッチュニツ1〜3
0は、VIBAラッチ70のアドレスを用いて「分岐実
行」命令流から命令をフェッチする。
前記したように5条件分岐の「分岐実行」命令プレフェ
ッチ中以外は、フェッチユニット30は、通常、VIB
Aラッチ70に記憶された仮想アドレスを用いて命令流
の命令ワードを得る。VよりAランチ70の内容を用い
て命令ワードを得るためにフェッチユニット30が使用
するシーケンスを第4図Cに示す。命令バッファがメモ
リ11 (第1図)からの命令ワードの検索を保証する
に充分な空の記憶位置を有している時には、IVAバス
インターフェイス61がVIBAラッチ70の内容をI
VAバス40のライン100に送信し、IBUF  R
EQ命令バッファ要求信号をライン102に発生する(
ステップ140)、メモリ制御器15がこれらの信号を
受信した時、仮想アドレスを変換して転送を実行できる
ならば、よりF  PA  ACK確認(ステップ14
1)信号をライン105(第1図)に送信する。フェッ
チユニット30は、IBF  PA  ACK信号を受
信すると、演算論理ユニット71(第2図A)を用いて
VIBAラッチの内容を増加し、命令流の次のワードを
識別する(ステップ142)。
メモリ制御器15は、命令ワードを検索すると、これを
メモリデータ信号としてライン110に送信し、且つ又
、命令バッファ50を識別する行き先きコード及びMD
  RESP応答信号をライン112に送信する(ステ
ップ143)。次いで、フエツチュニツI−30は、ラ
イン110からバスインターフェイス62を経て命令ワ
ード信号を接続しくステップ144)、これら信号を命
令バッファ50の空の位置に記憶する。
前記したように、第2図Aに示すフエツチュニソ1−3
0の特定の実施例において、命令デコーダ51が条件分
岐命令を識別すると、フエツチュニッ1〜は、(a)「
分岐実行」命令流の第1命令ワードのアドレスを計算し
、(b)命令ワードの検索を開始し、(c)実行ユニッ
ト31から条件コードを受け取り、ここから、条件分岐
を行なうべきか否かを判断し、そして、(d)分岐を行
なうべきでない場合には、メモリ制御器15ヘアポー1
−信号を送信して、検索要求をアポ−1−シ、命令バッ
ファ5oの内容の重畳書き込みを回避する。
上記段階(b)の直後に条件コードが受信されない場合
には、メモリ制御器が「分岐実行」命令流からの第1命
令と共に命令ワードに応答するので、上記段階のタイミ
ング取りが非常に重要であることが明らかであろう。1
つの特定の実施例においては、フェッチユニットが「分
岐実行」命令流から命令ワードの検索を開始するのを禁
止する信号が実行ユニット31からフェッチユニット3
0へ送信される。この禁止信号は、実行ユニットがその
手前の命令の実行から得た条件コードをフェッチユニッ
トに送信する所定時間前に除去される。
この所定時間は、条件コードが分岐を行なうべきでない
ことをフェッチユニットに指示する場合にフェッチユニ
ットが実行ユニットをして「分岐実行j命令のフェッチ
をアポ−1−できるように、選択される。
又、この問題は、他の2つのやり方で処理することもで
きる。先ず第1に、フェッチユニット30に更に別のバ
ッファ(図示せず)を含ませ、このバッファに、「分岐
実行」命令流の命令ワードを最初にロードする。次いで
、フェッチユニット3oが分岐を行なうべきであると判
断した場合には、このバッファの内容を命令バッファ5
0へ転送し、その後の全ての命令検水もここにロードす
ることができる。又、第2に、フェッチユニットのメモ
リデータインターフェイス62は、メモリデータバス4
1からフェッチした「分岐実行」命令ワードの受信を禁
止する回路を備えることができる。これらの構成は、ど
ちらも、命令バッファ50の内容に、メモリ制御器15
によって転送される「分岐実行」命令が重畳書き込みさ
れるのを防止する。然し乍ら、これらの構成は、両方共
、回路の追加を必要とし、コス1−の増加を招く。更に
、フエツチュニツ1〜が「分岐実行」命令のフェッチを
継続すべきかどうかを判断できる場合には。
この判断の後にメモリ制御器がフェッチを続けられるよ
うにすると、フェッチユニット30又は実行ユニット3
1によって開始されたメモリからの他のフェッチに対す
るメモリ制御器の処理が遅れることになる。
以上、特定の実施例について、本発明の詳細な説明した
。然し乍ら、本発明は、種々の基本構造を有するデータ
処理システムにおいて実施しても、或いは、ここに開示
した回路とは異なった内部回路を用いたシステムにおい
て実施しても、本発明の効果の幾つかもしくは全部を達
成できることが明らかであろう、それ故、本発明の真の
精神及び範囲に入るこれらの変更及び修正は全て特許4
1+J求の範囲に包含されるものとする。
【図面の簡単な説明】
第1図は、本発明により構成されたデジタル処理システ
ムのブロック図、 第2図Aは、第1図に示したデータ処理システムに有用
な中央処理ユニットのブロック図、第2図Bは、第2図
Aに示した中央処理ユニットによって処理される命令の
構造を示す図。 第3図は、第2図に示された中央処理ユニットのフェッ
チユニットと、第1図に示されたデータ処理システムの
メモリ制御器との間で転送される信号を示す図、そして 第4図A、B及びCは、第1図ないし第3図に示した中
央処理ユニットの動作を理解する上で有用なフローチャ
ートである。 10・・・中央処理ユニット(プロセッサ)11・・・
メモリアレイ1− 12・・・入/出力要素 13・・・オペレータコンソール 14・・・バス  15・・・メモリ制御器16・・・
メモリアレイ 17・・・アレイバス20・・・入/出
カニニット 21・・・入/出力バス 22.24・・・バスアダプタ 25・・・アダプタバス 26・・・割込み要求/許可バス 30・・・フェッチユニット 31・・・実行ユニット 32・・・オペランドハス 33・・・書き込みバス 34・・・浮動小数点プロセッサ 35・・・コンソールバス 40・・・IVAバス 41・・・メモリデータバス 42・・・EVAバス 50・・・命令ノベツファ51
・・・命令デコーダ 53・・・オペランドインターフェイスS4・・・汎用
レジスタ 56・・・演算論理ユニット 55.60・・・マルチプレクサ 57・・・VAラッチ 61・・・工VAバスインターフェイス62・・・メモ
リデータバスインターフェイス63・・・メモリデータ
ラッチ

Claims (20)

    【特許請求の範囲】
  1. (1)メモリからプログラム命令及びオペランドをフェ
    ッチするためにデジタルデータ処理システムのプロセッ
    サに使用するフェッチユニットにおいて、上記メモリは
    、第1の一連のプログラム命令からのプログラム命令を
    第1の一連の次々の記憶位置に記憶するように複数のア
    ドレス可能な記憶位置を含んでおり、上記プログラム命
    令は、条件分岐命令を含んでいて、これは、上記プロセ
    ッサに所定の状態が生じるのに応答して第2の一連の記
    憶位置に記憶された第2の一連のプログラム命令からの
    プログラム命令を上記フェッチユニットがメモリからフ
    ェッチできるようにするものであり、上記フェッチユニ
    ットは、 A、メモリからオペランドの検索を開始するためのオペ
    ランド検索手段と、 B、メモリから命令の検索を開始するための命令検索手
    段と、 C、上記オペランド検索手段及び上記命令検索手段に接
    続されていて、その動作を制御するための制御手段とを
    備えており、この制御手段は、条件分岐命令の受信に応
    答して、上記オペランド検索手段を作動可能とし、プロ
    セッサが所定状態の発生を指示するのに応じて上記第2
    の一連のプログラム命令からの命令を上記メモリから検
    索し始めることができるようにすることを特徴とするフ
    ェッチユニット。
  2. (2)上記オペランド検索手段及び命令検索手段の両方
    は、各々のオペランド又は命令のメモリアドレスを計算
    する手段を含み、上記制御手段は、上記所定状態の有無
    を指示するプロセッサからの信号を受信する手段を備え
    ている特許請求の範囲第(1)項に記載のフェッチユニ
    ット。
  3. (3)オペレーションコードと、オペランドのメモリ位
    置を定めるオペランド指定子とで構成される命令を記憶
    するバッファ手段を更に備え、A、上記オペランド検索
    アドレス計算手段は、(i)オペランドのメモリアドレ
    スを決定するように命令内の各オペランド指定子をデコ
    ードする手段と、 (ii)上記デコード手段に接続されていてデコードさ
    れたオペランドアドレスを記憶する手段とを備え、 B、上記制御手段は、上記命令バッファが条件分岐命令
    を含む時に条件分岐命令のオペレーションコードに応答
    して、上記オペランド検索アドレス計算手段が条件分岐
    命令のオペランド指定子をデコードできるようにすると
    共に、第2の一連のプログラム命令からの命令を上記メ
    モリから検索開始できるようにする手段を備えている特
    許請求の範囲第(2)項に記載のフェッチユニット。
  4. (4)条件分岐命令のオペランド指定子は、条件分岐命
    令から第2の一連のプログラム命令へのアドレス可能な
    記憶位置の変位を定め、 A、上記オペランド検索手段は、更に、プログラムカウ
    ンタレジスタを含み、 B、上記制御手段は、 (i)上記プログラムカウンタレジスタの内容及び上記
    条件分岐命令のオペランド指定子の両方をオペランド検
    索手段のアドレス計算手段に接続できるようにする手段
    と、 (ii)上記オペランド検索手段のアドレス検索手段が
    加算を行なってその和を上記オペランドアドレス記憶手
    段に記憶できるようにする手段とを含み、 C、上記オペランド検索手段は、更に、上記オペランド
    アドレス記憶手段の内容を用いて上記第2の一連の命令
    からの命令の検索を開始し、検索した命令を上記命令バ
    ッファ手段に記憶する手段を備えている特許請求の範囲
    第(3)項に記載のフェッチユニット。
  5. (5)上記命令検索手段は、更に、 A、第1の一連の命令のうちの次の命令のメモリアドレ
    スを記憶するための命令アドレス記憶手段と、 B、上記命令アドレス記憶手段に接続されていて、上記
    命令アドレス記憶手段の内容によって識別された記憶位
    置の内容の検索を開始するようにメモリへ要求を発する
    手段とを備え、 C、上記命令アドレス計算手段は、上記命令アドレス記
    憶手段及び上記検索開始手段に接続されていて、上記命
    令アドレス記憶手段の内容が使用された時に上記命令ア
    ドレス記憶手段の内容を増加する特許請求の範囲第(4
    )項に記載のフェッツユニット。
  6. (6)上記オペランド検索手段のアドレス計算手段及び
    上記命令アドレス記憶手段に接続された結合手段を更に
    備え、上記制御手段は、上記命令バッファが条件分岐命
    令を記憶する時に上記結合手段が第2の一連の命令のア
    ドレスを、上記命令アドレス記憶手段に記憶すべく結合
    できるようにする特許請求の範囲第(5)項に記載のフ
    ェッチユニット。
  7. (7)上記制御手段は、更に、上記プロセッサに所定の
    状態が生じるのに応答して上記オペランドアドレス記憶
    手段の内容を上記プログラムカウンタに記憶できるよう
    にする手段を備えた特許請求の範囲第(4)項に記載の
    フェッチユニット。
  8. (8)インターフェイス手段を更に備え、このインター
    フェイス手段は、 A、アドレス、コマンド及びメモリ制御信号をメモリに
    送信する手段を備え、コマンド信号は、命令及びオペラ
    ンドを含むデータ信号を上記メモリが上記フェッチユニ
    ットに転送できるようにする信号を含み、上記メモリ制
    御信号は、アボート信号を含み、上記メモリは、このア
    ボート信号の受信に応答して、アドレスされた位置の内
    容をフェッチユニットに送信しないようにし、 B、更に、上記メモリからデータ信号を受信する手段と
    、 C、上記所定状態がないことを指示するプロセッサから
    の信号に応答して上記インターフェイス手段からメモリ
    への上記アボート信号の送信を可能にする手段とを備え
    た特許請求の範囲第(2)項に記載のフェッチユニット
  9. (9)上記インターフェイス手段は、更に、A、上記イ
    ンターフェイス手段からのアドレス、コマンド及びメモ
    リ制御信号の受信に応答してメモリによって送られたメ
    モリからの確認信号を受け取る手段と、 B、メモリからの応答信号をデータ信号と共に受け取り
    、上記インターフェイス手段がデータ信号を受信できる
    ようにする手段とを備えている特許請求の範囲第(8)
    項に記載のフェッチユニット。
  10. (10)デジタルデータ処理システムを構成するように
    メモリユニットに接続される中央処理ユニットにおいて
    、上記メモリは、プログラム命令と、命令の処理に用い
    るオペランドとを一連の次々の記憶位置に記憶するよう
    に複数のアドレス可能な記憶位置を含んでおり、命令の
    1つは、条件分岐命令であって、これは、上記中央処理
    ユニットに所定の状態が生じるのに応答して第2の一連
    の記憶位置からのプログラム命令を上記中央処理ユニッ
    トが処理できるようにするものであり、上記中央処理ユ
    ニットは、 A、メモリユニットから検索された命令を記憶するため
    のバッファと、 B、上記第1の組の記憶位置からプログラム命令を検索
    して上記命令バッファに記憶するように上記命令バッフ
    ァに接続される命令検索手段と、C、上記メモリユニッ
    トからオペランドを検索するためのオペランド検索手段
    と、 D、上記バッファ、上記命令検索手段及び上記オペラン
    ド検索手段とに接続されていて、その動作を制御するた
    めの制御手段とを備え、この制御手段は、上記バッファ
    の分岐命令に応答して、上記オペランド検索手段が上記
    第2の組の命令記憶位置からプログラム命令を検索して
    上記命令バッファに記憶できるようにすることを特徴と
    する中央処理ユニット。
  11. (11)所定の状態の有無に応答して分岐を行なうべき
    かどうか判断する手段を更に備え、上記オペランド検索
    手段は、更に、上記処理手段が分岐を行なうべきでない
    と判断した場合に上記オペランド検索手段による命令の
    フェッチを不能にする手段を備えている特許請求の範囲
    第(10)項に記載の中央処理ユニット。
  12. (12)上記命令バッファは、多位置記憶バッファと、
    上記記憶バッファに残っている命令を、所定状態の発生
    に応答して上記第1の組の命令から排除する制御手段と
    を備えた特許請求の範囲第(11)項に記載の中央処理
    ユニット。
  13. (13)上記オペランド検索手段及び命令手段の両方は
    、各オペランド又は命令のメモリアドレスを計算する手
    段を備えた特許請求の範囲第(11)項に記載の中央処
    理ユニット。
  14. (14)A、上記バッファに記憶された命令は、オペレ
    ーションコードと、オペランドのメモリ位置を定めるオ
    ペランド指定子とを含み、 B、上記オペランド検索アドレス計算手段は、(i)オ
    ペランドのメモリアドレスを決定するように命令内の各
    オペランド指定子をデコードする手段と、 (ii)上記デコード手段に接続されていて、デコード
    されたオペランドアドレスを記憶する手段とを備え、 C、上記制御手段は、上記命令バッファが条件分岐命令
    を含む時に、条件分岐命令のオペレーションコードに応
    答して、上記オペランド検索アドレス計算手段が、条件
    分岐命令のオペランド指定子をデコードすると共に、第
    2の一連のプログラム命令からの命令をメモリから検索
    し始めることができるようにする手段を含む特許請求の
    範囲第(13)項に記載の中央処理ユニット。
  15. (15)条件分岐命令のオペランド指定子は、条件分岐
    命令から第2の一連の記憶位置へのアドレス可能な記憶
    位置の変位を定め、 A、上記オペランド検索手段は、更に、プログラムカウ
    ンタレジスタを含み、 B、上記制御手段は、 (i)上記プログラムカウンタレジスタの内容及び上記
    条件分岐命令のオペランド指定子の両方をオペランド検
    索手段のアドレス計算手段に接続できるようにする手段
    と、 (ii)上記オペランド検索手段のアドレス検索手段が
    加算を行なってその和を上記オペランドアドレス記憶手
    段に記憶できるようにする手段とを含み、 C、上記オペランド検索手段は、更に、上記オペランド
    アドレス記憶手段の内容を用いて上記第2の一連の記憶
    位置からの命令の検索を開始し、検索した命令を上記命
    令バッファ手段に記憶する手段を備えている特許請求の
    範囲第(14)項に記載の中央処理ユニット。
  16. (16)上記命令検索手段は、更に、 A、第1の一連の命令のうちの次の命令のメモリアドレ
    スを記憶するための命令アドレス記憶手段と、 B、上記命令アドレス記憶手段に接続されていて、上記
    命令アドレス記憶手段の内容によって識別された記憶位
    置の内容の検索を開始するようにメモリへ要求を発する
    手段とを備え、 C、上記命令アドレス計算手段は、上記命令アドレス記
    憶手段及び上記検索開始手段に接続されていて、上記命
    令アドレス記憶手段の内容が使用された時に上記命令ア
    ドレス記憶手段の内容を増加する特許請求の範囲第(1
    5)項に記載の中央処理ユニット。
  17. (17)上記オペランド検索手段のアドレス計算手段及
    び上記命令アドレス記憶手段に接続された結合手段を更
    に備え、上記制御手段は、上記命令バッファが条件分岐
    命令を記憶する時に上記結合手段が第2の一連の命令の
    アドレスを、上記命令アドレス記憶手段に記憶すべく結
    合できるようにする特許請求の範囲第(16)項に記載
    の中央処理ユニット。
  18. (18)上記制御手段は、更に、上記プロセッサに所定
    の状態が生じるのに応答して上記オペランドアドレス記
    憶手段の内容を上記プログラムカウンタに記憶できるよ
    うにする手段を備えた特許請求の範囲第(15)項に記
    載の中央処理ユニット。
  19. (19)インターフェイス手段を更に備え、このインタ
    ーフェイス手段は、 A、アドレス、コマンド及びメモリ制御信号をメモリに
    送信する手段を備え、コマンド信号は、命令及びオペラ
    ンドを含むデータ信号を上記メモリが上記フェッチユニ
    ットに転送できるようにする信号を含み、上記メモリ制
    御信号は、アボート信号を含み、上記メモリは、このア
    ボート信号の受信に応答して、アドレスされた位置の内
    容をフェッチユニットに送信しないようにし、 B、更に、上記メモリからデータ信号を受信する手段と
    、 C、プロセッサが上記所定状態が生じないことを検出す
    るのに応答して上記インターフェイス手段からメモリへ
    の上記アボート信号の送信を可能にする手段とを備えた
    特許請求の範囲第(13)項に記載の中央処理ユニット
  20. (20)上記インターフェイス手段は、更に、A、上記
    インターフェイス手段からのアドレス、コマンド及びメ
    モリ制御信号の受信に応答してメモリによって送られた
    メモリからの確認信号を受け取る手段と、 B、メモリからの応答信号をデータ信号と共に受け取り
    、上記インターフェイス手段がデータ信号を受信できる
    ようにする手段とを備えている特許請求の範囲第(19
    )項に記載の中央処理ユニット。
JP60109217A 1984-05-21 1985-05-21 中央処理ユニツトの条件分岐命令のための命令プレフエツチシステム Granted JPS6158044A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US612621 1984-05-21
US06/612,621 US4742451A (en) 1984-05-21 1984-05-21 Instruction prefetch system for conditional branch instruction for central processor unit

Publications (2)

Publication Number Publication Date
JPS6158044A true JPS6158044A (ja) 1986-03-25
JPH0585926B2 JPH0585926B2 (ja) 1993-12-09

Family

ID=24453941

Family Applications (1)

Application Number Title Priority Date Filing Date
JP60109217A Granted JPS6158044A (ja) 1984-05-21 1985-05-21 中央処理ユニツトの条件分岐命令のための命令プレフエツチシステム

Country Status (9)

Country Link
US (1) US4742451A (ja)
EP (1) EP0162778B1 (ja)
JP (1) JPS6158044A (ja)
AU (1) AU576858B2 (ja)
CA (1) CA1226958A (ja)
DE (1) DE3586899T2 (ja)
DK (1) DK221585A (ja)
FI (1) FI851738L (ja)
IE (1) IE851252L (ja)

Families Citing this family (58)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0776917B2 (ja) * 1984-12-29 1995-08-16 ソニー株式会社 マイクロコンピユ−タ
CA1285657C (en) * 1986-01-29 1991-07-02 Douglas W. Clark Apparatus and method for execution of branch instructions
US4991080A (en) * 1986-03-13 1991-02-05 International Business Machines Corporation Pipeline processing apparatus for executing instructions in three streams, including branch stream pre-execution processor for pre-executing conditional branch instructions
JPS6393041A (ja) * 1986-10-07 1988-04-23 Mitsubishi Electric Corp 計算機
JPS63245525A (ja) * 1987-03-31 1988-10-12 Toshiba Corp マイクロプログラム処理装置
US5134561A (en) * 1987-07-20 1992-07-28 International Business Machines Corporation Computer system with logic for writing instruction identifying data into array control lists for precise post-branch recoveries
US5251322A (en) * 1987-08-13 1993-10-05 Digital Equipment Corporation Method of operating a computer graphics system including asynchronously traversing its nodes
US5097411A (en) * 1987-08-13 1992-03-17 Digital Equipment Corporation Graphics workstation for creating graphics data structure which are stored retrieved and displayed by a graphics subsystem for competing programs
JP2583525B2 (ja) * 1987-09-30 1997-02-19 健 坂村 データ処理装置
JP2723238B2 (ja) * 1988-01-18 1998-03-09 株式会社東芝 情報処理装置
US5522053A (en) * 1988-02-23 1996-05-28 Mitsubishi Denki Kabushiki Kaisha Branch target and next instruction address calculation in a pipeline processor
JPH01283635A (ja) * 1988-05-11 1989-11-15 Nec Corp バッファ制御回路
GB8817912D0 (en) * 1988-07-27 1988-09-01 Int Computers Ltd Data processing apparatus
US5101341A (en) * 1988-08-25 1992-03-31 Edgcore Technology, Inc. Pipelined system for reducing instruction access time by accumulating predecoded instruction bits a FIFO
US5050068A (en) * 1988-10-03 1991-09-17 Duke University Method and apparatus for using extracted program flow information to prepare for execution multiple instruction streams
US5099419A (en) * 1988-11-25 1992-03-24 Nec Corporation Pipeline microcomputer having branch instruction detector and bus controller for producing and carrying branch destination address prior to instruction execution
EP0375339A3 (en) * 1988-12-20 1992-02-19 Fujitsu Limited Image processing apparatus and a system using the same
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
JPH02306341A (ja) * 1989-02-03 1990-12-19 Nec Corp マイクロプロセッサ
JP2682217B2 (ja) * 1989-08-28 1997-11-26 日本電気株式会社 マイクロプロセッサ
JP2680899B2 (ja) * 1989-08-28 1997-11-19 日本電気株式会社 情報処理装置及びその制御方法
US5329621A (en) * 1989-10-23 1994-07-12 Motorola, Inc. Microprocessor which optimizes bus utilization based upon bus speed
US5230068A (en) * 1990-02-26 1993-07-20 Nexgen Microsystems Cache memory system for dynamically altering single cache memory line as either branch target entry or pre-fetch instruction queue based upon instruction sequence
JPH0460720A (ja) * 1990-06-29 1992-02-26 Hitachi Ltd 条件分岐命令制御方式
US5226138A (en) * 1990-11-27 1993-07-06 Sun Microsystems, Inc. Method for selectively transferring data instructions to a cache memory
JPH04263322A (ja) * 1991-02-18 1992-09-18 Mitsubishi Electric Corp マイクロコンピュータ
JP2761688B2 (ja) * 1992-02-07 1998-06-04 三菱電機株式会社 データ処理装置
US5423048A (en) * 1992-08-27 1995-06-06 Northern Telecom Limited Branch target tagging
US5659722A (en) * 1994-04-28 1997-08-19 International Business Machines Corporation Multiple condition code branching system in a multi-processor environment
GB9412487D0 (en) * 1994-06-22 1994-08-10 Inmos Ltd A computer system for executing branch instructions
JPH08171491A (ja) * 1994-07-29 1996-07-02 Sun Microsyst Inc ディスパッチされた制御転送命令状態に基づきより高速で命令を先取りするための方法及び装置
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
JPH10214188A (ja) * 1997-01-30 1998-08-11 Toshiba Corp プロセッサの命令供給方法及び装置
JPH1124929A (ja) * 1997-06-30 1999-01-29 Sony Corp 演算処理装置およびその方法
US5951678A (en) * 1997-07-25 1999-09-14 Motorola, Inc. Method and apparatus for controlling conditional branch execution in a data processor
CA2383526A1 (en) 1999-09-01 2001-03-15 Intel Corporation Branch instruction for multithreaded processor
WO2001016702A1 (en) 1999-09-01 2001-03-08 Intel Corporation Register set used in multithreaded parallel processor architecture
US6910123B1 (en) * 2000-01-13 2005-06-21 Texas Instruments Incorporated Processor with conditional instruction execution based upon state of corresponding annul bit of annul code
US6636960B1 (en) * 2000-02-16 2003-10-21 Hewlett-Packard Development Company, L.P. Method and apparatus for resteering failing speculation check instructions
US7681018B2 (en) 2000-08-31 2010-03-16 Intel Corporation Method and apparatus for providing large register address space while maximizing cycletime performance for a multi-threaded register file set
US7216204B2 (en) 2001-08-27 2007-05-08 Intel Corporation Mechanism for providing early coherency detection to enable high performance memory updates in a latency sensitive multithreaded environment
US6868476B2 (en) 2001-08-27 2005-03-15 Intel Corporation Software controlled content addressable memory in a general purpose execution datapath
US7225281B2 (en) * 2001-08-27 2007-05-29 Intel Corporation Multiprocessor infrastructure for providing flexible bandwidth allocation via multiple instantiations of separate data buses, control buses and support mechanisms
US7487505B2 (en) * 2001-08-27 2009-02-03 Intel Corporation Multithreaded microprocessor with register allocation based on number of active threads
US7610451B2 (en) * 2002-01-25 2009-10-27 Intel Corporation Data transfer mechanism using unidirectional pull bus and push bus
US7003649B2 (en) * 2002-03-08 2006-02-21 Hitachi, Ltd. Control forwarding in a pipeline digital processor
US7437724B2 (en) 2002-04-03 2008-10-14 Intel Corporation Registers for data transfers
EP1367493A1 (en) * 2002-05-30 2003-12-03 STMicroelectronics Limited Prefetch buffer
US20030233530A1 (en) * 2002-06-14 2003-12-18 International Business Machines Corporation Enhanced instruction prefetch engine
US7337275B2 (en) * 2002-08-13 2008-02-26 Intel Corporation Free list and ring data structure management
US6941438B2 (en) 2003-01-10 2005-09-06 Intel Corporation Memory interleaving
US9304898B2 (en) * 2011-08-30 2016-04-05 Empire Technology Development Llc Hardware-based array compression
US11868469B2 (en) 2020-08-27 2024-01-09 Ventana Micro Systems Inc. Processor that mitigates side channel attacks by preventing all dependent instructions from consuming architectural register result produced by instruction that causes a need for an architectural exception
US11733972B2 (en) 2020-10-06 2023-08-22 Ventana Micro Systems Inc. Processor that mitigates side channel attacks by providing random load data as a result of execution of a load operation that does not have permission to access a load address
US11907369B2 (en) 2020-08-27 2024-02-20 Ventana Micro Systems Inc. Processor that mitigates side channel attacks by preventing cache memory state from being affected by a missing load operation by inhibiting or canceling a fill request of the load operation if an older load generates a need for an architectural exception
US11797673B2 (en) * 2020-08-27 2023-10-24 Ventana Micro Systems Inc. Processor that mitigates side channel attacks by expeditiously initiating flushing of instructions dependent upon a load instruction that causes a need for an architectural exception
US11734426B2 (en) 2020-10-06 2023-08-22 Ventana Micro Systems Inc. Processor that mitigates side channel attacks by prevents cache line data implicated by a missing load address from being filled into a data cache memory when the load address specifies a location with no valid address translation or no permission to read from the location
US11853424B2 (en) 2020-10-06 2023-12-26 Ventana Micro Systems Inc. Processor that mitigates side channel attacks by refraining from allocating an entry in a data TLB for a missing load address when the load address misses both in a data cache memory and in the data TLB and the load address specifies a location without a valid address translation or without permission to read from the location

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS4979744A (ja) * 1972-12-08 1974-08-01
JPS5339032A (en) * 1976-09-22 1978-04-10 Fujitsu Ltd Branch control system
JPS5875260A (ja) * 1982-09-24 1983-05-06 Hitachi Ltd メモリアクセス制御方式
JPS5890245A (ja) * 1981-11-25 1983-05-28 Nec Corp デ−タ処理装置

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3609700A (en) * 1970-02-24 1971-09-28 Burroughs Corp Data processing system having an improved fetch overlap feature
AU529675B2 (en) * 1977-12-07 1983-06-16 Honeywell Information Systems Incorp. Cache memory unit
US4200927A (en) * 1978-01-03 1980-04-29 International Business Machines Corporation Multi-instruction stream branch processing mechanism
US4236206A (en) * 1978-10-25 1980-11-25 Digital Equipment Corporation Central processor unit for executing instructions of variable length
JPS5943786B2 (ja) * 1979-03-30 1984-10-24 パナフアコム株式会社 記憶装置のアクセス方式
JPS56149646A (en) * 1980-04-21 1981-11-19 Toshiba Corp Operation controller
CA1174370A (en) * 1980-05-19 1984-09-11 Hidekazu Matsumoto Data processing unit with pipelined operands
US4430708A (en) * 1981-05-22 1984-02-07 Burroughs Corporation Digital computer for executing instructions in three time-multiplexed portions
US4435756A (en) * 1981-12-03 1984-03-06 Burroughs Corporation Branch predicting computer
US4439827A (en) * 1981-12-28 1984-03-27 Raytheon Company Dual fetch microsequencer

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS4979744A (ja) * 1972-12-08 1974-08-01
JPS5339032A (en) * 1976-09-22 1978-04-10 Fujitsu Ltd Branch control system
JPS5890245A (ja) * 1981-11-25 1983-05-28 Nec Corp デ−タ処理装置
JPS5875260A (ja) * 1982-09-24 1983-05-06 Hitachi Ltd メモリアクセス制御方式

Also Published As

Publication number Publication date
CA1226958A (en) 1987-09-15
DE3586899T2 (de) 1993-07-15
EP0162778A2 (en) 1985-11-27
EP0162778B1 (en) 1992-12-16
DK221585A (da) 1985-11-22
FI851738L (fi) 1985-11-22
FI851738A0 (fi) 1985-05-02
US4742451A (en) 1988-05-03
DE3586899D1 (de) 1993-01-28
IE851252L (en) 1985-11-21
AU4266085A (en) 1985-11-28
EP0162778A3 (en) 1988-02-24
DK221585D0 (da) 1985-05-20
JPH0585926B2 (ja) 1993-12-09
AU576858B2 (en) 1988-09-08

Similar Documents

Publication Publication Date Title
JPS6158044A (ja) 中央処理ユニツトの条件分岐命令のための命令プレフエツチシステム
EP0380859B1 (en) Method of preprocessing multiple instructions
EP0391517B1 (en) Method and apparatus for ordering and queueing multiple memory access requests
EP0057788B1 (en) Data processing system with external microcode control unit
JP2846406B2 (ja) 分岐処理方法及び分岐処理装置
US4149244A (en) Data processing system including a program-executing secondary system controlling a program-executing primary system
US4961162A (en) Multiprocessing system for performing floating point arithmetic operations
US5509137A (en) Store processing method in a pipelined cache memory
EP0405495B1 (en) Instruction unit logic management apparatus included in a pipelined processing unit and method therefor
JPS6255736A (ja) デジタルプロセッサ制御装置
WO1986000434A1 (en) Method and apparatus for a compare and swap instruction
US4244019A (en) Data processing system including a program-executing secondary system controlling a program-executing primary system
JPH0789319B2 (ja) デ−タ処理装置における先行制御装置
US5515521A (en) Circuit and method for reducing delays associated with contention interference between code fetches and operand accesses of a microprocessor
JPH0564813B2 (ja)
US5119484A (en) Selections between alternate control word and current instruction generated control word for alu in respond to alu output and current instruction
JPS6112289B2 (ja)
US5276853A (en) Cache system
EP0292188B1 (en) Cache system
JP2680828B2 (ja) ディジタル装置
JPH0510694B2 (ja)
JPS60225262A (ja) 2重キヤツシユメモリを有するパイプラインプロセツサ
JPS61110238A (ja) マイクロプログラム式並列プロセツサ
JPS5815810B2 (ja) デジタル処理装置
JPS62245439A (ja) シンボリツク処理システムおよび方法