JP2008518329A - アトミックなセマフォ操作を行う方法および装置 - Google Patents

アトミックなセマフォ操作を行う方法および装置 Download PDF

Info

Publication number
JP2008518329A
JP2008518329A JP2007538182A JP2007538182A JP2008518329A JP 2008518329 A JP2008518329 A JP 2008518329A JP 2007538182 A JP2007538182 A JP 2007538182A JP 2007538182 A JP2007538182 A JP 2007538182A JP 2008518329 A JP2008518329 A JP 2008518329A
Authority
JP
Japan
Prior art keywords
semaphore
address
bus
memory area
read
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.)
Withdrawn
Application number
JP2007538182A
Other languages
English (en)
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 JP2008518329A publication Critical patent/JP2008518329A/ja
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • 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
    • G06F13/1663Access to shared memory
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Multi Processors (AREA)
  • Analysing Materials By The Use Of Radiation (AREA)
  • Crystals, And After-Treatments Of Crystals (AREA)
  • Bus Control (AREA)

Abstract

処理システムと、処理システム内で通信する方法とが開示される。処理システムは、バスと、バスに連結されたメモリ領域と、バス上でメモリ領域へアクセスする複数の処理構成要素とを含み、各処理構成要素が、セマフォ操作を行って、バス上でのセマフォ位置への読み出し動作および書き込み動作を同時に要求することによって、メモリ領域へのアクセスを得るように構成されている。
【選択図】 図3

Description

