JPH0646381B2 - 命令取出し装置 - Google Patents

命令取出し装置

Info

Publication number
JPH0646381B2
JPH0646381B2 JP61283363A JP28336386A JPH0646381B2 JP H0646381 B2 JPH0646381 B2 JP H0646381B2 JP 61283363 A JP61283363 A JP 61283363A JP 28336386 A JP28336386 A JP 28336386A JP H0646381 B2 JPH0646381 B2 JP H0646381B2
Authority
JP
Japan
Prior art keywords
instruction
block
read
buffer
word
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 - Lifetime
Application number
JP61283363A
Other languages
English (en)
Other versions
JPS63136229A (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.)
NEC Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Priority to JP61283363A priority Critical patent/JPH0646381B2/ja
Publication of JPS63136229A publication Critical patent/JPS63136229A/ja
Publication of JPH0646381B2 publication Critical patent/JPH0646381B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

  • Advance Control (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Description

【発明の詳細な説明】 (産業上の利用分野) 本発明は、高速の情報処理装置における命令取出し装置
に関する。
(従来の技術) 近年、高速の情報処理装置においては、命令の実行と並
行して、実行中の命令シーケンスに後続した命令シーケ
ンスをキヤツシユメモリより読出し、これを一時記憶す
るための命令バツフアを備えることが多い。また、命令
バツフアからの命令の取出し、命令の解読、ならびにオ
ペランドの準備演算の各過程に対応した一連の処理ステ
ージを備え、マシンサイクルの周期で順次命令を上記一
連のステージに流して処理するパイプライン処理の行わ
れることも多い。
従来、科学技術計算専用の処理装置における命令取出し
方式には、次の第1および第2の方式が公知である。斯
かる方式の一つとして、命令バツフアの容量を、例えば
数kバイト程度に大きくし、これを複数個のブロツクに
分割し、記憶装置の命令語エリア内の実行中の命令語を
上記命令バツフア上のブロツクへブロツク単位に転記
し、同時に命令バツフアの各ブロツクごとに、上記ブロ
ツクに保持されている命令語の命令アドレスを保持する
ためのアドレス保持手段を設け、解読すべき命令語の命
令アドレスで上記アドレス保持手段のアドレスをサーチ
することによつて命令バツフア上のブロツク番号を求
め、上記ブロツクから順次、命令をデコードステージに
取出す。従来技術による第1の方式は上記のものであ
る。
この場合、命令バツフア上のアドレスは主記憶のアドレ
スとは異なり、命令バツフア上のブロツク番号とブロツ
ク内ワード番号、ときにはワード内語番号等とから構成
されている。
或るブロツクの末尾から他のブロツクの最初の命令語に
移るとき(以下、ブロツク越えという。)、移り先のブ
ロツクが命令バツフア上に有在しないというケースがあ
り得る。このようなケースでは従来、ブロツク末尾の命
令語を命令バツフアから読出した後に、主記憶装置に対
してリクエストを取出すか、あるいは末尾から予め定め
られた命令数内に位置する命令語を命令バツフアから読
出すと、これによつて主記憶装置に対して無条件にリク
エストを出す。斯かる方式が従来技術による第2の方式
である。
(発明が解決しようとする問題点) 上述した従来の命令取出し方式において、第1の方式の
場合には、移り先のブロツクの最初の命令語を読出すの
に遅延が生じるという問題がある。第2の方式の場合に
は、リクエストを送出した後にブロツク末尾付近の分岐
命令によつて命令ストリームが変つたならば、既に送出
されたリクエスト信号をキヤンセルしなければならない
という問題がある。
本発明の目的は、記憶装置より読出された命令語をブロ
ツク単位に命令バツフアへ保持しておき、命令バツフア
から読出されている命令語のアドレスの上位ビツトを命
令カウンタに保持し、命令バツフアから読出されている
命令語のブロツク番号とブロツク内アドレスとを命令ポ
インタによつて指示し、命令バツフアのブロツクの末尾
から予め定められた命令数内に位置する命令が、以前に
命令バツフアから読出された履歴をもち、かつ、分岐命
令ではないという情報を使用して当該命令を取出すこと
によつて上記欠点を除去し、特定条件における命令語も
容易に取出すことができるように構成した命令取出し装
置を提供することにある。
(問題点を解決するための手段) 本発明による命令取出し装置は命令バツフアと、命令カ
ウンタと、命令ポインタレジスタと、命令レジスタと、
読出し履歴テーブルと、読出し履歴レジスタと、制御手
段とを具備して構成したものである。
命令バツフアは、記憶装置より読出されれた命令取をブ
ロツク単位に保持するためのものである。
命令カウンタは、命令バツフアから読出されている命令
語のアドレスの上位ビツトを保持するためのものであ
る。
命令ポインタレジスタは、命令バツフアから読出されて
いる命令語のブロツク番号およびブロツク内アドレスを
示すためのものである。
命令レジスタは、命令バツフアから読出された命令語を
保持するためのものである。
読出し履歴テーブルは、命令バツフアのブロツクの末尾
から予め定められた命令数内に位置する命令が以前に命
令バツフアから読出された履歴を有するとともに、分岐
命令ではないという情報を保持するためのものである。
読出し履歴レジスタは、読出し履歴テーブルから読出さ
れた情報を保持するためのものである。
制御手段は、命令バツフア上のブロツクから読出されて
いる命令語のアドレスが上記ブロツクの末尾から予め定
められた命令数内に位置していることを検出するととも
に、キヤツシユアドレスからみて上記ブロツクに連続す
るブロツクが命令バツフア上に存在しない場合には、命
令バツフア上のブロツクから読出されている命令語以降
の命令語に対応して、読出し履歴レジスタの内容のビツ
トをチエツクし、上記ブロツクの末尾までの後続命令が
すべて以前に命令バツフアより読出された履歴を有する
とともに、分岐命令が含まれていないという条件が成立
つときにはキヤツシユメモリに対してリクエストを送出
し、上記条件が満足されないときにはキヤツシユメモリ
に対するリクエストを抑止するためのものである。
(実施例) 次に、本発明について図面を参照して説明する。
第1図は、本発明による命令取出し装置の一実施例を示
すブロツク図である。第1図において、1は命令バツフ
ア書込みアドレスレジスタ、2は命令バツフア書込みデ
ータレジスタ、3は命令バツフア、4,15,17,3
1はそれぞれ切替え回路、5は命令レジスタ、6は命令
ポインタレジスタ、7は読出し履歴テーブル、8は読出
し履歴レジスタ、9はVビツトF/F、10は制御ビツ
トF/F、11は読出し履歴テーブルライトイネーブル
F/F、12,13はそれぞれバツフアレジスタ、1
4,18,21,22,23,29はそれぞれデコード
回路、16,30はそれぞれ+1の加算器、19はブロ
ツク越先きサーチ回路、20は制御回路、28は命令カ
ウンタである。
本実施例では命令長は4バイト、すなわち32ビツトで
あり、命令の論理アドレスは30ビツトのバイトアドレ
スである。
命令バツフア3は32バイト×64ワードの構成で、読
出し/書込みが同時に可能な記憶素子で実現され、16
ワードごとにそれぞれブロツク0,ブロツク1,ブロツ
ク2,およびブロツク3として使用される。各ブロツク
には、キヤツシユメモリ(図示してない。)にある命令
語情報の1ブロツク、すなわち512バイト境界から始
まる512バイトの情報がロードされる。命令バツフア書
込みアドレスレジスタ2は、上記ロード時にキヤツシユ
メモリからの情報を一度に受け、命令バツフア3に書込
むためのレジスタであり、32バイトの幅を有するもの
である。
切替え回路4は、命令バツフア3の8語より成る読出し
出力の内の一つを選択し、その出力は4バイトの命令レ
ジスタ5にストローブされる。
命令バツフア3の読出しアドレスカウンタ6は、命令ポ
インタレジスタと呼ばれる。第2図(a)は、命令ポイン
タレジスタ6の内容の形式を示す説明図である。第2図
(a)において、ビツト0,1はブロツク番号、ビツト2
〜5はブロツク内のワード番号、ビツト6〜8はワード
内語番号をそれぞれ示す。命令バツフア3から順次、命
令語を読出しているときには、ビツト2〜8は+1だけ
増分されている。命令バツフア3の書込みアドレスカウ
ンタ1の形式は同一である。第2図(b)は、アドレスカ
ウンタ1の内容の形式を示す説明図である。第2図(b)
において、ビツト0,1はブロツク番号であり、ビツト
2〜5はワード番号である。主記憶(図示していな
い。)またはキヤツシユメモリから命令バツフア3へ命
令語情報をロードしているときには、ビツト2〜5は+
1だけ増分され、命令バツフア3には順次、命令語が書
込まれる。
制御回路20は命令バツフア3からの命令の読出し、命
令の書込み、バツフアレジスタ12,13のストロー
ブ、およびバツフアレジスタ12,13の入出力切替え
の信号を発生するための制御回路である。
命令カウンタ28には、命令バツフア3から読出されて
いる命令語の記憶装置上のアドレス上位23ビツト、お
よびインストラクシヨンカウンタ初期値の上位23ビツ
トがセツトされる。ブロツク越先きサーチ回路19の内
部には、命令バツフア3のブロツク0からブロツク3に
保持されている命令語の記憶装置上のアドレス上位23
ビツトが保持されている。ブロツク越え時には命令カウ
ンタ28の値をブロツク越先きサーチ回路19に送り、
命令バツフア3の各ブロツクの先頭アドレスと比較す
る。両者が一致したとき、一致出力によりブロツク越先
きの命令語の置かれているブロツク番号を求める。
読出し履歴テーブル7は命令バツフア3の各ブロツクの
末尾から予め定められた命令数内に位置する命令語が、
以前、命令バツフア3から読出されたものであるか否か
の情報を命令語ごとに保持しているテーブルである。本
実施例ではブロツクの末尾から8命令語、すなわち命令
バツフア3の各ブロツクの最後のワードに存在する命令
語の実行履歴をテーブル7に保持することにする。すな
わち、テーブル7は8ビツト×4ワードの構成になる。
読出し履歴レジスタ8は、テーブル7の読出し/書込み
データレジスタを兼ねる読出し履歴用のレジスタであ
る。テーブル7から読出されたデータは切替え回路17
を介して読出し履歴レジスタ8にセツトされる。命令バ
ツフア3から読出されている命令語がブロツクの最後の
ワードに位置している場合には、命令レジスタ5にセツ
トされている命令語の、命令バツフア3上のアドレスを
示すバツフアレジスタ12の値を参照して、当該アドレ
スからブロツクの末尾までの読出し履歴をデコード回路
18でチエツクする。同時に、バツフアレジスタ12で
示される命令語は既に命令バツフア3から読出された命
令語であるので、対応する読出し履歴レジスタ8のビツ
トをセツトする。ただし、デコード回路14によつて命
令レジスタ5に読出された命令語が分岐命令である場合
には、読出し履歴レジスタ8の対応するビツトのセツト
を抑止する。
次に、第1図を参照して本実施例による命令取出し装置
の動作を説明する。
制御回路20は命令取出しの開始指示を受けると、イン
ストラクシヨンカウンタ初期値の上位23ビツトを切替
え回路31を介して命令カウンタ28にセツトし、イン
ストラクシヨンカウンタ初期値の下位7ビツトを命令ポ
インタレジスタ6のブロツク内ワード番号部、およびワ
ード内語番号部にセツトする。開始指示を受けた時点で
は、命令バツフア3には有効な命令語はロードされてい
ない。したがつて、ブロツク0〜3のうちにヒツトする
ものはないので、命令カウンタ28の値をリクエストア
ドレスとして使用し、キヤツシユメモリに対してブロツ
クロード要求を送出している。
有効な命令語がロードされていないブロツクの内部から
若番のロード先のブロツク番号が優先的に選択されるの
で、最初はブロツク0が選択される。
制御回路20はキヤツシユメモリから応答を受けると、
データ信号線24を通して送られてくる32バイト×1
6回の情報を命令バツフア3のブロツク0の各ワードに
書込む。情報は、リクエストアドレスで示される32バ
イトを先頭にして16回送られてくる。
ブロツク越先きサーチ回路19は信号線27上のブロツ
ク番号信号を命令ポインタレジスタ6のブロツク番号部
にセツトし、以降、命令ポインタレジスタ6の下位7ビ
ツトを順次、+1だけ増分してカウントする。これによ
り、命令レジスタ5には所定の命令語が順次、読出され
る。
命令ポインタレジスタ6の下位7ビツトが120を示す
と、当該ブロツクの末尾から8番目の命令語のアドレス
がセツトされ、読出し履歴テーブルからブロツク0に対
応するワードが切替え回路17を介して読出し履歴レジ
スタ8に読出される。命令バツフア3の最後のワードは
キヤツシユメモリから命令バツフア3にロードされた後
に初めてアクセスされる。したがつて、テーブル7から
読出された情報もすべて0を示している。バツフアレジ
スタ12は命令ポインタレジスタ6の1マシンサイクル
遅れのデータを保持しており、命令レジスタ5にセツト
されている命令語の、命令バツフア3上のアドレスを示
している。バツフアレジスタ12で示される命令語に対
応する読出し履歴レジスタ8のビツトは、切替え回路1
7を介してセツトされる。ここで、デコード回路14に
よつて命令レジスタ5にセツトされた命令語が分岐命令
であると判明すると、命令パスとなる信号線39を介し
て、当該分岐命令に対応する読出し履歴レジスタ8のビ
ツトがリセツトされる。
以上説明したように、命令バツフア3から順次、命令語
を読出し、分岐以外の命令語であればレジスタ8の対応
するビツトをセツトしてゆく。命令バツフア3のブロツ
ク0から命令語をすべて読出した後、またはブロツク0
の他のワードに分岐した後で、レジスタ8の情報をパス
となる信号線32を通してテーブル7に書込む。書込み
のタイミングは、デコード回路22で命令ポインタレジ
スタ6が当該ブロツクの最終ワードから他のブロツク、
または他のワードに移つたことを検出し、テーブル7の
ライトネーブルF/F11をセツトすることによつて得
られる。書込みアドレスを格納するのは、レジスタ12
より1マシンサイクル遅れのアドレスを示すバツフアレ
ジスタ13を使用する。なお、VビツトF/F9は読出
し履歴レジスタ8の内容の有効性を表示するものであ
り、命令ポインタレジスタ6の下位7ビツトが120〜
127のいずれかを表示するとデコード回路23を介し
てセツトされ、バツフアレジスタ12で示されるアドレ
スが当該ブロツクの他のワードか、あるいは他のブロツ
クを示したときにリセツトされる。VビツトF/F9が
セツトされている間には、切替え回路17はテーブル7
からの読出しデータを取込まないようにする。
上記読出し履歴テーブルの内容が更新されている間、命
令バツフア3の側ではブロツク越先きのブロツクのサー
チが並行処理されている。命令ポインタレジスタ6の下
位7ビツトが120〜127のいずれかを示すと、命令
カウンタ9の内容は+1だけ増分される。命令ポインタ
レジスタ6は依然、ブロツク0をアクセスしているが、
命令語の主記憶上のアドレス上位23ビツトは先行して
ブロツク越先きの命令語のアドレスをセツトしているこ
とになる。命令カウンタ28の値をブロツク越先きサー
チ回路19に送り、ブロツク越先きサーチ回路19に保
持されている命令バツフア3の各ブロツクの先頭アドレ
スと比較することにより、ブロツク越先きの命令語の置
かれているブロツク番号をサーチする。
サーチの結果、ブロツク越先きブロツクが命令バツフア
3上に存在するならば、ブロツク越先きブロツク番号を
信号線27を介して命令ポインタレジスタ6の上位2ビ
ツトにセツトする。ブロツク越先きブロツクが命令バツ
フア3上に存在しない場合、すなわち命令バツフアミス
ヒツトの場合には、キヤツシユメモリに対してリクエス
トを送出し、命令バツフア3上にブロツクロードする。
このキヤツシユメモリに対するリクエストのタイミング
が、本発明の特徴である。
以下、このリクエストタイミングについて説明する。
デコード回路18はバツフアレジスタ12で示されるア
ドレスからブロツク末尾までに位置する命令語がすべて
以前、命令バツフア3から読出されたものであるか否
か、ならびに分岐命令が存在しているか否かを、読出し
履歴レジスタ8の出力を参照することによつて判定す
る。その結果、ブロツク末尾までのすべての命令語に読
出し履歴があり、かつ、分岐命令でないことが検出され
ると、信号線37を介して制御回路20に対してリクエ
スト許可の情報が送出される。ブロツク越先きのブロツ
クの命令バツフアミスヒツトであることが信号線36を
介して通知されると、当該ブロツクの命令語がすべて読
出されていなくても制御回路20はキヤツシユメモリに
対してリクエストを送出する。逆に、バツフアレジスタ
12の内容で示されるアドレスからブロツク末尾までの
読出し履歴がオール1ではない場合、すなわち未だ命令
バツフア3から読出されていない命令、または分岐命令
が存在する場合には、バツフアレジスタ12の内容で示
されるアドレスからブロツク末尾までの読出し履歴がオ
ール1になるまで、または当該ブロツクの命令をすべて
実行するまでキヤツシユメモリに対するリクエストを抑
止する。
第3図は、第1図に示す読出し履歴テーブル7の更新時
の動作を示すタイムチヤートである。第3図において、
第3図(a)は分岐せずにブロツク越えが起されたケース
を示すものであり、第3図(b)はブロツクの末尾で他の
ブロツクの最終ワードに分岐したケースを示すものであ
る。ここで制御ビツトF/F10は、或るブロツクの最
終ワードから他のブロツクの最終ワードに分岐した場合
に、命令ポインタレジスタ6の値をみてセツトされる。
制御ビツトF/F10がセツトされると、VビツトF/
F9がセツトされていても読出し履歴テーブル7の情報
が読出し履歴レジスタ8に取込まれる。ただし、分岐先
の先頭命令の読出し履歴情報も同時に読出し履歴レジス
タ8の当該ビツトに取込まれることはいうまでもない。
(発明の効果) 以上説明したように本発明は、命令バツフアの最終ワー
ドに位置する命令語の読出し履歴、および分岐命令であ
るか否かの情報を保持することにより、ブロツク越えの
リクエストを従来方式よりも数マシンサイクル早く送出
することができ、さらにリクエストのキヤンセルを行う
必要もないという効果がある。
【図面の簡単な説明】
第1図は、本発明による命令取出し装置の一実施例を示
すブロツク図である。 第2図は、第1図に示す命令ポインタレジスタおよびア
ドレスカウンタにセツトされるデータの形式を示す説明
図である。 第3図は、第1図に示す読出し履歴テーブルの更新時の
動作を示すタイムチヤートである。 1……命令バツフア書込みアドレスレジスタ 2……命令バツフア書込みデータレジスタ 3……命令バツフア 4,15,17,31……切替え回路 5……命令レジスタ 6……命令ポインタレジスタ 7……読出し履歴テーブル 8……読出し履歴レジスタ 9……VビツトF/F 10……制御ビツトF/F 11……読出し履歴テーブルライトイネーブルF/F 12,13……バツフアレジスタ 14,18,21〜23,29……デコード回路 16,30……加算器 19……ブロツク越先きサーチ回路 20……制御回路 28……命令カウンタ 24〜27,32〜40……信号線

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】記憶装置より読出された命令語をブロツク
    単位に保持するための命令バツフアと、前記命令バツフ
    アから読出されている命令語のアドレスの上位ビツトを
    保持するための命令カウンタと、前記命令バツフアから
    読出されている命令語のブロツク番号およびブロツク内
    アドレスを示すためのポインタレジスタと、前記命令バ
    ツフアから読出された前記命令語を保持するための命令
    レジスタと、前記命令バツフアのブロツクの末尾から予
    め定められた命令数内に位置する命令が以前に前記命令
    バツフアから読出された履歴を有するとともに分岐命令
    ではないという情報を保持するための読出し履歴テーブ
    ルと、前記読出し履歴テーブルから読出された情報を保
    持するための読出し履歴レジスタと、前記命令バツフア
    上のブロツクから読出されている命令語のアドレスが前
    記ブロツクの末尾から予め定められた命令数内に位置し
    ていることを検出するとともにキヤツシユアドレスから
    みて前記ブロツクに連続するブロツクが前記命令バツフ
    ア上に存在しない場合には前記命令バツフア上のブロツ
    クから読出されている命令語以降の命令語に対応して前
    記読出し履歴レジスタの内容のビツトをチエツクし、前
    記ブロツクの末尾までの後続命令がすべて以前に前記命
    令バツフアより読出された履歴を有するとともに前記分
    岐命令が含まれていないという条件が成立つときにはキ
    ヤツシユメモリに対してリクエストを送出し、前記条件
    が満足されないときには前記キヤツシユメモリに対する
    リクエストを抑止するための制御手段とを具備して構成
    したことを特徴とする命令取出し装置。
JP61283363A 1986-11-28 1986-11-28 命令取出し装置 Expired - Lifetime JPH0646381B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP61283363A JPH0646381B2 (ja) 1986-11-28 1986-11-28 命令取出し装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP61283363A JPH0646381B2 (ja) 1986-11-28 1986-11-28 命令取出し装置

Publications (2)

Publication Number Publication Date
JPS63136229A JPS63136229A (ja) 1988-06-08
JPH0646381B2 true JPH0646381B2 (ja) 1994-06-15

Family

ID=17664520

Family Applications (1)

Application Number Title Priority Date Filing Date
JP61283363A Expired - Lifetime JPH0646381B2 (ja) 1986-11-28 1986-11-28 命令取出し装置

Country Status (1)

Country Link
JP (1) JPH0646381B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2794782B2 (ja) * 1989-05-22 1998-09-10 日本電気株式会社 命令取出装置
JPH08263286A (ja) * 1995-03-22 1996-10-11 Kofu Nippon Denki Kk 緩衝記憶装置
JPH08328857A (ja) * 1995-05-31 1996-12-13 Nec Ic Microcomput Syst Ltd マイクロプロセッサ

Also Published As

Publication number Publication date
JPS63136229A (ja) 1988-06-08

Similar Documents

Publication Publication Date Title
US4725947A (en) Data processor with a branch target instruction storage
US4827402A (en) Branch advanced control apparatus for advanced control of a branch instruction in a data processing system
US5535350A (en) Cache memory unit including a replacement address register and address update circuitry for reduced cache overhead
US5097414A (en) Buffer-storage control system for simultaneously accessible partitions of tag and data blocks of buffer storage
WO1992006426A1 (en) Method and apparatus for parallel decoding of instructions with branch prediction look-up
JPS6341093B2 (ja)
KR100875377B1 (ko) 처리 시스템에서 스택 팝 및 푸쉬 동작들을 수행하는 장치 및 방법
JPH0646381B2 (ja) 命令取出し装置
JPH11110214A (ja) 命令制御システム及びその方法
JPS5991551A (ja) 分岐先アドレス予測を行なう命令先取り装置
JPS6236258B2 (ja)
JPH0510694B2 (ja)
JPS6022376B2 (ja) キャッシュメモリ制御装置
JP2794782B2 (ja) 命令取出装置
JPH04245334A (ja) 情報処理装置の命令先読み制御方式
JPS581247A (ja) 命令先取り制御方法
JP2762797B2 (ja) 命令キャッシュを有するパイプライン構成の情報処理装置
JPH06149569A (ja) レジスタ番号変更装置
JPH0433059B2 (ja)
JP2576589B2 (ja) 仮想記憶アクセス制御方式
JPS5991552A (ja) セツトアソシアテイブ型分岐ヒストリテ−ブルを有する命令先取り装置
JP2864548B2 (ja) 命令キャッシュ装置
JPH08212068A (ja) 情報処理装置
JPS63140337A (ja) 命令取出し装置
JPH024011B2 (ja)