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
Links
- 238000000034 method Methods 0.000 claims description 6
- 230000004044 response Effects 0.000 description 2
- 101001130128 Arabidopsis thaliana Leucoanthocyanidin dioxygenase Proteins 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 239000013256 coordination polymer Substances 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3802—Instruction prefetching
- G06F9/3804—Instruction prefetching for branches, e.g. hedging, branch folding
- G06F9/3806—Instruction 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サイ
クルを加えたものになる場合がある。
イクル時間を持った高性能のマイクロプロセツサが実現
されるようになった。同時にダイナミックメモリの性能
も向上し、RAMのアクセス時間はプロセッサのサイク
ル時間に等しくできる程度にまで達している。しかしな
がら、アドレスおよびデータをチップ外から駆動し適切
なメモリ、チップ選択信号を発生しメモリのアクセスを
行いエラー検出を遂行しCPUに戻すのに要する時間は
メモリの゛システム″アクセス時間に数個のCPUサイ
クルを加えたものになる場合がある。
CPtJは命令の順次的な取出しの場合のようにデータ
を順次的に取り出している限9は、先取りが十分にでき
るのでRAMのサイクル時間(前述のようにこれはCP
tJのサイクル時間に引けをとらないものである)に等
しい間隔で定常的なデータストリームが到着する。しか
しながらブランチ命令が発生すれば、その直後にパ先取
りパイプライ、ン″′がくずnるのでCPUは次の命令
まで数サイクル待たなければならない。現行のVLS
Iチップの実装密度なら、CPUチップにかなりの量の
回路を付加できるので、そのうちの幾つかを利用してこ
のアイドル時間を減らすことができる。その標準的なア
プローチはCPUチップ上に小規模の命令メモリ(普通
、命令キャッシュと呼ばれる)を具備することである。
を順次的に取り出している限9は、先取りが十分にでき
るのでRAMのサイクル時間(前述のようにこれはCP
tJのサイクル時間に引けをとらないものである)に等
しい間隔で定常的なデータストリームが到着する。しか
しながらブランチ命令が発生すれば、その直後にパ先取
りパイプライ、ン″′がくずnるのでCPUは次の命令
まで数サイクル待たなければならない。現行のVLS
Iチップの実装密度なら、CPUチップにかなりの量の
回路を付加できるので、そのうちの幾つかを利用してこ
のアイドル時間を減らすことができる。その標準的なア
プローチはCPUチップ上に小規模の命令メモリ(普通
、命令キャッシュと呼ばれる)を具備することである。
制御デコーダまたはマイクロ制御発生回路に関連する命
令レジスタを備えた単一チップのマイクロプロセッサの
例は米国特許第4402042号に開示されている。こ
の特許では、マイクロプロセッサは双方向的に多重化さ
れたアドレス/データバスによって外部メモリと通信す
る。各々の命令は一連のマイクロコードを発生する。こ
れらの一連のマイクロコードは制御ROMの最初のアド
レスの二ン) IJを選択し次にその命令に応じて一連
の飛越しを実行することによって生成される。
令レジスタを備えた単一チップのマイクロプロセッサの
例は米国特許第4402042号に開示されている。こ
の特許では、マイクロプロセッサは双方向的に多重化さ
れたアドレス/データバスによって外部メモリと通信す
る。各々の命令は一連のマイクロコードを発生する。こ
れらの一連のマイクロコードは制御ROMの最初のアド
レスの二ン) IJを選択し次にその命令に応じて一連
の飛越しを実行することによって生成される。
現命令の結果が計算てれ記憶される前に次命令を取り出
してオペランドアドレスの生成を開始するので動作速度
が増す。
してオペランドアドレスの生成を開始するので動作速度
が増す。
米国特許第4390946号は2つのマイクロコードメ
モリバンクに分割さnた制御記憶装置にマイクロコード
が保持されるようなパイプライン式のプロセッサについ
て開示するものである。このシステムは以下の3つのモ
ードをサポートすることができる:単−マイクロ命令、
順次的な複数のマイクロ命令、および条件付きブランチ
命令を有する複数のマイクロ命令。1つの条件付きブラ
ンチを遂行するときは、ブランチがないときの経路が仮
定されもしそれが正しければそのブランチの後のマイク
ロ命令が遅滞なく実行される。ブランチが起こった場合
は、この仮定が除去されて1つ分のクロックの遅延後、
ブランチ先のマイクロ命令が実行される。こうしてこの
システムはパイプラインの最大のレートで以上のシーケ
ンスを遂行する。
モリバンクに分割さnた制御記憶装置にマイクロコード
が保持されるようなパイプライン式のプロセッサについ
て開示するものである。このシステムは以下の3つのモ
ードをサポートすることができる:単−マイクロ命令、
順次的な複数のマイクロ命令、および条件付きブランチ
命令を有する複数のマイクロ命令。1つの条件付きブラ
ンチを遂行するときは、ブランチがないときの経路が仮
定されもしそれが正しければそのブランチの後のマイク
ロ命令が遅滞なく実行される。ブランチが起こった場合
は、この仮定が除去されて1つ分のクロックの遅延後、
ブランチ先のマイクロ命令が実行される。こうしてこの
システムはパイプラインの最大のレートで以上のシーケ
ンスを遂行する。
米国特許第4384342号は、第1メモリアドレスレ
ジスタが列アドレスおよび現有効アドレスの中のモジュ
ール宛先部を記憶し、第2メモリアドレスレジスタが現
有効アドレスの中の行アドレス部を記憶し、第3メモリ
アドレスレジスタが前の有効アドレスの中のモジュール
宛先部を記憶するような先読み先取りの手法について記
載するものである。同じモジュールは続いて何回も頻繁
にアクセスされるので、列アドレスおよび現有効アドレ
スのモジュール宛先部が第1メモリアドレスレジスタか
ら使用可能になる前に第2および第3メモリアドレスレ
ジスタの内容に基づいて遅滞なくアクセスを開始するこ
とによって平均的なアクセス時間は減る。アクセスが完
了し、列アドレスおよび現有効アドレスのモジュール宛
先部が決まった後、第1および第3メモリアドレスレジ
スタに接続された比較器が同じメモリモジュールが続い
てアクセスされているかどうかを確認する。
ジスタが列アドレスおよび現有効アドレスの中のモジュ
ール宛先部を記憶し、第2メモリアドレスレジスタが現
有効アドレスの中の行アドレス部を記憶し、第3メモリ
アドレスレジスタが前の有効アドレスの中のモジュール
宛先部を記憶するような先読み先取りの手法について記
載するものである。同じモジュールは続いて何回も頻繁
にアクセスされるので、列アドレスおよび現有効アドレ
スのモジュール宛先部が第1メモリアドレスレジスタか
ら使用可能になる前に第2および第3メモリアドレスレ
ジスタの内容に基づいて遅滞なくアクセスを開始するこ
とによって平均的なアクセス時間は減る。アクセスが完
了し、列アドレスおよび現有効アドレスのモジュール宛
先部が決まった後、第1および第3メモリアドレスレジ
スタに接続された比較器が同じメモリモジュールが続い
てアクセスされているかどうかを確認する。
もしそうでなければ、第1および第2メモリアドレスレ
ジスタの内容に基づいてモジュールが再びアクセスされ
る。
ジスタの内容に基づいてモジュールが再びアクセスされ
る。
〔発明が解決しようとする問題点3
以上に示した従来の命令メモリは、特に、命令先取りオ
ペレーションに関して効率が悪い。
ペレーションに関して効率が悪い。
したがって本発明の目的は命令メモリを効率よく制御す
る方法を提供することである。
る方法を提供することである。
この目的を達成するため本発明の命令メモリ制御方法は
、目標アドレステーブル、次取出しアドレステーブル、
有効エントリテーブル、および命令テーブルで構成され
たブランチ目標テーブルを命令メモリに具備することに
よって、ブランチが生じたときは該ブランチの目標アド
レスによってブランチ目標テーブルを参照し該テーブル
のアドレス指定さnたラインの全てのエントリをアクセ
スし、アドレス指定されたラインにおける目標アドレス
テーブルのエントリと目標アドレスとを比較してこ几ら
が一致するときは次取出しアドレスでアドレス指定され
る命令を主メモリから取り出し、一致しないときは目標
命令および後続の命令を主メモリから取り出すようにし
たことを特徴とする。
、目標アドレステーブル、次取出しアドレステーブル、
有効エントリテーブル、および命令テーブルで構成され
たブランチ目標テーブルを命令メモリに具備することに
よって、ブランチが生じたときは該ブランチの目標アド
レスによってブランチ目標テーブルを参照し該テーブル
のアドレス指定さnたラインの全てのエントリをアクセ
スし、アドレス指定されたラインにおける目標アドレス
テーブルのエントリと目標アドレスとを比較してこ几ら
が一致するときは次取出しアドレスでアドレス指定され
る命令を主メモリから取り出し、一致しないときは目標
命令および後続の命令を主メモリから取り出すようにし
たことを特徴とする。
はじめに実施例の概略を説明する。ブランチの目標であ
る命令のアドレス(目標アドレス)によって参照される
命令メモリとしてブランチ目標テーブルを設ける。ブラ
ンチ目標テーブルは目標アドレステーブル、次取出しア
ドレステーブノペ有効エントリテーブル、および命令テ
ーブルを有する。ブランチが起こると、目標命令(すな
わちブランチ先の命令)のアドレスのうち未変換部分の
幾つかのビットを用いてブランチ目標テーブルの1ライ
ンをアドレス指定する。アドレス変換と並行して、その
ラインの全てのエントリがアクセスされ、変換されたア
ドレスがそのラインの目標アドレステーブルのエントリ
と比較される。目標アドレステーブルのエントリが目標
アドレスと一致すれば、命令先取りユニットが所与のラ
インのための次取出しアドレステーブルのエントリでア
ドレス指定さnた命令を主メモリから取り出す。こnと
同時にブランチ目標テーブルのエントリに関連する命令
列が命令待ち行列に読み取らnる。命令待ち行列は、有
効な命令が幾つあるかを示す有効エントリテーブルのエ
ントリによってセットされたポインタの長さを有する。
る命令のアドレス(目標アドレス)によって参照される
命令メモリとしてブランチ目標テーブルを設ける。ブラ
ンチ目標テーブルは目標アドレステーブル、次取出しア
ドレステーブノペ有効エントリテーブル、および命令テ
ーブルを有する。ブランチが起こると、目標命令(すな
わちブランチ先の命令)のアドレスのうち未変換部分の
幾つかのビットを用いてブランチ目標テーブルの1ライ
ンをアドレス指定する。アドレス変換と並行して、その
ラインの全てのエントリがアクセスされ、変換されたア
ドレスがそのラインの目標アドレステーブルのエントリ
と比較される。目標アドレステーブルのエントリが目標
アドレスと一致すれば、命令先取りユニットが所与のラ
インのための次取出しアドレステーブルのエントリでア
ドレス指定さnた命令を主メモリから取り出す。こnと
同時にブランチ目標テーブルのエントリに関連する命令
列が命令待ち行列に読み取らnる。命令待ち行列は、有
効な命令が幾つあるかを示す有効エントリテーブルのエ
ントリによってセットされたポインタの長さを有する。
前記比較で一致が見出されないときは命令先取りユニッ
トは、あたかもブランチ目標テーブルが専有しないよう
に、目標命令および後続の命令を主メモリから取り出し
、目標アドレステーブルのエントリが目標命令の実アド
レスにセットさfる。次取出しアドレステーブルは、常
にそのラインの最後の有効命令の次に実行さnる命令の
アドレスを有するように更新され、有効エントリテーブ
ルは、常にそのラインの有効命令の数をカウントするよ
う更新さnる。
トは、あたかもブランチ目標テーブルが専有しないよう
に、目標命令および後続の命令を主メモリから取り出し
、目標アドレステーブルのエントリが目標命令の実アド
レスにセットさfる。次取出しアドレステーブルは、常
にそのラインの最後の有効命令の次に実行さnる命令の
アドレスを有するように更新され、有効エントリテーブ
ルは、常にそのラインの有効命令の数をカウントするよ
う更新さnる。
以下、ブランチ目標テーブルはBTT、目標アドレステ
ーブルはTAT、次取出しアドレステーブルはNFAT
、有効エントリテーブルはVET、命令テーブルはIT
とそ几ぞn略記する。
ーブルはTAT、次取出しアドレステーブルはNFAT
、有効エントリテーブルはVET、命令テーブルはIT
とそ几ぞn略記する。
以下の説明は1ウ工イセツトアソシアテイプ機構に関し
て行うが、後述するように、良好々連想性によりさらに
高い性能が提供さnる。
て行うが、後述するように、良好々連想性によりさらに
高い性能が提供さnる。
第1図を参照すれば、BTTIOは1”AT12、N、
FAT14、VET16およびITt8を有する。CP
Uによって生成されるブランチ目標命令のアドレスは第
1アドレスレジスタ20に供給される。このアドレスは
仮想部と固定部とを含む。
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にも供給される。
給される。アドレス変換ユニット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
によって選択する。
定する。さらに、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る。
)のアドレスのうち未変換部分の幾つかのビットを用い
て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ば、常にその一ラインの
有効命令の数をカウントするよう更新される。
しない。こ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る。
する。この場合は、命令先取りユニット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)アルゴリズムによって除
去され、現ブランチの情報のための余裕を作り出す。若
干の論理を付加するだけで性能が向上するから、この手
法は非常に有効である。
1ウエイアソシアテイブである。換言すれば、BTTI
Oを指標付けするのに使用する目標アドレスのその部分
によって生じ得る異なる値の各々に対してBTTIOの
ラインは1つしか存在しない。これは最も簡単な機構で
ある。しかしながらBTTはnウェイアソシアティブで
も容易に構成できる。この場合、87700本のライン
が目標命令アドレス部によって同時にアドレス指定され
、これらのラインのそれぞれて対するTATのエントリ
がその目標命令の情報をBTTのどのラインが有するの
かを判断するために比較される。一致が見出されないと
きは、“アノシアティビイティ・クラス”におけるエン
トリのうちの1つが標準的なL RU (Least
recently used)アルゴリズムによって除
去され、現ブランチの情報のための余裕を作り出す。若
干の論理を付加するだけで性能が向上するから、この手
法は非常に有効である。
2ウエイ・セット・アソシアティブ式のBTTを構成す
るのに必要な論理の例を第2図に示す。
るのに必要な論理の例を第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への出力を供給する。
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のサイクル数)
よりも大きいときは先取りを遂行しないように、命令待
ち行列に関連する論理を加えてもよい。
る1つの目標命令へのブランチが生じたときに、NFA
Tのエントリによってアドレス指定される命令の先取り
がただちに始まると仮定した。BTTのそのラインの有
効命令の数が上記の命令を得るのに必要なCPLIのサ
イクル数より多いときは、この仮定は必ずしも必要でな
い。待ち行列の長さが一定の値(たとえば、1回のメモ
リアクセスを完了するのに要するCPUのサイクル数)
よりも大きいときは先取りを遂行しないように、命令待
ち行列に関連する論理を加えてもよい。
こうすnば、メモリパスのトラフィックが少なくなり命
令のアクセスおよびデータのアクセスの競合が減る。
令のアクセスおよびデータのアクセスの競合が減る。
標準的な命令キャッシュには先取りはない。キャッシュ
ミスが生じたときは、キャッシュの1つの行全体が主メ
モリから読み取られる。1回のキャッシュミスで、少な
くとも、メモリシステム全体のアクセス時間にキャッシ
ュにおけるワード数で多重化されるCPUのサイクル時
間を加えた時間が要る。キャッシュの実現のし方によっ
ては(たとえば本発明のように命令がキャッシュにロー
ドされたときにCPUでそれらが使用可能であれば)、
後者のサイクル時間は不要である。しかしながら、キャ
ッシュの1つの行を一杯にしてもその中には使用される
ことのない命令が入っているということはよくある。
ミスが生じたときは、キャッシュの1つの行全体が主メ
モリから読み取られる。1回のキャッシュミスで、少な
くとも、メモリシステム全体のアクセス時間にキャッシ
ュにおけるワード数で多重化されるCPUのサイクル時
間を加えた時間が要る。キャッシュの実現のし方によっ
ては(たとえば本発明のように命令がキャッシュにロー
ドされたときにCPUでそれらが使用可能であれば)、
後者のサイクル時間は不要である。しかしながら、キャ
ッシュの1つの行を一杯にしてもその中には使用される
ことのない命令が入っているということはよくある。
標準的な命令キャッシュの場合、キャッシュミスは任意
の命令アクセスで起こり得る。BTTのミスが起こり得
るのはブランチが生じたときだけである。したがってた
とえば全ての命令のうち16%がブランチを生ずるもの
であるときは、BTTにおける40%のヒツト率は、大
雑把にいって、標準的な命令キャッシュの90%のヒツ
ト率ト等価である。以上のことから、オンチップの命令
記憶のためにほんのわずかの量のメモリしか使えないよ
うな状況では、本実施例に従ったBTTは標準的な命令
キャッシュよりmAていることがわかるであろう。
の命令アクセスで起こり得る。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として相対的に示し
た。
ニットを具備した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の性能との差はこれよりさらに顕著にな
る。
シアティビイティを同じものにすれば、命令キャッシュ
の性能とBTTの性能との差はこれよりさらに顕著にな
る。
以上説明したように本発明によれば、命令先取りを効率
よく遂行することにより、小規模の命令メモリでより性
能の高いプロセラサシステムラ実現することができる。
よく遂行することにより、小規模の命令メモリでより性
能の高いプロセラサシステムラ実現することができる。
【図面の簡単な説明】
第1図は本発明に基づく命令メモリの基本的な構成を示
す図、第2図は2ウ工イセツトアソシアテイプ式のブラ
ンチ目標テーブルの構成に必要な付加的な論理を示す図
である。 出願人 インタボ尤ンヨナル・ビジネス・マ・μスズ
・ゴーボレー/ヨン代理人 弁理士 頓 宮
孝 −(外1名) 実アドレス 友ア
ドレス(変換さfL!ニアドレスビット)
([!it定アトレ又ビット)第2図
す図、第2図は2ウ工イセツトアソシアテイプ式のブラ
ンチ目標テーブルの構成に必要な付加的な論理を示す図
である。 出願人 インタボ尤ンヨナル・ビジネス・マ・μスズ
・ゴーボレー/ヨン代理人 弁理士 頓 宮
孝 −(外1名) 実アドレス 友ア
ドレス(変換さfL!ニアドレスビット)
([!it定アトレ又ビット)第2図
Claims (1)
- 【特許請求の範囲】 プロセツサ、命令メモリ、および主メモリを有するプロ
セツサシステムにおいて、 目標アドレステーブル、次取出しアドレステーブル、有
効エントリテーブル、および命令テーブルで構成された
ブランチ目標テーブルを前記命令メモリに具備すること
によつて、ブランチが生じたときは該ブランチの目標ア
ドレスによつて前記ブランチ目標テーブルを参照し該テ
ーブルのアドレス指定されたラインの全てのエントリを
アクセスし、前記アドレス指定されたラインにおける前
記目標アドレステーブルのエントリと目標アドレスとを
比較してこれらが一致するときは前記次取出しアドレス
でアドレス指定される命令を主メモリから取り出し、一
致しないときは目標命令および後続の命令を主メモリか
ら取り出すようにしたことを特徴とする命令メモリ制御
方法。
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)
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)
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)
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)
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 |
-
1984
- 1984-10-24 US US06/664,275 patent/US4691277A/en not_active Expired - Lifetime
-
1985
- 1985-05-21 CA CA000482001A patent/CA1228170A/en not_active Expired
- 1985-06-12 JP JP60126413A patent/JPS61100837A/ja active Granted
- 1985-09-07 EP EP85111332A patent/EP0179245B1/en not_active Expired
- 1985-09-07 DE DE8585111332T patent/DE3582777D1/de not_active Expired - Fee Related
Patent Citations (3)
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)
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) | パイプライン制御方式 |