JPH02141845A - マルチプロセッサシステムにおいて中央処理ユニットにより主メモリからデータブロックを読み取る方法 - Google Patents

マルチプロセッサシステムにおいて中央処理ユニットにより主メモリからデータブロックを読み取る方法

Info

Publication number
JPH02141845A
JPH02141845A JP1239809A JP23980989A JPH02141845A JP H02141845 A JPH02141845 A JP H02141845A JP 1239809 A JP1239809 A JP 1239809A JP 23980989 A JP23980989 A JP 23980989A JP H02141845 A JPH02141845 A JP H02141845A
Authority
JP
Japan
Prior art keywords
data block
cache
central processing
write
processing unit
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
Application number
JP1239809A
Other languages
English (en)
Inventor
Richard T Witek
リチャード ティー ウィテック
George M Uhler
ジョージ エム ユーラー
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Digital Equipment Corp
Original Assignee
Digital Equipment Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Digital Equipment Corp filed Critical Digital Equipment Corp
Publication of JPH02141845A publication Critical patent/JPH02141845A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0804Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols

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

【発明の詳細な説明】 産業上の利用分野 本発明は、マルチプロセッサコンピュータシステムの分
野に係り、より詳細には、ライトバック(書き戻し)キ
ャッシュを含むマルチプロセッサシステムの中央処理ユ
ニットによって主メモリからデータを読み取るための方
法に係る。
従来の技術 今日の近代的なコンピュータシステムは、中央処理ユニ
ットと、ハイアラーキ式のメモリとをしばしば備えてお
り、このメモリは、比較的大きいが比較的速度の遅い主
メモリと、上記中央処理ユニットと主メモリとの間に接
続された比較的高速であるが比較的小さなキャッシュメ
モリとを備えている。中央処理ユニットによって現在処
理されているデータ及び命令は、キャッシュメモリの高
速動作の利点を取り入れて中央処理ユニットの全体的な
動作速度を高めるためにキャッシュメモリに一時的に記
憶される。キャッシュメモリの使用は、−時的な局部性
及び空間的な局部性の原理に基づく。より詳細には、中
央処理ユニットが物理メモリ内の特定のスペースからの
データ及び命令を参照するときには、おそらくは、もう
−度、そのスペースからのデータ及び命令を参照すると
共に、それに隣接するスペースからのデータ及び命令を
ある時間中参照する。従って、中央処理ユニットにより
利用されているデータが存在するところの物理メモリの
隣接スペースを含むデータブロックは、データブロック
としばしば称されるものからデータ及び命令をフェッチ
するに必要な時間を相当に短縮するためにキャッシュメ
モリに入れられる。
キャッシュメモリ機構は、ライトスルーキャッシュであ
るかライトバックキャッシュであるかのいずれかである
。ライトスルーキャッシュにおいては、中央処理ユニッ
トは、キャッシュメモリ内のアドレスに書き込むときに
主メモリへライトスルーする。ライトバックキャッシュ
の場合には、中央処理ユニットは、そのキャッシュメモ
リへの書き込み時に主メモリを更新せず、後で更新する
例えば、中央処理ユニットがそのキャッシュメモリの内
容を変更するときには、書き込むべきデータの最新のコ
ピーを主メモリへ送ってから、その書き込むべきデータ
により占有されるキャッシュ内のスペースを再充填する
。このように、中央処理ユニットの動作速度は、各書き
込み動作の後に主メモリを更新するのに必要な時間によ
って遅くなることはない。むしろ、キャッシュメモリに
含まれたデータブロックに関連した全ての動作の完了時
に主メモリが更新される。
多数のコンピュータシステムは、1つの簡単なデータコ
ピーの考え方に基づいて動作する。各々がそれ自身のラ
イトバックキャッシュを有する多数の中央処理ユニット
を備えたマルチプロセッサシステムでは、中央処理ユニ
ットの1つがそのキャッシュメモリ内のデータブロック
に書き込みするときにデータ内のインコヒレンスが生じ
る。
換言すれば、特定の中央処理ユニットがそのキャッシュ
に書き込みするときに、中央処理ユニットが主メモリを
更新するまで主メモリはデータの有効コピーをもたない
あるコンピュータシステムは、中央処理ユニットがデー
タブロックを変更する前に書き込みを行なうために「ブ
リビレッジ(特権)」を得ることを必要とする。以下の
説明上、このいわゆる書き込みブリビレッジは、[オー
ナーシップ(所有者)」と称する概念と同じであると考
えられ、これらの両方を[オーナーシップ]という用語
のもとで説明する。
特定の中央処理ユニットがマルチプロセッサシステムの
別の中央処理ユニットのキャッシュに現在あるデータブ
ロックを必要としそしてそのデータブロックが上記他の
中央処理ユニットにより上記のライトバックベースで書
き込まれた場合には、コヒレンスの考え方を用いて、最
新のデータコピーがその要求を発している中央処理ユニ
ットに送られるよう確保しなければならない。例えば、
ある既知のマルチプロセッサシステムは、データブロッ
クの最新のコピーがその要求を発している中央処理ユニ
ットへ送られるよう確保するためにシステムの多数の中
央処理ユニットに対し共有バス形態でいわゆる「スヌー
ビ」プロトコルを実施している。
このスヌービプロトコルによれば、マルチプロセッサシ
ステムの全ての中央処理ユニットは、単一の共有バスを
経て主メモリへ接続される。多数の中央処理ユニット及
び共有バスに接続された他の装置の各キャッシュは、全
ての他のキャッシュによる主メモリとの全てのトランザ
クションを「スヌープ」オン(即ち、ウォッチ又は監視
)する。従って、各キャッシュは、マルチプロセッサシ
ステム全体にわたり主メモリから多数の他のキャッシュ
へ送られる全てのデータブロックが分かる。キャッシュ
は単一の共有バスによって主メモリに接続されているの
で、特定の時間にアクセス要求を出している多数の装置
の1つに供給バスへのアクセスを許可するために仲裁機
構を実施する必要がある。この仲裁機構は、主メモリと
のトランザクションを実際上直列化し、そしてスヌービ
プロトコルはこの直列化を用いて、−度に1つのキャッ
シュのみがデータブロックの変更を許可されるというル
ールを課する。
1つのキャッシュのデータブロックを変更した後に、主
メモリは、前記したように書き込むべきブロックを有す
るキャッシュによって更新されるまでデータの有効コピ
ーを含まない。スヌーピプロトコルによれば、別のキャ
ッシュが主メモリの更新の前にそのデータブロックを要
求するときに、1つのキャッシュにある書き込まれるデ
ータブロックのコピーが主メモリのコピーと取り換えら
れる。
スヌービプロトコルのオーナーシップモデルは、データ
ブロックの「オーナーシップ」の概念を含んでいる。装
置は、先ず、そのキャッシュ内のデータブロックのオー
ナーシップを要求しそしてそれを得てからそのデータブ
ロックに書き込みを行なわねばならない。せいぜい、−
度に1つの装置がデータブロックを所有できるだけであ
り、そのオーナーは常にそのデータブロックの有効コピ
ーを有する。更に、オーナーは、マルチプロセッサシス
テム全体にわたってデータのコヒレンス性を確保するた
めにブロックのオーナーシップを放棄する前に主メモリ
を更新しなければならない。
以下の説明において、オーナーシップは、データブロッ
クを変更する(又はそれに書き込む)権利として定めら
れる。システムの装置がデータブロックを所有していな
いときには、主メモリによって所有されると云え、デー
タブロックのコピーはシステムのいずれかの装置によっ
て「共有1される。共有モードとは、装置がそのキャッ
シュに存在するデータブロックの共有コピーのみへのア
クセスを読み取ったことを意味する。主メモリは共有モ
ードでデータブロックを所有しているので、全ての共有
コピーは主メモリに厳密に合致し、ひいては、正しいコ
ピーである。主メモリ以外のいずれか1つの装置がデー
タブロックのオーナーシップを得ると、他の装置はブロ
ックを共有せず、共有されたデータブロックの全てのコ
ピーは、1つの装置によってオーナーシップが得られた
ときに無効化される。
あるコヒレントプロトコルにおいては、プロトコルをサ
ポートする読み取りコマンドが2種類ある。第1のコマ
ンド(以下読み取り′ という)は、メモリから共有デ
ータブロックのリードオンリコピーを要求する。このコ
ピーは変更することができない。第2のコマンド(以下
゛オーナーシップのための読み取り′という)は、書き
込み又は変更されることのあるメモリからのデータブロ
ックのコピーを要求する。
読み取りコマンドでデータブロックが最初に要求されそ
してその後に中央処理ユニットがデータブロックの書き
込み又は変更を希望しているときには、処理ユニットは
オーナーシップ読み取りコマンドでデータブロックを要
求しなければならない。処理ユニットは、データブロッ
クのオーナーシップをいったん得ると、データブロック
の変更のみを行なうことができる。
はとんどのベクトルアーキテクチャ(及びあるスカラー
アーキテクチャ)は、データを最初にメモリ又はキャッ
シュから中央処理ユニットのレジスタに読み取らねばな
らない(10−ド′ しなければならない)ロード/記
憶実行モデルを使用する。データはこれらレジスタにお
いて操作されそしてメモリに書き戻される(“記憶′さ
れる)。
多くのベクトル化アルゴリズムは、メモリ内の位置から
のベクトルの読み取り、ベクトルの変更、そして変更さ
れたベクトルを同じメモリ位置へ書き戻すことを含む。
ベクトルを読み取ったり書き込んだりするために使用さ
れるロード及び記憶は別々の動作である。これにより、
ハードウェアは、ベクトルロードに対するオーナーシッ
プ読み取りコマンドを発生することが困難である。その
結果、上記したアルゴリズムでは、各ベクトルに対して
2つの読み取りが生じる。一方のデータ読み取りは読み
取りコマンドで行なわれ、そしてもう一方の読み取りは
、メモリに書き戻されるベクトルの各ブロックのオーナ
ーシップを得るためにオーナーシップ読み取りコマンド
で行なわれる。
これは、このアルゴリズムの実行に著しい性能上のペナ
ルティをもたらす。
ロード動作のときにオーナーシップ読み取りコマンドで
全てのベクトルデータブロックを最初に読み取ることに
より2つの読み取りの発生を回避できる。これは、全て
のデータブロックに対しデータが後で書き込まれること
を仮定する。然し乍ら、オーナーシップの読み取りは、
たとえデータが変更されなくても、ある程度後で、読み
取りを行なう中央処理ユニットがデータを主メモリに書
き戻すよう義務を負わす。著しい量のベクトルデータが
変更されないので、オーナーシップ読み取りコマンドで
全てのデータを読み取ることは、読み取りトラフィック
が増加する問題と、書き戻しトラフィックが増加する問
題との兼ね合いとなる。
発明の構成 本発明は、適当なコマンドを用いてデータを中央処理ユ
ニットにロードするように中央処理ユニットを制御する
ための機構を提供することにより、書き戻しキャッシュ
を有するマイクロプロセッサシステムの前記問題を解消
する。換言すれば、ベクトルが書き込まれる場合に、オ
ーナーシップ読み取りコマンドが使用される。ベクトル
が書き込まれない場合には、読み取りコマンドが使用さ
れる。
より詳細には、本発明は、ライトバックキャッシュが主
メモリと中央処理ユニットとの間に接続されたマルチプ
ロセッサシステムの中央処理ユニットによってメモリか
らデータブロックを読み取るための方法を提供する。こ
の方法は、命令のライトインデント(書き込みの意志を
表わす)フラグの状態を決定することを含む。中央処理
ユニットの1つによって命令に要求されたデータブロッ
クが対応するキャッシュに位置されているかどうか決定
される。要求されたデータブロックは、そのデータブロ
ックがキャッシュに配置されているときに中央処理ユニ
ットへ返送される。要求されたデータブロックは、それ
がキャッシュになくそしてライトインテントフラグがデ
ータブロックが変更されないことを指示するときにデー
タブロックに対するライトプリビレジを得ることなく、
主メモリからキャッシュに読み取られる。その後、要求
されたデータブロックがキャッシュから中央処理ユニッ
トへ返送される。要求されたデータブロックは、主メモ
リからキャッシュへ読み取られ、そしてその要求された
データブロックがキャッシュに配置されておらず且つラ
イトインテントフラグがデータブロックが中央処理ユニ
ットによって変更されることを指示するときにそのデー
タブロックに対してライトブリビレジが得られる。要求
されたデータブロックは、その後、キャッシュから中央
処理ユニットへ返送される。
本発明の別の実施例においては、要求されたデータブロ
ックがキャッシュに配置されていると共に、要求された
データブロックが中央処理ユニットに返送されるときに
、その要求されたデータブロックが主メモリからキャッ
シュへ同時に読み取られ、データブロックに対するライ
トプリビレジを得るようにする。これは、キャッシュが
その要求されたデータブロックに対するライトプリビレ
ジをもたずそしてライトインテントフラグがその要求さ
れたデータブロックが変更されることを指示するときに
生じる。
本発明の実施例は、適当なコマンドを用いてデータを読
み取るのに必要な情報を与えることによりライトバック
キャッシュを有するマルチプロセッサシステムの性能を
向上する。これにより、無駄な読み取り又は書き戻しト
ラヒックが排除される。
実施例 第1図は、本発明を用いることのできるマルチプロセッ
サシステムの実施例を示している。このシステムは、複
数の中央処理ユニット1O110a、10b(以下、C
PUという)を有している。各CPUl0−10bは、
それ自身の別々のメモリキャッシュ12.12a、12
bに接続されている。キャッシュ12−12bの各々は
、共通バス14を経て主メモリ16に接続されている。
共通バス14は第1図に示されているが、キャッシュ1
2.12a% 12bが共有バスではなくてポイント/
ポイント接続部によって主メモリ16に接続されたとき
にも本発明は有用である。
ここに示す実施例では、CP(J12.12a。
12bが各々レジスタ18.18a、18bを含んでい
る。CPUl01lOa、10bにおいてデータを操作
するのは、これらのレジスタ18.18a、18bであ
る。
システムの基本的な動作は次の通りである。
CPU (例えば、10)がA=A+4のような命令を
実行すべきときには、コンパイラ(図示せず)がCPU
l0かたどるべき一連の動作を形成する。
ロード/記憶実行モデルを用いると、これらは、例えば
、次のようになる。
a) Road  A、 RO b) Add  #4. RO c) 5tore  RO,A 第1の動作、Road  A、 ROは、メモリ位置A
からレジスタROにデータブロックをロードする。CP
Uは、最初に、そのキャッシュ12がら対応するデータ
ブロックを得ようとする。データブロックがキャッシュ
12にある(キャツシュヒツト)場合には、データブロ
ックがCPU 10に返送される。キャッシュ12を使
用する場合、キャッシュは比較的小さく、然も主メモリ
に比してメモリに接近しているので、CPUによるメモ
リ参照速度を高めることができる。
キャッシュ12がメモリ位置Aに対する適当なデータブ
ロックを含んでいない(キャッシュミス)場合には、こ
のデータブロックを主メモリ16からバス14を経て得
なければならない。キャッシュ12゛が必要なデータブ
ロックを受は取ると、このデータブロックをCPUl0
のレジスタROにロードすることができ、ここで、デー
タブロックの内容に整数4が加えられる。これが動作b
)である。
このように変更されたデータブロックは、レジスタRO
からキャッシュ12の位置Aに書き戻される(記憶され
る)。これが動作C)である。
ある点において、主メモリは、メモリ位置Aにおけるデ
ータブロックの変更の通知を受けねばならない。ライト
スルーキャッシュの場合には、キャッシュに対して記憶
を行なうときにこれが行なわれる。本発明に用いられる
ようなライトバックキャッシュでは、主メモリの更新が
キャッシュへの記憶を行なった後に後で行なわれる。
システムに対してキャッシュのコヒレンス性を維持しな
ければならない。換言すれば、CPUがデータブロック
を変更したか又は変更する場合には、残りのCPUは、
そのデータブロックが変更されて主メモリに書き戻され
てしまうまでこのデータブロックにアクセスできない。
これは、CPUが古いデータブロックを使用しないよう
に確保する。ライトスルーキャッシュの場合には、キャ
ッシュが変更されたデータブロックを受は取るときに主
メモリが更新される。然し乍ら、ライトバックキャッシ
ュの場合には、主メモリがキャッシュより後で更新され
るために問題が生じる。別のCPUによって既に変更さ
れているが主メモリではまだ更新されていないような主
メモリ又はそのキャッシュからアクセスされたデータブ
ロックに基づいて動作しているCPUではインコヒレン
スの問題が生じる。
インコヒレンスの発生を防ぐために、図示されたシステ
ムはオーナーシップ機構を使用する。
この機構では、データブロックを共有又は所有すること
ができる。共有データブロックは、全てのCPUl0−
10bにより主メモリ15からアクセスすることができ
、この共有データブロックのコピーはり一ドオンリコビ
ーである。CPUが変更しようとするデータブロックの
コピーを入手したいときには、そのデータブロックの読
み取り一書き込みコピーを得なければならない。CPU
は、読み取り一書き込みコピーを得るときにデータブロ
ックのオーナーシップを得ると云える。このとき、他の
全てのCPUは、そのデータブロックのリードオンリ及
び読み取り一書き込みの画形式のコピーを得ることが阻
止される。
更に、他のCPUのキャッシュに入れられるコピーが無
効化され、所有するデータブロックの唯一の有効コピー
がCPUとそのデータブロックのオーナーシップを要求
したキャッシュとの中にあるようにされる。
データブロックのオーナーシップを得ることにより、C
PUはそのブロックに書き込むためのプレパイルを本質
的に得たことになる。本発明は、オーナーシップに基づ
かないシステムにも有用であるが、データブロックに書
き込む前に得なければならないライトプレパイルも有す
る。
上記例の命令A=A+4に戻ると、ロード動作(ROA
D A、 RO)がリードオンリコマンドによって実行
されるものと仮定する。レジスタにおいて加算を行なっ
た後に、その結果はメモリ位置Aに記憶することができ
ない。というのは、CPU 10がデータブロックAの
オーナーシップを有しておらず、リードオンリコピーを
有しているからである。記憶動作を実行するために、C
PUl0は、主メモリ16からデータブロックの読み取
り一書き込みコピーを要求しそしてそれを得なければな
らない。CPUl0がデータブロックのオーナーシップ
を得ると、そのデータブロックを変更するためのプレパ
イルを得ることにより記憶動作を実行することができる
この例から推測できるように、データブロックが変更さ
れるときにリードオンリコピーを要求する読み取りコマ
ンドを最初に用いると、データブロックを要求する前に
別の読み取り(この場合はオーナーシップのための読み
取り)を実行しなければならないので、性能の低下を生
じる。
上記例の命令に対してこの問題を回避するための方法は
、各読み取りをオーナーシップのための読み取りで行な
うことである。然し乍ら、この解決策は、以下の例の命
令B=A+4で示すように、それ自身の問題を有してい
る。コンパイラは、この命令に対し、次の動作を発生す
る。
a) Load  A、 RO b) ADD  #4. RO c) 5tore  RO,B この例では、Aは変更されず、Bのみが変更される。然
し乍ら、Load  A、 ROの動作はオーナーシッ
プに対する読み取りコマンドで実行されるので、CPU
l0は、結局、データブロックAを主メモリ16に書き
戻すと共に、変更されたデータブロックBを書き戻さね
ばならない。それ故、各読み取りがオーナーシップに対
する読み取りコマンドで行なわれるときにライトパック
トラヒックが不要に増大する。
本発明は、データブロックを正しいコマンド(読み取り
又はオーナーシップの読み取り)で読み取ることができ
るようにデータブロックを変更して書き戻すかどうかを
各命令ごとにコンパイラによってCPUに知らせる方法
を提供する。この方法は、過剰な読み取りトラヒック又
はライトパックトラヒックを実質的に回避する。
この方法は、ライトインテントビット(又はフラグ)と
して示されたビット(又はフラグ)を各ロード又は収集
命令と共に供給することを含む。
ベクトルのロード又は収集命令のフィールドが第2図に
示されている。これらは、制御ビット、命令部分、ベー
ス及びストライドを含む。ベース及びストライドはベク
トル命令に関連したもので、ベクトル処理の分野で良く
知られている。
ライトインデントビットは命令のための制御ビットの中
に位置している。ベクトル化コードのための良く知られ
た技術を用いて°、コンパイラはライトインデントビッ
トをセットするに充分な情報を有している。コンパイラ
によりベクトルロード又は収集命令においてこのビット
がセットされると、CPUによって発生されたロードコ
マンドが単に読み取りコマンドではなくてオーナーシッ
プ読み取りコマンドとなる。それ故、データが変更され
て記憶されるときには、データが変更される前に付加的
なオーナーシップ読み取りコマンドを発生する必要がな
くなる。
コンパイラによりロード又は収集命令においてライトイ
ンテントビットがセットされないときには、CPUによ
って発生されたロードコマンドが読み取りコマンドとな
る。これは、データブロックがその命令によって変更さ
れないことを指示する。
データを読み取る命令に対する簡単なキャッシュ制御の
流れは、例えば、次の通りである。
1、要求されたデータがキャッシュにある場合には、ス
テップ5に進む。
2、交換のために選択されたキャッシュブロックが所有
データを含んでいる場合には、ブロックをメモリに書き
込む。
3、ライトインデントビットがセットされた場合には、
オーナーシップ読み取りコマンドを用いてメモリからデ
ータブロックを読み取りそして選択されたキャッシュブ
ロックにデータをロードする。ステップ5に進む。
4、ライトインデントビットがセットされない場合には
、読み取りコマンドを用いてメモリがらデータブロック
を読み取りそして選択されたキャッシュブロックにデー
タをロードする。ステップ5に進む。
5、要求されたデータをCPUに返送する。
従って、データブロックがキャッシュ12にまだ存在し
ない場合には、このデータブロックがライトインテント
ビットの状態に適したコマンドで主メモリ16から読み
取られる。データブロックがキャッシュ12に所有され
ると、次のロード命令により、キャッシュ12は、ライ
トインテントビットの状態に拘りなくデータブロックを
CPUl0に返送する。既に所有されたブロックに対す
る次の書き込みは、単にデータブロックをキャッシュ1
2に書き込ませる。
データブロックがキャッシュ12に既にある(キャツシ
ュヒツト)の場合には、それがCPUに返送される。本
発明の別の実施例では、キャツシュヒツトの際にキャッ
シュに入れられたデータブロックがこのようにCPUに
返送された後に、そのキャッシュに入れられたデータブ
ロックがまだ所有されずそしてライトインテントビット
がセットされた場合に、オーナーシップ読み取りコマン
ドを用いて主メモリ16からデータブロックが読み取ら
れる。これは、データの処理と並列にオーナーシップ要
求をスタートさせ、典型的に、次の記憶(ライトインテ
ントビットによって指示された)を行なう前にオーナー
シップを得る。
本発明によれば、命令それ自体は、データブロックを読
み取る命令の選択を指示するための情報(ライトインデ
ントビット)を含んでいる。これにより、次の記憶を行
なう前にデータブロックのオーナーシップを得ることが
できる。データブロックは既に所有されているので、次
の記憶は、データブロックのオーナーシップを得るため
に停止することなく全速度で行なわれる。
【図面の簡単な説明】
第1図は、マルチプロセッサシステムの簡単なブロック
図、そして 第2図は、第1図のシステムに対し本発明で使用される
命令のフィールドを示す図である。 10、lOa、lob・・・中央処理ユニット12.1
2a、12b・・・キャッシュ14・・・共通バス  
16・・・主メモリ18.18a118b・・・レジス
タ シjIWビ・ソト r−人一)

Claims (2)

    【特許請求の範囲】
  1. (1)マルチプロセッサシステムにおいて中央処理ユニ
    ットにより主メモリからデータブロックを読み取る方法
    であって、上記システムは、上記主メモリと中央処理ユ
    ニットとの間に接続されたライトバックキャッシュを含
    むものであり、上記方法は、 命令のライトインテントフラグの状態を決定し、 上記中央処理ユニットの1つにより上記命令において要
    求されたデータブロックがそれに対応するキャッシュに
    配置されているかどうかを判断し、 上記要求されたデータブロックが上記キャッシュに配置
    されているときに上記要求されたデータブロックを上記
    中央処理ユニットに返送し、上記要求されたデータブロ
    ックが上記キャッシュに配置されておらず且つ上記ライ
    トインテントフラグが上記データブロックが上記中央処
    理ユニットによって変更されないことを指示するときに
    上記データブロックに対してライトプレビレジを得るこ
    となく上記主メモリから上記キャッシュへ上記要求され
    たデータブロックを読み込み、そしてその後、上記要求
    されたデータブロックを上記キャッシュから上記中央処
    理ユニットへ返送し、上記要求されたデータブロックを
    上記主メモリから上記キャッシュへ読み取り、上記要求
    されたデータブロックが上記キャッシュに配置されてお
    らず且つ上記ライトインテントフラグが上記データブロ
    ックが上記中央処理ユニットによって変更されることを
    指示するときに上記要求されたデータブロックに対する
    上記ライトプレビレジを得、そしてその後、上記要求さ
    れたデータブロックを上記キャッシュから上記中央処理
    ユニットへ返送することを特徴とする方法。
  2. (2)データブロックが上記キャッシュに配置されてい
    るときに上記要求されたデータブロックを上記中央処理
    ユニットに返送する上記段階は、上記キャッシュが上記
    要求されたデータブロックに対する上記ライトプレビレ
    ジをもたず且つ上記ライトインテントフラグが上記要求
    されたデータブロックが変更されることを指示するとき
    に上記要求されたデータブロックに対するライトプレビ
    レジを得るために上記要求されたデータブロックを上記
    主メモリから上記キャッシュへ同時に読み取る段階を含
    む請求項1に記載の方法。
