JP2015184794A - キャッシュメモリシステムおよびプロセッサシステム - Google Patents

キャッシュメモリシステムおよびプロセッサシステム Download PDF

Info

Publication number
JP2015184794A
JP2015184794A JP2014058817A JP2014058817A JP2015184794A JP 2015184794 A JP2015184794 A JP 2015184794A JP 2014058817 A JP2014058817 A JP 2014058817A JP 2014058817 A JP2014058817 A JP 2014058817A JP 2015184794 A JP2015184794 A JP 2015184794A
Authority
JP
Japan
Prior art keywords
access
information
cache
data
memory
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
JP2014058817A
Other languages
English (en)
Other versions
JP6118285B2 (ja
Inventor
武田 進
Susumu Takeda
進 武田
藤田 忍
Shinobu Fujita
忍 藤田
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 JP2014058817A priority Critical patent/JP6118285B2/ja
Priority to PCT/JP2015/058417 priority patent/WO2015141820A1/ja
Publication of JP2015184794A publication Critical patent/JP2015184794A/ja
Priority to US15/262,178 priority patent/US20160378652A1/en
Application granted granted Critical
Publication of JP6118285B2 publication Critical patent/JP6118285B2/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/0897Caches characterised by their organisation or structure with two or more cache hierarchy levels
    • 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/0804Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
    • 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
    • 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/10Address translation
    • G06F12/1009Address translation using page tables, e.g. page table structures
    • 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/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • G06F12/145Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being virtual, e.g. for virtual blocks or segments before a translation mechanism
    • 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
    • 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/1024Latency reduction
    • 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/1041Resource optimization
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/22Employing cache memory using specific memory technology
    • G06F2212/225Hybrid cache memory, e.g. having both volatile and non-volatile portions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/28Using a specific disk cache architecture
    • G06F2212/283Plural cache memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/68Details of translation look-aside buffer [TLB]
    • 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)
  • Computer Security & Cryptography (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

【課題】特性の異なる2以上のメモリを効率よく使い分けて、処理効率が低下しないようにする。【解決手段】キャッシュメモリシステムは、特性の異なる2以上のメモリを含む階層化メモリ群と、プロセッサのアクセス要求に含まれる仮想アドレスから物理アドレスへのアドレス変換情報を格納するとともに、プロセッサからアクセス要求のあった各データについてのアクセス頻度に関する情報とアクセス制限に関する情報との少なくとも一方を格納するアクセス情報記憶部と、プロセッサからアクセス要求のあった各データについてのアクセス情報記憶部内のアクセス頻度に関する情報とアクセス制限に関する情報との少なくとも一方の情報に基づき、特定のメモリを階層化メモリ群の中から選択してアクセス制御を行うコントローラと、を備える。【選択図】図1

Description

本発明の実施形態は、キャッシュメモリシステムおよびプロセッサシステムに関する。
メモリウォール問題と称されるように、メモリアクセスはプロセッサコアの性能と消費電力のボトルネックとなっている。この課題を緩和するため、キャッシュメモリの大容量化が進んでいる。
既存のキャッシュメモリは、SRAM(Static Random Access Memory)で構成するのが一般的であるが、SRAMは高速であるが、待機電力が大きく、メモリセルの面積も大きいため、メモリ容量を増やすのは容易ではない。
このような背景から、待機電力が小さくて、微細化も容易なMRAM(Magnetoresistive Random Access Memory)をキャッシュメモリに採用する提案がなされている。
しかしながら、通常のMRAMは、読出し速度に対して書込み速度が遅く、消費電力も大きいという問題がある。MRAMをキャッシュメモリとして用いる場合、書込み頻度の高いデータをMRAMに格納したとすると、プロセッサシステム全体の処理効率が低下するおそれがある。
A Novel Architecture of the 3D Stacked MRAM L2 Cache for CMPs(HPCA, 2008)
本発明が解決しようとする課題は、特性の異なる2以上のメモリを効率よく使い分けて、処理効率が低下しないようにしたキャッシュメモリシステムおよびプロセッサシステムを提供することである。
本実施形態によれば、特性の異なる2以上のメモリを含む階層化メモリ群と、
プロセッサのアクセス要求に含まれる仮想アドレスから物理アドレスへのアドレス変換情報を格納するとともに、前記プロセッサからアクセス要求のあった各データについてのアクセス頻度に関する情報とアクセス制限に関する情報との少なくとも一方を格納するアクセス情報記憶部と、
前記プロセッサからアクセス要求のあった各データについての前記アクセス情報記憶部内のアクセス頻度に関する情報とアクセス制限に関する情報との少なくとも一方の情報に基づき、特定のメモリを前記階層化メモリ群の中から選択してアクセス制御を行うコントローラと、を備えるキャッシュメモリシステムが提供される。
一実施形態によるプロセッサシステム1の概略構成を示すブロック図。 第1の実施形態における各キャッシュメモリ6,7およびメインメモリ10のアクセス優先度を示す図。 TLB4の内部構造の一例を示す図。 特定の階層のメモリのみについてのアクセス頻度情報20を取得するプロセッサシステム1のブロック図。 同一階層ハイブリッドキャッシュの一例を示す図。 同一階層ハイブリッドキャッシュにおける書き込み手順の一例を示すフローチャート。 他階層ハイブリッドキャッシュの一例を示す図。 他階層ハイブリッドキャッシュにおける書き込み手順の一例を示すフローチャート。
以下、図面を参照して本発明の実施形態を説明する。以下の実施形態では、キャッシュメモリシステムおよびプロセッサシステム内の特徴的な構成および動作を中心に説明するが、キャッシュメモリシステムおよびプロセッサシステムには以下の説明で省略した構成および動作が存在しうる。ただし、これらの省略した構成および動作も本実施形態の範囲に含まれるものである。
図1は一実施形態によるプロセッサシステム1の概略構成を示すブロック図である。図1のプロセッサシステム1は、プロセッサ(CPU:Central Processing Unit)2と、メモリ管理ユニット(MMU:Memory Management Unit)3と、トランスレーション・ルックアサイド・バッファ(TLB:Translation Lookaside Buffer)4と、ページテーブル(PT)5と、1次キャッシュメモリ(L1キャッシュ)6と、2次キャッシュメモリ(L2キャッシュ7)7と、を備えている。
L1およびL2キャッシュ6,7には、メインメモリ10に格納されたデータ、またはメインメモリ10に格納されるべきデータの少なくとも一部が格納される。これらキャッシュ6,7は、その内部に保持するデータを一意に識別可能なアドレス情報を保持するタグ部を有する。タグ部の実装形態には、専用のメモリ領域を保持するものや、データを保持するメモリ領域の一部に保持するものなど様々な実装形態があり、本実施形態ではそれら全てと組み合わせ可能である。
図1では、L2キャッシュ7までの2階層のキャッシュメモリを設ける例を示しているが、L2キャッシュ7よりも高次のキャッシュメモリを設けてもよい。すなわち、本実施形態では、特性の異なる2以上のメモリが異なる階層に備えられているか、特性の異なる2つ以上のメモリが同一階層に備えられていることが前提条件となる。ここで、特性とは、例えばアクセス速度である。この他、特性は、消費電力でもよいし、容量でもよいし、それ以外のメモリを区別する種々の特性でもよい。
以下では、簡略化のため、L2キャッシュ7までの2階層のキャッシュ構造を有する例を説明する。
メインメモリ10以外の、プロセッサ2、MMU3、L1キャッシュ6およびL2キャッシュ7は、例えば一つのチップに集積される。例えば、プロセッサ2、MMU3、L1キャッシュ6およびが1つのチップに集積され、L2キャッシュ7は別のチップに集積され、これらがチップ同士の積層構造に基づき、金属配線によって直接接合されているシステムであってもよい。本実施形態では、MMU3、L1およびL2キャッシュ6,7をキャッシュメモリシステムと呼ぶ。なお、後述するメインメモリ10、TLB4、ページテーブル5もキャッシュメモリシステムに含まれても良いが、含まれなくても良い。
L1およびL2キャッシュ6,7は、メインメモリ10よりも高速アクセスが可能な半導体メモリで構成されている。それぞれのキャッシュへのデータ配置ポリシには様々なバリエーションが考えられる。例えば、Inclusion方式がある。この場合、L2キャッシュ7には、L1キャッシュ6に格納されたデータのすべてが格納される。
その他、例えば、Exclusion方式がある。この方式では、例えばL1キャッシュ6とL2キャッシュ7に同じデータは配置されない。また、例えば、Inclusion方式とExclusion方式のハイブリッド方式がある。この方式では、例えばL1キャッシュ6とL2キャッシュ7で重複して保持されるデータもあるし、排他的に保持されるデータもある。
これらの方式は、2つのキャッシュ6,7間のデータ配置ポリシであり、複数階層のキャッシュ構成では様々な組み合わせが考えられる。例えば、全ての階層でInclusion方式であってもよい。例えば、L1キャッシュ6とL2キャッシュ7はExclusive方式で、L2キャッシュ7とメインメモリ10はInclusion方式であってもよい。本実施形態に示される方式は、これら上記に記した様々なデータ配置ポリシと組み合わせることが可能である。
キャッシュの更新方式にも様々な方式が存在するが、本実施形態はそれら全てと組み合わせ可能である。例えば、キャッシュ書き込みヒット時の書き込み方式がライトスルーであってもよいし、ライトバックであってもよい。また、キャッシュ書き込みミス時の書き込み方式がライトアロケートであってもよいし、ノーライトアロケートであってもよい。
L2キャッシュ7のメモリ容量はL1キャッシュ6のメモリ容量以上である。このように、高次のキャッシュメモリほどメモリ容量が大きくなる。従って、高次のキャッシュメモリには集積度が高く、容量に比例する傾向にあるリーク電力が少ないメモリを用いることが望ましい。このようなメモリとして、例えば、MRAM(Magnetoresistive Random Access Memory)等の不揮発メモリが考えられる。また、例えば、低リーク電力プロセスを用いたSRAMやDRAMであってもよい。
ページテーブル5は、OSが管理する仮想アドレス空間と物理アドレス空間のマッピングを格納するテーブルである。一般的に、仮想アドレスがインデックスとして用いられ、仮想アドレス毎に対応する物理アドレス等を格納する領域をもつ。ページテーブル5内の1つの仮想アドレスに対応する領域をページエントリとよぶ。ページテーブル5は、一般的には、メインメモリ10の主記憶空間上に配置される。
TLB4はページテーブル5内の一部のページエントリをキャッシングするメモリ領域である。一般的にハードウェアで実装され、ソフトウェアで実装されるページテーブル5より高速にアクセス可能である。
MMU3はTLB4とページテーブル5を管理し、プロセッサ2が発行した仮想アドレスを物理アドレスに変換するアドレス変換機能(仮想記憶管理)、メモリ保護機能、キャッシュ制御機能、バス調停機能、等の機能を提供する。L1キャッシュ6等の上位階層キャッシュは仮想アドレスでアクセスされることもあるが、一般的に、L2キャッシュ7以下の下位階層のメモリはMMU3によって変換された物理アドレスでアクセスされる。MMU3は、メインメモリ10へのデータ配置とデータ追い出しの際に、仮想アドレスと物理アドレスとの変換テーブルを更新する。なお、MMU3は全てをハードウェアで実装したり、全てをソフトウェアで実装したり、それらのハイブリッドで実装する等、様々な実装形態が存在する。本実施形態に示される方式は、これら全ての実装形態と組み合わせ可能である。
図1では、MMU3とは別個にTLB4を設けているが、通常はMMU3の内部にTLB4が設けられる。本実施形態では、便宜上、MMU3とTLB4を別個に取り扱うが、TLB4がMMU3に内蔵される場合も含むものとする。
メインメモリ10は、L1およびL2キャッシュ6,7よりもメモリ容量が大きいことから、プロセッサ2等が実装されるチップとは別個の1以上のチップで構成されることが多い。メインメモリ10を構成するメモリセルは、例えばDRAM(Dynamic RAM)セルである。なお、TSV(Through Silicon Via)等の技術を用いて、プロセッサ2等と一つのチップに混載してもよい。
図2は第1の実施形態における各キャッシュメモリ6,7およびメインメモリ10のアクセス優先度を示す図である。図示のように、プロセッサ2が発行した仮想アドレスに対応する物理アドレスは、まず最優先にL1キャッシュ6に送られる。この物理アドレスに対応するデータ(以下、対象データ)がL1キャッシュ6にある場合は、プロセッサ2はそのデータにアクセスすることになる。L1キャッシュ6のメモリ容量は、例えば数10kバイト程度である。
対象データがL1キャッシュ6にない場合は、対応する物理アドレスはL2キャッシュ7に送られる。L2キャッシュ7に対象データがある場合は、プロセッサ2はそのデータにアクセスすることになる。L2キャッシュ7のメモリ容量は、例えば数100kバイト〜数Mバイト程度である。
対象データがL2キャッシュ7にない場合は、対応する物理アドレスはメインメモリ10に送られる。本実施形態では、メインメモリ10には、L2キャッシュ7に格納されている全データが格納されているものとする。本実施形態は、上述したキャッシュ間データ配置ポリシに限定されるものではない。メインメモリ10には、MMU3で管理されるページ単位のデータが格納される。一般的に、MMU3で管理されるページ単位のデータはメインメモリ10と補助記憶装置に配置されるが、本実施形態では簡易化のため全てのデータがメインメモリ10に配置されているものとする。本実施形態では、メインメモリ10に対象データがある場合は、プロセッサ2はそのデータにアクセスすることになる。メインメモリ10のメモリ容量は、例えば数Gバイト程度である。
このように、L1およびL2キャッシュ6,7は階層化されており、次数の大きい(下位階層の)キャッシュメモリほどメモリ容量は大きい。本実施形態では、簡単化のため、次数の大きいキャッシュメモリには、次数の小さい(上位階層の)キャッシュメモリに格納されている全データが格納されるものとしている。
図3はTLB4の内部構造の一例を示す図である。TLB4は、ページ単位で各種情報を管理する。ここで、ページとは、例えば4kバイトのデータである。
図3は1ページ分のページエントリ情報11の一例を示している。図3のページエントリ情報11は、アドレス変換情報12と、ダーティビット13と、アクセスビット14と、ページ・キャッシュ・ディセーブルビット15と、ページ・ライトスルービット16と、ユーザ・スーパーバイザビット17と、リードライトビット(リードライト情報)18と、プレゼントビット19とを有し、これ以外に、アクセス頻度情報20を有する。
図3に示したページエントリ情報11内の各種情報の配置順序は一例であり、図示したものに限定されるものではない。なお、本実施形態を既存のプロセッサ2に適用する場合、すなわち既存のページテーブル5にアクセス頻度情報20を追加する場合には、既存のページエントリ情報11の空き領域にアクセス頻度情報20を格納する方式と、既存のページエントリ情報11のビット幅を拡張する方式とが考えられ、いずれの方式を採用してもよい。
更に、アクセス頻度情報20を含むページエントリ情報11は、TLB4のみに設けられる場合と、ページテーブル5のみに設けられる場合と、TLB4とページテーブル5両方に設けられる場合とが考えられる。これら3つの選択肢のいずれを採用する場合も、上述した既存のページエントリ情報11にアクセス頻度情報20を追加する方式と既存のページエントリ情報11のビット幅を拡張する方式とのいずれかと組み合わせ可能である。本実施形態では、アクセス頻度情報20を格納するTLB4とページテーブル5を総称してアクセス情報記憶部と呼ぶ。
アクセス頻度情報20をTLB4とページテーブル5の両方に設ける場合、ページテーブル5も図3と同様の内部構造のページエントリ情報11を有するのが望ましい。TLB4には、プロセッサ2が最近発行した仮想アドレスに関するアドレス変換情報が格納されるのに対して、ページテーブル5には、メインメモリ10の全体に関するアドレス変換情報が格納されるため、プロセッサ2が発行した仮想アドレスについてのページエントリ情報11がTLB4内に存在しない場合でも、ページテーブル5を参照することで、該当するページエントリ情報11内に格納されたアクセス頻度情報20を取得できる。また、TLB4内の少なくとも一部のページエントリ情報11を追い出す(フラッシュする)ときは、フラッシュすべきページエントリ情報11と対応するアクセス頻度情報20とをページテーブル5に書き戻すのが望ましい。これにより、TLB4に格納しきれなかったページエントリ情報11と対応するアクセス頻度情報20をページテーブル5に格納できる。
本実施形態では、一例として、TLB4とページテーブル5の両方が、図3に示すページエントリ情報11を保持し、ページエントリ情報11の中にアクセス頻度情報20が含まれる方式を採用する例を説明する。また、既存のページエントリにはアクセス頻度情報20を追加する空き領域が十分にあるものと仮定する。
図3に示すページエントリ情報11内のアドレス変換情報12は、プロセッサ2が発行した仮想アドレスを物理アドレスに変換するための情報である。例えば、論理アドレスに対応する物理アドレスや、階層化されたページテーブル5へのポインタがこれにあたる。ダーティビット13は、このページに書き込みを行ったときに1に設定される。アクセスビット14は、このページにアクセスすると1に設定される。ページ・キャッシュ・ディセーブルビット15は、このページへのキャッシングを禁止するときに1に設定される。ページ・ライトスルービット16は、ライトスルーするときに0に設定され、ライトバックするときに1に設定される。なお、ライトスルーとは、キャッシュメモリとメインメモリ10の両方にデータを書き込むことを指し、ライトバックとは、キャッシュメモリに先にデータを書き込み、その後にメインメモリ10に書き戻すことを指す。ユーザ・スーパーバイザビット17は、該当ページをユーザモードで使用するか、スーパーバイザモードで使用するかを設定するものである。リードライト情報に対応するリードライトビット18は、書き込みを許可されている場合に1に設定され、それ以外は0に設定される。プレゼントビット19は、このページがメインメモリ10に存在するときに1に設定される。これらの情報は、市場に存在するCPUにおいても様々な形態があるように、上記の例に用いた実施形態のみに限定されるものではない。
アクセス頻度情報20とは、単位時間当たりのメモリアクセス情報である。例えば、単位時間当たりのアクセス回数や、単位時間当たりのミス回数がある。より具体的には、例えば、単位時間あたりに、読み込みと書き込みのどちらが多いかという情報(W/R情報)や、キャッシュヒットとキャッシュミス(ヒット/ミス情報)のどちらが多いかという情報があげられる。なお、前述の書き込みとは、CPU2によるデータの更新を指す。キャッシュの格納データの入れ替え(リプレースメント)による書き込みを含んでもよい。なお、本実施形態では、簡単化のため、書き込みとはCPU2によるデータの更新を指すものする。
アクセス頻度情報20の具体的なデータ形式は特に問わないが、例えばW/R情報としては、プロセッサ2がアクセスしたアドレスをページ単位でカウントする飽和カウンタを設けて、アクセスが書込みであれば飽和カウンタをカウントアップし、アクセスが読出しであればカウントダウンすればよい。この場合のアクセス頻度情報20は、飽和カウンタのカウント値である。このカウント値が大きければ、書込み頻度が高いデータであることがわかる。飽和カウンタは、例えば、MMU3に設ければよい。MMU3は、飽和カウンタのカウント値により、書き込み頻度が高いデータか否かを迅速に判断できる。
同様に、例えばキャッシュヒット/ミス情報としては、キャッシュヒット・ミスをカウントする飽和カウンタを設けて、アクセスがキャッシュミスであれば、飽和カウンタをカウントアップし、アクセスがヒットであればカウントダウンすればよい。このカウント値が大きければ、キャッシュミス頻度が高いデータであることが分かる。さらに、飽和カウンタに加え、例えば、キャッシュアクセス回数を保持しておけば、全アクセスに対するキャッシュミス頻度の全アクセスにおける割合の情報をえることができる。
なお、これらの情報を保持する単位は、上記で示したページ単位以外にも様々な形態が考えられる。例えば、ページ内に保持するライン毎にデータを保持してもよい。例えば、ページサイズが4Kバイトでラインサイズが64バイトの場合には、ページ内に64個のラインが存在するため、TLBやページテーブルの各エントリ毎にライン毎の情報を保持する64個の領域を設けてもよい。また、ページ単位で情報を保持する形態と、ライン単位で情報を保持する形態との中間の形態として、例えば、ライン単位の情報をハッシュ化してページ単位で保持する形態でもよいし、少なくともページ単位よりは小さい複数のラインをまとめて1つの情報を保持してもよい。本実施形態では、簡単化のためページ単位で情報を保持する形態を示す。
TLB4やページテーブル5内のページエントリ情報11のうち、アクセス頻度情報20以外の情報は、本明細書ではアクセス制限情報と呼ぶ。これに対して、アクセス頻度情報20は、プロセッサ2のアクセス要求またはキャッシュメモリへのアクセス情報に応じてMMU3が生成する情報である。
本実施形態の特徴の一つは、MMU3が、ページエントリ情報11内のアクセス制限情報とアクセス頻度情報20の少なくとも一方に基づいて、複数階層のメモリの中から、アクセスすべきメモリを選択することである。すなわち、MMU3は、アクセス制限情報とアクセス頻度情報20とに基づいて、アクセスすべきメモリの選択 に利用する情報の提供元として機能する。
端的な例としては、ダーティビットやリードライトビット等のアクセス制限情報と、アクセス頻度情報20とに基づいて、書込み頻度の高いデータか否かを判別し、書込み頻度の高いデータの場合には、書込み速度の速いメモリまたは書き込み時の消費電力の少ないメモリに書き込むことが考えられる。
より具体的には、L2キャッシュ7のデータキャッシュ部をMRAMとSRAMを用いて構成する場合に、書込み速度はMRAMよりもSRAMの方が速いため、書込み頻度の高いデータについてはMRAMに書かずにSRAMに書き込むようにする。これにより、プロセッサ2の書込み効率の向上が図れる。
TLB4やページテーブル5内のページエントリ情報11に含まれるアクセス頻度情報20は、すべての階層のメモリ(L1キャッシュ6、L2キャッシュ7およびメインメモリ10)についてのアクセス頻度情報20であってもよいし、特定の階層のメモリ(例えばL2キャッシュ7)のみについてのアクセス頻度情報20であってもよい。
すべての階層のメモリについてのアクセス頻度情報20を取得する場合は、図1のブロック図に示すように、プロセッサ2が発行するすべてのアクセス要求をMMU3で取得して、MMU3内で、上述した飽和カウンタ等を用いてページ単位でアクセス頻度情報20を更新すればよい。
一方、特定の階層のメモリのみについてのアクセス頻度情報20を取得する場合は、プロセッサシステム1のブロック構成は例えば図4のようなものになる。図4の場合、アクセス頻度情報20を取得する対象であるL2キャッシュ7からMMU3に、書込みおよび読出しを行ったアドレス情報を通知する。この情報を受けて、MMU3内の飽和カウンタで計数動作を行って、アドレス頻度情報を更新すればよい。
上述したように、本実施形態では、ダーティビットやリードライトビットからなるアクセス制限情報とアクセス頻度情報20とに基づいて、アクセスすべきメモリを選択しているが、選択対象であるメモリは、同一階層に並列的に特性の異なる複数のメモリを配置する場合(以下、この場合を同一階層ハイブリッドキャッシュと呼ぶ)と、異なるキャッシュ階層に特性の異なる複数のメモリを配置する場合(以下、この場合を他階層ハイブリッドキャッシュと呼ぶ)とがある。
(同一階層ハイブリッドキャッシュ)
図5は同一階層ハイブリッドキャッシュの一例を示す図である。図5のキャッシュメモリは、例えばL2キャッシュ7である。図5のL2キャッシュ7は、アドレス情報を格納するタグ部21と、データを格納するデータキャッシュ部22と、キャッシュコントローラ23とを有し、データキャッシュ部22は、MRAMからなる第1メモリ部24と、SRAMからなる第2メモリ部25とを有する。第1メモリ部24は、書込み速度が第2メモリ部25より遅いものの、セル面積を小さくできるため、第1メモリ部24の方が第2メモリ部25よりもメモリ容量が大きい。
MMU3は、アクセス制限情報やアクセス頻度情報20に基づいて、第1メモリ部24と第2メモリ部25のどちらにアクセスすべきかを選択し、その選択情報をL1キャッシュ6を介して、L2キャッシュ7のキャッシュコントローラ23に通知する。これを受けて、キャッシュコントローラ23は、MMU3からの情報に従って第1メモリ部24または第2メモリ部25にアクセスする。より具体的には、書込み頻度が高いデータについては、SRAMからなる第2メモリ部25に格納し、MRAMからなる第1メモリ部24への書込み回数をできるだけ少なくする。また、書込み頻度が少ないデータ等は、メモリ容量の大きい第1メモリ部24に格納する。これらの制御をメモリアクセス制御と呼ぶ。
なお、MMU3からの情報には様々な形態が考えられる。例えば、書き込みが多いか、読み出しが多いかを表現する例えば1ビットのフラグでも良い。例えば、MMU3に設けたアクセス制限情報やアクセス頻度情報20をそのままL2キャッシュ7に送付してもよい。また、例えば、MMU3がアクセス制限情報やアクセス頻度情報20からSRAMにアクセスすべきかMRAMにアクセスすべきかを判断し、その情報をL2キャッシュ7に送付してもよい。つまり、MMU3に存在するアクセス制限情報やアクセス頻度情報20により、SRAMにアクセスすべきか、MRAMにアクセスすべきかを判断するのはMMU3であってもよいし、キャッシュコントローラ23であってもよい。
同一階層ハイブリッドキャッシュにおいて、アクセス制限情報とアクセス頻度情報20の利用形態には様々なものが考えられる。
まず、アクセス制限情報やアクセス頻度情報20として、R/W情報を保持する場合の例を示す。例えば、リードライトビットで書き込み属性がセットされていればSRAMに書き込み、セットされていなければMRAMに書き込めばよい。例えば、リードライトビットで書き込み属性がセットされており、かつ、ダーティビットがセットされていればSRAMに書き込み、それ以外のデータをMRAMに書き込めばよい。例えば、アクセス頻度情報20に書き込みがあると+1し、読み出しを行うと−1する飽和カウンタを用いる場合、飽和カウンタが5以上のデータをSRAMに書き込み、それ以外のデータをMRAMに書き込めばよい。例えば、リードライトビットで書き込み属性がセットされており、かつ、アクセス頻度情報20の飽和カウンタが5以上であればSRAMに書き込み、それ以外をMRAMに書き込めばよい。
次に、アクセス制限情報やアクセス頻度情報20として、キャッシュヒット/ミス情報を保持する場合の例を示す。例えば、キャッシュミスであれば+1し、キャッシュヒットであれば−1する飽和カウンタを用いる場合、飽和カウンタが3以上のデータをSRAMに書き込み、それ以外のデータをMRAMに書き込めばよい。
なお、上記の飽和カウンタの値は一例を示したに過ぎない。閾値となる飽和カウンタの値は1でもよいし10でもよい。また、実行中に閾値となる値を動的に変化させてもよい。
本実施形態では、アクセス頻度情報20に基づいた書き込み先選択を行う場合、書き込むべきメモリがプログラムの実行状況により変化する可能性がある。したがって、書き込みの際には、データの一貫性を保つための制御が必要である。キャッシュコントローラ23は書き込み先メモリ以外のメモリにデータが存在するかどうかをチェックし、存在する場合はデータ一貫性を保つための処理を行う必要がある。例えば、図6のように、書き込み先以外のメモリにデータが存在する場合、そのデータを無効化すると共に、書き込み先メモリにデータを書き込む方法がある。
図6は同一階層ハイブリッドキャッシュにおける書き込み手順の一例を示すフローチャートである。なお、図6の書き込み手順は、L2キャッシュ7のキャッシュコントローラ23が全ての情報を取得している場合の例を示す。図6のフローチャートは、L1キャッシュ6からの書き込み要求に応じてL2キャッシュ7のキャッシュコントローラ23がデータキャッシュ部22にデータ書き込みを行う場合の処理手順を示している。
まず、アクセス要求のあったアドレスがキャッシュヒットしたか否かを判定する(ステップS1)。キャッシュヒットしたと判定された場合は、第1メモリ部24であるSRAMにキャッシュヒットしたか否かを判定する(ステップS2)。
SRAMにキャッシュヒットしたと判定された場合は、SRAMにデータを書き込むべきか否かを判定する(ステップS3)。SRAMにデータを書き込むべきと判定された場合はSRAM内の対応するデータを上書きする(ステップS4)。SRAMにデータを書き込むべきでないと判定された場合はSRAM内の対応するデータを無効化し、L1キャッシュ6からアクセス要求のあったデータを第1メモリ部24であるMRAMに書き込む(ステップS5)。
ステップS2でSRAMにキャッシュヒットしなかったと判定された場合は、第1メモリ部24であるMRAMにデータを書き込むべきか否かを判定する(ステップS6)。MRAMにデータを書き込むべきと判定された場合はMRAM内の対応するデータを上書きする(ステップS7)。MRAMにデータを書き込むべきでないと判定された場合はMRAM内の対応するデータを無効化し、L1キャッシュ6からアクセス要求のあったデータを第2メモリ部25であるSRAMに書き込む(ステップS8)。
ステップS1でキャッシュヒットしなかったと判定された場合は、第2メモリ部25であるSRAMにデータを書き込むべきか否かを判定する(ステップS9)。SRAMにデータを書き込むべきと判定された場合はSRAMにデータを書き込み(ステップS10)、SRAMにデータを書き込むべきでないと判定された場合はMRAMにデータを書き込む(ステップS11)。
なお、L2キャッシュ7の代わりに、あるいはL2キャッシュ7とともに、L1キャッシュ6についても、図5と同様に特性の異なる複数のメモリ部を配置してもよい。
(他階層ハイブリッドキャッシュ)
図7は他階層ハイブリッドキャッシュの一例を示すブロック図である。図7は、L1キャッシュ6をSRAMで構成し、L2キャッシュ7をMRAMで構成し、メインメモリ10をDRAMで構成する例を示している。
図7の場合、MMU3が書込み頻度が高いと判断したデータ(高優先度データ)については、できるだけL1キャッシュ6に格納し、MRAMからなるL2キャッシュ7への書込み回数を削減する。L1キャッシュ6にできるだけ格納する方法として、例えば、LRU(Least Recently Used)情報を利用する方法がある。例えば、高優先度データのみMRU(Most Recently Used)データとして番号の小さいウェイに配置できるようにし、その他のデータにアクセスがあってもMRUデータとしては扱わず、高優先度データのウェイよりも番号が小さいウェイには配置できないようにするといった方法がある。
あるいは、書込み頻度が高くて再利用性が低い(以後の読み出し可能性が低い)データを、積極的にDRAMからなるメインメモリ10に格納し、MRAMからなるL2キャッシュ7への書込み回数を削減してもよい(バイパス制御)。また、書き込み頻度が低くても、再利用性が低いデータについて同様の制御を行ってもよい。
なお、MMU3からの情報には様々な形態が考えられる。例えば、キャッシュミスが多いか、キャッシュヒットが多いかを表現する例えば1ビットのフラグでも良い。例えば、MMU3に設けたアクセス制限情報やアクセス頻度情報20をそのままL2キャッシュ7に送付してもよい。また、例えば、バイパス制御を行うか、バイパス制御を行わないかといった情報であってもよい。つまり、MMU3に存在するアクセス制限情報やアクセス頻度情報20により、バイパス制御を行うか、バイパス制御を行わないかを判断するのはMMU3であってもよいし、キャッシュコントローラ23であってもよい。
他階層ハイブリッドキャッシュにおいて、アクセス制限情報とアクセス頻度情報20の利用形態には様々なものが考えられる。
まず、アクセス制限情報やアクセス頻度情報20として、R/W情報を保持する場合の例を示す。例えば、リードライトビットで書き込み属性がセットされていればバイパス制御を行い、セットされていなければL2キャッシュに書き込めばよい。例えば、リードライトビットで書き込み属性がセットされており、かつ、ダーティビットがセットされていればバイパス制御を行い、それ以外のデータをL2キャッシュに書き込めばよい。例えば、アクセス頻度情報20に書き込みがあると+1し、読み出しを行うと−1する飽和カウンタを用いる場合、飽和カウンタが5以上のデータでバイパス制御を行い、それ以外のデータをL2キャッシュに書き込めばよい。例えば、リードライトビットで書き込み属性がセットされており、かつ、アクセス頻度情報20の飽和カウンタが5以上であればバイパス制御を行い、それ以外をL2キャッシュに書き込めばよい。
次に、アクセス頻度情報20として、キャッシュヒット/ミス情報を保持する場合の例を示す。例えば、キャッシュミスであれば+1し、キャッシュヒットであれば−1する飽和カウンタを用いる場合、飽和カウンタが3以上のデータでバイパス制御を行い、それ以外のデータをL2キャッシュに書き込めばよい。
なお、上記の飽和カウンタの値は一例を示したに過ぎない。閾値となる飽和カウンタの値は1でもよいし10でもよい。また、実行中に閾値となる値を動的に変化させてもよい。
本実施形態では、アクセス頻度情報20に基づいたバイパス制御を行う場合、バイパス制御の判断がプログラムの実行状況により変化する可能性がある。したがって、バイパス制御の際には、データの一貫性を保つための制御が必要である。キャッシュコントローラ23はバイパス制御を行うキャッシュ(L2キャッシュ7)にデータが存在するかどうかをチェックし、存在する場合はデータ一貫性を保つための処理を行う必要がある。例えば、図8のように、キャッシュにデータが存在する場合、そのデータを無効化すると共に、バイパス制御を行う方法がある。
図8は他階層ハイブリッドキャッシュにおける書き込み手順の一例を示すフローチャートである。なお、図8の書き込み手順は、L2キャッシュ7のキャッシュコントローラ23が全ての情報を取得している場合の例を示す。図8のフローチャートは、L1キャッシュ6からのアクセス要求に応じてL2キャッシュ7のキャッシュコントローラ23がデータキャッシュ部22にデータ書き込みを行う場合の処理手順を示している。
まず、アクセス要求のあったアドレスがキャッシュヒットしたか否かを判定する(ステップS21)。キャッシュヒットしたと判定された場合は、バイパス制御を行うか否かを判定する(ステップS22)。バイパス制御を行う場合は、L2キャッシュ内のデータを無効化し(ステップS23)、メインメモリ10にアクセス要求を送付する(ステップS24)。ステップS22でバイパス制御を行わないと判定されると、データキャッシュ部22へのデータ書き込みを行う(ステップS25)。ステップS21でキャッシュヒットしなかったと判定されると、バイパス制御を行うか否かを判定する(ステップS26)。バイパス制御を行う場合は、メインメモリ10にアクセス要求を送付する(ステップS27)。ステップS26でバイパス制御を行わないと判定されると、データキャッシュ部22へのデータ書き込みを行う(ステップS25)。
同一階層ハイブリッドキャッシュおよび他階層ハイブリッドキャッシュの場合において、MMU3からキャッシュコントローラ23へと送付される情報の転送方式にも様々なものが考えられる。例えば、MMU3から送付されるアドレス情報と共にL1キャッシュ6を経由してL2キャッシュ7へと送付されてもよい。例えば、アドレス情報とは別に、キャッシュ制御に関する情報をMMU3からL2キャッシュ7へと送付してもよい。
キャッシュ制御に関する情報をMMU3からL2キャッシュ7へと送付する場合に、MMU3の情報を制御に利用するための制御手順には様々なものが考えられる。例えば、L1キャッシュ6がライトバックキャッシュであり、L1キャッシュ6からL2キャッシュ7へのデータ追い出しに伴うライトバックを行う場合を考える。
この場合、例えば以下のような手順が考えられる。例えば、L1キャッシュ6はデータアドレスとデータをL2キャッシュ7に送付すると共に、対象データに関する情報をL2キャッシュ7に送付するようMMU3にリクエストを送る。MMU3はリクエストを受け取るとL2キャッシュ7に該当する情報を送付する。L2キャッシュ7は、L1キャッシュ6からの情報とMMU3からの情報を受け取り、メモリアクセス制御やバイパス制御を行う。
また、例えば、対象データに関する情報をL1キャッシュ6に送付するようMMU3にリクエストを送る。L1キャッシュ6はMMU3からの情報を受け取り、データアドレス・データとともに受け取った情報をL2に送付してもよい。L2キャッシュ7はこれらの情報をもとに、メモリアクセス制御やバイパス制御を行う。
また、例えば、L1キャッシュ6からデータアドレス・データを受け取ったL2キャッシュ7がMMU3へ情報のリクエストを送る。L2キャッシュ7はMMU3からの情報を受け取ったうえで、これらの情報をもとにメモリアクセス制御やバイパス制御を行う。
(アクセス制限情報とアクセス頻度情報20の保持方法の変形例)
上述した実施形態では、簡略化のため、TLB4が1階層のページエントリ・キャッシュである方式を示した。しかしながら、TLB4が複数階層からなる場合においても本実施形態を適用可能である。この場合において、最も単純な構成は、全ての階層がアクセス制限情報やアクセス頻度情報20を保持することである。一方で、一部の階層にのみアクセス制限情報とアクセス頻度情報20を設ける方式も考えられる。例えば、最も下位階層のTLB4にのみアクセス制限情報とアクセス頻度情報20を設ける方式がある。このような方式を用いることで、TLB4へのアクセスを物理的に異なるメモリに分散し、TLB4のアクセスの衝突による遅延を軽減することが出来る。この効果が得られる典型的な例としては、CPU2からのメモリアクセスによるTLB4の参照と、L2キャッシュ7内のアクセス制限情報とアクセス頻度情報20の更新のためのTLB4の参照とが同タイミングに発生した場合に、前者の参照は上位階層のTLB4でその要求に応え、後者の参照は下位階層のTLB4でその要求に応えることで、アクセス衝突を回避することが考えられる。
(アクセス制限情報とアクセス頻度情報20の形式の変形例)
上述した実施形態では、アクセス制限情報とアクセス頻度情報20をページ単位で所持する例を説明したが、キャッシュライン単位でアクセス制限情報とアクセス頻度情報20を所持してもよい。例えば、1ページが4キロバイトで、1ラインが64バイトの場合は、ページエントリに64個のアクセス制限情報とアクセス頻度情報を保持することになる。
このように、本実施形態では、TLB4やページテーブル5にアクセス制限情報とアクセス頻度情報20の少なくとも一方を格納するため、これらの情報に基づいて、アクセスすべき最適なメモリを選択できる。これにより、例えば、書込み頻度の高いデータについては書き込み速度が高速なメモリや書き込み時の消費電力の少ないメモリに書き込むことができ、プロセッサ2の処理効率を向上できるとともに、消費電力を削減することも可能となる。したがって、高集積化が容易であるものの、書込み速度が遅くて書き込み時の消費電力も多いMRAMをキャッシュメモリに用いたとしても、プロセッサ2の処理効率を低下させずに済む。
上述した各実施形態では、特性の異なる複数のメモリの例として、SRAM、MRAMおよびDRAMを用いる例を説明したが、メモリの種類はこれらに限定されない。例えば、他の不揮発性メモリ(例えば、ReRAM(Resistance RAM)メモリセル、PRAM(Phase Change RAM)、FRAM(Ferroelectric RAM、登録商標)、NANDフラッシュメモリセルなどを用いてもよい。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
1 プロセッサシステム、2 プロセッサ、3 メモリ管理ユニット(MMU)、4 トランスレーション・ルックアサイド・バッファ(TLB)、5 ページテーブル(PT)、6 L1キャッシュ、7 L2キャッシュ、20 アクセス頻度情報、21 タグ部、22 データキャッシュ部、23 キャッシュコントローラ、24 第1メモリ部、25 第2メモリ部

Claims (16)

  1. 特性の異なる2以上のメモリを含む階層化メモリ群と、
    プロセッサのアクセス要求に含まれる仮想アドレスから物理アドレスへのアドレス変換情報を格納するとともに、前記プロセッサからアクセス要求のあった各データについてのアクセス頻度に関する情報とアクセス制限に関する情報との少なくとも一方を格納するアクセス情報記憶部と、
    前記プロセッサからアクセス要求のあった各データについての前記アクセス情報記憶部内のアクセス頻度に関する情報とアクセス制限に関する情報との少なくとも一方の情報に基づき、特定のメモリを前記階層化メモリ群の中から選択してアクセス制御を行うコントローラと、を備えるキャッシュメモリシステム。
  2. 前記アクセス情報記憶部は、トランスレーション・ルックアサイド・バッファである請求項1に記載のキャッシュメモリシステム。
  3. 前記トランスレーション・ルックアサイド・バッファに格納された前記アドレス変換情報を格納するとともに、前記プロセッサからアクセス要求のあった各データについてのアクセス頻度に関する情報とアクセス制限に関する情報との少なくとも一方を格納するページテーブルを備える請求項2に記載のキャッシュメモリシステム。
  4. 前記階層化メモリ群は、アクセス速度が異なる2以上のメモリを含み、
    前記コントローラは、前記プロセッサからアクセス要求のあった各データについての前記アクセス情報記憶部内のアクセス頻度に関する情報とアクセス制限に関する情報との少なくとも一方に基づいて、アクセス速度が異なる前記2以上のメモリのうちいずれかを選択してアクセス制御を行う請求項1乃至3のいずれかに記載のキャッシュメモリシステム。
  5. 前記階層化メモリ群は、消費電力が異なる2以上のメモリを含み、
    前記コントローラは、前記プロセッサからアクセス要求のあった各データについての前記アクセス情報記憶部内のアクセス頻度に関する情報とアクセス制限に関する情報との少なくとも一方に基づいて、消費電力が異なる前記2以上のメモリのうちいずれかを選択してアクセス制御を行う請求項1乃至3のいずれかに記載のキャッシュメモリシステム。
  6. 前記階層化メモリ群は、階層化されたk次(k=1からnまでのすべての整数、nは1以上の整数)のキャッシュメモリおよび主記憶メモリを含み、
    前記k次のキャッシュメモリと前記主記憶メモリとでは、特性が互いに異なっており、
    前記コントローラは、前記プロセッサからアクセス要求のあった各データについての前記アクセス情報記憶部内のアクセス頻度に関する情報とアクセス制限に関する情報との少なくとも一方に基づいて、前記k次のキャッシュメモリまたは前記主記憶メモリを選択してアクセス制御を行う請求項1乃至5のいずれかに記載のキャッシュメモリシステム。
  7. 前記アクセス情報記憶部は、前記階層化メモリ群に含まれるキャッシュメモリへのアクセス単位であるキャッシュラインよりもデータ量の多いページ単位でアクセス頻度に関する情報とアクセス制限に関する情報との少なくとも一方を格納する請求項1乃至6のいずれかに記載のキャッシュメモリシステム。
  8. 前記アクセス情報記憶部内のアクセス頻度に関する情報は、書込み頻度に関する情報である請求項1乃至7のいずれかに記載のキャッシュメモリシステム。
  9. 前記アクセス情報記憶部内のアクセス頻度に関する情報は、各データごとに、当該データの書込み回数と読出し回数との差分が所定の閾値以上か否かを示す情報である請求項1乃至8のいずれかに記載のキャッシュメモリシステム。
  10. 前記アクセス情報記憶部内のアクセス頻度に関する情報は、キャッシュヒット/ミスに関する情報である請求項1乃至7のいずれかに記載のキャッシュメモリシステム。
  11. 前記アクセス情報記憶部内のアクセス頻度に関する情報は、各データごとに、当該データのキャッシュミスとキャッシュヒットとの差分が所定の閾値以上か否かを示す情報である請求項10に記載のキャッシュメモリシステム。
  12. 前記アクセス情報記憶部内のアクセス頻度に関する情報は、前記階層化メモリ群に属するすべてのメモリのアクセス頻度に関する情報である請求項1乃至11のいずれかに記載のキャッシュメモリシステム。
  13. 前記アクセス情報記憶部内のアクセス頻度に関する情報は、前記階層化メモリ群に属する特定のメモリのアクセス頻度に関する情報であり、
    前記コントローラは、前記アクセス情報記憶部内のアクセス頻度に関する情報に基づいて、前記特定のメモリにアクセスするか、あるいは主記憶メモリにアクセスするかを選択する請求項1乃至11のいずれかに記載のキャッシュメモリシステム。
  14. 前記アクセス情報記憶部内のアクセス制限に関する情報は、読出し専用、書込み専用、および読み書き可能の少なくとも一つを含む情報である請求項1乃至13のいずれかに記載のキャッシュメモリシステム。
  15. 前記アクセス情報記憶部内のアクセス制限に関する情報は、下位メモリへの書き戻しをまだおこなっていないことを示すダーティ情報を含む請求項1乃至14のいずれかに記載のキャッシュメモリシステム。
  16. プロセッサと、
    特性の異なる2以上のメモリを含む階層化メモリ群と、
    プロセッサのアクセス要求に含まれる仮想アドレスから物理アドレスへのアドレス変換情報を格納するとともに、前記プロセッサからアクセス要求のあった各データについてのアクセス頻度に関する情報とアクセス制限に関する情報との少なくとも一方を格納するアクセス情報記憶部と、
    前記プロセッサからアクセス要求のあった各データについての前記アクセス情報記憶部内のアクセス頻度に関する情報とアクセス制限に関する情報との少なくとも一方の情報に基づき、特定のメモリを前記階層化メモリ群の中から選択してアクセス制御を行うコントローラと、を備えるプロセッサシステム。
JP2014058817A 2014-03-20 2014-03-20 キャッシュメモリシステムおよびプロセッサシステム Active JP6118285B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2014058817A JP6118285B2 (ja) 2014-03-20 2014-03-20 キャッシュメモリシステムおよびプロセッサシステム
PCT/JP2015/058417 WO2015141820A1 (ja) 2014-03-20 2015-03-20 キャッシュメモリシステムおよびプロセッサシステム
US15/262,178 US20160378652A1 (en) 2014-03-20 2016-09-12 Cache memory system and processor system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014058817A JP6118285B2 (ja) 2014-03-20 2014-03-20 キャッシュメモリシステムおよびプロセッサシステム

Publications (2)

Publication Number Publication Date
JP2015184794A true JP2015184794A (ja) 2015-10-22
JP6118285B2 JP6118285B2 (ja) 2017-04-19

Family

ID=54144781

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014058817A Active JP6118285B2 (ja) 2014-03-20 2014-03-20 キャッシュメモリシステムおよびプロセッサシステム

Country Status (3)

Country Link
US (1) US20160378652A1 (ja)
JP (1) JP6118285B2 (ja)
WO (1) WO2015141820A1 (ja)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10007614B2 (en) * 2016-02-02 2018-06-26 Cavium, Inc. Method and apparatus for determining metric for selective caching
JP2019164411A (ja) * 2018-03-19 2019-09-26 株式会社東芝 管理装置、情報処理装置、管理方法、およびプログラム
US10725675B2 (en) 2018-03-19 2020-07-28 Kabushiki Kaisha Toshiba Management apparatus, information processing apparatus, management method, and computer program product
KR20210037216A (ko) * 2019-09-27 2021-04-06 에스케이하이닉스 주식회사 이종 메모리를 이용하여 메모리 주소 변환 테이블을 관리하는 메모리 관리 유닛 및 이의 메모리 주소 관리 방법
JP2021082324A (ja) * 2021-02-04 2021-05-27 株式会社東芝 管理装置、情報処理装置、管理方法、およびプログラム
US11487582B2 (en) 2019-09-10 2022-11-01 Fujitsu Limited Information processing apparatus and computer-readable recording medium having stored therein process allocation determining program
JP2022548887A (ja) * 2019-09-17 2022-11-22 マイクロン テクノロジー,インク. メモリタイプへのページテーブルフック

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015155103A1 (de) * 2014-04-08 2015-10-15 Fujitsu Technology Solutions Intellectual Property Gmbh Verfahren zum verbesserten zugriff auf einen hauptspeicher eines computersystems, entsprechendes computersystem sowie computerprogramm-produkt
JP6067819B1 (ja) * 2015-10-21 2017-01-25 株式会社東芝 階層化ストレージシステム、ストレージコントローラ、並びに重複排除及びストレージ階層化のための方法
KR20170075355A (ko) * 2015-12-23 2017-07-03 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
CN106844231A (zh) * 2016-12-23 2017-06-13 北京北大众志微系统科技有限责任公司 末级高速缓存软硬件协作分区域管理系统及管理方法
US10169233B2 (en) * 2017-06-05 2019-01-01 International Business Machines Corporation Translation lookaside buffer purging with concurrent cache updates
CN111868700B (zh) * 2018-02-28 2024-04-19 索尼公司 存储器管理系统、存储器管理方法以及信息处理设备
US11249919B2 (en) * 2018-07-31 2022-02-15 SK Hynix Inc. Apparatus and method for managing meta data for engagement of plural memory system to store data
CN110781098B (zh) 2018-07-31 2023-03-28 爱思开海力士有限公司 用于彼此接合多个存储器系统的设备和方法
CN110780810B (zh) 2018-07-31 2023-06-27 爱思开海力士有限公司 用于彼此接合多个存储器系统以存储数据的设备和方法
US11269780B2 (en) 2019-09-17 2022-03-08 Micron Technology, Inc. Mapping non-typed memory access to typed memory access
US10963396B1 (en) 2019-09-17 2021-03-30 Micron Technology, Inc. Memory system for binding data to a memory namespace
US11650742B2 (en) 2019-09-17 2023-05-16 Micron Technology, Inc. Accessing stored metadata to identify memory devices in which data is stored

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005149497A (ja) * 2003-11-13 2005-06-09 Internatl Business Mach Corp <Ibm> 動的頻発命令ライン・キャッシュ
JP2007257192A (ja) * 2006-03-22 2007-10-04 Toshiba Corp データ処理装置

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101713051B1 (ko) * 2010-11-29 2017-03-07 삼성전자주식회사 하이브리드 메모리 시스템, 및 그 관리 방법
CN105612499B (zh) * 2013-10-29 2018-11-13 华中科技大学 混合高速缓存管理

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005149497A (ja) * 2003-11-13 2005-06-09 Internatl Business Mach Corp <Ibm> 動的頻発命令ライン・キャッシュ
JP2007257192A (ja) * 2006-03-22 2007-10-04 Toshiba Corp データ処理装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
JPN6016039797; Jianhua LI, Chun Jason XUE, Yinlong XU: 'STT-RAM based Energy-Efficiency Hybrid Cache for CMPs' 2011 IEEE/IFIP 19th International Conference onVLSI snd Sysyem-on-Chip , 20111003, Pages 31-36, IEEE *
JPN7016003095; 野村 久美子, 安部 恵子, 藤田 忍: '高速・低消費電力STT-MRAMキャッシュを用いたRun-time ノーマリオフプロセッサ' 東芝レビュー Vol.67, No.9, 201209, 第48-51 ページ, 株式会社東芝 *

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10007614B2 (en) * 2016-02-02 2018-06-26 Cavium, Inc. Method and apparatus for determining metric for selective caching
JP2019164411A (ja) * 2018-03-19 2019-09-26 株式会社東芝 管理装置、情報処理装置、管理方法、およびプログラム
US10725675B2 (en) 2018-03-19 2020-07-28 Kabushiki Kaisha Toshiba Management apparatus, information processing apparatus, management method, and computer program product
US11487582B2 (en) 2019-09-10 2022-11-01 Fujitsu Limited Information processing apparatus and computer-readable recording medium having stored therein process allocation determining program
JP2022548887A (ja) * 2019-09-17 2022-11-22 マイクロン テクノロジー,インク. メモリタイプへのページテーブルフック
KR20210037216A (ko) * 2019-09-27 2021-04-06 에스케이하이닉스 주식회사 이종 메모리를 이용하여 메모리 주소 변환 테이블을 관리하는 메모리 관리 유닛 및 이의 메모리 주소 관리 방법
KR102355374B1 (ko) * 2019-09-27 2022-01-25 에스케이하이닉스 주식회사 이종 메모리를 이용하여 메모리 주소 변환 테이블을 관리하는 메모리 관리 유닛 및 이의 메모리 주소 관리 방법
US11704018B2 (en) 2019-09-27 2023-07-18 SK Hynix Inc. Memory management device capable of managing memory address translation table using heterogeneous memories and method of managing memory address thereby
JP2021082324A (ja) * 2021-02-04 2021-05-27 株式会社東芝 管理装置、情報処理装置、管理方法、およびプログラム
JP7024127B2 (ja) 2021-02-04 2022-02-22 株式会社東芝 管理装置、情報処理装置、管理方法、およびプログラム

Also Published As

Publication number Publication date
WO2015141820A1 (ja) 2015-09-24
JP6118285B2 (ja) 2017-04-19
US20160378652A1 (en) 2016-12-29

Similar Documents

Publication Publication Date Title
JP6118285B2 (ja) キャッシュメモリシステムおよびプロセッサシステム
US8719509B2 (en) Cache implementing multiple replacement policies
KR101826073B1 (ko) 메모리 관리를 위한 캐시 동작들
JP5580894B2 (ja) Tlbプリフェッチング
JP5528554B2 (ja) ブロックベースの非透過的キャッシュ
US20140181402A1 (en) Selective cache memory write-back and replacement policies
US10031854B2 (en) Memory system
US20130262767A1 (en) Concurrently Accessed Set Associative Overflow Cache
JP6027562B2 (ja) キャッシュメモリシステムおよびプロセッサシステム
JP6088951B2 (ja) キャッシュメモリシステムおよびプロセッサシステム
US20180088853A1 (en) Multi-Level System Memory Having Near Memory Space Capable Of Behaving As Near Memory Cache or Fast Addressable System Memory Depending On System State
US10564871B2 (en) Memory system having multiple different type memories with various data granularities
Vasilakis et al. Hybrid2: Combining caching and migration in hybrid memory systems
JP2019537162A (ja) 非割り当てキャッシュポリシー
US20190057045A1 (en) Methods and systems for caching based on service level agreement
US10725675B2 (en) Management apparatus, information processing apparatus, management method, and computer program product
JP6140233B2 (ja) メモリシステム
JP2019164411A (ja) 管理装置、情報処理装置、管理方法、およびプログラム
JP7024127B2 (ja) 管理装置、情報処理装置、管理方法、およびプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160325

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20161018

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20161216

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170324

R151 Written notification of patent or utility model registration

Ref document number: 6118285

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350