JP5245349B2 - 登録先ウェイの固定方法、プロセッサ、及び情報処理装置 - Google Patents

登録先ウェイの固定方法、プロセッサ、及び情報処理装置 Download PDF

Info

Publication number
JP5245349B2
JP5245349B2 JP2007269841A JP2007269841A JP5245349B2 JP 5245349 B2 JP5245349 B2 JP 5245349B2 JP 2007269841 A JP2007269841 A JP 2007269841A JP 2007269841 A JP2007269841 A JP 2007269841A JP 5245349 B2 JP5245349 B2 JP 5245349B2
Authority
JP
Japan
Prior art keywords
data group
way
ways
data
register
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.)
Expired - Fee Related
Application number
JP2007269841A
Other languages
English (en)
Other versions
JP2009098933A (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.)
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 JP2007269841A priority Critical patent/JP5245349B2/ja
Priority to US12/230,930 priority patent/US8423719B2/en
Publication of JP2009098933A publication Critical patent/JP2009098933A/ja
Application granted granted Critical
Publication of JP5245349B2 publication Critical patent/JP5245349B2/ja
Expired - Fee Related 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/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/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/123Replacement control using replacement algorithms with age lists, e.g. queue, most recently used [MRU] list or least recently used [LRU] list

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)

Description

本発明は、登録先ウェイの固定方法、プロセッサ、及び情報処理装置に関する。
プロセッサの高速化に比し、主記憶装置に使用するダイナミックRAM(Dynamic Random Access Memory)は、大容量化は進んだものの、高速化はあまり進んでいない。プロセッサと主記憶装置の速度差を埋めるものとして、キャッシュメモリが使用されてきた。キャッシュメモリは、データの時間的・空間的局所性を利用したものであり、そのリプレースアルゴリズムは、時間的局所性に基づいている。LRU(Least Recently Used)も、時間的局所性に基づいたリプレースアルゴリズムの一つである。
キャッシュメモリが有効に働かない状況が知られている。一つ目の例は、プロセッサが、映像データ、音声データのようなストリームデータを再生する場合である。ストリームデータは再利用性が低く、時間的局所性が小さいので、キャッシュメモリが有効に働かない。二つ目の例は、HPC(High Performance Computing)分野で、プログラムが大きなデータセットを扱う場合である。プログラムが大きなデータセットを扱う場合、キャッシュメモリに記憶された種々のデータが、キャッシュメモリの容量の制限のために、大きなデータセットによって書き換えられてしまう。そのため、再利用性の高いデータがリプレースされてしまい、次に使用しようとするときには、キャッシュメモリ中に存在しなくなるいという状況が生じる。
図1は、HPC分野で利用されるプログラムの例を示している。図1において、配列A、Bが、キャッシュメモリの1ウェイに登録可能な容量のデータセットであり、配列Cが大データセットであったとする。この場合、ループAにより配列A、Bがキャッシングされた後、ループBを処理している間に、大データセットである配列Cにより配列A、Bの大部分はキャッシュアウトされてしまう。キャッシュメモリが、配列A、Bのデータを保持し続けることができれば、配列A、Bのデータを主記憶装置から転送しなくても済む。このとき、主記憶装置から転送されるデータは配列Cのデータだけになるため、キャッシュヒット率が向上し、プロセッサの処理性能が向上する。また、主記憶装置にアクセスする回数が減るために、低消費電力化を実現できる。
特開2000−122968号公報(特許文献1参照)には、ウェイを単位として、特定の入出力装置に係るデータのみを保持することを特徴とする入出力キャッシュメモリの発明が記載されている。この特許文献1においては、ある入出力装置が何れのウェイを使用するかを明示的に指示するため、登録先ウェイを固定化する場合には、ウェイ番号を直接指定しなければならないという問題があった。
特開2002−140234号公報(特許文献2参照)には、キャッシュ装置の発明が記載されている。このキャッシュ装置は、プロセッサと主記憶の間に位置し、該主記憶中のデータ群単位で主記憶のデータを一時的に登録するものである。キャッシュメモリと、定義設定手段と、グループ判定手段と、登録ポリシー指定手段と、読み出す手段と、リプレース決定手段と、登録手段とを備える。
キャッシュメモリは、保持された各データ群についての制御情報をそのデータ群と対応付けて登録する。定義設定手段は、管理すべきデータ群の属性の定義を設定する。グループ判定手段は、該プロセッサが該主記憶からデータ群をフェッチする際に発行した命令の情報から、該設定された定義に従って、フェッチされるべきデータ群の属性を判定する。登録ポリシー指定手段は、データ群の属性に従って、該キャッシュメモリへの登録の仕方を定めた登録ポリシーを設定する。読み出す手段は、該プロセッサからのリードの対象とするデータ群が該キャッシュメモリに登録されているかどうか判定し、ミスヒットの場合には、そのデータ群を該主記憶から読み出す。リプレース決定手段は、該データ群の属性と該キャッシュメモリの制御情報内の属性情報と該登録ポリシーとに従がって、該キャッシュメモリへのリプレースを決定する。登録手段は、リプレース決定手段により登録されるべきと決定されたデータ群を該キャッシュメモリに登録するとともに、その属性を対応する制御情報として登録する。
特許文献2図5を参照すると、この関連発明では、コマンドにグループ識別子を定義している。このグループ識別子を用いることによって、リプレースラインが決定される。また、特許文献2図7を参照すると、登録ポリシーの登録パターンが一つのみになる例が説明されている。この特許文献2においては、登録ポリシーを変更した際、逸脱が生じてしまうため、逸脱時においては、メモリバンクと、グループ集合との対応関係が乱れるという問題があった。
特開2004−110240号公報(特許文献3参照)には、キャッシュメモリ装置の発明が記載されている。このキャッシュメモリ装置において、キャッシュメモリは、プロセッサの指示に基づいてメインメモリからのデータを一時記憶するデータメモリ領域と、該一時記憶したデータのアドレスを記憶するタグメモリ領域とを持つ。キャッシュメモリは、プロセス情報管理テーブルを備える。プロセス情報管理テーブルは、プログラムの一連の実行を表すプロセス毎に識別番号とキャッシュ常駐優先を含む属性を付与してテーブルとして記憶する。キャッシュメモリ装置は、上記タグメモリ領域内に上記プロセス対応の識別番号を指定する欄を設けて、該プロセスの実行時には上記識別番号に基づく指定属性の処理に従ってキャッシュを使用する。
この特許文献3においては、プロセス単位にキャッシュを使用するため、一つのプロセスの中で、大データセットを扱う処理と小データセットを扱う処理とが混在した場合には、大データセットによって小データセットがキャッシュアウトされてしまうという問題があった。
特開2000−122968号公報 特開2002−140234号公報 特開2004−110240号公報
本発明の課題は、転送データをデータグループごとにグループ分けすると共に、nウェイセットアソシアティブ方式のキャッシュメモリに、同一のデータグループに属する転送データを登録するときに、登録先のウェイを固定することである。本発明の他の課題は、ウェイ番号を直接指示することなく、登録先のウェイを固定することである。
本発明の一つのアスペクトによる登録先ウェイの固定方法は、〔A〕定めることと、〔B〕割り当てることと、〔C〕登録することとを具備する。〔A〕定めることにおいては、プロセッサコアが所定の命令を実行したときに転送される転送データをグループ分けし、一つ目の命令を実行したときに転送される一つ目の転送データと、二つ目の命令を実行したときに転送される二つ目の転送データとが同じグループに属する場合には、一つ目の転送データと二つ目の転送データに対して同一のデータグループを定める。〔B〕割り当てることにおいては、nを複数とし、n個のウェイを有するnウェイセットアソシアティブ方式のキャッシュメモリにおける最適なウェイの一つに、一つ目のデータグループを割り当てる。〔C〕登録することにおいては、一つ目のデータグループと同じデータグループに属する転送データをキャッシュメモリに登録するときには、一つ目のデータグループが割り当てられた上記最適なウェイの一つに登録する。
本発明の別のアスペクトによるプロセッサは、所定の命令を実行するプロセッサコアと、プロセッサコアが所定の命令を実行したときに転送される転送データを一時的に保持するキャッシュメモリとを具備する。プロセッサコアは、一つ目の命令を実行したときに転送される一つ目の転送データと、二つ目の命令を実行したときに転送される二つ目の転送データとが同じグループに属する場合には、一つ目の転送データと二つ目の転送データに対して同一のデータグループを定める。キャッシュメモリは、nを複数とし、n個のウェイを有するnウェイセットアソシアティブ方式であり、最適なウェイの一つに、一つ目のデータグループを割り当て、一つ目のデータグループと同じデータグループに属する転送データを登録するときには、一つ目のデータグループが割り当てられた上記最適なウェイの一つに登録する。
本発明のさらに別のアスペクトによる情報処理装置は、前段落に記載したプロセッサを具備する。
本発明によれば、転送データをデータグループごとにグループ分けすると共に、nウェイセットアソシアティブ方式のキャッシュメモリに、同一のデータグループに属する転送データを登録するときに、登録先のウェイを固定することができる。また、ウェイ番号を直接指示することなく、登録先のウェイを固定することができる。
本発明は、特定のデータをnウェイセットアソシアティブ方式のキャッシュメモリに残しておきたい旨の指示を、プログラムから行うことを可能にしている。以下、説明の便宜上、n=4とし、4ウェイセットアソシアティブ方式のキャッシュメモリの場合における実施例について詳述する。
プロセッサコアが主記憶装置にアクセスするための命令として、例えば、ロード命令及びストア命令が用意される。図2は、実施例1におけるロード命令及びストア命令の命令仕様を示す図である。図示するように、命令仕様100は、オペコードと、データグループ番号と、アドレス/データ部とを定義している。オペコードは、ロード命令又はストア命令に割り当てられたコードを格納する欄である。データグループ番号は、ロード命令又はストア命令によって転送されるデータのグループ番号を格納する欄である。アドレス/データ部は、データの保存場所又はデータを格納する欄である。
データグループ番号は、セットアソシアティブ方式のキャッシュメモリにおいて、同一のウェイにキャッシングする同一のグループに属する一のデータと他のデータについて、同一の番号が与えられるものである。データグループ番号は、所定のアルリゴリズムに従ってソースコードをコンパイルするコンパイラが、大データセットを検出したときなどに、特定のデータに関して与えることができる。また、プログラマーが、プログラムのソースコードに記述することによって与えることができる。なお、不要な場合には、付与しないとすることができる。図2に示すように、実施例1では、データグループ番号が命令の一部として定義されている。プロセッサコアが、データグループ番号を有するロード命令又はストア命令を実行すると、キャッシュメモリに対して、データグループ番号が指示される。
図3は、実行ファイルの命令列を例示する図である。図2の命令仕様にしたがって、図3の命令101〜104は、ロード命令又はストア命令のオペコードと、データグループ番号と、アドレス又はデータとを有している。命令101、102のデータグループ番号は0なので、プロセッサコアがこれらの命令101、102を実行すると、いずれの場合も、キャッシュメモリは、0のデータグループ番号を指示される。キャッシュメモリは、命令101、102によって転送されるデータを同一のウェイにキャッシングしようとする。また、命令103、104のデータグループ番号は1なので、プロセッサコアがこれらの命令103、104を実行すると、いずれの場合も、キャッシュメモリは、1のデータグループ番号を指示される。キャッシュメモリは、命令103、104によって転送されるデータを同一のウェイにキャッシングしようとする。
図4は、実施例1における情報処理装置のブロック説明図である。図示するように、情報処理装置106は、プロセッサ107を具備している。プロセッサ107は、主記憶装置108からデータを読み出し、また、主記憶装置108へデータを書き込む。図5は、実施例1におけるプロセッサ107のブロック説明図である。図示するように、プロセッサ107は、命令を実行するプロセッサコア109と、転送データを一時的に保持するキャッシュメモリ110とを有している。実施例1のキャッシュメモリ110は、上述したとおり、4ウェイセットアソシアティブ方式である。
図6は、キャッシュメモリ110のブロック説明図である。図6において、キャッシュメモリ110は、外部メモリ・アドレスレジスタ10と、デコーダ14と、アドレスアレイ部20と、データアレイ部21と、比較器22〜25と、セレクタ26と、受信レジスタ111と、リプレース論理回路112とを有している。外部メモリ・アドレスレジスタ10は、タグ11と、セット番号12と、オフセット13とを含む外部メモリ・アドレスを保持する。デコーダ14は、セット番号をデコードして、一つのセット行を求める。アドレスアレイ部20と、データアレイ部21とは、4つのウェイを有している。比較器22〜25は、タグと、セット行のアドレスとを比較する。セレクタ26は、比較器22〜25のいずれかがオンのときに、その比較器に対応するウェイを選択する。受信レジスタ111は、データグループ番号を保持する。リプレース論理回路112は、キャッシュミスヒットが生じたときに、リプレースするウェイを選択するウェイ選択信号を出力する。
図7は、キャッシュミスヒットが生じた場合におけるキャッシュメモリ110の動作を説明する図である。キャッシュミスヒットが生じると、リプレース論理回路112が、4つのウェイの中から最もリプレースするのに相応しいウェイを選択する。ウェイ0を選択する場合、リプレース論理回路112は、”1000”のウェイ選択信号を出力する。このとき、デコードされたセット行のウェイ0がリプレースされる。アドレスアレイ部のウェイ0は、タグの内容にリプレースされ、データアレイ部のウェイ0は、転送されるデータにリプレースされる。また、ウェイ1を選択する場合、リプレース論理回路112は、”0100”のウェイ選択信号を出力する。このとき、セット行のウェイ1がリプレースされる。アドレスアレイ部のウェイ1は、タグの内容にリプレースされ、データアレイ部のウェイ1は、転送されるデータにリプレースされる。ウェイ2を選択する場合、リプレース論理回路112は、”0010”のウェイ選択信号を出力し、ウェイ3を選択する場合、リプレース論理回路112は、”0001”のウェイ選択信号を出力する。一方、キャッシュミスヒットが生じてもリプレースを行わないこととする場合には、リプレース論理回路112は、”0000”のウェイ選択信号を出力する。
図8は、リプレース論理回路112のブロック説明図である。図8において、リプレース論理回路112は、設定レジスタ120と、固定化レジスタ部122と、記憶済み確認部124と、切替部126と、リプレースアルゴリズム部128とを有している。設定レジスタ120は、プロセッサコア109がロード命令又はストア命令を実行したときに、データグループ番号の指示があった場合に、そのデータグループ番号を保持する。固定化レジスタ122部は、ウェイに対応付けられた少なくとも一つの固定化レジスタを有する。記憶済み確認部124は、設定レジスタ120が保持するデータグループ番号と、固定化レジスタが記憶するデータグループ番号とが一致するか否かを確認する。リプレースアルゴリズム部128は、所定のリプレースアルゴリズムに従っていずれかのウェイを選択する。切替部124は、記憶済み確認部124が出力する記憶済み信号に応じて、記憶済み確認部124の出力と、リプレースアルゴリズム部128の出力とを切り替える。
図9は、固定化レジスタ部の構成例を示すブロック図である。図9において、固定化レジスタ部112aは、4つの固定化レジスタR0〜R3を有している。固定化レジスタR0〜R3は、データグループ番号を記憶することができる。バリッドメモリV0〜V3は、対応する固定化レジスタR0〜R3が、データグループ番号を記憶しているか否かを示すバリッドデータを保持する。固定化レジスタR0〜R3及びバリッドメモリV0〜V3は、キャッシュメモリのウェイ0〜3に、それぞれ対応づけられている。固定化レジスタ部112aは、1つのウェイに対して、それぞれ1つのデータグループを保持する場合の構成を有している。
図10は、記憶済み確認部の構成例を示すブロック図である。図10において、記憶済み確認部124aは、比較器130〜133と、オア回路134とを有している。比較器130は、設定レジスタ120が保持するデータグループ番号と、固定化レジスタR0が記憶するデータグループ番号とを比較して、一致する場合には、オンの一致信号C0を出力する。比較器131は、設定レジスタ120が保持するデータグループ番号と、固定化レジスタR1が記憶するデータグループ番号とを比較して、一致する場合には、オンの一致信号C1を出力する。比較器132は、設定レジスタ120が保持するデータグループ番号と、固定化レジスタR2が記憶するデータグループ番号とを比較して、一致する場合には、オンの一致信号C2を出力する。比較器133は、設定レジスタ120が保持するデータグループ番号と、固定化レジスタR3が記憶するデータグループ番号とを比較して、一致する場合には、オンの一致信号C3を出力する。オア回路134は、一致信号C0〜C3のいずれかがオンのときに、オンの記憶済み信号を出力し、一致信号C0〜C3の全てがオフのときに、オフの記憶済み信号を出力する。
図11は、切替部126の構成例を示すブロック図である。図11において、切替部126は、4つのセレクタ135〜138を用いて、一致信号C0〜C3と、リプレースアルゴリズム部128の出力とを切り替えている。切替部126は、記憶済み確認信号がオンのとき、一致信号C0〜C3をウェイ選択信号として出力する。記憶済み確認信号がオフのとき、切替部126は、リプレースアルゴリズム部128の出力信号をウェイ選択信号として出力する。
図12は、リプレースアルゴリズム部の構成例を示すブロック図である。図12において、リプレースアルゴリズム部128aは、除外部139を有している。除外部139は、バリッドメモリV0〜V3を参照して、バリッドデータが有効となっているバリッドメモリに対応するウェイを選択対象から除外する。例えば、バリッドメモリV0のバリッドデータのみが有効となっているとき、リプレースアルゴリズム部128aは、ウェイ0を選択対象から除外し、ウェイ1〜3を対象としてウェイの選択を行う。また、バリッドメモリV0〜V3のバリッドデータが全て有効となっているとき、リプレースアルゴリズム部128aは、ウェイ0〜3を選択対象から除外し、ウェイの選択を行わない。
図13は、リプレースアルゴリズム部128aの具体例を示すブロック図である。図13において、リプレースアルゴリズム部128aは、アクセス履歴設定部140と、アクセス履歴変更部135aと、選択信号出力部141と、制御線142とを有している。アクセス履歴設定部140は、LRUアルゴリズムに従ってセット及びリセットされる6つのフリップフロップ回路143〜148を有している。LRUを実現するためには幾つかの方式があるが、図13では、4つのウェイの各々に対して、2組ずつ、どちらのアクセスが古いかを示す情報を記憶し、最も古いアクセスのウェイに最も高いリプレース順位を与える。フリップフロップ回路143は、ウェイ0がウェイ1よりも古いときにセットされる。フリップフロップ回路144は、ウェイ0がウェイ2よりも古いときにセットされる。フリップフロップ回路145は、ウェイ0がウェイ3よりも古いときにセットされる。フリップフロップ回路146は、ウェイ1がウェイ2よりも古いときにセットされる。フリップフロップ回路147は、ウェイ1がウェイ3よりも古いときにセットされる。フリップフロップ回路148は、ウェイ2がウェイ3よりも古いときにセットされる。
図13において、アクセス履歴変更部135aは、バリッドメモリV0〜V3のバリッドデータを参照し、その内容に応じて、フリップフロップ回路143〜148から出力された信号を反転する。具体的には、バリッドメモリV1のバリッドデータが有効になっていたとき、ウェイ1には、最も新しいアクセスがあったこととなるようにアクセス履歴を変更する。例えば、フリップフロップ回路143の出力が、ウェイ1のアクセスはウェイ0のアクセスよりも古いことを示していた場合には、強制的にフリップフロップ回路143から出力された信号を反転し、ウェイ1のアクセスはウェイ0のアクセスよりも新しいという意味に置き換える。選択信号出力部141は、アクセス履歴変更部135aから出力される6ビットのデータに基づいて、最も古くアクセスされたウェイを選択する信号を出力する。制御線142は、バリッドメモリV0〜V3のバリッドデータが全て有効になっていたときに、いずれのウェイも選択しないことを通知する非選択信号を、アクセス履歴変更部135aから選択信号出力部141へ伝える。このとき、選択信号出力部141は、4つのウェイのいずれも選択しないように、強制的に”0000”を出力する。
図14は、ウェイがリプレースされたときの固定化レジスタ部122aの動作を説明する図である。図14において、記憶済み信号がオフの場合に、設定レジスタ120から固定化レジスタ部122aへ、データグループ番号が転送される。固定化レジスタ部122aでは、リプレース論理回路112aが出力するウェイ選択信号に基づいて、リプレースが行われたウェイに対応する固定化レジスタに、転送されたデータグループ番号を記憶する。このとき、対応するバリッドメモリのバリッドデータを無効から有効に書き換える。
図15は、図3に示した命令列が実行された後の固定化レジスタ部122aの状態を示す図である。ただし、図3に示した最初の命令101が実行される前は、キャッシングされたデータは無く、全ての固定化レジスタR0〜R3が空いていて、かつ、リプレースアルゴリズム部128aは、リプレース順位が高い順に、ウェイ1、ウェイ2、ウェイ3、ウェイ0を設定していたとする。
最初の命令101が実行されたとき、データグループ0はどの固定化レジスタR0〜R3にも記憶されていないため、リプレースアルゴリズム部128aにより、ウェイ1が選択されリプレースされる。このとき、固定化レジスタR1にデータグループ番号0が記憶され、バリッドメモリV1のバリッドデータが有効になる。次の命令102が実行されたとき、データグループ0は固定化レジスタR1に記憶されているため、一致信号C0〜C3により、ウェイ1が選択されリプレースされる。このとき、固定化レジスタR1への記憶は行われない。次の命令103が実行されたとき、データグループ1はどの固定化レジスタR0〜R3にも記憶されていないため、リプレースアルゴリズム部128aにより、ウェイ2が選択されリプレースされる。このとき、固定化レジスタR2にデータグループ番号1が記憶され、バリッドメモリV2のバリッドデータが有効になる。次の命令104が実行されたとき、データグループ1は固定化レジスタR2に記憶されているため、一致信号C0〜C3により、ウェイ2が選択されリプレースされる。このとき、固定化レジスタR2への記憶は行われない。
図16は、図15で説明したように図3に示した命令列が実行された後のアドレスアレイ部20の状態を示す図である。図示するように、同じデータグループ番号0を指示した命令101、102によって転送されたデータのアドレスが、ウェイ1に登録されている。また、同じデータグループ番号1を指示した命令103、104によって転送されたデータのアドレスが、ウェイ2に登録されている。なお、データアレイ部21でも同様に、同じデータグループ番号0を指示した命令101、102によって転送されたデータが、ウェイ1に登録され、同じデータグループ番号1を指示した命令103、104によって転送されたデータが、ウェイ2に登録されている。
図17は、更に後続する命令が実行された後のアドレスアレイ部20の状態を示す図である。図17において、データグループ1のデータは大データセットで再利用性が薄く、データグループ0のデータは小データセットで、再利用性が高いとする。図示するように、データグループ1の大データセットがウェイ2内でリプレースされ、ウェイ2を占有している。一方、データグループ0に属する再利用性の高いデータのアドレスは、データグループ1の大データセットによってリプレースされることなく、ウェイ1にキャッシングされたままとなっている。なお、データアレイ部21も同様の状態になっている。
図18及び19は、リプレース論理回路112が使用しているウェイ選択方法を説明する流れ図である。図18は、プロセッサコア109がロード命令又はストア命令を実行したときに、データグループ番号の指示があり、かつ、キャッシュメモリ110でキャッシュミスヒットが生じた場合に、そのデータグループ番号を記憶する動作を説明している。図18において、まず、ロード命令又はストア命令が実行されたときに、プログラムから指示されたデータグループ番号を参照する(OP10)。このデータグループ番号が、未だ固定化レジスタに記憶されていないデータグループ番号か否かを確認する(OP11)。既に記憶済みであった場合には(OP12:ノー)、データグループ番号を記憶しない。未記憶であった場合には(OP12:イエス)、空いている固定化レジスタがあるか否かを確認する(OP13)。空きが無い場合には(OP14:ノー)、データグループ番号を記憶しない。空きがある場合には(OP14:イエス)、空いている固定化レジスタのいずれかを選択する(OP15)。そして、選択した固定化レジスタに対応するウェイを、リプレースするウェイとして選択すると共に、選択した固定化レジスタにデータグループ番号を記憶する(OP16)。
図19は、プロセッサコア109がロード命令又はストア命令を実行したときに、データグループ番号の指示があり、かつ、キャッシュメモリ110でキャッシュミスヒットが生じた場合に、ウェイを選択する動作を説明している。図18に示す記憶が行われることによって、図19に示すウェイの選択が可能になる。図19において、まず、ロード命令又はストア命令が実行されたときに、プログラムから指示されたデータグループ番号を参照する(OP20)。このデータグループ番号が、いずれかの固定化レジスタに記憶されたデータグループ番号と一致するか否かを確認する(OP21)。一致しない場合には(OP22:ノー)、ウェイの選択を、他のリプレースアルゴリズムに委ねる。一致する場合には(OP22:イエス)、一致する固定化レジスタに対応するウェイを選択する(OP23)。
実施例1においては、ウェイに固定化できるデータグループ数は、4(n=4)グループを超えることができない。実施例2では、プログラムの都合でさらにグループ数を増やしたいという要求がある場合に、この要求を満たすために、ウェイ毎に複数のデータグループ番号を登録可能にしている。図20〜22を参照して、ウェイ毎に2つのデータグループ番号を登録可能にする例について詳述する。実施例2では、図8に示したリプレース論理回路112における固定化レジスタ部122と、記憶済み確認部124と、リプレースアルゴリズム部128とが、実施例1のものと置き換わる。
図20は、固定化レジスタ部の構成例を示すブロック図である。図20において、固定化レジスタ部122bは、8つの固定化レジスタR00、R01、R10、R11、R20、R21、R30、R31を有している。これらの固定化レジスタR00、R01、R10、R11、R20、R21、R30、R31は、データグループ番号を記憶することができる。バリッドメモリV00、V01、V10、V11、V20、V21、V30、V31は、対応する固定化レジスタR00、R01、R10、R11、R20、R21、R30、R31が、データグループ番号を記憶しているか否かを示すバリッドデータを保持する。固定化レジスタR00、R01及びバリッドメモリV00、V01は、キャッシュメモリのウェイ0に対応づけられている。固定化レジスタR10、R11及びバリッドメモリV10、V11は、キャッシュメモリのウェイ1に対応づけられている。固定化レジスタR20、R21及びバリッドメモリV20、V21は、キャッシュメモリのウェイ2に対応づけられている。固定化レジスタR30、R31及びバリッドメモリV30、V31は、キャッシュメモリのウェイ3に対応づけられている。
図21は、記憶済み確認部の構成例を示すブロック図である。図21において、記憶済み確認部124bは、比較器150〜157と、オア回路160〜164とを有している。比較器150は、設定レジスタ120が保持するデータグループ番号と、固定化レジスタR00が記憶するデータグループ番号とを比較して、一致する場合には、オンを出力する。比較器151は、設定レジスタ120が保持するデータグループ番号と、固定化レジスタR01が記憶するデータグループ番号とを比較して、一致する場合には、オンを出力する。オア回路160は、ウェイ0に対応する2つの比較器150、151のいずれかの出力がオンのときに、オンの一致信号C0を出力し、2つの比較器150、151のいずれの出力もオフのときに、オフの一致信号C0を出力する。
比較器152は、設定レジスタ120が保持するデータグループ番号と、固定化レジスタR10が記憶するデータグループ番号とを比較して、一致する場合には、オンを出力する。比較器153は、設定レジスタ120が保持するデータグループ番号と、固定化レジスタR11が記憶するデータグループ番号とを比較して、一致する場合には、オンを出力する。オア回路161は、ウェイ1に対応する2つの比較器152、153のいずれかの出力がオンのときに、オンの一致信号C1を出力し、2つの比較器152、153のいずれの出力もオフのときに、オフの一致信号C1を出力する。
比較器154は、設定レジスタ120が保持するデータグループ番号と、固定化レジスタR20が記憶するデータグループ番号とを比較して、一致する場合には、オンを出力する。比較器155は、設定レジスタ120が保持するデータグループ番号と、固定化レジスタR21が記憶するデータグループ番号とを比較して、一致する場合には、オンを出力する。オア回路162は、ウェイ2に対応する2つの比較器154、155のいずれかの出力がオンのときに、オンの一致信号C2を出力し、2つの比較器154、155のいずれの出力もオフのときに、オフの一致信号C2を出力する。
比較器156は、設定レジスタ120が保持するデータグループ番号と、固定化レジスタR30が記憶するデータグループ番号とを比較して、一致する場合には、オンを出力する。比較器157は、設定レジスタ120が保持するデータグループ番号と、固定化レジスタR31が記憶するデータグループ番号とを比較して、一致する場合には、オンを出力する。オア回路163は、ウェイ3に対応する2つの比較器156、157のいずれかの出力がオンのときに、オンの一致信号C3を出力し、2つの比較器156、157のいずれの出力もオフのときに、オフの一致信号C3を出力する。
オア回路164は、一致信号C0〜C3のいずれかがオンのときに、オンの記憶済み信号を出力し、一致信号C0〜C3の全てがオフのときに、オフの記憶済み信号を出力する。
図22は、リプレースアルゴリズム部の構成例を示すブロック図である。図22におけるリプレースアルゴリズム部128bは、図13に示したリプレースアルゴリズム部128aにおけるアクセス履歴変更部135aが、アクセス履歴変更部135bに置き換わった構成になっている。図22おいて、リプレースアルゴリズム部128bは、アクセス履歴設定部140と、アクセス履歴変更部139bと、選択信号出力部141と、制御線142とを有している。
図22において、アクセス履歴変更部139bは、バリッドメモリV00、V01、V10、V11、V20、V21、V30、V31のバリッドデータを参照し、その内容に応じて、アクセス履歴設定部140から出力される信号を強制的に反転する。図22のアクセス履歴変更部139bは、4つのウェイ0〜3にそれぞれ対応した4つのカウンタ170〜173を有している。
カウンタ170は、ウェイ0に対応する2つのバリッドメモリV00、V01のバリッドデータを参照して、ウェイ0に対応した2つの固定化レジスタR00、R01の中で、バリッドデータが無効になっているものの数を計数する。カウンタ171は、ウェイ1に対応する2つのバリッドメモリV10、V11のバリッドデータを参照して、ウェイ1に対応した2つの固定化レジスタR10、R11の中で、バリッドデータが無効になっているものの数を計数する。カウンタ172は、ウェイ2に対応する2つのバリッドメモリV20、V21のバリッドデータを参照して、ウェイ2に対応した2つの固定化レジスタR20、R21の中で、バリッドデータが無効になっているものの数を計数する。カウンタ173は、ウェイ3に対応する2つのバリッドメモリV30、V31のバリッドデータを参照して、ウェイ3に対応した2つの固定化レジスタR30、R31の中で、バリッドデータが無効になっているものの数を計数する。
アクセス履歴変更部139bは、最も大きい値を示しているカウンタに対応するウェイのリプレース順位が最も高くなるように、アクセス履歴を変更する。最も大きい値を示しているカウンタが複数あった場合には、これらのカウンタに対応するウェイの中で、最も古くアクセスされたもののリプレース順位が最も高くなるように、アクセス履歴を変更する。ただし、全てのカウンタ170〜173がゼロを計数していた場合には、制御線142を介して、選択信号出力部141へ、いずれのウェイも選択しないことを通知する非選択信号を出力する。このとき、選択信号出力部141は、4つのウェイのいずれも選択しないように、強制的に”0000”を出力する。
実施例3は、実施例2における固定化レジスタ部122bを、図23に示す固定化レジスタ部122cに置き換えた例である。実施例3によれば、例えば、4ウェイセットアソシアティブ方式のキャッシュメモリにおいて、2ウェイのみをデータグループ指示対応ウェイにし、4データグループまでを登録可能にすることができる。
図23は、固定化レジスタ部の構成例を示すブロック図である。図23において、固定化レジスタ部122cは、8つの固定化レジスタR00、R01、R10、R11、R20、R21、R30、R31を有している。さらに、固定化レジスタ部122cは、4つのウェイにそれぞれ対応した4つの使用禁止メモリP0〜P3を有している。4つの使用禁止メモリP0〜P3は、それぞれ使用禁止データを保持する。
使用禁止メモリP0の使用禁止データが使用禁止を示していたとき、ウェイ0に対応する固定化レジスタR00、R01の使用が禁止される。このとき、ウェイ0にデータを固定することは行われない。使用禁止メモリP1の使用禁止データが使用禁止を示していたとき、ウェイ1に対応する固定化レジスタR10、R11の使用が禁止される。このとき、ウェイ1にデータを固定することは行われない。使用禁止メモリP2の使用禁止データが使用禁止を示していたとき、ウェイ2に対応する固定化レジスタR20、R21の使用が禁止される。使用禁止メモリP3の使用禁止データが使用禁止を示していたとき、ウェイ3に対応する固定化レジスタR30、R31の使用が禁止される。
ロード命令及びストア命令の命令仕様を更に変更するなどすれば、使用禁止メモリP0〜P3の制御は、プログラムから行うことができる。
実施例1〜3では、プロセッサが、主記憶装置にアクセスする場合を想定して説明を行ったが、本発明は、プロセッサが、主記憶装置以外の外部メモリにアクセスする場合にも適用できる。例えば、補助記憶装置からデータを読み込む場合及びデータを書き込む場合についても適用できる。また、プロセッサが外部メモリにアクセスするための命令として、ロード命令及びストア命令を例示して説明を行ったが、本発明は、ロード命令及びストア命令以外の外部メモリ・アクセス命令によってデータグループ番号を指示されるものであってもよい。
それから、リプレース論理回路112は、一般的にはハードウェアで作られているが、プログラムによって動作するものであってもよい。
図1は、HPC分野で利用されるプログラムの例を示す図である。 図2は、ロード命令及びストア命令の命令仕様を示す図である。 図3は、実行ファイルの命令列を例示する図である。 図4は、実施例1における情報処理装置のブロック説明図である。 図5は、実施例1におけるプロセッサのブロック説明図である。 図6は、キャッシュメモリ110のブロック説明図である。 図7は、キャッシュミスヒットが生じた場合におけるキャッシュメモリ110の動作を説明する図である。 図8は、リプレース論理回路112のブロック説明図である。 図9は、固定化レジスタ部の構成例を示すブロック図である。 図10は、記憶済み確認部の構成例を示すブロック図である。 図11は、切替部126の構成例を示すブロック図である。 図12は、リプレースアルゴリズム部の構成例を示すブロック図である。 図13は、リプレースアルゴリズム部の具体例を示すブロック図である。 図14は、ウェイがリプレースされたときの固定化レジスタ部122aの動作を説明する図である。 図15は、命令列が実行された後の固定化レジスタ部122aの状態を示す図である。 図16は、命令列が実行された後のアドレスアレイ部20の状態を示す図である。 図17は、更に後続する命令が実行された後のアドレスアレイ部20の状態を示す図である。 図18は、ウェイ選択方法の前段を説明する流れ図である。 図19は、ウェイ選択方法の後段を説明する流れ図である。 図20は、固定化レジスタ部の構成例を示すブロック図である。 図21は、記憶済み確認部の構成例を示すブロック図である。 図22は、リプレースアルゴリズム部の構成例を示すブロック図である。 図23は、固定化レジスタ部の構成例を示すブロック図である。
符号の説明
10 外部メモリ・アドレスレジスタ
11 タグ
12 セット番号
13 オフセット
14 デコーダ
20 アドレスアレイ部
21 データアレイ部
22〜25、130〜133、150〜157 比較器
26、135〜138 セレクタ
100 命令仕様
101〜104 命令
106 情報処理装置
107 プロセッサ
108 主記憶装置
109 プロセッサコア
110 キャッシュメモリ
111 受信レジスタ
112、112a リプレース論理回路
120 設定レジスタ
122、122a、122b、122c 固定化レジスタ部
124、124a、124b 記憶済み確認部
126 切替部
128、128a、128b リプレースアルゴリズム部
134、160〜164 オア回路
139 除外部
139a、139b アクセス履歴変更部
140 アクセス履歴設定部
141 選択信号出力部
142 制御線
143〜148 フリップフロップ回路
170〜173 カウンタ

