JPH11249959A - キャッシュメモリ制御方法および装置 - Google Patents

キャッシュメモリ制御方法および装置

Info

Publication number
JPH11249959A
JPH11249959A JP10049433A JP4943398A JPH11249959A JP H11249959 A JPH11249959 A JP H11249959A JP 10049433 A JP10049433 A JP 10049433A JP 4943398 A JP4943398 A JP 4943398A JP H11249959 A JPH11249959 A JP H11249959A
Authority
JP
Japan
Prior art keywords
address
cache memory
instruction
access
order
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
JP10049433A
Other languages
English (en)
Inventor
Keisuke Kaneko
圭介 金子
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.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co 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 Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP10049433A priority Critical patent/JPH11249959A/ja
Publication of JPH11249959A publication Critical patent/JPH11249959A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Abstract

(57)【要約】 【課題】 アドレスが連続する2つ以上のキャッシュア
クセスを行なう場合に、先行するアクセスがミスヒット
であっても後続するアクセスへのペナルティーを減少さ
せ、かつ、リフィルの順序を命令で指定することを必要
としないキャッシュメモリ制御装置を実現する。 【解決手段】 キャッシュアクセスがミスヒットである
場合に、アクセスアドレス判定部24が、先行する命令
でのアクセスアドレスと後続する命令でのアクセスアド
レスとをそれぞれMEMステージアクセスアドレス28
とEXステージのアドレス生成部19の出力27とから
得て、両者を比較することによりリフィルを昇順に行な
うか降順に行なうかを判定し、その判定結果30に応じ
てキャッシュメモリ制御部21が、昇順ならば増分しな
がら、降順ならば減分しながら、リフィルデータ転送ア
ドレス32を生成し、外部メモリバスコントローラ26
にリフィルのための指示を行なう。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、主記憶装置内のデ
ータの写しを予め定められた複数ワードからなるブロッ
ク単位で保持するキャッシュメモリに対して、主記憶装
置からのデータの転送をブロック単位で行なうためのキ
ャッシュメモリ制御方法および装置に関する。
【0002】
【従来の技術】近年の電子技術の発展により、高性能な
プロセッサが普及し、あらゆる分野で用いられている。
そのようなプロセッサではアクセス速度の遅い主記憶装
置のデータのコピーを持ち高速にアクセス可能なキャッ
シュメモリが多用されている。図5は、キャッシュメモ
リの概略構成図である。図5のキャッシュメモリはタグ
メモリ部1とデータメモリ部2とからなり、データメモ
リ部2には1つのエントリ内に4ワードのデータを格納
する。あるエントリ3内にデータA、データB、データ
C、データDを格納する。
【0003】図6は、従来のキャッシュメモリ制御装置
の制御フロー図である。図6に示すように、図5のキャ
ッシュメモリのエントリ3内のデータCに対してアクセ
スを行なう際(ステップS01)、キャッシュがヒット
する場合すなわち同一エントリ3のタグデータ4がアク
セスアドレスと一致する場合には、CPU(中央処理装
置)はこのデータCをアクセスした後に次命令を実行す
る(ステップS08)。
【0004】キャッシュがミスヒットする場合すなわち
同一エントリ3のタグデータ4がアクセスアドレスと一
致しない場合には、主記憶装置からのデータCを含むエ
ントリのブロックデータ転送を行ない、然る可きデータ
をデータメモリ部2にコピーする。このリフィルと呼ば
れる手順は以下のように行なわれる。リフィルはミスワ
ードのアドレスから行なわれてデータCが主記憶装置か
ら転送される(ステップS02)。次にデータCが主記
憶装置から転送されてくると、CPUは動作再開しデー
タCをアクセスした後に次命令を実行する(ステップS
03)。その後もキャッシュメモリ制御装置は主記憶装
置からのデータ転送をアドレスを加算しデータDのデー
タ転送を行ない(ステップS04)、続いてアドレスを
ラップアラウンドさせて順次、データA、データBの順
に転送を行ないリフィルを終了する(ステップS05〜
S07)。
【0005】
【発明が解決しようとする課題】しかしながら、上記従
来のキャッシュメモリ制御装置では、CPUがアドレス
が降順に連続変化する2つ以上のキャッシュアクセスを
行なった場合、先のアクセスがミスヒットすると、後続
するアクセスはアドレスが昇順にラップアラウンドされ
て主記憶装置から転送される最後のデータへのアクセス
となるため、CPUの停止時間が極めて長くなるという
問題点がある。これを図7を用いて説明する。
【0006】図7は、従来のキャッシュメモリ制御装置
の動作タイミング図である。同図は、図5のキャッシュ
メモリのエントリ3内のデータCとデータBとに対して
CPUが連続アクセスを行ない、かつデータCのアクセ
スがミスヒットである場合のCPU停止期間を示してい
る。データCに対するキャッシュアクセスがサイクル1
0で行なわれ、ミスヒットであるため、データCを含む
エントリ3の主記憶装置からのリフィルがデータCのア
ドレスから開始される。そして、データCの転送サイク
ル14までの期間11の間、CPUは動作を停止し、キ
ャッシュにミスヒットしたことによるペナルティーとな
る。データCの転送サイクル14の後にCPUは動作を
再開し、次命令であるデータBへのキャッシュアクセス
を開始する。しかし主記憶装置からのリフィルはアドレ
スの昇順に行なわれるため、データCの転送サイクル1
4の次に転送されるのはデータDであり、所望のデータ
Bは最後の転送データとなり、転送サイクル17の後に
はじめてCPUは動作を再開することができる。その
間、CPUは転送サイクル17まで動作を停止しなくて
はならず、データBへの極めて大きなキャッシュアクセ
スペナルティー期間13が発生する。
【0007】この問題点を解決するために、特開平4−
182753号公報に示された方法が提案されている。
同公報に示されたキャッシュメモリ制御装置は、「ブロ
ックロードのリバース指定レジスタ」と称するレジスタ
の指示によりリフィルするデータのアドレスを昇順ある
いは降順に切り換えるものである。これにより例えば、
図5のキャッシュメモリのエントリ3内のデータCとデ
ータBとに対してCPUが連続アクセスを行なう場合は
予めリフィルのアドレスを降順側に切り換えることで、
データC6の転送サイクルの次に所望のデータBの転送
がなされ、キャッシュのミスヒットのペナルティーは軽
減される。
【0008】しかしながら、上記の公報に示されたキャ
ッシュメモリ制御装置では、キャッシュのミスヒットを
想定してリフィルのアドレスを昇順あるいは降順に設定
する命令を予めプログラムする必要があり、プログラム
のサイズが増しコスト上昇を伴うこと、それらの設定命
令の実行のために性能が劣化すること、さらにはプログ
ラマーの負担が増えて生産性および信頼性が低下するこ
とといった問題点を有している。
【0009】本発明は、上記従来の問題点を解決するも
ので、アドレスが連続する2つ以上のキャッシュアクセ
スを行なう場合に、先行するアクセスがミスヒットであ
っても後続するアクセスへのペナルティーを減少させ、
かつ、リフィルの順序を命令で指定することを必要とし
ないキャッシュメモリ制御方法および装置を提供するこ
とを目的とする。
【0010】
【課題を解決するための手段】請求項1記載のキャッシ
ュメモリ制御方法は、主記憶装置内のデータの写しを予
め定められた複数ワードからなるブロック単位で保持す
るキャッシュメモリに対して、主記憶装置からのデータ
の転送をブロック単位で行なうキャッシュメモリ制御方
法であって、キャッシュメモリへのアクセス要求がミス
ヒットを生じたときにそのブロックをワード単位で主記
憶装置からブロック転送する際に、ワードの転送方向の
アドレスの昇順または降順をアクセス要求を引き起こす
命令または処理に基づいて判定し、この判定結果に応じ
てブロック転送のアドレスを増分または減分することを
特徴とする。
【0011】請求項2記載のキャッシュメモリ制御方法
は、請求項1記載のキャッシュメモリ制御方法におい
て、ワードの転送方向のアドレスの昇順または降順の判
定は、アクセス要求を引き起こす第1の命令とこの命令
に後続する第2の命令との解読または実行結果に基づい
て行なうことを特徴とする。請求項3記載のキャッシュ
メモリ制御方法は、請求項1記載のキャッシュメモリ制
御方法において、ワードの転送方向のアドレスの昇順ま
たは降順の判定は、予めアドレス空間の領域内にアドレ
スの昇順に行なう領域とアドレスの降順に行なう領域と
を定めておき、アクセス要求のアクセスアドレスが属す
る領域に基づいて行なうことを特徴とする。
【0012】請求項4記載のキャッシュメモリ制御方法
は、請求項1記載のキャッシュメモリ制御方法におい
て、ワードの転送方向のアドレスの昇順または降順の判
定は、アクセス要求を引き起こす命令または処理の種類
により、アクセス要求がアクセスアドレスの増加を伴う
か減少を伴うかを識別することにより行なうことを特徴
とする。
【0013】請求項1〜4記載のキャッシュメモリ制御
方法によれば、ワードの転送方向のアドレスの昇順また
は降順をアクセス要求を引き起こす命令または処理に基
づいて判定し、この判定結果に応じてブロック転送のア
ドレスを増分または減分することにより、アドレスが連
続する2つ以上のキャッシュアクセスを行なう場合に、
先行するアクセスがミスヒットであっても後続するアク
セスへのペナルティーを減少させることができ、かつ、
リフィルの順序を命令で指定する必要もない。
【0014】請求項5記載のキャッシュメモリ制御装置
は、主記憶装置内のデータの写しを予め定められた複数
ワードからなるブロック単位で保持するキャッシュメモ
リに対して、主記憶装置からのデータの転送をブロック
単位で行なうキャッシュメモリ制御装置であって、キャ
ッシュメモリへのアクセス要求がミスヒットを生じたと
きにそのブロックをワード単位で主記憶装置からブロッ
ク転送する際に、ワードの転送方向のアドレスの昇順ま
たは降順を、アクセス要求を引き起こす命令または処理
に基づいて判定する順序判定手段と、順序判定手段の判
定結果に応じてブロック転送のアドレスを増分または減
分するアドレス更新手段とを設けたことを特徴とする。
【0015】請求項6記載のキャッシュメモリ制御装置
は、請求項5記載のキャッシュメモリ制御装置におい
て、順序判定手段は、アクセス要求を引き起こす第1の
命令とこの命令に後続する第2の命令との解読または実
行結果に基づいて、ワードの転送方向のアドレスの昇順
または降順を判定することを特徴とする。請求項7記載
のキャッシュメモリ制御装置は、請求項6記載のキャッ
シュメモリ制御装置において、順序判定手段は、複数の
ステージからなるパイプライン制御方式を採る中央処理
装置内に設けられ、第1の命令によりアクセス要求を引
き起こすステージより上流側の特定のステージにおける
第2の命令の処理結果に基づいて、ワードの転送方向の
アドレスの昇順または降順を判定することを特徴とす
る。
【0016】請求項8記載のキャッシュメモリ制御装置
は、請求項7記載のキャッシュメモリ制御装置におい
て、パイプライン制御方式は、アドレス生成を行なう第
1のステージと、生成されたアドレスに基づいてキャッ
シュメモリのアクセスを行なう第2のステージとを含
み、順序判定手段は、第2のステージにおける第1の命
令によるキャッシュメモリのアクセスのアドレスと、第
1のステージにおける第2の命令によるアドレス生成結
果とを比較し、その大小関係に基づいて、ワードの転送
方向のアドレスの昇順または降順を判定することを特徴
とする。
【0017】請求項9記載のキャッシュメモリ制御装置
は、請求項5記載のキャッシュメモリ制御装置におい
て、順序判定手段は、アクセス要求のアクセスアドレス
に基づいて、ワードの転送方向のアドレスの昇順または
降順を判定することを特徴とする。請求項10記載のキ
ャッシュメモリ制御装置は、請求項9記載のキャッシュ
メモリ制御装置において、順序判定手段は、アクセスア
ドレスが、ワードの転送方向をアドレスの昇順と予め定
めた領域にあるか、ワードの転送方向をアドレスの降順
と予め定めた領域にあるかによって判定することを特徴
とする。
【0018】請求項11記載のキャッシュメモリ制御装
置は、請求項5記載のキャッシュメモリ制御装置におい
て、順序判定手段は、アクセス要求を引き起こす命令ま
たは処理の種類により、アクセス要求がアクセスアドレ
スの増加を伴うか減少を伴うかを識別して、ワードの転
送方向のアドレスの昇順または降順を判定することを特
徴とする。
【0019】請求項12記載のキャッシュメモリ制御装
置は、請求項11記載のキャッシュメモリ制御装置にお
いて、順序判定手段は、アクセス要求を引き起こす命令
または処理がスタックからのポップを含む場合にはアク
セスアドレスの増加を伴うと識別し、スタックへのプッ
シュを含む場合にはアクセスアドレスの減少を伴うと識
別することを特徴とする。
【0020】請求項5〜12記載のキャッシュメモリ制
御装置によれば、順序判定手段によりワードの転送方向
のアドレスの昇順または降順を判定し、この順序判定手
段の判定結果に応じてアドレス更新手段がブロック転送
のアドレスを増分または減分することにより、アドレス
が連続する2つ以上のキャッシュアクセスを行なう場合
に、先行するアクセスがミスヒットであっても後続する
アクセスへのペナルティーを減少させることができ、か
つ、リフィルの順序を命令で指定する必要もない。
【0021】
【発明の実施の形態】以下、本発明の実施の形態につい
て、図面を用いて詳細に説明する。図1は、本発明の実
施の形態におけるキャッシュメモリ制御装置を含むプロ
セッサの構成図である。このプロセッサは、CPU18
とキャッシュメモリ制御部21とキャッシュメモリ22
と外部メモリバスコントローラ26とから構成される。
【0022】CPU18は、命令フェッチステージ(以
下、IFステージ)と解読ステージ(以下、DECステ
ージ)と実行ステージ(以下、EXステージ)とメモリ
アクセスステージ(以下、MEMステージ)と書き戻し
ステージ(以下、WBステージ)との5段パイプライン
で動作する。81は図示しないROMなどから命令を取
り出す命令フェッチ部で、IFステージで作用する。8
2は命令フェッチ部81で取り出された命令を保持する
命令レジスタで、IFステージおよびDECステージ間
のパイプラインレジスタとして作用する。
【0023】83は命令レジスタ82に保持された命令
を解読し以下の各部を制御する命令解読部で、DECス
テージで作用する。なお、DECステージおよびEXス
テージ間のパイプラインレジスタは当然存在するが図示
しない。19はキャッシュメモリ22などをアクセスす
るアドレスを生成するアドレス生成部で、EXステージ
で作用する。20はアドレス生成部19で生成されたア
ドレスを保持するアクセスアドレス保持ラッチ、23は
書込みデータを保持するストアデータ生成部で、ともに
EXステージおよびMEMステージ間のパイプラインレ
ジスタとして作用する。
【0024】24はアドレス生成部19の出力27とア
クセスアドレス保持ラッチ20の出力であるMEMステ
ージアクセスアドレス28とのアドレス比較を行ない、
2つのアドレスが連続するかどうか、昇順に連続するか
降順に連続するかの判定を行なうアクセスアドレス判定
部で、キャッシュメモリ制御部21およびキャッシュメ
モリ22と併せてMEMステージで作用する。アドレス
生成部19の出力27がMEMステージアクセスアドレ
ス28より大きい時は昇順、小さい時は降順として判定
する。このアクセスアドレス判定部24が順序判定手段
である。
【0025】25はキャッシュメモリ22または図示し
ない外部メモリ(主記憶装置)からロードしたデータを
保持するロードデータラッチで、MEMステージおよび
WBステージ間のパイプラインレジスタとして作用す
る。WBステージでは、ロードデータラッチ25から図
示しないレジスタファイル(後述のレジスタD0,D1
を含む)へのデータの書込みが行なわれる。
【0026】キャッシュメモリ制御部21は、アクセス
アドレス保持ラッチ20からMEMステージアクセスア
ドレス28を受けてそのアドレスがキャッシャブル空間
か否かを識別し、キャッシャブル空間である場合にキャ
ッシュアクセスアドレス31にMEMステージアクセス
アドレス28を載せてキャッシュメモリ22のキャッシ
ュアクセス行なうとともに、そのキャッシュアクセスが
ミスヒットである場合は、アクセスアドレス判定部24
の判定結果30を受けて、リフィルのデータ転送順序が
昇順ならばデータ転送アドレス32を増分しながら、降
順ならばデータ転送アドレス32を減分しながら、リフ
ィルデータ転送アドレス32を生成し、外部メモリバス
コントローラ26に対してリフィルのための主記憶領域
からのデータ転送アクセスの指示を行なう。このキャッ
シュメモリ制御部21がアドレス更新手段を含んでい
る。
【0027】キャッシュメモリ22は、キャッシュアク
セスアドレス31でアクセスされ、読出しデータはキャ
ッシュロードデータバス29に、書込みデータはキャッ
シュライトデータバス33に載る。外部メモリバスコン
トローラ26は、MEMステージアクセスアドレス28
とMEMステージストアデータ37とからそれぞれアド
レスとストアデータとを受け、外部メモリ(主記憶装
置)に対するロードまたはストアを行なう。ロードデー
タは外部メモリロードデータバス36に載る。また、外
部メモリ(主記憶装置)とは外部メモリアドレスバス3
5と外部メモリデータバス34とで接続する。また、キ
ャッシュメモリ22のリフィル時は、リフィルデータ転
送アドレス32からリフィルのためのアドレスを順次受
け、外部メモリ(主記憶装置)から順次読出したリフィ
ルデータを外部メモリロードデータバス36を経由して
キャッシュメモリ22に転送する。
【0028】以上のように構成されるプロセッサの動作
について、さらに図2および図3を用いて説明する。図
2は、以下の機械命令プログラムが実行される場合のプ
ロセッサのパイプラインフロー図である。図2中におけ
る命令1は、レジスタA0で示される番地からワードデ
ータをロードしてレジスタD0に格納する命令であり、
命令2は、レジスタA0の内容から4を減じた番地から
ワードデータをロードしてレジスタD1に格納する命令
である。
【0029】図2では、マシンサイクルと呼ばれるタイ
ミング毎に、各命令の処理ステージが何であるかを示す
とともに、アドレス生成部19の出力27とMEMステ
ージアクセスアドレス28とアクセスアドレス判定部2
4の判定結果30の内容とを示している。以下、時間が
経過する順にタイミング毎にその動作を説明する。な
お、レジスタA0には予め1008H(Hは16進数を
表す)が格納されており、1000H番地から100F
H番地はキャッシャブル空間に含まれるものとする。 (タイミングt1)命令フェッチ部81が命令1を取り
出す。 (タイミングt2)命令解読部83が命令1を解読す
る。
【0030】命令フェッチ部81が命令2を取り出す。 (タイミングt3)アドレス生成部19が命令1でロー
ドを行なうオペランドのアドレスを生成する。このと
き、図1には図示しないレジスタA0から1008Hが
読出され、出力27に現れる。
【0031】命令解読部83が命令2を解読する。 (タイミングt4)アクセスアドレス保持ラッチ20
は、アドレス生成部19の出力27の値1008Hを保
持し、MEMステージアクセスアドレス28として出力
する。アドレス生成部19が命令2でロードを行なうオ
ペランドのアドレスを生成する。このとき、レジスタA
0から1008Hが読み出されて4が減算され、出力2
7に値1004Hが現れる。
【0032】キャッシュメモリ制御部21は、MEMス
テージアクセスアドレス28がキャッシャブル空間内の
アドレスであることにより、キャッシュメモリ22から
データをロードしようとするが、ここでキャッシュメモ
リ22に然る可きデータがない場合、ミスヒットとなり
リフィルを開始する。このとき、アクセスアドレス判定
部24は、アドレス生成部19の出力27がMEMステ
ージアクセスアドレス28より4だけ小さいため、リフ
ィルを降順で行なう旨の判定結果30を出力する。
【0033】以降は、図2には図示しないが、リフィル
が行われ、命令1についてはWBステージの処理(ロー
ドしたデータのレジスタD0への書込み)が、命令2に
ついてはMEMステージの処理とWBステージの処理
(ロードしたデータのレジスタD1への書込み)が行わ
れる。なお、レジスタD0,D1は、図示しないレジス
タファイルに含まれる。
【0034】図3は、上記の例におけるキャッシュメモ
リ22へのリフィルの動作タイミング図である。同図に
おいて、1000H番地のワードデータをデータA、1
004H番地のワードデータをデータB、1008H番
地のワードデータをデータC、100CH番地のワード
データをデータDと表記している。図3に示すように、
命令1のデータCに対するキャッシュアクセスがサイク
ル39で行なわれ、ミスヒットであるため、データCを
含むエントリの主記憶装置からのリフィルがデータCの
アドレスの1008H番地から開始される。そして、デ
ータCの転送サイクル43までの期間40の間、CPU
18は動作を停止し、キャッシュにミスヒットしたこと
によるペナルティーとなる。データCの転送サイクル4
3の後にCPU18は動作を再開し、命令2のデータB
へのキャッシュアクセス41を開始する。このとき主記
憶装置からのリフィルはアドレスの降順に行なわれるた
め、データCの転送サイクル43の次にデータBが転送
される。このデータBの転送サイクル44の後にCPU
18は動作を再開することができ、ペナルティーはわず
かな期間42のみとなる。その後、データAの転送サイ
クル45とデータDの転送サイクル46が行われ、リフ
ィルが終了する。
【0035】以上のように本実施の形態によれば、アク
セスアドレス判定部24がアドレス生成部19の出力2
7とMEMステージアクセスアドレス28とを比較する
ことによりリフィルを昇順に行なうか降順に行なうかを
判定するため、リフィル順序を命令で指定することなく
昇順と降順とを切り換え、ミスヒットのペナルティーを
最小限に抑えることができる。なお、主記憶装置からの
リフィル時のメモリアクセスに関しては、転送順序を変
更してもシステム性能を下げずに可能である。例えば主
記憶領域にDRAMを使用した場合、リフィルの順序に
関係なくエントリのブロックデータへのアクセスはDR
AMページモードが使用可能であるため、リフィルのデ
ータ転送順序を変更しても外部メモリアクセスの性能劣
化は発生しない。
【0036】なお、上記実施の形態では、アクセスアド
レス判定部24が、先行する命令でのアクセスアドレス
と後続する命令でのアクセスアドレスとをそれぞれME
Mステージアクセスアドレス28とEXステージのアド
レス生成部19の出力27とから得て、両者を比較する
ことによりリフィルを昇順に行なうか降順に行なうかを
判定しているが、DECステージにもアドレス生成部を
設け、後続する命令でのアクセスアドレスをDECステ
ージから得るようにしてもよい。こうすることにより、
連続するアドレスをアクセスする2つの命令の間に1つ
の命令を挿入することができ、挿入された命令の実行と
所望のリフィルとを並列に行なうことによりミスヒット
のペナルティー期間を一層短縮することができる。
【0037】また、上記実施の形態では、アクセスアド
レス判定部24は、アドレス生成部19の出力27とM
EMステージアクセスアドレス28とを比較することに
よりリフィルを昇順に行なうか降順に行なうかを判定し
ているが、MEMステージアクセスアドレス28が所定
の領域か否かに基づいてリフィルの順序を判定するよう
にしてもよい。この場合のアドレス空間の領域図を図4
に示す。図4において、49はリフィルの転送をアドレ
スの昇順に行なうアドレス領域、50は降順に行なうア
ドレス領域である。従って、領域49と領域50を合わ
せた領域がキャッシャブル空間47に、それ以外の領域
がアンキャッシャブル空間48になる。例えば、アドレ
スを昇順に連続的にアクセスすることの多い配列やスタ
ックおよびそのベースポインタは領域49に、アドレス
を降順に連続的にアクセスすることの多い配列やスタッ
クおよびそのベースポインタは領域50に配置する。こ
うすることにより前記した効果の他に、アクセスアドレ
ス判定部24の構成が簡単になり、また連続するアドレ
スをアクセスする2つの命令間の距離が規定されないた
めプログラムの自由度が増すという効果もある。
【0038】さらに、上記実施の形態では、アクセスア
ドレス判定部24がリフィルの順序を判定しているが、
アクセスアドレス判定部24を設けずに、命令解読部8
3が順序判定手段を兼ね、命令または処理の種類に応じ
てリフィルの順序を判定するようにしてもよい。例え
ば、スタックからポップする命令や割込み処理や関数お
よびサブルーチンから復帰する処理(これらのときもイ
ンプリシットにスタックからのポップが行なわれる)で
は、ミスヒット時のリフィルは昇順にし、逆にスタック
にプッシュする命令や割込み処理の先頭処理または関数
およびサブルーチンの呼び出し(これらのときもインプ
リシットにスタックへのプッシュが行なわれる)では、
ミスヒット時のリフィルは降順とする。後者は、ライト
時のミスヒットとなるため、主にライトアロケート(フ
ェッチオンライトとも言う)方式でデータロード後にキ
ャッシュにフィルするというインプリメンテーションを
行なったときに有効となる。この方法は、複数オペラン
ドの転送を行なう命令(ムーブマルチ命令などと称す
る)では連続アドレスのアクセスが前提であるため特に
有効である。
【0039】なお、上記実施の形態では、昇順、降順い
ずれの場合もミスヒットを生じさせたワードの転送を起
点とするラップアラウンド方式を採用しているが、昇順
の場合は最下位ワードの転送を起点に、降順の場合は最
上位ワードの転送を起点にしてもよい。こうすることに
より、リフィルによるミスヒットを生じさせたワードの
転送サイクルは遅れることになるが、その転送サイクル
から次の連続するアドレスのワード転送サイクルまでの
時間が短縮されるという本発明に特有の効果は同じよう
に発揮される。
【0040】
【発明の効果】上述のように本発明によれば、ワードの
転送方向のアドレスの昇順または降順を判定し、この判
定結果に応じてブロック転送のアドレスを増分または減
分することにより、アドレスが連続する2つ以上のキャ
ッシュアクセスを行なう場合に、先行するアクセスがミ
スヒットであっても後続するアクセスへのペナルティー
を減少させることができ、かつ、リフィルの順序を命令
で指定することを必要としないためにプログラムのサイ
ズ増加や性能の劣化を伴わず、生産性や信頼性を損なう
こともなく非常に有用であり、半導体のみならず電子機
器産業の進歩発展に多大な貢献をするものである。
【図面の簡単な説明】
【図1】本発明の実施の形態におけるキャッシュメモリ
制御装置を含むプロセッサの構成図。
【図2】同実施の形態における機械命令プログラムが実
行される場合のプロセッサのパイプラインフロー図。
【図3】同実施の形態におけるキャッシュメモリ22へ
のリフィルの動作タイミング図。
【図4】他の実施の形態によるアドレス空間の領域図。
【図5】キャッシュメモリの概略構成図。
【図6】従来のキャッシュメモリ制御装置の制御フロー
図。
【図7】従来のキャッシュメモリ制御装置の動作タイミ
ング図。
【符号の説明】
1 タグメモリ部 2 データメモリ部 3 エントリ 4 タグデータ 18 CPU 19 アドレス生成部 20 アクセスアドレス保持ラッチ 21 キャッシュメモリ制御部 22 キャッシュメモリ 23 ストアデータ生成部 24 アクセスアドレス判定部 25 ロードデータラッチ 26 外部メモリバスコントローラ 27 アドレス生成部の出力 28 MEMステージアクセスアドレス 29 キャッシュロードデータバス 30 アクセスアドレス判定部の判定結果 31 キャッシュアクセスアドレス 32 リフィルデータ転送アドレス 33 キャッシュライトデータバス 34 外部メモリデータバス 35 外部メモリアドレスバス 36 外部メモリロードデータバス 37 MEMステージストアデータ 47 キャッシャブル空間 48 アンキャッシャブル空間 49 リフィルを昇順に行なうアドレス領域 50 リフィルを降順に行なうアドレス領域 81 命令フェッチ部 82 命令レジスタ 83 命令解読部

Claims (12)

    【特許請求の範囲】
  1. 【請求項1】 主記憶装置内のデータの写しを予め定め
    られた複数ワードからなるブロック単位で保持するキャ
    ッシュメモリに対して、前記主記憶装置からのデータの
    転送を前記ブロック単位で行なうキャッシュメモリ制御
    方法であって、 前記キャッシュメモリへのアクセス要求がミスヒットを
    生じたときにそのブロックをワード単位で前記主記憶装
    置からブロック転送する際に、前記ワードの転送方向の
    アドレスの昇順または降順を前記アクセス要求を引き起
    こす命令または処理に基づいて判定し、この判定結果に
    応じて前記ブロック転送のアドレスを増分または減分す
    ることを特徴とするキャッシュメモリ制御方法。
  2. 【請求項2】 ワードの転送方向のアドレスの昇順また
    は降順の判定は、アクセス要求を引き起こす第1の命令
    とこの命令に後続する第2の命令との解読または実行結
    果に基づいて行なうことを特徴とする請求項1記載のキ
    ャッシュメモリ制御方法。
  3. 【請求項3】 ワードの転送方向のアドレスの昇順また
    は降順の判定は、予めアドレス空間の領域内にアドレス
    の昇順に行なう領域とアドレスの降順に行なう領域とを
    定めておき、アクセス要求のアクセスアドレスが属する
    領域に基づいて行なうことを特徴とする請求項1記載の
    キャッシュメモリ制御方法。
  4. 【請求項4】 ワードの転送方向のアドレスの昇順また
    は降順の判定は、アクセス要求を引き起こす命令または
    処理の種類により、前記アクセス要求がアクセスアドレ
    スの増加を伴うか減少を伴うかを識別することにより行
    なうことを特徴とする請求項1記載のキャッシュメモリ
    制御方法。
  5. 【請求項5】 主記憶装置内のデータの写しを予め定め
    られた複数ワードからなるブロック単位で保持するキャ
    ッシュメモリに対して、前記主記憶装置からのデータの
    転送を前記ブロック単位で行なうキャッシュメモリ制御
    装置であって、 前記キャッシュメモリへのアクセス要求がミスヒットを
    生じたときにそのブロックをワード単位で前記主記憶装
    置からブロック転送する際に、前記ワードの転送方向の
    アドレスの昇順または降順を、前記アクセス要求を引き
    起こす命令または処理に基づいて判定する順序判定手段
    と、 前記順序判定手段の判定結果に応じて前記ブロック転送
    のアドレスを増分または減分するアドレス更新手段とを
    設けたことを特徴とするキャッシュメモリ制御装置。
  6. 【請求項6】 順序判定手段は、アクセス要求を引き起
    こす第1の命令とこの命令に後続する第2の命令との解
    読または実行結果に基づいて、ワードの転送方向のアド
    レスの昇順または降順を判定することを特徴とする請求
    項5記載のキャッシュメモリ制御装置。
  7. 【請求項7】 順序判定手段は、複数のステージからな
    るパイプライン制御方式を採る中央処理装置内に設けら
    れ、第1の命令によりアクセス要求を引き起こすステー
    ジより上流側の特定のステージにおける第2の命令の処
    理結果に基づいて、ワードの転送方向のアドレスの昇順
    または降順を判定することを特徴とする請求項6記載の
    キャッシュメモリ制御装置。
  8. 【請求項8】 パイプライン制御方式は、アドレス生成
    を行なう第1のステージと、生成されたアドレスに基づ
    いてキャッシュメモリのアクセスを行なう第2のステー
    ジとを含み、 順序判定手段は、前記第2のステージにおける第1の命
    令による前記キャッシュメモリのアクセスのアドレス
    と、前記第1のステージにおける第2の命令によるアド
    レス生成結果とを比較し、その大小関係に基づいて、前
    記ワードの転送方向のアドレスの昇順または降順を判定
    することを特徴とする請求項7記載のキャッシュメモリ
    制御装置。
  9. 【請求項9】 順序判定手段は、アクセス要求のアクセ
    スアドレスに基づいて、ワードの転送方向のアドレスの
    昇順または降順を判定することを特徴とする請求項5記
    載のキャッシュメモリ制御装置。
  10. 【請求項10】 順序判定手段は、アクセスアドレス
    が、ワードの転送方向をアドレスの昇順と予め定めた領
    域にあるか、前記ワードの転送方向をアドレスの降順と
    予め定めた領域にあるかによって判定することを特徴と
    する請求項9記載のキャッシュメモリ制御装置。
  11. 【請求項11】 順序判定手段は、アクセス要求を引き
    起こす命令または処理の種類により、前記アクセス要求
    がアクセスアドレスの増加を伴うか減少を伴うかを識別
    して、前記ワードの転送方向のアドレスの昇順または降
    順を判定することを特徴とする請求項5記載のキャッシ
    ュメモリ制御装置。
  12. 【請求項12】 順序判定手段は、アクセス要求を引き
    起こす命令または処理がスタックからのポップを含む場
    合にはアクセスアドレスの増加を伴うと識別し、スタッ
    クへのプッシュを含む場合には前記アクセスアドレスの
    減少を伴うと識別することを特徴とする請求項11記載
    のキャッシュメモリ制御装置。
JP10049433A 1998-03-02 1998-03-02 キャッシュメモリ制御方法および装置 Pending JPH11249959A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP10049433A JPH11249959A (ja) 1998-03-02 1998-03-02 キャッシュメモリ制御方法および装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP10049433A JPH11249959A (ja) 1998-03-02 1998-03-02 キャッシュメモリ制御方法および装置

Publications (1)

Publication Number Publication Date
JPH11249959A true JPH11249959A (ja) 1999-09-17

Family

ID=12830983

Family Applications (1)

Application Number Title Priority Date Filing Date
JP10049433A Pending JPH11249959A (ja) 1998-03-02 1998-03-02 キャッシュメモリ制御方法および装置

Country Status (1)

Country Link
JP (1) JPH11249959A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6823406B2 (en) 2001-07-17 2004-11-23 Fujitsu Limited Microprocessor executing a program to guarantee an access order
JP2007226641A (ja) * 2006-02-24 2007-09-06 Nec Corp 情報処理装置、キャッシュ制御方法及びプログラム

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6823406B2 (en) 2001-07-17 2004-11-23 Fujitsu Limited Microprocessor executing a program to guarantee an access order
JP2007226641A (ja) * 2006-02-24 2007-09-06 Nec Corp 情報処理装置、キャッシュ制御方法及びプログラム

Similar Documents

Publication Publication Date Title
EP0747816B1 (en) Method and system for high performance multithread operation in a data processing system
US5265236A (en) Method and apparatus for increasing the speed of memory access in a virtual memory system having fast page mode
JP3323212B2 (ja) データプレフェッチの方法およびその装置
JP3425158B2 (ja) マルチバッファデータキャッシュを具えているコンピュータシステム
JP3739491B2 (ja) プリフェッチ命令を用いるハーバードアーキテクチャキャッシュメモリの調和したソフトウェア制御
JP3549079B2 (ja) キャッシュ制御の命令プリフェッチ方法
JPH09128293A (ja) 情報処理装置
EP0270310A2 (en) Method and apparatus for giving access to instructions in computer systems
JP2002297379A (ja) ハードウェアプリフェッチシステム
EP0394624A2 (en) Multiple sequence processor system
US5784711A (en) Data cache prefetching under control of instruction cache
KR960007833B1 (ko) 고속 페이지 모드 선택을 위한 방법 및 장치
JPH11249959A (ja) キャッシュメモリ制御方法および装置
JP2001166989A (ja) プリフェッチ機構を有するメモリシステム及びその動作方法
JP2786886B2 (ja) プリフェッチ制御方法およびプリフェッチ制御装置
JP2851777B2 (ja) バス制御方法及び情報処理装置
JP2001273137A (ja) マイクロプロセッサ
JPH08161226A (ja) データ先読み制御方法,キャッシュ制御装置およびデータ処理装置
JP2778623B2 (ja) プリフェッチ制御装置
JP2001184259A (ja) 演算処理装置及び該装置におけるデータ転送方法
JPH0651982A (ja) 演算処理装置
JP3161422B2 (ja) マイクロコンピュータ
JPH0683621A (ja) フェッチ方式
JP2004038601A (ja) キャッシュメモリ装置
JP2902847B2 (ja) 自己変更コード実行方式