Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JPS635777B2 - - Google Patents
[go: Go Back, main page]

JPS635777B2 - - Google Patents

Info

Publication number
JPS635777B2
JPS635777B2 JP83500289A JP50028983A JPS635777B2 JP S635777 B2 JPS635777 B2 JP S635777B2 JP 83500289 A JP83500289 A JP 83500289A JP 50028983 A JP50028983 A JP 50028983A JP S635777 B2 JPS635777 B2 JP S635777B2
Authority
JP
Japan
Prior art keywords
instruction
condition
instructions
module
state
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.)
Expired
Application number
JP83500289A
Other languages
English (en)
Other versions
JPS58502115A (ja
Inventor
Hanan Hotashu
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.)
Unisys Corp
Original Assignee
Unisys 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 Unisys Corp filed Critical Unisys Corp
Publication of JPS58502115A publication Critical patent/JPS58502115A/ja
Publication of JPS635777B2 publication Critical patent/JPS635777B2/ja
Granted 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/30094Condition code generation, e.g. Carry, Zero flag
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3842Speculative instruction execution
    • G06F9/3844Speculative instruction execution using dynamic branch prediction, e.g. using branch history tables
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3842Speculative instruction execution
    • G06F9/3846Speculative instruction execution using static prediction, e.g. branch taken strategy

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)

Description

請求の範囲 1 プログラムとして構成される複数個のインス
トラクシヨンをストアするためのメモリ手段を備
え、 前記プログラムは、検査されるべき条件を特定
する前記プログラムのそれぞれのロケーシヨンに
おける条件付ブランチインストラクシヨンを含
み、 パイプライン化された態様で同時に前記プログ
ラムの異なるインストラクシヨンをそれぞれ取出
しかつ実行するためのインストラクシヨン先取り
手段およびインストラクシヨン実行手段をさらに
備え、 前記ロケーシヨンの各々における前記条件付ブ
ランチインストラクシヨンはさらに、検査される
べき条件の状態を予測する多数のエンコーデイン
グを有し、 前記先取り手段が前記条件付ブランチインスト
ラクシヨンの1個を取出したときを検出しかつ前
記取出された条件付ブランチインストラクシヨン
においてエンコードされた検査されるべき条件の
予測された状態に基づき次のインストラクシヨン
を取出す制御手段と、 前記取出された条件付ブランチインストラクシ
ヨンの前記エンコーデイングをそのメモリロケー
シヨンにおいて予め定められる態様で変化させ
て、前記条件の予測された状態がそのインストラ
クシヨンが実行されるときの前記条件の実際の状
態と等しかつたか否かを示すための書込手段とを
さらに備え、 前記書込手段は、前記取出された条件付ブラン
チインストラクシヨンが実行された最後の2回に
わたつて前記予測された状態が前記条件の実際の
状態と等しくなかつたときに、前記取出された条
件付ブランチインストラクシヨンへエンコードさ
れる前記条件の予測された状態を変化させる、改
良されたデイジタル装置。 2 プログラムとして構成される複数個のインス
トラクシヨンをストアするためのメモリ手段を備
え、 前記プログラムにおけるあるロケーシヨンにお
ける条件付ブランチインストラクシヨンは、検査
されるべき条件を特定し、前記条件のある状態を
予測し、かつ前記あるロケーシヨンにおける前記
インストラクシヨンが最後に実行されたときに前
記予測された状態が前記条件の実際の状態に等し
かつたことを示す第1のエンコーデイングを有
し、かつ 前記プログラムにおける他のロケーシヨンにお
ける他の条件付ブランチインストラクシヨンは、
検査されるべき同じ条件を特定し、前記条件の前
記同じ状態を予測するが、前記他のロケーシヨン
の前記インストラクシヨンが最後に実行されたと
きに前記予測された状態が前記条件の実際の状態
に等しくなかつたことを示す第2のエンコーデイ
ングを有し、 条件付ブランチインストラクシヨンの前記エン
コーデイングを、そのインストラクシヨンが実行
されるときに、そのメモリロケーシヨンにおいて
変化させて、前記予測された状態が前記命令の実
行期間中に前記条件の実際の状態と等しかつたか
または等しくなかつたかを示すための書込手段を
さらに備え、 前記書込手段は、1つの行において2回にわた
つて、予測された状態が前記条件の実際の状態と
マツチしないときに、前記取出された条件付ブラ
ンチインストラクシヨンへエンコードされる前記
条件の予測された状態を変化させる、プログラマ
ブルデイジタル装置。 3 プログラムとして構成された複数個のインス
トラクシヨンをストアするためのメモリ手段を備
え、 前記インストラクシヨンの少なくとも1つは、
検査されるべき条件を特定する条件付ブランチイ
ンストラクシヨンであり、 前記条件付ブランチインストラクシヨンは、前
記条件の第1の状態をそれぞれ予測する1個以上
のエンコーデイングを有し、かつ、条件の第2の
状態をそれぞれ予測する1個以上のエンコーデイ
ングを有し、かつ 前記複数のエンコーデイングはまた、前記条件
の前記予測された状態が、前記条件付ブランチイ
ンストラクシヨンの前の実行の間に前記条件の実
際の状態といかに比較されたかのヒストリを与
え、 前記条件付ブランチインストラクシヨンの前記
エンコーデイングをそのメモリロケーシヨンにお
いて予め定める態様で変化させて、そのインスト
ラクシヨンが実行されるごとに前記条件の予測さ
れた状態が前記条件の実際の状態に等しかつたか
否かを示し、かつ予測された状態が、前記条件付
ブランチインストラクシヨンが実行された最後の
2回前記条件の実際の状態とマツチしなかつたと
きに、前記条件付ブランチインストラクシヨンへ
エンコードされる前記条件の予測された状態を変
化させる書込手段をさらに備える、プログラマブ
ルデイジタル装置。 4 前記条件付ブランチインストラクシヨンは4
つのエンコーデイングを有しており、前記4つの
エンコーデイングは、それぞれ、前記条件に対す
る真の状態を予測しかつ最後の予測が正しかつた
ことを示し、前記条件の真の状態を予測しかつ最
後の予測が誤りであつたことを示し、前記条件に
対する偽の状態を予測しかつ最後の予測が正しか
つたことを示し、さらに前記条件に対する偽の状
態を予測しかつ最後の予測が誤りであつたことを
示す、請求の範囲第3項記載の装置。 発明の背景 この発明はデイジタルコンピユータのアーキテ
クチヤに関するものであり、より特定的には、こ
の発明はパイプライン態様で同時にいくつかの異
なるインストラクシヨンで作動するデイジタルコ
ンピユータのアーキテクチヤに関するものであ
る。 この発明をより良く理解するために、パイプラ
イン化したデイジタルコンピユータの基本モジユ
ールを図解した第1図を参照する。この第1図の
コンピユータはインストラクシヨン先取モジユー
ル(IPF),実行モジユール(EX)、およびメモ
リモジユール(M)を含む。さらに、実行モジユ
ールはアドレスモジユール(A)、オペランドモジユ
ール(O)、および計算モジユール(C)を含む。 モジユールIPF,A,OおよびCは同時にプロ
グラムの異なるインストラクシヨンで作動する。
そのプログラムにおけるインストラクシヨンのす
べてはメモリモジユールMにストアされる。モジ
ユールIPFはメモリモジユールMからのインスト
ラクシヨンを取出す働きをし、モジユールAはイ
ンストラクシヨンにおいて要求されるオペランド
のアドレスを形成する働きをし、モジユールOは
モジユールAによつて形成されるアドレスである
オペランドを取出し、かつモジユールCはモジユ
ールOにより取出されたオペランドについて計算
し、メモリモジユールMにその結果をストアする
働きをする。 任意の1個のモジユールが上述した機能を行な
つた後、そのモジユールはその結果を次のモジユ
ールへ通す。その次のモジユールは、次いで、そ
の上述の機能を行ない、新しい結果を次のモジユ
ールへ通す。このように、モジユールIPF,A,
OおよびCはインストラクシヨンが通過する“パ
イプライン”を形成し、かつバス10,11およ
び12はそのモジユールがそれらの結果をパイプ
ラインを介して次のモジユールへ通過させる手段
を与える。 バス13,14,15および16はまた、モジ
ユールIPF,A,OおよびCがそれぞれ、それら
の上述の機能を行ないながらメモリモジユールへ
情報の種々のアイテムを読出しおよび/または書
込む手段として提供される。たとえば、モジユー
ルIPFはメモリからインストラクシヨンを取出す
ためにバス13を用い、モジユールAはオペラン
ドアドレスを形成するために必要とされるメモリ
からインデツクスレジスタを取出すためにバス1
4を用い、モジユールOはバス15を用いてモジ
ユールAによつて形成されるアドレスでメモリか
らオペランドを取出し、かつモジユールCはバス
16を用いて計算された結果をメモリへ戻してス
トアする。 第2図は、第1図のコンピユータが9個のイン
ストラクシヨンI1ないしI9からなるプログラ
ムを実行するシーケンスをより詳細に示す。これ
らのインストラクシヨンはメモリMに存在するも
のとして第1図に図解される。インストラクシヨ
ンI1ないしI9は逐次的にメモリで互いに続
き、かつインストラクシヨンI5は条件付きブラ
ンチインストラクシヨンである。それは条件を検
査し、その条件が真であればインストラクシヨン
I1へ戻るように分岐、その条件が偽であればイ
ンストラクシヨンI6へ分岐する。 条件付きブランチインストラクシヨンのための
典型的なフオーマツトは参照数字17で示すよう
な、OPコード(OP)およびブランチアドレス
(BA)からなる。OPコードOPは条件付きブラン
チであるものとしてインストラクシヨンを識別し
かつ検査されるべき条件を識別する1および0の
1個の予め割当てられた組合わせである。たとえ
ば、バロースB4800コンピユータの2進化10進22
は等しい場合のブランチを特定し、それに対し2
進化10進25は等しくない場合のブランチを特定す
る。BAは特定した条件が真であれば次に実行さ
れるべきインストラクシヨンのメモリモジユール
Mにおけるアドレスである。 第2図のサイクル1の間、モジユールIPFはイ
ンストラクシヨンI1を取出す。その後、サイク
ル2の間、モジユールAはインストラクシヨンI
1によつて必要とされるオペランドのアドレスを
形成し、他方、モジユールIPFは同時にインスト
ラクシヨンI2を取出す。この動作シーケンスは
条件付きブランチインストラクシヨンI5がモジ
ユールIPFによつて取出されるサイクル5を通じ
て、第2図に示されるようなパイプライン化され
た態様で続く。 条件付きブランチインストラクシヨンI5を取
出した後、モジユールIPFは次のインストラクシ
ヨンとしてインストラクシヨンI1またはインス
トラクシヨンI6を取出すべきかどうかを決定す
る必要がある。もしインストラクシヨンI5によ
つて検査されるべき条件がそのインストラクシヨ
ンがモジユールIPFによつて取出された後すぐに
テストする状態であればこれは何ら問題はない。
しかし、その条件が先行するインストラクシヨン
I4によつて変化されることができ、そのためそ
の条件はインストラクシヨンI4がパイプライン
の最終モジユールCにより行なわれるまで検査の
ためには利用できないであろう。これは、第2図
に示すように、サイクル7が終るときに生じる。 実際の条件自体はちようど1ビツトであつても
よく、または全計算シーケンスの結果であつても
よい。たとえば、IBM360コンピユータおよび
IBM370コンピユータは“条件コード”と呼ばれ
るフリツプフロツプの組を含み、かつコンピユー
タがテストし得る各可能な条件は条件コードのフ
リツプフロツプにストアされる。条件コードのう
ちの1個が“イコール”であり、かつコンピユー
タが演算インストラクシヨンを行なつた直後に自
動的に“1”にセツトされまたは“0”にリセツ
トされる。 いくつかの先行技術におけるパイプライン化さ
れたコンピユータにおいてモジユールIPFは常に
ブランチアドレスBAでインストラクシヨンを取
出し、続いて条件付きブランチインストラクシヨ
ンを取出す。この動作が第2図のサイクル6に示
されており、インストラクシヨンI1はモジユー
ルIPFによつて取出される。その後で、サイクル
7および8において、インストラクシヨンI2お
よびI3はそれぞれモジユールIPFによつて取出
される。次に、サイクル8で、モジユールCはイ
ンストラクシヨンI5によつて特定される条件が
インストラクシヨンI1,I2,およびI3がサ
イクル6,7および8の間モジユールIPFによつ
て取出されるべきであつたようなものであつたか
どうかを決定する。 インストラクシヨンI6が代わりに取出される
べきであつたならば、そのことがモジユールCに
よつて、制御ライン18を介してモジユール
IPF,AおよびOへ信号で知らされる。この信号
に応答し、モジユールIPFはそれぞれサイクル
9,10および11の間インストラクシヨンI
6,I7およびI8を取出し、かつモジユール
A,OおよびCはインストラクシヨンI1,I2
およびI3で任意のさらに他の動作より先んず
る。 しかしながら、多数のサイクルは役に立たない
動作を行なうので多くのサイクルが無駄であると
いう問題がこのシーケンスの動作にはある。上述
の例において、モジユールIPFはサイクル6ない
し8を無駄にする。典型的には、プログラムは数
千の条件付きブランチインストラクシヨンを含
み、かつこれらの無駄になつたサイクルはコンピ
ユータのスループツトを意義深く減少させる。 これらの無駄になつたサイクルの数を減少させ
る1つの方法は、コンピユータがテストし得る条
件ごとに条件付き予測子フリツプフロツプを付加
することである。たとえば、1個の条件付き予測
子フリツプフロツプは等しい場合のブランチ
(branch−if−equal)インストラクシヨンによつ
て検査される“イコール”条件のために付け加え
られることができ、かつそのフリツプフロツプは
それが検査された最後の数回にわたりその条件の
実際の状態に基づき、“イコール”条件のために
真または偽の予測した状態を示すであろう。次
に、条件付きブランチインストラクシヨンがモジ
ユールIPFにより見つけられると、次のインスト
ラクシヨンが、条件予測子フリツプフロツプにス
トアされ検査されている条件の予測した状態に基
づき取出される。 しかしこの機構はなおも数多くのサイクルを無
駄にする。その理由は第3図を観察することによ
つてわかる。そこには、インストラクシヨンI1
0ないしI23からなるプログラムが図解されて
おり、インストラクシヨンI14およびI16は
条件付きブランチインストラクシヨンである。 インストラクシヨンI14からインストラクシ
ヨンI20へのブランチはあまり頻繁に行なわれ
ないものとし、それに対しインストラクシヨンI
16からI10へのブランチは非常に頻繁に行な
われるものと想定する。これは非常に実用的な可
能性である。なぜならばインストラクシヨンI1
3はインストラクシヨンI14が検査する例外条
件のための比較を行なつており、かつインストラ
クシヨンI15はインストラクシヨンループI1
0−I16が繰返されるべきであるかどうかを示
すための“イコール”条件をセツトまたはリセツ
トしているからである。 このように、条件付きブランチインストラクシ
ヨンI16による第3図のプログラムにおける無
駄なサイクルを最小にするために、予測した“イ
コール”条件は真であるべきである。しかし、同
時に、条件付きブランチインストラクシヨンI1
4による無駄なサイクルを最小にするために、予
測したイコール条件は偽でなければならない。こ
のように、条件の1個の予測した状態が、プログ
ラムにおける或る場所での条件付きブランチイン
ストラクシヨンにより生じる無駄なサイクルを最
小にする一方で、プログラムにおける他の場所で
の条件付きブランチインストラクシヨンにより生
じる無駄なサイクルを最大にするというジレンマ
がある。 このジレンマは条件予測子フリツプフロツプの
ための1つの状態を選択することによつて、かつ
次にその1個の予測した状態が常に正しい予測で
あるようにプログラムを再構成することによつて
表面上は避けられるかもしれない。たとえば、条
件予測子フリツプフロツプは、“イコール”条件
が偽であり、“ノツトイコール”条件が真である
ということを示すものと想定する。次に、条件付
きブランチインストラクシヨンI14は“イコー
ルでない場合のブランチ(branch−if−not−
equal)”インストラクシヨンに変えられ、インス
トラクシヨンI20−I23が直接インストラク
シヨンI14に続くメモリロケーシヨンへ移動さ
れ、かつインストラクシヨンI15−I19はI
14から遠く隔たつたいくつかのメモリロケーシ
ヨンへ移動されるものと想定する。これらの変化
では、比較的高速なブランチは、インストラクシ
ヨンI14から遠く隔たつたその新しいロケーシ
ヨンでインストラクシヨンI14からインストラ
クシヨンI15へ生じ、かつ前に説明したよう
に、インストラクシヨンI16からインストラク
シヨンI10への比較的高速なブランチが生じ
る。 しかし、インストラクシヨンのこのような構成
は、プログラム(図示せず)の多くの他の部分に
よつて用いられるサブルーチンをインストラクシ
ヨンI20−I23が形成するような状況に対し
てはメモリスペースを非常に浪費する。その場
合、それが実行速度を増大するために上述したよ
うに用いられるたびごとにI20−I23コード
を繰返す必要があろう。そして、長いまたはしば
しば用いられサブルーチンのためのコードは繰返
しは非実用的なほどに多くのメモリを用いる。さ
らに、そのようなタスクは非常に莫大なもので時
間がかかるので実行時間を増大するために上述し
た態様で数千およびさらには数百万ものインスト
ラクシヨンを含む予め存在するプログラムを再構
成するというのは非実用的である。 したがつて、この発明の主たる目的は先行技術
についての上述した無駄なサイクルが実質的に最
小化されるパイプライン化された形式で同時にプ
ログラムのいくつかのインストラクシヨンを実行
するデイジタルコンピユータを提供することであ
る。 この発明の他の目的は、条件付ブランチインス
トラクシヨンの分岐予測の修正が不必要な場合に
そのような修正が生じることを防止できるデイジ
タルコンピユータを提供することである。 発明の簡単な概要 この目的および他の目的はプログラムとして構
成される複数個のインストラクシヨンをストアす
るためのメモリ手段を提供することによつてこの
発明に従つて達成され、それらのインストラクシ
ヨンのいくつかは条件付きブランチインストラク
シヨンであり、各条件付きブランチインストラク
シヨンは条件を検査し、かつその条件の状態に基
づき1個のインストラクシヨンまたは他のインス
トラクシヨンへ分岐し、かつ各条件付きブランチ
インストラクシヨンはさらに、検査されるべき条
件の状態を予測する多数のエンコーデイングを有
し、各条件付ブランチインストラクシヨンはま
た、条件の予測した状態が、取出された条件付ブ
ランチインストラクシヨンの前の実行の間の条件
の実際の状態といかに比較されたかのヒストリを
与えるようにエンコードされる。
【図面の簡単な説明】
この発明の種々の特徴および利点は添付図面を
参照して詳細な説明において説明される。 第1図は先行技術の任意のパイプライン化され
たデイジタルコンピユータの基本的コンポーネン
トを示す。 第2図は第1図のパイプライン化されたデイジ
タルコンピユータの動作を示す。 第3図は第1図のパイプライン化されたデイジ
タルコンピユータにおいて無駄なサイクルを生じ
る1対の条件付きブランチインストラクシヨンを
有するプログラムを示す。 第4A図および第4B図はこの発明により構成
されるパイプライン化されたデイジタルコンピユ
ータにおける無駄なサイクルを大幅に減少した2
個の条件付きブランチインストラクシヨンのエン
コーデイングを示す。 第5A図および第5B図はこの発明により構成
されるパイプライン化されたデイジタルコンピユ
ータにおける無駄なサイクルを大幅に減少した2
個の条件付きブランチインストラクシヨンの他の
エンコーデイングを示す。 第6図はこの発明により構成されるデイジタル
コンピユータにより第5A図および第5B図のイ
ンストラクシヨンのエンコーデイングが更新され
るシーケンスを示す状態図である。 第7図はこの発明により構成されるデイジタル
コンピユータの1つの好ましい実施例の詳細回路
を示す。
【発明の詳細な説明】
この発明の好ましい一実施例を第4A図ないし
第5B図を参照して詳細に説明する。この実施例
において、複数個のインストラクシヨンはプログ
ラムとして構成されかつ条件付きブランチインス
トラクシヨンはそのプログラムにおけるいくつか
の場所に存在する。これらのいくつかの場所にお
ける各条件付きブランチインストラクシヨンは1
個の条件を検査する。しかし、各条件付きブラン
チインストラクシヨンはいくつかの可能なエンコ
ーデイングを有し、かつ各場所のエンコーデイン
グはその場所のブランチインストラクシヨンによ
り検査されるべき条件の状態を予測する。 たとえば、検査されている1つの条件がイコー
ル条件であるものと想定する。次に、この発明に
よるイコールインストラクシヨンについてのブラ
ンチの適当なエンコーデイングが第4A図に示さ
れる。OPコードは16進A2またはB2のいずれ
かとして与えられる。これらのエンコーデイング
の双方はイコール条件がテストされるべきである
ことを特定し、かつイコール条件が真であればア
ドレスBAのインストラクシヨンへ分岐が行なわ
れる。しかし、さらに、OPコードA2は、イコ
ール条件が検査されるときに真であろうというこ
とを予測するのに対し、OPコードB2はイコー
ル条件が検査されるときに偽であろうということ
を予測する。これらのOPコードはイコール条件
がそのロケーシヨンで検査されるときに最も真ま
たは偽になりそうであるかどうかということに基
づいて、ブランチまたはイコールインストラクシ
ヨンが生じる各ロケーシヨンでA2またはB2の
いずれかであるようにプログラムにおいて選択的
に構成されている。たとえば、第3図を参照する
とインストラクシヨンI14によつて検査される
イコール条件はほとんど常に偽であると説明され
ており、そのためインストラクシヨンI14の
OPコードはB2としてエンコードされる。逆に、
インストラクシヨンI16によつて検査されるイ
コール条件はほとんど常に真であると説明された
ので、インストラクシヨンI16のOPコードは
A2としてエンコードされよう。 そこで、この発明によれば、インストラクシヨ
ン先取モジユールはインストラクシヨンI14お
よびI16を取出すと、これらのインストラクシ
ヨンへエンコードされる予測された条件を検出
し、それらの予測に基づいて次のインストラクシ
ヨンを取出す。これは、順次、第2図および第3
図を参照して議論した非常に多くの無駄なサイク
ルを除去する。なぜならば、この発明において、
条件の予測した状態はその条件を検査するインス
トラクシヨンの場所に相関し、その条件自体に単
純に相関しない。 ノツトイコール条件を検査する条件付きブラン
チインストラクシヨンのための同様なエンコーデ
イングを第4B図に示す。そこでは、16進OPコ
ードA5およびB5はともに、ノツトイコール条
件が検査されるべきであり、ノツトイコール条件
が真であればロケーシヨンBAのインストラクシ
ヨンへ分岐すべきであるということを特定する。
しかし、さらに、エンコーデイングA5はノツト
イコール条件が真であろうということを予測し、
かつエンコーデイングB5はノツトイコール条件
が偽であろうということを予測する。そのため、
たとえば、第3図のプログラムのインストラクシ
ヨンI14がノツトイコール条件を検査し、その
条件の最も起こりそうな状態がそのロケーシヨン
で検査されるときに真であつたならば、インスト
ラクシヨンI12はA5のエンコーデイングを有
するであろう。 この発明の他の実施例によれば、条件付きブラ
ンチインストラクシヨンは検査されるべき条件の
状態を予測するのみならずそれが過去において検
査されたときにその条件の実際の状態の歴史を与
えるために、プログラムのそれぞれのロケーシヨ
ンでさらにエンコードされる。このエンコーデイ
ングの2個の例を第5A図および第5B図に示
す。 第5A図において、イコールのときのブランチ
(branch on equal)インストラクシヨンは4個
のOPコードA2,B2,C2またはD2によつ
て特定される。エンコーデイングA2およびC2
はともに、イコール条件が真であろうということ
を予測し、エンコーデイングB2およびD2はと
もにイコール条件が偽であろうということを予測
する。しかし、さらに、エンコーデイングA2お
よびB2は、イコール条件は、それがこのインス
トラクシヨンによつて検査された最後のときに真
であつた、ということを伝える。OPコードC2
およびD2は、比較的には、このインストラクシ
ヨンがイコール条件を検査した最後のときにそれ
が偽であつたということを伝える。 イコールでないときのブランチ(branch on
not equal)インストラクシヨンのための同様な
エンコーデイングが第5B図に与えられる。そこ
では、OPコードA5,B5,C5およびD5は
各々検査を特定しノツトイコール条件で分岐す
る。OPコードA5およびC5はノツトイコール
条件の真の状態を予測し、かつOPコードB5お
よびD5はノツトイコール条件の偽の状態を予測
する。さらにOPコードA5およびB5はノツト
イコール条件が、それがこのインストラクシヨン
によつて検査された最後のときに真であつたとい
うことを伝え、かつOPコードC5およびD5は
ノツトイコール条件がこのインストラクシヨンに
よつて検査された最後のときに偽であつたという
ことを伝える。 第5A図および第5B図のインストラクシヨン
は検査された条件の最終状態をエンコードするの
で、そのエンコーデイングはそのインストラクシ
ヨンが実行される時間とともに更新されなければ
ならない。この更新は第6図の状態図によつて示
されるシーケンスにおいて行なわれる。この図は
PT/LT,PT/LF,PF/LF,およびPF/LT
として示される4個の可能な状態を含む。 状態PT/LTは、考察されているインストラク
シヨンが検査されるべき条件のための真の状態を
予測し、かつそのインストラクシヨンが実行され
た最後のときに真の条件に遭遇したということを
意味する。これは、イコールのときのブランチイ
ンストラクシヨンのためのA2のエンコーデイン
グおよびイコールでないときのブランチインスト
ラクシヨンのためのA5のエンコーデイングに対
応する。同様に、状態PF/LFは、考察されてい
るブランチインストラクシヨンは検査されるべき
条件のための偽の状態を予測し、かつそのインス
トラクシヨンが実行されている最後のときに偽の
条件に遭遇したということを意味する。 プログラムの特定のロケーシヨンにおけるイン
ストラクシヨンは状態PT/LTに対応するエンコ
ーデイングを有するものと想定する。次に、その
インストラクシヨンが実行されるとき、検査され
た条件の実際の状態が真であればそのエンコーデ
イングは変わらないままである。しかしながら、
検査された条件の実際の状態が偽であれば、その
インストラクシヨンのエンコーデイングは状態
PT/LFに対応するように変えられる。 次にそこでエンコードされた状態PT/LFを有
するインストラクシヨンが実行されるものと想定
する。次に、検査された条件が真であれば、その
インストラクシヨンのエンコーデイングはPT/
LFからPT/LTまで変えられる。しかし、検査
された条件が偽であれば、そのインストラクシヨ
ンのエンコーデイングはPT/LFからPF/LFへ
変わる。 換言すれば、条件の予測した状態は、2個の間
違つた予測が行において生じるまで変えられな
い。そして、条件付きブランチインストラクシヨ
ンが第3図のインストラクシヨンI16のよう
に、プログラムループの底部で共通に配置される
ので、このことは望ましい。通常、ブランチは、
何度も一方方向に行なわれ、かつ1回だけ他方方
向に行なわれる。しかし、ブランチがその他方方
向に行なわれるとき、予測した条件は不変でなけ
ればならず、そのためループが入れられた次のと
きに、共通な一方方向のブランチが再び予測され
よう。第4A図ないし第6図のインストラクシヨ
ンを実行するパイプライン化したデイジタルコン
ピユータのハードウエアの1つの好ましい実施例
が図解される第7図を次に参照する。そのハード
ウエアはインストラクシヨン先取ステージIPF′、
アドレスステージA′、オペランドステージO′お
よび計算ステージC′を含む。これらのステージは
第1図の先行技術のステージIPF,AO,および
Cにより前に行なわれたすべて機能を行なう。し
かし、それらはまたこれから説明するような態様
で第4A図ないし第6図の条件付きブランチイン
ストラクシヨンで作動するための付加的な回路を
含む。 まず最初に、モジユールIPF′はメモリバス3
0を介してメモリ(図示せず)のプログラムから
インストラクシヨンを取出す。導体30Aはイン
ストラクシヨンのアドレスをメモリへ送るための
手段を与え、かつ導体30Bは読出指令をメモリ
へ送るための手段を与える。 各々取出されたインストラクシヨンは導体30
C上でメモリから受けられ、かつそこから、それ
はレジスタ31にストアされる。そのレジスタは
導体32を介して制御回路33へ送られるOPコ
ード部分を有する。順次、回路33は条件付きブ
ランチインストラクシヨンが、第4A図−第5B
図の前述したOPコードをデコードすることによ
つてレジスタ31にあるときを検出する。 レジスタ31のインストラクシヨンは、検査さ
れるべき条件の真の状態を予測する条件付きブラ
ンチインストラクシヨンであれば、回路33はリ
ード34で制御信号PTを発生する。逆に、条件
付きブランチインストラクシヨンが検査されるべ
条件の偽の状態を予測するレジスタ31にあれ
ば、回路33はリード35で他の制御信号PFを
発生する。 信号PTおよびPFはインストラクシヨン取出回
路36へ送られる。信号PTに応答して、回路3
6はFIFOバツフア37へ、レジスタ31のブラ
ンチインストラクシヨンのアドレスを転送する。
そのアドレスはプログラムカウンタ38にあり、
かつそのため回路36はマルチプレクサ40を介
してFIFO37へプログラムカウンタ38を通過
させる導体39に信号を発生する。FIFO37の
実際のロードはリード線41の回路36によつて
発生される書込信号に応答して行なわれる。 その後で、回路36はブランチアドレスBAを
レジスタ31からプログラムカウンタ38へ転送
する。それは、プログラムカウンタをロードする
状態44上のロード信号を同時に発生しながら、
マルチプレクサ43を介してアドレスBAを通過
させるリード線42上の制御信号を発生させこと
によつて行なわれる。次に、プログラムカウンタ
38の新しい内容は後続のインストラクシヨンを
取出すため導体30Aを介して送られる。 逆に、信号PFが真であれば、回路36はFIFO
37にブランチアドレスBAをストアする。これ
は、マルチプレクサ40を介してアドレスBAを
通過させる導体39に他の制御信号を送り、かつ
同時に書込信号を導体41でFIFOへ送ることに
よつて達成される。その後で後続のインストラク
シヨンが、プログラムカウンタの古い内容をイン
クリメントすることによつてかつその結果を用い
て導体30Aを介してそのメモリをアドレスする
ことによつて取出される。 各モジユールが特定のインストラクシヨンでそ
の動作を完了された後、第1図に関して前述した
ように、それはその結果を次のモジユールへ通過
させる。これを発生するために、バス45,46
および47は種々のモジユール間で与えられる。
しかし、第7図の実施例はレジスタ31のインス
トラクシヨンのアドレスを一方のモジユールから
他のモジユールへ、バス45,46および47上
で従来から通されている情報とともに、通過させ
るための手段としてのモジユール端にバス42,
48,49および50を含む。 レジスタ51はバス48上でそれが受けるアド
レスを一時的に記憶するためモジユールA′に設
けられる。同様にレジスタ52および53は先行
するモジユールからそれらが受けるアドレスを一
時的に記憶するためモジユールO′およびC′にそれ
ぞれ設けられる。モジユールC′は以下のようにそ
のレジスタ53のアドレスを利用する。 バス47上でモジユールC′へ通されるこれらの
結果はモジユールC′が動作すべきインストラクシ
ヨンのOPコードを含む。このOPコードはレジス
タ54にストアされかつそこから、OPコードは
制御回路55および56ならびにマルチプレクサ
57へ送られる。回路55は、レジスタ54のイ
ンストラクシヨンが、そのインストラクシヨンが
実行された最後のときにその条件が真であつたと
いうことを示すエンコーデイングを備えた条件付
きブランチインストラクシヨンであれば導体58
に信号LTを発生する。また、回路55は、レジ
スタ54のインストラクシヨンがそのインストラ
クシヨンが実行された最後のときに検査された条
件が偽であつたということを示すエンコーデイン
グを備えた条件付きブランチインストラクシヨン
であれば、導体59に信号LFを発生する。 回路56は、レジスタ54のインストラクシヨ
ンが、検査された条件の状態が真であるというこ
とを予測する条件付きブランチインストラクシヨ
ンであれば、導体60に信号PTを発生する。そ
して、回路56は、レジスタ54のインストラク
シヨンが、検査された条件の状態が偽であるとい
うことを予測する条件付きブランチインストラク
シヨンであれば導体61に信号PFを発生する。 マルチプレクサ57は検査され得る条件のすべ
てを受け、かつそれは導体62に対し検査される
べきその1個の条件をゲート処理することによつ
てレジスタ54のOPコードに応答する。導体5
8−62のすべての信号は、書込制御回路63へ
送られ、この回路63は第6図に関して前述した
態様でレジスタ53に保持されるアドレスでその
インストラクシヨンのエンコーデイングを修正す
るように作動する。 たとえば、リード線50−61上の信号は、条
件付きブランチインストラクシヨンがPF/LT状
態に対応するエンコーデイングでレジスタ52に
あつたということを表示するものと想定する。さ
らに、リード線62上の信号は検査された条件の
現在の状態が真であることを示すものと想定す
る。その場合、書込制御回路63はPT/LT状態
に対応してリード線64Aにエンコーデイングを
発生しかつ導体64Bを介して書込指令を送るよ
うに動作する。その情報は、それが導体64Cの
アドレスによつて特定されるロケーシヨンでメモ
リに書込まれる場合に、そのメモリへバス64を
介して送られる。 上の例では、検査されるべき条件の予測した状
態と実際の状態とが同じであり、そのため何のセ
ツト信号もパイプラインの先行するステージへ送
られる必要がなかつた。しかし、リード線62の
信号が、検査されるべき条件の実際の状態が偽で
あるということを示すものと想定する。この場
合、書込制御回路63はPF/LF状態に対応する
リード線64Aに信号を発生し、導体64Bに書
込指令を送り、かつ導体65にリセツト信号を発
生する。 そのリセツト信号に応答し、モジユール
IPF′の取出回路36はFIFO37の出力をプログ
ラムカウンタ38へ転送する。これは、マルチプ
レクサ43を介してFIFO37の出力を通過させ
る導体42に信号を発生させることによつて、か
つ導体44上のプログラムカウンタのためのロー
ド信号を同時に発生させることによつて達成され
る。その後、回路36は導体66上の信号を
FIFO37へ送り、かつプログラムカウンタの新
しい内容が用いられてそのメモリからインストラ
クシヨンを取出す。 この発明の種々の好ましい実施例を詳細に説明
した。しかしながら、さらに、多くの変形および
修正がこの発明の性質および精神から逸脱するこ
となくこれらの詳細に対してなされ得る。たとえ
ば、この発明により構成される任意のパイプライ
ン化されたデイジタルコンピユータにおけるステ
ージの数は重要でないということを理解すべきで
ある。すなわち、コンピユータは1個のインスト
ラクシヨンで動作するインストラクシヨン先取ス
テージおよび他のインストラクシヨンで同時に作
動する実行ステージを有する必要があるだけであ
る。そして、実行ステージはモジユールA′,
O′およびC′のような他のステージへさらに区分化
されてもよく区分化されなくてもよい。 また、第7図に説明された種々の回路コンポー
ネントの詳細なインプリメンテーシヨンも関係が
ないということを理解すべきである。たとえば、
モジユールIPF′の取出回路36およびモジユー
ルC′の書込制御回路63は回路設計者の最良で任
意の数の方法で実現されてもよい。任意の半導体
販売者により販売される標準的な論理ゲートかま
たは1個の半導体チツプ上の1個のカスタム集積
回路がたとえば用いられてもよい。 さらに、検査されるべき条件のヒストリがない
ということを除きその条件の予測した状態のみが
条件付きブランチインストラクシヨンへエンコー
ドされれば、第7図の回路のいくつかが除去され
ることができるということを理解すべきである。
たとえば、条件付きブランチインストラクシヨン
が第4A図および第4B図についてエンコードさ
れれば、レジスタ51−53,制御回路55,お
よび制御回路55に応答する書込制御回路63の
部分は除去されることができる。 さらに、検査されるべき条件の予測した状態お
よび/またはその条件の最終状態は数多くの異な
る方法で条件付きブランチインストラクシヨンへ
エンコードされることができるということが理解
されるべきである。特に、その情報をインストラ
クシヨンのOPコードへエンコードする必要がな
い。代わりに、その情報はブランチアドレスBA
の任意の使用しないビツト組合わせへエンコード
されることができる。たとえば、ブランチアドレ
スが2進化10進であれば、そのアドレスの用いら
れない16進組合わせが用いられてブランチ予測お
よびブランチヒストリ情報をエンコードすること
ができる。 さらに他の代替例として、この発明はちようど
1個の条件付きブランチインストラクシヨンを含
むプログラムを実行する任意のデイジタル装置へ
併用されてもよいということを理解すべきであ
る。たとえば、1個の条件付きブランチインスト
ラクシヨンは、レジスタの内容を連続的に更新
し、次いでそのレジスタの内容を検査するプログ
ラムループにあるものと想定する。さらに、レジ
スタへ進む更新された情報が、検査条件が常にそ
のループを介して最初の100回の間常に偽であり、
検査条件が常に負のループを介して次の100回の
間真であるようなものと想定する。明らかに、第
6図に関して説明したこの発明の実施例はそのプ
ログラムループのデイジタル装置の実行を意義深
く改良する。 したがつて、多くの変形および修正がこの発明
の性質および範囲を逸脱することなく上述した詳
細に対してなされ得るので、この発明は前記詳細
に限られるものではなく、添付の請求の範囲によ
つて規定されるということを理解すべきである。
JP83500289A 1981-12-03 1982-12-01 ブランチ予測コンピュ−タ Granted JPS58502115A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US326837SEEDE 1981-12-03
US06/326,837 US4435756A (en) 1981-12-03 1981-12-03 Branch predicting computer
PCT/US1982/001693 WO1983002018A1 (en) 1981-12-03 1982-12-01 Branch predicting computer

Publications (2)

Publication Number Publication Date
JPS58502115A JPS58502115A (ja) 1983-12-08
JPS635777B2 true JPS635777B2 (ja) 1988-02-05

Family

ID=23273925

Family Applications (1)

Application Number Title Priority Date Filing Date
JP83500289A Granted JPS58502115A (ja) 1981-12-03 1982-12-01 ブランチ予測コンピュ−タ

Country Status (5)

Country Link
US (1) US4435756A (ja)
EP (1) EP0081357B1 (ja)
JP (1) JPS58502115A (ja)
DE (1) DE3264324D1 (ja)
WO (1) WO1983002018A1 (ja)

Families Citing this family (57)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5742099A (en) * 1980-08-27 1982-03-09 Sharp Kk Voice informing device
US4604691A (en) * 1982-09-07 1986-08-05 Nippon Electric Co., Ltd. Data processing system having branch instruction prefetching performance
DE3382350D1 (de) * 1982-11-17 1991-08-29 Nec Corp Anordnung zum vorabholen von befehlen mit vorhersage einer verzweigungszieladresse.
WO1985000453A1 (en) * 1983-07-11 1985-01-31 Prime Computer, Inc. Data processing system
JPS60107141A (ja) * 1983-11-16 1985-06-12 Fujitsu Ltd プランチ制御方式
US4764861A (en) * 1984-02-08 1988-08-16 Nec Corporation Instruction fpefetching device with prediction of a branch destination for each branch count instruction
US4868735A (en) * 1984-05-08 1989-09-19 Advanced Micro Devices, Inc. Interruptible structured microprogrammed sixteen-bit address sequence controller
US4742451A (en) * 1984-05-21 1988-05-03 Digital Equipment Corporation Instruction prefetch system for conditional branch instruction for central processor unit
US4775927A (en) * 1984-10-31 1988-10-04 International Business Machines Corporation Processor including fetch operation for branch instruction with control tag
JPH0769818B2 (ja) * 1984-10-31 1995-07-31 株式会社日立製作所 デ−タ処理装置
JPH0789319B2 (ja) * 1985-04-22 1995-09-27 株式会社日立製作所 デ−タ処理装置における先行制御装置
JPH0752390B2 (ja) * 1985-05-07 1995-06-05 株式会社日立製作所 命令処理装置
JPS6341932A (ja) * 1985-08-22 1988-02-23 Nec Corp 分岐命令処理装置
JPH0743648B2 (ja) * 1985-11-15 1995-05-15 株式会社日立製作所 情報処理装置
ATE57582T1 (de) 1986-03-21 1990-11-15 Siemens Ag Anordnung zur bearbeitung von sprungbefehlen innach dem fliessbandprinzip arbeitenden datenverarbeitungsanlagen.
US5440704A (en) * 1986-08-26 1995-08-08 Mitsubishi Denki Kabushiki Kaisha Data processor having branch predicting function
US4894772A (en) * 1987-07-31 1990-01-16 Prime Computer, Inc. Method and apparatus for qualifying branch cache entries
US4942520A (en) * 1987-07-31 1990-07-17 Prime Computer, Inc. Method and apparatus for indexing, accessing and updating a memory
US4860197A (en) * 1987-07-31 1989-08-22 Prime Computer, Inc. Branch cache system with instruction boundary determination independent of parcel boundary
US4870575A (en) * 1987-10-01 1989-09-26 Itt Corporation System integrated fault-tree analysis methods (SIFTAN)
US5197136A (en) * 1987-11-12 1993-03-23 Matsushita Electric Industrial Co., Ltd. Processing system for branch instruction
US4943908A (en) * 1987-12-02 1990-07-24 International Business Machines Corporation Multiple branch analyzer for prefetching cache lines
GB8728493D0 (en) * 1987-12-05 1988-01-13 Int Computers Ltd Jump prediction
JP2723238B2 (ja) * 1988-01-18 1998-03-09 株式会社東芝 情報処理装置
JPH081602B2 (ja) * 1988-02-23 1996-01-10 三菱電機株式会社 データ処理装置
US4974155A (en) * 1988-08-15 1990-11-27 Evans & Sutherland Computer Corp. Variable delay branch system
DE68928937T2 (de) * 1988-12-27 1999-07-01 Fujitsu Ltd., Kawasaki, Kanagawa Steuerungssystem und -verfahren zum Instruction Fetch
US5349671A (en) * 1989-03-23 1994-09-20 Matsushita Electric Industrial Co., Ltd. Microprocessor system generating instruction fetch addresses at high speed
US5203002A (en) * 1989-12-27 1993-04-13 Wetzel Glen F System with a multiport memory and N processing units for concurrently/individually executing 2N-multi-instruction-words at first/second transitions of a single clock cycle
US5197130A (en) * 1989-12-29 1993-03-23 Supercomputer Systems Limited Partnership Cluster architecture for a highly parallel scalar/vector multiprocessor system
US5623650A (en) * 1989-12-29 1997-04-22 Cray Research, Inc. Method of processing a sequence of conditional vector IF statements
US5283873A (en) * 1990-06-29 1994-02-01 Digital Equipment Corporation Next line prediction apparatus for a pipelined computed system
JPH0628184A (ja) * 1991-08-26 1994-02-04 Internatl Business Mach Corp <Ibm> ブランチ予測方法及びブランチプロセッサ
US5313634A (en) * 1992-07-28 1994-05-17 International Business Machines Corporation Computer system branch prediction of subroutine returns
EP0586057B1 (en) 1992-08-31 2000-03-01 Sun Microsystems, Inc. Rapid instruction (pre)fetching and dispatching using prior (pre)fetch predictive annotations
JP2744882B2 (ja) * 1993-01-15 1998-04-28 インターナショナル・ビジネス・マシーンズ・コーポレイション キューにより命令の実行を制御する装置及び方法
IE940855A1 (en) * 1993-12-20 1995-06-28 Motorola Inc Data processor with speculative instruction fetching and¹method of operation
US5887174A (en) * 1996-06-18 1999-03-23 International Business Machines Corporation System, method, and program product for instruction scheduling in the presence of hardware lookahead accomplished by the rescheduling of idle slots
TW380238B (en) * 1996-12-09 2000-01-21 Matsushita Electric Industrial Co Ltd Information processing apparatus which accurately predicts whether a branch is taken for a conditional branch instruction, using small-scale hardware
US5838962A (en) * 1997-04-09 1998-11-17 Hewlett-Packard Company Interrupt driven dynamic adjustment of branch predictions
US6044222A (en) * 1997-06-23 2000-03-28 International Business Machines Corporation System, method, and program product for loop instruction scheduling hardware lookahead
US6341348B1 (en) 1998-12-03 2002-01-22 Sun Microsystems, Inc. Software branch prediction filtering for a microprocessor
US6629238B1 (en) * 1999-12-29 2003-09-30 Intel Corporation Predicate controlled software pipelined loop processing with prediction of predicate writing and value prediction for use in subsequent iteration
US6636960B1 (en) * 2000-02-16 2003-10-21 Hewlett-Packard Development Company, L.P. Method and apparatus for resteering failing speculation check instructions
US6980940B1 (en) 2000-02-22 2005-12-27 Schlumberger Technology Corp. Intergrated reservoir optimization
US6766442B1 (en) * 2000-03-30 2004-07-20 International Business Machines Corporation Processor and method that predict condition register-dependent conditional branch instructions utilizing a potentially stale condition register value
US6678820B1 (en) 2000-03-30 2004-01-13 International Business Machines Corporation Processor and method for separately predicting conditional branches dependent on lock acquisition
US6658558B1 (en) 2000-03-30 2003-12-02 International Business Machines Corporation Branch prediction circuit selector with instruction context related condition type determining
TW477954B (en) * 2000-12-05 2002-03-01 Faraday Tech Corp Memory data accessing architecture and method for a processor
US8301871B2 (en) * 2006-06-08 2012-10-30 International Business Machines Corporation Predicated issue for conditional branch instructions
US7487340B2 (en) * 2006-06-08 2009-02-03 International Business Machines Corporation Local and global branch prediction information storage
US7891818B2 (en) 2006-12-12 2011-02-22 Evans & Sutherland Computer Corporation System and method for aligning RGB light in a single modulator projector
EP2063355B1 (en) * 2007-11-22 2017-09-20 Sony Interactive Entertainment Europe Limited Branch prediction method
US8358317B2 (en) 2008-05-23 2013-01-22 Evans & Sutherland Computer Corporation System and method for displaying a planar image on a curved surface
US8702248B1 (en) 2008-06-11 2014-04-22 Evans & Sutherland Computer Corporation Projection method for reducing interpixel gaps on a viewing surface
US8077378B1 (en) 2008-11-12 2011-12-13 Evans & Sutherland Computer Corporation Calibration system and method for light modulation device
US9641826B1 (en) 2011-10-06 2017-05-02 Evans & Sutherland Computer Corporation System and method for displaying distant 3-D stereo on a dome surface

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5222841A (en) * 1975-08-15 1977-02-21 Hitachi Ltd Micro program control method
US4124893A (en) * 1976-10-18 1978-11-07 Honeywell Information Systems Inc. Microword address branching bit arrangement
JPS5374857A (en) * 1976-12-15 1978-07-03 Fujitsu Ltd Data processor
JPS53126837A (en) * 1977-04-13 1978-11-06 Hitachi Ltd Order control unit
US4179737A (en) * 1977-12-23 1979-12-18 Burroughs Corporation Means and methods for providing greater speed and flexibility of microinstruction sequencing
JPS5566028A (en) * 1978-11-10 1980-05-19 Nec Corp Information processing unit
US4370711A (en) 1980-10-21 1983-01-25 Control Data Corporation Branch predictor using random access memory

