JP2014085890A - メモリ装置、演算処理装置、及びキャッシュメモリ制御方法 - Google Patents

メモリ装置、演算処理装置、及びキャッシュメモリ制御方法 Download PDF

Info

Publication number
JP2014085890A
JP2014085890A JP2012235109A JP2012235109A JP2014085890A JP 2014085890 A JP2014085890 A JP 2014085890A JP 2012235109 A JP2012235109 A JP 2012235109A JP 2012235109 A JP2012235109 A JP 2012235109A JP 2014085890 A JP2014085890 A JP 2014085890A
Authority
JP
Japan
Prior art keywords
ways
way
access
cache
hit
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
JP2012235109A
Other languages
English (en)
Other versions
JP5954112B2 (ja
Inventor
Yuji Shirohige
祐治 白髭
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 JP2012235109A priority Critical patent/JP5954112B2/ja
Priority to US14/018,464 priority patent/US20140115264A1/en
Publication of JP2014085890A publication Critical patent/JP2014085890A/ja
Application granted granted Critical
Publication of JP5954112B2 publication Critical patent/JP5954112B2/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/0893Caches characterised by their organisation or structure
    • G06F12/0895Caches characterised by their organisation or structure of parts of caches, e.g. directory or tag array
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/325Power saving in peripheral device
    • G06F1/3275Power saving in memory, e.g. RAM, cache
    • 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/0864Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using pseudo-associative means, e.g. set-associative or hashing
    • 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/1028Power efficiency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/50Control mechanisms for virtual memory, cache or TLB
    • G06F2212/502Control mechanisms for virtual memory, cache or TLB using adaptive policy
    • 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/601Reconfiguration of cache 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/608Details relating to cache mapping
    • G06F2212/6082Way prediction in set-associative cache
    • 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

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)

Abstract

【課題】性能維持と消費電力削減とのバランスをとったメモリ装置を提供する。
【解決手段】メモリ装置は、複数のウェイと、複数のウェイへのアクセス履歴を保持するレジスタと、アクセスリクエストとアクセス履歴とに応じて複数のウェイのうちの1つ又は複数のウェイを選択し、選択したウェイを動作させ且つ選択したウェイ以外のウェイを非動作とするウェイ制御部とを含み、ウェイ制御部は、選択するウェイの数をアクセスリクエストに応じて動的に変化させることを特徴とする。
【選択図】図2

Description

本願開示は、メモリ装置、演算処理装置、及びキャッシュメモリ制御方法に関する。
システム全体の電力効率を向上させるためには、システム中で大きな電力を消費するプロセサの消費電力を削減することが重要であり、性能への影響を小さくしつつ電力消費を削減する方法が模索されている。プロセサに内蔵されるキャッシュメモリの記憶素子として使用されるキャッシュRAM(Cache Random Access Memory)の省電力の方法として、不使用のRAMチップやRAMモジュールへのクロック供給を止める方法や、チップイネーブルをオフにする方法が検討されてきた。例えば、キャッシュにおいて動作の予測されるウェイを特定し、予測されたウェイのみをメモリイネーブル信号により動作させて低消費電力化を図る方法等がある(例えば特許文献1)。
予測されたウェイ以外のウェイを動作させていない場合、予測が外れてしまうと再度のキャッシュ動作が必要になるために、性能が低下してしまう。このような性能低下を可能な限り避けながら消費電力を削減するために、性能維持と消費電力削減とのバランスをとることが好ましい。
特開2002−328839号公報
以上を鑑みると、性能維持と消費電力削減とのバランスをとったメモリ装置が望まれる。
メモリ装置は、複数のウェイと、前記複数のウェイへのアクセス履歴を保持するレジスタと、アクセスリクエストと前記アクセス履歴とに応じて前記複数のウェイのうちの1つ又は複数のウェイを選択し、前記選択したウェイを動作させ且つ前記選択したウェイ以外のウェイを非動作とするウェイ制御部とを含み、前記ウェイ制御部は、前記選択するウェイの数を前記アクセスリクエストに応じて動的に変化させることを特徴とする。
キャッシュメモリ制御方法は、複数のウェイへの過去のアクセスの履歴をインデックス毎に示したデータから、アクセス対象インデックスに対応するアクセス履歴を取り出し、前記アクセス履歴に基づいて前記複数のウェイのうちの1つ又は複数のウェイを選択し、前記選択した1つ又は複数のウェイを動作状態とし且つ前記選択した1つ又は複数のウェイ以外のウェイを非動作とし、前記動作状態の1つ又は複数のウェイから1つ又は複数のデータをそれぞれ読み出し、前記アクセス対象インデックスに応じてタグを参照してヒットウェイを特定し、前記読み出された1つ又は複数のデータのうち1つのデータを前記特定されたヒットウェイに応じて選択し、前記選択するウェイの数を前記ヒットウェイに応じて変化させる各段階を含むことを特徴とする。
少なくとも1つの実施例によれば、性能維持と消費電力削減とのバランスをとったメモリ装置が提供される。
演算処理システムの構成の一例を示す図である。 命令キャッシュの構成の一例を示す図である。 命令キャッシュのパイプライン動作の一例を示す図である。 ウェイ予測部の構成の一例を示す図である。 パワーセーブ部の構成の一例を示す図である。 モード決定部の構成の一例を示す図である。 キャッシュRAMの動作制御の一例を示す図である。 命令キャッシュの動作の一例を示すフローチャートである。
以下に、本発明の実施例を添付の図面を用いて詳細に説明する。
図1は、演算処理システムの構成の一例を示す図である。図1の演算処理システムは、演算器10、命令制御部11、命令キャッシュ12、データキャッシュ13、2次キャッシュ14、及び主記憶装置15を含む。演算器10、命令制御部11、命令キャッシュ12、データキャッシュ13、及び2次キャッシュ14を含む部分が演算処理装置であり、この演算処理装置が主記憶装置15のデータに基づいて演算処理を行う。図1において、各ボックスで示される各機能ブロックと他の機能ブロックとの境界は、基本的には機能的な境界を示すものであり、物理的な位置の分離、電気的な信号の分離、制御論理的な分離等に対応するとは限らない。各機能ブロックは、他のブロックと物理的にある程度分離された1つのハードウェアモジュールであってもよいし、或いは他のブロックと物理的に一体となったハードウェアモジュール中の1つの機能を示したものであってもよい。
命令制御部11は、命令キャッシュ12から命令をフェッチするための命令フェッチリクエスト(アセスリクエスト)を命令キャッシュ12に発行する。命令キャッシュ12は、命令フェッチリクエストに応答して、リクエストされたアドレスに格納される命令を命令制御部11に供給する。命令制御部11は、命令キャッシュ12からフェッチした命令をデコードし、デコード結果に応じて演算器10による演算命令の実行を制御する。また命令制御部11は、ロード命令やストア命令等のアクセスリクエストをデータキャッシュ13に発行し、1次キャッシュメモリ32に対するデータのロードやデータのストアを実行する。
命令キャッシュ12及びデータキャッシュ13は1次キャッシュメモリである。1次キャッシュメモリと、2次キャッシュ14と、主記憶装置15とは、メモリの階層構造を形成している。1次キャッシュメモリである命令キャッシュ12又はデータキャッシュ13においてアクセスがヒットしない場合、下位メモリである2次キャッシュメモリ14へのアクセスが実行される。更に2次キャッシュ14へのアクセスがヒットしない場合、下位メモリである主記憶装置15へのアクセスが実行される。このようにして、キャッシュミスの場合には下位メモリにアクセスし、下位メモリに格納されているアクセスの対象であるデータを、キャッシュメモリの該当するキャッシュラインに転送する。この際、該当インデックスの全てのウェイにおいて有効なキャッシュデータが存在する場合には、最も必要性の低いデータ(例えば最後にアクセスされてから最も時間が経過しているデータ)を、アクセス対象のデータで置き換えるリプレースが実行される。
図2は、命令キャッシュ12の構成の一例を示す図である。以下、命令キャッシュ12を例に用いてメモリ装置の構成及び動作を説明するが、これは一例に過ぎず、命令キャッシュ12の代わりにデータキャッシュ13或いは2次キャッシュ14が、同様の構成を有し同様の動作を実行するメモリ装置であってよい。
図2に示す命令キャッシュ12は、ポート21、セレクタ22、TLB(Translation Lookaside Buffer)部23、タグ部24、一致判定部25、ウェイ予測部26、予測ヒット判定部27、パワーセーブ部28、及びアボート通知部29を含む。命令キャッシュ12は更に、キャッシュRAM30−1乃至30−4(RAMWO乃至RAMW3)、セレクタ31、及び命令バッファ32(IBUF)を含む。
命令キャッシュ12は、複数のキャッシュラインを含み、下位メモリから命令キャッシュ12への情報のコピーはキャッシュライン単位で実行される。主記憶装置15のメモリ空間はキャッシュライン単位で分割され、分割されたメモリ領域を順番にキャッシュラインに割当てておく。命令キャッシュ12の容量は主記憶の容量よりも小さいので、主記憶のメモリ領域を繰り返して同一のキャッシュラインに割当てることになる。
一般に、アドレスの全ビットのうちで、所定数の下位ビットがキャッシュメモリのインデックスとなり、それより上位に位置する残りのビットがキャッシュメモリのタグとなる。タグ部24が、これらのインデックスに対応するタグを格納している。なお図2に示す命令キャッシュ12では、ウェイが4つ存在する4ウェイ構成を想定している。従って、各インデックスに対して、4つのウェイに対応する4つのタグが格納される。命令キャッシュ12は、主記憶装置15に記憶されたデータの一部を、複数のウェイ毎に設けられた複数のキャッシュラインに保持することになる。
アクセスリクエスト(I−Fetch−Request)が到来すると、当該アクセスリクエストがポート21に格納されると共に、セレクタ22を介して、アクセスリクエスト中のアクセス先を示すアドレスが送出される。このアドレスは、TLB部23、タグ部24、ウェイ予測部26、及びキャッシュRAM30−1乃至30−4に供給される。TLB部23は、アクセス先の仮想アドレスを物理アドレスへと変換する。タグ部24は、アドレス中のインデックス部分を用いて、タグ部24中の対応するインデックスのタグを出力する。4つのウェイを想定しているので、4つのタグが出力される。
一致判定部25は、タグ部24が出力する4つのタグとTLB部23が変換した物理アドレスのタグ部分とを比較し、これらのタグのビットパターンが一致するか否かを判断する。一致判定部25は、一致したタグのウェイ即ちヒットウェイを特定するウェイIDを出力する。なおタグ部24が出力する4つのタグのうちの何れかのタグが一致する場合には、当該アクセスはキャッシュヒットとなる。タグ部24が出力する何れのタグについても一致しない場合には、当該アクセスはキャッシュミスとなる。このようにして一致判定部25は、アクセスリクエストに応じて複数のウェイのうちでアクセス先に一致するヒットウェイを特定する。特定されたヒットウェイのウェイIDは、一致判定部25からポート21に供給されて格納されると共に、ウェイ予測部26、予測ヒット判定部27、及びセレクタ31に供給される。
キャッシュRAM30−1乃至30−4は、それぞれ4つのウェイに対応して設けられる。後述するように、キャッシュRAM30−1乃至30−4のうちで、パワーセーブ部28により選択される1つ又は複数のキャッシュRAMが動作し、その他のキャッシュRAMは非動作状態となる。即ち、4つのウェイのうちで、選択されたウェイのみが動作状態となる。動作状態にあるキャッシュRAM30−1乃至30−4は、セレクタ22から供給されるアドレス中のインデックスに対応するデータを出力する。セレクタ31は、一致判定部25から供給されるヒットウェイのウェイIDに応じて、当該ウェイIDに一致するウェイの出力データを選択する。例えば、0番目のウェイがヒットウェイである場合、0番目のキャッシュRAM30−1の出力データがセレクタ31により選択される。選択された出力データは、命令バッファ32に格納される。なおヒットウェイに対応するキャッシュRAMが非動作状態の場合、後述するようにアボート通知部29がアボートを命令制御部11に通知するので、命令制御部11により命令バッファ32の格納値が参照されることはない。ヒットウェイに対応するキャッシュRAMが動作状態の場合、後述するようにアボート通知部29がSTVを命令制御部11に通知するので、命令制御部11により命令バッファ32の格納値が参照される。
このようにして、キャッシュヒットの場合、ヒットしたキャッシュデータが命令制御部11に供給される。キャッシュミスの場合には、2次キャッシュ14又は主記憶装置15に格納されている当該アクセスの対象であるデータを、命令制御部11の該当するキャッシュラインに転送する。
ウェイ予測部26は、複数のウェイへのアクセス履歴を保持するレジスタを含む。このアクセス履歴は各インデックス毎にレジスタに格納されている。セレクタ22から供給されるアクセス先のアドレスのインデックス部分に応じて、ウェイ予測部26は、当該インデックス(アクセス対象インデックス)に対応するアクセス履歴を出力する。このアクセス履歴は、当該インデックスに対して、各ウェイが最後にアクセスされた時刻の順に複数のウェイ(この例では4つのウェイ)を並べた場合の並び順を示す並び順情報を含む。即ち、当該インデックスに対して4つのウェイW0、W1、W2、W3が、時間的に例えばW2、W1、W0、W3の順番にアクセスされたならば、この並び順(W2、W1、W0、W3)を示す情報がアクセス履歴に含まれることになる。言葉を換えて言えば、アクセス履歴をチェックすることにより、4つのウェイが過去にアクセスされた順番を知ることができる。ウェイ予測部26から出力されたアクセス履歴は、予測ヒット判定部27とパワーセーブ部28とに供給される。なおウェイ予測部26のレジスタが保持するアクセス履歴は、一致判定部25からのヒットウェイのウェイIDに基づいて更新される。
パワーセーブ部28は、ウェイ予測部26から供給されるアクセス対象インデックスのアクセス履歴に応じて、複数のウェイ(この例では4つのウェイ)のうちの1つ又は複数のウェイを選択する。具体的には、選択すべき個数Nが指定されている状態において、複数のウェイ(この例では4つのウェイ)のうちでアクセスの最も新しい方からアクセスの新しいN個分のウェイを選択する。即ち、供給されたアクセス履歴が示す並び順において、アクセスが最新のものから順番にアクセスの新しいN個のウェイを選択する。パワーセーブ部28は、キャッシュRAM30−1乃至30−4にチップイネーブル信号WAY[0:3]CEを供給することで、選択したN個のウェイを動作させ且つ選択したウェイ以外のウェイを非動作とする。なおこの例ではチップイネーブル信号により各キャッシュRAM30−1乃至30−4の動作及び非動作を制御しているが、例えば各キャッシュRAMへのクロック信号の供給をオン及びオフすることにより各キャッシュRAMの動作及び非動作を制御してもよい。
なおウェイ予測部26又はパワーセーブ部28に含まれるモード決定部が、アクセス履歴とヒットウェイとに応じて選択するウェイの個数Nを決定する。具体的には、モード決定部は、アクセスリクエストにより定まるヒットウェイが上記並び順(アクセス履歴が示す並び順)において時刻の新しい方から何個目(例えばM個目)のウェイであるかを特定し、この特定された個数Mを選択するウェイの個数Nとしてよい。
このようにしてウェイ予測部26とパワーセーブ部28とが、ウェイ予測に基づきウェイの動作及び非動作を制御するウェイ制御部として機能する。即ち、このウェイ制御部は、上述のように、アクセス先のアドレスを含むアクセスリクエストとアクセス履歴とに応じて複数のウェイのうちの1つ又は複数(N個)のウェイを選択し、選択したウェイを動作させ且つ選択したウェイ以外のウェイを非動作とする。そして、このウェイ制御部に含まれるモード決定部が、選択するウェイの個数Nをアクセスリクエスト(より具体的にはアクセスリクエストにより定まるヒットウェイ)に応じて動的に変化させる。
予測ヒット判定部27は、パワーセーブ部28からの動作状態キャッシュRAMを特定する情報と一致判定部25からのヒットウェイのウェイIDとに応じて、予測がヒットしたか否かを判定する。後述するように、ウェイ制御部(ウェイ予測部26及びパワーセーブ部28)による1つ又は複数のウェイを選択する動作(予測動作)は、一致判定部25によりヒットウェイを特定する動作よりも時間的に前に実行される。従って、予測に基づいてキャッシュRAMを予め動作状態としてデータを出力させ、一致判定部25によりヒットウェイが特定されると直ちにセレクタ31によりヒットウェイのデータを選択することで、高速なキャッシュデータ読み出しを実現できる。予測ヒット判定部27では、動作状態とされたキャッシュRAMのうちの1つがヒットウェイであれば、予測がヒットしたと判定する。動作状態とされたキャッシュRAMの何れもヒットウェイでないならば、予測がミスしたと判定する。
アボート通知部29は、予測ヒット判定部27のヒット判定に基づいて、アボート信号又はSTV信号を出力する。ヒット判定の場合、アボート通知部29は、STV信号を出力する。このSTV信号に応答して、命令制御部11が命令バッファ32のデータを参照する。ミス判定の場合、アボート通知部29は、アボート信号を出力する。このアボート信号により、命令制御部11は、キャッシュデータが未だ用意できていないことを知ることができる。
アボート通知部29によりアボートが通知された場合、命令キャッシュ12は、ポート21に格納されているアクセスリクエスト及びポート21に格納されているヒットウェイのウェイIDに基づいて、再度キャッシュRAMの読み出し動作を実行する。この場合、ポート21に格納されているアクセスリクエストのアクセス先アドレスが、セレクタ22を介して、TLB部23、タグ部24、ウェイ予測部26、及びキャッシュRAM30−1乃至30−4に供給される。またポート21に格納されているヒットウェイのウェイIDが、ウェイ予測部26に供給される。ウェイ予測部26及びパワーセーブ部28を含むウェイ制御部は、ヒットウェイのウェイIDに対応するキャッシュRAMのみを動作させるように、チップイネーブル信号WAY[0:3]CEを生成する。これにより、2回目のキャッシュ読み出し動作では、ヒットウェイの情報を用いて確実にデータを読み出すことができる。
図3は、命令キャッシュのパイプライン動作の一例を示す図である。図3に示すように、キャッシュ読み出し動作は、P、T、M、B、及びRの5つのサイクルを含む。サイクルPにおいて、リクエストアドレスが供給される。初回のキャッシュ読み出し動作(即ちアボート後のキャッシュ読み出し動作ではない初回のキャッシュ読み出し動作)では、ポートからのウェイIDは供給されない。
サイクルTでは、TLB部23によるTLBアドレス変換動作23A、タグ部24によるタグ読み出し動作24A、及びウェイ予測部26及びパワーセーブ部28によるウェイ予測動作26Aが実行される。なお図3において、各要素32は、フリップフロップによるデータラッチ動作を示す。
サイクルMでは、一致判定部25による一致判定動作25A、予測ヒット判定部27による予測ヒット判定動作27A、及びキャッシュRAM30−1乃至30−4によるデータ読み出し動作30Aが実行される。前述のように、ウェイ制御部(ウェイ予測部26及びパワーセーブ部28)によるウェイ予測動作26Aは、一致判定部25による一致判定動作25Aよりも前のサイクルで実行される。従って、予測に基づいてキャッシュRAMを予め動作状態とすることにより、一致判定部25による一致判定動作25Aと並行して、予測に基づき動作状態とされたキャッシュRAMからのデータ読み出し動作30Aを実行することができる。
サイクルBでは、一致判定動作25Aにより特定したヒットウェイのウェイIDをポート21に格納するポート格納処理21A、セレクタ31によるヒットウェイのデータ選択処理31A、及びアボート通知部29によるアボート通知処理29Aが実行される。最後のサイクルRでは、アボート信号又はSTV信号の送出、及び、命令バッファ32へのデータ格納処理32Aが実行される。
図4は、ウェイ予測部の構成の一例を示す図である。ウェイ予測部26は、一時格納レジスタ41、セレクタ42−1乃至42−3、一時格納レジスタ43、デコーダ44、アクセス履歴レジスタ45、セレクタ46、及びデコーダ47を含む。
アクセス履歴レジスタ45は、複数のウェイへのアクセス履歴を保持する。このアクセス履歴は各インデックス毎(1〜N)に格納されている。アクセス履歴は、インデックス毎に、各ウェイが最後にアクセスされた時刻の順に複数のウェイ(この例では4つのウェイ)を並べたものである。図4においては、4つ並ぶウェイIDのうちで、最も左側のウェイIDが示すウェイが最後にアクセスされたものであり、最も右側のウェイIDが示すウェイが最も過去にアクセスされたものである。
セレクタ22から供給されるアクセス先のアドレスのインデックス部分をデコーダ44がデコードし、アクセス対象インデックスのみをイネーブルにするチップイネーブル信号CE[0:N]を生成する。これに応じて、アクセス履歴レジスタ45は、当該インデックス(アクセス対象インデックス)に対応するアクセス履歴を出力する。同様にアクセス先のアドレスのインデックス部分をデコードするデコーダ47により、アクセス履歴レジスタ45から出力されたアクセス履歴をセレクタ46により選択する。セレクタ46が選択したアクセス履歴は、パワーセーブ部28に供給されると共に、一時格納レジスタ41に格納される。
一致判定部25からヒットウェイのウェイIDが供給されると、セレクタ42−1乃至42−3により、ヒットウェイ以外のウェイを選択するように4つのウェイIDから3つのウェイIDを選択する。選択された3つのウェイIDとヒットウェイのウェイIDとが、一時格納レジスタ43に格納され、更にアクセス履歴レジスタ45に書き込まれる。このようにしてアクセス履歴レジスタ45が保持するアクセス履歴は、一致判定部25からのヒットウェイのウェイIDに基づいて更新される。
図5は、パワーセーブ部の構成の一例を示す図である。パワーセーブ部28は、一時格納レジスタ51、デコーダ52−1乃至52−4、セレクタ53−1乃至53−4、及びセレクタ54−1乃至54−4を含む。一時格納レジスタ51は、ウェイ予測部26から供給されたアクセス履歴の4つのウェイIDを格納する。デコーダ52−1乃至52−4は、それぞれ対応するウェイID(2ビット)をデコードし、4本の出力信号線のうちでウェイIDが示す番号に相当する出力信号線をアサートする。残りの3本の出力信号線はネゲート状態となる。即ち、デコーダ52−1乃至52−4の各々は、入力ウェイIDがn番(n=1〜4)を示す場合、左からn番目の出力信号線のみをアサートする。
セレクタ53−1乃至53−4の各々は、4つのアクセス時間の順番にそれぞれ対応する4本の入力信号線のうちの1つ又は複数の入力信号線を選択する。具体的には、選択すべき個数Nがパワーセーブモード信号PMODE[1:0]により指定されている状態において、アクセスの新しい側のN本の入力信号線を選択する。なお各セレクタ53−1乃至53−4において、入力に接続されている4本の入力信号線は、アクセスの新しい順番に左側から並んでいる。例えばセレクタ53−1は、キャッシュRAM30−1のウェイWOに対応し、その4本の入力信号線は、ウェイWOのアクセスされた順番を示している。即ち、4つのウェイのうちでウェイWOが最後からk番目にアクセスされたのであれば、左からk番目の入力信号線が1であり、残りの入力信号線は0となっている。パワーセーブモード信号PMODE[1:0]がN(N=1〜4)を示す場合、セレクタ53−1乃至53−4の各々は、左からN本の入力信号線を選択し、選択された信号線の信号値のOR値を出力する。
セレクタ54−1乃至54−4は、アボート後でない初回のキャッシュ読み出し動作においては、それぞれセレクタ53−1乃至53−4の出力を選択して出力する。セレクタ54−1乃至54−4は、アボート後である2回目のキャッシュ読み出し動作においては、ポート21からのウェイIDを選択して出力する。
パワーセーブ部28は、キャッシュRAM30−1乃至30−4にチップイネーブル信号W0−CE、W1−CE、W2−CE、及びW3−CE(図2のWAY[0:3]CE)のそれぞれを供給する。これにより、選択したN個のウェイを動作させ且つ選択したウェイ以外のウェイを非動作とする。
図6は、モード決定部の構成の一例を示す図である。モード決定部は、一時格納レジスタ61、一致回路62−1乃至62−4、一時格納レジスタ63、及びエンコーダ64を含む。一時格納レジスタ61は、ウェイ予測部26から供給されるアクセス対象インデックスのアクセス履歴である4つのウェイIDを格納する。一時格納レジスタ63は、一致判定部25から供給されるヒットウェイのウェイIDを格納する。一致回路62−1乃至62−4の各々は、対応するアクセス履歴のウェイIDとヒットウェイのウェイIDとを比較して、一致する場合には出力をアサートする。一致回路62−1乃至62−4のそれぞれの4つの出力のうち、ヒットウェイに対応する1つの出力のみがアサート状態となる。一時格納レジスタ61に格納される4つのウェイIDは、左から新しいアクセス順に並んでいるので、一致回路62−1乃至62−4のアサート出力は、ヒットウェイが最後にアクセスされた順番を示すことになる。即ち、一致回路62−1乃至62−4のアサート出力は、アクセスリクエストにより定まるヒットウェイが一時格納レジスタ61のウェイIDの並び順(アクセス履歴が示す並び順)において時刻の新しい方から何個目(例えばM個目)のウェイであるかを特定する。エンコーダ64は、一致回路62−1乃至62−4の出力をエンコードすることにより、この特定された個数Mを示すパワーセーブモード信号PMODE[1:0]を出力する。
図7は、キャッシュRAMの動作制御の一例を示す図である。図7において、制御信号CEは、パワーセーブ部28が生成するチップイネーブル信号である。この制御信号CEをRAM72のチップイネーブル入力に印加して、直接にRAM72の動作及び非動作を制御してよい。また或いは、図7に示すように制御信号CEとクロック信号ClockとのANDをとり、ANDの結果をRAM72にクロック信号として供給してよい。即ち、制御信号CEにより、RAM72へのクロック信号の供給及び停止を制御してよい。
図8は、命令キャッシュの動作の一例を示すフローチャートである。ステップS1で、ヒストリーを検索する。即ち、ウェイ予測部26のアクセス履歴レジスタ45からアクセス対象インデックスのアクセス履歴を抽出する。ステップS2で、パワーセーブモード信号に基づいて、上記抽出したアクセス履歴から1つ又は複数のウェイを選択する。選択したウェイ以外のウェイが、省電力の対象となるウェイとなる。ステップS3で、キャッシュRAM30−1乃至30−4のチップイネーブル信号CEを制御する。ステップS4で、タグ部24を検索してヒットウェイを特定する。ステップS5で、ポート21にヒットウェイを示すウェイIDを記録する。ステップS6で、ヒットウェイによりアクセス履歴を更新する。
ステップS7で、ウェイ予測が成功したか否かを判定する。即ち、予測ヒット判定部27により予測がヒットしたか否かを判定する。予測が成功した場合(ステップS7でYes)、ステップS8で、モード決定部により、アクセス履歴においてヒットウェイが新しい方から何番目のウェイであるのかに応じて、パワーセーブモード信号の値を変化させる。ステップS9で、命令制御部11へデータを返す。このときアボート通知部29からのSTV信号がアサートされる。
予測が失敗した場合(ステップS7でNo)、ステップS10で、リクエストを実行し直す。即ち、ステップS11で、予測が失敗したアクセス処理でのヒットウェイをポート21から読み出し、ステップS3以降の処理を再実行する。
以上、本発明を実施例に基づいて説明したが、本発明は上記実施例に限定されるものではなく、特許請求の範囲に記載の範囲内で様々な変形が可能である。
10 演算器
11 命令制御部
12 命令キャッシュ
13 データキャッシュ
14 2次キャッシュ
15 主記憶装置
21 ポート
22 セレクタ
23 TLB部
24 タグ部
25 一致判定部
26 ウェイ予測部
27 予測ヒット判定部
28 パワーセーブ部
29 アボート通知部
30−1乃至30−4 キャッシュRAM
31 セレクタ
32 命令バッファ

Claims (6)

  1. 複数のウェイと、
    前記複数のウェイへのアクセス履歴を保持するレジスタと、
    アクセスリクエストと前記アクセス履歴とに応じて前記複数のウェイのうちの1つ又は複数のウェイを選択し、前記選択したウェイを動作させ且つ前記選択したウェイ以外のウェイを非動作とするウェイ制御部と
    を含み、前記ウェイ制御部は、前記選択するウェイの数を前記アクセスリクエストに応じて動的に変化させることを特徴とするメモリ装置。
  2. 前記アクセスリクエストに応じて前記複数のウェイのうちでアクセス先に一致するヒットウェイを特定する一致判定部と、
    前記アクセス履歴と前記ヒットウェイとに応じて前記選択するウェイの数を決定するモード決定部と
    を更に含むことを特徴とする請求項1記載のメモリ装置。
  3. 前記アクセス履歴は、各ウェイが最後にアクセスされた時刻の順に前記複数のウェイを並べた場合の並び順を示す並び順情報を含み、
    前記モード決定部は、前記ヒットウェイが前記並び順において時刻の新しい方から何個目のウェイであるかを特定し、前記特定された個数を前記選択するウェイの数とする
    ことを特徴とする請求項2記載のメモリ装置。
  4. 前記1つ又は複数のウェイを選択する動作は、前記ヒットウェイを特定する動作よりも前に実行されることを特徴とする請求項2又は3記載のメモリ装置。
  5. 命令制御部と、
    演算器と、
    キャッシュメモリと
    を含む演算処理装置であって、前記キャッシュメモリは、
    複数のウェイと、
    前記複数のウェイへのアクセス履歴を保持するレジスタと、
    前記命令制御部からのアクセスリクエストと前記アクセス履歴とに応じて前記複数のウェイのうちの1つ又は複数のウェイを選択し、前記選択したウェイを動作させ且つ前記選択したウェイ以外のウェイを非動作とするウェイ制御部と
    を含み、前記ウェイ制御部は、前記選択するウェイの数を前記アクセスリクエストに応じて動的に変化させることを特徴とする演算処理装置。
  6. 複数のウェイへの過去のアクセスの履歴をインデックス毎に示したデータから、アクセス対象インデックスに対応するアクセス履歴を取り出し、
    前記アクセス履歴に基づいて前記複数のウェイのうちの1つ又は複数のウェイを選択し、
    前記選択した1つ又は複数のウェイを動作状態とし且つ前記選択した1つ又は複数のウェイ以外のウェイを非動作とし、
    前記動作状態の1つ又は複数のウェイから1つ又は複数のデータをそれぞれ読み出し、
    前記アクセス対象インデックスに応じてタグを参照してヒットウェイを特定し、
    前記読み出された1つ又は複数のデータのうち1つのデータを前記特定されたヒットウェイに応じて選択し、
    前記選択するウェイの数を前記ヒットウェイに応じて変化させる
    各段階を含むことを特徴とするキャッシュメモリ制御方法。
JP2012235109A 2012-10-24 2012-10-24 メモリ装置、演算処理装置、及びキャッシュメモリ制御方法 Active JP5954112B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2012235109A JP5954112B2 (ja) 2012-10-24 2012-10-24 メモリ装置、演算処理装置、及びキャッシュメモリ制御方法
US14/018,464 US20140115264A1 (en) 2012-10-24 2013-09-05 Memory device, processor, and cache memory control method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012235109A JP5954112B2 (ja) 2012-10-24 2012-10-24 メモリ装置、演算処理装置、及びキャッシュメモリ制御方法

Publications (2)

Publication Number Publication Date
JP2014085890A true JP2014085890A (ja) 2014-05-12
JP5954112B2 JP5954112B2 (ja) 2016-07-20

Family

ID=50486427

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012235109A Active JP5954112B2 (ja) 2012-10-24 2012-10-24 メモリ装置、演算処理装置、及びキャッシュメモリ制御方法

Country Status (2)

Country Link
US (1) US20140115264A1 (ja)
JP (1) JP5954112B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016505971A (ja) * 2012-12-20 2016-02-25 クアルコム,インコーポレイテッド マルチビットウェイ予測マスクを有する命令キャッシュ
JP2018190372A (ja) * 2017-05-09 2018-11-29 晶心科技股▲ふん▼有限公司Andes Technology Corporation プロセッサおよびそのウェイ予測方法

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10324850B2 (en) 2016-11-11 2019-06-18 Microsoft Technology Licensing, Llc Serial lookup of tag ways
US10565122B2 (en) * 2017-05-30 2020-02-18 Microsoft Technology Licensing, Llc Serial tag lookup with way-prediction
US10229061B2 (en) 2017-07-14 2019-03-12 International Business Machines Corporation Method and arrangement for saving cache power
US10684951B2 (en) * 2017-08-04 2020-06-16 International Business Machines Corporation Minimizing cache latencies using set predictors

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000099399A (ja) * 1998-09-19 2000-04-07 Apriori Micro Systems:Kk ウェイ予測型キャッシュメモリとそのアクセス方法
US20020112126A1 (en) * 2001-02-13 2002-08-15 Fujitsu Limited Cache memory system
US20020161976A1 (en) * 2001-04-27 2002-10-31 Masayuki Ito Data processor
US20050246499A1 (en) * 2004-04-30 2005-11-03 Nec Corporation Cache memory with the number of operated ways being changed according to access pattern
US20070113013A1 (en) * 2005-11-15 2007-05-17 Mips Technologies, Inc. Microprocessor having a power-saving instruction cache way predictor and instruction replacement scheme
WO2011151944A1 (ja) * 2010-06-04 2011-12-08 パナソニック株式会社 キャッシュメモリ装置、プログラム変換装置、キャッシュメモリ制御方法及びプログラム変換方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8225046B2 (en) * 2006-09-29 2012-07-17 Intel Corporation Method and apparatus for saving power by efficiently disabling ways for a set-associative cache
JP4980751B2 (ja) * 2007-03-02 2012-07-18 富士通セミコンダクター株式会社 データ処理装置、およびメモリのリードアクティブ制御方法。

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000099399A (ja) * 1998-09-19 2000-04-07 Apriori Micro Systems:Kk ウェイ予測型キャッシュメモリとそのアクセス方法
US20020112126A1 (en) * 2001-02-13 2002-08-15 Fujitsu Limited Cache memory system
JP2002236616A (ja) * 2001-02-13 2002-08-23 Fujitsu Ltd キャッシュメモリシステム
US20020161976A1 (en) * 2001-04-27 2002-10-31 Masayuki Ito Data processor
JP2002328839A (ja) * 2001-04-27 2002-11-15 Hitachi Ltd データ処理装置及びデータプロセッサ
US20050246499A1 (en) * 2004-04-30 2005-11-03 Nec Corporation Cache memory with the number of operated ways being changed according to access pattern
JP2005316842A (ja) * 2004-04-30 2005-11-10 Nec Corp キャッシュメモリおよびキャッシュ制御方法
US20070113013A1 (en) * 2005-11-15 2007-05-17 Mips Technologies, Inc. Microprocessor having a power-saving instruction cache way predictor and instruction replacement scheme
WO2011151944A1 (ja) * 2010-06-04 2011-12-08 パナソニック株式会社 キャッシュメモリ装置、プログラム変換装置、キャッシュメモリ制御方法及びプログラム変換方法
JP2011257800A (ja) * 2010-06-04 2011-12-22 Panasonic Corp キャッシュメモリ装置、プログラム変換装置、キャッシュメモリ制御方法及びプログラム変換方法

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016505971A (ja) * 2012-12-20 2016-02-25 クアルコム,インコーポレイテッド マルチビットウェイ予測マスクを有する命令キャッシュ
JP2018190372A (ja) * 2017-05-09 2018-11-29 晶心科技股▲ふん▼有限公司Andes Technology Corporation プロセッサおよびそのウェイ予測方法
US11281586B2 (en) 2017-05-09 2022-03-22 Andes Technology Corporation Processor and way prediction method thereof

Also Published As

Publication number Publication date
JP5954112B2 (ja) 2016-07-20
US20140115264A1 (en) 2014-04-24

Similar Documents

Publication Publication Date Title
JP5954112B2 (ja) メモリ装置、演算処理装置、及びキャッシュメモリ制御方法
US8966232B2 (en) Data processing system operable in single and multi-thread modes and having multiple caches and method of operation
US7594131B2 (en) Processing apparatus
US10146545B2 (en) Translation address cache for a microprocessor
US6427188B1 (en) Method and system for early tag accesses for lower-level caches in parallel with first-level cache
US9396117B2 (en) Instruction cache power reduction
KR20150016278A (ko) 캐시 및 변환 색인 버퍼를 갖는 데이터 처리장치
US6356990B1 (en) Set-associative cache memory having a built-in set prediction array
US11829763B2 (en) Early load execution via constant address and stride prediction
US7836253B2 (en) Cache memory having pipeline structure and method for controlling the same
CN105446900A (zh) 处理器和区分系统管理模式条目的方法
US11579879B2 (en) Processing pipeline with first and second processing modes having different performance or energy consumption characteristics
CN103365627A (zh) 执行单元内的数据转发系统和方法
JP2000231549A (ja) マイクロプロセッサ
US9424190B2 (en) Data processing system operable in single and multi-thread modes and having multiple caches and method of operation
JP2002007210A (ja) デジタルデータ処理システム、それに使用される集積回路キャッシュメモリ装置およびキャッシュメモリの動作方法
US9009413B2 (en) Method and apparatus to implement lazy flush in a virtually tagged cache memory
KR20160016737A (ko) 다중 페이지 크기 변환 색인 버퍼(tlb)용 장치 및 방법
US20220066947A1 (en) Translation Lookaside Buffer Striping for Efficient Invalidation Operations
US6898671B2 (en) Data processor for reducing set-associative cache energy via selective way prediction
US10719327B1 (en) Branch prediction system
US11327768B2 (en) Arithmetic processing apparatus and memory apparatus
Bardizbanyan et al. Speculative tag access for reduced energy dissipation in set-associative L1 data caches
WO2006038258A1 (ja) データプロセッサ
US10725928B1 (en) Translation lookaside buffer invalidation by range

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150706

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160428

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160530

R150 Certificate of patent or registration of utility model

Ref document number: 5954112

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150