本開示は、概ね、バスアーキテクチャを使用する処理システム、より具体的には、アトミックなセマフォ操作(atomic semaphore operation)を行う方法および装置に関する。
コンピュータは、非常に複雑な処理タスクを、キーパッドをほんの数回打つだけで行うことができるようにすることによって、エレクトロニクス産業に大きな変化をもたらした。これらの非常に複雑なタスクは、バスを使用して、迅速で効率的に相互に通信する非常に多くの複雑な構成要素に関与する。バスとは、コンピュータ内の構成要素間のチャネルまたはパスである。
コンピュータ内に存在する多くのバスは、以前より、共有バスとして実施されてきた。共有バスは、任意の数の構成要素が共通のパスまたはチャネル上で通信する手段を与える。近年、共有バス技術は、二地点間交換接続(point-to-point switching connection)によって大部分入れ替った。二地点間交換接続は、バス上の2つの構成要素が相互に通信しているとき、それらを直接に接続する。多数の直接リンクを使用して、幾つかの構成要素が同時に通信するのを可能にすることができる。バスアービタを使用して、バス上での通信を管理することができる。
従来のバス設計は、独立した別々の読み出し、書き込み、およびアドレスチャネルを含んでいる。バスアービタ(bus arbitor)によってバスへのアクセスを許可された構成要素は、アドレスチャネル上にアドレスを置き、側波帯シグナリングを使用して、適切な読み出し/書き込み制御信号を送ることによって、読み出しまたは書き込み動作を行い得る。構成要素は、バス上の他方の構成要素にデータを書き込むとき、書き込みチャネル上でデータを送る。構成要素は、バス上の他方の構成要素からデータを読み出すとき、読み出しチャネル上でデータを受信する。
バスアーキテクチャを実施しているコンピュータは、メモリに接続された多数の処理構成要素を含み得る。メモリは、システムの設計者によって、または動作中に動的に、領域に分割され得る。各処理構成要素は、自分自身の専用メモリ領域をもち得る。他方で、“共有メモリ領域”は、多数の処理によってアクセスされ得るメモリ領域である。セマフォ(semaphore)は、共有メモリ領域へのアクセスを管理するのに使用され得る。“セマフォ”は、共有メモリ位置に存在するハードウェアまたはソフトウェアのフラグであり、共有資源のアクセス可能性を示す。共有メモリ領域へのアクセスを必要とする処理構成要素は、セマフォを読み出して、共有メモリ領域のアクセス可能性を判断する。セマフォが、共有メモリ領域が使用可能であることを示すとき、処理構成要素は、共有メモリ領域がロックされていることを示すようにセマフォを設定し、メモリへのアクセスを開始する。セマフォを読み出して、設定するプロセスは、アトミックに(atomically)に行われる必要がある。すなわち、他の処理構成要素は、このプロセス中に、セマフォにアクセス不可能であるべきである。
セマフォへのアトミックなアクセスは、従来のバスプロトコルに本来備わっていない。そうではなくて、これは、バスプロトコルに追加され、しばしば特別なハードウェアを要求する特別な場合である。追加のハードウェアは、処理構成要素およびバスアービタの複雑さを増し、システム内の処理遅延を追加することになり得る。したがって、バスプロトコルの枠組み内で、追加のハードウェアを最少にして、性能を劣化することなく、セマフォへのアトミックなアクセスを実施することが、当技術において必要とされている。
本発明の1つの態様において、処理システムは、バスと、バスに連結されたメモリ領域と、バス上でメモリ領域にアクセスする複数の処理構成要素とを含み、各処理構成要素が、セマフォ操作を行って、セマフォ位置への読み出しおよび書き込み動作をバス上で同時に要求することによって、メモリ領域へのアクセスを得るように構成されている。
本発明の別の態様では、処理システムは、バスと、バスに連結されたメモリ領域と、バス上でメモリ領域にアクセスする複数の処理構成要素とを含み、各処理構成要素が、セマフォ操作を行って、セマフォ位置への読み出しおよび書き込み動作をバス上で同時に要求することによって、メモリ領域へのアクセスを得る手段をもつ。
本発明のさらに別の態様では、複数の処理構成要素によるバス上でのメモリ領域へのアクセスを管理する方法が行われ得る。方法は、処理構成要素の1つによって、セマフォ操作を行って、メモリ領域へのアクセスを得ることを含み、セマフォ操作は、バス上でセマフォ位置への読み出しおよび書き込み動作を同時に要求することによって行われる。
本発明の種々の実施形態が例示的に示され、記載されている次の詳細な説明から、本発明の他の実施形態が、当業者に容易に明らかになることが分かる。理解されることになるように、本発明は、他の、および異なる実施形態が可能であり、その幾つかの細部は、種々の他の点において、その全てが本発明の意図および範囲から逸脱することなく、変更することができる。したがって、図面および詳細な記述は、本質的に例示的であって、限定的ではないと考えられる。
本発明の態様は、添付の図面において、制限的にではなく、例示的に示されている。
添付の図面に関連して後述される詳細な記述は、本発明の種々の実施形態の記述として意図されており、本発明が実行され得る唯一の実施形態を表わすことを意図されていない。詳細な記述は、本発明を完全に理解させるために、具体的な詳細を含んでいる。しかしながら、当業者には、本発明が、これらの具体的な詳細がなくても実行され得ることが明らかになるであろう。幾つかの例において、本発明の概念を不明瞭にするのを避けるために、周知の構造および構成要素がブロック図の形で示されている。
図1は、処理システムの例を示す概念ブロック図である。処理システム100は、コンピュータであるか、またはコンピュータ内に存在し、情報を、処理、検索、および記憶することができ得る。処理システム100は、スタンド アローン システムであるか、またはセルラ電話のようなデバイス内に埋め込まれ得る。図1に示されているように、処理システム100内の2つの処理構成要素102aおよび102bは、バス106を使用して、共通資源104を共有し得る。各処理構成要素102aおよび102bは、任意のタイプのバスマスタ構成要素(bus mastering component)であり、例えば、マイクロプロセッサ、ディジタル信号プロセッサ(digital signal processor, DSP)、ブリッジ、プログラム可能論理、ディスクリートなゲートまたはトランジスタ論理、あるいは任意の他の情報処理構成要素を含み得る。共通資源104は、任意のタイプのバススレーブ構成要素(bus slave component)であり、例えば、レジスタ、メモリ、ブリッジ、または情報を検索し、記憶することができる任意の他の構成要素であり得る。図1に示されている実施形態において、共通資源104は、メモリの領域である。“メモリ領域”という用語は、任意のメモリデバイス、メモリデバイスの任意の部分、メモリマップ領域、等を指す。
バスアービタ108は、共有メモリ領域104へのアクセスを管理するのに使用され得る。バスアービタ108の1つの実施形態において、共有メモリ領域104へアクセスしたい処理構成要素102aまたは102bは、読み出しまたは書き込み要求をバスアービタ108へ同報通信し得る。バスアービタ108を使用して、要求している処理構成要素102aまたは102bに、読み出しまたは書き込み動作を行うための共有メモリ領域104へのアクセスを許可するように、バス相互接続110を構成することができる。1つ以上の処理構成要素からの多数の読み出しまたは書き込み、あるいはこの両者の要求がバスアービタ108において競合する場合に、バスアービタ108は、読み出しまたは書き込み、あるいはこの両者の動作が行われる順序を判断し、それにしたがって相互接続110を動的に構成し得る。読み出しまたは書き込み、あるいはこの両者の動作の順序は、任意のバスアービトレーション方式に基づき得る。バスアービトレーション方式は、個別の応用および全体的な設計上の制約によって異なり得るが、通常、公平なやり方で、ある種の優先順位に基づく許可システムのバランスをとることを試みる。
バスアービトレーション方式へのオーバーレイとして、処理構成要素102aまたは102bは、共有メモリ領域への排他的なアクセスを得る試みにおいて、共有メモリ領域104とセマフォ操作を行い得る。セマフォ操作は、処理構成要素102aまたは102bが、セマフォの状態を判断し、共有メモリ領域104が使用可能であるかについて、セマフォを設定することを可能にする。この特定の例では、セマフォは、共有メモリ領域104に記憶されるが、当業者には分かるように、セマフォは、処理システム100内の何れの場所にも記憶され得る。処理構成要素102aまたは102bは、幾つかの異なるやり方で、セマフォ操作を行い得る。一例として、マイクロプロセッサとして構成されている処理構成要素102aまたは102bは、スワップ命令(swap instruction)によってセマフォ操作を行うソフトウェアを含み得る。スワップ命令は、セマフォを共有メモリ領域104から第1の内部レジスタへ読み出し、次に、更新されたセマフォを第2の内部レジスタから共有メモリ領域104内のセマフォ位置へ記憶するのに使用され得る。更新されたセマフォは、共有メモリ領域104に対するロックを示すフラグであり得る。セマフォ読み出し操作の後では、これが必ず当てはまるであろう。その理由は、要求している処理構成要素102aまたは102bはそのロックを得るか、または共有メモリ領域104は既にロックされているからである。これは、当技術において周知の試験および設定アルゴリズムにしたがっている。
セマフォ操作は、バス106上でのアトミックな読み出し/書き込み動作で行われなければならない。1つのアプローチでは、バスアービタ108に、セマフォ操作中、バスアービトレーションを1つの処理構成要素にロックさせる。一例として、共有メモリ領域104にアクセスしたい処理構成要素102aまたは102bは、ロックされている読み出し動作を要求し、セマフォの状態を判断し、次に、ロックされている書き込み動作を要求し、セマフォの状態を更新することによって、セマフォ操作を行い得る。バスアービタ108は、セマフォ位置に対するロックされている読み出し動作要求を検出すると、バス相互接続110を介して、処理構成要素102aまたは102bに、共有メモリ領域104へのアクセスを許可し、他の全てのバスマスタ構成要素から共有メモリ領域104への他の全ての読み出しまたは書き込み、あるいはこの両者の要求を、処理構成要素102aまたは102bがセマフォの状態を更新するまで遅らせることによって、バスアービトレーションをロックする。
このアプローチの欠点は、これが、処理構成要素102aまたは102bがシステムの設計者によって決定されたバスアービトレーション方式を無視(override)することを可能にしていることである。これは、処理システム100の性能に悪影響を与え得る。さらに加えて、バスアービタ108が、セマフォ操作を行う要求に応答して処理構成要素へバスアービトレーションをロックすると、バスアービタ108は、処理構成要素102aまたは102bをこの操作に制限できない。処理構成要素102aまたは102bは、自分が要求している帯域幅を自分が得ていないと思っているので、他方の処理構成要素を任意にロックアウトすることができる。
このアプローチの別の欠点は、これが、バスプロトコルの特別な場合であり、追加のハードウェアを必要とすることである。セマフォ操作が、バスプロトコルの枠組み内でアトミックに行われ得るならば、この追加のハードウェアを無くすことができる。アトミックなセマフォ操作を支援することができるバスプロトコルは、読み出しおよび書き込み動作の同時要求を可能にする。ここで、このプロトコルを実施するバスアーキテクチャの例を記載する。
図2は、処理システムにおける、処理構成要素と共有メモリ領域との間のバス上での二地点間接続を示す概念ブロック図である。処理構成要素102は、バスアービタ108の制御の下で、バス相互接続110を介して共有メモリ領域104へのアクセスを許可される。この例において、バス106の複雑さは、従来のバス構造において使用されているアドレスチャネルを無くすことによって緩和され得る。アドレスチャネルを無くすことは、書き込みチャネルを“送信チャネル”106aとして定義し直すことによって達成され得る。送信チャネル106aは、アドレス情報および書き込みデータを処理構成要素102から共有メモリ領域104へ時分割多重化方式で同報通信する一般的な媒体として使用され得る。このバスプロトコルの例は、2004年4月27日に出願された米国特許出願第10/833,716号(代理人事件整理番号第040237号)(“A Multiple Address Two Channel Bus Structure”)に記載されており、その内容は、参照によって本明細書に取り入れられる。
処理構成要素102は、送信チャネル106a上でアドレスを同報通信し、同時に、側波帯シグナリングを使用して、書き込み動作を共有メモリ領域104へ知らせることによって、共有メモリ領域104へ書き込み得る。処理構成要素102は、アドレスの同報通信の後で、書き込みデータを送信チャネル106a上で同報通信してもよい。共有メモリ領域104は、書き込みデータを、送信チャネル106a上で既に同報通信されたアドレスを用いて、メモリの一区画に記憶し得る。
処理構成要素102は、送信チャネル106a上でアドレスを同報通信し、同時に、側波帯シグナリングを使用して、読み出し動作を共有メモリ領域104へ知らせることによって、共有メモリ領域104から読み出し得る。共有メモリ領域104は、データを、送信チャネル106a上で同報通信されたアドレスを用いて、メモリの一区画から読み出し、受信チャネル106b上で読み出しデータを処理構成要素102へ同報通信し得る。
バスプロトコルは、2つの異なるアドレス位置を送信チャネル106a上で共有メモリ領域104へ同時に同報通信することを支援するようにも構成され得る。この概念は、図3の概念ブロック図に示されている。バスアービタ108の制御の下での、バス相互接続110を介しての処理構成要素102と共有メモリ領域104との間の二地点間接続が示されている。この例において、送信チャネルの上の方の部分(アドレスA)は、共有メモリ領域104の第1のアドレス位置104aにアクセスするのに使用され、送信チャネルの下の方の部分(アドレスB)は、共有メモリ領域104の第2のアドレス位置104bにアクセスするのに使用され得る。この構成を使用して、処理構成要素102は、(1)2つの読み出し動作を同時に、(2)2つの書き込み動作を同時に、または(3)同じまたは異なるアドレスにおける同時の読み出しおよび書き込み動作を要求し得る。1つ以上の側波帯信号が、アドレス位置の各々と関係付けられ得る。
バスプロトコルは、暗示アドレス指定方式(implicit addressing scheme)を使用して、同じアドレスへの同時の読み出しおよび書き込み動作要求に対処し得る。一例として、処理構成要素102は、第1の動作が行われるアドレスをアドレスAとして、第2の動作が行われるアドレスをアドレスBとして同報通信し得る。共有メモリ領域104によって行われる読み出し/書き込み順序は、このアドレス指定方式に基づいて、順序の一貫性を維持し得る。したがって、同じアドレスが、アドレスAおよびアドレスBに対して使用され、処理構成要素102が、アドレスAに対する書き込み動作と、アドレスBに対する読み出し動作を知らせるときは、共有メモリ領域104は、このアドレスに新しく書き込まれたデータを、処理構成要素102へ送信するために受信チャネルへ与える前に、送信チャネル106a上で同報通信された書き込みデータが、共有メモリ領域104に書き込まれるまで待つことになる。逆に、処理構成要素102が、アドレスAに対する読み出し動作と、アドレスBに対する書き込み動作とを知らせるときは、共有メモリ領域104は、送信チャネル106aからの新しいデータを、共有メモリ領域104内のこのアドレスに書き込む前に、このアドレスのデータを受信チャネルに与えることになる。
図4は、2本のチャネルのバスアーキテクチャを有する処理システムの例を示す概念ブロック図である。2本のチャネルのバス構造は、図2および3に関連して記載されたものに似たバスプロトコルによって支援され得る。この例において、アトミックなセマフォ操作は、バスプロトコルの枠組み内で行われ得る。より具体的には、処理構成要素102aは、セマフォ位置への読み出しおよび書き込み動作を同時に要求し得る。これは、セマフォのアドレスを、アドレスAおよびアドレスBの両者として、送信チャネル上で相互接続110へ同報通信することによって達成され得る。バスプロトコルが、上述の暗示アドレス指定方式を使用するとき、処理構成要素102aは、アドレスAに対する読み出し動作と、アドレスBに対する書き込み動作とを知らせる。他の処理構成要素からの未解決(pending)の要求によって、バスアービタ108は、バス相互接続110が、処理構成要素102aに、共有メモリ領域104へのアクセスを許可するように直ちに構成されるか、または接続を遅らせるかを決定する。何れの場合においても、処理構成要素102aが、共有メモリ領域104へのアクセスを許可されると、読み出しおよび書き込み動作が、アトミックに行われ得る。バスアービタ108は、要求をセマフォ操作として認識し、共有メモリ領域104をロックする必要はない。もっと正確に言えば、バスアービタ108は、単に、バスアービトレーション方式にしたがって、処理構成要素102aに、共有メモリ領域104へのアクセスを許可するだけである。別の処理構成要素102bがセマフォ操作を行うとき、バスアービトレーション方式は、共有メモリ領域104へのアクセスを管理するのに使用され得るが、実際のセマフォ操作は、バスアービタ108には認識できない。
バスアービタ108が、処理構成要素102aに、共有メモリ領域104へのアクセスを許可すると、セマフォ操作に対するアトミックな読み出しおよび書き込み動作が行われ得る。送信チャネル106a上でアドレスAおよびアドレスBの両者を占めているセマフォアドレスは、関係付けられるシグナリングと共に、バス相互接続110を介して、共有メモリ領域104へルーティングされ得る。処理構成要素102aは、セマフォアドレスの同報通信の後で、次のクロックサイクル中に、更新されたセマフォを同報通信してもよく、これも、バス相互接続110を介して、共有メモリ領域104へルーティングされる。更新されたセマフォは、スワップ命令を使用して、または任意の他の手段によって、処理構成要素102a内の内部レジスタから同報通信され得る。共有メモリ領域104の一部であるか、またはそれとは別々であるメモリ制御装置(図示されていない)が、上述の暗示アドレス指定方式か、または任意の他の方法に基づいて、読み出しおよび書き込み動作が行われる順序を判断する。この場合に、メモリ制御装置は、アドレスAに対する読み出し動作要求と、アドレスBに対する書き込み動作要求とを検出し、その結果、セマフォアドレスからの読み出し動作が最初に行われると判断する。読み出し動作は、共有メモリ領域104からセマフォを検索し、それを、受信チャネル106b上でバス相互接続110を介して処理構成要素102aへ同報通信することによって行われる。読み出し動作が完了すると、書き込み動作が、送信チャネル106a上で受信した更新されたセマフォを、セマフォアドレスへ書き込むことによって行われる。更新されたセマフォは、セマフォ操作の結果として処理構成要素102aによって、または以前に別のバスマスタ構成要素によって、共有メモリ領域がロックされていることを示すフラグである。
処理構成要素102aは、再び、スワップ命令を使用して、または任意の他の手段によって、受信チャネル106b上で共有メモリ領域104から同報通信されたセマフォを、内部レジスタへロードする。これが行われると、バスアービタ108は、他のバスマスタ構成要素からの要求に対処するために、バス相互接続110を自由に再構成することができる。処理構成要素102aは、セマフォから、共有メモリ領域104が使用可能であるかどうかを判断する。処理構成要素102aは、共有メモリ領域104が使用可能でない(すなわち、ロックされている)と判断すると、共有メモリ領域104に対して読み出すことも、書き込むことも試みない。処理構成要素102aは、共有メモリ領域104が後で使用可能になるまで、セマフォ操作を行う試みを続け得る。他方で、処理構成要素102aは、共有メモリ領域104が使用可能である(すなわち、ロックされていない)と判断すると、バスアービタ108によって実施されるバスアービトレーション方式にしたがって、共有メモリ領域104に対して読み出しおよび書き込みを行い得る。他のバスマスタ構成要素は、処理構成要素102aによって既に書き込まれた更新されたセマフォによるロックを検出することになるので、それらは、共有メモリ領域104からの読み出しまたは書き込みを試みない。処理構成要素102aは、共有メモリ領域104へのアクセスを最早必要としなくなると、セマフォ位置への書き込み動作を行い、フラグを変更し、共有メモリ領域104がロックされていないことを示す。この書き込み動作の後で、他のバスマスタ構成要素は、成功のセマフォ操作によって、共有メモリ領域104にアクセスすることができ得る。
本明細書に開示されている実施形態に関連して記載された種々の例示的な論理ブロック、モジュール、回路、素子、および/または構成要素は、汎用プロセッサ、ディジタル信号プロセッサ(digital signal processor, DSP)、特定用途向け集積回路(application specific integrated circuit, ASIC)、フィールドプログラマブルゲートアレイ(field programmable gate array, FPGA)または他のプログラマブル論理デバイス、ディスクリートなゲートまたはトランジスタ論理、ディスクリートなハードウェア構成要素、あるいは本明細書に記載されている機能を行うように設計された任意の組合せで実施または実行され得る。汎用プロセッサは、マイクロプロセッサであってもよいが、その代わりに、プロセッサは、任意の従来のプロセッサ、制御装置、マイクロ制御装置、または状態機械であってもよい。プロセッサは、計算構成要素の組合せ、例えば、DSPとマイクロプロセッサとの組合せ、複数のマイクロプロセッサ、DSPのコアに関連する1つ以上のマイクロプロセッサ、または任意の他のこのような構成としても実施され得る。
本明細書に開示されている実施形態に関連して記載された方法またはアルゴリズムは、ハードウェアにおいて、プロセッサによって実行されるソフトウェアモジュールにおいて、または2つの組合せにおいて直接的に具体化され得る。ソフトウェアモジュールは、RAMメモリ、フラッシュメモリ、ROMメモリ、EPROMメモリ、EEPROMメモリ、レジスタ、ハードディスク、取り外し可能ディスク、CD−ROM、または当技術において知られている任意の他の形態の記憶媒体の中に存在し得る。記憶媒体はプロセッサに接続され、プロセッサが記憶媒体から情報を読み出し、かつそこへ情報を書き込みことができるようにする。その代りに、記憶媒体は、プロセッサと一体構成であってもよい。
開示された実施形態のこれまでの記述は、当業者が本発明を作成または使用できるようにするために与えられている。これらの実施形態に対する種々の変更は、当業者には容易に明らかであり、本明細書に定められている一般的な原理は、本発明の意図および範囲から逸脱することなく、他の実施形態に適用され得る。したがって、本発明は、本明細書に示されている実施形態に制限されることを意図されているのではなく、特許請求項に一致する全範囲にしたがうことを意図されており、要素を単数形で記載していることは、“1つ、および1つのみ”を意味すると具体的に記載されていないならば、“1つ、および1つのみ”を意味するのではなく、“1つ以上”を意味することを意図されている。当業者に知られている、または知られることになる本開示の全体を通して記載されている種々の実施形態の要素に対して構造的および機能的に同等のものの全ては、参照によって本明細書に明示的に取り入れられ、特許請求項に含まれることを意図されている。さらに加えて、本明細書の開示は、そのような開示が特許請求項に明示的に記載されているかどうかに関わらず、公に供されることを意図されていない。特許請求項の要素が“〜のための手段(means for)”という語句を使用して、または方法の特許請求項の場合は、その要素が“〜のためのステップ(step for)”という語句を使用して明示的に記載されていないならば、その要素は、米国特許法第112条第6項の条項のもとで解釈されない。
処理システムの例を示す概念ブロック図。 処理システム内の、処理構成要素と共有メモリ領域との間のバス上での二地点間接続の例を示す概念ブロック図。 2つの異なるアドレス位置を共有メモリ領域へバス上で同時に同報通信することを支援する処理システムにおいて使用されるバスプロトコルの例を示す概念ブロック図。 2本のチャネルのバスアーキテクチャを有する処理システムの例を示す概念ブロック図。
符号の説明
100・・・処理システム、106・・・バス、106a・・・送信チャネル、106b・・・受信チャネル。

Claims (23)

  1. バスと、
    バスに連結されたメモリ領域と、
    バス上でメモリ領域へアクセスする複数の処理構成要素とを含み、各処理構成要素が、セマフォ操作を行って、セマフォ位置への読み出しおよび書き込み動作をバス上で同時に要求することによって、メモリ領域へのアクセスを得るように構成されている処理システム。
  2. 各処理構成要素が、セマフォアドレスの2つのコピーをセマフォ位置へバス上で同時に同報通信することによって、セマフォ操作に対して読み出しおよび書き込み動作を要求するようにも構成されている請求項1記載の処理システム。
  3. 各処理構成要素が、読み出し動作要求信号をセマフォアドレスの一方のコピーと共にセマフォ位置へ与え、書き込み動作要求信号をセマフォアドレスの他方のコピーと共にセマフォ位置へ与えることによって、セマフォ操作に対して読み出しおよび書き込み動作を要求するようにも構成されている請求項2記載の処理システム。
  4. 各処理構成要素が、セマフォアドレスの2つのコピーを同時に同報通信した後で、更新されたセマフォをセマフォ位置へ同報通信することによって、セマフォ操作を行うようにも構成されている請求項2記載の処理システム。
  5. セマフォ位置が、処理構成要素の1つからのセマフォアドレスへの読み出し動作要求に応答して、セマフォを検索し、検索されたセマフォを前記処理構成要素の1つへ同報通信するように構成されていて、セマフォ位置が、セマフォアドレスへの書き込み動作要求に応答して、更新されたセマフォを記憶するようにも構成されている請求項4記載の処理システム。
  6. バスが、送信チャネルおよび受信チャネルをさらに含み、各処理構成要素が、セマフォアドレスの2つのコピー、次に、更新されたセマフォをセマフォ位置へ送信チャネル上で同報通信するようにも構成されていて、セマフォ位置が、検索されたセマフォを前記処理構成要素の1つへ受信チャネル上で同報通信するようにも構成されている請求項5記載の処理システム。
  7. 各処理構成要素が、受信チャネル上で同報通信された検索されたセマフォから、メモリ領域が使用可能であるかどうかを判断するようにも構成されている請求項6記載の処理システム。
  8. 各処理構成要素が、メモリ領域が使用可能であると判断されるときに、書き込みデータアドレスおよび書き込みデータをメモリ領域へ送信チャネル上で同報通信することによって、データをメモリ領域へ書き込むようにも構成されていて、各処理構成要素が、メモリ領域が使用可能であると判断されるときに、読み出しデータアドレスをメモリ領域へ送信チャネル上で同報通信することによって、メモリ領域からデータを読み出し、読み出しデータを受信チャネルから読み出すようにも構成されている請求項7記載の処理システム。
  9. バスが、複数のラインをもつ送信チャネルを含み、各処理構成要素が、ラインの第1の部分上でセマフォアドレスの一方のコピーを、ラインの第2の部分上でセマフォアドレスの他方のコピーを同報通信することによって、セマフォ操作に対して読み出しおよび書き込み動作を要求するようにも構成されている請求項2記載の処理システム。
  10. 各処理構成要素が、ラインの第1の部分上で読み出し動作要求信号をセマフォアドレスの前記一方のコピーと共に、ラインの第2の部分上で書き込み動作要求信号をセマフォアドレスの前記他方のコピーと共に与えるようにも構成されている請求項9記載の処理システム。
  11. セマフォ位置が、要求された書き込み動作を行う前に、要求された読み出し動作を行うようにも構成されている請求項10記載の処理システム。
  12. バスと、
    バスに連結されたメモリ領域と、
    バス上でメモリ領域へアクセスする複数の処理構成要素とを含み、各処理構成要素が、セマフォ操作を行って、セマフォ位置への読み出しおよび書き込み動作をバス上で同時に要求することによって、メモリ領域へのアクセスを得る手段をもつ処理システム。
  13. 複数の処理構成要素によるバス上でのメモリ領域へのアクセスを管理する方法であって、
    処理構成要素の1つによってセマフォ操作を行って、メモリ領域へのアクセスを得ることを含み、セマフォ操作が、セマフォ位置への読み出しおよび書き込み動作をバス上で同時に要求することによって行われることを含む方法。
  14. セマフォ操作に対する読み出しおよび書き込み動作要求が、セマフォアドレスの2つのコピーを、前記処理構成要素の1つからセマフォ位置へバス上で同報通信することを含む請求項13記載の方法。
  15. セマフォ操作に対する読み出しおよび書き込み動作要求が、前記処理構成要素の1つから読み出し動作要求信号をセマフォアドレスの一方のコピーと共にセマフォ位置へ与えることと、前記処理構成要素の1つから書き込み動作要求信号をセマフォアドレスの他方のコピーと共にセマフォ位置へ与えることとをさらに含む請求項14記載の方法。
  16. 前記処理構成要素の1つによってセマフォ操作を行うことが、セマフォアドレスの2つのコピーを同時に同報通信した後で、更新されたセマフォをセマフォ位置へバス上で同報通信することを含む請求項14記載の方法。
  17. 前記処理構成要素の1つによるセマフォアドレスへの読み出し動作要求に応答して、セマフォ位置からセマフォを検索することと、検索されたセマフォをセマフォ位置から前記処理構成要素の1つへバス上で同報通信することと、セマフォアドレスへの書き込み動作要求に応答して、更新されたセマフォをセマフォ位置に記憶することとをさらに含む請求項14記載の方法。
  18. バスが、送信チャネルおよび受信チャネルをさらに含み、前記処理構成要素の1つが、セマフォアドレスの2つのコピー、次に、更新されたセマフォをセマフォ位置へ送信チャネル上で同報通信し、セマフォ位置が、検索されたセマフォを前記処理構成要素の1つへ受信チャネル上で同報通信する請求項17記載の方法。
  19. 前記処理構成要素の1つにおいて、検索されたセマフォから、メモリ領域が使用可能であるかどうかを判断することをさらに含む請求項18記載の方法。
  20. 前記処理構成要素の1つが、メモリ領域が使用可能であることを判断する方法であって、書き込みデータアドレスおよび書き込みデータを前記処理構成要素の1つからメモリ領域へ送信チャネル上で同報通信することによって、データをメモリ領域へ書き込むことをさらに含む請求項19記載の方法。
  21. 前記処理構成要素の1つが、メモリ領域が使用可能であることを判断する方法であって、読み出しデータアドレスを前記処理構成要素の1つからメモリ領域へ送信チャネル上で同報通信することによって、メモリ領域からデータを読み出すことと、メモリ領域からの読み出しデータを前記処理構成要素の1つへ同報通信することとをさらに含む請求項19記載の方法。
  22. バスが、複数のラインをもつ送信チャネルを含み、各処理構成要素が、ラインの第1の部分上でセマフォアドレスの一方のコピーを、ラインの第2の部分上でセマフォアドレスの他方のコピーを同報通信することによって、セマフォ操作の読み出しおよび書き込み動作を要求するようにも構成されている請求項14記載の方法。
  23. ラインの第1の部分上で読み出し動作要求信号をセマフォアドレスの前記一方のコピーと共にセマフォ位置へ与えることと、ラインの第2の部分上で書き込み動作要求信号をセマフォアドレスの前記他方のコピーと共に与えることとをさらに含む請求項22記載の方法。
