JP6129976B2 - 高効率アトミック演算を使用した方法および装置 - Google Patents

高効率アトミック演算を使用した方法および装置 Download PDF

Info

Publication number
JP6129976B2
JP6129976B2 JP2015534896A JP2015534896A JP6129976B2 JP 6129976 B2 JP6129976 B2 JP 6129976B2 JP 2015534896 A JP2015534896 A JP 2015534896A JP 2015534896 A JP2015534896 A JP 2015534896A JP 6129976 B2 JP6129976 B2 JP 6129976B2
Authority
JP
Japan
Prior art keywords
shared resource
master
access
master device
response
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.)
Active
Application number
JP2015534896A
Other languages
English (en)
Other versions
JP2015530679A (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.)
Qualcomm Inc
Original Assignee
Qualcomm 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 Qualcomm Inc filed Critical Qualcomm Inc
Publication of JP2015530679A publication Critical patent/JP2015530679A/ja
Application granted granted Critical
Publication of JP6129976B2 publication Critical patent/JP6129976B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/36Handling requests for interconnection or transfer for access to common bus or bus system
    • G06F13/362Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control
    • G06F13/364Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control using independent requests or grants, e.g. using separated request and grant lines
    • 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/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/1652Handling requests for interconnection or transfer for access to memory bus based on arbitration in a multiprocessor architecture
    • 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/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1673Details of memory controller using buffers
    • 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/22Handling requests for interconnection or transfer for access to input/output bus using successive scanning, e.g. polling
    • 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
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/16Memory access
    • G06F2213/1602Memory access type
    • 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/36Arbitration

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Hardware Redundancy (AREA)
  • Multi Processors (AREA)
  • Bus Control (AREA)

Description

