JPS61127050A - メモリ制御方式 - Google Patents

メモリ制御方式

Info

Publication number
JPS61127050A
JPS61127050A JP59249307A JP24930784A JPS61127050A JP S61127050 A JPS61127050 A JP S61127050A JP 59249307 A JP59249307 A JP 59249307A JP 24930784 A JP24930784 A JP 24930784A JP S61127050 A JPS61127050 A JP S61127050A
Authority
JP
Japan
Prior art keywords
data
write
memory
address
cache
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
JP59249307A
Other languages
English (en)
Other versions
JPH0156411B2 (ja
Inventor
Kazuo Taki
和男 瀧
Akizumi Mitsuishi
三石 彰純
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 JP59249307A priority Critical patent/JPS61127050A/ja
Publication of JPS61127050A publication Critical patent/JPS61127050A/ja
Publication of JPH0156411B2 publication Critical patent/JPH0156411B2/ja
Granted legal-status Critical Current

Links

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Abstract

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

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は、メモリをスタックとして使用する場合の連続
的データ書き込みの高速化に適した書き込み制御方式を
有するライト・スワップ方式のキャッシュメモリ装置に
関するものである。
キャッシュメモリ装置の方式として、CPUからデータ
の書き込みを行なう際にデータをキヤ。
シュメモリ内と主記憶の両方に同時に書き込むうイト・
スル一方式と、書き込み時にはキャッシュメモリ内にだ
け書き込みを行い、書き込んだ領域が後になって別のア
ドレスのキャッシュアクセスに使用されたときに、以前
のデータを主記憶へ書き出すライト・スワップ方式の2
つがある。本発明は後者のライト・スワップ方式に属す
るもので、主記憶からキャッシュメモリへのむだなデー
タの読み込みを削減するものである。
r従来の技術〕 従来のライト・スワップ方式のキャッシュメモリの書き
込み方式について、図を用いて説明する。
第7図はキャッシュメモリ装置の1例の構成図である。
アドレス・レジスタ30は、キャッシュメモリをアクセ
スする場合のアドレスを保持するレジスタで、上位アド
レス部31.中位アドレス部32゜下位アドレス部33
の3つの部分から成る。データ・メモリ20は、データ
を記憶するためのメモリで、その記憶容量(語数)は中
位アドレス部32.下位アドレス部33を合わせたビッ
ト数で指定できるだけの大きさを持つ。データ・メモリ
20中のデータは1語ずつ管理されるのではなく、下位
アドレス部33のビット数で指定できる大きさの、ブロ
ックと呼ぶ単位でヒント、ミスヒツトの管理や主記憶と
の間のデータ入れ替えの管理が行なわれる。以後本例で
は、1ブロツクの大きさを4語として説明を行なう。デ
ータ・メモリ20中には、中位アドレス部32のビット
数で指定できるだけの個数のブロックが存在する。
ディレクトリ・メモリ10は、データ・メモリ20の中
の各ブロックが有効か無効か、どこのアドレスに対応す
るデータが置かれているのか、主記憶からキャッシュに
読み込まれた後に内容が変更されたか否かの情報を保持
し、キャッシュメモリの読み書き時に、ヒツトかミスヒ
ツトか、主記憶との間にデータ転送の必要があるか否か
の管理に使用される。ディレクトリ・メモリ10は、を
効フラグ部11.変更フラグ部12.キーアドレス部1
3から構成される。ディレクトリ・メモリ10のエント
リ数は、データ・メモリ20中のブロックの個数に等し
い。比較器14は、アドレス・レジスタ30中の上位ア
ドレス部31の値と、キーアドレス部13の値を比較し
、その結果がキャッシュのヒツト、ミスヒントの判定に
使用される。この場合、ディレクトリ・メモリ10は中
位アドレス部32を用いて検索される。カウンタ34は
、下位アドレス部33と同じビ・7ト輻を持ち(本例で
は2ビツトとする)、ゼロクリア、下位アドレス部33
からの値のロード、+1の機能を持ち、データ・メモリ
20のブロックの中味(4語)を順次主記憶へ書き出す
処理(ライトパンク)および主記憶からデータ・メモリ
20のブロックへ順にデータを読み込む場合の、最下位
(2ビツト)のアドレス生成に使用される。データ選択
器35は、データ・メモリ20および主記憶へ供給する
アドレスの最下位(2ビツト)として、下位アドレス部
33の値を使うか、カウンタ34の値を使うかを決定す
るが、通常は下位アドレス部33の方を選択しているも
のとする。書き込みデータ・レジスタ21は、キャッシ
ュメモリに書き込むべきデータを保持するレジスタであ
る。主記憶インタフェース24は、主記憶とのデータ、
アドレス。
制御信号の受は渡しを行なう部分であり、アドレス情報
として中位、下位アドレスについては、データ・メモリ
20に供給されているものと同じ情報が、上位アドレス
については、本例ではキーアドレス部の内容がそれぞれ
使用される。制御回路40は、キャッシュ命令レジスタ
41に置かれたキャッシュ命令に従いキャッシュメモリ
の読み書きを開始し、ディレクトリ・メモリ10の内容
にしたがい、ヒツト、ミスヒツトの別、主記憶との間の
データ転送の要否を判定して、判定結果にしたがった制
御手順を実行する。なお、第7図において、22は読み
出しデータ・レジスタ、23はキャッシュ・データバス
である。
第8図は、キャッシュ命令として書き込み(ライト)が
指定された場合の、制御手順の流れ図である。ディレク
トリ・メモリ10の有効フラグと変更フラグの値、およ
び比較器14の比較結果により処理が分岐する。流れ図
の中で枝1から枝4は、各々次の場合を示す。枝1は当
該ブロック中に有効なデータがなくキャッシュ・ミスヒ
ツトとなった場合、技2はキャッシュ・ヒツトの場合、
技3は当該ブロック中に有効なデータが存在するがキー
アドレスが異なるためにミスヒツトとなった場合で、か
つブロックの内容が主記憶から持って来られた後に変更
を受けておらず(変更フラグ=0)主記憶へ書き戻す必
要のない場合、枝4は枝3と同様のミスヒツトの場合で
あるが変更フラグが1でありブロックの内容を主記憶へ
ライトバックする必要のある場合である。
各々の場合の制御手順について説明する。枝4の場合は
、データ・メモリ20の当該ブロックには、別のアドレ
スに対応する有効なデータが存在するため、ます゛ブロ
ックの内容4語を主記憶へ書き戻す。この処理が第8図
の枠71の処理である。こうしてブロックを空にした後
枠72の処理で令書き込もうとしている1語の書き込み
を行なう。次に枠73、74でディレクトリ・メモリ1
0の内容を更新する。最後に枠75で、ブロック内の残
り3語に、主記憶のしかるべきアドレスからデータを読
み込み、処理を終了する。枠71の処理を詳細化したの
が第9図である。ブロック内の4語のデータを順次読み
出し主記憶へ書き込むために1ずつアドレスを変化させ
る必要があるが、この目的で第7図のカウンタ34を使
用する。枠75の処理を詳細化したのが第10図である
。第8図の枠72で書き込みを行ったアドレスを除く同
一ブロック内の3語について、主記憶からデータを読み
込むために、同じくカウンタ34を用いる。第9図との
違いは、カウンタの初期値としてはじめにアドレスレジ
スタの下位アドレス部をロードし、それを1増加しては
主記憶読み出しのための下位アドレスとして使用するこ
とである。
枝1および3の処理は、枝4の処理から枠71の処理を
除いたものに全く等しい。
以上に述べたような従来例におけるキャッシュメモリ書
き込みの制御手順を用いると、メモリをスタックとして
使用する場合でかつスタックの先頭につづけてデータを
書き出して(ブツシュして)ゆく場合に、明らかに不要
な主記憶の読み出しが発生する。この様子を図を用いて
説明する。
第11図はメモリをスタックとして使用する場合の概念
図である。書き込み前の図では、スタックの先頭は10
01 (16)番地にあり、これから1002(16)
番地にデータの書き込みを行おうとするところである 
((16)は16進表示を示す)。破線はキャッジ1.
メモリのブlニドツクの境界を示す。またキャッシュメ
モリには、異なるアドレスに対応する有効なデータで変
更フラグ=1のものが存在しているものとする。100
2 (16)番地への書き込みを実行すると、キャッシ
ュメモリはミスヒツトを起こし、第8図の枝4の制御手
順が実行されて、まずブロック内の元のデータ4語が主
記憶へ書き戻され、次に1002 (16)番地へ書き
込むべきデータが当該ブロックに書き込まれ、ディレク
トリ・メモリ10が更新され、そしてブロック内の残り
の3語が主記憶から読み込まれる。第11図の書き込み
後の図は、斜線が主記憶から読み込まれたデータを示し
、格子縞が書き込まれたデータを示す。
次に1003 (16)番地への書き込みを行なうと、
キャッシュメモリはヒツトし、第8図の枝2の制御手順
が実行されて、データの書き込みと変更フラグのセット
だけが行われ、第11図の書き込み後の図の1003 
(16)番地は、斜線から格子縞に変わる(第12図の
書き込み前の図)。次に1004 (16)番地へ書き
込みを行なうと、再びミスヒツトが起こり、第8図枝4
の制御手順が実行され°ζ、第12図の書き込み後の図
のように、1004 (16)には書き込みデータが、
1005 (16)〜1007 (、16)番地には主
記憶から読み込まれたデータが存在することになる。こ
うして書き込みをくり返し、1002 (16)から1
000 (16)番地までの12語に書き込みを完了し
た時の図が第13図である。1002 (16)から1
000 (16)番地までに書き込んだデータが存在し
、1000 (16)  、 1001 (16)  
、 100E(16)  、 100F(16)番地に
は自動的に主記憶から読み込まれたデータが存在してい
る。この状態でスタックの先頭は1000 (16)番
地であり、それより大きいアドレスのデータはスタック
を利用する者にとって意味のないデータである。またこ
こで注意するべきことは、1002 (16) 、 1
004 (16) 、1008  (16) 。
100C(16)番地の書き込み時にはキャッシュはミ
スヒツトして、主記憶からそれぞれ3語ずつ合計12語
のデータが読み込まれたが、その内の8語、番地でいう
と1003 (16) 、 1005 (16) 、 
1006 (16) 。
1007 (16) 、 1009 (16) 、 1
00A (16) 、 100B (16) 。
1000 (16)番地のデータは、使用されないまま
書き込みデータが上書きされていることである。さらに
スタック利用の意味上、不要な100E(16) 。
100F (16)番地のデータを含めて、10語もの
不要なデータが主記憶から読み込まれている。
以上に述べた各アドレスへのデータ書きこみの際のヒツ
ト、ミスヒントの別、そのとき起動されたキャッシュ制
御手順の種別、主記憶への書き出し、主記憶からの読み
込みの語数をまとめたものが第1表である。キャッシュ
メモリへの12語のデータ書き込みに対して、12語の
主記憶からのデータ読み込みが発生し、その内の10語
のデータは上に述べたとおりむだな読み込みとなってい
る。
第1表 メモリをスタックとして利用する場合に、スタックの先
頭が一時的なデータ置き場であるときはスタックは絶え
ず伸びたり縮んだりして、上に述べたような主記憶から
のむだなデータの読み込みというものを規定することは
難しいが、スタックにプログラムの実行制御情報などの
ある程度大きな一連のデータをブツシュする場合には、
先に述べたとおり明らかにむだと分かる主記憶からのデ
ータの読み込みが発生し、主記憶アクセスのために余分
な時間がかけられている。
〔発明が解決しようとする問題点〕
本発明は、上述の従来のライト・スワップ方式のキャッ
シュメモリ装置において、メモリをスタックとして使用
する場合に、ある程度大きな一連のデータをブツシュす
る際に、明らかにむだと分かる主記憶からのデータの読
み込みが発生し、主記憶アクセスのために余分な時間が
かかるという欠点を改善するものである。
〔問題点を解決するための手段〕
本発明においては、上記問題点を解決するために以下の
ごとき手段を講する。すなわち、データの書き込みを行
う際に該データをキャッシュメモリ内のみに書き込み、
該書き込んだ領域が後に別のアドレスのキャッシュアク
セスに使用されるときに、該領域に書き込まれているデ
ータを主記憶に書き戻すライト・スワ・ノブ方式のキャ
ッシュメモリにおいて、第1の書き込み手段と第2の書
き込み制御手段を備え、メモリをスタックとして用いス
タックの先頭へデータの連続的書き出しを行なう場合に
、第1語の書き出しに第1の制御手段を用い、第2語以
後の書き出しに第2の制御手段を用い、第1の制御手段
においては書き込みアドレスのデータセルを含むブロッ
ク、すなわちデータの管理単位がキャッシュメモリ内に
存在しない場合には、当該ブロックをキャッシュメモリ
内に確保した後に、書き込みデータを当該アドレスのデ
ータセルに書き込みを行ない、当該ブロック内の他のデ
ータセルについては主記憶からデータの読み込みを行な
う通常のライト・スワップ方式の制御手段を実施し、第
2の制御手段においては書き込みアドレスのデータセル
を含むブロックがキャッシュメモリ内に存在しない場合
には、当該ブロックをキャッシュメモリ内に確保した後
に、書き込みデータを当該アドレスのデータセルにただ
ちに書き込みを行ない、当該ブロック内の他のデータセ
ルについては主記憶からデータを読み込むことをしない
まま当該ブロックを有効化せしめるメモリ制御方式を提
供する。
それにより、ライト・スワップ方式のキャッシュメモリ
装置において、メモリをスタックとして使用する場合に
、スタックへの連続的なデータ書き込みの際に生ずる主
記憶からのデータ読み込みに関するむだな時間を削減で
き、スタックへの連続的なデータ書き込みの高速化を図
ることができる。
以下に実施例を示し、これを用いて本発明をさらに詳細
に説明する。
〔実施例〕
以下本発明の1実施例について図を用いて説明を行なう
。第1図は本発明の実施例の1つであるキャッシュメモ
リ装置の構成図である。本実施例は、第7図から第13
図及び表1を用いて説明した従来のキャッシュメモリ装
置の1例に対して、ライト・スタックと呼ぶ新たなキャ
ッシュ命令を追加し、その命令の制御手順を実現するた
めのライト・スタック用制御回路50.ライトスタック
用キャッシュ命令デコーダ47を付加したものである。
制御回路43.キャッシュ命令デコーダ46は、第7図
の制御回路40.キャッシュ命令デコーダ45に相等す
るものであり、第8図に制御手順の流れ図を示したキャ
ッシュ命令の「ライl−Jをはじめとする従来のキャッ
シュ命令の制御手順を実現する。
但し、キャッシュ命令レジスタ41にキャッシュ命令「
ライト・スタック」が置かれた場合には、キャッシュ命
令デコーダ46は命令解読信号を制御回路43へ転送せ
ず、制御回路43は制御信号線44とディレクトリ・メ
モリ10の有効フラグ部11、変更フラグ部12ヘデー
タを送出する信号線を開放して、キャッシュメモリ装置
の制御権をライト・スタック制御回路50へ渡す。ライ
ト・スタック用キャッシュ命令デコーダ47は、ライト
・スタック命令を解読し、命令解読信号をライト・スタ
ック制御回路50へ送出し、ライト・スタック制御回路
50は、制御信号線51を通じて制御信号を送出し、ラ
イト・スタックのキャッシュ命令に対応する制御手順を
実行する。第1図中の他の構成要素は第7図のものと同
じである。
アドレス・レジスタ30は、キャッシュメモリをアクセ
スする場合のアドレスを保持するレジスタで上位アドレ
ス部31.中位アドレス部32.下位アドレス部33の
3つの部分から成る。データ・メモリ20はデータを記
憶するためのメモリで、その記憶容量(語数)は中位ア
ドレス部32.下位アドレス部33を合わせたビット数
で指定できるだけの大きさを持つ。データ・メモリ20
中のデータはI KMずつ管理されるのではなく、下位
アドレス部33のビット数で指定できる大きさの、プロ
・7りと呼ぶ単位でヒツト、ミスヒ・7トの管理や主記
憶との間のデータ入れ替えの管理が行なわれる。以後本
例では、1ブロツクの大きさを4語として説明を行なう
。データ・メモリ20中には、中位アドレス部32のビ
ット数で指定できるだけの個数のブロックが存在する。
ディレクトリ・メモリ10は、データ・メモリ20の中
の各ブロックが有効か無効か、どこのアドレスに対応す
るデータが置かれているのか、主記憶からキャッシュに
読みこまれた後に内容が変更されたか否かの情報を保持
し、キャッシュメモリの読み書き時に、ヒントかミスヒ
ツトか、主記憶との間にデータ転送の必要があるか否か
の管理に使用される。ディレクトリ・メモリ10は、有
効フラグ部11.変更フラグ部12.キーアドレス部1
3から構成される。ディレクトリ・メモリのエントリ数
は、データ・メモリ20中のブロックの個数に等しく両
者ともアドレス・レジスタの中位アドレス部32により
アドレス指定される。比較器14は、アドレス・レジス
タ30中の上位アドレス部31の値と、キーアドレス部
13の値を比較し、その結果がキャッシュのヒツト、ミ
スヒントの判定に使用される。
カウンタ34は、下位アドレス部33と同じビット幅を
持ち(本例では2ビツトとする)、ゼロクリア。
下位アドレス部33からの値のロード、+1の機能を持
ち、データ・メモリのブロックの中味(4語)を順次主
記憶へ書き出す処理(ライト・バンク)および主記憶か
らデータ・メモリ20のブロックに順にデータを読み込
む場合の、最下位(2ビツト)のアドレス生成に使用さ
れる。データ選択器35は、データ・メモリ20および
主記憶へ供給するアドレスの最下位(2ビツト)として
下位アドレス部33の値を使うかカウンタ34の値を使
うかを決定するが、通常は下位アドレス部33の方を選
択しているものとする。書き込みデータ・レジスタ21
は、キャッシュメモリに書き込むべきデータを保持する
レジスタである。主記憶インタフェース24は、主記憶
とのデータ3アドレス、制御信号の受は渡しを行なう部
分であり、アドレス情報として、中位。
下位アドレスについてはデータ・メモリに供給されてい
るものと同じ情報が、上位アドレスについては、キーア
ドレス部13の内容がそれぞれ使用される。
第2図は、第1図のライト・スタック制御回路で実現す
る制御手順の流れ図である。ディレクトリ・メモリ10
(番号は以後第1図または第2図中のものを指す)の有
効フラグ部11と変更フラグ部12の値、および比較器
14の比較結果により制御手順の流れが分岐する。流れ
図中で枝5から技8は、各々次の場合を示す。枝5は、
アドレス・レジスタ30の中位アドレス部32で指定さ
れるブロック中に有効なデータがなくキャッシュ・ミス
ヒツトとなった場合、枝6はキャッシュ・ヒツトの場合
技7は当該ブロック中に有効なデータが存在するがキー
アドレスの比較結果が不一致でミスヒツトとなった場合
で、かつブロックの内容が主記憶から持って来られた後
に変更を受けておらず(変更フラグ=0)主記憶へ書き
戻す必要のない場合。
技8は枝7と同様のミスヒツトの場合であるが変更フラ
グが1でありブロックの内容を主記憶へライトバックす
る必要のある場合である。
各々の場合の制御手順について説明する。枝8の場合は
、データ・メモリ20の当該ブロックには、異なるキー
アドレスの有効なデータが存在するため、まずブロック
の内容4語を主記憶へ書き戻す。
この処理が第2図の枠101の処理である。こうして書
き込み対象ブロックを確保した後、枠102の処理で書
き込みデータ・レジスタ21中のデータをデー多・メモ
リ20中の当該ブロック内の指定アドレスのデータセル
に書き込む。この場合のアドレスとして、ブロックを指
定するのに中位アドレス部32が、ブロック内のデータ
セルを指定するのに下位アドレス部33が使用される。
次に枠103ではディレクトリ・メモリ10のキーアド
レス部13に上位アドレス部31の内容を書き込み、枠
104でディレクトリ・メモリ10の有効フラグと変更
フラグを共に1に書き替え当該ブロックの有効化を完了
し処理を終了する。ここで述べた処理では、ブロック内
の4語のデータセルのうち、枠102で書き込みを行っ
た以外の3語のデータセルについては、従来例のように
主記憶から対応するアドレスの内容を読み込むことはし
ていないので、以前の異なるキーアドレスで同ブロック
を使用していた時のデータがそのまま残っている状態で
同ブロックが有効化されている。これら3語のデータは
、利用者にとって意味のないデータであるが、引きつづ
くライト・スタックのキャッシュ命令が実行された時に
、正しいデータにより上書きされるようにライト・スタ
ックのキャッシュ命令を使うことが必要とされる。キャ
ッシュ命令の使い方については後で詳しく述べる。枠1
01の処理内容を詳細に示したのが第3図である。ブロ
ックの内容を主記憶に書き出すためには、ブロック内の
4語を順に読み出しては、アドレス情報と書き込み制御
信号を添えて主記憶インターフェイス回路24へ送出す
る。この場合アドレスの下位2ビ・ノド (ブロック内
のデータセルアドレスに相等)を生成するためにカウン
タ34を使用する。第3図の枠1011でまずカウンタ
をゼロクリアし、枠1012で通常下位アドレス部33
を選択しているデータ選択器35をカウンタ34側に切
替える。この状態で枠1014でデータ・メモリ20を
読み出すと、中位アドレス部32で指定されるブロック
の中の、データ選択器35の出力で指定されるデータセ
ルが読み出される。これをキャッシュ・データバス23
を経由して主記憶インタフェース24へ送ると共に、主
記憶書き込みの制御信号を主記憶インタフェース24へ
送出すると、主記憶書き込みの上位アドレスとしてはデ
ィレクトリ・メモリ10のキーアドレス部13の値が、
中位。
下位アドレスとしてはデータ・メモリ20に供給されて
いるものと同じ値が使われて主記憶への書き込みが行な
われる。この後枠1015でカウンタを1だけ増加させ
て、再び枠1014の処理を実行すると、ブロック内の
次のデータセルの中味が、主記憶の次のアドレスに書き
込まれる。こうして枠1014゜1015の処理を4回
くり返すとブロックの内容がすべて主記憶に書き出され
るので、最後に後処理として枠1016でデータ選択器
35を下位アドレス部33を選択するように戻して処理
を終了する。
第2図枝5および7の処理は、キャッシュ・ミスヒント
ではあるが当該ブロック中の古いデータを主記憶へ書き
戻す必要がないため、枝8の処理・ から枠101のラ
イトバックの処理を除いたものと等しくなっている。枠
81〜83の各処理は、枠102〜104の処理と同じ
である。技6の処理は、キャッシュ・ヒツトの場合の処
理であり、プロ・ツク中に書き込むべきデータセルがす
でに存在しているため、枠91でデータの書き込みを行
ない(枠102と同じ処理)枠92で変更フラグを1に
して処理を終了する。
以上に述べたライト・スタックのキャッシュ命令を実現
する制御手段を導入することにより、メモリをスタック
として使用しかつスタ・ツクの先頭につづけてデータを
書き出して(プ・ノシュして)ゆく場合に、CPUから
キャッシュメモリに第1語めのデータを書き込む場合に
は、キヤ・ノシュ命令として従来例に示したライトを用
い、第2語め以後のデータを書き込む場合には、本例で
示したライト・スタックのキャッシュ命令を使用するこ
とにより、不要な主記憶の読み出し回数を減少させ、デ
ータ書き込みの高速化を図ることができる。
このとき、−見して第1語めのデータ書き込みにもライ
ト・スタックのキヤ・7シユ命令が適用可能なように見
られるが、適用可能なのは第1語めのアドレスがキャッ
シュのブロックの先頭と一致した場合に限られ、それ以
外の場合にライト・スタック命令を通用すると、以前に
スタックへ格納され主記憶上に存在しているデータが、
キヤ・ノシエメモリに読み込まれないという不都合が生
じ得る。
このため、本例では、第1語口の書き込みに際して無条
件にライトのキャッシュ命令を使用した。
以下では、ライト・スタック命令の使い方と、それを用
いてスタックにデータを書き出してゆく場合のスタック
上のデータの状態、およびその時に主記憶との間で受は
渡しされるデータ語数について第2表および第4図〜第
6図を用いて説明す第2表 第2表は、メモリ1002 (16)番地((16)は
16進数を示す)から1000 (16)番地まで連続
してデータを書き込んでゆく場合の、使用するキャッシ
ュ命令の種別、ヒントかミスヒントかの別、処理手段の
流れ図のどの枝が使用されるかの別、各キャッシュ命令
実行時の主記憶への書き出し回数。
主記憶からの読み込み回数についてまとめたものである
ここでキャッシュメモリの各ブロックには異なるキーア
ドレスを持つ有効なデータが存在しており、キャッシュ
・ミスヒツトを起こすとブロックの内容のライトバック
が必要であるものとする。
また各ブロックの境界アドレスは、第4図の破線で示し
たところにあるものとする(これらの条件は従来例で説
明したものと同じである)。スタックへの書き込みを開
始する前のスタックの先頭は1001 (16)番地で
あり、1001 (16)以下のアドレスのデータは主
記憶中に存在しているものとする。
このとき1002 (16)番地からスタックへデータ
を書き込んでゆくときの最初に使用するキャッシュ命令
は「ライト」でなくてはならず、2つめのデータの書き
込み以後は「ライト・スタック」命令が使える。これら
の命令の使い分けは第2表に示したとおりである。10
02 (16)番地に対してライト命令を実行すると、
キャッシュ・ミスヒツトが発生して、従来例の第8図の
枝4の制御手段が実行され、はじめにブロック中の古い
データ4語が主記憶に書き戻され、次に1002 (1
6)番地−1書き込むべきデータがブロック内の対応す
るデータセルに書かれ、最後に1000 (16) 、
 1001 (16) 、 1003(16)の各番地
のデータが主記憶からブロック内の対応する各データセ
ルへ読み込まれるうこのときの状態を示したのが第4図
の書き込み後の図である。ここで斜線で示した部分が主
記憶から読み込まれたデータ、格子縞で示した部分がラ
イト命令で書き込まれたデータである。ここでなぜライ
ト・スタックでなくライト命令を使う必要があるかを説
明する。1002 (16)番地に対して仮にライト・
スタック命令を実行したとすると、書き込み後の姿は、
斜線部分に主記憶からのデータ読み込みが行なわれない
ままブロックが有効化された状態である。この状態で1
000 (16)〜1003 (16)番地のどこをア
クセスしても、キャッシュメモリはヒツトする。100
3 (16)番地については引きつづくライト・スタッ
ク命令で書き込まれるデータが上書きされるので問題は
ないが、1000 (16) 。
1001 (16)の2つの番地については、一連のス
タック−・のデータ書き込みが終了した後のどこかの時
点で、「読み出し」のキャッシュ命令が実行される可能
性があり、このとき当該ブロック中には、主記憶の10
00 (16) 、 1001 (16)番地に存在し
ているデータが読み込まれておらず、「読み出し」のキ
ャッシュ命令に対して誤ったデータが取り出されてしま
うことになる。すなわち、スタックへデータ書き込みを
開始するアドレスが、ブロックの境界の直後(第4図で
は破線のすぐ下)である場合以外は、1つめのデータ書
き込みにライト命令を使うことが必要であり、さもない
とキャッシュ読み出し命令で正しいデータが取り出され
ない場合が生ずるのである。それでは次に2つめ以後の
スタックへの書き込みにライト・スタック命令がうまく
使用できることを説明する。1003 (16)番地へ
の書き込みでは、キャッシュ・ヒツトし、このときの処
理はライトでもライト・スタックでも変わりなく、実行
後のスタックは第5図の書き込み前の図のように100
3 (16)番地が斜線から格子縞(書き込まれたデー
タを示す)に変わる。次の1004 (16)番地にた
いするライト・スタック命令では、キャッシュ・ミスヒ
ツトとなり、第2図の枝8の制御手順が実行され、ブロ
ック内の古いデータ4語がライトバックされたあと、同
命令で書き込まれるべきデータがブロック中の1004
 (16)番地に対応するデータセルへ書き込まれ、そ
の後同ブロックは有効化されて、1005 (16)〜
1007 (16)番地に対応するデータセルには、主
記憶からの読み込みは行なわれず意味のないデータが残
ったままの状態である。しかしながら、これらのデータ
セルは、引きつづくライト・スタック命令が実行された
ときキャッシュ・ヒツトして、ただちにデータが上書き
される。こうして1000 (16)番地まで順にライ
ト・スタック命令により書き込みを行った後のスタック
の状態を示したのが第6図である。100C(16)〜
100F (16)番地までのブロックは、100C(
16)番地へ書き込みを行なったとき有効化されるが、
書き込みを行っていない100E(16) 、、 10
0F (16)の2つの番地に対応するブロック中のデ
ータセルには、主記憶の同番地とは異なるデータが存在
している。しかしながら、スタックの構造上、その先頭
(この場合1000 (16)番地)よりも大きいアド
レスに対してメモリの読み書きが発生することはないか
ら、100E(16) 、 100F(16)の2つの
番地はそのまま放置して問題ない。以上の一連の書き込
み処理について第2表を見ると、1002 (16) 
 、 1004 (16)  、 1008 (16)
 。
100C(16)の4つのアドレスについてキャッシュ
・ミスヒツトが発生しており、そのつど主記憶への4語
のライト八ツクが発生しているが、主記憶からの読み込
みは、1002 (16)番地に対してライト命令を実
行したときの3語だけとなっている。
この中で主記憶からのデータ読み込みのうちむだと分か
るものは、1003 (16)番地が読み込みのすぐ次
のキャッシュ命令で上書きされてしまう1つだけで、従
来例の場合より大幅に減少している。
主記憶からの読み込み回数を従来例の第1表と比べると
、12回のスタックへのデータ書き込みを実行した場合
に、従来例では合計12回のメモリからのデータ読み込
みがあり、そのうち不要と分かるデータ読み込みが10
回、それに対し第2表のライト・スタック命令を使用し
た例では、主記憶からのデータ読み込みが3回でこの内
不要と分かるものが1回である。このように、スタック
への連続的なデータ書き込みを行なう場合、ライト命令
だけを使用するよりも、2つめ以後の書き込みにライト
・スタック命令を使う方が、主記憶からの不要なデータ
読み込みを大幅に削減できることが分かる。但し、1つ
めのデータ書き込みにはライト命令を使用することから
、連続的にスタックへ書き込むデータの量が小さい場合
、特にキャッシュメモリのブロックの大きさよりも小さ
い場合には、ライト・スタック命令を導入した効果は小
さくなる(ライト命令を使用しても変わらない場合が多
くなる)。
〔発明の効果〕
本発明によれば、上述のように、メモリをスタックとし
て使用し、その先端部分へ連続的にデータを書き込む場
合(特にキャッシュメモリのブロックの大きさよりも大
きなデータを書き込む場合)に、主記憶からの不要なデ
ータ読み込みが削減され書き込み時間が短縮されるとい
う効果が生じる。
例えば、LISPやPROLOGプログラムをファーム
ウェアで記述されたインタープリタを用いて解釈実行す
る場合に、実行制御情報をスタック・\格納する場合な
ど、主記憶上にとられたスタックへある程度大きな一連
のデータを連続書き込みする場合に、キャッシュ・ミス
ヒツトにともなう主記憶からキャッシュメモリへのむだ
なデータの読み込みを削減することができ、主記憶アク
セスに要する時間を短縮できるものであり、本発明はき
わめて有益である。
【図面の簡単な説明】
第1図は本発明の一実施例のキャッシュメモリ装置の構
成図、 第2図は第1図のライト・スタック制御回路で実現する
制御手順の流れ図、 第3図は第2図の流れ図における枠101の処理内容を
詳細に示す図、 第4図〜第6図は本発明の実施例においてスタックにデ
ータを書き出してゆく場合のスタック上のデータの状態
を示す図、 第7図は従来のキャッシュメモリ装置の一例の構成図、 第8図は従来のキャッシュメモリ装置において、キャッ
シュ命令として書き込みが指定された場合の制御手順の
流れ図、 第9図は第8図の枠71の処理を詳細に示す図、第10
図は第8図の枠75の処理を詳細に示す図、第11図〜
第13図は従来のキャッシュメモリ装置において、メモ
リをスタックとして使用し、スタックにデータを書き出
してゆく場合のスタック上のデータの状態を示す図。 (主な符号) 10・・・ディレクトリ・メモリ 11・・・有効フラグ部 12・・・変更フラグ部 13・・・キーアドレス部 14・・・比較器 20・・・データ・メモリ 21・・・書き込みデータ・レジスタ 22・・・読み出しデータ・レジスタ 23・・・キャッシュ・データバス 24・・・主記憶インタフェース 30・・・アドレス・レジスタ 31・・・上位アドレス部 32・・・中位アドレス部 33・・・下位アドレス部 34・・・カウンタ 35・・・データ選択器 41・・・キャッシュ命令レジスタ 43・・−制御回路 44・・・制御信号線 46・・・キャッシュ命令デコーダ 47・・・ライト・スタック用キャッシュ命令デコーダ
50・・・ライト・スタック用制御回路51・・・制御
信号線 特許出願人 工業技術院長 等々力 連化 理 人 弁
理士 玉蟲久五部(外2名)第2図 第3図 第 4 図 書込前□ 會込後 第 5 図 書込前□ 嘗込後 第9図 第1O図 第11図 1込前□ 嘗込後 第 12  口 會込荊 □ 言送後 第 13  図

Claims (1)

    【特許請求の範囲】
  1. データの書き込みを行う際に該データをキャッシュメモ
    リ内のみに書き込み、該書き込んだ領域が後に別のアド
    レスのキャッシュアクセスに使用されるときに、該領域
    に書き込まれているデータを主記憶に書き戻すライト・
    スワップ方式のキャシュメモリにおいて、第1の書き込
    み制御手段と第2の書き込み制御手段を備え、メモリを
    スタックとして用いスタックの先頭へデータの連続的書
    き出しを行う場合に、第1語の書き出しに第1の制御手
    段を用い、第2語以後の書き出しに第2の制御手段を用
    い、第1の制御手段においては、書き込みアドレスのデ
    ータセルを含むブロック、すなわちデータの管理単位が
    キャッシュメモリ内に存在しない場合には、当該ブロッ
    クをキャッシュメモリ内に確保した後に、書き込みデー
    タを当該アドレスのデータセルに書き込みを行ない、当
    該ブロック内の他のデータセルについては主記憶からデ
    ータの読み込みを行う通常のライト・スワップ方式の制
    御手順を実施し、第2の制御手段においては、書き込み
    アドレスのデータセルを含むブロックがキャッシュメモ
    リ内に存在しない場合には、当該ブロックをキャッシュ
    メモリ内に確保した後に、書き込みデータを当該アドレ
    スのデータセルにただちに書き込みを行ない、当該ブロ
    ック内の他のデータセルについては主記憶からデータを
    読み込むことをしないまま当該ブロックを有効化せしめ
    ることを特徴とするメモリ制御方式。
JP59249307A 1984-11-26 1984-11-26 メモリ制御方式 Granted JPS61127050A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP59249307A JPS61127050A (ja) 1984-11-26 1984-11-26 メモリ制御方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP59249307A JPS61127050A (ja) 1984-11-26 1984-11-26 メモリ制御方式

Publications (2)

Publication Number Publication Date
JPS61127050A true JPS61127050A (ja) 1986-06-14
JPH0156411B2 JPH0156411B2 (ja) 1989-11-30

Family

ID=17191037

Family Applications (1)

Application Number Title Priority Date Filing Date
JP59249307A Granted JPS61127050A (ja) 1984-11-26 1984-11-26 メモリ制御方式

Country Status (1)

Country Link
JP (1) JPS61127050A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6151661A (en) * 1994-03-03 2000-11-21 International Business Machines Corporation Cache memory storage space management system and method
JP2004303232A (ja) * 2003-03-20 2004-10-28 Matsushita Electric Ind Co Ltd データメモリキャッシュ装置及びデータメモリキャッシュシステム

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6151661A (en) * 1994-03-03 2000-11-21 International Business Machines Corporation Cache memory storage space management system and method
JP2004303232A (ja) * 2003-03-20 2004-10-28 Matsushita Electric Ind Co Ltd データメモリキャッシュ装置及びデータメモリキャッシュシステム

Also Published As

Publication number Publication date
JPH0156411B2 (ja) 1989-11-30

Similar Documents

Publication Publication Date Title
US4593354A (en) Disk cache system
US20070016719A1 (en) Memory device including nonvolatile memory and memory controller
JPS5876957A (ja) 記憶階層制御方法
JPH07105691A (ja) 記憶装置の書き込み/消去および管理方法
JPH04205041A (ja) マルチプロセッサシステム
JPS6111865A (ja) メモリアクセス制御方式
JPH06349286A (ja) フラッシュメモリ用書き込み制御方法および制御装置
JPH0115903B2 (ja)
JPS61127050A (ja) メモリ制御方式
JPH0255812B2 (ja)
JPH0784886A (ja) キャッシュメモリ制御方法およびキャッシュメモリ制御装置
JPH06266623A (ja) キャッシュメモリ及びキャッシュメモリ制御方法
JPH08137753A (ja) ディスクキャッシュ装置
JP3190661B2 (ja) 情報処理システム
JPH10133948A (ja) キャッシュメモリ装置
US7234022B2 (en) Cache accumulator memory for performing operations on block operands
JPS60221855A (ja) リプレース制御装置
JP2002222120A (ja) メモリ・アクセス管理装置並びに管理方法
JPH07152650A (ja) キャッシュ制御装置
JPS61214039A (ja) キヤツシユメモリ
JPS62297948A (ja) デ−タベ−スの障害回復方式
JP3362031B2 (ja) 記憶装置の書き込み/消去方法
JPH02188849A (ja) キャッシュメモリ方式
JPH05100926A (ja) 入出力管理方式
EP0400851A2 (en) Efficient cache utilizing a store buffer

Legal Events

Date Code Title Description
EXPY Cancellation because of completion of term