JP2007538182A 2004-10-22 2005-10-24 アトミックなセマフォ操作を行う方法および装置 Withdrawn JP2008518329A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/971,740 US7610463B2 (en) 2004-10-22 2004-10-22 Method and apparatus for performing an atomic semaphore operation
PCT/US2005/038516 WO2006047570A1 (en) 2004-10-22 2005-10-24 Method and apparatus for performing an atomic semaphore operation

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2010204843A Division JP5558982B2 (ja) 2004-10-22 2010-09-13 アトミックなセマフォ操作を行う方法および装置

Publications (1)

Publication Number Publication Date
JP2008518329A true JP2008518329A (ja) 2008-05-29

Family

ID=36087815

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2007538182A Withdrawn JP2008518329A (ja) 2004-10-22 2005-10-24 アトミックなセマフォ操作を行う方法および装置
JP2010204843A Expired - Fee Related JP5558982B2 (ja) 2004-10-22 2010-09-13 アトミックなセマフォ操作を行う方法および装置

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2010204843A Expired - Fee Related JP5558982B2 (ja) 2004-10-22 2010-09-13 アトミックなセマフォ操作を行う方法および装置

Country Status (15)

Country Link
US (1) US7610463B2 (ja)
EP (1) EP1812868B1 (ja)
JP (2) JP2008518329A (ja)
KR (1) KR100915260B1 (ja)
CN (1) CN101080706B (ja)
AT (1) ATE527601T1 (ja)
DK (1) DK1812868T3 (ja)
ES (1) ES2371767T3 (ja)
HK (1) HK1108297A1 (ja)
IL (1) IL182733A (ja)
MX (1) MX2007004870A (ja)
PL (1) PL1812868T3 (ja)
PT (1) PT1812868E (ja)
TW (1) TWI396088B (ja)
WO (1) WO2006047570A1 (ja)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7631152B1 (en) * 2005-11-28 2009-12-08 Nvidia Corporation Determining memory flush states for selective heterogeneous memory flushes
US20080059674A1 (en) * 2006-09-01 2008-03-06 Jiaxiang Shi Apparatus and method for chained arbitration of a plurality of inputs
US20090292885A1 (en) * 2008-05-22 2009-11-26 Fujitsu Limited Method and apparatus for providing atomic access to memory
US8023345B2 (en) * 2009-02-24 2011-09-20 International Business Machines Corporation Iteratively writing contents to memory locations using a statistical model
US8751860B2 (en) * 2009-06-03 2014-06-10 Micron Technology, Inc. Object oriented memory in solid state devices
US8230276B2 (en) * 2009-09-28 2012-07-24 International Business Machines Corporation Writing to memory using adaptive write techniques
US8386739B2 (en) * 2009-09-28 2013-02-26 International Business Machines Corporation Writing to memory using shared address buses
US8463985B2 (en) 2010-03-31 2013-06-11 International Business Machines Corporation Constrained coding to reduce floating gate coupling in non-volatile memories
US8599886B2 (en) 2010-08-26 2013-12-03 Qualcomm Incorporated Methods and apparatus for reducing transfer qualifier signaling on a two-channel bus
JP2012252490A (ja) * 2011-06-02 2012-12-20 Renesas Electronics Corp マルチプロセッサおよびそれを用いた画像処理システム
CN102523481A (zh) * 2011-12-09 2012-06-27 成都东方盛行电子有限责任公司 一种节目播出系统用数据交换缓存的方法
KR102285749B1 (ko) 2014-11-10 2021-08-05 삼성전자주식회사 세마포어 기능을 갖는 시스템 온 칩 및 그것의 세마포어 구현 방법
US20170347892A1 (en) * 2014-11-18 2017-12-07 Sony Corporation Information processing device, information processing system, information processing method, and program
CN105630714B (zh) * 2014-12-01 2018-12-18 晨星半导体股份有限公司 接口资源分析装置及其方法
US9928174B1 (en) * 2016-03-16 2018-03-27 Amazon Technologies, Inc. Consistent caching
JP2019082897A (ja) * 2017-10-31 2019-05-30 富士通株式会社 情報処理装置、情報処理システム及びプログラム

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS60118961A (ja) * 1983-11-30 1985-06-26 Fujitsu Ltd メモリの共通領域アクセス制御方式
JP2003007062A (ja) * 2001-06-25 2003-01-10 Internatl Business Mach Corp <Ibm> スタック・バンク・アーキテクチャのためのデコード方式

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4456965A (en) 1980-10-14 1984-06-26 Texas Instruments Incorporated Data processing system having multiple buses
US4594657A (en) 1983-04-22 1986-06-10 Motorola, Inc. Semaphore for memory shared by two asynchronous microcomputers
GB9406477D0 (en) * 1994-03-31 1994-05-25 D2B Systems Co Ltd Interconnection of local communication bus systems
EP0695999A3 (en) * 1994-06-30 1998-07-08 Digital Equipment Corporation System bus with separate address and data bus protocols
US5548780A (en) * 1994-07-21 1996-08-20 Apple Computer, Inc. Method for semaphore communication between incompatible bus locking architectures
US5960441A (en) * 1996-09-24 1999-09-28 Honeywell Inc. Systems and methods for providing dynamic data referencing in a generic data exchange environment
JPH10177560A (ja) * 1996-12-17 1998-06-30 Ricoh Co Ltd 記憶装置
US6745274B1 (en) * 2000-04-25 2004-06-01 Hewlett-Packard Development Company, L.P. Apparatus and method for synchronizing multiple accesses to common resources
US6513089B1 (en) * 2000-05-18 2003-01-28 International Business Machines Corporation Dual burst latency timers for overlapped read and write data transfers
US6587905B1 (en) * 2000-06-29 2003-07-01 International Business Machines Corporation Dynamic data bus allocation
JP3662233B2 (ja) * 2002-03-06 2005-06-22 株式会社東芝 論理回路を含むバスバッファ回路
KR100803450B1 (ko) * 2002-11-19 2008-02-14 엘지노텔 주식회사 공유 버스 시스템의 스케줄링 장치 및 그 방법
US7360035B2 (en) * 2004-09-01 2008-04-15 International Business Machines Corporation Atomic read/write support in a multi-module memory configuration

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS60118961A (ja) * 1983-11-30 1985-06-26 Fujitsu Ltd メモリの共通領域アクセス制御方式
JP2003007062A (ja) * 2001-06-25 2003-01-10 Internatl Business Mach Corp <Ibm> スタック・バンク・アーキテクチャのためのデコード方式

Also Published As

Publication number Publication date
HK1108297A1 (en) 2008-05-02
TWI396088B (zh) 2013-05-11
MX2007004870A (es) 2007-07-04
JP5558982B2 (ja) 2014-07-23
ATE527601T1 (de) 2011-10-15
EP1812868B1 (en) 2011-10-05
CN101080706A (zh) 2007-11-28
US20060090051A1 (en) 2006-04-27
PL1812868T3 (pl) 2012-03-30
EP1812868A1 (en) 2007-08-01
DK1812868T3 (da) 2012-02-13
PT1812868E (pt) 2011-12-21
KR20070084362A (ko) 2007-08-24
CN101080706B (zh) 2013-01-02
KR100915260B1 (ko) 2009-09-03
JP2011048834A (ja) 2011-03-10
WO2006047570A1 (en) 2006-05-04
ES2371767T3 (es) 2012-01-09
TW200634529A (en) 2006-10-01
IL182733A (en) 2012-05-31
IL182733A0 (en) 2007-07-24
US7610463B2 (en) 2009-10-27

Similar Documents

Publication Publication Date Title
JP5558982B2 (ja) アトミックなセマフォ操作を行う方法および装置
US7421529B2 (en) Method and apparatus to clear semaphore reservation for exclusive access to shared memory
JP3634932B2 (ja) データ完全性を維持するためのスピン・バッファおよび方法
EP1564646A2 (en) Configurable embedded processor
KR100644596B1 (ko) 버스 시스템 및 그 버스 중재방법
JP2008515090A5 (ja)
US8458411B2 (en) Distributed shared memory multiprocessor and data processing method
US8386719B2 (en) Method and apparatus for controlling shared memory and method of accessing shared memory
US20080172510A1 (en) Parallel bus architecture and related method for interconnecting sub-systems utilizing a parallel bus
JPH09153009A (ja) 階層構成バスのアービトレーション方法
JP2008511890A (ja) アトミック・オペレーションを用いて情報単位を変更する方法及び装置
US8239652B2 (en) Data processing system
US20100153610A1 (en) Bus arbiter and bus system
JPH11203253A (ja) 共有資源排他アクセス制御方式
JPS63175964A (ja) 共有メモリ
JP2003280980A (ja) 共有メモリ排他制御装置及び共有メモリ排他制御方法
JP2000099391A (ja) プリンタ装置およびプリンタ制御方法、並びに記録媒体
JP2001075826A (ja) 並列計算機における高効率セマフォ処理方式
JP2004272488A (ja) データ処理システム及びデータ処理装置
JPH07239832A (ja) 情報処理装置

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090825

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20091125

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20091202

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20091224

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20100106

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20100511

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100913

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20101102

A761 Written withdrawal of application

Free format text: JAPANESE INTERMEDIATE CODE: A761

Effective date: 20101201