JPH03255531A - 命令取出装置 - Google Patents

命令取出装置

Info

Publication number
JPH03255531A
JPH03255531A JP2055469A JP5546990A JPH03255531A JP H03255531 A JPH03255531 A JP H03255531A JP 2055469 A JP2055469 A JP 2055469A JP 5546990 A JP5546990 A JP 5546990A JP H03255531 A JPH03255531 A JP H03255531A
Authority
JP
Japan
Prior art keywords
instruction
block
buffer
instruction buffer
address
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
JP2055469A
Other languages
English (en)
Inventor
Seiki Yoshida
吉田 清貴
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 JP2055469A priority Critical patent/JPH03255531A/ja
Publication of JPH03255531A publication Critical patent/JPH03255531A/ja
Pending legal-status Critical Current

Links

Landscapes

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

Abstract

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

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は、命令取出装置に関し、特に高速の情報処理装
置における命令取出装置に関する。
〔従来の技術〕
近年高速の情報処理装置においては、命令の実行と並行
して、実行中の命令シーケンスの後続の命令シーケンス
をキャッシュ・メモリより読出し、これを−時記憶する
為の命令バッファを持つことが多い。又命令バッファか
らの命令の取出、命令のデコード、オペランドの準備演
算の各過程に対応した一連の処理ステージを備え、マシ
ンサイクルの周期で順次命令を前記一連のステージに流
して処理するパイプライン処理が行なわれることか多い
従来科学技術計算専用の処理装置に於ける命令取出方式
の1つとして、命令バッファの容量を例えば数にバイト
程度に大きくしてこれを複数個のブロックに分割し、記
憶装置の命令語エリア内の実行中の命令語をブロック単
位に前記命令バッファ上のブロックに転記する。同時に
命令バッファの各ブロック毎に該ブロックに保持されて
いる命令語の命令アドレスを保持する手段を設け、デコ
ードすべき命令語の命令アドレスで前記アドレス保持手
段のアドレスをサーチすることにより、命令バッファ上
のブロック番号を求め、該ブロックから順次命令をデコ
ード・ステージに取出す方式がある。なお、命令バッフ
ァ上のアドレスは、主記憶のアドレスとは異なり、命令
バッファ上のブロック番号とブロック内ワード番号、と
きにはワード肉詰番号等から構成されている。
ブロックの最後まで読出して他ブロックの先頭命令を読
みに行く際や、分岐命令で指定された分岐先命令を読み
に行く際に、所定の命令語か命令バッファ上に無い(命
令バッファ・ミスヒツト)場合は複数個のブロックの内
の1つに、所定の命令語を含む、記憶装置上のエリアに
転記する。これを命令バッファのブロックの書換えと呼
ぶ。
〔発明が解決しようとする課題〕
上述した従来の命令取出装置ては、分岐命令が連続して
いる場合、ブロックの書換えか頻繁に起きるという欠点
がある。すなわち命令バッファが保持するブロック数以
上のブロックを次々にジャンプしていく様なループが存
在すると、1ブロツク内で実行される命令か少ない割に
はミス・ヒツトが頻発し、記憶装置から命令バッファへ
の転記によるロスタイムが増大する。
〔課題を解決するための手段〕
本発明の命令取出装置は、記憶装置から読出された命令
語をブロック単位に保持する命令バッファと、該命令バ
ッファ上のブロックの一個ないし数個に対応して該ブロ
ック群に保持される命令語の先頭アドレスを保持するア
ドレス保持手段と、前記命令バッファから読出されてい
る命令語のアドレスの上位ビットを保持する命令カウン
タと、該命令バッファから読出されている命令語のブロ
ック番号及びブロック内アドレスを示す命令ポインタと
、読出したい命令語が該命令バッファ上に存在しないケ
ースが、予め定められた時間内で何回発生するかをカウ
ントする第1の頻度数測定手段と、分岐命令が予め定め
られた時間内で何回実行されたかをカウントする第2の
頻度数測定手段とを有している。
〔実施例〕
次に、本発明について図面を参照して説明する。
第1図は本発明の一実施例である命令取出装置のブロッ
ク図である。この実施例では、命令長は4バイト即ち3
2ビツトてあり、命令の論理アドレスは30ビツトのバ
イトアドレスである。
第1図において、命令バッファ3は32バイト×64ワ
ードの構成で、続出書込が同時に可能な記憶素子で実現
されている。ブロックとしては、16ワード毎にブロッ
ク0,1,2.3として使用するモード(以降4ブロツ
ク・モードと呼ぶ)と8ワード毎にブロック00,01
,10,11゜20.21,30.31として使用する
モード(以降8ブロツク・モードと呼ぶ)とがある。
最初に4フロツク・モート時ての動作を説明する。命令
バッファ3の各ブロックにはキャッシュ・メモリにある
命令語情報の1フロック即ち512バイト境界から始ま
る512バイトの情報がロードされる。書込データレジ
スタ2は前記のロード時にキャッシュ・メモリからの応
答情報を一度受は命令バッファ3に書込む為のレジスタ
で、32バイトである。セレクタ4は命令バッファ3の
続出出力8語の内の1つを選択し、その出力は4バイト
の命令レジスタ5にストローブされる。
先頭アドレス・レジスタ21及び15は、命令バッファ
3のブロックOないしブロック3の前半256バイトに
保持されている命令語のアドレスの上位24ビツトをそ
れぞれ保持する為のレジス夕である。先頭アドレス・レ
ジスタ31及び35は、命令バッファ3のブロック0な
いしブロック3の後半256バイトに保持されている命
令語のアドレスの上位24ビツトをそれぞれ保持する為
のレジスタである。
尚第1図では一部省略しているが先頭アドレス・レジス
タは命令バッファ3の各ブロック対応にあり計8個用意
されている。ただし4ブロツク・モード時に主に用いる
のは先頭アドレス・レジスタ21及び25である。
命令カウンタ18は命令バッファ3から読出されている
命令語の記憶装置上のアドレス上位24ビツトと、図示
してないインストラクション・カウンタの初期値(以下
初期ICという)の上位24ビツトと、分岐命令によっ
て指定される分岐先の命令語のアドレス上位24ビツト
がセットされるレジスタである。この命令カウンタ18
の値をコンパレータ22,26により先頭アドレス・レ
ジスタ21.25とそれぞれ比較し、一致出力により、
分岐先の命令語のあるブロック番号やブロック越先(続
出される命令語が成るブロックの最後の命令語から他の
ブロックの最初の命令語に移るシーケンスをブロック越
と呼ぶ)の命令語のあるブロック番号を求める。ここて
命令バッファ3に入力する2つのカウンタにつき説明し
ておく。
第3図の(a)は命令バッファ3の読出しアドレス、カ
ウンタ(以降“命令ポインタ″と呼ぶ)6の形式を示す
図である。ビットOと1はブロック番号、ビット2〜5
はブロック内のワード番号。
ビット6〜8はワード内諾番号を夫々示す。命令バッフ
ァ3から順次命令語を読出している時は、ビット2〜8
の下位7ビツトは+1加算器11及びセレクタ9,10
の回路で+1される。ビット2は4ブロツク・モード時
はワード番号、8ブロツク・モード時はブロック番号を
表わす。セレクタ8は命令ポインタ6のブロック番号部
への入力を選択しビット0.1に対しては信号線202
で、ビット2に対しては信号線20で入力データを供給
する。セレクタ9は命令ポインタ6のワード番号部及び
語番号部への入力を選択し、ビット2に対しては信号線
205で、ビット3〜8に対しては信号線201で人力
データを供給する。セレクタ10は信号線20Bを介し
てビット2の入力データを最終的に選択する。すなわち
4ブロツク・モードならば信号線205を8ブロツク・
モードならば信号線204を選択する。
第3図(b)は命令バッファ3に対する書込みアドレス
カウンタ1の形式を示す図であり、形式の面からは(a
)と同じである。主記憶又はキャッシュ・メモリから命
令バッファ3へ命令語情報をロードしている時は、ビッ
ト2〜5は+1されてゆき、命令バッファ3には順次命
令語情報が書込まれてゆく。
ラウンド・ロビン(以降R,Rと呼ぶ)12は、主記憶
又はキュッシュ・メモリから命令バッファ3へ命令語情
報をロードする際に、ロード先のブロック番号を示すレ
ジスタてあり、形式を第3図(c)に示す。ロード先の
ブロック番号は、過去のアクセス履歴にかかわり無く、
ブロックOからブロック3へと順々に持回られる。従っ
てブロックロード要求が出される度にR,R12は+2
される(4ブロツク・モード時はR,R12のビット2
は意味が無いことに注意〉 制御回路38は上記の命令バッファ3の読出し。
書込み、レジスタのストローブ及びレジスタの入出力切
替時等の信号を発生する回路である。
次に第1図及び第3図を参照して4ブロツク・モード時
の動作を説明する。制御回路38は、命令取出の開始指
示を受けると、初期ICの上位24ビツトをセレクタ1
7を介して命令カウンタ18にセットし、初期ICの下
位7ビツトを命令ポインタ6のブロック内ワード番号部
及びワード肉詰番号部にセットする。4ブロツク・モー
ド時では命令カウンタ18のLSBと命令ポインタ6の
ワード番号部のMSB (ビット2)とは重複している
開始指示を受けた時点では、命令バッファ3には有効な
命令語はロードされておらず、先頭アドレスレジスタ2
1,25.31.35対応に設けられた有効性表示ビッ
ト(以降Vビットと呼ぶ)20.24,30.34は全
てリセット状態である。従ってブロックO〜3の内ヒツ
トするものは無く、命令カウンタ18の値をアクセス・
アドレスとして、図示していないキャッシュ・メモリに
ブロックロード要求を送出する。ロード先のブロック番
号はR,R,12で示されるブロックを選択するので、
最初にブロックOが選ばれる。
制御回路38は、キャッシュ・メモリから応答信号を受
けると、データ線600を通して送られて来る32バイ
ト×16回の応答情報を命令バッファ3のブロックOの
各ワードに書込む。情報はリクエスト・アドレスの情報
を含む32バイトを先頭にして16回送られてくる。
又制御回路38は応答信号を受けると、命令カウンタ1
8の値を先頭アドレス・レジスタ21に命令カウンタ1
8の値に+1加算した値を先頭アドレス・レジスタ31
にセットしくセレクタ29は信号線400を選ぶ)、こ
のレジスタ対応のVビット2−0.30をセットする。
これによりコンパレータ22の出力が1“となり、エン
コーダ27からヒツト信号501とブロック番号信号5
oOが出力される。ブロック番号信号500は3ビツト
の信号線だか4ブロツク・モード時はLSBは意味を持
たない。又コンパレータ32,36の出力は4ブロツク
・モード時は常に“Oパであり、比較結果は8ブロツク
・モード600によってイネーブルされる。
制御回路38はブロック番号信号500を命令ポインタ
6のブロック番号部にセットし、以降カウンタの下位7
ビツトを順次+1カウントする(先に第3図(a)の説
明のところて言及)。これにより命令レジスタ5には所
定の命令語が順次読出される。
命令ポインタ6の下位7ビツトがオール“1′“を示す
と、すなわちブロック末尾の命令語のアドレスがセット
されると、検出回路7から+2セレクト信号200が生
し、これによりセレクタ17を介して命令カウンタ18
の値が+2加算器1つによって+2される。+2された
命令カウンタ18の値をコンパレータ22,26を中い
て先頭アドレス・レジスタ21.25と比較し、一致出
力によりブロック鍼先の命令語のあるブロック番号を求
める。
左記のサーチの結果、ブロック鍼先のブロックが命令バ
ッファ3上に存在する時(ヒツトと呼ぶ〉エンコーダ2
7の出力500がブロック鍼先のブロックとなり、命令
ポインタ6の上位2ビツトにセットされ、ブロック鍼先
の命令語が読出される。ブロック鍼先のブロックが命令
バッファ3上に存在しない時(ミス・ヒツトと呼ぶ)は
ブロックOの命令語を全て読出した後にキャッシュ・メ
モリに対してブロック・ロード要求が出される。先に述
べた様に、R,R,12で示されるブロックがブロック
・ロードの対象となる。R0R112の出力100はセ
レクタ8を介して書込アドレスカウンタ1及び命令ポイ
ンタ6の上位2ビツトにセットされる。R,R,12で
示されるブロック(例えばブロック3とする〉に対応す
る先頭アドレス・レジスタ25.35にはストローブ信
号10Bによりそれぞれ命令カウンタ18の値と命令カ
ウンタ18の値をさらに+1した値がセットされ、Vビ
ット24.34かセットされる。後は開始指示を受けた
時のシーケンスと同様である。
命令バッファ3から読出した命令語か分岐命令であって
パイプラインの実行ステージより分岐指示201が出さ
れた場合は、アドレス演算部の出力である分岐先アドレ
スのうち上位24ビツトが命令カウンタ18にセットさ
れ、分岐先アドレスの下位7ビツトが命令ポインタ6の
ワード番号部及び語番号部にセットされる。次に命令カ
ウンタ18の値をコンパレータ22,26を用いて先頭
アドレス・レジスタ21.25と比較して一致出力によ
り分岐先の命令語のあるブロック番号を求める。左記の
サーチの結果、ヒツトした場合はエンコーダ27の出力
500が命令ポインタ6の上位2ビツトにセットされ、
分岐先の命令語か読出される。サーチの結果がミス・ヒ
ツトだった場合はブロック・ロード要求が出される。後
のシーケンスはブロック越えミス・ヒツトのケースと同
じである。
次に8ブロツク・モード時での動作を説明する。8ブロ
ツク・モード時では、命令バッファ3の各ブロック(ブ
ロック00.01.〜31)にキャッシュ・メモリにあ
る命令語情報の1ブロック即ち256バイト境界から始
まる256バイトの情報かロードされる。先頭アドレス
・レジスタ21及び25は命令バッファ3のブロック0
0゜10.20.30に保持されている命令語のアドレ
スの上位24ビツトを夫々保持する為のレジスタである
。先頭アドレス・レジスタ31及び35は、ブロック0
1,11,21.31に保持されている命令語のアドレ
スの上位24ビツトを保持する為のレジスタである。
命令カウンタ18と先頭アドレス・レジスタ31.35
との比較を行なうコンパレータ32,36の出力はミス
ヒツト頻度数測定回路39から供給される8ブロツグ・
モード信号によってイネーブルされる。4ブロツク・モ
ードから8ブロツク・モードへの移行は、ある一定時間
内に発生するミス・ヒツトの回数が規定値を越えた場合
に起こる。ミスヒツト頻度数測定回路39はこのミスヒ
ツトの回数をカウントする回路であり、現在この命令取
出装置がどちらのブロック・モードで動いているかを示
すモート・ビットを持っている。第2図はミスヒツト頻
度測定回路の詳細を示す。ブロック越えや分岐等でミス
ヒツトが発生した時、ミスヒツトカウンタ60はミスヒ
ツト信号502によってカウント・アップされる。タイ
マ62は成る一定時間が経過するとリセット信号64に
よってミスヒツトカウンタ60をクリアする。デコーダ
61はミスヒツトカウンタ60の値が規定値を越えた場
合にセット信号線65を介して8ブロツク・モードビッ
トをセットする。8ブロツク・モートピットは一旦セッ
トされると命令取出装置の各セレクタやキャッシュ・メ
モリへその出力が送られ、以後、本命令取出装置は8ブ
ロツク・モードで動作する。
4ブロツク・モードで動作中にミス・ヒツトが頻繁に起
こるプログラム例を第4図に示す。
この例ではLBLIからLBL5まで分岐命令が連続し
ており、かつ各分岐命令は512B単位の5つのブロッ
クに分散している。従ってLBLlからLBL4まで実
行しようとすると、第4図に示す512B単位の4つの
ブロックがそれぞれ命令バッファ3のブロック#0〜3
にマツピングされる。そしてLBL5を実行時にはブロ
ック#Oの内容(LBLIを含む512B)がLBL5
を含む512Bに置き換えられる。LBLIからLBL
5は100回のループになっていて、LBL5実行後は
再びLBLIを実行しなければならない。ところがLB
LIを含むブロックは直前にLBL5を含むブロックに
置換されている為命令バッファミスヒツトとなり、今度
はブロック#1(L B L 2を含む512Bがロー
ドされる〉がLBLIを含むブロックに置き換えられる
。以下同様に100回ループ中いずれの分岐命令を実行
する時も命令バッファミスヒツトとなりブロックロード
が行なわれる。すなわち命令取出しは命令バッファ3で
はなくキヤ・〉・シュ・メモリに対して行なわれており
、命令バッファ3の存在意義がそくなる。左記の様な状
態が発生する原因は命令バッファ3のブロック数が4に
固定されている為である。
第4図の例の様に頻繁にミスヒツトが起きるとミスビッ
ト頻度数測定回路39により本命令取出装置は8ブロツ
クモードに移行する。第5図に4ブロツクモードから8
ブロツクモードに移る際の命令バッファ3のマツピング
状態の遷移を示す。
第5図(a)の状態で8ブロツクモードに移り(b)の
様なマツピング状態になった〈ブロックモードを4から
8に移行させる契機となったブロック・ロードは、ブロ
ック#3へのLBL4を含む512Bのロードとする〉
。ブロック#30のLBL4の分岐命令が実行されると
命令カウンタ18には分岐先のLBL5のアドレスのう
ち上位24ビツトがセットされ、下位7ビツトが命令ポ
インタ6のワード番号部(ビット3〜5)と語番号部(
ビット6〜8〉にセットされる。次に命令カウンタ18
の値を、コンパレータ22,26゜32.36を用いて
、先頭アドレス・レジスタ21,25,31.35と比
較して一致出力により分岐先命令語のブロック番号を求
め左記サーチの結果ヒツトした場合はエンコーダ27の
出力500が命令ポインタ6の上位3ビツトにセットさ
れ、分岐先の命令語が読出される。第5図の例では分岐
先のLBL5が命令バッファ上に無いのでミスヒツトと
なる。直前のブロック・ロードの対象がブロック#3だ
ったので、ラウンド・ロビン12はビット2も含めてオ
ールOとなっている。
従って置換の対象はブロック#00となり、ラウンド・
ロビン12の出力はセレクタ8,10を介して命令カウ
ンタ6の上位3ビツトにセットされる。一方、デコーダ
16はラウンド・ロビン12の出力を受けて、置換され
るブロックに対応する先頭アドレス・レジスタ21のス
トローブ信号103を生成する。ストローブ信号103
によって先頭アドレス・レジスタ21には命令カウンタ
18の値がセットされる。先頭アドレス・レジスタが更
新されると、ラウンド・ロビン12の値は+1されるキ
ャッシュ・メモリに対しては8ブロツクモードビツトが
セットされた時点で8ブロツクモートに遷移した旨か通
知されているのでブロックロードで送られて来たブロッ
クサイズも256Bと4ブロツク・モードの半分となっ
ている。
ロード・データは書込みデータレジスタ2を介してブロ
ック#OOにロードされ、命令バッファ3は第5図(c
)の様にマツピンクされる。
LBL’5が読出され実行されると、命令カウンタ18
には分岐先のLBLIのアドレスのうち上位24ビツト
がセットされ、下位7ビツトが命令ポインタ6の下位6
ビツトにセットされ、LBLlを含むブロック(256
B)は直前に置換されているので又ミスヒツトとなる。
ラウンド、ロビン12の値“001”′ (2進表現)
が再び命令ポインタ6の上位3ビツトにセットされる。
先頭アドレス・レジスタ31はストローブ信号103に
よってストローブされ、命令カウンタ18の値がセレク
タ29を介してセットされる。セレクタ29は信号線3
00の方を向いている。以後のシーケンスはLBL5の
ブロックロードと同じ、これによって命令バッファ3は
第5図(d)の様にマツピングされる。
これによって第4図のループプログラムで現われる分岐
命令が全て命令バッファ3上にマツピングされ、以降ル
ープから抜けるまでミスヒツトは起こらない。ループか
ら抜けると、第5図(d)の例では、LBL5はブロッ
ク#OOの最後の命令なのでブロック越えが発生する。
8ブロツク・モード時では命令ポインタ6の下位6ビツ
トがオール“1゛を示すと、検出回路7から+1セレク
ト信号200が生じ、これによりセレクタ17を介して
命令カウンタ18の値が+1加算器23によって+1さ
れる。+1された命令カウンタ18の値をコンパレータ
22,26,32.36を用いて先頭アドレス・レジス
タ21,25,31゜35と比較し、一致出力によりブ
ロック鍼先の命令語のあるブロック番号を求める。後の
シーケンスはヒツトでもミスヒツトでま分岐指示を受け
た時のシーケンスと同じである。
8ブロツク・モードから4ブロツク・モードへの移行は
、分岐命令による命令ストリーム変更頻度が予め定めら
れた回数よりも下まわった時に起こる。すなわち第4図
に示す様な、分岐命令か連続するルーチンを抜けた後は
、ブロック数か多いと当初見込んでいた命令バッファの
性能を達成できない。なぜなら命令ストリームの変更が
少ないルーチンでは、ブロック・サイズを減らすよりも
、増やす方がキャッシュ・メモリからのフロック転送に
よるオーバーヘットを少なくすることができる為である
(1回のリクエストでキャッシュから取り込むサイズが
大きいと、フロック越えの発生率が低くなる為〉。
命令ストリーム変更頻度は、命令ストリーム変更頻度測
定回路40(以降測定回路4oと呼ぶ)でカウントする
。第6図を用いて測定回路40の動作を説明する。デコ
ーダ72は、信号線700を介して命令レジスタ5に読
出された命令が分岐命令か否か、分岐命令ならば命令ス
トリームの変更させるか否かを判定する。分岐命令でが
っ命令ストリーム変更を伴うならばデコーダ72はカウ
ンタ70を+lさせる。力巾ント70は予め定められた
時間内に命令ストリーム変更が何回発生したかをカウン
トするカウンタであり、タイマ73からのタイミング信
号703によりリセットされる。タイマ73は上記予め
定められた時間が経過する毎に信号線703を介してタ
イミング・パルスが出される。デコーダ71は、左記タ
イミング時にカウンタ70の値が予め定められた値を超
えているか否かを判定する。超えていない場合、すなわ
ち予め定められた時間内に発生する命令ストリーム変更
の数が一定値より少なくなると信号線66を介して8ブ
ロツク・モードビット63をリセットし、8ブロツク・
モードがら4ブロツク・モードに移行する。この時命令
バッファ3上の各ブロック対応のVビット20〜24.
30〜34もリセットされ、再度命令バッファ3へのブ
ロック・ロードが実行される。
〔発明の効果〕
以上説明したように本発明は、予め定められた時間内に
起こる命令バッファミスヒツトの回数が規定値を越えた
場合に、命令バッファのブロック・サイズを半減し、ブ
ロック数を倍加させることにより、分岐命令か連続し、
命令バッファのオリジナルのブロック数以上のフロック
を次々にジャンプして行くケースでも命令バッファミス
ヒツトの回数を減らす効果がある。又分岐命令による命
令ストリームの変更回数が規定値よりも少なくなった場
合ハードウェアでブロック数を減少させることにより、
命令バッファの本来の性能を自動的に取戻す効果がある
【図面の簡単な説明】
第1図は本発明の一実施例による命令取出装置を示すブ
ロック図、第2図は本実施例のミスヒツト頻度数測定回
路を示す詳細ブロック図、第3図は本実施例の命令ポイ
ンタレジスタ、書込みアドレスレジスタ及び゛ラウンド
・ロビンカウンタにセットされるデータの形式を示す説
明図、第4図は分岐命令が連続して命令バッファミスヒ
ツトが頻繁に起こる一例を示す説明図、第5図は4ブロ
ツクモードから8ブロツクモードに移っていく際の命令
バッファのマツピングの遷移を示す説明図、第6図は本
実施例の命令ストリーム変更頻度測定回路を示す図であ
る。 1・・・命令バッファ書込みアドレス・レジスタ、2・
・・命令バッファ書込みデータ・レジスタ、3・・・命
令バッファ、4,8,9,10,13,17゜29.3
3・・・切換え回路、5・・・命令レジスタ、6・・・
命令ポインタ、7・・・検出回路、11,14.23・
・・+1加算器、15.19・・・+2加算器、12・
・・ラウンド・ロビン・カウンタ、16,61,71.
72・・・デコーダ、18・・・命令カウンタ、2゜2
4.30.34.・・・命令バッファブロック対応有効
性表示ビット(Vビット)、21,25 31.35・
・・先頭アドレスレジスタ、22,26゜32.36・
・・コンパレータ、27・・・エンコーダ、38・・・
制御回路、39・・・ミスヒツト頻度数測定回路、40
・・・命令ストリーム変更頻度数測定回路、60・・・
ミスヒツトカウンタ、62・・・タイマ、63・・・8
ブロツク・モードビット、100〜103200〜20
5,3oo〜3o4,400〜404.500〜502
,600,700.64,65.66・・・信号線、7
o・・・命令ストリーム変更回数カウンタ、73・・・
タイマ。

Claims (1)

    【特許請求の範囲】
  1. 記憶装置から読出された命令語をブロック単位に保持す
    る命令バッファと、該命令バッファ上のブロックの一個
    ないし数個に対応して該ブロック群に保持される命令語
    の先頭アドレスを保持するアドレス保持手段と、前記命
    令バッファから読出されている命令語のアドレスの上位
    ビットを保持する命令カウンタと、該命令バッファから
    読出されている命令語のブロック番号及びブロック内ア
    ドレスを示す命令ポインタと、読出したい命令語が該命
    令バッファ上に存在しないケースが、予め定められた時
    間内で何回発生するかをカウントする第1の頻度数測定
    手段と、分岐命令が予め定められた時間内で何回実行さ
    れたかをカウントする第2の頻度数測定手段とを有する
    命令取出装置であって、該第1の測定手段で示される頻
    度が予め定められた回数を越えると、該命令バッファの
    ブロックサイズを減らして、ブロック数を増加させ、該
    第2の測定手段で示される頻度が予め定められた回数を
    下回ると、該命令バッファのブロックサイズを増やして
    ブロック数を減少させることを特徴とする命令取出装置
JP2055469A 1990-03-06 1990-03-06 命令取出装置 Pending JPH03255531A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2055469A JPH03255531A (ja) 1990-03-06 1990-03-06 命令取出装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2055469A JPH03255531A (ja) 1990-03-06 1990-03-06 命令取出装置

Publications (1)

Publication Number Publication Date
JPH03255531A true JPH03255531A (ja) 1991-11-14

Family

ID=12999464

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2055469A Pending JPH03255531A (ja) 1990-03-06 1990-03-06 命令取出装置

Country Status (1)

Country Link
JP (1) JPH03255531A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06231044A (ja) * 1992-12-22 1994-08-19 Internatl Business Mach Corp <Ibm> キャッシュ・メモリを有するデータ処理システム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06231044A (ja) * 1992-12-22 1994-08-19 Internatl Business Mach Corp <Ibm> キャッシュ・メモリを有するデータ処理システム

Similar Documents

Publication Publication Date Title
JPH02208728A (ja) 仮想命令キャッシュ再補充アルゴリズム
US5717895A (en) Associative scalar data cache with write-through capabilities for a vector processor
KR920006275B1 (ko) 데이타 처리 장치
US8499123B1 (en) Multi-stage pipeline for cache access
KR100309615B1 (ko) 고속프로그램가능로직컨트롤러(plc)
US5752015A (en) Method and apparatus for repetitive execution of string instructions without branch or loop microinstructions
US6385720B1 (en) Branch prediction method and processor using origin information, relative position information and history information
US20060248277A1 (en) System, method, and apparatus for least recently used determination for caches
US6012135A (en) Computer having multiple address ports, each having logical address translation with base and limit memory management
JP2001290702A (ja) 記憶装置
JP3407808B2 (ja) コンピュータシステム
US5197145A (en) Buffer storage system using parallel buffer storage units and move-out buffer registers
JP2000148584A (ja) プリフェッチ方法および装置
JPH03255531A (ja) 命令取出装置
JP2794782B2 (ja) 命令取出装置
US4737908A (en) Buffer memory control system
EP0415351A2 (en) Data processor for processing instruction after conditional branch instruction at high speed
JP3767521B2 (ja) キャッシュフィル制御方法及びcpu
JPS58208982A (ja) ストアバツフア
JPS6236258B2 (ja)
US20040181633A1 (en) Cache memory system, a cache memory, an updating method for the cache memory and for the cache memory system, and an updating program for the cache memory system
JPH0433059B2 (ja)
JP3729832B2 (ja) キャッシュメモリ装置
JPH0646381B2 (ja) 命令取出し装置
KR20010108104A (ko) 트레이스 기반의 명령어 캐시