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
Application number
JP2001242917A
Other languages
English (en)
Other versions
JP3683837B2 (ja
Inventor
Salvatore N Storino
サルヴァトーレ・エヌ・ストリノ
J Alman Gregory
グレゴリィ・ジェイ・アルマン
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 JP2002108630A publication Critical patent/JP2002108630A/ja
Application granted granted Critical
Publication of JP3683837B2 publication Critical patent/JP3683837B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/28Error detection; Error correction; Monitoring by checking the correct order of processing
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/18Address generation devices; Devices for accessing memories, e.g. details of addressing circuits
    • G11C29/26Accessing multiple arrays
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3851Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution from multiple instruction streams, e.g. multistreaming
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3861Recovery, e.g. branch miss-prediction, exception handling
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/44Indication or identification of errors, e.g. for repair
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/70Masking faults in memories by using spares or by reconfiguring
    • G11C29/78Masking faults in memories by using spares or by reconfiguring using programmable devices
    • G11C29/80Masking faults in memories by using spares or by reconfiguring using programmable devices with improved layout
    • G11C29/816Masking faults in memories by using spares or by reconfiguring using programmable devices with improved layout for an application-specific layout
    • G11C29/818Masking faults in memories by using spares or by reconfiguring using programmable devices with improved layout for an application-specific layout for dual-port memories
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C2029/0401Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals in embedded memories
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/70Masking faults in memories by using spares or by reconfiguring
    • G11C29/88Masking faults in memories by using spares or by reconfiguring with partially good memories
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C8/00Arrangements for selecting an address in a digital store
    • G11C8/16Multiple 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

(57)【要約】 【課題】 マルチスレッド・プロセッサにおいて、1
つ又は複数のスレッドを選択的に不能にする。 【解決手段】各々のスレッドの機能を別々にテストし
て、スレッドが、欠陥のあるレジスタ/アレイを有する
かどうかを識別し、もし欠陥があれば、又は他の理由に
よって、そのスレッドに固有のレジスタ/アレイへのア
クセスを選択的に不能にする。マルチスレッド・レジス
タ/アレイ内の個々の記憶要素を不能にすることがで
き、また、障害を起こしたスレッドに関連づけられたハ
ードウェア・レジスタへのアクセス、又はハードウェア
・レジスタ内の個々のビットへのアクセスを不能にする
ことができる。不能にされたスレッドのデータ及び命令
を、他のスレッドへ回送する手法が使用可能である。好
ましくは、プロセッサが販売される前に、テストが実行
されてレジスタ/アレイへのアクセスを不能にする方法
が完了される。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、一般的にはハード
ウェア・マルチスレッド・コンピュータ処理の分野に関
し、更に具体的には、ハードウェア・マルチスレッド・
コンピュータ・プロセッサが実行することができるスレ
ッドの数を変更する方法に関する。
【0002】
【従来の技術】ハードウェア・マルチスレッド・コンピ
ュータ・プロセッサは、設計されたハードウェア・プロ
セッサ内の複数のスレッドの状態を、プロセッサ・コア
内に保全する。各々のハードウェア・レジスタが固有の
スレッドに関連づけられている場合、ハードウェア・レ
ジスタを単に変更することによって、幾つかのスレッド
をマルチスレッド・プロセッサの中で実行してよい。プ
ロセッサはマシン・サイクルごとにレジスタを変更して
よいか、又は、例えば、プロセッサが、より遠いキャッ
シュ又はメモリからのデータ又は命令を待っているため
にアイドル状態にあるとき、プロセッサはレジスタを切
り替えてよい(即ち、スレッドを切り替えてよい)。
【0003】最近、プロセッサのレジスタ、例えば汎用
及び特殊目的レジスタ及び他のマルチスレッド・メモリ
・アレイは、読み出し独立性を無視するマルチスレッド
のために専門化されてきた。マルチスレッド・レジスタ
/アレイは、依然として、マトリックスとして配列され
た記憶セルを有するが、各々の記憶セルは多数の記憶要
素を有し、各々の記憶要素は動作の固有のスレッドに関
連づけられている。ハードウェア・マルチスレッド処理
は、パフォーマンスの予想を越え、コンピュータ・アー
キテクチャの規範的パラダイムとなりつつある。
【0004】しかし、プロセッサ内で1つ又は複数のス
レッドを不能にすることが望ましい場合がある。これ
は、マルチスレッド・プロセッサが、単一スレッド・プ
ロセッサとしてのみ機能することが必要である場合であ
る。マルチスレッド・プロセッサが単一スレッド・プロ
セッサとしてのみ機能する必要がある場合の例は、プロ
セッサが製造された後、顧客へ販売される前に、プロセ
ッサの設計をテストするプロセッサ・ブリングアップ
(bring-up)テストの場合である。単一スレッド処理が
好ましい他の場合は、マルチスレッド能力を使用するよ
うにプログラムされていないオペレーティング・システ
ムと共に、プロセッサが使用される場合である。
【0005】更に、マルチスレッド・プロセッサの1つ
又は複数のスレッドを不能にすることが好ましい他の場
合は、マルチスレッド・レジスタ/アレイに欠陥が生じ
て、コンピュータ障害となる場合である。コンピュータ
のコンポーネントが組み立てられてアセンブルされた後
のコンピュータ障害を避けるため、多くの製造業者は、
コンピュータが顧客へ販売される前に、プロセッサ及び
メモリ・コンポーネントをテストし、誤りを有するコン
ピュータ・コンポーネントを除去する。プロセッサ障害
の1つのタイプは、特に、プロセッサ・コア内の汎用及
び特殊目的レジスタのAC欠陥、及び正常な使用のもと
でコンポーネントにストレスを加えることによって生じ
たコンピュータのメイン・ランダム・アクセス・メモリ
のAC欠陥に帰せられてよい。更に、プロセッサのレジ
スタ/アレイは、LBIST及びABISTを受けるか
も知れない。これらのテストは、必要な時間にビットを
掴んで保持するディジタル記憶装置の能力をテストす
る。現在、マルチスレッド・プロセッサが、これらのテ
ストの1つに失敗すると、それは捨てられる。
【0006】しかし、プロセッサの障害は、1つ又は幾
つかのスレッドだけに固有であって、他のスレッドは正
常に実行できるかも知れない。従って、マルチスレッド
・プロセッサが多数のスレッドを処理できなくても、そ
れは、より少数のスレッド又は1つだけのスレッドを処
理できるかも知れない。プロセッサは、縮小された能力
と共に販売されたとき、救うことのできる価値を有する
が、もしプロセッサが捨てられると、その価値は失われ
てしまう。
【0007】
【発明が解決しようとする課題】従って、マルチスレッ
ド・プロセッサ内で実行可能なスレッドの数を縮小し
て、単一スレッド・モード又は縮小スレッド・モードで
処理できるプロセッサ能力を維持する必要性が産業界に
存在する。更に、プロセッサが、その縮小されたスレッ
ド能力と共に販売及び使用されることができ、またプロ
セッサが、正常な単一スレッド処理、又は欠陥のある記
憶セルを有しない縮小された数の他のスレッドのマルチ
スレッド処理を実行できるように、この縮小されたスレ
ッド能力を実行できるプロセッサを救助する必要性が存
在する。
【0008】更に、コンピュータが顧客へ販売される前
に、マルチスレッド記憶要素を有するマルチスレッド・
レジスタ及び、又はメモリ・アレイの欠陥を検出する必
要性が、マルチスレッド・コンピュータ産業界に存在す
る。もし障害を起こしたスレッドに関連づけられたマル
チスレッド・メモリ又はレジスタ内の記憶要素のみを、
プロセッサで使用できないようにすれば、プロセッサ自
体は、捨てられる必要はないであろう。欠陥のある記憶
要素に関連づけられたスレッドのスレッド処理は、適正
に機能するスレッドの記憶要素へ回送されることができ
る。
【0009】
【課題を解決するための手段】これらの必要性、及び当
業者に明らかとなるであろう他の必要性は、複数のスレ
ッドを実行することができるハードウェア・マルチスレ
ッド・コンピュータ処理システムのスレッド能力を変更
する方法によって満足させられる。この方法は、各々の
スレッドに固有に関連づけられたレジスタ/アレイの障
害を分離することができるテストを実行し、少なくとも
1つのレジスタ/アレイの障害を検出して、障害を起こ
したレジスタ/アレイが固有に関連づけられたスレッド
を記録し、障害を起こしたレジスタ/アレイを有するス
レッドに関連づけられた全てのレジスタ/アレイへのア
クセスを不能にし、検出された障害を有しない他のスレ
ッドに固有に関連づけられた全てのレジスタ/アレイへ
のアクセスを維持するステップを含む。更に、各々のス
レッドに固有に関連づけられたレジスタ/アレイの障害
を分離することができるテストを実行するステップは、
レジスタ/アレイの臨界セクションを働かせるストレス
のもとで顧客のパフォーマンス要件を代表する符号化命
令を実行することを含む。更に、テストは、ロジック・
ビルトイン・セルフ・テスト(LBIST)及び、又は
アレイ・ビルトイン・セルフ・テスト(ABIST)を
含んでよい。
【0010】レジスタ/アレイは、記憶セルを有するマ
ルチスレッド・レジスタ/アレイを含み、各々の記憶セ
ルは、1つのスレッドに固有に関連づけられた1つの記
憶要素を有してよい。
【0011】更に、障害を起こしたレジスタ/アレイを
有するスレッドに関連づけられた全てのレジスタ/アレ
イへのアクセスを不能にするステップは、障害を起こし
たレジスタ/アレイを有するスレッドに関係するレジス
タ/アレイへの読み出し/書き込みポートを切断するた
めヒューズを飛ばすことを含む。代替の実施形態におい
て、障害を起こした少なくとも1つのレジスタ/アレイ
が固有に関連づけられたスレッドに関連づけられた全て
のレジスタ/アレイへのアクセスを不能にするステップ
は、スレッドのハードウェア・スレッド切り替えイベン
ト制御レジスタ内の複数のスレッド切り替え制御イベン
トのいずれかを不能にすることを含む。更に、他の実施
形態によって予想されることとして、障害を起こした少
なくとも1つのレジスタ/アレイが固有に関連づけられ
たスレッドに関連づけられた全てのレジスタ/アレイへ
のアクセスを不能にするステップは、マイクロコード命
令を実行することによって、スレッド切り替え命令を生
成することを含む。
【0012】更に、本発明は、複数のスレッドを実行す
ることができるハードウェア・マルチスレッド・コンピ
ュータ処理システムのスレッド能力を変更する方法と考
えられる。この方法は、マルチスレッド・レジスタ/ア
レイ内の記憶要素の障害を分離する機能テストを実行
し、マルチスレッド・レジスタ/アレイは記憶セルのマ
トリックスとして配列され、更に、各々の記憶セルは複
数の記憶要素を含み、各々の記憶要素は多数のスレッド
の各々に固有に対応し、少なくとも1つの記憶要素の障
害を検出して、障害を起こした少なくとも1つの記憶要
素が固有に関連づけられた特定のスレッドを記録し、障
害を起こした少なくとも1つの記憶要素に関連づけられ
た特定のスレッドに固有に対応する全ての記憶要素を不
能にし、特定のスレッドのデータを、他のスレッドに固
有に関連づけられた記憶要素へ回送するステップを含
む。
【0013】更に、特定のスレッドに関連づけられた全
ての記憶要素を不能にする前記ステップは、他のスレッ
ドに関連づけられた個々の記憶要素の中の他の記憶要素
を選択するため、マルチスレッド・コンピュータの中で
マイクロコード命令を実行することによって、スレッド
切り替え信号を生成することを含んでよい。
【0014】代替的に、特定のスレッドに関連づけられ
た全ての記憶要素を不能にする前記ステップは、更に、
ヒューズを飛ばすことを含む。ヒューズは、特定のスレ
ッドの全ての記憶要素へ接続された全ての読み出し/書
き込みポートに置かれてよい。ヒューズは、スレッド切
り替えイベント制御レジスタに置かれて、特定のスレッ
ドに対するスレッド切り替えイベント制御レジスタの全
て又は一部分を不能にしてよく、又は、ヒューズは、ス
レッド切り替えイベント制御レジスタ内の個々のビット
へ接続されて、個々のビットが特定のスレッドを不能に
してよい。更に、ヒューズは、特定のスレッドに関係す
るスレッド状態レジスタへ接続されよい。即ち、明確に
は、ヒューズは、非活動状態を有するスレッドとして特
定のスレッドをマークするため、スレッド状態レジスタ
の個々のビットへ接続されてよい。
【0015】更に、本発明は、動作の少なくとも1つの
スレッドを不能にすることができるマルチスレッド・コ
ンピュータ・システムと考えられる。このマルチスレッ
ド・コンピュータ・システムは、少なくとも1つのマル
チスレッド・コンピュータ・プロセッサと、マルチスレ
ッド・コンピュータ・プロセッサにおける動作の複数の
スレッドの各々に対する少なくとも1つのスレッド切り
替え制御レジスタと、各々の記憶セルが動作の1つのス
レッドに固有に関連づけられた記憶要素を有するマルチ
スレッド記憶セルを有する少なくとも1つのハードウェ
ア・マルチスレッド・メモリ/レジスタ・アレイと、少
なくとも1つのマルチスレッド・コンピュータ・プロセ
ッサに接続されたメイン・メモリと、複数のデータ記憶
装置、1つ又は複数の外部通信ネットワーク、コンピュ
ータ・プロセッサとの間でユーザ入力を与える1つ又は
複数の入力/出力装置から成るグループの少なくとも1
つへ、マルチスレッド・コンピュータ・プロセッサ及び
メイン・メモリを接続するバス・インタフェースとを含
む。更に、装置は、プロセッサの最初のブリングアップ
の間に少なくとも1つのマルチスレッド・コンピュータ
・プロセッサ内で動作の少なくとも1つのスレッドの機
能テストを実行する機能テスト生成手段と、機能テスト
を受けている動作の少なくとも1つのスレッドに固有に
関連づけられた記憶要素の障害を検出する記憶要素障害
検出手段と、マルチスレッド記憶セル内で機能テストを
受けている動作の少なくとも1つのスレッドに関連づけ
られた全ての記憶要素を不能にする記憶要素不能手段と
を含む。
【0016】更に、本発明は、複数のスレッドを処理す
る手段と、複数のスレッドの各々の状態を、マルチスレ
ッド・プロセッサ内のハードウェア・レジスタに記憶す
る手段と、個々のスレッドに関係するメモリ記憶要素に
欠陥があるかどうかを検出する手段と、欠陥があるメモ
リ記憶要素へのアクセスを不能にする手段と、欠陥がな
い他のメモリ記憶要素へのアクセスを維持する手段と、
欠陥があるメモリ記憶要素に関係する個々のスレッドの
処理及び記憶を、欠陥があるメモリ記憶要素を有しない
少なくとも1つの他のスレッドへリダイレクトする手段
とを含むマルチスレッド・プロセッサであると見ること
ができる。
【0017】
【発明の実施の形態】本発明の好ましい実施形態に従っ
て選択的に不能にされることができるマルチスレッド記
憶セルを含むレジスタを有するコンピュータ・システム
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を有するシステムで使用されること
ができるであろう。
【0018】各々のCPU101は、多数のスレッドの
状態を保全することができる。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ロ
ード/記憶とは、多数のワード又はワード・ストリング
のロード又は記憶ではない。
【0019】マルチスレッド・プロセッサ設計に関する
追加の背景情報は、次の共通譲渡された同時係属米国特
許出願に含まれる。これらの特許出願は、参照して、そ
れらの全体をここに組み込まれる。本願と同時に出願さ
れ、「マルチスレッド・コンピュータ・プロセッサのス
レッド損失に対する現場防止」(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)。これ
らの出願で説明されるマルチスレッド・プロセッサ設計
は、粗粒度マルチスレッド実現方法であるが、本発明
は、粗粒度マルチスレッド、又は細粒度マルチスレッド
のいずれにも応用可能であることを理解すべきである。
【0020】マルチスレッド・メモリ・レジスタ/アレ
イは、共通の読み出しデータ・バスを有する通常の2ス
レッド・メモリ・アレイと著しく異なっている。共通読
み出しバスを有するコンピュータ・アーキテクチャのパ
ラダイムは、読み出し独立性が必要であること、及び各
々のスレッドのデータが同時に読み出されるための別々
の読み出しデコーダを必要とすることを仮定している。
しかし、読み出し独立性を無視することによって、重大
なマイナス結果を受けることなく、最適配線能力及び関
連した最適最小トランジスタ数を有するマルチスレッド
・メモリを達成できることが発見された。なぜなら、2
つ以上のスレッドのデータが同時に要求されるインスタ
ンスの数は、無視できるからである。図2のマルチスレ
ッド記憶セルは、読み出し独立性を無視することによっ
て、実質的なマイナスの結果を受けることなく、チップ
表面領域の消費を著しく減らすことができるという発見
を反映している。なぜなら、読み出し独立性は、一時に
1つのスレッドだけをアクセスできるプロセッサに対し
ては、無視できる機能的属性だからである。スレッド・
セレクタ及び読み出しポートに必要なトランジスタの数
は、スレッドの各々について別々の読み出しポートを形
成する場合に必要であった数よりも少なくなる。
【0021】図2は、本願の譲受人によって共通所有さ
れる米国特許第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には示されていない)へ接続される。
【0022】更に、図2は、スレッド0のための書き込
みポート310、及びスレッド1のための書き込みポー
ト312を含む。書き込みポートの数は、記憶要素へ書
き込むことができる機能ユニットの数、通常は1を超え
る数、例えば3から12までの機能ユニットの数に対応
する。スレッド0の記憶要素320は、書き込みポート
310及びスレッド・セレクタ330へ接続され、スレ
ッド1の記憶要素322は、書き込みポート312及び
スレッド・セレクタ330へ接続される。
【0023】プロセッサ(図示されていない)は、スレ
ッド0を選択するようにスレッド・セレクタ330を制
御することによって、記憶要素320内のデータを読み
出すことができる。それによって、記憶要素320のデ
ータは、読み出しポート340上で利用可能になる。同
様に、記憶要素322内のデータを読み出すために
は、、プロセッサが、記憶要素322からの線を選択す
るようにスレッド・セレクタ330を制御することが必
要である。
【0024】図3は、図2の実施形態の、更に詳細なブ
ロック図である。図3は、マルチスレッド記憶セル41
0から形成された2スレッド・アレイ402を示す。図
3の2スレッド・アレイは、読み出しデコーダ430、
432、434、436、スレッド0の書き込みデコー
ダ438、スレッド1の書き込みデコーダ440、及び
マルチスレッド記憶セル410のアレイ450を含む。
1つの記憶セル410に対する書き込み相互接続のみが
示される。なぜなら、アレイ内の他のセルに対する相互
接続は、同じだからである。
【0025】書き込みデコーダ438、440の各々
は、書き込みアドレス・バス418、422へ接続さ
れ、それぞれ、それ自身の書き込みスレッド選択線41
6、420へ接続される。このようにして、スレッド選
択は、2スレッド・レジスタ402に対して外部的に行
われる。対照的に、読み出しデコーダ、例えば430、
432、434、436は、読み出しアドレス・バス4
12へ接続されるが、読み出しスレッド選択線414に
は接続されない。むしろ、どのスレッドを読み出すかの
選択が、マルチスレッド記憶セル410の外部ではなく
内部で起こるように、メモリ・セル410の各々が読み
出しスレッド選択線414へ接続される。
【0026】図4は、図2の実施形態の配線略図であ
る。具体的には、ブロックは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から形成される。ここでも、
各々のインタフェースにおけるポートの数は例示的なも
ので、実際には、記憶要素との間で読み出し/書き込み
を行うことができる機能ユニットの数に従って変わるで
あろう。
【0027】マルチスレッド記憶セルを有するレジスタ
及びメモリ・アレイは、製造された後にテストされる。
幾つかのテスト手順があるが、2つだけを挙げると、L
BIST及びABISTがある。それらのテストでは、
既知のビット・シーケンスがアレイの中へ入力され、ア
レイの出力と比較される。適正に機能するメモリ・アレ
イでは、入力は出力とマッチする。これらのシーケンス
は、高速で実行され、多くのメモリ・セルを同時に巻き
込むことができ、プロセッサへ「ストレス」を加えて、
その障害パラメータ(もしあれば)を決定することがで
きる。他の種類のテストは機能テストであって、その場
合、顧客のパフォーマンス要件を代表する実際の符号化
命令がストレスのもとで実行され、メモリ・アレイの臨
界セクションを働かせる。再び、これらのテストは異な
ったプロセッサ速度で実行されることができ、プロセッ
サが障害を起こすかどうか、及び何時プロセッサが障害
を起こすかを決定することができる。そのような障害
は、最も普通では、マルチスレッド記憶セル内のビット
値を捕捉して保持することのできないメモリ・アレイ及
び汎用並びに特殊レジスタの結果である。本発明の重要
な特徴は、別々のスレッドに関連づけられた個々の記憶
セル内に記憶された値をテストする能力である。言い換
えれば、本発明との関連において、各々のスレッドは、
今や別々にテストされることができる。
【0028】図5は、マルチスレッド・プロセッサの障
害を検出する方法の簡単なフローチャートである。図5
は、障害が起こるとすれば、それが起こるまで実際の符
号化命令を実行する機能テストを例示するが、他のテス
ト、例えば、メモリ・アレイをテストするためのABI
ST、LBISTなども、本発明との関連で使用される
ことができる。典型的には、これらのテストは、製造さ
れた後、及び、又は現場におけるプロセッサ・システム
の正常な動作の間、即ち、顧客の活動場所で正常なプロ
セッサ実行の間に定期的に行われる。ここで説明される
好ましい実施形態では、これらのテストは、最初のブリ
ングアップの間、即ち、プロセッサ・チップが製造され
た後、コンピュータへアセンブルされる前、又は販売さ
れる前に行われる。ステップ600からスタートして、
プロセスは、ステップ610へ進行する。ステップ61
0において、アクティブ・スレッドが第1のスレッドに
設定される。これは、CPU内のスレッド状態レジスタ
によって達成されることができる。次に、ステップ61
2において、アクティブ・スレッドの命令がプロセッサ
で実行される。ステップ614において、テスト手順
は、実行されるべきアクティブ・スレッドの更なる命令
があるかどうかをチェックする。もし更なる命令があれ
ば、プロセスはステップ612へループバックし、その
スレッドのために次の命令を実行する。しかし、もしス
テップ614において、選択されたスレッドの更なる命
令がなければ、ステップ616において、プロセスは、
選択されたスレッドの命令の実行中に障害が生じたかど
うかを質問する。
【0029】ステップ616において、レジスタ又はメ
モリ・アレイの障害がなければ、プロセスは、ステップ
618で、テストすべき追加のスレッドがあるかどうか
をチェックする。もしあれば、ステップ620で、他の
スレッドを選択するようにスレッド選択がプログラムさ
れる。それは、再びステップ612で、その命令の実行
をテストするためである。しかし、もし第1のスレッド
が障害を経験すれば、障害はステップ630で記録さ
れ、信号誤りメッセージがステップ632で生成され
る。この時点で、テストはステップ640で終了してよ
い。なぜなら、プロセッサは、マルチスレッド・レジス
タ又はメモリ・アレイ内で機能障害を経験したからであ
る。代替的に、テストは、全てのスレッドがテストされ
てしまうまで、選択されたアクティブ・スレッドとして
の次のスレッドへ継続する。ここで開示される特徴の発
明以前では、障害を経験したプロセッサ・チップは捨て
られたであろう。即ち、全てのスレッドがテストされた
わけではないので、プロセッサ内の他のスレッドが適正
に実行され、他のスレッドの記憶セルが完全に機能する
場合でも、捨てられたであろう。
【0030】このようにして、図5のフローチャート
は、どの特定スレッドが機能障害を起こすかを確かめる
ことによって、プロセッサを救助する利点を提供する幾
つかの発明的特徴を表す。マルチスレッド・レジスタを
有するプロセッサは捨てられる必要はない。その代わり
に、欠陥を有するそれらの記憶要素は不能にされ、マル
チスレッド・メモリ・アレイ内で障害を経験したスレッ
ドの命令及びデータは、同一又は異なったアレイ又はレ
ジスタ内の他のスレッドの記憶要素へ回送されてよい。
【0031】2スレッド・レジスタ/アレイ内で1つだ
けのスレッドに関連づけられた欠陥記憶要素を不能にす
るハードウェア装置及び方法の1つの実施形態が、図6
に示される。マルチスレッド・レジスタ/アレイ450
は、2つのスレッドを有するように示されるが、概念及
びハードウェアは、当業者によって、3つ以上のスレッ
ドへ容易に拡張されることができる。本発明の好ましい
実施形態に従った変更は、複数のヒューズブック、及び
ハードワイヤ・ロジックと連係するマルチプレクサを含
む。ヒューズブック内のヒューズは、「1」又は「0」
のディジタル信号を駆動するように設定されることがで
きる。典型的には、これらの値は、一度設定されると変
更されることはできない。
【0032】図6を参照すると、スレッド選択ヒューズ
ブックと呼ばれる第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と矛盾すると
き、アクティブ・スレッドによって要求されたレジスタ
/アレイへのアクセスは不能にされる。
【0033】図7は、マルチスレッド・レジスタ/アレ
イのハードウェアへ組み込まれることのできるヒューズ
ブックの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に止まるので、チップがパワーダウンさ
れるまで続く。
【0034】しかし、もしヒューズが、レーザの使用に
より、又は電気的に飛ばされると、トランジスタN2が
オン、即ち設定_ヒューズブックが1であるときを除い
て、ヒューズ_ネットはグラウンドへの通路を有しな
い。従って、設定_ヒューズブックが0になると、ヒュ
ーズ_ネットは0状態で浮動し、トランジスタN1及び
P1はオンになる。P1は、トランジスタN1を介して
ヒューズ_ネットのグラウンド値に打ち勝ち、ヒューズ
_フィードバックを0にし、ヒューズ_ラッチ及びヒュ
ーズ_ネットを1にする。設定_ヒューズブックが1へ
戻り、トランジスタP1及びN1が非活性化されると
き、ヒューズ_ラッチの値が1に保持され、トランジス
タN4がオフでヒューズ_フィードバックが0に保持さ
れ、ヒューズ_アウトが1に止まるように、トランジス
タP2を通るフィードバック通路は存在しない。
【0035】これまで、本発明の様々な実施形態が説明
されたが、それらは、限定ではなく例として提示された
こと、及び変形が可能であることを理解すべきである。
本発明は、潜在的イベントに基づいてスレッドを切り替
える粗粒度マルチスレッドに限定されない。即ち、それ
は細粒度マルチスレッド・システムに組み込まれるよう
に等しく変更されることができる。更に、本発明は、単
に2つのスレッドを有するハードウェア・マルチスレッ
ド・プロセッサに限定されず、多数のスレッドを実行す
ることのできるプロセッサへ拡張されることができる。
本発明の好ましい実施形態は、記憶セルの各々でスレッ
ドごとに固有の記憶要素を有するマルチスレッド・メモ
リ・レジスタに関して説明されたが、マルチスレッド・
プロセッサのスレッド能力を変更する発明的特徴は、各
々のスレッドについて別々のレジスタを有するマルチス
レッド・プロセッサにも等しく応用することができる。
レジスタを不能にするハードウェア手法は、ヒューズブ
ックを使用しなくても実現することができる。レジスタ
/アレイへのポートを不能にするために必要なロジック
も、異なったものでよい。従って、本発明の広さ及び範
囲は、これまで説明した例示的実施形態によって限定さ
れるべきではなく、クレイム及びそれらの同等物に従っ
てのみ限定されるべきである。
【0036】まとめとして、本発明の構成に関して以下
の事項を開示する。 (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つの他のスレッドへリダイレ
クトする手段と、を含むマルチスレッド・プロセッサ。
【図面の簡単な説明】
【図1】本発明の好ましい実施形態に従って、個々のス
レッドのための記憶セルを有するマルチスレッド・レジ
スタ/メモリ・アレイを使用するコンピュータ・システ
ムの主なハードウェア・コンポーネントを示す図であ
る。
【図2】マルチスレッド記憶セルの簡単なブロック図で
ある。
【図3】図2のマルチスレッド記憶セルの更に詳細なブ
ロック図である。
【図4】図3のマルチスレッド記憶セルの配線略図であ
る。
【図5】マルチスレッド・セルの記憶要素に欠陥がある
ことを検出するプロセスの簡単なフローチャートであ
る。
【図6】本発明の1つの実施形態に従って、スレッド能
力を変更する能力を有するマルチスレッド・メモリ・レ
ジスタ/アレイのコンポーネントの簡単なブロック図で
ある。
【図7】レジスタ/アレイのスレッド能力を変更するた
め、マルチスレッド・メモリ・レジスタ/アレイに従っ
て使用されることができるヒューズブックの回路図であ
る。
【符号の説明】
100 マルチスレッド・コンピュータ・システム 101、101A、101B 中央処理ユニット(CP
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 出力信号
───────────────────────────────────────────────────── フロントページの続き (51)Int.Cl.7 識別記号 FI テーマコート゛(参考) G06F 11/22 330 G06F 11/22 330F 350 350A 360 360A 12/16 310 12/16 310Q 310R (72)発明者 サルヴァトーレ・エヌ・ストリノ アメリカ合衆国55902 ミネソタ州ローチ ェスター、 サウスウェスト、 セブン ス・アヴェニュー 814 (72)発明者 グレゴリィ・ジェイ・アルマン アメリカ合衆国55902 ミネソタ州ローチ ェスター、 サウスウェスト、 メドウ・ ラン・ドライブ 123 Fターム(参考) 5B018 GA04 HA21 KA14 KA15 NA03 5B033 DD01 DD04 DD05 DD09 EA17 FA01 FA10 FA18 FA20 FA21 5B048 AA00 AA21 CC11 FF01 5B098 AA07 GA02 GA05 GC20 JJ01 JJ05

Claims (17)

    【特許請求の範囲】
  1. 【請求項1】複数のスレッドを実行することができるハ
    ードウェア・マルチスレッド・コンピュータ処理システ
    ムのスレッド能力を変更する方法であって、 (a)前記複数のスレッドの各々に固有に関連づけられ
    たレジスタ/アレイの障害を分離することができるテス
    トを実行するステップと、 (b)少なくとも1つのレジスタ/アレイの障害を検出
    して、障害を起こした少なくとも1つのレジスタ/アレ
    イが固有に関連づけられたスレッドを記録するステップ
    と、 (c)障害を起こした少なくとも1つのレジスタ/アレ
    イが固有に関連づけられたスレッドに関連づけられた全
    てのレジスタ/アレイへのアクセスを不能にするステッ
    プと、 (d)検出された障害を有しない前記複数のスレッドの
    中の他のスレッドに固有に関連づけられた全てのレジス
    タ/アレイへのアクセスを維持するステップと、 含む方法。
  2. 【請求項2】更に、前記テストを実行するステップ
    (a)が、レジスタ/アレイの臨界セクションを働かせ
    るストレスのもとで顧客のパフォーマンス要件を代表す
    る符号化命令を実行することを含む、請求項1に記載の
    方法。
  3. 【請求項3】更に、前記テストを実行するステップ
    (a)が、ロジック・ビルトイン・セルフ・テスト(L
    BIST)及び、又はアレイ・ビルトイン・セルフ・テ
    スト(ABIST)を実行するステップを含む、請求項
    1に記載の方法。
  4. 【請求項4】更に、前記レジスタ/アレイが、記憶セル
    を有するマルチスレッド・レジスタ/アレイを含み、各
    々の記憶セルが、前記複数のスレッドの1つに固有に関
    連づけられた1つの記憶要素を有する、請求項1に記載
    の方法。
  5. 【請求項5】更に、前記アクセスを不能にする前記ステ
    ップ(c)が、前記レジスタ/アレイへの少なくとも1
    つのポートを切断するためヒューズを飛ばすステップを
    含む、請求項1に記載の方法。
  6. 【請求項6】更に、前記アクセスを不能にする前記ステ
    ップ(c)が、スレッドのハードウェア・スレッド切り
    替え制御レジスタの中で、複数のスレッド切り替え制御
    イベントのいずれかを不能にするステップを含む、請求
    項1に記載の方法。
  7. 【請求項7】更に、前記アクセスを不能にする前記ステ
    ップ(c)が、マイクロコード命令を実行するステップ
    を含む、請求項1に記載の方法。
  8. 【請求項8】複数のスレッドを実行することができるハ
    ードウェア・マルチスレッド・コンピュータ処理システ
    ムのスレッド能力を変更する方法であって、 (a)マルチスレッド・レジスタ/アレイ内の記憶要素
    の障害を分離する機能テストを実行するステップであっ
    て、前記マルチスレッド・レジスタ/アレイは記憶セル
    のマトリックスとして配列され、更に各々の記憶セルは
    複数の記憶要素を含み、各々の記憶要素は複数のスレッ
    ドの各々に固有に対応している、前記ステップと、 (b)少なくとも1つの記憶要素の障害を検出して、障
    害を起こした少なくとも1つの記憶要素が固有に関連づ
    けられた特定のスレッドを記録するステップと、 (c)障害を起こした少なくとも1つの記憶要素に関連
    づけられた特定のスレッドに固有に対応する全ての記憶
    要素を不能にするステップと、 (d)特定のスレッドのデータを、前記複数のスレッド
    の中の他のスレッドに固有に関連づけられた記憶要素へ
    回送するステップと、 を含む方法。
  9. 【請求項9】更に、前記記憶要素を不能にするステップ
    (c)が、前記複数のスレッドの中の他のスレッドに関
    連づけられた個々の記憶要素の中の他の記憶要素を選択
    するためマルチスレッド・コンピュータの中でマイクロ
    コード命令を実行することによってスレッド切り替え信
    号を生成するステップを含む、請求項8に記載の方法。
  10. 【請求項10】更に、前記記憶要素を不能にするステッ
    プ(c)が、ヒューズを飛ばすことを含む、請求項8に
    記載の方法。
  11. 【請求項11】前記ヒューズが、前記特定のヒューズに
    関連づけられた全ての記憶要素へ接続された全ての読み
    出し/書き込みポートに置かれる、請求項10に記載の
    方法。
  12. 【請求項12】前記ヒューズが、スレッド切り替えイベ
    ント制御レジスタに置かれ、特定のスレッドに対するス
    レッド切り替えイベント制御レジスタの全て又は一部分
    を不能にする、請求項10に記載の方法。
  13. 【請求項13】前記ヒューズが、スレッド切り替えイベ
    ント制御レジスタ内の個々のビットに接続され、個々の
    ビットが特定のスレッドを不能にする、請求項12に記
    載の方法。
  14. 【請求項14】前記ヒューズが、前記特定のスレッドに
    関係するスレッド状態レジスタに接続される、請求項1
    0に記載の方法。
  15. 【請求項15】更に、前記ヒューズが、非活動状態を有
    するスレッドとして特定のスレッドをマークするため、
    スレッド状態レジスタの個々のビットに接続される、請
    求項14に記載の方法。
  16. 【請求項16】動作の少なくとも1つのスレッドを不能
    にすることができるマルチスレッド・コンピュータ・シ
    ステムであって、 (a)少なくとも1つのマルチスレッド・コンピュータ
    ・プロセッサと、 (b)前記マルチスレッド・コンピュータ・システムに
    おける動作の複数のスレッドの各々に対する少なくとも
    1つのスレッド切り替え制御レジスタと、 (c)記憶セルの各々が動作の1つのスレッドに固有に
    関連づけられた記憶要素を有するマルチスレッド記憶セ
    ルを有する少なくとも1つのハードウェア・マルチスレ
    ッド・メモリ/レジスタ・アレイと、 (d)少なくとも1つのマルチスレッド・コンピュータ
    ・プロセッサに接続されたメイン・メモリと、 (e)複数のデータ記憶装置、1つ又は複数の外部通信
    ネットワーク、コンピュータ・プロセッサとの間でユー
    ザ入力を提供する1つ又は複数の入力/出力装置から構
    成されるグループの少なくとも1つへ、マルチスレッド
    ・コンピュータ・プロセッサ及びメイン・メモリを接続
    するバス・インタフェースと、 (f)プロセッサの最初のブリングアップの間に、少な
    くとも1つのマルチスレッド・コンピュータ・プロセッ
    サ内で動作の少なくとも1つのスレッドの機能テストを
    実行する機能テスト生成手段と、 (g)機能テストを受けている動作の少なくとも1つの
    スレッドに固有に関連づけられた記憶要素の障害を検出
    する記憶要素障害検出手段と、 (h)マルチスレッド記憶セル内で機能テストを受けて
    いる動作の少なくとも1つのスレッドに関連づけられた
    全ての記憶要素を不能にする記憶要素不能手段と、を含
    むマルチスレッド・コンピュータ・システム。
  17. 【請求項17】マルチスレッド・プロセッサであって、 (a)複数のスレッドを処理する手段と、 (b)前記複数のスレッド各々の状態を、前記マルチス
    レッド・プロセッサ内のハードウェア・レジスタに記憶
    する手段と、 (c)個々のスレッドに関係するメモリ記憶要素に欠陥
    があるかどうかを検出する手段と、 (d)前記欠陥のあるメモリ記憶要素へのアクセスを不
    能にする手段と、 (e)欠陥のない他のメモリ記憶要素へのアクセスを維
    持する手段と、 (f)欠陥のあるメモリ記憶要素に関係する個々のスレ
    ッドの処理及び記憶を、欠陥のあるメモリ記憶要素を有
    しない少なくとも1つの他のスレッドへリダイレクトす
    る手段と、を含むマルチスレッド・プロセッサ。
JP2001242917A 2000-08-15 2001-08-09 スレッド能力を変更する方法及びマルチスレッド・コンピュータ・システム Expired - Fee Related JP3683837B2 (ja)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Cited By (7)

* Cited by examiner, † Cited by third party
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