【発明の詳細な説明】
選択フラッシュ機能を具備するメモリーバッファ
技術分野
この発明は記憶保持装置に関し、特に、選択フラッシュ機能を具備する書き込
みバッファを有し、プロセッサまたはキャッシュメモリと主メモリの中間の書き
込みバッファに関する。
発明の背景
従来、例えばSRAMのメモリまたはプロセッサ等のプロセッサあるいはキャ
ッシュメモリは、典型的にはDRAMより構成される主メモリに比べて非常に早
い速度で動作することが知られている。すなわち、従来技術では、メモリバッフ
ァまたは書き込みバッファは、プロセッサまたはプロセッサのキャッシュメモリ
(以降、プロセッサとは厳密にはプロセッサまたはプロセッサのキャッシュメモ
リのことを指すものとする)と主メモリの中間領域で使用されている。書き込み
バッファは、プロセッサから主メモリに書き込まれるデジタル信号、デジタルデ
ータ形式のデータを格納する。プロセッサからのデータが書き込みバッファに格
納されると、プロセッサは他の動作を続けることができる。一方、書き込みバッ
ファは、プロセッサとは独立に、書き込みバッファから主メモリにデータを書き
込む。
従来技術では、書き込みバッファの内容が空でない間に主
メモリの読み出し動作が開始された場合に、問題が発生する。この場合、先の書
き込み動作によるデータが書き込みバッファ内に存在している状態で、主メモリ
のアドレスから読み出し動作が行われた時に問題が発生する。書き込みバッファ
からのデータによってまだ更新されていない主メモリのデータが読み出されてし
まうのである。従来の解決方法の1つとして、プロセッサから主メモリへの各々
の読み出し動作の前に、書き込みバッファを「フラッシュ」する方法がある。フ
ラッシュでは、書き込みバッファの内容がすべて主メモリに書き込まれるまで、
主メモリからのプロセッサの読み出し動作が待機される。この従来の解決方法は
、カリフォルニア州のサンノゼに在るIntegrated Device Technology(IDT)
により製造された装置R3081が典型的なものである。読み出しアドレスが起
こり、書き込みバッファにデータが在るときには、読み出し動作が行われる前に
必ず、書込みバッファのすべての内容が「フラッシュ(流れ出)」される。この
従来方法では、読み出し動作の度に毎回、書き込みバッファを「フラッシュ」し
なければならないことに付随するオーバーヘッドが問題となる。
John Hennesyによる「Computer Architecture A Quantitative Approach」と
題する参考文献では、読み出し動作において、「読み出しの誤動作に対して書き
込みバッファの内容を検証し、矛盾がなくメモリシステムが動作可能であれば、
読み出し誤動作を続行させる」ことが提案されている。さらに、IDTの書き込
みバッファは、読み出しアドレスが書き
込みバッファ内の有効なアドレスの内の1つと一致する場合には、すべての書き
込みバッファをフラッシュするように動作すると思われる。
読み出し動作がキャッシュアクセスを決定し、プロセッサの能力に非常に影響
を与えるため、オーバーヘッド、すなわち読み出し動作に付随する待機を最小限
に短縮することが望ましい。
発明の概要
書き込みバッファはプロセッサ手段から一連のデータをそれぞれ有する複数の
アドレス信号を受ける。書き込みバッファは、これら複数のアドレス信号を、ア
ドレス信号により指定されたアドレスにおけるメモリ手段に蓄積されるためのデ
ータとして、データバスに沿ったメモリ手段に供給された複数のアドレス信号と
共にメモリ手段に備える。前記書き込みバッファは、アドレス信号の1つをそれ
ぞれ蓄積するための複数のアドレスストレージ手段を含む。前記書き込みバッフ
ァはまた、前記アドレス信号の1つに関連したデータ信号の1つをそれぞれ蓄積
するための複数のデータストレージ手段を含む。このバッファはまた、それぞれ
前記アドレスストレージ手段の1つに関連した複数の比較手段を具備する。前記
比較手段各々は関連したアドレスストレージ手段からのアドレス信号を受け、前
記プロセッサ手段からの読み出しアドレス信号と比較し、メモリ手段への比較信
号を発生する。ゲート手段は前記メモリ手段への読み出しアドレス信号の供給を
制御するため前記アドレスバスに備えられる。制御手段は前記それぞれの比較手
段からの比較信号を受け、複数のストレージ手段の1つのうち読み出しアドレス
信号と一致するアドレスを蓄積している限り、前記メモリ手段への読み出しアド
レス信号の供給を防ぐように前記ゲート手段を制御する。
図面の簡単な説明
図1はプロセッサと主メモリを介したこの発明の書き込みバッファを示す概要
的なブロックレベル図。
図2はこの発明の書き込みバッファの具体例を示す詳細なブロックレベル図。
図3はこの発明の書き込みバッファの他の具体例を示す詳細なブロックレベル
図。
発明の詳細な説明
図1はこの発明の書き込みバッファ10をプロセッサ12と主メモリ14と共
に示すブロックレベル図を示す。ここでいうプロセッサ12は一般的なプロセッ
サもしくはプロセッサのキャッシュメモリとして用いることができる。検討のた
め、以下“プロセッサ”という語句は上述のデバイスのタイプを包含する。周知
のように、プロセッサ12は複数のアドレス信号ライン(32)を含む第1のア
ドレスバス16を有する。また、プロセッサ12はデータ信号を複数のアドレス
信号ライン(32)を含む第1のデータバス18に供給し、第1のデータバス1
8からのデータ信号を受ける。さらに、
プロセッサ12は、第1のR/W、すなわちリード/ライト制御ライン20のよ
うに1つしか図示していないが複数の制御ラインを有する。この第1のR/Wラ
イン20は単一信号ラインである。検討のため、第1のR/Wライン20のハイ
すなわち“1”のときリード信号が発生し、第1のR/Wライン20がローすな
わち“0”になるときライト信号が発生するものとする。
この発明の書き込みバッファ10は、第1のアドレスバス16からのアドレス
信号、第1のデータバス18からのデータ信号、及びプロセッサ12からの第1
のR/Wライン20の信号を受ける。書き込みバッファ10は第2のアドレスバ
ス22のアドレス信号出力、第2のデータバス24のデータ信号出力とを備える
。第2のアドレスバス22は第1のアドレスバス16と同数の信号ラインを有す
る。第2のデータバス24は第1のデータバス18と同数の信号ラインを有する
。書き込みバッファ10もまた主メモリ14のR/Wポートに供給される第2の
R/W制御ライン26を備える。
第2のアドレスバス22は、第1のマルチプレクサ30に接続される。第1の
マルチプレクサ30のもう一つの入力は、第1のアドレスバス16である。第1
のマルチプレクサ30は、第2のR/W制御ライン26により制御される。第2
のR/Wライン26の信号に応じて、第1のマルチプレクサ30は、第1のアド
レスバス22または第2のアドレスバス16からの信号を第3のアドレスバス3
2へ供給する。第3のアドレスバス32は、主メモリ14のアドレスポートに接
続
される。同様に、第2のデータバス24は、第2のマルチプレクサ34に接続さ
れる。第2のマルチプレクサ34のもう一つの入力は第1のデータバス18であ
る。第2のマルチプレクサ34は、第2のR/W制御ライン26によりスイッチ
される。第2のR/Wライン26の信号に応じて、第2のマルチプレクサ34は
、第2のデータバス24または第1のデータバス18の信号を第3のデータバス
36に供給する。第3のデータバス36の信号は、主メモリ14のデータポート
に供給される。
図2は、本発明のライトバッファ10の実施例の詳細なブロック図を示す。第
1のR/W制御ライン20は、第3のデマルチプレクサ40を制御する。プロセ
ッサ12からの第1のアドレスバス16は、第3のデマルチプレクサ40に接続
される。デマルチプレクサ40の状態に応じて、第1のアドレスバス16の信号
は、第4のアドレスバス42へまたは第5のアドレスバス44へスイッチされる
。第5のアドレスバス44の信号は、アドレスストレージ50(A−H)のバン
クに供給される。図2においては8個のストレージしか示されていないが、当業
者にはいかなる数も選ばれうることは明らかである。本実施例のアドレスストレ
ージバンク50(A−H)は、循環FIFOのバンクである。よって、第2のア
ドレスバス22に最も近いFIFO50(A)に記憶されたアドレス信号は、ラ
イトバッファ10から最初に書き出されるアドレス信号である。FIFO50(
H)に記憶されたアドレス信号は、ライトバッファ10に一番最近に記憶された
アドレス信号である。
アドレスストレージFIFO50の各々は、対応する関連したデータストレー
ジ52(A−H)を有する。本実施例において、アドレスストレージ50(A−
H)と同様に、データストレージ52(A−H)は、循環FIFOである。よっ
て、ストレージ52(A)に記憶されたデータ信号は、主メモリ14に最初に書
き出され、ストレージ52(H)に記憶されたデータ信号は、一番最近に記憶さ
れた信号である。最後に、アドレスストレージ50(A−H)の各々が、関連す
る比較器54(A−H)を有する。比較器54(A−H)の各々は、各々と関連
するアドレスストレージ50(A−H)からの信号を受信し、それを第4のアド
レスバス42から受信したアドレス信号と比較する。この比較の結果、比較信号
ライン56(A−H)の各々に、一致または不一致を示す1ビットの信号が生成
される。複数の比較信号ライン56(A−H)は、すべてノアゲート58に接続
される。ノアゲート58の出力は、第1のR/W制御ライン20も接続されてい
るアンドゲート60に供給される。アンドゲート60の出力は、第2のR/W制
御信号26である。
ライトバッファ10の動作を以下に説明する。
(プロセッサの書き込み動作)
書き込み動作の間、第1のR/W制御ライン20がローまたは”0”であると
仮定すると、第3のデマルチプレクサ40は、第1のアドレスバス16が第5の
アドレスバス44に接続されるように切り替えられる。それゆえ、第1のアドレ
スバス16上のアドレス信号と第1のデータバス18上のデータ信号は、ライト
バッファ10のアドレスストレージ50(A)とデータストレージ52(A)に
ロードされる。次のアドレス信号とデータ信号がライトバッファ10により受信
されると、それらはそれぞれアドレスストレージ50(B)とデータストレージ
52(B)に記憶される。第1のR/W制御信号20がローであると、アンドゲ
ート60の出力と第2のR/W制御信号26はローである。それ故、主メモリ1
4は書き込み動作を受けるように設定される。この場合、第2のR/W制御信号
26は、第2、第3のマルチプレクサ30、34をそれぞれ第2のアドレスバス
22を第3のアドレスバス32と接続し、第2のデータバス24を第3のデータ
バス36と接続する状態にする。こうして、プロセッサ12はライトバッファ1
0や主メモリ14よりも速いので、プロセッサ12が他の動作を続けている間、
ライトバッファ10はアドレスストレージ50(A)からのアドレス信号とデー
タストレージ52(A)からのデータ信号を主メモリ14のアドレスポートとデ
ータポートに供給する。
プロセッサ12が動作を続けるとき、プロセッサは、ライトバッファ10の内
容が主メモリ14に書き出される前に、付加的なアドレス信号やデータ信号をラ
イトバッファ10に供給する。こうして、アドレスストレージ50やデータスト
レージ52は、処理が続くにつれて満たされる。ストレージ50(A)や52(
A)に記憶されたアドレス信号やデータ信号が、メモリ10から読み出され、主
メモリ14に供給さ
れると、ストレージ50(B)、52(B)に記憶されたアドレス信号とデータ
信号は繰り上がり、ストレージ50(A)、52(A)に記憶される。
(プロセッサの読み出し動作)
読み出し動作の間、ライトバッファ10のアドレスストレージ50とデータス
トレージ52は、ストレージ50(A−G)にアドレス信号を、ストレージ52
(A−G)にデータ信号を保持するものと仮定する。第1のR/W制御ライン2
0は、読み出し動作を意味するハイになる。これは、第3のデマルチプレクサ4
0を、第1のアドレスバス16を第4のアドレスバス42に接続する状態に切り
替えさせる。第1のアドレスバス16のアドレス信号は、比較器54(A−H)
の各々に同時に供給される。比較器54(A−H)の各々は、第4のアドレスバ
ス42に供給されたアドレス信号を、対応するアドレスストレージ50(A−H
)に記憶されたアドレス信号の内容と比較する。不一致、すなわち読み出しサイ
クルの間そのアドレスと一致するアドレスがアドレスストレージ50(A−H)
にない場合、信号ライン56(A−H)の各々の上の比較信号は、すべてローと
なる。そして、ノアゲート58の出力は、ハイとなる。そのため、第2のR/W
制御ライン25を生成するアンドゲート60の出力は、ハイとなる。
第2のR/W制御線26がハイとなると、主メモリ14は受けるための読み出
し動作に設定される。さらに、第2のR/W制御線26がハイとなると、第2、
第3のマルチプレク
サ30、34は、第1のアドレスバス16と第3のアドレスバス32を接続すべ
き位置、第1のデータバスと第3のデータバス36を接続すべき位置にそれぞれ
切り換えられる。この状態において、プロセッサ12はスネーク(sneak)読み
出し動作を行い、この間ライトバッファ10の動作は一時的に停止される。
1つのアドレスストレージ50内のアドレス信号が第1のアドレスバス16に
供給されたアドレス信号と一致した状態において、比較信号56(A−H)の内
の少なくとも1つがハイとなる。(アドレス・ロケーション・トスレージ50(
D)に記憶されたアドレス信号が第1のアドレスバス16上のアドレス信号と一
致した例と仮定する。)したがって、比較信号56(D)はハイとなり、一致を
示す。ノアゲート58の出力がローとなる。第1のR/W制御ライン20がハイ
であっても、ロー入力がアンドゲート60に供給されるため、第2のR/W制御
ライン26はローのままである。第2のR/W制御ライン26はローのままであ
るため、主メモリ14は書き込み動作を受けるためのモード状態を継続する。さ
らに、第2のR/W制御ライン26がローとなるため、第1、第2のマルチプレ
クサ30、34は第2のアドレスバス22と第3のアドレスバス32を接続する
位置、第2のデータバス24と第3のデータバス36を接続する位置を継続する
。この状態において、プロセッサ12によって読み出し動作がリクエストされた
場合でも、ライトバッファ10はそのアドレス及びデータストレージ50、52
からアドレスとデ
ータ信号を主メモリ14に供給する書込み動作を継続する。
クロックサイクルの後において、アドレスストレージ50(D)の一致したア
ドレスはアドレスストレージ50(C)に移動される。同様に、関連するデータ
はデータストレージ52(D)から52(C)に移動される。比較信号56(C
)は前と同じ条件においてハイとなる。すなわち、プロセッサ12の読み出し動
作はブロックされ、ライトバッファ10の書込み動作はアドレスとデータ信号を
主メモリ14に供給するために続けられる。これはアドレスストレージ50の一
致したアドレス信号とその関連するデータ信号がアドレス、データストレージ5
0、52から主メモリ14に供給されるまで継続される。これらアドレスとデー
タ信号がアドレスストレージ50(A)やデータストレージ52(A)からクリ
ア又はフラッシュされると直ぐにハイとなる比較信号56(A−H)はない(ア
ドレスストレージ50内に残っている一致したアドレス信号は他にないと考えら
れる)。これはプロセッサ12からの読み出し動作が主メモリ14をアクセスす
ることを許可する条件に復帰する。
したがって、ライトバッファ10は主メモリ14の制御を継続し、プロセッサ
12による読み出し動作中のアドレス信号がライトバッファ10内にその時留ま
っているアドレス信号の1つと一致する限り、そのライト動作を継続する。アド
レス信号とそれに関連するデータ信号が主メモリ14に書込まれると、本発明の
ライトバッファ10はプロセッサ12が主メモリ14を読み出したりアクセスす
ることを許可する。
図3は本発明のライトバッファ10の他の実施例を示している。図2に見られ
るように、アドレスストレージ50やデータストレージ52は、一致したアドレ
ス信号がアドレスストレージ50(A)以外のアドレスストレージ50に記憶さ
れた場合、循環FIFOバッファであるため、主メモリ14に記憶すべき閉ざさ
れたシーケンスであり、アドレスストレージ50に記憶された一致したアドレス
信号それぞれが主メモリ14に書込まれる前に、ライトバッファ10による複数
の書込み動作を要求する。
図3のライトバッファ110において、一致したアドレス信号とそれに関連す
るデータ信号は、一致が発生すると直ぐに主メモリ14に移動することができる
。これは待ち時間やプロセッサ12の読み出し動作のオーバーヘッドを一層削減
する。同様の構成が図2、図3に記載され、図3に示された構成には同一の符号
が付されている。
ライトバッファ110において、アドレスストレージ150(A−H)のそれ
ぞれは個別番地付け記憶位置(an individually addressable storage location)
である。同様に、関連するデータストレージ152(A−H)のそれぞれは、個
別番地付け記憶位置を具備する。アドレスストレージ150のそれぞれも関連す
る比較器54(A−H)を有し、これは図2に示す比較器54(A−H)と同一
である。比較器54(A−H)のそれぞれは比較信号出力56(A−H)を発生
する。この比較信号出力56(A−H)は図2で説明した比較信号56(A−H
)と同一である。複数の比較信号56は
ノアゲート58に供給される。このノアゲート58は第2のR/W制御ライン2
6に設けられたアンドゲート60に接続される。第3のデマルチプレクサ40は
図2に示され記載された第3のデマルチプレクサ40と同様に動作する。最後に
、ライトバッファ110はコントローラ70を構成する。このコントローラ70
は後述する複数の入力制御信号を受け、複数の出力信号を出力する。コントロー
ラ70への前記複数の入力制御信号は既に説明した第1のR/W制御20を構成
する。さらに、コントローラ70はカレント−エイジ−オブ−エントリ(Current
Age of Entry)として指定された複数の制御信号を受ける。カレント−エイジ−
オブ−エントリ信号は各アドレスストレージ150(A−H)の出力信号であり
、最も最近にアドレスストレージ150に書き込まれたエントリーのエイジまで
、最も速い時期にアドレスストレージ150に書込まれたエントリからスタート
するエイジの範囲を決定する。最後に、コントローラ70への他の入力信号は複
数の比較信号56によって与えられ、アドレス一致として指定される。
コントローラ70は複数の出力制御信号を生成する。それらは以下の通りであ
る。リードセル制御信号はそれぞれアドレスされるアドレスとデータストレージ
150および152を決定する複数の制御信号である。そうすることによってそ
の内容を第2のアドレスバス22および第2のデータバス24上にそれぞれ書込
むことが可能となる。予め定められた通り、アドレスストレージ150およびデ
ータストレージ15
2は個々にアドレス可能でありその内容は第2のアドレスバス22および第2の
データバス24上にそれぞれ直接のせることができる。リードセルバスは特定の
アドレスストレージ150およびデータストレージ152を選択するためのアド
レスである。ライトセル制御信号はプロセッサ12からストレージ150および
152の中に書込まれるアドレス信号およびデータ信号のためのアドレスストレ
ージ150およびデータストレージ152のアドレスを供給する。さらに、リー
ドセル信号と同様に、ライトセル信号は特定のアドレスストレージ150および
データストレージ152を選択する信号である。結局、制御信号ニュー−エイジ
−オブ−エントリイはエントリイがどれだけ長くアドレスストレージ150およ
びデータストレージ152の中にあったかの“タイムスタンプ”を供給する。そ
れはこれらストレージ150および152の中にあるデータがどのような状態に
あり、またはどのように更新されたかを示す。エントリイ信号の他の全てのエイ
ジ(age)を集めると、それらは最初に書込まれたストレージ150および152
、および最後に書込まれたストレージ150および152の表示を供給する。
書込みバッファ110の動作について以下に述べる。プロセッサの書込み動作
書込み動作の継続中、第1のアドレスバス16からのアドレス信号および第1
のデータバス18からのデータ信号はアドレスおよびデータストレージ150お
よび152に供給さ
れる。アドレスストレージ150およびデータストレージ152の有効性に基づ
き、ライトセル制御信号がアドレス信号およびデータ信号の出力が書込まれるア
ドレスストレージ150およびデータストレージ152に指示のために供給され
る。プロセッサ12からの信号が書込みバッファ110に書込まれた場合、その
エントリイのエイジがそこで書き止められる。書込みバッファ110から主メモ
リ14にデータを供給する場合、コントローラ70はアドレスストレージ150
およびデータストレージ152それぞれのカレント−エイジ−オブ−エントリイ
のリストを受けとる。最も古いエントリイが、第2のアドレスバス22にアドレ
ス信号をのせ、第2のデータバスにデータ信号を結合するリードセル制御信号に
よってここで選択される。書込みバッファ110から主メモリ14へのデータの
書込みは最初に書込まれた最も古いエントリイの命令によりなされる。図2で示
した実施例について論じたように、第2のR/W制御信号ライン26はローまた
は“0”の位置に維持され、それにより第1のよび第2のマルチプレクサ30お
よび34をそれぞれその位置に保ち、第2のアドレスバス22を第3のアドレス
バス32に接続し、そして第2のデータバス24を第3のデータバス36に接続
する。このような方法により、機能的に、書込みバッファ110はプロセッサ1
2の書込み動作継続中書込みバッファ10と同様に動作する。
プロセッサの読出し動作
最初に、再度、第1のアドレスバス16のアドレス信号とアドレスストレージ
150に蓄積されたアドレス信号が一致しないと仮定する。この場合、ノアゲー
ト58の出力はハイであり、アンドゲート60の出力をハイにさせる。このこと
は第2のR/W制御信号ライン26を主メモリ14が読出し動作にする位置に置
くようハイにする。加えて、これは第1のよび第2のマルチプレクサ30および
34をそれぞれ第1のアドレスバス16を第3のアドレスバス32と接続させそ
して第1のデータバス18を第3のデータバス36に接続を生じさせるように配
置させる。このようにして、プロセッサ12は主メモリ14の読出しが可能とな
る。さらに、機能的に、これは書込みバッファ10と同様である。
もしアドレス信号に一致する信号がアドレスストレージ150(D)に蓄積さ
れていると仮定するならば、その場合比較器54(A−H)の出力は比較信号5
6(D)をハイにする。このことはノアゲート58の出力をローにするであろう
。これは第2のR/W制御信号26をローにし主メモリ14を書込み動作を受け
るモードに保つようにする。このことはさらに第1のおよび第2のマルチプレク
サ30および34を、第2のアドレスバス22を第3のアドレスバス32と接続
させそして第2のデータバス24を第3のデータバス36と接続させるように配
置させる。コントローラ70は読出しモードにあるとき第1のR/W制御信号2
0を受けとりそしてまたハイの比較信号56(D)を受けるので、それはアドレ
スストレージ150(D)が選択されるようにリードセル選択
信号を選択するであろう。このことはアドレスストレージ150(D)中のアド
レス信号を第2のアドレスバス22にのせるようにさせる。加えて、同じリード
セル制御ラインはデータストレージ152(D)からのデータ信号を第2のデー
タバス24にのせるようにさせる。第3のアドレスバス32および第3のデータ
バス36のアドレス信号およびデータ信号を用いて、主メモリ14への書込み動
作が生ずる。一度アドレスストレージ150(D)およびデータストレージ15
2(D)の内容が読出されると、それらは“ゼロドアウト(zeroed out)”であり
、または結合されたビットはアドレスおよびデータストレージが書込み可能であ
ることを示すようにセットされる。このことは比較器54(D)をローにさせる
ようにする。比較信号56が全てロートとなり、プロセッサ12は主メモリ14
を読出し可能となる。
アドレスストレージ150における1つ以上のアドレス信号が第1のアドレス
バス16上のアドレス信号と一致すると、コントローラ70は1つのアドレスス
トレージ150を選択する。選択されるアドレスストレージは最初に読出される
べき最も高いエントリ順位を有しており、読み出されたアドレス信号は第2のア
ドレスバス22に出力される。このアドレス信号に関連したデータ信号も読出さ
れ、データバス24に出力され、主メモリ14に書込まれる。次の一致が生じる
と、次のエントリ順位のアドレスストレージ150からアドレス信号が読出され
、そのデータストレージ152から主メモリ14にデータが書込まれる。一致し
たアドレス信号のすべて
がアドレスストレージ150から読出されかつデータストレージ152から読出
されたデータが主メモリ14に書込まれると、プロセッサ12は主メモリ14か
らの読出し動作を開始する。したがって、この実施例においては、プロセッサ1
2による読出し動作と書込みバッファ110における一致したアドレス信号との
オーバーヘッドが大巾に減少する。
以上の説明から理解されるように、本願で開示される改良された書込みバッフ
ァはプロセッサが主メモリからデータを読出そうとする時の書込みバッファとの
オーバーヘッドを大巾に小さくする。すなわち、書込みバッファに一致アドレス
が溜まる限り、書込みバッファはフラッシュされプロセッサ12の読出し動作は
一時的に待機状態とされる。さらにこの実施例によれば、上記オーバーヘッドは
、単一の一致アドレスおよびその関連するデータをフラッシュする一回のサイク
ルにまで減少する。BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a memory holding device, and more particularly to a memory holding device having a write buffer having a selective flash function, which is an intermediate write between a processor or a cache memory and a main memory. Regarding the buffer. BACKGROUND OF THE INVENTION It is known in the prior art that processors such as SRAM memories or processors or cache memories operate at much faster speeds than main memory, which typically consists of DRAM. That is, in the related art, the memory buffer or the write buffer is used in an intermediate area between the processor or the cache memory of the processor (hereinafter, the processor strictly refers to the processor or the cache memory of the processor) and the main memory. Has been done. The write buffer stores a digital signal written in the main memory from the processor and data in a digital data format. Once the data from the processor is stored in the write buffer, the processor can continue with other operations. On the other hand, the write buffer writes data from the write buffer to the main memory independently of the processor. In the prior art, a problem occurs when a read operation of the main memory is started while the content of the write buffer is not empty. In this case, a problem occurs when the read operation is performed from the address of the main memory while the data of the previous write operation exists in the write buffer. The data in the main memory that has not been updated is read by the data from the write buffer. One conventional solution is to "flush" the write buffer before each read operation from the processor to main memory. In flash, the processor's read operation from main memory waits until the entire contents of the write buffer are written to main memory. This conventional solution is typified by device R3081 manufactured by Integrated Device Technology (IDT) of San Jose, Calif. Whenever a read address occurs and there is data in the write buffer, all the contents of the write buffer are "flushed" before the read operation is performed. This conventional method suffers from the overhead associated with having to "flush" the write buffer with each read operation. In a reference titled "Computer Architecture A Quantitative Approach" by John Hennesy, in a read operation, "read malfunction is verified if the content of the write buffer is verified for read malfunction and the memory system is operable without any contradiction. It is proposed to "continue". Further, the IDT's write buffer would operate to flush all the write buffers if the read address matches one of the valid addresses in the write buffer. It is desirable to minimize the overhead, i.e. the wait associated with a read operation, as the read operation determines cache access and has a significant impact on the processor's capabilities. Summary of the invention The write buffer receives from the processor means a plurality of address signals each having a series of data. The write buffer is provided in the memory means with the plurality of address signals as data to be stored in the memory means at the address designated by the address signal, together with the plurality of address signals supplied to the memory means along the data bus. . The write buffer includes a plurality of address storage means for respectively storing one of the address signals. The write buffer also includes a plurality of data storage means for respectively storing one of the data signals associated with one of the address signals. The buffer also comprises a plurality of comparison means, each associated with one of the address storage means. Each of the comparison means receives the address signal from the associated address storage means, compares it with the read address signal from the processor means, and generates a comparison signal to the memory means. Gating means are provided on the address bus for controlling the supply of read address signals to the memory means. The control means receives the comparison signal from each of the comparison means and prevents the supply of the read address signal to the memory means as long as it stores the address that matches the read address signal among the plurality of storage means. And controlling the gate means. Brief description of the drawings FIG. 1 is a schematic block level diagram showing a write buffer of the present invention via a processor and main memory. FIG. 2 is a detailed block level diagram showing a specific example of the write buffer of the present invention. FIG. 3 is a detailed block level diagram showing another embodiment of the write buffer of the present invention. Detailed description of the invention FIG. 1 shows a block level diagram of a write buffer 10 of the present invention with a processor 12 and a main memory 14. The processor 12 here can be used as a general processor or a cache memory of the processor. For purposes of discussion, the term "processor" below will encompass the types of devices mentioned above. As is well known, the processor 12 has a first address bus 16 including a plurality of address signal lines (32). The processor 12 also supplies a data signal to the first data bus 18 including a plurality of address signal lines (32) to receive the data signal from the first data bus 18. Further, the processor 12 has a plurality of control lines, although only one is shown, such as the first R / W, read / write control line 20. This first R / W line 20 is a single signal line. For examination, it is assumed that a read signal is generated when the first R / W line 20 is high, that is, "1", and a write signal is generated when the first R / W line 20 is low, that is, "0". To do. The write buffer 10 of the present invention receives an address signal from the first address bus 16, a data signal from the first data bus 18, and a signal on the first R / W line 20 from the processor 12. The write buffer 10 has an address signal output of the second address bus 22 and a data signal output of the second data bus 24. The second address bus 22 has the same number of signal lines as the first address bus 16. The second data bus 24 has the same number of signal lines as the first data bus 18. The write buffer 10 also comprises a second R / W control line 26 which feeds the R / W port of the main memory 14. The second address bus 22 is connected to the first multiplexer 30. Another input of the first multiplexer 30 is the first address bus 16. The first multiplexer 30 is controlled by the second R / W control line 26. In response to the signal on the second R / W line 26, the first multiplexer 30 supplies the signal from the first address bus 22 or the second address bus 16 to the third address bus 32. The third address bus 32 is connected to the address port of the main memory 14. Similarly, the second data bus 24 is connected to the second multiplexer 34. The other input of the second multiplexer 34 is the first data bus 18. The second multiplexer 34 is switched by the second R / W control line 26. In response to the signal on the second R / W line 26, the second multiplexer 34 supplies the signal on the second data bus 24 or the first data bus 18 to the third data bus 36. The signal of the third data bus 36 is supplied to the data port of the main memory 14. FIG. 2 shows a detailed block diagram of an embodiment of the write buffer 10 of the present invention. The first R / W control line 20 controls the third demultiplexer 40. The first address bus 16 from the processor 12 is connected to a third demultiplexer 40. Depending on the state of the demultiplexer 40, the signal on the first address bus 16 is switched to the fourth address bus 42 or the fifth address bus 44. The signal of the fifth address bus 44 is supplied to the bank of the address storage 50 (AH). Although only eight storages are shown in FIG. 2, it will be apparent to those skilled in the art that any number can be chosen. The address storage bank 50 (A-H) of this embodiment is a circular FIFO bank. Therefore, the address signal stored in the FIFO 50 (A) closest to the second address bus 22 is the address signal first written from the write buffer 10. The address signal stored in the FIFO 50 (H) is the address signal most recently stored in the write buffer 10. Each of the address storage FIFOs 50 has a corresponding associated data storage 52 (A-H). In this embodiment, the data storage 52 (A-H), like the address storage 50 (A-H), is a circular FIFO. Therefore, the data signal stored in the storage 52 (A) is first written to the main memory 14, and the data signal stored in the storage 52 (H) is the most recently stored signal. Finally, each of the address storages 50 (A-H) has an associated comparator 54 (A-H). Each of the comparators 54 (A-H) receives the signal from the address storage 50 (A-H) associated with it and compares it with the address signal received from the fourth address bus 42. As a result of this comparison, a 1-bit signal indicating a match or a mismatch is generated on each of the comparison signal lines 56 (A-H). The plurality of comparison signal lines 56 (A-H) are all connected to the NOR gate 58. The output of the NOR gate 58 is supplied to the AND gate 60 to which the first R / W control line 20 is also connected. The output of the AND gate 60 is the second R / W control signal 26. The operation of the write buffer 10 will be described below. (Processor Write Operation) Assuming that the first R / W control line 20 is low or “0” during the write operation, the third demultiplexer 40 operates the first address bus 16 to the fifth It is switched so as to be connected to the address bus 44. Therefore, the address signal on the first address bus 16 and the data signal on the first data bus 18 are loaded into the address storage 50 (A) and the data storage 52 (A) of the write buffer 10. When the next address and data signals are received by write buffer 10, they are stored in address storage 50 (B) and data storage 52 (B), respectively. When the first R / W control signal 20 is low, the output of the AND gate 60 and the second R / W control signal 26 are low. Therefore, the main memory 14 is set to receive a write operation. In this case, the second R / W control signal 26 connects the second and third multiplexers 30 and 34 to the second address bus 22 and the third address bus 32, respectively, and connects the second data bus 24 to the second data bus 24. The third data bus 36 is connected. Thus, since the processor 12 is faster than the write buffer 10 and the main memory 14, the write buffer 10 keeps the address signal from the address storage 50 (A) and the data storage 52 (A) while the processor 12 continues other operations. 2) is supplied to the address port and the data port of the main memory 14. As the processor 12 continues to operate, the processor supplies additional address and data signals to the write buffer 10 before the contents of the write buffer 10 are written to the main memory 14. In this way, the address storage 50 and the data storage 52 are filled as the processing continues. When the address signals and data signals stored in the storages 50 (A) and 52 (A) are read from the memory 10 and supplied to the main memory 14, they are stored in the storages 50 (B) and 52 (B). The address signal and the data signal are carried up and stored in the storages 50 (A) and 52 (A). (Read Operation of Processor) During the read operation, the address storage 50 and the data storage 52 of the write buffer 10 hold an address signal in the storage 50 (AG) and a data signal in the storage 52 (AG). Suppose The first R / W control line 20 goes high, meaning a read operation. This causes the third demultiplexer 40 to switch to the state of connecting the first address bus 16 to the fourth address bus 42. The address signal of the first address bus 16 is simultaneously supplied to each of the comparators 54 (AH). Each of the comparators 54 (A-H) compares the address signal supplied to the fourth address bus 42 with the contents of the address signal stored in the corresponding address storage 50 (A-H). If there is no mismatch, that is, no address in the address storage 50 (A-H) that matches that address during the read cycle, the compare signals on each of the signal lines 56 (A-H) are all low. The output of NOR gate 58 then goes high. Therefore, the output of the AND gate 60 that produces the second R / W control line 25 is high. When the second R / W control line 26 goes high, the main memory 14 is set to a read operation for receiving. Further, when the second R / W control line 26 becomes high, the second and third multiplexers 30 and 34 are located at a position where the first address bus 16 and the third address bus 32 should be connected, that is, at the first position. The data bus and the third data bus 36 are respectively switched to positions to be connected. In this state, the processor 12 performs a sneak read operation, during which the operation of the write buffer 10 is temporarily stopped. At least one of the comparison signals 56 (A-H) goes high in a state where the address signal in one address storage 50 matches the address signal supplied to the first address bus 16. (Assume that the address signal stored in the address location storage 50 (D) matches the address signal on the first address bus 16.) Therefore, the compare signal 56 (D) goes high, indicating a match. Show. The output of NOR gate 58 goes low. Even though the first R / W control line 20 is high, the second R / W control line 26 remains low because the low input is provided to the AND gate 60. Since the second R / W control line 26 remains low, the main memory 14 remains in the mode state for receiving the write operation. Further, since the second R / W control line 26 becomes low, the first and second multiplexers 30 and 34 are located at the position where the second address bus 22 and the third address bus 32 are connected, and the second data. The position where the bus 24 and the third data bus 36 are connected is continued. In this state, even when a read operation is requested by the processor 12, the write buffer 10 continues the write operation of supplying the address and data signal from the address and data storage 50, 52 to the main memory 14. After a clock cycle, the matched address in address storage 50 (D) is moved to address storage 50 (C). Similarly, the associated data is moved from data storage 52 (D) to 52 (C). The comparison signal 56 (C) goes high under the same conditions as before. That is, the read operation of processor 12 is blocked and the write operation of write buffer 10 is continued to provide address and data signals to main memory 14. This continues until the matched address signal of address storage 50 and its associated data signal are provided from address, data storage 50, 52 to main memory 14. There is no comparison signal 56 (A-H) that goes high immediately when these address and data signals are cleared or flushed from the address storage 50 (A) or the data storage 52 (A) (matches remaining in the address storage 50. It is considered that there is no other address signal. This restores the conditions that allow read operations from processor 12 to access main memory 14. Therefore, the write buffer 10 continues to control the main memory 14 and continues the write operation as long as the address signal during the read operation by the processor 12 matches one of the address signals currently remaining in the write buffer 10. When an address signal and its associated data signal are written to main memory 14, the write buffer 10 of the present invention allows processor 12 to read and access main memory 14. FIG. 3 shows another embodiment of the write buffer 10 of the present invention. As shown in FIG. 2, when the matched address signal is stored in the address storage 50 other than the address storage 50 (A), the address storage 50 and the data storage 52 are circular FIFO buffers, and thus are stored in the main memory 14. It is a closed sequence to be stored, requiring multiple write operations by the write buffer 10 before each matching address signal stored in the address storage 50 is written to the main memory 14. In the write buffer 110 of FIG. 3, the matched address signal and its associated data signal can be moved to the main memory 14 as soon as a match occurs. This further reduces latency and the overhead of the read operation of processor 12. Similar configurations are shown in FIGS. 2 and 3, and the same reference numerals are given to the configurations shown in FIG. In the write buffer 110, each of the address storages 150 (A-H) is an individually addressable storage location. Similarly, each of the associated data storages 152 (A-H) comprises an individual addressing storage location. Each of the address storages 150 also has an associated comparator 54 (A-H), which is the same as the comparator 54 (A-H) shown in FIG. Each of the comparators 54 (A-H) produces a comparison signal output 56 (A-H). The comparison signal output 56 (A-H) is the same as the comparison signal 56 (A-H) described in FIG. The plurality of comparison signals 56 are supplied to the NOR gate 58. The NOR gate 58 is connected to an AND gate 60 provided on the second R / W control line 26. The third demultiplexer 40 operates similarly to the third demultiplexer 40 shown and described in FIG. Finally, the write buffer 110 constitutes the controller 70. The controller 70 receives a plurality of input control signals described later and outputs a plurality of output signals. The plurality of input control signals to the controller 70 constitute the first R / W control 20 already described. Further, the controller 70 receives a plurality of control signals designated as Current Age of Entry. The current-age-of-entry signal is an output signal of each address storage 150 (AH) and is written in the address storage 150 at the earliest time until the age of the entry most recently written in the address storage 150. Determine the range of ages to start with the entry. Finally, the other input signal to controller 70 is provided by the plurality of compare signals 56 and designated as an address match. The controller 70 generates a plurality of output control signals. They are as follows: The read cell control signals are a plurality of control signals that determine the addressed address and data storage 150 and 152, respectively. By doing so, the contents can be written on the second address bus 22 and the second data bus 24, respectively. As predetermined, address storage 150 and data storage 152 are individually addressable and their contents can be placed directly on second address bus 22 and second data bus 24, respectively. The read cell bus is an address for selecting a specific address storage 150 and data storage 152. The light cell control signals provide the addresses of address storage 150 and data storage 152 for address and data signals written from processor 12 into storage 150 and 152. Further, like the read cell signal, the write cell signal is a signal that selects a specific address storage 150 and data storage 152. Finally, the control signal New Age of Entry provides a "time stamp" of how long the entry has been in address storage 150 and data storage 152. It indicates what the state of the data in these storages 150 and 152 is, or how it has been updated. Collecting all other ages of the entry signal, they provide an indication of the first written storage 150 and 152, and the last written storage 150 and 152. The operation of the write buffer 110 will be described below. Write operation of the processor During the continuation of the write operation, the address signal from the first address bus 16 and the data signal from the first data bus 18 are provided to address and data storage 150 and 152. Based on the validity of the address storage 150 and the data storage 152, the write cell control signal is supplied to the address storage 150 and the data storage 152 to which the output of the address signal and the data signal is written. When the signal from the processor 12 is written to the write buffer 110, the age of that entry is stopped there. When supplying data from the write buffer 110 to the main memory 14, the controller 70 receives a list of current-age-of-entry entries in the address storage 150 and the data storage 152, respectively. The oldest entry is loaded here by the read cell control signal which carries the address signal on the second address bus 22 and couples the data signal to the second data bus. Writing of data from the write buffer 110 to the main memory 14 is performed by the oldest entry command written first. As discussed with respect to the embodiment shown in FIG. 2, the second R / W control signal line 26 is maintained in the low or "0" position, thereby causing the first and second multiplexers 30 and 34 respectively. Keeping in that position, the second address bus 22 is connected to the third address bus 32, and the second data bus 24 is connected to the third data bus 36. In this manner, functionally, write buffer 110 behaves like write buffer 10 of processor 12 during a write operation. Processor read operation First, assume again that the address signal on the first address bus 16 and the address signal stored in the address storage 150 do not match. In this case, the output of NOR gate 58 is high, causing the output of AND gate 60 to go high. This causes the second R / W control signal line 26 to go high to place the main memory 14 in a read operation. In addition, this connects the first and second multiplexers 30 and 34 respectively to the first address bus 16 to the third address bus 32 and to connect the first data bus 18 to the third data bus 36. Are arranged so that In this way, the processor 12 can read the main memory 14. Furthermore, functionally, it is similar to the write buffer 10. If it is assumed that a signal corresponding to the address signal is stored in the address storage 150 (D), then the output of the comparator 54 (A-H) drives the comparison signal 56 (D) high. This will cause the output of NOR gate 58 to go low. This causes the second R / W control signal 26 to go low, keeping the main memory 14 in a mode for receiving write operations. This further causes the first and second multiplexers 30 and 34 to connect the second address bus 22 to the third address bus 32 and the second data bus 24 to the third data bus 36. To arrange. When the controller 70 is in the read mode, it receives the first R / W control signal 20 and also receives the high compare signal 56 (D), which is the read cell select signal so that the address storage 150 (D) is selected. Would choose. This causes the address signals in address storage 150 (D) to be placed on the second address bus 22. In addition, the same read cell control line causes the data signal from the data storage 152 (D) to be loaded onto the second data bus 24. A write operation to the main memory 14 is performed using the address signal and the data signal of the third address bus 32 and the third data bus 36. Once the contents of address storage 150 (D) and data storage 152 (D) are read, they are "zeroed out", or the combined bits are writable by address and data storage. It is set to indicate that. This causes comparator 54 (D) to go low. All the comparison signals 56 become the funnel, and the processor 12 can read the main memory 14. The controller 70 selects one address storage 150 when one or more address signals in the address storage 150 match an address signal on the first address bus 16. The selected address storage has the highest entry rank to be read first, and the read address signal is output to the second address bus 22. The data signal related to this address signal is also read, output to data bus 24, and written in main memory 14. When the next match occurs, the address signal is read from the address storage 150 of the next entry rank, and the data is written from the data storage 152 to the main memory 14. When all of the matched address signals are read from the address storage 150 and the data read from the data storage 152 is written in the main memory 14, the processor 12 starts the read operation from the main memory 14. Therefore, in this embodiment, the overhead of the read operation by the processor 12 and the matched address signal in the write buffer 110 is greatly reduced. As can be appreciated from the above description, the improved write buffer disclosed herein significantly reduces the overhead with the write buffer when the processor attempts to read data from main memory. That is, as long as matching addresses are accumulated in the write buffer, the write buffer is flushed and the read operation of the processor 12 is temporarily put in a standby state. Further according to this embodiment, the overhead is reduced to a single cycle of flushing a single matching address and its associated data.
─────────────────────────────────────────────────────
フロントページの続き
(72)発明者 ユーン、ジョー
アメリカ合衆国、カリフォルニア州
94080、サウス・サンフランシスコ、クロ
フトン・ウエイ 3867
(72)発明者 ステアーンス、チャールス
アメリカ合衆国、カリフォルニア州
95125、サン・ホセ、ランス フォード・
アベニュー 2515────────────────────────────────────────────────── ───
Continuation of front page
(72) Inventor Yune, Joe
California, United States
94080, South San Francisco, Black
Futon Way 3867
(72) Inventor Stearns, Charles
California, United States
95125, San Jose, Lance Ford
Avenue 2515