JP5678135B2 - オペレーティング・システム介入なしにos隔離シーケンサー上でスレッドをスケジューリングする機構 - Google Patents
オペレーティング・システム介入なしにos隔離シーケンサー上でスレッドをスケジューリングする機構 Download PDFInfo
- Publication number
- JP5678135B2 JP5678135B2 JP2013140714A JP2013140714A JP5678135B2 JP 5678135 B2 JP5678135 B2 JP 5678135B2 JP 2013140714 A JP2013140714 A JP 2013140714A JP 2013140714 A JP2013140714 A JP 2013140714A JP 5678135 B2 JP5678135 B2 JP 5678135B2
- Authority
- JP
- Japan
- Prior art keywords
- sequencer
- thread
- shred
- instruction
- user
- 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
-
- 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)
- Executing Machine-Instructions (AREA)
- Stored Programmes (AREA)
- Computer And Data Communications (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Debugging And Monitoring (AREA)
Description
本発明の諸実施形態は図面を参照しつつ理解されうる。図面では、同様の要素は同様の数字で示される。図面は限定することを意図されてはおらず、OS隔離スレッドを実行のためにスケジューリングする装置、システムおよび方法の選ばれた実施形態を解説するために与えられるものである。
〔態様1〕
同時並行シュレッドのユーザーレベルのスケジューリングのための方法であって:
ユーザー生成されたスレッド・プリミティブを実行する段階であって、スレッド制御命令を生成するライブラリ関数を呼び出すことをさらに含む段階と;
前記スレッド・プリミティブに応じて、スレッドを記述する作業記述子を生成する段階と;
前記作業記述子を待ち行列システム内に記憶させる段階と;
オペレーティング・システムの介入なしに、前記スレッドのOS隔離シーケンサー上での実行をスケジューリングする段階、
とを有する方法。
〔態様2〕
ユーザーレベルの同時並行マルチスレッド利用を実行するよう前記シーケンサーを初期化する段階をさらに有する、
態様1記載の方法。
〔態様3〕
前記初期化する段階がさらに、ユーザーレベルの分散されたスケジューラの、前記シーケンサー上での実行をトリガーする段階を有する、
態様2記載の方法。
〔態様4〕
前記待ち行列システムが、第一のシーケンサー型に関連付けられた第一の待ち行列と、第二のシーケンサー型に関連付けられた第二の待ち行列とを含む、
態様1記載の方法。
〔態様5〕
前記第一および第二のシーケンサーが、コンピューティング上の少なくとも一つの基準に関して非対称的である、
態様4記載の方法。
〔態様6〕
前記コンピューティング上の基準が機能上の基準である、
態様5記載の方法。
〔態様7〕
前記コンピューティング上の基準が電力消費基準である、
態様5記載の方法。
〔態様8〕
前記機能上の基準が、リング0動作を実行する能力である、
態様6記載の方法。
〔態様9〕
前記記憶させる段階が、前記作業記述子を、ユーザーが提供したヒントに基づいて前記第一の待ち行列に記憶させることをさらに含む;
態様4記載の方法。
〔態様10〕
前記スレッド・プリミティブが、シュレッド生成プリミティブである、
態様1記載の方法。
〔態様11〕
前記スレッド・プリミティブが、シュレッド同期プリミティブである、
態様1記載の方法。
〔態様12〕
前記スレッド・プリミティブが、業界標準準拠のアプリケーション・プログラマ・インターフェースの一部である、
態様1記載の方法。
〔態様13〕
分散されたオペレーティング・システム独立なスケジューラ・ルーチンの第一の部分を含む第一のスレッド実行ユニットと;
分散されたオペレーティング・システム独立なスケジューラ・ルーチンの第二の部分を含む第二のスレッド実行ユニットとを有する装置であって;
前記第一および第二のスレッド実行ユニットが同時並行のマルチスレッドを利用した実行の機能をもち;
前記第一および第二の部分がさらに、スレッドを記述する作業記述子を求めて競るために作業待ち行列に問い合わせし;
前記分散されたスケジューラ・ルーチンが、前記競りに基づいて、オペレーティング・システムの介入なしに、前記スレッドを、前記スレッド実行ユニットのうちの選択されたものでの実行のためにスケジューリングする、装置。
〔態様14〕
前記スレッド実行ユニットの少なくとも一つはオペレーティング・システムに可視であり、前記スレッド実行ユニットの少なくとも別の一つはオペレーティング・システムに可視ではない、
態様13記載の装置。
〔態様15〕
当該装置が単一コアのプロセッサであり;
前記第一および第二の実行ユニットが論理的なプロセッサである、
態様13記載の装置。
〔態様16〕
当該装置がマルチコアのプロセッサであり;
前記第一および第二の実行ユニットがプロセッサ・コアである、
態様13記載の装置。
〔態様17〕
前記実行ユニットが機能的に対称的である、
態様13記載の装置。
〔態様18〕
前記待ち行列システムが、前記実行ユニットの全部に適用可能な作業記述子を保持するための単一の待ち行列を含む、
態様17記載の装置。
〔態様19〕
前記実行ユニットの少なくとも一つが、他の実行ユニットの一つまたは複数とコンピューティング面で非対称的である、
態様13記載の装置。
〔態様20〕
前記待ち行列システムが、前記少なくとも一つの非対称的である実行ユニットのための作業記述子を保持するための第一の待ち行列を含み、前記一つまたは複数の他の実行ユニットのための記述子を保持するための第二の待ち行列をも含む、
態様19記載の装置。
〔態様21〕
メモリ・システムと;
第一のシーケンサー型の第一のシーケンサーと;
第二のシーケンサー型の第二のシーケンサーと;
前記メモリ・システムに保存されているソフトウェア・ライブラリであって、作業待ち行列を生成するための一つまたは複数の命令を含むライブラリ、
とを有するマルチシーケンサー・マルチスレッド・システムであって:
前記ライブラリがさらに、前記作業待ち行列からの作業をシーケンサー上での実行のために、ユーザー指令によりスケジューリングすることを実行する分散されたスケジューラを含む、システム。
〔態様22〕
前記分散されたスケジューラが、前記第一および第二のシーケンサーのためのスケジューリング・ループを実行する、
態様21記載のシステム。
〔態様23〕
前記作業待ち行列が、ペンディングのソフトウェア・スレッドを記述する一つまたは複数のレコードを保持する、
態様21記載のシステム。
〔態様24〕
前記一つまたは複数のレコードが、それぞれ対応するペンディングのソフトウェア・スレッドの開始アドレスを含む、
態様23記載のシステム。
〔態様25〕
前記一つまたは複数のレコードが、それぞれ対応するペンディングのソフトウェア・スレッドについてのスタック・ポインタを含む、
態様23記載のシステム。
〔態様26〕
前記分散されたスケジューラがさらに、前記作業待ち行列からの作業をシーケンサー上での実行のために、ユーザー指令によりスケジューリングすることを、前記シーケンサーが同時並行してその関連付けられた作業を実行するように実行する、
態様23記載のシステム。
〔態様27〕
前記ライブラリがさらに、それぞれ関連付けられたユーザー生成されたプリミティブに応じてシュレッド命令を生成する一つまたは複数の関数を含んでおり、前記プリミティブは一般的に知られたアプリケーション・プログラマ・インターフェース規格に準拠するものである、
態様23記載の方法。
〔態様28〕
マルチスレッド・プロセッサにおいて、複数のシーケンサーの間でソフトウェア・シュレッドの実行をスケジューリングする方法であって:
ユーザー生成されたスレッド命令に応じて、スレッドを記述するスレッド記述子を生成する段階と;
前記スレッド記述子を待ち行列に入れる段階と;
それぞれが相異なるシーケンサーに関連付けられた複数のスケジューラ・ルーチンを実行する段階であって、前記複数のシーケンサーがオペレーティング・システムに基づくスレッド・スケジューラに従属せず、前記スケジューラ・ルーチンのそれぞれが前記待ち行列内の前記記述子を求めて競るものである、段階と;
前記スレッドを、前記シーケンサーの一つの上での実行のためにスケジューリングする段階、
とを有する方法。
〔態様29〕
前記ユーザー生成されたスレッド命令が、アプリケーション・プログラマ・インターフェースに含まれているプリミティブである、
態様28記載の方法。
〔態様30〕
前記アプリケーション・プログラマ・インターフェースが業界標準に準拠している、
態様28記載の方法。
〔態様31〕
複数の機械アクセス可能命令を有する機械アクセス可能媒体を有する物品であって、前記命令はプロセッサによって実行され、前記命令は:
ユーザー生成されたスレッド・プリミティブを実行する動作であって、スレッド制御命令を生成するライブラリ関数を呼び出すことをさらに含む動作と;
前記スレッド・プリミティブに応じて、スレッドを記述する作業記述子を生成する動作と;
前記作業記述子を待ち行列システム内に記憶させる動作と;
オペレーティング・システムの介入なしに、前記スレッドのシーケンサー上での実行をスケジューリングする動作、
とを提供する物品。
〔態様32〕
プロセッサによって実行されたときに:
ユーザーレベルの同時並行マルチスレッド利用を実行するよう前記シーケンサーを初期化する動作、
を提供する機械アクセス可能命令をさらに有する、態様31記載の物品。
〔態様33〕
前記初期化する動作を提供する命令がさらに、プロセッサによって実行されたときに、ユーザーレベルの分散されたスケジューラの、前記シーケンサー上での実行をトリガーする動作を提供する命令をさらに有する、
態様32記載の物品。
〔態様34〕
前記待ち行列システムが、第一のシーケンサー型に関連付けられた第一の待ち行列と、第二のシーケンサー型に関連付けられた第二の待ち行列とを含む、
態様31記載の物品。
〔態様35〕
前記第一および第二のシーケンサーが、コンピューティング上の少なくとも一つの基準に関して非対称的である、
態様34記載の物品。
〔態様36〕
前記コンピューティング上の基準が機能上の基準である、
態様35記載の物品。
〔態様37〕
前記コンピューティング上の基準が電力消費基準である、
態様35記載の物品。
〔態様38〕
前記機能上の基準が、リング0動作を実行する能力である、
態様36記載の物品。
〔態様39〕
前記記憶させる動作を提供する命令が、プロセッサによって実行されたときに、前記作業記述子を、ユーザーが提供したヒントに基づいて前記第一の待ち行列に記憶させる命令をさらに有する;
態様34記載の物品。
〔態様40〕
前記スレッド・プリミティブが、シュレッド生成プリミティブである、
態様31記載の物品。
〔態様41〕
前記スレッド・プリミティブが、シュレッド同期プリミティブである、
態様31記載の物品。
〔態様42〕
前記スレッド・プリミティブが、業界標準準拠のアプリケーション・プログラマ・インターフェースの一部である、
態様31記載の物品。
Claims (23)
- オペレーティング・システムを有するコンピューティング・システムでの同時並行しているスレッドのユーザーレベルのスケジューリングのための方法であって:
ユーザー生成されたスレッド命令を実行する段階であって、スレッド制御命令を生成するライブラリ関数を呼び出すことをさらに含む段階と;
前記ユーザー生成されたスレッド命令に応じて、スレッドを記述する作業記述子を生成する段階と;
前記作業記述子を待ち行列システム内に記憶させる段階と;
ユーザーレベルの同時並行マルチスレッド利用を実行するよう前記オペレーティング・システムに不可視なシーケンサーを初期化する段階であって、作業を求めて前記待ち行列システムを定期的に検査することを始めるよう、ユーザーレベルの分散されたスケジューラ、前記オペレーティング・システムに不可視なシーケンサー上で呼び出すことを含む、段階と、
前記スレッドの、前記オペレーティング・システムに不可視なシーケンサー上での実行をスケジューリングする段階とを含み、
前記ユーザーレベルの分散されたスケジューラは前記待ち行列システムにアクセスする、第一のシーケンサーおよび第二のシーケンサーを含む二つ以上のシーケンサー上のスケジューリング手段を有する、段階、
とを有し、
前記二つ以上のシーケンサー上の前記スケジューリング手段が、作業待ち行列に問い合わせしてスレッドを記述する作業記述子を求めて競るよう構成されており;
前記第二のシーケンサー上のスケジューリング手段が、前記競ることに基づいて、オペレーティング・システムには不可視に、前記スレッドを、前記オペレーティング・システムに不可視なシーケンサーのうちの選択されたものでの実行のためにスケジューリングし、
前記ユーザー生成されたスレッド命令が、シュレッド生成命令またはシュレッド同期命令であり、シュレッドは、オペレーティング・システムによって生成も制御もされないスレッドである、
方法。 - 前記待ち行列システムが、第一のシーケンサー型に関連付けられた第一の待ち行列と、第二のシーケンサー型に関連付けられた第二の待ち行列とを含む、
請求項1記載の方法。 - 前記第一および第二のシーケンサー型が、コンピューティング上の少なくとも一つの基準に関して非対称である、
請求項2記載の方法。 - 前記コンピューティング上の基準が機能上の基準である、
請求項3記載の方法。 - 前記コンピューティング上の基準が電力消費基準である、
請求項3記載の方法。 - 前記機能上の基準が、リング0動作を実行する能力である、
請求項4記載の方法。 - 前記記憶させる段階が、前記作業記述子を、ユーザーが提供したヒントに基づいて前記第一の待ち行列に記憶させることをさらに含む;
請求項2記載の方法。 - 前記ユーザー生成されたスレッド命令が、アプリケーション・プログラミング・インターフェースの一部である、
請求項1記載の方法。 - オペレーティング・システムを有するコンピューティング・システムのマルチシーケンサー・マルチスレッド・システムであって:
メモリ・システムと;
第一のシーケンサー型の第一のシーケンサーであって、ここで、前記第一のシーケンサー型はオペレーティング・システムに可視である、第一のシーケンサーと;
第二のシーケンサー型の第二のシーケンサーであって、ここで、前記第二のシーケンサー型はオペレーティング・システムに不可視である、第二のシーケンサーと;
前記メモリ・システムに保存されているソフトウェア・ライブラリであって、実行されたときに作業待ち行列を生成するための一つまたは複数の命令を含むライブラリ、
とを有しており:
前記ライブラリがさらに、前記作業待ち行列からの作業を第一および第二のシーケンサー上での実行のために、ユーザー指令によりスケジューリングすることを実行する分散されたスケジューラを含み、前記分散されたスケジューラは前記作業待ち行列にアクセスしてスレッドを記述する作業記述子を求めて競る、前記第一のシーケンサーおよび前記第二のシーケンサーのそれぞれにあるスケジューリング手段を含み、前記分散されたスケジューラが、前記第一および第二のシーケンサーのためのスケジューリング・ループを実行し、
前記第二のシーケンサー上のスケジューリング手段が、前記競ることに基づいて、オペレーティング・システムには不可視に、前記スレッドを、前記第一および第二のシーケンサーのうちの選択されたものでの実行のためにスケジューリングする、
システム。 - 前記作業待ち行列が、ペンディングのソフトウェア・スレッドを記述する一つまたは複数のレコードを保持する、
請求項9記載のシステム。 - 前記一つまたは複数のレコードが、それぞれ対応するペンディングのソフトウェア・スレッドの開始アドレスを含む、
請求項10記載のシステム。 - 前記一つまたは複数のレコードが、それぞれ対応するペンディングのソフトウェア・スレッドについてのスタック・ポインタを含む、
請求項10記載のシステム。 - 前記分散されたスケジューラが、前記第一および第二のシーケンサーが同時並行してその関連付けられた作業を実行するように、前記作業待ち行列からの作業をユーザー指令によりスケジューリングすることを実行する、
請求項10記載のシステム。 - マルチスレッド・プロセッサによって実行される、複数のシーケンサーの間でソフトウェア・シュレッドの実行をスケジューリングする方法であって:
ユーザー生成されたスレッド命令に応じて、スレッドを記述するスレッド記述子を生成手段によって生成する段階と;
前記スレッド記述子を待ち行列に入れる段階と;
それぞれが相異なるシーケンサーに関連付けられた複数のユーザーレベルのスケジューラ・ルーチンを実行手段によって実行する段階であって、前記複数のシーケンサーがオペレーティング・システムに基づくスレッド・スケジューラに従属せず、前記スケジューラ・ルーチンのそれぞれが前記待ち行列内の前記記述子を求めて競るものである、段階と;
前記スレッドを、前記シーケンサーの一つの上での実行のためにスケジューリング手段によってスケジューリングする段階、
とを有しており、
前記ユーザー生成されたスレッド命令が、シュレッド生成命令またはシュレッド同期命令であり、シュレッドは、オペレーティング・システムによって生成も制御もされないスレッドである、
方法。 - 前記ユーザー生成されたスレッド命令が、アプリケーション・プログラミング・インターフェースに含まれている命令である、
請求項14記載の方法。 - 複数の機械アクセス可能命令を記憶した機械アクセス可能媒体であって、前記命令はマルチスレッドに対応しかつ待ち行列システムおよび複数のシーケンサーを有するプロセッサによって実行されたときに、前記命令は:
ユーザー生成されたスレッド命令を実行する動作であって、スレッド制御命令を生成するライブラリ関数を呼び出すことをさらに含む動作と;
前記スレッド命令に応じて、スレッドを記述する作業記述子を生成する動作と;
前記作業記述子を待ち行列システム内に記憶させる動作と;
オペレーティング・システムの介入なしに、前記スレッドのシーケンサー上での実行をスケジューリングする動作と、
ユーザーレベルの同時並行マルチスレッド利用を実行するよう前記シーケンサーを初期化する動作であって、ユーザーレベルの分散されたスケジューラの、前記シーケンサー上での実行をトリガーすることをさらに含み、前記ユーザーレベルの分散されたスケジューラは前記待ち行列システムにアクセスする、第一のシーケンサーおよび第二のシーケンサーを含む二つ以上のシーケンサー上のスケジューリング手段を有する、動作、
とを提供するものであり、
前記二つ以上のシーケンサー上の前記スケジューリング手段が、作業待ち行列に問い合わせしてスレッドを記述する作業記述子を求めて競るよう構成されており;
前記第二のシーケンサー上のスケジューリング手段が、前記競ることに基づいて、オペレーティング・システムには不可視に、前記スレッドを、前記オペレーティング・システムに不可視なシーケンサーのうちの選択されたものでの実行のためにスケジューリングし、
前記ユーザー生成されたスレッド命令が、シュレッド生成命令またはシュレッド同期命令であり、シュレッドは、オペレーティング・システムによって生成も制御もされないスレッドである、
機械アクセス可能媒体。 - 前記待ち行列システムが、第一のシーケンサー型に関連付けられた第一の待ち行列と、第二のシーケンサー型に関連付けられた第二の待ち行列とを含む、
請求項16記載の機械アクセス可能媒体。 - 前記第一および第二のシーケンサーが、コンピューティング上の少なくとも一つの基準に関して非対称である、
請求項17記載の機械アクセス可能媒体。 - 前記コンピューティング上の基準が機能上の基準である、
請求項18記載の機械アクセス可能媒体。 - 前記コンピューティング上の基準が電力消費基準である、
請求項18記載の機械アクセス可能媒体。 - 前記機能上の基準が、リング0動作を実行する能力である、
請求項19記載の機械アクセス可能媒体。 - 前記記憶させる動作を提供する命令が、プロセッサによって実行されたときに、前記作業記述子を、ユーザーが提供したヒントに基づいて前記第一の待ち行列に記憶させる命令をさらに有する;
請求項17記載の機械アクセス可能媒体。 - 前記スレッド命令が、アプリケーション・プログラミング・インターフェースの一部である、
請求項16記載の機械アクセス可能媒体。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/027,445 | 2004-12-30 | ||
US11/027,445 US8607235B2 (en) | 2004-12-30 | 2004-12-30 | Mechanism to schedule threads on OS-sequestered sequencers without operating system intervention |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2011007496A Division JP2011076639A (ja) | 2004-12-30 | 2011-01-18 | オペレーティング・システム介入なしにos隔離シーケンサー上でスレッドをスケジューリングする機構 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2013191244A JP2013191244A (ja) | 2013-09-26 |
JP5678135B2 true JP5678135B2 (ja) | 2015-02-25 |
Family
ID=36582629
Family Applications (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007549606A Pending JP2008525921A (ja) | 2004-12-30 | 2005-12-22 | オペレーティング・システム介入なしにos隔離シーケンサー上でスレッドをスケジューリングする機構 |
JP2011007496A Pending JP2011076639A (ja) | 2004-12-30 | 2011-01-18 | オペレーティング・システム介入なしにos隔離シーケンサー上でスレッドをスケジューリングする機構 |
JP2013140714A Expired - Fee Related JP5678135B2 (ja) | 2004-12-30 | 2013-07-04 | オペレーティング・システム介入なしにos隔離シーケンサー上でスレッドをスケジューリングする機構 |
Family Applications Before (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007549606A Pending JP2008525921A (ja) | 2004-12-30 | 2005-12-22 | オペレーティング・システム介入なしにos隔離シーケンサー上でスレッドをスケジューリングする機構 |
JP2011007496A Pending JP2011076639A (ja) | 2004-12-30 | 2011-01-18 | オペレーティング・システム介入なしにos隔離シーケンサー上でスレッドをスケジューリングする機構 |
Country Status (6)
Country | Link |
---|---|
US (2) | US8607235B2 (ja) |
EP (1) | EP1839146B1 (ja) |
JP (3) | JP2008525921A (ja) |
KR (1) | KR20070095376A (ja) |
CN (2) | CN101160565B (ja) |
WO (1) | WO2006074027A2 (ja) |
Families Citing this family (45)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE10331202A1 (de) * | 2003-07-10 | 2005-03-31 | S.K. Enterprise Gmbh | Verwendung von Molkenpermeat zur Behandlung des Metabolischen Syndroms |
US8607235B2 (en) | 2004-12-30 | 2013-12-10 | Intel Corporation | Mechanism to schedule threads on OS-sequestered sequencers without operating system intervention |
US8010969B2 (en) * | 2005-06-13 | 2011-08-30 | Intel Corporation | Mechanism for monitoring instruction set based thread execution on a plurality of instruction sequencers |
RU2312388C2 (ru) * | 2005-09-22 | 2007-12-10 | Андрей Игоревич Ефимов | Способ организации многопроцессорной эвм |
US8028295B2 (en) * | 2005-09-30 | 2011-09-27 | Intel Corporation | Apparatus, system, and method for persistent user-level thread |
US8079035B2 (en) * | 2005-12-27 | 2011-12-13 | Intel Corporation | Data structure and management techniques for local user-level thread data |
US8914618B2 (en) | 2005-12-29 | 2014-12-16 | Intel Corporation | Instruction set architecture-based inter-sequencer communications with a heterogeneous resource |
US8689215B2 (en) | 2006-12-19 | 2014-04-01 | Intel Corporation | Structured exception handling for application-managed thread units |
US8074274B2 (en) * | 2006-12-29 | 2011-12-06 | Intel Corporation | User-level privilege management |
US7975272B2 (en) | 2006-12-30 | 2011-07-05 | Intel Corporation | Thread queuing method and apparatus |
KR100888675B1 (ko) | 2007-02-15 | 2009-03-13 | 고려대학교 산학협력단 | 임베디드 코어에서 멀티 쓰레드 실행을 위해 확장된프로세서 및 임베디드 코어에서 멀티 쓰레드 실행 방법 |
US7853950B2 (en) | 2007-04-05 | 2010-12-14 | International Business Machines Corporarion | Executing multiple threads in a processor |
US20080320475A1 (en) * | 2007-06-19 | 2008-12-25 | Microsoft Corporation | Switching user mode thread context |
US8544014B2 (en) * | 2007-07-24 | 2013-09-24 | Microsoft Corporation | Scheduling threads in multi-core systems |
US8327363B2 (en) * | 2007-07-24 | 2012-12-04 | Microsoft Corporation | Application compatibility in multi-core systems |
US7904696B2 (en) * | 2007-09-14 | 2011-03-08 | Intel Corporation | Communication paths for enabling inter-sequencer communication following lock competition and accelerator registration |
CN101547212B (zh) * | 2008-03-29 | 2012-09-05 | 华为技术有限公司 | 一种分布式对象的调度方法和系统 |
US9785462B2 (en) * | 2008-12-30 | 2017-10-10 | Intel Corporation | Registering a user-handler in hardware for transactional memory event handling |
KR101041777B1 (ko) | 2009-06-08 | 2011-06-17 | 엠텍비젼 주식회사 | 멀티 스레드 처리 방법 및 이를 사용하는 프로세서 디바이스 |
US8719547B2 (en) | 2009-09-18 | 2014-05-06 | Intel Corporation | Providing hardware support for shared virtual memory between local and remote physical memory |
US8464035B2 (en) * | 2009-12-18 | 2013-06-11 | Intel Corporation | Instruction for enabling a processor wait state |
US8443376B2 (en) | 2010-06-01 | 2013-05-14 | Microsoft Corporation | Hypervisor scheduler |
US8898664B2 (en) * | 2010-06-01 | 2014-11-25 | Microsoft Corporation | Exposure of virtual cache topology to a guest operating system |
US8572628B2 (en) | 2010-12-02 | 2013-10-29 | International Business Machines Corporation | Inter-thread data communications in a computer processor |
US8561070B2 (en) | 2010-12-02 | 2013-10-15 | International Business Machines Corporation | Creating a thread of execution in a computer processor without operating system intervention |
JP6197196B2 (ja) | 2011-09-06 | 2017-09-20 | インテル・コーポレーション | 電力効率の優れたプロセッサアーキテクチャ |
CN103136047B (zh) * | 2011-11-30 | 2016-08-17 | 大唐联诚信息系统技术有限公司 | 一种多线程管理方法及架构 |
WO2013101139A1 (en) | 2011-12-30 | 2013-07-04 | Intel Corporation | Providing an asymmetric multicore processor system transparently to an operating system |
US20130205144A1 (en) * | 2012-02-06 | 2013-08-08 | Jeffrey R. Eastlack | Limitation of leakage power via dynamic enablement of execution units to accommodate varying performance demands |
US10255104B2 (en) * | 2012-03-29 | 2019-04-09 | Advanced Micro Devices, Inc. | System call queue between visible and invisible computing devices |
US8943343B2 (en) | 2012-06-20 | 2015-01-27 | Intel Corporation | Controlling an asymmetrical processor |
CN107317839A (zh) | 2012-07-04 | 2017-11-03 | 中兴通讯股份有限公司 | 物联网消息处理方法、装置及系统 |
US20140075163A1 (en) * | 2012-09-07 | 2014-03-13 | Paul N. Loewenstein | Load-monitor mwait |
US10158585B2 (en) * | 2013-02-21 | 2018-12-18 | Intel Corporation | Packet processing with reduced latency |
US9207940B2 (en) * | 2013-03-15 | 2015-12-08 | Intel Corporation | Robust and high performance instructions for system call |
US10725889B2 (en) * | 2013-08-28 | 2020-07-28 | Micro Focus Llc | Testing multi-threaded applications |
CN105677455A (zh) * | 2014-11-21 | 2016-06-15 | 深圳市中兴微电子技术有限公司 | 一种设备调度方法及任务管理器 |
GB2544994A (en) | 2015-12-02 | 2017-06-07 | Swarm64 As | Data processing |
US11093251B2 (en) | 2017-10-31 | 2021-08-17 | Micron Technology, Inc. | System having a hybrid threading processor, a hybrid threading fabric having configurable computing elements, and a hybrid interconnection network |
CN111602126A (zh) * | 2017-10-31 | 2020-08-28 | 美光科技公司 | 具有混合线程处理器的系统、具有可配置计算元件的混合线程组构以及混合互连网络 |
US11513840B2 (en) * | 2018-05-07 | 2022-11-29 | Micron Technology, Inc. | Thread creation on local or remote compute elements by a multi-threaded, self-scheduling processor |
US11068305B2 (en) * | 2018-05-07 | 2021-07-20 | Micron Technology, Inc. | System call management in a user-mode, multi-threaded, self-scheduling processor |
US11132233B2 (en) * | 2018-05-07 | 2021-09-28 | Micron Technology, Inc. | Thread priority management in a multi-threaded, self-scheduling processor |
CN109491780B (zh) * | 2018-11-23 | 2022-04-12 | 鲍金龙 | 多任务调度方法及装置 |
US20230138967A1 (en) * | 2021-10-29 | 2023-05-04 | Blackberry Limited | Thread scheduling |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0422310A1 (en) * | 1989-10-10 | 1991-04-17 | International Business Machines Corporation | Distributed mechanism for the fast scheduling of shared objects |
US5257375A (en) * | 1991-08-23 | 1993-10-26 | International Business Machines Corp. | Method and apparatus for dispatching tasks requiring short-duration processor affinity |
US5768594A (en) * | 1995-07-14 | 1998-06-16 | Lucent Technologies Inc. | Methods and means for scheduling parallel processors |
JP3760035B2 (ja) * | 1996-08-27 | 2006-03-29 | 松下電器産業株式会社 | 複数の命令流を独立に処理し、命令流単位に処理性能を柔軟に制御するマルチスレッドプロセッサ |
US6766515B1 (en) * | 1997-02-18 | 2004-07-20 | Silicon Graphics, Inc. | Distributed scheduling of parallel jobs with no kernel-to-kernel communication |
US6289369B1 (en) * | 1998-08-25 | 2001-09-11 | International Business Machines Corporation | Affinity, locality, and load balancing in scheduling user program-level threads for execution by a computer system |
US7191440B2 (en) * | 2001-08-15 | 2007-03-13 | Intel Corporation | Tracking operating system process and thread execution and virtual machine execution in hardware or in a virtual machine monitor |
CN1284094C (zh) * | 2002-04-30 | 2006-11-08 | 电子科技大学 | 一种构建分布式并行调度网络服务器系统的方法 |
US8032891B2 (en) * | 2002-05-20 | 2011-10-04 | Texas Instruments Incorporated | Energy-aware scheduling of application execution |
US20040049580A1 (en) * | 2002-09-05 | 2004-03-11 | International Business Machines Corporation | Receive queue device with efficient queue flow control, segment placement and virtualization mechanisms |
JP4750350B2 (ja) | 2003-03-13 | 2011-08-17 | パナソニック株式会社 | タスク切換装置、方法及びプログラム |
US7093147B2 (en) * | 2003-04-25 | 2006-08-15 | Hewlett-Packard Development Company, L.P. | Dynamically selecting processor cores for overall power efficiency |
US7376954B2 (en) * | 2003-08-28 | 2008-05-20 | Mips Technologies, Inc. | Mechanisms for assuring quality of service for programs executing on a multithreaded processor |
US7516456B2 (en) * | 2003-09-25 | 2009-04-07 | International Business Machines Corporation | Asymmetric heterogeneous multi-threaded operating system |
US7451146B2 (en) * | 2004-06-30 | 2008-11-11 | Hewlett-Packard Development Company, L.P. | Almost non-blocking linked stack implementation |
US20060075404A1 (en) * | 2004-10-06 | 2006-04-06 | Daniela Rosu | Method and system for scheduling user-level I/O threads |
US8607235B2 (en) | 2004-12-30 | 2013-12-10 | Intel Corporation | Mechanism to schedule threads on OS-sequestered sequencers without operating system intervention |
-
2004
- 2004-12-30 US US11/027,445 patent/US8607235B2/en not_active Expired - Fee Related
-
2005
- 2005-12-22 CN CN2005800457586A patent/CN101160565B/zh not_active Expired - Fee Related
- 2005-12-22 KR KR1020077017501A patent/KR20070095376A/ko active Search and Examination
- 2005-12-22 EP EP05855829.7A patent/EP1839146B1/en not_active Not-in-force
- 2005-12-22 WO PCT/US2005/047334 patent/WO2006074027A2/en active Application Filing
- 2005-12-22 JP JP2007549606A patent/JP2008525921A/ja active Pending
- 2005-12-22 CN CN200910222297.5A patent/CN101702134B/zh not_active Expired - Fee Related
-
2011
- 2011-01-18 JP JP2011007496A patent/JP2011076639A/ja active Pending
-
2013
- 2013-07-04 JP JP2013140714A patent/JP5678135B2/ja not_active Expired - Fee Related
- 2013-10-30 US US14/067,223 patent/US9069605B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2008525921A (ja) | 2008-07-17 |
US20140115594A1 (en) | 2014-04-24 |
US20060150184A1 (en) | 2006-07-06 |
US8607235B2 (en) | 2013-12-10 |
WO2006074027A3 (en) | 2006-08-24 |
US9069605B2 (en) | 2015-06-30 |
KR20070095376A (ko) | 2007-09-28 |
CN101160565B (zh) | 2012-06-20 |
JP2011076639A (ja) | 2011-04-14 |
CN101702134A (zh) | 2010-05-05 |
CN101160565A (zh) | 2008-04-09 |
WO2006074027A2 (en) | 2006-07-13 |
CN101702134B (zh) | 2014-07-23 |
JP2013191244A (ja) | 2013-09-26 |
EP1839146B1 (en) | 2018-10-24 |
EP1839146A2 (en) | 2007-10-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5678135B2 (ja) | オペレーティング・システム介入なしにos隔離シーケンサー上でスレッドをスケジューリングする機構 | |
US10241831B2 (en) | Dynamic co-scheduling of hardware contexts for parallel runtime systems on shared machines | |
US7698540B2 (en) | Dynamic hardware multithreading and partitioned hardware multithreading | |
US20050188177A1 (en) | Method and apparatus for real-time multithreading | |
JP4818918B2 (ja) | マルチスレッド化されたマイクロプロセッサで並行命令ストリームを開始する命令 | |
US20070150895A1 (en) | Methods and apparatus for multi-core processing with dedicated thread management | |
US8516483B2 (en) | Transparent support for operating system services for a sequestered sequencer | |
US20070124732A1 (en) | Compiler-based scheduling optimization hints for user-level threads | |
JP2561801B2 (ja) | プロセス・スケジューリングの管理方法およびシステム | |
JP5244160B2 (ja) | 複数の命令シーケンサでのスレッド実行に基づく命令セットのためのメカニズム | |
JP2005284749A (ja) | 並列処理コンピュータ | |
JP2007504541A (ja) | プロセッサ内での実行の計算スレッドを一時停止して割り当て解除するための統合されたメカニズム | |
US20050066302A1 (en) | Method and system for minimizing thread switching overheads and memory usage in multithreaded processing using floating threads | |
Brandenburg | Multiprocessor real-time locking protocols | |
Grossman et al. | Hardware support for fine-grained event-driven computation in Anton 2 | |
US20050066149A1 (en) | Method and system for multithreaded processing using errands | |
Kale et al. | Threads for interoperable parallel programming | |
Woo et al. | Catnap: A Backoff Scheme for Kernel Spinlocks in Many-Core Systems | |
Singer et al. | An Efficient Scheduler for Task-Parallel Interactive Applications | |
Labarta et al. | Hybrid Parallel Programming with MPI/StarSs | |
Strøm | Real-Time Synchronization on Multi-Core Processors | |
CN115858132A (zh) | 线程调度方法、装置、芯片、电子设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20130704 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20140623 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20140708 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20141002 |
|
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: 20141202 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20150105 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5678135 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |