JP3103581B2 - マルチプロセッサシステム - Google Patents
マルチプロセッサシステムInfo
- Publication number
- JP3103581B2 JP3103581B2 JP02163026A JP16302690A JP3103581B2 JP 3103581 B2 JP3103581 B2 JP 3103581B2 JP 02163026 A JP02163026 A JP 02163026A JP 16302690 A JP16302690 A JP 16302690A JP 3103581 B2 JP3103581 B2 JP 3103581B2
- Authority
- JP
- Japan
- Prior art keywords
- data item
- memory
- central processing
- processing unit
- cache
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 230000015654 memory Effects 0.000 claims abstract description 254
- 238000012545 processing Methods 0.000 claims abstract description 178
- 238000012546 transfer Methods 0.000 claims abstract description 12
- 238000000034 method Methods 0.000 claims description 26
- 230000004044 response Effects 0.000 claims description 24
- 230000003750 conditioning effect Effects 0.000 claims 5
- 230000001143 conditioned effect Effects 0.000 claims 3
- 230000008859 change Effects 0.000 description 49
- 238000007726 management method Methods 0.000 description 43
- 230000001052 transient effect Effects 0.000 description 21
- 230000007246 mechanism Effects 0.000 description 12
- 230000008569 process Effects 0.000 description 12
- 238000004891 communication Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 5
- 230000000694 effects Effects 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 230000000644 propagated effect Effects 0.000 description 4
- 230000007704 transition Effects 0.000 description 4
- 230000006399 behavior Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 3
- 230000006378 damage Effects 0.000 description 3
- 238000013500 data storage Methods 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 2
- 230000008878 coupling Effects 0.000 description 2
- 238000010168 coupling process Methods 0.000 description 2
- 238000005859 coupling reaction Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 230000006798 recombination Effects 0.000 description 2
- 238000005215 recombination Methods 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 235000008331 Pinus X rigitaeda Nutrition 0.000 description 1
- 235000011613 Pinus brutia Nutrition 0.000 description 1
- 241000018646 Pinus brutia Species 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 239000008186 active pharmaceutical agent Substances 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000010267 cellular communication Effects 0.000 description 1
- 239000013256 coordination polymer Substances 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000003278 mimic effect Effects 0.000 description 1
- 239000003607 modifier Substances 0.000 description 1
- AHLBNYSZXLDEJQ-FWEHEUNISA-N orlistat Chemical compound CCCCCCCCCCC[C@H](OC(=O)[C@H](CC(C)C)NC=O)C[C@@H]1OC(=O)[C@H]1CCCCCC AHLBNYSZXLDEJQ-FWEHEUNISA-N 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000002265 prevention Effects 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
- 230000007727 signaling mechanism Effects 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000026676 system process Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3861—Recovery, e.g. branch miss-prediction, exception handling
- G06F9/3865—Recovery, e.g. branch miss-prediction, exception handling using deferred exception handling, e.g. exception flags
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/004—Error avoidance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/173—Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
- G06F15/17337—Direct connection machines, e.g. completely connected computers, point to point communication networks
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Mathematical Physics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Multi Processors (AREA)
- Hardware Redundancy (AREA)
Description
【発明の詳細な説明】 [産業上の利用分野] 本発明は、ディジタルデータ処理システムに関し、特
定すると分散形階層メモリアーキテクチャを備える多重
処理システムに関する。
定すると分散形階層メモリアーキテクチャを備える多重
処理システムに関する。
[従来技術,発明の課題] 従来技術によると、多重処理システムの処理ユニット
を結合するための多数の形態が提供されている。従来の
設計の中には、システムメモリバンクに記憶されたデー
タを共有する処理ユニットが、高帯域幅共有バスまたは
スイッチング回路網を介してそれらのバンクに結合され
たものがある。激しい使用期間中、複数の処理ユニット
が共有データに対するアクセスを同時に追及するとき
に、障害が生ずるようであった。
を結合するための多数の形態が提供されている。従来の
設計の中には、システムメモリバンクに記憶されたデー
タを共有する処理ユニットが、高帯域幅共有バスまたは
スイッチング回路網を介してそれらのバンクに結合され
たものがある。激しい使用期間中、複数の処理ユニット
が共有データに対するアクセスを同時に追及するとき
に、障害が生ずるようであった。
伝送の障害の形成の危険を最小にするため、個々の処
理ユニットを局部的メモリ要素に結合して、半自動処理
セルを形成する分散形メモリシステムが開発された。多
重処理の利益を得るために、より最近設計されたシステ
ムは、階層的アーキテクチャーの利用によりセル通信を
確立した。
理ユニットを局部的メモリ要素に結合して、半自動処理
セルを形成する分散形メモリシステムが開発された。多
重処理の利益を得るために、より最近設計されたシステ
ムは、階層的アーキテクチャーの利用によりセル通信を
確立した。
従来形式の分散形メモリシステムは、単一のデータア
イテムの複数のコピーを複数の処理セルに存在せしめ
る。それゆえ、すべての処理セルが同一のデータ要素の
アップトゥーデイトのコピーを維持することを保証する
ことが難しい。この問題を解決しようとする、すなわち
データの同一性を持続しようとする従来の努力は、複雑
な信号機構を利用するソフトウェア指向技術に依存す
る。
イテムの複数のコピーを複数の処理セルに存在せしめ
る。それゆえ、すべての処理セルが同一のデータ要素の
アップトゥーデイトのコピーを維持することを保証する
ことが難しい。この問題を解決しようとする、すなわち
データの同一性を持続しようとする従来の努力は、複雑
な信号機構を利用するソフトウェア指向技術に依存す
る。
これらのソフトウェア指向の解決法と関連する処理お
よび信号のオーバーヘッドを避けるために、Frank等の
米国特許第4,622,631号は、関連するプライベートメモ
リすなわちキャッシュを各々有する複数のプロセッサ
が、メインメモリ要素に含まれるデータを共有する多重
処理システムを開示している。その共有メモリ内のデー
タはブロックに仕切られ、その各々が、メインメモリお
よび複数のプロセッサのいずれか1つにより所有され得
る。定義により、データブロックの現在の所有者は、そ
のブロックに対する「正しい」すなわちもっともアップ
トゥーデートなデータを維持する。1つの階層的手法
が、Wilson Jr.等の英国特許出願第2,178,205号により
開示されているが、この特許出願においては、多重処理
システムは、第1のバスを介して相互に結合された分散
配されたキャッシュメモリ要素を含むといわれる。第1
バスに取り付けられた第2のより高レベルのキャッシュ
メモリが、それ以下のキャッシュ内の各メモリ位置のコ
ピーを保持する。第2レベルキャッシュの上には、第3
のさらに高レベルのキャッシュおよびメインシステムメ
モリが存在している。第3レベルキャッシュおよびシス
テムメインメモリは、それ以下のキャッシュの各メモリ
位置のコピーを維持する。システム内のプロセッサは、
データの変更されたコピーをそれら自身の専用のキャッ
シュから、関連するより高レベルのキャッシュならびに
システムメインメモリに伝送し、他方同時に他のキャッ
シュに報知して、新しく変更されたデータのそれら自身
のコピーを無効化するものと理解される。
よび信号のオーバーヘッドを避けるために、Frank等の
米国特許第4,622,631号は、関連するプライベートメモ
リすなわちキャッシュを各々有する複数のプロセッサ
が、メインメモリ要素に含まれるデータを共有する多重
処理システムを開示している。その共有メモリ内のデー
タはブロックに仕切られ、その各々が、メインメモリお
よび複数のプロセッサのいずれか1つにより所有され得
る。定義により、データブロックの現在の所有者は、そ
のブロックに対する「正しい」すなわちもっともアップ
トゥーデートなデータを維持する。1つの階層的手法
が、Wilson Jr.等の英国特許出願第2,178,205号により
開示されているが、この特許出願においては、多重処理
システムは、第1のバスを介して相互に結合された分散
配されたキャッシュメモリ要素を含むといわれる。第1
バスに取り付けられた第2のより高レベルのキャッシュ
メモリが、それ以下のキャッシュ内の各メモリ位置のコ
ピーを保持する。第2レベルキャッシュの上には、第3
のさらに高レベルのキャッシュおよびメインシステムメ
モリが存在している。第3レベルキャッシュおよびシス
テムメインメモリは、それ以下のキャッシュの各メモリ
位置のコピーを維持する。システム内のプロセッサは、
データの変更されたコピーをそれら自身の専用のキャッ
シュから、関連するより高レベルのキャッシュならびに
システムメインメモリに伝送し、他方同時に他のキャッ
シュに報知して、新しく変更されたデータのそれら自身
のコピーを無効化するものと理解される。
Frank等およびWilson Jr.等により提案される解決法
に拘らず、多重処理システムの設計者および使用者は、
データの同一性およびバスの競合の問題に遭遇する。例
えば、Wilson Jr.等に関していうと、バスおよびメモリ
の競合は、システムプロセッサがメインメモリを各変更
データで継続的に更新状態に維持しようとするから増大
される。
に拘らず、多重処理システムの設計者および使用者は、
データの同一性およびバスの競合の問題に遭遇する。例
えば、Wilson Jr.等に関していうと、バスおよびメモリ
の競合は、システムプロセッサがメインメモリを各変更
データで継続的に更新状態に維持しようとするから増大
される。
さらに、上述の従来設計は、いずれも、制限された数
以上の処理ユニットを支持できない。この「段階的拡張
可能性(スケーラビリティ)」の制約は、Wilson Jr.等
およびFrank等の両方式とも、メインメモリの記憶容量
が各追加のプロセッサに順応するように増大されること
を必要とするから増大する。
以上の処理ユニットを支持できない。この「段階的拡張
可能性(スケーラビリティ)」の制約は、Wilson Jr.等
およびFrank等の両方式とも、メインメモリの記憶容量
が各追加のプロセッサに順応するように増大されること
を必要とするから増大する。
それゆえ、本発明の目的は、データの同一性の改善な
らびに待ち時間およびバス競合の低減を伴う改良された
多重処理システムを提供することである。
らびに待ち時間およびバス競合の低減を伴う改良された
多重処理システムを提供することである。
本発明の他の特徴は、スケーラビリティが制限されな
い多重処理システムを提供することである。
い多重処理システムを提供することである。
本発明の他の目的は、データの同一性を維持するため
にソフトウェアのオーバーヘッドを全然または少ししか
必要とせず、バス帯域幅が改善されかつ同期が改善され
た、物理的に分散されたメモリを備える多重処理システ
ムを提供することである。
にソフトウェアのオーバーヘッドを全然または少ししか
必要とせず、バス帯域幅が改善されかつ同期が改善され
た、物理的に分散されたメモリを備える多重処理システ
ムを提供することである。
[課題を解決するための手段] 上述の目的は、本発明の一側面においては、「メモリ
管理要素(または手段)」と称されるインターフェース
を介して共通メモリを共有しそれにアクセスする複数の
中央処理ユニットを具備するディジタルデータ処理シス
テムを提供することによって達成される。
管理要素(または手段)」と称されるインターフェース
を介して共通メモリを共有しそれにアクセスする複数の
中央処理ユニットを具備するディジタルデータ処理シス
テムを提供することによって達成される。
メモリ管理要素は、とりわけ、共通メモリ内のデータ
に少なくとも2つのモードでアクセスすることを可能に
する。第1のモードにおいて、メモリに存在する所与の
データへのアクセスを要求するすべての中央処理ユニッ
トは、データの存在について報知される(必ずしもそれ
にアクセスされないが)。第2のモードにおいては、存
在するデータへのアクセスを要求する唯一の選択された
中央処理ユニットが、それが存在することについて報知
され、データへのアクセスを要求する他の処理装置は、
それが存在しないことについて(それがメモリに存在し
ないかのように)報知される。
に少なくとも2つのモードでアクセスすることを可能に
する。第1のモードにおいて、メモリに存在する所与の
データへのアクセスを要求するすべての中央処理ユニッ
トは、データの存在について報知される(必ずしもそれ
にアクセスされないが)。第2のモードにおいては、存
在するデータへのアクセスを要求する唯一の選択された
中央処理ユニットが、それが存在することについて報知
され、データへのアクセスを要求する他の処理装置は、
それが存在しないことについて(それがメモリに存在し
ないかのように)報知される。
第1のアクセスモードにおいては、例えば、第1の処
理ユニットが選択されたデータ要素への読取り/書込み
アクセスを要求し、同時に、第2の処理ユニットがその
同じデータ要素へのリードオンリーアクセスを要求する
と、メモリ管理要素は、要求される要素がメモリ内に記
憶されていることを両ユニットに報知し、両ユニットが
データに要求される態様でアクセスすることを可能にし
得る。他方、この同じデータ要素が、要求されたとき第
2のアクセスモードがあれば、メモリ管理要素は、例え
ば、第1中央処理ユニットにのみ、データの存在につい
て報知し、第2中央処理ユニットによるそれに対する要
求を無視する(代わりに、要求されるデータがメモリに
存在しないことを第2中央処理装置にすぐさま報知す
る)。
理ユニットが選択されたデータ要素への読取り/書込み
アクセスを要求し、同時に、第2の処理ユニットがその
同じデータ要素へのリードオンリーアクセスを要求する
と、メモリ管理要素は、要求される要素がメモリ内に記
憶されていることを両ユニットに報知し、両ユニットが
データに要求される態様でアクセスすることを可能にし
得る。他方、この同じデータ要素が、要求されたとき第
2のアクセスモードがあれば、メモリ管理要素は、例え
ば、第1中央処理ユニットにのみ、データの存在につい
て報知し、第2中央処理ユニットによるそれに対する要
求を無視する(代わりに、要求されるデータがメモリに
存在しないことを第2中央処理装置にすぐさま報知す
る)。
この第2モード下におけるアクセスに対して利用可能
なデータは、「アンカード(係留)」と称される。以下
に記述される本発明の好ましい実施例において、データ
は、普通第1モードにおいてアクセスされ、第2モード
下におけるアクセスは、例えばデスクリプタの創成およ
び破壊中により少なくしか起こらない。
なデータは、「アンカード(係留)」と称される。以下
に記述される本発明の好ましい実施例において、データ
は、普通第1モードにおいてアクセスされ、第2モード
下におけるアクセスは、例えばデスクリプタの創成およ
び破壊中により少なくしか起こらない。
本発明の1側面に従うと、中央処理ユニットは、共有
データ要素に対してアクセスモードを設定し得る。かく
して、例えば、もしも第1中央処理ユニットが共有デー
タに対して排他的アクセスを維持すると、そのユニット
は、例えばその「アンカービット」を設定することによ
って、そのデータ要素を係留でき、そしてそれにより、
少なくともそのビットがターンオフされるときまで、メ
モリ管理システムをして他の中央処理ユニットによるそ
のデータへのアクセスの要求を無視せしめる。
データ要素に対してアクセスモードを設定し得る。かく
して、例えば、もしも第1中央処理ユニットが共有デー
タに対して排他的アクセスを維持すると、そのユニット
は、例えばその「アンカービット」を設定することによ
って、そのデータ要素を係留でき、そしてそれにより、
少なくともそのビットがターンオフされるときまで、メ
モリ管理システムをして他の中央処理ユニットによるそ
のデータへのアクセスの要求を無視せしめる。
本発明の他の側面においては、共通メモリは、各々中
央処理ユニットの対応するものに結合されかつそれと関
連する複数の独立のメモリ要素を備えることができる。
各処理ユニット/メモリ要素対は、「処理セル」または
単に「セル」と称される。メモリ管理システムは、メモ
リを選択的に割り当て、セルにより発生されるアクセス
要求に応答してデータ要素のコピーを、若干排他的に、
セルからセルに移動させる。
央処理ユニットの対応するものに結合されかつそれと関
連する複数の独立のメモリ要素を備えることができる。
各処理ユニット/メモリ要素対は、「処理セル」または
単に「セル」と称される。メモリ管理システムは、メモ
リを選択的に割り当て、セルにより発生されるアクセス
要求に応答してデータ要素のコピーを、若干排他的に、
セルからセルに移動させる。
本発明の他の側面にしたがうと、処理セルは、それぞ
れのメモリ要素に記憶される各データの属性を名づけ記
述するデスクリプタのディレクトリを維持する。各デス
クリプタの一部は、「アンカービット」を含む。しかし
てこのアンカービットは、上に論述したように、処理セ
ル内のデータの特定のアイテムに対して他の中央処理ユ
ニットにより発生されるアクセス要求に応答するためど
のアクセスモード(例えば「通常」または「係留」)が
行使されるべきかを決定するように局部中央処理ユニッ
トによりセットされ得る。
れのメモリ要素に記憶される各データの属性を名づけ記
述するデスクリプタのディレクトリを維持する。各デス
クリプタの一部は、「アンカービット」を含む。しかし
てこのアンカービットは、上に論述したように、処理セ
ル内のデータの特定のアイテムに対して他の中央処理ユ
ニットにより発生されるアクセス要求に応答するためど
のアクセスモード(例えば「通常」または「係留」)が
行使されるべきかを決定するように局部中央処理ユニッ
トによりセットされ得る。
本発明は、他の側面において、複数の処理セルおよび
メモリ管理要素を備えるディジタルデータ処理システム
であって、少なくとも第1の中央処理ユニットが所有権
要求信号を発生し得、第2の中央処理ユニットがリード
オンリ要求信号を発生し得るディジタルデータ処理シス
テムを提供する。所有権要求信号は、情報表示信号への
優先アクセス要求を表わし、他方リードオンリー要求信
号は、処理セルの他のものにおいて優先アクセスに対し
て記憶される情報表示信号への二次的アクセス要求を表
わす。
メモリ管理要素を備えるディジタルデータ処理システム
であって、少なくとも第1の中央処理ユニットが所有権
要求信号を発生し得、第2の中央処理ユニットがリード
オンリ要求信号を発生し得るディジタルデータ処理シス
テムを提供する。所有権要求信号は、情報表示信号への
優先アクセス要求を表わし、他方リードオンリー要求信
号は、処理セルの他のものにおいて優先アクセスに対し
て記憶される情報表示信号への二次的アクセス要求を表
わす。
メモリ管理要素は、第1プロセッサからの所有権要求
信号に応答して、関連するメモリ内に要求される情報表
示信号に対して物理的記憶スペースを排他的に割り当て
る。メモリ管理要素は、さらに、第2中央処理ユニット
によるその同じ情報表示信号に対するリードオンリー要
求に応答し、データのリードオンリーコピーを対応する
処理セルに転送する。
信号に応答して、関連するメモリ内に要求される情報表
示信号に対して物理的記憶スペースを排他的に割り当て
る。メモリ管理要素は、さらに、第2中央処理ユニット
によるその同じ情報表示信号に対するリードオンリー要
求に応答し、データのリードオンリーコピーを対応する
処理セルに転送する。
第1CPU内における後記憶(ポスト−ストア)要素によ
り要求の開始の際、メモリ管理要素は、第1情報表示信
号のコピーを、それ自身のメモリから第2中央処理ユニ
ットと関連するメモリへ転送する。
り要求の開始の際、メモリ管理要素は、第1情報表示信
号のコピーを、それ自身のメモリから第2中央処理ユニ
ットと関連するメモリへ転送する。
上述の形式のシステムは、バスおよびメモリの競合が
低減された改良された多重処理能力を提供する。排他的
データコピーをかかるアクセスを必要とするプロセッサ
に動的に割当てること、ならびに複数のプロセッサによ
り同時に必要とされるデータコピーの共有によって、シ
ステムは、バスのトラフィックおよびデータのアクセス
遅延を減ずることができる。データ要素を係留しかつ
「ポスト−ストア更新を強制するような追加の能力を提
供することによって、システムは、データの移動につい
てより大きなプログラム制御能力を与えることができ
る。本発明のこれらおよびその他の側面は、以下に続く
説明で明らかである。
低減された改良された多重処理能力を提供する。排他的
データコピーをかかるアクセスを必要とするプロセッサ
に動的に割当てること、ならびに複数のプロセッサによ
り同時に必要とされるデータコピーの共有によって、シ
ステムは、バスのトラフィックおよびデータのアクセス
遅延を減ずることができる。データ要素を係留しかつ
「ポスト−ストア更新を強制するような追加の能力を提
供することによって、システムは、データの移動につい
てより大きなプログラム制御能力を与えることができ
る。本発明のこれらおよびその他の側面は、以下に続く
説明で明らかである。
[実施例] [システムの構造および動作] 第1A図は本発明に従って構成されたマルチプロセッサ
ディジタルデータ処理システムを描く概略線図である。
例示されるシステムは、関連するメモリ要素(すなわち
キャッシュ)42A、42Bおよび42Cにそれぞれ接続された
複数の中央処理ユニット40A、40Bおよび40Cを備える。
各対の中央処理ユニットおよびメモリユニット間の通信
は、図示のようにバス44A、44Bおよび44Cに沿って実施
される。例示されたシステムはさらに、バス48A、48Bお
よび48Cを介して、メモリ要素42A、42Bおよび42Cに記憶
された情報表示信号にアクセスするためのメモリ管理要
素46を備える。
ディジタルデータ処理システムを描く概略線図である。
例示されるシステムは、関連するメモリ要素(すなわち
キャッシュ)42A、42Bおよび42Cにそれぞれ接続された
複数の中央処理ユニット40A、40Bおよび40Cを備える。
各対の中央処理ユニットおよびメモリユニット間の通信
は、図示のようにバス44A、44Bおよび44Cに沿って実施
される。例示されたシステムはさらに、バス48A、48Bお
よび48Cを介して、メモリ要素42A、42Bおよび42Cに記憶
された情報表示信号にアクセスするためのメモリ管理要
素46を備える。
例示のシステム10において、中央処理ユニット40A、4
0Bおよび40Cは、各々、それぞれラベル50A、50Bおよび5
0Cを付したアクセス要求要素ならびに51A、51Bおよび51
Cを付したポスト−ストア要素を備える。アクセス要求
要素は、メモリ要素42A、42Bおよび42Cに記憶される情
報へのアクセス要求を表わす信号を発生する。要素50
A、50Bおよび50Cにより発生されるアクセス要求信号の
諸形式の中には、情報表示信号への優先アクセス要求を
表わす所有権要求信号がある。ポスト−ストア要素51
A、51Bおよび51Cは、データ、例えば、関連する処理セ
ルで排他的に所有され、他の処理セルにおいて無効デス
クリプタが割り当てられるもののコピーの他のキャッシ
ュへの転送要求を表わす信号要求を発生する。好ましい
実施例において、アクセス要求要素50A、50Bおよび50C
ならびにポスト−ストア要素51A、51Bおよび51Cは、中
央処理ユニット40A、40Bおおお40C上で実施され後刻説
明される命令サブセットを含む。
0Bおよび40Cは、各々、それぞれラベル50A、50Bおよび5
0Cを付したアクセス要求要素ならびに51A、51Bおよび51
Cを付したポスト−ストア要素を備える。アクセス要求
要素は、メモリ要素42A、42Bおよび42Cに記憶される情
報へのアクセス要求を表わす信号を発生する。要素50
A、50Bおよび50Cにより発生されるアクセス要求信号の
諸形式の中には、情報表示信号への優先アクセス要求を
表わす所有権要求信号がある。ポスト−ストア要素51
A、51Bおよび51Cは、データ、例えば、関連する処理セ
ルで排他的に所有され、他の処理セルにおいて無効デス
クリプタが割り当てられるもののコピーの他のキャッシ
ュへの転送要求を表わす信号要求を発生する。好ましい
実施例において、アクセス要求要素50A、50Bおよび50C
ならびにポスト−ストア要素51A、51Bおよび51Cは、中
央処理ユニット40A、40Bおおお40C上で実施され後刻説
明される命令サブセットを含む。
メモリ要素42A、42Bおよび42Cは、それぞれ制御要素5
2A、52Bおよび52Cを具備する。これらの制御要素は、各
々、図示のように、対応するディレクトリ要素56A、56B
および56Cを介してデータ記憶領域54A、54Bおよび54Cに
接続される。ストア54A、54Bおよび54Cは、それぞれの
中央処理ユニットにより必要とされるデータおよび命令
信号に対して物理的記憶スペースを提供するように、例
示されるシステムにより利用される。かくして、ストア
54Aは、CPU40Aにより使用されるデータおよび制御情報
を維持し、ストア54Bおよび54Cは、それぞれ中央処理ユ
ニット40Bおよび40Cにより使用される情報を維持する。
各ストアに維持される情報信号は、好ましくは信号のシ
ステムアドレスに対応する独特のデスクリプタにより識
別される。これらのデスクリプタは、対応するディレク
トリのアドレス記憶位置に記憶される。デスクリプタは
独特と考えられるが、若干のデスクリプタの複数のコピ
ーは、メモリ要素42A、42Bおおお42C間に存在し得る。
ここで、これらの複数のコピーは、同じデータ要素のコ
ピーを識別する。
2A、52Bおよび52Cを具備する。これらの制御要素は、各
々、図示のように、対応するディレクトリ要素56A、56B
および56Cを介してデータ記憶領域54A、54Bおよび54Cに
接続される。ストア54A、54Bおよび54Cは、それぞれの
中央処理ユニットにより必要とされるデータおよび命令
信号に対して物理的記憶スペースを提供するように、例
示されるシステムにより利用される。かくして、ストア
54Aは、CPU40Aにより使用されるデータおよび制御情報
を維持し、ストア54Bおよび54Cは、それぞれ中央処理ユ
ニット40Bおよび40Cにより使用される情報を維持する。
各ストアに維持される情報信号は、好ましくは信号のシ
ステムアドレスに対応する独特のデスクリプタにより識
別される。これらのデスクリプタは、対応するディレク
トリのアドレス記憶位置に記憶される。デスクリプタは
独特と考えられるが、若干のデスクリプタの複数のコピ
ーは、メモリ要素42A、42Bおおお42C間に存在し得る。
ここで、これらの複数のコピーは、同じデータ要素のコ
ピーを識別する。
中央処理ユニット40A、40Bおよび40Cにより発生され
るアクセス要求信号は、他の制御情報とともに、要求さ
れる情報信号のSVAアドレスに整合するSVA要求部分を含
む。制御要素52A、52Bおよび52Cは、それぞれの中央処
理ユニット40A、40Bおよび40Cにより発生されるアクセ
ス要求信号に応答して、要求される情報表示信号が対応
する記憶要素54A、54Bおよび54Cに記憶されているか否
かを決定する。もしもそうならば、情報のそのアイテム
は、要求しているプロセッサにより使用のため転送され
る。もしそうでなければ、制御ユニット52A,52Bおよび5
2Cは、アクセス要求信号を線48A、48Bおよび48Cに沿っ
て前記のメモリ管理要素に伝送する。
るアクセス要求信号は、他の制御情報とともに、要求さ
れる情報信号のSVAアドレスに整合するSVA要求部分を含
む。制御要素52A、52Bおよび52Cは、それぞれの中央処
理ユニット40A、40Bおよび40Cにより発生されるアクセ
ス要求信号に応答して、要求される情報表示信号が対応
する記憶要素54A、54Bおよび54Cに記憶されているか否
かを決定する。もしもそうならば、情報のそのアイテム
は、要求しているプロセッサにより使用のため転送され
る。もしそうでなければ、制御ユニット52A,52Bおよび5
2Cは、アクセス要求信号を線48A、48Bおよび48Cに沿っ
て前記のメモリ管理要素に伝送する。
各キャッシュディレクトリ例えば56Aは、内容アドレ
ス可能メモリとして働く。これは、キャッシュ例えば42
Aをして、そのデスクリプタのずべてを反復的に捜索す
ることなくSVAスペースの特定のページに対するデスク
リプタを見つけることを可能にする。各キャッシュディ
レクトリは、128セットをもつ16ウェイセットアソシエ
イティブメモリとして実施される。SVAスペースの全ペ
ージは、キャッシュディレクトリセットと各々関連する
128の等価なクラスに分割される。あるページに対する
デスクリプタは、ページの等価クラスに対応するキャッ
シュディレクトリのセットにのみ記憶できる。等価クラ
スは、追って詳述されるように、SVA[20:14]により選
択される。任意の所与の時間にて、キャッシュは、SVA
[20:14]に対して同じ値で16ページ以上を書き込むこ
とができない。何故ならば、各セットには16の要素があ
るからである。
ス可能メモリとして働く。これは、キャッシュ例えば42
Aをして、そのデスクリプタのずべてを反復的に捜索す
ることなくSVAスペースの特定のページに対するデスク
リプタを見つけることを可能にする。各キャッシュディ
レクトリは、128セットをもつ16ウェイセットアソシエ
イティブメモリとして実施される。SVAスペースの全ペ
ージは、キャッシュディレクトリセットと各々関連する
128の等価なクラスに分割される。あるページに対する
デスクリプタは、ページの等価クラスに対応するキャッ
シュディレクトリのセットにのみ記憶できる。等価クラ
スは、追って詳述されるように、SVA[20:14]により選
択される。任意の所与の時間にて、キャッシュは、SVA
[20:14]に対して同じ値で16ページ以上を書き込むこ
とができない。何故ならば、各セットには16の要素があ
るからである。
処理セルは、サブページに対する要求に応答すると
き、要求するユニットに、サブページデータを局部キャ
ッシュからの特定のデスクリプタフィールドとともに供
給する。要求者は、それらのフィールドをそれ自身のデ
スクリプタ領域に複写するか(もしもそれが他の有効サ
ブページを有しなければ)、あるいはこれらのフィール
ドをデスクリプタフィールド中に論理的にOR入力する。
あるデスクリプタフィールドは、応答者によって供給さ
れることも要求者によって更新されることも決してな
い。
き、要求するユニットに、サブページデータを局部キャ
ッシュからの特定のデスクリプタフィールドとともに供
給する。要求者は、それらのフィールドをそれ自身のデ
スクリプタ領域に複写するか(もしもそれが他の有効サ
ブページを有しなければ)、あるいはこれらのフィール
ドをデスクリプタフィールド中に論理的にOR入力する。
あるデスクリプタフィールドは、応答者によって供給さ
れることも要求者によって更新されることも決してな
い。
第2図は、本発明を実施するのに使用するための例示
の処理セル18Aに対する好まし構造を描くものである。
例示される処理セル18Aは、中央処理ユニット(プロセ
ッサ)58を備えており、そして該中央処理ユニット58
は、それぞれプロセッサバス66および命令バス68を介し
て外部デバイスインターフェース60、データサブキャッ
シュ62および命令サブキャッシュ64に結合されている。
の処理セル18Aに対する好まし構造を描くものである。
例示される処理セル18Aは、中央処理ユニット(プロセ
ッサ)58を備えており、そして該中央処理ユニット58
は、それぞれプロセッサバス66および命令バス68を介し
て外部デバイスインターフェース60、データサブキャッ
シュ62および命令サブキャッシュ64に結合されている。
プロセッサ58は、数種の商業的に入手し得るプロセッ
サの任意のもの例えばMotorola68000CPUで、データおよ
びアドレス制御線69Aおよび69Bを介して動作するサブキ
ャッシュ同時実行ユニットの制御下でインターフェース
サブキャッシュ62および64に適合され、かつ後述のよう
にメモリ命令を実行するように適合されたものより成
る。
サの任意のもの例えばMotorola68000CPUで、データおよ
びアドレス制御線69Aおよび69Bを介して動作するサブキ
ャッシュ同時実行ユニットの制御下でインターフェース
サブキャッシュ62および64に適合され、かつ後述のよう
にメモリ命令を実行するように適合されたものより成
る。
処理セル18Aは、さらにキャッシュ制御ユニット74Aお
よび74Bを介してキャッシュバス76に結合されたデータ
メモリユニット72Aおよび72Bを備える。キャッシュ制御
ユニット74Cおよび74Dは、キャッシュバス76と処理およ
びデータバス66および68との間の結合を提供する。図面
に指示されるように、バス78は、キャッシュバス76と例
示されるセルと関連するドメイン(0)バスセグメント
20Aとの間の相互接続を提供する。
よび74Bを介してキャッシュバス76に結合されたデータ
メモリユニット72Aおよび72Bを備える。キャッシュ制御
ユニット74Cおよび74Dは、キャッシュバス76と処理およ
びデータバス66および68との間の結合を提供する。図面
に指示されるように、バス78は、キャッシュバス76と例
示されるセルと関連するドメイン(0)バスセグメント
20Aとの間の相互接続を提供する。
好ましい実施例において、データキャッシュ72Aおよ
び72Bは、16Mバイトまでのデータを各々記憶し得るダイ
ナミックランダムアクセスメモリデバイスである。サブ
キャッシュ62および64は、スタチックランダムアクセス
メモリデバイスであり、前者は256kバイトまでのデータ
を、後者は256kバイトまでの命令情報を記憶し得る。図
示されるように、キャッシュおよびプロセッサバス76お
よび66は64ビットの伝送路を提供し、命令バス68は64ビ
ットの伝送路を提供する。
び72Bは、16Mバイトまでのデータを各々記憶し得るダイ
ナミックランダムアクセスメモリデバイスである。サブ
キャッシュ62および64は、スタチックランダムアクセス
メモリデバイスであり、前者は256kバイトまでのデータ
を、後者は256kバイトまでの命令情報を記憶し得る。図
示されるように、キャッシュおよびプロセッサバス76お
よび66は64ビットの伝送路を提供し、命令バス68は64ビ
ットの伝送路を提供する。
本発明を実施するのに使用するように構成された好ま
しいマルチプロセッサシステムにおいては、メモリの階
層が提供される。詳述すると、各処理セルは、0.5Mバイ
トを含むサブキャッシュ、および32Mバイトを含むキャ
ッシュ、例えば要素74Aおよび74B(第2図)を備える。
各セルは、例えば全部で480Mバイトのメモリを提供する
15のセルを有するドメイン(0)セグメントの一部を形
成し得る。さらに、各ドメイン(0)は、全部で15360M
バイトのメモリを提供する32のドメイン(0)セグメン
トを有するドメイン(1)の一部を形成し得る。
しいマルチプロセッサシステムにおいては、メモリの階
層が提供される。詳述すると、各処理セルは、0.5Mバイ
トを含むサブキャッシュ、および32Mバイトを含むキャ
ッシュ、例えば要素74Aおよび74B(第2図)を備える。
各セルは、例えば全部で480Mバイトのメモリを提供する
15のセルを有するドメイン(0)セグメントの一部を形
成し得る。さらに、各ドメイン(0)は、全部で15360M
バイトのメモリを提供する32のドメイン(0)セグメン
トを有するドメイン(1)の一部を形成し得る。
例示の処理セル18Aおよびドメイン階層の構造および
動作を一層理解するには、「複数命令ソースを有するマ
ルチプロセッサシステム」と題して本出願と同日に出願
された特許出願(1989年6月22日付けで出願された米国
特許出願第370,325号に対応)、ならびに特願昭63−322
254号および63−32253号)を参照することによって達成
されよう。したがって、これらの出願も参照されたい。
動作を一層理解するには、「複数命令ソースを有するマ
ルチプロセッサシステム」と題して本出願と同日に出願
された特許出願(1989年6月22日付けで出願された米国
特許出願第370,325号に対応)、ならびに特願昭63−322
254号および63−32253号)を参照することによって達成
されよう。したがって、これらの出願も参照されたい。
第3図は、単一方向セル間バスリングに沿って処理セ
ル群(グループ)を相互接続するための好ましい形態を
描くものである。ドメイン(0)セグメントと称する例
示のグループ12は、バスセグメント20Aに沿ってセル相
互接続22A、22Bおよび22Cを介して相互接続された処理
セル18A、18Bおよび18Cを備える。
ル群(グループ)を相互接続するための好ましい形態を
描くものである。ドメイン(0)セグメントと称する例
示のグループ12は、バスセグメント20Aに沿ってセル相
互接続22A、22Bおよび22Cを介して相互接続された処理
セル18A、18Bおよび18Cを備える。
例示のセグメント内に存在するセルは、バス20Aを介
して相互に直接通信する。しかしながら、関連する中心
処理ユニットは直接相互接続されない。代わりに、メモ
リ要素に記憶されるデータおよび制御信号の交換によ
り、プロセッサ間通信が実施される。メモリ管理要素46
は、この情報の転送を容易にする。
して相互に直接通信する。しかしながら、関連する中心
処理ユニットは直接相互接続されない。代わりに、メモ
リ要素に記憶されるデータおよび制御信号の交換によ
り、プロセッサ間通信が実施される。メモリ管理要素46
は、この情報の転送を容易にする。
ドメイン(0)セグメント12Aの処理セル18A、18Bお
よび18C間の通信および同様の他のセグメントの通信
は、ドメインルート指定ユニット28Aを介してルート指
定される。
よび18C間の通信および同様の他のセグメントの通信
は、ドメインルート指定ユニット28Aを介してルート指
定される。
ドメイン(0)セグメント12Aならびにドメインルー
ト指定ユニット28Aおよびドメイン間通信を提供する機
構の構造および動作の一層の理解は、上述の米国特許出
願第136,930号を参照することによって得られる。例示
されるバスセグメント20Aの構造および動作およびそれ
とセル相互接続22A、22Bおよび32Aとの相互関係につい
ては、関連する米国特許出願第136,701号に一層詳しく
論述されている。
ト指定ユニット28Aおよびドメイン間通信を提供する機
構の構造および動作の一層の理解は、上述の米国特許出
願第136,930号を参照することによって得られる。例示
されるバスセグメント20Aの構造および動作およびそれ
とセル相互接続22A、22Bおよび32Aとの相互関係につい
ては、関連する米国特許出願第136,701号に一層詳しく
論述されている。
[メモリ管理システム] 本発明の好ましい実施例と使用するための多重処理シ
ステム10は、各データと関連する独特のシステム仮想ア
ドレス(SVA)を参照することによって、処理セル18A、
18Bおよび18C内に記憶される個々のデータ要素へのアク
セスを可能にする。この能力の実施は、メモリ管理シス
テム46、サブキャッシュ62、64およびキャッシュ72A,74
Bの組合せ動作により提供される。これと関連して、メ
モリ管理システム46は、キャッシュ制御ユニット74A、7
4B74Cおよび74Dを、それらの関連するインターフェース
回路とともに備えることが認められよう。さらに、上述
の要素は集合的に「メモリシステム」と称されることも
認められよう。
ステム10は、各データと関連する独特のシステム仮想ア
ドレス(SVA)を参照することによって、処理セル18A、
18Bおよび18C内に記憶される個々のデータ要素へのアク
セスを可能にする。この能力の実施は、メモリ管理シス
テム46、サブキャッシュ62、64およびキャッシュ72A,74
Bの組合せ動作により提供される。これと関連して、メ
モリ管理システム46は、キャッシュ制御ユニット74A、7
4B74Cおよび74Dを、それらの関連するインターフェース
回路とともに備えることが認められよう。さらに、上述
の要素は集合的に「メモリシステム」と称されることも
認められよう。
[プロセッサデータアクセス要求] プロセッサ例えば40A(第1A図)により発生されるデ
ータアクセス要求は、局部的メモリ要素例えば42Aによ
り処理される(可能なときには)。詳述すると、各メモ
リと結合されるコントローラ例えば74A、74B、74Cおよ
び74Dは、セルの内部バス例えば66を監視し、局部プロ
セッサ要求に応答して、要求を対応するディレクトリに
リストされているデスクリプタと比較する。整合が見出
されると、整合データは内部バスに沿って要求するプロ
セッサに帰還伝送される。懸案の情報アクセス要求を満
足させようとして、メモリ管理要素は、要求している中
央処理ユニットから受信されるアクセス要求信号を、他
の中央処理ユニットと関連するメモリ要素に放送する。
メモリ管理要素は、下述のように、セルインターフェー
スを介して、アクセス要求信号のSVAをメモリ要素の各
々のディレクトリ56A、56Bおよび56Cに記憶されるデス
クリプタと比較し、要求される信号がこれらの要素のい
ずれかに記憶されているか否かを決定する。もしあれ
ば、要求信号またはそのコピーは、要求している中央処
理ユニットと関連するメモリ要素にメモリ管理要素46を
介して転送される。要求される情報信号がメモリ要素42
A、42Bおよび42C中に見出されなければ、動作中のシス
テムは、下記の態様でシステムの周辺装置(図示せず)
間の捜索を行なうことができる。
ータアクセス要求は、局部的メモリ要素例えば42Aによ
り処理される(可能なときには)。詳述すると、各メモ
リと結合されるコントローラ例えば74A、74B、74Cおよ
び74Dは、セルの内部バス例えば66を監視し、局部プロ
セッサ要求に応答して、要求を対応するディレクトリに
リストされているデスクリプタと比較する。整合が見出
されると、整合データは内部バスに沿って要求するプロ
セッサに帰還伝送される。懸案の情報アクセス要求を満
足させようとして、メモリ管理要素は、要求している中
央処理ユニットから受信されるアクセス要求信号を、他
の中央処理ユニットと関連するメモリ要素に放送する。
メモリ管理要素は、下述のように、セルインターフェー
スを介して、アクセス要求信号のSVAをメモリ要素の各
々のディレクトリ56A、56Bおよび56Cに記憶されるデス
クリプタと比較し、要求される信号がこれらの要素のい
ずれかに記憶されているか否かを決定する。もしあれ
ば、要求信号またはそのコピーは、要求している中央処
理ユニットと関連するメモリ要素にメモリ管理要素46を
介して転送される。要求される情報信号がメモリ要素42
A、42Bおよび42C中に見出されなければ、動作中のシス
テムは、下記の態様でシステムの周辺装置(図示せず)
間の捜索を行なうことができる。
処理セル間のデータの移動は、各アクセス要求と、要
求されるアイテムと関連するアクセス状態との比較評価
を含むプロトコルにより支配される。メモリ管理システ
ムは、データの排他的所有権要求に応答して、そのデー
タを要求しているセルのメモリ要素へ移動させる。同時
に、メモリ管理要素は、要求しているセルデータ記憶領
域内に要求されるアイテムに対して物理的記憶スペース
を割り当てる。メモリ管理要素はまた、遠隔セルのデー
タストア内の要求されるアイテムと関連するデスクリプ
タを無効化し、それにより要求するセルへの転送前に要
求されたアイテムを保持した物理的記憶スペースの続い
ての割当て解除を行なう。
求されるアイテムと関連するアクセス状態との比較評価
を含むプロトコルにより支配される。メモリ管理システ
ムは、データの排他的所有権要求に応答して、そのデー
タを要求しているセルのメモリ要素へ移動させる。同時
に、メモリ管理要素は、要求しているセルデータ記憶領
域内に要求されるアイテムに対して物理的記憶スペース
を割り当てる。メモリ管理要素はまた、遠隔セルのデー
タストア内の要求されるアイテムと関連するデスクリプ
タを無効化し、それにより要求するセルへの転送前に要
求されたアイテムを保持した物理的記憶スペースの続い
ての割当て解除を行なう。
上述の動作は、要求しているセルにおける要求される
データの排他的記憶をもたらすが、他のセルは、続い
て、例えばリードオンリー態様で、そのデータへの同時
のアクセスを得ることができる。詳述すると、メモリ管
理要素は、第2のセルにより排他的に所有されるデータ
へのリードオンリーアクセスのための第1のセルによる
要求に応答して、そのデータのコピーを第1セルに伝送
し、他方第2セルに記憶されるそのデータの原コピーを
「非排他的所有」と指示する。
データの排他的記憶をもたらすが、他のセルは、続い
て、例えばリードオンリー態様で、そのデータへの同時
のアクセスを得ることができる。詳述すると、メモリ管
理要素は、第2のセルにより排他的に所有されるデータ
へのリードオンリーアクセスのための第1のセルによる
要求に応答して、そのデータのコピーを第1セルに伝送
し、他方第2セルに記憶されるそのデータの原コピーを
「非排他的所有」と指示する。
システムは、「アトミック」状態と称される他の所有
権状態を提供することによって、所有しているセルがそ
のデータをコピーすることを不能化せしめる。メモリ管
理システムは、その状態におけるデータ要求に応答し
て、待ちすなわち「トランジェント」信号を要求者に伝
送し、そしてアトミック所有権が断念されれば要求され
たデータを階層機構を介して放送する。
権状態を提供することによって、所有しているセルがそ
のデータをコピーすることを不能化せしめる。メモリ管
理システムは、その状態におけるデータ要求に応答し
て、待ちすなわち「トランジェント」信号を要求者に伝
送し、そしてアトミック所有権が断念されれば要求され
たデータを階層機構を介して放送する。
[データ記憶割当ておよびコヒーレンシー] 例示されるマルチプロセッサシステム内において、デ
ータのコヒーレンシは、メモリストア54A、54Bおよび54
Cおよびそれらの関連するディレクトリ56A、56Bおよび5
6Cへのメモリ管理要素の作用を通じて維持される。詳述
すると、第1のCPU/メモリ対(例えばCPU40Cとその関連
するメモリ要素42C)による所有権アクセス要求の発生
に続いて、メモリ管理要素46は、その対のメモリ要素の
ストア(例えばメモリ要素42Cのデータストア54C)に要
求されるデータを保持するためスペースの割当てを行
う。要求される情報表示信号が先に記憶されていたメモ
リ要素から(例えばメモリ要素42A)その信号の転送と
同時に、メモリ管理要素は、要求される信号の記憶のた
め先に割り当てられていた物理的記憶スペースの割当て
を解除する。
ータのコヒーレンシは、メモリストア54A、54Bおよび54
Cおよびそれらの関連するディレクトリ56A、56Bおよび5
6Cへのメモリ管理要素の作用を通じて維持される。詳述
すると、第1のCPU/メモリ対(例えばCPU40Cとその関連
するメモリ要素42C)による所有権アクセス要求の発生
に続いて、メモリ管理要素46は、その対のメモリ要素の
ストア(例えばメモリ要素42Cのデータストア54C)に要
求されるデータを保持するためスペースの割当てを行
う。要求される情報表示信号が先に記憶されていたメモ
リ要素から(例えばメモリ要素42A)その信号の転送と
同時に、メモリ管理要素は、要求される信号の記憶のた
め先に割り当てられていた物理的記憶スペースの割当て
を解除する。
メモリ管理要素、詳しく言うとデータコヒーレンス要
素の上述の動作は、第1A図および第1B図に例示されてい
る。これらの図の最初のものにおいて、情報信号DATUM
(0)、DATUM(1)およびDATUM(2)は、CPU40Aと提
携するメモリ要素42Aのデータストアに記憶されるもの
として示されている。デスクリプタ「foo」、「bar」お
よび「bas」は、それぞれそれらのデータ信号に対応し
ており、ディレクトリ56Aに記憶されている。各デスク
リプタは、ストア42Aにおける関連する情報信号の位置
を指示するポインタを含む。
素の上述の動作は、第1A図および第1B図に例示されてい
る。これらの図の最初のものにおいて、情報信号DATUM
(0)、DATUM(1)およびDATUM(2)は、CPU40Aと提
携するメモリ要素42Aのデータストアに記憶されるもの
として示されている。デスクリプタ「foo」、「bar」お
よび「bas」は、それぞれそれらのデータ信号に対応し
ており、ディレクトリ56Aに記憶されている。各デスク
リプタは、ストア42Aにおける関連する情報信号の位置
を指示するポインタを含む。
CPU40Bと提携されるメモリ要素42Bにおいて、システ
ムはDATUM(2)およびDATUM(3)を記憶する。これら
のデータ要素に対応して、デスクリプタ「car」および
「bas」がディレクトリ56Bに保持されている。DATUM
(2)およびそのデスクリプタ「bas」は、キャッシュ4
2Aからの対応する要素のコピーである。
ムはDATUM(2)およびDATUM(3)を記憶する。これら
のデータ要素に対応して、デスクリプタ「car」および
「bas」がディレクトリ56Bに保持されている。DATUM
(2)およびそのデスクリプタ「bas」は、キャッシュ4
2Aからの対応する要素のコピーである。
通常の動作中、例示されるデータ要素すなわちDATUM
(0)ないしDATUM(3)は、各中央処理ユニットによ
る要求に対してアクセス可能である(少なくともキャッ
シュ42A、42B,42Cにおけるそれらの存在が関係する限
り)。例えば、デスクリプタ「bas」と関連して、DATUM
(2)へのアクセスに対するCPU(2)からの要求を受
信すると、メモリ管理要素46は、要求しているプロセッ
サに、要求されているデータがメモリに存在することを
報知する。さらに、要求がリードオンリーアクセスに対
するものであり、そしてそのDATUM(2)がアトミック
状態で保持されていないと仮定すると、メモリ管理要素
は、そのデータのコピーをCPU(2)と関連するキャッ
シュ42Cに転送する。
(0)ないしDATUM(3)は、各中央処理ユニットによ
る要求に対してアクセス可能である(少なくともキャッ
シュ42A、42B,42Cにおけるそれらの存在が関係する限
り)。例えば、デスクリプタ「bas」と関連して、DATUM
(2)へのアクセスに対するCPU(2)からの要求を受
信すると、メモリ管理要素46は、要求しているプロセッ
サに、要求されているデータがメモリに存在することを
報知する。さらに、要求がリードオンリーアクセスに対
するものであり、そしてそのDATUM(2)がアトミック
状態で保持されていないと仮定すると、メモリ管理要素
は、そのデータのコピーをCPU(2)と関連するキャッ
シュ42Cに転送する。
しかしながら、ディレクトリ56Bのディスクリプタ「c
ar」を取り囲む括弧により指示されるように、DATUM
(3)は係留されている。かくして、キャッシュ42Bが
そのデータの唯一のコピーを記憶するCPU(1)以外の
中央処理ユニットは、いずれもDATUM(3)にアクセス
できない。詳述すると、メモリ管理要素46は、デスクリ
プタ「car」と関連するアンカービットがセットされて
いることを認めて、CPU40A、40CのいずれかによるDATUM
(3)に対するアクセス要求に応答して、それらのプロ
セッサに、データがメモリに存在しないことを報知す
る。CPU(1)は、そのCPUがデータに直接アクセスする
とき、メモリ管理システム46の介入なしにDATUM(3)
への完全なアクセスを保持する。
ar」を取り囲む括弧により指示されるように、DATUM
(3)は係留されている。かくして、キャッシュ42Bが
そのデータの唯一のコピーを記憶するCPU(1)以外の
中央処理ユニットは、いずれもDATUM(3)にアクセス
できない。詳述すると、メモリ管理要素46は、デスクリ
プタ「car」と関連するアンカービットがセットされて
いることを認めて、CPU40A、40CのいずれかによるDATUM
(3)に対するアクセス要求に応答して、それらのプロ
セッサに、データがメモリに存在しないことを報知す
る。CPU(1)は、そのCPUがデータに直接アクセスする
とき、メモリ管理システム46の介入なしにDATUM(3)
への完全なアクセスを保持する。
第1B図は、非係留データに対する所有権アクセス要求
の発行に続くメモリ管理システム46の応答を例示する。
特に、例示のものは、CPU(2)によるそのデータに対
する所有権アクセス要求の発行に続く非係留情報信号DA
TUM(0)の動きを描写している。
の発行に続くメモリ管理システム46の応答を例示する。
特に、例示のものは、CPU(2)によるそのデータに対
する所有権アクセス要求の発行に続く非係留情報信号DA
TUM(0)の動きを描写している。
最初に、メモリ管理要素46は、CPU40Cと提携するメモ
リ要素のストア54Cに物理的記憶スペースを割り当て
る。メモリ管理要素46は、ついで、要求される情報信号
DATUM(0)を、先に記憶されているストア54Aから、要
求された信号を先に保持したストア54A内のスペースの
割当てを同時に解除しながら、要求者のストア54Cに移
動させる。要求された情報信号を移動させることに加え
て、メモリ管理要素46はまた、ストア54A内のDATUM
(0)を識別するのに先に使用されたディレクトリ56A
内のデスクリプタを無効化するとともに、ストア54C内
の信号を識別するために続いて使用されるであろうディ
レクトリ56C内に同じデスクリプタを再割当てする。
リ要素のストア54Cに物理的記憶スペースを割り当て
る。メモリ管理要素46は、ついで、要求される情報信号
DATUM(0)を、先に記憶されているストア54Aから、要
求された信号を先に保持したストア54A内のスペースの
割当てを同時に解除しながら、要求者のストア54Cに移
動させる。要求された情報信号を移動させることに加え
て、メモリ管理要素46はまた、ストア54A内のDATUM
(0)を識別するのに先に使用されたディレクトリ56A
内のデスクリプタを無効化するとともに、ストア54C内
の信号を識別するために続いて使用されるであろうディ
レクトリ56C内に同じデスクリプタを再割当てする。
第1B図はまた、それぞれのキャッシュ42B、42C内に記
憶されるデータの係留状態の変化を例示している。特
に、対応するディレクトリのエントリにおける括弧の不
存在により指示されるように、DATUM(3)は係留され
ておらず、したがって他の中央処理ユニットによりアク
セスのため利用可能である。逆に、キャッシュ42C内の
デスクリプタ「foo」を囲む括弧は、関連するデータDAT
UM(0)が係留されており、したがって、他のCPUに利
用不可能であることを示している。上述のように、CPU4
0Cそれ自体は、そのアンカービットがセットされている
ことに拘りなく、DATUM(0)に直接的にアクセスでき
る。
憶されるデータの係留状態の変化を例示している。特
に、対応するディレクトリのエントリにおける括弧の不
存在により指示されるように、DATUM(3)は係留され
ておらず、したがって他の中央処理ユニットによりアク
セスのため利用可能である。逆に、キャッシュ42C内の
デスクリプタ「foo」を囲む括弧は、関連するデータDAT
UM(0)が係留されており、したがって、他のCPUに利
用不可能であることを示している。上述のように、CPU4
0Cそれ自体は、そのアンカービットがセットされている
ことに拘りなく、DATUM(0)に直接的にアクセスでき
る。
本発明の好まし実施例においては、各デスクリプタに
含まれるアンカービットは、そのデスクリプタならびに
対応する情報表示信号が記憶されているキャッシュと関
連する中央処理ユニットによりセットされる。すなわ
ち、CPU40Aは、キャッシュ42A内のデータと関連するア
ンカービットをセットし、CPU40Bは、キャッシュ42B内
のデータと関連するアンカービットをセットし、CPU42C
はキャッシュ42内のデータと関連するアンカービットを
セットする。例に示されるように、この係留機能は、CP
U40A、40B、40Cの各々における「ANCH」と符合を付した
機能部により実施される。
含まれるアンカービットは、そのデスクリプタならびに
対応する情報表示信号が記憶されているキャッシュと関
連する中央処理ユニットによりセットされる。すなわ
ち、CPU40Aは、キャッシュ42A内のデータと関連するア
ンカービットをセットし、CPU40Bは、キャッシュ42B内
のデータと関連するアンカービットをセットし、CPU42C
はキャッシュ42内のデータと関連するアンカービットを
セットする。例に示されるように、この係留機能は、CP
U40A、40B、40Cの各々における「ANCH」と符合を付した
機能部により実施される。
好ましい実施例において、メモリ管理要素46は、メモ
リ要素42A、42B、42Cに記憶されるデータおよび制御信
号にアクセス状態情報を割り当てるための機構を含む。
無効、リードオンリー、所有権およびアトミック状態を
含むこれらのアクセス状態は、データが特定のプロセッ
サによりアクセスされ得る態様を支配する。関連するCP
Uが当該データに対して優先アクセスを維持するメモリ
要素内に記憶されるデータについては、所有権状態が割
り当てられる。他方、関連するCPUが当該データに関し
て優先アクセスを維持しないメモリ要素に記憶されるデ
ータについては、リードオンリー状態が割り当てられ
る。さらに、「バッド」データと関連するデータには、
無効状態が割り当てられる。
リ要素42A、42B、42Cに記憶されるデータおよび制御信
号にアクセス状態情報を割り当てるための機構を含む。
無効、リードオンリー、所有権およびアトミック状態を
含むこれらのアクセス状態は、データが特定のプロセッ
サによりアクセスされ得る態様を支配する。関連するCP
Uが当該データに対して優先アクセスを維持するメモリ
要素内に記憶されるデータについては、所有権状態が割
り当てられる。他方、関連するCPUが当該データに関し
て優先アクセスを維持しないメモリ要素に記憶されるデ
ータについては、リードオンリー状態が割り当てられ
る。さらに、「バッド」データと関連するデータには、
無効状態が割り当てられる。
[キャッシュ構造] メモリシステムは、ページおよびサブページの単位で
データを記憶する。各個々のキャッシュは2048ページに
細分割された32バイトのSVAスペースを記述する。ペー
ジは、27(128)バイトのサブページ分割された214(16
348)バイトを含む。メモリシステムは、ページ基準で
キャッシュ例えば72A、72B(第2図)内のメモリを割り
当て、SVAスペースの各ページは、システムに完全に表
わされるか全然表わされないかのいずれかである。メモ
リシステムは、サブキャッシュの単位でキャッシュ間で
データを共有する。
データを記憶する。各個々のキャッシュは2048ページに
細分割された32バイトのSVAスペースを記述する。ペー
ジは、27(128)バイトのサブページ分割された214(16
348)バイトを含む。メモリシステムは、ページ基準で
キャッシュ例えば72A、72B(第2図)内のメモリを割り
当て、SVAスペースの各ページは、システムに完全に表
わされるか全然表わされないかのいずれかである。メモ
リシステムは、サブキャッシュの単位でキャッシュ間で
データを共有する。
SVAスペースのページがシステム内に存在する場合
は、次がことが言える。
は、次がことが言える。
1または複数のキャッシュ例えば72A、72Bは、ページ
にメモリの1ページを割り当てる。各サブページは、割
り当てられたスペースをもつキャッシュの1または複数
に記憶されるが、1ページに対して割り当てられたスペ
ースをもつ各キャッシュは、ページのサプページのすべ
てについてのコピーを含んでもよいし含まなくてもよ
い。
にメモリの1ページを割り当てる。各サブページは、割
り当てられたスペースをもつキャッシュの1または複数
に記憶されるが、1ページに対して割り当てられたスペ
ースをもつ各キャッシュは、ページのサプページのすべ
てについてのコピーを含んでもよいし含まなくてもよ
い。
上述のように、キャッシュページおよびSVAページ間
の関連は、そのキャッシュディレクトリ例えば56A内の
各キャッシュに記録される。各キャッシュディレクトリ
は、デスクリプタにより構成される。キャッシュ内のメ
モリの各ページに対して1つのデスクリプタが存在す
る。特定の時点において、各デスクリプタは有効または
無効といわれる。デスクリプタが有効であれば、対応す
るキャッシュメモリページがSVAスペースの1ページと
関連せしめられ、デスクリプタは関連するSVAページア
ドレスおよび状態情報を記憶する。デスクリプタが無効
であれば、対応するキャッシュメモリページは、論理的
に使用状態にない。デスクリプタと関連する明白な有効
フラグはなく、係留および保持フィールドが両方ともク
リヤであればデスクリプタは無効と考えることができ、
そしてSVAページに対して有効サブページは存在しな
い。
の関連は、そのキャッシュディレクトリ例えば56A内の
各キャッシュに記録される。各キャッシュディレクトリ
は、デスクリプタにより構成される。キャッシュ内のメ
モリの各ページに対して1つのデスクリプタが存在す
る。特定の時点において、各デスクリプタは有効または
無効といわれる。デスクリプタが有効であれば、対応す
るキャッシュメモリページがSVAスペースの1ページと
関連せしめられ、デスクリプタは関連するSVAページア
ドレスおよび状態情報を記憶する。デスクリプタが無効
であれば、対応するキャッシュメモリページは、論理的
に使用状態にない。デスクリプタと関連する明白な有効
フラグはなく、係留および保持フィールドが両方ともク
リヤであればデスクリプタは無効と考えることができ、
そしてSVAページに対して有効サブページは存在しな
い。
[キャッシュレイアウト] キャッシュディレクトリの機構は、第4図に示されて
いる。SVAへの参照がなされると、キャッシュは、それ
が必要とする情報を有しているか否かについて決定しな
ければならない。これは、キャッシュ内の1セットを選
択し、その1セットのデスクリプタの全部を試験するこ
とによって遂行される。SVA[20:14]は1セットを選択
する。一般のアーキテクチャにおいて、選択されたセッ
ト内の各デスクリプタは、同時にSVA[63:21]に比較さ
れる。本明細書に開示されるこの教示は、SVA[39:21]
との比較を意味する240バイトSVAスペースについて記述
する。セットの要素の1つが所望されるページに対する
デスクリプタであれば、対応するコンパレータは整合を
指示するであろう。セット番号と連結される整合するデ
スクリプタのセット内のインデックスは、キャッシュ内
の1ページを識別する。
いる。SVAへの参照がなされると、キャッシュは、それ
が必要とする情報を有しているか否かについて決定しな
ければならない。これは、キャッシュ内の1セットを選
択し、その1セットのデスクリプタの全部を試験するこ
とによって遂行される。SVA[20:14]は1セットを選択
する。一般のアーキテクチャにおいて、選択されたセッ
ト内の各デスクリプタは、同時にSVA[63:21]に比較さ
れる。本明細書に開示されるこの教示は、SVA[39:21]
との比較を意味する240バイトSVAスペースについて記述
する。セットの要素の1つが所望されるページに対する
デスクリプタであれば、対応するコンパレータは整合を
指示するであろう。セット番号と連結される整合するデ
スクリプタのセット内のインデックスは、キャッシュ内
の1ページを識別する。
1以上のデスクリプタが整合すれば、キャッシュは複
数デスクリプタ整合特例を報知する。デスクリプタが整
合しなければ、キャッシュは、デスクリプタを割り当
て、相互接続からデータを要求する。割り当てまたはデ
ータ要求のいずれかが欠けることがあり得るが、キャッ
シュはCPUにエラーを指示する。
数デスクリプタ整合特例を報知する。デスクリプタが整
合しなければ、キャッシュは、デスクリプタを割り当
て、相互接続からデータを要求する。割り当てまたはデ
ータ要求のいずれかが欠けることがあり得るが、キャッ
シュはCPUにエラーを指示する。
セットを選択するためにSVA[20:14]を使用すること
は、事実上SVAアドレスに関するハッシュ機能ある。シ
ステムソフトウェアは、このハッシュ機能が一般的場合
において良好な性能を与えるようにSVAアドレスを割り
当てねばならない。分配に関して2つの重要な場合があ
る。単一のセグメントの多数のページを参照する場合
と、多くセグメントの第1のページを参照する場合とで
ある。このセットセレクタは、連続するページ群に対し
て良好なキャッシュの挙動をもたらす。何故ならば、12
8の連続ページが、128の別個セットに存在するからであ
る。しかしながら、このセレクタは、SVA[20:40]に同
じ値をもつ多くのページに対しては、ハッシュ(吟味)
の挙動が貧弱である。システムソフトウェアは、セグメ
ント内における局部的データ源を変えることによって後
者の状態を避けることができる。例えば、パープロセス
(処理ごとの)ユーザスタックは、異なるセグメントオ
フセットで開始できる。
は、事実上SVAアドレスに関するハッシュ機能ある。シ
ステムソフトウェアは、このハッシュ機能が一般的場合
において良好な性能を与えるようにSVAアドレスを割り
当てねばならない。分配に関して2つの重要な場合があ
る。単一のセグメントの多数のページを参照する場合
と、多くセグメントの第1のページを参照する場合とで
ある。このセットセレクタは、連続するページ群に対し
て良好なキャッシュの挙動をもたらす。何故ならば、12
8の連続ページが、128の別個セットに存在するからであ
る。しかしながら、このセレクタは、SVA[20:40]に同
じ値をもつ多くのページに対しては、ハッシュ(吟味)
の挙動が貧弱である。システムソフトウェアは、セグメ
ント内における局部的データ源を変えることによって後
者の状態を避けることができる。例えば、パープロセス
(処理ごとの)ユーザスタックは、異なるセグメントオ
フセットで開始できる。
デスクリプタフィールドは下記のように定義される。
descriptor.tag(19) SVAのビット[39:21]。このフィールドは、対応する
デスクリプタにより特定されるSVAスペースの特定のペ
ージを識別する。所与のセルにおける所与のセットに対
して、このフィールドはすべての16のデスクリプタの間
で独特でなければならない。ソフトウェアは、SVAペー
ジを創成するときにこのフィールドを「セット」する。
これはまた、キャッシュイニシャライズ中にソフトウェ
アによりセットされる。
デスクリプタにより特定されるSVAスペースの特定のペ
ージを識別する。所与のセルにおける所与のセットに対
して、このフィールドはすべての16のデスクリプタの間
で独特でなければならない。ソフトウェアは、SVAペー
ジを創成するときにこのフィールドを「セット」する。
これはまた、キャッシュイニシャライズ中にソフトウェ
アによりセットされる。
descriptor.atomic_modified(1) このページの任意のサブページがアトミック状態への
またはアトミック状態からの転換を経験するとき、キャ
ッシュがこのビットフラグを1にセットする。何故なら
ば、gspまたはsp命令がうまく実行されるからである。
これはまた、サブページがアトミック状態からトランジ
ェント−アトミック状態に変わるときにもセットされ
る。このフラグは、gspが欠ける場合又はrspが欠ける場
合にはセットされない。何故ならば、前者においてはサ
ブページが既にアトミック状態にあり、後者においては
サブページがアトミック状態になかったからである。
またはアトミック状態からの転換を経験するとき、キャ
ッシュがこのビットフラグを1にセットする。何故なら
ば、gspまたはsp命令がうまく実行されるからである。
これはまた、サブページがアトミック状態からトランジ
ェント−アトミック状態に変わるときにもセットされ
る。このフラグは、gspが欠ける場合又はrspが欠ける場
合にはセットされない。何故ならば、前者においてはサ
ブページが既にアトミック状態にあり、後者においては
サブページがアトミック状態になかったからである。
このフラグは、gspまたはrspが欠ける場合にはセット
されない。何故ならばデスクリプタ・アトミックなしが
セットされるからである。システムソフトウェアは、ア
トミック状態変化を認めたことを指示するために、この
フラグをゼロにする。このフィールドはキャッシュから
キャッシュへ伝搬される。
されない。何故ならばデスクリプタ・アトミックなしが
セットされるからである。システムソフトウェアは、ア
トミック状態変化を認めたことを指示するために、この
フラグをゼロにする。このフィールドはキャッシュから
キャッシュへ伝搬される。
descriptor.modified(1) ページにおいて何らかのデータが変更されるとき、キ
ャッシュがこのビットフラグを1にセットする。システ
ムソフトウェアは、ページの変更を認めたことを指示す
るために、デスクリプタ・変更をゼロにセットする。こ
のフラグは、データを変更しようとする試みがないとき
にはセットされない。何故ならばデスクリプタ・書込み
なしがセットされるからである。このフィールドはキャ
ッシュからキャッシュへ伝搬される。
ャッシュがこのビットフラグを1にセットする。システ
ムソフトウェアは、ページの変更を認めたことを指示す
るために、デスクリプタ・変更をゼロにセットする。こ
のフラグは、データを変更しようとする試みがないとき
にはセットされない。何故ならばデスクリプタ・書込み
なしがセットされるからである。このフィールドはキャ
ッシュからキャッシュへ伝搬される。
descriptor.LRU_position(4) そのセットにおけるデスクリプタの現在位置がMost R
ecently Used(0)からLeast ResentlyUsed(51)に移
行するとき、キャッシュはこのフィールドを維持する。
ecently Used(0)からLeast ResentlyUsed(51)に移
行するとき、キャッシュはこのフィールドを維持する。
descriptor.anchor(1) 他のキャッシュからのデータ要求が有効とも認められ
得ずまたデスクリプタが無効化され得ないことを指示す
るため、ソフトウェアがこのフィールドをセットする。
他のキャッシュからの読取りまたは取得要求が要求者に
応答せずに戻り、ページがなかったように処理される。
このフィールドは、SVAページを創成または破壊する部
分として、またページデスクリプタを変更する部分とし
てシステムソフトウェアによりセットされる。
得ずまたデスクリプタが無効化され得ないことを指示す
るため、ソフトウェアがこのフィールドをセットする。
他のキャッシュからの読取りまたは取得要求が要求者に
応答せずに戻り、ページがなかったように処理される。
このフィールドは、SVAページを創成または破壊する部
分として、またページデスクリプタを変更する部分とし
てシステムソフトウェアによりセットされる。
descriptor.held(1) サブページがキャッシュに存在しない場合においてさ
え、デスクリプタがキャッシュにより無効にされ得ない
ことを指示するため、ソフトウェアがこのフィールドを
セットする。
え、デスクリプタがキャッシュにより無効にされ得ない
ことを指示するため、ソフトウェアがこのフィールドを
セットする。
descriptor.no_atomic(1) キャッシュがこのページのページのアトミック状態を
変えるのを阻止するため、ソフトウェアがこのフィール
ドをセットする。gspまたはrspを実行使用とする試みは
なく、プロセッサに報知される。プロセッサは、ページ
アトミックなし特例を報知する。デスクリプタ・アトミ
ックなしは、若干のサブページがアトミック状態を有す
る場合においてさえ、変更され得る。
変えるのを阻止するため、ソフトウェアがこのフィール
ドをセットする。gspまたはrspを実行使用とする試みは
なく、プロセッサに報知される。プロセッサは、ページ
アトミックなし特例を報知する。デスクリプタ・アトミ
ックなしは、若干のサブページがアトミック状態を有す
る場合においてさえ、変更され得る。
このフラグは、デスクリプタ・書込みなしがデータ状
態を変更しようとする試みを阻止する場合と同じ方法
で、アトミック状態を変更しようとする試みを阻止す
る。このフィールドはキャッシュからキャッシュへ伝搬
される。
態を変更しようとする試みを阻止する場合と同じ方法
で、アトミック状態を変更しようとする試みを阻止す
る。このフィールドはキャッシュからキャッシュへ伝搬
される。
descriptor.no_write(1) 局部プロセッサによるページの変更を阻止するため、
ソフトウェアがこのフィールドをセットする。ページを
変更しよとする試みはなく、プロセッサに報知される。
プロセッサは、ページ書込みなし特例を報知する。この
フラグは、排他的またはアトミック/トランジェント−
アトミック状態にあるサブページを取得するためにキャ
ッシュの能力に影響を及ぼさない。このフィールドは、
キャッシュからキャッシュへ伝搬される。
ソフトウェアがこのフィールドをセットする。ページを
変更しよとする試みはなく、プロセッサに報知される。
プロセッサは、ページ書込みなし特例を報知する。この
フラグは、排他的またはアトミック/トランジェント−
アトミック状態にあるサブページを取得するためにキャ
ッシュの能力に影響を及ぼさない。このフィールドは、
キャッシュからキャッシュへ伝搬される。
descriptor.summary(3) 1組のサブページのサブページ状態フィールドを集約
する。各1組のサブページに対して、1つの3ビットサ
マリーフィールドが存在する。サマリーは、ときどき、
サマリーセット内のサブページに対して個々のサブペー
ジ_状態フィールドの内容を無視(オーバーライド)す
る。
する。各1組のサブページに対して、1つの3ビットサ
マリーフィールドが存在する。サマリーは、ときどき、
サマリーセット内のサブページに対して個々のサブペー
ジ_状態フィールドの内容を無視(オーバーライド)す
る。
descriptor.subpage_state(4) サブページ状態は、3ビット状態フィールドおよび単
一ビットサブキャッシュ化状態フィールドよりなる。こ
れは、各サブページの状態を記録するため、かつサブペ
ージのいずれかの部分がCPUサブキャッシュに存在する
か否かを指示するために、キャッシュによりセットされ
る。
一ビットサブキャッシュ化状態フィールドよりなる。こ
れは、各サブページの状態を記録するため、かつサブペ
ージのいずれかの部分がCPUサブキャッシュに存在する
か否かを指示するために、キャッシュによりセットされ
る。
Descriptor.no_writeは、アクセス時コピー方式を実
施するために使用でき、そして該アクセス時コピー方式
は、書込み時コピーに近似するものとして使用できる。
プロセスが分岐するとき、分岐するプロセスのアドレス
スペースは、page_no_write_write exceptionsを取るよ
うにセットされる。子供プロセスアドレススペースセグ
メントは、散在状態に残される。子供プロセスが、親に
よって未だ書き込まれていないページを参照すると、ペ
ージの欠点は、親プロセスの対応するページのコピーを
作ることによって満足され、descriptor.no_writeは、
そのページに対してクリヤされる。もしも親が、子供が
当該ページをコピーしてしまう前にそのページを書き込
むと、page_no_writeハンドラは、そのページを子供ア
ドレススペースに書込み、ついでデスクリプタ・書込み
なしをクリヤする。
施するために使用でき、そして該アクセス時コピー方式
は、書込み時コピーに近似するものとして使用できる。
プロセスが分岐するとき、分岐するプロセスのアドレス
スペースは、page_no_write_write exceptionsを取るよ
うにセットされる。子供プロセスアドレススペースセグ
メントは、散在状態に残される。子供プロセスが、親に
よって未だ書き込まれていないページを参照すると、ペ
ージの欠点は、親プロセスの対応するページのコピーを
作ることによって満足され、descriptor.no_writeは、
そのページに対してクリヤされる。もしも親が、子供が
当該ページをコピーしてしまう前にそのページを書き込
むと、page_no_writeハンドラは、そのページを子供ア
ドレススペースに書込み、ついでデスクリプタ・書込み
なしをクリヤする。
追って以下に論述されるように、所与のキャッシュに
おけるデスクリプタは、退廃した状態情報を含むことが
できる。加えて、セッティングデスクリプタ・保持は、
個々のサブページが局部キャッシュ内に存在すること、
およびSVAページが存在することを保証しないことに留
意されるべきである。システムソフトウェアは、ページ
のテーブルをトラップし続け、それらに対するSVAサブ
ページを創成することを拒否することによって、ページ
の読取りをトラップすることができる。そのとき、脱落
ページ特例をソフトウェアにより生成されるページ読取
りなし特例に変換することができる。
おけるデスクリプタは、退廃した状態情報を含むことが
できる。加えて、セッティングデスクリプタ・保持は、
個々のサブページが局部キャッシュ内に存在すること、
およびSVAページが存在することを保証しないことに留
意されるべきである。システムソフトウェアは、ページ
のテーブルをトラップし続け、それらに対するSVAサブ
ページを創成することを拒否することによって、ページ
の読取りをトラップすることができる。そのとき、脱落
ページ特例をソフトウェアにより生成されるページ読取
りなし特例に変換することができる。
[デスクリプタフィールド有効性] 先に論述したように、デスクリプタ内のフラグは正し
くなかったり古くなっている場合があり得る。これには
2つの理由がある。すなわち、CPUおよびその局部的CCU
間の潜伏、および異なるセルのCCU間の潜伏である。前
者は、先に変更されなかったページがCPUによって変更
されるときに起こり得る。変更されたサブブロックがサ
ブキャッシュを離れるまで、局部的CCUは、変更が起こ
ったことを知らない。後者は、多くのキャッシュが各々
特定のSVAページに対するデスクリプタを含むときに起
こりことがあり、1つのキャッシュにより影響される状
態変化がすべての他のキャッシュに自動的に通信されな
い。デスクリプタと関連する有効ビットがないから、デ
スクリプタは、つねにあるSVAページのタグを有する。
しかしながら、特定のSVAページを指示するタグを有す
るすべてのキャッシュデスクリプタは、それらのデスク
リプタ内に有効サブページを有さなければ、SVAページ
はメモリシステムに存在しない。同様に、キャッシュデ
スクリプタが特定のSVAページを指示するタグを有しな
ければ、そのページはメモリシステムに存在しない。か
かるページに対するデスクリプタフィールドを読み取る
ことができるが、SVAページは論理的に破壊されてしま
っているから、フィールド値は有効でない。
くなかったり古くなっている場合があり得る。これには
2つの理由がある。すなわち、CPUおよびその局部的CCU
間の潜伏、および異なるセルのCCU間の潜伏である。前
者は、先に変更されなかったページがCPUによって変更
されるときに起こり得る。変更されたサブブロックがサ
ブキャッシュを離れるまで、局部的CCUは、変更が起こ
ったことを知らない。後者は、多くのキャッシュが各々
特定のSVAページに対するデスクリプタを含むときに起
こりことがあり、1つのキャッシュにより影響される状
態変化がすべての他のキャッシュに自動的に通信されな
い。デスクリプタと関連する有効ビットがないから、デ
スクリプタは、つねにあるSVAページのタグを有する。
しかしながら、特定のSVAページを指示するタグを有す
るすべてのキャッシュデスクリプタは、それらのデスク
リプタ内に有効サブページを有さなければ、SVAページ
はメモリシステムに存在しない。同様に、キャッシュデ
スクリプタが特定のSVAページを指示するタグを有しな
ければ、そのページはメモリシステムに存在しない。か
かるページに対するデスクリプタフィールドを読み取る
ことができるが、SVAページは論理的に破壊されてしま
っているから、フィールド値は有効でない。
例えば、あるページに対するデスクリプタを有する2
つのキャッシュを考える。キャッシュAは、すべて排他
的状態にあるサブページを有し、そしてデスクリプタ・
変更はクリヤ状態であり、他のキャッシュはそのページ
に対するデスクリプタを全然有していないとする。セル
BのCPUは、サブページデータを変更すべくストア命令
を実行する。CPU Bは、その局部的キャッシュから排他
的所有権状態をもつサブページを要求する。キャッシュ
は、そのページに対してデスクリプタを割り当て、つい
でリングを使用してサブページを要求する。所有者
(A)は応答して、セルBに排他的所有権を与える。サ
ブページが到着した後、セルBは、応答からデスクリプ
タ・変更(クリヤ状態にある)をコピーする。ついで、
BのCPUは、サブページからサブブロックをそのデータ
サブキャッシュにロードし、そのサブブロックを変更す
る。この点にて、CPUサブキャッシュは、サブブロック
が変更されてしまったことを指示するが、局部的キャッ
シュはなおサブページを無変更として示す。若干後の時
点に、CPU Bは、そのサブキャッシュからのサブブロッ
クデータを局部的キャッシュに送る。これは、CPU Bが
他のページに対するサブキャッシュブロックを必要とす
るか、CPUが変更されたサブブロックを戻し書込みする
ためにアイドルサイクルを使用しているか、ある他のセ
ルがサブページを要求したがために起こり得る。つい
で、セルBのキャッシュがデスクリプタ・変更フラグを
セットする。この時間中ずっと、デスクリプタ・変更
は、セルA上でクリヤ状態にある。第2の例として、セ
ルA上で進行するシステムソフトウェアがここでSVAペ
ージを破壊すると仮定する。ページは、キャッシュAに
おいて排他的状態にあるすべてのサブページを集め上
げ、ついでSVAページがもはや有効なサブページをもた
ないようにAのデスクリプタを変更することによって破
壊される。しかしながら、キャッシュBは、なおそのペ
ージに対するデスクリプタを有する。デスクリプタ・変
更のようなフィールドは意味がない。ある他のキャッシ
ュが続いてSVAページを再創成してさえ、キャッシュB
のデスクリプタは、第1サブページが到着するまで元の
ままであろう。システムソフトウェアは、デスクリプタ
情報を使用しようとするときには、SVAページが真にメ
モリシステム存在することを保証しなければならない。
これを遂行する1つの方法は、ページアンカーをつねに
セットし、局部キャッシュに少なくとも1つのの有効サ
ブページを得ることである。変更およびアトミック変更
フィールドが設定されていないことを絶対に確実にする
ためには、ソフトウエアは最初排他的状態で各サブペー
ジを得なければならない。アンカーは、いずれかの他の
キャッシュがすでに得られた他のサブページを非同期的
に取得することを阻止する。動作が完全であると、シス
テムソフトウェアは局部的キャッシュにおけるデスクリ
プタ・アンカーをクリヤする。そのとき、そのページの
サブページに対する他のキャッシュ要求が、再び所有さ
れることになう。
つのキャッシュを考える。キャッシュAは、すべて排他
的状態にあるサブページを有し、そしてデスクリプタ・
変更はクリヤ状態であり、他のキャッシュはそのページ
に対するデスクリプタを全然有していないとする。セル
BのCPUは、サブページデータを変更すべくストア命令
を実行する。CPU Bは、その局部的キャッシュから排他
的所有権状態をもつサブページを要求する。キャッシュ
は、そのページに対してデスクリプタを割り当て、つい
でリングを使用してサブページを要求する。所有者
(A)は応答して、セルBに排他的所有権を与える。サ
ブページが到着した後、セルBは、応答からデスクリプ
タ・変更(クリヤ状態にある)をコピーする。ついで、
BのCPUは、サブページからサブブロックをそのデータ
サブキャッシュにロードし、そのサブブロックを変更す
る。この点にて、CPUサブキャッシュは、サブブロック
が変更されてしまったことを指示するが、局部的キャッ
シュはなおサブページを無変更として示す。若干後の時
点に、CPU Bは、そのサブキャッシュからのサブブロッ
クデータを局部的キャッシュに送る。これは、CPU Bが
他のページに対するサブキャッシュブロックを必要とす
るか、CPUが変更されたサブブロックを戻し書込みする
ためにアイドルサイクルを使用しているか、ある他のセ
ルがサブページを要求したがために起こり得る。つい
で、セルBのキャッシュがデスクリプタ・変更フラグを
セットする。この時間中ずっと、デスクリプタ・変更
は、セルA上でクリヤ状態にある。第2の例として、セ
ルA上で進行するシステムソフトウェアがここでSVAペ
ージを破壊すると仮定する。ページは、キャッシュAに
おいて排他的状態にあるすべてのサブページを集め上
げ、ついでSVAページがもはや有効なサブページをもた
ないようにAのデスクリプタを変更することによって破
壊される。しかしながら、キャッシュBは、なおそのペ
ージに対するデスクリプタを有する。デスクリプタ・変
更のようなフィールドは意味がない。ある他のキャッシ
ュが続いてSVAページを再創成してさえ、キャッシュB
のデスクリプタは、第1サブページが到着するまで元の
ままであろう。システムソフトウェアは、デスクリプタ
情報を使用しようとするときには、SVAページが真にメ
モリシステム存在することを保証しなければならない。
これを遂行する1つの方法は、ページアンカーをつねに
セットし、局部キャッシュに少なくとも1つのの有効サ
ブページを得ることである。変更およびアトミック変更
フィールドが設定されていないことを絶対に確実にする
ためには、ソフトウエアは最初排他的状態で各サブペー
ジを得なければならない。アンカーは、いずれかの他の
キャッシュがすでに得られた他のサブページを非同期的
に取得することを阻止する。動作が完全であると、シス
テムソフトウェアは局部的キャッシュにおけるデスクリ
プタ・アンカーをクリヤする。そのとき、そのページの
サブページに対する他のキャッシュ要求が、再び所有さ
れることになう。
システムソフトウェアまた、ページを創成する前に、
SVAページがメモリシステムに真に存在していないこと
を保証することが必要となる。上述のように、正しいタ
グ値をもつデスクリプタの単なる存在は、SVAページが
実際にメモリシステムに存在することを指示しない。ソ
フトウェアは、ページアンカーを設定し、ついで排他的
状態をもつサブページを引き出すことを試みることによ
って非存在を確認し得る。引出に成功すると、ソフトウ
ェアは競争に負け、ページはメモリシステム内に存在し
ている。そうでない場合には、ソウトウェアはmpdw命令
を使用してページを創成でき、排他的に所有される全ペ
ージに関してSVAページアドレスを設定する。この目的
のためにmpdwの同時使用に対してソフトウェアによるイ
ンタロックが存在することがなお必要であることに留意
されたい。
SVAページがメモリシステムに真に存在していないこと
を保証することが必要となる。上述のように、正しいタ
グ値をもつデスクリプタの単なる存在は、SVAページが
実際にメモリシステムに存在することを指示しない。ソ
フトウェアは、ページアンカーを設定し、ついで排他的
状態をもつサブページを引き出すことを試みることによ
って非存在を確認し得る。引出に成功すると、ソフトウ
ェアは競争に負け、ページはメモリシステム内に存在し
ている。そうでない場合には、ソウトウェアはmpdw命令
を使用してページを創成でき、排他的に所有される全ペ
ージに関してSVAページアドレスを設定する。この目的
のためにmpdwの同時使用に対してソフトウェアによるイ
ンタロックが存在することがなお必要であることに留意
されたい。
[サブキャッシュの考察] 第2図に示されるように、各プロセッサ例えば18A
は、命令サブキャッシュ62およびデータサブキャッシュ
64を含む。これらのキャッシュはサブキャッシュと称さ
れる。命令サブキャッシュ62がイネーブルされると、す
べてのCPU命令が命令サブキャッシュから得られる。た
いていのCPUロード/ストアクラス命令は、サブキャッ
シュのデータで動作するが、若干のものは局部キャッシ
ュのデータで直接的に動作する。データは、CPUが命令
を引き出すときまたはCPUが(ほとんどの)ロードまた
はストアを実行するとき、局部的キャッシュからCPUに
移動する。データは、ある他のセルからの要求に応答し
て局部キャッシュがデータを要求するときまたはCPUが
サブキャッシュスペースを再使用しなければならないと
き、CPUからキャッシュに移動する。
は、命令サブキャッシュ62およびデータサブキャッシュ
64を含む。これらのキャッシュはサブキャッシュと称さ
れる。命令サブキャッシュ62がイネーブルされると、す
べてのCPU命令が命令サブキャッシュから得られる。た
いていのCPUロード/ストアクラス命令は、サブキャッ
シュのデータで動作するが、若干のものは局部キャッシ
ュのデータで直接的に動作する。データは、CPUが命令
を引き出すときまたはCPUが(ほとんどの)ロードまた
はストアを実行するとき、局部的キャッシュからCPUに
移動する。データは、ある他のセルからの要求に応答し
て局部キャッシュがデータを要求するときまたはCPUが
サブキャッシュスペースを再使用しなければならないと
き、CPUからキャッシュに移動する。
[サブキャッシュ構造] 第2図を参照して説明すると、各サブキャッシュ62、
64は256KバイトのSVAスペースを記述する。サブキャッ
シュは、キャッシュ同様に64ビットワードに基づく。サ
ブキャッシュの両側は、構造がキャッシュに類似である
が、ユニットサイズが異なる。サブキャッシュは、ブロ
ックおよびサブキャッシュの単位でデータを記憶する。
サブキャッシュは、2ウェイセットアソシエイティブで
あり、64セットを有する。ブロックは、211(2048)バ
イトを含み、これが26(64)バイトの25(32)サブブロ
ックに分割される。CPUは、ブロック基準でサブキャッ
シュスペースを配分し、そして各ブロック内において
は、特定のサブキャッシュ内に各サブブロックが存在す
る場合もあり、存在しない場合もある。
64は256KバイトのSVAスペースを記述する。サブキャッ
シュは、キャッシュ同様に64ビットワードに基づく。サ
ブキャッシュの両側は、構造がキャッシュに類似である
が、ユニットサイズが異なる。サブキャッシュは、ブロ
ックおよびサブキャッシュの単位でデータを記憶する。
サブキャッシュは、2ウェイセットアソシエイティブで
あり、64セットを有する。ブロックは、211(2048)バ
イトを含み、これが26(64)バイトの25(32)サブブロ
ックに分割される。CPUは、ブロック基準でサブキャッ
シュスペースを配分し、そして各ブロック内において
は、特定のサブキャッシュ内に各サブブロックが存在す
る場合もあり、存在しない場合もある。
サブキャッシュブロックおよびSVAページ間の関連
は、各サブキャッシュによりそのサブキャッシュディレ
クトリに記録される。各サブキャッシュディレクトリ
は、サブキャッシュデスクリプタより構成される。サブ
キャッシュ内の各メモリブロックに対して1つのデスク
リプタが存在する。サブキャッシュデスクリプタは、有
効または無効のいずれかであるということができる。ブ
ロック内のいずれのサブブロックも有効であれば、それ
は有効である。局部キャッシュも同じSVAページに対し
て有効デスクリプタを有する場合のみ、サブキャッシュ
デスクリプタは有効とし得る。さらに、ブロック内の各
サブブロックの状態は、局部キャッシュ内の対応するサ
ブページの状態より強くてはいけない。
は、各サブキャッシュによりそのサブキャッシュディレ
クトリに記録される。各サブキャッシュディレクトリ
は、サブキャッシュデスクリプタより構成される。サブ
キャッシュ内の各メモリブロックに対して1つのデスク
リプタが存在する。サブキャッシュデスクリプタは、有
効または無効のいずれかであるということができる。ブ
ロック内のいずれのサブブロックも有効であれば、それ
は有効である。局部キャッシュも同じSVAページに対し
て有効デスクリプタを有する場合のみ、サブキャッシュ
デスクリプタは有効とし得る。さらに、ブロック内の各
サブブロックの状態は、局部キャッシュ内の対応するサ
ブページの状態より強くてはいけない。
[サブページおよびデータ共有] メモリシステム内にページが存在するとき、そのサブ
ページの各々は、1または複数のキャッシュ例えば27
A、72Bに存在する。サブページがキャッシュ内に存在す
る場合、包含するSVAページに対するデスクリプタ(そ
のキャッシュにおける)は、そのサブページの存在を数
種の状態で記録する。キャッシュにおけるサブページの
状態は、2つのことを決定する。すなわち そのキャッシュの局部プロセッサは、サブページに存
するデータに関しどんな動作を遂行し得るか。
ページの各々は、1または複数のキャッシュ例えば27
A、72Bに存在する。サブページがキャッシュ内に存在す
る場合、包含するSVAページに対するデスクリプタ(そ
のキャッシュにおける)は、そのサブページの存在を数
種の状態で記録する。キャッシュにおけるサブページの
状態は、2つのことを決定する。すなわち そのキャッシュの局部プロセッサは、サブページに存
するデータに関しどんな動作を遂行し得るか。
必要ならば、そのキャッシュは、他のキャッシュから
ドメインを介して受信されるそのサブページに対する要
求に対してどんな応答をなすか。
ドメインを介して受信されるそのサブページに対する要
求に対してどんな応答をなすか。
キャッシュ例えば72A、72B内のサブキャッシュの状態
は、プログラムが特定の状態を必要とする動作を要求す
るとき時間とともに変化する。1組の転換ルールが、プ
ロセッサ要求およびキャッシュ間ドメイン通信から生ず
るサブページ状態の変化を特定する。
は、プログラムが特定の状態を必要とする動作を要求す
るとき時間とともに変化する。1組の転換ルールが、プ
ロセッサ要求およびキャッシュ間ドメイン通信から生ず
るサブページ状態の変化を特定する。
プロセッサ例えば40Aが命令またはデータの参照を完
成するためには、数種の条件が同時に満足されねばなら
ない。
成するためには、数種の条件が同時に満足されねばなら
ない。
命令の参照の場合、データを含むサブブロックは、命
令サブキャッシュに存在しなければならない。たいてい
のデータ動作の場合、データを含むサブブロックは、デ
ータサブキャッシュ内に適当な状態で存在しなければな
らない。
令サブキャッシュに存在しなければならない。たいてい
のデータ動作の場合、データを含むサブブロックは、デ
ータサブキャッシュ内に適当な状態で存在しなければな
らない。
データを含むサブページは、局部キャッシュに存在し
なければならない。
なければならない。
局部キャッシュは、サブページを適当な状態で保持し
なければならない。
なければならない。
もしもデータがサブキャッシュに必要とされる状態で
存在しないが、正しい状態で局部キャッシュに存在する
と、CPUはキャッシュからデータを得る。もしも局部キ
ャッシュがデータを正しい状態で有さないと、キャッシ
ュはドメインを介して通信し、サブページのコピーを得
るか、そのサブページに対して必要な状態を得るか、そ
の両方を行う。もしもキャッシュが要求を満足しない
と、キャッシュは、プロセッサに適当な例外を報知する
エラー信号を戻す。
存在しないが、正しい状態で局部キャッシュに存在する
と、CPUはキャッシュからデータを得る。もしも局部キ
ャッシュがデータを正しい状態で有さないと、キャッシ
ュはドメインを介して通信し、サブページのコピーを得
るか、そのサブページに対して必要な状態を得るか、そ
の両方を行う。もしもキャッシュが要求を満足しない
と、キャッシュは、プロセッサに適当な例外を報知する
エラー信号を戻す。
命令セットは、数種の異なる形式のロードおよび記憶
命令を含が、この命令は、プログラムに、現在の制御ス
レッドの予想される将来のデータ参照パターンに適当な
サブページ状態、ならびに並列の応用における異なる制
御スレッド間のプロトコルを要求せしめる。このセクシ
ョンは、先ず、状態およびそれらの転換をプロセッサ命
令およびそれらのキャッシュへの影響に関して記述す
る。
命令を含が、この命令は、プログラムに、現在の制御ス
レッドの予想される将来のデータ参照パターンに適当な
サブページ状態、ならびに並列の応用における異なる制
御スレッド間のプロトコルを要求せしめる。このセクシ
ョンは、先ず、状態およびそれらの転換をプロセッサ命
令およびそれらのキャッシュへの影響に関して記述す
る。
[サブページ状態] サブページ状態およびそれらの転換ルールは、プログ
ラムに対して2つの一般的な機構を提供する。すなわ
ち、 機構は、システムのプロセッサによる普通のロードお
よびストアアクセスに対して強く命令された逐次的に一
貫的なメモリアクセスモデルを透過的に実施する。
ラムに対して2つの一般的な機構を提供する。すなわ
ち、 機構は、システムのプロセッサによる普通のロードお
よびストアアクセスに対して強く命令された逐次的に一
貫的なメモリアクセスモデルを透過的に実施する。
機構は、並列計算を同期するためにプログラムにより
使用される1組のトランザクションプロミティブを提供
する。これらのプリミティブは、種々の従来形式および
非従来形式の同期機構に適用され得る。
使用される1組のトランザクションプロミティブを提供
する。これらのプリミティブは、種々の従来形式および
非従来形式の同期機構に適用され得る。
データ共有の基本的モデルは、無効、リードオンリー
および所有者の3つのクラスのサブページ状態によって
定義される。これらの3つのクラスは、それらが許容す
るアクセスに従う強さで命令される。無効状態は、アク
セスを許容しない。リードオンリー状態は、ロードおよ
び命令フェッチアクセスを許容する。数種の所有者状態
が存在するが、これらはすべてロードアクセスを許容
し、キャッシュをして相互接続部からのデータ要求に応
答せしめ、またあるものはストアアクセスを許容する。
1つのキャッシュのみが、任意の所与の時点において特
定のサブページを所有者状態で保持し得る。サブページ
を所有者状態で保持するキャッシュは、サブページの所
有者と称される。各サブページの所有権は、プロセッサ
が、所有権を要求するストア命令および特別のロード命
令により所有権を要求するとき、キャッシュからキャッ
シュに移動する。
および所有者の3つのクラスのサブページ状態によって
定義される。これらの3つのクラスは、それらが許容す
るアクセスに従う強さで命令される。無効状態は、アク
セスを許容しない。リードオンリー状態は、ロードおよ
び命令フェッチアクセスを許容する。数種の所有者状態
が存在するが、これらはすべてロードアクセスを許容
し、キャッシュをして相互接続部からのデータ要求に応
答せしめ、またあるものはストアアクセスを許容する。
1つのキャッシュのみが、任意の所与の時点において特
定のサブページを所有者状態で保持し得る。サブページ
を所有者状態で保持するキャッシュは、サブページの所
有者と称される。各サブページの所有権は、プロセッサ
が、所有権を要求するストア命令および特別のロード命
令により所有権を要求するとき、キャッシュからキャッ
シュに移動する。
[基本状態] 以下のセクションは、状態クラス、およびそれらが強
く命令される逐次的に一貫的なメモリアクセスモデルを
実施するためにどのように相互作用するかについて記述
する。
く命令される逐次的に一貫的なメモリアクセスモデルを
実施するためにどのように相互作用するかについて記述
する。
[無効状態] サブページがキャッシュ内に存在しないと、それはそ
のキャッシュに関して無効状態にあるといわれる。プロ
セッサ例えば40Aが、その局部キャッシュにおいて無効
状態にあるサブページへのロードまたはストアを要求す
ると、そのキャッシュは、データアクセスを満足するた
めにそのサブページのコピーをある他の状態で要求しな
ければならない。2つの無効状態すなわち無効デスクリ
プタと無効が存在する。
のキャッシュに関して無効状態にあるといわれる。プロ
セッサ例えば40Aが、その局部キャッシュにおいて無効
状態にあるサブページへのロードまたはストアを要求す
ると、そのキャッシュは、データアクセスを満足するた
めにそのサブページのコピーをある他の状態で要求しな
ければならない。2つの無効状態すなわち無効デスクリ
プタと無効が存在する。
特定のキャッシュが特定のページに対してデスクリプ
タをもたなければ、そのページの全サブページは、その
キャッシュにおいて無効デスクリプタ状態にあるといわ
れる。かくして、無効デスクリプタ状態にあるサブペー
ジは、そのキャッシュに明白に表わされない。
タをもたなければ、そのページの全サブページは、その
キャッシュにおいて無効デスクリプタ状態にあるといわ
れる。かくして、無効デスクリプタ状態にあるサブペー
ジは、そのキャッシュに明白に表わされない。
CPUが無効デスクリプタにあるサブページを参照する
とき、局部キャッシュはデスクリプタの1つ(正しいセ
ットにある)をSVAに割り当てる。デスクリプタ割当て
が完成した後、そのページの全サブページは無効状態を
有する。局部キャッシュが特定のページに対してデスク
リプタを有するが、特定のサブページがそのキャッシュ
に存在しないと、そのサブページは無効状態にある。局
部キャッシュは、他のキャッシュと通信することによっ
てサブページデータを得ようとする。
とき、局部キャッシュはデスクリプタの1つ(正しいセ
ットにある)をSVAに割り当てる。デスクリプタ割当て
が完成した後、そのページの全サブページは無効状態を
有する。局部キャッシュが特定のページに対してデスク
リプタを有するが、特定のサブページがそのキャッシュ
に存在しないと、そのサブページは無効状態にある。局
部キャッシュは、他のキャッシュと通信することによっ
てサブページデータを得ようとする。
[リードオンリー状態] 1つのみのリードオンリー状態、すなわちリードオン
リーが存在する。サブページの所有者がサブページを非
排他的状態に保持することを条件として、任意数のキャ
ッシュ例えば72A、72Bが特定のサブページをリードオン
リーに保持することがあり得る。サブページの所有者
が、任意の他の状態(すなわち排他的所有権状態、排他
的、アトミックの一つまたはトランジェントアトミック
の一つ)を有すると、リードオンリーコピーはどのセル
にも存在し得ない。CPUは、リードオンリー状態にある
サブページを変更できない。
リーが存在する。サブページの所有者がサブページを非
排他的状態に保持することを条件として、任意数のキャ
ッシュ例えば72A、72Bが特定のサブページをリードオン
リーに保持することがあり得る。サブページの所有者
が、任意の他の状態(すなわち排他的所有権状態、排他
的、アトミックの一つまたはトランジェントアトミック
の一つ)を有すると、リードオンリーコピーはどのセル
にも存在し得ない。CPUは、リードオンリー状態にある
サブページを変更できない。
[所有者状態] 2つの基本的所有者状態形式、すなわち非排他的およ
び排他的所有権が存在する。特定のキャッシュが特定の
サブページを非排他的状態に保持するとき、ある他のキ
ャッシュはそのサブページをリードオンリー状態で保持
していることができる。
び排他的所有権が存在する。特定のキャッシュが特定の
サブページを非排他的状態に保持するとき、ある他のキ
ャッシュはそのサブページをリードオンリー状態で保持
していることができる。
プログラム上は、非排他的状態は、リードオンリー状
態と同じである。CPUは、非排他的状態にあるサブペー
ジを変更できない。非排他的状態は、基本的にはメモリ
システムにより使用されるブックキーピング状態であ
り、そしてそれはサブページの所有権を定める。
態と同じである。CPUは、非排他的状態にあるサブペー
ジを変更できない。非排他的状態は、基本的にはメモリ
システムにより使用されるブックキーピング状態であ
り、そしてそれはサブページの所有権を定める。
排他的所有権状態は、排他的、アトミックおよびトラ
ンジェントアトミックである。特定のキャッシュが特定
のサブページを排他的所有権状態で保持すると、他のキ
ャッシュは、サブページのリードオンリーまたは非排他
的コピーを保持し得ない。局部キャッシュがサブページ
を排他的所有権状態で保持すると、STTがセグメントへ
の書込みアクセスを許容しかつディスクリプタ・書込み
なしフラグがクリヤ状態にあることを条件としてCPUサ
ブページデータを変更できる。
ンジェントアトミックである。特定のキャッシュが特定
のサブページを排他的所有権状態で保持すると、他のキ
ャッシュは、サブページのリードオンリーまたは非排他
的コピーを保持し得ない。局部キャッシュがサブページ
を排他的所有権状態で保持すると、STTがセグメントへ
の書込みアクセスを許容しかつディスクリプタ・書込み
なしフラグがクリヤ状態にあることを条件としてCPUサ
ブページデータを変更できる。
[アトミック状態] アトミック状態は、排他的状態よりも強い所有権形式
である。サブページのみが、プログラムによる明白な要
求の結果としてアトミック状態に出入りできる。
である。サブページのみが、プログラムによる明白な要
求の結果としてアトミック状態に出入りできる。
基本的には、アトミック状態は、SVAスペースの任意
のサブページへのシングル−スレッドアクセスに使用で
きる。プロセッサがサブページがアトミック状態に入る
ことを要求すべくgsp.nwt(サブページ取得、待ちな
し)を実行すると、命令は、通常、サブページがすでに
アトミック状態にない場合のみ完了する。かくして、サ
ブページ上のアトミック状態は、単一のロックとして使
用できる。ロックは、gsp.nwt命令が、通常、最初にサ
ブページを排他的状態で得て、状態を排他的からアトミ
ックに変更することによって、完了するときに行われ
る。ロックは、rsp(サブページ解放)命令を実行する
ことによってロックを解除される。rsp命令は、サブペ
ージがアトミックまたはトランジェントアトミック状態
であるキャッシュに存在することを必要とする。局部キ
ャッシュは、サブページを取得し、ついでサブページを
アトミックまたはトランジェントアトミック状態から排
他的状態に変える。(もしもサブページがトランジェン
トアトミック状態を有するならば、動作は一層複雑とな
るが、結果はプログラム上同じである。) アトミック状態はサブページとのみ関連していること
に留意することが重要である。特定の動作中システムプ
ロセス(代表的には使用者プログラム)または特定のセ
ルとの関連はない。
のサブページへのシングル−スレッドアクセスに使用で
きる。プロセッサがサブページがアトミック状態に入る
ことを要求すべくgsp.nwt(サブページ取得、待ちな
し)を実行すると、命令は、通常、サブページがすでに
アトミック状態にない場合のみ完了する。かくして、サ
ブページ上のアトミック状態は、単一のロックとして使
用できる。ロックは、gsp.nwt命令が、通常、最初にサ
ブページを排他的状態で得て、状態を排他的からアトミ
ックに変更することによって、完了するときに行われ
る。ロックは、rsp(サブページ解放)命令を実行する
ことによってロックを解除される。rsp命令は、サブペ
ージがアトミックまたはトランジェントアトミック状態
であるキャッシュに存在することを必要とする。局部キ
ャッシュは、サブページを取得し、ついでサブページを
アトミックまたはトランジェントアトミック状態から排
他的状態に変える。(もしもサブページがトランジェン
トアトミック状態を有するならば、動作は一層複雑とな
るが、結果はプログラム上同じである。) アトミック状態はサブページとのみ関連していること
に留意することが重要である。特定の動作中システムプ
ロセス(代表的には使用者プログラム)または特定のセ
ルとの関連はない。
プロセスがgspを実行して、アトミック状態にあるサ
ブページを取得し、続いてシステムソフトウェアにより
切り替えられて、他のセル上での実行を継続するように
することが重要である。そのプロセスが第2のセル上に
おける実行を継続し、究極的にサブページを解放すべく
rsp命令を実行する。これらの2つの命令間において
は、全メモリシステムにはそのサブページの単一のコピ
ーしかなく、そしてそれはアトミックまたはトランジェ
ントアトミック状態にあるであろう。種々のプロセッサ
がサブページを参照する命令を実行すると、その単一の
有効コピーは、セルからセルへ移動する。特定のプロセ
スがアトミック状態を取得し、他のプロセスがアトミッ
クを解放することも可能である。
ブページを取得し、続いてシステムソフトウェアにより
切り替えられて、他のセル上での実行を継続するように
することが重要である。そのプロセスが第2のセル上に
おける実行を継続し、究極的にサブページを解放すべく
rsp命令を実行する。これらの2つの命令間において
は、全メモリシステムにはそのサブページの単一のコピ
ーしかなく、そしてそれはアトミックまたはトランジェ
ントアトミック状態にあるであろう。種々のプロセッサ
がサブページを参照する命令を実行すると、その単一の
有効コピーは、セルからセルへ移動する。特定のプロセ
スがアトミック状態を取得し、他のプロセスがアトミッ
クを解放することも可能である。
アトミック状態は、サブページと関連する追加のフラ
グであり、サブページのデータ状態に加えてアトミック
状態を使用するプロトコルを実施することができる。デ
ータのみをを使用して実施されるプロトコルがエラーを
有することがあるのと同様に、アトミック状態プロトコ
ルが欠陥である可能性がある。ハードウェアは、アトミ
ック状態の使用に何らチェックを課さない(STTおよび
デスクリプタ・アトミックなしに課されるアクセス制御
以上に)。
グであり、サブページのデータ状態に加えてアトミック
状態を使用するプロトコルを実施することができる。デ
ータのみをを使用して実施されるプロトコルがエラーを
有することがあるのと同様に、アトミック状態プロトコ
ルが欠陥である可能性がある。ハードウェアは、アトミ
ック状態の使用に何らチェックを課さない(STTおよび
デスクリプタ・アトミックなしに課されるアクセス制御
以上に)。
[トランジェントアトミック状態] gsp.nwt命令は、つねにその限定された実行時間内に
完了するが、(メモリシステム内のサブページの現在の
状態に依存して)持続する場合もあるし持続しない場合
もある。命令の第2の形式は、gsp.wt(サブページ取
得、待ちあり)であるが、これは、サブページが排他的
状態で得られアトミック状態に変わるまで完了しない。
gsp.wt命令は、gsp命令が成功したかしなかったかを決
定する負担を、プログラマから解放する。プロセッサ例
えば40Aがgsp.wtを実行するとき、サブページがすでに
アトミックまたはトランジェントアトミック状態にあれ
ば、サブページが解放され、局部キャッシュで得られ、
排他的状態からアトミックまたはトランジェントアトミ
ック状態に変化するまでプロセッサは停止する。gsp.wt
命令の使用は、セルがロックをロックする機会を待つか
ら、キャッシュ間において送られるメッセージの数を減
ずることができる。
完了するが、(メモリシステム内のサブページの現在の
状態に依存して)持続する場合もあるし持続しない場合
もある。命令の第2の形式は、gsp.wt(サブページ取
得、待ちあり)であるが、これは、サブページが排他的
状態で得られアトミック状態に変わるまで完了しない。
gsp.wt命令は、gsp命令が成功したかしなかったかを決
定する負担を、プログラマから解放する。プロセッサ例
えば40Aがgsp.wtを実行するとき、サブページがすでに
アトミックまたはトランジェントアトミック状態にあれ
ば、サブページが解放され、局部キャッシュで得られ、
排他的状態からアトミックまたはトランジェントアトミ
ック状態に変化するまでプロセッサは停止する。gsp.wt
命令の使用は、セルがロックをロックする機会を待つか
ら、キャッシュ間において送られるメッセージの数を減
ずることができる。
トランジェントアトミック状態は、gsp.wtを効率的に
機能せしめるようにメモリシステムにより自動的に使用
される。その使用は、プログラマには全く透過的であ
る。サブページがアトミック状態にあり他のキャッシュ
がそのサブページ上のgsp.wtを実行するならば、そのサ
ブページは、保持しつつあるキャッシュにおいてトラン
ジェントアトミック状態に入る。サブページが後でrsp
命令で解放されると、トランジェントアトミック状態
は、サブページをして特別の解放状態にある相互接続部
に駆逐せしめる。解放しているキャッシュ例えば72A、7
2Bは、サブページに対するそれ自身の状態を無効に変え
る。gspを実行しているどのキャッシュも、サブページ
に遭遇しそれを受け入れる。受入れ中のキャッシュは、
ついでそのgsp命令を完了することができ、サブページ
はそのキャッシュにおいてトランジェントアトミック状
態に入る。この動作は、各後続のgspおよびrspに対して
起こり、駆逐されるサブページがどの他のキャッシュに
よっても受け入れられなくなるような時点まで続く。そ
のとき、解放を遂行するキャッシュは、そのサブページ
を無効状態(サブページが解放されたときにセットされ
た)から排他的状態に変える。
機能せしめるようにメモリシステムにより自動的に使用
される。その使用は、プログラマには全く透過的であ
る。サブページがアトミック状態にあり他のキャッシュ
がそのサブページ上のgsp.wtを実行するならば、そのサ
ブページは、保持しつつあるキャッシュにおいてトラン
ジェントアトミック状態に入る。サブページが後でrsp
命令で解放されると、トランジェントアトミック状態
は、サブページをして特別の解放状態にある相互接続部
に駆逐せしめる。解放しているキャッシュ例えば72A、7
2Bは、サブページに対するそれ自身の状態を無効に変え
る。gspを実行しているどのキャッシュも、サブページ
に遭遇しそれを受け入れる。受入れ中のキャッシュは、
ついでそのgsp命令を完了することができ、サブページ
はそのキャッシュにおいてトランジェントアトミック状
態に入る。この動作は、各後続のgspおよびrspに対して
起こり、駆逐されるサブページがどの他のキャッシュに
よっても受け入れられなくなるような時点まで続く。そ
のとき、解放を遂行するキャッシュは、そのサブページ
を無効状態(サブページが解放されたときにセットされ
た)から排他的状態に変える。
解放状態をもつパケットを、CPUがロードまたはスト
ア命令を遂行しつつあるキャッシュにより受け入れられ
ることも可能である。原キャッシュは、サブページが受
け入れられたのを見て、そのサブページを無効状態のま
まにおく。受入れ中のキャッシュは、そのCPUをして、
サブページを撤回する前に単一の命令を実行せしめ、そ
れ自身のサブページ状態を無効にセットし、サブページ
を解放状態で送出する。ロードまたはストアを実行して
いたキャッシュは、ここで、この解放の目的のためペー
ジの所有者である。前と同様、他のキャッシュがデータ
を受け入れなければ、このキャッシュは、サブページ状
態を排他的状態に変え、所有権を保持する。
ア命令を遂行しつつあるキャッシュにより受け入れられ
ることも可能である。原キャッシュは、サブページが受
け入れられたのを見て、そのサブページを無効状態のま
まにおく。受入れ中のキャッシュは、そのCPUをして、
サブページを撤回する前に単一の命令を実行せしめ、そ
れ自身のサブページ状態を無効にセットし、サブページ
を解放状態で送出する。ロードまたはストアを実行して
いたキャッシュは、ここで、この解放の目的のためペー
ジの所有者である。前と同様、他のキャッシュがデータ
を受け入れなければ、このキャッシュは、サブページ状
態を排他的状態に変え、所有権を保持する。
gsp.wt命令が待ち得る時間に制限はない。命令を発し
たプロセスは、サブページが解放されるまで待機する。
命令は、種々の周囲コントローラインターフェース
(「XIU」)信号により中断される得る。かかる事象が
起こると、CCUは、アトミックアクセスを得ようとする
試みを破棄する。サブページがその間に解放されそして
他の要求者がないと、サブページは、トランジェントア
トミック状態から解放状態に、そして最終的に排他的状
態に変わる。代表的システムソフトウェア動作では、割
込みが処理され中断された命令が再スタートされるか
ら、CCUは再度要求を発する。前と同様に、それが進行
する場合もあり、待機せしめられる場合もある。
たプロセスは、サブページが解放されるまで待機する。
命令は、種々の周囲コントローラインターフェース
(「XIU」)信号により中断される得る。かかる事象が
起こると、CCUは、アトミックアクセスを得ようとする
試みを破棄する。サブページがその間に解放されそして
他の要求者がないと、サブページは、トランジェントア
トミック状態から解放状態に、そして最終的に排他的状
態に変わる。代表的システムソフトウェア動作では、割
込みが処理され中断された命令が再スタートされるか
ら、CCUは再度要求を発する。前と同様に、それが進行
する場合もあり、待機せしめられる場合もある。
[状態転換] データがある所有しているキャッシュから他のキャッ
シュに移動する基本的機構は、命令引出し、およびそれ
らの他のキャッシュに対して局部的なプロセッサによる
ロードおよびストア命令の実行である。異なるロードお
よびプリフェッチ命令は、プログラムに、それらの局部
キャッシュがリードオンリーまたは排他的所有権状態を
取得することを要求せしめ、またストア命令は、つね
に、サブページが排他的所有権状態を有することを必要
とする。ある状況においては、キャッシュは、相互接続
上にそれが通過するサブページのリードオンリーコピー
を得ることがある。サブページポスト−ストア(psts
t)命令は、サブページのリードオンリーコピーをすべ
ての関係するキャッシュに通信する。最後に、所有中の
キャッシュは、後で再結合する部分として相互接続上に
所有権状態を送出し得る。命令フェッチおよびロード命
令により、局部キャッシュはサブページのリードオンリ
ーコピーを要求する結果となり得る。この要求は、サブ
ページを所有するキャッシュにより応答される。所有中
のキャッシュは、非排他的状態でサブページを有するな
らば、要求中のキャッシュにリードオンリーコピーを供
給するが、それ自身の状態を変えない。所有中のキャッ
シュは、排他的状態でサブページを有するならば、それ
自身のサブページ状態を非排他的状態に変え、ついでリ
ードオンリーコピーを要求者に供給する。所有中のキャ
ッシュは、アトミックまたはトランジェントアトミック
状態でサブページを有するならば、その状態でサブペー
ジを供給し、そしてそれ自身のコピーを無効化する。
シュに移動する基本的機構は、命令引出し、およびそれ
らの他のキャッシュに対して局部的なプロセッサによる
ロードおよびストア命令の実行である。異なるロードお
よびプリフェッチ命令は、プログラムに、それらの局部
キャッシュがリードオンリーまたは排他的所有権状態を
取得することを要求せしめ、またストア命令は、つね
に、サブページが排他的所有権状態を有することを必要
とする。ある状況においては、キャッシュは、相互接続
上にそれが通過するサブページのリードオンリーコピー
を得ることがある。サブページポスト−ストア(psts
t)命令は、サブページのリードオンリーコピーをすべ
ての関係するキャッシュに通信する。最後に、所有中の
キャッシュは、後で再結合する部分として相互接続上に
所有権状態を送出し得る。命令フェッチおよびロード命
令により、局部キャッシュはサブページのリードオンリ
ーコピーを要求する結果となり得る。この要求は、サブ
ページを所有するキャッシュにより応答される。所有中
のキャッシュは、非排他的状態でサブページを有するな
らば、要求中のキャッシュにリードオンリーコピーを供
給するが、それ自身の状態を変えない。所有中のキャッ
シュは、排他的状態でサブページを有するならば、それ
自身のサブページ状態を非排他的状態に変え、ついでリ
ードオンリーコピーを要求者に供給する。所有中のキャ
ッシュは、アトミックまたはトランジェントアトミック
状態でサブページを有するならば、その状態でサブペー
ジを供給し、そしてそれ自身のコピーを無効化する。
キャッシュが排他的所有権を要求すると、所有中のキ
ャッシュは、サブページのそのコピーを生ずる。サブペ
ージが非排他的状態で所有されると、他のキャッシュに
おいてはリードオンリーコピーが存在する可能性があ
る。すべてのかかるキャッシュは排他的所有権要求に応
答して、それらのリードオンリーコピーを無効化する。
ャッシュは、サブページのそのコピーを生ずる。サブペ
ージが非排他的状態で所有されると、他のキャッシュに
おいてはリードオンリーコピーが存在する可能性があ
る。すべてのかかるキャッシュは排他的所有権要求に応
答して、それらのリードオンリーコピーを無効化する。
キャッシュが、ストア命令を満足するために、排他的
所有権状態でサブページを取得する場合は、ストア命令
が完了するまで、所有権またはリードオンリーコピーを
他のキャッシュに授けない。このルールは、メモリ位置
のリーダーが変更がなされる順序で変更に遭遇すること
を保証するがゆえに、メモリシステムにおける強く命令
された性質である。
所有権状態でサブページを取得する場合は、ストア命令
が完了するまで、所有権またはリードオンリーコピーを
他のキャッシュに授けない。このルールは、メモリ位置
のリーダーが変更がなされる順序で変更に遭遇すること
を保証するがゆえに、メモリシステムにおける強く命令
された性質である。
サブページがアトミック状態にあるとき、この状態は
トランジェントアトミック状態に変わり得るが、何らか
のロードまたはストア命令の結果として、それが他の状
態に変わることは決してない。ある他のキャッシュがサ
ブページを要求するとき、そのキャッシュはつねにアト
ミックまたはトランジェントアトミック状態でサブペー
ジを得る。サブページが排他的状態に解放された後、排
他的および非排他的状態間の転換は、再び起こり得、サ
ブページが非排他的に所有される場合にはリードオンリ
ーコピーが存在し得る。
トランジェントアトミック状態に変わり得るが、何らか
のロードまたはストア命令の結果として、それが他の状
態に変わることは決してない。ある他のキャッシュがサ
ブページを要求するとき、そのキャッシュはつねにアト
ミックまたはトランジェントアトミック状態でサブペー
ジを得る。サブページが排他的状態に解放された後、排
他的および非排他的状態間の転換は、再び起こり得、サ
ブページが非排他的に所有される場合にはリードオンリ
ーコピーが存在し得る。
特定のサブページが特定のキャッシュにおいて無効状
態にあり(すなわち、デスクリプタがすでに割り当てら
れているが、特定のサブページが存在しない)、そのサ
ブページのコピーが、ある他のキャッシュからの要求に
起因してドメイン相互接続部で入手可能であると、無効
状態をもつキャッシュはそのサブページのリードオンリ
ーコピーを取得する。この機構の効果は、並列計算を加
速することである。何故ならば、これは他のキャッシュ
からのサブページのコピーの要求と関連する潜伏期間を
除去し得るからである。
態にあり(すなわち、デスクリプタがすでに割り当てら
れているが、特定のサブページが存在しない)、そのサ
ブページのコピーが、ある他のキャッシュからの要求に
起因してドメイン相互接続部で入手可能であると、無効
状態をもつキャッシュはそのサブページのリードオンリ
ーコピーを取得する。この機構の効果は、並列計算を加
速することである。何故ならば、これは他のキャッシュ
からのサブページのコピーの要求と関連する潜伏期間を
除去し得るからである。
[状態転換透過伝送機構] 基本的機構は、単純なロードおよびストア命令を使用
するプログラムに、強く命令されたメモリアクセスモデ
ルないし基準を提供することに注目することが重要であ
る。プログラムは、その性能を改善するために特定の状
態を要求するロード、ストアおよびプリフェッチの形式
を使用し得、そして多くの場合はコンパイラが必要な分
析を遂行することが予測される。しかしながら、この分
析は任意である。
するプログラムに、強く命令されたメモリアクセスモデ
ルないし基準を提供することに注目することが重要であ
る。プログラムは、その性能を改善するために特定の状
態を要求するロード、ストアおよびプリフェッチの形式
を使用し得、そして多くの場合はコンパイラが必要な分
析を遂行することが予測される。しかしながら、この分
析は任意である。
[データおよび同期の統合] 簡単なトランザクションにおいては、サブページアト
ミック状態は、純粋にロックとして使用される。サブペ
ージのデータは関係しない。もっと技巧的な形式の同期
機構のあるものでは、アトミック状態に保持されたサブ
ページのデータを利用する。1つの技術では、サブペー
ジ上のアトミック状態をそのサブページ内のデータ上の
ロックとして使用する。プログラムは、1または複数の
サブページをアトミック状態にし、それらの内容を操作
し、そしてそれらを解放する。
ミック状態は、純粋にロックとして使用される。サブペ
ージのデータは関係しない。もっと技巧的な形式の同期
機構のあるものでは、アトミック状態に保持されたサブ
ページのデータを利用する。1つの技術では、サブペー
ジ上のアトミック状態をそのサブページ内のデータ上の
ロックとして使用する。プログラムは、1または複数の
サブページをアトミック状態にし、それらの内容を操作
し、そしてそれらを解放する。
[キャッシュの使用法および交換機能] 各キャッシュは、存在するすべてのページに対してLR
U状態を維持する。LRUデータは、デスクリプタ連想メモ
リの128セットの各々に対して別個に維持され、それら
の最後の参照の概略の時間にしたがってセット内に16ペ
ージを整理する。
U状態を維持する。LRUデータは、デスクリプタ連想メモ
リの128セットの各々に対して別個に維持され、それら
の最後の参照の概略の時間にしたがってセット内に16ペ
ージを整理する。
[基本的LRU保守] 各キャッシュは、各セットのデスクリプタのLRUからM
RUに至る順序設定を維持する。順序設定は、デスクリプ
タ・LRU優先で維持される。各セット内の各デスクリプ
タは、デスクリプタ・LRU優先で0(MRU)から15(LR
U)までの値を有する。概念的には、1ページが参照さ
れるとき、MRUに移り、MRUから参照ページの古いLRU優
先に至る全ページが、LRUに向って1ステップずつ移動
する。
RUに至る順序設定を維持する。順序設定は、デスクリプ
タ・LRU優先で維持される。各セット内の各デスクリプ
タは、デスクリプタ・LRU優先で0(MRU)から15(LR
U)までの値を有する。概念的には、1ページが参照さ
れるとき、MRUに移り、MRUから参照ページの古いLRU優
先に至る全ページが、LRUに向って1ステップずつ移動
する。
[デスクリプタ割当て動作] セット内の新しいデスクリプタが必要とされるとき、
キャッシュは、有用なデスクリプタを見出すに必要とさ
れるだけの数の下記の動作を通って順に進行する。すな
わち, 無効のデスクリプタを見つける。
キャッシュは、有用なデスクリプタを見出すに必要とさ
れるだけの数の下記の動作を通って順に進行する。すな
わち, 無効のデスクリプタを見つける。
リードオンリーコピーを無効化する。
純粋のSVAページを破壊する。
上述の手段によりデスクリプタを割り当てることがで
きなければ、ラインフルの例外を報知する。
きなければ、ラインフルの例外を報知する。
個々の段階は以下に説明する。もしも無効デスクリプ
タが存在すれば、それは即座に使用できる。これは次の
条件を必要とする。すなわち、 すべてのサブページが無効状態にあり、かつデスクリ
プタ・保持およびデスクリプタ・アンカーが両方ともク
リヤ状態にある。
タが存在すれば、それは即座に使用できる。これは次の
条件を必要とする。すなわち、 すべてのサブページが無効状態にあり、かつデスクリ
プタ・保持およびデスクリプタ・アンカーが両方ともク
リヤ状態にある。
ページのサブページがPRTエントリにより記述されて
いない。
いない。
リードオンリーコピーを無効化するためには、もしも
ctl$cculru_configu.cdeが1であれば、キャッシュは
サブページのリードオンリーコピーのみを含むデスクリ
プタを識別使用とする。キャッシュは、下記の条件を有
するページを待ちながらLRUないしMRUを捜索する。すな
わち、 全ページがリードオンリーまたは無効状態にある。
ctl$cculru_configu.cdeが1であれば、キャッシュは
サブページのリードオンリーコピーのみを含むデスクリ
プタを識別使用とする。キャッシュは、下記の条件を有
するページを待ちながらLRUないしMRUを捜索する。すな
わち、 全ページがリードオンリーまたは無効状態にある。
サブキャッシュ化サブページがない。
ctl$ccu_lru_configu.cdlに等しいかそれより大きい
LRU値. デスクリプタ・保持およびデスクリプタ・アンカーが
両方ともクリヤ状態。
LRU値. デスクリプタ・保持およびデスクリプタ・アンカーが
両方ともクリヤ状態。
ページのサブページがPRTエントリにより記述されて
いない。
いない。
容認できるデスクリプタが見出されると、すべてのサ
ブページは無効状態に変えられ、そのデスクリプタが使
用される。
ブページは無効状態に変えられ、そのデスクリプタが使
用される。
純粋のSVAを落すために、もしもctl$ccu_lru_confi
g.pdeが1であれば、キャッシュは、破壊され得る(メ
モリシステムから完全に除去される)SVAページを識別
しようとする。キャッシュは、下記の条件を有するペー
ジを待ちながら、LRUないしMRUを捜索する。
g.pdeが1であれば、キャッシュは、破壊され得る(メ
モリシステムから完全に除去される)SVAページを識別
しようとする。キャッシュは、下記の条件を有するペー
ジを待ちながら、LRUないしMRUを捜索する。
全ページが(種々の)排他的所有権状態にある。
サブキャッシュ化サブページがない。
デスクリプタ・変更およびデスクリプタアトミック変
更が両方ともクリヤ状態にある。
更が両方ともクリヤ状態にある。
ctl$ccu_lru_configu.cdlに等しいかそれより大きい
LRU値. デスクリプタ・保持およびデスクリプタ・アンカーが
両方ともクリヤ状態。
LRU値. デスクリプタ・保持およびデスクリプタ・アンカーが
両方ともクリヤ状態。
ページのサブページがPRTエントリにより記述されて
いない。
いない。
もしも容認可能なデスクリプタが見出されると、すべ
てのサブページは無効状態に変えられ(それによりSVA
ページを破壊する)、そしてそのデスクリプタが使用さ
れる。
てのサブページは無効状態に変えられ(それによりSVA
ページを破壊する)、そしてそのデスクリプタが使用さ
れる。
[ロードおよびストア命令] 参照されるアドレスを含むサブブロックが必要とされ
る状態のサブキャッシュに存在しないとき、プロセッサ
例えば40Aは、要求としてロードおよびストア命令をそ
の局部キャッシュに通す。異なる形式のロードおよびス
トア命令は、下記の命令のアクセスパターンに関する情
報を局部キャッシュに通す。例えば、命令の順序が、ロ
ードおよびそれに続くストアであり、データアイテムを
含むサブページがまだ局部キャッシュに存在していない
と、ロード命令に対するリードオンリーコピーを得るよ
りも、ロードに対する所有権を取得し、ついで二度目に
ドメインを介して通信し、ストア命令に対する所有権を
取得するのが一層有効である。
る状態のサブキャッシュに存在しないとき、プロセッサ
例えば40Aは、要求としてロードおよびストア命令をそ
の局部キャッシュに通す。異なる形式のロードおよびス
トア命令は、下記の命令のアクセスパターンに関する情
報を局部キャッシュに通す。例えば、命令の順序が、ロ
ードおよびそれに続くストアであり、データアイテムを
含むサブページがまだ局部キャッシュに存在していない
と、ロード命令に対するリードオンリーコピーを得るよ
りも、ロードに対する所有権を取得し、ついで二度目に
ドメインを介して通信し、ストア命令に対する所有権を
取得するのが一層有効である。
サブキャッシュのサブブロックの状態は、キャッシュ
内の対応するサブページの状態をつねには反映しない。
命令サブキャッシュは、つねにデータのリードオンリー
コピーを得る。データサブキャッシュは、サブブロック
をリードオンリーまたは排他的状態に保持し得る。サブ
キャッシュは、キャッシュが排他的所有権状態を有しそ
してデスクリプタ書込みなしがセットされない場合のみ
排他的状態を有し得る。(サブキャッシュは、排他的、
アトミック、およびトランジェントアトミックサブペー
ジ状態間を識別しない。)サブキャッシュが排他的状態
でサブブロックを有すると、CPUは、新データをサブキ
ャッシュに入れることによりストア命令を実行する。st
64.nscを除くすべてのストア命令に対して、もしもサブ
ブロックがサブキャッシュにより記述されずあるいは無
効またはリードオンリー状態を有するならば、CPUはス
トア命令を完了する前に局部キャッシュから排他的状態
を要求しなければならない。もしもデスクリプタ・書込
みなしがセットされるかサブページがメモリシステムに
存在しないと、障害が生ずる。
内の対応するサブページの状態をつねには反映しない。
命令サブキャッシュは、つねにデータのリードオンリー
コピーを得る。データサブキャッシュは、サブブロック
をリードオンリーまたは排他的状態に保持し得る。サブ
キャッシュは、キャッシュが排他的所有権状態を有しそ
してデスクリプタ書込みなしがセットされない場合のみ
排他的状態を有し得る。(サブキャッシュは、排他的、
アトミック、およびトランジェントアトミックサブペー
ジ状態間を識別しない。)サブキャッシュが排他的状態
でサブブロックを有すると、CPUは、新データをサブキ
ャッシュに入れることによりストア命令を実行する。st
64.nscを除くすべてのストア命令に対して、もしもサブ
ブロックがサブキャッシュにより記述されずあるいは無
効またはリードオンリー状態を有するならば、CPUはス
トア命令を完了する前に局部キャッシュから排他的状態
を要求しなければならない。もしもデスクリプタ・書込
みなしがセットされるかサブページがメモリシステムに
存在しないと、障害が生ずる。
サブページに対する要求が他のキャッシュから到着す
ると、所有中のキャッシュが応答しなければならない。
もしもサブページの一部がデータキャッシュ内に存在す
るれば、局部キャッシュは、サブキャッシュにしか存在
しないかもしれない変更を得ることを保証しなければな
らない。キャッシュはまた、CPUに、要求に依存して、
サブブロックに対するサブキャッシュ状態をリードオン
リーまたは無効に変化させる。特定の場合には、キャッ
シュはまた、命令サブキャッシュがサブページについて
のそのリードオンリーコピーを無効化することを保証す
ることになろう。
ると、所有中のキャッシュが応答しなければならない。
もしもサブページの一部がデータキャッシュ内に存在す
るれば、局部キャッシュは、サブキャッシュにしか存在
しないかもしれない変更を得ることを保証しなければな
らない。キャッシュはまた、CPUに、要求に依存して、
サブブロックに対するサブキャッシュ状態をリードオン
リーまたは無効に変化させる。特定の場合には、キャッ
シュはまた、命令サブキャッシュがサブページについて
のそのリードオンリーコピーを無効化することを保証す
ることになろう。
サブキャッシュ管理の単位(ブロックおよびサブブロ
ック)とキャッシュ管理の単位(ページおよびサブペー
ジ)間を識別することが重要である。データは、CPUお
よびその局部キャッシュ間をサブブロックで移動する。
データは、キャッシュ間をサブページで移動する。各サ
ブページに対して2つのサブブロックが存在する。
ック)とキャッシュ管理の単位(ページおよびサブペー
ジ)間を識別することが重要である。データは、CPUお
よびその局部キャッシュ間をサブブロックで移動する。
データは、キャッシュ間をサブページで移動する。各サ
ブページに対して2つのサブブロックが存在する。
異なる形式のロードおよびストア命令について以下に
記述する。各記述は、命令の意味論の簡単な集約で始ま
り、サブキャッシュおよびキャッシュ動作の概説に続
く。
記述する。各記述は、命令の意味論の簡単な集約で始ま
り、サブキャッシュおよびキャッシュ動作の概説に続
く。
load(read_only)[ld.ro] load_64(read_only,subcached[ld64.ro.sc] プログラムはデータ読取りのパターンを続ける。仕事
の最少量はデータを得るようになされる。もしも包含し
ているサブブロックがサブキャッシュ化されると、それ
は直接使用される。もしも局部キャッシュがサブページ
を有さないと、局部キャッシュはコピーを得る。局部キ
ャッシュは、適宜、排他的またはリードオンリー状態で
サブブロックをサブキャッシュに供給する。
の最少量はデータを得るようになされる。もしも包含し
ているサブブロックがサブキャッシュ化されると、それ
は直接使用される。もしも局部キャッシュがサブページ
を有さないと、局部キャッシュはコピーを得る。局部キ
ャッシュは、適宜、排他的またはリードオンリー状態で
サブブロックをサブキャッシュに供給する。
load(exclusive)[ld.ex] load_64(exclusive,subcached)[ld64.ex.sc] プログラムは、下記の命令でサブブロックを書き込
み、そして排他的状態は任意の他の状態に好ましい。デ
ータが僅かの共有を有することが予期されるとき、また
は一連の書込みが生じつつあったときに、プログラムが
これを使用する。これは、CPUがデータを変更し得る前
に必要とされる相互接続のメッセージの数を減ずる。
み、そして排他的状態は任意の他の状態に好ましい。デ
ータが僅かの共有を有することが予期されるとき、また
は一連の書込みが生じつつあったときに、プログラムが
これを使用する。これは、CPUがデータを変更し得る前
に必要とされる相互接続のメッセージの数を減ずる。
load(exclusive)の使用の特定の例はスタックのよ
うなプログラム毎データである。一般的には、かかるデ
ータのリードオンリーコピーはない。何故ならば、唯一
のコピーは、プログラムによる使用におけるものである
からである。しかしながら、もしもプログラムが一つの
プロセッサから他のプロセッサに移動すると、新しいプ
ロセッサの局部キャッシュはコピーを持たなず、古いプ
ロセッサの局部キャッシュは、サブページを排他的所有
権状態で保持し続ける。プログラムがload(lead_onl
y)を使用した場合、局部キャッシュは、サブページを
リードオンリー状態で取得する(サブページがその状態
が得られるアトミックまたはトランジェントアトミック
状態にない限り)。後続のストアは、何らかのCPUデー
タ変更が起こることがある前に、キャッシュが他の相互
接続要求をなすことを必要とする(排他的所有権状態を
得るために)。
うなプログラム毎データである。一般的には、かかるデ
ータのリードオンリーコピーはない。何故ならば、唯一
のコピーは、プログラムによる使用におけるものである
からである。しかしながら、もしもプログラムが一つの
プロセッサから他のプロセッサに移動すると、新しいプ
ロセッサの局部キャッシュはコピーを持たなず、古いプ
ロセッサの局部キャッシュは、サブページを排他的所有
権状態で保持し続ける。プログラムがload(lead_onl
y)を使用した場合、局部キャッシュは、サブページを
リードオンリー状態で取得する(サブページがその状態
が得られるアトミックまたはトランジェントアトミック
状態にない限り)。後続のストアは、何らかのCPUデー
タ変更が起こることがある前に、キャッシュが他の相互
接続要求をなすことを必要とする(排他的所有権状態を
得るために)。
ld.roの場合と同様に、仕事の最小量はデータを得る
ためになされる。もしも、サブブロックがサブキャッシ
ュにすでに存在すれば、それは直接的に使用される。も
しも局部キャッシュがサブページを有さなければ、局部
キャシュはサブページを排他的所有権状態で要求する。
局部キャッシュがサブページを有すれば、サブブロック
は、適宜、リードオンリーまたは排他的状態でCPUに供
給される。
ためになされる。もしも、サブブロックがサブキャッシ
ュにすでに存在すれば、それは直接的に使用される。も
しも局部キャッシュがサブページを有さなければ、局部
キャシュはサブページを排他的所有権状態で要求する。
局部キャッシュがサブページを有すれば、サブブロック
は、適宜、リードオンリーまたは排他的状態でCPUに供
給される。
store[st] store_64[subcached)[st64.sc] もしもサブブロックがすでに排他的状態でサブキャッ
シュに存在すれば、サブキャッシュ状態で変更されず、
データはサブキャッシュに書き込まれる。
シュに存在すれば、サブキャッシュ状態で変更されず、
データはサブキャッシュに書き込まれる。
サブキャッシュは、排他的状態でサブブロックを有さ
なければならない。必要なとき、サブキャッシュは局部
キャッシュから排他的状態を要求し、そして局部キャッ
シュは、相互接続部から排他的所有権状態を要求する。
もしもデスクリプター書込みなしフラグがセットされれ
ば、エラーがCPUに報知され、CPUがページ書込みなしの
例外を発生する。そうでなければ、サブキャッシュは、
排他的状態でサブブロックを得、データがサブキャッシ
ュに書き込まれる。
なければならない。必要なとき、サブキャッシュは局部
キャッシュから排他的状態を要求し、そして局部キャッ
シュは、相互接続部から排他的所有権状態を要求する。
もしもデスクリプター書込みなしフラグがセットされれ
ば、エラーがCPUに報知され、CPUがページ書込みなしの
例外を発生する。そうでなければ、サブキャッシュは、
排他的状態でサブブロックを得、データがサブキャッシ
ュに書き込まれる。
load_64(read_only,unsubcached)[ld64.ro.nsc] load_64(exclusive,unsubcached)[ld64.ex.nsc] プログラマーは、ldに対して記述されたように、予測
される参照パターンに従い排他的およびリードオンリー
指示を使用する。しかしながら、サブブロックへの参照
の回数は少ないと予測され、そしてサブキャッシュはこ
のデータの引出中擾乱されてはならない。
される参照パターンに従い排他的およびリードオンリー
指示を使用する。しかしながら、サブブロックへの参照
の回数は少ないと予測され、そしてサブキャッシュはこ
のデータの引出中擾乱されてはならない。
データがサブキャッシュないに存在すれば、それは直
接的に使用される。局部キャッシュがサブページを有さ
なければ、局部キャッシュはコピーを得る。CPUは、デ
ータのコピーを得、指示レジスタをロードする。
接的に使用される。局部キャッシュがサブページを有さ
なければ、局部キャッシュはコピーを得る。CPUは、デ
ータのコピーを得、指示レジスタをロードする。
store_64(unsubcached)[st64.nsc] サブブロックへの参照の回数は少ないことが予測され
(代表的には1)、そしてサブキャッシュは、データを
記憶中擾乱されてはならない。
(代表的には1)、そしてサブキャッシュは、データを
記憶中擾乱されてはならない。
もしもサブブロックが排他的状態でサブキャッシュに
記憶されていれば、サブキャッシュ状態は変更されず、
データはサブキャッシュに書き込まれる。もしもサブペ
ージがリードオンリー状態でサブキャッシュに記憶され
ていれば、サブページは即座に無効化される。CPUは、
データを局部キャッシュに供給する。キャッシュが排他
的所有権状態でサブページを有さなければ、相互接続部
からそれを要求する。
記憶されていれば、サブキャッシュ状態は変更されず、
データはサブキャッシュに書き込まれる。もしもサブペ
ージがリードオンリー状態でサブキャッシュに記憶され
ていれば、サブページは即座に無効化される。CPUは、
データを局部キャッシュに供給する。キャッシュが排他
的所有権状態でサブページを有さなければ、相互接続部
からそれを要求する。
デスクリプタ書込みなしフラグがセットされると、エ
ラーがCPUに報知され、CPUはページ書込みなしの例外を
発生する。そうでない場合、CPUデータはキャッシュの
サブページに直接的に書き込まれる。
ラーがCPUに報知され、CPUはページ書込みなしの例外を
発生する。そうでない場合、CPUデータはキャッシュの
サブページに直接的に書き込まれる。
[命令フェッチ] 命令フェッチは、つねにリードオンリー状態を特定す
るサブページを引き出す。
るサブページを引き出す。
[サブページアトミック状態命令] サブページアトミック状態命令は、上述の取得および
解放動作に対するプログラムインターフェースである。
これらの命令は、並列プログラムの精密な調整を可能に
するため数種の形式で存在する。
解放動作に対するプログラムインターフェースである。
これらの命令は、並列プログラムの精密な調整を可能に
するため数種の形式で存在する。
get subpage[gsp.nwt] get subpage & wait[gsp・wt] get subpageは、サブページがアトミック状態でセッ
トされるべきことを要求する。サブページ取得命令の両
形式に対して、もしもサブキャッシュがどのキャッシュ
にもアトミック状態で存在しなければ、局部キャッシュ
はそれをアトミック状態で取得する。
トされるべきことを要求する。サブページ取得命令の両
形式に対して、もしもサブキャッシュがどのキャッシュ
にもアトミック状態で存在しなければ、局部キャッシュ
はそれをアトミック状態で取得する。
gsp.nwtの場合、@MEM状態コードが試行の成功または
失敗を指示し、命令は、トラップオプジョンが命令に存
在しかつサブページがすでにアトミックであれば@MEM
を変えずにトラップされる。
失敗を指示し、命令は、トラップオプジョンが命令に存
在しかつサブページがすでにアトミックであれば@MEM
を変えずにトラップされる。
gsp.wt命令は、サブページがアトミック状態で得られ
ることができるまで、キャッシュにCPUを停動せしめ
る。これは、プログラムが進行し得る前にアトミック状
態を得なければならない場合、相互接続トラフィックの
量を減ずる。サブページがいずれかのキャッシュ(局部
キャッシュを含め)においてすでにアトミックであれ
ば、命令は、サブページが解放されるまで待つ。局部キ
ャッシュは、ついでサブページをアトミック状態で取得
する。@MEM状態は、つねに成功を指示するように変化
される。
ることができるまで、キャッシュにCPUを停動せしめ
る。これは、プログラムが進行し得る前にアトミック状
態を得なければならない場合、相互接続トラフィックの
量を減ずる。サブページがいずれかのキャッシュ(局部
キャッシュを含め)においてすでにアトミックであれ
ば、命令は、サブページが解放されるまで待つ。局部キ
ャッシュは、ついでサブページをアトミック状態で取得
する。@MEM状態は、つねに成功を指示するように変化
される。
release subpage[rsp] release subpageは、サブページをアトミック状態か
ら除去するのに使用される。もしもサブページが局部キ
ャッシュに存在しなければ、それが、まず、相互接続部
を介して要求される。一度局部キャッシュが排他的所有
権を有すれば、rspが進行する。もしもサブページがア
トミック状態になければ、サブページ解放はサブページ
状態を変えない。この状況において、もしもトラップ変
更子がこの命令に対して存在すれば、CPUはトラップさ
れる。もしもサブページがアトミック状態にあれば、そ
れは排他的状態に変えられる。もしもサブページトラン
ジェントアトミック状態にあれば、それは排他的状態に
変えられ、待ち中のセルがアトミック状態を取得できる
ように相互接続部に駆逐される。
ら除去するのに使用される。もしもサブページが局部キ
ャッシュに存在しなければ、それが、まず、相互接続部
を介して要求される。一度局部キャッシュが排他的所有
権を有すれば、rspが進行する。もしもサブページがア
トミック状態になければ、サブページ解放はサブページ
状態を変えない。この状況において、もしもトラップ変
更子がこの命令に対して存在すれば、CPUはトラップさ
れる。もしもサブページがアトミック状態にあれば、そ
れは排他的状態に変えられる。もしもサブページトラン
ジェントアトミック状態にあれば、それは排他的状態に
変えられ、待ち中のセルがアトミック状態を取得できる
ように相互接続部に駆逐される。
[他のサブページ命令] Post Store Subpage[pstsp] サブページポストストアは、プログラムに、サブペー
ジのリードオンリーコピーを相互接続部に駆逐させる。
そのページに対するデスクリプタをもつすべてのキャッ
シュは、データのコピーを取る。この命令は、ある動作
を完成する一部としてデータを送信するのに使用できる
が、これは、ある他のキャッシュが、データを使用する
ことを必要とするとき、相互接続部に読取り要求をなさ
ねばならぬ可能性を減ずる。
ジのリードオンリーコピーを相互接続部に駆逐させる。
そのページに対するデスクリプタをもつすべてのキャッ
シュは、データのコピーを取る。この命令は、ある動作
を完成する一部としてデータを送信するのに使用できる
が、これは、ある他のキャッシュが、データを使用する
ことを必要とするとき、相互接続部に読取り要求をなさ
ねばならぬ可能性を減ずる。
Prefetch Subpage[pcsp] サブページプリフェッチは、サブページのコピーが特
定の状態において局部キャッシュで取得されるべきこと
を要求する。命令は、リードオンリーまたは排他的状態
を要求し得る。サブページへの続いての参照は、サブペ
ージプリフェッチが完了するまでブロックされる。
定の状態において局部キャッシュで取得されるべきこと
を要求する。命令は、リードオンリーまたは排他的状態
を要求し得る。サブページへの続いての参照は、サブペ
ージプリフェッチが完了するまでブロックされる。
[サブキャッシュからキャッシュへの更新] もしも局部キャッシュがサブページを排他的状態で保
持するならば、プロセッサは、次の条件のとき変更をキ
ャッシュに伝搬する。すなわち、 サブページがサブキャッシュから除去されるか、ある
いは 局部キャッシュが、サブページのコピー要求を受信す
る。この場合、局部キャッシュは、変更されたコピーを
明白に要求する。
持するならば、プロセッサは、次の条件のとき変更をキ
ャッシュに伝搬する。すなわち、 サブページがサブキャッシュから除去されるか、ある
いは 局部キャッシュが、サブページのコピー要求を受信す
る。この場合、局部キャッシュは、変更されたコピーを
明白に要求する。
CPUは停動して、ある要求に対するCCU応答を待つ。こ
れは、CCUがCPUに必要とされる状態でサブページをもた
ないときに起こる。CPUは、停動すると、排他的状態に
ある変更されたサブページをその局部キャッシュに更新
伝搬する(バックグラウンド戻し書込み)。
れは、CCUがCPUに必要とされる状態でサブページをもた
ないときに起こる。CPUは、停動すると、排他的状態に
ある変更されたサブページをその局部キャッシュに更新
伝搬する(バックグラウンド戻し書込み)。
キャッシュは、他のキャッシュからの要求に応答して
サブページを無効化するため、局部プロセッサをしてサ
ブキャッシュからサブページを除去せしめる。
サブページを無効化するため、局部プロセッサをしてサ
ブキャッシュからサブページを除去せしめる。
[プロセッサ側−サブキャッシュ動作] 第1表は、プロセッサロード/ストアクラス命令およ
びサブキャッシュにおけるアドレスされたサブブロック
の状態の詳細を示すものである。詳述すると、第1表は
本発明にしたがって構成されたディジタルデータ処理シ
ステムにおける局部キャッシュに記憶されるデータに向
けられるプロセッサアクセス要求の処理を描く状態テー
ブルである。もしもヒットが指示されれば、プロセッサ
は、ロードまたは記憶のためサブキャッシュを直接的に
使用する。ミスが指示されれば、プロセッサは局部キャ
ッシュと通信する。
びサブキャッシュにおけるアドレスされたサブブロック
の状態の詳細を示すものである。詳述すると、第1表は
本発明にしたがって構成されたディジタルデータ処理シ
ステムにおける局部キャッシュに記憶されるデータに向
けられるプロセッサアクセス要求の処理を描く状態テー
ブルである。もしもヒットが指示されれば、プロセッサ
は、ロードまたは記憶のためサブキャッシュを直接的に
使用する。ミスが指示されれば、プロセッサは局部キャ
ッシュと通信する。
[メモリシステムの「マニュアル」制御] 上述のように、メモリシステムは、自動的なデータの
共有およびLRU保守で仮想メモリシステムを指示するよ
うに設計されている。しかしながら、ソフトウェアは、
特定の応用に対してはメモリシステムの明示制御を取り
得る。
共有およびLRU保守で仮想メモリシステムを指示するよ
うに設計されている。しかしながら、ソフトウェアは、
特定の応用に対してはメモリシステムの明示制御を取り
得る。
通常の動作において、全プロセッサはSVAスペースを
共有し、データは、命令(および制御動作)に応答して
キャッシュからキャッシュへ自動的に移動する。ソフト
ウェアは、キャッシュ上のメモリの一部または全部をそ
の局部的非共有の使用に専用できる。この種のシステム
は、キャッシュ間でSVAスペースを仕切り、かかるデー
タをキャッシュからキャッシュに移動させるのに明示制
御操作を使用しなければならない。
共有し、データは、命令(および制御動作)に応答して
キャッシュからキャッシュへ自動的に移動する。ソフト
ウェアは、キャッシュ上のメモリの一部または全部をそ
の局部的非共有の使用に専用できる。この種のシステム
は、キャッシュ間でSVAスペースを仕切り、かかるデー
タをキャッシュからキャッシュに移動させるのに明示制
御操作を使用しなければならない。
システムソフトウェアは、各デスクリプタにデスクリ
プタ・保持をセットすることによって、キャッシュがペ
ージを移動ないし破壊して他のページに対して場所を開
けるのを防ぐことができる。そのとき、システムソフト
ウェアは、各キャッシュメモリを多重化するに必要とさ
れるところに従って、例外を処理しあるいは明示的破壊
を遂行できる。
プタ・保持をセットすることによって、キャッシュがペ
ージを移動ないし破壊して他のページに対して場所を開
けるのを防ぐことができる。そのとき、システムソフト
ウェアは、各キャッシュメモリを多重化するに必要とさ
れるところに従って、例外を処理しあるいは明示的破壊
を遂行できる。
自動モードにおいては、メモリシステムは、共有メモ
リマルチプロセッサとして構成され得る。種々の自動の
特徴が不能化されるとき、メモリシステムは、より粗結
合のメッセージ指向アーキテクチャを擬似するように構
成できる。メッセージは、特別SVA範囲の参照によりパ
スできる。メモリシステムの手動制御は、特定のメモリ
モデルを強制的により線密にするのに使用できる。
リマルチプロセッサとして構成され得る。種々の自動の
特徴が不能化されるとき、メモリシステムは、より粗結
合のメッセージ指向アーキテクチャを擬似するように構
成できる。メッセージは、特別SVA範囲の参照によりパ
スできる。メモリシステムの手動制御は、特定のメモリ
モデルを強制的により線密にするのに使用できる。
[メモリシステムの制御命令] 制御動作は、プロセッサ例えば40Aが、メモリシステ
ムを直接的に操作することを可能にする。2つのクラス
の制御命令がある。すなわち、データ移動およびページ
状態制御である。データ移動制御命令は、システムにお
いてデータのページおよびサブページをキャッシュから
キャッシュに移動する。ページ状態制御命令は、ページ
デスクリプタを操作する。
ムを直接的に操作することを可能にする。2つのクラス
の制御命令がある。すなわち、データ移動およびページ
状態制御である。データ移動制御命令は、システムにお
いてデータのページおよびサブページをキャッシュから
キャッシュに移動する。ページ状態制御命令は、ページ
デスクリプタを操作する。
[命令実行モデル] CPU命令は、指令に依存して同期的または非同期的に
実行されるキャッシュ指令をもたらす。CPUキャッシュ
命令は、進行中、キャッシュPRT(ハードウェアテーブ
ル)の1つのエントリを占める。PRTは4つのエントリ
を有するから、最大4つのキャッシュ命令が平行に実行
され得る。たいていのCPU命令は、要求が満足されるま
で使用状態に留まり同期的態様を提供する1つのPRTエ
ントリの割当てを受ける。例えば、ロード/ストア命令
は同期的に実行されるから、特定のソフトウェア制御の
例外(脱落ページや書込み不能なページのような)は、
予測可能な態様で解くことができる。pcsp(キャッシュ
サブページプリフェッチ)およびpstsp(サブページポ
スト−ストア)命令は、以下のセクションに記述される
ように、非同期的に動作する。同期的エラーは、普通、
CPUがトラップシーケンスを実行する結果となる。この
場合、「制御ロケーション」のチャプタに記述されるよ
うに、他の情報がCCP制御ロケーションから得られる。
実行されるキャッシュ指令をもたらす。CPUキャッシュ
命令は、進行中、キャッシュPRT(ハードウェアテーブ
ル)の1つのエントリを占める。PRTは4つのエントリ
を有するから、最大4つのキャッシュ命令が平行に実行
され得る。たいていのCPU命令は、要求が満足されるま
で使用状態に留まり同期的態様を提供する1つのPRTエ
ントリの割当てを受ける。例えば、ロード/ストア命令
は同期的に実行されるから、特定のソフトウェア制御の
例外(脱落ページや書込み不能なページのような)は、
予測可能な態様で解くことができる。pcsp(キャッシュ
サブページプリフェッチ)およびpstsp(サブページポ
スト−ストア)命令は、以下のセクションに記述される
ように、非同期的に動作する。同期的エラーは、普通、
CPUがトラップシーケンスを実行する結果となる。この
場合、「制御ロケーション」のチャプタに記述されるよ
うに、他の情報がCCP制御ロケーションから得られる。
非同期的エラーは、実際のハードウェアからもたらさ
れ、あるいはある他のキャッシュからの要求によって惹
起される。この種のエラーは、メモリシステム割込みに
より報告される。
れ、あるいはある他のキャッシュからの要求によって惹
起される。この種のエラーは、メモリシステム割込みに
より報告される。
[プリフェッチ命令] プリフェッチ命令は、サブページのコピーが特定の状
態において局部キャッシュ上に取得されるべきことを要
求する。pcspはサブページをプリフェッチする。キャッ
シュは、この命令が検出されたとき1つのPRTエントリ
を割り当てる。サブページがすでに存在していれば、PR
Tエントリーは解放され、pcspは完了する。そうでない
場合、キャッシュは要求を発し、ついでCPUに命令の完
成を指示する。これは非同期的に進む。メッセージが要
求またはレスポンスとして戻ると、キャッシュはデータ
を受け入れ(もし存在すれば)、そしてPRTエントリを
解放する。CPUに対してデータが到着したという指示は
ない。
態において局部キャッシュ上に取得されるべきことを要
求する。pcspはサブページをプリフェッチする。キャッ
シュは、この命令が検出されたとき1つのPRTエントリ
を割り当てる。サブページがすでに存在していれば、PR
Tエントリーは解放され、pcspは完了する。そうでない
場合、キャッシュは要求を発し、ついでCPUに命令の完
成を指示する。これは非同期的に進む。メッセージが要
求またはレスポンスとして戻ると、キャッシュはデータ
を受け入れ(もし存在すれば)、そしてPRTエントリを
解放する。CPUに対してデータが到着したという指示は
ない。
[サブページポスト−ストア命令] pstsp命令は、サブページのコピーが相互接続部上で
循環され、それにより包含するページに対するデスクリ
プタを有するキャッシュがサブページのリードオンリー
コピーを取得し得るようになるべきことを要求する。ps
tspは、サブページ内のサブブロックを参照する。サブ
ブロックが排他的状態でサブキャッシュに記憶されてお
り、サブキャッシュにおいて変更されると、CPUは局部
キャッシュからポストストア動作を要求する。そうでな
い場合は、pstsp命令は影響を有さない。キャッシュ
は、PRTエントリを割り当て、CPUからサブページデータ
を要求する。ついで、キャッシュは、ポスト−ストアメ
ッセージを相互接続部に提示し、PRTエントリーを解放
し、CPUに対して命令の完了を指示する。CPUは、非同期
的に進む。メッセージは、発行しているキャッシュに戻
ると、廃棄される。
循環され、それにより包含するページに対するデスクリ
プタを有するキャッシュがサブページのリードオンリー
コピーを取得し得るようになるべきことを要求する。ps
tspは、サブページ内のサブブロックを参照する。サブ
ブロックが排他的状態でサブキャッシュに記憶されてお
り、サブキャッシュにおいて変更されると、CPUは局部
キャッシュからポストストア動作を要求する。そうでな
い場合は、pstsp命令は影響を有さない。キャッシュ
は、PRTエントリを割り当て、CPUからサブページデータ
を要求する。ついで、キャッシュは、ポスト−ストアメ
ッセージを相互接続部に提示し、PRTエントリーを解放
し、CPUに対して命令の完了を指示する。CPUは、非同期
的に進む。メッセージは、発行しているキャッシュに戻
ると、廃棄される。
[サブページフェッチ命令] mfsva命令は、システムソフトウェアに、サブページ
をリードオンリーまたは排他的所有権状態で取り込み込
ませ、サブページのSVA位置を特定させる。これによ
り、ソフトウェアは、pcspに要求されるというようなDS
TT変換を設定するという努力を節減できる。
をリードオンリーまたは排他的所有権状態で取り込み込
ませ、サブページのSVA位置を特定させる。これによ
り、ソフトウェアは、pcspに要求されるというようなDS
TT変換を設定するという努力を節減できる。
[サブキャッシュ化サブページフラッシュ命令] mflsp命令は、特定されたサブページが局部CPUにサブ
キャッシュ記憶されていないことを、キャッシュに保証
せしめる。もしもサブページが無効−デスクリプタ状態
または無効状態にあると、デスクリプタは割り当てられ
ず、サブページは相互接続部を介して要求されない。
キャッシュ記憶されていないことを、キャッシュに保証
せしめる。もしもサブページが無効−デスクリプタ状態
または無効状態にあると、デスクリプタは割り当てられ
ず、サブページは相互接続部を介して要求されない。
[サブページ再結合命令] mrcsp命令により、システムソフトウェアは、所有権
を他のキャッシュに移動せしめることによって、ページ
に対する活動ディスクリプタの数を減ずることができ
る。
を他のキャッシュに移動せしめることによって、ページ
に対する活動ディスクリプタの数を減ずることができ
る。
キャッシュのバックグラウンド再結合活動状態と異な
り、この命令はキャッシュ形態パラメータにより制御さ
れない。
り、この命令はキャッシュ形態パラメータにより制御さ
れない。
[ページ状態制御命令] ページ状態制御命令は、SVAスペースの個々のページ
で動作する。
で動作する。
[デスクリプタアンカー命令] mpsa命令は、SVAページに対する局部キャッシュに係
留されたでデスクリプタを提供する。もしもデスクリプ
タがmpsa前にすでに存在したならば、そのアンカーフラ
グがセットされる。そうでないならば、キャッシュはデ
スクリプタを分配し、ついでアンカーフラグをセットす
る。ページ状態制御動作は、SVAページに対して係留さ
れたデスクリプタが、局部キャッシュ上に存在すべきこ
とを要求する。
留されたでデスクリプタを提供する。もしもデスクリプ
タがmpsa前にすでに存在したならば、そのアンカーフラ
グがセットされる。そうでないならば、キャッシュはデ
スクリプタを分配し、ついでアンカーフラグをセットす
る。ページ状態制御動作は、SVAページに対して係留さ
れたデスクリプタが、局部キャッシュ上に存在すべきこ
とを要求する。
[デスクリプタ書込み命令] mpdw命令は、SVAページを創成、破壊し、かつ既存のS
VAページのデスクリプタフラグを変えるのに使用され
る。mpdwは、システムソフトウェアが、mpsaを使用し
て、先ずそのページに対する係留されたデスクリプタを
得ることを必要とする。下記の論述は、係留されたデス
クリプタが局部キャッシュ上に存在することを仮定す
る。
VAページのデスクリプタフラグを変えるのに使用され
る。mpdwは、システムソフトウェアが、mpsaを使用し
て、先ずそのページに対する係留されたデスクリプタを
得ることを必要とする。下記の論述は、係留されたデス
クリプタが局部キャッシュ上に存在することを仮定す
る。
[SAVページの創成] mpsaに続いて、デスクリプタが存在するが、全ページ
は無効状態にある。システムソフトウェアは、全サブペ
ージ状態が排他的にセットされるべきことを特定とする
mpdwを実行する。これにより、メッセージが、相互接続
部に送られ、それにより関係するリングのメンバが、ペ
ージの創成に気づくことができるようにする。
は無効状態にある。システムソフトウェアは、全サブペ
ージ状態が排他的にセットされるべきことを特定とする
mpdwを実行する。これにより、メッセージが、相互接続
部に送られ、それにより関係するリングのメンバが、ペ
ージの創成に気づくことができるようにする。
ここでSVAページが存在するが、そのデータ値は限定
されない。ソフトウェアは、使用者にページを参照せし
める前に、ストア命令またはI/Oを使用してそのページ
をイニシャライズしなければならない。この理由のた
め、ソフトウェアは、普通、使用者プログラムにアクセ
ス不可能なSVA位置にてページを創成し、ページデータ
をイニシャライズし、ついで追って説明されるようにSV
Aページのアドレスを変更する。ページは、アンカーを
クリヤするmpdw命令を実行することによって、一般的使
用のために解放される。
されない。ソフトウェアは、使用者にページを参照せし
める前に、ストア命令またはI/Oを使用してそのページ
をイニシャライズしなければならない。この理由のた
め、ソフトウェアは、普通、使用者プログラムにアクセ
ス不可能なSVA位置にてページを創成し、ページデータ
をイニシャライズし、ついで追って説明されるようにSV
Aページのアドレスを変更する。ページは、アンカーを
クリヤするmpdw命令を実行することによって、一般的使
用のために解放される。
[SVAページ破壊] mpsa後、システムソフトウェアは、全サブページを排
他的状態で得られなければならない。これはmfsva命令
を使用してなされる。ついで、ソフトウェアは、全サブ
ページが無効状態に変化されるべきことを指定するmpdw
命令を実行する。この命令により、メッセージが相互接
続部に送られ、関係のあるリングのメンバがページの破
壊に気づくようにする。SVAページは、この動作により
破壊される。ソフトウェアは、アンカーをクリヤする第
2のmpdwを実行することによってデスクリプタを再使用
のために解放する。
他的状態で得られなければならない。これはmfsva命令
を使用してなされる。ついで、ソフトウェアは、全サブ
ページが無効状態に変化されるべきことを指定するmpdw
命令を実行する。この命令により、メッセージが相互接
続部に送られ、関係のあるリングのメンバがページの破
壊に気づくようにする。SVAページは、この動作により
破壊される。ソフトウェアは、アンカーをクリヤする第
2のmpdwを実行することによってデスクリプタを再使用
のために解放する。
[デスクリプタフィールド変更] mpdw命令は、局部デスクリプタの種々のフィールドを
変えるのに使用される。これは、変更、アトミック変
更、書込みなし、アトミックなしおよび保持フィールド
をセットまたはクリヤし得、そしてアンカーフィールド
をクリヤし得る。mpdwはまた、タグ、したがってデスク
リプタと関連するSVAスペースアドレスを変化し得る。
(デスクリプタのインデックスは、SVAの一部を形成す
るから、新タグは定義により同じキャッシュセットにあ
る。) メモリシステムの一貫性を保証するために、システム
ソフトウェアは、デスクリプタのフィールドまたはタグ
を変えるとき特定のルールに従わねばならぬ。mpdwは、
デスクリプタ・アンカーがセットされるべきことを要求
する(命令それ自体はデスクリプタ・アンカーのクリヤ
をもたらすことがあるかもしれないが)。種々のシーケ
ンスは、全サブページが排他的所有権状態で局部キャッ
シュに存すべきことを要求する。これは、各サブページ
に対してデスクリプタアンカーをセットし、mfsva.exを
セットすることによって遂行される。種々のシーケンス
は、全サブページが局部キャッシュにおいてサブキャッ
シュ記憶されていないことを必要とする。これは、局部
CPUにサブキャッシュ記憶されているかもしれない各サ
ブページに対してmflspを実行することによって遂行さ
れる。(mfsva.exを実行することは、サブページがどの
他のセルのCPUによってもサブキャッシュ記憶されてい
ないことを保証する。) 下記のリストは、各フラグおよびタグに対して有効に
働く制約を与える。
変えるのに使用される。これは、変更、アトミック変
更、書込みなし、アトミックなしおよび保持フィールド
をセットまたはクリヤし得、そしてアンカーフィールド
をクリヤし得る。mpdwはまた、タグ、したがってデスク
リプタと関連するSVAスペースアドレスを変化し得る。
(デスクリプタのインデックスは、SVAの一部を形成す
るから、新タグは定義により同じキャッシュセットにあ
る。) メモリシステムの一貫性を保証するために、システム
ソフトウェアは、デスクリプタのフィールドまたはタグ
を変えるとき特定のルールに従わねばならぬ。mpdwは、
デスクリプタ・アンカーがセットされるべきことを要求
する(命令それ自体はデスクリプタ・アンカーのクリヤ
をもたらすことがあるかもしれないが)。種々のシーケ
ンスは、全サブページが排他的所有権状態で局部キャッ
シュに存すべきことを要求する。これは、各サブページ
に対してデスクリプタアンカーをセットし、mfsva.exを
セットすることによって遂行される。種々のシーケンス
は、全サブページが局部キャッシュにおいてサブキャッ
シュ記憶されていないことを必要とする。これは、局部
CPUにサブキャッシュ記憶されているかもしれない各サ
ブページに対してmflspを実行することによって遂行さ
れる。(mfsva.exを実行することは、サブページがどの
他のセルのCPUによってもサブキャッシュ記憶されてい
ないことを保証する。) 下記のリストは、各フラグおよびタグに対して有効に
働く制約を与える。
アンカーがセットされ、(普通)任意のデスクリプタ
タグまたはフラグ変更の一部としてクリヤされる。これ
は、任意の継続時間セット状態に留まることができる
が、共有メモリシステムにおいてはできるだけ早くクリ
ヤされる。
タグまたはフラグ変更の一部としてクリヤされる。これ
は、任意の継続時間セット状態に留まることができる
が、共有メモリシステムにおいてはできるだけ早くクリ
ヤされる。
保持は、制約なしに特定のセル上でデスクリプタを保
持または保持解放するために変更できる。
持または保持解放するために変更できる。
アトミック変更およびアトミックなしを変えること
は、全サブページが局部キャッシュ内において排他的所
有権状態にあるべきことを必要とする。
は、全サブページが局部キャッシュ内において排他的所
有権状態にあるべきことを必要とする。
変更をクリヤし書込みなしをセットすることは、全サ
ブページが局部キャッシュにおいてサブキャッシュ記憶
されていないことを必要とする。これは、局部サブキャ
ッシュが如何なるサブブロックをも排他的状態で有さ
ず、また如何なる変更されたサブブロックをも有さない
ことを保証する。被変更書込みなしを変化させるとき
は、システムソフトウェアは、その変化がそのページを
参照するすべてのセルにより認識されるべきか否かを決
定し得る。広域的な変化を行うには、全サブページが局
部キャッシュにおいて排他的所有権状態にあるべきこと
を必要とする。(システムソフトウェアは、普通、被変
更フラグをクリヤするとき広域的な変化をなす。)局部
的変化を行うには、どのサブページも排他的所有権状態
にあるべきことを必要としない。しかしながら、これ
は、新状態の認識の遅延をもたらす。
ブページが局部キャッシュにおいてサブキャッシュ記憶
されていないことを必要とする。これは、局部サブキャ
ッシュが如何なるサブブロックをも排他的状態で有さ
ず、また如何なる変更されたサブブロックをも有さない
ことを保証する。被変更書込みなしを変化させるとき
は、システムソフトウェアは、その変化がそのページを
参照するすべてのセルにより認識されるべきか否かを決
定し得る。広域的な変化を行うには、全サブページが局
部キャッシュにおいて排他的所有権状態にあるべきこと
を必要とする。(システムソフトウェアは、普通、被変
更フラグをクリヤするとき広域的な変化をなす。)局部
的変化を行うには、どのサブページも排他的所有権状態
にあるべきことを必要としない。しかしながら、これ
は、新状態の認識の遅延をもたらす。
SVAページ数を変化させるには(タグを変えることに
より)、全サブページが排他的所有権状態にあり、実行
中セルでサブキャッシュ記憶されないことを必要とす
る。
より)、全サブページが排他的所有権状態にあり、実行
中セルでサブキャッシュ記憶されないことを必要とす
る。
単一ビットフィールドの変更は、単一のmpdw.desc命
令で遂行される。この命令は、変化されたフラグの新
値、他のフラグに対する旧値およびタグを含む。システ
ムソウトウェアは、ページを係留状態に維持するため特
別の理由を有さなければ、アンカーフラグをクリヤす
る。
令で遂行される。この命令は、変化されたフラグの新
値、他のフラグに対する旧値およびタグを含む。システ
ムソウトウェアは、ページを係留状態に維持するため特
別の理由を有さなければ、アンカーフラグをクリヤす
る。
デスクリプタのSVAページ数を変更することは、旧ペ
ージを破壊しついで同じデータを有することがある新ペ
ージを創成することと論理的に同じである。シーケンス
は次の如くである。
ージを破壊しついで同じデータを有することがある新ペ
ージを創成することと論理的に同じである。シーケンス
は次の如くである。
旧SVAページに対してデスクリプタを係留し、排他的
所有権状態で各サブページを得る。どれかのサブページ
がアトミックまたはトランジェット−アトミック状態を
有すれば、それは実行中のセルで取得される。一度全サ
ブページが取得されたら、旧SVAへのアクセスは、脱落
ページ障害をもたらす。
所有権状態で各サブページを得る。どれかのサブページ
がアトミックまたはトランジェット−アトミック状態を
有すれば、それは実行中のセルで取得される。一度全サ
ブページが取得されたら、旧SVAへのアクセスは、脱落
ページ障害をもたらす。
各サブページのアトミック状態の決定。
これは各サブページについてgsp.nwtを実行し、得ら
れた@MEMインジケータを試験することによって最も迅
速の遂行される。旧SVAのサブページに対するgsp.wtを
すでに実行しているセルは、究極的にタイマー中断をも
たらし、そしてgsp.wtが再開されるとき、脱落ページ障
害をもたらす。
れた@MEMインジケータを試験することによって最も迅
速の遂行される。旧SVAのサブページに対するgsp.wtを
すでに実行しているセルは、究極的にタイマー中断をも
たらし、そしてgsp.wtが再開されるとき、脱落ページ障
害をもたらす。
全サブページを無効状態に変えるためmpdw.alliを使
用。この命令は、局部CCUに、SVAページが破壊されつつ
あることを局部CIUおよびDRC(もし要すれば)へ報知せ
しめる。全サブページが無効状態に変更されてさえ、デ
ータは局部CCUに留まる。
用。この命令は、局部CCUに、SVAページが破壊されつつ
あることを局部CIUおよびDRC(もし要すれば)へ報知せ
しめる。全サブページが無効状態に変更されてさえ、デ
ータは局部CCUに留まる。
タグおよびセットフラグを所望の状態に変えるためmp
dw・descを使用。新アンカーフラグがセットされねばな
らない。
dw・descを使用。新アンカーフラグがセットされねばな
らない。
全サブページを排他的状態に変えるためmpdw.allxを
使用。この命令は、局部CCUに、SVAページが創成されつ
つあることを局部CIUおよびDRC(もし要すれば)へ報知
せしめる。旧データは、ここで排他的状態にあると認識
される。
使用。この命令は、局部CCUに、SVAページが創成されつ
つあることを局部CIUおよびDRC(もし要すれば)へ報知
せしめる。旧データは、ここで排他的状態にあると認識
される。
各サブページの保存されたアトミック状態の復旧。保
存状態にあった各サブページに対して、gsp.nwtを発
行。
存状態にあった各サブページに対して、gsp.nwtを発
行。
アンカーフラグをクリヤするためmpdw.descを使用。
デスクリプタ書込みなしの使用は、次のことを含む。
すなわち特定のデータの不注意な変更の防止、書込み時
コピー/アクセス時コピープロトコルの支持、デバッガ
監視点である。第1の場合、書込みなしがセットされ、
セット状態に留まる。第2の場合、プログラムがページ
を変更しようとすると、システムソフトウェアは、他の
ユーザに利用可能なページのコピーを作り、ついで書込
みなしをクリヤすることによって応答できる(このチャ
プタの前の方のシステムプログラミングノート「アクセ
ス時コピー」参照)。ソフトウェアは、この変化を局部
的または広域的になし得る。前者の場合、そのページを
参照する他のセル上で書込み障害が起こり続けることは
あり得ない。最後に、デバッガ監視点は、コンテキスト
アドレススペースの特定の領域の変更を検出することを
意図される(例えば、広域変数が破壊されつつあるとこ
ろを見出す)。システムソフトウェアは、そのページに
対して書込みなしを設定し、各変更試行をトラップする
ことによってこれを実施する。監視範囲以外の変更に対
して、ソフトウェアは、そのページを係留し、書込みな
しをクリアし、データを変更し、データをサブキャッシ
ュから放出し、書込みなしをセットし、そして進行する
(書込みなしに対して広域的変更をなすことによって、
監視点サポートを実施することができる。
すなわち特定のデータの不注意な変更の防止、書込み時
コピー/アクセス時コピープロトコルの支持、デバッガ
監視点である。第1の場合、書込みなしがセットされ、
セット状態に留まる。第2の場合、プログラムがページ
を変更しようとすると、システムソフトウェアは、他の
ユーザに利用可能なページのコピーを作り、ついで書込
みなしをクリヤすることによって応答できる(このチャ
プタの前の方のシステムプログラミングノート「アクセ
ス時コピー」参照)。ソフトウェアは、この変化を局部
的または広域的になし得る。前者の場合、そのページを
参照する他のセル上で書込み障害が起こり続けることは
あり得ない。最後に、デバッガ監視点は、コンテキスト
アドレススペースの特定の領域の変更を検出することを
意図される(例えば、広域変数が破壊されつつあるとこ
ろを見出す)。システムソフトウェアは、そのページに
対して書込みなしを設定し、各変更試行をトラップする
ことによってこれを実施する。監視範囲以外の変更に対
して、ソフトウェアは、そのページを係留し、書込みな
しをクリアし、データを変更し、データをサブキャッシ
ュから放出し、書込みなしをセットし、そして進行する
(書込みなしに対して広域的変更をなすことによって、
監視点サポートを実施することができる。
mfpl命令は、キャッシュのLRUスペース内の特定の1
組を捜索して、特定の1組の基準に適合するデスクリプ
タを求める。捜索は、LRU位置15におけるデスクリプタ
で始まり、基準に合格するまで上昇進行する。
組を捜索して、特定の1組の基準に適合するデスクリプ
タを求める。捜索は、LRU位置15におけるデスクリプタ
で始まり、基準に合格するまで上昇進行する。
[命令およびデータシステムアドレススペース分割)] 正しい動作を保証するためには、キャッシュは、いつ
サブページもCPUに存在するかを知らなければならな
い。これにより、キャッシュは、相互接続部(またはさ
らには局部CPU)からのある要求がサブページ状態変化
を要求するときサブキャッシュ無効化を要求することが
できる。
サブページもCPUに存在するかを知らなければならな
い。これにより、キャッシュは、相互接続部(またはさ
らには局部CPU)からのある要求がサブページ状態変化
を要求するときサブキャッシュ無効化を要求することが
できる。
この機構の一部として、CPUは、サブキャッシュ記憶
状態を変化させるとき、キャッシュと通信する。しかし
ながら、キャッシュは、サブキャッシュ毎の情報を維持
しない。その結果、SVAスペースの同じサブページは、
両サブキャッシュに同時に現われていないはずである。
一般に、これは、同じSVA領域が命令およびデータの両
者として使用できないというシステムソフトウェアをも
たらす。自己修正プログラムすなわちコードおよびデー
タが同じコンテキストアドレスセグメントの一部である
プログラムは、支持されない。
状態を変化させるとき、キャッシュと通信する。しかし
ながら、キャッシュは、サブキャッシュ毎の情報を維持
しない。その結果、SVAスペースの同じサブページは、
両サブキャッシュに同時に現われていないはずである。
一般に、これは、同じSVA領域が命令およびデータの両
者として使用できないというシステムソフトウェアをも
たらす。自己修正プログラムすなわちコードおよびデー
タが同じコンテキストアドレスセグメントの一部である
プログラムは、支持されない。
システムソフトウェアは、下記の場合特別の注意を払
わねばならない。
わねばならない。
ブレークポイントを挿入または除去する場合のよう
に、命令を変更する場合。
に、命令を変更する場合。
デバッガによるトラップ分析またはプログラム分解操
作の一部としての命令の読み取り。
作の一部としての命令の読み取り。
命令ページとなるI/Oデバイスからのページの読取
り。
り。
命令をデータとして読むために、システムソフトウェ
アは、次の動作を行わなければならない。
アは、次の動作を行わなければならない。
SVAを書き込むDSTTエントリを構成する。
サブページが命令サブキャッシュにないことを保証す
る(mflspを使用)。
る(mflspを使用)。
データとして命令を読み取る(ld64.nscを使用)。
dsttエントリ無効化。
命令サブページをデータとして書き込むためには、シ
ステムソフトウェアは次の動作を行わなければならな
い。
ステムソフトウェアは次の動作を行わなければならな
い。
SVAを書き込むDSTTエントリを構成する。
サブページがどの命令サブキャッシュにも存在しない
ことを保証する(ページを係留するためにmpsaを使用
し、すべての他のキャッシュおよびサブキャッシュ内の
サブページを無効化するためmfsva.exを使用する)。
ことを保証する(ページを係留するためにmpsaを使用
し、すべての他のキャッシュおよびサブキャッシュ内の
サブページを無効化するためmfsva.exを使用する)。
包含するサブブロックを引き出す(ld64.nscを使
用)。
用)。
サブブロックを変更し、データとして命令を書き込む
(st64.nsc)。
(st64.nsc)。
ページ係留を解放。
DSTTエントリを無効化。
命令ページは普通純粋であり、システムSVAスペース
管理の一部として、SVAスペースからI/Oテバイスに書き
込まれることを必要としない。命令ページを書き込む前
に、システムソフトウェアは下記の動作をしなければな
らない。
管理の一部として、SVAスペースからI/Oテバイスに書き
込まれることを必要としない。命令ページを書き込む前
に、システムソフトウェアは下記の動作をしなければな
らない。
サブページがどのサブキャッシュにも存在しないこと
を保証する(ページを係留するためにmpsaを使用し、す
べての他のキャッシュおよびサブキャッシュのサブペー
ジを無効化するためにmfsva.exを使用)。このセルがこ
のページを実行することが決してなければ、このステッ
プは必要としない。
を保証する(ページを係留するためにmpsaを使用し、す
べての他のキャッシュおよびサブキャッシュのサブペー
ジを無効化するためにmfsva.exを使用)。このセルがこ
のページを実行することが決してなければ、このステッ
プは必要としない。
I/Oを遂行する。
ページがデータキャッシュに存在しないことを保証す
る(mflspを使用)。このセルがこの命令ページを実行
することがけっしてなければ、このステップは必要とさ
れない。
る(mflspを使用)。このセルがこの命令ページを実行
することがけっしてなければ、このステップは必要とさ
れない。
ページの係留を解放する。
I/Oデバイスからの命令ページをSVAスペースに読み取
るとき、システムソフトウェアは次の動作を行わなけれ
ばならない。
るとき、システムソフトウェアは次の動作を行わなけれ
ばならない。
ページを創成する(ページを割り当て係留するためmp
saを使用し、ページの創成を完了するためmpdwを使用す
る)。
saを使用し、ページの創成を完了するためmpdwを使用す
る)。
I/Oを遂行する。
ページがデータサブキャッシュ内に存在しないことを
保証する(mflspを使用して)。このセルがこの命令ペ
ージを実行することが決してなければ、このステップは
必要とされない。
保証する(mflspを使用して)。このセルがこの命令ペ
ージを実行することが決してなければ、このステップは
必要とされない。
デスクリプタ変更フラグをクリヤし、サブページアト
ミック状態のような他のデスクリプタの属性およびデス
クリプタ・書込みなしをセットする。
ミック状態のような他のデスクリプタの属性およびデス
クリプタ・書込みなしをセットする。
ページの係留を解放する。
かくして、上述の目的は、本発明の実施例について説
明したように、複数の処理ユニットとメモリ管理要素と
を備えており、該メモリ管理要素がセルにより発生され
るアクセス要求に応答して排他的データコピーをセルか
らセルへ移動させ、処理中のセルをして、選択されたデ
ータを「係留」せしめ、そのデータを要求する他のセル
にはそのデータがメモリ内にないことが報知されるよう
にしたディジタルデータ処理システムを提供する本発明
により達成されることが分ろう。本発明の他の側面に依
れば、データ要素を所有する中央処理ユニットに、これ
らのデータ要素のコピーを、同じデータのコピー、例え
ばリードオンリー、を先に保持した他のプロセッサに送
信せしめる機能が提供される。本発明にしたがって構成
された多重処理システムは、データの同一性が改善さ
れ、待ち時間やバス競合が低減され、加えて規模拡大性
が制限されない。
明したように、複数の処理ユニットとメモリ管理要素と
を備えており、該メモリ管理要素がセルにより発生され
るアクセス要求に応答して排他的データコピーをセルか
らセルへ移動させ、処理中のセルをして、選択されたデ
ータを「係留」せしめ、そのデータを要求する他のセル
にはそのデータがメモリ内にないことが報知されるよう
にしたディジタルデータ処理システムを提供する本発明
により達成されることが分ろう。本発明の他の側面に依
れば、データ要素を所有する中央処理ユニットに、これ
らのデータ要素のコピーを、同じデータのコピー、例え
ばリードオンリー、を先に保持した他のプロセッサに送
信せしめる機能が提供される。本発明にしたがって構成
された多重処理システムは、データの同一性が改善さ
れ、待ち時間やバス競合が低減され、加えて規模拡大性
が制限されない。
以上本発明を好ましい実施例について説明したが、当
技術に精通したものであれば、本発明の技術思想から逸
脱することなく種々の変化変更をなし得ることは明らか
であろう。
技術に精通したものであれば、本発明の技術思想から逸
脱することなく種々の変化変更をなし得ることは明らか
であろう。
第1A図および第1B図は、本発明にしたがって構成された
マルチプロセッサを示す概略線図、第2図は本発明を実
施するのに使用される好まし処理セルのブロック図、第
3図は本発明を実施するのに使用される好ましディジタ
ル処理システムの処理セルの好ましいグループ配列すな
わちドメイン(0)セグメントを示す線図、第4図は本
発明にしたがって構成されたディジタルデータ処理シス
テムにおけるシステム仮想アドレス、デスクリプタおよ
びキャッシュディレクトリ間の好ましい相互関係を図示
する線図である。 12A:ドメイン(0)セグメント 18A,18B,18C:セル 22A,22B,22C:セル相互接続部 28A:ドメインルート指定ユニット 32A:セル相互接続部 40A,40B,40C:中央処理ユニット 42A,42B,42C:メモリ要素 46:メモリ管理要素または手段 52A,52B,52C:制御要素 54A,54B,54C:ストア 56A,56B,56C:ディレクトリ
マルチプロセッサを示す概略線図、第2図は本発明を実
施するのに使用される好まし処理セルのブロック図、第
3図は本発明を実施するのに使用される好ましディジタ
ル処理システムの処理セルの好ましいグループ配列すな
わちドメイン(0)セグメントを示す線図、第4図は本
発明にしたがって構成されたディジタルデータ処理シス
テムにおけるシステム仮想アドレス、デスクリプタおよ
びキャッシュディレクトリ間の好ましい相互関係を図示
する線図である。 12A:ドメイン(0)セグメント 18A,18B,18C:セル 22A,22B,22C:セル相互接続部 28A:ドメインルート指定ユニット 32A:セル相互接続部 40A,40B,40C:中央処理ユニット 42A,42B,42C:メモリ要素 46:メモリ管理要素または手段 52A,52B,52C:制御要素 54A,54B,54C:ストア 56A,56B,56C:ディレクトリ
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ヘンリー・バークハート・ザ・サード 米国マサチューセッツ州マンチェスタ、 ゲイルズ・ポイント 7 (72)発明者 グレン・デュデク 米国マサチューセッツ州ウォーバン、ノ ース・ウォレン・ストリート 80、アパ ートメント27 (72)発明者 ジェイムズ・ビー・ロスニー 米国マサチューセッツ州ブルックライ ン、マンマス・ストリート 47 (72)発明者 ウィリアム・エフ・マン 米国マサチューセッツ州サドバリ、チェ ッカーベリ・サークル 23 (72)発明者 ベンソン・アイ・マーギューリズ 米国マサチューセッツ州アーリントン、 パイン・ストリート 30 (72)発明者 エドワード・エヌ・キットリッツ 米国マサチューセッツ州ケンブリッジ、 ワシントン・ストリート 395 (72)発明者 フレデリック・ディー・ウェーバー 米国マサチューセッツ州コンコード、バ ージニア・ロード 178 (72)発明者 ルース・シェリー 米国マサチューセッツ州アップトン、ヒ ッコリ・レイン 16 (56)参考文献 特開 平1−96747(JP,A) 特開 昭63−239551(JP,A) 特開 昭62−182862(JP,A) (58)調査した分野(Int.Cl.7,DB名) G06F 15/177 682 G06F 12/08 EPAT(QUESTEL) WPI(DIALOG)
Claims (22)
- 【請求項1】A.中央処理ユニットと、各々データアイテ
ムを記憶する関連するメモリ要素と、メモリ管理装置と
を各々具備しており、複数のメモリ要素が相俟って共通
メモリを形成する、複数の処理セルと、 B.前記各中央処理ユニットに含まれ、前記共通メモリに
記憶されるデータアイテムへのアクセスを要求するアク
セス要求を発生するためのアクセス要求ジェネレータ
と、 C.前記各メモリ管理装置に含まれ、前記データアイテム
の少なくとも一つと関連して、少なくともアンカー(AN
CHOR)状態(係留状態)と一つの他の状態を有するアク
セスモード指示を記憶するためのディレクトリと を備え、 D.前記各メモリ管理装置が、その関連するメモリ内に含
まれる前記データアイテムの一つすなわちアンカー状態
を有するアクセスモード指示と関連する前記データアイ
テムへのアクセスを要求するアクセス要求に応答して、 (i)もしもそのアクセス要求がメモリ管理装置が関連
している処理セルの中央処理ユニットにより発生される
ならば、要求されるデータアイテムがその関連するメモ
リに記憶されていることを中央処理ユニットに指示し、 (ii)もしもそのアクセス要求が他の処理セルと関連す
る中央処理ユニットにより発生されたならば、要求され
るデータアイテムがその関連するメモリに記憶されてい
ないことを中央処理ユニットに指示する ことを特徴とするディジタルデータ処理システム。 - 【請求項2】A.前記アクセス要求ジェネレータが、デー
タアイテムへの優先アクセスを要求する所有権要求を発
生するための所有権要求ジェネレータを含み、 B.前記メモリ管理装置が、それぞれのメモリ要素に記憶
されるデータアイテムにアクセスし、かつ前記所有権要
求の選択されたものに応答して、 要求中の中央処理ユニットと関連するメモリ要素内に、
要求されるデータアイテムに対する物理的記憶スペース
であって、前記全メモリ要素に関して要求されるデータ
アイテムに対する排他的物理的記憶スペースを割り当
て、そして 要求されるデータアイテムをその排他的物理的記憶スペ
ースに記憶する ための手段を備える 請求項1記載のディジタルデータ処理システム。 - 【請求項3】前記物理的記憶スペースが前記全メモリ要
素に関して要求されるデータアイテムに対する排他的物
理的記憶スペースであるように、前記メモリ管理装置
が、要求中の中央処理ユニットと関連するメモリ要素内
にのみ物理的記憶スペースを割り当てる請求項2記載の
ディジタルデータ処理システム。 - 【請求項4】前記メモリ管理装置が、前記所有権要求の
選択されたものに応答して、要求されるデータアイテム
の記憶のため要求中の中央処理ユニットと関連するもの
以外のメモリ要素内に割り当てられた物理的記憶スペー
スの割当てを解除するための手段を具備する請求項3記
載のディジタルデータ処理システム。 - 【請求項5】A.少なくとも前記一つの中央処理ユニット
が、前記少なくとも一つのデータアイテムのアクセスモ
ード指示がアンカー状態または前記他の状態の一つに条
件付けられるべきことを要求するアクセスモードを発生
するためのアンカー要求ジェネレータを具備し、 B.前記少なくとも一つのデータアイテムを記憶するメモ
リ要素と関連するメモリ管理装置が、アクセスモード要
求に応答してアクセスモード指示を要求される状態に条
件付けるための手段を具備する 請求項1記載のディジタルデータ処理システム。 - 【請求項6】A.前記アクセス要求ジェネレータが、デー
タアイテムへの優先アクセスを要求する所有権要求を発
生するための所有権要求ジェネレータを含み、 B.前記メモリ管理装置が、それぞれのメモリ要素に記憶
されるデータアイテムにアクセスしかつ前記所有権要求
の選択されたものに応答して、 要求中の中央処理ユニットと関連するメモリ要素内に、
要求されるデータアイテムに対する物理的記憶スペース
であって、前記全メモリ要素に関して要求されるデータ
アイテムに対する排他的物理的記憶スペースを割り当
て、そして 要求されるデータアイテムをその排他的物理的記憶スペ
ースに記憶する ための手段を具備する請求項5記載のディジタルデータ
処理システム。 - 【請求項7】前記物理的記憶スペースが前記全メモリ要
素に関して要求されるデータアイテムに対する排他的物
理的記憶スペースであるように、前記メモリ管理装置
が、要求中の中央処理ユニットと関連するメモリ要素内
にのみ物理的記憶スペースを割り当てる請求項6記載の
ディジタルデータ処理システム。 - 【請求項8】前記メモリ管理装置が、前記所有権要求の
選択されたものに応答して、要求されるデータアイテム
の記憶のため要求中の中央処理ユニットと関連するもの
以外のメモリ要素内に割り当てられた物理的記憶スペー
スの割当てを解除するための手段を具備する請求項6記
載のディジタルデータ処理システム。 - 【請求項9】A.少なくとも一つの中央処理ユニットが、
その中央処理ユニットと関連するメモリ要素に記憶され
る前記少なくとも一つのデータアイテムのアクセスモー
ド指示が前記アンカー状態または前記他の状態の一つに
条件付けられるべきことを要求するアクセスモード要求
を発生するためのアンカー要求ジェエレータを具備し、 B.中央処理ユニットと関連されるメモリ管理装置が、か
かる要求に選択的に応答して、アクセスモード指示を要
求される状態に条件付けるための手段を具備する 請求項1記載のディジタルデータ処理システム。 - 【請求項10】A.前記アクセス要求ジェネレータが、デ
ータアイテムへの優先アクセスを要求する所有権要求を
発生するための所有権要求ジェネレータを含み、 B.前記メモリ管理装置が、それぞれのメモリ要素に記憶
されるデータアイテムにアクセスしかつ前記所有権要求
の選択されたものに応答して、 要求中の中央処理ユニットと関連するメモリ要素内に、
要求されるデータアイテムに対する物理的記憶スペース
であって、前記全メモリ要素に関して要求されるデータ
アイテムに対する排他的物理的記憶スペースを割り当
て、そして 要求されるデータアイテムをその排他的物理的記憶スペ
ースに記憶する ための手段を具備する請求項9記載のディジタルデータ
処理システム。 - 【請求項11】前記物理的記憶スペースが前記全メモリ
要素に関して要求されるデータアイテムに対する排他的
物理的記憶スペースであるように、前記メモリ管理装置
が、要求中の中央処理ユニットと関連するメモリ要素内
にのみ物理的記憶スペースを割り当てる請求項10記載の
ディジタルデータ処理システム。 - 【請求項12】前記メモリ管理装置が、前記所有権要求
の選択されたものに応答して、要求されるデータアイテ
ムの記憶のため要求中の中央処理ユニットと関連するも
の以外のメモリ要素内に割り当てられた物理的記憶スペ
ースの割当てを解除するための手段を具備する請求項10
記載のディジタルデータ処理システム。 - 【請求項13】A.中央処理ユニットと、1または複数の
データアイテムを記憶し得る関連するメモリ要素を各々
含む複数の処理セルと、 B.前記複数のメモリ要素に結合されていて、前記複数の
メモリ要素内に記憶される1または複数のデータアイテ
ムにアクセスするためのメモリ管理装置と、 C.他の中央処理ユニットと関連するメモリ要素に物理的
記憶スペースが割り当てられている選択されたデータア
イテムへの優先アクセス要求を発生するためのアクセス
要求ジェネレータを具備する少なくとも第1の中央処理
ユニットと を備え、 D.前記メモリ管理装置が、かかる要求に応答して、 (i)前記第1中央処理ユニットと関連するメモリ要素
内に、前記の選択されたデータアイテムに対する物理的
記憶スペースを割り当て、そしてそこにその選択された
データアイテムを記憶し、 (ii)前記他のメモリ要素においてそのデータアイテム
に割り当てられた前記物理的記憶スペースに記憶される
前記の選択されたデータアイテムのコピーを、もしあれ
ば無効化する ための手段を具備し、 E.前記中央処理ユニットが、前記の選択されたデータア
イテムのコピーをそのデータアイテムに割り当てられた
スペースを有する他のメモリ要素に転送することを要求
するポスト−ストア要求を発生するためのポスト−スト
ア要求ジェネレータを具備し、 F.前記メモリ管理装置が、かかるポスト−ストア要求に
応答して、前記の選択されたデータアイテムのコピー
を、他の処理セルの、そのメモリ要素内にその選択され
たデータアイテムに対して割り当てられた物理的記憶ス
ペースを有するものに転送し、記憶するための手段を具
備する ことを特徴とするディジタルデータ処理システム。 - 【請求項14】A.1または複数のデータアイテムを記憶
し得る関連するメモリ要素に結合される中央処理ユニッ
トを各々具備する複数の処理セルと、 B.前記複数のメモリ要素に結合されていて、該複数のメ
モリ要素内に記憶される1または複数のデータアイテム
にアクセスするためのメモリ管理装置と、 C.他の中央処理ユニットと関連するメモリ要素に物理的
記憶スペースが割り当てられている選択されたデータア
イテムへの優先アクセス要求を発生するための所有権ア
クセス命令を実行するための手段を具備する少なくとも
第1の中央処理ユニットと を備え、 D.前記メモリ管理装置が、かかる要求に応答して、 (i)前記第1中央処理ユニットと関連するメモリ要素
内に、前記の選択されたデータアイテムに対する物理的
記憶スペースを割り当て、そしてそこにその選択された
データアイテムを記憶し、 (ii)前記他のメモリ要素においてそのデータアイテム
に割り当てられた前記物理的記憶スペースに記憶される
前記の選択されたデータアイテムのコピーを、もしあれ
ば無効化する ための手段を具備し、 E.前記中央処理ユニットが、前記の選択されたデータア
イテムのコピーをそのデータアイテムに割り当てられた
スペースを有する他のメモリ要素に転送することを要求
するポスト−ストア要求を発生するためのポスト−スト
ア命令を実行する手段を具備し、 F.前記メモリ管理装置が、かかるポスト−ストア要求に
応答して、前記の選択されたデータアイテムのコピー
を、他の処理セルの、そのメモリ要素内にその選択され
たデータアイテムに対して割り当てられた物理的記憶ス
ペースを有するものに転送し、記憶するための手段を具
備する ことを特徴とするディジタルデータ処理システム。 - 【請求項15】中央処理ユニットと、データアイテムを
記憶するための関連するメモリ要素とを各々具備してお
り、複数のメモリ要素が相俟って共通メモリを形成する
複数の処理セルを備えるディジタルデータ処理システム
を操作する方法であって、 A.前記各処理セル内に、少なくとも一つのデータアイテ
ムと関連して、アンカー状態または他の状態の一つに選
択的に条件付けられたアクセスモード指示を記憶し、 B.前記中央処理ユニットのいずれか内において、前記共
通メモリに記憶されるデータアイテムへのアクセスを要
求するアクセス要求を発生し、 C.アンカー状態を有さないアクセスモード指示を有する
データアイテムへのアクセスを要求する前記中央処理ユ
ニットのいずれかにより発生されるアクセス要求に応答
して、要求されたデータアイテムが前記共通メモリに記
憶されていることを要求中の中央処理ユニットに指示
し、 D.アクセスモード指示がアンカー状態を有するメモリ要
素に記憶されるデータアイテムへのアクセスを要求する
アクセス要求に応答して、 (i) もしもそのアクセス要求が要求されるデータア
イテムが記憶されているメモリ要素と関連する中央処理
ユニットにより発生されたならば、要求されるデータア
イテムがその共通メモリ内に記憶されていることを指示
し、 (ii)もしもアクセス要求が要求されるデータアイテム
が記憶されているメモリ要素と関連しない中央処理装置
により発生されたならば、要求されるデータアイテムが
前記共通メモリに記憶されていないことを指示する 諸段階を含むことを特徴とするディジタルデータ処理シ
ステムを操作する方法。 - 【請求項16】A.中央処理ユニットの選択されたもの内
において、前記共通メモリ内のデータアイテムと関連す
るアクセスモード指示を前記アンカー状態または前記他
の状態に条件付けるためのアクセスモード要求を発生
し、 B.このアクセスモード要求に応答して、そのデータアイ
テムと関連するアクセスモード指示を選択された状態に
条件付ける 諸段階を含む請求項15記載のディジタルデータ処理シス
テム操作方法。 - 【請求項17】A.中央処理ユニットの選択されたもの内
において、関連するメモリ要素内に記憶されるデータア
イテムと関連するアクセスモード指示を前記アンカー状
態または前記他の状態の一つに条件付けるためのアクセ
スモード要求を発生し、 B.このアクセスモード要求に応答して、そのデータアイ
テムと関連するアクセスモード指示を選択された状態に
条件付ける 諸段階を含む請求項15記載のディジタルデータ処理シス
テム操作方法。 - 【請求項18】A.前記中央処理ユニットの要求中のもの
内において、データアイテムへの優先アクセスを要求す
る所有権要求を発生し、 B.少なくとも選択されたかかる所有権要求に応答して、 要求中の中央処理ユニットと関連するメモリ要素内に、
要求されるデータアイテムに対する物理的記憶スペース
であって、前記全メモリ要素に関して要求されるデータ
アイテムに対する排他的物理的記憶スペースを割り当
て、そして 要求されるデータアイテムをその排他的物理的記憶スペ
ースに記憶する 諸段階を含む請求項15〜17のいずれかに記載のディジタ
ルデータ処理システム操作方法。 - 【請求項19】前記物理的記憶スペースが前記全メモリ
要素に関して要求されるデータアイテムに対する排他的
物理的記憶スペースであるように、前記物理的記憶スペ
ースを要求中の中央処理ユニットと関連するメモリ要素
内にのみ割り当てる請求項18記載のディジタルデータ処
理システム操作方法。 - 【請求項20】要求中の中央処理ユニット以外の中央処
理ユニットと関連するメモリ要素内の要求されたデータ
アイテムに割り当てられた物理的記憶スペースを、もし
あれば割当てを解除する段階を含む請求項18記載のディ
ジタルデータ処理システム操作方法。 - 【請求項21】1または複数のデータアイテムを各々記
憶し得る関連するメモリ要素に結合される中央処理ユニ
ットを各々具備する複数の処理セルを備えるマルチプロ
セッサディジタルデータ処理システムを操作する方法で
あって、 A.前記中央処理ユニットの少なくとも第1のユニット内
に、前記メモリ要素の他の一つに物理的記憶スペースが
割り当てられているデータアイテムである選択されたデ
ータアイテムへの優先アクセスのための所有権要求を発
生し、 B.前記所有権要求に応答して、 (i)第1中央処理ユニットと関連するメモリ要素内
に、前記の選択されたデータアイテムに対する物理的記
憶スペースを割り当て、そしてそこにその選択されたデ
ータアイテムを記憶し、 (ii)前記他のメモリ要素において前記の選択されたデ
ータアイテムに割り当てられた物理的記憶スペースに記
憶されるデータアイテムを無効化し、 C.前記第1中央処理ユニット内において、前記データア
イテムのコピーを前記他のメモリ要素に転送することを
要求するポスト−ストア要求を発生し、 D.前記ポスト−ストア要求に応答して、前記他のメモリ
要素内の前記の選択されたデータアイテムに対して割り
当てられた物理的記憶スペースに記憶のため前記の選択
されたデータアイテムのコピーを前記他の処理セルに転
送する 諸段階を含むことを特徴とするマルチプロセッサディジ
タルデータ処理システム操作方法。 - 【請求項22】1または複数のデータアイテムを記憶し
得る関連するメモリ要素に結合される中央処理ユニット
を各々具備する複数の処理セルを備えるマルチプロセッ
サディジタルデータ処理システムを操作する方法であっ
て、 A.前記中央処理装置の少なくとも第1のユニットで、前
記メモリ要素の他の一つに物理的記憶スペースが割り当
てられているデータアイテムである選択されたデータア
イテムへの優先アクセスのための所有権要求を発生する
所有権アクセス命令を実行し、 B.前記所有権要求に応答して、 (i)第1中央処理ユニットと関連するメモリ要素内
に、前記の選択されたデータアイテムに対する物理的記
憶スペースを割り当て、そしてそこにその選択されたデ
ータアイテムを記憶し、 (ii)前記他のメモリ要素において前記の選択されたデ
ータアイテムに割り当てられた物理的記憶スペースに記
憶されるデータアイテムを無効化し、 C.前記第1中央処理ユニットで、前記データアイテムの
コピーを前記他のメモリ要素に転送することを要求する
ポスト−ストア要求を発生するためのポスト−ストア命
令を実行し、 D.前記ポスト−ストア要求に応答して、前記他のメモリ
要素内において前記の選択されたデータアイテムに対し
て割り当てられた物理的記憶スペースに記憶のため前記
の選択されたデータアイテムのコピーを前記他の処理セ
ルに転送する諸段階を含むことを特徴とするマルチプロ
セッサディジタルデータ処理システム操作方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US370287 | 1989-06-22 | ||
US07/370,287 US5251308A (en) | 1987-12-22 | 1989-06-22 | Shared memory multiprocessor with data hiding and post-store |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH03129454A JPH03129454A (ja) | 1991-06-03 |
JP3103581B2 true JP3103581B2 (ja) | 2000-10-30 |
Family
ID=23459010
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP02163026A Expired - Fee Related JP3103581B2 (ja) | 1989-06-22 | 1990-06-22 | マルチプロセッサシステム |
Country Status (5)
Country | Link |
---|---|
EP (1) | EP0404560B1 (ja) |
JP (1) | JP3103581B2 (ja) |
AT (1) | ATE195382T1 (ja) |
CA (1) | CA2019300C (ja) |
DE (1) | DE69033601T2 (ja) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5761413A (en) * | 1987-12-22 | 1998-06-02 | Sun Microsystems, Inc. | Fault containment system for multiprocessor with shared memory |
CA2078312A1 (en) | 1991-09-20 | 1993-03-21 | Mark A. Kaufman | Digital data processor with improved paging |
US5245563A (en) * | 1991-09-20 | 1993-09-14 | Kendall Square Research Corporation | Fast control for round unit |
CA2078315A1 (en) * | 1991-09-20 | 1993-03-21 | Christopher L. Reeve | Parallel processing apparatus and method for utilizing tiling |
US5313647A (en) * | 1991-09-20 | 1994-05-17 | Kendall Square Research Corporation | Digital data processor with improved checkpointing and forking |
CA2078311A1 (en) * | 1991-09-23 | 1993-03-24 | Sun Microsystems, Inc. | Fault containment system for multiprocessor with shared memory |
CA2073516A1 (en) * | 1991-11-27 | 1993-05-28 | Peter Michael Kogge | Dynamic multi-mode parallel processor array architecture computer system |
TW567695B (en) * | 2001-01-17 | 2003-12-21 | Ibm | Digital baseband system |
JP2005250830A (ja) * | 2004-03-04 | 2005-09-15 | Hitachi Ltd | プロセッサおよび主記憶共有マルチプロセッサ |
US10542120B2 (en) * | 2016-11-10 | 2020-01-21 | Microsoft Technology Licensing, Llc | Wirelessly providing operating system specific features |
JP2020198044A (ja) * | 2019-06-05 | 2020-12-10 | 富士通株式会社 | 並列処理装置 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4622631B1 (en) * | 1983-12-30 | 1996-04-09 | Recognition Int Inc | Data processing system having a data coherence solution |
US4755930A (en) | 1985-06-27 | 1988-07-05 | Encore Computer Corporation | Hierarchical cache memory system and method |
IT1184013B (it) * | 1985-12-13 | 1987-10-22 | Elsag | Memoria ad elevata capacita accessibile a diverse agenti |
US4811216A (en) * | 1986-12-22 | 1989-03-07 | American Telephone And Telegraph Company | Multiprocessor memory management method |
JP3023425B2 (ja) * | 1987-10-09 | 2000-03-21 | 株式会社日立製作所 | データ処理装置 |
US5055999A (en) | 1987-12-22 | 1991-10-08 | Kendall Square Research Corporation | Multiprocessor digital data processing system |
CA1320003C (en) | 1987-12-22 | 1993-07-06 | Steven J. Frank | Interconnection system for multiprocessor structure |
-
1990
- 1990-06-19 CA CA002019300A patent/CA2019300C/en not_active Expired - Fee Related
- 1990-06-21 AT AT90306777T patent/ATE195382T1/de active
- 1990-06-21 EP EP90306777A patent/EP0404560B1/en not_active Expired - Lifetime
- 1990-06-21 DE DE69033601T patent/DE69033601T2/de not_active Expired - Fee Related
- 1990-06-22 JP JP02163026A patent/JP3103581B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
DE69033601D1 (de) | 2000-09-14 |
EP0404560B1 (en) | 2000-08-09 |
EP0404560A3 (en) | 1992-08-05 |
CA2019300C (en) | 2001-06-12 |
CA2019300A1 (en) | 1990-12-22 |
EP0404560A2 (en) | 1990-12-27 |
DE69033601T2 (de) | 2001-05-03 |
ATE195382T1 (de) | 2000-08-15 |
JPH03129454A (ja) | 1991-06-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5251308A (en) | Shared memory multiprocessor with data hiding and post-store | |
EP0539012B1 (en) | Improved digital processor with distributed memory system | |
US5313647A (en) | Digital data processor with improved checkpointing and forking | |
US7392352B2 (en) | Computer architecture for shared memory access | |
JP2780032B2 (ja) | マルチプロセッサディジタルデータ処理システム | |
JP2662603B2 (ja) | 無効要求を選別する方法及び装置 | |
JP3927556B2 (ja) | マルチプロセッサ・データ処理システム、変換索引バッファ無効化インストラクション(tlbi)のハンドリングを行うための方法、およびプロセッサ | |
US6526481B1 (en) | Adaptive cache coherence protocols | |
US5265233A (en) | Method and apparatus for providing total and partial store ordering for a memory in multi-processor system | |
US20130080709A1 (en) | System and Method for Performing Memory Operations In A Computing System | |
JPH06243035A (ja) | コンピュータ・システムのためのクラスタ・アーキテクチャにおける一般化共用記憶 | |
JP2005018772A (ja) | 複数のコヒーレンシ領域およびキャッシュ・パージのないコヒーレンシ領域間ソフトウェア・プロセス移行を備えるマルチプロセッサ・コンピュータ・システム | |
JPH09185549A (ja) | キャッシュ記憶モードの間で選択するためのハイブリッドnuma comaキャッシュ記憶のシステムおよび方法 | |
JP2968509B2 (ja) | コンピュータシステム及びキャッシュの内容のコヒーレンシー状態を変更する方法 | |
JP3103581B2 (ja) | マルチプロセッサシステム | |
JP2000067024A (ja) | 分散共有メモリマルチプロセッサシステムのための分割疎ディレクトリ | |
US6675262B1 (en) | Multi-processor computer system with cache-flushing system using memory recall | |
EP0533447B1 (en) | Digital data processor with improved paging | |
JP3295436B2 (ja) | マイクロプロセッサキャッシュの一貫性 | |
JPH04151751A (ja) | マルチプロセッサ | |
JPH0962522A (ja) | 情報処理方法及び情報処理システム | |
JPH09171500A (ja) | プロセサ間データ共用制御テーブルのポインタアドレス変換装置 | |
JPH0619784A (ja) | ダイナミック階層連想メモリ | |
Liberty | Simple COMA Shared Memory and the RS/6000 SP | |
JPH10149307A (ja) | チェックポイント処理方法及び記録媒体 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |