JPH01239663A - 集積回路、コンピュータシステム、および集積回路内のキャッシュにおけるキャッシュブロックステータスを更新する方法 - Google Patents
集積回路、コンピュータシステム、および集積回路内のキャッシュにおけるキャッシュブロックステータスを更新する方法Info
- Publication number
- JPH01239663A JPH01239663A JP1010938A JP1093889A JPH01239663A JP H01239663 A JPH01239663 A JP H01239663A JP 1010938 A JP1010938 A JP 1010938A JP 1093889 A JP1093889 A JP 1093889A JP H01239663 A JPH01239663 A JP H01239663A
- Authority
- JP
- Japan
- Prior art keywords
- cache
- icu
- bus
- memory
- write
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
- G06F12/0837—Cache consistency protocols with software control, e.g. non-cacheable data
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1027—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
発明の背景
発明の分野
この発明は、−殻内に、キャッシュユニットを編成する
ための方法および装置に関するものであり、より特定的
には、フレキシブルな態様で多様なマルチプロセッサ支
持機構を実現するために使用され得る集積キャッシュユ
ニットを編成するための方法および装置に関するもので
ある。結果として生じるキャッシュユニットは、プログ
ラム可能であり、シングルプロセッサモードとマルチプ
ロセッサモードの両方で動作可能であり、かつ、複数個
のユーザ選択可能マルチプロセッサ支持機構が実現され
てキャッシュシステム応用に合うようにされることを可
能にすることによりマルチプロセッサモードにおいてキ
ャッシュデータ一貫性を達成する。この新規のシステム
は、低減命令セットコンピュータ(RI S C)環境
において高速命令およびデータ処理を支持し、かつシン
グルチップ上の集積に適するアーキテクチャで先に言及
された機能にすべてを支持することが可能である。
ための方法および装置に関するものであり、より特定的
には、フレキシブルな態様で多様なマルチプロセッサ支
持機構を実現するために使用され得る集積キャッシュユ
ニットを編成するための方法および装置に関するもので
ある。結果として生じるキャッシュユニットは、プログ
ラム可能であり、シングルプロセッサモードとマルチプ
ロセッサモードの両方で動作可能であり、かつ、複数個
のユーザ選択可能マルチプロセッサ支持機構が実現され
てキャッシュシステム応用に合うようにされることを可
能にすることによりマルチプロセッサモードにおいてキ
ャッシュデータ一貫性を達成する。この新規のシステム
は、低減命令セットコンピュータ(RI S C)環境
において高速命令およびデータ処理を支持し、かつシン
グルチップ上の集積に適するアーキテクチャで先に言及
された機能にすべてを支持することが可能である。
関連技術の説明
キャッシュメモリとキャッシュメモリ用の制御器は周知
である。シングルチップ上にメモリ特徴と制御特徴の両
方を集積するデバイスも公知である。これらは、NEC
により製造される市場で入手可能な43’608を含ん
でいる。そのようなデバイスは、後で「集積された」キ
ャッシュユニット(ICU)と呼ばれる。
である。シングルチップ上にメモリ特徴と制御特徴の両
方を集積するデバイスも公知である。これらは、NEC
により製造される市場で入手可能な43’608を含ん
でいる。そのようなデバイスは、後で「集積された」キ
ャッシュユニット(ICU)と呼ばれる。
先行技術のICUデバイスはデータおよび命令をキャッ
シングするための予め定められたアルゴリズムを利用し
、すなわち、先行技術のデバイスはプログラム可能では
ない。以前は、シングルチップ上にキャッシュメモリ特
徴と、キャッシュ制御器特徴と、プログラム可能性特徴
とを集積することは、部分的に回路密度およびデータ経
路要件のために達成されていない。プログラム可能でな
いことに加えて、公知のICUアーキテクチャは、マル
チプロセッサ能力を有する高速RISCシステムを支持
することに関連する回路密度およびデータ経路要件の問
題を克服していない。
シングするための予め定められたアルゴリズムを利用し
、すなわち、先行技術のデバイスはプログラム可能では
ない。以前は、シングルチップ上にキャッシュメモリ特
徴と、キャッシュ制御器特徴と、プログラム可能性特徴
とを集積することは、部分的に回路密度およびデータ経
路要件のために達成されていない。プログラム可能でな
いことに加えて、公知のICUアーキテクチャは、マル
チプロセッサ能力を有する高速RISCシステムを支持
することに関連する回路密度およびデータ経路要件の問
題を克服していない。
キャッシングアルゴリズムの選択および/または修正を
許容する固有の柔軟性を有するであろうという理由で、
プログラム可能集積キャッシュユニットが望ましいであ
ろう。さらに、複数個のユーザ選択可能マルチプロセッ
サ支持機構を組入れるプログラム可能ICUが、キャッ
シュデータ一貫性がフレキシブルな態様で保証されるこ
とを可能にするであろう。
許容する固有の柔軟性を有するであろうという理由で、
プログラム可能集積キャッシュユニットが望ましいであ
ろう。さらに、複数個のユーザ選択可能マルチプロセッ
サ支持機構を組入れるプログラム可能ICUが、キャッ
シュデータ一貫性がフレキシブルな態様で保証されるこ
とを可能にするであろう。
先に言及された特徴を有するシングルチップICUアー
キテクチャがまた、スペース要件とユニット出力要件を
最小限にするために望ましいであろう。さらにまた、R
ISC環境と非RISC環境の両方に対し、シングルプ
ロセッサモードとマルチプロセッサモードの両方におい
て高速処理動作を支持するためにそのような集積キャッ
シュユニットを使用することが可能であることが望まし
いであろう。
キテクチャがまた、スペース要件とユニット出力要件を
最小限にするために望ましいであろう。さらにまた、R
ISC環境と非RISC環境の両方に対し、シングルプ
ロセッサモードとマルチプロセッサモードの両方におい
て高速処理動作を支持するためにそのような集積キャッ
シュユニットを使用することが可能であることが望まし
いであろう。
発明概要
複数のマルチプロセッサ支持機構をフレキシブルに実現
するために使用され得る集積キャッシュユニットを実現
するための方法および装置が開示される。この発明の好
ましい実施例は、シングルチップ上にキャッシュメモリ
とキャッシュ制御器の両方を備えて、プログラム可能で
あり、かつ他の先に言及された所望の特徴を含んでいる
。
するために使用され得る集積キャッシュユニットを実現
するための方法および装置が開示される。この発明の好
ましい実施例は、シングルチップ上にキャッシュメモリ
とキャッシュ制御器の両方を備えて、プログラム可能で
あり、かつ他の先に言及された所望の特徴を含んでいる
。
キャッシュシステムにおける複数個のマルチブロセッサ
支持機構のフレキシブルな実現は、この発明の好ましい
実施例に従えば、チップ上の特殊レジスタにおける適当
なオプションビットの設定によりユーザが所望のマルチ
プロセッサ支持機構を特定することを可能にする方法お
よび装置を介して達成される。これは、ソフトウェア制
御の下で実施されることが可能であり、かつ低コストで
かつ高い能率で実施する能力を有して、はとんど部品な
しで高性能のマルチプロセッサキャッシュシステムが設
計されることを可能にする。
支持機構のフレキシブルな実現は、この発明の好ましい
実施例に従えば、チップ上の特殊レジスタにおける適当
なオプションビットの設定によりユーザが所望のマルチ
プロセッサ支持機構を特定することを可能にする方法お
よび装置を介して達成される。これは、ソフトウェア制
御の下で実施されることが可能であり、かつ低コストで
かつ高い能率で実施する能力を有して、はとんど部品な
しで高性能のマルチプロセッサキャッシュシステムが設
計されることを可能にする。
この好ましい実施例は、8にバイトのデータと、512
−20ビットワードのタグと、RISC環境と非RIS
C環境の両方においてキャッシュ機能を十分に実現する
のに必要な制御とを含む集積キャッシュユニット(IC
U)と関連して説明される。ICUの好ましい実施例は
2個のバスを存し、一方はプロセッサインターフェイス
に対するもの、であり、他方はメモリインターフェイス
に対するものである。ICUにより支持される具体的な
プロセッサおよび高速インターフェイスが、ここに引用
により援用された、この発明の譲受人と同一譲受人に譲
渡された、1987年2月9日に出願された同時係属出
願節012,226号に説明されている。
−20ビットワードのタグと、RISC環境と非RIS
C環境の両方においてキャッシュ機能を十分に実現する
のに必要な制御とを含む集積キャッシュユニット(IC
U)と関連して説明される。ICUの好ましい実施例は
2個のバスを存し、一方はプロセッサインターフェイス
に対するもの、であり、他方はメモリインターフェイス
に対するものである。ICUにより支持される具体的な
プロセッサおよび高速インターフェイスが、ここに引用
により援用された、この発明の譲受人と同一譲受人に譲
渡された、1987年2月9日に出願された同時係属出
願節012,226号に説明されている。
この開示のために、プロセッサバスは非多重化32ビッ
トアドレスおよびデータバスである。プロセッサバスは
、同時係属出願において教示されるように、バーストア
クセスおよびパイプライン化アクセスを支持する。さら
に、この開示のために、メモリバスはメインメモリにイ
ンターフェイスを提供し、マルチプロセッサ編成を収容
する。
トアドレスおよびデータバスである。プロセッサバスは
、同時係属出願において教示されるように、バーストア
クセスおよびパイプライン化アクセスを支持する。さら
に、この開示のために、メモリバスはメインメモリにイ
ンターフェイスを提供し、マルチプロセッサ編成を収容
する。
この発明の好ましい実施例に従えば、ICUは25メガ
ヘルツを超過する周波数で動作することが可能であり、
成る順番における最初のアクセスに対しては2サイクル
の、かつバーストモードのアクセスまたはパイプライン
化アクセスに対しては1サイクルのプロセッサアクセス
時間を達成する。それは、フレキシブルな内部キャッシ
ュ編成を有する命令キャッシュかまたはデータキャッシ
ュのいずれかとして使用され得る。RISCプロセッサ
および2個のICU(命令キャッシュおよびデータキャ
ッシュ用の)は、16にバイトのキャッシュを有する非
常に高性能のプロセッサを実現する。付加的なICUを
使用することにより、より大規模なキャッシュが設計さ
れ得る。
ヘルツを超過する周波数で動作することが可能であり、
成る順番における最初のアクセスに対しては2サイクル
の、かつバーストモードのアクセスまたはパイプライン
化アクセスに対しては1サイクルのプロセッサアクセス
時間を達成する。それは、フレキシブルな内部キャッシ
ュ編成を有する命令キャッシュかまたはデータキャッシ
ュのいずれかとして使用され得る。RISCプロセッサ
および2個のICU(命令キャッシュおよびデータキャ
ッシュ用の)は、16にバイトのキャッシュを有する非
常に高性能のプロセッサを実現する。付加的なICUを
使用することにより、より大規模なキャッシュが設計さ
れ得る。
この発明の目的は、広範囲にわたるユーザにより特定さ
れるマルチプロセッサ支持機構を支持するのに十分な固
有の柔軟性を有する一方で、マルチプロセッサシステム
編成に最小の制約しか課さないプログラム可能キャッシ
ュユニットを実現するための方法および装置を提供する
ことである。
れるマルチプロセッサ支持機構を支持するのに十分な固
有の柔軟性を有する一方で、マルチプロセッサシステム
編成に最小の制約しか課さないプログラム可能キャッシ
ュユニットを実現するための方法および装置を提供する
ことである。
この発明のさらなる目的は、キャッシュデータ一貫性を
保証するために複数個のマルチプロセッサ支持機構から
選択するための手段を含むICUアーキテクチャを提供
することである。
保証するために複数個のマルチプロセッサ支持機構から
選択するための手段を含むICUアーキテクチャを提供
することである。
この発明のなおさらなる目的は、RISCアーキテクチ
ャ環境と非IR5Cアーキテクチャ環境の両方において
、マルチプロセシングシステムにおいて、高速データお
よび命令処理応用を支持する事に適するプログラム可能
集積キャッシュユニットを実現するための方法および装
置を提供することである。
ャ環境と非IR5Cアーキテクチャ環境の両方において
、マルチプロセシングシステムにおいて、高速データお
よび命令処理応用を支持する事に適するプログラム可能
集積キャッシュユニットを実現するための方法および装
置を提供することである。
この発明のなお別な目的は、シングルチップ上に集積さ
れ得るキャッシュアーキテクチャで先に言及された目的
を実現することである。
れ得るキャッシュアーキテクチャで先に言及された目的
を実現することである。
開示されるICUは、データキャッシュかまたは命令キ
ャッシュのいずれかとして使用され得る。
ャッシュのいずれかとして使用され得る。
さらなる特徴は、フレキシブルでかつ広範囲なマルチプ
ロセッサ支持ハードウェア要件、モジュール性要件、低
出力要件などを含んでいる。バスウォッチングと、所有
権機構と、ソフトウェア制御と、ハードウェア制御との
組合わせがまたキャッシュ・一貫性を達成するために使
用される。
ロセッサ支持ハードウェア要件、モジュール性要件、低
出力要件などを含んでいる。バスウォッチングと、所有
権機構と、ソフトウェア制御と、ハードウェア制御との
組合わせがまたキャッシュ・一貫性を達成するために使
用される。
この発明のこれらおよび他の目的および特徴は、次の詳
細な説明および図面全体で同一参照符号が同一特徴を表
わしている添付の図面を考慮に入れれば、当業者には明
らかとなるであろう。
細な説明および図面全体で同一参照符号が同一特徴を表
わしている添付の図面を考慮に入れれば、当業者には明
らかとなるであろう。
(以下余白)
詳細な説明
第1図は、新規のICUを含むであろう典型的な計算シ
ステム構成を描いている。
ステム構成を描いている。
例示だけのために、この発明は、シングルプロセッサモ
ードとマルチプロセッサモードの両方の動作を有するR
ISC処理システムに関連して説明されるであろう。後
で詳細に説明されるICUは、非RISC環境において
も同様に使用され得ることが当業者には明らかになるで
あろう。
ードとマルチプロセッサモードの両方の動作を有するR
ISC処理システムに関連して説明されるであろう。後
で詳細に説明されるICUは、非RISC環境において
も同様に使用され得ることが当業者には明らかになるで
あろう。
第1図は2個の新規のICUを示す。ICUlolは命
令キャッシュとして使用されることが示されているが、
ICU102はデータキャッシュとして使用されること
が示されている。
令キャッシュとして使用されることが示されているが、
ICU102はデータキャッシュとして使用されること
が示されている。
RISC能率化命令プロセッサ(Streamline
d 1nstruction proce s s
o r) (S I P)をキャッシュに結合する
、適当な高速インターフェイスの一具体例が、ここに引
用により先に援用されている同時係属出願節012.2
26号に詳細に説明されている。
d 1nstruction proce s s
o r) (S I P)をキャッシュに結合する
、適当な高速インターフェイスの一具体例が、ここに引
用により先に援用されている同時係属出願節012.2
26号に詳細に説明されている。
援用されている出願もまた、ここに言及されかつ新規な
ICUにより支持されるされるように示される、SIP
、プロセッサ入力および出力などの種々の動作モードを
教示している。
ICUにより支持されるされるように示される、SIP
、プロセッサ入力および出力などの種々の動作モードを
教示している。
第1図は続いてアドレスバス120およびデータバス1
21からなるプロセッサバスを示す。命令ROM150
および命令キャッシュICUIO1における命令は、プ
ロセッサ110によりアドレスバス120を介してアド
レスされる。取出される命令はバス125を介してプロ
セッサ110へ伝送されることが示されている。
21からなるプロセッサバスを示す。命令ROM150
および命令キャッシュICUIO1における命令は、プ
ロセッサ110によりアドレスバス120を介してアド
レスされる。取出される命令はバス125を介してプロ
セッサ110へ伝送されることが示されている。
データキャッシュICU102もまたアドレスバス12
0を介してアドレスされる。両方向のデータの流れはプ
ロセッサ110とICU102の間でデータバス121
を介して可能であることが示されている。
0を介してアドレスされる。両方向のデータの流れはプ
ロセッサ110とICU102の間でデータバス121
を介して可能であることが示されている。
メモリバス175は、メインメモリ190をICUlo
lおよびICU102と結合するバスとして示されてい
る。完全さのために、典型的なR■SCシステム構成の
一部になるであろう算術加速器195が、バス120お
よび121に結合されて示されている。また、DTC1
98として示されているデータ転送制御器(D T C
)が、たとえば、高速プロセッサよりはるかに低い速度
を有する市場で入手可能な周辺装置がプロセッサ、キャ
ッシュユニットなどの性能を制限せずにシステムに取付
けられることを可能にするために、典型的なシステム構
成の一部として使用され得る。
lおよびICU102と結合するバスとして示されてい
る。完全さのために、典型的なR■SCシステム構成の
一部になるであろう算術加速器195が、バス120お
よび121に結合されて示されている。また、DTC1
98として示されているデータ転送制御器(D T C
)が、たとえば、高速プロセッサよりはるかに低い速度
を有する市場で入手可能な周辺装置がプロセッサ、キャ
ッシュユニットなどの性能を制限せずにシステムに取付
けられることを可能にするために、典型的なシステム構
成の一部として使用され得る。
DTCは、 年 月 日に出願されかつこの発明
の譲受人と同一譲受人に譲渡された同時係属出願節
号に詳細に説明されている。
の譲受人と同一譲受人に譲渡された同時係属出願節
号に詳細に説明されている。
典型的な算術加速器が、1985年8月30日に出願さ
れ、また本件の発明と同一譲受人に譲渡された同時係属
出願節771,385号に説明されている。
れ、また本件の発明と同一譲受人に譲渡された同時係属
出願節771,385号に説明されている。
詳細な説明を続ける前に、明瞭にするためにまずそれら
自体が規定されることが必要である汎用キャッシュ用語
とマルチプロセッサキャッシュ用語とを用いて、新規の
集積キャッシュアーキテクチャが後で説明される。ここ
で用いられる汎用キャッシュ用語は次のように規定され
る。
自体が規定されることが必要である汎用キャッシュ用語
とマルチプロセッサキャッシュ用語とを用いて、新規の
集積キャッシュアーキテクチャが後で説明される。ここ
で用いられる汎用キャッシュ用語は次のように規定され
る。
ブロック−キャッシュブロックは、タグと関連するシー
ケンシャルなワード線のグループである。
ケンシャルなワード線のグループである。
キャッシュブロックは、必要とされるときはいつでも、
1グループとして割当てられかつ置換される。ICUの
好ましい実施例においては、ブロックサイズは、4ワー
ド(4ワードにつき1タグ)である。
1グループとして割当てられかつ置換される。ICUの
好ましい実施例においては、ブロックサイズは、4ワー
ド(4ワードにつき1タグ)である。
ブロックステータス−キャッシュブロックと関連するス
テータスビットである。ICUの好ましい実施例に従え
ば、1ブロツクにつき2個のステータスビットが存在す
る。それらはブロックの修正されかつ共有されるステー
タスを特定する。
テータスビットである。ICUの好ましい実施例に従え
ば、1ブロツクにつき2個のステータスビットが存在す
る。それらはブロックの修正されかつ共有されるステー
タスを特定する。
ブロックステータスアレイ−ブロックステータスビット
を含む、オンチップランダムアクセスメモリアレイ。
を含む、オンチップランダムアクセスメモリアレイ。
コピーバック−ヒツトの場合のための、キャッシュにお
いてのみ書込アクセスが実施される書込ポリシー。書込
まれるデータを含むブロックは修正されると記される。
いてのみ書込アクセスが実施される書込ポリシー。書込
まれるデータを含むブロックは修正されると記される。
データは、修正されたブロックが置換されるときのみ、
メインメモリに書込まれる(コピーバックされる〕。
メインメモリに書込まれる(コピーバックされる〕。
データキャッシュ−頻繁に使用されるプロセッサデータ
変数をキャッシュするために使用されるキャッシュ。
変数をキャッシュするために使用されるキャッシュ。
直接マツプされるーこれは、一方向セット連想編成の代
替の用語である。特殊アドレスが、キャッシュにおいて
1個の特殊な場所においてのみ(アドレスにより直接に
マツプされる)キャッシュされ得る。
替の用語である。特殊アドレスが、キャッシュにおいて
1個の特殊な場所においてのみ(アドレスにより直接に
マツプされる)キャッシュされ得る。
見二上−アクセスアドレスにより特定されるワードは、
キャッシュメモリアレイに存在する。アドレス一致がタ
グアレイにおいて見い出され、さらに、対応する有効な
ビットが設定される。
キャッシュメモリアレイに存在する。アドレス一致がタ
グアレイにおいて見い出され、さらに、対応する有効な
ビットが設定される。
癒勿−キャッシュから有効なデータを除去する動作。1
個またはそれ以上の有効なビットがリセットされ、その
ため対応するワードは無効になる。
個またはそれ以上の有効なビットがリセットされ、その
ため対応するワードは無効になる。
命令キャッシュ−頻繁に使用されるプロセッサ命令をキ
ャッシュするために使用されるキャッシュO べきブロックがその使用の活動記録に従って選択される
、置換アルゴリズム。最も古くに使用されたブロックは
置換される。
ャッシュするために使用されるキャッシュO べきブロックがその使用の活動記録に従って選択される
、置換アルゴリズム。最も古くに使用されたブロックは
置換される。
キャッシュにおけるロック−データ変数または命令(よ
キャッシュにロックされ得る。たとえそれらが置換アル
ゴリズムにより選択されるとしても、それらは置換され
ないであろう。後で説明されるべき、ICUに入力され
る★LOCKはインターロック動作を特定し、かつ、そ
れはキャッシュ動作においてはロックのために使用され
ないことを注目すべきである。ブロックをロックするこ
とを容易にするために、ロックビットは各ブロックと関
連している。
キャッシュにロックされ得る。たとえそれらが置換アル
ゴリズムにより選択されるとしても、それらは置換され
ないであろう。後で説明されるべき、ICUに入力され
る★LOCKはインターロック動作を特定し、かつ、そ
れはキャッシュ動作においてはロックのために使用され
ないことを注目すべきである。ブロックをロックするこ
とを容易にするために、ロックビットは各ブロックと関
連している。
メモリアレイ−キャッシュされたデータまたは命令を含
む、オンチップランダムアクセスメモリアレイ。
む、オンチップランダムアクセスメモリアレイ。
メモリバス−キャッシュをメインメモリに接続するバス
。
。
1五−アクセスアドレスにより特定されるワードはキャ
ッシュメモリアレイには存在しない。
ッシュメモリアレイには存在しない。
修正されるブロック−コピーバック書込ポリシーにおい
て書込まれる場合に、ブロックが修正されると印される
。これは、メインメモリに関してブロックが修正される
ことを示し、かつデータのより最近のバージョンを含む
。
て書込まれる場合に、ブロックが修正されると印される
。これは、メインメモリに関してブロックが修正される
ことを示し、かつデータのより最近のバージョンを含む
。
キャッシュ不能−キャッシュされ得ない命令またはデー
タ変数。キャッシュ不能動作がICUによりメモリバス
へ転送される。キャッシュはそれを捜されず、キャッシ
ュブロックは割当てられない。
タ変数。キャッシュ不能動作がICUによりメモリバス
へ転送される。キャッシュはそれを捜されず、キャッシ
ュブロックは割当てられない。
先取り−データ変数または命令をそれらが要求される前
にキャッシュへと取出す動作。
にキャッシュへと取出す動作。
先取りバッファーメモリバスから読出される先取りされ
たデータ変数または命令をそれらがキャッシュへ書込ま
れる前に保持するバッファ。ICUにおいては、読出バ
ッファは先取りバッファの機能のために使用される。
たデータ変数または命令をそれらがキャッシュへ書込ま
れる前に保持するバッファ。ICUにおいては、読出バ
ッファは先取りバッファの機能のために使用される。
プリロード−キャッシュに特殊なデータ変数または命令
をロードする特殊な先取り動作。プリロード動作用のア
ドレスは、先取りされるアドレスがキャッシュにより決
定される他の先取り動作に対立するものとしてユーザに
より特定される。
をロードする特殊な先取り動作。プリロード動作用のア
ドレスは、先取りされるアドレスがキャッシュにより決
定される他の先取り動作に対立するものとしてユーザに
より特定される。
プロセッサバス−キャッシュをプロセッサに接続するバ
ス。
ス。
ランダムな置換−置換されるべきブロックがランダムに
選択される、置換アルゴリズム。
選択される、置換アルゴリズム。
読出バッファーメモリバスから読出されるデータ変数ま
たは命令を、それらがキャッシュへ書込まれる前に保持
するバッファ。ICUの好ましい実施例においては、読
出バッファは4ワードの深さであり、それはまた先取リ
バッファの機能のために使用される。
たは命令を、それらがキャッシュへ書込まれる前に保持
するバッファ。ICUの好ましい実施例においては、読
出バッファは4ワードの深さであり、それはまた先取リ
バッファの機能のために使用される。
リードスルー−キャッシュミスの場合には、必要とされ
るデータまたは命令は、それがメモリから受取られると
すぐにプロセッサへ転送される。
るデータまたは命令は、それがメモリから受取られると
すぐにプロセッサへ転送される。
再ロード動作は並列に完了される。リードスルーを有さ
ないキャッシュにおいては、再ロード動作は、所要のデ
ータまたは命令がプロセッサへ転送される前に完了され
る。
ないキャッシュにおいては、再ロード動作は、所要のデ
ータまたは命令がプロセッサへ転送される前に完了され
る。
再ロード−メインメモリから所要のデータまたは命令を
取出すためにキャッシュミスの場合に実施される動作。
取出すためにキャッシュミスの場合に実施される動作。
置換アルゴリズム−新しいブロックがキャッシュにおい
て割当てられる場合に置換されるべきブロックを決定す
るアルゴリズム、所要の新しいアドレスを含むセットか
ら1個のブロックが選択される。
て割当てられる場合に置換されるべきブロックを決定す
るアルゴリズム、所要の新しいアドレスを含むセットか
ら1個のブロックが選択される。
範囲−二の用語は、命令効果の範囲を規定するためにキ
ャッシュ命令に関連して使用される。この命令は、1個
の特殊ICU、多数命令キャッシュ、多数データキャッ
シュ、または多数命令およびデータキャッシュに影響を
及ぼし得る。
ャッシュ命令に関連して使用される。この命令は、1個
の特殊ICU、多数命令キャッシュ、多数データキャッ
シュ、または多数命令およびデータキャッシュに影響を
及ぼし得る。
セット−読出されかつそれと同時に所要のアドレスと比
べられる、タグおよび関連するキャッシュブロックの1
グループ。セットのタグのいずれかに対し一致が見い出
され得る。セットはアドレスビットのいくつかに従って
特定される。キャッシュ編成においては、セットにおけ
るタグの数は「方向」 (後で規定されるべき)の数に
等しい。
べられる、タグおよび関連するキャッシュブロックの1
グループ。セットのタグのいずれかに対し一致が見い出
され得る。セットはアドレスビットのいくつかに従って
特定される。キャッシュ編成においては、セットにおけ
るタグの数は「方向」 (後で規定されるべき)の数に
等しい。
セット連想−キャッシュにおける多数の可能な場所にお
いて特殊アドレスのキャッシングを可能にするキャッン
ユ編成。この数は連想の程度と呼ばれる。それはキャッ
シュ編成における「方向」の数と、読出されかつそれと
同時に比べられるタグの数とを特定する。開示されるI
CUは、二方向セット連想編成および一方向セット連想
編成を支持する。
いて特殊アドレスのキャッシングを可能にするキャッン
ユ編成。この数は連想の程度と呼ばれる。それはキャッ
シュ編成における「方向」の数と、読出されかつそれと
同時に比べられるタグの数とを特定する。開示されるI
CUは、二方向セット連想編成および一方向セット連想
編成を支持する。
サブブロック−再ロード動作のために所要のワード゛と
一緒にメインメモリから取出される、1個またはそれ以
上のワードの1グループ。サブブロックサイズは、取出
されるワードの最大数を規定する。サブブロックのサイ
ズはブロックのサイズより低いかまたはそれに等しい。
一緒にメインメモリから取出される、1個またはそれ以
上のワードの1グループ。サブブロックサイズは、取出
されるワードの最大数を規定する。サブブロックのサイ
ズはブロックのサイズより低いかまたはそれに等しい。
タグ−タグは、キャッシュに同時に存在するデータまた
は命令のアドレスを識別する。キャッシュタグはタグキ
ャッシュブロックと関連し、かつそれはタグアレイにス
トアされる。ICUの好ましい実施例においては、各タ
グは4ワードブロツクに対応する。
は命令のアドレスを識別する。キャッシュタグはタグキ
ャッシュブロックと関連し、かつそれはタグアレイにス
トアされる。ICUの好ましい実施例においては、各タ
グは4ワードブロツクに対応する。
タグアレイ−キャッシュされるデータまたは命令に対す
るアドレスタグを含む、オンチップランダムアクセスメ
モリアレイ。
るアドレスタグを含む、オンチップランダムアクセスメ
モリアレイ。
更新メモリーキャッシュからメインメモリの更新を引き
起こす動作。修正されたブロックがキャッシュによりメ
インメモリに書込まれ、そのため、メモリはデータの最
も最近のバージョンで更新される。
起こす動作。修正されたブロックがキャッシュによりメ
インメモリに書込まれ、そのため、メモリはデータの最
も最近のバージョンで更新される。
有効なアレイ−有効なビットを含むオンチップランダム
アクセスメモリアレイ。
アクセスメモリアレイ。
有効なビット−キャッシュデータの妥当性を示すビット
。ICUの好ましい実施例においては、有効なビットは
各キャッシュされたワードと関連する。
。ICUの好ましい実施例においては、有効なビットは
各キャッシュされたワードと関連する。
々良−タグアレイモジュールと関連するタグの1グルー
プ。モジュールのアドレスデコーダにより特定される1
個のタグだけが読出されがっ各方向から比べられる。I
CUの好ましい実施例においては、2つの方向が存在し
、各々が256個のタグを備えている。
プ。モジュールのアドレスデコーダにより特定される1
個のタグだけが読出されがっ各方向から比べられる。I
CUの好ましい実施例においては、2つの方向が存在し
、各々が256個のタグを備えている。
書込割当て一書込動作のためのキャッシュミスの場合に
は、書込まれたアドレスを含むブロックに対しキャッシ
ュブロックが割当てられる。所要のブロックに対し再ロ
ード動作が実施される。非書込割当てに対しては、キャ
ッシュブロックは割当てられず、書込みはメモリにおい
てのみ実施される。
は、書込まれたアドレスを含むブロックに対しキャッシ
ュブロックが割当てられる。所要のブロックに対し再ロ
ード動作が実施される。非書込割当てに対しては、キャ
ッシュブロックは割当てられず、書込みはメモリにおい
てのみ実施される。
書込バッファーメモリバス上で書込アクセスが実施され
るまで書込アクセス情報(アドレス、データおよび制御
)を保持するバッファ。ICUの好ましい実施例は、4
個までの書込アクセスを保持し得る深さ4の書込バッフ
ァを含む。
るまで書込アクセス情報(アドレス、データおよび制御
)を保持するバッファ。ICUの好ましい実施例は、4
個までの書込アクセスを保持し得る深さ4の書込バッフ
ァを含む。
ライトスルー−すべての書込アクセスがメインメモリへ
と実施される、書込ポリシー。キャツシュヒツトの場合
には、データもキャッシュへと書込まれる。
と実施される、書込ポリシー。キャツシュヒツトの場合
には、データもキャッシュへと書込まれる。
ここで使用されるマルチプロセッサキャッシュ用語は次
のように規定される。
のように規定される。
バスウォッチングーメモリバスはスレーブキャッシュに
よりモニタされる(見張られる)。それらは転送された
アドレスをタグバッファアドレスと比べる。一致が見い
出された場合には、特殊動作が実施され得る。パススヌ
ービングまたはスヌーピングキャッシュという用語は同
じである。
よりモニタされる(見張られる)。それらは転送された
アドレスをタグバッファアドレスと比べる。一致が見い
出された場合には、特殊動作が実施され得る。パススヌ
ービングまたはスヌーピングキャッシュという用語は同
じである。
キャッシュ−貝柱−これは、マルチプロセッサキャッシ
ュシステムにおいてデータ一貫性を説明するために使用
される異なる用語である。
ュシステムにおいてデータ一貫性を説明するために使用
される異なる用語である。
データ一貫性−これはマルチプロセッサキャッシュシス
テムにおける主な問題である。変数が多数プロセッサに
より共有される場合、それは多数キャッシュにキャッシ
ュされ得る。変数の最も最新のバージョンは、変数がア
クセスされるときはいつでも供給されるべきである。こ
れは、システムを通してデータ変数の一貫性を保証する
。
テムにおける主な問題である。変数が多数プロセッサに
より共有される場合、それは多数キャッシュにキャッシ
ュされ得る。変数の最も最新のバージョンは、変数がア
クセスされるときはいつでも供給されるべきである。こ
れは、システムを通してデータ変数の一貫性を保証する
。
データ介入−メモリバス読出アクセスの場合に一致が見
い出されるときにスレーブキャッシュにより実施され得
る動作。スレーブキャッシュが修正されたデータ(デー
タの最新のバージョン)を含む場合、それはアクセスの
際に介入してデータを供給する。この場合、メインメモ
リはデータを供給すべきではない。
い出されるときにスレーブキャッシュにより実施され得
る動作。スレーブキャッシュが修正されたデータ(デー
タの最新のバージョン)を含む場合、それはアクセスの
際に介入してデータを供給する。この場合、メインメモ
リはデータを供給すべきではない。
排他的−変数またはキャッシュブロックが1個のキャッ
シュにおいて排他的に存在することを示す。それは、1
個のプロセッサにより排他的に使用され得るか、または
より多くのプロセッサにより使用され得るが、1個のキ
ャッシュにのみ存在する。ICUの好ましい実施例にお
いては、共存されたブロックステータスビットにおける
LOWは排他的ブロックを示している。このブロックは
、排他的非修正かまたは排他的修正のいずれかをなされ
得る。
シュにおいて排他的に存在することを示す。それは、1
個のプロセッサにより排他的に使用され得るか、または
より多くのプロセッサにより使用され得るが、1個のキ
ャッシュにのみ存在する。ICUの好ましい実施例にお
いては、共存されたブロックステータスビットにおける
LOWは排他的ブロックを示している。このブロックは
、排他的非修正かまたは排他的修正のいずれかをなされ
得る。
インターロック−1個のプロセッサの排他的使用のため
に変数(インターロック変数)を−時的にロックするた
めのインターロック動作が利用される。他のプロセッサ
またはキャッシュは変数を使用することが許容されない
が、それはインターロックされる。後で説明されるべき
、ICUに人力される★LOCKはインターロック動作
を示している。
に変数(インターロック変数)を−時的にロックするた
めのインターロック動作が利用される。他のプロセッサ
またはキャッシュは変数を使用することが許容されない
が、それはインターロックされる。後で説明されるべき
、ICUに人力される★LOCKはインターロック動作
を示している。
マスクキャッシュ−メモリバスのマスタであるキャッシ
ュ、それは要求を発し、応答を予期する。
ュ、それは要求を発し、応答を予期する。
一致−メモリバスアクセスのアドレスはタグバッファに
存在するアドレスのうちの1個と一致し、対応するワー
ドは有効である。この用語はメモリバスアドレス比較の
ために使用され、それはプロセッサバスのために使用さ
れるヒツトという用語と同じである。
存在するアドレスのうちの1個と一致し、対応するワー
ドは有効である。この用語はメモリバスアドレス比較の
ために使用され、それはプロセッサバスのために使用さ
れるヒツトという用語と同じである。
所有権−これはデータ一貫性を保証するための機構であ
る。変数の最新の値は1個のキャッシュまたはメインメ
モリにより所有される。変数の一貫性を維持することは
オーナーの責任である。変数に帰する状態の数が異なる
、いくつかの所有権機構と、所有権および状態遷移のた
めのアルゴリズムが存在する。
る。変数の最新の値は1個のキャッシュまたはメインメ
モリにより所有される。変数の一貫性を維持することは
オーナーの責任である。変数に帰する状態の数が異なる
、いくつかの所有権機構と、所有権および状態遷移のた
めのアルゴリズムが存在する。
共有された一変数またはキャッシュブロックが1個より
多いプロセッサにより共有されることを示している。1
個より多いキャッシュには共有された変数が存在し得る
。ICUの好ましい実施例においては、共有されたブロ
ックステータスビットにおけるHIGHは共有されたブ
ロックを示している。ブロックは、共有され修正されな
いかまたは共有され修正されるかのいずれかであり得る
。
多いプロセッサにより共有されることを示している。1
個より多いキャッシュには共有された変数が存在し得る
。ICUの好ましい実施例においては、共有されたブロ
ックステータスビットにおけるHIGHは共有されたブ
ロックを示している。ブロックは、共有され修正されな
いかまたは共有され修正されるかのいずれかであり得る
。
共有され修正されるーキャッシュブロックが共有されか
つ修正されることを示すICUにおけるブロックステー
タス。それはまた、ブロックがキャッシュにより所有さ
れることと、それがシステムにおけるブロックの最新値
であることとを示している。
つ修正されることを示すICUにおけるブロックステー
タス。それはまた、ブロックがキャッシュにより所有さ
れることと、それがシステムにおけるブロックの最新値
であることとを示している。
スレーブキャッシュ−メモリバスのマスクではないキャ
ッシュ。データ一貫性の目的で、スレーブキャッシュが
メモリバスをモニタし得る。
ッシュ。データ一貫性の目的で、スレーブキャッシュが
メモリバスをモニタし得る。
スヌーピングーバスウォッチングの代わりに使用される
異なる用語。パススヌービングまたはスヌーピングキャ
ッシュも同じである。
異なる用語。パススヌービングまたはスヌーピングキャ
ッシュも同じである。
ここで使用されるべき用語を規定した場合、新規のIC
Uの好ましい実施例の詳細な説明がそのピン説明および
機能編成の点から後で直接に明らかにされるであろう。
Uの好ましい実施例の詳細な説明がそのピン説明および
機能編成の点から後で直接に明らかにされるであろう。
ビン説明に関して、「3状態」という用語は通常の動作
の間高インピーダンス状態に置かれ得る信号を説明する
ために使用されることが注目されるべきである。すべて
の出力(後で説明されるMSERRを除いて)は、★T
EST入力(また後で説明される)により高インピーダ
ンス状態に置かれ得る。
の間高インピーダンス状態に置かれ得る信号を説明する
ために使用されることが注目されるべきである。すべて
の出力(後で説明されるMSERRを除いて)は、★T
EST入力(また後で説明される)により高インピーダ
ンス状態に置かれ得る。
新規のICUの好ましい実施例はCMO3であり、第2
図に示されるような169ピン・グリッド争アレイ(P
in Grid Array)パッケージである。
図に示されるような169ピン・グリッド争アレイ(P
in Grid Array)パッケージである。
プロセッサバスインターフェイスは最初に説明され、次
のものを含んでいる。
のものを含んでいる。
アドレスバス、すなわち第2図のビンAO−A31は、
ICU入力であり、同期式であり、かつプロセッサバス
上でキャッシュアクセス用のバイトアドレスを転送する
。
ICU入力であり、同期式であり、かつプロセッサバス
上でキャッシュアクセス用のバイトアドレスを転送する
。
第2図にASTCOおよびASTClとして示されるア
クセスステータス制御信号は、アクセスと関連するステ
ータス制御を特定する同期入力である。それらは、この
発明の好ましい実施例によれば次のようにコード化され
る。
クセスステータス制御信号は、アクセスと関連するステ
ータス制御を特定する同期入力である。それらは、この
発明の好ましい実施例によれば次のようにコード化され
る。
ASTC]、 ASTCO意味
0 0 排他的ライトスルー0 1
排他的コピーバック1 0 共有されて
いる 1 1 キャッシュ不能 これらの入力は、プロセッサ出力を説明している援用さ
れている出願において説明されるように、プロセッサ1
10のMPGMO−MPGM1出力に通常は接続される
。
排他的コピーバック1 0 共有されて
いる 1 1 キャッシュ不能 これらの入力は、プロセッサ出力を説明している援用さ
れている出願において説明されるように、プロセッサ1
10のMPGMO−MPGM1出力に通常は接続される
。
★BINV、バス無効は、同期ICU入力であり、アク
ティブLOWであり、アドレスバスおよび関連する制御
が無効であることを示している。
ティブLOWであり、アドレスバスおよび関連する制御
が無効であることを示している。
それはプロセッサバス120上のアイドルサイクルを規
定する。
定する。
★CBACK、キャッシュバースト肯定応答は、ICU
出力であり、同期式であり、かつアクティブLOWであ
る。この出力は、バーストモードキャッシュアクセスが
プロセッサバス120上で確立されたときはいつでも断
定される。
出力であり、同期式であり、かつアクティブLOWであ
る。この出力は、バーストモードキャッシュアクセスが
プロセッサバス120上で確立されたときはいつでも断
定される。
★CBREQ、キャッシュバースト要求は、ICU入力
であり、同期式であり、かつアクティブLOWである。
であり、同期式であり、かつアクティブLOWである。
この入力は、プロセッサバス上でバーストモードキャッ
シュアクセスを確立するためにかつバーストモードキャ
ッシュアクセスの間次の伝送を要求するために使用され
る。この信号は後で説明される★DREQまたは★RI
EQと比べると、サイクルの終わりに有効になり得る。
シュアクセスを確立するためにかつバーストモードキャ
ッシュアクセスの間次の伝送を要求するために使用され
る。この信号は後で説明される★DREQまたは★RI
EQと比べると、サイクルの終わりに有効になり得る。
★CERR,キャッシュエラーは、ICU出力であり、
同期式であり、かつアクティブLOWである。この出力
は、現在のキャッシュアクセスの間にエラーが起こった
ことを示す。
同期式であり、かつアクティブLOWである。この出力
は、現在のキャッシュアクセスの間にエラーが起こった
ことを示す。
★CRDY、キャッシュ作動可能は、ICU出力であり
、同期式であり、かつアクティブLOWである。プロセ
ッサバスキャッシュ読出しに対し、この出力は、有効な
データがキャッシュバス上にあることを示す。キャッシ
ュ書込みに対し、それは、データがもはやキャッシュ上
では駆動される必要がないことを示す。
、同期式であり、かつアクティブLOWである。プロセ
ッサバスキャッシュ読出しに対し、この出力は、有効な
データがキャッシュバス上にあることを示す。キャッシ
ュ書込みに対し、それは、データがもはやキャッシュ上
では駆動される必要がないことを示す。
CREQTO−CREQTI、キャッシュ要求タイプは
、同期入力である。この信号は、次のように、プロセッ
サバス上でキャッシュアクセス用アドレス空間を特定す
る。
、同期入力である。この信号は、次のように、プロセッ
サバス上でキャッシュアクセス用アドレス空間を特定す
る。
データキャッシュ使用
CREQTI CREQTO:i go 0
メモリアクセス 0 1 人力/出力アクセス1 x
コプロセッサ転送(IcUにより無視される) 命令キャッシュ使用 CREQTI CREQTO寥一体 x Oメモリアクセス x 1 命令リードオクリメモリアクセス 命令キャッシュ使用に対し、CREQTIは特殊機能を
有する。それはRESETの間サンプリングされ、サン
プリングされた値がHIGHであれば、ICUは命令R
OMアクセスに応答する。
メモリアクセス 0 1 人力/出力アクセス1 x
コプロセッサ転送(IcUにより無視される) 命令キャッシュ使用 CREQTI CREQTO寥一体 x Oメモリアクセス x 1 命令リードオクリメモリアクセス 命令キャッシュ使用に対し、CREQTIは特殊機能を
有する。それはRESETの間サンプリングされ、サン
プリングされた値がHIGHであれば、ICUは命令R
OMアクセスに応答する。
サンプリングされた値がLOWであれば、ICUは命令
ROMアクセスに応答しない。RESET後に、CRE
QTI入力は命令キャッシュ使用のために無視される。
ROMアクセスに応答しない。RESET後に、CRE
QTI入力は命令キャッシュ使用のために無視される。
★CS E L、チップ選択は、同期入力であり、アク
ティブLOWでる。★C3EL入力の際のアクティブレ
ベルがプロセッサーパスキャッシュ命令アクセス用ウェ
ルICUを選択する。それは通常のメモリアクセスにお
いて使用されない。*C5EL人力は、後で説明される
ICUの一部であるチップ選択マツピングレジスタを介
して不能化され得る。★C3ELが可能化されかつ断定
されない場合、ICUはプロセッサーパスキャッシュ命
令アクセスに応答しない。
ティブLOWでる。★C3EL入力の際のアクティブレ
ベルがプロセッサーパスキャッシュ命令アクセス用ウェ
ルICUを選択する。それは通常のメモリアクセスにお
いて使用されない。*C5EL人力は、後で説明される
ICUの一部であるチップ選択マツピングレジスタを介
して不能化され得る。★C3ELが可能化されかつ断定
されない場合、ICUはプロセッサーパスキャッシュ命
令アクセスに応答しない。
★C3M、メモリアクセスのためのチップ選択は、同期
ICU入力であり、アクティブLOWである。★C3M
入力の際のアクティブレベルはメモリアクセスのための
ICUを選択する。それはキャッシュ拡張およびキャッ
シュアドレス空間選択のために使用され得る。★C5M
入力は、チップ選択マツピングレジスタを介して可能化
され得る。★C5Mが可能化される場合、★CS Mは
断定されかつアドレスがチップ選択マツピングレジスタ
(後で詳細に説明される)の予め選択されたフィールド
において対応する可能化されたビット線と一致する場合
にのみ、ICUはメモリアクセスに応答する。
ICU入力であり、アクティブLOWである。★C3M
入力の際のアクティブレベルはメモリアクセスのための
ICUを選択する。それはキャッシュ拡張およびキャッ
シュアドレス空間選択のために使用され得る。★C5M
入力は、チップ選択マツピングレジスタを介して可能化
され得る。★C5Mが可能化される場合、★CS Mは
断定されかつアドレスがチップ選択マツピングレジスタ
(後で詳細に説明される)の予め選択されたフィールド
において対応する可能化されたビット線と一致する場合
にのみ、ICUはメモリアクセスに応答する。
CBO−CB31、キャッシュバスは、両方向であり、
同期式であり、かつ3状態である。キャッシュバスはプ
ロセッサバスでICUへおよびそこから命令およびまた
はデータを転送する。
同期式であり、かつ3状態である。キャッシュバスはプ
ロセッサバスでICUへおよびそこから命令およびまた
はデータを転送する。
★DREQ、デーた要求は、同期ICU入力であり、ア
クティブLOWである。この入力はプロセッサバス上で
データアクセスを要求する。それがアクティブである場
合、アクセスのためのアドレスはアドレスバス上に現わ
れる。CIUの命令キャッシュ使用のために、★DRE
Qはプロセッサーパスキャッシュ命令転送のために使用
される。
クティブLOWである。この入力はプロセッサバス上で
データアクセスを要求する。それがアクティブである場
合、アクセスのためのアドレスはアドレスバス上に現わ
れる。CIUの命令キャッシュ使用のために、★DRE
Qはプロセッサーパスキャッシュ命令転送のために使用
される。
★IREQ、命令要求は、同期ICU入力であり、アク
ティブLOWである。この入力はプロセッサバス上で命
令キャッシュアクセスを要求する。
ティブLOWである。この入力はプロセッサバス上で命
令キャッシュアクセスを要求する。
それがアクティブである場合、アクセスのためのアドレ
スがアドレスバス上に現われる。この入力は、ICUの
リセット動作の間特殊機能を有する。
スがアドレスバス上に現われる。この入力は、ICUの
リセット動作の間特殊機能を有する。
それは、RESET (後で説明される)がアクティブ
である場合、5YSCLKの立上がり端縁によりサンプ
リングされる。最後にサンプリングされた値はICU動
作をデータキャッシュ(★IREQ LOW)として
、または命令キャッシュ(★IREQ HIGH)と
して決定する。データキャッシュ動作に対し、★I R
EQはLOWにつながれるべきである(それは通常の動
作の間は無視される)。命令キャッシュ動作に対し、そ
れはプロセッサ★IREQ出力に接続されるべきであり
、それはRESETの間断室が解除される。
である場合、5YSCLKの立上がり端縁によりサンプ
リングされる。最後にサンプリングされた値はICU動
作をデータキャッシュ(★IREQ LOW)として
、または命令キャッシュ(★IREQ HIGH)と
して決定する。データキャッシュ動作に対し、★I R
EQはLOWにつながれるべきである(それは通常の動
作の間は無視される)。命令キャッシュ動作に対し、そ
れはプロセッサ★IREQ出力に接続されるべきであり
、それはRESETの間断室が解除される。
プロセッサがRESETの間テストモードに置かれる場
合、外部論理はIREQ HIGHを駆動すべきであ
ること(高性能インターフェイスに関する同時係属出願
において説明されるプロセッサはそのテストモードにお
いてIREQ HIGHを駆動しない)に注目された
い。
合、外部論理はIREQ HIGHを駆動すべきであ
ること(高性能インターフェイスに関する同時係属出願
において説明されるプロセッサはそのテストモードにお
いてIREQ HIGHを駆動しない)に注目された
い。
★LOCK、ロックは、ICU入力であり、同期式であ
り、かつアクティブLOWである。この入力は、プロセ
ッサキャッシュアクセスがインターロックされた変数に
対することを示している。
り、かつアクティブLOWである。この入力は、プロセ
ッサキャッシュアクセスがインターロックされた変数に
対することを示している。
ICUは、後で詳細に明らかにされるインターロック機
能に関して説明される特殊な方法でこのアクセスを取扱
う。
能に関して説明される特殊な方法でこのアクセスを取扱
う。
MSERR,マスタ/スレーブエラーは、同期式であり
、ICU出力であり、アクティブHIGHである。この
出力は、内部でオフチップドライバに与えられる信号と
のICU出力の比較の結果を示している。可能化された
ドライバのいずれに対しても相違が存在する場合には、
この信号は断定される。
、ICU出力であり、アクティブHIGHである。この
出力は、内部でオフチップドライバに与えられる信号と
のICU出力の比較の結果を示している。可能化された
ドライバのいずれに対しても相違が存在する場合には、
この信号は断定される。
0PTO−OPT2、オプンヨン制御は、同期ICU入
力である。これらの信号は、キャッシュアクセスと関連
するオプション制御ビットを反映する。それらは、デー
タの長さばかりでなく特殊アクセス情報を特定するため
に使用される。これらの信号の翻訳は、データまたは命
令キャッシュとしてのIcUの使用に依存している。こ
れらの入力のコード化および翻訳は、この発明の好まし
い実施例によれば、次のとおりである。
力である。これらの信号は、キャッシュアクセスと関連
するオプション制御ビットを反映する。それらは、デー
タの長さばかりでなく特殊アクセス情報を特定するため
に使用される。これらの信号の翻訳は、データまたは命
令キャッシュとしてのIcUの使用に依存している。こ
れらの入力のコード化および翻訳は、この発明の好まし
い実施例によれば、次のとおりである。
000 32ビットアクセス アクセスなし001
8ビットアクセス アクセスなし010 18ビット
アクセス アクセスなし011 アクセスなし
アクセスなし100 命令メモリアクセ アクセスな
しス(データとして) 101 キャッシュオペラ キャッシュオペランド転
送 ンド転送 110 デバッグモジュー アクセスなしルアクセス 111 予約された 予約されたOPT入力は
、DREQTlがHIGHである(アクセスなしとして
取扱われる)場合は無視される。コード100および1
01は、DREQTOがHIGHである場合にはアクセ
スなしとして取扱われる。コード100はデータとして
命令ROMを読出すために使用される。データキャッシ
ュは、後で説明されるモードレジスタにおけるROM可
能化ビットがHIGHである場合のみこのコードに応答
する。この場合、要求はキャッシュ不能アクセスとして
取扱われる。コード101は、ICUプロセッサーパス
キャッシュ命令のためのオペランド転送を示す。この発
明の好ましい実施例によれば、コード110は特殊デバ
ッグモジュールアクセスのために使用される。データキ
ャッシュが4サイクルの間★CRDY HIGHて応
答し、次に、★CRDYが1サイクルの間断窓される。
8ビットアクセス アクセスなし010 18ビット
アクセス アクセスなし011 アクセスなし
アクセスなし100 命令メモリアクセ アクセスな
しス(データとして) 101 キャッシュオペラ キャッシュオペランド転
送 ンド転送 110 デバッグモジュー アクセスなしルアクセス 111 予約された 予約されたOPT入力は
、DREQTlがHIGHである(アクセスなしとして
取扱われる)場合は無視される。コード100および1
01は、DREQTOがHIGHである場合にはアクセ
スなしとして取扱われる。コード100はデータとして
命令ROMを読出すために使用される。データキャッシ
ュは、後で説明されるモードレジスタにおけるROM可
能化ビットがHIGHである場合のみこのコードに応答
する。この場合、要求はキャッシュ不能アクセスとして
取扱われる。コード101は、ICUプロセッサーパス
キャッシュ命令のためのオペランド転送を示す。この発
明の好ましい実施例によれば、コード110は特殊デバ
ッグモジュールアクセスのために使用される。データキ
ャッシュが4サイクルの間★CRDY HIGHて応
答し、次に、★CRDYが1サイクルの間断窓される。
★PCA、バイブライン化キャッシュアクセスは、同期
ICU入力であり、アクティブLOWである。データキ
ャッシュに対する★DREQまたは命令キャッシュに対
する★RIEQがアクティブでない場合、この入力はキ
ャッシュアクセスが別な進行中のキャッシュアクセスと
ともにパイプライン化されることを示す。バイブライン
化アクセスは、第1のアクセスが完了するまで完了し得
ない。第1のアクセスの完了は、データキャッシュに対
する★DREQおよび命令キャッシュに対する★IRE
Qの断定により信号が送られる。
ICU入力であり、アクティブLOWである。データキ
ャッシュに対する★DREQまたは命令キャッシュに対
する★RIEQがアクティブでない場合、この入力はキ
ャッシュアクセスが別な進行中のキャッシュアクセスと
ともにパイプライン化されることを示す。バイブライン
化アクセスは、第1のアクセスが完了するまで完了し得
ない。第1のアクセスの完了は、データキャッシュに対
する★DREQおよび命令キャッシュに対する★IRE
Qの断定により信号が送られる。
★RESET、リセットは、非同期入力であり、アクテ
ィブLOWである。この入力はICUをリセットする。
ィブLOWである。この入力はICUをリセットする。
R/★W、読出し/書込みは、同期入力である。
この人力は、キャッシュアクセスがICUからプロセッ
サへの転送であるが(R/★W/%イ)、またはプロセ
ッサからICUへの転送であるか(R/★Wロー)を示
す。
サへの転送であるが(R/★W/%イ)、またはプロセ
ッサからICUへの転送であるか(R/★Wロー)を示
す。
SUP/★US、スーパーバイザ/ユーザモードは、同
期入力である。この入力は、アクセスの間例示のプロセ
ッサのプログラムモード(スーパバイザモードまたはユ
ーザモード)を示す。ICU内部レジスタとキャッシュ
命令の実行とはユーザモードアクセスから保護される。
期入力である。この入力は、アクセスの間例示のプロセ
ッサのプログラムモード(スーパバイザモードまたはユ
ーザモード)を示す。ICU内部レジスタとキャッシュ
命令の実行とはユーザモードアクセスから保護される。
5YSCLK、システムクロックは、ICUの動作周波
数での、外部クロック入力である。
数での、外部クロック入力である。
★TEST、テストモードは、非同期入力であり、アク
ティブLOWである。この入力はアクテ、イブである場
合、ICUはテストモードである。
ティブLOWである。この入力はアクテ、イブである場
合、ICUはテストモードである。
すべての出力および両方向ラインは、MSERRを除い
て、高インピーダンス状態へと強制される。
て、高インピーダンス状態へと強制される。
WREP、置換のための方向は、同期入力である。この
入力は、キャッシュミスの場合に置換のための方向番号
を強制する。それは有効なキャッシュアクセスの最初の
サイクルの間サンプリングされる。二方向セット連想編
成におけるミス(置換モードが外部である場合)は、W
REPにより決定されるように置換を引き起こす。すな
わち、WREP LOWは置換されるべき方向0を強
制し、WREP HIGHは置換されるべき方向1を
強制する。
入力は、キャッシュミスの場合に置換のための方向番号
を強制する。それは有効なキャッシュアクセスの最初の
サイクルの間サンプリングされる。二方向セット連想編
成におけるミス(置換モードが外部である場合)は、W
REPにより決定されるように置換を引き起こす。すな
わち、WREP LOWは置換されるべき方向0を強
制し、WREP HIGHは置換されるべき方向1を
強制する。
次に、第2図を引き続き参照しながら、メモリバスイン
ターフェイスが説明される。メモリバスは次のものを含
むことが見られ得る。
ターフェイスが説明される。メモリバスは次のものを含
むことが見られ得る。
BSTCO−BSTCI、両方向であり、同期式であり
、かつ3状態である、ブロックステータス制御。これら
の信号はキャッシュブロックステータス情報を検査およ
び更新するために使用される。メモリバス命令による必
要とされる場合、ICUはそれらを用いて供給されるア
ドレスと関連するブロックステータスビットを示す。こ
れらの信号はまた、書込ブロックステータス命令のため
にメモリバスからブロックステータスを供給するために
使用される。上記機能の両方に対するこの信号のコード
化は次のとおりである。
、かつ3状態である、ブロックステータス制御。これら
の信号はキャッシュブロックステータス情報を検査およ
び更新するために使用される。メモリバス命令による必
要とされる場合、ICUはそれらを用いて供給されるア
ドレスと関連するブロックステータスビットを示す。こ
れらの信号はまた、書込ブロックステータス命令のため
にメモリバスからブロックステータスを供給するために
使用される。上記機能の両方に対するこの信号のコード
化は次のとおりである。
BSTCI BSCTO意味
0 0 排他的で修正されない0 1
排他的で修正される1 0 共有さ
れ修正されない1 1 共有され修正される
★DI、データ介入は、同期出力であり、3状態であり
、かつアクティブLOWである。この出力はメモリバス
上のデータ介入動作の支持のために使用される。データ
介入動作は、いくつかのマルチプロセッサ構成において
は、適当なキャッシュから(メモリに対立するものとし
て)変数の最新のバージョンを供給するために使用され
る。ICUマスクは、メモリバス読出アクセスのアドレ
スサイクルの間★DI信号をプリチャージする。
排他的で修正される1 0 共有さ
れ修正されない1 1 共有され修正される
★DI、データ介入は、同期出力であり、3状態であり
、かつアクティブLOWである。この出力はメモリバス
上のデータ介入動作の支持のために使用される。データ
介入動作は、いくつかのマルチプロセッサ構成において
は、適当なキャッシュから(メモリに対立するものとし
て)変数の最新のバージョンを供給するために使用され
る。ICUマスクは、メモリバス読出アクセスのアドレ
スサイクルの間★DI信号をプリチャージする。
次にそれはそれを3状態モードに置く。バスマスクでは
ないICUは、それらがデータ介入で応答する場合には
、★DI信号をディスチャージする。
ないICUは、それらがデータ介入で応答する場合には
、★DI信号をディスチャージする。
★GRT、メモリバス許容は、同期入力であり、アクテ
ィブLOWである。この入力は、メモリバスがICU用
途のために認められる信号を送る。
ィブLOWである。この入力は、メモリバスがICU用
途のために認められる信号を送る。
★HIT、ヒツトは、両方向であり、同期式であり3状
態であり、かつアクティブLOWである。
態であり、かつアクティブLOWである。
この信号は出力のみの信号であるかまたは入力/出力信
号であるかのいずれかになるようにプログラムされ得る
。出力として、それはヒツト指示のために用いられる。
号であるかのいずれかになるようにプログラムされ得る
。出力として、それはヒツト指示のために用いられる。
それは、メモリバス上に存在するアドレスのためにタグ
バッファにおいてヒツトが検出される場合に断定される
。それはまた、メモリバス命令のいくつかにおいて、ワ
ードまたはブロックの妥当性を示すために使用される。
バッファにおいてヒツトが検出される場合に断定される
。それはまた、メモリバス命令のいくつかにおいて、ワ
ードまたはブロックの妥当性を示すために使用される。
入力/出力信号になるようにプログラムされる場合、そ
れは、上記出力機能に加えて、他のどんなキャッシュに
おいてもヒツトの検出のための信号として使用され得る
。ICUマスクは、アドレスサイクルの間★HIT信号
をプリチャージし、次に、それを入力3状態モードに置
く。バスマスクではないICUは、ヒツトがそれらのタ
グバッファにおいて検出される場合のみ★HIT信号を
ディスチャージする。
れは、上記出力機能に加えて、他のどんなキャッシュに
おいてもヒツトの検出のための信号として使用され得る
。ICUマスクは、アドレスサイクルの間★HIT信号
をプリチャージし、次に、それを入力3状態モードに置
く。バスマスクではないICUは、ヒツトがそれらのタ
グバッファにおいて検出される場合のみ★HIT信号を
ディスチャージする。
★MASTB、メモリアドレスストローブは、両方向で
あり、同期式であり、3状態であり、かつアクティブL
OWである。ICUはメモリバスマスタである場合、こ
の信号はICUにより断定され、バイトアドレスがメモ
リバス上に存在することを示す。ICUがマスクでない
場合、この信号は、別なバスマスクからのバイトアドレ
スがメモリバス上に存在することを示す。命令キャッシ
ュとデータキャッシュの両方がシステムに存在する場合
には、2個の★MASCB信号が利用可能であることに
注目されたい。2個の信号は、命令およびデータアクセ
ス間を区別するために使用され得る。
あり、同期式であり、3状態であり、かつアクティブL
OWである。ICUはメモリバスマスタである場合、こ
の信号はICUにより断定され、バイトアドレスがメモ
リバス上に存在することを示す。ICUがマスクでない
場合、この信号は、別なバスマスクからのバイトアドレ
スがメモリバス上に存在することを示す。命令キャッシ
ュとデータキャッシュの両方がシステムに存在する場合
には、2個の★MASCB信号が利用可能であることに
注目されたい。2個の信号は、命令およびデータアクセ
ス間を区別するために使用され得る。
★MBACK、メモリバースト肯定応答は、同期入力で
あり、アクティブLOWである。この入力は、バースト
モードキャッシュアクセスがメモリバス上で確立された
ときはいつでもアクティブである。
あり、アクティブLOWである。この入力は、バースト
モードキャッシュアクセスがメモリバス上で確立された
ときはいつでもアクティブである。
MBPO−MBP3、メモリバイトパリティは、両方向
であり、同期式であり、かつ3状態である。
であり、同期式であり、かつ3状態である。
これは、メモリバス上の伝送のためのバイトパリティバ
スである。例数または奇数パリティが特定され得る。M
BPOはMEMADO−MEMADlに対するバイトパ
リティであり、MBPIはMEMAD8−MEMADl
5に対するバイトパリティであり、以下同様である。
スである。例数または奇数パリティが特定され得る。M
BPOはMEMADO−MEMADlに対するバイトパ
リティであり、MBPIはMEMAD8−MEMADl
5に対するバイトパリティであり、以下同様である。
ICUからメモリへの転送に対し、ICUはパリティを
発生させる。
発生させる。
ICUへの転送のために、それはバイトパリティをチエ
ツクする。パリティエラーが検出される場合、かつデー
タがプロセッサバス上で転送されるべきである場合、★
CERR信号が断定される。
ツクする。パリティエラーが検出される場合、かつデー
タがプロセッサバス上で転送されるべきである場合、★
CERR信号が断定される。
データがプロセッサへ転送される必要がない(たとえば
ブロック再ロード)場合、ステータスレジスタ(後で説
明される)にエラービットがセットされ、データは無視
される。パリティ発生および検査は不能化され得る。パ
リティ発生およびチエツクが不能化される場合、メモリ
バスデータタイミングぼりラックスされる。
ブロック再ロード)場合、ステータスレジスタ(後で説
明される)にエラービットがセットされ、データは無視
される。パリティ発生および検査は不能化され得る。パ
リティ発生およびチエツクが不能化される場合、メモリ
バスデータタイミングぼりラックスされる。
★MBREQ、メモリバースト要求は、両方向であり、
同期式であり、3状態であり、かつアクティブLOWで
ある。この信号は、メモリバス上でのバーストモードア
クセスを確立するためにかつバーストモードアクセスの
間次の転送を要求するために使用される。ICUがバス
マスタである場合、この信号は出力である。ICUがマ
スクでない場合、それは入力であり、データ一貫性動作
のためにICUにより使用される。
同期式であり、3状態であり、かつアクティブLOWで
ある。この信号は、メモリバス上でのバーストモードア
クセスを確立するためにかつバーストモードアクセスの
間次の転送を要求するために使用される。ICUがバス
マスタである場合、この信号は出力である。ICUがマ
スクでない場合、それは入力であり、データ一貫性動作
のためにICUにより使用される。
MDLNO−MDLNl、メモリデータ長は、両方向で
あり、同期式であり、かつ3状態である。
あり、同期式であり、かつ3状態である。
これらの信号はメモリバスデータアクセスの間データの
長さを反映する。それらは命令アクセスの間無視される
。データキャッシュ使用では、ICUは8ビット転送、
16ビット転送および32ビット転送を支持する。これ
らの信号のコード化は、この発明の好ましい実施例によ
れば、次のとおりである。
長さを反映する。それらは命令アクセスの間無視される
。データキャッシュ使用では、ICUは8ビット転送、
16ビット転送および32ビット転送を支持する。これ
らの信号のコード化は、この発明の好ましい実施例によ
れば、次のとおりである。
MDLNI MDLNO意味
0 0 32ビットアクセス
0 1 8ビットアクセス
1 0 16ビ・ノドアクセス1 1
無効 MD L N OおよびMDLNIコード化はこの発明
の例示の実施例とともに使用されるプロセッサに対する
0PTOおよび0PT1に対応することが注目されるべ
きである。
無効 MD L N OおよびMDLNIコード化はこの発明
の例示の実施例とともに使用されるプロセッサに対する
0PTOおよび0PT1に対応することが注目されるべ
きである。
MEMADO−MEMAD31、メモリアドレス/デー
タバスは、両方向であり、同期式であり、かつ3状態で
ある。メモリバスは、メモリインク−フェイスのために
使用される多重化アドレス/データバスである。★MA
S T Bが断定される場合、このバスはメモリバス
アクセスのバイトアドレスを保持する。ICUがバスマ
スタである場合、それがアドレスを出力する。ICUが
バスマスタでない場合、バスは入力であり、アドレスは
その内部使用の間ICUによりラッチされる。MAST
Bが立上げられない場合、メモリバスはICUへおよび
そこからデータを転送するために使用される。
タバスは、両方向であり、同期式であり、かつ3状態で
ある。メモリバスは、メモリインク−フェイスのために
使用される多重化アドレス/データバスである。★MA
S T Bが断定される場合、このバスはメモリバス
アクセスのバイトアドレスを保持する。ICUがバスマ
スタである場合、それがアドレスを出力する。ICUが
バスマスタでない場合、バスは入力であり、アドレスは
その内部使用の間ICUによりラッチされる。MAST
Bが立上げられない場合、メモリバスはICUへおよび
そこからデータを転送するために使用される。
★MERR,メモリエラーは、同期ICU入力であり、
アクティブLOWである。この入力は、エラーが現在の
メモリアクセスの間に起こったことを示す。ICUもデ
ータ一貫性動作のためにこの信号を使用する。
アクティブLOWである。この入力は、エラーが現在の
メモリアクセスの間に起こったことを示す。ICUもデ
ータ一貫性動作のためにこの信号を使用する。
★ML OCK、メモリロックは、両方向であり、同期
式であり、3状態であり、かつアクティブLOWである
。この信号は、メモリアクセスがインターロックされた
アクセスであることを示す。ICUマスクは、インター
ロックされたアクセスがメモリバス上に存在する場合に
はこの出力を断定する。ICUがバスマスタでない場合
、この信号は入力として使用される。★MLOCKを断
定して書込アクセスの間に一致が見い出される場合、関
連するワード線は無効にされる。この特徴は、インター
ロック変数のキャッシングを可能化する機構に対し使用
される。
式であり、3状態であり、かつアクティブLOWである
。この信号は、メモリアクセスがインターロックされた
アクセスであることを示す。ICUマスクは、インター
ロックされたアクセスがメモリバス上に存在する場合に
はこの出力を断定する。ICUがバスマスタでない場合
、この信号は入力として使用される。★MLOCKを断
定して書込アクセスの間に一致が見い出される場合、関
連するワード線は無効にされる。この特徴は、インター
ロック変数のキャッシングを可能化する機構に対し使用
される。
★MRDY、メモリ作動可能は、両方向であり、同期式
であり、かつアクティブLOWである。ICUがバスマ
スタである場合、この信号は人力として使用される。メ
モリバス読出しで、この入力は、有効なデータがメモリ
バス上に存在することを示す。メモリバス書込みで、そ
れは、データがもはやメモリバス上では駆動される必要
がないことを示す。ICUがバスマスタでない場合、こ
の信号はデータ一貫性動作のための入力として使用され
る。それは、データ介入動作およびメモリバス特殊動作
のための出力として使用される。ICUは★MRDYを
断定して、有効なデータがメモリバス上に存在すること
を示す。
であり、かつアクティブLOWである。ICUがバスマ
スタである場合、この信号は人力として使用される。メ
モリバス読出しで、この入力は、有効なデータがメモリ
バス上に存在することを示す。メモリバス書込みで、そ
れは、データがもはやメモリバス上では駆動される必要
がないことを示す。ICUがバスマスタでない場合、こ
の信号はデータ一貫性動作のための入力として使用され
る。それは、データ介入動作およびメモリバス特殊動作
のための出力として使用される。ICUは★MRDYを
断定して、有効なデータがメモリバス上に存在すること
を示す。
MREQTO−MREQTI、メモリ要求タイプは、両
方向であり、同期式でありかつ3状態である。これらの
信号はメモリバス上でのアクセスのためのアドレス空間
を特定する。ICUがバスマスタである場合、それはこ
れらの信号を出力として使用する。それがバスマスクで
ない場合、MREQT信号はデータ一貫性動作のための
入力として使用される。コード化は、この発明の好まし
い実施例によれば、次のとおりである。
方向であり、同期式でありかつ3状態である。これらの
信号はメモリバス上でのアクセスのためのアドレス空間
を特定する。ICUがバスマスタである場合、それはこ
れらの信号を出力として使用する。それがバスマスクで
ない場合、MREQT信号はデータ一貫性動作のための
入力として使用される。コード化は、この発明の好まし
い実施例によれば、次のとおりである。
MREQTI MREQTO意味
0 0 データメモリアクセス0 1
データ人力/出力アクセス1 0 命令メモ
リアクセス 1 1 命令ROMアクセス ICUがバスマスクでない場合、MREQT信号もまた
ICUのためのメモリバスキャッシュ命令を特定するた
めに使用される(MRW信号とともに)。
データ人力/出力アクセス1 0 命令メモ
リアクセス 1 1 命令ROMアクセス ICUがバスマスクでない場合、MREQT信号もまた
ICUのためのメモリバスキャッシュ命令を特定するた
めに使用される(MRW信号とともに)。
MRWO−MRWI、メモリ読出し書込みは、両方向で
あり、同期式でありかつ3状態である。
あり、同期式でありかつ3状態である。
これらの信号は、メモリバス上での読出および書込動作
のタイプを特定するために使用される。ICUはバスマ
スタである場合、それは所要の動作を示すためにこれら
の信号を用いる。ICUがバスマスクでない場合、これ
らの信号は入力であり、データ一貫性の動作のために使
用される。これらの信号のコード化は、この発明の好ま
しい実施例によれば、次のとおりである。
のタイプを特定するために使用される。ICUはバスマ
スタである場合、それは所要の動作を示すためにこれら
の信号を用いる。ICUがバスマスクでない場合、これ
らの信号は入力であり、データ一貫性の動作のために使
用される。これらの信号のコード化は、この発明の好ま
しい実施例によれば、次のとおりである。
MRWI MRWO意味
0 0 書込み
0 1 読出し
1 0 書込同報通信
1 1 修正のための読出し
上で言及された続出および書込動作はICUに関連して
おり、たとえば読出しはメモリからICUへ至る。
おり、たとえば読出しはメモリからICUへ至る。
ICUがバスマスタでない場合、MRW信号もまたIC
Uのためにメモリバスキャッシュ命令を特定するために
使用される(MRE Q T信号とともに)。ここで説
明されるICUとともに使用するのに適するメモリバス
命令セットの詳細な説明は、後で詳細に明らかにされる
であろう。
Uのためにメモリバスキャッシュ命令を特定するために
使用される(MRE Q T信号とともに)。ここで説
明されるICUとともに使用するのに適するメモリバス
命令セットの詳細な説明は、後で詳細に明らかにされる
であろう。
MS/★MU、メモリスーパバイザ/ユーザモードは、
同期ICU出力であり、3状態である。
同期ICU出力であり、3状態である。
この出力はメモリアクセスの間プロセッサのプログラム
モード(スーパバイザモードまたはユーザモード)を示
す。ICUは、適当なトランザクションの間、プロセッ
サバス上に存在するSUP/★US値をMS/★MU値
へとメモリで転送する。
モード(スーパバイザモードまたはユーザモード)を示
す。ICUは、適当なトランザクションの間、プロセッ
サバス上に存在するSUP/★US値をMS/★MU値
へとメモリで転送する。
★REQ、メモリバス要求は、同期ICU出力であり、
アクティブLOWである。この出力はメモリバスを要求
するためにICUにより使用される。
アクティブLOWである。この出力はメモリバスを要求
するためにICUにより使用される。
★VS I、有効なステータスまたは命令は、同期であ
りICU入力であり、アクティブLOWである。ICU
がバススレーブである場合、断定された★VSIはメモ
リバスキャッシュ命令アドレスを示す。ICUがバスマ
スタでありかつそれが再ロード動作に対し読出要求を出
す場合、★VISの断定は特殊書込ブロックステータス
命令が実行されるべきであることを示す。適当なメモリ
バスキャッシュ命令セットと★VSIの使用との詳細な
説明は、後で明らかにされるであろう。
りICU入力であり、アクティブLOWである。ICU
がバススレーブである場合、断定された★VSIはメモ
リバスキャッシュ命令アドレスを示す。ICUがバスマ
スタでありかつそれが再ロード動作に対し読出要求を出
す場合、★VISの断定は特殊書込ブロックステータス
命令が実行されるべきであることを示す。適当なメモリ
バスキャッシュ命令セットと★VSIの使用との詳細な
説明は、後で明らかにされるであろう。
第2図のピンアウト図を参照しながら新規のICUへの
およびそこからの種々の入力および出力を説明してきた
ので、ICUの機能編成の詳細な説明を参照しながら新
規の方法および装置の完全な理解がなされ得る。この説
明はいくつかの部分で明らかにされるであろう。まず、
計算システムへ、特にこの発明の効用および操作可能性
を説明するために使用される具体例のRISCシステム
へどのようにしてICUが適合するかに関する大要が説
明される。第2に、ICUを介するデータの流れが詳細
に説明される。第3に、この発明を実現するのに適する
レジスタの組のレジスタレベル説明が明らかにされる。
およびそこからの種々の入力および出力を説明してきた
ので、ICUの機能編成の詳細な説明を参照しながら新
規の方法および装置の完全な理解がなされ得る。この説
明はいくつかの部分で明らかにされるであろう。まず、
計算システムへ、特にこの発明の効用および操作可能性
を説明するために使用される具体例のRISCシステム
へどのようにしてICUが適合するかに関する大要が説
明される。第2に、ICUを介するデータの流れが詳細
に説明される。第3に、この発明を実現するのに適する
レジスタの組のレジスタレベル説明が明らかにされる。
適当なキャッシュ命令セットと、データフォーマットお
よび取扱いの説明と、土ヤツシュアクセスおよび先取り
動作も明らかにされるであろう。
よび取扱いの説明と、土ヤツシュアクセスおよび先取り
動作も明らかにされるであろう。
ICU書込バッファの用途、初期化およびリセット動作
に関するさらなる詳細は、後でも同様に説明されるであ
ろう。
に関するさらなる詳細は、後でも同様に説明されるであ
ろう。
最後に、ICUおよび特殊ICUインターロック機能に
よるマルチプロセッサ支持がこの発明の詳細な説明を完
全にするために説明されるであろう。
よるマルチプロセッサ支持がこの発明の詳細な説明を完
全にするために説明されるであろう。
先に示されたように、新規のICUはSIPを含むRI
SCアーキテクチャに関連して説明される。この発明
の好ましい実施例はこのアーキテクチャを支持するよう
な方法で説明される。たとえば非RISCプロセッサを
支持するために、この発明の精神の範囲から逸脱するこ
となしに、新規のISCの好ましい実施例に対する修正
がなされ得ることを当業者は容易に先取れるであろう。
SCアーキテクチャに関連して説明される。この発明
の好ましい実施例はこのアーキテクチャを支持するよう
な方法で説明される。たとえば非RISCプロセッサを
支持するために、この発明の精神の範囲から逸脱するこ
となしに、新規のISCの好ましい実施例に対する修正
がなされ得ることを当業者は容易に先取れるであろう。
したがって、後に続く説明は、例示のためのみに明らか
にされる。
にされる。
ICUの好ましい実施例の核心は、関連するタグおよび
有効なアレイを有する8にバイトメモリアレイである。
有効なアレイを有する8にバイトメモリアレイである。
このアレイは、1タグあたり4ワード(ブロックサイズ
−4ワード)と1ワードあたりの有効なビットを有する
両方向セット連想キャッシュとして編成される。この基
本的編成もまたフレキシブルな再ロード機構ばがりでな
く、直接マツピングされたキャッシュ、変数ブロックお
よびサブブロックサイズを支持する。ブロックステータ
スアレイとLRUアレイも組入れられる。
−4ワード)と1ワードあたりの有効なビットを有する
両方向セット連想キャッシュとして編成される。この基
本的編成もまたフレキシブルな再ロード機構ばがりでな
く、直接マツピングされたキャッシュ、変数ブロックお
よびサブブロックサイズを支持する。ブロックステータ
スアレイとLRUアレイも組入れられる。
それはキャッシュ置換と、データをキャッシュにロック
することと、データ一貫性ポリシーのために使用される
。ICUは異なるキャッシュポリシー、アルゴリズムお
よび命令のためにすべての制御論理を含んでいる。特殊
レジスタがプログラム可能オプション選択、キャッシュ
命令実現およびステータス報告のために実現される。
することと、データ一貫性ポリシーのために使用される
。ICUは異なるキャッシュポリシー、アルゴリズムお
よび命令のためにすべての制御論理を含んでいる。特殊
レジスタがプログラム可能オプション選択、キャッシュ
命令実現およびステータス報告のために実現される。
キャッシュポリシーは、プログラム可能オプションを用
いることにより選択され得る。キャッシュ書込ポリシー
は、アクセスごとにライトスルー、コピーバックまたは
フレキシブルとしてプログラムされ得る。書込割当オプ
ションまたは非書込割当オプションが選択され得る。書
込アクセスの有効な実現のために4ワード書込バツフア
が組入れられる。置換アルゴリズムはLRU、ランダム
または外部としてプログラムされ得る。フレキシブルな
先取りポリシーが選択され得る。リードスルーオプショ
ンは可能化され得る。有効な先取りおよび読出動作を支
持するために47−ド読出バツフアが組入れられる。
いることにより選択され得る。キャッシュ書込ポリシー
は、アクセスごとにライトスルー、コピーバックまたは
フレキシブルとしてプログラムされ得る。書込割当オプ
ションまたは非書込割当オプションが選択され得る。書
込アクセスの有効な実現のために4ワード書込バツフア
が組入れられる。置換アルゴリズムはLRU、ランダム
または外部としてプログラムされ得る。フレキシブルな
先取りポリシーが選択され得る。リードスルーオプショ
ンは可能化され得る。有効な先取りおよび読出動作を支
持するために47−ド読出バツフアが組入れられる。
マルチプロセッサ支持ポリシーはシステムに適合させら
れ得る。マルチプロセッサ支持のレベルは広範囲な所有
権機構を介して簡単なソウトウエア制御の編成から変え
られ得る。バスウォッチ能力は可能化または不能化され
得る。所有権アルゴリズムは所要の機構を支持するため
に制御され得る。インターロック変数をキャッシュする
ことが可能化または不能化され得る。
れ得る。マルチプロセッサ支持のレベルは広範囲な所有
権機構を介して簡単なソウトウエア制御の編成から変え
られ得る。バスウォッチ能力は可能化または不能化され
得る。所有権アルゴリズムは所要の機構を支持するため
に制御され得る。インターロック変数をキャッシュする
ことが可能化または不能化され得る。
2個のチップ選択入力およびチップ選択マツピングレジ
スタが容易なキャッシュ拡張ばかりでなく多重キャッシ
ュ編成を可能にする。再ロードサイズのような適当なア
クセス制御オプションを選択し、アドレスと、バースト
と、ラップアラウンドを開始および停止することにより
、再ロード機能はシステムに適合させられ得る。
スタが容易なキャッシュ拡張ばかりでなく多重キャッシ
ュ編成を可能にする。再ロードサイズのような適当なア
クセス制御オプションを選択し、アドレスと、バースト
と、ラップアラウンドを開始および停止することにより
、再ロード機能はシステムに適合させられ得る。
再び、ICUの好ましい実施例は、説明される例示の具
体例におけるRISCプロセッサの同一周波数で、すな
わち、可能な限り高い周波数を有する25MHzの名目
周波数で動作する。それは、最初のヒツトアクセスに対
しては2サイクルの、かつ次のバーストモードヒツトア
クセスまたはパイプラインヒツトアクセスに対しては1
サイクルのアクセス時間を達成する。
体例におけるRISCプロセッサの同一周波数で、すな
わち、可能な限り高い周波数を有する25MHzの名目
周波数で動作する。それは、最初のヒツトアクセスに対
しては2サイクルの、かつ次のバーストモードヒツトア
クセスまたはパイプラインヒツトアクセスに対しては1
サイクルのアクセス時間を達成する。
1個はRISCプロセッサを含み、かつ2個はICU用
である(一方は命令キャッシュに対するものでありかつ
他方はデータキャッシュに対するものである)、31C
構成が、16にバイトのキャッシュを有する非常に高性
能のキャッシュシステムである。
である(一方は命令キャッシュに対するものでありかつ
他方はデータキャッシュに対するものである)、31C
構成が、16にバイトのキャッシュを有する非常に高性
能のキャッシュシステムである。
第1図を参照しながら上で示されたように、ICUは2
個のインターフェイスバス、すなわちプロセッサバスと
メモリバスを有する。それはインターフェイス論理なし
でRISCプロセッサに直接に接続され得る。ICUキ
ャッシュバスはそれぞれデータまたは命令キャッシュに
対し、プロセッサのデータまたは命令バスに接続される
0パイプライン化アクセスおよびバーストモードアクセ
スはプロセッサチャネルの最大限の利用にために支持さ
れる。メモリバスはメモリと、他のプロセッサと、シス
テムバスとに対する別々のインターフェイスである。そ
れはバーストモードアクセスに対する支持を有する多重
化アドレスおよびデータバスである。それはまた、マル
チプロセッサ支持機能を組入れている。共有されるメモ
リマルチプロセッサ環境においては、メモリバスは共有
されるマルチプロセッサバスとして有効に使用され得る
。1個のプロセッサシステムに対し、それはシステムバ
スとしてまたはローカルバスとして使用され得る。
個のインターフェイスバス、すなわちプロセッサバスと
メモリバスを有する。それはインターフェイス論理なし
でRISCプロセッサに直接に接続され得る。ICUキ
ャッシュバスはそれぞれデータまたは命令キャッシュに
対し、プロセッサのデータまたは命令バスに接続される
0パイプライン化アクセスおよびバーストモードアクセ
スはプロセッサチャネルの最大限の利用にために支持さ
れる。メモリバスはメモリと、他のプロセッサと、シス
テムバスとに対する別々のインターフェイスである。そ
れはバーストモードアクセスに対する支持を有する多重
化アドレスおよびデータバスである。それはまた、マル
チプロセッサ支持機能を組入れている。共有されるメモ
リマルチプロセッサ環境においては、メモリバスは共有
されるマルチプロセッサバスとして有効に使用され得る
。1個のプロセッサシステムに対し、それはシステムバ
スとしてまたはローカルバスとして使用され得る。
ICUの好ましい実施例は、故障許容支持のための特殊
ハードウェアを備えている。それはマスタ/スレーブ検
査およびメモリバス上のバイトパリティ発生および検査
を支持する。マスタ/スレがマスクの出力を検査する1
個またはそれ以上のキャッシュ(スレーブ)と並列に接
続される。バイトパリティ発生および検査は信頼できる
バス転送のためにメモリバス上で使用され得る。
ハードウェアを備えている。それはマスタ/スレーブ検
査およびメモリバス上のバイトパリティ発生および検査
を支持する。マスタ/スレがマスクの出力を検査する1
個またはそれ以上のキャッシュ(スレーブ)と並列に接
続される。バイトパリティ発生および検査は信頼できる
バス転送のためにメモリバス上で使用され得る。
この発明の好ましい実施例は、上で示されたように、C
MO5技術において製造され、かつ1゜5Wの最大電力
散逸を有する。
MO5技術において製造され、かつ1゜5Wの最大電力
散逸を有する。
ICU内部データの流れ編成が第3図に示されている。
次の説明はこのデータの流れ図における機能構成要素に
対し言及している。ICUは3つの主機能ユニット、す
なわち各々第3図に描かれている、プロセッサバスユニ
ットと、メモリバスユニットと、キャッンユユニットと
に分割される。
対し言及している。ICUは3つの主機能ユニット、す
なわち各々第3図に描かれている、プロセッサバスユニ
ットと、メモリバスユニットと、キャッンユユニットと
に分割される。
後に続く説明は、いくつの目的にも使用される種々のワ
ードの特殊ビット場所およびフィールドを時々参照する
であろう。当業者は、これらの特別な参照が制限するよ
うに意図されたのではなく、所望の応用に適するように
修正され得ることを容易に認めるであろう。この発明の
実行できる例示の好ましい実施例を提示する際に明瞭化
のためのみに特別な参照がなされる。
ードの特殊ビット場所およびフィールドを時々参照する
であろう。当業者は、これらの特別な参照が制限するよ
うに意図されたのではなく、所望の応用に適するように
修正され得ることを容易に認めるであろう。この発明の
実行できる例示の好ましい実施例を提示する際に明瞭化
のためのみに特別な参照がなされる。
プロセッサバスユニットはすべてのプロセッサバス活動
を制御する。それはすべてのRISC/SIPチャネル
プロトコル、すなわち単一プロトコル、バーストプロト
コルおよびパイプライン化プロトコルを支持する。それ
は、各々後で直接に説明される、アドレス増分器と、デ
ータシフト器と、プロセッサバス制御とを組入れる。ア
ドレス増分器(AI)はアドレスバス入力をラッチする
。
を制御する。それはすべてのRISC/SIPチャネル
プロトコル、すなわち単一プロトコル、バーストプロト
コルおよびパイプライン化プロトコルを支持する。それ
は、各々後で直接に説明される、アドレス増分器と、デ
ータシフト器と、プロセッサバス制御とを組入れる。ア
ドレス増分器(AI)はアドレスバス入力をラッチする
。
それは各サイクルのたびに増分され得る。AI出力はキ
ャッシュアクセスのためのアドレスである。
ャッシュアクセスのためのアドレスである。
AIは第3図にユニット301として示されている。
データシフト器(D S H)はデータ整列のしために
使用される。それはバイトおよびハーフワードをシフト
し、キャッシュ書込アクセスのためにデータを保持する
。それはまた、バイトおよび半ワード読出しの場合に適
当なバイトおよびハーフワードシフト動作のために使用
される。DSHは第3図にユニット302として示され
ている。
使用される。それはバイトおよびハーフワードをシフト
し、キャッシュ書込アクセスのためにデータを保持する
。それはまた、バイトおよび半ワード読出しの場合に適
当なバイトおよびハーフワードシフト動作のために使用
される。DSHは第3図にユニット302として示され
ている。
プロセッサバス制御(PBD)は異なるプロセッサバス
動作を制御する。PBCは第3図にユニット303とし
て示されている。
動作を制御する。PBCは第3図にユニット303とし
て示されている。
メモリバスユニットはメモリバス活動を制御する。それ
は、各々後ですぐ説明される、書込バッファと、メモリ
アドレス論理と、メモリ続出バッファと、メモリバス制
御とを組入れる。
は、各々後ですぐ説明される、書込バッファと、メモリ
アドレス論理と、メモリ続出バッファと、メモリバス制
御とを組入れる。
この発明の好ましい実施例において使用される書込バッ
ファ(WB)は、2個の4ワード先入れ先出しくF I
FO)バッファ(1個はアドレスに対するものであり
、1個はデータに対するものである)を含む。WBはす
べてのICU書込動作をバッファし得る。ライトスルー
動作に対し、それは4バイトまでのハーフワードまたは
ワード書込みをバッファする。コピーパック動作のため
に、それは4ワードブロツクをバッファする。WBは第
3図にユニット304として示されている。
ファ(WB)は、2個の4ワード先入れ先出しくF I
FO)バッファ(1個はアドレスに対するものであり
、1個はデータに対するものである)を含む。WBはす
べてのICU書込動作をバッファし得る。ライトスルー
動作に対し、それは4バイトまでのハーフワードまたは
ワード書込みをバッファする。コピーパック動作のため
に、それは4ワードブロツクをバッファする。WBは第
3図にユニット304として示されている。
メモリアドレス論理(MAL)は2個のアドレス増幅器
を含んでいる。第1のものは、バスからICUへの動作
のためにメモリバスアドレスをラッチおよび増分する。
を含んでいる。第1のものは、バスからICUへの動作
のためにメモリバスアドレスをラッチおよび増分する。
第2のものは、ICUにより初期化される読出動作のた
めにアドレスをラッチおよび増分する。MALは第3図
にユニット305として示されている。
めにアドレスをラッチおよび増分する。MALは第3図
にユニット305として示されている。
メモリ読出バッファ(MRB)は4ワードデータバツフ
アである。それは、キャッシュが更新動作のために利用
可能になるまで、メモリバスからのデータをバッファす
る。MRBは、先取りが可能化される場合先取リバッフ
7として使用される。
アである。それは、キャッシュが更新動作のために利用
可能になるまで、メモリバスからのデータをバッファす
る。MRBは、先取りが可能化される場合先取リバッフ
7として使用される。
MRBは第3図にユニット306として示されている。
最後に、メモリバス動作を制御するメモリバス制御(M
BC)は第3図にユニット307として示されている。
BC)は第3図にユニット307として示されている。
キャッシュユニットはすべてのキャッシュ機能を実施す
る。それは、各々すぐ後で説明される、メモリアレイと
、タグアレイと、有効なアレイと、ブロックステータス
アレイと、LRUアレイしと、特殊レジスタと、キャッ
シュ制御とを組入れる。
る。それは、各々すぐ後で説明される、メモリアレイと
、タグアレイと、有効なアレイと、ブロックステータス
アレイと、LRUアレイしと、特殊レジスタと、キャッ
シュ制御とを組入れる。
メモリアレイはキャッシュされた命令またはデータのた
めの64にビット記憶アレイである。それは両方向の1
024ワードとして編成される。
めの64にビット記憶アレイである。それは両方向の1
024ワードとして編成される。
この発明の好ましい実施例によれば、アドレスのビット
11−2を用いて、読出動作のために両方向が同時にア
クセスされる。適当なワードはタグアレイからのヒツト
信号に従って選択される。タグアクセスが完了されかつ
ヒツト信号が発生された後で、書込動作のためにアレイ
における正しいワードが書込まれる。メモリアレイは第
3図にユニット310として示されている。
11−2を用いて、読出動作のために両方向が同時にア
クセスされる。適当なワードはタグアレイからのヒツト
信号に従って選択される。タグアクセスが完了されかつ
ヒツト信号が発生された後で、書込動作のためにアレイ
における正しいワードが書込まれる。メモリアレイは第
3図にユニット310として示されている。
タグアレイはキャッシュタグを両方向セット連想編成で
ストアする。各方向は256X20ビットとして編成さ
れる。各タグは4個の連続するキャッシュされたワード
のブロックに対応する。各キャッシュアクセスに対し、
アドレスのビット11−4を用いて2個のタグが同時に
アクセスされる。タグはアドレスのビット31−12
(この発明の一実施例において)と比べられる。ヒツト
信号は、比較結果および構成ビットから発生される。
ストアする。各方向は256X20ビットとして編成さ
れる。各タグは4個の連続するキャッシュされたワード
のブロックに対応する。各キャッシュアクセスに対し、
アドレスのビット11−4を用いて2個のタグが同時に
アクセスされる。タグはアドレスのビット31−12
(この発明の一実施例において)と比べられる。ヒツト
信号は、比較結果および構成ビットから発生される。
タグアレイは、ミスが発生しかつキャッシュブロックが
割当てられるときはいつでも書込まれる。
割当てられるときはいつでも書込まれる。
タグはアドレスのビット11−4および置換アルゴリズ
ムに従って選択される。アドレスビット31−12はタ
グアレイに書込まれる。タグアレイは第3図にユニット
311として示されている。
ムに従って選択される。アドレスビット31−12はタ
グアレイに書込まれる。タグアレイは第3図にユニット
311として示されている。
有効なアレイ、すなわち第3図のユニット312は、各
キャッシュされたワードに対す有効なビットをストアす
る2にとットアレイである。それは2個の1024X1
アレイとして編成される。
キャッシュされたワードに対す有効なビットをストアす
る2にとットアレイである。それは2個の1024X1
アレイとして編成される。
有効なビットは、それがキャッシュへと書込まれるとき
に各ワードに対し設定される。有効なビットはアドレス
ビット1l−2(メモリアレイであるとして)および一
致する方向により選択される。
に各ワードに対し設定される。有効なビットはアドレス
ビット1l−2(メモリアレイであるとして)および一
致する方向により選択される。
両方向に対応する2個の有効なビットはキャッシュアク
セスごとにチエツクされる。適当な有効ビットが設定さ
れる場合にのみ、ヒツト信号が発生される。
セスごとにチエツクされる。適当な有効ビットが設定さ
れる場合にのみ、ヒツト信号が発生される。
ブロックステータスアレイ、すなわち第3図のユニット
312は、タグキャッシュブロックあたり3個のブロッ
クステータスビットを組入れる1536ビットアレイで
ある。それは2個の256×37レイ(これはタグアレ
イ編成に対応する)として編成される。3個のビットは
、修正されたビット、共有されたビット、およびロック
されたビットである。修正されたビットは、ブロックが
修正されかつ置換の前にメモリへ逆に書込まれるべきで
あることを示す。それはコピーバック動作およびデータ
一貫性動作のために使用される。共有されるビットは、
ブロックが共有されることを示している。それはデータ
一貫性動作のために使用される。ロックされたビットは
、ブロックがロックされかつ置換され得ないことを示す
。それは重要なデータまたは命令をキャッシュにロック
するために使用される。
312は、タグキャッシュブロックあたり3個のブロッ
クステータスビットを組入れる1536ビットアレイで
ある。それは2個の256×37レイ(これはタグアレ
イ編成に対応する)として編成される。3個のビットは
、修正されたビット、共有されたビット、およびロック
されたビットである。修正されたビットは、ブロックが
修正されかつ置換の前にメモリへ逆に書込まれるべきで
あることを示す。それはコピーバック動作およびデータ
一貫性動作のために使用される。共有されるビットは、
ブロックが共有されることを示している。それはデータ
一貫性動作のために使用される。ロックされたビットは
、ブロックがロックされかつ置換され得ないことを示す
。それは重要なデータまたは命令をキャッシュにロック
するために使用される。
LRUアレイ、すなわち第3図のユニット314は、L
RUビットをストアする256ビットアレイである。そ
れは256X1アレイとして編成される。各LRUビッ
トは1組の2個のタグに対応する。LRUアレイは、最
も古くに使用された置換アルゴリズムが選択される場合
に使用される。
RUビットをストアする256ビットアレイである。そ
れは256X1アレイとして編成される。各LRUビッ
トは1組の2個のタグに対応する。LRUアレイは、最
も古くに使用された置換アルゴリズムが選択される場合
に使用される。
適当なLRUビットは、成る組における2個のブロック
のうち最も古くに使用されたブロックを反映するために
更新される。必要とされると、LRUビットはどちらの
ブロックがその組から置換されるかを決定する。
のうち最も古くに使用されたブロックを反映するために
更新される。必要とされると、LRUビットはどちらの
ブロックがその組から置換されるかを決定する。
第3図のユニット315として示される特殊レジスタブ
ロックは、ICUのすべての特殊レジスタを組入れる。
ロックは、ICUのすべての特殊レジスタを組入れる。
それらは、ICUオプションをプログラムするために、
特殊動作を制御するために、かつステータス情報を保持
するために使用される。
特殊動作を制御するために、かつステータス情報を保持
するために使用される。
最後に、キャッシュ制御ブロック、すなわち第3図のユ
ニット316は、キャッシュ動作のための制御論理を含
んでいる。
ニット316は、キャッシュ動作のための制御論理を含
んでいる。
第3図を参照しながら新規のICUを介するデータの流
れを明らかにしかつ説明したが、ここで注意をICUの
データの流れと制御を支持するためのレジスタ構造に向
ける。
れを明らかにしかつ説明したが、ここで注意をICUの
データの流れと制御を支持するためのレジスタ構造に向
ける。
ICUの好ましい実施例は8個の特殊レジスタを備えて
いる。これらのレジスタはプログラム可能オプションを
選択し、キャッシュ制御動作を支持し、かつキャッシュ
ステータス情報を示す。各レジスタは、プロセッサバス
またはメモリバスを介してプロセッサにより読出されま
たは書込まれ得る。バスのうちの1個上での適当なキャ
ッシュ命令プロトコルを用いてICUへと読出レジスタ
または書込レジスタキャッシュ命令が転送される。
いる。これらのレジスタはプログラム可能オプションを
選択し、キャッシュ制御動作を支持し、かつキャッシュ
ステータス情報を示す。各レジスタは、プロセッサバス
またはメモリバスを介してプロセッサにより読出されま
たは書込まれ得る。バスのうちの1個上での適当なキャ
ッシュ命令プロトコルを用いてICUへと読出レジスタ
または書込レジスタキャッシュ命令が転送される。
プロセッサーバス命令では、レジスタ数はOpコード(
o p c o d e)の3個の下位ビットにより特
定される。命令転送プロトコルおよびICU応答は、そ
れぞれモッドb(Modb)レジスタにおける読出レジ
スタ制御および命令転送プロトコル制御により制御され
る。メモリーバス命令に対し、レジスタ数はアドレスの
3個の下位ビットにより特定される。これらの例示のプ
ロトコルおよび応答の詳細な説明が後で明らかにされる
であろう。
o p c o d e)の3個の下位ビットにより特
定される。命令転送プロトコルおよびICU応答は、そ
れぞれモッドb(Modb)レジスタにおける読出レジ
スタ制御および命令転送プロトコル制御により制御され
る。メモリーバス命令に対し、レジスタ数はアドレスの
3個の下位ビットにより特定される。これらの例示のプ
ロトコルおよび応答の詳細な説明が後で明らかにされる
であろう。
プロセッサーバスアクセスで、すべてのICU特殊レジ
スタが保護される。それらは、SUB/★US入力がH
IGHである場合のみアクセスされ得る。ユーザモード
アクセスは実行されない。
スタが保護される。それらは、SUB/★US入力がH
IGHである場合のみアクセスされ得る。ユーザモード
アクセスは実行されない。
★CERR応答は無効のユーザモードアクセスの信号を
送る。レジスタはメモリバスキャッシュ命令に対し保護
される。
送る。レジスタはメモリバスキャッシュ命令に対し保護
される。
この発明の好ましい実施例によれば、各レジスタは次の
ような番号に指定される。
ような番号に指定される。
レジスタ番号 レジスタ名
0 チップ選択マツピング
1 命令
2 アドレスオペランド
3 カウント
4 エラーアドレス
5 ステータス
6 モッドa
7 モッドb
各レジスタの一般的機能のみが後で説明されるが、とい
うのは、特有に依存する目的のために特殊なビット割当
てがなされ得ることを当業者が認めるであろうからであ
る。
うのは、特有に依存する目的のために特殊なビット割当
てがなされ得ることを当業者が認めるであろうからであ
る。
チップ選択マツピングレジスタは特殊レジスタ0である
。それはICUチップ選択機能に対するアドレスと条件
を特定する。ICUは2つの独立したチップ選択機能、
すなわち通常のキャッシュアクセスに対する機能とキャ
ッシュ命令アクセスに対する機能とを有している。
。それはICUチップ選択機能に対するアドレスと条件
を特定する。ICUは2つの独立したチップ選択機能、
すなわち通常のキャッシュアクセスに対する機能とキャ
ッシュ命令アクセスに対する機能とを有している。
通常のキャッシュアクセスで、チップ選択機能はキャッ
シュ拡張と、キャッシュアドレス空間割当てと、多数キ
ャッシュ構成とのために使用され得る。この発明の好ま
しい実施例においては、外部チップ選択ハードウェアな
しに32個までのICU (16個の命令キャッシュお
よび16個のデータキャッシュ)が使用され得る。メモ
リアクセス(MA)選択はまた、モッドaレジスタの★
C3M人力とメモリビット可能化フィールドとにより影
響を及ぼされる。★CSM入力が可能化される場合、そ
れはメモリアクセスを可能化するために断定されなけれ
ばならない。★C3M入力が不能化される場合、それは
無視される。メモリビット可能化フィールドは、適当な
アドレスビットのチップ選択メモリレジスタにおける対
応する(MA)フィールドビットに対する比較を選択的
に可能化し得る。ピッドが比較のために不能化される場
合、それは無視される。すべてのビットが不能化される
場合、一致が強制される。★C5Mが可能化される場合
、サービスされるべきメモリアクセスの間それが断定さ
れ、MAフィールド比較が一致すべきことに注目された
い。
シュ拡張と、キャッシュアドレス空間割当てと、多数キ
ャッシュ構成とのために使用され得る。この発明の好ま
しい実施例においては、外部チップ選択ハードウェアな
しに32個までのICU (16個の命令キャッシュお
よび16個のデータキャッシュ)が使用され得る。メモ
リアクセス(MA)選択はまた、モッドaレジスタの★
C3M人力とメモリビット可能化フィールドとにより影
響を及ぼされる。★CSM入力が可能化される場合、そ
れはメモリアクセスを可能化するために断定されなけれ
ばならない。★C3M入力が不能化される場合、それは
無視される。メモリビット可能化フィールドは、適当な
アドレスビットのチップ選択メモリレジスタにおける対
応する(MA)フィールドビットに対する比較を選択的
に可能化し得る。ピッドが比較のために不能化される場
合、それは無視される。すべてのビットが不能化される
場合、一致が強制される。★C5Mが可能化される場合
、サービスされるべきメモリアクセスの間それが断定さ
れ、MAフィールド比較が一致すべきことに注目された
い。
キャッシュ命令アクセスで、チップ選択機能はアクセス
のために適当なICUを選択するために使用される。★
C3ELが断定されかつ可能化される場合、またはアド
レス入力A31−Al4およびCREQTOがチップ選
択マツピングレジスタにおけるキャッシュ命令アドレス
およびキャッシュ命令アドレス空間フィールドと一致す
る場合、キャッシュ命令アクセスが可能化される。第2
の場合において、一致しているすべてのキャッシュが選
択される。命令範囲が多数キャッシュである場合、すべ
ての選択されたキャッシュが応答する。
のために適当なICUを選択するために使用される。★
C3ELが断定されかつ可能化される場合、またはアド
レス入力A31−Al4およびCREQTOがチップ選
択マツピングレジスタにおけるキャッシュ命令アドレス
およびキャッシュ命令アドレス空間フィールドと一致す
る場合、キャッシュ命令アクセスが可能化される。第2
の場合において、一致しているすべてのキャッシュが選
択される。命令範囲が多数キャッシュである場合、すべ
ての選択されたキャッシュが応答する。
命令範囲が1個のキャッシュである場合、アドレス入力
A13−A8がチップ選択マツピングレジスタの特殊キ
ャッシュ番号フィールドに一致するキャッシュのみが応
答する。
A13−A8がチップ選択マツピングレジスタの特殊キ
ャッシュ番号フィールドに一致するキャッシュのみが応
答する。
初期化の間、★C3EL入力は所与のICUのチップ選
択マツピングレジスタをプログラムするために使用され
る。典型的な構成において、異なるアドレスビットが異
なるICUの★C3ELに接続され得る。★C3ELは
断定されがっ可能化される場合、ICUはデータアクセ
スをキャッシュ命令アクセスとして取扱う。チップ選択
マツピングレジスタがプログラムされた後で、★C3E
L入力は不能化され得て、さらに、チップ選択マツピン
グレジスタにより特定されるマツピングが適用される。
択マツピングレジスタをプログラムするために使用され
る。典型的な構成において、異なるアドレスビットが異
なるICUの★C3ELに接続され得る。★C3ELは
断定されがっ可能化される場合、ICUはデータアクセ
スをキャッシュ命令アクセスとして取扱う。チップ選択
マツピングレジスタがプログラムされた後で、★C3E
L入力は不能化され得て、さらに、チップ選択マツピン
グレジスタにより特定されるマツピングが適用される。
命令レジスタは特殊レジスタ1である。それはCIUへ
の命令を特定するために使用される。命令レジスタは他
のいかなる特殊レジスタとしても読出しまたは書込みさ
れ得るが、それはまた有効なキャッシュ命令に対し自動
的にロードされる。
の命令を特定するために使用される。命令レジスタは他
のいかなる特殊レジスタとしても読出しまたは書込みさ
れ得るが、それはまた有効なキャッシュ命令に対し自動
的にロードされる。
有効なキャッシュ命令は、★C3EL入力が断定されか
つ可能化される場合、またはアドレス人力A31−Al
4およびCREQTOがチップ選択マツピングレジスタ
におけるキャッシュ命令アドレスおよびキャッシュ命令
アドレス空間フィールドに一致する場合に検出される。
つ可能化される場合、またはアドレス人力A31−Al
4およびCREQTOがチップ選択マツピングレジスタ
におけるキャッシュ命令アドレスおよびキャッシュ命令
アドレス空間フィールドに一致する場合に検出される。
これらの場合、命令はアドレス入力A7−AOからコピ
ーされる。
ーされる。
命令転送プロトコルの間のプロセッサ中断の場合、また
は多数キャッシュ命令が中断される場合、命令レジスタ
はICUの状態を保管および復元するための特殊レジス
タとしてアクセスされ得る。
は多数キャッシュ命令が中断される場合、命令レジスタ
はICUの状態を保管および復元するための特殊レジス
タとしてアクセスされ得る。
それが特殊レジスタとしてアクセスされる場合、読出ま
たは書込レジスタキャッシュ命令がICUに転送される
。命令およびオペランドレジスタの所要の古い内容を破
壊することなしに、読出レジスタ命令および任意のオペ
ランドをラッチすることを可能にするためにシャドウレ
ジスタが組入れられる。シャドウ命令レジスタは最初に
命令がロードされる。読出レジスタ命令および書込レジ
スタ命令を除くすべての命令に対し、命令実行が開始さ
れるときに命令レジスタは更新される。読出レジスタ命
令および書込レジスタ命令で、命令レジスタに他の有効
な命令が存在しない場合のみに命令レジスタは更新され
る。有効な命令が命令レジスタに存在する場合、命令お
よびオペランドレジスタに影響を及ぼすことなしに読出
レジスタ命令が実行される。この特徴はまた、キャッシ
ュ命令の実行に影響を及ぼすことなしにICUのステー
タスを検査するために使用される。
たは書込レジスタキャッシュ命令がICUに転送される
。命令およびオペランドレジスタの所要の古い内容を破
壊することなしに、読出レジスタ命令および任意のオペ
ランドをラッチすることを可能にするためにシャドウレ
ジスタが組入れられる。シャドウ命令レジスタは最初に
命令がロードされる。読出レジスタ命令および書込レジ
スタ命令を除くすべての命令に対し、命令実行が開始さ
れるときに命令レジスタは更新される。読出レジスタ命
令および書込レジスタ命令で、命令レジスタに他の有効
な命令が存在しない場合のみに命令レジスタは更新され
る。有効な命令が命令レジスタに存在する場合、命令お
よびオペランドレジスタに影響を及ぼすことなしに読出
レジスタ命令が実行される。この特徴はまた、キャッシ
ュ命令の実行に影響を及ぼすことなしにICUのステー
タスを検査するために使用される。
すべての所要のオペランドが有効であるときはいつでも
、命令がICUにより実行される。具体例の命令、所要
のオペランド、およびキャッシュ命令アクセスの詳細な
説明が後で明らかにされるであろう。
、命令がICUにより実行される。具体例の命令、所要
のオペランド、およびキャッシュ命令アクセスの詳細な
説明が後で明らかにされるであろう。
オペランドレジスタは特殊レジスタ2である。
それは成るICU命令に対しオペランドを特定する。レ
ジスタは、オペランドレジスタ値の妥当性を示すための
ビット(OVビット)を含む。読出レジスタ命令および
書込レジスタ命令の正しい実行のために、シャドウオペ
ランドレジスタがICUに組入れられる。シャドウオペ
ランドレジスタは最初にオペランドがロードされる。読
出レジスタ命令および書込レジスタ命令を除くすべての
命令で、妥当性ビットがリセットされる場合にオペラン
ドレジスタが更新される。OVビットがセットされる場
合、ICUはOvビットがリセットされる(先の命令の
完了)まで★CRDY応答を遅延し、次にレジスタにロ
ードする。続出レジスタ命令および書込レジスタ命令に
対し、命令レジスタに他の有効な命令が存在しない場合
のみオペランドレジスタは更新される。命令レジスタに
有効な命令が存在する場合、命令およびオペランドに影
響を及ぼすことなしに読出レジスタ命令および書込レジ
スタ命令が実行される。これは、必要な場合に、オペラ
ンドを保管することおよび復元することを可能にする。
ジスタは、オペランドレジスタ値の妥当性を示すための
ビット(OVビット)を含む。読出レジスタ命令および
書込レジスタ命令の正しい実行のために、シャドウオペ
ランドレジスタがICUに組入れられる。シャドウオペ
ランドレジスタは最初にオペランドがロードされる。読
出レジスタ命令および書込レジスタ命令を除くすべての
命令で、妥当性ビットがリセットされる場合にオペラン
ドレジスタが更新される。OVビットがセットされる場
合、ICUはOvビットがリセットされる(先の命令の
完了)まで★CRDY応答を遅延し、次にレジスタにロ
ードする。続出レジスタ命令および書込レジスタ命令に
対し、命令レジスタに他の有効な命令が存在しない場合
のみオペランドレジスタは更新される。命令レジスタに
有効な命令が存在する場合、命令およびオペランドに影
響を及ぼすことなしに読出レジスタ命令および書込レジ
スタ命令が実行される。これは、必要な場合に、オペラ
ンドを保管することおよび復元することを可能にする。
必要とされる場合、オペランドレジスタ読出レジスタ命
令または書込レジスタ命令を使用することにより読出し
または書込みがなされ得る。
令または書込レジスタ命令を使用することにより読出し
または書込みがなされ得る。
カウントレジスタは特殊レジスタ3である。それは、成
るICU命令により動作し続けられるべきワードの数を
特定する。カウントレジスタは命令実行によっては影響
を及ぼされない。
るICU命令により動作し続けられるべきワードの数を
特定する。カウントレジスタは命令実行によっては影響
を及ぼされない。
例外アドレスレジスタは特殊レジスタ4である。
それは、いくつかの例外と関連するアドレスを報告する
ために使用される。例外アドレスレジスタは例外アドレ
スがロードされる。例外の型はステータスレジスタにお
いて見い出され得る。
ために使用される。例外アドレスレジスタは例外アドレ
スがロードされる。例外の型はステータスレジスタにお
いて見い出され得る。
ステータスレジスタは特殊レジスタ5である。
それは、ICUのステータスを報告するために、かつ読
出タグキャッシュ命令および書込タグキャッシュ命令(
後で説明される)におけるICUとプロセッサの間の情
報転送のために使用される。
出タグキャッシュ命令および書込タグキャッシュ命令(
後で説明される)におけるICUとプロセッサの間の情
報転送のために使用される。
ビットは以下のために確保される。すなわち、読出タグ
命令に対するタグ値を報告し、かつ書込タグ命令に対す
るタグを転送し、キャッシュされたタグのための方向を
報告し、ブロックに対する有効なビットを報告し、かつ
書込タグ命令に対する有効なビットを転送し、ブロック
に対するロックされたビットを報告し、かつ書込タグ命
令に対するロックされたビットを転送し、ブロックに対
する共有されたビットを報告し、かつ書込タグ命令に対
する共有されたビットを転送し、ブロックに対する修正
されたビットを報告し、かつ書込タグ命令に対する修正
されたビットを転送し、キャッシュにおいてヒツトが見
い出されるかどうかを示し、さらに保護違反、違法命令
、メモリエラーおよびパリティエラーを示すために取っ
て置かれる。
命令に対するタグ値を報告し、かつ書込タグ命令に対す
るタグを転送し、キャッシュされたタグのための方向を
報告し、ブロックに対する有効なビットを報告し、かつ
書込タグ命令に対する有効なビットを転送し、ブロック
に対するロックされたビットを報告し、かつ書込タグ命
令に対するロックされたビットを転送し、ブロックに対
する共有されたビットを報告し、かつ書込タグ命令に対
する共有されたビットを転送し、ブロックに対する修正
されたビットを報告し、かつ書込タグ命令に対する修正
されたビットを転送し、キャッシュにおいてヒツトが見
い出されるかどうかを示し、さらに保護違反、違法命令
、メモリエラーおよびパリティエラーを示すために取っ
て置かれる。
モッドaレジスタは特殊レジスタ6である。それは、種
々のICUオプションを選択するために使用される。モ
ッドaレジスタは初期化の間リセットされる。
々のICUオプションを選択するために使用される。モ
ッドaレジスタは初期化の間リセットされる。
フィールドは、高範囲なキャッシュ動作を制御するため
に、すべてのキャッシュ場所をロックするために、書込
バッファを不能化するために、さらにリードスルーオプ
ションを不能化するために取って置かれる。
に、すべてのキャッシュ場所をロックするために、書込
バッファを不能化するために、さらにリードスルーオプ
ションを不能化するために取って置かれる。
ROM可能化ビットはこのレジスタに含まれており、そ
れは命令キャッシュおよびデータキャッシュ使用のため
の異なる機能(“HOME”ビット)を有する。
れは命令キャッシュおよびデータキャッシュ使用のため
の異なる機能(“HOME”ビット)を有する。
このビットがセットされる場合の命令キャッシュ使用で
、ICUはROMアクセスに応答しかつそれらをキャッ
シュする。それが0である場合、ROMアクセスは無視
される。
、ICUはROMアクセスに応答しかつそれらをキャッ
シュする。それが0である場合、ROMアクセスは無視
される。
データキャッシュ使用でこのビットがセットされる場合
、このビットがセットされる場合、データキャッシュは
命令メモリアクセスのために可能化される(データとし
て)。OPT入力が命令メモリアクセスを示す場合、I
CUはそれをキャッシュ不能トランザクションとして取
扱う。特定されたアドレスはメモリバス上で読出され、
それをキャッシュにロードすることなしプロセッサへと
転送される。HOMEビットが0である場合、ICUは
この型のトランザクションを無視する。
、このビットがセットされる場合、データキャッシュは
命令メモリアクセスのために可能化される(データとし
て)。OPT入力が命令メモリアクセスを示す場合、I
CUはそれをキャッシュ不能トランザクションとして取
扱う。特定されたアドレスはメモリバス上で読出され、
それをキャッシュにロードすることなしプロセッサへと
転送される。HOMEビットが0である場合、ICUは
この型のトランザクションを無視する。
さらなるフィールドが以下のために設けられる。
すなわち、単一アクセスのために先取りオプションを可
能化し、アドレスラップアラウンドオプションを不能化
し、単一アクセスミスの場合にICU動作を制御し、バ
ーストモード読出要求がプロセッサにより終端される場
合にICU動作を制御し、バーストアクセスのために先
取りオプションを可能化し、かつサブブロックサイズ(
S B S)を選択するために、設けられる。
能化し、アドレスラップアラウンドオプションを不能化
し、単一アクセスミスの場合にICU動作を制御し、バ
ーストモード読出要求がプロセッサにより終端される場
合にICU動作を制御し、バーストアクセスのために先
取りオプションを可能化し、かつサブブロックサイズ(
S B S)を選択するために、設けられる。
キャッシュ再ロード動作の制御においてサブブロックサ
イズが使用されることが理解されるべきである。単一キ
ャッシュミスに対しキャッシュへ再ロードされるべきワ
ードの数は、規定されたサブブロックサイズと、アクセ
スミスに対しICU動作を制御するフィールドにストア
される情報(たとえば、サブブロック境界上の開始およ
び停止のような制御情報)とにより規定される。SBS
フィールドはまた、バースト終了制御の際に、バースト
モード制御情報とともに使用される。ICUの固有のブ
ロックサイズは4ワードであり、1個のタグが4個のデ
ータワードと関連する。サブブロックサイズは1ワード
か、2ワードか、または4ワードのいずれかである。
イズが使用されることが理解されるべきである。単一キ
ャッシュミスに対しキャッシュへ再ロードされるべきワ
ードの数は、規定されたサブブロックサイズと、アクセ
スミスに対しICU動作を制御するフィールドにストア
される情報(たとえば、サブブロック境界上の開始およ
び停止のような制御情報)とにより規定される。SBS
フィールドはまた、バースト終了制御の際に、バースト
モード制御情報とともに使用される。ICUの固有のブ
ロックサイズは4ワードであり、1個のタグが4個のデ
ータワードと関連する。サブブロックサイズは1ワード
か、2ワードか、または4ワードのいずれかである。
なおさらに、モッドaレジスタは、メモリバスアドレス
転送の拡張を制御するためと、書込割当てオプションが
オンであるかどうかを示すためと、かつ広範囲に書込ポ
リシーオプションを選択するためのフィールドを含んで
いる。
転送の拡張を制御するためと、書込割当てオプションが
オンであるかどうかを示すためと、かつ広範囲に書込ポ
リシーオプションを選択するためのフィールドを含んで
いる。
この発明の好ましい実施例によれば、書込ポリシーは、
フレキシブル、ライトスルーまたはコピーパックである
。
フレキシブル、ライトスルーまたはコピーパックである
。
ライトスルーポリシーが選択される場合、ICUへのす
べてのプロセッサ書込みはまたメモリに書込まれる。コ
ピーパックが選択される場合、すべてのプロセッサ書込
ヒツトとキャッシュと修正されたビットセットに書込ま
れる。ブロックは、ブロックが置換される場合にのみメ
モリへコピーパックされる。フレキシブルなポリシーが
選択される場合、ライトスルー動作またはコピーパック
動作がアクセス基準によりアクセスの場合に選択され得
る。アクセスのための書込ポリシーはまた、ASTC入
力と、ブロックステータスにより共有される情報と、モ
ッドbレジスタ(後で説明される)の書込みが共有され
たヒツト制御フィールドおよびプロセッサステータスビ
ット制御フィールドとにより影響を及ぼされる。
べてのプロセッサ書込みはまたメモリに書込まれる。コ
ピーパックが選択される場合、すべてのプロセッサ書込
ヒツトとキャッシュと修正されたビットセットに書込ま
れる。ブロックは、ブロックが置換される場合にのみメ
モリへコピーパックされる。フレキシブルなポリシーが
選択される場合、ライトスルー動作またはコピーパック
動作がアクセス基準によりアクセスの場合に選択され得
る。アクセスのための書込ポリシーはまた、ASTC入
力と、ブロックステータスにより共有される情報と、モ
ッドbレジスタ(後で説明される)の書込みが共有され
たヒツト制御フィールドおよびプロセッサステータスビ
ット制御フィールドとにより影響を及ぼされる。
モッドaレジスタもまた、ブロック置換ポリシーを選択
するために使用されるフィールドを含んでいる。その選
択は直接マツピングされる編成のためには使用されない
。両方向セット連想編成においては、ブロックの1個が
有効でない場合、それは新たなブロックに対し選択され
る。置換ポリシーオプションは、この発明の好ましい実
施例によれば、最も古くに使用された(LAR)か、ラ
ンダムか、または外部である。
するために使用されるフィールドを含んでいる。その選
択は直接マツピングされる編成のためには使用されない
。両方向セット連想編成においては、ブロックの1個が
有効でない場合、それは新たなブロックに対し選択され
る。置換ポリシーオプションは、この発明の好ましい実
施例によれば、最も古くに使用された(LAR)か、ラ
ンダムか、または外部である。
LRUポリシーが選択される場合、LRUアレイは置換
されるべきブロックの選択のために使用される。LRU
アレイは各キャッシュアクセスの場合に更新される。1
ビットが各セットと関連する。それは、成るセットにお
ける2個のブロックから最も古くに使用されたブロック
を指摘する。
されるべきブロックの選択のために使用される。LRU
アレイは各キャッシュアクセスの場合に更新される。1
ビットが各セットと関連する。それは、成るセットにお
ける2個のブロックから最も古くに使用されたブロック
を指摘する。
ランダムなポリシーが選択される場合、擬似ランダム論
理が置換されるべきブロックを選択する。
理が置換されるべきブロックを選択する。
その論理は、クロックサイクルごとに状態を変える簡単
なフリップフロップであり、すべてのセットのために使
用される。
なフリップフロップであり、すべてのセットのために使
用される。
外部ポリシーが選択される場合、WREP入力はプロセ
ッサアドレスでラッチされる。ラッチされた値は置換さ
れたブロック選択を強制する。このオプションはキャッ
シュテストおよびマルチレベルキャッシュ編成のために
使用され得る。
ッサアドレスでラッチされる。ラッチされた値は置換さ
れたブロック選択を強制する。このオプションはキャッ
シュテストおよびマルチレベルキャッシュ編成のために
使用され得る。
最後に、モッドaレジスタは、キャッシュ編成(両方向
セット連想または直接マツピングされた)を選択するた
めの、命令キャッシュまたはデータキャッシュとしてキ
ャッシュ動作を選択するための、パリティ発生を制御し
かつオプションおよびメモリビット可能化情報を検査し
、メモリアクセスの場合のアドレス比較のためにチップ
選択マツピングレジスタにおける対応するMAビットを
可能化するためのフィールドを含んでいる。
セット連想または直接マツピングされた)を選択するた
めの、命令キャッシュまたはデータキャッシュとしてキ
ャッシュ動作を選択するための、パリティ発生を制御し
かつオプションおよびメモリビット可能化情報を検査し
、メモリアクセスの場合のアドレス比較のためにチップ
選択マツピングレジスタにおける対応するMAビットを
可能化するためのフィールドを含んでいる。
モッドbレジスタは特殊レジスタ7である。それは種々
のICUオプションの選択のために使用される。モッド
bレジスタの1個のフィールドはマルチプロセッサ編成
と関連する。マルチプロセッサ編成とこのフィールドの
使用の詳細な説明が後で述べられる。
のICUオプションの選択のために使用される。モッド
bレジスタの1個のフィールドはマルチプロセッサ編成
と関連する。マルチプロセッサ編成とこのフィールドの
使用の詳細な説明が後で述べられる。
モッドbレジスタはまた、プロセッサバス上の入力/出
力データアクセスのためにICut−制御するためのビ
ット(それは命令キャッシュ使用の際には無視される)
と、ICUレジスタを読出すモードを特定するビットと
、プロセッサバス上でのキャッシュ命令転送用プロセッ
サを特定するビットと、適切なICU動作のために成る
ワード内でバイトおよびハーフワード順序づけを制御す
るビットとを含む。
力データアクセスのためにICut−制御するためのビ
ット(それは命令キャッシュ使用の際には無視される)
と、ICUレジスタを読出すモードを特定するビットと
、プロセッサバス上でのキャッシュ命令転送用プロセッ
サを特定するビットと、適切なICU動作のために成る
ワード内でバイトおよびハーフワード順序づけを制御す
るビットとを含む。
モッドbレジスタにおけるマルチプロセッサに向けられ
た情報は以下のものを含む。すなわち、キャッシュイン
ターロックされた可能化ビットと、読出バスウォッチ可
能化ビットと、書込バスウォッチ可能化と、別なマスク
により読出されるメモリバス上での一致の場合にICU
の動作を制御するフィールドと、別なマスクによりメモ
リバス書込動作のために一致の場合に動作を制御するフ
ィールドと、書込割当てでコピーパック書込ミスのため
にICUのメモリバス動作を制御する書込ミスメモリア
クセス制御と、共有されたブロックに対し書込ヒツトの
場合の動作を制御するフィールドと、セットされる場合
にすべてのプロセッサアクセスに対しブロックステータ
ス共有ビットが修正されることを引き起こすプロセッサ
共有ビット1、す御と、外部制御により共有されたブロ
ックステータスの指定を制御する外部共有ビット制御を
含む。外部共有制御で、メモリバス読出および/または
書込アクセスのために★HITシグナルが入力として使
用される。それが断定される場合、データはまた他のキ
ャッシュにも存在し、ブロックは共有されたステータス
が割当てられる。★HIT入力が断定される場合、変数
はいずれのキャッシュにも存在せず、ブロックは排他的
ステータスに割当てられる。この特徴の詳細な説明は、
ICUマルチプロセッサ支持に対する言及とともに後で
明らかにされる。
た情報は以下のものを含む。すなわち、キャッシュイン
ターロックされた可能化ビットと、読出バスウォッチ可
能化ビットと、書込バスウォッチ可能化と、別なマスク
により読出されるメモリバス上での一致の場合にICU
の動作を制御するフィールドと、別なマスクによりメモ
リバス書込動作のために一致の場合に動作を制御するフ
ィールドと、書込割当てでコピーパック書込ミスのため
にICUのメモリバス動作を制御する書込ミスメモリア
クセス制御と、共有されたブロックに対し書込ヒツトの
場合の動作を制御するフィールドと、セットされる場合
にすべてのプロセッサアクセスに対しブロックステータ
ス共有ビットが修正されることを引き起こすプロセッサ
共有ビット1、す御と、外部制御により共有されたブロ
ックステータスの指定を制御する外部共有ビット制御を
含む。外部共有制御で、メモリバス読出および/または
書込アクセスのために★HITシグナルが入力として使
用される。それが断定される場合、データはまた他のキ
ャッシュにも存在し、ブロックは共有されたステータス
が割当てられる。★HIT入力が断定される場合、変数
はいずれのキャッシュにも存在せず、ブロックは排他的
ステータスに割当てられる。この特徴の詳細な説明は、
ICUマルチプロセッサ支持に対する言及とともに後で
明らかにされる。
ICU命令セットへの転換。
ICUの好ましい実施例は20個のプロセッサバスキャ
ッシュ命令と9個のメモリバスキャッシュ命令とを実現
する。このプロセッサバス命令は、特殊レジスタアクセ
スのためにかつ特殊キャッシュ動作要求のためにプロセ
ッサにより出される。
ッシュ命令と9個のメモリバスキャッシュ命令とを実現
する。このプロセッサバス命令は、特殊レジスタアクセ
スのためにかつ特殊キャッシュ動作要求のためにプロセ
ッサにより出される。
メモリバス命令は、特殊キャッシュ動作要求のためにメ
モリバス上で特殊論理により出される。このセクション
は、異なる命令転送プロトコルの具体例を明らかにし、
かつ典型的なプロセッサバス命令およびメモリバス命令
セットの具体例を詳細に述べる。
モリバス上で特殊論理により出される。このセクション
は、異なる命令転送プロトコルの具体例を明らかにし、
かつ典型的なプロセッサバス命令およびメモリバス命令
セットの具体例を詳細に述べる。
プロセッサバスキャッシュ命令およびオペランドは、プ
ロセッサバストランザクションの特殊なシーケンスによ
りプロセッサからICUへ転送される。この命令は、す
べての所要のオペランドがICUへ転送されるときはい
つでも実行される。
ロセッサバストランザクションの特殊なシーケンスによ
りプロセッサからICUへ転送される。この命令は、す
べての所要のオペランドがICUへ転送されるときはい
つでも実行される。
いつかのプロセッサバスキャッシュ命令は動作の4つの
任意の範囲を有する。命令範囲は、キャッシュ命令によ
り影響を及ぼされるICUの数を特定する。この範囲は
、命令表において(S)により示される。(s)表示の
ない命令は1個の特殊ICUにおいてのみ動作し得る。
任意の範囲を有する。命令範囲は、キャッシュ命令によ
り影響を及ぼされるICUの数を特定する。この範囲は
、命令表において(S)により示される。(s)表示の
ない命令は1個の特殊ICUにおいてのみ動作し得る。
命令スコープは次のように示される。
特定された OPコード2
(s) 上位ビット 意 味
0 00 1個の特殊ICUが影響を受ける
I 01 全ての命令キャッシュが影
響を受ける D 10 全てのデータキャッシュが
影響を受ける A 11 全てのキャッシュが影響を
受ける この柔軟性は、システムの設計者が、適当なキャッシュ
において所望のアドレスへ動作するキャッシュ命令を出
すことを可能にする。多数ICU環境においては、すべ
てのキャッシュを同時に動作する1個の命令を出すこと
がより有効である。
響を受ける D 10 全てのデータキャッシュが
影響を受ける A 11 全てのキャッシュが影響を
受ける この柔軟性は、システムの設計者が、適当なキャッシュ
において所望のアドレスへ動作するキャッシュ命令を出
すことを可能にする。多数ICU環境においては、すべ
てのキャッシュを同時に動作する1個の命令を出すこと
がより有効である。
たとえば、(s)−A (INVBA)である無効ブロ
ック命令は、並列状態にあるすべてのICUにおける特
定されたブロック(この場合ブロックは有効である)を
無効にする。
ック命令は、並列状態にあるすべてのICUにおける特
定されたブロック(この場合ブロックは有効である)を
無効にする。
大半の命令は2サイクルのうちに実行される。
しかしながら、後で示されるように例外か存在し得る。
プロセッサバスキャッシュ命令実行の間、ICUは他の
プロセッサトランザクションを受容し得る(新たな命令
転送を含む)か、大半の場合(命令記述の際に別なよう
に特定されない限り)、それらはプロセッサバスキャッ
シュ命令完了の後のみに処理される。メモリバストラン
ザクションは、プロセッサバスキャッシュ命令実行の間
に処理される。しかしながら、それらは命令実行とは同
期化されないので、ICU動作はキャッシュの現在の状
態を反映する。
プロセッサトランザクションを受容し得る(新たな命令
転送を含む)か、大半の場合(命令記述の際に別なよう
に特定されない限り)、それらはプロセッサバスキャッ
シュ命令完了の後のみに処理される。メモリバストラン
ザクションは、プロセッサバスキャッシュ命令実行の間
に処理される。しかしながら、それらは命令実行とは同
期化されないので、ICU動作はキャッシュの現在の状
態を反映する。
すべてのプロセッサバスキャッシュ命令は特権を与えら
れる。SUP/★US人力がLOWである場合、プロセ
ッサバスキャッシュ命令アクセスが実施されるときには
、それは無視され、★CERRは応答として断定される
。ステータスレジスタは適切な命令のためにステータス
情報で更新される。例外の場合、例外アドレスレジスタ
およびステータスレジスタが例外情報で更新される。
れる。SUP/★US人力がLOWである場合、プロセ
ッサバスキャッシュ命令アクセスが実施されるときには
、それは無視され、★CERRは応答として断定される
。ステータスレジスタは適切な命令のためにステータス
情報で更新される。例外の場合、例外アドレスレジスタ
およびステータスレジスタが例外情報で更新される。
キャッシュ命令実行の間は、ICUとプロセッサの間の
通信に対しいくつかのオプションが存在する。プロトコ
ルは、モッドbレジスタの命令転送プロトコル制御(I
TPC)ビットおよび読出レジスタ制御(RRC)ビッ
トばかりでなくキャッシュ命令のタイプおよび範囲に従
って規定される。すべての命令は、読出レジスタを除い
て、書込動作を使用することにより転送される。読出レ
ジスタ命令は、モッドbレジスタの呼出レジスタ制御ビ
ットにより規定されるように読出または書込動作を利用
することにより転送される。これらのオプションの説明
が、後で明らかにされる読出レジスタ命令説明において
見い出され得る。
通信に対しいくつかのオプションが存在する。プロトコ
ルは、モッドbレジスタの命令転送プロトコル制御(I
TPC)ビットおよび読出レジスタ制御(RRC)ビッ
トばかりでなくキャッシュ命令のタイプおよび範囲に従
って規定される。すべての命令は、読出レジスタを除い
て、書込動作を使用することにより転送される。読出レ
ジスタ命令は、モッドbレジスタの呼出レジスタ制御ビ
ットにより規定されるように読出または書込動作を利用
することにより転送される。これらのオプションの説明
が、後で明らかにされる読出レジスタ命令説明において
見い出され得る。
各命令の第1の部分は、プロセッサバスキャッシュ命令
要求の検出である。プロセッサバスキャッシュ命令要求
が読出プロセッサバスアクセスかまたは書込プロセッサ
バスアクセスのいずれかになり得る。それは次の2つの
場合においてICUにより検出される。1)★C3EL
が断定されかつ可能化される場合、または、2)アドレ
ス入力およびCREQTOがチップ選択マツピンダレジ
スタにおけるキャッシュ命令アドレスフィールドおよび
キャッシュ命令アドレス空間フィールドと一致する場合
である。
要求の検出である。プロセッサバスキャッシュ命令要求
が読出プロセッサバスアクセスかまたは書込プロセッサ
バスアクセスのいずれかになり得る。それは次の2つの
場合においてICUにより検出される。1)★C3EL
が断定されかつ可能化される場合、または、2)アドレ
ス入力およびCREQTOがチップ選択マツピンダレジ
スタにおけるキャッシュ命令アドレスフィールドおよび
キャッシュ命令アドレス空間フィールドと一致する場合
である。
命令実行にオペランドが必要とされない場合、転送は1
サイクルのうちに完了される。この場合、キャッシュバ
ス上の値は不適切であり、命令実行は直ちに始まる。
サイクルのうちに完了される。この場合、キャッシュバ
ス上の値は不適切であり、命令実行は直ちに始まる。
オペランドが必要とされる場合、ICUにより支持され
る2個の任意の転送プロトコルが存在する。プロトコル
は、モッドbレジスタの命令転送プロトコル制御ビット
に従って選択される。
る2個の任意の転送プロトコルが存在する。プロトコル
は、モッドbレジスタの命令転送プロトコル制御ビット
に従って選択される。
ITPCが1である場合、キャッシュバスはオペランド
転送のために使用される。プロセッサは通常の書込動作
を利用し、プロセッサアドレスおよびデータバスは両方
が使用される。ICUはキャッシュバスからのオペラン
ド値をラッチする。
転送のために使用される。プロセッサは通常の書込動作
を利用し、プロセッサアドレスおよびデータバスは両方
が使用される。ICUはキャッシュバスからのオペラン
ド値をラッチする。
命令キャッシュとして使用されるICUに対し、ICU
データバスからキャッシュバスヘデータを転送するため
に外部トランシーバが必要とされる。
データバスからキャッシュバスヘデータを転送するため
に外部トランシーバが必要とされる。
このオプションは、データキャッシュとして使用される
ICUに対する当然の選択である。外部トランシーバを
費やすことにおいて命令キャッシュとして使用されるI
CUに対してはより有効なプロトコルがまた達成される
。
ICUに対する当然の選択である。外部トランシーバを
費やすことにおいて命令キャッシュとして使用されるI
CUに対してはより有効なプロトコルがまた達成される
。
ITPCがOである場合、キャッシュバスは使用されな
い。オペランドはプロセッサアドレスバスで転送される
。命令およびオペランド転送のためには特殊な2サイク
ルプロトコルが必要とされる。有効な命令がラッチされ
た缶で、ICUがプロセッサバス上の特殊なデータトラ
ンザクションを予期する。CREQT入力はメモリデー
タトランザクションを特定すべきであり、オプション入
力はキャッシュオペランド転送を特定すべきであり、さ
らに、アドレスバスはオペランドを含む。
い。オペランドはプロセッサアドレスバスで転送される
。命令およびオペランド転送のためには特殊な2サイク
ルプロトコルが必要とされる。有効な命令がラッチされ
た缶で、ICUがプロセッサバス上の特殊なデータトラ
ンザクションを予期する。CREQT入力はメモリデー
タトランザクションを特定すべきであり、オプション入
力はキャッシュオペランド転送を特定すべきであり、さ
らに、アドレスバスはオペランドを含む。
こp特殊な書込トランザクションはICUとラッチされ
たアドレスバス上のオペランドにより検出される。上記
トランザクションはプロセッサバスに接続されるすべて
の他の要素により無視されるべきであることに注目され
たい。このオプションは′他のものほど有効ではないが
、命令キャッシュとして使用されるICUのためにトラ
ンシーバを必要しない。
たアドレスバス上のオペランドにより検出される。上記
トランザクションはプロセッサバスに接続されるすべて
の他の要素により無視されるべきであることに注目され
たい。このオプションは′他のものほど有効ではないが
、命令キャッシュとして使用されるICUのためにトラ
ンシーバを必要しない。
両方のオプションは、データキャッシュまたは命令キャ
ッシュとして使用されるICUのために独立して選択さ
れ得る。しかしながら、システムプログラミングの観点
から、同様の方法で両方のキャッシュにアクセスするこ
とが望ましいかもしれない。この場合、両方のキャッシ
ュが同一プロトコルに応答するようにプログラムされ得
る。
ッシュとして使用されるICUのために独立して選択さ
れ得る。しかしながら、システムプログラミングの観点
から、同様の方法で両方のキャッシュにアクセスするこ
とが望ましいかもしれない。この場合、両方のキャッシ
ュが同一プロトコルに応答するようにプログラムされ得
る。
カウントオペランドが命令実行のために必要とされる場
合、命令実行が始まる前にそれをカウントレジスに書込
むために書込レジスタ命令が実行されるべきである。命
令は、命令およびすべての所要のオペランドが有効であ
るときはいっでも、ICUにより実行される。
合、命令実行が始まる前にそれをカウントレジスに書込
むために書込レジスタ命令が実行されるべきである。命
令は、命令およびすべての所要のオペランドが有効であ
るときはいっでも、ICUにより実行される。
キャッシュ命令転送プロトコルの間、プロセッサ中断が
生じ得る。ICUの好ましい実施例はそのような場合か
ら回復するための論理を含んでいる。命令レジスタと、
オペランドレジスタと、カウントレジスタとは、それに
影響を及ぼすことなしに、書込レジスタ命令を用いてそ
れらの内容を保管するために読出され得る。命令有効ビ
ット、オペランド有効ビット、およびカウント有効ビッ
トは対応するレジスタの妥当性を示す。保管および復元
動作は、命令転送プロ]・コルが中断の点から続くこと
を可能にする。
生じ得る。ICUの好ましい実施例はそのような場合か
ら回復するための論理を含んでいる。命令レジスタと、
オペランドレジスタと、カウントレジスタとは、それに
影響を及ぼすことなしに、書込レジスタ命令を用いてそ
れらの内容を保管するために読出され得る。命令有効ビ
ット、オペランド有効ビット、およびカウント有効ビッ
トは対応するレジスタの妥当性を示す。保管および復元
動作は、命令転送プロ]・コルが中断の点から続くこと
を可能にする。
ニモニックと、記述と、目的の簡単な説明に関連する、
この発明の一実施例において有用であるとわかっている
1組のプロセッサバスキャッシュ命令が、すぐ後で表に
して明らかにされる。
この発明の一実施例において有用であるとわかっている
1組のプロセッサバスキャッシュ命令が、すぐ後で表に
して明らかにされる。
ニモニック 記 述
NOP 動作なし
INVW(s) ワードを無効にせよI NVB (
s) ブロックを無効にせよINVM(s) 複数
を無効にせよ INVA (s) 全てを無効にせよSWM(s)
修正された場合はワードを送れSBM(s)
修正された場合はブロックを送れ UPMI (s) メモリを更新しかつ無効にせよ
UPIM(s) メモリを更新しかつ複数を無効にせ
よ LCK (s) ブロックをロックせよULCK
(s) ブロックをロック解除せよRBST (S
) ブロックステータスを読出せWBST (s)
ブロックステ−タを書込めSWHヒツトされた場合は
ワードを送 れ RTAG タグを読出せ WTAG タグを書込め PRLD キャッシュをプリロードせよRST
リセットせよ RDR(i) レジスタを読出せWRR(i)
レジスタを書込め 命令ニモニックにおける(S)記号はここで先に規定さ
れたような命令スコープを示し、RDR命令およびWR
R命令における(i)シンボルは、opコードの3個の
下位ビットにより特定されるレジスタ番号を示すことが
注目されるべきである。
s) ブロックを無効にせよINVM(s) 複数
を無効にせよ INVA (s) 全てを無効にせよSWM(s)
修正された場合はワードを送れSBM(s)
修正された場合はブロックを送れ UPMI (s) メモリを更新しかつ無効にせよ
UPIM(s) メモリを更新しかつ複数を無効にせ
よ LCK (s) ブロックをロックせよULCK
(s) ブロックをロック解除せよRBST (S
) ブロックステータスを読出せWBST (s)
ブロックステ−タを書込めSWHヒツトされた場合は
ワードを送 れ RTAG タグを読出せ WTAG タグを書込め PRLD キャッシュをプリロードせよRST
リセットせよ RDR(i) レジスタを読出せWRR(i)
レジスタを書込め 命令ニモニックにおける(S)記号はここで先に規定さ
れたような命令スコープを示し、RDR命令およびWR
R命令における(i)シンボルは、opコードの3個の
下位ビットにより特定されるレジスタ番号を示すことが
注目されるべきである。
特殊なオペランド(ここでは論じられないけれども)は
命令要件に従って特定されるこさがまた注目されるべき
である。1を越えるオペランドが特定される場合、WR
R命令が第2の特定されたオペランドをロードするため
に必要とされる。
命令要件に従って特定されるこさがまた注目されるべき
である。1を越えるオペランドが特定される場合、WR
R命令が第2の特定されたオペランドをロードするため
に必要とされる。
機能レベルにおいては、命令の実行は次の動作を生じる
。
。
動作なしくN0P)−この命令に対しICUにより動作
は実行されない。
は実行されない。
ワードを無効にせよ(INVWO,INVWI。
INVWD、INVWA)(異なる範囲に注目されたい
)−アドレスオペランドにより特定されるワードは無効
にされる(対応する有効なビットはリセットされる)。
)−アドレスオペランドにより特定されるワードは無効
にされる(対応する有効なビットはリセットされる)。
ブロックを無効にせよ(INVB○、INVBl、IN
VBD、INVBA)−アドレスオペランドにより特定
される4ワードブロツクは無効にされる(すべての対応
する有効なビットはリセットされる)。
VBD、INVBA)−アドレスオペランドにより特定
される4ワードブロツクは無効にされる(すべての対応
する有効なビットはリセットされる)。
多数を無効にせよ(INVMO,INVMI。
INVMD、INVMA)−多数のシーケンシャルな4
ワードブロツクがICUにより無効される。
ワードブロツクがICUにより無効される。
すべての単一動作はINVB命令に類似する。その命令
は多数サイクルのうちに実行される(初期化のための2
サイクル+4ワードブロツクあたりの1サイクル)。こ
の命令で、カウントレジスタは有効なカウントを含まな
ければならない。カウントレジスタは書込レジスタ命令
を用いることによりロードされる。カウント有効ビット
は、命令実行の後、セットされたままである。正しい実
行を保証するために、カウントレジスタは、INVM命
令が必要とされる前にロードされるべきであるか、また
は先の動作からの正しい値を含むべきである。この命令
は、ページフレームを無効にするために使用され得る。
は多数サイクルのうちに実行される(初期化のための2
サイクル+4ワードブロツクあたりの1サイクル)。こ
の命令で、カウントレジスタは有効なカウントを含まな
ければならない。カウントレジスタは書込レジスタ命令
を用いることによりロードされる。カウント有効ビット
は、命令実行の後、セットされたままである。正しい実
行を保証するために、カウントレジスタは、INVM命
令が必要とされる前にロードされるべきであるか、また
は先の動作からの正しい値を含むべきである。この命令
は、ページフレームを無効にするために使用され得る。
カウントレジスタは成るページにおいて4ワードブロツ
クの数を含むべきである(16により除算されるバイト
で数えたページサイズ)。
クの数を含むべきである(16により除算されるバイト
で数えたページサイズ)。
すべてを無効にせよ(INVAO,INVAI。
INVAD、INVAA)−この命令はキャッシュにお
いてすべてのワードを無効にする。すべての有効なビッ
トはリセットされる。
いてすべてのワードを無効にする。すべての有効なビッ
トはリセットされる。
修正された場合はワードを送れ(SWMO,SWMI、
SWMD、SWMA)−アドレスオペランドにより特定
されるワードがキャッシュに存在しかつブロックに対す
る修正されたビットがセットされる場合、それはメモリ
において対応するアドレスに書込まれる。
SWMD、SWMA)−アドレスオペランドにより特定
されるワードがキャッシュに存在しかつブロックに対す
る修正されたビットがセットされる場合、それはメモリ
において対応するアドレスに書込まれる。
修正された場合はブロックを送れ(SBMO。
SBMI、SBMD、SBMA)−アドレスオペランド
により特定される4ワードブロツクが修正される場合は
、すべての有効なワードはメモリにおいて対応するアド
レスに書込まれる。
により特定される4ワードブロツクが修正される場合は
、すべての有効なワードはメモリにおいて対応するアド
レスに書込まれる。
メモリを更新しかつ無効にせよ(UPMIO。
UPMI I、UPMID、UPMIA)−アドレスオ
ペランドにより特定される4ワードブロツクが修正され
る場合は、すべての有効なワードはメモリにおいて対応
するアドレスに書込まれる。次に、すべての有効なビッ
トはリセットされる。書込動作は、メモリバスがICU
に認められた後、バーストモードまたはシングルメモリ
バス書込アクセス(有効なワードの数に依存して)を用
いることにより実施される。
ペランドにより特定される4ワードブロツクが修正され
る場合は、すべての有効なワードはメモリにおいて対応
するアドレスに書込まれる。次に、すべての有効なビッ
トはリセットされる。書込動作は、メモリバスがICU
に認められた後、バーストモードまたはシングルメモリ
バス書込アクセス(有効なワードの数に依存して)を用
いることにより実施される。
メモリを更新しかつ多数を無効にせよ(UPIMO,U
P IMA、UP IMD、UP IMA)−多数のシ
ーケンシャルな、メモリ更新かつ無効動作がICUによ
り実行される。すべての単一動作は、メモリ更新かつ無
効命令に類似する。その命令は複数サイクルのうちに実
行される(初期化ための2サイクルに、1サイクルと4
ワードブロツクあたりの任意のメモリバス4ワード書込
アクセスを加える)。この命令で、カウントレジスタは
有効なカウントを含まなければならない。カウントレジ
スタはWRR命令を用いることによりロードされる。カ
ウント有効ビットは、命令実行の後、セットされたまま
である。正しい実行を保証するために、カウントレジス
タは、UP IM命令が要求される前にロードされるべ
きであるか、または先の動作からの正しい値を含むべき
である。この命令は、メモリを更新しかつページフレー
ムを無効にするために使用され得る。カウントレジスタ
は成るページにおいてブロックの数を含むべきである(
16により除算されるバイトで数えたベージサイズ)。
P IMA、UP IMD、UP IMA)−多数のシ
ーケンシャルな、メモリ更新かつ無効動作がICUによ
り実行される。すべての単一動作は、メモリ更新かつ無
効命令に類似する。その命令は複数サイクルのうちに実
行される(初期化ための2サイクルに、1サイクルと4
ワードブロツクあたりの任意のメモリバス4ワード書込
アクセスを加える)。この命令で、カウントレジスタは
有効なカウントを含まなければならない。カウントレジ
スタはWRR命令を用いることによりロードされる。カ
ウント有効ビットは、命令実行の後、セットされたまま
である。正しい実行を保証するために、カウントレジス
タは、UP IM命令が要求される前にロードされるべ
きであるか、または先の動作からの正しい値を含むべき
である。この命令は、メモリを更新しかつページフレー
ムを無効にするために使用され得る。カウントレジスタ
は成るページにおいてブロックの数を含むべきである(
16により除算されるバイトで数えたベージサイズ)。
ブロックをロックせよ(LCKO,LCKI。
LCKD、LCKA)−アドレスオペランドにより特定
される4ワードブロツク(またはそれの−部)がキャッ
シュに存在する場合、対応するブロックステータスロッ
クビットがセットされる。
される4ワードブロツク(またはそれの−部)がキャッ
シュに存在する場合、対応するブロックステータスロッ
クビットがセットされる。
ブロックをロック解除せよ(ULCKO,ULCKI、
ULCKD、ULCKA)−アドレスオペランドにより
特定される4ワードブロツク(またはその一部)がキャ
ッシュに存在する場合、対応するブロックステータスロ
ックピットがリセットされる)。
ULCKD、ULCKA)−アドレスオペランドにより
特定される4ワードブロツク(またはその一部)がキャ
ッシュに存在する場合、対応するブロックステータスロ
ックピットがリセットされる)。
ブロックステータスを読出せ(RBSTO,RBSTI
、RBSTD、RBSTA)−特定されたワードアドレ
スはキャッシュにおける存在を検査され、かつステータ
スレジスタはそれに従って更新される。
、RBSTD、RBSTA)−特定されたワードアドレ
スはキャッシュにおける存在を検査され、かつステータ
スレジスタはそれに従って更新される。
ブロックステータスを書込め(WBSTO,WBSTI
、WBSTD、WBSTA)−特定すしたワードアドレ
スを含むブロックはキャッシュにおける存在を検査され
る。キャッシュにブロックが存在すれば、ステータスレ
ジスタにおけるビットの値に基づいてブロックステータ
スビットは更新される。
、WBSTD、WBSTA)−特定すしたワードアドレ
スを含むブロックはキャッシュにおける存在を検査され
る。キャッシュにブロックが存在すれば、ステータスレ
ジスタにおけるビットの値に基づいてブロックステータ
スビットは更新される。
ヒツトされた場合はワードを送れ(SWH)−アドレス
オペランドにより特定されるワードがキャッシュに存在
する場合、それはメモリにおいて対応するアドレスに書
込まれる。
オペランドにより特定されるワードがキャッシュに存在
する場合、それはメモリにおいて対応するアドレスに書
込まれる。
タグを読出せ(RTAG)−この命令はキャッシュにお
ける特殊タグを読出すために使用される。
ける特殊タグを読出すために使用される。
タグを書込め(WDAG)−この命令はキャッシュにお
いて特殊タグを書込むために使用される。
いて特殊タグを書込むために使用される。
プリロードせよ(PRLD)−プリロードは、特殊デー
タ変数または命令を、それらが必要とされる前にキャッ
シュにロードするために実施され得る特殊動作である。
タ変数または命令を、それらが必要とされる前にキャッ
シュにロードするために実施され得る特殊動作である。
その動作はソフトウェア制御の下で行なわれる。所要の
変数または命令のアドレスはユーザにより供給される。
変数または命令のアドレスはユーザにより供給される。
プリロード動作は簡単な先取り動作とは異なることに注
目されたい。先取りは通常はハードウェア制御の下で行
なわれ、先取りされたアドレスは最初のメモリ要求に対
しアドレスのすぐ近辺に存在する。
目されたい。先取りは通常はハードウェア制御の下で行
なわれ、先取りされたアドレスは最初のメモリ要求に対
しアドレスのすぐ近辺に存在する。
最も価値のある命令また仲データ変数を予言するために
、プログラムのユーザおよびコンパイラ知識が使用され
るべきである。適当なアドレスは、プログラム実行が開
始される前に、命令およびデータキャッシュへプリロー
ドされる。その動作は、プロセッサ干渉なしにキャッシ
ュ制御の下で行なわれ得る。これは、キャッシュのより
良い利用とより高い相対的性能とを可能にする。
、プログラムのユーザおよびコンパイラ知識が使用され
るべきである。適当なアドレスは、プログラム実行が開
始される前に、命令およびデータキャッシュへプリロー
ドされる。その動作は、プロセッサ干渉なしにキャッシ
ュ制御の下で行なわれ得る。これは、キャッシュのより
良い利用とより高い相対的性能とを可能にする。
それ自体に新規であるプリロード動作は、組入れられた
RISC/SIPアーキテクチャに関連して説明される
。それは他のキャッシュシステムにおいても同様に使用
され得る。
RISC/SIPアーキテクチャに関連して説明される
。それは他のキャッシュシステムにおいても同様に使用
され得る。
その命令は、プロセッサにより、opコードとオペラン
ドとを適当なキャッシュユニットへ転送することにより
初期化される。2個のオペランド、すなわちアドレスオ
ペランドとカウントオペランドとが必要とされる。多数
のシーケンシャルなワードが、ICU制御の下でメモリ
バス読出バーストトランザクションを用いてキャッシュ
にロードされる。アドレスオペランドは開始ワードアド
レスを特定する。カウントレジスタは4ワードブロツク
の数を特定する。最も高い可能なアドレスに達した場合
、ラップアラウンドが実施される。
ドとを適当なキャッシュユニットへ転送することにより
初期化される。2個のオペランド、すなわちアドレスオ
ペランドとカウントオペランドとが必要とされる。多数
のシーケンシャルなワードが、ICU制御の下でメモリ
バス読出バーストトランザクションを用いてキャッシュ
にロードされる。アドレスオペランドは開始ワードアド
レスを特定する。カウントレジスタは4ワードブロツク
の数を特定する。最も高い可能なアドレスに達した場合
、ラップアラウンドが実施される。
命令は多数サイクルのうちに実行される(初期化のため
の2サイクルにワードあたりの1メモリバスバースト読
出アクセスを加える)。この命令に対し、カウントレジ
スタもまた有効なカウントを含まなければならない。プ
リロード命令は種々の方法において使用され得る。2個
の基本オプションは次のとおりである。
の2サイクルにワードあたりの1メモリバスバースト読
出アクセスを加える)。この命令に対し、カウントレジ
スタもまた有効なカウントを含まなければならない。プ
リロード命令は種々の方法において使用され得る。2個
の基本オプションは次のとおりである。
プリロード命令を使用する簡単な方法は、特殊なキャッ
シュ構成を必要とせず、かつどのようなキャッシュシス
テムとでも使用され得る。この方法において、プリロー
ド命令は、プログラム実行前にソフトウェア制御の下で
出される。その命令は文脈切換手順の一部として出され
得る。キャッシュはプリロードされるので、コールドス
タート効果は最小限にされる。この方法の主な不利な点
は、プリロード動作がプロセッサにより必要とされる他
のキャッシュ動作とインターフェイスし得ることである
。
シュ構成を必要とせず、かつどのようなキャッシュシス
テムとでも使用され得る。この方法において、プリロー
ド命令は、プログラム実行前にソフトウェア制御の下で
出される。その命令は文脈切換手順の一部として出され
得る。キャッシュはプリロードされるので、コールドス
タート効果は最小限にされる。この方法の主な不利な点
は、プリロード動作がプロセッサにより必要とされる他
のキャッシュ動作とインターフェイスし得ることである
。
より複雑なキャッシュ構成が上述の制限を克服し得る。
この構成(切換可能キャッシュと呼ばれる)は、各プロ
セッサあたり1を越えるキャッシュとキャッシュ間で切
換わる方法とを必要とする。
セッサあたり1を越えるキャッシュとキャッシュ間で切
換わる方法とを必要とする。
切換可能キャッシュ構成は、同一アドレス空間上の多数
キャッシュの動作を可能にする。2個またはそれ以上の
キャッシュが並列に配置されれば、プロセッサメモリア
クセス応答のためには1個のキャッシュしか可能化され
ない。他の単数または複数キャッシュは、次のプログラ
ム(または手順)のために必要とされる変数または命令
をプリロードするためにプログラムされ得る。次のプロ
グラム開始の実行の前に、適当なキャッシュ(プリロー
ドされたデータを含む)が可能化され、他のキャッシュ
は不能化される。
キャッシュの動作を可能にする。2個またはそれ以上の
キャッシュが並列に配置されれば、プロセッサメモリア
クセス応答のためには1個のキャッシュしか可能化され
ない。他の単数または複数キャッシュは、次のプログラ
ム(または手順)のために必要とされる変数または命令
をプリロードするためにプログラムされ得る。次のプロ
グラム開始の実行の前に、適当なキャッシュ(プリロー
ドされたデータを含む)が可能化され、他のキャッシュ
は不能化される。
この機構の実現はICUにより十分に支持される。すべ
ての必要な支持はシングルチップ上で実現される。個別
のICUは、モードレジスタをプログラムすることによ
り不能化または可能化され得る。プリロード命令は、こ
の機構が支持されるように実現される。特に、ICUは
、それが通常のキャッシュ動作のために不能化されると
しても、プリロード命令を実施し得る。2個またはそれ
以上のICUが並列に配置可能であり、通常のキャッシ
ュ動作のためには一方しか可能化され得ないが、他方は
プリロード動作を実施する(グルー(g 1 u e)
論理は必要とされない)。
ての必要な支持はシングルチップ上で実現される。個別
のICUは、モードレジスタをプログラムすることによ
り不能化または可能化され得る。プリロード命令は、こ
の機構が支持されるように実現される。特に、ICUは
、それが通常のキャッシュ動作のために不能化されると
しても、プリロード命令を実施し得る。2個またはそれ
以上のICUが並列に配置可能であり、通常のキャッシ
ュ動作のためには一方しか可能化され得ないが、他方は
プリロード動作を実施する(グルー(g 1 u e)
論理は必要とされない)。
この構成は、プリロード動作が現在のプログラム実行に
対し最小の影響力で実施されるので、この構成はかなり
の性能の利点を有し得る。
対し最小の影響力で実施されるので、この構成はかなり
の性能の利点を有し得る。
リセット (RS T)−リセット命令は、★RESE
T入力を断定することにより実施されるのと同一機能を
実施する。RST命令はそれが容認されるとすぐに実行
される。多数命令(INVM。
T入力を断定することにより実施されるのと同一機能を
実施する。RST命令はそれが容認されるとすぐに実行
される。多数命令(INVM。
UPIM、PRAD)実行が集結される。
レジスタを読出せ(RDR)−レジスタを読出せの命令
は、ICUの特殊レジスタを読出すために使用される。
は、ICUの特殊レジスタを読出すために使用される。
特殊レジスタ番号はopコードにより特定される。IC
Uは、モードレジスタにおける続出レジスタ制御(RR
C)ビットの状態に依存してこの命令に対し異なる方法
で応答する。
Uは、モードレジスタにおける続出レジスタ制御(RR
C)ビットの状態に依存してこの命令に対し異なる方法
で応答する。
RRCが1である場合、アドレスバス上の命令を有する
読出トランザクションはその命令を初期化する。RRC
が0である場合、メインメモリはレジスタを読出すため
に使用される。
読出トランザクションはその命令を初期化する。RRC
が0である場合、メインメモリはレジスタを読出すため
に使用される。
レジスタを書込め(WRR)−書込レジスタ命令はIC
Uの特殊レジスタを書込むために使用される。特殊レジ
スタ番号はopコードにより特定される。データは、命
令オペランドとして特定される。WRR命令はそれが容
認されるとすぐに実行される。有効な命令およびオペラ
ンドが命令およびオペランドレジスタに存在する場合、
それはそれらの内容に影響を及ぼすことなしに実行され
る。この特徴は、ICUレジスタを復元するために使用
され得る。
Uの特殊レジスタを書込むために使用される。特殊レジ
スタ番号はopコードにより特定される。データは、命
令オペランドとして特定される。WRR命令はそれが容
認されるとすぐに実行される。有効な命令およびオペラ
ンドが命令およびオペランドレジスタに存在する場合、
それはそれらの内容に影響を及ぼすことなしに実行され
る。この特徴は、ICUレジスタを復元するために使用
され得る。
先に示されるように、メモリバスキャッシュ命令はメモ
リバス上の特殊論理により出される。この論理は命令を
適当なICUに向けることを可能にすべきである。それ
らの入力の際に有効な命令を認識するシステムにおける
すべてのICUがそれを実行する。メモリバス上にはプ
ロセッサバス命令範囲と特権を与えられた命令に対し同
等の概念が存在しない。
リバス上の特殊論理により出される。この論理は命令を
適当なICUに向けることを可能にすべきである。それ
らの入力の際に有効な命令を認識するシステムにおける
すべてのICUがそれを実行する。メモリバス上にはプ
ロセッサバス命令範囲と特権を与えられた命令に対し同
等の概念が存在しない。
すべてのメモリバスキャッシュ命令は、それがバススレ
ーブである場合、1個のキャッシュ命令転送メモリバス
トランザクションによりICUへ転送され得る。ブロッ
クステータスを書込めの命令はまた、ICUがバスマス
クである場合、★■SI入力を断定することにより転送
され得る。その命令は、所要のキャッシュ資源が利用可
能であるときはいっでも、命令およびオペランドが容認
された後で実行される。すべての命令は2サイクルのう
ちに内部で実行される。命令実行のためにメモリバス動
作が必要とされる場合、バス動作のだめのサイクルの数
が加算されるべきである。
ーブである場合、1個のキャッシュ命令転送メモリバス
トランザクションによりICUへ転送され得る。ブロッ
クステータスを書込めの命令はまた、ICUがバスマス
クである場合、★■SI入力を断定することにより転送
され得る。その命令は、所要のキャッシュ資源が利用可
能であるときはいっでも、命令およびオペランドが容認
された後で実行される。すべての命令は2サイクルのう
ちに内部で実行される。命令実行のためにメモリバス動
作が必要とされる場合、バス動作のだめのサイクルの数
が加算されるべきである。
メモリバスキャッシュ命令は、プロセッサバス上の他の
ICU動作とは無関係に実行される(プロセッサバスキ
ャッシュ命令を含む)。メモリバス命令とキャッシュバ
ス動作がそれらが受取られる順序に従って実行される。
ICU動作とは無関係に実行される(プロセッサバスキ
ャッシュ命令を含む)。メモリバス命令とキャッシュバ
ス動作がそれらが受取られる順序に従って実行される。
メモリバス命令の結果はキャッシュの現在の状態を反映
する。メモリバスキャッシュ命令が多数プロセッサバス
キャッシュ命令の実行の間容認される場合、それは多数
命令実行に影響を及ぼすことなしに実行される。
する。メモリバスキャッシュ命令が多数プロセッサバス
キャッシュ命令の実行の間容認される場合、それは多数
命令実行に影響を及ぼすことなしに実行される。
すべてのメモリバスキャッシュ命令は、キャッシュにワ
ードを書込めを除いて、類似する呼名を有する同等のプ
ロセッサバスキャッシュ命令を有する。これらの命令は
内部キャッシュに類似する効果を及ぼすが、プロセッサ
バスおよびメモリバス動作は異なっている。
ードを書込めを除いて、類似する呼名を有する同等のプ
ロセッサバスキャッシュ命令を有する。これらの命令は
内部キャッシュに類似する効果を及ぼすが、プロセッサ
バスおよびメモリバス動作は異なっている。
すべてのメモリバスキャッシュ命令は、1個のキャッシ
ュ命令転送メモリパストランザクションを利用して転送
される。ICUがバスマスタではない場合、★VSIの
断定はメモリバス上のキャッシュ命令トランザクション
を引き起こす。トランザクションの最初のサイクルの間
、MRW信号と、MREQT信号と、BSTC信号と、
アドレスとがラッチされる。MRW信号およびMREQ
T信号は命令を特定する。BSTC信号は適切な命令に
対しブロックステータスを特定する。アドレスは適切な
命令に対するアドレスオペランドとして使用される。命
令がデータオペランドを必要とする場合、データは第2
のサイクルの間ラッチされる。
ュ命令転送メモリパストランザクションを利用して転送
される。ICUがバスマスタではない場合、★VSIの
断定はメモリバス上のキャッシュ命令トランザクション
を引き起こす。トランザクションの最初のサイクルの間
、MRW信号と、MREQT信号と、BSTC信号と、
アドレスとがラッチされる。MRW信号およびMREQ
T信号は命令を特定する。BSTC信号は適切な命令に
対しブロックステータスを特定する。アドレスは適切な
命令に対するアドレスオペランドとして使用される。命
令がデータオペランドを必要とする場合、データは第2
のサイクルの間ラッチされる。
ICUがバスマスタであり、かつそれが再ロード動作の
ために続出要求を出す場合、★VSI入力は特殊機能を
有する。トランザクションが完了される前にそれが断定
される(最後の★MRDYは容認されていない)場合、
BSTC信号がラッチされ、さらにブロックステータス
を書込めの命令が実行される。アドレスオペランドは、
再ロード動作のためにICUにより転送されたアドレス
に対応するブロックアドレスである。
ために続出要求を出す場合、★VSI入力は特殊機能を
有する。トランザクションが完了される前にそれが断定
される(最後の★MRDYは容認されていない)場合、
BSTC信号がラッチされ、さらにブロックステータス
を書込めの命令が実行される。アドレスオペランドは、
再ロード動作のためにICUにより転送されたアドレス
に対応するブロックアドレスである。
ニモニックと、記述と、短い目的の説明でこの発明の一
実施例において有用であるとわかっている1組のメモリ
バスキャッシュ命令が、すぐ後で表にして明らかにされ
る。
実施例において有用であるとわかっている1組のメモリ
バスキャッシュ命令が、すぐ後で表にして明らかにされ
る。
MRW MREQT ニモニック 記 述00 00
NOP 動作なし00 01 SWHヒツ
トされた場合はワードを送れ 00 10 SWM 修正された場合はワード
を送れ 00 11 SBM 修正された場合はブロッ
クを送れ 01 00 1NVW ワードを無効にせよ01
01 1NVB ブロックを無効にせよ01 10
WBST ブロックステータスを書込め 01 11 WRRレジスタを書込め10 00
UPMI メモリを更新しかつ無効にせよ 10 01 RBST ブロックステータスを読
出せ 10 10 RDRレジスタを読出せ11 00
WRW キャッシュにワードを書込め 命令コードは、MRWOが他のメモリバス動作と一致す
るように配置されることが注目されるべきである。MR
WOLOWに対し、方向はICUからメモリバスに向か
い、MRWOHIGHに対しては、方向はメモリバスか
らICUへ向かう。
NOP 動作なし00 01 SWHヒツ
トされた場合はワードを送れ 00 10 SWM 修正された場合はワード
を送れ 00 11 SBM 修正された場合はブロッ
クを送れ 01 00 1NVW ワードを無効にせよ01
01 1NVB ブロックを無効にせよ01 10
WBST ブロックステータスを書込め 01 11 WRRレジスタを書込め10 00
UPMI メモリを更新しかつ無効にせよ 10 01 RBST ブロックステータスを読
出せ 10 10 RDRレジスタを読出せ11 00
WRW キャッシュにワードを書込め 命令コードは、MRWOが他のメモリバス動作と一致す
るように配置されることが注目されるべきである。MR
WOLOWに対し、方向はICUからメモリバスに向か
い、MRWOHIGHに対しては、方向はメモリバスか
らICUへ向かう。
機能レベルでは、命令の実行の結果法の動作が生じる。
動作なしくN0P)−二の命令はICUl、1m影響を
及ぼさない。メモリバスキャッシュ命令トランザクショ
ンプロトコルはいずれの命令に関してでも実施される。
及ぼさない。メモリバスキャッシュ命令トランザクショ
ンプロトコルはいずれの命令に関してでも実施される。
ヒツトされた場合はワードを送れ(SWH) −アドレ
スオペランドにより特定されるワードがキャッシュに存
在する場合、★HIT信号は断定される。ワードはメモ
リアドレスバス上でドライブされ、ブロックステータス
が共有されかつ修正されたビットはBSTC信号でドラ
イブされ、さらに、★MRDYは断定される。
スオペランドにより特定されるワードがキャッシュに存
在する場合、★HIT信号は断定される。ワードはメモ
リアドレスバス上でドライブされ、ブロックステータス
が共有されかつ修正されたビットはBSTC信号でドラ
イブされ、さらに、★MRDYは断定される。
修正された場合はワードを送れ(SWM)−アドレスオ
ペランドにより特定されたワードがキャッシュに存在し
、かつブロックに対する修正されたビットがセットされ
る場合、★HIT信号および★MRDY信号は断定され
、ブロックステータスが共有されかつ修正されたビット
はBSTC信号でドライブされる。次に、ワードはメモ
リにおいて対応するアドレスに書込まれる。
ペランドにより特定されたワードがキャッシュに存在し
、かつブロックに対する修正されたビットがセットされ
る場合、★HIT信号および★MRDY信号は断定され
、ブロックステータスが共有されかつ修正されたビット
はBSTC信号でドライブされる。次に、ワードはメモ
リにおいて対応するアドレスに書込まれる。
修正された場合はブロックを送れ(SBM)−アドレス
オペランドにより特定される4ワードブロツクが修正さ
れる場合は、★HIT信号および★MRDY信号が断定
され、さらに、ブロックステータスが共有されかつ修正
されたビットはBSTC信号で駆動される。次に、すべ
ての有効なワードがメモリにおいて対応するアドレスに
書込まれる。
オペランドにより特定される4ワードブロツクが修正さ
れる場合は、★HIT信号および★MRDY信号が断定
され、さらに、ブロックステータスが共有されかつ修正
されたビットはBSTC信号で駆動される。次に、すべ
ての有効なワードがメモリにおいて対応するアドレスに
書込まれる。
ワードを無効にせよ(INVW)−アドレスオペランド
により特定されるワードは無効にされる(対応する有効
なビットはリセットされる)。★HIT信号はヒツトま
たはミス条件に従ってドライブされ、★MRDYは命令
実行が完了された後で断定される。
により特定されるワードは無効にされる(対応する有効
なビットはリセットされる)。★HIT信号はヒツトま
たはミス条件に従ってドライブされ、★MRDYは命令
実行が完了された後で断定される。
ブロックを無効にせよ(I NVB)−アドレスオペラ
ンドにより特定された4ワードブロツクは無効にされる
(すべての対応する有効なビットはリセットされる)。
ンドにより特定された4ワードブロツクは無効にされる
(すべての対応する有効なビットはリセットされる)。
★HIT信号はヒツトまたはミス条件に従ってドライブ
され、★MRDYは命令実行が完了された後で立上げら
れる。
され、★MRDYは命令実行が完了された後で立上げら
れる。
ブロックステータスを書込め(WBST)−この命令は
、ICUがバススレーブであるかまたはバスマスタであ
るいずかの場合に実行され得る。
、ICUがバススレーブであるかまたはバスマスタであ
るいずかの場合に実行され得る。
ICUがスレーブである場合は、アドレスオペランドは
メモリバストランザクションにより特定される。この場
合特定された共有アドレスを含むブロックはキャッシュ
における存在をチエツクされる。ブロックが存在する場
合は、★HIT信号および★MRDY信号は断定され、
さらにブロックステータスビットはBSTC信号からコ
ピーされる。ブロックがキャッシュに存在しない場合は
、★HIT信号は断定が解除され、★MRDY信号は断
定にされる。ステータスレジスタのヒツトおよび有効ビ
ットはリセットされる。
メモリバストランザクションにより特定される。この場
合特定された共有アドレスを含むブロックはキャッシュ
における存在をチエツクされる。ブロックが存在する場
合は、★HIT信号および★MRDY信号は断定され、
さらにブロックステータスビットはBSTC信号からコ
ピーされる。ブロックがキャッシュに存在しない場合は
、★HIT信号は断定が解除され、★MRDY信号は断
定にされる。ステータスレジスタのヒツトおよび有効ビ
ットはリセットされる。
ECUがバスマスクであり、かつそれが再ロード動作の
ために読出要求を出す場合、★vIS入力は特殊機能を
有する。それがトランザクションが完了される(最後の
★MRDYが容認されていない)前に断定される場合、
BSTC信号はラッチされ、書込ブロックステータス命
令は実行される。アドレスオペランドは、再ロード動作
のためにICUにより転送されたアドレスである。この
場合、特定されたワードアドレスを含むブロックは常に
キャッシュに存在する(それが再ロードされるので)。
ために読出要求を出す場合、★vIS入力は特殊機能を
有する。それがトランザクションが完了される(最後の
★MRDYが容認されていない)前に断定される場合、
BSTC信号はラッチされ、書込ブロックステータス命
令は実行される。アドレスオペランドは、再ロード動作
のためにICUにより転送されたアドレスである。この
場合、特定されたワードアドレスを含むブロックは常に
キャッシュに存在する(それが再ロードされるので)。
このブロックのブロックステータスビットはBSTC信
号からコピーされる。ステータスレジスタは影響を及ぼ
されない。
号からコピーされる。ステータスレジスタは影響を及ぼ
されない。
レジスタを書込め(WRR)−レジスタを書込めの命令
は、ICQの特殊レジスタを書込むために使用される。
は、ICQの特殊レジスタを書込むために使用される。
メモリを更新しかつ無効にせよ(UPMI)−アドレス
オペランドにより特定された4ワードブロツクが修正さ
れる場合、★HIT信号および★M RD Y信号は断
定され、さらにブロックステータスが共有されかつ修正
されたビットはBSTC信号でドライブされる。次に、
すべての有効なワードはメモリにおいて対応するアドレ
スに書込まれ、次に、有効なビットはリセットされる。
オペランドにより特定された4ワードブロツクが修正さ
れる場合、★HIT信号および★M RD Y信号は断
定され、さらにブロックステータスが共有されかつ修正
されたビットはBSTC信号でドライブされる。次に、
すべての有効なワードはメモリにおいて対応するアドレ
スに書込まれ、次に、有効なビットはリセットされる。
ブロックステータスを読出せ(RB S T)−特定さ
れたワードアドレスはキャッシュにおける存在をチエツ
クされる。ブロックステータスビットはB’ S T
C信号でドライブされる。★HITおよび★MRDYは
またそれに従ってドライブされる。
れたワードアドレスはキャッシュにおける存在をチエツ
クされる。ブロックステータスビットはB’ S T
C信号でドライブされる。★HITおよび★MRDYは
またそれに従ってドライブされる。
レジスタを読出せ(RDR)−レジスタを読出世の命令
は、ICUの特殊レジスタを読出すために使用される。
は、ICUの特殊レジスタを読出すために使用される。
キャッシュにワードを書込め(WRW)−アドレスオペ
ランドにより特定されたワードがキャッシュに存在する
場合、★HIT信号は断定され、供給されたデータはキ
ャッシュに書込まれる。アドレスの2個の下位ビットは
無視される。アドレスサイクルは★vSI入力によって
は特定されるが★MASTD信号によっては特定されな
いことに注目されたい。データは、アドレスサイクルの
後に続くサイクルの間メモリバス上の値により特定され
る。ワードがキャッシュに存在しない場合、★HIT信
号は断定が解除され、ステータスレジスタのヒツトおよ
び有効ビットはリセットされる。
ランドにより特定されたワードがキャッシュに存在する
場合、★HIT信号は断定され、供給されたデータはキ
ャッシュに書込まれる。アドレスの2個の下位ビットは
無視される。アドレスサイクルは★vSI入力によって
は特定されるが★MASTD信号によっては特定されな
いことに注目されたい。データは、アドレスサイクルの
後に続くサイクルの間メモリバス上の値により特定され
る。ワードがキャッシュに存在しない場合、★HIT信
号は断定が解除され、ステータスレジスタのヒツトおよ
び有効ビットはリセットされる。
★MRDY信号は、ICUがメモリバスからのデータを
ラッチする場合に断定される。
ラッチする場合に断定される。
この発明の好ましい実施例とともに使用するための適当
かつ有用な命令セットの説明を完了したので、新規のI
CUにより支持されるデータフォーマットおよびデータ
操作機構の短い説明がここで述べられる。
かつ有用な命令セットの説明を完了したので、新規のI
CUにより支持されるデータフォーマットおよびデータ
操作機構の短い説明がここで述べられる。
先に示されたように、1ワードは32ビットのデータと
して規定される。1ハーフワードは16ビットからなる
。1バイトは8ビットからなる。
して規定される。1ハーフワードは16ビットからなる
。1バイトは8ビットからなる。
ICUは、ワードと、ハーフワードと、バイトアクセス
とに対する直接支持を有する。プロセッサバス上では、
アクセスの長さはOPT入力に従って決定される。アク
セスの長さは、単一データメモリアクセスの間のみ有効
である。すべての他のプロセッサバスアクセス(バース
トモードメモリアクセスを含む)においては、それは無
視され、かつワードの長さが仮定される。メモリバス上
では、アクセスの長さはMDLN信号に従って決定され
る。
とに対する直接支持を有する。プロセッサバス上では、
アクセスの長さはOPT入力に従って決定される。アク
セスの長さは、単一データメモリアクセスの間のみ有効
である。すべての他のプロセッサバスアクセス(バース
トモードメモリアクセスを含む)においては、それは無
視され、かつワードの長さが仮定される。メモリバス上
では、アクセスの長さはMDLN信号に従って決定され
る。
この発明の好ましい実施例に対するワード内のデータユ
ニットに対する番号付は協定は、RISCプロセッサを
説明している援用されている出願において述べられるR
ISC/SIP規定と一致している。ビットは右から左
へ増加する順序で番号付けされる。バイトおよびハーフ
ワードは、モッドbレジスタのバイト順序ビットにより
制御されるように、右から左へまたは左から右へ順序づ
けされ得る。
ニットに対する番号付は協定は、RISCプロセッサを
説明している援用されている出願において述べられるR
ISC/SIP規定と一致している。ビットは右から左
へ増加する順序で番号付けされる。バイトおよびハーフ
ワードは、モッドbレジスタのバイト順序ビットにより
制御されるように、右から左へまたは左から右へ順序づ
けされ得る。
ICUの好ましい実施例は、バイトと、ハーフワードと
、ワードアクセスとを十分に支持するのに必要なハード
ウェアを含んでいる。異なるデータタイプは、それらの
自然なアドレス境界上に整列されるべきである。それら
の自然な境界上にないアクセスは、エラーレジスタおよ
びステータスレジスタで報告されるが、アクセスはそれ
が正確に整列されたかのようにサービスされる(すなわ
ち、適当なアドレスビットは無視される)。
、ワードアクセスとを十分に支持するのに必要なハード
ウェアを含んでいる。異なるデータタイプは、それらの
自然なアドレス境界上に整列されるべきである。それら
の自然な境界上にないアクセスは、エラーレジスタおよ
びステータスレジスタで報告されるが、アクセスはそれ
が正確に整列されたかのようにサービスされる(すなわ
ち、適当なアドレスビットは無視される)。
プロセッサバス上のメモリバイト読出動作で、整列ハー
ドウェアはワード内の下位の(右端の)場所へバイトを
シフトする。
ドウェアはワード内の下位の(右端の)場所へバイトを
シフトする。
プロセッサバス上のメモジノ1−フワード読出動作で、
整列ハードウェアはワード内の下位の(右端の)場所へ
ハーフワードをシフトする。
整列ハードウェアはワード内の下位の(右端の)場所へ
ハーフワードをシフトする。
メモリ読出動作の際のミスの場合、ICUは再ロード動
作のためにメモリバス上のワードアクセスを利用する。
作のためにメモリバス上のワードアクセスを利用する。
バイトおよびノ\−フワードアクセスはキャッシュ不能
読出アクセスのために使用される。バイトまたはハーフ
ワードは、それらがプロセッサに送られる前に整列され
る。アクセスの長さがプロセッサバス(OPT入力)か
らメモリバス(MDLN信号)へ転送される。
読出アクセスのために使用される。バイトまたはハーフ
ワードは、それらがプロセッサに送られる前に整列され
る。アクセスの長さがプロセッサバス(OPT入力)か
らメモリバス(MDLN信号)へ転送される。
メモリ書込動作で、ICUは適当なキャッシュ場所にバ
イトおよびハーフワードを書込む。バイト書込みで、バ
イトはワード内の下位バイト場所からすべての他のバイ
ト場所へと複製される。適当なバイト書込可能化は、キ
ャッシュに正しいバイトを書込むために断定される。ハ
ーフワード書込みで、ハーフワードは下位のハーフワー
ドから上位のハーフワードを複製される。次に、それは
適当なバイト可能化を断定することによりキャッシュに
書込まれる。
イトおよびハーフワードを書込む。バイト書込みで、バ
イトはワード内の下位バイト場所からすべての他のバイ
ト場所へと複製される。適当なバイト書込可能化は、キ
ャッシュに正しいバイトを書込むために断定される。ハ
ーフワード書込みで、ハーフワードは下位のハーフワー
ドから上位のハーフワードを複製される。次に、それは
適当なバイト可能化を断定することによりキャッシュに
書込まれる。
ライトスルーおよびキャッシュ不能書込アクセスで、ア
クセスの長さはプロセッサバス(OPT入力)からメモ
リバス(MD L N信号)へ伝送される。複製された
バイトまたはノーーフワードはメモリバス上に置かれる
。メモリ制御器はアドレスおよび長さをデコードし、か
つ正しい書込可能化信号を断定する。
クセスの長さはプロセッサバス(OPT入力)からメモ
リバス(MD L N信号)へ伝送される。複製された
バイトまたはノーーフワードはメモリバス上に置かれる
。メモリ制御器はアドレスおよび長さをデコードし、か
つ正しい書込可能化信号を断定する。
ICUはバイトおよびハーフワードアクセスを支持する
けれども、ユーザはシステムがそれらを支持するかどう
かを決定し得ることが注目されるべきである。その決定
がワードアクセスのみを支持する場合には、OPT入力
およびMDLN入力は常にワードアクセスを特定すべき
である。
けれども、ユーザはシステムがそれらを支持するかどう
かを決定し得ることが注目されるべきである。その決定
がワードアクセスのみを支持する場合には、OPT入力
およびMDLN入力は常にワードアクセスを特定すべき
である。
すぐ後に続く詳細な説明の一部は、プロセッサおよびメ
モリバス上のキャッシュアクセスの異なる場合に対する
ICU動作を説明している。
モリバス上のキャッシュアクセスの異なる場合に対する
ICU動作を説明している。
プロセッサバスアクセスは、単一の、バイブライン化ア
クセスかまたはバーストモードアクセスのいずれかであ
る。
クセスかまたはバーストモードアクセスのいずれかであ
る。
プロセッサバス上のすべてのアクセスはプロセッサによ
り開始される。IICUは、ここに先に引用により援用
された同時係属出願において規定されるような3個のア
クセスプロトコルを支持する。
り開始される。IICUは、ここに先に引用により援用
された同時係属出願において規定されるような3個のア
クセスプロトコルを支持する。
単一アクセスは、単一データ読出および書込アクセスの
ためばかりでなく、特殊命令アクセスのためにも使用さ
れる。
ためばかりでなく、特殊命令アクセスのためにも使用さ
れる。
バイブライン化アクセスはICUにより支持される。I
CUはアドレスをラッチする(★PENは外部論理によ
り駆動されるべきである)。プ。
CUはアドレスをラッチする(★PENは外部論理によ
り駆動されるべきである)。プ。
セッサは、別なICUアクセスを始めるためにアドレス
バスを使用し得る。パイプライン化アクセスのアドレス
は、先のアクセスとのパイプラインにおいて、タグ比較
機能のためにICUにより使用される。キャツシュヒツ
トの場合、1次アクセスが完了した後で、完了すべきパ
イプライン化アクセスには1サイクルが必要とされる。
バスを使用し得る。パイプライン化アクセスのアドレス
は、先のアクセスとのパイプラインにおいて、タグ比較
機能のためにICUにより使用される。キャツシュヒツ
トの場合、1次アクセスが完了した後で、完了すべきパ
イプライン化アクセスには1サイクルが必要とされる。
キャッシュミスの場合、メモリバスアクセスは1サイク
ル早く始まる。
ル早く始まる。
バーストモードアクセスは、命令アクセスおよび多数デ
ータアクセスのために使用される。これらのアクセスに
おいて、第1のワードに対するアドレスは転送され、次
に、シーケンシャルなアドレスは次のワードに対し仮定
される。バーストモード読出および書込アクセスはIC
Uにより十分に支持される。サイクルあたりの1ワード
の最大速度はキャツシュヒツトに対し達成される。
ータアクセスのために使用される。これらのアクセスに
おいて、第1のワードに対するアドレスは転送され、次
に、シーケンシャルなアドレスは次のワードに対し仮定
される。バーストモード読出および書込アクセスはIC
Uにより十分に支持される。サイクルあたりの1ワード
の最大速度はキャツシュヒツトに対し達成される。
単一メモリ続出アクセスはデータキャッシュがらデータ
変数を読出すために使用される。(組入れられたRIS
Cプロセッサは、バーストモードプロトコルを用いてす
べての命令読出しを実施する。)アドレスは所要のワー
ドに対しキャッシュを探索するために使用される。ワー
ドが見い出される(ヒツトされる)場合、データはプロ
セッサへ転送され、★CRDY出力が断定される。整列
は、バイトおよびハーフワードアクセスに対し実施され
る。単一メモリ続出アクセスで、ICUは2サイクルの
うちに応答する。
変数を読出すために使用される。(組入れられたRIS
Cプロセッサは、バーストモードプロトコルを用いてす
べての命令読出しを実施する。)アドレスは所要のワー
ドに対しキャッシュを探索するために使用される。ワー
ドが見い出される(ヒツトされる)場合、データはプロ
セッサへ転送され、★CRDY出力が断定される。整列
は、バイトおよびハーフワードアクセスに対し実施され
る。単一メモリ続出アクセスで、ICUは2サイクルの
うちに応答する。
所要のワードがキャッシュ(ミス)において見い出され
ない場合、ICUは予め定められたミス取扱い手順を開
始する。共有されたブロックステータスビットはミスご
とに更新される。また、そのセットと関連するLRUビ
ットはアクセスごとに更新され、最も古くに使用された
ブロックを反映する。
ない場合、ICUは予め定められたミス取扱い手順を開
始する。共有されたブロックステータスビットはミスご
とに更新される。また、そのセットと関連するLRUビ
ットはアクセスごとに更新され、最も古くに使用された
ブロックを反映する。
バーストモードメモリ読出アクセスは、一連のシーケン
シャルなメモリ読出アクセスとしてICUにより取扱わ
れる。バーストモード読出アクセスの第1のサイクルに
おいて、第1のワードに対するアドレスはプロセッサに
より転送される。バーストモード読出アクセスはICU
により検出される場合、それはアドレスをラッチし、★
CBACK信号を断定する。アドレスはバーストにおけ
るワードごとに比較され、自動的に増分される。
シャルなメモリ読出アクセスとしてICUにより取扱わ
れる。バーストモード読出アクセスの第1のサイクルに
おいて、第1のワードに対するアドレスはプロセッサに
より転送される。バーストモード読出アクセスはICU
により検出される場合、それはアドレスをラッチし、★
CBACK信号を断定する。アドレスはバーストにおけ
るワードごとに比較され、自動的に増分される。
キャツシュヒツトの場合、ICUは2サイクル内にその
第1のワードとともに応答する。アドレスは、1サイク
ルあたり一度の最大速度で増分されかつ比較されること
が可能である。これは、キャッシュピットの場合に達成
されるべきワードあたりの1サイクルの速度を可能にす
る。ブロック境界横断の場合にもまた1サイクルアクセ
スが維持されることに注目されたい。
第1のワードとともに応答する。アドレスは、1サイク
ルあたり一度の最大速度で増分されかつ比較されること
が可能である。これは、キャッシュピットの場合に達成
されるべきワードあたりの1サイクルの速度を可能にす
る。ブロック境界横断の場合にもまた1サイクルアクセ
スが維持されることに注目されたい。
バーストモードアクセスの問いずれかの点でミスが見い
出された場合、予め定められたバーストミス取扱い手順
が開始される。
出された場合、予め定められたバーストミス取扱い手順
が開始される。
メモリバスバーストモードアクセスの間、次のワードア
ドレス(現在のワードアドレスに1を加える)はキャッ
シュにおいて検査される。メモリバスバーストモード動
作の間にヒツトが見い出される場合、メモリバスアクセ
スは終了され、データ転送はキャッシュから続く。ミス
およびヒツトの場合と一方から他方への転送等はプロセ
ッサに対して透明である(アクセス時間のみが影響を及
ぼされる)。
ドレス(現在のワードアドレスに1を加える)はキャッ
シュにおいて検査される。メモリバスバーストモード動
作の間にヒツトが見い出される場合、メモリバスアクセ
スは終了され、データ転送はキャッシュから続く。ミス
およびヒツトの場合と一方から他方への転送等はプロセ
ッサに対して透明である(アクセス時間のみが影響を及
ぼされる)。
バーストモード読出アクセスは★BREQを断定を解除
することにより、時間のいずれかの点でプロセッサによ
り終了され得る。もう1個のワードが、組入れられたR
ESCプロセッサのバーストモードプロトコルに対し規
定されるようにサービスされる。
することにより、時間のいずれかの点でプロセッサによ
り終了され得る。もう1個のワードが、組入れられたR
ESCプロセッサのバーストモードプロトコルに対し規
定されるようにサービスされる。
データ変数をキャッシュに書込むために、単一メモリ書
込アクセスが使用される。アドレスおよびデータはアク
セスの最初のサイクルにおいてICUによりラッチされ
、このサイクル(単一サイクル書込み)の間★CRDY
信号が断定される。
込アクセスが使用される。アドレスおよびデータはアク
セスの最初のサイクルにおいてICUによりラッチされ
、このサイクル(単一サイクル書込み)の間★CRDY
信号が断定される。
★CRDY信号はヒツトまたはミス条件とは無関係に断
定されることに注目されたい。
定されることに注目されたい。
キャツシュヒツトの場合、データは第2サイクルのうち
にキャッシュに書込まれる。書込ポリシーは、ASTC
入力と、モッドaレジスタの書込ポリシーフィールドと
、モッドbレジスタにおける書込みが共有されたヒツト
制御およびプロセッサが共有されたビット制御フィール
ドと、ブロックステータスが共有されたビットとに従っ
て決定される。3つの可能な書込ポリシー、すなわち排
他的ライトスルー、排他的コピーパックおよび共有され
たものが存在する。
にキャッシュに書込まれる。書込ポリシーは、ASTC
入力と、モッドaレジスタの書込ポリシーフィールドと
、モッドbレジスタにおける書込みが共有されたヒツト
制御およびプロセッサが共有されたビット制御フィール
ドと、ブロックステータスが共有されたビットとに従っ
て決定される。3つの可能な書込ポリシー、すなわち排
他的ライトスルー、排他的コピーパックおよび共有され
たものが存在する。
排他的ライトスルー書込アクセスに対し、データはまた
メモリに書込まれる。書込バッファが可能化される場合
、データは書込バッファへ書込まれる。それが不能化さ
れる場合、書込バッファの説明を参照しながら後で説明
されるように、書込動作はバッファされない。両方の場
合において、先に実施されるべきである他のメモリバス
動作が存在しない場合、およびメモリバスが利用可能で
ある場合、メモリバスアクセスは開始される。
メモリに書込まれる。書込バッファが可能化される場合
、データは書込バッファへ書込まれる。それが不能化さ
れる場合、書込バッファの説明を参照しながら後で説明
されるように、書込動作はバッファされない。両方の場
合において、先に実施されるべきである他のメモリバス
動作が存在しない場合、およびメモリバスが利用可能で
ある場合、メモリバスアクセスは開始される。
排他的コピーパック書込アクセスで、データはキャッシ
ュと修正されたビットセットにおいてのみ書込まれる。
ュと修正されたビットセットにおいてのみ書込まれる。
データは、ブロックが置換される場合、メモリに書込ま
れる。
れる。
共有された書込アクセスの場合、ライトスルーまたはラ
イト同報通信アクセスか常にメモリバス上で実施される
。この場合、モッドaレジスタの書込ポリシーフィール
ドではなく、モッドbレジスタの書込みが共有されたヒ
ツト制御フィールドはICU動作を制御する。
イト同報通信アクセスか常にメモリバス上で実施される
。この場合、モッドaレジスタの書込ポリシーフィール
ドではなく、モッドbレジスタの書込みが共有されたヒ
ツト制御フィールドはICU動作を制御する。
キャッシュミスの場合、ICU動作はモッドaレジスタ
の書込割当ビットに従って決定される。
の書込割当ビットに従って決定される。
書込側、当てが可能化される場合、ミスされたブロック
に対しキャッシュブロックが割当てられ、ミス手順が開
始される。ミス手順はメモリ続出ミス手順に類似する。
に対しキャッシュブロックが割当てられ、ミス手順が開
始される。ミス手順はメモリ続出ミス手順に類似する。
ミス手順が完了された後で、キャッシュ動作は書込ヒツ
トの場合に対し先に説明されたように続く。
トの場合に対し先に説明されたように続く。
書込割当てが不能化される場合、キャッシュにおいては
ブロックが割当てられない。データは、ライトスルー動
作に対し説明されたようにメモリにおいてのみ書込まれ
る。この場合に対し、コピーバック書込みはライトスル
ーアクセスとして取扱われることに注目されたい。
ブロックが割当てられない。データは、ライトスルー動
作に対し説明されたようにメモリにおいてのみ書込まれ
る。この場合に対し、コピーバック書込みはライトスル
ーアクセスとして取扱われることに注目されたい。
共有されたブロックステータスビットはミスごとに更新
される。モッドbレジスタの適当なビットがセットされ
る場合、それはまたキャッシュビットに対し更新され得
る。
される。モッドbレジスタの適当なビットがセットされ
る場合、それはまたキャッシュビットに対し更新され得
る。
セットと関連するLRUビットはアクセスごとに更新さ
れ、最も古くに使用されたブロックを反映する。
れ、最も古くに使用されたブロックを反映する。
一連のシーケンシャルなメモリ書込アクセスとして、バ
ーストモードメモリ書込アクセスがICUにより取扱わ
れる。バーストモード書込アクセスの最初のサイクルに
おいて、第1のワードに対するアドレスおよびデータは
プロセッサにより転送される。バーストモード書込アク
セスがICUにより検出される場合、それはアドレスお
よびデータをラッチし、★CRDY信号と★CBACK
信号とを断定する。アドレスはバーストにおけるすべて
のワードに対し比較されかつ自動的に増分される。
ーストモードメモリ書込アクセスがICUにより取扱わ
れる。バーストモード書込アクセスの最初のサイクルに
おいて、第1のワードに対するアドレスおよびデータは
プロセッサにより転送される。バーストモード書込アク
セスがICUにより検出される場合、それはアドレスお
よびデータをラッチし、★CRDY信号と★CBACK
信号とを断定する。アドレスはバーストにおけるすべて
のワードに対し比較されかつ自動的に増分される。
キャツシュヒツトの場合、ICUは第2のサイクルの間
第1のワードをキャッシュに書込む。1サイクルあたり
一度の最大速度で、アドレスが増分および比較され得る
。これは、キャツシュヒツトの場合に達成されるべきワ
ードあたりの1サイクルの速度を可能にする。1サイク
ルアクセスはブロック境界横断の場合にも維持されるこ
とに注目されたい。単一メモリ書込みに対するのと同一
条件において、メモリバス書込動作が同様に開始され得
る。書込バッファが可能化される場合、それは4個まで
の書込みをバッファするために使用される。メモリバス
アクセスはバーストモード書込みである。メモリバス動
作に対する条件はバーストにおけるすべてのワードで検
査され、メモリバス動作はそれに応じて影響を及ぼされ
る。
第1のワードをキャッシュに書込む。1サイクルあたり
一度の最大速度で、アドレスが増分および比較され得る
。これは、キャツシュヒツトの場合に達成されるべきワ
ードあたりの1サイクルの速度を可能にする。1サイク
ルアクセスはブロック境界横断の場合にも維持されるこ
とに注目されたい。単一メモリ書込みに対するのと同一
条件において、メモリバス書込動作が同様に開始され得
る。書込バッファが可能化される場合、それは4個まで
の書込みをバッファするために使用される。メモリバス
アクセスはバーストモード書込みである。メモリバス動
作に対する条件はバーストにおけるすべてのワードで検
査され、メモリバス動作はそれに応じて影響を及ぼされ
る。
バーストモードアクセスの間のいつかにミスが見い出さ
れる場合、CIU動作がモッドaレジスタの書込割当て
ビットに従って決定される。書込割当てが可能化される
場合、ミスされたブロックに対しキャッシュブロックが
割当てられ、ミス取扱い手順が開始される。メモリバス
アクセスは、読出されるか、またはモッドbレジスタの
書込ミスメモリアクセス制御ビットがそれぞれHIGH
であるかまたはLOWであるかに依存して修正するため
に読出される。ミス手順が完了された後で、キャッシュ
動作はヒツトの場合に対し説明されたように続く。この
場合、各ミスされたサブブロックはまずキャッシュに読
出され、次に書込まれることに注目されたい。メモリバ
ス動作は連続バーストではない。
れる場合、CIU動作がモッドaレジスタの書込割当て
ビットに従って決定される。書込割当てが可能化される
場合、ミスされたブロックに対しキャッシュブロックが
割当てられ、ミス取扱い手順が開始される。メモリバス
アクセスは、読出されるか、またはモッドbレジスタの
書込ミスメモリアクセス制御ビットがそれぞれHIGH
であるかまたはLOWであるかに依存して修正するため
に読出される。ミス手順が完了された後で、キャッシュ
動作はヒツトの場合に対し説明されたように続く。この
場合、各ミスされたサブブロックはまずキャッシュに読
出され、次に書込まれることに注目されたい。メモリバ
ス動作は連続バーストではない。
書込割当てが不能化される場合、キャッシュにはブロッ
クが割当てられない。データはバーストモード書込動作
を用いてメモリにのみ書込まれる。
クが割当てられない。データはバーストモード書込動作
を用いてメモリにのみ書込まれる。
メモリバス動作のための条件はバーストにおけるすべて
のワードでチエツクされ、さらに、メモリハス動作はそ
れに応じて影響を及ぼされる。
のワードでチエツクされ、さらに、メモリハス動作はそ
れに応じて影響を及ぼされる。
次のワードアドレス(現在のワードアドレスに1を加え
る)はキャッシュにおいてすべてのワード書込みを検査
される。1個またはそれ以上のミスの後でヒツトが見い
出された場合は、ICUはヒツトの場合に対し説明され
たように続行する。
る)はキャッシュにおいてすべてのワード書込みを検査
される。1個またはそれ以上のミスの後でヒツトが見い
出された場合は、ICUはヒツトの場合に対し説明され
たように続行する。
ミスおよびヒツトの場合と一方から他方への転送とはプ
ロセッサに対し透明である(アクセス時間のみが影響を
及ぼされる)。
ロセッサに対し透明である(アクセス時間のみが影響を
及ぼされる)。
バーストモード書込アクセスは、★BREQを断定を解
除することにより時間のいずれの点でもプロセッサによ
り終了され得る。ICUは最後のワード書込みをサービ
スし、必要ならばメモリバスバーストモードアクセスを
終了する。
除することにより時間のいずれの点でもプロセッサによ
り終了され得る。ICUは最後のワード書込みをサービ
スし、必要ならばメモリバスバーストモードアクセスを
終了する。
次に、この発明の好ましい実施例により支持される多様
な他のアクセス手順が説明される。
な他のアクセス手順が説明される。
キャッシュ不能メモリアクセスが支持される。
それは、特殊変数アクセスのためにキャッシュをバイパ
スするために使用される。このアクセスに対し、キャッ
シュは所要のデータを探索されない。
スするために使用される。このアクセスに対し、キャッ
シュは所要のデータを探索されない。
メモリにおけるデータを読出すまたは書込むためにメモ
リアクセスが開始される。このデータのためにキャッシ
ュにおいてはブロックが割当てられない。
リアクセスが開始される。このデータのためにキャッシ
ュにおいてはブロックが割当てられない。
命令ROMアクセスは任意で支持され得る。これらのア
クセスは、規則正しいメモリ読出アクセスとして命令キ
ャッシュによりサービスされる。
クセスは、規則正しいメモリ読出アクセスとして命令キ
ャッシュによりサービスされる。
ミスの場合は、メモリバスアクセスはROMアクセスと
呼ばれる。ICUはROMアクセスを無視するようにプ
ログラムされ得る。
呼ばれる。ICUはROMアクセスを無視するようにプ
ログラムされ得る。
入力/出力アクセスは任意で支持されかつデータキャッ
シュによりキャッシュ不能アクセスとして取扱われ得る
。ICUは、I10支持でメモリバスアクセスを転送す
る。ICUは入力/出力アクセスを無視するようにプロ
グラムされ得る。
シュによりキャッシュ不能アクセスとして取扱われ得る
。ICUは、I10支持でメモリバスアクセスを転送す
る。ICUは入力/出力アクセスを無視するようにプロ
グラムされ得る。
コプロセッサ転送はデータキャッシュにより無視される
。
。
また支持されるのは、インターロックアクセスと指定さ
れ得るメモリアクセスである。これは★LOCK人力を
セットすることにより行なわれる。
れ得るメモリアクセスである。これは★LOCK人力を
セットすることにより行なわれる。
セマフォおよび他の同期化され共有された変数をアクセ
スするためにインターロックアクセスが利用され得る。
スするためにインターロックアクセスが利用され得る。
インターロックアクセスはモッドbレジスタにより制御
される。
される。
データとしての命令メモリアクセスが支持される。これ
は、命令メ干りの内容を読出しかつ書込むために使用さ
れる特殊データアクセスである。
は、命令メ干りの内容を読出しかつ書込むために使用さ
れる特殊データアクセスである。
それは、OPT入力の場合に特殊コードにより示される
。
。
デバッグモジュールアクセスがまた支持される。
これは、RISC/SIPデバッグモジュールをアクセ
スするために使用される特殊データアクセスである。そ
れは、OPT入力の場合に特殊コード′により示される
。ICUはこのアクセスのために★CRDY信号をドラ
イブする。★CRDYは4サイクルの間HIGHにドラ
イブされ、次に、1サイクルの間断定される。これは、
プロセッサの★RDY論理に影響を及ぼさずに、キャッ
シュシステムにおいてデバグモジュールの挿入を不可能
にするために行なわれる。
スするために使用される特殊データアクセスである。そ
れは、OPT入力の場合に特殊コード′により示される
。ICUはこのアクセスのために★CRDY信号をドラ
イブする。★CRDYは4サイクルの間HIGHにドラ
イブされ、次に、1サイクルの間断定される。これは、
プロセッサの★RDY論理に影響を及ぼさずに、キャッ
シュシステムにおいてデバグモジュールの挿入を不可能
にするために行なわれる。
上記のことすべてに加えて、キャッシュ命令アクセスが
支持される。このアクセスはブロモ・ンサバスキャッシ
ュ命令をICUに転送するために使用される。
支持される。このアクセスはブロモ・ンサバスキャッシ
ュ命令をICUに転送するために使用される。
メモリバスアクセスに転化すると、メモリバスはICU
マスクキャッシュとスレーブキャッシュの両方により使
用されることが理解されるべきである。メモリは、IC
Uバスマスタにより、メモリバスアクセスを出すことに
よりアクセスされる。
マスクキャッシュとスレーブキャッシュの両方により使
用されることが理解されるべきである。メモリは、IC
Uバスマスタにより、メモリバスアクセスを出すことに
よりアクセスされる。
ICUは、★MBUSR(バス要求)出力を断定しかつ
★MBGRT (バス認可)を待つことによりバス支配
を得る。ICUパススレーブが、キャッシュ−貫性目的
に対しメモリバスアクセスをモニタし得る。キャッシュ
命令は、メモリバス上で特殊アクセスにより断定され得
る。
★MBGRT (バス認可)を待つことによりバス支配
を得る。ICUパススレーブが、キャッシュ−貫性目的
に対しメモリバスアクセスをモニタし得る。キャッシュ
命令は、メモリバス上で特殊アクセスにより断定され得
る。
読出アクセスと、書込アクセスと、修正のための続出ア
クセスとがICUにより支持されるとしてここで説明さ
れる。
クセスとがICUにより支持されるとしてここで説明さ
れる。
メモリバス読出アクセスは、再ロード動作のためにかつ
キャッシュ不能アクセスのためにキャッシュマスクによ
り開始される。すべての再ロード動作はワードのアクセ
スの長さを利用する。キャッシュ不能アクセスで、アク
セスのタイプおよび適当な長さがプロセッサバスからM
DLN、MREQTおよび★MLOCKメモリバス信号
へ伝送される。1を越えるワードが必要とされる場合に
、再ロード動作のためにバーストモードアクセスが利用
される。すべての他の場合に単一アクセスが使用される
。
キャッシュ不能アクセスのためにキャッシュマスクによ
り開始される。すべての再ロード動作はワードのアクセ
スの長さを利用する。キャッシュ不能アクセスで、アク
セスのタイプおよび適当な長さがプロセッサバスからM
DLN、MREQTおよび★MLOCKメモリバス信号
へ伝送される。1を越えるワードが必要とされる場合に
、再ロード動作のためにバーストモードアクセスが利用
される。すべての他の場合に単一アクセスが使用される
。
再ロード動作は最初のプロセッサバス動作に依存してい
る。それは、単一アクセスおよびバーストモードアクセ
スの場合には異なっている。
る。それは、単一アクセスおよびバーストモードアクセ
スの場合には異なっている。
プロセッサバス単一メモリ読出動作の際のキャッシュミ
スの場合、開始および終了アドレスばかりでなく、アド
レスラップアラウンドまたはノーラップアラウンドは、
モッドaレジスタの単一ミス制御(SMC)フィールド
およびサブブロックサイズ(S B S)フィールドに
より制御される。
スの場合、開始および終了アドレスばかりでなく、アド
レスラップアラウンドまたはノーラップアラウンドは、
モッドaレジスタの単一ミス制御(SMC)フィールド
およびサブブロックサイズ(S B S)フィールドに
より制御される。
プロセッサバスバーストモード読出アクセスの際のキャ
ッシュミスの場合、バーストモードアクセスが再ロード
動作にためにメモリバス上で開始される。再ロード開始
アクセスが常にミスされたワードのうちの1個である。
ッシュミスの場合、バーストモードアクセスが再ロード
動作にためにメモリバス上で開始される。再ロード開始
アクセスが常にミスされたワードのうちの1個である。
バースト終了アドレスはモッドaレジスタにより制御さ
れる。
れる。
ICUがバスマスクであり、それが再ロード動作のため
に読出要求を出す場合、★VSI入力は特殊機能を有す
る。それがトランザクションが完了される(最後の★M
RDYが容認されていない)前に断定される場合、BS
TC信号はラッチされ、さらに、特殊書込ブロックステ
ータス命令が実行される。
に読出要求を出す場合、★VSI入力は特殊機能を有す
る。それがトランザクションが完了される(最後の★M
RDYが容認されていない)前に断定される場合、BS
TC信号はラッチされ、さらに、特殊書込ブロックステ
ータス命令が実行される。
メモリバス読出アクセスでのスレーブキャッシュの動作
は、後で明らかにされる、ICUマルチプロセッサ支持
を参照しながら説明される。
は、後で明らかにされる、ICUマルチプロセッサ支持
を参照しながら説明される。
書込アクセスへの転化。ライトスルーおよびキャッシュ
不能書込アクセスと、メモリへの修正されたブロックコ
ピーバックと共有されたブロック書込ヒツト動作のため
にキャッシュマスタにより書込動作が開始される。修正
されたブロックコピーバック動作ために、かつプロセッ
サバス上のバーストモード書込アクセスのためにバース
トモードアクセスが開始される。すべての他の場合にお
いて、単一アクセスが開始される。単一アクセスに対し
、アクセスのタイプおよび長さは、プロセッサバスから
MD L N、%MREQTおよび★MLOCKメモリ
バス信号へ転送される。
不能書込アクセスと、メモリへの修正されたブロックコ
ピーバックと共有されたブロック書込ヒツト動作のため
にキャッシュマスタにより書込動作が開始される。修正
されたブロックコピーバック動作ために、かつプロセッ
サバス上のバーストモード書込アクセスのためにバース
トモードアクセスが開始される。すべての他の場合にお
いて、単一アクセスが開始される。単一アクセスに対し
、アクセスのタイプおよび長さは、プロセッサバスから
MD L N、%MREQTおよび★MLOCKメモリ
バス信号へ転送される。
メモリバス上のバーストモード書込アクセスは、所要の
最初のワードアドレスで始まり、メモリへ書込まれるの
に必要とされる最後のワードで停止される。それは、バ
ーストモード読出アクセスの場合におけるように、モッ
ドaオプションにより影響を及ぼされない。
最初のワードアドレスで始まり、メモリへ書込まれるの
に必要とされる最後のワードで停止される。それは、バ
ーストモード読出アクセスの場合におけるように、モッ
ドaオプションにより影響を及ぼされない。
共有されたブロックへのヒツトの場合、レジスタの書込
みが共有されたヒツト制御フィールドの値に依存して、
モッドbレジスタの制御の下でライトスルー動作が開始
される。
みが共有されたヒツト制御フィールドの値に依存して、
モッドbレジスタの制御の下でライトスルー動作が開始
される。
メモリバス書込アクセスのためのスレーブキャッシュの
動作はまた、ICUマルチプロセッサ支持を参照しなが
ら後で説明される。
動作はまた、ICUマルチプロセッサ支持を参照しなが
ら後で説明される。
修正のための読出しは特殊読出動作である。それは、モ
ッドbレジスタの制御の下で、コピーバック書込動作の
際のミスの場合にICUにより使用される。マスクキャ
ッシュは、読出しが完了された後でブロックが修正され
ることになることを示す。すべての他の点で、マスク動
作は読出アクセスに類似する。
ッドbレジスタの制御の下で、コピーバック書込動作の
際のミスの場合にICUにより使用される。マスクキャ
ッシュは、読出しが完了された後でブロックが修正され
ることになることを示す。すべての他の点で、マスク動
作は読出アクセスに類似する。
ICUがバスマスタである場合、かつそれが再ロード動
作に対し修正要求のための続出しを出す場合、★VSI
入力は特殊機能を有する。それがトランザクションが完
了される(最後の★MRDYが容認されていない)前に
断定される場合、BSTC信号はラッチされ、さらに、
特殊書込ブロックステータス命令が実行される。
作に対し修正要求のための続出しを出す場合、★VSI
入力は特殊機能を有する。それがトランザクションが完
了される(最後の★MRDYが容認されていない)前に
断定される場合、BSTC信号はラッチされ、さらに、
特殊書込ブロックステータス命令が実行される。
修正アクセスに対するメモリバス読出しのためのスレー
ブキャッシュの動作は、ICUマルチプロセッサ支持を
参照しながら後でまた説明される。
ブキャッシュの動作は、ICUマルチプロセッサ支持を
参照しながら後でまた説明される。
ICUと、書込同報通信動作と、メモリバスキャッシュ
命令アクセスとの好ましい実施例により、あと2細動作
が支持される。
命令アクセスとの好ましい実施例により、あと2細動作
が支持される。
モッドbレジスタ制御の下で、共有されたブロックに対
する書込ヒツトの場合にのみ、ICUにより書込同報通
信動作が開始される。書込同報通信と規則的な書込みと
の間の相違は、書込同報通信においてはメモリは更新さ
れないことである。
する書込ヒツトの場合にのみ、ICUにより書込同報通
信動作が開始される。書込同報通信と規則的な書込みと
の間の相違は、書込同報通信においてはメモリは更新さ
れないことである。
すべての他の点において、動作は書込アクセスに類似す
る。
る。
外部論理によりメモリバスキャッシュ命令アクセスがメ
モリバス上で開始され得る。ICUがバスマスタではな
い場合、★VSIの断定はメモリバス上のキャッシュ命
令トランザクションを引き起こす。トランザクションの
最初のサイクルの間、MWR信号と、MREQT信号と
、BSTC信号と、アドレスとがラッチされる。MWR
信号とMREQT信号とは命令を特定する。BSTC信
号は適切な命令のためにブロックステータスを特定する
。適切な命令のためのアドレスオペランドとしてアドレ
スが使用される。命令がデータオペランドを必要とする
場合、データは第2のサイクルの間ラッチされる。
モリバス上で開始され得る。ICUがバスマスタではな
い場合、★VSIの断定はメモリバス上のキャッシュ命
令トランザクションを引き起こす。トランザクションの
最初のサイクルの間、MWR信号と、MREQT信号と
、BSTC信号と、アドレスとがラッチされる。MWR
信号とMREQT信号とは命令を特定する。BSTC信
号は適切な命令のためにブロックステータスを特定する
。適切な命令のためのアドレスオペランドとしてアドレ
スが使用される。命令がデータオペランドを必要とする
場合、データは第2のサイクルの間ラッチされる。
ICUの好ましい実施例は、異なるキャッシュアクセス
に関して次の優先ルールに従う。
に関して次の優先ルールに従う。
1、 すべてのアクセスは先着順サービスでサービスさ
れる。
れる。
2、 第1のアクセスが完了する一方で、第2のアクセ
スがパイプラインで開始される。タグおよびメモリアレ
イは、サイクルごとに異なるアクセスをサービスし得る
。
スがパイプラインで開始される。タグおよびメモリアレ
イは、サイクルごとに異なるアクセスをサービスし得る
。
3.2個のアクセス、すなわち、プロセッサバス上の1
個とメモリバス上の1個が同時にタグアレイアクセスを
必要とする場合、プロセッサバスアクセスは、それが1
次(パイプライン化されないまたは継続されるバースト
)メモリアクセスである場合のみ、優先順位を有する。
個とメモリバス上の1個が同時にタグアレイアクセスを
必要とする場合、プロセッサバスアクセスは、それが1
次(パイプライン化されないまたは継続されるバースト
)メモリアクセスである場合のみ、優先順位を有する。
メモリバスアクセスはすべての他の場合において優先順
位を有する。
位を有する。
46 プロセッサバスアクセスへの応答は常にそれら
が受取られた順番にある。パイプライン化またはバース
ト継続アクセスがキャッシュにおいてヒツトする場合、
その応答は、1次アクセスが完了するまで遅延される。
が受取られた順番にある。パイプライン化またはバース
ト継続アクセスがキャッシュにおいてヒツトする場合、
その応答は、1次アクセスが完了するまで遅延される。
1次アクセスの応答が送られた後で、しかもそれが十分
に完了されている前に、パイプライン化またはバースト
継続は完了し得ることに注目されたい。これは、所要の
データがプロセッサへ送られてしまった後の、かつ何ら
かの特殊命令実行の際の再ロード動作のために、書込み
がメモリバス上で実行される前に1次書込アクセスに対
し起こる。
に完了されている前に、パイプライン化またはバースト
継続は完了し得ることに注目されたい。これは、所要の
データがプロセッサへ送られてしまった後の、かつ何ら
かの特殊命令実行の際の再ロード動作のために、書込み
がメモリバス上で実行される前に1次書込アクセスに対
し起こる。
ICU特殊レジスタがプロセッサ可能オプション選択お
よびステータス報告を適応させ得ることがここで当業者
に明らかになるべきである。キャッシュポリシーは、プ
ログラム可能オプションを用いることにより選択され得
る。キャッシュ書込ポリシーは、ライトスルー、コピー
バック、またはフレキシブルとして、1アクセスあたり
の基準でプログラムされ得る。書込割当てまたは非書込
割当てオプションが選択され得る。置換アルゴリズムは
、LRU、ランダム、または外部としてプログラムされ
得る。フレキシブルな先取りポリシーが選択され得る。
よびステータス報告を適応させ得ることがここで当業者
に明らかになるべきである。キャッシュポリシーは、プ
ログラム可能オプションを用いることにより選択され得
る。キャッシュ書込ポリシーは、ライトスルー、コピー
バック、またはフレキシブルとして、1アクセスあたり
の基準でプログラムされ得る。書込割当てまたは非書込
割当てオプションが選択され得る。置換アルゴリズムは
、LRU、ランダム、または外部としてプログラムされ
得る。フレキシブルな先取りポリシーが選択され得る。
リードスルーオプションが可能化され得る。十分な先取
りおよび読出動作を支持するために、4ワード読出バツ
フアが組入れられる。
りおよび読出動作を支持するために、4ワード読出バツ
フアが組入れられる。
先に示されたように、オプションビットはオプション選
択のために規定され、モッドaレジスタにストアされる
。
択のために規定され、モッドaレジスタにストアされる
。
先に示されたように、プリロード命令との比較により、
先取り動作が、それが必要とされる前に変数または命令
の取出しとして規定される。ICUは、いくつかのプロ
グラム可能先取りオプションを支持するためのハードウ
ェアを含んでいる。
先取り動作が、それが必要とされる前に変数または命令
の取出しとして規定される。ICUは、いくつかのプロ
グラム可能先取りオプションを支持するためのハードウ
ェアを含んでいる。
それはまた、先取りバッファとして使用されるメモリ読
出バッファを含んでいる。キャッシュアレイが更新のた
めに利用可能ではない場合は、先取りされたワードが先
取バッファに保管され得る。
出バッファを含んでいる。キャッシュアレイが更新のた
めに利用可能ではない場合は、先取りされたワードが先
取バッファに保管され得る。
次の先取りオプションの各々は、独立してまたはいずれ
の組合わせにおいても使用され得る。
の組合わせにおいても使用され得る。
先取りの簡単な形態は、1ワードよりも大きいサブブロ
ックサイズを用いることにより達成され得る。ICUは
ミスの場合にサブブロックに再ロードする。所要のワー
ドの同一ブロックにおけるワードは先取りされる。
ックサイズを用いることにより達成され得る。ICUは
ミスの場合にサブブロックに再ロードする。所要のワー
ドの同一ブロックにおけるワードは先取りされる。
モッドaレジスタは、信号アクセスミスに対しICUの
動作を制御する。
動作を制御する。
モッドaレジスタはまた、バーストモードアクセスの際
にミスに対しICU動作を制御する。バーストがプロセ
ッサにより中断される場合、キャッシュはメモリバスバ
ーストを停止する前に、より多くのワードを先取りし得
る。この場合、先取りは同一サブブロックまたは次のサ
ブブロックの終了まで続行し得る。
にミスに対しICU動作を制御する。バーストがプロセ
ッサにより中断される場合、キャッシュはメモリバスバ
ーストを停止する前に、より多くのワードを先取りし得
る。この場合、先取りは同一サブブロックまたは次のサ
ブブロックの終了まで続行し得る。
モッドaレジスタもまた、単一アクセスキャツシュヒツ
トおよびバーストアクセスキャツシュヒツトに対し先取
りオプションを可能化する。
トおよびバーストアクセスキャツシュヒツトに対し先取
りオプションを可能化する。
先取りに加えて、プロセッサ可能モッドaレジスタの制
御の下で、再ロード動作が規定される。
御の下で、再ロード動作が規定される。
再ロード動作は、最初のプロセッサバス動作に依存して
いる。それは単一アクセスおよびバーストモードアクセ
スの場合には異なっている。
いる。それは単一アクセスおよびバーストモードアクセ
スの場合には異なっている。
プロセッサバスシングルメモリ読出動作の際のキャッシ
ュミスの場合、開始および終了アドレスばかりでなく、
アドレスラップアラウンドまたはノーラップアラウンド
がモッドaレジスタにより制御される。
ュミスの場合、開始および終了アドレスばかりでなく、
アドレスラップアラウンドまたはノーラップアラウンド
がモッドaレジスタにより制御される。
プロセッサバスバーストモード読出アクセスの際のキャ
ッシュミスの場合に対し、再ロード動作のために、バー
ストモードアクセスがメモリバス上で始められる。再ロ
ード開始アドレスは常に、ミスされたワードのものであ
る。バースト終了アドレスはまた、モッドaレジスタに
より制御される。
ッシュミスの場合に対し、再ロード動作のために、バー
ストモードアクセスがメモリバス上で始められる。再ロ
ード開始アドレスは常に、ミスされたワードのものであ
る。バースト終了アドレスはまた、モッドaレジスタに
より制御される。
次に、ICUがマルチプロセッサ動作をどのようにして
支持するかについての詳細な説明へ写る前に、ICU書
込バッファとICU初期化およびリセット基準が明らか
にされる。
支持するかについての詳細な説明へ写る前に、ICU書
込バッファとICU初期化およびリセット基準が明らか
にされる。
ICUは40ケーシヨン書込バツフアを組入れている。
それは4個までの書込アクセス(アドレス、制御および
データ)をバッファし得る。書込バッファは、モッドa
・レジスタにおいてビットをセットすることにより不能
化され得る。
データ)をバッファし得る。書込バッファは、モッドa
・レジスタにおいてビットをセットすることにより不能
化され得る。
可能化されると、書込バッファはメモリバス上の書込ア
クセスをバッファするために使用される。
クセスをバッファするために使用される。
ライトスルーおよびライト同報通信アクセスで、4個の
個別の過通アクセスがバッファされ得る。
個別の過通アクセスがバッファされ得る。
書込みは、バスが利用可能になるまで書込バッファにお
いて待機する。これは、ライトスルーキャッシュに対し
ては、または多くの書込ブロードキャスト動作が存在す
る場合には、かなり性能を改良し得る。
いて待機する。これは、ライトスルーキャッシュに対し
ては、または多くの書込ブロードキャスト動作が存在す
る場合には、かなり性能を改良し得る。
書込バッファもまた、それがメモリへ書込まれる前に修
正されたブロックをバッファするために使用される。ミ
スの場合、修正されたブロックが置換のために選択され
る場合は、それは書込バッファに置かれる。ミスされた
サブブロックのための読出しは書込みの前に開始される
。この特徴は、にICUがプロセッサ要求に対しより迅
速に応答することを可能にする。
正されたブロックをバッファするために使用される。ミ
スの場合、修正されたブロックが置換のために選択され
る場合は、それは書込バッファに置かれる。ミスされた
サブブロックのための読出しは書込みの前に開始される
。この特徴は、にICUがプロセッサ要求に対しより迅
速に応答することを可能にする。
書込バッファが一杯である場合は、ICUは、メモリバ
スが必要とされない(読出ヒツトまたはコピーバック書
込ヒツト)限り、もう1個のキャッシュアクセスをなお
サービスし得る。メモリバスが別な書込動作のために必
要とされる場合は、キャッシュは書込用の書込バッファ
に1個の利用可能な空間が存在するまで持続する。すべ
ての他の要求は、書込バッファが空になった後でのみサ
ービスされる。これは、要求の正しい配列を保証するた
めに必要とされ、すなわちメモリ読出しの際のミスは、
更新されたメモリを読出すためにすべての書込みが実行
されるまで待機する。
スが必要とされない(読出ヒツトまたはコピーバック書
込ヒツト)限り、もう1個のキャッシュアクセスをなお
サービスし得る。メモリバスが別な書込動作のために必
要とされる場合は、キャッシュは書込用の書込バッファ
に1個の利用可能な空間が存在するまで持続する。すべ
ての他の要求は、書込バッファが空になった後でのみサ
ービスされる。これは、要求の正しい配列を保証するた
めに必要とされ、すなわちメモリ読出しの際のミスは、
更新されたメモリを読出すためにすべての書込みが実行
されるまで待機する。
書込バッファが不能化されると、書込アクセスはバッフ
ァされない。メモリバス上の書込動作は、バスが利用可
能になるとすぐに開始される。ICUは、メモリバスが
必要とされない(読出ヒツトまたはコピーパック書込ヒ
ツト)限り、もう1個のキャッシュアクセスをなおサー
ビスし得る。メモリバスが必要とされると、キャッシュ
は先の書込動作が完了されるまで持続する。
ァされない。メモリバス上の書込動作は、バスが利用可
能になるとすぐに開始される。ICUは、メモリバスが
必要とされない(読出ヒツトまたはコピーパック書込ヒ
ツト)限り、もう1個のキャッシュアクセスをなおサー
ビスし得る。メモリバスが必要とされると、キャッシュ
は先の書込動作が完了されるまで持続する。
初期化に関しては、ICUは電力が最初に付与されたと
きに初期化されなければならない。それはまた、必要な
場合には、時間的にいくらか後の点で初期化され得る。
きに初期化されなければならない。それはまた、必要な
場合には、時間的にいくらか後の点で初期化され得る。
ICUを初期化する2つの方法、すなわち、★RESE
Tを断定することまたはリセット命令を出すこと、が存
在する。この2つの方法は、ICUに厳密に同じ影響を
及ぼす。特殊な初期化シーケンスが、次のように、この
発明の好ましい実施例に従って実施される。
Tを断定することまたはリセット命令を出すこと、が存
在する。この2つの方法は、ICUに厳密に同じ影響を
及ぼす。特殊な初期化シーケンスが、次のように、この
発明の好ましい実施例に従って実施される。
1、 いずれの進行中のキャッシュ動作またはキャッシ
ュ命令も中断される。
ュ命令も中断される。
2、 メモリバス動作はいずれも中断される。
3、 チップ選択マツピングレジスタにストアされる
、チップ選択不能化ビットおよびメモリアクセス可能化
ビットチップ選択可能化ビットがリセットされる。
、チップ選択不能化ビットおよびメモリアクセス可能化
ビットチップ選択可能化ビットがリセットされる。
4、 命令レジスタにストアされる、命令およびオペラ
ンド妥当性を示すビットがリセ・ントされるる 5、 カウントレジスタにストアされる、命令カウント
妥当性を示すビットがリセットされる。
ンド妥当性を示すビットがリセ・ントされるる 5、 カウントレジスタにストアされる、命令カウント
妥当性を示すビットがリセットされる。
6、 ステータスレジスタのパリティエラー、メモリ
エラー、違法命令および保護違反ビットがリセットされ
る。
エラー、違法命令および保護違反ビットがリセットされ
る。
リードオンリメモリ可能化(HOME)を除くすべての
モッドaレジスタビットと、キャッシュが命令またはデ
ータキャッシュであるかどうかを示すビット(IDビッ
ト)がリセットされる。
モッドaレジスタビットと、キャッシュが命令またはデ
ータキャッシュであるかどうかを示すビット(IDビッ
ト)がリセットされる。
8、 すべてのモッドbレジスタビットがリセットされ
る。
る。
9、 すべての有効ビットがリセットされる。
次の条件は適当なリセット動作の間は維持されるべきで
ある。
ある。
16 システムにおけるすべてのICUデータキャッ
シュの★IREQ入力はLOWレベルに接続されるべき
である。すべての命令キャッシュの★IREQはプロセ
ッサの★IREQ出力に接続されるべきである。
シュの★IREQ入力はLOWレベルに接続されるべき
である。すべての命令キャッシュの★IREQはプロセ
ッサの★IREQ出力に接続されるべきである。
2、 リセットROMがメモリバスに置かれる場合、
唯一の命令キャッシュのDREQTlはHIGHレベル
に接続されるべきである。すべてのDREQTlは、リ
セットROMがプロセッサバスに送られる場合は、LO
Wレベルに接続されるべきである。
唯一の命令キャッシュのDREQTlはHIGHレベル
に接続されるべきである。すべてのDREQTlは、リ
セットROMがプロセッサバスに送られる場合は、LO
Wレベルに接続されるべきである。
3、 異なるICUのチップ選択マツピングレジスタは
、メモリアクセスおよびキャッシュ命令アクセスのため
に異なるアドレスに応答するようにプログラムされるべ
きである。これは、★C3EL入力を用いることにより
行なわれ得る。外部ハードウェアを必要としない簡単な
構成が可能である。異なるキャッシュの★C3EL入力
は、異なるアドレスビットに接続されかつ適当なアドレ
スを使用し得る。最初のレジスタプログミングが完了さ
れた後で、★C3EL入力は不能化され得る。
、メモリアクセスおよびキャッシュ命令アクセスのため
に異なるアドレスに応答するようにプログラムされるべ
きである。これは、★C3EL入力を用いることにより
行なわれ得る。外部ハードウェアを必要としない簡単な
構成が可能である。異なるキャッシュの★C3EL入力
は、異なるアドレスビットに接続されかつ適当なアドレ
スを使用し得る。最初のレジスタプログミングが完了さ
れた後で、★C3EL入力は不能化され得る。
4、 ICUレジスタのプログラミングはリセット
後の動作の最初のシーケンスになるべきである。ICU
が特殊なシステムに従って構成される前は、いかなるメ
モリ(命令ROMアクセスから除<)、Iloまたはコ
プロセッサアクセスも実施されるべきではない。
後の動作の最初のシーケンスになるべきである。ICU
が特殊なシステムに従って構成される前は、いかなるメ
モリ(命令ROMアクセスから除<)、Iloまたはコ
プロセッサアクセスも実施されるべきではない。
5、 データ転送制御器(DTC)に関連する援用され
ている同一継続出願において説明されるようなりTCが
システムに存在する場合は、モツドbレジスタはいずれ
かのDTCアクセスが実施される前にプログラムされる
べきである。DTCがプロセッサバスに送られる場合、
それはI10アドレスに応答するようにプログラムされ
るべきである(I CUはI10アクセスを無視するよ
うにプログラムされるべきである)。
ている同一継続出願において説明されるようなりTCが
システムに存在する場合は、モツドbレジスタはいずれ
かのDTCアクセスが実施される前にプログラムされる
べきである。DTCがプロセッサバスに送られる場合、
それはI10アドレスに応答するようにプログラムされ
るべきである(I CUはI10アクセスを無視するよ
うにプログラムされるべきである)。
ここでICUのマルチプロセッサ支持特徴に転じる。
キャッシュの観点から、マルチプロセッサ編成の主な問
題は、データ一貫性問題である。この問題が生じるのは
、1を越えるキャッシュが同一メモリ場所のコピーを含
み、それがキャッシュのうちの1個でそのプロセッサに
より修正される場合である。そのとき他のキャッシュは
データの新しくない(更新されていない)コピーを含む
。新規のICUアーキテクチャがこれらの問題を取扱う
。
題は、データ一貫性問題である。この問題が生じるのは
、1を越えるキャッシュが同一メモリ場所のコピーを含
み、それがキャッシュのうちの1個でそのプロセッサに
より修正される場合である。そのとき他のキャッシュは
データの新しくない(更新されていない)コピーを含む
。新規のICUアーキテクチャがこれらの問題を取扱う
。
新規のICUに組入れられたマルチプロセッサ支持構成
は他のマルチプロセッサキャッシュ環境においても同様
に適用され得ることが当業者により認められるであろう
。
は他のマルチプロセッサキャッシュ環境においても同様
に適用され得ることが当業者により認められるであろう
。
ICUマルチプロセッサ支持の陰の基本的哲学は、高性
能および高能率マルチプロセッサキャ、ソシュシステム
を可能にするために広範囲な特徴を含むことである。こ
の特徴は、ICUがマルチプロセッサシステム編成に最
小限の制約を課すように、十分な柔軟性を含む。マルチ
プロセッサ支持特徴を利用するための適当な方法の選択
は簡単である。それは、オンチップ特殊レジスタにおい
てオプションビットをプログラムすることによりソフト
ウェア制御の下で行なわれる。
能および高能率マルチプロセッサキャ、ソシュシステム
を可能にするために広範囲な特徴を含むことである。こ
の特徴は、ICUがマルチプロセッサシステム編成に最
小限の制約を課すように、十分な柔軟性を含む。マルチ
プロセッサ支持特徴を利用するための適当な方法の選択
は簡単である。それは、オンチップ特殊レジスタにおい
てオプションビットをプログラムすることによりソフト
ウェア制御の下で行なわれる。
ここで、第4図に対し参照がなされる。
典型的な簡略化され共有されるバスマルチプロセッサシ
ステム図が第4図に示されている。2個またはそれ以上
のプロセッサ群は同一メモリバスを共有し得る(図に2
個が示されている)。各プロセッサ群は、1個のプロセ
ッサおよび2個のICUからなる。一方のICUは命令
キャッシュのために使用され、他方はデータキャッシュ
のために使用される。プロセッサアドレスバス(A)は
、2個のICUのアドレスバス(A)に接続された状態
で示されている。プロセッサ命令バス(1)は命令キャ
ッシュのキャッシュバス(CB)に接続される。プロセ
ッサデータバス(D)はデータキャッシュのキャッシュ
バス(CB)に接続される。ICUのメモリバス(ME
MAD)は双方とも、共有されたメモリバスに接続され
る。この基本図の多くの変更例が、この発明の範囲また
は精神から逸脱することなしに可能である。
ステム図が第4図に示されている。2個またはそれ以上
のプロセッサ群は同一メモリバスを共有し得る(図に2
個が示されている)。各プロセッサ群は、1個のプロセ
ッサおよび2個のICUからなる。一方のICUは命令
キャッシュのために使用され、他方はデータキャッシュ
のために使用される。プロセッサアドレスバス(A)は
、2個のICUのアドレスバス(A)に接続された状態
で示されている。プロセッサ命令バス(1)は命令キャ
ッシュのキャッシュバス(CB)に接続される。プロセ
ッサデータバス(D)はデータキャッシュのキャッシュ
バス(CB)に接続される。ICUのメモリバス(ME
MAD)は双方とも、共有されたメモリバスに接続され
る。この基本図の多くの変更例が、この発明の範囲また
は精神から逸脱することなしに可能である。
この発明の好ましい実施例によれば、2個のブロックス
テータスビットと4個の有効ビットは各キャッシュブロ
ックと関連することが思い出されるべきである。有効ビ
ットが、ブロックにおけるワードの妥当性を示す。各有
効ビットは1ワードに対応する。少なくとも1個の有効
なビットがセットされる場合、ブロックは有効であり、
ブロックステータスビットは有効なステータスを示す。
テータスビットと4個の有効ビットは各キャッシュブロ
ックと関連することが思い出されるべきである。有効ビ
ットが、ブロックにおけるワードの妥当性を示す。各有
効ビットは1ワードに対応する。少なくとも1個の有効
なビットがセットされる場合、ブロックは有効であり、
ブロックステータスビットは有効なステータスを示す。
すべての有効なビットがリセットされる場合、ブロック
は有効でないステータスにあり、さらに、ブロックステ
ータスビットは不適切である。ブロックステータスビッ
トは、共有されかつ修正されたビットと呼ばれる。共有
されたビットは、ブロックが1を越えるプロセッサによ
り共有されるかどうか、または1を越えるキャッシュに
存在するかどうかを示す。修正されたビットは、ブロッ
クがメインメモリに関して修正されるかどうかを示す。
は有効でないステータスにあり、さらに、ブロックステ
ータスビットは不適切である。ブロックステータスビッ
トは、共有されかつ修正されたビットと呼ばれる。共有
されたビットは、ブロックが1を越えるプロセッサによ
り共有されるかどうか、または1を越えるキャッシュに
存在するかどうかを示す。修正されたビットは、ブロッ
クがメインメモリに関して修正されるかどうかを示す。
2個のビットは独立しており、有効なブロックが次のス
テータスで指定され得る。
テータスで指定され得る。
ブロックステータスビット
値(共有され、
修正された) 意 味
00 排他的で修正されない
01 排他的で修正される
10 共有され修正されない
11 共有され修正される
キャッシュ不能データは、キャッシュされないデータ変
数であることがまた思い出されるべきである。キャッシ
ュ不能プロセッサバスアゲセスがICU、ASTC入力
に対し示される。このアクセスで、キャッシュは所要の
データを探索されない。メモリアクセスがメモリにおけ
るデータの読出しまたは書込みのために開始される。こ
のデータのためにキャッシュにおいてブロックが割当て
られない0キヤツシユ不能データはアクセス基準により
アクセスの際に規定され得る。通常・ASTC入力はプ
ロセッサのMMUプログラム可能(MPCM)出力に接
続される。この場合、キャッシュ不能データがMMUペ
ージ基準に基づいて指定される。キャッシュ不能データ
はキャッシュ不能とシステムによって指定される場所に
置かれるべきである。データ一貫性問題を解決するため
の1つの方法は、キャッシュ不能として共有された変数
を指定することである。
数であることがまた思い出されるべきである。キャッシ
ュ不能プロセッサバスアゲセスがICU、ASTC入力
に対し示される。このアクセスで、キャッシュは所要の
データを探索されない。メモリアクセスがメモリにおけ
るデータの読出しまたは書込みのために開始される。こ
のデータのためにキャッシュにおいてブロックが割当て
られない0キヤツシユ不能データはアクセス基準により
アクセスの際に規定され得る。通常・ASTC入力はプ
ロセッサのMMUプログラム可能(MPCM)出力に接
続される。この場合、キャッシュ不能データがMMUペ
ージ基準に基づいて指定される。キャッシュ不能データ
はキャッシュ不能とシステムによって指定される場所に
置かれるべきである。データ一貫性問題を解決するため
の1つの方法は、キャッシュ不能として共有された変数
を指定することである。
プロセッサバスメモリアクセスがまた、インターロック
アクセスとして特定され得る。これは、I CU*LO
CK入力をセットすることにより行なわれる。インター
ロックアクセスはモッドbレジスタにより制御され、キ
ャッシュ可能またはキャッシュ不能アクセスとして示さ
れ得る。
アクセスとして特定され得る。これは、I CU*LO
CK入力をセットすることにより行なわれる。インター
ロックアクセスはモッドbレジスタにより制御され、キ
ャッシュ可能またはキャッシュ不能アクセスとして示さ
れ得る。
マルチプロセッサ環境においては、インターロック変数
は同期化と、同期化された通信のために使用され得る。
は同期化と、同期化された通信のために使用され得る。
これらの変数は同期化された方法でアクセスされる。そ
れらは所与の時間に唯一のプロセッサにより書込まれ得
る。インターロックアクセスに対するICU支持の詳細
な説明が後で明らかにされる。
れらは所与の時間に唯一のプロセッサにより書込まれ得
る。インターロックアクセスに対するICU支持の詳細
な説明が後で明らかにされる。
ICUはフリキシプルなライトスルーおよびコピーバッ
ク書込ポリシーを支持する。これらの書込ポリシーは、
全体的にかまたはアクセスごとに指定され得る。モッド
aレジスタは全体的な書込ポリシーを制御する。それは
フレキシブルなライトスルーまはたコピーバックポリシ
ーを特定し得る。ASTC人力は、アクセスごとに書込
ポリシーを規定する。アクセスは、排他的ライトスルー
、排他的コピーバック、または共有された点として指定
され得る。キャツシュヒツトの場合、キャッシュにおい
てASTC入力が共有されたビット割当てとブロックス
テータスが共有されるビットとの間に矛盾が存在する場
合は、書込動作はモツドbレジスタにおけるプロセッサ
共有ビット制御(P S B C)上の値により制御さ
れる。PSBCが0である場合、ブロックステータス共
有ビットは影響を及ぼされず、書込ポリシーはブロック
ステータスに従って決定される。PSBCが1である場
合、ブロックステータス共有ビットはASTC入力に従
って指定され、書込ポリシーはそれに応じて決定される
。
ク書込ポリシーを支持する。これらの書込ポリシーは、
全体的にかまたはアクセスごとに指定され得る。モッド
aレジスタは全体的な書込ポリシーを制御する。それは
フレキシブルなライトスルーまはたコピーバックポリシ
ーを特定し得る。ASTC人力は、アクセスごとに書込
ポリシーを規定する。アクセスは、排他的ライトスルー
、排他的コピーバック、または共有された点として指定
され得る。キャツシュヒツトの場合、キャッシュにおい
てASTC入力が共有されたビット割当てとブロックス
テータスが共有されるビットとの間に矛盾が存在する場
合は、書込動作はモツドbレジスタにおけるプロセッサ
共有ビット制御(P S B C)上の値により制御さ
れる。PSBCが0である場合、ブロックステータス共
有ビットは影響を及ぼされず、書込ポリシーはブロック
ステータスに従って決定される。PSBCが1である場
合、ブロックステータス共有ビットはASTC入力に従
って指定され、書込ポリシーはそれに応じて決定される
。
共有された書込アクセスの場合、ライトスルーまたはラ
イト回報通信アクセスは常にメモリバス上で実施される
。この場合、モッドbレジスタにおける書込共有ヒツト
制御(WSHC)フィールドはICU動作を制御し、書
込ポリシーフィールドは制御しない。
イト回報通信アクセスは常にメモリバス上で実施される
。この場合、モッドbレジスタにおける書込共有ヒツト
制御(WSHC)フィールドはICU動作を制御し、書
込ポリシーフィールドは制御しない。
マルチプロセッサキャッシュ環境においては、ライトス
ルーポリシーはコピーバックポリシーはど問題を有さな
い。ライトスルーが利用される場合、メモリは常にデー
タの更新されたバージョンを含んでいる。ライトスルー
アクセスはまた、それら自体のコピーを無効にするため
に他のキャッシュにより使用され得る。
ルーポリシーはコピーバックポリシーはど問題を有さな
い。ライトスルーが利用される場合、メモリは常にデー
タの更新されたバージョンを含んでいる。ライトスルー
アクセスはまた、それら自体のコピーを無効にするため
に他のキャッシュにより使用され得る。
プロセッサバスキャッシュ命令は、マルチプロセッサ環
境においてキャッシュを制御するためのシステムにより
使用され得る。古いデータを無効にするために、無効に
せよの命令が利用され得る。
境においてキャッシュを制御するためのシステムにより
使用され得る。古いデータを無効にするために、無効に
せよの命令が利用され得る。
より複雑なソフトウェア制御のマルチプロセッサキャッ
シュにおいては、ブロックステータスの読出しおよび書
込みと、メモリ更新と、メモリバスでキャッシュされた
データを送ることのために、他の命令が使用され得る。
シュにおいては、ブロックステータスの読出しおよび書
込みと、メモリ更新と、メモリバスでキャッシュされた
データを送ることのために、他の命令が使用され得る。
ICUのさらなるマルチプロセッサ支持特徴が「バスウ
ォッチング」である。新規のECUはメモリバスアドレ
スを見張ることが可能であり、それらがタグアレイにお
けるアドレスと一致するかどうかを検査する。これは、
プロセッサバスキャッシュアクセスに対し透明に行なわ
れる。モッドbレジスタにおける読出バス見張り可能化
情報は、メモリバス読出アクセスに対するバスウォッチ
ング能力を制御(可能化または不能化)する。モッドb
レジスタにおける書込バス見張り可能化情報は、メモリ
バス書込アクセスに対し同じことを行なう。可能化され
ると、バスはICUがバススレーブである場合のみ見張
られる。アドレス一致の場合、ICUはモッドbレジス
タにおける読出−致制御および書込一致制御情報により
制御されるような動作を実施する。
ォッチング」である。新規のECUはメモリバスアドレ
スを見張ることが可能であり、それらがタグアレイにお
けるアドレスと一致するかどうかを検査する。これは、
プロセッサバスキャッシュアクセスに対し透明に行なわ
れる。モッドbレジスタにおける読出バス見張り可能化
情報は、メモリバス読出アクセスに対するバスウォッチ
ング能力を制御(可能化または不能化)する。モッドb
レジスタにおける書込バス見張り可能化情報は、メモリ
バス書込アクセスに対し同じことを行なう。可能化され
ると、バスはICUがバススレーブである場合のみ見張
られる。アドレス一致の場合、ICUはモッドbレジス
タにおける読出−致制御および書込一致制御情報により
制御されるような動作を実施する。
メモリバス読出しの際の一致の場合、★HIT信号はI
CUにより断定される。共有されたブロックステータス
ビットは、ブロックが別なキャッシュにより潜在的に取
出されるのでセットされる。
CUにより断定される。共有されたブロックステータス
ビットは、ブロックが別なキャッシュにより潜在的に取
出されるのでセットされる。
モッドbレジスタは、データ介入動作とブロックステー
タスが修正されたビット割当てとを制御する。そのオプ
ションは、データ介入ではないのと、データ介入(修正
されたビットが未変化である)と、さらにデータ介入(
修正されたビットがリセットされる)である。
タスが修正されたビット割当てとを制御する。そのオプ
ションは、データ介入ではないのと、データ介入(修正
されたビットが未変化である)と、さらにデータ介入(
修正されたビットがリセットされる)である。
データ介入が不能化されるときには、別なマスクにより
読出されるメモリバス上の一致の場合には、ICUは★
HIT信号を断定するが、データを駆動しない。ブロッ
クステータスが修正された情報は変えられない。データ
介入が可能化されるとき、メモリバス読出しに対し別な
マスクにより一致が見い出され、かつブロックが修正さ
れる場合、ICUが★DI出力を断定し、かつメモリバ
スで所要のデータを供給する。ブロックステータスが修
正されたビットは未変化であるかまたはリセットされる
かのいずれかである。
読出されるメモリバス上の一致の場合には、ICUは★
HIT信号を断定するが、データを駆動しない。ブロッ
クステータスが修正された情報は変えられない。データ
介入が可能化されるとき、メモリバス読出しに対し別な
マスクにより一致が見い出され、かつブロックが修正さ
れる場合、ICUが★DI出力を断定し、かつメモリバ
スで所要のデータを供給する。ブロックステータスが修
正されたビットは未変化であるかまたはリセットされる
かのいずれかである。
修正用の読出しのアクセスの際の一致の場合には、対応
するワードはスレーブキャッシュにより無効にされる。
するワードはスレーブキャッシュにより無効にされる。
すべての他の点で、スレーブキャッシュ動作が規則的な
読出アクセスの際の一致の場合に類似する。
読出アクセスの際の一致の場合に類似する。
メモリバスバーストモードアクセスで、最初のアドレス
はラッチされる。アドレスはすべての単一転送の間スレ
ーブキャッシュにおいて増分および検査される。一致の
場合のスレーブキャッシュ動作は、単一アクセス一致に
類似する。
はラッチされる。アドレスはすべての単一転送の間スレ
ーブキャッシュにおいて増分および検査される。一致の
場合のスレーブキャッシュ動作は、単一アクセス一致に
類似する。
読出しのためのバスウォッチングは、後で詳細に説明さ
れるべきデータ一貫性所有権機構の支持において不可欠
である。
れるべきデータ一貫性所有権機構の支持において不可欠
である。
いくつかの所有権機構によりデータ介入オプションが必
要とされる。それらの機構では、メモリはそれを支持す
るように設計されるべきである。
要とされる。それらの機構では、メモリはそれを支持す
るように設計されるべきである。
★DI信号は、アクセスの最初のサイクルの間マスタキ
ャッシュによりプリチャージされる。プリチャージされ
たHIGH値を保持するために★DI信号の際には外部
プルアップレジスタが置かれるべきである。データ介入
動作が実施される場合は、★Dr信号はスレーブキャッ
シュによりディスチャージされる。この場合、データは
メモリにより供給されるべきではなく、さらに、読出ア
クセスはメモリにおいてキャンセルされるべきである。
ャッシュによりプリチャージされる。プリチャージされ
たHIGH値を保持するために★DI信号の際には外部
プルアップレジスタが置かれるべきである。データ介入
動作が実施される場合は、★Dr信号はスレーブキャッ
シュによりディスチャージされる。この場合、データは
メモリにより供給されるべきではなく、さらに、読出ア
クセスはメモリにおいてキャンセルされるべきである。
★DI出力は、アドレスがメモリバス上に提示された後
2サイクル有効であることに注目されたい。メモリはこ
れらのサイクルの間応答不能である。
2サイクル有効であることに注目されたい。メモリはこ
れらのサイクルの間応答不能である。
メモリバス書込みまたは書込み回報通信の際の符合の場
合、★HIT信号は断定される。
合、★HIT信号は断定される。
バーストモード書込アクセスで、最初のアドレスはラッ
チされる。すべての信号データ転送の間スレーブキャッ
シュにおいてはアドレスは増分および検査される、一致
の場合のスレーブキャッシュ動作は、単一アクセス一致
に類似する。
チされる。すべての信号データ転送の間スレーブキャッ
シュにおいてはアドレスは増分および検査される、一致
の場合のスレーブキャッシュ動作は、単一アクセス一致
に類似する。
書込みのためのバスウォッチングは、大半のデータ一貫
性機構の支持に際には不可欠である。
性機構の支持に際には不可欠である。
ブロックステータスが共有されるビットはどのようにし
て割当てられるかについての説明がここで明らかにされ
る。
て割当てられるかについての説明がここで明らかにされ
る。
ブロックステータスが共有されるビットは、ソフトウェ
ア制御かハードウェア制御のいずれかにより割当てられ
得る。ソフトウェア制御で、プロセッサはASTC入力
を用いることにより共有されたビットを割当て得る。こ
れらの入力は、アクセス基準によりアクセスの際に共有
されたビット割当てを規定する。アクセスは、排他的ラ
イトスルー、排他的コピーバック、または共有された、
として割当てられ得る。通常、ASTC入力はプロセッ
サMPCM信号に接続され、それらはMMUユーザプロ
グラム可能ビットに従ってドライブされる。共有された
かつ排他的な変数は共有されたまたは排他的なページに
置かれ、さらに、ページに対するユーザプログラム可能
ビットはそれに応じて割当てられる。モッドbレジスタ
(のPSBCビットの状態に依存して(先に言及された
)、すべてのプロセッサアクセス(PSBC−1)に対
し、またはキャッシュミス(PSBC−0)の場合に対
してのみ、共有されたビットは修正され得る。
ア制御かハードウェア制御のいずれかにより割当てられ
得る。ソフトウェア制御で、プロセッサはASTC入力
を用いることにより共有されたビットを割当て得る。こ
れらの入力は、アクセス基準によりアクセスの際に共有
されたビット割当てを規定する。アクセスは、排他的ラ
イトスルー、排他的コピーバック、または共有された、
として割当てられ得る。通常、ASTC入力はプロセッ
サMPCM信号に接続され、それらはMMUユーザプロ
グラム可能ビットに従ってドライブされる。共有された
かつ排他的な変数は共有されたまたは排他的なページに
置かれ、さらに、ページに対するユーザプログラム可能
ビットはそれに応じて割当てられる。モッドbレジスタ
(のPSBCビットの状態に依存して(先に言及された
)、すべてのプロセッサアクセス(PSBC−1)に対
し、またはキャッシュミス(PSBC−0)の場合に対
してのみ、共有されたビットは修正され得る。
ハードウェア制御で、共有されたビットは★HIT信号
を用いることにより、またはメモリバス上の特殊目的論
理および書込ブロックステータスメモリハスキャッシュ
命令を用いることにより、共在されたビットは割当てら
れ得る。読出および書込アクセスの際の★HrT信号使
用は、モッドbレジスタの外部の共有されたビット制御
(ESBC)フィールドにより制御される。
を用いることにより、またはメモリバス上の特殊目的論
理および書込ブロックステータスメモリハスキャッシュ
命令を用いることにより、共在されたビットは割当てら
れ得る。読出および書込アクセスの際の★HrT信号使
用は、モッドbレジスタの外部の共有されたビット制御
(ESBC)フィールドにより制御される。
マスクキャッシュが★HIT信号を使用する場合には、
それはメモリバスアクセスの最初のサイクルの間それを
プリチャージする。次に、★H1−T信号は3状態に置
かれる。プリチャージHIGH値を保持するために、外
部プルアップレジスタが★HIT信号に置かれるべきで
ある。スレーブキャッシュは、それらがそれらのタグバ
ッファにおいて一致を見い出す場合はそれをディスチャ
ージする。どちらが後にせよ、★MRDYが断定される
ときか、またはメモリバスアドレスサイクルの2サイク
ル後に、★HIT信号はマスクキャッシュによりラッチ
される。★HITが断定される場合、変数はまた他のキ
ャッシュにも存在し、さらに、ブロックは共有されたス
テータスで割当てられる。★HIT入力が割当てられな
い場合、変数はいずれのキャッシュにも存在せず、さら
に、ブロックは排他的ステータスで割当てられる。
それはメモリバスアクセスの最初のサイクルの間それを
プリチャージする。次に、★H1−T信号は3状態に置
かれる。プリチャージHIGH値を保持するために、外
部プルアップレジスタが★HIT信号に置かれるべきで
ある。スレーブキャッシュは、それらがそれらのタグバ
ッファにおいて一致を見い出す場合はそれをディスチャ
ージする。どちらが後にせよ、★MRDYが断定される
ときか、またはメモリバスアドレスサイクルの2サイク
ル後に、★HIT信号はマスクキャッシュによりラッチ
される。★HITが断定される場合、変数はまた他のキ
ャッシュにも存在し、さらに、ブロックは共有されたス
テータスで割当てられる。★HIT入力が割当てられな
い場合、変数はいずれのキャッシュにも存在せず、さら
に、ブロックは排他的ステータスで割当てられる。
この方法は、いくつかの所有権機構において使用される
。それは、共有されたステータスが変数の正確な状態を
反映することを保証する。それは、それが別なキャッシ
ュに存在する場合のみ共有される。★HIT信号の使用
に関連する性能価格が存在することに注目されたい。I
CUは、すべての他のキャッシュが応答するまで、2サ
イクルの間待たなければならない。共有されたビットが
修正されなければならない場合は、特殊内部キャッシュ
アレイアクセスがまた必要とされる。これは、このオプ
ションを選択する前に、利点に反して考慮されるべきで
ある。
。それは、共有されたステータスが変数の正確な状態を
反映することを保証する。それは、それが別なキャッシ
ュに存在する場合のみ共有される。★HIT信号の使用
に関連する性能価格が存在することに注目されたい。I
CUは、すべての他のキャッシュが応答するまで、2サ
イクルの間待たなければならない。共有されたビットが
修正されなければならない場合は、特殊内部キャッシュ
アレイアクセスがまた必要とされる。これは、このオプ
ションを選択する前に、利点に反して考慮されるべきで
ある。
先に説明された書込ブロックステータスメモリバスキャ
ッシュ命令は、ブロックステータスが共Hされたビット
に対し特殊なステータスを書込むために使用され得る。
ッシュ命令は、ブロックステータスが共Hされたビット
に対し特殊なステータスを書込むために使用され得る。
この命令は、共有されたビットのフレキシブルな制御の
ために外部論理により使用され得る。
ために外部論理により使用され得る。
上記3つの方法の間での共有されたブロック割当てに関
する矛盾の場合には、この発明の好ましい実施例におい
ては、次の優先順位に従って動作が実施される。
する矛盾の場合には、この発明の好ましい実施例におい
ては、次の優先順位に従って動作が実施される。
1、 書込ブロックステータス命令
2、 ★HIT入力制御。
3、 ASTC入力制御。
たとえば、ブロックが排他的であるとしてASTC入力
により割当てらる場合、メモリバスアクセスが必要とさ
れる。★HIT入カ使用は可能化され、それはブロック
が排他的であることを示す。
により割当てらる場合、メモリバスアクセスが必要とさ
れる。★HIT入カ使用は可能化され、それはブロック
が排他的であることを示す。
書込ブロックステータス命令はまた、メモリアクセスの
間使用され、かつ共有されたステータスを割当てる。ブ
ロックは最後には共有されたステータスで終わる。
間使用され、かつ共有されたステータスを割当てる。ブ
ロックは最後には共有されたステータスで終わる。
共有されたブロック割当ての異なる方法とそれらの組合
わせは、新規のICUにより支持されるすべてのマルチ
プロセッサキャッシュシステムの実現のために使用され
る。
わせは、新規のICUにより支持されるすべてのマルチ
プロセッサキャッシュシステムの実現のために使用され
る。
次に、書込ヒツトが共有されたブロックに対し起こる場
合のICU動作が説明される。
合のICU動作が説明される。
書込アクセスが共有されたブロックに向けられ、かつそ
れがキャッシュにおいてヒツトする場合、メモリバス上
で特殊な動作が実施されるべきである。システムにおけ
る他のキャッシュは、共用されたデータ変数が修正され
たという事実に気がつくべきである。それらのコピーは
、共有された変数の現在のバージョンを反映するように
、無効がまたは更新のいずれかがなされるべきである。
れがキャッシュにおいてヒツトする場合、メモリバス上
で特殊な動作が実施されるべきである。システムにおけ
る他のキャッシュは、共用されたデータ変数が修正され
たという事実に気がつくべきである。それらのコピーは
、共有された変数の現在のバージョンを反映するように
、無効がまたは更新のいずれかがなされるべきである。
メインメモリは、書込まれるかまたは書込まれないかの
いずれかが行なわれ得る。マスクキャッシュのブロック
ステータスはそれに応じて影響を及ぼされる。共有され
たブロックに対する書込ヒットの際のICU動作は、モ
ッドbレジスタにおける書込共有ヒツト制御(WSHC
)フィールドにより制御される。1つのコード化機構は
次のとおりである。
いずれかが行なわれ得る。マスクキャッシュのブロック
ステータスはそれに応じて影響を及ぼされる。共有され
たブロックに対する書込ヒットの際のICU動作は、モ
ッドbレジスタにおける書込共有ヒツト制御(WSHC
)フィールドにより制御される。1つのコード化機構は
次のとおりである。
WSHCマスタキャ スレーブキャ 新しいブロワL
ツシュ動作 ツシュ動作 クスデータス00 ライト
スルー 無効にする 排他的で修正されない 01 ライト同報 無効にする 排他的で修正通信
される 10 ライトスルー 更新する 共有され修正されな
い 11 ライト同報 更新する 共有され修正通信
される WSHC−00の場合、ICUは共有されたブロックに
対するいずれの書込HITもライトスルーする。メモリ
は更新され、他のキャッシュは無効にされる。ブロック
は排他的で修正されないステータスで割当てられる。ブ
ロックが排他的になるので、同一ブロックへのさらなる
書込みはキャッシュにおいてのみ書込まれ得る。共有さ
れた変数が他のプロセッサにより必要とされる前に1個
のプロセッサにより何度も書込まれる場合は、この機構
は有効である。
ツシュ動作 ツシュ動作 クスデータス00 ライト
スルー 無効にする 排他的で修正されない 01 ライト同報 無効にする 排他的で修正通信
される 10 ライトスルー 更新する 共有され修正されな
い 11 ライト同報 更新する 共有され修正通信
される WSHC−00の場合、ICUは共有されたブロックに
対するいずれの書込HITもライトスルーする。メモリ
は更新され、他のキャッシュは無効にされる。ブロック
は排他的で修正されないステータスで割当てられる。ブ
ロックが排他的になるので、同一ブロックへのさらなる
書込みはキャッシュにおいてのみ書込まれ得る。共有さ
れた変数が他のプロセッサにより必要とされる前に1個
のプロセッサにより何度も書込まれる場合は、この機構
は有効である。
WSHC−01の場合、JCUはメモリバス上で書込同
報通信トランザクションを利用する。メモリは更新され
ず、他のキャッシュが無効にされる。ブロックは排他的
で修正されるステータスが割当てられる。ブロックは排
他的になるので、同一ブロックへのさらなる書込みはキ
ャッシュにおいてのみ書込まれ得る。メモリが更新され
ないので、修正されるビットはセットされる。別なマス
クがこのブロックを読出そうとする場合、データ介入オ
プションは最新の値を供給するために可能化されるべき
である。
報通信トランザクションを利用する。メモリは更新され
ず、他のキャッシュが無効にされる。ブロックは排他的
で修正されるステータスが割当てられる。ブロックは排
他的になるので、同一ブロックへのさらなる書込みはキ
ャッシュにおいてのみ書込まれ得る。メモリが更新され
ないので、修正されるビットはセットされる。別なマス
クがこのブロックを読出そうとする場合、データ介入オ
プションは最新の値を供給するために可能化されるべき
である。
WSHC−10の場合、ICUは共有されたブロックに
どのような書込ヒツトをもライトスルーする。メモリは
更新され、他のキャッシュも更新される。ESBCが書
込アクセスに対し可能化されない場合、ブロックは共有
され修正されないステータスを割当てられる。ESBC
が書込アクセスに対し可能化される場合、ブロックは、
★HIT入力に従って、排他的で修正されないステータ
スかまたは共有され修正されないステータスを割当てら
れる。この機構においては、すべてのキャッシュは、共
有されたブロックに対する各書込のためにメモリバス書
込トランザクションを費やすることにおいて、すべての
キャッシュは同期化された状態で維持される。それは、
共有される変数が他のプロセッサにより必要とされる前
に1個のプロセッサにより何度も書込まれない場合に有
効である。
どのような書込ヒツトをもライトスルーする。メモリは
更新され、他のキャッシュも更新される。ESBCが書
込アクセスに対し可能化されない場合、ブロックは共有
され修正されないステータスを割当てられる。ESBC
が書込アクセスに対し可能化される場合、ブロックは、
★HIT入力に従って、排他的で修正されないステータ
スかまたは共有され修正されないステータスを割当てら
れる。この機構においては、すべてのキャッシュは、共
有されたブロックに対する各書込のためにメモリバス書
込トランザクションを費やすることにおいて、すべての
キャッシュは同期化された状態で維持される。それは、
共有される変数が他のプロセッサにより必要とされる前
に1個のプロセッサにより何度も書込まれない場合に有
効である。
WSH−11の場合、ICU同報通信は共有されたブロ
ックにどのような書込ヒツトをも書込む。
ックにどのような書込ヒツトをも書込む。
メモリは更新されず、他のキャッシュは更新される。も
しESBCが書込アクセスで不能化されないなら、ブロ
ックは共有され修正されたステータスが割当てられる。
しESBCが書込アクセスで不能化されないなら、ブロ
ックは共有され修正されたステータスが割当てられる。
もしESBCが書込アクセスで可能化されるなら、ブロ
ックは★HIT入力に従って排他的修正されたかまたは
共有されて修正されたステータスが割当てられる。この
機構においては、すべてのキャッシュが、共有されたブ
ロックに対する各書込みのためのメモリバスを書込トラ
ンザクションを費やして同期化された状態に維持される
。それは、共有される変数が他のプロセッサにより必要
とされる前に1個のプロセッサにより何度も書込まれな
い場合に有効である。
ックは★HIT入力に従って排他的修正されたかまたは
共有されて修正されたステータスが割当てられる。この
機構においては、すべてのキャッシュが、共有されたブ
ロックに対する各書込みのためのメモリバスを書込トラ
ンザクションを費やして同期化された状態に維持される
。それは、共有される変数が他のプロセッサにより必要
とされる前に1個のプロセッサにより何度も書込まれな
い場合に有効である。
メモリは更新されないので、修正されたビットはセット
される。別なマスクがこのブロックを読出そうとする場
合、最新の値を供給するためにデータ介入オプションは
可能化されるべきである。
される。別なマスクがこのブロックを読出そうとする場
合、最新の値を供給するためにデータ介入オプションは
可能化されるべきである。
WSHCオプションは異なる所有権機構のために使用さ
れる。それらはまた、他のマルチプロセッサキャッシュ
システムのために使用され得る。
れる。それらはまた、他のマルチプロセッサキャッシュ
システムのために使用され得る。
書込割当てを有するコピーバック書込ミスのためのIC
Uメモリバス動作は、モッドbレジスタ上の書込ミスメ
モリアクセス制御(WMMC) ビットにより制御され
る。それは、書込割当てを有さないライトスルーアクセ
スまたはコピーバックアクセスには影響を及はさない。
Uメモリバス動作は、モッドbレジスタ上の書込ミスメ
モリアクセス制御(WMMC) ビットにより制御され
る。それは、書込割当てを有さないライトスルーアクセ
スまたはコピーバックアクセスには影響を及はさない。
WMMC−1の場合、、ICUは、キャッシュ書込アク
セスが後に続く、所要のサブブロックを取出すためにメ
モリバス上の読出アクセスを使用する。このアクセスは
、別々のキャッシュ書込動作として取扱われる。
セスが後に続く、所要のサブブロックを取出すためにメ
モリバス上の読出アクセスを使用する。このアクセスは
、別々のキャッシュ書込動作として取扱われる。
それは常にヒツトし、キャッシュへと書込まれる。
ブロックが共有される場合、メモリバス動作はモッドb
レジスタのWSHCフィールドに従って実施される。W
MMC−0の場合、修正トランザクションのための読出
しは所要のサブブロックを取出すためにメモリバス上で
使用される。スレーブキャッシュは、一致の場合、ブロ
ックのそれらのコピーを無効にする。書込みはどのよう
なメモリバス動作もなしにキャッシュにおいて実施され
る。
レジスタのWSHCフィールドに従って実施される。W
MMC−0の場合、修正トランザクションのための読出
しは所要のサブブロックを取出すためにメモリバス上で
使用される。スレーブキャッシュは、一致の場合、ブロ
ックのそれらのコピーを無効にする。書込みはどのよう
なメモリバス動作もなしにキャッシュにおいて実施され
る。
WMMCオプションは、異なる所有権機構のために使用
される。それらはまた、他のマルチプロセッサキャッシ
ュシステムのために使用され得る。
される。それらはまた、他のマルチプロセッサキャッシ
ュシステムのために使用され得る。
メモリバスキャッシュ命令は、メモリバス上の特殊論理
により出される。それはキャッシュのフレキシブフルな
制御を可能にする。キャッシュされたデータは無効にさ
れ、読出され、かつ書込まれ得る。ブロックステータス
は読出しおよび書込みがなされ得る。メモリバスキャッ
シュ命令の詳細な説明が先に明らかにされている。
により出される。それはキャッシュのフレキシブフルな
制御を可能にする。キャッシュされたデータは無効にさ
れ、読出され、かつ書込まれ得る。ブロックステータス
は読出しおよび書込みがなされ得る。メモリバスキャッ
シュ命令の詳細な説明が先に明らかにされている。
マルチプロセッサ環境においては、特殊な制御論理は適
当なICUに命令を向けることか可能であるべきである
。どのような所要のマルチプロセッサシステムに対して
も論理は設計され得る。特定的には、1個の共有された
バス(クロスバ−スイッチまたは多重バス構成)のなな
いシステムに対し、この方法を使用することが必要とさ
れる。
当なICUに命令を向けることか可能であるべきである
。どのような所要のマルチプロセッサシステムに対して
も論理は設計され得る。特定的には、1個の共有された
バス(クロスバ−スイッチまたは多重バス構成)のなな
いシステムに対し、この方法を使用することが必要とさ
れる。
これらのシステムにおいては、バスウォッチング機能は
有効でなく、さらに、それに従って特殊な論理がシステ
ムにおいてメモリアクセスをモニタしかつ異なるICU
に指令を出すべきである。制御論理はまた、ICUによ
っては直接的に支持されない特殊なマルチプロセッサ機
構を実現するように設計され得る。
有効でなく、さらに、それに従って特殊な論理がシステ
ムにおいてメモリアクセスをモニタしかつ異なるICU
に指令を出すべきである。制御論理はまた、ICUによ
っては直接的に支持されない特殊なマルチプロセッサ機
構を実現するように設計され得る。
マルチプロセッサキャッシュ編成に対する多くの可能性
が存在する。ICUは、種々の共有されたメモリマルチ
プロセッサキャッシュ編成を支持するように設計される
。ICUはまた、共有されないメモリ編成において使用
され得るが、それはこれらのシステムに対し特殊なハー
ドウェア支持を含んではいない。後に続く詳細な説明は
、ICUにより支持される主要な共有されたメモリ編成
について述べる。変更、組合わせ、および説明されたシ
ステムとは異なるシステムも可能である。
が存在する。ICUは、種々の共有されたメモリマルチ
プロセッサキャッシュ編成を支持するように設計される
。ICUはまた、共有されないメモリ編成において使用
され得るが、それはこれらのシステムに対し特殊なハー
ドウェア支持を含んではいない。後に続く詳細な説明は
、ICUにより支持される主要な共有されたメモリ編成
について述べる。変更、組合わせ、および説明されたシ
ステムとは異なるシステムも可能である。
支持される主な共有されたメモリ編成は、ソフトウェア
制御のキャッシュと、ライトスルーキャッシュと、ライ
トスルー共有変数を有するコピーバックキャッシュと、
所有権機構と、共有されないバス編成を有する共有され
るメモリである。
制御のキャッシュと、ライトスルーキャッシュと、ライ
トスルー共有変数を有するコピーバックキャッシュと、
所有権機構と、共有されないバス編成を有する共有され
るメモリである。
ソフトウェア制御のキャッシュで、すべてのマルチプロ
セッサ通信および同期化がソフトウェア制御の下で行な
われる。キャッシュ−貝柱はソフトウェアにより維持さ
れる。これは、キャッシュ不能変数と、インターロック
動作(後で詳細に説明される)と、キャッシュ命令(た
とえば、無効にせよ)の使用との組合わせを利用するこ
とによりなされ得る。共有される変数はそれらが別なプ
ロセッサにより修正され得る場合は、適当なキャッシュ
からキャッシュ不能かまたは無効にされたのいずれかと
して割当てられ得る。インターロック動作は同期化のた
めに使用される。共有されたバッファ、またはメイルボ
ックスが通信のために利用される。
セッサ通信および同期化がソフトウェア制御の下で行な
われる。キャッシュ−貝柱はソフトウェアにより維持さ
れる。これは、キャッシュ不能変数と、インターロック
動作(後で詳細に説明される)と、キャッシュ命令(た
とえば、無効にせよ)の使用との組合わせを利用するこ
とによりなされ得る。共有される変数はそれらが別なプ
ロセッサにより修正され得る場合は、適当なキャッシュ
からキャッシュ不能かまたは無効にされたのいずれかと
して割当てられ得る。インターロック動作は同期化のた
めに使用される。共有されたバッファ、またはメイルボ
ックスが通信のために利用される。
これは、特殊なハードウェア要件または制約を有さない
、非常にフレキシブルな機構である。それはわずかな瓜
の共有を有するシステムにおいてうまく利用され得る。
、非常にフレキシブルな機構である。それはわずかな瓜
の共有を有するシステムにおいてうまく利用され得る。
しかしながら、共有の二が高い場合、システム性能はこ
の機構においては厳しく低下され得る。多(の変数はキ
ャッシュされ得ないか、あるいは、キャッシュ−貫性維
持に非常な大きなオーバヘッドが課される。この機構の
別な不利な点は、キャッシュはソフトウェアに対し透明
ではなく、かつそれについて変数が共有される情報がわ
からなければならないことである。
の機構においては厳しく低下され得る。多(の変数はキ
ャッシュされ得ないか、あるいは、キャッシュ−貫性維
持に非常な大きなオーバヘッドが課される。この機構の
別な不利な点は、キャッシュはソフトウェアに対し透明
ではなく、かつそれについて変数が共有される情報がわ
からなければならないことである。
ソフトウェア制御は他のマルチプロセッサ機構のいずれ
とも組合わせて使用され得る。
とも組合わせて使用され得る。
この形態に対する特殊なプログラム可能オプション要件
は存在しない。モッドbレジスタは0へとプログラムさ
れ得る。
は存在しない。モッドbレジスタは0へとプログラムさ
れ得る。
ライトスルーキャッシュで、プロセッサは同一バスおよ
びメモリを共有し、さらに、すべてのキャッシュはライ
トスルーポリシーを利用する。マスクキャッシュがすべ
てのプロセッサキャッシュ書込動作をメモリバスに転送
する。キャッシュ−真性は書込みのためのバスウォッチ
ングを利用することにより維持される。共有されたメモ
リバス上のすべての書込動作は、すべてのスレーブキャ
ッシュにおいて検査される。一致が見い出される場合、
対応するアドレスは無効にされる。これは簡単なデータ
一貫性機構である。その主な不利な点は、すべての書込
みがメモリバス動作を引き起こすことである。性能はそ
のためにひどく低下され得る。メモリバス利用により、
はるかに高くなり得るので少数のプロセッサしかシステ
ムに配置されなくてもよい。書込バッファがこれらの有
害なな影響を減じる助けとなり得る。
びメモリを共有し、さらに、すべてのキャッシュはライ
トスルーポリシーを利用する。マスクキャッシュがすべ
てのプロセッサキャッシュ書込動作をメモリバスに転送
する。キャッシュ−真性は書込みのためのバスウォッチ
ングを利用することにより維持される。共有されたメモ
リバス上のすべての書込動作は、すべてのスレーブキャ
ッシュにおいて検査される。一致が見い出される場合、
対応するアドレスは無効にされる。これは簡単なデータ
一貫性機構である。その主な不利な点は、すべての書込
みがメモリバス動作を引き起こすことである。性能はそ
のためにひどく低下され得る。メモリバス利用により、
はるかに高くなり得るので少数のプロセッサしかシステ
ムに配置されなくてもよい。書込バッファがこれらの有
害なな影響を減じる助けとなり得る。
このオプションで、すべてのブロックは排他的ライトス
ルーとして割当てられるべきであり、書込ポリシーはラ
イトスルーとしてプログラムされるべきであり、バスウ
ォッチングは書込アクセスに対し可能化されるべきであ
り、さらに、モッドbレジスタは無効にするワードを特
定すべきである。
ルーとして割当てられるべきであり、書込ポリシーはラ
イトスルーとしてプログラムされるべきであり、バスウ
ォッチングは書込アクセスに対し可能化されるべきであ
り、さらに、モッドbレジスタは無効にするワードを特
定すべきである。
ライトスルーが共有される変数を有するコピーバックキ
ャッシュで、プロセッサは同一バスおよびメモリを共有
し、さらに、キャッシュはフレキシブルな書込ポリシー
を用いる。排他的変数はコピーバックオプション(排他
的コピーバックとして割当てられるページに置かれる)
を利用する。
ャッシュで、プロセッサは同一バスおよびメモリを共有
し、さらに、キャッシュはフレキシブルな書込ポリシー
を用いる。排他的変数はコピーバックオプション(排他
的コピーバックとして割当てられるページに置かれる)
を利用する。
1個のプロセッサにより排他的に使用される変数のみが
排他的コピーパックとして割当てられることを保証する
ことがシステム責任である。プロセス移送が許容される
場合、排他的変数は古いプロセッサのキャッシュにおい
て無効にされなければならないことに注目されたい。
排他的コピーパックとして割当てられることを保証する
ことがシステム責任である。プロセス移送が許容される
場合、排他的変数は古いプロセッサのキャッシュにおい
て無効にされなければならないことに注目されたい。
共有された変数はライトスルーオプション(排他的ライ
トスルーとして割当てられるページに置かれる)を使用
する。共有されるかもしれないいずれかの変数(Ilo
と共有すること、またはキャッシュを有さないプロセッ
サを含む)にこのステータスを割当てることがシステム
責任である。
トスルーとして割当てられるページに置かれる)を使用
する。共有されるかもしれないいずれかの変数(Ilo
と共有すること、またはキャッシュを有さないプロセッ
サを含む)にこのステータスを割当てることがシステム
責任である。
Iloのようない(つかの変数はキャッシュ不能として
なお割当てられなければならない。書込機構のためのバ
スウォッチング(ライトスルーキャッシュのためのもの
に類似する)がデータ一貫性を維持するために利用され
る。スレーブキャッシュが一致の場合にそれらのコピー
を無効にする。
なお割当てられなければならない。書込機構のためのバ
スウォッチング(ライトスルーキャッシュのためのもの
に類似する)がデータ一貫性を維持するために利用され
る。スレーブキャッシュが一致の場合にそれらのコピー
を無効にする。
より良い性能を有する可能な変更例は、スレーブキャッ
シュがそれらのコピーを無効にする代わりにそれを更新
することである。
シュがそれらのコピーを無効にする代わりにそれを更新
することである。
この機構は、すべての共有された変数が既知であり、か
つライトスルーまたは共有されたページに置かれている
という過程に基づいている。この場合、ライトスルー機
構と比べてより良い性能が達成され得る。しかしながら
、共有の量が高い場合、共有されたデータのライトスル
ー動作の不利な点はより重要となり、性能は低下する。
つライトスルーまたは共有されたページに置かれている
という過程に基づいている。この場合、ライトスルー機
構と比べてより良い性能が達成され得る。しかしながら
、共有の量が高い場合、共有されたデータのライトスル
ー動作の不利な点はより重要となり、性能は低下する。
共有されかつ排他的な変数割当てから除いて、バスウォ
ッチングは書込アクセスのために可能化されるべきであ
り、さらにモッドbレジスタは無効ワードを特定すべき
である。スレーブキャッシュ更新変化が所望される場合
、モッドbレジスタはそれに応じてプログラムされるべ
きである。
ッチングは書込アクセスのために可能化されるべきであ
り、さらにモッドbレジスタは無効ワードを特定すべき
である。スレーブキャッシュ更新変化が所望される場合
、モッドbレジスタはそれに応じてプログラムされるべ
きである。
所有権機構に転じる。これらの機構は、データ一貫性を
維持するためのバスウォッチングを有する共有されたメ
モリおよび共有されたバス編成に基づいている。所有権
機構の基本的原理は、変数がただ1個のキャッシュによ
って所有されることである。所有キャッシュは変数の最
新バージョンを含み、さらに、それはその一貫性の維持
に対し責任がある。変数がキャッシュによって所有され
ない場合は、メモリは更新された値を含む。すべての所
有権機構において、変数はキャッシュにおけるいくつか
の(最大数5)状態のうちの1個にあり得る。ICUの
好ましい実施例により支持される5個の可能な状態(ブ
ロックステータス)は次のとおりである。
維持するためのバスウォッチングを有する共有されたメ
モリおよび共有されたバス編成に基づいている。所有権
機構の基本的原理は、変数がただ1個のキャッシュによ
って所有されることである。所有キャッシュは変数の最
新バージョンを含み、さらに、それはその一貫性の維持
に対し責任がある。変数がキャッシュによって所有され
ない場合は、メモリは更新された値を含む。すべての所
有権機構において、変数はキャッシュにおけるいくつか
の(最大数5)状態のうちの1個にあり得る。ICUの
好ましい実施例により支持される5個の可能な状態(ブ
ロックステータス)は次のとおりである。
1、 排他的ライトスルー
2. 排他的コピーパック
3、 共有され修正されない
4、 共有され修正される
5、 有効でない
各所有権機構は、状態遷移を制御するハードウェアによ
り実現された状態マシンにより支持される。異なる所有
権機構は、読出一致、書込一致、書込ヒツト、および書
込ミスの場合において異なる動作を必要とする。キャッ
シュにおけるかつシステムにおけるハードウェア支持の
異なる量が一般にそれに応じて必要とされる。
り実現された状態マシンにより支持される。異なる所有
権機構は、読出一致、書込一致、書込ヒツト、および書
込ミスの場合において異なる動作を必要とする。キャッ
シュにおけるかつシステムにおけるハードウェア支持の
異なる量が一般にそれに応じて必要とされる。
所有権機構のいずれもキャッシュのソフトウェア制御を
必要としない。それらはより複雑なハードウェアの要求
をしてより亮性能を可能にする。
必要としない。それらはより複雑なハードウェアの要求
をしてより亮性能を可能にする。
当業者には周知の6個の所有権機構が存在する。
それらは次のとおりである。
1、 ライトワンス
2、 バークレー
3、 イリノイ
4、 ファイアフライ
5、 ドラボン
6、 ツユ−チャーバス
シナプス機構として公知であるもう1個の機構は、ライ
トワンス機構と非常に類似しているが、それは各キャッ
シュブロックに対するメインメモリに含まれる単一ビッ
トタグに依存する。この機構はICUにより直接には支
持されないが、それはライトワンスオプションおよび何
らかの外部論理を用いることにより実現され得る。
トワンス機構と非常に類似しているが、それは各キャッ
シュブロックに対するメインメモリに含まれる単一ビッ
トタグに依存する。この機構はICUにより直接には支
持されないが、それはライトワンスオプションおよび何
らかの外部論理を用いることにより実現され得る。
種々の所有権機構詳細は周知であり、印刷された出版物
において教示されるけれども、各機構の主な特徴の短い
説明が、完全さのために、かつこれらの機構がICUに
よりどのようにして支持されるかという説明を容易にす
るために明らかにされる。
において教示されるけれども、各機構の主な特徴の短い
説明が、完全さのために、かつこれらの機構がICUに
よりどのようにして支持されるかという説明を容易にす
るために明らかにされる。
ICUは、すべての上記所有権機構と、ことによると、
進展し得る他の機構とを支持する。これは所要のプログ
ラム可能オプションを選択することにより達成される。
進展し得る他の機構とを支持する。これは所要のプログ
ラム可能オプションを選択することにより達成される。
すべての所有権機構において、書込ポリシーはフレキシ
ブルであるとしてプログラムされる。大半の書込アクセ
スはコピーパックポリシーを利用し得る。バスウォッチ
ングは読出しと書込みの両方に対し可能化される。先に
規定された柾々の制御フィールドを有するモッドbレジ
スタは、種々の所有権機構を実現するために使用され得
る。
ブルであるとしてプログラムされる。大半の書込アクセ
スはコピーパックポリシーを利用し得る。バスウォッチ
ングは読出しと書込みの両方に対し可能化される。先に
規定された柾々の制御フィールドを有するモッドbレジ
スタは、種々の所有権機構を実現するために使用され得
る。
ライトワンス機構においては、排他的で修正されない状
態と、排他的で修正される状態と、共有され修正されな
い状態と、無効の状態とだけが規定される。共有され修
正される状態は使用されない。この機構の基本的な原理
は、最初にキャッシュにおいてヒツトするすべての書込
み(共有されたページへの書込み)がライトスルー動作
を引き起こすことである。次に、ブロックは排他的で修
正されるとして割当てられ、さらなる書込みがキャッシ
ュにおいてのみ実施され得る。スレーブキャッシュはブ
ロックのそれら自体のコピーを無効にする。排他的ブロ
ックへのコピーパック書込みが修正されたビットをセッ
トする。排他的で修正されたブロックがキャッシュによ
り所有され、さらに、別なキャッシュがそれを読出そう
とする(メモリはまた更新され、次にブロックは共有さ
れ修正されないとして割当てられる)場合には、データ
介入が利用される。この機構で、すべてのプロセッサア
クセスは共有されるとして割当てられるべきである。排
他的ブロックステータスはASTC入力により共有され
た支持を無効にすることに注目されたい。
態と、排他的で修正される状態と、共有され修正されな
い状態と、無効の状態とだけが規定される。共有され修
正される状態は使用されない。この機構の基本的な原理
は、最初にキャッシュにおいてヒツトするすべての書込
み(共有されたページへの書込み)がライトスルー動作
を引き起こすことである。次に、ブロックは排他的で修
正されるとして割当てられ、さらなる書込みがキャッシ
ュにおいてのみ実施され得る。スレーブキャッシュはブ
ロックのそれら自体のコピーを無効にする。排他的ブロ
ックへのコピーパック書込みが修正されたビットをセッ
トする。排他的で修正されたブロックがキャッシュによ
り所有され、さらに、別なキャッシュがそれを読出そう
とする(メモリはまた更新され、次にブロックは共有さ
れ修正されないとして割当てられる)場合には、データ
介入が利用される。この機構で、すべてのプロセッサア
クセスは共有されるとして割当てられるべきである。排
他的ブロックステータスはASTC入力により共有され
た支持を無効にすることに注目されたい。
バークレー機構においては、排他的で修正される状態と
、共有され修正されない状態と、共有され修正される状
態と、無効の状態のみが規定される。排他的で修正され
ない状態は利用されない。
、共有され修正されない状態と、共有され修正される状
態と、無効の状態のみが規定される。排他的で修正され
ない状態は利用されない。
排他的で修正されるブロックまたは共有され修正される
ブロックを含むキャッシュがそのオーナーである。読出
しの際のミスの場合は、ブロックは共有され修正されな
いとして割当てられる。共有されるブロックに対する書
込ヒツトの場合、書込同報通信動作が実施され、ブロッ
クは排他的で修正されないとして割当てられる。他のキ
ャッシュカフロックのそれら自体のコピーを無効にする
。
ブロックを含むキャッシュがそのオーナーである。読出
しの際のミスの場合は、ブロックは共有され修正されな
いとして割当てられる。共有されるブロックに対する書
込ヒツトの場合、書込同報通信動作が実施され、ブロッ
クは排他的で修正されないとして割当てられる。他のキ
ャッシュカフロックのそれら自体のコピーを無効にする
。
読出一致の場合においてはデータ介入がオーナにより実
施される。この機構で、すべてのプロセッサアクセスが
共有されるとして割当てられるべきである。
施される。この機構で、すべてのプロセッサアクセスが
共有されるとして割当てられるべきである。
イリノイ機構においては、排他的で修正されない状態と
、排他的で修正される状態と、共有され修正されない状
態と、無効の状態のみが規定される。共有され修正され
ない状態は利用されない。
、排他的で修正される状態と、共有され修正されない状
態と、無効の状態のみが規定される。共有され修正され
ない状態は利用されない。
排他的で修正されるブロックを含むキャッシュがそのオ
ーナである。読出しの際のミスの場合は、ブロックは、
★HIT入力に依存して、共有され修正されないかまた
は排他的で修正されないとして割当てられる。共有され
たブロックに対する書込ヒツトの場合、書込同報通信動
作が実施され、ブロックは排他的で修正されるとして割
当てられる。他のキャッシュはブロックのそれら自体の
コピーを無効にする。読出一致の場合には、データ介入
がオーナにより実施される。データ介入動作は最初のイ
リノイ機構規定とは異なっているが、終了結果は同一で
あることに注目されたい。最初の規定においては、所要
のデータのコピーを含むすべてのキャッシュが介入しよ
うとする。本件の場合においては、ブロックが修正され
る場合にのみにデータ介入が実施される。ブロックが共
有され修正されない場合、データはメモリから供給され
る。この機構で、プロセッサアクセスにより共有される
ビット割当ては不適切である。というのは、★HAT信
号がこの目的のために利用されるからである。
ーナである。読出しの際のミスの場合は、ブロックは、
★HIT入力に依存して、共有され修正されないかまた
は排他的で修正されないとして割当てられる。共有され
たブロックに対する書込ヒツトの場合、書込同報通信動
作が実施され、ブロックは排他的で修正されるとして割
当てられる。他のキャッシュはブロックのそれら自体の
コピーを無効にする。読出一致の場合には、データ介入
がオーナにより実施される。データ介入動作は最初のイ
リノイ機構規定とは異なっているが、終了結果は同一で
あることに注目されたい。最初の規定においては、所要
のデータのコピーを含むすべてのキャッシュが介入しよ
うとする。本件の場合においては、ブロックが修正され
る場合にのみにデータ介入が実施される。ブロックが共
有され修正されない場合、データはメモリから供給され
る。この機構で、プロセッサアクセスにより共有される
ビット割当ては不適切である。というのは、★HAT信
号がこの目的のために利用されるからである。
ファイアフライ機構においては、排他的で修正されない
状態と、排他的で修正される状態と、共有され修正され
ない状態と、無効の状態のみが規定される。共有され修
正される状態は利用されない。排他的で修正されるブロ
ックを含むキャッシュがそのオーナである。読出しの際
のミスの場合、ブロックは★HIT入力に依存して共有
され修正されないかまたは排他的で修正されないとして
割当てられる。共有されるブロックに対する書込ヒツト
の場合、ライトスルー動作が実施され、ブロックは★H
IT入力に従って共有され修正されないかまたは排他的
で修正されないとして割当てられる。メモリアレイにお
いては他のキャッシュがそれら自体のデータを更新する
。読出一致の場合にはオーナによりデータ介入が実施さ
れる。データ介入動作は最初のファイアフライ機構規定
とは異なっているが、終了結果は同一であることに注目
されたい。最初の規定においては、所要のデータのコピ
ーを含むすべてのキャッシュが介入しようとする。本件
の場合においては、ブロックが修正される場合のみ、デ
ータ介入が実施される。ブロックが共有され修正されな
い場合、データはメモリから供給される。この機構に対
し、プロセッサアクセスが共有されるビット割当ては不
適切である。というのは、★HIT信号がこの目的のた
めに利用されるからである。
状態と、排他的で修正される状態と、共有され修正され
ない状態と、無効の状態のみが規定される。共有され修
正される状態は利用されない。排他的で修正されるブロ
ックを含むキャッシュがそのオーナである。読出しの際
のミスの場合、ブロックは★HIT入力に依存して共有
され修正されないかまたは排他的で修正されないとして
割当てられる。共有されるブロックに対する書込ヒツト
の場合、ライトスルー動作が実施され、ブロックは★H
IT入力に従って共有され修正されないかまたは排他的
で修正されないとして割当てられる。メモリアレイにお
いては他のキャッシュがそれら自体のデータを更新する
。読出一致の場合にはオーナによりデータ介入が実施さ
れる。データ介入動作は最初のファイアフライ機構規定
とは異なっているが、終了結果は同一であることに注目
されたい。最初の規定においては、所要のデータのコピ
ーを含むすべてのキャッシュが介入しようとする。本件
の場合においては、ブロックが修正される場合のみ、デ
ータ介入が実施される。ブロックが共有され修正されな
い場合、データはメモリから供給される。この機構に対
し、プロセッサアクセスが共有されるビット割当ては不
適切である。というのは、★HIT信号がこの目的のた
めに利用されるからである。
ドラボン機構においては、5個のブロックステータスす
べてが利用される。排他的で修正されるブロックかまた
は共有され修正されるブロックを含むキャッシュがその
オーナである。読出しの際のミスの場合は、ブロックは
★HIT入力に依存して共有され修正されないかまたは
排他的で修正されないとして割当てられる。共有された
ブロックに対する書込ヒツトの場合は、ライトブロード
キャスト動作が実施され(メモリは更新されない)、さ
らに、ブロックは★HIT入力に従って共有され修正さ
れないかまたは排他的で修正されないとして割当てられ
る。他のキャッシュがデータのそれら自体のコピーを更
新する。続出一致の場合、データ介入がオーナにより実
施される。この機構で、プロセッサアクセスが共有され
るビット割当ては不適切である。というのは、★HIT
信号はこの目的のために利用されるからである。
べてが利用される。排他的で修正されるブロックかまた
は共有され修正されるブロックを含むキャッシュがその
オーナである。読出しの際のミスの場合は、ブロックは
★HIT入力に依存して共有され修正されないかまたは
排他的で修正されないとして割当てられる。共有された
ブロックに対する書込ヒツトの場合は、ライトブロード
キャスト動作が実施され(メモリは更新されない)、さ
らに、ブロックは★HIT入力に従って共有され修正さ
れないかまたは排他的で修正されないとして割当てられ
る。他のキャッシュがデータのそれら自体のコピーを更
新する。続出一致の場合、データ介入がオーナにより実
施される。この機構で、プロセッサアクセスが共有され
るビット割当ては不適切である。というのは、★HIT
信号はこの目的のために利用されるからである。
ツユ−チャバス機構においては、5個のブロックステー
タスすべてが利用される。この機構は、他のすべての所
有権機構の実現(いくつかのわずかな修正を伴う)を可
能にするフレキシブルな機構である。読出および書込一
致ばかりでなく、ヒツトならびに読出および書込ミスの
場合に対するキャッシュ動作は、異なる所有権機構実現
に対し十分な柔軟性で規定される。★HIT信号の利用
も任意である。ツユ−チャバス機構はICUの柔軟性に
より十分に支持される。ICUはツユ−チャバス機構に
より必要とされるよりもより多くの柔軟性を含み、その
ため、データ介入の際のメモリ更新および書込同報通信
支持と同様、いくつかの制限が除去される。この機構に
対し、プロセッサアクセスが共有されるビット割当てが
ソフトウェア割当てによりまたは★HIT信号を利用す
ることにより実施され得る。
タスすべてが利用される。この機構は、他のすべての所
有権機構の実現(いくつかのわずかな修正を伴う)を可
能にするフレキシブルな機構である。読出および書込一
致ばかりでなく、ヒツトならびに読出および書込ミスの
場合に対するキャッシュ動作は、異なる所有権機構実現
に対し十分な柔軟性で規定される。★HIT信号の利用
も任意である。ツユ−チャバス機構はICUの柔軟性に
より十分に支持される。ICUはツユ−チャバス機構に
より必要とされるよりもより多くの柔軟性を含み、その
ため、データ介入の際のメモリ更新および書込同報通信
支持と同様、いくつかの制限が除去される。この機構に
対し、プロセッサアクセスが共有されるビット割当てが
ソフトウェア割当てによりまたは★HIT信号を利用す
ることにより実施され得る。
最後に、共有されるバス編成を有さない共有されるメモ
リに転じる。ます、共有されるバスマルチプロセッサ編
成においてのみバスウォッチング能力は有用であること
が注目されるべきである。
リに転じる。ます、共有されるバスマルチプロセッサ編
成においてのみバスウォッチング能力は有用であること
が注目されるべきである。
多重バスまたはクロスバ−スイッチを含む他の共有され
るメモリ編成もまたICUにより支持される。これらの
編成は、共有されるバスがシステムにおける、ネックと
なる場合に必要とされる。この場合、それらはより多数
のプロセッサとより良好な性能を可能にする。
るメモリ編成もまたICUにより支持される。これらの
編成は、共有されるバスがシステムにおける、ネックと
なる場合に必要とされる。この場合、それらはより多数
のプロセッサとより良好な性能を可能にする。
これらの編成に対する基本的な支持は、メモリバスキャ
ッシュ命令である。メモリバスキャッシュ命令の詳細な
説明が先に述べられている。メモリアクセスをモニタし
かつ適当なICUにキャッシュ命令を出すために、外部
制御論理が必要とされる。この論理は、特殊なシステム
編成に従って設計され得る。それはすべてのメインメモ
リアクセスをモニタすることが可能であるべきである(
この機能はメモリ制御器に置かれ得る)。次に、包括的
な情報に従って、メモリバスキャッシュ命令が適当なキ
ャッシュに向けられ得る。そのような実現の詳細はシス
テム依存的であり、この発明の一部ではなく、多くの変
更が可能である。これらの編成に対するICU支持を例
示するために、いくつかの基本的機能がここで説明され
る。
ッシュ命令である。メモリバスキャッシュ命令の詳細な
説明が先に述べられている。メモリアクセスをモニタし
かつ適当なICUにキャッシュ命令を出すために、外部
制御論理が必要とされる。この論理は、特殊なシステム
編成に従って設計され得る。それはすべてのメインメモ
リアクセスをモニタすることが可能であるべきである(
この機能はメモリ制御器に置かれ得る)。次に、包括的
な情報に従って、メモリバスキャッシュ命令が適当なキ
ャッシュに向けられ得る。そのような実現の詳細はシス
テム依存的であり、この発明の一部ではなく、多くの変
更が可能である。これらの編成に対するICU支持を例
示するために、いくつかの基本的機能がここで説明され
る。
1個のキャッシュがメモリからブロックを読出そうとす
る場合、ブロックを共有されたまたは排他的なと示すた
めに、制御論理は書込ブロックステータス命令を利用し
得る。所有の変数の更新されたバージョンがメモリにで
はなくキャッシュの1個に存在する場合、次の命令、す
なわちワードを送れ、修正された場合はワードを送れ、
または修正された場合はブロックを送れの命令が更新さ
れたバージョンを受けるために利用され得る。
る場合、ブロックを共有されたまたは排他的なと示すた
めに、制御論理は書込ブロックステータス命令を利用し
得る。所有の変数の更新されたバージョンがメモリにで
はなくキャッシュの1個に存在する場合、次の命令、す
なわちワードを送れ、修正された場合はワードを送れ、
または修正された場合はブロックを送れの命令が更新さ
れたバージョンを受けるために利用され得る。
キャッシュのいくつかに存在する共有された変数はプロ
セッサの1個により書込まれる場合、ICUは書込情報
をライトスルーするかまたはライト同報通信するように
プログラムされ得る。ワードを無効にせよの命令、ブロ
ックを無効にせよの命令、またはキャッシュに書込めの
命令が、池のキャッシュのコピーを無効または更新する
ために利用され得る。
セッサの1個により書込まれる場合、ICUは書込情報
をライトスルーするかまたはライト同報通信するように
プログラムされ得る。ワードを無効にせよの命令、ブロ
ックを無効にせよの命令、またはキャッシュに書込めの
命令が、池のキャッシュのコピーを無効または更新する
ために利用され得る。
いずれかのキャッシュブロックのブロックステータスは
、ブロックステータスを読出せの命令およびブロックス
テータスを書込めの命令を利用することにより、必要な
ときはいつでも読出しまたは書込みがなされ得る。これ
は、キャッシュ内容に関する情報を集めるかまたはブロ
ックステータスを特定するために、制御論理により行な
われ得る。
、ブロックステータスを読出せの命令およびブロックス
テータスを書込めの命令を利用することにより、必要な
ときはいつでも読出しまたは書込みがなされ得る。これ
は、キャッシュ内容に関する情報を集めるかまたはブロ
ックステータスを特定するために、制御論理により行な
われ得る。
共有されたヒツト、続出および書込ミスの場合にICU
動作を特定するために、これらの編成に対しいくつかの
プログラム可能オプションがまた利用され得る。バスウ
ォッチングは、メモリバスキャッシュ命令の代わりに、
特殊な論理がICUC上メモリバス上出および書込動作
を出すように設計される場合に利用され得る。
動作を特定するために、これらの編成に対しいくつかの
プログラム可能オプションがまた利用され得る。バスウ
ォッチングは、メモリバスキャッシュ命令の代わりに、
特殊な論理がICUC上メモリバス上出および書込動作
を出すように設計される場合に利用され得る。
多重バス編成においては、バスウォッチングとメモリバ
スキャッシュ命令の組合わせが利用され得る。バスウォ
ッチングは同一バスを共有するキャッシュのデータ一貫
性をカバーし得る。インターバスデーター質性、すなわ
ち別なバスに置かれるキャッシュにおけるデータに影響
を及ぼす1個のバス上の動作に対し、適切なアクセスを
転送するためにまたは適当なキャッシュにメモリバス命
令を出すために、特殊な論理が必要とされる。特殊論理
の設計は、当業者の能力範囲内でかつこの発明の範囲外
で申し分がない。
スキャッシュ命令の組合わせが利用され得る。バスウォ
ッチングは同一バスを共有するキャッシュのデータ一貫
性をカバーし得る。インターバスデーター質性、すなわ
ち別なバスに置かれるキャッシュにおけるデータに影響
を及ぼす1個のバス上の動作に対し、適切なアクセスを
転送するためにまたは適当なキャッシュにメモリバス命
令を出すために、特殊な論理が必要とされる。特殊論理
の設計は、当業者の能力範囲内でかつこの発明の範囲外
で申し分がない。
新規のICUの説明を完了するために、そのインターロ
ック機能が詳細に説明される。しかしながら、まず、よ
り一般的にはICUのコンテキストにおいては、当業者
は、インターロック変数がマルチプロセッサ環境または
マルチタスキング環境においてはセマフォおよび他の同
期変数のために利用されことを認めるであろう。同期変
数はまた、共有されるメモリ領域に対する保護キーとし
て利用され得る。インターロック変数へのアクセスは同
期化されるべきである。1個のプロセッサのみがいずれ
の所与の時間にもインターロック変数をアクセスするこ
とを可能にされるべきである。
ック機能が詳細に説明される。しかしながら、まず、よ
り一般的にはICUのコンテキストにおいては、当業者
は、インターロック変数がマルチプロセッサ環境または
マルチタスキング環境においてはセマフォおよび他の同
期変数のために利用されことを認めるであろう。同期変
数はまた、共有されるメモリ領域に対する保護キーとし
て利用され得る。インターロック変数へのアクセスは同
期化されるべきである。1個のプロセッサのみがいずれ
の所与の時間にもインターロック変数をアクセスするこ
とを可能にされるべきである。
インターロック変数のどのような読出しも変数の最新の
値を戻すべきである。
値を戻すべきである。
インターロック変数アクセスを支持するために、プロセ
ッサはいくつかのタイプのアトミック(atomic)
読出−修正−書込動作を含むべきである。これは、プロ
セッサによりアトミックな方法で変数を検査しかつそれ
に影響を及ぼすことを可能にするが、他のプロセッサは
干渉し得ない。
ッサはいくつかのタイプのアトミック(atomic)
読出−修正−書込動作を含むべきである。これは、プロ
セッサによりアトミックな方法で変数を検査しかつそれ
に影響を及ぼすことを可能にするが、他のプロセッサは
干渉し得ない。
キャッシュメモリを含むシステムにおいては、インター
ロック変数は特殊な問題を生じるが、その理由は、それ
らのアクセスがキャッシュとは無関係に同期化されるべ
きであるからである。
ロック変数は特殊な問題を生じるが、その理由は、それ
らのアクセスがキャッシュとは無関係に同期化されるべ
きであるからである。
この問題に対する簡単な解決方法は、すべてのインター
ロック変数をキャッシュ不能として割当てることである
。この場合、インターロック変数はキャッシュされるこ
とを可能にはせず、さらに、すべてのインターロックア
クセスがメモリへ向けられる。この方法は、大半の公知
のキャッシュシステムにおいて利用される。主な不利な
点は、メモリへのインターロック変数アクセスにより引
き起こされる、より低い性能と、より高いバス利用であ
る。インターロックアクセスの回数が増大するにつれて
、性能に及ぼす影響がひどくなり得る。
ロック変数をキャッシュ不能として割当てることである
。この場合、インターロック変数はキャッシュされるこ
とを可能にはせず、さらに、すべてのインターロックア
クセスがメモリへ向けられる。この方法は、大半の公知
のキャッシュシステムにおいて利用される。主な不利な
点は、メモリへのインターロック変数アクセスにより引
き起こされる、より低い性能と、より高いバス利用であ
る。インターロックアクセスの回数が増大するにつれて
、性能に及ぼす影響がひどくなり得る。
新規のICUと、実際に、それ自体の権利において新規
である後で説明されるべきインターロック機能は、イン
ターロック変数のキャッシングを考慮に入れている。こ
れは、達成されるべきより良好な性能とより低いバス利
用を可能にする。大半のインターロック変数アクセスは
より迅速であり、アクセスがキャッシュにおいてのみ行
なわれるので、メモリバス上には現われない。機構は簡
単であり、シングルチップICUで実現され得る。
である後で説明されるべきインターロック機能は、イン
ターロック変数のキャッシングを考慮に入れている。こ
れは、達成されるべきより良好な性能とより低いバス利
用を可能にする。大半のインターロック変数アクセスは
より迅速であり、アクセスがキャッシュにおいてのみ行
なわれるので、メモリバス上には現われない。機構は簡
単であり、シングルチップICUで実現され得る。
インターロック変数と関連する同期化を保証するいくつ
かの方法がある。この発明の例示の実施例と関連するプ
ロセッサは、能率的なインターロッキングに必要とされ
る基本的動作を含む。これらは、援用されている、プロ
セッサ関連の同時係属出願において詳細に説明されてお
り、特定的には、LOADSET命令、LOADL命令
、および5TOREL命令と、現プロセッサステタスレ
ジスタにおけるLKビットと、★LOCK出力である。
かの方法がある。この発明の例示の実施例と関連するプ
ロセッサは、能率的なインターロッキングに必要とされ
る基本的動作を含む。これらは、援用されている、プロ
セッサ関連の同時係属出願において詳細に説明されてお
り、特定的には、LOADSET命令、LOADL命令
、および5TOREL命令と、現プロセッサステタスレ
ジスタにおけるLKビットと、★LOCK出力である。
ICUは、インターロック変数を取扱うための2個の機
構を実現する。所望の機構は、モッドbレジスタのキャ
ッシュインターロック可能化(CILE)ビットをプロ
グラムすることにより選択され得る。
構を実現する。所望の機構は、モッドbレジスタのキャ
ッシュインターロック可能化(CILE)ビットをプロ
グラムすることにより選択され得る。
CILEビットがLOWである場合、キャッシングイン
ターロック変数は不能化される。インターロックアクセ
ス(断定される★LOCKビット)はキャッシュ不能ア
クセスとして取扱われる。キャッシュはヒツトを探索さ
れず、さらに、アクセスはロック支持(断定される★M
LOCK)てメモリバスへ転送される。このオプション
においては、インターロック変数取扱いはメモリ制御の
下にある。★MLOCK信号が活性状態である間は、メ
モリはインターロック変数へのいずれのアクセスも不能
化されるべきである。メモリにおいてインターロック変
数をテストおよびセットするために、LOADSET命
令が利用され得る。
ターロック変数は不能化される。インターロックアクセ
ス(断定される★LOCKビット)はキャッシュ不能ア
クセスとして取扱われる。キャッシュはヒツトを探索さ
れず、さらに、アクセスはロック支持(断定される★M
LOCK)てメモリバスへ転送される。このオプション
においては、インターロック変数取扱いはメモリ制御の
下にある。★MLOCK信号が活性状態である間は、メ
モリはインターロック変数へのいずれのアクセスも不能
化されるべきである。メモリにおいてインターロック変
数をテストおよびセットするために、LOADSET命
令が利用され得る。
CILEビットかHIGHである場合、インターロック
変数をキャッシュするための機能が可能化される。これ
は、インターロック変数のより有効な取扱いを可能にす
るためにICUに組込まれる、特殊機能である。それは
プロセッサと互換性 ′があり、プロセッサの異な
るインターロック基本動作を利用する。
変数をキャッシュするための機能が可能化される。これ
は、インターロック変数のより有効な取扱いを可能にす
るためにICUに組込まれる、特殊機能である。それは
プロセッサと互換性 ′があり、プロセッサの異な
るインターロック基本動作を利用する。
インターロックされた読出しおよび書込動作(★LOC
Kは断定された状態にある)は特殊な方法で取扱われ得
る。インターロックされた読出しくLOADAL命令お
よびLOADSET命令に対しプロセッサにより発生さ
れる)は、それが共有されたブロックでヒツトしない限
り、ミスとして取扱われる。断定された状態にある★M
LOCKで再ロード動作がメモリアドレス上で開始され
る0読出データはキャッシュにストアされ、ブロックは
共有されるとして割当てられる。共有されたブロックヒ
ツトに対し、データはメモリアドレスバスクアセクセス
なしでキャッシュにより供給される。
Kは断定された状態にある)は特殊な方法で取扱われ得
る。インターロックされた読出しくLOADAL命令お
よびLOADSET命令に対しプロセッサにより発生さ
れる)は、それが共有されたブロックでヒツトしない限
り、ミスとして取扱われる。断定された状態にある★M
LOCKで再ロード動作がメモリアドレス上で開始され
る0読出データはキャッシュにストアされ、ブロックは
共有されるとして割当てられる。共有されたブロックヒ
ツトに対し、データはメモリアドレスバスクアセクセス
なしでキャッシュにより供給される。
インターロックされた書込動作が、プロセッサS T
ORE L l:対してはLOADsET命令の書込み
とは異なって取扱われる。ICUは、書込アクセスの前
にくるサイクルにおいて★LOCK入力の状態に従って
2つのタイプのインターロック書込みの間で識別し得る
。★LOCKビットがセットされた場合、その意味する
ところは、インターロック書込みはLOADSET命令
の書込みである、ということである。それがセットされ
なかった場合、これは5TORELの書込みである。
ORE L l:対してはLOADsET命令の書込み
とは異なって取扱われる。ICUは、書込アクセスの前
にくるサイクルにおいて★LOCK入力の状態に従って
2つのタイプのインターロック書込みの間で識別し得る
。★LOCKビットがセットされた場合、その意味する
ところは、インターロック書込みはLOADSET命令
の書込みである、ということである。それがセットされ
なかった場合、これは5TORELの書込みである。
インターロックされた5TOREL書込みに対し、IC
Uはメモリに対するライトスルー動作を開始する。キャ
ツシュヒツトの場合、ブロックは無効にされる。
Uはメモリに対するライトスルー動作を開始する。キャ
ツシュヒツトの場合、ブロックは無効にされる。
インターロックされたLOADSET書込みに対し、デ
ータはキャッシュへ書込まれる。LOADSET命令の
読出アクセスがミスを発生した場合のみ、データはメモ
リにも書込まれる。これは、インターロックされた変数
が初めて読出されたときのみメモリが書込まれることを
保証する。
ータはキャッシュへ書込まれる。LOADSET命令の
読出アクセスがミスを発生した場合のみ、データはメモ
リにも書込まれる。これは、インターロックされた変数
が初めて読出されたときのみメモリが書込まれることを
保証する。
両方の場合に対し、★MLOCK出力はメモリ書込動作
の間断室される。断定された★MLOCKを伴う書込み
が別なマスクにより実施される場合、他のすべてのキャ
ッシュがそれら自体のコピーを無効にする。
の間断室される。断定された★MLOCKを伴う書込み
が別なマスクにより実施される場合、他のすべてのキャ
ッシュがそれら自体のコピーを無効にする。
インターロック機能が可能化される(変数が可能である
かもしれない)場合、プロセッサがインターロック変数
をアクセスすべきである特殊な方法がある。LOADS
ET命令はインターロック変数をテストしかつセットす
るために利用される。
かもしれない)場合、プロセッサがインターロック変数
をアクセスすべきである特殊な方法がある。LOADS
ET命令はインターロック変数をテストしかつセットす
るために利用される。
変数値が0である場合、それは使用中ではなく、プロセ
ッサ(またはプロセス)により利用され得る。LOAD
SET命令の結果、サブブロックがキャッシュにロード
されることに注目されたい。
ッサ(またはプロセス)により利用され得る。LOAD
SET命令の結果、サブブロックがキャッシュにロード
されることに注目されたい。
このサブブロックはインターロック変数(ワード)を含
み、サブブロックサイズが1より大きい場合はことによ
るといくつかの他のワードを含む。ユーザは、この事実
を利用することが可能であり、かつインターロックされ
た変数の同一サブブロックに関連する情報を置くことが
可能である。
み、サブブロックサイズが1より大きい場合はことによ
るといくつかの他のワードを含む。ユーザは、この事実
を利用することが可能であり、かつインターロックされ
た変数の同一サブブロックに関連する情報を置くことが
可能である。
変数値が1である場合、それは使用中であり、それ(ま
たはそれが保護する領域)は利用され得ない。プログラ
ムは、使用中の待ち機構を利用して変数がフリーになる
までテストを続行し得るか、または他の動作(またはタ
スク)を行ないかつ後で変数を検査し得る。変数のテス
トは、LOADSET命令を利用することにより行なわ
れる。
たはそれが保護する領域)は利用され得ない。プログラ
ムは、使用中の待ち機構を利用して変数がフリーになる
までテストを続行し得るか、または他の動作(またはタ
スク)を行ないかつ後で変数を検査し得る。変数のテス
トは、LOADSET命令を利用することにより行なわ
れる。
マスクICUは、最初のLOADSET命令に対しての
みメモリアドレスバスを使用する。変数はメモリから読
出され、共有されたブロックステータスでキャッシュに
置かれる。LOADSETの最初の書込みはまたメモリ
に書込まれる。次のLOADSET命令はキャッシュに
おいて(大抵の場合)ヒツトしメモリアドレスバスを使
用しない。他のキャッシュは、断定された★MLOCK
での書込みの際の一致の場合、それら自体のコピーを無
効にする。
みメモリアドレスバスを使用する。変数はメモリから読
出され、共有されたブロックステータスでキャッシュに
置かれる。LOADSETの最初の書込みはまたメモリ
に書込まれる。次のLOADSET命令はキャッシュに
おいて(大抵の場合)ヒツトしメモリアドレスバスを使
用しない。他のキャッシュは、断定された★MLOCK
での書込みの際の一致の場合、それら自体のコピーを無
効にする。
5TOREL命令は、インターロックされた変数のリリ
ースのために使用される。5TOREL命令の結果、断
定された★MLOCKでの書込アクセスがマスクキャッ
シュによりメモリアドレスバス上で開始され、変数はす
べての他のキャッシュにおいて無効にされる。変数がマ
スクキャッシュになお存在する場合は、それはまた無効
にされる。これは、プロセッサによるこの変数への次の
アクセスがミスになることを保証するために行なわれる
。変数は、最新値を得るためにメモリから読出されるで
あろう。マスクキャッシュによるインターロック変数の
利用の間、別なプロセッサが初めて(LOADSETを
用いて)同一変数をテストしようとしている場合には、
LOADSETの書込みはメモリアドレスバス上で出さ
れ、変数は他のすべてのキャッシュ(マスクキャッシュ
を含む)において無効にされる。
ースのために使用される。5TOREL命令の結果、断
定された★MLOCKでの書込アクセスがマスクキャッ
シュによりメモリアドレスバス上で開始され、変数はす
べての他のキャッシュにおいて無効にされる。変数がマ
スクキャッシュになお存在する場合は、それはまた無効
にされる。これは、プロセッサによるこの変数への次の
アクセスがミスになることを保証するために行なわれる
。変数は、最新値を得るためにメモリから読出されるで
あろう。マスクキャッシュによるインターロック変数の
利用の間、別なプロセッサが初めて(LOADSETを
用いて)同一変数をテストしようとしている場合には、
LOADSETの書込みはメモリアドレスバス上で出さ
れ、変数は他のすべてのキャッシュ(マスクキャッシュ
を含む)において無効にされる。
変数を待ち続けていたすべての他のプロセッサは、それ
らが次にそれをテストする場合にはメモリをアクセスし
なければならない。バス調停でかつ1個のキャッシュだ
けがフリーなインターロックされた変数を得る。
らが次にそれをテストする場合にはメモリをアクセスし
なければならない。バス調停でかつ1個のキャッシュだ
けがフリーなインターロックされた変数を得る。
インターロック機能を用いることの主な利点は、より良
好な性能とより低いメモリバス利用である。
好な性能とより低いメモリバス利用である。
多くのインターロック変数アクセスを伴うマルチプロセ
ッサシステムにおいては、かなり性能改良がそれを用い
ることにより達成され得る。別な利点は、メモリ制御器
がインターロックアクセスを規則的なアクセスとして取
扱い得ることである。
ッサシステムにおいては、かなり性能改良がそれを用い
ることにより達成され得る。別な利点は、メモリ制御器
がインターロックアクセスを規則的なアクセスとして取
扱い得ることである。
インターロック機能は、ここで5照される適切な同時係
属出願において規定されるRISC/SIPプロセッサ
以外のもので実現され得ることがまた注目されるべきで
ある。
属出願において規定されるRISC/SIPプロセッサ
以外のもので実現され得ることがまた注目されるべきで
ある。
ここで説明されたものは、それ自体新規のICUと、フ
レキシブルなキャッシュシステム設計、新規のキャッシ
ュインターロック機能、新規でかつフレキシブルなマル
チプロセッサ支持機構、および集積キャッシュメモリ用
プリロード機構のためのICUの新規の返送とともに含
む。上述のことに関する詳細は、新規のICU機能、そ
の内部レジスタ、入出力、サンプル命令セット、データ
フォーマット、プログラム可能性、支持されるシステム
のタイプなどに関して明らかされてきた。
レキシブルなキャッシュシステム設計、新規のキャッシ
ュインターロック機能、新規でかつフレキシブルなマル
チプロセッサ支持機構、および集積キャッシュメモリ用
プリロード機構のためのICUの新規の返送とともに含
む。上述のことに関する詳細は、新規のICU機能、そ
の内部レジスタ、入出力、サンプル命令セット、データ
フォーマット、プログラム可能性、支持されるシステム
のタイプなどに関して明らかされてきた。
この提示の点から、当業者は、先に明らかにされたこの
発明の目的が満たされたことを容易に認めるであろう。
発明の目的が満たされたことを容易に認めるであろう。
新規の方法および装置の好ましい実施例および例示の具
体例の先の説明は、例示および説明のためのみに提示さ
れてきた。余すところがないことまたはこの発明を開示
された厳密な形態に限定することは意図されておらず、
さらに、明らかに多くの修正および変更が上記の教示に
鑑みて可能である。
体例の先の説明は、例示および説明のためのみに提示さ
れてきた。余すところがないことまたはこの発明を開示
された厳密な形態に限定することは意図されておらず、
さらに、明らかに多くの修正および変更が上記の教示に
鑑みて可能である。
ここに明らかにされた実施例および具体例は、それによ
って実行される特定の用途に適するように種々の実施例
においてかつ種々の修正を伴ってこの発明を最もうまく
当業者が利用することを可能にするように、この発明の
原理およびその実際の応用を最もうまく説明するために
提示された。
って実行される特定の用途に適するように種々の実施例
においてかつ種々の修正を伴ってこの発明を最もうまく
当業者が利用することを可能にするように、この発明の
原理およびその実際の応用を最もうまく説明するために
提示された。
この発明の範囲は前掲の特許請求の範囲により規定され
ることが意図されている。
ることが意図されている。
第1図は、2個の新規のICUを含む計算システムのブ
ロック図である。 第2図は、ピンパッケージと、新規のICUへのおよび
そこからの種々の人出力の図である。 第3図は、新規なICUを介する、第1図のプロセッサ
バスユニットとメモリバスユニットとの間のデータの流
れを描く、データの流れの図である。 第4図は、一方が命令キャッシュとして使用され、他方
がデータキャッシュとして使用される、1プロセツサあ
たり2個のICUを有する、簡略化され共有されるバス
マルチプロセッサのシステムの図である。 図において、10は命令キャッシュ、102はデータキ
ャッシュ、110は命令プロセッサ、150は命令RO
M、190はメモリ、195は算術加速器、198はデ
ータ転送制御器である。 特許出願人 アドバンスト・マイクロ・デイバイシズ・
インコーホレーテッド
ロック図である。 第2図は、ピンパッケージと、新規のICUへのおよび
そこからの種々の人出力の図である。 第3図は、新規なICUを介する、第1図のプロセッサ
バスユニットとメモリバスユニットとの間のデータの流
れを描く、データの流れの図である。 第4図は、一方が命令キャッシュとして使用され、他方
がデータキャッシュとして使用される、1プロセツサあ
たり2個のICUを有する、簡略化され共有されるバス
マルチプロセッサのシステムの図である。 図において、10は命令キャッシュ、102はデータキ
ャッシュ、110は命令プロセッサ、150は命令RO
M、190はメモリ、195は算術加速器、198はデ
ータ転送制御器である。 特許出願人 アドバンスト・マイクロ・デイバイシズ・
インコーホレーテッド
Claims (1)
- 【特許請求の範囲】 (1)計算シスムテにおいて、他のキャッシュ機能の実
現と一緒に複数個のマルチプロセッサ支持機構の実現を
支持する集積キャッシュユニット(ICU)アーキテク
チャであって、前記システムは、少なくとも中央処理ユ
ニット(CPU)と、前記CPUとICUの間の通信を
容易にするプロセッサバス手段と、メモリと、前記メモ
リとICUの間の通信を容易にするメモリバス手段とを
含み、さらに (a)前記プロセッサバス手段に結合され、ICU/プ
ロセッサバスインターフェイスを制御するためのプロセ
ッサバスユニットと、 (b)前記メモリバス手段に結合され、ICU/メモリ
バスインターフェイスを制御するためのメモリバスユニ
ットと、 (c)前記プロセッサバスユニットと前記メモリバスユ
ニットの両方に結合され、キャッシュ機能を実施するた
めのプログラム可能キャッシュユニットとを備え、前記
プロセッサ可能キャッシュが、前記ICUがマルチプロ
セッサモードにおいて動作されるときはいつでも、前記
複数個のマルチプロセッサ支持機構から特定のマルチプ
ロセッサ支持機構を選択するために使用される得る1組
の特殊レジスタを含む、集積キャッシュユニットアーキ
テクチャ。 (2)前記プログラム可能キャッシュユニットが、第1
の構成においては前記プログラム可能キャッシュ手段内
に配置されかつ第2の構成においては前記プログラム可
能キャッシュ手段の外部に配置されるメモリアレイ手段
と関連する、請求項1に記載のICUアーキテクチャ。 (3)前記メモリアレイ手段が、キャッシュされたデー
タおよび命令信号をストアし、かつ1組のブロックとし
て編成され、各ブロックが予め定められた数のキャッシ
ュされたワードに対応する、請求項2に記載のICUア
ーキテクチャ。 (4)前記プログラム可能キャッシュユニットが可変な
ブロックおよびサブブロックサイズ決定を支持する、請
求項3に記載のICUアーキテクチャ。 (5)前記プログラム機能キャッシュユニットが、 (a)前記プロセッサバスユニットと前記メモリバスユ
ニットとに結合され、アドレス信号を搬送するためのキ
ャッシュユニットアドレスバスと、 (b)前記プロセッサバスユニットと前記メモリバスユ
ニットとに結合され、データ信号を搬送するためのキャ
ッシュユニットデータバスと、 (c)前記キャッシュデータバスに結合され、各ブロッ
クの修正され、共有され、かつロックされたステータス
の指示をストアするためのブロックステータスアレイ手
段と、 (d)前記プロセッサバス制御手段と前記メモリバス制
御手段とに結合され、前記プログラム可能キャッシュユ
ニットと、前記プロセッサバスユニットと、前記メモリ
バスユニットとの動作を同期化しかつ制御するためのキ
ャッシュユニット制御手段とをさらに備える、請求項3
に記載のICUアーキテクチャ。 (6)前記キャッシュ制御手段が、有効なキャッシュア
クセスのためにヒット信号を発生させるようにさらに働
き、かつ前記特殊レジスタの組と前記ブロックステータ
スアレイとにストアされたデータを維持および更新する
、請求項5に記載のICUアーキテクチャ。(7)前記
特殊レジスタの組が、2^n方向セット連想キャッシュ
編成を選択するために少なくとも1ビットを有する少な
くとも1個のプログラム可能レジスタを含み、その場合
nが0より大きいかまたは0に等しい整数である、請求
項6に記載のICUアーキテクチャ。 (8)前記複数個のマルチプロセッサ支持機構が、バス
ウォッチングに関連する少なくとも1個の機構を含み、
さらに、前記ICUアーキテクチャが、プロセッサバス
キャッシュアクセスに対し透明である態様でバスウォッ
チング能力を実現するための手段を備える、請求項7に
記載のICUアーキテクチャ。 (9)前記マルチプロセッサ支持機構の組が所有権機構
を含み、さらに、前記ICUアーキテクチャが、キャッ
シュデータ一貫性を維持するためにバスウォッチングを
利用する共有されたメモリ編成に基づいて少なくとも1
個の所有権機構を支持するための手段を備える、請求項
8に記載のICUアーキテクチャ。 (10)メモリバス読出アクセスとメモリバス書込アク
セスの両方に対しバスウォッチングを可能化および不能
化するための手段をさらに備える、請求項8に記載のI
CUアーキテクチャ。 (11)データ介入オプションがバスウォッチングに関
連して使用されることを選択的に可能化するための手段
をさらに備える、請求項10に記載のICUアーキテク
チャ。 (12)前記バスウォッチング能力の使用を介してキャ
ッシュデータ一貫性を保証するための手段をさらに備え
る、請求項11に記載のICUアーキテクチャ。 (13)読出しおよび書込みのキャッシュされたデータ
を無効にする能力を含むICUのフレキシブルな制御を
可能にする1組のキャッシュ命令を実現するための手段
をさらに備える、請求項6に記載のICUアーキテクチ
ャ。 (14)マルチプロセッサにより共有されるメモリと共
有されないメモリの両方の編成を支持する、請求項6に
記載のICUアーキテクチャ。 (15)すべてのマルチプロセッサ通信および同期化が
、キャッシュデータ一貫性と一緒に、ソフトウェア制御
を介して実施される手段をさらに備える、請求項14に
記載のICUアーキテクチャ。 (16)共有されるメモリ編成が、プログラム可能イン
ターロック動作および内部ICU命令セットを介して制
御される、請求項15に記載のICUアーキテクチャ。 (17)ライトスルーキャッシュを実現するための手段
をさらに備える、請求項6に記載のICUアーキテクチ
ャ。 (18)ライトスルーの共有された変数でコピーバック
キャッシュを実現するための手段をさらに備える、請求
項6に記載のICUアーキテクチャ。 (19)無効の動作を選択的に可能化するための、かつ
前記無効の動作が可能化されないときはいつでも更新動
作を可能化するための手段をさらに含む、請求項10に
記載のICUアーキテクチャ。 (20)ライトスルーおよび無効動作と、ライト同報通
信および無効動作と、ライトスルーおよび更新動作と、
ライト同報通信および更新動作とを選択的に可能化する
ための手段をさらに含む、請求項10に記載のICUア
ーキテクチャ。 (21)前記ブロックステータスアレイ手段にストアさ
れた共有されたブロックステータス情報のフレキシブル
な割当てのための手段をさらに含む、請求項5に記載の
ICUアーキテクチャ。 (22)計算システムにおいて他のキャッシュ機能を支
持する集積キャッシュユニット(ICU)アーキテクチ
ャにおいて複数個のマルチプロセッサ支持機構をフレキ
シブルに実現する方法であって、前記システムが、少な
くとも1個の中央処理ユニット(CPU)と、前記CP
UとICUの間の通信を容易にするプロセッサバス手段
と、メモリと、前記メモリとICUの間の通信を容易に
するメモリバス手段とを含み、さらに (a)前記プロセッサ手段に結合されるプロセッサバス
ユニットを利用して前記ICU内からICU/プロセッ
サバスインターフェイスを制御するステップと、 (b)前記メモリバス手段に結合されるメモリバスユニ
ットを利用して前記ICU内からICU/メモリバスイ
ンターフェイスを制御するステップと、 (c)前記プロセッサバスユニットと前記メモリバスユ
ニットの両方に結合されるプロセッサ可能キャッシュユ
ニットを利用して前記ICU内からキャッシュ機能を実
施するステップとを含み、前記プログラム可能キャッシ
ュユニットが、前記ICUがマルチプロセッサモードで
動作されるときはいつでも、前記複数個のマルチプロセ
ッサ支持機構からマルチプロセッサ支持機構を選択する
ために使用され得る少なくとも1個の特殊レジスタを含
む、方法。 (23)前記特殊レジスタにおいてビットを設定するこ
とによりマルチプロセッサ支持オプションを可能化する
ステップをさらに含む、請求項22に記載の方法。 (24)プログラム可能キャッシュユニットを利用して
キャッシュ機能を実施する前記ステップが、 (a)前記プロセッサバスユニットと前記メモリバスユ
ニットとに結合される内部キャッシュユニットアドレス
バス上で前記ICU内のアドレス信号を搬送するステッ
プと、 (b)前記プロセッサバスユニットと前記メモリバスユ
ニットとに結合される内部キャッシュユニットデータバ
ス上で前記ICU内のデータ信号を搬送するステップと
、 (c)前記キャッシュデータバスに結合されるクロック
ステータスアレイ手段に、各ブロックの修正され、共有
され、かつロックされたステータスの指示をストアする
ステップと、 (d)前記プログラム可能キャッシュユニットと、前記
プロセッサバスと、前記メモリバスユニットとの動作を
キャッシュユニット制御手段を介して同期化および制御
するステップとをさらに含む、請求項23に記載の方法
。 (25)有効なキャッシュアクセスのためにヒット信号
を発生させ、かつ前記キャッシュ制御手段を介して、前
記特殊レジスタの組と前記ブロックステータスアレイと
にストアされたデータを維持および更新するステップを
さらに含む、請求項24に記載の方法。 (26)マルチプロセッサ環境において特定されたプロ
セッサにより排他的に使用されるように変数をロックす
るステップをさらに含む、請求項22に記載の方法。 (27)キャッシュデータ一貫性を保証することに向か
うステップとして、プロセッサバスキャッシュアクセス
に対し透明である態様で、バスウォッチングのステップ
をさらに含む、請求項22に記載の方法。 (28)キャッシュデータ一貫性を保証するためのさら
なるステップとしてデータ介入オプションがバスウォッ
チングと関連して使用されることを可能にするステップ
をさらに含む、請求項27に記載の方法。
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 true JPH01239663A (ja) | 1989-09-25 |
| JP2881309B2 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) |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2011509475A (ja) * | 2008-01-11 | 2011-03-24 | インターナショナル・ビジネス・マシーンズ・コーポレーション | コンピュータを動作させる方法及びシステム |
| US9280480B2 (en) | 2008-01-11 | 2016-03-08 | International Business Machines Corporation | Extract target cache attribute facility and instruction therefor |
Families Citing this family (108)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| EP0325422B1 (en) * | 1988-01-20 | 1996-05-15 | Advanced Micro Devices, Inc. | Integrated cache unit |
| US5025366A (en) * | 1988-01-20 | 1991-06-18 | Advanced Micro Devices, Inc. | Organization of an integrated cache unit for flexible usage in cache system design |
| US5136691A (en) * | 1988-01-20 | 1992-08-04 | Advanced Micro Devices, Inc. | Methods and apparatus for caching interlock variables in an integrated cache memory |
| ATE109910T1 (de) * | 1988-01-20 | 1994-08-15 | Advanced Micro Devices Inc | Organisation eines integrierten cachespeichers zur flexiblen anwendung zur unterstützung von multiprozessor-operationen. |
| 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 |
| ATE243390T1 (de) | 1996-12-27 | 2003-07-15 | Pact Inf Tech Gmbh | 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 |
| US6292872B1 (en) | 1998-02-17 | 2001-09-18 | International Business Machines Corporation | Cache coherency protocol having hovering (H) and recent (R) states |
| US6347361B1 (en) * | 1998-02-17 | 2002-02-12 | International Business Machines Corporation | Cache coherency protocols with posted operations |
| 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 |
| US6272603B1 (en) | 1998-02-17 | 2001-08-07 | International Business Machines Corporation | Cache coherency protocol having hovering (H), recent (R), and tagged (T) states |
| 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 |
| US6483516B1 (en) * | 1998-10-09 | 2002-11-19 | National Semiconductor Corporation | Hierarchical texture cache |
| US6801207B1 (en) * | 1998-10-09 | 2004-10-05 | Advanced Micro Devices, Inc. | Multimedia processor employing a shared CPU-graphics cache |
| US6549903B1 (en) * | 1999-02-17 | 2003-04-15 | Elbrus International Limited | Integrity of tagged data |
| US7003660B2 (en) | 2000-06-13 | 2006-02-21 | Pact Xpp Technologies Ag | Pipeline configuration unit protocols and communication |
| 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 |
| DE10081643D2 (de) | 1999-06-10 | 2002-05-29 | Pact Inf Tech Gmbh | Sequenz-Partitionierung auf Zellstrukturen |
| 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 |
| 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 |
| US6434669B1 (en) * | 1999-09-07 | 2002-08-13 | International Business Machines Corporation | Method of cache management to dynamically update information-type dependent cache policies |
| US6496905B1 (en) * | 1999-10-01 | 2002-12-17 | Hitachi, Ltd. | Write buffer with burst capability |
| US6282617B1 (en) | 1999-10-01 | 2001-08-28 | Sun Microsystems, Inc. | Multiple variable cache replacement policy |
| 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 |
| 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 |
| US7444531B2 (en) | 2001-03-05 | 2008-10-28 | Pact Xpp Technologies Ag | Methods and devices for treating and processing data |
| US7844796B2 (en) | 2001-03-05 | 2010-11-30 | Martin Vorbach | Data processing device and method |
| US9037807B2 (en) | 2001-03-05 | 2015-05-19 | Pact Xpp Technologies Ag | Processor arrangement on a chip including data processing, memory, and interface elements |
| 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 |
| AU2003286131A1 (en) * | 2002-08-07 | 2004-03-19 | Pact Xpp Technologies Ag | Method and device for processing data |
| US7657861B2 (en) | 2002-08-07 | 2010-02-02 | Pact Xpp Technologies Ag | Method and device for processing data |
| 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 |
| DE112004000026D2 (de) * | 2003-04-04 | 2006-06-14 | Pact Xpp Technologies Ag | Verfahren und Vorrichtung für die Datenverarbeitung |
| 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 |
| EP1634182A2 (en) * | 2003-06-17 | 2006-03-15 | PACT XPP Technologies AG | Data processing device and method |
| US7260677B1 (en) * | 2003-07-16 | 2007-08-21 | Unisys Corporation | Programmable system and method for accessing a shared memory |
| US7366873B1 (en) | 2003-08-18 | 2008-04-29 | Cray, Inc. | Indirectly addressed vector load-operate-store method and apparatus |
| US7503048B1 (en) | 2003-08-18 | 2009-03-10 | Cray Incorporated | 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 |
| US7543133B1 (en) | 2003-08-18 | 2009-06-02 | Cray Inc. | Latency tolerant distributed shared memory multiprocessor computer |
| US7735088B1 (en) | 2003-08-18 | 2010-06-08 | Cray Inc. | 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 |
| US7334110B1 (en) | 2003-08-18 | 2008-02-19 | Cray Inc. | Decoupled scalar/vector computer architecture system and method |
| 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 |
| US8307194B1 (en) | 2003-08-18 | 2012-11-06 | Cray Inc. | Relaxed memory consistency model |
| US7421565B1 (en) | 2003-08-18 | 2008-09-02 | Cray Inc. | Method and apparatus for indirectly addressed vector load-add -store across multi-processors |
| JP4700611B2 (ja) | 2003-08-28 | 2011-06-15 | ペーアーツェーテー イクスペーペー テクノロジーズ アクチエンゲゼルシャフト | データ処理装置およびデータ処理方法 |
| US7493621B2 (en) * | 2003-12-18 | 2009-02-17 | International Business Machines Corporation | Context switch data prefetching in multithreaded computer |
| US7617499B2 (en) * | 2003-12-18 | 2009-11-10 | International Business Machines Corporation | Context switch instruction 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 |
| WO2005114491A2 (en) * | 2004-05-21 | 2005-12-01 | Computer Associates Think, Inc. | Structure of 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 | 富士通セミコンダクター株式会社 | キャッシュメモリシステム及びキャッシュメモリの制御方法 |
| 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 |
| EP4348935A1 (en) * | 2021-05-27 | 2024-04-10 | Microsoft Technology Licensing, LLC | Centralized access control for cloud relational database management system resources |
| US11934548B2 (en) * | 2021-05-27 | 2024-03-19 | Microsoft Technology Licensing, Llc | Centralized access control for cloud relational database management system resources |
| US20250258672A1 (en) * | 2024-02-08 | 2025-08-14 | Samsung Electronics Co., Ltd. | Systems and methods of instruction sets for cache processors |
Family Cites Families (56)
| 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 |
| US4394731A (en) * | 1980-11-10 | 1983-07-19 | International Business Machines Corporation | Cache storage line shareability control for a multiprocessor system |
| US4400770A (en) * | 1980-11-10 | 1983-08-23 | International Business Machines Corporation | Cache synonym detection and handling means |
| 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 |
| WO1984002409A1 (en) * | 1982-12-09 | 1984-06-21 | Sequoia Systems Inc | Memory backup system |
| 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 |
| ATE109910T1 (de) * | 1988-01-20 | 1994-08-15 | Advanced Micro Devices Inc | Organisation eines integrierten cachespeichers zur flexiblen anwendung zur unterstützung von multiprozessor-operationen. |
| 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 |
| EP0325422B1 (en) * | 1988-01-20 | 1996-05-15 | Advanced Micro Devices, Inc. | Integrated cache unit |
| 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 |
-
1989
- 1989-01-18 AT AT89300434T patent/ATE109910T1/de not_active IP Right Cessation
- 1989-01-18 EP EP89300434A patent/EP0325421B1/en not_active Expired - Lifetime
- 1989-01-18 DE DE68917326T patent/DE68917326T2/de not_active Expired - Lifetime
- 1989-01-19 JP JP1010938A patent/JP2881309B2/ja not_active Expired - Lifetime
-
1995
- 1995-05-04 US US08/434,494 patent/US5627992A/en not_active Expired - Lifetime
-
1997
- 1997-01-21 US US08/785,389 patent/US6014728A/en not_active Expired - Lifetime
Cited By (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2011509475A (ja) * | 2008-01-11 | 2011-03-24 | インターナショナル・ビジネス・マシーンズ・コーポレーション | コンピュータを動作させる方法及びシステム |
| US9280480B2 (en) | 2008-01-11 | 2016-03-08 | International Business Machines Corporation | Extract target cache attribute facility and instruction therefor |
| US9996472B2 (en) | 2008-01-11 | 2018-06-12 | International Business Machines Corporation | Extract target cache attribute facility and instruction therefor |
| US10387323B2 (en) | 2008-01-11 | 2019-08-20 | International Business Machines Corporation | Extract target cache attribute facility and instruction therefor |
| US10963391B2 (en) | 2008-01-11 | 2021-03-30 | International Business Machines Corporation | Extract target cache attribute facility and instruction therefor |
Also Published As
| Publication number | Publication date |
|---|---|
| JP2881309B2 (ja) | 1999-04-12 |
| EP0325421A3 (en) | 1991-01-16 |
| US6014728A (en) | 2000-01-11 |
| EP0325421B1 (en) | 1994-08-10 |
| EP0325421A2 (en) | 1989-07-26 |
| DE68917326T2 (de) | 1995-03-02 |
| DE68917326D1 (de) | 1994-09-15 |
| US5627992A (en) | 1997-05-06 |
| ATE109910T1 (de) | 1994-08-15 |
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 | |
| US12001351B2 (en) | Multiple-requestor memory access pipeline and arbiter | |
| US6408345B1 (en) | Superscalar memory transfer controller in multilevel memory organization | |
| US4646233A (en) | Physical cache unit for computer | |
| JP3067112B2 (ja) | 遅延プッシュをコピー・バック・データ・キャッシュに再ロードする方法 | |
| US4942518A (en) | Cache store bypass for computer | |
| JP3431626B2 (ja) | データ処理装置 | |
| US6466825B1 (en) | Method and apparatus for address transfers, system serialization, and centralized cache and transaction control, in a symetric multiprocessor system | |
| US20230325314A1 (en) | Multi-level cache security | |
| US5019965A (en) | Method and apparatus for increasing the data storage rate of a computer system having a predefined data path width | |
| US5696937A (en) | Cache controller utilizing a state machine for controlling invalidations in a network with dual system busses | |
| US20030145136A1 (en) | Method and apparatus for implementing a relaxed ordering model in a computer system | |
| EP0390538A2 (en) | Hierarchical cache memory apparatus | |
| US7620954B2 (en) | Mechanism for handling load lock/store conditional primitives in directory-based distributed shared memory multiprocessors | |
| JPH05181745A (ja) | 二次レベルキャッシュ制御装置 | |
| JP3218316B2 (ja) | 集積キャッシュユニットおよびその内部でキャッシュ機能を実現するための方法 | |
| 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 | |
| EP1039377B1 (en) | System and method supporting multiple outstanding requests to multiple targets of a memory hierarchy | |
| EP0380842A2 (en) | Method and apparatus for interfacing a system control unit for a multiprocessor system with the central processing units | |
| US6973541B1 (en) | System and method for initializing memory within a data processing system | |
| EP1782184B1 (en) | Selectively performing fetches for store operations during speculative execution | |
| US5881256A (en) | Bus interface unit capable of simultaneously proceeding with two bus cycles in a high-performance microprocessor |
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 |