JP2002123402A - 正常なコンピュータ処理を継続する方法、マルチスレッド・コンピュータ・システム、及びプログラム製品 - Google Patents

正常なコンピュータ処理を継続する方法、マルチスレッド・コンピュータ・システム、及びプログラム製品

Info

Publication number
JP2002123402A
JP2002123402A JP2001242945A JP2001242945A JP2002123402A JP 2002123402 A JP2002123402 A JP 2002123402A JP 2001242945 A JP2001242945 A JP 2001242945A JP 2001242945 A JP2001242945 A JP 2001242945A JP 2002123402 A JP2002123402 A JP 2002123402A
Authority
JP
Japan
Prior art keywords
thread
threaded
threads
register
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
JP2001242945A
Other languages
English (en)
Other versions
JP3683838B2 (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 JP2002123402A publication Critical patent/JP2002123402A/ja
Application granted granted Critical
Publication of JP3683838B2 publication Critical patent/JP3683838B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/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

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Debugging And Monitoring (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)
  • Microcomputers (AREA)

Abstract

(57)【要約】 【課題】 コンピュータの製造及び販売後に、動作の1
つだけのスレッドに関連づけられたレジスタ/アレイの
障害から生じるコンピュータ作業の損失を防ぐ。 【解決手段】本発明に従えば、どのスレッドが障害を経
験しているかを決定する機能テストを実行することがで
きる。もしスレッド障害が、スレッドに固有に関連づけ
られたレジスタ/アレイの障害を起こせば、本発明は、
それらのレジスタ/アレイへのアクセスを不能にする。
各々のスレッドは、レジスタ/アレイのそれ自身の組を
有するか、マルチスレッド・レジスタ/アレイ内の複数
の記憶要素の1つへ固有に割り当てられる。本発明を使
用して、プロセッサは他のスレッドの処理を継続してよ
く、不能にされたスレッド又は欠陥スレッドに関連づけ
られた命令及びデータは回送されることができる。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、一般的にはコンピ
ュータ・メモリ回路の分野に関し、更に具体的には、コ
ンピュータの製造及び販売後に、動作の1つだけのスレ
ッドに関連づけられたレジスタ/アレイの障害から生じ
るコンピュータ作業の損失を防ぐ方法に関する。
【0002】
【従来の技術】コンピュータ処理サービスのコンシュー
マとして、ビジネスはコンピュータ障害から生じるダウ
ンタイムの発生を恐れるが、これらの出来事は、実際
に、かなり多数の様式で起こる。バックアップされなか
ったデータを有するハード・ディスクが、クラッシュし
て、データが失われるかも知れない。更に大きな心配
は、おそらく、コンピュータのプロセッサ・コアが適正
に動作しないときである。新しいメモリ又は追加のメモ
リが、コンピュータを機能させず、コンピュータそれ自
身が破壊される。処理パワーのそのような損失は、多く
のビジネスに大きな損害を与える可能性がある。エアラ
インの航空路とスケジューリングが何時間も利用できな
いときの、特定エアラインの窮地を想起されたい。何百
万ドル、更には何十億ドルという損失が、コンピュータ
のダウンタイムから生じる可能性がある。
【0003】コンピュータ・コンポーネントが組み立て
られてアセンブルされ、そのコンピュータが販売された
後のコンピュータ障害を避けるため、多くの製造業者
は、コンピュータが顧客へ販売される前にプロセッサ及
びメモリ・コンポーネントをテストし、誤りを有するコ
ンピュータ・コンポーネントを除去する。欠陥のあるコ
ンピュータ・プロセッサを検出及び除去する最大の努力
にも拘わらず、コンピュータ・ハードウェアは、顧客の
施設で通常のストレスを加えられた処理動作の間に、依
然として障害を起こすかも知れない。プロセッサ障害の
1つのタイプは、特に、プロセッサ・コアにおける汎用
及び特殊目的レジスタのAC欠陥に帰することができる
か、通常の使用のもとでコンポーネントにストレスを加
えることによって生じたメイン・ランダム・アクセス・
メモリのAC欠陥に帰することができる。
【0004】或るテストは、顧客の施設で実行される。
例えば、スタティク・ランダム・アクセス・メモリ(S
RAM)アレイは、典型的には、ブートアップでテスト
される。もしプロセッサがテストに失敗すると、それは
「障害」としてマークされ、システムは、典型的には、
顧客サービス要員が現れるまで不能にされる。多数のプ
ロセッサの場合、特定のプロセッサが不能にされて、他
のプロセッサが余分の処理を引き受けるかも知れない。
従って、コンピュータのパフォーマンスは、顧客サービ
ス要員が到着するまで打撃を受ける。
【0005】しかし、SRAMは、マルチスレッド・メ
モリ・セルを有しない。現在、もしマルチスレッド・メ
モリ・アレイ又はレジスタの中で障害が起こると、マル
チスレッド・コンピュータ・システムは、多数のスレッ
ドからのデータ衝突として障害を表す誤りコードを表示
し、全体のシステムが不能にされる。もしシステムが多
数のプロセッサから構成されていれば、システムは、障
害を起こしたプロセッサなしに動作する。いずれにせ
よ、障害を起こしたスレッドを有するプロセッサは不能
にされて、処理は打撃を受ける。
【0006】
【発明が解決しようとする課題】通常の処理動作の間
に、マルチスレッド記憶セルを有するレジスタ及び、又
はメモリ・アレイ内の欠陥を検出する必要性が、マルチ
スレッド・コンピュータの産業界に存在する。もし障害
を起こしたスレッドに関連づけられたマルチスレッド・
メモリ又はレジスタ内の記憶要素のみが、プロセッサに
対して利用不可能になった場合、プロセッサそれ自体
は、不能にされる必要はない。むしろ、プロセッサは、
欠陥のある記憶要素を有しない他のスレッドの正常な処
理を継続することができ、欠陥のある記憶要素に関連づ
けられたスレッドを、損なわれていない記憶要素へ回送
することができよう。この方法は、全体のプロセッサを
不能にするのではなく、プロセッサを依然として使用し
続けることを可能にする。
【0007】
【課題を解決するための手段】これらの必要性、及び当
業者に明らかになるであろう他の必要性は、複数のスレ
ッドを実行しているハードウェア・マルチスレッド・コ
ンピュータ処理システム内で、スレッドの1つの障害に
も拘わらず、正常なコンピュータ処理を継続する方法に
よって満足させられる。この方法は、複数のハードウェ
ア・レジスタ/アレイを有するハードウェア・マルチス
レッド・プロセッサ内でスレッドの少なくとも1つの命
令を実行し、レジスタ/アレイの各々の1つは、スレッ
ドの各々の1つに関連づけられ、特定のスレッド、及び
特定のスレッドに関連づけられた少なくとも1つのレジ
スタ/アレイ上でテストを実行し、特定のスレッドに関
連づけられた少なくとも1つのレジスタ/アレイの障害
を検出し、特定のスレッドに関連づけられた、障害のあ
るレジスタ/アレイを不能にし、特定のスレッドのデー
タを、欠陥のない他の個々のレジスタ/アレイへ回送す
るステップを含む。
【0008】レジスタ/アレイは、マルチスレッド記憶
セルを有するマルチスレッド・レジスタ/アレイであっ
て、各々のマルチスレッド記憶セルは多数の記憶要素を
含み、各々の記憶要素は1つのスレッドに関連づけられ
ていてよい。この場合、複数のスレッドを実行している
ハードウェア・マルチスレッド・コンピュータ処理シス
テム内で、スレッドの1つの障害にも拘わらず、正常な
コンピュータ処理を継続する本発明の方法は、複数のス
レッドの各々に関連づけられた個々の記憶要素を含む少
なくとも1つのマルチスレッド・レジスタ/アレイを有
するハードウェア・マルチスレッド・プロセッサ内で、
複数のスレッドの少なくとも1つの命令を実行し、特定
のスレッド、及び特定のスレッドに関連づけられた個別
の記憶要素を有する少なくとも1つのマルチスレッド・
レジスタ/アレイの上でテストを実行し、特定のスレッ
ドに関連づけられた少なくとも1つの個別の記憶要素の
障害を検出し、特定のスレッドに関連づけられた全ての
記憶要素を不能にし、特定のスレッドのデータを、欠陥
のある記憶要素を有しない複数のスレッドの中の他のス
レッドに関連づけられた他の個別の記憶要素へ回送する
ステップを含む。
【0009】更に、方法は、特定のスレッドに関連づけ
られた少なくとも1つの個別の記憶要素の障害を示す誤
り信号を生成することを含む。欠陥のある記憶要素を有
しない他のスレッドの正常な処理は、継続してよい。
【0010】更に、特定のスレッド、及び特定のスレッ
ドに関連づけられた個別の記憶要素を有する少なくとも
1つのマルチスレッド・レジスタ/アレイの上でテスト
を実行するステップは、ストレスを加えられた処理条件
のもとで命令を実行する機能テストを実行することを含
んでよい。代替的に、テストは、ABIST及び、又は
LBISTテストであってよい。
【0011】特定のスレッドに関連づけられた全ての記
憶要素を不能にするステップは、他のスレッドに関連づ
けられた個別の記憶要素の中の他の記憶要素を選択する
スレッド選択信号を生成することを含んでよい。更に、
他の実施形態では、特定のスレッドに関連づけられた全
ての記憶要素を不能にするステップは、スレッド切り替
え制御レジスタ内で特定のスレッドに関係する複数のス
レッド切り替え制御イベントの全て又は幾つかを不能に
することを含んでよい。
【0012】更に、本発明は、現場において1つのスレ
ッドを不能にすることができるマルチスレッド・コンピ
ュータ・システムと考えられてよい。このシステムは、
少なくとも1つのマルチスレッド・コンピュータ・プロ
セッサと、マルチスレッド・コンピュータ・プロセッサ
における動作の複数のスレッドの各々に対する少なくと
も1つのスレッド切り替え制御レジスタと、マルチスレ
ッド記憶セルを有する少なくとも1つのハードウェア・
マルチスレッド・メモリ/レジスタ・アレイと、記憶セ
ルの各々が、1つのスレッドに固有に関連づけられた記
憶要素を有することと、少なくとも1つのマルチスレッ
ド・コンピュータ・プロセッサへ接続されたメイン・メ
モリと、複数のデータ記憶装置、1つ又は複数の外部通
信ネットワーク、コンピュータ・プロセッサとの間でユ
ーザ入力を提供する1つ又は複数の入力/出力装置から
成るグループの少なくとも1つへ、マルチスレッド・コ
ンピュータ・プロセッサ及びメイン・メモリを接続する
バス・インタフェースと、現場において正常な処理の間
にマルチスレッド・コンピュータ・プロセッサ内で少な
くとも1つのスレッドの機能テストを実行する機能テス
ト生成手段と、機能テストを受けているスレッドに固有
に関連づけられた記憶要素の障害を検出する記憶要素障
害検出手段と、機能テストで障害を経験しているスレッ
ドに関連づけられた全ての記憶要素を不能にする記憶要
素不能手段と、処理を継続するため、スレッドから、他
のスレッドに関連づけられた記憶要素へ、データをリダ
イレクトするデータ回送手段と、1つのスレッドが障害
を起こしたことを示すメッセージを伝搬する誤り信号生
成手段とを備えている。
【0013】更に、本発明は、動作の複数のスレッドの
1つの障害を検出するため、ハードウェア・マルチスレ
ッド・コンピュータ・プロセッサと共に使用されるプロ
グラム製品である。このプログラム製品は信号保有媒体
を含み、この信号保有媒体は、その上に、複数のスレッ
ドの少なくとも1つの一連の命令を有する機能テスト
と、ハードウェア・レジスタ/メモリ・アレイにおける
マルチスレッド記憶セル内の個別の記憶要素を不能にす
るスレッド不能手段と、不能にされた個別の記憶要素の
各々は、機能テストに失敗した少なくとも1つのスレッ
ドに関連づけられることと、プログラム可能レジスタを
再構成して、機能テストに失敗した少なくとも1つのス
レッドのデータを、機能テストに失敗しなかった他のス
レッドに関連づけられたマルチスレッド記憶セル内の他
の記憶要素へ回送するデータ回送手段と、少なくとも1
つのスレッドが機能テストに失敗したことを表示する誤
りメッセージ生成手段とを備えている。
【0014】
【発明の実施の形態】本発明の好ましい実施形態に従っ
て選択的に不能にされることができるマルチスレッド記
憶セルを含むレジスタを有するコンピュータ・システム
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、1
07、及び108と略記される。様々なバスが図1に示
されるが、これらは、様々な通信路を概念レベルで表す
ことを意図されており、バスの実際の物理構成は変わる
かも知れず、事実に、もっと複雑であることを理解すべ
きである。更に、図1はシステム構成の1つの例として
意図されており、コンピュータ・システムにおけるコン
ポーネントの実際の数、タイプ、及び構成は変わってよ
いことを理解すべきである。特に、本発明は、単一のマ
ルチスレッドCPUを有するシステム、又は多数のマル
チスレッドCPUを有するシステムで使用されることが
できるであろう。
【0015】各々のCPU101は、多数のスレッドの
状態を保全することができる。CPU101は、典型的
には、データを記憶するための複数の汎用レジスタ、及
び条件、中間結果、命令、及びプロセッサの状態を集合
的に決定する他の情報を記憶するための様々な特殊目的
レジスタを含む。この情報は、CPU101によってサ
ポートされる各々のスレッドのために複製される。CP
U101の内部には、スレッドの優先順位、その活動又
は非活動状態などに関する情報を含むハードウェア・ス
レッド状態レジスタ103A及び103Bが、各々のス
レッドごとに存在する。図1には、2スレッド・システ
ムであることを仮定して、2つのスレッド状態レジスタ
が示される。しかし、プロセッサは、3つ以上のスレッ
ドについて状態を保全し処理を行うことができる。スレ
ッド状態レジスタは、アクティブ・スレッド信号を生成
する。ハードウェア・スレッド切り替え制御レジスタ1
05A及び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ロード/記憶は、多数のワード又はワード・ストリングのロード又は記憶 ではない。
【0016】マルチスレッド・プロセッサ設計に関する
追加の背景情報は、次の共通譲渡された同時係属米国特
許出願に含まれる。これらの特許出願は、参照して、そ
れらの全体をここに組み込まれる。本願と同時に出願さ
れ、「マルチスレッド・コンピュータ・プロセッサのス
レッド能力の変更」(Changing the Thread Capacityof
a Multithreaded Computer Processor)と題する出願
番号不詳の特許出願(譲受人のドケット番号、ROC9
20000140)、1999年11月12日に出願さ
れ、「マルチスレッド処理のためのマスタ・スレーブ・
ラッチ回路」(Master-Slave Latch Circuit for Multi
threaded Processing)と題する第09/439,58
1号(譲受人のドケット番号、RO999−140)、
1999年3月10日に出願され、「マルチスレッド・
プロセッサのための命令キャッシュ」(Instruction Ca
che for Multithreaded Processor)と題する第09/
266,133号(譲受人のドケット番号、RO998
−277)、1997年11月21日に出願され、「マ
ルチスレッド・データ処理システムにおける多数エント
リ完全連想キャッシュ・バッファからのデータ・アクセ
ス」(Accessing Data from a Multiple Entry Fully A
ssociative Cache Buffer in a MultithreadData Proce
ssing System)と題する第08/976,533号(譲
受人のドケット番号、RO997−182)、1997
年11月10に出願され、「実効・リアル・アドレス・
キャッシュ管理装置及び方法」(Effective-To-Real Ad
dress Cache Managing Apparatus and Method)と題す
る第08/966,706号(譲受人のドケット番号、
RO997−155)、1997年10月23日に出願
され、「マルチスレッド・プロセッサにおけるスレッド
優先順位の変更」(Altering Thread Priorities in a
Multithreaded Processor)と題する第08/958,
718号(譲受人のドケット番号、RO997−10
6)、1997年10月23日に出願され、「マルチス
レッド・プロセッサ内でスレッド切り替えイベントを選
択する方法及び装置」(Method and Apparatus for Sel
ecting Thread Switch Events in a Multithreaded Pro
cessor)と題する第08/958,716号(譲受人の
ドケット番号、RO997−104)、1997年10
月23日に出願され、「マルチスレッド・プロセッサ・
システムにおけるスレッド切り替え制御」(Thread Swi
tch Control in a Multithreaded Processor System)
と題する第08/957,002号(譲受人のドケット
番号、RO996−042)、1997年10月23日
に出願され、「マルチスレッド・プロセッサで前方進行
を保証する装置及び方法」(An Apparatus and Method
to Guarantee Forward Progress in a Multithreaded P
rocessor)と題する第08/956,875号(譲受人
のドケット番号、RO997−105)、1997年1
0月23日に出願され、「マルチスレッド・プロセッサ
でスレッド切り替えを強制する方法及び装置」(Method
and Apparatus To Force a Thread Switch in a Multi
threaded Processor)と題する第08/956,577
号(譲受人のドケット番号、RO997−107)、1
996年12月27日に出願され、「マルチスレッド・
プロセッサにおける命令及び関連フェッチ・リクエスト
のバックグラウンド完了」(Background Completion of
Instruction and Associated Fetch Request in a Mul
tithread Processor)と題する第08/773,572
号(譲受人のドケット番号、RO996−043)。上
記の出願で説明されたマルチスレッド・プロセッサ設計
は、粗粒度マルチスレッドの実現方法であるが、本発明
は、粗粒度マルチスレッド又は細粒度マルチスレッドに
応用可能であることを理解すべきである。
【0017】マルチスレッド・メモリ・アレイは、共用
の読み出しデータ・バスを有する通常の2スレッド・メ
モリ・アレイと著しく異なっている。共用読み出しバス
を有するコンピュータ・アーキテクチャのパラダイム
は、読み出し独立性が必要であること、及び各々のスレ
ッドのデータが同時に読み出されるための別々の読み出
しデコーダを必要とすることを仮定する。しかし、読み
出し独立性を無視することによって、重大なマイナス結
果を受けることなく、最適配線能力及び関連した最適最
小トランジスタ数を有するマルチスレッド・メモリを達
成できることが発見された。なぜなら、2つ以上のスレ
ッドのためのデータが同時に要求されるインスタンスの
数は無視できるからである。図2のマルチスレッド記憶
セルは、読み出し独立性を無視することによって、実質
的なマイナスの結果を受けることなく、チップ表面領域
の消費を減らすことができるという発見を反映してい
る。なぜなら、読み出し独立性は、一時に1つのスレッ
ドだけをアクセスすることができるプロセッサに対して
は、無視できる機能的属性だからである。スレッド・セ
レクタ及び読み出しポートに必要なトランジスタの数
は、スレッドの各々について別々の読み出しポートを形
成する場合に必要であった数よりも少なくなる。
【0018】図2は、本願の譲受人と共通所有される米
国特許第5,778,243号に示されるマルチスレッ
ド記憶セルのブロック図である。マルチスレッド記憶セ
ル300は、スレッド0及びスレッド1を読み出しポー
ト340へ選択的に接続するスレッド・セレクタ330
を含むマルチスレッド読み出しインタフェースを有す
る。読み出しポート340の数は、記憶要素320及び
322から読み出され得る機能ユニットの数、通常は1
を超える数、例えば6から8の機能ユニットの数に対応
する。機能ユニットの例は、整数及び浮動小数点表現の
間で、整数、論理シフト、フィールド抽出、及び、又は
浮動小数点演算及び、又は変換を実行することができる
算術論理ユニットである。読み出し動作のためには、各
々の記憶要素320、322は、次のように機能ユニッ
トへ接続される。即ち、記憶要素320、322はスレ
ッド・セレクタ330へ接続され、スレッド・セレクタ
330は読み出しポート340の1つへ接続され、この
1つのポートはデコーダ(図2には示されていない)へ
接続され、デコーダは機能ユニット(同じく図2に示さ
れていない)へ接続される。
【0019】更に、図2は、スレッド0のための書き込
みポート310、及びスレッド1のための書き込みポー
ト312を含む。書き込みポートの数は、記憶要素へ書
き込むことができる機能ユニットの数、通常は1を超え
る数、例えば3つから12ままでの機能ユニットの数に
対応する。スレッド0のための記憶要素320は、書き
込みポート310及びスレッド・セレクタ330へ接続
され、スレッド1のための記憶要素322は、書き込み
ポート312及びスレッド・セレクタ330へ接続され
る。
【0020】プロセッサ(図示されていない)は、スレ
ッド0を選択するようにスレッド・セレクタ330を制
御することによって、記憶要素320内のデータを読み
出すことができる。それによって、記憶要素320のデ
ータは、読み出しポート340上で利用可能にされる。
同様に、記憶要素322内のデータを読み出すために
は、プロセッサが、記憶要素322からの線を選択する
ようにスレッド・セレクタ330を制御することが必要
である。
【0021】図3は、図2の実施形態の更に詳細なブロ
ック図である。図3は、マルチスレッド記憶セル410
から形成された2スレッド・アレイ402を示す。図3
の2スレッド・アレイは、読み出しデコーダ430、4
32、434、436、スレッド0のための書き込みデ
コーダ438、スレッド1のための書き込みデコーダ4
40、及びマルチスレッド記憶セル410のアレイ45
0を含む。1つの記憶セル410のためのワイヤ相互接
続のみが示される。なぜなら、アレイ内の他のセルの相
互接続は、同じだからである。
【0022】書き込みデコーダ438、440の各々
は、書き込みアドレス・バス418、422へ接続さ
れ、それぞれ、それ自身の書き込みスレッド選択線41
6、420へ接続される。このようにして、スレッド選
択は、2スレッド・レジスタ402に対して外部的に行
われる。対照的に、読み出しデコーダ、例えば430、
432、434、436は、読み出しアドレス・バス4
12へ接続されるが、読み出しスレッド選択線414に
は接続されない。むしろ、どのスレッドを読み出すかの
選択が、マルチスレッド記憶セル410の外部ではなく
内部で起こるように、メモリ・セル410の各々が読み
出しスレッド選択線414へ接続される。
【0023】図4は、図2の実施形態の配線略図であ
る。具体的には、ブロックはCMOSトランジスタから
形成されるように示されるが、本発明は、他の技術の中
でも、NMOS、BICMOS、BINMOS、バイポ
ーラ、SOI、及びGaASへ応用可能である。記憶要
素320は、トランジスタ510、512、514、5
16、518、520から形成され、単一のビットを保
持する。単純に、ただ1つの機能ユニットが記憶要素へ
書き込むことを仮定して、書き込みポート310は単一
のポートのみを有するように示される。しかし、前述し
たように、トランジスタから形成された機能ユニットの
複数が存在してよい。同様に、書き込みポートは、トラ
ンジスタ502、504から形成される。記憶要素32
2は、トランジスタ530、532、534、536、
538、540から形成される。スレッド・セレクタ3
30は、トランジスタ560、562、564、56
6、568、570から形成される。トランジスタ56
0のゲート及びトランジスタ566のゲートに接続され
た線550上の信号THB、及びトランジスタ562の
ゲート及びトランジスタ564のゲートに接続された線
552上の信号THAの状態に基づいて、スレッド・セ
レクタ330は、第1のスレッド又は第2のスレッドを
選択する。読み出しポート340は、2つのポート58
0及び590を含み、第1のポート580は、トランジ
スタ582及び584から形成され、第2のポート59
0は、トランジスタ592及び594から形成される。
ここでも、各々のインタフェースにおけるポートの数は
例示的なもので、実際には、記憶要素との間で読み出し
/書き込みを行うことができる機能ユニットの数に従っ
て変わるであろう。
【0024】マルチスレッド記憶セルを有するレジスタ
及びメモリ・アレイは、製造された後にテストされる。
幾つかのテスト手順があるが、2つだけを挙げると、L
BISTとABISTがある。簡単に説明すると、既知
のビット・シーケンスがアレイの中へ入力され、アレイ
の出力と比較される。適正に機能するメモリ・アレイで
は、入力は出力とマッチする。これらのシーケンスは、
高速で実行されて多くのメモリ・セルを同時に巻き込む
ことができ、プロセッサへ「ストレス」を加えて、その
障害パラメータ(もしあれば)を決定する。他の種類の
テストは機能テストであって、その場合、顧客のパフォ
ーマンス要件を代表する実際の符号化命令がストレスの
もとで実行され、メモリ・アレイの臨界セクションを働
かせる。再び、これらのテストは異なったプロセッサ速
度で実行されることができ、プロセッサが障害を起こす
かどうか、及びプロセッサが何時障害を起こすかを決定
することができる。そのような障害は、最も普通では、
マルチスレッド記憶セル内のビット値を捕捉して保持す
ることのできないメモリ・アレイ及び汎用並びに特殊レ
ジスタの結果である。本発明の重要な特徴は、別々のス
レッドに関連づけられた個々の記憶セル内に記憶された
値をテストする能力である。言い換えれば、本発明との
関連において、各々のスレッドは、今や別々にテストさ
れることができる。
【0025】これから詳細に説明するように、好ましい
実施形態の様相は、マルチスレッド・コンピュータ・シ
ステム100で実現可能な特別の方法ステップに関係す
る。代替の実施形態では、本発明は、コンピュータ・シ
ステム100と共に使用されるコンピュータ・プログラ
ム製品として実現されてよい。好ましい実施形態の機能
を定義するプログラムは、多様な信号保有媒体を介して
コンピュータ100へ引き渡されることができる。これ
らの信号保有媒体は、(a)非書き込み可能媒体、例え
ばCD−ROMディスクのように、バス110へ接続さ
れた読み出し専用メモリ装置の上に永続的に記憶された
情報、(b)書き込み可能磁気又は光学記憶媒体、例え
ばディスケット・ドライブ内のフロッピー(R)・ディ
スク又はハードディスク又は他のデータ記憶装置の上に
記憶された変更可能情報、(c)ワイヤレス通信を含む
電話又はケーブル・メディア・ネットワークによってコ
ンピュータへ伝達される情報を含むが、これらに限定さ
れない。そのような信号保有媒体は、本発明の機能を指
図するコンピュータ読み取り可能命令を搬送するとき、
本発明の代替の実施形態を表す。
【0026】図5は、マルチスレッド・プロセッサの障
害を検出する方法の簡単なフローチャートである。図5
は、障害が起こるとすれば、それが起こるまで実際の符
号化命令を実行する機能テストを例示するが、他のテス
ト、例えば、メモリ・アレイをテストするように意図さ
れたABIST、LBISTなども、本発明との関連で
使用されることができる。典型的には、これらのテスト
は、製造された後及び、又は現場におけるプロセッサ・
システムの正常な動作の間、即ち、顧客の活動場所で正
常なプロセッサ実行の間に定期的に実行される。ステッ
プ600からスタートして、プロセスは、ステップ61
0へ進行する。ステップ610において、第1のスレッ
ドはアクティブ・スレッド又は選択されたスレッドにな
る。次に、ステップ612において、選択されたスレッ
ドの命令がプロセッサ内で実行される。ステップ614
において、テスト手順は、選択されたスレッドの、実行
されるべき更なる命令があるかどうかをチェックする。
もし更なる命令があれば、プロセスはステップ612へ
ループバックし、そのスレッドのために次の命令を実行
する。しかし、もしステップ614において、選択され
たスレッドのための更なる命令がなければ、ステップ6
16において、プロセスは、選択されたスレッドの命令
の実行中に障害が起こったかどうかを質問する。
【0027】ステップ616において、もしレジスタ又
はメモリ・アレイの障害がなければ、プロセスは、ステ
ップ618で、テストすべき追加のスレッドがあるかど
うかをチェックする。もしあれば、ステップ620で、
他のスレッドを選択するようにスレッド選択がプログラ
ムされる。それは、再びステップ612で、その命令の
実行をテストするためである。しかし、もし第1のスレ
ッドが障害を経験すれば、障害はステップ630で記録
され、ステップ632で信号誤りメッセージが生成され
る。この時点で、テストはステップ640で終了してよ
い。なぜなら、プロセッサは、マルチスレッド・レジス
タ又はメモリ・アレイで機能障害を経験したからであ
る。ここで開示される特徴の発明以前には、障害を経験
したプロセッサ・チップは不能にされ、顧客のコンピュ
ータ作業は、無効にされるか重大な不利益を受けた。全
てのスレッドがテストされたわけではないので、プロセ
ッサ内の他のスレッドが適正に実行され、他のスレッド
のための記憶セルが完全に機能する場合でもそうであっ
た。
【0028】このようにして、図6のフローチャート
は、どのスレッドが機能障害を起こすかを確かめること
によって、顧客の処理作業を救助する利点をもたらす幾
つかの発明的特徴を表す。このようにして、マルチスレ
ッド・レジスタを有するプロセッサは不能にされる必要
はなく、マルチスレッド・メモリ・アレイ内で障害を経
験しているスレッドの命令及びデータは、同一又は異な
ったアレイ又はレジスタ内の他のスレッドの記憶セルへ
回送されてよい。ステップ702において、図5と同じ
ような機能テストが実行される。ステップ704で、も
し障害が機能テストの実行中に検出されなかったなら
ば、正常な処理がステップ706で継続する。しかし、
もしステップ704で障害が検出されると、ステップ7
14で、プロセスはシステムに質問して、機能するスレ
ッドが残っているかどうかを決定する。もちろん、もし
機能するスレッドが残っていなければ、ステップ716
で、プロセッサは実行を停止し、誤りメッセージを生成
する。しかし、ステップ714の質問で、もし満足に完
了して機能テストをパスした他のスレッドがあれば、ス
テップ720で、失敗したスレッドが記録され、ステッ
プ722で、その趣旨の誤りメッセージが生成される。
ステップ724で、オペレーティング・システムは、障
害を起こしたスレッドを通知され、機能するスレッドの
みを処理するように適切に応答する。これは、適切な信
号入力をスレッド・セレクタ330へ与えることによっ
て行われるか、特定のスレッドに対するスレッド切り替
え制御レジスタ内のビットを不能にし、命令を他のスレ
ッド切り替え制御レジスタへ回送することによって行わ
れることができる。いずれにせよ、ステップ730で、
命令は、機能するスレッド内でのみ動作する限り実行さ
れてよい。
【0029】これまで、本発明の様々な実施形態を説明
したが、それらは限定としてではなく例として提示され
たこと、及び変形が可能であることを理解すべきであ
る。従って、本発明の広さと範囲は、これまで説明した
例示的実施形態によって限定されるべきではなく、クレ
イム及びそれらの同等物に従ってのみ限定されるべきで
ある。
【0030】まとめとして、本発明の構成に関して以下
の事項を開示する。 (1)複数のスレッドを実行しているハードウェア・マ
ルチスレッド・コンピュータ処理システムで、スレッド
の1つの障害にも拘わらず、正常なコンピュータ処理を
継続する方法であって、(a)前記複数のスレッドの各
々に関連づけられた個々の記憶要素を含む少なくとも1
つのマルチスレッド・レジスタ/アレイを有するハード
ウェア・マルチスレッド・プロセッサで前記複数のスレ
ッドの少なくとも1つの命令を実行するステップと、
(b)特定のスレッドの上及び当該特定のスレッドに関
連づけられた個々の記憶要素を含む少なくとも1つのマ
ルチスレッド・レジスタ/アレイの上でテストを実行す
るステップと、(c)前記特定のスレッドに関連づけら
れた少なくとも1つの個々の記憶要素の障害を検出する
ステップと、(d)前記特定のスレッドに関連づけられ
た全ての記憶要素を不能にするステップと、(e)前記
特定のスレッドのデータを、欠陥のある記憶要素を有し
ない複数のスレッドの他のスレッドに関連づけられた他
の個々の記憶要素へ回送するステップと、を含む方法。 (2)更に、(a)前記特定のスレッドに関連づけられ
た少なくとも1つの個々の記憶要素の障害を示す誤り信
号を生成するステップを含む、上記(1)に記載の方
法。 (3)更に、(a)欠陥のある記憶要素を有しない複数
のスレッドの前記他のスレッドの正常な処理を継続する
ステップを含む、上記(2)に記載の方法。 (4)更に、前記テストを実行するステップ(b)が、
ストレスを加えられた処理条件のもとで命令を実行する
機能テストを実行することを含む、上記(1)に記載の
方法。 (5)更に、前記テストを実行するステップ(b)が、
前記少なくとも1つのマルチスレッド・レジスタ/アレ
イの上でABIST及び、又はLBISTテストを実行
することを含む、上記(1)に記載の方法。 (6)更に、前記特定のスレッドに関連づけられた全て
の記憶要素を不能にするステップ(d)が、前記複数の
スレッドの他のスレッドに関連づけられた個々の記憶要
素の他の記憶要素を選択するスレッド選択信号を生成す
ることを含む、上記(1)に記載の方法。 (7)更に、前記特定のスレッドに関連づけられた全て
の記憶要素を不能にする前記ステップ(d)が、スレッ
ド切り替え制御レジスタ内で前記特定のスレッドに関係
する複数のスレッド切り替え制御イベントの全て又は或
るイベントを不能にすることを含む、上記(1)に記載
の方法。 (8)現場において1つのスレッドを不能にすることが
できるマルチスレッド・コンピュータ・システムであっ
て、(a)少なくとも1つのマルチスレッド・コンピュ
ータ・プロセッサと、(b)前記マルチスレッド・コン
ピュータ・プロセッサにおける動作の複数のスレッドの
各々に対する少なくとも1つのスレッド切り替え制御レ
ジスタと、(c)マルチスレッド記憶セルを有する少な
くとも1つのハードウェア・マルチスレッド・メモリ/
レジスタ・アレイであって、前記記憶セルの各々は1つ
のスレッドに固有に関連づけられた記憶要素を有する、
アレイと、(d)少なくとも1つのマルチスレッド・コ
ンピュータ・プロセッサへ接続されたメイン・メモリ
と、(e)マルチスレッド・コンピュータ・プロセッサ
及びメイン・メモリを、複数のデータ記憶装置、1つ又
は複数の外部通信ネットワーク、コンピュータ・プロセ
ッサとの間でユーザ入力を提供する1つ又は複数の入力
/出力装置から成るグループの少なくとも1つへ接続す
るバス・インタフェースと、(f)現場での正常な処理
の間に、少なくとも1つのマルチスレッド・コンピュー
タ・プロセッサで少なくとも1つのスレッドの機能テス
トを実行する機能テスト生成手段と、(g)機能テスト
を受けている少なくとも1つのスレッドに固有に関連づ
けられた記憶要素の障害を検出する記憶要素障害検出手
段と、(h)機能テストを受けている少なくとも1つの
スレッドに関連づけられた全ての記憶要素を不能にする
記憶要素不能手段と、(i)処理を継続するため、少な
くとも1つのスレッドから、動作の他のスレッドに関連
づけられた記憶要素へ、データをリダイレクトするデー
タ回送手段と、 (j)少なくとも1つのスレッドの障
害が起こったことを示すメッセージを伝搬する誤り信号
生成手段と、を含むマルチスレッド・コンピュータ・シ
ステム (9)ハードウェア・マルチスレッド・コンピュータ・
プロセッサにおいて、複数のスレッドの1つの障害を検
出するためのプログラムであって、(a)複数のスレッ
ドの少なくとも1つのために一連の命令を有する機能テ
ストを実行し、(b)ハードウェア・レジスタ/メモリ
・アレイにおけるマルチスレッド記憶セル内の個々の記
憶要素を不能にし、不能にされた個々の記憶要素の各々
は、機能テストに失敗した少なくとも1つのスレッドに
関連づけられ、(c)プログラム可能レジスタを再構成
して、機能テストに失敗した少なくとも1つのスレッド
のデータを、機能テストに失敗しなかった他のスレッド
に関連づけられたマルチスレッド記憶セル内の他の記憶
要素へ回送し、(d)少なくとも1つのスレッドが機能
テストに失敗したことを示す誤りメッセージ生成するこ
と、を備えているプログラム。 (10)複数のスレッドを実行するハードウェア・マル
チスレッド・コンピュータ処理システムで、スレッドの
1つの障害に拘わらず、正常なコンピュータ処理を継続
する方法であって、(a)複数のハードウェア・レジス
タ/アレイを有するハードウェア・マルチスレッド・プ
ロセッサで前記複数のスレッドの少なくとも1つの命令
を実行するステップであって、前記ハードウェア・レジ
スタ/アレイの各々は、前記複数のスレッドの各々に関
連づけられているステップと、(b)特定のスレッドの
上及び特定のスレッドに関連づけられた少なくとも1つ
のレジスタ/アレイの上でテストを実行するステップ
と、(c)特定のスレッドに関連づけられた少なくとも
1つのレジスタ/アレイの障害を検出するステップ
と、、(d)特定のスレッドに関連づけられた、障害の
あるレジスタ/アレイを不能にするステップと、(e)
特定のスレッドのデータを、欠陥のない他の個々のレジ
スタ/アレイへ回送するステップと、を含む方法。
【図面の簡単な説明】
【図1】本発明の好ましいの実施形態に従って個々のス
レッドのために記憶セルを有するマルチスレッド・レジ
スタ/メモリ・アレイを使用するコンピュータ・システ
ムの主なハードウェア・コンポーネントを示す図であ
る。
【図2】マルチスレッド記憶セルの簡単なブロック図で
ある。
【図3】図2のマルチスレッド記憶セルの更に詳細なブ
ロック図である。
【図4】図3のマルチスレッド記憶セルの配線略図であ
る。
【図5】マルチスレッド・セルの記憶要素に欠陥がある
ことを検出するプロセスの簡単なフローチャートであ
る。
【図6】本発明の好ましい実施形態に従って、記憶レジ
スタの記憶要素を不能にし、そのスレッドに意図された
データを回送するプロセスの簡単なフローチャートであ
る。
【符号の説明】
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、108A、108B レベル2キャッシュ(L
2キャッシュ) 109 メモリ・バス 110 システムI/Oバス 111〜115 I/O処理ユニット(IOP) 300 マルチスレッド記憶セル 310、312 書き込みポート 320、322 記憶要素 330 スレッド・セレクタ 340 読み出しポート 402 2スレッド・アレイ(2スレッド・レジスタ) 410 マルチスレッド記憶セル 412 読み出しアドレス・バス 414 読み出しスレッド選択線 416 書き込みスレッド選択線 418 書き込みアドレス・バス 420 書き込みスレッド選択線 422 書き込みアドレス・バス 430、432、434、436 読み出しデコーダ 438、440 書き込みデコーダ 450 アレイ 502、504、510、512、514、516、5
18、520 トランジスタ 522、526 スレッド可能信号 530、532、534、536、538、540 ト
ランジスタ 550、552 線 560、562、564、566、568、570 ト
ランジスタ 580 ポート 582、584 トランジスタ 590 ポート 592、594 トランジスタ
───────────────────────────────────────────────────── フロントページの続き (51)Int.Cl.7 識別記号 FI テーマコート゛(参考) G06F 11/22 360 G06F 11/22 360A 12/16 310 12/16 310Q 310R (72)発明者 サルヴァトーレ・エヌ・ストリノ アメリカ合衆国55902 ミネソタ州ローチ ェスター、 サウスウェスト、 セブン ス・アヴェニュー 814 (72)発明者 グレゴリィ・ジェイ・アルマン アメリカ合衆国55902 ミネソタ州ローチ ェスター、 サウスウェスト、 メドウ・ ラン・ドライブ 123 Fターム(参考) 5B018 GA04 HA21 KA14 KA15 NA03 5B048 AA17 CC11 CC14 5B098 DD03 GC01 JJ00

Claims (10)

    【特許請求の範囲】
  1. 【請求項1】複数のスレッドを実行しているハードウェ
    ア・マルチスレッド・コンピュータ処理システムで、ス
    レッドの1つの障害にも拘わらず、正常なコンピュータ
    処理を継続する方法であって、 (a)前記複数のスレッドの各々に関連づけられた個々
    の記憶要素を含む少なくとも1つのマルチスレッド・レ
    ジスタ/アレイを有するハードウェア・マルチスレッド
    ・プロセッサで前記複数のスレッドの少なくとも1つの
    命令を実行するステップと、 (b)特定のスレッドの上及び当該特定のスレッドに関
    連づけられた個々の記憶要素を含む少なくとも1つのマ
    ルチスレッド・レジスタ/アレイの上でテストを実行す
    るステップと、 (c)前記特定のスレッドに関連づけられた少なくとも
    1つの個々の記憶要素の障害を検出するステップと、 (d)前記特定のスレッドに関連づけられた全ての記憶
    要素を不能にするステップと、 (e)前記特定のスレッドのデータを、欠陥のある記憶
    要素を有しない複数のスレッドの他のスレッドに関連づ
    けられた他の個々の記憶要素へ回送するステップと、を
    含む方法。
  2. 【請求項2】更に、 (a)前記特定のスレッドに関連づけられた少なくとも
    1つの個々の記憶要素の障害を示す誤り信号を生成する
    ステップを含む、請求項1に記載の方法。
  3. 【請求項3】更に、 (a)欠陥のある記憶要素を有しない複数のスレッドの
    前記他のスレッドの正常な処理を継続するステップを含
    む、請求項2に記載の方法。
  4. 【請求項4】更に、前記テストを実行するステップ
    (b)が、ストレスを加えられた処理条件のもとで命令
    を実行する機能テストを実行することを含む、請求項1
    に記載の方法。
  5. 【請求項5】更に、前記テストを実行するステップ
    (b)が、前記少なくとも1つのマルチスレッド・レジ
    スタ/アレイの上でABIST及び、又はLBISTテ
    ストを実行することを含む、請求項1に記載の方法。
  6. 【請求項6】更に、前記特定のスレッドに関連づけられ
    た全ての記憶要素を不能にするステップ(d)が、前記
    複数のスレッドの他のスレッドに関連づけられた個々の
    記憶要素の他の記憶要素を選択するスレッド選択信号を
    生成することを含む、請求項1に記載の方法。
  7. 【請求項7】更に、前記特定のスレッドに関連づけられ
    た全ての記憶要素を不能にする前記ステップ(d)が、
    スレッド切り替え制御レジスタ内で前記特定のスレッド
    に関係する複数のスレッド切り替え制御イベントの全て
    又は或るイベントを不能にすることを含む、請求項1に
    記載の方法。
  8. 【請求項8】現場において1つのスレッドを不能にする
    ことができるマルチスレッド・コンピュータ・システム
    であって、 (a)少なくとも1つのマルチスレッド・コンピュータ
    ・プロセッサと、 (b)前記マルチスレッド・コンピュータ・プロセッサ
    における動作の複数のスレッドの各々に対する少なくと
    も1つのスレッド切り替え制御レジスタと、 (c)マルチスレッド記憶セルを有する少なくとも1つ
    のハードウェア・マルチスレッド・メモリ/レジスタ・
    アレイであって、前記記憶セルの各々は1つのスレッド
    に固有に関連づけられた記憶要素を有する、アレイと、 (d)少なくとも1つのマルチスレッド・コンピュータ
    ・プロセッサへ接続されたメイン・メモリと、 (e)マルチスレッド・コンピュータ・プロセッサ及び
    メイン・メモリを、複数のデータ記憶装置、1つ又は複
    数の外部通信ネットワーク、コンピュータ・プロセッサ
    との間でユーザ入力を提供する1つ又は複数の入力/出
    力装置から成るグループの少なくとも1つへ接続するバ
    ス・インタフェースと、 (f)現場での正常な処理の間に、少なくとも1つのマ
    ルチスレッド・コンピュータ・プロセッサで少なくとも
    1つのスレッドの機能テストを実行する機能テスト生成
    手段と、 (g)機能テストを受けている少なくとも1つのスレッ
    ドに固有に関連づけられた記憶要素の障害を検出する記
    憶要素障害検出手段と、 (h)機能テストを受けている少なくとも1つのスレッ
    ドに関連づけられた全ての記憶要素を不能にする記憶要
    素不能手段と、 (i)処理を継続するため、少なくとも1つのスレッド
    から、動作の他のスレッドに関連づけられた記憶要素
    へ、データをリダイレクトするデータ回送手段と、
    (j)少なくとも1つのスレッドの障害が起こったこと
    を示すメッセージを伝搬する誤り信号生成手段と、 を含むマルチスレッド・コンピュータ・システム
  9. 【請求項9】ハードウェア・マルチスレッド・コンピュ
    ータ・プロセッサにおいて、複数のスレッドの1つの障
    害を検出するためのプログラムであって、 (a)複数のスレッドの少なくとも1つのために一連の
    命令を有する機能テストを実行し、 (b)ハードウェア・レジスタ/メモリ・アレイにおけ
    るマルチスレッド記憶セル内の個々の記憶要素を不能に
    し、不能にされた個々の記憶要素の各々は、機能テスト
    に失敗した少なくとも1つのスレッドに関連づけられ、 (c)プログラム可能レジスタを再構成して、機能テス
    トに失敗した少なくとも1つのスレッドのデータを、機
    能テストに失敗しなかった他のスレッドに関連づけられ
    たマルチスレッド記憶セル内の他の記憶要素へ回送し、 (d)少なくとも1つのスレッドが機能テストに失敗し
    たことを示す誤りメッセージ生成すること、 を備えているプログラム。
  10. 【請求項10】複数のスレッドを実行するハードウェア
    ・マルチスレッド・コンピュータ処理システムで、スレ
    ッドの1つの障害に拘わらず、正常なコンピュータ処理
    を継続する方法であって、 (a)複数のハードウェア・レジスタ/アレイを有する
    ハードウェア・マルチスレッド・プロセッサで前記複数
    のスレッドの少なくとも1つの命令を実行するステップ
    であって、 前記ハードウェア・レジスタ/アレイの各々は、前記複
    数のスレッドの各々に関連づけられているステップと、 (b)特定のスレッドの上及び特定のスレッドに関連づ
    けられた少なくとも1つのレジスタ/アレイの上でテス
    トを実行するステップと、 (c)特定のスレッドに関連づけられた少なくとも1つ
    のレジスタ/アレイの障害を検出するステップと、、 (d)特定のスレッドに関連づけられた、障害のあるレ
    ジスタ/アレイを不能にするステップと、 (e)特定のスレッドのデータを、欠陥のない他の個々
    のレジスタ/アレイへ回送するステップと、 を含む方法。
JP2001242945A 2000-08-15 2001-08-09 正常なコンピュータ処理を継続する方法及びマルチスレッド・コンピュータ・システム Expired - Fee Related JP3683838B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/639,190 US6681345B1 (en) 2000-08-15 2000-08-15 Field protection against thread loss in a multithreaded computer processor
US09/639190 2000-08-15

Publications (2)

Publication Number Publication Date
JP2002123402A true JP2002123402A (ja) 2002-04-26
JP3683838B2 JP3683838B2 (ja) 2005-08-17

Family

ID=24563088

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001242945A Expired - Fee Related JP3683838B2 (ja) 2000-08-15 2001-08-09 正常なコンピュータ処理を継続する方法及びマルチスレッド・コンピュータ・システム

Country Status (4)

Country Link
US (1) US6681345B1 (ja)
JP (1) JP3683838B2 (ja)
CN (1) CN1195271C (ja)
TW (1) TW513666B (ja)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004326749A (ja) * 2003-04-24 2004-11-18 Internatl Business Mach Corp <Ibm> マルチスレッド・プロセッサを単一スレッド・モード及び同時マルチスレッド・モードの間で動的に切り替える装置及び方法
JP2008501166A (ja) * 2004-06-02 2008-01-17 インテル コーポレイション Tlb相関型分岐予測器及びその使用方法
WO2008155794A1 (ja) 2007-06-19 2008-12-24 Fujitsu Limited 情報処理装置
US7472258B2 (en) 2003-04-21 2008-12-30 International Business Machines Corporation Dynamically shared group completion table between multiple threads
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
JP2017182115A (ja) * 2016-03-28 2017-10-05 日本電気株式会社 情報処理装置、プロセス切り替え方法及びプログラム

Families Citing this family (71)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1519703B (zh) * 2003-01-23 2010-05-05 英业达股份有限公司 可组合挂接的计算机多线程测试系统及其方法
CN1333546C (zh) * 2003-12-12 2007-08-22 华为技术有限公司 一种网络处理器转发故障的诊断方法
US8224937B2 (en) * 2004-03-04 2012-07-17 International Business Machines Corporation Event ownership assigner with failover for multiple event server system
US7702887B1 (en) 2004-06-30 2010-04-20 Sun Microsystems, Inc. Performance instrumentation in a fine grain multithreaded multicore processor
US7747771B1 (en) 2004-06-30 2010-06-29 Oracle America, Inc. Register access protocol in a multihreaded multi-core processor
US7373489B1 (en) 2004-06-30 2008-05-13 Sun Microsystems, Inc. Apparatus and method for floating-point exception prediction and recovery
US7330988B2 (en) * 2004-06-30 2008-02-12 Sun Microsystems, Inc. Method and apparatus for power throttling in a multi-thread processor
US7523330B2 (en) * 2004-06-30 2009-04-21 Sun Microsystems, Inc. Thread-based clock enabling in a multi-threaded 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
US7890734B2 (en) 2004-06-30 2011-02-15 Open Computing Trust I & II Mechanism for selecting instructions for execution in a multithreaded processor
US7383403B1 (en) 2004-06-30 2008-06-03 Sun Microsystems, Inc. Concurrent bypass to instruction buffers in a fine grain multithreaded processor
US7185178B1 (en) 2004-06-30 2007-02-27 Sun Microsystems, Inc. Fetch speculation in 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
US7434000B1 (en) 2004-06-30 2008-10-07 Sun Microsystems, Inc. Handling duplicate cache misses in a multithreaded/multi-core processor
US7343474B1 (en) 2004-06-30 2008-03-11 Sun Microsystems, Inc. Minimal address state in a fine grain multithreaded processor
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
US8225034B1 (en) 2004-06-30 2012-07-17 Oracle America, Inc. Hybrid instruction buffer
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
US7861063B1 (en) 2004-06-30 2010-12-28 Oracle America, Inc. Delay slot handling in a 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
US7370243B1 (en) 2004-06-30 2008-05-06 Sun Microsystems, Inc. Precise error handling in a fine grain multithreaded multicore processor
US7676655B2 (en) * 2004-06-30 2010-03-09 Sun Microsystems, Inc. Single bit control of threads in a multithreaded multicore 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
US7774393B1 (en) 2004-06-30 2010-08-10 Oracle America, Inc. Apparatus and method for integer to floating-point format conversion
US7533248B1 (en) 2004-06-30 2009-05-12 Sun Microsystems, Inc. Multithreaded processor including a functional unit shared between multiple requestors and arbitration therefor
US7426630B1 (en) 2004-06-30 2008-09-16 Sun Microsystems, Inc. Arbitration of window swap operations
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
US8037250B1 (en) 2004-12-09 2011-10-11 Oracle America, Inc. Arbitrating cache misses in a multithreaded/multi-core processor
US7353445B1 (en) * 2004-12-10 2008-04-01 Sun Microsystems, Inc. Cache error handling 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
US7770155B2 (en) * 2005-11-03 2010-08-03 International Business Machines Corporation Debugger apparatus and method for indicating time-correlated position of threads in a multi-threaded computer program
US7958323B1 (en) 2007-05-09 2011-06-07 Marvell Israel (M.I.S.L.) Ltd. Multithreading implementation for flops and register files
JP4966135B2 (ja) * 2007-08-31 2012-07-04 株式会社東芝 サーバ装置、端末装置、通信制御方法および通信制御プログラム
US8312458B2 (en) * 2008-02-01 2012-11-13 International Business Machines Corporation Central repository for wake-and-go mechanism
US8640141B2 (en) * 2008-02-01 2014-01-28 International Business Machines Corporation Wake-and-go mechanism with hardware private array
US8612977B2 (en) * 2008-02-01 2013-12-17 International Business Machines Corporation Wake-and-go mechanism with software save of thread state
US8788795B2 (en) * 2008-02-01 2014-07-22 International Business Machines Corporation Programming idiom accelerator to examine pre-fetched instruction streams for multiple processors
US8127080B2 (en) * 2008-02-01 2012-02-28 International Business Machines Corporation Wake-and-go mechanism with system address bus transaction master
US8732683B2 (en) * 2008-02-01 2014-05-20 International Business Machines Corporation Compiler providing idiom to idiom accelerator
US8250396B2 (en) 2008-02-01 2012-08-21 International Business Machines Corporation Hardware wake-and-go mechanism for a data processing system
US8452947B2 (en) * 2008-02-01 2013-05-28 International Business Machines Corporation Hardware wake-and-go mechanism and content addressable memory with instruction pre-fetch look-ahead to detect programming idioms
US7865705B2 (en) * 2008-02-01 2011-01-04 International Business Machines Corporation Branch target address cache including address type tag bit
US8316218B2 (en) * 2008-02-01 2012-11-20 International Business Machines Corporation Look-ahead wake-and-go engine with speculative execution
US8171476B2 (en) * 2008-02-01 2012-05-01 International Business Machines Corporation Wake-and-go mechanism with prioritization of threads
US8725992B2 (en) 2008-02-01 2014-05-13 International Business Machines Corporation Programming language exposing idiom calls to a programming idiom accelerator
US8225120B2 (en) * 2008-02-01 2012-07-17 International Business Machines Corporation Wake-and-go mechanism with data exclusivity
US8145849B2 (en) * 2008-02-01 2012-03-27 International Business Machines Corporation Wake-and-go mechanism with system bus response
US8516484B2 (en) * 2008-02-01 2013-08-20 International Business Machines Corporation Wake-and-go mechanism for a data processing system
US8386822B2 (en) * 2008-02-01 2013-02-26 International Business Machines Corporation Wake-and-go mechanism with data monitoring
US8880853B2 (en) * 2008-02-01 2014-11-04 International Business Machines Corporation CAM-based wake-and-go snooping engine for waking a thread put to sleep for spinning on a target address lock
US8341635B2 (en) 2008-02-01 2012-12-25 International Business Machines Corporation Hardware wake-and-go mechanism with look-ahead polling
US8572577B2 (en) * 2008-06-20 2013-10-29 International Business Machines Corporation Monitoring changes to data within a critical section of a threaded program
US20100058308A1 (en) * 2008-08-29 2010-03-04 International Business Machines Corporation Central provider and satellite provider update and diagnosis integration tool
US20100115494A1 (en) * 2008-11-03 2010-05-06 Gorton Jr Richard C System for dynamic program profiling
US8024719B2 (en) 2008-11-03 2011-09-20 Advanced Micro Devices, Inc. Bounded hash table sorting in a dynamic program profiling system
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
US8082315B2 (en) 2009-04-16 2011-12-20 International Business Machines Corporation Programming idiom accelerator for remote update
US8145723B2 (en) * 2009-04-16 2012-03-27 International Business Machines Corporation Complex remote update programming idiom accelerator
US8886919B2 (en) * 2009-04-16 2014-11-11 International Business Machines Corporation Remote update programming idiom accelerator with allocated processor resources
US8230201B2 (en) * 2009-04-16 2012-07-24 International Business Machines Corporation Migrating sleeping and waking threads between wake-and-go mechanisms in a multiple processor data processing system
US8448027B2 (en) 2010-05-27 2013-05-21 International Business Machines Corporation Energy-efficient failure detection and masking
US8671309B2 (en) * 2011-07-01 2014-03-11 Intel Corporation Mechanism for advanced server machine check recovery and associated system software enhancements
US8631292B2 (en) * 2011-08-29 2014-01-14 Freescale Semiconductor, Inc. Multi-threading flip-flop circuit
CN102520909A (zh) * 2011-11-16 2012-06-27 杭州中天微系统有限公司 支持现场快速切换的通用寄存器装置
US9152510B2 (en) 2012-07-13 2015-10-06 International Business Machines Corporation Hardware recovery in multi-threaded processor
US9213608B2 (en) 2012-07-13 2015-12-15 International Business Machines Corporation Hardware recovery in multi-threaded processor
CN103713884B (zh) * 2013-12-18 2016-06-29 珠海金山网络游戏科技有限公司 多线程通过数组处理数据的方法、系统及多线程处理器
CN105573874B (zh) * 2015-12-10 2019-10-08 湖北三江航天红峰控制有限公司 一种基于多线程的实时数据传输总线测试方法
US10706101B2 (en) 2016-04-14 2020-07-07 Advanced Micro Devices, Inc. Bucketized hash tables with remap entries
CN109522049B (zh) * 2017-09-18 2023-04-25 展讯通信(上海)有限公司 一种同步多线程系统中共享寄存器的验证方法及装置

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
US5778230A (en) * 1995-11-13 1998-07-07 Object Technology Licensing Corp. Goal directed object-oriented debugging system
US5778243A (en) * 1996-07-03 1998-07-07 International Business Machines Corporation Multi-threaded cell for a memory
US5949972A (en) * 1996-08-23 1999-09-07 Compuware Corporation System for memory error checking in an executable
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
US6009269A (en) * 1997-03-10 1999-12-28 Digital Equipment Corporation Detecting concurrency errors in multi-threaded programs
US6567839B1 (en) * 1997-10-23 2003-05-20 International Business Machines Corporation Thread switch control in a multithreaded processor system
US6256775B1 (en) * 1997-12-11 2001-07-03 International Business Machines Corporation Facilities for detailed software performance analysis in a multithreaded processor
US6018759A (en) * 1997-12-22 2000-01-25 International Business Machines Corporation Thread switch tuning tool for optimal performance in a computer processor
US6418542B1 (en) * 1998-04-27 2002-07-09 Sun Microsystems, Inc. Critical signal thread
US6192486B1 (en) * 1998-08-13 2001-02-20 International Business Machines Corporation Memory defect steering circuit
US6434714B1 (en) * 1999-02-04 2002-08-13 Sun Microsystems, Inc. Methods, systems, and articles of manufacture for analyzing performance of application programs
US6341338B1 (en) * 1999-02-04 2002-01-22 Sun Microsystems, Inc. Protocol for coordinating the distribution of shared memory
US6457142B1 (en) * 1999-10-29 2002-09-24 Lucent Technologies Inc. Method and apparatus for target application program supervision
US6748556B1 (en) * 2000-08-15 2004-06-08 International Business Machines Corporation Changing the thread capacity of a multithreaded computer processor

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7472258B2 (en) 2003-04-21 2008-12-30 International Business Machines Corporation Dynamically shared group completion table between multiple threads
JP2004326749A (ja) * 2003-04-24 2004-11-18 Internatl Business Mach Corp <Ibm> マルチスレッド・プロセッサを単一スレッド・モード及び同時マルチスレッド・モードの間で動的に切り替える装置及び方法
US7496915B2 (en) 2003-04-24 2009-02-24 International Business Machines Corporation Dynamic switching of multithreaded processor between single threaded and simultaneous multithreaded modes
US8458709B2 (en) 2003-04-24 2013-06-04 International Business Machines Corporation Dynamic switching of multithreaded processor between single threaded and simultaneous multithreaded modes
JP2008501166A (ja) * 2004-06-02 2008-01-17 インテル コーポレイション Tlb相関型分岐予測器及びその使用方法
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
JP2017182115A (ja) * 2016-03-28 2017-10-05 日本電気株式会社 情報処理装置、プロセス切り替え方法及びプログラム

Also Published As

Publication number Publication date
TW513666B (en) 2002-12-11
US6681345B1 (en) 2004-01-20
CN1338680A (zh) 2002-03-06
JP3683838B2 (ja) 2005-08-17
CN1195271C (zh) 2005-03-30

Similar Documents

Publication Publication Date Title
JP3683838B2 (ja) 正常なコンピュータ処理を継続する方法及びマルチスレッド・コンピュータ・システム
JP3683837B2 (ja) スレッド能力を変更する方法及びマルチスレッド・コンピュータ・システム
EP2966650B1 (en) Memory built-in self test for a data processing apparatus
JP3706542B2 (ja) 処理コアの使用を動的に更新する方法および装置
CN100363907C (zh) 用于识别局部损坏存储器的自测试方法和装置
US20050066079A1 (en) Multiple processor core device having shareable functional units for self-repairing capability
US7370238B2 (en) System, method and software for isolating dual-channel memory during diagnostics
TW200414219A (en) System and method for self-testing and repair of memory modules
JPH09190361A (ja) 内部信号で障害検出を行う情報処理システムおよび論理lsi
JPS6229827B2 (ja)
JPH0260145B2 (ja)
CN103164316B (zh) 硬件监视器
US10311963B2 (en) Data processing
US20060230308A1 (en) Methods and systems for conducting processor health-checks
JP2003007088A (ja) メモリセグメントの信頼性を評価するシステムおよび方法
US7607040B2 (en) Methods and systems for conducting processor health-checks
US7254746B1 (en) Method and apparatus for using a fault tolerant memory in processor testing and design
JPS5939052B2 (ja) 情報処理装置及び方法
JP2001307497A (ja) 半導体集積回路装置
JP2003337758A (ja) 二重化メモリシステム
JPH083807B2 (ja) 2重化磁気デイスク装置の自動切換装置
JPH0312757A (ja) メモリカード
JPH06250933A (ja) 情報処理装置および主記憶装置のアクセス制御方法
JPH10269139A (ja) 階層型キャッシュ装置
JPH0296255A (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