JP2007517328A - 動作モデルベースマルチスレッドアーキテクチャ - Google Patents
動作モデルベースマルチスレッドアーキテクチャ Download PDFInfo
- Publication number
- JP2007517328A JP2007517328A JP2006547392A JP2006547392A JP2007517328A JP 2007517328 A JP2007517328 A JP 2007517328A JP 2006547392 A JP2006547392 A JP 2006547392A JP 2006547392 A JP2006547392 A JP 2006547392A JP 2007517328 A JP2007517328 A JP 2007517328A
- Authority
- JP
- Japan
- Prior art keywords
- thread
- semaphore
- instructions
- execution
- message
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/3004—Arrangements for executing specific machine instructions to perform operations on memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30076—Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
- G06F9/30087—Synchronisation or serialisation instructions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multi Processors (AREA)
- Debugging And Monitoring (AREA)
- Advance Control (AREA)
- Executing Machine-Instructions (AREA)
Abstract
Description
ここで説明されているのは、複数の命令の複数の並列の受動的なスレッド(以下"複数のスレッド"と称する)が、複数の共有リソースへのアクセスを、"能動的"な複数のセマフォを用いて調整する、アーキテクチャおよび関連する複数の方法である。セマフォエンティティが、スレッドの状態を変更させるために、実行および/またはコントロール回路に複数のメッセージを送るので、複数のセマフォは、能動的と称される。例えば、スレッドは、未解決の依存性に応答して、スレッドスケジューラにより、スリープ(または非アクティブ)モードに置かれることができ、これは、セマフォにより示される。依存性に対応するスレッド状態変数は、スレッドがスリープモードであることを示すために使用される。
1つの実施形態において、従来のセマフォ毎の複数のキューは、それぞれのセマフォのための連結リストを形成するために使用される複数のエントリを有するバッファプールにより置き換えられる。したがって、それぞれのセマフォは、バッファプール内の複数のエントリから形成される連結リストへのヘッドポインタであることができる。連結リストは、双方向連結リストまたは単方向連結リストのどちらかであることができる。
セマフォ取得メッセージ(ACQ_MSG)は、スレッドまたはスレッドの代わりのスレッドディスパッチャのために、セマフォの所有権をセマフォエンティティへ要求をするために使用される。1つの実施形態において、ACQ_MSGは、セマフォ識別子領域、スレッド識別子領域、"自動解放"領域および"承認抑制"(ack抑制)領域を含む。自動解放領域は、ヘッド依存性のみを伴うスレッドのために使用される。つまり、スレッドは、前の複数のスレッドに依存するが、次の複数のスレッドは、そのスレッドに依存しない。ack抑制領域は、テール依存のみを伴うスレッドのために使用される。つまり、スレッドは、任意の前の複数のスレッドに依存しないが、スレッドは、それに依存する次の複数のスレッドを有する。ACQ_MSGは、スレッドディスパッチャまたはスレッドに関連する他のコントロール回路により発行されることができる。
セマフォ取得(ACS)命令は、ACQ_MSGメッセージが、要求されるセマフォのセマフォ識別子、要求するスレッドのスレッド識別子と共におよびアンセットされた自動解放領域と共にセマフォエンティティに送られることを引き起こす。スレッドは、セットされたセマフォ待ち状態領域と共に非アクティブな状態に置かれる。ACS命令は、セマフォ解放(RLS)命令(下記で説明される)と対をなす(後に続く)。ACS−RLS命令対は、例えば、複数のクリティカルセクションアプリケーションのために使用される。
複数の命令のスレッドがプロセッシングコアにより実行されるので、複数の命令は、複数のリソースが利用可能な場合に実行される。例えば、共有メモリロケーションなどのセマフォを有するリソースが要求された場合、セマフォの所有者は、リソースにアクセスすることを要求される。したがって、複数の命令のスレッドの実行は、セマフォが必要とされるまで、技術的に知られる任意の方法で成し遂げられる。
1つの実施形態において、セマフォ解放(RLS)命令が実行された場合、セマフォは、解放される。RLS命令は、セマフォを要求する複数の命令のスレッドを実行するプロセッシングコアにより実行されることができる。RLS命令の実行の一部として、またはRLS命令の実行に応答して、セマフォ解放メッセージ(REL_MSG)が、セマフォエンティティに送信される。REL_MSGのための1つのフォーマットは、上記で説明される。他の複数のフォーマットも同様に使用されることができる。
使用される連結リストの構造に基づいて、複数のセマフォは、連想的な複数のセマフォまたは順序的な複数のセマフォとしてクラス分けをされることができる。セマフォエンティティからのACK_MSGの送信に基づいて、複数のセマフォは、能動的な複数のセマフォまたは主体的な複数のセマフォとしてクラス分けをされることができる。したがって、複数のセマフォの4つのタイプがサポートされることができる。
連想的なセマフォは、現在の複数のスレッドがセマフォに任意の順序でアクセスすることを可能にする。1つの実施形態において、セマフォは、セッションの始めにNULL連結リスト(または空の連結リストを示す1つのビット)と共に、スレッドディスパッチャにより初期化される。スレッドディスパッチャからセマフォエンティティに他のメッセージは送られない。セマフォ連結リストは、複数の命令の複数のスレッドを実行している実行回路により、すぐさま構築される。
順序的なセマフォは、現在の複数のスレッドがセマフォに、所定の順序でアクセスすることを可能にする。順序は、ディスパッチの時に、スレッドディスパッチャにより予定される。順序は、アプリケーション依存となり得る。スレッドディスパッチは、本来逐次的であるので、スレッドディスパッチャは、ACQ_MSGを、それぞれのディスパッチされるスレッドの代わりに、セマフォエンティティに、その順序に従ってセマフォ連結リストを構築するために送信する。
上記で説明されたように、能動的なセマフォと共にACQ_MSGは、非アクティブな状態からアクティブな状態へのスレッドの遷移を引き起こすために使用される。セマフォエンティティは、1つまたは多数のACQ_MSGを、複数のスレッドを実行している実行回路から受信する。セマフォエンティティは、1つのACK_MSGを、セマフォ連結リストのヘッドのスレッドに対応する実行回路に送信のみをする。セマフォ連結リストのヘッドを取り除くと、セマフォエンティティは、連結リストの新しいヘッドの状態を調べ、次のACK_MSGを、セマフォ連結リストの新しいヘッドに対応する実行回路に送信する。能動的なセマフォは、同様に連想的なセマフォであることができる。
主体的なセマフォは、唯一のACK_MSGを、スレッドが非アクティブな状態であるにせよないにせよ、セマフォ連結リストのヘッドのスレッドに送信する。これは、唯一のACK_MSGがスレッドに送信されるように、スレッドディスパッチャにより予め送信されたACQ_MSGと共に、順序的な複数のセマフォを用いる複数のスレッドに適用する。順序的なセマフォを用いるスレッドは、WTSおよび/またはRLS命令を有する。
複数の図3a−3dは、複数のセマフォがスレッド実行を同期させるために使用されることができる依存性の概念的な複数の説明である。図3aは、1:1:1(一対一)依存性を説明する。図3aの依存性は、強い逐次的で順序的な依存性または連想的な依存性である。強い逐次的で順序的な依存性に対し、1つの主体的な、順序的なセマフォが使用されることができる。1つの実施形態において、セマフォを要求するためにスレッドディスパッチャからセマフォエンティティに送られるACQ_MSGにおいて、ack抑制領域および自動解放領域は、共にアンセットされる。複数の命令のスレッドは、セマフォを得ておよび解放するためにWTS−RLS命令対を有する。
明細書における"1つの実施形態"または"一実施形態"への参照は、実施形態に関連して説明された特定の特徴、構造、または特性が、本発明の少なくとも1つの実施形態に含まれることを意味する。本明細書のさまざまな場所での語句"1つの実施形態において"の複数の出現は、必ずしも全て同じ実施形態を参照していない。
Claims (34)
- セマフォに対応する変数の状態を決定する段階、
前記変数が第一の状態の場合、実行のためのスレッドのディスパッチに先立って、複数の命令の前記スレッドのためのセマフォエントリを生成する段階、および
前記変数が第二の状態の場合、前記スレッドのための前記セマフォエントリを生成することに先立って、実行のために複数の命令の前記スレッドをディスパッチする段階
を備える方法。 - 前記変数が第三の状態の場合、実行のために複数の命令の前記スレッドをディスパッチし、前記スレッドの実行の間に、前記スレッドのためのセマフォエントリを生成する段階をさらに備える請求項1に記載の方法。
- 前記セマフォに対応する前記変数は、セマフォエントリが、複数の命令の前記スレッドに対応する実行回路に、前記セマフォのコントロールを示すメッセージを自動的に送信するかどうかを示す請求項1に記載の方法。
- 前記変数が前記第一の状態の場合、複数の命令の前記スレッドのディスパッチに先立って、複数の命令の前記スレッドのための前記セマフォエントリを生成する段階は、
複数の命令の前記スレッドにより、前記セマフォのコントロールを要求するために、セマフォエンティティにメッセージを送信する段階、および
前記セマフォエンティティが前記メッセージを処理したことを示す信号を受信することに応答して、複数の命令の前記スレッドを実行回路にディスパッチする段階
を備える請求項1に記載の方法。 - 前記メッセージを前記セマフォエンティティに送信する段階および複数の命令の前記スレッドをディスパッチする段階は、パイプライン型である請求項4に記載の方法。
- 前記メッセージは、セマフォ識別子領域、スレッド識別子領域、および前記変数に対応する領域を備える請求項4に記載の方法。
- 前記変数が第二の状態の場合、前記スレッドのために前記セマフォエントリを生成することに先立って、実行のために複数の命令の前記スレッドをディスパッチする段階は、
複数の命令の前記スレッドを実行回路にディスパッチする段階、および
複数の命令の前記スレッドの実行が開始したことを示す信号に応答して、複数の命令の前記スレッドにより、前記セマフォのコントロールを要求するために、メッセージをセマフォエンティティに送信する段階
を備える請求項1に記載の方法。 - 複数の命令の前記スレッドの前記ディスパッチする段階および前記メッセージを前記セマフォエンティティに送信する段階は、パイプライン型である請求項7に記載の方法。
- 前記メッセージは、セマフォ識別子領域、スレッド識別子領域、および前記変数に対応する領域を備える請求項7に記載の方法。
- 前記変数が第三の状態の場合、実行のために複数の命令の前記スレッドをディスパッチし、前記スレッドの実行の間に、前記スレッドのための前記セマフォエントリを生成する段階は、
複数の命令の前記スレッドを実行回路にディスパッチする段階、および
複数の命令の一式の前記実行に応答して、複数の命令の前記スレッドにより、前記セマフォのコントロールを要求するためにメッセージをセマフォエンティティに送信する段階
を備える請求項2に記載の方法。 - 複数の命令の前記一式は、セマフォ取得命令を備える請求項10に記載の方法。
- 複数の命令の前記一式は、自動解放を伴うセマフォ取得命令を備える請求項10に記載の方法。
- セマフォに対応する変数の状態を決定するための手段、
前記変数が第一の状態の場合、実行のためのスレッドのディスパッチに先立って、複数の命令の前記スレッドのためにセマフォエントリを生成するための手段、および
前記変数が第二の状態の場合、前記スレッドのために前記セマフォエントリを生成することに先立って、実行のために複数の命令の前記スレッドをディスパッチするための手段、ならびに
前記変数が第三の状態の場合、実行のために複数の命令の前記スレッドをディスパッチし、前記スレッドの実行の間に前記スレッドのためにセマフォエントリを生成する段階
を備える装置。 - 前記変数が第三の状態の場合、実行のために複数の命令の前記スレッドをディスパッチし、前記スレッドの実行の間に、前記スレッドのためのセマフォエントリを生成するための手段をさらに備える請求項13に記載の装置。
- 前記変数が前記第一の状態の場合、複数の命令の前記スレッドのディスパッチに先立って、複数の命令の前記スレッドのための前記セマフォエントリを生成するための手段は、
複数の命令の前記スレッドにより、前記セマフォのコントロールを要求するために、セマフォエンティティにメッセージを送信するための手段、および
前記セマフォエンティティが前記メッセージを処理したことを示す信号を受信することに応答して、複数の命令の前記スレッドを実行回路にディスパッチするための手段
をさらに備える請求項13に記載の装置。 - 前記変数が第二の状態の場合、前記スレッドのために前記セマフォエントリを生成することに先立って、実行のために複数の命令の前記スレッドをディスパッチするための手段は、
複数の命令の前記スレッドを実行回路にディスパッチするための手段、および
複数の命令の前記スレッドの実行が開始したことを示す信号に応答して、複数の命令の前記スレッドにより、前記セマフォのコントロールを要求するために、メッセージをセマフォエンティティに送信するための手段
をさらに備える請求項13に記載の装置。 - 前記変数が第三の状態の場合、実行のために複数の命令の前記スレッドをディスパッチし、前記スレッドの実行の間に、前記スレッドのための前記セマフォエントリを生成するための手段は、
複数の命令の前記スレッドを実行回路にディスパッチするための手段、および
複数の命令の一式の前記実行に応答して、複数の命令の前記スレッドにより、前記セマフォのコントロールを要求するためにメッセージをセマフォエンティティに送信するための手段
を備える請求項14に記載の装置。 - セマフォのコントロールを要求する複数の命令の1つ以上のスレッドを示す前記セマフォのための複数のエントリを維持するためのセマフォエンティティ、
複数の命令の1つ以上のスレッドを実行するための実行回路、および
前記セマフォエンティティおよび前記実行回路に結合されたスレッドディスパッチャであって、前記スレッドディスパッチャは、前記セマフォに対応する変数の状態を決定し、前記変数が第一の状態の場合、実行のための前記実行回路への複数の命令のスレッドのディスパッチに先だって、複数の命令の前記スレッドのためのセマフォエントリが生成されることを引き起こすように前記セマフォエンティティにメッセージを生成し、および前記変数が第二の状態の場合、前記スレッドのための前記セマフォエントリが生成されることを引き起こすために前記セマフォエンティティにメッセージを生成することに先立って、実行のために複数の命令の前記スレッドを前記実行回路にディスパッチするスレッドディスパッチャ
を備える装置。 - 前記変数が第三の状態の場合、前記スレッドディスパッチャは、実行のために複数の命令の前記スレッドをさらにディスパッチし、前記スレッドのためにセマフォエントリを生成しない請求項18に記載の装置。
- 前記セマフォエンティティは、1つ以上のセマフォを維持する請求項18に記載の装置。
- 前記メッセージは、セマフォ識別子領域、スレッド識別子領域、および前記変数に対応する領域を備える請求項18に記載の装置。
- 前記セマフォに対応する前記変数は、セマフォエントリが、複数の命令の前記スレッドに対応する実行回路に、前記セマフォのコントロールを示すメッセージを自動的に送信するかどうかを示す請求項18に記載の装置。
- 前記変数が第一の状態の場合、実行のための前記実行回路への複数の命令のスレッドのディスパッチに先だって、複数の命令の前記スレッドのためのセマフォエントリが生成されることを引き起こすために、メッセージを前記セマフォエンティティに生成することは、複数の命令の前記スレッドにより、前記セマフォのコントロールを要求するために、メッセージをセマフォエンティティに送信すること、および前記セマフォエンティティが前記メッセージを処理したことを示す信号を受信することに応答して、複数の命令の前記スレッドを、前記実行回路にディスパッチすることを備える請求項18に記載の装置。
- 前記セマフォエンティティに前記メッセージを送信することおよび複数の命令の前記スレッドをディスパッチすることの前記複数の動作は、パイプライン型である請求項23に記載の装置。
- 前記変数が第二の状態の場合、前記スレッドのための前記セマフォエントリが生成されることを引き起こすために前記セマフォエンティティにメッセージを生成することに先立って、実行のために複数の命令の前記スレッドを前記実行回路にディスパッチすることは、複数の命令の前記スレッドを前記実行回路にディスパッチすること、および複数の命令の前記スレッドの実行が開始したことを示す信号に応答して、複数の命令の前記スレッドにより、前記セマフォのコントロールを要求するために、メッセージをセマフォエンティティに送信することを備える請求項18に記載の装置。
- 前記メッセージを前記セマフォエンティティに送信することおよび複数の命令の前記スレッドをディスパッチすることの前記複数の動作は、パイプライン型である請求項25に記載の装置。
- 前記実行回路は、複数の命令の一式の前記実行に応答して、複数の命令の前記スレッドにより、前記セマフォのコントロールを要求するためにメッセージをセマフォエンティティに生成する請求項19に記載の装置。
- メモリコントローラ、
セマフォのコントロールを要求する複数の命令の1つ以上のスレッドを示す前記セマフォのための複数のエントリを維持するためのセマフォエンティティ、
複数の命令の1つ以上のスレッドを実行するための実行回路、ならびに
前記セマフォに対応する変数の状態を決定すること、前記変数が第一の状態の場合、実行のための前記実行回路への複数の命令のスレッドのディスパッチに先だって、複数の命令の前記スレッドのためのセマフォエントリが生成されることを引き起こすように前記セマフォエンティティにメッセージを生成すること、前記変数が第二の状態の場合、前記スレッドのための前記セマフォエントリが生成されることを引き起こすために前記セマフォエンティティにメッセージを生成することに先立って、実行のために複数の命令の前記スレッドを前記実行回路にディスパッチすること、および前記変数が第三の状態の場合、実行のための複数の命令の前記スレッドをディスパッチし、前記スレッドのためのセマフォエントリを生成しないことを目的とする前記セマフォエンティティ、前記実行回路、および前記メモリコントローラに結合されたスレッドディスパッチャ
を備えるシステム。 - 前記変数が第三の状態の場合、前記スレッドディスパッチャは、実行のための複数の命令の前記スレッドをさらにディスパッチし、前記スレッドのためのセマフォエントリを生成しない請求項28に記載のシステム。
- 前記メッセージは、セマフォ識別子領域、スレッド識別子領域、および前記変数に対応する領域を備える請求項28に記載のシステム。
- 前記セマフォに対応する前記変数は、セマフォエントリが、複数の命令の前記スレッドに対応する実行回路に、前記セマフォのコントロールを示すメッセージを自動的に送信するかどうかを示す請求項28に記載のシステム。
- 前記変数が第一の状態の場合、実行のための前記実行回路への複数の命令のスレッドのディスパッチに先だって、複数の命令の前記スレッドのためのセマフォエントリが生成されることを引き起こすために、メッセージを前記セマフォエンティティに生成することは、複数の命令の前記スレッドにより、前記セマフォのコントロールを要求するために、メッセージをセマフォエンティティに送信すること、および前記セマフォエンティティが前記メッセージを処理したことを示す信号を受信することに応答して、複数の命令の前記スレッドを、前記実行回路にディスパッチすることを備える請求項28に記載のシステム。
- 前記変数が第二の状態の場合、前記スレッドのための前記セマフォエントリが生成されることを引き起こすために前記セマフォエンティティにメッセージを生成することに先立って、実行のために複数の命令の前記スレッドを前記実行回路にディスパッチすることは、複数の命令の前記スレッドを前記実行回路にディスパッチすること、および複数の命令の前記スレッドの実行が開始したことを示す信号に応答して、複数の命令の前記スレッドにより、前記セマフォのコントロールを要求するために、メッセージをセマフォエンティティに送信することを備える請求項28に記載のシステム。
- 前記セマフォエンティティに前記メッセージを送信することおよび複数の命令の前記スレッドをディスパッチすることの前記複数の動作は、パイプライン型である請求項28に記載のシステム。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/750,090 US7614054B2 (en) | 2003-12-31 | 2003-12-31 | Behavioral model based multi-threaded architecture |
PCT/US2004/043395 WO2005066768A2 (en) | 2003-12-31 | 2004-12-23 | Behavioral model based multi-threaded architecture |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2007517328A true JP2007517328A (ja) | 2007-06-28 |
JP4584935B2 JP4584935B2 (ja) | 2010-11-24 |
Family
ID=34711206
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006547392A Expired - Fee Related JP4584935B2 (ja) | 2003-12-31 | 2004-12-23 | 動作モデルベースマルチスレッドアーキテクチャ |
Country Status (7)
Country | Link |
---|---|
US (2) | US7614054B2 (ja) |
EP (1) | EP1700203B1 (ja) |
JP (1) | JP4584935B2 (ja) |
CN (2) | CN102622271B (ja) |
AT (1) | ATE554444T1 (ja) |
TW (1) | TWI279717B (ja) |
WO (1) | WO2005066768A2 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8914800B2 (en) | 2003-12-31 | 2014-12-16 | Intel Corporation | Behavioral model based multi-threaded architecture |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB0519597D0 (en) * | 2005-09-26 | 2005-11-02 | Imagination Tech Ltd | Scalable multi-threaded media processing architecture |
US7792864B1 (en) * | 2006-06-14 | 2010-09-07 | TransUnion Teledata, L.L.C. | Entity identification and/or association using multiple data elements |
US8701111B2 (en) * | 2008-07-09 | 2014-04-15 | International Business Machines Corporation | Lock windows for reducing contention |
US9348644B2 (en) | 2014-10-08 | 2016-05-24 | International Business Machines Corporation | Application-level dispatcher control of application-level pseudo threads and operating system threads |
CN104572277B (zh) * | 2014-12-17 | 2018-04-27 | 大唐移动通信设备有限公司 | 一种线程流控方法和装置 |
CN109254834B (zh) * | 2017-07-13 | 2021-05-14 | 普天信息技术有限公司 | 一种多线程启动同步方法 |
US20190042332A1 (en) * | 2017-08-03 | 2019-02-07 | Next Silicon, Ltd. | Hardware locking primitive system for hardware and methods for generating same |
US11119782B2 (en) * | 2018-05-07 | 2021-09-14 | Micron Technology, Inc. | Thread commencement using a work descriptor packet in a self-scheduling processor |
US11099899B2 (en) * | 2019-11-14 | 2021-08-24 | Sas Institute Inc. | Atomic pool manager for a data pool using a memory slot for storing a data object |
CN112612582B (zh) * | 2020-12-14 | 2024-05-28 | 北京和利时控制技术有限公司 | 信号量功能实现方法和装置 |
US11915001B1 (en) * | 2022-12-26 | 2024-02-27 | Rebellions Inc. | Neural processor and method for fetching instructions thereof |
CN117076139B (zh) * | 2023-10-17 | 2024-04-02 | 北京融为科技有限公司 | 数据处理方法及相关设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0381859A (ja) * | 1989-08-25 | 1991-04-08 | Nec Corp | マルチプロセッサシステム |
JP2001084235A (ja) * | 1999-09-10 | 2001-03-30 | Nec Corp | ロック粒度統計情報を利用した排他制御方法及びプログラムを記録した機械読み取り可能な記録媒体 |
JP2001297008A (ja) * | 1999-11-22 | 2001-10-26 | Sun Microsyst Inc | オブジェクトごとのロック履歴に基づくロック方針選択方法および装置 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB9123264D0 (en) * | 1991-11-01 | 1991-12-18 | Int Computers Ltd | Semaphone arrangement for a data processing system |
US6018785A (en) * | 1993-12-30 | 2000-01-25 | Cypress Semiconductor Corp. | Interrupt-generating hardware semaphore |
US5852731A (en) * | 1995-06-05 | 1998-12-22 | International Business Machines Corporation | Computer program product for synchronizing static variable initialization and reference under a multi-threaded computer environment |
CA2201275A1 (en) * | 1997-03-27 | 1998-09-27 | Chris L. Brealey | Locking tool data objects in a framework environment |
US7240058B2 (en) * | 2002-03-01 | 2007-07-03 | Sun Microsystems, Inc. | Lock mechanism for a distributed data system |
CN1212569C (zh) * | 2002-11-01 | 2005-07-27 | 英业达股份有限公司 | 多线程自动测试方法 |
US7614054B2 (en) | 2003-12-31 | 2009-11-03 | Intel Corporation | Behavioral model based multi-threaded architecture |
-
2003
- 2003-12-31 US US10/750,090 patent/US7614054B2/en not_active Expired - Fee Related
-
2004
- 2004-12-23 AT AT04815468T patent/ATE554444T1/de active
- 2004-12-23 EP EP04815468A patent/EP1700203B1/en not_active Not-in-force
- 2004-12-23 CN CN201110460725.5A patent/CN102622271B/zh not_active Expired - Fee Related
- 2004-12-23 CN CN200480039052.4A patent/CN101189579B/zh not_active Expired - Fee Related
- 2004-12-23 JP JP2006547392A patent/JP4584935B2/ja not_active Expired - Fee Related
- 2004-12-23 WO PCT/US2004/043395 patent/WO2005066768A2/en not_active Application Discontinuation
- 2004-12-27 TW TW093140775A patent/TWI279717B/zh not_active IP Right Cessation
-
2009
- 2009-11-03 US US12/611,919 patent/US8914800B2/en not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0381859A (ja) * | 1989-08-25 | 1991-04-08 | Nec Corp | マルチプロセッサシステム |
JP2001084235A (ja) * | 1999-09-10 | 2001-03-30 | Nec Corp | ロック粒度統計情報を利用した排他制御方法及びプログラムを記録した機械読み取り可能な記録媒体 |
JP2001297008A (ja) * | 1999-11-22 | 2001-10-26 | Sun Microsyst Inc | オブジェクトごとのロック履歴に基づくロック方針選択方法および装置 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8914800B2 (en) | 2003-12-31 | 2014-12-16 | Intel Corporation | Behavioral model based multi-threaded architecture |
Also Published As
Publication number | Publication date |
---|---|
ATE554444T1 (de) | 2012-05-15 |
US7614054B2 (en) | 2009-11-03 |
CN101189579A (zh) | 2008-05-28 |
US20100115518A1 (en) | 2010-05-06 |
WO2005066768A3 (en) | 2007-02-22 |
EP1700203B1 (en) | 2012-04-18 |
EP1700203A2 (en) | 2006-09-13 |
WO2005066768A2 (en) | 2005-07-21 |
CN102622271B (zh) | 2016-08-24 |
TWI279717B (en) | 2007-04-21 |
TW200535694A (en) | 2005-11-01 |
CN101189579B (zh) | 2012-03-07 |
JP4584935B2 (ja) | 2010-11-24 |
US8914800B2 (en) | 2014-12-16 |
US20050149928A1 (en) | 2005-07-07 |
CN102622271A (zh) | 2012-08-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8448179B2 (en) | Processing architecture having passive threads and active semaphores | |
US8914800B2 (en) | Behavioral model based multi-threaded architecture | |
US8368701B2 (en) | Metaprocessor for GPU control and synchronization in a multiprocessor environment | |
US5434975A (en) | System for interconnecting a synchronous path having semaphores and an asynchronous path having message queuing for interprocess communications | |
EP0563624B1 (en) | Method and apparatus for performing conditional operations on externally shared data | |
JP5516398B2 (ja) | マルチプロセッサシステム、マルチプロセッサシステムのos間デバイス共有方法 | |
JPH03126158A (ja) | スケジユーリング方法及び装置 | |
US10331500B2 (en) | Managing fairness for lock and unlock operations using operation prioritization | |
US8271986B2 (en) | Visual and graphical data processing using a multi-threaded architecture | |
KR20150065803A (ko) | 고-효율 원자적 연산들을 사용하는 방법 및 장치 | |
JP7346649B2 (ja) | 同期制御システムおよび同期制御方法 | |
WO2001016740A2 (en) | Efficient event waiting | |
US10713188B2 (en) | Inter-process signaling system and method | |
US20060143511A1 (en) | Memory mapped spin lock controller | |
CN112749020A (zh) | 一种物联网操作系统的微内核优化方法 | |
CN113778700A (zh) | 消息处理方法、系统、介质和计算机系统 | |
CN117370042A (zh) | 用于核间远程调用的方法、嵌入式多核系统和存储介质 | |
CN116128704A (zh) | 数据处理方法、数据处理装置以及计算机可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20090602 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20090902 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20090909 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20091002 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20091117 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100317 |
|
A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20100722 |
|
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: 20100817 |
|
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: 20100902 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130910 Year of fee payment: 3 |
|
LAPS | Cancellation because of no payment of annual fees |