JPS6236258B2 - - Google Patents

Info

Publication number
JPS6236258B2
JPS6236258B2 JP58138583A JP13858383A JPS6236258B2 JP S6236258 B2 JPS6236258 B2 JP S6236258B2 JP 58138583 A JP58138583 A JP 58138583A JP 13858383 A JP13858383 A JP 13858383A JP S6236258 B2 JPS6236258 B2 JP S6236258B2
Authority
JP
Japan
Prior art keywords
branch
instruction
address
block
taken
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
JP58138583A
Other languages
English (en)
Other versions
JPS6027945A (ja
Inventor
Haruo Yano
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
Nippon Electric Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nippon Electric Co Ltd filed Critical Nippon Electric Co Ltd
Priority to JP58138583A priority Critical patent/JPS6027945A/ja
Publication of JPS6027945A publication Critical patent/JPS6027945A/ja
Publication of JPS6236258B2 publication Critical patent/JPS6236258B2/ja
Granted legal-status Critical Current

Links

Landscapes

  • Advance Control (AREA)
  • Executing Machine-Instructions (AREA)

Description

【発明の詳細な説明】 この発明は高速の情報処理装置に適する命令取
出装置に関するものである。
<背 景> 近年、高速の情報処理装置においては、命令の
実行と並行して、実行中の命令シーケンスの後続
の命令シーケンスをキヤツシユメモリより読出
し、これを一時記憶するための命令バツフアを持
つことが多い。また命令バツフアからの命令の取
出し、命令のデコード、オペランドの準備演算の
各過程に対応した一連の処理ステージを備え、マ
シンサイクルの周期で順次命令を前記一連のステ
ージに流して処理するパイプライン処理が行なわ
れることが多い。
ところで科学技術計算プログラムでは、プログ
ラムの同一シーケンスを多数回ループさせること
が多く、科学技術計算の専用処理装置においては
同一の命令シーケンスをデータを変えて多数回実
行することが多い。従来科学技術計算専用の処理
装置における命令取出方式の1つとして、命令バ
ツフアの容量を例えば数Kバイト程度に大きく
し、これを複数個のブロツクに分割し、記憶装置
の命令語エリア内の実行中の命令語をブロツク単
位に、前記命令バツフア上のブロツクに転記し、
同時に命令バツフアの各ブロツク毎にそのブロツ
クに保持されている命令語の命令アドレスを保持
する手段を設け、デコードすべき命令語の命令ア
ドレスで、前記アドレス保持手段のアドレスを探
すことにより、命令バツフア上のブロツク番号を
求め、そのブロツクから順次命令をデコードステ
ージに取出す方式がある。
この方式では分岐命令をデコードし、分岐条件
を検出すると、その分岐命令語が指定するベース
レジスタ及びインデツクスレジスタのそれぞれの
値と、命令語内のデイスプレイスメントとを加算
し分岐アドレスを求め、その分岐アドレスで前記
アドレス保持手段を探して分岐先命令語の存在す
る命令バツフア(以下IBと記す)上のブロツク
番号を求め、そのブロツクより分岐先の命令を順
次読出す。従つてこの方式では分岐命令の処理は
大半がIB上で分岐することになり前記ループ回
数の多いプログラムに適しているといえる。
しかしながら、それでも分岐命令をIBより取
出し、分岐先の命令語をIBより取出すまでには
以下の処理が必要である。
(1) 分岐命令のデコード (2) 命令語の指定に従つた分岐アドレスの計算 (3) 分岐成功/不成功の判定 (4) 分岐アドレスによる前記アドレス保持手段の
サーチ(探索) こゝで上記(3)と(4)は並列に処理できるが、それ
以外は遂次的に処理される。そのため分岐命令を
取出し、分岐先命令を取出すまでにかなり時間が
かかり、この間演算ステージを有効に利用できな
いという欠点がある。
<発明の目的> この発明の目的は前記従来方式の命令取出方式
において、IB内の命令語の1乃至数語毎に1エ
ントリーを有し、その対応する命令語群内に分岐
命令がある場合、その分岐の分岐成立/不成立履
歴及び分岐先命令語の存在するIB上のアドレス
を保持する分岐履歴テーブル(以下BHTと記
す)を設け、IBからデコードステージに命令を
取出す際にBHTの対応エントリーから上記分岐
情報を取出し、命令語が分岐命令であり、その分
岐情報の分岐成立/不成立履歴が分岐成立を示し
ていれば、その分岐情報内の分岐先のIBアドレ
スにより即座に分岐先の命令語をIBより取出す
ことにより、上記欠点を解決した命令取出装置を
提供することにある。
<発明の概要> この発明による命令取出装置は記憶装置から読
出された命令語をブロツク単位に保持する命令バ
ツフアと、その命令バツフア上のブロツクの1乃
至数個に対応して、そのブロツク群に保持される
命令語のアドレスを保持するアドレス保持手段
と、前記命令バツフアから読出された命令語を保
持する命令レジスタと、前記命令バツフア上の命
令語の1乃至数語毎に1エントリを有し、その命
令語群内に分岐命令がある場合、その分岐命令の
分岐成立/不成立履歴及び分岐先命令語が格納さ
れている、前記命令バツフア上のアドレスを保持
する分岐履歴テーブルとにより構成される。
<実施例> 構 成 次にこの発明の一実施例について図面を参照し
て説明する。第1図はこの発明による命令取出装
置を示すブロツク図である。この実施例では命令
長は4バイト、即ち32ビツトであり、命令の論理
アドレスは30ビツトの語アドレスである。命令バ
ツフア(IB)3は16バイト×64ワードの構成
で、読出、書込が同時に可能な記憶素子により実
現され、16ワード毎にブロツク0,1,2,3と
して使用する。各ブロツクには記憶装置にある命
令語情報の1ブロツク即ち256バイト境界から始
まる256バイトの情報がロードされる。レジスタ
2はこれに対するロード時に記憶装置からの情報
を一度受け、IB3に書込むためのレジスタで16
バイトである。切替回路4はIB3から読出され
た4語の内の1つを選択し、その選択した1語を
4バイトの命令レジスタ5にストローブする。
レジスタ20及び21はそれぞれIB3のブロ
ツク0及びブロツク3に保持されている命令語の
アドレス上位26ビツトを保持するための先頭アド
レスレジスタである。第1図では一部省略してい
るが先頭アドレスレジスタはIB3の各ブロツク
対応にあり計4個用意されている。レジスタ19
は分岐命令により決定される分岐アドレス及びイ
ンストラクシヨンカウンタの初期値がセツトされ
る分岐アドレスレジスタである。分岐アドレスレ
ジスタ19の値の上位26ビツトを先頭アドレスレ
ジスタ20,……,21と比較回路22,……2
3でそれぞれ比較し、一致出力により分岐先の命
令語のあるブロツク番号を決める。
分岐履歴テーブル(以下BHTと省略)11は
IB3の4バイトに対応して1エントリー即ち9
ビツトを有し、36ビツト×64ワードの構成であ
る。BHT11もIB3と同様の記憶素子により実
現される。BHT11の1エントリーの形式を第
2図Aに示す。ビツト0のVビツトはそのエント
リーに対応するIB3の命令語が無条件分岐若し
くは分岐成立の条件分岐であつたことを示し、ビ
ツト1〜8はその分岐の分岐先命令語のあるIB
3上のアドレスを示す。
IB3及びBHT11の読出アドレスカウンタ7
の形式を第2図Bに示す。ビツト0,1はブロツ
ク番号、ビツト2〜5はブロツク内のワード番
号、ビツト6,7はワード内語番号をそれぞれ示
す。ビツト2〜7は通常は+1される。IB3の
書込アドレスカウンタ1及びBHT11の書込ア
ドレスカウンタ10の形式は同一でこれを第2図
Cに示す。ビツト0,1はブロツク番号でビツト
2〜5はワード番号である。ビツト2〜5が+1
されることがある。
制御回路25は上記のバツフアの読出、書込、
レジスタのストローブ及びレジスタの入力切替等
の信号を発生する制御回路である。
動 作 次に第1図を参照してこの命令取出装置の動作
を説明する。制御回路25は命令取出の開始指示
を受けると初期IC(インストラクシヨンカウン
タ)を切替回路18を介して分岐アドレスレジス
タ19にセツトする。開始指示を受けた時点では
IB3には有効な命令語はロードされてなく、先
頭アドレスレジスタ対応に設けられた有効性表示
ビツト(以下Vビツトとする)は全てリセツト状
態である。従つてブロツク0〜3の内ヒツトする
ものはなく、分岐アドレスレジスタ19の値をア
クセスアドレスとして記憶装置にブロツクロード
要求を送出する。
そのロード先のブロツク番号は前記Vビツトが
“0”のブロツクの内から若番を優先的に選択す
るので、最初はブロツク0が選択される。制御回
路25は記憶装置にロード要求を出すと、その記
憶装置より応答情報を受けるまでの時間を利用し
てBHT11のブロツク0の全エントリーのVビ
ツトをクリアする。即ち書込アドレスカウンタ1
0の上位2ビツトにブロツク番号0がセツトさ
れ、下位のワード番号部を0から15までインクリ
メントしつつVビツトに“0”を書込む。制御回
路25は記憶装置から応答番号を受けると、デー
タ線30を通して送られてくる16バイト×16回の
情報をIB3のブロツク0の各ワードに書込む。
その情報はリクエストアドレスの情報を含む16バ
イトを先頭にして16回送られてくる。制御回路2
5はまた応答信号を受けると分岐アドレスレジス
タ19の上位26ビツトの値を先頭アドレスレジス
タ0にセツトし、同時にそのレジスタ対応のVビ
ツトをセツトする。これにより比較回路22の出
力が“1’となり回路24からヒツト信号32と
ブロツク番号信号33とが出力される。制御回路
25はそのブロツク番号信号と分岐アドレスレジ
スタ19の下位6ビツトを切替回路6を通して読
出アドレスカウンタ7にセツトし、以後そのカウ
ンタの下位6ビツトを順次インクリメントする。
これにより命令レジスタ5には所定の命令語が
順次読み出され、同時に分岐情報レジスタ15に
は対応するBHT11のエントリーの情報が読み
出される。命令レジスタ5内の命令語のオペレー
シヨンコードはデコーダ26に入力されて分岐命
令であれば検出される。
こゝで条件分岐命令を検出すると、制御回路2
5はその命令語のIB3上のアドレス、即ち読出
アドレスカウンタ7のアドレスをレジスタ12か
らスタツク13にに移送する。又、BHT11か
ら読出された分岐情報をレジスタ15からスタツ
ク16に移送する。なお条件分岐命令を検出して
も分岐情報のVビツトはリセツトされているので
分岐不成立側の命令を引続いて読み出す。その分
岐命令が命令レジスタ5より次段のステージに送
出されるとその命令語が指定するベースレジス
タ、インデツクスレジスタの値と、デイスプレス
メント値が加算されて分岐アドレスとして4マシ
ンサイクル後に送られてくる。
制御回路25はその分岐アドレスを分岐アドレ
スレジスタ19にセツトし、先頭アドレスレジス
タ0〜3の値と比較し、分岐先命令語の存在する
ブロツク番号を引き出しておく。こゝでは説明を
簡単にするためにブロツク内でループするための
条件分岐を検出したものとし、ブロツク0がヒツ
トしたとする。制御回路25は分岐アドレスを受
けた1マシンサイクル後に分岐成立/不成立信号
を受ける。こゝで分岐不成立信号を受けると、ス
タツク16の分岐情報も分岐不成立を予測してい
たので(分岐成立履歴が“0”であるので)何も
せず、すでに進めている分岐不成立側の命令の読
出しを読行する。
分岐成立信号を受けるとスタツク16の分岐方
向予測(分岐成立履歴“0”)と異なるので、命
令語の読み出しを正しい分岐方向に切替える。即
ち前記引出したブロツク番号と分岐アドレスレジ
スタ19の下位ビツトとを読出カウンタ7にセツ
トする。またレジスタ9においてもVビツト、即
ち分岐成立履歴が分岐成立信号により“1”とさ
れ、読出カウンタ7にセツトとした分岐先のIB
アドレスと同一の内容をセツトし、これでBHT
11の対応エントリーを更新する。この際、
BHTの書込アドレスカウンタ10にはスタツク
13からのアドレスをセツトしておく。以後分岐
先の命令語が順次読み出され、再度同一の条件分
岐を読み出すと、この時には分岐情報レジスタ1
5のVビツトがセツトされているので、即座に分
岐情報内の分岐先IBアドレスを読出アドレスカ
ウンタ7にセツトし、分岐先の命令語を読み出
す。
この際にも、分岐情報はレジスタ15よりスタ
ツク16に移送し、その条件分岐命令を次段に送
出後、送られてくる分岐アドレスで分岐先のIB
アドレスを引出し、この正規に求めたIBアドレ
スとスタツク16内の予測によるIBアドレスの
一致チエツクを比較回路17で行なう。両者が一
致しないことは実用上極めて少ないのであるが、
この場合には正規に求めたIBアドレスにより命
令語を読み出す。なお既に送出済の命令語は演算
実行ステージに渡す前に無効にする。
この実施例においてはIB3の1語(4バイ
ト)に対してBHT11の1エントリーを設けて
いるが、BHT11の金物量を減らすためにIB3
の数語、即ち数命令に対してBHT11の1エン
トリーを設け、各エントリー内の分岐情報が対応
する数命令内のいずれの命令に関するかを指定す
るポインタ情報を各エントリーに設けるようにし
てもよい。またこの実施例においてはIB3に命
令語が存在しなかつた場合、IB3上のブロツク
の1つに記憶装置より命令語をロードするが、こ
の記憶装置がキヤツシユメモリあるいは主メモリ
のいずれでもあつてもよい。
<効 果> この発明は以上説明したように、命令バツフア
の命令語対応にその命令語が分岐命令の時に、分
岐成立/不成立履歴及び分岐先の命令バツフア上
のアドレスを保持する分岐履歴テーブルを設け、
分岐先の命令語を命令バツフアより速かに取り出
し、実行ステージに供給することにより、この命
令取出装置を含む情報処理装置の処理速度を向上
させる効果がある。
【図面の簡単な説明】
第1図はこの発明による命令取出装置の全体を
示すブロツク図、第2図は第1図に示した分岐履
歴テーブル11の1エントリーの形式、読出アド
レスカウンタ7の形式及び書込アドレスカウンタ
1の形式を示す図である。 1,7,10:カウンタ、2,5,9,12,
15,19,20,21:レジスタ、3:命令バ
ツフア、11:分岐履歴テーブル、4,6,8,
14,18:切替回路、17,22,23:比較
回路、25:制御回路、13,16:スタツク。

Claims (1)

    【特許請求の範囲】
  1. 1 記憶装置より読出された命令語をブロツク単
    位に保持する命令バツフアと、その命令バツフア
    上のブロツクの1個乃至数個に対応してそのブロ
    ツク群に保持される命令語のアドレスを保持する
    アドレス保持手段と、前記命令バツフアから読出
    された命令語を保持する命令レジスタと、前記命
    令バツフア上のブロツク内の命令語の1乃至数語
    毎に1エントリーを有し、その命令語群内に分岐
    命令がある場合、その分岐命令の分岐成立/不成
    立を示す履歴、及び分岐先の命令語が格納されて
    いる前記命令バツフア上のブロツク番号及びブロ
    ツク内アドレスを保持する分岐履歴テーブルと、
    その分岐履歴テーブルから読出された情報を保持
    する分岐情報レジスタとを含む命令取出装置であ
    つて、前記命令バツフアより命令語を命令レジス
    タに取出すと同時に前記分岐履歴テーブルの対応
    エントリーを分岐情報レジスタに取出し、その分
    岐情報内の分岐成立/不成立を示す履歴が分岐成
    立を示していると以後分岐情報内の分岐先のブロ
    ツク番号、ブロツク内アドレスに従つて命令語を
    取出し、又分岐情報内の分岐成立/不成立履歴が
    分岐成立を示していないが対応して取出した命令
    語が分岐命令で分岐成立条件を検出した場合に
    は、その命令語の指定に従つて計算した分岐アド
    レスと前記アドレス保持手段の値との一致チエツ
    クをし、一致した場合には前記命令バツフア上の
    そのブロツクより分岐先命令語を取出し、更に前
    記分岐履歴テーブルの前記分岐命令に対応するエ
    ントリーにそのブロツク番号及び分岐成立表示を
    登録することを特徴とする命令取出装置。
JP58138583A 1983-07-27 1983-07-27 命令取出装置 Granted JPS6027945A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP58138583A JPS6027945A (ja) 1983-07-27 1983-07-27 命令取出装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP58138583A JPS6027945A (ja) 1983-07-27 1983-07-27 命令取出装置

Publications (2)

Publication Number Publication Date
JPS6027945A JPS6027945A (ja) 1985-02-13
JPS6236258B2 true JPS6236258B2 (ja) 1987-08-06

Family

ID=15225508

Family Applications (1)

Application Number Title Priority Date Filing Date
JP58138583A Granted JPS6027945A (ja) 1983-07-27 1983-07-27 命令取出装置

Country Status (1)

Country Link
JP (1) JPS6027945A (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
JP2534662B2 (ja) * 1986-03-25 1996-09-18 日本電気株式会社 命令キヤツシユ制御方法
JPS6336336A (ja) * 1986-07-30 1988-02-17 Nec Corp 情報処理装置
JPH0668722B2 (ja) * 1986-10-09 1994-08-31 日本電気株式会社 命令処理順序制御装置
US4943908A (en) * 1987-12-02 1990-07-24 International Business Machines Corporation Multiple branch analyzer for prefetching cache lines

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5022384A (ja) * 1973-06-29 1975-03-10
JPS5759253A (en) * 1980-09-29 1982-04-09 Nec Corp Branch instruction prefetch system

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5022384A (ja) * 1973-06-29 1975-03-10
JPS5759253A (en) * 1980-09-29 1982-04-09 Nec Corp Branch instruction prefetch system

Also Published As

Publication number Publication date
JPS6027945A (ja) 1985-02-13

Similar Documents

Publication Publication Date Title
US4764861A (en) Instruction fpefetching device with prediction of a branch destination for each branch count instruction
US4719570A (en) Apparatus for prefetching instructions
JPS63503177A (ja) 命令先取制御装置
WO1996039657A1 (en) Apparatus and method for reducing read miss latency
US4924425A (en) Method for immediately writing an operand to a selected word location within a block of a buffer memory
JPS6236258B2 (ja)
JP2570859B2 (ja) データ処理装置
US7111127B2 (en) System for supporting unlimited consecutive data stores into a cache memory
US4737908A (en) Buffer memory control system
JPS5991551A (ja) 分岐先アドレス予測を行なう命令先取り装置
JPH11110214A (ja) 命令制御システム及びその方法
JPS60144847A (ja) キヤツシユメモリ制御方式
JPH0646381B2 (ja) 命令取出し装置
JP2794782B2 (ja) 命令取出装置
JPH07200406A (ja) キャッシュシステム
JPH046983B2 (ja)
JPS59112479A (ja) キヤツシユメモリの高速アクセス方式
JPH06301600A (ja) 記憶装置
JP2559416B2 (ja) 情報処理装置
JPS5991552A (ja) セツトアソシアテイブ型分岐ヒストリテ−ブルを有する命令先取り装置
JPH10111798A (ja) 情報処理装置
JPS6244839A (ja) 命令取出装置
JPS63251838A (ja) 命令取出装置
JPS581247A (ja) 命令先取り制御方法
JP2531209B2 (ja) チャネル装置