Also Published As

Publication number Publication date
WO1983002018A1 (en) 1983-06-09
US4435756A (en) 1984-03-06
EP0081357A1 (en) 1983-06-15
EP0081357B1 (en) 1985-06-19
JPS58502115A (ja) 1983-12-08
DE3264324D1 (en) 1985-07-25

Similar Documents

Publication Publication Date Title
JPS635777B2 (ja)
US4868735A (en) Interruptible structured microprogrammed sixteen-bit address sequence controller
US4166289A (en) Storage controller for a digital signal processing system
JP2846406B2 (ja) 分岐処理方法及び分岐処理装置
US6081887A (en) System for passing an index value with each prediction in forward direction to enable truth predictor to associate truth value with particular branch instruction
US4734852A (en) Mechanism for performing data references to storage in parallel with instruction execution on a reduced instruction-set processor
US6247122B1 (en) Method and apparatus for performing branch prediction combining static and dynamic branch predictors
JP2744890B2 (ja) ブランチ予測式データ処理装置および動作方法
KR100695187B1 (ko) 단일 스텝 처리 방법 및 장치
US6611909B1 (en) Method and apparatus for dynamically translating program instructions to microcode instructions
US5297281A (en) Multiple sequence processor system
JPH0429093B2 (ja)
US5502827A (en) Pipelined data processor for floating point and integer operation with exception handling
JPH0334024A (ja) 分岐予測の方法とそのための装置
US5497459A (en) System for testing instruction queue circuit and central processing unit having the system
US5416911A (en) Performance enhancement for load multiple register instruction
US4773035A (en) Pipelined data processing system utilizing ideal floating point execution condition detection
US5699506A (en) Method and apparatus for fault testing a pipelined processor
JPH0332818B2 (ja)
US4093983A (en) Fast and normal rate instruction fetching
EP0497485A2 (en) Computer for implementing two-operand instructions
US4028670A (en) Fetch instruction for operand address calculation
EP0448127B1 (en) Microprogram sequence controller
US4896264A (en) Microprocess with selective cache memory
JPS6365976B2 (ja)