JP2002108630A - スレッド能力を変更する方法、マルチスレッド・コンピュータ・システム、及びマルチスレッド・プロセッサ - Google Patents
スレッド能力を変更する方法、マルチスレッド・コンピュータ・システム、及びマルチスレッド・プロセッサInfo
- Publication number
- JP2002108630A JP2002108630A JP2001242917A JP2001242917A JP2002108630A JP 2002108630 A JP2002108630 A JP 2002108630A JP 2001242917 A JP2001242917 A JP 2001242917A JP 2001242917 A JP2001242917 A JP 2001242917A JP 2002108630 A JP2002108630 A JP 2002108630A
- Authority
- JP
- Japan
- Prior art keywords
- thread
- register
- threaded
- threads
- array
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 60
- 238000012360 testing method Methods 0.000 claims abstract description 37
- 230000002950 deficient Effects 0.000 claims abstract description 25
- 210000000352 storage cell Anatomy 0.000 claims description 45
- 238000003491 array Methods 0.000 claims description 26
- 238000012545 processing Methods 0.000 claims description 26
- 238000011990 functional testing Methods 0.000 claims description 16
- 230000005055 memory storage Effects 0.000 claims description 12
- 238000007664 blowing Methods 0.000 claims description 6
- 238000004891 communication Methods 0.000 claims description 6
- 239000011159 matrix material Substances 0.000 claims description 4
- 238000013500 data storage Methods 0.000 claims description 3
- 238000001514 detection method Methods 0.000 claims description 3
- 230000007547 defect Effects 0.000 abstract description 6
- 230000006870 function Effects 0.000 abstract description 4
- 230000002596 correlated effect Effects 0.000 abstract 1
- 238000010586 diagram Methods 0.000 description 8
- 210000004027 cell Anatomy 0.000 description 6
- 230000008569 process Effects 0.000 description 5
- 230000008859 change Effects 0.000 description 4
- 238000013461 design Methods 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 238000007667 floating Methods 0.000 description 2
- 238000010998 test method Methods 0.000 description 2
- 241001527902 Aratus Species 0.000 description 1
- 102100029774 Eukaryotic translation initiation factor 1b Human genes 0.000 description 1
- 101100321670 Fagopyrum esculentum FA18 gene Proteins 0.000 description 1
- 229910001218 Gallium arsenide Inorganic materials 0.000 description 1
- 101001012792 Homo sapiens Eukaryotic translation initiation factor 1b Proteins 0.000 description 1
- 230000003466 anti-cipated effect Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 239000013256 coordination polymer Substances 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 230000007257 malfunction Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/28—Error detection; Error correction; Monitoring by checking the correct order of processing
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/18—Address generation devices; Devices for accessing memories, e.g. details of addressing circuits
- G11C29/26—Accessing multiple arrays
-
- 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/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3851—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution from multiple instruction streams, e.g. multistreaming
-
- 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/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3861—Recovery, e.g. branch miss-prediction, exception handling
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/44—Indication or identification of errors, e.g. for repair
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/70—Masking faults in memories by using spares or by reconfiguring
- G11C29/78—Masking faults in memories by using spares or by reconfiguring using programmable devices
- G11C29/80—Masking faults in memories by using spares or by reconfiguring using programmable devices with improved layout
- G11C29/816—Masking faults in memories by using spares or by reconfiguring using programmable devices with improved layout for an application-specific layout
- G11C29/818—Masking faults in memories by using spares or by reconfiguring using programmable devices with improved layout for an application-specific layout for dual-port memories
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C2029/0401—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals in embedded memories
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/70—Masking faults in memories by using spares or by reconfiguring
- G11C29/88—Masking faults in memories by using spares or by reconfiguring with partially good memories
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C8/00—Arrangements for selecting an address in a digital store
- G11C8/16—Multiple access memory array, e.g. addressing one storage element via at least two independent addressing line groups
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Quality & Reliability (AREA)
- Debugging And Monitoring (AREA)
- Executing Machine-Instructions (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
- Microcomputers (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
つ又は複数のスレッドを選択的に不能にする。 【解決手段】各々のスレッドの機能を別々にテストし
て、スレッドが、欠陥のあるレジスタ/アレイを有する
かどうかを識別し、もし欠陥があれば、又は他の理由に
よって、そのスレッドに固有のレジスタ/アレイへのア
クセスを選択的に不能にする。マルチスレッド・レジス
タ/アレイ内の個々の記憶要素を不能にすることがで
き、また、障害を起こしたスレッドに関連づけられたハ
ードウェア・レジスタへのアクセス、又はハードウェア
・レジスタ内の個々のビットへのアクセスを不能にする
ことができる。不能にされたスレッドのデータ及び命令
を、他のスレッドへ回送する手法が使用可能である。好
ましくは、プロセッサが販売される前に、テストが実行
されてレジスタ/アレイへのアクセスを不能にする方法
が完了される。
Description
ウェア・マルチスレッド・コンピュータ処理の分野に関
し、更に具体的には、ハードウェア・マルチスレッド・
コンピュータ・プロセッサが実行することができるスレ
ッドの数を変更する方法に関する。
ュータ・プロセッサは、設計されたハードウェア・プロ
セッサ内の複数のスレッドの状態を、プロセッサ・コア
内に保全する。各々のハードウェア・レジスタが固有の
スレッドに関連づけられている場合、ハードウェア・レ
ジスタを単に変更することによって、幾つかのスレッド
をマルチスレッド・プロセッサの中で実行してよい。プ
ロセッサはマシン・サイクルごとにレジスタを変更して
よいか、又は、例えば、プロセッサが、より遠いキャッ
シュ又はメモリからのデータ又は命令を待っているため
にアイドル状態にあるとき、プロセッサはレジスタを切
り替えてよい(即ち、スレッドを切り替えてよい)。
及び特殊目的レジスタ及び他のマルチスレッド・メモリ
・アレイは、読み出し独立性を無視するマルチスレッド
のために専門化されてきた。マルチスレッド・レジスタ
/アレイは、依然として、マトリックスとして配列され
た記憶セルを有するが、各々の記憶セルは多数の記憶要
素を有し、各々の記憶要素は動作の固有のスレッドに関
連づけられている。ハードウェア・マルチスレッド処理
は、パフォーマンスの予想を越え、コンピュータ・アー
キテクチャの規範的パラダイムとなりつつある。
レッドを不能にすることが望ましい場合がある。これ
は、マルチスレッド・プロセッサが、単一スレッド・プ
ロセッサとしてのみ機能することが必要である場合であ
る。マルチスレッド・プロセッサが単一スレッド・プロ
セッサとしてのみ機能する必要がある場合の例は、プロ
セッサが製造された後、顧客へ販売される前に、プロセ
ッサの設計をテストするプロセッサ・ブリングアップ
(bring-up)テストの場合である。単一スレッド処理が
好ましい他の場合は、マルチスレッド能力を使用するよ
うにプログラムされていないオペレーティング・システ
ムと共に、プロセッサが使用される場合である。
又は複数のスレッドを不能にすることが好ましい他の場
合は、マルチスレッド・レジスタ/アレイに欠陥が生じ
て、コンピュータ障害となる場合である。コンピュータ
のコンポーネントが組み立てられてアセンブルされた後
のコンピュータ障害を避けるため、多くの製造業者は、
コンピュータが顧客へ販売される前に、プロセッサ及び
メモリ・コンポーネントをテストし、誤りを有するコン
ピュータ・コンポーネントを除去する。プロセッサ障害
の1つのタイプは、特に、プロセッサ・コア内の汎用及
び特殊目的レジスタのAC欠陥、及び正常な使用のもと
でコンポーネントにストレスを加えることによって生じ
たコンピュータのメイン・ランダム・アクセス・メモリ
のAC欠陥に帰せられてよい。更に、プロセッサのレジ
スタ/アレイは、LBIST及びABISTを受けるか
も知れない。これらのテストは、必要な時間にビットを
掴んで保持するディジタル記憶装置の能力をテストす
る。現在、マルチスレッド・プロセッサが、これらのテ
ストの1つに失敗すると、それは捨てられる。
つかのスレッドだけに固有であって、他のスレッドは正
常に実行できるかも知れない。従って、マルチスレッド
・プロセッサが多数のスレッドを処理できなくても、そ
れは、より少数のスレッド又は1つだけのスレッドを処
理できるかも知れない。プロセッサは、縮小された能力
と共に販売されたとき、救うことのできる価値を有する
が、もしプロセッサが捨てられると、その価値は失われ
てしまう。
ド・プロセッサ内で実行可能なスレッドの数を縮小し
て、単一スレッド・モード又は縮小スレッド・モードで
処理できるプロセッサ能力を維持する必要性が産業界に
存在する。更に、プロセッサが、その縮小されたスレッ
ド能力と共に販売及び使用されることができ、またプロ
セッサが、正常な単一スレッド処理、又は欠陥のある記
憶セルを有しない縮小された数の他のスレッドのマルチ
スレッド処理を実行できるように、この縮小されたスレ
ッド能力を実行できるプロセッサを救助する必要性が存
在する。
に、マルチスレッド記憶要素を有するマルチスレッド・
レジスタ及び、又はメモリ・アレイの欠陥を検出する必
要性が、マルチスレッド・コンピュータ産業界に存在す
る。もし障害を起こしたスレッドに関連づけられたマル
チスレッド・メモリ又はレジスタ内の記憶要素のみを、
プロセッサで使用できないようにすれば、プロセッサ自
体は、捨てられる必要はないであろう。欠陥のある記憶
要素に関連づけられたスレッドのスレッド処理は、適正
に機能するスレッドの記憶要素へ回送されることができ
る。
業者に明らかとなるであろう他の必要性は、複数のスレ
ッドを実行することができるハードウェア・マルチスレ
ッド・コンピュータ処理システムのスレッド能力を変更
する方法によって満足させられる。この方法は、各々の
スレッドに固有に関連づけられたレジスタ/アレイの障
害を分離することができるテストを実行し、少なくとも
1つのレジスタ/アレイの障害を検出して、障害を起こ
したレジスタ/アレイが固有に関連づけられたスレッド
を記録し、障害を起こしたレジスタ/アレイを有するス
レッドに関連づけられた全てのレジスタ/アレイへのア
クセスを不能にし、検出された障害を有しない他のスレ
ッドに固有に関連づけられた全てのレジスタ/アレイへ
のアクセスを維持するステップを含む。更に、各々のス
レッドに固有に関連づけられたレジスタ/アレイの障害
を分離することができるテストを実行するステップは、
レジスタ/アレイの臨界セクションを働かせるストレス
のもとで顧客のパフォーマンス要件を代表する符号化命
令を実行することを含む。更に、テストは、ロジック・
ビルトイン・セルフ・テスト(LBIST)及び、又は
アレイ・ビルトイン・セルフ・テスト(ABIST)を
含んでよい。
ルチスレッド・レジスタ/アレイを含み、各々の記憶セ
ルは、1つのスレッドに固有に関連づけられた1つの記
憶要素を有してよい。
有するスレッドに関連づけられた全てのレジスタ/アレ
イへのアクセスを不能にするステップは、障害を起こし
たレジスタ/アレイを有するスレッドに関係するレジス
タ/アレイへの読み出し/書き込みポートを切断するた
めヒューズを飛ばすことを含む。代替の実施形態におい
て、障害を起こした少なくとも1つのレジスタ/アレイ
が固有に関連づけられたスレッドに関連づけられた全て
のレジスタ/アレイへのアクセスを不能にするステップ
は、スレッドのハードウェア・スレッド切り替えイベン
ト制御レジスタ内の複数のスレッド切り替え制御イベン
トのいずれかを不能にすることを含む。更に、他の実施
形態によって予想されることとして、障害を起こした少
なくとも1つのレジスタ/アレイが固有に関連づけられ
たスレッドに関連づけられた全てのレジスタ/アレイへ
のアクセスを不能にするステップは、マイクロコード命
令を実行することによって、スレッド切り替え命令を生
成することを含む。
ることができるハードウェア・マルチスレッド・コンピ
ュータ処理システムのスレッド能力を変更する方法と考
えられる。この方法は、マルチスレッド・レジスタ/ア
レイ内の記憶要素の障害を分離する機能テストを実行
し、マルチスレッド・レジスタ/アレイは記憶セルのマ
トリックスとして配列され、更に、各々の記憶セルは複
数の記憶要素を含み、各々の記憶要素は多数のスレッド
の各々に固有に対応し、少なくとも1つの記憶要素の障
害を検出して、障害を起こした少なくとも1つの記憶要
素が固有に関連づけられた特定のスレッドを記録し、障
害を起こした少なくとも1つの記憶要素に関連づけられ
た特定のスレッドに固有に対応する全ての記憶要素を不
能にし、特定のスレッドのデータを、他のスレッドに固
有に関連づけられた記憶要素へ回送するステップを含
む。
ての記憶要素を不能にする前記ステップは、他のスレッ
ドに関連づけられた個々の記憶要素の中の他の記憶要素
を選択するため、マルチスレッド・コンピュータの中で
マイクロコード命令を実行することによって、スレッド
切り替え信号を生成することを含んでよい。
た全ての記憶要素を不能にする前記ステップは、更に、
ヒューズを飛ばすことを含む。ヒューズは、特定のスレ
ッドの全ての記憶要素へ接続された全ての読み出し/書
き込みポートに置かれてよい。ヒューズは、スレッド切
り替えイベント制御レジスタに置かれて、特定のスレッ
ドに対するスレッド切り替えイベント制御レジスタの全
て又は一部分を不能にしてよく、又は、ヒューズは、ス
レッド切り替えイベント制御レジスタ内の個々のビット
へ接続されて、個々のビットが特定のスレッドを不能に
してよい。更に、ヒューズは、特定のスレッドに関係す
るスレッド状態レジスタへ接続されよい。即ち、明確に
は、ヒューズは、非活動状態を有するスレッドとして特
定のスレッドをマークするため、スレッド状態レジスタ
の個々のビットへ接続されてよい。
スレッドを不能にすることができるマルチスレッド・コ
ンピュータ・システムと考えられる。このマルチスレッ
ド・コンピュータ・システムは、少なくとも1つのマル
チスレッド・コンピュータ・プロセッサと、マルチスレ
ッド・コンピュータ・プロセッサにおける動作の複数の
スレッドの各々に対する少なくとも1つのスレッド切り
替え制御レジスタと、各々の記憶セルが動作の1つのス
レッドに固有に関連づけられた記憶要素を有するマルチ
スレッド記憶セルを有する少なくとも1つのハードウェ
ア・マルチスレッド・メモリ/レジスタ・アレイと、少
なくとも1つのマルチスレッド・コンピュータ・プロセ
ッサに接続されたメイン・メモリと、複数のデータ記憶
装置、1つ又は複数の外部通信ネットワーク、コンピュ
ータ・プロセッサとの間でユーザ入力を与える1つ又は
複数の入力/出力装置から成るグループの少なくとも1
つへ、マルチスレッド・コンピュータ・プロセッサ及び
メイン・メモリを接続するバス・インタフェースとを含
む。更に、装置は、プロセッサの最初のブリングアップ
の間に少なくとも1つのマルチスレッド・コンピュータ
・プロセッサ内で動作の少なくとも1つのスレッドの機
能テストを実行する機能テスト生成手段と、機能テスト
を受けている動作の少なくとも1つのスレッドに固有に
関連づけられた記憶要素の障害を検出する記憶要素障害
検出手段と、マルチスレッド記憶セル内で機能テストを
受けている動作の少なくとも1つのスレッドに関連づけ
られた全ての記憶要素を不能にする記憶要素不能手段と
を含む。
る手段と、複数のスレッドの各々の状態を、マルチスレ
ッド・プロセッサ内のハードウェア・レジスタに記憶す
る手段と、個々のスレッドに関係するメモリ記憶要素に
欠陥があるかどうかを検出する手段と、欠陥があるメモ
リ記憶要素へのアクセスを不能にする手段と、欠陥がな
い他のメモリ記憶要素へのアクセスを維持する手段と、
欠陥があるメモリ記憶要素に関係する個々のスレッドの
処理及び記憶を、欠陥があるメモリ記憶要素を有しない
少なくとも1つの他のスレッドへリダイレクトする手段
とを含むマルチスレッド・プロセッサであると見ること
ができる。
て選択的に不能にされることができるマルチスレッド記
憶セルを含むレジスタを有するコンピュータ・システム
100の主なハードウェア・コンポーネントが、図1に
示される。中央処理ユニット(CPU)101A及び1
01Bは、メイン・メモリ102からの命令及びデータ
の上で基本的マシン処理を実行するときハードウェア・
マルチスレッド動作をサポートする。各々のCPU10
1A及び101Bは、それぞれの内部レベル1命令キャ
ッシュ106A、106B(L1 Iキャッシュ)、及
びレベル1データ・キャッシュ107A、107B(L
1 Dキャッシュ)を含む。各々のL1 Iキャッシュ
106A、106Bは、そのCPUによって実行される
命令を記憶する。各々のL1 Dキャッシュは、そのC
PUによって処理される命令以外のデータを記憶する。
各々のCPU101A、101Bは、それぞれのレベル
2キャッシュ(L2キャッシュ)108A、108Bへ
結合される。レベル2キャッシュ108A、108B
は、命令及びデータの双方を保持するために使用される
ことができる。メモリ・バス109は、CPU及びメモ
リの間でデータを転送する。更に、CPU101A、1
01B及びメモリ102は、メモリ・バス109及びバ
ス・インタフェース105を介して、システムI/Oバ
ス110と通信する。様々なI/O処理ユニット(IO
P)111〜115が、システムI/Oバス110に取
り付けられ、様々な記憶装置及びI/O装置、例えば直
接アクセス記憶装置(DASD)、テープ・ドライブ、
ワークステーション、プリンタ、及び遠隔装置又は他の
コンピュータ・システムと通信する遠隔通信線との通信
をサポートする。記述を簡単にするため、CPU、L1
Iキャッシュ、L1 Dキャッシュ、及びL2キャッ
シュは、ここでは、それぞれ参照番号101、106、
107、及び108と略記される。様々なバスが図1に
示されるが、これらは、様々な通信路を概念レベルで表
すように意図されており、バスの実際の物理構成は変わ
るかも知れず、実際に、もっと複雑であることを理解す
べきである。更に、図1はシステム構成の1つの例とし
て意図されており、コンピュータ・システムにおけるコ
ンポーネントの実際の数、タイプ、及び構成は変わって
よいことを理解すべきである。特に、本発明は、単一の
マルチスレッドCPUを有するシステム、又は多数のマ
ルチスレッドCPUを有するシステムで使用されること
ができるであろう。
状態を保全することができる。CPU101は、典型的
には、データを記憶するための複数の汎用レジスタ、及
び条件、中間結果、命令、及びプロセッサの状態を集合
的に決定する他の情報を記憶するための様々な特殊目的
レジスタを含む。この情報は、CPU101によってサ
ポートされる各々のスレッドのために複製される。各々
のCPU101の内部には、スレッドの優先順位、その
活動状態又は非活動状態などに関する情報を含むスレッ
ド状態レジスタ103A及び103Bが、各々のスレッ
ドごとに存在する。図1には、2スレッド・システムで
あることを仮定して、2つのスレッド状態レジスタが示
される。しかし、プロセッサは、3つ以上のスレッドに
ついて状態を保全し、処理を行うことができる。スレッ
ド状態レジスタは、アクティブ・スレッド信号を生成す
る。ハードウェア・スレッド切り替え制御レジスタ10
5A及び105Bは、スレッドの切り替えを生成するイ
ベントを選択するようにプログラムされることができ
る。各々のスレッド切り替え制御イベントは、スレッド
切り替え制御レジスタ105の中に別々の可能ビットを
有する。各々のスレッドのために、別々のスレッド切り
替え制御レジスタが存在してよいが、多くの場合、個々
のスレッドに対応するレジスタの個々のビット回路は、
典型的には、チップ上で物理的にインタリーブされてい
るであろう。即ち、スレッド0に対するレジスタ部分の
ビット0は、他のスレッドの各々に対するレジスタ部分
の物理的に隣接したビット0であろう。それぞれのビッ
ト1回路は、全て物理的に相互に隣接しているであろ
う。ビット2以下も同様である。1つのスレッド切り替
え制御レジスタにおける1つのスレッドのスレッド切り
替え制御イベントは、他のスレッドに関連づけられたス
レッド切り替え制御イベント、又は他のスレッド切り替
え制御レジスタ内のイベントと同一である必要はない。
スレッド切り替え制御レジスタは、当技術分野で知られ
ているサービス・プロセッサによって書き込まれること
ができる。スレッド切り替え制御レジスタの内容は、マ
ルチスレッド・プロセッサにおけるスレッド切り替えの
生成を可能又は不能にするため、ハードウェア・スレッ
ド切り替えコントローラによって使用される。レジスタ
内の1の値は、そのビットに関連づけられたスレッド切
り替え制御イベントを可能にして、スレッド切り替えを
生成する。スレッド切り替え制御レジスタ内の0の値
は、そのビットに関連づけられたスレッド切り替え制御
イベントを不能にして、スレッド切り替えを生成しない
ようにする。ビット22:29における0の値は、ビッ
トに関連づけられたスレッドを不能にするであろう。も
ちろん、実行されているスレッド内の命令は、その特定
のスレッド又は他のスレッドについて、いずれか又は全
てのスレッド切り替え条件を不能にすることができるで
あろう。次の表は、スレッド切り替えイベントと、スレ
ッド切り替え制御レジスタにおける可能ビットとの間の
関連の例を示す。 スレッド切り替え制御レジスタのビット割り当て (0) L1データ・キャッシュ・フェッチ・ミスで切り替え (1) L1データ・キャッシュ記憶ミスで切り替え (2) L1命令キャッシュ・ミスで切り替え (3) 命令TLBミスで切り替え (4) L2キャッシュ・フェッチ・ミスで切り替え (5) L2キャッシュ記憶ミスで切り替え (6) L2命令キャッシュ・ミスで切り替え (7) データTLB/セグメント・ルックアサイド・バッファ・ミ スで切り替え (8) L2キャッシュ・ミス及び活動休止スレッド非L2キャッシ ュ・ミスで切り替え (9) スレッド切り替えタイムアウト値に達したときに切り替え (10) L2キャッシュ・データが返されたときに切り替え (11) IO外部アクセスで切り替え (12) ダブルX記憶で切り替え: 2者の中の1番目でミス (13) ダブルX記憶で切り替え: 2者の中の2番目でミス (14) 多数/ストリング記憶で切り替え: いずれかのアクセスで ミス (15) 多数/ストリング・ロードで切り替え: いずれかのアクセ スでミス (16) 予約 (17) ダブルXロードで切り替え: 2者の中の1番目でミス (18) ダブルXロードで切り替え: 2者の中の2番目でミス (19) もしマシン状態レジスタ(プロブレム状態)ビット、msr (pr)=1であれば、or1,1,1命令で切り替え。m sr(pr)から独立してソフトウェア優先順位の変更を可 能にする。もしビット19が1であれば、or1,1,1命 令は低い優先順位を設定する。もしビット19が0であれば 、 or1,1,1命令が実行されるときにmsr(pr)= 0 である場合にのみ、優先順位は低に設定される。後述する よ うに、ソフトウェアを使用して優先順位を変更する場合を 参 照されたい。 (20) 予約 (21) スレッド切り替え優先順位を可能にする (22:29) スレッドを可能にする。スレッドごとに1つのビット (30:31) 前方進行カウント (32:63) 64ビット・レジスタの実装で予約 * ダブルXロード/記憶とは、ダブルワード境界を横
断する基本的ハーフワード、ワード、又はダブルワード
のロード又は記憶を指す。この文脈におけるダブルXロ
ード/記憶とは、多数のワード又はワード・ストリング
のロード又は記憶ではない。
追加の背景情報は、次の共通譲渡された同時係属米国特
許出願に含まれる。これらの特許出願は、参照して、そ
れらの全体をここに組み込まれる。本願と同時に出願さ
れ、「マルチスレッド・コンピュータ・プロセッサのス
レッド損失に対する現場防止」(Field Protection Aga
inst Thread Loss in a Multithreaded Computer Proc
essor)と題する一連番号不詳の特許出願(譲受人のド
ケット番号、ROC920000139)、1999年
11月12日に出願され、「マルチスレッド処理のマス
タ・スレーブ・ラッチ回路」(Master-Slave Latch Cir
cuit for Multithreaded Processing)と題する第09
/439,581号(譲受人のドケット番号、RO99
9−140)、1999年3月10日に出願され、「マ
ルチスレッド・プロセッサの命令キャッシュ」(Instru
ction Cache for Multithreaded Processor)と題する
第09/266,133号(譲受人のドケット番号、R
O998−277)、1997年11月21日に出願さ
れ、「マルチスレッド・データ処理システムにおける多
数エントリ完全連想キャッシュ・バッファからのデータ
・アクセス」(Accessing Data from a Multiple Entry
Fully Associative Cache Buffer in a Multithreaded
Data Processing System)と題する第08/976,
533号(譲受人のドケット番号、RO997−18
2)、1997年11月10に出願され、「実効・リア
ル・アドレス・キャッシュ管理装置及び方法」(Effect
ive-To-Real Address Cache Managing Apparatus and M
ethod)と題する第08/966,706号(譲受人の
ドケット番号、RO997−155)、1997年10
月23日に出願され、「マルチスレッド・プロセッサに
おけるスレッド優先順位の変更」(Altering Thread Pr
iorities in a Multithreaded Processor)と題する第
08/958,718号(譲受人のドケット番号、RO
997−106)、1997年10月23日に出願さ
れ、「マルチスレッド・プロセッサ内でスレッド切り替
えイベントを選択する方法及び装置」(Method and App
aratus for Selecting Thread Switch Events in a Mul
tithreaded Processor)と題する第08/958,71
6号(譲受人のドケット番号、RO997−104)、
1997年10月23日に出願され、「マルチスレッド
・プロセッサ・システムにおけるスレッド切り替え制
御」(Thread Switch Control in a Multithreaded Pro
cessor System)と題する第08/957,002号
(譲受人のドケット番号、RO996−042)、19
97年10月23日に出願され、「マルチスレッド・プ
ロセッサにおける前方進行を保証する装置及び方法」
(An Apparatus and Method to Guarantee Forward Pro
gress in a Multithreaded Processor)と題する第08
/956,875号(譲受人のドケット番号、RO99
7−105)、1997年10月23日に出願され、
「マルチスレッド・プロセッサにおけるスレッド切り替
えの強制」(To Force a Thread Switch in a Multithr
eaded Processor)と題する第08/956,577号
(譲受人のドケット番号、RO997−107)、19
96年12月27日に出願され、「マルチスレッド・プ
ロセッサにおける命令及び関連フェッチ・リクエストの
バックグラウンド完了」(Background Completion of I
nstruction and Associated Fetch Request in a Multi
thread Processor)と題する第08/773,572号
(譲受人のドケット番号、RO996−043)。これ
らの出願で説明されるマルチスレッド・プロセッサ設計
は、粗粒度マルチスレッド実現方法であるが、本発明
は、粗粒度マルチスレッド、又は細粒度マルチスレッド
のいずれにも応用可能であることを理解すべきである。
イは、共通の読み出しデータ・バスを有する通常の2ス
レッド・メモリ・アレイと著しく異なっている。共通読
み出しバスを有するコンピュータ・アーキテクチャのパ
ラダイムは、読み出し独立性が必要であること、及び各
々のスレッドのデータが同時に読み出されるための別々
の読み出しデコーダを必要とすることを仮定している。
しかし、読み出し独立性を無視することによって、重大
なマイナス結果を受けることなく、最適配線能力及び関
連した最適最小トランジスタ数を有するマルチスレッド
・メモリを達成できることが発見された。なぜなら、2
つ以上のスレッドのデータが同時に要求されるインスタ
ンスの数は、無視できるからである。図2のマルチスレ
ッド記憶セルは、読み出し独立性を無視することによっ
て、実質的なマイナスの結果を受けることなく、チップ
表面領域の消費を著しく減らすことができるという発見
を反映している。なぜなら、読み出し独立性は、一時に
1つのスレッドだけをアクセスできるプロセッサに対し
ては、無視できる機能的属性だからである。スレッド・
セレクタ及び読み出しポートに必要なトランジスタの数
は、スレッドの各々について別々の読み出しポートを形
成する場合に必要であった数よりも少なくなる。
れる米国特許第5,778,243号に示されるマルチ
スレッド記憶セルのブロック図である。この特許は、参
照して、その全体を組み込まれる。マルチスレッド記憶
セル300は、スレッド0及びスレッド1を読み出しポ
ート340へ選択的に接続するスレッド・セレクタ33
0を含むマルチスレッド読み出しインタフェースを有す
る。読み出しポート340の数は、記憶要素320及び
322から読み出され得る機能ユニットの数、通常は1
を超える数、例えば6から8までの機能ユニットの数に
対応する。機能ユニットの例は、整数及び浮動小数点数
表現の間で、整数、論理シフト、フィールド抽出、及
び、又は浮動小数点演算及び、又は変換を実行すること
ができる算術論理ユニットである。読み出し動作のため
には、各々の記憶要素320、322は、次のように機
能ユニットへ接続される。即ち、記憶要素320、32
2はスレッド・セレクタ330へ接続され、スレッド・
セレクタ330は、読み出しポート340の1つへ接続
され、この1つのポートはデコーダ(図2には示されて
いない)へ接続され、デコーダは機能ユニット(同様
に、図2には示されていない)へ接続される。
みポート310、及びスレッド1のための書き込みポー
ト312を含む。書き込みポートの数は、記憶要素へ書
き込むことができる機能ユニットの数、通常は1を超え
る数、例えば3から12までの機能ユニットの数に対応
する。スレッド0の記憶要素320は、書き込みポート
310及びスレッド・セレクタ330へ接続され、スレ
ッド1の記憶要素322は、書き込みポート312及び
スレッド・セレクタ330へ接続される。
ッド0を選択するようにスレッド・セレクタ330を制
御することによって、記憶要素320内のデータを読み
出すことができる。それによって、記憶要素320のデ
ータは、読み出しポート340上で利用可能になる。同
様に、記憶要素322内のデータを読み出すために
は、、プロセッサが、記憶要素322からの線を選択す
るようにスレッド・セレクタ330を制御することが必
要である。
ロック図である。図3は、マルチスレッド記憶セル41
0から形成された2スレッド・アレイ402を示す。図
3の2スレッド・アレイは、読み出しデコーダ430、
432、434、436、スレッド0の書き込みデコー
ダ438、スレッド1の書き込みデコーダ440、及び
マルチスレッド記憶セル410のアレイ450を含む。
1つの記憶セル410に対する書き込み相互接続のみが
示される。なぜなら、アレイ内の他のセルに対する相互
接続は、同じだからである。
は、書き込みアドレス・バス418、422へ接続さ
れ、それぞれ、それ自身の書き込みスレッド選択線41
6、420へ接続される。このようにして、スレッド選
択は、2スレッド・レジスタ402に対して外部的に行
われる。対照的に、読み出しデコーダ、例えば430、
432、434、436は、読み出しアドレス・バス4
12へ接続されるが、読み出しスレッド選択線414に
は接続されない。むしろ、どのスレッドを読み出すかの
選択が、マルチスレッド記憶セル410の外部ではなく
内部で起こるように、メモリ・セル410の各々が読み
出しスレッド選択線414へ接続される。
る。具体的には、ブロックはCMOSトランジスタから
形成されたように示されるが、本発明は、他の技術の中
でも、NMOS、BICMOS、BINMOS、バイポ
ーラ、SOI、及びGaASへ応用される。第1のスレ
ッドの記憶要素320は、トランジスタ510、51
2、514、516、518、520から形成され、単
一のビットを保持する。単純に、ただ1つの機能ユニッ
トが記憶要素へ書き込むことを仮定して、第1のスレッ
ドの書き込みポート310は単一のポートのみを有する
ように示される。しかし、前述したように、そのような
機能ユニットの複数が存在してよい。書き込みポート3
10は、トランジスタ502、504から形成され、ト
ランジスタ502のゲートを横切るスレッド可能信号5
22によって動作可能にされる。第2のスレッドは、ト
ランジスタ530、532、534、536、538、
540から形成された記憶要素322、及びトランジス
タ506並びに508を含む書き込みポート312を有
する。第2のスレッド可能信号526は、トランジスタ
506のゲートに接続される。スレッド・セレクタ33
0は、トランジスタ560、562、564、566、
568、570から形成される。トランジスタ560の
ゲート及びトランジスタ566のゲートに接続された線
550上の信号THB、及びトランジスタ562のゲー
ト及びトランジスタ564のゲートに接続された線55
2上の信号THAの状態に基づいて、スレッド・セレク
タ330は、第1のスレッド又は第2のスレッドを選択
する。読み出しポート340は2つのポート580及び
590を含み、第1のポート580はトランジスタ58
2及び584から形成され、第2のポート590はトラ
ンジスタ592及び594から形成される。ここでも、
各々のインタフェースにおけるポートの数は例示的なも
ので、実際には、記憶要素との間で読み出し/書き込み
を行うことができる機能ユニットの数に従って変わるで
あろう。
及びメモリ・アレイは、製造された後にテストされる。
幾つかのテスト手順があるが、2つだけを挙げると、L
BIST及びABISTがある。それらのテストでは、
既知のビット・シーケンスがアレイの中へ入力され、ア
レイの出力と比較される。適正に機能するメモリ・アレ
イでは、入力は出力とマッチする。これらのシーケンス
は、高速で実行され、多くのメモリ・セルを同時に巻き
込むことができ、プロセッサへ「ストレス」を加えて、
その障害パラメータ(もしあれば)を決定することがで
きる。他の種類のテストは機能テストであって、その場
合、顧客のパフォーマンス要件を代表する実際の符号化
命令がストレスのもとで実行され、メモリ・アレイの臨
界セクションを働かせる。再び、これらのテストは異な
ったプロセッサ速度で実行されることができ、プロセッ
サが障害を起こすかどうか、及び何時プロセッサが障害
を起こすかを決定することができる。そのような障害
は、最も普通では、マルチスレッド記憶セル内のビット
値を捕捉して保持することのできないメモリ・アレイ及
び汎用並びに特殊レジスタの結果である。本発明の重要
な特徴は、別々のスレッドに関連づけられた個々の記憶
セル内に記憶された値をテストする能力である。言い換
えれば、本発明との関連において、各々のスレッドは、
今や別々にテストされることができる。
害を検出する方法の簡単なフローチャートである。図5
は、障害が起こるとすれば、それが起こるまで実際の符
号化命令を実行する機能テストを例示するが、他のテス
ト、例えば、メモリ・アレイをテストするためのABI
ST、LBISTなども、本発明との関連で使用される
ことができる。典型的には、これらのテストは、製造さ
れた後、及び、又は現場におけるプロセッサ・システム
の正常な動作の間、即ち、顧客の活動場所で正常なプロ
セッサ実行の間に定期的に行われる。ここで説明される
好ましい実施形態では、これらのテストは、最初のブリ
ングアップの間、即ち、プロセッサ・チップが製造され
た後、コンピュータへアセンブルされる前、又は販売さ
れる前に行われる。ステップ600からスタートして、
プロセスは、ステップ610へ進行する。ステップ61
0において、アクティブ・スレッドが第1のスレッドに
設定される。これは、CPU内のスレッド状態レジスタ
によって達成されることができる。次に、ステップ61
2において、アクティブ・スレッドの命令がプロセッサ
で実行される。ステップ614において、テスト手順
は、実行されるべきアクティブ・スレッドの更なる命令
があるかどうかをチェックする。もし更なる命令があれ
ば、プロセスはステップ612へループバックし、その
スレッドのために次の命令を実行する。しかし、もしス
テップ614において、選択されたスレッドの更なる命
令がなければ、ステップ616において、プロセスは、
選択されたスレッドの命令の実行中に障害が生じたかど
うかを質問する。
モリ・アレイの障害がなければ、プロセスは、ステップ
618で、テストすべき追加のスレッドがあるかどうか
をチェックする。もしあれば、ステップ620で、他の
スレッドを選択するようにスレッド選択がプログラムさ
れる。それは、再びステップ612で、その命令の実行
をテストするためである。しかし、もし第1のスレッド
が障害を経験すれば、障害はステップ630で記録さ
れ、信号誤りメッセージがステップ632で生成され
る。この時点で、テストはステップ640で終了してよ
い。なぜなら、プロセッサは、マルチスレッド・レジス
タ又はメモリ・アレイ内で機能障害を経験したからであ
る。代替的に、テストは、全てのスレッドがテストされ
てしまうまで、選択されたアクティブ・スレッドとして
の次のスレッドへ継続する。ここで開示される特徴の発
明以前では、障害を経験したプロセッサ・チップは捨て
られたであろう。即ち、全てのスレッドがテストされた
わけではないので、プロセッサ内の他のスレッドが適正
に実行され、他のスレッドの記憶セルが完全に機能する
場合でも、捨てられたであろう。
は、どの特定スレッドが機能障害を起こすかを確かめる
ことによって、プロセッサを救助する利点を提供する幾
つかの発明的特徴を表す。マルチスレッド・レジスタを
有するプロセッサは捨てられる必要はない。その代わり
に、欠陥を有するそれらの記憶要素は不能にされ、マル
チスレッド・メモリ・アレイ内で障害を経験したスレッ
ドの命令及びデータは、同一又は異なったアレイ又はレ
ジスタ内の他のスレッドの記憶要素へ回送されてよい。
けのスレッドに関連づけられた欠陥記憶要素を不能にす
るハードウェア装置及び方法の1つの実施形態が、図6
に示される。マルチスレッド・レジスタ/アレイ450
は、2つのスレッドを有するように示されるが、概念及
びハードウェアは、当業者によって、3つ以上のスレッ
ドへ容易に拡張されることができる。本発明の好ましい
実施形態に従った変更は、複数のヒューズブック、及び
ハードワイヤ・ロジックと連係するマルチプレクサを含
む。ヒューズブック内のヒューズは、「1」又は「0」
のディジタル信号を駆動するように設定されることがで
きる。典型的には、これらの値は、一度設定されると変
更されることはできない。
ブックと呼ばれる第1のヒューズブック710は、マル
チプレクサ750へ入る出力信号F1 712を生成す
る。更に、スレッド状態レジスタによって生成されたア
クティブ・スレッド信号AT714が、マルチプレクサ
750へ入力される。マルチプレクサ750へ入力され
る第3の信号F0 732は、欠陥要素ヒューズブック
と呼ばれる第2のヒューズブック730から引き出され
る。この欠陥要素ヒューズブックは、もし機能テストの
間に、例えば図5のステップ630から、欠陥のある記
憶要素が検出されると、「1」の値を有する信号F0
732を出力する。スレッド選択ヒューズブック710
は、記憶要素が欠陥を有しないスレッドに対応する値を
有する信号F1 712を出力する。記憶要素が欠陥を
有しないという知識は、ブリングアップの間、又はプロ
セッサが販売される前の他の時点で実行された機能テス
ト又は他のテストの結果から得られる。アクティブ・ス
レッド信号AT 714は、単にアクティブ・スレッド
が処理されていること、及びレジスタ/アレイへのアク
セスを望んだことを示す。レジスタ/アレイは、マルチ
スレッド記憶セルのレジスタ/アレイ450であってよ
い。2スレッド・メモリ・アレイのためにマルチプレク
サ内で具体化されることができるロジックの1つの例に
従って、書き込み又は読み出しポートのデコーダへ与え
られる出力信号AToF(アクティブ・スレッド又はヒ
ューズ) 752は、どのスレッドがマルチスレッド・
アレイ内でアクセスすべきかを示す。更に、出力信号
は、レジスタの個々のビット又は全体のアレイへ出力さ
れることができる。例えば、図6のように配列されたヒ
ューズブック710及び730並びにマルチプレクサ7
50は、スレッド切り替え制御イベント・レジスタにお
けるビット22:29の個々のビット、又は特定スレッ
ドのスレッド切り替え制御イベント・レジスタへ接続さ
れることができよう。同様に、図6のヒューズブック配
列は、例えばスレッドの状態を常に非アクティブとして
マークするため、各々のスレッド状態レジスタのポー
ト、又はスレッド状態レジスタの個々のビットへ接続さ
れることができよう。従って、結果は、レジスタでスレ
ッドを不能にすることになろう。もしマルチスレッド・
レジスタ/アレイ内で欠陥アレイ又は欠陥記憶要素が検
出されたならば、信号F0が1へ設定されるであろう。
もし適正に機能している記憶要素を有するスレッドが第
1のスレッドであったならば、信号F1は0であろう。
ここで、もしアクティブ・スレッドがスレッド0であれ
ば(論理チャート内でも0の値である)、出力信号AT
oFは0であり、メモリ・セルはアクセスされることが
できよう。しかし、もし上記の条件が、アクティブ・ス
レッド信号がスレッド1に対するものであったことを除
いて同じであれば、信号F1と信号ATは矛盾し、第2
のスレッドに対する記憶要素へのアクセスは不能にされ
るであろう。従って、与えられたロジックのもとでは、
欠陥記憶要素が検出されて、F0信号が1であり、アク
ティブ・スレッド信号ATが、どのスレッドが適正に機
能する記憶要素を有するかを示す信号F1と矛盾すると
き、アクティブ・スレッドによって要求されたレジスタ
/アレイへのアクセスは不能にされる。
イのハードウェアへ組み込まれることのできるヒューズ
ブックの1つの例に過ぎない。ヒューズは、実際には多
くの実現方法を有し、当業者は、同じように実現される
ことのできる他のヒューズ及び、又はハードワイヤ・ロ
ジックを知っているであろう。ネットの設定_ヒューズ
ブックは、スタートアップで活性化され、デフォルト値
として「1」の出力値を有するが、ヒューズブックを設
定するためには「0」の値へドロップする。次に、ネッ
トの設定_ヒューズブックは、プロセッサの寿命の間、
「1」の値へ戻る。ヒューズブックを設定する場合、設
定_ヒューズブックは0へドロップし、これはトランジ
スタN1及びP1をオンにし、トランジスタN3及びN
2をオフにする。もしヒューズが飛ばされていなけれ
ば、ヒューズ_ネットは0へ設定される。N1がオンで
あるとき、ヒューズ_ラッチはヒューズ_ネットを短絡
させる。ヒューズ_ネットは0になって、インバータI
2を介してヒューズ_フィードバックを1の値にする。
代わって、このアクションは、P2をオフにし、N4を
オンにし、出力信号ヒューズ_アウトは、インバータI
3を介して0になる。設定_ヒューズブックが高になる
とき、トランジスタN3及びN2は活性化されるが、ト
ランジスタN1及びP1は非活性化される。今や、N3
及びN4を通るフィードバック通路が存在し、この通路
はヒューズ_ラッチを0に保持し、ヒューズ_フィード
バックを1に保持し、ヒューズ_アウトを0に保持す
る。この状態は、設定_ヒューズブックがスタートアッ
プ時を除いて1に止まるので、チップがパワーダウンさ
れるまで続く。
より、又は電気的に飛ばされると、トランジスタN2が
オン、即ち設定_ヒューズブックが1であるときを除い
て、ヒューズ_ネットはグラウンドへの通路を有しな
い。従って、設定_ヒューズブックが0になると、ヒュ
ーズ_ネットは0状態で浮動し、トランジスタN1及び
P1はオンになる。P1は、トランジスタN1を介して
ヒューズ_ネットのグラウンド値に打ち勝ち、ヒューズ
_フィードバックを0にし、ヒューズ_ラッチ及びヒュ
ーズ_ネットを1にする。設定_ヒューズブックが1へ
戻り、トランジスタP1及びN1が非活性化されると
き、ヒューズ_ラッチの値が1に保持され、トランジス
タN4がオフでヒューズ_フィードバックが0に保持さ
れ、ヒューズ_アウトが1に止まるように、トランジス
タP2を通るフィードバック通路は存在しない。
されたが、それらは、限定ではなく例として提示された
こと、及び変形が可能であることを理解すべきである。
本発明は、潜在的イベントに基づいてスレッドを切り替
える粗粒度マルチスレッドに限定されない。即ち、それ
は細粒度マルチスレッド・システムに組み込まれるよう
に等しく変更されることができる。更に、本発明は、単
に2つのスレッドを有するハードウェア・マルチスレッ
ド・プロセッサに限定されず、多数のスレッドを実行す
ることのできるプロセッサへ拡張されることができる。
本発明の好ましい実施形態は、記憶セルの各々でスレッ
ドごとに固有の記憶要素を有するマルチスレッド・メモ
リ・レジスタに関して説明されたが、マルチスレッド・
プロセッサのスレッド能力を変更する発明的特徴は、各
々のスレッドについて別々のレジスタを有するマルチス
レッド・プロセッサにも等しく応用することができる。
レジスタを不能にするハードウェア手法は、ヒューズブ
ックを使用しなくても実現することができる。レジスタ
/アレイへのポートを不能にするために必要なロジック
も、異なったものでよい。従って、本発明の広さ及び範
囲は、これまで説明した例示的実施形態によって限定さ
れるべきではなく、クレイム及びそれらの同等物に従っ
てのみ限定されるべきである。
の事項を開示する。 (1)複数のスレッドを実行することができるハードウ
ェア・マルチスレッド・コンピュータ処理システムのス
レッド能力を変更する方法であって、(a)前記複数の
スレッドの各々に固有に関連づけられたレジスタ/アレ
イの障害を分離することができるテストを実行するステ
ップと、(b)少なくとも1つのレジスタ/アレイの障
害を検出して、障害を起こした少なくとも1つのレジス
タ/アレイが固有に関連づけられたスレッドを記録する
ステップと、(c)障害を起こした少なくとも1つのレ
ジスタ/アレイが固有に関連づけられたスレッドに関連
づけられた全てのレジスタ/アレイへのアクセスを不能
するステップと、(d)検出された障害を有しない前記
複数のスレッドの中の他のスレッドに固有に関連づけら
れた全てのレジスタ/アレイへのアクセスを維持するス
テップと、含む方法。 (2)更に、前記テストを実行するステップ(a)が、
レジスタ/アレイの臨界セクションを働かせるストレス
のもとで顧客のパフォーマンス要件を代表する符号化命
令を実行することを含む、上記(1)に記載の方法。 (3)更に、前記テストを実行するステップ(a)が、
ロジック・ビルトイン・セルフ・テスト(LBIST)
及び、又はアレイ・ビルトイン・セルフ・テスト(AB
IST)を実行するステップを含む、上記(1)に記載
の方法。 (4)更に、前記レジスタ/アレイが、記憶セルを有す
るマルチスレッド・レジスタ/アレイを含み、各々の記
憶セルが、前記複数のスレッドの1つに固有に関連づけ
られた1つの記憶要素を有する、上記(1)に記載の方
法。 (5)更に、前記アクセスを不能にする前記ステップ
(c)が、前記レジスタ/アレイへの少なくとも1つの
ポートを切断するためヒューズを飛ばすステップを含
む、上記(1)に記載の方法。 (6)更に、前記アクセスを不能にする前記ステップ
(c)が、スレッドのハードウェア・スレッド切り替え
制御レジスタの中で、複数のスレッド切り替え制御イベ
ントのいずれかを不能にするステップを含む、上記
(1)に記載の方法。 (7)更に、前記アクセスを不能にする前記ステップ
(c)が、マイクロコード命令を実行するステップを含
む、上記(1)に記載の方法。 (8)複数のスレッドを実行することができるハードウ
ェア・マルチスレッド・コンピュータ処理システムのス
レッド能力を変更する方法であって、(a)マルチスレ
ッド・レジスタ/アレイ内の記憶要素の障害を分離する
機能テストを実行するステップであって、前記マルチス
レッド・レジスタ/アレイは記憶セルのマトリックスと
して配列され、更に各々の記憶セルは複数の記憶要素を
含み、各々の記憶要素は複数のスレッドの各々に固有に
対応している、前記ステップと、(b)少なくとも1つ
の記憶要素の障害を検出して、障害を起こした少なくと
も1つの記憶要素が固有に関連づけられた特定のスレッ
ドを記録するステップと、(c)障害を起こした少なく
とも1つの記憶要素に関連づけられた特定のスレッドに
固有に対応する全ての記憶要素を不能にするステップ
と、(d)特定のスレッドのデータを、前記複数のスレ
ッドの中の他のスレッドに固有に関連づけられた記憶要
素へ回送するステップと、を含む方法。 (9)更に、前記記憶要素を不能にするステップ(c)
が、前記複数のスレッドの中の他のスレッドに関連づけ
られた個々の記憶要素の中の他の記憶要素を選択するた
めマルチスレッド・コンピュータの中でマイクロコード
命令を実行することによってスレッド切り替え信号を生
成するステップを含む、上記(8)に記載の方法。 (10)更に、前記記憶要素を不能にするステップ
(c)が、ヒューズを飛ばすことを含む、上記(8)に
記載の方法。 (11)前記ヒューズが、前記特定のヒューズに関連づ
けられた全ての記憶要素へ接続された全ての読み出し/
書き込みポートに置かれる、上記(10)に記載の方
法。 (12)前記ヒューズが、スレッド切り替えイベント制
御レジスタに置かれ、特定のスレッドに対するスレッド
切り替えイベント制御レジスタの全て又は一部分を不能
にする、上記(10)に記載の方法。 (13)前記ヒューズが、スレッド切り替えイベント制
御レジスタ内の個々のビットに接続され、個々のビット
が特定のスレッドを不能にする、上記(12)に記載の
方法。 (14)前記ヒューズが、前記特定のスレッドに関係す
るスレッド状態レジスタに接続される、上記(10)に
記載の方法。 (15)更に、前記ヒューズが、非活動状態を有するス
レッドとして特定のスレッドをマークするため、スレッ
ド状態レジスタの個々のビットに接続される、上記(1
4)に記載の方法。 (16)動作の少なくとも1つのスレッドを不能にする
ことができるマルチスレッド・コンピュータ・システム
であって、(a)少なくとも1つのマルチスレッド・コ
ンピュータ・プロセッサと、(b)前記マルチスレッド
・コンピュータ・システムにおける動作の複数のスレッ
ドの各々に対する少なくとも1つのスレッド切り替え制
御レジスタと、(c)記憶セルの各々が動作の1つのス
レッドに固有に関連づけられた記憶要素を有するマルチ
スレッド記憶セルを有する少なくとも1つのハードウェ
ア・マルチスレッド・メモリ/レジスタ・アレイと、
(d)少なくとも1つのマルチスレッド・コンピュータ
・プロセッサに接続されたメイン・メモリと、(e)複
数のデータ記憶装置、1つ又は複数の外部通信ネットワ
ーク、コンピュータ・プロセッサとの間でユーザ入力を
提供する1つ又は複数の入力/出力装置から構成される
グループの少なくとも1つへ、マルチスレッド・コンピ
ュータ・プロセッサ及びメイン・メモリを接続するバス
・インタフェースと、(f)プロセッサの最初のブリン
グアップの間に、少なくとも1つのマルチスレッド・コ
ンピュータ・プロセッサ内で動作の少なくとも1つのス
レッドの機能テストを実行する機能テスト生成手段と、
(g)機能テストを受けている動作の少なくとも1つの
スレッドに固有に関連づけられた記憶要素の障害を検出
する記憶要素障害検出手段と、(h)マルチスレッド記
憶セル内で機能テストを受けている動作の少なくとも1
つのスレッドに関連づけられた全ての記憶要素を不能に
する記憶要素不能手段と、を含むマルチスレッド・コン
ピュータ・システム。 (17)マルチスレッド・プロセッサであって、(a)
複数のスレッドを処理する手段と、(b)前記複数のス
レッド各々の状態を、前記マルチスレッド・プロセッサ
内のハードウェア・レジスタに記憶する手段と、(c)
個々のスレッドに関係するメモリ記憶要素に欠陥がある
かどうかを検出する手段と、(d)前記欠陥のあるメモ
リ記憶要素へのアクセスを不能にする手段と、(e)欠
陥のない他のメモリ記憶要素へのアクセスを維持する手
段と、(f)欠陥のあるメモリ記憶要素に関係する個々
のスレッドの処理及び記憶を、欠陥のあるメモリ記憶要
素を有しない少なくとも1つの他のスレッドへリダイレ
クトする手段と、を含むマルチスレッド・プロセッサ。
レッドのための記憶セルを有するマルチスレッド・レジ
スタ/メモリ・アレイを使用するコンピュータ・システ
ムの主なハードウェア・コンポーネントを示す図であ
る。
ある。
ロック図である。
る。
ことを検出するプロセスの簡単なフローチャートであ
る。
力を変更する能力を有するマルチスレッド・メモリ・レ
ジスタ/アレイのコンポーネントの簡単なブロック図で
ある。
め、マルチスレッド・メモリ・レジスタ/アレイに従っ
て使用されることができるヒューズブックの回路図であ
る。
U) 102 メイン・メモリ 103A、103B ハードウェア・スレッド状態レジ
スタ 105 バス・インタフェース 105A、105B ハードウェア・スレッド切り替え
制御レジスタ 106、106A、106B レベル1命令キャッシュ
(L1 Iキャッシュ) 107、107A、107B レベル1データ・キャッ
シュ(L1 Dキャッシュ) 108 L2キャッシュ 108A、108B レベル2キャッシュ(L2キャッ
シュ) 109 メモリ・バス 110 システムI/Oバス 111〜115 I/O処理ユニット(IOP) 300 マルチスレッド記憶セル 310、312 書き込みポート 320、322 記憶要素 330 スレッド・セレクタ 340 読み出しポート 402 2スレッド・アレイ(2スレッド・レジスタ) 410 マルチスレッド記憶セル(メモリ・セル) 412 読み出しアドレス・バス 414 読み出しスレッド選択線 416、420 書き込みスレッド選択線 418、422 書き込みアドレス・バス 430、432、434、436 読み出しデコーダ 438、440 書き込みデコーダ 450 マルチスレッド・レジスタ/アレイ 502、504、506、508、510、512、5
14、516、518、520 トランジスタ 522、526 スレッド可能信号 530、532、534、536、538、540 ト
ランジスタ 550、552 線 560、562、564、566、568、570 ト
ランジスタ 580 ポート 582、584 トランジスタ 590 ポート 592、594 トランジスタ 710 スレッド選択ヒューズブック 712 出力信号 714 アクティブ・スレッド信号 730 ヒューズブック 732 信号 750 マルチプレクサ 752 出力信号
Claims (17)
- 【請求項1】複数のスレッドを実行することができるハ
ードウェア・マルチスレッド・コンピュータ処理システ
ムのスレッド能力を変更する方法であって、 (a)前記複数のスレッドの各々に固有に関連づけられ
たレジスタ/アレイの障害を分離することができるテス
トを実行するステップと、 (b)少なくとも1つのレジスタ/アレイの障害を検出
して、障害を起こした少なくとも1つのレジスタ/アレ
イが固有に関連づけられたスレッドを記録するステップ
と、 (c)障害を起こした少なくとも1つのレジスタ/アレ
イが固有に関連づけられたスレッドに関連づけられた全
てのレジスタ/アレイへのアクセスを不能にするステッ
プと、 (d)検出された障害を有しない前記複数のスレッドの
中の他のスレッドに固有に関連づけられた全てのレジス
タ/アレイへのアクセスを維持するステップと、 含む方法。 - 【請求項2】更に、前記テストを実行するステップ
(a)が、レジスタ/アレイの臨界セクションを働かせ
るストレスのもとで顧客のパフォーマンス要件を代表す
る符号化命令を実行することを含む、請求項1に記載の
方法。 - 【請求項3】更に、前記テストを実行するステップ
(a)が、ロジック・ビルトイン・セルフ・テスト(L
BIST)及び、又はアレイ・ビルトイン・セルフ・テ
スト(ABIST)を実行するステップを含む、請求項
1に記載の方法。 - 【請求項4】更に、前記レジスタ/アレイが、記憶セル
を有するマルチスレッド・レジスタ/アレイを含み、各
々の記憶セルが、前記複数のスレッドの1つに固有に関
連づけられた1つの記憶要素を有する、請求項1に記載
の方法。 - 【請求項5】更に、前記アクセスを不能にする前記ステ
ップ(c)が、前記レジスタ/アレイへの少なくとも1
つのポートを切断するためヒューズを飛ばすステップを
含む、請求項1に記載の方法。 - 【請求項6】更に、前記アクセスを不能にする前記ステ
ップ(c)が、スレッドのハードウェア・スレッド切り
替え制御レジスタの中で、複数のスレッド切り替え制御
イベントのいずれかを不能にするステップを含む、請求
項1に記載の方法。 - 【請求項7】更に、前記アクセスを不能にする前記ステ
ップ(c)が、マイクロコード命令を実行するステップ
を含む、請求項1に記載の方法。 - 【請求項8】複数のスレッドを実行することができるハ
ードウェア・マルチスレッド・コンピュータ処理システ
ムのスレッド能力を変更する方法であって、 (a)マルチスレッド・レジスタ/アレイ内の記憶要素
の障害を分離する機能テストを実行するステップであっ
て、前記マルチスレッド・レジスタ/アレイは記憶セル
のマトリックスとして配列され、更に各々の記憶セルは
複数の記憶要素を含み、各々の記憶要素は複数のスレッ
ドの各々に固有に対応している、前記ステップと、 (b)少なくとも1つの記憶要素の障害を検出して、障
害を起こした少なくとも1つの記憶要素が固有に関連づ
けられた特定のスレッドを記録するステップと、 (c)障害を起こした少なくとも1つの記憶要素に関連
づけられた特定のスレッドに固有に対応する全ての記憶
要素を不能にするステップと、 (d)特定のスレッドのデータを、前記複数のスレッド
の中の他のスレッドに固有に関連づけられた記憶要素へ
回送するステップと、 を含む方法。 - 【請求項9】更に、前記記憶要素を不能にするステップ
(c)が、前記複数のスレッドの中の他のスレッドに関
連づけられた個々の記憶要素の中の他の記憶要素を選択
するためマルチスレッド・コンピュータの中でマイクロ
コード命令を実行することによってスレッド切り替え信
号を生成するステップを含む、請求項8に記載の方法。 - 【請求項10】更に、前記記憶要素を不能にするステッ
プ(c)が、ヒューズを飛ばすことを含む、請求項8に
記載の方法。 - 【請求項11】前記ヒューズが、前記特定のヒューズに
関連づけられた全ての記憶要素へ接続された全ての読み
出し/書き込みポートに置かれる、請求項10に記載の
方法。 - 【請求項12】前記ヒューズが、スレッド切り替えイベ
ント制御レジスタに置かれ、特定のスレッドに対するス
レッド切り替えイベント制御レジスタの全て又は一部分
を不能にする、請求項10に記載の方法。 - 【請求項13】前記ヒューズが、スレッド切り替えイベ
ント制御レジスタ内の個々のビットに接続され、個々の
ビットが特定のスレッドを不能にする、請求項12に記
載の方法。 - 【請求項14】前記ヒューズが、前記特定のスレッドに
関係するスレッド状態レジスタに接続される、請求項1
0に記載の方法。 - 【請求項15】更に、前記ヒューズが、非活動状態を有
するスレッドとして特定のスレッドをマークするため、
スレッド状態レジスタの個々のビットに接続される、請
求項14に記載の方法。 - 【請求項16】動作の少なくとも1つのスレッドを不能
にすることができるマルチスレッド・コンピュータ・シ
ステムであって、 (a)少なくとも1つのマルチスレッド・コンピュータ
・プロセッサと、 (b)前記マルチスレッド・コンピュータ・システムに
おける動作の複数のスレッドの各々に対する少なくとも
1つのスレッド切り替え制御レジスタと、 (c)記憶セルの各々が動作の1つのスレッドに固有に
関連づけられた記憶要素を有するマルチスレッド記憶セ
ルを有する少なくとも1つのハードウェア・マルチスレ
ッド・メモリ/レジスタ・アレイと、 (d)少なくとも1つのマルチスレッド・コンピュータ
・プロセッサに接続されたメイン・メモリと、 (e)複数のデータ記憶装置、1つ又は複数の外部通信
ネットワーク、コンピュータ・プロセッサとの間でユー
ザ入力を提供する1つ又は複数の入力/出力装置から構
成されるグループの少なくとも1つへ、マルチスレッド
・コンピュータ・プロセッサ及びメイン・メモリを接続
するバス・インタフェースと、 (f)プロセッサの最初のブリングアップの間に、少な
くとも1つのマルチスレッド・コンピュータ・プロセッ
サ内で動作の少なくとも1つのスレッドの機能テストを
実行する機能テスト生成手段と、 (g)機能テストを受けている動作の少なくとも1つの
スレッドに固有に関連づけられた記憶要素の障害を検出
する記憶要素障害検出手段と、 (h)マルチスレッド記憶セル内で機能テストを受けて
いる動作の少なくとも1つのスレッドに関連づけられた
全ての記憶要素を不能にする記憶要素不能手段と、を含
むマルチスレッド・コンピュータ・システム。 - 【請求項17】マルチスレッド・プロセッサであって、 (a)複数のスレッドを処理する手段と、 (b)前記複数のスレッド各々の状態を、前記マルチス
レッド・プロセッサ内のハードウェア・レジスタに記憶
する手段と、 (c)個々のスレッドに関係するメモリ記憶要素に欠陥
があるかどうかを検出する手段と、 (d)前記欠陥のあるメモリ記憶要素へのアクセスを不
能にする手段と、 (e)欠陥のない他のメモリ記憶要素へのアクセスを維
持する手段と、 (f)欠陥のあるメモリ記憶要素に関係する個々のスレ
ッドの処理及び記憶を、欠陥のあるメモリ記憶要素を有
しない少なくとも1つの他のスレッドへリダイレクトす
る手段と、を含むマルチスレッド・プロセッサ。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/638,577 US6748556B1 (en) | 2000-08-15 | 2000-08-15 | Changing the thread capacity of a multithreaded computer processor |
US09/638577 | 2000-08-15 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2002108630A true JP2002108630A (ja) | 2002-04-12 |
JP3683837B2 JP3683837B2 (ja) | 2005-08-17 |
Family
ID=24560580
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2001242917A Expired - Fee Related JP3683837B2 (ja) | 2000-08-15 | 2001-08-09 | スレッド能力を変更する方法及びマルチスレッド・コンピュータ・システム |
Country Status (3)
Country | Link |
---|---|
US (1) | US6748556B1 (ja) |
JP (1) | JP3683837B2 (ja) |
KR (1) | KR100388550B1 (ja) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6681345B1 (en) * | 2000-08-15 | 2004-01-20 | International Business Machines Corporation | Field protection against thread loss in a multithreaded computer processor |
JP2008512746A (ja) * | 2004-09-08 | 2008-04-24 | インテル・コーポレーション | オペレーティングシステム独立エージェント |
WO2008155794A1 (ja) | 2007-06-19 | 2008-12-24 | Fujitsu Limited | 情報処理装置 |
US7774532B2 (en) | 2005-03-03 | 2010-08-10 | Nec Corporation | Processing device, failure recovery method therefor, and failure restoration method |
US8090991B2 (en) | 2006-02-06 | 2012-01-03 | Fujitsu Limited | Information processing apparatus, method, and computer program product for self-diagnosis for utilizing multiple diagnostic devices, each having exclusive access to a resource |
JP2015036983A (ja) * | 2013-08-13 | 2015-02-23 | 三星電子株式会社Samsung Electronics Co.,Ltd. | 多重スレッド実行プロセッサ、及びその動作方法 |
Families Citing this family (55)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7324520B2 (en) * | 2002-07-03 | 2008-01-29 | Intel Corporation | Method and apparatus to process switch traffic |
US7174554B2 (en) * | 2002-12-20 | 2007-02-06 | Microsoft Corporation | Tools and methods for discovering race condition errors |
US7702887B1 (en) | 2004-06-30 | 2010-04-20 | Sun Microsystems, Inc. | Performance instrumentation in a fine grain multithreaded multicore processor |
US7434000B1 (en) | 2004-06-30 | 2008-10-07 | Sun Microsystems, Inc. | Handling duplicate cache misses in a multithreaded/multi-core processor |
US7774393B1 (en) | 2004-06-30 | 2010-08-10 | Oracle America, Inc. | Apparatus and method for integer to floating-point format conversion |
US7185178B1 (en) | 2004-06-30 | 2007-02-27 | Sun Microsystems, Inc. | Fetch speculation in a multithreaded processor |
US7343474B1 (en) | 2004-06-30 | 2008-03-11 | Sun Microsystems, Inc. | Minimal address state in a fine grain multithreaded processor |
US7861063B1 (en) | 2004-06-30 | 2010-12-28 | Oracle America, Inc. | Delay slot handling in a processor |
US7676655B2 (en) * | 2004-06-30 | 2010-03-09 | Sun Microsystems, Inc. | Single bit control of threads in a multithreaded multicore processor |
US7523330B2 (en) * | 2004-06-30 | 2009-04-21 | Sun Microsystems, Inc. | Thread-based clock enabling in a multi-threaded processor |
US7533248B1 (en) | 2004-06-30 | 2009-05-12 | Sun Microsystems, Inc. | Multithreaded processor including a functional unit shared between multiple requestors and arbitration therefor |
US7890734B2 (en) * | 2004-06-30 | 2011-02-15 | Open Computing Trust I & II | Mechanism for selecting instructions for execution in a multithreaded processor |
US7426630B1 (en) | 2004-06-30 | 2008-09-16 | Sun Microsystems, Inc. | Arbitration of window swap operations |
US7216216B1 (en) | 2004-06-30 | 2007-05-08 | Sun Microsystems, Inc. | Register window management using first pipeline to change current window and second pipeline to read operand from old window and write operand to new window |
US7330988B2 (en) * | 2004-06-30 | 2008-02-12 | Sun Microsystems, Inc. | Method and apparatus for power throttling in a multi-thread processor |
US8095778B1 (en) | 2004-06-30 | 2012-01-10 | Open Computing Trust I & II | Method and system for sharing functional units of a multithreaded processor |
US7401206B2 (en) * | 2004-06-30 | 2008-07-15 | Sun Microsystems, Inc. | Apparatus and method for fine-grained multithreading in a multipipelined processor core |
US7178005B1 (en) | 2004-06-30 | 2007-02-13 | Sun Microsystems, Inc. | Efficient implementation of timers in a multithreaded processor |
US7941642B1 (en) | 2004-06-30 | 2011-05-10 | Oracle America, Inc. | Method for selecting between divide instructions associated with respective threads in a multi-threaded processor |
US7478225B1 (en) | 2004-06-30 | 2009-01-13 | Sun Microsystems, Inc. | Apparatus and method to support pipelining of differing-latency instructions in a multithreaded processor |
US7437538B1 (en) | 2004-06-30 | 2008-10-14 | Sun Microsystems, Inc. | Apparatus and method for reducing execution latency of floating point operations having special case operands |
US7373489B1 (en) | 2004-06-30 | 2008-05-13 | Sun Microsystems, Inc. | Apparatus and method for floating-point exception prediction and recovery |
US7383403B1 (en) | 2004-06-30 | 2008-06-03 | Sun Microsystems, Inc. | Concurrent bypass to instruction buffers in a fine grain multithreaded processor |
US7353364B1 (en) | 2004-06-30 | 2008-04-01 | Sun Microsystems, Inc. | Apparatus and method for sharing a functional unit execution resource among a plurality of functional units |
US7747771B1 (en) | 2004-06-30 | 2010-06-29 | Oracle America, Inc. | Register access protocol in a multihreaded multi-core processor |
US7370243B1 (en) | 2004-06-30 | 2008-05-06 | Sun Microsystems, Inc. | Precise error handling in a fine grain multithreaded multicore processor |
US8225034B1 (en) | 2004-06-30 | 2012-07-17 | Oracle America, Inc. | Hybrid instruction buffer |
US7280428B2 (en) | 2004-09-30 | 2007-10-09 | Rambus Inc. | Multi-column addressing mode memory system including an integrated circuit memory device |
US8595459B2 (en) * | 2004-11-29 | 2013-11-26 | Rambus Inc. | Micro-threaded memory |
US8037250B1 (en) | 2004-12-09 | 2011-10-11 | Oracle America, Inc. | Arbitrating cache misses in a multithreaded/multi-core processor |
US7600101B2 (en) * | 2005-01-13 | 2009-10-06 | Hewlett-Packard Development Company, L.P. | Multithreaded hardware systems and methods |
US7389403B1 (en) * | 2005-08-10 | 2008-06-17 | Sun Microsystems, Inc. | Adaptive computing ensemble microprocessor architecture |
WO2007100484A1 (en) * | 2006-02-28 | 2007-09-07 | Microsoft Corporation | Thread interception and analysis |
US7716530B2 (en) * | 2006-02-28 | 2010-05-11 | Microsoft Corporation | Thread interception and analysis |
US7802073B1 (en) | 2006-03-29 | 2010-09-21 | Oracle America, Inc. | Virtual core management |
US20070260841A1 (en) | 2006-05-02 | 2007-11-08 | Hampel Craig E | Memory module with reduced access granularity |
US8924680B2 (en) | 2007-04-12 | 2014-12-30 | Rambus Inc. | Memory controllers, systems, and methods supporting multiple request modes |
US7926035B2 (en) * | 2007-04-24 | 2011-04-12 | Microsoft Corporation | Testing multi-thread software using prioritized context switch limits |
EP2423808B1 (en) * | 2007-06-20 | 2014-05-14 | Fujitsu Limited | Arithmetic device |
US8219788B1 (en) | 2007-07-23 | 2012-07-10 | Oracle America, Inc. | Virtual core management |
US8572577B2 (en) * | 2008-06-20 | 2013-10-29 | International Business Machines Corporation | Monitoring changes to data within a critical section of a threaded program |
US8024719B2 (en) | 2008-11-03 | 2011-09-20 | Advanced Micro Devices, Inc. | Bounded hash table sorting in a dynamic program profiling system |
US20100115494A1 (en) * | 2008-11-03 | 2010-05-06 | Gorton Jr Richard C | System for dynamic program profiling |
US8478948B2 (en) * | 2008-12-04 | 2013-07-02 | Oracle America, Inc. | Method and system for efficient tracing and profiling of memory accesses during program execution |
KR101313692B1 (ko) * | 2009-12-18 | 2013-10-02 | 한국전자통신연구원 | 로봇용 소프트웨어 컴포넌트를 실행하는데 있어서 고장 감내 방법 및 장치 |
US8365014B2 (en) * | 2010-01-14 | 2013-01-29 | Juniper Networks, Inc. | Fast resource recovery after thread crash |
GB2484458A (en) | 2010-10-04 | 2012-04-18 | Thorn Security | Commissioning detector units of an alarm system by means of a remote infrared based communication tool |
US8984518B2 (en) | 2010-10-14 | 2015-03-17 | Electronics And Telecommunications Research Institute | Apparatus and method for executing components based on thread pool |
US8671309B2 (en) * | 2011-07-01 | 2014-03-11 | Intel Corporation | Mechanism for advanced server machine check recovery and associated system software enhancements |
US9268719B2 (en) | 2011-08-05 | 2016-02-23 | Rambus Inc. | Memory signal buffers and modules supporting variable access granularity |
US8631292B2 (en) * | 2011-08-29 | 2014-01-14 | Freescale Semiconductor, Inc. | Multi-threading flip-flop circuit |
US9069598B2 (en) * | 2012-01-06 | 2015-06-30 | International Business Machines Corporation | Providing logical partions with hardware-thread specific information reflective of exclusive use of a processor core |
US9734033B2 (en) | 2014-12-08 | 2017-08-15 | International Business Machines Corporation | Implementing processor functional verification by generating and running constrained random irritator tests for multiple processor system and processor core with multiple threads |
US10445133B2 (en) | 2016-03-04 | 2019-10-15 | Nxp Usa, Inc. | Data processing system having dynamic thread control |
US10706101B2 (en) | 2016-04-14 | 2020-07-07 | Advanced Micro Devices, Inc. | Bucketized hash tables with remap entries |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4489401A (en) * | 1982-04-12 | 1984-12-18 | Seeq Technology, Inc. | Electrical partitioning scheme for improving yields during the manufacture of semiconductor memory arrays |
EP0729097A1 (en) * | 1995-02-07 | 1996-08-28 | Sun Microsystems, Inc. | Method and apparatus for run-time memory access checking and memory leak detection of a multi-threaded program |
US5659551A (en) * | 1995-05-31 | 1997-08-19 | International Business Machines Corporation | Programmable computer system element with built-in self test method and apparatus for repair during power-on |
US5805789A (en) * | 1995-12-14 | 1998-09-08 | International Business Machines Corporation | Programmable computer system element with built-in self test method and apparatus for repair during power-on |
US5778243A (en) * | 1996-07-03 | 1998-07-07 | International Business Machines Corporation | Multi-threaded cell for a memory |
US6119145A (en) * | 1997-02-28 | 2000-09-12 | Oracle Corporation | Multithreaded client application storing a separate context for each transaction thus allowing threads to resume transactions started by other client threads |
US5835705A (en) * | 1997-03-11 | 1998-11-10 | International Business Machines Corporation | Method and system for performance per-thread monitoring in a multithreaded processor |
US6697935B1 (en) * | 1997-10-23 | 2004-02-24 | International Business Machines Corporation | Method and apparatus for selecting thread switch events in a multithreaded processor |
US6256775B1 (en) * | 1997-12-11 | 2001-07-03 | International Business Machines Corporation | Facilities for detailed software performance analysis in a multithreaded processor |
US6418542B1 (en) * | 1998-04-27 | 2002-07-09 | Sun Microsystems, Inc. | Critical signal thread |
-
2000
- 2000-08-15 US US09/638,577 patent/US6748556B1/en not_active Expired - Fee Related
-
2001
- 2001-08-08 KR KR10-2001-0047693A patent/KR100388550B1/ko not_active IP Right Cessation
- 2001-08-09 JP JP2001242917A patent/JP3683837B2/ja not_active Expired - Fee Related
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6681345B1 (en) * | 2000-08-15 | 2004-01-20 | International Business Machines Corporation | Field protection against thread loss in a multithreaded computer processor |
JP2008512746A (ja) * | 2004-09-08 | 2008-04-24 | インテル・コーポレーション | オペレーティングシステム独立エージェント |
US7774532B2 (en) | 2005-03-03 | 2010-08-10 | Nec Corporation | Processing device, failure recovery method therefor, and failure restoration method |
US8090991B2 (en) | 2006-02-06 | 2012-01-03 | Fujitsu Limited | Information processing apparatus, method, and computer program product for self-diagnosis for utilizing multiple diagnostic devices, each having exclusive access to a resource |
WO2008155794A1 (ja) | 2007-06-19 | 2008-12-24 | Fujitsu Limited | 情報処理装置 |
US8151097B2 (en) | 2007-06-19 | 2012-04-03 | Fujitsu Limited | Multi-threaded system with branch |
JP2015036983A (ja) * | 2013-08-13 | 2015-02-23 | 三星電子株式会社Samsung Electronics Co.,Ltd. | 多重スレッド実行プロセッサ、及びその動作方法 |
Also Published As
Publication number | Publication date |
---|---|
KR100388550B1 (ko) | 2003-06-25 |
JP3683837B2 (ja) | 2005-08-17 |
US6748556B1 (en) | 2004-06-08 |
KR20020014694A (ko) | 2002-02-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3683837B2 (ja) | スレッド能力を変更する方法及びマルチスレッド・コンピュータ・システム | |
JP3683838B2 (ja) | 正常なコンピュータ処理を継続する方法及びマルチスレッド・コンピュータ・システム | |
US7117389B2 (en) | Multiple processor core device having shareable functional units for self-repairing capability | |
US7770067B2 (en) | Method for cache correction using functional tests translated to fuse repair | |
JP3706542B2 (ja) | 処理コアの使用を動的に更新する方法および装置 | |
JP4215393B2 (ja) | 集積回路の修復方法 | |
EP2966650B1 (en) | Memory built-in self test for a data processing apparatus | |
US7454654B2 (en) | Multiple parallel pipeline processor having self-repairing capability | |
US8055960B2 (en) | Self test apparatus for identifying partially defective memory | |
US7529998B2 (en) | Runtime reconfiguration of reconfigurable circuits | |
JPH0260145B2 (ja) | ||
CN103164316B (zh) | 硬件监视器 | |
JP2012248194A (ja) | 状態保持回路における状態保全性の検証 | |
JPH10301846A (ja) | 修復マスクを使用したキャッシュ・アレイ欠陥の機能的迂回方法及びシステム | |
JP4071942B2 (ja) | データ処理装置及びデータプロセッサ | |
US8046648B1 (en) | Method and apparatus for controlling operating modes of an electronic device | |
JPS6211734B2 (ja) | ||
US10311963B2 (en) | Data processing | |
US7065694B2 (en) | Adaptive runtime repairable entry register file | |
TWI410792B (zh) | 用於自動識別組件之方法、資料處理系統及電腦程式產品 | |
US8904227B2 (en) | Cache self-testing technique to reduce cache test time | |
JP2008262648A (ja) | 半導体集積回路装置 | |
JP2001307497A (ja) | 半導体集積回路装置 | |
KR20020082431A (ko) | 반도체 장치, 시스템, 및 메모리 액세스 제어 방법 | |
JP2003337758A (ja) | 二重化メモリシステム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050201 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050307 |
|
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: 20050510 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20050526 |
|
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: 20080603 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090603 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100603 Year of fee payment: 5 |
|
LAPS | Cancellation because of no payment of annual fees |