JP2002342163A - Method for controlling cache for multithread processor - Google Patents

Method for controlling cache for multithread processor

Info

Publication number
JP2002342163A
JP2002342163A JP2001144234A JP2001144234A JP2002342163A JP 2002342163 A JP2002342163 A JP 2002342163A JP 2001144234 A JP2001144234 A JP 2001144234A JP 2001144234 A JP2001144234 A JP 2001144234A JP 2002342163 A JP2002342163 A JP 2002342163A
Authority
JP
Japan
Prior art keywords
thread
cache
occupied
control method
way
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.)
Pending
Application number
JP2001144234A
Other languages
Japanese (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 JP2001144234A priority Critical patent/JP2002342163A/en
Publication of JP2002342163A publication Critical patent/JP2002342163A/en
Pending legal-status Critical Current

Links

Abstract

PROBLEM TO BE SOLVED: To realize a control method for effectively utilizing a cache by preventing competition among a plurality of instruction flows about a cache control method for a multithread processor performing the plurality of instruction flows. SOLUTION: A storage controlling part 107 stores shared/occupied states of threads in an occupancy flag 111 and occupied thread ID in an ID register 112 for each way of a cache 110 according to designation by software, statistical information of hardware resources, etc. The storage controlling part 107 decides the sharing/occupancy of a corresponding way by using the occupancy flag 111 when a cache error occurs in cache access, and decides whether a self-thread is occupied by using the ID register 112 in the case of occupancy. As a result of the decision, a replacement destination is selected from a way of thread sharing or self-thread occupancy, and data transfer is performed a memory.

Description

【発明の詳細な説明】DETAILED DESCRIPTION OF THE INVENTION

【0001】[0001]

【発明の属する技術分野】本発明は,複数の命令流が実
行されるマルチスレッドプロセッサ用キャッシュ制御方
式に関し,特に,マルチスレッドプロセッサにおいて複
数の命令流間でキャッシュが競合することを防ぎ,キャ
ッシュを有効利用するためのキャッシュ制御方式に関す
る。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a cache control method for a multi-thread processor in which a plurality of instruction streams are executed. It relates to a cache control method for effective use.

【0002】[0002]

【従来の技術】近年,複数の命令流が実行されるマルチ
スレッドプロセッサ,SMT(Simultaneous Multi Thr
ead )プロセッサといったアーキテクチャが注目されて
いる。マルチスレッドプロセッサでは,命令キャッシュ
ミス時など命令フェッチができない場合に,フェッチす
るスレッドを積極的に切り替えることで,機能ユニット
などのハードウェア資源を有効利用する。従来,マルチ
スレッドプロセッサでは,レジスタや命令バッファなど
は複数スレッド分が実装されるが,貴重なハードウェア
資源であるキャッシュは複数スレッドで共有し,キャッ
シュ容量,連想度を有効活用するようにしている。
2. Description of the Related Art In recent years, a multi-thread processor that executes a plurality of instruction streams, an SMT (Simultaneous Multi Thr
ead) Architectures such as processors are attracting attention. In the multi-thread processor, when an instruction fetch cannot be performed such as when an instruction cache miss occurs, hardware resources such as functional units are effectively used by actively switching threads to be fetched. Conventionally, in a multi-thread processor, registers and instruction buffers are implemented for multiple threads, but the cache, a valuable hardware resource, is shared by multiple threads, and the cache capacity and associativity are used effectively. .

【0003】[0003]

【発明が解決しようとする課題】複数スレッドでキャッ
シュを共用する場合に,複数スレッド間でキャッシュ競
合が発生しやすいという問題がある。一方,複数の独立
したキャッシュを用意し,スレッドごとに異なるキャッ
シュを割り当てることも考えられるが,投入スレッド数
が少ない場合には,キャッシュの利用効率が低くなって
しまうという問題がある。
When a cache is shared by a plurality of threads, there is a problem that cache contention is likely to occur between the plurality of threads. On the other hand, it is conceivable to prepare a plurality of independent caches and assign a different cache to each thread. However, when the number of input threads is small, there is a problem that the use efficiency of the cache decreases.

【0004】本発明は,上記の問題に鑑みてなされたも
のであり,投入されているスレッドの特性に応じて,キ
ャッシュの一部分に対しスレッド共有/スレッド占有の
切り替えを行うことで,複数スレッド間でのキャッシュ
競合を防ぎ,キャッシュの有効利用を実現することを目
的とする。
The present invention has been made in view of the above-mentioned problem, and performs switching between thread sharing / thread occupation for a part of a cache in accordance with the characteristics of a thread that has been input, thereby enabling a plurality of threads to execute. The purpose of the present invention is to prevent cache contention and to make effective use of the cache.

【0005】[0005]

【課題を解決するための手段】上記課題を解決するた
め,本発明は,複数の命令流を実行するマルチスレッド
プロセッサ用のキャッシュを制御する方式において,前
記キャッシュの一部分に対し,複数の命令流(スレッド
やプロセス等)で共有するか,特定の命令流で占有して
用いるかの割り当てを指定できることを特徴とする。
In order to solve the above-mentioned problems, the present invention provides a method for controlling a cache for a multi-thread processor which executes a plurality of instruction streams. (Threads or processes, etc.), or can be assigned to be used exclusively for a specific instruction flow.

【0006】また,本発明は,前記キャッシュのウェイ
ごとに特定のスレッドで占有して用いるか否かの制御を
行う。
Further, the present invention controls whether or not a specific thread occupies and uses each cache way.

【0007】また,ウェイより細かい粒度であるライン
ごとに,特定のスレッドで占有して用いるか否かの制御
を行うように構成することもできる。
[0007] It is also possible to configure so that for each line having a finer granularity than the way, a control is made as to whether or not a line is occupied and used by a specific thread.

【0008】また,スレッドに割り当てるウェイ数/ラ
イン数をソフトウェアから指定できるようにすることに
より,ウェイ/ラインごとのスレッド割り当てを,より
柔軟に制御することができる。
Further, by allowing the number of ways / lines to be assigned to a thread to be specified by software, the thread allocation for each way / line can be controlled more flexibly.

【0009】また,プロセッサの各種ハードウェア資源
利用の統計情報を採取し,それをもとにウェイごとのス
レッド割り当てを動的に制御することもできる。
Further, it is also possible to collect statistical information on the use of various hardware resources of the processor and dynamically control the thread allocation for each way based on the collected statistical information.

【0010】また,上記のキャッシュ制御方式におい
て,投入中のスレッドが占有するウェイ数の総和がキャ
ッシュのウェイ数を超えた場合に,新しいスレッドの投
入を停止させることで適切なスレッド投入の実現も可能
である。
In the above-described cache control method, when the total number of ways occupied by a thread being entered exceeds the number of ways in the cache, the entry of a new thread is stopped to realize appropriate thread entry. It is possible.

【0011】また,上記のキャッシュ制御方式におい
て,同じメモリ空間を持つ同一プロセス内の複数スレッ
ド間ではキャッシュを共有するために,キャッシュのウ
ェイ/ラインごとに特定のプロセスで占有して用いるか
否かの制御を行うように構成することもできる。
In the above cache control method, in order to share a cache among a plurality of threads in the same process having the same memory space, whether or not a specific process occupies each way / line of the cache is used. May be configured to perform the control described above.

【0012】図1は,本発明の概念を説明するための図
である。図1に示すように,マルチスレッドプロセッサ
では,キャッシュ2は,レジスタ1,メモリ3との間で
データ転送を行う。あるスレッドのデータ転送を行う際
には,キャッシュ2のスレッド共有の部分,あるいは該
当スレッドが占有する部分を用い,他のスレッドが占有
する部分は用いない。キャッシュ2のスレッド共有の部
分はすべてのスレッドがアクセスすることができる。
FIG. 1 is a diagram for explaining the concept of the present invention. As shown in FIG. 1, in the multi-thread processor, the cache 2 transfers data between the register 1 and the memory 3. When data transfer of a certain thread is performed, a portion of the cache 2 that is shared by threads or a portion occupied by the thread is used, and a portion occupied by another thread is not used. The thread shared portion of the cache 2 can be accessed by all threads.

【0013】図1に示す例では,スレッドTh0のキャ
ッシュアクセスは,キャッシュ2のスレッドTh0の占
有部2−0またはスレッド共有部2−2に限られ,スレ
ッドTh1の占有部2−1にはアクセスできない。
In the example shown in FIG. 1, the cache access of the thread Th0 is limited to the occupying section 2-0 or the thread sharing section 2-2 of the thread Th0 of the cache 2, and the occupying section 2-1 of the thread Th1 is accessed. Can not.

【0014】スレッド共有/スレッド占有の切り替え
は,キャッシュ2のウェイ(way)単位あるいはライ
ン(line)単位で行うことが考えられる。本発明で
は,キャッシュ2のウェイあるいはラインごとに,スレ
ッド共有/スレッド占有を示す情報と,占有するスレッ
ドを示す情報とを保持するようにする。
Switching between thread sharing and thread occupation may be performed in units of ways or lines in the cache 2. In the present invention, information indicating thread sharing / thread occupation and information indicating the occupying thread are held for each way or line of the cache 2.

【0015】キャッシュ2のウェイあるいはラインへの
スレッド割り当て方法の代表例としては,以下に示すよ
うなものがある。 1.投入スレッド数に応じて,スレッド投入時に割り当
てる。 2.スレッドで占有するウェイあるいはライン数をソフ
トウェアで指定し,それに従いスレッドを割り当てる。 3.各種ハードウェア資源利用の統計情報を用いて動的
に割り当てる。
The following is a typical example of a method of assigning a thread to a way or a line of the cache 2. 1. Assigned at the time of thread entry according to the number of entered threads. 2. The number of ways or lines occupied by the thread is specified by software, and the thread is allocated according to the number. 3. Dynamic allocation is performed using statistical information on the use of various hardware resources.

【0016】また,同じメモリ空間を持つ同一プロセス
内で複数スレッドに処理が分割された場合には,スレッ
ド間で共有されるデータが存在し,キャッシュ2のウェ
イあるいはラインをスレッドごとに占有するより,ウェ
イあるいはラインを共有した方が効率的であると考えら
れる。この特徴を利用するためには,プロセッサに投入
されているプロセスの特性に応じて,キャッシュ2の一
部分に対しプロセス共有/プロセス占有の切り替えを行
うことで同一プロセス内の複数スレッド間での共有デー
タの有効利用を図りつつ,複数プロセス間でのキャッシ
ュ競合を防ぐ。
If the processing is divided into a plurality of threads in the same process having the same memory space, there is data shared between the threads, and the way or line of the cache 2 is occupied for each thread. , Way or line are considered more efficient. In order to utilize this feature, the shared data between a plurality of threads in the same process is switched by switching between process sharing and process occupation for a part of the cache 2 according to the characteristics of the process input to the processor. To prevent cache conflicts between multiple processes while effectively using

【0017】プロセス共有/プロセス占有の切り替え
は,キャッシュ2のウェイ単位あるいはライン単位で行
う。そのために,本発明では,キャッシュ2のウェイあ
るいはラインごとに,プロセス共有/プロセス占有を示
す情報と,占有するプロセスを示す情報とを保持する。
The switching between the process sharing and the process occupation is performed in a way unit or a line unit of the cache 2. Therefore, in the present invention, information indicating process sharing / process occupation and information indicating the occupying process are held for each way or line of the cache 2.

【0018】キャッシュ2のウェイあるいはラインへの
プロセス割り当て方法の代表例としては,以下に示すよ
うなものがある。 1.投入プロセス数に応じて,プロセス投入時に割り当
てる。 2.プロセスで占有するウェイあるいはライン数をソフ
トウェアで指定し,それに従いスレッドを割り当てる。 3.各種ハードウェア資源利用の統計情報を用いて動的
に割り当てる。
The following is a typical example of a method of allocating a process to a way or a line of the cache 2. 1. Assigned at the time of process input according to the number of input processes. 2. The number of ways or lines occupied by the process is specified by software, and threads are allocated accordingly. 3. Dynamic allocation is performed using statistical information on the use of various hardware resources.

【0019】マルチスレッドプロセッサでは,投入スレ
ッド数が多すぎるとキャッシュ2などのハードウェア資
源が競合をおこし,性能低下が起きる。そのため,適切
な投入スレッドが重要となってくる。本発明では,既に
投入されているスレッドでキャッシュ2が占有され,新
しいスレッドにキャッシュ割り当てを行えない場合に
は,スレッド投入を停止することで,過剰なスレッド投
入を防ぐことが可能である。
In a multi-thread processor, if the number of input threads is too large, hardware resources such as the cache 2 compete with each other, resulting in performance degradation. Therefore, the appropriate input thread becomes important. In the present invention, when the cache 2 is occupied by a thread that has already been entered and a cache cannot be allocated to a new thread, it is possible to prevent excessive thread entry by stopping thread entry.

【0020】[0020]

【発明の実施の形態】以下に,本発明の実施の形態を説
明する。 〔第1の実施の形態〕図2は,第1の実施の形態におけ
る,キャッシュのスレッド割り当てをウェイ単位で行う
場合のマルチスレッドプロセッサの構成例を示す図であ
る。
Embodiments of the present invention will be described below. [First Embodiment] FIG. 2 is a diagram showing a configuration example of a multi-thread processor in the case where cache thread allocation is performed in units of ways in the first embodiment.

【0021】図2に示すように,マルチスレッドプロセ
ッサ100は,レジスタ101と,プログラムカウンタ
102と,命令読出部103と,命令バッファ104
と,命令発行部105と,命令実行部106と,記憶制
御部107と,キャッシュ110と,占有フラグ111
と,IDレジスタ112とを備える。
As shown in FIG. 2, the multi-thread processor 100 includes a register 101, a program counter 102, an instruction reading unit 103, and an instruction buffer 104.
, An instruction issuing unit 105, an instruction execution unit 106, a storage control unit 107, a cache 110, and an occupation flag 111
And an ID register 112.

【0022】マルチスレッドプロセッサ100では,レ
ジスタ101,プログラムカウンタ102,命令バッフ
ァ104は,複数スレッド分実装される。命令読出部1
03,命令発行部105,命令実行部106や,キャッ
シュ110は,複数スレッド間で共有されるハードウェ
ア資源である。これらの機能の詳細については,よく知
られている技術であるので説明を省略する。
In the multi-thread processor 100, the register 101, the program counter 102, and the instruction buffer 104 are mounted for a plurality of threads. Instruction reading unit 1
03, the instruction issuing unit 105, the instruction executing unit 106, and the cache 110 are hardware resources shared by a plurality of threads. The details of these functions are well-known technologies, and thus description thereof is omitted.

【0023】記憶制御部107は,メモリとキャッシュ
110間のデータ転送を制御する部分であり,特に,キ
ャッシュ110の一部分に対し,複数のスレッドで共有
するか,特定のスレッドで占有して用いるかの割り当て
をウェイ単位に制御する機能を持つ。
The storage control unit 107 controls the data transfer between the memory and the cache 110. In particular, the storage control unit 107 determines whether a part of the cache 110 is shared by a plurality of threads or occupied by a specific thread. It has a function to control the allocation of each way.

【0024】占有フラグ111は,該当ウェイごとにス
レッド共有/スレッド占有を示すフラグである。IDレ
ジスタ112は,該当ウェイを占有するスレッドIDを
保持するレジスタである。
The occupation flag 111 is a flag indicating thread sharing / thread occupation for each way. The ID register 112 is a register that holds a thread ID that occupies the corresponding way.

【0025】キャッシュ110にアクセスを行う場合に
は,スレッド共有のウェイ,または自スレッドが占有す
るウェイに対してのみアクセス可能であり,他スレッド
が占有するウェイにはアクセスできない。
When accessing the cache 110, only the way shared by the thread or the way occupied by the own thread can be accessed, and the way occupied by another thread cannot be accessed.

【0026】図3は,第1の実施の形態における,キャ
ッシュのスレッド割り当てをライン単位で行う場合の,
マルチスレッドプロセッサの構成例を示す図である。
FIG. 3 shows a case where cache thread allocation is performed in line units in the first embodiment.
FIG. 3 is a diagram illustrating a configuration example of a multi-thread processor.

【0027】図3に示すように,マルチスレッドプロセ
ッサ200のレジスタ201,プログラムカウンタ20
2,命令バッファ204,命令読出部203,命令発行
部205,命令実行部206や,キャッシュ210は,
図2に示す手段と同様である。
As shown in FIG. 3, the register 201 and the program counter 20 of the multi-thread processor 200
2. The instruction buffer 204, the instruction reading unit 203, the instruction issuing unit 205, the instruction execution unit 206, and the cache 210
This is the same as the means shown in FIG.

【0028】記憶制御部207は,キャッシュ210の
一部分に対し,複数のスレッドで共有するか,特定のス
レッドで占有して用いるかの割り当てをライン単位に制
御する。
The storage control unit 207 controls allocation of a part of the cache 210 to be shared by a plurality of threads or occupied by a specific thread for each line.

【0029】占有フラグ211は該当ラインごとにスレ
ッド共有/スレッド占有を示すフラグである。IDレジ
スタ212は該当ラインを占有するスレッドIDを保持
するレジスタである。
The occupation flag 211 is a flag indicating thread sharing / thread occupation for each line. The ID register 212 is a register for holding a thread ID occupying the line.

【0030】キャッシュ210にアクセスを行う場合に
は,スレッド共有のライン,または自スレッドが占有す
るラインに対してのみアクセス可能であり,他スレッド
が占有するラインにはアクセスできない。
When accessing the cache 210, only a line shared by a thread or a line occupied by the own thread can be accessed, and a line occupied by another thread cannot be accessed.

【0031】図3に示す構成では,図2に示す構成に比
べて,必要となる占有フラグとIDレジスタは増える
が,ラインというより細かい単位で制御が行えるため,
効率的なスレッド割り当てが可能である。
Although the configuration shown in FIG. 3 requires more occupation flags and ID registers than the configuration shown in FIG. 2, the control can be performed in finer units such as lines.
Efficient thread allocation is possible.

【0032】スレッドに割り当てるキャッシュのウェイ
数/ライン数をソフトウェアから指定する例として,ウ
ェイ数/ライン数を指定する拡張命令を設ける方法があ
る。拡張命令の挿入方法としては,ソースコードレベル
でライブラリ(library )を介してユーザが明示的に指
定する方法や,コンパイル時にコンパイラが拡張命令を
付加する方法が考えられる。
As an example of specifying the number of ways / lines of a cache to be assigned to a thread from software, there is a method of providing an extended instruction for specifying the number of ways / lines. As a method of inserting the extension instruction, a method of explicitly specifying the extension instruction at the source code level via a library (library) or a method of adding an extension instruction by a compiler at the time of compilation can be considered.

【0033】ソフトウェア制御を行う場合に,特殊レジ
スタの追加,拡張命令の追加が必要となる。特殊レジス
タの追加としては,例えば,各スレッドが占有するウェ
イ数/ライン数を保持する特殊レジスタWNR/LNR
(Way/Line Number Register)を設ける。また,拡張命
令の追加としては,上記の特殊レジスタWNR/LNR
に対し,スレッドが占有するウェイ(way)数/ライ
ン(line)数を読み書きする拡張命令を,命令セッ
トに追加する。
When performing software control, it is necessary to add a special register and an extension instruction. As a special register, for example, a special register WNR / LNR holding the number of ways / the number of lines occupied by each thread is used.
(Way / Line Number Register). In addition, as for the addition of the extension instruction, the special register WNR / LNR
However, an extended instruction for reading / writing the number of ways / lines occupied by the thread is added to the instruction set.

【0034】追加される拡張命令は以下のようなもので
ある。 ・rd_wnr %rd:命令を実行したスレッドに対
応するWNRを読込み,占有しているway数をレジス
タrdに書き込む。 ・wr_wnr way数/line数:指定されたw
ay数をWNRに書き込むと同時に,命令を実行したス
レッドで指定されたway数分を占有する。 ・rd_lnr %rd,アドレス:命令を実行したス
レッドの該当アドレスに対応するキャッシュラインのL
NRを読込み,占有しているline数をレジスタrd
に読み込む。 ・wr_lnr way数/line数,アドレス:指
定されたキャッシュラインに対するline数をLNR
に書き込むと同時に,命令を実行したスレッドで指定さ
れたline数分のキャッシュラインを占有する。
The extended instructions to be added are as follows. Rd_wnr% rd: The WNR corresponding to the thread that executed the instruction is read, and the number of occupied ways is written to the register rd. Wr_wnr number of ways / number of lines: specified w
At the same time as writing the number of ways to the WNR, the thread executing the instruction occupies the specified number of ways. Rd_lnr% rd, address: L of the cache line corresponding to the address of the thread that executed the instruction
Reads NR and stores the number of occupied lines in register rd
Read in. Wr_lnr number of ways / number of lines, address: LNR is the number of lines for the specified cache line
And at the same time occupy the specified number of lines of cache lines in the thread that executed the instruction.

【0035】また,ソフトウェア制御の別の例として,
以下のようなコマンドを用意してウェイ数を指定する方
法も考えられる。 ・cwbind −b process_id(thr
ead_id) way数:指定されるだけのキャッシ
ュのウェイ(way)を,process_id(th
read_id)で示されるプロセス(スレッド)で占
有する。
As another example of software control,
A method of preparing the following command and specifying the number of ways is also conceivable. -Cwbind -b process_id (thr
ead_id) number of ways: the number of ways of the cache that are to be specified, and process_id (th
read_id).

【0036】記憶制御部107,207では,スレッド
が占有するウェイ数/ライン数がソフトウェアから指定
された場合に,具体的にウェイ/ラインの割り当てを行
い,占有レジスタ111,211,IDレジスタ11
2,212を変更する。
When the number of ways / lines occupied by a thread is designated by software, the storage controllers 107 and 207 specifically assign ways / lines, and occupy registers 111 and 211 and an ID register 11.
Change 2,212.

【0037】スレッドに割り当てるウェイ数/ライン数
をハードウェアから制御する例として,統計情報を用い
る方法がある。
As an example of controlling the number of ways / number of lines to be assigned to a thread from hardware, there is a method using statistical information.

【0038】例えば,統計情報として一定の時間間隔で
各スレッドのキャッシュミス率を採取して,キャッシュ
ミス率を,ある基準値と比較し,キャッシュミス率が基
準値より小さければウェイ/ラインの占有をせず,キャ
ッシュミス率が基準値より大きい場合にウェイ/ライン
を占有するようにする。
For example, the cache miss rate of each thread is collected at regular time intervals as statistical information, and the cache miss rate is compared with a certain reference value. If the cache miss rate is smaller than the reference value, the way / line occupancy is obtained. And the way / line is occupied when the cache miss rate is larger than the reference value.

【0039】図4に,統計情報として各スレッドのキャ
ッシュミス率を用いた場合の制御の流れを示す。記憶制
御部107,207では,一定間隔で統計情報(キャッ
シュミス率)を採取し(ステップS1),キャッシュミ
ス率がある基準値より大きいか小さいかを判定する(ス
テップS2)。
FIG. 4 shows a control flow when the cache miss rate of each thread is used as the statistical information. The storage control units 107 and 207 collect statistical information (cache miss ratio) at regular intervals (step S1), and determine whether the cache miss ratio is larger or smaller than a certain reference value (step S2).

【0040】キャッシュミス率が基準値より大きい場合
には,占有フラグ111,211により,該当スレッド
に割り当て可能な共有ウェイ/ラインがあるか否かを判
定し(ステップS3),割り当て可能な共有ウェイ/ラ
インがあれば該当スレッドにウェイ/ラインを割り当て
る(ステップS4)。割り当てられるウェイ/ラインの
占有フラグ111,211を占有状態にし,IDレジス
タ112,212に該当スレッドのIDをセットする
(ステップS5)。割り当て可能な共有ウェイ/ライン
がなければ,該当するスレッドに占有するウェイ/ライ
ンを割り当てない(ステップS6)。
If the cache miss rate is larger than the reference value, it is determined from the occupation flags 111 and 211 whether or not there is a shared way / line that can be assigned to the corresponding thread (step S3). If there is a / line, a way / line is assigned to the corresponding thread (step S4). The occupation flags 111 and 211 of the assigned way / line are set to the occupation state, and the ID of the corresponding thread is set in the ID registers 112 and 212 (step S5). If there is no assignable shared way / line, the way / line occupied by the corresponding thread is not assigned (step S6).

【0041】キャッシュミス率が基準値より小さい場合
には,占有フラグ111,211により,該当スレッド
が占有するウェイ/ラインがあるか否かを判定し(ステ
ップS7),すでに占有するウェイ/ラインがあれば,
該当するスレッドで占有するウェイ/ラインを開放し
て,占有フラグ111,211を共有状態にし,IDレ
ジスタ112,212をクリアする(ステップS8,S
9)。すでに占有するウェイ/ラインがない場合には,
占有するウェイ/ラインは割り当てず,そのままの状態
を保持する(ステップS6)。
If the cache miss rate is smaller than the reference value, it is determined from the occupation flags 111 and 211 whether or not there is a way / line occupied by the corresponding thread (step S7). if there is,
The way / line occupied by the corresponding thread is released, the occupation flags 111 and 211 are set in a shared state, and the ID registers 112 and 212 are cleared (steps S8 and S8).
9). If there is no way / line already occupied,
The way / line to be occupied is not allocated, and the state is maintained (step S6).

