JP4584935B2 - 動作モデルベースマルチスレッドアーキテクチャ - Google Patents
動作モデルベースマルチスレッドアーキテクチャ Download PDFInfo
- Publication number
- JP4584935B2 JP4584935B2 JP2006547392A JP2006547392A JP4584935B2 JP 4584935 B2 JP4584935 B2 JP 4584935B2 JP 2006547392 A JP2006547392 A JP 2006547392A JP 2006547392 A JP2006547392 A JP 2006547392A JP 4584935 B2 JP4584935 B2 JP 4584935B2
- Authority
- JP
- Japan
- Prior art keywords
- semaphore
- thread
- entity
- message
- instructions
- 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.)
- Expired - Fee Related
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)
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 (30)
- スレッドディスパッチャが、1つまたは複数のセマフォエントリを指示するセマフォに対応する変数の状態を判断する段階、
前記変数が第一の状態の場合、(i)セマフォエンティティに前記セマフォのコントロールを要求するために前記スレッドディスパッチャが前記セマフォエンティティにメッセージを送信し、(ii)前記メッセージを受信した前記セマフォエンティティが、複数の命令のスレッドのためのセマフォエントリを生成し、(iii)前記セマフォエンティティが前記メッセージを処理したことを示す信号を、前記セマフォエンティティが前記スレッドディスパッチャに送信し、(iv)前記信号を受信することに応じて、前記スレッドディスパッチャが複数の命令の前記スレッドを実行回路にディスパッチする段階、および
前記変数が第二の状態の場合、前記スレッドのための前記セマフォエントリを生成するために前記セマフォのコントロールを要求するために前記セマフォエンティティに前記メッセージを送信することに先立って、前記スレッドディスパッチャが実行のために複数の命令の前記スレッドをディスパッチする段階を備え、
前記第一の状態は、前記セマフォが取得されたことを前記セマフォエンティティがスレッドに通知すべきでないことを指示し、
前記第二の状態は、前記セマフォが取得されたことを前記セマフォエンティティがスレッドに通知すべきであることを指示し、
前記スレッドの状態は、スレッドスケジューラを介して前記セマフォによって示されるように変更される方法。 - 前記変数が第二の状態の場合、前記スレッドのための前記セマフォエントリは、ディスパッチされた前記スレッドの実行の間に生成される請求項1に記載の方法。
- 前記セマフォに対応する前記変数は、前記セマフォエンティティが、複数の命令の前記スレッドに対応する実行回路に、前記セマフォのコントロールを示すメッセージを自動的に送信するかどうかを示す請求項1または2に記載の方法。
- 前記メッセージを前記セマフォエンティティに送信する段階および複数の命令の前記スレッドをディスパッチする段階は、パイプライン型である請求項1から3のいずれかに記載の方法。
- 前記メッセージは、セマフォ識別子領域、スレッド識別子領域、および前記変数に対応する領域を備える請求項1から4のいずれかに記載の方法。
- 前記変数が第二の状態の場合、前記スレッドのための前記セマフォエントリを生成するために前記セマフォのコントロールを要求するために前記セマフォエンティティに前記メッセージを送信することに先立って、実行のために複数の命令の前記スレッドをディスパッチする段階は、
前記スレッドディスパッチャが複数の命令の前記スレッドを前記実行回路にディスパッチする段階、および
複数の命令の前記スレッドの実行が開始したことを示す信号に応答して、前記セマフォのコントロールを要求するために、前記スレッドディスパッチャがメッセージをセマフォエンティティに送信する段階を備える請求項1から5のいずれかに記載の方法。 - 複数の命令の前記スレッドをディスパッチする段階および前記メッセージを前記セマフォエンティティに送信する段階は、パイプライン型である請求項1から6のいずれかに記載の方法。
- 前記メッセージは、セマフォ識別子領域、スレッド識別子領域、および前記変数に対応する領域を備える請求項6または7に記載の方法。
- ディスパッチされた前記スレッドの複数の命令の一式の前記実行に応じて、
前記スレッドによる前記セマフォのコントロールを前記セマフォエンティティに要求するために、前記実行回路が前記セマフォエンティティにメッセージを送信する請求項2に記載の方法。 - 複数の命令の前記一式は、セマフォ取得命令を備える請求項9に記載の方法。
- 複数の命令の前記一式は、自動解放を伴うセマフォ取得命令を備える請求項9または10に記載の方法。
- 1つまたは複数のセマフォエントリを指示するセマフォに対応する変数の状態を判断するための手段、
前記変数が第一の状態の場合、(i)セマフォエンティティに前記セマフォのコントロールを要求するためにスレッドディスパッチャによって前記セマフォエンティティにメッセージを送信し、(ii)前記メッセージを受信した前記セマフォエンティティによって複数の命令のスレッドのためにセマフォエントリを生成し、(iii)前記セマフォエンティティが前記メッセージを処理したことを示す信号を、前記セマフォエンティティによって前記スレッドディスパッチャに送信し、(iv)前記信号を受信することに応じて、前記スレッドディスパッチャが複数の命令の前記スレッドを実行回路にディスパッチする手段、および
前記変数が第二の状態の場合、前記スレッドのための前記セマフォエントリを生成するために前記セマフォのコントロールを要求するために前記セマフォエンティティに前記メッセージを送信することに先立って、前記スレッドディスパッチャによって実行のために複数の命令の前記スレッドを前記実行回路にディスパッチする手段、および
前記セマフォエントリを記憶するための記憶装置
を備え、
前記第一の状態は、前記セマフォが取得されたことを前記セマフォエンティティがスレッドに通知すべきでないことを指示し、
前記第二の状態は、前記セマフォが取得されたことを前記セマフォエンティティがスレッドに通知すべきであることを指示し、
前記スレッドの状態は、スレッドスケジューラを介して前記セマフォによって示されるように変更される装置。 - 前記変数が第二の状態の場合、前記スレッドのためのセマフォエントリは、ディスパッチされた前記スレッドの実行の間に生成される請求項12に記載の装置。
- 前記変数が第二の状態の場合、ディスパッチされた前記スレッドの複数の命令の一式の前記実行に応じて、
前記スレッドによる前記セマフォのコントロールを前記セマフォエンティティに要求するために、前記実行回路が前記セマフォエンティティにメッセージを送信する請求項12または13に記載の装置。 - 前記変数が第二の状態の場合、前記スレッドのための前記セマフォエントリを生成するために前記セマフォのコントロールを要求するために前記セマフォエンティティに前記メッセージを送信することに先立って、実行のために複数の命令の前記スレッドをディスパッチするための手段は、複数の命令の前記スレッドの実行が開始したことを示す信号に応答して、複数の命令の前記スレッドにより、前記セマフォのコントロールを要求するために、前記スレッドディスパッチャがメッセージをセマフォエンティティに送信するための手段をさらに備える請求項12から14のいずれかに記載の装置。
- セマフォのコントロールを要求する複数の命令の1つ以上のスレッドを示す前記セマフォのための複数のエントリを維持するためのセマフォエンティティ、
複数の命令の1つ以上のスレッドを実行するためのプロセッサ、および
前記セマフォエンティティおよび前記プロセッサに結合されたスレッドディスパッチャであって、前記スレッドディスパッチャは、前記セマフォに対応する変数の状態を判断し、前記変数が第一の状態の場合、実行のための前記プロセッサへの複数の命令のスレッドのディスパッチに先だって、複数の命令の前記スレッドのためのセマフォエントリが生成されることを引き起こすように前記セマフォエンティティにメッセージを生成し、および前記変数が第二の状態の場合、前記スレッドのための前記セマフォエントリが生成されることを引き起こすために前記セマフォエンティティにメッセージを生成することに先立って、実行のために複数の命令の前記スレッドを前記プロセッサにディスパッチするスレッドディスパッチャを備え、
前記第一の状態は、前記セマフォが取得されたことを前記セマフォエンティティがスレッドに通知すべきでないことを指示し、
前記第二の状態は、前記セマフォが取得されたことを前記セマフォエンティティがスレッドに通知すべきであることを指示し、
前記スレッドの状態は、スレッドスケジューラを介して前記セマフォによって示されるように変更され、
前記変数が第一の状態の場合、前記スレッドディスパッチャは、複数の命令の前記スレッドによる前記セマフォのコントロールを要求するためにメッセージをセマフォエンティティに送信し、前記セマフォエンティティが前記メッセージを処理したことを示す信号を受信することに応じて複数の命令の前記スレッドを、前記プロセッサにディスパッチする装置。 - 前記セマフォエンティティは、1つ以上のセマフォを維持する請求項16に記載の装置。
- 前記メッセージは、セマフォ識別子領域、スレッド識別子領域、および前記変数に対応する領域を備える請求項16または17に記載の装置。
- 前記セマフォに対応する前記変数は、セマフォエントリが、複数の命令の前記スレッドに対応する実行回路に、前記セマフォのコントロールを示すメッセージを自動的に送信するかどうかを示す請求項16から18のいずれかに記載の装置。
- 前記セマフォエンティティに前記メッセージを送信することおよび複数の命令の前記スレッドをディスパッチすることの複数の動作は、パイプライン型である請求項19に記載の装置。
- 前記変数が第二の状態の場合、前記スレッドのための前記セマフォエントリが生成されることを引き起こすために前記セマフォエンティティにメッセージを生成することに先立って、実行のために複数の命令の前記スレッドを前記実行回路にディスパッチすることは、複数の命令の前記スレッドを前記実行回路にディスパッチすること、および複数の命令の前記スレッドの実行が開始したことを示す信号に応答して、複数の命令の前記スレッドにより、前記セマフォのコントロールを要求するために、メッセージをセマフォエンティティに送信することを備える請求項19または20に記載の装置。
- 前記メッセージを前記セマフォエンティティに送信することおよび複数の命令の前記スレッドをディスパッチすることの複数の動作は、パイプライン型である請求項21に記載の装置。
- 前記変数が第二の状態の場合、前記実行回路は、複数の命令の一式の前記実行に応答して、複数の命令の前記スレッドにより、前記セマフォのコントロールを要求するためにメッセージをセマフォエンティティに生成する請求項19から22のいずれかに記載の装置。
- メモリコントローラ、
セマフォのコントロールを要求する複数の命令の1つ以上のスレッドを示す前記セマフォのための複数のエントリを維持するためのセマフォエンティティ、
複数の命令の1つ以上のスレッドを実行するためのプロセッサ、ならびに
前記セマフォに対応する変数の状態を判断すること、前記変数が第一の状態の場合、実行のための前記プロセッサへの複数の命令のスレッドのディスパッチに先だって、複数の命令の前記スレッドのためのセマフォエントリが生成されることを引き起こすように前記セマフォエンティティにメッセージを生成すること、前記変数が第二の状態の場合、前記スレッドのための前記セマフォエントリが生成されることを引き起こすために前記セマフォエンティティにメッセージを生成することに先立って、実行のために複数の命令の前記スレッドを前記プロセッサにディスパッチすること、および、実行のための複数の命令の前記スレッドをディスパッチし、前記スレッドのためのセマフォエントリを生成しないことを目的とする前記セマフォエンティティ、前記プロセッサ、および前記メモリコントローラに結合されたスレッドディスパッチャ、
を備え、
前記第一の状態は、前記セマフォが取得されたことを前記セマフォエンティティがスレッドに通知すべきでないことを指示し、
前記第二の状態は、前記セマフォが取得されたことを前記セマフォエンティティがスレッドに通知すべきであることを指示し、
前記スレッドの状態は、スレッドスケジューラを介して前記セマフォによって示されるように変更され、
前記変数が第一の状態の場合、前記スレッドディスパッチャは、複数の命令の前記スレッドによる前記セマフォのコントロールを要求するためにメッセージを前記セマフォエンティティに送信し、前記セマフォエンティティが前記メッセージを処理したことを示す信号を受信することに応じて複数の命令の前記スレッドを前記プロセッサにディスパッチする、システム。 - 前記メッセージは、セマフォ識別子領域、スレッド識別子領域、および前記変数に対応する領域を備える請求項24に記載のシステム。
- 前記セマフォに対応する前記変数は、セマフォエントリが、複数の命令の前記スレッドに対応する実行回路に、前記セマフォのコントロールを示すメッセージを自動的に送信するかどうかを示す請求項24または25に記載のシステム。
- 前記変数が第二の状態の場合、前記スレッドのための前記セマフォエントリが生成されることを引き起こすために前記セマフォエンティティにメッセージを生成することに先立って、実行のために複数の命令の前記スレッドを実行回路にディスパッチすることは、複数の命令の前記スレッドを前記実行回路にディスパッチすること、および複数の命令の前記スレッドの実行が開始したことを示す信号に応答して、複数の命令の前記スレッドにより、前記セマフォのコントロールを要求するために、メッセージをセマフォエンティティに送信することを備える請求項24から26のいずれかに記載のシステム。
- 前記セマフォエンティティに前記メッセージを送信することおよび複数の命令の前記スレッドをディスパッチすることの複数の動作は、パイプライン型である請求項24から27のいずれかに記載のシステム。
- スレッドディスパッチャと、
ack抑制領域を含むセマフォエントリと、
スレッドまたは前記スレッドディスパッチャから送信され承認抑制領域を含むセマフォ取得メッセージを受信するセマフォエンティティと、
前記スレッドディスパッチャおよび前記セマフォエンティティを結合するメッセージバスと、
を備え、
前記セマフォエントリ内の前記ack抑制領域は、前記セマフォ取得メッセージ内の承認抑制領域に基づいて更新され、
前記ack抑制領域がセットされていない場合、アクティブ状態にすべきスレッドのスレッド識別子を有する承認メッセージが、前記メッセージバス上で前記セマフォエンティティから要求スレッドに対して送信され、
前記ack抑制領域がセットされていない場合、前記スレッドディスパッチャは、セマフォ構成が完了する前にスレッド構成を完了し、
前記ack抑制領域がセットされている場合、前記スレッドディスパッチャは、スレッド構成が完了する前にセマフォ構成を完了する装置。 - 前記セマフォエントリからなる連結リストをさらに備え、
前記セマフォエントリは、解放状態領域を含み、
前記セマフォ取得メッセージは、自動解放領域を含み、
前記セマフォエントリ内の前記解放状態領域は、前記セマフォ取得メッセージ内の自動解放領域に基づいて更新され、
スレッド識別子を含むセマフォ解放メッセージを受信したときに、前記セマフォエンティティは、前記連結リストが有する前記スレッド識別子に対応する前記セマフォエントリの前記解放状態領域をアンセットし、前記連結リストが空になるまたは前記連結リストの先頭の解放状態領域がアンセットされたセマフォエントリが現れるまで、前記連結リストから先頭の前記セマフォエントリを取り除く請求項29に記載の装置。
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 JP2007517328A (ja) | 2007-06-28 |
JP4584935B2 true 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) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7614054B2 (en) * | 2003-12-31 | 2009-11-03 | Intel Corporation | Behavioral model based multi-threaded architecture |
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 | 北京融为科技有限公司 | 数据处理方法及相关设备 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0381859A (ja) * | 1989-08-25 | 1991-04-08 | Nec Corp | マルチプロセッサシステム |
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 |
JP2001084235A (ja) | 1999-09-10 | 2001-03-30 | Nec Corp | ロック粒度統計情報を利用した排他制御方法及びプログラムを記録した機械読み取り可能な記録媒体 |
US6687904B1 (en) * | 1999-11-22 | 2004-02-03 | Sun Microsystems, Inc. | Method and apparatus for selecting a locking policy based on a per-object locking history |
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 CN CN201110460725.5A patent/CN102622271B/zh not_active Expired - Fee Related
- 2004-12-23 WO PCT/US2004/043395 patent/WO2005066768A2/en not_active Application Discontinuation
- 2004-12-23 CN CN200480039052.4A patent/CN101189579B/zh not_active Expired - Fee Related
- 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 JP JP2006547392A patent/JP4584935B2/ja not_active Expired - Fee Related
- 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
Also Published As
Publication number | Publication date |
---|---|
TW200535694A (en) | 2005-11-01 |
US8914800B2 (en) | 2014-12-16 |
US7614054B2 (en) | 2009-11-03 |
JP2007517328A (ja) | 2007-06-28 |
TWI279717B (en) | 2007-04-21 |
CN101189579B (zh) | 2012-03-07 |
EP1700203B1 (en) | 2012-04-18 |
US20050149928A1 (en) | 2005-07-07 |
CN102622271B (zh) | 2016-08-24 |
ATE554444T1 (de) | 2012-05-15 |
CN102622271A (zh) | 2012-08-01 |
WO2005066768A3 (en) | 2007-02-22 |
CN101189579A (zh) | 2008-05-28 |
WO2005066768A2 (en) | 2005-07-21 |
US20100115518A1 (en) | 2010-05-06 |
EP1700203A2 (en) | 2006-09-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8914800B2 (en) | Behavioral model based multi-threaded architecture | |
US8448179B2 (en) | Processing architecture having passive threads and active semaphores | |
US8368701B2 (en) | Metaprocessor for GPU control and synchronization in a multiprocessor environment | |
EP0592117A2 (en) | Asynchronous inter-process communications arrangement | |
JPH03126158A (ja) | スケジユーリング方法及び装置 | |
CN110795254A (zh) | 一种基于php处理高并发io的方法 | |
JPWO2009113381A1 (ja) | マルチプロセッサシステム、マルチプロセッサシステムのos間デバイス共有方法 | |
US8271986B2 (en) | Visual and graphical data processing using a multi-threaded architecture | |
US20150234759A1 (en) | Method and apparatus using high-efficiency atomic operations | |
EP1214652A2 (en) | Efficient event waiting | |
JP7346649B2 (ja) | 同期制御システムおよび同期制御方法 | |
US10713188B2 (en) | Inter-process signaling system and method | |
CN112749020A (zh) | 一种物联网操作系统的微内核优化方法 | |
US20060112395A1 (en) | Replacing idle process when doing fast messaging | |
JP2010026575A (ja) | スケジューリング方法およびスケジューリング装置並びにマルチプロセッサシステム | |
CN117370042A (zh) | 用于核间远程调用的方法、嵌入式多核系统和存储介质 | |
CN116128704A (zh) | 数据处理方法、数据处理装置以及计算机可读存储介质 | |
CN114721996A (zh) | 一种分布式原子操作的实现方法与实现装置 | |
Kircher et al. | Leader/Followers |
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 |