JP2007122741A - 非対称型異種マルチプロセッサ環境でアトミック更新プリミティブを提供するための方法 - Google Patents

非対称型異種マルチプロセッサ環境でアトミック更新プリミティブを提供するための方法 Download PDF

Info

Publication number
JP2007122741A
JP2007122741A JP2006334314A JP2006334314A JP2007122741A JP 2007122741 A JP2007122741 A JP 2007122741A JP 2006334314 A JP2006334314 A JP 2006334314A JP 2006334314 A JP2006334314 A JP 2006334314A JP 2007122741 A JP2007122741 A JP 2007122741A
Authority
JP
Japan
Prior art keywords
command
lock line
reservation
dma
cache
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2006334314A
Other languages
English (en)
Other versions
JP4730742B2 (ja
Inventor
Michael N Day
マイケル・エヌ・デイ
Charles R Johns
チャールズ・アール・ジョーンズ
James A Kahle
ジェームズ・エー・カール
Peichum P Liu
ペイチャム・ピー・リュー
Thuong Quang Truong
トゥオン・クアン・チュオン
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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2007122741A publication Critical patent/JP2007122741A/ja
Application granted granted Critical
Publication of JP4730742B2 publication Critical patent/JP4730742B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • AHUMAN NECESSITIES
    • A47FURNITURE; DOMESTIC ARTICLES OR APPLIANCES; COFFEE MILLS; SPICE MILLS; SUCTION CLEANERS IN GENERAL
    • A47GHOUSEHOLD OR TABLE EQUIPMENT
    • A47G19/00Table service
    • A47G19/22Drinking vessels or saucers used for table service
    • A47G19/2205Drinking glasses or vessels
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B65CONVEYING; PACKING; STORING; HANDLING THIN OR FILAMENTARY MATERIAL
    • B65DCONTAINERS FOR STORAGE OR TRANSPORT OF ARTICLES OR MATERIALS, e.g. BAGS, BARRELS, BOTTLES, BOXES, CANS, CARTONS, CRATES, DRUMS, JARS, TANKS, HOPPERS, FORWARDING CONTAINERS; ACCESSORIES, CLOSURES, OR FITTINGS THEREFOR; PACKAGING ELEMENTS; PACKAGES
    • B65D85/00Containers, packaging elements or packages, specially adapted for particular articles or materials
    • B65D85/70Containers, packaging elements or packages, specially adapted for particular articles or materials for materials not otherwise provided for
    • B65D85/804Disposable containers or packages with contents which are mixed, infused or dissolved in situ, i.e. without having been previously removed from the package
    • B65D85/808Disposable containers or packages with contents which are mixed, infused or dissolved in situ, i.e. without having been previously removed from the package for immersion in the liquid to release part or all of their contents, e.g. tea bags
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30076Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
    • G06F9/30087Synchronisation or serialisation instructions
    • 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
    • G06F12/0831Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0038System on Chip

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mechanical Engineering (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Multi Processors (AREA)

Abstract

【課題】 DMA転送との共有メモリを有する、非対称型単一チップ異種マルチプロセッサ・コンピュータ・システムに、アトミック更新のプリミティブを提供すること。
【解決手段】 予約付きゲット・ロック・ライン・コマンド、条件付きプット・ロック・ライン・コマンド、および無条件プット・ロック・ライン・コマンドを有するセットから、少なくとも1つのロック・ライン・コマンドが生成される。
【選択図】 図1

Description

本発明は、一般にメモリのアトミック更新に関し、より具体的には、付属のプロセッサ・ユニットでの直接メモリ・アクセス・コマンドを使用したアトミック更新の使用に関する。
従来の対称型マルチプロセッサ・システム、すなわち、複数の主プロセッサ・ユニット(MPU)を備えたマルチプロセッサでは、MPUは、ロード/ストア命令を使用して共通の共有メモリに直接アクセスすることができる。これらのロード/ストア命令に加えて、複数のMPU上で実行中のプログラムによって共有されるメモリの同期化およびこのメモリへのアクセスを制御するために、「アトミック(一微小単位での)」読取り/修正/書込み機能が提供されていることが多い。「アトミック」コマンドは、一般に、そのデータ領域に潜在的にアクセスしている他のユニットに対して、シーケンスが単一のオペレーションであるかのようにメモリ内のデータの読取り、修正、および書込みを可能にするコマンドとして定義することができる。これは従来、シーケンス全体の実行が終了するまで他のユニットがメモリ領域にアクセスするのをロックアウト(閉鎖)するか、または、予約および条件付きストア技法によるよりプリミティブなロードを使用する、ハードウェア・シーケンスによって実行されるものである。これは一般に、メモリにアクセスすることのできる他のMPUまたはI/Oユニットによって読み取られるかまたは書き込まれる前に、メモリの領域が完全に更新され整合性を持つこと、すなわち、そのメモリ領域によってアトミック・コマンドまたは更新シーケンスが「完了する」ことを、保証するために実行されるものである。
アトミック・コマンドは、「比較及びスワップ(Compare and Swap)」、「テスト及び設定(Test and Set)」「フェッチ及びノー・オペレーション(Fetch and No Operation)」、「フェッチ及びストア(Fetch and Store)」などの、特殊な命令形式を取ることが多い。これに代わる技法は、ソフトウェア内でアトミック・オペレーション・シーケンスを実施するための機能を提供するものである、MPUにおけるより基本的な「ロード及び予約(Load and Reserve)」および「条件付きストア(Store Conditional)」の命令ペアを提供することである。これらの技法は、同種のMPUからなる対称型マルチプロセッサ・システムで、適切な働きをすることができる。
非対称型異種マルチプロセッサ・システムでは、MPUは従来の共有メモリ・スタイルで配置される。専用プロセッサであるAPUは、DMAエンジンによって命令されるブロック移動を介して共有メモリに間接的にアクセスすることの可能な、それら独自の専用の命令およびデータ・メモリを有する。共有メモリにアクセスするDMAエンジンを用いた複数のMPUおよびAPUをピア(対等要素)として使用する場合、アトミック更新メカニズムをDMAエンジンまで拡張する必要がある。これは一般に、共有メモリ内のデータへのアクセスを調整する機構を提供するために実行される。こうしたメカニズムを備えていない複数のAPUが存在する環境では、DMAエンジンへのコマンドを介して各APUに対して一度に1つずつ作業を分割する方式である、MPUのマスタ/スレーブ方式を使用すると、結果として、APUのアイドル時間および個々のAPUに作業を割り当てるために使用されるMPU時間のために、システムの使用率および効率が悪くなる。
したがって、共有メモリのアトミック更新において、他のMPUおよびAPUのDMAエンジンにピアとして関与しながら、APUのローカル・ストレージと共有システム・メモリとの間でデータをコピーするためにAPUが用いることが可能なDMAエンジンが求められている。
本発明は、DMAとの共有メモリを有する非対称型単一チップの異種マルチプロセッサ・コンピュータ・システムに、アトミック更新プリミティブを提供するものである。予約付きゲット・ロック・ライン(Get Lock Line)コマンド、条件付きプット・ロック・ライン(Put Lock Line Conditional)コマンド、および無条件プット・ロック・ライン(Put Lock Line Unconditional)コマンドを含むセットから、少なくとも1つのロック・ライン・コマンドが生成される。
次に、本発明およびその利点をより完全に理解するために、以下の発明を実施するための最良の形態について、添付の図面に関連して説明する。
以下の考察では、本発明を完全に理解するために、多数の特定の細部について述べる。ただし、当業者であれば、本発明がこうした特定の細部なしで実施可能であることを理解されよう。その他にも、本発明の細部を不必要に不明瞭にしないために、よく知られた要素について概略図またはブロック図の形で示されている。さらに、ネットワーク接続、電磁信号方式などに関する細部が、本発明を完全に理解するために必要であるとみなされない限り、および、関連分野の通常の技術者が理解できる範囲内であるとみなされる限り、ほとんどの部分について、こうした細部は省略されている。
以下の記述では、処理ユニット(PU)がデバイス内の唯一の計算プロセッサである場合がある。こうした状況では、PUは典型的にはMPU(主処理ユニット)と呼ばれる。処理ユニットは、所与の計算デバイス用に開発された何らかの方法またはアルゴリズムに従って計算負荷を共有する、多くの処理ユニットのうちの1つである場合がある。以下の記述では、MPUがデバイス内で唯一の計算要素であるか、あるいはMPUが他のMPUと計算要素を共有しているかに関わらず、プロセッサに関するすべての参照でMPUという用語を使用するものとする。
さらに、特に指示がない限り、本明細書に記載されたすべての機能は、ハードウェアまたはソフトウェア、あるいはそれらのいくつかの組合せのうちのいずれかで実行可能であることにも留意されたい。しかし、好ましい実施形態では、当該機能は、特に指示がない限り、コンピュータ・プログラム・コードなどのコード、ソフトウェア、および/または、こうした機能を実行するようにコード化された集積回路、に従ってコンピュータまたは電子データ・プロセッサなどのプロセッサによって実行される。
次に図1を参照すると、マルチプロセッサ環境でAPU110がピアとしてより自律的に関与できるようにするシステム100が開示されている。これは、DMAエンジン115のブロック・モード使用を介してシステム・メモリ170に間接的にアクセスできるAPU110を使用することによって実行される。一般にシステム100では、APU110は「ロード及び予約」(getllar)のロック・ライン・コマンドおよび「条件付きストア」(putllc)または「無条件ストア」(putllu)のロック・ライン・コマンドを使用して、共有メモリ170にアクセスすることおよびその予約グラニュール(一微細単位)をロックすることによって、アトミック読取り/修正/書込みシーケンスを採用する。
システム100は、バス・インターフェース・コントローラ(BIC)150に結合された1つまたは複数のMPU複合体193、ならびにBIC150に結合された1つまたは複数のAPU複合体192を備える。BIC150はメモリ・コントローラ160に結合され、次にこれがシステム/共有メモリ170に結合される。1つまたは複数のMPU180を有する、少なくとも1つのAPU/DMA複合体192および少なくとも1つのMPUユニット複合体193は、システムの計算機能を備える。
APU複合体192はローカル・ストア105に結合されたAPU110を備える。APU110は制御バスを介してDMA待ち行列120に結合される。DMA待ち行列120はDMAエンジンに結合される。DMAエンジン115はアトミック機構130に結合される。
アトミック機構130は予約ステーション(RS)135およびアトミック・キャッシュ137を備える。アトミック・キャッシュ137はレベル2(L2)キャッシュであってよい。アトミック機構130は制御バスおよびスヌープ・バスを介してBIC150に結合される。
MPU複合体193は、BIC150に結合されたL2キャッシュ187に結合された1つまたは複数のMPU180を備える。BIC150はメモリ・コントローラ160に結合され、次にこれがシステム/共有メモリ170に結合される。他の実施形態では、システム100においてDMAコマンドを介してAPU110間でのアトミック更新シーケンスをサポートするために、MPU複合体193は使用せずに、複数のAPU複合体192が使用される。あるいは、本発明の範囲内には、DMAコマンドを介してアトミック更新シーケンスをサポートする他のユニットがある。
一般に、APU110は、同期化などの理由で、getllar、putllc、およびputlluのロック・ラインDMAコマンドの使用を通じて、アトミック・オペレーションを採用する。DMAコマンドは、DMA待ち行列120によって適切にソートされた後に、APU110の要求時にDMAエンジン115によって発行される。通常、ロックの取得およびロックの解除が、典型的にはAPU110内で実行中のプログラムに関して同期的であるため、ロック・ラインDMAコマンドは、即時に実行するためにDMA待ち行列120の前部に転送される。
典型的には、DMAコマンドgetllarの発行によってRS135が設定される。DMAエンジン115のコマンドで、システム・メモリ170内の選択されたメモリ・アドレスのデータが処理のためにローカル・ストア105に搬送される。通常、このデータ転送は、1キャッシュ・ライン分128バイトとすることができる。このデータは、時にはアトミック・キャッシュ137で見つけることができる(以前に発行されたgetllarがこのデータへのアクセスに使用された場合)。しかし、アトミック・キャッシュ137で見つからない場合、そのデータに関する要求がBIC150に出され、システム・メモリ170から、または他の付属ユニット(それぞれ、MPUまたはAPU)に関連付けられたキャッシュから検索されたデータが、ローカル・ストア105にコピーされ、さらにアトミック・キャッシュ137にもコピーされる。
さらに、getllarコマンドの際中に、RS135内の予約グラニュールについての「予約」が行われる。予約グラニュールのサイズは実施に応じて異なるが、予約グラニュールがキャッシュ・ライン・サイズと一致する方が実施しやすい。APU110プログラムは、制御バス103を介してDMA待ち行列120からコマンド完了ステータスを読み取ることによって、getllarコマンドが完了するのを待つ。制御バス103は、一般に複数のチャネルを備え、各チャネルは事前に定義された情報を搬送する。getllarコマンドは、RS135で予約が設定され、データがローカル・ストア105にコピーされると「完了」として報告される。APU110プログラムは、通常、ローカル・ストア・バス107を介したローカル・ストア105内のデータを、期待される結果、たとえばロックが行われたかを、またはロックが解放されたかを示す値、と比較をし、当該値が(ロックが行われたことを指定する値などの)期待された結果ではなかった場合、制御バス103を介してDMA待ち行列120にgetllarコマンドをいずれにせよ再発行する。他の実施形態では、値が期待された結果(ロック解放など)である場合、APU110プログラムは、ローカル・ストア・バス107を介して(ロックが行われたことを指定するために)ローカル・ストア内のデータを修正し、アトミック・キャッシュ137内のデータを「アトミックに」更新すること、あるいは、ローカル・ストア105内に有するデータがシステム・メモリ170またはシステム・メモリの他のユニットのキャッシュからの最新のコピーであるように保証することを試みるために、制御バス103を介してDMA待ち行列120にputllcコマンドを発行する。
予約ステーション135に格納された予約グラニュール・アドレス、にあてはまるアドレスについてのアトミック・キャッシュ137の「キル(Kill)」タイプのスヌープが、「putllc」コマンドを実行する前にアトミック機構130によってBIC150から受け取られた場合、getllarコマンドの実行によって以前に設定された予約は、予約ステーション135でリセットされる。典型的には、BIC150に接続された他のユニットがアトミック・キャッシュ137に格納可能なデータの修正(書込み)を試みると、キル・タイプのスヌープ・コマンドが受け取られる。
DMAエンジン115がputllcの結果としてローカル・ストア105からのデータをアトミック・キャッシュ137またはシステム・メモリ170のいずれかへコピーする機会がある前に、予約が無効化されると、DMAエンジン115は、DMA待ち行列120内でputllcコマンドに「予約喪失(Reservation Lost)」ステータスのマークを付け、ローカル・ストア105からアトミック・キャッシュ137またはシステム・メモリ170へデータをコピーすることはない。putllcコマンドによってアドレス指定された予約グラニュールについての予約が予約ステーション135内に依然として存在する場合、アトミック機構130は、キル・タイプのスヌープ・コマンドをBIC150を介して他のユニットに送り、同じ予約グラニュールについて他のユニット(APUまたはMPU)がそれらのアトミック機構内で実行したかもしれないどのような予約をもリセットする。これは、BIC150に接続された他のプロセッサ(MPU、APU)がそれらの処理を完了する前にアトミック機構130がデータのこの更新処理を完了したため、また、この更新されたデータがさらに他のプロセッサによって使用されるはずのデータとなるためである。
次に、DMAエンジン115は、ローカル・ストア105からアトミック・キャッシュ137へデータをコピーし、予約ステーション135内の予約がリセットされる。その後DMAエンジン115は、DMA待ち行列120内のputllcコマンドについて「成功(Succeeded)」ステータスを設定する。APU110プログラムは、ステータスが「成功」であるか「予約喪失」であるかを判別するために、制御バス103を使用してDMA待ち行列120からのputllcコマンドの完了ステータスを待機して読み取る。「成功」の場合アトミック・オペレーションは完了し、「予約喪失」の場合、getllarコマンドの発行で始まるシーケンス全体がAPU110プログラムによって再試行されなければならない。
次に、putllcコマンドが首尾よく完了し、その後のオペレーションが「ロック」を保持しながら実行された後、APU110はputtluコマンドを発行して「ロック」を解除する。puttluコマンドは、一般に、データをAPU110ローカル・ストアからアトミック・キャッシュ137に無条件に転送するために使用される。キャッシュ・ラインが存在しアトミック・キャッシュ137内で排他的であるとしてマーク付けされた場合、DMAエンジン115はAPU110ローカル・ストアからアトミック・キャッシュ137にデータを転送する。
キャッシュ・ラインが存在するが排他的でないとしてマーク付けされた場合、アトミック機構は、このデータのコピーを有する他のユニットのキャッシュ内のキャッシュ・ラインを無効にする、「請求解除(Declaim)」スヌープ・コマンドを発行する。このラインにはキャッシュ137で「排他的(Exclusive)」とマーク付けされ、DMAエンジン115はデータをAPU110ローカル・ストアからアトミック・キャッシュ137に転送する。最終的に、キャッシュ・ラインがアトミック・キャッシュ137に存在しない場合、アトミック機構130は、BIC150を介してスヌープ要求を発行することによって、何らかの他のユニットのキャッシュにラインが存在するかどうかを判別する。他のユニットのキャッシュに存在する場合、他のユニットのキャッシュからシステム100に関連付けられたアトミック・キャッシュにデータが転送され、データを格納しているキャッシュ・ラインは、データの転送元となったキャッシュ内では無効となる。他のユニットのキャッシュにデータが存在しない場合、メモリ・コントローラ160が共有メモリ170からデータを供給することになる。どちらの場合も、データを格納しているアトミック・キャッシュ内のキャッシュ・ラインは、「排他的」として描写される。その後、DMAエンジン115はローカル・ストア105からアトミック・キャッシュ137へデータを転送する。
言い換えれば、「比較及びスワップ」アトミック更新では、比較の対象と一致するもの、即ちロック解放を示す値となり得るものをAPU110が取得するまで、APU110はgetllarコマンドを繰り返し発行することになる。値が首尾よく比較されると、「スワップ」が試行される。すなわち、値は、場合によっては「ロック実行」を示す値に変更される。次に、「値をアトミックにスワップするため」にputtllcが発行され、場合によっては、古い値であるロック解放が新しい値であるロック実行にスワップされる。これが成功すると、APU110はリソースを「所有」し、言い換えれば、読取り、または読取り/書込み、の特権を有し、「ロック済み」オブジェクト上で他のオペレーションを実行する。次に、APU110が完了すると、「ロックを解除」するか、または言い換えると、値を「ロック実行」から「ロック解放」の値に変更する。これはputtluコマンドを使用して実行される。
アトミック・キャッシュ137の存在は、アトミック更新の実行の観点から、ある役割を果たすものである。必然的に、同じデータのアトミック更新が、BIC150に接続された複数のAPU複合体(APU/DMAユニット)192、MPU複合体193によって頻繁かつ同時に試行される可能性がある。アトミック・キャッシュ137はロック・ラインに関連付けられた最新のデータを有することができるため、他のキャッシュが更新されると、必ずしもシステム・メモリ170からではなく、他のアトミック・キャッシュ137からの情報に更新することができる。この実施形態では、複数のユニット間でのキャッシュからキャッシュへの転送が同じ集積回路チップ上で発生することが可能であり、通常は、2つの異なる集積回路チップ間で発生するシステム・メモリからキャッシュへの転送よりもかなり高速である。
一般に、システム100は、同期化の本質ではないメモリ転送などのような、システム・メモリ170から転送されたすべてのデータをキャッシュするのではなく、アトミック・キャッシュ137で同期化に使用されたデータのDMA転送の結果をキャッシュすることによって、時間を節約する。これにより、システム・メモリとローカル・ストアとの間でのすべてのデータのDMA転送をキャッシュするのに使用されるキャッシュよりも、アトミック・キャッシュ137が小さくて良いという点で、かなりのチップの表面積が節約される。さらに、検索グラニュールを、キャッシュ・ラインのサイズおよび配列に合わせて事前に規定することができるため、特定のデータをアトミック・キャッシュ137から検索するのに必要な時間が削減される。非ロック・ラインDMAコマンドは、異なる転送サイズおよび配列を有することができる。
たとえば、一実施形態では、アトミック・キャッシュ137でロック・ライン・コマンドを使用してアクセスされるデータ用に、4つのキャッシュ・ライン(128バイト×4)が予約され、これが、キャッシュからキャッシュ、キャッシュからローカル・ストア、システム・メモリからキャッシュなどの、メモリ転送の基本単位である。しかし、当業者であれば、他の予約グラニュール・サイズも使用可能であることを理解されよう。さらに、APUそれ自体が、必要な同期化および相互排除を、「ロック・ライン」コマンドを使用することによって直接提供することができる。
次に、図2を見ると、システム100でDMAアトミック転送を使用するための方法200が示されている。方法200は、特定のコマンドおよびパラメータを使用して、どのアトミック・コマンドが発行されたか、および、エラー状態によって不適切な呼出しまたはコマンドの実行が生じたかどうかを判別することができる。
ステップ205では、APU110によってgetllarコマンドが発行される。ステップ205では、APU110は、それに結合された制御バス上にアトミックDMAコマンド「getllar」を発行し、DMA待ち行列120に搬送されるようにする。この実施形態では、getllarコマンドは3つのパラメータを含む。第1のパラメータは、検索されたデータをローカル・ストア105内で最終的に送信させる、ローカル・ストア・アドレス(LSA)である。第2のパラメータは、システム・メモリ内でデータのコピー元となる高位アドレスである、有効高位アドレス(EAH)である。第3のパラメータは、システム・メモリ内でデータのコピー元となる低位アドレスである、有効低位アドレス(EAL)である。EAHおよびEALパラメータは、アトミック更新シーケンスに関連する共有メモリ内の位置を定義する。
ステップ205では、getllarコマンドは待ち行列の前部に配置される。このコマンドはDMA待ち行列120上に配置される。このコマンドおよび関連付けられたパラメータは、一連の「チャネルへの書込み(Write to Channel)」コマンドを介して書き込まれる。
ステップ210では、DMAエンジンが、システム・メモリ170かあるいはL2キャッシュ187またはアトミック・キャッシュ137かのいずれかからローカル・ストア105へのデータの転送を命じる。ステップ215では、アトミック・キャッシュ137内でデータが見つからなかった場合、BIC150がこのデータの要求を実施する。BIC150は、第1に、スヌープ要求を介して、MPU複合体193のL2キャッシュ187、および/または、APU複合体192のアトミック・キャッシュ137、のうちのいずれかに、選択されたデータを要求する。要求されたデータがいずれのキャッシュにも見つからない場合、BIC150はシステム・メモリ170にデータを要求する。ステップ220では、L2キャッシュ187またはシステム・メモリ170のいずれかからデータが適宜転送されると、転送されたデータのコピーがアトミック・キャッシュ137に格納され、DMAエンジンはアトミック・キャッシュ137からローカル・ストア105にデータを転送する。
ステップ225では、DMAエンジン115によって、getllarコマンドに関連する予約グラニュール位置を指定するアドレスと共に、RS135に予約が設定される。ステップ227では、APU110が、getllarコマンドが完了した旨の完了通知を待つ。ステップ230では、APU110が、そのローカル・ストア105に配置されたデータを処理する。ステップ235では、APU110が、ローカル・ストア内のロック・ライン・データの処理および修正後、putllcコマンドを発行する。
ステップ240では、getllarコマンドによって以前に設定されたロック・ライン予約グラニュールについての予約を予約ステーション130が依然として有しているかどうかを、アトミック機構130が判別する。予約がない場合、ステップ242で、putllucコマンド・ステータスが「失敗(Failed)」に設定され、ステップ290に進む。
しかし、予約が依然として存在する場合、ステップ265で、DMAエンジン115がローカル・ストア105からアトミック・キャッシュ137へデータを転送する。ステップ270では、予約ステーション135内でこのキャッシュ・ラインに関する予約ステーションがリセットされる。ステップ280では、putllcコマンドのステータスが「成功」としてDMA待ち行列120に格納される。ステップ290では、APUプログラムがputllcコマンドの完了または非完了に関するロック・ライン・ステータスを読み取る。ステップ295では、putllcコマンドが失敗の場合、シーケンス全体がステップ205から再度実行され、他のgetllarコマンドが発行される。しかし、puttlcコマンドが成功の場合、図2のアトミック更新シーケンスはステップ297で終了する。
次に図3を見ると、putlluコマンドを発行するための方法300が示されている。一般に、putlluコマンドは、図2のアトミック更新シーケンスによって以前に獲得されたソフトウェア・ロックを解除するために使用される。
ステップ305では、APU110がDMA待ち行列にputtluコマンドを発行する。ステップ310では、DMAエンジン115がputlluコマンドを処理し、アトミック・キャッシュ137への128バイトの書込みを要求する。ステップ315では、アトミック・キャッシュ137がそのディレクトリを読み取って、ラインがアトミック・キャッシュ137に存在するかどうか、および排他的状態であるかどうかを判別する。ステップ320では、キャッシュ・ラインが関連するアトミック・キャッシュ137に存在するかどうか、およびそれが排他的状態であるかどうかを、アトミック・キャッシュ137が判別する。
関連するアトミック・キャッシュ137にキャッシュ・ラインが存在するが、排他的状態でない場合、ステップ330で、アトミック・キャッシュ137はBIC150に対して排他的アクセスでデータを取得するように要求する。「修正済み、排他的、共有、および無効」(MESI:Modified-Exclusive-Shared-Invalid)キャッシュ制御プロトコルを使用することが可能であるが、他の形式のキャッシュ制御プロトコルも本発明の範囲内である。
関連するアトミック・キャッシュ137にキャッシュ・ラインが存在し、かつ排他的である場合、ステップ338で、アトミック機構130はDMAエンジン115に対してローカル・ストア105からアトミック・キャッシュ137へのデータの転送を開始するように命じる。一般に、アトミック・キャッシュ137内でアトミック・データ転送を行うと、データ・バスを介したアトミック・キャッシュ137からローカル・ストア105への転送の方が、それ以外の、ローカル・ストア105からシステム/共有メモリ170への転送において示されるであろうよりも、かなり高速の処理が可能になる。
本発明は、多くの形式および実施形態が可能であることを理解されよう。したがって、前述の内容で、本発明の趣旨または範囲を逸脱することなく、いくつかの変形形態が実行可能である。本明細書で概説した機能は、様々なプログラミング・モデルを可能にする。本開示は、いかなる特定のプログラミング・モデルをも優先するものであると解釈すべきではなく、代わりに、これらのプログラミング・モデルを構築することのできる基礎となるメカニズムを対象とするものである。
以上、本発明について、その好ましい実施形態のいくつかを参照しながら述べてきたが、開示された実施形態は、本質的には限定的なものではなく、例示的なものであること、ならびに、前述の開示では、広範囲にわたる変形、修正、変更、および置換えが企図され、場合によっては、本発明のいくつかの特徴は、他の特徴をこれに対応して使用することなく、採用することができるということに留意されたい。こうした変形および修正の多くは、前述の好ましい実施形態に関する記述の再検討に基づいて、当業者にとって明らかなものであり、また望まれるものであるとみなすことができる。したがって、特許請求の範囲は、広範囲に、そして本発明の範囲に適合した形で解釈されることが妥当である。
システム・メモリ、DMAエンジン、アトミック機構、およびローカル・ストアに結合された、複数のバスのシステム・マップを示す概略図である。 DMAが予約と共にロック・ラインを取得したり、ロック・ラインを条件付きでキャッシュおよびローカル・ストアに出し入れしたりするのを用いた方法を示す図である。 DMAがロック・ラインを無条件で出し入れするのを用いた方法を示す図である。
符号の説明
100 システム
103 制御バス
105 ローカル・ストア
110 APU
115 DMAエンジン
120 DMA待ち行列
130 アトミック機構
135 予約ステーション
137 アトミック・キャッシュ
150 バス・インターフェース・コントローラ
160 メモリ・コントローラ
170 システム/共有メモリ
180 MPU
187 L2キャッシュ
192 APU複合体
193 MPU複合体

Claims (26)

  1. DMAとの共有メモリを有する非対称型単一チップの異種マルチプロセッサ・コンピュータ・システムで使用するために、アトミック更新プリミティブを提供する方法であって、
    1つの予約付きゲット・ロック・ライン・コマンドと、1つの条件付きプット・ロック・ライン・コマンドと、1つの無条件プット・ロック・ライン・コマンドとを有するセットから選択された少なくとも1つのロック・ライン・コマンドを前記システムで生成するステップ、
    を有する方法。
  2. 非対称型単一チップの異種マルチプロセッサ・コンピュータ・システムであって、
    1つの予約付きゲット・ロック・ライン・コマンドと、1つの条件付きプット・ロック・ライン・コマンドと、1つの無条件プット・ロック・ライン・コマンドとのうちの1つを生成するように構成された、接続プロセッサ・ユニット(APU)と、
    前記APUに結合された直接メモリ・アクセス(DMA)・エンジンであって、1つの予約付きゲット・ロック・ライン・コマンドと、1つの条件付きプット・ロック・ライン・コマンドと、1つの無条件プット・ロック・ライン・コマンドとのうちの1つを受け取るように使用可能であるDMAエンジンと、
    を有するシステム。
  3. 前記APUに結合されたローカル・ストアをさらに有する、請求項2に記載のシステム。
  4. 前記予約付きゲット・ロック・ライン・コマンドによって使用可能な予約テーブルをさらに有する、請求項2に記載のシステム。
  5. 前記DMAエンジンに結合されたキャッシュ・スヌープ・バスをさらに有する、請求項3に記載のシステム。
  6. 前記APUに結合されたDMA待ち行列をさらに有する、請求項2に記載のシステム。
  7. 前記APUと前記DMA待ち行列との間に結合されたチャネルをさらに有する、請求項6に記載のシステム。
  8. 前記DMAエンジンに結合された予約ステーションをさらに有する、請求項2に記載のシステム。
  9. 前記予約ステーションに結合されたアトミック・キャッシュをさらに有する、請求項8に記載のシステム。
  10. 非同期処理環境での同期化のための方法であって、
    1つの予約付きゲット・ロック・ライン・コマンドを生成するステップと、
    前記コマンドをDMAエンジンに搬送するステップと、
    前記DMAエンジンによって命じられた場合に、予約ステーションによって予約を生成するステップと、
    を有する方法。
  11. 1つの条件付きプット・ロック・ライン・コマンドを生成するステップをさらに有する、請求項10に記載の方法。
  12. 1つの無条件プット・ロック・ライン・コマンドを生成するステップをさらに有する、請求項10に記載の方法。
  13. 前記条件付きプット・ロック・ライン・コマンドが、データをアトミック・キャッシュに書き込むものである、請求項11に記載の方法。
  14. 前記無条件プット・ロック・ライン・コマンドが、ソフトウェア・ロックを解除するステップをさらに使用するものである、請求項13に記載の方法。
  15. DMA待ち行列を、前記条件付きプット・ロック・ライン・コマンドからの情報を用いて更新するステップをさらに有する、請求項10に記載の方法。
  16. キャッシュ・スヌープを実行するステップをさらに有する、請求項14に記載の方法。
  17. 前記DMAエンジンによって、前記予約の機能として情報を共有メモリからローカル・ストアへ搬送するステップをさらに有する、請求項11に記載の方法。
  18. 予約喪失信号を検出するステップをさらに有する、請求項10に記載の方法。
  19. 予約ステータスの検出をさらに有する方法であって、前記予約ステータスが「喪失」である、請求項10に記載の方法。
  20. 予約ステータスの検出をさらに有する方法であって、前記予約ステータスが「インタクト」である、請求項10に記載の方法。
  21. 前記予約ステータスを解除するステップをさらに有する、請求項10に記載の方法。
  22. 接続プロセッサ・ユニットからのコマンドをチャネル上のDMA待ち行列に伝送するための方法であって、
    予約付きゲット・ロック・ライン、条件付きプット・ロック・ライン、および無条件プット・ロック・ラインからなるグループから、1つのコマンドを選択するステップと、
    前記コマンドをDMA待ち行列に書き込むステップと、
    を有する方法。
  23. 前記無条件プット・ロック・ライン・コマンドを用いてアトミック・キャッシュにデータを書き込むステップをさらに有する、請求項22に記載の方法。
  24. 前記予約付きゲット・ロック・ライン・コマンドをDMA待ち行列に配置するステップをさらに有する、請求項22に記載の方法。
  25. 非同期処理環境での同期化のためのコンピュータ・プログラムの記録媒体であって、前記コンピュータ・プログラムが、
    予約付きゲット・ロック・ライン・コマンドを生成するためのコンピュータ・コードと、
    前記コマンドを前記DMAエンジンに搬送するためのコンピュータ・コードと、
    前記DMAエンジンによって命じられた場合に予約ステーションによって予約を生成するためのコンピュータ・コードと、
    を有するコンピュータ・プログラム記録媒体。
  26. 非同期処理環境での同期化のためのプロセッサであって、
    予約付きゲット・ロック・ライン・コマンドを生成するためのコンピュータ・コードと、
    前記コマンドを前記DMAエンジンに搬送するためのコンピュータ・コードと、
    前記DMAエンジンによって命じられた場合に予約ステーションによって予約を生成するためのコンピュータ・コードと、
    を有するコンピュータ・プログラム、を含むプロセッサ。
JP2006334314A 2003-05-22 2006-12-12 共有メモリの直接メモリ・アクセスのアトミック更新のための装置、及びその方法 Expired - Fee Related JP4730742B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/443727 2003-05-22
US10/443,727 US7114042B2 (en) 2003-05-22 2003-05-22 Method to provide atomic update primitives in an asymmetric heterogeneous multiprocessor environment

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2004148226A Division JP3974597B2 (ja) 2003-05-22 2004-05-18 非対称型異種マルチプロセッサ環境でアトミック更新プリミティブを提供するための方法

Publications (2)

Publication Number Publication Date
JP2007122741A true JP2007122741A (ja) 2007-05-17
JP4730742B2 JP4730742B2 (ja) 2011-07-20

Family

ID=33450499

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2004148226A Expired - Fee Related JP3974597B2 (ja) 2003-05-22 2004-05-18 非対称型異種マルチプロセッサ環境でアトミック更新プリミティブを提供するための方法
JP2006334314A Expired - Fee Related JP4730742B2 (ja) 2003-05-22 2006-12-12 共有メモリの直接メモリ・アクセスのアトミック更新のための装置、及びその方法

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2004148226A Expired - Fee Related JP3974597B2 (ja) 2003-05-22 2004-05-18 非対称型異種マルチプロセッサ環境でアトミック更新プリミティブを提供するための方法

Country Status (6)

Country Link
US (2) US7114042B2 (ja)
JP (2) JP3974597B2 (ja)
KR (1) KR100641988B1 (ja)
CN (1) CN1273899C (ja)
HK (1) HK1070719A1 (ja)
TW (1) TWI269180B (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009211167A (ja) * 2008-02-29 2009-09-17 Fujitsu Ltd プログラム実行システム

Families Citing this family (47)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7233998B2 (en) * 2001-03-22 2007-06-19 Sony Computer Entertainment Inc. Computer architecture and software cells for broadband networks
US7415703B2 (en) * 2003-09-25 2008-08-19 International Business Machines Corporation Loading software on a plurality of processors
US7389508B2 (en) 2003-09-25 2008-06-17 International Business Machines Corporation System and method for grouping processors and assigning shared memory space to a group in heterogeneous computer environment
US7478390B2 (en) * 2003-09-25 2009-01-13 International Business Machines Corporation Task queue management of virtual devices using a plurality of processors
US7496917B2 (en) 2003-09-25 2009-02-24 International Business Machines Corporation Virtual devices using a pluarlity of processors
US20050071828A1 (en) * 2003-09-25 2005-03-31 International Business Machines Corporation System and method for compiling source code for multi-processor environments
US7549145B2 (en) 2003-09-25 2009-06-16 International Business Machines Corporation Processor dedicated code handling in a multi-processor environment
US7523157B2 (en) 2003-09-25 2009-04-21 International Business Machines Corporation Managing a plurality of processors as devices
US7444632B2 (en) * 2003-09-25 2008-10-28 International Business Machines Corporation Balancing computational load across a plurality of processors
US7516456B2 (en) * 2003-09-25 2009-04-07 International Business Machines Corporation Asymmetric heterogeneous multi-threaded operating system
US7657667B2 (en) * 2004-03-25 2010-02-02 International Business Machines Corporation Method to provide cache management commands for a DMA controller
US7774750B2 (en) * 2005-07-19 2010-08-10 Microsoft Corporation Common concurrency runtime
US7509463B2 (en) * 2005-12-01 2009-03-24 Sony Computer Entertainment, Inc. Cell processor atomic compare and swap using dedicated synergistic processor element
US7624237B2 (en) * 2006-05-03 2009-11-24 International Business Machines Corporation Compare, swap and store facility with no external serialization
US9274859B2 (en) 2006-05-25 2016-03-01 Nvidia Corporation Multi processor and multi thread safe message queue with hardware assistance
US7606961B2 (en) * 2006-06-28 2009-10-20 Kabushiki Kaisha Toshiba Computer system and data pre-fetching method
GB2443277B (en) * 2006-10-24 2011-05-18 Advanced Risc Mach Ltd Performing diagnostics operations upon an asymmetric multiprocessor apparatus
US8024521B2 (en) * 2007-03-13 2011-09-20 Sony Computer Entertainment Inc. Atomic operation on non-standard sized data using external cache
US8266391B2 (en) * 2007-06-19 2012-09-11 SanDisk Technologies, Inc. Method for writing data of an atomic transaction to a memory device
US20090077322A1 (en) * 2007-09-19 2009-03-19 Charles Ray Johns System and Method for Getllar Hit Cache Line Data Forward Via Data-Only Transfer Protocol Through BEB Bus
US8015380B2 (en) * 2008-02-01 2011-09-06 International Business Machines Corporation Launching multiple concurrent memory moves via a fully asynchronoous memory mover
US8245004B2 (en) * 2008-02-01 2012-08-14 International Business Machines Corporation Mechanisms for communicating with an asynchronous memory mover to perform AMM operations
US8327101B2 (en) * 2008-02-01 2012-12-04 International Business Machines Corporation Cache management during asynchronous memory move operations
US8275963B2 (en) * 2008-02-01 2012-09-25 International Business Machines Corporation Asynchronous memory move across physical nodes with dual-sided communication
US7941627B2 (en) * 2008-02-01 2011-05-10 International Business Machines Corporation Specialized memory move barrier operations
US8356151B2 (en) * 2008-02-01 2013-01-15 International Business Machines Corporation Reporting of partially performed memory move
US8095758B2 (en) * 2008-02-01 2012-01-10 International Business Machines Corporation Fully asynchronous memory mover
US20090248919A1 (en) * 2008-03-25 2009-10-01 Jerzy Szwagrzyk Method for external fifo acceleration
US20090254712A1 (en) * 2008-04-02 2009-10-08 Naveen Cherukuri Adaptive cache organization for chip multiprocessors
US8412862B2 (en) 2008-12-18 2013-04-02 International Business Machines Corporation Direct memory access transfer efficiency
CN101950282B (zh) * 2010-08-30 2012-05-23 中国科学院计算技术研究所 一种多处理器系统及其同步引擎
US8341316B2 (en) * 2010-11-17 2012-12-25 Advanced Micro Devices, Inc. Method and apparatus for controlling a translation lookaside buffer
US9280348B2 (en) 2012-03-28 2016-03-08 International Business Machines Corporation Decode time instruction optimization for load reserve and store conditional sequences
WO2013188705A2 (en) 2012-06-15 2013-12-19 Soft Machines, Inc. A virtual load store queue having a dynamic dispatch window with a unified structure
CN104823168B (zh) 2012-06-15 2018-11-09 英特尔公司 用于实现从由加载存储重新排序和优化导致的推测性转发遗漏预测/错误中恢复的方法和系统
WO2013188306A1 (en) 2012-06-15 2013-12-19 Soft Machines, Inc. Reordered speculative instruction sequences with a disambiguation-free out of order load store queue
EP2862087A4 (en) 2012-06-15 2016-12-14 Soft Machines Inc UNIQUE IRREGULAR CHARGING / STORAGE MAINTENANCE
WO2013188696A2 (en) 2012-06-15 2013-12-19 Soft Machines, Inc. An instruction definition to implement load store reordering and optimization
KR101745640B1 (ko) * 2012-06-15 2017-06-09 인텔 코포레이션 공유 메모리 자원들을 사용하는 메모리 일관성 모델에서 비순차 load들에 대한 로크 기반 및 동기화 기반 방법
US10320861B2 (en) 2015-09-30 2019-06-11 Google Llc System and method for automatic meeting note creation and sharing using a user's context and physical proximity
KR102407917B1 (ko) 2015-11-12 2022-06-10 삼성전자주식회사 멀티 프로세서에 의해 공유되는 메모리를 포함하는 멀티 프로세서 시스템 및 상기 시스템의 동작 방법
CN105354153B (zh) * 2015-11-23 2018-04-06 浙江大学城市学院 一种紧耦合异构多处理器数据交换缓存的实现方法
US9652385B1 (en) * 2015-11-27 2017-05-16 Arm Limited Apparatus and method for handling atomic update operations
CN109324838B (zh) * 2018-08-31 2022-05-10 深圳市元征科技股份有限公司 单片机程序的执行方法、执行装置及终端
US11119781B2 (en) 2018-12-11 2021-09-14 International Business Machines Corporation Synchronized access to data in shared memory by protecting the load target address of a fronting load
EP4127918A1 (en) * 2020-04-03 2023-02-08 Mobileye Vision Technologies Ltd. A multi-part compare and exchange operation
US11106608B1 (en) * 2020-06-22 2021-08-31 International Business Machines Corporation Synchronizing access to shared memory by extending protection for a target address of a store-conditional request

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0695969A (ja) * 1990-06-29 1994-04-08 Digital Equip Corp <Dec> 高性能プロセッサの変換バッファのためのグラニュラリティヒ ント
JPH08287022A (ja) * 1995-03-31 1996-11-01 Internatl Business Mach Corp <Ibm> マルチプロセッサ・システム及びその排他的制御方法
JP2002163239A (ja) * 2000-11-22 2002-06-07 Toshiba Corp マルチプロセッサシステムおよびその制御方法

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR0135927B1 (ko) 1994-11-21 1998-06-15 양승택 다중 프로세서 시스템에서 아토믹 명령어 수행시 데이타 버퍼를 사용한 메인 메모리 액세스 장치
US5727172A (en) * 1995-05-01 1998-03-10 Motorola, Inc. Method and apparatus for performing atomic accesses in a data processing system
US5822588A (en) * 1995-06-09 1998-10-13 Sun Microsystem, Inc. System and method for checking the use of synchronization locks in a multi-threaded target program
US5794068A (en) * 1996-03-18 1998-08-11 Advanced Micro Devices, Inc. CPU with DSP having function preprocessor that converts instruction sequences intended to perform DSP function into DSP function identifier
US5887134A (en) * 1997-06-30 1999-03-23 Sun Microsystems System and method for preserving message order while employing both programmed I/O and DMA operations
US6098156A (en) * 1997-07-22 2000-08-01 International Business Machines Corporation Method and system for rapid line ownership transfer for multiprocessor updates
US6092156A (en) 1997-11-05 2000-07-18 Unisys Corporation System and method for avoiding deadlocks utilizing split lock operations to provide exclusive access to memory during non-atomic operations
US6148300A (en) 1998-06-19 2000-11-14 Sun Microsystems, Inc. Hybrid queue and backoff computer resource lock featuring different spin speeds corresponding to multiple-states
US6728839B1 (en) * 1998-10-28 2004-04-27 Cisco Technology, Inc. Attribute based memory pre-fetching technique
US6347347B1 (en) * 1999-07-15 2002-02-12 3Com Corporation Multicast direct memory access storing selected ones of data segments into a first-in-first-out buffer and a memory simultaneously when enabled by a processor
JP3853114B2 (ja) * 1999-07-30 2006-12-06 松下電器産業株式会社 インターフェースの設計方法
US6496905B1 (en) 1999-10-01 2002-12-17 Hitachi, Ltd. Write buffer with burst capability
US6493741B1 (en) * 1999-10-01 2002-12-10 Compaq Information Technologies Group, L.P. Method and apparatus to quiesce a portion of a simultaneous multithreaded central processing unit
US6691178B1 (en) * 2000-02-22 2004-02-10 Stmicroelectronics, Inc. Fencepost descriptor caching mechanism and method therefor
US20030172189A1 (en) * 2001-07-02 2003-09-11 Globespanvirata Incorporated Communications system using rings architecture
US7266587B2 (en) * 2002-05-15 2007-09-04 Broadcom Corporation System having interfaces, switch, and memory bridge for CC-NUMA operation
US7185150B1 (en) * 2002-09-20 2007-02-27 University Of Notre Dame Du Lac Architectures for self-contained, mobile, memory programming

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0695969A (ja) * 1990-06-29 1994-04-08 Digital Equip Corp <Dec> 高性能プロセッサの変換バッファのためのグラニュラリティヒ ント
JPH08287022A (ja) * 1995-03-31 1996-11-01 Internatl Business Mach Corp <Ibm> マルチプロセッサ・システム及びその排他的制御方法
JP2002163239A (ja) * 2000-11-22 2002-06-07 Toshiba Corp マルチプロセッサシステムおよびその制御方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009211167A (ja) * 2008-02-29 2009-09-17 Fujitsu Ltd プログラム実行システム

Also Published As

Publication number Publication date
JP2004348734A (ja) 2004-12-09
US7114042B2 (en) 2006-09-26
CN1573715A (zh) 2005-02-02
US20040236914A1 (en) 2004-11-25
JP3974597B2 (ja) 2007-09-12
HK1070719A1 (en) 2005-06-24
TWI269180B (en) 2006-12-21
TW200511023A (en) 2005-03-16
CN1273899C (zh) 2006-09-06
KR20040100884A (ko) 2004-12-02
US7814281B2 (en) 2010-10-12
US20070016733A1 (en) 2007-01-18
KR100641988B1 (ko) 2006-11-06
JP4730742B2 (ja) 2011-07-20

Similar Documents

Publication Publication Date Title
JP3974597B2 (ja) 非対称型異種マルチプロセッサ環境でアトミック更新プリミティブを提供するための方法
CN108885583B (zh) 高速缓存存储器访问
EP3701377B1 (en) Method and apparatus for updating shared data in a multi-core processor environment
US6625698B2 (en) Method and apparatus for controlling memory storage locks based on cache line ownership
US5692149A (en) Block replacement method in cache only memory architecture multiprocessor
US7620954B2 (en) Mechanism for handling load lock/store conditional primitives in directory-based distributed shared memory multiprocessors
US10152436B2 (en) Mutual exclusion in a non-coherent memory hierarchy
JP4981041B2 (ja) キャッシュする方法、装置及びシステム
US20140379989A1 (en) Coherent attached processor proxy having hybrid directory
US20120110303A1 (en) Method for Process Synchronization of Embedded Applications in Multi-Core Systems
JP2001522091A (ja) メモリ最適化状態
TW201107974A (en) Cache coherent support for flash in a memory hierarchy
JP2007011580A (ja) 情報処理装置
JP2005234854A (ja) マルチプロセッサシステム
JP4767361B2 (ja) キャッシュメモリ装置、キャッシュメモリシステム、プロセッサシステム
JP2008503821A (ja) 小容量キャッシュシステムにおけるアトミック予約ライン上のライトバックを無効化する方法およびシステム
CN117546149A (zh) 用于执行共享存储器操作的系统、装置和方法
US20040117564A1 (en) System and method for reducing shared memory write overhead in multiprocessor systems
JP2012043031A (ja) 共有キャッシュメモリ装置
JP3550092B2 (ja) キャッシュ装置及び制御方法
JP5213485B2 (ja) マルチプロセッサシステムにおけるデータ同期方法及びマルチプロセッサシステム
JP2020506483A (ja) コンペアアンドスワップトランザクション
WO2021122406A1 (en) Cache snooping mode extending coherence protection for certain requests
JP3093609B2 (ja) キャッシュメモリの記憶一致制御装置及び方法
JP2007241601A (ja) マルチプロセッサシステム

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20091201

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20100128

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100128

RD12 Notification of acceptance of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7432

Effective date: 20100128

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20100129

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100526

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20100820

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100820

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110405

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20110405

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20110405

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110412

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140428

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees