JP5630568B2 - 演算処理装置、情報処理装置及び演算処理装置の制御方法 - Google Patents

演算処理装置、情報処理装置及び演算処理装置の制御方法 Download PDF

Info

Publication number
JP5630568B2
JP5630568B2 JP2013505698A JP2013505698A JP5630568B2 JP 5630568 B2 JP5630568 B2 JP 5630568B2 JP 2013505698 A JP2013505698 A JP 2013505698A JP 2013505698 A JP2013505698 A JP 2013505698A JP 5630568 B2 JP5630568 B2 JP 5630568B2
Authority
JP
Japan
Prior art keywords
unit
arithmetic processing
request
processing unit
cache
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
JP2013505698A
Other languages
English (en)
Other versions
JPWO2012127628A1 (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 JPWO2012127628A1 publication Critical patent/JPWO2012127628A1/ja
Application granted granted Critical
Publication of JP5630568B2 publication Critical patent/JP5630568B2/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
    • 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/0862Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
    • 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/0846Cache with multiple tag or data arrays being simultaneously accessible
    • 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
    • G06F12/0859Overlapped cache accessing, e.g. pipeline with reload from main memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/6028Prefetching based on hints or prefetch instructions

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

本発明は、演算処理装置、情報処理装置及び演算処理装置の制御方法に関する。
主記憶装置と接続されたキャッシュメモリを有する演算処理装置を備えた情報処理装置において、主記憶装置が連続したキャッシュラインを連続的に処理することにより、記憶装置とキャッシュメモリ間の転送スループットを向上させる場合がある。例えば、DDR3(Double Data Rate3)−SDRAM(Synchronous Dynamic Random Access Memory)では、同一ロウの隣接したカラムへのアクセスを連続する場合、主記憶装置がデータを記憶する単位であるページを閉じずに連続してアクセスを行うことが可能であり、1アクセスごとにページを閉じる場合よりも主記憶装置とキャッシュメモリ間の転送スループットが向上する。
しかしながら、従来のキャッシュメモリの制御では、ソフトウエアがキャッシュメモリのキャッシュラインのサイズであるラインサイズより大きな連続したアドレスの領域を必要とする場合でも、主記憶装置ではキャッシュメモリのようにキャッシュライン単位でデータを管理しておらず、データ毎に処理が行われる。
図8は、従来のキャッシュメモリ制御装置の制御例を示す図である。図8において、「PF−PIPE(CORE−n)」は、CPU(Central Processing Unit:中央処理装置)コアユニットnからのプリフェッチ要求を処理するプリフェッチのパイプライン処理を示す。また、「PFパイプライン(CORE-n,PA=xxxxxx)、タグミス」は、CPUコアユニットnからの物理アドレスxxxxxxのプリフェッチ命令に対してパイプライン処理によりキャッシュメモリのタグ検索が行われ、タグにヒットせずにタグミスが発生したことを示す。
すなわち、図8では、CPUコアユニット0、1、2、3、0、1からのプリフェッチ命令が順にパイプライン処理され、タグミスが順番に発生する。その結果、メモリすなわち主記憶装置へのフェッチ要求が16進表記による物理アドレス「000000」、「010000」、「020000」、「030000」、「000080」、「000180」に対して発行される。
特開平1−261780号公報 特開平5−143448号公報
図8において、一例として、キャッシュラインサイズを128バイトとし、主記憶装置は2キャッシュライン分の256バイトのデータを連続的に処理することにより主記憶装置とキャッシュメモリ間の転送スループットを向上させる機能を有するものとする。このとき、CPUコアユニット0からの物理アドレス「000000」及び「000080」への2つのフェッチ要求を主記憶装置に連続して発行することができれば、主記憶装置とキャッシュメモリ間の転送スループットを向上させることができる。
しかしながら、従来のキャッシュメモリ制御では、複数のCPUコアユニットからのプリフェッチ命令がそれぞれ順番に処理される。したがって、従来のキャッシュメモリ制御装置には、CPUコアユニット0からの物理アドレス「000000」及び「000080」へのフェッチ要求を主記憶装置に連続して発行することができないという問題があった。すなわち、従来のキャッシュメモリ制御装置には、連続するキャッシュラインのフェッチ要求を主記憶装置に連続して発行することができないという問題があった。
開示の技術は、一側面において、主記憶装置の転送スループットを向上することができる演算処理装置、情報処理装置及び演算処理装置の制御方法を提供することを目的とする。
本願の開示する演算処理装置は、一つの態様において、データをそれぞれ保持する複数のキャッシュラインを有するキャッシュメモリを有する。また、本願の開示する演算処理装置は、キャッシュメモリの連続する複数のキャッシュラインに対する複数のアクセス要求を互いに関連付けて保持する要求保持部と、関連付けられた複数のアクセス要求を、主記憶装置に対して連続して発行する制御部とを有する。また、本願の開示する演算処理装置は、連続して発行された複数のアクセス要求に対する主記憶装置からの複数の応答データを、キャッシュメモリの連続するキャッシュラインに登録する処理部を有する。
本願の開示する演算処理装置の一つの態様によれば、主記憶装置の転送スループットを向上することができるという効果を奏する。
図1は、本実施例に係るキャッシュメモリ制御装置の制御例を示す図である。 図2は、本実施例に係るCPUの構成を示す図である。 図3は、図2に示したPFポートの構成を示す図である。 図4は、エントリ有効信号設定部の構成を示す図である。 図5は、PFポートエントリ選択部の処理手順を示すフローチャートである。 図6は、本実施例に係るキャッシュメモリ制御装置の他の制御例を示す図である。 図7は、STREAM計算のプログラム例を示す図である。 図8は、従来のキャッシュメモリ制御装置の制御例を示す図である。
以下に、本願の開示する演算処理装置、情報処理装置及び演算処理装置の制御方法の実施例を図面に基づいて詳細に説明する。なお、この実施例は開示の技術を限定するものではない。
まず、本実施例に係るキャッシュメモリ制御装置の制御例について説明する。図1は、本実施例に係るキャッシュメモリ制御装置の制御例を示す図である。なお、図1においても図8と同様に、一例として、キャッシュラインサイズを128バイトとし、主記憶装置は連続する2キャッシュライン分の256バイトのデータを連続的に処理することにより、主記憶装置とキャッシュメモリ間の転送スループットを向上させる機能を有するものとする。
図1に示すように、本実施例に係るキャッシュメモリ制御装置は、各CPUコアユニットからの16進数で表した物理アドレス「xxxx00」及び「xxxx80」へのプリフェッチ要求を連続して処理する。ここで、物理アドレスの「xxxx」の部分は、図1の例では、CPUコアユニット0の場合は「0000」であり、CPUコアユニット1の場合は「0100」であり、CPUコアユニット2の場合は「0200」であり、CPUコアユニット3の場合は「0300」である。
このように、本実施例に係るキャッシュメモリ制御装置は、各CPUコアユニットからの物理アドレス「xxxx00」及び「xxxx80」へのプリフェッチ要求を連続して処理する。したがって、本実施例に係るキャッシュメモリ制御装置は、物理アドレス「xxxx00」及び「xxxx80」へのフェッチ要求を主記憶装置に連続して発行することができる。その結果、主記憶装置が物理アドレス「xxxx00」及び「xxxx80」の2キャッシュライン分の連続した領域を連続的に処理することにより、主記憶装置とキャッシュメモリ間の転送スループットを向上させる場合、主記憶装置の転送スループットを向上させることができる。
次に、本実施例に係るCPUの構成について説明する。図2は、本実施例に係るCPUの構成を示す図である。図2に示すように、CPU1は、4つのCPUコアユニット10と、4つのCPUコアユニット10が共有される共用L2キャッシュユニット20とを有する。なお、ここでは、一例として、CPU1が4つのCPUコアユニット10を有する場合について説明するが、CPU1は4つ以外のCPUコアユニット10を有することもできる。
CPUコアユニット10は、CPU1のコアとなる部分であり、L1命令キャッシュメモリ11と、命令デコード/発行部12と、L1データキャッシュメモリ13と、ALU(Arithmetic Logic Unit:算術論理ユニット)14と、MMU(Memory Management Unit:メモリ管理ユニット)15とを有する。また、CPUコアユニット10は、L1−MIB(Level-1 Move In Buffer:1次ムーブインバッファ)16と、PFQ(Pre-Fetch Queue:プリフェッチキュー)17と、MOB(Move Out Buffer:ムーブアウトバッファ)18と、命令フェッチパイプ19aと、ロード/ストアパイプ19bと、実行パイプ19cとを有する。
L1命令キャッシュメモリ11は、命令を記憶する1次キャッシュメモリであり、命令デコード/発行部12は、L1命令キャッシュメモリ11が記憶する命令をデコードして発行する。L1データキャッシュメモリ13は、データを記憶する1次キャッシュメモリであり、ALU14は、命令デコード/発行部12が発行した命令に基づいて算術演算及び論理演算を行う。
MMU15は、仮想アドレスから物理アドレスへの変換を行い、L1−MIB16は、共用L2キャッシュユニット20へのDM(demand:デマンド)要求を記憶するバッファである。ここで、DM要求とは、Load命令、Store命令の1次キャッシュミスによる2次キャッシュメモリ又は主記憶装置に対するデータ読み込み要求である。
PFQ17は、共用L2キャッシュユニット(Level-2 Cache Memory Unit)20へのプリフェッチ要求を記憶するキューであり、MOB18は、共用L2キャッシュユニット20へのデータ書き出し要求(ムーブアウト要求)を記憶するバッファである。
命令フェッチパイプ19aは、L1命令キャッシュメモリ11からの命令の読み出し処理を行うパイプラインであり、ロード/ストアパイプ19bは、データのロード処理及びストア処理を行うパイプラインである。実行パイプ19cは、命令の実行処理を行うパイプラインである。
共用L2キャッシュユニット20は、4つのCPUコアユニット10で共用される2次キャッシュメモリ装置であり、4つのMOポート(Move Out Port:ムーブアウトポート)21と、4つのMIポート(Move In Port:ムーブインポート)22と、4つのPF(Prefetch Port)ポート100と、パイプ投入部200とを有する。また、共用L2キャッシュユニット20は、L2−データ記憶部24と、L2−タグ記憶部25と、L2−パイプライン制御部300と、L2−MIB26と、MAC(Memory Access Controller)27とを有する。また、共用L2キャッシュユニット20は、Move−inデータパスバッファ/制御部28と、Move−outデータパスバッファ/制御部29とを有する。ここで、共用L2キャッシュユニット20からL2−データ記憶部24を除いた部分は、2次キャッシュメモリ装置を制御するL2−キャッシュメモリ制御部として動作する。
MOポート21は、CPUコアユニット10からのデータ書き出し要求を受け付け、受付けたデータ書き出し要求を古い順に選択してパイプ投入部200に発行する。4つのMOポート21は4つのCPUコアユニット10とそれぞれ対応する。
MIポート22は、CPUコアユニット10からのDM要求を受け付け、受付けたDM要求を古い順に選択してパイプ投入部200に発行する。4つのMIポート22は4つのCPUコアユニット10とそれぞれ対応する。
PFポート100は、CPUコアユニット10からのプリフェッチ要求を受け付け、受付けたプリフェッチ要求を古い順に選択してパイプ投入部200に発行する。4つのPFポート100は4つのCPUコアユニット10とそれぞれ対応する。
パイプ投入部200は、4つのPFポート100が発行する要求からLRU(Least Recently Used)又はラウンドロビンにより、できるだけCPUコアユニット10間で均等に要求を選択する。パイプ投入部200は、4つのMOポート21、MIポート22が発行する要求についてもそれぞれCPUコアユニット10間で均等に要求を選択する。
また、パイプ投入部200は、4つのPFポート100間、MOポート21間、MIポート22間でそれぞれ選択された要求及びL2−MIB26により発行された要求から優先度に基づいて要求を選択し、選択した要求をL2−パイプ23に投入する。ここで、L2−パイプ23は、L2−パイプライン制御部300により制御されるパイプラインである。
L2−データ記憶部24は、2次キャッシュデータを記憶する。L2−タグ記憶部25は、L2−データ記憶部24が記憶するデータのタグを記憶する。L2−パイプ23は、投入された要求に含まれる物理アドレスに対応するタグをL2−タグ記憶部25から検索し、検索結果に応じた処理を行う。
すなわち、タグがL2−タグ記憶部25から検索された場合には、L2−パイプ23は、L2−データ記憶部24へアクセスするよう制御する。これに対して、タグがL2−タグ記憶部25から検索されなかった場合には、L2−パイプ23は、DM要求又はプリフェッチ要求であれば、要求をL2−MIB26に格納する。一方、データ書き出し要求であれば、L2−パイプ23は、L2−データ記憶部24及び主記憶装置へのデータ書き込みが行われるように制御する。
また、L2−パイプ23は、各要求に対する処理が正常に終了した場合には、完了をMIポート22及びPFポート100に通知し、各要求に対する処理がアボートした場合には、アボートをMIポート22及びPFポート100に通知する。
L2−MIB(Level-2 Move In Buffer:2次ムーブインバッファ)26は、主記憶装置へのデータ読み込み要求(ムーブイン要求)を記憶するバッファである。また、L2−MIB26に記憶されたデータ読み込み要求は、データが主記憶装置から読み出されるとパイプ投入部200によってL2−パイプ23に再投入される。再投入されたデータ読み込み要求により、L2−データ記憶部24へのデータの書き込み、L2−タグ記憶部25へのタグの登録が行われる。
MAC27は、主記憶装置として動作するDIMM(Dual Inline Memory Module)2へのアクセスを制御する。Move−inデータパスバッファ/制御部28は、主記憶装置から読み込まれたデータのL2−データ記憶部24への書き込み、CPUコアユニット10への転送などを行う。Move−outデータパスバッファ/制御部29は、CPUコアユニット10から出力されたデータのL2−データ記憶部24への書き込み、MAC27への転送などを行う。なお、CPU1及びDIMM2は、情報処理装置の一部として動作する。
次に、図2に示したPFポート100の構成について説明する。図3は、図2に示したPFポート100の構成を示す図である。図3に示すように、PFポート100は、要求記憶部110と、設定エントリ選択部120と、空エントリ選択部130と、PFポートエントリ選択部140と、エントリ有効信号設定部150とを有する。
要求記憶部110は、例えば8つのエントリを有し、各エントリにプリフェッチ要求を記憶する。ここで、要求記憶部110は例えば、1つのエントリとして、連続する2つのキャッシュラインへの要求として2つの要求に展開される展開要求を記憶することができる。なお、展開要求は3つ以上のキャッシュラインへの要求である3つ以上の要求に展開されても良い。
各エントリは、図3に示すように、VAL[1:0]、HLD[1:0]、EXP、PA[39:8]、PF_CODEの各フィールドを有する。ここで、PA(Physical Address)はプリフェッチするキャッシュラインの物理アドレスであり、[l:m]はビットmからビットlまでのl−m+1ビットを示す。また、以下で[n]はビットnを示す。
VAL(Valid)[1:0]は、エントリが有効であるか否かを示し、VAL[1]、VAL[0]がそれぞれPA[7]=1、PA[7]=0に対応する連続する2つのキャッシュラインのプリフェッチ要求の有効性を示す。VAL[1:0]は、値が“1”である場合に対応するエントリが有効であることを示す。EXP(Expand)は、エントリが展開要求であるか単独要求であるかを示すフラグである。EXPが“1”の場合、エントリが展開要求であることを示す。CPUコアユニット10からのプリフェッチ要求が展開要求である場合には、VAL[1:0]=11、EXP=1がセットされる。一方、CPUコアユニット10からのプリフェッチ要求が展開されない単独要求である場合には、PA[7]に対応するVALのみがセットされ、EXP=0がセットされる。HLD[1:0]は、プリフェッチ要求がL2−パイプ23によって処理中であるか否かを示し、HLD[1]、HLD[0]がそれぞれPA「7」=1、PA「7」=0に対応する連続する2つのプリフェッチ要求が処理中であるか否かを示す。PF_CODEは、排他などに関する要求の種別を示す。HLD[1:0]は、値が“1”である場合に、プリフェッチ要求が処理中であることを示す。
設定エントリ選択部120は、CPUコアユニット10からのプリフェッチ要求を要求記憶部110に格納する。空エントリ選択部130は、要求記憶部110の空エントリをVAL[1:0]を用いて選択し、設定エントリ選択部120は、空エントリ選択部130により選択された空エントリにCPUコアユニット10からのプリフェッチ要求を格納する。なお、空エントリとは、VAL[1:0]=00のエントリである。
PFポートエントリ選択部140は、要求記憶部110が記憶する有効なエントリから要求時点が古い順に要求を選択してパイプ投入部200に発行する。ここで、有効なエントリとは、VAL[1]又はVAL[0]の値が1であるエントリである。また、PFポートエントリ選択部140は、要求が展開要求である場合には、展開要求から展開された2つの要求を連続してパイプ投入部200に発行し、パイプ投入部200が2つの要求を連続してL2−パイプ23に投入するように優先度を用いて制御する。
このように、PFポートエントリ選択部140が、要求が展開要求である場合に、展開要求から展開された2つの要求を連続してパイプ投入部200に発行することによって、主記憶装置は連続する2キャッシュラインを連続的に処理することができる。
エントリ有効信号設定部150は、各エントリのVAL[1:0]を設定する。図4は、エントリ有効信号設定部150の構成を示す図である。図4に示すように、CPUコアユニット10からのプリフェッチ要求信号Cx_PF_REQ_VAL[1:0]をOR回路151が入力して各エントリのVAL[1:0]を設定する。
また、エントリ有効信号設定部150は、L2−パイプ23によるパイプライン処理の結果に基づいて各エントリのVAL[1:0]を更新する。L2−パイプ23によるパイプライン処理の結果としては、処理が有効である場合の完了と、処理が中止される場合のアボートがある。L2−パイプ23は、パイプライン処理の結果をエントリ番号nとともにPFポート100に通知する。
パイプライン処理の結果が完了であった場合には、L2−パイプ23からの完了を示す信号PIPE_CPLT[1:0]の否定がAND回路152に入力され、エントリ有効信号設定部150は、OR回路151を介してVAL[1:0]の該当するビットを0に更新する。プリフェッチ要求が展開要求である場合には、展開された2つの要求の処理が完了すると、VAL[1:0]=00となり、エントリが開放される。開放されたエントリは空エントリ選択部130の選択対象となる。
一方、パイプライン処理の結果がアボートであった場合には、VAL[1:0]の該当するビットは更新されない。展開要求の場合、展開された2つの要求は時間的に連続してパイプライン処理されるが、それぞれのパイプライン処理自体は独立したものであり、一方のパイプライン処理が完了で、他方のパイプライン処理がアボートという場合もある。その場合、PFポートエントリ選択部140は、アボートした要求を他の要求よりも優先して選択し、パイプ投入部200にアボートした要求を再発行する。
このように、PFポートエントリ選択部140が、展開された2つの要求の一方だけがアボートした場合に、アボートした要求を最優先で選択することによって、主記憶装置は連続する2つのキャッシュラインを連続して処理することができる。
なお、連続して処理する必要のある2つの要求の一方だけがアボートするのを回避するために、アボート条件が解消するまでパイプラインをストールさせることが考えられる。しかしながら、パイプラインをストールさせる場合には、パイプラインの制御回路等の構成に大きな変更が必要となる。したがって、パイプラインの制御回路の構成が主記憶装置の特性に大きく依存することとなり、接続される主記憶装置ごとにキャッシュパイプライン制御を大きく変更する必要がある。
一方、本実施例のように、展開された2つの要求の一方だけがアボートした場合に、アボートした要求を他の要求よりも優先して処理することによって、パイプラインの制御回路の構成が主記憶装置の特性による影響を受けないようにすることができる。
また、アボートの原因としては、MIB(Move-In Buffer:ムーブインバッファ)などの資源の枯渇がある。キャッシュのパイプラインは主記憶装置に比べて処理スループットが高いため、主記憶装置からの転送が最大限の性能で動作していたとしても、MIBリソースなどの資源の枯渇が発生しやすい。
このため、L2−パイプライン制御部300は、MIBなどの資源を管理する資源管理部301を備える。PFポートエントリ選択部140は、資源管理部301からMIBなどの資源がどれだけ利用可能かを示すレベル信号RESOURCE_AVAILを受信し、このレベル信号に基づいてパイプ投入部200に投入する要求を選択する。
すなわち、PFポートエントリ選択部140は、RESOURCE_AVAIL≧2の場合には、全ての有効なエントリのプリフェッチ要求のいずれかを選択する。また、PFポートエントリ選択部140は、RESOURCE_AVAIL=1の場合には、VAL[1:0]=01又は10であるエントリのプリフェッチ要求のいずれかを選択する。特に、EXP=1であるようなプリフェッチ要求をEXP=0であるプリフェッチ要求よりも優先して選択する。また、PFポートエントリ選択部140は、RESOURCE_AVAIL=0の場合には、パイプ投入部200に投入するプリフェッチ要求を抑止する。
このように、PFポートエントリ選択部140が利用可能なMIBの資源に基づいてプリフェッチ要求を選択することによって、L2−パイプ23に投入されたプリフェッチ要求がアボートしないように制御することができる。また、展開要求の一方の要求だけが資源枯渇でアボートした場合にも、RESOURCE_AVAILが0から1に変化したところでアボートしたプリフェッチ要求が、他のプリフェッチ要求よりも優先的に選択されるように制御することができる。
次に、PFポートエントリ選択部140の処理手順について説明する。図5は、PFポートエントリ選択部140の処理手順を示すフローチャートである。図5に示すように、PFポートエントリ選択部140は、「(VAL[1:0]=01又は10)かつEXP=1」なエントリ(A−0)があるか否かを判定する(ステップS1)。すなわち、PFポートエントリ選択部140は、展開要求でありながら、展開要求に含まれるいずれかのプリフェッチ要求がアボートして取り残されてしまったエントリ(A−0)があるか否かを判定する。
その結果、エントリ(A−0)がある場合には、PFポートエントリ選択部140は、エントリ(A−0)のうち「(VAL[1]=1又はVAL[0]=1)かつ(HLD[1]=0かつHLD[0]=0)」の条件を満たすエントリ(A−1)があるか否かを判定する(ステップS2)。すなわち、PFポートエントリ選択部140は、エントリ(A−0)のうちL2−パイプ23に投入中ではないエントリ(A−1)があるか否かを判定する。
その結果、エントリ(A−0)のうちL2−パイプ23に投入中ではないエントリ(A−1)がある場合には、PFポートエントリ選択部140は、エントリ(A−0)のうち最も古い要求(A−2)について、その要求を受け入れられるだけの資源であるMIBの空があるか否かを判定する(ステップS3)。
その結果、PFポートエントリ選択部140は、資源であるMIBの空がある場合には、要求(A−2)を選択してパイプ投入部200へ要求し(ステップS4)、資源の空がない場合には、パイプ要求すなわちL2−パイプ23による処理要求を行わない(ステップS6)。また、PFポートエントリ選択部140は、エントリ(A−1)がない場合にも、パイプ要求を行わない(ステップS5)。
一方、エントリ(A−0)がない場合には、PFポートエントリ選択部140は、「(VAL[1]=0又はVAL[0]=0)かつ(HLD[1]=0かつHLD[0]=0)」を満たすエントリ(B−0)があるか否かを判定する(ステップS7)。すなわち、PFポートエントリ選択部140は、L2−パイプ23に投入中ではない有効なエントリ(B−0)があるか否かを判定する。
その結果、PFポートエントリ選択部140は、L2−パイプ23に投入中ではない有効なエントリ(B−0)がある場合には、PFポートエントリ選択部140は、エントリ(B−0)のうち最も古い要求(B−1)を受け入れられるだけのMIBに空きがあるか否かを判定する(ステップS8)。
その結果、MIBに空きがある場合には、PFポートエントリ選択部140は、要求(B−1)を選択してパイプ投入部200へ要求し(ステップS9)、MIB空きがない場合には、パイプ要求を行わない(ステップS11)。また、PFポートエントリ選択部140は、エントリ(B−0)がない場合にも、パイプ要求を行わない(ステップS10)。
このように、PFポートエントリ選択部140が、パイプ投入部200へ発行する要求を各エントリが有するVAL[1:0]、HLD[1:0]、RESOURCE_AVAILの値を用いて選択することによって、キャッシュメモリと主記憶装置間の転送スループットを向上させることができる。
次に、本実施例に係るキャッシュメモリ制御装置の他の制御例について説明する。図6は、本実施例に係るキャッシュメモリ制御装置の他の制御例を示す図である。図6に示す例は、CPUコアユニット10からの展開要求の2つ目のプリフェッチ要求がMIBの枯渇によりアボートした場合を示している。
このような場合、本実施例に係るキャッシュメモリ制御装置は、複数のエントリを有するMIBに1つ空きのエントリができると、アボートしたプリフェッチ要求を他のプリフェッチ要求に優先してL2−パイプ23に再投入する。したがって、本実施例に係るキャッシュメモリ制御装置は、プリフェッチ要求がアボートした場合であっても、CPUコアユニット10からの展開要求から展開された2つのプリフェッチ要求を連続して主記憶装置に発行することができる。
また、図6に示す例は、CPUコアユニット10からの展開要求が展開された2つのプリフェッチ要求がMIBの枯渇により全てアボートした場合も示している。このような場合、本実施例に係るキャッシュメモリ制御装置は、複数のエントリを有するMIBに2つの空きができてから、アボートしたプリフェッチ要求をL2−パイプ23に再投入する。したがって、本実施例に係るキャッシュメモリ制御装置は、プリフェッチ要求がアボートした場合であっても、CPUコアユニット2からの展開要求から展開された2つのプリフェッチ要求を連続して主記憶装置に発行することができる。
次に、主記憶装置の転送能力を最大限に発揮させることができる例として、HPC(High Performance Computing)におけるSTREAM計算について説明する。STREAM計算では、演算に使用する参照データを主記憶装置の連続した領域から転送し、別の連続した領域に演算結果を格納する処理を行う。ここで、主記憶装置からのデータ読み込みは実際にはプリフェッチにより予め読み出してキャッシュメモリに格納し、キャッシュメモリからデータをロードして演算し、演算結果を主記憶装置の別の領域に格納する。
図7は、STREAM計算のプログラム例を示す図である。このプログラムでは、ループ処理において、M周先にLoad(及びStore)されるアドレスをプリフェッチする。ここで、Mとしては、M*{ループ処理を1周実行するのにかかる時間(クロックサイクル数)}>{プリフェッチ発行から共用L2キャッシュユニット20にデータが格納されるまでの時間(クロックサイクル数)}の条件を満たす十分大きな値を選択する。すると、このプログラムでは、プリフェッチによる主記憶装置へのアクセス時間がループ処理にかかる時間により隠蔽され、プリフェッチを利用することが性能面で有効となる。
このプログラムでは、Load命令又はStore命令が1次キャッシュミスするとDM要求が共用L2キャッシュユニット20へ発行され、DM要求されたデータをMIポート22が受信する。Load命令及びStore命令は例えばキャッシュミスした8バイト分のアドレスを指示するが、共用L2キャッシュユニット20へのDM要求はそのキャッシュミスした8バイト分のデータを含むキャッシュライン(ここでは128バイト分のデータ)全体に対するDM要求となる。
CPUコアユニット10からのDM要求を受信した共用L2キャッシュユニット20は、パイプライン処理を行い、タグヒットならばそのヒットしたデータをCPUコアユニット10に応答する。一方、タグミスならば、共用L2キャッシュユニット20は、主記憶装置へフェッチ要求を発行し、データ応答後にCPUコアユニット10へのデータ応答及びL2−タグ記憶部25、L2−データ記憶部24への登録を行う。共用L2キャッシュユニット20からの応答データを受信したCPUコアユニット10はその応答データを待っているALU14へデータを供給するとともに1次キャッシュメモリ装置のタグの登録、L1データキャッシュメモリ13へのデータの登録を行う。
なお、共用L2キャッシュユニット20へのDM要求の応答を待っている間に別のLoad命令又はStore命令が同じキャッシュラインの異なる8バイトのアドレスを指示する場合がある。別のLoad命令又はStore命令が同じキャッシュラインの異なる8バイトのアドレスを指示した場合は、共用L2キャッシュユニット20からの応答、1次キャッシュメモリ装置のタグの登録、L1データキャッシュメモリ13へのデータの登録後に登録したデータに対して1次キャッシュヒットする順序で処理が行われる。このように、プリフェッチを利用せずに、Load命令又はStore命令がキャッシュミスする場合には、主記憶装置の転送帯域を最大限に利用する必要性は少ないため、別のLoad命令又はStore命令が同じキャッシュラインの異なる8バイトのアドレスを指示しても問題とはならない。
一方、プリフェッチ命令が1次キャッシュミスするとプリフェッチ要求が共用L2キャッシュユニット20へ発行され、PFポート100が受信する。プリフェッチ命令は、例えば8バイトのアドレスを指示するが、共用L2キャッシュユニット20への要求はその8バイト分のデータを含むキャッシュライン(ここでは128バイト分のデータ)全体に対する要求となる。CPUコアユニット10からのプリフェッチ要求を受信した共用L2キャッシュユニット20は、パイプライン処理を行い、タグヒットならばタグのLRUをそのキャッシュラインが「最新」の状態になるように更新する。一方、タグミスならば主記憶装置へフェッチ要求発行を行い、データ応答後にL2−タグ記憶部25、L2−データ記憶部24への登録を行う。ここで、タグヒット時、タグミス時ともCPUコアユニット10へのデータ応答は行わないところがDM要求との主要な違いである。
このプログラム例で用いられるプリフェッチ命令は、従来のように1つの128バイトのキャッシュラインに対してプリフェッチを要求するのではなく、複数の2キャッシュラインをまとめてプリフェッチを要求する。このプリフェッチ命令は、2キャッシュライン分の連続する256バイト分をまとめてプリフェッチするようなプリフェッチ命令の種類を命令コード定義に拡大することによって実現される。
このように2キャッシュラインをまとめてプリフェッチするように拡張したプリフェッチ命令を、ここでは「展開プリフェッチ命令」と呼ぶことにする。CPUコアユニット10は、展開プリフェチ命令が1次キャッシュミスならば共用L2キャッシュユニット20へ展開プリフェッチ命令であるという属性とともにプリフェッチ要求を発行する。その結果、共用L2キャッシュユニット20は本実施例に示すような展開要求の制御を実現することができる。
このプログラム例のように連続するデータ領域を隙間なく使用することがわかっている場合には、従来の1キャッシュラインに対するプリフェッチ命令を展開プリフェッチ命令で単純に置き換えることにより主記憶転送帯域を最大限に使用することが可能となる。その場合、余分に(重複して)同じキャッシュラインに対するプリフェッチ要求が発行されるが、余分な要求はパイプライン処理の際にMIBとのアドレスマッチにより完了されるので問題はない。
なお、2キャッシュラインをまとめてプリフェッチする要求は、命令実行部や1次キャッシュパイプラインなどで隣接したアドレスに対する要求をハードウエアで検出して結合するという方法が考えられる。しかしながら、そのような方法には、動作の条件によっては確実に要求を結合できるとは限らないなどの制約がある。
一般に、展開プリフェチ命令のような新規の命令を定義することは動作仕様の変更を意味し、過去の機種との互換性などを考慮して慎重でなければならないが、2次キャッシュメモリ装置のプリフェッチ命令であればその影響を少なくすることができる。すなわち、展開プリフェッチ命令の追加については、2次キャッシュメモリ装置のパイプライン処理を変更することなく、パイプラインへの要求投入を変更するだけで実現することができる。
なお、メモリ転送効率や、キャッシュ転送効率を向上させる方法として、キャッシュ制御パイプライン及びMACが複数のメモリバンクに分割される構成が採られ場合がある。このような場合、メモリバンクを分割するアドレスの単位は、各メモリバンク間のビジー率が均等になるようになるべくアドレスの下位ビットが選択される。例えば、キャッシュラインサイズ128バイトの装置において、4バンクに分割する場合、PA[8:7]のアドレス2ビットで分割することが一般的である。
しかしながら、ソフトウエアで複数の隣接するキャッシュラインをプリフェッチする展開プリフェッチ命令を定義した場合、PA[8:7]のアドレス2ビットでバンク分けを行うとソフトウエアから見て隣接したアドレスが各バンクに分断されてしまう。そこで、主記憶装置が連続処理する単位とソフトウエアがプリフェッチを連続で発行する単位が同一のバンクに固まるようなバンク構成とすべきである。例えば、連続する2キャッシュライン分の256バイトを要求することを前提とするのであれば、PA[7]はバンク分けの対象とせず、同一バンクとし、PA[9:8]でバンク分けすべきである。
上述してきたように、本実施例では、PFポート100の要求記憶部110に展開要求を記憶し、PFポートエントリ選択部140が展開要求から展開される2つのプリフェッチ要求が連続してL2−パイプ23に投入されるよう制御する。したがって、MAC27は、連続する2つのキャッシュラインの読み込み要求を連続して主記憶装置に発行することができ、主記憶装置は連続する2キャッシュラインを連続的に処理することにより転送スループットを向上させることができる。
また、本実施例では、PFポートエントリ選択部140が、展開された2つのプリフェッチ要求の一方だけがアボートした場合に、アボートしたプリフェッチ要求が最優先でL2−パイプ23に投入されるよう制御する。したがって、展開された2つのプリフェッチ要求の一方がアボートした場合にも、L2−パイプ23の制御構成を変更することなく、2つのプリフェッチ要求を連続してL2−パイプ23に投入することができる。
また、本実施例では、PFポートエントリ選択部140が資源管理部301から利用可能な資源数を受け取り、利用可能な資源数に基づいてパイプ投入部200に投入するプリフェッチ要求を選択する。したがって、L2−パイプ23で資源枯渇に起因するアボートが発生しないようにすることができる。
なお、本実施例では、PFポート100に1エントリあたり2個の要求を保持する場合について説明したが、本発明はこれに限定されるものではなく、PFポート100に1エントリあたり他の個数の要求を保持する場合にも同様に適用することができる。例えば、主記憶装置が有する構成に基づいて、4個のキャッシュラインサイズ単位を一括して処理することにより転送スループットを向上させる機能を有する場合には、PFポート100に1エントリあたり4個の要求を保持するようにすることができる。
また、本実施例では、PFポート100に1エントリあたり2個のプリフェッチ要求を保持する場合について説明したが、本発明はこれに限定されるものではなく、MIポート23など他のポートに1エントリあたり複数のキャッシュラインの要求を保持する場合にも同様に適用することができる。
また、本実施例では、L2−パイプ23でタグの検索をパイプライン処理する場合について説明したが、本発明はこれに限定されるものではなく、タグの検索をパイプライン処理以外の処理によって行う場合にも同様に適用することができる。
また、本実施例では、主記憶装置が連続した複数のキャッシュラインを連続的に処理することにより、キャッシュメモリと主記憶装置間の転送スループットを向上させる機能を有する場合について説明した。しかしながら、本発明はこれに限定されるものではなく、主記憶装置の構成により、所定の条件を満たす複数のキャッシュラインの要求を連続的に処理することにより転送スループットを向上させる機能を有する場合にも同様に適用することができる。この場合、展開要求は、所定の条件を満たす複数のキャッシュラインへの要求に展開される。
また、本実施例では、2次キャッシュメモリ装置について説明したが、本発明はこれに限定されるものではなく、他の階層レベルのキャッシュメモリ装置にも同様に適用することができる。
1 CPU
2 DIMM
10 CPUコアユニット
11 L1命令キャッシュメモリ
12 命令デコード/発行部
13 L1データキャッシュメモリ
14 ALU
15 MMU
16 L1−MIB
17 PFQ
18 MOB
19a 命令フェッチパイプ
19b ロード/ストアパイプ
19c 実行パイプ
20 共用L2キャッシュユニット
21 MOポート
22 MIポート
23 L2−パイプ
24 L2−データ記憶部
25 L2−タグ記憶部
26 L2−MIB
27 MAC
28 Move−inデータパスバッファ/制御部
29 Move−outデータパスバッファ/制御部
100 PFポート
110 要求記憶部
120 設定エントリ選択部
130 空エントリ選択部
140 PFポートエントリ選択部
150 エントリ有効信号
151 OR回路
152 AND回路
200 パイプ投入部
300 L2−パイプライン制御部
301 資源管理部

Claims (9)

  1. 主記憶装置に接続される演算処理装置において、
    データをそれぞれ保持する複数のキャッシュラインを有するキャッシュメモリと、
    前記キャッシュメモリの連続する複数のキャッシュラインに対する複数のアクセス要求を互いに関連付けて保持する要求保持部と、
    前記関連付けられた複数のアクセス要求を、前記主記憶装置に対して連続して発行する制御部と、
    前記連続して発行された複数のアクセス要求に対する前記主記憶装置からの複数の応答データを、前記キャッシュメモリの連続するキャッシュラインに登録する処理部を有することを特徴とする演算処理装置。
  2. 前記演算処理装置において、
    前記関連付けられたアクセス要求は、前記キャッシュラインのアドレス範囲を指示することを特徴とする請求項1記載の演算処理装置。
  3. 前記演算処理装置はさらに、
    前記キャッシュメモリの複数のキャッシュラインのタグ情報を保持するタグ保持部を有し、
    前記制御部は、前記アクセス要求に含まれたアドレスから前記タグ保持部に保持されたタグ情報を検索し、前記タグ情報を検索した結果に基づき、前記関連付けられた複数のアクセス要求を前記主記憶装置に対して連続して発行することを特徴とする請求項1又は2記載の演算処理装置。
  4. 前記演算処理装置において、
    前記制御部は、前記要求保持部が関連付けて保持する複数のアクセス要求に前記処理部が中断した要求が含まれる場合、前記中断の原因が解消されたとき、前記中断したアクセス要求に対するタグ情報の再検索を、他のアクセス要求よりも優先して行うことを特徴とする請求項3記載の演算処理装置。
  5. 前記演算処理装置において、
    前記処理部は、連続して発行された複数のアクセス要求に対する前記主記憶装置からの複数の応答データを保持するデータ保持部を有し、
    前記制御部は、前記要求保持部が関連付けて保持する複数のアクセス要求に対応するデータを前記処理部のデータ保持部に全て保持できる場合にのみ、前記関連付けられた複数のアクセス要求を、前記主記憶装置に対して連続して発行することを特徴とする請求項1記載の演算処理装置。
  6. 前記演算処理装置において、
    前記要求保持部が関連付けて保持するアクセス要求は、複数のキャッシュラインをプリフェッチする1つの命令から生成されることを特徴とする請求項1記載の演算処理装置。
  7. 前記演算処理装置において、
    前記要求保持部が関連付けて保持する複数のアクセス要求の対象である複数のキャッシュラインは、同一のメモリバンクに含まれることを特徴とする請求項1記載の演算処理装置。
  8. 主記憶装置と前記主記憶装置に接続される演算処理装置を有する情報処理装置において、
    前記演算処理装置は、
    データをそれぞれ保持する複数のキャッシュラインを有するキャッシュメモリと、
    前記複数のキャッシュラインのうち連続するキャッシュラインに対する複数のアクセス要求を関連付けて保持する要求保持部と、
    前記関連付けられた複数のアクセス要求を、前記主記憶装置に対して連続して発行する制御部と、
    前記連続して発行された複数のアクセス要求に対する前記主記憶装置からの複数の応答データを、前記キャッシュメモリの連続するキャッシュラインに登録する処理部を有することを特徴とする情報処理装置。
  9. 主記憶装置に接続される演算処理装置の制御方法において、
    データをそれぞれ保持する複数のキャッシュラインを有するキャッシュメモリと、
    前記演算処理装置が有する要求保持部に互いに関連づけられて保持された、複数のキャッシュラインを有するキャッシュメモリの連続するキャッシュラインに対する複数のアクセス要求を、前記演算処理装置の有する制御部が前記主記憶装置に対して連続して発行するステップと、
    前記演算処理装置が有する処理部が、前記連続して発行された複数のアクセス要求に対する前記主記憶装置からの複数の応答データを、前記キャッシュメモリの連続するキャッシュラインに登録するステップを有することを特徴とする演算処理装置の制御方法。
JP2013505698A 2011-03-22 2011-03-22 演算処理装置、情報処理装置及び演算処理装置の制御方法 Expired - Fee Related JP5630568B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2011/056846 WO2012127628A1 (ja) 2011-03-22 2011-03-22 演算処理装置、情報処理装置及び演算処理装置の制御方法

Publications (2)

Publication Number Publication Date
JPWO2012127628A1 JPWO2012127628A1 (ja) 2014-07-24
JP5630568B2 true JP5630568B2 (ja) 2014-11-26

Family

ID=46878821

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013505698A Expired - Fee Related JP5630568B2 (ja) 2011-03-22 2011-03-22 演算処理装置、情報処理装置及び演算処理装置の制御方法

Country Status (4)

Country Link
US (1) US20140019690A1 (ja)
EP (1) EP2690561A4 (ja)
JP (1) JP5630568B2 (ja)
WO (1) WO2012127628A1 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6260303B2 (ja) * 2014-01-29 2018-01-17 富士通株式会社 演算処理装置及び演算処理装置の制御方法
KR102402672B1 (ko) * 2015-09-01 2022-05-26 삼성전자주식회사 컴퓨팅 시스템 및 컴퓨팅 시스템에서 연산들을 처리하는 방법
JP6770230B2 (ja) * 2016-09-30 2020-10-14 富士通株式会社 演算処理装置、情報処理装置及び演算処理装置の制御方法
JP6947974B2 (ja) 2017-09-13 2021-10-13 富士通株式会社 演算処理装置及び演算処理装置の制御方法
US11294810B2 (en) * 2017-12-12 2022-04-05 Advanced Micro Devices, Inc. Memory request throttling to constrain memory bandwidth utilization

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1124984A (ja) * 1997-05-02 1999-01-29 Matsushita Electric Ind Co Ltd 複数アドレス保持記憶装置
JP2000242545A (ja) * 1999-02-08 2000-09-08 Sun Microsyst Inc データ処理システムにおいてメモリ・アクセス要求を処理するための装置および方法
JP2000259497A (ja) * 1999-03-12 2000-09-22 Fujitsu Ltd メモリコントローラ
JP2006260472A (ja) * 2005-03-18 2006-09-28 Matsushita Electric Ind Co Ltd メモリアクセス装置
WO2009104240A1 (ja) * 2008-02-18 2009-08-27 富士通株式会社 演算処理装置および演算処理装置の制御方法

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2685484B2 (ja) 1988-04-13 1997-12-03 株式会社日立製作所 記憶制御方式
JPH05143448A (ja) 1991-11-19 1993-06-11 Yokogawa Electric Corp メモリ制御装置
US5423048A (en) * 1992-08-27 1995-06-06 Northern Telecom Limited Branch target tagging
JP3717212B2 (ja) * 1995-10-27 2005-11-16 株式会社日立製作所 情報処理装置及び情報処理ユニット
US6898679B2 (en) * 2001-09-28 2005-05-24 Intel Corporation Method and apparatus for reordering memory requests for page coherency
US7610433B2 (en) * 2004-02-05 2009-10-27 Research In Motion Limited Memory controller interface
US7493451B2 (en) * 2006-06-15 2009-02-17 P.A. Semi, Inc. Prefetch unit
US8032711B2 (en) * 2006-12-22 2011-10-04 Intel Corporation Prefetching from dynamic random access memory to a static random access memory
US7836262B2 (en) * 2007-06-05 2010-11-16 Apple Inc. Converting victim writeback to a fill
US7539844B1 (en) * 2008-06-24 2009-05-26 International Business Machines Corporation Prefetching indirect array accesses
JP5444889B2 (ja) * 2009-06-30 2014-03-19 富士通株式会社 演算処理装置および演算処理装置の制御方法
US8341380B2 (en) * 2009-09-22 2012-12-25 Nvidia Corporation Efficient memory translator with variable size cache line coverage

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1124984A (ja) * 1997-05-02 1999-01-29 Matsushita Electric Ind Co Ltd 複数アドレス保持記憶装置
JP2000242545A (ja) * 1999-02-08 2000-09-08 Sun Microsyst Inc データ処理システムにおいてメモリ・アクセス要求を処理するための装置および方法
JP2000259497A (ja) * 1999-03-12 2000-09-22 Fujitsu Ltd メモリコントローラ
JP2006260472A (ja) * 2005-03-18 2006-09-28 Matsushita Electric Ind Co Ltd メモリアクセス装置
WO2009104240A1 (ja) * 2008-02-18 2009-08-27 富士通株式会社 演算処理装置および演算処理装置の制御方法

Also Published As

Publication number Publication date
JPWO2012127628A1 (ja) 2014-07-24
EP2690561A4 (en) 2014-12-31
WO2012127628A1 (ja) 2012-09-27
EP2690561A1 (en) 2014-01-29
US20140019690A1 (en) 2014-01-16

Similar Documents

Publication Publication Date Title
US10353819B2 (en) Next line prefetchers employing initial high prefetch prediction confidence states for throttling next line prefetches in a processor-based system
US8370575B2 (en) Optimized software cache lookup for SIMD architectures
US10877901B2 (en) Method and apparatus for utilizing proxy identifiers for merging of store operations
US6321326B1 (en) Prefetch instruction specifying destination functional unit and read/write access mode
US20120260056A1 (en) Processor
US20140095847A1 (en) Instruction and highly efficient micro-architecture to enable instant context switch for user-level threading
KR20120070584A (ko) 데이터 스트림에 대한 저장 인식 프리페치
CN111213131B (zh) 高速缓存器中的零时延预提取
JP5630568B2 (ja) 演算処理装置、情報処理装置及び演算処理装置の制御方法
US11372647B2 (en) Pipelines for secure multithread execution
EP4025998B1 (en) Swapping and restoring context-specific branch predictor states on context switches in a processor
GB2545061A (en) Cache sparing
JP5625809B2 (ja) 演算処理装置、情報処理装置及び制御方法
CN106557304B (zh) 用于预测子程序返回指令的目标的取指单元
US9298634B2 (en) Client spatial locality through the use of virtual request trackers
US11327768B2 (en) Arithmetic processing apparatus and memory apparatus
US20030182539A1 (en) Storing execution results of mispredicted paths in a superscalar computer processor
US11500779B1 (en) Vector prefetching for computing systems
CN112395000B (zh) 一种数据预加载方法和指令处理装置
JP6016689B2 (ja) 半導体装置
US7085887B2 (en) Processor and processor method of operation
US11379379B1 (en) Differential cache block sizing for computing systems
US11379368B1 (en) External way allocation circuitry for processor cores
US11663130B1 (en) Cache replacement mechanisms for speculative execution
US11822652B1 (en) Prime and probe attack mitigation

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140520

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140717

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140922

R150 Certificate of patent or registration of utility model

Ref document number: 5630568

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees