JP4706030B2 - キャッシュ制御装置及び制御方法 - Google Patents

キャッシュ制御装置及び制御方法 Download PDF

Info

Publication number
JP4706030B2
JP4706030B2 JP2009520176A JP2009520176A JP4706030B2 JP 4706030 B2 JP4706030 B2 JP 4706030B2 JP 2009520176 A JP2009520176 A JP 2009520176A JP 2009520176 A JP2009520176 A JP 2009520176A JP 4706030 B2 JP4706030 B2 JP 4706030B2
Authority
JP
Japan
Prior art keywords
thread
access request
port
cache
cache control
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.)
Expired - Fee Related
Application number
JP2009520176A
Other languages
English (en)
Other versions
JPWO2008155822A1 (ja
Inventor
直宏 清田
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
Publication of JPWO2008155822A1 publication Critical patent/JPWO2008155822A1/ja
Application granted granted Critical
Publication of JP4706030B2 publication Critical patent/JP4706030B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0842Multiuser, multiprocessor or multiprocessing cache systems for multiprocessing or multitasking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0844Multiple simultaneous or quasi-simultaneous cache accessing
    • G06F12/0855Overlapped cache accessing, e.g. pipeline
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/084Multiuser, multiprocessor or multiprocessing cache systems with a shared cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1048Scalability

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Description

本発明は、SMT(Simultaneous Multi Thread )方式のプロセッサで用いられるキャッシュ制御装置及び制御方法に関し、特に、SMT方式のプロセッサにおいて、キャッシュアクセス処理に必要となる資源を単純にスレッドの数だけ増加させることなく、その資源を効率的に利用してキャッシュアクセス処理を実行できるようにするキャッシュ制御装置及び制御方法に関する。
SMT方式のプロセッサは複数のスレッドを同時に実行するプロセッサである。このSMT方式のプロセッサでは、複数のスレッドでキャッシュが共有されることになるので、シングル・スレッド方式のプロセッサで用いられているキャッシュ制御とは異なる構成のキャッシュ制御を構築する必要がある。
図12に、シングル・スレッド方式のプロセッサで用いられているキャッシュ制御の構成を図示する。
ここで、図中に示す100は命令制御部、200はキャッシュ制御部、201はキャッシュRAM、202はフェッチ・ポート(Fetch Port)、203はTOQ(Top-Of-Queue)制御回路、204はプライオリティ制御回路である。
図12に示すように、命令制御部100からのキャッシュアクセスの要求は、一旦、キャッシュ制御部200にある複数のエントリを持つフェッチ・ポート202に保持される。
それぞれのアクセス要求はプログラム上の順番に沿って順にフェッチ・ポート202に割り当てられ、フェッチ・ポート202の各エントリは循環して使用される。例えば、フェッチ・ポート202が16個のエントリ(FP#0〜FP#15)を持つ場合には、FP#0から順に各アクセス要求が割り当てられ、FP#15の次はFP#0に割り当てられることになる。
フェッチ・ポート202の各エントリは、要求されたキャッシュアクセス処理が完了するまでアクセス要求を保持し、要求されたキャッシュアクセス処理が完了した時点でアクセス要求を開放する。処理が完了していない最も古いフェッチ・ポート202のエントリ番号は、TOQ制御回路203の出力するFP−TOQ(Fetch-Port-Top-Of-Queue)で指し示される。
キャッシュアクセス処理のために読み出すフェッチ・ポート202のエントリ選択は、キャッシュアクセスをアウト・オブ・オーダーで処理する場合、フェッチ・ポート202の割り当ての順序に必ずしも依存する必要はなく、基本的には任意のエントリのアクセス要求を選択して処理しても構わないが、実際には、プライオリティ制御回路204により優先順位を設けて選択することが行われている。
図13に、プライオリティ制御回路204により実行される優先順位の制御処理を示す。
すなわち、プライオリティ制御回路204は、第一には、まだ一度もキャッシュアクセスを行っていないエントリ、または、キャッシュミスやデータの順序性保証等のためにフェッチ・ポート202で待機させていたアクセス要求に対する再処理が指示されたエントリが1つ以上存在する場合には、それらのエントリの中で最もFP−TOQに近いエントリを優先して選択する。
そして、第二には、第一の優先順位の条件に当てはまらないが、アクセス要求が割り当てられている場合、つまり、有効なエントリが1つ以上存在する場合には、それらのエントリの中で最もFP−TOQに近いエントリを優先して選択する。
従来のSMT方式のプロセッサで用いられているキャッシュ制御では、このように構成されるシングル・スレッド方式のプロセッサで用いられているキャッシュ制御をそのまま利用する形で実現されている。
すなわち、従来のSMT方式のプロセッサで用いられているキャッシュ制御では、各スレッド毎に規定のエントリ数を持つフェッチ・ポートを設けるようにして、図13に示すような優先順位制御に従って各スレッド毎に最も優先順位の高いアクセス要求を選択し、その中から、スレッド間の優先順位制御を行うことで最終的なアクセス要求を選択するようにしている。
ここで、本発明に関連する技術として、下記の特許文献1には、SMT方式のプロセッサにおいて、スレッド間での共有データの読み出し及び書き込みの実行順序の一貫性を保証することを実現する発明が記載されている。
WO2004/068361号公報
前述したように、従来のSMT方式のプロセッサで用いられているキャッシュ制御では、シングル・スレッド方式のプロセッサで用いられているキャッシュ制御をそのまま利用する形で実現されており、各スレッド毎に規定のエントリ数を持つフェッチ・ポートを設けるようにして、図13に示すような優先順位制御に従って各スレッド毎に最も優先順位の高いアクセス要求を選択し、その中から、スレッド間の優先順位制御を行うことで最終的なアクセス要求を選択するようにしている。
しかしながら、このような従来技術に従っていると、キャッシュアクセス処理に必要となる資源の増加が避けられないという問題がある。
すなわち、従来のSMT方式のプロセッサで用いられているキャッシュ制御では、シングル・スレッド方式のプロセッサで用いられているキャッシュ制御で例えば16エントリのフェッチ・ポートを用いる場合にあって、スレッドがn個となる場合には、その16エントリを持つフェッチ・ポートをn個用意するようにしており、これから、資源の増加が避けられないのである。
さらに、従来技術では、キャッシュアクセス処理に必要となる資源を効率的に利用していないという問題がある。
すなわち、スレッドが2つとなる場合で説明するならば、一方のスレッドの発行するアクセス要求の頻度が他方のスレッドの発行するアクセス要求の頻度よりも大きいということが起こる。
このようなことが起こることが最初から分かっている場合にも、従来技術では、一方のスレッドのために例えば16エントリを持つフェッチ・ポートを用意し、他方のスレッドのためにそれと同じ16エントリを持つフェッチ・ポートを用意するようにしている。
これでは、少ないアクセス要求を発行するスレッドのために用意するフェッチ・ポートが必要以上に大きなエントリを持つことになってしまうことから、フェッチ・ポートを効率的に利用していないのである。
しかも、スレッドの発行するアクセス要求の頻度がデータ処理の進行に伴って変化していくことが起こる。
このようなことが起こる場合にも、従来技術では、2つのスレッドに対して、例えば16エントリを持つフェッチ・ポートというように、固定化されたエントリ数を持つフェッチ・ポートを用意するようにしている。
これでは、一方のスレッドの発行するアクセス要求の頻度が他方のスレッドの発行するアクセス要求の頻度よりも大きくなった場合にも、それに関係なく同一のエントリ数のフェッチ・ポートを用いるようにしていることから、フェッチ・ポートを効率的に利用していないのである。
本発明はかかる事情に鑑みてなされたものであって、SMT方式のプロセッサにおいて、キャッシュアクセス処理に必要となる資源を増加させることなく、その資源を効率的に利用してキャッシュアクセス処理を実行できるようにする新たなキャッシュ制御技術の提供を目的とする。
この目的を達成するために、本発明のキャッシュ制御装置は、同時に実行される複数のスレッドで共有されるキャッシュに対してのアクセス要求を制御するために、(1)スレッドに共有される形態で設けられ、複数のエントリを有してそれらのエントリにアクセス要求を保持するポート手段と、(2)各スレッドの発行するアクセス要求を、そのスレッドに割り付けられたポート手段のポート部分に登録することで、ポート手段をスレッド構成に合わせて分割して使用するように制御する制御手段と、(3)各スレッドに対応付けて設けられて、ポート手段の保持するそのスレッドの発行したアクセス要求を入力として、規定の優先制御に従ってアクセス要求を選択する第1の選択手段と、(4)第1の選択手段の選択したアクセス要求を入力として、スレッド選択信号に従って最終的なアクセス要求を選択する第2の選択手段と、(5)スレッドの処理が終了するときに、スレッド選択信号の指すスレッドを、その処理が終了したスレッドから別のスレッドに切り替える切替手段と、(6)各スレッドの発行するアクセス要求の頻度を測定する測定手段と、(7)測定手段の測定結果に基づいて、各スレッドに割り付けるポート部分を決定する第1の決定手段と、(8)1つのスレッドのみが動作する動作モードにあるのかを検出する検出手段と、(9)検出手段が1つのスレッドのみが動作する動作モードにあることを検出する場合に、そのスレッドに対して、ポート手段の持つ全てのポート部分を割り付けることを決定する第2の決定手段とを備えるように構成する。
このように構成される本発明のキャッシュ制御装置では、アクセス要求をポート手段に登録する場合には、各スレッドの発行するアクセス要求を、そのスレッドに割り付けられたポート手段のポート部分に登録し、これにより、ポート手段をスレッド構成に合わせて分割して使用するように制御する。
そして、ポート手段に登録されているアクセス要求を選択する場合には、各スレッド毎に、ポート手段の保持するそのスレッドの発行したアクセス要求の中から、規定の優先制御に従ってアクセス要求を選択して、その選択したアクセス要求の中から、スレッド選択信号に従って最終的なアクセス要求を選択する。
このようにして、本発明のキャッシュ制御装置では、SMT方式のプロセッサで用いられるときに、スレッド毎にポート手段を用意するのではなくて、例えば16個のエントリを持つ1つのポート手段を用意して、スレッドが2つとなる場合で説明するならば、例えば、2つのスレッドのアクセス要求の頻度の割合に応じて、2つのスレッドのそれぞれに対して8個のエントリを割り付けたり、一方のスレッドに対して10個のエントリを割り付けるとともに、他方のスレッドに対して6個のエントリを割り付けるというように、ポート手段をスレッド構成に合わせて分割して使用するように制御するのである。
この構成に従って、本発明によれば、SMT方式のプロセッサにおけるキャッシュアクセス処理を少ない資源で実行できるようになる。
この構成を採るときに、本発明のキャッシュ制御装置では、スレッドの処理が終了するときに、スレッド選択信号の指すスレッドを、その処理が終了したスレッドから別のスレッドに切り替えるようにする。
これにより、特定のスレッドの発行するアクセス要求のみが選択され続けることになるという不都合の発生を防止することができるようになる。
そして、この構成を採るときに、本発明のキャッシュ制御装置では、各スレッドの発行するアクセス要求の頻度を測定して、その測定結果に基づいて、各スレッドに割り付けるポート部分を決定する。
これにより、アクセス要求の頻度の大きなスレッドに対してエントリ数を多く割り付けることができるようになることで、ポート手段を効率的に使用することができるようになる。
そして、この構成を採るときに、本発明のキャッシュ制御装置では、1つのスレッドのみが動作する動作モードにあるのかを検出して、1つのスレッドのみが動作する動作モードにあることを検出する場合に、そのスレッドに対して、ポート手段の持つ全てのポート部分を割り付けることを決定する。
これにより、1つのスレッドのみが動作する動作モードにある場合には、そのスレッドに対して全てのエントリを割り付けることができるようになることで、ポート手段を効率的に使用することができるようになる。
以上説明したように、本発明によれば、SMT方式のプロセッサにおいて、キャッシュアクセス処理に必要となる資源を増加させることなく、その資源を効率的に利用してキャッシュアクセス処理を実行できるようになる。
そして、本発明によれば、資源を効率的に利用してキャッシュアクセス処理を実行できるようになるので、スレッドのデータ処理効率を高めることができるようになる。
本実施例の適用されるCPUの構成図である。 本実施例を具備する一次キャッシュ制御部の一実施例である。 スレッド選択信号制御回路の構成図である。 スレッド選択信号制御回路に入力されるスレッド処理完了報告の説明図である。 スレッド内プライオリティ制御回路の実行するフローチャートである。 スレッド内プライオリティ制御回路の実行するフローチャートである。 スレッド間プライオリティ制御回路の実行するフローチャートである。 負荷監視回路の説明図である。 負荷監視回路を備える場合のフェッチ・ポートの使用状態の説明図である。 スレッド・モード検出回路の説明図である。 スレッド・モード検出回路を備える場合のフェッチ・ポートの使用状態の説明図である。 シングル・スレッド方式のプロセッサで用いられているキャッシュ制御の構成図である。 シングル・スレッド方式のプロセッサで用いられているフェッチ・ポートのエントリ選択の優先順位制御のフローチャートである。
符号の説明
1 CPU
2 システム制御バス
10 命令・演算制御部
20 一次キャッシュ制御部
21 キャッシュRAM
22 フェッチ・ポート
23 TOQ制御回路
24 FP分割形態設定回路
25 スレッド内プライオリティ制御回路
26 スレッド選択信号制御回路
27 スレッド間プライオリティ制御回路
28 負荷監視回路
29 スレッド・モード検出回路
30 二次キャッシュ制御部
31 キャッシュRAM
以下、実施の形態に従って本実施例を詳細に説明する。
図1に、本実施例の適用されるCPU1の構成を図示する。
本実施例の適用されるCPU1は、命令の取り出し要求や演算データの反映要求を発行する命令・演算制御部10と、高速・小容量のキャッシュRAM21を有して、命令・演算制御部10の発行するアクセス要求を受け取り、そのアクセス要求のデータがキャッシュRAM21に格納されている場合には、そのデータを命令・演算制御部10に返すという処理を実行する一次キャッシュ制御部20と、低速・大容量のキャッシュRAM31を有して、命令・演算制御部10の発行するアクセス要求のデータがキャッシュRAM31に格納されている場合には、そのデータを命令・演算制御部10に返すとともにキャッシュRAM21に登録し、キャッシュRAM31に格納されていない場合には、システム制御バス2を介して図示しないメモリにデータの転送を要求するという処理を実行する二次キャッシュ制御部30とを備える。
図2に、本実施例を具備する一次キャッシュ制御部20の一実施例を図示する。
ここで、本実施例の一次キャッシュ制御部20では、スレッド0とスレッド1という2つのスレッドが動作するSMT方式のプロセッサに実装されることを想定しているとともに、16個のエントリを持つフェッチ・ポートを用いることを想定している。
本実施例の一次キャッシュ制御部20は、図2に示すように、キャッシュRAM21と、フェッチ・ポート22と、TOQ制御回路23と、FP分割形態設定回路24と、スレッド内プライオリティ制御回路25-0と、スレッド内プライオリティ制御回路25-1と、スレッド選択信号制御回路26と、スレッド間プライオリティ制御回路27とを備える。
フェッチ・ポート22は、複数のエントリを有し、FP分割形態設定回路24の設定する分割形態に従って、TOQ制御回路23によりそれらのエントリが2つに分割されて使用されるものであり、その一方のエントリ部分にスレッド0の発行したアクセス要求を保持するとともに、もう一方のエントリ部分にスレッド1の発行したアクセス要求を保持する。
例えば、フェッチ・ポート22が16個のエントリ(FP#0〜FP#15)を持つ場合にあって、FP分割形態設定回路24が16個のエントリをFP#0〜FP#7とFP#8〜FP#15という2つに分割する場合には、スレッド0の発行するアクセス要求はプログラムの順番に沿って順にFP#0〜FP#7に割り当てられて、その8個のエントリは循環して使用され、そして、スレッド1の発行するアクセス要求はプログラムの順番に沿って順にFP#8〜FP#15に割り当てられて、その8個のエントリは循環して使用される。
ここで、フェッチ・ポート22の各エントリは、要求されたキャッシュアクセス処理が完了するまでアクセス要求を保持し、要求されたキャッシュアクセス処理が完了した時点でアクセス要求を開放する。
TOQ制御回路23は、スレッド0とスレッド1とに共通する形態で備えられて、FP分割形態設定回路24の設定する分割形態に従ってフェッチ・ポート22のエントリを2つに分割して使用することを制御するものであり、スレッド0の発行したアクセス要求の内の処理が完了していない最も古いアクセス要求を保持するフェッチ・ポート22のエントリ番号をFP−TOQ−TH0で指し示すとともに、スレッド1の発行したアクセス要求の内の処理が完了していない最も古いアクセス要求を保持するフェッチ・ポート22のエントリ番号をFP−TOQ−TH1で指し示す。
FP分割形態設定回路24は、例えば動作の開始に入る前に、スレッド0,1の発行するアクセス要求の負荷の割合(アクセス要求の頻度の割合)に応じてフェッチ・ポート22の分割形態を決定して、TOQ制御回路23に通知する。例えば、フェッチ・ポート22のエントリをFP#0〜FP#7とFP#8〜FP#15という2つに分割するということを決定して、TOQ制御回路23に通知するのである。
スレッド内プライオリティ制御回路25-0は、スレッド0に対応付けて設けられて、スレッド0の要求するキャッシュアクセス処理のためにフェッチ・ポート22のエントリを選択して、そのエントリからアクセス要求を取り出す。
スレッド内プライオリティ制御回路25-1は、スレッド1に対応付けて設けられて、スレッド1の要求するキャッシュアクセス処理のためにフェッチ・ポート22のエントリを選択して、そのエントリからアクセス要求を取り出す。
スレッド選択信号制御回路26は、スレッド0を優先するときには“0”を表示し、スレッド1を優先するときには“1”を表示するスレッド選択信号(thread-select)を生成する。
スレッド間プライオリティ制御回路27は、スレッド間で優先順位を決定しなければならないときに、スレッド選択信号制御回路26の生成するスレッド選択信号に従って、スレッド内プライオリティ制御回路25-0の出力するアクセス要求を選択するのか、スレッド内プライオリティ制御回路25-1の出力するアクセス要求を選択して、その選択したアクセス要求に従ってキャッシュRAM21を索引する。
図3に、スレッド選択信号制御回路26の構成例を図示する。
スレッド選択信号制御回路26は、図3に示すように、スレッド選択信号を保持して出力するラッチ回路260と、2つのANDゲートと1つのORゲートとで構成されて、ラッチ回路260が“0”を出力するときにあって、スレッド0の処理完了報告(“1”という値を持つ)が通知されるときに“1”を出力し、ラッチ回路260が“1”を出力するときにあって、スレッド1の処理完了報告(“1”という値を持つ)が通知されるときに“1”を出力する第1の論理回路261と、EORゲートで構成されて、ラッチ回路260の出力信号と第1の論理回路261の出力信号との排他的論理和値を算出してラッチ回路260に与える第2の論理回路262とを備える。
以下、図3に示したスレッド選択信号制御回路26を更に詳細に説明する。
(1) :論理回路261の説明
図3に記載された論理回路261は、2つのAND回路と1つのOR回路からなる回路である。そして、前記2つのAND回路の内の一方のAND回路をAND回路#1とし、他方のAND回路をAND回路#2として説明する。
この場合、AND回路#1の2入力の内の一方の入力はスレッド0の処理完了報告であり、他方の入力はラッチ回路260から出力されるスレッド選択信号を反転した信号が入力となる。また、AND回路#2の2入力の内の一方の入力はスレッド1の処理完了報告であり、他方の入力はラッチ回路260から出力されるスレッド選択信号がそのまま入力となる。更にOR回路はAND回路#1の出力信号とAND回路#2の出力信号とが入力となる。
(2) :論理回路262の説明
論理回路262は排他的論理和回路(EX−ORと呼んで説明する)を示している。このEX−ORは2入力であり、その一方の入力をA、他方の入力をBとし、出力をCとして説明する。
前記A、B、Cのローレベルを0、ハイレベルを1とした場合EX−ORは、A=0、B=0の時、及びA=1、B=1の時(2入力が等しい時)、C=0となり、A=0、B=1の時、及びA=1、B=0の時(2入力が異なる時)、C=1となる回路である。
この構成に従って、スレッド選択信号制御回路26は、スレッド0の処理が終了するときに、スレッド選択信号の指すスレッドをスレッド0からスレッド1に切り替え、スレッド1の処理が終了するときに、スレッド選択信号の指すスレッドをスレッド1からスレッド0に切り替えるように制御し、これにより、スレッド間の競合による優先順位決定時に、いずれかのスレッドのキャッシュアクセス処理が負け続けてしまうことを防ぐように制御する。
ここで、図4に示すように、スレッド選択信号制御回路26には、フェッチ・ポート22から命令・演算制御部10に通知されるスレッド0の処理完了報告が入力されるとともに、フェッチ・ポート22から命令・演算制御部10に通知されるスレッド1の処理完了報告が入力されることになる。
スレッド選択信号制御回路26の生成するスレッド選択信号は、スレッド間でアクセス要求処理や資源獲得を同時に行うという競合が発生したときに、処理対象のスレッドを決定するための信号である。この例では、フェッチ・ポート22に割り当てられたメモリアクセスの処理の完了信号、つまりはフェッチ・ポート22のエントリの開放信号を用いて制御する。例えばロード命令であれば、対象データの命令・演算制御部10への転送をもって処理完了とし、ストア命令であれば、順序制御が保証されたことをもって処理完了とするのである。
図5に、スレッド内プライオリティ制御回路25-0の実行する処理をフローチャートの形で図示し、図6に、スレッド内プライオリティ制御回路25-1の実行する処理をフローチャートの形で図示し、図7に、スレッド間プライオリティ制御回路27の実行する処理をフローチャートの形で図示する。
次に、これらのフローチャートに従って、図2のように構成される一次キャッシュ制御部20の実行する処理について詳細に説明する。
スレッド内プライオリティ制御回路25-0は、フェッチ・ポート22に保持されるスレッド0の発行したアクセス要求の優先制御処理を開始すると、図5のフローチャートに示すように、先ず最初に、ステップS100で、スレッド0に係るフェッチ・ポート22のポート部分の全てのエントリ状態を確認する。
続いて、ステップS101で、この確認処理により、まだ一度もキャッシュアクセスを行っていないエントリ、または、キャッシュミスやデータの順序性保証等のためにフェッチ・ポート22で待機させていたアクセス要求に対する再処理が指示されたエントリが1つ以上存在するのかを判断する。
このステップS101の判断処理で、該当するエントリが1つ以上存在することを判断するときには、ステップS102に進んで、それらのエントリの中で、TOQ制御回路23の出力するFP−TOQ−TH0の指すエントリに最も近いエントリを選択し、続くステップS103で、スレッド0についての条件1という変数に“1”を設定して、優先制御処理を終了する。
一方、ステップS101の判断処理で、該当するエントリが1つ以上存在しないことを判断するときには、ステップS104に進んで、有効なエントリ(アクセス要求が割り当てられているエントリ)が1つ以上存在するのかを判断する。
このステップS104の判断処理で、該当するエントリが1つ以上存在することを判断するときには、ステップS105に進んで、それらのエントリの中で、TOQ制御回路23の出力するFP−TOQ−TH0の指すエントリに最も近いエントリを選択し、続くステップS106で、スレッド0についての条件2という変数に“1”を設定して、優先制御処理を終了する。
一方、ステップS104の判断処理で、有効なエントリが1つ以上存在しないことを判断するときには、ステップS107に進んで、何も選択しないようにし、続くステップS108で、スレッド0についての条件1という変数に“0”を設定するとともに、スレッド0についての条件2という変数に“0”を設定して、優先制御処理を終了する。
このようにして、スレッド内プライオリティ制御回路25-0は、フェッチ・ポート22に保持されるスレッド0の発行したアクセス要求を処理対象として、まだ一度もキャッシュアクセスを行っていないエントリ、または、キャッシュミスやデータの順序性保証等のためにフェッチ・ポート22で待機させていたアクセス要求に対する再処理が指示されたエントリが1つ以上存在する場合には、その中でFP−TOQ−TH0の指すエントリに最も近いエントリを優先して選択し、そして、この優先順位の条件に当てはまらないものの、アクセス要求が割り当てられている場合、つまり、有効なエントリが1つ以上存在する場合には、その中でFP−TOQ−TH0の指すエントリに最も近いエントリを優先して選択するのである。
一方、スレッド内プライオリティ制御回路25-1は、フェッチ・ポート22に保持されるスレッド1の発行したアクセス要求の優先制御処理を開始すると、図6のフローチャートに示すように、先ず最初に、ステップS200で、スレッド1に係るフェッチ・ポート22のポート部分の全てのエントリ状態を確認する。
続いて、ステップS201で、この確認処理により、まだ一度もキャッシュアクセスを行っていないエントリ、または、キャッシュミスやデータの順序性保証等のためにフェッチ・ポート22で待機させていたアクセス要求に対する再処理が指示されたエントリが1つ以上存在するのかを判断する。
このステップS201の判断処理で、該当するエントリが1つ以上存在することを判断するときには、ステップS202に進んで、それらのエントリの中で、TOQ制御回路23の出力するFP−TOQ−TH1の指すエントリに最も近いエントリを選択し、続くステップS203で、スレッド1についての条件1という変数に“1”を設定して、優先制御処理を終了する。
一方、ステップS201の判断処理で、該当するエントリが1つ以上存在しないことを判断するときには、ステップS204に進んで、有効なエントリ(アクセス要求が割り当てられているエントリ)が1つ以上存在するのかを判断する。
このステップS204の判断処理で、該当するエントリが1つ以上存在することを判断するときには、ステップS205に進んで、それらのエントリの中で、TOQ制御回路23の出力するFP−TOQ−TH1の指すエントリに最も近いエントリを選択し、続くステップS206で、スレッド1についての条件2という変数に“1”を設定して、優先制御処理を終了する。
一方、ステップS204の判断処理で、有効なエントリが1つ以上存在しないことを判断するときには、ステップS207に進んで、何も選択しないようにし、続くステップS208で、スレッド1についての条件1という変数に“0”を設定するとともに、スレッド1についての条件2という変数に“0”を設定して、優先制御処理を終了する。
このようにして、スレッド内プライオリティ制御回路25-1は、フェッチ・ポート22に保持されるスレッド1の発行したアクセス要求を処理対象として、まだ一度もキャッシュアクセスを行っていないエントリ、または、キャッシュミスやデータの順序性保証等のためにフェッチ・ポート22で待機させていたアクセス要求に対する再処理が指示されたエントリが1つ以上存在する場合には、その中でFP−TOQ−TH1の指すエントリに最も近いエントリを優先して選択し、そして、この優先順位の条件に当てはまらないものの、アクセス要求が割り当てられている場合、つまり、有効なエントリが1つ以上存在する場合には、その中でFP−TOQ−TH1の指すエントリに最も近いエントリを優先して選択するのである。
次に、スレッド間プライオリティ制御回路27の実行する処理について説明する。
スレッド間プライオリティ制御回路27は、スレッド内プライオリティ制御回路25-0,1が優先制御処理を終了することでスレッド間の優先制御処理を開始すると、図7のフローチャートに示すように、先ず最初に、ステップS300で、スレッド0についての条件1という変数に“1”が設定され、かつ、スレッド1についての条件1という変数に“1”が設定されているのかを判断する。
このステップS300の判断処理で、スレッド0についての条件1という変数に“1”が設定され、かつ、スレッド1についての条件1という変数に“1”が設定されていることを判断するときには、ステップS301に進んで、スレッド選択信号制御回路26の生成するスレッド選択信号が“0”を表示しているのか否かを判断して、スレッド選択信号が“0”を表示していることを判断するときには、ステップS302に進んで、スレッド内プライオリティ制御回路25-0の出力するエントリを選択することで、スレッド0のエントリを選択して、スレッド間の優先制御処理を終了する。
一方、ステップS301の判断処理で、スレッド選択信号が“0”ではなくて“1”を表示していることを判断するときには、ステップS303に進んで、スレッド内プライオリティ制御回路25-1の出力するエントリを選択することで、スレッド1のエントリを選択して、スレッド間の優先制御処理を終了する。
一方、ステップS300の判断処理で、スレッド0についての条件1という変数に“1”が設定されているという条件と、スレッド1についての条件1という変数に“1”が設定されているという条件の2つが同時に成立しないことを判断するときには、ステップS304に進んで、その2つの条件のいずれか一方が成立するのか否かを判断する。
このステップS304の判断処理で、スレッド0についての条件1という変数に“1”が設定されているという条件と、スレッド1についての条件1という変数に“1”が設定されているという条件の内のいずれか一方が成立することを判断するときには、ステップS305に進んで、その条件1という変数に“1”が設定されている方のスレッド内プライオリティ制御回路25-0,1の出力するエントリを選択することで、スレッド0あるいはスレッド1のエントリを選択して、スレッド間の優先制御処理を終了する。
一方、ステップS304の判断処理で、スレッド0についての条件1という変数に“1”が設定されているという条件と、スレッド1についての条件1という変数に“1”が設定されているという条件のいずれもが成立しないことを判断するときには、ステップS306に進んで、スレッド0についての条件2という変数に“1”が設定され、かつ、スレッド1についての条件2という変数に“1”が設定されているのかを判断する。
このステップS306の判断処理で、スレッド0についての条件2という変数に“1”が設定され、かつ、スレッド1についての条件2という変数に“1”が設定されていることを判断するときには、ステップS307に進んで、スレッド選択信号制御回路26の生成するスレッド選択信号が“0”を表示しているのか否かを判断して、スレッド選択信号が“0”を表示していることを判断するときには、ステップS308に進んで、スレッド内プライオリティ制御回路25-0の出力するエントリを選択することで、スレッド0のエントリを選択して、スレッド間の優先制御処理を終了する。
一方、ステップS307の判断処理で、スレッド選択信号が“0”ではなくて“1”を表示していることを判断するときには、ステップS309に進んで、スレッド内プライオリティ制御回路25-1の出力するエントリを選択することで、スレッド1のエントリを選択して、スレッド間の優先制御処理を終了する。
一方、ステップS306の判断処理で、スレッド0についての条件2という変数に“1”が設定されているという条件と、スレッド1についての条件2という変数に“1”が設定されているという条件の2つが同時に成立しないことを判断するときには、ステップS310に進んで、その2つの条件のいずれか一方が成立するのか否かを判断する。
このステップS310の判断処理で、スレッド0についての条件2という変数に“1”が設定されているという条件と、スレッド1についての条件2という変数に“1”が設定されているという条件の内のいずれか一方が成立することを判断するときには、ステップS311に進んで、その条件2という変数に“1”が設定されている方のスレッド内プライオリティ制御回路25-0,1の出力するエントリを選択することで、スレッド0あるいはスレッド1のエントリを選択して、スレッド間の優先制御処理を終了する。
一方、ステップS310の判断処理で、スレッド0についての条件2という変数に“1”が設定されているという条件と、スレッド1についての条件2という変数に“1”が設定されているという条件のいずれもが成立しないことを判断するときには、ステップS312に進んで、何も選択しないようにして、スレッド間の優先制御処理を終了する。
このようにして、図2のように構成される本実施例の一次キャッシュ制御部20では、SMT方式のプロセッサで用いられるときに、スレッド0,1毎にフェッチ・ポート22を用意するのではなくて、例えば16個のエントリを持つ1つのフェッチ・ポート22を用意して、2つのスレッドのそれぞれに対して8個のエントリを割り付けたり、一方のスレッドに対して10個のエントリを割り付けるとともに、他方のスレッドに対して6個のエントリを割り付けるというように、フェッチ・ポート22をスレッド構成に合わせて分割して使用するように制御するのである。
この構成に従って、本実施例によれば、SMT方式のプロセッサにおけるキャッシュアクセス処理を少ない資源で実行できるようになる。
図2のように構成される一次キャッシュ制御部20では、FP分割形態設定回路24は、例えば動作の開始に入る前に、スレッド0,1の発行するアクセス要求の負荷の割合(アクセス要求の頻度の割合)に応じてフェッチ・ポート22の分割形態を決定して、TOQ制御回路23に通知するようにしている。
この構成を採る場合には、フェッチ・ポート22の分割形態は一度決定されると、それ以降変更されることはない。
しかしながら、スレッド0,1の発行するアクセス要求の負荷の割合がデータ処理の進行に伴って時間経過とともに変化する場合には、各スレッドの使用できる最大エントリ数を可変にすべく、フェッチ・ポート22の分割形態をそれに合わせて動的に変更することが好ましい。
これを実現するためには、図8に示すように、スレッド0の発行するアクセス要求の負荷とスレッド1の発行するアクセス要求の負荷とを監視する負荷監視回路28を備えるようにして、この負荷監視回路28を使って、例えば、所定の時間Tを単位にして2つのスレッド0,1のアクセス要求の負荷を連続的に測定して、それに基づいて、次の時間Tにおけるフェッチ・ポート22の分割形態を決定して、TOQ制御回路23に通知するようにする。
この構成を採ると、図9に示すように、アクセス要求の負荷の大きな方のスレッド(この図の例ではスレッド0)に対して、より多くのエントリが割り付けられるようになるので、フェッチ・ポート22を効率的に使用することができるようになる。
例えば、スレッド0とスレッド1とでアクセス要求の負荷の割合が3:1である場合には、スレッド0のアクセス要求をFP#0〜FP#11の合計12エントリに割り当て、スレッド1のアクセス要求をFP#12〜FP#15の合計4エントリに割り当てるようにし、これにより、負荷の軽いスレッドで使いきれていないエントリを負荷の重いスレッドで使用することができるようになるので、フェッチ・ポート22のエントリの使用効率を高めることができるのである。
また、図2では説明しなかったが、SMT方式のプロセッサにおいて、単一のスレッドのみが動作することがある。このような場合には、命令・演算制御部10は単一スレッドモード信号(single thread mode信号) を送出する。
これから、図10に示すように、単一スレッドモード信号の送出を検出するスレッド・モード検出回路29を備えるようにして、このスレッド・モード検出回路29を使って、命令・演算制御部10から単一スレッドモード信号が送出されていることを検出する場合には、フェッチ・ポート22を分割しないことを決定して、TOQ制御回路23に通知するようにする。
この構成を採ると、図11に示すように、単一のスレッドのみが動作する場合には、フェッチ・ポート22の全てのエントリを1つのスレッドが使用できるようになるので、フェッチ・ポート22のエントリの使用効率を高めることができるようになる。
図示実施例に従って本キャッシュ制御装置及び制御方法を説明したが、本キャッシュ制御装置及び制御方法はこれに限定されるものではない。例えば、実施例では、2つのスレッドが動作するSMT方式のプロセッサに実装されることを想定したが、3つ以上のスレッドが動作する場合にもそのまま適用できるものである。
本発明は、SMT方式のプロセッサにおけるキャッシュ制御に適用できるものであり、本発明を適用することで、SMT方式のプロセッサにおいて、キャッシュアクセス処理に必要となる資源を増加させることなく、その資源を効率的に利用してキャッシュアクセス処理を実行できるようになる。

Claims (8)

  1. 同時に実行される複数のスレッドで共有されるキャッシュに対してのアクセス要求を制御するキャッシュ制御装置であって、
    スレッドに共有される形態で設けられ、複数のエントリを有してそれらのエントリにアクセス要求を保持するポート手段と、
    各スレッドの発行するアクセス要求を、そのスレッドに割り付けられた前記ポート手段のポート部分に登録することで、前記ポート手段をスレッド構成に合わせて分割して使用するように制御する制御手段と、
    各スレッドに対応付けて設けられて、前記ポート手段の保持するそのスレッドの発行したアクセス要求を入力として、規定の優先制御に従ってアクセス要求を選択する第1の選択手段と、
    前記第1の選択手段の選択したアクセス要求を入力として、スレッド選択信号に従って最終的なアクセス要求を選択する第2の選択手段とを備えることを、
    特徴とするキャッシュ制御装置。
  2. 請求項1に記載のキャッシュ制御装置において、
    スレッドの処理が終了するときに、前記スレッド選択信号の指すスレッドを、その処理が終了したスレッドから別のスレッドに切り替える切替手段を備えることを、
    特徴とするキャッシュ制御装置。
  3. 請求項1又は2に記載のキャッシュ制御装置において、
    各スレッドの発行するアクセス要求の頻度を測定する測定手段と、
    前記測定手段の測定結果に基づいて、各スレッドに割り付ける前記ポート部分を決定する決定手段とを備えることを、
    特徴とするキャッシュ制御装置。
  4. 請求項1ないし3のいずれか1項に記載のキャッシュ制御装置において、
    1つのスレッドのみが動作する動作モードにあるのかを検出する検出手段と、
    前記検出手段が1つのスレッドのみが動作する動作モードにあることを検出する場合に、そのスレッドに対して、前記ポート手段の持つ全てのポート部分を割り付けることを決定する第2の決定手段を備えることを、
    特徴とするキャッシュ制御装置。
  5. スレッドに共有される形態で設けられ、複数のエントリを有してそれらのエントリにアクセス要求を保持するポート手段を備えて、そのポート手段を使って、同時に実行される複数のスレッドで共有されるキャッシュに対してのアクセス要求を制御するキャッシュ制御装置が実行するキャッシュ制御方法であって、
    前記キャッシュ制御装置が、
    各スレッドの発行するアクセス要求を、そのスレッドに割り付けられた前記ポート手段のポート部分に登録することで、前記ポート手段をスレッド構成に合わせて分割して使用するように制御し、
    各スレッド毎に、前記ポート手段の保持するそのスレッドの発行したアクセス要求の中から、規定の優先制御に従ってアクセス要求を選択し、
    前記選択したアクセス要求の中から、スレッド選択信号に従って最終的なアクセス要求を選択することを、
    特徴とするキャッシュ制御方法。
  6. 請求項5に記載のキャッシュ制御方法において、
    前記キャッシュ制御装置が、スレッドの処理が終了するときに、前記スレッド選択信号の指すスレッドを、その処理が終了したスレッドから別のスレッドに切り替えることを、
    特徴とするキャッシュ制御方法。
  7. 請求項5又は6に記載のキャッシュ制御方法において、
    前記キャッシュ制御装置が、各スレッドの発行するアクセス要求の頻度を測定して、その測定結果に基づいて、各スレッドに割り付ける前記ポート部分を決定することを、
    特徴とするキャッシュ制御方法。
  8. 請求項5ないし7のいずれか1項に記載のキャッシュ制御方法において、
    前記キャッシュ制御装置が、1つのスレッドのみが動作する動作モードにあるのかを検出して、1つのスレッドのみが動作する動作モードにあることを検出する場合に、そのスレッドに対して、前記ポート手段の持つ全てのポート部分を割り付けることを決定することを、
    特徴とするキャッシュ制御方法。
JP2009520176A 2007-06-19 2007-06-19 キャッシュ制御装置及び制御方法 Expired - Fee Related JP4706030B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2007/062325 WO2008155822A1 (ja) 2007-06-19 2007-06-19 キャッシュ制御装置及び制御方法

Publications (2)

Publication Number Publication Date
JPWO2008155822A1 JPWO2008155822A1 (ja) 2010-08-26
JP4706030B2 true JP4706030B2 (ja) 2011-06-22

Family

ID=40155987

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009520176A Expired - Fee Related JP4706030B2 (ja) 2007-06-19 2007-06-19 キャッシュ制御装置及び制御方法

Country Status (6)

Country Link
US (1) US8412886B2 (ja)
EP (1) EP2159700A4 (ja)
JP (1) JP4706030B2 (ja)
KR (1) KR101077514B1 (ja)
CN (1) CN101681303B (ja)
WO (1) WO2008155822A1 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2159702B1 (en) * 2007-06-20 2013-04-17 Fujitsu Limited Cache control device and control method
US20120198159A1 (en) * 2009-10-14 2012-08-02 Panasonic Corporation Information processing device
US9086909B2 (en) * 2011-05-17 2015-07-21 Oracle International Corporation System and method for supporting work sharing muxing in a cluster
US8671232B1 (en) * 2013-03-07 2014-03-11 Freescale Semiconductor, Inc. System and method for dynamically migrating stash transactions
US9632958B2 (en) 2014-07-06 2017-04-25 Freescale Semiconductor, Inc. System for migrating stash transactions

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2004068361A1 (ja) * 2003-01-27 2004-08-12 Fujitsu Limited 記憶制御装置、データキャッシュ制御装置、中央処理装置、記憶装置制御方法、データキャッシュ制御方法およびキャッシュ制御方法
JP2004326738A (ja) * 2003-04-21 2004-11-18 Internatl Business Mach Corp <Ibm> 同時マルチスレッド化プロセッサ
JP2006040141A (ja) * 2004-07-29 2006-02-09 Fujitsu Ltd マルチスレッドプロセッサ
JP2006048181A (ja) * 2004-07-30 2006-02-16 Fujitsu Ltd 記憶制御装置、ムーブインバッファ制御方法およびプログラム
JP2006524380A (ja) * 2003-04-23 2006-10-26 インターナショナル・ビジネス・マシーンズ・コーポレーション 同時マルチスレッド(smt)プロセッサにおいてスレッドごとのプロセッサ・リソース使用率を決定するためのアカウンティング方法および論理

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6430654B1 (en) * 1998-01-21 2002-08-06 Sun Microsystems, Inc. Apparatus and method for distributed non-blocking multi-level cache
US6661794B1 (en) * 1999-12-29 2003-12-09 Intel Corporation Method and apparatus for gigabit packet assignment for multithreaded packet processing
US7073033B2 (en) * 2000-02-25 2006-07-04 Oracle International Corporation Memory model for a run-time environment
GB2372847B (en) * 2001-02-19 2004-12-29 Imagination Tech Ltd Control of priority and instruction rates on a multithreaded processor
KR100429543B1 (ko) * 2002-05-25 2004-04-29 삼성전자주식회사 네트워크 프로세서에서 다양한 개수의 포트들을 처리하기위한 방법
US8024735B2 (en) * 2002-06-14 2011-09-20 Intel Corporation Method and apparatus for ensuring fairness and forward progress when executing multiple threads of execution
US20050210204A1 (en) * 2003-01-27 2005-09-22 Fujitsu Limited Memory control device, data cache control device, central processing device, storage device control method, data cache control method, and cache control method
TWI261198B (en) * 2003-02-20 2006-09-01 Samsung Electronics Co Ltd Simultaneous multi-threading processor circuits and computer program products configured to operate at different performance levels based on a number of operating threads and methods of operating
US7509643B2 (en) * 2003-03-24 2009-03-24 Sun Microsystems, Inc. Method and apparatus for supporting asymmetric multi-threading in a computer system
US7149829B2 (en) * 2003-04-18 2006-12-12 Sonics, Inc. Various methods and apparatuses for arbitration among blocks of functionality
US8869147B2 (en) * 2006-05-31 2014-10-21 Qualcomm Incorporated Multi-threaded processor with deferred thread output control

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2004068361A1 (ja) * 2003-01-27 2004-08-12 Fujitsu Limited 記憶制御装置、データキャッシュ制御装置、中央処理装置、記憶装置制御方法、データキャッシュ制御方法およびキャッシュ制御方法
JP2004326738A (ja) * 2003-04-21 2004-11-18 Internatl Business Mach Corp <Ibm> 同時マルチスレッド化プロセッサ
JP2006524380A (ja) * 2003-04-23 2006-10-26 インターナショナル・ビジネス・マシーンズ・コーポレーション 同時マルチスレッド(smt)プロセッサにおいてスレッドごとのプロセッサ・リソース使用率を決定するためのアカウンティング方法および論理
JP2006040141A (ja) * 2004-07-29 2006-02-09 Fujitsu Ltd マルチスレッドプロセッサ
JP2006048181A (ja) * 2004-07-30 2006-02-16 Fujitsu Ltd 記憶制御装置、ムーブインバッファ制御方法およびプログラム

Also Published As

Publication number Publication date
CN101681303B (zh) 2011-12-14
KR101077514B1 (ko) 2011-10-28
US20100100686A1 (en) 2010-04-22
US8412886B2 (en) 2013-04-02
CN101681303A (zh) 2010-03-24
EP2159700A4 (en) 2011-07-20
KR20100017837A (ko) 2010-02-16
EP2159700A1 (en) 2010-03-03
WO2008155822A1 (ja) 2008-12-24
JPWO2008155822A1 (ja) 2010-08-26

Similar Documents

Publication Publication Date Title
US8082420B2 (en) Method and apparatus for executing instructions
JP4973730B2 (ja) 演算処理装置及び演算処理装置の制御方法
US7134124B2 (en) Thread ending method and device and parallel processor system
JP4706030B2 (ja) キャッシュ制御装置及び制御方法
US7734897B2 (en) Allocation of memory access operations to memory access capable pipelines in a superscalar data processing apparatus and method having a plurality of execution threads
KR100745904B1 (ko) 동시적 멀티스레드 프로세서에서 파이프라인 길이를변경하기 위한 방법 및 회로
US9858116B2 (en) Functional unit for supporting multithreading, processor comprising the same, and operating method thereof
JP2007241918A (ja) プロセッサ装置
KR20060043130A (ko) 추월 기능을 갖춘 벡터 처리 장치
US20140101670A1 (en) Computing system including multi-core processor and load balancing method thereof
EP0735456A2 (en) System resource enable apparatus
US10521368B2 (en) Arbitration of requests requiring a variable number of resources
US8151097B2 (en) Multi-threaded system with branch
US20040216103A1 (en) Mechanism for detecting and handling a starvation of a thread in a multithreading processor environment
US20110072215A1 (en) Cache system and control method of way prediction for cache memory
CN101131681B (zh) 控制数据存取请求的计算器系统、存储器控制器与方法
US7337274B2 (en) Computer and control method
US9778934B2 (en) Power efficient pattern history table fetch in branch predictor
KR100980076B1 (ko) 저전력 분기 예측 시스템 및 분기 예측 방법
US20050228966A1 (en) Processor system and data processing method
US20040148464A1 (en) Cache memory device and method of controlling the cache memory device
JP2007200106A (ja) データ処理装置、制御方法、及びプログラム
CN112612585B (zh) 线程调度方法、配置方法、微处理器、装置及存储介质
JP4878050B2 (ja) コンピュータ及び制御方法
EP2843543B1 (en) Arithmetic processing device and control method of arithmetic processing device

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101005

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101202

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20101202

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110104

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110124

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110215

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110217

LAPS Cancellation because of no payment of annual fees