(57)【要約】【課題】スラッシングの発生を抑止してキャッシュメモリのヒット率を向上させることで、システム性能を向上させるメモリアクセス供制御装置を提供する。【解決手段】本願発明のメモリアクセス制御装置は、主記憶に記憶されたデータの写しを主記憶のアドレスと対応付けて記憶し、入力されたアドレスと一致するアドレスに対応付けられたデータを出力する、第一の連想記憶装置及び第二の連想記憶装置と、中央処理装置の命令発行部からデータ参照命令に含まれるアドレスを入力して、第一の連想記憶装置と第二の連想記憶装置に並列に出力するアクセス制御手段と、を備え、一つのデータを記憶するエントリの数は、第一の連想記憶装置の方が第二の連想記憶装置より小さく、かつ、一つのデータを記憶する可能性のあるエントリの数である連想度は、第一の連想記憶装置の方が第二の連想記憶装置より大きいことを特徴とする。【選択図】      図１
2014067250.tif 000002
【特許請求の範囲】
【請求項１】
主記憶に記憶されたデータの写しを前記主記憶のアドレスと対応付けて記憶し、入力されたアドレスと一致する前記アドレスに対応付けられた前記データを出力する、第一の連想記憶装置及び第二の連想記憶装置と、
中央処理装置の命令発行部からデータ参照命令に含まれるアドレスを入力して、前記第一の連想記憶装置と前記第二の連想記憶装置に並列に出力するアクセス制御手段と、を備え、
一つの前記データを記憶するエントリの数は、前記第一の連想記憶装置の方が前記第二の連想記憶装置より小さく、かつ、一つの前記データを記憶する可能性のある前記エントリの数である連想度は、前記第一の連想記憶装置の方が前記第二の連想記憶装置より大きいことを特徴とするメモリアクセス制御装置。
【請求項２】
前記アクセス制御手段は、前記データ参照命令に含まれるアドレスに関して、前記第一の連想記憶装置と前記第二の連想記憶装置の両方でミスヒットした場合は、当該アドレスのデータを格納するための前記エントリを、前記第一の連想記憶装置と前記第二の連想記憶装置の両方で確保した上で、主記憶の当該アドレスにアクセスする
請求項１のメモリアクセス制御装置。
【請求項３】
前記アクセス制御手段は、前記主記憶にアクセスする場合、確保した前記エントリの識別情報を、前記アクセスのリクエストに付与し、前記主記憶からのリプライデータに付与された前記エントリの識別情報をもとに、前記リプライデータの格納先のエントリを決定する
請求項１乃至２のメモリアクセス制御装置。
【請求項４】
前記命令発行部から発行された前記データ参照命令の命令情報を、前記エントリの識別情報に対応付けて記憶する命令記憶手段をさらに備え、
前記第一の連想記憶装置と前記第二の連想記憶装置は、前記各々のエントリ毎に、前記データが、前記主記憶から転送中もしくは転送済みであることを示すデータ転送ステータス情報をさらに記憶し、
前記アクセス制御手段は、何れかの前記エントリに対応するデータ転送処理が完了したことを検知して、対応する前記データ転送ステータス情報を、転送中から転送済みに変更し、当該エントリに対応付けられた前記データ参照命令の処理を行う
請求項１乃至３のメモリアクセス制御装置。
【請求項５】
前記アクセス制御手段は、前記第二の連想記憶装置においてリプレースが発生した場合、前記第一の連想記憶装置において未使用のエントリがある場合は、前記リプレースで前記第二の連想記憶装置から追い出されたデータを、未使用の前記エントリに格納する
請求項１乃至４のメモリアクセス制御装置。
【請求項６】
前記アクセス制御手段は、前記主記憶の何れかのアドレスのデータの写しが、前記第一の連想記憶装置と前記第二の連想記憶装置の両方に存在する場合、前記第一の連想記憶装置における、当該アドレスのデータを格納した前記エントリを未使用状態に設定する
請求項１乃至５のメモリアクセス制御装置。
【請求項７】
請求項１乃至６のメモリアクセス制御装置と、前記中央処理装置と、前記主記憶と、を包含するメモリアクセス制御システム。
【請求項８】
主記憶に記憶されたデータの写しを前記主記憶のアドレスと対応付けて記憶し、入力されたアドレスと一致する前記アドレスに対応付けられた前記データを出力する、第一の連想記憶装置及び第二の連想記憶装置であって、
一つの前記データを記憶するエントリの数は、前記第一の連想記憶装置の方が前記第二の連想記憶装置より小さく、かつ、一つの前記データを記憶する可能性のある前記エントリの数である連想度は、前記第一の連想記憶装置の方が前記第二の連想記憶装置より大きいものをメモリアクセス制御装置に設け、
中央処理装置の命令発行部からデータ参照命令に含まれるアドレスを入力して、前記第一の連想記憶装置と前記第二の連想記憶装置に並列に出力する
メモリアクセス制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本願発明は、キャッシュメモリにおけるスラッシングの発生による性能低下を回避するためのメモリアクセス制御装置、メモリアクセス制御システム、及び、メモリアクセス制御方法に関する。
【背景技術】
【０００２】
コンピュータシステムの性能低下の要因の一つとして、プロセッサ内のキャッシュメモリの同一エントリを複数のメモリリクエスト同士で奪い合うスラッシングの発生がある。スラッシングの発生によりキャッシュミスヒットが頻発すると、下位レベルのキャッシュや主記憶装置へのアクセス頻度が増加してメモリアクセスのレイテンシが増加するため、システム性能は大きく低下する。したがって、コンピュータシステムの性能を向上させるためには、スラッシングによるキャッシュメモリの性能低下を回避することが課題である。
【０００３】
上述の課題に対応するための技術として、特許文献１には、メモリリクエストのアクセスアドレスの履歴を保持するテーブルを備えてスラッシングの発生を検出し、スラッシングによって発生したメモリリクエストによる転送データを保持するためのバッファを備えることで、主記憶装置へのアクセス頻度を軽減させたメモリシステムが公開されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開2002-215457号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献１のメモリシステムは、あるアクセスアドレスに関してスラッシングの発生を検出した後に、次回以降のスラッシングの発生による性能低下を回避するためのものである。したがって、あるアクセスアドレスに対する初回のスラッシングの発生を回避するための機能は有していない。したがって、特許文献１のメモリシステムでは、コンピュータシステムの性能向上を図る上で、十分であるとは言えない。
【０００６】
本願発明の目的は、上述の問題点を解決したメモリアクセス制御装置、メモリアクセス制御システム、及び、メモリアクセス制御方法を提供することである。
【課題を解決するための手段】
【０００７】
本願発明の一実施形態のメモリアクセス制御装置は、主記憶に記憶されたデータの写しを前記主記憶のアドレスと対応付けて記憶し、入力されたアドレスと一致する前記アドレスに対応付けられた前記データを出力する、第一の連想記憶装置及び第二の連想記憶装置と、中央処理装置の命令発行部からデータ参照命令に含まれるアドレスを入力して、前記第一の連想記憶装置と前記第二の連想記憶装置に並列に出力するアクセス制御手段と、を備え、一つの前記データを記憶するエントリの数は、前記第一の連想記憶装置の方が前記第二の連想記憶装置より小さく、かつ、一つの前記データを記憶する可能性のある前記エントリの数である連想度は、前記第一の連想記憶装置の方が前記第二の連想記憶装置より大きいことを特徴とする。
【０００８】
本願発明の一実施形態のメモリアクセス制御方法は、主記憶に記憶されたデータの写しを前記主記憶のアドレスと対応付けて記憶し、入力されたアドレスと一致する前記アドレスに対応付けられた前記データを出力する、第一の連想記憶装置及び第二の連想記憶装置であって、一つの前記データを記憶するエントリの数は、前記第一の連想記憶装置の方が前記第二の連想記憶装置より小さく、かつ、一つの前記データを記憶する可能性のある前記エントリの数である連想度は、前記第一の連想記憶装置の方が前記第二の連想記憶装置より大きいものをメモリアクセス制御装置に設け、中央処理装置の命令発行部からデータ参照命令に含まれるアドレスを入力して、前記第一の連想記憶装置と前記第二の連想記憶装置に並列に出力する。
【発明の効果】
【０００９】
本願発明は、スラッシングの発生を抑止し、キャッシュメモリのヒット率を向上させることで、システム性能を向上させることができるようにする。
【図面の簡単な説明】
【００１０】
【図１】本願発明の第１の実施形態のメモリアクセス制御システムの構成を示すブロック図である。
【図２】本願発明の第１の実施形態における第１の連想記憶装置と第２の連想記憶装置への主記憶データのアドレスのマッピング例ある。
【図３】本願発明の第１の実施形態の動作を示すフローチャート（その１）である。
【図４】本願発明の第１の実施形態の動作を示すフローチャート（その２）である。
【図５】本願発明の第１の実施形態における第１の連想記憶装置のエントリの構成例である。
【図６】本願発明の第１の実施形態におけるアクセス制御部の動作例である。
【図７】本願発明の第２の実施形態のメモリアクセス制御装置の構成を示すブロック図である。
【発明を実施するための形態】
【００１１】
本願発明の第１の実施の形態について図面を参照して詳細に説明する。
【００１２】
図１は本実施形態のメモリアクセス制御システムの構成を示すブロック図である。
【００１３】
本実施形態のメモリアクセス制御システム１は、メモリアクセス制御装置１０と、命令発行部２０と、主記憶装置３０とを包含している。
【００１４】
メモリアクセス制御装置１０と、命令発行部２０は、中央処理装置のプロセッサ（図示せず）に搭載されている。命令発行部２０がデータ参照命令を発行すると、メモリアクセス制御装置１０は、データ参照命令が指定するアドレスに基づき、必要であれば主記憶装置３０へアクセスする。尚、システムによっては、主記憶装置３０の手前に、下位レベルのキャッシュメモリを供えたものもある。
【００１５】
メモリアクセス制御装置１０は、アクセス制御部１００と、第１の連想記憶装置１１０と、第２の連想記憶装置１２０と、命令記憶部１３０とを包含している。
【００１６】
第１の連想記憶装置１１０と、第２の連想記憶装置１２０は、中央処理装置のプロセッサにおいて並列に配置されたキャッシュメモリである。尚、システムによっては、命令発行部２０との間に、上位レベルのキャッシュメモリを備えたものもある。第１の連想記憶装置１１０は、アドレス記憶部１１１とデータ記憶部１１２を包含し、第２の連想記憶装置１２０は、アドレス記憶部１２１とデータ記憶部１２２を包含している。
【００１７】
第１の連想記憶装置１１０と、第２の連想記憶装置１２０への主記憶装置３０のアドレス空間のマッピングの例を図２に示す。
【００１８】
主記憶アドレス空間２００は、アドレスの値によりｎ個の領域に分割されて、各領域に包含される主記憶データのコピーはそれぞれ、第２の連想記憶装置１２０における、領域ごとに決められたエントリ群内のエントリに格納される。ｎは、一般的には８以上の整数である。第２の連想記憶装置１２０へのアドレスのマッピング２０１で示す通り、アドレス１とアドレスｎ＋１とアドレス２ｎ＋１等の主記憶データのコピーが、第２の連想記憶装置１２０におけるエントリ１−１あるいはエントリ１−２に格納される。同様に、アドレス２とアドレスｎ＋２とアドレス２ｎ＋２等の主記憶データのコピーが、エントリ２−１あるいはエントリ２−２に格納される。
【００１９】
第２の連想記憶装置１２０において、主記憶アドレス空間２００の各領域内の何れかの主記憶データのコピーを記憶する可能性のあるエントリの数である連想度は２である。すなわち、第２の連想記憶装置１２０は、連想度が２のセットアソシアティブ形式で主記憶データのコピーを記憶しており、エントリの総数は２ｎ個となる。以下、連想度が２であることを、２ｗａｙと表記する。
【００２０】
第１の連想記憶装置１１０については、第１の連想記憶装置１１０へのアドレスのマッピング２０２で示す通り、４ｗａｙのフルアソシアティブ形式で主記憶データのコピーを記憶する場合もあれば、第１の連想記憶装置１１０へのアドレスのマッピング２０３で示す通り、４ｗａｙのセットアソシアティブ形式で主記憶データのコピーを記憶する場合もある。
【００２１】
４ｗａｙのフルアソシアティブ形式の場合、第１の連想記憶装置１１０は、全ての主記憶データのコピーを、そのアドレスの値にかかわらず、包含する４個のエントリの何れかに格納する。
【００２２】
４ｗａｙのセットアソシアティブ形式の場合、第１の連想記憶装置１１０は、エントリ１−１乃至１−４で構成されるエントリ群と、エントリ２−１乃至２−４で構成されるエントリ群の２つのエントリ群を包含している。第１の連想記憶装置１１０は、主記憶データのコピーを、そのアドレス値が奇数か偶数かによって、何れかのエントリ群内のエントリに格納する。この場合、各エントリ群が包含するエントリは４個であり、第１の連想記憶装置１１０が包含するエントリの総数は８個となる。
【００２３】
上述の説明で明らかなとおり、第１の連想記憶装置１１０は、連想度が第２の連想記憶装置１２０よりも大きく、総エントリ数が第２の連想記憶装置１２０よりも小さい特徴を有している。
【００２４】
第１の連想記憶装置１１０が、４ｗａｙのフルアソシアティブ形式で主記憶データのコピーを記憶する場合の、第１の連想記憶装置１１０のエントリの構成例を図５に示す。第１の連想記憶装置１１０が包含する４個のエントリは、それぞれを識別するためのＩＤ番号と、主記憶アドレスと、データ転送ステータスの情報と、ＬＲＵ（Ｌｅａｓｔ  Ｒｅｃｅｎｔｌｙ  Ｕｓｅｄ）の情報と、主記憶データを対応付けて包含している。
【００２５】
データ転送ステータスの情報は、データ参照命令が指定した主記憶アドレスが、第１の連想記憶装置１１０と第２の連想記憶装置１２０の両方でミスヒットし、主記憶装置３０へのアクセスが発生した際の、当該アドレスの主記憶データに関するデータ転送の状態を示している。
【００２６】
図５の例の場合、ＩＤ番号が１および２のエントリについては、主記憶データがエントリへの送済みで、エントリ内の主記憶データのコピーは有効であるが、ＩＤ番号が３のエントリについては、主記憶データのエントリへの転送が完了していなく、エントリ内の主記憶データのコピーは、まだ有効でないことを示している。
【００２７】
ＬＲＵの情報は、第１の連想記憶装置１１０のエントリへのアクセスが最後に行われてからの経過時間、すなわち、当該エントリに格納されたデータが使用されていない時間の長さの順位を示している。エントリ内の主記憶データのコピーのリプレースは、アクセス制御部１００により、ＬＲＵの値が小さいものから優先して行われる。
【００２８】
図５において、ＩＤ番号が４のエントリは、未使用のエントリである。
【００２９】
尚、第２の連想記憶装置１２０の各エントリの構成も、図５に示すものと同様である。
【００３０】
命令記憶部１３０は、命令発行部２０から発行されたデータ参照命令の命令情報を記憶する。命令情報は、命令発行部２０がデータ参照命令に付与した命令のＩＤ番号や、データ参照命令が使用する第１の連想記憶装置１１０と第２の連想記憶装置１２０におけるエントリのＩＤ番号等の情報を包含している。
【００３１】
アクセス制御部１００は、命令発行部２０が発行したデータ参照命令の実行を制御する。アクセス制御部１００は、まず、データ参照命令が指定した主記憶アドレスが登録されているかどうか、第１の連想記憶装置１１０と第２の連想記憶装置１２０の両方に並列に確認する。
【００３２】
第２の連想記憶装置１２０でヒットした場合、アクセス制御部１００は、当該アドレスに対応する、第２の連想記憶装置１２０のエントリにアクセスする。
【００３３】
第２の連想記憶装置１２０でミスヒットし、第１の連想記憶装置１１０でヒットした場合、アクセス制御部１００は、当該アドレスに対応する、第１の連想記憶装置１１０のエントリにアクセスする。
【００３４】
第１の連想記憶装置１１０と第２の連想記憶装置１２０の両方でミスヒットした場合、アクセス制御部１００は、第１の連想記憶装置１１０と第２の連想記憶装置１２０の両方に、当該アドレスのデータを格納するためのエントリを確保する。アクセス制御部１００は、確保した第１の連想記憶装置１１０におけるエントリのＩＤ番号の情報を付けて、主記憶装置３０へアクセスリクエストを送信する。アクセス制御部１００は、第２の連想記憶装置１２０で確保したエントリのＩＤ番号を、第１の連想記憶装置１１０で確保したエントリのＩＤ番号に紐づけて記憶する。
【００３５】
アクセス制御部１００は、主記憶装置３０からのリプライデータに付与された第１の連想記憶装置１１０におけるエントリのＩＤ番号と、当該ＩＤ番号に紐づけられた第２の連想記憶装置１２０におけるエントリのＩＤ番号で特定される、第１の連想記憶装置１１０と第２の連想記憶装置１２０におけるエントリに、リプライデータを格納する。
【００３６】
アクセス制御部１００は、第２の連想記憶装置１２０においてリプレースが発生した場合、第１の連想記憶装置１１０において未使用のエントリがあるか確認し、未使用のエントリがある場合は、リプレースで第２の連想記憶装置１２０から追い出されたデータを、第１の連想記憶装置１１０における未使用のエントリに格納する。
【００３７】
アクセス制御部１００は、主記憶装置３０における何れかのアドレスのデータのコピーが、第１の連想記憶装置１１０と第２の連想記憶装置１２０の両方に存在する場合、第１の連想記憶装置１１０における、当該アドレスの主記憶データのコピーを格納したエントリを未使用状態に設定する。
【００３８】
本実施形態において、命令発行部３０から、データ参照命令ＲｅｑＡ１乃至Ａ３、ＲｅｑＢ１乃至Ｂ３、ＲｅｑＣ１乃至Ｃ３が発行されたときのアクセス制御部１００の動作を、図６におけるアクセス制御部１００の動作例３００に示す。第１の連想記憶装置１１０は、第１の連想記憶装置１１０へのアドレスのマッピング２０２で示す４ｗａｙフルアソシアティブ形式で主記憶データのコピーを記憶し、第２の連想記憶装置１２０は、第２の連想記憶装置１２０へのアドレスのマッピング２０１で示す２ｗａｙセットソシアティブ形式で主記憶データのコピーを記憶する。また、ＲｅｑＡ１乃至Ａ３、ＲｅｑＢ１乃至Ｂ３、ＲｅｑＣ１乃至Ｃ３のアクセスアドレスは、いずれも、第２の連想記憶装置１２０におけるエントリ１−１、あるいは、エントリ１−２にマッピングされるアドレスである。
【００３９】
アクセス制御部１００は、命令発行部２０からＲｅｑＡ１を受信すると、第１の連想記憶１１０のエントリ１、第２の連想記憶装置１２０のエントリ１−１を確保して、リクエストにエントリ番号１をＩＤとして付与し主記憶装置３０にアクセスする。アクセス制御部１００は、エントリ１−１をエントリ１と紐付けて記憶する（ステップ１）。
【００４０】
アクセス制御部１００は、命令発行部２０からＲｅｑＢ１を受信すると、第１の連想記憶１１０のエントリ２、第２の連想記憶装置１２０のエントリ１−２を確保して、リクエストにエントリ番号２をＩＤとして付与し主記憶装置３０にアクセスする。アクセス制御部１００は、エントリ１−２をエントリ２と紐付けて記憶する（ステップ２）。
【００４１】
アクセス制御部１００は、命令発行部２０からＲｅｑＣ１を受信すると、第１の連想記憶１１０のエントリ３を確保、第２の連想記憶装置１２０のエントリ１−１のＲｅｑＡのアドレスをリプレースして、リクエストにエントリ番号３をＩＤとして付与し主記憶装置３０にアクセスする。アクセス制御部１００は、エントリ１−１をエントリ３と紐付けて記憶しエントリ１と紐づけてある１−１を消去する。（ステップ３）。
【００４２】
アクセス制御部１００は、命令発行部２０からＲｅｑＡ２を受信すると、第１の連想記憶１１０のエントリ１にヒット、ステータスは転送中であるので、命令情報をエントリ１と紐付けて命令記憶部１３０に記憶する（ステップ４）。
【００４３】
アクセス制御部１００は、命令発行部２０からＲｅｑＢ２を受信すると、第１の連想記憶１１０のエントリ２にヒット、ステータスは転送中であるので、命令情報をエントリ２と紐付けて命令記憶部１３０に記憶する（ステップ５）。
【００４４】
アクセス制御部１００は、命令発行部２０からＲｅｑＣ２を受信すると、第１の連想記憶１１０のエントリ３にヒット、ステータスは転送中であるので、命令情報をエントリ３と紐付けて命令記憶部１３０に記憶する（ステップ６）。
【００４５】
アクセス制御部１００は、主記憶装置３０からＲｅｑＡ１のリプライを受信すると、リプライに付与されているエントリ１に紐付けられている第２の連想記憶装置１２０のエントリはないため、第１の連想記憶１１０のエントリ１のみにリプライデータを書き込む。アクセス制御部１００は、エントリ１で紐付けられている、ＲｅｑＡ１、ＲｅｑＡ２を命令記憶部１３０から読み出し、第１の連想記憶１１０のエントリ１のリプライデータとともに、命令発行部２０へＲｅｑＡ１、ＲａｑＡ２のリプライデータを送信する（ステップ７）。
【００４６】
アクセス制御部１００は、主記憶装置３０からＲｅｑＢ１のリプライを受信すると、リプライに付与されているエントリ２に紐付けられている第２の連想記憶装置１２０のエントリは１−２なので、第１の連想記憶１１０のエントリ２と連想記憶装置１２０のエントリ１−２にリプライデータを書き込む。アクセス制御部１００は、エントリ２で紐付けられている、ＲｅｑＢ１、ＲｅｑＢ２を命令記憶部１３０から読み出し、第１の連想記憶１１０のエントリ２のリプライデータとともに、命令発行部２０へＲｅｑＢ１、ＲｅｑＢ２のリプライデータを送信する。アクセス制御部１００は、第１の連想記憶１１０と第２の連想記憶装置１２０に同じアドレスのエントリが存在するため、第１の連想記憶１１０のエントリ２を未使用に設定する（ステップ８）。
【００４７】
アクセス制御部１００は、主記憶装置３０からＲｅｑＣ１のリプライを受信すると、リプライに付与されているエントリ３に紐付けられている第２の連想記憶装置１２０のエントリは１−１なので、第１の連想記憶１１０のエントリ３と連想記憶装置１２０のエントリ１−１にリプライデータを書き込む。アクセス制御部１００は、エントリ３で紐付けられている、ＲｅｑＣ１、ＲｅｑＣ２を命令記憶部１３０から読み出し、第１の連想記憶１１０のエントリ３のリプライデータとともに、命令発行部２０へＲｅｑＣ１、ＲｅｑＣ２のリプライデータを送信する。アクセス制御部１００は、第１の連想記憶１１０と第２の連想記憶装置１２０に同じアドレスのエントリが存在するため、第１の連想記憶１１０のエントリ３を未使用に設定する（ステップ９）。
【００４８】
アクセス制御部１００は、命令発行部２０からＲｅｑＡ３を受信すると、第１の連想記憶１１０のエントリ１にヒットし、エントリ１にアクセスし、命令発行部２０へリプライデータを送信する（ステップ１０）。
【００４９】
アクセス制御部１００は、命令発行部２０からＲｅｑＢ３を受信すると、第１の連想記憶１２０のエントリ１−２にヒットし、エントリ１−２にアクセスし、命令発行部２０へリプライデータを送信する（ステップ１１）。
【００５０】
アクセス制御部１００は、命令発行部２０からＲｅｑＣ３を受信すると、第１の連想記憶１２０のエントリ１−１にヒットし、エントリ１−１にアクセスし、命令発行部２０へリプライデータを送信する（ステップ１２）。
【００５１】
以降、ステップ１０からステップ１２が繰り返される。
【００５２】
次に図３、図４のフローチャートを参照して、本実施形態の動作について詳細に説明する。
【００５３】
アクセス制御部１００は、命令発行部２０からデータ参照命令を受信する（Ｓ１０１）。アクセス制御部１００は、第１の連想記憶装置１１０と第２の連想記憶装置１２０を並列に参照し、受信したデータ参照命令のアクセスアドレスでヒットするエントリがあるか確認する（Ｓ１０２）。
【００５４】
第２の連想記憶装置１２０でヒットした場合（Ｓ１０３でＹｅｓ）、あるいは、第２の連想記憶装置１２０でヒットせず（Ｓ１０３でＮｏ）、第１の連想記憶装置１１０でヒットした（Ｓ１０４でＹｅｓ）場合、アクセス制御部１００は、ヒットしたエントリのデータ転送ステータスを確認する（Ｓ１０７）。
【００５５】
データ転送ステータスが“転送中”の場合（Ｓ１０８でＹｅｓ）、アクセス制御部１００は、命令記憶部１３０に、エントリのＩＤを付加してデータ参照命令の命令情報を登録し（Ｓ１１１）、処理はＳ１２１へ進む。データ転送ステータスが“転送中”でない場合（Ｓ１０８でＮｏ）、処理はＳ１２５へ進む。
【００５６】
第２の連想記憶装置１２０でヒットせず（Ｓ１０３でＮｏ）、かつ、第１の連想記憶装置１１０でヒットしない（Ｓ１０４でＮｏ）の場合、アクセス制御部１００は、第１の連想記憶装置１１０に未使用エントリがあるか確認する（Ｓ１０５）。
【００５７】
未使用エントリが有る場合（Ｓ１０６でＹｅｓ）、処理はＳ１１０へ進む。未使用エントリが無い場合（Ｓ１０６でＮｏ）、アクセス制御部１００は、第１の連想記憶装置１１０のＬＲＵの情報を参照し、ＬＲＵの値が最も小さいエントリの情報をクリアし、未使用状態に設定する（Ｓ１０９）。
【００５８】
アクセス制御部１００は、第１の連想記憶装置１１０の未使用エントリに、データ参照命令のアクセスアドレスを登録し、データ転送ステータスを転送中に設定する（Ｓ１１０）。アクセス制御部１００は、第２の連想記憶装置１２０に未使用エントリがあるか確認
する（Ｓ１１２）。
【００５９】
未使用エントリが無い場合（Ｓ１１３でＮｏ）、アクセス制御部１００は、第２の連想記憶装置１２０の使用エントリの１つをリプレースする（Ｓ１１５）。アクセス制御部１００は、第１の連想記憶装置１１０に未使用エントリがあるか確認する（Ｓ１１６）。未使用エントリが無い場合（Ｓ１１７でＮｏ）、処理はＳ１１９へ進む。未使用エントリが有る場合（Ｓ１１７でＹｅｓ）、アクセス制御部１００は、リプレースにより第２の連想記憶装置１２０から追い出されたデータを、第１の連想記憶装置１１０の未使用エントリに格納し（Ｓ１１８）、処理はＳ１１９へ進む。
【００６０】
Ｓ１１２の確認において、未使用エントリがある場合（Ｓ１１３でＹｅｓ）、アクセス制御部１００は、第２の連想記憶装置１２０の未使用エントリにデータ参照命令のアクセスアドレスを登録する（Ｓ１１４）。アクセス制御部１００は、命令記憶部１３０に、エントリのＩＤを付加してデータ参照命令の命令情報を登録する（Ｓ１１９）。
【００６１】
アクセス制御部１００は、第１の連想記憶装置１１０における対応するエントリのＩＤを付与して、データ参照命令を主記憶装置３０に送信し、第２の連想記憶装置１２０で確保したエントリのＩＤを、第１の連想記憶装置１１０で確保したエントリのＩＤに紐づけて記憶する（Ｓ１２０）。
【００６２】
アクセス制御部１００は、主記憶装置３０からリプライデータを受信し、リプライデータに付与された、第１の連想記憶装置１１０におけるエントリのＩＤで特定されるエントリのデータ転送ステータスを転送済みにして、当該エントリにリプライデータを書き込む（Ｓ１２１）。
【００６３】
第２の連想記憶装置１２０のエントリが確保されている場合（Ｓ１２２でＹｅｓ）、アクセス制御部１００は、第２の連想記憶装置１２０に、主記憶装置３０からのリプライデータを書き込む（Ｓ１２３）。第２の連想記憶装置１２０のエントリが確保されていない場合（Ｓ１２２でＮｏ）、処理はＳ１２４へ進む。
【００６４】
アクセス制御部１００は、命令記憶部１３０から命令情報を読み出す（Ｓ１２４）。アクセス制御部１００は第１の連想記憶装置１１０からデータを読み出して、命令発行部３０へ送信し、当該命令情報を命令記憶部１０３から削除する（Ｓ１２５）。
【００６５】
命令記憶部１０３に、同じエントリのＩＤに関する命令情報が有る場合（Ｓ１２６でＹｅｓ）、処理はＳ１２４へ進む。命令記憶部１０３に、同じエントリのＩＤに関する命令情報が無い場合（Ｓ１２６でＮｏ）、処理はＳ１２６へ進む。
【００６６】
アクセス制御部１００は、第１の連想記憶装置１１０と、第２の連想記憶装置１２０の中に、同一のアドレスに関するデータが存在するか確認する（Ｓ１２７）。同一のアドレスに関するデータが存在しない場合（Ｓ１２８でＮｏ）、全体の処理は終了する、同一のアドレスに関するデータが存在する場合（Ｓ１２８でＹｅｓ）、アクセス制御部１００は、第１の連想記憶装置１１０において、当該アドレスに関するデータを格納したエントリを未使用に設定し、（Ｓ１２９）、全体の処理は終了する。
【００６７】
本実施形態には、ハードウェアの増加をそれほど伴わずに、スラッシングの発生を抑止し、キャッシュメモリのヒット率を向上させることで、システム性能を向上させることができる効果がある。その理由は、メモリアクセス装置１０が、エントリ数は小さいが連想度が大きい第１の連想記憶装置１１０と、エントリ数は大きいが連想度が小さい第２の連想記憶装置１２０を備え、アクセス制御部１００が、データ参照命令の処理時に、これら２つの連想記憶装置を、スラッシングの発生の有無にかかわらず、並列に使用するからである。
【００６８】
従来の一般的な中央処理装置においては、本実施形態における第２の連想記憶装置１２０が一次キャッシュメモリに相当する。一次キャッシュメモリとしての効果を出すためには、主記憶データを記憶するための、ある程度のエントリ数を確保する必要があるが、その場合、フルアソシアティブ方式のような連想度の高い方式は、ハードウェアが大規模になるため、採用することは困難である。
【００６９】
そこで、ハードウェア規模を抑えられるセットアソシアティブ方式を採用することとなるが、この方式は連想度が小さいため、例えば、キャッシュ内の同じエントリ群にマッピングされる主記憶アドレスのアクセスが連続した場合、スラッシングが多発して、性能が低下することになる。
【００７０】
上述の課題を解決するため、本実施形態のメモリアクセス装置は、従来の一次キャッシュメモリの他に、エントリ数は小さいものの、連想度が大きいフルアソシアティブ方式のキャッシュメモリを備えて、従来の一次キャッシュメモリと並列動作させている。
【００７１】
従来の一次キャッシュメモリでは既にリプレースされて消えている主記憶データが、連想度が大きいフルアソシアティブ方式のキャッシュメモリの方には、まだ残っているケースがあるため、キャッシュヒット率が増加して、主記憶へのアクセスを減少させ、システム性能が向上する。また、上述のフルアソシアティブ方式のキャッシュメモリのエントリ数は小さいため、追加するハードウェアは小規模に抑えることが可能である。
【００７２】
また、従来から、一次キャッシュから追い出されたデータを格納するためのデータを格納するために、フルアソシアティブ方式のビクティムキャッシュを備えたシステムも存在する。しかしながら、このビクティムキャッシュは、本実施形態のように一次キャッシュと並列に実装されてはおらず、一次キャッシュと階層的な位置関係で実装されている。すなわち、一次キャッシュがミスヒットした後、ビクティムキャッシュへのアクセスが発生することになるため、一次キャッシュミスヒット時のペナルティが発生することとなり、本実施形態と比較して、システム性能を向上させる効果は小さい。
【００７３】
さらに、本実施形態では、メモリアクセス制御装置１０が、命令記憶部１３０を備え、命令発行部２０から発行されたデータ参照命令を一時的に記憶する。データ参照命令で指定された主記憶アドレスが、第１の連想記憶装置１１０と第２の連想記憶装置１２０の両方でミスヒットした場合、主記憶アクセスが発生し主記憶からのリプライデータ待ちとなる。本実施形態では、リプライデータ待ちのデータ参照命令は、命令記憶部１３０に記憶されているため、アクセス制御部１００は、後続命令を命令発行部２０から受信して処理を継続させることで、システム性能の低下を回避することが可能となる。
【００７４】
さらにまた、本実施形態では、第２の連想記憶装置においてリプレースが発生した場合、第１の連想記憶装置１１０において未使用のエントリがある場合は、リプレースで第２の連想記憶装置から追い出されたデータを、アクセス制御部１００が、第１の連想記憶装置１１０にコピーすることで、キャッシュヒット率を向上させる効果が期待できる。
【００７５】
また、アクセス制御部１００は、主記憶の何れかのアドレスのデータの写しが、第１の連想記憶装置１１０と第２の連想記憶装置１２０の両方に存在する場合、第１の連想記憶装置１１０における、当該アドレスのデータを格納したエントリを未使用状態に設定する。これにより、両方の連想記憶装置が同じ主記憶データを重複して記憶することを回避し、エントリを有効使用することで、キャッシュヒット率を向上させる効果が期待できる。
＜第２の実施形態＞
次に、本願発明の第２の実施形態について図面を参照して詳細に説明する。
【００７６】
図７は本実施形態のメモリアクセス制御装置の構成を示すブロック図である。
【００７７】
本実施形態のメモリアクセス制御装置１０は、アクセス制御部１００と、第１の連想記憶装置１１０と、第２の連想記憶装置１２０とを包含している。
【００７８】
第１の連想記憶装置１１０と、第２の連想記憶装置１２０は、主記憶装置３０に記憶されたデータの写しを主記憶のアドレスと対応付けて記憶し、入力されたアドレスと一致するアドレスに対応付けられたデータを出力する。
【００７９】
そして、一つのデータを記憶するエントリの数は、第１の連想記憶装置１１０の方が第２の連想記憶装置１２０より小さく、かつ、一つのデータを記憶する可能性のあるエントリの数である連想度は、第１の連想記憶装置１１０の方が第２の連想記憶装置１２０より大きい。
【００８０】
本実施形態は、第一の実施形態と同様に、ハードウェアの増加をそれほど伴わずに、スラッシングの発生を抑止し、キャッシュメモリのヒット率を向上させることで、システム性能を向上させることができる効果がある。その理由は、メモリアクセス装置１０が、エントリ数は小さいが連想度が大きい第１の連想記憶装置１１０と、エントリ数は大きいが連想度が小さい第２の連想記憶装置１２０を備え、アクセス制御部１００が、データ参照命令の処理時に、これら２つの連想記憶装置を、スラッシングの発生の有無にかかわらず、並列に使用するからである。
【００８１】
以上、実施形態を参照して本願発明を説明したが、本願発明は上記実施形態に限定されたものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【符号の説明】
【００８２】
１    メモリアクセス制御システム
１０    メモリアクセス制御装置
１００    アクセス制御部
１１０    第１の連想記憶装置
１１１    アドレス記憶部
１１２    データ記憶部
１２０    第２の連想記憶装置
１２１    アドレス記憶部
１２２    データ記憶部
１３０    命令記憶部
２０    命令発行部
３０    主記憶装置
２００    主記憶アドレス空間
２０１    第２の連想記憶装置１２０へのアドレスのマッピング
２０２    第１の連想記憶装置１１０へのアドレスのマッピング
２０３    第１の連想記憶装置１１０へのアドレスのマッピング
３００    アクセス制御部１００の動作例
【図１】
2014067250.tif 000003
【図２】
2014067250.tif 000004
【図３】
2014067250.tif 000005
【図４】
2014067250.tif 000006
【図５】
2014067250.tif 000007
【図６】
2014067250.tif 000008
【図７】
2014067250.tif 000009