JP2014067250A - メモリアクセス制御装置、メモリアクセス制御システム、及び、メモリアクセス制御方法 - Google Patents

メモリアクセス制御装置、メモリアクセス制御システム、及び、メモリアクセス制御方法 Download PDF

Info

Publication number
JP2014067250A
JP2014067250A JP2012212659A JP2012212659A JP2014067250A JP 2014067250 A JP2014067250 A JP 2014067250A JP 2012212659 A JP2012212659 A JP 2012212659A JP 2012212659 A JP2012212659 A JP 2012212659A JP 2014067250 A JP2014067250 A JP 2014067250A
Authority
JP
Japan
Prior art keywords
associative
data
access control
entry
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.)
Granted
Application number
JP2012212659A
Other languages
English (en)
Other versions
JP5724981B2 (ja
Inventor
Tomohisa Fukuyama
智久 福山
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.)
NEC Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Priority to JP2012212659A priority Critical patent/JP5724981B2/ja
Publication of JP2014067250A publication Critical patent/JP2014067250A/ja
Application granted granted Critical
Publication of JP5724981B2 publication Critical patent/JP5724981B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Abstract

【課題】スラッシングの発生を抑止してキャッシュメモリのヒット率を向上させることで、システム性能を向上させるメモリアクセス供制御装置を提供する。
【解決手段】本願発明のメモリアクセス制御装置は、主記憶に記憶されたデータの写しを主記憶のアドレスと対応付けて記憶し、入力されたアドレスと一致するアドレスに対応付けられたデータを出力する、第一の連想記憶装置及び第二の連想記憶装置と、中央処理装置の命令発行部からデータ参照命令に含まれるアドレスを入力して、第一の連想記憶装置と第二の連想記憶装置に並列に出力するアクセス制御手段と、を備え、一つのデータを記憶するエントリの数は、第一の連想記憶装置の方が第二の連想記憶装置より小さく、かつ、一つのデータを記憶する可能性のあるエントリの数である連想度は、第一の連想記憶装置の方が第二の連想記憶装置より大きいことを特徴とする。
【選択図】 図1

Description

本願発明は、キャッシュメモリにおけるスラッシングの発生による性能低下を回避するためのメモリアクセス制御装置、メモリアクセス制御システム、及び、メモリアクセス制御方法に関する。
コンピュータシステムの性能低下の要因の一つとして、プロセッサ内のキャッシュメモリの同一エントリを複数のメモリリクエスト同士で奪い合うスラッシングの発生がある。スラッシングの発生によりキャッシュミスヒットが頻発すると、下位レベルのキャッシュや主記憶装置へのアクセス頻度が増加してメモリアクセスのレイテンシが増加するため、システム性能は大きく低下する。したがって、コンピュータシステムの性能を向上させるためには、スラッシングによるキャッシュメモリの性能低下を回避することが課題である。
上述の課題に対応するための技術として、特許文献1には、メモリリクエストのアクセスアドレスの履歴を保持するテーブルを備えてスラッシングの発生を検出し、スラッシングによって発生したメモリリクエストによる転送データを保持するためのバッファを備えることで、主記憶装置へのアクセス頻度を軽減させたメモリシステムが公開されている。
特開2002-215457号公報
特許文献1のメモリシステムは、あるアクセスアドレスに関してスラッシングの発生を検出した後に、次回以降のスラッシングの発生による性能低下を回避するためのものである。したがって、あるアクセスアドレスに対する初回のスラッシングの発生を回避するための機能は有していない。したがって、特許文献1のメモリシステムでは、コンピュータシステムの性能向上を図る上で、十分であるとは言えない。
本願発明の目的は、上述の問題点を解決したメモリアクセス制御装置、メモリアクセス制御システム、及び、メモリアクセス制御方法を提供することである。
本願発明の一実施形態のメモリアクセス制御装置は、主記憶に記憶されたデータの写しを前記主記憶のアドレスと対応付けて記憶し、入力されたアドレスと一致する前記アドレスに対応付けられた前記データを出力する、第一の連想記憶装置及び第二の連想記憶装置と、中央処理装置の命令発行部からデータ参照命令に含まれるアドレスを入力して、前記第一の連想記憶装置と前記第二の連想記憶装置に並列に出力するアクセス制御手段と、を備え、一つの前記データを記憶するエントリの数は、前記第一の連想記憶装置の方が前記第二の連想記憶装置より小さく、かつ、一つの前記データを記憶する可能性のある前記エントリの数である連想度は、前記第一の連想記憶装置の方が前記第二の連想記憶装置より大きいことを特徴とする。
本願発明の一実施形態のメモリアクセス制御方法は、主記憶に記憶されたデータの写しを前記主記憶のアドレスと対応付けて記憶し、入力されたアドレスと一致する前記アドレスに対応付けられた前記データを出力する、第一の連想記憶装置及び第二の連想記憶装置であって、一つの前記データを記憶するエントリの数は、前記第一の連想記憶装置の方が前記第二の連想記憶装置より小さく、かつ、一つの前記データを記憶する可能性のある前記エントリの数である連想度は、前記第一の連想記憶装置の方が前記第二の連想記憶装置より大きいものをメモリアクセス制御装置に設け、中央処理装置の命令発行部からデータ参照命令に含まれるアドレスを入力して、前記第一の連想記憶装置と前記第二の連想記憶装置に並列に出力する。
本願発明は、スラッシングの発生を抑止し、キャッシュメモリのヒット率を向上させることで、システム性能を向上させることができるようにする。
本願発明の第1の実施形態のメモリアクセス制御システムの構成を示すブロック図である。 本願発明の第1の実施形態における第1の連想記憶装置と第2の連想記憶装置への主記憶データのアドレスのマッピング例ある。 本願発明の第1の実施形態の動作を示すフローチャート(その1)である。 本願発明の第1の実施形態の動作を示すフローチャート(その2)である。 本願発明の第1の実施形態における第1の連想記憶装置のエントリの構成例である。 本願発明の第1の実施形態におけるアクセス制御部の動作例である。 本願発明の第2の実施形態のメモリアクセス制御装置の構成を示すブロック図である。
本願発明の第1の実施の形態について図面を参照して詳細に説明する。
図1は本実施形態のメモリアクセス制御システムの構成を示すブロック図である。
本実施形態のメモリアクセス制御システム1は、メモリアクセス制御装置10と、命令発行部20と、主記憶装置30とを包含している。
メモリアクセス制御装置10と、命令発行部20は、中央処理装置のプロセッサ(図示せず)に搭載されている。命令発行部20がデータ参照命令を発行すると、メモリアクセス制御装置10は、データ参照命令が指定するアドレスに基づき、必要であれば主記憶装置30へアクセスする。尚、システムによっては、主記憶装置30の手前に、下位レベルのキャッシュメモリを供えたものもある。
メモリアクセス制御装置10は、アクセス制御部100と、第1の連想記憶装置110と、第2の連想記憶装置120と、命令記憶部130とを包含している。
第1の連想記憶装置110と、第2の連想記憶装置120は、中央処理装置のプロセッサにおいて並列に配置されたキャッシュメモリである。尚、システムによっては、命令発行部20との間に、上位レベルのキャッシュメモリを備えたものもある。第1の連想記憶装置110は、アドレス記憶部111とデータ記憶部112を包含し、第2の連想記憶装置120は、アドレス記憶部121とデータ記憶部122を包含している。
第1の連想記憶装置110と、第2の連想記憶装置120への主記憶装置30のアドレス空間のマッピングの例を図2に示す。
主記憶アドレス空間200は、アドレスの値によりn個の領域に分割されて、各領域に包含される主記憶データのコピーはそれぞれ、第2の連想記憶装置120における、領域ごとに決められたエントリ群内のエントリに格納される。nは、一般的には8以上の整数である。第2の連想記憶装置120へのアドレスのマッピング201で示す通り、アドレス1とアドレスn+1とアドレス2n+1等の主記憶データのコピーが、第2の連想記憶装置120におけるエントリ1−1あるいはエントリ1−2に格納される。同様に、アドレス2とアドレスn+2とアドレス2n+2等の主記憶データのコピーが、エントリ2−1あるいはエントリ2−2に格納される。
第2の連想記憶装置120において、主記憶アドレス空間200の各領域内の何れかの主記憶データのコピーを記憶する可能性のあるエントリの数である連想度は2である。すなわち、第2の連想記憶装置120は、連想度が2のセットアソシアティブ形式で主記憶データのコピーを記憶しており、エントリの総数は2n個となる。以下、連想度が2であることを、2wayと表記する。
第1の連想記憶装置110については、第1の連想記憶装置110へのアドレスのマッピング202で示す通り、4wayのフルアソシアティブ形式で主記憶データのコピーを記憶する場合もあれば、第1の連想記憶装置110へのアドレスのマッピング203で示す通り、4wayのセットアソシアティブ形式で主記憶データのコピーを記憶する場合もある。
4wayのフルアソシアティブ形式の場合、第1の連想記憶装置110は、全ての主記憶データのコピーを、そのアドレスの値にかかわらず、包含する4個のエントリの何れかに格納する。
4wayのセットアソシアティブ形式の場合、第1の連想記憶装置110は、エントリ1−1乃至1−4で構成されるエントリ群と、エントリ2−1乃至2−4で構成されるエントリ群の2つのエントリ群を包含している。第1の連想記憶装置110は、主記憶データのコピーを、そのアドレス値が奇数か偶数かによって、何れかのエントリ群内のエントリに格納する。この場合、各エントリ群が包含するエントリは4個であり、第1の連想記憶装置110が包含するエントリの総数は8個となる。
上述の説明で明らかなとおり、第1の連想記憶装置110は、連想度が第2の連想記憶装置120よりも大きく、総エントリ数が第2の連想記憶装置120よりも小さい特徴を有している。
第1の連想記憶装置110が、4wayのフルアソシアティブ形式で主記憶データのコピーを記憶する場合の、第1の連想記憶装置110のエントリの構成例を図5に示す。第1の連想記憶装置110が包含する4個のエントリは、それぞれを識別するためのID番号と、主記憶アドレスと、データ転送ステータスの情報と、LRU(Least Recently Used)の情報と、主記憶データを対応付けて包含している。
データ転送ステータスの情報は、データ参照命令が指定した主記憶アドレスが、第1の連想記憶装置110と第2の連想記憶装置120の両方でミスヒットし、主記憶装置30へのアクセスが発生した際の、当該アドレスの主記憶データに関するデータ転送の状態を示している。
図5の例の場合、ID番号が1および2のエントリについては、主記憶データがエントリへの送済みで、エントリ内の主記憶データのコピーは有効であるが、ID番号が3のエントリについては、主記憶データのエントリへの転送が完了していなく、エントリ内の主記憶データのコピーは、まだ有効でないことを示している。
LRUの情報は、第1の連想記憶装置110のエントリへのアクセスが最後に行われてからの経過時間、すなわち、当該エントリに格納されたデータが使用されていない時間の長さの順位を示している。エントリ内の主記憶データのコピーのリプレースは、アクセス制御部100により、LRUの値が小さいものから優先して行われる。
図5において、ID番号が4のエントリは、未使用のエントリである。
尚、第2の連想記憶装置120の各エントリの構成も、図5に示すものと同様である。
命令記憶部130は、命令発行部20から発行されたデータ参照命令の命令情報を記憶する。命令情報は、命令発行部20がデータ参照命令に付与した命令のID番号や、データ参照命令が使用する第1の連想記憶装置110と第2の連想記憶装置120におけるエントリのID番号等の情報を包含している。
アクセス制御部100は、命令発行部20が発行したデータ参照命令の実行を制御する。アクセス制御部100は、まず、データ参照命令が指定した主記憶アドレスが登録されているかどうか、第1の連想記憶装置110と第2の連想記憶装置120の両方に並列に確認する。
第2の連想記憶装置120でヒットした場合、アクセス制御部100は、当該アドレスに対応する、第2の連想記憶装置120のエントリにアクセスする。
第2の連想記憶装置120でミスヒットし、第1の連想記憶装置110でヒットした場合、アクセス制御部100は、当該アドレスに対応する、第1の連想記憶装置110のエントリにアクセスする。
第1の連想記憶装置110と第2の連想記憶装置120の両方でミスヒットした場合、アクセス制御部100は、第1の連想記憶装置110と第2の連想記憶装置120の両方に、当該アドレスのデータを格納するためのエントリを確保する。アクセス制御部100は、確保した第1の連想記憶装置110におけるエントリのID番号の情報を付けて、主記憶装置30へアクセスリクエストを送信する。アクセス制御部100は、第2の連想記憶装置120で確保したエントリのID番号を、第1の連想記憶装置110で確保したエントリのID番号に紐づけて記憶する。
アクセス制御部100は、主記憶装置30からのリプライデータに付与された第1の連想記憶装置110におけるエントリのID番号と、当該ID番号に紐づけられた第2の連想記憶装置120におけるエントリのID番号で特定される、第1の連想記憶装置110と第2の連想記憶装置120におけるエントリに、リプライデータを格納する。
アクセス制御部100は、第2の連想記憶装置120においてリプレースが発生した場合、第1の連想記憶装置110において未使用のエントリがあるか確認し、未使用のエントリがある場合は、リプレースで第2の連想記憶装置120から追い出されたデータを、第1の連想記憶装置110における未使用のエントリに格納する。
アクセス制御部100は、主記憶装置30における何れかのアドレスのデータのコピーが、第1の連想記憶装置110と第2の連想記憶装置120の両方に存在する場合、第1の連想記憶装置110における、当該アドレスの主記憶データのコピーを格納したエントリを未使用状態に設定する。
本実施形態において、命令発行部30から、データ参照命令ReqA1乃至A3、ReqB1乃至B3、ReqC1乃至C3が発行されたときのアクセス制御部100の動作を、図6におけるアクセス制御部100の動作例300に示す。第1の連想記憶装置110は、第1の連想記憶装置110へのアドレスのマッピング202で示す4wayフルアソシアティブ形式で主記憶データのコピーを記憶し、第2の連想記憶装置120は、第2の連想記憶装置120へのアドレスのマッピング201で示す2wayセットソシアティブ形式で主記憶データのコピーを記憶する。また、ReqA1乃至A3、ReqB1乃至B3、ReqC1乃至C3のアクセスアドレスは、いずれも、第2の連想記憶装置120におけるエントリ1−1、あるいは、エントリ1−2にマッピングされるアドレスである。
アクセス制御部100は、命令発行部20からReqA1を受信すると、第1の連想記憶110のエントリ1、第2の連想記憶装置120のエントリ1−1を確保して、リクエストにエントリ番号1をIDとして付与し主記憶装置30にアクセスする。アクセス制御部100は、エントリ1−1をエントリ1と紐付けて記憶する(ステップ1)。
アクセス制御部100は、命令発行部20からReqB1を受信すると、第1の連想記憶110のエントリ2、第2の連想記憶装置120のエントリ1−2を確保して、リクエストにエントリ番号2をIDとして付与し主記憶装置30にアクセスする。アクセス制御部100は、エントリ1−2をエントリ2と紐付けて記憶する(ステップ2)。
アクセス制御部100は、命令発行部20からReqC1を受信すると、第1の連想記憶110のエントリ3を確保、第2の連想記憶装置120のエントリ1−1のReqAのアドレスをリプレースして、リクエストにエントリ番号3をIDとして付与し主記憶装置30にアクセスする。アクセス制御部100は、エントリ1−1をエントリ3と紐付けて記憶しエントリ1と紐づけてある1−1を消去する。(ステップ3)。
アクセス制御部100は、命令発行部20からReqA2を受信すると、第1の連想記憶110のエントリ1にヒット、ステータスは転送中であるので、命令情報をエントリ1と紐付けて命令記憶部130に記憶する(ステップ4)。
アクセス制御部100は、命令発行部20からReqB2を受信すると、第1の連想記憶110のエントリ2にヒット、ステータスは転送中であるので、命令情報をエントリ2と紐付けて命令記憶部130に記憶する(ステップ5)。
アクセス制御部100は、命令発行部20からReqC2を受信すると、第1の連想記憶110のエントリ3にヒット、ステータスは転送中であるので、命令情報をエントリ3と紐付けて命令記憶部130に記憶する(ステップ6)。
アクセス制御部100は、主記憶装置30からReqA1のリプライを受信すると、リプライに付与されているエントリ1に紐付けられている第2の連想記憶装置120のエントリはないため、第1の連想記憶110のエントリ1のみにリプライデータを書き込む。アクセス制御部100は、エントリ1で紐付けられている、ReqA1、ReqA2を命令記憶部130から読み出し、第1の連想記憶110のエントリ1のリプライデータとともに、命令発行部20へReqA1、RaqA2のリプライデータを送信する(ステップ7)。
アクセス制御部100は、主記憶装置30からReqB1のリプライを受信すると、リプライに付与されているエントリ2に紐付けられている第2の連想記憶装置120のエントリは1−2なので、第1の連想記憶110のエントリ2と連想記憶装置120のエントリ1−2にリプライデータを書き込む。アクセス制御部100は、エントリ2で紐付けられている、ReqB1、ReqB2を命令記憶部130から読み出し、第1の連想記憶110のエントリ2のリプライデータとともに、命令発行部20へReqB1、ReqB2のリプライデータを送信する。アクセス制御部100は、第1の連想記憶110と第2の連想記憶装置120に同じアドレスのエントリが存在するため、第1の連想記憶110のエントリ2を未使用に設定する(ステップ8)。
アクセス制御部100は、主記憶装置30からReqC1のリプライを受信すると、リプライに付与されているエントリ3に紐付けられている第2の連想記憶装置120のエントリは1−1なので、第1の連想記憶110のエントリ3と連想記憶装置120のエントリ1−1にリプライデータを書き込む。アクセス制御部100は、エントリ3で紐付けられている、ReqC1、ReqC2を命令記憶部130から読み出し、第1の連想記憶110のエントリ3のリプライデータとともに、命令発行部20へReqC1、ReqC2のリプライデータを送信する。アクセス制御部100は、第1の連想記憶110と第2の連想記憶装置120に同じアドレスのエントリが存在するため、第1の連想記憶110のエントリ3を未使用に設定する(ステップ9)。
アクセス制御部100は、命令発行部20からReqA3を受信すると、第1の連想記憶110のエントリ1にヒットし、エントリ1にアクセスし、命令発行部20へリプライデータを送信する(ステップ10)。
アクセス制御部100は、命令発行部20からReqB3を受信すると、第1の連想記憶120のエントリ1−2にヒットし、エントリ1−2にアクセスし、命令発行部20へリプライデータを送信する(ステップ11)。
アクセス制御部100は、命令発行部20からReqC3を受信すると、第1の連想記憶120のエントリ1−1にヒットし、エントリ1−1にアクセスし、命令発行部20へリプライデータを送信する(ステップ12)。
以降、ステップ10からステップ12が繰り返される。
次に図3、図4のフローチャートを参照して、本実施形態の動作について詳細に説明する。
アクセス制御部100は、命令発行部20からデータ参照命令を受信する(S101)。アクセス制御部100は、第1の連想記憶装置110と第2の連想記憶装置120を並列に参照し、受信したデータ参照命令のアクセスアドレスでヒットするエントリがあるか確認する(S102)。
第2の連想記憶装置120でヒットした場合(S103でYes)、あるいは、第2の連想記憶装置120でヒットせず(S103でNo)、第1の連想記憶装置110でヒットした(S104でYes)場合、アクセス制御部100は、ヒットしたエントリのデータ転送ステータスを確認する(S107)。
データ転送ステータスが“転送中”の場合(S108でYes)、アクセス制御部100は、命令記憶部130に、エントリのIDを付加してデータ参照命令の命令情報を登録し(S111)、処理はS121へ進む。データ転送ステータスが“転送中”でない場合(S108でNo)、処理はS125へ進む。
第2の連想記憶装置120でヒットせず(S103でNo)、かつ、第1の連想記憶装置110でヒットしない(S104でNo)の場合、アクセス制御部100は、第1の連想記憶装置110に未使用エントリがあるか確認する(S105)。
未使用エントリが有る場合(S106でYes)、処理はS110へ進む。未使用エントリが無い場合(S106でNo)、アクセス制御部100は、第1の連想記憶装置110のLRUの情報を参照し、LRUの値が最も小さいエントリの情報をクリアし、未使用状態に設定する(S109)。
アクセス制御部100は、第1の連想記憶装置110の未使用エントリに、データ参照命令のアクセスアドレスを登録し、データ転送ステータスを転送中に設定する(S110)。アクセス制御部100は、第2の連想記憶装置120に未使用エントリがあるか確認
する(S112)。
未使用エントリが無い場合(S113でNo)、アクセス制御部100は、第2の連想記憶装置120の使用エントリの1つをリプレースする(S115)。アクセス制御部100は、第1の連想記憶装置110に未使用エントリがあるか確認する(S116)。未使用エントリが無い場合(S117でNo)、処理はS119へ進む。未使用エントリが有る場合(S117でYes)、アクセス制御部100は、リプレースにより第2の連想記憶装置120から追い出されたデータを、第1の連想記憶装置110の未使用エントリに格納し(S118)、処理はS119へ進む。
S112の確認において、未使用エントリがある場合(S113でYes)、アクセス制御部100は、第2の連想記憶装置120の未使用エントリにデータ参照命令のアクセスアドレスを登録する(S114)。アクセス制御部100は、命令記憶部130に、エントリのIDを付加してデータ参照命令の命令情報を登録する(S119)。
アクセス制御部100は、第1の連想記憶装置110における対応するエントリのIDを付与して、データ参照命令を主記憶装置30に送信し、第2の連想記憶装置120で確保したエントリのIDを、第1の連想記憶装置110で確保したエントリのIDに紐づけて記憶する(S120)。
アクセス制御部100は、主記憶装置30からリプライデータを受信し、リプライデータに付与された、第1の連想記憶装置110におけるエントリのIDで特定されるエントリのデータ転送ステータスを転送済みにして、当該エントリにリプライデータを書き込む(S121)。
第2の連想記憶装置120のエントリが確保されている場合(S122でYes)、アクセス制御部100は、第2の連想記憶装置120に、主記憶装置30からのリプライデータを書き込む(S123)。第2の連想記憶装置120のエントリが確保されていない場合(S122でNo)、処理はS124へ進む。
アクセス制御部100は、命令記憶部130から命令情報を読み出す(S124)。アクセス制御部100は第1の連想記憶装置110からデータを読み出して、命令発行部30へ送信し、当該命令情報を命令記憶部103から削除する(S125)。
命令記憶部103に、同じエントリのIDに関する命令情報が有る場合(S126でYes)、処理はS124へ進む。命令記憶部103に、同じエントリのIDに関する命令情報が無い場合(S126でNo)、処理はS126へ進む。
アクセス制御部100は、第1の連想記憶装置110と、第2の連想記憶装置120の中に、同一のアドレスに関するデータが存在するか確認する(S127)。同一のアドレスに関するデータが存在しない場合(S128でNo)、全体の処理は終了する、同一のアドレスに関するデータが存在する場合(S128でYes)、アクセス制御部100は、第1の連想記憶装置110において、当該アドレスに関するデータを格納したエントリを未使用に設定し、(S129)、全体の処理は終了する。
本実施形態には、ハードウェアの増加をそれほど伴わずに、スラッシングの発生を抑止し、キャッシュメモリのヒット率を向上させることで、システム性能を向上させることができる効果がある。その理由は、メモリアクセス装置10が、エントリ数は小さいが連想度が大きい第1の連想記憶装置110と、エントリ数は大きいが連想度が小さい第2の連想記憶装置120を備え、アクセス制御部100が、データ参照命令の処理時に、これら2つの連想記憶装置を、スラッシングの発生の有無にかかわらず、並列に使用するからである。
従来の一般的な中央処理装置においては、本実施形態における第2の連想記憶装置120が一次キャッシュメモリに相当する。一次キャッシュメモリとしての効果を出すためには、主記憶データを記憶するための、ある程度のエントリ数を確保する必要があるが、その場合、フルアソシアティブ方式のような連想度の高い方式は、ハードウェアが大規模になるため、採用することは困難である。
そこで、ハードウェア規模を抑えられるセットアソシアティブ方式を採用することとなるが、この方式は連想度が小さいため、例えば、キャッシュ内の同じエントリ群にマッピングされる主記憶アドレスのアクセスが連続した場合、スラッシングが多発して、性能が低下することになる。
上述の課題を解決するため、本実施形態のメモリアクセス装置は、従来の一次キャッシュメモリの他に、エントリ数は小さいものの、連想度が大きいフルアソシアティブ方式のキャッシュメモリを備えて、従来の一次キャッシュメモリと並列動作させている。
従来の一次キャッシュメモリでは既にリプレースされて消えている主記憶データが、連想度が大きいフルアソシアティブ方式のキャッシュメモリの方には、まだ残っているケースがあるため、キャッシュヒット率が増加して、主記憶へのアクセスを減少させ、システム性能が向上する。また、上述のフルアソシアティブ方式のキャッシュメモリのエントリ数は小さいため、追加するハードウェアは小規模に抑えることが可能である。
また、従来から、一次キャッシュから追い出されたデータを格納するためのデータを格納するために、フルアソシアティブ方式のビクティムキャッシュを備えたシステムも存在する。しかしながら、このビクティムキャッシュは、本実施形態のように一次キャッシュと並列に実装されてはおらず、一次キャッシュと階層的な位置関係で実装されている。すなわち、一次キャッシュがミスヒットした後、ビクティムキャッシュへのアクセスが発生することになるため、一次キャッシュミスヒット時のペナルティが発生することとなり、本実施形態と比較して、システム性能を向上させる効果は小さい。
さらに、本実施形態では、メモリアクセス制御装置10が、命令記憶部130を備え、命令発行部20から発行されたデータ参照命令を一時的に記憶する。データ参照命令で指定された主記憶アドレスが、第1の連想記憶装置110と第2の連想記憶装置120の両方でミスヒットした場合、主記憶アクセスが発生し主記憶からのリプライデータ待ちとなる。本実施形態では、リプライデータ待ちのデータ参照命令は、命令記憶部130に記憶されているため、アクセス制御部100は、後続命令を命令発行部20から受信して処理を継続させることで、システム性能の低下を回避することが可能となる。
さらにまた、本実施形態では、第2の連想記憶装置においてリプレースが発生した場合、第1の連想記憶装置110において未使用のエントリがある場合は、リプレースで第2の連想記憶装置から追い出されたデータを、アクセス制御部100が、第1の連想記憶装置110にコピーすることで、キャッシュヒット率を向上させる効果が期待できる。
また、アクセス制御部100は、主記憶の何れかのアドレスのデータの写しが、第1の連想記憶装置110と第2の連想記憶装置120の両方に存在する場合、第1の連想記憶装置110における、当該アドレスのデータを格納したエントリを未使用状態に設定する。これにより、両方の連想記憶装置が同じ主記憶データを重複して記憶することを回避し、エントリを有効使用することで、キャッシュヒット率を向上させる効果が期待できる。
<第2の実施形態>
次に、本願発明の第2の実施形態について図面を参照して詳細に説明する。
図7は本実施形態のメモリアクセス制御装置の構成を示すブロック図である。
本実施形態のメモリアクセス制御装置10は、アクセス制御部100と、第1の連想記憶装置110と、第2の連想記憶装置120とを包含している。
第1の連想記憶装置110と、第2の連想記憶装置120は、主記憶装置30に記憶されたデータの写しを主記憶のアドレスと対応付けて記憶し、入力されたアドレスと一致するアドレスに対応付けられたデータを出力する。
そして、一つのデータを記憶するエントリの数は、第1の連想記憶装置110の方が第2の連想記憶装置120より小さく、かつ、一つのデータを記憶する可能性のあるエントリの数である連想度は、第1の連想記憶装置110の方が第2の連想記憶装置120より大きい。
本実施形態は、第一の実施形態と同様に、ハードウェアの増加をそれほど伴わずに、スラッシングの発生を抑止し、キャッシュメモリのヒット率を向上させることで、システム性能を向上させることができる効果がある。その理由は、メモリアクセス装置10が、エントリ数は小さいが連想度が大きい第1の連想記憶装置110と、エントリ数は大きいが連想度が小さい第2の連想記憶装置120を備え、アクセス制御部100が、データ参照命令の処理時に、これら2つの連想記憶装置を、スラッシングの発生の有無にかかわらず、並列に使用するからである。
以上、実施形態を参照して本願発明を説明したが、本願発明は上記実施形態に限定されたものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
1 メモリアクセス制御システム
10 メモリアクセス制御装置
100 アクセス制御部
110 第1の連想記憶装置
111 アドレス記憶部
112 データ記憶部
120 第2の連想記憶装置
121 アドレス記憶部
122 データ記憶部
130 命令記憶部
20 命令発行部
30 主記憶装置
200 主記憶アドレス空間
201 第2の連想記憶装置120へのアドレスのマッピング
202 第1の連想記憶装置110へのアドレスのマッピング
203 第1の連想記憶装置110へのアドレスのマッピング
300 アクセス制御部100の動作例

Claims (8)

  1. 主記憶に記憶されたデータの写しを前記主記憶のアドレスと対応付けて記憶し、入力されたアドレスと一致する前記アドレスに対応付けられた前記データを出力する、第一の連想記憶装置及び第二の連想記憶装置と、
    中央処理装置の命令発行部からデータ参照命令に含まれるアドレスを入力して、前記第一の連想記憶装置と前記第二の連想記憶装置に並列に出力するアクセス制御手段と、を備え、
    一つの前記データを記憶するエントリの数は、前記第一の連想記憶装置の方が前記第二の連想記憶装置より小さく、かつ、一つの前記データを記憶する可能性のある前記エントリの数である連想度は、前記第一の連想記憶装置の方が前記第二の連想記憶装置より大きいことを特徴とするメモリアクセス制御装置。
  2. 前記アクセス制御手段は、前記データ参照命令に含まれるアドレスに関して、前記第一の連想記憶装置と前記第二の連想記憶装置の両方でミスヒットした場合は、当該アドレスのデータを格納するための前記エントリを、前記第一の連想記憶装置と前記第二の連想記憶装置の両方で確保した上で、主記憶の当該アドレスにアクセスする
    請求項1のメモリアクセス制御装置。
  3. 前記アクセス制御手段は、前記主記憶にアクセスする場合、確保した前記エントリの識別情報を、前記アクセスのリクエストに付与し、前記主記憶からのリプライデータに付与された前記エントリの識別情報をもとに、前記リプライデータの格納先のエントリを決定する
    請求項1乃至2のメモリアクセス制御装置。
  4. 前記命令発行部から発行された前記データ参照命令の命令情報を、前記エントリの識別情報に対応付けて記憶する命令記憶手段をさらに備え、
    前記第一の連想記憶装置と前記第二の連想記憶装置は、前記各々のエントリ毎に、前記データが、前記主記憶から転送中もしくは転送済みであることを示すデータ転送ステータス情報をさらに記憶し、
    前記アクセス制御手段は、何れかの前記エントリに対応するデータ転送処理が完了したことを検知して、対応する前記データ転送ステータス情報を、転送中から転送済みに変更し、当該エントリに対応付けられた前記データ参照命令の処理を行う
    請求項1乃至3のメモリアクセス制御装置。
  5. 前記アクセス制御手段は、前記第二の連想記憶装置においてリプレースが発生した場合、前記第一の連想記憶装置において未使用のエントリがある場合は、前記リプレースで前記第二の連想記憶装置から追い出されたデータを、未使用の前記エントリに格納する
    請求項1乃至4のメモリアクセス制御装置。
  6. 前記アクセス制御手段は、前記主記憶の何れかのアドレスのデータの写しが、前記第一の連想記憶装置と前記第二の連想記憶装置の両方に存在する場合、前記第一の連想記憶装置における、当該アドレスのデータを格納した前記エントリを未使用状態に設定する
    請求項1乃至5のメモリアクセス制御装置。
  7. 請求項1乃至6のメモリアクセス制御装置と、前記中央処理装置と、前記主記憶と、を包含するメモリアクセス制御システム。
  8. 主記憶に記憶されたデータの写しを前記主記憶のアドレスと対応付けて記憶し、入力されたアドレスと一致する前記アドレスに対応付けられた前記データを出力する、第一の連想記憶装置及び第二の連想記憶装置であって、
    一つの前記データを記憶するエントリの数は、前記第一の連想記憶装置の方が前記第二の連想記憶装置より小さく、かつ、一つの前記データを記憶する可能性のある前記エントリの数である連想度は、前記第一の連想記憶装置の方が前記第二の連想記憶装置より大きいものをメモリアクセス制御装置に設け、
    中央処理装置の命令発行部からデータ参照命令に含まれるアドレスを入力して、前記第一の連想記憶装置と前記第二の連想記憶装置に並列に出力する
    メモリアクセス制御方法。
JP2012212659A 2012-09-26 2012-09-26 メモリアクセス制御装置、メモリアクセス制御システム、及び、メモリアクセス制御方法 Expired - Fee Related JP5724981B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012212659A JP5724981B2 (ja) 2012-09-26 2012-09-26 メモリアクセス制御装置、メモリアクセス制御システム、及び、メモリアクセス制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012212659A JP5724981B2 (ja) 2012-09-26 2012-09-26 メモリアクセス制御装置、メモリアクセス制御システム、及び、メモリアクセス制御方法

Publications (2)

Publication Number Publication Date
JP2014067250A true JP2014067250A (ja) 2014-04-17
JP5724981B2 JP5724981B2 (ja) 2015-05-27

Family

ID=50743581

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012212659A Expired - Fee Related JP5724981B2 (ja) 2012-09-26 2012-09-26 メモリアクセス制御装置、メモリアクセス制御システム、及び、メモリアクセス制御方法

Country Status (1)

Country Link
JP (1) JP5724981B2 (ja)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04270431A (ja) * 1990-03-27 1992-09-25 Digital Equip Corp <Dec> データ 処理装置のメモリ システム
US5317718A (en) * 1990-03-27 1994-05-31 Digital Equipment Corporation Data processing system and method with prefetch buffers
JPH09190382A (ja) * 1996-01-02 1997-07-22 Hewlett Packard Co <Hp> コンピュータメモリシステムの競合キャッシュ
WO2008093399A1 (ja) * 2007-01-30 2008-08-07 Fujitsu Limited 情報処理システムおよび情報処理方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04270431A (ja) * 1990-03-27 1992-09-25 Digital Equip Corp <Dec> データ 処理装置のメモリ システム
US5317718A (en) * 1990-03-27 1994-05-31 Digital Equipment Corporation Data processing system and method with prefetch buffers
JPH09190382A (ja) * 1996-01-02 1997-07-22 Hewlett Packard Co <Hp> コンピュータメモリシステムの競合キャッシュ
US5860095A (en) * 1996-01-02 1999-01-12 Hewlett-Packard Company Conflict cache having cache miscounters for a computer memory system
WO2008093399A1 (ja) * 2007-01-30 2008-08-07 Fujitsu Limited 情報処理システムおよび情報処理方法

Also Published As

Publication number Publication date
JP5724981B2 (ja) 2015-05-27

Similar Documents

Publication Publication Date Title
US11194729B2 (en) Victim cache that supports draining write-miss entries
CN108701092B (zh) 自愈粗粒探听过滤器
US9665486B2 (en) Hierarchical cache structure and handling thereof
US8176255B2 (en) Allocating space in dedicated cache ways
US8593474B2 (en) Method and system for symmetric allocation for a shared L2 mapping cache
US10073776B2 (en) Shadow tag memory to monitor state of cachelines at different cache level
US8347036B2 (en) Empirically based dynamic control of transmission of victim cache lateral castouts
US9563568B2 (en) Hierarchical cache structure and handling thereof
WO2012077400A1 (ja) マルチコアシステム、及びそのコアのデータ読み出し方法
US20080091880A1 (en) Horizontally-shared cache victims in multiple core processors
JP2018005395A (ja) 演算処理装置、情報処理装置および演算処理装置の制御方法
US20090259813A1 (en) Multi-processor system and method of controlling the multi-processor system
US20120226832A1 (en) Data transfer device, ft server and data transfer method
EP3163451A1 (en) Memory management method and device, and memory controller
US20140173210A1 (en) Multi-core processing device with invalidation cache tags and methods
WO2011008403A2 (en) Directory cache allocation based on snoop response information
JP2009223759A (ja) 情報処理装置,メモリ制御方法およびメモリ制御装置
CN111133423B (zh) 一种抢占式高速缓存写回方法、处理系统和处理器
US9442856B2 (en) Data processing apparatus and method for handling performance of a cache maintenance operation
US8489822B2 (en) Providing a directory cache for peripheral devices
US10545875B2 (en) Tag accelerator for low latency DRAM cache
JP5724981B2 (ja) メモリアクセス制御装置、メモリアクセス制御システム、及び、メモリアクセス制御方法
JP7071640B2 (ja) 演算処理装置、情報処理装置及び演算処理装置の制御方法
Lee et al. Context-aware address translation for high performance SMP cluster system
EP3260986B1 (en) Shadow tag memory to monitor state of cachelines at different cache level

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140116

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140813

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140909

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20141106

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150316

R150 Certificate of patent or registration of utility model

Ref document number: 5724981

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees