JP2005346168A - キャッシュメモリ、システムおよびデータ格納方法 - Google Patents

キャッシュメモリ、システムおよびデータ格納方法 Download PDF

Info

Publication number
JP2005346168A
JP2005346168A JP2004161830A JP2004161830A JP2005346168A JP 2005346168 A JP2005346168 A JP 2005346168A JP 2004161830 A JP2004161830 A JP 2004161830A JP 2004161830 A JP2004161830 A JP 2004161830A JP 2005346168 A JP2005346168 A JP 2005346168A
Authority
JP
Japan
Prior art keywords
data
way
attribute
cache memory
processor
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
JP2004161830A
Other languages
English (en)
Other versions
JP4753549B2 (ja
Inventor
Shiro Yoshioka
志郎 吉岡
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.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP2004161830A priority Critical patent/JP4753549B2/ja
Priority to US11/137,560 priority patent/US7287123B2/en
Priority to CN2009100046593A priority patent/CN101488103B/zh
Priority to CNB2005100742375A priority patent/CN100481026C/zh
Publication of JP2005346168A publication Critical patent/JP2005346168A/ja
Priority to US11/898,601 priority patent/US7574572B2/en
Priority to US12/498,623 priority patent/US7904675B2/en
Application granted granted Critical
Publication of JP4753549B2 publication Critical patent/JP4753549B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • 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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/084Multiuser, multiprocessor or multiprocessing cache systems with a shared cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0842Multiuser, multiprocessor or multiprocessing cache systems for multiprocessing or multitasking
    • 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

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)

Abstract

【課題】動画処理と音声処理を同時に実行する場合、音声処理のデータをキャッシュメモリに格納した影響で、動画処理中で未だキャッシュメモリに滞在が必要なデータがキャッシュメモリから追い出される。動画処理のデータのキャッシュメモリミスが増えることになり、所定の時間に動画処理が終わらなくなっていた。
【解決手段】キャッシュメモリを、動画処理に優先するウェイ100と音声処理を優先するウェイ101と、エントリにデータ属性(動画処理なのか音声処理なのか)を格納するデータ属性格納部110、120と、動画処理中にキャッシュメモリミスが起こり動画処理に優先するウェイ100に動画処理用データが置かれていて音声処理に優先するウェイ101が空席だった場合、メインメモリから持ってきたデータを音声処理に優先するウェイ101に格納するリフィル判定部116、126とを備える。
【選択図】図2

Description

