JP2881309B2 - 集積回路、コンピュータシステム、および集積回路内のキャッシュにおけるキャッシュブロックステータスを更新する方法 - Google Patents

集積回路、コンピュータシステム、および集積回路内のキャッシュにおけるキャッシュブロックステータスを更新する方法

Info

Publication number
JP2881309B2
JP2881309B2 JP1010938A JP1093889A JP2881309B2 JP 2881309 B2 JP2881309 B2 JP 2881309B2 JP 1010938 A JP1010938 A JP 1010938A JP 1093889 A JP1093889 A JP 1093889A JP 2881309 B2 JP2881309 B2 JP 2881309B2
Authority
JP
Japan
Prior art keywords
cache
block
write
icu
instruction
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
Application number
JP1010938A
Other languages
English (en)
Other versions
JPH01239663A (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.)
Advanced Micro Devices Inc
Original Assignee
Advanced Micro Devices Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Advanced Micro Devices Inc filed Critical Advanced Micro Devices Inc
Publication of JPH01239663A publication Critical patent/JPH01239663A/ja
Application granted granted Critical
Publication of JP2881309B2 publication Critical patent/JP2881309B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime 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/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • G06F12/0837Cache consistency protocols with software control, e.g. non-cacheable data
    • 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/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]

Description

【発明の詳細な説明】 発明の背景 発明の分野 この発明は、一般的に、キャッシュユニットを編成す
るための方法および装置に関するものであり、より特定
的には、フレキシブルな態様で多様なマルチプロセッサ
支持機構を実現するために使用され得る集積キャッシュ
ユニットを編成するための方法および装置に関するもの
である。結果として生じるキャッシュユニットは、プロ
グラム可能であり、シングルプロセッサモードとマルチ
プロセッサモードの両方で動作可能であり、かつ、複数
個のユーザ選択可能マルチプロセッサ支持機構が実現さ
れてキャッシュシステム応用に合うようにされることを
可能にすることによりマルチプロセッサモードにおいて
キャッシュデータ一貫性を達成する。この新規のシステ
ムは、低減命令セットコンピュータ(RISC)環境におい
て高速命令およびデータ処理を支持し、かつシングルチ
ップ上の集積に適するアーキテクチャで先に言及された
機能にすべてを支持することが可能である。
関連技術の説明 キャッシュメモリとキャッシュメモリ用の制御器は周
知である。シングルチップ上にメモリ特徴と制御特徴の
両方を集積するデバイスも公知である。これらは、NEC
により製造される市場で入手可能な43608を含んでい
る。そのようなデバイスは、後で「集積された」キャッ
シュユニット(ICU)と呼ばれる。
先行技術ICUデバイスはデータおよび命令をキャッシ
ングするための予め定められたアルゴリズムを利用し、
すなわち、先行技術のデバイスはプログラム可能ではな
い。以前は、シングルチップ上にキャッシュメモリ特徴
と、キャッシュ制御器特徴と、プログラム可能性特徴と
を集積することは、部分的に回路密度およびデータ経路
要件のために達成されていない。プログラム可能でない
ことに加えて、公知のICUアーキテクチャは、マルチプ
ロセッサ能力を有する高速RISCシステムを支持すること
に関連する回路密度およびデータ経路要件の問題を克服
していない。
キャッシングアルゴリズムの選択および/または修正
を許容する固有の柔軟性を有するであろうという理由
で、プログラム可能集積キャッシュユニットが望ましい
であろう。さらに、複数個のユーザ選択可能マルチプロ
セッサ支持機構を組入れるプログラム可能ICUが、キャ
ッシュデータ一貫性がフレキシブルな態様で保証される
ことを可能にするであろう。
先に言及された特徴を有するシングルチップICUアー
キテクチャがまた、スペース要件とユニット出力要件を
最小限にするために望ましいであろう。さらにまた、RI
SC環境と非RISC環境の両方に対し、シングルプロセッサ
モードとマルチプロセッサモードの両方において高速処
理動作を支持するためにそのような集積キャッシュユニ
ットを使用することが可能であることが望ましいであろ
う。
発明概要 複数のマルチプロセッサ支持機構をフレキシブルに実
現するために使用され得る集積キャッシュユニットを実
現するための方法および装置が開示される。この発明の
好ましい実施例は、シングルチップ上にキャッシュメモ
リとキャッシュ制御器の両方を備えて、プログラム可能
であり、かつ他の先に言及された所望の特徴を含んでい
る。
キャッシュシステムにおける複数個のマルチプロセッ
サ支持機構のフレキシブルな実現は、この発明の好まし
い実施例に従えば、チップ上の特殊レジスタにおける適
当なオプションビットの設定によりユーザが所望のマル
チプロセッサ支持機構を特定することを可能にする方法
および装置を介して達成される。これは、ソフトウェア
制御の下で実施されることが可能であり、かつ低コスト
でかつ高い能率で実施する能力を有して、ほとんど部品
なしで高性能のマルチプロセッサキャッシュシステムが
設計されることを可能にする。
この好ましい実施例は、8kバイトのデータと、512−2
0ビットワードのタグと、RISC環境と非RISC環境の両方
においてキャッシュ機能を十分に実現するのに必要な制
御とを含む集積キャッシュユニット(ICU)と関連して
説明される。ICUの好ましい実施例は2個のバスを有
し、一方はプロセッサインターフェイスに対するもので
あり、他方はメモリインターフェイスに対するものであ
る。
この開示のために、プロセッサバスは非多重化32ビッ
トアドレスおよびデータバスである。プロセッサバス
は、バーストアクセスおよびパイプライン化アクセスを
支持する。さらに、この開示のために、メモリバスはメ
インメモリにインターフェイスを提供し、マルチプロセ
ッサ編成を収容する。
この発明の好ましい実施例に従えば、ICUは25メガヘ
ルツを超過する周波数で動作することが可能であり、或
る順番における最初のアクセスに対しては2サイクル
の、かつバーストモードのアクセスまたはパイプライン
化アクセスに対しては1サイクルのプロセッサアクセス
時間を達成する。それは、フレキシブルな内部キャッシ
ュ編成を有する命令キャッシュかまたはデータキャッシ
ュのいずれかとして使用され得る。RISCプロセッサおよ
び2個のICU(命令キャッシュおよびデータキャッシュ
用の)は、16Kバイトのキャッシュを有する非常に高性
能のプロセッサを実現する。付加的なICUを使用するこ
とにより、より大規模なキャッシュが設計され得る。
この発明の目的は、広範囲にわたるユーザにより特定
されるマルチプロセッサ支持機構を支持するのに十分な
固有の柔軟性を有する一方で、マルチプロセッサシステ
ム編成に最小の制約しか課さないプログラム可能キャッ
シュユニットを実現するための方法および装置を提供す
ることである。
この発明のさらなる目的は、キャッシュデータ一貫性
を保証するために複数個のマルチプロセッサ支持機構か
ら選択するための手段を含むICUアーキテクチャを提供
することである。
この発明のなおさらなる目的は、RISCアーキテクチャ
環境と非RISCアーキテクチャ環境の両方において、マル
チプロセシングシステムにおいて、高速データおよび命
令処理応用を支持する事に適するプログラム可能集積キ
ャッシュユニットを実現するための方法および装置を提
供することである。
この発明のなお別な目的は、シングルチップ上に集積
され得るキャッシュアーキテクチャで先に言及された目
的を実現することである。
開示されるICUは、データキャッシュかまたは命令キ
ャッシュのいずれかとして使用され得る。
さらなる特徴は、フレキシブルでかつ広範囲なマルチ
プロセッサ支持ハードウェア要件、モジュール性要件、
低出力要件などを含んでいる。バスウォッチングと、所
有権機構と、ソフトウェア制御と、ハードウェア制御と
の組合わせがまたキャッシュ一貫性を達成するために使
用される。
この発明のこれらおよび他の目的および特徴は、次の
詳細な説明および図面全体で同一参照符号が同一特徴を
表わしている添付の図面を考慮に入れれば、当業者には
明らかとなるであろう。
詳細な説明 第1図は、新規のICUを含むであろう典型的な計算シ
ステム構成を描いている。
例示だけのために、この発明は、シングルプロセッサ
モードとマルチプロセッサモードの両方の動作を有する
RISC処理システムに関連して説明されるであろう。後で
詳細に説明されるICUは、非RISC環境においても同様に
使用され得ることが当業者には明らかになるであろう。
第1図は2個の新規のICUを示す。ICU101は命令キャ
ッシュとして使用されることが示されているが、ICU102
はデータキャッシュとして使用されることが示されてい
る。
第1図は続いてアドレスバス120およびデータバス121
からなるプロセッサバスを示す。命令ROM150および命令
キャッシュICU101における命令は、プロセッサ110によ
りアドレスバス120を介してアドレスされる。取出され
る命令はバス125を介してプロセッサ110へ伝送されるこ
とが示されている。
データキャッシュICU102もまたアドレスバス120を介
してアドレスされる。両方向のデータの流れはプロセッ
サ110とICU102の間でデータバス121を介して可能である
ことが示されている。
メモリバス175は、メインメモリ190をICU101およびIC
U102と結合するバスとして示されている。完全さのため
に、典型的なRISCシステム構成の一部になるであろう算
術加速器195が、バス120および121に結合されて示され
ている。また、DTC198として示されているデータ転送制
御器(DTC)が、たとえば、高速プロセッサよりはるか
に低い速度を有する市場で入手可能な周辺装置がプロセ
ッサ、キャッシュユニットなどの性能を制限せずにシス
テムに取付けられることを可能にするために、典型的な
システム構成の一部として使用され得る。
詳細な説明を続ける前に、明瞭にするためにまずそれ
ら自体が規定されることが必要である汎用キャッシュ用
語とマルチプロセッサキャッシュ用語とを用いて、新規
の集積キャッシュアーキテクチャが後で説明される。こ
こで用いられる汎用キャッシュ用語は次のように規定さ
れる。
ブロック−キャッシュブロックは、タグと関連するシー
ケンシャルなワード線のグループである。キャッシュブ
ロックは、必要とされるときはいつでも、1グループと
して割当てられかつ置換される。ICUの好ましい実施例
においては、ブロックサイズは、4ワード(4ワードに
つき1タグ)である。
ブロックステータス−キャッシュブロックと関連するス
テータスビットである。ICUの好ましい実施例に従え
ば、1ブロックにつき2個のステータスビットが存在す
る。それらはブロックの修正されかつ共有されるステー
タスを特定する。
ブロックステータスアレイ−ブロックステータスビット
を含む、オンチップランダムアクセスメモリアレイ。
コピーバック−ヒットの場合のための、キャッシュにお
いてのみ書込アクセスが実施される書込ポリシー。書込
まれるデータを含むブロックは修正されると記される。
データは、修正されたブロックが置換されるときのみ、
メインメモリに書込まれる(コピーバックされる)。
データキャッシュ−頻繁に使用されるプロセッサデータ
変数をキャッシュするために使用されるキャッシュ。
直接マップされる−これは、一方向セット連想編成の代
替の用語である。特殊アドレスが、キャッシュにおいて
1個の特殊な場所においてのみ(アドレスにより直接に
マップされる)キャッシュされ得る。
ヒット−アクセスアドレスにより特定されるワードは、
キャッシュメモリアレイに存在する。アドレス一致がタ
グアレイにおいて見い出され、さらに、対応する有効な
ビットが設定される。
無効−キャッシュから有効なデータを除去する動作。1
個またはそれ以上の有効なビットがリセットされ、その
ため対応するワードは無効になる。
命令キャッシュ−頻繁に使用されるプロセッサ命令をキ
ャッシュするために使用されるキャッシュ。
最も古くに使用された(LRU)−置換されるべきブロッ
クがその使用の活動記録に従って選択される、置換アル
ゴリズム。最も古くに使用されたブロックは置換され
る。
キャッシュにおけるロック−データ変数または命令はキ
ャッシュにロックされ得る。たとえそれらが置換アルゴ
リズムにより選択されるとしても、それらは置換されな
いであろう。後で説明されるべき、ICUに入力される★L
OCKはインターロック動作を特定し、かつ、それはキャ
ッシュ動作においてはロックのために使用されないこと
を注目すべきである。ブロックをロックすることを容易
にするために、ロックビットは各ブロックと関連してい
る。
メモリアレイ−キャッシュされたデータまたは命令を含
む、オンチップランダムアクセスメモリアレイ。
メモリバス−キャッシュをメインメモリに接続するバ
ス。
ミス−アクセスアドレスにより特定されるワードはキャ
ッシュメモリアレイには存在しない。
修正されるブロック−コピーバック書込ポリシーにおい
て書込まれる場合に、ブロックが修正されると印され
る。これは、メインメモリに関してブロックが修正され
ることを示し、かつデータのより最近のバージョンを含
む。
キャッシュ不能−キャッシュされ得ない命令またはデー
タ変数。キャッシュ不能動作がICUによりメモリバスへ
転送される。キャッシュはそれを捜されず、キャッシュ
ブロックは割当てられない。
先取り−データ変数または命令をそれらが要求される前
にキャッシュへと取出す動作。
先取りバッファ−メモリバスから読出される先取りされ
たデータ変数または命令をそれらがキャッシュへ書込ま
れる前に保持するバッファ。ICUにおいては、読出バッ
ファは先取りバッファの機能のために使用される。
プリロード−キャッシュに特殊なデータ変数または命令
をロードする特殊な先取り動作。プリロード動作用のア
ドレスは、先取りされるアドレスがキャッシュにより決
定される他の先取り動作に対立するものとしてユーザに
より特定される。
プロセッサバス−キャッシュをプロセッサに接続するバ
ス。
ランダムな置換−置換されるべきブロックがランダムに
選択される、置換アルゴリズム。
読出バッファ−メモリバスから読出されるデータ変数ま
たは命令を、それらがキャッシュへ書込まれる前に保持
するバッファ。ICUの好ましい実施例においては、読出
バッファは4ワードの深さであり、それはまた先取りバ
ッファの機能のために使用される。
リードスルー−キャッシュミスの場合には、必要とされ
るデータまたは命令は、それがメモリから受取られると
すぐにプロセッサへ転送される。再ロード動作は並列に
完了される。リードスルーを有さないキャッシュにおい
ては、再ロード動作は、所要のデータまたは命令がプロ
セッサへ転送される前に完了される。
再ロード−メインメモリから所要のデータまたは命令を
取出すためにキャッシュミスの場合に実施される動作。
置換アルゴリズム−新しいブロックがキャッシュにおい
て割当てられる場合に置換されるべきブロックを決定す
るアルゴリズム、所要の新しいアドレスを含むセットか
ら1個のブロックが選択される。
範囲−この用語は、命令効果の範囲を規定するためにキ
ャッシュ命令に関連して使用される。この命令は、1個
の特殊ICU、多数命令キャッシュ、多数データキャッシ
ュ、または多数命令およびデータキャッシュに影響を及
ぼし得る。
セット−読出されかつそれと同時に所要のアドレスと比
べられる、タグおよび関連するキャッシュブロックの1
グループ。セットのタグのいずれかに対し一致が見い出
され得る。セットはアドレスビットのいくつかに従って
特定される。キャッシュ編成においては、セットにおけ
るタグの数は「方向」(後で規定されるべき)の数に等
しい。
セット連想−キャッシュにおける多数の可能な場所にお
いて特殊アドレスのキャッシングを可能にするキャッシ
ュ編成。この数は連想の程度と呼ばれる。それはキャッ
シュ編成における「方向」の数と、読出されかつそれと
同時に比べられるタグの数とを特定する。開示されるIC
Uは、二方向セット連想編成および一方向セット連想編
成を支持する。
サブブロック−再ロード動作のために所要のワードと一
緒にメインメモリから取出される、1個またはそれ以上
のワードの1グループ。サブブロックサイズは、取出さ
れるワードの最大数を規定する。サブブロックのサイズ
はブロックのサイズより低いかまたはそれに等しい。
タグ−タグは、キャッシュに同時に存在するデータまた
は命令のアドレスを識別する。キャッシュタグはタグキ
ャッシュブロックと関連し、かつそれはタグアレイにス
トアされる。ICUの好ましい実施例においては、各タグ
は4ワードブロックに対応する。
タグアレイ−キャッシュされるデータまたは命令に対す
るアドレスタグを含む、オンチップランダムアクセスメ
モリアレイ。
更新メモリ−キャッシュからメインメモリの更新を引き
起こす動作。修正されたブロックがキャッシュによりメ
インメモリに書込まれ、そのため、メモリはデータの最
も最近のバージョンで更新される。
有効なアレイ−有効なビットを含むオンチップランダム
アクセスメモリアレイ。
有効なビット−キャッシュデータの妥当性を示すビッ
ト。ICUの好ましい実施例においては、有効なビットは
各キャッシュされたワードと関連する。
方向−タグアレイモジュールと関連するタグの1グルー
プ。モジュールのアドレスデコーダにより特定される1
個のタグだけが読出されかつ各方向から比べられる。IC
Uの好ましい実施例においては、2つの方向が存在し、
各々が256個のタグを備えている。
書込割当て−書込動作のためのキャッシュミスの場合に
は、書込まれたアドレスを含むブロックに対しキャッシ
ュブロックが割当てられる。所要のブロックに対し再ロ
ード動作が実施される。非書込割当てに対しては、キャ
ッシュブロックは割当てられず、書込みはメモリにおい
てのみ実施される。
書込バッファ−メモリバス上で書込アクセスが実施され
るまで書込アクセス情報(アドレス、データおよび制
御)を保持するバッファ。ICUの好ましい実施例は、4
個までの書込アクセスを保持し得る深さ4の書込バッフ
ァを含む。
ライトスルー−すべての書込アクセスがメインメモリへ
と実施される、書込ポリシー。キャッシュヒットの場合
には、データもキャッシュへと書込まれる。
ここで使用されるマルチプロセッサキャッシュ用語は
次のように規定される。
バスウォッチング−メモリバスはスレーブキャッシュに
よりモニタされる(見張られる)。それらは転送された
アドレスをタグバッファアドレスと比べる。一致が見い
出された場合には、特殊動作が実施され得る。バススヌ
ーピングまたはスヌーピングキャシュという用語は同じ
である。
キャッシュ一貫性−これは、マルチプロセッサキャッシ
ュシステムにおいてデータ一貫性を説明するために使用
される異なる用語である。
データ一貫性−これはマルチプロセッサキャッシュシス
テムにおける主な問題である。変数が多数プロセッサに
より共有される場合、それは多数キャッシュにキャッシ
ュされ得る。変数の最も最新のバージョンは、変数がア
クセスされるときはいつでも供給されるべきである。こ
れは、システムを通してデータ変数の一貫性を保証す
る。
データ介入−メモリバス読出アクセスの場合に一致が見
い出されるときにスレーブキャッシュにより実施され得
る動作。スレーブキャッシュが修正されたデータ(デー
タの最新のバージョン)を含む場合、それはアクセスの
際に介入してデータを供給する。この場合、メインメモ
リはデータを供給すべきではない。
排他的−変数またはキャッシュブロックが1個のキャッ
シュにおいて排他的に存在することを示す。それは、1
個のプロセッサにより排他的に使用され得るか、または
より多くのプロセッサにより使用され得るが、1個のキ
ャッシュにのみ存在する。ICUの好ましい実施例におい
ては、共有されたブロックステータスビットにおけるLO
Wは排他的ブロックを示している。このブロックは、排
他的非修正かまたは排他的修正のいずれかをなされ得
る。
インターロック−1個のプロセッサの排他的使用のため
に変数(インターロック変数)を一時的にロックするた
めのインターロック動作が利用される。他のプロセッサ
またはキャッシュは変数を使用することが許容されない
が、それはインターロックされる。後で説明されるべ
き、ICUに入力される★LOCKはインターロック動作を示
している。
マスタキャッシュ−メモリバスのマスタであるキャッシ
ュ、それは要求を発し、応答を予期する。
一致−メモリバスアクセスのアドレスはタグバッファに
存在するアドレスのうちの1個と一致し、対応するワー
ドは有効である。この用語はメモリバスアドレス比較の
ために使用され、それはプロセッサバスのために使用さ
れるヒットという用語と同じである。
所有権−これはデータ一貫性を保証するための機構であ
る。変数の最新の値は1個のキャッシュまたはメインメ
モリにより所有される。変数の一貫性を維持することは
オーナーの責任である。変数に帰する状態の数が異な
る、いくつかの所有権機構と、所有権および状態遷移の
ためのアルゴリズムが存在する。
共有された−変数またはキャッシュブロックが1個より
多いプロセッサにより共有されることを示している。1
個より多いキャッシュには共有された変数が存在し得
る。ICUの好ましい実施例においては、共有されたブロ
ックステータスビットにおけるHIGHは共有されたブロッ
クを示している。ブロックは、共有され修正されないか
または共有され修正されるかのいずれかであり得る。
共有され修正される−キャッシュブロックが共有されか
つ修正されることを示すICUにおけるブロックステータ
ス。それはまた、ブロックがキャッシュにより所有され
ることと、それがシステムにおけるブロックの最新値で
あることとを示している。
スレーブキャッシュ−メモリバスのマスタではないキャ
ッシュ。データ一貫性の目的で、スレーブキャッシュが
メモリバスをモニタし得る。
スヌーピング−バスウォッチングの代わりに使用される
異なる用語。バススヌーピングまたはスヌーピングキャ
ッシュも同じである。
ここで使用されるべき用語を規定した場合、新規のIC
Uの好ましい実施例の詳細な説明がそのピン説明および
機能編成の点から後で直接に明らかにされるであろう。
ピン説明に関して、「3状態」という用語は通常の動
作の間高インピーダンス状態に置かれ得る信号を説明す
るために使用されることが注目されるべきである。すべ
ての出力(後で説明されるMSERRを除いて)は、★TEST
入力(また後で説明される)により高インピーダンス状
態に置かれ得る。
新規のICUの好ましい実施例はCMOSであり、第2図に
示されるような169ピン・グリッド・アレイ(Pin Grid
Array)パッケージである。
プロセッサバスインターフェイスは最初に説明され、
次のものを含んでいる。
アドレスバス、すなわち第2図のピンA0−A31は、ICU
入力であり、同期式であり、かつプロセッサバス上でキ
ャッシュアクセス用のバイトアドレスを転送する。
第2図にASTC0およびASTC1として示されるアクセスス
テータス制御信号は、アクセスと関連するステータス制
御を特定する同期入力である。それらは、この発明の好
ましい実施例によれば次のようにコード化される。
ASTC1 ASTC0 意味 0 0 排他的ライトスルー 0 1 排他的コピーバック 1 0 共有されている 1 1 キャッシュ不能 これらの入力は、プロセッサ110のMPGM0−MPGM1出力
に通常は接続される。
★BINV、バス無効は、同期ICU入力であり、アクティ
ブLOWであり、アドレスバスおよび関連する制御が無効
であることを示している。それはプロセッサバス120上
のアイドルサイクルを規定する。
★CBACK、キャッシュバースト肯定応答は、ICU出力で
あり、同期式であり、かつアクティブLOWである。この
出力は、バーストモードキャッシュアクセスがプロセッ
サバス120上で確立されたときはいつでもアサートされ
る。
★CBREQ、キャッシュバースト要求は、ICU入力であ
り、同期式であり、かつアクティブLOWである。この入
力は、プロセッサバス上でバーストモードキャッシュア
クセスを確立するためにかつバーストモードキャッシュ
アクセスの間次の伝送を要求するために使用される。こ
の信号は後で説明される★DREQまたは★RIEQと比べる
と、サイクルの終わりに有効になり得る。
★CERR、キャッシュエラーは、ICU出力であり、同期
式であり、かつアクティブLOWである。この出力は、現
在のキャッシュアクセスの間にエラーが起こったことを
示す。
★CRDY、キャッシュ作動可能は、ICU出力であり、同
期式であり、かつアクティブLOWである。プロセッサバ
スキャッシュ読出しに対し、この出力は、有効なデータ
がキャッシュバス上にあることを示す。キャッシュ書込
みに対し、それは、データがもはやキャッシュ上では駆
動される必要がないことを示す。
CREQT0−CREQT1、キャッシュ要求タイプは、同期入力
である。この信号は、次のように、プロセッサバス上で
キャッシュアクセス用アドレス空間を特定する。
データキャッシュ使用 CREQT1 CREQT0 意味 0 0 メモリアクセス 0 1 入力/出力アクセス 1 x コプロセッサ転送 (ICUにより無視される) 命令キャッシュ使用 CREQT1 CREQT0 意味 x 0 メモリアクセス x 1 命令リードオンリメモリ アクセス 命令キャッシュ使用に対し、CREQT1は特殊機能を有す
る。それはRESETの間サンプリングされ、サンプリング
された値がHIGHであれば、ICUは命令ROMアクセスに応答
する。サンプリングされた値がLOWであれば、ICUは命令
ROMアクセスに応答しない。RESET後に、CREQT1入力は命
令キャッシュ使用のために無視される。
★CSEL、チップ選択は、同期入力であり、アクティブ
LOWである。★CSEL入力の際のアクティブレベルがプロ
セッサーバスキャッシュ命令アクセス用ウェルICUを選
択する。それは通常のメモリアクセスにおいて使用され
ない。★CSEL入力は、後で説明されるICUの一部である
チップ選択マッピングレジスタを介して不能化され得
る。★CSELが可能化されかつアサートされない場合、IC
Uはプロセッサーバスキャッシュ命令アクセスに応答し
ない。
★CSM、メモリアクセスのためのチップ選択は、同期I
CU入力であり、アクティブLOWである。★CSM入力の際の
アクティブレベルはメモリアクセスのためのICUを選択
する。それはキャッシュ拡張およびキャッシュアドレス
空間選択のために使用され得る。★CSM入力は、チップ
選択マッピングレジスタを介して可能化され得る。★CS
Mが可能化される場合、★CSMはアサートされかつアドレ
スがチップ選択マッピングレジスタ(後で詳細に説明さ
れる)の予め選択されたフィールドにおいて対応する可
能化されたビット線と一致する場合にのみ、ICUはメモ
リアクセスに応答する。
CB0−CB31、キャッシュバスは、両方向であり、同期式
であり、かつ3状態である。キャッシュバスはプロセッ
サバスでICUへおよびそこから命令およびまたはデータ
を転送する。
★DREQ、データ要求は、同期ICU入力であり、アクテ
ィブLOWである。この入力はプロセッサバス上でデータ
アクセスを要求する。それがアクティブである場合、ア
クセスのためのアドレスはアドレスバス上に現われる。
CIUの命令キャッシュ使用のために、★DREQはプロセッ
サ−バスキャッシュ命令転送のために使用される。
★IREQ、命令要求は、同期ICU入力であり、アクティ
ブLOWである。この入力はプロセッサバス上で命令キャ
ッシュアクセスを要求する。それがアクティブである場
合、アクセスのためのアドレスがアドレスバス上に現わ
れる。この入力は、ICUのリセット動作の間特殊機能を
有する。それはRESET(後で説明される)がアクティブ
である場合、SYSCLKの立上がり端縁によりサンプリング
される。最後にサンプリングされた値はICU動作をデー
タキャッシュ(★IREQ LOW)として、または命令キャッ
シュ(★IREQ HIGH)として決定する。データキャッシ
ュ動作に対し、★IREQはLOWにつながれるべきである
(それは通常の動作の間は無視される)。命令キャッシ
ュ動作に対し、それはプロセッサ★IREQ出力に接続され
るべきであり、それはRESETの間アサートが解除され
る。プロセッサがRESETの間テストモードに置かれる場
合、外部論理はIREQ HIGHを駆動すべきであることに注
目されたい。
★LOCK、ロックは、ICU入力であり、同期式であり、
かつアクティブLOWである。この入力は、プロセッサキ
ャッシュアクセスがインターロックされた変数に対する
ことを示している。ICUは、後で詳細に明らかにされる
インターロック機能に関して説明される特殊な方法でこ
のアクセスを取扱う。
MSERR、マスタ/スレーブエラーは、同期式であり、I
CU出力であり、アクティブHIGHである。この出力は、内
部でオフチップドライバに与えられる信号とのICU出力
の比較の結果を示している。可能化されたドライバのい
ずれに対しても相違が存在する場合には、この信号はア
サートされる。
OPT0−OPT2、オプション制御は、同期ICU入力であ
る。これらの信号は、キャッシュアクセスと関連するオ
プション制御ビットを反映する。それらは、データの長
さばかりでなく特殊アクセス情報を特定するために使用
される。これらの信号の翻訳は、データまたは命令キャ
ッシュとしてのICUの使用に依存している。これらの入
力のコード化および翻訳は、この発明の好ましい実施例
によれば、次のとおりである。
OPT入力は、DREQT1がHIGHである(アクセスなしとし
て取扱われる)場合は無視される。コード100および101
は、DREQT0がHIGHである場合にはアクセスなしとして取
扱われる。コード100はデータとして命令ROMを読出すた
めに使用される。データキャッシュは、後で説明される
モードレジスタにおけるROM可能化ビットがHIGHである
場合のみこのコードに応答する。この場合、要求はキャ
ッシュ不能アクセスとして取扱われる。コード101は、I
CUプロセッサーバスキャッシュ命令のためのオペランド
転送を示す。この発明の好ましい実施例によれば、コー
ド110は特殊デバッグモジュールアクセスのために使用
される。データキャッシュが4サイクルの間★CRDY HIG
Hで応答し、次に、★CRDYが1サイクルの間アサートさ
れる。
★PCA、パイプライン化キャッシュアクセスは、同期I
CU入力であり、アクティブLOWである。データキャッシ
ュに対する★DREQまたは命令キャッシュに対する★RIEQ
がアクティブでない場合、この入力はキャッシュアクセ
スが別な進行中のキャッシュアクセスとともにパイプラ
イン化されることを示す。パイプライン化アクセスは、
第1のアクセスが完了するまで完了し得ない。第1のア
クセスの完了は、データキャッシュに対する★DREQおよ
び命令キャッシュに対する★IREQのアサートにより信号
が送られる。
★RESET、リセットは、非同期入力であり、アクティ
ブLOWである。この入力はICUをリセットする。
R/★W、読出し/書込みは、同期入力である。この入
力は、キャッシュアクセスがICUからプロセッサへの転
送であるか(R/★Wハイ)、またはプロセッサからICU
への転送であるか(R/★Wロー)を示す。
SUP/★US、スーパーバイザ/ユーザモードは、同期入
力である。この入力は、アクセスの間例示のプロセッサ
のプログラムモード(スーパバイザモードまたはユーザ
モード)を示す。ICU内部レジスタとキャッシュ命令の
実行とはユーザモードアクセスから保護される。
SYSCLK、システムクロックは、ICUの動作周波数で
の、外部クロック入力である。
★TEST、テストモードは、非同期入力であり、アクテ
ィブLOWである。この入力はアクティブである場合、ICU
はテストモードである。すべての出力および両方向ライ
ンは、MSERRを除いて、高インピーダンス状態へと強制
される。
WREP、置換のための方向は、同期入力である。この入
力は、キャッシュミスの場合に置換のための方向番号を
強制する。それは有効なキャッシュアクセスの最初のサ
イクルの間サンプリングされる。二方向セット連想編成
におけるミス(置換モードが外部である場合)は、WREP
により決定されるように置換を引き起こす。すなわち、
WREP LOWは置換されるべき方向0を強制し、WREP HIGH
は置換されるべき方向1を強制する。
次に、第2図を引き続き参照しながら、メモリバスイ
ンターフェイスが説明される。メモリバスは次のものを
含むことが見られ得る。
BSTC0−BSTC1、両方向であり、同期式であり、かつ3
状態である、ブロックステータス制御。これらの信号は
キャッシュブロックステータス情報を検査および更新す
るために使用される。メモリバス命令による必要とされ
る場合、ICUはそれらを用いて供給されるアドレスと関
連するブロックステータスビットを示す。これらの信号
はまた、書込ブロックステータス命令のためにメモリバ
スからブロックステータスを供給するために使用され
る。上記機能の両方に対するこの信号のコード化は次の
とおりである。
BSTC1 BSTC0 意 味 0 0 排他的で修正されない 0 1 排他的で修正される 1 0 共有され修正されない 1 1 共有され修正される ★DI、データ介入は、同期出力であり、3状態であ
り、かつアクティブLOWである。この出力はメモリバス
上のデータ介入動作の支持のために使用される。データ
介入動作は、いくつかのマルチプロセッサ構成において
は、適当なキャッシュから(メモリに対立するものとし
て)変数の最新のバージョンを供給するために使用され
る。ICUマスタは、メモリバス読出アクセスのアドレス
サイクルの間★DI信号をプリチャージする。次にそれは
それを3状態モードに置く。バスマスタではないICU
は、それらがデータ介入で応答する場合には、★DI信号
をディスチャージする。
★GRT、メモリバス許容は、同期入力であり、アクテ
ィブLOWである。この入力は、メモリバスがICU用途のた
めに認められる信号を送る。
★HIT、ヒットは、両方向であり、同期式であり3状
態であり、かつアクティブLOWである。この信号は出力
のみの信号であるかまたは入力/出力信号であるかのい
ずれかになるようにプログラムされ得る。出力として、
それはヒット指示のために用いられる。それは、メモリ
バス上に存在するアドレスのためにタグバッファにおい
てヒットが検出される場合にアサートされる。それはま
た、メモリバス命令のいくつかにおいて、ワードまたは
ブロックの妥当性を示すために使用される。
入力/出力信号になるようにプログラムされる場合、
それは、上記出力機能に加えて、他のどんなキャッシュ
においてもヒットの検出のための信号として使用され得
る。ICUマスタは、アドレスサイクルの間★HIT信号をプ
リチャージし、次に、それを入力3状態モードに置く。
バスマスタではないICUは、ヒットがそれらのタグバッ
ファにおいて検出される場合のみ★HIT信号をディスチ
ャージする。
★MASTB、メモリアドレスストローブは、両方向であ
り、同期式であり、3状態であり、かつアクティブLOW
である。ICUはメモリバスマスタである場合、この信号
はICUにより断定され、バイトアドレスがメモリバス上
に存在することを示す。ICUがマスタでない場合、この
信号は、別なバスマスタからのバイトアドレスがメモリ
バス上に存在することを示す。命令キャッシュとデータ
キャッシュの両方がシステムに存在する場合には、2個
の★MASCB信号が利用可能であることに注目されたい。
2個の信号は、命令およびデータアクセス間を区別する
ために使用され得る。
★MBACK、メモリバースト肯定応答は、同期入力であ
り、アクティブLOWである。この入力は、バーストモー
ドキャッシュアクセスがメモリバス上で確立されたとき
はいつでもアクティグである。
MBP0−MBP3、メモリバイトパリティは、両方向であ
り、同期式であり、かつ3状態である。これは、メモリ
バス上の伝送のためのバイトパリティバスである。偶数
または奇数パリティが特定され得る。MBP0はMEMAD0−ME
MAD7に対するバイトパリティであり、MBP1はMEMAD8−ME
MAD15に対するバイトパリティであり、以下同様であ
る。ICUからメモリへの転送に対し、ICUはパリティを発
生させる。ICUへの転送のために、それはバイトパリテ
ィをチェックする。パリティエラーが検出される場合、
かつデータがプロセッサバス上で転送されるべきである
場合、★CERR信号がアサートされる。データがプロセッ
サへ転送される必要がない(たとえばブロック再ロー
ド)場合、ステータスレジスタ(後で説明される)にエ
ラービットがセットされ、データは無視される。パリテ
ィ発生および検査は不能化され得る。パリティ発生およ
びチェックが不能化される場合、メモリバスデータタイ
ミングばリラックスされる。
★MBREQ、メモリバースト要求は、両方向であり、同
期式であり、3状態であり、かつアクティブLOWであ
る。この信号は、メモリバス上でのバーストモードアク
セスを確立するためにかつバーストモードアクセスの間
次の転送を要求するために使用される。ICUがバスマス
タである場合、この信号は出力である。ICUがマスタで
ない場合、それは入力であり、データ一貫性動作のため
にICUにより使用される。
MDLN0−MDLN1、メモリデータ長は、両方向であり、同
期式であり、かつ3状態である。これらの信号はメモリ
バスデータアクセスの間データの長さを反映する。それ
らは命令アクセスの間無視される。データキャッシュ使
用では、ICUは8ビット転送、16ビット転送および32ビ
ット転送を支持する。これらの信号のコード化は、この
発明の好ましい実施例によれば、次のとおりである。
MDLN1 MDLN0 意 味 0 0 32ビットアクセス 0 1 8ビットアクセス 1 0 16ビットアクセス 1 1 無効 MDLN0およびMDLN1コード化はこの発明の例示の実施例
とともに使用されるプロセッサに対するOPT0およびOPT1
に対応することが注目されるべきである。
MEMAD0−MEMAD31、メモリアドレス/データバスは、
両方向であり、同期式であり、かつ3状態である。メモ
リバスは、メモリインターフェイスのために使用される
多重化アドレス/データバスである。★MASTBがアサー
トされる場合、このバスはメモリバスアクセスのバイト
アドレスを保持する。ICUがバスマスタである場合、そ
れがアドレスを出力する。ICUがバスマスタでない場
合、バスは入力であり、アドレスはその内部使用の間IC
Uによりラッチされる。MASTBが立上げられない場合、メ
モリバスはICUへおよびそこからデータを転送するため
に使用される。
★MERR、メモリエラーは、同期ICU入力であり、アク
ティブLOWである。この入力は、エラーが現在のメモリ
アクセスの間に起こったことを示す。LCUもデータ一貫
性動作のためにこの信号を使用する。
★MLOCK、メモリロックは、両方向であり、同期式で
あり、3状態であり、かつアクティブLOWである。この
信号は、メモリアクセスがインターロックされたアクセ
スであることを示す。ICUマスタは、インターロックさ
れたアクセスがメモリバス上に存在する場合にはこの出
力をアサートする。ICUがバスマスタでない場合、この
信号は入力として使用される。★MLOCKをアサートして
書込アクセスの間に一致が見い出される場合、関連する
ワード線は無効にされる。この特徴は、インターロック
変数のキャッシングを可能化する機構に対し使用され
る。
★MRDY、メモリ作動可能は、両方向であり、同期式で
あり、かつアクティブLOWである。ICUがバスマスタであ
る場合、この信号は入力として使用される。メモリバス
読出しで、この入力は、有効なデータがメモリバス上に
存在することを示す。メモリバス書込みで、それは、デ
ータがもはやメモリバス上では駆動される必要がないこ
とを示す。ICUがバスマスタでない場合、この信号はデ
ータ一貫性動作のための入力として使用される。それ
は、データ介入動作およびメモリバス特殊動作のための
出力として使用される。ICUは★MRDYをアサートして、
有効なデータがメモリバス上に存在することを示す。
MREQT0−MREQRT1、メモリ要求タイプは、両方向であ
り、同期式でありかつ3状態である。これらの信号はメ
モリバス上でのアクセスのためのアドレス空間を特定す
る。ICUがバスマスタである場合、それはこれらの信号
を出力として使用する。それがバスマスタでない場合、
MREQT信号はデータ一貫性動作のための入力として使用
される。コード化は、この発明の好ましい実施例によれ
ば、次のとおりである。
MREQT1 MREQT0 意 味 0 0 データメモリアクセス 0 1 データ入力/出力アクセス 1 0 命令メモリアクセス 1 1 命令ROMアクセス ICUがバスマスタでない場合、MREQT信号もまたICUの
ためのメモリバスキャッシュ命令を特定するために使用
される(MRW信号とともに)。
MRW0−MRW1、メモリ読出し書込みは、両方向であり、
同期式でありかつ3状態である。これらの信号は、メモ
リバス上での読出および書込動作のタイプを特定するた
めに使用される。ICUはバスマスタである場合、それは
所要の動作を示すためにこれらの信号を用いる。ICUが
バスマスタでない場合、これらの信号は入力であり、デ
ータ一貫性の動作のために使用される。これらの信号の
コード化は、この発明の好ましい実施例によれば、次の
とおりである。
MRW1 MRW0 意 味 0 0 書込み 0 1 読出し 1 0 書込同報通信 1 1 修正のための読出し 上で言及された読出および書込動作はICUに関連して
おり、たとえば読出しはメモリからICUへ至る。
ICUがバスマスタでない場合、MRW信号もまたICUのた
めにメモリバスキャッシュ命令を特定するために使用さ
れる(MREQT信号とともに)。ここで説明されるICUとと
もに使用するのに適するメモリバス命令セットの詳細な
説明は、後で詳細に明らかにされるであろう。
MS/★MU、メモリスーパバイザ/ユーザモードは、同
期ICU出力であり、3状態である。この出力はメモリア
クセスの間プロセッサのプログラムモード(スーパバイ
ザモードまたはユーザモード)を示す。ICUは、適当な
トランザクションの間、プロセッサバス上に存在するSU
P/★US値をMS/★MU値へとメモリで転送する。
★REQ、メモリバス要求は、同期ICU出力であり、アク
ティブLOWである。この出力はメモリバスを要求するた
めにICUにより使用される。
★VSI、有効なステータスまたは命令は、同期でありI
CU入力であり、アクティブLOWである。ICUがバススレー
ブである場合、アサートされた★VSIはメモリバスキャ
ッシュ命令アドレスを示す。ICUがバスマスタでありか
つそれが再ロード動作に対し読出要求を出す場合、★VI
Sのアサートは特殊書込ブロックステータス命令が実行
されるべきであることを示す。適当なメモリバスキャッ
シュ命令セットと★VSIの使用との詳細な説明は、後で
明らかにされるであろう。
第2図のピンアウト図を参照しながら新規のICUへの
およびそこからの種々の入力および出力を説明してきた
ので、ICUの機能編成の詳細な説明を参照しながら新規
の方法および装置の完全な理解がなされ得る。この説明
はいくつかの部分で明らかにされるであろう。まず、計
算システムへ、特にこの発明の効用および操作可能性を
説明するために使用される具体例のRISCシステムへどの
ようにしてICUが適合するかに関する大要が説明され
る。第2に、ICUを介するデータの流れが詳細に説明さ
れる。第3に、この発明を実現するのに適するレジスタ
の組のレジスタレベル説明が明らかにされる。適当なキ
ャッシュ命令セットと、データフォーマットおよび取扱
いの説明と、キャッシュアクセスおよび先取り動作も明
らかにされるであろう。
ICU書込バッファの用途、初期化およびリセット動作
に関するさらなる詳細は、後でも同様に説明されるであ
ろう。
最後に、ICUおよび特殊ICUインターロック機能による
マルチプロセッサ支持がこの発明の詳細な説明を完全に
するために説明されるであろう。
先に示されたように、新規のICUはSIPを含むRISCアー
キテクチャに関連して説明される。この発明の好ましい
実施例はこのアーキテクチャを支持するような方法で説
明される。たとえば非RISCプロセッサを支持するため
に、この発明の精神の範囲から逸脱することなしに、新
規のISCの好ましい実施例に対する修正がなされ得るこ
とを当業者は容易に見取れるであろう。したがって、後
に続く説明は、例示のためのみに明らかにされる。
ICUの好ましい実施例の核心は、関連するタグおよび
有効なアレイを有する8kバイトメモリアレイである。こ
のアレイは、1タグあたり4ワード(ブロックサイズ=
4ワード)と1ワードあたりの有効なビットを有する両
方向セット連想キャッシュとして編成される。この基本
的編成もまたフレキシブルな再ロード機構ばかりでな
く、直接マッピングされたキャッシュ、変数ブロックお
よびサブブロックサイズを支持する。ブロックステータ
スアレイとLRUアレイも組入れられる。それはキャッシ
ュ置換と、データをキャッシュにロックすることと、デ
ータ一貫性ポリシーのために使用される。ICUは異なる
キャッシュポリシー、アルゴリズムおよび命令のために
すべての制御論理を含んでいる。特殊レジスタがプログ
ラム可能オプション選択、キャッシュ命令実現およびス
テータス報告のために実現される。
キャッシュポリシーは、プログラム可能オプションを
用いることにより選択され得る。キャッシュ書込ポリシ
ーは、アクセスごとにライトスルー、コピーバックまた
はフレキシブルとしてプログラムされ得る。書込割当オ
プションまたは非書込割当オプションが選択され得る。
書込アクセスの有効な実現のために4ワード書込バッフ
ァが組入れられる。置換アルゴリズムはLRU、ランダム
または外部としてプログラムされ得る。フレキシブルな
先取りポリシーが選択され得る。リードスルーオプショ
ンは可能化され得る。有効な先取りおよび読出動作を支
持するために4ワード読出バッファが組入れられる。
マルチプロセッサ支持ポリシーはシステムに適合させ
られ得る。マルチプロセッサ支持のレベルは広範囲な所
有権機構を介して簡単なソフトウェア制御の編成から変
えられ得る。バスウォッチ能力は可能化または不能化さ
れ得る。所有権アルゴリズムは所要の機構を支持するた
めに制御され得る。インターロック変数をキャッシュす
ることが可能化または不能化され得る。
2個のチップ選択入力およびチップ選択マッピングレ
ジスタが容易なキャッシュ拡張ばかりでなく多重キャッ
シュ編成を可能にする。再ロードサイズのような適当な
アクセス制御オプションを選択し、アドレスと、バース
トと、ラップアラウンドを開始および停止することによ
り、再ロード機能システムに適合させられ得る。
再び、ICUの好ましい実施例は、説明される例示の具
体例におけるRISCプロセッサの同一周波数で、すなわ
ち、可能な限り高い周波数を有する25MHzの名目周波数
で動作する。それは、最初のヒットアクセスに対しては
2サイクルの、かつ次のバーストモードヒットアクセス
またはパイプラインヒットアクセスに対しては1サイク
ルのアクセス時間を達成する。
1個はRISCプロセッサを含み、かつ2個はICU用であ
る(一方は命令キャッシュに対するものでありかつ他方
はデータキャッシュに対するものである)、3IC構成
が、16kバイトのキャッシュを有する非常に高性能のキ
ャッシュシステムである。
第1図を参照しながら上で示されたように、ICUは2
個のインターフェイスバス、すなわちプロセッサバスと
メモリバスを有する。それはインターフェイス論理なし
でRISCプロセッサに直接に接続され得る。ICUキャッシ
ュバスはそれぞれデータまたは命令キャッシュに対し、
プロセッサのデータまたは命令バスに接続される。パイ
プライン化アクセスおよびバーストモードアクセスはプ
ロセッサチャネルの最大限の利用のために支持される。
メモリバスはメモリと、他のプロセッサと、システムバ
スとに対する別々のインターフェイスである。それはバ
ーストモードアクセスに対する支持を有する多重化アド
レスおよびデータバスである。それはまた、マルチプロ
セッサ支持機能を組入れている。共有されるメモリマル
チプロセッサ環境においては、メモリバスは共有される
マルチプロセッサバスとして有効に使用され得る。1個
のプロセッサシステムに対し、それはシステムバスとし
てまたはローカルバスとして使用され得る。
ICUの好ましい実施例は、故障許容支持のための特殊
ハードウェアを備えている。それはマスタ/スレーブ検
査およびメモリバス上のバイトパリティ発生および検査
を支持する。マスタ/スレーブ検査に対して、2個また
はそれ以上のICUがマスタの出力を検査する1個または
それ以上のキャッシュ(スレーブ)と並列に接続され
る。バイトパリティ発生および検査は信頼できるバス転
送のためにメモリバス上で使用され得る。
この発明の好ましい実施例は、上で示されたように、
CMOS技術において製造され、かつ1.5Wの最大電力散逸を
有する。
ICU内部データの流れ編成が第3図に示されている。
次の説明はこのデータの流れ図における機能構成要素に
対し言及している。ICUは3つの主機能ユニット、すな
わち各々第3図に描かれている、プロセッサバスユニッ
トと、メモリバスユニットと、キャッシュユニットとに
分割される。後に続く説明は、いくつの目的にも使用さ
れる種々のワードの特殊ビット場所およびフィールドを
時々参照するであろう。当業者は、これらの特別な参照
が制限するように意図されたのではなく、所望の応用に
適するように修正され得ることを容易に認めるであろ
う。この発明の実行できる例示の好ましい実施例を提示
する際に明瞭化のためのみに特別な参照がなされる。
プロセッサバスユニットはすべてのプロセッサバス活
動を制御する。それはすべてのRISC/SIPチャネルプロト
コル、すなわち単一プロトコル、バーストプロトコルお
よびパイプライン化プロトコルを支持する。それは、各
々後で直接に説明される、アドレス増分器と、データシ
フト器と、プロセッサバス制御とを組入れる。アドレス
増分器(AI)はアドレスバス入力をラッチする。それは
各サイクルのたびに増分され得る。AI出力はキャッシュ
アクセスのためのアドレスである。AIは第3図にユニッ
ト301として示されている。
データシフト器(DSH)はデータ整列のために使用さ
れる。それはバイトおよびハーフワードをシフトし、キ
ャッシュ書込アクセスのためにデータを保持する。それ
はまた、バイトおよび半ワード読出しの場合に適当なバ
イトおよびハーフワードシフト動作のために使用され
る。DSHは第3図はユニット302として示されている。
プロセッサバス制御(PBC)は異なるプロセッサバス
動作を制御する。PCは第3図にユニット303として示さ
れている。
メモリバスユニットはメモリバス活動を制御する。そ
れは、各々後ですぐ説明される、書込バッファと、メモ
リアドレス論理と、メモリ読出バッファと、メモリバス
制御とを組入れる。
この発明の好ましい実施例において使用される書込バ
ッファ(WB)は、2個の4ワード先入れ先出し(FIFO)
バッファ(1個はアドレスに対するものであり、1個は
データに対するものである)を含む。WBはすべてのICU
書込動作をバッファし得る。ライトスルー動作に対し、
それは4バイトまでのハーフワードまたはワード書込み
をバッファする。コピーバック動作のために、それは4
ワードブロックをバッファする。WBは第3図にユニット
304として示されている。
メモリアドレス論理(MAL)は2個のアドレス増幅器
を含んでいる。第1のものは、バスからICUへの動作の
ためにメモリバスアドレスをラッチおよび増分する。第
2のものは、ICUにより初期化される読出動作のために
アドレスをラッチおよび増分する。MALは第3図にユニ
ット305として示されている。
メモリ読出しバッファ(MRB)は4ワードデータバッ
ファである。それは、キャッシュが更新動作のために利
用可能になるまで、メモリバスからのデータをバッファ
する。MRBは、先取りが可能化される場合先取りバッフ
ァとして使用される。MRBは第3図にユニット306として
示されている。
最後に、メモリバス動作を制御するメモリバス制御
(MBC)は第3図にユニット307として示されている。
キャッシュユニットはすべてのキャッシュ機能を実施
する。それは、各々すぐ後で説明される、メモリアレイ
と、タグアレイと、有効なアレイと、ブロックステータ
スアレイと、LRUアレイと、特殊レジスタと、キャッシ
ュ制御とを組入れる。
メモリアレイはキャッシュされた命令またはデータの
ための64kビット記憶アレイである。それは両方向の102
4ワードとして編成される。この発明の好ましい実施例
によれば、アドレスのビット11−2を用いて、読出動作
のために両方向が同時にアクセスされる。適当なワード
はタグアレイからのヒット信号に従って選択される。タ
グアクセスが完了されかつヒット信号が発生された後
で、書込動作のためにアレイにおける正しいワードが書
込まれる。メモリアレイは第3図にユニット310として
示されている。
タグアレイはキャッシュタグを両方向セット連想編成
でストアする。各方向は256×20ビットとして編成され
る。各タグは4個の連続するキャッシュされたワードの
ブロックに対応する。各キャッシュアクセスに対し、ア
ドレスのビット11−4を用いて2個のタグが同時にアク
セスされる。タグはアドレスのビット31−12(この発明
の一実施例において)と比べられる。ヒット信号は、比
較結果および構成ビットから発生される。タグアレイ
は、ミスが発生しかつキャッシュブロックが割当てられ
るときはいつでも書込まれる。タグはアドレスのビット
11−4および置換アルゴリズムに従って選択される。ア
ドレスビット31−12はタグアレイに書込まれる。タグア
レイは第3図にユニット311として示されている。
有効なアレイ、すなわち第3図のユニット312は、各
キャッシュされたワードに対す有効なビットをストアす
る2kビットアレイである。それは2個の1024×1アレイ
として編成される。有効なビットは、それがキャッシュ
へと書込まれるときに各ワードに対し設定される。有効
なビットはアドレスビット11−2(メモリアレイである
として)および一致する方向により選択される。両方向
に対応する2個の有効なビットはキャッシュアクセスご
とにチェックされる。適当な有効ビットが設定される場
合にのみ、ヒット信号が発生される。
ブロックステータスアレイ、すなわち第3図のユニッ
ト312は、タグキャッシュブロックあたり3個のブロッ
クステータスビットを組入れる1536ビットアレイであ
る。それは2個の256×3アレイ(これはタグアレイ編
成に対応する)として編成される。3個のビットは、修
正されたビット、共有されたビット、およびロックされ
たビットである。修正されたビットは、ブロックが修正
されかつ置換の前にメモリへ逆に書込まれるべきである
ことを示す。それはコピーバック動作およびデータ一貫
性動作のために使用される。共有されるビットは、ブロ
ックが共有されることを示している。それはデータ一貫
性動作のために使用される。ロックされたビットは、ブ
ロックがロックされかつ置換され得ないことを示す。そ
れは重要なデータまたは命令をキャッシュにロックする
ために使用される。
LRUアレイ、すなわち第3図のユニット314は、LRUビ
ットをストアする256ビットアレイである。それは256×
1アレイとして編成される。各LRUビットは1組の2個
のタグに対応する。LRUアレイは、最も古くに使用され
た置換アルゴリズムが選択される場合に使用される。適
当なLRUビットは、或る組における2個のブロックのう
ち最も古くに使用されたブロックを反映するために更新
される。必要とされると、LRUビットはどちらのブロッ
クがその組から置換されるかを決定する。
第3図のユニット315として示される特殊レジスタブ
ロックは、ICUのすべての特殊レジスタを組入れる。そ
れらは、ICUオプションをプログラムするために、特殊
動作を制御するために、かつステータス情報を保持する
ために使用される。
最後に、キャッシュ制御ブロック、すなわち第3図の
ユニット316は、キャッシュ動作のための制御論理を含
んでいる。
第3図を参照しながら新規のICUを介するデータの流
れを明らかにしかつ説明したが、ここで注意をICUのデ
ータの流れと制御を支持するためのレジスタ構造に向け
る。
ICUの好ましい実施例は8個の特殊レジスタを備えて
いる。これらのレジスタはプログラム可能オプションを
選択し、キャッシュ制御動作を支持し、かつキャッシュ
ステータス情報を示す。各レジスタは、プロセッサバス
またはメモリバスを介してプロセッサにより読出されま
たは書込まれ得る。バスのうちの1個上での適当なキャ
ッシュ命令プロトコルを用いてICUへと読出レジスタま
たは書込レジスタキャッシュ命令が転送される。プロセ
ッサーバス命令では、レジスタ数はopコード(opcode)
の3個の下位ビットにより特定される。命令転送プロト
コルおよびICU応答は、それぞれモッドb(Modb)レジ
スタにおける読出レジスタ制御および命令転送プロトコ
ル制御により制御される。メモリ−バス命令に対し、レ
ジスタ数はアドレスの3個の下位ビットにより特定され
る。これらの例示のプロトコルおよび応答の詳細な説明
が後で明らかにされるであろう。
プロセッサ−バスアクセスで、すべてのICU特殊レジ
スタが保護される。それらは、SUB/★US入力がHIGHであ
る場合のみアクセスされ得る。ユーザモードアクセスは
実行されない。★CERR応答は無効のユーザモードアクセ
スの信号を送る。レジスタはメモリバスキャッシュ命令
に対し保護される。
この発明の好ましい実施例によれば、各レジスタは次
のような番号に指定される。レジスタ番号 レジスタ名 0 チップ選択マッピング 1 命令 2 アドレスオペランド 3 カウント 4 エラーアドレス 5 ステータス 6 モッドa 7 モッドb 各レジスタの一般的機能のみが後で説明されるが、と
いうのは、特有に依存する目的のために特殊なビット割
当てがなされ得ることを当業者が認めるであろうからで
ある。
チップ選択マッピングレジスタは特殊レジスタ0であ
る。それはICUチップ選択機能に対するアドレスと条件
を特定する。ICUは2つの独立したチップ選択機能、す
なわち通常のキャッシュアクセスに対する機能とキャッ
シュ命令アクセスに対する機能とを有している。
通常のキャッシュアクセスで、チップ選択機能はキャ
ッシュ拡張と、キャッシュアドレス空間割当てと、多数
キャッシュ構成とのために使用され得る。この発明の好
ましい実施例においては、外部チップ選択ハードウェア
なしに32個までのICU(16個の命令キャッシュおよび16
個のデータキャッシュ)が使用され得る。メモリアクセ
ス(MA)選択はまた、モッドaレジスタの★CSM入力と
メモリビット可能化フィールドとにより影響を及ぼされ
る。★CSM入力が可能化される場合、それはメモリアク
セス可能化するためにアサートされなければならない。
★CSM入力が不能化される場合、それは無視される。メ
モリビット可能化フィールドは、適当なアドレスビット
のチップ選択メモリレジスタにおける対応する(MA)フ
ィールドビットに対する比較を選択的に可能化し得る。
ビットが比較のために不能化される場合、それは無視さ
れる。すべてのビットが不能化される場合、一致が強制
される。★CSMが可能化される場合、サービスされるべ
きメモリアクセスの間それがアサートされ、MAフィール
ド比較が一致すべきことに注目されたい。
キャッシュ命令アクセスで、チップ選択機能はアクセ
スのために適当なICUを選択するために使用される。★C
SELがアサートされかつ可能化される場合、またはアド
レス入力A31−A14およびCREQT0がチップ選択マッピング
レジスタにおけるキャッシュ命令アドレスおよびキャッ
シュ命令アドレス空間フィールドと一致する場合、キャ
ッシュ命令アクセスが可能化される。第2の場合におい
て、一致しているすべてのキャッシュが選択される。命
令範囲が多数キャッシュである場合、すべての選択され
たキャッシュが応答する。命令範囲が1個のキャッシュ
である場合、アドレス入力A13−A8がチップ選択マッピ
ングレジスタの特殊キャッシュ番号フィールドに一致す
るキャッシュのみが応答する。
初期化の間、★CSEL入力は所与のICUのチップ選択マ
ッピングレジスタをプログラムするために使用される。
典型的な構成において、異なるアドレスビットが異なる
ICUの★CSELに接続され得る。★CSELはアサートされか
つ可能化される場合、ICUはデータアクセスをキャッシ
ュ命令アクセスとして取扱う。チップ選択マッピングレ
ジスタがプログラムされた後で、★CSEL入力は不能化さ
れ得て、さらに、チップ選択マッピングレジスタにより
特定されるマッピングが適用される。
命令レジスタは特殊レジスタ1である。それはCIUへ
の命令を特定するために使用される。命令レジスタは他
のいかなる特殊レジスタとしても読出しまたは書込みさ
れ得るが、それはまた有効なキャッシュ命令に対し自動
的にロードされる。有効なキャッシュ命令は、★CSEL入
力がアサートされかつ可能化される場合、またはアドレ
ス入力A31−A14およびCREQT0がチップ選択マッピングレ
ジスタにおけるキャッシュ命令アドレスおよびキャッシ
ュ命令アドレス空間フィールドに一致する場合に検出さ
れる。これらの場合、命令はアドレス入力A7−A0からコ
ピーされる。
命令転送プロトコルの間のプロセッサ中断の場合、ま
たは多数キャッシュ命令が中断される場合、命令レジス
タはICUの状態を保管および復元するための特殊レジス
タとしてアクセスされ得る。それが特殊レジスタとして
アクセスされる場合、読出または書込レジスタキャッシ
ュ命令がICUに転送される。命令およびオペランドレジ
スタの所要の古い内容を破壊することなしに、読出レジ
スタ命令および任意のオペランドをラッチすることを可
能にするためにシャドウレジスタが組入れられる。シャ
ドウ命令レジスタは最初に命令がロードされる。読出レ
ジスタ命令および書込レジスタ命令を除くすべての命令
に対し、命令実行が開始されるときに命令レジスタは更
新される。読出レジスタ命令および書込レジスタ命令
で、命令レジスタに他の有効な命令が存在しない場合の
みに命令レジスタは更新される。有効な命令が命令レジ
スタに存在する場合、命令およびオペランドレジスタに
影響を及ぼすことなしに読出レジスタ命令が実行され
る。この特徴はまた、キャッシュ命令の実行に影響を及
ぼすことなしにICUのステータスを検査するために使用
される。
すべての所要のオペランドが有効であるときはいつで
も、命令がICUにより実行される。具体例の命令、所要
のオペランド、およびキャッシュ命令アクセスの詳細な
説明が後で明らかにされるであろう。
オペランドレジスタは特殊レジスタ2である。それは
或るICU命令に対しオペランドを特定する。レジスタ
は、オペランドレジスタの値の妥当性を示すためのビッ
ト(OVビット)を含む。読出レジスタ命令および書込レ
ジスタ命令の正しい実行のために、シャドウオペランド
レジスタがICUに組入れられる。シャドウオペランドレ
ジスタは最初にオペランドがロードされる。読出レジス
タ命令および書込レジスタ命令を除くすべての命令で、
妥当性ビットがリセットされる場合にオペランドレジス
タが更新される。OVビットがセットされる場合、ICUはO
Vビットがリセットされる(先の命令の完了)まで★CRD
Y応答を遅延し、次にレジスタにロードする。読出レジ
スタ命令および書込レジスタ命令に対し、命令レジスタ
に他の有効な命令が存在しない場合のみオペランドレジ
スタは更新される。命令レジスタに有効な命令が存在す
る場合、命令およびオペランドに影響を及ぼすことなし
に読出レジスタ命令および書込レジスタ命令が実行され
る。これは、必要な場合に、オペランドを保管すること
および復元することを可能にする。必要とされる場合、
オペランドレジスタ読出レジスタ命令または書込レジス
タ命令を使用することにより読出しまたは書込みがなさ
れ得る。
カウントレジスタは特殊レジスタ3である。それは、
或るICU命令により動作し続けられるべきワードの数を
特定する。カウントレジスタは命令実行によっては影響
を及ぼされない。
例外アドレスレジスタは特殊レジスタ4である。それ
は、いくつかの例外と関連するアドレスを報告するため
に使用される。例外アドレスレジスタは例外アドレスが
ロードされる。例外の型はステータスレジスタにおいて
見い出され得る。
ステータスレジスタは特殊レジスタ5である。それ
は、ICUのステータスを報告するために、かつ読出タグ
キャッシュ命令および書込タグキャッシュ命令(後で説
明される)におけるICUとプロセッサの間の情報転送の
ために使用される。ビットは以下のために確保される。
すなわち、読出タグ命令に対するタグ値を報告し、かつ
書込タグ命令に対するタグを転送し、キャッシュされた
タグのための方向を報告し、ブロックに対する有効なビ
ットを報告し、かつ書込タグ命令に対する有効なビット
を転送し、ブロックに対するロックされたビットを報告
し、かつ書込タグ命令に対するロックされたビットを転
送し、ブロックに対する共有されたビットを報告し、か
つ書込タグ命令に対する共有されたビットを転送し、ブ
ロックに対する修正されたビットを報告し、かつ書込タ
グ命令に対する修正されたビットを転送し、キャッシュ
においてヒットが見い出されるかどうかを示し、さらに
保護違反、違法命令、メモリエラーおよびパリティエラ
ーを示すために取って置かれる。
モッドaレジスタは特殊レジスタ6である。それは、
種々のICUオプションを選択するために使用される。モ
ッドaレジスタは初期化の間リセットされる。
フィールドは、高範囲なキャッシュ動作を制御するた
めに、すべてのキャッシュ場所をロックするために、書
込バッファを不能化するために、さらにリードスルーオ
プションを不能化するために取って置かれる。
ROM可能化ビットはこのレジスタに含まれており、そ
れは命令キャッシュおよびデータキャッシュ使用のため
の異なる機能(“ROME"ビット)を有する。
このビットがセットされる場合の命令キャッシュ使用
で、ICUはROMアクセスに応答しかつそれらをキャッシュ
する。それが0である場合、ROMアクセスは無視され
る。
データキャッシュ使用でこのビットがセットされる場
合、データキャッシュは命令メモリアクセスのために可
能化される(データとして)。OPT入力が命令メモリア
クセスを示す場合、ICUはそれをキャッシュ不能トラン
ザクションとして取扱う。特定されたアドレスはメモリ
バス上で読出され、それをキャッシュにロードすること
なしプロセッサへと転送される。ROMEビットが0である
場合、ICUはこの型のトランザクションを無視する。
さらなるフィールドが以下のために設けられる。すな
わち、単一アクセスのために先取りオプションを可能化
し、アドレスラップアラウンドオプションを不能化し、
単一アクセスミスの場合にICU動作を制御し、バースト
モード読出要求がプロセッサにより終端される場合にIC
U動作を制御し、バーストアクセスのために先取りオプ
ションを可能化し、かつサブブロックサイズ(SBS)を
選択するために、設けられる。
キャッシュ再ロード動作の制御においてサブブロック
サイズが使用されることが理解されるべきである。単一
キャッシュミスに対しキャッシュへ再ロードされるべき
ワードの数は、規定されたサブブロックサイズと、アク
セスミスに対しICU動作を制御するフィールドにストア
される情報(たとえば、サブブロック境界上の開始およ
び停止のような制御情報)とにより規定される。SBSフ
ィールドはまた、バースト終了制御の際に、バーストモ
ード制御情報とともに使用される。ICUの固有のブロッ
クサイズは4ワードであり、1個のタグが4個のデータ
ワードと関連する。サブブロックサイズは1ワードか、
2ワードか、または4ワードのいずれかである。
なおさらに、モッドaレジスタは、メモリバスアドレ
ス転送の拡張を制御するためと、書込割当てオプション
がオンであるかどうかを示すためと、かつ広範囲に書込
ポリシーオプションを選択するためのフィールドを含ん
でいる。
この発明の好ましい実施例によれば、書込ポリシー
は、フレキシブル、ライトスルーまたはコピーバックで
ある。
ライトスルーポリシーが選択される場合、ICUへのす
べてのプロセッサ書込みまたメモリに書込まれる。コピ
ーバックが選択される場合、すべてのプロセッサ書込ヒ
ットとキャッシュと修正されたビットセットに書込まれ
る。ブロックは、ブロックが置換される場合にのみメモ
リへコピーバックされる。フレキシブルなポリシーが選
択される場合、ライトスルー動作またはコピーバック動
作がアクセス基準によりアクセスの場合に選択され得
る。アクセスのための書込ポリシーはまた、ASTC入力
と、ブロックステータスにより共有される情報と、モッ
ドbレジスタ(後で説明される)の書込みが共有された
ヒット制御フィールドおよびプロセッサステータスビッ
ト制御フィールドとにより影響を及ぼされる。
モッドaレジスタもまた、ブロック置換ポリシーを選
択するために使用されるフィールドを含んでいる。その
選択は直後マッピングされる編成のためには使用されな
い。両方向セット連想編成においては、ブロックの1個
が有効でない場合、それは新たなブロックに対し選択さ
れる。置換ポリシーオプションは、この発明の好ましい
実施例によれば、最も古くに使用された(LAR)か、ラ
ンダムか、または外部である。
LRUポリシーが選択される場合、LRUアレイは置換され
るべきブロックの選択のために使用される。LRUアレイ
は各キャッシュアクセスの場合に更新される。1ビット
が各セットと関連する。それは、或るセットにおける2
個のブロックから最も古くに使用されたブロックを指摘
する。
ランダムはポリシーが選択される場合、擬似ランダム
論理が置換されるべきブロックを選択する。その論理
は、クロックサイクルごとに状態を変える簡単なフリッ
プフロップであり、すべてのセットのために使用され
る。
外部ポリシーが選択される場合、WREP入力はプロセッ
サアドレスでラッチされる。ラッチされた値は置換され
たブロック選択を強制する。このオプションはキャッシ
ュテストおよびマルチレベルッキャッシュ編成のために
使用され得る。
最後に、モッドaレジスタは、キャッシュ編成(両方
向セット連想または直接マッピングされた)を選択する
ための、命令キャッシュまたはデータキャッシュとして
キャッシュ動作を選択するための、パリティ発生を制御
しかつオプションおよびメモリビット可能化情報を検査
し、メモリアクセスの場合のアドレス比較のためにチッ
プ選択マッピングレジスタにおける対応するMAビットを
可能化するためのフィールドを含んでいる。
モッドbレジスタは特殊レジスタ7である。それは種
々のICUオプションの選択のために使用される。モッド
bレジスタの1個のフィールドはマルチプロセッサ編成
と関連する。マルチプロセッサ編成とこのフィールドの
使用は詳細な説明が後で述べられる。
モッドbレジスタはまた、プロセッサバス上の入力/
出力データアクセスのためにICUを制御するためのビッ
ト(それは命令キャッシュ使用の際には無視される)
と、ICUレジスタを読出すモードを特定するビットと、
プロセッサバス上でのキャッシュ命令転送用プロセッサ
を特定するビットと、適切なICU動作のために或るワー
ド内でバイトおよびハーフワード順序づけを制御するビ
ットとを含む。
モッドbレジスタにおけるマルチプロセッサに向けら
れた情報は以下のものを含む。すなわち、キャッシュイ
ンターロックされた可能化ビットと、読出バスウォッチ
可能化ビットと、書込バスウォッチ可能化と、別なマス
タにより読出されるメモリバス上での一致の場合にICU
の動作を制御するフィールドと、別なマスタによりメモ
リバス書込動作のために一致の場合に動作を制御するフ
ィールドと、書込割当てでコピーバック書込ミスのため
にICUのメモリバス動作を制御する書込ミスメモリアク
セス制御と、共有されたブロックに対し書込ヒットの場
合の動作を制御するフィールドと、セットされる場合に
すべてのプロセッサアクセスに対しブロックステータス
共有ビットが修正されることを引き起こすプロセッサ共
有ビット制御と、外部制御により共有されたブロックス
テータスの指定を制御する外部共有ビット制御を含む。
外部共有制御で、メモリバス読出および/または書込ア
クセスのために★HITシグナルが入力として使用され
る。それがアサートされる場合、データはまた他のキャ
ッシュにも存在し、ブロックは共有されたステータスが
割当てられる。★HIT入力がアサートされる場合、変数
はいずれのキャッシュにも存在せず、ブロックは排他的
ステータスに割当てられる。この特徴の詳細な説明は、
ICUマルチプロセッサ支持に対する言及とともに後で明
らかにされる。
ICU命令セットへの転換。
ICUの好ましい実施例は20個のプロセッサバスキャッ
シュ命令と9個のメモリバスキャッシュ命令とを実現す
る。このプロセッサバス命令は、特殊レジスタアクセス
のためにかつ特殊キャッシュ動作要求のためにプロセッ
サにより出される。メモリバス命令は、特殊キャッシュ
動作要求のためにメモリバス上で特殊論理により出され
る。このセクションは、異なる命令転送プロトコルの具
体例を明らかにし、かつ典型的なプロセッサバス命令お
よびメモリバス命令のセットの具体例を詳細に述べる。
プロセッサバスキャッシュ命令およびオペランドは、
プロセッサバストランザクションの特殊なシーケンスに
よりプロセッサからICUへ転送される。この命令は、す
べての所要のオペランドがICUへ転送されるときはいつ
でも実行される。
いつかのプロセッサバスキャッシュ命令は動作の4つ
の任意の範囲を有する。命令範囲は、キャッシュ命令に
より影響を及ぼされるICUの数を特定する。この範囲
は、命令表において(s)により示される。(s)表示
のない命令は1個の特殊ICUにおいてのみ動作し得る。
命令スコープは次のように示される。
この柔軟性は、システムの設計者が、適当なキャッシ
ュにおいて所望のアドレスへ動作するキャッシュ命令を
出すことを可能にする。多数ICU環境においては、すべ
てのキャッシュを同時に動作する1個の命令を出すこと
がより有効である。たとえば、(s)=A(INVBA)で
ある無効ブロック命令は、並列状態にあるすべてのICU
における特定されたブロック(この場合ブロックは有効
である)を無効にする。
大半の命令は2サイクルのうちに実行される。しかし
ながら、後で示されるように例外が存在し得る。プロセ
ッサバスキャッシュ命令実行の間、ICUは他のプロセッ
サトランザクションを受容し得る(新たな命令転送を含
む)が、大半の場合(命令記述の際に別なように特定さ
れない限り)、それらはプロセッサバスキャッシュ命令
完了の後のみに処理される。メモリバストランザクショ
ンは、プロセッサバスキャッシュ命令実行の間に処理さ
れる。しかしながら、それらは命令実行とは同期化され
ないので、ICU動作はキャッシュの現在の状態を反映す
る。
すべてのプロセッサバスキャッシュ命令は特権を与え
られる。SUP/★US入力がLOWである場合、プロセッサバ
スキャッシュ命令アクセスが実施されるときには、それ
は無視され、★CERRは応答としてアサートされる。ステ
ータスレジスタは適切な命令のためにステータス情報で
更新される。例外の場合、例外アドレスレジスタおよび
ステータスレジスタが例外情報で更新される。
キャッシュ命令実行の間は、ICUとプロセッサの間の
通信に対しいくつかのオプションが存在する。プロトコ
ルは、モッドbレジスタの命令転送プロトコル制御(IT
PC)ビットおよび読出レジスタ制御(RRC)ビットばか
りでなくキャッシュ命令のタイプおよび範囲に従って規
定される。すべての命令は、読出レジスタを除いて、書
込動作を使用することにより転送される。読出レジスタ
命令は、モッドbレジスタの呼出レジスタ制御ビットに
より規定されるように読出または書込動作を利用するこ
とにより転送される。これらのオプションの説明が、後
で明らかにされる読出レジスタ命令説明において見い出
され得る。
各命令の第1の部分は、プロセッサバスキャッシュ命
令要求の検出である。プロセッサバスキャッシュ命令要
求が読出プロセッサバスアクセスかまたは書込プロセッ
サバスアクセスのいずれかになり得る。それは次の2つ
の場合においてICUにより検出される。1)★CSELがア
サートされかつ可能化される場合、または、2)アドレ
ス入力およびCREQT0がチップ選択マッピングレジスタに
おけるキャッシュ命令アドレスフィールドおよびキャッ
シュ命令アドレス空間フィールドと一致する場合であ
る。
命令実行にオペランドが必要とされない場合、転送は
1サイクルのうちに完了される。この場合、キャッシュ
バス上の値は不適切であり、命令実行は直ちに始まる。
オペランドが必要とされる場合、ICUにより支持され
る2個の任意の転送プロトコルが存在する。プロトコル
は、モッドbレジスタの命令転送プトロコル制御ビット
に従って選択される。
ITPCが1である場合、キャッシュバスはオペランド転
送のために使用される。プロセッサは通常の書込動作を
利用し、プロセッサアドレスおよびデータバスは両方が
使用される。ICUはキャッシュバスからのオペランド値
をラッチする。命令キャッシュとして使用されるICUに
対し、ICUデータバスからキャッシュバスへデータを転
送するために外部トランシーバが必要とされる。このオ
プションは、データキャッシュとして使用されるICUに
対する当然の選択である。外部トランシーバを費やすこ
とにおいて命令キャッシュとして使用されるICUに対し
てはより有効なプロトコルがまた達成される。
ITPCが0である場合、キャッシュバスはオペランド転
送のためには使用されず、オペランドはプロセッサアド
レスバス上を転送される。命令およびオペランドの転送
のためには、次のような特殊な2サイクルプロトコルが
必要とされる。
すなわち、ICUは、まず有効な命令をラッチした後、
プロセッサバス上で特殊なデータトランザクションを予
測する。より特定的には、ICUは、プロセッサバス上
で、CREQT(キャッシュ要求)入力によりメモリデータ
トランザクションを特定し、オプション入力によりキャ
ッシュオペランドの転送を特定する。そしてプロセッサ
アドレスバス上では、オペランドが転送される。この特
殊な書込トランザクションはICUとラッチされたアドレ
スバス上のオペランドにより検出される。上記トランザ
クションはプロセッサバスに接続されるすべての他の要
素により無視されるべきであることに注目されたい。こ
のオプションは他のものほど有効ではないが、命令キャ
ッシュとして使用されるICUのためにトランシーバを必
要しない。
両方のオプションは、データキャッシュまたは命令キ
ャッシュとして使用されるICUのために独立して選択さ
れ得る。しかしながら、システムプログラミングの観点
から、同様の方法で両方のキャッシュにアクセスするこ
とが望ましいからもしれない。この場合、両方のキャッ
シュが同一プロトコルに応答するようにプログラムされ
得る。
カウントオペランドが命令実行のために必要とされる
場合、命令実行が始まる前にそれをカウントレジスタに
書込むために書込レジスタ命令が実行されるべきであ
る。命令は、命令およびすべての所要のオペランドが有
効であるときはいつでも、ICUにより実行される。
キャッシュ命令転送プロトコルの間、プロセッサ中断
が生じ得る。ICUの好ましい実施例はそのような場合か
ら回復するための論理を含んでいる。命令レジスタと、
オペランドレジスタと、カウントレジスタとは、それに
影響を及ぼすことなしに、書込レジスタ命令を用いてそ
れらの内容を保管するために読出され得る。命令有効ビ
ット、オペランド有効ビット、およびカウント有効ビッ
トは対応するレジスタの妥当性を示す。保管および復元
動作は、命令転送プロトコルが中断の点から続くことを
可能にする。
ニモニックと、記述と、目的の簡単な説明に関連す
る、この発明の一実施例において有用であるとわかって
いる1組のプロセッサバスキャッシュ命令が、すぐ後で
表にして明らかにされる。ニモニック 記 述 NOP 動作なし INVW(s) ワードを無効にせよ INVB(s) ブロックを無効にせよ INVM(s) 複数を無効にせよ INVA(s) 全てを無効にせよ SWM(s) 修正された場合はワードを送れ SBM(s) 修正された場合はブロックを送
れ UPMI(s) メモリを更新しかつ無効にせよ UPIM(s) メモリを更新しかつ複数を無効 にせよ ULCK(s) ブロックをロック解除せよ RBST(s) ブロックステータスを読出せ WBST(s) ブロックステータスを書込め SWH ヒットされた場合はワードを送
れ RTAG タグを読出せ WTAG タグを書込め PRLD キャッシュをプリロードせよ RST リセットせよ RDR(i) レジスタを読出せ WRR(i) レジスタを書込め 命令ニモニックにおける(s)記号はここで先に規定
されたような命令スコープを示し、RDR命令およびWRR命
令における(i)シンボルは、opコードの3個の下位ビ
ットにより特定されるレジスタ番号を示すことが注目さ
れるべきである。
特殊なオペランド(ここでは論じられないけれども)
は命令要件に従って特定されることがまた注目されるべ
きである。1を越えるオペランドが特定される場合、WR
R命令が第2の特定されたオペランドをロードするため
に必要とされる。
機能レベルにおいては、命令の実行は次の動作を生じ
る。
動作なし(NOP)−この命令に対しICUにより動作は実
行されない。
ワードを無効にせよ(INVWO,INVWI,INVWD,INVWA)
(異なる範囲に注目されたい)−アドレスオペランドに
より特定されるワードは無効にされる(対応する有効な
ビットはリセットされる)。
ブロックを無効にせよ(INVBO,INVBI,INVBD,INVBA)
−アドレスオペランドにより特定される4ワードブロッ
クは無効にされる(すべての対応する有効なビットはリ
セットされる)。
多数を無効にせよ(INVMO,INVMI,INVMD,INVMA)−多
数のシーケンシャルな4ワードブロックがICUにより無
効される。すべての単一動作はINVB命令に類似する。そ
の命令は多数サイクルのうちに実行される(初期化のた
めの2サイクル+4ワードブロックあたりの1サイク
ル)。この命令で、カウントレジスタは有効なカウント
を含まなければならない。カウントレジスタは書込レジ
スタ命令を用いることによりロードされる。カウント有
効ビットは、命令実行の後、セットされたままである。
正しい実行を保証するために、カウントレジスタは、IN
VM命令が必要とされる前にロードされるべきであるか、
または先の動作からの正しい値を含むべきである。この
命令は、ページフレームを無効にするために使用され得
る。カウントレジスタは或るページにおいて4ワードブ
ロックの数を含むべきである(16により除算されるバイ
トで数えたページサイズ)。
すべてを無効にせよ(INVAO,INVAI,INVAD,INVAA)−
この命令はキャッシュにおいてすべてのワードを無効に
する。すべての有効なビットはリセットされる。
修正された場合はワードを送れ(SWMO,SWMI,SWMD,SWM
A)−アドレスオペランドにより特定されるワードがキ
ャッシュに存在しかつブロックに対する修正されたビッ
トがセットされる場合、それはメモリにおいて対応する
アドレスに書込まれる。
修正された場合はブロックを送れ(SBMO,SBMI,SBMD,S
BMA)−アドレスオペランドにより特定される4ワード
ブロックが修正される場合は、すべての有効なワードは
メモリにおいて対応するアドレスに書込まれる。
メモリを更新しかつ無効にせよ(UPMIO,UPMII,UPMID,
UPMIA)−アドレスオペランドにより特定される4ワー
ドブロックが修正される場合は、すべての有効なワード
はメモリにおいて対応するアドレスに書込まれる。次
に、すべての有効なビットはリセットされる。書込動作
は、メモリバスがICUに認められた後、バーストモード
またはシングルメモリバス書込アクセス(有効なワード
の数に依存して)を用いることにより実施される。
メモリを更新しかつ多数を無効にせよ(UPIMO,UPIMA,
UPIMD,UPIMA)−多数のシーケンシャルな、メモリ更新
かつ無効動作がICUにより実行される。すべての単一動
作は、メモリ更新かつ無効命令に類似する。その命令は
複数サイクルのうちに実行される(初期化ための2サイ
クルに、1サイクルと4ワードブロックあたりの任意の
メモリバス4ワード書込アクセスを加える)。この命令
で、カウントレジスタは有効なカウントを含まなければ
ならない。カウントレジスタはWRR命令を用いることに
よりロードされる。カウント有効ビットは、命令実行の
後、セットされたままである。正しい実行を保証するた
めに、カウントレジスタは、UPIM命令が要求される前に
ロードされるべきであるか、または先の動作からの正し
い値を含むべきである。この命令は、メモリを更新しか
つページフレームを無効にするために使用され得る。カ
ウントレジスタは或るページにおいてブロックの数を含
むべきである(16により除算されるバイトで数えたペー
ジサイズ)。
ブロックをロックせよ(LCKO,LCKI,LCKD,LCKA)−ア
ドレスオペランドにより特定される4ワードブロック
(またはそれの一部)がキャッシュに存在する場合、対
応するブロックステータスロックビットがセットされ
る。
ブロックをロック解除せよ(ULCKO,ULCKI,ULCKD,ULCK
A)−アドレスオペランドにより特定される4ワードブ
ロック(またはその一部)がキャッシュに存在する場
合、対応するブロックステータスロックビットがリセッ
トされる)。
ブロックステータスを読出せ(RBSTO,RBSTI,RBSTD,RB
STA)−特定されたワードアドレスはキャッシュにおけ
る存在を検査され、かつステータスレジスタはそれに従
って更新される。
ブロックステータスを書込め(WBSTO,WBSTI,WBSTD,WB
STA)−特定されたワードアドレスを含むブロックはキ
ャッシュにおける存在を検査される。キャッシュにブロ
ックが存在すれば、ステータスレジスタにおけるビット
の値に基づいてブロックステータスビットは更新され
る。
ヒットされた場合はワードを送れ(SWH)−アドレス
オペランドにより特定されるワードがキャッシュに存在
する場合、それはメモリにおいて対応するアドレスに書
込まれる。
タグを読出せ(RTAG)−この命令はキャッシュにおけ
る特殊タグを読出すために使用される。
タグを書込め(WDAG)−この命令はキャッシュにおい
て特殊タグを書込むために使用される。
プリロードせよ(PRLD)−プリロードは、特殊データ
変数または命令を、それらが必要とされる前にキャッシ
ュにロードするために実施され得る特殊動作である。そ
の動作はソフトウェア制御の下で行なわれる。所要の変
数または命令のアドレスはユーザにより供給される。プ
リロード動作は簡単な先取り動作とは異なることに注目
されたい。先取りは通常はハードウェア制御の下で行な
われ、先取りされたアドレスは最初のメモリ要求に対し
アドレスのすぐ近辺に存在する。
最も価値のある命令またはデータ変数を予言するため
に、プログラムのユーザおよびコンパイラ知識が使用さ
れるべきである。適当なアドレスは、プログラム実行が
開始される前に、命令およびデータキャッシュへプリロ
ードされる。その動作は、プロセッサ干渉なしにキャッ
シュ制御の下で行なわれ得る。これは、キャッシュのよ
り良い利用とより高い相対的性能とを可能にする。
それ自体に新規であるプリロード動作は、組入れられ
たRISC/SIPアーキテクチャに関連して説明される。それ
は他のキャッシュシステムにおいても同様に使用され得
る。
その命令は、プロセッサにより、opコードとオペラン
ドとを適当なキャッシュユニットへ転送することにより
初期化される。2個のオペランド、すなわちアドレスオ
ペランドとカウントオペランドとが必要とされる。多数
のシーケンシャルなワードが、ICU制御の下でメモリバ
ス読出バーストトランザクションを用いてキャッシュに
ロードされる。アドレスオペランドは開始ワードアドレ
スを特定する。カウントレジスタは4ワードブロックの
数を特定する。最も高い可能なアドレスに達した場合、
ラップアラウンドが実施される。
命令は多数サイクルのうちに実行される(初期化のた
めの2サイクルにワードあたりの1メモリバスバースト
読出アクセスを加える)。この命令に対し、カウントレ
ジスタもまた有効なカウントを含まなければならない。
プリロード命令は種々の方法において使用され得る。2
個の基本オプションは次のとおりである。
プリロード命令を使用する簡単な方法は、特殊なキャ
ッシュ構成を必要とせず、かつどのようなキャシュシス
テムとでも使用され得る。この方法において、プリロー
ド命令は、プログラム実行前にソフトウェア制御の下で
出される。その命令は文脈切換手順の一部として出され
得る。キャッシュはプリロードされるので、コールドス
タート効果は最小限にされる。この方法の主な不利な点
は、プリロード動作がプロセッサにより必要とされる他
のキャッシュ動作とインターフェイスし得ることであ
る。
より複雑なキャッシュ構成が上述の制限を克服し得
る。この構成(切換可能キャッシュと呼ばれる)は、各
プロセッサあたり1を越えるキャッシュとキャッシュ間
で切換わる方法とを必要とする。切換可能キャッシュ構
成は、同一アドレス空間上の多数キャッシュの動作を可
能にする。2個またはそれ以上のキャッシュが並列に配
置されれば、プロセッサメモリアクセス応答のためには
1個のキャッシュしか可能化されない。他の単数または
複数キャッシュは、次のプログラム(または手順)のた
めに必要とされる変数または命令をプリロードするため
にプログラムされ得る。次のプログラム開始の実行の前
に、適当なキャッシュ(プリロードされたデータを含
む)が可能化され、他のキャッシュは不能化される。
この機構の実現はICUにより十分に支持される。すべ
ての必要な支持はシングルチップ上で実現される。個別
のICUは、モードレジスタをプログラムすることにより
不能化または可能化され得る。プリロード命令は、この
機構が支持されるように実現される。特に、ICUは、そ
れが通常のキャッシュ動作のために不能化されるとして
も、プリロード命令を実施し得る。2個またはそれ以上
のICUが並列に配置可能であり、通常のキャッシュ動作
のためには一方しか可能化され得ないが、他方はプリロ
ード動作を実施する(グルー(glue)論理は必要とされ
ない)。
この構成は、プリロード動作が現在のプログラム実行
に対し最小の影響力で実施されるので、この構成はかな
りの性能の利点を有し得る。
リセット(RST)−リセット命令は、★RESET入力をア
サートすることにより実施されるのと同一機能を実施す
る。RST命令はそれが容認されるとすぐに実行される。
多数命令(INVM,UPIM,PRAD)実行が集結される。
レジスタを読出せ(RDR)−レジスタを読出せの命令
は、ICUの特殊レジスタを読出すために使用される。特
殊レジスタ番号はopコードにより特定される。ICUは、
モッドbレジスタにおける読出レジスタ制御(RRC)ビ
ットの状態に依存してこの命令に対し異なる方法で応答
する。RRCが1である場合、アドレスバス上の命令を有
する読出トランザクションはその命令を初期化する。RR
Cが0である場合、メインメモリはレジスタを読出すた
めに使用される。
レジスタを書込め(WRR)−書込レジスタ命令はICUの
特殊レジスタを書込むために使用される。特殊レジスタ
番号はopコードにより特定される。データは、命令オペ
ランドとして特定される。WRR命令はそれが容認される
とすぐに実行される。有効な命令およびオペランドが命
令およびオペランドレジスタに存在する場合、それはそ
れらの内容に影響を及ぼすことなしに実行される。この
特徴は、ICUレジスタを復元するために使用され得る。
先に示されるように、メモリバスキャッシュ命令はメ
モリバス上の特殊論理により出される。この論理は命令
を適当なICUに向けることを可能にすべきである。それ
らの入力の際に有効な命令を認識するシステムにおける
すべてのICUがそれを実行する。メモリバス上にはプロ
セッサバス命令範囲と特権を与えられた命令に対し同等
の概念が存在しない。
すべてのメモリバスキャッシュ命令は、それがバスス
レーブである場合、1個のキャッシュ命令転送メモリバ
ストランザクションによりICUへ転送され得る。ブロッ
クステータスを書込めの命令はまた、ICUがバスマスタ
である場合、★VSI入力をアサートすることにより転送
され得る。その命令は、所要のキャッシュ資源が利用可
能であるときはいつでも、命令およびオペランドが容認
された後で実行される。すべての命令は2サイクルのう
ちに内部で実行される。命令実行のためにメモリバス動
作が必要とされる場合、バス動作のためのサイクルの数
が加算されるべきである。
メモリバスキャッシュ命令は、プロセッサバス上の他
のICU動作とは無関係に実行される(プロセッサバスキ
ャッシュ命令を含む)。メモリバス命令とキャッシュバ
ス動作がそれらが受取られる順序に従って実行される。
メモリバス命令の結果はキャッシュの現在の状態を反映
する。メモリバスキャッシュ命令が多数プロセッサバス
キャッシュ命令の実行の間容認される場合、それは多数
命令実行に影響を及ぼすことなしに実行される。
すべてのメモリバスキャッシュ命令は、キャッシュに
ワードを書込めを除いて、類似する呼名を有する同等の
プロセッサバスキャッシュ命令を有する。これらの命令
は内部キャッシュに類似する効果を及ぼすが、プロセッ
サバスおよびメモリバス動作は異なっている。
すべてのメモリバスキャッシュ命令は、1個のキャッ
シュ命令転送メモリバストランザクションを利用して転
送される。ICUがバスマスタではない場合、★VSIのアサ
ートはメモリバス上のキャッシュ命令トランザクション
を引き起こす。トランザクションの最初のサイクルの
間、MRW信号と、MREQT信号と、BSTC信号と、アドレスと
がラッチされる。MRW信号およびMREQT信号は命令を特定
する。BSTC信号は適切な命令に対しブロックステータス
を特定する。アドレスは適切な命令に対するアドレスオ
ペランドとして使用される。命令がデータオペランドを
必要とする場合、データは第2のサイクルの間ラッチさ
れる。
ICUがバスマスタであり、かつそれが再ロード動作の
ために読出要求を出す場合、★VSI入力は特殊機能を有
する。トランザクションが完了される前にそれがアサー
トされる(最後の★MRDYは容認されていない)場合、BS
TC信号がラッチされ、さらにブロックステータスを書込
めの命令が実行される。アドレスオペランドは、再ロー
ド動作のためにICUにより転送されたアドレスに対応す
るブロックアドレスである。
ニモニックと、記述と、短い目的の説明でこの発明の
一実施例において有用であるとわかっている1組のメモ
リバスキャッシュ命令が、すぐ後で表にして明らかにさ
れる。
命令コードは、MRWOが他のメモリバス動作と一致する
ように配置されることが注目されるべきである。MRWO L
OWに対し、方向はICUからメモリバスに向かい、MRWO HI
GHに対しては、方向はメモリバスからICUへ向かう。
機能レベルでは、命令の実行の結果次の動作が生じ
る。
動作なし(NOP)−この命令はICUに影響を及ぼさな
い。メモリバスキャッシュ命令トランザクションプロト
コルはいずれの命令に関してでも実施される。
ヒットされた場合はワードを送れ(SWH)−アドレス
オペランドにより特定されるワードがキャッシュに存在
する場合、★HIT信号はアサートされる。ワードはメモ
リアドレスバス上でドライブされ、ブロックステータス
が共有されかつ修正されたビットはBSTC信号でドライブ
され、さらに、★MRDYはアサートされる。
修正された場合はワードを送れ(SWM)−アドレスオ
ペランドにより特定されたワードやキャッシュに存在
し、かつブロックに対する修正されたビットがセットさ
れる場合、★HIT信号および★MRDY信号はアサートさ
れ、ブロックステータスが共有されかつ修正されたビッ
トはBSTC信号でドライブされる。次に、ワードはメモリ
において対応するアドレスに書込まれる。
修正された場合はブロックを送れ(SBM)−アドレス
オペランドにより特定される4ワードブロックが修正さ
れる場合は、★HIT信号および★MRDY信号がアサートさ
れ、さらに、ブロックステータスが共有されかつ修正さ
れたビットはBSTC信号で駆動される。次に、すべての有
効なワードがメモリにおいて対応するアドレスに書込ま
れる。
ワードを無効にせよ(INVW)−アドレスオペランドに
より特定されるワードは無効にされる(対応する有効な
ビットはリセットされる)。★HIT信号はヒットまたは
ミス条件に従ってドライブされ、★MRDYは命令実行が完
了された後でアサートされる。
ブロックを無効にせよ(INVB)−アドレスオペランド
により特定された4ワードブロックは無効にされる(す
べての対応する有効なビットはリセットされる)。★HI
T信号はヒットまたはミス条件に従ってドライブされ、
★MRDYは命令実行が完了された後で立上げられる。
ブロックステータスを書込め(WBST)−この命令は、
ICUがバススレーブであるかまたはバスマスタであるい
ずれの場合に実行され得る。ICUがスレーブである場合
は、アドレスオペランドはメモリバストランザクション
により特定される。この場合特定された共有アドレスを
含むブロックはキャッシュにおける存在をチェックされ
る。ブロックが存在する場合は、★HIT信号および★MRD
Y信号はアサートされ、さらにブロックステータスビッ
トはBSTC信号からコピーされる。ブロックがキャッシュ
に存在しない場合は、★HIT信号はアサートが解除さ
れ、★MRDY信号はアサートにされる。ステータスレジス
タのヒットおよび有効ビットはリセットされる。
ICUがバスマスタであり、かつそれが再ロード動作の
ために読出要求を出す場合、★VIS入力は特殊機能を有
する。それがトランザクションが完了される(最後の★
MRDYが容認されていない)前にアサートされる場合、BS
TC信号はラッチされ、書込ブロックステータス命令は実
行される。アドレスオペランドは、再ロード動作のため
にICUにより転送されたアドスである。この場合、特定
されたワードアドレスを含むブロックは常にキャッシュ
に存在する(それが再ロードされるので)。このブロッ
クのブロックステータスビットはBSTC信号からコピーさ
れる。ステータスレジスタは影響を及ぼされない。
レジスタを書込め(WRR)−レジスタを書込めの命令
は、ICUの特殊レジスタを書込むために使用される。
メモリを更新しかつ無効にせよ(UPMI)−アドレスオ
ペランドにより特定された4ワードブロックが修正され
る場合、★HIT信号および★MRDY信号はアサートされ、
さらにブロックステータスが共有されかつ修正されたビ
ットはBSTC信号でドライブされる。次に、すべての有効
なワードはメモリにおいて対応するアドレスに書込ま
れ、次に、有効なビットはリセットされる。
ブロックステータスを読出せ(RBST)−特定されたワ
ードアドレスはキャッシュにおける存在をチェックされ
る。ブロックステータスビットはBSTC信号でドライブさ
れる。★HITおよび★MRDYはまたそれに従ってドライブ
される。
レジスタを読出せ(RDR)−レジスタを読出せの命令
は、ICUの特殊レジスタを読出すために使用される。
キャッシュにワードを書込め(WRW)−アドレスオペ
ランドにより特定されたワードがキャッシュに存在する
場合、★HIT信号はアサートされ、供給されたデータは
キャッシュに書込まれる。アドレスの2個の下位ビット
は無視される。アドレスサイクルは★VSI入力によって
は特定されるが★MASTD信号によっては特定されないこ
とに注目されたい。データは、アドレスサイクルの後に
続くサイクルの間メモリバス上の値により特定される。
ワードがキャッシュに存在しない場合、★HIT信号はア
サートが解除され、ステータスレジスタのヒットおよび
有効ビットはリセットされる。★MRDY信号は、ICUがメ
モリバスからのデータをラッチする場合にアサートされ
る。
この発明の好ましい実施例とともに使用するための適
当かつ有用な命令セットの説明を完了したので、新規の
ICUにより支持されるデータフォーマットおよびデータ
操作機構の短い説明がここで述べられる。
先に示されたように、1ワードは32ビットのデータと
して規定される。1ハーフワードは16ビットからなる。
1バイトは8ビットからなる。ICUは、ワードと、ハー
フワードと、バイトアクセスとに対する直接支持を有す
る。プロセッサバス上では、アクセスの長さはOPT入力
に従って決定される。アクセスの長さは、単一データメ
モリアクセスの間のみ有効である。すべての他のプロセ
ッサバスアクセス(バーストモードメモリアクセスを含
む)においては、それは無視され、かつワードの長さが
仮定される。メモリバス上では、アクセスの長さはMDLN
信号に従って決定される。
この発明の好ましい実施例に対するワード内のデータ
ユニットに対する番号付け協定は、RISC/SIP規定と一致
している。ビットは右から左へ増加する順序で番号付け
される。バイトおよびハーフワードは、モッドbレジス
タのバイト順序ビットにより制御されるように、右から
左へまたは左から右へ順序づけされ得る。
ICUの好ましい実施例は、バイトと、ハーフワード
と、ワードアクセスとを十分に支持するのに必要なハー
ドウェアを含んでいる。異なるデータタイプは、それら
の自然なアドレス境界上に整列されるべきである。それ
らの自然な境界上にないアクセスは、エラーレジスタお
よびステータスレジスタで報告されるが、アクセスはそ
れが正確に整列されたかのようにサービスされる(すな
わち、適当なアドレスビットは無視される)。
プロセッサバス上のメモリバイト読出動作で、整列ハ
ードウェアはワード内の下位の(右端の)場所へバイト
をシフトする。
プロセッサバス上のメモリハーフワード読出動作で、
整列ハードウェアはワード内の下位の(右端の)場所へ
ハーフワードをシフトする。
メモリ読出動作の際のミスの場合、ICUは再ロード動
作のためにメモリバス上のワードアクセスを利用する。
バイドおよびハーフワードアクセスはキャッシュ不能読
出アクセスのために使用される。バイトまたはハーフワ
ードは、それらがプロセッサに送られる前に整列され
る。アクセスの長さがプロセッサバス(OPT入力)から
メモリバス(MDLN信号)へ転送される。
メモリ書込動作で、ICUは適当なキャッシュ場所にバ
イトおよびハーフワードを書込む。バイト書込みで、バ
イトはワード内の下位バイト場所からすべての他のバイ
ト場所へと複製される。適当なバイト書込可能化は、キ
ャッシュに正しいバイトを書込むためにアサートされ
る。ハーフワード書込みで、ハーフワードは下位のハー
フワードから上位のハーフワードを複製される。次に、
それは適当なバイト可能化をアサートすることによりキ
ャッシュに書込まれる。
ライトスルーおよびキャッシュ不能書込アクセスで、
アクセスの長さはプロセッサバス(OPT入力)からメモ
リバス(MDLN信号)へ伝送される。複製されたバイトま
たはハーフワードはメモリバス上に置かれる。メモリ制
御器はアドレスおよび長さをデコードし、かつ正しい書
込可能化信号を断定する。
ICUはバイトおよびハーフワードアクセスを支持する
けれども、ユーザはシステムがそれらを支持するかどう
かを決定し得ることが注目されるべきである。その決定
がワードアクセスのみを支持する場合には、OPT入力お
よびMDLN入力は常にワードアクセスを特定すべきであ
る。
すぐ後に続く詳細な説明の一部は、プロセッサおよび
メモリバス上のキャッシュアクセスの異なる場合に対す
るICU動作を説明している。
プロセッサバスアクセスは、単一の、パイプライン化
アクセスかまたはバーストモドアクセスのいずれかであ
る。
プロセッサバス上のすべてのアクセスはプロセッサに
より開始される。ICUは、3個のアクセスプロトコルを
支持する。
単一アクセスは、単一データ読出および書込アクセス
のためばかりでなく、特殊命令アクセスのためにも使用
される。
パイプライン化アクセスはICUにより支持される。ICU
はアドレスをラッチする(★RENは外部論理により駆動
されるべきである)。プロセッサは、別なICUアクセス
を始めるためにアドレスバスを使用し得る。パイプライ
ン化アクセスのアドレスは、先のアクセスとのパイプラ
インにおいて、タグ比較機能のためにICUにより使用さ
れる。キャッシュヒットの場合、1次アクセスが完了し
た後で、完了すべきパイプライン化アクセスには1サイ
クルが必要とされる。キャッシュミスの場合、メモリバ
スアクセスは1サイクル早く始まる。
バーストモードアクセスは、命令アクセスおよび多数
データアクセスのために使用される。これらのアクセス
において、第1のワードに対するアドレスは転送され、
次に、シーケンシャルなアドレスは次のワードに対し仮
定される。バーストモード読出および書込アクセスはIC
Uにより十分に支持される。サイクルあたりの1ワード
の最大速度はキャッシュヒットに対し達成される。
単一メモリ読出アクセスはデータキャッシュからデー
タ変数を読出すために使用される。(組入れられたRISC
プロセッサは、バーストモードプロトコルを用いてすべ
ての命令読出しを実施する。)アドレスは所要のワード
に対しキャッシュを探索するために使用される。ワード
は見い出される(ヒットされる)場合、データはプロセ
ッサへ転送され、★CRDY出力がアサートされる。整列
は、バイトおよびハーフワードアクセスに対し実施され
る。単一メモリ読出アクセスで、ICUは2サイクルのう
ちに応答する。
所要のワードがキャッシュ(ミス)において見い出さ
れない場合、ICUは予め定められたミス取扱い手順を開
始する。共有されたブロックステータスビットはミスご
とに更新される。また、そのセットと関連するLRUビッ
トはアクセスごとに更新され、最も古くに使用されたブ
ロックを反映する。
バーストモードメモリ読出アクセスは、一連のシーケ
ンシャルなメモリ読出アクセスとしてICUにより取扱わ
れる。バーストモード読出アクセスの第1のサイクルに
おいて、第1のワードに対するアドレスはプロセッサに
より転送される。バーストモード読出アクセスはICUに
より検出される場合、それはアドレスをラッチし、★CB
ACK信号をアサートする。アドレスはバーストにおける
ワードごとに比較され、自動的に増分される。キャッシ
ュヒットの場合、ICUは2サイクル内にその第1のワー
ドとともに応答する。アドレスは、1サイクルあたり一
度の最大速度で増分されかつ比較されることが可能であ
る。これは、キャッシュビットの場合に達成されるべき
ワードあたりの1サイクルの速度を可能にする。ブロッ
ク境界横断の場合にもまた1サイクルアクセスが維持さ
れることに注目されたい。
バーストモードアクセスの間いずれかの点でミスが見
い出された場合、予め定められたバーストミス取扱い手
順が開始される。
メモリバスバーストモードアクセスの間、次のワード
アドレス(現在のワードアドレスに1を加える)はキャ
ッシュにおいて検査される。メモリバスバーストモード
動作の間にヒットが見い出される場合、メモリバスアク
セスは終了され、データ転送はキャッシュから続く。ミ
スおよびヒットの場合と一方から他方への転送等はプロ
セッサに対して透明である(アクセス時間のみが影響を
及ぼされる)。
バーストモード読出アクセスは★BREQをアサートを解
除することにより、時間のいずれかの点でプロセッサに
より終了され得る。もう1個のワードが、組入れられた
RISCプロセッサのバーストモードプロトコルに対し規定
されるようにサービスされる。
データ変数をキャッシュに書込むために、単一メモリ
書込アクセスが使用される。アドレスおよびデータはア
クセスの最初のサイクルにおいてICUによりラッチさ
れ、このサイクル(単一サイクル書込み)の間★CRDY信
号がアサートされる。★CRDY信号はヒットまたはミス条
件とは無関係にアサートされることに注目されたい。
キャッシュヒットの場合、データは第2サイクルのう
ちにキャッシュに書込まれる。書込ポリシーは、ASTC入
力と、モッドaレジスタの書込ポリシーフィールドと、
モッドbレジスタにおける書込みが共有されたヒット制
御およびプロセッサが共有されたビット制御フィールド
と、ブロックステータスが共有されたビットとに従って
決定される。3つの可能な書込ポリシー、すなわち排他
的ライトスルー、排他的コピーバックおよび共有された
ものが存在する。
排他的ライトスルー書込アクセスに対し、データはま
たメモリに書込まれる。書込バッファが可能化される場
合、データは書込バッファへ書込まれる。それが不能化
される場合、書込バッファの説明を参照しながら後で説
明されるように、書込動作はバッファされない。両方の
場合において、先に実施されるべきである他のメモリバ
ス動作が存在しない場合、およびメモリバスが利用可能
である場合、メモリバスアクセスは開始される。
排他的コピーバック書込アクセスで、データはキャッ
シュと修正されたビットセットにおいてのみ書込まれ
る。データは、ブロックが置換される場合、メモリに書
込まれる。
共有された書込アクセスの場合、ライトスルーまたは
ライト同報通信アクセスが常にメモリバス上で実施され
る。この場合、モッドaレジスタの書込ポリシーフィー
ルドではなく、モッドbレジスタの書込みが共有された
ヒット制御フィールドはICU動作を制御する。
キャッシュミスの場合、ICU動作はモッドaレジスタ
の書込割当ビットに従って決定される。書込割当てが可
能化される場合、ミスされたブロックに対しキャッシュ
ブロックが割当てられ、ミス手順が開始される。ミス手
順はメモリ読出ミス手順に類似する。ミス手順が完了さ
れた後で、キャッシュ動作は書込ヒットの場合に対し先
に説明されたように続く。
書込割当てが不能化される場合、キャッシュにおいて
はブロックが割当てられない。データは、ライトスルー
動作に対し説明されたようにメモリにおいてのみ書込ま
れる。この場合に対し、コピーバック書込みはライトス
ルーアクセスとして取扱われることに注目されたい。
共有されたブロックステータスビットはミスごとに更
新される。モッドbレジスタの適当なビットがセットさ
れる場合、それはまたキャッシュビットに対し更新され
得る。
セットと関連するLRUビットはアクセスごとに更新さ
れ、最も古くに使用されたブロックを反映する。
一連のシーケンシャルなメモリ書込アクセスとして、
バーストモードメモリ書込アクセスがICUにより取扱わ
れる。バーストモード書込アクセスの最初のサイクルに
おいて、第1のワードに対するアドレスおよびデータは
プロセッサにより転送される。バーストモード書込アク
セスがICUにより検出される場合、それはアドレスおよ
びデータをラッチし、★CRDY信号と★CBACK信号とをア
サートする。アドレスはバーストにおけるすべてのワー
ドに対し比較されかつ自動的に増分される。
キャッシュヒットの場合、ICUは第2のサイクルの間
第1のワードをキャッシュに書込む。1サイクルあたり
一度の最大速度で、アドレスが増分および比較され得
る。これは、キャッシュヒットの場合に達成されるべき
ワードあたりの1サイクルの速度を可能にする。1サイ
クルアクセスはブロック境界横断の場合にも維持される
ことに注目されたい。単一メモリ書込みに対するのと同
一条件において、メモリバス書込動作が同様に開始され
得る。書込バッファが可能化される場合、それは4個ま
での書込みをバッファするために使用される。メモリバ
スアクセスはバーストモード書込みである。メモリバス
動作に対する条件はバーストにおけるすべてのワードで
検査され、メモリバス動作はそれに応じて影響を及ぼさ
れる。
バーストモードアクセスの間のいつかにミスが見い出
される場合、ICU動作がモッドaレジスタの書込割当て
ビットに従って決定される。書込割当てが可能化される
場合、ミスされたブロックに対しキャッシュブロックが
割当てられ、ミス取扱い手順が開始される。メモリバス
アクセスは、読出されるか、またはモッドbレジスタの
書込ミスメモリアクセス制御ビットがそれぞれHIGHであ
るかまたはLOWであるかに依存して修正するために読出
される。ミス手順が完了された後で、キャッシュ動作は
ヒットの場合に対し説明されたように続く。この場合、
各ミスされたサブブロックはまずキャッシュに読出さ
れ、次に書込まれることに注目されたい。メモリバス動
作は連続バーストではない。
書込割当てが不能化される場合、キャッシュにはブロ
ックが割当てられない。データはバーストモード書込動
作を用いてメモリにのみ書込まれる。メモリバス動作の
ための条件はバーストにおけるすべてのワードでチェッ
クされ、さらに、メモリバス動作はそれに応じて影響を
及ぼされる。
次のワードアドレス(現在のワードアドレスに1を加
える)はキャッシュにおいてすべてのワード書込みを検
査される。1個またはそれ以上のミスの後でヒットが見
い出された場合は、ICUはヒットの場合に対し説明され
たように続行する。ミスおよびヒットの場合と一方から
他方への転送とはプロセッサに対し透明である(アクセ
ス時間のみが影響を及ぼされる)。
バーストモード書込アクセスは、★BREQをアサートを
解除することにより時間のいずれの点でもプロセッサに
より終了され得る。ICUは最後のワード書込みをサービ
スし、必要ならばメモリバスバーストモードアクセスを
終了する。
次に、この発明の好ましい実施例により支持される多
様な他のアクセス手順が説明される。
キャッシュ不能メモリアクセスが支持される。それ
は、特殊変数アクセスのためにキャッシュをバイパスす
るために使用される。このアクセスに対し、キャッシュ
は所要のデータを探索されない。メモリにおけるデータ
を読出すまたは書込むためにメモリアクセスが開始され
る。このデータのためにキャッシュにおいてはブロック
が割当てられない。
命令ROMアクセスは任意で支持され得る。これらのア
クセスは、規則正しいメモリ読出アクセスとして命令キ
ャッシュによりサービスされる。ミスの場合は、メモリ
バスアクセスはROMアクセスと呼ばれる。ICUはROMアク
セスを無視するようにプログラムされ得る。
入力/出力アクセスは任意で支持されかつデータキャ
ッシュによりキャッシュ不能アクセスとして取扱われ得
る。ICUは、I/O支持でメモリバスへアクセスを転送す
る。ICUは入力/出力アクセスを無視するようにプログ
ラムされ得る。
コプロセッサ転送はデータキャッシュにより無視され
る。
また支持されるのは、インターロックアクセスと指定
され得るメモリアクセスである。これは★LOCK入力をセ
ットすることにより行なわれる。セマフォおよび他の同
期化され共有された変数をアクセスするためにインター
ロックアクセスが利用され得る。インターロックアクセ
スはモッドbレジスタにより制御される。
データとしての命令メモリアクセスが支持される。こ
れは、命令メモリの内容を読出しかつ書込むために使用
される特殊データアクセスである。それは、OPT入力の
場合に特殊コードにより示される。
デバッグモジュールアクセスがまた支持される。これ
は、RISC/SIPデバッグモジュールをアクセスするために
使用される特殊データアクセスである。それは、OPT入
力の場合に特殊コードにより示される。ICUはこのアク
セスのために★CRDY信号をドライブする。★CRDYは4サ
イクルの間HIGHにドライブされ、次に、1サイクルの間
アサートされる。これは、プロセッサの★RDY論理に影
響を及ぼさずに、キャッシュシステムにおいてデバッグ
モジュールの挿入を不可能にするために行なわれる。
上記のことすべてに加えて、キャッシュ命令アクセス
が支持される。このアクセスはプロセッサバスキャッシ
ュ命令をICUに転送するために使用される。
メモリバスアクセスに転化すると、メモリバスはICU
マスタキャッシュとスレーブキャッシュの両方により使
用されることが理解されるべきである。メモリは、ICU
バスマスタにより、メモリバスアクセスを出すことによ
りアクセスされる。ICUは、★MBUSR(バス要求)出力を
アサートしかつ★MBGRT(バス許可)を待つことにより
バス支配を得る。ICUバススレーブが、キャッシュ一貫
性目的に対しメモリバスアクセスをモニタし得る。キャ
ッシュ命令は、メモリバス上で特殊アクセスによりアサ
ートされ得る。
読出アクセスと、書込アクセスと、修正のための読出
アクセスとがICUにより支持されるとしてここで説明さ
れる。
メモリバス読出アクセスは、再ロード動作のためにか
つキャッシュ不能アクセスのためにキャッシュマスタに
より開始される。すべての再ロード動作はワードのアク
セスの長さを利用する。キャッシュ不能アクセスで、ア
クセスのタイプおよび適当な長さがプロセッサバスから
MDLN、MREQTおよび★MLOCKメモリバス信号へ伝送され
る。1を越えるワードが必要とされる場合に、再ロード
動作のためにバーストモードアクセスが利用される。す
べての他の場合に単一アクセスが使用される。
再ロード動作は最初のプロセッサバス動作に依存して
いる。それは、単一アクセスおよびバーストモードアク
セスの場合には異なっている。
プロセッサバス単一メモリ読出動作の際のキャッシュ
ミスの場合、開始および終了アドレスばかりでなく、ア
ドレスラップアラウンドまたはノーラップアラウンド
は、モッドaレジスタの単一ミス制御(SMC)フィール
ドおよびサブブロックサイズ(SBS)フィールドにより
制御される。
プロセッサバスバーストモード読出アクセスの際のキ
ャッシュミスの場合、バーストモードアクセスが再ロー
ド動作のためにメモリバス上で開始される。再ロード開
始アクセスが常にミスされたワードのうちの1個であ
る。バースト終了アドレスはモッドaレジスタにより制
御される。
ICUがバスマスタであり、それが再ロード動作のため
に読出要求を出す場合、★VSI入力は特殊機能を有す
る。それがトランザクションが完了される(最後の★MR
DYが容認されていない)前にアサートされる場合、BSTC
信号はラッチされ、さらに、特殊書込ブロックステータ
ス命令が実行される。
メモリバス読出アクセスでのスレーブキャッシュの動
作は、後で明らかにされる、ICUマルチプロセッサ支持
を参照しながら説明される。
書込アクセスへの転化。ライトスルーおよびキャッシ
ュ不能書込アクセスと、メモリへの修正されたブロック
コピーバックと共有されたブロック書込ヒット動作のた
めにキャッシュマスタにより書込動作が開始される。修
正されたブロックコピーバックの動作ために、かつプロ
セッサバス上のバーストモード書込アクセスのためにバ
ーストモードアクセスが開始される。すべての他の場合
において、単一アクセスが開始される。単一アクセスに
対し、アクセスのタイプおよび長さは、プロセッサバス
からMDLN、MREQTおよび★MLOCKメモリバス信号へ転送さ
れる。
メモリバス上のバーストモード書込アクセルは、所要
の最初のワードアドレスで始まり、メモリへ書込まれる
のに必要とされる最後のワードで停止される。それは、
バーストモード読出アクセスの場合におけるように、モ
ッドaオプションにより影響を及ぼされない。
共有されたブロックへのヒットの場合、レジスタの書
込みが共有されたヒット制御フィールドの値に依存し
て、モッドbレジスタの制御の下でライトスルー動作が
開始される。
メモリバス書込アクセスのためのスレーブキャッシュ
の動作はまた、ICUマルチプロセッサ支持を参照しなが
ら後で説明される。
修正のための読出しは特殊読出動作である。それは、
モッドbレジスタの制御の下で、コピーバック書込動作
の際のミスの場合にICUにより使用される。マスタキャ
ッシュは、読出しが完了された後でブロックが修正され
ることになることを示す。すべての他の点で、マスタ動
作は読出アクセスに類似する。
ICUがバスマスタである場合、かつそれが再ロード動
作に対し修正要求のための読出しを出す場合、★VSI入
力は特殊機能を有する。それがトランザクションが完了
される(最後の★MRDYが容認されていない)前にアサー
トされる場合、BSTC信号はラッチされ、さらに、特殊書
込ブロックステータス命令が実行される。
修正アクセスに対するメモリバス読出しのためのスレ
ーブキャッシュの動作は、ICUマルチプロセッサ支持を
参照しながら後でまた説明される。
ICUの好ましい実施例により、書込同報通信動作とメ
モリバスキャッシュ命令アクセスというさらに2つの動
作が支持される。
モッドbレジスタ制御の下で、共有されたブロックに
対する書込ヒットの場合にのみ、ICUにより書込同報通
信動作が開始される。書込同報通信と規則的な書込みと
の間の相違は、書込同報通信においてはメモリは更新さ
れないことである。すべての他の点において、動作は書
込アクセスに類似する。
外部論理によりメモリバスキャッシュ命令アクセスが
メモリバス上で開始され得る。ICUがバスマスタではな
い場合、★VSIのアサートメモリバス上のキャッシュ命
令トランザクションを引き起こす。トランクザクション
の最初のサイクルの間、NWR信号と、MREQT信号と、BSTC
信号と、アドレスとがラッチされる。MWR信号とMREQT信
号とは命令を特定する。BSTC信号は適切な命令のために
ブロックステータスを特定する。適切な命令のためのア
ドレスオペランドとしてアドレスが使用される。命令が
データオペランドを必要とする場合、データは第2のサ
イクルの間ラッチされる。
ICUの好ましい実施例は、異なるキャッシュアクセス
に関して次の優先ルールに従う。
1.すべてのアクセスは先着順サービスでサービスされ
る。
2.第1のアクセスが完了する一方で、第2のアクセスが
パイプラインで開始される。タグおよびメモリアレイ
は、サイクルごとに異なるアクセスをサービスし得る。
3.2個のアクセス、すなわち、プロセッサバス上の1個
とメモリバス上の1個が同時にタグアレイアクセスを必
要とする場合、プロセッサバスアクセスは、それが1次
(パイプライン化されないまたは継続されるバースト)
メモリアクセスである場合のみ、優先順位を有する。メ
モリバスアクセスはすべての他の場合において優先順位
を有する。
4.プロセッサバスアクセスへの応答は常にそれらが受取
られた順番にある。パイプライン化またはバースト継続
アクセスがキャッシュにおいてヒットする場合、その応
答は、1次アクセスが完了するまで遅延される。1次ア
クセスの応答が送られた後で、しかもそれが十分に完了
されている前に、パイプライン化またはバースト継続は
完了し得ることに注目されたい。これは、所要のデータ
がプロセッサへ送られてしまった後の、かつ何らかの特
殊命令実行の際の再ロード動作のために、書込みがメモ
ルバス上で実行される前に1次書込アクセスに対し起こ
る。
ICU特殊レジスタがプロセッサ可能オプション選択お
よびステータス報告を適応させ得ることがここで当業者
に明らかになるべきである。キャッシュポリシーは、プ
ログラム可能オプションを用いることにより選択され得
る。キャッシュ書込ポリシーは、ライトスルー、コピー
バック、またはフレキシブルとして、1アクセスあたり
の基準でプログラムされ得る。書込割当てまたは非書込
割当てオプションが選択され得る。置換アルゴリズム
は、LRU、ランダム、または外部としてプログラムされ
得る。フレキシブルな先取りポリシーが選択され得る。
リードスルーオプションが可能化され得る。十分な先取
りおよび読出動作を支持するために、4ワード読出バッ
ファが組入れられる。
先に示されたように、オプションビットはオプション
選択のために規定され、モッドaレジスタにストアされ
る。
先に示されたように、プリロード命令との比較によ
り、先取り動作が、それが必要とされる前に変数または
命令の取出しとして規定される。ICUは、いくつかのプ
ログラム可能先取りオプションを支持するためのハード
ウェアを含んでいる。それはまた、先取りバッファとし
て使用されるメモリ読出バッファを含んでいる。キャッ
シュアレイが更新のために利用可能ではない場合は、先
取りされたワードが先取りバッファに保管され得る。次
の先取りオプションの各々は、独立してまたはいずれの
組合わせにおいても使用され得る。
先取りの簡単な形態は、1ワードよりも大きいサブブ
ロックサイズを用いることにより達成され得る。ICUは
ミスの場合にサブブロックに再ロードする。所要のワー
ドの同一ブロックにおけるワードは先取りされる。
モードaレジスタは、信号アクセスミスに対してICU
の動作を制御する。
モッドaレジスタはまた、バーストモードアクセスの
際にミスに対しICU動作を制御する。バーストがプロセ
ッサにより中断される場合、キャッシュはメモリバスバ
ーストを停止する前に、より多くのワードを先取りし得
る。この場合、先取りは同一サブブロックまたは次のサ
ブブロックの終了まで続行し得る。
モッドaレジスタもまた、単一アクセスキャッシュヒ
ットおよびバーストアクセスキャッシュヒットに対し先
取りオプションを可能化する。
先取りに加えて、プロセッサ可能モッドaレジスタの
制御の下で、再ロード動作が規定される。
再ロード動作は、最初のプロセッサバス動作に依存し
ている。それは単一アクセスおよびバーストモードアク
セスの場合には異なっている。
プロセッサバスシングルメモリ読出動作の際のキャッ
シュミスの場合、開始および終了アドレスばかりでな
く、アドレスラップアラウンドまたはノーラップアラウ
ンドがモッドaレジスタにより制御される。
プロセッサバスバーストモード読出アクセスの際のキ
ャッシュミスの場合に対し、再ロード動作のために、バ
ーストモードアクセスがメモリバス上で始められる。再
ロード開始アドレスは常に、ミスされたワードのもので
ある。バースト終了アドレスはまた、モッドaレジスタ
により制御される。
次に、ICUがマルチプロセッサ動作をどのようにして
支持するかについての詳細な説明へ移る前に、ICU書込
バッファとICU初期化およびリセット基準が明らかにさ
れる。
ICUは4ロケーション書込バッファを組入れている。
それは4個までの書込アクセス(アドレス、制御および
データ)をバッファし得る。書込バッファは、モッドa
レジスタにおいてビットをセットすることにより不能化
され得る。
可能化されると、書込バッファはメモリバス上の書込
アクセスをバッファするために使用される。ライトスル
ーおよびライト同報通信アクセスで、4個の個別の書込
アクセスがバッファされ得る。書込みは、バスが利用可
能になるまで書込バッファにおいて待機する。これは、
ライトスルーキャッシュに対しては、または多くの書込
ブロードキャスト動作が存在する場合には、かなり性能
を改良し得る。
書込バッファもまた、それがメモリへ書込まれる前に
修正されたブロックをバッファするために使用される。
ミスの場合、修正されたブロックが置換のために選択さ
れる場合は、それは書込バッファに置かれる。ミスされ
たサブブロックのための読出しは書込みの前に開始され
る。この特徴は、にICUがプロセッサ要求に対しより迅
速に応答することを可能にする。
書込バッファが一杯である場合は、ICUは、メモリバ
スが必要とされない(読出ヒットまたはコピーバック書
込ヒット)限り、もう1個のキャッシュアクセスをなお
サービスし得る。メモリバスが別な書込動作のために必
要とされる場合は、キャッシュは書込用の書込バッファ
に1個の利用可能な空間が存在するまで持続する。すべ
ての他の要求は、書込バッファが空になった後でのみサ
ービスされる。これは、要求の正しい配列を保証するた
めに必要とされ、すなわちメモリ読出しの際のミスは、
更新されたメモリを読出すためにすべての書込みが実行
されるまで待機する。
書込バッファが不能化されると、書込みアクセスはバ
ッファされない。メモリバス上の書込動作は、バスが利
用可能になるとすぐに開始される。ICUは、メモリバス
が必要とされない(読出ヒットまたはコピーバック書込
ヒット)限り、もう1個のキャシュアクセスをなおサー
ビスし得る。メモリバスが必要とされると、キャッシュ
は先の書込動作が完了されるまで持続する。
初期化に関しては、ICUは電力が最初に付与されたと
きに初期化されなければならない。それはまた、必要な
場合には、時間的にいくらかの後の点で初期化され得
る。
ICUを初期化するのに2つの方法があり、それらはす
なわち、★RESETをアサートすること、またリセット命
令を出すことである。この2つの方法は、ICUに厳密に
同じ影響を及ぼす。特殊な初期化シーケンスが、次のよ
うに、この発明の好ましい実施例に従って実施される。
1.いずれの進行中のキャッシュ動作またはキャッシュ命
令も中断される。
2.メモリバス動作はいずれも中断される。
3.チップ選択マッピングレジスタにストアされる、チッ
プ選択不能化ビットおよびメモリアクセス可能化ビット
チップ選択可能化ビットがリセットされる。
4.命令レジスタにストアされる、命令およびオペランド
妥当性を示すビットがリセットされる。
5.カウントレジスタにストアされる、命令カウント妥当
性を示すビットがリセットされる。
6.ステータスレジスタのパリティエラー、メモリエラ
ー、違法命令および保護違反ビットがリセットされる。
リードオンリメモリ可能化(ROME)を除くすべてのモ
ッドaレジスタビットと、キャッシュが命令またはデー
タキャッシュであるかどうかを示すビット(IDビット)
がリセットされる。
8.すべてのモッドbレジスタビットがリセットされる。
9.すべての有効ビットがリセットされる。
次の条件は適当なリセット動作の間は維持されるべき
である。
1.システムにおけるすべてのICUデータキャッシュの★I
REQ入力はLOWレベルに接続されるべきである。すべての
命令キャッシュの★IREQはプロセッサの★IREQ出力に接
続されるべきである。
2.リセットROMがメモリバスに置かれる場合、唯一の命
令キャッシュのDREQT1はHIGHレベルに接続されるべきで
ある。すべてのDREQT1は、リセットROMがプロセッサバ
スに送られる場合は、LOWレベルに接続されるべきであ
る。
3.異なるICUのチップ選択マッピングレジスタは、メモ
リアクセスおよびキャッシュ命令アクセスのために異な
るアドレスに応答するようにプログラムされるべきであ
る。これは、★CSEL入力を用いることにより行なわれ得
る。外部ハードウェアを必要としない簡単な構成が可能
である。異なるキャッシュの★CSEL入力は、異なるアド
レスビットに接続されかつ適当なアドレスを使用し得
る。最初のレジスタプログミングが完了された後で、★
CSEL入力は不能化され得る。
4.ICUレジスタのプログラミングはリセット後の動作の
最初のシーケンスになるべきである。ICUが特殊なシス
テムに従って構成される前は、いかなるメモリ(命令RO
Mアクセスから除く)、I/Oまたはコプロセッサアクセス
も実施されるべきではない。
5.DTCがシステムに存在する場合は、モッドbレジスタ
はいずれのDTCアクセスが実施される前にプログラムさ
れるべきである。DTCがプロセッサバスに送られる場
合、それはI/Oアドレスに応答するようにプログラムさ
れるべきである(ICUはI/Oアクセスを無視するようにプ
ログラムされるべきである)。
ここでICUのマルチプロセッサ支持特徴に転じる。
キャッシュの観点から、マルチプロセッサ編成の主な
問題は、データ一貫性問題である。この問題が生じるの
は、1を越えるキャッシュが同一メモリ場所のコピーを
含み、それがキャッシュのうちの1個でそのプロセッサ
により修正される場合である。そのとき他のキャッシュ
はデータの新しくない(更新されていない)コピーを含
む。新規のICUアーキテクチャがこれらの問題を取扱
う。新規のICUに組入れられたマルチプロセッサ支持構
成は他のマルチプロセッサキャッシュ環境においても同
様に適用され得ることが当業者により認められるであろ
う。
ICUマルチプロセッサ支持の陰の基本的哲学は、高性
能および高能率マルチプロセッサキャッシュシステムを
可能にするために広範囲な特徴を含むことである。この
特徴は、ICUがマルチプロセッサシステム編成に最小限
の制約を課すように、十分な柔軟性を含む。マルチプロ
セッサ支持特徴を利用するための適当な方法の選択は簡
単である。それは、オンチップ特殊レジスタにおいてオ
プションビットをプログラムすることによりソフトウェ
ア制御の下で行なわれる。
ここで、第4図に対し参照がなされる。
典型的な簡略化され共有されるバスマルチプロセッサ
システム図が第4図に示されている。2個またはそれ以
上のプロセッサ群は同一メモリバスを共有し得る(図に
2個が示されている)。各プロセッサ群は、1個のプロ
セッサおよび2個のICUからなる。一方のICUは命令キャ
ッシュのために使用され、他方はデータキャッシュのた
めに使用される。プロセッサアドレスバス(A)は、2
個のICUのアドレスバス(A)に接続された状態で示さ
れている。プロセッサ命令バス(I)は命令キャッシュ
のキャッシュバス(CB)に接続される。プロセッサデー
タバス(D)はデータキャッシュのキャッシュバス(C
B)に接続される。ICUのメモリバス(MEMAD)は双方と
も、共有されたメモリバスに接続される。この基本図の
多くの変更例が、この発明の範囲または精神から逸脱す
ることなしに可能である。
この発明の好ましい実施例によれば、2個のブロック
ステータスビットと4個の有効ビットは各キャッシュブ
ロックと関連することが思い出されるべきである。有効
ビットが、ブロックにおけるワードの妥当性を示す。各
有効ビットは1ワードに対応する。少なくとも1個の有
効なビットがセットされる場合、ブロックは有効であ
り、ブロックステータスビットは有効なステータスを示
す。すべての有効なビットがリセットされる場合、ブロ
ックは有効でないステータスにあり、さらに、ブロック
ステータスビットは不適切である。ブロックステータス
ビットは、共有されかつ修正されたビットと呼ばれる。
共有されたビットは、ブロックが1を越えるプロセッサ
により共有されるかどうか、または1を越えるキャッシ
ュに存在するかどうかを示す。修正されたビットは、ブ
ロックがメインメモリに関して修正されるかどうかを示
す。2個のビットは独立しており、有効なブロックが次
のステータスで指定され得る。
キャッシュ不能データは、キャッシュされないデータ
変数であることがまた思い出されるべきである。キャッ
シュ不能プロセッサバスアクセスがICU、ASTC入力に対
し示される。このアクセスで、キャッシュは所要のデー
タを探索されない。メモリアクセスがメモリにおけるデ
ータの読出しまたは書込みのために開始される。このデ
ータのためにキャッシュにおいてブロックが割当てられ
ない。キャッシュ不能データはアクセス基準によりアク
セスの際に規定され得る。通常、ASTC入力はプロセッサ
のMMUプログラム可能(MPGM)出力に接続される。この
場合、キャッシュ不能データがMMUページ基準に基づい
て指定される。キャッシュ不能データはキャッシュ不能
とシステムによって指定される場所に置かれるべきであ
る。データ一貫性問題を解決するための1つの方法は、
キャッシュ不能として共有された変数を指定することで
ある。
プロセッサバスメモリアクセスがまた、インターロッ
クアクセスとして特定され得る。これは、ICU★LOCK入
力をセットすることにより行なわれる。インターロック
アクセスはモッドbレジスタにより制御され、キャッシ
ュ可能またはキャッシュ不能アクセスとして示され得
る。
マルチプロセッサ環境においては、インターロック変
数は同期化と、同期化された通信のために使用され得
る。これらの変数は同期化された方法でアクセスされ
る。それらは所与の時間に唯一のプロセッサにより書込
まれ得る。インターロックアクセスに対するICU支持の
詳細な説明が後で明らかにされる。
ICUはフレキシブルなライトスルーおよびコピーバッ
ク書込ポリシーを支持する。これらの書込ポリシーは、
全体的にかまたはアクセスごとに指定され得る。モッド
aレジスタは全体的な書込ポリシーを制御する。それは
フレキシブルなライトスルーまはたコピーバックポリシ
ーを特定し得る。ASTC入力は、アクセスごとに書込ポリ
シーを規定する。アクセスは、排他的ライトスルー、排
他的コピーバック、または共有された点として指定され
得る。キャッシュヒットの場合、キャッシュにおいてAS
TC入力が共有されたビット割当てとブロックステータス
が共有されるビットとの間に矛盾が存在する場合は、書
込動作はモッドbレジスタにおけるプロセッサ共有ビッ
ト制御(PSBC)上の値により制御される。PSBCが0であ
る場合、ブロックステータス共有ビットは影響を及ぼさ
れず、書込ポリシーはブロックステータスに従って決定
される。PSBCが1である場合、ブロックステータス共有
ビットはASTC入力に従って指定され、書込ポリシーはそ
れに応じて決定される。
共有された書込アクセスの場合、ライトスルーまたは
ライト同報通信アクセスは常にメモリバス上で実施され
る。この場合、モッドbレジスタにおける書込共有ヒッ
ト制御(WSHC)フィールドはICU動作を制御し、書込ポ
リシーフィールドは制御しない。
マルチプロセッサキャッシュ環境においては、ライト
スルーポリシーはコピーバックポリシーほど問題を有さ
ない。ライトスルーが利用される場合、メモリは常にデ
ータの更新されたバージョンを含んでいる。ライトスル
ーアクセスはまた、それら自体のコピーを無効にするた
めに他のキャッシュにより使用され得る。
プロセッサバスキャッシュ命令は、マルチプロセッサ
環境においてキャッシュを制御するためのシステムによ
り使用され得る。古いデータを無効にするために、無効
にせよの命令が利用され得る。より複雑なソフトウェア
制御のマルチプロセッサキャッシュにおいては、ブロッ
クステータスの読出しおよび書込みと、メモリ更新と、
メモリバスでキャッシュされたデータを送ることのため
に、他の命令が使用され得る。
ICUのさらなるマルチプロセッサ支持特徴が「バスウ
ォッチング」である。新規のICUはメモリバスアドレス
を見張ることが可能であり、それらがタグアレイにおけ
るアドレスと一致するかどうかを検査する。これは、プ
ロセッサバスキャッシュアクセスに対し透明に行なわれ
る。モッドbレジスタにおける読出バス見張り可能化情
報は、メモリバス読出アクセスに対するバスウォッチン
グ能力を制御(可能化または不能化)する。モッドbレ
ジスタにおける書込バス見張り可能化情報は、メモリバ
ス書込アクセスに対し同じことを行なう。可能化される
と、バスはICUがバススレーブである場合のみ見張られ
る。アドレス一致の場合、ICUはモッドbレジスタにお
ける読出一致制御および書込一致制御情報により制御さ
れるような動作を実施する。
メモリバス読出しの際の一致の場合、★HIT信号はICU
によりアサートされる。共有されたブロックステータス
ビットは、ブロックが別なキャッシュにより潜在的に取
出されるのでセットされる。モッドbレジスタは、デー
タ介入動作とブロックステータスが修正されたビット割
当てとを制御する。そのオプションは、データ介入では
ないのと、データ介入(修正されたビットが未変化であ
る)と、さらにデータ介入(修正されたビットがリセッ
トされる)である。
データ介入が不能化されるときには、別なマスタによ
り読出されるメモリバス上の一致の場合には、ICUは★H
IT信号をアサートするが、データを駆動しない。ブロッ
クステータスが修正された情報は変えられない。データ
介入が可能化されるとき、メモリバス読出しに対し別な
マスタにより一致が見い出され、かつブロックが修正さ
れる場合、ICUが★DI出力をアサートし、かつメモリバ
スで所要のデータを供給する。ブロックステータスが修
正されたビットは未変化であるかまたはリセットされる
かのいずれかである。
修正用の読出しのアクセスの際の一致の場合には、対
応するワードはスレーブキャッシュにより無効にされ
る。すべての他の点で、スレーブキャッシュ動作が規則
的な読出アクセスの際の一致の場合に類似する。
メモリバスバーストモードアクセスで、最初のアドレ
スはラッチされる。アドレスはすべての単一転送の間ス
レーブキャッシュにおいて増分および検査される。一致
の場合のスレーブキャッシュ動作は、単一アクセス一致
に類似する。
読出しのためのバスウォッチングは、後で詳細に説明
されるべきデータ一貫性所有権機構の支持において不可
欠である。
いくつかの所有権機構によりデータ介入オプションが
必要とされる。それらの機構では、メモリはそれを支持
するように設計されるべきである。★DI信号は、アクセ
スの最初のサイクルの間マスタキャッシュによりプリチ
ャージされる。プリチャージされたHIGH値を保持するた
めに★DI信号の際には外部プルアップレジスタが置かれ
るべきである。データ介入動作が実施される場合は、★
DI信号はスレーブキャッシュによりディスチャージされ
る。この場合、データはメモリにより供給されるべきで
はなく、さらに、読出アクセスはメモリにおいてキャン
セルされるべきである。★DI出力は、アドレスがメモリ
バス上に提示された後2サイクル有効であることに注目
されたい。メモリはこれらのサイクルの間応答不能であ
る。
メモリバス書込みまたは書込み同報通信の際の符号の
場合、★HIT信号はアサートされる。
バーストモード書込アクセスで、最初のアドレスはラ
ッチされる。すべての信号データ転送の間スレーブキャ
ッシュにおいてはアドレスは増分および検査される、一
致の場合のスレーブキャッシュ動作は、単一アクセス一
致に類似する。
書込みのためのバスウォッチングは、大半のデータ一
貫性機構の支持の際には不可欠である。
ブロックステータスが共有されるビットはどのように
して割当てられるかについての説明がここで明らかにさ
れる。
ブロックステータスが共有されるビットは、ソフトウ
ェア制御かハードウェア制御のいずれかにより割当てら
れ得る。ソフトウェア制御で、プロセッサはASTC入力を
用いることにより共有されたビットを割当て得る。これ
らの入力は、アクセス基準によりアクセスの際に共有さ
れたビット割当てを規定する。アクセスは、排他的ライ
トスルー、排他的コピーバック、または共有された、と
して割当てられ得る。通常、ASTC入力はプロセッサMPGM
信号に接続され、それらはMMUユーザプログラム可能ビ
ットに従ってドライブされる。共有されたかつ排他的な
変数は共有されたまたは排他的なページに置かれ、さら
に、ページに対するユーザプログラム可能ビットはそれ
に応じて割当てられる。モッドbレジスタのPSBCビット
の状態に依存して(先に言及された)、すべてのプロセ
ッサアクセス(PSBC=1)に対し、またはキャッシュミ
ス(PSBC=0)の場合に対してのみ、共有されたビット
は修正され得る。
ハードウェア制御で、共有されたビットは★HIT信号
を用いることにより、またはメモリバス上の特殊目的論
理および書込ブロックステータスメモリバスキャッシュ
命令を用いることにより、共有されたビットは割当てら
れ得る。読出および書込アクセスの際の★HIT信号使用
は、モッドbレジスタの外部の共有されたビット制御
(ESBC)フィールドにより制御される。
マスタキャッシュが★HIT信号を使用する場合には、
それはメモリバスアクセスの最初のサイクルの間それを
プリチャージする。次に、★HIT信号は3状態に置かれ
る。プリチャージHIGH値を保持するために、外部プルア
ップレジスタが★HIT信号に置かれるべきである。スレ
ーブキャッシュは、それらがそれらのタグバッファにお
いて一致を見い出す場合はそれをディスチャージする。
どちらが後にせよ、★MRDYがアサートされるときか、ま
たはメモリバスアドレスサイクルの2サイクル後に、★
HIT信号はマスタキャッシュによりラッチされる。★HIT
がアサートされる場合、変数はまた他のキャッシュにも
存在し、さらに、ブロックは共有されたステータスで割
当てられる。★HIT入力が割当てられない場合、変数は
いずれのキャッシュにも存在せず、さらに、ブロックは
排他的ステータスで割当てられる。
この方法は、いくつかの所有権機構において使用され
る。それは、共有されたステータスが変数の正確な状態
を反映することを保証する。それは、それが別なキャッ
シュに存在する場合のみ共有される。★HIT信号の使用
に関連して性能を代償としていることに注目されたい。
ICUは、すべての他のキャッシュが応答するまで、2サ
イクルの間待たなければならない。共有されたビットが
修正されなければならない場合は、特殊内部キャッシュ
アレイアクセスがまた必要とされる。これは、このオプ
ションを選択する前に、利点に反して考慮されるべきで
ある。
先に説明された書込ブロックステータスメモリバスキ
ャッシュ命令は、ブロックステータスが共有されたビッ
トに対し特殊なステータスを書込むために使用され得
る。この命令は、共有されたビットのフレキシブルな制
御のために外部論理により使用され得る。
上記3つの方法の間での共有されたブロック割当てに
関する矛盾の場合には、この発明の好ましい実施例にお
いては、次の優先順位に従って動作が実施される。
1.書込ブロックステータス命令 2.★HIT入力制御。
3.ASTC入力制御。
たとえば、ブロックが排他的であるとしてASTC入力に
より割当てられる場合、メモリバスアクセスが必要とさ
れる。★HIT入力使用は可能化され、それはブロックが
排他的であることを示す。書込ブロックステータス命令
はまた、メモリアクセスの間使用され、かつ共有された
ステータスを割当てる。ブロックは最後には共有された
ステータスで終わる。
共有されたブロック割当ての異なる方法とそれらの組
合わせは、新規のICUにより支持されるすべてのマルチ
プロセッサキャッシュシステムの実現のために使用され
る。
次に、書込ヒットが共有されたブロックに対し起こる
場合のICU動作が説明される。
書込アクセスが共有されたブロックに向けられ、かつ
それがキャッシュにおいてヒットする場合、メモリバス
上で特殊な動作が実施されるべきである。システムにお
ける他のキャッシュは、共用されたデータ変数が修正さ
れたという事実に気がつくべきである。それらのコピー
は、共有された変数の現在のバージョンを反映するよう
に、無効かまたは更新のいずれかがなされるべきであ
る。メインメモリは、書込まれるかまたは書込まれない
かのいずれかが行なわれ得る。マスタキャッシュのブロ
ックステータスはそれに応じて影響を及ぼされる。共有
されたブロックに対する書込ヒットの際のICU動作は、
モッドbレジスタにおける書込共有ヒット制御(WSHC)
フィールドにより制御される。1つのコード化機構は次
のとおりである。
WSHC=00の場合、ICUは共有されたブロックに対する
いずかの書込HITもライトスルーする。メモリは更新さ
れ、他のキャッシュは無効にされる。ブロックは排他的
で修正されないステータスで割当てられる。ブロックが
排他的になるので、同一ブロックへのさらなる書込みは
キャッシュにおいてのみ書込まれ得る。共有された変数
が他のプロセッサにより必要とされる前に1個のプロセ
ッサにより何度も書込まれる場合は、この機構は有効で
ある。
WSHC=01の場合、ICUはメモリバス上で書込同報通信
トランザクションを利用する。メモリは更新されず、他
のキャッシュが無効にされる。ブロックは排他的で修正
されるステータスが割当てられる。ブロックは排他的に
なるので、同一ブロックへのさらなる書込みはキャッシ
ュにおいてのみ書込まれ得る。メモリが更新されないの
で、修正されるビットはセットされる。別なマスタがこ
のブロックを読出そうとする場合、データ介入オプショ
ンは最新の値を供給するために可能化されるべきであ
る。
WSHC=10の場合、ICUは共有されたブロックにどのよ
うな書込ヒットをもライトスルーする。メモリは更新さ
れ、他のキャッシュも更新される。ESBCが書込アクセス
に対し可能化されない場合、ブロックは共有され修正さ
れないステータスを割当てられる。ESBCが書込アクセス
に対し可能化される場合、ブロックは、★HIT入力に従
って、排他的で修正されないステータスかまたは共有さ
れ修正されないステータスを割当てられる。この機構に
おいては、すべてのキャッシュは、共有されたブロック
に対する各書込のためにメモリバス書込トランザクショ
ンを費やすることにおいて、すべてのキャッシュは同期
化された状態で維持される。それは、共有される変数が
他のプロセッサにより必要とされる前に1個のプロセッ
サにより何度も書込まれない場合に有効である。
WSH=11の場合、ICU同報通信は共有されたブロックに
どのような書込ヒットをも書込む。メモリは更新され
ず、他のキャッシュは更新される。もしESBCが書込アク
セスで不能化されないなら、ブロックは共有され修正さ
れたステータスが割当てられる。もしESBCが書込アクセ
スで可能化されるなら、ブロックは★HIT入力に従って
排他的修正されたかまたは共有されて修正されたステー
タスが割当てられる。この機構においては、すべてのキ
ャッシュが、共有されたブロックに対する各書込みのた
めのメモリバスを書込トランザクションを費やして同期
化された状態に維持される。それは、共有される変数が
他のプロセッサにより必要とされる前に1個のプロセッ
サにより何度も書込まれない場合に有効である。
メモリは更新されないので、修正されたビットはセッ
トされる。別なマスタがこのブロックを読出そうとする
場合、最新の値を供給するためにデータ介入オプション
は可能化されるべきである。
WSHCオプションは異なる所有権機構のために使用され
る。それらはまた、他のマルチプロセッサキャッシュシ
ステムのために使用され得る。
書込割当てを有するコピーバック書込ミスのためのIC
Uメモリバス動作は、モッドbレジスタ上の書込ミスメ
モリアクセス制御(WMMC)ビットにより制御される。そ
れは、書込割当てを有さないライトスルーアクセスまた
はコピーバックアクセスには影響を及ぼさない。WMMC=
1の場合、ICUは、キャッシュ書込アクセスが後に続
く、所要のサブブロックを取出すためにメモリバス上の
読出アクセスを使用する。このアクセスは、別々のキャ
ッシュ書込動作として取扱われる。それは常にヒット
し、キャッシュへと書込まれる。ブロックが共有される
場合、メモリバス動作はモッドbレジスタのWSHCフィー
ルドに従って実施される。WMMC=0の場合、修正トラン
ザクションのための読出しは所要のサブブロックを取出
すためにメモリバス上で使用される。スレーブキャッシ
ュは、一致の場合、ブロックのそれらのコピーを無効に
する。書込みはどのようなメモリバス動作もなしにキャ
ッシュにおいて実施される。
WMMCオプションは、異なる所有権機構のために使用さ
れる。それらはまた、他のマルチプロセッサキャッシュ
システムのために使用され得る。
メモリバスキャッシュ命令は、メモリバス上の特殊論
理により出される。それはキャッシュのフレキシブルな
制御を可能にする。キャッシュされたデータは無効にさ
れ、読出され、かつ書込まれ得る。ブロックステータス
は読出しおよび書込みがなされ得る。メモリバスキャッ
シュ命令の詳細な説明が先に明らかにされている。
マルチプロセッサ環境においては、特殊な制御論理は
適当なICUに命令を向けることが可能であるべきであ
る。どのような所要のマルチプロセッサシステムに対し
ても論理は設計され得る。特定的には、1個の共有され
たバス(クロスバースイッチまたは多重バス構成)のな
いシステムに対し、この方法を使用することが必要とさ
れる。これらのシステムにおいては、バスウォッチング
機能は有効でなく、さらに、それに従って特殊な論理が
システムにおいてメモリアクセスをモニタしかつ異なる
ICUに指令を出すべきである。制御論理はまた、ICUによ
っては直接的に支持されない特殊なマルチプロセッサ機
構を実現するように設計され得る。
マルチプロセッサキャッシュ編成に対する多くの可能
性が存在する。ICUは、種々の共有されたメモリマルチ
プロセッサキャッシュ編成を支持するように設計され
る。ICUはまた、共有されないメモリ編成において使用
され得るが、それはこれらのシステムに対し特殊なハー
ドウェア支持を含んではいない。後に続く詳細な説明
は、ICUにより支持される主要な共有されたメモリ編成
について述べる。変更、組合わせ、および説明されたシ
ステムとは異なるシステムも可能である。
支持される主な共有されたメモリ編成は、ソフトウェ
ア制御のキャッシュと、ライトスルーキャッシュと、ラ
イトスルー共有変数を有するコピーバックキャッシュ
と、所有権機構と、共有されないバス編成を有する共有
されるメモリである。
ソフトウェア制御のキャッシュで、すべてのマルチプ
ロセッサ通信および同期化がソフトウェア制御の下で行
なわれる。キャッシュ一貫性はソフトウェアにより維持
される。これは、キャッシュ不能変数と、インターロッ
ク動作(後で詳細に説明される)と、キャッシュ命令
(たとえば、無効にせよ)の使用との組合わせを利用す
ることによりなされ得る。共有される変数はそれらが別
なプロセッサにより修正され得る場合は、適当なキャッ
シュからキャッシュ不能かまたは無効にされたのいずれ
かとして割当てられ得る。インターロック動作は同期化
のために使用される。共有されたバッファ、またはメイ
ルボックスが通信のために利用される。
これは、特殊なハードウェア要件または制約を有さな
い、非常にフレキシブルな機構である。それはわずかな
量の共有を有するシステムにおいてうまく利用され得
る。しかしながら、共有の量が高い場合、システム性能
はこの機構においては厳しく低下され得る。多くの変数
はキャッシュされ得ないか、あるいは、キャッシュ一貫
性維持に非常な大きなオーバヘッドが課される。この機
構の別な不利な点は、キャッシュはソフトウェアに対し
透明ではなく、かつそれについて変数が共有される情報
がわからなければならないことである。ソフトウェア制
御は他のマルチプロセッサ機構のいずれとも組合わせて
使用され得る。
この形態に対する特殊なプログラム可能オプション要
件は存在しない。モッドbレジスタは0へとプログラム
され得る。
ライトスルーキャッシュで、プロセッサは同一バスお
よびメモリを共有し、さらに、すべてのキャッシュはラ
イトスルーポリシーを利用する。マスタキャッシュがす
べてのプロセッサキャッシュ書込動作をメモリバスに転
送する。キャッシュ一貫性は書込みのためのバスウォッ
チングを利用することにより維持される。共有されたメ
モリバス上のすべての書込動作は、すべてのスレーブキ
ャッシュにおいて検査される。一致が見い出される場
合、対応するアドレスは無効にされる。これは簡単なデ
ータ一貫性機構である。その主な不利な点は、すべての
書込みがメモリバス動作を引き起こすことである。性能
はそのためにひどく低下され得る。メモリバス利用によ
り、はるかに高くなり得るので少数のプロセッサしかシ
ステムに配置されなくてもよい。書込バッファがこれら
の有害な影響を減じる助けとなり得る。
このオプションで、すべてのブロックは排他的ライト
スルーとして割当てられるべきであり、書込ポリシーは
ライトスルーとしてプログラムされるべきであり、バス
ウォッチングは書込アクセスに対し可能化されるべきで
あり、さらに、モッドbレジスタは無効にするワードを
特定すべきである。
ライトスルーが共有される変数を有するコピーバック
キャッシュで、プロセッサは同一バスおよびメモリを共
有し、さらに、キャッシュはフレキシブルな書込ポリシ
ーを用いる。排他的変数はコピーバックオプション(排
他的コピーバックとして割当てられるページに置かれ
る)を利用する。1個のプロセッサにより排他的に使用
される変数のみが排他的コピーバックとして割当てられ
ることを保証することがシステム責任である。プロセッ
サ移送が許容される場合、排他的変数は古いプロセッサ
のキャッシュにおいて無効にされなければならないこと
に注目されたい。
共有された変数はライトスルーオプション(排他的ラ
イトスルーとして割当てられるページに置かれる)を使
用する。共有されるかもしれないいずれかの変数(I/O
と共有すること、またはキャッシュを有さないプロセッ
サを含む)にこのステータスを割当てることがシステム
責任である。I/Oのようないくつかの変数はキャッシュ
不能としてなお割当てられなければならない。書込機構
のためのバスウォッチング(ライトスルーキャッシュの
ためのものに類似する)がデータ一貫性を維持するため
に利用される。スレーブキャッシュが一致の場合にそれ
らのコピーを無効にする。より良い性能を有する可能な
変更例は、スレーブキャッシュがそれらのコピーを無効
にする代わりにそれを更新することである。
この機構は、すべての共有された変数が既知であり、
かつライトスルーまたは共有されたページに置かれてい
るという過程に基づいている。この場合、ライトスルー
機構と比べてより良い性能が達成され得る。しかしなが
ら、共有の量が高い場合、共有されたデータのライトス
ルー動作の不利な点はより重要となり、性能は低下す
る。
共有されかつ排他的な変数割当てから除いて、バスウ
ォッチングは書込アクセスのために可能化されるべきで
あり、さらにモッドbレジスタは無効ワードを特定すべ
きである。スレーブキャッシュ更新変化が所望される場
合、モッドbレジスタはそれに応じてプログラムされる
べきである。
所有権機構に転じる。これらの機構は、データ一貫性
を維持するためのバスウォッチングを有する共有された
メモリおよび共有されたバス編成に基づいている。所有
権機構の基本的原理は、変数がただ1個のキャッシュに
よって所有されることである。所有キャッシュは変数の
最新バージョンを含み、さらに、それはその一貫性の維
持に対し責任がある。変数がキャッシュによって所有さ
れない場合は、メモリは更新された値を含む。すべての
所有権機構において、変数はキャッシュにおけるいくつ
かの(最大数5)状態のうちの1個にあり得る。ICUの
好ましい実施例により支持される5個の可能な状態(ブ
ロックステータス)は次のとおりである。
1.排他的ライトスルー 2.排他的コピーバック 3.共有され修正されない 4.共有され修正される 5.有効でない 各所有権機構は、状態遷移を制御するハードウェアに
より実現された状態マシンにより支持される。異なる所
有権機構は、読出一致、書込一致、書込ヒット、および
書込ミスの場合において異なる動作を必要とする。キャ
ッシュにおけるかつシステムにおけるハードウェア支持
の異なる量が一般にそれに応じて必要とされる。
所有権機構のいずれもキャッシュのソフトウェア制御
を必要としない。それらはより複雑なハードウェアの要
求をしてより高性能を可能にする。
当業者には周知の6個の所有権機構が存在する。それ
らは次のとおりである。
1.ライトワンス 2.バークレー 3.イリノイ 4.ファイアフライ 5.ドラゴン 6.フューチャーバス シナプス機構として公知であるもう1個の機構は、ラ
イトワンス機構と非常に類似しているが、それは各キャ
ッシュブロックに対するメインメモリに含まれる単一ビ
ットタグに依存する。この機構はICUにより直接には支
持されないが、それはライトワンスオプションおよび何
らかの外部論理を用いることにより実現され得る。
種々の所有権機構詳細は周知であり、印刷された出版
物において教示されるけれども、各機構の主な特徴の短
い説明が、完全さのために、かつこれらの機構がICUに
よりどのようにして支持されるかという説明を容易にす
るために明らかにされる。
ICUは、すべての上記所有権機構と、ことによると、
進展し得る他の機構とを支持する。これは所要のプログ
ラム可能オプションを選択することにより達成される。
すべての所有権機構において、書込ポリシーはフレキシ
ブルであるとしてプログラムされる。大半の書込アクセ
スはコピーバックポリシーを利用し得る。バスウォッチ
ングは読出しと書込みの両方に対し可能化される。先に
規定された種々の制御フィールドを有するモッドbレジ
スタは、種々の所有権機構を実現するために使用され得
る。
ライトワンス機構においては、排他的で修正されない
状態と、排他的で修正される状態と、共有され修正され
ない状態と、無効の状態とだけが規定される。共有され
修正される状態は使用されない。この機構の基本的な原
理は、最初にキャッシュにおいてヒットするすべての書
込み(共有されたページへの書込み)がライトスルー動
作を引き起こすことである。次に、ブロックは排他的で
修正されるとして割当てられ、さらなる書込みがキャッ
シュにおいてのみ実施され得る。スレーブキャッシュは
ブロックのそれら自体のコピーを無効にする。排他的ブ
ロックへのコピーバック書込みが修正されたビットをセ
ットする。排他的で修正されたブロックがキャッシュに
より所有され、さらに、別なキャッシュがそれを読出そ
うとする(メモリはまた更新され、次にブロックは共有
され修正されないとして割当てられる)場合には、デー
タ介入が利用される。この機構で、すべてのプロセッサ
アクセスは共有されるとして割当てられるべきである。
排他的ブロックステータスはASTC入力により共有された
支持を無効にすることに注目されたい。
バークレー機構においては、排他的で修正される状態
と、共有され修正されない状態と、共有され修正される
状態と、無効の状態のみが規定される。排他的で修正さ
れない状態は利用されない。排他的で修正されるブロッ
クまたは共有され修正されるブロックを含むキャッシュ
がそのオーナーである。読出しの際のミスの場合は、ブ
ロックは共有され修正されないとして割当てられる。共
有されるブロックに対する書込ヒットの場合、書込同報
通信動作が実施され、ブロックは排他的で修正されない
として割当てられる。他のキャッシュがブロックのそれ
ら自体のコピーを無効にする。読出一致の場合において
はデータ介入がオーナにより実施される。この機構で、
すべてのプロセッサアクセスが共有されるとして割当て
られるべきである。
イリノイ機構においては、排他的で修正されない状態
と、排他的で修正される状態と、共有され修正されない
状態と、無効の状態のみが規定される。共有され修正さ
れない状態は利用されない。排他的で修正されるブロッ
クを含むキャッシュがそのオーナである。読出しの際の
ミスの場合は、ブロックは、★HIT入力に依存して、共
有され修正されないかまたは排他的で修正されないとし
て割当てられる。共有されたブロックに対する書込ヒッ
トの場合、書込同報通信動作が実施され、ブロックは排
他的で修正されるとして割当てられる。他のキャッシュ
はブロックのそれら自体のコピーを無効にする。読出一
致の場合には、データ介入がオーナにより実施される。
データ介入動作は最初のイリノイ機構規定とは異なって
いるが、終了結果は同一であることに注目されたい。最
初の規定においては、所要のデータのコピーを含むすべ
てのキャッシュが介入しようとする。本件の場合におい
ては、ブロックが修正される場合にのみデータ介入が実
施される。ブロックが共有され修正されない場合、デー
タはメモリから供給される。この機構で、プロセッサア
クセスにより共有されるビット割当ては不適切である。
というのは、★HAT信号がこの目的のために利用される
からである。
ファイアフライ機構においては、排他的で修正されな
い状態と、排他的で修正される状態と、共有され修正さ
れない状態と、無効の状態のみが規定される。共有され
修正される状態は利用されない。排他的で修正されるブ
ロックを含むキャッシュがそのオーナである。読出しの
際のミスの場合、ブロックは★HIT入力に依存して共有
され修正されないかまたは排他的で修正されないとして
割当てられる。共有されるブロックに対する書込ヒット
の場合、ライトスルー動作が実施され、ブロックは★HI
T入力に従って共有され修正されないかまたは排他的で
修正されないとして割当てられる。メモリアレイにおい
ては他のキャッシュがそれら自体のデータを更新する。
読出一致の場合にはオーナによりデータ介入が実施され
る。データ介入動作は最初のファイアフライ機構規定と
は異なっているが、終了結果は同一であることに注目さ
れたい。最初の規定においては、所要のデータのコピー
を含むすべてのキャッシュが介入しようとする。本件の
場合においては、ブロックが修正される場合のみ、デー
タ介入が実施される。ブロックが共有され修正されない
場合、データはメモリから供給される。この機構に対
し、プロセッサアクセスが共有されるビット割当ては不
適切である。というのは、★HIT信号がこの目的のため
に利用されるからである。
ドラゴン機構においては、5個のブロックステータス
すべてが利用される。排他的で修正されるブロックかま
たは共有され修正されるブロックを含むキャッシュがそ
のオーナである。読出しの際のミスの場合は、ブロック
は★HIT入力に依存して共有され修正されないかまたは
排他的で修正されないとして割当てられる。共有された
ブロックに対する書込ヒットの場合は、ライトブロード
キャスト動作が実施され(メモリは更新されない)、さ
らに、ブロックは★HIT入力に従って共有され修正され
ないかまたは排他的で修正されないとして割当てられ
る。他のキャッシュがデータのそれら自体のコピーを更
新する。読出一致の場合、データ介入がオーナにより実
施される。この機構で、プロセッサアクセスが共有され
るビット割当ては不適切である。というのは、★HIT信
号はこの目的のために利用されるからである。
フューチャバス機構においては、5個のブロックステ
ータスすべてが利用される。この機構は、他のすべての
所有権機構の実現(いくつかのわずかな修正を伴う)を
可能にするフレキシブルな機構である。読出および書込
一致ばかりでなく、ヒットならびに読出および書込ミス
の場合に対するキャッシュ動作は、異なる所有権機構実
現に対して十分な柔軟性で規定される。★HIT信号の利
用も任意である。フューチャバス機構はICUの柔軟性に
より十分に支持される。ICUはフューチャバス機構によ
り必要とされるよりも多くの柔軟性を含み、そのため、
データ介入の際のメモリ更新および書込同報通信支持と
同様、いくつかの制限が除去される。この機構に対し、
プロセッサアクセスが共有されるビット割当てがソフト
ウェア割当てによりまたは★HIT信号を利用することに
より実施され得る。
最後に、共有されるバス編成を有さない共有されるメ
モリに転じる。まず、共有されるバスマルチプロセッサ
編成においてのみバスウォッチング能力は有用であるこ
とが注目されるべきである。多重バスまたはクロスバー
スイッチを含む他の共有されるメモリ編成もまたICUに
より支持される。これらの編成は、共有されるバスがシ
ステムにおける、ネックとなる場合に必要とされる。こ
の場合、それらはより多数のプロセッサとより良好な性
能を可能にする。
これらの編成に対する基本的な支持は、メモリバスキ
ャッシュ命令である。メモリバスキャッシュ命令の詳細
な説明が先に述べられている。メモリアクセスをモニタ
しかつ適当なICUにキャッシュ命令を出すために、外部
制御論理が必要とされる。この論理は、特殊なシステム
編成に従って設計され得る。それはすべてのメインメモ
リアクセスをモニタすることが可能であるべきである
(この機能はメモリ制御器に置かれ得る)。次に、包括
的な情報に従って、メモリバスキャッシュ命令が適当な
キャッシュに向けられ得る。そのような実現の詳細はシ
ステム依存的であり、この発明の一部ではなく、多くの
変更が可能である。これらの編成に対するICU支持を例
示するために、いくつかの基本的機能がここで説明され
る。
1個のキャッシュがメモリからブロックを読出そうと
する場合、ブロックを、共有されているまたは専用であ
ると指定するために、制御論理は書込ブロックステータ
ス命令を利用し得る。所有の変数の更新されたバージョ
ンがメモリにではなくキャッシュの1個に存在する場
合、次の命令、すなわちワードを送れ、修正された場合
はワードを送れ、または修正された場合はブロックを送
れの命令が更新されたバージョンを受けるために利用さ
れ得る。
キャッシュのいくつかに存在する共有された変数はプ
ロセッサの1個により書込まれる場合、ICUは書込情報
をライトスルーするかまたはライト同報通信するように
プログラムされ得る。ワードを無効にせよと命令、ブロ
ックを無効にせよの命令、またはキャッシュに書込めの
命令が、他のキャッシュのコピーを無効または更新する
ために利用され得る。
いずれかのキャッシュブロックのブロックステータス
は、ブロックステータスを読出せの命令およびブロック
ステータスを書込めの命令を利用することにより、必要
なときはいつでも読出しまたは書込みがなされ得る。こ
れは、キャッシュ内容に関する情報を集めるかまたはブ
ロックステータスを特定するために、制御論理により行
なわれ得る。
共有されたヒット、読出および書込ミスの場合にICU
動作を特定するために、これらの編成に対しいくつかの
プログラム可能オプションがまた利用され得る。バスウ
ォッチングは、メモリバスキャッシュ命令の代わりに、
特殊な理論がICUメモリバス上で読出および書込動作を
出すように設計される場合に利用され得る。
多重バス編成においては、バスウォッチングとメモリ
バスキャッシュ命令の組合わせが利用され得る。バスウ
ォッチングは同一バスを共有するキャッシュのデータ一
貫性をカバーし得る。インターバスデータ一貫性、すな
わち別なバスに置かれるキャッシュにおけるデータに影
響を及ぼす1個のバス上の動作に対し、適切なアクセス
を転送するためにまたは適当なキャッシュにメモリバス
命令を出すために、特殊な論理が必要とされる。特殊論
理の設計は、当業者の能力範囲内でかつこの発明の範囲
外で申し分がない。
新規のICUの説明を完了するために、そのインターロ
ック機能が詳細に説明される。しかしながら、まず、よ
り一般的にはICUのコンテキストにおいては、当業者
は、インターロック変数がマルチプロセッサ環境または
マルチタスキング環境においてはセマフォおよび他の同
期変数のために利用されことを認めるであろう。同期変
数はまた、共有されるメモリ領域に対する保護キーとし
て利用され得る。インターロック変数へのアクセスは同
期化されるべきである。1個のプロセッサのみがいずれ
の所与の時間にもインターロック変数をアクセスするこ
とを可能にされるべきである。インターロック変数のど
のような読出しも変数の最新の値を戻すべきである。
インターロック変数アクセスを支持するために、プロ
セッサはいくつかのタイプのアトミック(atomic)読出
−修正−書込動作を含むべきである。これは、プロセッ
サによりアトミックな方法で変数を検査しかつそれに影
響を及ぼすことを可能にするが、他のプロセッサは干渉
し得ない。キャッシュメモリを含むシステムにおいて
は、インターロック変数は特殊な問題を生じるが、その
理由は、それらのアクセスがキャッシュとは無関係に同
期化されるべきであるからである。
この問題に対する簡単な解決方法は、すべてのインタ
ーロック変数をキャッシュ不能として割当てることであ
る。この場合、インターロック変数はキャッシュされる
ことを可能にはせず、さらに、すべてのインターロック
アクセスがメモリへ向けられる。この方法は、大半の公
知のキャッシュシステムにおいて利用される。主な不利
な点は、メモリへのインターロック変数アクセスにより
引き起こされる、より低い性能と、より高いバス利用で
ある。インターロックアクセスの回数が増大するにつれ
て、性能に及ぼす影響がひどくなり得る。
新規のICUと、実際に、それ自体の権利において新規
である後で説明されるべきインターロック機能は、イン
ターロック変数のキャッシングを考慮に入れている。こ
れは、達成されるべきより良好な性能とより低いバス利
用を可能にする。大半のインターロック変数アクセスは
より迅速であり、アクセスがキャッシュにおいてのみ行
なわれるので、メモリバス上には現われない。機構は簡
単であり、シングルチップICUで実現され得る。
インターロック変数と関連する同期化を保証するいく
つかの方法がある。この発明の例示の実施例と関連する
プロセッサは、能率的なインターロッキングに必要とさ
れる基本的動作を含む。特定的には、LOADSET命令、LOA
DL命令、およびSTOREL命令と、現プロセッサステタスレ
ジスタにおけるLKビットと、★LOCK出力である。ICU
は、インターロック変数を取扱うための2個の機構を実
現する。所望の機構は、モッドbレジスタのキャッシュ
インターロック可能化(CILE)ビットをプログラムする
ことにより選択され得る。
CILEビットがLOWである場合、キャッシングインター
ロック変数は不能化される。インターロックアクセス
(アサートされる★LOCKビット)はキャッシュ不能アク
セスとして取扱われる。キャッシュはヒットを探索され
ず、さらに、アクセスはロック支持(アサートされる★
MLOCK)でメモリバスへ転送される。このオプションに
おいては、インターロック変数取扱いはメモリ制御の下
にある。★MLOCK信号が活性状態である間は、メモリは
インターロック変数へのいずれのアクセスも不能化され
るべきである。メモリにおいてインターロック変数をテ
ストおよびセットするために、LOADSET命令が利用され
得る。
CILEビットがHIGHである場合、インターロック変数を
キャッシュするための機能が可能化される。これは、イ
ンターロック変数のより有効な取扱いを可能にするため
にICUに組込まれる、特殊機能である。それはプロセッ
サと互換性があり、プロセッサの異なるインターロック
基本動作を利用する。
インターロックされた読出しおよび書込動作(★LOCK
はアサートされた状態にある)は特殊な方法で取扱われ
得る。インターロックされた読出し(LOADAL命令および
LOADSET命令に対しプロセッサにより発生される)は、
それが共有されたブロックでヒットしない限り、ミスと
して取扱われる。アサートされた状態にある★MLOCKで
再ロード動作がメモリアドレス上で開始される。読出デ
ータはキャッシュにストアされ、ブロックは共有される
として割当てられる。共有されたブロックヒットに対
し、データはメモリアドレスバスアクセスなしでキャッ
シュにより供給される。
インターロックされた書込動作が、プロセッサSTOREL
に対してはLOADSET命令の書込みとは異なって取扱われ
る。ICUは、書込アクセスの前にくるサイクルにおいて
★LOCK入力の状態に従って2つのタイプのインターロッ
ク書込みの間で識別し得る。★LOCKビットがセットされ
た場合、その意味するところは、インターロック書込み
はLOADSET命令の書込みである、ということである。そ
れがセットされなかった場合、これはSTORELの書込みで
ある。
インターロックされたSTOREL書込みに対し、ICUはメ
モリに対するライトスルー動作を開始する。キャッシュ
ヒットの場合、ブロックは無効にされる。
インターロックされたLOADSET書込みに対し、データ
はキャッシュへ書込まれる。LOADSET命令の読出アクセ
スがミスを発生し場合のみ、データはメモリにも書込ま
れる。これは、インターロックされた変数が初めて読出
されたときのみメモリが書込まれることを保証する。
両方の場合に対し、★MLOCK出力はメモリ書込動作の
間アサートされる。アサートされた★MLOCKを伴う書込
みが別なマスタにより実施される場合、他のすべてのキ
ャッシュがそれら自体のコピーを無効にする。
インターロック機能が可能化される(変数が可能であ
るかもしれない)場合、プロセッサがインターロック変
数をアクセスすべきである特殊な方法がある。LOADSET
命令はインターロック変数をテストしかつセットするた
めに利用される。変数値が0である場合、それは使用中
ではなく、プロセッサ(またはプロセス)により利用さ
れ得る。LOADSET命令の結果、サブブロックがキャッシ
ュにロードされることに注目されたい。このサブブロッ
クはインターロック変数(ワード)を含み、サブブロッ
クサイズが1より大きい場合はことによるといくつかの
他のワードを含む。ユーザは、この事実を利用すること
が可能であり、かつインターロックされた変数の同一サ
ブブロックに関連する情報を置くことが可能である。
変数値が1である場合、それは使用中であり、それ
(またはそれが保護する領域)は利用され得ない。プロ
グラムは、使用中の待ち機構を利用して変数がフリーに
なるまでテストを続行し得るか、または他の動作(また
はタスク)を行ないかつ後で変数を検査し得る。変数の
テストは、LOADSET命令を利用することにより行なわれ
る。
マスタICUは、最初のLOADSET命令に対してのみメモリ
アドレスバスを使用する。変数はメモリから読出され、
共有されたブロックステータスでキャッシュに置かれ
る。LOADSETの最初の書込みはまたメモリに書込まれ
る。次のLOADSET命令はキャッシュにおいて(大抵の場
合)ヒットしメモリアドレスバスを使用しない。他のキ
ャッシュは、アサートされた★MLOCKでの書込みの際の
一致の場合、それ自体のコピーを無効にする。
STOREL命令は、インターロックされた変数のリリース
のために使用される。STOREL命令の結果、アサートされ
た★MLOCKでの書込アクセスがマスタキャッシュにより
メモリアドレスバス上で開始され、変数はすべての他の
キャッシュにおいて無効にされる。変数がマスタキャッ
シュになお存在する場合は、それはまた無効にされる。
これは、プロセッサによるこの変数への次のアクセスが
ミスになることを保証するために行なわれる。変数は、
最新値を得るためにメモリから読出されるであろう。マ
スタキャッシュによるインターロック変数の利用の間、
別なプロセッサが初めて(LOADSETを用いて)同一変数
をテストしようとしている場合には、LOADSETの書込み
はメモリアドレスバス上で出され、変数は他のすべての
キャッシュ(マスタキャッシュを含む)において無効に
される。
変数を待ち続けていたすべての他のプロセッサは、そ
れらが次にそれをテストする場合にはメモリをアクセス
しなければならない。バス調停でかつ1個のキャッシュ
だけがフリーなインターロックされた変数を得る。
インターロック機能を用いることの主な利点は、より
良好な性能とより低いメモリバス利用である。多くのイ
ンターロック変数アクセスを伴うマルチプロセッサシス
テムにおいては、かなり性能改良がそれを用いることに
より達成され得る。別な利点は、メモリ制御器がインタ
ーロックアクセスを規則的なアクセスとして取扱い得る
ことである。
ここで説明されたものは、それ自体新規のICUと、フ
レキシブルなキャッシュシステム設計、新規のキャッシ
ュインターロック機能、新規でかつフレキシブルなマル
チプロセッサ支持機構、および集積キャッシュメモリ用
プリロード機構のためのICUの新規の編成とともに含
む。上述のことに関する詳細は、新規のICU機能、その
内部レジスタ、入出力、サンプル命令セット、データフ
ォーマット、プログラム可能性、支持されるシステムの
タイプなどに関して明らかされてきた。この提示の点か
ら、当業者は、先に明らかにされたこの発明の目的が満
たされたことを容易に認めるであろう。
新規の方法および装置の好ましい実施例および例示の
具体例の先の説明は、例示および説明のためのみに提示
されてきた。余すところがないことまたはこの発明を開
示された厳密な形態に限定することは意図されておら
ず、さらに、明らかに多くの修正および変更が上記の教
示に鑑みて可能である。
ここに明らかにされた実施例および具体例は、それに
よって実行される特定の用途に適するように種々の実施
例においてかつ種々の修正を伴ってこの発明を最もうま
く当業者が利用することを可能にするように、この発明
の原理およびその実際の応用を最もうまく説明するため
に提示された。
この発明の範囲は前掲の特許請求の範囲により規定さ
れることが意図されている。
【図面の簡単な説明】
第1図は、2個の新規のICUを含む計算システムのブロ
ック図である。 第2図は、ピンパッケージと、新規のICUへのおよびそ
こからの種々の入出力の図である。 第3図は、新規なICUを介する、第1図のプロセッサバ
スユニットとメモリバスユニットとの間のデータの流れ
を描く、データの流れの図である。 第4図は、一方が命令キャッシュとして使用され、他方
がデータキャッシュとして使用される、1プロセッサあ
たり2個のICUを有する、簡略化され共有されるバスマ
ルチプロセッサのシステムの図である。 図において、10は命令キャッシュ、102はデータキャッ
シュ、110は命令プロセッサ、150は命令ROM、190はメモ
リ、195は算術加速器、198はデータ転送制御器である。

Claims (5)

    (57)【特許請求の範囲】
  1. 【請求項1】集積回路であって、 第1の複数のピンを備え、前記第1の複数のピン上でコ
    マンドがコード化可能であり、前記コマンドは書込ブロ
    ックステータス命令を含み、 第2の複数のピンをさらに備え、前記コマンドが前記書
    込ブロックステータス命令であれば前記第2の複数のピ
    ン上でブロックステータスがコード化可能であり、 前記第1の複数のピンおよび前記第2の複数のピンに結
    合されたキャッシュユニットをさらに備え、前記キャッ
    シュユニットは、 前記キャッシュユニット内にストアされたブロックに対
    応するアドレスタグをストアするように構成されたタグ
    アレイと、 前記キャッシュユニットにストアされた前記ブロックの
    各々に対応するブロックステータスをストアするように
    構成されたブロックステータスアレイと、 前記タグアレイおよび前記ブロックステータスアレイに
    結合されたキャッシュ制御ユニットとを含み、前記キャ
    ッシュ制御ユニットは、前記書込ブロックステータス命
    令に対応するアドレスによって特定される特定のブロッ
    クが前記キャッシュユニット内にストアされているか否
    かを、前記アドレスを前記タグアレイにストアされてい
    る前記アドレスタグと比較することによって判定するよ
    うに構成されており、かつ前記キャッシュ制御ユニット
    は、前記ブロックステータスアレイ内の前記特定のブロ
    ックの対応するブロックステータスを、前記特定のブロ
    ックが前記キャッシュユニットにストアされているなら
    ば前記第2の複数のピン上でコード化される前記ブロッ
    クステータスに更新するように構成される、集積回路。
  2. 【請求項2】コンピュータシステムであって、 集積回路を備え、前記集積回路は、 第1の複数のピンを備え、前記第1の複数のピン上でコ
    マンドがコード化可能であり、前記コマンドは書込ブロ
    ックステータス命令を含み、 第2の複数のピンをさらに備え、前記コマンドが前記書
    込ブロックステータス命令であれば前記第2の複数のピ
    ン上でブロックステータスがコード化可能であり、 前記第1の複数のピンおよび前記第2の複数のピンに結
    合されたキャッシュユニットをさらに備え、前記キャッ
    シュユニットは、 前記キャッシュユニット内にストアされたブロックに対
    応するアドレスタグをストアするように構成されたタグ
    アレイと、 前記キャッシュユニットにストアされた前記ブロックの
    各々に対応するブロックステータスをストアするように
    構成されたブロックステータスアレイと、 前記タグアレイおよび前記ブロックステータスアレイに
    結合されたキャッシュ制御ユニットとを含み、前記キャ
    ッシュ制御ユニットは、前記書込ブロックステータス命
    令に対応するアドレスによって特定される特定のブロッ
    クが前記キャッシュユニット内にストアされているか否
    かを、前記アドレスを前記タグアレイにストアされてい
    る前記アドレスタグと比較することによって判定するよ
    うに構成されており、かつ前記キャッシュ制御ユニット
    は、前記ブロックステータスアレイ内の前記特定のブロ
    ックの対応するブロックステータスを、前記特定のブロ
    ックが前記キャッシュユニットにストアされているなら
    ば前記第2の複数のピン上でコード化される前記ブロッ
    クステータスに更新するように構成され、 前記コンピュータシステムはさらに、 前記第1の複数のピンおよび前記第2の複数のピンに結
    合され、前記第1の複数のピン上の前記書込ブロックス
    テータス命令および前記第2の複数のピン上の前記ブロ
    ックステータスをコード化するように構成されたロジッ
    クを備える、コンピュータシステム。
  3. 【請求項3】前記コンピュータシステムは第2の集積回
    路をさらに備え、前記第2の集積回路は、 第3の複数のピンを備え、前記第3の複数のピン上で前
    記コマンドがコード化可能であり、前記コマンドは前記
    書込ブロックステータス命令を含み、 第4の複数のピンをさらに備え、前記コマンドが前記書
    込ブロックステータス命令であれば前記第4の複数のピ
    ン上で前記ブロックステータスがコード化可能であり、 前記第3の複数のピンおよび前記第4の複数のピンに結
    合された第2のキャッシュユニットをさらに備え、前記
    第2のキャッシュユニットは、 前記第2のキャッシュユニット内にストアされたブロッ
    クに対応するアドレスタグをストアするように構成され
    た第2のタグアレイと、 前記第2のキャッシュユニットにストアされた前記ブロ
    ックの各々に対応するブロックステータスをストアする
    ように構成された第2のブロックステータスアレイと、 前記第2のタグアレイおよび前記第2のブロックステー
    タスアレイに結合された第2のキャッシュ制御ユニット
    とを含み、前記キャッシュ制御ユニットは、前記書込ブ
    ロックステータス命令に対応する前記アドレスによって
    特定される第2の特定のブロックが前記第2のキャッシ
    ュユニット内にストアされているか否かを、前記アドレ
    スを前記第2のタグアレイにストアされている前記アド
    レスタグと比較することによって判定するように構成さ
    れており、かつ前記第2のキャッシュ制御ユニットは、
    前記ブロクステータスアレイ内の前記第2の特定のブロ
    ックの対応するブロックステータスを、前記特定のブロ
    ックが前記キャッシュユニットにストアされているなら
    ば前記第4の複数のピン上でコード化される前記ブロッ
    クステータスに更新するように構成された、請求項2に
    記載のコンピュータシステム。
  4. 【請求項4】前記ロジックは前記第3の複数のピンおよ
    び前記第4の複数のピンにさらに結合され、かつ前記ロ
    ジックは、前記書込ブロックステータス命令を、キャッ
    シュ一致要件に従って、前記第1の複数のピンおよび前
    記第2の複数のピンへまたは前記第3の複数のピンおよ
    び前記第4の複数のピンへ向けるように構成される、請
    求項3に記載のコンピュータシステム。
  5. 【請求項5】集積回路内のキャッシュにおけるキャッシ
    ュブロックステータスを更新する方法であって、 前記集積回路に結合された第1の複数のピン上の書込ブ
    ロックステータス命令をアサートするステップと、 前記集積回路に結合された第2の複数のピン上の前記書
    込ブロックステータス命令に対応するブロックステータ
    スをアサートするステップと、 前記書込ブロックステータス命令に対応するアドレスに
    よって特定される特定のブロックが前記キャッシュにス
    トアされているかを判定するステップと、 前記特定のブロックが前記キャッシュにストアされてい
    るという判定に応答して、前記特定のブロックに対応す
    る特定のブロックステータスを、前記第2の複数のピン
    上に与えられた前記ブロックステータスに更新するステ
    ップとを含む、方法。
JP1010938A 1988-01-20 1989-01-19 集積回路、コンピュータシステム、および集積回路内のキャッシュにおけるキャッシュブロックステータスを更新する方法 Expired - Lifetime JP2881309B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14607688A 1988-01-20 1988-01-20
US146,076 1988-01-20

Publications (2)

Publication Number Publication Date
JPH01239663A JPH01239663A (ja) 1989-09-25
JP2881309B2 true JP2881309B2 (ja) 1999-04-12

Family

ID=22515762

Family Applications (1)

Application Number Title Priority Date Filing Date
JP1010938A Expired - Lifetime JP2881309B2 (ja) 1988-01-20 1989-01-19 集積回路、コンピュータシステム、および集積回路内のキャッシュにおけるキャッシュブロックステータスを更新する方法

Country Status (5)

Country Link
US (2) US5627992A (ja)
EP (1) EP0325421B1 (ja)
JP (1) JP2881309B2 (ja)
AT (1) ATE109910T1 (ja)
DE (1) DE68917326T2 (ja)

Families Citing this family (108)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
ATE138212T1 (de) * 1988-01-20 1996-06-15 Advanced Micro Devices Inc Integrierte cachespeichereinheit
EP0325421B1 (en) * 1988-01-20 1994-08-10 Advanced Micro Devices, Inc. Organization of an integrated cache unit for flexible usage in supporting multiprocessor operations
US7266725B2 (en) 2001-09-03 2007-09-04 Pact Xpp Technologies Ag Method for debugging reconfigurable architectures
US5915262A (en) * 1996-07-22 1999-06-22 Advanced Micro Devices, Inc. Cache system and method using tagged cache lines for matching cache strategy to I/O application
US5787469A (en) * 1996-09-06 1998-07-28 Intel Corporation System and method for exclusively writing tag during write allocate requests
KR19980032776A (ko) 1996-10-16 1998-07-25 가나이 츠토무 데이타 프로세서 및 데이타 처리시스템
DE19651075A1 (de) 1996-12-09 1998-06-10 Pact Inf Tech Gmbh Einheit zur Verarbeitung von numerischen und logischen Operationen, zum Einsatz in Prozessoren (CPU's), Mehrrechnersystemen, Datenflußprozessoren (DFP's), digitalen Signal Prozessoren (DSP's) oder dergleichen
DE19654595A1 (de) 1996-12-20 1998-07-02 Pact Inf Tech Gmbh I0- und Speicherbussystem für DFPs sowie Bausteinen mit zwei- oder mehrdimensionaler programmierbaren Zellstrukturen
EP1329816B1 (de) 1996-12-27 2011-06-22 Richter, Thomas Verfahren zum selbständigen dynamischen Umladen von Datenflussprozessoren (DFPs) sowie Bausteinen mit zwei- oder mehrdimensionalen programmierbaren Zellstrukturen (FPGAs, DPGAs, o.dgl.)
US6542998B1 (en) 1997-02-08 2003-04-01 Pact Gmbh Method of self-synchronization of configurable elements of a programmable module
US5909698A (en) * 1997-03-17 1999-06-01 International Business Machines Corporation Cache block store instruction operations where cache coherency is achieved without writing all the way back to main memory
US5958045A (en) * 1997-04-02 1999-09-28 Advanced Micro Devices, Inc. Start of access instruction configured to indicate an access mode for fetching memory operands in a microprocessor
US6032245A (en) * 1997-08-18 2000-02-29 International Business Machines Corporation Method and system for interrupt handling in a multi-processor computer system executing speculative instruction threads
US8686549B2 (en) 2001-09-03 2014-04-01 Martin Vorbach Reconfigurable elements
DE19861088A1 (de) 1997-12-22 2000-02-10 Pact Inf Tech Gmbh Verfahren zur Reparatur von integrierten Schaltkreisen
US6347361B1 (en) * 1998-02-17 2002-02-12 International Business Machines Corporation Cache coherency protocols with posted operations
US6292872B1 (en) 1998-02-17 2001-09-18 International Business Machines Corporation Cache coherency protocol having hovering (H) and recent (R) states
US6272603B1 (en) 1998-02-17 2001-08-07 International Business Machines Corporation Cache coherency protocol having hovering (H), recent (R), and tagged (T) states
US6263407B1 (en) 1998-02-17 2001-07-17 International Business Machines Corporation Cache coherency protocol including a hovering (H) state having a precise mode and an imprecise mode
US6415358B1 (en) * 1998-02-17 2002-07-02 International Business Machines Corporation Cache coherency protocol having an imprecise hovering (H) state for instructions and data
US6092159A (en) * 1998-05-05 2000-07-18 Lsi Logic Corporation Implementation of configurable on-chip fast memory using the data cache RAM
US6240490B1 (en) 1998-07-20 2001-05-29 International Business Machines Corporation Comprehensive multilevel cache preloading mechanism in a multiprocessing simulation environment
US6801207B1 (en) * 1998-10-09 2004-10-05 Advanced Micro Devices, Inc. Multimedia processor employing a shared CPU-graphics cache
US6483516B1 (en) * 1998-10-09 2002-11-19 National Semiconductor Corporation Hierarchical texture cache
US6549903B1 (en) * 1999-02-17 2003-04-15 Elbrus International Limited Integrity of tagged data
US6560677B1 (en) 1999-05-04 2003-05-06 International Business Machines Corporation Methods, cache memories, systems and computer program products for storing transient, normal, and locked entries in an associative cache memory
JP2003505753A (ja) 1999-06-10 2003-02-12 ペーアーツェーテー インフォルマツィオーンステヒノロギー ゲゼルシャフト ミット ベシュレンクテル ハフツング セル構造におけるシーケンス分割方法
US6651088B1 (en) * 1999-07-20 2003-11-18 Hewlett-Packard Development Company, L.P. Method for reducing coherent misses in shared-memory multiprocessors utilizing lock-binding prefetchs
US6434669B1 (en) * 1999-09-07 2002-08-13 International Business Machines Corporation Method of cache management to dynamically update information-type dependent cache policies
US6425058B1 (en) * 1999-09-07 2002-07-23 International Business Machines Corporation Cache management mechanism to enable information-type dependent cache policies
US6434668B1 (en) * 1999-09-07 2002-08-13 International Business Machines Corporation Method of cache management to store information in particular regions of the cache according to information-type
US6282617B1 (en) * 1999-10-01 2001-08-28 Sun Microsystems, Inc. Multiple variable cache replacement policy
US6496905B1 (en) * 1999-10-01 2002-12-17 Hitachi, Ltd. Write buffer with burst capability
US7529799B2 (en) * 1999-11-08 2009-05-05 International Business Machines Corporation Method and apparatus for transaction tag assignment and maintenance in a distributed symmetric multiprocessor system
US6421761B1 (en) 1999-11-09 2002-07-16 International Business Machines Corporation Partitioned cache and management method for selectively caching data by type
US6591361B1 (en) 1999-12-28 2003-07-08 International Business Machines Corporation Method and apparatus for converting data into different ordinal types
US6347360B1 (en) * 2000-02-25 2002-02-12 Sun Microsystems, Inc. Apparatus and method for preventing cache data eviction during an atomic operation
US6587937B1 (en) * 2000-03-31 2003-07-01 Rockwell Collins, Inc. Multiple virtual machine system with efficient cache memory design
US6859862B1 (en) 2000-04-07 2005-02-22 Nintendo Co., Ltd. Method and apparatus for software management of on-chip cache
JP2004506261A (ja) 2000-06-13 2004-02-26 ペーアーツェーテー イクスペーペー テクノロジーズ アクチエンゲゼルシャフト パイプラインctプロトコルおよびct通信
US6724391B1 (en) 2000-06-30 2004-04-20 Intel Corporation Mechanism for implementing Z-compression transparently
US6557083B1 (en) * 2000-06-30 2003-04-29 Intel Corporation Memory system for multiple data types
US6633969B1 (en) 2000-08-11 2003-10-14 Lsi Logic Corporation Instruction translation system and method achieving single-cycle translation of variable-length MIPS16 instructions
US6751721B1 (en) * 2000-08-31 2004-06-15 Hewlett-Packard Development Company, L.P. Broadcast invalidate scheme
US8058899B2 (en) 2000-10-06 2011-11-15 Martin Vorbach Logic cell array and bus system
US6460124B1 (en) * 2000-10-20 2002-10-01 Wisconsin Alumni Research Foundation Method of using delays to speed processing of inferred critical program portions
US9037807B2 (en) 2001-03-05 2015-05-19 Pact Xpp Technologies Ag Processor arrangement on a chip including data processing, memory, and interface elements
US7444531B2 (en) 2001-03-05 2008-10-28 Pact Xpp Technologies Ag Methods and devices for treating and processing data
WO2005045692A2 (en) 2003-08-28 2005-05-19 Pact Xpp Technologies Ag Data processing device and method
US7844796B2 (en) 2001-03-05 2010-11-30 Martin Vorbach Data processing device and method
US7996827B2 (en) 2001-08-16 2011-08-09 Martin Vorbach Method for the translation of programs for reconfigurable architectures
US7434191B2 (en) 2001-09-03 2008-10-07 Pact Xpp Technologies Ag Router
US8686475B2 (en) 2001-09-19 2014-04-01 Pact Xpp Technologies Ag Reconfigurable elements
US6792599B2 (en) * 2001-10-15 2004-09-14 Intel Corporation Method and apparatus for an atomic operation in a parallel computing environment
US7120762B2 (en) * 2001-10-19 2006-10-10 Wisconsin Alumni Research Foundation Concurrent execution of critical sections by eliding ownership of locks
DE10158393A1 (de) * 2001-11-28 2003-06-12 Infineon Technologies Ag Speicher für die Zentraleinheit einer Rechenanlage, Rechenanlage und Verfahren zum Synchronisieren eines Speichers mit dem Hauptspeicher einer Rechenanlage
WO2004021176A2 (de) * 2002-08-07 2004-03-11 Pact Xpp Technologies Ag Verfahren und vorrichtung zur datenverarbeitung
US7657861B2 (en) 2002-08-07 2010-02-02 Pact Xpp Technologies Ag Method and device for processing data
WO2005010632A2 (en) * 2003-06-17 2005-02-03 Pact Xpp Technologies Ag Data processing device and method
US6961807B1 (en) 2002-08-27 2005-11-01 Cypress Semiconductor Corporation Device, system and method for an integrated circuit adaptable for use in computing systems of differing memory requirements
US7577816B2 (en) * 2003-08-18 2009-08-18 Cray Inc. Remote translation mechanism for a multinode system
WO2004038599A1 (de) 2002-09-06 2004-05-06 Pact Xpp Technologies Ag Rekonfigurierbare sequenzerstruktur
US6996688B2 (en) * 2003-03-11 2006-02-07 International Business Machines Corporation Method, system, and program for improved throughput in remote mirroring systems
JP2006524850A (ja) * 2003-04-04 2006-11-02 ペーアーツェーテー イクスペーペー テクノロジーズ アクチエンゲゼルシャフト データ処理方法およびデータ処理装置
US7085909B2 (en) * 2003-04-29 2006-08-01 International Business Machines Corporation Method, system and computer program product for implementing copy-on-write of a file
US7260677B1 (en) * 2003-07-16 2007-08-21 Unisys Corporation Programmable system and method for accessing a shared memory
US7735088B1 (en) 2003-08-18 2010-06-08 Cray Inc. Scheduling synchronization of programs running as streams on multiple processors
US7437521B1 (en) 2003-08-18 2008-10-14 Cray Inc. Multistream processing memory-and barrier-synchronization method and apparatus
US7421565B1 (en) 2003-08-18 2008-09-02 Cray Inc. Method and apparatus for indirectly addressed vector load-add -store across multi-processors
US7543133B1 (en) 2003-08-18 2009-06-02 Cray Inc. Latency tolerant distributed shared memory multiprocessor computer
US8307194B1 (en) 2003-08-18 2012-11-06 Cray Inc. Relaxed memory consistency model
US7334110B1 (en) 2003-08-18 2008-02-19 Cray Inc. Decoupled scalar/vector computer architecture system and method
US7366873B1 (en) 2003-08-18 2008-04-29 Cray, Inc. Indirectly addressed vector load-operate-store method and apparatus
US7743223B2 (en) * 2003-08-18 2010-06-22 Cray Inc. Decoupling of write address from its associated write data in a store to a shared memory in a multiprocessor system
US7503048B1 (en) 2003-08-18 2009-03-10 Cray Incorporated Scheduling synchronization of programs running as streams on multiple processors
US7519771B1 (en) 2003-08-18 2009-04-14 Cray Inc. System and method for processing memory instructions using a forced order queue
US7617499B2 (en) * 2003-12-18 2009-11-10 International Business Machines Corporation Context switch instruction prefetching in multithreaded computer
US7493621B2 (en) * 2003-12-18 2009-02-17 International Business Machines Corporation Context switch data prefetching in multithreaded computer
US7350025B2 (en) * 2004-02-02 2008-03-25 Microsoft Corporation System and method for improved collection of software application profile data for performance optimization
US7340569B2 (en) * 2004-02-10 2008-03-04 Wisconsin Alumni Research Foundation Computer architecture providing transactional, lock-free execution of lock-based programs
US7191366B2 (en) * 2004-02-26 2007-03-13 International Business Machines Corporation Method and intelligent slave device transfer control unit for implementing seamless error resumption in a shared memory bus structure
EP1759312B1 (en) * 2004-05-21 2017-08-02 CA, Inc. Method and apparatus for loading data into an alternate evaluator for directory operations
US7231497B2 (en) * 2004-06-15 2007-06-12 Intel Corporation Merging write-back and write-through cache policies
US8112584B1 (en) * 2004-06-28 2012-02-07 Cisco Technology, Inc Storage controller performing a set of multiple operations on cached data with a no-miss guarantee until all of the operations are complete
JP2006031386A (ja) * 2004-07-15 2006-02-02 Nec Electronics Corp キャッシュ制御装置と方法並びにコントローラ装置
US7478769B1 (en) 2005-03-09 2009-01-20 Cray Inc. Method and apparatus for cooling electronic components
US7254686B2 (en) * 2005-03-31 2007-08-07 International Business Machines Corporation Switching between mirrored and non-mirrored volumes
US8489846B1 (en) 2005-06-24 2013-07-16 Rockwell Collins, Inc. Partition processing system and method for reducing computing problems
WO2007082730A1 (de) * 2006-01-18 2007-07-26 Pact Xpp Technologies Ag Hardwaredefinitionsverfahren
US7409502B2 (en) * 2006-05-11 2008-08-05 Freescale Semiconductor, Inc. Selective cache line allocation instruction execution and circuitry
CN100489814C (zh) * 2007-08-01 2009-05-20 杭州华三通信技术有限公司 一种共享缓存系统及实现方法
US20090164738A1 (en) * 2007-12-21 2009-06-25 Microsoft Corporation Process Based Cache-Write Through For Protected Storage In Embedded Devices
JP5157424B2 (ja) * 2007-12-26 2013-03-06 富士通セミコンダクター株式会社 キャッシュメモリシステム及びキャッシュメモリの制御方法
US9280480B2 (en) 2008-01-11 2016-03-08 International Business Machines Corporation Extract target cache attribute facility and instruction therefor
US7870339B2 (en) * 2008-01-11 2011-01-11 International Business Machines Corporation Extract cache attribute facility and instruction therefore
US7925923B1 (en) 2008-01-31 2011-04-12 Hewlett-Packard Development Company, L.P. Migrating a virtual machine in response to failure of an instruction to execute
US8041896B2 (en) * 2008-04-30 2011-10-18 Hewlett-Packard Development Company, L.P. Virtualization platform with dedicated cache access
JP4888839B2 (ja) * 2008-10-03 2012-02-29 日本電気株式会社 キャッシュメモリを備えるベクトル計算機システム、及びその動作方法
US7873816B2 (en) * 2008-11-20 2011-01-18 International Business Machines Corporation Pre-loading context states by inactive hardware thread in advance of context switch
US8429135B1 (en) * 2009-06-11 2013-04-23 Cisco Technology, Inc. Processor fault tolerance through translation lookaside buffer refresh
US9213628B2 (en) 2010-07-14 2015-12-15 Nimble Storage, Inc. Methods and systems for reducing churn in flash-based cache
US8839025B2 (en) * 2011-09-30 2014-09-16 Oracle International Corporation Systems and methods for retiring and unretiring cache lines
US10474584B2 (en) * 2012-04-30 2019-11-12 Hewlett Packard Enterprise Development Lp Storing cache metadata separately from integrated circuit containing cache controller
GB2560336B (en) * 2017-03-07 2020-05-06 Imagination Tech Ltd Address generators for verifying integrated circuit hardware designs for cache memory
US20190303037A1 (en) * 2018-03-30 2019-10-03 Ca, Inc. Using sequential read intention to increase data buffer reuse
US11934548B2 (en) * 2021-05-27 2024-03-19 Microsoft Technology Licensing, Llc Centralized access control for cloud relational database management system resources

Family Cites Families (56)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
BE788206A (fr) * 1971-09-02 1973-02-28 Int Standard Electric Corp Generateur de frequence
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
US4157586A (en) * 1977-05-05 1979-06-05 International Business Machines Corporation Technique for performing partial stores in store-thru memory configuration
US4156906A (en) * 1977-11-22 1979-05-29 Honeywell Information Systems Inc. Buffer store including control apparatus which facilitates the concurrent processing of a plurality of commands
US4357656A (en) * 1977-12-09 1982-11-02 Digital Equipment Corporation Method and apparatus for disabling and diagnosing cache memory storage locations
US4228503A (en) * 1978-10-02 1980-10-14 Sperry Corporation Multiplexed directory for dedicated cache memory system
US4471429A (en) * 1979-12-14 1984-09-11 Honeywell Information Systems, Inc. Apparatus for cache clearing
US4315312A (en) * 1979-12-19 1982-02-09 Ncr Corporation Cache memory having a variable data block size
US4400770A (en) * 1980-11-10 1983-08-23 International Business Machines Corporation Cache synonym detection and handling means
US4394731A (en) * 1980-11-10 1983-07-19 International Business Machines Corporation Cache storage line shareability control for a multiprocessor system
US4437149A (en) * 1980-11-17 1984-03-13 International Business Machines Corporation Cache memory architecture with decoding
US4530047A (en) * 1980-12-15 1985-07-16 Texas Instruments Incorporated Dual registry digital processor system with external memory interface
US4423483A (en) * 1980-12-24 1983-12-27 Honeywell Information Systems Inc. Data processor using a read only memory for selecting a part of a register into which data is written
US4513367A (en) * 1981-03-23 1985-04-23 International Business Machines Corporation Cache locking controls in a multiprocessor
US4445174A (en) * 1981-03-31 1984-04-24 International Business Machines Corporation Multiprocessing system including a shared cache
US4435759A (en) * 1981-06-15 1984-03-06 International Business Machines Corporation Hardware monitor for obtaining processor software/hardware interrelationships
US4455606A (en) * 1981-09-14 1984-06-19 Honeywell Information Systems Inc. Logic control system for efficient memory to CPU transfers
DE3138972A1 (de) * 1981-09-30 1983-04-14 Siemens AG, 1000 Berlin und 8000 München Onchip mikroprozessorchachespeichersystem und verfahren zu seinem betrieb
US4438490A (en) * 1981-10-01 1984-03-20 Honeywell Information Systems Inc. Clock control of a central processing unit from a monitor interface unit
US4484267A (en) * 1981-12-30 1984-11-20 International Business Machines Corporation Cache sharing control in a multiprocessor
US4442487A (en) * 1981-12-31 1984-04-10 International Business Machines Corporation Three level memory hierarchy using write and share flags
US4506323A (en) * 1982-03-03 1985-03-19 Sperry Corporation Cache/disk file status indicator with data protection feature
US4464717A (en) * 1982-03-31 1984-08-07 Honeywell Information Systems Inc. Multilevel cache system with graceful degradation capability
US4493026A (en) * 1982-05-26 1985-01-08 International Business Machines Corporation Set associative sector cache
US4608631A (en) * 1982-09-03 1986-08-26 Sequoia Systems, Inc. Modular computer system
US4471430A (en) * 1982-09-27 1984-09-11 Data General Corp. Encachement apparatus
JPS59160899A (ja) * 1982-12-09 1984-09-11 セコイア・システムス・インコ−ポレ−テツド メモリ−・バツク・アツプ・システム
US4553201A (en) * 1983-03-28 1985-11-12 Honeywell Information Systems Inc. Decoupling apparatus for verification of a processor independent from an associated data processing system
US4616310A (en) * 1983-05-20 1986-10-07 International Business Machines Corporation Communicating random access memory
US4622631B1 (en) * 1983-12-30 1996-04-09 Recognition Int Inc Data processing system having a data coherence solution
US4669043A (en) * 1984-02-17 1987-05-26 Signetics Corporation Memory access controller
US4648029A (en) * 1984-08-27 1987-03-03 International Business Machines Corporation Multiplexed interrupt/DMA request arbitration apparatus and method
US4847804A (en) * 1985-02-05 1989-07-11 Digital Equipment Corporation Apparatus and method for data copy consistency in a multi-cache data processing unit
US4860192A (en) * 1985-02-22 1989-08-22 Intergraph Corporation Quadword boundary cache system
US4755930A (en) * 1985-06-27 1988-07-05 Encore Computer Corporation Hierarchical cache memory system and method
US4713755A (en) * 1985-06-28 1987-12-15 Hewlett-Packard Company Cache memory consistency control with explicit software instructions
US4794521A (en) * 1985-07-22 1988-12-27 Alliant Computer Systems Corporation Digital computer with cache capable of concurrently handling multiple accesses from parallel processors
US4787028A (en) * 1985-09-03 1988-11-22 Ncr Corporation Multicommunication protocol controller
US4775955A (en) * 1985-10-30 1988-10-04 International Business Machines Corporation Cache coherence mechanism based on locking
JPS62145340A (ja) * 1985-12-20 1987-06-29 Toshiba Corp キヤツシユメモリ制御方式
US4758982A (en) * 1986-01-08 1988-07-19 Advanced Micro Devices, Inc. Quasi content addressable memory
US4811208A (en) * 1986-05-16 1989-03-07 Intel Corporation Stack frame cache on a microprocessor chip
US4853846A (en) * 1986-07-29 1989-08-01 Intel Corporation Bus expander with logic for virtualizing single cache control into dual channels with separate directories and prefetch for different processors
US4825360A (en) * 1986-07-30 1989-04-25 Symbolics, Inc. System and method for parallel processing with mostly functional languages
US4811209A (en) * 1986-07-31 1989-03-07 Hewlett-Packard Company Cache memory with multiple valid bits for each data indication the validity within different contents
US5091846A (en) * 1986-10-03 1992-02-25 Intergraph Corporation Cache providing caching/non-caching write-through and copyback modes for virtual addresses and including bus snooping to maintain coherency
US4766534A (en) * 1986-10-16 1988-08-23 American Telephone And Telegraph Company, At&T Bell Laboratories Parallel processing network and method
US4843542A (en) * 1986-11-12 1989-06-27 Xerox Corporation Virtual memory cache for use in multi-processing systems
US4851990A (en) * 1987-02-09 1989-07-25 Advanced Micro Devices, Inc. High performance processor interface between a single chip processor and off chip memory means having a dedicated and shared bus structure
GB8728494D0 (en) 1987-12-05 1988-01-13 Int Computers Ltd Multi-cache data storage system
US5136691A (en) * 1988-01-20 1992-08-04 Advanced Micro Devices, Inc. Methods and apparatus for caching interlock variables in an integrated cache memory
ATE138212T1 (de) * 1988-01-20 1996-06-15 Advanced Micro Devices Inc Integrierte cachespeichereinheit
US5185878A (en) * 1988-01-20 1993-02-09 Advanced Micro Device, Inc. Programmable cache memory as well as system incorporating same and method of operating programmable 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
EP0325421B1 (en) * 1988-01-20 1994-08-10 Advanced Micro Devices, Inc. Organization of an integrated cache unit for flexible usage in supporting multiprocessor operations

Also Published As

Publication number Publication date
EP0325421A2 (en) 1989-07-26
EP0325421B1 (en) 1994-08-10
ATE109910T1 (de) 1994-08-15
DE68917326T2 (de) 1995-03-02
US5627992A (en) 1997-05-06
JPH01239663A (ja) 1989-09-25
US6014728A (en) 2000-01-11
DE68917326D1 (de) 1994-09-15
EP0325421A3 (en) 1991-01-16

Similar Documents

Publication Publication Date Title
JP2881309B2 (ja) 集積回路、コンピュータシステム、および集積回路内のキャッシュにおけるキャッシュブロックステータスを更新する方法
JP3218317B2 (ja) 集積キャッシュユニットおよびその構成方法
JP3158161B2 (ja) 集積キャッシュユニットおよび集積キャッシュユニットにおいてインターロック変数をキャッシュする方法
US5185878A (en) Programmable cache memory as well as system incorporating same and method of operating programmable cache memory
EP0838762B1 (en) A data processor having a cache memory
EP0352633B1 (en) A pipeline having an integral cache for computer processors
US6408345B1 (en) Superscalar memory transfer controller in multilevel memory organization
US5696937A (en) Cache controller utilizing a state machine for controlling invalidations in a network with dual system busses
CA1300280C (en) Central processor unit for digital data processing system including write buffer management mechanism
US5893921A (en) Method for maintaining memory coherency in a computer system having a cache utilizing snoop address injection during a read transaction by a dual memory bus controller
US5845324A (en) Dual bus network cache controller system having rapid invalidation cycles and reduced latency for cache access
US4831581A (en) Central processor unit for digital data processing system including cache management mechanism
JP3218316B2 (ja) 集積キャッシュユニットおよびその内部でキャッシュ機能を実現するための方法
US5091845A (en) System for controlling the storage of information in a cache memory
US5511226A (en) System for generating snoop addresses and conditionally generating source addresses whenever there is no snoop hit, the source addresses lagging behind the corresponding snoop addresses
US5226170A (en) Interface between processor and special instruction processor in digital data processing system
EP0380842A2 (en) Method and apparatus for interfacing a system control unit for a multiprocessor system with the central processing units
US5737756A (en) Dual bus computer network using dual busses with dual spy modules enabling clearing of invalidation queue for processor with store through cache while providing retry cycles for incomplete accesses to invalidation queue
JPH06318174A (ja) キャッシュ・メモリ・システム及び主メモリに記憶されているデータのサブセットをキャッシュする方法
US6973541B1 (en) System and method for initializing memory within a data processing system
US5276892A (en) Destination control logic for arithmetic and logic unit for digital data processor
AU628531B2 (en) Method and apparatus for interfacing a system control unit for a multiprocessor system with the central processing units
IE901514A1 (en) Method and apparatus for interfacing a system control unit¹for a multiprocessor system with the central processing¹units
EP0303664A1 (en) Central processor unit for digital data processing system including virtual to physical address translation circuit
JPH061440B2 (ja) デジタルデータ処理装置内で使用されるプロセッサ及びデータ処理方法

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: 20080205

Year of fee payment: 9

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090205

Year of fee payment: 10

EXPY Cancellation because of completion of term