JP3515333B2 - 情報処理装置 - Google Patents

情報処理装置

Info

Publication number
JP3515333B2
JP3515333B2 JP22955597A JP22955597A JP3515333B2 JP 3515333 B2 JP3515333 B2 JP 3515333B2 JP 22955597 A JP22955597 A JP 22955597A JP 22955597 A JP22955597 A JP 22955597A JP 3515333 B2 JP3515333 B2 JP 3515333B2
Authority
JP
Japan
Prior art keywords
memory
cache
address
data
sub
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.)
Expired - Fee Related
Application number
JP22955597A
Other languages
English (en)
Other versions
JPH1165925A (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.)
Toshiba Corp
Original Assignee
Toshiba 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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP22955597A priority Critical patent/JP3515333B2/ja
Priority to US09/140,280 priority patent/US6393521B1/en
Publication of JPH1165925A publication Critical patent/JPH1165925A/ja
Application granted granted Critical
Publication of JP3515333B2 publication Critical patent/JP3515333B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0844Multiple simultaneous or quasi-simultaneous cache accessing
    • G06F12/0846Cache with multiple tag or data arrays being simultaneously accessible
    • G06F12/0848Partitioned cache, e.g. separate instruction and operand caches

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Memory System (AREA)

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は情報処理装置に関
し、特にメモリ混載マイクロプロセッサなどを用いた情
報処理装置に関する。
【0002】
【従来の技術】一般に、計算機システムの性能を決める
主要構成要素は、プロセッサとメモリである。半導体技
術を背景に、プロセッサの動作周波数は2年で2倍の割
合で伸びているが、主記憶(メインメモリ、または単に
メモリと呼ぶ)を構成するDRAMなどのメモリのアク
セス速度の伸びはそれほどでもない。従来より、このプ
ロセッサ速度とメモリ速度との差を埋めるために用いら
れてきたのが、キャッシュメモリである。
【0003】キャッシュメモリは、メモリアクセスの時
間的・空間的局所性を利用したものである。すなわち、
一度アクセスされたデータは、再びアクセスされる可能
性が高いということと、アクセスされたデータの近くの
データもアクセスされる可能性が高いということを利用
している。
【0004】プロセッサとメモリとの速度差が大きくな
ると、相対的にメモリアクセス時間が大きくなり、プロ
セッサの性能がプロセッサの動作周波数の伸びほどは伸
びなくなってくる。そうなると、プロセッサの性能を高
くするには、メモリアクセス時間を小さくする必要があ
る。キャッシュメモリを搭載したプロセッサにおいて
は、キャッシュにアクセスしようとするデータがある場
合(ヒット)は、主記憶にはアクセスしないため、アク
セスするのはキャッシュにデータがない場合(ミス)だ
けで、実質的な主記憶への平均メモリアクセス時間は、
次のようになる。
【0005】 平均メモリアクセス時間=ミス率×リフィル時間 …(1) この式からわかるように、メモリアクセス時間を小さく
するためには、ミス率を小さくするか、リフィル時間を
小さくする必要がある。ここで、リフィル時間とは、キ
ャッシュミス時に主記憶からデータを読み出して該当す
るキャッシュラインに再格納するというキャッシュリフ
ィル処理に要する時間をいう。
【0006】平均メモリアクセス時間を小さくする有力
な一つの方法として、主記憶をプロセッサと同一チップ
上に搭載するという方法がある。主記憶とプロセッサと
を同一チップ上に搭載することによって、主記憶にアク
セスする際にチップ外へアクセスする必要がないので、
入出力バッファを経由する必要がなく、また、チップ外
の配線容量などの寄生容量が少なくなり、アクセス時間
を短くすることができる。また、メモリがプロセッサチ
ップの外にあると、プロセッサチップのピン数の制約か
ら、一度にアクセスできるメモリのビット幅も大きくで
きないのに対し、同一チップ内にある場合は、そのよう
なピン数制約がないので、一度にアクセスできるメモリ
のビット幅を大きくすることができる。メモリがチップ
外にあるときは、一度にアクセスできるビット幅を大き
くすることができないので、通常、一回のリフィルを数
回のメモリアクセスで実現しているが、メモリをチップ
内に持たせると、一度にアクセスできるデータのサイズ
を、キャッシュのラインサイズまで広げることができる
ので、一回のリフィルを一回のメモリアクセスで実現で
き、その分だけメモリアクセス時間を短くすることがで
きる。
【0007】現在の商用プロセッサで採用されているキ
ャッシュメモリの典型的なラインサイズは、16B(バ
イト)または32B程度であるが、上述のように大きく
とれるメモリビット幅を活用して、512Bのラインサ
イズのキャッシュメモリを提案しているものもある{文
献[1](Asheley Saulsbury,Fo
ng Pong and Andreas Nowat
zyk,“Missing the Memory W
all: The Case for Process
or/Memory Integration,”in
Proc.International Sympo
sium on Computer architec
ture,pp.90−101,May 199
6)}。
【0008】このようにラインサイズを大きくすると、
アクセスしたいアドレスのデータだけでなく、周辺のデ
ータもラインサイズ分だけキャッシュメモリに同時に取
り込むことになり、プリフェッチ効果が得られる。特
に、命令キャッシュでは、基本的には、連続したメモリ
領域を順番にアクセスするというシーケンシャルアクセ
スがほとんどなので、キャッシュミス率を大きく低減す
ることができる。データキャッシュの場合には、ミス率
が大きく改善されるアプリケーションもあるが、一方、
逆に、ミス率が高くなるアプリケーションもある。
【0009】主記憶をチップ上に搭載したプロセッサで
は、チップ上の主記憶容量は一定であり、後で増やすこ
とはできない。しかし、計算機システムとしては、主記
憶容量を増やすことができるようにしておく必要があ
る。主記憶容量を増やす方法としては、チップ外にメモ
リチップを増設する方法と、メモリ混載プロセッサを増
設する方法{(文献[1]、文献[2](村上,岩下,
宮嶋,白川,吉井,“メモリ−マルチプロセッサ一体型
ASSP(Application−Specific
Standard Product)アーキテクチ
ャ:PPRAM,”信学技報,ICD96−13,Ap
ril 1996)))}がある。
【0010】チップ外にメモリチップを増設するとメモ
リ混載プロセッサを増設する場合のどちらにおいても、
メモリアクセスをしようとするプロセッサから見れば、
アクセスされるメモリはチップ外にあるので、それらは
同様にみることができる。よって、以降では、メモリ混
載プロセッサを増設する場合でもそのチップを外部メモ
リチップとみなして扱う。この場合の計算機システムの
構成を図6に示す。
【0011】メモリ混載プロセッサは、図示のように、
プロセッサコア101、内部メモリ102、バスインタ
フェースユニット109、命令キャッシュ112、デー
タキャッシュ113から構成されており、バスインタフ
ェースユニット109を介して、外部のI/Oユニット
108および外部メモリ107に接続される。
【0012】チップ内のメモリ102についても、チッ
プ外に増設された外部メモリ107についても、その記
憶内容はいったんキャッシュメモリ112,113に格
納され、プロセッサコア101からアクセスされる。
【0013】文献[3](Toru Shimizu,
et al,“A Multimedia 32b R
ISC Microprocessor with 1
6Mb DRAM”in Proc. Interna
tional Symposium on Solid
−State Gircuits,pp.216−21
7,Feb.1996)、および文献[4](奥村、
他,“16MビットDRAM内蔵32ビットマイクロプ
ロセッサ,”信学技報,ICD96−7,April
1996)で述べられているDRAM混載プロセッサチ
ップでは、キャッシュメモリのラインサイズは、32B
であり、DRAMを混載していないプロセッサと同等の
ラインサイズである。つまり、主記憶を内蔵することに
よって、キャッシュのラインサイズを大きくできるとい
うことを利用していない。また、このチップでは、内蔵
キャッシュの使い方として二つのモードを持っている。
一つのモードは、外付けメモリなしで内蔵メモリのみを
使用する場合に、内蔵キャッシュを内蔵メモリのデータ
/命令共用キャッシュとして動作させる。もう一つのモ
ードでは、外付けROMを命令メモリとして使用する場
合に、外部ROMに対する命令キャッシュとして動作さ
せる。すなわち、チップ内にある一つのキャッシュを内
蔵メモリと外付けメモリのキャッシュとして使用してい
る。
【0014】
【発明が解決しようとする課題】上述したように、メモ
リ内蔵プロセッサチップを用いた従来のシステムでは、
外部メモリ、またはメモリ内蔵プロセッサチップを追加
することで、主記憶の記憶容量を拡張する。その際、追
加された外部メモリから転送されるデータは、内部メモ
リ用に使用されているキャッシュに格納されていると考
えられる。内蔵メモリを有効に活用するためには、かな
り大きなラインサイズを利用する必要がある。一方で、
外部メモリからデータを転送する際のビット幅は、利用
できる物理的なピン数が限られるので、大きくとれな
い。したがって、内蔵メモリ用にラインサイズを大きく
したキャッシュのラインサイズ分のデータを転送するた
めには、長い時間がかかり、このためプロセッサの性能
が落ちる。一方、外部メモリのバンド幅にあわせて、キ
ャッシュのラインサイズを小さくすると、内部メモリの
大きい入出力幅を十分活かすことができなくなる。
【0015】本発明はこのような実情に鑑みてなされた
ものであり、バンド幅が大きい内部メモリとバンド幅が
小さい外部メモリの双方について平均メモリアクセス時
間を低減できる情報処理装置を提供することを目的とす
る。
【0016】
【課題を解決するための手段】上記課題を解決するた
め、本発明では、バンド幅の異なる複数の記憶装置と、
その記憶装置のデータを蓄えるキャッシュメモリとを備
える情報処理装置において、キャッシュメモリへのリフ
ィル時に、アクセスする記憶装置のバンド幅に応じた大
きさのデータをリフィルできるようにしている。
【0017】すなわち、各記憶装置に対して、その記憶
装置のバンド幅(データ転送能力)に応じて、一回のリ
フィルで読み出すデータのサイズ(リフィルサイズ)を
決める。複数のキャッシュが存在する場合は、各記憶装
置に対し、そのリフィルサイズでリフィルできるキャッ
シュを一つ選び、その記憶装置からのデータは、そのキ
ャッシュに格納するようにする。
【0018】記憶装置へのアクセスの手順は次のように
なる。アクセスするアドレスとデータサイズは与えられ
ているものとする。まず、与えられたアドレスがキャッ
シュに存在するかどうかを調べる。存在すれば、キャッ
シュから、そのデータを読み出し、プロセッサコアのデ
スティネーションレジスタに転送する。そのアドレスが
キャッシュに存在しない場合は、まず、キャッシュ内の
格納すべきラインを決める。そのラインのデータが記憶
装置と一致していない可能性がある場合(そのラインが
リフィル後、書き換えられた場合)、そのラインに格納
されているデータを記憶装置に書き戻す。次に、その与
えられたアドレスのデータを記憶装置から読み出しリフ
ィルする。その際、リフィルするデータの大きさは、ア
クセスする記憶装置のデータ転送能力に応じてあらかじ
め決めたものである。さらに、リフィルされたデータの
うち、与えられたアドレスのデータを与えられたデータ
サイズ分デスティネーションレジスタに転送する。
【0019】このようにして、キャッシュメモリへのリ
フィル時に、アクセスする記憶装置のバンド幅に応じた
大きさのデータをリフィルすることにより、バンド幅が
大きい内部メモリとバンド幅が小さい外部メモリの双方
について平均メモリアクセス時間を低減でき、処理性能
を高めることが可能となる。
【0020】また、このようにアクセスする記憶装置の
バンド幅に応じた大きさのデータをキュッシュメモリに
リフィルするための構成は、キャッシュラインサイズが
異なる複数のキャッシュメモリを用意する構成のみなら
ず、キャッシュラインサイズを変更可能に構成されたキ
ャッシュメモリを用いることなどによっても実現でき
る。
【0021】
【発明の実施の形態】以下、図面を参照して本発明の実
施形態を説明する。図1には、本発明の一実施形態に係
る情報処理装置の構成が示されている。この情報処理装
置はメモリ内蔵プロセッサチップ100を用いた計算機
システムであり、プロセッサチップ100の内部には、
プロセッサコア101、16MBの主記憶102(以
下、内部メモリと呼ぶ)、ラインサイズ512B、ダイ
レクトマップ、容量8KBの命令キャッシュ103(内
部メモリ用命令キャッシュ)、ラインサイズ512B、
2−way set associative、容量1
6KBのデータキャッシュ104(内部メモリ用データ
キャッシュ)、ラインサイズ32B、ダイレクトマッ
プ、容量8KBの命令キャッシュ105(外部メモリ用
命令キャッシュ)、ラインサイズ32B、2−way
set associative、容量16KBのデー
タキャッシュ106(外部メモリ用データキャッシ
ュ)、およびバスインタフェースユニット109が設け
られており、またプロセッサチップ100の外部には、
16MBの主記憶107(外部メモリ)、およびI/O
ユニット108が設けられている。
【0022】ラインサイズ512Bの内部メモリ用キャ
ッシュ103,104には、内部メモリ102のコード
およびデータをそれぞれ格納し、ラインサイズ32Bの
外部メモリ用キャッシュ105,106には、外部メモ
リ107のコードおよびデータをそれぞれ格納する。
【0023】内部メモリは、アドレス00000000
Hから00ffffffH(Hは16進表記を示す)ま
でのアドレス空間をもち、外部メモリは、それに後続す
る、アドレス01000000Hから01ffffff
ffHまでのアドレス空間をもつ。この場合、与えられ
たアドレスが、どちらのアドレスであるかは、そのアド
レスから判定することができる。つまり、この例では、
上位8ビットが、00Hであれば内部メモリ102のア
ドレスであると判定され、上位8ビットが01Hであれ
ば外部メモリ107のアドレスであると判定される。
【0024】内部メモリ102は、一度のアクセスで、
512Bのデータを読み出し/書き込みができるように
なっている。一度のアクセスを行うのに、5サイクルか
かる。外部メモリ107は、一度のアクセスで、8Bの
データを読み出し/書き込みができるようになってい
る。バースト転送を利用すると、最初の8Bをアクセス
するのに4サイクル必要で、以降8Bアクセスするごと
に2サイクル必要になる。
【0025】以下で、第1の実施形態の動作を説明す
る。命令をフェッチするときは、次のように動作する。 1.プロセッサコア101内の命令フェッチ用プログラ
ムカウンタ(図示していない)に格納されている命令ア
ドレスから、その命令アドレスが、内部メモリ102、
外部メモリ107のどちらにあるかを判定する。
【0026】2.命令アドレスが内部メモリ102にあ
る場合 (a)命令キャッシュ103をアクセスし、その命令ア
ドレスが、その命令キャッシュ103に存在するかどう
かを調べる。
【0027】(b)存在するとき(ヒット)は、そのア
ドレスの命令を命令キャッシュ103から読み出し、プ
ロセッサコア101内の命令フェッチユニット(図示し
ていない)へ転送する。
【0028】(c)存在しないとき(ミス)は、内部メ
モリ102から、そのアドレスを含むラインサイズ分
(512B)のデータを読み出し、命令キャッシュ10
3にリフィルし、さらに命令アドレスの命令をプロセッ
サコア101内の命令フェッチユニットへ転送する。
【0029】3.命令アドレスが外部メモリ107にあ
る場合 (a)命令キャッシュ105をアクセスし、その命令ア
ドレスが、その命令キャッシュ105に存在するかどう
かを調べる。
【0030】(b)存在するときは、そのアドレスの命
令を命令キャッシュ105から読み出し、プロセッサコ
ア101内の命令フェッチユニット(図示していない)
へ転送する。
【0031】(c)存在しないときは、外部メモリ10
7から、そのアドレスを含むラインサイズ分(32B)
のデータをバースト転送サイクルによって読み出し、命
令キャッシュ105にリフィルし、さらに命令アドレス
の命令をプロセッサコア101内の命令フェッチユニッ
トへ転送する。
【0032】また、ロード命令を実行する場合には、次
のようになる。 1.プロセッサコア101でアクセスすべきアドレスを
計算する。 2.そのアドレスが、内部メモリ102、外部メモリ1
07のどちらにあるか、そのアドレスから判定する。
【0033】3.内部メモリ102にある場合 (a)そのアドレスがデータキャッシュ104に存在す
るかどうかを調べる。
【0034】(b)そのアドレスがデータキャッシュ1
04に存在するとき(ヒット)は、そのアドレスのデー
タをデータキャッシュ104から読み出し、プロセッサ
コア101内のデスティネーションレジスタに格納す
る。
【0035】(c)そのアドレスがデータキャッシュ1
04に存在しないとき(ミス)は、まず、LRU法など
の方法を使って、置換すべきラインを決定する。そのと
き、そのラインに対し、ダーティビットがセットしてあ
る場合は、そのラインの512Bのデータを、内部メモ
リ102に書き戻す。次に、そのアドレスのデータを含
む512Bのデータを内部メモリ102から読み出し、
データキャッシュ104にリフィルし、さらに、そのア
ドレスのデータをプロセッサコア101内のデスティネ
ーションレジスタに格納する。
【0036】4.外部メモリ107にある場合 (a)そのアドレスがデータキャッシュ106に存在す
るかどうかを調べる。
【0037】(b)そのアドレスがデータキャッシュ1
06に存在するとき(ヒット)は、そのアドレスのデー
タをデータキャッシュ106から読み出し、プロセッサ
コア101内のデスティネーションレジスタに格納す
る。
【0038】(c)そのアドレスがデータキャッシュ1
06に存在しないとき(ミス)は、まず、LRU法など
の方法を使って、置換すべきラインを決定する。そのと
き、そのラインに対し、ダーティビットがセットしてあ
る場合は、そのラインの32Bのデータを、外部メモリ
107に書き戻す。次に、そのアドレスのデータを含む
32Bのデータを外部メモリ107から読み出し、デー
タキャッシュ106にリフィルし、さらに、そのアドレ
スのデータをプロセッサコア101内のデスティネーシ
ョンレジスタに格納する。
【0039】なお、ストア命令についてもロード命令と
同様にして実行される。第1の実施形態においては、内
部メモリ102に割り当てられたアドレスにアクセスす
る場合、リフィルサイズは512B、リフィル時間は5
サイクルとなり、一方、外部メモリ107に割り当てら
れたアドレスにアクセスする場合、リフィルサイズは3
2B、リフィル時間は10サイクルとなる。一方、図6
に示す従来例においては、リフィルサイズはともに51
2Bで、リフィル時間は、内部メモリに割り当てられた
アドレスにアクセスする場合は5サイクル、外部メモリ
に割り当てられたアドレスにアクセスする場合は130
サイクルとなる。
【0040】アクセスするアドレスが、内部メモリ10
2に割り当てられている割合を50%、外部メモリ10
7に割り当てられている割合を50%と仮定して、第1
実施形態と従来例の平均リフィル時間を計算してみる
と、第1の実施形態では、 5×0.5+10×0.5=7.5サイクル となり、一方、従来例では、 5×0.5+130×0.5=67.5サイクル となる。
【0041】この結果から、第1の実施形態の平均リフ
ィル時間は、従来のリフィル時間の1/9となり、平均
メモリアクセス時間が短縮されることがわかる。第1の
実施形態では、キャッシュメモリを、内部メモリ用と外
部メモリ用とに別々のものにしているが、これを一つに
統合したキャッシュメモリにすることもできる。このよ
うに、内部メモリ用のキャッシュと外部メモリ用のキャ
ッシュを統合した例を第2実施形態として、以下説明す
る。
【0042】図2には、第2実施形態に係る情報処理装
置の構成が示されている。ここでは、図1と同一部分に
は同一符号を付し、異なる点について主に説明する。こ
の情報処理装置においては、プロセッサチップ200の
内部には、プロセッサコア101、16MBの主記憶1
02(内部メモリ)、ラインサイズ512Bまたは32
B、ダイレクトマップ、容量16KBの命令キャッシュ
110、ラインサイズ512Bまたは32B、2−wa
y set associative、容量32KBの
データキャッシュ111、およびバスインタフェースユ
ニット108をもち、プロセッサチップ200の外部に
は、16MBの主記憶107(外部メモリ)、およびI
/Oユニット108をもつ。
【0043】この実施形態で使用しているキャッシュメ
モリ110,111は、2種類のリフィルサイズ(リフ
ィルされるデータサイズ)をもつキャッシュであり、リ
フィルサイズを、512Bまたは32Bにすることがで
きる。このようなキャッシュは、次のような構成になっ
ている。
【0044】1.アクセスする基本単位は、32Bで、
この単位ごとにタグ、有効フラグ、ダーティフラグなど
の情報を持つ。この32Bの単位をサブラインと呼ぶ。
way数分のサブラインで、一つのサブセットを構成す
る。
【0045】2.ヒットミスの判定、ヒット時の読み出
し/書き込みの動作は、32Bサブラインを基本単位と
して行うので、通常の32Bラインのキャッシュと同じ
である。
【0046】3.通常のキャッシュと異なるのは、連続
する16個のサブセットにおいて、各サブセットからサ
ブラインを一つずつ選び、選ばれた16個のサブライン
を同時にアクセスできるようになっている点である。つ
まり、16個のサブラインで一つのラインを構成し、5
12Bのラインとしてアクセスすることができるように
なる。これにより、512B分のデータを、一度に16
個の連続したサブセット中にリフィルすることができる
ことになる。その際、そのラインを構成する各サブライ
ンに対して、同一のタグを格納する。
【0047】以上で説明したような、二種類のリフィル
サイズを持つキャッシュメモリの具体的な構成の一例を
図3に示す。図3に示したキャッシュは、図2の命令キ
ャッシュ110の構成例であり、このキャッシュの記憶
部は、サブアレイ(0)〜(15)の16個のサブアレ
イからなる。各サブアレイは、32個のサブラインから
なる。各サブラインには、32Bのデータ、タグ、およ
び有効フラグ等のフラグが保持される。
【0048】アドレスの9ビットから13ビットまでの
5ビット(インデックス部)で32個のラインの中から
一つを選び、アドレスの5ビットから8ビットまでの4
ビット(サブアレイ部)で16個のサブアレイの中から
一つを選ぶ。選ばれたサブラインのタグが、アドレスの
14ビットから31ビットまでの18ビット分(タグ
部)と一致すれば、与えられたアドレスは、このキャッ
シュに対してヒットしたと判定され、32B(256ビ
ット)のバスdataを経由して読み書きされる。ヒッ
トしなかった場合は、リフィルすることになる。内部メ
モリ102からリフィルする場合は、選択されたセット
の中のすべてのサブライン、つまり16個の連続したサ
ブセット中にデータを、data0からdata15ま
でのデータ線を使って書き込む。その際、リフィルされ
るサブライン内のタグには、与えられたアドレスのタグ
部を格納する。一方、外部メモリ107からリフィルす
る場合は、アドレスのサブアレイ部で選択されたサブア
レイの選択されたサブラインのみにデータを書き込む。
データは、選択されたサブアレイに対応するデータ線を
経由して書き込む。タグは、与えられたアドレスのタグ
部を書き込む。
【0049】各サブアレイ毎のヒット/ミスの判定は、
それら各サブアレイ毎に設けられた比較器201,20
2とANDゲート203とによって行われる。この場
合、比較器201はアドレスのサブアレイ部と該当する
サブアレイ番号とを比較し、比較器202はアドレスの
タグ部と選択されたサブラインから読み出されたタグと
とを比較する。選択されたサブラインのデータが有効
で、且つタグが一致したサブアレイが存在すると、OR
ゲート301からヒット信号が出力される。そして、A
NDゲート203から“1”が出力されたサブライン中
の選択されたサブラインがアクセスされる。
【0050】第2実施形態の動作は、前述した第1実施
形態の動作とほぼ同様である。すなわち、第1実施形態
において、内部メモリ用命令キャッシュ103及び外部
メモリ用命令キャッシュ105にアクセスする代わりに
統合命令キャッシュ110にアクセスする。内部メモリ
用データキャッシュ104及び外部メモリ用データキャ
ッシュ106にアクセスする代わりに、統合データキャ
ッシュ111にアクセスする。その際にアクセスするメ
モリが内部メモリ102の場合は、リフィルサイズを5
12Bとし、外部メモリ107の場合はリフィルサイズ
を32Bとする。
【0051】次に、第2実施形態におけるキャッシュミ
ス時の処理を説明する。 1.アドレスが内部メモリ102に割り当てられている
場合 図4に示すように、置換されるのは、一つのライン(1
6個のサブライン)である。格納すべきラインに内部メ
モリデータと外部メモリデータが格納されているので、
内部メモリデータは内部メモリ102へ、外部メモリデ
ータは外部メモリ107へ書き戻す。次に内部メモリ1
02から512B(256ビット×16)分のデータを
読み出し、そのラインに格納する。その際、各サプライ
ンごとに、そこに格納された32Bデータのアドレスに
従ってタグを適切に設定する。
【0052】2.アドレスが外部メモリ107に割り当
てられている場合 図5に示すように、置換されるのは一つのサブラインで
ある。まず、格納すべきラインに格納されているデータ
に対して、ダーティビットがセットされている場合は、
そのデータをメモリに書き戻す。格納されているデータ
は、外部メモリ107のデータである場合と、内部メモ
リ102である場合があるので、サブラインから読み出
されたタグに従って、外部メモリ107のデータの場合
は、そのサブラインを外部メモリ107に書き戻し、内
部メモリ102のデータの場合は、内部メモリ102に
書き戻す。次に、外部メモリ107からデータを読み出
し、そのサブラインに格納する。その際、サブラインの
タグに、アドレスのタグ部を格納する。
【0053】第1実施形態と第2実施形態との違いの一
つは、ミス率である。第1実施形態では、内部メモリ用
のキャッシュメモリと外部メモリ用のキャッシュメモリ
を別々に備えているのに対し、第2実施形態では、外部
メモリと内部メモリで共用のキャッシュメモリを備えて
いる。そのため、キャッシュメモリの容量が同じ場合に
は、第2実施形態の方がヒット率が高くなると考えられ
る。例えば、内部メモリ102だけしか使わないような
プログラムを実行する場合には、第1実施形態では、8
KBの命令キャッシュと16KBのデータキャッシュし
か利用できないのに対し、第2実施形態では、16KB
の命令キャッシュや32KBのデータキャッシュを利用
することができ、明らかに第2実施形態の方がヒット率
が高く、性能も高い。
【0054】もう一つの違いは、ライン置換の際の書き
戻し動作である。第1実施形態は、書き戻しを行うメモ
リと読み出しを行うメモリは同一であり、そのデータサ
イズも同一である。一方、第2実施形態では、アクセス
対象のメモリと書き戻しを行うメモリが異なる可能性が
あり、複数のメモリに対し書き戻しを行う可能性があ
る。また、書き戻しのデータサイズも必ずしも同じでは
ない。つまり、外部メモリ107のデータをアクセスす
る場合には、書き戻しするメモリは、外部メモリ107
の場合もあるし、内部メモリ102の場合もある。ま
た、内部メモリ102のデータをアクセスする場合に
は、書き戻しを行うのは、内部メモリ102だけ、外部
メモリ107だけ、内部メモリ102と外部メモリ10
7の両方の3通りの場合がある。いずれの場合も、書き
戻すデータを一時的にバッファに保存することによっ
て、書き戻しのためのメモリアクセスによる性能低下を
少なくすることができる。
【0055】なお、通常の計算機で採用している仮想記
憶については本発明では本質的ではないので、ここでの
実施形態の記述の中では、省略しているが、仮想記憶を
用いるシステムにも適用できる。また、外部メモリとし
ては、L2キャッシュが入っているメモリシステムでも
よいし、あるいは、メモリ混載プロセッサでもよい。
【0056】
【発明の効果】以上説明したように、本発明によれば、
キャッシュメモリへのリフィル時に、アクセスする記憶
装置のバンド幅に応じた大きさのデータをリフィルして
いるので、特に外部メモリからキャッシュメモリへのリ
フィル時間が短くなり、これにより平均メモリアクセス
時間が短縮され、プロセッサの処理性能を向上させるこ
とができる。
【図面の簡単な説明】
【図1】本発明の第1実施形態に係る情報処理装置の構
成を示すブロック図。
【図2】本発明の第2実施形態に係る情報処理装置の構
成を示すブロック図。
【図3】同第2実施形態の情報処理装置で使用されるラ
インサイズ可変キャッシュの具体的構成の一例を示す
図。
【図4】同第2実施形態の情報処理装置における内部メ
モリからキャッシュへのリフィル動作を説明するための
図。
【図5】同第2実施形態の情報処理装置における外部メ
モリからキャッシュへのリフィル動作を説明するための
図。
【図6】従来の情報処理装置の構成例を示すブロック
図。
【符号の説明】
100,200…プロセッサチップ 101…プロセッサコア 102…内部メモリ 103…内部メモリ用命令キャッシュ 104…内部メモリ用データキャッシュ 105…外部メモリ用命令キャッシュ 106…外部メモリ用データキャッシュ 107…外部メモリ 108…I/Oユニット 109…バスインタフェースユニット 110…キャッシュライン可変型統合命令キャッシュ 111…キャッシュライン可変型統合データキャッシュ
───────────────────────────────────────────────────── フロントページの続き (56)参考文献 特開 昭63−157249(JP,A) 特開 平4−54653(JP,A) 特開 昭59−173864(JP,A) 岩下他,リファレンスPPRAM「P PRAMRに基づく『PPRAMRm f』アーキテクチャの概要,情報処理学 会研究報告,日本,社団法人情報処理学 会,1996年 8月,第96巻第8号(96− ARC−119),p.161−166 Burger D. et al., Memory Bandwidth L imitation of Futur e Microprocessors, Proceedings of 23rd ISCA,米国,ACM,1996年 5 月 (58)調査した分野(Int.Cl.7,DB名) G06F 12/00 - 12/08