本発明は、複数のデータ処理のデータを格納するキャッシュメモリ、システム、データ格納方法に関する。
主メモリへのアクセスを高速にする目的で、キャッシュメモリをブロックに分割しそれぞれを別のプログラムに割り当てる技術として、例えば特許文献1がある。
特開昭62−144257号公報
しかし上記の技術では、プログラムが使用するブロックを固定にしてしまうため、他のブロックに空き領域があったとしても有効利用することができなかった。さらに、プログラム間でデータを共有する場合は、ブロック自体を共有する必要があるため、全てのプログラムで共有するデータがある場合には、キャッシュメモリに格納できないか、もしくは、プログラムにブロックを割り当てることはできなかった。例えば、システムにおいて動画処理と音声処理を同時に実行する場合、音声処理のデータをキャッシュメモリに格納するために、動画処理中で未だキャッシュメモリに滞在が必要なデータがキャッシュメモリから追い出される。その結果、動画処理のデータのキャッシュメモリミスが増えることになり、所定の時間に動画処理が終わらなくなっていた。
本発明は、異なる種類のデータを格納する場合に一方のデータ処理が他方のデータ処理に悪影響を与えないように効率を向上させたキャッシュメモリ、システムおよびデータ格納方法を提供することを目的とする。
上記課題を解決するため本発明のキャッシュメモリは、セット・アソシエイティブ方式のキャッシュメモリであって、データとタグとを保持する複数のエントリからなる複数のウェイと、ウェイ毎に、優先して格納すべきデータの種類を示す優先属性を保持する第1保持手段と、複数のウェイのうち少なくとも第1のウェイに備えられ、当該ウェイのエントリ毎に、エントリに保持されたデータの種類を示すデータ属性を保持する第2保持手段と、プロセッサから出力されるデータ属性と第1保持手段に保持された優先属性とが一致するウェイを優先してエントリのリプレース制御を行う制御手段とを備える。この制御手段は、さらに、キャッシュミス時に(a)プロセッサからのアドレスによって選択されたセットに属するエントリのうち第1のウェイのエントリに有効なデータが格納されていて、(b)そのエントリのデータ属性とプロセッサからのデータ属性と第1のウェイの優先属性とが一致し、かつ(c)選択された前記セットに属するエントリのうち第1のウェイ以外の他のウェイのエントリに有効なデータがない場合に、当該他のウェイのエントリにデータを格納するよう構成されている。
この構成によれば、優先属性を持つデータに対してウェイを確保すると同時に、ウェイ中の空きエントリは他の属性を持つデータを格納するので、キャッシュメモリを有効活用できる。例えば、異なる種類のデータを格納する場合に一方のデータ処理が他方のデータ処理に悪影響を与えないで効率を向上させることができる。プロセッサから見れば、異なるデータ処理を同時に実行する場合に一方のデータ処理が他方のデータ処理に悪影響を与えないで効率を向上させることができる。
ここで、前記データ属性はプログラムのプロセスIDに基づいてもよい。
この構成によれば、本来のデータ属性の代わりに、プロセスIDを使うことでシステムの構成を簡単にすることができる。
ここで、前記データ属性はアドレスの上位のビットに基づいてもよい。
この構成によれば、予め上位のビットとデータ属性が対応している必要があるけれども、プロセスIDがないシステムにおいても構成を簡単にすることができる。
ここで、前記キャッシュメモリは複数のプロセッサからアクセスされ、前記データ属性はプロセッサ番号に基づいてもよい。
この構成によれば、マルチプロセッサシステムにおいて、ウェイ毎に優先すべきプロセッサを設定でき、キャッシュメモリの管理を簡単にすることができる。
ここで、前記第1保持手段は複数の優先属性を保持するようにしてもよい。
この構成によれば、一方の優先属性に対応する処理と他方の優先属性に対応する処理とが排他的に起こる場合等に、キャッシュメモリの空きエントリをさらに有効活用することができる。
ここで、前記キャッシュメモリは命令キャッシュであり、プロセス消滅時に、当該プロセスが扱ったデータの属性と一致する優先属性のウェイに対して全エントリのデータを無効化する無効化手段を備える構成としてもよい。
この構成によれば、プロセス消滅時にこれ以上アクセスされないデータ(命令)を無効化するので、さらに利用効率を向上させることができる。
ここで、前記各ウェイは、前記第2保持手段を備える構成としてもよい。
ここで、前記制御手段は、ウェイ毎に判定手段を有し、各判定手段は、プロセッサからのアドレスによって選択されたセットに属するエントリのうち、対応するウェイのエントリのデータが有効であるか否かを判定する第1判定部と、キャッシュミス時にプロセッサからのデータ属性と、当該エントリのデータ属性と、対応するウェイの優先属性とが一致するか否かを判定する第2判定部と、前記セットに属するエントリのうち対応するウェイ以外の他のウェイのエントリのデータが有効であるか否かを判定する第3判定部とを備え、各判定手段は、第1判定部によって有効、第2判定部によって一致、かつ第3判定部によって無効と判定された場合に、第3判定部によって無効と判定されたエントリの属するウェイに対応する判定手段にデータ格納を依頼する依頼信号を出力し、他ウェイに対応する判定手段から依頼信号が入力された場合に、プロセッサからのアドレスによって選択されたセットに属するエントリのうち、対応するウェイのエントリにデータを格納する構成としてもよい。
また、本発明のシステムは、第1プロセッサと、第1プロセッサに用いられる第1の1次キャッシュメモリと、第2プロセッサと、第2プロセッサに用いられる第2の1次キャッシュメモリと、第1プロセッサおよび第2プロセッサに用いられる2次キャッシュメモリとを備え、前記第1、第2の1次キャッシュメモリおよび2次キャッシュメモリはそれぞれ上記のキャッシュメモリであることを特徴とする。ここで、前記2次キャッシュメモリにおける第1保持手段は、優先属性としてプロセッサ番号を保持する構成としてもよい。
この構成によれば、異なる処理を同時に実行する場合に一方の処理が他方の処理に悪影響を与えないで効率を向上させたキャッシュメモリを階層的に実現することができる。
また、本発明のデータ格納方法は、データとタグとを保持する複数のエントリからなる複数のウェイと、ウェイ毎に、優先して格納すべきデータの種類を示す優先属性を保持する第1保持部と、複数のウェイのうち少なくとも第1のウェイに備えられ、第1のウェイのエントリ毎に、エントリに保持されたデータの種類を示すデータ属性を保持する第2保持部と、プロセッサから出力されるデータ属性と第1保持部に保持された優先属性とが一致するウェイを優先的にエントリのリプレース制御を行う制御部とを有するセット・アソシエイティブ方式のキャッシュメモリにおけるデータ格納方法であって、キャッシュミス時に、プロセッサからのアドレスによって複数ウェイに跨るエントリのセットを選択するステップと、選択されたセットに属するエントリのうち第1のウェイのエントリのデータが有効か否かを判定する第1判定ステップと、そのエントリのデータ属性とプロセッサからのデータ属性と第1のウェイの優先属性とが一致するか否かを判定する第2判定ステップと、選択された前記セットに属するエントリのうち第1のウェイ以外の他のウェイのエントリのデータが有効か否かを判定する第3判定ステップと、第1判定ステップにおいて有効、第2判定ステップにおいて一致、かつ第3判定ステップにおいて無効と判定された場合に、前記セットに属するエントリのうち第1のウェイ以外の他のウェイのエントリにデータを格納する格納ステップとを有する。
この構成によれば、優先属性を持つデータに対してウェイが確保されると同時に、ウェイ中の空きエントリは他の属性を持つデータを格納するので、キャッシュメモリを有効活用できる。
ここで、前記データ属性は、前記優先属性として用いられない第1データ属性を含み、前記データ格納方法は、さらにキャッシュミスしたデータのデータ属性が第1データ属性であった場合に、選択ステップにおいて選択されたセットに属するエントリのうち、有効なデータが格納されていないエントリがあれば、当該エントリにデータを格納するステップを有する構成としてもよい。
ここで、前記データ属性は、複数種類のデータを同じウェイで共有させるための第2データ属性を含み、前記データ格納方法は、さらにプロセッサにおけるプロセスの消滅時に、第1保持部に保持された優先属性のうち、当該プロセスに関するデータの種類を示す優先属性を第2データ属性に書き換えるステップを有する構成としてもよい。また、前記データ格納方法は、さらにプロセッサにおけるプロセスの生成時に、第1保持部に保持された優先属性のうち、第2データ属性を示す優先属性を当該プロセスに関するデータの種類を示す優先属性に書き換えるステップを有する構成としてもよい。
この構成によれば、そのときの状況に応じて、動的に優先属性を書き換えることにより、さらにキャッシュメモリの有効利用が可能となり、キャッシュメモリのヒット率が高くなる。
ここで、前記キャッシュメモリは命令キャッシュであり、前記データ格納方法は、さらに、プロセス消滅時に、当該プロセスが扱ったデータの属性と一致する優先属性のウェイに対して全エントリのデータを無効化するステップを有する構成としてもよい。
この構成によれば、さらなるキャッシュメモリ利用効率が期待できる。
以上のように本発明に係るキャッシュメモリは、優先属性と同じデータ属性を持つデータに対してウェイを確保すると同時に、ウェイ中の空きエントリは他のデータ属性のデータを格納するので、キャッシュメモリを有効活用できる。例えば、異なる種類のデータを格納する場合に一方のデータ処理が他方のデータ処理に悪影響を与えないで効率を向上させることができる。
データ属性としてプロセスIDを使うことで、システムの構成を簡単にすることができる。
データ属性として上位アドレスを使うことで、プロセスIDがないシステムにおいて簡単に実現することができる。
データ属性としてプロセッサ番号を用いることで、マルチプロセッサシステムに簡単に適用することができる。
また、ウェイの数よりもデータ属性の方が多い場合であっても優先属性にもとづいてキャッシュメモリにデータを格納でき、かつ、キャッシュメモリの空き領域を有効利用してキャッシュメモリヒット率を高くすることができる。
優先属性の書き換えにより、さらにキャッシュメモリの有効利用が可能となり、キャッシュメモリのヒット率が高くなる。
(第1の実施の形態)
図1は本発明の第1の実施の形態におけるキャッシュメモリを備えるシステムの構成を示すブロック図である。このシステムは、2つのプロセッサ1000、1001と、2つの1次キャッシュメモリ1002、1003と、1つの2次キャッシュメモリ1004と、1つのメインメモリ1005と、データバス1006と、プロパティバス1007と、アドレスバス1008とを備え、階層メモリ構造を有している。また、それぞれのプロセッサ1000、1001は複数のプロセスを実行している。
プロセッサ1000は、プロセスID保持部1010とプロセッサ番号保持部1011とを含む。また、プロセッサ1000と1次キャッシュメモリ1002とは、内部データバス1014、内部アドレスバス1013により接続されている。
プロセスID保持部1010は、実行中のプロセスを示すプロセスIDを保持する。このプロセスIDは、アドレスと共に、プロセスID信号1012として1次キャッシュメモリ1002に入力される。
プロセッサ番号保持部1011は、プロセッサ1000を識別するためのプロセッサ番号(例えば0という値)を保持する。このプロセッサ番号は、アドレスと共に、プロセッサ番号信号としてプロパティバス1007を介して2次キャッシュメモリに入力される。
プロセッサ1001もプロセッサ1000と同様である。ただし、プロセッサ1001のプロセッサ番号は1であるものとする。
1次キャッシュメモリ1002、1003と、2次キャッシュメモリ1004は、いずれもウェイ毎に優先属性を保持し、優先属性とデータ属性とか一致するデータをウェイに格納する。さらに、キャッシュメモリ1002、1003、1004は、それぞれリフィルに際して、優先属性とデータ属性とが一致するウェイのエントリが空きでなく、かつ、データ属性と異なる優先属性のウェイにおける同一セット内のエントリが空きであれば、当該エントリにデータを格納するように構成されている。ここで、優先属性およびデータ属性は、例えば、データ又は処理の種類(動画、音声、通信、静止画、テキストなど)、プロセッサID、プロセスIDなどにより指定される。
本実施の形態では、1次キャッシュメモリ1002、1003におけるウェイ0の優先属性は動画データを示す値0、ウェイ1における優先属性は音声データを示す値1に設定されているものとする。また、プロセッサ1000、1001は、それぞれ1次キャッシュメモリ1002、1003にデータ属性としてプロセスIDを出力するものとする。このプロセスIDは、動画処理用プロセスが値0、音声処理用プロセスが値1であるものとする。
また、2次キャッシュメモリ1004におけるウェイ0の優先属性はプロセッサ1000のプロセッサ番号である0、ウェイ1における優先属性はプロセッサ1001のプロセッサ番号である値1に設定されているものとする。プロセッサ1000、1001は、それぞれ2次キャッシュメモリ1004にデータ属性としてプロセッサ番号を出力するものとする。
図2は、キャッシュメモリの構成を示すブロック図である。このキャッシュメモリは、図1に示した1次キャッシュメモリ1002、1003、2次キャッシュメモリ1004それぞれの構成の代表として示している。同図のようにキャッシュメモリはセット・アソシエイティブ方式であり、アドレスレジスタ10と、2つのウェイ100、101(ウェイ0、ウェイ1とも呼ぶ)とを備える。
アドレスレジスタ10は、プロセッサからのメモリアクセスアドレス又は命令フェッチアドレスを保持するレジスタである。同図に示すように、アクセスアドレスは、上位ビットから順に、タグアドレスTA、セットインデックスSI、ワードインデックスWIを含む。たとえばアドレスが32ビット(A31−A0)、タグアドレスが21ビット(A31−A11)、セットインデックスが4ビット(A10−A7)、ワードインデックスが5ビット(A6−A2)であるものとする。
ここで、タグアドレスTAおよびセットインデックスSIで特定されるメモリ中のブロックは、リフィルの単位であり、キャッシュメモリに格納されている場合はラインデータ又はラインと呼ばれる。ラインデータのサイズは、セットインデックスよりも下位のアドレスのビットで定まる。セットインデックスよりも下位のアドレスのビットが7ビット(A6−A0)の場合、ラインデータのサイズは128バイトである。1ワードを4バイトとすると、1ラインデータは32ワードである。
セットインデックスSIは2つウェイに跨る2エントリからなるセットの1つ(例えば図2の網掛け部分)を指す。このセットの数は、セットインデックスSIが4ビットの場合16セットである。
タグアドレスTAは1つのウェイにマッピング可能なメモリ中の領域(そのサイズはセット数×ブロックである)を指す。この領域のサイズは、1つのウェイのサイズでもあり、タグアドレスよりも下位のアドレスビットで定まる。タグアドレスよりも下位のアドレスのビットが11ビット(A10〜A0)の場合、1つのウェイのサイズは2kバイトである。
ワードインデックスWIは、ラインデータを構成する複数ワード中の1ワードを指す。なお、アドレスレジスタ20中の最下位2ビット(A1、A0)は、ワードアクセス時には無視される。
ウェイ0は、複数エントリからなる。
データを格納するデータ部114、データ部114のデータのアドレスのうちタグアドレスの部分をタグとして格納するタグ部113、データ属性を格納するデータ属性格納部110、キャッシュメモリのデータが書き換えられていることを示すダーティビット格納部111、データ部114に有効なデータが格納されていることを示すバリッドビット格納部112、ウェイ0に優先的に格納すべきデータ属性を示す優先属性を保持する優先属性保持部115、ウェイ0のエントリにデータをリフィルすべきか否かを判定するリフィル判定部116を備える。
同様に、ウェイ1は、データを格納するデータ部124、データ部124のデータのアドレスのうちタグアドレスの部分を格納するタグ部123、データ属性を格納するデータ属性格納部120、キャッシュメモリのデータが書き換えられていることを示すダーティビット格納部121、データ部124に有効なデータが格納されていることを示すバリッドビット格納部122、ウェイ1に優先して格納すべきデータ属性を示す優先属性を保持する優先属性保持部125、リフィル判定部126を備える。
図中の網掛け部分はセットインデックス300によって選択されたセット内の2つのエントリを示しており、そのエントリの値がそれぞれデータ属性信号210、220、ダーティビット信号211、221、バリッドビット信号212、222として、リフィル判定部116、126に入力されている。また、データ属性301はプロセッサ1000、1001がデータをアクセスする際に出力するである。データ格納依頼信号303はリフィル判定部116がリフィル判定部126にデータ部124にデータを格納することを依頼するための信号である。データ格納依頼信号302はリフィル判定部126がリフィル判定部116にデータ部114にデータを格納することを依頼するため信号である。である。
図3はキャッシュメモリミスが起こったときの本発明のデータ転送方法を示すフローチャートであり、リフィル判定部116、126それぞれの制御フローを示している。以下、リフィル判定部126の場合を()内に示す。
ステップ500においてリフィル判定部116(126)は、優先属性部115(125)の値とデータ属性301とを比較し、比較の結果、一致する場合にはステップ501へ、一致しない場合にはステップ510へ進む。
ステップ501においてリフィル判定部116(126)は、セットインデックス300によって選択されたエントリのバリッドビット格納部の値であるバリッドビット信号212(222)の値が無効か否かを判定し、無効な場合つまり空きである場合にはステップ502に、有効な場合つまり空きでない場合にはステップ503に進む。
ステップ502においてリフィル判定部116(126)は、データをデータ部114(124)に格納する。
ステップ503においてリフィル判定部116(126)は、セットインデックス300によって選択されたエントリのデータ属性格納部の値であるデータ属性信号210(220)の値がデータ属性301の値と等しいか判定し、等しい場合にはステップ504に、等しくない場合にはステップ508に進む。
ステップ504においてリフィル判定部116(126)は、他のウェイのバリッドビット信号222(212)が無効かどうか(空きかどうか)を判定し、無効な場合にはステップ505に、有効な場合にはステップ506に進む。
ステップ505においてリフィル判定部116(126)は、データ格納要求信号303(302)を出力する。
ステップ506においてリフィル判定部116(126)は、自分のウェイのセットインデックス300によって選択されたエントリのデータ部114(124)のデータをキャッシュメモリから追い出す。つまり、ダーティであればメインメモリ1005にライトバックする。
ステップ507においてリフィル判定部116(126)は、セットインデックス300によって選択されたエントリのデータ部114(124)にプロセッサ1000、1001がアクセスしたデータ(キャッシュメモリミスしたデータ)を格納する。
ステップ508においてリフィル判定部116(126)は、自分のウェイのセットインデックス300によって選択されたエントリのデータ部114(124)のデータをキャッシュメモリから追い出す。
ステップ509においてリフィル判定部116(126)は、セットインデックス300によって選択されたエントリのデータ部114(124)にプロセッサ1000、1001がアクセスしたデータ(キャッシュミスしたデータ)を格納する。
ステップ510においてリフィル判定部116(126)は、データ格納要求信号302(303)が出力されているか判定し、出力されている場合にはステップ511に、出力されていない場合にはステップ512に進む。
ステップ511においてリフィル判定部116(126)は、セットインデックス300によって選択されたエントリのデータ部114(124)にプロセッサ1000、1001がアクセスしたデータ(キャッシュメモリミスしたデータ)を格納する。
図4〜図6は、1次キャッシュメモリ1002又は1003において動画データンキャッシュメモリミスが発生し、セットインデックス300により選択されたセットの2つのエントリにおいて、動画処理が優先属性とするウェイ0のエントリに有効な動画データがあり、かつ、ウェイ1のエントリに有効なデータがなかった場合を示している。この場合、ウェイ1にキャッシュメモリミスしたデータが格納されることになる。
図4は、この場合のリフィル判定部116の制御の様子を示してあり、太字及び太線で示した部分が実行される。
図5は、キャッシュメモリミスが発生した瞬間のキャッシュメモリの各部の様子を示しており、図6は、キャッシュメモリミスしたデータを格納し終えた様子を示している。
ここで、ウェイ1は、優先属性格納部125の値が音声処理なので、データ部124には音声データを格納するのが本来なのだが、セットインデックス300によって選択されたエントリはたまたまデータが格納されていなかったため、キャッシュメモリミスした動画データが格納された。(以下では、「ウェイ1の選択されたエントリにデータが格納されていなかった」ことを「ウェイ1に空席があった」と表現することにする)
以下では、以上のようなキャッシュメモリの振る舞いを、図1のシステム全体の動作として説明する。ここでは、データ属性として、動画、音声、共有(通信、静止画)、その他(テキスト)の4種類があり、処理が5種類あるのに対してウェイの数が2つしかないにもかかわらず、これらの属性を動的に書き換えることで、キャッシュメモリが有効活用されていることが明らかになるであろう。
図7〜図15は、図1に示したシステムの動作を表している。これらの図においてデータ属性定義1は、2次キャッシュメモリに置かれるデータ属性を区別するための塗りつぶしパターンを示し、データ属性定義2は、1次キャッシュメモリに置かれるデータ属性を区別するための塗りつぶしパターンを示す。
ここでは、最初は、1次キャッシュメモリのウェイ0の優先属性格納部には動画処理が、ウェイ1の優先属性格納部には音声処理が格納されており、2次キャッシュメモリのウェイ0の優先属性格納部にはプロセッサ番号の0が、ウェイ1の優先属性格納部にはプロセッサ番号の1が格納されている。
図7では、プロセッサ1000が動画処理を行い、データを1次キャッシュメモリ、2次キャッシュメモリに格納する。図3のデータ格納方法のステップ502が実行された。
図8では、プロセッサ1000が再度画像処理を行い、データを1次キャッシュメモリ、2次キャッシュメモリに格納する。図3のデータ格納方法のステップ505および511が実行された。1次キャッシュメモリにおいて、ウェイ1は音声処理に優先されているが、ウェイ1に空席があるため、動画処理のデータが格納される。2次キャッシュメモリにおいて、ウェイ1はプロセッサ1001に優先されているが、ウェイ1に空席があるため、プロセッサ1000のデータが格納される。
図9では、プロセッサ1が動画処理を行い、データを1次キャッシュメモリ、2次キャッシュメモリに格納する。1次キャッシュメモリにおいては、図3のデータ格納方法のステップ502が実行され、2次キャッシュメモリにおいては、ステップ508、509が実行された。2次キャッシュメモリにおいて、ウェイ1はプロセッサ1001に優先されているので、その前に格納されていたプロセッサ1000のデータが追い出される。
図10では、プロセッサ0が音声処理を行い、データを1次キャッシュメモリ、2次キャッシュメモリに格納する。1次キャッシュメモリにおいて、図3のデータ格納方法のステップ508、509が実行され、2次キャッシュメモリにおいて、ステップ506、507が実行された。1次キャッシュメモリ1002のウェイ1(音声処理優先)に置かれていた動画データが追い出され、音声データが置かれる。
図11では、プロセッサ1が音声処理を行い、データを1次キャッシュメモリ、2次キャッシュメモリに格納する。1次キャッシュメモリにおいて、図3のデータ格納方法のステップ502が実行され、2次キャッシュメモリにおいて、ステップ506、507が実行された。
図12では、プロセッサ0で動画処理のプロセスが消滅し、ウェイ0の優先属性部を共有に変更する。OSがプロセスの消滅生成に際して、優先属性部の値を書き換えるメカニズムを図26に示す。
図26においてプログラムa1、a2はプロセスAに対応し、プログラムb1、b2はプロセスBに対応し、プログラムc1、c2はプロセスCに対応している。プログラムa1は、ユーザによって準備されたプログラムであり、プロセスAが消滅したとき、プロセスAに割り当てたウェイに対する優先属性を設定、変更または削除するためのプログラムである。プログラムa2は、ユーザによって準備されたプログラムであり、プロセスAが生成されるとき、プロセスAに割り当てるウェイに対する優先属性を設定、変更または削除するためのプログラムである。プログラムb1、b2、c1、c2も対応するプロセスについて同様である。OSはプロセスを消滅させたとき、生成したときに、該当するプログラムを呼び出す。同図では、OSがプロセスAを消滅させ、プログラムa1を実行して優先属性部の値を設定している。たとえば図12の場合だと、プログラムa1の内容は、「消滅したプロセスに優先されたウェイの優先属性部を”共有”に書き換える」である。また、プログラムa2の内容は、「生成されるプロセスに優先されたウェイの優先属性部を”動画”に書き換える」である。なお、ユーザは、必ずしもプログラムa1、a2の両方を準備する必要はなく、一方だけを準備してもよい。プログラムb1、b2、c1、c2についても同様である。
図13では、プロセッサ0が通信処理を行い、データを1次キャッシュメモリ・2次キャッシュメモリに格納する。1次キャッシュメモリにおいて、図3のデータ格納方法のステップ508、509が実行された。
図14では、プロセッサ0がテキスト表示を行い、データを2次キャッシュメモリに格納する。ところが、1次キャッシュメモリには空席がないので格納されない。1次キャッシュメモリにおいて、図3のデータ格納方法のステップ512が実行され、2次キャッシュメモリにおいて、ステップ506、507が実行された。
図15では、プロセッサ0が図14とは異なるアドレスでテキスト表示を行い、データを2次キャッシュメモリに格納する。今度は、1次キャッシュメモリに空席があるのでデータが1次キャッシュメモリにも格納される。1次キャッシュメモリ、2次キャッシュメモリにおいて、図3のデータ格納方法のステップ502が実行された。
以上のように、キャッシュメモリのウェイ毎に優先されるデータ属性を指定することで他の属性のデータによってそのウェイが占有されることがないと同時に、優先されるデータ属性が異なるデータであってもキャッシュメモリにデータが格納されていないウェイがあれば、データ格納することを許すので、空き領域が他の属性を持つデータに有効活用できる。
また、データ属性として、共有と、その他とを備えることで、ウェイの数よりもデータ属性の方が多い場合であっても優先属性にもとづいてキャッシュメモリにデータを格納でき、かつ、キャッシュメモリの空き領域を有効利用してキャッシュメモリヒット率を高くすることができる。
また、優先属性として用いられないデータ属性のデータであっても、選択ステップにおいて選択されたセットに属するエントリのうち、有効なデータが格納されていないエントリがあれば、当該エントリにデータを格納するので、有効利用することができる。
プロセッサ1000は、動画処理の必要がなくなると、ウェイ0の優先属性を共有に書き換えることで、ウェイ0が通信処理に有効利用された。そのときの状況に応じて、動的に優先属性を書き換えることで、さらにキャッシュメモリの有効利用が可能となり、キャッシュメモリのヒット率が高くなっている。
他には、データ属性として本来のデータ属性の代わりにプロセスIDを使うことで、システムの構成が簡単にでき、データ属性をプロセッサ番号を用いて生成することで、マルチプロセッサシステムにおいて本発明を実施する際の2次キャッシュメモリの管理が簡単にできる。
(第2の実施の形態)
図16は本発明の第2の実施の形態におけるシステム構成を示すブロック図である。同図のシステムは、図1と比較して、1次キャッシュメモリ1002、1003の代わりに1次キャッシュメモリ2002、2003を備える点が異なっている。以下、同じ構成要素には同じ符号を付してあるので説明を省略し、異なる点を中心に説明する。
1次キャッシュメモリ2002、2003において、各ウェイ内の優先属性格納部は2つの優先属性を格納する点が、図1と異なっている。これにより、優先属性格納部に保持された2つの優先属性のうち一方の属性の処理と他方の属性の処理とが排他的に起こる場合、キャッシュメモリの空き領域がさらに有効活用されることが明らかになるであろう。
図17〜図20は、図16の本発明のシステムの動作を表している。ここでは、1次キャッシュメモリのウェイ0の優先属性格納部には動画処理と通信処理が、ウェイ1の優先属性格納部には音声処理と静止画処理が格納されており、2次キャッシュメモリのウェイ0の優先属性格納部にはプロセッサ番号の0が、ウェイ1の優先属性格納部にはプロセッサ番号の1が格納されている。これらの図においてデータ属性定義3は、2次キャッシュメモリに置かれるデータ属性を区別するための塗りつぶしパターンを示し、データ属性定義4は、1次キャッシュメモリに置かれるデータ属性を区別するための塗りつぶしパターンを示す。
図17では、プロセッサ1000が動画処理を行い、データを1次キャッシュメモリ・2次キャッシュメモリに格納する。
図18では、プロセッサ1000が再び動画処理を行い、データを1次キャッシュメモリ・2次キャッシュメモリに格納する。
図19では、プロセッサ1000は動画処理を完了し、通信処理を開始する。データを1次キャッシュメモリ・2次キャッシュメモリに格納する。
図20では、プロセッサ1000は再度通信処理を行い、データを1次キャッシュメモリ・2次キャッシュメモリに格納する。
以上のように、優先属性格納手段に優先属性を2つ以上格納できるようにすることで、一方の属性の処理と他方の属性の処理とが排他的に起こる場合、キャッシュメモリの空き領域がさらに有効活用される。
(第3の実施の形態)
図21は第3の実施の形態におけるシステム構成を示すブロック図である。このシステムは、図1に示したシステムと比較して、1次キャッシュメモリ2002、2003の代わりにの1次キャッシュメモリ3002、3003を備える点が異なっている。以下、同じ構成要素には同じ符号を付してあるので説明を省略し、異なる点を中心に説明する。
1次キャッシュメモリ3002、3003におけるそれぞれのデータ属性格納部は、ウェイ0のエントリに格納されたデータのデータ属性を、エントリ毎ではなくウェイ0で1つだけ格納する点が異なっている。これにより、ウェイ0は優先属性のデータのみを格納することなり、ウェイ1は第1、第2の実施の形態と同様に優先属性のデータと、空席の場合に異なる優先属性のデータを格納することになる。
図22は、図21の本発明のシステムの様子を表している。
図22においてデータ属性定義5は2次キャッシュメモリに置かれるデータ属性を区別するための塗りつぶしパターンを示し、データ属性定義6は1次キャッシュメモリに置かれるデータ属性を区別するための塗りつぶしパターンを示す。
ここでは、プロセッサ3000だけが動作し時間が経過した後のキャッシュメモリの様子を示した。1次キャッシュメモリのウェイ0には動画データが置かれており、データは連続している。ところが、ウェイ1には音声データ以外に、共有属性のデータが置かれている。これは、音声データには動画データほどは連続性がないため、多少空き領域があり、そこを共有属性のデータが有効利用できているものである。
以上のように、キャッシュメモリ中に複数あるウェイの一部については複数のエントリに対してデータ属性格納手段を1つ設けこれをデータの連続性の高い処理に用いることで、データ属性格納用のメモリを節約することができる。
(第4の実施の形態)
図23は第4の実施の形態におけるシステム構成を示すブロック図である。ここでは、キャッシュメモリは全て命令格納用に用いられている。同図のシステムは、図1に示したシステムとほぼ同じであるが、データバス1006、内部データバス1014、内部データバス1024の代わりに、命令バス4006、内部命令バス4014、内部命令バス4024を有している。これらのバスは、データバスと独立したバスでも、データとの多重化バスでもよい。
図24〜図25は、図23に示したシステムの動作を表している。
図24では、プロセッサ0が動画処理、音声処理、通信を行い、命令を1次キャッシュメモリ。2次キャッシュメモリに格納している。命令は連続性が高いので、ウェイ0のほとんどに動画処理の命令が置かれている。
図25では、動画処理が終わったので、ウェイ0はエントリ毎に全て無効化し、優先属性格納部の値を共有にしている。キャッシュメモリの無効化は、バリッドビット格納部の値を一斉に無効にすることで行われる。図26に、OSがプロセスを生成および消滅する際に、優先属性を設定するプログラムを実行するメカニズムを示したが、プロセスが消滅する際にこのプログラムを実行することでキャッシュメモリの無効化を行う。たとえばプログラムa1は、プロセスAが消滅した際に、ウェイ0に対して、データ属性が消滅したプロセスの優先属性と一致するバリッドビットを全て無効化する。
ウェイ0を無効化しなければ、ウェイ0には動画処理と通信の命令がぎっしり詰まっているため、この後も、音声処理の命令を格納できる可能性はない。ところが、ウェイ0を無効化することで、この後、音声処理の命令をキャッシュメモリに格納しようとしたときに、通信の命令がウェイ0に格納されていなければ音声処理の命令を格納できる。
以上のように、命令を格納する命令キャッシュメモリである場合は、プロセスが消滅した際に優先属性が消滅したプロセスの属性と一致するウェイのバリッドビットを全て無効化するので、さらなるキャッシュメモリ利用効率が期待できる。
なお、上記各実施の形態においては、1次キャッシュメモリのデータ属性としてプロセスIDを用いたが、代わりに、アドレスの上位ビットであっても良い。予め、それぞれのデータの上位アドレスが重ならないように設定できるならば、アドレスの上位ビットをデータ属性の代わりに用いてもよい。この場合、プロセスIDがないシステムにおいて本発明を実施することが可能になる。
また、各実施の形態において、優先属性をウェイ毎に設けているが、エントリ毎に設けるようにしてもよいし、複数エントリからなるグループ毎に設けるようにしてもよい。
なお、第3の実施の形態において、ウェイ0に1つのデータ属性を保持するデータ属性格納部を備えているが、このデータ属性格納部を省略した構成としてもよい。
また、各実施の形態において、2ウェイ・セット・アソシエイティブのキャッシュメモリを開示したが、ウェイ数は2に限らずいくつであってもよい。同様に、セット数、ラインデータのサイズについてもいくつであってもよい。
本発明は、セット・アソシエイティブ方式のキャッシュメモリに適しており、例えば、オンチップキャッシュメモリ、オフチップキャッシュメモリ、データキャッシュメモリ、命令キャッシュメモリ等に適している。また、本発明のシステム、データ格納方法は、複数種類のデータを処理する装置、例えば動画像の符号化や復号化を行うDVDレコーダ、デジタルテレビ、セットトップボックス、携帯電話機、これらの複合機器などに適している。
第1の実施の形態におけるシステム構成を示すブロック図である。 キャッシュメモリの構成を示すブロック図である。 データ格納方法を示すフローチャートを示す図である。 データ格納方法を示す図である。 キャッシュメモリミス発生時のキャッシュメモリの各部の様子を示す図である。 第2の実施の形態におけるシステム構成を示すブロック図である。 システムの動作図である。 システムの動作図である。 システムの動作図である。 システムの動作図である。 システムの動作図である。 システムの動作図である。 システムの動作図である。 システムの動作図である。 システムの動作図である。 システムの図である。 システムの動作図である。 システムの動作図である。 システムの動作図である。 システムの動作図である。 第3の実施の形態におけるシステム構成を示すブロック図である。 システムの動作図である。 第4の実施の形態におけるシステム構成を示すブロック図である。 システムの動作図である。 システムの動作図である。 プロセス消滅時および生成時のメカニズム図である。
符号の説明
10 アドレスレジスタ
100、101 ウェイ
110、120 データ属性格納部
111、121 ダーティビット格納部
112、122 バリッドビット格納部
113、123 タグ部
114、124 データ部
116、126 リフィル判定部
115、125 優先属性格納部
210、220 データ属性信号
211、221 ダーティビット信号
212、222 バリッドビット信号
213、223 優先属性信号
300 セットインデックス
301 データ属性
302、303 データ格納依頼信号
1000、1001 プロセッサ
1002、1003、2002、2003、3002、3003 1次キャッシュメモリ
1004、 2次キャッシュメモリ
1005 メインメモリ
1006 データバス
1007 データ属性信号
1008 アドレスバス
1010 プロセスID
1011、1021 プロセッサ番号
1012、1022 プロセスID信号
1013、1023 内部アドレスバス
1014、1024 内部データバス
4006 命令バス
4014、4024 内部命令バス

Claims (15)

  1. セット・アソシエイティブ方式のキャッシュメモリであって、
    データとタグとを保持する複数のエントリからなる複数のウェイと、
    ウェイ毎に、優先して格納すべきデータの種類を示す優先属性を保持する第1保持手段と、
    複数のウェイのうち少なくとも第1のウェイに備えられ、当該ウェイのエントリ毎に、エントリに保持されたデータの種類を示すデータ属性を保持する第2保持手段と、
    プロセッサから出力されるデータ属性と第1保持手段に保持された優先属性とが一致するウェイを優先してエントリのリプレース制御を行う制御手段と
    を備え、
    前記制御手段は、さらに、キャッシュミス時に(a)プロセッサからのアドレスによって選択されたセットに属するエントリのうち第1のウェイのエントリに有効なデータが格納されていて、(b)そのエントリのデータ属性とプロセッサからのデータ属性と第1のウェイの優先属性とが一致し、かつ(c)選択された前記セットに属するエントリのうち第1のウェイ以外の他のウェイのエントリに有効なデータがない場合に、当該他のウェイのエントリにデータを格納する
    ことを特徴とするキャッシュメモリ。
  2. 前記データ属性はプログラムのプロセスIDに基づくことを特徴とする請求項1記載のキャッシュメモリ。
  3. 前記データ属性はアドレスの上位のビットに基づくことを特徴とする請求項1記載のキャッシュメモリ。
  4. 前記キャッシュメモリは複数のプロセッサからアクセスされ、
    前記データ属性はプロセッサ番号に基づくことを特徴とする請求項1記載のキャッシュメモリ。
  5. 前記第1保持手段は複数の優先属性を保持することを特徴とする請求項1記載のキャッシュメモリ。
  6. 前記キャッシュメモリは命令キャッシュであり、
    プロセス消滅時に、当該プロセスが扱ったデータの属性と一致する優先属性のウェイに対して全エントリのデータを無効化する無効化手段を備えることを特徴とする請求項1記載のキャッシュメモリ。
  7. 前記第1のウェイ以外のウェイもそれぞれ第2保持手段を備えることを特徴とする請求項1記載のキャッシュメモリ。
  8. 前記制御手段は、ウェイ毎に判定手段を有し、
    各判定手段は、
    プロセッサからのアドレスによって選択されたセットに属するエントリのうち、対応するウェイのエントリのデータが有効であるか否かを判定する第1判定部と、
    キャッシュミス時にプロセッサからのデータ属性と、当該エントリのデータ属性と、対応するウェイの優先属性とが一致するか否かを判定する第2判定部と、
    前記セットに属するエントリのうち対応するウェイ以外の他のウェイのエントリのデータが有効であるか否かを判定する第3判定部とを備え、
    各判定手段は、
    第1判定部によって有効、第2判定部によって一致、かつ第3判定部によって無効と判定された場合に、第3判定部によって無効と判定されたエントリの属するウェイに対応する判定手段にデータ格納を依頼する依頼信号を出力し、
    他ウェイに対応する判定手段から依頼信号が入力された場合に、プロセッサからのアドレスによって選択されたセットに属するエントリのうち、対応するウェイのエントリにデータを格納する
    ことを特徴とする請求項7記載のキャッシュメモリ。
  9. 第1プロセッサと、
    第1プロセッサに用いられる第1の1次キャッシュメモリと、
    第2プロセッサと、
    第2プロセッサに用いられる第2の1次キャッシュメモリと、
    第1プロセッサおよび第2プロセッサに用いられる2次キャッシュメモリとを備え、
    前記第1、第2の1次キャッシュメモリおよび2次キャッシュメモリはそれぞれ請求項7記載のキャッシュメモリであることを特徴とするシステム。
  10. 前記2次キャッシュメモリにおける第1保持手段は、優先属性としてプロセッサ番号を保持する
    ことを特徴とする請求項9記載のシステム。
  11. データとタグとを保持する複数のエントリからなる複数のウェイと、ウェイ毎に、優先して格納すべきデータの種類を示す優先属性を保持する第1保持部と、複数のウェイのうち少なくとも第1のウェイに備えられ、第1のウェイのエントリ毎に、エントリに保持されたデータの種類を示すデータ属性を保持する第2保持部と、プロセッサから出力されるデータ属性と第1保持部に保持された優先属性とが一致するウェイを優先的にエントリのリプレース制御を行う制御部とを有するセット・アソシエイティブ方式のキャッシュメモリにおけるデータ格納方法であって、
    キャッシュミス時に、プロセッサからのアドレスによって複数ウェイに跨るエントリのセットを選択するステップと、
    選択されたセットに属するエントリのうち第1のウェイのエントリのデータが有効か否かを判定する第1判定ステップと、
    そのエントリのデータ属性とプロセッサからのデータ属性と第1のウェイの優先属性とが一致するか否かを判定する第2判定ステップと、
    選択された前記セットに属するエントリのうち第1のウェイ以外の他のウェイのエントリのデータが有効か否かを判定する第3判定ステップと、
    第1判定ステップにおいて有効、第2判定ステップにおいて一致、かつ第3判定ステップにおいて無効と判定された場合に、前記セットに属するエントリのうち第1のウェイ以外の他のウェイのエントリにデータを格納する格納ステップと
    を有することを特徴とするデータ格納方法。
  12. 前記データ属性は、前記優先属性として用いられない第1データ属性を含み、
    前記データ格納方法は、さらに
    キャッシュミスしたデータのデータ属性が第1データ属性であった場合に、選択ステップにおいて選択されたセットに属するエントリのうち、有効なデータが格納されていないエントリがあれば、当該エントリにデータを格納するステップを有する
    ことを特徴とする請求項11記載のデータ格納方法。
  13. 前記データ属性は、複数種類のデータを同じウェイで共有させるための第2データ属性を含み、
    前記データ格納方法は、さらに
    プロセッサにおけるプロセスの消滅時に、第1保持部に保持された優先属性のうち、当該プロセスに関するデータの種類を示す優先属性を第2データ属性に書き換えるステップを有する
    ことを特徴とする請求項11記載のデータ格納方法。
  14. 前記データ格納方法は、さらに
    プロセッサにおけるプロセスの生成時に、第1保持部に保持された優先属性のうち、第2データ属性を示す優先属性を当該プロセスに関するデータの種類を示す優先属性に書き換えるステップを有する
    ことを特徴とする請求項13記載のデータ格納方法。
  15. 前記キャッシュメモリは命令キャッシュであり、
    前記データ格納方法は、さらに、
    プロセス消滅時に、当該プロセスが扱ったデータの属性と一致する優先属性のウェイに対して全エントリのデータを無効化するステップを有する
    ことを特徴とする請求項11記載のデータ格納方法。
JP2004161830A 2004-05-31 2004-05-31 キャッシュメモリおよびシステム Expired - Fee Related JP4753549B2 (ja)

Priority Applications (6)

Application Number Priority Date Filing Date Title
JP2004161830A JP4753549B2 (ja) 2004-05-31 2004-05-31 キャッシュメモリおよびシステム
US11/137,560 US7287123B2 (en) 2004-05-31 2005-05-26 Cache memory, system, and method of storing data
CN2009100046593A CN101488103B (zh) 2004-05-31 2005-05-31 高速缓冲存储器、***和数据存储方法
CNB2005100742375A CN100481026C (zh) 2004-05-31 2005-05-31 高速缓冲存储器、***和数据存储方法
US11/898,601 US7574572B2 (en) 2004-05-31 2007-09-13 Cache memory, system, and method of storing data
US12/498,623 US7904675B2 (en) 2004-05-31 2009-07-07 Cache memory, system, and method of storing data

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004161830A JP4753549B2 (ja) 2004-05-31 2004-05-31 キャッシュメモリおよびシステム

Publications (2)

Publication Number Publication Date
JP2005346168A true JP2005346168A (ja) 2005-12-15
JP4753549B2 JP4753549B2 (ja) 2011-08-24

Family

ID=35426741

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004161830A Expired - Fee Related JP4753549B2 (ja) 2004-05-31 2004-05-31 キャッシュメモリおよびシステム

