JPH04106645A - キャッシュメモリのアドレス処理方法 - Google Patents

キャッシュメモリのアドレス処理方法

Info

Publication number
JPH04106645A
JPH04106645A JP2224619A JP22461990A JPH04106645A JP H04106645 A JPH04106645 A JP H04106645A JP 2224619 A JP2224619 A JP 2224619A JP 22461990 A JP22461990 A JP 22461990A JP H04106645 A JPH04106645 A JP H04106645A
Authority
JP
Japan
Prior art keywords
address
instruction
cache
history table
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.)
Pending
Application number
JP2224619A
Other languages
English (en)
Inventor
Kiyobumi Miyamoto
宮本 清文
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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2224619A priority Critical patent/JPH04106645A/ja
Publication of JPH04106645A publication Critical patent/JPH04106645A/ja
Pending legal-status Critical Current

Links

Landscapes

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

Abstract

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

Description

【発明の詳細な説明】 [概要] パイプライン演算処理時におけるキャッシュメモリのア
ドレス処理方法に関し、 ハードウェアの負担を少なくすることを目的とし、 命令を取入れるためにアドレス変換テーブルとキャッシ
ュタグ゛を引くことで、キャッシュを構成している記憶
装置内の命令の物理アドレスを取出すパイプライン方式
の情報処理装置において、命令フェッチアドレスを監視
しておき、初めて不連続なアドレスを検出した場合には
、各種の変換動作の後のキャッシュを構成している記憶
装置内の命令の物理アドレスを分岐履歴テーブルに記憶
しておき、命令処理中に再び同一の不連続なアドレスを
検出或いは不連続なアドレスの出現を予見したら、本来
必要な各種の変換動作をバイパスして直接にキャッシュ
を構成している記憶装置内の分岐先の命令の格納位置を
分岐履歴表から取出し、取出した物理アドレスをアクセ
スするように構成する。
[産業上の利用分野〕 本発明はパイプライン演算処理時におけるキャッンユメ
モリのアドレス処理方法に関する。
[従来の技術] 第4図はパイプラインのステージ例を示す図である。図
において、Dはデコードステージ、Aはアドレス計算ス
テージ、Tはアドレス変換ステジ、Cはキャッシュタグ
参照ステージ、Rはキャッシュ読込みステージ、Eは実
行ステージ、Wは書込みステージである。これら各ステ
ージは同時には実行しない形でパイプライン処理が行わ
れていく(第5図参照)。ここで、アドレス計算ステー
ジの動作について説明する。アドレス計算ステージAで
は、 B十り+固定ビット の形て計算か行われる。ここで、Bはベース、Dはイン
デックスである。固定ビットとしては、例えば12ビッ
ト程度か用いられる。このようにして求まったアドレス
は、論理アドレス(Vi想空間上のアドレス〕である。
実際にアクセスできるようにするためには、この論理ア
ドレスを物理アドレスに変換する必要かある。論理アド
レスから物理アドレスへの変換は、次のTステージで行
われる。
第6図は論理アドレスから物理アドレスへの変換の説明
図である。ページサイス4にの場合の論理アドレスが図
に示すように32ビツトで構成されているものとする(
■)。これらビット数のうち、下位12ビツトは変換の
対象にはならない。
つまり、下位12ビツトはページ内の具体的なアドレス
に相当する部分であり、このページにオフセットを乗せ
ることてページを割り付けていくことになる。このオフ
セットを乗せる操作か、以下に示すアドレス変換操作に
なる。
上位20ビツトを12ビツトと8ビツトに分割する(■
)。そして、下位8ビツトをRA M変換テーブルにか
けて12ビツトデータに変換する(■)。変換したデー
タと12ビツトデータを比較スる(■)。一方、■の下
位8ビツトはアドレス変換テーブルにかけられて20ビ
ツトデータに変換される(■)。この変換されたデータ
は、前記比較操作により両方のデータが一致した時に有
効となる。一致した時には、アドレス変換テーブルで変
換されたデータに■における下位12ビツトがそのまま
下位ビットとして付加されて、物理アドレスデータとな
る(■)。
このようにして物理アドレスが求まったら、このアドレ
スでキャッシュタグを参照しくステージC)、キャッシ
ュの内容を読出しくステージR)、その内容を実行しく
ステージE)、実行した結果を書込む(ステージW)一
連の処理が行なわれることになる。
容量の大きな物理キャッシュを持つ情報処理装置は、一
般にパイプラインが長くなりがちである。
そのため、分岐命令のようにパイプラインを乱す命令が
現れると、性能が大幅に劣化する。これに対し、従来の
対処方法は、分岐履歴と分岐先の命令を持ち、分岐命令
が現れると分岐履歴を参照し、分岐の方向を予測して、
分岐成立と予測した場合には、分岐先(分岐先キャッシ
ュ内)の命令を取出すといった方法で対処していた。
[発明が解決しようとする課題] 従来のような分岐先命令に対する対処方法では、分岐先
キャッシュの容量か十分に大きくないと、結局パイプラ
インに空きか生じてしまうため、かなりのハードウェア
量を必要としてしまうという問題かあった。
本発明はこのような課題に鑑みてなされたものであって
、ハードウェアの負担を少なくすることができるキャッ
シュメモリのアクセス処理方法を提1#することを目的
としている。
[課題を解決するための手段] 第1図は本発明方法の原理を示すフローチャトである。
本発明は、 命令を取入れるためにアドレス変換テーブルとキャッシ
ュタグを引くことで、キャッシュを構成している記憶装
置内の命令の物理アドレスを取出すパイプライン方式の
情報処理装置において、命令フェッチアドレスを監視し
ておき、初めて不連続なアドレスを検出した場合には、
各種の変換動作の後のキャッシュを構成している記憶装
置内の命令の物理アドレスを分岐履歴テーブルに記憶し
ておき(ステップ1)、 命令処理中に再び同一の不連続なアドレスを検出或いは
不連続なアドレスの出現を予見したら、本来必要な各種
の変換動作をバイパスして直接にキャッシュを構成して
いる記憶装置内の分岐先の命令の格納位置を分岐履歴表
から取出し、取出した物理アドレスをアクセスする(ス
テップ2)ようにしたことを特徴としている。
[作用] 命令フェッチアドレスを監視しておき、初めて不連続な
アドレスを検出した場合には、各種の変換動作の後のキ
ャッシュを構成している記憶装置内の命令の物理アドレ
スを分岐履歴テーブルに記憶しておき、命令処理中に再
び同一の不連続なアドレスを検出或いは不連続なアドレ
スの出現を予見したら、直接にキャッシュを構成してい
る記憶装置内の分岐先の命令の格納位置を分岐履歴表か
ら取出し取出した物理アドレスをアクセスする。
このような構成にすることにより、最初の分岐命令には
時間がかかるが、2回目以降の同一分岐命令に対しては
分岐履歴表からキャッシュを直接アクセスすることがで
きるので、/X−ドウエアの負担を少なくすることがで
きる。
[実施例] 以下、図面を参照して本発明の実施例を詳細に説明する
第2図は本発明方法を実施する/X−ドウエア構成例を
示すブロック図である。パイプラインのステージ数は第
4図と同しであるものとする。図において、1は命令を
予めフェッチするプリフェッチユニット、2は論理アド
レス計算を行うアドレス計算部、3は論理アドレスを物
理アドレスに変換するアドレス変換テーブル(TLB)
 、4は該アドレス変換テーブル3により変換された物
