JPS61100837A - 命令メモリ制御方法 - Google Patents

命令メモリ制御方法

Info

Publication number
JPS61100837A
JPS61100837A JP60126413A JP12641385A JPS61100837A JP S61100837 A JPS61100837 A JP S61100837A JP 60126413 A JP60126413 A JP 60126413A JP 12641385 A JP12641385 A JP 12641385A JP S61100837 A JPS61100837 A JP S61100837A
Authority
JP
Japan
Prior art keywords
instruction
address
target
memory
branch
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.)
Granted
Application number
JP60126413A
Other languages
English (en)
Other versions
JPS6323586B2 (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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPS61100837A publication Critical patent/JPS61100837A/ja
Publication of JPS6323586B2 publication Critical patent/JPS6323586B2/ja
Granted 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/3804Instruction prefetching for branches, e.g. hedging, branch folding
    • G06F9/3806Instruction prefetching for branches, e.g. hedging, branch folding using address prediction, e.g. return stack, branch history buffer

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)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

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

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明はオンチップ命令キャッシュを有スルマイクロプ
ロセッサに関し、さらに詳しくいえば、命令先取りの性
能を高めるためのそうした命令メモリの制御方法に関す
る。
〔開示の概要〕
以下に説明する命令メモリ制御方法は、プロセッサのた
めの命令メモリにおいて、ブランチが生じたときにその
目標アドレスで命令メモリを参照し結果に応じて主メモ
リから次取出しアドレスの命令を取り出すか又は目標命
令および後続命令を取り出すことによって、効率のよい
命令先取りを可能にしたものである。
〔従来技術〕
VLSI技術の進歩により、100ナノ秒を楽に切るサ
イクル時間を持った高性能のマイクロプロセツサが実現
されるようになった。同時にダイナミックメモリの性能
も向上し、RAMのアクセス時間はプロセッサのサイク
ル時間に等しくできる程度にまで達している。しかしな
がら、アドレスおよびデータをチップ外から駆動し適切
なメモリ、チップ選択信号を発生しメモリのアクセスを
行いエラー検出を遂行しCPUに戻すのに要する時間は
メモリの゛システム″アクセス時間に数個のCPUサイ
クルを加えたものになる場合がある。
CPtJは命令の順次的な取出しの場合のようにデータ
を順次的に取り出している限9は、先取りが十分にでき
るのでRAMのサイクル時間(前述のようにこれはCP
tJのサイクル時間に引けをとらないものである)に等
しい間隔で定常的なデータストリームが到着する。しか
しながらブランチ命令が発生すれば、その直後にパ先取
りパイプライ、ン″′がくずnるのでCPUは次の命令
まで数サイクル待たなければならない。現行のVLS 
Iチップの実装密度なら、CPUチップにかなりの量の
回路を付加できるので、そのうちの幾つかを利用してこ
のアイドル時間を減らすことができる。その標準的なア
プローチはCPUチップ上に小規模の命令メモリ(普通
、命令キャッシュと呼ばれる)を具備することである。
制御デコーダまたはマイクロ制御発生回路に関連する命
令レジスタを備えた単一チップのマイクロプロセッサの
例は米国特許第4402042号に開示されている。こ
の特許では、マイクロプロセッサは双方向的に多重化さ
れたアドレス/データバスによって外部メモリと通信す
る。各々の命令は一連のマイクロコードを発生する。こ
れらの一連のマイクロコードは制御ROMの最初のアド
レスの二ン) IJを選択し次にその命令に応じて一連
の飛越しを実行することによって生成される。
現命令の結果が計算てれ記憶される前に次命令を取り出
してオペランドアドレスの生成を開始するので動作速度
が増す。
米国特許第4390946号は2つのマイクロコードメ
モリバンクに分割さnた制御記憶装置にマイクロコード
が保持されるようなパイプライン式のプロセッサについ
て開示するものである。このシステムは以下の3つのモ
ードをサポートすることができる:単−マイクロ命令、
順次的な複数のマイクロ命令、および条件付きブランチ
命令を有する複数のマイクロ命令。1つの条件付きブラ
ンチを遂行するときは、ブランチがないときの経路が仮
定されもしそれが正しければそのブランチの後のマイク
ロ命令が遅滞なく実行される。ブランチが起こった場合
は、この仮定が除去されて1つ分のクロックの遅延後、
ブランチ先のマイクロ命令が実行される。こうしてこの
システムはパイプラインの最大のレートで以上のシーケ
ンスを遂行する。
米国特許第4384342号は、第1メモリアドレスレ
ジスタが列アドレスおよび現有効アドレスの中のモジュ
ール宛先部を記憶し、第2メモリアドレスレジスタが現
有効アドレスの中の行アドレス部を記憶し、第3メモリ
アドレスレジスタが前の有効アドレスの中のモジュール
宛先部を記憶するような先読み先取りの手法について記
載するものである。同じモジュールは続いて何回も頻繁
にアクセスされるので、列アドレスおよび現有効アドレ
スのモジュール宛先部が第1メモリアドレスレジスタか
ら使用可能になる前に第2および第3メモリアドレスレ
ジスタの内容に基づいて遅滞なくアクセスを開始するこ
とによって平均的なアクセス時間は減る。アクセスが完
了し、列アドレスおよび現有効アドレスのモジュール宛
先部が決まった後、第1および第3メモリアドレスレジ
スタに接続された比較器が同じメモリモジュールが続い
てアクセスされているかどうかを確認する。
もしそうでなければ、第1および第2メモリアドレスレ
ジスタの内容に基づいてモジュールが再びアクセスされ
る。
〔発明が解決しようとする問題点3 以上に示した従来の命令メモリは、特に、命令先取りオ
ペレーションに関して効率が悪い。
したがって本発明の目的は命令メモリを効率よく制御す
る方法を提供することである。
〔問題点を解決するための手段〕
この目的を達成するため本発明の命令メモリ制御方法は
、目標アドレステーブル、次取出しアドレステーブル、
有効エントリテーブル、および命令テーブルで構成され
たブランチ目標テーブルを命令メモリに具備することに
よって、ブランチが生じたときは該ブランチの目標アド
レスによってブランチ目標テーブルを参照し該テーブル
のアドレス指定さnたラインの全てのエントリをアクセ
スし、アドレス指定されたラインにおける目標アドレス
テーブルのエントリと目標アドレスとを比較してこ几ら
が一致するときは次取出しアドレスでアドレス指定され
る命令を主メモリから取り出し、一致しないときは目標
命令および後続の命令を主メモリから取り出すようにし
たことを特徴とする。
〔実施例〕
はじめに実施例の概略を説明する。ブランチの目標であ
る命令のアドレス(目標アドレス)によって参照される
命令メモリとしてブランチ目標テーブルを設ける。ブラ
ンチ目標テーブルは目標アドレステーブル、次取出しア
ドレステーブノペ有効エントリテーブル、および命令テ
ーブルを有する。ブランチが起こると、目標命令(すな
わちブランチ先の命令)のアドレスのうち未変換部分の
幾つかのビットを用いてブランチ目標テーブルの1ライ
ンをアドレス指定する。アドレス変換と並行して、その
ラインの全てのエントリがアクセスされ、変換されたア
ドレスがそのラインの目標アドレステーブルのエントリ
と比較される。目標アドレステーブルのエントリが目標
アドレスと一致すれば、命令先取りユニットが所与のラ
インのための次取出しアドレステーブルのエントリでア
ドレス指定さnた命令を主メモリから取り出す。こnと
同時にブランチ目標テーブルのエントリに関連する命令
列が命令待ち行列に読み取らnる。命令待ち行列は、有
効な命令が幾つあるかを示す有効エントリテーブルのエ
ントリによってセットされたポインタの長さを有する。
前記比較で一致が見出されないときは命令先取りユニッ
トは、あたかもブランチ目標テーブルが専有しないよう
に、目標命令および後続の命令を主メモリから取り出し
、目標アドレステーブルのエントリが目標命令の実アド
レスにセットさfる。次取出しアドレステーブルは、常
にそのラインの最後の有効命令の次に実行さnる命令の
アドレスを有するように更新され、有効エントリテーブ
ルは、常にそのラインの有効命令の数をカウントするよ
う更新さnる。
以下、ブランチ目標テーブルはBTT、目標アドレステ
ーブルはTAT、次取出しアドレステーブルはNFAT
、有効エントリテーブルはVET、命令テーブルはIT
とそ几ぞn略記する。
以下の説明は1ウ工イセツトアソシアテイプ機構に関し
て行うが、後述するように、良好々連想性によりさらに
高い性能が提供さnる。
第1図を参照すれば、BTTIOは1”AT12、N、
FAT14、VET16およびITt8を有する。CP
Uによって生成されるブランチ目標命令のアドレスは第
1アドレスレジスタ20に供給される。このアドレスは
仮想部と固定部とを含む。
このアドレスの仮想部はアドレス変換ユニット22に供
給される。アドレス変換ユニット22は第2アドレスレ
ジスタ24に記憶するだめの実アドレスを生成する。一
方、固定部は第2アドレスレジスタの対応する場所へ直
接読み取られる。比較器261dTAT 12のエント
リと、アドレス変換ユニット22で生成さn第2アドレ
スレジスタ24に記憶されたブランチ目標の実アドレス
とを比較する。次取出しアドレスのだめのレジスタ(N
FA)28はNFAT14と通信して1つのブランチア
ドレスをマルチプレクサ(1’vlUX)30に供給す
る。マルチプレクサ30の他の人力は第2アドレスレジ
スタ24から供給される。マルチプレクサ30は比較器
26の出力に応じてレジスタ24またはレジスタ28の
内容をCPUの命令先取りユニット32に供給する。命
令先取りユニット32はレジスタ28とも通信し、レジ
スタ28はNFAT14に読み取られるアドレスを順次
供給スル。第1アドレスレジスタ20に記憶さnたアド
レスの固定部はデコーダ34にも供給される。
デコーダ34はBTTIOの1つのラインをアドレス指
定する。さらに、VET16のエントリを増分するため
の増分器36を設ける二命令待ち行列38はBTTlo
のlT18から供給さn、■ET16が生成しレジスタ
40に存する待ち行列ポインタによってアドレス指定さ
れる。CPUへ送るべき命令は命令マルチプレクサ42
によって選択する。
ブランチが生ずるたびに、目標命令(ブランチ先の命令
)のアドレスのうち未変換部分の幾つかのビットを用い
てBTT 10の1つのラインをアドレス指定する。ア
ドレス変換と並行して、BTTloのそのラインの全て
のエントリがアクセスされる。変換さnたア下レスはそ
のラインのTAT12のエントリと比較される。TAT
 12のエントリが目標アドレスと一致f、flげ、命
