JPS61248145A - メモリ制御装置 - Google Patents

メモリ制御装置

Info

Publication number
JPS61248145A
JPS61248145A JP60088977A JP8897785A JPS61248145A JP S61248145 A JPS61248145 A JP S61248145A JP 60088977 A JP60088977 A JP 60088977A JP 8897785 A JP8897785 A JP 8897785A JP S61248145 A JPS61248145 A JP S61248145A
Authority
JP
Japan
Prior art keywords
data
block
memory
address
cache memory
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
Application number
JP60088977A
Other languages
English (en)
Other versions
JPH0255812B2 (ja
Inventor
Akisumi Mitsuishi
三石 彰純
Kazuo Taki
和男 瀧
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.)
National Institute of Advanced Industrial Science and Technology AIST
Original Assignee
Agency of Industrial Science and Technology
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 Agency of Industrial Science and Technology filed Critical Agency of Industrial Science and Technology
Priority to JP60088977A priority Critical patent/JPS61248145A/ja
Publication of JPS61248145A publication Critical patent/JPS61248145A/ja
Publication of JPH0255812B2 publication Critical patent/JPH0255812B2/ja
Granted legal-status Critical Current

Links

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Abstract

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

Description

【発明の詳細な説明】 〔産業上の利用分野〕 この発明はメモリをスタックとして使用する場合に生じ
る主記憶とキャッシュメモリ間の無駄なデータ転送を削
減するのに適した制御手段を備えたキャッシュメモリの
メモリ制御装置に関するもので、特に、ライトeスワッ
プ方式に属するキャッシュメモリに関し、主記憶かうの
無駄なデータの読み出しと主記憶への無駄なデータの書
き出しを削減するものである。
〔従来の技術〕
キャッシュメモリ装置の方式としては、OPUからデー
タの書き込みを行う際にデータをキャッシュメモリ内と
主記憶の両方に同時に曹き込むライト・スル一方式と書
き込み時にはキャッシュメモリ内にだけ書き込みを行い
、書き込んだ領域が後になって別のアドレスのキャッシ
ュアクセスに使用される時点で以前のデータを主記憶へ
書き出すライト・スワップ方式の二つがある。
ここで、本願の対象とする後者による従来のライト・ス
ワップ方式のキャッシュメモリの書き込み方式について
、図を用いて説明する。
第11図はキャッシュメモリ装置の一例の構成図である
。図において、アドレス争レジスタtoolは、キャッ
シュメモリを7り七′スする場合のアドレス”・+1゜ パを保持するレジスタで、上位アドレス部βl)、中位
1′1、に ナトレス部−1下位アドレス部−の三つの部分か二邑成
る。データリモリ(イ)はデータを記憶するためのメモ
リで、その記憶容量(語数)は中位アドレス部−1下位
アドレス部(&31t−合わせたビット数で指定できる
だけの大きさを持つ。データ・メモリー中のデータは1
語ずつ管理されるのではなく、下位アドレス部−のビッ
ト数で指定できる大きさのブロックと呼ぶ単位でヒツト
、ミスヒツトの管理や主記憶との間のデータ入れ替えの
管理が行われる。以後本例では、1ブロツクの大きさを
4語−しかして、ディレクトリ・メモリ(至)は、デー
タ・メモリ(転)の中の各ブロックが有効か無効か、ど
このアドレスに対応するデータが置かれているのか、主
記憶からキャッシュメモリに読み込まれた後に内容が変
更されたか否かの情報を保持し、キャッシュメモリの読
み書き時に、ヒツトかミスヒツトか、主記憶との間にデ
ータ転送の必要があるか否かの管理に使用されるもので
、このディレクトリ・メモリ叫は、有効フラッグ部(9
)、変更フラッグ部(2)、キーアドレス部<111)
から構成され、ディレクトリ・メモリ叫のエントリ数は
、データ・メモリー中のブロックの個数に等しい0 また、比較器に)は、アドレス・レジスター)中の上位
アドレス部(81)の値と、キーアドレス部α匂の値を
比較し、その結果がキャッシュのヒツト、ミスヒツトの
判定に使用される0この場合、ディレクトリ・メモリ(
至)は中位アドレス部−を用いて検索される。カウンタ
ーは、下位アドレス部瞥と同じビット幅を持ち(本例で
は2ビツトとする)、ゼロクリア、下位アドレス部闘か
らの値のロード、+1の機能を持ち、データ・メモリ(
イ)のブロック成・に使用される。
さらに、データ選択器部)は、データ・メモリ(イ)お
よび主記憶へ供給するアドレスの最下位(2ビツト)と
して、下位アドレス部!8)の値を使うか、カウンター
の値を使うかを決定するものであるが、通常は下位アド
レス部關の方を選択しているものとする。誓き込みデー
タ・レジスタmllは、キャッシュメモリに書き込むべ
きデータを保持するレジスタである。主記憶インターフ
ェース−は、主記憶とのデータ、アドレス、制御信号の
受渡しを行う部分で69、アドレス情報として中位、下
位アドレスについては、データΦメモリ(イ)に供給さ
れているものと同じ情報が、上位アドレスについては、
本例ではキーアドレス部αB)の内容がそれぞれ使用さ
れる。制御回路間は、キャッシュ命令レジスタS)に置
かれたキャッシュ命令に従いキャッシュメモリの読み書
きを開始し、ディレクトリ・メモリ(至)の内容に従い
、ヒツト、ミスヒツトの別、主記憶との間のデータ転送
の要否を判定して、判定結果に従った制御手順を実行す
る。なお、第11図である。ディレクトリ・メモリ(至
)の有効フラッグと変更フラッグの値、および比較器(
4)の比較結果により処理が分岐する0流れ図の中で枝
61.62゜63.64は、各々次の場合を示す。枝6
1は当該ブロック中に有効なデータがなくキャッシュ・
ミスヒツトとなった場合、枝62はキャッシュ・ヒツト
の場合、枝63は当該ブロック中に有効なデータが存在
するがキーアドレスが異なるためにミスヒツトとなった
場合で、かつブロックの内容が主記憶から持って来られ
た後に変更を受けておらず(変更フラッグ=0)主記憶
へ簀き戻す必要がない場合、枝64は枝63と同様ミス
ヒツトの場合であるが変更フラッグが1でちゃブロック
の内容を主記憶へライトバックする必要がある場合であ
る。
各々の場合の制御手順について説明すると、枝64の場
合は、データ・メモリーの当該ブロックには、別のアド
レスに対応する有効なデータが存在するため、まずブロ
ックの内容4語を主記憶へ書き戻す0この処理が第12
図の枠600の処理である。こうしてブロックを空にし
た後、枠601の処理で令書き込もうとしている1語の
曹き込みレスからデータを読み込み、処理を終了する0
枠600の処理を詳細化したのが第13図である。ブロ
ック内の4語のデータを順次読み出し主記憶へ書き込む
ために1ずつアドレスを変化させ〜たのが第14図であ
る。第12図の枠601で書き込みを行ったアドレスを
除く同一ブロック内の3語について、主記憶からデータ
を読み込むために、同じくカウンターを用いる。第15
図との違いは、カウンタの初期値として始めにアドレス
レジスタの下位アドレス部瞥をロードし、それt−1増
加しては主記憶読み出しのための下位アドレスとして使
用することである。枝61および63の処理は、枝64
の処理から枠600の処理を除いたものに等しく、更に
枝62の処理は枝61の処理から枠605,604の処
理を除いたものと全く等しい。
さらに、第15図はキャッシュ命令として読み出しくリ
ード)が指定された場合の制御手順の流。
れ図である。第12図と同様、ディレクトリ・メモリ叫
の有効フラッグと変更フラッグの値、および比較器Q→
の比較結果により処理が分岐する0流れ図の中!枝71
,72,73.74は、各々第12図の枝61,62.
65.64に対応する。
各々の場合の制御手順について説明すると、枝71の場
合′は、データ・メモリーの当該ブロックには、別のア
ドレスに対応する有効なデータが存′い。こうしてブロ
ックを空にした後、枠701の処理で今要求されている
ブロックを主記憶からブロックロードしデータ拳メモリ
ーへ書き込む。次に枠702の処理で要求されているア
ドレスのデータをデータ・メそす(社)から読み出しデ
ータレジスターへ書き込み、最後に枠705でディレク
トリ・メモリーの内容を更新する。枠701の詳細を示
したのが第16図である。この第16図での処理は第1
3図で示した枠604とよく似た処理を行うが、カウン
タの+1タイミングと繰り返し回数のみが異なっている
。第14図の処理において、枝71および73の処理は
、枝74の処理から枠700の処理を除いたものに等し
く、更に枝72の処理は枝71の処理から枠701,7
03の処理を除いたものと全く等しい。
〔発明が解決しようとする問題点〕
しかるに、以上述べたような従来例におけるキャッシュ
メモリの書き込み、及び読み出しの制御手順を用いると
、メモリをスタックとして使用する場合、明らかに不要
な主記憶の読み出し、及び主記憶への書き出しが発生す
る。この様子を図を用いて説明する。
ある((h)は16進表示を示す)0破線はキャッシュ
メモリのブロックの境界を示す。またキャッシュメモリ
には、異なるアドレスに対応する有効なデータで変更フ
ラグ=1のものが存在しているものとする。1002(
h)番地への書き込みを実行すると、キャッシュメモリ
はミスヒツトを起こし、第12図の枝64の制御手順が
実行されて、まずブロック内の元のデータ4語が主記憶
へ書き戻され、次に1002(h)番地へ書き込むべき
データが当該ブロックに書き込まれ、ディレクトリ・メ
モリ叫が更新され、そしてブロック内の残シのミ語が主
記憶から読み込まれる。第17図の書き込み後の図は、
斜線が主記憶から読み込まれたデータを示し、格子縞が
書き込まれたデータを示す。次に1oos(h)番地へ
の書き込みを行なうと、キャッシュメモリはヒツトし、
第12図の枝62の制御手順が実行されて、データの書
き込みと変更フラグのセットだけが行われ、第17図の
書き込み後の図の1003(h)番地は、斜線から格子
縞に変わる(第18図の書き込み前の図)。次に100
4(h)番地へ書き込みみ込まれたデータが存在するこ
とになる。こうして書き込みをく9返し、1002(h
)から100D(h)番地までの12語に書き込みを完
了した時の図が第19図である。1002(h)から1
00D(h)番地までにスタックの先頭は100D(h
)番地であシ、それより大きいアドレスのデータはスタ
ックを利用する者にとって意味のないデータである。ま
たここで注意すべきことは、1002(h) 、 1o
o4(h) 、 1008(h) 、 ”1ooa(h
)番地の書き込み時にはキャッシュはミスヒツトして、
主記憶からそれぞれ3語ずつ合計12語のデータが読み
込まれたが、その内の8語、番地でいうと1003(h
) 、 1005(h) 、 1006(h) 、 1
007(h)。
1009(h) 、 100ム(h) 、 100n(
h) 、 100D(h)  番地のデータは、使用さ
れないまま書き込みデータが上誉きされていることであ
る。さらにスタック利用の意味上、不要な100FX(
h) 、 100F(h)  番地のデータを含めて、
10語もの不要なデータが主記憶から読み込まれている
このように、各アドレスへのデータ書き込みの際のヒツ
ト、ミスヒツトの区別、その時起動されたキャッシュ制
御手段の区別、主記憶への書き出し、主記憶からの読み
込みデータの語数?、まとめたものが第19図である。
キャッシュメモリへの12語のデータ書き込みに対して
、12語の主記憶からのデータ読み込みが発生し、その
中の10明する。第19図の状態から100D(h)番
地〜1002(h)番地まで12語を順次読み出すと1
2回のリード命令は全てヒツトし、スタックの先頭は1
001(h)番地に戻る。この状態で他のアドレスに対
するキャッシュアクセスによって1ooo(h) @地
〜10011’(h)番地の4ブロック16語がキャッ
シュを追い出されると合計16語の主記憶への書き出し
が発生する。しかしながらスタックの特性がら1ooz
(h)番地〜1ooIP(h)番地の14語のデータは
再び参照されることはないため、本来主記憶への書き出
しを必要としないデータである。
以上の如く、メモリをスタックとして使用した場合、従
来方式のキャッシュメモリ制御方式では主記憶との間で
無駄なデータ転送を行っており、主記憶アクセスのため
に余分な時間がかかつている0 この発明は上記のような従来のライト・スワップ方式の
キャッシュメモリのメモリ制御装置において、メモリを
スタックとして使用する場合に明らかに無駄と分る主記
憶とキャッシュメそりとの〔問題点を解決するための手
段〕 この発明に係るメそり制御装置は、データの書き込みを
行なう際に、該データをキャッシュメそり内のみに書き
込み、該書き込んだ領域が後に別のアドレスのキャッシ
ュアクセスに使用される時に、該領域に書き込まれてい
るデータを主記憶に薔き戻すライト・スワップ方式のキ
ャッシュメモリのメモリ制御装置において、書き込みア
ドレスのデータセルを含むブロックでなるデータの管理
単位がキャッシュメモリ内に存在しない場合、当該ブロ
ックをキャッシュメモリ内に確保した後に書き込みデー
タを当該アドレスのデータセルに書き込み、ブロック内
の他のデータセルについては主記憶からデータの読み込
みを行なうライ)−スワップ方式における通常の第1の
書き込み制御手段と、原則としては上記第1の書き込み
制御手段と同じ制御を行ないつつ、書き込みアドレスが
ブロックの先頭データセルであって、かつ当該ブロック
がキャッシュメモリ内に存在しない場合に限シ、当該ブ
ロックをキャッシュメモリ内に確保した後に書き込みデ
ータを当該アドレスのデータセしアドレスのデータセル
を含むブロックが、キャッシュメモリ内に存在しない場
合に当該ブロックをキャッシュメモリ内に確保した後主
記憶より該ブロックのデータを読み出してキャッシュメ
モリ先頭データセルの場合でかつ当該ブロックがキャッ
シュメモリ内に存在しなかった場合は、当該データのみ
を主記憶から読み出し、キャッシュメモリには何ら変化
を残さない制御を行ない、読み出しアドレスがブロック
の先頭データセルの場合で、かつ当該ブロックがキャッ
シュメモリ内に存在した場合には、当該データをキャッ
シュメモリから読み出した後、キャッシュメモリ内の該
ブロックを直ちに無効化せしめる第2の読み出し手段を
備えたメモリ制御装置を提供する。
〔作用〕
この発明による第2の誉き込み制御手段及び第2の読み
出し制御手段を、メモリをスタックとして使用する場合
に適用すると、論理的な不都合を生じせしめることなく
機能し、かつ主記憶とキャッシュメモリとの間のデータ
転送量が減少する0〔実施例〕 以下、この発明の一実施例について因を用いて説明する
。第1図はこの発明の実施例の1つであるキャッシュメ
モリのメモリ制御装置の構成図である。本実施例は、第
11図ないし第19図を用脚手順を実現するためのスタ
ック操作命令用制御回路150)、スタック操作命令用
キャッシュ命令デコーダ@!Dを付加したものである。
制御回路−、キャッシュ命令デコーダーは、第11図の
制御回路鴎、キャッシュ命令デコーダー)に相当するも
のであり、第12図に制御子、順の流れ図を示したキャ
ッシュ命令の「ライト」、第15図に制御手順の流れ図
を示したキャッシュ命令「リード」tl−はじめとする
従来のキャッシュ命令の制御手順を実現する0ただし、
キャッシュ命令レジスタ14(IKキャッシュ命令「ラ
イト・スタック」又は「リード・スタツり」が置かれた
場合には、キャッシュ命令デコーダーは命令解読信号を
制御回路−)へ転送せず、制御回路−は制御信号線−と
ディレクトリーメそす(至)の有効フラッグ部α刀、変
更フラッグ部団へデータを送出する信号線を開放して、
キャッシュメモリ装置の制御権をスタック操作命令用制
御回路1501へ渡す。また、スタック操作命令用キャ
ッシュ命令デコーダーはライト・スタックおよびリード
φスタック命令を解読して命令解読信号をスタック操作
命令用制御回路−へ送出し、スタック操作音る。第1図
中の他の構成要素は第11図のものと同じである。
上記第1図構成において、アドレス・レジスター)はキ
ャッシュメモリをアクセスする場合のアドレスを保持す
るレジスタで、上位アドレス部団)、中位アドレス部間
、下位アドレス部−の三つの部分から成る。また、デー
タ・メモリーはデータを記憶するためのメモリで、その
記憶容量(語数)は中位アドレス部間、下位アドレス部
間を合わせたビット数で指定できるだけの大きさを持つ
。データ・メモリ陣中のデータは1#ずつ管理されるの
ではなく、下位アドレス部−のビット数で指定できる大
きさのブロックと呼ぶ単位でヒツト、ミスヒツトの管理
や主記憶との間のデータ入れ替えの管理が行われる。以
後本例では、1ブロツクの太き・さを4語として説明を
行う。上記データφメモ主記憶との間にデータ転送の必
要があるか否かの管理に使用されるもので、このディレ
クトリ・メモリ(至)は、有効フラッグ部(9)、変更
フラッグ部団、上位アドレス部(81)の値と、キーア
ドレス部QB)の値を比較し、その結果がキャッシュの
ヒツト、ミスヒツトの判定に使用される。この場合、デ
ィレクトリ・メモリ(至)は中位アドレス部−を用いて
検索される。カウンタ開は、下位アドレス部−と同じビ
ット幅を持ち(本例では2ビツトとする)、ゼロクリア
、下位アドレス部(財)からの値のロード、+1の機能
を持ち、データ・メモリ陣のブロックの中身(4語)を
順次主記憶へ書き出す処理(ライトバック)および主記
憶からデータ・メモリ(イ)のブロックへ順にデータを
読み込む(ブロックロード)場合の、最下位(2ビツト
)のアドレス生成に使用される。データ選択器濁)はユ
データ・メモリーおよび主記憶へ供給するアドレスの最
下位(2ビツト)として、下位アドレス部−の値を使う
か、カウンターの値を使うかを決定するものであるが、
通常は下位アドレス部間の方を選択しているものとする
。書き込みデータ・レジスタ圀)は、キャッシュメモリ
に書き込むべきデータを保持するレジスタである。主記
憶インタフェース例は、いては、本例ではキーアドレス
部CIB)の内容がそれぞれ使用される。
第2図は第1図゛のスタック操作命令用制御回路−)で
実現するライト・スタック命令の制御手順の流れ図であ
る。アドレスレジスター(番号は以後第1図または第2
図中のものを指す)の下位アドレス部(&3)の値、デ
ィレクトリメモリ翰の有効フラッグ部(2)と変更フラ
ッグ部団の値、および比較器α→の比較結果により制御
手順の流れが分岐する。
ここで、枝80は曹き込みアドレスがブロックの先頭デ
ータセルを指していなかった場合、枝85は書き込みア
ドレスがブロックの先頭データセル全指している場合で
ある0また、枝81及び枝86はアドレス・レジスタ1
8G+の中位アドレス部−で指定されるブロック中に有
効なデータがなくキャッシュ・ミスヒツトとなった場合
、枝82及び枝87はキャッシュ−ヒツトの場合、枝8
5及び枝88は当該ブロック中に有効なデータが存在す
るが、キーアドレスの比較結果が不一致のためミスヒツ
トした場合で、かつブロックの内容が主記憶から持って
来られた後変更を受けておらず(変更フラ場合である。
以下各々の場合の制御手順について説明すると、枝80
の場合、第12図で示したライト命令の制御手順と全く
同じであり、枝81.82,83゜84は各々第12図
の枝61.62,65.64に和尚する。すなわち枝8
4の場合は、データーメモリーの当該ブロックには、別
のアドレスに対応する有効なデータが存在するため、ま
ずブロックの内容4語を主記憶へ書き戻す。この処理が
第2図の枠800の処理である。こうしてブロックを空
にした後、枠801の処理で令書き込もうとしている1
語の書き込みを行う。次に枠802゜803でディレク
トリ・メモリ(至)の内容を更新する。最後に枠804
で、ブロック内の残り5語に、主記憶の然るべきアドレ
スからデータを読み込み、処理を終了する。
枠800の処理を詳細化したのが第5図である0ブロツ
ク内の4語のデータを順次読み出し主記憶へ書き込むた
めに1ずつアドレスを変化させる必要があるが、この目
的で第1図のカウンターを使カウンターを用いる。第3
図との違いは、カウンタの初期値として始めに7ドレス
レジスタの下位アドレス部−をロードし、それt−1増
加しては主起1憶読み出しのための下位アドレスとして
使用することである。枝81および83の処理は、枝8
4の処理から枠800の処理を除いたものに等しく、更
に枝82の処理は枝81の処理から枠803゜804の
処理を除いたものと全く等しい。
さらに、枝85はこの発明による新しい制御手順であっ
て、書き込みアドレスがブロックの先頭を指している(
下位アドレス=0)場合に実行される。枝89の場合は
、データ・メモリーの当該ブロックには、異なるキーア
ドレスの有効なデータが存在するため、まずブロックの
内容4語を主記憶へ書き戻す0この処理が第2図の枠8
20の処理である。こうして書き込み対象ブロックを確
保した後、枠821の処理で書き込みデータ番レジスタ
(21)中のデータをデータ・メモリ(イ)中の当該ブ
ロック内の指定アドレスのデータセルに薔き込む。この
場合のアドレスとして、ブロックを指定するのに中位ア
ドレス部間が、ブロック内のデータセルを指定するのに
下位アドレス部183)が使用される。
次に枠822、枠823でディレクトリ−メモリ酸の内
容を更新し処理を終了する。枝84と異処理を除いたも
のに等しく、枝87の処理は枝82の処理と等しい。
しかして、第5図は第1図のスタック操作命令用制御回
路−で実現するリード・スタック命令の制御手順の流れ
図である。アドレスレジスターの下位アドレス部団の値
、ディレクトリメモリ叫の有効フラッグ部(9)と変更
フラッグ部(至)の値、および比較器CI→の比較結果
により制御手順の流れが分岐する。枝90は書き込みア
ドレスがブロックの先頭データセルを指していなかった
場合、枝95は書き込みアドレスがブロックの先頭デー
タセルを指している場合である0枝91及び枝96はア
ドレス・レジスタ1410)の中位アドレス部端で指定
されるブロック中に有効なデータがなくキャッシュ・ミ
スヒツトとなった場合、枝92及び枝97はキャッシュ
・ヒツトの場合、枝93は当該ブロック中に有効なデー
タが存在するが、キーアドレスの比較結果が不一致のた
めミスヒツトした場合で、かつブロックの内容が主記憶
から持って来られた後変更を受けておらず(変更フラッ
グ=0)主記憶へ書き戻す必要のない場合、枝94tf
i枝95とlなデータが存在するが、キーアドレスの比
較結果が不一致のためミスヒツトした場合である。以下
各々の場合の制御手順°について説明する。
枝90の場合、第15図で示したリード命令の制御手順
と全く同じであり、枝91,92,95゜94は各々第
15図の枝71,72.75.74に相当する0 枝94の場合は、データ拳メモリーの当該ブロックには
、別のアドレスに対応する有効なデータが存在す°るた
め、まずブロックの内容4語を主記憶へ書き戻す。この
処理が第5図の枠900の処理であシ、第6図で詳細を
示した枠800と等しい。こうしてブロックを空にした
後、枠901の処理で今要求されているブロックを主記
憶からブロックロードしデータ・メモリーへ書き込む。
次に枠902の処理で要求されているアドレスのデータ
をデータ・メモリ■から読み出しデータレジスターへ書
き込み、最後に枠90′5でディレクトリ・メモリ叫の
内容を更新する。枠901の詳細を示したのが第6図で
ある。第4図で示した枠804とよく似た処理を行うが
、カウンタの+1理を除いたものと全く等しい。
また、枝95はこの発明による新しい制御手順であって
、読み出しアドレスがブロックの先頭を指している(下
位アドレス=0)場合に実行される0 りを取り出す。次に枠955で該ブロックのデータを主
記憶に曹き戻すことなく無効化する。枝96及び枝98
の場合はキャッシュメモリに変化を残すことなく主記憶
よシ読み出しアドレスのデータを読み出し、読み出しデ
ータレジスターに書き込んで処理を終了する。
以上に述べ次ように、ライト・スタック及びリード・ス
タックのキャッシュ命令を実現する制御手段を導入する
ことにより、メモリをスタックとして使用し、かつスタ
ックに対する誉き込みに2イト・スタック、スタックの
読み出しにリード・スタックのキャッシュ命令を使用す
ることによってキャッシュメモリと主記憶との間の不必
要なデータ転送を減少させ、スタック操作の高速化を図
ることができる0 以下では、ライ)−スタック命令を用いてスタックにデ
ータを書き出してゆく場合のスタック上のデータの状態
、およびその時に主記憶との間で受は渡しされるデータ
語数について第7図〜第10図を用いて説明する。
各キャッシュ命令実行時の主記憶への書き出し回数、主
記憶からの読み込み回数についてまとめたものである。
ここでキャッシュメモリの各ブロックには異なるキーア
ドレスを持つ有効なデータが存在しておシ、キャッシュ
・ミスヒツトを起すとブロックの内容のライトバックが
必要であるものとする。また各ブロックの境界アドレス
は、第8図の破線で示したところにあるものとする(こ
れらの条件は従来例で説明したものと同じである)0ス
タツクへの書き込みを開始する前のスタックの先頭は1
001(h)番地であシ、1001(h)以下のアドレ
スのデータは主記憶中に存在しているものとする。
1002(h)番地に対してライト轡スタック命令を実
行すると、キャッシュ・ミスヒツトが発生して、第2図
の枝84の制御手段が実行され、はじめにブロック中の
古いデータ4語が主記憶に書き戻され、次に1002(
h) を地へ書き込むべきデータがブロック内の対応す
るデータセルに書かれ、最後に1000(h) 、 1
001(h) 、 1003(h)の各番地のデータ縞
で示した部分がライト命令で書き込まれたデータである
。次に1003(h)に対するライトスタック命令を実
行すると、キャッシュはヒツトし、第2図枝82の制御
手段によって実行後のスタックは第9図の書き込み前の
図のように1oo3(h)番地が斜線から格子縞(書き
込まれたデータを示す)に変わる。次の1004(h)
番地にたいするライト・スタック命苓では、キャッシュ
・ミスヒツトとな九第2図の枝89の制御手順が実行さ
れ、ブロック内の古いデータ4語がライトバックされた
あと、同命令で書き込まれるべきデータがブロック中の
1004(h)番地に対応するデータセルへ誉き込まれ
、その後同ブロックは有効化されて、1005(h)〜
1007(h)番地に対応するデータセルには、主記憶
からの読み込みは行なわれず意味のないデータが残った
ままの状態であるoしかしながら、これらのデータセル
は、引きつづくライト・スタック命令が実行されたとき
キャッシュ・ヒツトして、ただちにデータが上書きされ
る0こうして100D(h)番地まで順にライト・スタ
ック命令によυ書き込100ν(h)の2つの番地に対
応するブロック中のデータセルには、主記憶の同番地と
は異なるデータが存在している0しかしながら、スタッ
クの構造上、その先頭(この場合100D(h)番地)
よシも大きいアドレスに対してメモリの読み書きが発生
することはないから、1oom(h) 、 10ot(
h)の2つの番地はそのまま放置して問題ない。以上の
一連の書き込み処理について第z4cを見ると、100
2(h)。
1004(h) 、 100B(h) 、 1000(
h)の4つのアドレスについてキャッシュeミスヒツト
が発生しており、そのつど主記憶への4語のライトバッ
クが発生しているが、主記憶からの読み込み線、100
2(h)番地に対してライト命令を実行したときの5語
だけとなっている。この中で主記憶からのデータ読み込
みのうちむだと分かるものは、1003(h) を地が
と比べると、12回のスタックへのデータ書き込主記憶
からのデータ読み込みが6回でこの内不喪と分かるもの
が1回である。このように、スタンみを大幅に削減でき
ることが分かる。
次に第10図の状態からリード・スタック命令を用いて
100D(h)番地〜1002(h)番地の12語のデ
ータを読み出した時の動作について説明する。
第10図o状態rc オイ−ca 1ooD(h) 番
Mt 〜1002h)番、地のデータは全てキャッシュ
メモリ内に存在するため12回のリード・スタック命令
は全てヒツトする。ただし1ooc(h)番地、100
8(h)番地、1004(h)番地に対するリード・ス
タック命令は第5図の枝97によって処理され、従って
該データが読み出されると同時に該データを含むブロッ
クな無効化されてキャッシュメモリ内には存在しなくな
る。ゆえに1002(h)番地まで読み出した後は第9
図の書き込み前の状態に戻っている。この状態において
は他のアドレスに対するキャッシュアクセスによって主
記憶へ書き戻される可能性があるブロックは1000(
h)〜1003(h)番地の1プロツりのみであって、
1004(h)〜100IP(h)番地の3ブロツクは
書き戻される可能性も必要性もない。従来例においては
、上記3ブロツクは主記憶に書き戻される必要性がない
のにもかかわらず、曹き戻される場合があったため、明
らかに不要と分る主用いることによって、主記憶への不
必要なデータ書き出しを削減できることが分る。
〔発明の効果〕
以上のように、この発明によれば、メモリをスタックと
して使用し、その先端部分へ連続的にデータを書き込む
場合(特にキャッシュメモリのブロックの大きさよシも
多くのデータを書き込む場合)Ic、主記憶からの不要
なデータ読み込みが削減され、書き込み時間が短縮され
るという効果が生じる。また、すでに読み出されてしま
ったスタックの先端部分が不必要に主記憶へ書き戻され
ることが削減でき、後続のキャッシュ命令に要する処理
時間が短縮される。
例えば、L工SF −? PROLOGプログラムを7
アームウエアで記述されたインタープリンタを用いて解
釈実行する場合に、実行制御情報をスタックへ格納する
項番など、主記憶上にとられたスタックへある程度大き
な一連のデータを連続誓き込みする場合に、キャッシュ
・ミスヒツトにともなう主記憶からキャッシュメモリへ
のむだなデータの読み込みを削減することができ、主記
憶アクセスにはこの発明の一実施例のキャッシュメモリ
のメモリ制御装置の構成図、第2図はキャッシュメモリ
装置において、キャッシュ命令としてライト鳴スタック
命令が指定された場合の制御手順の流れ図、第5図は第
2図の枠800の処理を詳細に示す処理内容図、第4図
μ第2図の枠804の処理を詳細に示す処理内容図、第
5図はキャッシュメモリの処理結果を示す図表、第8図
〜第10図は本発明の実施例においてスタックにデータ
を書き出してゆく場合のスタック上のデータの状態を示
す状態図、第11〜第20図は従来例に係るもので、第
11図に従来のキャッシュメモリのメモリ制御装置の一
例の構成図、第12図はキャッシュメモリ装置において
、キャッシュ命令として書き込みが指定された場合の制
御手順の流れ図、第13図は第12図の枠600の処理
を詳細に示す処理内容図、第14図は第12図の枠60
4の処理を詳細に示す処理内容図、第15図4はキャッ
シュメモリ装置において、キャツクユ命令として読み出
しが指定された場合の制御手順の流れ図、第16図は第
14図の枠701の処理を詳細に示す処理内容図、第1
7図〜第19図はキャッシュメモリ装置において、メモ
リをスタックとして使用し、スタックにデータを書き出
してゆく場合のスタック上のデータの状態を示す状態図
、第20図はメそすへの書き込み時の処理結果を示す図
表である。
図において、叫はディレクトリ拳メモリ、(2)は有効
フラッグ部、(廟は変更フラッグ部、(1mはキーク、
(81)は上位アドレス部、−は中位アドレス部、(財
)は下位アドレス部、例はカウンタ、姫1はデータ選択
器、間はキャッシュ命令レジスタ、(6))は制御回路
、喝)は制御信号線、−はキャッシュ命令デコーダ、(
資)はスタック操作命令用キャッシュ命令デコーダ、剥
)はスタック操作命令用制御回路、el+は制御信号線
なお、図中、同一符号は同一、又は相当部分を示す。

