JP2009282850A - キャッシュメモリシステム - Google Patents

キャッシュメモリシステム Download PDF

Info

Publication number
JP2009282850A
JP2009282850A JP2008135757A JP2008135757A JP2009282850A JP 2009282850 A JP2009282850 A JP 2009282850A JP 2008135757 A JP2008135757 A JP 2008135757A JP 2008135757 A JP2008135757 A JP 2008135757A JP 2009282850 A JP2009282850 A JP 2009282850A
Authority
JP
Japan
Prior art keywords
index
capacity
change
cache memory
invalidation
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
JP2008135757A
Other languages
English (en)
Other versions
JP5231867B2 (ja
Inventor
Hiroyuki Usui
弘之 薄井
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.)
Toshiba Corp
Original Assignee
Toshiba Corp
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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP2008135757A priority Critical patent/JP5231867B2/ja
Priority to US12/432,883 priority patent/US8108611B2/en
Publication of JP2009282850A publication Critical patent/JP2009282850A/ja
Application granted granted Critical
Publication of JP5231867B2 publication Critical patent/JP5231867B2/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/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
    • 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
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/601Reconfiguration of cache memory
    • 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

【課題】本発明は、キャッシュシステムにおいて、way数を維持したまま、キャッシュメモリの容量を動的に変更できるようにする。
【解決手段】たとえば、キャッシュメモリの容量を削減させる場合、プロセッサ11より“削減の指示”が出力される。すると、キャッシュ増減処理ユニット26は、“現在のサイズ”と“変更後のサイズ”とに応じて、無効化するインデックスの範囲を設定するとともに、アービタ24に対して、該当するインデックスの無効化を要求する。一方、インデックス変換機25は、アービタ24からのアドレスに対応する、“現在のサイズ”にもとづいたインデックスまたは“変更後のサイズ”にもとづいたインデックスのいずれかを選択し、タグメモリ21内から対応するタグ情報を読み出して、データメモリ23上の該当するインデックスを無効化する。
【選択図】 図1

Description

本発明は、キャッシュメモリシステムに関するもので、たとえば、キャッシュメモリの容量(メモリサイズ)を変更することが可能なキャッシュシステムに関するものである。
キャッシュシステムの消費電力を抑える方法として、データメモリおよびタグメモリを複数個に分割し、その一部のアドレスにしかアクセスしないことで、アクセス時の消費電力を下げる方法がある。また、アクセスしていない時のリーク電力が問題になってきている近年においては、セットアソシアティブキャッシュの一部のウェイ(way)へのアクセスを禁止することによってキャッシュメモリの容量を減らし、そのwayに割り当てられたメモリ用の電源を遮断する方法も取られるようになった。この方法を取る場合、あるwayへのアクセスを禁止した際に、そのwayに格納されていたデータが無効化されてしまうので、下の階層のメモリにデータを書き戻す必要がある。逆に、アクセス禁止を解除する際には、格納されているデータについては何も処理を行う必要がない。
しかしながら、上述した一部のwayへのアクセスを禁止する方法の場合、キャッシュメモリの容量を削減するためにway数を減らさなければならず、競合ミスに弱くなり、キャッシュメモリとしての性能が悪化してしまうという問題がある。また、way数以上には容量の増減ができないという問題もある。
なお、本発明に関連する技術として、以下のような提案がある(たとえば、特許文献1参照)。
この特許文献1に記載された発明は、可変サイズのキャッシュメモリを持つ集積回路の動作方法に関するものであって、キャッシュメモリサイズ信号に応じて変化するマスクを用いて、キャッシュメモリのサイズを可変させるようにしたものである。しかしながら、キャッシュメモリのサイズを可変させる場合には、キャッシュメモリへのアクセスを禁止する必要があった。
特開2007−172623号公報
本発明は、キャッシュメモリへのアクセスを禁止したりすることなく、way数を維持したまま、キャッシュメモリの容量を変更することが可能なキャッシュメモリシステムを提供することを目的とする。
本願発明の一態様によれば、ウェイ数がNのキャッシュメモリと、前記キャッシュメモリの容量を変更させるための指示にしたがって、前記容量を変更するとともに、前記容量を変更した際に無効となる位置に格納されているデータの無効化を行う無効化処理部とを具備し、前記無効化処理部は、前記キャッシュメモリのウェイ数を維持したまま、前記キャッシュメモリの容量を変更するものであることを特徴とするキャッシュメモリシステムが提供される。
本発明によれば、キャッシュメモリへのアクセスを禁止したりすることなく、way数を維持したまま、キャッシュメモリの容量を変更することが可能なキャッシュメモリシステムを提供できる。
以下、本発明の実施の形態について図面を参照して説明する。ただし、図面は模式的なものであり、各図面の寸法および比率などは現実のものとは異なることに留意すべきである。また、図面の相互間においても、互いの寸法の関係および/または比率が異なる部分が含まれていることは勿論である。特に、以下に示すいくつかの実施の形態は、本発明の技術思想を具体化するための装置および方法を例示したものであって、構成部品の形状、構造、配置などによって、本発明の技術思想が特定されるものではない。この発明の技術思想は、その要旨を逸脱しない範囲において、種々の変更を加えることができる。
[第1の実施形態]
図1は、本発明の第1の実施形態にしたがったキャッシュシステムの構成例を示すものである。なお、本実施形態では、プロセッサを含む集積回路として構成した場合を例に説明する。
図1において、プロセッサ11は、メモリアクセス時に、たとえば32ビット(bit)のアクセスアドレスを用いて、キャッシュメモリ部12へのアクセスを実行する。キャッシュメモリ部12は、タグメモリ21、タグ比較器22、および、データメモリ(キャッシュ)23によって構成されている。データメモリ23には、バス13が接続されている。
本実施形態の場合、たとえば図2に示すように、データメモリ23は、ラインサイズが256バイト(Byte)で、最大容量が512キロバイト(KByte)の、4−way・キャッシュ(way0〜way3)となっている。つまり、容量が512KByteのキャッシュの場合、256Byte×4wayが、512インデックス(index)分存在する。また、本実施形態においては、データメモリ23の容量を、たとえば512KByte,256KByte,128KByte,64KByteの4つのパターン(メモリサイズ)に変更できるものとする。なお、データメモリ23は、L1,L2,L3のように様々な階層に置かれるが、本実施形態では階層を特定しない。また、データメモリ23は、連想度に応じて複数の種類(たとえば、direct cache、set−associative cache、full−associative cache)があるが、本実施形態は、どの連想度のものにも対応が可能である。
キャッシュメモリの削減を行わない場合のキャッシュアクセス、つまり、データメモリ23の容量を変更しない場合のプロセッサ11からの通常のメモリアクセスは、図1に示すように、アービタ24およびインデックス変換機25を介して、タグメモリ21から該当するインデックスのタグ情報を引き出し、タグ比較器22でアクセスアドレス上のタグ情報とのタグ比較を行い、その結果に応じてデータメモリ23をアクセスすることにより行われる。
一方、キャッシュメモリの削減を行う場合のプロセッサ11からの通常のキャッシュアクセスは、キャッシュ増減処理ユニット26、アービタ24およびインデックス変換機25を介して、データメモリ23の容量の削減にともなうデータの無効化(インデックスの無効化・再割り当て)に応じて更新される、更新前または更新後のタグメモリ21内から該当するインデックスのタグ情報を引き出し、タグ比較器22でアクセスアドレス上のタグ情報とのタグ比較を行い、その結果に応じてデータメモリ23をアクセスすることにより行われる。
図3は、タグ比較器22でのタグ比較に使用されるアクセスアドレス上のタグ情報のサイズについて、メモリサイズごとに示すものである。すなわち、同図(a)は、メモリサイズを512KByteとした場合のアクセスアドレスであって、15bitのタグ情報(tag)と9ビットのインデックスとを有した、32bit構成とされている。同図(b)は、メモリサイズを256KByteとした場合のアクセスアドレスであって、16bitのタグ情報と8ビットのインデックスとを有した、32bit構成とされている。同図(c)は、メモリサイズを128KByteとした場合のアクセスアドレスであって、17bitのタグ情報と7ビットのインデックスとを有した、32bit構成とされている。同図(d)は、メモリサイズを64KByteとした場合のアクセスアドレスであって、18bitのタグ情報と6ビットのインデックスとを有した、32bit構成とされている。
なお、本実施形態の場合、キャッシュメモリの削減を可能とするために、タグメモリ21内に格納されるタグ情報のサイズは、現在のキャッシュメモリの容量に関わらず、図3(d)に示されたタグ情報と同じ「18bit」となっている。
次に、way数を保ったまま、キャッシュメモリの容量を削減させる際の動作について説明する。ここでは、容量を512KByteから128KByteに変更する場合を例に説明する。この例の場合、たとえば図4に示すように、384個分のインデックスを無効化する(write−backキャッシュの場合は、下位のメモリへ書き戻す)必要がある。無効化されたインデックスに割り当てられていたアドレスは、128インデックスごとに、変更後のインデックスに再割り当てし直される。たとえば、512KByte時にindex192,320,448にそれぞれ割り当てられた各アドレスは、128KByteに変更後は全てindex64に割り当てられることになる。変更後のサイズにもとづいた新しいインデックスは、変更前(現在)のサイズにもとづいた古いインデックスを、変更後のサイズによって割ったときの「余り」として求められる。
たとえば、プロセッサ11が、キャッシュメモリの容量を512KByteから128KByteに削減させる指示を出したとする。すると、その“削減の指示”は、キャッシュ増減処理ユニット26およびインデックス変換機25に送られる。
キャッシュ増減処理ユニット26は、たとえば図5に示すように、“削減の指示”がプロセッサ11から入力されると、“変更後のサイズ”を保持器26aにセットする。また、保持器26bには“現在のサイズ”がセットされており、“変更後のサイズ”および“現在のサイズ”を次インデックス算出器26cに送ることによって、無効化するインデックスの範囲を設定する。この例の場合は、index128〜511が無効化する範囲として設定される。次インデックス算出器26cは、また、無効化する範囲のインデックスの内、初めに処理する“処理対象インデックス”を保持器26dにセットする。
一方、プロセッサ11からの“削減の指示”が入力されると、ON/OFFステート26eがオン状態(ON)となる。そして、このオン状態のときに、保持器26dからの“処理対象インデックス”が入力されることにより、ON/OFFステート26eは、アービタ24に対して、該当するインデックスについての無効化を要求する。
インデックス変換機25は、たとえば図6に示すように、プロセッサ11からの“削減の指示”が入力されると、保持器25aに“変更後のサイズ”をセットする。また、ON/OFFステート25bがオン状態となるとともに、無効化対象テーブル25cを活性化する。無効化対象テーブル25cは、最大インデックス数(この例の場合、512インデックス)分のエントリを持ち、各エントリには“現在のサイズ”にもとづくインデックスが無効化対象か否かの情報が格納されている。また、無効化対象テーブル25cは、“削減の指示”が入力されると、無効化対象のインデックスのフラグが全て“オン”にセットされる。つまり、無効化対象テーブル25cは、キャッシュ増減処理ユニット26からの“処理対象インデックス”が入力された際に、保持器25dによって保持されている“現在のサイズ”にもとづくインデックスが無効化対象かどうかをチェックするのに使用される。
セレクタ(SEL)25eは、アービタ24から入力されたアクセスアドレスに対応する、“現在のサイズ”にもとづいたインデックスまたは“変更後のサイズ”にもとづいたインデックスのいずれかを選択する。その際、ON/OFFステート25bの状態と、無効化対象テーブル25cを参照することにより得られる“現在のサイズ”にもとづいたインデックスが無効化対象か否かの情報と、アクセスアドレスに付随してアービタ24から入力されるリトライフラグとによって、どちらのインデックスを使用するかが決定される。なお、ON/OFFステート25bは、キャッシュ増減処理ユニット26からの出力“無効化処理終了”によってオフ状態(OFF)となる。
図7は、上記したセレクタ25eにおける選択論理を示すものである。たとえば、キャッシュメモリの容量を削減する場合においては、キャッシュ増減処理ユニット26から“無効化要求”が出力される(ON/OFFステート26eの出力がON)。これにより、発生する通常のキャッシュアクセスとの競合が、アービタ24によって制御される。競合発生時、アービタ24は、通常のキャッシュアクセスまたは“無効化要求”のどちらの処理を優先しても構わない。
以下では、アービタ24において、「index192」に対する“無効化要求”が選択された場合を仮定して説明する。“無効化要求”時、リトライフラグは常にオフ状態である。そのため、“無効化要求”がインデックス変換機25に入力されると、セレクタ25eによって、アクセスするインデックス番号が選択される。この際、無効化のための処理を実行中なので、ON/OFFステート25bは常に“オン”となり、無効化対象テーブル25cの該当エントリのフラグ(無効化対象か否かの情報)も同様に常に“オン”になる。よって、アクセスするインデックス番号(選択結果)としては、保持器25dで保持されている“現在のサイズ(この例では、512KByte)”にもとづいたインデックス番号、つまり、「index192」が選択される。なお、この場合、“変更後のサイズ”にもとづいたインデックス番号は、192÷128の余りから「64」になるはずである。
次いで、選択された「index192」に応じて、タグメモリ21内からタグ情報が読み出される。この読み出しの結果、たとえば、way0〜2が“valid”であり、way3が“invalid”だったとすると、データメモリ23における、way0〜2の無効化のための処理が行われる。なお、データメモリ23がwrite−backキャッシュの場合は、“dirty状態”であるwayの書き戻しが必要である。
無効化のための処理が終了すると、タグ比較器22よりキャッシュ増減処理ユニット26に対して、“無効化処理終了”とともに、処理の終了した「インデックス番号」が通知される。タグ比較器22からの“無効化処理終了”は、プロセッサ11にも通知される。この通知を受けたキャッシュ増減処理ユニット26は、次インデックス算出器26cによって、次に処理する「インデックス番号」を決定し、それを保持器26dにセットする。また、キャッシュ増減処理ユニット26は、同時に、インデックス変換機25に対して、無効化のための処理が終了した「インデックス番号」を通知する。一方、インデックス変換機25は、無効化対象テーブル25cの、受け取った「インデックス番号」に該当するエントリのフラグを“オフ”する。こうして、次に処理する「インデックス番号」が決定したら、再度、キャッシュ増減処理ユニット26より“無効化要求”が出力される。
以上の動作を繰り返し、キャッシュ増減処理ユニット26に“無効化処理終了”とともに通知された「インデックス番号」が最後の無効化対象の「インデックス番号」の場合、“削減の指示”に対する無効化のための処理の終了なので、ON/OFFステート26eがオフ状態にセットされるとともに、保持器26bの“現在のサイズ”が保持器26aの“変更後のサイズ”によって更新される。また、“削減の指示”に対する無効化のための処理の終了はインデックス変換機25にも通知され、ON/OFFステート25bがオフ状態にセットされるとともに、保持器25dの“現在のサイズ”が保持器25aの“変更後のサイズ”によって更新される。
最終的には、フラグが“オフ”された無効化対象テーブル25cのエントリによってタグメモリ21内のタグ情報が更新されることにより、“削減の指示”に対する一連の動作が完了する。
次に、図8を参照して、無効化のための処理の最中に、プロセッサ11からの通常のキャッシュアクセスにより競合が発生した場合について説明する。プロセッサ11からの“アクセス要求”は、初めはリトライフラグがオフの状態でインデックス変換機25に入力される(ステップST01)。
このとき、インデックス変換機25は、たとえば図7に示したように、ON/OFFステート25bがオン状態であり、リトライフラグはオフ状態なので、アクセスするインデックスが“無効化対象”か否かに応じて、選択する「インデックス番号」を決定する(ステップST02)。たとえば、「index32」へのアクセスは、初めから“無効化対象”になっていないので、“変更後のサイズ”にもとづいた「インデックス番号」が選択される。この場合、削減の前後で「インデックス番号」に変化がないので、「index32」がそのまま選択される(ステップST03)。
また、たとえば「index192」へのアクセスにおいて、既に、その「インデックス番号」に対する無効化のための処理が終了している場合は、512KByte時に割り当てられていた「index192」に対応する位置にはもはや有効なデータが格納されていないので、“変更後のサイズ”にもとづいた「index64」が選択される。つまり、「index64」に対応する位置に有効なデータが格納し直されているので、以降は、変更後の「index64」で通常通りのアクセスとなる(ステップST03)。
一方、“無効化対象”の場合、たとえば「index192」へのアクセスにおいて、いまだ無効化のための処理が終わっていない場合は、「index192」によってタグメモリ21内のタグ情報を参照し、タグ比較器22でのタグ比較を行う(ステップST04)。“キャッシュヒット”の場合は、いまだ無効化されていない位置(“現在のサイズ”にもとづいた「index192」)上に有効なデータが存在するので、“通常のヒット処理”を行う(ステップST05,ST06)。
これに対し、“キャッシュミス”の場合、無効化される予定のインデックスにアクセスすると、無効化のための処理が無限に終了しない危険性があるので、選択された「インデックス番号」ではアクセスせず、リトライフラグをオン状態にした後、“アクセス要求”を再投入する(ステップST05,ST07)。再投入された“アクセス要求”では、たとえば図7に示したように、“変更後のサイズ”にもとづいた「インデックス番号」が必ず選択されるので、変更後の「index64」で通常のアクセスを行う(ステップST08)。
なお、無効化のための処理が終了する前に、さらに「index192」へのアクセス要求が入力された場合、同様の手順により、最終的には「index64」へアクセスされるので、データの不一致は起こらない。また、「index320」へのアクセス要求が入力され、これが“キャッシュミス”となり、「index64」へのアクセス要求が選択された場合も、図3(d)に示したように、64KByteのタグ情報(18bit)には512KByteの場合のindex(9bit)の上位3bitが含まれるので、「index192」へのアクセスと「index320」へのアクセスとで必ずタグ情報が異なる(インデックスの上位3bit(=タグ情報の下位3bit)が「011」または「101」)。このため、正しく“ヒット/ミス”が判定される。
このように、いずれの場合も無効化すべきインデックスに対応する位置に格納されているデータは無効化により変化しないので、必ずキャッシュメモリの容量を削減するための処理は正常に終了する。
上記したように、way数を保ったまま、キャッシュメモリの容量を削減できるようにしているので、way数を減らしてキャッシュメモリの容量を削減する場合に比べ、競合ミスに強い。また、容量の削減にともなってインデックスが変化するデータについてのみ、正しく無効化を行うとともに、削減の前後でインデックスが異なるアドレスへのアクセス要求についても、無効化のための処理の最中にアクセスできるので、動的に、つまり、通常のアクセス動作を禁止することなしに、キャッシュメモリの容量を削減することが可能となるなど、キャッシュ容量削減時のペナルティが少なくて済む。
また、キャッシュ容量削減時には、キャッシュシステムの消費電力を抑制できることは勿論である。
[第2の実施形態]
図9は、本発明の第2の実施形態にしたがったキャッシュシステムの構成例を示すものである。なお、本実施形態では、さらに、キャッシュメモリの容量を増加させる場合を例に説明する。また、第1の実施形態と同一の部分には同一の符号を付して、詳しい説明は割愛する。
たとえば、プロセッサ11が、way数を保ったまま、キャッシュメモリの容量を128Kbyteから512KByteに増加させる指示を出したとする。すると、その“増加の指示”は、インデックス変換機25、キャッシュ増減処理ユニット26およびタグ比較器22’に送られる。
ここで、「index0」のway0〜2には、サイズ変更後に、「index128,256,384」に配置されるデータがそれぞれ格納されているとする。この例の場合、たとえば図10に示すように、容量の増加にともなって、「index0」に格納されているデータの内、way0のデータは「index128」に、way1のデータは「index256」に、way2のデータは「index384」に、それぞれ配置し直す必要がある。このように、配置のし直しが必要な場合があるため、way数を単純に増加する場合とは異なり、“現在のサイズ”にもとづいたインデックスのデータを無効化しなければならない。
無効化のための処理は、上述した第1の実施形態の場合と同様に、キャッシュ増減処理ユニット26によって実行される。容量を増加させる場合は、現在の全てのインデックスに無効化すべきデータが格納されている可能性がある。よって、この例では「index0〜127」の各way0〜3が無効化のための処理の対象になる。
無効化するway0〜3は、タグ比較器22’によって選択される。すなわち、タグ比較器22’は、たとえば図11に示すように、“増加の指示”がプロセッサ11から入力されると、“変更後のサイズ”を保持器22aに、“現在のサイズ”を保持器22bに、それぞれ格納する。また、比較bit生成器22cにより、“現在のサイズ”と“変更後のサイズ”とから比較対象となる3bitのデータ(比較ビット)を生成する。一方、way0〜3ごとにタグ情報を読み出し、それぞれレジスタ22dに格納する。そして、各比較器22eにより、タグ情報の末尾3bitと比較ビットとをそれぞれ比較する。各比較器22eは、等しくない場合に“1”を出力する。さらに、演算器22fにより、それぞれ、比較器22eの出力とvalid信号とのビット積を取る。演算器22fでの結果(無効化bit)が“1”の場合、そのwayは無効化対象となる。
図12は、上記した比較bit生成器22cにおける生成論理を示すものである。なお、比較ビットの「?」は、“0”または“1”のどちらでもよいことを示している。また、比較ビットのbit数は、“最小サイズ時の必要tag長−最大サイズ時の必要tag長”で決まり、この例の場合は“18−15”で“3bit”となる。
図12に示すように、比較ビットは、それぞれ容量増加前後のindexに対応している。たとえば、キャッシュの容量を128KByteから512KByteに増加させる場合は、タグ情報の末尾が“000”または“001”のいずれかとなる。つまり、容量が128KByteの場合にインデックスが「0〜127」になるので、キャッシュメモリの増加を行った前後でのインデックスの割り当てに変化はない。
このようにして、無効化するway0〜3をタグ比較器22’により選択し、その選択結果に応じて、無効化のための処理をキャッシュ増減処理ユニット26によって実行することにより、way数はそのままで、キャッシュメモリの容量を増加させることが可能である。
なお、無効化のための処理の最中に、通常の“アクセス要求”が発生した場合には、上述した第1の実施形態の場合と同様に動作する。たとえば、無効化対象にアクセスする場合は、一度、“現在のサイズ”にもとづいた変更前のインデックスにアクセスする。そして、このアクセスが“キャッシュミス”となった場合に、改めて“変更後のサイズ”にもとづいたインデックスに対してアクセスを行うことになる。
本実施形態によれば、キャッシュメモリの容量を削減させる場合のみならず、それに加えて、容量の増加にともなってインデックスが変化するwayを無効化することにより、way数を保ったまま、キャッシュメモリの容量を増加させることが可能となる。しかも、通常のアクセス動作を同時に実行できるようにすることで、キャッシュメモリの容量を動的に増加させることが可能である。
[第3の実施形態]
図13は、本発明の第3の実施形態にしたがったキャッシュシステムの構成例を示すものである。なお、本実施形態は、キャッシュミス時のアクセスの再実行を防ぐことができるように構成した場合の例である。また、第1の実施形態と同一の部分には同一の符号を付して、詳しい説明は割愛する。
本実施形態の場合、インデックス変換機およびタグ比較器の構成が、第1の実施形態の場合と異なる。すなわち、本実施形態に係るインデックス変換機25’は、たとえば図14に示すように、セレクタ25e’へのリトライフラグの入力がない。よって、セレクタ25e’は、ON/OFFステート25bの状態と、無効化対象テーブル25cを参照することにより得られる“現在のサイズ”にもとづいたインデックスが無効化対象か否かの情報とによって、出力するindexA,indexBを選択する。出力されるindexA,indexBは、いずれも、入力されるアクセスアドレスに応じた、保持器25aによって保持されている“変更後のサイズ”にもとづいたインデックス、または、保持器25dによって保持されている“現在のサイズ”にもとづいたインデックスである。
タグ比較器22は、無効化のための処理が終了したことをプロセッサ11に通知するための機能を有していない。
図15は、上記したセレクタ25e’における選択論理を示すものである。なお、indexBの「Don’t Care」は、“現在”または“変更後”のどちらでもよいことを示している。
たとえば、キャッシュメモリの容量を変更(増加/削減)する場合、インデックス変換機25’は、セレクタ25e’によって選択されたindexA,indexBをタグメモリ21へ出力する。これにより、タグメモリ21からは、2つのindexA,indexBに対応するタグ情報がそれぞれ読み出され、タグ比較器22に出力される。その際、indexBが「Don’t Care」の場合は、タグ情報を読み出す必要はない。
タグ比較器22は、タグメモリ21内より読み出されたindexAに対応するタグ情報とアクセスアドレス上のタグ情報とを比較する。通常のタグ比較に使用されるのは、たとえば、indexAに対応したタグ情報である。indexBに対応したタグ情報は、たとえば、無効化のための処理の最中に、通常のアクセス要求がなされた際にのみ使用される。
次に、図16を参照して、無効化のための処理の最中に、プロセッサ11からの通常のキャッシュアクセスにより競合が発生した場合について説明する。プロセッサ11からの“アクセス要求”は、インデックス変換機25’に入力される(ステップST11)。
アクセスしたインデックスが無効化対象になっていない場合には、indexAに対応するタグ情報を使用して、通常通りのアクセス処理を行う(ステップST12,ST13)。
一方、無効化対象の場合は、同様に、indexAに対応するタグ情報を使って“キャッシュヒット/ミス”の判定を行う(ステップST12,ST14,ST15)。“キャッシュヒット”の場合は、通常のヒット処理を行う(ステップST16)。“キャッシュミス”の場合は、indexBに対応するタグ情報を用いてキャッシュミス時の処理を行う(ステップST17)。その際、indexBとしては、“変更後のサイズ”にもとづいたインデックスが選択されているので、結果的に、第1の実施形態の場合と同様のアクセスを実現できる。
本実施形態においては、キャッシュメモリの容量を変更する際の無効化のための処理の最中に通常のアクセス要求が発生した場合に、アクセス対象のデータが格納される可能性のある2つのインデックスに対応するタグ情報を同時に読み出すようにしているので、キャッシュミス時のアクセスの再実行を防止できるとともに、無効化のための処理の最中に発生した通常のアクセス要求に対するオーバヘッドを減らすことが可能となる。
なお、上記した各実施形態においては、いずれもキャッシュメモリのway数を“4”とした場合(4−way・キャッシュ)について説明したが、これに限定されるものではない。
また、way数とは無関係に、キャッシュメモリの容量を増減させるようにすることも容易に可能である。
また、キャッシュシステムとしては、必ずしもプロセッサを備える必要はなく、省略することもできる。
その他、本願発明は、上記(各)実施形態に限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で種々に変形することが可能である。さらに、上記(各)実施形態には種々の段階の発明が含まれており、開示される複数の構成要件における適宜な組み合わせにより種々の発明が抽出され得る。たとえば、(各)実施形態に示される全構成要件からいくつかの構成要件が削除されても、発明が解決しようとする課題の欄で述べた課題(の少なくとも1つ)が解決でき、発明の効果の欄で述べられている効果(の少なくとも1つ)が得られる場合には、その構成要件が削除された構成が発明として抽出され得る。
本発明の第1の実施形態にしたがったキャッシュシステムの構成例を示すブロック図。 本キャッシュシステムにおける、データメモリ(キャッシュ)の一例を示す構成図。 アクセスアドレスの構成をメモリサイズごとに示す図。 キャッシュの容量を、512KByteから128KByteに削減させる場合を例に示す図。 本キャッシュシステムにおける、キャッシュ増減処理ユニットの構成例を示すブロック図。 本キャッシュシステムにおける、インデックス変換機の構成例を示すブロック図。 インデックス変換機を構成するセレクタの選択論理を示す図。 無効化のための処理の実行中に、通常のキャッシュアクセス要求が発生した場合の処理の流れについて説明するために示すフローチャート。 本発明の第2の実施形態にしたがったキャッシュシステムの構成例を示すブロック図。 キャッシュの容量を、128KByteから512KByteに増加させる場合を例に示す図。 本キャッシュシステムにおける、タグ比較器の構成例を示すブロック図。 タグ比較器を構成する比較bit生成器の生成論理を示す図。 本発明の第3の実施形態にしたがったキャッシュシステムの構成例を示すブロック図。 本キャッシュシステムにおける、インデックス変換機の構成例を示すブロック図。 インデックス変換機を構成するセレクタの選択論理を示す図。 無効化のための処理の実行中に、通常のキャッシュアクセス要求が発生した場合の処理の流れについて説明するために示すフローチャート。
符号の説明
21…タグメモリ、22,22’…タグ比較器、23…データメモリ、24…アービタ、25,25’…インデックス変換機、26…キャッシュ増減処理ユニット。

Claims (5)

  1. ウェイ数がNのキャッシュメモリと、
    前記キャッシュメモリの容量を変更させるための指示にしたがって、前記容量を変更するとともに、前記容量を変更した際に無効となる位置に格納されているデータの無効化を行う無効化処理部と
    を具備し、
    前記無効化処理部は、前記キャッシュメモリのウェイ数を維持したまま、前記キャッシュメモリの容量を変更するものであることを特徴とするキャッシュメモリシステム。
  2. 前記無効化処理部は、
    変更前の容量と変更後の容量とに応じて無効化するインデックスを設定し、アービタに対して、設定したインデックスの無効化を要求する増減処理ユニットと、
    前記アービタからのアクセスアドレスに応じた、前記変更前の容量にもとづいたインデックスまたは前記変更後の容量にもとづいたインデックスのいずれかを選択し、タグメモリ内から対応するタグ情報を読み出すインデックス変換機と、
    を含むことを特徴とする請求項1に記載のキャッシュメモリシステム。
  3. 前記アービタは、前記無効化処理部の動作中に、前記キャッシュメモリに対するアクセス要求を受けると、
    前記アクセスアドレスに対応する、前記変更前の容量にもとづいたインデックスが無効化の対象でなければ、前記変更後の容量にもとづいたインデックスを選択するように前記インデックス変換機を制御して、前記変更後の容量にもとづいたインデックスによるアクセス処理を実行させ、
    前記変更前の容量にもとづいたインデックスが無効化の対象であって、既に無効化のための動作が終了している場合には、前記変更後の容量にもとづいたインデックスを選択するように前記インデックス変換機を制御して、前記変更後の容量にもとづいたインデックスによるアクセス処理を実行させ、
    前記変更前の容量にもとづいたインデックスが無効化の対象であって、無効化のための動作が終了していない場合には、前記変更前の容量にもとづいたインデックスを選択するように前記インデックス変換機を制御し、前記変更前の容量にもとづいたインデックスを用いたタグ比較結果がヒットしたならば、前記変更前の容量にもとづいたインデックスによるアクセス処理を実行させ、前記タグ比較結果がミスしたならば、前記変更後の容量にもとづいたインデックスを選択するように前記インデックス変換機を制御して、前記変更後の容量にもとづいたインデックスによるアクセス処理を実行させる
    ことを特徴とする請求項2に記載のキャッシュメモリシステム。
  4. 前記指示が、前記キャッシュメモリの容量を増加させる指示の場合、無効化するウェイを設定するためのタグ比較器をさらに備えることを特徴とする請求項1に記載のキャッシュメモリシステム。
  5. 前記インデックス変換機は、前記変更前の容量にもとづいたインデックスまたは前記変更後の容量にもとづいたインデックスのいずれかを第1,第2の選択インデックスとして選択するものであって、
    前記無効化処理部の動作中に、前記キャッシュメモリに対するアクセス要求を受けると、
    前記アクセスアドレスに対応する、前記変更前の容量にもとづいたインデックスが無効化の対象でない場合には、前記第1の選択インデックスによるアクセス処理を実行し、
    前記変更前の容量にもとづいたインデックスが無効化の対象である場合には、前記第1の選択インデックスを用いたタグ比較結果がヒットしたならば、前記第1の選択インデックスによるアクセス処理を実行し、前記タグ比較結果がミスしたならば、前記第2の選択インデックスによるアクセス処理を実行する
    ことを特徴とする請求項2に記載のキャッシュメモリシステム。
JP2008135757A 2008-05-23 2008-05-23 キャッシュメモリシステム Expired - Fee Related JP5231867B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2008135757A JP5231867B2 (ja) 2008-05-23 2008-05-23 キャッシュメモリシステム
US12/432,883 US8108611B2 (en) 2008-05-23 2009-04-30 Cache memory system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008135757A JP5231867B2 (ja) 2008-05-23 2008-05-23 キャッシュメモリシステム

Publications (2)

Publication Number Publication Date
JP2009282850A true JP2009282850A (ja) 2009-12-03
JP5231867B2 JP5231867B2 (ja) 2013-07-10

Family

ID=41342930

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008135757A Expired - Fee Related JP5231867B2 (ja) 2008-05-23 2008-05-23 キャッシュメモリシステム

Country Status (2)

Country Link
US (1) US8108611B2 (ja)
JP (1) JP5231867B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012022616A (ja) * 2010-07-16 2012-02-02 Panasonic Corp 共有メモリシステム及びその制御方法

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8412971B2 (en) * 2010-05-11 2013-04-02 Advanced Micro Devices, Inc. Method and apparatus for cache control
US10101925B2 (en) * 2015-12-23 2018-10-16 Toshiba Memory Corporation Data invalidation acceleration through approximation of valid data counts
US20240061784A1 (en) * 2022-08-18 2024-02-22 Samsung Electronics Co System and method for performing caching in hashed storage

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5489444A (en) * 1977-12-27 1979-07-16 Fujitsu Ltd Associative memory processing system
JP2006040176A (ja) * 2004-07-29 2006-02-09 Fujitsu Ltd キャッシュメモリ装置およびメモリ制御方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2433613B (en) 2005-12-22 2010-10-20 Advanced Risc Mach Ltd Variable size cache memory support within an integrated circuit
US20080114924A1 (en) * 2006-11-13 2008-05-15 Jack Edward Frayer High bandwidth distributed computing solid state memory storage system

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5489444A (en) * 1977-12-27 1979-07-16 Fujitsu Ltd Associative memory processing system
JP2006040176A (ja) * 2004-07-29 2006-02-09 Fujitsu Ltd キャッシュメモリ装置およびメモリ制御方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012022616A (ja) * 2010-07-16 2012-02-02 Panasonic Corp 共有メモリシステム及びその制御方法

Also Published As

Publication number Publication date
US20090292880A1 (en) 2009-11-26
JP5231867B2 (ja) 2013-07-10
US8108611B2 (en) 2012-01-31

Similar Documents

Publication Publication Date Title
KR101569160B1 (ko) 캐시에서의 웨이 할당 및 웨이 로킹 방법
US7913041B2 (en) Cache reconfiguration based on analyzing one or more characteristics of run-time performance data or software hint
US7284112B2 (en) Multiple page size address translation incorporating page size prediction
JP5217432B2 (ja) セクタ機能付きキャッシュメモリ
US9292447B2 (en) Data cache prefetch controller
US6823427B1 (en) Sectored least-recently-used cache replacement
KR102546238B1 (ko) 다중 테이블 분기 타겟 버퍼
KR102613645B1 (ko) 캐시의 콘텐츠 트랙킹
JP2005528695A (ja) キャッシュ置換ポリシーの簡略化した実施態様を用いたマルチスレッド化キャッシュのための方法および装置
JP4920378B2 (ja) 情報処理装置およびデータ検索方法
JP2017516234A (ja) 次の読取りアドレスプリフェッチングによるメモリ容量圧縮および/またはメモリ帯域幅圧縮を利用するメモリコントローラ、ならびに関連するプロセッサベースシステムおよび方法
JP2005528694A (ja) スレッド識別子に基づくキャッシュ追い出しを用いたマルチスレッド化キャッシュのための方法および装置
EP2926257B1 (en) Memory management using dynamically allocated dirty mask space
US9720847B2 (en) Least recently used (LRU) cache replacement implementation using a FIFO storing indications of whether a way of the cache was most recently accessed
JP2010532537A (ja) 階層型キャッシュタグアーキテクチャ
CN112612727A (zh) 一种高速缓存行替换方法、装置及电子设备
JP2010033480A (ja) キャッシュメモリおよびキャッシュメモリ制御装置
US7761665B2 (en) Handling of cache accesses in a data processing apparatus
JP5231867B2 (ja) キャッシュメモリシステム
JP2014115851A (ja) データ処理装置及びその制御方法
US20120124291A1 (en) Secondary Cache Memory With A Counter For Determining Whether to Replace Cached Data
JP4009306B2 (ja) キャッシュメモリおよびその制御方法
US6408364B1 (en) Apparatus and method for implementing a least recently used cache replacement algorithm
US20090150619A1 (en) Coherent caching of local memory data
US20180052778A1 (en) Increase cache associativity using hot set detection

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100802

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120829

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120904

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121105

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20121204

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130204

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130322

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20160329

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees