JPH11296431A - 情報処理装置及びキャッシュメモリのマッピング方法 - Google Patents

情報処理装置及びキャッシュメモリのマッピング方法

Info

Publication number
JPH11296431A
JPH11296431A JP10099580A JP9958098A JPH11296431A JP H11296431 A JPH11296431 A JP H11296431A JP 10099580 A JP10099580 A JP 10099580A JP 9958098 A JP9958098 A JP 9958098A JP H11296431 A JPH11296431 A JP H11296431A
Authority
JP
Japan
Prior art keywords
address
cache memory
index
stored
storage device
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
JP10099580A
Other languages
English (en)
Inventor
Norio Yoshiga
紀郎 吉賀
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 JP10099580A priority Critical patent/JPH11296431A/ja
Publication of JPH11296431A publication Critical patent/JPH11296431A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Abstract

(57)【要約】 【課題】 ダイレクトマッピング方式のキャッシュメモ
リのヒット率を向上させる。 【解決手段】 物理アドレスレジスタ12に記憶される
物理アドレスの生成と同時に、排他的論理和回路14
は、仮想アドレスの仮想ページ番号中のVA[6:5]
とオフセットアドレス中のVA[3:2]とのビット毎
の排他的論理和を求める。求めた結果は、キャッシュラ
インレジスタ15の上位2ビットに供給される。また、
オフセットアドレス中の下位2ビットVA[1:0]が
キャッシュラインレジスタ15の下位2ビットに供給さ
れる。これにより、キャッシュメモリ3のラインを選択
するためのインデックスがキャッシュラインレジスタ1
5に記憶される。CPU1は、キャッシュラインレジス
タ15に記憶されているインデックスでキャッシュメモ
リ3にアクセスする。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、情報処理装置及び
キャッシュメモリのマッピング方法に関し、特にダイレ
クトマッピング方式のキャッシュメモリにおけるものに
関する。
【0002】
【従来の技術】情報処理装置の記憶装置は、一般に、高
速であるものは高価で容量が少なく、低価格で大容量の
ものは低速である。一方、情報処理装置で扱うプログラ
ムには、参照されたコードやデータ、或いはその付近に
存するコードやデータは、近いうちに参照される可能性
が高いという参照の局所性がある。このため、情報処理
装置では、高速、小容量の記憶装置と低速、大容量の記
憶装置とを階層的に組み合わせて用いている。
【0003】このような階層的に組み合わされた記憶装
置として、CPU(Central Processing Unit)と主記
憶装置との間に、主記憶装置より高速で小容量の緩衝記
憶装置を置くキャッシュメモリがある。キャッシュメモ
リへのマッピングの方法には、ダイレクト方式、フルア
ソシエイティブ方式、セットアソシエイティブ方式など
があるが、この中で、ダイレクト方式は制御が単純であ
るため、特に低価格の情報処理装置で用いられている。
【0004】従来のダイレクト方式のキャッシュメモリ
を備える情報処理装置では、図6に示すようなキャッシ
ュメモリにおけるラインを選択するためのインデックス
を生成する機構が、CPUに設けられている。ここで
は、キャッシュメモリのタグを物理タグとする場合を例
とする。
【0005】図6に示すように、この機構は、仮想アド
レスレジスタ11と、物理アドレスレジスタ12と、T
LB(アドレス変換バッファ)13とからなる。また、
キャッシュメモリ3は、16ラインによって構成されて
いるものとする。この場合、仮想アドレスレジスタ11
中のVA[3:0]がキャッシュメモリのラインを選択
するためのインデックスとなる。また、TLB13を介
して仮想ページ番号がページフレーム番号に変換され
た、物理アドレスレジスタ12中のPA[7:0]がキ
ャッシュメモリ3のタグラインとなる。
【0006】
【発明が解決しようとする課題】上記従来の情報処理装
置では、仮想ページ番号が異なるデータで、仮想アドレ
ス中のオフセットアドレス(対応する物理アドレス中の
オフセットアドレスも同じ)が同一であるデータは、必
ずキャッシュメモリ3の同一のラインに入ることとな
る。
【0007】このため、情報処理装置が仮想ページアド
レス間でのジャンプが頻繁に起こるようなプログラムを
実行している場合、目的とするデータがキャッシュメモ
リ中に存在しないというキャッシュメモリのミスヒット
が頻繁に生じるようになる。すなわち、従来の情報処理
装置は、このようなプログラムを実行した場合に、キャ
ッシュメモリのヒット率が低くなるという問題があっ
た。
【0008】本発明は、上記従来技術の問題点を解消す
るためになされたものであり、実質的なダイレクトマッ
ピング方式のキャッシュメモリのヒット率を向上させる
ことができる情報処理装置及びキャッシュメモリのマッ
ピング方法を提供することを目的とする。
【0009】
【課題を解決するための手段】上記目的を達成するた
め、本発明の第1の観点にかかる情報処理装置は、デー
タが記憶される記憶装置と、該記憶装置に記憶されてい
るデータにアクセスする処理装置と、前記記憶装置に記
憶されているデータの一部が記憶され、前記処理装置が
前記記憶装置よりも高速にアクセスすることが可能なキ
ャッシュメモリとを備える情報処理装置であって、前記
処理装置は、アクセスすべきデータが記憶されている前
記記憶装置中のアドレスを記憶するアドレス記憶手段
と、前記アドレス記憶手段に記憶されているアドレスに
含まれるオフセットアドレスの一部と前記オフセットア
ドレス以外の部分の少なくとも一部を含む前記アドレス
の一部とから、前記キャッシュメモリのラインを選択し
てアクセスするためのインデックスを生成するインデッ
クス生成手段と、を備え、前記インデックス生成手段が
生成したインデックスで前記キャッシュメモリにアクセ
スすることを特徴とする。
【0010】上記情報処理装置においてインデックス生
成手段によるインデックスの生成には、オフセットアド
レスの一部の他にオフセットアドレス以外のものも用い
られる。このため、仮想ページアドレス間でのジャンプ
が頻繁に起こるようなプログラムの実行時に、実質的に
はダイレクトマッピング方式でもキャッシュメモリのヒ
ット率を向上させることができる。
【0011】上記情報処理装置において、前記キャッシ
ュメモリは、前記記憶装置中のアドレスに基づいて生成
されるタグをライン毎に記憶しているものとしてもよ
い。この場合、前記処理装置は、前記インデックスに対
応するラインのタグと、前記アドレス記憶手段に記憶さ
れているアドレスに基づいて生成されるタグとを比較
し、比較結果が一致である場合に、前記キャッシュメモ
リの前記インデックスに対応するラインにデータを読み
書きするものとすることができる。
【0012】上記情報処理装置において、前記インデッ
クス生成手段は、例えば、前記オフセットアドレスの一
部とは異なるオフセットアドレスの他の一部とオフセッ
トアドレス以外の部分の少なくとも一部とに所定の演算
を行う演算手段と、前記演算手段による演算結果を一部
分として記憶し、前記オフセットアドレスの一部を他の
部分として記憶するレジスタとを備えるものとすること
ができる。
【0013】このような演算手段を設けた場合、前記演
算手段が演算する前記オフセットアドレスの一部と前記
オフセットアドレス以外の部分の少なくとも一部とは、
同一のビット数で構成されていることを好適とする。そ
して、この場合、前記演算手段は、前記オフセットアド
レスの他の一部と前記オフセットアドレス以外の部分の
少なくとも一部との排他的論理和演算をする排他的論理
和演算手段を備えるものとすることができる。
【0014】また、さらに、前記演算手段は、前記排他
的論理和演算手段の演算結果と前記オフセットアドレス
の一部とをビット毎にいずれかを、外部から供給される
制御信号に従って出力する選択手段を備えるものとする
ことができる。
【0015】この場合、実行するプログラムのサイズや
ジャンプ命令の頻度に応じて最もヒット率がよくなる状
態でキャッシュメモリを使用することができる。
【0016】上記情報処理装置において、前記記憶装置
は、例えば、前記処理装置に仮想アドレス空間を提供す
るもの(すなわち、補助記憶装置)としてもよい。ここ
で、上記情報処理装置がページング方式の仮想記憶を実
現するものであるとすれば、前記アドレス記憶手段に記
憶されるアドレスは、前記処理装置がアクセスすべきデ
ータを含む前記前記仮想アドレス空間におけるページを
示す仮想ページ番号を含むものとなる。この場合、前記
インデックス生成手段がインデックスの生成に使用する
前記オフセットアドレス以外の部分の少なくとも一部
は、前記アドレス記憶手段に記憶されているアドレスに
含まれる仮想ページ番号の少なくとも一部からなるもの
とすることができる。
【0017】上記情報処理装置において、前記記憶装置
は、例えば、複数のバンクに分けられており、前記処理
装置は、アドレス空間識別情報によって前記記憶装置の
複数のバンクを識別するものとしてもよい。ここで、前
記アドレス記憶手段に記憶されるアドレスは、前記処理
装置がアクセスすべきデータを含むバンクを示すアドレ
ス空間識別子を含むものとなる。この場合、前記インデ
ックス生成手段がインデックスの生成に使用する前記オ
フセットアドレス以外の部分の少なくとも一部は、前記
アドレス記憶手段に記憶されているアドレスに含まれる
アドレス空間識別子の少なくとも一部からなるものとす
ることができる。
【0018】上記目的を達成するため、本発明の第2の
観点にかかるキャッシュメモリのマッピング方法は、処
理装置が記憶装置よりも高速にアクセスすることが可能
なキャッシュメモリへ、前記記憶装置に記憶されている
データをマッピングするためのキャッシュメモリのマッ
ピング方法であって、アクセスすべきデータに対応する
前記記憶装置中のアドレスに含まれるオフセットアドレ
スの一部とオフセットアドレス以外の部分の少なくとも
一部とに所定の演算を行うステップと、演算の結果と、
前記オフセットアドレスの他の一部とから前記キャッシ
ュメモリのラインを選択してアクセスするためのインデ
ックスを生成するステップと、を含むことを特徴とす
る。
【0019】
【発明の実施の形態】以下、添付図面を参照して、本発
明の実施の形態について説明する。
【0020】[第1の実施の形態]図1は、この実施の
形態にかかる情報処理装置の構成を示すブロック図であ
る。図示するように、この情報処理装置は、バス0を介
して相互に接続されたCPU(Central Processing Uni
t)1と、主記憶装置2と、キャッシュメモリ3と、補
助記憶装置4と、入出力インタフェース(I/F)5と
を備える。CPU1とキャッシュメモリ3との間は、直
接接続もされている。
【0021】CPU1は、256ワードの物理アドレス
空間と1024ワードの仮想アドレス空間とをサポート
し、主記憶装置2に記憶されているプログラムを実行す
る。ここで、1ワードは、1バイトで構成される。
【0022】主記憶装置2は、半導体メモリによって構
成され、256バイトの物理アドレス空間をCPU1に
提供する。キャッシュメモリ3は、主記憶装置2よりも
高速の半導体メモリによって構成され、16バイトのデ
ータ容量を有し、1ラインを1バイトとしている。補助
記憶装置4は、磁気ディスク装置などによって構成さ
れ、1024バイトの仮想アドレス空間をCPU1に提
供する。
【0023】入出力インタフェース5は、この情報処理
装置と入出力装置との間のデータ転送のインタフェース
となるもので、キーボード、マウスなどの入力装置や、
ディスプレイ、プリンタなどの出力装置が接続される。
入出力インタフェース5は、接続される入出力装置の数
に応じて複数用意されている。
【0024】CPU1は、プログラムの実行時に、仮想
アドレスを物理アドレスに変換する機能と、キャッシュ
メモリのラインを選択するためのインデックスを生成す
る機能とを有する。この機能は、図2に示すように、仮
想アドレスレジスタ11と、物理アドレスレジスタ12
と、TLB(アドレス変換バッファ)13と、排他的論
理和回路14と、キャッシュラインレジスタ15とによ
って実現される。
【0025】仮想アドレスレジスタ11は、プログラム
カウンタ、命令レジスタ中のアドレス部などから供給さ
れた10ビットの仮想アドレス(VA[9:0])を一
時記憶する。物理アドレスレジスタ12は、仮想ページ
番号がTLB13によってページフレーム番号に変換さ
れた8ビットの物理アドレス(PA[7:0])を一時
記憶する。物理アドレスの上位6ビットPA[7:2]
が物理タグとしてキャッシュメモリ3のタグラインに記
憶される。
【0026】TLB13は、仮想アドレスレジスタ11
に記憶されている仮想ページ番号(VA[9:5])を
ページフレーム番号に変換して物理アドレスレジスタ1
2のPA[7:5]に供給する。なお、物理アドレスレ
ジスタ12中のオフセットアドレスには、仮想アドレス
レジスタ11中のオフセットアドレスと同一の値が入れ
られる。
【0027】排他的論理和回路14は、仮想アドレスの
仮想ページ番号中のVA[6:5]とオフセットアドレ
ス中のVA[3:2]とのビット毎の排他的論理和をと
り、その結果をキャッシュラインレジスタ15の上位2
ビットに供給する。キャッシュラインレジスタ15は、
排他的論理和回路14の出力を上位2ビットとし、仮想
アドレスのオフセットアドレス中の下位2ビットVA
[1:0]を2ビットとする、キャッシュメモリ3のラ
インを選択するためのインデックスを一時記憶する。
【0028】CPU1は、キャッシュラインレジスタ1
5に記憶されたインデックスが示すキャッシュメモリ3
のラインにアクセスし、このラインのタグラインが物理
タグPA[7:2]と一致するかどうかを調べる。一致
する場合は、キャッシュヒットとなり、CPU1は、キ
ャッシュメモリ中の対応するデータラインからデータを
読み出す(或いはデータを書き込む)。データの書き込
みの場合は、主記憶装置2の物理アドレスレジスタ12
に記憶されているアドレスにもデータを書き込む。一致
しない場合は、ミスヒットとなり、CPU1は、物理ア
ドレスレジスタ12に記憶されている主記憶装置2中の
物理アドレスからデータを読み出す(或いはデータを読
み出す)。
【0029】以下、この実施の形態にかかる情報処理装
置における動作について、説明する。ここでは、CPU
1が物理アドレス空間中に存在するデータを読み出す場
合を例として説明する。また、CPU1が読み出すデー
タは、少なくとも主記憶装置2には存在するものとし、
補助記憶装置4にはスワップアウトされていないものと
する。
【0030】命令フェッチ、オペランドフェッチのた
め、CPU1が主記憶装置2に格納されているコードや
データを読み出そうとする場合には、読みだそうとする
コードやデータに対応する仮想アドレスが、仮想アドレ
スレジスタ11に記憶される。
【0031】仮想アドレスレジスタ11に仮想アドレス
が記憶されると、TLB13は、仮想アドレス中の仮想
アドレス番号VA[9:5]をページフレーム番号に変
換し、物理アドレスの上位3ビットPA[7:5]とし
て物理アドレスレジスタ12に供給する。また、仮想ア
ドレスレジスタ11に記憶されている仮想アドレス中の
オフセット番号VA[4:0]は、そのまま物理アドレ
スの下位5ビットPA[4:0]として物理アドレスレ
ジスタ12に供給される。これにより、物理アドレスが
生成され、物理アドレスレジスタ12に記憶される。
【0032】物理アドレスの生成と同時に、排他的論理
和回路14は、仮想アドレスの仮想ページ番号中のVA
[6:5]とオフセットアドレス中のVA[3:2]と
のビット毎の排他的論理和を求める。求めた結果は、キ
ャッシュラインレジスタ15の上位2ビットに供給され
る。また、オフセットアドレス中の下位2ビットVA
[1:0]がキャッシュラインレジスタ15の下位2ビ
ットに供給される。これにより、キャッシュメモリ3の
ラインを選択するためのインデックスがキャッシュライ
ンレジスタ15に記憶される。
【0033】次に、CPU1は、キャッシュラインレジ
スタ15に記憶されているインデックスでキャッシュメ
モリ3にアクセスすると共に、物理アドレスレジスタ1
2に記憶されている物理アドレスで主記憶装置2にアク
セスする。このとき、キャッシュメモリ3の方が高速で
あり、CPU1は、インデックスが示すライン中のタグ
ラインを読み出し、物理アドレスレジスタ12に記憶さ
れている物理アドレスの上位6ビットからなる物理タグ
PA[7:2]と比較する。
【0034】比較の結果が一致する場合は、CPU1
は、キャッシュメモリ3の当該ラインのデータラインか
らデータを読み出し(或いはデータを書き込み)、主記
憶装置2へのアクセス動作を中止する。一方、比較の結
果が一致しない場合は、CPU1は、主記憶装置2への
アクセス動作を続行し、主記憶装置2の当該物理アドレ
スからデータを読み出す。
【0035】以下、この実施の形態にかかる情報処理装
置におけるキャッシュメモリへのマッピングの具体例に
ついて、図3(a)〜(d)を参照して説明する。図3
(a)〜(d)の例では、仮想アドレスレジスタ11に
記憶されている仮想アドレス中のオフセットアドレスは
いずれも“*1011”であり、仮想ページ番号はそれ
ぞれ、“***00”、“***01”、“***1
0”、“***11”である(*は、0と1とのいずれ
でもよいことを示す)。
【0036】図3(a)に示す例では、排他的論理和回
路14は、“00”と“10”とのビット毎の排他的論
理和をとり、結果として“10”を出力し、キャッシュ
ラインレジスタ15の上位2ビットに供給する。また、
キャッシュラインレジスタ15には、オフセットアドレ
スの下位2ビットである“11”が供給される。これに
より、キャッシュラインレジスタ15には、インデック
スとして“1011”が記憶され、CPU1は、キャッ
シュメモリ3のこのインデックスが示すラインにアクセ
スする。
【0037】図3(b)に示す例では、排他的論理和回
路14は、“01”と“10”とのビット毎の排他的論
理和をとり、結果として“11”を出力し、キャッシュ
ラインレジスタ15の上位2ビットに供給する。また、
キャッシュラインレジスタ15には、オフセットアドレ
スの下位2ビットである“11”が供給される。これに
より、キャッシュラインレジスタ15には、インデック
スとして“1111”が記憶され、CPU1は、キャッ
シュメモリ3のこのインデックスが示すラインにアクセ
スする。
【0038】図3(c)に示す例では、排他的論理和回
路14は、“10”と“10”とのビット毎の排他的論
理和をとり、結果として“00”を出力し、キャッシュ
ラインレジスタ15の上位2ビットに供給する。また、
キャッシュラインレジスタ15には、オフセットアドレ
スの下位2ビットである“11”が供給される。これに
より、キャッシュラインレジスタ15には、インデック
スとして“0011”が記憶され、CPU1は、キャッ
シュメモリ3のこのインデックスが示すラインにアクセ
スする。
【0039】図3(d)に示す例では、排他的論理和回
路14は、“11”と“10”とのビット毎の排他的論
理和をとり、結果として“01”を出力し、キャッシュ
ラインレジスタ15の上位2ビットに供給する。また、
キャッシュラインレジスタ15には、オフセットアドレ
スの下位2ビットである“11”が供給される。これに
より、キャッシュラインレジスタ15には、インデック
スとして“0111”が格納され、CPU1は、キャッ
シュメモリ3のこのインデックスが示すラインにアクセ
スする。
【0040】以上、図3(a)〜(d)に従って説明し
たように、この実施の形態にかかる情報処理装置では、
仮想アドレスレジスタ11に記憶されている仮想アドレ
ス中のオフセットアドレスがいずれも“*1011”で
ある場合でも、仮想ページ番号の下位2ビットが異なる
と、キャッシュメモリ3の異なるラインにデータが入れ
られることとなる。すなわち、キャッシュメモリ3は、
実質的な4wayキャッシュとなる。
【0041】なお、比較例として、このような仮想アド
レスが物理アドレスレジスタ11に記憶されている場合
を図6に示す従来例に適用した場合について、説明す
る。このような場合は、キャッシュメモリ3のラインを
選択するためのインデックスはいずれも“1011”と
なり、各データはすべてキャッシュメモリ3中の同一の
ラインに入れられることとなる。
【0042】以上説明したように、この実施の形態にか
かる情報処理装置では、ダイレクト方式のマッピングで
も仮想ページ番号に応じて同一のオフセットアドレスを
有するデータをキャッシュメモリ3の異なるラインに入
れることが可能となる。このため、ページ間でのジャン
プ命令が頻発するようなプログラムを実行している場合
であっても、目的とするデータがキャッシュメモリ3に
記憶されている確率が高くなり、ヒット率を従来例に比
べて向上することが可能となる。
【0043】[第2の実施の形態]この実施の形態にか
かる情報処理装置の構成は、第1の実施の形態にかかる
情報処理装置(図1)と実質的に同一である。但し、こ
の実施の形態にかかる情報処理装置では、CPU1が有
するキャッシュメモリのラインを選択するためのインデ
クス生成の機能を実現する手段が、第1の実施の形態の
もの(図2)と異なる。
【0044】図4は、この実施の形態におけるアドレス
変換及びキャッシュメモリのラインを選択するためのイ
ンデクス生成の機能を実現する手段の構成を示す図であ
り、図2に示す排他的論理和回路14の代わりに、排他
的論理和回路21とセレクタ22とが設けられている。
【0045】排他的論理和回路21は、仮想アドレスの
仮想ページ番号中のVA[6:5]とオフセットアドレ
ス中のVA[3:2]とのビット毎の排他的論理和をと
り、その結果をセレクタ22に供給する。セレクタ22
は、外部から供給されている制御信号に従って、排他的
論理和回路21の出力とオフセットアドレス中のVA
[3:2]とのいずれかビット毎に選択し、選択した結
果をキャッシュラインレジスタ15の上位2ビットに供
給する。
【0046】キャッシュラインレジスタ15は、セレク
タ22の出力を上位2ビットとし、仮想アドレスのオフ
セットアドレス中の下位2ビットVA[1:0]を2ビ
ットとする、キャッシュメモリ3のラインを選択するた
めのインデックスを一時記憶する。
【0047】以下、この実施の形態にかかる情報処理装
置における動作について、説明する。この実施の形態に
おいて、キャッシュラインレジスタ15に記憶されるイ
ンデックスの生成以外の動作は、第1の実施の形態のも
のと同一である。
【0048】インデックスの生成において、セレクタ2
2による選択には、次の3つの場合がある。(1)上位
ビット、下位ビットとも排他的論理和回路14の出力を
選択する場合。(2)上位ビットが排他的論理和回路1
4の出力を選択し、下位ビットがオフセットアドレス中
のVA[2]を選択する場合。(3)上位ビット、下位
ビットともオフセットアドレス中のVA[3:2]を選
択する場合。なお、セレクタ22の選択は、実行するプ
ログラムのサイズやページ間ジャンプの頻度などに従っ
て供給される制御信号によって切り替えられる。
【0049】上記の(1)の場合は、仮想アドレスレジ
スタ11に記憶されている仮想アドレスに従ってキャッ
シュラインレジスタ15に記憶されるインデックスは、
第1の実施の形態のものと同一となる。上記の(3)の
場合は、仮想アドレスレジスタ11に記憶されている仮
想アドレスに従ってキャッシュラインレジスタ15に記
憶されるインデックスは、従来例のものと同一となる。
【0050】上記の(2)の場合、排他的論理和回路1
4は、仮想アドレスの仮想ページ番号中のVA[6:
5]とオフセットアドレス中のVA[3:2]とのビッ
ト毎の排他的論理和を求める。求めた結果は、ビット毎
にセレクタ22に供給される。セレクタ22は、上位ビ
ットで排他的論理和回路14の出力を選択し、下位ビッ
トでオフセットアドレス中のVA[2]を選択して、キ
ャッシュラインレジスタ15の上位2ビットに供給す
る。また、オフセットアドレス中の下位2ビットVA
[1:0]がキャッシュラインレジスタ15の下位2ビ
ットに供給される。これにより、キャッシュメモリ3の
ラインを選択するためのインデックスがキャッシュライ
ンレジスタ15に記憶される。
【0051】上記の(2)の場合にキャッシュラインレ
ジスタ15に記憶されるインデックスについての具体例
を、図3(a)〜(d)のそれぞれに示した仮想アドレ
スが仮想アドレスレジスタ11に記憶されている場合を
例として説明する。ここで、結果のみ述べると、図3
(a)〜(d)のそれぞれで、インデックスは、“10
11”、“1011”“0011”、“0011”とな
る。すなわち、この場合、キャッシュメモリ3は、実質
的な2wayキャッシュとなる。
【0052】以上説明したように、この実施の形態にか
かる情報処理装置では、セレクタ22に供給する制御信
号によってキャッシュメモリ3を、実質的な1,2,4
wayキャッシュのいずれかに切り替えて使用すること
ができる。このため、CPU1が実行するプログラムの
サイズやジャンプ命令の頻度によってキャッシュメモリ
3の使用法を変化させて、キャッシュメモリ3のヒット
率が最もよくなる状態で使用することが可能となる。
【0053】[第3の実施の形態]この実施の形態にか
かる情報処理装置の構成は、第1の実施の形態にかかる
情報処理装置(図1)の構成と実質的に同一である。但
し、この実施の形態にかかる情報処理装置では、CPU
1は、第1の実施の形態と同様に1024ワードの仮想
アドレス空間しかサポートしていないが、補助記憶装置
4は、8192バイト(ワード)の容量を有し、102
4バイトの8つのバンクに分けられている。補助記憶装
置3の容量をすべて使用するため、CPU1は、アドレ
ス空間IDによって補助記憶装置3が有する8つのバン
クを切り替える。また、この実施の形態にかかる情報処
理装置では、CPU1が有するアドレス変換及びキャッ
シュメモリのラインを選択するためのインデクス生成の
機能を実現する手段が、第1の実施の形態のもの(図
2)と異なる。
【0054】図4は、この実施の形態におけるアドレス
変換及びキャッシュメモリのラインを選択するためのイ
ンデクス生成の機能を実現する手段の構成を示す図であ
り、図2に示す仮想アドレスレジスタ11の代わりに、
仮想アドレスレジスタ31が、TLB13の代わりにT
LB(アドレス変換バッファ)32が、排他的論理和回
路14の代わりに排他的論理和回路33がそれぞれ設け
られている。
【0055】仮想アドレスレジスタ31中の仮想ページ
番号及びオフセットアドレス(VA[9:0])は、第
1の実施の形態のものと実質的に同一である。仮想アド
レスレジスタ31中のアドレス空間IDは、CPU1が
参照するアドレス空間IDレジスタを兼ねるものであ
る。
【0056】TLB32は、アドレス空間IDと仮想ペ
ージ番号とを、物理アドレスレジスタ12中に記憶され
るページフレーム番号に変換する。排他的論理和回路3
3は、アドレス空間IDの下位2ビット[2:0]とオ
フセットアドレス中のVA[3:2]とのビット毎の排
他的論理和をとり、その結果をキャッシュラインレジス
タ15の上位2ビットに供給する。
【0057】以下、この実施の形態にかかる情報処理装
置における動作について、説明する。この実施の形態に
おいて、キャッシュラインレジスタ15に記憶されるイ
ンデックスの生成と、ページフレーム番号への生成以外
の動作は、第1の実施の形態のものと同一である。もっ
とも、ページフレーム番号の生成は、本発明の範囲でな
いので、説明を省略する。
【0058】物理アドレスの生成と同時に、排他的論理
和回路33は、仮想アドレスの仮想ページ番号中のVA
[6:5]とアドレス空間ID中のASID[1:0]
とのビット毎の排他的論理和を求める。求めた結果は、
キャッシュラインレジスタ15の上位2ビットに供給さ
れる。また、オフセットアドレス中の下位2ビットVA
[1:0]がキャッシュラインレジスタ15の下位2ビ
ットに供給される。これにより、キャッシュメモリ3の
ラインを選択するためのインデックスがキャッシュライ
ンレジスタ15に記憶される。
【0059】以上説明したように、この実施の形態にか
かる情報処理装置では、ダイレクト方式のマッピングで
もアドレス空間IDに応じて同一のオフセットアドレス
を有するデータをキャッシュメモリ3の異なるラインに
入れることが可能となる。このため、コンテクスト切り
換え時のキャッシュメモリ3のミスヒットを減らすこと
がでる。
【0060】[実施の形態の変形]上記の第1、2の実
施の形態では、仮想アドレスを10ビット(仮想アドレ
ス空間を1024ワード)、物理アドレスを8ビット
(物理アドレス空間を256ワード)としていた。上記
の第3の実施の形態では、3ビットのアドレス空間ID
を含む仮想アドレスを11ビット、物理アドレスを8ビ
ットとしていた。キャッシュメモリ3のサイズは、16
バイトで、1ラインが1バイトとしていた。しかしなが
ら、本発明において、仮想アドレス、物理アドレス或い
はキャッシュメモリのサイズは任意に選ぶことができ
る。また、1ワードの長さも任意である。
【0061】上記の第1の実施の形態では、仮想アドレ
スのオフセットアドレス中のVA[3:2]と仮想ペー
ジ番号中のVA[6:5]との排他的論理和をとって、
インデックスの上位2ビットとしていた。上記の第3の
実施の形態では、仮想アドレスのオフセットアドレス中
のVA[3:2]とアドレス空間ID中のASID
[1:0]との排他的論理和をとって、インデックスの
上位2ビットとしていた。これにより、実質的な4wa
yキャッシュの機能を実現していた。
【0062】また、上記の第2の実施の形態では、仮想
アドレスのオフセットアドレス中のVA[3:2]と仮
想ページ番号中のVA[6:5]との排他的論理和及び
オフセットアドレス中のVA[3:2]をビット毎に選
択して、インデックスの上位2ビットとしていた。これ
により、実質的な1,2,4wayキャッシュの機能を
実現していた。
【0063】しかしながら、本発明では、インデックス
の上位ビット数nを任意に設定することができる。これ
により、実質的に2nwayキャッシュ(第2の実施の
形態と同様の構成とした場合は、1,2,・・・,2n
wayキャッシュ)の機能を実現することができる。
【0064】上記の第1〜第3の実施の形態では、イン
デックスの上位ビットを求めるために、排他的論理和演
算回路15、21で排他的論理和演算を行っていた。し
かしながら、本発明において、インデックスの上位ビッ
トを求めるための演算は、例えば、剰余演算などによっ
て行ってもよい。
【0065】上記の第1、第2の実施の形態では、排他
的論理和回路15、21は、仮想アドレスのオフセット
アドレス中のVA[3:2]と仮想ページ番号中のVA
[6:5]との排他的論理和をとって、キャッシュライ
ンレジスタ15の上位2ビットに供給していた。上記の
第3の実施の形態では、排他的論理和回路15は、仮想
アドレスのオフセットアドレス中のVA[3:2]とア
ドレス空間ID中のVA[11:10]との排他的論理
和をとって、キャッシュラインレジスタ15の上位2ビ
ットに供給していた。しかしながら、このような演算を
行うことなく、仮想ページ番号中のVA[6:5]或い
はアドレス空間ID中のVA[11:10]をそのまま
キャッシュラインレジスタ15の上位2ビットに供給し
てもよい。
【0066】上記の第1、第2の実施の形態では、キャ
ッシュメモリ3のタグラインに物理タグを用いるものを
例として説明した。しかしながら、本発明は、キャッシ
ュメモリの論理タグを用いるものにも適用することがで
きる。この場合、キャッシュメモリ3のタグラインに
は、仮想アドレスのうちのVA[9:2]を論理タグと
して格納すればよい。
【0067】上記の第3の実施の形態では、仮想アドレ
ス空間をアドレス空間IDによって拡張している情報処
理装置におけるキャッシュメモリ3のラインを選択する
ためのインデックスを生成する場合について、説明し
た。しかしながら、本発明は、仮想記憶をサポートして
いないが、アドレス空間IDによって物理アドレス空間
を拡張している情報処理装置にも適用することができ
る。この場合、主記憶装置の異なるバンク間でのジャン
プ命令を多く含むプログラムを実行する場合に、本発明
の効果が発揮される。
【0068】上記の第1〜第3の実施の形態では、情報
処理装置は、命令キャッシュとデータキャッシュとの区
別が付けられておらず、階層的に構成されていないキャ
ッシュメモリ3を有していた。しかしながら、本発明
は、命令キャッシュとデータキャッシュとの区別が付け
られたキャッシュメモリや、1次キャッシュ、2次キャ
ッシュと階層的に構成されたキャッシュメモリを有する
情報処理装置にも適用することができる。
【0069】
【発明の効果】以上説明したように、本発明によれば、
情報処理装置が仮想ページアドレス間でのジャンプが頻
繁に起こるようなプログラムの実行時に、実質的にはダ
イレクトマッピング方式でもキャッシュメモリのヒット
率を向上させることができる。
【0070】また、インデックス生成手段が、排他的論
理和手段と選択手段とを備える構成とした場合には、実
行するプログラムのサイズやジャンプ命令の頻度に応じ
て最もヒット率がよくなる状態でキャッシュメモリを使
用することができる。
【図面の簡単な説明】
【図1】本発明の第1の実施の形態にかかる情報処理装
置の構成を示すブロック図である。
【図2】本発明の第1の実施の形態におけるアドレス変
換及びキャッシュメモリのラインを選択するためのイン
デクス生成の機能を実現する手段を説明する図である。
【図3】(a)〜(d)は、本発明の第1の実施の形態
における具体例を示す図である。
【図4】本発明の第2の実施の形態におけるアドレス変
換及びキャッシュメモリのラインを選択するためのイン
デクス生成の機能を実現する手段を説明する図である。
【図5】本発明の第3の実施の形態におけるアドレス変
換及びキャッシュメモリのラインを選択するためのイン
デクス生成の機能を実現する手段を説明する図である。
【図6】従来例におけるおけるアドレス変換及びキャッ
シュメモリのラインを選択するためのインデクス生成の
機能を実現する手段を説明する図である。
【符号の説明】
0 バス 1 CPU 2 主記憶装置 3 キャッシュメモリ 4 補助記憶装置 5 入出力インタフェース(I/F) 11 仮想アドレスレジスタ 12 物理アドレスレジスタ 13 TLB(アドレス変換バッファ) 14 排他的論理和回路 15 キャッシュラインレジスタ 21 排他的論理和回路 22 セレクタ 31 仮想アドレスレジスタ 32 TLB(アドレス変換バッファ) 33 排他的論理和回路

Claims (8)

    【特許請求の範囲】
  1. 【請求項1】データが記憶される記憶装置と、該記憶装
    置に記憶されているデータにアクセスする処理装置と、
    前記記憶装置に記憶されているデータの一部が記憶さ
    れ、前記処理装置が前記記憶装置よりも高速にアクセス
    することが可能なキャッシュメモリとを備える情報処理
    装置であって、 前記処理装置は、 アクセスすべきデータが記憶されている前記記憶装置中
    のアドレスを記憶するアドレス記憶手段と、 前記アドレス記憶手段に記憶されているアドレスに含ま
    れるオフセットアドレスの一部と前記オフセットアドレ
    ス以外の部分の少なくとも一部を含む前記アドレスの一
    部とから、前記キャッシュメモリのラインを選択してア
    クセスするためのインデックスを生成するインデックス
    生成手段と、を備え、 前記インデックス生成手段が生成したインデックスで前
    記キャッシュメモリにアクセスすることを特徴とする情
    報処理装置。
  2. 【請求項2】前記キャッシュメモリは、前記記憶装置中
    のアドレスに基づいて生成されるタグをライン毎に記憶
    しており、 前記処理装置は、前記インデックスに対応するラインの
    タグと、前記アドレス記憶手段に記憶されているアドレ
    スに基づいて生成されるタグとを比較し、比較結果が一
    致である場合に、前記キャッシュメモリの前記インデッ
    クスに対応するラインにデータを読み書きすることを特
    徴とする請求項1に記載の情報処理装置。
  3. 【請求項3】前記インデックス生成手段は、前記オフセ
    ットアドレスの一部とは異なるオフセットアドレスの他
    の一部とオフセットアドレス以外の部分の少なくとも一
    部とに所定の演算を行う演算手段と、前記演算手段によ
    る演算結果を一部分として記憶し、前記オフセットアド
    レスの一部を他の部分として記憶するレジスタとを備え
    ることを特徴とする請求項1または2に記載の情報処理
    装置。
  4. 【請求項4】前記演算手段が演算する前記オフセットア
    ドレスの他の一部と前記オフセットアドレス以外の部分
    の少なくとも一部とは、同一のビット数で構成されてお
    り、 前記演算手段は、前記オフセットアドレスの他の一部と
    前記オフセットアドレス以外の部分の少なくとも一部と
    の排他的論理和演算をする排他的論理和演算手段を備え
    る、 ことを特徴とする請求項3に記載の情報処理装置。
  5. 【請求項5】前記演算手段は、前記排他的論理和演算手
    段の演算結果と前記オフセットアドレスの一部とをビッ
    ト毎にいずれかを、外部から供給される制御信号に従っ
    て出力する選択手段を備えることを特徴とする請求項4
    に記載の情報処理装置。
  6. 【請求項6】前記記憶装置は、前記処理装置に仮想アド
    レス空間を提供するものであり、 前記アドレス記憶手段に記憶されるアドレスは、前記処
    理装置がアクセスすべきデータを含む前記前記仮想アド
    レス空間におけるページを示す仮想ページ番号を含み、 前記インデックス生成手段がインデックスの生成に使用
    する前記オフセットアドレス以外の部分の少なくとも一
    部は、前記アドレス記憶手段に記憶されているアドレス
    に含まれる仮想ページ番号の少なくとも一部からなるこ
    とを特徴とする請求項1乃至5のいずれか1項に記載の
    情報処理装置。
  7. 【請求項7】前記記憶装置は、複数のバンクに分けられ
    ており、 前記処理装置は、アドレス空間識別情報によって前記記
    憶装置の複数のバンクを識別するものであり、 前記アドレス記憶手段に記憶されるアドレスは、前記処
    理装置がアクセスすべきデータを含むバンクを示すアド
    レス空間識別子を含み、 前記インデックス生成手段がインデックスの生成に使用
    する前記オフセットアドレス以外の部分の少なくとも一
    部は、前記アドレス記憶手段に記憶されているアドレス
    に含まれるアドレス空間識別子の少なくとも一部からな
    ることを特徴とする請求項1乃至5のいずれか1項に記
    載の情報処理装置。
  8. 【請求項8】処理装置が記憶装置よりも高速にアクセス
    することが可能なキャッシュメモリへ、前記記憶装置に
    記憶されているデータをマッピングするためのキャッシ
    ュメモリのマッピング方法であって、 アクセスすべきデータに対応する前記記憶装置中のアド
    レスに含まれるオフセットアドレスの一部とオフセット
    アドレス以外の部分の少なくとも一部とに所定の演算を
    行うステップと、 演算の結果と、前記オフセットアドレスの他の一部とか
    ら前記キャッシュメモリのラインを選択してアクセスす
    るためのインデックスを生成するステップと、を含むこ
    とを特徴とするキャッシュメモリのマッピング方法。
JP10099580A 1998-04-10 1998-04-10 情報処理装置及びキャッシュメモリのマッピング方法 Pending JPH11296431A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP10099580A JPH11296431A (ja) 1998-04-10 1998-04-10 情報処理装置及びキャッシュメモリのマッピング方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP10099580A JPH11296431A (ja) 1998-04-10 1998-04-10 情報処理装置及びキャッシュメモリのマッピング方法

Publications (1)

Publication Number Publication Date
JPH11296431A true JPH11296431A (ja) 1999-10-29

Family

ID=14251052

Family Applications (1)

Application Number Title Priority Date Filing Date
JP10099580A Pending JPH11296431A (ja) 1998-04-10 1998-04-10 情報処理装置及びキャッシュメモリのマッピング方法

Country Status (1)

Country Link
JP (1) JPH11296431A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100317976B1 (ko) * 1999-12-31 2001-12-24 대표이사 서승모 캐시 메모리가 포함된 시스템에서 인터럽트 서비스 루틴을위한 장치
KR20140113353A (ko) * 2013-03-15 2014-09-24 시게이트 테크놀로지 엘엘씨 동적 그래뉼기반 매개 스토리지

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100317976B1 (ko) * 1999-12-31 2001-12-24 대표이사 서승모 캐시 메모리가 포함된 시스템에서 인터럽트 서비스 루틴을위한 장치
KR20140113353A (ko) * 2013-03-15 2014-09-24 시게이트 테크놀로지 엘엘씨 동적 그래뉼기반 매개 스토리지

Similar Documents

Publication Publication Date Title
US8799621B2 (en) Translation table control
KR920005280B1 (ko) 고속 캐쉬 시스템
JP2554449B2 (ja) キャッシュ・メモリを有するデータ処理システム
US5018061A (en) Microprocessor with on-chip cache memory with lower power consumption
JP3666689B2 (ja) 仮想アドレス変換方法
CN112631961B (zh) 一种内存管理单元、地址转译方法以及处理器
JPH06110781A (ja) キャッシュメモリ装置
JP3449487B2 (ja) 変換索引緩衝機構
JP6478843B2 (ja) 半導体装置及びキャッシュメモリ制御方法
JPH07104816B2 (ja) コンピュータシステムを動作する方法及びコンピュータシステムにおけるメモリ管理装置
US5276850A (en) Information processing apparatus with cache memory and a processor which generates a data block address and a plurality of data subblock addresses simultaneously
JP2009512943A (ja) 多階層の変換索引緩衝機構(TLBs)フィールドの更新
US20050027960A1 (en) Translation look-aside buffer sharing among logical partitions
EP0410740B1 (en) A virtual storage address space access control system and method
EP1807767A1 (en) A virtual address cache and method for sharing data stored in a virtual address cache
JP3210637B2 (ja) データ処理システム内のキャッシュ・メモリにアクセスするための方法およびシステム
JP2013073271A (ja) アドレス変換装置、アドレス変換装置の制御方法及び演算処理装置
JPH11296431A (ja) 情報処理装置及びキャッシュメモリのマッピング方法
KR920005296B1 (ko) 정보처리장치
JPH01106149A (ja) 情報処理装置
JPH1027134A (ja) アドレス変換装置およびこれを用いたプロセッサ
JPH05324473A (ja) キャッシュメモリ方式及びマイクロプロセッサ装置
JPH10269141A (ja) プロセッサボード回路
JP3158761B2 (ja) キャッシュメモリ装置および制御方法
KR100343940B1 (ko) 트랜슬레이션 룩어헤드 버퍼 예측 비트를 이용한 쓰기동작시의 캐쉬 얼리어싱 방지

Legal Events

Date Code Title Description
A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20010925