JPH0315965A - マルチプロセッサコンピュータシステムにおいて複数のキャッシュメモリとメインメモリとの間のデータの一貫性を確保する改良機構 - Google Patents
マルチプロセッサコンピュータシステムにおいて複数のキャッシュメモリとメインメモリとの間のデータの一貫性を確保する改良機構Info
- Publication number
- JPH0315965A JPH0315965A JP2024312A JP2431290A JPH0315965A JP H0315965 A JPH0315965 A JP H0315965A JP 2024312 A JP2024312 A JP 2024312A JP 2431290 A JP2431290 A JP 2431290A JP H0315965 A JPH0315965 A JP H0315965A
- Authority
- JP
- Japan
- Prior art keywords
- data
- memory
- cache
- scu
- cpu
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
- G06F12/0817—Cache consistency protocols using directory methods
- G06F12/0822—Copy directories
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Multi Processors (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
産業上の利用分野
本発明は、これと同時に出願された次のような米国特許
出願に開示されているコンピュータシステムの幾つかの
特徴を有するものである。エバンス氏等の「デジタルコ
ンピュータのシステム制御ユニットとサービス処理ユニ
ットとの間のインターフェイス(AN INTERFA
CE BETWEEN A SYSTEMCONTRO
L UNIT AND A SYSTEM PROCE
SSING UNITOF A DIGITAL CO
MPUTER),I ;アーノルド氏等の「マイクロ
プロセッサシステムのシステム制御ユニットと中央処理
ユニットとをインターフエイスする方法及び装置(ME
T}IOD AND APPARATUS FORIN
TERFACING A SYSTEM CONTRO
L UNIT FOR AMULTIPROCESSO
R SYSTEM WITH THE CENTRAL
PROCESSING UNITS)J ;ガグリア
ード氏等の「マルチプロセッサシステムのシステム制御
ユニットをシステムメインメモリとインターフエイスす
るための方法及び手段(METHOD AND MEA
NS FORINTERFACING A SYSTE
M CONTROL UNIT FOR AMULTI
PROCESSORSYSYTEMWITHTHESY
SYTEMMAINMEMORY)J ; D.フィ
ット氏等の「パイプライン式コンピュータシステムにお
いて考えられる種々の数のメモリアクセス競合を分析す
る方法と装置(METHOD AND APPARAT
US FOR RESOLVING AVARIABL
E NUMBER OF POTENTIAL MEM
ORY ACCESSCONFLICTS IN A
PIPELINED COMPUTER SYSYTE
M)J ;D.フィット氏等の「可変長さの命令アー
キテクチャにおいて多数の指定子をデコードする方法(
DECODING MULTIPLE SPECIFI
ERS IN A VARIABLELENGTH I
NSTRUCTION ARCHITECTURE)J
; D,フィット氏等の「仮想命令キャッシュリフ
ィルアルゴリズム(VIRTUAL INSTRUCT
TON CACHE REFILLALGORITHM
)J ;マーレイ氏等の「同じ命令内でのレジスタ及
びレジスタ変更指定子のパイプライン処理(PIPEL
INE PROCESSING OF REGISTE
R ANDREG4STER MODIFYINGT
SPECIFIERS WITI{IN THESAM
E INSTRUCTION)J ;マーレイ氏等の
デジタルコンピュータ用のデータ依存性分析を行なう多
命令予備処理システム(MULTIPLE INSTR
UCTION PRE−PROCESSING SY
STEM WITH DATA DEPENDEN
CYRESOLUTION FOR DIGITAL
CPMPUTER)J ; D, フィット氏等の「
バイブラインプロセッサにおいて暗示された指定子を予
め処理する方法(PRE−PROCESSING IM
PLIED SPECIFIERS INA PIPE
LINEDPROCESSER)J ; D,フィッ
ト氏等の「ブランチ予想(BRANCH PREDIC
TION)J ;フォッサム氏等の「デジタルコンピ
ュータのパイプライン式フローティングポイント加算器
(PIPELINED FLOATINGPOINT
ADDER FOR DIGITAL COMPUTE
R)J .グランドマン氏等の「自己計時式レジスタ
ファイル(SALF TIMED REGISTERF
ILE)J ;べベン氏等の「パイプライン式コンピ
ュータシステムにおいてエラーを検出して修正する方法
及び装置(METHODAND APPARATUS
FOR DETECTING AND CORRECT
INGERRORS IN A PIPELIN
ED Co閃PUTER SYSTEM)J ;
フリン氏等の「マルチプロセッサシステムにおいて
システム制御ユニットを用いて通信要求を仲裁する方法
及び手段(MET}{OD AND MEANS FO
R ARBITRA−TING COMMUNICAT
ION REQUESTS USING A SYST
EMCONTROL UNIT IN A MULT
T−PROCESSOR SYSTEM)J ;E.
フィット氏等のrマイクロコード化実行ユニットにおい
て並列動作で多機能ユニットを制御する方法(CONT
ROLOF MULTIPLE FLINCTION
UINTSWITI−I PARALLEL OPER
ATION IN A MICROCODEDEXEC
URION UINT)J ;ウェブ二世氏等の「仮
想メモリシステムをベースとするデジタルコンピュータ
の命令パイプライン内において予めフェッチした命令で
メモリアクセス例外を処理する方法(PROCESSI
NG OF MEMORY ACCESS EXCEP
TIONS WITHPRE−FETCHED INS
TRUCTIONS WITHIN THE INST
RUC−TION PIPELINE OF A VI
RTUALMEMORY SYSTEM−BASED
DIGITAL COMPUTER)J ;ヘザリン
トン氏等の「デジタルコンピュータシステムにおいて仮
想−物理メモリアドレスの変換を制御する方法及び装置
(METHOD AND APPARATUS FOR
CONTROLLINGTHE CONVERSIO
N OF VIRTUAL To PHYSICAL
MEMORYADDRESSES IN A DIGI
TAL CONPUTER SYSYTEM)4 ;
ヘザリントン氏等のrエラー修正機能を有するライトパ
ックバッファ(WRITE BACK BUFFER
WITH ERROR CORRECTINGCAPA
BILITIES)J ;フリン氏等の「マルチプロ
セッサシステムにおいてシステム制御ユニットを用いて
通信要求を仲裁する方法及び手段(METHOD AN
D MEANS FOR ARBITRATING C
OMMU−NICATION REQUESTS
USING A SYSTEM CON丁ROL
UNI丁TN A MULTI−PROCESSOR
SYSTEM)J ;チナスウェイ氏等の「マルチプ
ロセッサシステムにおいてシステムユニット間でデータ
トランザクションを行なうモジュール式クロスバー相互
接続ネットワーク(MODULAR CROSSBAR
INTERCONNECTIONNETWORX F
OR DATA TRANSACTIONS BETW
EEN SYS−TEM UNITS IN A MU
LTI−PROCESSOR SYSTEM)J ,ボ
ルジン氏等の「入力/出力ユニットとマルチプロセッサ
システムのシステム制御ユニットとをインターフエイス
する方法及び装置(NET!IOD ANDAPPAR
ATUS FOR INTERFACING A SY
SYTEM CONTROLUNIT FOR A M
ULTI−PROCESSOR SYSYTEM WI
THINPUT/OUTPUT UNITS)J ;
ガグリアード氏等の「マルチプロセッサシステムのシス
テム制御ユニットとシステムメインメモリとをインター
フエイスする手段に用いるメモリ構成(MEMORY
CONFIGURATION FOR USE WIT
H MEANS FOR INTERFACING A
SYSTEN CONTROL UNIT FOR A
MULTI−PROCESSOR SYSTEM W
ITH THE SYSTEM MAIN MEMOR
Y)J ;ガグリアード氏等の『システムモジュール
間のDRAM制御信号のエラーチェックのための方法及
び手段(METHOD AND MEANS FOR
ERROR (:l{ECKrNG OF DRAM−
CONTROLSIGNALS BETWEEN SY
STEM MODULES)J ; 7一ノルド氏等の
マルチプロセッサシステムにおけるメモリアクセス動作
の同期及び処理(SYNCI{RO−NIZING A
ND PROCESSING OF MEMORY A
CCESS OPE−RATIONS IN MULT
I−PROCESSOR SYSTEM)J ;ヘサ
リントン氏等の「所定のデータ路巾を有するコンピュー
タシステムのデータ記憶速度を高める方法及び装置(M
ETHOD AND APPARATUS FOR I
NCREASINGTHE DATA STORAGE
RATE OF A COMPUTER SYSTE
M1{AVING A PREDEFINED DAT
A PATH WIDTH)J ; 及びヘザリントン
氏等の「多数のメモリ要求を順序付けして待ち行列に入
れる方法及び装置(METHODAND APPARA
TUS FOR ORDERING AND QUE
UTNGMULT■PLE MEMORY REQUE
STS)J 。
出願に開示されているコンピュータシステムの幾つかの
特徴を有するものである。エバンス氏等の「デジタルコ
ンピュータのシステム制御ユニットとサービス処理ユニ
ットとの間のインターフェイス(AN INTERFA
CE BETWEEN A SYSTEMCONTRO
L UNIT AND A SYSTEM PROCE
SSING UNITOF A DIGITAL CO
MPUTER),I ;アーノルド氏等の「マイクロ
プロセッサシステムのシステム制御ユニットと中央処理
ユニットとをインターフエイスする方法及び装置(ME
T}IOD AND APPARATUS FORIN
TERFACING A SYSTEM CONTRO
L UNIT FOR AMULTIPROCESSO
R SYSTEM WITH THE CENTRAL
PROCESSING UNITS)J ;ガグリア
ード氏等の「マルチプロセッサシステムのシステム制御
ユニットをシステムメインメモリとインターフエイスす
るための方法及び手段(METHOD AND MEA
NS FORINTERFACING A SYSTE
M CONTROL UNIT FOR AMULTI
PROCESSORSYSYTEMWITHTHESY
SYTEMMAINMEMORY)J ; D.フィ
ット氏等の「パイプライン式コンピュータシステムにお
いて考えられる種々の数のメモリアクセス競合を分析す
る方法と装置(METHOD AND APPARAT
US FOR RESOLVING AVARIABL
E NUMBER OF POTENTIAL MEM
ORY ACCESSCONFLICTS IN A
PIPELINED COMPUTER SYSYTE
M)J ;D.フィット氏等の「可変長さの命令アー
キテクチャにおいて多数の指定子をデコードする方法(
DECODING MULTIPLE SPECIFI
ERS IN A VARIABLELENGTH I
NSTRUCTION ARCHITECTURE)J
; D,フィット氏等の「仮想命令キャッシュリフ
ィルアルゴリズム(VIRTUAL INSTRUCT
TON CACHE REFILLALGORITHM
)J ;マーレイ氏等の「同じ命令内でのレジスタ及
びレジスタ変更指定子のパイプライン処理(PIPEL
INE PROCESSING OF REGISTE
R ANDREG4STER MODIFYINGT
SPECIFIERS WITI{IN THESAM
E INSTRUCTION)J ;マーレイ氏等の
デジタルコンピュータ用のデータ依存性分析を行なう多
命令予備処理システム(MULTIPLE INSTR
UCTION PRE−PROCESSING SY
STEM WITH DATA DEPENDEN
CYRESOLUTION FOR DIGITAL
CPMPUTER)J ; D, フィット氏等の「
バイブラインプロセッサにおいて暗示された指定子を予
め処理する方法(PRE−PROCESSING IM
PLIED SPECIFIERS INA PIPE
LINEDPROCESSER)J ; D,フィッ
ト氏等の「ブランチ予想(BRANCH PREDIC
TION)J ;フォッサム氏等の「デジタルコンピ
ュータのパイプライン式フローティングポイント加算器
(PIPELINED FLOATINGPOINT
ADDER FOR DIGITAL COMPUTE
R)J .グランドマン氏等の「自己計時式レジスタ
ファイル(SALF TIMED REGISTERF
ILE)J ;べベン氏等の「パイプライン式コンピ
ュータシステムにおいてエラーを検出して修正する方法
及び装置(METHODAND APPARATUS
FOR DETECTING AND CORRECT
INGERRORS IN A PIPELIN
ED Co閃PUTER SYSTEM)J ;
フリン氏等の「マルチプロセッサシステムにおいて
システム制御ユニットを用いて通信要求を仲裁する方法
及び手段(MET}{OD AND MEANS FO
R ARBITRA−TING COMMUNICAT
ION REQUESTS USING A SYST
EMCONTROL UNIT IN A MULT
T−PROCESSOR SYSTEM)J ;E.
フィット氏等のrマイクロコード化実行ユニットにおい
て並列動作で多機能ユニットを制御する方法(CONT
ROLOF MULTIPLE FLINCTION
UINTSWITI−I PARALLEL OPER
ATION IN A MICROCODEDEXEC
URION UINT)J ;ウェブ二世氏等の「仮
想メモリシステムをベースとするデジタルコンピュータ
の命令パイプライン内において予めフェッチした命令で
メモリアクセス例外を処理する方法(PROCESSI
NG OF MEMORY ACCESS EXCEP
TIONS WITHPRE−FETCHED INS
TRUCTIONS WITHIN THE INST
RUC−TION PIPELINE OF A VI
RTUALMEMORY SYSTEM−BASED
DIGITAL COMPUTER)J ;ヘザリン
トン氏等の「デジタルコンピュータシステムにおいて仮
想−物理メモリアドレスの変換を制御する方法及び装置
(METHOD AND APPARATUS FOR
CONTROLLINGTHE CONVERSIO
N OF VIRTUAL To PHYSICAL
MEMORYADDRESSES IN A DIGI
TAL CONPUTER SYSYTEM)4 ;
ヘザリントン氏等のrエラー修正機能を有するライトパ
ックバッファ(WRITE BACK BUFFER
WITH ERROR CORRECTINGCAPA
BILITIES)J ;フリン氏等の「マルチプロ
セッサシステムにおいてシステム制御ユニットを用いて
通信要求を仲裁する方法及び手段(METHOD AN
D MEANS FOR ARBITRATING C
OMMU−NICATION REQUESTS
USING A SYSTEM CON丁ROL
UNI丁TN A MULTI−PROCESSOR
SYSTEM)J ;チナスウェイ氏等の「マルチプ
ロセッサシステムにおいてシステムユニット間でデータ
トランザクションを行なうモジュール式クロスバー相互
接続ネットワーク(MODULAR CROSSBAR
INTERCONNECTIONNETWORX F
OR DATA TRANSACTIONS BETW
EEN SYS−TEM UNITS IN A MU
LTI−PROCESSOR SYSTEM)J ,ボ
ルジン氏等の「入力/出力ユニットとマルチプロセッサ
システムのシステム制御ユニットとをインターフエイス
する方法及び装置(NET!IOD ANDAPPAR
ATUS FOR INTERFACING A SY
SYTEM CONTROLUNIT FOR A M
ULTI−PROCESSOR SYSYTEM WI
THINPUT/OUTPUT UNITS)J ;
ガグリアード氏等の「マルチプロセッサシステムのシス
テム制御ユニットとシステムメインメモリとをインター
フエイスする手段に用いるメモリ構成(MEMORY
CONFIGURATION FOR USE WIT
H MEANS FOR INTERFACING A
SYSTEN CONTROL UNIT FOR A
MULTI−PROCESSOR SYSTEM W
ITH THE SYSTEM MAIN MEMOR
Y)J ;ガグリアード氏等の『システムモジュール
間のDRAM制御信号のエラーチェックのための方法及
び手段(METHOD AND MEANS FOR
ERROR (:l{ECKrNG OF DRAM−
CONTROLSIGNALS BETWEEN SY
STEM MODULES)J ; 7一ノルド氏等の
マルチプロセッサシステムにおけるメモリアクセス動作
の同期及び処理(SYNCI{RO−NIZING A
ND PROCESSING OF MEMORY A
CCESS OPE−RATIONS IN MULT
I−PROCESSOR SYSTEM)J ;ヘサ
リントン氏等の「所定のデータ路巾を有するコンピュー
タシステムのデータ記憶速度を高める方法及び装置(M
ETHOD AND APPARATUS FOR I
NCREASINGTHE DATA STORAGE
RATE OF A COMPUTER SYSTE
M1{AVING A PREDEFINED DAT
A PATH WIDTH)J ; 及びヘザリントン
氏等の「多数のメモリ要求を順序付けして待ち行列に入
れる方法及び装置(METHODAND APPARA
TUS FOR ORDERING AND QUE
UTNGMULT■PLE MEMORY REQUE
STS)J 。
本発明は、一般に、キャッシュをベースとするマルチプ
ロセッサシステムに係る。より詳細には、本発明は、マ
ルチプロセッサコンピュータシステムにおいてメインメ
モリと個々のプロセッサキャッシュメモリとの間のデー
タの一貫性を確保する改良された技術に係る。
ロセッサシステムに係る。より詳細には、本発明は、マ
ルチプロセッサコンピュータシステムにおいてメインメ
モリと個々のプロセッサキャッシュメモリとの間のデー
タの一貫性を確保する改良された技術に係る。
従来の技術
キャッシュメモリは、システムメモリとプロセッサとの
速度の比を最適なものにするために高性能のコンピュー
タシステムに通常使用されている。小型で高速度のバッ
ファメモリの形態で典型的に実施されるキャッシュは、
当該システムプロセッサが現在オペレーションを実行す
る際に必要となり勝ちなデータ(典型的には、最も最近
使用された命令及びデータ項目)を連続的に得てそれを
一時的に保持する。コンピュータシステムのメインメモ
リは、一般に、論理的な類序でそしてしばしば逐次の形
態でアクセスされる。その典型例として、アレイ構造体
の処理や、特定のプログラムを実行する際の命令のシー
ケンシングが含まれる。或いは又、プログラムが局部領
域へ制御を移す前に命令ループを繰返し実行することが
できる。
速度の比を最適なものにするために高性能のコンピュー
タシステムに通常使用されている。小型で高速度のバッ
ファメモリの形態で典型的に実施されるキャッシュは、
当該システムプロセッサが現在オペレーションを実行す
る際に必要となり勝ちなデータ(典型的には、最も最近
使用された命令及びデータ項目)を連続的に得てそれを
一時的に保持する。コンピュータシステムのメインメモ
リは、一般に、論理的な類序でそしてしばしば逐次の形
態でアクセスされる。その典型例として、アレイ構造体
の処理や、特定のプログラムを実行する際の命令のシー
ケンシングが含まれる。或いは又、プログラムが局部領
域へ制御を移す前に命令ループを繰返し実行することが
できる。
これらの両方の場合に、低速度のシステムメモリへの繰
返しの参照を回避するに充分なデータを保持することの
できる補助メモリが設けられていれば、個々のプロセッ
サ、ひいては、全コンピュータシステムの実行速度を実
質的に高めることができる。システムメモリに関連した
キャッシュがこの機能を果たす。
返しの参照を回避するに充分なデータを保持することの
できる補助メモリが設けられていれば、個々のプロセッ
サ、ひいては、全コンピュータシステムの実行速度を実
質的に高めることができる。システムメモリに関連した
キャッシュがこの機能を果たす。
典型的なキャッシュ構成においては、プロセッサとシス
テムメモリ(一次又はメインメモリ)との間にキャッシ
ュメモリが存在する。メモリアドレスは、要求されたア
ドレス位置とキャッシュの内容との間の一致を定める連
想メモリマップを用いることによって解釈される。要求
されたデータ項目がキャッシュ内に存在する場合には、
メインメモリへの要求が連想メモリによって禁止され、
所望のデータがキャッシュからその要求を発しているプ
ロセッサへ送られる。システムメモリは、要求されたデ
ータ項目がキャッシュ内にない場合だけアクセスされ、
このような場合には、必要なデータがシステムメモリか
らフェッチされ、次いで、その要求を発しているプロセ
ッサへ供給される。このようなキャッシュメモリ機構の
動作は、アドレス及びメモリ使用の発生においてプログ
ラムによって示される局部の現象に基づいている。
テムメモリ(一次又はメインメモリ)との間にキャッシ
ュメモリが存在する。メモリアドレスは、要求されたア
ドレス位置とキャッシュの内容との間の一致を定める連
想メモリマップを用いることによって解釈される。要求
されたデータ項目がキャッシュ内に存在する場合には、
メインメモリへの要求が連想メモリによって禁止され、
所望のデータがキャッシュからその要求を発しているプ
ロセッサへ送られる。システムメモリは、要求されたデ
ータ項目がキャッシュ内にない場合だけアクセスされ、
このような場合には、必要なデータがシステムメモリか
らフェッチされ、次いで、その要求を発しているプロセ
ッサへ供給される。このようなキャッシュメモリ機構の
動作は、アドレス及びメモリ使用の発生においてプログ
ラムによって示される局部の現象に基づいている。
本質的に、キャッシュメモリは、関連するプロセッサの
ためのシステムメモリへのウィンドウを備え、空間的及
び一時的な位置でのデータ参照のために高速アクセスを
行なうことができる。
ためのシステムメモリへのウィンドウを備え、空間的及
び一時的な位置でのデータ参照のために高速アクセスを
行なうことができる。
然し乍ら、キャッシュは、システムメモリに存在するデ
ータ項目を複製するので、システムメモリとシステムの
種々のキャッシュメモリとの間でデータの一貫性を維持
することが重要である。
ータ項目を複製するので、システムメモリとシステムの
種々のキャッシュメモリとの間でデータの一貫性を維持
することが重要である。
個々のプロセッサに個々の別々のキャッシュメモリが設
けられているときには、キャッシュが共有データの異な
ったバージョンを保持することになり、このような全て
の異なったバージョンを更新するためのステップを実行
しなければならなくなる。更に、特定のプロセッサがそ
のキャッシュで情報を変更するときには、その変更され
た情報をメインメモリにおいて取り換えて、種々のキャ
ッシュとメインメモリとが記憶されたデータの有効なコ
ピーを常に保持しなければならない。
けられているときには、キャッシュが共有データの異な
ったバージョンを保持することになり、このような全て
の異なったバージョンを更新するためのステップを実行
しなければならなくなる。更に、特定のプロセッサがそ
のキャッシュで情報を変更するときには、その変更され
た情報をメインメモリにおいて取り換えて、種々のキャ
ッシュとメインメモリとが記憶されたデータの有効なコ
ピーを常に保持しなければならない。
発明が解決しようとする課題
キャッシュの一貫性は、「スマート」メモリ及びより一
般的なソフトウェア制御の使用を含む多数の技術によっ
て達成されている。例えば、パスをベースとする一貫性
機構は、全てのシステムプロセッサによって共有された
メインメモリへの共通の経路を使用しており、これは、
他の全てのキャッシュによるメモリへの書き込みやミス
を共通のバスを介して監視することにより各キャッシュ
がトランザクションデータ情報の更新されたディレクト
リを維持するようにすることによってデータの非一貫性
を検出することを@提とする。この共通バス解決策は、
非常に複雑で且つ特殊なVLSIチップを必要とするの
に加えて、共有バスを介して所期の量のデータが転送さ
れることがら重大な問題が生じるために、限定された数
のプロセッサでしか動作することができない。
般的なソフトウェア制御の使用を含む多数の技術によっ
て達成されている。例えば、パスをベースとする一貫性
機構は、全てのシステムプロセッサによって共有された
メインメモリへの共通の経路を使用しており、これは、
他の全てのキャッシュによるメモリへの書き込みやミス
を共通のバスを介して監視することにより各キャッシュ
がトランザクションデータ情報の更新されたディレクト
リを維持するようにすることによってデータの非一貫性
を検出することを@提とする。この共通バス解決策は、
非常に複雑で且つ特殊なVLSIチップを必要とするの
に加えて、共有バスを介して所期の量のデータが転送さ
れることがら重大な問題が生じるために、限定された数
のプロセッサでしか動作することができない。
ソフトウェアで制御される一貫性機構は、マルチプロセ
ッサ機構において益々使用されるようになってきており
、これはシステム制御されるマイクロコードの使用に基
づくものであり、このマイクロコードは、共有されたメ
モリの領域を追跡し,種々のプロセッサキャッシュにコ
マンドを中継し、共有されたデータの一貫性が保持され
るよう確保する。このコマンドは、例えば、共有された
メモリが別のプロセッサによって変更されたと分かった
場合にプロセッサキャッシュのパージを開始する。これ
らの機構においては、キャッシュの同期が重要であり、
プロセッサキャッシュのパージがあまり頻繁である必要
がある場合にシステム速度を不当に制約することが考え
られる。
ッサ機構において益々使用されるようになってきており
、これはシステム制御されるマイクロコードの使用に基
づくものであり、このマイクロコードは、共有されたメ
モリの領域を追跡し,種々のプロセッサキャッシュにコ
マンドを中継し、共有されたデータの一貫性が保持され
るよう確保する。このコマンドは、例えば、共有された
メモリが別のプロセッサによって変更されたと分かった
場合にプロセッサキャッシュのパージを開始する。これ
らの機構においては、キャッシュの同期が重要であり、
プロセッサキャッシュのパージがあまり頻繁である必要
がある場合にシステム速度を不当に制約することが考え
られる。
キャッシュー貫性機構において2つの最も一般的に使用
されている技術は、「ライトバック」方法と、「ライト
スルー」方法である。ライトバック方法では、変更され
たデータ又は新たなデータが個々のキャッシュにのみ書
き込まれ、メインメモリには書き込まれない。各キャッ
シュタグには追加ビットが組み合わされており、これは
、当該キャッシュ入力が変更されるときにセットされる
。変更されたデータをキャッシュにおいて取り換えるべ
きときには、識別ビットがセットされたと分かった場合
だけその値がメインメモリに書き込まれて戻される。こ
の方法は、個々のキャッシュ内のデータ項目を変更する
ときしかメインメモリへの書き込みが必要とされないの
で非常に効率的であるが、メモリに駐留するデータを常
時監視して更新することが必要であり、メインメモリが
多数のプロセッサ感で共有されるときに問題が生じる。
されている技術は、「ライトバック」方法と、「ライト
スルー」方法である。ライトバック方法では、変更され
たデータ又は新たなデータが個々のキャッシュにのみ書
き込まれ、メインメモリには書き込まれない。各キャッ
シュタグには追加ビットが組み合わされており、これは
、当該キャッシュ入力が変更されるときにセットされる
。変更されたデータをキャッシュにおいて取り換えるべ
きときには、識別ビットがセットされたと分かった場合
だけその値がメインメモリに書き込まれて戻される。こ
の方法は、個々のキャッシュ内のデータ項目を変更する
ときしかメインメモリへの書き込みが必要とされないの
で非常に効率的であるが、メモリに駐留するデータを常
時監視して更新することが必要であり、メインメモリが
多数のプロセッサ感で共有されるときに問題が生じる。
書き込まれているセグメントを含む完全なブロックをメ
インメモリからリフィルせずにプロセッサがキャッシュ
のセグメントへ書き込みできるようなシステムでは、こ
れらの問題が顕著なものとなる。
インメモリからリフィルせずにプロセッサがキャッシュ
のセグメントへ書き込みできるようなシステムでは、こ
れらの問題が顕著なものとなる。
ライトスル一方法では、メインメモリへの全てのキャッ
シュ書き込みを直ちに伝播すると共に、全てのシステム
リソースにアクセスできる供給プロセッサーキャッシュ
インターフエイスを設けることによりデータの一貫性が
確保される。しかしながら、この方法では、複数の書き
込みが同時に生じた場合にメインメモリへの不必要な要
求されるためにキャッシュの性能が著しく低下すること
がある。
シュ書き込みを直ちに伝播すると共に、全てのシステム
リソースにアクセスできる供給プロセッサーキャッシュ
インターフエイスを設けることによりデータの一貫性が
確保される。しかしながら、この方法では、複数の書き
込みが同時に生じた場合にメインメモリへの不必要な要
求されるためにキャッシュの性能が著しく低下すること
がある。
最も一般的なキャッシュー貫性に関連した共通の問題は
、データトランザクション要求の受け入れが共有メモリ
の現在状態で決まることである。
、データトランザクション要求の受け入れが共有メモリ
の現在状態で決まることである。
換言すれば、プロセッサ又は他のシステムユニットから
の入ってくるデータ要求は、その要求がデータの非一貫
性を発生しないことが確立されない限り受け入れられな
いし又実行もされない。特定の要求がプロセッサキャッ
シュ及びメインメモリによって供給されたデータ間に非
一貫性を生じるかどうかに拘りなく、入ってくる全ての
プロセス要求が実行についてスケジュール決めされるこ
とが重要である高性能システムではこの制約によってか
なりの制限がもたらされる。
の入ってくるデータ要求は、その要求がデータの非一貫
性を発生しないことが確立されない限り受け入れられな
いし又実行もされない。特定の要求がプロセッサキャッ
シュ及びメインメモリによって供給されたデータ間に非
一貫性を生じるかどうかに拘りなく、入ってくる全ての
プロセス要求が実行についてスケジュール決めされるこ
とが重要である高性能システムではこの制約によってか
なりの制限がもたらされる。
課題を解決するための手段
簡単に述べると、本発明のシステムによれば、1)デー
タトランザクション要求が処理されるにつれて1組の所
定のデータ非一貫性状態の1つが生じたときを検出する
ことができ、そして2)オペレーションを正しく且つ一
貫したやり方で実行できるようにデータの非一貫性を修
正できるような改良されたキャッシュー貫性機構が提供
される。
タトランザクション要求が処理されるにつれて1組の所
定のデータ非一貫性状態の1つが生じたときを検出する
ことができ、そして2)オペレーションを正しく且つ一
貫したやり方で実行できるようにデータの非一貫性を修
正できるような改良されたキャッシュー貫性機構が提供
される。
好ましい実施例によれば、本発明のキャッシュー貫性機
構は、次の2種類のデータ非一貫性状態に向けられる。
構は、次の2種類のデータ非一貫性状態に向けられる。
即ちl)書き込まれるべき俟置があるプロセッサユニッ
トのキャッシュに存在するときのシステムユニットから
メインメモリへの書き込み動作の要求(この場合は、キ
ャッシュのデータが「古い」ものであり、それに関連し
たプロセッサは、この古いデータの使用が阻止されねば
ならない);及び2)システムユニットによりメインメ
モリの読み取り動作が要求されそして読み取られるべき
位置があるプロセッサのキャッシュに書き込みできるか
又は既に書き込まれているとき(この場合は、メインメ
モリのデータが「古い』ものであり、要求を発している
ユニットへ返送されるデータはキャッシュからの更新さ
れたデータでなければならない)。
トのキャッシュに存在するときのシステムユニットから
メインメモリへの書き込み動作の要求(この場合は、キ
ャッシュのデータが「古い」ものであり、それに関連し
たプロセッサは、この古いデータの使用が阻止されねば
ならない);及び2)システムユニットによりメインメ
モリの読み取り動作が要求されそして読み取られるべき
位置があるプロセッサのキャッシュに書き込みできるか
又は既に書き込まれているとき(この場合は、メインメ
モリのデータが「古い』ものであり、要求を発している
ユニットへ返送されるデータはキャッシュからの更新さ
れたデータでなければならない)。
このキャッシュー貫性機構は、システム制御ユニット(
SCU)を有するマルチプロセッサシステムに特に使用
されるものであり、このSCUは、プロセッサシステム
を構威する複数の中央処理ユニット(CPU)の並列動
作をメインシステムメモリ、I/O装置及びコンピュー
タシステムの他の要素に関連して調整するためのもので
ある。
SCU)を有するマルチプロセッサシステムに特に使用
されるものであり、このSCUは、プロセッサシステム
を構威する複数の中央処理ユニット(CPU)の並列動
作をメインシステムメモリ、I/O装置及びコンピュー
タシステムの他の要素に関連して調整するためのもので
ある。
SCUの主たる機能の1つは、全てのシステムユニット
を最も効率的に並列動作できるようにメモリアクセスを
管理することである。本発明の1つの特徴によれば、上
記したデータ非一貫性状態の1つが存在することは、S
CUをベースとするマルチプロセッサシステムにおいて
、各プロセッサキャッシュに対するキャッシュディレク
トリのコピーを維持する手段をSCUに設けることによ
り検出される。SCUによって要求が処理されるたびに
、アドレスデータがディレクトリに記憶されたものと比
較され、一致の存在が判断される。ディレクトリは、キ
ャッシュ位置におけるメモリデータの物理的なアドレス
と、メインシステムメモリを更新せずにデータがキャッ
シュに書き込まれたかどうかを表わす追加状態ビットと
を含む。書き込み動作の場合、一致が見つかると、即ち
メモリ書き込みがキャッシュ内の位置に「ヒット」する
(当たる)と、SCUは所定の固定シーケンスを実行す
るようにされる。書き込み状態ビットがセットされない
場合には、SCUがそのキャッシュ位置を無効とするコ
マンドを当該プロセッサに中継する。しかしながら、書
き込み状態ビットがセットされた場合には、SCUは、
最初にデータをメインメモリに書き込んで戻しそしてそ
のキャッシュコビーを無効にするようにプロセッサに指
令する。
を最も効率的に並列動作できるようにメモリアクセスを
管理することである。本発明の1つの特徴によれば、上
記したデータ非一貫性状態の1つが存在することは、S
CUをベースとするマルチプロセッサシステムにおいて
、各プロセッサキャッシュに対するキャッシュディレク
トリのコピーを維持する手段をSCUに設けることによ
り検出される。SCUによって要求が処理されるたびに
、アドレスデータがディレクトリに記憶されたものと比
較され、一致の存在が判断される。ディレクトリは、キ
ャッシュ位置におけるメモリデータの物理的なアドレス
と、メインシステムメモリを更新せずにデータがキャッ
シュに書き込まれたかどうかを表わす追加状態ビットと
を含む。書き込み動作の場合、一致が見つかると、即ち
メモリ書き込みがキャッシュ内の位置に「ヒット」する
(当たる)と、SCUは所定の固定シーケンスを実行す
るようにされる。書き込み状態ビットがセットされない
場合には、SCUがそのキャッシュ位置を無効とするコ
マンドを当該プロセッサに中継する。しかしながら、書
き込み状態ビットがセットされた場合には、SCUは、
最初にデータをメインメモリに書き込んで戻しそしてそ
のキャッシュコビーを無効にするようにプロセッサに指
令する。
メインメモリから全ブロックをリフイルせずにキャッシ
ュブロックのセグメントへプロセッサユニットが書き込
みできるようにされたコンビュ一タシステムでは付加的
な複雑さが存在する。その結果、部分的に有効なキャッ
シュブロックが存在することになる。これらのブロック
がキャッシュリフィル要求に応答してメインメモリへ書
き込まれて戻されるか又は別のプロセッサへ送られると
きには、セグメント化されたデータを適当に合流させる
ことが必要となる。本発明のキャッシュ一致機構は、こ
のような状態の存在を検出し、それに応答して、メモリ
システムの前端に設けられたバッファにおいて必要な合
流動作を実行するようにされる。
ュブロックのセグメントへプロセッサユニットが書き込
みできるようにされたコンビュ一タシステムでは付加的
な複雑さが存在する。その結果、部分的に有効なキャッ
シュブロックが存在することになる。これらのブロック
がキャッシュリフィル要求に応答してメインメモリへ書
き込まれて戻されるか又は別のプロセッサへ送られると
きには、セグメント化されたデータを適当に合流させる
ことが必要となる。本発明のキャッシュ一致機構は、こ
のような状態の存在を検出し、それに応答して、メモリ
システムの前端に設けられたバッファにおいて必要な合
流動作を実行するようにされる。
改良されたキャッシュー貫性機構のここに示す実施例で
は、SCUをベースとするプロセッサシステムは、64
バイト書き込みのキャッシュブロックで動作するように
され、そしてプロセッサは、メインメモリからのりフィ
ルなしにキャッシュブロック内に選択されたロングワー
ドを書き込みできるようにされる。SCUは、このよう
な事象の発生を確認し、それに応じてキャッシュディレ
クトリをマークし、そしてその後に他のキャッシュディ
レクトリをチェックして、特定のキャッシュブロックが
他のプロセッサのキャッシュにおいて無効にされる必要
があるかどうか判断される。
は、SCUをベースとするプロセッサシステムは、64
バイト書き込みのキャッシュブロックで動作するように
され、そしてプロセッサは、メインメモリからのりフィ
ルなしにキャッシュブロック内に選択されたロングワー
ドを書き込みできるようにされる。SCUは、このよう
な事象の発生を確認し、それに応じてキャッシュディレ
クトリをマークし、そしてその後に他のキャッシュディ
レクトリをチェックして、特定のキャッシュブロックが
他のプロセッサのキャッシュにおいて無効にされる必要
があるかどうか判断される。
要求が処理されたときには、SCUがその要求を発して
いる元のプロセッサへ応答を中継する。本発明の機構は
、要求された動作が別のCPUのキャッシュブロックへ
の書き込みであることがSCUによって決定されない限
り、要求を発しているプロセッサがSCUからの応答を
待機せずにその動作を進めることができる。別のキャッ
シュブロックが実際に関与する場合には、その要求を発
しているプロセッサが処理を進める前にSCUの応答を
強制的に待機するようにされ、これは、他のシステムプ
ロセッサから見た同じ順序でメモリ書き込みが生じるこ
とを確保する。
いる元のプロセッサへ応答を中継する。本発明の機構は
、要求された動作が別のCPUのキャッシュブロックへ
の書き込みであることがSCUによって決定されない限
り、要求を発しているプロセッサがSCUからの応答を
待機せずにその動作を進めることができる。別のキャッ
シュブロックが実際に関与する場合には、その要求を発
しているプロセッサが処理を進める前にSCUの応答を
強制的に待機するようにされ、これは、他のシステムプ
ロセッサから見た同じ順序でメモリ書き込みが生じるこ
とを確保する。
又、本発明によれば、メモリリフィル動作は、2つの別
々のトランザクションとして処理され、その第1は、S
CUがプロセッサから入ってくるデータトランザクショ
ン要求を処理するときに生じ、そしてその第2は、SC
Uがその後にメモリからの要求を受け取ってその要求デ
ータをプロセッサへ中継するときに生じる。データの非
一貫性状態及び他の競合の存在に対するチェックは、各
トランザクションごとに行なわれ、従って、SCUは、
繰返し周期中に他のデータ要求を自由に処理する。この
ような機構では、キャッシュ競合が検出された場合だけ
SCUがデータトランザクションの固定シーケンスを実
行しなければならない。
々のトランザクションとして処理され、その第1は、S
CUがプロセッサから入ってくるデータトランザクショ
ン要求を処理するときに生じ、そしてその第2は、SC
Uがその後にメモリからの要求を受け取ってその要求デ
ータをプロセッサへ中継するときに生じる。データの非
一貫性状態及び他の競合の存在に対するチェックは、各
トランザクションごとに行なわれ、従って、SCUは、
繰返し周期中に他のデータ要求を自由に処理する。この
ような機構では、キャッシュ競合が検出された場合だけ
SCUがデータトランザクションの固定シーケンスを実
行しなければならない。
データ非一貫性の修正は、最小のハードウエアを使用す
るだけで正しい実行シーケンスを制御できるようにマイ
クロコード制御のもとで行なわれる.本発明の更に別の
目的及び項かは、添付図面を参照した以下の詳細な説明
より明らかとなろう。
るだけで正しい実行シーケンスを制御できるようにマイ
クロコード制御のもとで行なわれる.本発明の更に別の
目的及び項かは、添付図面を参照した以下の詳細な説明
より明らかとなろう。
実施例
本発明は、種々の変更及び修正が考えられるが、一例と
して添付図面を参照してその特定の実施例について詳細
に説明する。然し乍ら、本発明は、ここに開示する特定
の形態に限定されるものではなく、特許請求の範囲で規
定した本発明の精神及び範囲内に入る全ての変更や修正
を網羅するものとする。
して添付図面を参照してその特定の実施例について詳細
に説明する。然し乍ら、本発明は、ここに開示する特定
の形態に限定されるものではなく、特許請求の範囲で規
定した本発明の精神及び範囲内に入る全ての変更や修正
を網羅するものとする。
添付図面の特に第1図は、マルチプロセッサシステム1
0の簡単なブロック図であり、該システムは、複数の中
央処理ユニット(CPU)12を用いており、これらの
システムCPUがシステムに対して共通のメモリl6を
共有できるようにすることによりこれらCPUの同時の
即ち並列の動作を行なえるようになっている。メインメ
モリ16自体は、典型的に、複数のメモリユニットl6
A及び16Bを備えている。システム制御ユニット(S
CU)14は、CPU12をメインメモリ16にリンク
すると共に、入力/出力(I/O)制御器l8にリンク
する。このI/O制御器は、一般的にはプロセッサシス
テムがそしてより詳細にはCPUがシステムの適当なI
/Oインターフェイス20及び当該I/Oユニット20
Aを経て外界と通信できるようにする。又、SCU14
は、種々のシステムモジュールをサービスプロセッサ/
コンソールユニット(SPU)22ヘリンクし、このユ
ニットは、プロセッサシステムの全オペレーションにつ
いての状態の決定及び制御を含む通常のコンソール機能
を実行する。特に、SCUI4は、複数のCPU12と
通信する手段をSPU22に与えると共に、CPU内の
全ての記憶素子へのアクセスを与える。
0の簡単なブロック図であり、該システムは、複数の中
央処理ユニット(CPU)12を用いており、これらの
システムCPUがシステムに対して共通のメモリl6を
共有できるようにすることによりこれらCPUの同時の
即ち並列の動作を行なえるようになっている。メインメ
モリ16自体は、典型的に、複数のメモリユニットl6
A及び16Bを備えている。システム制御ユニット(S
CU)14は、CPU12をメインメモリ16にリンク
すると共に、入力/出力(I/O)制御器l8にリンク
する。このI/O制御器は、一般的にはプロセッサシス
テムがそしてより詳細にはCPUがシステムの適当なI
/Oインターフェイス20及び当該I/Oユニット20
Aを経て外界と通信できるようにする。又、SCU14
は、種々のシステムモジュールをサービスプロセッサ/
コンソールユニット(SPU)22ヘリンクし、このユ
ニットは、プロセッサシステムの全オペレーションにつ
いての状態の決定及び制御を含む通常のコンソール機能
を実行する。特に、SCUI4は、複数のCPU12と
通信する手段をSPU22に与えると共に、CPU内の
全ての記憶素子へのアクセスを与える。
SCUl4及びメインメモリ16にボートで結合された
全てのシステムユニット間の、より詳細には、各CPU
12とメインメモリl6との間の効率的な通信は、プロ
セッサシステムの効率的な並列動作を確保する上で重要
である。この動作は、SCU14及びメインメモリl6
をリンクする専用のインターフエイス手段30によって
与えられる。このインターフエイス30は、SCUにボ
ート結合されたCPUl2又はI/Oユニット20Aの
各々から受け取ったメモリ対話コマンド又は信号に応答
して、メインメモリl6を構或する種々のモジュールを
インターフエイス及び制御する手段をSCU14に与え
る。
全てのシステムユニット間の、より詳細には、各CPU
12とメインメモリl6との間の効率的な通信は、プロ
セッサシステムの効率的な並列動作を確保する上で重要
である。この動作は、SCU14及びメインメモリl6
をリンクする専用のインターフエイス手段30によって
与えられる。このインターフエイス30は、SCUにボ
ート結合されたCPUl2又はI/Oユニット20Aの
各々から受け取ったメモリ対話コマンド又は信号に応答
して、メインメモリl6を構或する種々のモジュールを
インターフエイス及び制御する手段をSCU14に与え
る。
又、第1図に示すように、各々のCPU12は、典型的
に、メモリ、I/Oユニット及び他のCPUユニットへ
のCPUインターフエイスを与えるメモリユニット(M
ユニット)24を備えている。特に、このMユニットモ
ジュールは、通常は仮想のメモリ参照を受け入れ、この
参照を物理アドレスに変換し、そしてSCU14及びイ
ンターフェイス手段30を介してメインメモリ内にある
メモリデータへのアクセスを開始するか、より重要なこ
とは、CPUに関連したローカルキャッシュ内にあるメ
モリデータへのアクセスを開始するための手段として働
く。第1図に示すシステムは、パイプライン式の仮想メ
モリをベースとするコンピュータシステムである。パイ
プラインの考え方によれば、CPU12は非均等プロセ
ッサであって、これは、個々の命令が実行前に分割され
るところの特定のタスクを専用に実行し且つそれに最も
適するようにされた1組の特殊機能ユニットを備えてい
る。従って、各CPU12は、命令ユニット(Iユニッ
ト)26も備えており、これは、命令をフエツチし、オ
ペレーションコード(OPコード)及び指定子をデコー
ドし、オペランドをフェッチしそしてシステムプログラ
ムカウンタ及び実行ユニット(Eユニット)28を更新
する。この実行ユニットは、他のCPUモジュールによ
って送られたデコードされた命令及びフエッチされたオ
ペランドに対する実行段として働くものである。このよ
うなシステムの実施例では、SCUの制御のもとでメイ
ンメモリ14を効率的に共有することにより4つまでの
CPUが同時に並列に動作される。
に、メモリ、I/Oユニット及び他のCPUユニットへ
のCPUインターフエイスを与えるメモリユニット(M
ユニット)24を備えている。特に、このMユニットモ
ジュールは、通常は仮想のメモリ参照を受け入れ、この
参照を物理アドレスに変換し、そしてSCU14及びイ
ンターフェイス手段30を介してメインメモリ内にある
メモリデータへのアクセスを開始するか、より重要なこ
とは、CPUに関連したローカルキャッシュ内にあるメ
モリデータへのアクセスを開始するための手段として働
く。第1図に示すシステムは、パイプライン式の仮想メ
モリをベースとするコンピュータシステムである。パイ
プラインの考え方によれば、CPU12は非均等プロセ
ッサであって、これは、個々の命令が実行前に分割され
るところの特定のタスクを専用に実行し且つそれに最も
適するようにされた1組の特殊機能ユニットを備えてい
る。従って、各CPU12は、命令ユニット(Iユニッ
ト)26も備えており、これは、命令をフエツチし、オ
ペレーションコード(OPコード)及び指定子をデコー
ドし、オペランドをフェッチしそしてシステムプログラ
ムカウンタ及び実行ユニット(Eユニット)28を更新
する。この実行ユニットは、他のCPUモジュールによ
って送られたデコードされた命令及びフエッチされたオ
ペランドに対する実行段として働くものである。このよ
うなシステムの実施例では、SCUの制御のもとでメイ
ンメモリ14を効率的に共有することにより4つまでの
CPUが同時に並列に動作される。
第1図において、各CPUl2のMユニット24は、メ
インキャッシュ25を備えており、これは、■ユニット
26及びEユニット28が、メインメモリl4の通常の
アクセス時間によって許されるものよりも相当に高い速
度でデータを各々アクセス及び処理できるようにする。
インキャッシュ25を備えており、これは、■ユニット
26及びEユニット28が、メインメモリl4の通常の
アクセス時間によって許されるものよりも相当に高い速
度でデータを各々アクセス及び処理できるようにする。
メインキャッシュ25は、プロセッサが現在オペレーシ
ョンの実行に必要としがちなデータ(典型的には、最も
最近使用された命令及びデータ項目)を一時的に保持す
る。キャッシュは、必要とされるアドレス位置とキャッ
シュの内容との間の対応を定める連想メモリマップを用
いることによりメモリアドレスを解読する。システムは
、要求されたデータ項目がキャッシュ内に存在すること
が分かった場合に、メインメモリへの要求を禁止しそし
てプロセッサにより要求されたデータをキャッシュから
供給することによって動作する。メインメモリl6は、
要求されたデータ項目がキャッシュ25にない場合にの
みSCU14によってアクセスされ、この場合、データ
はシステムメモリからフエツチされそしてその要求を発
しているユニットへ供給される。キャッシュ25は、コ
ンピュータプログラムにおけるローカリテイの現象に基
づいて動作し、システムメインメモリ16に対するウイ
ンドウを与えると共に、空間的及び一時的の両方のロー
カリテイでデータ参照への高速アクセスを許す。
ョンの実行に必要としがちなデータ(典型的には、最も
最近使用された命令及びデータ項目)を一時的に保持す
る。キャッシュは、必要とされるアドレス位置とキャッ
シュの内容との間の対応を定める連想メモリマップを用
いることによりメモリアドレスを解読する。システムは
、要求されたデータ項目がキャッシュ内に存在すること
が分かった場合に、メインメモリへの要求を禁止しそし
てプロセッサにより要求されたデータをキャッシュから
供給することによって動作する。メインメモリl6は、
要求されたデータ項目がキャッシュ25にない場合にの
みSCU14によってアクセスされ、この場合、データ
はシステムメモリからフエツチされそしてその要求を発
しているユニットへ供給される。キャッシュ25は、コ
ンピュータプログラムにおけるローカリテイの現象に基
づいて動作し、システムメインメモリ16に対するウイ
ンドウを与えると共に、空間的及び一時的の両方のロー
カリテイでデータ参照への高速アクセスを許す。
キャッシュ25は、平均ベースで、CPUI2がメイン
メモリl6のアクセス時間よりも相当に高い速度でデー
タを処理できるようにする。キャッシュ25は、典型的
に、データエレメントの選択された所定のブロックを記
憶するための手段を備えており、そしてMユニット24
と共に、指定のデータエレメントをアクセスするために
システムユニットから要求を受け取る手段、データエレ
メントがキャッシュにブロックとして記憶されるかどう
かをチェックする手段、そして指定のデータエレメント
を含むブロックのデータがこのように記憶されないとき
に動作して、SCUを経て、メインメモリ16からのデ
ータの指定のブロックを要求しそしてそのデータブロッ
クをキャッシュ25に記憶するための手段を形成する。
メモリl6のアクセス時間よりも相当に高い速度でデー
タを処理できるようにする。キャッシュ25は、典型的
に、データエレメントの選択された所定のブロックを記
憶するための手段を備えており、そしてMユニット24
と共に、指定のデータエレメントをアクセスするために
システムユニットから要求を受け取る手段、データエレ
メントがキャッシュにブロックとして記憶されるかどう
かをチェックする手段、そして指定のデータエレメント
を含むブロックのデータがこのように記憶されないとき
に動作して、SCUを経て、メインメモリ16からのデ
ータの指定のブロックを要求しそしてそのデータブロッ
クをキャッシュ25に記憶するための手段を形成する。
換言すれば、キャッシュは、メインメモリに対する「ウ
インドウ」を与え、CPUl2が最も必要とするであろ
うデータを含むことになる。CPUl2によって必要と
されたデータエレメントがキャッシュ25内に見つから
ない場合には、データエレメントがメインメモリl6か
ら得られるが、このプロセス中には、付加的なデータを
含む全ブロックがメインメモリl6から得られてキャッ
シュ25へ書き込まれる。時間及びメモリ空間について
のローカリテイの原理により、CPUがデータエレメン
トを次に所望するときには、既にアドレスされたデータ
エレメントを含むブロックにこのデータエレメントが見
つかる見込みが高くなる。それ故,キャッシュ25がC
PUにより所望されるデータエレメントを既に含む見込
みが高くなる。一般に、キャッシュ25はメインメモリ
16よりも相当に高い速度でアクセスされるので、メイ
ンメモリ16は、キャッシュ25よりも比例的にゆっく
りとしたアクセス時間をもつことになり、CPUの平均
性能を著しく低下することはない。それ故、メインメモ
リ16は、低速で且つ安価なメモリエレメントでよく且
つこれで一般的に構或できる。
インドウ」を与え、CPUl2が最も必要とするであろ
うデータを含むことになる。CPUl2によって必要と
されたデータエレメントがキャッシュ25内に見つから
ない場合には、データエレメントがメインメモリl6か
ら得られるが、このプロセス中には、付加的なデータを
含む全ブロックがメインメモリl6から得られてキャッ
シュ25へ書き込まれる。時間及びメモリ空間について
のローカリテイの原理により、CPUがデータエレメン
トを次に所望するときには、既にアドレスされたデータ
エレメントを含むブロックにこのデータエレメントが見
つかる見込みが高くなる。それ故,キャッシュ25がC
PUにより所望されるデータエレメントを既に含む見込
みが高くなる。一般に、キャッシュ25はメインメモリ
16よりも相当に高い速度でアクセスされるので、メイ
ンメモリ16は、キャッシュ25よりも比例的にゆっく
りとしたアクセス時間をもつことになり、CPUの平均
性能を著しく低下することはない。それ故、メインメモ
リ16は、低速で且つ安価なメモリエレメントでよく且
つこれで一般的に構或できる。
’VAX− 1 1’デジタルコンピュータのキャッシ
ュ及びメインメモリと同様のキャッシュ25及びメイン
メモリl6に対する例示的な構或が、参考としてここに
取り上げるデジタルエクイツプメント社発行のレビ−氏
及びエクハウス二世氏著の「コンピュータプログラミン
グ及びアーキテクチャーVAX−114 (1980
年)の第ll章、第351−368頁に掲載されている
。このような’VAX’ ブランドのデジタルコンピュ
ータは、米国、マサチューセッツ州、メイナード、パウ
ダーミル・ロード、111のデジタルエクイップメント
社から入手できる。
ュ及びメインメモリと同様のキャッシュ25及びメイン
メモリl6に対する例示的な構或が、参考としてここに
取り上げるデジタルエクイツプメント社発行のレビ−氏
及びエクハウス二世氏著の「コンピュータプログラミン
グ及びアーキテクチャーVAX−114 (1980
年)の第ll章、第351−368頁に掲載されている
。このような’VAX’ ブランドのデジタルコンピュ
ータは、米国、マサチューセッツ州、メイナード、パウ
ダーミル・ロード、111のデジタルエクイップメント
社から入手できる。
メインメモリl6は、「マルチプロセッサシステムのシ
ステム制御ユニットをシステムメモリとインターフェイ
スする方法及び手段』と題する上記ガグリアード氏等の
米国特許出願に開示された形式のセグメントベースの構
成を有するのが好ましい。そこに開示されたように、メ
インメモリ16は、4つの拡張l6進サイズのメモリモ
ジュールで形成された少なくとも1つのメインメモリユ
ニット(MMU)を備えており、その各々は、IMビッ
トDRAMを用いて64メガビットの記憶容量を与える
のが好ましい。メモリへの又はメモリからの全てのCP
Uアクセスは、選択されたバイト数(典型的に64バイ
ト)より成るブロック増分でSCUl4 (第1図)を
介して行なわれる。
ステム制御ユニットをシステムメモリとインターフェイ
スする方法及び手段』と題する上記ガグリアード氏等の
米国特許出願に開示された形式のセグメントベースの構
成を有するのが好ましい。そこに開示されたように、メ
インメモリ16は、4つの拡張l6進サイズのメモリモ
ジュールで形成された少なくとも1つのメインメモリユ
ニット(MMU)を備えており、その各々は、IMビッ
トDRAMを用いて64メガビットの記憶容量を与える
のが好ましい。メモリへの又はメモリからの全てのCP
Uアクセスは、選択されたバイト数(典型的に64バイ
ト)より成るブロック増分でSCUl4 (第1図)を
介して行なわれる。
第2図は、CPUキャッシュ25及びメインメモリ16
の記憶区分の好ましい編成を示すブロック図である。図
示されたように、メインメモリ16のMMUのデータ記
憶区分は、一対のセグメント34、36より成り,その
各々は一対のメモリバンクを構威する。4つのメモリバ
ンクが各々38、40、42及び44で示されている。
の記憶区分の好ましい編成を示すブロック図である。図
示されたように、メインメモリ16のMMUのデータ記
憶区分は、一対のセグメント34、36より成り,その
各々は一対のメモリバンクを構威する。4つのメモリバ
ンクが各々38、40、42及び44で示されている。
これらのメモリバンクはDRAMベースのものであり、
例えば、64メガバイトのデータを各々記憶することが
できる。このようなセグメントベースのメモリの一般的
な編成は、通常のものであるが、メモリバンクに対する
メモリアドレスがブロックの境界においてインターリー
ブされていることが重要である。このような構成が第2
図に示されており、ここでは64バイトの好ましいデー
タブロックサイズについてのインターリーブが示されて
いる。第1ブロック(BLOCKO)は、バイトアドレ
スO−63が組み合わされ、第1メモリセグメント34
の第lバンク38に記憶され;次に続くブロックはバイ
トアドレス64−127を構成し、即ち第2ブロック(
BLOCKI)を構成するもので、第2メモリセグメン
ト36の第lメモリバンク42に記憶され;第3ブロッ
ク(BLOCK2)はバイトアドレス128−191が
組み合わされ、第lメモリセグメント34の第2メモリ
バンク40に記憶され;第4メモリブロック(BLOC
K3)はバイトアドレス192−255が組み合わされ
、第2メモリセグメント36の第2メモリブロック44
に記憶され;そして第5ブロック(BLOCK4)はバ
イトアドレス256−3 1 9が組み合わされ、第1
メモリセグメント34の第1メモリバンク38に記憶さ
れ、等々となる。
例えば、64メガバイトのデータを各々記憶することが
できる。このようなセグメントベースのメモリの一般的
な編成は、通常のものであるが、メモリバンクに対する
メモリアドレスがブロックの境界においてインターリー
ブされていることが重要である。このような構成が第2
図に示されており、ここでは64バイトの好ましいデー
タブロックサイズについてのインターリーブが示されて
いる。第1ブロック(BLOCKO)は、バイトアドレ
スO−63が組み合わされ、第1メモリセグメント34
の第lバンク38に記憶され;次に続くブロックはバイ
トアドレス64−127を構成し、即ち第2ブロック(
BLOCKI)を構成するもので、第2メモリセグメン
ト36の第lメモリバンク42に記憶され;第3ブロッ
ク(BLOCK2)はバイトアドレス128−191が
組み合わされ、第lメモリセグメント34の第2メモリ
バンク40に記憶され;第4メモリブロック(BLOC
K3)はバイトアドレス192−255が組み合わされ
、第2メモリセグメント36の第2メモリブロック44
に記憶され;そして第5ブロック(BLOCK4)はバ
イトアドレス256−3 1 9が組み合わされ、第1
メモリセグメント34の第1メモリバンク38に記憶さ
れ、等々となる。
又、第2図に示すように、キャッシュ25は、一般的に
45で示された入力アドレスレジスタと、一般的に46
で示されたタグ記憶部と、一般的に47で示されたデー
タ記憶部とを備えている。データ記憶部47は、データ
エレメントの所定のブロックの選択された1つを記憶す
るように構成される。指定のブロックのデータがデータ
記憶部47に記憶されるかどうかを指示するために,タ
グ記憶部46は、ブロックに関連した各タグを記憶する
ように構威される。更に、キャッシュ24は、指定のブ
ロックに対するデータがキャッシュメモリに記憶される
かどうかをチェックするための比較器48のような手段
を備えている。
45で示された入力アドレスレジスタと、一般的に46
で示されたタグ記憶部と、一般的に47で示されたデー
タ記憶部とを備えている。データ記憶部47は、データ
エレメントの所定のブロックの選択された1つを記憶す
るように構成される。指定のブロックのデータがデータ
記憶部47に記憶されるかどうかを指示するために,タ
グ記憶部46は、ブロックに関連した各タグを記憶する
ように構威される。更に、キャッシュ24は、指定のブ
ロックに対するデータがキャッシュメモリに記憶される
かどうかをチェックするための比較器48のような手段
を備えている。
第2図に特に示すように、タグは、ブロックアドレスの
上部を構成する。フィル要求に応答して、メインメモリ
のアドレスされたブロックは、データ記憶部47の1つ
以上の所定のスロットに転送される。所与のブロックに
関連したスロットは、インデックスjでインデックスさ
れる。特定のブロックに対するインデックスj及びタグ
は、そのブロックのブロックアドレスを指定する。それ
故、所望のバイ1・のアドレスが入力レジスタ45に受
け取られたときには、インデックス部分jがタグ記憶部
46の少なくとも1つの対応するスロットを指し、アド
レスされたタグが比較器48に送られて、バイトアドレ
スで指定されたタグと比較される。
上部を構成する。フィル要求に応答して、メインメモリ
のアドレスされたブロックは、データ記憶部47の1つ
以上の所定のスロットに転送される。所与のブロックに
関連したスロットは、インデックスjでインデックスさ
れる。特定のブロックに対するインデックスj及びタグ
は、そのブロックのブロックアドレスを指定する。それ
故、所望のバイ1・のアドレスが入力レジスタ45に受
け取られたときには、インデックス部分jがタグ記憶部
46の少なくとも1つの対応するスロットを指し、アド
レスされたタグが比較器48に送られて、バイトアドレ
スで指定されたタグと比較される。
比較器48が一致を検出すると、「ヒット」が指示され
、インデックスjでインデックスされたデータ記憶部4
7のブロックに所望のバイトが含まれたことを示す。さ
もなくば、比較器48は「政ス」を指示し、それに対応
するフィル要求をSCUに入れる。次いで、フィル要求
は4つのメモリバンク3 8−4 2の対応する1つに
送られ、これは、入力レジスタ45からのブロックアド
レスにより指定されたブロックを記憶する。
、インデックスjでインデックスされたデータ記憶部4
7のブロックに所望のバイトが含まれたことを示す。さ
もなくば、比較器48は「政ス」を指示し、それに対応
するフィル要求をSCUに入れる。次いで、フィル要求
は4つのメモリバンク3 8−4 2の対応する1つに
送られ、これは、入力レジスタ45からのブロックアド
レスにより指定されたブロックを記憶する。
第2図に更に示すように、タグ記憶部46及びデータ記
憶部47は、2048個の別々のスロットか或いは各々
IKの別々のスロットの2つの個別のバンクかのいずれ
かを備えていて、これらは11個の2進ビットを有する
インデックスjによって指定されるのが好ましい。これ
らの2進ビットは、バイトアドレスのビット6ないしl
6に配置される。バイトアドレスのビットO−5は、ア
ドレスされたブロック45のバイトiの特定の位置を指
定する。典型的に、各データエレメントは、「クオドワ
ードjを形成する8個の隣接バイトを含んでいる。クオ
ドワードにおけるバイトの位置は、バイトアドレスのビ
ットO−2を含む「バイト残部」によって指定される。
憶部47は、2048個の別々のスロットか或いは各々
IKの別々のスロットの2つの個別のバンクかのいずれ
かを備えていて、これらは11個の2進ビットを有する
インデックスjによって指定されるのが好ましい。これ
らの2進ビットは、バイトアドレスのビット6ないしl
6に配置される。バイトアドレスのビットO−5は、ア
ドレスされたブロック45のバイトiの特定の位置を指
定する。典型的に、各データエレメントは、「クオドワ
ードjを形成する8個の隣接バイトを含んでいる。クオ
ドワードにおけるバイトの位置は、バイトアドレスのビ
ットO−2を含む「バイト残部」によって指定される。
ブロックにおけるクオドワードの位置は、バイトアドレ
スのビット3−5により指定された「クオドワード残部
]によって指示される。
スのビット3−5により指定された「クオドワード残部
]によって指示される。
第4図は、第1図に示した形式のマルチプロセッサシス
テムを構或する複数のCPUのキャッシュ状態を維持す
るためにSCU内に定められたグローバルなキャッシュ
タグディレクトリの好ましい構造を示している。
テムを構或する複数のCPUのキャッシュ状態を維持す
るためにSCU内に定められたグローバルなキャッシュ
タグディレクトリの好ましい構造を示している。
第3図に示すように、グローバルなタグ構造体100は
、RAMO%RAM1、RAM2及びRAM3と指定さ
れた4つの別々のRAM構造体を備えており、これらは
、対応するCPUO,CPUI、CPU2及びCPU3
内のキャッシュに対応するものである。各々のRAM構
造体は、1つのCPU専用にされ、好ましい実施例によ
れば、4キロバイト(4K)の容量を有し、4つの別々
のl−K区分を定めることができる。第1区分102は
、CPUに対してセットO状態を保持し、一方、第2区
分104は、セットl状態を保持する。第3及び第4区
分106及び108は、タグのディレクトリに対して各
々必要とされず、従って、未使用のま)である。然し乍
ら、未使用のRAM区分は、他の保護目的で効果的に使
用することができる。これらの区分は、SCUによって
しばしばアクセスする必要のあるロックディレクトリの
ような他の参照ディレクトリを維持するのに特に有用で
ある。これについては、本発明の譲受人によって譲渡さ
れた「マルチプロセッサシステムにおいてメモリアクセ
スオペレーションを同期及び処理する方法Jと題するア
ーノルド氏等の米国特許出願第356,541号に開示
されている。
、RAMO%RAM1、RAM2及びRAM3と指定さ
れた4つの別々のRAM構造体を備えており、これらは
、対応するCPUO,CPUI、CPU2及びCPU3
内のキャッシュに対応するものである。各々のRAM構
造体は、1つのCPU専用にされ、好ましい実施例によ
れば、4キロバイト(4K)の容量を有し、4つの別々
のl−K区分を定めることができる。第1区分102は
、CPUに対してセットO状態を保持し、一方、第2区
分104は、セットl状態を保持する。第3及び第4区
分106及び108は、タグのディレクトリに対して各
々必要とされず、従って、未使用のま)である。然し乍
ら、未使用のRAM区分は、他の保護目的で効果的に使
用することができる。これらの区分は、SCUによって
しばしばアクセスする必要のあるロックディレクトリの
ような他の参照ディレクトリを維持するのに特に有用で
ある。これについては、本発明の譲受人によって譲渡さ
れた「マルチプロセッサシステムにおいてメモリアクセ
スオペレーションを同期及び処理する方法Jと題するア
ーノルド氏等の米国特許出願第356,541号に開示
されている。
該特許出願には、ロックディレクトリを維持するための
グローバルなタグ構造体100における未使用RAM区
分のlつと、ロック要求を含むメモリアクセストランザ
クションの競合のない処理を確保するための関連リザー
ブリストとの使い方が開示されている。
グローバルなタグ構造体100における未使用RAM区
分のlつと、ロック要求を含むメモリアクセストランザ
クションの競合のない処理を確保するための関連リザー
ブリストとの使い方が開示されている。
第3図を参照すれば、書き込みイネーブル(WE)ライ
ン110、112、114及びl16は、4つのRAM
構造体RAMO−3に対応するタグの書き込みをイネー
ブルするために設けられている。アクセス要求を伴うメ
モリアドレスは、マルチブレクサ構成体118を経て送
られ、その「選択」信号122は、特定のCPUのセッ
トO及びIに対するキャッシュ状faMをブックアップ
するのに用いられる。第2図には、各々のRAM構造体
に対して1組のRAM L,か示されていない。
ン110、112、114及びl16は、4つのRAM
構造体RAMO−3に対応するタグの書き込みをイネー
ブルするために設けられている。アクセス要求を伴うメ
モリアドレスは、マルチブレクサ構成体118を経て送
られ、その「選択」信号122は、特定のCPUのセッ
トO及びIに対するキャッシュ状faMをブックアップ
するのに用いられる。第2図には、各々のRAM構造体
に対して1組のRAM L,か示されていない。
実際には、各々のRAM構造体に対して典型的に複数の
RAMが設けられる。第1図に示す実施例においては、
例えば、各RAMグループに対して6個のRAMが設け
られている。又、3ビットのタグ「状態J入力124が
RAM構造体の各々に送られ、キャッシュ状態は繰返し
の読み取りサイクル中に出力データとして順次に読み取
られ,方、対応するメモリアドレスも出力に発生される
。
RAMが設けられる。第1図に示す実施例においては、
例えば、各RAMグループに対して6個のRAMが設け
られている。又、3ビットのタグ「状態J入力124が
RAM構造体の各々に送られ、キャッシュ状態は繰返し
の読み取りサイクル中に出力データとして順次に読み取
られ,方、対応するメモリアドレスも出力に発生される
。
これらのアドレスは比較ユニットに通され、メモリアク
セス要求に対応するメモリアドレスと、対応するキャッ
シュブロックの内容との間の一致が存在するかどうかの
判断が行なわれる。
セス要求に対応するメモリアドレスと、対応するキャッ
シュブロックの内容との間の一致が存在するかどうかの
判断が行なわれる。
上記したグローバルなタグ構造体は、個々のCPU内の
キャッシュブロックの状態を維持し且つ読み出すのに特
に用いられることが重要である。
キャッシュブロックの状態を維持し且つ読み出すのに特
に用いられることが重要である。
典型的に、キャッシュ状態は、特定のキャッシュブロッ
クが、無効であるか読み取りであるか部分書き込みであ
るか全書き込みであるかのデータを含むかどうかを指示
する。
クが、無効であるか読み取りであるか部分書き込みであ
るか全書き込みであるかのデータを含むかどうかを指示
する。
SCUは、各CPUキャッシュの状態を監視し、それに
応じて状態ビットを調整することによりキャッシュの状
態を維持する。従って、キャッシュタグディレクトリは
、所与のメモリアクセストランザクションに対し要求を
発しているユニットとターゲットユニットとの両方のキ
ャッシュ状態を確認するための便利な手段をSCUに与
える。
応じて状態ビットを調整することによりキャッシュの状
態を維持する。従って、キャッシュタグディレクトリは
、所与のメモリアクセストランザクションに対し要求を
発しているユニットとターゲットユニットとの両方のキ
ャッシュ状態を確認するための便利な手段をSCUに与
える。
SCUは、メモリのブロックがCPUキャッシュ内に存
在するかどうかを判断するためにアドレスの比較を行な
うだけでよい。更に,アドレスされたブロックに対応す
るタグ状態を読み取ることにより、SCUは、ブロック
に存在するデータが無効であるか読み取りであるか部分
書き込みであるか完全書き込みであるかを迅速に判断す
ることができる。全てのメモリトランザクションは当然
ながらSCUを経て流れねばならないので、SCUのキ
ャッシュタグディレクトリは、各CPUの現在キャッシ
ュ状態を維持するためのフールプルーフ手段として働く
。この情報を用いると、SCUは、以下で詳細に述べる
ように、データの非一貫性状態を検出しそして修正でき
るようになる。
在するかどうかを判断するためにアドレスの比較を行な
うだけでよい。更に,アドレスされたブロックに対応す
るタグ状態を読み取ることにより、SCUは、ブロック
に存在するデータが無効であるか読み取りであるか部分
書き込みであるか完全書き込みであるかを迅速に判断す
ることができる。全てのメモリトランザクションは当然
ながらSCUを経て流れねばならないので、SCUのキ
ャッシュタグディレクトリは、各CPUの現在キャッシ
ュ状態を維持するためのフールプルーフ手段として働く
。この情報を用いると、SCUは、以下で詳細に述べる
ように、データの非一貫性状態を検出しそして修正でき
るようになる。
第4図には、本発明のキャッシュー貫性機構に基づいて
メモリアクセス要求を最初に処理するのに含まれる事象
シーケンスを示すフローチャートが示されている。この
手順は、SCU及びCPUを「無効』状態にセットする
ことによりこれらに関連したタグRAMを初期化するこ
とによって開始される。この初期化は、ステップ151
において行なわれる。次いで、ステップ152において
、CPUより発生されたメモリアクセス要求がそれに対
応するMユニットにおいて受け入れられる。次のステッ
プ153において、その要求が読み取り動作に対するも
のか書き込み動作に対するものであるかの判断がなされ
る。その要求が読み取りに対するものである場合には、
ステップl54がアクセスされ、その要求に関連したメ
モリアドレスがCPUキャッシュ内のブロック「ヒット
」に対応するものであるかどうかの判断がなされ、即ち
CPUチェックが行なわれて、メモリアドレスがキャッ
シュのメモリブロック内に配置されているかどうかの判
断がなされる。
メモリアクセス要求を最初に処理するのに含まれる事象
シーケンスを示すフローチャートが示されている。この
手順は、SCU及びCPUを「無効』状態にセットする
ことによりこれらに関連したタグRAMを初期化するこ
とによって開始される。この初期化は、ステップ151
において行なわれる。次いで、ステップ152において
、CPUより発生されたメモリアクセス要求がそれに対
応するMユニットにおいて受け入れられる。次のステッ
プ153において、その要求が読み取り動作に対するも
のか書き込み動作に対するものであるかの判断がなされ
る。その要求が読み取りに対するものである場合には、
ステップl54がアクセスされ、その要求に関連したメ
モリアドレスがCPUキャッシュ内のブロック「ヒット
」に対応するものであるかどうかの判断がなされ、即ち
CPUチェックが行なわれて、メモリアドレスがキャッ
シュのメモリブロック内に配置されているかどうかの判
断がなされる。
ブロック「ヒット」がある場合には、ステップ155が
アクセスされ、SCUの参照が必要とされないので、要
求が直接実行される。換言すれば、Mユニットは要求を
発しているボートに応答し、そのキャッシュ内からの要
求されたデータをそこに供給する。然し乍ら、ステップ
154の答えが否定である場合、即ちキャッシュ内にブ
ロック「ヒット」がない場合には、ステップ156がア
クセスされ、Mユニットは読み取りリフイル要求をSC
Uに発生し、メインメモリから要求された読み取りデー
タを得るように試みる。その後、ステップ157におい
て、SCUのタグRAMは、それらの状態が読み取りリ
フィル要求に対応する入力のための元の無効状態から読
み取り入力の状態へと変えられる。
アクセスされ、SCUの参照が必要とされないので、要
求が直接実行される。換言すれば、Mユニットは要求を
発しているボートに応答し、そのキャッシュ内からの要
求されたデータをそこに供給する。然し乍ら、ステップ
154の答えが否定である場合、即ちキャッシュ内にブ
ロック「ヒット」がない場合には、ステップ156がア
クセスされ、Mユニットは読み取りリフイル要求をSC
Uに発生し、メインメモリから要求された読み取りデー
タを得るように試みる。その後、ステップ157におい
て、SCUのタグRAMは、それらの状態が読み取りリ
フィル要求に対応する入力のための元の無効状態から読
み取り入力の状態へと変えられる。
ステップ157の終わりに、タグRAMの状態を無効入
力から読み取り入力へ変化させた事象は、メモリから必
要なデータをフェッチしてそれを要求を発しているCP
Uのキャッシュへ送るSCUの動作であることに注意さ
れたい。この時点で、SCUのキャッシュタグディレク
トリの対応する入力が読み取り入力を有するものとして
マークされる。その後、他のCPUがそのデータを参照
する場合には、CPUがそのデータを読み取りの目的で
のみそのキャッシュ内に保持することを確認することが
できる。この構成は、メモリ内の同じ位置が他のあるC
PUによって書き込まれるべき場合にそのキャッシュの
内容を無効にするためにCPUを後で指示する際に効果
的である。キャッシュタグの状態が重要になるのはこの
ような後の固定動作の場合である。
力から読み取り入力へ変化させた事象は、メモリから必
要なデータをフェッチしてそれを要求を発しているCP
Uのキャッシュへ送るSCUの動作であることに注意さ
れたい。この時点で、SCUのキャッシュタグディレク
トリの対応する入力が読み取り入力を有するものとして
マークされる。その後、他のCPUがそのデータを参照
する場合には、CPUがそのデータを読み取りの目的で
のみそのキャッシュ内に保持することを確認することが
できる。この構成は、メモリ内の同じ位置が他のあるC
PUによって書き込まれるべき場合にそのキャッシュの
内容を無効にするためにCPUを後で指示する際に効果
的である。キャッシュタグの状態が重要になるのはこの
ような後の固定動作の場合である。
ステップ153の判断が、処理されている要求が書き込
み要求であることを指示する場合には、ステップ158
に進み、アドレスされたメモリ位置がCPUキャッシュ
内に存在するかどうかのチェックが行なわれ、即ちキャ
ッシュにブロック「ヒット」があるかどうかの判断がな
される。このような「ヒットJがないことが分かると、
ステップ159がアクセスされる。
み要求であることを指示する場合には、ステップ158
に進み、アドレスされたメモリ位置がCPUキャッシュ
内に存在するかどうかのチェックが行なわれ、即ちキャ
ッシュにブロック「ヒット」があるかどうかの判断がな
される。このような「ヒットJがないことが分かると、
ステップ159がアクセスされる。
ステップ158において、CPUキャッシュ内にブロッ
ク「ヒット」があることが分かった場合には、ステップ
159がアクセスされ、そのブロックに対する対応書き
込みビットがセットされたかどうかのチェックが行なわ
れる。この質問に対する答えがイエスの場合には、SC
Uから既に書き込み許可を得ているブロックにMユニッ
トが書き込みすることが指示される。従って、SCUの
観点から、SCUの参照は必要とされず、CPUキャッ
シュのメモリブロックに書き込みすることによってメモ
リアクセス要求を実行することができる。然し乍ら、ス
テップ159においてキャッシュ内のブロック「ヒット
Jがその書き込みビットをセットしないことが分かった
場合には、CPUが読み取りの目的のみでメモリブロッ
クを既にフェッチしており、従って、そのブロックへの
書き込みが許可されていないことが指示される。
ク「ヒット」があることが分かった場合には、ステップ
159がアクセスされ、そのブロックに対する対応書き
込みビットがセットされたかどうかのチェックが行なわ
れる。この質問に対する答えがイエスの場合には、SC
Uから既に書き込み許可を得ているブロックにMユニッ
トが書き込みすることが指示される。従って、SCUの
観点から、SCUの参照は必要とされず、CPUキャッ
シュのメモリブロックに書き込みすることによってメモ
リアクセス要求を実行することができる。然し乍ら、ス
テップ159においてキャッシュ内のブロック「ヒット
Jがその書き込みビットをセットしないことが分かった
場合には、CPUが読み取りの目的のみでメモリブロッ
クを既にフェッチしており、従って、そのブロックへの
書き込みが許可されていないことが指示される。
この点において、Mユニットは、ステップ161でSC
Uに書き込みリフィル要求を発生する。
Uに書き込みリフィル要求を発生する。
ステップ162において、メインメモリへのアクセスの
後に、要求された書き込みデータがSCUから受け取ら
れる。SCUにとって、これは、要求を発しているCP
Uのキャッシュに返送されて記憶されるデータがそこに
書き込めることを意味する。その後、ステップ163に
おいて、CPUは、SCUから受け取ったデータの少な
くとも一部分の上部に新たなデータを書き込む。次いで
、ステップ164に達し、SCUタグRAMの状態が更
新されて、手前の読み取り入力から全書き込み入力へと
変換される。この点において、その前は読み取りブロッ
クのみであったキャッシュブロックがその状態を変化し
、ここでブロック内にデータが完全に書き込まれたこと
を指示する。既に読み取り許可されたデータブロックは
新たなデータが上に書き込まれているので,この書き込
まれたデータブロックが完全に有効であることを指示す
るようにSCUタグRAMの状態が調整される。
後に、要求された書き込みデータがSCUから受け取ら
れる。SCUにとって、これは、要求を発しているCP
Uのキャッシュに返送されて記憶されるデータがそこに
書き込めることを意味する。その後、ステップ163に
おいて、CPUは、SCUから受け取ったデータの少な
くとも一部分の上部に新たなデータを書き込む。次いで
、ステップ164に達し、SCUタグRAMの状態が更
新されて、手前の読み取り入力から全書き込み入力へと
変換される。この点において、その前は読み取りブロッ
クのみであったキャッシュブロックがその状態を変化し
、ここでブロック内にデータが完全に書き込まれたこと
を指示する。既に読み取り許可されたデータブロックは
新たなデータが上に書き込まれているので,この書き込
まれたデータブロックが完全に有効であることを指示す
るようにSCUタグRAMの状態が調整される。
Mユニットが書き込み要求を処理しておりそしてステッ
プ158における判断がキャッシュ内にブロック「ヒッ
ト」がないことを指示し、即ちブロック「ミス」である
ことを指示する場合には、ステップ165において、メ
モリに書き込むべきワードがロングワード整列されるか
どうかについての判断がなされる。ロングワード当たり
1つの有効ビットが与えられるのが好ましいので、ロン
グワードの識別は重要である。この構成によれば、Mユ
ニットが特定のバイトを書き込まねばならない場合に、
その特定のバイトを含むブロック全体をメインメモリか
らフエツチし、フエツチされたブロック内の1つ以上の
バイトを新たなデータバイトと交換しなければならない
。これは、Mユ二ットがメモリからのりフィルを行なう
ときに、メモリから全てのデータを得て、それをキャッ
シュに入れるからであり、全ブロックが有効であるから
、全ての有効ビットがセットされる。Mユニットがバイ
トを書き込むべき場合には、そのバイトを含むロングワ
ードが選択され、そのバイトの古い値の上に新たな値が
書き込まれる一方、全ての有効ビットがセット状態とし
て保持されて、全ブロックが有効状態に保たれる。整列
されたロングワードの形態でないもの、例えば、ロング
ワード境界に整列されないバイト又はロングワードをC
PUが書き込むべきときにこの逐次の手順をたどるもの
とする。
プ158における判断がキャッシュ内にブロック「ヒッ
ト」がないことを指示し、即ちブロック「ミス」である
ことを指示する場合には、ステップ165において、メ
モリに書き込むべきワードがロングワード整列されるか
どうかについての判断がなされる。ロングワード当たり
1つの有効ビットが与えられるのが好ましいので、ロン
グワードの識別は重要である。この構成によれば、Mユ
ニットが特定のバイトを書き込まねばならない場合に、
その特定のバイトを含むブロック全体をメインメモリか
らフエツチし、フエツチされたブロック内の1つ以上の
バイトを新たなデータバイトと交換しなければならない
。これは、Mユ二ットがメモリからのりフィルを行なう
ときに、メモリから全てのデータを得て、それをキャッ
シュに入れるからであり、全ブロックが有効であるから
、全ての有効ビットがセットされる。Mユニットがバイ
トを書き込むべき場合には、そのバイトを含むロングワ
ードが選択され、そのバイトの古い値の上に新たな値が
書き込まれる一方、全ての有効ビットがセット状態とし
て保持されて、全ブロックが有効状態に保たれる。整列
されたロングワードの形態でないもの、例えば、ロング
ワード境界に整列されないバイト又はロングワードをC
PUが書き込むべきときにこの逐次の手順をたどるもの
とする。
Mユニットがキャッシュミスを有するが、整列されたロ
ングワード又は多数の整列されたロングワードを書き込
んでいる場合には、メモリからデータを実際にフェッチ
する必要がない。むしろ、CPUは空ブロックという有
効なものでスタートすることができる。SCUは、キャ
ッシュ内の空位置でスタートし、ロングワードをその位
置に書き込み、そしてそのロングワードに対応する有効
ビットのみを発生時にセットする。これらの状態のもと
で、SCUは、ブロックを部分書き込みとして指定し、
これは,ブロック内の全てのロングワードが有効である
のではないことを意味する。
ングワード又は多数の整列されたロングワードを書き込
んでいる場合には、メモリからデータを実際にフェッチ
する必要がない。むしろ、CPUは空ブロックという有
効なものでスタートすることができる。SCUは、キャ
ッシュ内の空位置でスタートし、ロングワードをその位
置に書き込み、そしてそのロングワードに対応する有効
ビットのみを発生時にセットする。これらの状態のもと
で、SCUは、ブロックを部分書き込みとして指定し、
これは,ブロック内の全てのロングワードが有効である
のではないことを意味する。
書き込まれているデータの量が完全なロングワードの全
部ではない場合には、この機構が遮断し、システムは、
書き込みリフイル機構に進み、メインメモリから全ブロ
ックをリフイルする。実際の観点において、書き込みリ
フイル要求は、メモリから全ブロックをフエッチするこ
と、即ち非常に時間浪費な動作を必要とする。整列ロン
グワードの場合には、Mユニットは、要求されたデータ
がメインメモリから送られるのを待機する必要なくその
動作サイクルを続ける。従って、メモリ参照がメモリの
整列されたロングワードを含むときに最適な性能が得ら
れる。
部ではない場合には、この機構が遮断し、システムは、
書き込みリフイル機構に進み、メインメモリから全ブロ
ックをリフイルする。実際の観点において、書き込みリ
フイル要求は、メモリから全ブロックをフエッチするこ
と、即ち非常に時間浪費な動作を必要とする。整列ロン
グワードの場合には、Mユニットは、要求されたデータ
がメインメモリから送られるのを待機する必要なくその
動作サイクルを続ける。従って、メモリ参照がメモリの
整列されたロングワードを含むときに最適な性能が得ら
れる。
第4図を参照すれば、ステップ165のテストにおいて
、メモリ参照に1つ以上の整列されたロングワードが含
まれることが指示されると、Mユニットは、ステップ1
66において、ロングワード書き込み更新をSCUに送
る。次のステップ167において、Mユニットは新たデ
ータをそのキャッシュに直ちに書き込む。次いで、ステ
ップ168において、対応する単一の又は多数のロング
ワード有効ビットがセットされる。同時に、SCUタグ
RAMは、それらの状態が無効入力から部分書き込み入
力に変化されている。これは、全てのロングワードがそ
のブロック内で有効ではないことを指示する。
、メモリ参照に1つ以上の整列されたロングワードが含
まれることが指示されると、Mユニットは、ステップ1
66において、ロングワード書き込み更新をSCUに送
る。次のステップ167において、Mユニットは新たデ
ータをそのキャッシュに直ちに書き込む。次いで、ステ
ップ168において、対応する単一の又は多数のロング
ワード有効ビットがセットされる。同時に、SCUタグ
RAMは、それらの状態が無効入力から部分書き込み入
力に変化されている。これは、全てのロングワードがそ
のブロック内で有効ではないことを指示する。
ステップ165のテストにおいて、参照されているロン
グワードが整列されたワードでないことが指示された場
合に、ステップ169がアクセスされ、Mユニットはス
テップ160において書き込みリフイル要求をSCUに
発生する。要求されたデータがSCUによって返送され
ると、データはステップ170においてCPUキャッシ
ュに書き込まれる。その後に,ステップ171において
、メインメモリからSCUによって早期に返送された書
き込みデータの上に新たなデータが書き込まれる。書き
込みリフイル要求を処理する際に、SCUタグRAM状
態は、無効状態から完全書き込み状態に変えられる。S
CUタグRAMのこの更新は、ステップ172において
生じる。従って、たとえ全ブロックがSCUによってメ
インメモリから返送されてその後にキャッシュ内に部分
的にオーバーライトされたとしても、CPUキャッシュ
内のデータの完全なブロックはこの時点で有効である。
グワードが整列されたワードでないことが指示された場
合に、ステップ169がアクセスされ、Mユニットはス
テップ160において書き込みリフイル要求をSCUに
発生する。要求されたデータがSCUによって返送され
ると、データはステップ170においてCPUキャッシ
ュに書き込まれる。その後に,ステップ171において
、メインメモリからSCUによって早期に返送された書
き込みデータの上に新たなデータが書き込まれる。書き
込みリフイル要求を処理する際に、SCUタグRAM状
態は、無効状態から完全書き込み状態に変えられる。S
CUタグRAMのこの更新は、ステップ172において
生じる。従って、たとえ全ブロックがSCUによってメ
インメモリから返送されてその後にキャッシュ内に部分
的にオーバーライトされたとしても、CPUキャッシュ
内のデータの完全なブロックはこの時点で有効である。
メインメモリ自体については、読み取りリフィル要求と
書き込みリフイル要求との間に区別はないことに注意さ
れたい。タグRAMの状態が読み取り又は書き込み状態
のいずれかとして維持される場合にSCU段においてこ
の相違が生じ、これは、キャッシュの一貫性競合を決定
する上で重要である。第4図のフローチャートについて
与えられた上記の説明は、Mユニット内のキャッシュの
状態により決定された小象の基本的な流れ(読み取り/
書き込み、ブロック「ヒット」等)を定める。種々のキ
ャッシュ状態から生じる種々のオプションの各々では、
対応するコマンドがSCUに中継されて、これらコマン
ドの受け取りによりSCUタグRAMに対して行われる
動作が決定される。
書き込みリフイル要求との間に区別はないことに注意さ
れたい。タグRAMの状態が読み取り又は書き込み状態
のいずれかとして維持される場合にSCU段においてこ
の相違が生じ、これは、キャッシュの一貫性競合を決定
する上で重要である。第4図のフローチャートについて
与えられた上記の説明は、Mユニット内のキャッシュの
状態により決定された小象の基本的な流れ(読み取り/
書き込み、ブロック「ヒット」等)を定める。種々のキ
ャッシュ状態から生じる種々のオプションの各々では、
対応するコマンドがSCUに中継されて、これらコマン
ドの受け取りによりSCUタグRAMに対して行われる
動作が決定される。
好ましくは、SCUタグRAMの状態を指定するのに2
ビットコードが使用される。より詳細には、roOJの
コードは「無効』状態を表わし、r01Jのコードは「
読み取り」状態を表わし、rlOJのコードは「部分書
き込み」状態を表わし、モして「11」のコードは「完
全書き込み」状態を表わす。タグ状態を指定する2ビッ
トフィールドにおいて、値「l」の指定は対応するビッ
トの「書き込み」特性を表わす。
ビットコードが使用される。より詳細には、roOJの
コードは「無効』状態を表わし、r01Jのコードは「
読み取り」状態を表わし、rlOJのコードは「部分書
き込み」状態を表わし、モして「11」のコードは「完
全書き込み」状態を表わす。タグ状態を指定する2ビッ
トフィールドにおいて、値「l」の指定は対応するビッ
トの「書き込み」特性を表わす。
部分書き込み動作は、同時処理ユニット間のデータの転
送に使用されたときには、2つのメモリサイクルを含み
、その1つは、SCUが指定のデータを対応するメモリ
位置に書き込むためのものであり、そして別のサイクル
は、ターゲットプロセッサへ中継されるべきメモリ内の
同じ位置から書き込まれたデータをその後に読み出すた
めのものである。これに対し、完全書き込み動作は、単
一のメモリサイクルしか必要としない。というのは、メ
モリに書き込まれるべきデータは、夕一ゲットプロセッ
サにその後に中継されるべき全く同じデータだからであ
る。従って、SCUは、書き込み動作を介してメモリに
データを記憶しそして読み取り動作によってそれを検索
する必要がなく、むしろ、 「書き込みバス」動作と称
するものは、SCUがメモリへのデータの書き込みを開
始しそして同じサイクルにおいて同じデータをターゲッ
トプロセッサへ中継するように使用される。
送に使用されたときには、2つのメモリサイクルを含み
、その1つは、SCUが指定のデータを対応するメモリ
位置に書き込むためのものであり、そして別のサイクル
は、ターゲットプロセッサへ中継されるべきメモリ内の
同じ位置から書き込まれたデータをその後に読み出すた
めのものである。これに対し、完全書き込み動作は、単
一のメモリサイクルしか必要としない。というのは、メ
モリに書き込まれるべきデータは、夕一ゲットプロセッ
サにその後に中継されるべき全く同じデータだからであ
る。従って、SCUは、書き込み動作を介してメモリに
データを記憶しそして読み取り動作によってそれを検索
する必要がなく、むしろ、 「書き込みバス」動作と称
するものは、SCUがメモリへのデータの書き込みを開
始しそして同じサイクルにおいて同じデータをターゲッ
トプロセッサへ中継するように使用される。
従って、メモリアクセス要求は、全ての書き込みが部分
書き込みの種類のものであると考えることにより処理さ
れるが、部分書き込み動作と完全書き込み動作との区別
により重要なメモリアクセス要求を保持することができ
る。例えば、1つのプロセッサの動作により、そのキャ
ッシュ内の完全書き込み状態のデータ又は部分書き込み
状態のデータが別のプロセッサによって要求される場合
を考える。ターゲットCPU内のデータが部分書き込み
である場合には、ターゲットCPU内のデータが全ブロ
ックとして完全に有効ではなく、SCUは、そのブロッ
ク内のどのロングワードが有効であるかを判断する状態
にない。然し、リフィル要求を発しているCPUは、完
全に有効なブロックを有していなければならないので、
SCUは、ターゲットCPUがデータブロックをメモリ
に書き込みそしてメモリからデータをフェッチして第1
プロセッサのりフィル要求を満足するように確保しなけ
ればならない。このシーケンスは、データが部分的に書
き込まれる全ての場合に生じなければならないが、デー
タが完全に書き込まれる場合には、メモリ内のデータの
記憶をバイパスすることができる。というのは、ターゲ
ットCPU内の全データブロックが有効であり、SCU
によって直接中継されて、リフィル要求を満たすことが
できるからである。従って、書き込みパス動作のみが要
求され、1つのメモリアクセスサイクルの実行が必要と
されるだけである。上記説明は、2プロセッサキャッシ
ュ内のMユニットによって開始されたメモリアクセス要
求に適用される。然し乍ら、個々のプロセッサに関連し
たキャッシュは典型的にライトバック形式のものである
から、プロセッサは、メモリ内の対応位置に書き込むこ
となくそのキャッシュ内で更新されたデータを含むこと
が常に考えられる。マルチプロセッサシステムにおいて
、特に、I/O装置が公平にアクティブである場合には
、メモリデータに対するシステムユニットからの要求が
時々生じ、その最も最新のバージョンはメモリ内にはな
いがあるCPUキャッシュ内に存在する。これらの状態
のもとでは、SCUは、要求を発しているシステムユニ
ットにデータを中継するために、キャッシュに最も最新
のデータバージョンを含むCPUがデータを適時に対応
メモリ位置に書き込むように確保しなければならない。
書き込みの種類のものであると考えることにより処理さ
れるが、部分書き込み動作と完全書き込み動作との区別
により重要なメモリアクセス要求を保持することができ
る。例えば、1つのプロセッサの動作により、そのキャ
ッシュ内の完全書き込み状態のデータ又は部分書き込み
状態のデータが別のプロセッサによって要求される場合
を考える。ターゲットCPU内のデータが部分書き込み
である場合には、ターゲットCPU内のデータが全ブロ
ックとして完全に有効ではなく、SCUは、そのブロッ
ク内のどのロングワードが有効であるかを判断する状態
にない。然し、リフィル要求を発しているCPUは、完
全に有効なブロックを有していなければならないので、
SCUは、ターゲットCPUがデータブロックをメモリ
に書き込みそしてメモリからデータをフェッチして第1
プロセッサのりフィル要求を満足するように確保しなけ
ればならない。このシーケンスは、データが部分的に書
き込まれる全ての場合に生じなければならないが、デー
タが完全に書き込まれる場合には、メモリ内のデータの
記憶をバイパスすることができる。というのは、ターゲ
ットCPU内の全データブロックが有効であり、SCU
によって直接中継されて、リフィル要求を満たすことが
できるからである。従って、書き込みパス動作のみが要
求され、1つのメモリアクセスサイクルの実行が必要と
されるだけである。上記説明は、2プロセッサキャッシ
ュ内のMユニットによって開始されたメモリアクセス要
求に適用される。然し乍ら、個々のプロセッサに関連し
たキャッシュは典型的にライトバック形式のものである
から、プロセッサは、メモリ内の対応位置に書き込むこ
となくそのキャッシュ内で更新されたデータを含むこと
が常に考えられる。マルチプロセッサシステムにおいて
、特に、I/O装置が公平にアクティブである場合には
、メモリデータに対するシステムユニットからの要求が
時々生じ、その最も最新のバージョンはメモリ内にはな
いがあるCPUキャッシュ内に存在する。これらの状態
のもとでは、SCUは、要求を発しているシステムユニ
ットにデータを中継するために、キャッシュに最も最新
のデータバージョンを含むCPUがデータを適時に対応
メモリ位置に書き込むように確保しなければならない。
データの非一貫性又はキャッシュの競合を検出して固定
する際に、典型的に、SCUから個々のCPUのMユニ
ットへ中継される例示的なメモリトランザクションコマ
ンドのリスト及び説明について以下に示す。これらのコ
マンドは、SCUとMユニットとの間の通信信号と共に
中継されるコマンドフィールド内の特定のビットコード
によって指定される。好ましくは、コマンドフィールド
は、4ビットコードの形態で実施され、少なくとも16
個の種々のメモリトランザクションコマンドが定められ
る。
する際に、典型的に、SCUから個々のCPUのMユニ
ットへ中継される例示的なメモリトランザクションコマ
ンドのリスト及び説明について以下に示す。これらのコ
マンドは、SCUとMユニットとの間の通信信号と共に
中継されるコマンドフィールド内の特定のビットコード
によって指定される。好ましくは、コマンドフィールド
は、4ビットコードの形態で実施され、少なくとも16
個の種々のメモリトランザクションコマンドが定められ
る。
ゲットデータ書き込みコマンド
これは、アドレスされたCPUのMユニットがそのキャ
ッシュ内に存在するデータをシステムメモリ内の対応位
置に中継する一方、そのキャッシュの状態を書き込み状
態に保持することを要求するSCUからのコマンドであ
る。
ッシュ内に存在するデータをシステムメモリ内の対応位
置に中継する一方、そのキャッシュの状態を書き込み状
態に保持することを要求するSCUからのコマンドであ
る。
ゲットデータ読み取りコマンド
これは、CPUキャッシュ内のデータが書き込み形態で
存在し且っ又読み取りの目的でのみ別のCPUによって
要求されるときにSCUによってMユニットに中継され
るコマンドである。この場合、SCUは、指定のデータ
ブロックをそのキャッシュからメモリに書き込むように
第ICPUに要求を出して、その要求を発しているCP
Uがそれに読み取りアクセスを行なえるようにする。
存在し且っ又読み取りの目的でのみ別のCPUによって
要求されるときにSCUによってMユニットに中継され
るコマンドである。この場合、SCUは、指定のデータ
ブロックをそのキャッシュからメモリに書き込むように
第ICPUに要求を出して、その要求を発しているCP
Uがそれに読み取りアクセスを行なえるようにする。
同時に、第1のCP[Jは、そのキャッシュ内のデータ
を読み取り状態に保持することができる。というのは,
要求を発しているプロセッサがそれに書き込みを行なう
ことによってデータを無効状態にするおそれがないから
である。その結果、元々そのキャッシュに書き込み形態
でデータを所有している第ICPUは、ここでSCUが
データを読み取り形態のみで保持するように強制される
。従って.CPUがこのブロックデー夕を書き込む必要
がある場合には、これを行なうためにSCUからの許可
を再び得なければならない。これらのコマンドを実行す
る際に、SCUは、適当なキャッシュタグを参魚するこ
とによってCPUキャッシュタグディレクトリのコピー
を探し、メモリアクセス要求に含まれたCPUキャッシ
ュが正確な状態(無効、読み取り、部分書き込み又は完
全書き込み)であるかどうかを判断するだけでよい。
を読み取り状態に保持することができる。というのは,
要求を発しているプロセッサがそれに書き込みを行なう
ことによってデータを無効状態にするおそれがないから
である。その結果、元々そのキャッシュに書き込み形態
でデータを所有している第ICPUは、ここでSCUが
データを読み取り形態のみで保持するように強制される
。従って.CPUがこのブロックデー夕を書き込む必要
がある場合には、これを行なうためにSCUからの許可
を再び得なければならない。これらのコマンドを実行す
る際に、SCUは、適当なキャッシュタグを参魚するこ
とによってCPUキャッシュタグディレクトリのコピー
を探し、メモリアクセス要求に含まれたCPUキャッシ
ュが正確な状態(無効、読み取り、部分書き込み又は完
全書き込み)であるかどうかを判断するだけでよい。
ここに示す実施例では、そのときCPUOに対して無効
状態を有する特定のメモリブロックについて、SCUが
例えばCPUOからの読み取りリフイルコマン要求を受
け取るときに、SCUは、そのキャッシュタグディレク
トリ内でタグの探索を行ない、アドレスされたブロック
が例えば別のプロセッサCPUIのキャッシュにおいて
完全書き込みであることを判断する。従って、SCUは
、ゲットデータ読み取りコマンドをCPUIに中継し、
これにより、CPUIは要求されたデータをデータライ
トバック動作によってSCUに中継するようにする。こ
れと同時に、SCUは、CPUlのキャッシュのデータ
ブロックの状態を読み取り状態に変え、これにより、こ
れがそのキャッシュに書き込まれないようにする。
状態を有する特定のメモリブロックについて、SCUが
例えばCPUOからの読み取りリフイルコマン要求を受
け取るときに、SCUは、そのキャッシュタグディレク
トリ内でタグの探索を行ない、アドレスされたブロック
が例えば別のプロセッサCPUIのキャッシュにおいて
完全書き込みであることを判断する。従って、SCUは
、ゲットデータ読み取りコマンドをCPUIに中継し、
これにより、CPUIは要求されたデータをデータライ
トバック動作によってSCUに中継するようにする。こ
れと同時に、SCUは、CPUlのキャッシュのデータ
ブロックの状態を読み取り状態に変え、これにより、こ
れがそのキャッシュに書き込まれないようにする。
CPUIからの書き込んで戻されるデータは、CPUI
内のデータの元の状態が完全書き込みであったことを考
慮すれば、書き込みパス動作によってメモリを経てその
要求を発しているプロセッサCPUOに中継される。然
し乍ら、データが元々部分書き込み形態であった場合に
は、データをメモリに書き込みそしてそれを要求を発し
ているCPUに転送するのに1つの完全な書き込み/読
み取りサイクルが含まれねばならない(上記で詳細に述
べたように)。その後、SCUは、CPUOのキャッシ
ュ内のデータの状態を元の無効状態から読み取り状態へ
変更する。その結果、CPUOからの読み取りリフィル
要求が満足されると、両方のプロセッサCPUO及びC
P U lのキャッシュ状態が読み取り状態にセット
される。
内のデータの元の状態が完全書き込みであったことを考
慮すれば、書き込みパス動作によってメモリを経てその
要求を発しているプロセッサCPUOに中継される。然
し乍ら、データが元々部分書き込み形態であった場合に
は、データをメモリに書き込みそしてそれを要求を発し
ているCPUに転送するのに1つの完全な書き込み/読
み取りサイクルが含まれねばならない(上記で詳細に述
べたように)。その後、SCUは、CPUOのキャッシ
ュ内のデータの状態を元の無効状態から読み取り状態へ
変更する。その結果、CPUOからの読み取りリフィル
要求が満足されると、両方のプロセッサCPUO及びC
P U lのキャッシュ状態が読み取り状態にセット
される。
ゲットデータ書き込みコマンド
このコマンドは、タグルックアップサイクルに続いてS
CUによりCPUI内で完全書き込み状態にあると決定
されたcpuoからの書き込みリフイル要求によって最
も良く示される。SCUは、CPUIにコマンド(より
詐細には、ゲットデータ無効コマンド)を発生し、CP
UIにそのキャッシュからSCUにデータを返送するこ
とを尋ねると同時に、CPUIキャッシュの状態を無効
状態にセットする。その後に、データは、書き込みバス
コマンドによりCPUIOに返送される。
CUによりCPUI内で完全書き込み状態にあると決定
されたcpuoからの書き込みリフイル要求によって最
も良く示される。SCUは、CPUIにコマンド(より
詐細には、ゲットデータ無効コマンド)を発生し、CP
UIにそのキャッシュからSCUにデータを返送するこ
とを尋ねると同時に、CPUIキャッシュの状態を無効
状態にセットする。その後に、データは、書き込みバス
コマンドによりCPUIOに返送される。
この場合も、CPUIのデータが部分書き込み形態であ
った場合にはデータの転送に含まれるメモリサイクルが
書き込み一読み取りサイクルとなる。
った場合にはデータの転送に含まれるメモリサイクルが
書き込み一読み取りサイクルとなる。
データトランザクションの終わりに、SCUはCPUO
キャッシュの状態を完全書き込みに変える。
キャッシュの状態を完全書き込みに変える。
I/Oユニットからのデータ要求を含むゲットデータ書
き込みコマンドの場合には、上記手順が木質的に適用さ
れる。然し乍ら、要求は、SCUの直接メモリアクセス
(DMA)読み取り要求の形態でI/Oユニットにより
開始される。この場合、SCUは、ターゲットプロセッ
サCPUIがそのキャッシュ内からのデータを書き戻し
て、その後にSCUがメモリを経てその要求を発してい
るI/Oユニットへそれを中継できるように指示する。
き込みコマンドの場合には、上記手順が木質的に適用さ
れる。然し乍ら、要求は、SCUの直接メモリアクセス
(DMA)読み取り要求の形態でI/Oユニットにより
開始される。この場合、SCUは、ターゲットプロセッ
サCPUIがそのキャッシュ内からのデータを書き戻し
て、その後にSCUがメモリを経てその要求を発してい
るI/Oユニットへそれを中継できるように指示する。
然し乍ら、この場合、CPUIのキャッシュ状態は、S
CUによって変更されない。というのは、要求を発する
ことによってSCUから受け取ったデータを操作するI
/Oユニットによってデータ非一貫性の問題が生じない
からである。
CUによって変更されない。というのは、要求を発する
ことによってSCUから受け取ったデータを操作するI
/Oユニットによってデータ非一貫性の問題が生じない
からである。
又、キャッシュの考え方はI/Oユニットに適用されな
いので、SCUがその要求を発しているユ 応答を表
わしており、これは、要求されたデータニットのキャッ
シュ状態を監視又は変更する必要 の転送準備ができ
たときにターゲットCPUに中がない。
継される。
いので、SCUがその要求を発しているユ 応答を表
わしており、これは、要求されたデータニットのキャッ
シュ状態を監視又は変更する必要 の転送準備ができ
たときにターゲットCPUに中がない。
継される。
リターンデータ読み取りコマンド
このコマンドは、読み取りリフイル動作によって要求さ
れて中継準備できたべきデータをSCUが有するときに
SCUがMユニットに対して行なう応答を表わしている
。読み取りリフイル動作が完了すると、SCUは、ター
ゲットプロセッサのキャッシュを読み取り状態に入れる
。然し乍ら、ターゲットプロセッサにおけるデータの元
の状態が部分書き込みである場合には、プロセッサキャ
ッシュの状態がリターンデータ読み取りコマンドの後に
常に無効状態に入れられ、ブロック内の部分的に無効の
データに対するその後の部分的な書き込み又は読み取り
からキャッシュ競合が生じるおそれを除外する。
れて中継準備できたべきデータをSCUが有するときに
SCUがMユニットに対して行なう応答を表わしている
。読み取りリフイル動作が完了すると、SCUは、ター
ゲットプロセッサのキャッシュを読み取り状態に入れる
。然し乍ら、ターゲットプロセッサにおけるデータの元
の状態が部分書き込みである場合には、プロセッサキャ
ッシュの状態がリターンデータ読み取りコマンドの後に
常に無効状態に入れられ、ブロック内の部分的に無効の
データに対するその後の部分的な書き込み又は読み取り
からキャッシュ競合が生じるおそれを除外する。
リターンデータ書き込みコマンド
このコマンドは、上記コマンドに類似しており、書き込
みリフィルコマンドに対するSCUの書き込みOKコマ
ンド このコマンドは、プロセッサCPUIがそのキャシュに
読み取り状態でデータブロックを有すると共に、そのデ
ータブロックに書き込みを行なおうとする状態によって
最も良く説明される。これは、SCUがこのように実行
するための許可を得なければならず、従って、書き込み
リフィル要求をSCUに発生しなければならない。SC
Uは、そのタグルックアップを実行するときに、CPU
lが既に読み取り許可を得ていることを通知し、従って
、書き込みリフイル要求が書き込み許可を得る目的であ
ると解釈する。それに応答して、SCUは、即時のキャ
ッシュ一貫性競合があるかどうかを判断するためのチェ
ックを行なう。このような競合がない場合には、メモリ
サイクルが実行されず、SCUは、書き込みOKコマン
ドをCPUに送って、ブロックに書き込む許可を得たこ
とを指示する。一貫性の競合がある場合には、その競合
が最初に分析され、次いで、書き込みOKコマンドがC
PUIに中継される。
みリフィルコマンドに対するSCUの書き込みOKコマ
ンド このコマンドは、プロセッサCPUIがそのキャシュに
読み取り状態でデータブロックを有すると共に、そのデ
ータブロックに書き込みを行なおうとする状態によって
最も良く説明される。これは、SCUがこのように実行
するための許可を得なければならず、従って、書き込み
リフィル要求をSCUに発生しなければならない。SC
Uは、そのタグルックアップを実行するときに、CPU
lが既に読み取り許可を得ていることを通知し、従って
、書き込みリフイル要求が書き込み許可を得る目的であ
ると解釈する。それに応答して、SCUは、即時のキャ
ッシュ一貫性競合があるかどうかを判断するためのチェ
ックを行なう。このような競合がない場合には、メモリ
サイクルが実行されず、SCUは、書き込みOKコマン
ドをCPUに送って、ブロックに書き込む許可を得たこ
とを指示する。一貫性の競合がある場合には、その競合
が最初に分析され、次いで、書き込みOKコマンドがC
PUIに中継される。
無効化読み取りブロックコマンド
このコマンドは、CPUIが読み取り状態のデータブロ
ックを有しそしてSCUがcpuoからの書き込みリフ
ィル要求を受け取りそしてこのCPUIがそのデータを
無効状態で有している場合を考慮することによって最も
良く説明される。
ックを有しそしてSCUがcpuoからの書き込みリフ
ィル要求を受け取りそしてこのCPUIがそのデータを
無効状態で有している場合を考慮することによって最も
良く説明される。
タグルックアップを実行することによってこの状態を判
断すると、SCUは、そのブロックの状態を読み取りか
ら無効に変更することを必要とするコマンドをCPUI
に送信する。これは、要求を発しているCPUOがブロ
ックに書き込みを行なうと、CPUIのキャッシュ内に
ある対応するデータがストールされそして無効にされる
からである。その後、SCUは、要求されたデータをメ
モリから検索し、CPUOの書き込みリフィルコマンド
を満足し、又、CPUOキャッシュの状態を完全書き込
み状態に変更する。
断すると、SCUは、そのブロックの状態を読み取りか
ら無効に変更することを必要とするコマンドをCPUI
に送信する。これは、要求を発しているCPUOがブロ
ックに書き込みを行なうと、CPUIのキャッシュ内に
ある対応するデータがストールされそして無効にされる
からである。その後、SCUは、要求されたデータをメ
モリから検索し、CPUOの書き込みリフィルコマンド
を満足し、又、CPUOキャッシュの状態を完全書き込
み状態に変更する。
無効化書き込みブロックコマンド
これは、例えば、CPUIのようなプロセッサがデータ
ブロックを完全書き込み状態で有しそしてSCUがその
後にメモリの完全ブロック(64バイト)のDMA書き
込みをI/Oユニットから受け取る場合について考慮す
ることにより説明される。このような要求が満足される
と、CPUキャッシュ内の対応するブロックがストール
状態にされ、従って、SCUは、その書き込みブロック
を無効化するコマンドをC,PUIに中継する。
ブロックを完全書き込み状態で有しそしてSCUがその
後にメモリの完全ブロック(64バイト)のDMA書き
込みをI/Oユニットから受け取る場合について考慮す
ることにより説明される。このような要求が満足される
と、CPUキャッシュ内の対応するブロックがストール
状態にされ、従って、SCUは、その書き込みブロック
を無効化するコマンドをC,PUIに中継する。
ゲットデータオペレーションを必要とするメモリアクセ
ストランザクションの全ての場合に、SCUは、ゲット
データコマンドをターゲットプロセッサのMユニットに
最初に中継するが、SCUは、この点で必要なデータ路
をリザーブするようにして進行しない。そうではなくて
、必要なリソースのリザーブは、要求データの転送準O
iifができたことを指示するデータレディコマンドを
ターゲットMユニットが返送するまで延期される。この
信号に応答して、SCUは、送゛信データ信号を中継し
、これはターゲットMユニットからのデータのライトバ
ックを開始する。同時に、SCUは、それに関連した書
き込み要求を中継することによってメモリサイクルを開
始する。この構成は、アクセス要求の開始に続いてメモ
リアクセス動作に実際に至るに必要な時間中にSCU、
メモリ及びデータ路リソースが不必要に結合されるのを
なくす。
ストランザクションの全ての場合に、SCUは、ゲット
データコマンドをターゲットプロセッサのMユニットに
最初に中継するが、SCUは、この点で必要なデータ路
をリザーブするようにして進行しない。そうではなくて
、必要なリソースのリザーブは、要求データの転送準O
iifができたことを指示するデータレディコマンドを
ターゲットMユニットが返送するまで延期される。この
信号に応答して、SCUは、送゛信データ信号を中継し
、これはターゲットMユニットからのデータのライトバ
ックを開始する。同時に、SCUは、それに関連した書
き込み要求を中継することによってメモリサイクルを開
始する。この構成は、アクセス要求の開始に続いてメモ
リアクセス動作に実際に至るに必要な時間中にSCU、
メモリ及びデータ路リソースが不必要に結合されるのを
なくす。
又、リフィル要求を受け取るたびに、SCUはメモリサ
イクルを開始し、タグルックアップ動作を進める。一貫
性の競合が検出されない場合には、確認信号がメモリに
送られ、メモリサイクルを進めることが要求される。然
し乍ら、−i性の競合が検出された場合には、SCUが
アボート信号を中継し、これはメモリが既に開始された
メモリサイクルをアボートすることを必要とし、その後
、もちろん、要求された固定コマンド(上記した稚々の
コマンドの1つ、例えば、書き込み一読み取り、又は書
き込みバスコマンド)が開始されて競合が修正される。
イクルを開始し、タグルックアップ動作を進める。一貫
性の競合が検出されない場合には、確認信号がメモリに
送られ、メモリサイクルを進めることが要求される。然
し乍ら、−i性の競合が検出された場合には、SCUが
アボート信号を中継し、これはメモリが既に開始された
メモリサイクルをアボートすることを必要とし、その後
、もちろん、要求された固定コマンド(上記した稚々の
コマンドの1つ、例えば、書き込み一読み取り、又は書
き込みバスコマンド)が開始されて競合が修正される。
第5図は、本発明の好ましい実施例によりSCUによっ
てデータの非一貫性状態又はキャッシュの競合を検出及
び修正する際に含まれる機能ブロックを示すブロック図
である。図示されたように、キャッシュ競合検出構成体
200は、システムユニットの1つによって発生された
複数の要求を受け入れるための仲裁論理回路202を備
えており、所定のハイアラーキアルゴリズムに基づいて
選択された要求をこの回路から発生する。要求を発して
いるポートによって発生されたメモリアクセス要求は、
要求と、それに関連したコマンド及びアドレスとを備え
ており、これらは後に対応SCUボートにラッチされる
。入ってくる要求の仲裁と並列に、これらの要求に関連
したアドレスがアドレスバッファ204のグループに受
け入れられ、その出力はマルチプレクサ206に送られ
る。
てデータの非一貫性状態又はキャッシュの競合を検出及
び修正する際に含まれる機能ブロックを示すブロック図
である。図示されたように、キャッシュ競合検出構成体
200は、システムユニットの1つによって発生された
複数の要求を受け入れるための仲裁論理回路202を備
えており、所定のハイアラーキアルゴリズムに基づいて
選択された要求をこの回路から発生する。要求を発して
いるポートによって発生されたメモリアクセス要求は、
要求と、それに関連したコマンド及びアドレスとを備え
ており、これらは後に対応SCUボートにラッチされる
。入ってくる要求の仲裁と並列に、これらの要求に関連
したアドレスがアドレスバッファ204のグループに受
け入れられ、その出力はマルチプレクサ206に送られ
る。
仲裁論理回路202からの仲裁された要求は、それ自体
を5ビットインデックスの形態で表わし、これは、マル
チプレクサ206の選択入力とじて用いられ、選択され
た要求に対応するアドレスを発生する。入ってくる要求
に関連したコマンドは、コマンドバッファ208のグル
ープに受け入れられ、その出力はコマンドマルチプレク
サ210へ送られ、該マルチプレクサは、選択された要
求について定められた5ビットインデックスをその選択
入力に受け取る。マルチプレクサ206によって選択さ
れたアドレスは、■組のRAM 2 0 7へ送られ、
これは、選択されたアドレスに対応するメインメモリの
特定のユニット、セグメント及びバンクを識別する信号
を発生する。
を5ビットインデックスの形態で表わし、これは、マル
チプレクサ206の選択入力とじて用いられ、選択され
た要求に対応するアドレスを発生する。入ってくる要求
に関連したコマンドは、コマンドバッファ208のグル
ープに受け入れられ、その出力はコマンドマルチプレク
サ210へ送られ、該マルチプレクサは、選択された要
求について定められた5ビットインデックスをその選択
入力に受け取る。マルチプレクサ206によって選択さ
れたアドレスは、■組のRAM 2 0 7へ送られ、
これは、選択されたアドレスに対応するメインメモリの
特定のユニット、セグメント及びバンクを識別する信号
を発生する。
RAM 2 0 7、仲裁論理回路202及びコマンド
マルチプレクサ210の出力は、リソース要求論理モジ
ュール212へ送られ、該モジュールは、仲裁された要
求を実行するのに必要とされる全てのリソースを定める
出力にリソース要求ベクトルRRを発生するために種々
の受け入れられる要求とそれに付隨するコマンド及びア
ドレスのリストを記憶するテーブルの形態で実施される
。
マルチプレクサ210の出力は、リソース要求論理モジ
ュール212へ送られ、該モジュールは、仲裁された要
求を実行するのに必要とされる全てのリソースを定める
出力にリソース要求ベクトルRRを発生するために種々
の受け入れられる要求とそれに付隨するコマンド及びア
ドレスのリストを記憶するテーブルの形態で実施される
。
コマンドバッファ208及びアドレスバッフア204は
、SCUがこれらの信号に作用する準備ができるまでこ
れらの信号をバッファする手段として働く。リソース要
求ベクトルRRは、仲裁された要求を実行するのに必要
な特定のリソースを各々のビットに対応するように定め
る28ビット信号の形態であるのが好ましい。このベク
トルRRは、リソースチェック論理回路214に送られ
、該論理回路は、リソース使用可能モジュール216か
らの入力も受け入れ、このモジュールは、所与の時間に
使用できるリソースを表わす出力を発生するためにシス
テムリソースを本質的に追跡する。
、SCUがこれらの信号に作用する準備ができるまでこ
れらの信号をバッファする手段として働く。リソース要
求ベクトルRRは、仲裁された要求を実行するのに必要
な特定のリソースを各々のビットに対応するように定め
る28ビット信号の形態であるのが好ましい。このベク
トルRRは、リソースチェック論理回路214に送られ
、該論理回路は、リソース使用可能モジュール216か
らの入力も受け入れ、このモジュールは、所与の時間に
使用できるリソースを表わす出力を発生するためにシス
テムリソースを本質的に追跡する。
リソースチェック論理回路は、RRベクトルをRAベク
トルと比較して、必要なリソースが使用可能なリソース
のサブセットを形成するかどうかを判断する。全ての必
要なリソースが実際に使用可能であることが分かった場
合には、リソースチェック論理回路214が信号を発生
し、これは始動論理回路214へ送られ、該回路は、次
いでメモリサイクルをスタートするための信号を発生す
る。然し乍ら、全ての必要なリソースがそのとき使用で
きないことが分かった場合には、信号が仲裁論理モジュ
ール202へ返送され、仲裁のために新たな要求の選択
を開始する。この信号(第5図にl B + で示す)
は、入ってくる要求のプールに非リザーブ要求を戻して
次の仲裁で考慮できるようにすべきであることを仲裁論
理回路に指示する。
トルと比較して、必要なリソースが使用可能なリソース
のサブセットを形成するかどうかを判断する。全ての必
要なリソースが実際に使用可能であることが分かった場
合には、リソースチェック論理回路214が信号を発生
し、これは始動論理回路214へ送られ、該回路は、次
いでメモリサイクルをスタートするための信号を発生す
る。然し乍ら、全ての必要なリソースがそのとき使用で
きないことが分かった場合には、信号が仲裁論理モジュ
ール202へ返送され、仲裁のために新たな要求の選択
を開始する。この信号(第5図にl B + で示す)
は、入ってくる要求のプールに非リザーブ要求を戻して
次の仲裁で考慮できるようにすべきであることを仲裁論
理回路に指示する。
第5図において、要求に対する必要なリソースが使用可
能であると分かった場合には、始動論理回路218がメ
モリのアドレスされた部分の状態を確認するためにSC
Uによって使用されるルックアップサイクルの開始動作
を始める。より詐細には、選択された要求に関連した情
報が始動論理回路218によってルックアップ待ち行列
220内に入れられ、この待ち行列220は、好ましい
実施例によれば、一度に4つの別々の入力を記憶するこ
とができる。ルックアップ待ち行列は、仲裁論理回路2
02及びリソースチェック論理回路214が、各々、仲
裁要求を選択しそしてlサイクル当たり1つのトランザ
クションという割合でリソースチェック比較を実行でき
ることから必要とされる。然し乍ら、SCUによるルッ
クアップ動作は、2サイクルの実行を必要とする。従っ
て、要求の選択とルックアップ動作との間の対応を維持
することが必要となる。ルックアップ待ち行列220は
、この機能を与える。
能であると分かった場合には、始動論理回路218がメ
モリのアドレスされた部分の状態を確認するためにSC
Uによって使用されるルックアップサイクルの開始動作
を始める。より詐細には、選択された要求に関連した情
報が始動論理回路218によってルックアップ待ち行列
220内に入れられ、この待ち行列220は、好ましい
実施例によれば、一度に4つの別々の入力を記憶するこ
とができる。ルックアップ待ち行列は、仲裁論理回路2
02及びリソースチェック論理回路214が、各々、仲
裁要求を選択しそしてlサイクル当たり1つのトランザ
クションという割合でリソースチェック比較を実行でき
ることから必要とされる。然し乍ら、SCUによるルッ
クアップ動作は、2サイクルの実行を必要とする。従っ
て、要求の選択とルックアップ動作との間の対応を維持
することが必要となる。ルックアップ待ち行列220は
、この機能を与える。
選択された要求に対する必要なリソースが使用できずそ
れらの要求を仲裁論理回路202へ返送させることがリ
ソースチェック論理回路214により決定されると、そ
れらの返送される要求は、対応するリソースが使用でき
ないために既に返送された要求の分離リザーブリストに
配置される。
れらの要求を仲裁論理回路202へ返送させることがリ
ソースチェック論理回路214により決定されると、そ
れらの返送される要求は、対応するリソースが使用でき
ないために既に返送された要求の分離リザーブリストに
配置される。
これと同時に、リザーブリストに入れられた要求は、そ
れらに対してリザーブされた使用不能なリソースを有す
る。ベクトルのリソース発生を実行すると共にリザーブ
リストに拒絶された要求を配置するための例示的な構成
体が、参考としてここに取り上げる前記フリン氏等の「
マルチプロセッサシステムにおいてシステム制御ユニッ
トを用いて通信要求を仲裁する方法及び手段」と題する
米国特許出願に開示されている。
れらに対してリザーブされた使用不能なリソースを有す
る。ベクトルのリソース発生を実行すると共にリザーブ
リストに拒絶された要求を配置するための例示的な構成
体が、参考としてここに取り上げる前記フリン氏等の「
マルチプロセッサシステムにおいてシステム制御ユニッ
トを用いて通信要求を仲裁する方法及び手段」と題する
米国特許出願に開示されている。
選択された要求に対してルックアップ待ち行列220に
ロードされる情報は、選択されたコマンドに対応する要
求インデックス及びコマンドフィールドを備えている。
ロードされる情報は、選択されたコマンドに対応する要
求インデックス及びコマンドフィールドを備えている。
換言すれば、リソース論理回路214へ送られる同じ情
報がルックアップ待ち行列220にロードされる。この
ルックアップ待ち行列220の入力は、時間順に送り出
され、タグ論理モジュール222へ送られる。このモジ
ュールは、ルックアップ動作の結果として発生された情
報を探索し、固定動作が必要とされるかどうかを判断し
そしてそれを表わす信号を発生する.固定動作が必要と
されない場合には、メモリサイクルが続き、その要求が
実行される。タグ論理モジュール222は、選択された
要求に対応するタグアドレスを受け取る。バッファ20
4からのアドレスは、別のマルチブレクサ224へ送ら
れ、そしてマルチブレクサ224の選択入力の作用によ
り決定された適当なタグアドレスがタグモジュ一ル22
2へ送られる。
報がルックアップ待ち行列220にロードされる。この
ルックアップ待ち行列220の入力は、時間順に送り出
され、タグ論理モジュール222へ送られる。このモジ
ュールは、ルックアップ動作の結果として発生された情
報を探索し、固定動作が必要とされるかどうかを判断し
そしてそれを表わす信号を発生する.固定動作が必要と
されない場合には、メモリサイクルが続き、その要求が
実行される。タグ論理モジュール222は、選択された
要求に対応するタグアドレスを受け取る。バッファ20
4からのアドレスは、別のマルチブレクサ224へ送ら
れ、そしてマルチブレクサ224の選択入力の作用によ
り決定された適当なタグアドレスがタグモジュ一ル22
2へ送られる。
タグ論理モジュール222は、選択された要求を伴うメ
モリアドレスのためのタグ状態を構成する信号を発生し
、この情報はマイクロシーケンサ226へ送られる。ル
ックアップ待ち行列220からアンロードされた情報は
、タグ論理回路222によって使用されて、必要なルッ
クアップ動作を実行すると共に、マイクロシーケンサ2
26は、論理モジュールによって発生されたタグ状態を
、選択された要求に関連した特定のコマンド形式を表わ
す信号と組み合わせて用いて、SCUが固定動作を実行
する必要があるかどうかの判断をする。マイクロシーケ
ンサは、マイクロコードで実施され、これに送られる信
号に対して組み合わされるビットフィールドを検査し、
予め記憶された値との比較を行なって、固定動作を必要
とするキャッシュー貫性競合が存在するがどうかの判断
が行なわれる。マイクロシーケンサ226によって行な
われるこの判断は、上記した種々のデータ非一貫性状態
をベースとするもので、これは、SCUからMユニット
へ送られるコマンドに関連したものである。固定動作が
必要であることがマイクロシーケンサ226により決定
されると、SCUが適当なシステムユニットに中継しな
ければならない対応する固定シーケンス又はコマンドが
固定待ち行列228にロードされる。固定待ち行列の各
々に対応して、固定シーケンスを実行するのに必要な対
応する1組のリソースが発生される。
モリアドレスのためのタグ状態を構成する信号を発生し
、この情報はマイクロシーケンサ226へ送られる。ル
ックアップ待ち行列220からアンロードされた情報は
、タグ論理回路222によって使用されて、必要なルッ
クアップ動作を実行すると共に、マイクロシーケンサ2
26は、論理モジュールによって発生されたタグ状態を
、選択された要求に関連した特定のコマンド形式を表わ
す信号と組み合わせて用いて、SCUが固定動作を実行
する必要があるかどうかの判断をする。マイクロシーケ
ンサは、マイクロコードで実施され、これに送られる信
号に対して組み合わされるビットフィールドを検査し、
予め記憶された値との比較を行なって、固定動作を必要
とするキャッシュー貫性競合が存在するがどうかの判断
が行なわれる。マイクロシーケンサ226によって行な
われるこの判断は、上記した種々のデータ非一貫性状態
をベースとするもので、これは、SCUからMユニット
へ送られるコマンドに関連したものである。固定動作が
必要であることがマイクロシーケンサ226により決定
されると、SCUが適当なシステムユニットに中継しな
ければならない対応する固定シーケンス又はコマンドが
固定待ち行列228にロードされる。固定待ち行列の各
々に対応して、固定シーケンスを実行するのに必要な対
応する1組のリソースが発生される。
これが第6図に示されており、これは、固定待ち行列人
力228A,228B及び228Cがそれに対応するリ
ソース要求論理モジュール23OA,230B及び23
0Cに送られることを示しており、その出力は、固定リ
ソース要求ベクトル(FRV)を形成するように組み合
わされる。このベクトルFRVは、第5図のリソースチ
ェック論理モジュール214にリンクされ、それによっ
て定められた必要なリソースが実際に使用可能であるか
どうかの判断するためにリソースチェック動作を受ける
。
力228A,228B及び228Cがそれに対応するリ
ソース要求論理モジュール23OA,230B及び23
0Cに送られることを示しており、その出力は、固定リ
ソース要求ベクトル(FRV)を形成するように組み合
わされる。このベクトルFRVは、第5図のリソースチ
ェック論理モジュール214にリンクされ、それによっ
て定められた必要なリソースが実際に使用可能であるか
どうかの判断するためにリソースチェック動作を受ける
。
第7図に示すように、リソースチェックモジュール23
2A,232B及び232Cは、対応するリソース要求
(RR)ベクトルFl,F2及びF3を各々受け取る。
2A,232B及び232Cは、対応するリソース要求
(RR)ベクトルFl,F2及びF3を各々受け取る。
これらのベクトルは、必要なリソースが使用可能なリソ
ースのサブセットであることが分かった場合に対応する
「レディ』信号を発生するためにリソース使用可能(R
A)ベクトルに対してチェックされる.これらのレディ
信号は、その後に、オアゲート234に入力として送ら
れ、その出力は、固定シーケンスを開始するための信号
を表わす。換言すれば、上記構或体は、他の所定の状態
の存在が確認されたときに実行すべき所定の固定シーケ
ンスを設けることによって機能する。いつでも、ルック
アップ動作は、必要なリースが使用できるときに実行さ
れるべき固定待ち行列にロードされる.このように、固
定動作を実行する用意ができたときには、固定シーケン
スを実行するためにシステムマイクロコードが借りられ
る(典型的に1つのみの借りたサイクルについて).そ
の後、対応する固定待ち行列入力がクリアされ、次に要
求される固定動作につぃて使用可能となる。第5図ない
し第7図の好ましい構成は、一度に3つまでの固定シー
ケンスを考えることのできる3人力の深い固定待ち行列
を有するものとして示されている。更に別の固定シーケ
ンスが必要とされる場合には、システムマイクロコード
を用いて固定シーケンスを別々に実行することができる
。
ースのサブセットであることが分かった場合に対応する
「レディ』信号を発生するためにリソース使用可能(R
A)ベクトルに対してチェックされる.これらのレディ
信号は、その後に、オアゲート234に入力として送ら
れ、その出力は、固定シーケンスを開始するための信号
を表わす。換言すれば、上記構或体は、他の所定の状態
の存在が確認されたときに実行すべき所定の固定シーケ
ンスを設けることによって機能する。いつでも、ルック
アップ動作は、必要なリースが使用できるときに実行さ
れるべき固定待ち行列にロードされる.このように、固
定動作を実行する用意ができたときには、固定シーケン
スを実行するためにシステムマイクロコードが借りられ
る(典型的に1つのみの借りたサイクルについて).そ
の後、対応する固定待ち行列入力がクリアされ、次に要
求される固定動作につぃて使用可能となる。第5図ない
し第7図の好ましい構成は、一度に3つまでの固定シー
ケンスを考えることのできる3人力の深い固定待ち行列
を有するものとして示されている。更に別の固定シーケ
ンスが必要とされる場合には、システムマイクロコード
を用いて固定シーケンスを別々に実行することができる
。
第1図は、複数のシステムCPUが並列に動作されてシ
ステムのメインメモリを共有するマルチプロセッサシス
テムのブロック図、 第2図は、メインメモリ及びCPUキャッシュのインタ
ーリープされたセグメントの構造上の構成及びこれら2
つをリンクする仕方を示すブロック図、 第3図は、CPUのキャッシュ状態を維持するためにS
CU内に設けられるグローバルなタグ構造体を示す図、 第4図は、CPUレベル及びSCUレベルの両方におい
てメモリアクセス要求を処理する際に含まれる順次の手
順を示すフローチャート、そして 第5図ないし第7図は、本発明のキャッシュ一貫性機構
に用いる好ましいハードウェア構成を示す回路図である
。 IO・・・マルチプロセッサシステム l2・・・CPU l4・・・システム制御ユニット l6・・・メインメモリ l8・・・入力/出力(I/O)制御器20・・・イン
ターフェイス 20A・・・関連I/Oユニット 22・・・サービスプロセッサ/コンソールユニット(
SPU) 24・・・Mユニット 26・・・Iユニット 28・・・Eユニット 30・・・専用インターフェイス手段
ステムのメインメモリを共有するマルチプロセッサシス
テムのブロック図、 第2図は、メインメモリ及びCPUキャッシュのインタ
ーリープされたセグメントの構造上の構成及びこれら2
つをリンクする仕方を示すブロック図、 第3図は、CPUのキャッシュ状態を維持するためにS
CU内に設けられるグローバルなタグ構造体を示す図、 第4図は、CPUレベル及びSCUレベルの両方におい
てメモリアクセス要求を処理する際に含まれる順次の手
順を示すフローチャート、そして 第5図ないし第7図は、本発明のキャッシュ一貫性機構
に用いる好ましいハードウェア構成を示す回路図である
。 IO・・・マルチプロセッサシステム l2・・・CPU l4・・・システム制御ユニット l6・・・メインメモリ l8・・・入力/出力(I/O)制御器20・・・イン
ターフェイス 20A・・・関連I/Oユニット 22・・・サービスプロセッサ/コンソールユニット(
SPU) 24・・・Mユニット 26・・・Iユニット 28・・・Eユニット 30・・・専用インターフェイス手段
Claims (4)
- (1)少なくとも1つの入力/出力(I/O)ユニット
と組み合わせて並列形態で複数の中央処理ユニット(C
PU)を動作させるためのシステム制御ユニット(SC
U)を有する形式のマルチプロセッサシステムにおいて
、上記CPU及びI/Oユニットの各々は、SCUにポ
ート結合されており、SCUは、上記CPU及びI/O
ユニットが共通のシステムメモリのアドレスされたセグ
メントを制御可能にアクセスできるようにし、そして上
記CPUの各々は、上記システムメモリからのメモリ位
置の所定のロック状態を記憶するのに用いられるキャッ
シュメモリを備えており、上記マルチプロセッサコンピ
ュータシステムにおいて上記複数のCPUキャッシュメ
モリとシステムメモリとの間のデータの一貫性を確保す
る方法が、メモリトランザクション要求が処理されるに
つれて1組の所定のデータ非一貫性状態の1つが生じる
ときを検出し、そして データの非一貫性を生じることなくメモリトランザクシ
ョン要求が実行されるようにデータ非一貫性状態を修正
するという段階を具備することを特徴とする方法。 - (2)上記所定のデータ非一貫性状態は、 i)上記CPU又はI/Oユニットの1つから、他のC
PUの1つのキャッシュメモリにも存在するシステムメ
モリ内の位置へのメモリ書き込み動作の要求と、 ii)上記CPU又はI/Oユニットの1つによる上記
システムメモリに対する読み取り動作の要求とを含み、
ここで読み取られるべき位置は他のCPUの1つのキャ
ッシュメモリに書き込まれてもよいし或いは既に書き込
まれている請求項1に記載の方法。 - (3)上記第1のデータ非一貫性状態は、上記CPU又
はI/Oユニットによって上記書き込み動作が要求され
ているメモリ位置をキャッシュメモリが含んでいるよう
な上記プロセッサユニットがそこに記憶されたデータを
使用しないように阻止することにより修正され、そして 上記第2のデータ非一貫性状態は、上記他のCPUの上
記キャッシュメモリに書き込まれているデータを上記要
求を発しているCPU又はI/Oユニットへ返送するこ
とにより修正される請求項2に記載の方法。 - (4)上記データ非一貫性状態は、上記CPUの上記キ
ャッシュメモリの各々に対してキャッシュディレクトリ
のコピーを維持するための手段をSCUに設けることに
よって検出され、上記ディレクトリは、キャッシュ位置
におけるメモリデータの物理的なアドレスと、上記シス
テムメモリが更新されずに上記キャッシュにデータが書
き込まれたかどうかを表わす状態ビットとを含んでおり
、そして 上記SCUは、処理されているメモリアクセス要求に伴
うアドレスデータを上記SCUディレクトリに記憶され
た情報と比較して、データ非一貫性状態の存在と、この
非一貫性状態を修正するに必要な動作とを決定する請求
項3に記載の方法。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US30677689A | 1989-02-03 | 1989-02-03 | |
| US306776 | 1989-02-03 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH0315965A true JPH0315965A (ja) | 1991-01-24 |
Family
ID=23186785
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2024312A Pending JPH0315965A (ja) | 1989-02-03 | 1990-02-02 | マルチプロセッサコンピュータシステムにおいて複数のキャッシュメモリとメインメモリとの間のデータの一貫性を確保する改良機構 |
Country Status (5)
| Country | Link |
|---|---|
| EP (1) | EP0380861B1 (ja) |
| JP (1) | JPH0315965A (ja) |
| AT (1) | ATE175042T1 (ja) |
| CA (1) | CA1325289C (ja) |
| DE (1) | DE68928887T2 (ja) |
Families Citing this family (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| DE4037332C2 (de) * | 1990-11-23 | 1995-06-29 | Siemens Nixdorf Inf Syst | Verfahren zur Fehlerüberwachung der Datenkonsistenz in einem Datenverarbeitungssystem und Schaltungsanordnung zur Durchführung des Verfahrens |
| US5724549A (en) * | 1992-04-06 | 1998-03-03 | Cyrix Corporation | Cache coherency without bus master arbitration signals |
| EP0567708A1 (en) * | 1992-04-30 | 1993-11-03 | International Business Machines Corporation | Apparatus for optimizing cache memory invalidation |
| JP3360933B2 (ja) * | 1994-06-01 | 2003-01-07 | 富士通株式会社 | 情報処理システムにおける記憶制御方法および記憶制御装置 |
| EP0735481B1 (en) * | 1995-03-31 | 2003-05-14 | Sun Microsystems, Inc. | System level mechanism for invalidating data stored in the external cache of a processor in a computer system |
Citations (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS53116041A (en) * | 1977-03-18 | 1978-10-11 | Nec Corp | System controller |
Family Cites Families (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4503497A (en) * | 1982-05-27 | 1985-03-05 | International Business Machines Corporation | System for independent cache-to-cache transfer |
-
1989
- 1989-09-14 CA CA000611372A patent/CA1325289C/en not_active Expired - Fee Related
- 1989-09-28 EP EP89309861A patent/EP0380861B1/en not_active Expired - Lifetime
- 1989-09-28 DE DE68928887T patent/DE68928887T2/de not_active Expired - Fee Related
- 1989-09-28 AT AT89309861T patent/ATE175042T1/de not_active IP Right Cessation
-
1990
- 1990-02-02 JP JP2024312A patent/JPH0315965A/ja active Pending
Patent Citations (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS53116041A (en) * | 1977-03-18 | 1978-10-11 | Nec Corp | System controller |
Also Published As
| Publication number | Publication date |
|---|---|
| DE68928887T2 (de) | 1999-08-05 |
| DE68928887D1 (de) | 1999-02-04 |
| CA1325289C (en) | 1993-12-14 |
| EP0380861B1 (en) | 1998-12-23 |
| ATE175042T1 (de) | 1999-01-15 |
| EP0380861A3 (en) | 1991-06-12 |
| EP0380861A2 (en) | 1990-08-08 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US5222224A (en) | Scheme for insuring data consistency between a plurality of cache memories and the main memory in a multi-processor system | |
| US5202972A (en) | Store buffer apparatus in a multiprocessor system | |
| US5023776A (en) | Store queue for a tightly coupled multiple processor configuration with two-level cache buffer storage | |
| US5574922A (en) | Processor with sequences of processor instructions for locked memory updates | |
| US5276848A (en) | Shared two level cache including apparatus for maintaining storage consistency | |
| EP0381470B1 (en) | Processing of memory access exceptions along with prefetched instructions within the instruction pipeline of a virtual memory system-based digital computer | |
| US5699551A (en) | Software invalidation in a multiple level, multiple cache system | |
| US5291586A (en) | Hardware implementation of complex data transfer instructions | |
| US7228385B2 (en) | Processor, data processing system and method for synchronizing access to data in shared memory | |
| US7475191B2 (en) | Processor, data processing system and method for synchronizing access to data in shared memory | |
| JPH0561770A (ja) | データ処理システムのコヒーレンス手段 | |
| US7200717B2 (en) | Processor, data processing system and method for synchronizing access to data in shared memory | |
| EP0374419A2 (en) | Method and apparatus for efficient loop constructs in hardware and microcode | |
| JPH02289013A (ja) | 複数メモリーリクエストのオーダおよびキューイング方法および装置 | |
| EP0783735A1 (en) | Method and apparatus for processing memory-type information within a microprocessor | |
| US20060212653A1 (en) | Enhanced STCX design to improve subsequent load efficiency | |
| WO1996012227A1 (en) | An address queue capable of tracking memory dependencies | |
| US20030041225A1 (en) | Mechanism for handling load lock/store conditional primitives in directory-based distributed shared memory multiprocessors | |
| EP0380842A2 (en) | Method and apparatus for interfacing a system control unit for a multiprocessor system with the central processing units | |
| KR100308674B1 (ko) | 멀티사이클데이터캐쉬판독을위한데이터레지스터 | |
| US20050273563A1 (en) | System and method for canceling write back operation during simultaneous snoop push or snoop kill operation in write back caches | |
| JPH0315965A (ja) | マルチプロセッサコンピュータシステムにおいて複数のキャッシュメモリとメインメモリとの間のデータの一貫性を確保する改良機構 | |
| US20060085605A1 (en) | Processor, data processing system and method for synchronzing access to data in shared memory | |
| JP2001043133A (ja) | マルチプロセッサ・システムにおいてライトスルー・ストア・オペレーションでキャッシュ・コヒーレンシを維持するための方法およびシステム | |
| EP0375892B1 (en) | Data processing system |