[0001]本実施形態は、一般にデータ通信に関し、より詳細には、データをバッファするためのフロー制御を行う方法および装置に関する。
[0002]アトミック演算(Atomic operation)はマルチコアプロセッサアーキテクチャにおいてしばしば採用される。概して、アトミック演算は、システムの残りにとって成功または失敗というただ2つの可能な結果をもつ単一の演算のように見えるように結合される演算のセットである。
[0003]アトミック演算を採用する2つの従来の方法は、それぞれの「ロック(lock)」方式と「排他的(exclusive)」方式とを含む。ロック演算は、概して、一度にただ1つのマスタがバスにアクセスすることを可能にする。共有変数を採用するマルチコアアプリケーションの場合、アクティブマスタがバスの使用を終えるまで他のマスタが待つ必要があるので、ロック方式は非効率的であり得る。
[0004]排他的方式は、複数のマスタが演算中にバスを共用することを可能にする。このことは、複数の処理スレッドによって共用され得るセマフォ変数(semaphore variable)のために特に有用である。従来、排他的演算は、第1のマスタがメモリへの読取りアクセスを実行することに関与する。次いで、同じマスタによって同じロケーションへの書込みアクセスが行われ得る。読取りアクセス以来、ロケーションアドレスが変わらなかった場合、書込みアクセスは成功する。第2のマスタは、第1のマスタの読取りサイクルと書込みサイクルとの間の間隔中に読取りを開始し得る。失敗が生じた場合、第2のマスタは、リソースが利用可能になるまで要求を送ることによって共用リソースをポーリングする。利用可能になると、リソースへの排他的アクセスの要求が繰り返される。
[0005]排他的方式は、それの意図された用途のためにうまく動作するが、リソース利用可能性を判断するための反復ポーリングはバストラフィックおよびコンテキスト切替えを増加させ、相応して、バスに沿った利用可能なシグナリング帯域幅を低減させ、システムレイテンシを増加させる。
[0006]共用リソースへの複数のマスタデバイス間のアクセスを制御する方法が開示される。本方法は、第1のマスタデバイスから共用リソースにアクセスしたいという要求を受信することと、共用リソースの利用可能性を判断することとを含む。共用リソースが利用可能である場合、第1のマスタデバイスによる共用リソースへのアクセスを確立するために、成功応答が第1のマスタデバイスに返される。共用リソースが利用不可能である場合、失敗応答が第1のマスタデバイスに返される。リソースが利用不可能である間、共用リソースは、共用リソースが利用可能になるときが自動的に監視される。共用リソースが利用可能になると、第1のマスタデバイスに自動的に通知される。
[0007]本実施形態は、例として示されており、添付の図面の図によって限定されるものではない。
[0008]マルチプロセッサシステムの一実施形態を示す図。 [0009]図1のシステムを使用したアトミック演算を実装する高レベルコマンドおよび演算フローを示す図。 [0010]マスタデバイスの観点からの図2のコマンドおよび演算フローの一実施形態に対応する詳細なステップを含むフローチャートを示す図。 [0011]スレーブデバイスの観点からの図2のコマンドおよび演算フローに対応する方法の一実施形態に対応する詳細なステップを含むフローチャートの一部分を示す図。 [0012]図4Aと同様のフローチャートの一部分を示す図。
[0013]本実施形態によれば、共用リソースへの複数のマスタデバイス間のアクセスを制御する方法が開示される。本方法は、第1のマスタデバイスから共用リソースにアクセスしたいという要求を受信することと、共用リソースの利用可能性を判断することとを含む。共用リソースが利用可能である場合、第1のマスタデバイスによる共用リソースへの排他的アクセスを確立するために、成功応答が第1のマスタデバイスに返される。共用リソースが利用不可能である場合、失敗応答が第1のマスタデバイスに返される。リソースが不可能である間、共用リソースは、共用リソースが利用可能であるときを自動的に監視される。利用可能になると、第1のマスタデバイスに自動的に通知される。自動監視と通知とを行うことによって、マスタデバイスからのポーリングと、関係するコンテキスト切替えとが著しく低減され、システム性能が改善され得る。
[0014]以下の説明では、本開示の完全な理解を与えるために、特定の構成要素、回路、およびプロセスの例など、多数の具体的な詳細を記載する。また、以下の説明では、説明のために、本実施形態の完全な理解を与えるために具体的な名称を記載する。ただし、これらの具体的な詳細は、本実施形態を実行するために必要でないことがあることが当業者には明らかであろう。他の事例では、本開示を不明瞭にしないように、よく知られている回路およびデバイスをブロック図の形式で示す。本明細書で使用する「結合された」という用語は、直接接続されていること、または1つまたは複数の介在する構成要素もしくは回路を介して接続されていることを意味する。本明細書で説明する様々なバスを介して与えられる信号のいずれも、他の信号で時間マルチプレクスされ、1つまたは複数の共通バスを介して与えられ得る。さらに、回路要素またはソフトウェアブロック間の相互接続は、バスまたは単一の信号線として示され得る。バスの各々は代替的に単一の信号線であり得、単一の信号線の各々は代替的にバスであり得、単一の線またはバスは、構成要素間の通信のための無数の物理機構または論理機構のうちの任意の1つまたは複数を表し得る。本実施形態は、本明細書で説明する具体的な例に限定されるものと解釈されるべきではなく、むしろ添付の特許請求の範囲によって規定されたすべての実施形態をそれらの範囲内に含む。
[0015]より詳細には、図1を全体的に参照すると、マルチマスタシグナリングシステム100は、共用バス106を介してスレーブデバイス104を相互接続する複数のマスタデバイス102A〜102Nを採用する。一実施形態では、マスタデバイス102A〜102Nは、1つまたは複数の集積回路チップ上に配設され得る集積回路プロセッサとして実施される。スレーブデバイス104は、一実施形態では、1つまたは複数のメモリデバイス110へのアクセスを調停するためにメモリコントローラ108を採用するメモリシステムとして実施される。高い利用率および効率を維持しながらメモリへの共用アクセスを可能にするために、以下でより十分に説明する、セマフォタイプおよび非セマフォタイプのアトミック演算のための新しい方式がサポートされる。
[0016]図1をさらに参照すると、デバイス102Aなど、各マスタデバイスは、要求/応答論理114と待機キュー116とを採用するスケジューラ112を含む。要求/応答論理114は、演算を行うための排他的アクセスを調整するためにマスタデバイス102Aとスレーブバイス104との間でディスパッチされるコマンドまたは要求/応答の形式のメッセージを生成し、受信する。マスタデバイス102A中のコア回路118は、排他的アクセスの結果としてスレーブデバイス104に書き込まれるかまたはそれから取り出されるデータを生成およびまたは処理するための計算リソースを与える。待機キュー116は、マスタとスレーブとの間の排他的アクセスがセキュアにされ得るまで、所与のアトミックトランザクションのためのコマンドおよびデータを一時的に記憶する。
[0017]引き続き図1を参照すると、スレーブデバイス104は、変動する時間において排他的トランザクションを調整するために複数のマスタデバイス102A〜102Nと通信するスケジューリングインターフェース120を含む。スケジューリングインターフェース120は、先入れ先出しベースなどで様々なマスタデバイスからの要求を受信および記憶するためのバッファなどの要求キュー122を含む。応答論理124は、排他的アクセスのためのスレーブデバイス104の利用可能性を検出するために要求キュー122に結合する。一実施形態では、応答論理124は、メモリがアクセスのために利用可能であるとき、(1などの)第1の値を示し、メモリシステム104がマスタデバイスのうちの1つとの演算にロックされているとき、(0などの)第2の減分された値を示すカウンタを含む。コントローラ108はまた、以下でより十分に説明するように、メッセージを生成し、様々なマスタデバイスに送るための応答生成器126を含む。
[0018]図1をさらに参照すると、スケジューリングインターフェース120は、処理中および/またはコントローラ108によって処理するためにキューイングされた様々な演算を追跡し、扱うための処理リソースを与えるコア論理128に結合する。上述したように、一実施形態では、マスタデバイスの各々によって交互に排他的にアクセスされる共用リソースは、メモリである。したがって、コントローラ108と1つまたは複数のメモリデバイス110との間のアクセスを行うためにメモリインターフェース130が与えられる。いくつかの実施形態では、コントローラ108およびメモリデバイス110は別個の集積回路デバイスとして実施される。他の実施形態では、コントローラ機能は、分散され、マスタデバイス102A〜102Nの各々中に回路として含まれ得る。
[0019]図2に、複数のマスタデバイスと共用スレーブデバイスとの間の演算のシーケンスを示すフローチャートを示す。共用リソースへの排他的アクセスは、単一のトランザクションを行うためのコマンドのシーケンスに関与するセマフォタイプアトミック演算を使用することによって調停される。アトミック演算は、共用リソースへの排他的アクセスを有しないマスタデバイスからのポーリングを低減する。その結果、低減されたポーリングおよび関連するコンテキスト切替えは、相互接続のシグナリング帯域幅を改善し、それによってシステム性能を改善する。
[0020]図2をさらに参照し、一例としてメモリシステムコンテキストを使用すると、(メモリなどの)共用スレーブデバイスへの排他的アクセスを望んでいる(プロセッサなどの)第1のマスタデバイスは、202において、スレーブデバイスに第1の要求「アクセス獲得(ACQUIRE ACCESS)」を発行する。204において、スレーブデバイスが別のマスタデバイスとの排他的演算のために利用可能である場合、206において、「成功」信号がスレーブデバイスから第1のマスタデバイスに発行される。これにより、第1のマスタデバイスとスレーブデバイスとの間の一連のデータ読取りおよび/または書込みトランザクションを行うための2つのデバイス間のロック状態が確立される。
[0021]引き続き図2を参照すると、208において、第2のマスタデバイスがスレーブデバイスに排他的アクセス要求を発行した場合、210において、第1のマスタが排他的アクセスを有する間、第1のマスタデバイスとのロック状態により、スレーブは、「失敗(FAIL)」応答を用いて第2のマスタデバイスに応答する。第2のマスタデバイスは、次いで、メモリが利用可能になるまで、演算を実行するための待機動作モードに入る。212において、第1のマスタデバイスが「解放(RELEASE)」コマンドを発行すると、利用可能性が生じる。解放コマンドに応答して、スレーブデバイスは、214において、第1のマスタデバイスから解放され、216において、(前の失敗要求がスレーブデバイスキュー中の最高優先度演算であると仮定して)、自動的に「起動(WAKE)」コマンドを生成し、第2のマスタデバイスに発行する。第2のマスタが起動コマンドを受信すると、218において、スレーブデバイスとのロック状態を確立するために、新しい獲得要求が発行され、220において、排他性を確認するために、対応する成功コマンドがスレーブによって発行される。この時点で、222において、スレーブデバイスを第2のマスタデバイスにロックする。
[0022]図3に、セマフォタイプアトミック演算に関係する図2において上記で説明した方法に対応する、マスタデバイスの観点からの方法ステップの一実施形態をさらに詳細に示す。マスタデバイスが、スレーブデバイスによって制御されるメモリからデータを読み取り(またはそれにデータを書込む)必要があるとき、マスタデバイスは、302において、要求/応答論理114にアクセス「獲得」コマンドを生成させるための命令を実行し、304において、要求をスレーブデバイスに送信する。要求送信は、図4Aに移動するバブル「A」によって表される。コマンドが、306において判断されたセマフォタイプ演算である場合、308において、マスタデバイスは、スレーブとともにさらなるアクションをとる前に応答を待つ。コマンドが非セマフォタイプのコマンドである場合、すべての他の演算およびオペランドがコマンドとともにパケット化され、310において、コマンドがスレーブにディスパッチされる。
[0023]次に図4Aを参照すると、スレーブデバイススケジューリングインターフェース120は、(バブルAを介した)ステップ402において、第1のマスタICから「獲得」コマンドを受信する。次いで、404において、要求がセマフォタイプ演算に関与するかどうかの判断が行われる。そうでない場合、スレーブは、406において、排他的コマンドを要求キュー122にキューイングし、408において、排他的コマンドを順次アトミックに実行する。演算がセマフォタイプ演算である場合、410において、メモリの利用可能性を示す変数値にアクセスし、412において、変数の現在値を検出する。
[0024]図4Bを参照すると、変数の検出された値は、414において、(図4Aと図4Bとを接合するバブル「B」を介して)応答論理124によって評価される。一実施形態では、「0」よりも大きい値はリソースの利用可能性を示し、これにより、416において、前の値から減分された新しい変数値を書き込むことが生じる。次いで、418において、バブル「C」を介して第1のマスタICに成功応答を返す。
[0025]変数値がしきい値を上回らず、したがってリソースが利用不可能であることを示す場合、失敗応答が応答生成器126によって生成され、420において、バブル「D」を介して要求元マスタに返される。422において、応答論理124がリソースを自動的に監視し、424において、変数値がしきい値を上回ったとき、バブル「E」を介して要求元マスタに自動通知(応答)を送る。
[0026]非セマフォタイプアトミック演算は、演算情報のすべてを1つのアクセスにパケット化することに関与する。自動検出または通知機構は適用されない。
[0027]再び図3を参照すると、セマフォタイプ演算の場合、マスタデバイスは待機動作モードで待機し、マスタデバイスは、322において、受信されたメッセージを評価し、バブルC、D、またはEを介して「失敗」応答が受信されたかどうかを判断する。待機モードは待機キュー116(図1)によってアクティブにされ、待機キューは、マスタがスレーブへのアクセスを獲得することができるまで、元のアクセス要求をバッファに一時的に記憶する。非失敗(non-FAIL)応答が返され(成功または起動のいずれか)、要求/応答論理114(図1)によって受信されたとき、324において、受信されたメッセージが成功であるかどうかのさらなる判断が行われる。成功である場合、マスタデバイスとスレーブデバイスとの間のリンクはロックされ、326において、アトミックトランザクションを行うために一連の読取りおよび/または書込み動作が生じる。成功応答が受信されなかった場合、「起動」応答が仮定され、マスタデバイスは、上記で説明したステップを介した後続の「成功」応答の受信を通して確認されるロック状態を開始するために、302において、スレーブデバイスへのディスパッチのために後続の「獲得」コマンドを生成する。
[0028]提案した方式は、したがって、アクセスの数を最小限に抑え、利用可能性を判断するために演算をポーリングすることを低減する、アトミック演算を提供する。これは、対応して、バスにアクセスすることと、関連するコンテキスト切替えアクティビティとに関与するオーバーヘッドを減少させる。
[0029]上記の明細書では、本実施形態について、それの特定の例示的な実施形態を参照しながら説明した。しかしながら、添付の特許請求の範囲に記載された本開示のより広い趣旨および範囲から逸脱することなく、様々な改変および変更がそれに行われ得ることは明らかであろう。したがって、本明細書および図面は、限定的な意味ではなく例示的な意味で考慮されるべきである。
以下に本願発明の当初の特許請求の範囲に記載された発明を付記する。[C1]
共用リソースへの複数のマスタデバイス間のアクセスを制御する方法であって、前記方法は、
第1のマスタデバイスから前記共用リソースにアクセスしたいという要求を受信することと、
前記共用リソースの利用可能性を判断することと、
前記共用リソースが利用可能である場合、前記第1のマスタデバイスによる前記共用リソースへのアクセスを確立するために、前記第1のマスタデバイスに成功応答を返すことと、
前記共用リソースが利用不可能である場合、
前記第1のマスタデバイスに失敗応答を返すことと、
前記共用リソースが利用可能になるときを自動的に監視することと、
前記共用リソースが利用可能になったとき、前記第1のマスタデバイスに自動的に通知することと
を備える、方法。
[C2]
利用可能性を判断することは、
前記共用リソースがアクセスのために利用可能であるかどうかを表す値を有する変数を識別することと、
前記変数の現在値を検出することと
を備える、C1に記載の方法。
[C3]
自動的に監視することは、
前記変数値が所定のしきい値に達するときを検出することを備える、C2に記載の方法。
[C4]
前記変数がセマフォ変数を備える、C2に記載の方法。
[C5]
複数のマスタデバイスの各々から前記共用リソースへのアクセスの要求を受信することと、
前記要求をキューイングすること
をさらに備える、C1に記載の方法。
[C6]
自動的に通知することが、前記要求の前記キューイングの順序付けに基づく、C5に記載の方法。
[C7]
演算を行うための共用リソースへの排他的アクセスを要求するコマンドを生成するための要求論理と、前記共用リソースが複数のデバイスによって共用される、
前記共用リソースからのフェール応答信号に応答して、
前記演算に関して待機モードに入ることと、
前記共用リソースからの起動応答の受信まで前記待機モードを維持することと
を行うための待機論理と
を備える、デバイス。
[C8]
集積回路プロセッサとして実施される、C6に記載のデバイス。
[C9]
シグナリングバスに結合するためのインターフェースをさらに備え、前記シグナリングバスが前記複数のデバイスおよび前記共用リソースにも結合される、C7に記載のデバイス。
[C10]
前記待機論理が、前記共用リソースへの排他的アクセスを再要求することによって前記起動応答の受信に応答する、C7に記載のデバイス。
[C11]
共用リソースとマスタデバイスとの間のトランザクションを調停するためのインターフェースと、
前記マスタデバイスから前記共用リソースへのアクセスの着信要求を受信するためのモニタと、
前記共用リソースの利用可能性を判断するための調停論理と、
前記共用リソースへのアクセスを獲得するための所与のマスタデバイスの成功または失敗を示す信号を生成するための応答論理と
を備え、
ここにおいて、前記インターフェースが、前記複数のマスタデバイスからの第2のマスタデバイスのための起動信号を自動的に生成し、前記第2のマスタデバイスが、前記共用リソースの前記判断された利用可能性に基づいて前記要求キュー中で識別される、デバイス。
[C12]
前記モニタが、複数のマスタデバイスから前記共用リソースへのアクセスの着信要求を受信する、C11に記載のデバイス。
[C13]
前記モニタが要求キューを備える、C12に記載のデバイス。
[C14]
前記要求キュー中で前記着信要求を順序付けるための論理をさらに備える、C13に記載のデバイス。
[C15]
メモリシステムとして実施される、C11に記載のデバイス。
[C16]
前記共用リソースがメモリを含む、C11に記載のデバイス。
[C17]
前記調停論理は、前記共用リソースがアクセスのために利用可能であるかどうかを示す値を生成するカウンタ回路を備える、C11に記載のデバイス。
[C18]
複数のマスタデバイスと、
前記複数のマスタデバイスに結合されたバスと、
前記バスに結合され、前記複数のマスタデバイスによって共用されるリソースを含む、スレーブデバイスと、前記スレーブデバイスが、
前記共用リソースと前記複数のマスタデバイスからの第1のマスタデバイスとの間の排他的トランザクションを調停するためのインターフェースと、
前記複数のマスタデバイスの少なくとも一部分からの前記共用リソースへのアクセスの着信要求を監視するための要求キューと、
前記共用リソースの利用可能性を判断するための調停論理と、
前記共用リソースへのアクセスを獲得するための前記複数のマスタデバイスからの所与のマスタデバイスの成功または失敗を示す信号を生成するための応答論理と、ここにおいて、前記所与のマスタデバイスが、前記共用リソースにアクセスにしたいという要求を前記スレーブデバイスに送る、
を含み、
ここにおいて、前記インターフェースが、前記共用リソースの前記判断された利用可能性に基づいて前記要求キュー中で識別された第2のマスタデバイスのための起動信号を自動的に生成する、を備える、システム。
[C19]
前記複数のマスタデバイスが複数のプロセッサを備える、C18に記載のシステム。
[C20]
前記スレーブデバイスがメモリシステムを備える、C18に記載のシステム。
[C21]
前記共有リソースがメモリを備える、C18に記載のシステム。

Claims (16)

  1. 共用リソースへの複数のマスタデバイス間のアクセスを制御する方法であって、前記方法は、
    第1のマスタデバイスから前記共用リソースにアクセスしたいという要求を受信することと、
    前記共用リソースの利用可能性を判断することと、
    前記共用リソースが利用可能である場合、前記第1のマスタデバイスによる前記共用リソースへのアクセスを確立するために、前記第1のマスタデバイスに成功応答を返すことと、
    前記共用リソースが利用不可能である場合、
    前記第1のマスタデバイスに失敗応答を返すことと、ここで、前記第1のマスタデバイスは、前記失敗応答に応答して、待機モードに入り、起動応答の受信まで前記待機モードを維持することと
    前記共用リソースが利用可能になるときを自動的に監視することと、ここで、自動的に監視することは、前記共用リソースがアクセスのために利用可能であるかどうかを表す値を有する変数が所定のしきい値に達するときを検出することを含み、
    前記共用リソースが利用可能になったとき、前記第1のマスタデバイスに前記起動応答を自動的に通知することと
    を備える、方法。
  2. 利用可能性を判断することは、
    前記変数を識別することと、
    前記変数の現在値を検出することと
    を備える、請求項1に記載の方法。
  3. 前記変数がセマフォ変数を備える、請求項に記載の方法。
  4. 複数のマスタデバイスの各々から前記共用リソースへのアクセスの要求を受信することと、
    前記要求をキューイングすることと
    をさらに備える、請求項1に記載の方法。
  5. 自動的に通知することが、前記要求の前記キューイングの順序付けに基づく、請求項に記載の方法。
  6. 共用リソースとマスタデバイスとの間のトランザクションを調停するための、および前記マスタデバイスから前記共用リソースへのアクセスの着信要求を受信するためのインターフェースと、
    前記共用リソースの利用可能性を判断するための調停論理と、
    前記共用リソースへのアクセスを獲得するための所与のマスタデバイスの成功または失敗を示す信号を生成するための応答論理と
    を備え、
    ここにおいて、前記インターフェースが、複数のマスタデバイスからの第2のマスタデバイスに前記失敗を示す信号を返し、ここで、前記第2のマスタデバイスは、前記失敗を示す信号に応答して、待機モードに入り、起動信号の受信まで前記待機モードを維持し、前記インターフェースが、前記第2のマスタデバイスのための前記起動信号を自動的に生成し、前記第2のマスタデバイスが、前記共用リソースの前記判断された利用可能性に基づいて要求キュー中で識別され、前記調停論理は、前記共用リソースがアクセスのために利用可能であるかどうかを表す値を有する変数が所定のしきい値に達するときを検出し、前記共用リソースが利用可能になるときを自動的に監視する、
    デバイス。
  7. 前記インターフェースが、複数のマスタデバイスから前記共用リソースへのアクセスの着信要求を受信する、請求項に記載のデバイス。
  8. 前記インターフェースが要求キューを備える、請求項に記載のデバイス。
  9. 前記要求キュー中で前記着信要求を順序付けるための論理をさらに備える、請求項に記載のデバイス。
  10. メモリシステムとして実施される、請求項に記載のデバイス。
  11. 前記共用リソースがメモリを含む、請求項に記載のデバイス。
  12. 前記調停論理は、前記共用リソースがアクセスのために利用可能であるかどうかを示す値を生成するカウンタ回路を備える、請求項に記載のデバイス。
  13. 複数のマスタデバイスと、
    前記複数のマスタデバイスに結合されたバスと、
    前記バスに結合され、前記複数のマスタデバイスによって共用されるリソースを含む、スレーブデバイスと、前記スレーブデバイスが、
    前記共用リソースと前記複数のマスタデバイスからの第1のマスタデバイスとの間の排他的トランザクションを調停するためのインターフェースと、
    前記複数のマスタデバイスの少なくとも一部分からの前記共用リソースへのアクセスの着信要求を監視するための要求キューと、
    前記共用リソースの利用可能性を判断するための調停論理と、
    前記共用リソースへのアクセスを獲得するための前記複数のマスタデバイスからの所与のマスタデバイスの成功または失敗を示す信号を生成するための応答論理と、ここにおいて、前記所与のマスタデバイスが、前記共用リソースにアクセスにしたいという要求を前記スレーブデバイスに送る、
    を含み、
    ここにおいて、前記インターフェースが、前記複数のマスタデバイスからの第2のマスタデバイスに前記失敗を示す信号を返し、ここで、前記第2のマスタデバイスは、前記失敗を示す信号に応答して、待機モードに入り、起動信号の受信まで前記待機モードを維持し、前記インターフェースが、前記共用リソースの前記判断された利用可能性に基づいて前記要求キュー中で識別された前記第2のマスタデバイスのための前記起動信号を自動的に生成前記調停論理は、前記共用リソースがアクセスのために利用可能であるかどうかを表す値を有する変数が所定のしきい値に達するときを検出し、前記共用リソースが利用可能になるときを自動的に監視する、
    を備える、システム。
  14. 前記複数のマスタデバイスが複数のプロセッサを備える、請求項13に記載のシステム。
  15. 前記スレーブデバイスがメモリシステムを備える、請求項13に記載のシステム。
  16. 前記共用リソースがメモリを備える、請求項13に記載のシステム。
JP2015534896A 2012-10-04 2012-10-04 高効率アトミック演算を使用した方法および装置 Active JP6129976B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2012/082523 WO2014053074A1 (en) 2012-10-04 2012-10-04 Method and apparatus using high-efficiency atomic operations

Publications (2)

Publication Number Publication Date
JP2015530679A JP2015530679A (ja) 2015-10-15
JP6129976B2 true JP6129976B2 (ja) 2017-05-17

Family

ID=50434354

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015534896A Active JP6129976B2 (ja) 2012-10-04 2012-10-04 高効率アトミック演算を使用した方法および装置

Country Status (6)

Country Link
US (1) US20150234759A1 (ja)
EP (1) EP2904765B1 (ja)
JP (1) JP6129976B2 (ja)
KR (1) KR20150065803A (ja)
CN (1) CN104854845B (ja)
WO (1) WO2014053074A1 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101639946B1 (ko) 2015-04-13 2016-07-14 엘에스산전 주식회사 듀얼 포트 메모리 시스템의 접근 제어 방법
CN105404555A (zh) * 2015-12-29 2016-03-16 重庆安碧捷科技股份有限公司 医疗多线程共享资源分配处理方法及系统
US10176131B1 (en) * 2017-09-27 2019-01-08 Xilinx, Inc. Controlling exclusive access using supplemental transaction identifiers
CN108197046A (zh) * 2017-12-30 2018-06-22 盛科网络(苏州)有限公司 一种实现原子操作的系统及方法
CN109445950A (zh) * 2018-09-30 2019-03-08 青岛海尔科技有限公司 Ocf资源的互斥访问方法及系统、服务端、介质、设备
US11068303B2 (en) 2019-02-19 2021-07-20 International Business Machines Corporation Adjusting thread balancing in response to disruptive complex instruction
US10942775B2 (en) 2019-03-01 2021-03-09 International Business Machines Corporation Modified central serialization of requests in multiprocessor systems

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS53105139A (en) * 1977-02-24 1978-09-13 Nec Corp Dynamic main memory controller
JPS60169969A (ja) * 1984-02-15 1985-09-03 Fuji Electric Co Ltd マルチプロセツサシステム
JPH04128957A (ja) * 1990-09-20 1992-04-30 Fujitsu Ltd マルチプロセッサシステムにおける共有資源の排他制御方法
CA2057446C (en) * 1991-04-04 1998-02-17 Brian Neil Baker Shared memory access and data structure access control
JPH04361340A (ja) * 1991-06-07 1992-12-14 Fujitsu Ltd メモリ排他制御方式
JP2852149B2 (ja) * 1991-10-31 1999-01-27 日本電気アイシーマイコンシステム株式会社 セマフォビット回路
JP2861943B2 (ja) * 1996-05-29 1999-02-24 日本電気株式会社 セマフォに関するプロセス制御方法
JPH1145193A (ja) * 1997-07-28 1999-02-16 Toshiba Corp ソフトウエア開発支援方法およびソフトウエア開発支援装置および記録媒体
US6134579A (en) * 1997-08-15 2000-10-17 Compaq Computer Corporation Semaphore in system I/O space
US6910212B2 (en) * 2000-12-04 2005-06-21 International Business Machines Corporation System and method for improved complex storage locks
SE525748C2 (sv) * 2002-10-28 2005-04-19 Devlabs Ab Förfarande för direkta utskrifter i nätverk
US7047337B2 (en) * 2003-04-24 2006-05-16 International Business Machines Corporation Concurrent access of shared resources utilizing tracking of request reception and completion order
US7007108B2 (en) * 2003-04-30 2006-02-28 Lsi Logic Corporation System method for use of hardware semaphores for resource release notification wherein messages comprises read-modify-write operation and address
US8607241B2 (en) * 2004-06-30 2013-12-10 Intel Corporation Compare and exchange operation using sleep-wakeup mechanism
US7944829B2 (en) * 2005-03-28 2011-05-17 Netlogic Microsystems, Inc. Mechanism for managing access to resources in a heterogeneous data redirection device
US8443083B2 (en) * 2005-05-04 2013-05-14 Qualcomm Incorporated Arbitration of resources at a wireless device among contending applications
US7984202B2 (en) * 2007-06-01 2011-07-19 Qualcomm Incorporated Device directed memory barriers
EP2037635A1 (en) * 2007-09-13 2009-03-18 Deutsche Thomson OHG Method for managing network resources in a network and network resource management apparatus
US8396014B2 (en) * 2008-06-25 2013-03-12 Intel Corporation Techniques for management of shared resources in wireless multi-communication devices
CN102025528B (zh) * 2009-09-23 2013-12-18 中兴通讯股份有限公司 地址管理方法、装置和系统

Also Published As

Publication number Publication date
KR20150065803A (ko) 2015-06-15
JP2015530679A (ja) 2015-10-15
US20150234759A1 (en) 2015-08-20
EP2904765A1 (en) 2015-08-12
CN104854845A (zh) 2015-08-19
EP2904765B1 (en) 2019-05-08
WO2014053074A1 (en) 2014-04-10
EP2904765A4 (en) 2016-07-13
CN104854845B (zh) 2019-07-23

Similar Documents

Publication Publication Date Title
JP6129976B2 (ja) 高効率アトミック演算を使用した方法および装置
US7752370B2 (en) Splitting one hardware interrupt to multiple handlers
KR910001790B1 (ko) 디지탈 컴퓨터 시스템에서의 통신로 제어 할당용 중재 장치 및 이의 중재 방법
US6286068B1 (en) Queued arbitration mechanism for data processing system
US6009275A (en) Centralized management of resources shared by multiple processing units
US6141715A (en) Method and system for avoiding live lock conditions on a computer bus by insuring that the first retired bus master is the first to resubmit its retried transaction
CN103729329B (zh) 核间通信装置及方法
JP2539021B2 (ja) 保留バスに割り込み要求を送る割り込み要求発生ノ―ド
EP0358716A1 (en) NODE FOR SUPPORTING INTERRUPTION REQUEST MESSAGES ON A BUS ON HOLD.
EP0344216A1 (en) METHOD AND ARRANGEMENT FOR IMPLEMENTING MULTI-LOCKING INDICATORS IN A MULTIPROCESSOR DATA PROCESSING SYSTEM.
JPH0679305B2 (ja) 保留バスを用いて割り込みに応じる装置及び方法
JPH0246974B2 (ja)
JP3891994B2 (ja) 順番のある(in−order)キューをドレインする(drain)システムおよび方法
US10067889B2 (en) Bridge and method for coupling a requesting interconnect and a serving interconnect in a computer system
US10713188B2 (en) Inter-process signaling system and method
CN115840621A (zh) 一种多核系统的交互方法及相关装置
JP5239769B2 (ja) リクエスト順序制御システム、リクエスト順序制御方法およびリクエスト順序制御プログラム
JPH0844662A (ja) 情報処理装置
JPH0844661A (ja) 情報処理装置
JP6992295B2 (ja) 電子装置
JPH09204311A (ja) 情報処理システム
US8688880B2 (en) Centralized serialization of requests in a multiprocessor system
JPS6145348A (ja) バス優先権制御方式
JP2000305917A (ja) マルチプロセッサシステム
CN110955507A (zh) 基于vxWorks系统的多任务访问同意IIC总线的方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150908

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160726

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20161021

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20161129

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170221

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: 20170314

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170412

R150 Certificate of patent or registration of utility model

Ref document number: 6129976

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250