JP2004185610A - メモリ複製オペレーション時の不正確なキャッシュ・ライン保護機構 - Google Patents
メモリ複製オペレーション時の不正確なキャッシュ・ライン保護機構 Download PDFInfo
- Publication number
- JP2004185610A JP2004185610A JP2003388587A JP2003388587A JP2004185610A JP 2004185610 A JP2004185610 A JP 2004185610A JP 2003388587 A JP2003388587 A JP 2003388587A JP 2003388587 A JP2003388587 A JP 2003388587A JP 2004185610 A JP2004185610 A JP 2004185610A
- Authority
- JP
- Japan
- Prior art keywords
- memory
- data
- destination
- address
- token
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4022—Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/0831—Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Computer Hardware Design (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Memory System (AREA)
- Multi Processors (AREA)
Abstract
【解決手段】 ファブリックにおける複製オペレーションを行う前に、メモリ複製機構内に一組のトークンが定義される。トークンは、ソース・トークン及び宛先トークンを含む。それらのトークンは、データ複製オペレーションを開始する前にメモリ複製機構によってファブリック上に送出される。トークンは、複製オペレーションを完了するために必要なソース・アドレス及び宛先アドレスの使用可能性を見つける。他のデータ複製オペレーションを行うために宛先アドレスが、現在、他のメモリ複製機構によって利用されることになっていないということを、宛先アドレス・トークンに対する応答が表さないと、メモリ複製機構はメモリ複製オペレーションを開始するためのコマンドを送出する。
【選択図】 図2
Description
(1)プロセッサ・エンジンがロード命令及びストア命令を発生し、それらの命令の結果、キャッシュ・ライン(CL)読み取りがプロセッサ・チップからスイッチ/相互接続線を介してメモリ・コントローラに送られる;
(2)メモリ・コントローラが宛先メモリ・ロケーションにおけるロックを獲得する;
(3)プロセッサが(メモリ・コントローラによって)ロック宛先メモリ・ロケーションを割り当てられる;
(4)データがメモリ(ソース・アドレス)からスイッチ/相互接続部を介してプロセッサ・チップ(エンジン)に送られる;
(5)データがプロセッサ・エンジンからスイッチ/相互接続部を介して宛先ロケーションのメモリ・コントローラに送られる;
(6)データが宛先ロケーションに書き込まれる;
(7)他のプロセッサに対して、宛先のロックがリリースされる。
データをソース・メモリ・ロケーションからプロセッサ・チップに、しかる後、プロセッサ・チップから宛先メモリ・ロケーションに転送する際の組込み待ち時間(built in latency)は、スイッチが利用されるときでも、このプロセスにおいて固有のものである。
LOCK DST :宛先をロックする
LOCK SRC :ソースをロックする
LD A(バイト0) :AB0(4B又は8Bの量)
ST B(バイト0) :BB0(4B/8B)
INC :バイト数をインクリメントする
CMP :終了したかどうかを知るために比較する
BC :終了しない場合にブランチする
SYNC :同期化を遂行する
RL LOCK :ロックをリリースする
本発明は、プロセッサ(又は、プロセッサ・チップ)に関連した高速メモリ複製機構及びその高速メモリ複製機構によって提供される特徴を利用したデータ複製オペレーションを完了する効率的な方法を提供する。高速メモリ複製機構は、実際のデータ移動が完了することを必要とすることなく第1のメモリ・ロケーションから他のメモリ・ロケーションにデータを移動させるためのリクエストに続いてプロセッサが処理オペレーションを継続することを可能にする。
次に、図面、特に、図2を参照すると、本発明を実装し得るマルチプロセッサ式スイッチ接続データ処理システム200が示される。データ処理システム200は複数のプロセッサ・モジュール/チップを含み、それらのうちの2つのチップ201A及び201Dが示される。プロセッサ・チップ201A及び201Dの各々は1つ又はそれ以上のプロセッサ(P1、P2、PM、PN等)を含む。プロセッサ・チップの少なくとも1つ(例えば、例示のためのプロセッサ・チップ201A)には、メモリ複製機構211があり、そのメモリ複製機構に関しては、図3を参照して後述する。プロセッサ・チップ201A及び201Dは、スイッチ203を介して相互に及びデータ処理システム200の更なるコンポーネントに相互接続される。これらの更なるコンポーネントは分散メモリ・モジュールを含み、それらのモジュールのうちの2つであるメモリ205及び207が示される。それらのメモリの各々は、それぞれのメモリ・コントローラ206及び208を有する。メモリ・コントローラ208にはメモリ・キャッシュ213が関連付けられる。メモリ・キャッシュ213の機能は、下記のネーキッド・ライト・オペレーションの説明と関連して説明される。
メモリ複製機構211は、本発明のプロセスを制御及び(又は)開始するハードウェア・コンポーネント及びソフトウェア・コンポーネントを含む。特に、図3に示されるように、メモリ複製機構211は、制御ロジック303及び変換索引緩衝機構(TLB)319を含む。メモリ複製機構211は、ソース(SRC)アドレス・レジスタ305、宛先(DST)アドレス・レジスタ307、カウント(CNT)レジスタ309、アーキテクチャ的終了レジスタ313、及び複製完了レジスタ317を含む幾つかのレジスタから成る。更に、メモリ複製機構には、モード・ビット315も含まれる。メモリ複製機構211における図示の各コンポーネントの機能は、本明細書の関連セクションにおいて説明される。
図3の例示的実施例では、メモリ複製機構211は、ソース(SRC)アドレス・レジスタ305、宛先(DST)アドレス・レジスタ307、及びカウント(CNT)レジスタ309を含む。それらの名称が意味するように、宛先アドレス・レジスタ307及びソース・アドレス・レジスタ305は、それぞれ、移動するデータの宛先となるメモリ・ロケーションを表す宛先アドレス、及び移動するデータのソースとなるメモリ・ロケーションを表すソース・アドレスを記憶する。カウント・レジスタ309は、データ複製オペレーションにおいて転送されるキャッシュ・ラインの数を記憶する。
図6は、上述のハードウェア・コンポーネントを利用して本発明が完了するプロセス全体の主要なステップの幾つかを示す。そのプロセスは、ブロック501において開始し、しかる後、ブロック503に示されるように、メモリ・ロケーションAからメモリ・ロケーションBにデータを複製するためのリクエストを構成する命令がプロセッサP1によって送出される。メモリ複製機構は、ブロック505に示されるように、データ複製リクエストを受け取り、仮想ソース・アドレス及び宛先アドレスを検索し、対応する実アドレスをルックアップし、そしてネーキッド・ライト(WR)オペレーションを開始する。ブロック507に示されるように、ネーキッドWRオペレーションがファブリックにおいて実行され、メモリ複製機構がアーキテクチャ的に終了した状態を監視する。複製オペレーションがアーキテクチャ的に終了したという表示に続いて、ブロック509に示されるように、複製オペレーションが完了したことをメモリ複製機構がプロセッサに信号し、プロセッサは、データ移動があたかも物理的に完了してしまったが如く処理を継続する。そして、ブロック511に示されるように、メモリ複製機構がバックグラウンドにおいて実際のデータ移動を完了し、データが物理的に移動しつつあるときにキャッシュ・ラインの必要な保護を遂行する。しかる後、ブロック513に示されるように、プロセスが終了する。図6の個々のブロックによって行われるプロセスは拡張され、本願において提供される幾つかの他のフロー・チャートに関連して後述される。
本発明の明確な理解を可能にするために、小さいブロックのプログラム・コードと、メモリ・ロケーションA(仮想アドレスA及び実アドレスA1を有する)から他のメモリ・ロケーション(仮想アドレスB及び実アドレスB1を有する)へのデータのクローニングとに関連したデータ複製オペレーションの実装を説明することにする。従って、例えば、結果としてメモリ・ロケーションAからメモリ・ロケーションBへのデータのクローニングを生じる、プロセッサP1において実行されるプログラム・コードのサンプル・ブロックは次のようになる:
ST X (アドレスXが仮想ソース・アドレスAを保持する)
ST Y (アドレスYが仮想宛先アドレスBを保持する)
ST CNT (CNTは複製すべきデータ・ラインの数である)
SYNC
ADD
(1)ソース・アドレス(即ち、アドレスA)をSRCレジスタ305にストアするという機能、及び
(2)宛先アドレス(即ち、アドレスB)をDSTレジスタ307にストアするという機能
を遂行する。メモリ複製機構211は、プロセッサから受け取ったCNT値をCNTレジスタ309にストアする。ストアされたソース及び宛先アドレスは、前の処理中にプロセッサによって発生された仮想アドレスである。これらのアドレスは、メモリにおける対応する実アドレスを決定するためにTLB319によってルックアップ可能である。その後、それらのアドレスは、後述するデータ複製オペレーションを実行するために使用される。
図7のブロック526に説明を戻すと、メモリ複製機構に対する書き込み及び読み取りオペレーションを開始する前に、メモリ複製機構が、本実施例ではソース(SRC)トークン及び宛先(DST)トークンと呼ばれる一組のトークン(又は、アドレス保有権)を発生する。SRCトークンは、他のいずれかのメモリ複製機構がその時点でSRCページ・アドレスを利用しようとしているかどうかを知るためにシステムに照会を行うファブリックにおけるオペレーションである。同様に、DSTトークンは、他のいずれかのメモリ複製機構がその時点でDSTページ・アドレスを利用しようとしているかどうかを知るためにシステムに照会を行う、ファブリックにおけるオペレーションである。
(a)ネーキッド・ライト
次に図7におけるブロック527を参照すると、本発明は、新たなライト(write)オペレーション及びメモリ複製における応答の関連セットを紹介する。このオペレーションは、データ保有権を持たないキャッシュ・ライン・ライトである(そのオペレーションがデータ保有権を含まない、従って、ネーキッド(naked)というアドレス・オンリ・オペレーションであるので、ネーキッド・ライトとも呼ばれる)。ネーキッド・ライトは、データ複製オペレーションを開始するためにメモリ複製機構によって送出され、データが移動すべき宛先メモリ・ロケーションを含むメモリのメモリ・コントローラによって受け取られる。そのメモリ・コントローラはネーキッド・ライトに対する応答を生成し、その応答はメモリ複製機構に返送される。
図5は、キャッシュ・ライン(CL)リード(RD)及びライト(WR)オペレーション及びファブリック上で伝送される対応したページ(即ち、A0−A31及びB0−B31)のシミュレートされたライン・セグメントを示す。各オペレーションが後述のコヒーレンシ応答を受け取る。図示のように、ネーキッドCLライトは、如何なる実際のデータも送られることなく送出される。一旦ネーキッドCLWRが送出されると、移動するデータを受け入れるためのメモリ・ロケーションBがフリーであるかどうかを表すコヒーレンシ応答が各ネーキッド・ライトに対して発生される。その応答は、特定の宛先メモリ・ロケーションのメモリ・コントローラが、移動するデータを受け取るためのバッファを割り振ることができるか否かに従って、ヌル又は再試行となるであろう。
図8は、アーキテクチャ的に終了した状態が生じるプロセス及びアーキテクチャ的に終了した状態に対するプロセッサによる応答を示す。そのプロセスは、ブロック551に示されるように開始し、ブロック553に示されるように、メモリ複製機構が、実行されたネーキッドCLWRオペレーションに対するヌル応答を監視する。すべての実行されたネーキッドCL WRがメモリ・コントローラからヌル応答を受け取ったかどうかの決定がブロック553において行われる。メモリ・コントローラがすべてのネーキッドCLWRオペレーションに対するヌル応答を送出してしまったとき、ブロック557に示されるように、移動全体が「アーキテクチャ的に終了した」とみなされる。そして、メモリ複製機構は、移動すべきデータがメモリ・サブシステムから完全には読み出されてなくても、データ複製オペレーションが完了したということをリクエスティング・プロセッサに信号する。そこで、ブロック559において、プロセスが終了する。プロセッサは、その後の命令(例えば、開示の命令シーケンスでは、SYNCに続くADD命令)の実行を回復する。
1つの実施例では、受け取ったヌル応答に関するソフトウェア又はハードウェア・レジスタ・ベースのトラッキングが実装される。レジスタは、図2に示されるように、メモリ複製機構211内に設けられる。例えば、32というCNT値に関して、メモリ複製機構211は、32個のネーキッドCLライトのうちのどれがヌル応答を受け取ったかをトラッキングするために32ビットのソフトウェア・レジスタ313を設けられる。図13は、複製オペレーションが少なくとも部分的に終了したか又はアーキテクチャ的に終了したという表示をメモリ複製機構に供給するために利用される。そのレジスタは、メモリ複製機構によって監視される進行状況表示バーとして作用する。SYNCオペレーションを実装する代わりに、メモリ複製機構は、どのヌル応答が受け取られたかを監視/記録するためにレジスタ313を利用する。各ビットは、対応して番号付けられたネーキッドCLライト・オペレーションに対するヌル応答が受け取られると直ちに「1」にセットされる。図示の実施例によれば、ビット1,2、及び4に関連した宛先メモリ・アドレスに対するネーキッドCLライト・オペレーションは、レジスタ313の対応するビット・ロケーションに置かれた「1」によって明示されるように、完了している。
(a)読み取りリクエスト
次に図5の説明に戻り且つ図9のフロー・チャートを参照すると、ネーキッド・ライト・オペレーションの後に読み取りオペレーションを実行するプロセスが示される。このプロセスはブロック571で始まり、ブロック573に示されるように、メモリ複製機構がネーキッドCLWRに対するヌル応答を監視する。ブロック575において、ヌル応答が受け取られたかどうかに関する決定が行われる。各ネーキッドCL WRに対するヌル応答が受け取られるまで、メモリ複製機構は、ヌル応答を受け取ってないすべてのネーキッドCLWRを再試行する。ブロック577に示されるように、メモリ複製機構においてヌル応答が受け取られるとき、移動すべきデータ・セグメントがそのとき存在しているソース・メモリ・ロケーションに対して、対応する(アドレス)CL読み取りオペレーションが直ちにファブリック上に送出される。例えば、ネーキッドCLWR(B0)に対する受け取られたヌル応答の結果、図5に示されるように、ファブリック上へのCL RD(A0)の配送が生じる。ソース・メモリ・ロケーションのためのメモリ・コントローラが、CL読み取りオペレーションによってリクエストされたソース・データに対するソース・メモリ内の特定アドレスの利用可能性(即ち、そのアドレス・ロケーション又はデータが他のプロセスによってそのとき利用されていないかどうか)をチェックする。このチェックの結果、ヌル応答(又は、再試行)が生じる。
図5に示されるように、ネーキッドCL WRに対するヌル応答と共に、宛先IDタグが宛先メモリのメモリ・コントローラによって送出される。次に、発生された宛先IDタグが、(プロセッサのIDではなく或いはプロセッサのIDに加えて)CDRDオペレーションに付加されるか又はCD RDオペレーション内に挿入可能である。図示の実施例によれば、宛先IDタグが、それぞれのCL RDリクエストと共にファブリック上に置かれる。宛先IDタグは、読み取りオペレーションによってリクエストされたデータが戻されるべきロケーションを識別するためにCLRDリクエストに与えられるルーティング・タグである。特に、宛先IDタグは、関連するCL RDオペレーションによって移動させられるデータを受け取るためのメモリ・バッファ(ネーキッドCLWRオペレーションに対して割り振られた)を識別する。
リクエスティング・プロセッサ(又は、メモリ複製機構)を介して経路指定される移動ではないダイレクト「メモリ・ツー・メモリ」データ移動を完了するために、メモリ複製機構は、CLRDオペレーションのタグにおける物理プロセッサIDを宛先メモリ・ロケーションB(即ち、宛先ID)の実メモリ・アドレスと置換する。これは、後述するように、データが(メモリ複製機構によって経路指定される必要なく)メモリ・ロケーションBに直接送られることを可能にする。
1つの実施例では、複製オペレーションが完了するときをメモリ複製機構が知るために、どのキャッシュ・ラインが(如何に多くのデータ部分が)複製オペレーションを完了したかをトラッキングするソフトウェア・イネーブルド(software-enabled)複製完了オペレーションが行われる。アドレスが送出される時とデータがスイッチを介した宛先までそれの経路を作る時との間の不確定時間のために、ロード完了レジスタが、メモリ・ロケーションB0...Bnにおいて受け取られたデータ部分A0...Anの数をカウントするカウンタとして利用される。1つの実施例では、すべてのデータが宛先メモリ・ロケーションへのファブリック上を移動中であることを表すヌル応答を読み取りアドレス・オペレーションがいつ受け取るかに基づいて、メモリ複製機構が実際の移動の完了をトラッキングする。
データ複製オペレーションを完了するときの1つの重要な考察事項は、データの最もコヒーレントなコピーを含むメモリ・ロケーション又はキャッシュからデータが調達されなければならないということである。従って、本発明はデータをメモリから直接に調達するものとして説明されるけれども、本発明の実際のアプリケーションは、キャッシュ/メモリ・サブシステムの任意のコヒーレントなロケーションからデータが調達されることを可能にする。メモリ・サブシステムの1つの可能な構成が図10によって示される。
メモリのほかに上位レベル・キャッシュ及び下位レベル・キャッシュを含むメモリ・サブシステムに関して、ソース・アドレス及び宛先アドレスの両方に対するコヒーレントなデータがそれらのキャッシュ間で共用され、いずれのアドレスに対するコヒーレントなデータも、メモリよりもそれらキャッシュの1つに存在し得る。即ち、メモリ・サブシステムは、完全な連想メモリ・サブシステムとして動作する。ソース・アドレスに関して、データは、いつも、最もコヒーレントなメモリ・ロケーションから調達される。しかし、宛先アドレスに関しては、後述するように、コヒーレンシ・オペレーションが標準MESIプロトコルから変化する。
1.メモリ・キャッシュがM状態にあるデータを有するが、I状態には進むことができず、或いは、メモリ・コントローラがWRリクエストを受容することができない/WRリクエストにバッファを割り振ることができないことを表す再試行応答;
2.メモリ・コントローラがWRリクエストを受容することができ、すべての対応するキャッシュ・ラインに対するコヒーレンシ状態が直ちにI状態に進むことができることを表すヌル応答;
3.メモリ・キャッシュにおけるCLのコヒーレンシ状態がM状態からI状態に遷移したが、メモリ・コントローラがまだWRリクエストを受容することができないわけではない(即ち、メモリ・コントローラが、移動するデータを受け取るためのバッファをまだ割り振ることができない)ことを表すACK再送応答。
説明している実施例によれば、ネーキッド・ライト・オペレーションは、完全な連想メモリ・サブシステムにおけるすべての対応するキャッシュ・ラインを無効にする。特に、メモリ複製機構がメモリ・キャッシュの修正キャッシュ・ラインをターゲットとするネーキッドWRを実行する(即ち、キャッシュ・ラインがMESI又は他の同様のコヒーレンシ・プロトコルのM状態にある)ときには、いつも、メモリ・コントローラが、ネーキッド・ライトのスヌーピングに応答して、キャッシュ・ラインのコヒーレンシ状態を無効(I)状態に更新する。
ライブロックを回避する新規な方法が提供される。この方法は、ネーキッドWRがライブロックを回避するために飛行している間、修正キャッシュ・ラインの無効化を必要とする。
(a)複数メモリ複製機構及び複製オペレーションのオ−バラップ
ネーキッド・ライトを完了し且つCL RDにタグを割り当てるための方法に対する1つの主要な利点は、複数の複製オペレーションが多数のメモリ複製機構を介してシステム上に実装可能であることである。従って、本発明は、複数の独立したメモリ複製機構を可能にし、それによって、それらメモリ複製機構の各々が、ファブリック上で別のメモリ複製機構における別のデータ複製オペレーションとオーバラップするデータ複製オペレーションを遂行し得るようにするものである。特に、ロック(又は、ロック獲得)を必要としないメモリ複製機構のオペレーションは、これらの複数のメモリ複製機構が同時複製オペレーションを送出することを可能にする。
ダイレクト「ソース・ツー・宛先」複製オペレーションを可能にすることに加えて、複数の複製オペレーションからのデータがオーバラップするか又は同時に完了するとき、ファブリックにおけるデータ保有権を一意的に識別するためにも、宛先IDタグが利用される。単一の複製オペレーションからデータだけがいずれかの宛先メモリ・アドレスに一時に送られることがあるので、各宛先IDは必ず一意的である。
種々の複製オペレーション/データを一意的に識別するもう1つの方法は、宛先ID及び複製IDタグの結合を利用することによるものである。この実装に関しては、特定の複製オペレーションのための宛先IDが(後述のコヒーレンシ及びロック競合問題のために)他の未処理の複製オペレーションに対する宛先IDとは同じであり得ないので、複製IDタグのサイズが比較的小さいことがあり得る。
メモリ複製機構によって利用された個々のキャッシュ・ライン・アドレスは、アドレス・フィールドにおける12個の予約ビットのうちの最初の5ビットによって決定される。12個の予約ビットがあるので、更に小さい又は大きい数のアドレスが可能である。1つの実施例では、タグを設けるために他の予約ビットが利用される。従って、本発明は別個の複製タグ識別子と関連して説明されたけれども、アドレス・フィールドの上位桁ビットが宛先IDに割り当てられる場合、上記の特徴は、下位桁の予約ビットによって容易に与えられ得る。
1つの実施例はタグ・ベースの衝突に対する再試行の概念を導入する。この実施例によれば、タグは再使用可能であり、一意的である必要はない。従って、タグ「001」を有する第1複製オペレーションは、依然として、その後の複製オペレーションがそのタグ番号を割り当てられるとき、完了することが可能である。これが生じるとき、第1複製オペレーションを所有する第1メモリ複製機構は、その後の複製オペレーションに対するタグの割り当てをスヌープする(又は、その割り当てに対する信号を受ける)。そこで、第1メモリ複製機構は、その後のメモリ複製機構・オペレーションを所有する第2メモリ複製機構のネーキッド・ライト・オペレーションに対するタグ・ベースの再試行を実行する。第1複製オペレーションが完了する(即ち、データが移動してしまう)まで、その後の複製オペレーションが次のメモリ複製機構によって遅らせられる。
ほとんどの現在のプロセッサは、ファブリックにおける命令の実行を遅らせる(hold up)外部割込みによって動作する。外部割込みの特徴は、オペレーティング・システム(OS)によってセットされるハードウェア・ビットによって行われる。OSは、アサートされた(asserted)又はアサート解除された(de-asserted)割り込みビットでもってプロセッサの動作状態をセットする。アサートされるとき、割り込みが命令ストリームの実行中の任意の時間に生じ得るし、プロセッサ又はアプリケーションのいずれも、割り込みが生じたときに如何なる制御も行わない。
EEビット=0
ST A
ST B
ST CNT
EEビット=1
SYNC
1つの実施例では、メモリ複製機構(又は、プロセッサ)が上記の命令シーケンスを、複製オペレーションを表すものとして認識し、外部割り込みがその命令シーケンスに割り込みを行わないようにEEビットをセットする。別の実施例では、上記命令シーケンスは、メモリ複製機構により、結合アトミック・ストレージ・オペレーションとして受け取られる。その結合オペレーションは、本願では、ストア(ST)複製と呼ばれ、3つの個別のストア・オペレーション及びSYNCオペレーションの上記シーケンスを単一のST複製オペレーションと置換する。
本発明は、処理ユニットのための仮想又は実アドレシング機能に関するアプリケーション・ベースの動的選択を可能にする。メモリにおけるデータのロケーションに影響を与え得る各命令(例えば、ST命令)において、プロセッサの動作モードを仮想アドレシング・モード又は実アドレシング・モードとして選択するために、ソフトウェア・アプリケーション(即ち、OSではない)によってセット可能な予約(又は、リザーブ)ビットが与えられる。図16は予約ビット901を伴なうアドレス・オペレーション900を示す。予約ビット901は、プロセッサ上で実行されるソフトウェア・アプリケーションによって動的にセット可能である。プロセッサの動作モードは、そのプロセッサにおいて実行されているアプリケーション・プログラムによって与えられるコードに依存して仮想アドレシング・モードから実アドレシング・モードに及びその逆に変化する。
データ移動オペレーションのターゲットであるデータは、実メモリ、プロセッサ・キャッシュ、低レベル・キャッシュ、介入キャッシュ等の間の最もコヒーレントなメモリ・ロケーションから調達される。従って、ソース・アドレスは、リクエストされたデータのコヒーレント・コピーを含むメモリ・サブシステムにおける正しいメモリ・モジュールを表す。
(1)移動したデータが伝統的なプロセッサ開始の移動のようにキャッシュ(L2、L3等)をロールしない;
(2)アーキテクチャ的に終了したプロセッサ状態のために、実行中のソフトウェア・アプリケーションも極めて早く完了する;
ことを含む幾つかの他の識別可能な利点を提供する。例えば、従来技術では、128B CL移動(LD/ST)が、LD/ST:1CLRDx(アドレス及びデータ)、32CL WRy(アドレス及びデータ)、32CL WRy(アドレス及びデータ)として実行される。このオペレーションは、3つのアドレス・オペレーション及び384バイトのデータ・トランザクションに有効である。しかし、本発明に関しては、同じプロセスが1つのネーキッドCLWRy(アドレスのみ)及び1つのCL RDx(アドレスのみ)バス・トランザクションによって完了する。従って、大きなパフォーマンス・ゲインが得られる。
第2のメモリ複製機構を有する第2のプロセッサと、
メモリ・サブシステムと、
前記第1及び第2のプロセッサと前記メモリ・サブシステムとを相互接続するための手段と、
データ複製オペレーションの前に、前記第1のメモリ複製機構及び前記第2のメモリ複製機構のうちの特定のメモリ複製機構から送出される複数のトークン・オペレーションと、
を含み、
前記トークン・オペレーションは、前記特定のメモリ複製機構から生じるデータ複製オペレーションのためのソース・アドレス及び宛先アドレスをリザーブする、マルチプロセッサ・データ処理システム。
(2)前記トークン・オペレーションは、
複製オペレーションのデータが調達されるメモリ・アドレスを含むソース・トークンと、
複製オペレーションのデータが送られるメモリ・アドレスを含む宛先トークンと、
を含む、請求項1に記載のマルチプロセッサ・データ処理システム。
(3)前記ソース・トークン及び前記宛先トークンの各々は、単に前記データ処理システムのファブリックにおけるアドレス・オンリ保有権である、請求項2に記載のマルチプロセッサ・データ処理システム。
(4)前記ソース・トークン及び前記宛先トークンは、それぞれのソース及び宛先アドレスが他の複製オペレーションを行うために他のメモリ複製機構によって利用されるかどうかを決定するためにそれぞれのソース及び宛先アドレスを照会する、請求項2に記載のマルチプロセッサ・データ処理システム。
(5)前記メモリ複製機構内にあって、データ複製オペレーションを開始する前に、前記データ処理システムのファブリック上に前記ソース・トークン及び前記宛先トークンを送出するための手段を更に含む、請求項4に記載のマルチプロセッサ・データ処理システム。
(6)前記ソース・トークン及び前記宛先トークンは、前記ソース・トークン及び前記宛先トークンを送出したメモリ複製機構にメモリ・アドレスの使用可能性に関する表示を返送する、請求項5に記載のマルチプロセッサ・データ処理システム。
(7)前記メモリ複製機構内にあって、前記表示がヌル応答であるときにデータ複製オペレーションを開始するためのリクエストを送出するための手段を更に含み、
前記ヌル応答は、現在、他のメモリ複製機構がそれぞれのソース及び宛先アドレスを利用しようとしていないことを表す、請求項6に記載のマルチプロセッサ・データ処理システム。
(8)前記データ複製オペレーションを開始することは、現在、前記宛先アドレスを他のプロセスが利用しようとしていないと直ちにネーキッド・ライト・リクエストを送出し、それによって、複数の複製オペレーションのためのデータが同じソース・アドレスから調達される、請求項5に記載のマルチプロセッサ・データ処理システム。
(9)前記メモリ複製機構内にあって、他のメモリ複製機構から送出された各ソース及び宛先トークンをスヌープするための手段と、
前記スヌープに対して応答を供給するための手段と、
を更に含む、請求項6に記載のマルチプロセッサ・データ処理システム。
(10)前記応答を供給するための手段は、
前記ソース・トークン及び宛先トークンの前記ソース・アドレス及び宛先アドレスと未だ完了していないデータ複製オペレーションのソース・アドレス及び宛先アドレスとを比較するための手段と、
スヌープされた宛先アドレスが、未だ完了していないデータ複製オペレーションのソース・アドレス又は宛先アドレスと同じであるとき、再試行応答を供給するための手段と、
を含む、請求項9に記載のマルチプロセッサ・データ処理システム。
(11)マルチプロセッサ・データ処理システムのファブリックにおける複数の同時複製オペレーション時のライブロックを回避するための、前記データ処理システムにおける方法であって、
データ複製オペレーションを開始する前に、前記データ複製オペレーションを完了するために必要なソース・アドレス及び宛先アドレスの使用可能性をチェックするトークン・オペレーションを前記ファブリック上に送出するステップと、
現在、他のデータ複製オペレーションが前記ソース及び宛先アドレスを利用しようとしていないことを表す応答を前記トークン・オペレーションが供給するときだけ前記データ複製オペレーションを開始するステップと、
を含む方法。
(12)前記送出するステップは、
データ複製オペレーションのデータが調達されるメモリ・アドレスを含むソース・トークンを送出するステップと、
データ複製オペレーションが送られるメモリ・アドレスを含む宛先トークンを送出するステップと、
を含む、請求項11に記載の方法。
(13)前記送出するステップにおける前記ソース・トークン及び前記宛先トークンがファブリックにおいて保有権を与える、請求項11に記載の方法。
(14)更に、前記ファブリックにおける前記トーク・オペレーションをスヌープするステップを含む、請求項11に記載の方法。
(15)スヌープされたトークン・オペレーションのソース・アドレス及び宛先アドレスと現在実装されることになっている第2のデータ複製オペレーションの第2のソース・アドレス及び第2の宛先アドレスとを比較するステップと、
前記スヌープされたトークン・オペレーションに応答を供給するステップと、
を更に含む、請求項14に記載の方法。
(16)前記供給するステップは、スヌープされた宛先トークンの宛先アドレスが第2のデータ複製オペレーションの第2のソース・アドレス又は第2の宛先アドレスと同じであるときに再試行応答を供給するステップを含む、請求項15に記載の方法。
(17)前記開始するステップは、宛先トークン・オペレーションが宛先アドレスの使用可能性を表すと直ちに前記データ複製オペレーションを含み、
複数の複製オペレーションに対するデータが同じソース・アドレスから調達される、
請求項12に記載の方法。
201A、201D プロセッサ・チップ
203 スイッチ
205、207 メモリ
206、208 メモリ・コントローラ
209、210 メモリ・ロケーション
211 メモリ複製機構
213 メモリ・キャッシュ
Claims (17)
- 第1のメモリ複製機構を有する第1のプロセッサと、
第2のメモリ複製機構を有する第2のプロセッサと、
メモリ・サブシステムと、
前記第1及び第2のプロセッサと前記メモリ・サブシステムとを相互接続するための手段と、
データ複製オペレーションの前に、前記第1のメモリ複製機構及び前記第2のメモリ複製機構のうちの特定のメモリ複製機構から送出される複数のトークン・オペレーションと、
を含み、
前記トークン・オペレーションは、前記特定のメモリ複製機構から生じるデータ複製オペレーションのためのソース・アドレス及び宛先アドレスをリザーブする、マルチプロセッサ・データ処理システム。 - 前記トークン・オペレーションは、
複製オペレーションのデータが調達されるメモリ・アドレスを含むソース・トークンと、
複製オペレーションのデータが送られるメモリ・アドレスを含む宛先トークンと、
を含む、請求項1に記載のマルチプロセッサ・データ処理システム。 - 前記ソース・トークン及び前記宛先トークンの各々は、単に前記データ処理システムのファブリックにおけるアドレス・オンリ保有権である、請求項2に記載のマルチプロセッサ・データ処理システム。
- 前記ソース・トークン及び前記宛先トークンは、それぞれのソース及び宛先アドレスが他の複製オペレーションを行うために他のメモリ複製機構によって利用されるかどうかを決定するためにそれぞれのソース及び宛先アドレスを照会する、請求項2に記載のマルチプロセッサ・データ処理システム。
- 前記メモリ複製機構内にあって、データ複製オペレーションを開始する前に、前記データ処理システムのファブリック上に前記ソース・トークン及び前記宛先トークンを送出するための手段を更に含む、請求項4に記載のマルチプロセッサ・データ処理システム。
- 前記ソース・トークン及び前記宛先トークンは、前記ソース・トークン及び前記宛先トークンを送出したメモリ複製機構にメモリ・アドレスの使用可能性に関する表示を返送する、請求項5に記載のマルチプロセッサ・データ処理システム。
- 前記メモリ複製機構内にあって、前記表示がヌル応答であるときにデータ複製オペレーションを開始するためのリクエストを送出するための手段を更に含み、
前記ヌル応答は、現在、他のメモリ複製機構がそれぞれのソース及び宛先アドレスを利用しようとしていないことを表す、請求項6に記載のマルチプロセッサ・データ処理システム。 - 前記データ複製オペレーションを開始することは、現在、前記宛先アドレスを他のプロセスが利用しようとしていないと直ちにネーキッド・ライト・リクエストを送出し、それによって、複数の複製オペレーションのためのデータが同じソース・アドレスから調達される、請求項5に記載のマルチプロセッサ・データ処理システム。
- 前記メモリ複製機構内にあって、他のメモリ複製機構から送出された各ソース及び宛先トークンをスヌープするための手段と、
前記スヌープに対して応答を供給するための手段と、
を更に含む、請求項6に記載のマルチプロセッサ・データ処理システム。 - 前記応答を供給するための手段は、
前記ソース・トークン及び宛先トークンの前記ソース・アドレス及び宛先アドレスと未だ完了していないデータ複製オペレーションのソース・アドレス及び宛先アドレスとを比較するための手段と、
スヌープされた宛先アドレスが、未だ完了していないデータ複製オペレーションのソース・アドレス又は宛先アドレスと同じであるとき、再試行応答を供給するための手段と、
を含む、請求項9に記載のマルチプロセッサ・データ処理システム。 - マルチプロセッサ・データ処理システムのファブリックにおける複数の同時複製オペレーション時のライブロックを回避するための、前記データ処理システムにおける方法であって、
データ複製オペレーションを開始する前に、前記データ複製オペレーションを完了するために必要なソース・アドレス及び宛先アドレスの使用可能性をチェックするトークン・オペレーションを前記ファブリック上に送出するステップと、
現在、他のデータ複製オペレーションが前記ソース及び宛先アドレスを利用しようとしていないことを表す応答を前記トークン・オペレーションが供給するときだけ前記データ複製オペレーションを開始するステップと、
を含む方法。 - 前記送出するステップは、
データ複製オペレーションのデータが調達されるメモリ・アドレスを含むソース・トークンを送出するステップと、
データ複製オペレーションが送られるメモリ・アドレスを含む宛先トークンを送出するステップと、
を含む、請求項11に記載の方法。 - 前記送出するステップにおける前記ソース・トークン及び前記宛先トークンがファブリックにおいて保有権を与える、請求項11に記載の方法。
- 更に、前記ファブリックにおける前記トーク・オペレーションをスヌープするステップを含む、請求項11に記載の方法。
- スヌープされたトークン・オペレーションのソース・アドレス及び宛先アドレスと現在実装されることになっている第2のデータ複製オペレーションの第2のソース・アドレス及び第2の宛先アドレスとを比較するステップと、
前記スヌープされたトークン・オペレーションに応答を供給するステップと、
を更に含む、請求項14に記載の方法。 - 前記供給するステップは、スヌープされた宛先トークンの宛先アドレスが第2のデータ複製オペレーションの第2のソース・アドレス又は第2の宛先アドレスと同じであるときに再試行応答を供給するステップを含む、請求項15に記載の方法。
- 前記開始するステップは、宛先トークン・オペレーションが宛先アドレスの使用可能性を表すと直ちに前記データ複製オペレーションを含み、
複数の複製オペレーションに対するデータが同じソース・アドレスから調達される、
請求項12に記載の方法。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/313,322 US6986013B2 (en) | 2002-12-05 | 2002-12-05 | Imprecise cache line protection mechanism during a memory clone operation |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2004185610A true JP2004185610A (ja) | 2004-07-02 |
JP3836836B2 JP3836836B2 (ja) | 2006-10-25 |
Family
ID=32468220
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003388587A Expired - Fee Related JP3836836B2 (ja) | 2002-12-05 | 2003-11-18 | メモリ複製オペレーション時の不正確なキャッシュ・ライン保護機構 |
Country Status (3)
Country | Link |
---|---|
US (1) | US6986013B2 (ja) |
JP (1) | JP3836836B2 (ja) |
CN (1) | CN100568197C (ja) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006244388A (ja) * | 2005-03-07 | 2006-09-14 | Fujitsu Ltd | アドレススヌープ方法及びマルチプロセッサシステム |
JP2008197716A (ja) * | 2007-02-08 | 2008-08-28 | Nec Corp | データ一貫性制御システム及びデータ一貫性制御方法 |
JP2011154735A (ja) * | 2011-05-19 | 2011-08-11 | Fujitsu Ltd | アドレススヌープ方法及びマルチプロセッサシステム |
JPWO2013001613A1 (ja) * | 2011-06-28 | 2015-02-23 | 富士通株式会社 | スケジューリング方法およびシステム |
JP2016514882A (ja) * | 2013-04-11 | 2016-05-23 | クアルコム,インコーポレイテッド | コヒーレントバスを介したセマフォ管理シーケンスのパフォーマンスを改善するための方法および装置 |
US10198365B2 (en) | 2015-01-20 | 2019-02-05 | Fujitsu Limited | Information processing system, method and medium |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7421698B2 (en) * | 2003-12-22 | 2008-09-02 | Sun Microsystems, Inc. | System and method for dynamically and persistently tracking incremental profiling data in a process cloning application environment |
US20070052715A1 (en) * | 2005-09-07 | 2007-03-08 | Konstantin Levit-Gurevich | Device, system and method of graphics processing |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB1194787A (en) * | 1967-04-01 | 1970-06-10 | Fichtel & Sachs Ag | Resistance Welded Connection, e.g. for Shock Absorbers |
US6128714A (en) | 1994-03-17 | 2000-10-03 | Hitachi, Ltd. | Method of processing a data move instruction for moving data between main storage and extended storage and data move instruction processing apparatus |
US5881285A (en) * | 1996-05-07 | 1999-03-09 | Intel Corporation | Associating a physical driver object with its logical contents |
US6393540B1 (en) * | 1998-06-30 | 2002-05-21 | Emc Corporation | Moving a logical object from a set of source locations to a set of destination locations using a single command |
US6529968B1 (en) * | 1999-12-21 | 2003-03-04 | Intel Corporation | DMA controller and coherency-tracking unit for efficient data transfers between coherent and non-coherent memory spaces |
US6502170B2 (en) * | 2000-12-15 | 2002-12-31 | Intel Corporation | Memory-to-memory compare/exchange instructions to support non-blocking synchronization schemes |
US6813522B1 (en) * | 2000-12-29 | 2004-11-02 | Emc Corporation | Method of sharing memory in a multi-processor system including a cloning of code and data |
US6721851B2 (en) * | 2001-08-07 | 2004-04-13 | Veritas Operating Corporation | System and method for preventing sector slipping in a storage area network |
US6941136B2 (en) * | 2002-02-11 | 2005-09-06 | The Chamberlain Group, Inc. | Method and apparatus for memory cloning for a control device |
JP4183443B2 (ja) * | 2002-05-27 | 2008-11-19 | 株式会社日立製作所 | データ再配置方法及び装置 |
-
2002
- 2002-12-05 US US10/313,322 patent/US6986013B2/en not_active Expired - Fee Related
-
2003
- 2003-11-18 JP JP2003388587A patent/JP3836836B2/ja not_active Expired - Fee Related
- 2003-11-27 CN CNB2003101186584A patent/CN100568197C/zh not_active Expired - Fee Related
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006244388A (ja) * | 2005-03-07 | 2006-09-14 | Fujitsu Ltd | アドレススヌープ方法及びマルチプロセッサシステム |
JP2008197716A (ja) * | 2007-02-08 | 2008-08-28 | Nec Corp | データ一貫性制御システム及びデータ一貫性制御方法 |
JP2011154735A (ja) * | 2011-05-19 | 2011-08-11 | Fujitsu Ltd | アドレススヌープ方法及びマルチプロセッサシステム |
JPWO2013001613A1 (ja) * | 2011-06-28 | 2015-02-23 | 富士通株式会社 | スケジューリング方法およびシステム |
JP2016514882A (ja) * | 2013-04-11 | 2016-05-23 | クアルコム,インコーポレイテッド | コヒーレントバスを介したセマフォ管理シーケンスのパフォーマンスを改善するための方法および装置 |
US10198365B2 (en) | 2015-01-20 | 2019-02-05 | Fujitsu Limited | Information processing system, method and medium |
Also Published As
Publication number | Publication date |
---|---|
CN1504904A (zh) | 2004-06-16 |
JP3836836B2 (ja) | 2006-10-25 |
US6986013B2 (en) | 2006-01-10 |
CN100568197C (zh) | 2009-12-09 |
US20040111581A1 (en) | 2004-06-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100360064B1 (ko) | 고도로파이프라인된버스구조 | |
US6636949B2 (en) | System for handling coherence protocol races in a scalable shared memory system based on chip multiprocessing | |
JP4316016B2 (ja) | 複数のシステムバスを有するコンピュータシステムにおいてメモリコヒーレンスを維持するためのシステムおよび方法 | |
US7343456B2 (en) | Load-linked/store conditional mechanism in a CC-NUMA system | |
US6640287B2 (en) | Scalable multiprocessor system and cache coherence method incorporating invalid-to-dirty requests | |
US6633967B1 (en) | Coherent translation look-aside buffer | |
US6996693B2 (en) | High speed memory cloning facility via a source/destination switching mechanism | |
US7069394B2 (en) | Dynamic data routing mechanism for a high speed memory cloner | |
US6625698B2 (en) | Method and apparatus for controlling memory storage locks based on cache line ownership | |
US6892283B2 (en) | High speed memory cloner with extended cache coherency protocols and responses | |
US20040117561A1 (en) | Snoop filter bypass | |
JP2001147903A (ja) | 効率的なバス機構及びコヒーレンス制御を有する繰り返しチップ構造を有するスケーラブル共用メモリ・マルチプロセッサ・コンピュータ・システム | |
US6898677B2 (en) | Dynamic software accessibility to a microprocessor system with a high speed memory cloner | |
EP0480858A2 (en) | Hardware primary directory lock | |
EP0380842A2 (en) | Method and apparatus for interfacing a system control unit for a multiprocessor system with the central processing units | |
CA2279138C (en) | Non-uniform memory access (numa) data processing system that decreases latency by expediting rerun requests | |
JP3836836B2 (ja) | メモリ複製オペレーション時の不正確なキャッシュ・ライン保護機構 | |
US7502917B2 (en) | High speed memory cloning facility via a lockless multiprocessor mechanism | |
US6915390B2 (en) | High speed memory cloning facility via a coherently done mechanism | |
US6986011B2 (en) | High speed memory cloner within a data processing system | |
US6928524B2 (en) | Data processing system with naked cache line write operations | |
US8108618B2 (en) | Method and apparatus for maintaining memory data integrity in an information handling system using cache coherency protocols | |
JP4965974B2 (ja) | 半導体集積回路装置 | |
JPH0816475A (ja) | マルチプロセッサシステム | |
EP1363188B1 (en) | Load-linked/store conditional mechanism in a cc-numa (cache-coherent nonuniform memory access) system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20051222 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060110 |
|
RD12 | Notification of acceptance of power of sub attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7432 Effective date: 20060201 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20060201 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060407 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20060718 |
|
RD14 | Notification of resignation of power of sub attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7434 Effective date: 20060718 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20060727 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100804 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110804 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120804 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130804 Year of fee payment: 7 |
|
LAPS | Cancellation because of no payment of annual fees |