【0042】図5に,第1の実施の形態における記憶制
御部107,207のキャッシュアクセス時の制御の流
れを示す。なお,図5では,本発明に関する制御の流れ
のみを説明し,他の制御については従来と同様であるの
で説明を省略する。
FIG. 5 shows a control flow of the storage control units 107 and 207 at the time of cache access in the first embodiment. In FIG. 5, only the flow of the control according to the present invention will be described, and the other control will not be described because it is the same as the conventional control.

【0043】記憶制御部107,207では,キャッシ
ュアクセスが発生したら,キャッシュタグ,スレッドI
Dをチェックして(ステップS11),キャッシュヒッ
ト/キャッシュミスの判定を行う(ステップS12)。
キャッシュヒットの場合には,該当ラインにアクセスを
行う(ステップS17)。
In the storage control units 107 and 207, when a cache access occurs, a cache tag, a thread I
D is checked (step S11), and a cache hit / cache miss is determined (step S12).
In the case of a cache hit, the corresponding line is accessed (step S17).

【0044】キャッシュミスの場合には,占有フラグ1
11,211により,該当するキャッシュタグの各ライ
ンに対して,ラインがスレッド共有/スレッド占有かの
判定を行い(ステップS13),キャッシュ占有であれ
ば,IDレジスタ112,212により,自スレッドが
占有しているか否かの判定を行う(ステップS14)。
In the case of a cache miss, the occupation flag 1
According to 11 and 211, it is determined whether the line is thread sharing / thread occupation for each line of the corresponding cache tag (step S13). If the line is cache occupying, the own thread is occupied by the ID registers 112 and 212. It is determined whether or not it has been performed (step S14).

