JP2017191503A - 演算処理装置、および演算処理装置の制御方法 - Google Patents

演算処理装置、および演算処理装置の制御方法 Download PDF

Info

Publication number
JP2017191503A
JP2017191503A JP2016081294A JP2016081294A JP2017191503A JP 2017191503 A JP2017191503 A JP 2017191503A JP 2016081294 A JP2016081294 A JP 2016081294A JP 2016081294 A JP2016081294 A JP 2016081294A JP 2017191503 A JP2017191503 A JP 2017191503A
Authority
JP
Japan
Prior art keywords
prefetch
cache memory
unit
cache
suppression
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2016081294A
Other languages
English (en)
Other versions
JP6627629B2 (ja
Inventor
周史 山村
Shuji Yamamura
周史 山村
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 JP2016081294A priority Critical patent/JP6627629B2/ja
Priority to US15/465,674 priority patent/US10031852B2/en
Publication of JP2017191503A publication Critical patent/JP2017191503A/ja
Application granted granted Critical
Publication of JP6627629B2 publication Critical patent/JP6627629B2/ja
Active 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/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0811Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • G06F9/30043LOAD or STORE instructions; Clear instruction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3802Instruction prefetching
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3824Operand accessing
    • G06F9/383Operand prefetching
    • 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/1016Performance improvement
    • G06F2212/1021Hit rate improvement
    • 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/602Details relating to cache prefetching
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/62Details of cache specific to multiprocessor cache arrangements
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

【課題】効率向上の効果が薄いプリフェッチの要求を抑止し、キャッシュメモリにおけるプロセッサの処理効率を向上させる。
【解決手段】演算処理装置は、主記憶装置のデータを1次キャッシュメモリにプリフェッチするプリフェッチ要求を下位のキャッシュメモリに送出するプリフェッチ部を有する。また、演算処理装置は、プリフェッチ部からのプリフェッチ要求に対して応答する応答処理の実行時にプリフェッチ要求対象のデータが前記下位のキャッシュメモリに保持されていることが検出されたヒット回数を計数する計数部を有する。さらに、演算処理装置は、計数されたヒット回数が閾値に達したときにプリフェッチ部によるプリフェッチ要求の送出を抑止する抑止部を有する。
【選択図】図4

Description

本発明は、演算処理装置、および演算処理装置の制御方法に関する。
従来から、プリフェッチの精度を向上させるためのアルゴリズムの研究が行われている。特に、ハードウェアによって自動的に生成したプリフェッチアドレスに対してプリフェッチを要求する回路はハードウェアプリフェッチ回路と呼ばれる。ハードウェアプリフェッチ回路は、プロセッサが発行するメモリアクセスのアドレスに規則性があることを命令実行時に検出し、近い将来アクセスされると予測されるデータに対してプリフェッチ要求を生成する。従来から使用されている手法として、ハードウェアプリフェッチ回路が連続アドレスへのアクセスや、「ストライド」と呼ばれる一定間隔のアドレスを検出して、次にアクセスされるアドレスを推測してプリフェッチ要求を生成するものが例示される。この例示された従来の手法は、「ストライドプリフェッチ」と呼ばれる。しかし、従来のプリフェッチ手法は、次にアクセスされるアドレスの傾向(アドレスのパターン)を見つけた後は、プリフェッチを継続的に生成してしまう。その結果として、そのプリフェッチ要求の対象アドレスのデータが継続してキャッシュでヒットすることがある。
特開2014-115851号公報 特開2009-59077号公報 特開平4-344935号公報
プロセッサにおけるプリフェッチは、予めアクセスされると予測されるデータをフェッチしておくことにより、メモリアクセスレイテンシを隠蔽することで性能向上を図る手法である。しかし、ハードウェアプリフェッチ回路は、キャッシュでヒットするアドレスをプリフェッチ要求の対象として繰り返し生成することがある。キャッシュヒットするアドレスは、本来はプリフェッチしなくてもよいアドレスといえる。したがって、キャッシュでヒットするアドレスに対するプリフェッチ要求は、無駄な処理を含み、効率向上の効果が薄いプリフェッチ要求であるといえる。
効率向上の効果が薄いプリフェッチであっても、キャッシュメモリ内の制御パイプラインに投入される。したがって、効率向上の効果が薄いプリフェッチは、制御パイプラインを動作させるため、無駄な電力を消費するとともに、他の有用な要求が制御パイプラインに投入できないように作用する。したがって、効率向上の効果が薄いプリフェッチは、プロセッサの性能低下の要因となる可能性がある。
そこで、開示の実施形態の目的は、効率向上の効果が薄いプリフェッチの要求を抑止し、キャッシュメモリにおけるプロセッサの処理効率の向上を図ることにある。
開示の技術の一側面は、演算処理装置によって例示される。本演算処理装置は、主記憶装置のデータを1次キャッシュメモリにプリフェッチするプリフェッチ要求を下位のキャッシュメモリに送出するプリフェッチ部を有する。また、本演算処理装置は、プリフェッチ部からのプリフェッチ要求に対して応答する応答処理の実行時にプリフェッチ要求対象のデータが前記下位のキャッシュメモリに保持されていることが検出されたヒット回数を
計数する計数部を有する。さらに、本演算処理装置は、計数されたヒット回数が閾値に達したときにプリフェッチ部によるプリフェッチ要求の送出を抑止する抑止部を有する。
本演算処理装置によれば、効率向上の効果が薄いプリフェッチの要求を抑止し、キャッシュメモリにおけるプロセッサの処理効率を向上することができる。
実施形態1に係る情報処理装置の構成を例示する図である。 メモリアクセス要求のフォーマットを例示する図である。 2次キャッシュ制御パイプライン23の構成を例示する図である。 プリフェッチ抑止ユニットの構成を例示する図である。 ヒットカウンタの構成を例示する図である。 閾値レジスタの構成を例示する図である。 閾値テーブルの構成を例示する図である。 プリフェッチ抑止ユニットの状態遷移をタイミングチャートで例示する図である。 2次キャッシュ制御パイプラインおよびプリフェッチ抑止ユニットの処理を例示するフローチャートである。 実施形態2に係る情報処理装置の構成を例示する図である。 変形例に係るプリフェッチ抑止ユニットの構成を例示する図である。
以下、図面を参照して、一実施の形態に係る情報処理装置100、101について説明する。以下の実施の形態の構成は例示であり、情報処理装置100、101は実施形態の構成には限定されない。本実施の形態では、キャッシュメモリへのデータのプリフェッチを実行可能なプロセッサにおいて、性能向上の効果が少ない無駄なプリフェッチ要求を削減する。これにより、キャッシュメモリにおける性能向上の効果が少ない動作を抑制できるため、電力の削減および性能の向上といった効果が得られる。
ハードウェア回路によるプリフェッチは、メモリアクセス要求のアドレスの特性、傾向を自動的に識別してプリフェッチアドレスを生成する。ところで、プリフェッチアドレスのキャッシュヒットが一度連続すると、その後のプリフェッチにおいても、プリフェッチアドレスがキャッシュヒットする傾向がある。これは、情報処理装置の処理が以前に行ったアクセスパターンを繰り返すことが多いためである。つまり、予測されたプリフェッチアドレスと、キャッシュされるデータのアドレスとが同じアクセスパターンを繰り返すこととなる。したがって、プリフェッチ要求の対象データがすでにキャッシュメモリにキャッシュされている現象が繰り返されることがある。以下、本実施の形態の情報処理装置100、101は、このような傾向や現象を利用して性能向上の効果が少ないプリフェッチ要求を抑止する。
[実施形態1]
以下、図1から図9を参照して実施形態1に係る情報処理装置100について説明する。図1に、情報処理装置100の構成を例示する。情報処理装置100は、プロセッサ10と、2次キャッシュメモリユニット20と、主記憶装置90を有する。図では、2次キャッシュメモリユニット20が、外付けでプロセッサ10に接続されている。しかし、情報処理装置100の構成が図1に限定される訳ではない。例えば、プロセッサ10が、2次キャッシュメモリユニット20の構成要素を内蔵する構成であってもよい。プロセッサ10は演算処理装置の一例ということができる。ただし、プロセッサ10と下位のキャッシュメモリである2次キャッシュメモリユニット20を演算処理装置の一例ということも
できる。以下の実施例では、演算処理装置の構成と作用、および演算処理装置の制御方法が例示される。
図1の例では、プロセッサ10は、命令制御部11と、ロード/ストア(LD/ST)ユニット12と、1次キャッシュメモリ13と、プリフェッチユニット14とを有する。命令制御部11は、命令フェッチ、デコード、オペランドフェッチ(データのロード)、命令の実行、実行結果のストア等の処理を制御する。
LD/STユニット12は、ロード処理とストア処理を実行する。ロード処理は、1次キャッシュメモリ13および2次キャッシュメモリユニット20等を介した主記憶装置90からレジスタへのデータの読み出し処理である。ストア処理は、レジスタから1次キャッシュメモリ13および2次キャッシュメモリユニット20等を介した主記憶装置90へのデータの格納である。ただし、1次キャッシュメモリ13でミスヒットが発生した場合に、LD/STユニット12は、2次キャッシュメモリユニット20のFirst IN
First OUT(FIFO)22の入力ポートにデータ読み出し要求を発行し、1次キャッシュメモリ13にデータを保持させる。
プリフェッチユニット14は、プリフェッチ要求を2次キャッシュメモリユニット20に発行する。プリフェッチ要求は主記憶装置90に格納されたデータの1次キャッシュメモリ13への取得を明示的に下位の記憶装置、例えば、2次キャッシュメモリユニット20あるいは主記憶装置90に指示する要求といえる。プリフェッチユニット14はLD/STユニット12に併設されており、命令制御部11からLD/STユニット12に発行されるメモリアクセス要求(ロード命令、ストア命令等)のアドレスを監視する。メモリアクセスの対象となるアドレスが所定の規則性を有していることをプリフェッチユニット14が検出した場合、プリフェッチユニット14は将来アクセスが発生すると推測されるアドレスを生成する。そして、プリフェッチユニット14は、生成したアドレスを含むメモリアクセス要求を2次キャッシュメモリユニット20に対して発行する。2次キャッシュメモリユニット20は、LD/STユニット12およびプリフェッチユニット14からのメモリアクセス要求を受け付けるFIFO22、2次キャッシュ制御パイプライン23、キャッシュタグ Random Access Memory(RAM)21、プリフェッチ抑止ユニット24を有する。なお、図1では、2次キャッシュメモリユニットで、主記憶装置90のデータを保持するキャッシュデータRAMは省略されているが、キャッシュタグRAM21に対応づけて設けられる。プリフェッチユニット14はプリフェッチ部の一例である。2次キャッシュメモリユニット20は、1次キャッシュメモリ13と主記憶装置90との間でデータ授受する下位のキャッシュメモリの一例である。
図2に、プリフェッチユニット14が発行するメモリアクセス要求のフォーマットを例示する。プリフェッチユニット14が発行するメモリアクセス要求は、アドレス32ビットと、プリフェッチフラグ1ビットを有する。アドレス32ビットは、主記憶装置90におけるアクセス先のアドレスである。プリフェッチフラグは、メモリアクセス要求がプリフェッチ要求であるか否かを示す。メモリアクセス要求がプリフェッチユニット14から発行されたものである場合、メモリアクセス要求において、プリフェッチフラグがONにセットされる。
FIFO22は入力ポートを介してプロセッサ10からの要求を受け付け、格納する。2次キャッシュ制御パイプライン23はFIFO22から順次メモリアクセス要求を取得し、メモリアクセス要求に対応する処理を実行する。
図3に、2次キャッシュ制御パイプライン23の構成を例示する。図3では、プロセッサ10、FIFO22、キャッシュタグRAM21も例示されている。図のように、2次
キャッシュ制御パイプライン23は、タグ検索回路231、タグ比較器232、およびバッファ233を有する。
例えば、2次キャッシュメモリユニット20がセットアソシアティブ方式を採用する場合に、以下のような制御が実行される。ただし、本実施形態1において、2次キャッシュメモリユニット20がセットアソシアティブ方式のものに限定される訳ではなく、フルアソシアティブ方式、ダイレクトマッピング方式のものであってもよい。
タグ検索回路231は、メモリアクセス要求のアドレスの一部(下位アドレス)によって、キャッシュタグRAM21のセットを特定し、セット内のタグ(上位アドレス)を検索する。そして、タグ検索回路231は、検索された上位アドレスと、下位アドレスとを組み合わせてキャッシュタグRAM21から得られるアドレスを生成し、タグ比較器232に出力する。タグ比較器232は、タグ検索回路231で生成されたアドレスと、FIFO22からのメモリアクセス要求のアドレスとが一致するか否かを判定する。この判定によって、タグ比較器232は、キャッシュがヒットするか否かを判定する。キャッシュがヒットすれば、タグ比較器232は、キャッシュデータの読み出し回路に対してバッファ233へのキャッシュデータの取得を指示し、バッファ233に取得されたデータがプロセッサ10に返される。一方、キャッシュがヒットしなければタグ比較器232は、主記憶装置90の読み出し回路に、主記憶装置90へのデータの読み出し要求の発行を指示する。主記憶装置90から読み出されたデータは、バッファ233を介して、図示しないキャッシュデータRAMに保持されるととともに、プロセッサ10に送出される。
さらに、2次キャッシュ制御パイプライン23は、メモリアクセス要求に含まれるプリフェッチフラグ信号PFと、キャッシュがヒットしたか否かを示すキャッシュヒット信号CHをプリフェッチ抑止ユニット24に送出する。なお、プリフェッチフラグ信号PFは、FIFO22のアクセス要求からそのままコピーされ、図3のプリフェッチ抑止ユニット24に送出される。
以上のように、2次キャッシュ制御パイプライン23は、キャッシュタグRAM21のタグの読み出し、読み出したタグとメモリアクセス要求のアドレスとの比較をパイプラインで実行する。そして、比較結果として、キャッシュヒット信号CHをメモリアクセス要求に含まれるプリフェッチフラグ信号PFとともにプリフェッチ抑止ユニット24に出力する。
図4に、プリフェッチ抑止ユニット24の構成を例示する。プリフェッチ抑止ユニット24は、ANDゲート241と、ヒットカウンタ242と、閾値レジスタ243と、比較器244と、プリフェッチ抑止信号生成部245と、タイマー246とを有する。図4のように、プリフェッチ抑止ユニット24からプリフェッチユニット14に対して、抑止指示信号の信号線が接続されている。
ANDゲート241には、プリフェッチフラグ信号PFとキャッシュヒット信号CHとが入力される。ANDゲート241による入力の積信号は、ヒットカウンタ242をインクリメントする。すなわち、キャッシュヒット信号CHとプリフェッチフラグ信号PFがともにON(真)のときに、ヒットカウンタ242はカウントアップされる。したがって、ヒットカウンタ242は、2次キャッシュ制御パイプライン23がプリフェッチ要求に応答する処理の実行する時に、2次キャッシュメモリユニット20でプリフェッチ要求対象のデータのヒット回数を計数する計数部の一例といえる。すなわち、実施形態1では、計数部の一例としてヒットカウンタ242は2次キャッシュメモリでのヒット回数を計数する。ここで、ヒットとは、メモリアクセス要求の対象となるデータが2次キャッシュメモリ等のキャッシュメモリに保持されていることとして例示される。また、命令制御部1
1、LD/STユニット12、1次キャッシュメモリ13、およびプリフェッチユニット14を含むプロセッサ10を上位装置とすると、2次キャッシュメモリユニット20は下位のキャッシュメモリということができる。
閾値レジスタ243には、所定の閾値が格納されている。比較器244は、ヒットカウンタ242の値と閾値レジスタ243の値を比較する。そして、ヒットカウンタ242の値が閾値レジスタ243によって指定される値と一致すると、比較器244は、プリフェッチ抑止信号生成部245にプリフェッチ抑止信号の出力を指示するとともに、タイマー246を起動させる。なお、実施形態1では、閾値レジスタ243は,実際には閾値を複数格納した閾値テーブルから読み出された閾値を出力する。ただし、閾値テーブルを用いないで、閾値レジスタ243が直接閾値を保持するようにしてもよい。
その後、タイマー246が所定時間計時するまで、プリフェッチ抑止信号生成部245は、プリフェッチユニット14へのプリフェッチ抑止信号をアサート、例えば、ONに設定する。したがって、プリフェッチ抑止信号がアサートされている間、プリフェッチユニット14からのプリフェッチ要求は抑止される。そして、タイマー246は、クロック信号(CLOCK)にしたがって規定値(規定時間に相当)からカウント値を減算し、カウント値が0になると、プリフェッチ抑止信号生成部245およびヒットカウンタ242をリセットする。
例えば、タイマー246は、プリフェッチ抑止信号生成部245にリセット信号を入力する信号線RS1を有する。また、例えば、タイマー246は、ヒットカウンタ242にリセット信号を入力する信号線RS2を有する。信号線RS1と信号線RS2のリセット信号は、タイマー246の同じ出力インターフェース(信号ポート等)に接続されていてもよい。信号線RS1と信号線RS2は、タイマー246が所定時間の経過を計時したときに抑止回路(プリフェッチ抑止ユニット24、プリフェッチ抑止信号生成部245)による抑止を解除するとともにカウンタ(ヒットカウンタ242)をリセットするリセット部の一例ということができる。タイマー246からのリセット信号により、プリフェッチ抑止信号生成部245はプリフェッチ抑止信号をネゲート、例えばOFFに設定する。また、タイマー246からのリセット信号により、ヒットカウンタ242は初期値0からカウントを開始する。タイマー246は、プリフェッチ要求の送出を抑止したときに起動されるタイマーの一例である。
以上のように、プリフェッチ抑止ユニット24には、2つのステートがある。一のステートはプリフェッチ動作ステートである。プリフェッチ動作ステートは、通常動作としてのプリフェッチを動作させている状態である。この間、プリフェッチ抑止信号はOFFとなっている。また、ヒットカウンタ242は、初期値0から閾値レジスタ243の値になるまで、カウンタ動作を実行する。
一方、他のステートはプリフェッチ抑止ステートである。プリフェッチ抑止ステートは、プリフェッチを停止させている状態である。プリフェッチ抑止ステートでは、プリフェッチ抑止信号がアサートされており、かつ、タイマー246がクロックにしたがって減算動作を実行する。
プロセッサ10が動作開始した後の初期状態は、プリフェッチ動作ステートである。プリフェッチ抑止要求はOFF(偽)となっていて、通常機能としてプリフェッチが有効となっている。プリフェッチ要求が2次キャッシュ制御パイプライン23に投入されると、2次キャッシュ制御パイプライン23およびプリフェッチ抑止ユニット24は以下のような手順で動作する。
(1)2次キャッシュ制御パイプライン23は、キャッシュタグRAM21を参照し、キャッシュヒットしたかどうかを判定する。キャッシュヒットの場合、2次キャッシュ制御パイプライン23は、ヒットデータを1次キャッシュメモリ13に送信するとともに、キャッシュヒット信号CHをプリフェッチ抑止ユニット24に送出する。キャッシュミスの場合、2次キャッシュ制御パイプライン23は、主記憶装置90へのメモリアクセス要求を生成する。2次キャッシュ制御パイプライン23は、主記憶装置90から読み出したデータをキャッシュデータRAMに格納するとともに、1次キャッシュメモリ13に送信する。さらに、2次キャッシュ制御パイプライン23は、プリフェッチフラグ信号PFをプリフェッチ抑止ユニット24に送出する。
(2)プリフェッチ抑止ユニット24は、プリフェッチフラグ信号PFとキャッシュヒット信号CHがともにONの場合に、ヒットカウンタ242をインクリメントする。
(3)プリフェッチ抑止ユニット24は、ヒットカウンタ242の値と閾値レジスタ243の指定値を比較する。ここで、指定値は、閾値レジスタ243の保持する値によって選択される閾値テーブルのエントリに格納された値(図7)をいう。ただし、指定値が、閾値レジスタ243の保持する値そのものであってもよい。ヒットカウンタ242の値が閾値レジスタ243の指定値に達した場合、プリフェッチ抑止ユニット24は、抑止信号をアサートするとともに、タイマー246をスタートする。以降、プリフェッチ抑止ユニット24の状態はプリフェッチ抑止ステートとなる。
(4)そして、タイマー246が計時を終了すると、プリフェッチ抑止ユニット24は、抑止信号をネゲートし、プリフェッチ動作ステートとなる。また、ヒットカウンタ242がリセットされる。
図5にヒットカウンタ242の構成を例示する。ヒットカウンタは、例えば、12−bit幅を持ち、最大4095までをカウントすることができる。図6に閾値レジスタ243の構成を例示する。実施形態1では、閾値レジスタ243は、間接的に閾値テーブルを参照する。閾値テーブルには複数の値が格納されている。そして、閾値レジスタ243は、ヒットカウンタ242の値と閾値テーブルのどの値と比較するかを制御するために使用する。すなわち、実施形態1では、比較器244が参照する実際の閾値は、閾値レジスタ243に設定された3−bitの値で指定される閾値テーブルのエントリに格納されている。閾値レジスタ243は、例えば、図示しないセレクタに選択信号を送り、閾値テーブル中で選択されたエントリから閾値を比較器244に出力する。情報処理装置100が実行するアプリケーションプログラムによって、プリフェッチの頻度などが異なるため、実施形態1のプリフェッチ抑止ユニット24では、閾値がシステム起動時にコンピュータプログラムで選択可能となっている。ヒットカウンタ242が閾値レジスタ243で指定された閾値テーブルのエントリの閾値に達すると、プリフェッチ抑止ユニット24は、プリフェッチ抑止ステートに遷移して、プリフェッチの抑止を開始する。プリフェッチ抑止ユニット24は、プリフェッチの抑止を開始するとともに、タイマー246をスタートする。
タイマー246は、例えば、図4のヒットカウンタ242と同様12ビットのカウンタである。ただし、タイマー246は、クロックを入力され、初期値から減算(デクリメント)を実行する。タイマー246は、プリフェッチ抑止ステートに遷移した後、以下のような動作を行う。タイマー246は、クロックにしたがって毎サイクルカウントダウンする。タイマー246は値が0になると、プリフェッチ抑止信号生成部245およびヒットカウンタ242をリセットする。
図8に、プリフェッチ抑止ユニット24の状態遷移をタイミングチャートで例示する。
ステートがACTIVEからINACTIVEに遷移したと同時にINACTIVE_CNTが例えば値3にセットされる(矢印T1)。クロックパルスが発生する毎にこのカウンタがデクリメントされ、0になった時点(矢印T2)でACTIVEステートに遷移する。プリフェッチ抑止ユニット24あるいはプリフェッチ抑止信号生成部245は、計数されたヒット回数が閾値に達したときにプリフェッチ回路(プリフェッチユニット14)によるプリフェッチ要求の送出を抑止する抑止部の一例ということができる。
図9に2次キャッシュ制御パイプライン23およびプリフェッチ抑止ユニット24の処理を例示する。図9は、フローチャートで例示さているが、これらの処理はハードウェア回路によって実行される。まず、2次キャッシュ制御パイプライン23にプリフェッチ要求が到着する(S1)。より具体的には、2次キャッシュ制御パイプライン23は、FIFO22からプリフェッチ要求を取り出す。S1の処理は、リフェッチ要求を下位のキャッシュメモリで受け付けることの一例である。
次に、2次キャッシュ制御パイプライン23は、プリフェッチによるアクセスを識別し、キャッシュヒットの有無を判定する(S2)。キャッシュヒットの場合、キャッシュヒット信号CHとともにプリフェッチフラグ信号PFがプリフェッチ抑止ユニット24に入力される。プリフェッチ抑止ユニット24は、キャッシュヒット信号CHとプリフェッチフラグ信号PFの積信号でヒットカウンタ242をインクリメントする。すなわち、プリフェッチ抑止ユニット24は、プリフェッチ要求がキャッシュヒットした回数をカウントする(S3)。S3の処理は、受け付けたプリフェッチ要求に対して応答する応答処理の実行時にプリフェッチ要求対象のデータが下位のキャッシュメモリに保持されていることが検出されたヒット回数を計数することの一例である。
次に、プリフェッチ抑止ユニット24は、ヒットカウンタ242の値が設定された閾値に達したか否かを判定する(S4)。なお、S4の判定で、ヒットカウンタ242の値が設定された閾値を超えたか否かを判定してもよい。ヒットカウンタ242の値が閾値を達した場合(S4でYES)、プリフェッチ抑止ユニット24は、プリフェッチユニット14に対してプリフェッチ要求の発行抑止を指示する(S5)。S5の処理は、計数されたヒット回数が閾値に達したときにプリフェッチ要求の送出を抑止することの一例である。また、プリフェッチ抑止ユニット24は、タイマー246をスタートする(S6)。この結果、一定時間後、プリフェッチ要求の発行抑止が解除され、ヒットカウンタ242が0からカウントを再開する。この処理を繰り返すことで、無駄なプリフェッチ、あるいは、データをプリフェッチすることの効果が少ないプリフェッチを削減することが可能となる。
なお、2次キャッシュ制御パイプライン23は、プリフェッチユニット14に、プリフェッチしたデータを返す(S8)。また、S2の判定で、キャッシュヒットしなかった場合には、2次キャッシュ制御パイプライン23は、主記憶装置90へメモリアクセス要求を発行する(S7)。そして、主記憶装置90から読み出したデータを2次キャッシュメモリユニット20(キャッシュデータRAM)に格納するとともに、プリフェッチユニット14に読み出したデータを返す。以上の動作により、キャッシュヒットが多く発生するときの無駄なプリフェッチを抑止することができる。
<実施形態1の効果>
実施形態の情報処理装置100によれば、プリフェッチ要求がキャッシュメモリに対して集中して発生した場合に、2次キャッシュメモリにヒットする無駄なプリフェッチ、あるいは効果が少ないプリフェッチが抑止される。このため、キャッシュメモリで消費する電力を削減する効果がある。同時に、FIFO22を通じて2次キャッシュ制御パイプライン23に入力されるメモリアクセス要求を処理できるようになるため、メモリアクセス
性能を含むプロセッサ10の性能が向上する。
本実施形態の効果は、近年、複数の階層からなるキャッシュメモリを装備したプロセッサの場合には顕著になって現れる。通常、ハードウェアプリフェッチのアクセス先アドレスは、命令制御部11に近いところ、例えば、図1のようにプロセッサ10内でLD/STユニット12に併設したプリフェッチユニット14で生成される。そのため、プリフェッチユニット14は、2次キャッシュのキャッシュタグを直接参照することはできない。そのため、プリフェッチユニット14は、2次キャッシュでキャッシュヒットするアドレスを不要に多数生成してしまう。実施形態1の情報処理装置100は、そのようなキャッシュヒットするアドレスへの不要なプリフェッチ、効果の少ないプリフェッチを抑止できる。
また、プリフェッチ対象のアドレスが一旦キャッシュヒットすると、キャッシュヒットが継続する傾向がある。したがって、プリフェッチ対象のアドレスがキャッシュヒットするヒット回数を計数し、計数値が閾値に達したときに、プリフェッチを抑止することで、無駄なプリフェッチあるいは効果の少ないプリフェッチを低減できる。
特に、2次キャッシュメモリユニット20が主記憶装置90からデータ取得する場合と比較して、1次キャッシュメモリ13が2次キャッシュメモリユニット20からデータを取得する方が読み出し時間が短い。したがって、プリフェッチ要求対象のデータが2次キャッシュメモリユニット20でヒットすると、プリフェッチの効果が少ないといえる。したがって、キャッシュの階層が2階層の場合には、プリフェッチ抑止ユニット24は、2次キャッシュメモリユニット20のキャッシュヒットを監視する方が、1次キャッシュメモリ13のキャッシュヒットを監視するよりもプリフェッチ抑止の効果大きい。
一方、タイマー246により、プリフェッチ抑止後の時間を計時し、タイマー246が所定時間経過にプリフェッチ抑止を解除することで、本来のプリフェッチの抑止する場合と、実行場合とのバランスをとることができる。すなわち、プリフェッチ抑止ユニット24は、プリフェッチ抑止ステートからプリフェッチ動作ステートへの遷移を実行できる。[実施形態2]
図10により、実施形態2に係る情報処理装置101を説明する。実施形態2の情報処理装置101は、2次キャッシュメモリユニット20に加えて、3次キャッシュメモリユニット30を有する。情報処理装置101の3次キャッシュメモリユニット30以外の構成要素は、実施形態1の情報処理装置100と同様である。そこで、実施形態2の情報処理装置101の構成要素のうち、実施形態1の情報処理装置100の構成要素と同一の構成要素については、同一の符合を付してその説明を省略する。ただし、図10では、2次キャッシュメモリユニット20の構成は、簡略化して例示されている。すなわち、図10では、2次キャッシュ制御パイプライン23以外の2次キャッシュメモリユニット20の構成は省略されている。
図のように、3次キャッシュメモリユニット30は、キャッシュTAG RAM 31と、FIFO32と、3次キャッシュ制御パイプライン33と、プリフェッチ抑止ユニット34を有している。キャッシュTAG RAM 31、FIFO32、3次キャッシュ制御パイプライン33、プリフェッチ抑止ユニット34の構成および作用は、図1のキャッシュTAG RAM 21、FIFO22、2次キャッシュ制御パイプライン23、およびプリフェッチ抑止ユニット24の構成と同様である。プロセッサ10、下位のキャッシュメモリである2次キャッシュメモリユニット20、および3次キャッシュメモリユニット30を演算処理装置の一例ということもできる。以下、実施形態2においても、演算処理装置の構成と作用、および演算処理装置の制御方法が例示される。
FIFO32は入力ポートを介して、2次キャッシュメモリユニット20の2次キャッシュ制御パイプライン23からメモリアクセス要求を受け付ける。メモリアクセス要求がプリフェッチユニット14から発行されたものである場合、図2と同様に、プリフェッチフラグが付与されている。3次キャッシュ制御パイプライン33は、キャッシュタグ RAMがヒットするか否かを判定し、ヒットする場合には、キャッシュヒット信号CHをONでプリフェッチ抑止ユニット34に出力する。なお、キャッシュタグ RAMがヒットしない場合、3次キャッシュ制御パイプライン33は、主記憶装置90にアクセスし、データを読み出す。また、3次キャッシュ制御パイプライン33は、プリフェッチフラグ信号PFをプリフェッチ抑止ユニット34に出力する。
プリフェッチ抑止ユニット34の構成は、図4と同様である。プリフェッチ抑止ユニット34は、プリフェッチフラグ信号PFがONで、かつ、キャッシュヒット信号CHがONの回数を計数する。そして、計数値が閾値に達すると、プリフェッチ抑止ユニット34は、プリフェッチ抑止信号をアサートし、プリフェッチユニット14からのプリフェッチを所定期間抑止する。
以上述べたように、本実施形態の情報処理装置101は、1次キャッシュメモリ13、2次キャッシュメモリユニット20、3次キャッシュメモリユニット30を有する。そして、プリフェッチ要求時のアクセス先のアドレスが3次キャッシュメモリユニット30においてヒットした回数が閾値に達すると、プリフェッチを抑止する。プリフェッチが実行される場合、1次キャッシュメモリ13と2次キャッシュメモリユニット20との間、2次キャッシュメモリユニット20と3次キャッシュメモリユニット30との間、3次キャッシュメモリユニット30と主記憶装置90との間の1以上で、データが授受される。このうち、最も時間を要するのは、3次キャッシュメモリユニット30と主記憶装置90との間のデータ授受である。
一方、1次キャッシュメモリ13と2次キャッシュメモリユニット20との間、2次キャッシュメモリユニット20と3次キャッシュメモリユニット30との間でのデータ授受は、主記憶装置90へのアクセスの場合と比較して高速に実行可能である。したがって、3次キャッシュメモリユニット30と主記憶装置90との間のデータ授受が実行されない場合には、プリフェッチによってもたらされる恩恵やメリットは、この間のデータ授受が実行される場合と比較して少ない。一方、プリフェッチが実行されると、図1のFIFO22、2次キャッシュ制御パイプライン23、図10のFIFO32、3次キャッシュ制御パイプライン33等において、プリフェッチ以外のメモリアクセス命令の処理が進まず、効率を低下させる。
実施形態2の情報処理装置101は、プリフェッチによる恩恵、メリットが少なくなる3次キャッシュメモリユニット30でのヒットの状態が継続することを予測し、所定の期間プリフェッチを抑制する。したがって、実施形態2の情報処理装置101は、プリフェッチの効果が低い場合に限定して、プリフェッチ要求を抑制できる。その結果、FIFO22、2次キャッシュ制御パイプライン23、FIFO32、3次キャッシュ制御パイプライン33を含む構成要素でのメモリアクセス要求を効率的に実行できる。
なお、実施形態2では、3次キャッシュメモリユニット30を有する情報処理装置101を例に説明した。しかし、情報処理装置101は、実施形態2の構成に限定される訳ではない。例えば、整数Nを4以上の整数した場合に、1次キャッシュメモリ13、2次キャッシュメモリユニット20からN次キャッシュメモリユニットを有する情報処理装置においても、実施形態2と同様の構成を適用できる。つまり、N次キャッシュメモリユニットにプリフェッチ抑止ユニット34と同様の回路を設け、プリフェッチ実行時に、N次キ
ャッシュメモリユニットでヒットした回数が閾値に達すると、プリフェッチを抑止すればよい。
以上のように、2次キャッシュメモリユニット20、3次キャッシュメモリユニット30は、上位装置であるプロセッサ10等に対して、下位のキャッシュメモリとして例示される。したがって、1次キャッシュメモリ13および2次キャッシュメモリユニット20、3次キャッシュメモリユニット30は、3以上の整数Nに対してN階層の階層構造を有するといえる。この場合に、1次キャッシュメモリ13は演算制御部の一例である命令制御部11、LD/STユニット12等と2次キャッシュメモリユニット20との間でデータを授受するといえる。また、第N次キャッシュメモリは第N−1次キャッシュメモリと主記憶装置90との間でデータを授受するといえる。また、第2次から第N−1次までのキャッシュメモリはそれぞれ上位のキャッシュメモリと下位のキャッシュメモリとの間でデータを授受するといえる。
また、実施形態2では説明を省略したが、図10のプリフェッチ抑止ユニット34の構成は、図4に例示されたプリフェッチ抑止ユニット24の構成と同様である。したがって、プリフェッチ抑止ユニット34は、図4で例示されるヒットカウンタ242、閾値レジスタ243、比較器244、プリフェッチ抑止信号生成部245、およびタイマー246を有している。プリフェッチ抑止ユニット34のヒットカウンタ242は、N次キャッシュメモリでのヒット回数を計数するカウンタの一例である。したがって、プリフェッチ抑止ユニット34は、カウンタ(ヒットカウンタ242)による計数値が閾値を超えたときにプリフェッチ回路(プリフェッチユニット14)によるプリフェッチ要求の送出を抑止するといえる。
[その他の変形例]
上記実施形態1では、プリフェッチ抑止ユニット24が主記憶装置90に隣接する2次キャッシュメモリユニット20に設けられている。また、上記実施形態2では、プリフェッチ抑止ユニット34が主記憶装置90に隣接する3次キャッシュメモリユニット30に設けられている。しかし、情報処理装置100、101の構成が実施形態1、2の構成に限定される訳ではない。例えば、実施形態2の構成において、2次キャッシュメモリユニット20と、3次キャッシュメモリユニット30のそれぞれにプリフェッチ抑止ユニット24、34が設けられてもよい。2次キャッシュメモリユニット20と、3次キャッシュメモリユニット30のそれぞれにプリフェッチ抑止ユニット24、34が設けられる場合には、プリフェッチ抑止ユニット24、34によるプリフェッチ抑止信号がORゲートで和信号を形成し、プリフェッチを抑止すればよい。すなわち、複数のプリフェッチ抑止ユニット24、34からのプリフェッチ抑止信号のいずれかがONの場合に、プリフェッチユニット14がプリフェッチを抑止するようにしてもよい。
同様に、整数Nを4以上の整数した場合に、1次キャッシュメモリ13、2次キャッシュメモリユニット20からN次キャッシュメモリユニットを有する情報処理装置においても、プリフェッチ抑止ユニット24、34等を複数設けてもよい。すなわち、1次キャッシュメモリ13に対して、複数階層(N−1階層)の下位のキャッシュメモリのいずれか1以上において、プリフェッチ抑止ユニット24、34等を設ければよい。そして、下位の複数階層のキャッシュメモリユニット20、30、・・・等に設けた複数のプリフェッチ抑止ユニット24、34等からのプリフェッチ抑止信号のいずれかがONの場合に、プリフェッチユニット14がプリフェッチを抑止するようにしてもよい。このような構成においても、プロセッサ10から離れた位置、すなわち、2次キャッシュメモリユニット20からN次キャッシュメモリユニットのいずれか1以上において、プリフェッチの対象となるアドレスのデータが継続してキャッシュされている状態が検知できる。したがって、効果が少ないプリフェッチが抑止される。
上記実施形態1、2では、プリフェッチ抑止ユニット24がプリフェッチユニット14に対してプリフェッチ要求の発行抑止を指示すとともに、タイマー246をスタートする(例えば、図9の上記S5、S6)。すなわち、タイマー246は、プリフェッチ抑止ステートで動作し、プリフェッチ抑止ステートの時間を制御する。一方、プリフェッチ動作ステートでは、タイマー246は使用されない。しかし、本情報処理装置100、101の処理は、上記実施形態1、2に限定される訳ではない。例えば、プリフェッチ動作ステートにおいて、所定時間以上ヒットカウンタ242がインクリメントされない場合には、タイマーがヒットカウンタ242をリセットするようにしてもよい。すなわち、ヒットカウンタ242の更新間隔が所定時間以上長いことをタイマーが計時した場合には、計時した時点までのプリフェッチ要求時のキャッシュヒットがなかったものとしてもよい。
図11に、変形例に係るプリフェッチ抑止ユニット24Aの構成を例示する。図11の例では、図4と比較して、さらに、タイマー246Aが設けられている。タイマー246Aは、プリフェッチフラグ信号PFとキャッシュヒット信号CHとの積信号によってリセットされ、所定時間を計時する。そして、タイマー246Aは、所定時間計時後、ヒットカウンタをリセットし、計数値を0にする。このため、プリフェッチフラグ信号PFとキャッシュヒット信号CHとの積信号の入力間隔がタイマー246Aで計時される所定時間よりも長いとヒットカウンタ242は、プリフェッチフラグ信号PFとキャッシュヒット信号CHとの積信号による計数を実行しない。
このような構成にすることで、所定時間よりも長い発生間隔で、プリフェッチ要求に対するキャッシュヒットが発生しても、プリフェッチ抑止信号がプリフェッチユニット14に送出されない。ある程度長い時間をおいて、プリフェッチ要求に対するキャッシュヒットが発生しても、プリフェッチ要求に対するキャッシュヒットが継続するとは限らないからである。したがって、図11の構成では、所定時間以内で継続してプリフェッチ要求に対するキャッシュヒットが継続する場合に、プリフェッチ抑止がなされることになる。タイマー246A及びタイマー246Aからヒットカウンタをリセットする信号線RS3が第2のリセット部の一例である。
なお、タイマー246Aは、タイマー246と兼用されてもよい。タイマー246Aは、プリフェッチ動作ステートで動作し、タイマー246は、プリフェッチ抑止ステートで動作するので、兼用可能である。タイマー246でタイマー246Aを代用する場合には、タイマー246と信号線RS2とが第2のリセット回路となる。また、その場合に、ANDゲート241からタイマー246をリセットするようにすればよい。すなわち、プリフェッチ動作ステートでは、ANDゲート241がタイマー246をリセットするようにすればよい。
10 プロセッサ
11 命令制御部
12 LD/STユニット
13 1次キャッシュメモリ
14 プリフェッチユニット
20 2次キャッシュメモリ
21 キャッシュタグRAM
22 FIFO
23 2次キャッシュ制御パイプライン
24 プリフェッチ抑止ユニット
30 3次キャッシュメモリ
90 主記憶装置
241 ANDゲート
242 ヒットカウンタ
243 閾値レジスタ
244 比較器
245 プリフェッチ抑止信号生成部
246、246A タイマー
PF プリフェッチフラグ信号
CH キャッシュヒット信号
特開2014-115851号公報 特開2009-59077号公報 特開平4-344935号公報
図11に、変形例に係るプリフェッチ抑止ユニット24Aの構成を例示する。図11の例では、図4と比較して、さらに、タイマー246Aが設けられている。タイマー246Aは、プリフェッチフラグ信号PFとキャッシュヒット信号CHとの積信号によってリセットされ、所定時間を計時する。そして、タイマー246Aは、所定時間計時後、ヒットカウンタ242をリセットし、計数値を0にする。このため、プリフェッチフラグ信号PFとキャッシュヒット信号CHとの積信号の入力間隔がタイマー246Aで計時される所定時間よりも長いとヒットカウンタ242は、プリフェッチフラグ信号PFとキャッシュヒット信号CHとの積信号による計数を実行しない。

Claims (6)

  1. 主記憶装置のデータを1次キャッシュメモリにプリフェッチするプリフェッチ要求を下位のキャッシュメモリに送出するプリフェッチ部と、
    前記プリフェッチ部からのプリフェッチ要求に対して応答する応答処理の実行時に前記プリフェッチ要求対象のデータが前記下位のキャッシュメモリに保持されていることが検出されたヒット回数を計数する計数部と、
    前記計数されたヒット回数が閾値に達したときに前記プリフェッチ部によるプリフェッチ要求の送出を抑止する抑止部と、を備える演算処理装置。
  2. 前記下位のキャッシュメモリは、前記1次キャッシュメモリと主記憶装置との間でデータを授受する2次キャッシュメモリであり、
    前記計数部は前記2次キャッシュメモリでの前記ヒット回数を計数する請求項1に記載の演算処理装置。
  3. 前記1次キャッシュメモリおよび下位のキャッシュメモリは、3以上の整数Nに対してN階層の階層構造を有し、1次キャッシュメモリは演算制御部と2次キャッシュメモリとの間でデータを授受し、第N次キャッシュメモリは第N−1次キャッシュメモリと主記憶装置との間でデータを授受し、第2次から第N−1次までのキャッシュメモリはそれぞれ上位のキャッシュメモリと下位のキャッシュメモリとの間でデータを授受し、
    前記計数部は前記N次キャッシュメモリでの前記ヒット回数を計数する請求項1に記載の演算処理装置。
  4. 前記抑止部がプリフェッチ要求の送出を抑止したときに起動されるタイマーと、
    前記タイマーが所定時間の経過を計時したときに前記抑止部による抑止を解除するとともに、前記計数部をリセットするリセット部と、をさらに備える請求項1から3のいずれか1項に記載の演算処理装置。
  5. 前記計数部が所定の時間以内に計数値を更新しない場合に、計数部をリセットする第2のリセット部をさらに備える請求項1から4のいずれか1項に記載の演算処理装置。
  6. 主記憶装置のデータを1次キャッシュメモリにプリフェッチするプリフェッチ要求を下位のキャッシュメモリで受け付け、
    前記受け付けたプリフェッチ要求に対して応答する応答処理の実行時に前記プリフェッチ要求対象のデータが前記下位のキャッシュメモリに保持されていることが検出されたヒット回数を計数し、
    前記計数されたヒット回数が閾値に達したときにプリフェッチ要求の送出を抑止する、演算処理装置の制御方法。

JP2016081294A 2016-04-14 2016-04-14 演算処理装置、および演算処理装置の制御方法 Active JP6627629B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2016081294A JP6627629B2 (ja) 2016-04-14 2016-04-14 演算処理装置、および演算処理装置の制御方法
US15/465,674 US10031852B2 (en) 2016-04-14 2017-03-22 Arithmetic processing apparatus and control method of the arithmetic processing apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016081294A JP6627629B2 (ja) 2016-04-14 2016-04-14 演算処理装置、および演算処理装置の制御方法

Publications (2)

Publication Number Publication Date
JP2017191503A true JP2017191503A (ja) 2017-10-19
JP6627629B2 JP6627629B2 (ja) 2020-01-08

Family

ID=60040034

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016081294A Active JP6627629B2 (ja) 2016-04-14 2016-04-14 演算処理装置、および演算処理装置の制御方法

Country Status (2)

Country Link
US (1) US10031852B2 (ja)
JP (1) JP6627629B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020013362A (ja) * 2018-07-19 2020-01-23 富士通株式会社 演算処理装置及び演算処理装置の制御方法

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11294808B2 (en) 2020-05-21 2022-04-05 Micron Technology, Inc. Adaptive cache
US11422934B2 (en) 2020-07-14 2022-08-23 Micron Technology, Inc. Adaptive address tracking
US11409657B2 (en) 2020-07-14 2022-08-09 Micron Technology, Inc. Adaptive address tracking
US11947461B2 (en) * 2022-01-10 2024-04-02 International Business Machines Corporation Prefetch unit filter for microprocessor
CN115576872B (zh) * 2022-11-18 2023-03-24 北京红山微电子技术有限公司 多级缓存的访问检测方法及装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001331793A (ja) * 2000-05-22 2001-11-30 Fuji Xerox Co Ltd 画像処理装置及びキャッシュメモリ
US20080028150A1 (en) * 2006-07-28 2008-01-31 Farnaz Toussi Autonomic Mode Switching for L2 Cache Speculative Accesses Based on L1 Cache Hit Rate
JP2010532904A (ja) * 2007-07-10 2010-10-14 クアルコム,インコーポレイテッド データプリフェッチスロットル
US20130013867A1 (en) * 2011-07-06 2013-01-10 Advanced Micro Devices, Inc. Data prefetcher mechanism with intelligent disabling and enabling of a prefetching function

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04344935A (ja) 1991-05-23 1992-12-01 Nec Corp 情報処理装置
US7130890B1 (en) * 2002-09-04 2006-10-31 Hewlett-Packard Development Company, L.P. Method and system for adaptively prefetching objects from a network
JP4829191B2 (ja) 2007-08-30 2011-12-07 株式会社東芝 キャッシュシステム
JP2014115851A (ja) 2012-12-10 2014-06-26 Canon Inc データ処理装置及びその制御方法
JP6130758B2 (ja) * 2013-09-06 2017-05-17 株式会社東芝 メモリ制御回路およびキャッシュメモリ
US20160041914A1 (en) * 2014-08-05 2016-02-11 Advanced Micro Devices, Inc. Cache Bypassing Policy Based on Prefetch Streams
US10073785B2 (en) * 2016-06-13 2018-09-11 Advanced Micro Devices, Inc. Up/down prefetcher

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001331793A (ja) * 2000-05-22 2001-11-30 Fuji Xerox Co Ltd 画像処理装置及びキャッシュメモリ
US20080028150A1 (en) * 2006-07-28 2008-01-31 Farnaz Toussi Autonomic Mode Switching for L2 Cache Speculative Accesses Based on L1 Cache Hit Rate
JP2010532904A (ja) * 2007-07-10 2010-10-14 クアルコム,インコーポレイテッド データプリフェッチスロットル
US20130013867A1 (en) * 2011-07-06 2013-01-10 Advanced Micro Devices, Inc. Data prefetcher mechanism with intelligent disabling and enabling of a prefetching function

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020013362A (ja) * 2018-07-19 2020-01-23 富士通株式会社 演算処理装置及び演算処理装置の制御方法
US11003581B2 (en) 2018-07-19 2021-05-11 Fujitsu Limited Arithmetic processing device and arithmetic processing method of controlling prefetch of cache memory
JP7131156B2 (ja) 2018-07-19 2022-09-06 富士通株式会社 演算処理装置及び演算処理装置の制御方法

Also Published As

Publication number Publication date
US20170300416A1 (en) 2017-10-19
JP6627629B2 (ja) 2020-01-08
US10031852B2 (en) 2018-07-24

Similar Documents

Publication Publication Date Title
JP6627629B2 (ja) 演算処理装置、および演算処理装置の制御方法
US10810125B2 (en) Prefetching data
JP6279508B2 (ja) 事前充填能力を有するメモリ管理ユニット
EP1421490B1 (en) Methods and apparatus for improving throughput of cache-based embedded processors by switching tasks in response to a cache miss
US8683129B2 (en) Using speculative cache requests to reduce cache miss delays
US9292447B2 (en) Data cache prefetch controller
US8156287B2 (en) Adaptive data prefetch
WO2017211240A1 (zh) 一种处理器芯片以及指令缓存的预取方法
US9886385B1 (en) Content-directed prefetch circuit with quality filtering
US20090024835A1 (en) Speculative memory prefetch
JP5444889B2 (ja) 演算処理装置および演算処理装置の制御方法
JP2002297379A (ja) ハードウェアプリフェッチシステム
US20150213153A1 (en) Power Reduction for Fully Associated Translation Lookaside Buffer
US7313655B2 (en) Method of prefetching using a incrementing/decrementing counter
JP2006516168A (ja) ストライド予測テーブルにアドレスするためにキャッシュミスパターンを使用する方法
JP2008234320A (ja) キャッシュ制御回路
JP5793061B2 (ja) キャッシュメモリ装置、キャッシュ制御方法、およびマイクロプロセッサシステム
JP2004133935A (ja) パイプラインを有する計算回路のためのメモリ・システムおよびパイプラインの機能ユニットにデータを提供する方法
JPWO2012127628A1 (ja) 演算処理装置、情報処理装置及び演算処理装置の制御方法
JP7131156B2 (ja) 演算処理装置及び演算処理装置の制御方法
JP6016689B2 (ja) 半導体装置
JP5116275B2 (ja) 演算処理装置、情報処理装置及び演算処理装置の制御方法
JP2005215946A (ja) 情報処理装置
JP5971036B2 (ja) 演算処理装置及び演算処理装置の制御方法
TW202311938A (zh) 用於管線化控制的設備以及方法

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170615

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190115

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190626

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190730

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190930

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20191118

R150 Certificate of patent or registration of utility model

Ref document number: 6627629

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150