JP1239809A 1988-09-16 1989-09-14 マルチプロセッサシステムにおいて中央処理ユニットにより主メモリからデータブロックを読み取る方法 Pending JPH02141845A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US245263 1988-09-16
US07/245,263 US5043886A (en) 1988-09-16 1988-09-16 Load/store with write-intent for write-back caches

Publications (1)

Publication Number Publication Date
JPH02141845A true JPH02141845A (ja) 1990-05-31

Family

ID=22925973

Family Applications (1)

Application Number Title Priority Date Filing Date
JP1239809A Pending JPH02141845A (ja) 1988-09-16 1989-09-14 マルチプロセッサシステムにおいて中央処理ユニットにより主メモリからデータブロックを読み取る方法

Country Status (3)

Country Link
US (1) US5043886A (ja)
EP (1) EP0358863A3 (ja)
JP (1) JPH02141845A (ja)

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02103656A (ja) * 1988-10-12 1990-04-16 Fujitsu Ltd 主記憶参照の遂次化制御方式
US5202969A (en) * 1988-11-01 1993-04-13 Hitachi, Ltd. Single-chip-cache-buffer for selectively writing write-back and exclusively writing data-block portions to main-memory based upon indication of bits and bit-strings respectively
US5537640A (en) * 1988-12-30 1996-07-16 Intel Corporation Asynchronous modular bus architecture with cache consistency
JPH0680499B2 (ja) * 1989-01-13 1994-10-12 インターナショナル・ビジネス・マシーンズ・コーポレーション マルチプロセッサ・システムのキャッシュ制御システムおよび方法
US5371874A (en) * 1989-01-27 1994-12-06 Digital Equipment Corporation Write-read/write-pass memory subsystem cycle
US5210848A (en) * 1989-02-22 1993-05-11 International Business Machines Corporation Multi-processor caches with large granularity exclusivity locking
JPH0810451B2 (ja) * 1989-03-28 1996-01-31 日本電気株式会社 情報処理装置
US5119485A (en) * 1989-05-15 1992-06-02 Motorola, Inc. Method for data bus snooping in a data processing system by selective concurrent read and invalidate cache operation
JPH0697449B2 (ja) * 1989-09-20 1994-11-30 株式会社日立製作所 多重化共有メモリ制御方法、多重化共有メモリシステムおよび共有メモリ拡張方法
US5524255A (en) * 1989-12-29 1996-06-04 Cray Research, Inc. Method and apparatus for accessing global registers in a multiprocessor system
US5289588A (en) * 1990-04-24 1994-02-22 Advanced Micro Devices, Inc. Interlock acquisition for critical code section execution in a shared memory common-bus individually cached multiprocessor system
US5255387A (en) * 1990-04-27 1993-10-19 International Business Machines Corporation Method and apparatus for concurrency control of shared data updates and queries
US5611070A (en) * 1990-05-10 1997-03-11 Heidelberger; Philip Methods and apparatus for performing a write/load cache protocol
US5287512A (en) * 1990-08-06 1994-02-15 Ncr Corporation Computer memory system and method for cleaning data elements
US5404488A (en) * 1990-09-26 1995-04-04 Lotus Development Corporation Realtime data feed engine for updating an application with the most currently received data from multiple data feeds
US5434970A (en) * 1991-02-14 1995-07-18 Cray Research, Inc. System for distributed multiprocessor communication
US5265233A (en) * 1991-05-17 1993-11-23 Sun Microsystems, Inc. Method and apparatus for providing total and partial store ordering for a memory in multi-processor system
US5353423A (en) * 1991-06-21 1994-10-04 Compaq Computer Corporation Memory controller for use with write-back cache system and multiple bus masters coupled to multiple buses
US5426765A (en) * 1991-08-30 1995-06-20 Compaq Computer Corporation Multiprocessor cache abitration
US5530835A (en) * 1991-09-18 1996-06-25 Ncr Corporation Computer memory data merging technique for computers with write-back caches
TW234174B (en) * 1993-05-14 1994-11-11 Ibm System and method for maintaining memory coherency
AU3999595A (en) * 1994-10-06 1996-05-02 Vrc, Inc. Shared memory system
DE69628493T2 (de) * 1995-03-31 2004-05-19 Sun Microsystems, Inc., Santa Clara Cache-kohärentes Computersystem, das Entwertungs- und Rückschreiboperationen minimiert
US5694596A (en) * 1995-05-25 1997-12-02 Kangaroo, Inc. On-line database updating network system and method
US6240451B1 (en) * 1995-05-25 2001-05-29 Punch Networks Corporation Method and apparatus for automatically disseminating information over a network
US5699500A (en) * 1995-06-01 1997-12-16 Ncr Corporation Reliable datagram service provider for fast messaging in a clustered environment
US5612865A (en) * 1995-06-01 1997-03-18 Ncr Corporation Dynamic hashing method for optimal distribution of locks within a clustered system
US6282634B1 (en) * 1998-05-27 2001-08-28 Arm Limited Apparatus and method for processing data having a mixed vector/scalar register file
US7484045B2 (en) * 2004-03-30 2009-01-27 Intel Corporation Store performance in strongly-ordered microprocessor architecture
DK3798470T3 (da) 2019-09-27 2023-06-12 Flender Gmbh Planetgear med forbedret smøremiddelforsyning, drivlinje og vindkraftanlæg

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61141054A (ja) * 1984-12-14 1986-06-28 Nec Corp 情報処理装置
JPS63193246A (ja) * 1987-01-22 1988-08-10 ナショナル・セミコンダクター・コーポレーション 集積キャッシュ・メモリと外部メモリの間の一貫性を保つ方法と装置
JPH01237835A (ja) * 1988-01-20 1989-09-22 Advanced Micro Devicds Inc 集積キャッシュユニットおよびその内部でキャッシュ機能を実現するための方法
JPH0241538A (ja) * 1988-08-01 1990-02-09 Nippon Telegr & Teleph Corp <Ntt> キャッシュメモリ制御方法

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4394731A (en) * 1980-11-10 1983-07-19 International Business Machines Corporation Cache storage line shareability control for a multiprocessor system
US4445174A (en) * 1981-03-31 1984-04-24 International Business Machines Corporation Multiprocessing system including a shared cache
US4484267A (en) * 1981-12-30 1984-11-20 International Business Machines Corporation Cache sharing control in a multiprocessor
US4442487A (en) * 1981-12-31 1984-04-10 International Business Machines Corporation Three level memory hierarchy using write and share flags
US4503497A (en) * 1982-05-27 1985-03-05 International Business Machines Corporation System for independent cache-to-cache transfer
JPS6051957A (ja) * 1983-08-31 1985-03-23 Toshiba Corp マイクロプロセツサシステム
US4885680A (en) * 1986-07-25 1989-12-05 International Business Machines Corporation Method and apparatus for efficiently handling temporarily cacheable data

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61141054A (ja) * 1984-12-14 1986-06-28 Nec Corp 情報処理装置
JPS63193246A (ja) * 1987-01-22 1988-08-10 ナショナル・セミコンダクター・コーポレーション 集積キャッシュ・メモリと外部メモリの間の一貫性を保つ方法と装置
JPH01237835A (ja) * 1988-01-20 1989-09-22 Advanced Micro Devicds Inc 集積キャッシュユニットおよびその内部でキャッシュ機能を実現するための方法
JPH0241538A (ja) * 1988-08-01 1990-02-09 Nippon Telegr & Teleph Corp <Ntt> キャッシュメモリ制御方法

Also Published As

Publication number Publication date
US5043886A (en) 1991-08-27
EP0358863A2 (en) 1990-03-21
EP0358863A3 (en) 1991-01-02

Similar Documents

Publication Publication Date Title
JPH02141845A (ja) マルチプロセッサシステムにおいて中央処理ユニットにより主メモリからデータブロックを読み取る方法
JP5431525B2 (ja) アクセラレータ用低コストのキャッシュ一貫性を維持するシステム
US6694409B2 (en) Cache states for multiprocessor cache coherency protocols
EP0735480B1 (en) Cache coherent computer system that minimizes invalidation and copyback operations
KR101639672B1 (ko) 무한 트랜잭션 메모리 시스템 및 그 동작 방법
US8924653B2 (en) Transactional cache memory system
US7003635B2 (en) Generalized active inheritance consistency mechanism having linked writes
US6625698B2 (en) Method and apparatus for controlling memory storage locks based on cache line ownership
US6272602B1 (en) Multiprocessing system employing pending tags to maintain cache coherence
US6438660B1 (en) Method and apparatus for collapsing writebacks to a memory for resource efficiency
US20050188159A1 (en) Computer system supporting both dirty-shared and non dirty-shared data processing entities
US5692149A (en) Block replacement method in cache only memory architecture multiprocessor
JP2010507160A (ja) データ処理装置の共有メモリへの書込みアクセス要求の処理
US20020138698A1 (en) System and method for caching directory information in a shared memory multiprocessor system
US7051163B2 (en) Directory structure permitting efficient write-backs in a shared memory computer system
JP2000067024A (ja) 分散共有メモリマルチプロセッサシステムのための分割疎ディレクトリ
US7080213B2 (en) System and method for reducing shared memory write overhead in multiprocessor systems
JP4577729B2 (ja) ライトバックキャッシュにおいてスヌーププッシュ処理やスヌープキル処理が同時発生しているときのライトバック処理をキャンセルするためのシステムおよび方法
KR20070040340A (ko) 소형 캐시 시스템에서 원자적 보존 라인에 라이트백하는것을 배제하는 방법 및 시스템
KR101858597B1 (ko) 프로세싱 인 메모리 시스템의 연산할 작업, 연산할 데이터 및 연산 결과 데이터 전달 방법 및 프로세싱 인 메모리 시스템
US6892290B2 (en) Linked-list early race resolution mechanism
JPH0467242A (ja) プロセッサおよびそのキャッシュメモリ制御方法
US6477622B1 (en) Simplified writeback handling
JPH04191946A (ja) スヌープキャッシュメモリ制御方式
EP0533373A2 (en) Computer system having cache memory