[go: up one dir, main page]

JPS63257853A - キヤツシユ・メモリ・システム - Google Patents

キヤツシユ・メモリ・システム

Info

Publication number
JPS63257853A
JPS63257853A JP63022176A JP2217688A JPS63257853A JP S63257853 A JPS63257853 A JP S63257853A JP 63022176 A JP63022176 A JP 63022176A JP 2217688 A JP2217688 A JP 2217688A JP S63257853 A JPS63257853 A JP S63257853A
Authority
JP
Japan
Prior art keywords
cache
address
partition
bus
plat
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
JP63022176A
Other languages
English (en)
Other versions
JPH0551936B2 (ja
Inventor
ジエームズー・ジエラード・ブレンザ
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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPS63257853A publication Critical patent/JPS63257853A/ja
Publication of JPH0551936B2 publication Critical patent/JPH0551936B2/ja
Granted legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/0844Multiple simultaneous or quasi-simultaneous cache accessing
    • G06F12/0846Cache with multiple tag or data arrays being simultaneously accessible
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/084Multiuser, multiprocessor or multiprocessing cache systems with a shared cache

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

【発明の詳細な説明】 ん 産業上の利用分野 本発明は、コンピュータ・システムにおけるキャッシュ
・メモリの分野に関する。キャッシュ・メモリは、機能
に応じて様々なタイプがあるが、一般的に言1て、コン
ピュータ・システムが直ニ働きかける、情報の一時的な
記憶機構であり、大規模なメイン・メモリ・システムと
は別個のものである。キャッシュ・メモリがメイン・メ
モリに接続されたり、働きかけたりする方法は、コンピ
ュータのパフォーマンスにとつと重要である。本発明は
、特にセクションまたはパーティション(区画)に分け
られ、パーティション・ルックアサイド・テーブル(p
artion 1ook−aside table。
以下、PLATと略す。)を備えたキャッシュ・メモリ
に関する。PLATは、キャッシュへのアクセスがなさ
れるとぎに、情報を持つキャッシュ区画を識別する。ア
クセス対象の情報の場所を識別できないとき、PLAT
は他の機能を開始する。
B、従来技術およびその問題点 高速の、ンアイスティケートされたコンピュータのパフ
ォーマンスにおいて最も重要なファクタの1つは、連想
(associated)メモリ・システムのパフォー
マンスである。このようなコンピュータ・システムでは
、入出力情報の処理はキャッシュ・メモリの使用を通じ
て促進されるであろうと考えられている。キャッシュ・
メモリの容量が大きくなればなるほど、そして動作速度
が高速になるほど、コンピューターシステム全体のパフ
ォーマンスが良くなることが知られている。キャッシュ
・メモリのパフォーマンスを向上させる様々な先行技術
がある。その中には、種々の組織的関係にあるマルチ・
キャッシュ・メモリの使用が含まれる。例えば、命令(
インストラクション)とデータについて別個のキャッシ
ュ・メモリヲ使うことが知られている。他のキャッシュ
・デザインによれば、2つのキャッシュが奇偶インター
リーブ・デザインにおいて並列に使用され、データ・ス
トリング轟りの、キャッシュから情報をメモリ・アクセ
スする時間が改善される。また、他のキャッシュ・デザ
インでは、階層をなして並べられた様々なサイズのキャ
ッシュが用いられる。これらの中には、2以上の処理要
素または実行装置によって使用され、短い時間でいくつ
かの種々のキャッシュ・アクセスが開始され得ることを
意図しているものもある。
こういった従来のデザインの典型的な問題点の1つは、
キャッシュ・リクエストがなされたときに、キャッシュ
がサーチを行って情報がアベイラブル(使用可能)か否
かを決定しなければならないことである。キャッシュ・
アクセスが成功したなら、リクエストを出している要求
ユニットへ情報が渡される。情報が使用可能でないなら
ば、続いてキャッシュΦミス拳ルーチンが呼ばれ、要求
ユニットが待機したり他のことをしている間、メモリの
他のレベルからリクエストされた情報を呼び出す。はと
んどのキャッシュ・デザインでは、キャッシュ・ミスが
生じるとかなりの時間ペナルティがあるので、キャッシ
ュ・ミスが頻発することのないようにデザインが最適化
されている。
従来、通常のマルチ(多重)プロセッサ環境は、プロセ
ッサ毎に独立したキャッシュ・メモリを備えている。し
かしながら、共通のメイン−メモリを使うにもかかわら
ず、プロセッサ毎に独立したキャッシュを備えることは
、高価であり、非効率的である。さらに、2以上のプロ
セッサが同じ情報を使用する必要がある場合、異なるキ
ャッシュにおいて情報のマルチ・コピーを管理すること
は、困難、かつ複雑である。しかし、従来は、マルチプ
ロセッサ環境において、単一キャッシュを管理する場合
の複雑さまたは低効率と比べると多重共有キャッシュま
たは独立したキャッシュを管理する場合の方が好ましい
と示されている。
米国特許第41/59284号明細書には、各プロセッ
サ記憶リクエスト・サイクルに際してキャッシュ・アク
セス・タイミング・サイクルを2つ与えるキャッシュ・
メモリ拳コントロールが示すれている。このキャッシュ
は1サイクルにつき2゜以上のアクセスを可能にするけ
れども、時間インターリーブ式キャッシュを表わしてお
り、真の同時アクセス式キャッシュではない。
米国特許第4371929号明細書には、記憶域が区画
され、時間インターリーブ式に機能するキャッシュ・メ
モリが示されている。
米国特許第4441155号明細書には、キャッシュ・
ミス率を低くするためのキャッシュ・アドレッシング・
コントロール・システムが示すれている。
米国特許第4442487号明細書には、異なるレベル
のキャッシュ、およびキャッシュがプライペー)−キャ
ッシュ・システムと共有キャッシュ・システムに分かれ
ている様子が示されている。
プライベートおよび共有キャッシュ・システムは、互い
の間でのスイッチング機構を備えた、基本的には独立し
たキャッシュであり、同一のキャッシュの中の別個の部
分ではない。このデザインは、マルチプロセッサ・シス
テムにおいて、他のデザインだと必要になる相互の問合
せをなくしつつ、メモリ機構を共有することを可能にす
る。
米国特許第4463424号明細書では、キャッシュ・
メモリを使用するプロセスの要請に基づいてキャッシュ
Φメモリを区画して空間を割り振るキャッシュ管理シス
テムが示されている。区画の割振りはスーパバイザ・プ
ロセスが行い、物理的に決まっているわけではない。
米国特許第4464712号明細書では、独立したペー
ジのサブセットからなるキャッジ・ユ・メモリ・システ
ムが開示されている。ページ・サブセットは、キャッシ
ュ自答の交換(リフレースメント)のためのアクセスを
制御する交換フラグ機構に関連している。
米国特許第4484267号明細書では、各プロセッサ
カフライベート−キャッシュを持つマルチプロセッシン
グ環境が示されている。各キャッシュはディレクトリを
持ち、ディレクトリは関連キャッシュ番ラインがストア
・スル−またはストア・インのどちらのモードで動作す
るかを制御する共有フラグを含んでいる。このため、2
つの異なるタイプのキャッシュ動作モードが可能になり
、普通のキャッシュ・アクセス、および他のキャッシュ
との相互問合せの両方の処理に使える。
また、米国特許第4503501号明細書では、スーパ
バイザ・コントロール−システムによって領域へ区分さ
れるキャッシュ・メモリ空間が示されている。米国特許
第4495053号、第4195342号明細書では、
時間インクリープ式で動作するデュアル・ポート・キャ
ッシュが示されている。米国特許第3618041号明
細書では、命令とオペランドの異なるキャッシュへの分
離が示されている。米国特許第4502110号明細書
では、オペランド用メモリと命令用メモリのサイズが等
しいスプリット・キャッシュが示されている。
I BM  Technical Disclosur
e Bulletin。
Vol、22、No、2.1979年7月、851〜8
52ページに掲載されたPartitionedMem
ory  And  5plit  SCE  For
Asymmetric  Multiprocesso
r”という題の論文には、スーパバイザのコントロール
の下、メモリを2つのセクションに分け、アクセスを2
つのセクションのうちの1つに制限する電子的なフェン
スが示されている。
キャッシュ・メモリのデザインの改善の必要性はひき続
きあり、特に短時間の間にまたは実質的に同時にきわめ
て多数のリクエストを処理するのに使い得るキャッシュ
・デザインの必要性は高い。
C1問題点を解決するだめの手段 本発明は、改善されたキャッシュ・メモリ・システムで
ある。この改善されたキャッシュ・メモリは、多数の処
理エレメントを持つ環境、またはマルチプロセッサ環境
において、特に効果を奏するが、このような環境でなけ
れば効果を提さないというものでもない。
シングルCPUのコンチクストにおける多重処理には、
多数の命令処理ユニットと多数の実行処理ユニットが関
係する。オブジェクト・プログラムの実行に要する時間
を減らすために、該プログラムからの多数の命令を並列
に処理し、そして並列に多数の実行ユニットを呼び出す
ことが望ましい。このようなやり方には、多数の命令デ
コーダ、並列命令ストリーム、および「アウトψオプ・
シーケンス」実行が関係する。通常、キャッシュから命
令とデータ・オペランドの両方がリクエストされるので
、多数のキャッシュ・ポート、およびシングルCPUマ
シン・サイクルの間での多数の独立したキャッシュ動作
を提供することが望ましい。
本発明のキャッシュ・メモリは、M個のセクションに区
分されている。ここで、Mは2の累乗、例えば8である
ことが好ましい。キャッシュは、1サイクルにつき、1
区画(パーティション)において1つのイベント(事象
)を実行することができる。つまり、1サイクル尚りM
個のイベントが実行可能である。キャッシュはN個のボ
ートを持つ、ここで、NはM以下である。Nはマシンに
固有の数となるが、通常、M未満であり、2でファクタ
可能(factorable)である。本願の実施例で
は、キャッシュは8個の区画と6個のボートを持つ。な
ぜなら、これらの数は、デザインの複雑さおよびパフォ
ーマンスの改善の適当な尺度を考慮するとき、実現可能
で有用なデザイン・ファクタであると思われるからであ
る。もちろん、区画の数は8に限られない。4.16、
または62であって差し支えない。キャッシュを制御す
るのには、区画ルック・アサイド・テーブル(part
ition  1ook−aside  table、
PLAT)が使われる。PLATは、リクエストがキャ
ッシュに送られたときに情報を求めてアクセスすべき正
しい区画を識別する。
各区画は、独立して並列に動作する。各区画は、谷ママ
シン・サイクルで、ストアまたはフェッチ動作を実行し
得る。任意の区画が任意のボートに接続され得るように
、アドレス・スイッチ、データ・バス・スイッチ、およ
び特別な制御システムが提供される。したがって、区画
とボートの多数の組合せをサイクル毎に制御することが
できるので、キャッシュは各サイクルにおいてストアと
フェッチ8個の組合せを実行することができる。キャッ
シュは、区画の数が組連想式(set−associa
tive )ビンの藪に等しくなるように設計されてい
る。キャッシュ・データは、通常特定のビンに割り当て
られる全データが対応する現実の区画にも割り当てられ
るように、配置される。
すなわち、あるキャッシュ・ラインはある単独の区画の
中に完全に含まれている。したがって、リクエストが異
なるキャッシュ区画へ向けられろ場合、多数の実行ユニ
ットを有する1つのプロセッサはいくつかのストアおよ
びフェッチを同時に実行し得る。
P LATは、キャッシュを別間するとともに、最近ア
クセスされたキャッシュ・ライン・リクエストのセット
を、そのライン・アドレスについての区画割当識別子と
ともに記憶する。命令リクエスト用とオペランドΦリク
エスト用に、多数のPLATを用意することができる。
記憶された情報を使って、PLATは、マシンの生成し
たアドレスを、該情報がキャッシュに存在していると判
断した場合、正しいキャッシュ区画へ向ける。PLAT
におけるミスは、キャッシュ・ミスを意味するわけでは
ない。区画情報がPLATにないならば、グローバル・
リクエストを使って、キャッシュ・リクエストがすべて
の区画とキャッシュ−ディレクトリへ同時に向けられる
。グローバル・リクエストの結果として情報がキャッシ
ュにおいて見つかると、ライン・アドレスと区画識別子
を使ってPLATが更新される。情報がキャッシュで見
つからないならば、既知のキャッシュ・ミス・ルーチン
が使われる。例えば、ディレクトリ・ルックアサイド・
テーブル(Directory Look −Asid
e Table、 DLAT )を使って、メイン・メ
モリまたはより高レベルのキャッシュがアクセスさnろ
キャッシュ・ミス制御論理は、ある程度、LRU(最近
最も使われていない)アルゴリズムヲ採用している。該
アルゴリズムによって、より高レベルの記憶階層からフ
ェッチされた新しいラインがロードされる場所、つまり
このキャッシュの場合は区画番号を決定する。このよう
に、新しいキャッシュ・ラインは、LRU式ですべての
区画ヘローテートされる。
区画(された)キャッシュの実施例は、L1キャッシュ
と呼ばれ、プライベートなプロセッサ・キャッシュであ
る。L2、L3キャッシュは、L1干ヤツシュよりも大
規模で、かつメイン・メモリに近く、共有することも可
能である。最初、このL1キャッシュは、新しいライン
のロード動作に先立って古いラインのキャスト・アウト
を実行するわけではない。なぜなら、L1キャッシュの
ストア・スルーがインプリメントされるからである。つ
まり、すべてのストア・リクエストはLlへ、そして少
なくとも1つの高レベル記憶階層へ送られる。新しいラ
インのデータをキャッシュにロードする結果、M個の区
画のうちの1個だけがビジーになる。
D、実施例 第1図に示すコンピュータ・システム10は、多重中央
演算処理装置(CPU)12.114、′・・・、16
を含む。各CPUは、システム制御要素(SCE)18
に対する入出力接続を持っている。システム制御要素(
エレメント)18は、記憶階層20の中のL2(レベル
2)メモリへ接続されろ。
これはさらに記憶階層の後続レベルL3(図では22の
番号を付している)、L4(図では24の番号を付して
いる)に接続される。レベルの順に容量は大きくなり、
かつプロセッサから遠くなる。
目的は、メモリ・サイズの割に命令とデータとできるだ
け近づけることにある。コンピュータ・システムにおけ
る多重記憶階層の使用は知られている。上記レベルを示
したのは、デザインのプラクテイスを説明したまでであ
って、区画キャッシュの特定の要請に基づくものではな
い。システム制御要素18も、様々なチャネル26.2
8.30を持つ。これらのチャネルは、ターミナル、プ
リンタ、およびディスク・ドライブ等であり得る入出力
デバイスへ至る接続をもたらす。
各CPUは、命令および実行ハードウェア(符号32を
付す)とハードウェア故障テスト論理(番号40)を持
つ。命令・実行ハードウェア32は、各CPUが従来の
種類のコンピュータ操作を実行することを可能にする。
CPUに関連するのはLl(レベル1)キャッシュ彎メ
モIJ −シスfムであり、これが本発明による区画さ
れたキャッシュ[株]メモリ34になる。このキャッシ
ュ64は、メモリがM個に区画され、データ・ノくス3
乙によって命令・実行ノ・−ドウエア・ユニット62へ
接続される。命令・実行ユニットのために意図された最
適なデータ・フローの要請に応じて、データ・バスはN
本まで使用できる。
命令・実行ハードウェア32によって呼ばれた記憶階層
の中の情報の発見を容易にするために、ディレクトリ3
8が備えられる。ディレクトリ68は、制御バスおよび
データ・バス39によって命令・実行ノ・−ドウエア3
2に接続される。
ハードウェア故障テスト論理40は、命令・実行ハード
ウェア、ディレクトリ、およびキャッシュの間のアドレ
ス、データ、および制御バスをモニタする。これらのバ
スの何れかで万一故障が起こると、診断、リカバリ、ま
たはその他の訂正活動のために、特定の故障に関連する
故障ラッチがセットされ得る。
同じシステム制御要素18に接続された他のCPUも同
様の内部構造を持つ。すなわち、命令・実行ハードウェ
ア、ローカルの区画キャッシュ・メモリ、記憶階層の内
容にアクセスするための適当なディレクトリを持つ。
第2図ては、本発明に基づく区画キャッシュとPLAT
の構造が示される。M個のキャッシュ区画を持つキャッ
シュ・メモリ50が示されている。
この図の実施例では、簡単にするため、キャッシュ区画
が8個示されている。これは、区画キャッシュ・メモリ
の利点を得るのに加え制御を管理可能にする上でも、多
くの目的のために適切な数であると思われる。
様々なキャッシュ区画50が、データ・バス・スイッチ
機構52を介してN個のデータ・バス・ポートへ接続さ
れる。この場合、6個のデータ・バス・ポートが使われ
る。なぜなら、8個の区画を持つキャッシュ・メモリと
効率よく働くのに適当な数であると思われるからである
データ・バス・スイッチ52は、入力制御ハス・ユニッ
ト54の制御下にある。該ユニット54は、データ・バ
ス・ポート用の適当な制御信号を出力する。キャッシュ
は、出力制御バス・二二ソト56も持つ。該ユニット5
6は、出力データ轡バス構造体を制御する。入力11J
御バス・ユニット54は入力アドレス・スイッチ58に
接続される。
スイッチ58は、アドレス・リクエストψバス60によ
る制御の下、要求されたアドレスを適当な区画へ割り当
てる。入力制御バス・ユニット54はデータ・バス・ス
イッチ52へも接続される。
スイッチ52は、データ・バス・ポートヲアドレ ′ス
された区画へ割り当てる。
入力制御バス・ユニット54は、2本の制御バス62.
64と接続される。制御バス62はC1ハステアリ、キ
ャッシュ・ユニットのグローバルなリクエストを扱う。
キャッシュ・ユニットのグローバル・リクエストは、同
時にキャッシュの全区画に向けられる5リクエストであ
る。この1:とは後で詳しく説明する。制御バス64は
C2バスであり、特定の選ばれた区画へ向けられるキャ
ッシュ・ユニットのローカル・リクエストを扱う。キャ
ッシュ会ユニットのローカル争リクエストについても後
で詳しく説明する。
出力制御バス−ユニット56は、キャッシュからのロー
カル出力制御信号を扱うC3バス66へ接続される。ロ
ーカル出力リクエストの重要性は後で説明するけれども
、キャッシュのどんな内容もある特定の区画に存在して
いるわけだから、特定の区画だけが出力リクエストを出
すであろうし、したがって出力リクエストはすべてロー
カルであって、グローバルとなり得ないことがわかるだ
ろう。
各CPUは、それに関連して様々な演算および論理ユニ
ットを持つ。第2図では、種々の要素(エレメント)7
0.72.74、・・・76を持つあるCPUが示され
ている。これもめユニットは望むどんなダイブのもので
あってもよい。これらは、算術、論理、または命令処理
要素の様々な組合せによって構成される。データ・バス
・スイッチ52からのデータ・バスのそれぞれは、フェ
ッチ・バッファと記憶(ストア)・バッファの組合せを
介してこのCPUのグループへ接続される。
結果として、CPUへ至る複数の入力および出力データ
・バスが形成される。したがって、データ・バスが6本
ある場合、その5ちの6本がフェッチ・バッファ80.
82.84へ接続可能であり、2本がストア・バッファ
86.88へ接続可能である。これらのバッファのすべ
てが、CPU1そしてその様々な要素へ接続される。
CPUは、メモリ階層へのリクエストを複数のアドレス
生成機構90.92.94.96、そして98に対して
起こす。アドレス生成ユニットは関連する(assoc
iated )PLATへ接続されている。したがって
、CPUは複数のPLATユニット100.102.1
04.106、そして108を持つ。生成されたアドレ
スは、関連PLATへ行くだげでな(、各アドレス生成
機構についてのアドレス・バスにのせられ、アドレス・
リクエスト−バス60にのせられる。入力アドレスを受
け取ると、各PLATは、区画キャッシュのグローバル
・リクエストを01バスへ出力するか、または区画キャ
ッシュのローカル・リフエストラ、C2バスのうちの選
ばれたものを使って出力する。
各PLATは、出力制御バス舎ユニット56から来る、
ローカル入力制御信号がのる入力バスを持ツ。一般に、
論理ユニット70のような中央プロセッサ論理ユニット
がメモリに対してリクエストを出すと、90のようなア
ドレス生成ユニットがアドレス・リクエスト・バス60
にアドレス・リクエストを出力する。このリクエストは
アドレス・スイッチ58とPLATlooの両方へ行く
PLATが、リクエストされた情報の置かれた区画を識
別できるならば、ローカル・リクエスト・バス64にリ
クエストが出され、入力制御バス・ユニット54へ送ら
れろ。この結果、アドレス・スイッチ58によって、リ
クエストされたアドレスが、キャッシュの中のリクエス
トされた情報を1.含む特定の区画だけへ向けられる。
データ・バス・スイッチ出力52は切り換えられて、リ
クエストされた情報をその位置する特定のパーティショ
ンからそのために情報が獲得された特定の要求ユニット
へ渡す。PLATが特定区画を識別できない場合、グロ
ーバル・リクエスト・バス62が活勧化され、アドレス
・スイッチによってアドレスがキャッシュ・メモリの全
区画へ渡される。
ライン・フェッチ・バッファ110は、リクエストされ
た情報がキャッシュ50にない場合に、それを求めてリ
クエストが階層の中の次のレベルのメモリへ回されるよ
うにするためのものである。
したがって、ラインーフェッチ・バッファ110はキャ
ッシュのデータ働ポートの1つに接続される。この例で
は、N番目、つまり最後のポートに接続されるものとし
て示されている。ライン・フェッチ・バッファは、アド
レス・リクエスト・バス60、および制御バス64つま
り制御信号へも接続される。図では、記憶階層の次のレ
ベルからのデータ・バスが112として概略的に示され
ている。ライン・フェッチφバッファ110は、その内
容をキャッシュに記憶するときに、選ばれたただ1つの
キャッシュ区画にアクセスするだけでよいことに注意す
ることは重要である。ライン・フェッチ・バッファがキ
ャッシュに記憶させているとき、他のキャッシュ区画は
普通に動作し得る。
第16図も参照されたい。
一般的に言って、第2図に示されるシステムは次のよう
に動作する。
キャッシュは複数のセクション、つまり区画(パーティ
ション)に分割される。各区画は独立に、そして他の区
画と並列に動作する。各区画はマシン・サイクル毎に記
憶動作またはフェッチ動作を実行し得る。アドレス・ス
イッチ58、データ・バス・スイッチ52および適当な
制御システムを備えたのは、任意の区画が任意の入力ポ
ートまたは出力ポートへ接続可能とするためである。し
たがって、メモリ動作の単一サイクルの間に、区画とボ
ート接続の多重の組合せが活動化し得る。このため、キ
ャッシュは、単一のマシン・サイクルの間に、ポート数
以下の数の記憶とフェッチの組合せを実行することがで
きる。
区画の数は、キャッシュ・デザイン用に選ばれたセット
連想(5et−associatfve )ビンの数に
等しい。キャッシュ拳データの配置は、特定のピンに通
常割り当てられるすべてのデータが物理的な区画に対応
して現れるように割当てられる。
区画ルックアサイド・テーブル(PLAT)は、プロセ
ッサ・デザインに組み込まれる。PLATの厳密な論理
的・物理的配置は設計者に関係し、マシンの編成に依存
する。2以上のPLATにとって適切な配置は、プロセ
ッサの中のアドレス生成ハードウェアの近くである。典
型的な中央プロセッサ・オーガニゼーションを扱うため
に、多重PLATを用いることができる。例えば、PL
ATのあるタイプは命令リクエストの処理用に理想的に
設計されていてもよいし、またあるものはデータ・オペ
ランド・リクエスト用に使ってもよい。
どちらかのタイプのマルチ・コピーがCP U 論Wユ
ニットによって独立に使用され得る。
PLATは、最も新しくアクセスされたL1ラインーア
ドレスのセットを、かかる各ラインーアドレスの区画識
別子とともに記憶する。P LATは、高いパーセント
のL1キャッシュeアクセス要求において、マシン生成
アドレスを正しいL1キャッシュ区画へ向ける。このよ
うなリクエストはローカル−リクエストと呼ばれ、ロー
カル制御ライン・バス64を使用する。PLATミスが
生じると、対応するL1ラインに割り当てられた区画を
決定するために、生成されたアドレスをすべての区画に
同時に向ける必要がある。この場合、グローバル制御ラ
イン・バス62が使用される。
このとき、PLATO中に新しいエントリが設けられ、
ライン・アドレスと区画識別子が記憶される。同じL1
ラインに対する後続の記憶またはフェッチのリクエスト
は、該エントリがPLATからエージングされる(ag
ed )まで、正しい区画へ向けられる。
理想的には、本発明の区画キャッシュ・メモリによる最
良のパフォーマンスは、ポートの数が区画の数に等しく
、シかもアクセス(excess)・サイクル毎に各ポ
ートがある区画と接続される場合に得られる。しかしな
がら、メモリ・アレイeチップ当りの入出力接続数等の
物理的な制約により、ポートの最大数は制限される。
アドレス・ポートとデータ・ポートの間には直接的な対
応がある。つまり、アドレス・ポート1はアドレス・ス
イッチ58に接続されるが、それに対応してデータ・バ
ス・スイッチ52へ接続すれるデータ・ポート1がある
といった具合である。
こういったポートのベアは、ハードウェアにおいて固定
される。さらに、単方向のバス・ドライバを用いた場合
、各データ・ポートはフェッチ・ポートまたはストア・
ポートのどちらがである。CPUポートにて2重ドライ
バとデータ・スイッチを使う場合、各ポートはフェッチ
・ポートとストア・ポートの両方の機能を果たし得る。
しがし、実施例では、ポートは単方向ポートとして、フ
ェッチ・ポートまたはストア・ポートのどちらかである
として、説明する。
上記のように、アドレス・スイッチは、グローバル・リ
クエスト拳モードまたはローカル・リクエスト・モード
のどちらかで機能し得る。グローバル・リクエストの場
合、アトじス・スイッチに供されたアドレスがキャッシ
ュの全区画へ同時に供される。したがって、アドレスは
、すべてのディレクトリ・エレメントおよびすべてのキ
ャッシュ・メモリ区画へ同時にスイッチされる。これは
、グローバル制御バス62の制御に基づいている。
グローバル制御サイクルは、キャッシュの中でデータが
有効ならば8個のディレクトリ・エレメントの1つの比
較結果が正となり対応するキャッシュ区画へのゲートを
開(という意味において、従来のキャッシュを使った場
合のように実行される。
この出力は要求データ中ポート会パスへスイッチされる
。1つのグローバル・リクエストは単一のマシン・サイ
クルで実行され得る。
ローカル・リクエストの場合、アドレスはM個のキャッ
シュ区画のうちの選ばれた1つヘスイソチされる。そし
て、ローカル・リクエスト処理用にブイレフ) IJが
使用されることはない。単一のマシン争サイクルの間に
、キャッシュ・メモリへ至るポートと同じ数のローカル
・リクエスト・アドレスがキャッシュ区画ヘスイッチさ
れ得る。これは、各ローカル・リクエスト・アドレスが
どの区画に対するものかに依存する。したがって、アド
レスされた区画のそれぞれが、単一のポートへ一意的に
接続され得る。連続するマシン・サイクルで、同じ区画
へ多数のリクエストを出しても差し支えない。入力制御
バス62.64は、個々のアドレス・ポート毎に、要求
アドレスがグローバル・リクエストまたはローカル・リ
クエストの何れであるか、そしてどのポートがアクセス
されるかを決定する。リクエストがローカル・リクエス
トならば、制御バス64によって、ターゲット・キャッ
シュ・ライン用に区画識別子が符号化される。
データ・バス・スイッチ52を用いて、フェッチ・リク
エストの度に区画キャッシュ・アレイ50からの出力が
データ・バス・ポートヘスイッチされるとともに、スト
ア・リクエストについてはデータ・バス・ポートからの
入力が区画キャッシュ・アレイヘスイッチされる。要求
アドレスがグローバル自リクエストであるとき、つまり
PLATミスを示すときに、データが現実にキャッシュ
の中で見つかると、リクエストされたデータをCPUへ
返すだけでな(、区画識別子も制御バス66を経てCP
Uへ返される。その結果、PLATが該情報をそのアレ
イに追加する。PLATの中では新しいエントリが生成
され、ターゲット・キャッシュ・ラインアドレスと区画
識別子の両方が記憶される。該キャッシュ・ラインが続
いて参照されるときは、PLATヒツトとなり、ローカ
ル・リクエストが行われる。
この例では、キャッシュがN個(6個)の直接アクセス
・ポートを持ち、CPUにはキャッシュへの直接アクセ
ス壷ポートが(N−1)個割り当てられている。したが
って、プロセッサの持つキャッシュにアクセスするため
のポートの数は、キャッシュのポートの数より1つ少な
い。このケースでは、プロセッサには、キャッシュへの
直接アクセス・ポートが5個割り当てられている。最後
のポートは、ライン嗜フェッチ・バッファ110のプツ
ト・アウェイ(pu t−away)操作のために予約
されている。単方向バッファの場合、各ポートはフェッ
チ・ポートまたはストア・ポートのどちらかである。今
の例では、ポート1.2.6がフェッチ、バッファ80
.82.84へ割り当てられる一方、ポート4.5.6
がストア・ポートとしてストア・バッファ86.88へ
、そしてライン・フェッチ・バッファ110へ害IJり
当てられる。各ポートは、CPUのフェッチまたはスト
ア・バッファが終端となっている。これらのバッファの
サイズはその最適デザインおよびバス転送サイズに応じ
て、例えば8〜512バイトといった具合に、変化し得
る。
CPUの個々の細部(サブディビジョン)は象徴的なも
のであり、多くの動作が並列して実行され、したがって
1命令当りの平均サイクル数を減らすべく1サイクル当
りキャッシュ・\多数のアクセスを要するような、そう
いったCPUデザインを表現することを意図している。
1以上の細部を、コンピュータの可能な様々な機能を示
す、命令プロセッサ、固定小数点演算ユニット、浮動小
数点演算ユニット、ベクトル・プロセッサ等であると考
えてよい。キャッシュ・ポートのCPU機能への最適な
割当ては、CPUデザインの最適1ヒ(l?:基づ(。
それには、キャッシュに与えられたポートの総数に対す
るストア・ポートとフェッチ・ポートの組合せの最適化
が含まれる。
70.72.74.76等の、中央プロセッサの各細部
(サブディビジョン)は、そのプロセッサ機能に加えて
、命令フェッチ、オペランド・フェッチ、またはオペラ
ンド・ストアに応じてキャッシュ・データが必要なとぎ
にアドレスを生成するハードウェア能力を持つ。これが
、アト°レス生成ユニット(ADDR)90.92.9
4.96.9B として示されている。アドレス生成は
、カウンタのインクリメント、アレイ・スタックからの
アドレスの読取、アドレス生成加、算器からの、結果の
受取等からなる。アドレスが与えられると、アドレスは
アドレス拳リクエストーバス60にのせられる。
バス60は、アドレス・′スイッチ58のみならず、1
00.102.104.106.108等のローカルP
LAT1そしてライン・フェッチ・バッファ110につ
ながっている。ライン・アドレスはローカルPLATに
おいてテストされる。PLATミスが生じると、PLA
Tはグローバル制御バス62に該PLATについてはグ
ローバル・リクエストであることを示すビットを出力す
る。PLATヒツトが生じた場合は、ローカル・リクエ
スト制御バス64のボジンヨンのうちの1つに、アドレ
スが向けられるべき区画を示すビットが出力される。ロ
ーカル制御バスのポジションにこのピットを出すことに
よって、ローカル・リクエストの存在の表示とリクエス
トされたデータに対応するキャッシュ区画の識別の両方
が行われる。
第2図のシステムは各CPU論理ユニットについて1つ
のPLATしか用意していないけれども、デザインの要
請に応じてPLATの様々な配列が可能である。異なる
機能のタイプ毎に異なるタイプのP LATを備えるこ
とが望ましい。どのタイプのものも、当該機能を営む各
CPU論理にて複製可能である。例えば、データ・オペ
ランドのフェッチとストア用に理想的なタイプが備えら
れる。
どのタイプのものも、マルチ・コピーヲCP U 論理
区画に戦略的に位置させてよい。各PLATは小さなレ
ジスタ・アレイであり、例えば、1〜4個の比較器を持
つ。各PLATK必要なノ・−ドウエアの量が比較的少
な(・ので、ハードウェアの複製は難しくない。PLA
Tアレイの「組連想式(set−associativ
e ) J配列はそのノぐフオーマンスを向上させるの
で、多数の比較器を備えても差し支えない。
第6図は、第2図の区画キャッシュ50の具体例を詳細
に示している。グローバル・バス62は、中央プロセッ
サのポート1〜5をサービスする。
クローバル制?1flJバスの各ピットは、CPUの要
求ユニットヲ表示する。バス62は、グローバル・ポジ
ションを持ち得るのだけれども持たない。なぜなら、常
に、ライン・フェッチ・バッファのプツト・アウェイは
、LRU論理に基づき、アクセスを行う正確なキャツ/
ユ区画がわかって℃・るローカル・リクエストだからで
ある。各P L A T pイブは、番号66で概略的
に示される、ローカル制御出力バスC3を持つ。二こで
は、1つのタイプが命令アドレス用であり、もう1つの
タイプがデータ・アドレス用である。何れもが、多重P
LATコピーへ至る多重コネクションを持つ。この制御
バス66によって、グローバル−ディレクトリ・サーチ
の結果決定された区画識別子が返され、特定のP LA
Tに新しいエントリとして記憶される。ライン・プツト
・アウェイ用には、第2図に示されるポート6が使われ
ローカルC3出力制御バスは使用されない。なぜなら、
ボート6は、第15図で詳しく示すように、最近最も使
用されなかった( LRU )制御システムからストア
・リクエスト用の区画識別子を受け取るからである。出
力制御バスC6は、後述する有効ストア・ラインも含む
。図面には、区画キャッシュの内部構造も示されている
。各区画は、アドレス・スイッチ、区画ディレクトリ、
実際のキャッシュ・メモリ・アレイ、およびデータ・バ
ス・スイッチを含む。
第4AN 4B、4C1および4D図には、第2図に示
すようなキャッシュ・メモリ5008個のキャッシュ区
画のそれぞれが示されている。そこでは、そのディレク
トリ・アレイ、メモリ・スタック・エレメント、および
ディレクトリ−エレメントが、制御バス構造に接続され
ている様が示されている。アドレスおよびデータのバス
はこの図では示されていないが、他の図で詳しく示され
ている。グローバル制御バス人力62のすべてのライン
は、8個のディレクトリ−エレメントのすべて、つまり
D I R,1〜DIR,8へ向けられている。ローカ
ル制御ハスC2は6コンポーネントφグループの制御ラ
インに分かれる。各コンポーネントはメモリ・スタック
毎に1本のラインを持つ。
したがって、ローカル拳バス人力64のコンポーネント
・ラインのそれぞれは、メモリ・アレイのターゲット区
画メそり・スタック(STK)へ向けられている。
ローカル制御バス出力66のラインは、ディレクトリ・
エレメントの各々の中のレジスタから導かれる。この説
明では、レジスタは3ピツトであり、各ビットは次のよ
うな機能を持っている。すなわち、ビット1は、命令タ
イプPLATを示す区画識別子である。ビット2は、デ
ータータイプPLATを示す区画識別子である。ビット
3は、有効ストア表示ラインである。ディレクトリ・エ
レメント用のレジスタは、メモリ構成の必要に応じて、
他の構成をとってもよいし、異なる機能を持ってもよい
。ディレクトリの中のレジスタの各ビットに対応させた
ローカル出力バスはユニークなラインを構成するので、
信号を生成する特定キャツンユ区画ディレクトリの識別
が可能である。
このようにして、ローカル出力バスは、グローバル・リ
クエストの結果生じる区画識別子を受け取る。ディレク
トリ・エレメントの記憶問合せがポジティブならば、有
効ストア(V/S)ラインもそうである。記憶間合せ動
作と有効ストア・ライン生成は、グローバル・フェッチ
・リクエストとグローバル・ストア・フェッチの両方で
実行されることに注意されたい。記憶間合せ動作には、
有効ビット、排他ビット、記憶キー−ビット等のディレ
クトリにおける様々な制御ビットのテストが関係する。
第5図に示すように、キャッシュ・アドレス・バス6O
Aは、本発明に従う8個の区画のそれぞれに接続される
。同様に、出力データ・バスD1、D2、D3ならびに
入力データ会バスD4、D5、D6も接続され、任意の
区画からデータをフェッチしたり、あるいは逆にストア
したりできるようになっている。各区画は独立したディ
レクトリ−エレメントを持つ。これは、例えば、スタン
ド・アローンの連想アレイ・チップとすることができる
。ディレクトリとキャッシュ区画が両方ともアドレス・
スイッチを持つのに対し、キャッシュ区画だけがデータ
・バス・スイッチを持つ。様々な区画についての様々な
アドレス・スイッチが概略的に示されている。
例えば、キャッシュ500区画1は、アドレス・バス6
OAに接続されたアドレス・スイッチ150を持つ。デ
ータ・バス番スイッチ152.154も区画1に関連し
ている。区画1に関連するディレクトリ・エレメントは
、ディレクトリ・アドレス・バス60Bに接続されたア
ドレスースイソチ156を持つ。その他のキャッシュ区
画およびディレクトリ・エレメントも同様に構成される
第2図および第3図のアドレス拳パス6oは、第5図の
アドレス・バス6OAおよび60Bという2つの部分か
ら成り立っていることに注意されたい。アドレス・バス
60の各ポートは、第6図に示されるような6つのフィ
ールドからなる。ディレクトリ38は、各アドレス・ポ
ートから中位および高位のビットを要求する。一方、キ
ャッシュは、各アドレス・ポートから中位および下位の
ピットを要求する。
第7図および第8図には、本発明で使う中央プロセッサ
・ポートの異なる2つの具体例が示されている。第7図
では、命令または実行対象オペランドの一方のためのフ
ェッチ・ポートとして使い得る中央プロセッサ・ポート
200が示されている。該ポートは、PLAT202、
アドレス・リクエスト論理ユニット204、中央プロセ
ッサの命令、論理、または演算ユニット2o6、入力バ
ッファ208を持つ。さらにローカル記憶域(ストア)
210を持っていてもよい。P LATは、C30−カ
ル出力制御ライン212、CIグローバル制御ライン2
14、およびローカル02人力制御ライン216を縛つ
。図面では、それぞれの動作において必要とされるビッ
ト数も各ラインと一緒に示しである。アドレス生成ユニ
ット204は27ピツトのアドレスを生成する。また、
バッファ・ユニット208は144ビツトのカドワード
(quadword)を受け取るように設計されている
第8図に示すCPUポート220はストア嚢ポートとし
て構成されており、PLAT222、アドレス争リクエ
スト論理ユニット224、CPU論理ユニット226、
データ・バッファ228、そしてローカル記憶域230
を持つ。ここでも、PLATは、C60−カル出力匍I
御ライン232、C1グローバル入力制御ライン234
、C20−カル入力制御ライン236を持つ。さらに、
PLATは、有効ストア(V/S)ライン238を持つ
。バッファ228は、144ピツトのカドワードを扱う
ように設計されている。有効ストア・ライン258はP
LAT222に入力されるので、ポートがストア・リク
エストを出すときに、PLATにて有効ストア状態が判
別され得る。
第9図には、PLAT300の論理動作が示されている
。C60−カル出力バス302はスイッチング・ゲート
・システム304から始まる一方、C20−カル入力制
御バス306はゲート308に接続され、かつC1グロ
ーバル制御バス310はゲート312に接続される。C
PU320はアドレス生成機構322を持つ。該機構5
22は、アドレス・バス624を介して区画キャッシュ
へ、そしてバス326を介してPLATへ、アドレスを
送る。アドレスは比較器328へ送られる。比較の結果
、ヒツトはライン330を経てゲート・ユニット308
へ記録される一方、ミスはライン332を経てゲート・
ユニット312へ記録される。PLATにおけるミスと
ヒツトのどちらが記録されるかに応じて、C1ライン6
10ヘゲローバル制御信号が送られたり、あ゛るいはP
LATの見つけた区画メモリの中の場所を示すC20−
カル制御信号がライン306へ送られたりする。
通常の動作時、CPU520はアドレス生成ノ・−ドウ
エア522を起動して、出力アドレス・バス524に要
求アドレスを出させる。同時Gて、アドレスはPLAT
300に送られ、そのクラスで一致する1以上のアドレ
スがPLATアレイから読み取られる。アドレスの残り
の高位ピットは、各PLAT組連想エントリと比べられ
る。
PLATヒツトが生じた場合、PLATの区画識別子ア
レイ・フィールドに記憶されている8ピツトのうちの1
つが、02制御バス306の8個のポジションのうちの
対応する1つへ出力される。
これによって、指定されたキャッシュ区画へのローカル
・リクエストであることが表示される。
PLATミスが生じた場合、バス310上の単一ビット
の01グローバル・リクエスト・ラインが立ち上げられ
る。PLATミスの場合、要求アドレスとC5制御バス
302にのって返されろ区画識別子とを記憶するための
ゲートの活動も開始されろ。このようにして、グローバ
ル・リクエストに応答して、PLATの中に新しいエン
トリが作られる。PLATの中のこの新しいストアーエ
ントリの生成は、新規ストア・ボックス334がライン
352からミス表示を受け取るときに行われる。このと
き、ボックス334は、バス324かも受け取るアドレ
スをPLAT300のアドレス・アレイへ配置すること
ができる。
一般に、PLATアレイ600は、組連想式アレイであ
る。多重セント、つまり七ツトA1セットB等にお−・
で、それぞれ一致アドレスの有無が調ヘラレル。PLA
Tのセットのコンパートメントの各々は、出力ゲート6
08、アドレス比較器628、グローバル帝ゲート31
2、入力ゲート304.334のセットをす史自に持っ
ている。あるPLATサイクルではただ1つの一致アド
レスがヒツトし得るように、ゲート508の出力同士に
OR操作が施される。同様に、各セットのゲート312
からの出力610は組み合わされて、単一の01リクエ
スト・ラインを形成する。この場合、グローバル・リク
エストC1がバス310へ出される前にすべての組連想
比較器からミスが発生しなければならないわけであるか
ら、出力310同士にAND操作が施される。PLAT
の入力側では、アドレス・バス626と制御バス302
が、新たなPLATエントリが生成される際のLRU論
理により決定される通りに、組連想コンパートメントの
うちの任意の1つへ、セットAまたは七ツ)Bへといっ
た具合に、ゲーティングされる。
第10図は、命令を扱5PLATデザイン用に使い得る
タイプのP LATエントリ・データ・フィールドを示
す。アドレス・フィールド400はアドレスを含み、区
画識別子402は該アドレスを持つキャッシュの区画を
示す。制御フィールド404の中には、有効ビット・フ
ィールド406と、パリティその他の制御機能のための
フィールド408がある。
第11図は、データ1タイプPLAT用に使い得るタイ
プのP LATエントリを示す。区画識別子402とと
もにアドレス・フィールド400が備えられている。し
かし、制御フィールド412は少しばかり異なって(・
る。有効ピット−エントリ406の他に、有効ストア(
V/S )ビット414が備わっている。さらに、前記
のようなパリティその他の制卸機能用のフィールド41
6がある。
第10図と第11図に示されるPLATタイプは、ロー
カル・キャッシュ(LO)の形をとることもある拡張C
PUバッファが存在する場合にあり得る動作を意図して
いる。この場合、PLATとローカル・キャッシュ用の
ディレクトリが並列に動作し得る。アドレス生成機能が
発生した後、アドレスは、アドレス・リクエスト・バス
、PLAT、ローカル・キャッシュのディレクトリ、お
よびローカルeキャッシュ・アレイへ送うれる。
ローカル−キャッシュ・ディレクトリにおいてヒントす
ると、データがローカル・キャッシュ争アレイから関連
する中央処理エレメントへ送られるので、他のアドレス
・バスは無視される。ローカル・キャッシュ・ディレク
トリにおいてミスしてもPLATにおいてヒツトすれば
、L1区画キャッシュへローカル・リクエストが出され
る。ローカル・キャッシュ・ディレクトリ・ミスとPL
ATミスが重なると、区画キャッシュに対してグローバ
ル・リクエストが出される。
第10図と第11図に示したPLATエントリの2つの
タイプの相違点は、データ・タイプPLATエントリに
おいて有効ストア・ビットがあることである。このビッ
トは、グローバル、1.1クエストの後で、データータ
イプPLATの中で新しいエントリが生成されるときに
オンにセットされる。このとき、記憶間合せ動作が区画
キャッシュ・ディレクトリで実行される。この動作には
、記憶キー、有効ビット、排他ビット、キャッシュにお
ける他の機能のテストが関係する。このテストが肯定的
ならば、区画キャッシュ・ディレクトリの中の有効記憶
ビットがデータ・タイプPLATの新しいエントリに対
応してオンにセットされ、そうでなげればオフにセット
される。その区画キヤツシュ・ラインに対する後続の記
憶リクエストは、PLATにおいて該エンドl)が有効
である間、単一サイクル記憶として実行されろ。かかる
記憶はローカル記憶リクエストとして区画キャッシュへ
転送される。区画キャッシュへの無効な発令は、関連す
るPLATにも出されることに注意されたい。
第12A、12B図には、区画キャッシュがその制御お
よびデータ・フローのバスとともに示されている。ディ
レクトリ区画500は、そのメモリ・ロケーンヨンのス
タックとともにテされている単一キャッシュ・アレイ区
画502と関連している。キャッシュ・プライオリティ
拳ゲート504には、第4A図にも示されるC20−カ
ル制御バス506と01グロ一バル1lINハス人力5
08が接続される。プライオリティ論理504の出力は
、ORゲート510.512、そして読込ゲート514
、書出ゲート516へ供給される。アドレス・バスeス
イッチ518は、プライオリティ論理504から入力を
受け取り、アドレスをキャッシュ・アレイ区画502へ
向げる。ORゲート510の出力は書出ゲート選択バス
520へ送られ、ORゲート512の出力は読込ゲート
選択バス522へ送られる。ORゲート510はディレ
クトIJ 500からの入力560を受け取り、ORゲ
ート512はディレクトリ500かもの入力558を受
け取る。
キャッシュ・ディレクトリ500は、アドレス・バス・
スイッチ542を通して入力アドレス・バス60Bと接
続されて℃・る。アドレス・バス・スイッチ542は、
C1グローバル制御バス508を入力とするプライオリ
ティ・ゲート544によって制御される。プライオリテ
ィ・ゲート544は、ゲート548へもその出力を送る
。ゲート548は、関連するPLATに接続されている
C30−カル・バス550のための入力制御信号を送る
。キャッシュ・ディレクトリ・アレイ5130の出力は
、データ出力バス552、および論理ユニノ)554.
556への入力によって構成される。ユニット554.
556は、それぞれ有効読込出力バス558、有効書出
出力バス560へ信号を送る。
キャッシュ区画502の動作を説明すると、プライオリ
ティ論理ユニット504は、制御バス人力506.50
8の信号を受け取る。02制御人力506に基づいてロ
ーカル・リクエストであるとの判断がなされると、アド
レス・スイッチ518によって、6個のアドレスのうち
の1個がアドレス・バスからキャッシュ・アレイヘスイ
ツチされる。読込動作の場合はバス選択制御ライン5′
50によって、また書込動作の場合はバス選択ライン5
32によって、選択されたアドレスに対応するデータ・
バスも選択される。読込ゲート選択ライン522または
書出ゲート選択ライン52 ’0の活動も、ローカル読
込および書出リクエストについてプライオリティ論理に
よって開始される。このように、キャッシュ・ディレク
トリを使わないで、キャッシュ区画は単一サイクルのス
トアまたはフェッチ動作を実行できる。フェッチ動作の
場合、第2のクロックやサイクル−キャッシュ動作を用
いて、リクエストされたデータを要求中央プコセソサ・
エレメントへ転送する。ストア動作の場合、第2のキャ
ッシュ・サイクルは必要ない。
グローバル・リクエストであると判断されると、ディレ
クトリ500とキャッシュ・アレイのプライオリティ論
理544が、スイッチ542を使って共通アドレスを選
択し、かつスイッチする。同様に、キャッシュ・アレイ
は、前記のよう江スイッチ518を使って対応するアド
レス・バスを選択する。しかし、この場合、読込ゲート
制御ライン522や書出ゲート制御ライン520をアク
ティブにすることはない。その代り、これらのラインは
、ディレクトリ500の比較論理556とテスト論理5
54によってアクティブにされる。グローバルの場合、
有効読込ライン558によって、選択されたデータ・バ
スへの選択された読込ゲートの活動が開始される。有効
書出ライン560によって選択された書出ゲートの活動
が開始されるので、キャッシュ・アレイ502が続くサ
イクルにおいてストア動作を実行先得る。このように、
グローバル・リクエストの場合、キャッシュ動作の第1
サイクルでは、フェッチについてはアレイ・アクセスと
データ・バス・スイッチが行われ、ストア・リクエスト
については記憶間合せ機能が実行される。キャッシュ動
作の第2サイクル目では、フェッチの場合はリクエスト
されたデータが転送され、ストア・リクエストの場合は
キャッシュ・アレイ502が循環(サイクル)される。
グローバル・リクエストの場合、区画識別子と有効スト
ア・ラインの生成はゲート548によって可能となり、
これらは新しいPLATエントリを更新するためにC3
バスで返される。
グローバル・リクエストのプライオリティは、他のどん
なローカル・リクエストよりも高い。グローバル・リク
エストとローカル−リクエストの両者についてのプライ
オリティは、ボート・ポジションの所定のシーケンスに
よって決まる。
簡単のため、小さなPLATアレイが第16図に示され
ている。各エントリに第10.11図で説明した内容を
入れた状態で、8個のエントリを記憶することができる
。キャッシュ・アレイの用語を使うと、このアレイは8
個の一致りラス拳アドレス・ポジションを持ち、そして
1組の連想性(associativity) 、セッ
トAを持つ。このアレイは、(8×1)の次元を持つ。
より大きなPLATは、第13図のコンポーネントを複
製スルことにより構成することができる。水平方向に複
製する度に、8個のエントリが追加され、1セツトが追
加される。セットBの追加時には(8X2)となり、セ
ットCの追加時は(8X3)になる。
別の方法では、垂直方向に複製する度に、8個のエント
リが追加される。したがって、一致クラス・アドレスが
8ずつ増えるものの連想性は単一セット、セントAのま
まである。このようなアレイの次元は、(16×1)と
なる。例えば、エントリの最適数が32であると決まれ
ば、PLATアレイの配列は、(8X4)、(16X2
)、または(32X1)とすることができる。P LA
Tの選ばれた配列が何であれ、必要な比較器(第13図
で言えば比較器636)の数は、セット連想性の数に等
しい。つまり、1セツトにつき1個である。
第13図にさらに触れると、アドレス生成器600の出
力は復号された組となってアドレス・ライン602を経
てPLATへ渡されるが、復号されるラインの数は一致
クラスの数てよって決まる。
一致クラス選択ラインを復号するのに用いるアドレス・
ビットは、区画L1キャッシュのライン・サイズで決ま
り、それは、第5図のL1ディレクトリ・アドレス・バ
ス60Bをアドレスするのに通常用いられるアドレスの
最下位ビット側の部分である。一致クラス数が8である
PLATの場合、下位6桁のビットが8本の一致クラス
選択ラインの復号に使われる。一致クラス16の場合は
下位4桁のビットである。生成アドレスがAGEN加算
器から得られる場合、復号動作が必要になる符号化され
た形ではな(て、復号された形である一致クラス選択バ
ス602を直接生成するようにしてもよい。
第13図と第5図を参照して、PLATの働きを説明し
よう。アドレス生成器600は、リクエスト対象のアド
レス664を生成し、そのビットのあるものを、キャッ
シュ・アドレス生成器60Aを介してキャッシュへ、デ
ィレクトリ・アドレス・バス60Bを介してディレクト
リへ、そしてアドレス比較回路636へ送る。また、こ
れと並行して、アドレス生成器600は、PLATに向
けて8ピット一致ライン選択バス602にも出力する。
要求アドレスが何であれ、バス602の8本のラインの
うちの1本だけがアクティブである。
アクティブなラインに応じて、PLATエンドす604
.606.608.610.612.614.616ま
たは618から、8個のアドレスのうちの1個だけが比
較回路636へ至る共通バス662にゲートされる。ゲ
ート620.622.624.626.628.630
.632、または634は、アドレス拳ゲーティングを
実行する。
生成されたアドレス664と選択されたアドレス662
を比較した結果、両者が等しければ、出力ライン640
にポジティブなヒツト信号が出力される。次(・で、ラ
イン640の信号は、ゲート642.644.646.
648.650.652.654、そして656へ送ら
れて一致ライン選択バス602と組み合わされ、PLA
Tエントリ604.606.608.610.612.
614.616、または618の区画I/Dフィールド
のうちの1つを共通バス660へ出力させる。バス66
0の信号は第4A、4B、4C,4D図の制御バス64
のローカル人力C2コンポーネントの1つとして、区画
キャッシュへ送られる。比較回路636での比較結果が
イコールでないことを示す場合は、C1グローバル−リ
クエスト・バスニミス信号638が出される。信号66
8は第4A。
4B、4C,4D図の制御バス62のグローバル入力C
1コンポーネントの1つとして、区画キャッシュおよび
ディレクトリへ送られる。
第14図のPLATは第16図の変形例であり、命令ま
たはデータ・オペランド用の7エツチ・ポートとして割
り当てられるCPUポートにおいて使用される。この例
では、アドレス・フィールドに加えて有効ビットが、P
LATエントリ604ないし618から共通バス662
へ、ゲート620ないしろ34を経て出力される。比較
回路666によって、前記のようなアドレス比較の実行
に比えて、有効ピット入力ラインの吟味が行われる。
有効ビットがイエス、つまり有効(キャッシュの取決め
では、普通、アップ、つまり1の状態が無効を示すのに
使われ、ダウン、つまり0の状態が有効を示すのに使わ
れる)ならば、比較回路636は、前記のようなアドレ
ス比較動作に基づいて、ヒツトを判別したらライン64
0へ出力し、ミスを判別したらライン634へ出力する
。有効ビットがノー(無効)ならば、ミス・ライン63
8への出力が強制されて、アドレス比較動作は無視され
る。
PLATで新しいエントリが作られるときはいつも、有
効ビットがイエス(ゼロ状態)にセットされる。しかし
、通常のCPU処理事象に際し、LRU論理によってP
 LATからエントリをエージングするのに先立って、
エントリを無効にセットすることが必要になり得る。そ
のような事象の例として、新たなキャッシュ・ラインが
区画し1キヤツシユに取シ入れられる場合がある。この
とき、PLATO中の古いラインを参照するどのエン)
 IJにも無効の印がつけられる。また、マルチCPU
環境に訃いて、あるCPUが別のCPUに対しであるキ
ャッシュ・ラインを無効にするよう求めることは普通で
ある。この場合、PLATの中のどのエントリにも無効
の印がつけられる。PLATエントリを無効にする必要
が生じる頻度はきわめて少ないけれど、正確性と完全性
を期す上で考慮される。
第15図のPLATは第13図の別の変形例であシ、デ
ータ・オペランド用のストア・ポートとして割探当てら
れるCPUポートにおいて使用される。この例では、有
効ピッ)(V)と有効ストア・ピッ)(V/S)の両方
が、PLATエントリから比較回路636へ向けてゲー
ティングされる。この場合、ライン640にヒツト状態
、判別信号が出される前に、有効状態と有効ストア状態
がともに存在しなげればならない。有効状態または有効
記憶(ストア)状態の一方が存在1−ないと、ここでも
ミス・ライン638への出力が強制されて、アドレス比
較は無視される。P LATミスのために新しいエント
リが作られるときはいつも、記憶間合せ動作がL1ディ
レクトリにて行われる。
このテスト結果がポジティブならば、有効記憶状態がP
LATエントリに記録される。後続のストア・リクエス
トの結果ライン640にPLATヒツト信号が送られ、
かつディレクトリ内で記憶間合せ動作が必要とされない
通常のキャッシュ動作では、L1キャッシュに有効なり
一ド・オンリー0データ0ラインを持つとともに、PL
ATO中に該ラインに対応する有効エントリを持つこと
は珍しくない。L1キャッシュによってラインの「リー
ド・オンリー」リクエストが行われていたならば、記憶
間合せテストの結果はネガティブとなり、PLATO中
の対応エントリにおいて無効記憶状態がセットされよう
そして、該ラインに対する後続のストア・リクエストは
PLATミスを招き、Llディレクトリのグローバル・
リクエストを引き起こすであろう。
続いてリード・オンリー状態が判別され、Ll”Fヤツ
/ユ制飢により、第1図のSCEエレメントから記憶特
権(storage−privilege)状態がリク
エストされるだろう。結局記憶特権が許されると、記憶
特権状態がL1ディレクトリに記録筒れる。すると、該
ラインに対する後続のストア・リクエストにおいて、記
憶間合せテストの結果はポジティブになり、PLATエ
ントリにおいて有効ストアの標識がセントされる。
第16図は、この区画キャッシュの、特殊なフォールト
・トレラントの特徴を示している。この特徴によれば、
システムの停止やコンピュータのユーザー(・て対する
サービスの中断を避けつつ、キヤツシユ・データ・アレ
イおよびディレクトリのコンポーネントの大きな故障を
許容する。かかる故障は、修理がなされるまでの間、キ
ャッシュ・サブ/ステムのパフォーマンスの低下を招く
。例えば、ディレクトリ・エレメント全体が故障したり
(チップ・キルと呼ばれる)、あるキャッシュ区画に関
連する1以上のデータ・チップが故障することがある。
こういった場合、故障した区画はキャッシュ・サブシス
テムから論理的に外されるので、8個の区画を持つキャ
ッシュにあってはキャッシュ容量の12,5%のロスを
招く。(キャッシュ容量の12.5%が失われても、サ
ービスが12.5%低下することにはつながらないこと
:て注意されたい。容量の関数としてのキャッシュ・パ
フォーマンスの性質によシ、実質的にはより小さなパー
セントのサービス低下を招く。)修理に先立ってかかる
大きな故障が再び生じると、別の区画のロスを招き、キ
ャッシュ容量は合わせて25%減少する。現在のキャッ
シュ・サブシステムでは、上記ケースにおいて、修理が
完了するまで、cPUの完全な機能は失われたままであ
る。多くのユーザーにとって、クリティカルな動作期間
に際してのパフォーマンスのわずかなロスは許容できて
も、コンピュータの停止は重大な結果を招くので許容で
きない。
フォールト・トレランスの基aば、、bる特定のキヤツ
シユ・ラインに関連するキャッシュ・データが単一のキ
ャッシュ区画中に完全に含まれており、かつそのアドレ
ス制御情報が単一チップ上にあシ得る単一ディレクトリ
・エレメント内に完全に含まれることである。そして、
ストア・スルー(store−through)L1キ
ャッシュも用いられる。この結果、記憶階層の少なくと
も1つ上のレベルにおいて、L1キャッシュの全データ
の有効なコピーが備えられる。したがって、前記のよう
な大きな障害が起きると、ハードウェアが故障を検出し
、故障した区画を切り離すけれども、データは全く失わ
れない。実際、故障して切り離された区画に常駐してい
たデータは、プロセッサの要請に応じてL2からLlへ
再フェツチされる。その際、まだ機能している異なるキ
ャッシュ区画へ再フェツチされる。要するに、故障した
区画の中のデータは、CPUにとって、L1ミスの際に
フェッチしなければならない非常駐キャッシュ・データ
と全く同じに見える。
第16図には、フォールト・トレラント機構の動作が示
されている。キャッシュ拳トランザクションのすべてに
際して、ハードウェア故障テスト論理40はアクティブ
である。これには普通、例えばアドレス、データおよび
制御バス36,39のパリティ・チェックが含まれる。
無効区画表示レジスタ702が備えられている。該レジ
スタは8ビツトを記憶し、その各々が8個のキャッシュ
区画の1つに対応している。大きな故障が生じた場合、
故障テスト・ハードウェア40は、入カバスフ00を使
って、無効区画表示レジスタ702の中の対応するビッ
トをオンにセットする。また、LRU論理・テーブル7
08も備えられている。
普通の事象では、LRU論理708はキャッシュ・アド
レス・バス60A1キヤツシユ制御バスC2(64)、
C2(64)をモニターし、最新のLRUアレイ712
を維持する。C2制御バスは、ローカル拳キャッシュ参
照について、アクティブな、アクセスされた区画番号を
指示する。一方、C3fl+制御バスは、グローバル争
キャッシュ参照について、アクティブな、応答区画番号
を指示する。
このアレイ712ば、キャッシュ′54とディレクトリ
68の一致クラス毎に符号化されたエントリを1つ記憶
する。要するに、LRUアレイ712の各エントリは、
次回キャッシュ倫ミスが生じた場合に新しいラインを記
憶するのに使うことになる区画のポインタ、あるいは区
画番号を記憶する。
LRUアレイの中に現在のLRUエントリを維持するた
めに、通常の区画LRUアルゴリズムを使うこともでき
る。また、LRU論理708は、バス704を使って無
効区画表示レジスタ702の内容もモニターする。レジ
スタ702の何れかのビットがオンにセットされると、
該ビットは、LRU論理708に対するオーバーライド
として作用し、無効区画はLRUアレイ712への入力
として選択されなくなる。むしろ、LRU708が、レ
ジスタ702の中の有効区画表示に基づいて、アレイ7
12に対するLRUエントリを選択する。
L1キャッシュ・ミスが生じるときは、いつでも、要求
するアドレスがバス714を経てL P、 Uアレイ7
12へ送られる。LRUアレイ712’as 5求アド
レスの一致クラスに対応する区画番号をバス716にロ
ードする。これは、ライン・フェッチ・バッファ110
に送られ、区画番号(PN)レジスタ720に記憶され
る。要求アドレスはバッファ110へも送られ、アドレ
ス・レジスタ(AR)724に記憶される。新たなライ
ン・フェッチは、L2からバス112を経てバッファ1
10へ送られ、バッファ726に記憶さルる。ライン・
フェッチ動作に続いてライン・プツト・アウェイ動作が
廚われる。ここでは、キャッシュ・リクエスト・アドレ
スA6がバス60に出力され、復号器722が区画識別
をバス64に出力する。
また、第2図および第16図のストア・バス・ボートN
に、ライン・データが供給さ九る。
第16図のハードウェアは、故障が修理されるまで、故
障区画に将来性たなキャラツユ・データが割り当てられ
ることのないよう、これを切り離す。修理動作(アクシ
ョン)の発生時間はユーザーの都合に合わせて選択され
る。このとき、無効区画指示レジスタ702の内容が有
効状態へ戻される。また、故障発生検出時、あるノ・ウ
スキーピング・タスクが理解される。これらには、ライ
ン718で、LRUアレイのスキャンの結果、無効区画
表示レジスタ702の新たな値に基づいて任意の無効エ
ントリをリセットすることが含まれる。
また、どの区画標識も故障区画を指さないように、そし
てレジスタ702によって決まるようにアドレス・バス
6OA、60B上のアドレスが故障区画へ向かわないよ
うに、全PLATアレイをクリアすべきである。
本発明による区画キャッシュとPLATの全体的な付加
的な動作の特徴をここで説明しておこう。
その1つは、大部分のストア動作が単一キャッシュ・サ
イクルで完了することである。これは、キャッシュの各
ローカル・ストア動作から記憶間合せサイクルを除去す
ることにより達成される。
記憶間合せ動作は、PLATミスが原因となるグローバ
ル・ストアまたはフェッチ動作において1度実行される
。このとき、PLATの中に新しいエントリが生成され
、有効′まンそは無効ストア・ビットが該エントリにつ
いてセットされる。続くストア・リクエストは、PLA
Tの有効ストア・ビットがオンの場合、単一サイクルで
実行される。
ストア動作が単一サイクルで行われることによって、記
憶命令に必要なサイクル数が減り、命令当りの平均サイ
クル数が減るので、プロセッサの命令実行速度が向上す
る。
ライン・プツト−アウェイ動作は、中央プロセッサに対
する区画キャッシュの干渉を最小にして達成される。ラ
イン・フェッチ・バッファからのプツト・アウェイ区画
キャッシュ・ストア・サイクルは、(M個の)区画のう
ちの1つをビジーにするだけであり、その区画がその他
の点ではアイドル状態であるサイクルについてのみ活動
化される。このため、より大きなキャッシュ・ラインを
都合よく利用することが可能になυ、その結果、ミス当
りのキャッシュ命令率が向上し、かつPLATヒツト率
も高まる。
クリティカルなキャッシュ・アクセス・バスは、すべて
の(N個の)並列動作ポートのすべてについて現在使用
可能なチップの2チツプ交差(クロッシング)の中に含
まれる。これは、N個の同時に動作するポートのそれぞ
れが、1または2アクセス・サイクルを持つことを意味
する。ライン・プツト・アウェイ動作を含むローカル・
ストアは、ストア・ブロック当り単一のサイクル・アク
セスで実行されるが、他の動作は2サイクル・アクセス
になる。現在のシングル・ポート・キャッシュ構成の下
では、ストアとフェッチの両方ともに2サイクル・アク
セスであり、1サイクル当り1動作に制限される。
高度のフォールト・トレラント構成によシ、区画キャッ
シュの可用性はさらに犬きくなる。通常のキャッシュ構
造では、ハリティ・チェックは行われるものの、エラー
訂正は行われない。キャッシュ・ラインまたはディレク
トリ−ピンに対して単一ビットのハード・エラーが生じ
た場合、修理が行われるまでさらに使われないよう該キ
ャッシュ・コンパートメントを切り離すべく、ディレク
トリの中に保持される削除ビットがハードウェア制御に
よってセットされ得る。従来のキャッシュも区画キャッ
シュも切り離される故障メカニズムを使用する。しかし
、キャッシュ全体またはディレクトリ・チップが失われ
、チップ・キルが生じると、従来型キャッシュではシス
テム障害を招く。
区画キャッシュは削除ビットの概念を削除区画へ展開し
た。したがって、チップ・キルの場合、キャッシュの1
区画が失われるが、システム障害は避けられる。
様々なデザインが可能であり、個々のキャッシュ・ポー
トやデータ・バスに関連して出力データ・ブロック優サ
イズが変化する。独立したLOキャッシュ構造を使用す
る中央プロセッサのデザインの用意を含めて、様々なベ
ース・キャッシュ・デザインが可能である。
E、効果 本発明によれば、同一のキャッシュに対するストアまた
はフェッチ動作を最高N個まで同時に行うことが可能に
なる。したがって、本発明のキャッシュ・メモリ・シス
テム障害工たコンピュータ・システム全体のパフォーマ
ンスが向上する。
【図面の簡単な説明】
第1図は、本発明による区画キャッシュを備えた、マル
チCPUシステムの説明図である。 第2図は、本発明による区画キャッシュ・メモリの具体
例の概略図である。 第6図は、第2図に示された区画キャッシュの、キャッ
シュ・アレイ、ディレクトリ、そしてアドレス、データ
、制御バスの詳細な説明図である。 第4A、4B、4C14D図は、第2図に示される区画
キャッシュ・メモリに関連する制御バス構造体の詳細を
、左から右へ順を追って示した説明図である。 第5図は、第2図に示されるような本発明によるキャッ
シュ・メモリにおける、ディレクトリと区画構造の関係
の説明図である。 第6図は、第5図に示されるアドレス・バスからなるア
ドレス・ポートの1つの構成を示す図である。 第7図は、第2図に示される実施例のキャッシュ・メモ
リのフェッチ・ポートの1つの詳細な説明図である。 第8図は、第2図の実施例のキャッシュ・メモリのCP
Uストア・ポートの詳細な説明図である。 第9図は、第2図に示されるキャッシュ・メモリのPL
ATの構造の詳細な説明図である。 第10図は、本発明による命令タイプPLATにおける
データ・フィールドの構造の概略的な説明図である。 第11図は、本発明によるデータ・タイプPLATにお
けるデータ・フィールドの構造の概略的な説明図である
。 第12A図および第12B図は、本発明によるある区画
キャッシュ・ディレクトリと区画キャッシュ・データφ
アレイ、および単独のキャッシュ区画に関する動作を、
左から右へ順を追って示した説明図である。 第1′5図ないし第15図は、それぞれ、本発明による
区画キャッシュ・メモリのアドレス構造の異なる具体例
を詳細に示した図である。 第16図は、本発明による、故障区画を識別してシャッ
ト・オフするフォールト・トレラント構造の詳細な説明
図である。 出願人  インターナシ”3fyvmビジネス・マシー
ンズ・コー汁しくり5ン代理人 弁理士  頓   宮
   孝   −(外1名) FIG、jO 会今タイプ PLA丁工、−トリ F’IG。11 テーンクイブPLATエントリ FIG。12A じLAIへ

Claims (2)

    【特許請求の範囲】
  1. (1)単一メモリ複合体の中の、互いに独立してアドレ
    ッシングすることのできる、組連想式メモリのM(Mは
    2以上の自然数)個の区画と、 上記M個の区画にアドレスを渡すN(NはM以下の自然
    数)本のアドレス・バスの各々の一端に位置するN個の
    アドレス・ポートと上記M個の区画との間のスイッチン
    グを行うアドレス・バス・スイッチ手段と、 上記M個の区画に関してデータを入出力するN本のデー
    タ・バスの各々の一端に位置するN個のデータ・ポート
    と上記M個の区画との間のスイッチングを行うデータ・
    バス・スイッチ手段と、メモリ・リクエストを受け取り
    、上記M個の中から選択すべき区画を識別するためのテ
    ーブルを備えた制御手段であつて、メモリ・リクエスト
    に応じて選択すべき区画が識別されたならば、上記アド
    レス・バス・スイッチ手段を制御して該メモリ・リクエ
    ストを該選択された区画へスイッチするとともに、上記
    データ・バス・スイッチ手段を制御して該選択された区
    画に関する入出力を選択されたデータ・バスへスイッチ
    する制御手段とからなるキャッシュ・メモリ・システム
  2. (2)上記制御手段は、メモリ・リクエストに応じて選
    択すべき区画が識別されなかつたならば、上記アドレス
    ・バス・スイッチ手段を制御して該メモリ・リクエスト
    を上記M個の区画全部へ導くことを特徴とする 特許請求の範囲第1項記載のキャッシュ・メモリ・シス
    テム。
JP63022176A 1987-04-03 1988-02-03 キヤツシユ・メモリ・システム Granted JPS63257853A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US3413687A 1987-04-03 1987-04-03
US34136 1987-04-03

Publications (2)

Publication Number Publication Date
JPS63257853A true JPS63257853A (ja) 1988-10-25
JPH0551936B2 JPH0551936B2 (ja) 1993-08-04

Family

ID=21874539

Family Applications (1)

Application Number Title Priority Date Filing Date
JP63022176A Granted JPS63257853A (ja) 1987-04-03 1988-02-03 キヤツシユ・メモリ・システム

Country Status (3)

Country Link
EP (1) EP0284751B1 (ja)
JP (1) JPS63257853A (ja)
DE (1) DE3873388T2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01296360A (ja) * 1988-03-24 1989-11-29 Northern Telecom Ltd 疑似セツト連想メモリ・キヤツシユ配置
US7493448B2 (en) 2002-06-24 2009-02-17 Nec Corporation Prevention of conflicting cache hits without an attendant increase in hardware

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5553262B1 (en) * 1988-01-21 1999-07-06 Mitsubishi Electric Corp Memory apparatus and method capable of setting attribute of information to be cached
JPH0727492B2 (ja) * 1988-01-21 1995-03-29 三菱電機株式会社 緩衝記憶装置
EP0340901A3 (en) * 1988-03-23 1992-12-30 Du Pont Pixel Systems Limited Access system for dual port memory
US5247649A (en) * 1988-05-06 1993-09-21 Hitachi, Ltd. Multi-processor system having a multi-port cache memory
JPH01280860A (ja) * 1988-05-06 1989-11-13 Hitachi Ltd マルチポートキヤツシユメモリを有するマルチプロセツサシステム
EP0477595A3 (en) * 1990-09-26 1992-11-19 Siemens Aktiengesellschaft Cache memory device with m bus connections
US5392414A (en) * 1992-06-30 1995-02-21 Sun Microsystems, Inc. Rapid data retrieval from data storage structures using prior access predictive annotations
GB2292822A (en) * 1994-08-31 1996-03-06 Hewlett Packard Co Partitioned cache memory
US5924117A (en) * 1996-12-16 1999-07-13 International Business Machines Corporation Multi-ported and interleaved cache memory supporting multiple simultaneous accesses thereto
US6138209A (en) * 1997-09-05 2000-10-24 International Business Machines Corporation Data processing system and multi-way set associative cache utilizing class predict data structure and method thereof
EP1215581A1 (en) * 2000-12-15 2002-06-19 Texas Instruments Incorporated Cache memory access system and method
US6745293B2 (en) 2000-08-21 2004-06-01 Texas Instruments Incorporated Level 2 smartcache architecture supporting simultaneous multiprocessor accesses
EP3258382B1 (en) * 2016-06-14 2021-08-11 Arm Ltd A storage controller
CN113114684B (zh) * 2021-04-14 2022-08-16 浙江中拓合控科技有限公司 一种用于现场设备的信息传输系统、方法和装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5948879A (ja) * 1982-09-10 1984-03-21 Hitachi Ltd 記憶制御方式
JPS59213084A (ja) * 1983-05-16 1984-12-01 Fujitsu Ltd バッファ記憶装置のアクセス制御方式

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5619575A (en) * 1979-07-25 1981-02-24 Fujitsu Ltd Data processing system having hierarchy memory
US4371929A (en) * 1980-05-05 1983-02-01 Ibm Corporation Multiprocessor system with high density memory set architecture including partitionable cache store interface to shared disk drive memory
US4484267A (en) * 1981-12-30 1984-11-20 International Business Machines Corporation Cache sharing control in a multiprocessor

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5948879A (ja) * 1982-09-10 1984-03-21 Hitachi Ltd 記憶制御方式
JPS59213084A (ja) * 1983-05-16 1984-12-01 Fujitsu Ltd バッファ記憶装置のアクセス制御方式

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01296360A (ja) * 1988-03-24 1989-11-29 Northern Telecom Ltd 疑似セツト連想メモリ・キヤツシユ配置
US7493448B2 (en) 2002-06-24 2009-02-17 Nec Corporation Prevention of conflicting cache hits without an attendant increase in hardware

Also Published As

Publication number Publication date
DE3873388D1 (de) 1992-09-10
EP0284751B1 (en) 1992-08-05
EP0284751A3 (en) 1989-05-31
JPH0551936B2 (ja) 1993-08-04
DE3873388T2 (de) 1993-03-18
EP0284751A2 (en) 1988-10-05

Similar Documents

Publication Publication Date Title
US4905141A (en) Partitioned cache memory with partition look-aside table (PLAT) for early partition assignment identification
US5809530A (en) Method and apparatus for processing multiple cache misses using reload folding and store merging
US7366829B1 (en) TLB tag parity checking without CAM read
US5353424A (en) Fast tag compare and bank select in set associative cache
US4332010A (en) Cache synonym detection and handling mechanism
JP3683739B2 (ja) オーバラップしたl1およびl2メモリ・アクセス方法および装置
US4695950A (en) Fast two-level dynamic address translation method and means
US5307477A (en) Two-level cache memory system
US6728858B2 (en) Method and apparatus including heuristic for sharing TLB entries
US7073044B2 (en) Method and apparatus for sharing TLB entries
US5586294A (en) Method for increased performance from a memory stream buffer by eliminating read-modify-write streams from history buffer
US6751720B2 (en) Method and system for detecting and resolving virtual address synonyms in a two-level cache hierarchy
US5668968A (en) Two-level virtual/real set associative cache system and method with improved synonym detection
US6138209A (en) Data processing system and multi-way set associative cache utilizing class predict data structure and method thereof
EP0253824B1 (en) Paged memory management unit capable of selectively supporting multiple address spaces
US5388247A (en) History buffer control to reduce unnecessary allocations in a memory stream buffer
US5201041A (en) Cache bypass apparatus
US8156309B2 (en) Translation look-aside buffer with variable page sizes
US20030065890A1 (en) Method and apparatus for updating and invalidating store data
JPS63257853A (ja) キヤツシユ・メモリ・システム
US5715427A (en) Semi-associative cache with MRU/LRU replacement
US5423014A (en) Instruction fetch unit with early instruction fetch mechanism
US5555395A (en) System for memory table cache reloads in a reduced number of cycles using a memory controller to set status bits in the main memory table
EP0803095A1 (en) Indexing and multiplexing of interleaved cache memory arrays
TWI235916B (en) Multilevel cache structure and method using multiple issue algorithm with over subscription avoidance for high bandwidth cache pipeline