JP5974133B1 - メモリシステム - Google Patents

メモリシステム Download PDF

Info

Publication number
JP5974133B1
JP5974133B1 JP2015058740A JP2015058740A JP5974133B1 JP 5974133 B1 JP5974133 B1 JP 5974133B1 JP 2015058740 A JP2015058740 A JP 2015058740A JP 2015058740 A JP2015058740 A JP 2015058740A JP 5974133 B1 JP5974133 B1 JP 5974133B1
Authority
JP
Japan
Prior art keywords
controller
memory
cache
buffer
ways
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.)
Active
Application number
JP2015058740A
Other languages
English (en)
Other versions
JP2016177687A (ja
Inventor
武田 進
進 武田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
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 JP2015058740A priority Critical patent/JP5974133B1/ja
Priority to US15/067,558 priority patent/US10031854B2/en
Application granted granted Critical
Publication of JP5974133B1 publication Critical patent/JP5974133B1/ja
Publication of JP2016177687A publication Critical patent/JP2016177687A/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
    • 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/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
    • 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
    • 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)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

【課題】プロセッサの処理性能を向上可能なメモリシステムを提供する。【解決手段】メモリシステム1は、メインメモリ4より高速アクセスが可能な第1キャッシュメモリとして使用可能な不揮発メモリ10と、プロセッサ3が発行する仮想アドレスから物理アドレスへのアドレス変換情報を格納する第1トランスレーション・ルックアサイド・バッファ7と、電源遮断時に、第1トランスレーション・ルックアサイド・バッファ内のアドレス変換情報を不揮発メモリに記憶させる第1コントローラ11と、を備える。【選択図】図1

Description

本発明の実施形態は、不揮発メモリを有するメモリシステムに関する。
メモリアクセスを行う場合、プロセッサが発行した仮想アドレスを物理アドレスに変換し、変換した物理アドレスを用いてキャッシュメモリやメインメモリへのアクセスを行うのが一般的である。
仮想アドレスを物理アドレスに変換する処理は、TLB(トランスレーション・ルックアサイド・バッファ)で行われる。TLBのアクセス速度は、プロセッサの処理性能に大きく影響する。
通常、TLBは、高速のSRAMで構成されるが、SRAMは揮発メモリであり、電源遮断によりデータが消去されてしまう。このため、TLBをSRAMで構成すると、電源投入時に、ページテーブルから一部のアドレス変換情報をTLBにコピーする処理を行わなければならず、TLBがアクセス可能となるまでに時間がかかってしまう。また、TLBはメモリ容量が限られているため、TLBにてミスが生じると、必要とするアドレス変換情報をページテーブルに取りに行かなければならず、アドレス変換処理にかなりの時間がかかってしまう。
また、プロセッサは、メインメモリにアクセスする前に、キャッシュメモリにアクセスするため、プロセッサが要求したデータがキャッシュメモリに格納されている場合と格納されていない場合で、アクセス速度に大きな違いが生じる。このため、最近では、2階層以上に階層化されたキャッシュメモリや、大容量のキャッシュメモリを設けて、キャッシュヒット率を向上させるようにしている。
しかしながら、大容量のキャッシュメモリを設けても、そのごく一部しか使用しない場合もあり、必ずしも大容量のキャッシュメモリを有効活用できるとは限らない。
特許4608011号公報
本発明が解決しようとする課題は、プロセッサの処理性能を向上可能なメモリシステムを提供するものである。
本実施形態によれば、メインメモリより高速アクセスが可能な第1キャッシュメモリとして使用可能な不揮発メモリと、
プロセッサが発行する仮想アドレスから物理アドレスへのアドレス変換情報を格納する第1トランスレーション・ルックアサイド・バッファと、
電源遮断時に、前記第1トランスレーション・ルックアサイド・バッファ内の前記アドレス変換情報を前記不揮発メモリに記憶させる第1コントローラと、を備えるメモリシステムが提供される。
第1の実施形態によるメモリシステム1を備えたプロセッサシステム2の概略構成を示すブロック図。 第1の実施形態におけるL1キャッシュ8、L2キャッシュ9として使用可能な不揮発メモリ10およびメインメモリ4のアクセス優先度を示す図。 ページエントリ情報12の一例を示す図。 TLB7を用いたアドレス変換処理の処理手順の一例を示すフローチャート。 TLB7のデータ構成の一例を示す図。 図1の不揮発メモリ10をL2キャッシュ9として使用する場合のデータ構成の一例を示す図。 MMU5の電源遮断時の処理動作の一例を示すフローチャート。 ウェイ8を無効化する例を示す図。 電源復帰時の処理動作の一例を示すフローチャート。 第2の実施形態によるメモリシステム1を備えたプロセッサシステム2の概略構成を示すブロック図。 キャッシュモード時のメモリ構成を示す図。 キャッシュモード時の再構成メモリ22のデータ構成を示す図。 TLBモード時のメモリ構成を示す図。 TLBモード時の再構成メモリ22のデータ構成を示す図。 第2の実施形態によるメモリシステム1の処理手順の一例を示すフローチャート。 キャッシュモードからTLBモードへの遷移の手順の一例を示すフローチャート。 TLBモードからキャッシュモードへの遷移の手順の一例を示すフローチャート。 キャッシュモード時に再構成コントローラ21が行うモード遷移処理の処理手順の一例を示すフローチャート。 TLBモード時に再構成コントローラ21が行うモード遷移処理の処理手順の一例を示すフローチャート。 第3の実施形態による再構成メモリ22の内部構成の一例を示すブロック図。 キャッシュモードから一部TLBモードに遷移させる処理手順を示すフローチャート。 さらに追加でTLBモードに遷移させる処理手順を示すフローチャート。 TLBモードから一部キャッシュモードに遷移させる処理手順を示すフローチャート。 さらに追加でキャッシュモードに遷移させる処理手順を示すフローチャート。 第3の実施形態による再構成コントローラ21の処理手順を示すフローチャート。 第2または第3の実施形態をマルチコアに適用した第1例を示すブロック図。 第2または第3の実施形態をマルチコアに適用した第2例を示すブロック図。
以下、図面を参照して本発明の実施形態を説明する。以下の実施形態では、メモリシステムおよびプロセッサシステム内の特徴的な構成および動作を中心に説明するが、メモリシステムおよびプロセッサシステムには以下の説明で省略した構成および動作が存在しうる。ただし、これらの省略した構成および動作も本実施形態の範囲に含まれるものである。
(第1の実施形態)
図1は第1の実施形態によるメモリシステム1を備えたプロセッサシステム2の概略構成を示すブロック図である。図1のプロセッサシステム2は、メモリシステム1と、プロセッサ3と、メインメモリ4とを備えている。
メモリシステム1は、メモリ管理ユニット(MMU:Memory Management Unit)5と、ページテーブル6と、TLB(Translation Lookaside Buffer、第1トランスレーション・ルックアサイド・バッファ)7と、1次キャッシュメモリ(L1キャッシュ、第2キャッシュメモリ)8と、2次キャッシュメモリ(L2キャッシュ、第1キャッシュメモリ)9として使用可能な不揮発メモリ10と、電源管理コントローラ(第1コントローラ)11とを備えている。
L1キャッシュ8と、L2キャッシュ9として使用可能な不揮発メモリ10とには、メインメモリ4に格納されたデータ、またはメインメモリ4に格納されるべきデータの少なくとも一部が格納される。以下では、不揮発メモリ10をL2キャッシュ9と呼称することもある。
L1キャッシュ8およびL2キャッシュ9は、その内部に保持するデータを一意に識別可能なアドレス情報を保持するタグ部を有する。タグ部の実装形態には、専用のメモリ領域を保持するものや、データを保持するメモリ領域の一部に保持するものなど様々な実装形態があり、本実施形態ではそれら全てと組み合わせ可能である。
図1では、L2キャッシュ9までの2階層のキャッシュメモリを設ける例を示しているが、L2キャッシュ9よりも高次のキャッシュメモリを設けてもよい。すなわち、本実施形態では、特性の異なる2以上のメモリが異なる階層に設けられているか、特性の異なる2つ以上のメモリが同一階層に設けられていることが前提条件となる。ここで、特性とは、例えばアクセス速度である。この他、特性は、消費電力でもよいし、メモリ容量でもよいし、それ以外のメモリを区別する種々の特性でもよい。
以下では、簡略化のため、L2キャッシュ9までの2階層のキャッシュ構造を有する例を説明する。
メインメモリ4以外の、プロセッサ3、MMU5、L1キャッシュ8および不揮発メモリ10は、例えば一つのチップに集積される。あるいは、プロセッサ3、MMU5、L1キャッシュ8が1つのチップに集積され、L2キャッシュ9として使用される不揮発メモリ10は別のチップに集積され、これらがチップ同士の積層構造に基づき、金属配線によって直接接合されるメモリシステム1であってもよい。以下では、L1キャッシュ8および不揮発メモリ10を総称して、「キャッシュ」あるいは「キャッシュメモリ」と呼称することもある。
L1キャッシュ8および不揮発メモリ10は、メインメモリ4よりも高速アクセスが可能な半導体メモリで構成されている。L1キャッシュ8と、L2キャッシュ9として使用可能な不揮発メモリ10とへのデータ配置ポリシには様々なバリエーションが考えられる。例えば、Inclusion方式がある。この場合、L2キャッシュ9には、L1キャッシュ8に格納されたデータのすべてが格納される。
その他、例えば、Exclusion方式がある。この方式では、例えばL1キャッシュ8とL2キャッシュ9に同じデータは配置されない。また、例えば、Inclusion方式とExclusion方式のハイブリッド方式がある。この方式では、例えばL1キャッシュ8とL2キャッシュ9とで重複して保持されるデータもあるし、排他的に保持されるデータもある。
これらの方式は、L1キャッシュ8とL2キャッシュ9間のデータ配置ポリシであり、複数階層のキャッシュ構成では様々な組み合わせが考えられる。例えば、全ての階層でInclusion方式であってもよい。例えば、L1キャッシュ8はExclusive方式で、L2キャッシュ9とメインメモリ4はInclusion方式であってもよい。また、上述した様々なデータ配置ポリシを任意に組み合わせてもよい。
キャッシュの更新方式にも様々な方式が存在するが、本実施形態はそれら全てと組み合わせ可能である。例えば、キャッシュ書き込みヒット時の書き込み方式がライトスルーであってもよいし、ライトバックであってもよい。また、キャッシュ書き込みミス時の書き込み方式がライトアロケートであってもよいし、ノーライトアロケートであってもよい。ここで、ライトアロケートは、キャッシュミスの場合に、下位階層のキャッシュまたはメインメモリ4から該当データを読み出して、当該キャッシュの更新を行うものであり、ノーライトアロケートは、キャッシュミスしてもキャッシュの更新を行わないものである。
L2キャッシュ9として使用される不揮発メモリ10のメモリ容量はL1キャッシュ8のメモリ容量以上である。このように、高次のキャッシュメモリほどメモリ容量が大きくなる。従って、高次のキャッシュメモリには集積度が高く、容量に比例する傾向にあるリーク電力が少ないメモリを用いることが望ましい。このようなメモリとして、例えば、MRAM(Magnetoresistive Random Access Memory)等の不揮発メモリ10が考えられる。また、例えば、低リーク電力プロセスを用いたSRAMやDRAMであってもよい。
後述するように、本実施形態による不揮発メモリ10は、その少なくとも一部を、L2キャッシュ9またはTLB7として使用できるようにしている。また、電源遮断時には、不揮発メモリ10とは別個に設けられるTLB7に格納されたアドレス変換情報を不揮発メモリ10内に待避(記憶)させることも可能である。
電源管理コントローラ11は、例えば、プロセッサ3の動作情報を取得し、プロセッサ3の低負荷状態または電源遮断時に、TLB7内のアドレス変換情報を不揮発メモリ10に待避(記憶)させる制御を行う。電源管理コントローラ11がTLB7内のアドレス変換情報を不揮発メモリ10に待避(記憶)させる理由は、TLB7はSRAM等の揮発メモリで構成されるため、電源遮断により、TLB7内のアドレス変換情報が消去され、電源復帰後に、ページテーブル6からTLB7にページエントリ情報の一部をコピーしなければならず、TLB7の準備が整うまでの間、プロセッサ3の処理性能や実行効率が低下するおそれがあるためである。本実施形態のように、電源遮断時にTLB7内のアドレス変換情報を不揮発メモリ10に待避(記憶)させるようにすれば、電源復帰時に、不揮発メモリ10からTLB7に高速にアドレス変換情報を書き戻すことができ、電源復帰後のTLBミスの頻度を低減でき、プロセッサ3の処理オーバーヘッドを軽減できる。
電源管理コントローラ11は、例えばプロセッサ3の低負荷時にMMU5の電源を遮断する。電源管理コントローラ11による電源遮断ポリシには様々な方式が存在し、本実施形態は、様々な電源遮断ポリシと組み合わせることができる。
ページテーブル6は、OS(Operating System)が管理する仮想アドレス空間と物理アドレス空間のマッピングを格納するテーブルである。一般的に、仮想アドレスがインデックスとして用いられ、仮想アドレス毎に対応する物理アドレス等を格納する領域をもつ。ページテーブル6内の1つの仮想アドレスに対応する領域をページエントリとよぶ。ページテーブル6は、一般的には、メインメモリ4の主記憶空間上に配置される。なお、本実施形態は様々なページテーブルの形態に適用することが可能である。例えば、物理アドレスをインデックスとして用い、物理アドレス毎に対応する仮想アドレス等を格納する領域をもつページテーブルであっても適用可能である。
TLB7はページテーブル6内の一部のページエントリをキャッシングするメモリ領域である。一般的にハードウェアで実装され、ソフトウェアで実装されるページテーブル6より高速にアクセス可能である。TLB7は、例えばSRAMで構成される。図1では省略しているが、TLB7は、TLB7にアクセスするためのTLBコントローラを有する。
MMU5はTLB7とページテーブル6を管理し、プロセッサ3が発行した仮想アドレスを物理アドレスに変換するアドレス変換機能(仮想記憶管理)、メモリ保護機能、キャッシュ制御機能、バス調停機能、等の機能を提供する。L1キャッシュ8等の上位階層キャッシュは仮想アドレスでアクセスされることもあるが、一般的に、L2キャッシュ9以下の下位階層のメモリはMMU5によって変換された物理アドレスでアクセスされる。MMU5は、メインメモリ4へのデータ配置とデータ追い出しの際に、仮想アドレスと物理アドレスとの変換テーブルを更新する。なお、MMU5は、その全てをハードウェアで実装したり、全てをソフトウェアで実装したり、それらのハイブリッドで実装する等、様々な実装形態が存在する。本実施形態に示される方式は、これら全ての実装形態と組み合わせ可能である。
図1では、MMU5とは別個にTLB7を設けているが、通常はMMU5の内部にTLB7が設けられる。本実施形態では、便宜上、MMU5とTLB7を別個に取り扱うが、例えば、TLB7がMMU5に内蔵される場合も含むものとする。例えば、MMU5とTLB7が個別にプロセッサ3により管理されていてもよい。
メインメモリ4は、L1キャッシュ8および不揮発メモリ10よりもメモリ容量が大きいことから、プロセッサ3等が実装されるチップとは別個の1以上のチップで構成されることが多い。メインメモリ4を構成するメモリセルは、例えばDRAM(Dynamic RAM)セルである。なお、TSV(Through Silicon Via)等の技術を用いて、プロセッサ3等と一つのチップに混載してもよい。
図2は第1の実施形態におけるL1キャッシュ8、L2キャッシュ9として使用可能な不揮発メモリ10およびメインメモリ4のアクセス優先度を示す図である。図示のように、プロセッサ3が発行した仮想アドレスに対応する物理アドレスは、まず最優先にL1キャッシュ8に送られる。この物理アドレスに対応するデータ(以下、対象データ)がL1キャッシュ8にある場合は、プロセッサ3はそのデータにアクセスすることになる。L1キャッシュ8のメモリ容量は、例えば数10kバイト程度である。
対象データがL1キャッシュ8にない場合は、対応する物理アドレスはL2キャッシュ9として使用可能な不揮発メモリ10に送られる。不揮発メモリ10に対象データがある場合は、プロセッサ3はそのデータにアクセスすることになる。不揮発メモリ10のメモリ容量は、例えば数100kバイト〜数Mバイト程度である。
対象データがL2キャッシュ9として使用可能な不揮発メモリ10にない場合は、対応する物理アドレスはメインメモリ4に送られる。本実施形態では、メインメモリ4には、不揮発メモリ10に格納されている全データが格納されているものとする。なお、本実施形態は、上述したキャッシュ間データ配置ポリシに限定されるものではない。
メインメモリ4には、MMU5で管理されるページ単位のデータが格納される。一般的に、MMU5で管理されるページ単位のデータはメインメモリ4と補助記憶装置に配置されるが、本実施形態では簡易化のため全てのデータがメインメモリ4に配置されているものとする。本実施形態では、メインメモリ4に対象データがある場合は、プロセッサ3はそのデータにアクセスすることになる。メインメモリ4のメモリ容量は、例えば数Gバイト程度である。
このように、L1キャッシュ8および不揮発メモリ10を含むキャッシュメモリは階層化されており、次数の大きい(下位階層の)キャッシュメモリほどメモリ容量は大きい。本実施形態では、簡単化のため、次数の大きいキャッシュメモリには、次数の小さい(上位階層の)キャッシュメモリに格納されている全データが格納されるものとしている。
TLB7は、ページごとにページエントリ情報とページ番号とを対応づけて記憶している。ページ番号には、仮想アドレス情報が格納される。図3はページエントリ情報12の一例を示す図である。図3のページエントリ情報12は、ページフレーム番号13と、属性情報14とを含んでいる。
ページフレーム番号13には、ページ番号(仮想アドレス情報)に対応する物理アドレス情報が格納される。
属性情報14は、例えば、ダーティビット情報Dと、アクセスビット情報Aと、ユーザ・スーパーバイザ・ビット情報U/Sと、リードライトビット情報R/Wと、プレゼントビット情報Pとを含んでいる。ダーティビット情報Dは、このページに書き込みを行ったときに1に設定される。アクセスビット情報Aは、このページにアクセスすると1に設定される。ユーザ・スーパーバイザビット情報U/Sは、該当ページをユーザモードで使用するか、スーパーバイザモードで使用するかを設定するものである。リードライトビット情報R/Wは、読み出しのみを行うときに0に設定され、読み書きを行うときに1に設定される。プレゼントビットPは、このページがメインメモリ4に存在するときに1に設定される。
図4はTLB7を用いたアドレス変換処理の処理手順の一例を示すフローチャートである。まず、プロセッサ3が仮想アドレスにてメモリアクセスを要求すると(ステップS1)、その仮想アドレスをMMU5が受け取って、TLB7参照用のページ番号を生成する(ステップS2)。次に、MMU5は、生成したページ番号を用いてTLB7へのアクセスを行う(ステップS3)。図1では不図示のTLBコントローラ15は、MMU5からページ番号を受け取ると、そのページ番号がTLB7内に存在するか否かを確認する(ステップS3)。存在しない場合は、TLBミスをMMU5に通知する(ステップS4)。TLBミスが発生すると、MMU5は、プロセッサ3のアーキテクチャの設計ポリシに基づいて、TLBミス時の処理を行う。例えば、MMU5は、ページテーブル6へのアクセスを行い、その結果をTLB7に書き込み(ステップS5)、その後に、ステップS3に戻って、再度TLB7へのアクセスを行う。
一方、ステップS3で存在すると確認された場合、TLBコントローラ15は、TLBヒットと判断して、ページ番号に対応するページエントリをTLB7から読出して、MMU5に送る(ステップS6)。
MMU5は、ページエントリ情報12に含まれるページフレーム番号13と、ページ内オフセットとを結合した物理アドレスを生成する(ステップS7)。
図5はTLB7のデータ構成の一例を示す図である。図5のTLB7は、8ウェイのフルアソシアティブ構成であり、TLBコントローラ15によりアクセスされる。図5のTLB7は、各ウェイごとに、仮想アドレスの一部であるページ番号16と、図4に示すページエントリ情報12とを対応づけて記憶している。例えば、仮想アドレスが64ビットで、ページサイズが4Kバイトの場合、一例として、仮想アドレスの上位52ビットがページ番号16として用いられ、下位12ビットがページ内オフセットとして用いられる。
図6は図1の不揮発メモリ10をL2キャッシュ9として使用する場合のデータ構成の一例を示す図である。図6はセット数が2で8ウェイのセットアソシアティブ構成を示している。なお、セット数とウェイ数は図6に示したものに限定されない。例えば、セットは、物理アドレス中の第1アドレスビット群で選択され、ウェイは、物理アドレス中の第1アドレスビット群よりも下位側の第2アドレスビット群で選択される。
図6に示すように、不揮発メモリ10は、不揮発メモリ領域10aの他に、L2キャッシュコントローラ17とTLB待避コントローラ18とを有する。L2キャッシュコントローラ17は、不揮発メモリ10をL2キャッシュ9として使用する場合に、L2キャッシュ9へのアクセスを制御する。TLB待避コントローラ18は、電源遮断時に不揮発メモリ10にTLB7内の情報を待避(記憶)させる制御を行う。TLB待避コントローラ18は、図1の電源管理コントローラ11に統合してもよい。
TLB待避コントローラ18は、MMU5の電源遮断時には、TLB7内のページ番号およびページエントリ情報12をL2キャッシュ9として使用される不揮発メモリ10に待避(記憶)させる。なお、TLB7内に格納される情報は、必ずしも図3に示したものに限定されない。ただし、TLB7には少なくとも仮想アドレスから物理アドレスへのアドレス変換情報が格納されている。よって、TLB待避コントローラ18は、MMU5の電源遮断時には、TLB7内の少なくともアドレス変換情報を不揮発メモリ10に待避(記憶)させる。
より詳細には、TLB待避コントローラ18は、MMU5の電源遮断時には、電源管理コントローラ11からの指示を受けて、例えば、不揮発メモリ10内の1つまたは複数のウェイに、TLB7内の情報を待避(記憶)させる。すなわち、TLB待避コントローラ18は、不揮発メモリ10のウェイを単位として、TLB7内の情報を待避(記憶)させる。または、セットを単位としてTLB7内の情報を退避してもよい。本実施形態では、ウェイを単位とする構成を示す。ウェイを単位とする理由は、L2キャッシュコントローラ17は、ウェイごとにL2キャッシュ9にアクセスするため、一部のウェイを無効化してTLB7用に割り当てたとしても、その他のウェイを無効化する必要が無く、L2キャッシュ9アクセスにはそれほど支障は生じないためである。なお、不揮発メモリ10がウェイ構成になっていない場合は、予め定めたメモリ領域にTLB7内の情報を待避(記憶)させてもよい。
図7はMMU5の電源遮断時の処理動作の一例を示すフローチャートである。電源管理コントローラ11は、例えば、プロセッサ3の動作状態をモニタしており、プロセッサ3が低負荷状態であると認識すると(ステップS11)、MMU5に電源遮断リクエストを送信する(ステップS12)。電源管理コントローラ11には様々な実装形態が考えられる。例えば、プロセッサ3で実行されるOSのようなソフトウェアであってもよいし、プロセッサ3とは別のハードウェア等で構成された専用モジュールであってもよい。ソフトウェアとハードウェアのハイブリッド構成であってもよい。電源管理コントローラ11は、割り込みコントローラの機能を備えてもよいし、割り込みコントローラから割り込み情報を受け取り、電源管理を行ってもよい。このリクエストを受けたMMU5は、TLB待避コントローラ18にTLB7の待避準備を要求する(ステップS13)。
TLB待避コントローラ18は、L2キャッシュコントローラ17に不揮発メモリ10の一部領域の無効化を要求する(ステップS14)。この要求を受けて、L2キャッシュコントローラ17は、不揮発メモリ10の1つまたは複数のウェイを無効化し、無効化したウェイをL2キャッシュコントローラ17の管理対象から除外する(ステップS15)。
L2キャッシュコントローラ17は、一部のウェイを無効化するにあたって、例えばアクセス頻度の低い領域、すなわちLRU(Least Recently Used)近傍のウェイを優先的に無効化する。図8はウェイ8を無効化する例を示している。L2キャッシュコントローラ17は、ウェイ8に格納されているダーティなデータをメインメモリ4内に書き戻す(ステップS16)。続いて、L2キャッシュコントローラ17は、ウェイ8に格納されているすべてのデータを無効化し、不図示の有効ウェイレジスタの値を8から7にデクリメントする(ステップS17)。
次に、TLB待避コントローラ18は、不揮発メモリ10内のウェイ8のメモリ領域を、設計時に定めたポリシに従って、TLB7内のページ番号とページエントリ情報12とを格納する領域として認識する。そして、ウェイ8の先頭領域からアドレス順に、TLB7内の全データを格納するポリシを決定する(ステップS18)。例えば、TLB7が図5のように、8ウェイのフルアソシアティブ構成の場合、不揮発メモリ10内のウェイ8の先頭領域に、TLB7内のウェイ1のページ番号およびページエントリ情報12を格納し、引き続いて、TLB7内のウェイ2から8までのページ番号およびページエントリ情報12を順に格納する。
不揮発メモリ10内でTLB7の情報格納に用いるウェイの数は、ウェイのデータサイズやTLB7のデータサイズ等に依存する。例えば、不揮発メモリ10の1ラインが64バイトの場合、不揮発メモリ10の1ウェイ(2ライン)分をTLB7の情報格納に用いるとすると、64×2=128バイトである。TLB7のページ番号が52ビット、TLB7のページエントリ情報12が64ビット、ウェイ数が8とすると、128−(52+64)×8/8=12バイトが余ることになる。この余りの領域は、例えばTLB待避コントローラ18の管理外としてもよいし、空き領域として認識し、他の目的に利用してもよい。
TLB待避コントローラ18は、MMU5にTLB7の読出しを要求する(ステップS19)。この要求に従ってMMU5がTLB7から情報を読み出すと、読み出した情報をTLB待避コントローラ18は、不揮発メモリ10内の無効化領域に格納する(ステップS20)。TLB7から不揮発メモリ10への情報格納が終了すると、TLB待避コントローラ18は、MMU5に書込み完了を通知する(ステップS21)。最後に、MMU5はTLB7の電源を遮断する。
図9は電源復帰時の処理動作の一例を示すフローチャートである。電源管理コントローラ11は、例えばプロセッサ3の負荷状態を認識し、MMU5に電源復帰リクエストを送信する(ステップS22)。このリクエストを受けると、MMU5はTLB7の電源を復帰する(ステップS23)。続いて、MMU5はTLB退避コントローラ18に、退避データの書き戻しを要求する(ステップS24)。TLB退避コントローラ18は、退避データをTLB7に書き戻す(ステップS25)。書き戻しが完了すると、TLB退避コントローラ18は、L2キャッシュコントローラ17に不揮発メモリ10の一部領域の有効化を要求する(ステップS26)。L2キャッシュコントローラ17は、無効化していた不揮発メモリ10の1つまたは複数のウェイを有効化し、不図示の有効ウェイレジスタの値を7から8にインクリメントし(ステップS27)、TLB退避コントローラ18に有効化完了を通知する(ステップS28)。TLB退避コントローラ18は、MMU5に退避データの書き戻し完了を通知する(ステップS29)。MMU5は電源管理コントローラ11に、電源復帰完了を通知する(ステップS30)。
退避データのTLB7への書き戻しは必ずしも必須ではない。電源復帰の際に、退避データのTLB7への書き戻しを行うかどうかを判断する手順をふみ、書き戻しを行わないと判断した場合には、以下の手順で電源復帰を行ってもよい。
電源管理コントローラ11は、MMU5に電源復帰リクエストを送信する。MMU5はTLB7の電源を復帰し、初期化する。MMU5は電源管理コントローラ11に電源復帰完了を通知する。
電源復帰の際に、退避データのTLB7への書き戻しを行うかどうかを判断する基準としては、さまざまなものが考えられる。例えば、判断する基準として、書き戻すアドレス変換情報が正しいものであるかどうか、という基準がある。書き戻すアドレス変換情報が正しいものでない、または、その可能性がある場合は、書き戻しを行わないと判断してもよい。書き戻すアドレス変換情報が正しいものであるかどうかは、例えば、電源遮断中にページテーブルが書き換えられたかどうかをチェックしてもよい。更に、退避しているアドレス変換情報が属するアドレス空間に関するページテーブルが書き換えられたかどうかをチェックしてもよい。例えば、OSのような管理者が、電源遮断中にページテーブルを書き換えたかを記憶し、書き換えていた場合には、電源復帰時に退避データの書き戻しを行わなくてもよい。例えば、OSのような管理者が、電源遮断時にTLBに存在したアドレス変換情報のアドレス空間のIDを記憶し、電源遮断中にページテーブルを書き換えたアドレス空間IDを記憶し、電源復帰時に、それらのIDが一致すれば、電源復帰時に退避データの書き戻しを行わなくてもよい。
例えば、判断する基準として、書き戻すアドレス変換情報が、電源復帰後に利用される(書き戻したあとTLBヒットする)かどうか、という基準がある。電源復帰時に利用されない、または、その可能性が高い場合は、書き戻しを行わないと判断してもよい。書き戻すアドレス変換情報が電源復帰後に利用されるかどうかは、例えば、退避しているアドレス変換情報が属するアドレス空間を、電源復帰後にすぐにプロセッサが利用するかどうかチェックしてもよい。例えば、OSのような管理者が、電源遮断時にTLB7に存在したアドレス変換情報のアドレス空間のIDを記憶し、電源復帰時にプロセッサ3で実行するプログラムがそのIDのアドレス空間にアクセスしない場合は、電源復帰時に退避データの書き戻しを行わなくてもよい。プロセッサ3で実行するプログラムが、どのIDのアドレス空間にアクセスするかは、実行するプログラムのプロセスIDからOSのような管理者が判断してもよい。
なお、退避データの書き戻しは、電源復帰後のTLB7へのアクセスをトリガにして行ってもよい。例えば、以下のような手順で書き戻す。
MMU5はTLB7の電源を復帰し、初期化する。MMU5はTLB7の電源復帰の完了を電源管理コントローラ11に通知する。プロセッサ3は、プログラムの実行を開始し、MMU5へアドレス変換を要求する。TLB7にミスすると、TLB7はTLB退避コントローラ18へ所望のアドレス変換情報が存在するか問い合わせる。TLB退避コントローラ18は、要求されたアドレス変換情報が存在するかチェックし、存在すれば、TLBコントローラ15に退避したTLBエントリを送付する。TLBコントローラ15はそれらをTLBに書き込み、MMU5にアドレス変換情報を送付する。
このように、第1の実施形態では、L2キャッシュ9として使用可能な不揮発メモリ10の少なくとも一部を、MMU5の電源遮断時に、TLB7内のページエントリ情報12等を格納するために使用するため、TLB7としてSRAM等の揮発メモリを用いていても、電源遮断により、TLB7の情報が消去されなくなる。よって、電源復帰後にTLBミスが増えるような不具合が生じなくなり、プロセッサ3の処理性能を向上できる。
(第2の実施形態)
図10は第2の実施形態によるメモリシステム1を備えたプロセッサシステム2の概略構成を示すブロック図である。図10のメモリシステム1は、MMU5、ページテーブル6およびL1キャッシュ(第2キャッシュメモリ)8の他に、再構成コントローラ21、再構成メモリ22、L1TLB23、L2TLB(第1トランスレーション・ルックアサイド・バッファ)24およびL3キャッシュ25を備えている。
L1キャッシュ8、L1TLB23およびL2TLB24は、例えばSRAMのような揮発メモリである。再構成メモリ22とL3キャッシュ25は、MRAMのような不揮発メモリ10である。
再構成メモリ22は、L2キャッシュ9またはL3TLB(第2トランスレーション・ルックアサイド・バッファ)20として使用可能であり、再構成コントローラ21により、再構成メモリ22をL2キャッシュ9またはL3TLB20のどちらで使用するかを切り替えることができる。
再構成メモリ22をL2キャッシュ9として使用する場合、L1キャッシュ8、L2キャッシュ9およびL3キャッシュ25は、Inclusion方式でデータを管理してもよい。この場合、L2キャッシュ9にはL1キャッシュ8に格納された全データが格納され、L3キャッシュ25にはL2キャッシュ9に格納された全データが格納される。あるいは、Exclusion方式でデータを管理してもよい。この場合、L1キャッシュ8、L2キャッシュ9およびL3キャッシュ25には、重複したデータは格納されない。また、Inclusion方式とExclusion方式を組み合わせてもよい。例えば、L1キャッシュ8とL2キャッシュ9はExclusive方式で、L2キャッシュ9とL3キャッシュ25はInclusion方式であってもよい。
L1キャッシュ8、L2キャッシュ9およびL3キャッシュ25の書込みヒット時の書込み方式は、ライトスルーとライトバックのどちらでもよい。また、L1キャッシュ8、L2キャッシュ9およびL3キャッシュ25の書込みミス時の書込み方式は、ライトアロケートとライトノンアロケートのどちらでもよい。
L2キャッシュ9のメモリ容量は、L1キャッシュ8のメモリ容量以上であり、L3キャッシュ25のメモリ容量は、L2キャッシュ9のメモリ容量以上である。
なお、図10では、L3キャッシュ25までの3階層のキャッシュメモリを備えているが、本実施形態はこれに限定されるものではない。4階層以上の高次のキャッシュメモリを設けてもよいし、2階層のキャッシュメモリであってもよい。
L1TLB23とL2TLB24は、階層化されたTLBであり、例えばL2TLB24のメモリ容量はL1TLB23のメモリ容量より大きく、L1TLB23がL2TLB24よりも優先してアクセスされる。L1TLB23は、例えば図5のようなフルアソシアティブ構成のTLBである。また、L2TLB24は、例えばセットアソシアティブ構成のTLBである。
再構成コントローラ21は、再構成メモリ22を、L2キャッシュ9として機能させるキャッシュモード(第1モード)と、L3TLB20として機能させるTLBモード(第2モード)との切替選択を行う。
図10の例では、再構成コントローラ21は、L1キャッシュ8とL2TLB24に接続されている。また、再構成メモリ22は、再構成コントローラ21からの制御に従って、L1キャッシュ8またはL2TLB24からのアクセス要求を受け付ける。
図11はキャッシュモード時のメモリ構成を示す図である。L1キャッシュ8がミスすると、L1キャッシュ8は、L2キャッシュ9として機能する再構成メモリ22にアクセス要求を送る。再構成メモリ22は、キャッシュミスすると、L3キャッシュ25にアクセス要求を送る。
図12はキャッシュモード時の再構成メモリ22のデータ構成を示す図である。図12に示すように、再構成メモリ22は、再構成メモリアレイ26と、L2キャッシュコントローラ27と、L3TLBコントローラ(第2コントローラ)28とを有する。キャッシュモード時には、再構成メモリアレイ26は、L2キャッシュ9として使用され、L2キャッシュ9のアクセス制御はL2キャッシュコントローラ27が行う。L3TLBコントローラ28は、キャッシュモード時には停止状態である。
キャッシュモード時には、再構成メモリアレイ26の全領域がL2キャッシュ9として機能し、図12の例では、再構成メモリアレイ26を2セットで8ウェイのセットアソシアティブ構成にしている。
図13はTLBモード時のメモリ構成を示す図である。TLBモード時には、L2TLB24がミスすると、L2TLB24は、L3TLB20として機能する再構成メモリ22にアクセス要求を送る。MMU5は、再構成メモリ22内のL3TLB20でもミスすると、TLBミスと判断して、ページテーブル6にアクセスする。
図14はTLBモード時の再構成メモリ22のデータ構成を示す図である。TLBモード時には、再構成メモリ22は、L3TLB20として機能するため、図14の例では、8セットで8ウェイのセットアソシアティブ構成にしている。L3TLBコントローラ28がL3TLB20の制御を行い、L2キャッシュコントローラ27は停止している。
図14のL3TLB20は、各ウェイの各セットが、ページ番号を格納する領域とページエントリ情報12を格納する領域とを有する。例えば、8セット設けるセットアソシアティブ方式とすることで、フルアソシアティブ方式と比較し、ページ番号を格納する領域に格納されるページ番号の情報を最大3ビット削減することができる。すなわち、例えば、ページ番号を格納する領域には、ページ番号を3ビット省略したページ番号のタグを格納すればよい。
図15は第2の実施形態によるメモリシステム1の処理手順の一例を示すフローチャートである。まず、再構成メモリ22がキャッシュモードかTLBモードかを選択する(ステップS31)。モード選択にあたっては、後述するように、キャッシュミス率やTLBミス率などを参考にする。
キャッシュモードを選択した場合にL1TLB23およびL2TLB24の双方にミスすると、TLBミスとなり、MMU5はページテーブル6にアクセスする(ステップS32)。
MMU5は、L1TLB23、L2TLB24またはページテーブル6から取得したアドレス変換情報を用いてL1キャッシュ8にアクセス要求を送付し、L1キャッシュ8がミスすると、L1キャッシュ8は再構成メモリ22にアクセス要求を送る(ステップS33)。L2キャッシュ9として機能する再構成メモリ22は、キャッシュヒットするか否かを確認し(ステップS34)、キャッシュヒットすると、再構成メモリ22から該当データを読み出してL1キャッシュ8に送る(ステップS35)。ステップS35でキャッシュミスすると、再構成メモリ22はL3キャッシュ25にアクセス要求を送る(ステップS36)。
一方、ステップS31でTLBモードを選択した場合に、L1TLB23またはL2TLB24にヒットすると、後述するステップS41に移行する。また、L1TLB23およびL2TLB24の双方にミスすると、L2TLB24は、L3TLB20として機能する再構成メモリ22にアクセス要求を送る(ステップS37)。
L3TLBコントローラ28は、L3TLB20に該当するページエントリ情報12があるか否かを判定し(ステップS38)、L3TLB20に該当するページエントリ情報12があればTLBヒットとなり、L3TLBコントローラ28は、MMU5にページエントリ情報12を通知する(ステップS39)。L3TLB20に該当するページエントリ情報12がなければTLBミスとなり、MMU5はページテーブル6にアクセスする(ステップS40)。
MMU5は、L1TLB23、L2TLB24、L3TLB20またはページテーブル6からアドレス変換情報を取得し(ステップS41)、取得したアドレス変換情報をL3TLB20、L2TLB24およびL1TLB23にフィルする(書き込む)。L2TLB24は、このフィルの際に上書きされ消去されるアドレス変換情報をL3TLB20に追い出して(書き込んで)もよい。MMU5は、L1TLB23から取得したアドレス変換情報を用いてL1キャッシュ8にアクセス要求を送付し(ステップS42)、L1キャッシュ8がミスすると、L1キャッシュ8はL3キャッシュ25にアクセス要求を送る。
なお、図14のデータ構成は一例であり、セット数やウェイ数は任意である。また、必ずしも再構成メモリ22をセットアソシアティブ構成にする必要はない。場合によっては、フルアソシアティブ構成やダイレクトマップ構成にしてもよい。
図16はキャッシュモードからTLBモードへの遷移の手順の一例を示すフローチャートである。再構成コントローラ21は、L2キャッシュコントローラ27に対して、キャッシュフラッシュを行うよう通知する(ステップS41)。L2キャッシュコントローラ27は、L2キャッシュ9として用いる再構成メモリ22内のダーティデータをL3キャッシュ25に書き戻し、キャッシュフラッシュ完了を再構成コントローラ21に通知する(ステップS42)。
再構成コントローラ21は、L1キャッシュ8のキャッシュミス時にL1キャッシュ8がL3キャッシュ25にアクセスするよう、L1キャッシュ8を設定する(ステップS43)。これに並行して、再構成コントローラ21は、L3TLBコントローラ28に、再構成メモリ22をL3TLB20として使用するために、再構成メモリ22の初期化を通知する(ステップS44)。
L3TLBコントローラ28は、再構成メモリ22を初期化し、初期化完了を再構成コントローラ21に通知する(ステップS45)。再構成コントローラ21は、L2TLB24のミス時にL2TLB24が再構成コントローラ21にアクセスするようL2TLB24を設定する(ステップS46)。
図17はTLBモードからキャッシュモードへの遷移の手順の一例を示すフローチャートである。再構成コントローラ21は、L2TLBコントローラに、L2TLB24のミス時にTLBミスであると認識するようL2TLB24を設定させる(ステップS51)。次に、再構成コントローラ21は、L2キャッシュコントローラ27に、L2キャッシュ9として機能する再構成メモリ22を初期化するよう通知する(ステップS52)。L2キャッシュコントローラ27は、L2キャッシュ9の初期化を行い、初期化の完了を再構成コントローラ21に通知する(ステップS53)。再構成コントローラ21は、L1キャッシュ8ミス時にL1キャッシュ8が再構成コントローラ21にアクセスするようにL1キャッシュ8を設定する(ステップS54)。
(モード遷移の判断基準)
再構成コントローラ21がキャッシュモードとTLBモードとの間でモード遷移を行う判断基準は、例えば、以下のようにして行う。
1.再構成コントローラ21は、再構成メモリ22をL2キャッシュ9として使用している場合に、L2TLBミスがプロセッサ3の処理性能に大きく影響を与えている場合には、TLBモードに遷移させる。例えば、L2キャッシュ9のキャッシュヒット頻度による処理性能向上よりも、L2TLB24のミス頻度情報による処理性能低下の方が大きいと判断できる場合には、TLBモードに遷移させてもよい。より具体的には、L2TLB24のミス頻度情報が設定された閾値以上で、L2キャッシュ9のキャッシュヒット頻度情報が設定された閾値を以下の場合に、再構成コントローラ21はTLBモードに遷移させてもよい。L2TLB24のミス頻度情報とL2キャッシュ9のヒット頻度情報を直接比較してもよい。例えば、L2TLB24のミス頻度情報がL2キャッシュ9のヒット頻度情報より大きければ、TLBモードに遷移させてもよい。
2.再構成コントローラ21は、再構成メモリ22をL3TLB20として使用している場合に、L1キャッシュ8のキャッシュミスがプロセッサ3の処理性能に大きな影響を与えている場合には、キャッシュモードに遷移させる。例えば、L3TLB20のヒット情報頻度による処理性能向上よりも、L1キャッシュ8がミスし、L2キャッシュ9がヒットする予測頻度情報による処理性能向上が大きいと判断できる場合には、キャッシュモードに遷移してもよい。より具体的には、L3TLB20のヒット頻度情報が設定された閾値以下で、予測したL2キャッシュ9のヒット頻度情報が設定された閾値以上の場合に、再構成コントローラ21はキャッシュモードに遷移させてもよい。L3TLB20のヒット頻度情報と予測したL2キャッシュ9のヒット頻度情報を直接比較してもよい。例えば、L3TLB20のヒット頻度情報が予測したL2キャッシュ9のヒット頻度情報より小さければ、キャッシュモードに遷移させてもよい。
L2キャッシュ9の予測ヒット頻度情報は、例えば、TLBモードで無効化されているL2キャッシュコントローラ27のキャッシュタグを利用し、計測することが出来る。この場合、例えば、L1キャッシュ8は、キャッシュミスしたアドレスをL2キャッシュコントローラ27に通知し、L2キャッシュコントローラ27は、再構成メモリ22の制御を行うことなくタグメモリのみを動作させ、L2キャッシュ9でのヒット・ミスをシミュレーションすればよい。
なお、キャッシュおよびTLBのヒット頻度情報は、様々な定量化が考えられる。例えば、単位時間若しくは単位命令数当たりのヒット回数でも良い。ヒットによる処理性能向上の度合いでも良い。ヒットによる性能向上の度合いは、例えば、対象階層メモリ(キャッシュもしくはTLB)とその下位階層メモリのレイテンシの差と、対象階層メモリの単位時間当たりのヒット回数を乗算すれば算出できる。算出された値を、単位時間もしくは単位命令あたりのプロセッサ実行時間で除算した処理性能向上率を用いてもよい。
図18はキャッシュモード時に再構成コントローラ21が行うモード遷移処理の処理手順の一例を示すフローチャートである。
例えば、再構成コントローラ21は、キャッシュモードでは、L2キャッシュ9として機能する再構成メモリ22からL2キャッシュ9のキャッシュヒット頻度情報を取得するとともに、L2TLB24からL2TLB24のミス頻度情報を取得する(ステップS61)。
次に、再構成コントローラ21は、取得したL2キャッシュ9のキャッシュヒット頻度情報が予め定めた第1閾値未満で、かつ取得したL2TLB24のミス頻度情報が予め定めた第2閾値以上か否かを判定する(ステップS62)。
ステップS62の判定がYESの場合、すなわち、L2キャッシュ9のキャッシュヒット頻度情報が第1閾値未満で、かつL2TLB24のミス頻度情報が第2閾値以上であれば、キャッシュモードからTLBモードへの遷移を行う(ステップS63)。
ステップS62の判定がNOの場合、すなわち、L2キャッシュ9のキャッシュヒット頻度情報が第1閾値以上か、L2TLB24のミス頻度情報が第2閾値未満かの少なくとも一方であれば、モード遷移は行わず、現状のキャッシュモードを保持する(ステップS64)。
図19はTLBモード時に再構成コントローラ21が行うモード遷移処理の処理手順の一例を示すフローチャートである。
例えば、再構成コントローラ21は、TLBモードでは、L3TLB20として機能する再構成メモリ22からL3TLB20のヒット頻度情報を取得するとともに、L2キャッシュコントローラ27から予測ヒット頻度情報を取得する(ステップS71)。
次に、再構成コントローラ21は、取得したL3TLB20のヒット頻度情報が予め定めた第3閾値未満で、かつ取得したL2キャッシュの予測ヒット頻度情報が予め定めた第4閾値以上か否かを判定する(ステップS72)。
ステップS72の判定がYESの場合、すなわち、L3TLB20のヒット頻度情報が第3閾値未満で、かつL2キャッシュの予測キャッシュヒット頻度情報が第4閾値以上であれば、TLBモードからキャッシュモードへの遷移を行う(ステップS73)。
ステップS72の判定がNOの場合、すなわち、L3TLB20のヒット頻度情報が第3閾値以上か、L2キャッシュ8の予測キャッシュヒット頻度情報が第4閾値未満かの少なくとも一方であれば、モード遷移は行わず、現状のTLBモードを保持する(ステップS74)。
図10では、再構成メモリ22を、L2キャッシュ9またはL3TLB20として使用する例を説明したが、再構成メモリ22に割り当てるキャッシュメモリの階層とTLBの階層とは任意である。すなわち、上述したキャッシュモードでは、再構成メモリ22を、複数階層のキャッシュメモリのうち任意の階層のキャッシュメモリとして使用し、上述したTLBモードでは、複数階層のTLBのうち任意の階層のTLBとして使用するようにしてもよい。
このように、第2の実施形態では、不揮発メモリ10からなる再構成メモリ22を、キャッシュメモリとして使用するか、TLBとして使用するかを、再構成コントローラ21が切り替えることができるようにしたため、プロセッサ3の処理性能をより向上できる。すなわち、キャッシュミスが多い場合には、再構成メモリ22によりキャッシュメモリのメモリ容量を増やすことができるため、キャッシュミスを削減できる。また、TLBミスが多い場合には、再構成メモリ22によりTLBの容量を増やすことができるため、TLBミスを削減できる。
また、第1の実施形態と同様に、再構成メモリ22の一部、例えば一部のウェイを、電源遮断時のTLBの待避(記憶)先として用いることができる。よって、電源復帰後のTLBミスの増加を抑制できる。電源遮断時のTLB待避(記憶)の制御は、再構成コントローラ21が行ってもよいし、あるいは、他のコントローラ(例えば、図1の電源管理コントローラ11)を図10のメモリシステム1に設けても、このコントローラで電源遮断時のTLB待避(記憶)の制御を行ってもよい。第2の実施形態での電源遮断時のTLBの退避に関しても、第1の実施形態に記載されている種々の制御ポリシや制御手順は適用可能である。
(第3の実施形態)
第3の実施形態は、再構成メモリ22の一部をキャッシュメモリとして使用し、残りの少なくとも一部をTLBとして使用するものである。すなわち、第3の実施形態による再構成メモリ22は、キャッシュメモリの領域とTLBの領域とが混在したハイブリッド構成である。
第3の実施形態によるメモリシステム1を備えたプロセッサシステム2は、図10と同様に構成される。
図20は第3の実施形態による再構成メモリ22の内部構成の一例を示すブロック図である。図20の再構成メモリ22は、再構成メモリアレイ26と、L2キャッシュコントローラ27と、L3TLBコントローラ28とを有する。
再構成メモリアレイ26は、全メモリ領域をL2キャッシュ9またはL3TLB20として使用することができる他、一部のメモリ領域をL2キャッシュ9として使用し、残りの少なくとも一部をL3TLB20として使用することができる。
再構成コントローラ(第2コントローラ)21は、再構成メモリアレイ26内の割り振りを制御する。すなわち、再構成コントローラ21は、再構成メモリアレイ26内のメモリ領域の少なくとも一部をL2キャッシュ9およびL3TLB20として使用するか否かを制御する。
再構成メモリアレイ26内のL2キャッシュ9は、L2キャッシュコントローラ27によりアクセス制御され、再構成メモリアレイ26内のL3TLB20は、L3TLBコントローラ28によりアクセス制御される。
図21は再構成メモリアレイ26をキャッシュモードから一部TLBモードに遷移させる処理手順の一例を示すフローチャートである。まず、L2キャッシュコントローラ27に対して、再構成メモリアレイ26の任意のウェイのキャッシュフラッシュを通知する(ステップS81)。
次に、ステップS81でキャッシュフラッシュを通知したウェイのダーティデータをL3キャッシュ25に書き戻して、キャッシュフラッシュの完了を再構成コントローラ21に通知する(ステップS82)。
次に、L3TLBコントローラ28にウェイの追加とその初期化を通知する(ステップS83)。次に、L3TLBコントローラ28は、追加したウェイを初期化し、初期化の完了を再構成コントローラ21に通知する(ステップS84)。
次に、再構成コントローラ21は、L2TLB24のミス時に再構成コントローラ21に通知するようL2TLB24を設定する。(ステップS85)。
図21の処理手順で、再構成メモリアレイ26の任意のウェイをTLBモードに遷移させた後、さらに別の任意のウェイをTLBモードに遷移させることも可能である。この場合の処理手順は、例えば図22のようなフローチャートになる。
まず、L2キャッシュコントローラ27に対して、新たな任意のウェイのキャッシュフラッシュを通知する(ステップS91)。次に、ステップS91でキャッシュフラッシュを通知したウェイのダーティデータをL3キャッシュ25に書き戻して、キャッシュフラッシュの完了を再構成コントローラ21に通知する(ステップS92)。その後は、ステップS83〜S85と同様の処理が行われる(ステップS93〜S95)。
このようにして、再構成メモリアレイ26内で、TLBモードのウェイを増やすことができる。一方、再構成メモリアレイ26内のTLBモードのウェイをキャッシュモードに遷移することも可能である。
図23は再構成メモリアレイ26内のTLBモードのウェイをキャッシュモードに遷移させる処理手順の一例を示すフローチャートである。まず、L3TLBコントローラ28に任意のウェイの無効化を通知する(ステップS101)。次に、L3TLBコントローラ28は、通知されたウェイの無効化を行い、無効化の完了を再構成コントローラ21に通知する(ステップS102)。
再構成コントローラ21は、L2キャッシュコントローラ27にウェイの追加とその初期化を通知する(ステップS103)。L2キャッシュコントローラ27は、追加したウェイを初期化し、初期化の完了を再構成コントローラ21に通知する(ステップS104)。再構成コントローラ21は、L1キャッシュ8のキャッシュミス時に再構成コントローラ21にアクセスするようL1キャッシュ8を設定する(ステップS105)。
図23の処理手順で、再構成メモリアレイ26の任意のウェイをTLBモードからキャッシュモードに遷移させた後、さらに別の任意のウェイをキャッシュモードに遷移させることも可能である。この場合の処理手順は、例えば図24のようなフローチャートになる。
再構成コントローラ21は、L3TLBコントローラ28に任意のウェイの無効化を通知する(ステップS111)。L3TLBコントローラ28は、通知されたウェイの無効化を行い、無効化の完了を再構成コントローラ21に通知する(ステップS112)。その後は、図22のステップステップS103,S104と同様の処理を行う(ステップS113,S114)。
図25は第3の実施形態による再構成コントローラ21の処理手順を示すフローチャートである。なお、このフローチャートは、再構成メモリアレイ26が、複数のウェイを有するフルアソシアティブまたはセットアソシアティブ構成である例を示している。
まず、再構成コントローラ21は、再構成メモリ22から、L2キャッシュ9のキャッシュヒット頻度情報とL3TLB20のミス頻度情報とを取得する(ステップS121)。
次に、L2キャッシュ9のキャッシュヒット頻度情報が第1閾値未満で、かつL2TLB20のミス頻度情報が第2閾値以上か否かを判定する(ステップS122)。
ステップS122の判定がYesであれば、L2キャッシュ9のウェイを減らして、L3TLB20のウェイを増やす(ステップS123)。ここでは、例えば、1つまたは複数のウェイ単位で、L2キャッシュ9の領域を減らして、L3TLB20の領域を増やす。
ステップS122の判定がNoであれば、L3TLB20のヒット頻度情報が第3閾値未満で、かつL2キャッシュ9の予測ヒット頻度情報が第4閾値以上か否かを判定する(ステップS124)。
ステップS124の判定がYesであれば、L3TLB20のウェイを減らして、L2キャッシュ9のウェイを増やす(ステップS125)。ステップS124の判定がNoであれば、再構成メモリアレイ26における現状のウェイ構成を保持して、図25の処理を終了する。
第3の実施形態においても、再構成メモリ22に割り当てるキャッシュメモリの階層とTLBの階層とは任意であり、L2キャッシュ9とL3TLB20に限定されるものではない。
なお、再構成メモリアレイ26が複数のウェイに分かれていない場合は、例えば、所定のメモリサイズのメモリブロックごとに、L2キャッシュ9またはL3TLB20として使用するか否かを設定してもよい。
このように、第3の実施形態では、再構成メモリアレイ26内に、キャッシュメモリとTLBの双方を混在させることができるため、キャッシュアクセス情報やTLBミスアクセス情報に応じて、再構成メモリアレイ26内のキャッシュメモリとTLBの割合を増減でき、キャッシュミスの低減や、TLBミスの低減が可能である。
(第4の実施形態)
上述した図1〜図25では、プロセッサ3がシングルコアの例を説明したが、上述した第1、第2および第3の実施形態は、種々のプロセッサ3の構成に適用可能である。例えば、図26は第2または第3の実施形態をマルチコアに適用した第1例を示すブロック図である。図26は、2つのプロセッサ3を有する例を示している。各プロセッサ3ごとに、MMU5、ページテーブル6、L1キャッシュ8、再構成コントローラ21、再構成メモリ22、L1TLB23およびL2TLB24が設けられている。L3キャッシュ25とメインメモリ4は、2つのプロセッサ3で共有している。図26の構成で、3つ以上のプロセッサ3を設ける場合も、L3キャッシュ25とメインメモリ4はすべてのプロセッサ3で共有される。
図27は、第2または第3の実施形態をマルチコアに適用した第2例を示すブロック図である。図27では、図26と異なり、L3キャッシュ25とメインメモリ4だけでなく、再構成コントローラ21と再構成メモリ22も、すべてのプロセッサ3で共有している。図27の構成によれば、例えば、各プロセッサ3の処理負担に応じて、再構成メモリ22を各プロセッサ3で分担して使用するため、再構成メモリ22を有効活用することができる。また、図27の構成によれば、再構成コントローラ21と再構成メモリ22の数を削減できることから、メモリシステム1内のハードウェア構成を簡略化できる。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
1 メモリシステム、2 プロセッサシステム、3 プロセッサ、4 メインメモリ、5 MMU、6 ページテーブル、7 第1トランスレーション・ルックアサイド・バッファ、8 L1キャッシュ、9 L2キャッシュ、10 不揮発メモリ、11 電源管理コントローラ、17 L2キャッシュコントローラ、18 TLB待避コントローラ、20 L3TLB、21 再構成コントローラ、22 再構成メモリ、23 L1TLB、24 L2TLB、25 L3キャッシュ

Claims (20)

  1. キャッシュメモリとして使用可能な不揮発メモリと、
    プロセッサが発行する仮想アドレスから物理アドレスへのアドレス変換情報を格納する第1バッファと、
    電源遮断時に、前記第1バッファ内の前記アドレス変換情報を前記不揮発メモリに記憶させる第1コントローラと、
    前記キャッシュメモリを制御する第2コントローラと、を備え、
    前記第1コントローラは、電源遮断時に前記第2コントローラに前記キャッシュメモリ内の一部のキャッシュ領域を無効化するよう要求し、
    前記第2コントローラは、無効化要求のあったキャッシュ領域に存在して前記キャッシュメモリより下位階層のメモリに書き戻していないデータがある場合には、当該データを前記下位階層のメモリに書き戻して、前記一部のキャッシュ領域を無効化し、
    前記第1コントローラは、前記第1バッファの前記アドレス変換情報を前記無効化したキャッシュ領域に記憶するメモリシステム。
  2. 前記キャッシュメモリは、複数のウェイを有するセットアソシアティブ構成、または複数のウェイを有するフルアソシアティブ構成であり、それぞれが同一サイズの記憶領域を有する複数のウェイに分かれており、
    前記第1コントローラは、電源遮断時には、前記複数のウェイのうち少なくとも一つに、前記第1バッファ内の前記アドレス変換情報を記憶する請求項1に記載のメモリシステム。
  3. 前記キャッシュメモリは、複数のウェイおよび複数のセットを有するセットアソシアティブ構成であり、
    前記第1コントローラは、電源遮断時に、一つ以上のウェイにおけるすべてのセットを、前記第1バッファの前記アドレス変換情報の記憶先として使用する請求項に記載のメモリシステム。
  4. 前記第1コントローラは、前記ウェイごとに優先度を持たせて、優先度の低いウェイから順に、電源遮断時における前記アドレス変換情報の記憶先として使用する請求項2または3に記載のメモリシステム。
  5. 前記第2コントローラは、前記ウェイごとに前記キャッシュメモリとして使用するか否かを制御し、前記キャッシュメモリとして使用するウェイと、電源遮断時に前記第1バッファ内の前記アドレス変換情報を記憶させるウェイと、を管理する請求項2乃至4のいずれかに記載のメモリシステム。
  6. 前記第2コントローラは、前記キャッシュメモリとして使用するウェイの数に応じてインクリメントされ、前記アドレス変換情報を記憶させるウェイの数に応じてディクリメントされるレジスタを有する請求項5に記載のメモリシステム。
  7. 前記第1コントローラは、電源復帰時に、前記無効化したキャッシュ領域に記憶させた全ての前記アドレス変換情報を前記第1バッファに書き戻し、
    前記第1コントローラは、前記第1バッファへの書き戻しが完了したことを前記第2コントローラに通知し、
    前記第2コントローラは、前記無効化したキャッシュ領域を前記キャッシュメモリとして使用する請求項1乃至6のいずれか一項に記載のメモリシステム。
  8. 不揮発メモリと、
    プロセッサが発行する仮想アドレスから物理アドレスへのアドレス変換情報を格納する第1バッファと、
    前記不揮発メモリを、キャッシュメモリとして使用するか、前記第1バッファよりアクセス優先順位が低い第2バッファとして使用するかを切り替える第1コントローラと、
    前記キャッシュメモリまたは前記第2バッファを制御する第2コントローラと、を備え、
    前記第1コントローラは、前記不揮発メモリを前記キャッシュメモリから前記第2バッファに切り替える場合には、前記第2コントローラに前記キャッシュメモリの無効化を要求し、
    前記第2コントローラは、前記下位階層のメモリに書き戻していないデータがある場合には、前記無効化の要求に応じて、前記キャッシュメモリ内のデータを前記下位階層のメモリに書き戻した後に前記キャッシュメモリを無効化し、
    前記第1コントローラは、前記キャッシュメモリが無効化されると、前記不揮発メモリを前記キャッシュメモリから前記第2バッファに切り替えるメモリシステム。
  9. 前記第2コントローラは、
    前記キャッシュメモリを制御する第3コントローラと、
    前記第2バッファを制御する第4コントローラと、を含んでおり、
    前記第1コントローラは、
    前記不揮発メモリを前記キャッシュメモリから前記第2バッファに切り替える場合には、前記第3コントローラに前記キャッシュメモリの無効化を要求し、
    前記第3コントローラは、前記下位階層のメモリに書き戻していないデータがある場合には、前記キャッシュメモリの無効化の要求に応じて、前記キャッシュメモリ内のデータを前記下位階層のメモリに書き戻し、
    前記第1コントローラは、前記キャッシュメモリ内のデータが前記下位階層のメモリに書き戻された後に、前記第4コントローラに前記不揮発メモリの初期化を要求し、
    前記第4コントローラは、前記不揮発メモリの初期化の要求に応じて、前記不揮発メモリを初期化して、初期化完了を前記第1コントローラに通知し、
    前記第1コントローラは、前記不揮発メモリの初期化完了後に、前記不揮発メモリを前記キャッシュメモリから前記第2バッファに切り替える請求項8に記載のメモリシステム。
  10. 前記不揮発メモリを前記キャッシュメモリとして使用する場合における前記キャッシュメモリは、複数のウェイを有するセットアソシアティブ構成、または複数のウェイを有するフルアソシアティブ構成であり、それぞれが同一サイズの記憶領域を有する複数のウェイに分かれており、
    前記第1コントローラは、前記複数のウェイのうち少なくとも一つを前記第2バッファとして使用するか否かを切り替える請求項8または9に記載のメモリシステム。
  11. 前記不揮発メモリを前記キャッシュメモリとして使用する場合における前記キャッシュメモリは、複数のウェイおよび複数のセットを有するセットアソシアティブ構成であり、
    前記第1コントローラは、電源遮断時に、一つ以上のウェイにおけるすべてのセットを、前記第1バッファの前記アドレス変換情報の記憶先として使用する請求項8または9に記載のメモリシステム。
  12. 前記第2コントローラは、前記キャッシュメモリとして使用するウェイの数に応じてインクリメントされ、前記アドレス変換情報を記憶させるウェイの数に応じてディクリメントされるレジスタを有する請求項10または11に記載のメモリシステム。
  13. 前記第1コントローラは、少なくとも前記第1バッファのミス情報に基づいて、前記キャッシュメモリを前記第2バッファとして使用するか否かを制御する請求項8乃至12のいずれか一項に記載のメモリシステム。
  14. 前記第1コントローラは、前記ウェイごとに優先度を持たせて、優先度の低いウェイから順に、電源遮断時における前記アドレス変換情報の記憶先として使用する請求項10乃至13のいずれかに記載のメモリシステム。
  15. 前記第2コントローラは、前記ウェイごとに前記キャッシュメモリとして使用するか否かを制御し、前記キャッシュメモリとして使用するウェイと、電源遮断時に前記第1バッファ内の前記アドレス変換情報を記憶させるウェイと、を管理する請求項10乃至14のいずれかに記載のメモリシステム。
  16. 前記第1コントローラは、前記第2バッファとして使用していた領域の初期化を前記第2コントローラに通知し、
    前記第2コントローラは、前記第2バッファとして使用していた領域を初期化した後、初期化完了を前記第1コントローラに通知し、
    前記第1コントローラは、前記初期化した領域を前記キャッシュメモリに切り替える請求項8乃至15のいずれか一項に記載のメモリシステム。
  17. 不揮発メモリと、
    プロセッサが発行する仮想アドレスから物理アドレスへのアドレス変換情報を格納する第1バッファと、
    前記不揮発メモリを、キャッシュメモリとして使用するか、前記第1バッファよりアクセス優先順位が低い第2バッファとして使用するかを切り替える第1コントローラと、
    前記キャッシュメモリを制御する第2コントローラと、
    前記第2バッファを制御する第3コントローラと、を備え、
    前記第1コントローラは、前記キャッシュメモリとして使用している1つ以上のウェイを新たに前記第2バッファとして使用する場合、前記第2コントローラに前記1つ以上のウェイの無効化を要求し、
    前記第2コントローラは、前記下位階層のメモリに書き戻す必要のあるデータがある場合には、前記要求に応じて、前記下位階層のメモリにデータを書き戻し、
    前記第1コントローラは、前記第3コントローラに前記1つ以上のウェイの初期化を通知し、
    前記第3コントローラは、前記1つ以上のウェイを初期化した後、初期化完了を前記第1コントローラに通知し、
    前記第1コントローラは、前記1つ以上のウェイを新たに前記第2バッファに切り替えるメモリシステム。
  18. 前記第1コントローラは、前記第2バッファとして使用している1つ以上のウェイを新たに前記キャッシュメモリとして使用する場合、前記1つ以上のウェイの無効化を前記第3コントローラに要求し、
    前記第3コントローラは、前記1つ以上のウェイを無効化したことを前記第1コントローラに通知し、
    前記第1コントローラは、前記第2コントローラに前記1つ以上のウェイの初期化を通知し、
    前記第2コントローラは、前記1つ以上のウェイを初期化した後、初期化完了を前記第1コントローラに通知し、
    前記第1コントローラは、前記1つ以上のウェイを新たに前記キャッシュメモリに切り替える請求項17に記載のメモリシステム。
  19. 前記第1コントローラは、少なくとも前記第1バッファのミス情報に基づいて、新たに1つ以上のウェイを前記キャッシュメモリまたは前記第2バッファとして使用するか否かを切替制御する請求項17または18に記載のメモリシステム。
  20. 前記不揮発メモリは、MRAM(Magnetoresistive Random Access Memory)である請求項1乃至19のいずれかに記載のメモリシステム。
JP2015058740A 2015-03-20 2015-03-20 メモリシステム Active JP5974133B1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2015058740A JP5974133B1 (ja) 2015-03-20 2015-03-20 メモリシステム
US15/067,558 US10031854B2 (en) 2015-03-20 2016-03-11 Memory system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015058740A JP5974133B1 (ja) 2015-03-20 2015-03-20 メモリシステム

Publications (2)

Publication Number Publication Date
JP5974133B1 true JP5974133B1 (ja) 2016-08-23
JP2016177687A JP2016177687A (ja) 2016-10-06

Family

ID=56708089

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015058740A Active JP5974133B1 (ja) 2015-03-20 2015-03-20 メモリシステム

Country Status (2)

Country Link
US (1) US10031854B2 (ja)
JP (1) JP5974133B1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021009461A (ja) * 2019-06-28 2021-01-28 富士通株式会社 ストレージ制御装置及びストレージ制御プログラム

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10089196B2 (en) * 2015-07-14 2018-10-02 Shannon Systems Ltd. Methods for reconfiguring a storage controller when control logic fails and apparatuses using the same
US10732866B2 (en) * 2016-10-27 2020-08-04 Samsung Electronics Co., Ltd. Scaling out architecture for DRAM-based processing unit (DPU)
US10296465B2 (en) * 2016-11-29 2019-05-21 Board Of Regents, The University Of Texas System Processor using a level 3 translation lookaside buffer implemented in off-chip or die-stacked dynamic random-access memory
US10866904B2 (en) * 2017-11-22 2020-12-15 Arm Limited Data storage for multiple data types
JP2019121195A (ja) 2018-01-05 2019-07-22 東芝メモリ株式会社 メモリシステム及びプロセッサシステム
US10776268B2 (en) 2018-04-19 2020-09-15 Western Digital Technologies, Inc. Priority addresses for storage cache management
US11163688B2 (en) * 2019-09-24 2021-11-02 Advanced Micro Devices, Inc. System probe aware last level cache insertion bypassing

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6195754B1 (en) * 1997-01-28 2001-02-27 Tandem Computers Incorporated Method and apparatus for tolerating power outages of variable duration in a multi-processor system
JP2002182803A (ja) * 2000-10-02 2002-06-28 Internatl Business Mach Corp <Ibm> コンピュータ・システムの動作のサスペンドとレジュームを行う方法および装置
JP2010097558A (ja) * 2008-10-20 2010-04-30 Toshiba Corp 仮想アドレスキャッシュメモリ及び仮想アドレスキャッシュ方法
JP2010170266A (ja) * 2009-01-21 2010-08-05 Toshiba Corp 半導体集積回路及びアドレス変換方法
WO2015020092A1 (ja) * 2013-08-07 2015-02-12 株式会社 東芝 情報処理方法、情報処理装置及びプログラム

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8314024B2 (en) * 2008-12-19 2012-11-20 Unity Semiconductor Corporation Device fabrication
US7917479B2 (en) * 2007-03-20 2011-03-29 Micron Technology, Inc. Non-volatile memory devices, systems including same and associated methods
EP2159706B1 (en) 2007-06-19 2014-09-10 Fujitsu Limited Operation processing apparatus and operation processing method
WO2011033600A1 (ja) 2009-09-21 2011-03-24 株式会社 東芝 仮想記憶管理装置
US8495300B2 (en) 2010-03-03 2013-07-23 Ati Technologies Ulc Cache with reload capability after power restoration

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6195754B1 (en) * 1997-01-28 2001-02-27 Tandem Computers Incorporated Method and apparatus for tolerating power outages of variable duration in a multi-processor system
JP2002182803A (ja) * 2000-10-02 2002-06-28 Internatl Business Mach Corp <Ibm> コンピュータ・システムの動作のサスペンドとレジュームを行う方法および装置
JP2010097558A (ja) * 2008-10-20 2010-04-30 Toshiba Corp 仮想アドレスキャッシュメモリ及び仮想アドレスキャッシュ方法
JP2010170266A (ja) * 2009-01-21 2010-08-05 Toshiba Corp 半導体集積回路及びアドレス変換方法
WO2015020092A1 (ja) * 2013-08-07 2015-02-12 株式会社 東芝 情報処理方法、情報処理装置及びプログラム

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021009461A (ja) * 2019-06-28 2021-01-28 富士通株式会社 ストレージ制御装置及びストレージ制御プログラム
JP7318367B2 (ja) 2019-06-28 2023-08-01 富士通株式会社 ストレージ制御装置及びストレージ制御プログラム

Also Published As

Publication number Publication date
JP2016177687A (ja) 2016-10-06
US20160275017A1 (en) 2016-09-22
US10031854B2 (en) 2018-07-24

Similar Documents

Publication Publication Date Title
JP5974133B1 (ja) メモリシステム
KR101826073B1 (ko) 메모리 관리를 위한 캐시 동작들
JP6118285B2 (ja) キャッシュメモリシステムおよびプロセッサシステム
US9152569B2 (en) Non-uniform cache architecture (NUCA)
US9910602B2 (en) Device and memory system for storing and recovering page table data upon power loss
JP5664347B2 (ja) 仮想メモリシステム、仮想メモリの制御方法、およびプログラム
US8966219B2 (en) Address translation through an intermediate address space
US7793049B2 (en) Mechanism for data cache replacement based on region policies
JP5528554B2 (ja) ブロックベースの非透過的キャッシュ
US20170235681A1 (en) Memory system and control method of the same
US11023376B2 (en) System and methods for efficient virtually-tagged cache implementation
CN107818052B (zh) 内存访问方法及装置
JP2017138852A (ja) 情報処理装置、記憶装置およびプログラム
US20110161597A1 (en) Combined Memory Including a Logical Partition in a Storage Memory Accessed Through an IO Controller
JP6088951B2 (ja) キャッシュメモリシステムおよびプロセッサシステム
JP6027562B2 (ja) キャッシュメモリシステムおよびプロセッサシステム
CN108459975B (zh) 用于有效使用地址转换缓存的技术
Vasilakis et al. Hybrid2: Combining caching and migration in hybrid memory systems
US9639467B2 (en) Environment-aware cache flushing mechanism
JP6093322B2 (ja) キャッシュメモリおよびプロセッサシステム
KR20210158745A (ko) 플래시 기반 코프로세서
JP6140233B2 (ja) メモリシステム
CN111338987A (zh) 快速无效组相联tlb的方法
JP7118827B2 (ja) 情報処理装置、メモリ制御方法およびプログラム
JP7102482B2 (ja) メモリシステムおよび制御方法

Legal Events

Date Code Title Description
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: 20160617

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160715

R151 Written notification of patent or utility model registration

Ref document number: 5974133

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