JPS58222348A - 情報処理装置 - Google Patents

情報処理装置

Info

Publication number
JPS58222348A
JPS58222348A JP10518382A JP10518382A JPS58222348A JP S58222348 A JPS58222348 A JP S58222348A JP 10518382 A JP10518382 A JP 10518382A JP 10518382 A JP10518382 A JP 10518382A JP S58222348 A JPS58222348 A JP S58222348A
Authority
JP
Japan
Prior art keywords
instruction
register
branch
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.)
Pending
Application number
JP10518382A
Other languages
English (en)
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
NEC Corp
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 NEC Corp, Nippon Electric Co Ltd filed Critical NEC Corp
Priority to JP10518382A priority Critical patent/JPS58222348A/ja
Publication of JPS58222348A publication Critical patent/JPS58222348A/ja
Pending 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 or look ahead
    • G06F9/3802Instruction prefetching
    • G06F9/3808Instruction prefetching for instruction reuse, e.g. trace cache, branch target cache
    • G06F9/381Loop buffering

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)
  • Executing Machine-Instructions (AREA)

Abstract

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

Description

【発明の詳細な説明】 本発明は比較的高速度で動作する情報処理装置に関する
。       ゛1:1 従来から一連の命令シーケンス、例えば命令A、命令B
、命令Cによるオペレーションを整数回だけ繰返して実
行する場合には、第1図に示すような構成にコーディン
グすることが多いことはよく知られている。この場合、
ロードG凡命令によって繰返り7回数K(K正整数)を
汎用レジスタのひとつにロードし、命令A、命令B、命
令Cに続いてブランチオンカウント命令、すなわちBC
T命令を置く。次に、このBCT命令によって上記汎用
レジスタの内部にセットされている繰返]−回数から1
を減じ、減算後の値がOでなければ命令Aに分岐するよ
うにコーディングする。
従来、比較的高速度の情報処理装置においては、上記ル
ープは次の様に実行される。すなわち、まずロードGR
,命令、命令A、命令B、命令C1ならびにBCT命令
を順次、命令バッファより取出1〜.1マシンサイクル
毎に実行処理部に供給する。しかし、次の命令としてB
CT11□1111 命令の分岐先の命令Aを供給するの1dBcT命令ノ解
読、および分岐アドレス生成、アドレス変換、記憶装置
またはバッファメモリへのアクセスなどの各処理過程を
経た一後であって、数マシンサイクルの後である。この
ため、ループを一回実行する都度、命令の実行に空き時
間が生じ、繰返し回数が大きくなるにつれて情報処理装
置の処理速度を低下させると云う欠点があった。
本発明の目的は、比較的高速度の情報処理装置がBCT
命令によるループを実行する場合に、このループを構成
する命令シーケンス全体75(命令バッファに収まる長
さの場合には、この命令シーケンスを一回実行した時点
からループが切れるまでの期間、この命令シーケンスを
命令バッファに保持し、それ以後、BCT命令の分岐先
命令語を記憶装置、またはバッファメモリ部から読出さ
ないで、常に直接、命令バッファより命令を供給するこ
とにより上記欠点を解決した情報処理装置を提供するこ
とにある。
本発明による情報処理装置に第1および第2の命令バッ
ファと、第1および第2の読出しポインタと、第1およ
び第2の切替回路と、命令レジスタと、デコーダと、検
出回路と、減分回路と、レジスタと、加算器と、制御回
路とを具備している。第1および第2の命令バッファは
、主ストリームの命令語と分岐ストリームの命令語とを
対にし7て記憶するためのものである。第1および第2
のポインタに、第1および第2の゛命令バッファに対応
したものである。第1の切替回路はバッファメモリ部か
ら続出された命令語か、あるいは第1の命令バッファか
ら続出された命令語か、または第2の命令バッファから
読出された命令語かを選択するものである。第2の切替
回路は第1、および第2の読出しポインタの出力のうち
、デコーダの出力に対応して該当−する出力を選択する
ものである。命令レジスタは第1の切替回路の出力を保
持するものである。デコーダは命令レジスタに保持され
ている命令語のオペレーションコードを解読するもので
ある。検出回路に命令レジスタに保持されている命令語
のディスプレースメント部の値を検出するものである。
減分回路は命令レジスタに保持されている命令語の相対
分岐値を減分するものである。レジスタは減分回路の出
力を保持するものである。加算器は第2の切替回路の出
力とレジスタの出力とを入力して、第1あるいは第2の
読出しポインタの内容を加算した値に変更するためのも
のである。制御回路はバッファメモリ部と実行処理部と
の間で制御信号を授受し、これによって第1および第2
の命令バッファ、第1および第2の読出しポインタ、命
令レジスタ、ならびに第1および第2の切替回路を制■
するものである。
命令レジスタに保持されている命令語がブランチオンカ
ウント命令(BCT命令)であって、レジスタの内容を
1だけ減じた時、結果が0−Cなければ、指定されたア
ドレスに分岐する命令語であるかをチェックし、同時に
分岐方向がアドレス減少方向であって命令語自身のアド
レス11、、:: と分岐アドレスとの差゛が第1、および第2の命令バッ
ファの容歓以下であることをチェックする。チェックの
結果が肯定的である場合には、分岐先の命令語を最大、
第1および第2の命令バッファの容量分だけバッファメ
モリ部かう読出して第1、および第2の命令バッファに
格納し、ブランチオンカウント命令(BCT命令)に対
する分岐条件が不成立になるまで命令語を第1、および
第2の命令バッファに保持し、続ける。その間、ブラン
チオンカウント命令(BCT命令)が命令レジスタによ
って解読される毎に、分岐先の命令語をバッファメモリ
にアクセスする代りに第1、および第2の命令バッファ
より読出すように構成l−である。
次に本発明について図面を参照して詳細に説明する。第
2図は本発明による情報処理装置のうち、本発明を特徴
づける命令バッファとその周辺のブロック図である。第
2図において、1および2けそれぞれ、8バイト×4ワ
ードの容量を有する第1、および第2の命令バッファで
ある。条件付き分□岐命令を解読する場合には、第1お
よび第2の命令バッファのうち、一方が主ス) IJ−
ムの命令語を保持上他方が分岐ストリームの命令語を保
持する。3および4Fiそれぞれ第1、および第2のポ
インタであり、それぞれ第1、および第2の命令バッフ
ァ1,2のために使用するものである。8は4バイトの
バイト幅を有する第1の切替回路であり、第1の命令バ
ッファ1の出力の上位4バイトと下位4バイト、第2の
命令バッファ2の出力の上位4バイトと下位4バイト、
あるいはバス信号線20を介して第2図に記載されてい
ないバッファメモリから送出された読出しデータの上位
4バイトと下位4バイトとのうちのいずれかを選択する
。5は4バイトのバイト幅を有する命令レジスタであり
、その出力は命令語を解読するために使用され、通常の
場合、1マシンサイクルの後に次の処理段へ送出される
。6は命令レジスタ5にセットされた命令語のオペレー
ション■ コード部OPを解読するためデコーダであり、信号線2
5には相対分岐形式のBCT命令をデコーダ6が解読し
た時に状態1が送出される。7は命令レジスタ5にセッ
トされた命令語のディスプレースメント部りが1ワード
の減分値から8ワードの減分値までの値であることを検
出するための検出回路である。第1および第2の続出し
ポインタ3,4は既に説明したようにそれぞれ第1およ
び第2の命令バッファ1.2に対応するもので、4ビツ
トのビット幅を有し、下位3ビツトがそれぞれ第1、お
よび第2の命令バッファ1,2の読出し−rドレスとな
る。9は4ビツトのビット幅を有する第2の切替回路で
、第1および第2のポインタ3,4の出力のうち、デコ
ーダ6の出力に対応する命令バッファ1、または2を選
択する。10に′i命令レジスタ5にセビット幅を有す
るレジスタである。12ハ加算器、13は第1〜第4の
フリップフロップ14〜17を有する制御回路である。
制約回路13からゲート信号線36を介してレジスタ1
1へ送出されたゲート信号の状態が0であれば、レジス
タ11の出力F14ビットとも0にセットされる。加算
器12は第1、あるいは第2の読出しポインタ3,4の
値を1だけ増分するため、ならびに第1、あるいは第2
の続出しポインタ3,4の値とレジスターlの内容とを
加算するための回路である。
制御回路13は第2図に記載されていない実行処理部か
ら信号線48 、49を介して制御信号を授受すると共
に、第3図に記載されていないバッファメモリ部から信
号線45 、46を介して制御信号を授受し、これKよ
って第1および第2の命令バッファ1,2の書込指示信
号、第1および第2の読出しポインタ3,4のストロー
ブ信号、命令レジスタ5のストローブ信号、第1および
第2の切替器8,9の選択信号などを発生する。なお、
本実施例においては、基本的な命令語の長さは4バイト
であるが、8バイト、12バイト、あるいは16バイト
の命令語もある。
BCT命令は4バイトの曇さを有する命令で1111・
:1 ある。相対分岐形式のB′CT命令の構成は第3図に示
すとおシであり、ビットO〜7はオペレーションコード
、ビット8〜1xh汎用レジスタ番号である。汎用レジ
スタ番号にカウンタの値がセットされている汎用レジス
タを指定するものである。ビット12〜31ハ相対分岐
値であシ、4バイト単位、すなわち1ワ一ド単位で与え
である。負の相対分岐値は2の補数形式で表わされてい
る。
次に第2図を参照して命令バッファ、およびその周辺の
動作を説明する。制御回路13が第2図に記載されてい
ない実行処理部より開始命令アドレスと起動開始信号と
を受取ると、この開始命令アドレスを読出しアドレスと
して使用し、読出し要求を信号線45に乗せてバッファ
メモリ部へ送出する。以後、マシンサイクル毎に読出し
アドレスを2ワードだけ増分し、後続の処理において続
出し要求を送出する。読出し要求は$1の命令バッファ
が満杯になるまで、連続して4回だけ送出する。さらに
、起動開始信号によって第1および第捻・、の続出しポ
インタ3,4をリセットする。次に、制御回路13の内
部に設けられた第1〜第4のフリップフロップエ4〜1
7をすべてリセットする。第1のフリップフロップ14
Fi、第1の命令バッファ1の内容、あるいけ第2の命
令バッファ2の内容のいずれを解読するかを示すフリッ
プフロップである。第1の続出しポインタ3の最下位ピ
ットには、最初の命令語を読出す際に使用されるアドレ
スのワード部がセットされる。制御回路13ハ、バッフ
ァメモリ部よりの応答信号46を受取る毎K、パス信号
線20上に送出されている命令語を第1の命令パツファ
工のワード0,1,2,3に順次格納する。さらに、最
初の応答信号を受取った時に、第1の切替回路8によっ
てバス信号線20の上位4バイト、あるいは下位4バイ
トのいずれかを選択し、最初の命令語を命令レジスタ5
にストローブする。命令レジスタ5をストローブするの
と同時に、第1の続出しポインタ3の値が1だけ増分さ
れる。増分は、加算器12によって加算入力信号線30
の各ピッlすべて状態0に転じ、さらに桁上げ信号線3
7上のデータを状態IKすることによって行われる。次
のマシンサイクルでは、命令レジスタ5からの命令語と
、デコーダ6からのデコード情報とをそれぞれ信号線4
4 、43上に乗せ、さらにデコード開始49号を信号
線48に乗せて実行処理部忙送出し、第1の命令バッフ
ァ1から読出した次の命令語を命令レジスタ5にストロ
ーブする。
次K、命令レジスタに相対分岐形式のBCT命令がスト
ローブされると、デコーダ6の相対分岐形式のBCT命
令であることを示す信号が信号線25を介して送出され
、信号線25上の信号の状態は1になる。さらに、この
BCT命令の相対分岐値が1ワードから8ワードの範囲
で減分するものであれば、信号線27上の信号の状態が
1になる。そこで、相対分岐値の下位4ビツトが減分回
路10で1だ+i減分された後でレジスタにセットされ
、信号線25 、27上の信号と第2のフリップフロッ
プ15のコンブリメント出力との論理積により、解読開
始信号をタイミング信号として使用し、第2の7リツプ
フロツブ15がセットされる。このBCT命令の分岐が
成功すると予測して、以後、分岐ストリームの命令語を
解読できるように、あらかじめ第1のフリップフロップ
14をセットして那2の命令バッファ2を指示しておく
。さらに、相対分岐値りと、解読中の命令に対応する命
令アドレスとにより分岐アドレスを生成し、上記起動時
と同様にしてバッファメモリ部にアクセスするが、第2
のフリップフロップ15がセフ” )されているので、
バッファメモリ部に4回目の要求を送出するど同時に第
3のフリップフロップ16をセットして後続の要求を禁
止する。分岐先の命令語が続出されると、この命令語を
第2の命令バッファのワード0,1,2,3に順次格納
して解読を開始する。上記と同様の条件を満足するBC
T命令を解読すると、セットされている第2のフリップ
フロップ15は解読したBCT命令が上記BCT命令と
同一であるか否かをチェックする。
:ム・、1 チェックは次のようにして行う。すなわち、レジスタ1
1に記憶されている1の補数形式の相対分岐値と第2の
ポインタ4の値とを加算器12で加算し、その結果の上
位3ビツトの状態がすべて0であって、最下位ピットの
状態が第4のフリップフロップ17にセットされている
値の状態に等しい時、同一のBCT命令であると確認さ
れるわけである。第4のフリップフロップ17には、最
初のBCT命令の分岐アドレスのワードピットを第2の
ポインタ4の最下位ピットにセットする時に同じ値がセ
ットされる。これが同一のBCT命令であると確認され
ると、第2のポインタ4に加算器12の値をストローブ
し、第2の命令バッファ2から分岐先の命令語を続出し
て命令レジスタ5にストローブする。同一のBCT命令
であることの確認と、第2のポインタ4の値の更新とを
1マシンサイクルの前半期間に行い、分岐先命令語の続
出しを後半期間に行って、以後、1マシンサイクル毎に
後続命令を命令レジスタ5に順次取出す。次に、同一の
BCT命令であると確認、されなかった場合には、実行
処理部から送出される最初のBCT命令に対する分岐成
功信号を確認した後、第1のフリップフロップ14の状
態を反転し、最初のBCT命令と同様な処理を行い、分
岐先命令を第1の命令バッファ1に格納する。
上記のいずれにおいても、B C’L”命令に対する分
岐成功信号を受取ると、$1のフリップフロップ14に
よって指示されていない方の命令バッファ1、または2
から、該当するポインタ3、また!/′i4に指定され
ている命令語を読出すことによって、即座に前のストリ
ームの解読を再開することができる。なお、この分岐不
成功信号により第1のフリップフロップ14ニ反転し、
第1〜第4のフリップフロップ14〜17が指示してい
た方のポインタ3、または4はすべてリセットされる。
本実施例においては、上記条件を満足するBCT命令を
解読した後、再びこの条件を満足するBCT命令を解読
した場合、両者が同一アドレスにある命令であらた場合
に限って分岐先を命令バッファ1、または2から読出す
ようにしている。しかし、同一命令であるか否かにかか
わらず、後者の相対分岐値に応じて該当するポインタ3
、また1−14の値を減分し、分岐先を該当する命令バ
ッファ1、または2から読出すことも容易である。
本実施例では命令語のオペレーションコードによって相
対分岐形のBCT命令と、解読されるBCT命令とを対
象としているが、命令語のなかに相対分岐値をもたない
BCT命令であっても、他にアドレス加算器を使用して
解読中の命令の命令アドレスと、このBCT命令の分岐
アドレスとから相対分岐値を算出して本発明を実現でき
る。
本発明には以上説明したように、BCT命令によるルー
プを実行するときに、ループを構成する命令シーケンス
の全体が命令バッファに収まる長さの場合には、この命
令シーケンスを1口実行した時点がらループが切断する
までの期間、命令シーケンスを命令バッファに保持し、
それ以後、BCT命令の分岐先命令語を常に命令バッフ
ァより供給するように構成することにより、BCT命令
を使用してループするようにコーディングされたプログ
ラムを高速度で処理することができるという効果がある
【図面の簡単な説明】
第1図はBCT命令を含み処理がループするプログラム
の一例を示す図、第2図は本発明に依る情報処理装置に
おける一実施例の命令バッファとその周辺回路とのブロ
ック図、第3図は第2図に示す実施例において使用する
相対分岐形のBCT命令の構成を示す図である。 1.2・・・命令バッファ 3.4・・・続出しポインタ 5・・・命令レジスタ6
・・・デコーダ  7・・・検出回路8.9・・・切替
回路  10・・・減分回路11・・・レジスタ −2
・・・加算器 13・・・制御回路14〜17・・・フ
リップフロップ 20〜46 、48〜49・・・1.信号線1′・il
l 特許出願人  日本電気株式会社 代理人 弁理士 井ノロ 壽 第1図 1

Claims (1)

    【特許請求の範囲】
  1. 主ストリームの命令語と分岐ストリームの命令語とを対
    にして記憶するための第1および第2の命令バッファと
    、前記第1および第2の命令バッファに対応した第1お
    よび第2の続出しポインタと、バッファメモリ部から読
    出された命令語か、あるいは第1の命令バッファから読
    出された命令語か、または第2の命令バッファ゛から続
    出された命令語かを選択するための第1の切替回路と、
    前記第1および第2の読出しポインタの出力のうち、該
    当する出力を選択するための第2の切替回路と、前記第
    1の切替回路の出力を保持するための命令レジスタと、
    前記命令レジスタに保持されている命令語のオペレーシ
    ョンコードを解読するためのデコーダと、前記命令レジ
    スタに保持されている命令のデイスプレースメント部の
    値を検出するための検出回路と、前記命令レジスタに保
    持されている命令語の相対分岐値を減分するための減分
    回路と、前記減分回路の出力を保持するためのレジスタ
    と、前記第2の切替回路の出力と前記レジスタの出力と
    を入力して前記第1あるいは第2の読出しポインタの値
    を加算するための加算器と、前記バッファメモリ部と実
    行処理部との間で制御信号を授受し、これによって前記
    第1および第2の命令バッファ、前記第1および第2の
    読出しポインタ、命令レジスタ、ならびに第1および第
    2の切替回路を制御するための制御回路とを具備し、前
    記命令レジスタに保持されている命令語がブランチ牙ン
    カウント命令(BCT命令)であって、前記レジスタの
    内容を1だけ減じた時に結果がOでなければ指定された
    アドレスに分岐する命令であるか−をチェックし、さら
    に前記分岐の方向がアドレス減少方向であって前記命令
    語自身のアドレスと分岐アドレス゛との差が前記第1お
    よび第2の命令バッファの容朔以下であることをチェッ
    クし、前記チェックの結果が肯定的であると前記分岐の
    先の命令語を最大、前記第1および第2の命令バッファ
    の容量分だけ前記バッファメモリ部から続出(7て前記
    命令バッファに格納し、前記ブランチオンカウント命令
    (BCT命令)に対する前記分岐の条件が不成立になる
    まで前記命令語を前記第1および第2の命令バッファに
    保持し続け、その間前記ブランチオンカウント命令(B
    CT命令)が前記命令レジスタによって解読される毎に
    前記分岐の先の命令語を前記バッファメモリ部にアクセ
    スする代りに前記第1払よび第2の命令バッファより読
    出すように構成したことを特徴とする情報処理装置。
JP10518382A 1982-06-18 1982-06-18 情報処理装置 Pending JPS58222348A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP10518382A JPS58222348A (ja) 1982-06-18 1982-06-18 情報処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP10518382A JPS58222348A (ja) 1982-06-18 1982-06-18 情報処理装置

Publications (1)

Publication Number Publication Date
JPS58222348A true JPS58222348A (ja) 1983-12-24

Family

ID=14400557

Family Applications (1)

Application Number Title Priority Date Filing Date
JP10518382A Pending JPS58222348A (ja) 1982-06-18 1982-06-18 情報処理装置

Country Status (1)

Country Link
JP (1) JPS58222348A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01169633A (ja) * 1987-12-25 1989-07-04 Hitachi Ltd 情報処理装置
US7676650B2 (en) 2002-06-28 2010-03-09 Fujitsu Limited Apparatus for controlling instruction fetch reusing fetched instruction

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01169633A (ja) * 1987-12-25 1989-07-04 Hitachi Ltd 情報処理装置
US7676650B2 (en) 2002-06-28 2010-03-09 Fujitsu Limited Apparatus for controlling instruction fetch reusing fetched instruction

Similar Documents

Publication Publication Date Title
US5511207A (en) Program control circuit determining the designated number of times a sequence of instructions is repetitively executed to prevent further execution of a jump instruction
US4090238A (en) Priority vectored interrupt using direct memory access
EP0220682B1 (en) Data processing system
EP0323140B1 (en) Data processing device
EP0094535B1 (en) Pipe-line data processing system
JPH0332818B2 (ja)
EP0223150B1 (en) Information processing apparatus
JPH03139726A (ja) 命令読出し制御方式
KR920003180B1 (ko) 바이패스(bypass)회로를 갖는 데이타 처리장치
EP0240606A2 (en) Pipe-line processing system and microprocessor using the system
EP0293445A1 (en) Arrangement for controlling memory operations in a pipeline processor
US5274792A (en) Information processing apparatus with parallel instruction decoding
JPS58222348A (ja) 情報処理装置
US3644900A (en) Data-processing device
US6005502A (en) Method for reducing the number of bits needed for the representation of constant values in a data processing device
US5050076A (en) Prefetching queue control system
US5630158A (en) Central processing unit including inhibited branch area
EP0416345B1 (en) Instruction decoder for a pipeline processor
JPS6211736B2 (ja)
JPS6236575B2 (ja)
JPS6242301B2 (ja)
JP3100705B2 (ja) マイクロプロセッサ内の命令準備のための装置
JP2583614B2 (ja) ベクトル演算装置
JPH0228828A (ja) 最大値最小値検出回路
JP2511063B2 (ja) パイプライン制御方式