JPH02236748A - ストア・バッファ - Google Patents

ストア・バッファ

Info

Publication number
JPH02236748A
JPH02236748A JP1059259A JP5925989A JPH02236748A JP H02236748 A JPH02236748 A JP H02236748A JP 1059259 A JP1059259 A JP 1059259A JP 5925989 A JP5925989 A JP 5925989A JP H02236748 A JPH02236748 A JP H02236748A
Authority
JP
Japan
Prior art keywords
store
request
address
output
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.)
Pending
Application number
JP1059259A
Other languages
English (en)
Inventor
Hitoshi Takagi
均 高木
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 JP1059259A priority Critical patent/JPH02236748A/ja
Publication of JPH02236748A publication Critical patent/JPH02236748A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Abstract

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

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は情報処理装置において使用されるキャッシュ・
メモリ装置におけるストア・バッファに関する. 〔従来の技術〕 今日の情報処理装置の多くは、メモリ・アクセスタイム
の向上を図るため、キャッシュ・メモリ装置を採用して
いる.また、そのうち、パイプライン処理方式を採用し
ているものの多くは、ストア要求にかかるアドレスとデ
ータを一時的にキャッシュ・メモリとは独立に保持して
おくストア・バッファと呼ばれる記憶手段を有する.ス
トア・バンファが必要な理由は、一つには、ストア要求
は、メモリ・リード要求よりも低い優先度が与えられて
おり、待ち合わせを行わなければならないこと、もう一
つには、ストア・アドレスの生成とストア・データ作成
の時間的なずれを調整するためである. ストア・バッファに蓄えられたストア要求はメモリ・リ
ード要求の間をぬってキャッシュ・メモリへ反映される
ことになる. もし、後続のメモリ・リード要求が未だキャッシュ・メ
モリへ反映していないストア・バッファ中のストア要求
のデータを必要とする場合、そのメモリ・リード要求に
対するデータとして、キャッシュ・メモリ中の古いデー
タを返すことは避けなければならない.このため、メモ
リ・リード要求゛に応答してキャッシュ・メモリを読み
出す際、そのメモリ・アドレスとストア・バッファ中の
ストア要求のアドレスとを比較し、もし、リード・アド
レスとストア・アドレスの一致を検出したら、リード動
作を一時中止して、ストア・バッファ中のストア要求の
キャッシュ・メモリへの反映を行う.ストア・バッファ
内のキャッシュ・メモリへの反映可能な要求(アドレス
とデータが揃っているストア要求)の処理が終了した時
点で、先のリード要求の処理を再試行し、命令の実行上
の矛盾が生じないように制御する. このように、ストア・バッファ内のストア要求のキャッ
シュ・メモリへの反映は以下の状態にキャッシュ・メモ
リがなった時である. (1)リード要求がない. (2)リード・アドレスとストア・バッファ内にあるス
トア・アドレスが一致した場合。
〔発明が解決しようとする問題点〕
ところが、今日の情報処理装置では、一つの命令に対し
て、必ず命令の読み出しがあり、少なくとも六割程のオ
ペランド読み出しがあるため、リード要求が無くなると
いうことは殆どなく、ストア・バッファ内のストア要求
は、キャッシュ・メモリへの反映のタイミングをリード
・アドレスとストア・アドレスの比較一致に期待してい
るのが現状である. しかし、ストア・バッファの容量は通常4語乃至16語
程であり、リード・アドレスとストア・アドレスの一致
が長い期間無い場合、この容量一杯にストア要求が格納
されてしまうと、後続のストア命令が実行出来なくなる
.すると、リード要求も無くなってしまい、自然とスト
ア要求のキャッシュ・メモリへの反映が可能な状態とな
る.これは、命令実行の中断を引き起こすのみならず、
命令供給も中断することになる.従って、ストア・バッ
ファ一杯にストア要求が格納されないうちに、そのスト
ア要求を処理し得るようにすることが望まれる. ところで、メモリ・リード要求のアドレスに対する写し
がキャッシュ・メモリ中に存在しない場合(キャッシュ
・ミス)、後続の要求を止めて主記憶装置からキャッシ
ュ・メモリへデータのロード(ブロックロード)を行う
必要がある.この時、後続のリード要求は無いので前記
(1)の条件が成立し、ストア要求のキャッシュ・メモ
リへの反映は可能な筈であるが、ブロックロ一ド中のキ
ャソシュ・メモリのブロックへのストア要求があると、
ストア要求のキャッシュ・メモリへの反映後にブロック
ロードによるキャッシュ・メモリへの書き込みが起こり
、矛盾が生じる可能性がある.このため、従来はブロッ
クロード中にはストア要求のキャッシュ・メモリへの反
映を禁止する制限を設けている.それ故、ストア要求の
処理が一層遅延し、キャッシュ・ミスが多く発生するよ
うな局所性が低いアプリケーションでは特に上述のよう
な命令の実行および取り出しの中断が起こる可能性が高
く、性能低下の一因となっている.本発明はこのような
事情に鑑みて為されたものであり、その目的は、ブロッ
クロード中におけるストア要求のキャッシュ・メモリへ
の反映を可能とすることにより、ストア要求がストア・
バッファに長く留まるのを極力防止して情報処理装置の
性能を高めることにある. 〔問題点を解決するための手段〕 本発明は上記の目的を達成するために、ストア要求を直
ちにキャッシュ・メモリへ反映させず一時バッファリン
グする複数エントリを含むストア・バッファにおいて、
前記ストア・バッファのエントリに保持された各ストア
要求にかかるアドレスと前記キ中ツシェ・メモリへのリ
ード要求にかかるアドレスとを前記キャッシュ・メモリ
において予め定められた語数の管理単位であるブロック
単位で比較する比較手段と、前記リード要求がキャッシ
ュ・ミスを起こした時、前記比較手段の出力が不一致を
表示したエントリに対応するストア可能表示手段をセッ
トするセット手段と、前記キャッシュ・ミスを契機とす
る主記憶から前記キャッシュ・メモリへのデータ・ロー
ドの終了時、前記ストア可能表示手段の全てをリセット
するリセット手段と、主記憶から前記キャツシュ・メモ
リへのデータ・ロード中に、前記ストア可能表示手段が
セットされているエントリのストア要求を前記キャッシ
ュ・メモリへ反映する要求を発生する要求発生手段とを
有している. (作用〕 本発明のストア・バッファにおいては、ストア・バッフ
ァ中のエントリにストア要求が保持された状態でキャッ
シュ・メモリへのリード要求があると、比較手段が、そ
のエントリに保持されたストア要求にかかるアドレスと
そのリード要求にかかるアドレスとをブロック単位で比
較し、前記リード要求がキャッシュ・ミスを起こした場
合にセット手段が、前記比較手段の出力が不一致を表示
したエントリに対応するストア可能表示手段をセットし
、前記キャッシュ・ミスを契機として主記憶からキャッ
シュ・メモリへのデータ・ロードが行われると、要求発
生手段が、ストア可能表示手段がセットされているエン
トリのストア要求をキャッシュ・メモリへ反映する要求
を発生する.また、前記のデータ・ロードが終了すると
、リセット手段がストア可能表示手段の全てをリセット
してストア可能表示手段を初期の状態に戻す.〔実施例
〕 次に、本発明の実施例について図面を参照して詳細に説
明する. 第1図を参照すると、本発明の一実施例のストア・バッ
ファ33は、キャッシュ・ストア・アドレス・バッファ
(以下CSABと称す)1と、キャッシュ・ストア・デ
ータ・バッファ(以下csDBと称す)2と、アドレス
・セット・ポインタ(以下ASと称す)3と、アドレス
・リード・ポインタ(以下ARと称す)4と、データ・
セット・ポインタ(以下DSと称す)5と、データ・リ
ード・ポインタ(以下DRと称す)6七、非危険フラグ
群(以下NHFと称す》7と、要求発生回路(以下RG
と称す)32とを含んでいる.各々、次のような構成お
よび機能を持つ. ・AS3 ストア要求のアドレスを次に格納すべきCSABlのエ
ントリを指すポインタである.・AR4 現在までストア要求の反映が完了したCSABlのエン
トリの次のエントリを指すポインタである. ・CSAB 1 命令処理部から送出されるストア要求のアドレスを保持
する複数のエントリ(本実施例では例えば4個とする)
を有し、この複数のエントリにアドレスを保持すること
によりストア要求のアドレスのバッファリングを行う.
また、各エントリに保持されたアドレスとキャッシュ・
メモリへのリード要求のアドレスとを全ビットおよびブ
ロック単位で比較する比較手段,当該リード要求がキャ
ッシュ・ミスを起こしたことがキャッシュ・ミス信号C
ACMrSで通知された時、前記比較手段の出力が不一
敗を示すエントリに対応するNHF7のフラグに論理値
″1”をセットするセット手段などを有する. 第2図を参照すると、CSAB 1は、AS3の出力を
デコードするデコーダ203,AR4の出力をデコード
するデコーダ204,命令処理部からのストア要求のア
ドレスを一時保持するマスタラッチ群205.4個のラ
ッチから構成されるス.レープラッチ群206,スレー
ブラッチ群206の各ラッチの出力とリード要求アドレ
スとを比較する比較器207〜210,デコーダ204
のデコード結果に応じてスレーブランチ群206の全ラ
ッチの出力から1つの出力を選沢して後述するアドレス
・セレクタ9および主記憶装置へストア要求にかかるア
ドレスを出力するアドレス・セレクタ211,キャッシ
ュ・ミス信号CACM I Sと各比較器207〜21
0の出力とを入力とし、NHFT中の対応するフラグの
セット信号を発生ずるゲート212〜215とを含んで
いる.また第3図を参照すると、各々の比較器207〜
210は、スレーブランチ群206の対応するラッチの
出力に含まれるブロックアドレスとリード要求アドレス
の内のブロックアドレスとを比較する比較器301と、
各々に含まれるブロック内アドレスの比較を行う比較器
302と、比較器301と比較器302の出力の論理積
をとるアンドゲート303で構成されている.ラッチさ
れたストア要求アドレスとリード要求アドレスとのブロ
ックアドレスが等しい場合には比較器301の出力が論
理値“1”となり、これが第2図のゲート212〜21
5に加えられる。また、両アドレスが完全に等しい場合
にはアンドゲート303の出力が論理値“1”となる。
このアンドゲート303の出力は“ストア・チェック゛
に利用される.再び、第1図に戻って、ストア・バッフ
ァ33中の残りの要素を説明する。
・NHF7 CSAB l中のエントリに1対lで対応するフラグを
含む.各フラグには、CSABIの対応するエントリに
保持されたアドレスとリード要求アドレスとが同一ブロ
ックでないとき、キャッシュ・ミスのタイミングで第2
図のゲート212〜215の出力により論理値“1”が
セットされる。
また、キャッシュ・ミスを契機として実行されるブロッ
クロードの最後のリプライ(LRPLY)でNHF7の
全フラグはリセットされる。なお、第2図を参照すると
、NHF7は、各エントリ対応のフラグ群7゛と、デコ
ーダ204の出力に従ってフラグ群7′の全フラグの出
力から1つを選択してNHFoutとして出力するセレ
クタ222とで構成されている. ・CSDB2 命令処理部から送出されるストア要求のデータを保持す
る複数のエントリ(本実施例では4個)を有し、この複
数のエントリにデータを保持することによりストア要求
のデータのバッファリングを行う. ・DS5 ストア要求のデータを次に格納すべきCSDB2のエン
トリを指すポインタである. ・DR6 現在までストア要求の反映が完了したCSDB2のエン
トリの次のエントリを指すポインタである。
・RG32 DS5の出力,AR4の出力,ブロックロ一ド中か否か
を示すブロックロード中信号OBLおよびNHF7の出
力NHFoutを入力とし、ストア要求ST,REQお
よびストア終了信号ST,ENDを発生する.特に、本
実施例では主記憶からキャッシュ・メモリへのデータ・
ロード中に、論理値“1″を表示しているNHF7のフ
ラグがあれば、そのフラグ対応のCSAB 1のエント
リのストア要求をキャッシュ・メモリへ反映する為にス
トア・リクエストST.REQが出される。通常のスト
ア要求とブロックロード中のストア要求を発する、この
RG32の構成例を第4図に示す。
第4図においては、AR4の出力値とDS5の出力値と
を比較する比較器40l.ブロックロード中信号OBL
を抑止入力とし、非ブロックロード中に比較器401が
AR<DSを検出したときゲ−ト404を介してストア
要求ST.REQを発生するゲー}402,比較器40
1がAR<DSを検出したとき第1図のNHF7の出力
NHFoutが″1″の期間、ストア要求ST,REQ
をゲート404を介して発生するゲート403で構成さ
れる.なお、比較器401がAR−DSを検出すると、
ストア終了信号ST,ENDが発生される.再び第1図
を参照すると、ストア・バンファ33以外の第1図に示
される部分はキャッシュ・メモリ装置の他の構成要素で
ある.すなわち他の構成要素として、ステータス・セレ
クタ(以下SAXと称す)8,アドレス・セレクタ(以
下AAXと称す)9.データ・セレクタ(以下DAX,
DCXと称す)10,30.ステータス・レジスタ(以
下SAR,SBR,SCRと称す)11.1B,26.
アドレス・レジスタ(以下AAR,ABR,ACRと称
す)12.19.27.データ・レジスタ(以下DAR
,DBR,DCRと称す)13,21.2B,プライオ
ア・デコーダ(以下PRIOR,DECと称す)14.
アドレス部AADおよび有効ビット部Vから構成される
アドレス・アレイ(以下AAと称す)l5,比較器16
,ANDゲート17.23,24,  ヒット・レジス
タ(以下AHRと称す)20,ステータス・デコーダ(
以下SDECと称す)22.データ・アレイ(以下DA
と称す)25,デコーダ29.31(以下RDECと称
す)が、当該キャッシュ・メモリ装置に含まれている.
各々は次のような構成および機能を有する. ・ SAX8 RDEC3 1からのAA更新要求,ストア・バッファ
33からのストア要求ST.REQ,ストア終了信号S
T.END.命令処理部からのリード要求,主記憶装置
からのブロックロ一ド要求にかかる各ステータスを入力
とし、PRIOR,DEC14から出力される選択信号
SELO〜SEL3に従ってその1つを選択して出力す
る。
・AAX 9 ACR27からのAA更新アドレス.ストア・バッファ
33からのストア要求アドレス.命令処理部からのリー
ド要求アドレス,主記憶装置からのブロックロード・ア
ドレスを入力とし、選択信号SELO〜SEL3に従っ
てその1つを選択して出力する. ・DAX 1 0 ストア・バッファ33からのストア・データ,主記憶装
置からのロード・データを人力とし、選択信号SELI
,SEL3に従ってその1つを選択して出力する. ・ SARII SAX8の出力を保持するレジスタ ・AAR 1 2 AAX9の出力を保持するレジスタ ・DAR 1 3 DAX1 0の出力を保持するレジスタ・PRIOR,
DECl4 STBHIT信号,RD.REQ信号, MM.REQ
信号,ST.REQ信号,OBL信号.UPD.REQ
信号,RSM,REQ信号を入力とし、SAX8,AA
X9,DAXIOに選択信号SELO〜SEL3を出力
する.第5図にPRIOR.DEC14の構成例を示す
.なお、第5図において、RSM.REQ信号はストア
・バッファ・ヒットでストア・バッファ内のストア要求
が掃出された後、SCR26,ACR27に待たされて
いたリクエストを再開する為のリクエストであり、RD
EC3 1で生成される.また、MM.REQ信号はブ
ロックロード時に主記憶から読出したデータをDA25
に書くためのリクエストであり、図示しない主記憶アク
セス制御部から加えられる. ・AA15 アドレス部AADと有効ビット部■とで構成され、AA
R 1 2に保持されたアドレスの下位(ブロック内ア
ドレス)をアドレス入力とし、その上位(ブロックアド
レス)をアドレス部AADのデータ入力とし、SARI
Iの出力におけるAA更新要求信号UPDATEを有効
ビット部Vのデータ入力並びにライトイネーブルWEと
する.・比較器l6 AAR 1 2に保持されたアドレスの上位(ブロック
アドレス)とAA15のアドレス部AADの出力Dou
t(ブロックアドレスのコピー)との一致を検出する. ・アンドゲートl7 比較器l6の出力とAA15の有効ビット部Vの出力と
の論理積をとる. ・SBR1B SARIIの出力を保持するレジスタ ・ABR19 AAR 1 2の出力を保持するレジスタ・AHR20 アンドゲート17の出力を保持するレジスタ・DBR2
1 DAR 1 3の出力を保持するレジスタ・SDEC2
 2 SBR l Bの出力およびAHR20の出力(CAC
HIT)を入力とするデコーダ ・アンドゲート23 SBR 1 8の出力におけるLoad信号とAHR2
0の出力との論理積をとり、DA25のライトイネーブ
ル信号を生成する。
・アンドゲート24 SBR1 8の出力におけるRead信号とAHR20
の出力との論理積をとり、DCX30の1つの選択信号
を生成する. ・DA25 DBR2 1の出力をデータ入力とし、ABRI9の下
位アドレス(ブロック内アドレス)をアドレス入力とし
、アンドゲート23の出力をライトイネーブルとするレ
ジスタの集まりである。なお、このDA25とAA15
とでキャッシュ・メモリの主要部が構成され、本実施例
の場合、その方式はダイレクト・マッピング方式である
・SCR26 SDEC22の出力を保持するレジスタ。その出力は、
命令処理部または主記憶装置,デコーダ29.31へ送
出される. ・ACR27 ABR19の出力を保持し、主記憶装置あるいはAAX
9へ出力するレジスタ ・DCX30 DA25の出力およびDBR21の出力を入力とし、ア
ンドゲート24の出力およびSBR 1 8の出力にお
けるFirst  Reply信号に従って1つの入力
を選択して出力する. ・DCR28 DCX30の出力を保持し、命令処理部へ出力するレジ
スタ ・デコーダ29 SCR26の出力をデコードして、OBL信号,STB
HIT信号,LRPLY信号を生成する.・デコーダ3
1 SCR26の出力をデコードして、AA更新要求をSA
X8に出力する. 次に、本実施例の動作を、各場合に分けて以下説明する
. rリード動作1 命令処理部からのリード要求については、メモリ・リー
ド要求であるステータスがSAX8を通じてSARII
に送り込まれる.同時に要求アドレスが、AAX9を通
じて、AAR12に格納される.次のサイクル(Aサイ
クルと呼ぶ)で、AAR12の下位アドレス(ブロック
内アドレス)によりAA15が読み出され、そのアドレ
ス部AADの出力とAAR12の上位アドレス(ブロッ
クアドレス)との比較が比較316で行われる。
比較器16の出力は、AAlS内の、アドレス部AAD
と同時にAAR12の下位アドレスによって読み出され
る有効ビット部Vの有効ビットとアンドゲート17で論
理積が取られ、AHR20へその出力が格納される. 次のサイクル(Bサイクルと呼ぶ)以降の動作は、AH
R20の出力により、次の二つに分けられる. i)AHR− ”1’のとき(キャッシュ・ヒットCA
CHIT): AサイクルでAAR12からABR19へ移動したリー
ド要求アドレスの下位アドレス(ブロック内アドレス)
によりDA2 5がアドレンシングされる,AHR20
の出力とSBR 1 8の出力におけるRead信号と
の論理積(゛1”)がアンドゲート24で取られ、DC
X30のDA25側が選沢され、DA25の出力は、D
CR2Bに格納される.同じBサイクルで、SBR18
の出力はAHR20の出力により、SDEC22により
、キャッシュ・ヒット、リブライ可能の旨変換され、S
CR26へ収められる.次のサイクル(Cサイクルと呼
ぶ)では、SCR26の出力に基づき、デコーダ29か
ら命令処理部へリプライ信号LRFLYが返されると共
にDCR2Bの出力が読み出しデータとして命令処理部
へ送られる. ii)AHR−“0”のとき(キャッシュ・ミスCAC
MIS): AHR2Qの出力とSBR l Bの出力をもって、S
DEC22においてキャッシュ・ミスと判断される,D
A25の出力データはアンドゲート24の出力が論理値
“O”のため、DCR28には格納されない,ABR1
9に保持されたアドレスはACR27へ移送される.次
のCサイクルで、SCR26の出力により、主記憶装置
へACR27に収められたアドレスを持って、ブロック
ロ一ド要求がなされる.キャッシュ・ミスを起こしたリ
クエストおよびアドレスは、以後、SCR26,ACR
27に留まり、プaツクロードの終了まで保持される,
AAR12およびABRl9に収められた後続のリクエ
ストはキャンセルされ、ブロックロード終了後、命令処
理部によりキャッシュ・メモリ装置へ再送出される. デコーダ29はSCR26の出力からブロックロ一ド中
信号OBLを生成する. 主記憶装置へのブロックロ一ド要求が送出されると同時
に、SCR26にあるキャッシュ・ミスを起こしたリー
ド要求のステータスから、RDEC3 1によりAA更
新要求が新たに発生され、このAA更新要求がSAX8
を通じてSARIIに格納される.同時に、ACR27
に保持されていたリード要求にかかるアドレスはAAX
9を通じrAAR1 2に格納される.A八更新要求が
SARIIに格納されると、そのAA更新要求信号UP
DATEにより、AAI5のライトイネーブル信号WE
とAA15の有効ビット部Vの入力信号が作成される.
これらにより、AAl5には、AAR l 2の下位で
示されるアドレスに、AAR12の上位アドレスである
ブロックアドレスおよび有効を示す有効ビットが書き込
まれる.この動作をもって、AA更新要求に対する動作
は終了する. さて、主記憶装置へ送出されたブロックロ一ド要求は、
主記憶装置内で、キャッシェ・メモリのブロックを構成
する語数分の要求に分解される.例えば、本実施例では
、1ブロックは8語から構成されているとすると、計8
回のブロックロ一ド要求が主記憶装置からキャッシェ・
メモリ装置へ返ってくる.この返ってきたブロックロー
ド要求はSAX8を経由して、SAR1lに格納される
.同時に、ロードするアドレスも主記憶装置からAAX
9を経由してAARl2に格納される.また、ロードす
るデータはDAX1 0を経由して、DAR l 3に
格納される. ブロックロ一ドにおけるAサイクルは、AAR12に格
納されたブロック内アドレスにより、AA15を索引す
る.先のAA更新動作により、該当するブロックアドレ
スが存在するので、結果としてAHR20には論理値″
1”が格納される.同時にステータスはSARIIから
SBR1Bへ移動し、アドレスはAAR12からABR
19へ、また、データはDAR1 3からDBR2 1
へ移動する. Bサイクルでは、ABR19の下位アドレス(ブロック
内アドレス)でDA25をアドレッシングし、SBR1
Bの出力から得られたLoad信号とAHR20の出力
との論理積をとるアンドゲート23の出力が論理値″1
″になることにより、DBR2 1に保持されたデータ
をDA25に書き込む動作が行われる. 最初のブロックロ一ド要求時には、SBRI8の出力に
よって、その旨が認識され、First  Reply
信号により、DBR2 1の出力がDCX301”選択
され、DCR28へ格納される.同時に、SCR26に
SBR1Bの出力が入力され、次のCサイクルで命令処
理部へリプライが返却される.この時にもデコーダ29
のOBL信号はブロックロード中を示す論理値″l″に
なっている. 最後のブロックロ一ド要求が主記憶装置から返って来る
と、BサイクルでSBR1Bの出力がSDEC22で再
開要求に変換され、待たされていた、キャッシュ・ミス
を起こしたリード要求が再開する. rストア動作1 命令処理部からのストア要求にかかるアドレスは、スト
ア・バッファ33のCSAB 1に入力され、その時点
でAS3が示すエントリに格納される.その後、AS3
は次のエントリを示すように増加される.命令処理部で
命令の実行が終わると、ストア要求にかかるデータがス
トア・バッファ33のCSDB2に入力され、その時点
でDS5が示すエントリに格納される,DS5はこの後
、次のエントリを指すよう増加される. ストア要求のキャッシュ・メモリへの反映は、ブロック
ロード中でない時には次のように行われる.RG32の
第4図に示す比較器401において、現在までストア要
求の反映が完了したCSAB1のエントリの次のエント
リを指すAR4の値と現在アドレスとデータが揃ってい
るエントリの次のエントリを指しているDS5の値とを
比較して、AR<DSが成り立てばゲート402で生成
したストア要求ST,REQをキャッシュ・メモリへ即
ちSAX8へ送出する.そのストア要求がキャッシュ・
メモリ側で受け付けられれば、AR4とDR6とを1つ
次のエントリを指すように増加させる.以上の動作は第
6図に示されている.なお、第6図におイテ、D,A,
OFI,OF2,E,Wは、命令実行のバイブラインの
各ステージであり、Dは命令のデコードステージ、Aは
オペランドのアドレスを計算するステージ、OFIはオ
ペランドを読出す第1のステージでAA15を索引する
ステージである.OF2はオペランドを読出す第2のス
テージでDA25を読出すステージである.EはDA2
5から読出したオペランドの演算を行うステージ、Wは
演算結果をストア・バッファに書込むステージである.
その後の「データ登録」は、ストア・バッファから読出
した演算結果をAA15に送るステージである,OFI
,OF2,Hの各ステージが、それぞれ上述したリード
動作のA,B,Cの各サイクルに相当する.次に、スト
ア・バンファ33内のストア要求アドレスとメモリ・リ
ード要求アドレスとが一致した場合の動作について述べ
る. ストア・アドレスとリード・アドレスの一致チェックを
“ストア・チェック”と呼ぶ.ストア・チェックはリー
ド要求がABR19のステージにある時に、ABR19
の内容とCSAB 1の各エントリの内容とを第2図の
比較器207〜210で比較する.この時、全アドレス
・ビットについてのチェックが行われる.即ち、第3図
のアンドゲート303の出力が使用される. 一致が検出されると、ABR19にあるアドレスに対応
するリード要求(ステータスはSBR 18にある)は
、ストア・バッファ・ヒット(STBHIT)という状
態になる,SBR1Bのステータスは、SDEC22に
よりSTBHITというステータスに変換され、ストア
・バッファ33からのストア要求がキャッシュ・メモリ
に反映されるまで、SCR26,ACR27のステージ
にリード要求にかかるステータス,アドレスは保持され
る.後続のAAR l 2,ABR l 9にある要求
はキャンセルされ、ACR27にある要求が再開された
後、命令処理部から再送出される。STBH ITとい
う状態はデコーダ29でSCR26の出力をもって認識
される. さて、STBHITにより、リード要求が抑止されると
、ストア・バッファ33からのストア要求がキャッシュ
・メモリに受け付けられる.即ち、SAX8を通してス
トア要求にかかるステータスがSARIIに格納され、
そのアドレスがAAX9を通してAAR1 2に格納さ
れる。そして以後、このストア要求によるキャッシュ・
メモリへの書き込みが前述と同様に行われる. ストア・バッファ33中のRG32は、AR4がDS5
に等しくなるまでストア要求を出し続け、AR−DSの
関係が成立すると、ストア終了(ST.END)という
信号を発する.この信号をもって、Cステージに留まっ
ていたリード要求は再開し、後続の要求も順次受け付け
られる.次に、キャッシュ・ミス時におけるストア・チ
ェックについて述べる.キャッシュ・ミスとストア・バ
ッファ・ヒットが同時に生じたら、ストア・バッファ・
ヒットを優先させる.そして、ストア要求反映後の再開
でCACMI Sとさせ、矛盾が無いようにしている. 本発明の特徴であるブロックロ一ド中のストア要求の反
映を可能とするため、CACMI S時には、CACM
I Sを起こしたリード・アドレスとストア・バッファ
33中のストア・アドレスとの比較がCSAB 1の比
較器207〜210で行われる.これは、比較器207
〜210の構成例を示した第3図の比較器301におい
て、各々のブロック・アドレスのみについてチェックさ
れる.即ち、その時点でストア・バッファ33にあるス
トア要求アドレスが、CACMI Sを起こしたアドレ
スを含むブロック内に存在するか否かがチェックされる
. ストア・バッファ33の或るエントリのストア・アドレ
スが一敗を見なかった場合には、第2図中の不一敗を検
出した比較器207の出力を入力とするゲート212〜
215の出力によって、そのエントリに対応するNHF
7のフラグに論理値“ビがセットされる.一敗した場合
には論理値“0″のままにされる.このフラグは、AS
3とAR4ではさまれたエントリの全てについて行われ
る. キャッシュ・ミスを契機としてブロックロ一ドが始まる
と、リード要求が抑止されるので、キャッシュ・メモリ
側はストア要求を受け付けることができる.この時、ス
トア・バッファ33の各エントリに対するストア要求は
、そのエントリに対するNHF7のフラグが論理値“1
”となうていることを確認して、第4図のRG32のゲ
ート403から発せられる,NHF7のフラグが論理値
″O”となっているエントリが発見されると、ゲート4
03からのストア要求はそれ以後、抑止される.そして
、このようにして出されたストア要求は前述と同様に処
理され、NHF7の全フラグは最後のブロックロード要
求でLRPLY信号によって全て論理値“0″にリセッ
トされる.〔発明の効果〕 以上説明したように、本発明は、キャッシュ・ミス時、
ストア・バッファ内のストア・アドレスがキャッシュ・
ミスによりブロックロードされるブロック・アドレスに
含まれているか否かをチェックし、含まれていないこと
をi1認したストア要求について、そのキャッシュ・メ
モリへの反映をブロックロード中に要求することにより
、ストア・バッファからキャッシュ・メモリへのストア
要求の反映がブロックロ一ド中に可能となるため、スト
ア要求の速やかなる処理が可能となり、命令実行の中断
を減少させ、情報処理装置の全体的な処理能力を高める
ことができる.
【図面の簡単な説明】
第1図は本発明の一実施例のストア・バッファを含むキ
ャッシェ・メモリ装置の要部ブロック図、第2図はキャ
ッシュ・ストア・アドレス・バッファ(CSAB)1お
よび非危険フラグ群(NHF)7の構成例を示すブロッ
ク図、 第3図は比較器207〜210の構成例を示すブロック
図、 第4図は要求発生回路(RG)32の構成例を示すブロ
ック図、 第5図はプライオア・デコーダ(PRIOR.DEC)
14の構成例を示すブロック図および、第6図はストア
命令の動作を示したタイムチャートである. 図において、 1・・・キャッシュ・ストア・アドレス・バッファ(C
SAB) 2・・・キャッシュ・ストア・データ・バッファ(CS
DB) 3・・・アドレス・セット・ポインタ(AS)4・・・
アドレス・リード・ポインタ(AR)5・・・データ・
セット・ポインタ(DS)6・・・データ・リード・ポ
インタ(DR)7・・・非危険フラグ(NHF) 8・・・ステータス・セレクタ(SAX)9・・・アド
レス・セレクタ(AAX)10・・・データ・セレクタ
(DAX)11・・・ステータス・レジスタ(SAR)
12・・・アドレス・レジスタ(AAR)13・・・デ
ータ・レジスタ(DAR)l4・・・ブライオア・デコ
ーダ(PR[OR.DEC) 15・・・アドレス・アレイ(AA) 16・・・比較器 17・・・アンドゲート 18・・・ステータス・レジスタ(SBR)l9・・・
アドレス・レジスタ(ABR)20・・・ヒット・レジ
スタ(AHR)21・・・データ・レジスタ(DBR)
22・・・ステータス・デコーダ(SDEC)23.2
4・・・アンドゲート 25・・・データ・アレイ(DA) 26・・・ステータス・レジスタ(SCR)27・・・
アドレス・レジスタ(ACR)28・・・データ・レジ
スタ(DCR)29・・・デコーダ 30・・・アドレス・セレクタ(DCX)31・・・デ
コーダ(RDEC) 32・・・要求発生回路(RG) 33・・・ストア・バッファ 203,204・・・デコーダ 205・・・マスク・ラッチ群 206・・・スレーブ・ラッチ群 207〜210・・・比較器 211・・・アドレス・セレクタ 212〜215・・・ゲート 222・・・セレクタ 301,302・・・比較器 303・・・アンドゲート 401・・・比較器 402〜404・・・ゲート 501〜505・・・ゲート

Claims (1)

  1. 【特許請求の範囲】 ストア要求を直ちにキャッシュ・メモリへ反映させず一
    時バッファリングする複数エントリを含むストア・バッ
    ファにおいて、 前記ストア・バッファのエントリに保持された各ストア
    要求にかかるアドレスと前記キャッシュ・メモリへのリ
    ード要求にかかるアドレスとを前記キャッシュ・メモリ
    において予め定められた語数の管理単位であるブロック
    単位で比較する比較手段と、 前記リード要求がキャッシュ・ミスを起こした時、前記
    比較手段の出力が不一致を表示したエントリに対応する
    ストア可能表示手段をセットするセット手段と、 前記キャッシュ・ミスを契機とする主記憶から前記キャ
    ッシュ・メモリへのデータ・ロードの終了時、前記スト
    ア可能表示手段の全てをリセットするリセット手段と、 主記憶から前記キャッシュ・メモリへのデータ・ロード
    中に、前記ストア可能表示手段がセットされているエン
    トリのストア要求を前記キャッシュ・メモリへ反映する
    要求を発生する要求発生手段とを具備したことを特徴と
    するストア・バッファ。
JP1059259A 1989-03-10 1989-03-10 ストア・バッファ Pending JPH02236748A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP1059259A JPH02236748A (ja) 1989-03-10 1989-03-10 ストア・バッファ

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP1059259A JPH02236748A (ja) 1989-03-10 1989-03-10 ストア・バッファ

Publications (1)

Publication Number Publication Date
JPH02236748A true JPH02236748A (ja) 1990-09-19

Family

ID=13108201

Family Applications (1)

Application Number Title Priority Date Filing Date
JP1059259A Pending JPH02236748A (ja) 1989-03-10 1989-03-10 ストア・バッファ

Country Status (1)

Country Link
JP (1) JPH02236748A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05100849A (ja) * 1991-10-04 1993-04-23 Fujitsu Ltd バツフア記憶制御方式
JPH06224910A (ja) * 1993-01-27 1994-08-12 Nec Corp Lan接続システム
US6374334B1 (en) 1994-07-04 2002-04-16 Fujitsu Limited Data processing apparatus with a cache controlling device
JP2010191638A (ja) * 2009-02-17 2010-09-02 Fujitsu Semiconductor Ltd キャッシュ装置

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05100849A (ja) * 1991-10-04 1993-04-23 Fujitsu Ltd バツフア記憶制御方式
JPH06224910A (ja) * 1993-01-27 1994-08-12 Nec Corp Lan接続システム
US6374334B1 (en) 1994-07-04 2002-04-16 Fujitsu Limited Data processing apparatus with a cache controlling device
JP2010191638A (ja) * 2009-02-17 2010-09-02 Fujitsu Semiconductor Ltd キャッシュ装置

Similar Documents

Publication Publication Date Title
US12505015B2 (en) Pipelined read-modify-write operations in cache memory
US5479629A (en) Method and apparatus for translation request buffer and requestor table for minimizing the number of accesses to the same address
US7447844B2 (en) Data processing system, processor and method of data processing in which local memory access requests are serviced on a fixed schedule
US5051894A (en) Apparatus and method for address translation of non-aligned double word virtual addresses
US4648033A (en) Look-aside buffer LRU marker controller
JPH0520197A (ja) 記憶管理システム及びマイクロプロセツサ
JPH02236748A (ja) ストア・バッファ
JP3733604B2 (ja) キャッシュメモリ
JP3100807B2 (ja) キャッシュメモリ装置
JPH02308349A (ja) バッファ記憶制御装置
US20200097294A1 (en) Method for managing the supply of information, such as instructions, to a microprocessor, and a corresponding system
JP3241679B2 (ja) プロセッサからの大容量データ転送処理リクエストにおけるキャッシュ読み出し方法
JP2011150486A (ja) データ処理装置
JP3614946B2 (ja) メモリバッファ装置
JP3260566B2 (ja) 情報処理システムにおける記憶制御方法および記憶制御装置
JP3078293B2 (ja) 記憶制御装置
JPH05189318A (ja) 情報処理装置
JPH06103477B2 (ja) 並列キャッシュメモリ
CN118642847A (zh) 基于流水线处理请求的方法、电子设备及介质
JPH1185613A (ja) キャッシュメモリ
JP3729832B2 (ja) キャッシュメモリ装置
JP3287239B2 (ja) 階層キャッシュメモリとそのステート遷移制御方法
JP3219196B2 (ja) キャッシュデータアクセス方法及び装置
JP2001344152A (ja) キャッシュメモリ装置
JPH04248645A (ja) キャッシュメモリ