JP2008511890A - アトミック・オペレーションを用いて情報単位を変更する方法及び装置 - Google Patents

アトミック・オペレーションを用いて情報単位を変更する方法及び装置 Download PDF

Info

Publication number
JP2008511890A
JP2008511890A JP2007529074A JP2007529074A JP2008511890A JP 2008511890 A JP2008511890 A JP 2008511890A JP 2007529074 A JP2007529074 A JP 2007529074A JP 2007529074 A JP2007529074 A JP 2007529074A JP 2008511890 A JP2008511890 A JP 2008511890A
Authority
JP
Japan
Prior art keywords
information unit
type atomic
bus
atomic operation
snooping
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
JP2007529074A
Other languages
English (en)
Other versions
JP2008511890A5 (ja
Inventor
ゴディン,コスタンティン
アンシェル,モシェ
ダヤン,ウリ
ペレグ,ドゥヴィール
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.)
NXP USA Inc
Original Assignee
NXP USA Inc
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 NXP USA Inc filed Critical NXP USA Inc
Publication of JP2008511890A publication Critical patent/JP2008511890A/ja
Publication of JP2008511890A5 publication Critical patent/JP2008511890A5/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • 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
    • 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/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • G06F9/526Mutual exclusion algorithms
    • 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/46Multiprogramming arrangements

Landscapes

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

Abstract

情報単位を変更するシステム及び方法である。当該方法は、(i)第1のバスを介して、メモリ・モジュールの第1のアドレスに配置された少なくとも1つの情報単位と関連したスヌーピング・タイプのアトミック・オペレーションを開始する要求を受け取るステップと、(ii)当該情報単位を第1のバスを介して与えるステップと、(iii)更新された情報単位と関連したスヌーピング・タイプのアトミック・オペレーションを完了しようと試みるステップと、(iv)受け取るステップ、与えるステップ及び試みるステップのうちの少なくとも1つのステップ中に、第1のアドレスがロッキング・タイプのアトミック・オペレーションの結果としてロックされた場合、当該アトミック・オペレーションを失敗したアトミック・オペレーションとして定義するステップとを含む。

Description

本発明は、特に、異なるタイプのアトミック・オペレーションを促進する環境内で、アトミック・オペレーションを用いて情報単位を変更する方法及び装置に関する。
首尾良いアトミック・オペレーションは、無中断の一連のオペレーションを含む。アトミック・オペレーションは、上記一連のオペレーションが完了しなかった場合、失敗したアトミック・オペレーションとみなす。典型的なアトミック・オペレーションは、「読み出し−変更−書き込み」オペレーションを含む。
多くの最新のデバイスは、マイクロプロセッサ、直接メモリ・アクセス・ユニット、マイクロコントローラ、及び類似のもののような複数の半導体部品を含む。これらのますます複雑なデバイスのコストを低減するため、複数の部品が、同じシステム資源を共用する。共用される資源(以下「共用資源」と記す。)は、典型的には、メモリ・バンク、バス、周辺装置、及び類似のものである。
衝突を避けるため、共用資源は、その時点に唯一つのマスタ構成要素によって制御される。典型的な制御スキームは、従属(スレーブ)された構成要素(以下、「スレーブ構成要素」と記す。)を制御することを試みる前に共用資源のアベイラビリティを決定することを含む。発明の名称が「コンピュータ・システムの複数のバス・マスタ間の通信のための自己変更同期化メモリ・アドレス空間及びプロトコル(Self−modifying synchronization memory address space and protocol for communication between multiple bus masters of a computer system)」であるMoriarty他の米国特許No.6,446,149は、本明細書に援用されているが、当該米国特許は、共用資源を管理する方法を記載する。
共用資源のアベイラビリティは、通常、セマフォーにより表される。セマフォーは、様々な構成要素によりアクセスされることができるフラグ又はステータス・インジケータである。それは、通常、所定のメモリ・アドレスに常駐し、そしてその値は、共用資源が使用可能か否かを表す。
「読み出し−変更−書き込み」アトミック・オペレーションを用いてセマフォーを更新することは一般的に行われている。セマフォーを更新するための2つの一般的な方法がある。第1の方法は、セマフォー更新手順が完了するまでセマフォーを格納するメモリ・モジュールをロックすることを含む。一部の従来技術システムにおいては、メモリ・モジュール、及び任意であるが、1又はそれより多いバスが、セマフォー更新手順中にロックされる。ロッキング・タイプのセマフォー更新手順は、通常、(i)メモリ・モジュールをロックし、そして任意であるが、1又はそれより多いバスをロックするステップと、(ii)要求する構成要素によりセマフォーを読み出すステップと、(iii)共用資源が使用可能である場合、セマフォーの値に応答して決定するステップと、(iv)セマフォー値が共用資源が使用可能であることを指示する場合、セマフォーを変えて、共用資源が要求する構成要素により用いられるべくスケジューリングされ、その他の場合には、共用されるエンティティが使用可能でないことを決定するステップと、(v)前にロックされたメモリ及び1又はそれより多いバスのロックを解除するステップとを含む。この方法は、バス及びメモリ性能の著しい劣化を引き起こす。
第2の方法は、アドレス・スヌーピングを含む。この方法では、メモリ・モジュール、及び任意であるが、1又はそれより多いバスは、全体のプロセス中にロックされない。要求する構成要素は、他の構成要素がメモリ・モジュールにアクセスするのを防止しないで、そのメモリ・モジュールをモニタリングして、セマフォーが読み出し段階と予期された変更段階との間で変更されたかどうかを決定する。そのような変更が起きた場合、アトミック・オペレーションは、失敗したアトミック・オペレーションとしてフラグが立てられ、そして要求する構成要素は、アトミック・オペレーションを繰り返すべきかどうかを判断することができる。
スヌーピング・タイプのアトミック・オペレーションは、ロッキング・タイプのアトミック・オペレーションより帯域幅に関してより実効的であるが、しかし後者より複雑である。発明の名称が「データ処理システムにおいてアトミック・アクセスを実行するための方法及び装置(Method and apparatus for performing atomic accesses in a data processing system)」であるEiffertの米国特許No.5,727,172は、本明細書に援用されているが、当該米国特許は、アドレス・スヌーピング方法を記載する。それは、複数のバス・マスタをサポートするためスヌープ論理を必要とする。
多くの最新の半導体部品の複雑さ、特にマイクロプロセッサの複雑さに起因して、大部分の半導体デバイスの設計は、前に開発された構成要素に基づいている。一部のケースでは、資源を共用する様々な半導体部品が、異なるタイプのアトミック・オペレーションを使用する。
発明の名称が「互換性のないバス・ロッキング・アーキテクチャ間のセマフォー通信方法(Method for semaphore communication between incompatible bus locking architectures)」であるKreinの米国特許No.5,548,780は、本明細書に援用されているが、当該米国特許は、アトミック・オペレーションを異なるバス間で伝搬させるための複数のバス・ブリッジを含むマルチプル・バス・アーキテクチャを記載する。この方法は、セマフォーが共用資源のアベイラビリティを指示することになっている或る一定の所定値を有することを必要とする。
発明の名称が「混合型アーキテクチャを用いてバス・ロッキングを実現するための機構(Mechanism for implementing bus locking with a mixed architecture)」であるMorrison他の米国特許No.6,381,663は、本明細書に援用されているが、当該米国特許は、アトミック・オペレーションをサポートするバスとアトミック・オペレーションをサポートしない別のバスとの間をブリッジするための装置及び方法を記載する。この解法は、性能に関して非常にコストがかかる。
異なるタイプのアトミック・トランザクションを効率的に処理することができる装置及び方法を与える必要性が存在する。
情報単位を変更する方法は、(i)第1のバスを介して、メモリ・モジュールの第1のアドレスに配置された少なくとも1つの情報単位と関連したスヌーピング・タイプのアトミック・オペレーションを開始する要求を受け取るステップと、(ii)前記情報単位を前記第1のバスを介して与えるステップと、(iii)更新された情報単位と関連したスヌーピング・タイプのアトミック・オペレーションを完了しようと試みるステップと、(iv)前記受け取るステップ、前記与えるステップ及び前記試みるステップ中に、前記第1のアドレスがロッキング・タイプのアトミック・オペレーションの結果としてロックされた場合、前記スヌーピング・タイプのアトミック・オペレーションを失敗したアトミック・オペレーションとして定義するステップとを含む。
情報単位を変更する方法は、(i)第1のバスを介して、メモリ・モジュールの第1のアドレスに配置された情報単位のアトミック読み出しオペレーションを実行する要求を受け取るステップと、(ii)前記情報単位を前記第1のバスを介して与えるステップと、(iii)前記受け取るステップと前記与えるステップとのうちの少なくとも1つのステップ中に、前記第1のアドレスがロッキング・タイプのアトミック・オペレーションの結果としてロックされない場合、更新された情報単位のスヌーピング・タイプのアトミック書き込みオペレーションを実行するよう試みるステップとを含む。
情報単位を変更する方法は、(i)第1のバスを介して、メモリ・モジュールの第1のアドレスに配置された情報単位のスヌーピング・タイプのアトミック読み出しオペレーションを実行する要求を受け取るステップと、(ii)前記情報単位を前記第1のバスを介して与えるステップと、(iii)更新された情報単位のスヌーピング・タイプのアトミック書き込みオペレーションを実行するよう試みるステップと、(iv)前記受け取るステップ、前記与えるステップ及び前記試みるステップ中に、前記第1のアドレスがロッキング・タイプのアトミック・オペレーションの結果としてロックされた場合、前記スヌーピング・タイプのアトミック書き込みオペレーションを含むアトミック・オペレーションを失敗したアトミック・オペレーションとして定義するステップとを含む。
本発明は、情報単位を変更する装置であって、(i)情報単位を第1のアドレスに格納するよう適合されたメモリ・モジュールと、(ii)第1及び第2のバス及び前記メモリ・モジュールに接続されたコントローラとを備え、前記コントローラが、(a)第1のバスを介して、アトミック読み出しオペレーションを実行する要求を受け取り、(b)受け取ること及び与えることの段階中に、前記第1のアドレスがロッキング・タイプのアトミック・オペレーションの結果としてロックさされない場合、更新された情報単位のスヌーピング・タイプのアトミック書き込みオペレーションを実行する試みを促進する適合されている、装置を提供する。
本発明は、情報単位を変更する装置であって、プロセッサ、コントローラ及び類似のものに限定されないが、これらのプロセッサ、コントローラ及び類似のもののような第1の要求構成要素であって、第1のバスを介して、メモリ・モジュールの第1のアドレスに配置された情報単位のアトミック読み出しオペレーションを実行する要求を送るよう適合された前記第1の要求構成要素と、前記情報単位を前記第1のバスを介して与えることを促進するよう構成されたコントローラとを備え、前記第1の要求構成要素が更に、受け取ることと与えることとのうちの少なくとも1つの段階中に、前記第1のアドレスがロッキング・タイプのアトミック・オペレーションの結果としてロックされない場合、更新された情報単位のスヌーピング・タイプのアトミック書き込みオペレーションを実行するよう試みるよう適合されている、前記装置を提供する。
本発明は、図面と関係した以下の詳細な説明からより完全に理解され且つ認められるであろう。
以下の詳細な説明は、本発明の様々な実施形態の無限定の例を含む。採用されている特定の用語及び表現、及び詳細な説明及び添付図面に開示されている特定の構造及び動作の詳細は、例示の目的のためのみであり、添付の特許請求の範囲に記載された発明の範囲をいずれにせよ限定する意図ではない。
本方法及びシステムは、事前定義されたセマフォー値を利用することと関連した問題を解決するものである。
図1は、本発明の一実施形態に従った装置10を示す。装置10は、サブシステム100を含み、次いで当該サブシステム100は、第1のプロセッサ110のような第1の要求する構成要素を含み、そしてまた共用されるメモリ・モジュール(以下「共用メモリ・モジュール」と記す。)(図2において参照番号370により示す。)を含む。装置10は更に、システム・バス60を含み、当該システム・バス60は、(i)第2のプロセッサ20のような第2の要求するエンティティ、(ii)高レベル・メモリ・モジュール50、(iii)サブシステム100、(iv)周辺装置70、及び(v)外部システムI/F80に接続されている。
高レベル・メモリ・モジュール50は、通常、装置10のメイン・メモリ・モジュールである。それは、通常、様々なプロセッサのためのプログラム及びデータを格納する。それはまた、オフチップ・メモリをサポートする第2レベルのキャッシュ・メモリ・モジュールであることができるが、しかしこのことは、必ずしもそうであるわけではない。
システム・バス60は、サブシステム100にガスケット(これはまたインターフェースと呼ばれる。)380を介して接続される。インターフェース380は、データ・チャネル(図2において参照番号130により示す。)及び命令チャネル(図2において参照番号340により示す。)を含むサブシステム100内の様々な構成要素に接続される。インターフェース380は、バス・プロトコル変換を実行し、そしてデータ転送と命令転送との間を調停する調停能力を有する。
装置10はまた、DMAシステム・バス90を含み、当該DMAシステム・バス90は、DMAコントローラ30、複数の周辺装置40、及び共用メモリ・モジュール370にDMAインターフェース382を介して接続される。DMAシステム・バス90は、プロセッサ20のような外部の構成要素により共用メモリ・モジュール370にアクセスするため用いられることができる。
一方では、共用メモリ・モジュール370は、DMAシステム・バス90に接続され、当該DMAシステム・バス90は、ロッキング・タイプのアトミック・オペレーションを促進するよう適合されている。他方で、共用メモリ・モジュール370は、2つのデータ・バスXA122及びXB124に接続され、当該2つのデータ・バスXA122及びXB124は、スヌーピング・タイプのアトミック・オペレーションを促進する。
図2は、本発明の一実施形態に従った装置10のサブシステム100を示す。サブシステム100は、プロセッサ110、データ・チャネル130、メモリ管理ユニット(MMU)300、命令チャネル340、共用メモリ・モジュール370、及びインターフェース・ユニット380を含む。共用メモリ・モジュール370は、レベル1のRAMメモリ・モジュールであることができるが、しかしこれは、必ずしもそうであるわけではない。
プロセッサ110及び命令チャネル340は、単一のプログラム・バス120に接続されている。
プロセッサ110は、第1のデータ・ポート116及び第2のデータ・ポート118を有する。第1のデータ・ポート116は、第1のデータ・バス(XA)122を介してデータ・チャネル130の第1のポート132、MMU300、及び共用メモリ・モジュール370に接続される。第2のデータ・ポート118は、第2のデータ・バス(XB)124を介してデータ・チャネル130の第2のポート134、MMU300、及び共用メモリ・モジュール370に接続される。
データ・チャネル130は、データ・フェッチ・バス126を介してインターフェース380に接続され、次いでインターフェース380は、高レベル・メモリ・モジュール50のような1又はそれより多い追加のメモリに接続される。
共用メモリ・モジュール370は、それぞれのバンクが複数のメモリ・バンク及びコントローラを含む2グループのメモリ・バンクに仕切られていることが都合良い。
共用メモリ・モジュール370は、ステータス情報、及び特にアトミック・オペレーションに関連する情報を含む様々な制御信号を受け取る。これらの信号の一部が、図3に示されている。
プロセッサ110は、第1のデータ・バスXA122と関連した3つの制御信号を共用メモリ・モジュール370に送る。これらの信号は、ATOMIC_A信号500(アトミック_A信号500)、READ_A信号502(読み出し_A信号502)、及びWRITE_A信号504(書き込み_A信号504)である。プロセッサ110は、第1のデータ・バスXA122を介してプロセッサ110により開始されたスヌーピング・タイプのアトミック・オペレーションが失敗したか又は成功したかを指示するATOMIC_RESULT_A信号506(アトミック結果_A信号506)を共用メモリ・モジュール370から受け取る。プロセッサ110は、ひとたびプロセッサ110がアトミック・オペレーションを第1のデータ・バスXA122を介して開始するとATOMIC_A信号500をアサートし、そしてひとたびアトミック・オペレーションが終わるとこの信号をニゲートすると仮定する。プロセッサ110は、READ_A信号502を読み出し動作中に第1のデータ・バスXA122を介してアサートし、そしてWRITE_A信号504を書き込み動作中に第1のデータ・バスXA122を介してアサートする。
プロセッサ110は、第2のデータ・バスXB124と関連した3つの制御信号を共用メモリ・モジュール370に送る。これらの信号は、ATOMIC_B信号510(アトミック_B信号510)、READ_B信号512(読み出し_B信号512)及びWRITE_B信号514(書き込み_B信号514)である。プロセッサ110は、第2のデータ・バスXB124を介してプロセッサ110により開始されたスヌーピング・タイプのアトミック・オペレーションが失敗したか又は成功したかを指示するATOMIC_RESULT_B信号516(アトミック結果_B信号516)を共用メモリ・モジュール370から受け取る。プロセッサ110は、ひとたびプロセッサ110がアトミック・オペレーションを第2のデータ・バスXB124を介して開始するとATOMIC_B信号510をアサートし、そしてひとたびアトミック・オペレーションが終わるとこの信号をニゲートすると仮定する。プロセッサ110は、READ_B信号512を読み出し動作中に第2のデータ・バスXB124を介してアサートし、そしてWRITE_B信号514を書き込み動作中に第2のデータ・バスXB124を介してアサートする。
プロセッサ20は、共用メモリ・モジュール370に、LOCK信号520(ロック信号520)、READ/WRITE信号522(読み出し/書き込み信号522)及びTRANSACTION_REQUEST信号524(トランザクション要求_A信号524)を送る。それは、共用メモリ・モジュール370からREQUEST_ACK信号526(要求受領確認信号526)を受け取る。プロセッサ20は、トランザクション(例えば、読み出しオペレーション又は書き込みオペレーションのようなもの)をDMAバス384を介して要求するためのTRANSACTION_REQUEST信号524をアサートし、そしてトランザクションは、アサートされたREQUEST_ACK信号526に応答して行われる。LOCK信号520が、全体のロッキング・タイプ・アトミック・オペレーション中にアサートされ、そしてREAD/WRITE信号522が、読み出し動作を指示するようアサートされ、そして書き込み動作を指示するようニゲートされる。
共用メモリ・モジュール370は、周辺装置40(1)のような或る一定の周辺装置がプロセッサ20により制御されるか又はプロセッサ110により制御されるかを指示するセマフォー371を格納する。通常、共用メモリ・モジュール370は、複数の周辺装置のアベイラビリティを表す複数のセマフォーを格納するが、しかし唯1つのセマフォーが、説明を簡単にするため示されている。
図4は、本発明の一実施形態に従って情報単位を変更する方法600を示すフロー・チャートである。情報単位は、データ、アドレス、ステータス及び類似のものを表す複数の信号を含む。情報単位がセマフォーであることが都合良い。
方法600は、メモリ・モジュールの第1のアドレスに配置された少なくとも1つの情報単位と関連したスヌーピング・タイプのアトミック・オペレーションを開始する要求を第1のバスを介して受け取るステップ610により開始する。その要求は、スヌーピング・タイプのアトミック読み出しオペレーションを開始する要求であることが都合良い。図3に示される例を参照し、そしてスヌーピング・タイプのアトミック・オペレーションが第1のデータ・バスXA122と関連付けられていると仮定すると、プロセッサ110は、ATOMIC_A信号500をアサートし、そしてREAD_A信号502をアサートする。
本発明の一実施形態に従って、プロセッサ110はまた、第2のデータ・バスXB124と関連しているスヌーピング・タイプのアトミック・オペレーションを開始することができ、そして共用メモリ・モジュール370のそれぞれが、これらの要求間を調停することができる。本発明の別の実施形態に従って、プロセッサ110は、1つのアトミック・オペレーションを(バスXA122を介してか又はバスXB124を介して)一時に開始することが可能であり、そしてそのような調停は、要求されない。
ステップ610には、情報単位を第1のバスを介して与えるステッ620が続く。図3に示す例を参照し、そして更に情報単位が第1のグループのメモリ・バンク内に配置されていると仮定すると、第1のグループ・コントローラは、要求されたデータ単位を第1のデータ・バスXA122を介してプロセッサ110に送ることを可能にする。
ステップ620には、情報単位を読み出し、そして情報単位が変更されて、変更された情報単位を与えるべきかどうかを決定するステップ630が続く。その答えが肯定である場合、ステップ630には、ステップ640が続き、そしてその答えが否定である場合、ステップ630には、アトミック・トランザクションを終えるステップ660が続く。図3に示す例を参照して、情報単位が周辺装置40(1)のアベイラビリティを表すセマフォー371であると仮定する。セマフォー371が周辺装置40(1)が使用可能でないことを指示する場合、プロセッサ110は、セマフォー371を更新しないと判断し、そしてアトミック・オペレーションを終了することができる。セマフォー371が周辺装置40(1)が使用可能であることを指示する場合、プロセッサ110は、セマフォー371を更新することを試みて、プロセッサ110が周辺装置40(1)を制御しようとしていることを指示することができる。
ステップ640は、スヌーピング・タイプのアトミック・オペレーションを完了することを試みることを含む。この完了は、前に変更された情報単位のアトミック書き込みオペレーションを含む。図3に示す例を参照すると、プロセッサ110は、それがそのような変更が適切であると判断した場合、変更されたセマフォー371を第1のデータ・バスXA122を介して送る。
ステップ650は、受け取るステップ、与えるステップ及び試みるステップのうちの少なくとも1つのステップ中に第1のアドレスがロッキング・タイプのアトミック・オペレーションの結果としてロックされた場合、スヌーピング・タイプのアトミック・オペレーションを失敗したアトミック・オペレーションと定義するステップを含む。図3に示す例を参照すると、ステップ620−640からの1又はそれより多いステップ中に共用メモリ・モジュール370がセマフォー371と関連したロッキング・タイプのアトミック・オペレーションに参加する場合、プロセッサ110により開始されたスヌーピング・タイプのアトミック・オペレーションは終わる。
プロセッサ110は、それが周辺装置40(1)を首尾良く制御するまでスヌーピング・タイプのアトミック・オペレーションを実行することを試みるが、しかしこれは、必ずしもそうであるわけではない。例えば、プロセッサ110は、このセッションを所定量の反復の間繰り返してもよい。
図5は、本発明の一実施形態に従った首尾良いスヌーピング・タイプのアトミック・オペレーションのタイミング図である。このタイミング図は、クロック信号CLK555、第1のデータ・バスXA122と関連した24ビット・アドレス・バス524、READ_A信号502(読み出し_A信号502)、WRITE_A信号504(書き込み_信号)、ATOMIC_A信号500(アトミック_A信号500)及びATOMIC_RESULT_A信号(アトミック結果_A信号)506(アトミック_A信号(506)を示す。
クロックの第1のサイクル(T1)で、プロセッサ110は、セマフォー371の24ビット・アドレス(SEM_ADD)を第1のデータ・バスXA122を介して送り、そしてREAD_A信号502並びにATOMIC_A信号500をアサートする。READ_Aは、1クロック・サイクル後にニゲートされる。
第2のクロック・サイクル(T2)で、セマフォー371は、プロセッサ110へ第1のデータ・バスXA122を介して送られると仮定する。
次のクロック・サイクル(T3)中に、プロセッサ110は、セマフォー371を更新し、そしてその更新されたセマフォーを共用メモリ・モジュール370に書き込むことを試みるよう準備済みとなる。
次のクロック・サイクル(T4)で、プロセッサ110は、WRITE_A信号504をアサートし、そしてまたセマフォー371の24ビット・アドレスを第1のデータ・バスXA122を介して送る。
次のクロック・サイクル(T5)で、プロセッサ110は、WRITE_A信号504並びにATOMIC_A信号500をニゲートする。プロセッサ110が変更されたセマフォー371を書き込むのに成功したと仮定すると、第1のグループのプロセッサ374は、ATOMIC_RESULT_A信号506をアサートする。
本発明の一実施形態に従って、図6は、コントローラにより実行される第1のプロセス700を示し、図7は、第1のグループのプロセッサ374に限定されるわけではないが、第1のグループのプロセッサ374のようなコントローラにより実行される別のプロセス800を示す。
第1のプロセス700は、DMAバス384に限定されるわけではないがDMAバス384のようなバスをサポートするロッキング・タイプのアトミック・オペレーションをモニタリングするステップを含み、一方、別のプロセス800は、第1のデータ・バスXA122及び第2のデータ・バスXB124のようなバスをサポートするスヌーピング・タイプのアトミック・オペレーションをモニタリングするステップを含む。説明を簡単にするため、第1のデータ・バスXA122のモニタリングのみを説明する。プロセス800の結果は、プロセス700の結果に依存する。
プロセス700は、アトミック読み出しオペレーションのようなアトミック・オペレーションが検出されるまでロッキング・タイプのアトミック・オペレーションをサポートする第1のバスをモニタリングするステップ710により開始する。このモニタリングは、LOCK信号520のような様々な制御信号を受け取ってそれらを検査することを含むが、しかし必ずしもそうであるわけではない。
ひとたびそのようなアトミック・オペレーションが検出されると、ステップ710には、アトミック・オペレーションによりアクセスされるメモリ・アドレスを格納するステップ720が続く。このアドレスは、ロッキング・タイプのアトミック・オペレーション中にロックされる。
ステップ720には、第1のバスをモニタリングして、アトミック・オペレーションが終わった(例えば、アトミック・オペレーションを終えるアトミック書き込みオペレーションが終わった)ことを検出するステップ730が続く。ひとたびそれが終わると、ステップ730には、前に格納されたアドレスを消去するか又はさもなければそれがロックされていないことを指示するステップ740が続く。ステップ740には、ステップ710が続く。
プロセス800は、アトミック読み出しオペレーションのようなアトミック・オペレーションが検出されるまでスヌーピング・タイプのアトミック・オペレーションをサポートする第2のバスをモニタリングするステップ810により開始する。そのようなオペレーションは、ATOMIC_A信号500のような様々な制御信号をモニタリングすることにより検出されることができるが、しかしこれは、必ずしもそうであるわけではない。
ひとたびそのようなアトミック・オペレーションが検出されると、ステップ810には、アトミック・オペレーションがロックされたアドレスと関連付けられているかどうかを決定するステップ820により開始する。このロックされたアドレスは、通常、プロセス700によりロックされているアドレスである。
アドレスがロックされている場合、アトミック・オペレーションは、ステップ830中に、失敗であるとしてフラグを立てる。失敗されたアトミック・オペレーションは、終わることができるが、しかし通常、プロセスは、たとえアトミック・オペレーションが失敗しとしてもステップ850に進む。
アドレスがロックされていない場合、アトミック・オペレーションは、ステップ840中に、成功したアトミック・オペレーションとしてフラグを立てる。
ステップ840には、第2のバスをスヌーピングして、スヌーピング・タイプのアトミック・オペレーションが終わる前にアドレスがロックされているかどうかを決定するステップ850が続く。その答えが肯定である場合、アトミック・オペレーションは、ステップ860中に失敗であるとしてフラグが立てられ、さもなければステップ850には、アトミック・オペレーションを成功したアトミック・オペレーションとしてフラグが立てられステップ870が続く。アトミック・オペレーションがステップ830中に失敗したとしてフラグが立てられた場合、そのアトミック・オペレーションは、ステップ870中に成功したアトミック・オペレーションとしてフラグが立てられないであろうことに注目されたい。ステップ870及びステップ860には、ステップ810が続く。
本明細書で説明されたものの変化、変更及び他の実施形態が、特許請求の範囲に記載された発明の趣旨及び範囲から逸脱すること無しに、当業者により行われるであろう。従って、本発明は、上記の例示的説明により定義されるものではなく、代わりに添付の特許請求の範囲の趣旨及び範囲により定義されるべきものである。
図1は、本発明の一実施形態に従った、2つのプロセッサ及び共用メモリ・モジュールを含む装置の概略図である。 図2は、共用メモリ・モジュール及び第1のプロセッサを含むサブシステムの概略図である。 図3は、本発明の一実施形態に従った、アトミック・オペレーション中に交換される様々な信号の概略図である。 図4は、本発明の一実施形態に従った、情報単位を変更する方法を示すフロー・チャートである。 図5は、本発明の一実施形態に従った、首尾良いスヌーピング・タイプ・アトミック・オペレーションのタイミング図である。 図6は、本発明の一実施形態に従った、コントローラにより実行される2つのプロセスのフロー・チャートの1つである。 図7は、本発明の一実施形態に従った、コントローラにより実行される2つのプロセスのフロー・チャートの1つである。

Claims (28)

  1. アトミック・オペレーションを用いて、情報単位を変更する方法であって、
    第1のバスを介して、メモリ・モジュールの第1のアドレスに配置された少なくとも1つの情報単位と関連したスヌーピング・タイプのアトミック・オペレーションを開始する要求を受け取るステップと、
    前記情報単位を前記第1のバスを介して与えるステップと、
    更新された情報単位と関連したスヌーピング・タイプのアトミック・オペレーションを完了しようと試みるステップと、
    前記受け取るステップ、前記与えるステップ及び前記試みるステップ中に、前記第1のアドレスがロッキング・タイプのアトミック・オペレーションの結果としてロックされた場合、前記スヌーピング・タイプのアトミック・オペレーションを失敗したアトミック・オペレーションとして定義するステップと
    を備える方法。
  2. 前記受け取るステップが、スヌーピング・タイプのアトミック読み出しオペレーションを実行する要求を受け取るステップを備える請求項1記載の方法。
  3. 前記完了しようと試みるステップが、更新された情報単位のスヌーピング・タイプのアトミック書き込みオペレーションを実行しようと試みるステップを備える請求項1記載の方法。
  4. 前記ロッキング・タイプのアトミック・オペレーションを開始する要求が、第2のバスを介して与えられる請求項1記載の方法。
  5. 前記情報単位が、セマフォーを備える請求項1記載の方法。
  6. 前記試みるステップが、更新された情報単位を前記第1のバスを介して与えるステップを備える請求項1記載の方法。
  7. 首尾良いスヌーピング・タイプのアトミック・オペレーションを完了するまで、前記受け取るステップ、前記与えるステップ、及び前記試みるステップを繰り返すステップを更に備える請求項1記載の方法。
  8. 前記ロッキング・タイプのアトミック・オペレーションが、ロッキング・タイプのアトミック読み出しオペレーションである請求項1記載の方法。
  9. 前記ロッキング・タイプのアトミック・オペレーションが、ロッキング・タイプのアトミック書き込みオペレーションである請求項1記載の方法。
  10. 前記第1のアドレスに配置された情報単位のスヌーピング・タイプのアトミック・オペレーションを開始する別の要求を受け取り、前記スヌーピング・タイプのアトミック・オペレーション同士間を調停するステップを更に備える請求項1記載の方法。
  11. 情報単位を変更する方法であって、
    第1のバスを介して、メモリ・モジュールの第1のアドレスに配置された情報単位のアトミック読み出しオペレーションを実行する要求を受け取るステップと、
    前記情報単位を前記第1のバスを介して与えるステップと、
    前記受け取るステップと前記与えるステップとのうちの少なくとも1つのステップ中に、前記第1のアドレスがロッキング・タイプのアトミック・オペレーションの結果としてロックされない場合、更新された情報単位のスヌーピング・タイプのアトミック書き込みオペレーションを実行するよう試みるステップと
    を備える方法。
  12. 前記ロッキング・タイプのアトミック・オペレーションを開始する要求が、第2のバスを介して与えられる請求項11記載の方法。
  13. 前記情報単位が、セマフォーを備える請求項11記載の方法。
  14. 前記試みるステップが、更新された情報単位を前記第1のバスを介して与えるステップを備える請求項11記載の方法。
  15. 首尾良いスヌーピング・タイプのアトミック・オペレーションを完了するまで、前記受け取るステップ、前記与えるステップ、及び前記試みるステップを繰り返すステップを更に備える請求項11記載の方法。
  16. 前記ロッキング・タイプのアトミック・オペレーションが、ロッキング・タイプのアトミック読み出しオペレーションである請求項11記載の方法。
  17. 前記第1のアドレスに配置された情報単位のスヌーピング・タイプのアトミック読み出しオペレーションを実行する別の要求を受け取り、前記スヌーピング・タイプのアトミック読み出しオペレーション同士間を調停するステップを更に備える請求項11記載の方法。
  18. アトミック・オペレーションを用いて、情報単位を変更する装置であって、
    情報単位を第1のアドレスに格納するよう適合されたメモリ・モジュールと、
    第1のバス及び前記メモリ・モジュールに結合されたコントローラと、を備え、
    前記コントローラが、
    メモリ・モジュールの第1のアドレスに配置された少なくとも1つの情報単位と関連したスヌーピング・タイプのアトミック・オペレーションを開始する要求を受け取り、
    前記情報単位を前記第1のバスを介して与え、
    更新された情報単位の前記スヌーピング・タイプのアトミック・オペレーションを完了しようと試み、
    前記受け取ること、前記与えること、及び前記試みることのうちの少なくとも1つの段階中に、前記第1のアドレスがロッキング・タイプのアトミック・オペレーションの結果としてロックされた場合、前記アトミック・オペレーションを失敗したアトミック・オペレーションとして定義するよう適合されている、装置。
  19. 前記ロッキング・タイプのアトミック・オペレーションを開始する要求が、第2のバスを介して与えられる請求項18記載の装置。
  20. 前記情報単位が、セマフォーを備える請求項18記載の装置。
  21. 前記コントローラが更に、失敗したアトミック・オペレーションを前記第1のバスを介して送るよう適合されている請求項18記載の装置。
  22. 前記ロッキング・タイプのアトミック・オペレーションが、ロッキング・タイプのアトミック読み出しオペレーションである請求項18記載の装置。
  23. 前記第1のバスに結合された第1のプロセッサと、前記第2のバスに結合された第2のプロセッサとを更に備える請求項18記載の装置。
  24. 情報単位を変更する装置であって、
    第1のバスを介して、メモリ・モジュールの第1のアドレスに配置された情報単位のアトミック読み出しオペレーションを実行する要求を送るよう適合された第1の要求構成要素と、
    前記情報単位を前記第1のバスを介して与えることを促進するよう構成されたコントローラと、を備え、
    前記第1の要求構成要素が更に、受け取ることと与えることとのうちの少なくとも1つの段階中に、前記第1のアドレスがロッキング・タイプのアトミック・オペレーションの結果としてロックされない場合、更新された情報単位のスヌーピング・タイプのアトミック書き込みオペレーションを実行するよう試みるよう適合されている、装置。
  25. 前記コントローラが更に、失敗したアトミック・オペレーションを前記第1のバスを介して送るよう適合されている請求項24記載の装置。
  26. 前記ロッキング・タイプのアトミック・オペレーションが、ロッキング・タイプのアトミック読み出しオペレーションである請求項24記載の装置。
  27. 前記ロッキング・タイプのアトミック・オペレーションを開始するよう適合された第2の要求構成要素を更に備える請求項24記載の装置。
  28. 前記第1の要求構成要素が、プロセッサである請求項24記載の装置。
JP2007529074A 2004-09-02 2005-08-19 アトミック・オペレーションを用いて情報単位を変更する方法及び装置 Pending JP2008511890A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/933,191 US8281080B2 (en) 2004-09-02 2004-09-02 Method and apparatus for modifying an information unit using an atomic operation
PCT/IB2005/052732 WO2006024985A2 (en) 2004-09-02 2005-08-19 Method and apparatus for modifying an information unit using an atomic operation in a system with a mixed architecture

Publications (2)

Publication Number Publication Date
JP2008511890A true JP2008511890A (ja) 2008-04-17
JP2008511890A5 JP2008511890A5 (ja) 2008-05-29

Family

ID=35944821

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007529074A Pending JP2008511890A (ja) 2004-09-02 2005-08-19 アトミック・オペレーションを用いて情報単位を変更する方法及び装置

Country Status (8)

Country Link
US (1) US8281080B2 (ja)
EP (1) EP1789876B1 (ja)
JP (1) JP2008511890A (ja)
KR (1) KR20070062537A (ja)
CN (1) CN101044459B (ja)
AT (1) ATE541258T1 (ja)
TW (1) TW200620104A (ja)
WO (1) WO2006024985A2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010096263A2 (en) 2009-02-17 2010-08-26 Rambus Inc. Atomic-operation coalescing technique in multi-chip systems
US10929174B2 (en) * 2016-12-15 2021-02-23 Ecole Polytechnique Federale De Lausanne (Epfl) Atomic object reads for in-memory rack-scale computing
CN106886504B (zh) * 2017-04-05 2020-12-04 上海弘矽半导体有限公司 基于ahb总线的多核soc中实现原子操作系统及方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5727172A (en) * 1995-05-01 1998-03-10 Motorola, Inc. Method and apparatus for performing atomic accesses in a data processing system
JP2004503864A (ja) * 2000-06-12 2004-02-05 ミップス テクノロジーズ インコーポレイテッド ダイナミックマルチストリーミングプロセッサでメモリ操作の原子性を実現するための方法と装置

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5276847A (en) 1990-02-14 1994-01-04 Intel Corporation Method for locking and unlocking a computer address
US5428761A (en) 1992-03-12 1995-06-27 Digital Equipment Corporation System for achieving atomic non-sequential multi-word operations in shared memory
US5548780A (en) 1994-07-21 1996-08-20 Apple Computer, Inc. Method for semaphore communication between incompatible bus locking architectures
US5761731A (en) 1995-01-13 1998-06-02 Digital Equipment Corporation Method and apparatus for performing atomic transactions in a shared memory multi processor system
US6529933B1 (en) * 1995-06-07 2003-03-04 International Business Machines Corporation Method and apparatus for locking and unlocking a semaphore
US5664092A (en) 1995-09-20 1997-09-02 National Instruments Corporation System and method for performing locked test and set operations in an instrumentation system
US6446149B1 (en) 1998-03-03 2002-09-03 Compaq Information Technologies Group, L.P. Self-modifying synchronization memory address space and protocol for communication between multiple busmasters of a computer system
US6377581B1 (en) 1998-05-14 2002-04-23 Vlsi Technology, Inc. Optimized CPU-memory high bandwidth multibus structure simultaneously supporting design reusable blocks
US6260098B1 (en) 1998-12-17 2001-07-10 International Business Machines Corporation Shared peripheral controller
US6381663B1 (en) 1999-03-26 2002-04-30 Hewlett-Packard Company Mechanism for implementing bus locking with a mixed architecture
US6490642B1 (en) * 1999-08-12 2002-12-03 Mips Technologies, Inc. Locked read/write on separate address/data bus using write barrier
US6487622B1 (en) 1999-10-28 2002-11-26 Ncr Corporation Quorum arbitrator for a high availability system
US6839816B2 (en) * 2002-02-26 2005-01-04 International Business Machines Corporation Shared cache line update mechanism
US7103528B2 (en) * 2002-09-19 2006-09-05 Lsi Logic Corporation Emulated atomic instruction sequences in a multiprocessor system

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5727172A (en) * 1995-05-01 1998-03-10 Motorola, Inc. Method and apparatus for performing atomic accesses in a data processing system
JP2004503864A (ja) * 2000-06-12 2004-02-05 ミップス テクノロジーズ インコーポレイテッド ダイナミックマルチストリーミングプロセッサでメモリ操作の原子性を実現するための方法と装置

Also Published As

Publication number Publication date
EP1789876B1 (en) 2012-01-11
US20060047917A1 (en) 2006-03-02
CN101044459B (zh) 2011-08-03
WO2006024985A2 (en) 2006-03-09
CN101044459A (zh) 2007-09-26
EP1789876A2 (en) 2007-05-30
KR20070062537A (ko) 2007-06-15
WO2006024985A3 (en) 2006-07-20
US8281080B2 (en) 2012-10-02
ATE541258T1 (de) 2012-01-15
TW200620104A (en) 2006-06-16

Similar Documents

Publication Publication Date Title
KR910007750B1 (ko) 다중 프로세서 컴퓨터 시스템에서 다중 록 표시자를 실시하기 위한 방법 및 장치
US5485594A (en) Apparatus and method using an atomic fetch and add for establishing temporary ownership of a common system resource in a multiprocessor data processing system
US4404628A (en) Multiprocessor system
US5506971A (en) Method and apparatus for performing a snoop-retry protocol in a data processing system
JP3832833B2 (ja) 情報処理方法および装置
US5611058A (en) System and method for transferring information between multiple buses
TWI396088B (zh) 執行原子信號操作之方法及裝置
JP2012038293A (ja) マシンビジョン用マルチプロセッサシステムオンチップ
US20140115209A1 (en) Flow Control for a Serial Peripheral Interface Bus
EP0358690A1 (en) METHOD AND APPARATUS FOR STARTING TRANSACTIONS IN A MULTIPROCESSOR COMPUTER SYSTEM USING MULTIPLE LOCKING INDICATIONS.
US5822765A (en) System and method for resolving contention arising from execution of cache coherency operations in a multiple cache computer system
US8458411B2 (en) Distributed shared memory multiprocessor and data processing method
JP3092566B2 (ja) パイプライン方式のバスを用いたメモリ制御方式
US6968431B2 (en) Method and apparatus for livelock prevention in a multiprocessor system
JP2591502B2 (ja) 情報処理システムおよびそのバス調停方式
JP2008511890A (ja) アトミック・オペレーションを用いて情報単位を変更する方法及び装置
US7558923B1 (en) Prevention of live-lock in a multi-processor system
US6502150B1 (en) Method and apparatus for resource sharing in a multi-processor system
US8938588B2 (en) Ensuring forward progress of token-required cache operations in a shared cache
JP2556268B2 (ja) プログラムダウンロード方式
US20100153610A1 (en) Bus arbiter and bus system
JP3240863B2 (ja) 調停回路
JP2006155488A (ja) データ処理装置およびデータ処理方法
JPH0844661A (ja) 情報処理装置
EP0923031A1 (en) Method for reading data from a shared memory in a multiprocessor computer system

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080305

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080305

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110317

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110601

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20110915

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20120305