(57)【要約】【課題】二層マルチスレッド化構造で最適パフォーマンスのためにスレッドの置き換えを実施する方法および装置を提供すること。【解決手段】第１の層のスレッド状態ストレージは、限定された数の実行可能なスレッド・レジスタ状態を格納する。第２の層のスレッド・ストレージ機能は、限定された数の実行可能なスレッド・レジスタ状態よりも大きな第２の数のスレッド状態を格納する。各格納されたスレッド状態は事前定義された選択データを含む。第１の層のスレッド状態ストレージと第２の層のスレッド・ストレージ機能の間に結合された実行可能スレッド選択論理は、第１の層の限定された数の実行可能なスレッド・レジスタ状態と第２の層のスレッド・ストレージ機能の間でスレッド状態を選択的に交換するために、格納されている事前定義された選択データを使用する。【選択図】図２
2004110795.tif 000002
【特許請求の範囲】
【請求項１】
　二層マルチスレッド化構造で最適パフォーマンスのためにスレッドの置き換えを実施する装置において、
　限定された数の実行可能なスレッド・レジスタ状態を格納する第１の層のスレッド状態ストレージと、
　実行可能なスレッド・レジスタ状態の限定された数よりも大きな第２の数のスレッド状態を格納する第２の層のスレッド・ストレージ機能と
　を含み、
　各格納されたスレッド状態が特定のスレッド使用データを含む事前定義された選択データを含み、前記装置はさらに、
　前記格納されている事前定義された選択データを使用して、第１の層の限定された数の実行可能なスレッド・レジスタ状態と第２の層のスレッド・ストレージ機能の間でスレッド状態を選択的に交換するための、第１の層のスレッド状態ストレージと第２の層のスレッド・ストレージ機能の間に結合された実行可能スレッド選択論理を含む装置。
【請求項２】
　前記事前定義された選択データが各特定のスレッドに対するプロセッサ・サイクルの使用効率データを含む請求項１に記載の二層マルチスレッド化構造で最適パフォーマンスのためにスレッドの置き換えを実施する装置。
【請求項３】
　前記事前定義された選択データが、特定のスレッドがプロセッサで実行されてからの時間値が閾値を超すと枯渇状態を信号で知らせるために使用される前記時間値を含む請求項１に記載の二層マルチスレッド化構造で最適パフォーマンスのためにスレッドの置き換えを実施する装置。
【請求項４】
　前記事前定義された選択データが、システム優先順位の低いスレッドの前にシステム優先順位の高いスレッドを選択するために前記実行可能スレッド選択論理によって使用されるスレッド・システム優先順位を含む請求項１に記載の二層マルチスレッド化構造で最適パフォーマンスのためにスレッドの置き換えを実施する装置。
【請求項５】
　前記事前定義された選択データが、停止状態のスレッドが、その停止状態が解消されるまで前記二次スレッド・ストレージ機能から実行可能なスレッドに対する第１の層のスレッド・レジスタ状態に移動されないように前記実行可能なスレッド選択によって使用される実行準備済みインジケータを含む請求項１に記載の二層マルチスレッド化構造で最適パフォーマンスのためにスレッドの置き換えを実施する装置。
【請求項６】
　現在実行中のプロセッサの状態がアイドル・イベントで変更された場合に、次に実行するプロセッサで実行されるべき次に適切で実行可能なスレッドを選択するための前記格納されている事前定義された選択データを使用する、前記第１の層のスレッド状態ストレージの実行可能なスレッドをランク付けするランク付け論理を含む請求項１に記載の二層マルチスレッド化構造で最適パフォーマンスのためにスレッドの置き換えを実施する装置。
【請求項７】
　二層マルチスレッド化構造で最適パフォーマンスのためにスレッドの置き換えを実施する方法において、
　限定された数の実行可能なスレッド・レジスタ状態を格納している、高クロック・レートに対して最適化された第１の層の状態ストレージ論理を使用するステップと、
　実行可能なスレッド・レジスタ状態の前記限定された数よりも大きく、プロセッサで実行するためのすべてのスレッドに等しい第２の数のスレッド状態に関する状態と、特定のスレッド使用データを含む事前定義された選択データとを格納している第２の層のストレージ機能を使用するステップと、
　実行可能スレッド選択論理を使用し、前記スレッドのそれぞれに関する前記格納されている事前定義された選択データを処理し、前記事前定義された選択データに基づいて前記第１の層の状態ストレージ論理と前記第２の層のストレージ機能の間でスレッド状態を選択的に交換するステップと
　を含む方法。
【請求項８】
　第２の数のスレッド状態に関する前記状態と前記事前定義された選択データとを格納する、前記第２の層のストレージ機能を使用するステップが、各特定のスレッドに関するプロセッサ・サイクルの使用効率データを含めて前記事前定義された選択データを格納するステップを含む請求項７に記載の二層マルチスレッド化構造で最適パフォーマンスのためにスレッドの置き換えを実施する方法。
【請求項９】
　第２の数のスレッド状態に関する前記状態と前記事前定義された選択データとを格納する、前記第２の層のストレージ機能を使用するステップが、特定のスレッドがプロセッサで実行されてからの時間値が閾値を超すと枯渇状態を信号で知らせるために使用される前記時間値を含む前記事前定義された選択データを格納するステップを含む請求項７に記載の二層マルチスレッド化構造で最適パフォーマンスのためにスレッドの置き換えを実施する方法。
【請求項１０】
　第２の数のスレッド状態に関する前記状態と前記事前定義された選択データとを格納する、前記第２の層のストレージ機能を使用するステップが、システム優先順位の低いスレッドより先にシステム優先順位の高いスレッドを選択することを可能にするために前記実行可能スレッド選択論理によって使用されるスレッド・システム優先順位を含む前記事前定義された選択データを格納するステップを含む請求項７に記載の二層マルチスレッド化構造で最適パフォーマンスのためにスレッドの置き換えを実施する方法。
【請求項１１】
　第２の数のスレッド状態に関する前記状態と前記事前定義された選択データとを格納する、前記第２の層のストレージ機能を使用するステップが、停止状態のスレッドが、その停止状態が解消されるまで前記二次スレッド・ストレージ機能から実行可能なスレッドに対する第１の層のスレッド・レジスタ状態に移動されないように前記実行可能スレッド選択論理によって使用される実行準備済みインジケータを含む前記事前定義された選択データを格納するステップを含む請求項７に記載の二層マルチスレッド化構造で最適パフォーマンスのためにスレッドの置き換えを実施する方法。
【請求項１２】
　現在実行中のプロセッサの状態がアイドル・イベントで変更された場合にプロセッサで次に実行されるべき実行可能なスレッドを選択するために前記事前定義された選択データを使用して前記第１の層の実行可能なスレッド・レジスタ状態の実行可能なスレッドをランク付けするステップを含む請求項７に記載の二層マルチスレッド化構造で最適パフォーマンスのためにスレッドの置き換えを実施する方法。
【発明の詳細な説明】
【技術分野】
【０００１】
　本発明は、一般に、データ処理分野に関し、より詳細には、二層マルチスレッド化構造で最適パフォーマンスのためにスレッドの置き換えを実施する方法および装置に関する。
【背景技術】
【０００２】
　関連する米国特許出願番号10/246,937、Harold F. KossmanおよびTimothyJohn Mullinsによる「METHOD AND APPARATUS FOR IMPLEMENTING TWO-TIERED THREAD STATEMULTITHREADING SUPPORT WITH HIGH CLOCK RATE」は、本発明の譲渡人に譲渡され、本発明の出願と同日に出願された。
【０００３】
　ＣＰＵ内のハードウェアの効率は、処理タスクをスレッドと呼ばれる単独で実行可能な命令シーケンスに分割することによって向上する。何らかの理由でＣＰＵがこれらのスレッドの１つの処理または実行を継続できない場合、ＣＰＵは迅速に別のスレッドに切り替えて実行する。マルチスレッド化は、コンピュータ・システムの全体的な速度すなわちシステム・スループットを向上させるために有効な方法である。
【０００４】
　マルチスレッド化の設計技術は、プロセッサのパフォーマンスがクロック周波数に関して上がることを可能にする重要な手段となっている。過去のプロセッサ設計でパフォーマンスを低下させる停止状態が発生した場合、マルチスレッド化によってアクティビティの別個の並列スレッドによる命令の継続的な実行が可能になる。しかしクロック周波数が増えつづける場合、プロセッサが実行するための継続的に使用可能なオプションを提供するために、ハードウェアではより多くのスレッドをサポートすることが必要となる。
【特許文献１】米国特許出願番号10/246,937
【発明の開示】
【発明が解決しようとする課題】
【０００５】
　従来のハードウェア・マルチスレッド化方式は、ハードウェアのレジスタ・セットに格納されるべきいくつかの数のスレッド状態を規定している。これらのレジスタ・セットは、一般に、ピーク・パフォーマンスを達成するという利益のためにチップ面積、回路の速度などを含めて比較的高価なチップ設計コストで実施される。
【０００６】
　代替のマルチスレッド化設計は、複数の層の状態ストレージを使用する。例えば、第１の層すなわち第１のレベルの状態ストレージには高価なチップ資源コストではあるが限定されたスレッド保持容量を提供することができ、第２の層すなわち第２のレベルの状態ストレージにはスループット要求をサポートするがアクセスの速度は低速の追加のスレッド容量を提供することができる。第２のレベルの状態ストレージでサポートされるスレッドを第１のレベルの状態レジスタでサポートされるスレッドと交換することは、スレッドにプロセッサで実行する機会を与えるために必須である。単純なハードウェア方式は、ラウンド・ロビン・アルゴリズムのような簡単なアルゴリズムによって第２のレベルのスレッドを選択することができる。残念ながら、これは全体的には最適でないパフォーマンスの原因となる。何故ならば、マシンのスループット能力を完全に活用するには、プロセッサでスレッドが何時実行されるかに関する適切なスケジューリングが要求されるからである。
【０００７】
　第１のレベルの状態レジスタと交換するために第２のレベル状態ストレージから適切な次のスレッドを選別する方法を提供することによって最適でないパフォーマンスの問題を解決する機構が求められている。
【課題を解決するための手段】
【０００８】
　本発明の主な目的は、二層マルチスレッド化構造で最適パフォーマンスのためにスレッドの置き換えを実施する方法および装置を提供することである。本発明の他の重要な目的は、事実上悪影響なしに二層マルチスレッド化構造で最適パフォーマンスのためにスレッドの置き換えを実施するための、従来技術の構成の不利な点の多くを克服する方法および装置を提供することである。
【０００９】
　端的に言えば、二層マルチスレッド化構造で最適パフォーマンスのためにスレッドの置き換えを実施する方法および装置が提供される。第１の層のスレッド状態ストレージは、限定された数の実行可能なスレッド・レジスタ状態を格納する。第２の層のスレッド・ストレージ機能は、実行可能なスレッド・レジスタ状態の限定された数よりも大きな第２の数のスレッド状態を格納する。各格納されたスレッド状態は事前定義された選択データを含む。第１の層のスレッド状態ストレージと第２の層のスレッド・ストレージ機能の間に結合された実行可能スレッド選択論理は、第１の層の限定された数の実行可能なスレッド・レジスタ状態と第２の層のスレッド・ストレージ機能の間でスレッド状態を選択的に交換するために、格納された事前定義された選択データを使用する。
【００１０】
　本発明の特徴によれば、第１の層の実行可能なスレッド・レジスタ状態と第２の層のスレッド・ストレージ機能の間でスレッド状態を選択的に交換するために実行可能スレッド選択論理によって使用される格納されている事前定義された選択データは、特定のスレッド使用履歴データを含む。実行可能スレッド選択論理によって使用される格納された事前定義された選択データは、各特定のスレッドに対するプロセッサ・サイクルの使用効率を含む。格納されている事前定義された選択データは、実行可能スレッド選択論理によって枯渇状態を信号で知らせるために使用される、特定のスレッドがプロセッサで実行されてからの時間を含む。格納されている事前定義された選択データは、実行可能スレッド選択論理がシステム・ポリシーに従い、第１の層の実行可能なスレッド・レジスタ状態に移動するために優先順位の低いスレッドより先に優先順位の高いスレッドを選択することを可能にするためにスレッド・システム優先順位を含む。格納されている事前定義された選択データは、二次スレッド・ストレージ機能に維持されている停止したスレッドがその停止状態が解消されるまで起動されないように、実行準備済みインジケータを含む。格納された事前定義された選択データは、第１の層の実行可能なスレッド・レジスタ状態に維持されるべき実行可能なスレッドをランク付けするためのランク付け論理によって使用される。第１の層の実行可能なスレッド・レジスタ状態は、現在実行中のプロセッサの状態がアイドル・イベントで変更された場合の選択用に使用可能である。
【発明を実施するための最良の形態】
【００１１】
　本発明は、上記および他の目的および利点と共に、図面に示す本発明の好ましい実施形態の以下の詳細な説明から最もよく理解することができよう。
【００１２】
　図面を参照すると、図１には、好ましい実施形態の、参照文字１００で全体を示したマルチスレッド化選択構造が示されている。マルチスレッド化選択構造１００は、１０２および１０４で全体を示した二層のスレッド状態ストレージを含む。第１の層のスレッド状態ストレージ１０２は、高速クロック・レートに対して最適化された高速論理である。第１の層のスレッド状態ストレージ１０２は、プロセッサで実行するためにアクセスすることのできる実行可能なスレッド用の限定された数の実行可能なレジスタ状態を含む。いくつかのレジスタ論理の複製が特定の閾値よりも多く増える場合に起こりうるクロック・レートに対する不利益を回避するために、実行可能なレジスタ状態の限定された数は特定の閾値よりも小さい。第２の層のスレッド状態ストレージ１０４は、任意選択で第１の層の状態ストレージ１０２の高速論理よりも低速で動作する中速論理である。第２の層のスレッド状態ストレージ１０４は、ピーク・パフォーマンスを達成するために、ハードウェアのサポートを必要とするスレッドの完全な合計数に関する状態情報を保持するための容量を提供する。現在実行中のプロセッサの状態１０６がアイドル・イベントで変更された場合、次に実行するためには第１の層の実行可能なレジスタ状態１０２に格納されている実行可能なスレッドしか選択することはできない。第２の層１０４にだけ存在する状態を有するスレッドはプロセッサを使用することはできないが、実行可能スレッド選択論理１０８による高速選択に対しては使用可能である。
【００１３】
　好ましい実施形態の特徴によれば、最適なマルチスレッド化パフォーマンスはスレッド状態と共に保存されている情報を増やすことによって実現される。事前定義された選択データは、第１の層の実行可能なスレッド・レジスタ状態１０２と第２の層のスレッド・ストレージ機能１０４の間でスレッド状態を選択的に交換するために使用されるスレッド状態と共に格納される。この保存されている選択データを参照することによって、実行可能スレッド選択論理１０８は、プロセッサで実行するための第１の層の実行可能なレジスタ状態１０２の位置に移動するために適切なスレッドを選択することができる。具体的には、プロセッサ資源１０６の特定のスレッド使用に関する過去の履歴が維持され、スレッドの選択をランク付けするために使用される。
【００１４】
　次に図２を参照すると、好ましい実施形態によって追加のスレッド情報すなわち事前定義された選択データ２００は二次スレッド・ストレージ機能１０４に保存されている。事前定義された選択データ２００はプロセッサ・サイクル使用効率を含む。実行中にプロセッサの停止状態が頻繁に発生するスレッドは、プロセッサ資源の非効率的な使用の原因となる。キャッシュ・ミスおよび他の長期待ち時間イベントなどの事象はこれらの非効率性の一因となる。プロセッサで実行するために最も効率のよいスレッドをそれよりも効率の悪いスレッド以前にスケジューリングすることが一般的には望ましい。事前定義された選択データ２００は、特定のスレッドがアクティブである間に発生するプロセッサ・サイクル（または命令）を追跡するための実行サイクル・カウンタ２０２と、実行スレッドが遭遇する長期待ち時間イベントを追跡するための長期待ち時間イベント・カウンタ２０４を含む。サイクル当たりの（または命令当たりの）長期待ち時間イベントの比率は効率メトリックを設定する。この比率が高いほど、スレッドはそのプロセッサの使用のより低い効率性を示す。効率メトリック比率が最も低いスレッドは、プロセッサで次に実行するものとして選択するには最も望ましい。
【００１５】
　事前定義された選択データ２００は、特定のスレッドがプロセッサで最後に実行された時からの時間２０６を含む。スレッド状態と共に格納されているタイムスタンプ２０６によって、実行可能スレッド選択論理１０８はスレッドがプロセッサでどれだけ長期間非アクティブであるかを決定することができる。閾値を超えた場合、特定スレッドに対して枯渇状態が信号で知らされ、その特定のスレッドには、そのスレッドを非アクティブな状態に維持する他の判定基準があってもプロセッサで確実に実行されるような特別の優先順位を付与することができる。
【００１６】
　事前定義された選択データ２００はシステム優先順位２０８を含む。システム・アルゴリズムは、システム資源の競合が生じた場合にどのスレッドが有利な処置を受けるかに関するポリシーを設定することをしばしば必要とする。システム優先順位２０８をスレッド状態に保つことによって、実行可能スレッド選択論理１０８がそのようなシステム・ポリシーに従い、通常ならば実行可能な状態から外される可能性のある場合にプロセッサで実行するための優先順位の高いスレッドを選択する。
【００１７】
　事前定義された選択データ２００は実行準備済みインジケータ２１０を含む。より高いプロセッサのクロック周波数では、新しい実行を開始する機会が生じた場合にプロセッサを使用することが可能なハードウェアでサポートされるスレッドが多数ある。停止ポイントに達し、アクティブ実行１０６から切り替えられるスレッドは、第１の層の実行可能なスレッド・レジスタ状態１０２または第２の層のスレッド・ストレージ機能１０４にその状態を維持させ、停止が解消されると実行サイクルを再度競合する必要がある。そのようなスレッドが停止し、第２の層のスレッド・ストレージ機能１０４だけに保存されている状態を有する可能性がある期間中、それらのスレッドは実行可能な選択論理１０８でバイパスする必要がある。実行準備済みインジケータ２１０は、特定の状態が実行可能かどうかを評価するマシン・サイクルを消費せず、判定のために他のスレッドに移動するよう選択論理に信号で知らせるためにそれらのスレッド状態に維持される。停止状態が解消されるとこの実行準備済みインジケータ２１０はリセットされ、スレッドを再度実行することを可能にする。
【００１８】
　スレッドのランク付け２１２は、ランク付け選択論理２１４に、例えばソフトウェアによるなどしてセットされた指定の基準を使用して実行される。第２の層のスレッド・ストレージ機能１０４のいくつかの候補スレッドから１つのスレッドを選択する際の融通性を見込んでおくために、スレッド状態メトリックに対して事前定義された選択データ２００を使用して評価シーケンスを設定するために、システム・ソフトウェアには追加の機会が付与される。ランク付け選択論理２１４は、選択論理関数を実行し、総合ランクで最高位の１つのスレッドを選別するなどして、各メトリックに対してスレッドの相対的ランク付けを評価する。例えばランク付け選択論理２１４は、サイクル当たり最低長期待ち時間数の最高システム優先順位で、閾値を超す最高の枯渇時間を有する実行準備済みスレッドを選別するようソフトウェアによってセットアップすることができる。現在の基準を満たすスレッドがない場合、次の再評価では最も重要な選択属性がスキップされる。現在の基準を満たすスレッドが複数ある場合、ランダム選択を行うことができる。
【００１９】
　事前定義された選択データ２００を、プロセッサ・ハードウェアがサポートするスレッドに対して保存された状態に組み込むことによって、実行可能スレッド選択論理１０８は、現在アクティブなスレッドを非アクティブなスレッドと交換するために最適の選択を決定する。実行可能なスレッドが停止状態によって非アクティブになった場合、実行可能なスレッドに対するアクティブな第１の層の実行可能なレジスタ状態で、最適な動作履歴によって、別の選択を代用することによってプロセッサ資源は効率よく管理される。これによってマルチスレッド化プロセッサによる実現可能なピーク・パフォーマンスが実現し、現在の最先端技術のハードウェア管理方式のパフォーマンスを制限する効率の低下は回避される。
【００２０】
　本発明は、図面に示した本発明の実施形態の詳細を参照して説明したが、これらの詳細は首記の特許請求の範囲で請求するように本発明の範囲を限定することを目的とするものではない。
【００２１】
　まとめとして、本発明の構成に関して以下の事項を開示する。
【００２２】
（１）二層マルチスレッド化構造で最適パフォーマンスのためにスレッドの置き換えを実施する装置において、
　限定された数の実行可能なスレッド・レジスタ状態を格納する第１の層のスレッド状態ストレージと、
　実行可能なスレッド・レジスタ状態の限定された数よりも大きな第２の数のスレッド状態を格納する第２の層のスレッド・ストレージ機能と
　を含み、
　各格納されたスレッド状態が特定のスレッド使用データを含む事前定義された選択データを含み、前記装置はさらに、
　前記格納されている事前定義された選択データを使用して、第１の層の限定された数の実行可能なスレッド・レジスタ状態と第２の層のスレッド・ストレージ機能の間でスレッド状態を選択的に交換するための、第１の層のスレッド状態ストレージと第２の層のスレッド・ストレージ機能の間に結合された実行可能スレッド選択論理を含む装置。
（２）前記事前定義された選択データが各特定のスレッドに対するプロセッサ・サイクルの使用効率データを含む上記（１）に記載の二層マルチスレッド化構造で最適パフォーマンスのためにスレッドの置き換えを実施する装置。
（３）前記事前定義された選択データが、特定のスレッドがプロセッサで実行されてからの時間値が閾値を超すと枯渇状態を信号で知らせるために使用される前記時間値を含む上記（１）に記載の二層マルチスレッド化構造で最適パフォーマンスのためにスレッドの置き換えを実施する装置。
（４）前記事前定義された選択データが、システム優先順位の低いスレッドの前にシステム優先順位の高いスレッドを選択するために前記実行可能スレッド選択論理によって使用されるスレッド・システム優先順位を含む上記（１）に記載の二層マルチスレッド化構造で最適パフォーマンスのためにスレッドの置き換えを実施する装置。
（５）前記事前定義された選択データが、停止状態のスレッドが、その停止状態が解消されるまで前記二次スレッド・ストレージ機能から実行可能なスレッドに対する第１の層のスレッド・レジスタ状態に移動されないように前記実行可能なスレッド選択によって使用される実行準備済みインジケータを含む上記（１）に記載の二層マルチスレッド化構造で最適パフォーマンスのためにスレッドの置き換えを実施する装置。
（６）現在実行中のプロセッサの状態がアイドル・イベントで変更された場合に、次に実行するプロセッサで実行されるべき次に適切で実行可能なスレッドを選択するための前記格納されている事前定義された選択データを使用する、前記第１の層のスレッド状態ストレージの実行可能なスレッドをランク付けするランク付け論理を含む上記（１）に記載の二層マルチスレッド化構造で最適パフォーマンスのためにスレッドの置き換えを実施する装置。
（７）二層マルチスレッド化構造で最適パフォーマンスのためにスレッドの置き換えを実施する方法において、
　限定された数の実行可能なスレッド・レジスタ状態を格納している、高クロック・レートに対して最適化された第１の層の状態ストレージ論理を使用するステップと、
　実行可能なスレッド・レジスタ状態の前記限定された数よりも大きく、プロセッサで実行するためのすべてのスレッドに等しい第２の数のスレッド状態に関する状態と、特定のスレッド使用データを含む事前定義された選択データとを格納している第２の層のストレージ機能を使用するステップと、
　実行可能スレッド選択論理を使用し、前記スレッドのそれぞれに関する前記格納されている事前定義された選択データを処理し、前記事前定義された選択データに基づいて前記第１の層の状態ストレージ論理と前記第２の層のストレージ機能の間でスレッド状態を選択的に交換するステップと
　を含む方法。
（８）第２の数のスレッド状態に関する前記状態と前記事前定義された選択データとを格納する、前記第２の層のストレージ機能を使用するステップが、各特定のスレッドに関するプロセッサ・サイクルの使用効率データを含めて前記事前定義された選択データを格納するステップを含む上記（７）に記載の二層マルチスレッド化構造で最適パフォーマンスのためにスレッドの置き換えを実施する方法。
（９）第２の数のスレッド状態に関する前記状態と前記事前定義された選択データとを格納する、前記第２の層のストレージ機能を使用するステップが、特定のスレッドがプロセッサで実行されてからの時間値が閾値を超すと枯渇状態を信号で知らせるために使用される前記時間値を含む前記事前定義された選択データを格納するステップを含む上記（７）に記載の二層マルチスレッド化構造で最適パフォーマンスのためにスレッドの置き換えを実施する方法。
（１０）第２の数のスレッド状態に関する前記状態と前記事前定義された選択データとを格納する、前記第２の層のストレージ機能を使用するステップが、システム優先順位の低いスレッドより先にシステム優先順位の高いスレッドを選択することを可能にするために前記実行可能スレッド選択論理によって使用されるスレッド・システム優先順位を含む前記事前定義された選択データを格納するステップを含む上記（７）に記載の二層マルチスレッド化構造で最適パフォーマンスのためにスレッドの置き換えを実施する方法。
（１１）第２の数のスレッド状態に関する前記状態と前記事前定義された選択データとを格納する、前記第２の層のストレージ機能を使用するステップが、停止状態のスレッドが、その停止状態が解消されるまで前記二次スレッド・ストレージ機能から実行可能なスレッドに対する第１の層のスレッド・レジスタ状態に移動されないように前記実行可能スレッド選択論理によって使用される実行準備済みインジケータを含む前記事前定義された選択データを格納するステップを含む上記（７）に記載の二層マルチスレッド化構造で最適パフォーマンスのためにスレッドの置き換えを実施する方法。
（１２）現在実行中のプロセッサの状態がアイドル・イベントで変更された場合にプロセッサで次に実行されるべき実行可能なスレッドを選択するために前記事前定義された選択データを使用して前記第１の層の実行可能なスレッド・レジスタ状態の実行可能なスレッドをランク付けするステップを含む上記（７）に記載の二層マルチスレッド化構造で最適パフォーマンスのためにスレッドの置き換えを実施する方法。
【図面の簡単な説明】
【００２３】
【図１】好ましい実施形態による二層マルチスレッド化選択構造のブロック図である。
【図２】好ましい実施形態による格納されている事前定義された選択データを使用した実行可能スレッド選択論理の動作を示すブロック図である。
【符号の説明】
【００２４】
　２００　事前定義された選択データ
　２０２　実行サイクル・カウンタ
　２０４　長期待ち時間イベント・カウンタ
　２０６　プロセッサで最後に実行された時からの時間
　２０８　システム優先順位
　２１０　実行準備済みインジケータ
　２１４　ランク付け選択論理
【図１】
2004110795.tif 000003
【図２】
2004110795.tif 000004