Country Status (3)

Country Link
US (3) US7287123B2 (ja)
JP (1) JP4753549B2 (ja)
CN (2) CN101488103B (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009163450A (ja) * 2007-12-28 2009-07-23 Fujitsu Ltd セクタ機能付きキャッシュメモリ
JP2012088763A (ja) * 2010-10-15 2012-05-10 Fujitsu Ltd プロセッサシステム
JP2012512491A (ja) * 2008-12-30 2012-05-31 インテル・コーポレーション ハードウェアフィールドにロッシーなメタデータを保持するためのメタフィジカルアドレス空間

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4753549B2 (ja) * 2004-05-31 2011-08-24 パナソニック株式会社 キャッシュメモリおよびシステム
US20070094664A1 (en) * 2005-10-21 2007-04-26 Kimming So Programmable priority for concurrent multi-threaded processors
JP2008097572A (ja) * 2006-09-11 2008-04-24 Matsushita Electric Ind Co Ltd 演算装置、コンピュータシステム、および携帯機器
US8108625B1 (en) * 2006-10-30 2012-01-31 Nvidia Corporation Shared memory with parallel access and access conflict resolution mechanism
JP2009181484A (ja) * 2008-01-31 2009-08-13 Panasonic Corp 計算機システムとその制御方法
JP2009251713A (ja) * 2008-04-02 2009-10-29 Toshiba Corp キャッシュメモリ制御装置
US20110055482A1 (en) * 2009-08-28 2011-03-03 Broadcom Corporation Shared cache reservation
CN102388358B (zh) 2011-09-30 2014-07-09 华为技术有限公司 在混合存储环境下配置存储设备的方法和***
WO2013098919A1 (ja) 2011-12-26 2013-07-04 ルネサスエレクトロニクス株式会社 データ処理装置
KR102002925B1 (ko) * 2012-11-01 2019-07-23 삼성전자주식회사 메모리 모듈, 그것을 포함하는 메모리 시스템, 그것의 구동 방법
CN107766079B (zh) * 2016-08-19 2022-03-11 北京百度网讯科技有限公司 处理器以及用于在处理器上执行指令的方法
US11010288B2 (en) 2019-07-31 2021-05-18 Micron Technology, Inc. Spare cache set to accelerate speculative execution, wherein the spare cache set, allocated when transitioning from non-speculative execution to speculative execution, is reserved during previous transitioning from the non-speculative execution to the speculative execution
US11200166B2 (en) 2019-07-31 2021-12-14 Micron Technology, Inc. Data defined caches for speculative and normal executions
US11048636B2 (en) 2019-07-31 2021-06-29 Micron Technology, Inc. Cache with set associativity having data defined cache sets
US11194582B2 (en) 2019-07-31 2021-12-07 Micron Technology, Inc. Cache systems for main and speculative threads of processors
US11487874B1 (en) 2019-12-05 2022-11-01 Marvell Asia Pte, Ltd. Prime and probe attack mitigation
US20230418491A1 (en) * 2022-06-22 2023-12-28 Micron Technology, Inc. Memory block utilization in memory systems

Citations (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01173241A (ja) * 1987-12-28 1989-07-07 Toshiba Corp キャッシュメモリ装置
JPH03235144A (ja) * 1990-02-13 1991-10-21 Sanyo Electric Co Ltd キャッシュメモリ制御装置
JPH04100158A (ja) * 1990-08-18 1992-04-02 Pfu Ltd キャッシュ制御方式
JPH07200412A (ja) * 1993-12-28 1995-08-04 Nec Ic Microcomput Syst Ltd マイクロプロセッサ
JPH09160828A (ja) * 1995-12-06 1997-06-20 Fujitsu Ltd 多重アクセス方法および多重アクセスキャッシュメモリ装置
JPH09237225A (ja) * 1996-03-01 1997-09-09 Toshiba Corp キャッシュ機能を有するコンピュータ及びキャッシュメモリ制御方法
JPH11259362A (ja) * 1998-03-13 1999-09-24 Nec Corp キャッシュメモリ制御方法及び装置
JP2002342163A (ja) * 2001-05-15 2002-11-29 Fujitsu Ltd マルチスレッドプロセッサ用キャッシュ制御方式
JP2003030047A (ja) * 2001-07-16 2003-01-31 Fujitsu Ltd キャッシュ装置およびキャッシュ方法
US20030131196A1 (en) * 2001-12-04 2003-07-10 Samsung Electronics Co., Ltd. Cache memory capable of selecting size thereof and processor chip having the same
US6687790B2 (en) * 1994-08-03 2004-02-03 Intel Corporation Single bank associative cache
JP2004078944A (ja) * 2002-08-13 2004-03-11 Internatl Business Mach Corp <Ibm> 価値ベース・キャッシング
JP2004110240A (ja) * 2002-09-17 2004-04-08 Mitsubishi Electric Corp キャッシュメモリ装置
US6725334B2 (en) * 2000-06-09 2004-04-20 Hewlett-Packard Development Company, L.P. Method and system for exclusive two-level caching in a chip-multiprocessor
JP2004145780A (ja) * 2002-10-28 2004-05-20 Mitsubishi Electric Corp マルチプロセッサ・キャッシュ装置
JP2004326187A (ja) * 2003-04-21 2004-11-18 Matsushita Electric Ind Co Ltd 情報処理装置およびその制御方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62144257A (ja) 1985-12-19 1987-06-27 Mitsubishi Electric Corp キヤツシユメモリ
EP0442474B1 (en) 1990-02-13 1997-07-23 Sanyo Electric Co., Ltd. Apparatus and method for controlling cache memory
US6726285B2 (en) 2000-07-03 2004-04-27 Herman Miller, Inc. Cellular chair construction
WO2005048112A1 (ja) 2003-11-12 2005-05-26 Matsushita Electric Industrial Co., Ltd. キャッシュメモリおよびその制御方法
JP4753549B2 (ja) * 2004-05-31 2011-08-24 パナソニック株式会社 キャッシュメモリおよびシステム

Patent Citations (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01173241A (ja) * 1987-12-28 1989-07-07 Toshiba Corp キャッシュメモリ装置
JPH03235144A (ja) * 1990-02-13 1991-10-21 Sanyo Electric Co Ltd キャッシュメモリ制御装置
JPH04100158A (ja) * 1990-08-18 1992-04-02 Pfu Ltd キャッシュ制御方式
JPH07200412A (ja) * 1993-12-28 1995-08-04 Nec Ic Microcomput Syst Ltd マイクロプロセッサ
US6687790B2 (en) * 1994-08-03 2004-02-03 Intel Corporation Single bank associative cache
JPH09160828A (ja) * 1995-12-06 1997-06-20 Fujitsu Ltd 多重アクセス方法および多重アクセスキャッシュメモリ装置
JPH09237225A (ja) * 1996-03-01 1997-09-09 Toshiba Corp キャッシュ機能を有するコンピュータ及びキャッシュメモリ制御方法
JPH11259362A (ja) * 1998-03-13 1999-09-24 Nec Corp キャッシュメモリ制御方法及び装置
US6725334B2 (en) * 2000-06-09 2004-04-20 Hewlett-Packard Development Company, L.P. Method and system for exclusive two-level caching in a chip-multiprocessor
JP2002342163A (ja) * 2001-05-15 2002-11-29 Fujitsu Ltd マルチスレッドプロセッサ用キャッシュ制御方式
JP2003030047A (ja) * 2001-07-16 2003-01-31 Fujitsu Ltd キャッシュ装置およびキャッシュ方法
US20030131196A1 (en) * 2001-12-04 2003-07-10 Samsung Electronics Co., Ltd. Cache memory capable of selecting size thereof and processor chip having the same
JP2004078944A (ja) * 2002-08-13 2004-03-11 Internatl Business Mach Corp <Ibm> 価値ベース・キャッシング
JP2004110240A (ja) * 2002-09-17 2004-04-08 Mitsubishi Electric Corp キャッシュメモリ装置
JP2004145780A (ja) * 2002-10-28 2004-05-20 Mitsubishi Electric Corp マルチプロセッサ・キャッシュ装置
JP2004326187A (ja) * 2003-04-21 2004-11-18 Matsushita Electric Ind Co Ltd 情報処理装置およびその制御方法

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009163450A (ja) * 2007-12-28 2009-07-23 Fujitsu Ltd セクタ機能付きキャッシュメモリ
US8583872B2 (en) 2007-12-28 2013-11-12 Fujitsu Limited Cache memory having sector function
JP2012512491A (ja) * 2008-12-30 2012-05-31 インテル・コーポレーション ハードウェアフィールドにロッシーなメタデータを保持するためのメタフィジカルアドレス空間
JP2012088763A (ja) * 2010-10-15 2012-05-10 Fujitsu Ltd プロセッサシステム

Also Published As

Publication number Publication date
US7574572B2 (en) 2009-08-11
US20090271575A1 (en) 2009-10-29
US20080016299A1 (en) 2008-01-17
CN101488103B (zh) 2011-05-25
US20050268041A1 (en) 2005-12-01
CN1704911A (zh) 2005-12-07
JP4753549B2 (ja) 2011-08-24
CN100481026C (zh) 2009-04-22
US7904675B2 (en) 2011-03-08
US7287123B2 (en) 2007-10-23
CN101488103A (zh) 2009-07-22

Similar Documents

Publication Publication Date Title
JP4753549B2 (ja) キャッシュメモリおよびシステム
JP4044585B2 (ja) キャッシュメモリおよびその制御方法
CN105095094B (zh) 内存管理方法和设备
US7681020B2 (en) Context switching and synchronization
JP3620473B2 (ja) 共有キャッシュメモリのリプレイスメント制御方法及びその装置
US20070016719A1 (en) Memory device including nonvolatile memory and memory controller
JPH10254772A (ja) キャッシュ・メモリ階層内で利用するキャッシュ・コヒーレンシ機構を実施するための方法およびシステム
JPH0340046A (ja) キャッシュメモリ制御方式および情報処理装置
JP2006085292A (ja) 演算処理装置
JP3900025B2 (ja) 共有キャッシュメモリのヒット判定制御方法及び共有キャッシュメモリのヒット判定制御方式
US7555610B2 (en) Cache memory and control method thereof
US7428615B2 (en) System and method for maintaining coherency and tracking validity in a cache hierarchy
JPH11288386A (ja) コンピュータシステム
US7219197B2 (en) Cache memory, processor and cache control method
KR20050007907A (ko) 동적으로 할당 또는 해제되는 버퍼를 가지는 캐쉬 메모리장치, 이를 구비한 디지털 데이터 처리 시스템 및 그 방법
JP2004110240A (ja) キャッシュメモリ装置
JP2004326175A (ja) プロセッサ、キャッシュシステム及びキャッシュメモリ
JP2005346582A (ja) システムlsi及び画像処理装置
JP4765249B2 (ja) 情報処理装置およびキャッシュメモリ制御方法
JP3938177B2 (ja) データ処理装置及びデータ処理装置におけるメモリ割り当て方法
WO2010098152A1 (ja) キャッシュメモリシステムおよびキャッシュメモリ制御方法
JP3260566B2 (ja) 情報処理システムにおける記憶制御方法および記憶制御装置
CN117311638A (zh) 缓存管理方法、缓存管理装置、处理器
JPH04363738A (ja) キャッシュメモリ装置
JPH046985B2 (ja)

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070208

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100406

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100413

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110222

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110413

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110524

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

Free format text: PAYMENT UNTIL: 20140603

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4753549

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees
S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350