JP2003241961A - マルチスレッドプロセッサにおける共有レジスタファイル制御方式 - Google Patents

マルチスレッドプロセッサにおける共有レジスタファイル制御方式

Info

Publication number
JP2003241961A
JP2003241961A JP2002040899A JP2002040899A JP2003241961A JP 2003241961 A JP2003241961 A JP 2003241961A JP 2002040899 A JP2002040899 A JP 2002040899A JP 2002040899 A JP2002040899 A JP 2002040899A JP 2003241961 A JP2003241961 A JP 2003241961A
Authority
JP
Japan
Prior art keywords
register
context
window
register file
control method
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
JP2002040899A
Other languages
English (en)
Other versions
JP3727887B2 (ja
Inventor
Hideki Ogawara
英喜 大河原
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2002040899A priority Critical patent/JP3727887B2/ja
Publication of JP2003241961A publication Critical patent/JP2003241961A/ja
Application granted granted Critical
Publication of JP3727887B2 publication Critical patent/JP3727887B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Abstract

(57)【要約】 【課題】マルチスレッドプロセッサにおいて、複数スレ
ッドでレジスタファイルを共有して有効利用をはかるこ
とにより、レジスタファイルの容量を抑えつつ高性能動
作を行うこと。 【解決手段】このため本発明では、複数のスレッドを同
時に実行するとともに、論理レジスタより多数の物理レ
ジスタ402からなるレジスタウィンド構成のレジスタ
ファイルを備えるマルチスレッドプロセッサにおいて、
レジスタファイル401を複数のスレッドで共有し、各
スレッド毎に割り当てられるレジスタファイル401
の、ウィンドスタート位置とウィンドエンド位置を記入
する特殊レジスタ404、405を設け、各スレッドに
連続した物理レジスタ402を割り当てることを特徴と
する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、論理レジスタセッ
トより多くの物理レジスタからなるレジスタウィンド構
成を備えるプロセッサで、複数のスレッドが同時に実行
されるマルチスレッドプロセッサにおいて、複数スレッ
ドでレジスタファイルを共有してその有効利用をはかる
ことにより、レジスタファイルの容量を抑えつつ高処理
性能を実現するようにした、共有レジスタファイル制御
方式に関する。
【0002】
【従来の技術】近年、複数の命令流(スレッド)が同時
に実行されるマルチスレッドプロセッサが注目されてお
り、MT(Multi Threading)、SMT
(Simultaneous Multi Threa
ding)と呼ばれるアーキテクチャの研究が行われて
いる。
【0003】この様なマルチスレッドプロセッサでは、
命令キャッシュミス時などの命令フェッチができない場
合に、フェッチするスレッドを積極的に切り替えること
で、複数スレッドで共有する機能ユニットやキャッシュ
などのハードウェア資源を有効利用し、少ないハードウ
ェアコストで高性能を実現することを狙ったものであ
る。
【0004】但し、従来のマルチスレッドプロセッサに
おいては、複数のスレッドを同時実行するのに必要なプ
ログラム・カウンタやレジスタセットなどのコンテクス
トについては、同時実行可能なスレッド数分がハードウ
ェア実装される。
【0005】
【発明が解決しようとする課題】従来のプロセッサで
は、アプリケーションから明示的にアクセスされる論理
レジスタの数は限られているが、多くの実効レジスタを
実現するためにレジスタウィンドと呼ばれる構成をとる
ことが多い。図11はレジスタウィンドの概念図を示
す。
【0006】レジスタウィンド構成のレジスタファイル
102では、アプリケーションから明示的にアクセスさ
れる論理レジスタセット101よりも多くの物理レジス
タをハードウェア実装する。レジスタファイル102
は、論理レジスタセット101に相当する複数のレジス
タウィンド103に分けることができる。図11の例で
は、レジスタウィンド103−0、103−1・・・1
03−7に分けることができる。そして参照するレジス
タウィンド103について、これを103−0→103
−1・・・と右にずらしていく(SAVE)ことで、新
しく異なる論理レジスタセット101と対応させて利用
する。論理レジスタセット101は例えば32個の論理
レジスタで構成され、レジスタウィンド103−0〜1
03−7は例えば32個の物理レジスタで構成されてい
る。
【0007】また参照するレジスタウィンド103を、
103−7→・・・103−1→103−0と左にずら
していく(RESTORE)ことで、以前に対応づけら
れた論理レジスタセットに戻ることができる。図11に
は、各レジスタウィンドに対応づけられた論理レジスタ
セットのID(レジスタウィンド103−0、103−
1・・・を、0番目、1番目・・・の論理レジスタに対
応させる)の例を示している。
【0008】全てのレジスタウィンド103が論理レジ
スタセットに対応済で、新しい論理レジスタセット10
1との対応がとれない場合には、最も古いレジスタウィ
ンドの値をメモリ領域に一時待避させ、該当レジスタウ
ィンドを新しい論理レジスタに対応させて使用する。図
11中の例では、最も古く使用された0番目の論理レジ
スタセットに対応したレジスタウィンド103−0の値
をメモリ領域104に一時待避し、該当レジスタウィン
ド103−0を新しく8番目の論理レジスタセット10
1に対応させて使用している。このようにレジスタウィ
ンドが不足するとき、時間のかかるメモリ領域104へ
のアクセスが発生するため処理性能低下が起きる。
【0009】マルチスレッドプロセッサにおいては、同
時実行可能なスレッド数分のレジスタセットが必要とな
る。図12は同時実行可能なスレッド数分のレジスタウ
ィンドを、コンテクスト(プログラムカウンタとか、処
理される値を保持する論理レジスタセット等の如く、マ
ルチスレッドプロセッサで実行されているスレッドの状
態を保持するもの)ごとに実装したときの概念図であ
る。
【0010】マルチスレッドプロセッサでは、複数の独
立したコンテクスト(論理レジスタセット203やプロ
グラムカウンタ204を有する)が存在する。図12は
コンテクスト0〜3の4つのコンテクストの存在する例
を示す。各コンテクスト毎に論理レジスタ203とレジ
スタファイル201内のレジスタウィンド202の対応
がとられている。
【0011】ところでこのような図12に示す如き構成
では、コンテクスト毎に十分な容量のレジスタウィンド
を実装するとハードウェアコストが問題となり、またス
レッドが実行されていない、停止状態のコンテクストが
存在する場合には、レジスタファイルの利用効率が悪
い。
【0012】一方ハードウェアコストを抑えるためにス
レッド毎のレジスタファイルの容量を小さくすること
は、レジスタウィンドの不足につながり、メモリ領域へ
のアクセス増加にもとづく処理性能低下が問題となる。
【0013】したがって本発明の目的はこのような問題
を解決した、コンテクスト毎に十分な容量のレジスタウ
ィンドを実装することなく処理性能低下を抑制したマル
チスレッドプロセッサにおける共有ファイル制御方式を
提供することである。
【0014】
【課題を解決するための手段】本発明の原理図を図1に
示す。図1において300はマルチスレッドプロセッ
サ、301はレジスタファイル、302−0、302−
1・・・302−15はレジスタウィンド、303−
0、303−1・・・303−3は論理レジスタセット
であって1つ以上の論理レジスタで構成されるもの、3
04−0、304−1・・・304−3はプログラムカ
ウンタ、305は命令読出部、306−0、306−1
・・・306−3は命令バッファ、307は命令解読
部、308は命令発行部、309は命令実行部、321
−0、321−1、321−2は対応処理手段である。
【0015】マルチスレッドプロセッサ300は、プロ
セッサ上に複数のスレッドが同時実行可能なプロセッサ
であり、論理レジスタセット303−0〜303−3、
プログラムカウンタ304−0〜304−3、命令バッ
ファ306−0〜306−3などは同時実行可能なスレ
ッド(コンテクスト)ごとに設けられる。命令読出部3
05、命令解読部307、命令発行部308、命令実行
部309などは複数のスレッドで共有される。
【0016】本発明では、プロセッサ上に複数存在する
コンテクストごとにレジスタファイルを実装するのでは
なく、複数コンテクストで共有されるレジスタファイル
301を実装し、レジスタウィンド302−0、302
−1・・・302−15を適当な数で各コンテクストに
割り当てる。各コンテクストは、割り当てられたレジス
タウィンドの範囲内で論理レジスタとレジスタウィンド
の対応関係を切り替えることで、コンテクスト毎のレジ
スタウィンドとして機能する。
【0017】図1の例では、コンテクスト3が停止状態
にあるため、動作状態にあるコンテクスト0にレジスタ
ファイル301のレジスタウィンド302−0、302
−1の2個を割り当て、コンテクスト1にレジスタウィ
ンド302−2〜302−9の8個を割り当て、コンテ
クスト2にレジスタウィンド302−10〜302−1
5の6個を割り当てて使用しているものを示す。
【0018】レジスタウィンドの割り当て制御を行う粒
度つまり切り替え単位については後述する図5に示す如
く、例えば4個のレジスタウィンドで構成されるグルー
プ単位や、1個毎のレジスタウィンド単位等が考えられ
る。
【0019】レジスタファイルを、マルチスレッドプ
ロセッサで同時実行可能なコンテクスト数で等分したグ
ループに分割し、動作状態のコンテクスト数に応じてグ
ループ単位で割り当てを行う。この場合、動作状態のコ
ンテクスト数に依存するので、スレッド生成/終了時に
コンテクストの割り当てを行う。
【0020】例えば1個のレジスタウィンド単位の如
く、細かい単位のレジスタウィンド/物理レジスタ単位
で割り当てを行う。この場合、各コンテクストの動作状
況によって動的にレジスタウィンドの割り当てを変更す
ることで、より効率的なレジスタファイルの利用ができ
る。
【0021】またスレッド生成/終了時に、レジスタウ
ィンドのグループ単位でコンテクスト割り当てを行う場
合の具体的な制御方式として、以下のa、bのようなも
のがあげられる。
【0022】a.レジスタウィンドのグループ毎に参照
頻度に関する統計情報を測定しておき、スレッドが生成
され新しいコンテクストにレジスタウィンドのグループ
を割り当てる際には、参照頻度の低いグループを新しい
コンテクストに割り当てる。
【0023】b.各コンテクストにおける、レジスタウ
ィンドのメモリ領域への一時待避の回数を測定してお
き、一時待避の発生頻度が高くレジスタウィンドが不足
しがちなコンテクストに、スレッド終了により解放され
たグループを追加して割り当てる。
【0024】更に、動作状態にある各コンテクストのス
レッド実行の状態に応じて、一定期間ごと、もしくはレ
ジスタウィンド不足時に、動的に細かい粒度(例えば1
個のレジスタウィンド)でレジスタウィンド割り当てを
変更することで、より高いレジスタファイルの利用率が
実現できる。具体的な制御方式として、以下のイ、ロの
ようなものがあげられる。
【0025】イ.各コンテクストにおけるレジスタウィ
ンドのメモリ領域への一時待避の回数を測定し、一時待
避の発生頻度が高く、レジスタウィンドが不足しがちな
スレッドにより多くのレジスタウィンドを割り当てる。
【0026】ロ.各レジスタウィンドの参照頻度に関す
る統計情報を測定しておき、スレッドに割り当てられた
レジスタウィンドが不足した際に、隣接する他のコンテ
クストのレジスタウィンドの参照頻度が低ければ、割り
当ての境界をずらして該当コンテクストに割り当て直
す。
【0027】本発明の前記目的は下記(1)〜(5)に
より達成することができる。
【0028】(1)複数のスレッドを同時に実行するマ
ルチスレッドプロセッサで、且つ論理レジスタより多数
の物理レジスタからなるレジスタウィンド構成のレジス
タファイルを備えるプロセッサにおいて、レジスタファ
イル301全体を複数のスレッドで共有し、各スレッド
毎に割り当てられるレジスタファイル301の、ウィン
ドスタート位置とウィンドエンド位置を記入する特殊レ
ジスタを設け、各スレッドに連続した物理レジスタを割
り当てることを特徴とする共有レジスタファイル制御方
式。
【0029】(2)前記(1)の共有レジスタファイル
制御方式において、マルチスレッドプロセッサ300で
同時実行可能なスレッド数で前記レジスタファイル30
1を複数のグループに分割し、コンテクストの動作状態
を示す特殊レジスタを設け、動作状態にあるコンテクス
トに、前記分割されたグループを割り当てることを特徴
とする共有レジスタファイル制御方式。
【0030】(3)前記(1)の共有レジスタファイル
制御方式において、動作スレッドの実行状態に応じて、
コンテクスト割り当てをレジスタウィンド単位で動的に
変更することを特徴とする共有レジスタファイル制御方
式。
【0031】(4)前記(2)、(3)の共有レジスタ
ファイル制御方式において、各グループ毎あるいは各レ
ジスタウィンド毎にアクセス回数を示すアクセスカウン
タを設け、アクセス回数の少ないグループ又はレジスタ
ウィンドを、より多くのグループ又はレジスタウィンド
を必要としているコンテクストに割り当てることを特徴
とする共有レジスタファイル制御方式。
【0032】(5)前記(2)、(3)の共有レジスタ
制御方式において、レジスタウィンドが不足した際に発
生するメモリ領域への一時待避が行われた回数を測定す
るspillカウンタを各コンテクスト毎に設け、その
一時待避の発生頻度が高いコンテクストに、低いものよ
りも多くのレジスタウィンドを割り当てることを特徴と
する共有レジスタファイル制御方式。
【0033】これにより下記の作用効果を奏する。
【0034】(1)レジスタファイル全体を複数のスレ
ッドで共有し、各スレッド毎に割り当てられるレジスタ
ファイルの、ウィンドスタート位置とウィンドエンド位
置を記入する特殊レジスタを設け、各スレッドに連続し
た物理レジスタを割り当てるので、レジスタファイルの
容量を抑制しつつ、高性能の処理を遂行することができ
る。
【0035】(2)レジスタファイルを同時実行可能な
スレッド数で複数のグループに分割するとともに、動作
状態にあるコンテクストにこの分割したグループを割り
当てることにより、割り当て直すときのオーバヘッドが
軽くなるので、レジスタファイルの容量を抑制しつつ高
性能の処理を遂行することができる。
【0036】(3)動作スレッドの実行状態に応じて、
コンテクスト割り当てをレジスタウィンド単位で動的に
変更するので、動作スレッドの実行状態に応じて、細か
い粒度のレジスタウィンド又は物理レジスタ単位で、動
的にコンテクスト割り当てを変更することが可能とな
り、処理の実態に対応した細かい粒度での割り当てを行
うことが可能となり、これまたレジスタファイルの容量
を抑制しつつ高性能の処理を遂行することができる。
【0037】(4)各グループ毎あるいは各レジスタウ
ィンド毎にアクセス回数を示すアクセスカウンタを設
け、アクセス回数の少ないグループ又はレジスタウィン
ドを、より多くのグループ又はレジスタウィンドを必要
としているコンテクストに割り当てることができ、割り
当てのときのオーバヘッドを軽くするとともにレジスタ
ファイルの容量を抑制し、高性能の処理を遂行できる。
【0038】(5)レジスタウィンドが不足した際に発
生するメモリ領域への一時待避が行われた回数を測定す
るspillカウンタを各コンテクスト毎に設け、その
一時待避の発生頻度が高いコンテクストに、低いものよ
りも多くのレジスタウィンドを割り当てるので、メモリ
領域への一時待避の発生頻度の高いコンテクストに、低
いものより多くのレジスタウィンドを動的に割り当てる
ことができ、メモリ領域への一時待避の発生頻度を抑制
できるので、レジスタファイルの容量を抑制し、高性能
の処理を遂行できる。
【0039】
【発明の実施の形態】本発明の一実施の形態を図1〜図
4に基づき説明する。図1は本発明の一実施の形態であ
って本発明の共有レジスタファイルを持つマルチスレッ
ドプロセッサの一般的な概念図、図2は複数スレッドで
共有するレジスタファイルの制御方式の一実施例説明図
であって図1中の対応処理手段の実現例、図3は新しく
レジスタウィンドと論理レジスタの対応をとる場合の動
作説明図であって図2に示す特殊レジスタ群を用いた対
応手段の動作説明図、図4は既に論理レジスタと対応づ
けられているレジスタウィンドに参照を戻す場合の動作
説明図であって、図2で示す特殊レジスタ群を用いた対
応処理手段の動作説明図である。
【0040】図中、300はマルチスレッドプロセッ
サ、301はレジスタファイル、302−0〜302−
15はレジスタウィンド、303−0〜303−3は論
理レジスタセット、304−0〜304−3はプログラ
ムカウンタ、305は命令読出部、306−0〜306
−3は命令バッファ、307は命令解読部、308は命
令発行部、309は命令実行部、321−0〜321−
2は対応処理手段である。
【0041】マルチスレッドプロセッサ300は、複数
のスレッドを同時に実行するプロセッサである。
【0042】レジスタファイル301は、複数のコンテ
クスト0〜コンテクスト3で共有されるものであって、
レジスタウィンド302−0、302−1・・・302
−15で構成される。
【0043】論理レジスタセット303−0は、コンテ
クスト0により読み出されるアプリケーションのスレッ
ドから明示的にアクセスされるレジスタである。同様に
論理レジスタセット303−1〜303−3は、コンテ
クスト1〜3により読み出されるアプリケーションのス
レッドから明示的にアクセスされるレジスタである。
【0044】プログラムカウンタ304−0はコンテク
スト0により制御されるスレッドを構成するプログラム
を読み出すものである。同様にプログラムカウンタ30
4−1〜304−3はコンテクスト1〜3により制御さ
れるスレッドを構成するプログラムを読み出すものであ
る。
【0045】命令読出部305はマルチスレッドプロセ
ッサ300が処理すべき命令を読み出すものである。読
み出された命令は、各コンテクスト毎に設けられる命令
バッファ306−0〜306−3に一時保持される。
【0046】命令解読部307は、命令バッファ306
−0〜306−3に保持された命令が存在する場合、こ
れを解読するものである。
【0047】命令発行部308は、前記命令解読部30
7により命令を解読した結果にもとづき命令実行部30
9が実行すべき命令を発行するものである。
【0048】命令実行部309は、前記命令発行部30
8から伝達された命令を実行するものである。
【0049】対応処理手段321−0は、動作状態にあ
るコンテクスト0をレジスタファイル301のどのレジ
スタウィンドに割り当てるかを対応処理するものであ
り、対応処理手段321−1、321−2は動作状態に
あるコンテクスト1、2をレジスタファイル301のど
のレジスタウィンドに割り当てるかを対応処理するもの
である。図1の例では、コンテクスト0にレジスタファ
イル301のレジスタウィンド302−0、302−1
が割り当てられ、コンテクスト1にレジスタウィンド3
02−2〜302−9が割り当てられ、コンテクスト2
にレジスタウィンド302−10〜302−15が割り
当てられ、コンテクスト3は停止状態にあるためコンテ
クスト3にはレジスタウィンドの割り当てがない場合を
示す。
【0050】もしコンテクスト3が動作状態にあれば、
例えばレジスタウィンド302−14、302−15が
割り当てられる。
【0051】コンテクスト0〜コンテクスト3には、図
2に示す如く、特殊レジスタ403、404、405、
406、407、408が具備されている。403は該
当コンテクスト(スレッド)が動作状態か否かを現す
(例えば「1」なら動作状態、「0」なら非動作状
態)、つまりステータス(STATUS)を示すレジス
タである。404は該当コンテクストに割り当てられて
いるレジスタウィンドの開始ID(図2のレジスタウィ
ンド402中に記入された数字)を示すレジスタであ
る。ウィンエンド(WINEND)レジスタ405は該
当コンテクストに割り当てられているレジスタウィンド
の最終IDを示す。CWP(Current Wind
ow Pointer)レジスタ406は現在アプリケ
ーションから参照されているレジスタウィンドを指すポ
インタである。キャンセーブ(CANSAVE)レジス
タ407は、論理レジスタセットとして対応づけられて
いないレジスタウィンドの数が記入される。キャンリス
トア(CANRESTORE)レジスタ408は既に論
理レジスタセットと対応済みのレジスタウィンドの数
(ただしCWPは除く)を示す。
【0052】本発明の第一の実施の形態の動作を図2〜
図4にもとづき説明する。図2はレジスタファイル40
1が0〜15の番号の付されたレジスタウィンド402
で構成され、コンテクスト0〜2が動作状態にあり、コ
ンテクスト0は0番と1番のレジスタウィンド402が
割り当てられ、コンテクスト1は2番〜9番のレジスタ
ウィンド402が割り当てられ、コンテクスト2は10
番〜15番のレジスタウィンド402が割り当てられ、
コンテクスト3は非動作状態にあり、コンテクスト0で
は現在アプリケーションから参照されているレジスタウ
ィンドが0番であり、コンテクスト1では同じく6番で
あり、コンテクスト2では11番である場合を示す。こ
の各コンテクスト0、1、2に対するレジスタウィンド
の割り当ては、OSがスレッドの生成や、動作終了を行
うので、このようなときにOSにより行われる。
【0053】先ず図3に基づき、アプリケーションから
論理レジスタに新しくレジスタウィンドを参照させるた
めにポインタを右に移動させる指令が到達した場合に、
コンテクスト1について説明する。図3の処理はハード
により、図1に示す対応処理手段321−1が行う。
【0054】S1.先ずCWP値と、WINENDレジ
スタ405の値が等しくないかどうか判別する。
【0055】S2.等しくなければ、図2においてCW
Pのポインタの示している6番の右側には未参照のレジ
スタウィンドが存在していることが判別できるので、C
WPのポインタの値を1つ右にずらす。この場合は7に
する。
【0056】S3.前記S1において等しければCWP
のポインタの値は右端を指しているので右に移動できな
いため、左端のレジスタウィンドの開始IDであるWI
NSTARTの値にする。
【0057】S4.前記S2又はS3において、レジス
タ407のCANSAVEの値が0か否か判別する。
【0058】S5.0でなければまた論理レジスタセッ
トとの対応付けの行われていないものを示しているの
で、CANSAVEの値を1つ減らし、それからCAN
RESTOREの値を1つ増やす。
【0059】S6.前記S4において0であれば、すで
に割り当てられたレジスタウィンド全部が論理レジスタ
と対応づけられている状態なので、該当レジスタウィン
ドの内容をメモリ領域に一時待避させ、前のデータが消
去されることを防止する。
【0060】S7.それから前記S2あるいはS3で更
新したCWPのポインタで示す該当レジスタウィンドを
新しく論理レジスタと対応させて使用する。
【0061】次に図4にもとづき、コンテクストごとに
割り当てられたレジスタウィンドを用い、既に論理レジ
スタと対応づけられたレジスタウィンドに参照を戻す場
合(図2において、CWPのポインタを6→4の如く移
動)の動作を説明する。このような動作命令はアプリケ
ーションが発生するが、処理は、前記対応処理手段32
1−1等がハードにより行う。
【0062】S8.CWPのポインタの値と、WINS
TARTのレジスタ404の値が等しくないかどうか判
別する。
【0063】S9.等しくなければ、現在のポインタの
位置が左端にないことを示しており、左側には余裕があ
るのでCWPのポインタの値を1つ左にずらす。図2の
場合は5にする。
【0064】S10.前記S8において等しければCW
Pのポインタの値は左端にあることを示しているので、
CWPのポインタを、1番右端に位置させるため、WI
NENDの値にする。
【0065】S11.前記S9またはS10においてレ
ジスタ408の示すCANRESTOREの値が0か否
か判別する。
【0066】S12.0でなければ、メモリ領域から読
み込まないでそのままリストアできることを示している
ので、CANSAVEの値を1つ増やし、CANRES
TOREの値を1つ減らす。
【0067】S13.前記S11において0であれば、
今度はCANRESTOREしようとするレジスタウィ
ンドには別のものが記入されていることを示しているの
で、メモリ領域に一時待避してある該当論理レジスタの
内容を該当レジスタウィンドに回復させる。
【0068】S14.それからS9あるいはS10で更
新したCWPのポインタで示す該当レジスタウィンドを
既に対応済みのレジスタウィンドとして使用する。
【0069】次に図5により、本発明の第2の実施の形
態として、レジスタファイル701をコンテクスト数の
グループに分割して割り当て制御を行う場合について説
明する。図5においては図2で示す特殊レジスタCW
P、CANSAV、CANRESTORE等も必要であ
るが、これらは省略している。
【0070】図5においては、マルチスレッドプロセッ
サで同時に実行可能なコンテクスト数(図5の例では
4)で分割したレジスタウィンドのグループ単位での、
動作状態にあるコンテクストへのレジスタウィンドの割
り当て例を示す。
【0071】図5の例では、マルチスレッドプロセッサ
はコンテクスト0〜コンテクスト3の4つのコンテクス
トを持ち、レジスタウィンド702をグループ702−
0、702−1、702−2、702−3の4つのグル
ープに分けている。各コンテクストには、図5のに代
表的に示す如く、動作状態を示すステータスレジスタ7
03、ウィンスタートレジスタ704、ウィンエンドレ
ジスタ705が設けられ、動作状態、レジスタウィンド
の範囲等が示される。
【0072】図5には、動作状態にあるスレッド数が1
スレッド(コンテクスト)のとき、で示す如く、レジ
スタウィンド702の0〜15が割り当てられる。動作
状態にあるスレッド数が2スレッド(コンテクスト)の
とき、で示す如く、レジスタウィンド702の0〜7
(グループ0、1)、とレジスタウィンド702の8〜
15(グループ2、3)との範囲で割り当てられ、動作
状態にあるスレッド数が3スレッド(コンテクスト)の
とき、で示す如く、コンテクスト0にはレジスタウィ
ンド702の0〜7(グループ0、1)が割り当てら
れ、コンテクスト2、3にはレジスタウィンド702の
8〜11(グループ2)、12〜15(グループ3)が
割り当てられる。そして動作状態にあるスレッド数が4
スレッド(コンテクスト)のとき、で示す如く、コン
テクスト0にはレジスタウィンド702の0〜3(グル
ープ0)が割り当てられ、コンテクスト1には4〜7
(グループ1)が割り当てられ、コンテクスト2には8
〜11(グループ2)が割り当てられ、コンテクスト3
には12〜15(グループ3)が割り当てられる。
【0073】このようにグループ管理することによりレ
ジスタウィンドを割り当て直すときの、OSのオーバヘ
ッドが軽くできる。
【0074】本発明の第3の実施の形態を図6により説
明する。図6は、図5で示したグループ単位でのレジス
タウィンド割り当て方法を示すものであって、レジスタ
ウィンドのグループの利用頻度に基づいたスレッド生成
時のレジスタウィンド割り当て状態を示す。
【0075】図6において、レジスタウィンド802は
グループ802−0からグループ802−3までの4つ
のグループに分けられている。そして各グループ802
−0〜802−3毎にアクセスカウンタ801(図6で
は4個)を持ち、各グループが一定期間中に該当コンテ
クストからアクセスされた回数を測定しておく。図6で
は先ずレジスタウィンド802はグループ0と1及びグ
ループ2、3に分けられてた状態で2つのコンテクスト
に割り当てられ、その後3つのコンテクストに割り当て
られた状態を示している。
【0076】新しいスレッドが生成される際には、各コ
ンテクストのCWPで指示されていないグループ(図6
の例ではグループ1と3)のアクセス値2と1を比較
し、利用頻度の低いグループ3を新しいコンテクストに
割り当てる。なお図6(A)はグループ0〜3の利用頻
度が10、2、8、1であることを示す。このようにし
て図6の(B)に示す如く、レジスタウィンド802の
グループ0、1を1つのコンテクストに割り当て、グル
ープ2を他のコンテクストに割り当て、さらにグループ
3を新しいコンテクストに割り当てる。図6(B)に示
す如く、新しいコンテクストに割り当てられたアクセス
カウンタの値は、初め0を示している。
【0077】このようにして利用頻度にもとづき、正確
にグループ分けすることができる。
【0078】本発明の第4の実施の形態を図7により説
明する。図7は、図5で示したグループ単位でのレジス
タウィンドの割り当て方法を示すものであって、スレッ
ド終了時に解放されたレジスタウィンドの割り当て直し
た状態を示す。
【0079】図7において、レジスタウィンド902は
グループ902−0からグループ902−3までの4つ
のグループに分けられている。またコンテクスト0〜3
に、それぞれスピル(spill)カウンタ901を有
し、各コンテクストに、レジスタウィンドが不足してメ
モリ領域への一時待避が行われた回数を測定しておく。
【0080】動作状態にあったスレッドが終了し、レジ
スタウィンドのグループが解放されるときに、動作が続
行しているコンテクストのスピル(spill)カウン
ト値をもとにして、レジスタウィンドが不足がちなコン
テクストに、解放されたグループを追加して割り当て
る。
【0081】図7では、グループ3が割り当てられてい
たコンテクスト3のスレッドが終了したとき、コンテク
スト2のスピルカウンタの値が大きいので、これにグル
ープ3を追加して割り当て、図7(C)に示す如く、コ
ンテクスト2にグループ2と3を割り当てるものであ
る。このようにしてスピルによるメモリアクセスの回数
の多いものにレジスタウィンドを追加割り当てし、スピ
ルによるメモリアクセス回数の減少をはかることができ
る。
【0082】ところで前記図5〜図7の説明では、レジ
スタファイルを複数のレジスタウィンド構成されるグル
ープに等分し、スレッド生成/終了時にグループの割り
当てを変更する場合について説明した。しかしレジスタ
ウィンドの割り当てを細かい粒度のウィンド単位で行う
例について次に説明する。動作スレッドの状態に応じて
より細かい粒度でレジスタウィンドの割り当てを変化さ
せるため、制御は複雑になるが、より効率的なレジスタ
ウィンドの利用が可能である。
【0083】本発明の第5の実施の形態を図8により説
明する。図8は、レジスタウィンド単位でのレジスタウ
ィンド割り当て方法を示すもので、レジスタ不足による
メモリ領域への一時待避の発生回数に基づいた動的レジ
スタウィンド割り当て状態を示す。
【0084】図8においては、コンテクスト0〜3に、
それぞれスピルカウンタ1001を有し、各コンテクス
トに、レジスタウィンドが不足しメモリ領域へ一時待避
が行われた回数を測定する。図8(A)に示す状態で
は、コンテクスト0ではメモリ領域へ一時待避が行われ
た回数が100回、コンテクスト1では10回、コンテ
クスト2では10回であったことを示している。
【0085】図8では一定期間中のスピルカウンタの値
がコンテクスト1よりも極端に大きいコンテクスト0に
対して、ウィンエンドに相当するレジスタウィンド10
02−1に隣接する、レジスタウィンド1002−2を
該当スレッド(コンテクスト0)に割り当て直してい
る。なお極端に大きいとは、例えば差の値があらかじめ
決めた閾値を越えた場合等で決める。
【0086】レジスタウィンドのコンシステンシを保つ
ため、つまり一貫性を保つため、レジスタウィンドのコ
ンテクスト割り当ての変更は、当該コンテクストのCW
Pがレジスタウィンド1002−1にある時点、つまり
CWPがそのコンテクストに割り当てられたレジスタウ
ィンドの最右端にある時点に行う。このようにして図8
(B)の割り当て状態を図8(C)に示す割り当て状態
にすることができ、効率的なレジスタウィンドの利用が
可能となる。
【0087】本発明の第6の実施の形態を図9により説
明する。図9は、レジスタウィンド単位でのレジスタウ
ィンド割り当て方法を示すもので、レジスタウィンドの
利用頻度に基づいた動的レジスタウィンド割り当て状態
を示す。
【0088】図9においては、レジスタウィンドごとに
アクセスカウンタ1101を有し、各レジスタウィンド
が一定期間中に該当コンテクストからアクセスされた回
数を測定する。図9(A)ではレジスタウィンド110
2−0、1102−1がコンテクスト0(図示省略)に
割り当てられ、レジスタウィンド1102−2〜110
2−9がコンテクスト1(図示省略)に割り当てられ、
レジスタウィンド1102−10〜1102−15がコ
ンテクスト2(図示省略)に割り当てられた例を示す。
【0089】CWPがWINENDに相当するレジスタ
ウィンド1102−1にある時点でコンテクスト0(図
示省略)のレジスタが不足した場合、コンテクスト1
(図示省略)に割り当てられている隣接するレジスタウ
ィンド1102−2のアクセスカウンタをチェックし、
利用回数が低ければ(この場合はアクセスカウント値は
0)、このレジスタウィンド1102−2を、図9
(B)に示す如く、レジスタウィンド1102−0、1
102−1と同じ該当コンテクスト0(図示省略)に割
り当て直す。
【0090】図10により、動的にレジスタウィンド割
り当てを変更する際の制御について説明する。割り当て
を変更するとき、レジスタウィンドのコンシステンシを
保つために、レジスタウィンドを増やしたいコンテクス
トのCWPがWINENDの位置を指す場合にのみコン
テクスト割り当ての変更を行う。この変更は図1に示す
対応処理手段がハードで行う。
【0091】S15.レジスタウィンドの割り当てを増
やしたいコンテクストが存在したとき、そのコンテクス
トのCWPがWINENDと等しいか否か判別する。
【0092】S16.CWPとWINENDが等しい場
合には、CWP(該当コンテクストのWINEND)の
右隣に隣接するレジスタウィンドはコンテクストに割り
当てられているか否かをチェックする。具体的には、他
コンテクストのWINSTARTレジスタと比較して一
致しなければ割り当てられていないことがわかる。
【0093】S17.隣接するレジスタウィンドが既に
他コンテクストに割り当てられている場合には、隣接す
るコンテクストのWINSTARTは論理レジスタに対
応ずみか(CLEANでないか)否かチェックする。
【0094】S18.対応ずみであれば、CLEANで
ないつまり有意義な値が存在するので、隣接するコンテ
クストのCANSAVEは0か否かチェックする。
【0095】S19.0でなければ割り当てを減らす隣
接するコンテクストのレジスタウィンドのうちCLEA
Nなレジスタウィンドを右(WINEND)から探索
し、該当レジスタウィンドの値をコピーする。
【0096】S20.それから割り当てを減らす隣接す
るコンテクストのCANSAVEを1つ減らし、WIN
STARTを1つ右にずらす。また前記S17において
対応ずみでない(CLEANな状態の場合)も、同様な
処理が行われる。
【0097】S21.それから右隣に隣接するレジスタ
ウィンドを該当コンテクストに追加する。そして該当コ
ンテクストのCANSAVEを1つ増やしWINEND
を1つ右にずらす。前記S16において割り当てられて
いない場合も同様な処理が行われる。
【0098】S22.前記S15においてCWPとCI
NENDが等しくない場合はレジスタウィンドの割り当
ては変更しない。また前記S18において隣接するコン
テクストのCANSAVEが0の場合は、レジスタウィ
ンドが全部使用されている状態であるので、レジスタウ
ィンドの割り当ては変更しない。
【0099】本発明によれば複数スレッドが同時に実行
されるマルチスレッドプロセッサにおいて、レジスタウ
ィンド構成のレジスタファイルを複数コンテクストで共
有することでレジスタファイルの容量を抑えると共に、
各コンテクストの状態に応じて適当な数のレジスタウィ
ンドを割り当てることでレジスタウィンドを有効利用
し、高性能の動作が実現される。
【0100】
【発明の効果】本発明により下記の効果を奏することが
できる。
【0101】(1)レジスタファイル全体を複数のスレ
ッドで共有し、各スレッド毎に割り当てられるレジスタ
ファイルの、ウィンドスタート位置とウィンドエンド位
置を記入する特殊レジスタを設け、各スレッドに連続し
た物理レジスタを割り当てるので、レジスタファイルの
容量を抑制しつつ、高性能の処理を遂行することができ
る。
【0102】(2)レジスタファイルを同時実行可能な
スレッド数で複数のグループに分割するとともに、動作
状態にあるコンテクストにこの分割したグループを割り
当てることにより、割り当て直すときのオーバヘッドが
軽くなるので、レジスタファイルの容量を抑制しつつ高
性能の処理を遂行することができる。
【0103】(3)動作スレッドの実行状態に応じて、
コンテクスト割り当てをレジスタウィンド単位で動的に
変更するので、動作スレッドの実行状態に応じて、細か
い粒度のレジスタウィンド/物理レジスタ単位で、動的
にコンテクスト割り当てを変更することが可能となり、
処理の実態に対応した細かい粒度での割り当てを行うこ
とが可能となり、これまたレジスタファイルの容量を抑
制しつつ高性能の処理を遂行することができる。
【0104】(4)各グループ毎あるいは各レジスタウ
ィンド毎にアクセス回数を示すアクセスカウンタを設
け、アクセス回数の少ないグループ又はレジスタウィン
ドを、より多くのグループ又はレジスタウィンドを必要
としているコンテクストに割り当てることができ、割り
当てのときのオーバヘッドを軽くするとともにレジスタ
ファイルの容量を抑制し、高性能の処理を遂行できる。
【0105】(5)レジスタウィンドが不足した際に発
生するメモリ領域への一時待避が行われた回数を測定す
るspillカウンタを各コンテクスト毎に設け、その
一時待避の発生頻度が高いコンテクストに、低いものよ
りも多くのレジスタウィンドを割り当てるので、メモリ
領域への一時待避の発生頻度の高いコンテクストに、低
いものより多くのレジスタウィンドを動的に割り当てる
ことができ、メモリ領域への一時待避の発生頻度を抑制
できるので、レジスタファイルの容量を抑制し、高性能
の処理を遂行できる。
【図面の簡単な説明】
【図1】本発明の第一の実施の形態である。
【図2】本発明の複数スレッドで共有するレジスタファ
イル制御状態説明図である。
【図3】本発明の第一の実施の形態の動作説明図であ
る。
【図4】本発明の第一の実施の形態において、既に論理
レジスタと対応づけられているレジスタウィンドに参照
を戻す場合の動作説明図である。
【図5】本発明の第2の実施の形態であって、レジスタ
ファイルをコンテクスト数のグループに分割して割り当
てて制御を行う場合の説明図である。
【図6】本発明の第3の実施の形態であって、レジスタ
ウィンドのグループの利用頻度にもとづいてスレッド生
成時のレジスタウィンド割り当てを行う場合の説明図で
ある。
【図7】本発明の第4の実施の形態であって、スレッド
終了時に解放されたレジスタウィンドの割り当て直しの
場合の説明図である。
【図8】本発明の第5の実施の形態であって、レジスタ
不足によるメモリ領域への一時待避の発生回数にもとづ
いた動的レジスタウィンド割り当てを行う場合の説明図
である。
【図9】本発明の第6の実施の形態であって、レジスタ
ウィンドの利用頻度にもとづいた動的レジスタウィンド
割り当てを行う場合の説明図である。
【図10】図8、9に示す、動的にレジスタウィンド割
り当てを変更する場合の制御例である。
【図11】レジスタウィンドの概念図である。
【図12】従来のマルチスレッドプロセッサにおける複
数コンテクスト固有レジスタファイルの概念図である。
【符号の説明】
300 マルチスレッドプロセッサ 301 レジスタファイル 302−0〜302−15 レジスタウィンド 303−0〜303−3 論理レジスタセット 304−0〜304−3 プログラムカウンタ 305 命令読出部 306−0〜306−3 命令バッファ 307 命令解読部 308 命令発行部 309 命令実行部 321−0〜321−2 対応処理手段

Claims (5)

    【特許請求の範囲】
  1. 【請求項1】複数のスレッドを同時に実行するマルチス
    レッドプロセッサで、且つ論理レジスタより多数の物理
    レジスタからなるレジスタウィンド構成のレジスタファ
    イルを備えるプロセッサにおいて、 レジスタファイル全体を複数のスレッドで共有し、各ス
    レッド毎に割り当てられるレジスタファイルの、ウィン
    ドスタート位置とウィンドエンド位置を記入する特殊レ
    ジスタを設け、各スレッドに連続した物理レジスタを割
    り当てることを特徴とする共有レジスタファイル制御方
    式。
  2. 【請求項2】請求項1の共有レジスタファイル制御方式
    において、 マルチスレッドプロセッサで同時実行可能なスレッド数
    で前記レジスタファイルを複数のグループに分割し、 コンテクストの動作状態を示す特殊レジスタを設け、 動作状態にあるコンテクストに、前記分割されたグルー
    プを割り当てることを特徴とする共有レジスタファイル
    制御方式。
  3. 【請求項3】請求項1の共有レジスタファイル制御方式
    において、 動作スレッドの実行状態に応じて、コンテクスト割り当
    てをレジスタウィンド単位で動的に変更することを特徴
    とする共有レジスタファイル制御方式。
  4. 【請求項4】請求項2又は請求項3の共有レジスタファ
    イル制御方式において、 各グループ毎あるいは各レジスタウィンド毎にアクセス
    回数を示すアクセスカウンタを設け、アクセス回数の少
    ないグループ又はレジスタウィンドを、より多くのグル
    ープ又はレジスタウィンドを必要としているコンテクス
    トに割り当てることを特徴とする共有レジスタファイル
    制御方式。
  5. 【請求項5】請求項2又は請求項3の共有レジスタ制御
    方式において、 レジスタウィンドが不足した際に発生するメモリ領域へ
    の一時待避が行われた回数を測定するspillカウン
    タを各コンテクスト毎に設け、その一時待避の発生頻度
    が高いコンテクストに、低いものよりも多くのレジスタ
    ウィンドを割り当てることを特徴とする共有レジスタフ
    ァイル制御方式。
JP2002040899A 2002-02-19 2002-02-19 マルチスレッドプロセッサにおける共有レジスタファイル制御方式 Expired - Fee Related JP3727887B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2002040899A JP3727887B2 (ja) 2002-02-19 2002-02-19 マルチスレッドプロセッサにおける共有レジスタファイル制御方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002040899A JP3727887B2 (ja) 2002-02-19 2002-02-19 マルチスレッドプロセッサにおける共有レジスタファイル制御方式

Publications (2)

Publication Number Publication Date
JP2003241961A true JP2003241961A (ja) 2003-08-29
JP3727887B2 JP3727887B2 (ja) 2005-12-21

Family

ID=27781447

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002040899A Expired - Fee Related JP3727887B2 (ja) 2002-02-19 2002-02-19 マルチスレッドプロセッサにおける共有レジスタファイル制御方式

Country Status (1)

Country Link
JP (1) JP3727887B2 (ja)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006039815A (ja) * 2004-07-26 2006-02-09 Fujitsu Ltd マルチスレッドプロセッサおよびレジスタ制御方法
JP2008507034A (ja) * 2004-07-13 2008-03-06 エヌヴィディア コーポレイション 下位ポートカウントメモリーを用いたマルチポートメモリーのシミュレート
JP2012038328A (ja) * 2011-09-27 2012-02-23 Intel Corp プロセッサ内のマルチスレッド間通信
JP5201140B2 (ja) * 2007-06-20 2013-06-05 富士通株式会社 同時マルチスレッドの命令完了制御装置
JP2013140446A (ja) * 2011-12-28 2013-07-18 Fujitsu Ltd 情報処理装置および不正アクセス防止方法
KR20170132907A (ko) * 2012-06-15 2017-12-04 인텔 코포레이션 메모리로부터 순차적으로 판독하는 load들을 구성하는 메모리 일관성 모델에서 비순차 load들을 갖는 세마포어 방법 및 시스템
US10592300B2 (en) 2012-06-15 2020-03-17 Intel Corporation Method and system for implementing recovery from speculative forwarding miss-predictions/errors resulting from load store reordering and optimization
US10643162B2 (en) 2015-03-30 2020-05-05 Fujitsu Limited Method, apparatus, and storage medium

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013188696A2 (en) 2012-06-15 2013-12-19 Soft Machines, Inc. An instruction definition to implement load store reordering and optimization
WO2013188460A2 (en) 2012-06-15 2013-12-19 Soft Machines, Inc. A virtual load store queue having a dynamic dispatch window with a distributed structure
TWI599879B (zh) 2012-06-15 2017-09-21 英特爾股份有限公司 在處理器中之免消歧義失序載入儲存佇列方法和微處理器
WO2013188306A1 (en) 2012-06-15 2013-12-19 Soft Machines, Inc. Reordered speculative instruction sequences with a disambiguation-free out of order load store queue
KR101996351B1 (ko) 2012-06-15 2019-07-05 인텔 코포레이션 통합된 구조를 갖는 동적 디스패치 윈도우를 가지는 가상 load store 큐
US10635602B2 (en) 2017-11-14 2020-04-28 International Business Machines Corporation Address translation prior to receiving a storage reference using the address to be translated
US10592164B2 (en) 2017-11-14 2020-03-17 International Business Machines Corporation Portions of configuration state registers in-memory
US10558366B2 (en) 2017-11-14 2020-02-11 International Business Machines Corporation Automatic pinning of units of memory
US10664181B2 (en) 2017-11-14 2020-05-26 International Business Machines Corporation Protecting in-memory configuration state registers
US10698686B2 (en) 2017-11-14 2020-06-30 International Business Machines Corporation Configurable architectural placement control
US10496437B2 (en) 2017-11-14 2019-12-03 International Business Machines Corporation Context switch by changing memory pointers
US10901738B2 (en) 2017-11-14 2021-01-26 International Business Machines Corporation Bulk store and load operations of configuration state registers
US10642757B2 (en) 2017-11-14 2020-05-05 International Business Machines Corporation Single call to perform pin and unpin operations
US10761751B2 (en) 2017-11-14 2020-09-01 International Business Machines Corporation Configuration state registers grouped based on functional affinity

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7834881B2 (en) 2004-07-13 2010-11-16 Nvidia Corporation Operand collector architecture
JP2008507034A (ja) * 2004-07-13 2008-03-06 エヌヴィディア コーポレイション 下位ポートカウントメモリーを用いたマルチポートメモリーのシミュレート
JP2011238271A (ja) * 2004-07-13 2011-11-24 Nvidia Corp 低ポート数メモリーを用いたマルチポートメモリーのシミュレート
US8447959B2 (en) 2004-07-26 2013-05-21 Fujitsu Limited Multithread processor and method of controlling multithread processor
US7805594B2 (en) 2004-07-26 2010-09-28 Fujitsu Limited Multithread processor and register control method
JP2006039815A (ja) * 2004-07-26 2006-02-09 Fujitsu Ltd マルチスレッドプロセッサおよびレジスタ制御方法
JP5201140B2 (ja) * 2007-06-20 2013-06-05 富士通株式会社 同時マルチスレッドの命令完了制御装置
JP2012038328A (ja) * 2011-09-27 2012-02-23 Intel Corp プロセッサ内のマルチスレッド間通信
JP2013140446A (ja) * 2011-12-28 2013-07-18 Fujitsu Ltd 情報処理装置および不正アクセス防止方法
KR20170132907A (ko) * 2012-06-15 2017-12-04 인텔 코포레이션 메모리로부터 순차적으로 판독하는 load들을 구성하는 메모리 일관성 모델에서 비순차 load들을 갖는 세마포어 방법 및 시스템
US10592300B2 (en) 2012-06-15 2020-03-17 Intel Corporation Method and system for implementing recovery from speculative forwarding miss-predictions/errors resulting from load store reordering and optimization
KR102248470B1 (ko) * 2012-06-15 2021-05-06 인텔 코포레이션 메모리로부터 순차적으로 판독하는 load들을 구성하는 메모리 일관성 모델에서 비순차 load들을 갖는 세마포어 방법 및 시스템
US10643162B2 (en) 2015-03-30 2020-05-05 Fujitsu Limited Method, apparatus, and storage medium

Also Published As

Publication number Publication date
JP3727887B2 (ja) 2005-12-21

Similar Documents

Publication Publication Date Title
JP3727887B2 (ja) マルチスレッドプロセッサにおける共有レジスタファイル制御方式
US7743233B2 (en) Sequencer address management
US8732711B2 (en) Two-level scheduler for multi-threaded processing
JP5413001B2 (ja) キャッシュメモリ
US9329988B2 (en) Parallel dynamic memory allocation using a nested hierarchical heap
US10217184B2 (en) Programmable graphics processor for multithreaded execution of programs
TWI509519B (zh) 維持公平和秩序的資源管理子系統
CN108595258B (zh) 一种gpgpu寄存器文件动态扩展方法
US7185167B2 (en) Heap allocation
US7533236B1 (en) Off-chip out of order memory allocation for a unified shader
US20040268093A1 (en) Cross-thread register sharing technique
EP3475809A1 (en) System and method for using virtual vector register files
US10095548B2 (en) Mechanism for waking common resource requests within a resource management subsystem
JP2009245047A (ja) メモリバッファ割当装置およびプログラム
JP2002342163A (ja) マルチスレッドプロセッサ用キャッシュ制御方式
TW201435734A (zh) 條件阻擋以及急性阻擋的硬體排程之系統及方法
US20120030430A1 (en) Cache control apparatus, and cache control method
JP3810735B2 (ja) スケーラブル・メモリの効率的なスレッドローカル・オブジェクト割り当て方法
EP1760581A1 (en) Processing operations management systems and methods
US8405665B2 (en) Programmable graphics processor for multithreaded execution of programs
US8860737B2 (en) Programmable graphics processor for multithreaded execution of programs
US6631452B1 (en) Register stack engine having speculative load/store modes
US10585701B2 (en) Dynamically allocating storage elements to provide registers for processing thread groups
US8266379B2 (en) Multithreaded processor with multiple caches
JP3991443B2 (ja) タスク切り替え方法及びデータ処理装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20040903

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20050929

R150 Certificate of patent (=grant) or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20081007

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20091007

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20091007

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20101007

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20101007

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20111007

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20111007

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20121007

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20121007

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20131007

Year of fee payment: 8

LAPS Cancellation because of no payment of annual fees