【0045】判定の結果,該当ラインがスレッド共有ま
たは自スレッドが占有の場合には,スレッド共有のライ
ンあるいは自スレッドが占有するラインの中からリプレ
ースメント先を選択し(ステップS15),キャッシュ
にアクセスし,アクセス情報を更新する。すなわち,リ
プレースメント先として選択した該当ラインにメモリか
らデータ転送を行う(ステップS17)。異なるスレッ
ドが占有するラインはリプレースメントの候補から除外
する(ステップS16)。 〔第2の実施の形態〕第2の実施の形態として,第1の
実施の形態において実現するキャッシュのスレッド割り
当て手法を,プロセス単位に適用した場合を説明する。
If the result of the determination is that the relevant line is shared by the thread or occupied by the own thread, a replacement destination is selected from the line shared by the thread or the line occupied by the own thread (step S15), and the cache is accessed. Update the access information. That is, data is transferred from the memory to the corresponding line selected as the replacement destination (step S17). Lines occupied by different threads are excluded from replacement candidates (step S16). [Second Embodiment] As a second embodiment, a case will be described in which the cache thread allocation method realized in the first embodiment is applied to each process.

【0046】図6は,ウェイ単位でプロセス割り当てを
制御する場合におけるマルチスレッドプロセッサの構成
例を示す図である。図6に示す例では,マルチスレッド
プロセッサ300上でプロセスP0とプロセスP1が実
行中であり,プロセスP0はスレッドTh0〜スレッド
Th2に分割されている。図6中,占有フラグ311は
該当ウェイごとにプロセス共有/プロセス占有を示し,
IDレジスタ312は該当ウェイを占有するプロセスI
Dを保持する。
FIG. 6 is a diagram showing an example of the configuration of a multi-thread processor when the process allocation is controlled in units of ways. In the example shown in FIG. 6, the process P0 and the process P1 are being executed on the multi-thread processor 300, and the process P0 is divided into threads Th0 to Th2. In FIG. 6, an occupation flag 311 indicates process sharing / process occupation for each corresponding way.
The ID register 312 stores the process I occupying the corresponding way.
Hold D.

【0047】キャッシュ310にプロセスP0(スレッ
ドTh0〜スレッドTh2)がアクセスを行う場合に
は,キャッシュ310のプロセス占有部およびプロセス
共有部にアクセス可能であり,この例ではすべてのウェ
イにアクセスできる。
When the process P0 (thread Th0 to thread Th2) accesses the cache 310, the process occupation part and the process sharing part of the cache 310 can be accessed. In this example, all the ways can be accessed.

【0048】一方,プロセスP1(スレッドTh3)が
キャッシュ310にアクセスを行う場合には,プロセス
共有部にだけアクセスが可能である。
On the other hand, when the process P1 (thread Th3) accesses the cache 310, it can access only the process sharing unit.

【0049】記憶制御部307は,図5で説明した制御
と同様の制御により,キャッシュミスが発生したときに
は,プロセス共有のラインあるいは自プロセスが占有す
るラインの中からリプレースメント先を選択し,選択し
たラインにメモリからデータ転送を行う。
When a cache miss occurs, the storage control unit 307 selects a replacement destination from a line shared by the process or a line occupied by the own process under the same control as the control described in FIG. Transfer data from memory to line.

【0050】スレッドに割り当てるウェイ数/ライン数
を制御する手法は,第1の実施の形態と同様の手法を用
いるが,さらに,プロセスに割り当てるウェイ数/ライ
ン数を指定する場合に,プロセス起動時にコマンドライ
ンで指定する方法も考えられる。
The method of controlling the number of ways / lines to be allocated to the thread uses the same method as in the first embodiment. It is also possible to specify it on the command line.

【0051】[0051]

【発明の効果】キャッシュのウェイあるいはラインに対
して,スレッドまたはプロセスの共有/占有の指定を行
うことによって,複数スレッドの間のキャッシュコンフ
リクトを低減することができる。さらに,ハードウェア
の統計情報や,ソフトウェアからの指示を活用して各ス
プレッドまたはプロセスに割り当てるキャッシュのウェ
イあるいはラインを適切に選択することで,より効率的
なマルチスレッド処理が行える。
By specifying the sharing or occupation of a thread or a process for a way or a line of a cache, a cache conflict between a plurality of threads can be reduced. Furthermore, by using hardware statistical information and instructions from software to appropriately select a cache way or line to be assigned to each spread or process, more efficient multi-thread processing can be performed.

【図面の簡単な説明】[Brief description of the drawings]

【図1】本発明の概念説明図である。FIG. 1 is a conceptual explanatory diagram of the present invention.

【図2】第1の実施の形態における,キャッシュのスレ
ッド割り当てをウェイ単位で行う場合のマルチスレッド
プロセッサの構成例を示す図である。
FIG. 2 is a diagram illustrating a configuration example of a multi-thread processor in the case where cache thread allocation is performed in units of ways according to the first embodiment;

【図3】第1の実施の形態における,キャッシュのスレ
ッド割り当てをライン単位で行う場合のマルチスレッド
プロセッサの構成例を示す図である。
FIG. 3 is a diagram illustrating an example of a configuration of a multi-thread processor in a case where cache thread allocation is performed in line units according to the first embodiment;

【図4】スレッド共有/占有の割り当てをハードウェア
で制御する場合の制御の流れを示す図である。
FIG. 4 is a diagram illustrating a flow of control in a case where assignment of thread sharing / occupation is controlled by hardware.

【図5】第1の実施の形態における記憶制御部のキャッ
シュアクセス時の制御の流れを示す図である。
FIG. 5 is a diagram showing a flow of control at the time of cache access of the storage control unit according to the first embodiment.

【図6】第2の実施の形態における,キャッシュのプロ
セス割り当てをウェイ単位で行う場合のマルチスレッド
プロセッサの構成例を示す図である。
FIG. 6 is a diagram illustrating a configuration example of a multi-thread processor in a case where cache process allocation is performed in way units according to the second embodiment;

【符号の説明】[Explanation of symbols]

1 レジスタ 2 キャッシュ 3 メモリ 101 レジスタ 102 プログラムカウンタ 103 命令読出部 104 命令バッファ 105 命令発行部 106 命令実行部 107 記憶制御部 110 キャッシュ 111 占有フラグ 112 IDレジスタ Reference Signs List 1 register 2 cache 3 memory 101 register 102 program counter 103 instruction reading unit 104 instruction buffer 105 instruction issuing unit 106 instruction execution unit 107 storage control unit 110 cache 111 occupation flag 112 ID register

───────────────────────────────────────────────────── フロントページの続き (51)Int.Cl.7 識別記号 FI テーマコート゛(参考) G06F 9/46 340 G06F 9/46 340F 12/12 503 12/12 503 551 551 ──────────────────────────────────────────────────続 き Continued on the front page (51) Int.Cl. 7 Identification symbol FI Theme coat ゛ (Reference) G06F 9/46 340 G06F 9/46 340F 12/12 503 12/12 503 551 551

Claims (5)

【特許請求の範囲】[Claims] 【請求項1】 複数の命令流を実行するマルチスレッド
プロセッサ用のキャッシュを制御する方式において,前
記キャッシュの一部分に対し,複数の命令流で共有する
か,特定の命令流で占有して用いるかの割り当てを指定
できる手段を持つことを特徴とするマルチスレッドプロ
セッサ用キャッシュ制御方式。
1. A method for controlling a cache for a multi-thread processor that executes a plurality of instruction streams, wherein a part of the cache is shared by a plurality of instruction streams or occupied by a specific instruction stream. Cache control method for a multi-thread processor, characterized in that the cache control method has means for designating the allocation of a thread.
【請求項2】 請求項1に記載のマルチスレッドプロセ
ッサ用キャッシュ制御方式において,前記キャッシュの
ウェイまたはラインごとに特定のスレッドまたは特定の
プロセスで占有して用いるか否かの制御を行うことを特
徴とするマルチスレッドプロセッサ用キャッシュ制御方
式。
2. A cache control method for a multi-thread processor according to claim 1, wherein a control is performed as to whether a specific thread or a specific process occupies or uses each cache way or line. Cache control method for multi-thread processors.
【請求項3】 請求項1または請求項2のいずれかに記
載のマルチスレッドプロセッサ用キャッシュ制御方式に
おいて,特定の命令流に占有的に割り当てるウェイ数も
しくはライン数を,ソフトウェアから指定する手段を持
つことを特徴とするマルチスレッドプロセッサ用キャッ
シュ制御方式。
3. A cache control method for a multi-thread processor according to claim 1, further comprising means for designating, from software, the number of ways or the number of lines exclusively allocated to a specific instruction stream. A cache control method for a multi-thread processor.
【請求項4】 請求項1または請求項2のいずれかに記
載のマルチスレッドプロセッサ用キャッシュ制御方式に
おいて,前記マルチスレッドプロセッサのハードウェア
資源利用の統計情報をもとにウェイごとまたはラインご
との特定の命令流に対する占有的な割り当てを制御する
手段を持つことを特徴とするマルチスレッドプロセッサ
用キャッシュ制御方式。
4. The cache control method for a multi-thread processor according to claim 1, wherein the specification for each way or each line is performed based on statistical information of hardware resource use of the multi-thread processor. A cache control method for a multi-thread processor, comprising means for controlling exclusive allocation to an instruction stream.
【請求項5】 請求項1から請求項4までのいずれかに
記載のマルチスレッドプロセッサ用キャッシュ制御方式
において,投入中のスレッドが占有するウェイ数の総和
が前記キャッシュのウェイ数を超えた場合に,新しいス
レッドの投入を停止させる手段を持つことを特徴とする
マルチスレッドプロセッサ用キャッシュ制御方式。
5. The cache control method for a multi-thread processor according to claim 1, wherein when the total number of ways occupied by a thread being entered exceeds the number of ways in said cache. A cache control method for a multi-thread processor, which has means for stopping input of a new thread.
JP2001144234A 2001-05-15 2001-05-15 Method for controlling cache for multithread processor Pending JP2002342163A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2001144234A JP2002342163A (en) 2001-05-15 2001-05-15 Method for controlling cache for multithread processor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2001144234A JP2002342163A (en) 2001-05-15 2001-05-15 Method for controlling cache for multithread processor

Publications (1)

Publication Number Publication Date
JP2002342163A true JP2002342163A (en) 2002-11-29

Family

ID=18990216

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001144234A Pending JP2002342163A (en) 2001-05-15 2001-05-15 Method for controlling cache for multithread processor

Country Status (1)

Country Link
JP (1) JP2002342163A (en)

Cited By (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2389685A (en) * 2002-06-10 2003-12-17 Hewlett Packard Development Co Accessing resources in a microprocessor having resources of varying scope, thus allowing design software to simulate multithread and multicoremicroprocessors.
JP2005182825A (en) * 2003-12-18 2005-07-07 Nvidia Corp Out of order instruction dispatch extending over thread of multithreaded microprocessor
JP2005346168A (en) * 2004-05-31 2005-12-15 Matsushita Electric Ind Co Ltd Cache memory, system, and data storage method
JP2006040141A (en) * 2004-07-29 2006-02-09 Fujitsu Ltd Multithread processor
US7085890B2 (en) 2004-02-19 2006-08-01 International Business Machines Corporation Memory mapping to reduce cache conflicts in multiprocessor systems
WO2006101113A1 (en) * 2005-03-22 2006-09-28 Matsushita Electric Industrial Co., Ltd. Cache memory control method and cache memory control device
JP2008097572A (en) * 2006-09-11 2008-04-24 Matsushita Electric Ind Co Ltd Processing device, computer system, and mobile apparatus
JP2008525919A (en) * 2004-12-29 2008-07-17 インテル・コーポレーション Method for programmer-controlled cache line eviction policy
US7487295B2 (en) 2004-07-30 2009-02-03 Fujitsu Limited Memory control device and move-in buffer control method
US7493448B2 (en) 2002-06-24 2009-02-17 Nec Corporation Prevention of conflicting cache hits without an attendant increase in hardware
JP2009512078A (en) * 2005-10-19 2009-03-19 インテル・コーポレーション Inter-thread synchronous communication technology
JP2009518754A (en) * 2005-12-22 2009-05-07 インテル コーポレイション Prioritizing performance on multithreaded processors
JP2009098933A (en) * 2007-10-17 2009-05-07 Nec Corp Method of fixing registration destination way, processor and information processing device
JP2009245047A (en) * 2008-03-31 2009-10-22 Fujitsu Ltd Memory buffer allocation device and program
JP2011018196A (en) * 2009-07-09 2011-01-27 Fujitsu Ltd Cache memory
JP2011048799A (en) * 2009-08-28 2011-03-10 Mitsubishi Electric Corp Control device, data processing system, control method and data processing method
JP2011511989A (en) * 2008-04-02 2011-04-14 インテル・コーポレーション An adaptive cache organization method for chip multiprocessors.
US8078801B2 (en) 2006-12-27 2011-12-13 Intel Corporation Obscuring memory access patterns
CN102483840A (en) * 2009-08-21 2012-05-30 英派尔科技开发有限公司 Allocating processor cores with cache memory associativity
JP2012203729A (en) * 2011-03-25 2012-10-22 Fujitsu Ltd Arithmetic processing unit and method for controlling arithmetic processing unit
JP2013016015A (en) * 2011-07-04 2013-01-24 Fujitsu Semiconductor Ltd Memory access control device, and memory access control method
US8868835B2 (en) 2009-04-08 2014-10-21 Panasonic Corporation Cache control apparatus, and cache control method
JP2015036873A (en) * 2013-08-13 2015-02-23 富士通株式会社 Cache memory control program, processor including cache memory, and cache memory control method
JP2015519654A (en) * 2012-05-08 2015-07-09 クアルコム,インコーポレイテッド A per-thread cache line allocation mechanism in a partitioned shared cache within a multi-thread processor
JP2015222477A (en) * 2014-05-22 2015-12-10 富士通株式会社 Information processor, information processing system, control method of information processor and control program of information processor
WO2016030793A1 (en) * 2014-08-26 2016-03-03 International Business Machines Corporation Thread-based cache content saving for task switching
GB2537357A (en) * 2015-04-09 2016-10-19 Imagination Tech Ltd Cache operation in a multi-threaded processor
JP2017072908A (en) * 2015-10-05 2017-04-13 富士通株式会社 Program, information processor and information processing method
US10782977B2 (en) 2017-08-10 2020-09-22 MIPS Tech, LLC Fault detecting and fault tolerant multi-threaded processors

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63254544A (en) * 1987-04-10 1988-10-21 Nippon Telegr & Teleph Corp <Ntt> Control system for address conversion
JPH02181844A (en) * 1989-01-06 1990-07-16 Matsushita Electric Ind Co Ltd Cache memory controlling method
JPH04100158A (en) * 1990-08-18 1992-04-02 Pfu Ltd Cache control system
JPH08147218A (en) * 1994-11-24 1996-06-07 Fujitsu Ltd Cache controller
JPH09101916A (en) * 1995-10-06 1997-04-15 Fujitsu Ltd Multiprocess processor
JPH10232834A (en) * 1997-01-30 1998-09-02 Sgs Thomson Microelectron Ltd Method for operating cache memory and computer system
JPH11509356A (en) * 1997-01-30 1999-08-17 エスティーマイクロエレクトロニクス、リミテッド Cash system
JPH11232174A (en) * 1998-02-16 1999-08-27 Matsushita Electric Ind Co Ltd Data processor
JP2000259498A (en) * 1999-03-10 2000-09-22 Internatl Business Mach Corp <Ibm> Instruction cache for multi-thread processor

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63254544A (en) * 1987-04-10 1988-10-21 Nippon Telegr & Teleph Corp <Ntt> Control system for address conversion
JPH02181844A (en) * 1989-01-06 1990-07-16 Matsushita Electric Ind Co Ltd Cache memory controlling method
JPH04100158A (en) * 1990-08-18 1992-04-02 Pfu Ltd Cache control system
JPH08147218A (en) * 1994-11-24 1996-06-07 Fujitsu Ltd Cache controller
JPH09101916A (en) * 1995-10-06 1997-04-15 Fujitsu Ltd Multiprocess processor
JPH10232834A (en) * 1997-01-30 1998-09-02 Sgs Thomson Microelectron Ltd Method for operating cache memory and computer system
JPH11509356A (en) * 1997-01-30 1999-08-17 エスティーマイクロエレクトロニクス、リミテッド Cash system
JPH11232174A (en) * 1998-02-16 1999-08-27 Matsushita Electric Ind Co Ltd Data processor
JP2000259498A (en) * 1999-03-10 2000-09-22 Internatl Business Mach Corp <Ibm> Instruction cache for multi-thread processor

Cited By (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2389685A (en) * 2002-06-10 2003-12-17 Hewlett Packard Development Co Accessing resources in a microprocessor having resources of varying scope, thus allowing design software to simulate multithread and multicoremicroprocessors.
US7493448B2 (en) 2002-06-24 2009-02-17 Nec Corporation Prevention of conflicting cache hits without an attendant increase in hardware
JP2005182825A (en) * 2003-12-18 2005-07-07 Nvidia Corp Out of order instruction dispatch extending over thread of multithreaded microprocessor
US7085890B2 (en) 2004-02-19 2006-08-01 International Business Machines Corporation Memory mapping to reduce cache conflicts in multiprocessor systems
JP2005346168A (en) * 2004-05-31 2005-12-15 Matsushita Electric Ind Co Ltd Cache memory, system, and data storage method
JP4753549B2 (en) * 2004-05-31 2011-08-24 パナソニック株式会社 Cache memory and system
US7904675B2 (en) 2004-05-31 2011-03-08 Panasonic Corporation Cache memory, system, and method of storing data
JP2006040141A (en) * 2004-07-29 2006-02-09 Fujitsu Ltd Multithread processor
US7310705B2 (en) 2004-07-29 2007-12-18 Fujitsu Limited Multithread processor and thread switching control method
JP4520788B2 (en) * 2004-07-29 2010-08-11 富士通株式会社 Multithreaded processor
US7487295B2 (en) 2004-07-30 2009-02-03 Fujitsu Limited Memory control device and move-in buffer control method
JP2008525919A (en) * 2004-12-29 2008-07-17 インテル・コーポレーション Method for programmer-controlled cache line eviction policy
WO2006101113A1 (en) * 2005-03-22 2006-09-28 Matsushita Electric Industrial Co., Ltd. Cache memory control method and cache memory control device
US7636812B2 (en) 2005-03-22 2009-12-22 Panasonic Corporation Cache memory control method and cache memory control device
JP2012234561A (en) * 2005-10-19 2012-11-29 Intel Corp Device, system and method for synchronous communication between threads
JP2009512078A (en) * 2005-10-19 2009-03-19 インテル・コーポレーション Inter-thread synchronous communication technology
US8019947B2 (en) 2005-10-19 2011-09-13 Intel Corporation Technique for thread communication and synchronization
JP2009518754A (en) * 2005-12-22 2009-05-07 インテル コーポレイション Prioritizing performance on multithreaded processors
US8275942B2 (en) 2005-12-22 2012-09-25 Intel Corporation Performance prioritization in multi-threaded processors
JP2008097572A (en) * 2006-09-11 2008-04-24 Matsushita Electric Ind Co Ltd Processing device, computer system, and mobile apparatus
US8078801B2 (en) 2006-12-27 2011-12-13 Intel Corporation Obscuring memory access patterns
US8423719B2 (en) 2007-10-17 2013-04-16 Nec Corporation Apparatus, processor and method of controlling cache memory
JP2009098933A (en) * 2007-10-17 2009-05-07 Nec Corp Method of fixing registration destination way, processor and information processing device
JP2009245047A (en) * 2008-03-31 2009-10-22 Fujitsu Ltd Memory buffer allocation device and program
JP2011511989A (en) * 2008-04-02 2011-04-14 インテル・コーポレーション An adaptive cache organization method for chip multiprocessors.
US8868835B2 (en) 2009-04-08 2014-10-21 Panasonic Corporation Cache control apparatus, and cache control method
JP2011018196A (en) * 2009-07-09 2011-01-27 Fujitsu Ltd Cache memory
JP2013502645A (en) * 2009-08-21 2013-01-24 エンパイア テクノロジー ディベロップメント エルエルシー Allocation of processor cores with cache memory connectivity
CN102483840A (en) * 2009-08-21 2012-05-30 英派尔科技开发有限公司 Allocating processor cores with cache memory associativity
CN102483840B (en) * 2009-08-21 2016-01-20 英派尔科技开发有限公司 Cache memory relevance is distributed to processor core
JP2011048799A (en) * 2009-08-28 2011-03-10 Mitsubishi Electric Corp Control device, data processing system, control method and data processing method
JP2012203729A (en) * 2011-03-25 2012-10-22 Fujitsu Ltd Arithmetic processing unit and method for controlling arithmetic processing unit
JP2013016015A (en) * 2011-07-04 2013-01-24 Fujitsu Semiconductor Ltd Memory access control device, and memory access control method
JP2017152009A (en) * 2012-05-08 2017-08-31 クアルコム,インコーポレイテッド Per thread cache-line allocation mechanism in shared partitioned caches in multi-threaded processors
JP2015519654A (en) * 2012-05-08 2015-07-09 クアルコム,インコーポレイテッド A per-thread cache line allocation mechanism in a partitioned shared cache within a multi-thread processor
US9824013B2 (en) 2012-05-08 2017-11-21 Qualcomm Incorporated Per thread cacheline allocation mechanism in shared partitioned caches in multi-threaded processors
JP2015036873A (en) * 2013-08-13 2015-02-23 富士通株式会社 Cache memory control program, processor including cache memory, and cache memory control method
JP2015222477A (en) * 2014-05-22 2015-12-10 富士通株式会社 Information processor, information processing system, control method of information processor and control program of information processor
WO2016030793A1 (en) * 2014-08-26 2016-03-03 International Business Machines Corporation Thread-based cache content saving for task switching
GB2537357A (en) * 2015-04-09 2016-10-19 Imagination Tech Ltd Cache operation in a multi-threaded processor
US10318172B2 (en) 2015-04-09 2019-06-11 MIPS Tech, LLC Cache operation in a multi-threaded processor
JP2017072908A (en) * 2015-10-05 2017-04-13 富士通株式会社 Program, information processor and information processing method
US10782977B2 (en) 2017-08-10 2020-09-22 MIPS Tech, LLC Fault detecting and fault tolerant multi-threaded processors

Similar Documents

Publication Publication Date Title
JP2002342163A (en) Method for controlling cache for multithread processor
KR102456085B1 (en) Dynamic memory remapping to reduce row buffer collisions
US6976135B1 (en) Memory request reordering in a data processing system
US6732242B2 (en) External bus transaction scheduling system
US5109512A (en) Process for dispatching tasks among multiple information processors
US6233599B1 (en) Apparatus and method for retrofitting multi-threaded operations on a computer by partitioning and overlapping registers
US5829025A (en) Computer system and method of allocating cache memories in a multilevel cache hierarchy utilizing a locality hint within an instruction
JP5413001B2 (en) Cache memory
US8418180B2 (en) Thread priority method for ensuring processing fairness in simultaneous multi-threading microprocessors
JP3965157B2 (en) Method and apparatus for dispatching tasks in a non-uniform memory access (NUMA) computer system
US7533227B2 (en) Method for priority scheduling and priority dispatching of store conditional operations in a store queue
US8190864B1 (en) APIC implementation for a highly-threaded x86 processor
US7412590B2 (en) Information processing apparatus and context switching method
US20040172631A1 (en) Concurrent-multitasking processor
US4829422A (en) Control of multiple processors executing in parallel regions
US9063794B2 (en) Multi-threaded processor context switching with multi-level cache
JPH06250928A (en) Information processor
JP2003241961A (en) Shared register file control method in multithread processor
EP1760581A1 (en) Processing operations management systems and methods
KR20220060543A (en) Partition identifier for page table work memory transactions
US20110276979A1 (en) Non-Real Time Thread Scheduling
US10585701B2 (en) Dynamically allocating storage elements to provide registers for processing thread groups
US8266379B2 (en) Multithreaded processor with multiple caches
US8472455B2 (en) System and method for traversing a treelet-composed hierarchical structure
JPH07248967A (en) Memory control system

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20060213

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060221

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20060627