JP2003241980A - マルチプロセッサ・コンピュータ・システムのためのスレッド・ディスパッチ機構及び方法 - Google Patents

マルチプロセッサ・コンピュータ・システムのためのスレッド・ディスパッチ機構及び方法

Info

Publication number
JP2003241980A
JP2003241980A JP2003025839A JP2003025839A JP2003241980A JP 2003241980 A JP2003241980 A JP 2003241980A JP 2003025839 A JP2003025839 A JP 2003025839A JP 2003025839 A JP2003025839 A JP 2003025839A JP 2003241980 A JP2003241980 A JP 2003241980A
Authority
JP
Japan
Prior art keywords
thread
processors
threads
processor
additional
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
Application number
JP2003025839A
Other languages
English (en)
Other versions
JP4117202B2 (ja
Inventor
Ricky Merle Peterson
リッキー・マール・ピーターソン
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2003241980A publication Critical patent/JP2003241980A/ja
Application granted granted Critical
Publication of JP4117202B2 publication Critical patent/JP4117202B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load

Abstract

(57)【要約】 (修正有) 【課題】マルチプロセッサ・コンピュータ・システムの
ためのスレッド・ディスパッチ機構及び方法を提供す
る。 【解決手段】スレッド・ディスパッチ機構は、どのプロ
セッサがビジーであって更なるスレッドを実行すること
ができないか、どのプロセッサがスレッドに作用してい
るか、及びどのプロセッサがアイドル状態にあるかを決
定する。スレッドがディスパッチされる準備ができる
時、それらは、他のスレッドに既に作用しているプロセ
ッサの代わりに、アイドル・プロセッサに先ずディスパ
ッチされる。アイドル・プロセッサがまったく存在しな
い場合、スレッドは、1つ又は複数のスレッドに作用し
ているが、新たなスレッドも処理することができるプロ
セッサにディスパッチされる。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、概して云えば、コ
ンピュータ・システムに関し、更に詳しく云えば、マル
チプロセッサ・コンピュータ・システムに関するもので
ある。
【0002】
【従来の技術】コンピュータ時代の幕開け以来、コンピ
ュータ・システムは極めて複雑な装置に進化してきた
し、数多くの種々なセッティングのコンピュータ・シス
テムを見ることができる。一般に、コンピュータ・シス
テムは、半導体及び回路ボードのようなハートウェア
と、コンピュータ・プログラムとしても知られているソ
フトウェアとの組み合わせを含む。半導体処理及びコン
ピュータ・アーキテクチャにおける進歩は、コンピュー
タ・ハードウェアの性能を更に高度なものに推進するの
で、より複雑なコンピュータ・ソフトウェアがその高性
能のハードウェアを利用するように進化し、その結果、
今日のコンピュータ・システムは数年前のものよりも遙
かに強力なものになっている。
【0003】コンピュータ・システムの性能は、ハード
ウェア、ソフトウェア、並びに処理されるプログラムの
総数、ネットワーク・トラフィック・ロード、キャッシ
ュ効率等のような他の動的な考察事項によって決定され
る数多くの要素に依存する。コンピュータ・システムの
性能を高める1つの既知の方法は、1つのコンピュータ
・プログラムにおける種々の部分を処理することができ
る複数の実行スレッド(thread of execution)を提供
することである。コンピュータ・システムの性能を高め
るもう1つの既知の方法は、1つのコンピュータ・プロ
グラム又は個別のコンピュータ・プログラムにおける複
数部分を並行して実行することによって処理負荷を振り
分けることができる複数のプロセッサを設けることであ
る。マルチスレッド及び複数プロセッサという概念は、
性能の更なる向上を得るように結合可能である。従来技
術では、複数のプロセッサは、当初、一時には1つの実
行スレッドしか実行することを許されなかった。しか
し、最近の進歩は、マルチプロセッサ・システムにおけ
る各プロセッサ上での複数の実行スレッドを可能にして
いる。例えば、IBM社によって製造及び販売されてい
る iSeries Condor コンピュータ・システムは、ハード
ウェア・マルチスレッドがイネーブル又はディセーブル
されることを可能にするセットアップ・パラメータを含
んでいる。各プロセッサは、それがイネーブルされる
時、2つのスレッドを実行することができる。しかし、
ハードウェア・マルチスレッドの出現により幾つかの問
題が生じている。
【0004】
【発明が解決しようとする課題】最近のコンピュータ・
サーバは、一般に、Java(R)をサポートしなけれ
ばならない。サーバがJava(R)を如何に効率的に
サポートするかを測定するために開発された1つの重要
なベンチマークは、SPECJBB2000 として知られている。
SPEC は、最近のコンピュータ・システムの性能評価の
ための関連ベンチマーク及び測定規準の標準化されたセ
ットを確立、維持、及び是認する使命を持った標準機構
である Standard Performance Evaluation Corporation
の頭字語である。JBB200 は、Java(R) Business Bench
mark の頭字語であり、2000年6月に使用可能にさ
れたベンチマークである。SPECJBB2000 は、対処するに
は望ましいベンチマークとして産業界において非常に広
範囲に受け入れられるようになった。しかし、ハードウ
ェア・マルチスレッドをサポートするシステムにおいて
そのハードウェア・マルチスレッドをイネーブルするこ
とは、通常、そのシステムに SPECJBB2000 ベンチマー
クを機能しなくさせるであろう。その機能不全の理由
は、SPECJBB2000 が、「スレッド・スプレッド(thread
spread)」として産業界では一般に知られている種々
のスレッドの実行時間及びトランザクション処理速度の
間の最大変動という仕様を持っていることである。同じ
タスクを行う種々のスレッドの実行時間及びトランザク
ション処理速度が指定の最大スレッド・スプレッドを越
える場合、そのベンチマークは機能しなくなる。ハード
ウェア・マルチスレッドを含む大抵の最近のコンピュー
タ・システムは、過度のスレッド・スプレッドのために
SPECJBB2000 ベンチマークを実行することができな
い。その結果、大抵のコンピュータ・ベンダは、SPECJB
B2000 を実行するときにハードウェア・マルチスレッド
をオフにする。過度のスレッド・スプレッドの原因は、
オペレーティング・システムが使用可能なプロセッサに
スレッドをディスパッチする方法にある。スレッド・ス
プレッドを少なくする改良されたスレッド・ディスパッ
チ機構及び方法がない場合、コンピュータ産業は、ハー
ドウェア・マルチスレッドがディセーブルされない場
合、過度のスレッド・スプレッドを有する(従って、SP
ECJBB2000 ベンチマークに適合し得ない)コンピュータ
・システムからの損害を受け続けるであろう。それは、
そもそもハードウェア・マルチスレッドを提供するとい
う性能上の利点を廃棄するものである。
【0005】
【課題を解決するための手段】望ましい実施例によれ
ば、ハードウェア・マルチスレッドをイネーブルされた
マルチプロセッサ・コンピュータ・システムにおいて、
スレッド・ディスパッチ機構がスレッドをディスパッチ
し、それによって、各プロセッサが複数のスレッドを実
行することを可能にする。スレッド・ディスパッチ機構
は、どのプロセッサがビジーであって更なるスレッドを
実行することができないか、どのプロセッサがスレッド
に作用しているか、及びどのプロセッサがアイドル状態
にあるかを決定する。スレッドがディスパッチされる準
備ができる時、それらは、他のスレッドに既に作用して
いるプロセッサの代わりに、アイドル・プロセッサに先
ずディスパッチされる。アイドル・プロセッサがまった
く存在しない場合、スレッドは、1つ又は複数のスレッ
ドに作用しているが、新たなスレッドも処理することが
できるプロセッサにディスパッチされる。このように、
本発明のスレッド・ディスパッチ機構及び方法は、スレ
ッド間での応答時間における非常に改善された一貫性を
提供し、しかもスレッドをディスパッチする従来技術の
方法に比べて高いスループットを提供する。
【0006】本発明の上記及び他の特徴及び利点は、添
付図面に示された本発明の望ましい実施例の更に詳細な
以下の説明から明らかであろう。
【0007】
【発明の実施の形態】1.0 概要 本発明は、ハードウェア・マルチスレッドを可能にされ
たマルチプロセッサ・コンピュータ・システムにおける
スレッドのディスパッチに関するものである。マルチス
レッドされたシステム、マルチプロセッサ・システム、
ハードウェア・マルチスレッド、及び従来技術のスレッ
ド・ディスパッチ機構及び方法に精通していない人にと
って、この概要項は本発明を理解する上で助けとなる背
景情報を提供するであろう。
【0008】A.マルチスレッド化されたシステム 複数の実行スレッド(又は、タスク)が同時に実行され
ることを可能にするコンピュータ・システムが開発され
ている。単一プロセッサ・システムでは、単一のプロセ
ッサしか存在しないので、実際には複数のスレッドが同
時には実行され得ない。しかし、単一プロセッサ・シス
テムにおけるマルチスレッドは、そのシステムがマルチ
タスキングであることを可能にする。単一プロセッサ・
システムにおけるCPUスケジューラは、スレッド間の
切り換えを制御し、それらのスレッドが同時に実行され
ているように見えるようにし、CPUが複数のタスクに
同時に作用することを可能にする。
【0009】B.マルチプロセッサ・システム コンピュータ・システムの生の処理能力は、異なるタス
クに対して同時に作用することができる複数のプロセッ
サを提供することによって高められ得る。初期のマルチ
プロセッサ・システムは、各プロセッサに単一のスレッ
ドを割り当てていたであろう。各プロセッサにおいて単
一のスレッドをサポートする従来から知られているマル
チプロセッサ・システムのためのスレッド・ディスパッ
チャは、多数の異なる方法で動作することができる。最
も一般的な既知の方法は、逐次態様でスレッドをプロセ
ッサに割り当てることである。このタイプのシステム
は、第1のスレッドが第1のプロセッサにディスパッチ
され、第2のスレッドが第2のプロセッサにディスパッ
チされるというようなものである。すべてのプロセッサ
がスレッドを実行していてビジーである場合、ディスパ
ッチされるべき次のスレッドは、1つのプロセッサが使
用可能になるまで待機しなければならないであろう。ス
レッドをディスパッチするためのもう1つの既知の方法
は、プロセッサを無作為に選出し、そのプロセッサが他
のスレッドを実行していてビジーであるということでは
ない場合、そのプロセッサにスレッドを割り当てること
である。スレッドをディスパッチするための更にもう1
つの方法は、そのスレッドを最後に実行したプロセッサ
を選出することである。このタイプのディスパッチは、
そのスレッドを最後に実行したプロセッサがそれのキャ
ッシュに必要な情報を既にロードされているかもしれな
いという望みによるプロセッサ・アフィニティに基づい
ている。これらのスレッド・ディスパッチ方法の各々
は、各プロセッサにおいて単一のスレッドしか実行させ
ないマルチプロセッサ・システムにおいて開発された。
【0010】C.ハードウェア・マルチスレッド 更に最近の開発活動は、複数のスレッドがマルチプロセ
ッサ・システムにおける各プロセッサによって実行され
ることを可能にするハードウェア・マルチスレッドの概
念をもたらした。これらのシステムにおけるスレッド・
ディスパッチャは、ハードウェア・マルチスレッドが存
在しなかった時に従来のシステムにおいて使用された方
法と同じ方法、即ち、逐次的、無作為的、且つプロセッ
サ・アフィニティ的方法を使用する。ハードウェア・マ
ルチスレッドを含むシステムにおいて同じ態様でスレッ
ドをディスパッチした結果は、スレッド間における実行
時間及びトランザクション処理速度の可変性(即ち、ス
レッド・スプレッド)が過度になり得るということであ
る。例えば、第2のスレッドが、既に他のスレッドを実
行しているプロセッサにディスパッチされる場合、第2
のスレッドに対する実行時間は、一般に、如何なるスレ
ッドも実行していないアイドル・プロセッサに第2のス
レッドがディスパッチされた場合よりもかなり長いであ
ろう。スレッド・スプレッドの問題は、幾つかの異なる
理由のために重要である。第1に、過度なスレッド・ス
プレッドは、ばらつきのある応答時間を導く。コンピュ
ータ・オペレータが電話で注文を取り、それらの注文を
コンピュータ・システムに入力する場合、オペレータ
は、注文を処理するための時間が時々広範囲に変動する
場合にフラストレーションを起こすであろう。コンピュ
ータ・システムが注文を1回処理するために1秒を必要
とし、次の回には10分の1秒を必要とし、その次の回
には5秒を必要とする場合、オペレータは、コンピュー
タ・システムのばらつきのある応答時間に屡々フラスト
レーションを起こすであろう。このような状況における
応答時間の一貫性は、その応答時間の値よりも重要であ
る。システムがユーザによる知覚の限度内でいつも同じ
ように活動している限り、ユーザは、コンピュータ・シ
ステムが適正に機能していることに満足する。
【0011】スレッド・スプレッドを最小にすることが
重要であるというもう1つの理由は、コンピュータ・シ
ステムが SPECJBB2000 のようなベンチマークに合格す
ることを可能にすることである。SPECJBB2000 は、コン
ピュータ産業における著名なベンチマークであり、製造
業者は、サーバが如何に効率的にJava(R)コード
を処理するかを証明するようにそのベンチマークを適合
させることを望んでいる。
【0012】スレッド・スプレッドを最小にすることが
重要であるという更にもう1つの理由は、如何にアプリ
ケーションが徐々に進化してきたかということに関連す
る。インテンシブ(intensive)I/Oを有するアプリ
ケーションにとって、スレッド・スプレッドはクリティ
カルな問題ではない。それは、I/Oオペレーション相
互間のタイム・スライスが比較的小さく、従って、人の
知覚又はシステム・パフォーマンスに大きく影響しない
ためである。しかし、Java(R)アプリケーション
のような数多くの最近のアプリケーションは、I/Oオ
ペレーション当たり更に多くのCPUサイクルを使って
実行し、その結果、ス(R)レッド実行時間における差
がコンピュータ・システムの性能に大きく影響し得るこ
とになる。例えば、企業がバッチ処理を夜間に行うもの
と仮定すると、従業員が仕事に戻ってくる午前8時まで
にそのバッチ処理が終了しなければならない。スレッド
・スプレッドは、1つのスレッドを午前5時に終了させ
ることがあり得るし、一方、別のスレッドは午前9時ま
で終了しないことがある。この場合、それら2つのスレ
ッドの間の平均的な処理時間は、両方のスレッドが午前
7時に終了するという結果になる。しかし、従業員が午
前8時に戻った時に第2のスレッドがバッチ処理を終了
してないため、スレッド・スプレッドは受け入れ難い結
果を生じる。この理由のために、スレッド間の実行時間
及びトランザクション処理速度の一貫性は、多くの最近
のアプリケーションにとって重要なことである。本発明
は、ハードウェア・マルチスレッドを可能にされたマル
チプロセッサ・システムにおけるスレッド・スプレッド
を大きく減少させる。
【0013】2.0 詳細な説明 望ましい実施例は、スレッド・スプレッド(即ち、スレ
ッド間の実行時間及びトランザクション処理速度の可変
性)を大きく減少させるハードウェア・マルチスレッド
をイネーブルされたマルチプロセッサ・システムにおい
てスレッドをディスパッチする機構及び方法を提供す
る。これは、どれが、1つ又は複数のスレッドを処理し
ていてビジーであるが依然として他のスレッドを受け付
けることができるアイドル状態にあるか、及び、どれ
が、既に最大数のスレッドを処理していてビジーである
かを決定するために、プロセッサを監視することによっ
て行われる。1つのスレッドがディスパッチされる必要
がある時、それは、アイドル・プロセッサが存在する場
合にはそのアイドル・プロセッサにディスパッチされ
る。アイドル・プロセッサが存在しない場合、そのスレ
ッドは、最も少ないスレッドを実行しているプロセッサ
にディスパッチされる。この方法では、種々のスレッド
を実行するための時間の変動がかなり減少するので、ハ
ードウェア・マルチスレッドをイネーブルされた望まし
い実施例によるマルチプロセッサ・システムが SPECJBB
2000 ベンチマークに合格すること及びスレッド間の更
に一貫した応答時間及びスループットを提供することを
可能にする。
【0014】図1を参照すると、コンピュータ・システ
ム100は、本発明の望ましい実施例による装置の1つ
の適当な実施態様である。コンピュータ・システム10
0は、IBM社の iSeries コンピュータ・システムで
あり、特に、ハードウェア・マルチスレッドをサポート
する Condor コンピュータ・システムである。しかし、
コンピュータ・システムが複雑なマルチユーザ・コンピ
ュータ装置、シングル・ユーザ・ワークステーション、
或いは据え置き型コントロール・システムであるかどう
かに関係なく、本発明の機構及び方法が任意のコンピュ
ータ・システムに等しく適用することは当業者には明ら
かであろう。図1に示されるように、コンピュータ・シ
ステム100は、複数のプロセッサ(プロセッサ11
0、112、及び118のような)、メイン・メモリ1
20、大容量記憶装置インターフェース130、ディス
プレイ・インターフェース140、及びネットワーク・
インターフェース150を含む。これらのシステム・コ
ンポーネントは、システム・バス160の使用を通して
相互接続される。大容量記憶装置インターフェース13
0は、大容量記憶装置(ダイレクト・アクセス記憶装置
(DASD)155のような)をコンピュータ・システ
ム100に接続するために使用される。ダイレクト・ア
クセス記憶装置155の1つの特定のタイプは、CD−
ROM195にデータを記憶し且つCD−ROM195
からデータを読み取ることができる読取/書込可能CD
−ROMである。
【0015】望ましい実施例によるメイン・メモリ12
0は、データ121及びオペレーティング・システム1
22を含む。データ121は、コンピュータ・システム
100における任意のプログラムへの入力又は任意のプ
ログラムからの出力として働く任意のデータを表す。オ
ペレーティング・システム122は、OS/400(商
標)のようなその産業界において知られているマルチタ
スク・オペレーティング・システムと同じである。しか
し、本発明の精神及び技術的範囲がいずれのオペレーテ
ィング・システムにも限定されないことは当業者には明
らかであろう。望ましい実施例のオペレーティング・シ
ステム122は、システム管理者がハードウェア・マル
チスレッドをオン又はオフにすることを可能にするハー
ドウェア・マルチスレッド・イネーブル/ディセーブル
機構123を含む。iSeries Condor コンピュータ・シ
ステムの関係では、ハードウェア・マルチスレッドをイ
ネーブルすることは、各プロセッサが2つのスレッドを
実行することができるということを意味する。ハードウ
ェア・マルチスレッドがディセーブルされることによっ
て、各プロセッサは1つのスレッドしか実行することが
できない。オペレーティング・システム122は、種々
のスレッドを実行する時間の可変性を最小にする方法で
使用可能なプロセッサにスレッドをディスパッチするス
レッド・ディスパッチャ124を含む。オペレーティン
グ・システム122は、更に、そのシステムにおけるす
べてのプロセッサ(例えば、プロセッサ110、11
2、...、118)のステータスを追跡するプロセッ
サ・ステータス・トラッカ125を含む。
【0016】コンピュータ・システム100は、そのコ
ンピュータ・システム100のプログラムが、あたか
も、メイン・メモリ120及びDASD155のような
複数の小型記憶装置をアクセスする代わりに1つの大型
記憶装置だけをアクセスするが如くそのプログラムが動
作することを可能にする周知の仮想アドレシング機構を
利用する。従って、データ121及びオペレーティング
・システム122はメイン・メモリ120内にあるよう
に示されるけれども、必ずしもこれらの項目がすべて完
全にメイン・メモリ120に同時に含まれるものではな
いことは当業者には明らかであろう。本願では、「メモ
リ」という用語が、コンピュータ・システム100の仮
想メモリ全体を一般的に呼ぶために使用され、コンピュ
ータ・システム100に接続された他のコンピュータ・
システムの仮想メモリを含み得ることにも留意すべきで
ある。
【0017】各プロセッサ(例えば、プロセッサ11
0、112、...、118)は、1つ又は複数のマイ
クロプロセッサ及び(又は)集積回路から構成され得
る。各プロセッサは、メイン・メモリ120に記憶され
たプログラム命令を実行する。メイン・メモリ120
は、各プロセッサがアクセスし得るプログラム及びデー
タを記憶する。コンピュータ・システム100が始動す
る時、オペレーティング・システム122を立ち上げる
プログラム命令をそれらのプロセッサの1つが先ず実行
する。オペレーティング・システム122は、コンピュ
ータ・システム100のリソースを管理する複雑なプロ
グラムである。これらのリソースのいくつかは、プロセ
ッサ110、メイン・メモリ120、大容量記憶装置イ
ンターフェース130、ディスプレイ・インターフェー
ス140、ネットワーク・インターフェース150、及
びシステム・バス160である。
【0018】コンピュータ・システム100が単一のシ
ステム・バスしか含まないように示されているけれど
も、複数のバスを有するコンピュータ・システムを使用
して本発明を実施し得ることは当業者には明らかであろ
う。更に、望ましい実施例において使用されるインター
フェースは、それぞれ、個別の完全にプログラムされた
マイクロプロセッサであり、それらのプロセッサは、各
プロセッサから計算主体の処理をオフロードするために
使用される。しかし、同様の機能を遂行するために単に
I/Oアダプタを使用するコンピュータ・システムに本
発明が等しく適用することも当業者には明らかであろ
う。
【0019】ディスプレイ・インターフェース140
は、1つ又は複数のディスプレイ165をコンピュータ
・システム100に直接に接続するために使用される。
非インテリジェント(即ち、ダム)端末又は完全にプロ
グラム可能なワークステーションであってもよいこれら
のディスプレイ165は、システム管理者及びユーザが
コンピュータ・システム100とコミュニケーションを
行うことを可能にするために使用される。しかし、ディ
スプレイ・インターフェース140は1つ又は複数のデ
ィスプレイ165とのコミュニケーションをサポートす
るために設けられるけれども、ユーザ及び他のプロセッ
サとの必要なすべての相互作用がネットワーク150を
介して生じ得るので、コンピュータ・システム140は
必ずしもディスプレイ165を必要としないことに留意
してほしい。
【0020】ネットワーク・インターフェース150
は、他のコンピュータ・システム及び(又は)ワークス
テーション(例えば、図1におけるワークステーション
175)をコンピュータ・システム100に接続するた
めに使用される。本発明は、ネットワーク接続線170
が今日のアナログ及び(又は)ディジタル技法、或いは
将来の何らかのネットワーク機構を使用して作られるか
どうかに関係なく、たとえ如何にコンピュータ・システ
ム100が他のコンピュータ・システム及び(又は)ワ
ークステーションに接続されても等しく適用する。更
に、数多くの異なるネットワーク・プロトコルがネット
ワークをインプリメントするために使用され得る。これ
らのプロトコルは、コンピュータがネットワーク接続線
170を介して通信することを可能にする特殊のコンピ
ュータ・プログラムである。TCP/IP(伝送制御プ
ロトコル/インターネット・プロトコル)は適当なネッ
トワーク・プロトコルの一例である。
【0021】この時点では、本発明は、十分に機能的な
コンピュータ・システムに関連して説明されたし、説明
を続けられるけれども、本発明がプログラム製品として
種々の形態で分配され得ること及び本発明が、分配を実
際に行うために使用される特定のタイプのコンピュータ
可読信号保持媒体に関係なく、等しく適用することは当
業者には明らかであろう。適当なコンピュータ可読信号
保持媒体の例は、フロッピ・ディスク及びCD−ROM
(例えば、図1におけるCD−ROM195)のような
記録可能なタイプの媒体及びディジタル及びアナログ通
信リンクのような通信タイプの媒体を含む。
【0022】本明細書の残り部分は、従来技術のスレッ
ド・ディスパッチャの詳細な機能を説明し、それらの機
能と図1に示されたスレッド・ディスパッチャ124の
機能とを比較する。図1に示されるように、望ましい実
施例のスレッド・ディスパッチャ124は、システムに
おける各プロセッサのステータスを追跡するプロセッサ
・ステータス・トラッカ125によって表されるそれら
プロセッサのステータスに従って動作する。図2を参照
すると、従来技術においては、プロセッサは、(1)そ
のプロセッサが他のスレッドを扱うことができないこと
を意味するビジー状態、又は(2)そのプロセッサがス
レッドを扱うために使用可能であることを意味するスレ
ッド受付可能状態という2つの状態しか持つことができ
ない。これらが相互に排他的な状態であることに留意し
てほしい。プロセッサは、ビジーであるか又はスレッド
受付可能である。ハードウェア・マルチスレッドをディ
セーブルされた従来技術のマルチプロセッサである iSe
ries コンピュータ・システムの場合、プロセッサは、
1つのスレッドを実行している時にはビジーであり、そ
れがスレッドを実行していない場合にはスレッド受付可
能である。ハードウェア・マルチスレッドをイネーブル
された同じ iSeries コンピュータ・システムに対して
は、プロセッサは、それが2つのスレッドを実行してい
る場合にはビジーであり、(1)1つのスレッドを処理
している、又は(2)アイドル状態である場合にはスレ
ッド受付可能である。その従来技術において重要なこと
は、1つのスレッドを処理していること(プロセッサが
もう1つのスレッドを受け付けることができることを意
味する)及びアイドル状態であること(プロセッサが2
つのスレッドを受け付けることができることを意味す
る)の間の区別が行われないことである。両方のケース
とも、図2に示されるように「スレッド受付可能」とい
う状態に統一される。プロセッサ#1(210)は、ビ
ジー212又はスレッド受付可能214というステータ
スを有する。プロセッサ#2(220)は、ビジー22
2又はスレッド受付可能224というステータスを有す
る。プロセッサ#N(290)は、ビジー292又はス
レッド受付可能294というステータスを有する。従来
技術のシステムにおける他のすべてのプロセッサは、同
じ2つのステータス状態を有するであろう。
【0023】次に、従来技術のマルチプロセッサ・コン
ピュータ・システムにおいてスレッドをディスパッチす
るための図3における方法300を検討する。方法30
0は、スレッドがディスパッチされる必要がある時に開
始する(ステップ310)。他のスレッドを受け付ける
ことができるプロセッサが使用可能である場合(ステッ
プ330=イエス)、そのスレッドは、他のスレッドを
受け付けることができるプロセッサの1つにディスパッ
チされる(ステップ340)。他のスレッドを受け付け
ることができるプロセッサが使用可能でない場合(ステ
ップ330=ノー)、プロセッサがスレッドの処理を終
了して他のスレッドを受け付けることができるまで(ス
テップ330=イエス)、方法300はループ・バック
する。従来技術の方法300は、従来技術のシステムが
ハードウェア・マルチスレッドをイネーブルされている
又はイネーブルされていない従来技術のシステムを表
す。iSeries コンピュータ・システムに関しては、ハー
ドウェア・マルチスレッドがディセーブルされている場
合、各プロセッサは単一のスレッドしか処理することが
できない。ハードウェア・マルチスレッドがイネーブル
されている場合、各プロセッサは2つのスレッドを処理
することができる。プロセッサがアイドル状態にある場
合、それは2つのスレッドを受け付けることができる。
プロセッサが1つのスレッドを実行している場合でも、
それはもう1つのスレッドを受け付けることができる。
従って、ステップ330の「イエス」ブランチは、1つ
のスレッドを実行しているプロセッサと、いずれのスレ
ッドも実行していないプロセッサとの間の区別を行わな
い。その結果、ステップ340におけるスレッドのディ
スパッチは、プロセッサがもう1つのスレッドを引き受
けることができるかどうかを知ろうとするだけである。
これは、たとえ数多くのアイドル・プロセッサが使用可
能であるとしても、既にスレッドを実行しているプロセ
ッサに対するスレッドのディスパッチを導くことができ
る。
【0024】ハードウェア・マルチスレッドをイネーブ
ルされたマルチプロセッサ・コンピュータ・システムに
は、ステップ340においてスレッドをディスパッチす
るために従来技術で使用される3つの既知の方法が存在
する。その第1のものは、プロセッサが他のスレッドを
引き受けることができる場合にそれらのプロセッサにス
レッドを逐次に割り当てる逐次ディスパッチ方式であ
る。その例を説明するために、当初、如何なるスレッド
も実行されてないものと仮定する。この逐次ディスパッ
チ方式では、スレッド・ディスパッチャが第1のスレッ
ドを第1のプロセッサにディスパッチする。スレッド・
ディスパッチャが第2のスレッドを受け取る時、それ
は、第1のプロセッサが依然として他のスレッドを引き
受けることができることを知り、従って、それは第2の
スレッドを第1のプロセッサに割り当てる。この時点
で、第1のプロセッサは第1及び第2のスレッドを実行
していてビジー状態にあり、従って、第3のスレッドは
第2のプロセッサにディスパッチされる。第4のスレッ
ドがディスパッチされる時に最初の3つのスレッドが依
然として実行中であると仮定すると、第4のスレッドは
第2のプロセッサにディスパッチされるであろう。これ
は、各プロセッサが2つのスレッドを受け取った後にそ
のシーケンスにおける次のプロセッサが更なるスレッド
を受け取ることによって継続する。その結果は、過度な
スレッド・スプレッド(即ち、スレッド間の実行時間及
びトランザクション処理速度の可変性)である。
【0025】第2の既知のスレッド・ディスパッチ方式
は、もう1つのスレッドを引き受けることができるプロ
セッサを無作為に選択し、そのプロセッサにスレッドを
ディスパッチする。この方式も又、1つのプロセッサが
2つのスレッドを受け取った後にアイドル状態の他のプ
ロセッサが更なるスレッドを受け取るという結果になっ
て過度なスレッド・スプレッドを生じることが多い。
【0026】第3の既知のスレッド・ディスパッチ方式
は、プロセッサ・アフィニティに基づくものであり、プ
ロセッサが当該スレッドを処理した最後の時点からキャ
ッシュ内に存在し得るデータを利用することによりパフ
ォーマンス上の利点が得られるかも知れないという期待
を持って当該スレッドを前に処理したことがあるそのプ
ロセッサを選択する。この方式は、1つのプロセッサが
2つのスレッドを受け取った後にアイドル状態の他のプ
ロセッサが更なるスレッドを受け取るという結果になっ
て過度なスレッド・スプレッドを生じることが多いとい
う、上記他の2つの方式と同じ不利益をこうむる。これ
ら3つの既知のディスパッチ方式はいずれも図3のステ
ップ340において使用され得る。これらはすべて、こ
れらが、1つのスレッドを既に処理しているプロセッサ
とアイドル状態にあるプロセッサとの間を区別しないた
めに、過度なスレッド・スプレッドをこうむる。
【0027】図4を参照すると、望ましい実施例による
プロセッサ・ステータス・トラッカ125が各プロセッ
サに対して3つの可能な状態、即ち、(1)プロセッサ
が更なるスレッドを受け付けることができないことを意
味するビジー、(2)プロセッサが既にスレッドを実行
しているが更にもう1つのスレッドを受け付けることが
できる作業中、及び(3)プロセッサが現時点ではいず
れのスレッドも実行していないことを表すアイドル、を
追跡する。従って、図4では、プロセッサ#1(11
0)が、ビジー412、作業中であるがスレッド受付可
能414、又はアイドル416という状態を有し得る。
同様に、プロセッサ#2(112)が同じ3つの状態4
22、424、又は426の1つを有し得るし、プロセ
ッサ#N(118)が同じ3つの状態492、494、
又は496の1つを有し得るし、他の任意のプロセッサ
が同じ3つの状態の1つを有し得る。
【0028】次に、プロセッサ・ステータス・トラッカ
125は、アイドル・プロセッサと既に1つのスレッド
を処理しているが他のスレッドを処理し得るプロセッサ
との間の相違を追跡し、スレッド・ディスパッチャ12
4は、スレッド・スプレッドを少なくするように、スレ
ッドをディスパッチする時更にインテリジェントな判断
を行うことができる。図5を参照すると、望ましい実施
例による方法500は、図1に示されたスレッド・ディ
スパッチャ124によって行われることが望ましい。方
法500は、スレッドがディスパッチされる必要がある
時に開始する(ステップ510)。アイドル・プロセッ
サが使用可能である場合(ステップ520)、スレッド
はアイドル・プロセッサにディスパッチされる(ステッ
プ522)。アイドル・プロセッサは使用可能でない
が、他のスレッドを受け付けることができるワーキング
・プロセッサが存在する場合(ステップ530=イエ
ス)、そのスレッドは、他のスレッドを受け付けること
ができるワーキング・プロセッサの1つにディスパッチ
される(ステップ540)。使用可能なアイドル・プロ
セッサが存在せず(ステップ520=ノー)、他のスレ
ッドを受け付けることができるプロセッサがない場合
(ステップ530=ノー)、方法500は、プロセッサ
の1つがそれのスレッドの1つの実行を終了し、従っ
て、他のスレッドを受け付けることができるまでループ
・バックする。
【0029】方法500は、第2のスレッドをいずれか
のプロセッサにディスパッチする前にすべてのアイドル
・プロセッサがビジーにされるので、従来技術に対する
大きな改善である。一般に、アイドル・プロセッサは、
同時に2つのスレッドに作用しなければならないプロセ
ッサよりも更に速くスレッドを処理することができる。
このために、スレッド・ディスパッチャ124は、コン
ピュータ・システム100のパフォーマンスを大きく改
善し、コンピュータ・システム100がハードウェア・
マルチスレッドをイネーブルされたことにより SPECJBB
2000 ベンチマーク・テストに合格することができ、し
かもスレッド間の更に一貫性のある実行時間及びトラン
ザクション処理速度を提供することができるポイントま
でスレッド・スプレッドを更に大きく減少させる。スレ
ッド・スプレッドを減少させた結果、ユーザは更に満足
するであろうし、スループット及び応答時間に関するパ
フォーマンスの目標をずっと容易に達成することが可能
である。
【0030】本願において開示された望ましい実施例
は、アイドル・プロセッサとスレッドに作用しているが
依然として他のスレッドを受け付けることができるプロ
セッサとの間を区別することによってスレッドをより効
率的にディスパッチする方法を提供する。スレッドを先
ずアイドル・プロセッサにディスパッチすることによっ
て、スレッド・スプレッドは大きく減少する。それは、
アイドル・プロセッサが存在しない時にスレッドを既に
処理しているプロセッサにだけスレッドがディスパッチ
されるためである。これは、プロセッサ・リソースのよ
り良好な利用を助長してシステム・パフォーマンスを改
善し、スレッド・スプレッドを大きく減少させる。
【0031】本発明の技術的範囲内で多くの変更が可能
であることは当業者には明らかであろう。従って、本発
明は望ましい実施例に関して詳細に示され且つ説明され
たけれども、本発明の精神及び技術的範囲から逸脱する
ことなく形式及び詳細におけるこれらの及び別の変更を
行うことが可能であるということは当業者には明らかで
あろう。
【0032】まとめとして、本発明の構成に関して以下
の事項を開示する。
【0033】(1)各々が複数のスレッドを実行する能
力を有する複数のプロセッサと、前記複数のプロセッサ
に接続されたメモリと、前記メモリ内にあり、前記複数
のプロセッサの少なくとも1つによって実行されるスレ
ッド・ディスパッチ機構と、を含み、前記スレッド・デ
ィスパッチ機構は、前記複数のプロセッサのどれがアイ
ドル状態にあるか、前記複数のプロセッサのどれが更な
るスレッドを受け付けることができるか、及び前記複数
のプロセッサのどれが更なるスレッドを受け付けること
ができないかを決定し、アイドル状態のプロセッサが存
在する場合に新たなスレッドを該アイドル状態のプロセ
ッサにディスパッチする、装置。 (2)前記複数のプロセッサのいずれもアイドル状態に
ない場合、及び前記複数のプロセッサの少なくとも1つ
が更なるスレッドを受け付けることができる場合、前記
スレッド・ディスパッチ機構は前記複数のプロセッサの
うちの更なるスレッドを受け付けることができるプロセ
ッサに前記新たなスレッドをディスパッチする、上記
(1)に記載の装置。 (3)前記複数のプロセッサのすべてが更なるスレッド
を受け付けることができない場合、前記スレッド・ディ
スパッチ機構は、前記複数のプロセッサの1つがスレッ
ドの処理を終了し、それによって、更なるスレッドを受
け付けることができるプロセッサになるのを待ち、しか
る後、前記更なるスレッドを受け付けることができるプ
ロセッサに前記更なるスレッドをディスパッチする、上
記(1)に記載の装置。 (4)各々が複数のスレッドを実行することができる複
数のプロセッサを含むコンピュータ・システムにおいて
スレッドをディスパッチするための方法にして、前記複
数のプロセッサ各々のステータスを決定するステップ
と、アイドル・プロセッサが存在する場合、該アイドル
・プロセッサに新たなスレッドをディスパッチするステ
ップと、を含み、プロセッサは、それがいずれのスレッ
ドも実行していない場合にアイドル状態にあり、1つ又
は複数のスレッドに作用していてビジーであるが更なる
スレッドを処理する能力を有する場合に該更なるスレッ
ドを受け付けることができ、該プロセッサは、それが実
行し得る最大数のスレッドに作用していてビジーである
場合に更なるスレッドを受け付けることができない、方
法。 (5)前記複数のプロセッサのいずれもアイドル状態に
ない場合、及び前記複数のプロセッサの少なくとも1つ
が更なるスレッドを受け付けることができる場合、前記
複数のプロセッサのうちの前記更なるスレッドを受け付
けることができる1つのプロセッサに前記新しいスレッ
ドをディスパッチするステップを含む、上記(4)に記
載の方法。 (6)前記複数のプロセッサのすべてが更なるスレッド
を受け付けることができない場合、前記複数のプロセッ
サの1つがスレッドの処理を完了し、それによって、更
なるスレッドを受け付けることができるプロセッサとな
るのを待ち、しかる後、前記更なるスレッドを受け付け
ることができるプロセッサに前記更なるスレッドをディ
スパッチするステップを含む、上記(4)に記載の方
法。 (7)マルチプロセッサ・コンピュータ・システムにお
ける複数のプロセッサのどれがアイドル状態にあるか、
前記複数のプロセッサのどれが更なるスレッドを受け付
けることができるか、及び前記複数のプロセッサのどれ
が更なるスレッドを受け付けることができないかを決定
し、複数のスレッドを実行することができるアイドル・
プロセッサが存在する場合、該アイドル・プロセッサに
新たなスレッドをディスパッチするスレッド・ディスパ
ッチ機構と、前記スレッド・ディスパッチ機構を保持す
るコンピュータ可読信号保持媒体と、を含むコンピュー
タ・プログラム。 (8)前記コンピュータ可読信号保持媒体は記録可能媒
体を含む、上記(7)に記載のコンピュータ・プログラ
ム。 (9)前記コンピュータ可読信号保持媒体は伝送媒体を
含む、上記(7)に記載のコンピュータ・プログラム。 (10)前記複数のプロセッサのいずれもアイドル状態
にない場合、及び前記複数のプロセッサの少なくとも1
つが更なるスレッドを受け付けることができる場合、前
記スレッド・ディスパッチ機構は前記複数のプロセッサ
のうちの前記更なるスレッドを受け付けることができる
プロセッサに前記新たなスレッドをディスパッチする、
上記(7)に記載のコンピュータ・プログラム。 (11)前記複数のプロセッサのすべてが更なるスレッ
ドを受け付けることができない場合、前記複数のプロセ
ッサの1つがスレッドの処理を終了し、それによって、
更なるスレッドを受け付けることができるプロセッサと
なるのを待ち、しかる後、前記更なるスレッドを受け付
けることができるプロセッサに前記更なるスレッドをデ
ィスパッチする、上記(7)に記載のコンピュータ・プ
ログラム。
【図面の簡単な説明】
【図1】望ましい実施例による装置のブロック図であ
る。
【図2】従来技術のスレッド・ディスパッチ機構におい
てプロセッサ・ステータスを追跡する方法を示すブロッ
ク図である。
【図3】ハードウェア・マルチスレッドをイネーブルさ
れたマルチプロセッサ環境においてスレッドをディスパ
ッチするための従来技術の方法の流れ図である。
【図4】望ましい実施例によるスレッド・ディスパッチ
機構においてプロセッサ・ステータスを追跡する方法を
示すブロック図である。
【図5】望ましい実施例に従ってハードウェア・マルチ
スレッドをイネーブルされたマルチプロセッサ・システ
ムにおいてスレッドをディスパッチするための方法の流
れ図である。
【符号の説明】 100 コンピュータ・システム 120 メイン・メモリ 160 システム・バス 175 ワークステーション
───────────────────────────────────────────────────── フロントページの続き (72)発明者 リッキー・マール・ピーターソン アメリカ合衆国55944、ミネソタ州、マン タービル、607番ストリート 26443 Fターム(参考) 5B045 BB28 BB42 DD01 GG02 5B098 AA10 GA05 GA07 GC01 GD02 GD14

Claims (11)

    【特許請求の範囲】
  1. 【請求項1】各々が複数のスレッドを実行する能力を有
    する複数のプロセッサと、 前記複数のプロセッサに接続されたメモリと、 前記メモリ内にあり、前記複数のプロセッサの少なくと
    も1つによって実行されるスレッド・ディスパッチ機構
    と、 を含み、 前記スレッド・ディスパッチ機構は、前記複数のプロセ
    ッサのどれがアイドル状態にあるか、前記複数のプロセ
    ッサのどれが更なるスレッドを受け付けることができる
    か、及び前記複数のプロセッサのどれが更なるスレッド
    を受け付けることができないかを決定し、アイドル状態
    のプロセッサが存在する場合に新たなスレッドを該アイ
    ドル状態のプロセッサにディスパッチする、 装置。
  2. 【請求項2】前記複数のプロセッサのいずれもアイドル
    状態にない場合、及び前記複数のプロセッサの少なくと
    も1つが更なるスレッドを受け付けることができる場
    合、前記スレッド・ディスパッチ機構は前記複数のプロ
    セッサのうちの更なるスレッドを受け付けることができ
    るプロセッサに前記新たなスレッドをディスパッチす
    る、請求項1に記載の装置。
  3. 【請求項3】前記複数のプロセッサのすべてが更なるス
    レッドを受け付けることができない場合、前記スレッド
    ・ディスパッチ機構は、前記複数のプロセッサの1つが
    スレッドの処理を終了し、それによって、更なるスレッ
    ドを受け付けることができるプロセッサになるのを待
    ち、しかる後、前記更なるスレッドを受け付けることが
    できるプロセッサに前記更なるスレッドをディスパッチ
    する、請求項1に記載の装置。
  4. 【請求項4】各々が複数のスレッドを実行することがで
    きる複数のプロセッサを含むコンピュータ・システムに
    おいてスレッドをディスパッチするための方法にして、 前記複数のプロセッサ各々のステータスを決定するステ
    ップと、 アイドル・プロセッサが存在する場合、該アイドル・プ
    ロセッサに新たなスレッドをディスパッチするステップ
    と、 を含み、 プロセッサは、それがいずれのスレッドも実行していな
    い場合にアイドル状態にあり、1つ又は複数のスレッド
    に作用していてビジーであるが更なるスレッドを処理す
    る能力を有する場合に該更なるスレッドを受け付けるこ
    とができ、該プロセッサは、それが実行し得る最大数の
    スレッドに作用していてビジーである場合に更なるスレ
    ッドを受け付けることができない、 方法。
  5. 【請求項5】前記複数のプロセッサのいずれもアイドル
    状態にない場合、及び前記複数のプロセッサの少なくと
    も1つが更なるスレッドを受け付けることができる場
    合、前記複数のプロセッサのうちの前記更なるスレッド
    を受け付けることができる1つのプロセッサに前記新し
    いスレッドをディスパッチするステップを含む、請求項
    4に記載の方法。
  6. 【請求項6】前記複数のプロセッサのすべてが更なるス
    レッドを受け付けることができない場合、前記複数のプ
    ロセッサの1つがスレッドの処理を完了し、それによっ
    て、更なるスレッドを受け付けることができるプロセッ
    サとなるのを待ち、しかる後、前記更なるスレッドを受
    け付けることができるプロセッサに前記更なるスレッド
    をディスパッチするステップを含む、請求項4に記載の
    方法。
  7. 【請求項7】マルチプロセッサ・コンピュータ・システ
    ムにおける複数のプロセッサのどれがアイドル状態にあ
    るか、前記複数のプロセッサのどれが更なるスレッドを
    受け付けることができるか、及び前記複数のプロセッサ
    のどれが更なるスレッドを受け付けることができないか
    を決定し、複数のスレッドを実行することができるアイ
    ドル・プロセッサが存在する場合、該アイドル・プロセ
    ッサに新たなスレッドをディスパッチするスレッド・デ
    ィスパッチ機構と、 前記スレッド・ディスパッチ機構を保持するコンピュー
    タ可読信号保持媒体と、 を含むコンピュータ・プログラム。
  8. 【請求項8】前記コンピュータ可読信号保持媒体は記録
    可能媒体を含む、請求項7に記載のコンピュータ・プロ
    グラム。
  9. 【請求項9】前記コンピュータ可読信号保持媒体は伝送
    媒体を含む、請求項7に記載のコンピュータ・プログラ
    ム。
  10. 【請求項10】前記複数のプロセッサのいずれもアイド
    ル状態にない場合、及び前記複数のプロセッサの少なく
    とも1つが更なるスレッドを受け付けることができる場
    合、前記スレッド・ディスパッチ機構は前記複数のプロ
    セッサのうちの前記更なるスレッドを受け付けることが
    できるプロセッサに前記新たなスレッドをディスパッチ
    する、請求項7に記載のコンピュータ・プログラム。
  11. 【請求項11】前記複数のプロセッサのすべてが更なる
    スレッドを受け付けることができない場合、前記複数の
    プロセッサの1つがスレッドの処理を終了し、それによ
    って、更なるスレッドを受け付けることができるプロセ
    ッサとなるのを待ち、しかる後、前記更なるスレッドを
    受け付けることができるプロセッサに前記更なるスレッ
    ドをディスパッチする、請求項7に記載のコンピュータ
    ・プログラム。
JP2003025839A 2002-02-06 2003-02-03 マルチプロセッサ・コンピュータ・システムのためのスレッド・ディスパッチ機構及び方法 Expired - Fee Related JP4117202B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/068599 2002-02-06
US10/068,599 US7487504B2 (en) 2002-02-06 2002-02-06 Thread dispatch for multiprocessor computer systems

Publications (2)

Publication Number Publication Date
JP2003241980A true JP2003241980A (ja) 2003-08-29
JP4117202B2 JP4117202B2 (ja) 2008-07-16

Family

ID=27659072

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003025839A Expired - Fee Related JP4117202B2 (ja) 2002-02-06 2003-02-03 マルチプロセッサ・コンピュータ・システムのためのスレッド・ディスパッチ機構及び方法

Country Status (3)

Country Link
US (1) US7487504B2 (ja)
JP (1) JP4117202B2 (ja)
TW (1) TWI235952B (ja)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007517322A (ja) * 2003-12-29 2007-06-28 インテル・コーポレーション プロセッサにおける同時物理スレッド数からの論理スレッド数のデカップリング
JP2007317171A (ja) * 2006-04-27 2007-12-06 Matsushita Electric Ind Co Ltd マルチスレッド計算機システム、マルチスレッド実行制御方法
JP2008047126A (ja) * 2006-08-15 2008-02-28 Internatl Business Mach Corp <Ibm> 精密なcpu消費量データを用いてアフィニティをディスパッチする負荷バランサ
WO2008053789A1 (en) * 2006-10-31 2008-05-08 Semiconductor Energy Laboratory Co., Ltd. Semiconductor device
JP2008135018A (ja) * 2006-10-31 2008-06-12 Semiconductor Energy Lab Co Ltd 半導体装置
US8001549B2 (en) 2006-04-27 2011-08-16 Panasonic Corporation Multithreaded computer system and multithread execution control method
JP2013522710A (ja) * 2010-03-11 2013-06-13 ブル エスエーエス Itシステムの構成方法、そのコンピュータプログラムおよびitシステム

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7257516B2 (en) * 2001-09-20 2007-08-14 International Business Machines Corporation Method, apparatus, and program for eliminating thread skew in multithreaded performance benchmarks
US7555753B2 (en) * 2004-02-26 2009-06-30 International Business Machines Corporation Measuring processor use in a hardware multithreading processor environment
US7216223B2 (en) * 2004-04-30 2007-05-08 Hewlett-Packard Development Company, L.P. Configuring multi-thread status
FI118167B (fi) * 2004-10-26 2007-07-31 Konsultointi Martikainen Oy Menetelmä tehtävien jakamiseksi
US8195922B2 (en) * 2005-03-18 2012-06-05 Marvell World Trade, Ltd. System for dynamically allocating processing time to multiple threads
US20060212853A1 (en) * 2005-03-18 2006-09-21 Marvell World Trade Ltd. Real-time control apparatus having a multi-thread processor
US7934216B2 (en) * 2005-10-03 2011-04-26 International Business Machines Corporation Method and system for load balancing of computing resources
US7783866B2 (en) 2006-05-05 2010-08-24 International Business Machines Corporation Method and apparatus for executing instrumentation code using processor instructions
US8245199B2 (en) * 2006-05-05 2012-08-14 International Business Machines Corporation Selectively marking and executing instrumentation code
US7814466B2 (en) * 2006-05-05 2010-10-12 International Business Machines Corporation Method and apparatus for graphically marking instructions for instrumentation with hardware assistance
US7865703B2 (en) * 2006-05-05 2011-01-04 International Business Machines Corporation Method and apparatus for executing instrumentation code within alternative processor resources
US20070260849A1 (en) * 2006-05-05 2007-11-08 Chen Wen-Tzer T Method and apparatus for executing instrumentation code using a target processor
US7698540B2 (en) * 2006-10-31 2010-04-13 Hewlett-Packard Development Company, L.P. Dynamic hardware multithreading and partitioned hardware multithreading
US8122449B2 (en) * 2007-09-07 2012-02-21 International Business Machines Corporation Determining whether to retain or terminate a thread based on a minimum number of threads in a thread pool and a maximum number of threads allowed waiting on the channel
US8683471B2 (en) * 2008-10-02 2014-03-25 Mindspeed Technologies, Inc. Highly distributed parallel processing on multi-core device
US9703595B2 (en) * 2008-10-02 2017-07-11 Mindspeed Technologies, Llc Multi-core system with central transaction control
CN101403982B (zh) * 2008-11-03 2011-07-20 华为技术有限公司 一种多核处理器的任务分配方法和系统
US9594599B1 (en) * 2009-10-14 2017-03-14 Nvidia Corporation Method and system for distributing work batches to processing units based on a number of enabled streaming multiprocessors
US8402471B2 (en) * 2009-12-21 2013-03-19 At&T Intellectual Property I, L.P. Methods and apparatus to benchmark a computer system based on executing instructions using different numbers of threads
US8839256B2 (en) * 2010-06-09 2014-09-16 International Business Machines Corporation Utilization of special purpose accelerators using general purpose processors
US9021493B2 (en) 2012-09-14 2015-04-28 International Business Machines Corporation Management of resources within a computing environment
US9182807B2 (en) * 2012-12-31 2015-11-10 Hewlett-Packard Development Company, L.P. Systems and methods for predictive power management in a computing center
CN107430526B (zh) * 2015-03-24 2021-10-29 瑞典爱立信有限公司 用于调度数据处理的方法和节点
US10235736B2 (en) * 2017-04-21 2019-03-19 Intel Corporation Intelligent graphics dispatching mechanism
US10325341B2 (en) 2017-04-21 2019-06-18 Intel Corporation Handling pipeline submissions across many compute units
CN107391866B (zh) * 2017-07-31 2022-03-04 北京仿真中心 一种基于多处理器的aadl模型的可调度性分析方法
CN108363671B (zh) * 2018-02-07 2020-01-14 中国平安人寿保险股份有限公司 一种接口切换的方法、终端设备及存储介质
US11676013B2 (en) * 2019-12-30 2023-06-13 International Business Machines Corporation Job-launch time reduction by node pre-configuration
CN112131008B (zh) * 2020-09-28 2024-04-19 芯瞳半导体技术(山东)有限公司 一种调度线程束warp的方法、处理器及计算机存储介质

Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS58115569A (ja) * 1981-12-29 1983-07-09 Fuji Electric Co Ltd マルチプロセツサ方式
JPH01246657A (ja) * 1988-03-29 1989-10-02 Toshiba Corp 並列処理システム
JPH0660043A (ja) * 1992-08-11 1994-03-04 Nec Corp 負荷分散制御方式
JPH08292932A (ja) * 1995-02-24 1996-11-05 Matsushita Electric Ind Co Ltd マルチプロセッサシステムおよびマルチプロセッサシステムにおいてタスクを実行する方法
JPH09293057A (ja) * 1996-04-26 1997-11-11 Nec Corp 階層構造型マルチプロセッサシステムにおけるタスク割り当て方法
JP2684993B2 (ja) * 1994-08-10 1997-12-03 日本電気株式会社 プロセッサシステムとその制御方法
JPH1027168A (ja) * 1996-07-11 1998-01-27 Nec Corp メッセージ動的負荷分散方式
JPH11212929A (ja) * 1998-01-27 1999-08-06 Nec Commun Syst Ltd 負荷分散マルチプロセッサ方式によるプロセッサ決定方式
JPH11259318A (ja) * 1998-03-13 1999-09-24 Hitachi Ltd ディスパッチ方式
JP2954056B2 (ja) * 1996-12-26 1999-09-27 日本電気ソフトウェア株式会社 マルチプロセッサのプロセスディスパッチ方法
JP2998648B2 (ja) * 1995-08-28 2000-01-11 日本電気株式会社 負荷分散ジョブ処理システム
JP2000181729A (ja) * 1998-12-16 2000-06-30 Fujitsu Ltd プロセッサ資源選択方法ならびにそのためのプロセッサ資源選択システムおよびコンピュ−タ読み取り可能なプログラム記録媒体
JP2000305906A (ja) * 1999-04-20 2000-11-02 Hitachi Ltd 分散トランザクション制御装置

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4253146A (en) * 1978-12-21 1981-02-24 Burroughs Corporation Module for coupling computer-processors
US4245306A (en) * 1978-12-21 1981-01-13 Burroughs Corporation Selection of addressed processor in a multi-processor network
US4253144A (en) * 1978-12-21 1981-02-24 Burroughs Corporation Multi-processor communication network
US4240143A (en) * 1978-12-22 1980-12-16 Burroughs Corporation Hierarchical multi-processor network for memory sharing
US4924428A (en) * 1987-12-08 1990-05-08 Northern Telecom Limited Real time digital signal processor idle indicator
US5050070A (en) * 1988-02-29 1991-09-17 Convex Computer Corporation Multi-processor computer system having self-allocating processors
EP0403229A1 (en) * 1989-06-13 1990-12-19 Digital Equipment Corporation Method and apparatus for scheduling tasks in repeated iterations in a digital data processing system having multiple processors
US5301324A (en) * 1992-11-19 1994-04-05 International Business Machines Corp. Method and apparatus for dynamic work reassignment among asymmetric, coupled processors
US5907485A (en) * 1995-03-31 1999-05-25 Sun Microsystems, Inc. Method and apparatus for flow control in packet-switched computer system
US6728959B1 (en) * 1995-08-08 2004-04-27 Novell, Inc. Method and apparatus for strong affinity multiprocessor scheduling
US6292822B1 (en) * 1998-05-13 2001-09-18 Microsoft Corporation Dynamic load balancing among processors in a parallel computer
US6505229B1 (en) * 1998-09-25 2003-01-07 Intelect Communications, Inc. Method for allowing multiple processing threads and tasks to execute on one or more processor units for embedded real-time processor systems
US6658449B1 (en) * 2000-02-17 2003-12-02 International Business Machines Corporation Apparatus and method for periodic load balancing in a multiple run queue system
US6629075B1 (en) * 2000-06-09 2003-09-30 Speechworks International, Inc. Load-adjusted speech recogintion
US7178145B2 (en) * 2001-06-29 2007-02-13 Emc Corporation Queues for soft affinity code threads and hard affinity code threads for allocation of processors to execute the threads in a multi-processor system
US6912533B1 (en) * 2001-07-31 2005-06-28 Oracle International Corporation Data mining agents for efficient hardware utilization

Patent Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS58115569A (ja) * 1981-12-29 1983-07-09 Fuji Electric Co Ltd マルチプロセツサ方式
JPH01246657A (ja) * 1988-03-29 1989-10-02 Toshiba Corp 並列処理システム
JPH0660043A (ja) * 1992-08-11 1994-03-04 Nec Corp 負荷分散制御方式
JP2684993B2 (ja) * 1994-08-10 1997-12-03 日本電気株式会社 プロセッサシステムとその制御方法
JPH08292932A (ja) * 1995-02-24 1996-11-05 Matsushita Electric Ind Co Ltd マルチプロセッサシステムおよびマルチプロセッサシステムにおいてタスクを実行する方法
JP2998648B2 (ja) * 1995-08-28 2000-01-11 日本電気株式会社 負荷分散ジョブ処理システム
JPH09293057A (ja) * 1996-04-26 1997-11-11 Nec Corp 階層構造型マルチプロセッサシステムにおけるタスク割り当て方法
JPH1027168A (ja) * 1996-07-11 1998-01-27 Nec Corp メッセージ動的負荷分散方式
JP2954056B2 (ja) * 1996-12-26 1999-09-27 日本電気ソフトウェア株式会社 マルチプロセッサのプロセスディスパッチ方法
JPH11212929A (ja) * 1998-01-27 1999-08-06 Nec Commun Syst Ltd 負荷分散マルチプロセッサ方式によるプロセッサ決定方式
JPH11259318A (ja) * 1998-03-13 1999-09-24 Hitachi Ltd ディスパッチ方式
JP2000181729A (ja) * 1998-12-16 2000-06-30 Fujitsu Ltd プロセッサ資源選択方法ならびにそのためのプロセッサ資源選択システムおよびコンピュ−タ読み取り可能なプログラム記録媒体
JP2000305906A (ja) * 1999-04-20 2000-11-02 Hitachi Ltd 分散トランザクション制御装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
RENE AKERET ET AL., AIX 5L ディファレンス・ガイド バージョン5.1版, vol. 第1版, JPN6008016235, January 2002 (2002-01-01), JP, pages 476 - 477, ISSN: 0001019376 *

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007517322A (ja) * 2003-12-29 2007-06-28 インテル・コーポレーション プロセッサにおける同時物理スレッド数からの論理スレッド数のデカップリング
JP2007317171A (ja) * 2006-04-27 2007-12-06 Matsushita Electric Ind Co Ltd マルチスレッド計算機システム、マルチスレッド実行制御方法
US8001549B2 (en) 2006-04-27 2011-08-16 Panasonic Corporation Multithreaded computer system and multithread execution control method
JP2008047126A (ja) * 2006-08-15 2008-02-28 Internatl Business Mach Corp <Ibm> 精密なcpu消費量データを用いてアフィニティをディスパッチする負荷バランサ
WO2008053789A1 (en) * 2006-10-31 2008-05-08 Semiconductor Energy Laboratory Co., Ltd. Semiconductor device
JP2008135018A (ja) * 2006-10-31 2008-06-12 Semiconductor Energy Lab Co Ltd 半導体装置
US7840188B2 (en) 2006-10-31 2010-11-23 Semiconductor Energy Laboratory Co., Ltd. Semiconductor device
US8041309B2 (en) 2006-10-31 2011-10-18 Semiconductor Energy Laboratory Co., Ltd. Semiconductor device
US8396425B2 (en) 2006-10-31 2013-03-12 Semiconductor Energy Laboratory Co., Ltd. Semiconductor device
US9362984B2 (en) 2006-10-31 2016-06-07 Semiconductor Energy Laboratory Co., Ltd. Semiconductor device
JP2013522710A (ja) * 2010-03-11 2013-06-13 ブル エスエーエス Itシステムの構成方法、そのコンピュータプログラムおよびitシステム

Also Published As

Publication number Publication date
JP4117202B2 (ja) 2008-07-16
US7487504B2 (en) 2009-02-03
TWI235952B (en) 2005-07-11
US20030149716A1 (en) 2003-08-07
TW200404253A (en) 2004-03-16

Similar Documents

Publication Publication Date Title
JP4117202B2 (ja) マルチプロセッサ・コンピュータ・システムのためのスレッド・ディスパッチ機構及び方法
JP7313381B2 (ja) ハードウェアアクセラレーションのためのハードウェアリソースの埋込みスケジューリング
US6895585B2 (en) Method of mixed workload high performance scheduling
US7926062B2 (en) Interrupt and exception handling for multi-streaming digital processors
US8893148B2 (en) Performing setup operations for receiving different amounts of data while processors are performing message passing interface tasks
US20170329629A1 (en) System for selecting a task to be executed according to an output from a task control circuit
US7962910B2 (en) Selective generation of an asynchronous notification for a partition management operation in a logically-partitioned computer
US7251814B2 (en) Yield on multithreaded processors
US8127300B2 (en) Hardware based dynamic load balancing of message passing interface tasks
US7543306B2 (en) Method, system, and program for handling device interrupts in a multi-processor environment
US10402223B1 (en) Scheduling hardware resources for offloading functions in a heterogeneous computing system
US20110219373A1 (en) Virtual machine management apparatus and virtualization method for virtualization-supporting terminal platform
US20090183163A1 (en) Task Processing Device
US20120144146A1 (en) Memory management using both full hardware compression and hardware-assisted software compression
US20190188032A1 (en) Thread interrupt offload re-prioritization
JP6477260B2 (ja) アプリケーションを実行する方法及びリソースマネジャ
US8539491B1 (en) Thread scheduling in chip multithreading processors
CN115878301A (zh) 一种数据库网络负载性能的加速框架、加速方法及设备
US9158601B2 (en) Multithreaded event handling using partitioned event de-multiplexers
US20040215578A1 (en) Controlling usage of system resources by a network manager
JPH08292932A (ja) マルチプロセッサシステムおよびマルチプロセッサシステムにおいてタスクを実行する方法
KR102576443B1 (ko) 연산 장치 및 그 잡 스케줄링 방법
JP2003084989A (ja) プライオリティ動的制御方式、プライオリティ動的制御方法およびプライオリティ動的制御用プログラム
JP3227069B2 (ja) 入出力処理システム
KR100391513B1 (ko) 멀티 스레드를 이용한 네트워크의 병목현상 감소 방법

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20050901

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050913

RD12 Notification of acceptance of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7432

Effective date: 20051014

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20051014

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20051212

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060926

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20061222

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20061227

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070322

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070619

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070914

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20071113

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080206

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

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20080313

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

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20080415

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20080421

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110425

Year of fee payment: 3

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

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110425

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120425

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130425

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130425

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140425

Year of fee payment: 6

LAPS Cancellation because of no payment of annual fees