Claims (1)

    【特許請求の範囲】
  1. データの書き込みを行なう際に、該データをキャッシュ
    メモリ内のみに書き込み、該書き込んだ領域が後に別の
    アドレスのキャッシュアクセスに使用される時に、該領
    域に書き込まれているデータを主記憶に書き戻すライト
    ・スワップ方式のキャッシュメモリのメモリ制御装置に
    おいて、書き込みアドレスのデータセルを含むブロック
    でなるデータの管理単位がキャッシュメモリ内に存在し
    ない場合、当該ブロックをキャッシュメモリ内に確保し
    た後に書き込みデータを当該アドレスのデータセルに書
    き込み、ブロック内の他のデータセルについては主記憶
    からデータの読み込みを行なう、ライト・スワップ方式
    における通常の第1の書き込み制御手段と、原則として
    は上記第1の書き込み制御手段と同じ制御を行ないつつ
    、書き込みアドレスがブロックの先頭データセルであっ
    て、かつ当該ブロックがキャッシュメモリ内に存在しな
    い場合に限り、当該ブロックをキャッシュメモリ内に確
    保した後に書き込みデータを当該アドレスのデータセル
    に書き込み、ブロック内の他のデータについては主記憶
    から読み出すことなく当該ブロックを有効化せしめる第
    2の書き込み制御手段と、読み出しアドレスのデータセ
    ルを含むブロックが、キャッシュメモリ内に存在しない
    場合に、当該ブロックをキャッシュメモリ内に確保した
    後主記憶より該ブロックのデータを読み出してキャッシ
    ュメモリに格納する通常の第1の読み出し制御手段と、
    原則としては上記第1の読み出し制御手段と同じ制御を
    行ないつつ、読み出しアドレスがブロックの先頭データ
    セルの場合で、かつ当該ブロックがキャッシュメモリ内
    に存在しなかった場合は、当該データのみを主記憶から
    読み出し、キャッシュメモリには何ら変化を残さない制
    御を行ない、読み出しアドレスがブロックの先頭データ
    セルの場合で、かつ当該ブロックがキャッシュメモリ内
    に存在した場合には、当該データをキャッシュメモリか
    ら読み出した後、キャッシュメモリ内の該ブロックを直
    ちに無効化せしめる第2の読み出し手段を備えたことを
    特徴とするメモリ制御装置。
JP60088977A 1985-04-26 1985-04-26 メモリ制御装置 Granted JPS61248145A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP60088977A JPS61248145A (ja) 1985-04-26 1985-04-26 メモリ制御装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP60088977A JPS61248145A (ja) 1985-04-26 1985-04-26 メモリ制御装置

Publications (2)

Publication Number Publication Date
JPS61248145A true JPS61248145A (ja) 1986-11-05
JPH0255812B2 JPH0255812B2 (ja) 1990-11-28

Family

ID=13957854

Family Applications (1)

Application Number Title Priority Date Filing Date
JP60088977A Granted JPS61248145A (ja) 1985-04-26 1985-04-26 メモリ制御装置

Country Status (1)

Country Link
JP (1) JPS61248145A (ja)

Also Published As

Publication number Publication date
JPH0255812B2 (ja) 1990-11-28

Similar Documents

Publication Publication Date Title
US5155832A (en) Method to increase performance in a multi-level cache system by the use of forced cache misses
JPH05210585A (ja) キャッシュ管理システム
JPH04205041A (ja) マルチプロセッサシステム
US5471602A (en) System and method of scoreboarding individual cache line segments
JP5129023B2 (ja) キャッシュメモリ装置
JP3929872B2 (ja) キャッシュメモリ、プロセッサ及びキャッシュ制御方法
JPS63240650A (ja) キヤツシユメモリ装置
JP4047281B2 (ja) キャッシュメモリをメインメモリに同期させる方法
JP3964821B2 (ja) プロセッサ、キャッシュシステム及びキャッシュメモリ
JP3733604B2 (ja) キャッシュメモリ
JPS61248145A (ja) メモリ制御装置
JPH0156411B2 (ja)
JPS6032220B2 (ja) 情報処理装置
JP2972451B2 (ja) ハードウェア制御ソフトウェアによるキャッシュメモリ制御方式
EP0400851A2 (en) Efficient cache utilizing a store buffer
JPH02188849A (ja) キャッシュメモリ方式
JPH05257807A (ja) キャッシュメモリ制御装置
JPH06266623A (ja) キャッシュメモリ及びキャッシュメモリ制御方法
JPH09282231A (ja) ライトバック型キャッシュ装置
JP3074897B2 (ja) メモリ回路
JPH07152650A (ja) キャッシュ制御装置
JP2001043132A (ja) キャッシュメモリの制御方法
JPH0342744A (ja) キャッシュ・メモリを有する計算システムおよびキャッシュ・メモリ管理方法
JPH10133948A (ja) キャッシュメモリ装置
JPH0239253A (ja) バッファメモリのデータ格納制御方式

Legal Events

Date Code Title Description
EXPY Cancellation because of completion of term