JP3974131B2 - キャッシュメモリを制御するための方法と装置 - Google Patents

キャッシュメモリを制御するための方法と装置 Download PDF

Info

Publication number
JP3974131B2
JP3974131B2 JP2004504120A JP2004504120A JP3974131B2 JP 3974131 B2 JP3974131 B2 JP 3974131B2 JP 2004504120 A JP2004504120 A JP 2004504120A JP 2004504120 A JP2004504120 A JP 2004504120A JP 3974131 B2 JP3974131 B2 JP 3974131B2
Authority
JP
Japan
Prior art keywords
data
cache line
valid
cache
flag
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 - Lifetime
Application number
JP2004504120A
Other languages
English (en)
Other versions
JP2005524905A (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.)
Sony Interactive Entertainment Inc
Original Assignee
Sony Computer Entertainment Inc
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 Sony Computer Entertainment Inc filed Critical Sony Computer Entertainment Inc
Publication of JP2005524905A publication Critical patent/JP2005524905A/ja
Application granted granted Critical
Publication of JP3974131B2 publication Critical patent/JP3974131B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • 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/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3824Operand accessing
    • 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/0888Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using selective caching, e.g. bypass
    • 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/126Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning
    • G06F12/127Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning using additional 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
    • G06F9/30043LOAD or STORE instructions; Clear instruction
    • 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/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • 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/126Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning

Landscapes

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

Description

本発明は、キャッシュメモリを制御するための方法と装置に関し、より具体的には、浮動小数点データの記録をキャッシュメモリ内に保存する際に、記録装置が有効な整数データを上書きしようとし場合には、浮動小数点データの記録を禁止する制御技術に関するものである。
近年では、最先端コンピュータアプリケーションが益々複雑になり、マイクロプロセスシステムに対する需要が増大しているため、より高速のコンピュータ処理データスループットへの要請が絶え間なく続いている。従来の(マイクロプロセッサ及び関連付けられたメモリを使用する)マイクロプロセッシングシステムは、非常に高速となり、そのサイクル時間(即ち、マイクロプロセッサがデータ操作が可能である時間ユニット)が、例えば1ナノ秒となっている。しかし、メインメモリに記録されたデータアクセスに要する時間は、マイクロプロセッサのサイクル時間よりかなり長くなる場合がある。例えば、(ダイナミックランダムアクセスメモリ(DRAM)技術を使用して実装された)メインメモリから1バイトのデータを得るために必要なアクセス時間は、約60ナノ秒である。
DRAMメモリへのアクセス時間がかなり長いことに起因する問題を改善するため、従来キャッシュメモリが用いられている。キャッシュメモリは、システムのスループットが改善されるよう、メインメモリを補強している。メインメモリが頻繁に比較的安価であるが低速のDRAMメモリを使用して実装される一方、前述のキャッシュメモリは、一般的に比較的高コストで高速のスタティックランダムアクセスメモリ(SRAM)技術を用いて実装される。キャッシュメモリは、高コスト技術を駆使して実装されることから、そのサイズは、メインメモリよりもかなり小さくなっている。
キャッシュメモリは、マイクロプロセッサと共に“オンチップ”に配置してもよく、この場合はレベル1(L1)キャッシュメモリと呼ばれる。又は、キャッシュメモリは、マイクロプロセッサとは別に配置されるか、又はオフチップとしてもよく、この場合、レベル2(L2)キャッシュメモリと呼ばれる。L1,L2キャッシュメモリを組み合わせたシステムもまた知られており、このシステムでは、オンチップキャッシュメモリ及びオフチップキャッシュメモリの両方が使用される。
キャッシュメモリが比較的小さいサイズであるため、種々のマイクロプロセスシステム操作の間、どんなデータがキャッシュメモリ内に記録されるべきかを判断するアルゴリズムが従来から使用されている。これら従来のアルゴリズムは、例えば、“参照の局所性(locality of reference)”のような理論的コンセプトに基づくものである。この参照の局所性においては、どの時点においても、実行可能プログラムのかなり小さな一部のみがマイクロプロセッサによって使用される、という事実の利点を有するものである。それ故、参照の局所性という概念に従って、どの時点においても、実行可能プログラムのごく一部のみがキャッシュメモリ内に記録される。キャッシュメモリにおける(実行可能のプログラムによって使用されてよい)データの記録と検索を制御するために、これら又は他のアルゴリズムを使用することができる。
キャッシュメモリにおける実行可能のプログラム及び/又はデータの記録を制御するためのレファレンスの場所、又は他の概念の有利性を利用するために知られたアルゴリズムのこれらの特性は、本明細書において提示するには数が多過ぎる。しかし、アプリケーションごとにデータ処理の目的が相違することから、いずれのアルゴリズムにおいても、アプリケーションのすべてに対して適切なものとはなりえないことを指摘すれば十分であろう。
場合によっては、整数データ及び浮動小数点データを処理するために、キャッシュメモリを使用するマイクロシステムが必要となり得る。そのような浮動小数点データを使用するアプリケーションでは、L1キャッシュメモリのサイズ能力よりかなり大きく、アドレスの局所性がかなり小さい、かなり大きな浮動小数点データ配列を求められることもあり得る。そのような大きな配列の浮動小数点データを読み込むするステップ、特に、アドレスポインタ及びそれに類するもののような整数データを含むとき、L1キャッシュメモリが不正な状態となるおそれがある。L1キャッシュメモリにおける整数データのコラプション(colluption)を回避するために設計された従来の方法及び装置は、浮動小数点データをロードするときにL1キャッシュメモリにアクセスするのではなく、L2キャッシュメモリ(メインメモリ)に直接アクセスするようになっている。この制御形式に関する更なる詳細は、その全体が参照として本願に包含される米国出願番号5,510,934に記載されている。
残念なことに、これら従来の制御技術によりL1キャッシュメモリへのアクセスを減少させることで、マイクロプロセスシステムに関して全体的にスループットが低くなるという結果をもたらされる。実際、高速なL1キャッシュメモリの使用の最適化はなされておらず、事実、浮動小数点データの読み出しには、L1キャッシュは使用されず、比較的遅い速度のL2キャッシュメモリが用いられている。
従って、この技術分野において、メモリ効率を改善し、スループット処理量を増大し、システムによって実行された全体的なデータ処理の質を改善するためにL1キャッシュメモリ、L2キャッシュメモリ、及び/又はそれらの組み合わせを含むキャッシュメモリを制御するための新たな方法及び装置が求められている。
浮動小数点データのメモリアクセス要求がキャッシュメモリにアクセスすることによっては満たされないとき、すなわち、キャッシュミスが起きたとき、浮動小数点データがメインメモリから入手され、キャッシュメモリに記録されるシーケンスにデータの補充を行うことが望ましい。L1キャッシュメモリが使用され、浮動小数点データのメモリアクセス要請が行われたとき、まず最初にこの要請を満たすためにL1キャッシュメモリにアクセスすることが望ましく、それが満たされない場合、L1キャッシュメモリを補充するためにL2キャッシュメモリ又はメインメモリにアクセスすることが望ましい。どんな場合でも、マイクロプロセスシステムは、整数データ、浮動小数点データのいずれで動作していても、有効な整数データをL1キャッシュメモリにおける浮動小数点データで上書きすることを回避することが望ましい。
この目的を満たすために、本発明の1以上の実施形態に従うと、キャッシュメモリを制御するための方法には、キャッシュメモリ内にデータを記録するためのアドレスと、キャッシュメモリからデータを読出すためのアドレスと、の少なくとも一方を受信するステップを有し、このアドレスは、タグビット及びインデックスビットを含むものであり、前記アドレスの前記インデックスビットに対応する前記キャッシュメモリの一つのキャッシュラインにアクセスするステップを含み、各キャッシュラインは、アドレスタグ、データ有効フラグ、及びデータ形式フラグを含み、前記データ有効フラグに基づいて、キャッシュラインの少なくとも一つのデータが有効であるか否かを判断するステップを含み、前記データ形式フラグに基づいて、前記少なくとも一つのキャッシュラインにおいて何れの形式のデータが記録されたかを判断するステップを含み、前記少なくとも一つのキャッシュラインのデータが有効であってかつ当該少なくとも一つのキャッシュラインに既に格納されているデータが整数データであるときに、この少なくとも一つのキャッシュラインへの浮動小数点データの上書きを禁止するステップが含まれる。
好適には、本方法は、(i)前記データが有効であることを示すために前記少なくとも一つのキャッシュラインに前記有効フラグを設定するステップと、(ii)前記少なくとも一つのキャッシュラインにおいて浮動小数点データの上書きが禁止されているとき、前記少なくとも一つのキャッシュラインにおける前記データは整数形式であることを示すために前記少なくとも一つのキャッシュラインに前記データ形式フラグを設定するステップと、を含む。
データ有効フラグ及び/データ形式フラグは、1ビットフラグでよいことに注目される。
好適に、本方法は、前記データ有効フラグが少なくとも一つのキャッシュラインが有効データを含まないことを示すとき、前記少なくとも一つのキャッシュラインへの整数データの上書きを許可するステップと、前記少なくとも一つのキャッシュラインに、前記整数データが有効であることを示すように前記有効フラグを設定するステップと、及び、前記整数データが整数形式であることを示すように前記少なくとも一つのキャッシュラインに前記データ形式フラグを設定するステップと、を含む。
他の形態、又は更なる形態として、本方法は、前記データ有効フラグが前記少なくとも一つのキャッシュラインが有効データを含まないことを示すとき、前記少なくとも一つのキャッシュラインに浮動小数点データを上書きすることを許可するステップと、前記少なくとも一つのキャッシュラインの前記有効フラグを前記浮動小数点データが有効であることを示すように設定するステップと、前記少なくとも一つのキャッシュラインの前記データ形式フラグを、前記浮動小数点データが浮動小数点形式であることを示すように設定するステップと、を含んでよい。
他の形態として、又は更なる形態として、本方法は、好適に、(i)前記データ有効フラグが、前記少なくとも一つのキャッシュラインが前記有効データを含むことを示し、(ii)前記データ形式フラグが、前記少なくとも一つのキャッシュラインの前記データが整数形式であることを示すときに、前記少なくとも一つのキャッシュラインに整数データを上書きすることを許可するステップを含む。この場合、本方法は、更に、前記少なくとも一つのキャッシュラインに対する前記有効フラグを、前記整数データが有効であることを示すように設定するステップと、前記少なくとも一つのキャッシュラインの前記データ形式フラグを、前記整数データが整数形式であることを示すように設定するステップと、のを含む。
他の形態として、又は更なる形態として、本方法は、好適に、(i)前記データ有効フラグが、前記少なくとも一つのキャッシュラインが前記有効データを含むことを示し、(ii)前記データ形式フラグが、前記少なくとも一つのキャッシュラインの前記データが浮動小数点形式であることを示すとき、前記少なくとも一つのキャッシュラインに整数データを上書きすることを許可するステップを含む。この場合、本方法は、更に、前記整数データが有効であることを示すように前記少なくとも一つのキャッシュラインの前記データ形式フラグを設定するステップと、前記整数データは整数形式であることを示すように前記少なくとも一つのキャッシュラインの前記データ形式フラグを設定するステップとを含む。
他の形態として、又は更なる形態として、本方法は、好適に、(i)前記データ有効フラグが、前記少なくとも一つのキャッシュラインが前記有効データを含むことを示し、(ii)前記データ形式フラグが、前記少なくとも一つのキャッシュラインの前記データが浮動小数点形式を示す場合に、前記少なくとも一つのキャッシュラインへの浮動小数点データの上書きを許可するステップを含む。この場合、本方法は、好適に、前記少なくとも一つのキャッシュラインの前記有効フラグを前記浮動小数点データは有効であることを示すように設定するステップと、前記少なくとも一つのキャッシュラインの前記データ形式フラグを前記浮動小数点データは浮動小数点形式であることを示すように設定するステップと、を含む。
キャッシュメモリは、多くのキャッシュラインが1データの単なる1メモリアクセス要請によって発動されるN-way連想技術を使用して実装される。1以上の更なる本発明の実施形態に従って、本方法は、好適に、前記アドレスの前記インデックスビットに応じた前記キャッシュメモリの全部のキャッシュラインにアクセスするステップと、前記データ有効フラグに基づいて前記キャッシュラインの何れが有効であるかを判断するステップと、前記対応するデータ有効フラグは、対応するデータ有効フラグが当該キャッシュラインに有効データが含まれないことを示すものであるというキャッシュラインのいずれにおいても、浮動小数点データ又は整数データの上書きを許可するステップと、を含む。
他の形態として、又は更なる形態として、本方法は、好適に、前記アドレスの前記インデックスビットに対応した前記キャッシュメモリの全てのキャッシュラインにアクセスするステップと、前記データ有効フラグに基づいて前記キャッシュラインの何れが有効であるかを判断するステップと、 前記データ有効フラグの全てが前記キャッシュラインが有効データを含むことを示すときに前記キャッシュラインのいずれにおいても整数データを上書きすることを許可するステップと、を含む。
本発明は、好適に更に、前記キャッシュラインの各々に記録された前記データがいずれの形式のデータであるかを、前記各データ形式フラグに基づいて判断するステップと、前記データ有効フラグの全てが前記キャッシュラインが有効データを含むことを示す場合に、前記キャッシュラインに対応するデータ形式フラグが、当該キャッシュラインに記録されているデータの形式が浮動小数点データであることを示す場合に、当該キャッシュラインのいずれにおいても、浮動小数点データの上書きを行うことを許可するステップと、を含む。
更なる形態として、本発明は、好適に、前記データ有効フラグの全部が前記キャッシュラインが有効データを含むことを示し、かつ前記データ形式フラグのすべてが前記キャッシュラインが整数データを含むことを示す場合に、前記キャッシュラインのいずれにも、浮動小数点データの上書きを行うことを禁止するステップを含む。
前記キャッシュラインのいずれにも前記浮動小数点データの上書きを行うことが禁止されるとき、前記浮動小数点データを読出/記録ユニット又は他のキャッシュメモリに転送するステップを含む。他のキャッシュメモリは、1キャッシュメモリのみを含んでよい。
本発明の1以上の実施形態に従って、上述の及び/又は本明細書に後で記載されるキャッシュメモリを制御するための本方法は、以下に図面が示されるように適切なハードウェアを使用して実現されてよい。そのようなハードウェアは、標準デジタル回路、アナログ回路、ソフトウェア及び/又はファームウェアプログラムを実行するためにプログラム可能リードオンリーメモリ(PROMS)、プログラム可能な配列論理デバイス(PALS)、上述したもののどんな組み合わせ等のようなプログラム可能である1以上のデジタルデバイス又はデジタルシステムのような周知のプロセッサのような周知技術を使用して実装されてよい。
以下、本発明を説明する目的で、好適である態様を図面という形で示したが、本発明は、図示された厳密な配置及び手段に制限されるものではないことが理解されよう。
図1に本発明の1以上の実施形態を表すブロック概略図を示す。なお、図面において、同じ構成要素には同じ符号を付した。簡明をきたすため、図1のブロック概略図を、装置100を参照して示すが、この説明は、1つ以上の方法における種々の実現形態に対しても同様に適用可能であることが理解されよう。装置100は、好適にマイクロプロセッサを表し、命令送信ユニット102、記録読出ユニット104、整数ユニット106、浮動小数点ユニット108,キャッシュメモリ110,及び(L2キャッシュ又はメインメモリのような)更なるメモリ112を好適に含む。これらの構成部分は、別々に実装されて図示するようにパーティションで区切られるか、又は本発明の精神と範囲を逸脱することなしに種々の組み合わせに統合されるか、又はパーティションで区切られる。好適に、図1に示された構成要素は、マイクロプロセッサアーキテクチャ部分を形成し、ここで種々の動作/機能を実行する。
命令送信ユニット102は、好適には、マイクロプロセッサ100内で実行されるよう命令を送る。この命令は、浮動小数点データ操作、整数データ操作、及び/又はこれらの組み合わせを要求するものでもよい。従って、この命令は、各ユニットが整数操作又は浮動小数点操作を実行可能であるように、整数ユニット106及び/又は浮動小数点ユニット108に好適に与えられる。整数データ及び浮動小数点データは、それぞれ、整数ユニット106及び浮動小数点ユニット108によって操作されるものであり、キャッシュメモリ110,更なるメモリ112のいずれか又は両方に記録される。
記録読出ユニット104は、好適に命令送信ユニット102から受信された命令に従った整数ユニット106と浮動小数点ユニット108に関する読出及び/又は記録操作を実行する。例えば、この命令が、浮動小数点操作を実行せねばならないことを示す場合、記録読出ユニット104は、キャッシュメモリ110を介して、浮動小数点ユニット108に、又は浮動小数点ユニット108から、浮動小数点データを好適に読出及び/又は記録する。なお、アドレスは、整数ユニット106の整数データを使用して用意されることになる。一方、この命令が、整数操作が実行されなければならないことを示す場合、記録読出ユニット104は、キャッシュメモリ110を介して整数ユニット106から整数データを好適にロードし、又は整数ユニット106に記録する。
より具体的には、記録読出ユニット104において、整数データ及び/又は浮動小数点データの入手することが要求された場合、好適には、記録読出ユニット104はキャッシュメモリ110にアクセスし、もしキャッシュがヒットした場合、データがキャッシュメモリ110から読出され、それぞれ整数ユニット106及び/又は浮動小数点ユニット108に送られる。一方、キャッシュミスが発生した場合、キャッシュメモリ110は、上述したL2キャッシュ又はメインメモリである、更なるメモリ112に好適にアクセスする。キャッシュミスの場合、更なるメモリ112から入手されたデータは、キャッシュメモリ110内に補充される。整数ユニット106及び/又は浮動小数点ユニット108内に実行された後に、データ操作は、記録操作が要求され得る。この記録操作では、これらの操作から得られたデータをキャッシュメモリ110に記録する。データの補充及びデータ記録プロセスに関する特性を以下に記載する。
図2を参照すると、本発明の更なる態様を示すブロック概略図が表される。より具体的には、キャッシュメモリ110及びその制御に関する更なる詳細が用意されている。本発明に従ったキャッシュメモリ110を完全連想マッピング及び/又はセット連想マッピングを使用して実装してもよい。簡明のために、図2は、キャッシュライン200のシングルセットを表す。このシングルセットは、直接マップされた実装の一部又は、セットサイズがNである、N-wayセット連想実装の一つの手法である。キャッシュライン200のシングルセット、それに関連したアドレス指定、データ、回路等に関する記述に関しては、これらは、参照された範囲で、そのような記載は、本発明の精神と範囲を逸脱することなしに、N-wayセット連想の実装に容易に適用されるように理解されたい。
図2に示された詳細を参照すると、キャッシュメモリ110は、好適に複数キャッシュメモリ200と、メモリコントローラ202と、アドレス指定機能又はアドレス指定性能204、データセレクタ206、比較機能208を含む。データは、メモリコントローラ202によって実行されたアルゴリズムに従ったデータセレクタ206を介してキャッシュライン200からロードされるか、又はキャッシュライン200に記録される。キャッシュライン200は、記録読出ユニット104から受信し、アドレス指定機能204に従って処理されたアドレス情報に従ってアクセスされる。特定的に、アドレス情報は、好適にタグビット、インデックスビット、オフセットビットを含む。タグビットは、要請されたデータを識別し(又はネーミングし)、特定のキャッシュライン200内に記録された識別子と比較するために使用される。インデックスビットは、ポインタをセットにおいて特定的なキャッシュライン200に用意し、オフセットビットは、キャッシュライン200のデータ記録装置部分においてスタート場所を識別する。
各キャッシュライン200は、好適にアドレスタグ210と、ステイタスフラグと、データ214を含む。アドレスタグ210は、各キャッシュライン200にて記録されたデータをネーミング又は識別するために使用される。ステイタスフラグ212は、データ有効フラグ212Aとデータ形式フラグ212Bを含んでよい。データ有効フラグ212Aは、好適にキャッシュライン200内に記録されたデータが有効であるか否かに関する情報を用意する。データ有効フラグ212Aは、論理がハイ[high:“1”、“真正(true)”、“セット(set)”等である]である場合にデータは有効であることを示し、ロー[low:“0”、“不正(false)”、“セットされていない(not set)”等である]である場合は、データが無効である(またはハイ、ローの内容を逆にしてもよい)ことを示す単1ビット情報ですることができる。データ形式フラグ212Bは、好適にキャッシュライン200の記録されたデータが整数データか、又は浮動小数点データを示す情報を含む。データ形式フラグ212Bは、論理ハイがデータは浮動小数点データであることを示し、論理ローは整数データ(逆も同様)であることを示す単なる1ビット情報であってよい。ステイタスフラグ212は、キャッシュライン200に記録されたデータは“不正”である(即ち、データが改ざんされていたり、メインメモリが更新されていなかった等)、というような、その他の情報を含む。
図2と図3を参照して、キャッシュメモリ110の制御に関する本発明のある種の態様の記載がなされる。動作300において、キャッシュメモリ110は、記録読出ユニット104から有効アドレスのような、アドレスを受信する。上述したように、アドレスは、タグビット、インデックスビット、オフセットビットを含む。インデックスビットは、(動作300)における特定的なキャッシュライン200を指し示し、このキャッシュラインには、アドレスタグ210、ステイタスフラグ212,データ214セットを含む。動作304において、メモリコントローラ202は、データ有効フラグ212Aをキャッシュライン200に記録されたデータが有効であるか否かを判断するために解析する。データが有効でない場合、処理フローは、好適に(本明細書で後に記載される)動作312に分岐する。データが有効である場合、処理フローは、動作306に分岐する。
動作306において、(メモリコントローラ202と統合しているか、又は分離している)比較機能208は、記録読出ユニット104から受信したアドレス内に含まれたタグビットと、キャッシュライン200のアドレスタグ210と、を比較する。要求されたアドレスのタグビットがキャッシュライン200のアドレスタグ210と照合しない場合、処理フローは、好適に(後に本明細書に記載される)動作312に分岐する。一方、要求されたアドレスのタグビットがキャッシュライン200のアドレスタグ210と照合する場合、処理フローは好適に動作308に分岐する。
動作308において、記録読出ユニット104はロード命令又は記録命令を実行するか否かに関する問い合わせが実行される。記録読出ユニット104がロード命令を実行している場合(即ち、データが、整数ユニット106又は浮動小数点ユニット108に配信するためにキャッシュメモリ112から入手されている場合)、キャッシュがヒットしており、処理フローは動作310に進み、データがデータセレクタ206を介してキャッシュライン200から記録読出ユニット104にロードされる。もし、動作308において、記録読出ユニット104が記録命令を提供している場合、キャッシュがヒットしていることは同様であるが、この場合の処理フローは、以下に記載される動作312に好適に進む。
処理フローが動作304又は動作306から動作312に分岐し、記録読出ユニット104がロード命令を実行しているとき、データ補充が行われれなくてはならないことに注目される(つまり、記録読出ユニット104によって要請されたデータは、キャッシュメモリ110に含まれていないからである)。処理フローが動作308から動作312に進むとき、記録読出ユニット104は記録命令を実行し、データがキャッシュメモリ110内に書き込まれる。例えば、整数ユニット106又は浮動小数点ユニット108によって実行された操作の結果として、この書込みが行われる。このような補充操作又は記録操作が実行された否かに係わらず、この処理ステップにおいて、メモリコントローラ202は、データ有効フラグ212Aと、キャッシュライン200に記録されるデータ形式フラグ212Bと、及び/又はデータ形式(即ち、整数であるか浮動小数点であるか)に基づいて、キャッシュライン200へのデータの上書きが許可されたか、又は禁止されたかを好適に判断する。
説明目的のために、キャッシュライン200へのデータの上書きを制御するための基礎アルゴリズムが、表1に表される。表1のアルゴリズムは、異なる処理フロー概略図の数ごとに無数に示し得るものである。簡明性の見地から、これら全部の形態のフロー概略図を表すことはできないので、そのような処理フロー概略図の1例のみを図3に示す。

Figure 0003974131
図2と図3と表1を参照すると、動作312において、メモリコントローラ202は、好適にキャッシュライン200に記録されたデータ形式に関して判断を行う。一例として、記録されなければならないデータ形式に関する情報は、記録読出ユニット104から入手され得る。何故なら、(図1に示す)記録読出ユニット104によって受信された命令が好適にそのような情報を含むからである。キャッシュライン200に記録されなければならないデータが浮動小数点データであるとき、処理フローは、好適に(以下に記載される)動作316に進む。キャッシュライン200に記録されなければならないデータが浮動小数点データではない(即ち、データが整数データである)とき、処理フローは、好適にキャッシュライン200の何れのデータも整数データで上書きされる動作314に進む。このことは、表1の1行目、3行目、5行目に対応する。特に、表1の1行目、3行目、5行目は、データがデータ有効フラグ212Aの状態とデータ形式フラグ212Bに係わらず、キャッシュライン200に記録されたデータの形式が整数データである限り、上書きは許可されなければならないことを示す。図3の動作314をもう一度参照すると、キャッシュライン200が整数デーで上書きされると、データ有効フラグ212Aは例えば、有効データを示すために論理ハイ(「真」状態)に好適に設定され、データ形式フラグ212Bの状態は例えば、整数データを示すために論理ロー(「偽」状態)に好適に設定される。
キャッシュライン200に記録されなければならないデータが浮動小数点データであると判断された(動作312に肯定的であった)場合、処理は、動作316に進み、データ形式フラグ212Bがキャッシュライン200に予め記録されたデータ(例えば、キャッシュライン200にカレントに記録されたデータ)が浮動小数点データであることを示すか否かに関して好適に判断が行われる。この問い合わせが否定的である場合、処理は好適に(後に記載される)動作320に進む。この判断が肯定的である場合、処理は操作318に進み、好適にキャッシュライン200におけるデータの上書きが許可される。このことは、表1の2行目に対応する。表1の6行目では、データ有効フラグ212Aが、(決定的ではないが)キャッシュライン200にカレントに記録されたデータは有効であることを示し、データ有効フラグ212Bがキャッシュライン200にカレントに記録されたデータ形式は浮動小数点であり、且つ、キャッシュライン200に記録されなければならないデータ形式も浮動小数点データであることを示すものである。これは又、データ有効フラグ212Aが、キャッシュライン200にカレントに記録されたデータは(決定的ではないが)有効でないことを示し、データ形式フラグ212Bが、キャッシュライン200にカレントに記録されたデータは浮動小数点であり、且つ、キャッシュライン200に記録されなければならないデータ形式は浮動小数点データであることを示す。
動作316において、データ形式フラグ212Bが、キャッシュライン200にカレントに記録されたデータは整数データであることを示すと判断された場合、処理は、動作320に進み、好適にキャッシュライン200に記録された整数データは有効であるか否かを判断する(この有効性判断は既になされたものでありって動作304からその情報を持ち越してもよく、あるいは、新たに判断するようにしても良い)。そのような整数データが有効ではない場合、例えば、データ有効フラグ212Aが論理ロー(「偽」状態)である場合、処理フローは、好適にキャッシュライン200に上述した浮動小数点データを上書きすることが許可される、動作318に進む。これは、データ有効フラグ212Aがキャッシュライン200にカレントに記録されたデータは有効でないことを示し、且つ、データ形式フラグ212Bがそのようなデータは整数データであることを示す、表1の2行目に対応している。図3をもう一度参照すると、メモリコントローラ202は、好適にキャッシュライン200のデータに有効フラグ212A、例えば「真」状態を示す論理ハイを、設定する。更に、メモリコントローラ202は、データ形式フラグ212Bを、浮動小数点データを示すように、例えば、真正状態の論理ハイに、好適に設定する。
動作320における問い合わせが肯定的である場合、つまりキャッシュライン200にカレントに記録された整数データが有効であるとき、処理フローは好適にキャッシュライン200に浮動小数点データの上書きすることを禁止する動作322に進む。これは、データ有効フラグ212Aがキャッシュライン200にカレントに記録されたデータは有効であることを示し、且つキャッシュライン200に記録されなければならないデータは浮動小数点データであることを示す、表1の4行目に対応している。メモリコントローラ202は、キャッシュメモリ110における有効整数データに浮動小数点データが上書きされることを禁止するという、好適な動作を行う。
そのような浮動小数点データがキャッシュライン200の有効整数データ上に上書きすることが禁止された場合、そうしたデータは、好適には記録読出ユニット104に転送されるか、又は他のキャッシュメモリに記録される(動作324)。
図4を参照すると、本発明の更なる実施形態を表すブロック概略図が示される。特に、図4は、代替キャッシュメモリ110Aを表し、これは、浮動小数点データを代替キャッシュメモリ400に転送可能であるという点を除いて、図2に示すキャッシュメモリ110と実質的に同様である。代替キャッシュメモリ400は、キャッシュメモリ110Aと統合されているか、又は分離していてよい。代替キャッシュメモリ400は、キャッシュライン200のセットの拡張として動作することが注目される。従って、要求されたアドレスのタグビットが代替キャッシュメモリ400の特定のキャッシュライン200に含まれたアドレスタグに一致するか否かを判断するために、更なる比較機能208Aが含まれる。代替キャッシュメモリ400は、単一つのキャッシュライン又は多重のキャッシュラインを含んでよいことに注目される。
上述したように、本発明の方法及び装置の種々の実施形態は、単1セットである直接マップされたキャッシュメモリ実装に適用可能であるか、又はN-wayセット関連キャッシュメモリの実装に使用可能である。
図3を参照すると、N-wayセット関連キャッシュメモリの実装において、動作304にて所定のインデックスビットに関連づけられた全部のキャッシュライン200がアクセスされ、これらのキャッシュライン200は有効であるという判断が、各データ有効フラグ212Aに基づいて行われる。キャッシュライン200において、対応するデータ有効フラグ212Aが当該キャッシュライン200に有効データが含まれないことを示すものは、いずれも、メモリコントローラ202によって、浮動小数点データ又は整数データの上書きを行うことが好適に許可される。キャッシュライン200の全部が(例えば、全部の関連付けられたデータ有効フラグ212Aが真正である)有効データを含む場合、記録されなければならないデータの形式が整数データであれば、何れのキャッシュラインも上書きされる。もし記録されなければならないデータの形式が浮動小数点データであれば、そのようなデータをキャッシュライン200に記録されるだけでよい。この場合、キャッシュライン200におけるデータ形式フラグ212Bは、キャッシュライン200にカレントに記録されたデータが浮動小数点であることを示すものである。インデックスビットと関連づけられたキャッシュライン200全部が有効データを含み(例えば、データ有効フラグ212Aのすべてが「真」である)、かつ、関連づけられたデータ形式フラグ212Bの全部が、記録されたデータは整数データであることを示す場合、メモリコントローラ200は、好適にキャッシュライン200の何れに対しても、不動小数点データの上書きを禁止する。
上述したように、キャッシュメモリを制御するための方法及び装置は、整数と浮動小数点データの両方を操作するマイクロプロセスシステムにおけるL1キャッシュメモリの使用を増やす点で有利である。その結果、メモリ効率、処理スループット、データ処理の品質が改善される。
本発明は、特定的な実施形態を参考にしながら以上に記載されたが、これらの実施形態は、単に本発明の原則と適用の説明目的のためであることが理解されよう。それ故、実施形態に種々の変更が可能で、また、本発明の精神と範囲を逸脱することなく、その他の変形を、添付の請求項によって限定された改変されてよいことが理解されなくてはならない。
本発明の1以上の更なる実施形態に従ったキャッシュメモリを制御するために適切な装置の態様(及び/又は方法の態様)を示すブロック概略図である。 本発明の更なる1以上の実施形態に従ったキャッシュメモリを制御するための図1に示された装置の更なる態様(及び/又は方法の更なる態様)を示すブロック概略図である。 図1及び図2のような本発明の1以上の更なる態様に従って実行及び/又は実装される、ある種の動作/機能を表すフロー概略図である。 本発明の1以上の更なる実施形態に従ったキャッシュメモリを制御するための装置の更なる態様(及び/又は方法の更なる態様)を示すブロック概略図である。

Claims (38)

  1. キャッシュメモリを制御するための方法であって、
    キャッシュメモリにデータを記録するためのアドレスと、キャッシュメモリからデータを読出すためのアドレスと、の少なくとも1つのアドレスを受信するステップを含み、前記アドレスは、タグビット及びインデックスビットを含むものであり、
    前記アドレスの前記インデックスビットに対応する前記キャッシュメモリの少なくとも一つのキャッシュラインにアクセスするステップを含み、各キャッシュラインは、アドレスタグ、データ有効フラグ、及びデータ形式フラグを含み、
    前記データ有効フラグに基づいて、少なくとも一つのキャッシュラインのデータが有効であるか否かを判断するステップを含み、
    前記データ形式フラグに基づいて、前記少なくとも一つのキャッシュラインにおいて何れの形式のデータが記録されたかを判断するステップを含み、
    前記少なくとも一つのキャッシュラインのデータが有効であってかつ当該少なくとも一つのキャッシュラインに既に格納されているデータが整数データであるときに、この少なくとも一つのキャッシュラインへの浮動小数点データの上書きを禁止するステップを含む、方法。
  2. (i)前記データが有効であることを示すために前記少なくとも一つのキャッシュラインに前記データ有効フラグを設定するステップと、(ii)前記少なくとも一つのキャッシュラインにおいて浮動小数点データの上書きが禁止されているとき、前記少なくとも一つのキャッシュラインにおける前記データは整数形式であることを示すために前記少なくとも一つのキャッシュラインに前記データ形式フラグを設定するステップと、を含む、請求項1記載の方法。
  3. 前記データ有効フラグ及び前記データ形式フラグのうちの少なくとも一つは、1ビットフラグである、請求項1記載の方法。
  4. 前記データ有効フラグが少なくとも一つのキャッシュラインが有効データを含まないことを示すとき、前記少なくとも一つのキャッシュラインへの整数データの上書きを許可するステップと、
    前記少なくとも一つのキャッシュラインに、前記整数データが有効であることを示すように前記データ有効フラグを設定するステップと、及び、
    前記整数データが整数形式であることを示すように前記少なくとも一つのキャッシュラインに前記データ形式フラグを設定するステップと、を含む、請求項1記載の方法。
  5. 前記データ有効フラグが前記少なくとも一つのキャッシュラインが有効データを含まないことを示すとき、前記少なくとも一つのキャッシュラインに浮動小数点データを上書きすることを許可するステップと、
    前記少なくとも一つのキャッシュラインの前記データ有効フラグを前記浮動小数点データが有効であることを示すように設定するステップと、
    前記少なくとも一つのキャッシュラインの前記データ形式フラグを、前記浮動小数点データが浮動小数点形式であることを示すように設定するステップと、を含む、請求項1記載の方法。
  6. (i)前記データ有効フラグが、前記少なくとも一つのキャッシュラインが有効データを含むことを示し、(ii)前記データ形式フラグが、前記少なくとも一つのキャッシュラインの前記データが整数形式であることを示すときに、前記少なくとも一つのキャッシュラインに整数データを上書きすることを許可するステップを含む、請求項1記載の方法。
  7. 前記少なくとも一つのキャッシュラインに対する前記データ有効フラグを、前記整数データが有効であることを示すように設定するステップと、前記少なくとも一つのキャッシュラインの前記データ形式フラグを、前記整数データが整数形式であることを示すように設定するステップと、の少なくとも1つのステップを含む、請求項6記載の方法。
  8. (i)前記データ有効フラグが、前記少なくとも一つのキャッシュラインが有効データを含むことを示し、(ii)前記データ形式フラグが、前記少なくとも一つのキャッシュラインの前記データが浮動小数点形式であることを示すとき、前記少なくとも一つのキャッシュラインに整数データを上書きすることを許可するステップを含む、請求項1記載の方法。
  9. 前記整数データが有効であることを示すように前記少なくとも一つのキャッシュラインの前記データ形式フラグを設定するステップと、
    前記整数データは整数形式であることを示すように前記少なくとも一つのキャッシュラインの前記データ形式フラグを設定するステップと、の少なくとも1つのステップを含む、請求項8記載の方法。
  10. (i)前記データ有効フラグが、前記少なくとも一つのキャッシュラインが有効データを含むことを示し、(ii)前記データ形式フラグが、前記少なくとも一つのキャッシュラインの前記データが浮動小数点形式であることを示す場合に、前記少なくとも一つのキャッシュラインへの浮動小数点データの上書きを許可するステップを含む、請求項1記載の方法。
  11. 前記少なくとも一つのキャッシュラインの前記データ有効フラグを前記浮動小数点データは有効であることを示すように設定するステップと、
    前記少なくとも一つのキャッシュラインの前記データ形式フラグを前記浮動小数点データは浮動小数点形式であることを示すように設定するステップと、
    の少なくとも一方を含む、請求項10記載の方法。
  12. 前記少なくとも一つのキャッシュラインへの前記浮動小数点データの上書きが禁止されているとき、前記浮動小数点データを読出/記録ユニット又は他のキャッシュメモリに転送するステップを含む、請求項記載の方法。
  13. 前記他のキャッシュメモリは一つのキャッシュラインのみを含む、請求項12記載の方法。
  14. 前記アドレスの前記インデックスビットに応じた前記キャッシュメモリの全部のキャッシュラインにアクセスするステップと、
    前記データ有効フラグに基づいて前記キャッシュラインの何れが有効であるかを判断するステップと、
    対応するデータ有効フラグが当該キャッシュラインに有効データが含まれないことを示すものであるというキャッシュラインのいずれにおいても、浮動小数点データ又は整数データの上書きを許可するステップと、を含む、請求項1記載の方法。
  15. 前記アドレスの前記インデックスビットに対応した前記キャッシュメモリの全てのキャッシュラインにアクセスするステップと、
    前記データ有効フラグに基づいて前記キャッシュラインの何れが有効であるかを判断するステップと、
    前記データ有効フラグの全てが前記キャッシュラインが有効データを含むことを示すときに前記キャッシュラインのいずれにおいても整数データを上書きすることを許可するステップと、を含む、請求項1記載の方法。
  16. 前記キャッシュラインの各々に記録された前記データがいずれの形式のデータであるかを、前記各データ形式フラグに基づいて判断するステップと、
    前記データ有効フラグの全てが前記キャッシュラインが有効データを含むことを示す場合に、前記キャッシュラインに対応するデータ形式フラグが、当該キャッシュラインに記録されているデータの形式が浮動小数点データであることを示す場合に、当該キャッシュラインのいずれにおいても、浮動小数点データの上書きを行うことを許可するステップと、を含む、請求項15記載の方法。
  17. 前記データ有効フラグの全部が前記キャッシュラインが有効データを含むことを示し、かつ前記データ形式フラグのすべてが前記キャッシュラインが整数データを含むことを示す場合に、前記キャッシュラインのいずれにも、浮動小数点データの上書きを行うことを禁止するステップを含む、請求項16記載の方法。
  18. 前記キャッシュラインのいずれにも前記浮動小数点データの上書きを行うことが禁止されるとき、前記浮動小数点データを読出/記録ユニット又は他のキャッシュメモリに転送するステップを含む、請求項17記載の方法。
  19. 前記他のキャッシュメモリは、一つのキャッシュラインのみを含む、請求項18記載の方法。
  20. キャッシュメモリの制御装置であって、
    前記キャッシュメモリにデータを記録するためのアドレスと、前記キャッシュメモリからデータを読出すためのアドレスと、の少なくとも一方を受信するための一つを受信するよう動作可能なアドレスメモリを有し、前記アドレスは、タグビット及びインデックスビットを含むものであり、
    メモリコントローラを有し、
    前記メモリコントローラは、(i)前記キャッシュメモリの前記アドレスの前記インデックスビットに対応した少なくとも一つのキャッシュラインにアクセスするよう動作可能であり、各キャッシュラインはそれぞれがアドレスタグ、データ有効フラグ、及びデータ形式フラグを含むものであり、(ii)前記データ有効フラグに基づいて少なくとも一つのキャッシュラインのデータが有効であるか否か判断するよう動作可能であり、(iii)前記データ形式フラグに基づいて少なくとも一つのキャッシュラインに記録されたデータがどの形式であるかを判断するよう動作可能で、(iv)前記データが有効であってかつ前記少なくとも一つのキャッシュラインに記録された前記データが整数データであるとき、少なくとも一つのキャッシュラインに浮動小数点データの上書きを禁止するよう動作可能である、装置。
  21. 前記メモリコントローラは、更に、
    (i)前記少なくとも一つのキャッシュラインに、当該キャッシュライン内のデータが有効であることを示すように前記データ有効フラグを設定するよう動作可能で、(ii)前記少なくとも一つのキャッシュラインに浮動小数点データの上書きすることが禁止されているときに、前記少なくとも一つのキャッシュラインに対して、当該少なくとも一つのキャッシュラインに含まれるデータが整数形式であることを示すように、当該少なくとも一つのキャッシュラインのデータ形式フラグを設定するよう動作可能である、請求項20記載の装置。
  22. 前記データ有効フラグ及び前記データ形式フラグのうち少なくとも一つは1ビットフラグである、請求項20記載の装置。
  23. 前記メモリコントローラは、(i)前記データ有効フラグが前記少なくとも一つのキャッシュラインに有効データが含まれないことを示すときに、前記少なくとも一つのキャッシュラインに整数データを上書きすることを許可し、(ii)前記少なくとも一つのキャッシュラインに対して前記整数データが有効であることを示すための前記データ有効フラグを設定し、(iii)前記少なくとも一つのキャッシュラインに対して前記整数データが整数形式であることを示すための前記データ形式フラグを設定するよう動作可能である、請求項20記載の装置。
  24. 前記メモリコントローラは、(i)前記データ有効フラグが前記少なくとも一つのキャッシュラインが有効データを含まないことを示すとき、前記少なくとも一つのキャッシュラインに浮動小数点データの上書きを行うことを許可し、(ii)前記少なくとも一つのキャッシュラインに対して、前記浮動小数点データが有効であることを示すように前記データ有効フラグをセットし、(iii)前記少なくとも一つのキャッシュラインに対して、前記浮動小数点データが浮動小数点形式であることを示すように前記データ形式フラグを設定する、請求項20記載の装置。
  25. 前記メモリコントローラは、(i)前記データ有効フラグが、前記少なくとも一つのキャッシュラインが有効データを含むことを示し、かつ、(ii)前記データ形式フラグが、前記少なくとも一つのキャッシュラインのデータが整数データであることを示す場合に、前記メモリコントローラは、前記少なくとも一つのキャッシュラインに整数データを上書きすることを許可するよう動作可能である、請求項20記載の装置。
  26. 前記メモリコントローラは、更に、(i)前記整数データが有効であることを示すように前記少なくとも一つのキャッシュラインの前記データ有効フラグを設定し、(ii)前記整数データが整数形式であることを示すように前記少なくとも一つのキャッシュラインの前記データ形式フラグを設定するか、の少なくとも1つの動作が可能である、請求項25記載の装置。
  27. 前記メモリコントローラは、(i)前記データ有効フラグが、前記少なくとも一つのキャッシュラインが有効データを含むことを示し、かつ、(ii)前記データ形式フラグが、前記少なくとも一つのキャッシュラインの前記データが浮動小数点形式であることを示すとき、前記少なくとも一つのキャッシュラインへの整数データの上書きを許可するよう動作可能である、請求項20記載の装置。
  28. 前記メモリコントローラは、(i)前記整数データが有効であることを示すように前記少なくとも一つのキャッシュラインの前記データ有効フラグを設定するか、又は、(ii)前記整数データは整数形式であることを示すように前記少なくとも一つのキャッシュラインの前記データ形式フラグを設定するか、の少なくとも一方の動作が可能である、請求項27記載の装置。
  29. 前記メモリコントローラは、(i)前記データ有効フラグが前記少なくとも一つのキャッシュラインが有効データを含むことを示し、かつ、(ii)前記データ形式フラグが前記少なくとも一つのキャッシュラインの前記データが浮動小数点形式であることを示すときに、前記少なくとも一つのキャッシュラインに浮動小数点データの上書きを行うことを許可するよう動作可能である、請求項20記載の装置。
  30. 前記メモリコントローラは、(i)前記浮動小数点データが有効であることを示すように前記少なくとも一つのキャッシュラインに前記データ有効フラグを設定するか、又は、(ii)前記浮動小数点データが浮動小数点形式であることを示すように前記少なくとも一つのキャッシュラインの前記データ形式フラグを設定するか、の少なくとも一方の動作が実行可能である、請求項29記載の装置。
  31. 前記メモリコントローラは、前記少なくとも一つのキャッシュラインに前記浮動小数点データの上書きを行うことが禁止されているときに、前記浮動小数点データを読出/記録ユニット又は他のキャッシュメモリに転送するよう動作可能である、請求項20記載の装置。
  32. 前記他のキャッシュメモリは、一つのキャッシュラインのみを含む、請求項31記載の装置。
  33. 前記メモリコントローラは、(i)前記キャッシュメモリにおける前記アドレスの前記インデックスビットに対応した全てのキャッシュラインにアクセスし、(ii)前記データ有効フラグに基づいて何れのキャッシュラインが有効であるかを判断し、(iii)前記キャッシュラインのうち、対応するデータ有効フラグが、そのようなキャッシュラインに有効データが含まれないことを示すものには、いずれも浮動小数点データ又は整数データの上書きを行うことを許可するよう動作可能である、請求項20記載の装置。
  34. 前記メモリコントローラは、(i)前記キャッシュメモリにおける前記アドレスの前記インデックスビットに対応した全てのキャッシュラインにアクセスし、(ii)前記データ有効フラグに基づいて何れのキャッシュラインが有効であるかを判断し、(iii)データ有効フラグのすべてが、前記キャッシュラインに有効データが含まれることを示すとき、前記キャッシュラインの何れに対しても整数データの上書きを許可するよう動作可能である、請求項20記載の装置。
  35. 前記メモリコントローラは、(i)前記各データ形式フラグに基づいて各キャッシュラインに記録されたデータがどの形式であるかを判断し、(ii)データ有効フラグの全部が前記キャッシュラインに有効データが含まれることを示す場合に、キャッシュラインのうち、当該キャッシュラインに対応するデータ形式フラグが、当該キャッシュラインに記録されているデータが浮動小数点データであることを示すもののいずれに対しても浮動小数点データの上書きを許可するよう動作可能である、請求項34記載の装置。
  36. 前記メモリコントローラは、前記データ有効フラグが前記キャッシュラインに有効データが含まれることを示し、かつ前記データ形式フラグの全てがキャッシュラインが整数データを含むことを示す場合に、前記キャッシュラインのいずれに対しても浮動小数点データの上書きを行うことを禁止するよう動作可能である、請求項35記載の装置。
  37. 前記メモリコントローラは、キャッシュラインのいずれに対しても浮動小数点データの上書きが禁止されているとき、浮動小数点データを読出/記録ユニット又は他のキャッシュメモリに転送するよう動作可能である、請求項36記載の装置。
  38. 前記他のキャッシュメモリは、一つのキャッシュラインのみを含む、請求項37記載の装置。
JP2004504120A 2002-05-06 2002-09-16 キャッシュメモリを制御するための方法と装置 Expired - Lifetime JP3974131B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US37819902P 2002-05-06 2002-05-06
US10/187,150 US6751707B2 (en) 2002-05-06 2002-07-01 Methods and apparatus for controlling a cache memory
PCT/US2002/029299 WO2003096194A1 (en) 2002-05-06 2002-09-16 Methods and apparatus for controlling a cache memory

Publications (2)

Publication Number Publication Date
JP2005524905A JP2005524905A (ja) 2005-08-18
JP3974131B2 true JP3974131B2 (ja) 2007-09-12

Family

ID=29272738

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004504120A Expired - Lifetime JP3974131B2 (ja) 2002-05-06 2002-09-16 キャッシュメモリを制御するための方法と装置

Country Status (8)

Country Link
US (1) US6751707B2 (ja)
EP (1) EP1502191B1 (ja)
JP (1) JP3974131B2 (ja)
AT (1) ATE413648T1 (ja)
AU (1) AU2002333656A1 (ja)
DE (1) DE60229790D1 (ja)
ES (1) ES2316653T3 (ja)
WO (1) WO2003096194A1 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7774759B2 (en) * 2003-04-28 2010-08-10 Intel Corporation Methods and apparatus to detect a macroscopic transaction boundary in a program
US7647585B2 (en) * 2003-04-28 2010-01-12 Intel Corporation Methods and apparatus to detect patterns in programs
US8316048B2 (en) * 2004-08-17 2012-11-20 Hewlett-Packard Development Company, L.P. Method and apparatus for managing a data structure for multi-processor access
US20060157115A1 (en) * 2005-01-11 2006-07-20 Andrew Dorogi Regulator with belleville springs
US7739662B2 (en) 2005-12-30 2010-06-15 Intel Corporation Methods and apparatus to analyze processor systems
JP6089890B2 (ja) * 2013-03-29 2017-03-08 富士通株式会社 ストレージ制御装置、ストレージ制御装置の制御方法およびストレージ制御装置の制御プログラム

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4942518A (en) * 1984-06-20 1990-07-17 Convex Computer Corporation Cache store bypass for computer
FR2664719A1 (fr) * 1990-07-10 1992-01-17 Philips Electronique Lab Dispositif de controle pour une memoire tampon a partitionnement reconfigurable.
US5353426A (en) 1992-04-29 1994-10-04 Sun Microsystems, Inc. Cache miss buffer adapted to satisfy read requests to portions of a cache fill in progress without waiting for the cache fill to complete
US5510934A (en) 1993-12-15 1996-04-23 Silicon Graphics, Inc. Memory system including local and global caches for storing floating point and integer data
US6877089B2 (en) * 2000-12-27 2005-04-05 International Business Machines Corporation Branch prediction apparatus and process for restoring replaced branch history for use in future branch predictions for an executing program
US6804799B2 (en) * 2001-06-26 2004-10-12 Advanced Micro Devices, Inc. Using type bits to track storage of ECC and predecode bits in a level two cache

Also Published As

Publication number Publication date
DE60229790D1 (de) 2008-12-18
EP1502191B1 (en) 2008-11-05
AU2002333656A1 (en) 2003-11-11
WO2003096194A1 (en) 2003-11-20
EP1502191A1 (en) 2005-02-02
US6751707B2 (en) 2004-06-15
EP1502191A4 (en) 2007-04-04
ATE413648T1 (de) 2008-11-15
US20030208661A1 (en) 2003-11-06
ES2316653T3 (es) 2009-04-16
JP2005524905A (ja) 2005-08-18

Similar Documents

Publication Publication Date Title
US7055000B1 (en) Disk drive employing enhanced instruction cache management to facilitate non-sequential immediate operands
US7870340B2 (en) Methods and apparatus for controlling hierarchical cache memory
TW201903612A (zh) 記憶體模組及操作記憶體模組的方法
CN109582214B (zh) 数据访问方法以及计算机系统
US9792221B2 (en) System and method for improving performance of read/write operations from a persistent memory device
CN107818052B (zh) 内存访问方法及装置
US20070283108A1 (en) Memory Management System
TWI393050B (zh) 促進多重處理器介面之板內建快取記憶體系統之記憶體裝置及方法及使用其之電腦系統
JPH0512116A (ja) キヤツシユメモリ制御装置
JP2010191638A (ja) キャッシュ装置
CN103076992B (zh) 一种内存数据缓冲方法及装置
US20110167224A1 (en) Cache memory, memory system, data copying method, and data rewriting method
US6065099A (en) System and method for updating the data stored in a cache memory attached to an input/output system
US20200341909A1 (en) Cache data location system
US11126573B1 (en) Systems and methods for managing variable size load units
US5809526A (en) Data processing system and method for selective invalidation of outdated lines in a second level memory in response to a memory request initiated by a store operation
US20110167223A1 (en) Buffer memory device, memory system, and data reading method
US8549227B2 (en) Multiprocessor system and operating method of multiprocessor system
JP3929872B2 (ja) キャッシュメモリ、プロセッサ及びキャッシュ制御方法
JP3974131B2 (ja) キャッシュメモリを制御するための方法と装置
TW200304594A (en) System and method of data replacement in cache ways
JP5635311B2 (ja) リンクされているデータストアにおいて、アイテムの保存およびアイテムの上書きを決定するデータ保存プロトコル
US20230080105A1 (en) Non-volatile storage controller with partial logical-to-physical (l2p) address translation table
JPH04336641A (ja) 処理システムにおける使用のためのデータキャッシュおよび方法
US8214597B2 (en) Cache tentative read buffer

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070327

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070528

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20070613

R150 Certificate of patent or registration of utility model

Ref document number: 3974131

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

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20100622

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20110622

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

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

Free format text: PAYMENT UNTIL: 20120622

Year of fee payment: 5

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

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

Free format text: PAYMENT UNTIL: 20130622

Year of fee payment: 6

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term