Claims (5)

    (57)【特許請求の範囲】
  1. 【請求項1】 メモリ拡張のための外部メインメモリが
    装着可能な情報処理装置であって、 前記外部メインメモリよりバンド幅が大きい内部メイン
    メモリと、 前記内部メインメモリのバンド幅に応じたキャッシュラ
    インサイズを有する第1のキャッシュメモリと、 前記外部メインメモリのバンド幅に対応し、前記第1の
    キャッシュメモリより小さいキャッシュラインサイズを
    有する第2のキャッシュメモリと、 アクセス対象のアドレスが前記内部メインメモリにある
    か外部メインメモリにあるかを判定し、内部メインメモ
    リにある場合には前記第1のキャッシュメモリをアクセ
    スして前記アドレスが存在する時にそのアドレスの情報
    を読み出し、存在しない時に前記内部メインメモリから
    前記アドレスを含むラインサイズ分のデータを読み出す
    とともに、前記第1のキャッシュメモリにリフィルし、
    外部メインメモリにある場合には前記第2のキャッシュ
    メモリをアクセスして前記アドレスが存在する時にその
    アドレスの情報を読み出し、存在しない時に前記外部メ
    インメモリから前記アドレスを含むラインサイズ分の情
    報を読み出すとともに、前記第2のキャッシュメモリに
    リフィルする制御を行う制御手段と を具備することを特
    徴とする情報処理装置。
  2. 【請求項2】 メモリ拡張のための外部メインメモリが
    装着可能な情報処理装置であって、 前記外部メインメモリよりバンド幅が大きい内部メイン
    メモリと、 キャッシュラインサイズが変更可能に構成されたキャッ
    シュメモリと、 アクセス対象のアドレスが前記内部メインメモリにある
    か外部メインメモリにあるかを判定し、内部メインメモ
    リにある場合には前記キャッシュメモリをアクセスして
    前記アドレスが存在する時にそのアドレスの情報を読み
    出し、存在しない時に前記内部メインメモリから前記ア
    ドレスを含むラインサイズ分のデータを読み出すととも
    に、前記キャッシュメモリにリフィルし、外部メインメ
    モリにある場合には前記キャッシュメモリをアクセスし
    て前記アドレスが存在する時にそのアドレスの情報を前
    記外部メインメモリに対応するリフィルサイズで読み出
    、存在しない時に前記外部メインメモリから前記アド
    レスを含むラインサイズ分の情報を読み出すとともに、
    前記キャッシュメモリにリフィルする制御を行う制御手
    段と を具備することを特徴とする情報処理装置。
  3. 【請求項3】 前記キャッシュメモリは、 各々が複数のサブラインから構成される複数のサブアレ
    イを有し、 これら複数のサブアレイの中の該当するサブアレイ内の
    1サブライン、または前記複数のサブアレイそれぞれの
    同一位置に存在する複数のサブライン単位で、前記キャ
    ッシュメモリにデータがリフィルされるように構成され
    ていることを特徴とする請求項2記載の情報処理装置。
  4. 【請求項4】 前記内部メインメモリ、前記第1のキャ
    ッシュメモリ、前記第2のキャッシュメモリ及び制御手
    段は、プロセッサチップ中に設けられることを特徴とす
    る請求項1記載の情報処理装置。
  5. 【請求項5】 前記内部メインメモリ、前記キャッシュ
    メモリ、及び制御手段は、プロセッサチップ中に設けら
    れることを特徴とする請求項2又は3記載の情報処理装
    置。
JP22955597A 1997-08-26 1997-08-26 情報処理装置 Expired - Fee Related JP3515333B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP22955597A JP3515333B2 (ja) 1997-08-26 1997-08-26 情報処理装置
US09/140,280 US6393521B1 (en) 1997-08-26 1998-08-26 Information processing apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP22955597A JP3515333B2 (ja) 1997-08-26 1997-08-26 情報処理装置

Publications (2)

Publication Number Publication Date
JPH1165925A JPH1165925A (ja) 1999-03-09
JP3515333B2 true JP3515333B2 (ja) 2004-04-05

Family

ID=16894011

Family Applications (1)

Application Number Title Priority Date Filing Date
JP22955597A Expired - Fee Related JP3515333B2 (ja) 1997-08-26 1997-08-26 情報処理装置

Country Status (2)

Country Link
US (1) US6393521B1 (ja)
JP (1) JP3515333B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010116735A1 (ja) * 2009-04-10 2010-10-14 パナソニック株式会社 キャッシュメモリ装置、キャッシュメモリ制御方法、プログラムおよび集積回路

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6684298B1 (en) * 2000-11-09 2004-01-27 University Of Rochester Dynamic reconfigurable memory hierarchy
JP4553622B2 (ja) * 2004-04-09 2010-09-29 ルネサスエレクトロニクス株式会社 データ処理装置
US7454576B2 (en) * 2004-12-27 2008-11-18 Intel Corporation System and method for cache coherency in a cache with different cache location lengths
KR101321438B1 (ko) * 2006-09-26 2013-11-04 삼성전자주식회사 통신 시스템에서 메모리 확장 장치
US8095702B2 (en) * 2008-03-19 2012-01-10 Lantiq Deutschland Gmbh High speed memory access in an embedded system
US20100185816A1 (en) * 2009-01-21 2010-07-22 Sauber William F Multiple Cache Line Size
CN104809076B (zh) * 2014-01-23 2018-02-06 华为技术有限公司 Cache的管理方法及装置
US10169240B2 (en) * 2016-04-08 2019-01-01 Qualcomm Incorporated Reducing memory access bandwidth based on prediction of memory request size
JP7072545B2 (ja) * 2019-09-10 2022-05-20 株式会社藤商事 遊技機

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2646854B2 (ja) 1990-12-18 1997-08-27 三菱電機株式会社 マイクロプロセッサ
KR100391805B1 (ko) * 1994-03-22 2003-10-22 하퍼칩, 인코포레이티드 직접대체셀(cell)을갖는결함허용(faulttolerance)아키텍쳐자료처리시스템
US6029224A (en) * 1995-06-07 2000-02-22 Lucent Technologies Inc. Self-contained memory apparatus having diverse types of memory and distributed control
US5999189A (en) * 1995-08-04 1999-12-07 Microsoft Corporation Image compression to reduce pixel and texture memory requirements in a real-time image generator
US6008820A (en) * 1995-08-04 1999-12-28 Microsoft Corporation Processor for controlling the display of rendered image layers and method for controlling same
US5809530A (en) * 1995-11-13 1998-09-15 Motorola, Inc. Method and apparatus for processing multiple cache misses using reload folding and store merging
US6161167A (en) * 1997-06-27 2000-12-12 Advanced Micro Devices, Inc. Fully associate cache employing LRU groups for cache replacement and mechanism for selecting an LRU group
US6260114B1 (en) * 1997-12-30 2001-07-10 Mcmz Technology Innovations, Llc Computer cache memory windowing

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Burger D. et al.,Memory Bandwidth Limitation of Future Microprocessors,Proceedings of 23rd ISCA,米国,ACM,1996年 5月
岩下他,リファレンスPPRAM「PPRAMRに基づく『PPRAMRmf』アーキテクチャの概要,情報処理学会研究報告,日本,社団法人情報処理学会,1996年 8月,第96巻第8号(96−ARC−119),p.161−166

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010116735A1 (ja) * 2009-04-10 2010-10-14 パナソニック株式会社 キャッシュメモリ装置、キャッシュメモリ制御方法、プログラムおよび集積回路

Also Published As

Publication number Publication date
US6393521B1 (en) 2002-05-21
JPH1165925A (ja) 1999-03-09

Similar Documents

Publication Publication Date Title
US5499355A (en) Prefetching into a cache to minimize main memory access time and cache size in a computer system
US6477621B1 (en) Parallel access virtual channel memory system
JP4486750B2 (ja) テンポラリ命令及び非テンポラリ命令用の共用キャッシュ構造
US5210845A (en) Controller for two-way set associative cache
US5091851A (en) Fast multiple-word accesses from a multi-way set-associative cache memory
US5623627A (en) Computer memory architecture including a replacement cache
US5813031A (en) Caching tag for a large scale cache computer memory system
US5752272A (en) Memory access control device with prefetch and read out block length control functions
US6128702A (en) Integrated processor/memory device with victim data cache
US5157774A (en) System for fast selection of non-cacheable address ranges using programmed array logic
US5361391A (en) Intelligent cache memory and prefetch method based on CPU data fetching characteristics
US5751994A (en) System and method for enhancing computer operation by prefetching data elements on a common bus without delaying bus access by multiple bus masters
US5802572A (en) Write-back cache having sub-line size coherency granularity and method for maintaining coherency within a write-back cache
KR100262906B1 (ko) 데이터 선인출 방법 및 시스템
JP2554449B2 (ja) キャッシュ・メモリを有するデータ処理システム
US6708254B2 (en) Parallel access virtual channel memory system
US6199142B1 (en) Processor/memory device with integrated CPU, main memory, and full width cache and associated method
JPH06243039A (ja) キャッシュメモリシステムおよびマイクロプロセッサ内の命令を操作するための方法
US20020095552A1 (en) Highly efficient design of storage array for use in caches and memory subsystems
US6826652B1 (en) Smart cache
JP3515333B2 (ja) 情報処理装置
US6535961B2 (en) Spatial footprint prediction
US6324632B1 (en) Processing a data stream
US6240487B1 (en) Integrated cache buffers
US6976130B2 (en) Cache controller unit architecture and applied method

Legal Events

Date Code Title Description
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20040113

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20040115

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080123

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090123

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100123

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110123

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120123

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130123

Year of fee payment: 9

LAPS Cancellation because of no payment of annual fees