理アドレスを受けるキャッシュタグ、5は該キャッシュ
タグ4によりアクセスされるキュッシュRAMである。
6は該RA M 5から読出した命令を実行する実行ユ
ニット、7は更にデコードするデコードユニットである
。図に示される構成要素のいずれか適当なものの中に、
前記した分岐履歴表が設けられている。このように構成
された回路の動作を説明すれば、以下のとおりである。
本発明を第4図に示すようなパイプライン計算機に応用
した例について説明する。この計算機では、分岐が生し
ると3サイクルの量計算機が停止してしまう。これに対
し、従来の分岐先キャッシュを用いると3命令以上の容
量が必要となり、7\−ドウエアの増大を招いてしまう
。この計算機では、分岐命令は一般の一般のオペランド
フェッチと同様にブリフェッチユニット1による命令の
フェッチ アドレス計算部2によるアドレス計算TLB
3によるアドレス変換、キャッシュタグ4のサーチ等の
処理を行い、分岐先の命令を取出す。
ここで、その分岐命令が初めての分岐であった場合、不
連続な命令フェッチが生しると、その時のキャッシュを
構成している記憶装置内の命令の物理アドレスとその不
連続なアドレスの出現を予見する手段を記憶していく。
この不連続なアドレスの出現を予見する手段としては、
例えば直前の有効な記憶装置内の命令の物理アドレスを
用いることが考えられる。その他にも不連続なアドレス
の出現を予見する方法はある。例えば、3サイクル前の
命令フェッチアドレス等が考えられる。要は分岐前の物
理アドレスをスムーズに分岐先の物理アドレスに切替え
られるものであればよい。
第3図は分岐を高速化する機構の説明図である。
ここでは、キャッシュのウェイ当たりの容量を2′″′
バイトとしている。TLBにより変換された物理アドレ
スが32ビツトあるものとする(■)。
これからキュッシュタグを引く (■)。そして、タグ
を引いた内容でキャッシュの物理アドレスを求め(■)
、分岐直前のアドレスと分岐先アドレスを分岐履歴表に
記憶する(■)。
そして、以降は命令フェッチが来る度にキャッシュの物
理アドレスでこの分岐履歴表を引き、該当するものがあ
れば、分岐履歴表から直接分岐先のキャッシュの物理ア
ドレスを取出す。こうすれば、最大でキャッシュのライ
ンサイズと同様の分岐先キャッシュを持っているのと同
しことになる。
ところで、キャッシュは頬繁に入れ替えがなされるため
、内容が正しいかどうか確認する必要かある。先ずは入
れ替えの際にこの分岐履歴表を引き、該当するものがあ
ればそれを無効化する。更に、計算機の構造によっては
(例えば命令を更新することを許している計算機)、通
常と同様にアドレス計算−TLB→タグの処理を行い、
物理アドレスが一致しているか確かめる必要もある。
[発明の効果コ 以上、詳細に説明したように、本発明によれば命令フェ
ッチアドレスを監視しておき、初めて不連続なアドレス
を検出した場合には、各種の変換動作の後のキャッシュ
を構成している記憶装置内の命令の物理アドレスを分岐
履歴テーブルに記憶しておき、命令処理中に再び同一の
不連続なアドレスを検出或いは不連続なアドレスの出現
を予見したら、直接にキャッシュを構成している記憶装
置内の分岐先の命令の格納位置を分岐履歴表から取出し
、取出した物理アドレスをアクセスする構成にすること
により、最初の分岐命令には時間がかかるが、2回目以
降の同一分岐命令に対しては分岐履歴表からキャッシュ
を直接アクセスすることができるので、ハードウェアの
負担を少なくすることができる。
【図面の簡単な説明】
第1図は本発明方法の原理を示すフローチャト、 第2図は本発明方法を実施するハードウェア構成例を示
すブロック図、 第3図は分岐を高速化する機構の説明図、第4図はパイ
プラインの演算ステージ例を示す図、 第5図はパイプライン処理の流れを示す図、第6図は論
理アドレスから物理アドレスへの変換の説明図である。 第2図において、 1はブリフェッチユニット、 2はアドレス計算部、 3はアドレス変換テーブル、 4はキャシュタグ、 5はRAM。 6は実行ユニト、 7はデコーディングユニットである。

Claims (1)

  1. 【特許請求の範囲】 命令を取入れるためにアドレス変換テーブルとキャッシ
    ュタグを引くことで、キャッシュを構成している記憶装
    置内の命令の物理アドレスを取出すパイプライン方式の
    情報処理装置において、命令フェッチアドレスを監視し
    ておき、初めて不連続なアドレスを検出した場合には、
    各種の変換動作の後のキャッシュを構成している記憶装
    置内の命令の物理アドレスを分岐履歴テーブルに記憶し
    ておき(ステップ1)、 命令処理中に再び同一の不連続なアドレスを検出或いは
    不連続なアドレスの出現を予見したら、本来必要な各種
    の変換動作をバイパスして直接にキャッシュを構成して
    いる記憶装置内の分岐先の命令の格納位置を分岐履歴表
    から取出し、取出した物理アドレスをアクセスする(ス
    テップ2)ようにしたことを特徴とするキャッシュメモ
    リのアドレス処理方法。
JP2224619A 1990-08-27 1990-08-27 キャッシュメモリのアドレス処理方法 Pending JPH04106645A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2224619A JPH04106645A (ja) 1990-08-27 1990-08-27 キャッシュメモリのアドレス処理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2224619A JPH04106645A (ja) 1990-08-27 1990-08-27 キャッシュメモリのアドレス処理方法

Publications (1)

Publication Number Publication Date
JPH04106645A true JPH04106645A (ja) 1992-04-08

Family

ID=16816550

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2224619A Pending JPH04106645A (ja) 1990-08-27 1990-08-27 キャッシュメモリのアドレス処理方法

Country Status (1)

Country Link
JP (1) JPH04106645A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006215799A (ja) * 2005-02-03 2006-08-17 Toshiba Corp メモリコントローラ

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006215799A (ja) * 2005-02-03 2006-08-17 Toshiba Corp メモリコントローラ

Similar Documents

Publication Publication Date Title
US8151085B2 (en) Method for address translation in virtual machines
JP3618385B2 (ja) データをバッファリングする方法およびそのシステム
JP3182740B2 (ja) 単一クロック・サイクルに非連続命令を取り出すための方法およびシステム。
US6622211B2 (en) Virtual set cache that redirects store data to correct virtual set to avoid virtual set store miss penalty
JP4927840B2 (ja) 可変長命令の固定数を持つ命令キャッシュ
JP4574712B2 (ja) 演算処理装置、情報処理装置及び制御方法
JPH1074166A (ja) 多重レベル・ダイナミック・セット予測方法および装置
US7266676B2 (en) Method and apparatus for branch prediction based on branch targets utilizing tag and data arrays
US5873123A (en) Processor and method for translating a nonphysical address into a physical address utilizing a selectively nonsequential search of page table entries
JPH0526219B2 (ja)
US5278963A (en) Pretranslation of virtual addresses prior to page crossing
KR20000076502A (ko) 세트 예측을 사용하여 세트 연상 캐시에서 대기 시간을감소시키기 위한 방법 및 장치
JPH0619793A (ja) キャッシュ・アクセスのための仮想アドレス変換予測の履歴テーブル
KR20170139659A (ko) 메모리를 어드레싱하기 위한 별개의 레지스터들을 가진 컴퓨터 프로세서
US9753855B2 (en) High-performance instruction cache system and method
US20110320789A1 (en) Method and Apparatus for High Performance Cache Translation Look-Aside Buffer TLB Lookups Using Multiple Page Size Prediction
JP2006520964A5 (ja)
JP2008545199A (ja) メモリ内の同じページに対する多数の変換ルックアサイド緩衝器へのアクセスの防止
KR100354465B1 (ko) 어드레스 변환 회로
JP2008165589A (ja) 情報処理装置
JPH04251352A (ja) マイクロプロセサのオンチップキャッシュ内のメモリ位置の選択的ロック
KR100218617B1 (ko) 변환우선참조 버퍼를 이용하여 메모리를 관리하는 데이터 처리 시스템의 효율적인 메모리 관리 방법 및 시스템과 그를 이용한 데이터 처리 시스템
JP2000020311A (ja) 情報処理装置
JPH04106645A (ja) キャッシュメモリのアドレス処理方法
US5649155A (en) Cache memory accessed by continuation requests