令先取りユニット32は所与のラインのためにNFAT
I4によってアドレス指定された命令を主メモリから取
り出す。これと同時にBTTIOのエントリに関連する
命令列が命令待ち行列38に読み取らnる。命令待ち行
列38は、有効な命令が幾つあるかを示すVET16の
エントリによってセントさnた長さを有する。前記比較
で一致が見出されないときは命令先取りユニット32は
、あたかもBTTIOが存在しないかのように目憚命令
および後続の命令を主メモリから取り出し、TATI2
のエントリが目標命令の実アドレスにセントさnる。N
FAT 14は、常にそのラインの最後の有効命令の次
に実行される命令のアドレスを有するように更新され、
■ET16は、常にそのライ−ンの有効命令の数をカウ
ントするよう更新さnる。
以下に示す2つのケースを考えれば、本実施例の動作が
さらによく理解できるであろう。
ケースl:TAT12のエントリが目標アドレスと一致
しない。こnは、たとえば、最初にブランチが生じた場
合に発生する。この場合、命令先取りユニット32は、
あたかもBTTIOが存在しないかのように目標命令お
よび後続の命令を主メモリから取り出し、TAT12の
エントリが目標命令の実アドレスにセットさnる。目標
命令および後続の命令がCPUチップに到達すると、そ
fらは処理のためCPUに送られると共にBTTloの
lT18の目標アドレスに関連するラインへ入力される
。目標命令はこのラインの最初の命令の場所のところに
置かれ、後続の命令は、そのラインが一杯になるかまた
は別のブランチが発生するまで、そのラインの後続命令
の場所のところに置かfる。そのラインのためのN F
 A T 1.4のエンドIJば、常にそのラインの最
後の有効命令の次に実行される命令のアドレスを有する
ように更新される。VET16ば、常にその一ラインの
有効命令の数をカウントするよう更新される。
ケース2:TAT12のエントリが目標アドレスと一致
する。この場合は、命令先取りユニット32は所与のラ
インのためのNFAT14のエントリでアドレス指定さ
れる命令を主メモリから取り出す。これと同時に、BT
Tl 0のエントリに関連する命令列が命令待ち行列3
8に読み取られる。その待ち行列の長さは、有効な命令
が幾つあるかを示すVET16のエントリにセットされ
ている。先取りのパイプラインを再び確立する間にCP
Uがアイドルにならないよう、待ち行列に存する命令は
CPUですぐに使用できる。命令先取りユニット32は
待ち行列中の最後の有効命令の次に実行さnる命令を取
り出すということに留意されたい。この命令と後続の命
令がCPUチップに到達するときはそれらは待ち行列の
終りに置かれるか又は処理のためCPUに送られて、そ
のときBTTIOのそのラインに余裕があれば同時にB
TTIOのlT18にも入nらレル。N FAT14は
、常にBTTl 0のそのラインの最後の有効命令の次
の命令のアドレスを有するよう更新される。VET16
は、常にBTT 10のそのライン有効命令の数をカウ
ントするよう更新さnる。
以上説明したように、BTTIOを指標付けする機構は
1ウエイアソシアテイブである。換言すれば、BTTI
Oを指標付けするのに使用する目標アドレスのその部分
によって生じ得る異なる値の各々に対してBTTIOの
ラインは1つしか存在しない。これは最も簡単な機構で
ある。しかしながらBTTはnウェイアソシアティブで
も容易に構成できる。この場合、87700本のライン
が目標命令アドレス部によって同時にアドレス指定され
、これらのラインのそれぞれて対するTATのエントリ
がその目標命令の情報をBTTのどのラインが有するの
かを判断するために比較される。一致が見出されないと
きは、“アノシアティビイティ・クラス”におけるエン
トリのうちの1つが標準的なL RU (Least 
recently used)アルゴリズムによって除
去され、現ブランチの情報のための余裕を作り出す。若
干の論理を付加するだけで性能が向上するから、この手
法は非常に有効である。
2ウエイ・セット・アソシアティブ式のBTTを構成す
るのに必要な論理の例を第2図に示す。
TAT12aおよび12b、NFATl 4 aおよび
14b、VET、16aおよび16b、ならびにlT1
8aおよび18bに関連して2つのBTTloaおよび
10bを設ける。第1アドレスレジスタ20からの固定
アドレスビットは関連するデコーダ34aおよび34b
に供給さnBTTloaおよび10bのラインをそれぞ
几アドレス指定スル。第2アドレスレジスタ24からの
変換されたアドレスは比較器26aおよび26bでTA
T12aおよび12bからの目標アドレスと比較される
。これらの比較器の出力はマルチプレクサ30.44、
および46への制御入力として供給する。マルチプレク
サ30の出力は、前述のように、命令先取りユニット3
2へ供給する。マルチプレクサ44は入力としてVET
16aおよび16bの出力を受は取って、レジスタ40
(待ち行列ポインタ用)への出力を供給する。マルチプ
レクサ46は入力としてlT18aおよび18bの出力
を受は取って、命令待ち行列38への出力を供給する。
これまでの説明では、BTTの1つのエントリに対応す
る1つの目標命令へのブランチが生じたときに、NFA
Tのエントリによってアドレス指定される命令の先取り
がただちに始まると仮定した。BTTのそのラインの有
効命令の数が上記の命令を得るのに必要なCPLIのサ
イクル数より多いときは、この仮定は必ずしも必要でな
い。待ち行列の長さが一定の値(たとえば、1回のメモ
リアクセスを完了するのに要するCPUのサイクル数)
よりも大きいときは先取りを遂行しないように、命令待
ち行列に関連する論理を加えてもよい。
こうすnば、メモリパスのトラフィックが少なくなり命
令のアクセスおよびデータのアクセスの競合が減る。
標準的な命令キャッシュには先取りはない。キャッシュ
ミスが生じたときは、キャッシュの1つの行全体が主メ
モリから読み取られる。1回のキャッシュミスで、少な
くとも、メモリシステム全体のアクセス時間にキャッシ
ュにおけるワード数で多重化されるCPUのサイクル時
間を加えた時間が要る。キャッシュの実現のし方によっ
ては(たとえば本発明のように命令がキャッシュにロー
ドされたときにCPUでそれらが使用可能であれば)、
後者のサイクル時間は不要である。しかしながら、キャ
ッシュの1つの行を一杯にしてもその中には使用される
ことのない命令が入っているということはよくある。
標準的な命令キャッシュの場合、キャッシュミスは任意
の命令アクセスで起こり得る。BTTのミスが起こり得
るのはブランチが生じたときだけである。したがってた
とえば全ての命令のうち16%がブランチを生ずるもの
であるときは、BTTにおける40%のヒツト率は、大
雑把にいって、標準的な命令キャッシュの90%のヒツ
ト率ト等価である。以上のことから、オンチップの命令
記憶のためにほんのわずかの量のメモリしか使えないよ
うな状況では、本実施例に従ったBTTは標準的な命令
キャッシュよりmAていることがわかるであろう。
下記の第1表は異なるサイズのBTTおよび命令キャッ
シュを用いたマイクロプロセッサシステムの性能の比較
を示すものである。
第1表 このシステムは、BTT−+たは命令キャノ7ユ制御ユ
ニットを具備した1つのCP Uチップと、独立したメ
モリ/ステムとを有する。メモリ/ステムはリップルモ
ードのメモリを有するものである。リップルモードのメ
モリは、メモリに対してCPUが行う全てのアクセス(
命令およびデータ)のうち90%以上がDRAMの1サ
イクル時間(その長さはCPUのサイクル時間以下であ
る)に関係し、且つシステムのアクセス時間がCPUの
サイクル時間を3つ分付加したものであるように構成す
る。このシステムはアドレス用のノくスと、命令および
データ用のバスとを有する。簗1表に示す結果は高水準
言語のコンパイラである追跡テープの単一のセットに基
づくものである。命令キャッシュは8個または16個の
連想クラス(各々4つの16バイトラインを有する)を
備えた4ウエイセツトアソンアテイプのものである。命
令キャッシュのサイズは前者が1/2Kに対応し、後者
がIKに対応する。BTTば1ウエイセツトアンシアテ
イフ゛のもので、16イ固または321固のライン(各
々7つの命令を記憶することができる)を備える。BT
TOサイズは前者が1/2KK対応し、後者がIKに対
応する。このモデルは命令の取出したけてなくロードお
よび記憶も含むので、第1表に示した指標には単一のデ
ータバスの競合が含まnている。各々の性能は、1/2
にの命令キャッシュによる構成を1として相対的に示し
た。
命令キャッシュのアンシアティビイティとBTTのアノ
シアティビイティを同じものにすれば、命令キャッシュ
の性能とBTTの性能との差はこれよりさらに顕著にな
る。
〔発明の効果〕
以上説明したように本発明によれば、命令先取りを効率
よく遂行することにより、小規模の命令メモリでより性
能の高いプロセラサシステムラ実現することができる。
【図面の簡単な説明】 第1図は本発明に基づく命令メモリの基本的な構成を示
す図、第2図は2ウ工イセツトアソシアテイプ式のブラ
ンチ目標テーブルの構成に必要な付加的な論理を示す図
である。 出願人  インタボ尤ンヨナル・ビジネス・マ・μスズ
・ゴーボレー/ヨン代理人 弁理士  頓   宮  
 孝  −(外1名) 実アドレス                  友ア
ドレス(変換さfL!ニアドレスビット)      
    ([!it定アトレ又ビット)第2図

Claims (1)

  1. 【特許請求の範囲】 プロセツサ、命令メモリ、および主メモリを有するプロ
    セツサシステムにおいて、 目標アドレステーブル、次取出しアドレステーブル、有
    効エントリテーブル、および命令テーブルで構成された
    ブランチ目標テーブルを前記命令メモリに具備すること
    によつて、ブランチが生じたときは該ブランチの目標ア
    ドレスによつて前記ブランチ目標テーブルを参照し該テ
    ーブルのアドレス指定されたラインの全てのエントリを
    アクセスし、前記アドレス指定されたラインにおける前
    記目標アドレステーブルのエントリと目標アドレスとを
    比較してこれらが一致するときは前記次取出しアドレス
    でアドレス指定される命令を主メモリから取り出し、一
    致しないときは目標命令および後続の命令を主メモリか
    ら取り出すようにしたことを特徴とする命令メモリ制御
    方法。
JP60126413A 1984-10-24 1985-06-12 命令メモリ制御方法 Granted JPS61100837A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US664275 1984-10-24
US06/664,275 US4691277A (en) 1984-10-24 1984-10-24 Small instruction cache using branch target table to effect instruction prefetch

Publications (2)

Publication Number Publication Date
JPS61100837A true JPS61100837A (ja) 1986-05-19
JPS6323586B2 JPS6323586B2 (ja) 1988-05-17

Family

ID=24665347

Family Applications (1)

Application Number Title Priority Date Filing Date
JP60126413A Granted JPS61100837A (ja) 1984-10-24 1985-06-12 命令メモリ制御方法

Country Status (5)

Country Link
US (1) US4691277A (ja)
EP (1) EP0179245B1 (ja)
JP (1) JPS61100837A (ja)
CA (1) CA1228170A (ja)
DE (1) DE3582777D1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0773104A (ja) * 1993-07-01 1995-03-17 Internatl Business Mach Corp <Ibm> キャッシュ・システム

Families Citing this family (50)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61148551A (ja) * 1984-12-24 1986-07-07 Hitachi Ltd アドレス変換方式
US4763245A (en) * 1985-10-30 1988-08-09 International Business Machines Corporation Branch prediction mechanism in which a branch history table is updated using an operand sensitive branch table
US4755935A (en) * 1986-01-27 1988-07-05 Schlumberger Technology Corporation Prefetch memory system having next-instruction buffer which stores target tracks of jumps prior to CPU access of instruction
EP0258453B1 (en) * 1986-02-28 1993-05-19 Nec Corporation Instruction prefetch control apparatus
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
JPS6356731A (ja) * 1986-08-27 1988-03-11 Mitsubishi Electric Corp デ−タ処理装置
JPS6393041A (ja) * 1986-10-07 1988-04-23 Mitsubishi Electric Corp 計算機
JPS6393038A (ja) * 1986-10-07 1988-04-23 Mitsubishi Electric Corp 計算機
JPS6398737A (ja) * 1986-10-15 1988-04-30 Mitsubishi Electric Corp デ−タ処理装置
JPS63317828A (ja) * 1987-06-19 1988-12-26 Fujitsu Ltd マイクロコ−ド読み出し制御方式
US5134561A (en) * 1987-07-20 1992-07-28 International Business Machines Corporation Computer system with logic for writing instruction identifying data into array control lists for precise post-branch recoveries
US4894772A (en) * 1987-07-31 1990-01-16 Prime Computer, Inc. Method and apparatus for qualifying branch cache entries
US4943908A (en) * 1987-12-02 1990-07-24 International Business Machines Corporation Multiple branch analyzer for prefetching cache lines
JPH01154261A (ja) * 1987-12-11 1989-06-16 Toshiba Corp 情報処理装置
JPH01271838A (ja) * 1988-04-22 1989-10-30 Fujitsu Ltd マイクロプログラム分岐方法
US5101341A (en) * 1988-08-25 1992-03-31 Edgcore Technology, Inc. Pipelined system for reducing instruction access time by accumulating predecoded instruction bits a FIFO
JP2722523B2 (ja) * 1988-09-21 1998-03-04 日本電気株式会社 命令先取り装置
JPH0778735B2 (ja) * 1988-12-05 1995-08-23 松下電器産業株式会社 キャッシュ装置と命令読出し装置
US5034880A (en) * 1988-12-22 1991-07-23 Wang Laboratories, Inc. Apparatus and method for executing a conditional branch instruction
US5099415A (en) * 1989-02-15 1992-03-24 International Business Machines Guess mechanism for virtual address translation
US5689670A (en) * 1989-03-17 1997-11-18 Luk; Fong Data transferring system with multiple port bus connecting the low speed data storage unit and the high speed data storage unit and the method for transferring data
EP0394624B1 (en) * 1989-04-24 1997-06-18 International Business Machines Corporation Multiple sequence processor system
US5146578A (en) * 1989-05-01 1992-09-08 Zenith Data Systems Corporation Method of varying the amount of data prefetched to a cache memory in dependence on the history of data requests
WO1991004536A1 (en) * 1989-09-20 1991-04-04 Dolphin Server Technology A/S Instruction cache architecture for parallel issuing of multiple instructions
JPH03139726A (ja) * 1989-10-26 1991-06-13 Hitachi Ltd 命令読出し制御方式
US5230068A (en) * 1990-02-26 1993-07-20 Nexgen Microsystems Cache memory system for dynamically altering single cache memory line as either branch target entry or pre-fetch instruction queue based upon instruction sequence
EP0449369B1 (en) * 1990-03-27 1998-07-29 Koninklijke Philips Electronics N.V. A data processing system provided with a performance enhancing instruction cache
EP0457403B1 (en) * 1990-05-18 1998-01-21 Koninklijke Philips Electronics N.V. Multilevel instruction cache and method for using said cache
JPH0460720A (ja) * 1990-06-29 1992-02-26 Hitachi Ltd 条件分岐命令制御方式
JP2773471B2 (ja) * 1991-07-24 1998-07-09 日本電気株式会社 情報処理装置
US5386526A (en) * 1991-10-18 1995-01-31 Sun Microsystems, Inc. Cache memory controller and method for reducing CPU idle time by fetching data during a cache fill
US5434985A (en) * 1992-08-11 1995-07-18 International Business Machines Corporation Simultaneous prediction of multiple branches for superscalar processing
EP0613087B1 (en) * 1993-02-24 2002-11-20 Matsushita Electric Industrial Co., Ltd. Apparatus and method for achieving high-speed data read access to memory
JP2801135B2 (ja) * 1993-11-26 1998-09-21 富士通株式会社 パイプラインプロセッサの命令読み出し方法及び命令読み出し装置
US5471597A (en) * 1993-12-23 1995-11-28 Unisys Corporation System and method for executing branch instructions wherein branch target addresses are dynamically selectable under programmer control from writable branch address tables
GB2293670A (en) * 1994-08-31 1996-04-03 Hewlett Packard Co Instruction cache
US5634119A (en) * 1995-01-06 1997-05-27 International Business Machines Corporation Computer processing unit employing a separate millicode branch history table
US5625808A (en) * 1995-03-31 1997-04-29 International Business Machines Corporation Read only store as part of cache store for storing frequently used millicode instructions
US6356918B1 (en) 1995-07-26 2002-03-12 International Business Machines Corporation Method and system for managing registers in a data processing system supports out-of-order and speculative instruction execution
US5794024A (en) * 1996-03-25 1998-08-11 International Business Machines Corporation Method and system for dynamically recovering a register-address-table upon occurrence of an interrupt or branch misprediction
FR2757306B1 (fr) * 1996-12-17 1999-01-15 Sgs Thomson Microelectronics Procede et dispositif de lecture avec prediction d'une memoire
US5774712A (en) * 1996-12-19 1998-06-30 International Business Machines Corporation Instruction dispatch unit and method for mapping a sending order of operations to a receiving order
US6119222A (en) * 1996-12-23 2000-09-12 Texas Instruments Incorporated Combined branch prediction and cache prefetch in a microprocessor
US6230260B1 (en) 1998-09-01 2001-05-08 International Business Machines Corporation Circuit arrangement and method of speculative instruction execution utilizing instruction history caching
WO2009157795A1 (en) * 2008-06-27 2009-12-30 Intel Corporation Static code recognition for binary translation
US9654483B1 (en) * 2014-12-23 2017-05-16 Amazon Technologies, Inc. Network communication rate limiter
US9569613B2 (en) * 2014-12-23 2017-02-14 Intel Corporation Techniques for enforcing control flow integrity using binary translation
US9438412B2 (en) * 2014-12-23 2016-09-06 Palo Alto Research Center Incorporated Computer-implemented system and method for multi-party data function computing using discriminative dimensionality-reducing mappings
US9984004B1 (en) * 2016-07-19 2018-05-29 Nutanix, Inc. Dynamic cache balancing
CN107038125B (zh) * 2017-04-25 2020-11-24 上海兆芯集成电路有限公司 具有加速预取请求的独立流水线的处理器高速缓存

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS529342A (en) * 1975-07-11 1977-01-24 Hitachi Ltd Air pollution density forecasting system
JPS5539222A (en) * 1978-09-11 1980-03-19 Mitsubishi Heavy Ind Ltd Multistage flash evaporator
JPS5567850A (en) * 1978-11-14 1980-05-22 Nec Corp Information processor

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3466613A (en) * 1967-01-13 1969-09-09 Ibm Instruction buffering system
FR2226079A5 (ja) * 1973-04-13 1974-11-08 Honeywell Bull Soc Ind
US4371924A (en) * 1979-11-09 1983-02-01 Rockwell International Corp. Computer system apparatus for prefetching data requested by a peripheral device from memory
US4442488A (en) * 1980-05-05 1984-04-10 Floating Point Systems, Inc. Instruction cache memory system
JPS57185545A (en) * 1981-05-11 1982-11-15 Hitachi Ltd Information processor
US4594659A (en) * 1982-10-13 1986-06-10 Honeywell Information Systems Inc. Method and apparatus for prefetching instructions for a central execution pipeline unit
US4626988A (en) * 1983-03-07 1986-12-02 International Business Machines Corporation Instruction fetch look-aside buffer with loop mode control

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS529342A (en) * 1975-07-11 1977-01-24 Hitachi Ltd Air pollution density forecasting system
JPS5539222A (en) * 1978-09-11 1980-03-19 Mitsubishi Heavy Ind Ltd Multistage flash evaporator
JPS5567850A (en) * 1978-11-14 1980-05-22 Nec Corp Information processor

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0773104A (ja) * 1993-07-01 1995-03-17 Internatl Business Mach Corp <Ibm> キャッシュ・システム

Also Published As

Publication number Publication date
EP0179245B1 (en) 1991-05-08
US4691277A (en) 1987-09-01
JPS6323586B2 (ja) 1988-05-17
EP0179245A2 (en) 1986-04-30
DE3582777D1 (de) 1991-06-13
CA1228170A (en) 1987-10-13
EP0179245A3 (en) 1988-04-20

Similar Documents

Publication Publication Date Title
JPS61100837A (ja) 命令メモリ制御方法
US7917731B2 (en) Method and apparatus for prefetching non-sequential instruction addresses
KR930002328B1 (ko) 가상 어드레스의 유효 성능을 물리적 어드레스 변환으로 예측하는 방법 및 장치
US6401192B1 (en) Apparatus for software initiated prefetch and method therefor
JP3412575B2 (ja) 命令履歴キャッシングを使用して推測的に命令を実行する回路、データ処理システム、およびそのための方法
JP6718454B2 (ja) 選択的ページミス変換プリフェッチによってプログラムメモリコントローラにおけるページ変換ミスレイテンシを隠すこと
JP2539357B2 (ja) デ−タ処理装置
US5509137A (en) Store processing method in a pipelined cache memory
CN111213131B (zh) 高速缓存器中的零时延预提取
CN111213132B (zh) 用飞行中预取服务于cpu需求请求
WO1990014629A2 (en) Parallel multithreaded data processing system
US9569219B2 (en) Low-miss-rate and low-miss-penalty cache system and method
US6658534B1 (en) Mechanism to reduce instruction cache miss penalties and methods therefor
US7721074B2 (en) Conditional branch execution in a processor having a read-tie instruction and a data mover engine that associates register addresses with memory addresses
US20050206648A1 (en) Pipeline and cache for processing data progressively
US20070174598A1 (en) Processor having a data mover engine that associates register addresses with memory addresses
US6823430B2 (en) Directoryless L0 cache for stall reduction
US7721075B2 (en) Conditional branch execution in a processor having a write-tie instruction and a data mover engine that associates register addresses with memory addresses
US5911151A (en) Optimizing block-sized operand movement utilizing standard instructions
US20080065870A1 (en) Information processing apparatus
US7389405B2 (en) Digital signal processor architecture with optimized memory access for code discontinuity
JPH08263371A (ja) キャッシュにおいてコピーバック・アドレスを生成する装置および方法
WO2007087270A2 (en) Processor having a data mover engine that associates register addresses with memory addresses
JPS6263339A (ja) パイプライン制御方式