JPH01229345A - データ処理装置 - Google Patents

データ処理装置

Info

Publication number
JPH01229345A
JPH01229345A JP1005861A JP586189A JPH01229345A JP H01229345 A JPH01229345 A JP H01229345A JP 1005861 A JP1005861 A JP 1005861A JP 586189 A JP586189 A JP 586189A JP H01229345 A JPH01229345 A JP H01229345A
Authority
JP
Japan
Prior art keywords
address
data
memory
cache
dram
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
JP1005861A
Other languages
English (en)
Inventor
Scott I Griffith
スコツト・ジエイ・グリフイス
Steven E Golson
ステイーヴン・イー・ゴールソン
Joseph Murphy
ジヨセフ・マーフイ
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.)
Sun Microsystems Inc
Original Assignee
Sun Microsystems Inc
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 Sun Microsystems Inc filed Critical Sun Microsystems Inc
Publication of JPH01229345A publication Critical patent/JPH01229345A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0864Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using pseudo-associative means, e.g. set-associative or hashing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

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

Description

【発明の詳細な説明】 〔発明の利用分野〕 本発明は、コンピュータのデータ処理装置に関し、更に
詳細には、データ・アクセス速度を速め、効率を高めた
改善されたキャッシ・メモリ装置に関する。
〔発明の背景〕
多くのデータ処理装置では、一般に、プロセッサの平均
メモリ・アクセス時間を改善するのに、中央処理装置(
cpo)に接続した、キャッジと呼称されている高速バ
ッファ・メモリを用いている。
キャッジの使用は、データ処理装置が、メモリの局部領
域を頻繁にアクセスするのに時間がかかシすぎるという
前提に基いておυ、かつデータ・アクセスはメモリ内の
空間的および一時的な位置を示している。代表的には、
キャッジは、メモリに配置された完全なデータ・セット
のサブセットを含み、かつ主メモリのデータ・ロケーシ
ョンを読み出さずに、CPUにより非常に速くアクセス
されることができる。
最近のメモリ装置は、通常、200ナノ秒のサイクル時
間を有するダイナミック・ランダム・アクセス・メモリ
(DRAM)を使用している(@サイクル”時間は、メ
モリ・アクセスの開始から次のメモリーアクセスの開始
までの時間である)。
大抵のキャッジ・ベースド装置は、主DRAM  メモ
リからデータ・アクセスする速度よシも速い速度でアク
セスするため、キャッシ・メモリにスタティックRAM
を使用している。さらに、大抵のキャッジeベースド装
置は、キャッジに記憶されたデータのアクセス速度を増
すため、DRAMメモリにではなく、CPUおよびメイ
ン・バスの間にキャッジ−メモリ分接続している。した
がって、キャッジ−メモリはCPUに直接的に接続され
、かつ共通バスに接続した複数のDRAMメモリに配置
された、頻繁にアクセスされるデータの代表的なサンプ
ルを含んでいなければならないので、キャッシ・メモリ
の有用性は限定されている。
さらに、大抵のキャッジ装置は、CPUの他、バス−マ
スタとして動作するデータ処理デイバイスを使用してい
る。たとえば、ダイレクト・メモリ・アクセス(DMA
)デイバイスのよう々これらデイバイスは、キャッジ中
の対応データを何ら更新せずに、DRAMに記憶された
データを変更(モディファイ)するので、キャッジ・コ
ヒーレンス問題が生じる。
後述するように、本発明は、分散アーキテクチュアを用
いた改善されたキャッシ・メモリを提供する。共通バス
に接続している各DRAMメモリは、DRAMとバスの
間に配置されたそれ自身の個々のキャッジ・メそりを備
えている。各キャッジは、各DRAMメモリ中に記憶さ
れたデータの代表的なサブセットを含んでいるので、プ
ロセッサは、ベースおよびタグ・アドレスを含んでいる
アドレスを、特定のメモリ・ノードに供給することによ
り、各メモリ・ ”ノードからデータを有効に得ること
ができる。さらに、本発明は、DRAMの各バンクがシ
ングル・マスタ、すなわちキャッジ善コントローラヲ有
しているので、キャッジ・コヒーレンスの問題を回避す
ることができる。
〔発明の概要〕
本発明は、バスを介し複数のダイナミック・ランダム・
アクセス・メモリ(DRAM)バンクに接続したプロセ
ッサ(CPU)を含んでいる改善されたメモリ・アーキ
テクチュアを提供する。キャッジ・メそりは、各DRA
Mバンクとバスの間に接続され、DRAMの各バンクに
データーキャッジ能力を与える。各キャッジ拳メモリは
、各DRAM記憶されたデータのサブセットであるデー
タを記憶するスタティック・メモリを含んでいる。CP
Uにより供給されるアドレスは、ベース・アドレスとタ
グ・アドレスから構成されている。各キャッジのバス・
インタフェイス・コントローラ(BIC)d、ベース・
アドレスを比較し、それが、そのDRAMに記憶された
アドレスのレンジ内にあるかどうかを決定する。ベース
・アドレスが、レンジ外にある場合には、BICはアド
レスを無視する。ベース・アドレスが、レンジ内にあシ
、プロセッサが、READオペレーションを実行してい
る場合には、タグ・アドレス制御装置は、タグ・アドレ
スを、キャッシ・メモリに記憶され九データを表わす複
数のあらかじめ記憶されたタグ・アドレスに比較する。
整合している場合、キャッジ制御論理装置は、キャッジ
春メモリのREADメモリ・サイクルを開始し、CPU
VCデータを供給する。整合していない場合、キャッジ
は、DRAMアクセス・サイクルを開始して、プロセッ
サにより供給されたアドレスに関連したデータ・ロケー
ションヲ読ミ出す。次釦、キャッジ内のあらかじめ記憶
されたタグ拳アドレスの1つが選択され、DRAMから
読み出されたデータが、選択されたタグ魯アドレスに対
応するデータの代りにキャッシ・メモリに記憶される。
選択されたタグに対応するデータは、更新されたデータ
がDRAMにあらかじめ記憶されていないことをモディ
ファイ・ビットが示している場合にはDRAMに記憶さ
れる。DRAMから読み出され、現在キャッシ・メモリ
に記憶されているデータは、プロセッサに供給される。
同様のオペレーションが、WRITEプロセッサ・コマ
ンドの場合にも行カわれ、書込まれるべきデータはキャ
ッシ・メモリに記憶され、あらかじめ記憶されたタグ・
アトし/スが選択されまた削除され、必要な場合には、
DRAMが更新される。
以下、添付の図面に基いて、本発明の実施例に関し説明
する。
〔実施例〕
本発明は、コモン・バスを介して複数のDRAMメモリ
・バンク(ノード)に接続した中央処理装[(cpu)
を使用しているコンピュータ装置において用いるという
特別な用途を有する改良されたメモリ畢アーキテクチュ
アを開示している。以下の説明における特定のメモリ1
デイバイス、データ・レート、アーキテクチュア、構成
素子は、本発明の理解を助けるためのものであって、本
発明はこれら詳細な記載に限定されないことは、当業者
Kd明白であろう。i九、周知の回路については、本発
明を不明瞭にしないため、詳細な説明は省略する。
第1図は、キャッジ12に接続したプロセッサ10を用
いている従来のデータ処理装置を示している。図示のよ
うに、キャッジ12は、DRAMメモリ16.18およ
び工10デバイス20.22に接続したバス14に接続
している。キャッジ12は、アクセスされるデータを記
憶し、とのデータは、DRAMメモリ16 、1 at
たけその一方にも記憶される。従来装置では一般に、プ
ロセッサ10によりアクセスされるメモリ・アドレスは
、先ずキャッジ12に供給される。キャッジ12に供給
されたアドレスが、キャッジ内に記憶されたデータに一
致した場合、キャッジ12は、目標のデータljロセツ
サ10に供給するので、オリジナル・データが記憶され
ているDRAMをアクセスする必要がない。目標のデー
タがキャッジ12に配置されていない場合、プロセッサ
10のリクエストは、バス14を介して適当なりRAM
に伝送され、全メモリ拳アクセスーサイクルは、適当な
りRAMにより完成され、データはバス14を介してプ
ロセッサ10に戻される。多くの装置では、キャッジ1
2による責ス”があると、同じデータに対してその後リ
クエストがあった場合、キャラ図2を更新するのに、D
RAM(たとえば、DRAMl 6 )に記憶されたア
クセス拳データが使用されることになる。第1図に示さ
れている装置では、キャッジ12は、DRAMl8の他
、DRAMl6にデータの代表的なサンプルを記憶する
。さらに1直接メモリ・アクセス(DMA)デイバイス
23が、バス14に接続している。DMA23は、バス
・マスクとして機能し、DRAMメモIJ I 6 、
18に記憶されたデータをアクセスする。なお、DMA
23によるDRAMl6またはDRAMl Bのいずれ
かに記憶されたデータの更新または変更は、キャッジ1
2に記憶されたデータに何ら反映されないので、キャッ
ジ・コヒーレンス問題を生じることがある。
第2図は、他のデータ処理リソースと通信するため、プ
ロセッサ30がバス33に直接的に接続している本発明
のアーキテクチュアを示している。
DRAMメモリ32.34は、キャッシ・メモリ36゜
38にそれぞれ接続している。キャッシ・メモリ36.
38は、I10デバイス40.42およびDMA43の
他、プロセッサ30と通信するためバス33に接続して
いる。以下に詳細に説明するように、プロセッサ30が
、メモリ・ロケーションをアクセス(読み出しまたは書
込み動作)する場合、プロセッサは、バス33を介して
、ベース拳アドレス、タグ・アドレスおよび最下位ビッ
ト(第4図示)を含むアドレスを伝送する。バス33に
接続した各キャッジ−メモリは、ペース・アドレス(本
実施例では、4ビツト・ワードから成る)が、各DRA
Mメモリのレンジ内にあるかどうかを決定する。ペース
・アドレスがキャッジのDRAMメモリ(たとえば、D
RANiメモリ32)のレンジ内にない場合、キャッジ
(本発明ではキャッジ36)は、プロセッサのアドレス
に対して何もしない。
しかし、ベース・アドレスがキャッジのDRAMメモリ
・レンジ内にある場合、キャッジは、タグ・アドレス(
本実施例では、18ビツトから成る)ヲ調べる。キャッ
ジがこのメモリ・ロケーションをそのスタティック・R
AMに記憶している場合、それは、DRAM32のメモ
リ・アクセス−サイクルを開始すること碌<、バス33
を介してプロセッサ30にデータを供給する。しかしな
がら、キャッジ36が目標のデータを記憶していない場
合、DRAM32の全メモリ・アクセスが完成され、デ
ータが、バス33を介してプロセッサ30に供給される
。なお、本発明のアーキテクチュアは、それぞれDRA
Mメモリに対応している複数のキャッジを用いている。
この分散アーキテクチュアは、システム効率を改善し、
かつ従来のシステムより速く、よシ広範囲なメモリ・ア
クセスをプロセッサ30(ま九はIlo 40または4
2のような他のメモリ・アクセス・デバイス)に供給す
る。さらに、DRAMメモリたは34の全てのデータ・
アクセスは、それらの各キャッジにより制御されるので
、DAM43を使用しても、第1図に従来装置のよう々
キャッジ・コヒーレンス問題を生じない。
第3図に関して、本発明のキャッシ・メモリについて説
明する。説明上、キャッジ36およびDRAMメモリ3
2の動作および構造について述べるが、キャッジ36お
よびDRAM32の動作は、本発明において使用される
他のキャッジの他、DRAM34に関するキャッジ38
の構造および動作を表わしている。彦お、本明細書では
、キャッジとDRAM(たとえば、キャッジ36とDR
AM32 )の組合せは、メモリ・ 1ノードとして示
されている。
バス33は、システム・データ・バス46、システム・
アドレス・バス50、オヨヒfitlJ御ハス48を含
んでいる。キャッジ拳メモリ60は、システム・データ
・バス46に接続し、かつ本実施例では、128個の1
6バイト会4ワード・エントリを含んでいる全連想フィ
ジカル・アドレスとして構成されているので、キャッシ
・メモリのトータル・サイズは2にバイトである。後述
するように、DRAM32およびキャッジ番メモリ60
間のデータ転送は、4サイクル・バーストにプル・モー
ド)アクセスを用いて行々われる。本実施例では、東芝
製の部品番号TC511001P−10のDRAMを使
用しており、このDRAMは40ngニブル・サイクル
時間を用いて動作する。キャッシ・メモリ60の各16
バイト・キャッジ・エントリに対シて、タグ・アドレス
制御装置62の内容呼出しメモリ(CAM)に記憶され
た対応するキャッジ・タグ・フィールドがある。タグ・
アドレス制御装置62は、図示のようにタグ拳アドレス
ーバス84を介してバス・インタフェイス制御装置64
の他、バス81を介してキャッジ中メモリ60に接続し
ている。本実施例では、CAM63は、キャッシ・メモ
リ60内のメモリ・ロケーションにそれぞれ対応する1
28個の18ビツト・アドレス・タグを含んでいる。各
キャッジ・アドレス・タグは、1モデイフアイ”(M)
ビットの他、“バリド(V)ビットを含み、 ”パリド
′″(V)ビットの状態はタグがバリドであるかどうか
を表わし、かつ1モデイフアイ”(M)ビットの状態は
、タグに対応するデータが変更されているかどうかを表
わしている。この機能および動作については後述する。
彦お、キャッジ36の全連想アーキテクチュアによυ、
どのエントリも、キャッジに関連したDRAM32にあ
るメモリのどの16バイト・ブロックも表わすことがで
きる。
バス・インタフェイス・コントローラ(BIC)64H
1制御バス48およびアドレス・バス50に接続してい
る。BIC64は、キャッジ36とDRAM32に関連
した全てのタイミング信号を発生しかつ保持するよう応
答し得、またキャッジの動作に関して後述するように、
キャッジ36内の他のモジュールの様々な動作を開始す
る。BIC64は、キャッジ制御装置76を介して、D
RAM制御装置80に接続している。図示のように、−
時的データ惺持レジスタ(TDHR)72は、DRAM
データ・バスTOを介して、DRAM32のデータ・ボ
ートの他、キャッジ嗜メモリ60に接続している。
−時的アドレス保持レジスタ(TAHR)71 ハ、バ
ス82を介してCAM63に、およびDRAMアドレス
・バスγ4を介してDRAM32のアドレス・ボートに
接続している。キャッジ制御装置76は、キャッジ36
およびDRAM32内の全トランザクションを管理する
制御およびタイミング信号を発生するよう応答し得る。
キャッジ制御装置T6は、DRAM制御装置80の制御
信号を発生し、DRAM制御装置80は、DRAM32
に対して行アドレス拳ストローブ(RAS)および列ア
ドレス−ストローブ(CAS)を発生する。図示のよう
に、システムeクロック86の信号は、キャッジ36の
クロック・バッファ90に供給される。クロック信号は
、キャッジ36の動作をシステム・クロック86に同期
させるため、バス・インタ7エイス制御装置64、キャ
ッジ制御装置γ6、DRAM制御装置80および必要に
応じて他のシステムに供給される。
なお、本発明を不明瞭にし々いよう、他の制御ライン、
データ路およびキャッジ36の他の機能については、第
3図において示されてい碌い。しかし、本発明を特定の
システム・アーキテクチュアにおいて実施するには、こ
のような制御ライン等を必要とすることは、当業者には
明白であろう。
また、キャッジ36の別の構成素子については、後述す
る本発明の動作に関して説明する。
動作 プロセッサ30がDRAM32のメモリ・ロケーション
を読み出す場合、プロセッサは、DRAMのメモリ・ロ
ケーションに対応するアドレスをバス33に供給する。
本実施列では、第4図に示すように、アドレスは、4ビ
ツト・ペース書アドレス、18ビツト・タグ・アドレス
および2つの最下位ビット(LSB)を含んでいる。と
のアドレスは、バス33のシステム・アドレス◆バス5
oを介して伝送され、バス33に接続された各キャッジ
のバス拳インタフェイス制御装置64により受信される
BIC64は、4ビツト・ベース命アドレスを、DRA
Mメモリ32により用いられるアドレスのレンジに比較
する。同様に、バス32に接続した他のキャッジ(たと
えば、キャッジ38)は、ペース・アドレスを、それら
の各DRAMメモリのアドレスのレンジに比較する。ベ
ース命アドレスが、キャッジのDRAMメモリに関する
アドレスのレンジに対応していない場合、アドレスは、
キャッジにより無視される。
ベース聯アドレスの比較後、プロセッサ30により供給
されるアドレスがDRAMメモリ32のアドレスのレン
ジ内にあることを、バス拳インタフェイス番コントロー
ラ64が決定する場合、B工C64は、タグ・アドレス
Oバス84を介してキャッジ36のタグ・アドレス制御
装置62に、18ビツト・タグ・アドレスを供給する。
前述したように、タグ・アドレス制御装置62は、複数
の18ビツト・アドレス制御装置を記憶する内容呼出し
メモ!J (CAM)63を含んでいる。本実施例では
、タグ・アドレス制御装置62の内容呼出しモリ63は
、1ビツト・ランダム・アクセス・メモリ(RAM)セ
ルから成っている。これらRAMセルは、CAMセルに
供給されたデータが、セルに含まれているデータに整合
した場合、 ”整合”信号を発生することができる。し
たがって、共通整合ラインとともに多くの内容呼出しメ
モリ・セルから成るタグ・エントリは、エントリに供給
される全てのビットが、エントリに含まれる全てのビッ
トに整合する場合のみ、整合ラインを主張(アサート)
する。キャッジ36は、CAM63を用いて、パリドで
、かつプロセッサ30により供給された現在のアドレス
のタグ・アドレスに整合するタグを有する1つのエント
リを選択する。その後、キャッジ制御装置76は、整合
情報を用いて、キャッシ・メモリ60をアクセス、すな
わちDRAM32のメモリ・アクセス舎サイクルを開始
する。
たトエハ、プロセッサ30によυ供給されたアドレスに
対応するデータが、キャッジ自メモリ60に記憶されて
いると仮定する。−旦、BIC64が、ベース・アドレ
スを比較しかつタグ・アドレス・バス84を介してタグ
・アドレス制御装!62にタグ・アドレス・ビットを供
給すると、供給された18ビツト・タグは、タグ・アド
レス制御装置62のCAM63に記憶された複数(本実
施例では、128個)のタグ・アドレスの1つに比較さ
れる。
18ビツト・タグのそれぞれは、′パリドビットを含み
、”バリドビットは、1に設定された場合、キャッシ・
メモリ60におけるタグおよびそれに関連したエントリ
が両方ともパリドであることを表わす。さらに1各タグ
・アドレスは、“モディファイドビットを含み、本実施
例では、モディファイド・ビットが1に設定された場合
、これは、キャッシ・メモリ60の関連したエントリが
、1つまたはそれ以上の前の書込みサイクルにより変更
されたことを表わし、かつキャッジ・エントリが置換え
られるべきものである場合、主DRAM32に記憶され
なければならない。後述するように、キャッジ・タグの
発生、キャッジ蓄積アロケーション、およびエントリ置
換は、キャッジ制御装置γ6により行なわれる。
タグ・アドレスが、内容呼出しメモリ6311らかじめ
記憶されたタグに比較され、整合が生じる(キャッジ“
ヒツト”)と、タグに関連したキャッシ・メモリ60に
記憶されたデータは、読み出される。CAM63の整合
ラインは、整合ライン81を介してキャッジ−メモリ6
0の128本のRAMラインの1つを選択するように接
続されている。前述したように、キャッシ・メモリ60
は、各タグ・アドレスに対して4つの連続した32ビツ
ト・ワイド・ワードを記憶する。プロセッサ30により
全アドレスの一部として供給され九2つのLSBは、そ
の特定のタグに関連した4ワードのどれが、キャッシ・
メモリ60から読み出されるかを決定する。目標のワー
ドは、キャッシ・メモリ60から読み出され、かつプロ
セッサ30に復帰するためシステム−データ・バス46
に供給される。なお、前の例において、読み出されるべ
きデータは、キャッジ−メモリ60に記憶されるので、
DRAM32の各アドレス・ロケーションt−iみ出す
必要がなかった。したがって、キャッジ36は、DRA
Mメモリ32自身にデータを記憶した場合よシも、はる
かに速くしかも有利な方法で読み出し動作を行なうこと
ができる。
内容呼出しメモリ63に、タグ・アドレスを供給した結
果、キャッジ・メモ’)60VC記憶されたデータを表
わす複数のタグとの整合がなかった(1ミスリと仮定す
る。このような場合、DRAMメモリ32から直接的に
データを読み出さなければならない。キャッジ制御装置
γ6は、プロセッサ30により供給されたタグ・アドレ
スにより定義されたアドレスに記憶されたデータのDR
AMメモリ・アクセスを開始する。DRAM制御装置8
0は、アドレスにより特定されたデータ・ロケーション
をアクセスするため、DRAM32に関する適当なRA
S/CAS信号を発生し、これら制御信号をライン73
に供給する。さらに、キャッジ制御装置76は、キャッ
シ・メモリ60の内容を更新し、DRAM32からプロ
セッサ30により現在捜し求められているデータに反映
する。本実施例では、キャッジ制御装置γ6は、タグ・
アドレス制御装置62の内容呼出しメモリ63に記憶さ
れたタグ・アドレスを任意に(または、疑似乱数的に)
ビックする。その後、キャッジ制御装置76は、(パリ
ド(V)ビットが設定されているかを決定することによ
り)タグ・アドレスおよびデータがバリドであるかどう
か、および選択されたタグ・アドレスに対してモディフ
ァイド(M)ビットが設定されているかどうかを決定す
る。パリドおよびモディファイド・ビットが両方とも設
定された場合には、この状態は、キャッジゆデータがモ
ディファイドされ、かつDRAMメモリ32のそのアド
レスに記憶されたデータよシも新しいことを示している
任意に選択されたタグがバリドでかつ変更されていまい
(または非バリドである)ことをキャッジ制御装置γ6
が決定する場合、キャッジ制御装置T6は、タグを削除
し、プロセッサ30により供給された新しいタグφアド
レスと置換える。対応するバリド・ビットが設定され、
モディファイド・ビットがクリヤされる。BIC64は
、タグ・・アドレス・バス84を介してタグ・アドレス
制御装置62に、バス82を介して一時的アドレス保持
レジスタT1に、およびDRAMアドレス番バス14を
介してDRAM32にタグもアドレスを供給する。キャ
ッジ制御装置γ6は、DRAMメモリ・アクセス・サイ
クルを開始し、かつ完成して、新しいタグ・アドレスに
関連したDRAM のデーータを読み出す。このデータ
は、DRAMデータ・バス70、キャッジeメモ1J6
0、システム・データeバス46を介してプロセッサ3
0に供給すれ、このデータはキャッシ・メモリにも記憶
される。本発明の7エツチ特性を用いて、DRAM32
のメモリ舎アクセスにより、キャッジ拳メモリ60に転
送される4つの32ビット番ワードを生じる〔東芝アメ
リカInc、の東芝MOSメモリ(1987年)参照〕
。なお、ワードの1つだけが、プロセッサにより読み出
されるアドレスに対応する。プロセッサ30により供給
されるアドレスの2つのLSBは、DRAM32に供給
され、プロセッサ30により要求されている特定のワー
ドを、最初にアクセスし、次に残シの3つのワードをア
クセスすべきであることを示している。DRAM32の
新しくアクセスされたデータでキャッシ・メモリ60を
更新すると、将来のプロセッサのリクエストにおけるキ
ャッジ36によるその後の1ヒツビの可能性が増す。
キャッジ制御装置76が、(あいまいさを避けるため、
ここでは、 。第1タグ・アドレス”として呼称されて
いる)内容呼出しメモリ63のタグ・アドレスを任意に
選択すると仮定する。ここで、タグはバリドおよびモデ
ィファイされておシ、選択されたタグ−ロケーションに
おけるキャッジ争メモリ60のデータが、DRAM32
の同じアドレスに記憶されたデータよシも新しいことを
示している。その後、キャッジ制御装置76は、キャッ
シ・メモリ60の選択されたタグ・ロケーションにおけ
るデータを一時的データ保持レジスタ(TDHR)γ2
に転送する。キャッジ制御装置は、ま九−時的アドレス
保持レジスタ(TAHR)71に第1タグ・アドレスを
記憶する。キャッジ制御装置76は、プロセッサ30に
より供給された新しいタグ・アドレスをDRAM32に
供給し、かつDRAM32からのリクエストされたデー
タを受信すると、プロセッサ30に送るようDRAM7
’−タ・ハス70を介してシステム・データφバス46
にデータを供給する。さらに、キャッジ制御装置γ6は
、(前述したように、別の3つのワードとともに)DR
AM32から得られたデータをキャッシ・メモリ60に
書込み、かつCAM63の第1タグ・アドレスを、プロ
セッサ30により供給された新しいタグ・アドレスに置
換する。対応するパリド・ビットは設定され、モディフ
ァイド・ビットはクリヤされる。さらに1キヤツジ制御
装置76は、−時的デ〜り保持レジスタ(TDHR)7
2に記憶されていたデータを、TA)IR71に一時的
に記憶されていたDRAM32の第1タグ・アドレスに
記tifる。これは、DRAM32の第1タグ・アドレ
スに配置されているデータを更新する。なお、代表的K
i、キャッジ・データの更新は、キャッジが新しいデー
タに更新され、かつタグが置換の産め任意に選択される
まで、対応するDRAMロケーションに反映されない。
前述した例と同様に、DRAM32から読み出された4
つの連続ワードは、プロセッサ30に供給される。
プロセッサ30がDRAMメモリ32に新しいデータを
書込むことを要求していると仮定する。前述したように
、プロセッサ30は第4図に示すように、システム・ア
ドレス・バス50を介して、各キャッジ(ここでは、キ
ャッジ36)にアドレスを供給する。BIC64は、ベ
ース・アドレスを、DRAMメモリ32に記憶されたア
ドレスのレンジと比較し、ベース・アドレスが、DRA
Mメモリ32により使用されるアドレスのレンジ内にあ
るならば、BIC64は、タグ・アドレス・バス84を
介してタグ−アドレス制御装置62にタグ・アドレスを
供給する。整合しなかった場合(”ミス”)、キャッジ
制御装置76は、プロセッサ30にょ9供給されたタグ
・アドレスにより定義されたアドレスに記憶されたデー
タのDRAMメモリ・アクセス・サイクルを開始する。
キャッジ制御装置T6は、CAM63に記憶されたタグ
拳アドレスをビックしかつバリドおよびモディファイド
・ビットを調べる。
任意に選択されたタグがバリドで変更されていない(ま
たは非バリドである)ことをキャッジ制御装置T6が決
定すると、キャッジ制御装置T6は、タグを削除し、そ
れをプロセッサ30により供給された新しいタグ番アド
レスに置換する。キャッジ制御装置76は、新しいタグ
・アドレスに関連したDRAMのデータを読み出すため
、DRAMメモリ・アクセス・サイクルを開始し、完成
する。
このデータは、DRAMデータ・バスγ0を介してキャ
ッシ・メモリ60に供給される。前述したように、4つ
のワードの全てが、DRAM32からキャッジφメモリ
60に転送される。キャッジ制候装置76は、プロセッ
サ30により供給された新しいデータを、キャッジ拳メ
モリ60のfrLいタグ・アドレスに書込む。プロセッ
サ30によセ供給されたアドレスの2つのLSBは、新
しいタグ拳アドレスに関連した4つのデータ・ワードの
どれが書込まれるべきかを示している。残りの3つのワ
ー ドは、DRAM32からフェッチされているので、
4つのワードの全部がバリド・データを含んでいるとい
う結果になる。キャッジ制御装置T6は、CAM63に
記憶されたタグ・アドレスにバリドおよびモディファイ
ド・ビットを設定して、キャッシ・メモリ60における
タグ・アドレスのデータが、DRAM32におけるその
アドレスの対応するデータよシも新しいことを示す。
任意に選択されたタグがバリドで変更されていることを
キャッジ制御装[76が決定すると、キャッジ制御装置
T6は、キャッジ−メモリ60の任意に選択されたタグ
・ロケーション(”第1タグ・アドレス″)を読み出し
、かつTAHR710対応するタグ・アドレスとデータ
をTDHRγ2に書込む。キャッジ制御装置γ6は、プ
ロセッサ30により供給された新しいタグ・アドレスを
DRAM32に供給し、かつDRAM32から得られた
データ?キャッシ・メモリ60に書込む。さらに、キャ
ッジ制御装置γ6は、CAM63の第1タグ−アドレス
をプロセッサ30により供給された新しいタグ・アドレ
スに置換する。対応するバリドおよびモディファイド・
ビットが設定される。その後、キャッジ制御装置76は
、プロセッサ30により供給された新しいデータをキャ
ッシ・メモリ60の新しいタグ・アドレスに書込む。T
DHRγ2に記憶された古いデータは、TAHR71に
−時的に記憶されていた、DRAM32の第1タグ・ア
ドレスに書込まれる。したがって、TDHRγ2に前に
記憶されたデータが、キャッシ・メモリ60に既に存在
しないが、データは、DRAM32に記憶され続ケ、キ
ャッシ・メモリとDRAMが更新されても、データは失
われない。
プロセッサ30が、新しいデータを書込むため、システ
ム・アドレス・バス50t−介uてアドレスを供給し、
かつアドレスが、キャッジ36に現在あるタグ・アドレ
スに対応している場合、キャッジ制御装置T6は、プロ
セッサにより供給された、キャッシ・メモリ60のタグ
争アドレスに新しいデータを書込むだけである。キャッ
ジ制御装置γ6は、CAM63に記憶されたタグ・アド
レスにモディファイ自ビットを設定し、キャッジ番メモ
リ60におけるタグ・アドレスのデータがDRAM 3
2におけるそのアドレスの対応するデータよ)も新しい
ことを示す。
第5図に示すように、バス・インタフエイスミ制御装置
64は、システム・アドレス・バス50とタグ・アドレ
ス・バス84に接続したアドレス・インクリーブ論理装
置52を含んでいる。本実施例において、アドレス・イ
ンタリープ論理装置52ハ、各キャッジをシステムの全
アドレス空間にインタリープすることにより、各DRA
Mに接続したキャッシ・メモリを有効に使用することが
できる。
たとえば、第2図の各DRAMメモリは、インタリーブ
することなく、連続するメモリのアドレスにデータを記
憶する。DRAM32がアドレスをOから4メガバイト
記憶する場合、DRAM34は、アドレスを4〜8メガ
バイト記憶する。彦お、本発明の分散アーキテクチュア
により、キャッジ36は、DRAM32に記憶されたデ
ータのサブセットだけを含み、したがって、DRAM3
2だけ(0〜4Mバイト空間)に記憶されたプログラム
は、キャッジ36だけをアクセスする(メモリの2にバ
イト)。システムには、キャッシ・メモリの4バイトの
全てが存在するが(キャッシ・メモリ36゜38にそれ
ぞれ2K)、アドレスの小さいレンジ(たとえば、0〜
4Mバイト)に記憶されているプログラムは、キャッジ
の2にの恩恵を得るだけであって、キャッジ38によ)
供給される他のキャッシ・メモリは、使用されない。ア
ドレス・インタリープ論理装置52を使用することによ
り、アドレスの小さいレンジに記憶されているプログラ
ムによって、両方のキャッシ・メモリ36.38を使用
することができる。
第5図には、アドレス・インクリープ論理装置52の回
路の概要図が示されている。なお、第5図では、不連続
なラインとスイッチ会デイバイスが示されているが、実
際には、アドレス・インクリープ論理装置52の回路は
、トランジスタ等の半導体デイバイスから成っている。
第5図において、システム拳アドレス・バス50’e介
してプロセッサ30により供給されたアドレスは、24
個の各ビット・ライン102〜125から成っている。
タグ・アドレス制御装置62に接続したタグ・アドレス
・バス84は、18本の各ビット・ライン304〜30
γおよび108〜121から成っている。ベース・アド
レス論理装置53に供給されるベース・アドレスは、4
つのビット・ライン322〜325から成っている。ア
ドレスの2つの最下位ビット(LSB)は、ビット・ラ
イン102,103により供給サレ、前述したように、
キャッシ・メモリにおけるデータの、どのワードが、プ
ロセッサに供給されるかを決定する。
スイッチ200m + 200b + 201 a+ 
201 b + 202a + 202b+203m、
203bは、ライン122〜125がライン322〜3
25にそれぞれ接続し、ライン104〜107がライン
304〜307 Kそれぞれ接続するように、配置され
ている。そこで、システム・アドレス・バス50に供給
されるアドレスは次のような図表で表わすことができる
BBBBTTTTTTTTTTTTTTTTTTLLこ
こで、ライン102〜125は、右から左に連続的に現
われ、ライン102(最下位ビット)は右端で、ライン
125(最有意ビット)は左端である。
1B″は、ベース・アドレス・ビットとして使用するこ
とを表わし @ T 11は、タグ舎アドレスービット
として用いることを表わし、また”L”は、2つのLS
Bを表わしている。
さらに、キャッジ36のベース・アドレス論理装[53
は、” oooo”(すなわちジイン322〜325が
全て低い場合)のアドレスに応答するよう設定されてい
ると仮定する。すると、DRAM32は、次のような全
システム・アドレスを含んでいる。
0000AAAAAAAAAAAAAAAAAAAAこ
こで、A″は、0または1のいずれかである。
ooooooooooooooooooooooooか
らooo。
11111111111111111111のアドレス
が、DRAM32に含まれる。これは、前述したようK
XOから4Mバイトのアドレスを含んでいる。壕だ、キ
ャラ738のベース・アドレン論理装置53が、”00
01”(すなわちライン322が高くかつライン323
〜325が全て低い場合)のアドレスに応答するよう設
定されていると仮定する。すると、000100000
000000000000000から00011111
1111111111111111のアドレスが、DR
AM34に含まれる。これは、4Mバイトから8Mバイ
トのアドレスを含んでいる。
000000000000000000000000か
ら000011111111111111111111
のアドレスにあるプログラムについて考える。これは、
DRAM32に含まれ、キャッジ36だけをアクセスす
る。
スイッチ200m 、200b 、201m 、201
 b 、202m 、202b 。
203a 、203bは、ライン123〜125がライ
ン323〜325にそれぞれ接続し、ライン105〜1
0γがライン305〜307にそれぞれ接続し、ライン
122がライン304に接続し、ライン104がライン
322に接続しているように配置されていると仮定する
。これは、第5図に示したようなスイッチの位置である
。したがって、システム・アドレス拳バス50に供給さ
れるアドレスは次のように表わされる。
BBBTTTTTTTTTTTTTTTTTTBLLス
イッチ200m 、200bO位置を変えることKより
、アドレス・ラインのうちの2つラインのビットが交換
されている。
キャッジ36のペース・アドレス論理装置は、”000
0”(ライン322〜325が全て低い場合)のアドレ
スに応答するよう設定されていると仮定する。DRAM
 32は、次の形の全システム・アドレスを含んでいる
000 AAAAAAAAAAAAAAAAAAOAA
ここで、”A″は、0かまたは1 のいずれかを表わし
ている。したがって、DRAM32には、oooooo
oooooooooooooooooo カら0000
0000000000000000001100000
0000000000000001000から0000
0000000000000000101100000
0000000000000010000から0000
0000000000000001001100011
1111111111111111000から0001
11111111111111111011のアドレス
が含まれる。また、キャッジ38のベース衛アドレス論
理装置53は、”0001”(す々わちライン322は
高く、ライン323〜325が全て低い場合)のアドレ
スに応答するよう設定されていると仮定する。DRAM
34は、次の形の全システム・アドレスを含んでいる。
000 AAAAAAAAAAAAAAAAAAIAA
ここで、A”は、Oかまたは1のいずれかを表わしてい
る。し、モがって、DRAM34にtよ、000111
111111111111111100から00011
11111111111111 i 1111のアドレ
スが含まれる。
DRAM32 とDRAM34は、0から8Mバイトの
アドレスを集団的に記憶する。DRAM 32 F’i
 、アドレスOで開始する最初の16バイトを記憶し、
DRAM34は、次の16バイトを記憶する。このよう
に1 メモリは、インタリープされ、連続する16バイ
トの別のグループは、別のDRAMiで記憶される。
ooooooooooooooooooo6ooooか
ら000011111111111111111111
のアドレスにある、前述したプログラムについて考える
。インタリーブにより、このプログラムは、現在、DR
AM32に半分、かつDRAM34に半分記憶され、キ
ャッジ36.38をアクセスする。
プログラムは、同じ大きさのままでおるが、プログラム
が使用し得るキャッジの量は、2Kから4にバイトの2
倍になるので、キャラ/・メモリを最大に利用できる。
さらに、4つのメモリ・ノードが、ペース33に設けら
れると、アドレス・インタリープ論理装置52のスイッ
チは、1ではなく2ビツトを交換するように設定される
ので、4ウエイ・インタリーブを行なう。実際、アドレ
スΦインタリーブ論理装置52のスイッチを適当に設定
することにより、2,4.8または16ウエイ・インタ
リーブを行なうことができる。
なお、多くの有効なインタリーブ組合せが可能である。
たとえば、6つのメモリ・ノードを有するシステムでは
、ノードの4つをインタリーブする4ウエイ・インタリ
ーブと、残りの2つのノードをインクリープする2ウエ
イ・インタリーブを行なう。
本実施例では、システムのキャッジ・ノードの全数によ
り決まる、スイッチ位置およびペース・アドレス・レン
ジが、各キャッジに関して設定され、これらは、ノード
の数が変わらなければ、リセットされない。ノードの数
は固定されていないので、別にメモリ・ノードを付加し
てもよく、この場合インタリープ・スイッチが調整され
る。本発明のアドレス・インタリープ論理装置52を使
用することによムバス33に接続されたキャッシ・メモ
リを最大限に用いることができ、しかも従来のキャッジ
・システムに伴なう問題の多くを解決することができる
以上のように、システム性能を改善するのに分散アーキ
テクチュアを用いている本発明のキャツシ・アーキテク
チュアについて、第1図乃至第5図に基いて述べてきた
が、本発明は、これら実施例に限定され危いことは、当
業者には明白であろう。
【図面の簡単な説明】
第1図は、代表的な従来のキャッジ装置のブロック図、
第2図は、本発明の基本的アーキテクチュアのブロック
図、第3図は、本発明により使用されるキャッシ・メモ
リの詳細なブロック図、第4図は、本発明のプロセッサ
により使用されるアドレス・ビット・アロケーションの
概要図、第5図は、本発明のアドレス・インタリープ論
理装置を示した図である。 10.30拳・・・プロセッサ、12,36゜38φ・
・争キャッジ、16,18,32,34・Φ・・DRA
Mメモリ、20,22.40,42・ $ ・ ・ I
lo 、   23.43−  番 ・ ・ DMA、
46・・・拳システム・テーク・バス、48・拳拳Φ制
御バス、50・・・φシステム・アドレス−バス、53
−・・・ベース・アドレス論理装置、60・・・・キャ
ラ7・メモリ、62・・φ・タグ・アドレス制御装置、
63・・・・CAM、64・・拳・バス・インタ7エイ
ス制御装置、80・・・・DRAM制御装置、84・・
・・タグ・アドレス拳バス、9011−・・クロック9
バツフア。 特許出願人 サン・マイクロシステムズ・インコーホレ
ーテッド 代理人山 川 政 樹(ほか2名)

Claims (1)

  1. 【特許請求の範囲】  バスを介して複数のデータ処理リソースに接続したプ
    ロセッサを含んでいるデータ処理装置において、 アドレスによりそれぞれ定義された複数のデータ蓄積ロ
    ケーションを含み、かつ上記バスに接続し、データを記
    憶するメモリ装置と、 上記メモリ装置と上記バスの間に接続し、上記メモリ装
    置の蓄積ロケーションに対応するアドレスを有する複数
    のデータ蓄積ロケーションにおいて、上記メモリ装置に
    記憶された上記データのサブセットを含んでいるデータ
    を記憶するキャッシ・メモリ装置と、 から成り、上記キャッシ・メモリ装置は、 上記バスを介して上記プロセッサにより伝送されたアド
    レスを受信し、かつ上記アドレスされたデータが上記キ
    ャッシ・メモリ装置に記憶されているかどうかを決定し
    、その後、上記キャッシ・メモリ装置における上記デー
    タをアクセスして、上記メモリ装置のデータ・アクセス
    ・サイクルを開始しないですむようにしたコントローラ
    装置にして、上記アドレスされたデータが上記メモリ装
    置にだけ記憶されている場合には、上記コントローラ装
    置は、上記メモリ装置における上記データをアクセスす
    るコントローラ装置を含み、 上記キャッシ・メモリ装置に記憶された、上記プロセッ
    サによりアドレスされたデータは、上記メモリ装置のデ
    ータ・アドレス・サイクルを開始することなくアクセス
    されることを特徴とするデータ処理装置。
JP1005861A 1988-02-16 1989-01-12 データ処理装置 Pending JPH01229345A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15738988A 1988-02-16 1988-02-16
US157389 1988-02-16

Publications (1)

Publication Number Publication Date
JPH01229345A true JPH01229345A (ja) 1989-09-13

Family

ID=22563521

Family Applications (1)

Application Number Title Priority Date Filing Date
JP1005861A Pending JPH01229345A (ja) 1988-02-16 1989-01-12 データ処理装置

Country Status (5)

Country Link
JP (1) JPH01229345A (ja)
AU (1) AU2278688A (ja)
DE (1) DE3903066A1 (ja)
FR (1) FR2627298A1 (ja)
GB (1) GB2215099A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005190494A (ja) * 1999-01-21 2005-07-14 Sony Computer Entertainment Inc 高速プロセッサシステム、これを使用する方法及び記録媒体
US7028141B2 (en) 1999-01-21 2006-04-11 Sony Computer Entertainment Inc. High-speed distributed data processing system and method

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2938511B2 (ja) * 1990-03-30 1999-08-23 三菱電機株式会社 半導体記憶装置
US5404484A (en) * 1992-09-16 1995-04-04 Hewlett-Packard Company Cache system for reducing memory latency times
DE10151733A1 (de) * 2001-10-19 2003-04-30 Infineon Technologies Ag Prozessor-Speicher-System
CN115982068A (zh) * 2022-12-30 2023-04-18 苏州盛科通信股份有限公司 数据处理方法及相关装置

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4056845A (en) * 1975-04-25 1977-11-01 Data General Corporation Memory access technique
DE3068498D1 (en) * 1979-05-09 1984-08-16 Int Computers Ltd Hierarchical data storage system
CA1168377A (en) * 1980-04-25 1984-05-29 Michael L. Ziegler Data processing system having a memory system which utilizes a cache memory and unique pipelining techniques for providing access thereto
US4646237A (en) * 1983-12-05 1987-02-24 Ncr Corporation Data handling system for handling data transfers between a cache memory and a main memory
US4725945A (en) * 1984-09-18 1988-02-16 International Business Machines Corp. Distributed cache in dynamic rams

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005190494A (ja) * 1999-01-21 2005-07-14 Sony Computer Entertainment Inc 高速プロセッサシステム、これを使用する方法及び記録媒体
US7028141B2 (en) 1999-01-21 2006-04-11 Sony Computer Entertainment Inc. High-speed distributed data processing system and method

Also Published As

Publication number Publication date
GB2215099A (en) 1989-09-13
GB8822580D0 (en) 1988-11-02
FR2627298A1 (fr) 1989-08-18
DE3903066A1 (de) 1989-08-24
AU2278688A (en) 1989-08-17

Similar Documents

Publication Publication Date Title
US4577293A (en) Distributed, on-chip cache
US5329629A (en) Apparatus and method for reading, writing, and refreshing memory with direct virtual or physical access
US6477621B1 (en) Parallel access virtual channel memory system
US5640534A (en) Method and system for concurrent access in a data cache array utilizing multiple match line selection paths
US5813031A (en) Caching tag for a large scale cache computer memory system
US4400774A (en) Cache addressing arrangement in a computer system
US5421000A (en) Memory subsystem having a static row memory and a dynamic RAM
US6507897B2 (en) Memory paging control apparatus
US5668972A (en) Method and system for efficient miss sequence cache line allocation utilizing an allocation control cell state to enable a selected match line
US5805855A (en) Data cache array having multiple content addressable fields per cache line
US5724547A (en) LRU pointer updating in a controller for two-way set associative cache
JPH0955081A (ja) ダイナミックランダムアクセスメモリシステムを制御するメモリコントローラ、およびダイナミックランダムアクセスメモリシステムへのアクセスの制御方法
JPH0195346A (ja) バスマスタ
US6363460B1 (en) Memory paging control method
US5890221A (en) Method and system for offset miss sequence handling in a data cache array having multiple content addressable field per cache line utilizing an MRU bit
US5553270A (en) Apparatus for providing improved memory access in page mode access systems with pipelined cache access and main memory address replay
JPH0195345A (ja) バスマスタ
EP0535701A1 (en) Architecture and method for combining static cache memory and dynamic main memory on the same chip (CDRAM)
JPH01229345A (ja) データ処理装置
KR100298955B1 (ko) 데이타처리시스템
EP0474356A1 (en) Cache memory and operating method
JP2000267930A (ja) メモリアクセス追跡のメモリページ管理装置および方法
KR100417548B1 (ko) 집적된캐쉬메모리와,디지탈메모리에서메모리소자에데이타를제공하는방법
US6385687B2 (en) Method and apparatus for simultaneously accessing the tag and data arrays of a memory device
JPH0465739A (ja) メモリ制御装置