JPS62128338A - 命令バツフア・スタツク方式 - Google Patents

命令バツフア・スタツク方式

Info

Publication number
JPS62128338A
JPS62128338A JP26883485A JP26883485A JPS62128338A JP S62128338 A JPS62128338 A JP S62128338A JP 26883485 A JP26883485 A JP 26883485A JP 26883485 A JP26883485 A JP 26883485A JP S62128338 A JPS62128338 A JP S62128338A
Authority
JP
Japan
Prior art keywords
instruction
subroutine
buffer
displacement
counter
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
JP26883485A
Other languages
English (en)
Inventor
Tetsuya Fujita
哲也 藤田
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 JP26883485A priority Critical patent/JPS62128338A/ja
Publication of JPS62128338A publication Critical patent/JPS62128338A/ja
Pending legal-status Critical Current

Links

Abstract

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

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は現在実行中の命令に続く命令を先行してメモリ
より命令バッファに取出す制御を行なう中央処理装置に
おける命令バッファ・スタック方式に関する。
〔従来の技術〕
従来の命令先取りを行なう中央処理装置においては、分
岐先の先取り命令を格納する命令バッファを複数個備え
たものはあったが、その命令バッファの個数も少なく、
またナブル−チンのレベル対応にそれ専用の命令バッフ
ァを設けたものはなかった(例えばNEC技報vo1.
35hh5/1982 p23〜p32rACOSシス
テム1000の高速化技術」参照)。
〔発明が解決しようとする問題点〕
従って、サブルーチン・レベルが深くなると、命令バッ
ファ数が少ないことと相まってサブルーチン・レベルの
深い先取り命令分によってレベルの浅い先取り命令分が
破壊されてしまうことになる。この為、サブルーチンか
らリターンしてくると、先程一度命令バノファに取出さ
れ消されてしまったコール命令の続きの命令例を再びメ
モリから命令バッファに取出す必要があり、同一命令を
メモリから二度読出してくるという無駄がある。
勿論、命令バッファ数を増大すれば、上記問題は一応解
消されるが、単に命令バッファ数を増大するだけでは制
御が複雑化するという問題がある。
本発明はこのような従来の問題点を解決したもので、そ
の目的は、制御を複雑化することなく、サブルーチンの
リターン時における命令続出し回数を減らし得るように
することにある。
〔問題点を解決するための手段〕
本発明は」二記目的を達成するために、現在実行中の命
令に続く命令を先行してメモリより命令バッファに取出
す;t、II御を行なう中央処理装置における命令バッ
ファ・スタック方式において、複数個の命令バッファか
ら構成される命令バッファ・スタックと、 命令をデコードする命令デコード・ユニットと、サブル
ーチンの多重度を表すサブルーチン・レベルを格納し、
前記命令デコード・ユニットでサブルーチンへのコール
命令又はサブルーチンからのリターン命令がデコードさ
れると前記サブルーチン・レベルを+1又は−1するサ
ブルーチン・レベル・レジスタと、 前記複数個の命令バッファのうち、前記サブルーチン・
レベル・レジスタに格納されたサブルーチン・レベルに
対応する命令バッファであるところのアクティブ命令バ
ッファを選択し、該アクティブ命令バッファへ前記メモ
リから読出された命令を供給する命令ブリフェッチ・セ
レクタと、現在実行中の命令の次の命令のアクティブ命
令バッファ内での位置を格納するディスプレイスメント
命令カウンタと、 前記?1敗個の命令バッファのうち、前記サブルーチン
・レベル・レジスタに格納されたサブルーチン・レベル
に対応するアクティブ命令バッファをI IJ< L、
該選択したアクティブ命令バッファから前記ディスプレ
イスメント命令カウンタの指している命令を取出して前
記命令デコード・ユニットへ供給する命令フェッチ・セ
レクタと、前記命令デコード・ユニー/ トでコール命
令又はリターン命令がデコードされると、コール命令の
ときは前記ディスプレイスメント命令カウンタの内容を
プッシュ格納し、リターン命令のときは最も最近にプッ
シュ格納された内容を前記ディスプレイスメント・命令
カウンタにポツプ取出しするディスプレイスメント命令
カウンタ・スタックとを設ける。
〔作用〕
現在のサブルーチン・レベルをrmJとすると、命令ブ
リフェッチ・セレクタと命令フェッチ・セレクタは共に
レベルrmJ対応の命令バッファを選択しており、レベ
ルrmJのサブルーチンの命令はこの命令バッファに先
取りされ、ここから取出されて命令デコード・ユニット
へ供給される。
レベルrmJのサブルーチンの番地lにあるコール命令
が命令デコード・ユニットでデコードされると、サブル
ーチン・レベル・レジスタの格納レベルはrm+lJと
なり、命令ブリフェッチ・セレクタと命令フェッチ・セ
レクタはともにレベルrm+lJの命令バッファを選択
するように切換わり、レベルrm+IJのサブルーチン
の命令はこの命令バッファに先取りされるようになる。
また、ディスプレイスメント命令カウンタ・スタックに
レベルrrnJのサブルーチンの次の実行命令の番地r
j!+lJがポツプ格納される。
レベルrm−1−IJのサブルーチンに含まれるリター
ン命令が命令デコード・ユニットでデコードされると、
命令ブリフェッチ・セレクタと命令フェッチ・セレクタ
は共にレベルrmJ対応の命令バッファを再び選択する
ように切換わり、ディスプレイスメント命令カウンタに
は、ディスプレイスメント命令カウンタ・スタックから
ポツプ取出しされたr6+lJがセットされ、コール命
令の次の命令が実行される。
〔実施例〕
次に本発明の実施例について図面を参照して説明するゆ 第1図は本発明の一実施例の要部ブし1ツク図であり、
lはメモリ、2は複数(N個)の“命令バッファI B
o = I Bs−+から構成される命令バッファ・ス
タック、3は命令デコード・ユニット、4は命令ブリフ
ェッチ・セレクタ、5は命令フェッチ・セレクタ、6は
サブルーチン・レベル・レジスタ、7はディスプレイス
メント命令カウンタ、8はディスプレイスメント命令カ
ランク・スタック、9はサブルーチン・レベル指示信号
、10はコール/リターン指示信号、11はメモリlか
ら読出された命令が命令バッファ・スタック2に送られ
るデータ径路、12は命令バッファ・スタック2から取
出された命令が命令デコード・ユニット3に送られるデ
ータ径路をそれぞれ示す。
次にその動作を説明する。
例として、今サブルーチン・レベルは「0」とし、命令
バッファ・スタック2では命令バッファIBoが選1尺
されて(史われているとする。即ち、アクティブ命令バ
ッファはレベル「0」に対応する命令バッファIBoで
ある。そして、命令バッファlBoのnワード目にコー
ル命令(CALL)があり、このコール命令が実行され
てから、そのサブルーチンからのリターン命令(RET
URN)が実行されるまでの動作を説明する。なお、プ
ログラムの例を第2図に示す。
サブルーチン・レベルは今「0」なので、サブルーチン
・レベル・レジスタ6の内容は「0」で、サブルーチン
・レベル指示信号9により命令ブリフェッチ・セレクタ
4及び命令フェッチ・セレクタ5はアクティブ命令バッ
ファである命令バッファI86をそれぞれ選択している
。つまり、第2図のメイン側の命令は第3図に示すよう
に命令バッファIB、へ先行取出しされる。
ディスプレイスメント命令カウンタ7は、命令バソフプ
lBo内のワードの番地(第3図左側に示す0.1.−
・、n、−)で現在実行されている命令の次の命令を指
している。
メイン側のコール命令が実行されると、そのコール命令
はnl地にあるのでディスプレイスメント命令カウンタ
7の内容はQ+lとなる。このとき、ディスプレイスメ
ント命令カウンタ・スタック8は、今サブルーチン・レ
ベルが「0」なので、中には何もプッシュ格納されてい
ない。このときのディスプレイスメント命令カウンタ7
とディスプレイスメント命令カウンタ・スタック8の格
納状態を第5図の上部に示す。
上記のような状態でコール命令が実行されて第2図のサ
ブルーチン5tJB l側に移ったとすると、コール命
令が実行されたことがコール/リターン指示信号IOに
よってサブルーチン・レベル・レジスタ6とディスプレ
イスメント命令カウンタ・スタック8に知らされる。こ
れにより、サブルーチン・レベル・レジスタ6は内容を
+1してサブルーチン・レベル「1」を値として格納す
る。このサブルーチン・レベルrlJは、サブルーチン
・レベル指示信号9により命令ブリフェッチ・セレクタ
4と命令フェッチ・セレクタ5に伝えられ、両セレクタ
4.5はアクティブ命令バッファIB+を選択する。
一方、ディスプレイスメント命令カウンタ・スタック8
は、ディスプレイスメント命令カウンタフの内容をプッ
シュ格納し、アクティブ命令バ。
ファ■B1上でサブルーチン5UBIの先頭の命令が格
納されるワードの番地kをディスプレイスメント命令カ
ウンタ7にセットする。なお、kは命令バッファIB+
の先頭から入れるということで「0」としても良いし、
サブルーチン5UBIのメモリ上での7ドレスのうらの
何ビットか例えば下位16ビツトをそのまま採用しても
良い。このときのディスプレイスメント命令カウンタ7
とディスプレイスメント命令カウンタ・スタック8の格
納状態を第5図の下部に示す。
命令ブリフェッチ・セレクタ4及び命令フェッチ・セレ
クタ5は、命令バッファIn+ をil択しているので
、サブルーチンS tJ B 1の命令(第2図の右側
)は、第4図に示すように命令バッファIB、のワード
kから格納されていく、従って、命令デコード・ユニッ
ト3には、以降、命令バッファI8.のワードkから順
に命令が取出されて供給されていく。
サブルーチンS[JBIの命令はリターン命令に出会う
まで、継続して命令バッファIB、に取出される。但し
、また別のサブルーチンへのコール命令があると、その
先は順次’ Bz −I R3、−と使われていく。
サブルーチン5UBIでリターン命令が実行されると、
その旨がコール/リターン指示信号IOでサブルーチン
・レベル・レジスタ6とディスプレイスメント命令カウ
ンタ・スタック8に知らされる。これにより、サブルー
チン・レベル・レジスタ6ではサブルーチン・レベルを
−lして「0」とし、ディスプレイスメント命令カウン
タ・スタック8では先程プッシュ格納されていたn+1
がディスプレイスメント命令カウンタ7に取出される(
ポツプ取出し)。また、命令ブリフェッチ・セレクタ4
と命令フェッチ・セレクタ5は再び命令バッファI[3
,を選択する。
このように、サブルーチン・コール側であるメイン側の
先行取出しされた命令列は壊されることなく命令バッフ
ァ18.に蓄えられており、リターンした後、メイン側
の L    R1,DATAI 八〇DRI、R2 という命令は、メモリlから取出す必要はなく、命令バ
ッファlBaから直ちに命令デコード・ユニット3に送
られる。
〔発明の効果〕
以上説明したように、本発明は、サブルーチンのそれぞ
れ異なるレベルに対応する複数の命令バッファより構成
される命令バッファ・スタックを設け、サブルーチン・
コールする例の先行取出しした命令列を捨てることなく
リターン命令があるまで残しておくので、サブルーチン
のリターン時におけるメモリへの命令読出し回数を凍ら
すことができ、サブルーチン・リターン後の次の命令の
実行に制御を即座に移せることが可能となる。また、命
令バッファは各サブルーチン・レベルに対応して用意し
であるので、制御が容易になるという効果もある。従っ
て、サブルーチン・コールの頻出する構造化プログラミ
ング言語で書かれたプログラム等の実行時間を早め、中
央処理装置の性能を向上する利点がある。
【図面の簡単な説明】
第1図は本発明の一実施例の要部ブロック図、第2図は
本発明の実施例で使用するプログラムの一例を示す図、 第3図は命令バッファIB、の格納状態の一例を示す図
、 第4図は命令バッファIB、の格納状態の一例を示す図
、 第5図はディスプレイスメント命令カウンタ7とディス
プレイスメント命令カウンタ・スタック8の格納状態の
一例を示す図である。 図において、lはメモリ、2は命令バッファ・スタック
、3は命令デコード・ユニット、4は命令プリフェッチ
・セレクタ、5は命令フェッチ・セレクタ、6はサブル
ーチン・レベル・レジスタ、7はディスプレイスメント
命令カウンタ、8はディスプレイスメント命令カウンタ
・スタック、9はサブルーチン・レベル指示信号、IO
はコール/リターン指示信号、11.12はデータ径路
である。

Claims (1)

  1. 【特許請求の範囲】 現在実行中の命令に続く命令を先行してメモリより命令
    バッファに取出す制御を行なう中央処理装置における命
    令バッファ・スタック方式において、 複数個の命令バッファから構成される命令バッファ・ス
    タックと、 命令をデコードする命令デコード・ユニットと、サブル
    ーチンの多重度を表すサブルーチン・レベルを格納し、
    前記命令デコード・ユニットでサブルーチンへのコール
    命令又はサブルーチンからのリターン命令がデコードさ
    れると前記サブルーチン・レベルを+1又は−1するサ
    ブルーチン・レベル・レジスタと、 前記複数個の命令バッファのうち、前記サブルーチン・
    レベル・レジスタに格納されたサブルーチン・レベルに
    対応する命令バッファであるところのアクティブ命令バ
    ッファを選択し、該アクティブ命令バッファへ前記メモ
    リから読出された命令を供給する命令プリフェッチ・セ
    レクタと、現在実行中の命令の次の命令のアクティブ命
    令バッファ内での位置を格納するディスプレイスメント
    命令カウンタと、 前記複数個の命令バッファのうち、前記サブルーチン・
    レベル・レジスタに格納されたサブルーチン・レベルに
    対応するアクティブ命令バッファを選択し、該選択した
    アクティブ命令バッファから前記ディスプレイスメント
    命令カウンタの指している命令を取出して前記命令デコ
    ード・ユニットへ供給する命令フェッチ・セレクタと、 前記命令デコード・ユニットでコール命令又はリターン
    命令がデコードされると、コール命令のときは前記ディ
    スプレイスメント命令カウンタの内容をプッシュ格納し
    、リターン命令のときは最も最近にプッシュ格納された
    内容を前記ディスプレイスメント命令カウンタにポップ
    取出しするディスプレイスメント命令カウンタ・スタッ
    クとを具備したことを特徴とする命令バッファ・スタッ
    ク方式。
JP26883485A 1985-11-29 1985-11-29 命令バツフア・スタツク方式 Pending JPS62128338A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP26883485A JPS62128338A (ja) 1985-11-29 1985-11-29 命令バツフア・スタツク方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP26883485A JPS62128338A (ja) 1985-11-29 1985-11-29 命令バツフア・スタツク方式

Publications (1)

Publication Number Publication Date
JPS62128338A true JPS62128338A (ja) 1987-06-10

Family

ID=17463909

Family Applications (1)

Application Number Title Priority Date Filing Date
JP26883485A Pending JPS62128338A (ja) 1985-11-29 1985-11-29 命令バツフア・スタツク方式

Country Status (1)

Country Link
JP (1) JPS62128338A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02278337A (ja) * 1989-04-19 1990-11-14 Nec Corp 命令キュー装置
US7783868B2 (en) 2002-06-28 2010-08-24 Fujitsu Limited Instruction fetch control device and method thereof with dynamic configuration of instruction buffers

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02278337A (ja) * 1989-04-19 1990-11-14 Nec Corp 命令キュー装置
US7783868B2 (en) 2002-06-28 2010-08-24 Fujitsu Limited Instruction fetch control device and method thereof with dynamic configuration of instruction buffers

Similar Documents

Publication Publication Date Title
FI90804C (fi) Dataprosessorin ohjausyksikkö, jolla on käskyn esihaun uudelleensuuntausta käyttävä keskeytyspalvelu
US5276882A (en) Subroutine return through branch history table
US6330664B1 (en) Method relating to handling of conditional jumps in a multi-stage pipeline arrangement
US20040098540A1 (en) Cache system and cache memory control device controlling cache memory having two access modes
JPS63199341U (ja)
JP2001516920A (ja) 可変幅インストラクションを備えるデジタルシグナルプロセッサ
US6631459B1 (en) Extended instruction word folding apparatus
US5146570A (en) System executing branch-with-execute instruction resulting in next successive instruction being execute while specified target instruction is prefetched for following execution
US4430708A (en) Digital computer for executing instructions in three time-multiplexed portions
JPS62128338A (ja) 命令バツフア・スタツク方式
JPS63314644A (ja) デ−タ処理装置
US6842846B2 (en) Instruction pre-fetch amount control with reading amount register flag set based on pre-detection of conditional branch-select instruction
US5649226A (en) Processor having multiple instruction registers
WO2002039272A9 (en) Method and apparatus for reducing branch latency
JP2817524B2 (ja) 命令キャッシュ制御方式
JPS60117335A (ja) 情報処理装置
JPH04317130A (ja) 分岐命令処理装置
JPS6116334A (ja) デ−タ処理装置
JPH0348535B2 (ja)
JPS63254532A (ja) 中央処理装置のアドレス変換方式
JPH05257686A (ja) 命令キャッシュ回路
JPH06250843A (ja) 演算処理方法および演算処理装置
JPH04188227A (ja) マイクロプロセッサ
JPS6114536B2 (ja)
JPH0855033A (ja) 情報処理装置