Claims (30)

  1. 〔A〕プロセッサコアが所定の命令を実行したときに転送される転送データをグループ分けし、キャッシュ中に常にキャッシングさせておきたい転送データに対しては、該転送データのロード・ストア命令中にデータグループを指示し、一つ目の命令を実行したときに転送される一つ目の転送データと、二つ目の命令を実行したときに転送される二つ目の転送データとが同じデータグループに属する場合には、前記一つ目の転送データと前記二つ目の転送データに対して同一のデータグループを定めることと、
    〔B〕nを複数とし、n個のウェイを有するnウェイセットアソシアティブ方式のキャッシュメモリにおけるウェイのうち、リプレースアルゴリズムによりハードウェアがデータを記憶するのに最適と判断したウェイを最適なウェイとし、前記最適なウェイの一つに、一つ目のデータグループを割り当て、データグループ毎に、同じデータグループであったなら同じウェイに登録するために、登録したウェイとデータグループの対応を記憶し、一度、データグループと対応が取られたウェイについては、以降のロード・ストア命令で該データグループが指示されない限り、該ウェイを使用しないことと、
    〔C〕前記一つ目のデータグループと同じデータグループに属する転送データを前記キャッシュメモリに登録するときには、ハードウェアがリプレースアルゴリズムに基づいて、前記一つ目のデータグループが割り当てられた前記最適なウェイの一つに登録することと
    を備える
    登録先ウェイの固定方法。
  2. 前記〔C〕は、
    前記一つ目のデータグループとは異なる二つ目のデータグループに属する転送データを前記キャッシュメモリに登録するときには、前記最適なウェイの一つとは異なるいずれかのウェイに登録すること
    を備える
    請求項1記載の登録先ウェイの固定方法。
  3. 前記いずれかのウェイに登録することは、
    前記最適なウェイの一つを登録先対象のウェイから除外することと、
    前記最適なウェイの一つを除くn−1個のウェイの中から、所定のリプレースアルゴリズムに従って、登録先ウェイを選択することと
    を備える
    請求項2記載の登録先ウェイの固定方法。
  4. 前記登録先ウェイを選択することは、
    LRU(Least Recently Used)アルゴリズムを用いて、前記n−1個のウェイの中から、最も古く使われたウェイを選択すること
    を備える
    請求項3記載の登録先ウェイの固定方法。
  5. 前記除外することは、
    前記最適なウェイの一つが最も新しく使用されたように、前記LRUアルゴリズムのアクセス履歴を変更すること
    を備え、
    前記登録先ウェイを選択することは、
    前記n−1個のウェイに、アクセス履歴が変更された前記最適なウェイの一つを加えたn個のウェイの中から、前記LRUアルゴリズムを用いて、最も古く使われたウェイを選択すること
    を更に備える
    請求項4記載の登録先ウェイの固定方法。
  6. 〔D〕前記最適なウェイの一つに対応付けられた一つ目のレジスタを設けること
    を更に備え、
    前記〔B〕は、
    前記一つ目のレジスタに前記一つ目のデータグループを記憶することによって、前記最適なウェイの一つに前記一つ目のデータグループを割り当てること
    を備える
    請求項3〜5いずれか1項に記載の登録先ウェイの固定方法。
  7. 前記〔D〕は、
    前記一つ目のレジスタが前記一つ目のデータグループを記憶済みであることを示す一つ目のバリッドデータを記憶する一つ目のバリッドメモリを設けること
    を備え、
    前記〔B〕は、
    前記一つ目のレジスタに前記一つ目のデータグループを記憶するときに、前記一つ目のバリッドメモリに前記一つ目のバリッドデータを記憶すること
    を更に備え、
    前記除外することは、
    前記一つ目のバリッドデータを参照することによって、前記最適なウェイの一つを登録先対象のウェイから除外すること
    を備える
    請求項6記載の登録先ウェイの固定方法。
  8. 前記〔B〕は、
    前記最適なウェイの一つと同じウェイに、前記一つ目のデータグループとは異なる三つ目のデータグループを割り当てること
    を更に備え、
    前記〔C〕は、
    前記三つ目のデータグループと同じデータグループに属する転送データを前記キャッシュメモリに登録するときには、前記三つ目のデータグループが割り当てられた前記最適なウェイの一つに登録すること
    を更に備える
    請求項7記載の登録先ウェイの固定方法。
  9. 前記〔D〕は、
    前記最適なウェイの一つに対応付けられた二つ目のレジスタを設けること
    を更に備え、
    前記〔B〕は、
    前記二つ目のレジスタに前記三つ目のデータグループを記憶することによって、前記最適なウェイの一つと同じウェイに前記三つ目のデータグループを割り当てること
    を更に備える
    請求項8記載の登録先ウェイの固定方法。
  10. 前記〔D〕は、
    前記二つ目のレジスタが前記三つ目のデータグループを記憶済みであることを示す二つ目のバリッドデータを記憶する二つ目のバリッドメモリを設けること
    を更に備え、
    前記〔B〕は、
    前記二つ目のレジスタに前記三つ目のデータグループを記憶するときに、前記二つ目のバリッドメモリに前記二つ目のバリッドデータを記憶すること
    を更に備え、
    前記除外することは、
    前記最適なウェイの一つに対応付けられたレジスタが、前記一つ目のレジスタと前記二つ目のレジスタ以外に無い場合に、前記一つ目のバリッドデータと前記二つ目のバリッドデータと
    を参照することによって、前記最適なウェイの一つを登録先対象のウェイから除外すること
    を更に備える
    請求項9記載の登録先ウェイの固定方法。
  11. 〔E〕n個のウェイのそれぞれに対応付けて、n個のレジスタを設けること
    を更に備え、
    前記〔B〕は、
    前記最適なウェイの一つに対応付けられた一つ目のレジスタに前記一つ目のデータグループを記憶することによって、前記最適なウェイの一つに前記一つ目のデータグループを割り当てること
    を備え、
    前記〔C〕は、
    前記一つ目のレジスタが占有されていること
    を確認することと、
    前記一つ目のレジスタを除くn−1個のレジスタの中で空いているものが有ること
    を確認することと、
    前記二つ目のデータグループに属する前記転送データを前記キャッシュメモリに登録するときには、前記最適なウェイの一つとは異なるいずれかのウェイであって、空いているレジスタに対応付けられた二つ目のウェイに登録することと
    を更に備える
    請求項2〜5いずれか1項に記載の登録先ウェイの固定方法。
  12. 前記〔B〕は、
    前記二つ目のウェイに対応付けられた二つ目のレジスタに前記二つ目のデータグループを記憶することによって、前記二つ目のウェイに前記二つ目のデータグループを割り当てること
    を更に備える
    請求項11記載の登録先ウェイの固定方法。
  13. 〔F〕n個のウェイのいずれかに対応付けられたレジスタの集まりを設けること
    を更に備え、
    前記〔B〕は、
    前記最適なウェイの一つに対応付けられた一つ目のレジスタに前記一つ目のデータグループを記憶することによって、前記最適なウェイの一つに前記一つ目のデータグループを割り当てること
    を備え、
    前記〔C〕は、
    前記一つ目のデータグループとは異なる二つ目のデータグループに属する転送データを前記キャッシュメモリに登録するときには、
    前記一つ目のレジスタが占有されていること
    を確認することと、
    前記一つ目のレジスタを除くレジスタの中で空いているものが有ること
    を確認することと、
    空いているレジスタのいずれかに対応付けられた二つ目のウェイに登録することと
    を備える
    請求項1記載の登録先ウェイの固定方法。
  14. 前記二つ目のウェイに登録することは、
    n個のウェイ毎に、空いているレジスタの数を計数することと、
    空いているレジスタの数が最も多いウェイを前記二つ目のウェイとすること
    を備える
    請求項13記載の登録先ウェイの固定方法。
  15. 前記〔B〕は、
    前記二つ目のウェイに対応付けられた二つ目のレジスタに前記二つ目のデータグループを記憶することによって、前記二つ目のウェイに前記二つ目のデータグループを割り当てること
    を更に備える
    請求項13又は14記載の登録先ウェイの固定方法。
  16. 前記〔A〕は、
    前記所定の命令の命令仕様にデータグループを定義し、命令の一部にデータグループを含めることによって、前記一つ目の転送データと前記二つ目の転送データに対して同一のデータグループを定めること
    を備える
    請求項1〜15いずれか1項に記載の登録先ウェイの固定方法。
  17. 所定の命令を実行するプロセッサコアと、
    前記プロセッサコアが前記所定の命令を実行したときに転送される転送データを一時的に保持するキャッシュメモリと
    を具備し、
    前記プロセッサコアは、
    キャッシュ中に常にキャッシングさせておきたい転送データに対しては、該転送データのロード・ストア命令中にデータグループを指示し、一つ目の命令を実行したときに転送される一つ目の転送データと、二つ目の命令を実行したときに転送される二つ目の転送データとが同じデータグループに属する場合には、前記一つ目の転送データと前記二つ目の転送データに対して同一のデータグループを定め、
    前記キャッシュメモリは、
    nを複数とし、n個のウェイを有するnウェイセットアソシアティブ方式であり、
    リプレースアルゴリズムによりハードウェアがデータを記憶するのに最適と判断したウェイを最適なウェイとし、前記最適なウェイの一つに、一つ目のデータグループを割り当て、データグループ毎に、同じデータグループであったなら同じウェイに登録するために、登録したウェイとデータグループの対応を記憶し、一度、データグループと対応が取られたウェイについては、以降のロード・ストア命令で該データグループが指示されない限り、該ウェイを使用せず、
    前記一つ目のデータグループと同じデータグループに属する転送データを登録するときには、ハードウェアがリプレースアルゴリズムに基づいて、前記一つ目のデータグループが割り当てられた前記最適なウェイの一つに登録する
    プロセッサ。
  18. 前記キャッシュメモリは、
    前記一つ目のデータグループとは異なる二つ目のデータグループに属する転送データを前記キャッシュメモリに登録するときには、前記最適なウェイの一つとは異なるいずれかのウェイに登録する
    請求項17記載のプロセッサ。
  19. 前記キャッシュメモリは、
    前記最適なウェイの一つを登録先対象のウェイから除外し、
    前記最適なウェイの一つを除くn−1個のウェイの中から、所定のリプレースアルゴリズムに従って、登録先ウェイを選択する
    請求項18記載のプロセッサ。
  20. 前記キャッシュメモリは、
    前記登録先ウェイを選択するときに、LRUアルゴリズムを用いて、前記n−1個のウェイの中から、最も古く使われたウェイを選択する
    請求項19記載のプロセッサ。
  21. 前記キャッシュメモリは、
    前記除外するときに、前記最適なウェイの一つが最も新しく使用されたように、前記LRUアルゴリズムのアクセス履歴を変更し、
    前記登録先ウェイを選択するときに、前記n−1個のウェイに、アクセス履歴が変更された前記最適なウェイの一つを加えたn個のウェイの中から、前記LRUアルゴリズムを用いて、最も古く使われたウェイを選択する
    請求項20記載のプロセッサ。
  22. 前記キャッシュメモリは、
    前記最適なウェイの一つに対応付けられた一つ目のレジスタを有し、
    前記一つ目のレジスタに前記一つ目のデータグループを記憶することによって、前記最適なウェイの一つに前記一つ目のデータグループを割り当てる
    請求項19〜21いずれか1項に記載のプロセッサ。
  23. 前記キャッシュメモリは、
    前記一つ目のレジスタが前記一つ目のデータグループを記憶済みであることを示す一つ目のバリッドデータを記憶する一つ目のバリッドメモリを更に有し、
    前記一つ目のレジスタに前記一つ目のデータグループを記憶するときに、前記一つ目のバリッドメモリに前記一つ目のバリッドデータを記憶し、
    前記除外するときに、前記一つ目のバリッドデータを参照することによって、前記最適なウェイの一つを登録先対象のウェイから除外する
    請求項22記載のプロセッサ。
  24. 前記キャッシュメモリは、
    前記最適なウェイの一つと同じウェイに、前記一つ目のデータグループとは異なる三つ目のデータグループを割り当て、
    前記三つ目のデータグループと同じデータグループに属する転送データを前記キャッシュメモリに登録するときには、前記三つ目のデータグループが割り当てられた前記最適なウェイの一つに登録する
    請求項23記載のプロセッサ。
  25. 前記キャッシュメモリは、
    前記最適なウェイの一つに対応付けられた二つ目のレジスタを更に有し、
    前記二つ目のレジスタに前記三つ目のデータグループを記憶することによって、前記最適なウェイの一つと同じウェイに前記三つ目のデータグループを割り当てる
    請求項24記載のプロセッサ。
  26. 前記キャッシュメモリは、
    前記二つ目のレジスタが前記三つ目のデータグループを記憶済みであることを示す二つ目のバリッドデータを記憶する二つ目のバリッドメモリを更に有し、
    前記二つ目のレジスタに前記三つ目のデータグループを記憶するときに、前記二つ目のバリッドメモリに前記二つ目のバリッドデータを記憶し、
    前記除外するときには、前記最適なウェイの一つに対応付けられたレジスタが、前記一つ目のレジスタと前記二つ目のレジスタ以外に無い場合に、前記一つ目のバリッドデータと前記二つ目のバリッドデータとを参照することによって、前記最適なウェイの一つを登録先対象のウェイから除外する
    請求項25記載のプロセッサ。
  27. 前記キャッシュメモリは、
    n個のウェイのそれぞれに対応付けて、n個のレジスタを有し、
    前記最適なウェイの一つに対応付けられた一つ目のレジスタに前記一つ目のデータグループを記憶することによって、前記最適なウェイの一つに前記一つ目のデータグループを割り当て、
    前記一つ目のレジスタが占有されていることを確認し、
    前記一つ目のレジスタを除くn−1個のレジスタの中で空いているものが有ることを確認し、
    前記二つ目のデータグループに属する前記転送データを登録するときには、前記最適なウェイの一つとは異なるいずれかのウェイであって、空いているレジスタに対応付けられた二つ目のウェイに登録する
    請求項18〜21いずれか1項に記載のプロセッサ。
  28. 前記キャッシュメモリは、
    n個のウェイのいずれかに対応付けられたレジスタの集まりを有し、
    前記最適なウェイの一つに対応付けられた一つ目のレジスタに前記一つ目のデータグループを記憶することによって、前記最適なウェイの一つに前記一つ目のデータグループを割り当て、
    前記一つ目のデータグループとは異なる二つ目のデータグループに属する転送データを前記キャッシュメモリに登録するときには、
    前記一つ目のレジスタが占有されていることを確認し、
    前記一つ目のレジスタを除くレジスタの中で空いているものが有ることを確認し、
    空いているレジスタのいずれかに対応付けられた二つ目のウェイに登録し、
    前記二つ目のウェイに登録するときには、
    n個のウェイ毎に、空いているレジスタの数を計数し、
    空いているレジスタの数が最も多いウェイを前記二つ目のウェイとする
    請求項17記載のプロセッサ。
  29. 前記プロセッサコアは、
    前記所定の命令であって、命令仕様にデータグループが定義され、命令の一部にデータグループを含むものを実行することによって、前記一つ目の転送データと前記二つ目の転送データに対して同一のデータグループを定める
    請求項17〜28いずれか1項に記載のプロセッサ。
  30. 請求項17〜29いずれか1項に記載のプロセッサを具備する情報処理装置。
JP2007269841A 2007-10-17 2007-10-17 登録先ウェイの固定方法、プロセッサ、及び情報処理装置 Expired - Fee Related JP5245349B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2007269841A JP5245349B2 (ja) 2007-10-17 2007-10-17 登録先ウェイの固定方法、プロセッサ、及び情報処理装置
US12/230,930 US8423719B2 (en) 2007-10-17 2008-09-08 Apparatus, processor and method of controlling cache memory

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007269841A JP5245349B2 (ja) 2007-10-17 2007-10-17 登録先ウェイの固定方法、プロセッサ、及び情報処理装置

Publications (2)

Publication Number Publication Date
JP2009098933A JP2009098933A (ja) 2009-05-07
JP5245349B2 true JP5245349B2 (ja) 2013-07-24

Family

ID=40564648

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007269841A Expired - Fee Related JP5245349B2 (ja) 2007-10-17 2007-10-17 登録先ウェイの固定方法、プロセッサ、及び情報処理装置

Country Status (2)

Country Link
US (1) US8423719B2 (ja)
JP (1) JP5245349B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8603340B2 (en) 2008-04-15 2013-12-10 Nanoh2O, Inc. Hybrid nanoparticle TFC membranes

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10534731B2 (en) * 2018-03-19 2020-01-14 Micron Technology, Inc. Interface for memory having a cache and multiple independent arrays

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0856798B1 (en) * 1997-01-30 2004-09-29 STMicroelectronics Limited A cache system
JP2000122968A (ja) 1998-10-15 2000-04-28 Nec Corp 入出力キャッシュメモリ及びその制御方法
JP2001075864A (ja) * 1999-09-02 2001-03-23 Fujitsu Ltd キャッシュ制御装置
KR100810781B1 (ko) * 1999-12-17 2008-03-06 엔엑스피 비 브이 캐시 메모리를 구비한 데이터 프로세서
WO2002008911A1 (fr) * 2000-07-24 2002-01-31 Hitachi,Ltd Systeme de traitement de donnees
JP2002140234A (ja) * 2000-11-02 2002-05-17 Hitachi Ltd キャッシュ装置
JP2002342163A (ja) * 2001-05-15 2002-11-29 Fujitsu Ltd マルチスレッドプロセッサ用キャッシュ制御方式
JP3620473B2 (ja) * 2001-06-14 2005-02-16 日本電気株式会社 共有キャッシュメモリのリプレイスメント制御方法及びその装置
JP2004110240A (ja) 2002-09-17 2004-04-08 Mitsubishi Electric Corp キャッシュメモリ装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8603340B2 (en) 2008-04-15 2013-12-10 Nanoh2O, Inc. Hybrid nanoparticle TFC membranes
US9254465B2 (en) 2008-04-15 2016-02-09 Lg Nanoh2O, Inc. Hybrid nanoparticle TFC membranes

Also Published As

Publication number Publication date
US8423719B2 (en) 2013-04-16
JP2009098933A (ja) 2009-05-07
US20090106497A1 (en) 2009-04-23

Similar Documents

Publication Publication Date Title
US5535361A (en) Cache block replacement scheme based on directory control bit set/reset and hit/miss basis in a multiheading multiprocessor environment
US6816947B1 (en) System and method for memory arbitration
US7321954B2 (en) Method for software controllable dynamically lockable cache line replacement system
US20110219215A1 (en) Atomicity: a multi-pronged approach
KR101402560B1 (ko) 연산 처리 장치
US8527708B2 (en) Detecting address conflicts in a cache memory system
JPH1196074A (ja) 交換アルゴリズム動的選択コンピュータシステム
JP2002373115A (ja) 共有キャッシュメモリのリプレイスメント制御方法及びその装置
JP2018005395A (ja) 演算処理装置、情報処理装置および演算処理装置の制御方法
CN104050032A (zh) 用于有条件的屏障和急迫的屏障的硬件调度的系统和方法
CN112148665B (zh) 缓存的分配方法及装置
JP2010033480A (ja) キャッシュメモリおよびキャッシュメモリ制御装置
CN115168248B (zh) 支持simt架构的高速缓冲存储器及相应处理器
US6560676B1 (en) Cache memory system having a replace way limitation circuit and a processor
CN101390047A (zh) 数据处理系统和用于预取数据和/或指令的方法
US20100088473A1 (en) Vector computer system with cache memory and operation method thereof
US6904465B2 (en) Low latency inter-reference ordering in a multiple processor system employing a multiple-level inter-node switch
US10037278B2 (en) Operation processing device having hierarchical cache memory and method for controlling operation processing device having hierarchical cache memory
US20140019690A1 (en) Processor, information processing apparatus, and control method of processor
JP5245349B2 (ja) 登録先ウェイの固定方法、プロセッサ、及び情報処理装置
CA1279731C (en) Cache memory with variable fetch and replacement schemes
US20110138130A1 (en) Processor and method of control of processor
US6839806B2 (en) Cache system with a cache tag memory and a cache tag buffer
US7406554B1 (en) Queue circuit and method for memory arbitration employing same
JP2008009857A (ja) キャッシュ制御回路およびプロセッサシステム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100913

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120907

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121010

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20121116

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130215

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20130222

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130325

R150 Certificate of patent or registration of utility model

Ref document number: 5245349

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20160419

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees