JP7071640B2 - 演算処理装置、情報処理装置及び演算処理装置の制御方法 - Google Patents

演算処理装置、情報処理装置及び演算処理装置の制御方法 Download PDF

Info

Publication number
JP7071640B2
JP7071640B2 JP2018176307A JP2018176307A JP7071640B2 JP 7071640 B2 JP7071640 B2 JP 7071640B2 JP 2018176307 A JP2018176307 A JP 2018176307A JP 2018176307 A JP2018176307 A JP 2018176307A JP 7071640 B2 JP7071640 B2 JP 7071640B2
Authority
JP
Japan
Prior art keywords
cache
memory
data
main memory
address
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
JP2018176307A
Other languages
English (en)
Other versions
JP2020047084A (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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2018176307A priority Critical patent/JP7071640B2/ja
Priority to US16/516,314 priority patent/US11003591B2/en
Publication of JP2020047084A publication Critical patent/JP2020047084A/ja
Application granted granted Critical
Publication of JP7071640B2 publication Critical patent/JP7071640B2/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/12Replacement control
    • 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]
    • G06F12/1036Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] for multiple virtual address spaces, e.g. segmentation
    • 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/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/0284Multiple user address space allocation, e.g. using different base addresses
    • 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/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/10Address translation
    • 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]
    • G06F12/1045Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data 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/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • 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
    • G06F2212/1044Space efficiency 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/50Control mechanisms for virtual memory, cache or TLB
    • G06F2212/502Control mechanisms for virtual memory, cache or TLB using adaptive policy
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/608Details relating to cache mapping

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Memory System (AREA)

Description

本発明は,演算処理装置、情報処理装置及び演算処理装置の制御方法に関する。
演算処理装置、プロセッサ、またはCPUチップ(以下プロセッサ)は、メインメモリにアクセス可能に接続される。そして、プロセッサは、プログラムの命令実行に必要なデータをメインメモリから読み出し、命令の実行で変更または生成したデータをメインメモリに書き込む。メインメモリは、一般には、高速の大容量のDRAM(Dynamic Random Access Memory)である。
プロセッサは、メインメモリへのアクセス時間を見かけ上なくすために、内部にキャッシュメモリを有し、メモリアクセスされたメインメモリ内のデータをキャッシュメモリに記憶(登録)し、以降のメモリアクセスのデータをキャッシュメモリから読み出す。
特表2004-503010号公報 特開2016-91242号公報
従来の普及している高速で大容量のDRAMに代えて、連続するアドレスの大容量のデータをロードするのに要する時間がDRAMに比較して短いハイブリッド・メモリ・キューブ(Hybrid Memory Cube,以下HMCと称する)と呼ばれる広帯域のDRAMが使用されるようになってきた。このHMCは、DRAMチップを三次元に積層し、三次元積層したDRAMチップとホストのプロセッサチップとの間をワイドバスで接続し、三次元積層のDRAMとプロセッサを同じパッケージ内に格納する。
HMCの特徴は、従来のDRAMに比較して、ランダムアクセスや小容量のデータのアクセス時間は劣るものの、連続アドレスで大容量データをロードする場合はアクセス時間が短くなる。これにより、広帯域のDRAMを実現する。
但し、HMCはプロセッサと同じパッケージ内に格納されるため、従来のDRAMほど大容量にはできない。そのため、プロセッサは、メインメモリとして広帯域DRAMであるHMCと、従来の大容量DRAMの両方を使用し、両方のメインメモリにアクセスすることが想定される。
このように、プロセッサが広帯域DRAMのHMCと従来の大容量DRAMの両方にアクセス可能に構成された場合、広帯域DRAMのHMCから連続アドレスの大容量データをロードすると、キャッシュメモリ内の従来の大容量DRAMのデータが追い出され、キャッシュメモリ内がHMCのデータで満たされてしまう。その結果、その後の従来の大容量DRAMのデータへのロード命令に対して、キャッシュメモリはキャッシュミスを頻発し、それにより従来の大容量DRAMへのメモリアクセスも頻発し、プロセッサのメモリアクセス効率が低下する。
そこで,本実施の形態の第1の側面の目的は,異なる特性のメインメモリにアクセスする場合にキャッシュミスの発生を抑制した演算処理装置、情報処理装置及び演算処理装置の制御方法を提供することにある。
本実施の形態の第1の側面は,命令を実行する算術論理演算部と、
第1のメインメモリのデータの一部と、所定容量以上の連続アドレスのデータアクセスで前記第1のメインメモリより広い帯域を有する第2のメインメモリのデータの一部を記憶するキャッシュメモリ、及び前記算術論理演算部からのメモリ要求に応答して前記キャッシュメモリ内のデータを読み出してメモリ要求元に応答するキャッシュ制御部を有するキャッシュユニットとを有し、
前記キャッシュメモリ内に記憶される前記第2のメインメモリのデータの前記第1のメインメモリのデータに対する容量の比率が、所定の比率以下に制限される、演算処理装置である。
本実施の形態の第1の側面によれば,キャッシュミスの発生を抑制することができる。
本実施の形態におけるプロセッサを有する情報処理装置の構成例を示す図である。 本実施の形態におけるプロセッサの構成例を示す図である。 本実施の形態の第1、第2のメインメモリの特性を示す図表である。 第1、第2のメインメモリの連続アドレスのデータアクセスにおけるデータサイズ(容量)に対するアクセス時間の特性を示す図である。 プロセッサ内のコア、アドレス変換部、キャッシュメモリと、プロセッサに接続される2種類のメインメモリとの概略的な関係を示す図である。 論理アドレス、物理アドレス、キャッシュメモリのアドレスの関係例を示す図である。 セットアソシアティブのキャッシュの構成例を示す図である。このキャッシュは、4WAYの例である。 OSによる第1のメインメモリのデータと第2のメインメモリのデータへの物理アドレスの割当例を示す図である。 本実施の形態においてキャッシュメモリに割り当てられる第1、第2のメインメモリのデータの領域とそのインデックスアドレスとを示す図である。 第1の実施の形態におけるキャッシュユニットのメモリ要求の処理を示すフローチャート図である。 第2のメインメモリのキャッシュメモリ割当比率の判定処理のフローチャート図である。 一般的なキャッシュミス時のデータ登録とキャッシュヒット時の追出し優先度の更新の処理を示すフローチャート図である。 図12の追出し優先度の登録及び更新の具体例を示す図である。 第2の実施の形態におけるキャッシュミス時のデータ登録とキャッシュヒット時の追出し優先度の更新の処理を示すフローチャート図である。 図14の追出し優先度の登録及び更新の具体例を示す図である。
図1は、本実施の形態におけるプロセッサを有する情報処理装置の構成例を示す図である。CPUチップであるプロセッサPRCは、広帯域の第2のメインメモリM_MEM_2とともに、同じパッケージPKG内に収納される。プロセッサPRCは、複数のコアCORE_1~CORE_4と、複数のコアで共有されるL2キャッシュユニットL2_CACHEと、メモリアクセス制御回路MACと、I/O制御回路I/O_CNTとを有する。複数のコアはそれぞれ、命令発行部と、発行された命令を実行する算術論理演算部(ALU: Arithmetic Logical Unit)と、L1キャッシュとを有する。
プロセッサPRCは、第1のメインメモリM_MEM_1と、所定の容量以上の連続するアドレスのデータアクセスで第1のメインメモリより広帯域の第2のメインメモリM_MEM_2とにアクセス可能に接続される。プロセッサ内のL2キャッシュユニットL2_CACHEが発行するメモリ要求に応答して、メモリアクセス制御回路MACは、第1のメインメモリまたは第2のメインメモリにアクセスする。また、プロセッサPRCは、ハードディスクなどの入出力デバイスI/O_DEVICEに接続され、I/O制御回路I/O_CNTを介して入出力デバイスからのデータを入力し、入出力デバイスにデータを出力する。第1のメインメモリM_MEM_1と第2のメインメモリM_MEM_2については、後で詳述する。
図2は、本実施の形態におけるプロセッサの構成例を示す図である。図1で説明したとおり、各コアCORE_1~CORE_4は、プログラムの命令をメインメモリからフェッチして発行する命令発行部12と、発行された命令を実行する算術論理演算回路13と、第1のキャッシュユニットL1_CACHEを有する。更に、プロセッサは、複数のコアで共有される第2のキャッシュユニットL2_CACHEと、メモリアクセス制御回路MACと、I/O制御回路I/O_CNTとを有する。
L1キャッシュユニットL1_CACHEは、算術論理演算回路13が発行するロード要求やストア要求などのメモリ要求MEM_RQ_1をエントリする入力ポートIN_PORT_1と、入力ポート内のメモリ要求を入力し、メモリ要求の処理を制御するL1キャッシュ制御回路L1$_CNTを有する。更に、L1キャッシュユニットは、L1キャッシュメモリを構成するタグ情報を記憶するL1キャッシュタグメモリL1_TAGと、データを記憶するL1キャッシュデータメモリL1_DATAと,メモリ要求のアドレス内の論理アドレス(または仮想アドレス)VAを物理アドレスPAに変換するトランスレーション・ルックアサイド・バッファTLBを有する。そして、L1キャッシュニットは、L1キャッシュでキャッシュミスした場合に、L2キャッシュユニットにメモリ要求MEM_RQ_2を発行するL1キャッシュメモリ要求回路14を有する。
L1キャッシュ制御回路L1$_CNTは、パイプライン構成され、入力ポートIN_PORT_1内のメモリ要求MEM_RQ_1を入力し、メモリ要求のアドレスの論理アドレスVAをTLBに基づいて物理アドレスPAに変換する。TLBは、メインメモリ内に記憶されているアドレス変換テーブルの一部のエントリを記憶する一種のキャッシュメモリである。L1キャッシュ制御回路は、TLB内に論理アドレスVAに対応する物理アドレスを検出できない場合(TLBキャッシュミスの場合)、L2キャッシュユニットに対してTLBデータ要求を発行し、TLBデータ要求のデータ応答で取得したTLBデータでTLBを更新し、再度発行されるメモリ要求に対して更新したTLBに基づいてアドレス変換を実行する。
さらに、L1キャッシュ制御回路は、メモリ要求のアドレスのインデックスアドレスでL1キャッシュタグメモリL1_TAGを検索し、L1_TAG内のタグアドレスとメモリ要求のアドレスのタグアドレスとを比較して、L1キャッシュヒット判定を行う。比較が一致しキャッシュヒットの場合、L1キャッシュ制御回路は、L1キャッシュデータメモリL1_DATAの前記インデックスアドレスのデータを算術論理演算回路13にデータ応答する。キャッシュミスの場合、L1キャッシュ制御回路は、L1キャッシュメモリ要求回路14にメモリ要求MEM_RQ_2をL2キャッシュユニットL2_CACHEに発行させる。
L2キャッシュユニットL2_CACHEは、L1キャッシュメモリ要求回路14が発行するメモリ要求MEM_RQ_2をエントリする入力ポートIN_PORT_2と、入力ポート内のメモリ要求を入力し、メモリ要求の処理を制御するL2キャッシュ制御回路L2_CNTを有する。更に、L2キャッシュユニットは、L1キャッシュユニットと同様に、L2キャッシュメモリを構成するL2キャッシュタグメモリL2_TAGとL2キャッシュデータメモリL2_DATAを有する。そして、L2キャッシュニットは、L2キャッシュでキャッシュミスした場合に、メモリアクセス制御回路MACにメモリ要求MEM_RQ_3を発行するL2キャッシュメモリ要求回路16を有する。
L2キャッシュユニット内のL2キャッシュ制御回路L2$_CNTの動作は、アドレス変換処理がないことを除いて、上記のL1キャッシュ制御回路L1$_CNTと同等である。L2キャッシュミスの場合、L2キャッシュ制御回路がL2キャッシュメモリ要求回路16にメモリアクセス制御回路MACへのメモリ要求を発行させ、その後メモリアクセス制御回路MACからのデータ応答があると、L2キャッシュメモリ要求回路16は、応答されたデータのキャッシュ登録要求を入力ポートIN_PORT_2にエントリする。そして、L2キャッシュ制御回路L2$_CNTは、そのキャッシュ登録要求を入力し、応答されたデータとそのタグ情報をL2キャッシュメモリ(L2_TAG, T2_DATA)に登録し、L1キャッシュメモリ要求回路14にデータ応答する。
L1キャッシュユニットL1_CACHE内のL1キャッシュメモリ要求回路14は、応答されたデータのキャッシュ登録要求を入力ポートIN_PORT_1にエントリする。そして、L1キャッシュ制御回路L1$_CNTは、そのキャッシュ登録要求を入力し、応答されたデータとそのタグ情報をL1キャッシュメモリ(L1_TAG, T1_DATA)に登録し、算術論理演算回路13にデータ応答する。
図3は、本実施の形態の第1、第2のメインメモリの特性を示す図表である。また、図4は、第1、第2のメインメモリの連続アドレスのデータアクセスにおけるデータサイズ(容量)に対するアクセス時間の特性を示す図である。第1のメインメモリM_MEM_1は、従来普及しているDDRタイプのDRAMである。一方、第2のメインメモリM_MEM_2は、HMC等の連続アドレスでデータサイズが大きなデータのメモリアクセスで広帯域になるメモリである。
第1のメインメモリのDRAMは、複数のDRAMチップをモジュール化したメモリモジュールであり、大容量メモリである。第1のメインメモリは、プロセッサ内のメモリアクセス制御回路MACからDDRタイプのDRAM向けのアクティブコマンド、リードコマンド、ライトコマンドを直接供給され、リードデータを出力し、ライトデータを書き込む。したがって、連続アドレスのデータに対するアクセス時間のうち、データサイズに起因しない基本アクセス時間B_ACC_1は短い。
一方、第2のメインメモリのHMCは、三次元積層した複数のDRAMチップと、三次元DRAMチップに対するメモリアクセス制御回路に対応する論理回路チップとを有し、プロセッサは、論理回路チップとワイドバスを経由して接続される。HMCは、プロセッサと同じパッケージ内に格納されるのでメモリ容量は、第1のメインメモリM_MEM_1より小さい。また、プロセッサは、HMCの三次元DRAMチップと、論理回路チップを介してアクセスするので、基本アクセス時間B_ACC_2は、第1のメインメモリM_MEM_1よりも長い。つまり、プロセッサと論理回路チップとは、あるパケット通信プロトコルでリード要求、ライト要求(ライトデータ付き)、リード応答(リードデータ付き)を行い、論理回路チップとHMCの三次元DRAMチップとは、例えばアクセティブコマンド、リードコマンド、ライトコマンドなどでメモリアクセスを行う。
但し、連続アドレスのデータに対するアクセス時間は、所定のデータサイズ以上になると、第2のメインメモリM_MEM_2のほうが、第1のメインメモリM_MEM_1より短い。逆に、ランダムアドレスアクセスのデータのアクセス時間は、第1のメインメモリM_MEM_1のほうが、第2のメインメモリM_MEM_2より長い。
上記のとおり、HMCのような第2のメインメモリはメモリ容量が少ないので、プロセッサには、従来の大容量のDRAMメモリモジュールのような第1のメインメモリと、メモリサイズが大きい連続アドレスのアクセスでは広帯域の第2のメインメモリの両方を併用することが行われる。
また、上記のような第1のメインメモリと第2のメインメモリの特性によれば、プロセッサが実行するプログラムでは、大容量で連続するアドレスのデータは、HMCのような広帯域の第2のメインメモリに記憶し、小容量で連続するアドレスのデータやアトランダムなアドレスのデータは、従来のDRAMのメモリモジュールに記憶するよう指定することが行われる。例えば、ロード命令やストア命令に第1または第2のメインメモリを区別するメモリフラグを付加することが多い。例えば、ロード命令やストア命令のメモリフラグを有効化「1」に設定すると、そのデータは第2のメインメモリであるHMCに記憶すべきデータであることを示す。
しかし、プロセッサ内のキャッシュメモリ、特にLLC(Last Level Cache)であるL2キャッシュメモリのサイズは限られているので、HMCなどの第2のメインメモリに対して所定のデータサイズ以上のロード命令が発行されると、第2のメインメモリの大容量のデータがアクセスされ、L2キャッシュメモリにデータ登録され、L2キャッシュメモリに登録されていたデータはすべて追い出される可能性がある。その結果、その後算術論理演算回路ALUが第1のメインメモリM_MEM_1内のデータにアクセスすると、L2キャッシュメモリでキャッシュミスが発生し、全てのアクセスで第1のメインメモリにメモリアクセスする必要が生じ、キャッシュメモリの性能の低下を招く。
[第1の実施の形態]
図5は、プロセッサ内のコア、アドレス変換部、キャッシュメモリと、プロセッサに接続される2種類のメインメモリとの概略的な関係を示す図である。既に説明したとおり、コア内の算術論理演算回路は、L1キャッシュユニットにメモリ要求を発行し、L1キャッシュユニットで、メモリ要求の論理アドレスVAがTLBやメインメモリ内のデータ変換テーブルに基づいて物理アドレスPAに変換され、その物理アドレスPAとキャッシュタグメモリ内のタグアドレスの比較によりキャッシュヒット判定される。キャッシュメモリには第1のメインメモリM_MEM_1と第2のメインメモリM_MEM_2のデータが記憶され、キャッシュヒットならキャッシュメモリ内のデータが読み出され要求元にデータ応答され、キャッシュミスならメモリ要求のアクセス先アドレスに応じて、第1のメインメモリまたは第2のメインメモリにメモリアクセスされる。
図6は、論理アドレス、物理アドレス、キャッシュメモリのアドレスの関係例を示す図である。図6の例によれば、プロセッサのメモリ空間は64ビットの論理アドレスVAの空間であり、そのうち、下位12ビットが1ページのアドレスに割り当てられ、上位52ビットが論理ページ番号に割り当てられる。
一方、論理アドレスVAからアドレス変換される物理アドレスPAでは、ページオフセットである下位12ビットは論理アドレスVAと同じであり、上位52ビットは論理アドレスVAの上位52ビットに対しOSが割り当てる物理アドレスである。そして、前述のL1キャッシュユニットでメモリ要求の論理アドレスを物理アドレスに変換する際に、TLBミスし、メインメモリ内にもアドレス変換テーブルのエントリがない場合、ページフォルトが発生し、CPU割り込みが発生する。このCPU割り込みで、OSが、論理アドレスVAの上位52ビットに物理アドレスPAの上位52ビットを割り当てて、メインメモリ内のアドレス変換テーブルにエントリを登録する。
図6には、論理アドレスVAと物理アドレスPAに並んで、キャッシュのアドレスの構成例が示される。この例のキャッシュのアドレスは、下位6ビットがキャッシュライン(キャッシュブロック)内のアドレスBLK_ADDであり、中位15ビットがインデックスアドレスIndexであり、上位43ビットがキャッシュタグ内に記憶されるタグアドレスTAG_ADDである。したがって、OSが仮想アドレスVAの上位52ビットに割り当てる物理アドレスPAの上位52ビットの一部に、キャッシュのインデックスアドレスIndexが含まれる。
図6のキャッシュアドレスの例では、キャッシュメモリは、全容量が16MB、1キャッシュラインサイズが64バイト、8WAY(WAY数が23個)、インデックスで選択されるエントリ数が215÷23となる。
第1の実施の形態では、上記の関係を利用して、OSが論理アドレスVAの上位52ビットに物理アドレスPAの上位52ビットを割り当てるとき、インデックスアドレスを所定の割合で分轄し、一方のインデックスアドレスを第1のメインメモリのデータのアドレスに、他方のインデックスアドレスを第2のメインメモリのデータのアドレスに割り当てる。これにより、キャッシュメモリの所定の割合のキャッシュラインには第2のメインメモリのデータを登録し、キャッシュメモリの残りのキャッシュラインには第1のメインメモリのデータを登録することができる。
このように、キャッシュメモリを第1のメインメモリのデータ用の領域と第2のメインメモリのデータ用の領域とに分離することができ、キャッシュメモリが、第2のメインメモリの大量のデータで満たされることを回避し、第1のメインメモリのデータへのメモリ要求で、キャッシュミスが頻発することを抑制することができる。
図7は、セットアソシアティブのキャッシュの構成例を示す図である。このキャッシュは、4WAYの例である。メモリ要求のアクセス先アドレスは、図6で説明したとおり、上位からTAGアドレスTAG_ADD、インデックスアドレスIndex、キャッシュブロック内アドレスBLK_ADDとなる。インデックスアドレスIndexの下位2ビットは4WAYを区別するアドレスである。
キャッシュ制御回路は、アクセス先アドレスのインデックスアドレスIndex(2WAYを区別する下位2ビットは除く)で、キャッシュメモリを検索し、インデックスアドレスで特定される4つ(4WAY)のキャッシュラインのタグ内のタグアドレスTAG_ADDのうち、アクセス先アドレスのタグアドレスTAG_ADDと一致するキャッシュラインがあるか否かのキャッシュヒット判定を行う。ここで、タグアドレスTAG_ADDには、WAY番号を特定する2ビットも含まれる。
したがって、図7のセットアソシアティブキャッシュの縦方向のキャッシュラインの数は、インデックスアドレス(下位2ビット除く)で選択できる数である。そこで、第1の実施の形態では、論理アドレスを物理アドレスに変換するときに、アドレス変換テーブル内に論理アドレスに対応する物理アドレスが未割り当ての場合、ページフォルトが発生し、CPU割り込みでOSが物理アドレスを割り当てる。このOSが論理アドレスに対し物理アドレスを割り当てるとき、インデックスアドレスの例えば上位2ビットの00,01,10を第1のメインメモリのデータに、上位2ビットの11を第2のメインメモリのデータに割り当てる。
その結果、プロセッサ内のキャッシュメモリ、例えばラストレベルキャッシュ(LLC)であるL2キャッシュメモリ、のインデックスアドレスの上位2ビットが00,01,10のキャッシュメモリ内の領域には、第1のメインメモリのデータが登録され、インデックスアドレスの上位2ビットが11のキャッシュメモリ内の領域には、第2のメインメモリのデータが登録される。これにより、L2キャッシュメモリの3/4の領域に第1のメインメモリのデータがキャッシュ登録され、L2キャッシュメモリの1/4の領域に第2のメインメモリのデータがキャッシュ登録される。
図8は、OSによる第1のメインメモリのデータと第2のメインメモリのデータへの物理アドレスの割当例を示す図である。図8には、第1のメインメモリM_MEM_1と第2のメインメモリM_MEM_2に割り当てられた物理アドレス空間と物理アドレスの範囲が示される。この例は、第2のメインメモリM_MEM_2の容量が16GBである。OSは、物理アドレス空間の最初の1536KBを第1のメインメモリM_MEM_1のデータに割り当てて、次の512KBを第2のメインメモリM_MEM_2のデータに割り当てる。同様に、OSは、物理アドレス空間の次の1536KBを第1のメインメモリM_MEM_1のデータに、その次の512KBを第2のメインメモリM_MEM_2のデータにそれぞれ割り当てる。以降、第2のメインメモリの全容量16GBが物理アドレス空間に割当完了するまで、上記と同様に割り当てる。最初の1536KBの物理アドレス空間は、キャッシュのインデックスアドレスIndexの上位2ビットが00,01,10の空間である。次の512KBの物理アドレス空間は、インデックスアドレスIndexの上位2ビットが11の空間である。
これにより、物理アドレス空間100のうち、3/4の領域に第1のメインメモリのデータが割り当てられ、1/4の領域に第2のメインメモリのデータが割り当てられる。
OSは、物理アドレス空間100以外の空間200において、最初の1536KBを第1のメインメモリM_MEM_1のデータに割り当てて、次の512KBをどのメインメモリのデータにも割り当てない。
図9は、本実施の形態においてキャッシュメモリに割り当てられる第1、第2のメインメモリのデータの領域とそのインデックスアドレスとを示す図である。キャッシュメモリCACHEは、インデックスアドレスの上位2ビットで4等分された領域のうち、最初の3領域には第1のメインメモリのデータが登録され、最後の1領域には第2のメインメモリのデータが登録されることになる。4つの領域に対応するインデックスアドレスの範囲が図中左側に示される。これによれば、最後の1領域のインデックス(15ビット)の上位2ビットは、11となる。
図10は、第1の実施の形態におけるキャッシュユニットのメモリ要求の処理を示すフローチャート図である。まず、コア内の命令デコーダが命令を発行する(S11)。算術論理演算器が命令を実行し(S12)、メモリ要求が発生すると(S13のYES)、演算器がメモリ要求をL1キャッシュユニットに発行する(S14)。
次に、L1キャッシュユニットは、アドレス変換テーブルに基づいて、メモリ要求の論理アドレスVAを物理アドレスPAにアドレス変換する(S21)。アドレス変換は、まず、TLBに基づいて行われ、TLBヒットすれば物理アドレスPAに変換されるが、TLBミスになると、L1キャッシュユニットはL2キャッシュユニットにTLB要求を発行し、L2キャッシュユニットからTLB応答されるとそのTLBを登録し、メモリ要求を入力ポートに差し戻す。
但し、メインメモリ内に論理アドレスVAに対応する物理アドレスPAが登録されてない場合、アドレス変換失敗となる(S22のNO)。その場合、ページフォルトが発生し、CPU割り込みが発生する(S23)。このCPU割り込みに応答して、OSが論理アドレスVAに対する新物理アドレスPAを割り当てて、アドレス変換テーブルに登録する(S24)。そして、アクセス要求は入力ポートに差し戻される(S25)。その後、再度、L1キャッシュユニットは、メモリアクセス要求を入力し、アドレス変換テーブルに基づいてアドレス変換を実行する(S21)。
このページフォルトによるCPU割り込みでOSが論理アドレスに対する物理アドレスを割り当てるとき、例えば、図8の物理アドレス空間の割当に基づいて、第1のメインメモリM_MEM_1のデータと第2のメインメモリM_MEM_2のデータとに論理アドレスを割り当てる。第1のメインメモリM_MEM_1のデータか第2のメインメモリM_MEM_2のデータかは、命令に付加される第2のメインメモリのデータか否かを示すメモリフラグM2_FLGを参照することで、OSが判定することができる。前述したとおり、プログラムには、第2のメインメモリM_MEM_2に格納するデータか否かを示すメモリフラグM2_FLGが付加されており、メモリ要求にもメモリフラグM2_FLGが付加される。
図10に戻り、L1キャッシュユニットのLlキャッシュ制御回路L1$_CNTは、L1キャッシュタグメモリL1_TAGを検索してL1キャッシュヒット判定を行う(S24)。L1キャッシュヒットの場合(S24のYES)、メモリ要求の要求元(演算器)にデータ応答し、そのキャッシュラインの追出し優先度Priorityを最小に更新する(S27)。一方、キャッシュミスの場合(S24のNO)、L1キャッシュメモリ要求回路14がL2キャッシュユニットにメモリ要求を発行する(S28)。
L2キャッシュ制御回路L2$_CNTは、L2キャッシュヒット判定を行い、L2キャッシュヒットの場合(S31のYES)、L1キャッシュユニットのL1キャッシュメモリ要求回路14にデータ応答する(S35)。一方、L2キャッシュミスの場合(S31のNO)、L2キャッシュメモリ要求回路16は、メモリアクセス制御回路MACにメモリ要求を発行する(S32)。そして、メモリアクセス制御回路MACがメインメモリからデータを受信し、L2キャッシュメモリ要求回路16にデータ応答すると(S33のYES)、L2キャッシュメモリ要求回路16は応答されたデータとTAG情報をL2キャッシュ(L2タグメモリ、L2データメモリ)に登録し、追出し優先度Priorityを最小で登録し(S34)、L1キャッシュユニットのL1キャッシュメモリ要求回路14にデータ応答する(S35)。
これに応答して、L1キャッシュメモリ要求回路14は、応答されたデータとそのタグ情報をL1キャッシュ(L1タグメモリ、L1データメモリ)に登録し、追出し優先度Priorityを最小で登録し(S29)、メモリ要求の要求元(演算器)にデータ応答する(S27)。この場合、S27での追出し優先度Priorityの更新は行われない。
上記のとおり、論理アドレスを物理アドレスに変換するとき、未だ論理アドレスに対応する物理アドレスが割り当てられていない場合、ページフォルトとなり、CPU割り込みでOSが論理アドレスに対して物理アドレスを割り当てる。このとき、OSは、図8の物理アドレス空間の割当に基づいて、論理アドレスに物理アドレスを割り当てる。その結果、第1のメインメモリのデータの論理アドレスには、上位2ビットが00,01,10のインデックスアドレスを有する物理アドレスが割り当てられ、第2のメインメモリのデータの論理アドレスには、上位2ビットが11のインデックスアドレスを有する物理アドレスが割り当てられる。
その結果、図9に示すとおり、第2のメインメモリのデータは、キャッシュメモリの1/4の領域に記憶され、第1のメインメモリのデータは、キャッシュメモリの3/4の領域に記憶される。したがって、第2のメインメモリ内の大きなメモリサイズのデータがロードされた場合、ロードデータは、キャッシュメモリ内の最上位2ビットが11のインデックスアドレスの制限されたキャッシュラインに記憶され、第1のメインメモリのデータがすべてキャッシュメモリから追い出されることが回避される。
図11は、第2のメインメモリのキャッシュメモリ割当比率の判定処理のフローチャート図である。この判定処理は、例えば、プログラムの本番環境でのプログラム実行開始時に、プログラムの実行と並行して行われる。この判定処理は、例えばOSにより実行される。
最初に、第2のメインメモリM_MEM_2のデータにキャッシュメモリの例えば1/8比率の領域をN(Nは8以下)領域割り当てる物理アドレス空間を設定し(S40)、プログラムのM個の命令を実行しながら(S43)キャッシュミス数を計測する(S42)。ここでのキャッシュメモリは、前述のとおり、LLCであるL2キャッシュメモリであり、そこでのキャッシュミス数は、L2キャッシュユニット内に設けたカウンタにより計測するようにしてもよい。
プログラムのM個の命令を実行した後、OSは、キャッシュミス率を算出し(S44)、最初のキャッシュミス計測であれば(S45のYES)、キャッシュメモリの第2のメインメモリM_MEM_2に割り当てる1/8比率の領域を1つ減じ(S47)、計測済みのキャッシュミス数を保存する(S48)。
さらに、プログラムのM個の命令を実行しながら(S43)キャッシュミス数を計測し(S42)、M個の命令実行後にキャッシュミス率を算出し(S44)、1つ前のキャッシュミス率のほうが低いか否かの判定(S46)を行うことを、割り当てた1/8比率の領域数が0になるか(S41のNO)、1つ前のキャッシュミス率のほうが低くなる(S46のYES)かまで繰り返し、S41がNOまたはS46がYESになると、現在のキャッシュメモリの第2のメインメモリへの割当領域数に1を加えた数を、第2のメインメモリへの割当領域の数と判定する(S49)。
一旦キャッシュメモリの第2のメインメモリへの割当領域の数(割当比率)が決定すると、その後は決定した割当比率になるインデックスアドレスを有する物理アドレスを、第2のメインメモリのデータの論理アドレスに割り当てて、プログラムの残りの命令の実行を継続する。
図11の例によれば、プログラムの本番環境下でキャッシュメモリのキャッシュミス率が低い(極小値)割当比率を判定し、その判定結果の割当比率になるように論理アドレスに物理アドレスを割り当てるるので、プログラム内の残りの命令の実行中でのキャッシュメモリの第1のメインメモリのデータに対するキャッシュミス率を低く抑えることができる。
第2のメインメモリのデータへのキャッシュメモリ割当率の判定方法は、様々な方法が考えられる。例えば、プログラムの本番環境直前のテスト環境下で、図11を実行して最適な割当比率を判定するようにしても良い。
[第2の実施の形態]
第1の実施の形態では、OSが第2のメインメモリのデータに対し特定のインデックスアドレスを有する物理アドレスを割り当てることで、キャッシュメモリ内に記憶される第2のメインメモリのデータの第1のメインメモリのデータに対する容量の比率が、所定の比率以下に制限されるようにした。
それに対して、第2の実施の形態では、キャッシュ制御回路がデータをキャッシュメモリに登録するときに行われる、データを登録中のキャッシュラインのデータの追出し処理で、参照する追出し優先度を利用して、前記所定の比率以下に制限するようにする。
図7に示されるセットアソシアティブのキャッシュメモリは、同じインデックスにWAY数分の数の複数のキャッシュラインを有する。キャッシュ制御回路は、データをキャッシュメモリに登録するとき、同じインデックスに属する複数のキャッシュラインのうち、追出し優先度がもっとも高いキャッシュラインのデータを追出し、そのキャッシュラインにデータとタグ情報を登録し、追出し優先度Priorityを最小で登録する。また、キャッシュ制御部は、キャッシュヒットしたデータの追出し優先度を最小に更新する。追出し優先度の例は、LRU(Least Recently Used、最も古い過去に使用された)またはLFU(Least Frequently Used、最も使用頻度が低い)である。
第2の実施の形態では、キャッシュ制御回路は、第2のメインメモリのデータをキャッシュ登録するとき、追出し優先度を最大で登録し、第2のメインメモリのデータがキャッシュヒットしたときは、追出し優先度を最大のまま変更しない。この処理の結果、図7の4WAYのセットアソシアティブのキャッシュメモリでは、第2のメインメモリのデータの容量比率は、高々1/4に制限される。なぜなら、第2のメインメモリのデータをキャッシュ登録する場合、必ず第2のメインメモリのデータが追出し対象になるので、第2のメインメモリのデータは、同じインデックスの4つのキャッシュラインのうち、一つのキャッシュラインまでしか登録されないからである。
図12は、一般的なキャッシュミス時のデータ登録とキャッシュヒット時の追出し優先度の更新の処理を示すフローチャート図である。左側に示したキャッシュミス時のキャッシュメモリへのデータ登録では、例えばL2キャッシュユニット内のL2キャッシュ制御回路は、データ登録要求が入力されると(S50のYES)、データの物理アドレス内のインデックスアドレスでL2キャッシュタグメモリL2_TAGを検索し、インデックスに対応する複数のキャッシュラインに空きがあるか否か判定する(S52)。複数のキャッシュラインに空きがない場合(S52のNO)、L2キャッシュ制御回路は、複数のキャッシュラインのうち追出し優先度Priorityが最大(LRUまたはLFU、最古の使用または最小使用頻度)のキャッシュラインのデータを追出して追出したデータをメインメモリにライトバックする(S53)。そして、データを追出したキャッシュラインに登録対象のデータとタグ情報を登録し、その追出し優先度を最小(MRUまたはMFU、最新使用または最大使用頻度)で登録する。
右側に示したキャッシュヒット時の追出し優先度の更新処理では、L2キャッシュ制御回路は、ヒットしたキャッシュラインの追出し優先度を最小(MRUまたはMFU、最新使用または最大使用頻度)に更新する(S55)。
図13は、図12の追出し優先度の登録及び更新の具体例を示す図である。この例では、追出し優先度がLRUの例であり、水平方向の左側が追出し優先度最大(LRU)、右側が最小(MRU)である。状態P1では、データA, C, D, Bの順番に追出し優先度が高い。この状態P1でデータAがアクセスされると、キャッシュヒットとなり、データAの追出し優先度が最小に更新され、残りのデータC, D, Bはそれぞれ追出し優先度が1つずつ上昇する。
更に、状態P2で、データXがアクセスされると、追出し優先度が最大のデータCがキャッシュラインから追い出され、代わりにデータXが追出し優先度最小で登録される。この結果、データD, B, Aは追出し優先度が1つずつ上昇する。
図14は、第2の実施の形態におけるキャッシュミス時のデータ登録とキャッシュヒット時の追出し優先度の更新の処理を示すフローチャート図である。左側に示したキャッシュミス時のキャッシュメモリへのデータ登録では、例えばL2キャッシュユニット内のL2キャッシュ制御回路は、図12と同じ処理S50からS53を実行する。但し、L2キャッシュ制御回路は、データを追出したキャッシュラインまたは空いていたキャッシュラインにデータ登録を行い(S54_1)、その追出し優先度の登録では、次の処理を行う。
すなわち、L2キャッシュ制御回路は、キャッシュ登録されるデータが第2のメインメモリM_MEM_2のデータの場合(S54_2のNO)、追出し優先度Priorityを最大(LRUまたはLFU、最古の使用または最小使用頻度)で登録する(S54_4)。一方、キャッシュされるデータが第1のメインメモリM_MEM_1のデータの場合(S54_2のNO)、追出し優先度Priorityを最小(LRUまたはLFU、最古の使用または最小使用頻度)で登録する(S54_4)。キャッシュ登録されるデータが第2のメインメモリのデータか否かは、メモリ要求に付加されるメモリフラグM2_FLGにより判別することができる。
右側に示したキャッシュヒット時の追出し優先度の更新処理では、L2キャッシュ制御回路は、ヒットしたデータが第2のメインメモリM_MEM_2のデータの場合、ヒットしたキャッシュラインの追出し優先度を更新しない(S55_3)。これにより第2のメインメモリM_MEM_2のデータの追出し優先度は、最大(LRUまたはLFU、最古の使用または最小使用頻度)のまま維持される。一方、ヒットしたデータが第2のメインメモリM_MEM_2のデータの場合、ヒットしたキャッシュラインの追出し優先度を最小(MRUまたはMFU、最新使用または最大使用頻度)に更新する(S55_2)。
図15は、図14の追出し優先度の登録及び更新の具体例を示す図である。状態P1では、追出し優先度順に、データA, C, D, Bが4つの(4WAYの)キャッシュラインに登録され、これらのデータは全て第1のメインメモリM_MEM_1のデータとする。この状態P1で、第2のメインメモリM_MEM_2のデータXがアクセスされると、L2キャッシュ制御回路は、キャッシュミスを検出し、追出し優先度最大のLRUのデータAを追出し、代わりにデータXを追出し優先度最大で登録する。その結果、状態P2に変更される。次に、データXがアクセスされると、キャッシュヒットとなり、データXの追出し優先度は最大のまま更新しない。これが状態P3である。
更に、第2のメインメモリのデータYがアクセスされると、キャッシュミスとなり、追出し優先度が最大のデータXが追い出され、データYが追い出されたキャッシュラインに追出し優先度最大で登録され、状態P4となる。
このように、第2の実施の形態では、第2のメインメモリのデータXをキャッシュ登録時もキャッシュヒット時もその追出し優先度を最大にするので、その後第2のメインメモリのデータが登録される場合、第2のメインメモリのデータXは必ず追い出しされる。よって、同じインデックスの複数のキャッシュラインのうち単一のキャッシュラインにしか第2のメインメモリのデータは登録されない。その結果、WAY数が4の場合は、第2のメインメモリのデータはキャッシュメモリ内で高々1/4の容量の比率しか登録されず、第2のメインメモリに対して連続アドレスで大量のデータがロードまたはストアされた場合、キャッシュメモリ内の第1のメインメモリのデータが全て追い出されることはなく、その後第1のメインメモリのデータへのアクセスでキャッシュミスが頻発することが抑制される。
以上のとおり、本実施の形態によれば、キャッシュメモリ内に記憶される第2のメインメモリのデータの第1のメインメモリのデータに対する容量の比率が、所定の比率以下に制限されるので、その後キャッシュメモリでキャッシュミスが頻発することが抑制される。
M_MEM_1:第1のメインメモリ
M_MEM_2:第2のメインメモリ
PRC(CPU):プロセッサ、演算処理装置、CPUチップ
CORE:コア
L1_CACHE:L1キャッシュユニット
L2_CACHE:L2キャッシュユニット
L1$_CNT:L1キャッシュ制御回路
L2$_CNT:L2キャッシュ制御回路
L2_TAG,L2_DATA:L2キャッシュメモリ

Claims (7)

  1. 命令を実行する算術論理演算部と、
    第1のメインメモリのデータの一部と、所定容量以上の連続アドレスのデータアクセスで前記第1のメインメモリより広い帯域を有する第2のメインメモリのデータの一部を記憶するキャッシュメモリ、及び前記算術論理演算部からのメモリ要求に応答して前記キャッシュメモリ内のデータを読み出してメモリ要求元に応答するキャッシュ制御部を有するキャッシュユニットとを有し、
    前記キャッシュメモリ内に記憶される前記第2のメインメモリのデータの前記第1のメインメモリのデータに対する容量の比率が、所定の比率以下に制限される、演算処理装置。
  2. 前記キャッシュユニットは、論理アドレスと物理アドレスとの対応を有するアドレス変換テーブルに基づいて、前記メモリ要求の論理アドレスを物理アドレスに変換するアドレス変換部を有し、
    前記算術論理演算部は、論理アドレスに対して物理アドレスを割り当てるとき、前記物理アドレス内の前記キャッシュメモリのインデックスアドレスを前記所定の比率に分割した第1及び第2の物理アドレスを、前記第1のメインメモリのデータと前記第2のメインメモリのデータとにそれぞれ割り当てる、請求項1に記載の演算処理装置。
  3. 前記キャッシュ制御部は、前記メモリ要求のインデックスアドレスに対応する前記キャッシュメモリのキャッシュラインのタグを参照し、前記タグ内のタグアドレスと前記メモリ要求のタグアドレスが一致する場合、キャッシュヒットと判定する、請求項2に記載の演算処理装置。
  4. 前記キャッシュ制御部は、
    前記第1のメインメモリのデータのメモリ要求でキャッシュミスし、前記キャッシュメモリに前記第1のメインメモリのデータを登録するとき、前記メモリ要求のインデックスアドレスに対応する複数のキャッシュラインのうち、データの追出し優先度が最大のキャッシュラインのデータを追出し、前記追い出されたキャッシュラインに、前記登録対象の第1のメインメモリのデータを最小の追出し優先度で登録し、
    前記第1のメインメモリのデータのメモリ要求でキャッシュヒットしたとき、前記キャッシュヒットしたキャッシュラインの前記追出し優先度を最小に更新し、
    前記キャッシュ制御部は、
    前記第2のメインメモリのデータのメモリ要求でキャッシュミスし、前記キャッシュメモリに前記第2のメインメモリのデータを登録するとき、前記メモリ要求のインデックスアドレスに対応する複数のキャッシュラインのうち、前記追出し優先度が最大のキャッシュラインのデータを追出し、前記追い出されたキャッシュラインに、前記登録対象の第2のメインメモリのデータを最大の追出し優先度で登録し、
    前記第2のメインメモリのデータのメモリ要求でキャッシュヒットしたとき、前記キャッシュヒットしたキャッシュラインの前記追出し優先度を最大のまま変更しない、請求項1に記載の演算処理装置。
  5. 前記キャッシュメモリは、前記インデックスアドレスで複数のキャッシュラインが選択され、前記選択された複数のキャッシュラインのうち、前記メモリ要求のタグアドレスと一致するタグアドレスを有するキャッシュラインがキャッシュヒットと判定される、請求項4に記載の演算処理装置。
  6. 第1のメインメモリと、
    所定容量以上の連続アドレスのデータアクセスで前記第1のメインメモリより広い帯域を有する第2のメインメモリと、
    前記第1のメインメモリと前記第2のメインメモリにアクセス可能に接続され、命令を実行する算術論理演算部と、前記第1のメインメモリのデータの一部と前記第2のメインメモリのデータの一部を記憶するキャッシュメモリを有し、前記算術論理演算部からのメモリ要求に応答して前記キャッシュメモリ内のデータを読み出してメモリ要求元に応答するキャッシュ制御部を有するキャッシュユニットとを有する演算処理装置とを有し、
    前記キャッシュメモリ内に記憶される前記第2のメインメモリのデータの前記第1のメインメモリのデータに対する容量の比率が、所定の比率以下に制限される、情報処理装置。
  7. 命令を実行する算術論理演算部と、
    第1のメインメモリのデータの一部と、所定容量以上の連続アドレスのデータアクセスで前記第1のメインメモリより広い帯域を有する第2のメインメモリのデータの一部を記憶するキャッシュメモリと、前記算術論理演算部からのメモリ要求に応答して前記キャッシュメモリ内のデータを読み出してメモリ要求元に応答するキャッシュ制御部を有するキャッシュユニットとを有する演算処理装置の制御方法であって、
    前記キャッシュメモリ内に記憶される前記第2のメインメモリのデータの前記第1のメインメモリのデータに対する容量の比率を、所定の比率以下に制限する、演算処理装置の制御方法。
JP2018176307A 2018-09-20 2018-09-20 演算処理装置、情報処理装置及び演算処理装置の制御方法 Active JP7071640B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2018176307A JP7071640B2 (ja) 2018-09-20 2018-09-20 演算処理装置、情報処理装置及び演算処理装置の制御方法
US16/516,314 US11003591B2 (en) 2018-09-20 2019-07-19 Arithmetic processor, information processing device and control method of arithmetic processor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018176307A JP7071640B2 (ja) 2018-09-20 2018-09-20 演算処理装置、情報処理装置及び演算処理装置の制御方法

Publications (2)

Publication Number Publication Date
JP2020047084A JP2020047084A (ja) 2020-03-26
JP7071640B2 true JP7071640B2 (ja) 2022-05-19

Family

ID=69884307

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018176307A Active JP7071640B2 (ja) 2018-09-20 2018-09-20 演算処理装置、情報処理装置及び演算処理装置の制御方法

Country Status (2)

Country Link
US (1) US11003591B2 (ja)
JP (1) JP7071640B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11580023B2 (en) 2020-03-11 2023-02-14 Fujitsu Limited Information processing apparatus, computer-readable recording medium having stored therein memory control program, and computer-readable recording medium having stored therein information processing program

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000353126A (ja) 1999-06-09 2000-12-19 Mitsubishi Electric Corp 計算機システムのバッファキャッシュ再分割方法及びバッファキャッシュ再分割機能付き計算機システム
JP2004503010A (ja) 2000-06-30 2004-01-29 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ キャッシュメモリを有するデータ処理装置およびこのような装置の使用方法
JP2017519275A (ja) 2014-05-09 2017-07-13 華為技術有限公司Huawei Technologies Co.,Ltd. データキャッシング方法、キャッシュおよびコンピュータシステム

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016091242A (ja) 2014-10-31 2016-05-23 富士通株式会社 キャッシュメモリ、キャッシュメモリへのアクセス方法及び制御プログラム
US10126950B2 (en) * 2014-12-22 2018-11-13 Intel Corporation Allocating and configuring persistent memory
US10365325B2 (en) * 2017-08-22 2019-07-30 Micron Technology, Inc. Semiconductor memory device

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000353126A (ja) 1999-06-09 2000-12-19 Mitsubishi Electric Corp 計算機システムのバッファキャッシュ再分割方法及びバッファキャッシュ再分割機能付き計算機システム
JP2004503010A (ja) 2000-06-30 2004-01-29 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ キャッシュメモリを有するデータ処理装置およびこのような装置の使用方法
JP2017519275A (ja) 2014-05-09 2017-07-13 華為技術有限公司Huawei Technologies Co.,Ltd. データキャッシング方法、キャッシュおよびコンピュータシステム

Also Published As

Publication number Publication date
US11003591B2 (en) 2021-05-11
US20200097415A1 (en) 2020-03-26
JP2020047084A (ja) 2020-03-26

Similar Documents

Publication Publication Date Title
JP6505132B2 (ja) メモリ容量圧縮を利用するメモリコントローラならびに関連するプロセッサベースのシステムおよび方法
JP6478843B2 (ja) 半導体装置及びキャッシュメモリ制御方法
JP7340326B2 (ja) メンテナンス動作の実行
US10031854B2 (en) Memory system
US11803482B2 (en) Process dedicated in-memory translation lookaside buffers (TLBs) (mTLBs) for augmenting memory management unit (MMU) TLB for translating virtual addresses (VAs) to physical addresses (PAs) in a processor-based system
US20160140042A1 (en) Instruction cache translation management
US9697137B2 (en) Filtering translation lookaside buffer invalidations
US20170083444A1 (en) Configuring fast memory as cache for slow memory
EP3411798B1 (en) Cache and method
CN115292214A (zh) 页表预测方法、存储访问操作方法、电子装置和电子设备
JP6027562B2 (ja) キャッシュメモリシステムおよびプロセッサシステム
US20190243778A1 (en) Memory address translation
US20200293455A1 (en) Cache address mapping method and related device
US20190155748A1 (en) Memory address translation
KR20210037216A (ko) 이종 메모리를 이용하여 메모리 주소 변환 테이블을 관리하는 메모리 관리 유닛 및 이의 메모리 주소 관리 방법
JP7071640B2 (ja) 演算処理装置、情報処理装置及び演算処理装置の制御方法
JP6249120B1 (ja) プロセッサ
US12032489B2 (en) Input output memory management unit and electronic device having the same
US10977176B2 (en) Prefetching data to reduce cache misses
JP7311959B2 (ja) 複数のデータ・タイプのためのデータ・ストレージ
US10754775B2 (en) Fast cache invalidation response using cache class attributes
JP6260456B2 (ja) 演算処理装置及び演算処理装置の制御方法
CN118349493A (zh) 经由虚拟地址存取数据之计算机系统、芯片及相关方法
JPH11296431A (ja) 情報処理装置及びキャッシュメモリのマッピング方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210610

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20220328

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220418

R150 Certificate of patent or registration of utility model

Ref document number: 7071640

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150