JP3218316B2 - 集積キャッシュユニットおよびその内部でキャッシュ機能を実現するための方法 - Google Patents
集積キャッシュユニットおよびその内部でキャッシュ機能を実現するための方法Info
- Publication number
- JP3218316B2 JP3218316B2 JP01093589A JP1093589A JP3218316B2 JP 3218316 B2 JP3218316 B2 JP 3218316B2 JP 01093589 A JP01093589 A JP 01093589A JP 1093589 A JP1093589 A JP 1093589A JP 3218316 B2 JP3218316 B2 JP 3218316B2
- Authority
- JP
- Japan
- Prior art keywords
- cache
- bus
- memory
- icu
- data
- 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.)
- Expired - Lifetime
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0844—Multiple simultaneous or quasi-simultaneous cache accessing
- G06F12/0846—Cache with multiple tag or data arrays being simultaneously accessible
- G06F12/0848—Partitioned cache, e.g. separate instruction and operand caches
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0804—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/60—Details of cache memory
- G06F2212/601—Reconfiguration of cache memory
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)
- Advance Control (AREA)
Description
御するための方法および装置に関する。より特定的に
は、プログラム可能であり、単一のプロセッサ動作をサ
ポートすることに加えて、たとえばコピーバックおよび
所有権機構の実現によってマルチプロセッサ動作をサポ
ートすることが可能であり、縮小命令セットコンピュー
タ(RISC)環境において高速な命令およびデータ処理を
サポートすることが可能であり、シングルチップ上の集
積に適したアーキテクチャで、上に述べた機能のすべて
をサポートすることが可能であるキャッシュメモリユニ
ットを実現し制御するための方法および装置に関する。
は周知である。シングルチップ上にメモリ回路部分と制
御器回路部分との両方を集積するデバイスも知られてい
る。これらは、NECにより製造された市場で入手可能な4
3608を含んでいる。そのようなデバイスは、以後「集積
されたキャッシュユニット(ICU)」と呼ばれる。先行
技術のICUデバイスは、データおよび命令をキャッシュ
するために予め定められたアルゴリズムを利用してい
る。すなわち、先行技術のデバイスはプログラム可能で
ない。以前には、シングルチップ上にキャッシュメモリ
回路部分と、キャッシュ制御器回路部分と、プログラム
可能な回路部分とを集積することは、部分的には回路密
度およびデータ経路の制約のせいで達成されていない。
公知のICUアーキテクチャはさらに、プログラム可能で
ないことに加えて、高速なRISC処理システム、特にマル
チプロセッサ能力を有する高速RISCシステムをサポート
するために必要な回路密度およびデータ経路の制約に関
する問題を克服していない。
双方が当然に可能となるという柔軟性を有しているとい
う理由で、プログラム可能集積キャッシュユニットを実
現することが望ましい。
ルチップICUも、スペースと要件とユニット消費電力要
件とを最小限にするために望ましいであろう。またさら
に、RISC環境と非RISC環境との双方に対して、シングル
プロセッサモードとマルチプロセッサモードとの両方で
高速処理動作をサポートするためにそのような集積キャ
ッシュユニットを使用することが可能であることが望ま
しい。
集積されたキャッシュメモリとキャッシュ制御器との両
方を備えるキャッシュユニットである、集積キャッシュ
ユニットを実現するための方法および装置が開示され
る。
タと、512個の20ビットワードのタグと、RISC環境およ
び非RISC環境の両方においてキャッシュ機能を十分に実
現するのに必要な制御回路とを含む集積キャッシュユニ
ット(ICU)が開示されている。ICUの好ましい実施例は
2個のバスを有する。一方はプロセッサインターフェイ
スに対するものであり、他方はメモリインターフェイス
に対するものである。
ドレスおよびデータバスである。プロセッサバスでは、
バーストアクセスおよびパイプラインアクセスをサポー
トする。さらに、この開示においては、メモリバスは多
重化32ビットアドレスおよびデータバスである。メモリ
バスは、メインメモリへのインターフェイスを与え、マ
ルチプロセッサ編成に対応する。
ルツを超過する周波数で動作することが可能であり、あ
るシーケンスの最初のアクセスに対しては2サイクル
で、バーストモードアクセスまたはパイプライン化アク
セスに対しては1サイクルでというプロセスアクセス時
間を達成する。それは、フレキシブルな内部キャッシュ
編成を有する命令キャッシュとしても、またはデータキ
ャッシュとしても使用できる。RISCプロセッサおよび2
個のICU(命令キャッシュおよびデータキャッシュ用
の)は、16Kバイトのキャッシュを有する非常に高性能
のプロセッサを実現する。さらにICUを追加して用いる
ことにより、より大規模なキャッシュを設計することが
できる。
トを実現するための方法および装置を提供することであ
る。
と非RISCアーキテクチャ環境との両方において、高速な
データおよび命令処理アプリケーションをサポートする
のに適したプログラム可能集積キャッシュユニットを実
現するための方法および装置を提供することである。
およびマルチプロセッサ環境の両方において高速な処理
アプリケーションをサポートするために、プログラム可
能集積キャッシュユニットおよび関連する方法論を提供
することである。
できるキャッシュアーキテクチャで、上述した目的を実
現することである。
ッシュのいずれとしても使用できる。
ササポートのためのハードウェア要件、モジュール性要
件、低電力要件などの特徴が含まれている。バス監視
と、所有権方式と、ソフトウェア制御と、ハードウェア
制御との組合せが、キャッシュの整合性を達成するため
にこの新規なICUとともに使用できる。
詳細な説明と、添付の図面とを考慮すれば当業者には明
らかとなるであろう。なお図において同一の参照符号は
すべて同一の特徴を表わしている。
システム構成を示す。
ッサモードとマルチプロセッサモードとの両方の動作を
有するRISC処理システムに関連して説明する。当業者に
は、後に詳細に説明するICUが、非RISC環境においても
同様に使用できることが明らかであろう。
キャッシュとして使用され、ICU102はデータキャッシュ
として使用されている。
n processor)(SIP)をキャッシュに結合する、適当な
高速インターフェイスを用いることが望ましい。
21からなるプロセッサバスを示す。命令ROM150および命
令キャッシュICU101内の命令は、プロセッサ110により
アドレスバス120を介してアドレッシングされる。取出
された命令はバス125を介してプロセッサ110に与えられ
る。
アドレッシングされる。プロセッサ110とICU102との間
で、データバス121を介する両方向のデータの流れが可
能である。
U102と結合するバスである。説明の便宜のため、典型的
なRISCシステム構成の一部を構成する算術増速器195
が、バス120および121に結合されて示されている。また
データ転送制御器(DTC)198が、たとえば、高速プロセ
ッサよりはるかに近い速度を有する、市場で入手可能な
周辺装置をプロセッサ、キャッシュユニットなどの性能
を制限することなくシステムに取付けることができるよ
う、典型的なシステム構成の一部として使用できる。
めにまず一般的なキャッシュ用語とマルチプロセッサキ
ャッシュ用語とを定義し、それらを用いて新規な集積キ
ャッシュアーキテクチャを説明する。ここで用いられる
一般的なキャッシュ用語は次のように定義される。
れたシーケンシャルなワード線のグループである。キャ
ッシュブロックは、必要なときにはいつでも1グループ
として割当てたり置換したりすることができる。ICUの
好ましい実施例では、ブロックサイズは4ワード(4ワ
ードにつき1タグ)である。
られたステータスビットである。ICUの好ましい実施例
では、1ブロックにつきステータスビットが存在する。
それらはブロックのモディファイドおよびシェアードの
ステータスを特定する。
トを含む、オンチップのランダムアクセスメモリアレ
イ。
込アクセスが行なわれる書込ポリシー(方式)。書込ま
れたデータを含むブロックがモディファィドとマークさ
れる。データは、修正されたブロックが置換されるとき
のみ、メインメモリに書込まれる。すなわちコピーバッ
クされる。
タ変数をキャッシュするために使用されるキャッシュ。
ブ編成の別名である。特定のアドレスは、キャッシュ内
の、(アドレスにより直接にマップされる)1個の特定
のロケーションにのみキャッシュできる。
が、キャッシュメモリアレイ内に存在すること。アドレ
ス一致がタグアレイにおいて見出され、さらに、対応す
る有効ビットがセットされている。
作。1個以上の有効ビットがリセットされ、そのため対
応するワードが無効になる。
キャッシュするために使用されるキャッシュ。
クが、その使用の記録に従って選択される置換アルゴリ
ズム。最も古く使用されたブロックが置換される。
ッシュ内でロックすることができる。たとえ置換アルゴ
リズムによってそれらが選択されたとしても、それらは
置換されないであろう。後に説明する、ICUに入力にさ
れる*LOCKはインターロック動作を指定し、キャッシュ
内ロックのために用いられるのではないことに注意すべ
きである。ブロックをロックすることを容易にするため
に、ロックビットが各ブロックと関連付けられている。
含む、オンチップのランダムアクセスメモリアレイ。
ス。
ャッシュメモリアレイ内に存在しないこと。
まれたブロックはモディファイド(変更)とマークされ
る。これは、メインメモリに対してこのブロックが変更
され、より最近のデータを含んでいることを示す。
またはデータ変数。キャッシュ不能動作はICUによって
メモリバスに転送される。このためにキャッシュをサー
チすることはなく、キャッシュブロックが割当てられる
ことはない。
求が発生する前にキャッシュにフェッチする動作。
リフェッチされたデータ変数または命令を、キャッシュ
に書込む前に保持するバッファ。ICU内では、読出バッ
ファがプリフェッチバッファの機能のために使用され
る。
令をロードする特殊なプリフェッチ動作。プリロード動
作のためのアドレスは、他のプリフェッチ動作のように
プリフェッチアドレスがキャッシュによって決定される
のと異なりユーザによって特定される。
バス。
する置換アルゴリズム。
または命令を、キャッシュに書込む前に保持するバッフ
ァ。このICUの好ましい実施例においては、読出バッフ
ァは4ワードの深さであり、プリフェッチバッファの機
能のためにも使用される。
データまたは命令はメモリから受取られるとすぐにプロ
セッサに転送される。再ロード動作が並列に完了され
る。リードスルーのないキャッシュでは、再ロード動作
は要求されたデータまたは命令がプロセッサに転送され
る前に完了される。
あり、要求されたデータまたは命令をメインメモリから
フェッチする。
割当てる際に、置換されるべきブロックを決定するため
のアルゴリズム。要求された新たなアドレスを含んだセ
ットから1つのブロックが選択される。
の命令の影響の範囲を定義するために使用される。この
命令は、1つの特定のICU、変数の命令キャッシュ、複
数のデータキャッシュ、または複数の命令およびデータ
キャッシュに影響を及ぼし得る。
ループであって、同時に読出され要求されたアドレスと
比較されるもの。セットのタグのいずれに対しても一致
が生じ得る。セットはアドレスビットのいくつかに従っ
て特定される。セット内のタグ数は、キャッシュ組織内
の「ウェイ」(以下に定義する)の数と等しい。
内の複数のロケーションにキャッシュすることが可能な
キャッシュ編成。この数はアソシアティビティの程度と
呼ばれる。それはキャッシュ組織内の「ウェイ」の数お
よび同時に読出され比較されるタグの数を特定する。開
示されたICUは2ウェイおよび1ウェイのセットアソシ
アティブ編成をサポートしている。
ードとともにメインメモリからフェッチされた1以上の
ワードのグループ。サブブロックのサイズが、フェッチ
されるワードの最大数を規定する。サブブロックのサイ
ズはブロックサイズ以下である。
は命令のアドレスを特定する。各キャッシュブロックに
対してキャッシュタグが関連付けされており、キャッシ
ュタグはタグアレイにストアされている。ICUの好まし
い実施例では、各タグは4ワードブロックに対応してい
る。
のアドレスタグを含んだ、オンチップのランダムアクセ
スメモリアレイ。
引き起こす動作。変更されたブロックがキャッシュから
メインメモリに書込まれ、メインメモリが最も新しいデ
ータによって更新される。
ダムアクセスメモリアレイ。
ビット。ICUの好ましい実施例では、キャッシュされた
各ワードに対して1つの有効ビットが関連付けされてい
る。
のグループ。モジュールのアドレスデコーダによって特
定されたただ1つのタグのみが各ウェイから読出され比
較される。ICUの好ましい実施例では各々256タグを含ん
だ2つのウェイが存在する。
込アドレスを含んだブロックに対して1つのキャッシュ
ブロックが割当てられる。要求されたブロックに対して
再ロード動作が行なわれる。非書込割当では、ブロック
が割当てられず書込はメモリに対してのみ行なわれる。
なわれるまでの間、書込アクセス情報(アドレス、デー
タおよび制御)を保持するためのバッファ。ICUの好ま
しい実施例は4つの書込アクセスまで保持できる、深さ
4の書込バッファを含む。
に対して行なわれる書込ポリシー。キャッシュヒットの
場合にはデータもキャッシュに書込まれる。
以下のように定義される。
モニタ(監視)される。スレーブキャッシュは転送され
たアドレスをタグバッファアドレスと比較する。一致が
生じた場合には特定の動作を行なうことができる。バス
スヌーピングまたはスヌーピングキャッシュという用語
はこれとほぼ等しい。
ッシュシステムにおけるデータ整合性をいうための別の
用語である。
ステムにおける主な問題である。ある変数が複数のプロ
セッサによって共有されている(シェアード)場合、そ
のデータは複数のキャッシュによってキャッシュされる
ことがある。この変数に対するアクセスが生じたときに
はいつでも、その変数の最も新しいものを返す必要があ
る。それによってシステム内でのデータ変数の整合性を
確保できる。
検出されたときに、スレーブキャッシュによって実行で
きる動作。そのスレーブキャッシュが変更されたデータ
(そのデータの最も新しい値)を含んでいるときには、
このキャッシュはアクセスに介入しそのデータを提供す
る。この場合メインメモリはデータを供給してはならな
い。
キャッシュのみに(排他的に)存在することを示す。そ
のブロックは1つのプロセッサによって排他的に使用す
ることもできるし、複数のプロセッサによって使用する
こともできるが1つのキャッシュ内にのみ存在する。IC
Uの好ましい実施例では、シェアードブロックステータ
スビットがLOW(ロー)の場合、排他的ブロックを示
す。そのブロックは排他的非モディファイドまたは排他
的モディファイドのどちらであってもよい。
(インターロック変数)を、1つのプロセッサが排他的
に使用するために一時的にロックするために使用され
る。他のどのプロセッサまたはキャッシュもこの変数が
インターロックされている間にはその変数を使用するこ
とはできない。ICUへの*LOCK入力(後述する)はイン
ターロック動作を示している。
シュ。マスタキャッシュは要求を発行しつつ応答を待
つ。
内のアドレスの1つと一致し、対応するワードが有効で
ある場合。この用語はメモリバスアドレス比較のために
使用され、プロセッサバスに対して用いられる用語であ
るヒットと同様である。
である。ある変数の最も新しい値は1つのキャッシュま
たはメインメモリによって所有される。変数の整合性を
維持するのは所有者の責任である。何種類かの所有権機
構が存在するが、それらの相違は変数に割当てられる状
態の数および所有権と状態の遷移のためのアルゴリズム
による。
以上のプロセッサによって共有されていることを示す。
共有変数は1以上のキャッシュに存在することができ
る。ICUの好ましい実施例ではシェアードブロックステ
ータスビット内のHIGHはシェアードブロックであること
を示す。このブロックはシェアードの非モディファイド
またはシェアードのモディファイドのどちらともなり得
る。
スであって、キャッシュブロックが共有され変更されて
いることを示す。これはまたこのブロックがキャッシュ
によって所有されていることを示し、それがシステム内
でのそのブロックの最も新しい値であることを示す。
ッシュ。スレーブキャッシュはデータ整合性をとる目的
のために、メモリバスを監視することができる。
語、バススヌーピングまたはスヌーピングキャッシュも
同様である。
の好ましい実施例についての詳細な説明を、ピンの説明
および機能組織に関してこのすぐ後に開始する。
の動作においてハイインピーダンス状態にすることがで
きるような信号を説明するために使用されていることに
注意されたい。すべての出力(後に説明するMSERRを除
く)は*TEST入力(これについても以下に述べる)によ
ってハイインピーダンス状態とされる。
に、CMOSであって169ピングリッドアレイパッケージで
ある。
する。それは以下を含む。
り、同期式であり、プロセッサバス上のキャッシュアク
セスのためのバイトアドレスを転送する。
およびASTC1として示されているが、アクセスに関連し
たステータス制御を特定する同期式入力である。それら
は本願発明の好ましい実施例では次のようにコード化さ
れている。 ASTC1 ASTC0 意味 0 0 排他的ライトスルー 0 1 排他的コピーバック 1 0 シェアード 1 1 キャッシュ不能 これらの入力はプロセッサ110のMPGM0−MPGM1出力に
通常は接続されれる。
ローであって、アドレスバスおよび関連した制御が無効
であることを示す。それはプロセッサバス120上のアイ
ドルサイクルを規定する。
同期式、かつアクティブローである。この出力はプロセ
ッサバス120上でバーストモードキャッシュアクセスが
確定されたときには常にアサートされる。
式、かつアクティブローである。この入力はプロセッサ
バス上でのバーストモードキャッシュアクセスを確定
し、バーストモードキャッシュアクセスの間の次の転送
を要求するために使用される。この信号は以下に述べる
*DREQまたは*IREQと比較してサイクル内の終盤部分で
有効となる。
かつアクティブローである。この出力は現在のキャッシ
ュアクセスの間にエラーが発生したことを示す。
クティブローである。プロセッサバスキャッシュ読出に
対しては、この出力はキャッシュバス上に有効なデータ
が存在することを示す。キャッシュ書込に対してはこの
出力はもはやデータをキャッシュバス上に出力する必要
がないことを示す。
である。この信号は以下のようにプロセッサ上でのキャ
ッシュアクセスに対するアドレス空間を特定する。
殊な機能を有する。それはRESETの間にサンプリングさ
れ、サンプリングされた値がハイであればICUは命令ROM
アクセスに対して応答する。サンプリングされた値がロ
ーであればICUは命令ROMアクセスに対して応答しない。
RESETの後CREQT1入力は命令キャッシュとしての使用で
は無視される。
である。*CSEL入力がアクティブであるとプロセッサバ
スキャッシュ命令アクセスのためのICUを選択する。通
常のメモリアクセスではこれは使用されない。*CSEL入
力はICUの一部であって後述するチップ選択マッピング
レジスタによって不能化できる。*CSELが可能化されア
サートされていないときには、ICUはプロセッサ−バス
キャッシュ命令アクセスに対して応答しない。
入力でありアクティブローである。*CSM入力がアクテ
ィブレベルであるとメモリアクセスのためのICUを選択
する。これはキャッシュ拡張およびキャッシュアドレス
空間選択のために使用できる。*CSM入力はチップ選択
マッピングレジスタによって可能化できる。*CSMが可
能化されていると、ICUは*CSMがアサートされ、アドレ
スが、チップ選択マッピングレジスタ(詳細は後述す
る)の予め選択されたフィールド内の対応する可能化さ
れたビットと一致したときのみメモリアクセスに対して
応答する。
状態である。キャッシュバスはプロセッサバス上の、IC
Uへ、およびICUから命令またはデータを転送する。
ーである。この入力はプロセッサバス上のデータアクセ
スを要求する。これがアクティブであると、アクセスの
ためのアドレスがアドレスバス上に現われる。ICUの命
令キャッシュ使用では*DREQはプロセッサバスキャッシ
ュ命令転送のために使用される。
である。この入力はプロセッサバス上で命令キャッシュ
アクセスを要求する。これがアクティブであると、アク
セスのためのアドレスがアドレスバス上に現われる。こ
の入力はICUのリセット動作時には特殊な機能を有す
る。この信号はRESET(後述する)がアクティブのとき
にSYSCLの立上がりエッジでサンプリングされる。最後
にサンプリングされた値がICUの動作をデータキャッシ
ュ(*IREQがロー)または命令キャッシュ(*IREQがハ
イ)として定める。データキャッシュ動作に対しては*
IREQはローに固定される(通常動作では無視される)。
命令キャッシュ動作では、*IREQはプロセッサの*IREQ
出力に接続され、この*IREQ出力はRESETの間にはデア
サートされる。RESETの間にプロセッサがテストモード
となった場合、外部の論理がIREQをハイに駆動するべき
であることに注意されたい。
ブローである。この入力はプロセッサキャッシュアクセ
スがインターロックされた変数に対してのものであるこ
とを示す。ICUは、後に詳細に明らかにされるインター
ロック機能について説明する特殊な方法でこのアクセス
を取扱う。
アクティブハイである。この出力はICU出力とアクティ
ブドライバに対して内部的に与えられた信号との比較結
果を示す。可能化されたドライバのいずれかに対して相
違が存在するとこの信号はアサートされる。
る。これら信号はキャッシュアクセスと関連付けされた
オプション制御ビットを反映している。これら信号はデ
ータ長と、特殊アクセス情報とを特定するために使用さ
れる。これら信号の解釈はICUをデータキャッシュまた
は命令キャッシュのいずれとして使用しているかに依存
する。これら入力の符号化方法および解釈について、本
願発明の好ましい実施例によれば以下のとおりである。
がないものとして取扱われる)。符号100、101はDRQT0
がハイの場合にはアクセスなしとして取扱われる。符号
100は命令ROMをデータとして読出すために使用される。
データキャッシュは、後に定義するモードレジスタ内の
ROM可能化ビットがハイの場合のみこのコードに応答す
る。この場合この要求はキャッシュ不能アクセスとして
取扱われる。符号101はICUプロセッサバスキャッシュ命
令のためのオペランド転送を示す。本願発明の好ましい
実施例によれば、符号110は特別なデバッグモジュール
アクセスのために使用される。データキャッシュは*CR
DYを4サイクルにわたってハイとすることにより応答
し、その後*CRDYは1サイクルの間アサートされる。
入力でアクティブローである。もしデータキャッシュで
の*DREQまたは命令キャッシュでの*IREQがアクティブ
でなければこの入力はキャッシュアクセスが他の進行中
のキャッシュアクセスとパイプライン化されていること
を示す。パイプライン化されたアクセスは、第1のアク
セスが完了しない限り完了できない。第1のアクセスが
完了したことはデータキャッシュの場合には*DREQが、
命令キャッシュの場合には*IREGがアサートされること
によって示される。
ーである。この入力はICUをリセットする。
キャッシュアクセスがICUからプロセッサ(R/*Wがハ
イ)の転送であるか、またはプロセッサからICU(R/*
Wがロー)の転送であるかを示す。
力である。この入力は、アクセスの間に、例として挙げ
たプロセッサのプログラムモード(スーパーバイザモー
ドまたはユーザモード)を示す。ICU内部レジスタおよ
びキャッシュ命令の実行は、ユーザモードアクセスに対
して保護されている。
ロック入力である。
である。この入力がアクティブの場合にはICUはテスト
モードである。MSERRを除く全出力および双方向ライン
は強制的にハイインピーダンス状態にされる。
ャッシュミスの場合の、置換されるウェイ番号を強制す
る。2ウェイセットアソシアティブ編成でのミスは(置
換モードが外部の場合)WREPによって決定される置換を
行なう。WREPがローであればウェイ0が置換されWREPが
ハイであればウェイ1が置換される。
ェイスについて説明する。メモリバスは以下を含む。
期式および3状態である。これら信号はキャッシュブロ
ックステータス情報を調べ更新するために使用される。
メモリバス命令によって必要となると、ICUはこれらを
用いて、与えられたアドレスに関連したブロックステー
タスビットを示す。これら信号はまた、ブロックステー
タス書込命令に対しては、メモリバスからのブロックス
テータスを与えるために使用される。上記した機能の双
方についてのこれら信号の符号化方法は次のとおりであ
る。 BSTC1 BSCT0 意味 0 0 排他的非モディファイド 0 1 排他的モディファイド 1 0 シェアード非モディファイド 1 1 シェアードモディファイド *DI、データ介入は同期出力、3状態およびアクティ
ブローである。この出力はメモリバス上でのデータ介入
動作を示すために使用される。データ介入動作は、ある
種のマルチプロセッサ構成において使用され、最も新し
い変数の値を、(メモリからではなく)適切なキャッシ
ュから供給するために用いられる。ICUマスタはメモリ
バス読出アクセスのアドレスサイクルの間に、*DI信号
をプリチャージする。ICUマスタはさらにこの信号を3
状態モードにする。バスマスタではないICUは、データ
介入によって応答する場合には*DI信号をディスチャー
ジする。
ローである。この入力はメモリバスのICUによる使用が
許可されたことを示す。
ティブローである。この信号は出力のみまたは入力/出
力信号のいずれにもプログラム可能である。出力として
はこの信号はヒットを示すために使用される。メモリバ
ス上に存在するアドレスに対してタグバッファ内でヒッ
トが検出された場合にこの信号がアサートされる。メモ
リバス命令のある種のものではこの信号は、ワードまた
はブロックの有効性を示すために使用される。
の信号は上記した出力機能に加えて、他の任意のキャッ
シュでのヒットを検出するための信号として使用でき
る。ICUマスタはアドレスサイクルの間に*HIT信号をプ
リチャージし、その後それを入力3状態モードにする。
バスマスタでないICUはそれらのタグバッファ内でヒッ
トが検出されたときのみ*HIT信号をディスチャージす
る。
式、3状態およびアクティブローである。ICUがメモリ
バスマスタである場合にはこの信号はICUによってアサ
ートされバイトアドレスがメモリバス上に存在すること
を示す。ICUがマスタでない場合にはこの信号は、他の
バスマスタからのバイトアドレスがメモリバス上に存在
することを示す。仮に命令キャッシュおよびデータキャ
ッシュがともにシステムに存在している場合、2つの*
MASTB信号が可能である。これら2つの信号を用いて、
命令およびデータアクセスの間での区別を行なうことが
できる。
クティブローである。この入力はメモリバス上でのバー
ストモードキャッシュアクセスが確立されたときはいつ
でもアクティブとなる。
および3状態である。これはメモリバス上の転送につい
てのバイトパリティバスである。偶数または奇数パリテ
ィを指定することができる。MBP0はMEMAD0−MEMAD7のた
めのバイトパリティであり、MBP1はMEMAD8−MEMAD15の
ためのバイトパリティであり、以下同様である。ICUか
らメモリへの転送に対しては、ICUがパリティを発生さ
せる。ICUへの転送に対しては、ICUはバイトパリティを
チェックする。
バス上で転送される場合には、*CERR信号がアサートさ
れる。もしデータをプロセッサに転送する必要がない
(たとえばブロック再ロード)場合には、ステータスレ
ジスタ(後述する)内のエラービットがセットされその
データは無視される。パリティの発生およびチェックは
不能化できる。メモリバスデータのタイミングはパリテ
ィ発生および検証が不能化された場合には緩和される。
状態およびアクティブローである。この信号はメモリバ
ス上でのバーストモードアクセスを確立し、バーストモ
ードアクセスの間の次の転送を要求するために使用され
る。ICUがバスマスタである場合には、この信号は出力
である。ICUがマスタでない場合にはこの信号は入力で
あり、データ整合性動作を行なうためにICUが使用す
る。
び3状態である。これら信号はメモリバスデータアクセ
スについてはデータ長を示す。命令アクセスに対しては
これらは無視される。データキャッシュ使用に対しては
ICUは8、16および32ビット転送をサポートする。これ
らの信号の、本願発明の好ましい実施例による符号化方
式は以下のとおりである。MREQT1 MREQT0 意味 0 0 データメモリアクセス 0 1 データ入力/出力アクセス 1 0 命令メモリアクセス 1 1 命令ROMアクセス なお、本願発明の例示の実施例で使用されているプロ
セッサに関しては、MDLN0およびMDLN1のコード化はそれ
ぞれOPT0およびOPT1に対応する。
方向、同期式および3状態である。メモリバスはメモリ
インタフェースのために使用される多重化されたアドレ
ス/データバスである。*MASTBがアサートされると
き、このバスはメモリバスアクセスのバイトアドレスを
保持する。ICUがバスマスタのときにはこのバスはアド
レスを出力する。ICUがバスマスタでないときには、バ
スは入力でありアドレスはICUによってラッチされて内
部で使用される。MASTBがアサートされていないときに
はメモリバスはICUへおよびICUからデータを転送するた
めに使用される。*MERR、メモリエラーは同期式ICU入
力でアクティブローである。この入力は現在のメモリア
クセスの間にエラーが発生したことを示す。ICUはまた
この信号をデータ整合性動作のために使用する。
アクティブローである。この信号はメモリアクセスがイ
ンターロックされたアクセスであることを示す。ICUマ
スタはインターロックされたアクセスがメモリバス上に
存在しているときにこの出力をアサートする。ICUがバ
スマスタでないときには、この信号は入力として用いら
れる。*MLOCKがアサートされた状態で書込アクセスに
対し一致が検出された場合には、それに関連したワード
が無効化される。この特徴はインターロック変数のキャ
ッシングを可能化する方式のために使用される。
ローである。ICUがバスマスタであるときはこの信号は
入力として用いられる。メモリバス読出の場合には、こ
の入力はメモリバス上に有効データが存在していること
を示す。メモリバス書込に対してはこの信号は、もはや
データメモリバス上に出力する必要がないことを示す。
ICUがバスマスタでないときにはこの信号はデータ整合
性動作のための入力として使用される。データ介入およ
びメモリバス特別動作の場合にはこの信号は出力として
用いられる。ICUは*MRDYをアサートしてメモリバス上
に有効なデータが存在していることを示す。
で3状態である。これら信号はメモリバス上のアクセス
のためのアドレス空間を特定する。ICUがバスマスタで
ある場合には、ICUがこれら信号を出力として用いる。
バスマスタでないときにはMREQT信号はデータ整合性動
作のための入力として用いられる。本願発明の好ましい
実施例による符号化方式は以下のとおりである。MREQT1 MREQT0 意味 0 0 データメモリアクセス 0 1 データ入力/出力アクセス 1 0 命令メモリアクセス 1 1 命令ROMアクセス ICUがバスマスタでないときにはMREQT信号はICUのた
めのメモリバスキャッシュ命令を特定するために(MRW
信号とともに)使用される。
3状態である。これら信号はメモリバス上の読出および
書込動作の態様を特定するために用いられる。ICUがバ
スマスタであるときにはICUは要求された動作を示すた
めにこれら信号を用いる。ICUがバスマスタでないとき
にはこれら信号は入力であり、データ整合性動作のため
に使用される。この発明の好ましい実施例によるこれら
信号の符号化方式は以下のとおりである。MRW1 MRW0 意味 0 0 書込 0 1 読出 1 0 書込ブロードキャスト 1 1 修正のための読出 上記した読出および書込動作はICUを基準としたもの
であり、たとえば読出はメモリからICUへのものであ
る。
のメモリバスキャッシュ命令を特定するために(MREQT
信号とともに)使用される。ここに説明するICUととも
に用いるのに適したメモリバス命令セットの説明を以下
詳細に述べる。
期式ICU出力が3状態である。この出力はメモリアクセ
スの間にプロセッサのプログラムモード(スーパーバイ
ザモードまたはユーザモード)を示す。ICUはプロセッ
サバス上に存在するSUP/*USの値を適切なトランザクシ
ョンに対してはメモリバス上のMS/*MUの値に転送す
る。
ブローである。この出力はICUによってメモリバスを要
求するのに用いられる。
アクティブローである。ICUがバススレーブである場合
には*VSIがアサートされるとメモリバスキャッシュ命
令アクセスを示す。ICUがバスマスタであり、再ロード
のための読出要求を発行した場合には、*VSIをアサー
トすると特別な書込ブロックステータス命令が実行され
るべきであることを示す。適切なメモリバスキャッシュ
命令セットおよび*VSIの用法について以下に詳細に説
明する。
ICUへのおよびICUからのさまざまな入力出力について説
明したので、ICUの機能組織の詳細な説明を参照して新
規な方法および装置について完全に理解することができ
るであろう。以下の説明はいくつかの部分に分けて行な
う。まず、ICUがいかにして計算機システム、特に本願
発明の用途および動作を例証するために用いられるRISC
システムにどのように組込まれるかについて説明する。
次に、ICUを通るデータの流れを詳細に説明する。第3
に、本願発明を実現するのに適したレジスタセットのレ
ジスタレベルの説明を行なう。また、適切なキャッシュ
命令セット、データフォーマットおよび取扱の説明、キ
ャッシュアクセスおよびプリフェッチ動作についても説
明する。
ても後にさらに詳細に説明する。
び特別なICUインターロック機能について説明して、本
願発明の詳細な説明を終わる。
キテクチャに関連して説明される。本願発明の好ましい
実施例を、このアーキテクチャをサポートするように記
載する。当業者であれば、新規なICUの好ましい実施例
について、本願発明の本質から離れることなく、たとえ
ば非RISCプロセッサをサポートするために修正できるこ
とが容易に見て取れるであろう。以下の説明はしたがっ
て、例示のためだけを目的としてなされる。
レイとそれに関連したタグおよび有効性アレイとであ
る。これらアレイはタグあたり4ワード(ブロックサイ
ズ=4ワード)および1ワードあたり1有効ビットをも
つツーウェイセットアソシアティブキャッシュとして編
成されている。この基本的な編成は、直接マップされた
キャッシュ、可変のブロックおよびサブブロックサイズ
および柔軟な再ロード方式をもサポートする。ブロック
ステータスアレイおよびLRUアレイもまた組込まれてい
る。これらはキャッシュ置換、キャッシュ内のデータロ
ック、およびデータ整合性ポリシーのために使用され
る。ICUは種々のキャッシュポリシー、アルゴリズムお
よび命令のための制御論理をすべて含んでいる。プログ
ラム可能なオプションの選択、キャッシュ命令実装およ
びステータス報告のために特別なレジスタが実装されて
いる。
いることにより選択できる。キャッシュ書込ポリシーは
ライトスルー、コピーバックまたはアクセスごとにフレ
キシブルにプログラムできる。書込割当または非書込割
当オプションを選択することが可能である。書込アクセ
スを効率的に実装するために4ワードの書込バッファが
組込まれている。この書込バッファは可能化または不能
化できる。置換アルゴリズムはLRU、ランダムまたは外
部としてプログラムできる。フレキシブルプリフェッチ
ポリシーを選択できる。リードスルーオプションを可能
化できる。効率的なプリフェッチおよび読出動作をサポ
ートするために4ワード読出バッファが組込まれてい
る。
に調整できる。マルチプロセッササポートのレベルは、
単純なソフトウェアによってコントロールされた編成か
ら広範にわたる所有権方式まで変化することができる。
バス監視機能も可能化または不能化できる。所有権アル
ゴリズムは、必要とされる方式をサポートするよう制御
能である。インターロック変数のキャッシングも可能化
または不能化できる。
ジスタがキャッシュ拡張を容易にし、マルチキャッシュ
編成をも容易にする。再ロード機能は再ロードサイズ、
開始および停止アドレス、バーストおよびラップアラウ
ンドなどの適切なアクセス制御オプションを選択するこ
とによりシステムごとに調整可能である。
いる例示としてのRISCプロセッサと同じ周波数、すなわ
ち25MHzで動作し、公衆周波数はさらに高い周波数とな
ることが可能であろう。それは、最初のヒットアクセス
に対しては2つのサイクル、そして次のバーストモード
またはパイプラインビットアクセスに対しては1サイク
ルのアクセスタイムを達成する。
み、他の2つがICUを含んだ構成(1つは命令キャッシ
ュ、そして他の1つはデータキャッシュ)は、16kバイ
トのキャッシュをもつ非常に高性能なキャッシュシステ
ムである。
ンタフェースバスをもつ。1つはプロセッサバスであ
り、他の1つはメモリバスである。それはインタフェー
スロジックなしでRISCプロセッサに直接接続できる。IC
Uキャッシュバスはデータキャッシュまたは命令キャッ
シュに対してそれぞれプロセッサのデータバスまたは命
令バスに接続される。パイプライン化されたバーストモ
ードアクセスが、プロセッサチャネルを最大限利用する
ためにサポートされている。メモリバスはメモリ、他の
プロセッサおよびシステムバスへ別個のインタフェース
である。それはバーストモードアクセスをサポートした
多重化されたアドレスおよびデータバスである。それに
はまたマルチプロセッササポート機能も組込まれてい
る。共有メモリマルチプロセッサ環境ではメモリバスは
シェアードマルチプロセッサバスとして効率的に使用す
ることができる。単一のプロセッサシステムについては
それはシステムバスまたはローカルバスとして使用でき
る。
ートするために特別なハードウェアを含んでいる。それ
はマスタ/スレーブチェックと、メモリバス上のバイト
パリティの発生およびチェックとをサポートしている。
マスタ/スレーブチェックのために、1以上のICUが1
以上のキャッシュ(スレーブ)と並列に接続されマスタ
の出力をチェックする。バイトパリティ発生およびチェ
ックは信頼性のあるバス転送のためのメモリバス上で使
用することができる。
テクノロジーを用いて製造され、最大電力消費は1.5Wで
ある。
る。以下の説明はこのデータフローダイヤグラム上の機
能的要素について述べる。ICUは3つの主要機能ユニッ
トに分割されている。すなわちプロセッサバスユニッ
ト、メモリバスユニットおよびキャッシュユニットであ
って、これらはいずれも第3図に示されている。以下の
説明では任意の数の目的のために用いられている種々の
ワードの特定のビットロケーションやフィールドについ
て述べながら行なわれる。当業者であれば、これらの言
及が決して限定的なものではなく、目的とされる応用処
理に適するように変更することが可能であることを容易
に理解できるであろう。これらの特定な言及は、実現可
能な、例示の、本願発明の好ましい実施例を説明するう
えで説明を明確にする目的だけのために行なわれてい
る。
での活動を制御する。それはすべてのRISC/SIPチャネル
プロトコルをサポートしている。すなわちシングル、バ
ーストおよびパイプライン化である。それはアドレスイ
ンクリメント、データシフタおよびプロセッサバス制御
を含んでおり、このすぐ後に各々説明する。
ラッチする。それは各サイクルにインクリメント可能で
ある。AI出力はキャッシュアクセスのためのアドレスで
ある。AIは第3図にユニット301として示されている。
る。それはバイトおよび半ワードをシフトしキャッシュ
書込アクセスのためにデータを保持する。それはまたバ
イトおよび半ワード読出の場合には適切なバイトおよび
半ワードシフト演算にも用いられる。DSHは第3図にユ
ニット302として示されている。
動作を制御する。PBCは第3図ではユニット303として示
されている。
を制御する。それは書込バッファ、メモリアドレス論
理、メモリ読出バッファおよびメモリバス制御を含んで
おり、それらについてはすぐ後に説明する。
ファ(WB)は2つの4ワードの先入れ先出し(FIFO)バ
ッファを含んでいる(1つはアドレスのため、他の1つ
はデータのため)。WBはすべてのICU書込動作をバッフ
ァすることができる。ライトスルー動作のためにはそれ
は4バイト、ハーフワードまたはワード書込までバッフ
ァする。コピーバック動作のためにはそれは4ワードブ
ロックをバッファする。WBは第3図ではユニット304と
して示されている。
リメンタを含む。第1のアドレスインクリメンタはバス
からICUへの動作のためのメモリバスアドレスをラッチ
しインクリメントする。第2のアドレスインクリメンタ
はICUによって開始された読出動作のためのアドレスを
ラッチしインクリメントする。MALは第3図ではユニッ
ト305として示されている。
ァである。それはメモリバスからのデータを、キャッシ
ュが更新動作のために利用可能となるまでバッファす
る。MRBはプリフェッチが可能化されている場合にはプ
リフェッチバッファとして使用される。MRBは第3図で
ユニット306として示されている。
御するが、第3図ではユニット307として示されてい
る。
する。それはメモリアレイ、ダグアレイ、有効アレイ、
ブロックステータスアレイ、LRUアレイ、特殊レジスタ
およびキャッシュ制御を含んでおり、その各々について
はすぐ後に説明する。
ための64kビットの記憶アレイである。それは各々1024
ワードの2つのウェイに編成されている。読出動作のた
めには、この2つのウェイは本願発明の好ましい実施例
では、アドレスのビット11−2を用いて同時にアクセス
される。タグアレイからのヒット信号に基づいて、適切
なワードが選択される。書込動作に対しては、アレイ内
の正確なワードが、タグアスセスが完了しヒット信号が
生成された後に書込まれる。メモリアレイは第3図では
ユニ310として示されている。
ャッシュタグをストアする。各ウェイは256×20ビット
で編成されている。各タグは4つの連続したキャッシュ
されたワードのブロックに対応する。各キャッシュアク
セスに対してアドレスのビット11−4を用いて2つのタ
グが同時にアクセスされる。これらタグはアドレスのビ
ット31−12(本願発明の1つの実施例では)と比較され
る。ヒット信号が比較結果とコンフィギュレーションビ
ットとから生成される。タグアレイは、ミスが発生しキ
ャッシュブロックが割当てられるたびに書込まれる。タ
グは、アドレスのビット11−4と置換アルゴリズムとに
よって選択される。アドレスビット31−12がタグアレイ
に書込まれる。タグアレイは第3図ではユニット311と
して示されている。
シュされた各ワードに対する有効ビットをストアする2k
ビットのアレイである。それは2つの1024×1アレイと
して編成されている。各ワードがキャッシュに書込まれ
るたびに有効ビットがセットされる。有効ビットがアド
レスビット11−2(メモリアレイと同様)およびマッチ
ング方法によって選択される。2つのウェイに対応する
2つの有効ビットが各キャッシュアクセスでチェックさ
れる。適切な有効ビットがセットされている場合のみヒ
ット信号が生成される。
あるが、各キャッシュブロックごとに3つのブロックス
テータスビットを含んだ1536ビットのアレイである。そ
れは2つの256×3アレイ(これはタグアレイ編成に対
応)として編成されている。3ビットとはモディファイ
ド、シェアードおよびロックトである。モディファイド
ビットはブロックが変更され、置換前にメモリに書き戻
されるべきであることを示す。これはコピーバック動作
およびデータ整合性動作のために使用される。シェアー
ドビットはブロックが共有されていることを示す。それ
はデータの整合性動作のために使用される。ロックトビ
ットは、そのブロックがロックされており置換できない
ことを示す。それはキャッシュ内の重要なデータまたは
命令をロックするために使用される。
LRUビットをストアする256ビットアレイである。それは
256×1アレイに編成されている。各LRUビットが2つの
タグの集合に対応している。LRUアレイはLRU置換アルゴ
リズムが選択されたときに用いられる。この集合内の2
つのブロックのうち最も古く使用されたブロックを示す
ために、適切なLRUビットが行使される。必要に応じ
て、LRUビットはその集合内のどのブロックが置換され
るべきかを決定する。
示されているが、ICUのためのすべての特殊レジスタを
含んでいる。それらはICUオプション、特別動作の制
御、およびステータス情報を保持するために使用され
る。
316であるが、キャッシュ動作のための制御論理を含ん
でいる。
説明してきたので、ICUのデータフローおよび制御をサ
ポートするためのレジスタ構造について説明する。
これらレジスタはプログラム可能オプションを選択し、
キャッシュ制御動作をサポートし、キャッシュステータ
ス情報を示す。各レジスタはプロセッサバスまたはメモ
リバスを介してプロセッサにより読出または書込可能で
ある。レジスタ読出またはレジスタ書込キャッシュ命令
は適切なキャッシュ命令プロトコルを用いてバスの1つ
の上でICUに転送される。プロセッサバス命令に対して
はオペコードの下位3ビットを用いてレジスタ番号が特
定される。命令転送プロトコルおよびICU応答はそれぞ
れモッドb(Modb)レジスタ内のレジスタ読出制御およ
び命令転送プロトコル制御によって制御される。メモリ
バス命令に対しては、アドレスの下位3ビットによって
レジスタ番号が特定される。これら例示されたプロトコ
ルおよび応答についての詳細な説明を以下に述べる。
殊レジスタが保護されている。それらはSUP/*US入力が
ハイの場合のみアクセス可能である。ユーザモードアク
セスは実行されない。*CERR応答信号によって、無効な
ユーザモードアクセスが示される。これらレジスタはメ
モリバスキャッシュ命令については保護されない。
次の番号が割当てられている。レジスタ番号 レジスタ名 0 チップ選択マッピング 1 命令 2 アドレスオペランド 3 カウント 4 エラーアドレス 5 ステータス 6 モッドa 7 モッドb 各レジスタについては一般的な機能の説明のみ以下に
述べる。なぜならば当業者であれば、応用に依存した目
的のための特定のビット割当が行なわれることを理解で
きるだろうからである。
る。それはICUチップ選択機能のためのアドレスおよび
条件を特定する。ICUは2つの独立したチップ選択機
能、すなわち通常のキャッシュアクセスとキャッシュ命
令アクセスのための機能を有している。
択機能はキャッシュ拡張、キャッシュアドレス空間割
当、および複数キャッシュコンフィギュレーションのた
めに使用できる。本願発明の好ましい実施例では外部の
チップ選択ハードウェアを用いることなく32個のICU(1
6個の命令キャッシュおよび16個のデータキャッシュ)
までが使用可能である。メモリアクセス(MA)選択もま
た*CSM入力とモッドa(Moda)レジスタ内のメモリビ
ット可能化フィールドに影響される。もし*CSM入力が
可能化されていれば、それはメモリアクセスを可能化す
るためにアサートされなければならない。*CSM入力が
不能化されている場合無視される。メモリビット可能化
フィールドは、適切なアドレスビットを、チップ選択メ
モリレジスタ内の対応する(MA)フィールドビットと比
較することを選択的に可能化できる。比較のためのビッ
トが不能化されるとそれは無視される。すべてのビット
が不能化されると強制的に一致が発生される。なお、*
CSMが可能化されているときには、サービスされるべき
メモリアクセスに対してはそれがアサートされ、MAフィ
ールド比較は一致すべきである。キャッシュ命令アクセ
スに対しては、チップ選択機能はアクセスのための適切
なICUを選択するために使用される。キャッシュ命令ア
クセスは*CSELがアサートされ可能化されているか、ま
たはアドレス入力A31−A14およびCREQT0がキャッシュ命
令アドレスおよびチップ選択マッピングレジスタ内のキ
ャッシュ命令アドレス空間フィールドと一致していると
きに可能化される。2番目の場合、一致が生じたすべて
のキャッシュが選択される。もし命令のスコープが複数
のキャッシュであれば、選択されたすべてのキャッシュ
が応答する。命令スコープが1つのキャッシュであれ
ば、アドレス入力A13−A8がチップ選択マッピングレジ
スタの特別キャッシュ番号フィールドと一致したキャッ
シュのみが応答する。
マッピングレジスタをプログラムするために使用され
る。典型的な構成では、別のアドレスビットが、別のIC
Uの*CSELに接続できる。*CSELがアサートされ可能化
されているとき、ICUはデータアクセスをキャッシュ命
令アクセスとして取扱う。チップ選択マッピングレジス
タがプログラムされた後、*CSEL入力を不能化すること
ができ、チップ選択マッピングレジスタによって特定さ
れたマッピングが適用される。
の命令を特定するために用いられる。命令レジスタは他
の特殊レジスタと同様、読出または書込が可能である
が、有効なキャッシュ命令に対してはそれは自動的にロ
ードされる。有効なキャッシュ命令は*CSEL入力がアサ
ートされ可能化されているときか、アドレス入力A31−A
14およびCREQT0がキャッシュ命令アドレスおよびチップ
選択マッピングレジスタ内のキャッシュ命令アドレス空
間フィールドと一致しているときに検出される。これら
の場合には、命令はアドレス入力A7−A0からコピーされ
る。
割込が発生した場合、または複数キャッシュ命令が割込
まれた場合にICUの状態をセーブしリストアするため
に、特殊レジスタとしてアクセスすることができる。特
殊レジスタとしてそれがアクセスされた場合には、読出
またはレジスタ書込キャッシュ命令がICUに転送され
る。レジスタ読出命令およびオプションのオペランドを
ラッチし、しかも要求された以前の命令およびオペラン
ドレジスタの内容を破壊しないことを可能にするため
に、シャドーレジスタが組込まれている。シャドー命令
レジスタには、最初に命令がロードされる。レジスタ読
出およびレジスタ書込命令を除くすべての命令に対し
て、命令実行が開始されると命令レジスタは更新され
る。レジスタ読出およびレジスタ書込命令については、
命令レジスタは命令レジスタ内に他の有効な命令が存在
していないときのみ更新される。命令レジスタ内に有効
な命令が存在している場合にはレジスタ読出命令は命令
およびオペランドレジスタに影響を与えることなく実行
される。この特徴は、キャッシュ命令の実行に影響を与
えることなくICUの状態をチェックするために使用され
る。
の命令はICUによって実行される。例示の命令、要求さ
れるオペランドおよびキャッシュ命令アクセスの詳細な
説明を以下に述べる。
特定のICU命令のためのオペランドを特定する。このレ
ジスタはオペランドレジスタ値の有効性を示すビット
(OVビット)を含む。レジスタ読出およびレジスタ書込
命令を正確に実行するために、シャドーオペランドレジ
スタがICUに組込まれている。シャドーオペランドレジ
スタには最初にオペランドがロードされる。レジスタ読
出およびレジスタ書込命令を除くすべての命令に対し
て、有効ビットがリセットされているとオペランドレジ
スタは更新される。もしOVビットがセットされている
と、ICUはOVビットがリセットされるまで(前の命令の
完了)*CRDY応答を遅延させ、その後レジスタをロード
する。レジスタ読出およびレジスタ書込命令について
は、命令レジスタ内に他の有効な命令が存在していない
ときのみオペランドレジスタが更新される。有効な命令
が命令レジスタ内に存在している場合には、レジスタ読
出およびレジスタ書込命令は命令およびオペランドレジ
スタに影響を与えることなく実行される。これによっ
て、必要な場合にオペランドレジスタをセーブしリスト
アすることが可能となる。必要な場合には、レジスタ読
出またはレジスタ書込命令を用いてオペランドレジスタ
の読出または書込をすることができる。
定のICU命令が操作するワード数を特定する。カウント
レジスタは命令実行によっては影響されない。
はいくつかの例外に関連するアドレスを報告するために
用いられる。例外アドレスレジスタには例外アドレスが
ロードされる。例外タイプはステータスレジスタ内に存
在する。
ICUの状態を報告するために、およびタグ読出およびタ
グ書込キャッシュ命令(後述する)におけるICUとプロ
セッサとの間の情報伝送のために用いられる。タグ読出
命令についてはタグの値を報告するために、タグ書込命
令についてはタグを転送するために、キャッシュされた
データのウェイを報告するために、タグ書込命令に対し
てはブロックの有効ビットを報告しそして有効ビットを
転送するために、タグ書込命令に対してそのブロックに
対するロックトビットを報告し、ロックトビットを転送
するために、タグ書込命令についてそのブロックのシェ
アードビットを報告しシェアードビットを転送するため
に、タグ書込命令についてそのブロックのモディファイ
ドビットを報告しモディファイドビットを転送するため
に、キャッシュ内でヒットがあったことを示すために、
保護違反、不法な命令、メモリエラーおよびパリティエ
ラーを示すためにそれぞれビットが予約されている。
種々のICUオプションを選択するために使用される。モ
ッドaレジスタは初期化の間にリセットされる。
のキャッシュロケーションをロックするために、書込バ
ッウァを不能化するために、およびリードスルーオプシ
ョンを不能化するために、フィールドが予約されてい
る。
り、このビットは命令キャッシュとデータキャッシュ使
用とで異なる機能を有する(「ROME」ビット)。
トされるとICUがROMアクセスに応答してそれらをキャッ
シュする。このビットが0であるとROMアクセスは無視
される。
ットされるとデータキャッシュは命令メモリアクセスに
ついて(データのように)可能化される。OPT入力が命
令メモリアクセスを示している場合、ICUはそれをキャ
ッシュ不能トランザクションとして取扱う。特定された
アドレスがメモリバス上で読出され、プロセッサに転送
されるがキャッシュにロードされることはない。ROMEビ
ットが0のとき、ICUはこのタイプのトランザクション
を無視する。
リフェッチオプションを可能化するため、アドレスラッ
プアラウンドオプションを不能化するため、単一アクセ
スミス時のICU動作を制御するため、プロセッサによっ
てバーストモードの読出要求が終了されたときにICU動
作を制御するため、バーストアクセスのためのプリフェ
ッチオプションを可能化するため、およびサブブロック
サイズ(SBS)を選択するために、それぞれさらにフィ
ールドが設けられている。
御において使用されることが理解できるであろう。単一
のキャッシュミスに対してキャッシュに再ロードされる
べきワード数は、規定されたサブブロックサイズおよび
アクセスミスに対するICU動作を制御しているフィール
ドにストアされている情報(たとえばサブブロック境界
の開始および終了などの制御情報)によって規定され
る。SBSフィールドはまた、バーストモード制御情報と
ともに、バースト終了制御でも使用される。ICUの本来
のブロックサイズは4ワードであり、4データワードに
対して1つのタグが関連づけされている。サブブロック
サイズは1、2または4ワードである。
の拡張を制御するために、書込割当オプションがオンか
どうかを示すための、および全体的な書込ポリシーオプ
ションを選択するためのフィールドを含んでいる。
レキシブル、ライトスルーまたはコピーバックである。
のどのプロセッサ書込もメモリに書込まれる。コピーバ
ックが選択されたときには、どのプロセッサ書込ヒット
もキャッシュに書込まれ、モディファイドビットがセッ
トされる。そのブロックが置換されるときだけメモリに
コピーバックされる。フレキシブルポリマーが選択され
たときには、アクセスごとにライトスルーまたはコピー
バック動作が選択できる。アクセスについての書込ポリ
シーはまた、ASTC入力、ブロックステータスシェアード
情報およびモッドbレジスタ(後述)の書込共有ヒット
制御およびプロセッサ状態ビット制御フィールドによっ
ても影響される。
するために使用されるフィールドを含む。この選択は直
接マップ編成には使用されない。2ウェイセットアソシ
アティブ編成では、ブロックのうちの1つが有効でない
場合にそのブロックが新たなブロックのために選択され
る。本願発明の好ましい実施例によれば、置換ポリシー
のオプションは、LRU、ランダムまたは外部である。
きブロックを選択するために用いられる。LRUアレイは
各キャッシュアクセスごとに更新される。各セットに対
して1ビットが関連づけされる。それはセット内の2つ
のブロックから最も古く使用されたブロックを指す。
が置換されるべきブロックを選択する。この論理は単純
なフリップフロップであって、各クロックサイクルごと
にその状態を変え全セットに対して使用される。
ドレスとともにラッチされる。ラッチされた値によって
置換されるブロック選択が強制される。このオプション
は、キャッシュのテストおよびマルチレベルのキャッシ
ュ編成のために使用可能である。
イセットアソシアティブまたは直接マップ)を選択する
ために、キャッシュ動作を命令キャッシュまたはデータ
キャッシュとして選択するための、パリティ発生および
チェックオプション、メモリアクセスの際のアドレス比
較のためのチップ選択マッピングレジスタ内の対応する
MAビットを可能化するためのメモリビット可能化情報を
制御するための、フィールドを含んでいる。
種々のICUオプションを選択するために使用される。モ
ッドbレジスタの1つはマルチプロセッサ組織に関連し
ている。マルチプロセッサ組織およびこのフィールドの
使用方法については後述する。
出力データアクセスのためにICUを制御するためのビッ
ト(命令キャッシュでの使用の場合には無視される)、
ICUレジスタの読出モードを特定するビット、プロセッ
サバス上のキャッシュ命令転送のプロトコルを特定する
ビット、および関連した適当なICU動作について、ワー
ド内のバイトおよびハーフワードの順序づけを制御する
ためのビットを含んでいる。
報は以下のものを含む。キャッシュインターロック可能
化ビット。読出バス監視可能化ビット。書込バス監視可
能化。他のマスタによるメモリバス読出での一致があっ
たときのICUの動作を制御するためのフィールド。他の
マスタによるメモリバス書込動作での一致があった場合
の動作を制御するためのフィールド。書込割当でのコピ
ーバック書込ミスに対するICUのメモリバス動作を制御
するための書込ミスメモリアクセス制御。共有されたブ
ロックへの書込ヒットの際の動作を制御する書込共有ヒ
ット制御フィールド。セットされたとき、各プロセッサ
アクセスに対してブロックステータスシェアビットが変
更されるようにするプロセッサ共有ビット制御。および
共有ブロックステータスの割当を外部制御によって制御
するための外部共有ビット制御。外部共有制御について
は、*HIT信号がメモリバス読出および/または書込ア
クセスのための入力として使用される。もしこの信号が
アサートされると、このデータは他のキャッシュにも存
在しており、このブロックにはシェアード状態が割当て
られる。もし*HIT入力がアサートされていなければこ
の変数はどのキャッシュにも存在しておらず、このブロ
ックには排他状態が割当てられる。この特徴に関する詳
細な説明を、ICUマルチプロセッサのサポートについて
以下に述べる。
ュ命令と、9個のメモリバスキャッシュ命令とを実装し
ている。プロセッサバス命令はプロセッサによって、特
殊レジスタクセスのために、および特別なキャッシュ動
作要求のために発行される。メモリバス命令は特別なキ
ャッシュ動作要求に対して特別なロジックによりメモリ
バス上に発行される。この部分では、種々の命令転送プ
ロトコルの例を記載し、典型的なプロセッサバス命令お
よびメモリバス命令セットの例を詳細に説明する。
ロセッサバストランザクションの特別なシーケンスによ
ってプロセッサからICUに転送される。この命令は必要
なすべてのオペランドがICUに転送されるといつでも実
行される。
の、オプションの、動作のスコープを持っている。命令
スコープはキャッシュ命令により影響を受けるICUの数
を特定する。スコープは命令テーブル内の(s)によっ
て指定されている。(s)という指定のない命令は1つ
の特定のICUの上でのみ動作する。命令スコープは以下
のように指定される。
シュ内の所望のアドレスを操作するキャッシュ命令を発
行することが可能になる。複数ICU環境では、すべての
キャッシュを同時に操作する1つの命令を発行する方が
より効果的である。たとえば、ブロック無効化命令は
(s)=A(INVBA)であるが、すべてのICU内の特定さ
れたブロックを(そのブロックが有効であれば)並列に
無効化する。
以下に示すように例外が存在する。プロセッサバスキャ
ッシュ命令実行の間には、ICUは他のプロセッサのトラ
ンザクションを受けることができる(新たな命令転送を
含む)が、多くの場合(命令の記述でそうでないと指定
されている場合を除き)それらはプロセッサバスキャッ
シュ命令が完了した後でないとサービスを受けない。メ
モリバストランザクションはプロセッサバスキャッシュ
命令実行の間にもサービスされる。しかし、それらは命
令実行と同期化しているので、ICUの動作はキャッシュ
の現在の状態を反映している。
ある。もしSUP/*US入力がローであればプロセッサバス
キャッシュ命令が実行されるとそれは無視され*CERRが
それに応答してアサートされる。ステータスレジスタは
適切な命令のためのステータス情報によって更新され
る。例外の場合には、例外情報によって例外アドレスレ
ジスタおよびステータスレジスタが更新される。
通信にはいくつかのオプションがある。プロトコルはモ
ッドbレジスタの命令転送プロトコル制御(ITPC)およ
びレジスタ読出制御(RRC)ビットと、キャッシュ命令
のタイプおよびスコープによって規定される。レジスタ
読出を除くすべての命令は、書込動作を用いて転送され
る。レジスタ読出命令はモッドbレジスタのレジスタ読
出制御によって定義される読出または書込動作を用いる
ことによって転送される。これらオプションについての
説明は以下に述べるレジスタ読出命令の説明の中に存在
する。
要求の検出である。プロセッサバスキャッシュ命令要求
は読出または書込プロセッサバスアクセスであり得る。
それはICUによって2つの場合に検出される。(1)*C
SELがアサートされ可能化されているか、または(2)
アドレス入力およびCREQT0がチップ選択マッピングレジ
スタ内のキャッシュ命令アドレスおよびキャッシュ命令
アドレス空間フィールドと一致しているからである。
転送は1サイクルで完了する。この場合キャッシュバス
上の値は関係なく命令実行は直ちに開始される。
トされている2つのオプションの転送プロトコルが存在
する。プロトコルはモッドbレジスタの命令転送プロト
コル制御ビットに従って選択される。
のために使用される。プロセッサは通常の書込動作を使
用し、プロセッサアドレスおよびデータバスがともに用
いられる。ICUはキャッシュバスからオペランドの値を
ラッチする。命令キャッシュとして使用されているICU
については、ICUデータバスからキャッシュバスにデー
タを転送するために外部のトランシーバが必要となる。
このオプションはデータキャッシュとして使用されるIC
Uの場合には自然な選択である。命令キャッシュとして
使用されているICUの場合にも、外部のトランシーバを
使用すればより効率的なプロトコルを達成することがで
きる。
オペランドはプロセッサアドレスバス上を転送される。
特別の2サイクルプロトコルが命令およびオペランド転
送に必要となる。有効な命令がラッチされた後、ICUは
プロセッサバス上での特別なデータトランザクションを
待つ。CREQT入力がメモリデータトランザクションを特
定し、オプション入力はキャッシュオペランド転送を特
定し、アドレスバスがオペランドを含む。この特別な書
込トランザクションはICUにより検知され、アドレスバ
ス上のオペランドがラッチされる。なお上述したトラン
ザクションはプロセッサバスに接続された他のすべての
構成要素によっては無視されるべきである。このオプシ
ョンは前述した他のオプションに比べて効率的ではない
が命令キャッシュとして使用されているICUについてト
ランシーバを必要としない。
れているICUについて上述したオプションは独立に選択
できる。しかし、システムプログラミングという観点か
らすると、いずれのキャッシュにも同じ方法でアクセス
できることが望ましい。この場合にはいずれのキャッシ
ュも同じプロトコルに対し応答するようにプログラム可
能である。
行が開始する前に、それをカウントレジスタに書込むた
めにレジスタ書込命令を実行すべきである。この命令は
命令と必要なすべてのオペランドとが有効なときにはい
つでもICUによって実行される。
が生じ得る。ICUの好ましい実施例はそのような場合か
らの回復をするための論理を含んでいる。命令レジス
タ、オペランドレジスタおよびカウントレジスタはレジ
スタ書込命令を用いることによって、それらに影響を与
えることなくその内容を読出しセーブすることができ
る。命令有効、オペランド有効、およびカウント有効ビ
ットが対応するレジスタの有効性を示す。セーブおよび
リストア動作によって、命令転送プロトコルを割込時点
から継続することができる。
プロセッサバスキャッシュ命令のセットを、ニモニック
と対応の記述およびその目的の説明の形でテーブル形式
ですぐ後に示す。ニモニック 記述 NOP 動作なし INVW(s) ワードを無効化 INVB(s) ブロックを無効化 INVM(s) 複数無効化 INVA(s) すべてを無効化 SWM(s) モディファイドならワードを転送 SBM(s) モディファイドならブロックを転送 UPMI(s) メモリ更新および無効化 UPIM(s) メモリ更新および複数無効化 LCK(s) ロックブロック ULCK(s) アンロックブロック RBST(s) ブロックステータス読出 WBST(s) ブロックステータス書込 SWH ヒットの場合はワードを転送 RTAG タグ読出 WTAG タグ書込 PRLD キャッシュをプリロード RST リセット RDR(i) レジスタ読出 WRR(i) レジスタ書込 なお、命令ニモニック内の(s)のシンボルはここで
以前に定義した命令スコープを示し、RDRおよびWRR命令
内の(i)のシンボルはオペコードの下位3ビットによ
って特定されるレジスタ番号を示す。
が)が、命令の要求に従って特定される。もし1以上の
オペランドが特定される場合には、特定された第2のオ
ペランドをロードするためにWRR命令が必要となる。
作を生じる。
何の命令も実行されない。
ープが異なる)−アドレスオペランドにより特定された
ワードが無効化される(対応する有効ビットがリセット
される)。
ドレスオペランドによって特定される4ワードブロック
が無効化される(対応の有効ビットがすべてリセットさ
れる)。
−ICUにより複数の連続する4ワードブロックが無効化
される。1つずつの命令はいずれもINVB命令と同様であ
る。この命令は複数サイクル(初期化のための2サイク
ル+1ワードブロックにつき1サイクル)で実行され
る。この命令に対してはカウントレジスタは有効なカウ
ントを含んでいなければならない。カウントレジスタは
レジスタ書込命令を用いてロードされる。カウント有効
ビットは命令実行の後でもセットされたままである。正
確な実行を保証するために、カウントレジスタはINVM命
令が要求される前にロードされるか、以前の演算からの
正確な値を含んでいるべきである。この命令はページフ
レームを無効化するために用いることができる。カウン
トレジスタはページ内の4ワードブロックの数(ページ
サイズをバイトで表わし16で割ったもの)を含んでいな
ければならない。
命令はキャッシュ内のすべての命令を無効化する。すべ
ての有効ビットがリセットされる。
SWMA)−アドレスオペランドによって特定されたワード
がキャッシュ内に存在し、そのブロックのモディファイ
ドビットがセットされていれば、それはメモリ内の対応
するアドレスに書込まれる。
D、SBMA)−アドレスオペランドによって特定される4
ワードブロックが変更されていれば、すべての有効ワー
ドがメモリ内の対応するアドレスに書込まれる。
IA)−アドレスオペランドにより特定される4ワードブ
ロックが変更されていれば、すべての有効ワードはメモ
リ内の対応アドレスに書込まれる。その後すべての有効
ビットがリセットされる。メモリバスがICUにクラント
された後、バーストモードまたは単一のメモリバス書込
アクセス(有効ワードの数による)を用い書込動作が行
なわれる。
D、UPIMA)−ICUにより、複数のメモリ更新および無効
化動作が順に実行される。1つ1つの動作はいずれもメ
モリ更新および無効化命令と同様である。この命令は複
数サイクルで行なわれる(初期化に2サイクル+1サイ
クルおよび4ワードブロックごとにオプションのメモリ
バス4ワード書込アクセス)。この命令に対しては、カ
ウントレジスタは有効なカウント値を含んでいなければ
ならない。カウントレジスタがWRR命令を用いることに
より応答される。カウント有効ビットは命令実行の後に
もセットされたままである。正確な実行を保証するため
に、カウントレジスタがUPIM命令が要求される前にロー
ドされるか、以前の命令からの正確な値を含んでいなけ
ればならない。この命令はメモリを更新しページフレー
ムを無効化するために用いることができる。カウントレ
ジスタはページ内のブロック数(ページサイズをバイト
で表わしたものを16で除したもの)を含んでいなければ
ならない。
ドレスオペランドによって特定される4ワードブロック
(またはその一部)がキャッシュ内に存在している場合
には、対応するブロックステータスのロックトビットが
セットされる。
−もしアドレスオペランドによって特定される4ワード
ブロック(またはその一部)がキャッシュ内に存在して
いれば、対応するブロックステータスのロックトビット
がリセットされる。
TA)−特定されたワードアドレスがキャッシュ内にある
かどうかチェックされ、それに従ってステータスレジス
タが更新される。
TA)−特定されたワードアドレスを含むブロックがキャ
ッシュ内に存在するかどうかチェックされる。もしその
ブロックがキャッシュ内に存在すればそのブロックのス
テータスビットがステータスレジスタ内のそのビットの
値に基づいて更新される。
ンドによって特定されたワードがキャッシュに存在して
いればそのワードはメモリ内の対応するアドレスに書込
まれる。
タグを読出すのに使用される。
タグを書くために用いられる。
または命令を、それらが必要となる前にキャッシュにロ
ードするために行なわれる特別な動作である。この動作
はソフトウェア制御によって行なわれる。要求される変
数または命令のアドレスはユーザによって供給される。
なおプリロード動作は単純なプリフェッチ動作とは異な
る。プリフェッチは通常はハードウェア制御のもとで行
なわれプリフェッチされるアドレスは元となるメモリ要
求のアドレスの近傍付近にある。
が、最も有用な命令またはデータ変数を予測するために
使用される。適切なアドレスが、そのプログラムの実行
が開始される前に命令およびデータキャッシュにロード
される。この動作はプロセッサの介入なしにキャッシュ
制御のもとで行なわれ得る。これによってキャッシュを
より効率的に使用でき全体的性能を高めることができ
る。
IPアーキテクチャに関連して説明する。他のキャッシュ
システムでも同様に用いることができる。
シュユニットに転送することにより、プロセッサによっ
て開始される。2つのオペランドが必要である。メモリ
バス読出バーストトランザクションを用い、ICU制御の
もとで複数の一連のワードがキャッシュにロードされ
る。アドレスオペランドは開始ワードアドレスを特定す
る。カウントレジスタは4ワードブロックの数を特定す
る。可能な最も高いアドレスに達したらラップアラウン
ドが行なわれる。
イクル+ワードあたり1メモリバスバースト読出アクセ
ス)。この命令に対しては、カウントレジスタは有効な
カウントを含んでいなければならない。プリロード命令
は種々の方法で用いることができる。基本的な2つのオ
プションは以下のようなものである。
ュ構成を必要とせず、どのようなキャッシュシステムで
も用いることができる。この方法ではプリロード命令は
プログラム実行の前にソフトウェア制御のもとで発行さ
れる。この命令はコンテキストスイッチ手続の一部とし
て発行することもできる。キャッシュはプリロードされ
ているのでコールドスタートの影響は最小限にできる。
この方法の主な欠点は、プリロード動作がプロセッサの
必要としている他の動作と干渉するということである。
服することができる。この構成(切換可能キャッシュと
呼ぶ)は、各プロセッサにつき1を超えるキャッシュ
と、キャッシュを切換える方法を必要とする。切換可能
キャッシュ構成によって、同一のアドレス空間上で複数
のキャッシュ動作を行なうことができる。2以上のキャ
ッシュを並列に置くことができるが、プロセッサメモリ
アクセスの応答のためにはただ一つのキャッシュのみが
可能化される。他のキャッシュは、次のプログラム(ま
たは手続)のために必要とされる変数または命令をプリ
ロードするようにプログラムできる。次のプログラム開
始の実行の前に、適切なキャッシュ(プリロードデータ
を含むもの)が可能化され、他のキャッシュは不能化さ
れる。
れている。必要なサポートのすべてが単一のチップ上に
実装されている。個々のICUはモードレジスタをプログ
ラムすることにより不能化または可能化できる。この方
式をサポートするためにプリロード命令が実装されてい
る。特にICUは、通常のキャッシュ動作について不能化
されているときであっても、プリロード命令は実行する
ことができる。2以上のICUを並列に置くことができ、
通常のキャッシュ動作では1つのみが可能化され、他の
キャッシュはプリロード動作を行なう(グルー論理は必
要とされない)。
できる。なぜならばプリロード動作は現在のプログラム
実行に対して最小限の影響しか与えず実行可能だからで
ある。
ートするのと同じ機能を実行する。ICUがイニシャライ
ズされる。RST命令は受付けられるとすぐに実行され
る。複数命令(INVM、UPIM、PRLD)の実行は終了され
る。
レジスタの読出をするのに用いられる。特殊レジスタ番
号はオペコードにより特定される。ICUはこの命令に対
し、モッドbレジスタ内のレジスタ読出制御(RRC)ビ
ットの状態によりさまざまな仕方で応答する。RRCが1
のときには、アドレスバス上の命令によって読出トラン
ザクションが命令を開始させる。RRCが0のときには、
レジスタから読出すのにメインメモリが使用される。
レジスタに書くために用いられる。特殊レジスタ番号は
オペコードにより特定される。データは命令オペランド
として特定される。WRR命令は受付けられるとすぐに実
行される。命令およびオペランドレジスタに有効な命令
およびオペランドが存在している場合にはこの命令はそ
れらの内容に影響を与えることなく実行される。この特
徴を、ICUレジスタをリストアするのに使用することが
できる。
り、メモリバスキャッシュ命令が発行される。この論理
は命令を適切なICUに向けることができる。システム内
のすべてのICUであって、それらの入力に有効な命令を
認識できるものはそれを実行する。メモリバス上では、
プロセッサバス命令スコープおよび特権命令と等価な概
念は存在しない。
ーブである場合には、1つのキャッシュ命令転送メモリ
バストランザクションを用いることによりICUに転送で
きる。書込ブロックステータス命令はICUがバスマスタ
であるときに、*VSI入力をアサートすることにより転
送可能である。この命令は命令およびオペランドが受付
けられた後、必要とされるキャッシュリソースが利用可
能なときにはいつでも実行される。すべての命令は内部
で2サイクルで実行される。命令実行に対してメモリバ
ス動作が必要な場合には、バス動作のためのサイクル数
を加算しなければならない。
ICU動作とは独立して実行される(プロセッサバスキャ
ッシュ命令を含む)。メモリバス命令およびプロセッサ
バス動作はそれらが受信された順序に従って実行され
る。メモリバス命令の結果はキャッシュの現在の状態を
反映する。プロセッサバスキャッシュ命令が複数プロセ
ッサバスキャッシュ命令の実行の間に受付けられると、
それは複数命令の実行に影響を与えることなく実行され
る。
キャッシュ命令は類似した名前の、等価なプロセッサバ
スキャッシュ命令を持っている。これらの命令は内部キ
ャッシュに対して同様の効果を持っているが、プロセッ
サバスとメモリバスとは異なっている。
ュ命令転送メモリバストランザクションを用いて転送さ
れる。ICUがバスマスタでないときには、*VSIをアサー
トすることによってメモリバス上でのキャッシュ命令ト
ランザクションが生じる。トランザクションの1番目の
サイクルでは、MRW、MREQT、BSTC信号およびアドレスが
ラッチされる。MRWおよびMREQT信号は命令を特定する。
BSTC信号は関連する命令のブロック数状態を特定する。
アドレスは関連の命令のためのアドレスオペランドとし
て用いられる。命令がデータオペランドを必要とする場
合には、そのデータは第2のサイクルの間にラッチされ
る。
要求を発行したときには、*VSI入力は特別な機能を持
つ。もしそれが、トランザクションが完了する前にアサ
ートされると(最後の*MRDYが受付けられていない)、
BSTC信号はラッチされ、ブロックステータス書込命令が
実行される。アドレスオペランドは再ロードオペレーシ
ョンのために、ICUによって転送されたアドレスに対応
するブロックアドレスである。
ャッシュ命令のセットを、ニモニックと、関連の記述
と、目的の簡単な説明の形でこのすぐ後にテーブル形式
で示す。
に命令コードが配置されていることに注意されたい。MR
WOがローの場合、方向はICUからメモリバスであり、MRW
Oがハイの場合には、方向はメモリバスからICUへであ
る。
活動が生ずる。
えない。メモリバスキャッシュ命令トランザクションプ
ロトコルは任意の命令と同様実行される。
によって特定されるワードがキャッシュ内に存在すれ
ば、*HIT信号がアサートされる。そのワードはメモリ
アドレスバス上に出力され、ブロックステータスのシェ
アードおよびモディファイドビットがBSTC信号に出力さ
れ、*MRDYがアサートされる。
ペランドによって特定されたワードがキャッシュ内に存
在し、そのブロックのモディファイドビットがセットさ
れていれば、*HITおよび*MRDY信号がアサートされ、
ブロックステータスのシェアードおよびモディファイド
ビットがBSTC信号に出力される。その後、そのワードは
メモリ内の対応するアドレスに書込まれる。
オペランドによって特定される4ワードブロックが変更
されていれば、*HITおよび*MRDY信号がアサートさ
れ、ブロックステータスのシェアードおよびモディファ
イドビットがBSTC信号に出力される。その後、すべての
有効ワードはメモリ内の対応するアドレスに書込まれ
る。
定されるワードが無効化される(対応する有効ビットが
リセットされる)。*HIT信号がヒットまたはミス条件
に従って駆動され、命令実行が完了した後*MRDYがアサ
ートされる。
特定される4ワードブロックが無効化される(対応する
すべての有効ビットがリセットされる)。+HIT信号は
ヒットまたはミス条件に従って駆動され、*MRDYがイン
ストラクション実行の完了後にアサートされる。
バススレーブである場合にもバスマスタである場合にも
実行可能である。ICUがスレーブのときにはアドレスオ
ペランドはメモリバストランザクションにより特定され
る。この場合、特定されたワードアドレスを含むブロッ
クがキャッシュ内に存在するかどうかチェックされる。
そのブロックが存在する場合には*HITおよび*MRDY信
号がアサートされ、ブロックステータスビットがBSTC信
号からコピーされる。当該ブロックがキャッシュ内に存
在していなければ*HIT信号がデアサートされ、*MRDY
信号はアサートされる。ステータスレジスタのヒットお
よび有効ビットはリセットされる。
読出要求を発行した場合には、*VSI入力は特別な機能
を有する。もしトランザクションの完了前にそれがアサ
ートされると(最後の*MRDYが受付けられていない)、
BSTC信号がラッチされ、ブロックステータス書込命令が
実行される。アドレスオペランドは再ロード動作のため
にICUにより転送されたアドレスである。この場合特定
されたワードアドレスを含むブロックは常にキャッシュ
内に存在する(なぜなら再ロードされたからである)。
このブロックのブロックステータスビットはBSTC信号か
らコピーされる。ステータスレジスタは影響を受けな
い。
レジスタに書くために用いられる。
ドにより特定され得る4ワードブロックが変更されてい
れば、*HITおよび*MRDY信号はアサートされ、ブロッ
クステータスのシェアードおよびモディファイドビット
がBSTC信号に出力される。その後、すべての有効なワー
ドがメモリ内の対応するアドレスに書込まれ、有効ビッ
トがリセットされる。
アドレスがキャッシュ内に存在するかどうかチェックさ
れる。ブロックステータスビットはBSTC信号に出力され
る。*HITおよび*MRDYもまた同様に出力される。
レジスタから読出すために用いられる。
ンドによって特定されたワードがキャッシュ内に存在し
ている場合、*HIT信号はアサートされ、供給されたデ
ータがキャッシュ内に書込まれる。アドレスの下位2ビ
ットは無視される。なお、アドレスサイクルは*VIS入
力によって特定され、*MASTB信号によって特定される
のではない。データはアドレスサイクルに続くサイクル
内でのメモリバス上の値によって特定される。もしこの
ワードがキャッシュ内に存在していなければ、*HIT信
号がデアサートされ、ステータスレジスタのヒットおよ
び有効ビットがリセットされる。*MRDY信号はICUがメ
モリバスからデータをラッチするときにアサートされ
る。
つ有用な命令セットを完全に説明してきたので、新規な
ICUによってサポートされているデータフォーマットお
よびデータ操作機構についての簡単な説明を行なう。
定義される。1ハーフワードは16ビットを含む。1バイ
トは8ビットからなる。ICUはワード、ハーフワードお
よびバイトアクセスを直接にサポートする。プロセッサ
バス上では、アクセス長はOPT入力に従って判定され
る。アクセス長は単一のデータメモリアクセスに対して
のみ効果を持つ。他のすべてのプロセッサバスアクセス
(バーストモードメモリアクセスを含む)において、そ
れは無視されワード長が仮定される。メモリバス上では
アクセス長はMDLN信号により判定される。
ータ単位の番号づけの取決めは、以下のとおりである。
各ビットは右から左への昇順で番号づけされる。バイト
およびハーフワードは右から左または左から右のいずれ
の順序にも、モッドbレジスタのバイト順序ビットによ
って制御される。ICUの好ましい実施例はバイト、ハー
フワードおよびワードアクセスを完全にサポートするた
めに必要なハードウェアを含んでいる。さまざまなデー
タ型は、それらの自然なアドレス境界上で整列されなけ
ればならない。自然な境界上でないアクセスはエラーお
よびステータスレジスタによって報告されるが、そのア
クセスはあたかも正しく整列されているかのようにサー
ビスを受ける(すなわち、適切なアドレスビットが無視
される)。
は、整列ハードウェアが各バイトをワード内の低位(右
側の)ロケーションにシフトする。
対しては、整列ハードウェアはハーフワードをワードの
低位(最も右側の)ロケーションにシフトする。
ドオペレーションのためにメモリバス上でのワードアク
セスを用いる。キャッシュ不能読出アクセスについて
は、バイトおよびハーフワードアクセスが用いられる。
バイトまたはハーフワードはプロセッサに送られる前に
整列される。アクセス長はプロセッサバス(OPT入力)
からメモリバス(MDLN信号)に転送される。
フワードを適切なキャッシュロケーションに書込む。バ
イト書込については、そのバイトはワード内の低位のバ
イトロケーションから他のすべてのバイトロケーション
に複製される。正しいバイトをキャッシュに書込むため
に、適切なバイト書込可能が活性化される。ハーフワー
ド書込については、そのハーフワードはワード内の低位
から高位に向けて複製される。その後、それは適切なバ
イト可能化を活性化することによりキャッシュに書込ま
れる。
いては、アクセス長はプロセッサバス(OPT入力)から
メモリバス(MDLN信号)に転送される。複製されたバイ
トまたはハーフワードはメモリバス上に出力される。メ
モリコントローラはアドレスおよび長さをデコードし、
正確な書込可能化信号を活性化する。
してはいるけれども、システムがそれらをサポートする
かどうかをユーザが決定できることに注意されたい。も
しワードアクセスのみをサポートするように決定した場
合には、OPTおよびMDLN入力は常にワードアクセスを特
定すべきである。
のキャッシュアクセスのさまざまな場合についてのICU
の動作を説明するものである。
ーストモードアクセスのいずれでもいい。
より開始される。ICUは3つのアクセスプロトコルをサ
ポートしている。
と特別な命令アクセスとのために用いられる。
ている。ICUはアドレスをラッチする(*PENが外部論理
によって駆動されなければならない)。プロセッサはア
ドレスバスを他のICUアクセスを開始するために使用す
ることができる。パイプライン化アクセスのアドレス
は、ICUによって、前のアクセスとパイプライン化され
てタグ比較機能のために使用することができる。キャッ
シュヒットの場合、最初のアクセスが完了した後は、パ
イプライン化アクセスが完了するには1サイクルのみが
必要である。キャッシュミスの場合には、メモリバスア
クセスは1サイクル早く開始する。バーストモードアク
セスは命令アクセスおよび複数データアクセスに用いら
れる。これらアクセスでは、第1のワードのアドレスが
転送された後、後続のワードについてはシーケンシャル
アドレスが仮定される。バーストモード読出および書込
アクセスはこのICUによって完全にサポートされてい
る。キャッシュヒットについては、1サイクルあたり1
ワードという最大の速度が達成されている。
タ変数を読出すために用いられる。(組込まれたRISCプ
ロセッサはバーストモードプロトコルを用いてすべての
命令読出を実行する。)このアドレスは、要求されたワ
ードを求めてキャッシュをサーチするために用いられ
る。もしそのワードが見つかれば(ヒット)、そのデー
タはプロセッサに転送され*CRDY出力がアサートされ
る。バイトおよびハーフワードアクセスについては整列
が実行される。単一メモリ読出アクセスに対しては、IC
Uは2サイクルで応答する。
ば(ミス)、ICUは予め定められたミス処理手続を開始
する。ブロックステータスのシェアードビットはミスご
とに更新される。また、そのセットと関連づけされたLR
Uビットは各アクセスごとに更新されて最も新しく使用
されたブロックを反映するようにする。
一連の順次のメモリ読出アクセスとして取扱われる。バ
ーストモード読出アクセスの最初のサイクルでは、最初
のワードのアドレスがプロセッサにより転送される。ハ
ーストモード読出アクセスがICUによって検出される
と、ICUはこのアドレスをラッチし、*CBACK信号をアサ
ートする。このアドレスはバースト内の各ワードごとに
比較され自動的にインクリメントされる。キャッシュヒ
ットの場合にはICUは2サイクルのうちに最初のワード
によって応答する。アドレスは1サイクルあたり1回と
いう最高速度でインクリメントされ、比較することがで
きる。これによってキャッシュヒットの場合には1ワー
ドあたり1サイクルという速度を達成できる。なお、1
サイクルアクセスはブロック境界をまたぐ場合にも維持
される。
ると、予め定められたバーストミス処理手続が開始され
る。
ードアドレス(現在のワードアドレス+1)がキャッシ
ュ内でチェックされる。メモリバスバーストモード動作
の間にヒットが見出されれば、メモリバスアクセスは終
了されキャッシュからのデータ転送が継続される。ミス
およびヒットならびに一方から他方への転送はプロセッ
サにとっては等価的である(アクセスタイムのみが影響
を受ける)。
をデアサートすることによりプロセッサが終わらせるこ
とができる。組込まれたRISCプロセッサのバーストモー
ドプロトコルでは、さらにもう1ワードがサービスされ
るように規定されている。
に書込むために使用される。アドレスとデータとはアク
セスの最初のサイクルでICUによってラッチされ、*CRD
Y信号がこのサイクル内でアサートされる(単一サイク
ル書込)。なお*CRDY信号はヒットまたはミス条件とは
独立にアサートされる。
ルでキャッシュに書込まれる。書込ポリシーはASTC入
力、モッドaレジスタの書込ポリシーフィールド、モッ
ドbレジスタの書込シェアードヒット制御およびプロセ
ッサシェアードビット制御フィールド、ならびにブロッ
クステータスのシェアードビットにより決定される。可
能なポリシーとして3つの書込ポリシーがある。すなわ
ち排他的ライトスルー、排他的コピーバックおよびシェ
アードである。
モリにも書込まれる。書込バッファが可能化されている
と、データは書込バッファに書込まれる。書込バッファ
が不能化されていると、書込動作は書込バッファの説明
として以下に述べるようにバッファされない。いずれの
場合にも、メモリバスアクセスはそれ以前に実行される
べき他のメモリバス動作が存在しておらず、かつメモリ
バスが利用可能なときに開始される。
はキャッシュのみに書込まれ、モディファイドビットが
セットされる。データはブロックが置換されるときにメ
モリに書込まれる。
常にライトスルーまたは書込ブロードキャストアクセス
が行なわれる。この場合にはモッドaレジスタの書込ポ
リシーフィールドではなく、モッドbレジスタの書込シ
ェアードヒット制御フィールドがICUの動作を制御す
る。
スタの書込割当ビットに従って決定される。書込割当が
可能化されていると、ミスが発生したブロックに対して
キャッシュブロックが割当てられ、ミス手続が開始され
る。ミス手続はメモリ読出ミス手続と同様である。ミス
手続が完了した後、書込ヒットの場合について前に説明
したのと同様、キャッシュ動作が継続する。
ブロックは割当てられない。データはライトスルー動作
について説明したとおりメモリのみに書込まれる。なお
この場合、コピーバック書込はライトスルーアクセスの
ように取扱われる。
に更新される。シェアードビットは、モッドbレジスタ
の適切なビットがセットされていると、キャッシュビッ
トの場合にも更新される。
に更新され、最も新しく使用されたブロックを反映する
ようにしている。
て、一連の順次のメモリ書込アクセスとして取扱われ
る。バーストモード書込アクセスの最初のサイクルにお
いて、1番目のワードのアドレスおよびデータがプロセ
ッサにより転送される。バーストモード書込アクセスが
ICUによって検知されると、ICUはアドレスおよびデータ
をラッチし、*CRDYおよび*CBACK信号をアサートす
る。このアドレスはバースト内の各ワードについて比較
され自動的にインクリメントされる。
のサイクル内でキャッシュに書込む。アドレスは1サイ
クルあたり1回という最大速度でインクリメントされ比
較される。これによって1ワードあたり1サイクルとい
う速度がキャッシュヒットの場合には達成できる。な
お、ブロック境界をまたぐ場合にも1サイクルアクセス
は維持される。メモリバス書込動作も、単一メモリ書込
と同様の条件で開始可能である。書込バッファが可能化
されていると4回の書込までバッファするよう書込バッ
ファは使用される。メモリバスアクセスはバーストモー
ド書込である。メモリバス動作についての条件がバース
ト内の各ワードごとにチェックされ、それに従ってメモ
リバス動作が行なわれる。
生すると、ICU動作はモッドaレジスタの書込割当ビッ
トに従って決定される。書込割当が可能化されている
と、ミスが発生したブロックに対してキャッシュブロッ
クが割当てられ、ミス処理手続が開始される。メモリバ
スアクセスは、モッドbレジスタ内の書込ミスメモリア
クセス制御ビットがハイであるかローであるかによって
それぞれ読出または変更のための読出のどちらともなり
得る。ミス手続が完了した後、キャッシュ動作はヒット
の場合に記載したのと同様に継続される。なおこの場
合、ミスが発生したサブブロックは各々、最初にキャッ
シュに読出され書込まれる。メモリバス動作は連続した
バーストではない。
ックは割当てられない。データはバーストモード書込動
作を用いてメモリのみに書込まれる。バースト内の各ワ
ードについて、メモリバス動作のための条件がチェック
され、メモリバス動作がそれに従って実行される。
ワードアドレス+1)がキャッシュ内にあるかどうかチ
ェックされる。1以上のミスの後にヒットが発生した
ら、ICUはヒットの場合に記載したのと同様に動作を続
ける。ミスおよびヒットと、一方から他方への転送はプ
ロセッサには透過的である(アクセスタイムのみが影響
を受ける)。
ることにより、どの時点でもプロセッサによって終了す
ることができる。ICUは、必要であれば最後のワード書
込を行なった後、メモリバスバーストモードアクセスを
終了する。
る種々の他のアクセス手続について説明する。
る。これは特殊な変数へのアクセスのためにキャッシュ
をバイパスするために用いられる。このアクセスについ
ては、必要とされるデータについてキャッシュはサーチ
されない。メモリアクセスはメモリ内のデータの読出ま
たは書込のために開始される。このデータについてはキ
ャッシュ内のどのブロックも割当てられない。
る。これらアクセスは通常のメモリ読出アクセスとして
命令キャッシュによりサービス提供される。ミスの場合
にはメモリバスアクセスはROMアクセスとして指定され
る。ICUはROMアクセスを無視するようにプログラム可能
である。
れ、データキャッシュによってキャッシュ不能アクセス
として取扱われる。ICUはこのアクセスをI/O表示ととも
にメモリバスに転送する。ICUは入力/出力アクセスを
無視するようにプログラム可能である。
る。
セスもまたサポートされている。これは*LOCK入力をセ
ットすることにより行なわれる。インターロックアクセ
スは、セマフォーおよび他の同期化された共有変数をア
クセスするために用いられる。インターロックアクセス
はモッドbレジスタにより制御される。
いる。これは命令メモリの内容を読出しまたは書込みす
るために用いられる特別なデータアクセスである。それ
はOPT入力への特別なコードによって表示される。
る。これはRISC/SIPデバッグモジュールにアクセスする
ために用いられる特別なデータアクセスである。それは
OPTインプット上の特別なコードで表示される。ICUはこ
のアクセスのために*CRDY信号を駆動する。*CRDYは4
サイクルの間ハイに駆動され、その後1サイクルの間ア
サートされる。これはプロセッサの*RDYロジックに影
響を与えることなくキャッシュシステム内にデバッグモ
ジュールを挿入できるようにするために行なわれる。
サポートされている。このアクセスはプロセッサバスキ
ャッシュ命令をICUに転送するために用いられる。
リバスはICUマスタキャッシュおよびスレーブキャッシ
ュのいずれによっても使用されるということが理解され
るべきである。メモリはメモリバスアクセスを発行する
ことによりICUバスマスタによりアクセスされる。ICUは
*BUSR(バス要求)出力をアサートし*MBGRT(バスグ
ランド)を待つことによりバスの所有権を獲得する。IC
Uバススレーブはキャッシュの整合性を取る目的でメモ
リバスアクセスを監視することができる。キャッシュ命
令はメモリバス上の特別なアクセスで活性化できる。
アクセスもICUによりサポートされており、それを以下
に説明する。
ッシュ不能アクセスに対してキャッシュマスタにより開
始される。すべての再ロード動作はアクセス長としてワ
ードを用いる。キャッシュ不能アクセスの場合、アクセ
スタイプと適切なアクセス長とがプロセッサバスからMD
LN、MREQTおよび*MROCKメモリバス信号に転送される。
1を超えるワードが必要な場合には再ロードの動作のた
めにバーストモードアクセスが用いられる。他のすべて
の場合には単一アクセスが使用される。再ロード動作は
元のプロセッサバス動作による。それは単一アクセスと
バーストモードアクセスとの場合で異なる。プロセッサ
バス単一メモリ読出動作におけるキャッシュミスの場
合、開始および終了アドレス、ならびにアドレスラップ
アラウンドまたはラップアラウンドなしはモッドaレジ
スタの単一ミス制御(SMC)およびサブブロックサイズ
(SBS)フィールドにより制御される。
キャッシュミスの場合には、再ロードオペレーションの
ためにバーストモードアクセスがメモリバス上で開始さ
れる。再ロード開始アドレスは常にミスされたワードの
アドレスである。バースト終了アドレスはモッドaレジ
スタにより制御される。
ために読出要求を発行した場合には、*VSI入力は特別
な機能を有する。もしもトランザクションが完了する前
に(最後の*MRDYが受取られていない)それがアサート
されると、BSTC信号はラッチされ、特別なブロックステ
ータス書込命令が実行される。
の動作について、ICUマルチプロセッササポートの関連
で以下に説明する。
ュマスタにより、ライトスルーおよびキャッシュ不能書
込アクセス、変更されたブロックのメモリへのコピーバ
ック、および共有されたブロックの書込ヒット動作の際
に開始される。バーストモードアクセスは変更されたブ
ロックのコピーバック動作およびプロセッサバス上のバ
ーストモード書込アクセスにおいて開始される。他のす
べての場合には単一アクセスが開始される。単一アクセ
スについては、アクセスタイプおよびアクセス長がプロ
セッサバスからMDLN、MREQTおよび*MLOCKメモリバス信
号に転送される。
シュ不能アクセスに対してキャッシュマスタによって開
始される。再ロード動作はアクセス長としてワードを用
いる。キャッシュ不能アクセスに対しては、キャッシュ
タイプおよび適切なアクセス長がプロセッサバスからMD
LN、MREQTおよび*MLOCKメモリバス信号に転送される。
1ワードを超えるワードが必要な場合には再ロード動作
に対してはバーストモードアクセスが用いられる。他の
すべての場合については単位アクセスが用いられる。
なる。単一アクセスおよびバーストモードアクセスの場
合で異なっている。プロセッサバス単一メモリ読出動作
でのキャッシュミスの場合には、開始および終了アドレ
スと、アドレスラップアラウンドまたはラップアラウン
ドなしとは、モッドaレジスタの単一ミス制御(SMC)
およびサブブロックサイズ(SBS)フィールドによって
制御される。
ッシュミスの場合には、再ロードオペレーションに対し
てはバーストモードアクセスがメモリバス上で開始され
る。再ロード開始アドレスは常にミスが生じたワードの
うちの1つである。バースト終了アドレスはモッドaレ
ジスタによって制御される。
求を発行した場合には、*VSI入力は特別な機能を有す
る。もし*VSIがトランザクションの完了前(最後の*M
RDYが受付けられていない)にアサートされた場合、BST
C信号がラッチされ特別なブロックステータス書込命令
が実行される。
ュの動作を、ICUマルチプロセッサについてのサポート
との関連で以下に説明する。
スルーおよびキャッシュ不能書込アクセス、メモリへの
モディファイドブロックのコピーバック、および共有ブ
ロック書込ビット動作についてキャッシュマスタによっ
て開始される。モディファイドブロックのコピーバック
動作、およびプロセッサバス上でのバーストモード書込
アクセスについてはバーストモードアクセスが開始され
る。他のすべての場合には単一アクセスが開始される。
単一アクセスに対しては、アクセスタイプおよびアクセ
ス長はプロセッサバスからMDLN、MREQTおよび*MLOCKメ
モリバス信号に転送される。
れた開始位置ワードアドレスで開始しメモリに書込むこ
とが要求されている最後のワードで停止する。バースト
モード読出アクセスの場合のようにそれはモッドaオプ
ションによっては影響されない。
書込シェアードフィット制御フィールドの値によって、
モッドbレジスタの制御の下でライトスルー動作が開始
される。
の動作についてもICUマルチプロセッサのサポートに関
連して以下に説明する。
ピーバック書込動作でのミスの場合に、モッドbレジス
タの制御の下でICUによって用いられる。マスタキャッ
シュは、そのブロックが読出の完了後に変更される予定
であることを示す。他のすべての点ではマスタの動作は
読出アクセスの場合と同様である。
のために変更のための読出要求を発行した場合には、*
VSI入力は特別な機能を持つ。もしトランザクション完
了前(最後の*MRDYがまだ受付けられていない)ときに
アサートされた場合には、BSTC信号がラッチされ、特別
なブロックステータス書込命令が実行される。
シュの動作をICUマルチプロセッサに関するサポートと
の関連で以下に説明する。
ち、書込ブロードキャスト動作およびメモリバスキャッ
シュ命令アクセスの2つの動作がサポートされている。
ットの場合にのみ、モッドbレジスタの制御の下でICU
によって開始される。書込ブロードキャストと通常の書
込との間の相違は、書込ブロードキャストではメモリが
更新されないということである。他のすべての点でこの
動作は書込アクセスと同様である。
よってメモリバス上で開始されるであろう。ICUがバス
マスタでない場合には、*VSIをアサートすることによ
ってメモリバス上にキャッシュ命令トランザクションが
生じる。トランザクションの最初のサイクルの間に、MW
R、MREQT、BSTC信号およびアドレスがラッチされる。MW
RおよびMREQT信号は命令を特定する。BSTC信号は関連す
る命令に対するブロックの状態を特定する。アドレスは
関連の命令に対するアドレスオペランドとして使用され
る。命令がデータオペランドを必要とする場合には、そ
のデータは第2のサイクルの間にラッチされる。
に関し以下に述べるような優先順位規則に従う。
イン中で開始してもよい。タグおよびメモリ制御は各サ
イクルで異なるアクセスに対してサービスすることがで
きる。
ス上での1つのアクセスとが同時にタグアレイへのアク
セスを要求する場合には、プロセッサバスアクセスが優
先権を持つのは、それが一次(パイプライン化でもなく
バースト継続でもない)メモリアクセスの場合のみであ
る。他のすべての場合においてメモリバスアクセスが優
先権を持つ。
た順番で行なわれる。もしパイプライン化されたまたは
バースト継続アクセスがキャッシュ内でヒットした場
合、その応答は一次アクセスが完了するまで遅延され
る。なお、パイプライン化されたまたはバースト継続ア
クセスは一次アクセスの応答が送信された後、かつそれ
が完全に完了する前に完了することができる。これが生
ずるのは、再ロード動作に対して要求されたデータプロ
セッサに送信された後に、メモリバス上での書込が実行
される前の一次書込アクセスに対してと、いくつかの特
別な命令の実行のときである。
能なオプションの選択とステータスの報告とを行なうこ
とができることを理解できるであろう。プログラム可能
オプションを用いることによってキャッシュポリシーを
選択することができる。キャッシュ書込ポリシーは、ラ
イトスルー、コピーバックまたはアクセスごとのフレキ
シブル、としてプログラム可能である。書込割当または
非書込割当オプションを選択することができる。置換ア
ルゴリズムはLRU、ランダムまたは外部としてプログラ
ムすることができる。柔軟なプリフェッチポリシーを選
択することができる。リードスルーオプションを可能化
することができる。効率的なプリフェッチおよび読出動
作をサポートするために4ワード読出バッファが組込ま
れている。
として定義されておりモッドaレジスタにストアされて
いる。
て、プリフェッチ動作は、変数または命令をそれらが必
要とされる前にフェッチすることとして定義されてい
る。ICUはいくつかのプログラム可能プリフェッチのオ
プションをサポートするためのハードウェアを含んでい
る。ICUまたはプリフェッチバッファとして使用される
メモリ読出バッファも含んでいる。プリフェッチされた
ワードはキャッシュアレイを更新することができない場
合にはプリフェッチバッファ内にセーブすることができ
る。以下のプリフェッチオプションの各々は、独立に、
またはどのような組合せでも使用することができる。
なサブブロックサイズを用いることによって達成するこ
とができる。ミスの場合には、ICUはサブブロックを再
ロードする。要求されたワードと同じサブブロック内の
ワードはプリフェッチされることになる。
を制御する。
のミスについてのICUの動作を制御する。プロセッサに
よってバーストがサスペンドされた場合、キャッシュは
メモリバーストを停止する前にさらにワードをプリフェ
ッチすることができる。この場合にはプリフェッチは、
同じサブブロックまたは次のサブブロックの最後まで進
むことができる。
ットおよびバーストアクセスキャッシュヒットでのプリ
フェッチのオプションを可能化する。
プログラム可能モッドaレジスタの制御の下で行なわれ
る。
単一アクセスとバーストモードアクセスとで異なってい
る。
スの場合には、開始および終了アドレスと、アドレスラ
ップアラウンドまたはラップアラウンドなしはモッドa
レジスタによって制御される。
ッシュミスの場合には、再ロード動作に対してバースト
モードアクセスがメモリバス上で開始される。再ロード
開始アドレスは常にミスが生じたワードのうちの1つで
ある。バースト終了アドレスは常にモッドaレジスタに
よって制御される。
トしているかについての詳細な説明を行なう前に、ICU
書込バッファならびにICU初期化およびリセットの基準
について述べる。
この書込バッファは4つの書込アクセス(アドレス、制
御およびデータ)までをバッファすることができる。書
込バッファはモッドaレジスタ内のあるビットをセット
することにより不能化することができる。
ファリングするために書込バッファを使用することがで
きる。ライトスルーおよび書込ブロードキャストアクセ
スに対しては、4つの独立した書込アクセスをバッファ
することができる。書込は、バスが利用可能となるまで
書込バッファ内で待機する。これによってライトスルー
キャッシュに対して、または多数の書込ブロードキャス
ト動作が存在する場合について、性能をかなり改善する
ことができる。
れる前にそれをバッファリングすることにも用いられ
る。ミスの場合には、もし変更されたブロックが置換の
ために選択された場合には、そのブロックは書込バッフ
ァ上にストアされる。ミスが生じたサブブロックに対す
る読出の前に開始することができる。これによってICU
がプロセッサの要求に対してより速く応答することが可
能になる。
バスが必要とされる(読出ヒットまたはコピーバック書
込ヒット)のでない限りは、もう一つのキャッシュアク
セスに対してサービスすることができる。もう1つの書
込動作についてメモリバスが要求された場合には、キャ
ッシュは書込バッファ内に書込むためのスペースが1つ
利用可能となるまで停止する。すべての他の要求は、書
込バッファが空になった後に始めてサービスを受ける。
これが必要とされるのは、要求の順序が正しいことを保
証するためである。すなわち、メモリ読出におけるミス
は、更新されたメモリから読出を行なうためにはすべて
の書込が実行された後まで待たなければならないという
ことである。
バッファされない。バスが利用可能となればすぐにメモ
リバス上で書込動作が開始される。その場合にもICUは
メモリバスが必要とされる(読出ヒットまたはコピーバ
ック書込ヒット)のでない限りはもう1つのキャッシュ
アクセスに対してサービスすることができる。メモリバ
スが要求される場合、キャッシュはその前の動作が完了
するまで停止する。
きに初期化されなければならない。ICUはまた、必要な
場合にはその後の任意の時点で初期化される。
T入力をアサートすることであり、他の1つはリセット
命令を発行することである。2つの方法はICUに対して
正確に同じ影響を及ぼす。本願発明の好ましい実施例に
よれば、特別な初期化シーケンスが以下のように実行さ
れる。
ようなものであれサスペンドされる。
チップ選択不能化およびメモリアクセスに対するチップ
選択可能化ビットはリセットされる。
ンドの有効性を示すビットはリセットされる。
の有効性を示すビットはリセットされる。
ー、違法命令および保護違反ビットはリセットされる。
令またはデータキャッシュであることを示すビット(ID
ビット)を除くすべてのモッドaレジスタ内のビットは
リセットされる。
る。
なければならない。
Q入力はロウレベルに接続されなければならない。すべ
ての命令キャッシュの*IREQはプロセッサの*IREQ出力
に接続されなければならない。
ば、1つのみの命令キャッシュのDREQT1がハイレベルに
接続されなければならない。ROMリセットがプロセッサ
バス上に出力されている場合にはすべてのDREQT1はロウ
レベルに接続されなければならない。
リアクセスおよびキャッシュ命令アクセスについて異な
るアドレスに応答するようにプログラムされなければな
らない。これは*CSEL入力を用いることによって行なう
ことができる。外部のハードウェアを必要としない簡単
な構成も可能である。異なるキャッシュの*CSEL入力を
異なるアドレスビットに接続し、適切なアドレスを使用
することができる。初期レジスタプログラミングが完了
した後に、*CSEL入力を不能化することができる。
の動作シーケンスでなければならない。ICUが特定のシ
ステムに従って設定される前には、(命令ROMアクセス
を除き)いかなるメモリ、I/Oまたはコプロセッサアク
セスも実行されてはならない。
ている場合に、DTCアクセスが行なわれる前にモッドb
レジスタがプログラムされなければならない。DTCがプ
ロセッサバス上に存在している場合にはDTCはI/Oアドレ
スに対して応答するようプログラムされなければならな
い(ICUはI/Oアクセスを無視するようにプログラムされ
なければならない)。
ついて検討する。
サ構成での主要な問題は、データの整合性という問題で
ある。この問題は、同じメモリロケーションのコピーを
複数のキャッシュが持っており、そのうちの1つのキャ
ッシュに保持されているデータがプロセッサによって変
更された場合に生ずる。この場合他のキャッシュはその
データの、古くなった(更新されていない)コピーを含
んでいることになる。新たなICUアーキテクチャはこの
問題に対応する。当業者であれば、新規なICUに組込ま
れているマルチプロセッサに対するサポートのための構
成が、他のマルチプロセッサのキャッシュ環境について
も適用可能であることを理解することができるであろ
う。
基本的な考え方は、高性能かつ高効率のマルチプロセッ
サキャッシュシステムを可能とするために、多くの特徴
を含ませるという点である。そうした特徴は、マルチプ
ロセッサシステム構成に対してICUが課す制約を最小限
とするために、十分な柔軟性を含んでいる。このマルチ
プロセッサをサポートする特徴を使用するための適切な
方法は簡単に選択することができる。それは、オンチッ
プの特殊レジスタ内のオプションビットをプログラムす
ることによりソフトウェア制御によって行なうことがで
きる。
プロセッサシステムのブロック図が示されている。2以
上のプロセッサクラスタが同じメモリバスを共有するこ
とができる(図には2つが示されている)。各プロセッ
サクラスタは1つのプロセッサと2つのICUとからな
る。1つのICUが命令キャッシュのために用いられ、他
の1つはデータキャッシュのために用いられている。プ
ロセッサアドレスバス(A)が、2つのICUのアドレス
バッファ(A)に接続して示されている。プロセッサ命
令バス(I)が命令キャッシュのキャッシュバス(CB)
に接続されている。プロセッサデータバス(D)はデー
タキャッシュのキャッシュバス(CB)に接続されてい
る。ICUのメモルバス(MEMAD)はいずれも共有されたメ
モリバスに接続されている。この基本的なブロック図に
対して種々の変更を行ない、しかも本願発明の精神およ
び範囲を逸脱しないようにすることが可能である。
ッシュブロックに対して2つのブロックステータスビッ
トおよび4つの有効ビットが関連付けされていることを
想起されたい。有効ビットはブロック内のワードの有効
性を示す。各有効ビットは1ワードに対応する。もし1
つの有効ビットでもセットされていればそのブロックは
有効であり、そのブロックステータスビットは有効状態
を示す。もしすべての有効ビットがリセットされていれ
ば、そのブロックは無効状態にあり、ブロックステータ
スビットは不適切である。ブロックステータスビットは
シェアードおよびモディファイドビットと呼ばれる。シ
ェアードビットは、このブロックが2以上のプロセッサ
によって共有されているか、2以上のキャッシュ内に存
在しているかを示す。モディファイドビットは、このブ
ロックがメインメモリに対して変更されているかどうか
を示す。これら2つのビットは独立であり、有効ブロッ
クは以下のような状態が割当てられる。
データ変数であることを想起されたい。キャッシュ不能
プロセッサバスアクセスはICUのASTC入力に示される。
このアクセスに対しては、要求されたデータに対するキ
ャッシュサーチは行なわれない。このデータについての
メモリに対する読出または書込のためのメモリアクセス
が開始される。このデータに対してはキャッシュ内には
ブロックは割当てられない。キャッシュ不能データはア
クセスごとに割当てることができる。通常ASTC入力はプ
ロセッサのMMUプログラム可能(MPGM)出力に接続され
る。この場合にはキャッシュ不能データはMMUページ単
位で割当てられる。キャッシュ不能データは、システム
によってキャッシュ不能として割当てられたロケーショ
ン内に置かれるべきである。このデータの整合性という
問題を解決するための1つの方法は、そういう変数をキ
ャッシュ不能とすることである。
アクセスとすることもできる。これはICUの*LOCK入力
をセットすることによって行なわれる。インターロック
アクセスはモッドbレジスタによって制御され、キャッ
シュ可能またはキャッシュ不能アクセスのいずれにも指
定することができる。
期、同期通信のために用いることができる。これら変数
は同期化された方法でアクセスされる。これら変数はあ
る一時点においては1つのプロセッサのみによって書込
可能である。インターロックアクセスについてのICUの
サポートについての詳細な説明を以下で行なう。
書込ポリシーをサポートしている。これら書込ポリシー
はグローバル(全体的)にも、アクセスごとにも割当て
ることできる。グローバル書込ポリシーはモッドaレジ
スタが制御する。モッドaレジスタは柔軟なライトスル
ーまたはコピーバックポリシーを規定することができ
る。ASTC入力はアクセスごとに書込ポリシーを規定す
る。アクセスは、排他的ライトスルー、排他的コピーバ
ック、またはシェアードとして割当てることができる。
キャッシュヒットの場合、ASTC入力のシェアードビット
割当とキャッシュ内のブロックステータスシェアードビ
ットとの間で矛盾が生じた場合には、書込動作がモッド
bレジスタ内のプロセッサシェアードビット制御(PSB
C)の値によって制御される。PSBCが0であればブロッ
クステータスシェアードビットは影響を受けず書込ポリ
シーはブロックステータスに従って決定される。PSBCが
1であれば、ブロックステータスシェアードビットはAS
TC入力に従って割当てられ書込ポリシーはこれに従い決
定される。
たは書込ブロードキャストアクセスは常にメモリバス上
で行なわれる。この場合には書込ポリシーフィールドで
はなく、モッドbレジスタ内の書込シェアードヒット制
御(WSHC)フィールドがICUの動作を制御する。
ポリシーはコピーバックポリシーよりも問題が少ない。
ライトスルーが用いられた場合には、メモリは常に最新
版のデータを含んでいる。ライトスルーアクセスはま
た、他のキャッシュが自分自身のコピーを無効化するた
めに他のキャッシュが使用することもできる。
するためにプロセッサバスキャッシュ命令を使用するこ
とができる。古いデータを無効化するためには無効化命
令を使用することができる。ブロックステータスの読出
および書込、メモリ更新、およびキャッシュデータをメ
モリバス上に送信するために、他の命令を、より複雑な
ソフトウェア制御されたマルチプロセッサキャッシュ内
で使用することもできる。
の特徴は「バス監視」である。この新規なICUは、メモ
リバスアドレスを監視し、タグアレイ内のアドレスと一
致しているか否かをチェックすることができる。この動
作はプロセッサバスキャッシュアクセスにとっては透過
的に行なわれる。モッドbレジスタ内のバス読出監視可
能化情報がメモリバス読出アクセスに対するバス監視能
力を制御(可能化または不能化)する。モッドbレジス
タ内のバス書込監視可能化情報はメモリバス書込アクセ
スに対し同じことを行なう。可能化されるとバスは、IC
Uがバススレーブのときのみ監視される。アドレスの一
致が発生した場合、ICUはモッドbレジスタ内の読出一
致制御および書込一致制御情報によって制御される動作
を行なう。
よりアサートされる。シェアードブロックステータスビ
ットがセットされる。なぜならならばこのブロックは潜
在的に他のキャッシュによってフェッチされているから
である。モッドbレジスタがデータ介入動作とブロック
ステータスモディファイドビット割当とを制御する。オ
プションとしては、データ介入なし、データ介入(モデ
ィファイドビット変更なし)およびデータ介入(モディ
ファイドビットリセット)とである。
リバス読出での一致があった場合、ICUは*HIT信号をア
サートするがデータは出力しない。ブロックステータス
モディファイド情報は変更されない。データ介入が可能
化され、他のマスタによるメモリバス読出に対して一致
が検出されかつブロックが変更されている場合、ICUは
*DI出力をアサートし、要求されたデータをメモリバス
上に供給する。ブロックステータスモディファイドビッ
トは変更されないかまたはリセットされる。
レーブキャッシュによって対応するワードが無効化され
る。他のすべての点ではスレーブキャッシュの動作は通
常の読出アクセスでの一致の場合と同様である。
アドレスがラッチされる。このアドレスは各単一の転送
に対してスレーブキャッシュ内でインクリメントされチ
ェックされる。一致した場合のスレーブキャッシュの動
作は単一アクセスでの一致のときと同様である。
権方式をサポートする上で不可欠である。
によって必要とされる。それら方式については、メモリ
はそれをサポートするように設計されなければならな
い。*DI信号は、アクセスの最初のサイクルの間にマス
タキャッシュによってプリチャージされる。このプリチ
ャージされたハイという値を保持するために、外部のプ
ルアップレジスタが*DI信号上に設けられなければなら
ない。*DI信号は、データ介入動作が行なわれた場合に
スレーブキャッシュによってディスチャージされる。こ
の場合データはメモリによって供給されてはならず、読
出アクセスはメモリ内で取消されなければならない。な
お*DI出力はアドレスがメモリバス上に出力されてから
2サイクル後に有効となる。メモリはこれらサイクルの
間に応答することはできない。
の場合、*HIT信号がアサートされる。
スがラッチされる。このアドレスは各単一のデータ転送
ごとにスレーブキャッシュ内でインクリメントされチェ
ックされる。一致の場合のスレーブキャッシュの動作は
単一アクセスでの一致の場合と同様である。
トする方式の多くのサポートにおいて不可欠である。
して割当てられるかについての説明を以下で行なう。
またはハードウェア制御によって割当てることができ
る。ソフトウェア制御の場合、プロセッサがASTC入力を
用いてシェアードビットを割当てることができる。これ
ら入力はアクセスごとにシェアードビットの割当てを定
める。アクセスには、排他的ライトスルー、排他的コピ
ーバック、またはシェアードが割当てられる。通常はAS
TC入力はプロセッサのMPGM信号に接続されており、この
MPGM信号はMMUのユーザプログラム可能なビットに従っ
て駆動される。共有されかつ排他的な変数は共有のまた
は排他的なページに置かれ、それらページのためのユー
ザプログラム可能なビットはそれに従って割当てられ
る。モッドbレジスタのPSBCビット(前述)の状態に従
ってシェアードビットは各プロセッサアクセスごとに変
更され(PSBC=1)、またはキャッシュミスの場合だけ
変更される(PSBC=0)。
信号を用いるか、メモリバス上の特殊目的論理およびブ
ロックステータス書込メモリバスキャッシュ命令を用い
て割当てることができる。*HIT信号を読出および書込
アクセスにおいて使用するのは、モッドbレジスタの外
部シェアードビット制御(ESBC)フィールドによって制
御される。
タキャッシュはメモリバスアクセスの最初のサイクルの
間に*HIT信号をプリチャージする。その後*HIT信号は
3状態に置かれる。プリチャージされたハイの値を保持
するために、外部のプルアップレジスタを*HIT信号に
接続しなければならない。スレーブキャッシュは、それ
らのタグバッファ内での一致を見出した場合、それをデ
ィスチャージする。*HIT信号は*MRDYがアサートされ
るか、メモリバスアドレスサイクルの2サイクル後か、
いずれか遅い方のときにマスタキャッシュによってラッ
チされる。仮に*HIT信号がアサートされた場合、その
場合にはその変数は他のキャッシュ内にも存在してお
り、そのブロックにはシェアード状態が割当てられる。
もし*HIT入力がアサートされなければ、その変数はど
のキャッシュにも存在しておらず、そのブロックには排
他的状態が割当てられる。
これによってシェアード状態が、変数の状態を正確に表
わすことが保証される。それは、他のキャッシュにもそ
れが存在しているときのみ共有される。なおこの*HIT
信号を用いる場合、これに関連して性能上の犠牲を払わ
なければならない。すなわちICUが、他のすべてのキャ
ッシュが応答するまで2サイクルの間待機しなければな
らないということである。もしシェアードビットを変更
しなければならない場合、特別な内部キャッシュアレイ
のアクセスも必要となる。このためこうしたやり方は、
このオプションを選択するまでは有利な点ではないと考
えられる。
シュ命令を、ブロックステータスシェアードビットに特
定のステータスを書込むために使用することができる。
この命令はシェアードビットを柔軟に制御するために外
部論理によって用いることができる。
盾が生じた場合、本願発明の好ましい実施例によれば、
以下のような優先順位に従って動作が行なわれる。
当てられ、一方でメモリバスアクセスが要求された場合
を考える。*HIT入力の使用が可能化され、それによっ
てそのブロックが排他的ブロックであることが示され
る。ブロックステータス書込命令もまたメモリアクセス
の間に用いることができ、共有状態を割当てる。そのブ
ロックは最終的に共有状態となる。
合せは、新規なICUによってサポートされているマルチ
プロセッサキャッシュシステムのすべてを実装するため
に用いられる。
動作について説明する。
キャッシュ内でビットがあった場合、メモリバス上で特
別な動作が行なわれる。システム内の他のキャッシュは
共有されたデータ変数が変更されたという事実を知って
いなければならない。それら変数のコピーは無効化され
るか、共有変数の現在の値を反映するために更新されな
ければならない。メインメモリには書込があってもなく
てもよい。マスタキャッシュのブロックステータスもこ
れに従って影響を受ける。共有ブロックへの書込ヒット
での場合のICUの動作は、モッドbレジスタ内のシェア
ードヒット書込制御(WSHC)フィールドによって制御さ
れる。符号化方法の1つは以下のとおりである。
ブロックにライトスルーする。メモリは更新され他のキ
ャッシュは無効化される。ブロックには排他的非モディ
ファイド状態が割当てられる。このブロックが排他的と
なったため、同一のブロックへさらに書込むのはこのキ
ャッシュに対してのみとなる。この方法は、ある共有変
数が他のプロセッサによって必要とされる前に1つのプ
ロセッサによって多数回書込まれる場合に有効である。
キャストトランザクションを使用する。メモリは更新さ
れず他のキャッシュは無効化される。ブロックには排他
的モディファイド状態が割当てられる。このブロックが
排他的となるため、同一のこのブロックはこのキャッシ
ュに対してのみ書込まれる。メモリが更新されないため
モディファイドビットがセットされる。他のマスタがこ
のブロックを読出そうとする場合、最も新しい値を供給
するためにデータ介入のオプションを可能化しなければ
ならない。
はいずれもライトスルーする。メモリは更新され他のキ
ャッシュも更新される。書込アクセスに対してESBCが可
能化されない場合、このブロックにはシェアード非モデ
ィファイド状態が割当てられる。書込アクセスに対して
ESBCが可能化される場合、このブロックには排他的非モ
ディファイドまたはシェアード非モディファイド状態が
*HIT入力に従って割当てられる。この方式では共有ブ
ロックへの各書込に対してメモリバス書込トランザクシ
ョンが発生する代償として、すべてのキャッシュが同期
している状態に維持できる。この方式は、共有変数が他
のプロセッサによって必要とされる前に1つのプロセッ
サによって多数回書込まれるのでない場合に効率的であ
る。
ットについても書込ブロードキャストする。メモリは更
新されず他のキャッシュは更新される。書込アクセスに
対してESBCが可能化されていなければ、ブロックにはシ
ェアードモディファイド状態が割当てられる。書込アク
セスに対してESBCが可能化されていれば、このブロック
には*HIT入力に従って排他的モディファイドまたはシ
ェアードモディファイド状態が割当てられる。この方式
では共有ブロックに対する各書込についてメモリバス書
込トランザクションが発生することを代償として、すべ
てのキャッシュが同期した状態に維持される。この方式
は、共有変数が、他のプロセッサによって必要とされる
前に1つのプロセッサによって多数回書込まれない場合
に効率的である。メモリが更新されないのでモディファ
イドビットがセットされる。他のマスタがこのブロック
を読出そうとする場合、最も新しい値を供給するために
は、データ介入のオプションを可能化しなければならな
い。
用される。それらはまた、他のマルチプロセッサキャッ
シュシステムに対しても用いることができる。
メモリバス動作はモッドbレジスタの書込ミスメモリア
クセス制御(WMMC)ビットによって制御される。それは
書込割当なしのライトスルーアクセスまたはコピーバッ
クアクセスに対しては影響を持たない。WMMC=1のと
き、ICUは要求されたサブブロックをフェッチするため
のメモリバス上の読出アクセスと、その後に続くキャッ
シュ書込アクセスとを使用する。このアクセスは別個の
キャッシュ書込動作として取扱われる。それは常にヒッ
トし、そのキャッシュに書込まれる。もしそのブロック
が共有されている場合、モッドbレジスタのWSHCフィー
ルドに従ってメモリバス動作が行なわれる。WMMC=0の
とき、要求されたサブブロックをフェッチするためにメ
モリバス上の変更のための読出トランザクションが使用
される。一致が発生した場合、スレーブキャッシュはそ
のブロックのそれらが保持するコピーを無効化する。書
込はメモリバス動作なしにキャッシュ内で実行される。
される。それはまた、他のマルチプロセッサキャッシュ
システムに対しても使用することができる。
ックによって発行される。それらはキャッシュを柔軟に
制御することを可能にする。キャッシュされたデータは
無効化され、読出され、書込まれることができる。ブロ
ックステータスは読出および書込することができる。メ
モリバスキャッシュ命令の詳細な説明は上に述べてき
た。
令を適切なICUに向けることができなければならない。
この論理は必要とされるどのようなマルチプロセッサシ
ステムに対しても設計することができる。特に、1つの
共有バスのないシステム(クロスバースイッチまたはマ
ルチバス構成)に対してはこの方法を使用することが必
要である。これらシステムではバス監視機能は効率的で
はなく、特別な論理がメモリアクセスを監視しそれに従
いシステム内の種々のICUに対してコマンドを発行しな
ければならない。制御論理はまた、ICUによって直接的
にはサポートされていない特定のマルチプロセッサ方式
を実装するよう設計することもできる。
性がある。ICUは種々の共有メモリマルチプロセッサキ
ャッシュ構成をサポートするよう設計される。ICUは非
共有メモリ構成内で使用するように、かつこれらシステ
ムのための特別なハードウェアサポートを含ませること
なく使用することができる。以下に述べる詳細な説明は
このICUによってサポートされている主たる共有メモリ
構成について述べる。ここに記載されたシステムと異な
る変形、組合せおよび他のシステムもまた可能である。
下のとおりである。
シュ、ライトスルー共有変数を持つコピーバックキャッ
シュ、非共有バス編成における所有権方式および共有メ
モリ。
マルチプロセッサの間の通信および同期はソフトウェア
制御の下で行なわれる。キャッシュの整合性はソフトウ
ェアによって維持される。これは、キャッシュ不能変
数、インターロック動作(詳細は後述)の、およびキャ
ッシュ命令の使用(たとえば無効化)を組合せて使用す
ることによって行なわれる。共有変数には、他のプロセ
ッサによって変更された場合、他のキャッシュからキャ
ッシュ不能または無効化を割当てられる。同期化のため
にはインターロック動作が用いられる。共有バッファす
なわちメールボックスが通信のために用いられる。
常に柔軟な方式である。それは、共有の量の少ないシス
テムにおいて使用するとうまくいく。しかし、共有量が
高い場合、この方式ではシステム性能が非常に低下す
る。多くの変数がキャッシュできなくなるか、キャッシ
ュの整合性を維持するために大きなオーバヘッドが課さ
れる。この方式の他の欠点は、キャッシュがソフトウェ
アにとって透過的でなく、どの変数が共有されているか
についての情報を知らなければならないという点であ
る。ソフトウェア制御は他のマルチプロセッサ方式のい
ずれとも組合せて用いることができる。
ンの要件はない。モッドbレジスタは0にプログラムで
きる。
サが同一のバスおよびメモリを共有し、すべてのキャッ
シュがライトスルーポリシーを用いる。マスタキャッシ
ュは各プロセッサ書込動作をメモリバスに転送する。キ
ャッシュの整合性は書込に対するバス監視を用いること
によって維持される。共有メモリバス上の各読出動作は
すべてのスレーブキャッシュでチェックされる。一致が
見出されると、対応するアドレスが無効化される。これ
は単純なデータの整合性方式である。その主たる欠点
は、各書込がメモリバス動作を生じさせるという点であ
る。そのため性能は著しく劣化する。メモリバスの使用
量は非常に高くなり、そのためシステム内に置くことが
できるプロセッサの数はごく少なくなる。この悪影響
は、書込バッファを用いると緩和できる。
他的ライトスルーが割当てられなければならず、書込ポ
リシーはライトスルーにプログラムされなければなら
ず、バス監視が書込アクセスに対して可能化されていな
ければならず、モッドbレジスタはワード無効化を特定
しなければならない。
いては、複数のプロセッサが同一のバスおよびメモリを
共有し、それらキャッシュがフレキシブル書込ポリシー
を使用する。排他的変数はコピーバックオプションを用
いる(排他的コピーバックが割当てられたページ内に置
かれる)。1つのプロセッサによって排他的に使用され
ている変数のみが排他的コピーバックとして割当てられ
るように保証するのはシステムの責任である。なお、プ
ロセスの移送が許容されている場合、古いプロセッサの
キャッシュ内の排他的変数は無効化されなければならな
い。
的ライトスルーが割当られたページ内に置かれる)。共
有される可能性のあるすべての変数についてもこの状態
を割当てるのは(I/Oまたはキャッシュなしのプロセッ
サと共有する場合も含めて)システムの責任である。I/
Oと同様、いくつかの変数には依然としてキャッシュ不
能が割当てられなければならない。書込のためのバス監
視方式(ライトスルーキャッシュに対するものと同様)
が、データの整合性を維持するために使用される。スレ
ーブキャッシュは一致の場合、それらの保持するコピー
を無効化する。性能をよりよくする1つの可能性とし
て、スレーブキャッシュがそれらのコピーを無効化する
代わりに更新する、という方法がある。
トスルーまたは共有ページに置かれているという仮定に
基づいている。もしこれが当てはまるのであれば、ライ
トスルー方式と比較してよりよい性能を達成することが
できる。しかし、共有量が高いと共有データのライトス
ルー動作による欠点はより大きくなり、性能は低下す
る。
アクセスにたいするバス監視が可能化されなければなら
ず、モッドbレジスタがワード無効化を特定しなければ
ならない。スレーブキャッシュを更新する方式が望まし
い場合には、モッドbレジスタはそれに従って適切にプ
ログラムされなければならない。
の整合性を維持するためのバス監視付きの共有メモリお
よび共有バス構成に基づいている。この所有権方式の基
本原理は、変数が1つのキャッシュのみによって所有さ
れるということである。所有しているキャッシュはその
変数の最も新しい値を保持しており、その整合性を維持
するのはそのキャッシュの責任である。ある変数がどの
キャッシュによっても所有されていない場合、メモリが
更新値を保持している。他のすべての所有権方式では、
ある変数はキャッシュ内でいくつかの状態(最大5つ)
のうちの1つであり得る。本願の好ましい実施例によっ
てサポートされている可能な5つの状態(ブロックステ
ータス)は以下のとおりである。
態機械によってサポートされており、この状態機械が状
態遷移を制御する。そのような所有権方式は、読出一
致、書込一致、書込ヒットおよび書込ミスの場合に異な
る動作を必要とする。キャッシュ内およびシステム全体
内におけるハードウェアのサポート量もそれに従って異
なる量が必要とされる。どの所有権方式もキャッシュの
ソフトウェア制御は必要としない。それは、必要とされ
るハードウェアがより複雑になることを代償としてより
高い性能を可能とする。
下のとおりである。
れはライトワンス方式と同様で、ただしメインメモリ内
に各キャッシュブロックに対して含まれている単一のビ
ットタグに基づいている。この方式はICUによっては直
接的にはサポートされていないが、ライトワンスオプシ
ョンといくらかの外部論理を使用することによって実装
することができる。
行物によって教示されているが、各方式の主たる特徴に
ついての説明を、これら方式がこのICUによってどのよ
うにサポートされているかについての説明を完全にしか
つ容易にするために以下に行なう。
ポートしており、それらから発展する他の方式をサポー
トすることができるであろう。これは、必要とされるプ
ログラム可能なオプションを選択することによって行な
われる。どの所有権方式でも、書込ポリシーはフレキシ
ブル(柔軟)としてプログラムされる。書込アクセスの
ほとんどは、コピーバックポリシーを用いることができ
る。読出および書込の双方向に対してバス監視を可能化
することができる。既に述べたとおりの種々の制御フィ
ールドを持ったモッドbレジスタを、種々の所有権方式
を実装するために用いることができる。
他的モディファイド、シェアード非モディファイド、お
よび無効状態が定義される。シェアードモディファイド
状態は使用されない。この方式の基本原理は、キャッシ
ュ内でヒットする最初の書込(共有ページへの書込)の
すべてがライトスルー動作を生じさせるということであ
る。このブロックには排他的モディファイドが割当てら
れ、後続の書込はキャッシュに対してのみ実行される。
排他的ブロックへのコピーバック書込はモディファイド
ビットをセットする。排他的モディファイドブロックは
キャッシュによって所有され、他のキャッシュがそれを
読出そうとする場合にはデータ介入が用いられる(メモ
リも更新され、ブロックはその後シェアード非モディフ
ァイドが割当てられる)。この方式にたいしては、すべ
てのプロセッサアクセスには共有が割当てられる。なお
排他的ブロックステータスはASTC入力による共有表示を
オーバライドする。
ード非モディファイド、シェアードモディファイド、お
よび無効状態のみが定義される。排他的非モディファイ
ド状態は使用されない。排他的モディファイドまたはシ
ェアードモディファイドブロックを保持しているキャッ
シュがその所有権である。読出時のミスの場合、そのブ
ロックにはシェアード非モディファイドが割当てられ
る。共有ブロックへの書込ヒットの場合には、書込ブロ
ードキャスト動作が行なわれ、そのブロックには排他的
モディファイドが割当てられる。他のキャッシュはその
ブロックのそれらが保持しているコピーを無効化する。
読出時の一致の場合には、所有者によってデータ介入が
行なわれる。この方式に対しては、すべてのプロセッサ
アクセスには共有が割当てられる。
モディファイド、シェアード非モディファイドおよび無
効状態のみが定義される。シェアードモディファイド状
態は使用されない。排他的モディファイドブロックを保
持するキャッシュがその所有者である。読出時のミスの
場合、このブロックにはシェアード非モディファイドま
たは排他的非モディファイドが*HIT入力に従って割当
てられる。共有ブロックへの書込ヒットの場合には、書
込ブロードキャスト動作が行なわれ、そのブロックには
排他的モディファイドが割当てられる。他のキャッシュ
はそのブロックのそれらが保持するコピーを無効化す
る。読出時の一致の場合、所有者によってデータ介入が
行なわれる。なお、データ介入動作は元のイリノイ方式
での定義とは異なっているが、最終的な結果は同じであ
る。元の定義では、必要とされるデータのコピーを保持
するすべてのキャッシュは介入しようと試みる。我々の
場合には、データ介入が行なわれるのはブロックが変更
されている場合だけである。もしブロックがシェアード
非モディファイドであればデータはメモリから供給され
る。この方式についてはプロセッサアクセスのシェアー
ドビット割当は意味がない。なぜならば*HIT信号がこ
の目的のために使用されるからである。
ド、排他的モディファイド、シェアード非モディファイ
ドおよび無効状態のみが定義される。シェアードモディ
ファイド状態は使用されない。排他的モディファイトブ
ロックを保持するキャッシュがその所有者である。読出
時のミスの場合、そのブロックにはシェアード非モディ
ファイドまたは排他的非モディファイドが*HIT入力に
従って割当てられる。共有ブロックへの書込ヒットの場
合には、ライトスルー動作が行なわれブロックにはシェ
アード非モディファイドまたは排他的非モディファイド
が*HIT入力に従って割当てられる。他のキャッシュは
メモリアレイ内のそれらのデータを更新する。読出時の
一致の場合には、所有者によってデータ介入が行なわれ
る。なお、データ介入動作は元のファイヤーフライ方式
での定義とは異なっているが、結果は最終的には同じで
ある。元の定義では、要求されたデータのコピーを保持
しているすべてのキャッシュは介入しようと試みる。我
々の場合には、データ介入は、ブロックが変更されてい
る場合のみ行なわれる。もしそのブロックがシェアード
非モディファイドであればデータはメモリから供給され
る。この方式に対してはプロセッサアクセスのシェアー
ドビット割当は意味がない。なぜならば*HIT信号がこ
の目的のために使用されるからである。
てが使用される。排他的モディファイドまたはシェアー
ドモディファイドブロックを保持するキャッシュがその
所有者である。読出時のミスの場合、そのブロックには
シェアード非モディファイドまたは排他的非モディファ
イドが*HIT入力に従って割当てられる。共有ブロック
への書込ヒットの場合は、書込ブロードキャスト動作が
行なわれ(メモリは更新されない)そのブロックにはシ
ェアード非モディファイドまたは排他的非モディファイ
ドが*HIT入力に従って割当てられる。他のキャッシュ
はそのデータのそれら自身のコピーを更新する。読出時
の一致の場合には所有者によってデータ介入が行なわれ
る。この方式では、プロセッサアクセスのシェアードビ
ット割当は意味がない。なぜならば*HIT信号がこの目
的のために使用されるからである。
スのすべてが使用される。この方式は他のすべての所有
権方式を(いくらかの修正を施して)実現できるように
する柔軟な方式である。読出および書込時の一致、書込
ヒットならびに読出および書込ミスの場合のキャッシュ
動作は種々の所有権方式の実装化に対して十分な柔軟性
を持って定義されている。*HIT信号の使用もオプショ
ンである。フューチャーバス方式はこのICUの柔軟性に
よって完全にサポートされている。このICUはフューチ
ャーバス方式で要求されている以上の柔軟性を有してお
り、データ介入時のメモリ更新および書込ブロードキャ
ストのサポートなどのような制約のいくつかが取除かれ
ている。この方式では、プロセッサアクセスのシェアー
ドビット割当はソフトウェア割当によって、または*HI
T信号を用いることによって行なわれる。
べる。まず、バス監視能力が有用なのは、共有バスマル
チプロセッサ編成のときだけだということに注意された
い。他の共有メモリ編成であって複数のバスまたはクロ
スバースイッチを含むものもまたこのICUによってサポ
ートされている。これら編成は、共有バスがシステム内
のボトルネックとなったときに必要とされる。この場合
これによってプロセッサの数を多くでき性能を高めるこ
とができる。
ャッシュ命令である。メモリバスキャッシュ命令につい
ての詳細な説明は上に述べてきた。メモリアクセスを監
視し適切なICUに対してキャッシュ命令を発行するため
には外部制御論理が必要である。この論理は特定のシス
テム編成に従って設計すればよい。それはすべてのメイ
ンメモリアクセスをモニタすることができる(この機能
はメモリコントローラ内に設けることもできる)。これ
により、グローバルな情報に従って、メモリバスキャッ
シュ命令を適切なキャッシュに向けることができる。そ
のような実装の詳細なシステムに依存しており本願発明
の一部をなすものではなく、また多くの変更が可能であ
る。これら編成をICUによってサポートすることを説明
するために、いくつかの基本的な機能について以下に説
明する。
とする場合、制御論理はそのブロックをシェアードまた
は排他的と指定するためにブロックステータス書込命令
を使用することができる。要求された変数の更新された
値がメモリ内になくキャッシュのうちの1つに存在する
場合、ワード送信、変更ならワード送信、または変更な
らブロック送信という命令を、更新後の値を受けるため
に用いることができる。
がプロセッサの1つによって書かれた場合、ICUをプロ
グラムしてライトスルーを行なうか、書込情報を書込ブ
ロードキャストするかさせることができる。他のキャッ
シュ内のそのコピーを無効化または更新するために、ワ
ード無効化、ブロック無効化、またはキャッシュ書込命
令を使用することができる。
ックステータス読出またはブロックステータス書込命令
を使用することによって必要であればいつでも読出また
は書込することができる。これは制御論理によって、キ
ャッシュ内容に関する情報を集めたり、ブロックステー
タスを特定したりするために使用することができる。
らの編成に対して使用して、共有ヒット、読出および書
込ミスの場合のICUの動作を特定することができる。特
別な論理を設計してICUメモリバス上に読出および書込
動作を発行させるようにした場合、メモリバスキャッシ
ュ命令に代えてバス監視を用いることができる。
ュ命令との組合せを用いることができる。バス監視は同
じバスを共有するキャッシュの間でのデータの整合性を
カバーすることができる。関連のアクセスを転送した
り、適切なキャッシュにメモリバス命令を発行してバス
間のデータの整合性を取るようにする、すなわちあるバ
ス上での動作が他のバス上のキャッシュ内のデータに影
響を与えるような動作のために、特別な論理が必要であ
る。この特別な論理のための設計は当業者の能力の範囲
内であり、本願発明の範囲の外である。
機能について詳細に説明する。しかし第1に、ICUに関
連して考えた場合、当業者であればインターロック変数
がマルチプロセッサまたはマルチタスク環境でのセマフ
ォおよび他の同期のための変数のために使用できること
が理解されるであろう。同期変数はまた、共有メモリ領
域のための保護キーとして用いることもできる。インタ
ーロック変数へのアクセスは同期化されなければならな
い。どのある時点でも、インターロック変数に対するア
クセスが許可されるのはただ1つのプロセッサでなけれ
ばならない。インターロック変数に対するどの読出も、
その変数の最も新しい値を返さなければならない。
プロセッサはある種のアトミックな読出−変更−書込動
作を含まなければならない。これによりプロセッサによ
る変数のチェックおよび変更を他のプロセッサの干渉な
しにアトミックな形で行なうことができる。キャッシュ
メモリを含むシステムでは、インターロック変数は特別
な問題を発生させる。なぜならばそれら変数へのアクセ
スはキャッシュとは独立に同期化されなければならない
からである。
ッシュ不能を割当てることである。この場合にはインタ
ーロック変数はキャッシュされず、すべてのインターロ
ックアクセスはメモリに対して向けられる。この方法は
知られているキャッシュシステムのほとんどにおいて使
用されている。主な欠点は性能が低下すること、メモリ
へのインターロック変数アクセスによりバス使用率が高
くなることである。インターロックアクセスの数が増大
すると、性能にたいする影響は重大なものとなる。
ターロック機能によりインターロック変数をキャッシュ
することが可能になる。これにより性能が向上しバス使
用率を低くすることができる。インターロック変数アク
セスの大部分はより速くなり、メモリバス上には生じな
い。なぜならばアクセスはキャッシュ内でのみ行なわれ
るからである。この方式は簡単でありシングルチップIC
U上に実装することができる。
いくつかの方法がある。本願発明の実施例に関連するプ
ロセッサは効率的なインターロックに必要な基本的動作
を含んでいる。これらはLOADSET、LOADLおよびSTOREL命
令、現在のプロセッサステータスレジスタのLTビット、
および*LOCK出力とである。このICUはインターロック
変数を取扱うために2つの方式を実装している。モッド
bレジスタのキャッシュインターロック可能化(CILE)
ビットをプログラムすることにより所望の方式を選択す
ることができる。
ッシュは不能化される。インターロックアクセス(*LO
CKビットがアサート)はキャッシュ不能アクセスとして
取扱われる。ヒットがあるかどうかを求めてキャッシュ
がサーチされることはなく、アクセスはロック表示(*
MLOCKアサート)とともにメモリバスに転送される。こ
のオプションではインターロック変数の取扱いはメモリ
制御の下で行なわれる。メモリは*MLOCK信号がアサー
トされている間インターロック変数上のアクセスは不能
化しなければならない。LOADSET命令は、メモリ内のイ
ンターロック変数の検査および設定に用いることができ
る。
ッシング機能は可能化される。これは特別な機能であっ
て、インターロック変数をより効率的に取扱うことが可
能なようにICUに組込まれている。これはプロセッサと
互換性を有しており、プロセッサの種々のインターロッ
クの基本的動作を利用している。
アサート)は特別な方法で取扱われる。インターロック
された読出(LOADLおよびLOADSET命令にたいしてプロセ
ッサにより生成される)は、共有ブロック内でヒットし
ないかぎりミスとして取扱われる。再ロード動作が、*
MLOCKがアサートされた状態でメモリアドレスバス上で
開始される。読出されたデータはキャッシュ内にストア
され、ブロックにはシェアードが割当てられる。共有ブ
ロックでのヒットに対しては、データはメモリアドレス
バスアクセスなしでキャッシュから供給される。
対しては、LOADSET命令とは異なって取扱われる。ICUは
2つのタイプのインターロック書込を、書込アクセスの
前のサイクル内の*LOCK入力の状態に従って区別するこ
とができる。*LOCKビットがセットされていた場合、そ
れはインターロック書込がLOADSET命令の書込であるこ
とを意味する。もしそれがセットされていなかったので
あればそれはSTORELの書込である。
メモリへのライトスルー動作を開始する。キャッシュヒ
ットの場合ブロックは無効化される。
キャッシュ内に書込まれる。データはLOADSET命令の読
出アクセスによりミスが発生した場合のみメモリにも書
込まれる。これによってインターロックされた変数が最
初に読出されたときのみメモリへの書込が行なわれるこ
とが保証される。
アサートされる。他のすべてのキャッシュは他のマスタ
によって*MLOCKがアサートされた状態での書込がされ
ると、それ自身のコピーを無効化する。
ッサがインターロック変数をアクセスすべき特別な方法
が存在する(変更も可能である)。インターロック変数
を調べ設定するためには、LOADSET命令が用いられる。
変数値が0であれば、それはビジーでなくそのプロセッ
サ(またはプロセス)によって使用することができる。
なお、LOADSET命令の結果、サブブロックがキャッシュ
内にロードされる。このサブブロックはインターロック
変数(ワード)およびサブブロックサイズが1ワードよ
り大きければおそらく他のいくつかのワードも含む。ユ
ーザはこの事実を利用し、インターロック変数と同じサ
ブブロック内に関連の情報を置くことができる。
それが保護する領域)は使用することができない。プロ
グラムはビジー待機方式を用いて、変数がフリーになる
までテストし続けるか、または他の動作(またはタス
ク)を行ない変数を後でチェックすることができる。変
数のテストはLOADSET命令を用いて行なわれる。
ドレスバスを使用する。変数はメモリから読出され共有
ブロックステータスとともにキャッシュ内に置かれる。
LOADSETの最初の書込もまたメモリに書込まれる。次のL
OADSET命令はキャッシュ内でヒットし(多くの場合)、
メモリアドレスバスを使用しない。他のキャッシュは*
MLOCKがアサートされた状態での書込時の一致があった
場合には、それら自身のコピーを無効化する。
令が用いられる。STOREL命令の結果、*MLOCKがアサー
トされた書込アクセスがメモリアドレスバス上でマスタ
キャッシュによって開始され、他のすべてのキャッシュ
内ではその変数は無効化される。もしその変数が依然と
してマスタキャッシュ内にあればそれもまた無効化され
る。これは、プロセッサによるこの変数への次のアクセ
スがミスとなることを保証するために行なわれる。その
変数の最も新しい値を得るためには、その変数はメモリ
から読出される。なお、マスタキャッシュによってイン
ターロック変数が使用されている間、他のプロセッサが
最初に(LOADSETを用いて)同じ変数をテストしようと
した場合、LOADSETの書込がメモリアドレスバス上に発
行され、他のすべてのキャッシュ(マスタキャッシュを
含む)で変数が無効化される。
れらが次にその変数をテストしようとした場合メモリを
アクセスしなければならない。バス調停を勝ち取った1
つのキャッシュのみが利用可能なインターロック変数を
得ることができる。
上しメモリバスの使用率が低くなることがである。多数
のインターロック変数アクセスが生じるマルチプロセッ
サシステムでは、これにより相当な性能の向上を達成す
ることができる。他の利点は、メモリコントローラがイ
ンターロックアクセスを通常のアクセスとして取扱うこ
とができるということである。
SC/SIPプロセッサにおいて実現することができる。
シュシステム設計のためのICUの新規な構成と、新たな
キャッシュインターロック機能と、新規かつ柔軟なマル
チプロセッササポート方式と、集積されたキャッシュメ
モリのためのプリロード方式を含む。これらの詳細が、
新規なICUの機能、その内部レジスタ、入出力、見本と
なる命令セット、データフォーマット、プログラム可能
性、サポートされているシステムのタイプなどとの関連
で説明されてきた。これら開示に基づけば、当業者には
上記した本願発明の目的は達成されていることが容易に
わかるであろう。
明は、例示および説明のためだけのものである。上記し
たものによって尽きているわけではなく、また発明が開
示された正確な形式そのものに限定されるわけではな
く、さまざまな修正および変更が上記の教示に照らして
可能であることは明らかである。
明の原理とその実際的応用とを最もよく説明し、当業者
が本願発明を所望の特定の用途に適するような種々の実
施例の形で種々の変更をもって利用することができるよ
うに説明されてきた。
れることが意図されている。
ロック図である。 第2図は、ピンパッケージと、新規なICUへのおよびそ
こからの種々の入出力の図である。 第3図は、新規なICUを介する、第1図のプロセッサバ
スユニットとメモリバスユニットとの間のデータの流れ
を描く、データの流れの図である。 第4図は、一方が命令キャッシュとして使用され、他方
がデータキャッシュとして使用される、1プロセッサ当
り2個のICUを有する、共有バスマルチプロセッサの簡
略化されたシステム図である。 図において10は命令キャッシュ、102はデータキャッシ
ュ、110命令プロセッサ、150は命令ROM、190はメモリ、
195は算術加速器、198はデータ転送制御器である。
Claims (41)
- 【請求項1】計算システムにおいてキャッシュ機能を実
現するためのシングルチップ集積キャッシュユニット
(ICU)であって、前記システムは、少なくとも1個の
中央処理ユニット(CPU)と、前記CPUとICUとの間の通
信を容易にするためのプロセッサバス手段と、メモリ
と、前記メモリとICUとの間の通信を容易にするための
メモリバス手段とを含み、さらに (a) 前記プロセッサバス手段に結合され、前記CPU
により発生されるアドレス信号およびデータ信号を受け
るための第1の手段と、 (b) 前記メモリバス手段に結合され、前記メモリバ
ス手段からデータ信号を受けるための第2の手段と、 (c) キャッシュメモリを含み、前記第1の手段およ
び第2の手段を介して受信された信号を前記キャッシュ
メモリ内に選択的にストアするための、前記ストアされ
た信号を選択的に取出し前記プロセッサに送信するため
の、および前記ストアされた信号を選択的に取出し前記
メモリに送信するための、プログラム可能キャッシュ手
段と、 (d) 前記プログラム可能キャッシュ手段と前記プロ
セッサバス手段とに結合され、前記プログラム可能キャ
ッシュ手段により取出された信号を出力し前記プロセッ
サに送信するための第3の手段と、 (e) 前記プログラム可能キャッシュ手段および前記
メモリバス手段に結合され、前記プログラム可能キャッ
シュ手段により取出された信号を出力し前記メモリに送
信するための第4の手段とを備え、 前記集積キャッシュユニットは、第1の動作モードにお
いてはデータキャッシュとして機能し、第2の動作モー
ドにおいては命令キャッシュとして機能し、 前記集積キャッシュユニットは、前記第1の動作モード
または前記第2の動作モードのいずれで動作しているか
によって、入力される制御信号の少なくとも一つについ
て異なった解釈を行なう、集積キャッシュユニット。 - 【請求項2】前記第3の手段がキャッシュバスをさらに
備える、請求項1に記載の集積キャッシュユニット。 - 【請求項3】前記第4の手段がメモリアドレス/データ
バスをさらに備える、請求項2に記載の集積キャッシュ
ユニット。 - 【請求項4】前記プログラム可能キャッシュ手段が、マ
ルチプロセッサ動作をサポートするための手段を含む、
請求項1に記載の集積キャッシュユニット。 - 【請求項5】モジュール式でありかつ拡張可能である、
請求項1に記載の集積キャッシュユニット。 - 【請求項6】計算システムにおいてキャッシュ機能を実
現するためのシングルチップ集積キャッシュユニット
(ICU)であって、前記システムは少なくとも1個の中
央処理ユニット(CPU)と、前記CPUとICUとの間の通信
を容易にするためのプロセッサバス手段と、メモリと、
前記メモリとICUとの間の通信を容易にするためのメモ
リバス手段とを含み、さらに (a) 前記プロセッサバス手段に結合され、ICU/プロ
セッサバスインターフェイスを制御するためのプロセッ
サバスユニットと、 (b) 前記メモリバス手段に結合され、ICU/メモリバ
スインターフェイスを制御するためのメモリバスユニッ
トと、 (c) 前記プロセッサバスユニットと前記メモリバス
ユニットとの両方に結合され、キャッシュ機能を実現す
るためのプログラム可能キャッシュユニットとを備え、 前記プログラム可能キャッシュユニットは、前記プロセ
ッサバスユニットと前記メモリバスユニットとに結合さ
れ、プログラム可能オプションを選択するための、キャ
ッシュ制御動作をサポートするための、およびキャッシ
ュステイタス情報を表示するための1組の特殊レジスタ
を含み、 前記1組の特殊レジスタは、少なくとも一つの命令レジ
スタを含む、集積キャッシュユニット。 - 【請求項7】前記プロセッサバスユニットが、 (a) 前記プロセッサバス手段と前記プログラム可能
キャッシュとに結合され、前記プロセッサバス手段から
入力されるアドレス信号を受け、ラッチし、インクリメ
ントするための、およびキャッシュアクセスを容易にす
るようにアドレス信号を前記プログラム可能キャッシュ
ユニットへ出力するための第1のアドレス増分器手段
と、 (b) 前記プロセッサバス手段と前記プログラム可能
キャッシュユニットとに結合され、前記プロセッサバス
手段から入力されるデータ信号を整列させるための、お
よび前記プロセッサへの伝送のために前記プログラム可
能キャッシュユニットにより出力されるデータ信号を整
列させるためのデータシフト器手段と、 (c) 前記第1のアドレス増分器手段と、前記データ
シフト器手段と、前記プログラム可能キャッシュユニッ
トとの動作を同期化し制御するためのプロセッサバスユ
ニット制御手段とをさらに備える、請求項6に記載の集
積キャッシュユニット。 - 【請求項8】前記メモリバスユニットが、 (a) 前記メモリバス手段と前記プログラム可能キャ
ッシュ手段との間で伝送されるアドレス信号およびデー
タ信号をバッファするための、選択的に可能化される書
込バッファと、 (b) 前記メモリバス手段と、前記書込バッファと、
前記プログラム可能キャッシュユニットとに結合され、
前記メモリバス手段を介して入力されるメモリバスアド
レスをラッチしてインクリメントするための、および前
記プログラム可能キャッシュ手段により開始されるキャ
ッシュ読出動作のためのアドレスをラッチしインクリメ
ントするための、メモリアドレス論理手段と、 (c) 前記メモリバス手段と、前記書込バッファと、
前記プログラム可能キャッシュ手段とに結合され、前記
プログラム可能キャッシュ手段が更新のために利用可能
になるまで前記メモリバス手段からのデータをバッファ
するための、およびプリフェッチ動作と読出動作との両
方をサポートするためのメモリ読出バッファ手段と、 (d) 前記書込バッファと、前記メモリアドレス論理
手段と、前記メモリ読出バッファ手段と、前記プログラ
ム可能キャッシュユニットとの動作を同期化し制御する
ためのメモリバスユニット制御手段とをさらに備える、
請求項6に記載の集積キャッシュユニット。 - 【請求項9】前記書込バッファがアドレスバッファとデ
ータバッファとをさらに備える、請求項8に記載の集積
キャッシュユニット。 - 【請求項10】前記プログラム可能キャッシュユニット
は、 (a) 前記プロセッサバスユニットと前記メモリバス
ユニットと前記1組の特殊レジスタとに結合され、アド
レス信号を搬送するためのキャッシュユニットアドレス
バスと、 (b) 前記プロセッサバスユニットと前記メモリバス
ユニットと前記1組の特殊レジスタとに結合され、デー
タ信号を搬送するためのキャッシュユニットデータバス
と、 (c) 前記キャッシュユニットアドレスバスと前記キ
ャッシュユニットデータバスとの両方に結合され、キャ
ッシュデータ信号と命令信号とをストアするためのメモ
リアレイ手段と、 (d) 前記キャッシュユニットアドレスバスに結合さ
れ、各々が予め定められた数のキャッシュされたワード
のブロックに対応する複数のキャッシュタグをストアす
るためのタグアレイ手段と、 (e) 前記キャッシュユニットアドレスバスに結合さ
れ、キャッシュされた各ワードの妥当性に関連するデー
タをストアするための有効性アレイ手段と、 (f) 前記キャッシュデータバスに結合され、各ブロ
ックのモディファイド、シェアードおよびロックトのス
テータスの表示をストアするためのブロックステイタス
アレイ手段と、 (g) 前記プロセッサバス制御手段と前記メモリバス
制御手段とに結合され、前記プログラム可能キャッシュ
ユニットと、前記プロセッサバスユニットと、前記メモ
リバスユニットとの動作を同期化し制御するためのキャ
ッシュユニット制御手段とをさらに備える、請求項6に
記載の集積キャッシュユニット。 - 【請求項11】前記キャッシュ制御手段が、前記キャッ
シュユニットアドレスバスと前記タグアレイとに結合さ
れ、前記キャッシュユニットアドレスバス上のアドレス
を前記タグアレイ内のタグと比較するための論理手段を
さらに備える、請求項10に記載の集積キャッシュユニッ
ト。 - 【請求項12】前記キャッシュ制御手段が、前記有効性
アレイ手段に結合され、キャッシュアクセス時にキャッ
シュされた特定のワードが有効であるかどうかを決定す
るための論理手段をさらに備える、請求項11に記載の集
積キャッシュユニット。 - 【請求項13】前記キャッシュ制御手段が、有効なキャ
ッシュアクセスに対しヒット信号を発生させるようにさ
らに動作し、および前記特殊レジスタの組と前記ブロッ
クステイタスアレイとにストアされたデータを維持およ
び更新する、請求項12に記載の集積キャッシュユニッ
ト。 - 【請求項14】LRU置換アルゴリズムが前記プログラム
可能キャッシュユニットにより利用されるときはいつで
も、LRUビットをストアするためのLRUアレイ手段をさら
に備える、請求項10に記載の集積キャッシュユニット。 - 【請求項15】前記特殊レジスタの組が、 (a) チップ選択マッピングレジスタと、 (b) アドレスオペランドレジスタと、 (c) カウントレジスタと、 (d) エラーレジスタと、 (e) ステイタスレジスタと、 (f) ユーザが選択したICUオプションおよびポリシ
ーを示す信号をストアするための少なくとも1個のプロ
グラム可能レジスタとをさらに備える、請求項10に記載
の集積キャッシュユニット。 - 【請求項16】LRUポリシーと、ランダムポリシーと、
外部ポリシーとを含む、ユーザが選択可能なキャッシュ
置換ポリシーをサポートするための手段をさらに備え
る、請求項15に記載の集積キャッシュユニット。 - 【請求項17】第1の動作モードにおいてはデータキャ
ッシュとして機能し、第2の動作モードにおいては命令
キャッシュとして機能する、請求項15に記載の集積キャ
ッシュユニット。 - 【請求項18】フレキシブルなマルチプロセッサ動作を
サポートし、およびキャッシュデータ整合性を保証する
ための手段をさらに備える、請求項15に記載の集積キャ
ッシュユニット。 - 【請求項19】モジュラ式でありかつ拡張可能である、
請求項15に記載の集積キャッシュユニット。 - 【請求項20】ブロックおよびサブブロックサイズの変
更をサポートするための手段をさらに備える、請求項15
に記載の集積キャッシュユニット。 - 【請求項21】ユーザが特定した、ライトスルー、コピ
ーバックおよびフレキシブルキャッシュポリシーを、ア
クセス毎にサポートするための手段をさらに備える、請
求項15に記載の集積キャッシュユニット。 - 【請求項22】最初のヒットアクセスに対しては2サイ
クルのアクセス時間で、その後のヒットアクセスに対し
ては1サイクルのアクセス時間で、25メガヘルツを超過
する動作周波数を達成するための手段をさらに備える、
請求項15に記載の集積キャッシュユニット。 - 【請求項23】第1のモードにおいては2ウェイセット
アソシアティブキャッシュとして動作し、第2のモード
においては直接マップされたキャッシュとして動作する
ための手段をさらに備える、請求項15に記載の集積キャ
ッシュユニット。 - 【請求項24】バス監視を実施するための手段をさらに
備える、請求項15に記載の集積キャッシュユニット。 - 【請求項25】インターロック変数をキャッシュするた
めの手段をさらに備える、請求項15に記載の集積キャッ
シュユニット。 - 【請求項26】プリロード動作を実施するための手段を
さらに備える、請求項15に記載の集積キャッシュユニッ
ト。 - 【請求項27】前記CPUが、バーストおよびパイプライ
ン化プロトコルを有する簡略化された命令プロセッサで
あり、さらに、前記集積キャッシュユニットが前記プロ
トコルをサポートするための手段を備える、請求項15に
記載の集積キャッシュユニット。 - 【請求項28】バイトパリティを発生させチェックする
ための手段を含むフォールトトレランスサポート手段を
さらに備える、請求項15に記載の集積キャッシュユニッ
ト。 - 【請求項29】前記フォールトトレランスサポート手段
が、キャッシュマスタモードおよびキャッシュスレーブ
モードにおいて前記集積キャッシュユニットを動作させ
るための手段をさらに備える、請求項28に記載の集積キ
ャッシュユニット。 - 【請求項30】計算システムにおいて、シングルチップ
集積キャッシュユニット(ICU)内でキャッシュ機能を
実現するための方法であって、前記システムは少なくと
も1個の中央処理ユニット(CPU)と、前記CPUとICUと
の間の通信を容易にするためのプロセッサバス手段と、
メモリと、前記メモリとICUとの間の通信を容易にする
ためのメモリバス手段とを含み、 (a) 前記プロセッサバス手段に結合される第1の手
段を介して、前記ICUに前記CPUにより発生されるアドレ
ス信号およびデータ信号を入力するステップと、 (b) 前記メモリバス手段に結合される第2の手段を
介して、前記ICUに前記メモリバス手段からデータ信号
を入力するステップと、 (c) キャッシュメモリを含むプログラム可能キャッ
シュ手段を介して、前記第1の手段と第2の手段とを介
して前記ICUに入力されるデータ信号を前記キャッシュ
メモリにストアするステップと、 (d) 前記ICUにより前記プロセッサに送信されるべ
き、ストアされたデータ信号を取出すステップと、 (e) 前記ICUにより前記メモリに送信されるべき、
ストアされたデータ信号を取出すステップと、 (f) 前記プログラム可能キャッシュ手段と前記プロ
セッサバス手段とを結合する第3の手段を介して、前記
プログラム可能キャッシュ手段により取出された信号を
出力し前記プロセッサに送信するステップと、 (g) 前記プログラム可能キャッシュ手段と前記メモ
リバス手段とを結合する第4の手段を介して、前記プロ
グラム可能キャッシュ手段により取出された信号を出力
し前記メモリに送信するステップと, (h) 予め定められた期間内における入力ピン上の信
号値によって、データキャッシュとして動作する第1の
モード、または命令キャッシュとして動作する第2のモ
ードのいずれかで前記ICUが動作することを可能とする
ステップとを含む、方法。 - 【請求項31】前記第3の手段を介して取出された信号
を出力するステップが、内部のICUキャッシュバスを利
用して行なわれる、請求項30に記載の方法。 - 【請求項32】前記第4の手段を介して取出された信号
を出力するステップが、内部のICUメモリアドレス/デ
ータバスを利用して行なわれる、請求項31に記載の方
法。 - 【請求項33】前記予め定められた期間は、前記ICUの
リセット期間である、請求項30に記載の方法。 - 【請求項34】ICUがマルチプロセッサ計算システムに
おいて採用されるときはいつでも、複数種類のキャッシ
ュマルチプロセッササポートレベルのうちの1つを可能
化するステップをさらに含む、請求項33に記載の方法。 - 【請求項35】モジュラチップ上において行なわれる、
請求項34に記載の方法。 - 【請求項36】第1のモジュラICUチップを第2のモジ
ュラICUチップに結合させることにより、前記システム
内のキャッシュメモリ容量を拡張するステップをさらに
含む、請求項35に記載の方法。 - 【請求項37】計算システムにおいて、シングルチップ
集積キャッシュユニット(ICU)内にキャッシュ機能を
実現する方法であって、前記システムは、少なくとも1
個の中央処理ユニット(CPU)と、前記CPUとICUとの間
の通信を容易にするためのプロセッサバス手段と、メモ
リと、前記メモリとICUとの間の通信を容易にするため
のメモリバス手段とを含み、さらに (a) 前記プロセッサバス手段に結合されるプロセッ
サバスユニットを利用して前記ICU内からICU/プロセッ
サバスインターフェイスを制御するステップと、 (b) 前記メモリバス手段に結合されるメモリバスユ
ニットを利用して前記ICU内からICU/メモリバスインタ
ーフェイスを制御するステップと、 (c) 前記プロセッサバスユニットと前記メモリバス
ユニットとの両方に結合されるプログラム可能キャッシ
ュユニットを利用して、前記ICU内からキャッシュ機能
を行なうステップとを含み、 前記キャッシュ機能を行なうステップは、前記プロセッ
サバスユニットと前記メモリバスユニットとに結合さ
れ、プログラム可能オプションを選択するための、キャ
ッシュ制御動作をサポートするための、およびキャッシ
ュステータス情報を表示するための、少なくとも1つの
命令レジスタを含む1組の特殊レジスタを利用するステ
ップを含む、方法。 - 【請求項38】前記ICU/プロセッサバスインターフェイ
スを制御するステップが、 (a) 前記プロセッサバス手段と前記プログラム可能
キャッシュユニットとに結合される第1のアドレス増分
器手段を利用して前記プロセッサバス手段から入力され
るアドレス信号を受け、ラッチし、インクリメントする
ステップと、 (b) キャッシュアクセスを容易にするように、前記
第1の増分器手段から前記プログラム可能キャッシュユ
ニットにアドレス信号を出力するステップと、 (c) 前記プロセッサバス手段と前記プログラム可能
キャッシュユニットとに結合されるデータシフト器手段
を利用して、前記プロセッサバス手段から入力されるデ
ータ信号を整列させるステップと、 (d) 前記データシフト器手段を介した前記プロセッ
サへの伝送のために、前記プログラム可能キャッシュユ
ニットにより出力されるデータ信号を整列させるステッ
プと、 (e) 前記第1のアドレス増分器手段と、前記データ
シフト器手段と、前記プログラム可能キャッシュユニッ
トとの動作をプロセッサバスユニット制御手段を介して
同期化し制御するステップをさらに含む、請求項37に記
載の方法。 - 【請求項39】前記ICU/メモリバスインターフェイスを
制御するステップが、 (a) 前記メモリバス手段と前記プログラム可能キャ
ッシュ手段との間で伝送されるアドレス信号およびデー
タ信号を、選択的に可能化される書込バッファにバッフ
ァするステップと、 (b) 前記メモリバス手段と、前記書込バッファと、
前記プログラム可能キャッシュユニットとに結合される
メモリアドレス論理手段を利用して、前記メモリバス手
段から入力されるメモリバスアドレスをラッチしインク
リメントするステップと、 (c) 前記メモリアドレス論理手段を利用して、前記
プログラム可能キャッシュ手段により開始されるキャッ
シュ読出動作のためのアドレスをラッチしインクリメン
トするステップと、 (d) 前記プログラム可能キャッシュ手段が更新のた
めに利用可能になるまで、前記メモリバス手段と、前記
書込バッファと、前記プログラム可能キャッシュ手段と
に結合されるメモリ読出バス手段を利用して前記メモリ
バス手段からのデータをバッファするステップと、 (e) 前記書込バッファと、前記メモリアドレス論理
手段と、前記メモリ読出バッファ手段と、前記プログラ
ム可能キャッシュユニットとの動作をメモリバスユニッ
ト制御手段を介して同期化し制御するステップをさらに
含む、請求項37に記載の方法。 - 【請求項40】プログラム可能キャッシュユニットを利
用してキャッシュ機能を実現する前記ステップが、 (a) 前記ICU内で、前記プロセッサバスユニットと
前記メモリバスユニットと前記1組の特殊レジスタとに
結合される内部キャッシュユニットアドレスバス上をア
ドレス信号を搬送するステップと、 (b) 前記ICU内で、前記プロセッサバスユニットと
前記メモリバスユニットと前記1組の特殊レジスタとに
結合される内部キャッシュユニットデータバス上をデー
タ信号を搬送するステップと、 (c) 前記キャッシュユニットアドレスバスと前記キ
ャッシュユニットデータバスとの両方に結合されるメモ
リアレイ手段に、キャッシュされるべきデータ信号およ
び命令信号をストアするステップと、 (d) 前記キャッシュユニットアドレスバスに結合さ
れ、各々が予め定められた数のキャッシュされたワード
のブロックに対応する複数のタグを有するタグアレイ手
段にキャッシュタグをストアするステップと、 (e) 前記キャッシュユニットアドレスバスに結合さ
れた有効性アレイ手段に、キャッシュされた各ワードの
妥当性に関連するデータをストアするステップと、 (f) 前記キャッシュデータバスに結合されたブロッ
クステイタスアレイ手段に、各ブロックのモディファイ
ド、シェアード、およびロックトのステータスの表示を
ストアするステップと、 (g) 前記プログラム可能キャッシュユニットと、前
記プロセッサバスと、前記メモリバスユニットとの動作
をキャッシュユニット制御手段を介して同期化し制御す
るステップをさらに含む、請求項37に記載の方法。 - 【請求項41】前記同期化し制御するステップが、 (a) 前記キャッシュユニットアドレスバス上のアド
レスを前記タグアレイ内のタグと比較するステップと、 (b) キャッシュアクセス時に特定のキャッシュされ
たワードが有効であるかどうかを決定するステップと、 (c) 有効なキャッシュアクセスに対しヒット信号を
発生させるステップと、 (d) 前記特殊レジスタの組と、前記ブロックステー
タスアレイとにストアされたデータを維持および更新す
るステップとをさらに含む、請求項40に記載の方法。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US14600188A | 1988-01-20 | 1988-01-20 | |
| US146,001 | 1988-01-20 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPH01237835A JPH01237835A (ja) | 1989-09-22 |
| JP3218316B2 true JP3218316B2 (ja) | 2001-10-15 |
Family
ID=22515487
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP01093589A Expired - Lifetime JP3218316B2 (ja) | 1988-01-20 | 1989-01-19 | 集積キャッシュユニットおよびその内部でキャッシュ機能を実現するための方法 |
Country Status (4)
| Country | Link |
|---|---|
| EP (1) | EP0325422B1 (ja) |
| JP (1) | JP3218316B2 (ja) |
| AT (1) | ATE138212T1 (ja) |
| DE (1) | DE68926466T2 (ja) |
Families Citing this family (14)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5136691A (en) * | 1988-01-20 | 1992-08-04 | Advanced Micro Devices, Inc. | Methods and apparatus for caching interlock variables in an integrated cache memory |
| US5025366A (en) * | 1988-01-20 | 1991-06-18 | Advanced Micro Devices, Inc. | Organization of an integrated cache unit for flexible usage in cache system design |
| ATE109910T1 (de) * | 1988-01-20 | 1994-08-15 | Advanced Micro Devices Inc | Organisation eines integrierten cachespeichers zur flexiblen anwendung zur unterstützung von multiprozessor-operationen. |
| JPH01233537A (ja) * | 1988-03-15 | 1989-09-19 | Toshiba Corp | キャッシュメモリを備えた情報処理装置 |
| JPH0740248B2 (ja) * | 1988-08-16 | 1995-05-01 | インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン | キャッシュ制御装置 |
| US5043886A (en) * | 1988-09-16 | 1991-08-27 | Digital Equipment Corporation | Load/store with write-intent for write-back caches |
| JPH077355B2 (ja) * | 1988-12-27 | 1995-01-30 | 株式会社東芝 | 情報処理装置 |
| JPH0680499B2 (ja) * | 1989-01-13 | 1994-10-12 | インターナショナル・ビジネス・マシーンズ・コーポレーション | マルチプロセッサ・システムのキャッシュ制御システムおよび方法 |
| JPH077357B2 (ja) * | 1989-10-19 | 1995-01-30 | 工業技術院長 | バッファ制御方式 |
| JPH1153260A (ja) * | 1997-08-06 | 1999-02-26 | Nec Corp | キャッシュメモリー内蔵半導体装置 |
| US6378044B1 (en) * | 1999-09-22 | 2002-04-23 | Vlsi Technology, Inc. | Method and system for cache replacement among configurable cache sets |
| US8527713B2 (en) * | 2006-01-31 | 2013-09-03 | Qualcomm Incorporated | Cache locking without interference from normal allocations |
| US20130262780A1 (en) * | 2012-03-30 | 2013-10-03 | Srilatha Manne | Apparatus and Method for Fast Cache Shutdown |
| DE102020003326A1 (de) | 2020-06-03 | 2020-07-30 | Daimler Ag | Verfahren zum Maskieren von Kraftfahrzeugdaten eines Kraftfahrzeugs, sowie elektronische Recheneinrichtung |
Family Cites Families (9)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US3898624A (en) * | 1973-06-14 | 1975-08-05 | Amdahl Corp | Data processing system with variable prefetch and replacement algorithms |
| FR2344093A1 (fr) * | 1976-03-10 | 1977-10-07 | Cii | Systeme de gestion coherente d'une hierarchie de memoires |
| US4357656A (en) * | 1977-12-09 | 1982-11-02 | Digital Equipment Corporation | Method and apparatus for disabling and diagnosing cache memory storage locations |
| US4315312A (en) * | 1979-12-19 | 1982-02-09 | Ncr Corporation | Cache memory having a variable data block size |
| DE3138972A1 (de) * | 1981-09-30 | 1983-04-14 | Siemens AG, 1000 Berlin und 8000 München | Onchip mikroprozessorchachespeichersystem und verfahren zu seinem betrieb |
| US4484267A (en) * | 1981-12-30 | 1984-11-20 | International Business Machines Corporation | Cache sharing control in a multiprocessor |
| US5025366A (en) * | 1988-01-20 | 1991-06-18 | Advanced Micro Devices, Inc. | Organization of an integrated cache unit for flexible usage in cache system design |
| US5136691A (en) * | 1988-01-20 | 1992-08-04 | Advanced Micro Devices, Inc. | Methods and apparatus for caching interlock variables in an integrated cache memory |
| ATE109910T1 (de) * | 1988-01-20 | 1994-08-15 | Advanced Micro Devices Inc | Organisation eines integrierten cachespeichers zur flexiblen anwendung zur unterstützung von multiprozessor-operationen. |
-
1989
- 1989-01-18 EP EP89300435A patent/EP0325422B1/en not_active Expired - Lifetime
- 1989-01-18 DE DE68926466T patent/DE68926466T2/de not_active Expired - Lifetime
- 1989-01-18 AT AT89300435T patent/ATE138212T1/de not_active IP Right Cessation
- 1989-01-19 JP JP01093589A patent/JP3218316B2/ja not_active Expired - Lifetime
Non-Patent Citations (3)
| Title |
|---|
| Katz R.H.et al."IMPLEMENTING A CACHE CONCISTENCY PROTOCOL"Proceedings.12th Annual International Symposium on Computer Architecture(1985)p.276−283 |
| Sachs h."THE FAIRCHILD CLIPPER MICROPROCESSORFAMILY−A HIGH PERFORMANCE 32−BIT PROCESSOR" Wescon Conference Proceedings 24(1985)p.6.5.1−6.5.6 |
| 田中康陽他「キャッシュユニットμPD43608」NEC技報第40巻第10号(1987)p.84−87 |
Also Published As
| Publication number | Publication date |
|---|---|
| DE68926466T2 (de) | 1996-10-17 |
| EP0325422A2 (en) | 1989-07-26 |
| JPH01237835A (ja) | 1989-09-22 |
| DE68926466D1 (de) | 1996-06-20 |
| ATE138212T1 (de) | 1996-06-15 |
| EP0325422A3 (en) | 1991-01-09 |
| EP0325422B1 (en) | 1996-05-15 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP3218317B2 (ja) | 集積キャッシュユニットおよびその構成方法 | |
| JP3158161B2 (ja) | 集積キャッシュユニットおよび集積キャッシュユニットにおいてインターロック変数をキャッシュする方法 | |
| JP2881309B2 (ja) | 集積回路、コンピュータシステム、および集積回路内のキャッシュにおけるキャッシュブロックステータスを更新する方法 | |
| US5185878A (en) | Programmable cache memory as well as system incorporating same and method of operating programmable cache memory | |
| US20240264955A1 (en) | Multiple-requestor memory access pipeline and arbiter | |
| JP3285644B2 (ja) | キャッシュメモリを有するデータプロセッサ | |
| JP3067112B2 (ja) | 遅延プッシュをコピー・バック・データ・キャッシュに再ロードする方法 | |
| US6408345B1 (en) | Superscalar memory transfer controller in multilevel memory organization | |
| US5784590A (en) | Slave cache having sub-line valid bits updated by a master cache | |
| US7032074B2 (en) | Method and mechanism to use a cache to translate from a virtual bus to a physical bus | |
| US12332790B2 (en) | Multi-level cache security | |
| US5696937A (en) | Cache controller utilizing a state machine for controlling invalidations in a network with dual system busses | |
| US5845324A (en) | Dual bus network cache controller system having rapid invalidation cycles and reduced latency for cache access | |
| JPH10187533A (ja) | キャッシュシステム、プロセッサ及びプロセッサを動作させる方法 | |
| JP3218316B2 (ja) | 集積キャッシュユニットおよびその内部でキャッシュ機能を実現するための方法 | |
| US6665767B1 (en) | Programmer initiated cache block operations | |
| EP0380842A2 (en) | Method and apparatus for interfacing a system control unit for a multiprocessor system with the central processing units | |
| US6973541B1 (en) | System and method for initializing memory within a data processing system | |
| US6484237B1 (en) | Unified multilevel memory system architecture which supports both cache and addressable SRAM | |
| EP1782184B1 (en) | Selectively performing fetches for store operations during speculative execution | |
| WO1997004392A1 (en) | Shared cache memory device | |
| US5895486A (en) | Method and system for selectively invalidating cache lines during multiple word store operations for memory coherence | |
| JP2001043133A (ja) | マルチプロセッサ・システムにおいてライトスルー・ストア・オペレーションでキャッシュ・コヒーレンシを維持するための方法およびシステム | |
| WO1994011828A2 (en) | Write buffer with full rank byte gathering | |
| US7035981B1 (en) | Asynchronous input/output cache having reduced latency |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20070810 Year of fee payment: 6 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080810 Year of fee payment: 7 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080810 Year of fee payment: 7 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090810 Year of fee payment: 8 |
|
| EXPY | Cancellation because of completion of term | ||
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090810 Year of fee payment: 8 |