JP2000172563A - 部分キャッシュ・クリ―ニングを用いるコンピュ―タ回路システムと方法 - Google Patents

部分キャッシュ・クリ―ニングを用いるコンピュ―タ回路システムと方法

Info

Publication number
JP2000172563A
JP2000172563A JP10377028A JP37702898A JP2000172563A JP 2000172563 A JP2000172563 A JP 2000172563A JP 10377028 A JP10377028 A JP 10377028A JP 37702898 A JP37702898 A JP 37702898A JP 2000172563 A JP2000172563 A JP 2000172563A
Authority
JP
Japan
Prior art keywords
cache
data
address
lines
memory
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
JP10377028A
Other languages
English (en)
Other versions
JP4307604B2 (ja
Inventor
Gerard Chauvel
ショベル ジェラール
Serge Lasserre
ラッセール セルジ
Inverno Dominique D
ダンベルノ ドミニク
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.)
Texas Instruments Inc
Original Assignee
Texas Instruments 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 Texas Instruments Inc filed Critical Texas Instruments Inc
Priority to JP37702898A priority Critical patent/JP4307604B2/ja
Publication of JP2000172563A publication Critical patent/JP2000172563A/ja
Application granted granted Critical
Publication of JP4307604B2 publication Critical patent/JP4307604B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Abstract

(57)【要約】 【課題】 ミスヒットが発生したキャッシュメモリを高
速でクリーニングする回路、システムおよび方法を開示
する。 【解決手段】 本システムは所定の数のラインをもつキ
ャッシュメモリ12bを含む。この方法は、複数の書込
みアドレスに対応する位置のキャッシュメモリにデータ
を書込み(ステップ64)、メモリ12bに対して選択
した数のラインをクリーニングする(ステップ68)。
選択した数のラインをクリーニングするステップは、該
ライン内のデータに対応するダーティ・インジケータを
調べ、該ライン内のデータがダーティであることを該イ
ンジケータが表示すると、該データを該ラインから別の
メモリにコピーする。最終的には、選択したクリーニン
グするラインの数は、前記所定のライン数より少なくな
る。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本実施例は、1つまたはそれ
以上のキャッシュメモリを実現する計算機使用環境に関
する。
【0002】
【発明が解決しようとする課題】キャッシュ回路は、
(たとえば、マイクロプロセッサなど)現代の計算シス
テムにおいて、情報にアクセスするために必要な時間の
潜在的な長さを短縮することによって、システムの性能
を高めるために頻繁に使用される重要な構成要素であ
る。普通、キャッシュ回路には、一般にランダムアクセ
スメモリ(RAM)であるタグメモリなど、各種の構成要
素が含まれている。タグRAMは、一般に個別のキャッ
シュ・データRAMに格納されたキャッシュデータに対
応する、いわゆるタグ情報を格納する。タグ情報には
(たとえば、外部メモリ構造体のような)何らかの別の
メモリデバイス内でキャッシュに入れられたデータ(ca
ched data)を見つけることができる実際のアドレスの
ように、キャッシュに入れられたデータに対応する各種
の特長が含まれている。回路の他の構成要素は、タグR
AMに関連しているヒット検出回路である。(Nウエイ
・セット・アソシアティヴ・キャッシュ回路(N-way se
t associative cache circuit)にはこの回路がn個あ
る)ヒット検出回路は、タグ情報の一部として格納され
ている実際のアドレスと、着信アドレス(incoming add
ress)を比較する。この比較が一致すると、キャッシュ
回路にヒットがあるという。つまり、キャッシュ・デー
タRAMから、この着信アドレスで探索されるデータを
直接検索することができ、反対にこの比較が一致しなけ
れば、キャッシュ回路でミスがあるという。つまり、こ
の着信アドレスで探索されるデータはキャッシュ・デー
タRAMの中に位置していないか、何らかの別の理由で
あてにできない。キャッシュ・ミスの場合は、メイン・
メモリ(つまり外部メモリ)など、メモリ階層の上位メ
モリか、システムの上位レベルに位置している別のキャ
ッシュメモリからデータを検索しなければならない。し
たがって、キャッシュ・ミスの後のデータアクセスは、
キャッシュ・ヒットの場合のアクセス時間に比較して、
非常に長い時間が必要になる。実際、外部メモリから検
索するためのアクセスの場合、キャッシュ・ヒットが発
生したときのアクセス時間に比較すると、所要時間はか
なり長くなるであろう。
【0003】上述の説明は、キャッシュ・メモリが有利
であると一般に考えられていることを示しているが、計
算機および計算機使用環境がさらに複雑になると、キャ
ッシュ動作をもっと詳細に精査して、さらに能率が追加
するか否かを決定する必要がある。この点に関し、本発
明者は、キャッシュ回路のある種の動作のコンテクスト
において、いくつかのクロックサイクルを減少させるこ
とができることを確認している。キャッシュ動作に関連
して使用されるクロックサイクルを減少させると、シス
テムの速度が改善する。またこのクロックサイクルの減
少は、携帯形コンピュータなど、多くの現代のシステム
で大きな問題になっているシステム全体の電力消費を減
少させることにもなる。
【0004】
【発明が解決しようとする課題】1つの好適実施例の中
に、計算システムを動作させる方法がある。この計算シ
ステムにはキャッシュ・メモリが含まれており、このキ
ャッシュ・メモリには所定の数のキャッシュ・ラインが
ある。最初にこの方法は、複数の書込みアドレスに対し
て、その複数の書込みアドレスのそれぞれに対応する位
置にあるキャッシュ・メモリにデータを書込む。次にこ
の方法は、キャッシュ・メモリ内の選択した数のライン
をクリーニングする。クリーニングするステップは、選
択した数のラインのそれぞれに対して、そのラインにお
けるデータに対応するダーティ・インジケータを評価し
て、ダーティ・インジケータがそのライン内のデータが
ダーティであることを示している場合は、そのラインか
ら他のメモリにデータをコピーする。最終的に、選択さ
れたクリーニングするラインの数は、所定のキャッシュ
・ラインの数より少ない。また、その他の回路、システ
ムおよび方法が開示されているとともに請求の範囲に明
記されている。
【0005】
【発明の実施の形態】図1は、一般的な無線データプラ
ットホーム10の好適実施例を示しており、この無線デ
ータプラットホームの中で、この本明細書中に説明され
ている各種のキャッシュの実施例を実現することができ
るとともに、この無線データプラットホームは、たとえ
ば、スマートホン(Smartphone)または携帯コンピュー
タの実現に使用することができる。無線データ・プラッ
トホーム10には、それぞれ対応する命令メモリ管理ユ
ニット(MMU)12c、12dを備えた命令キャッシ
ュ12aおよびデータキャッシュ12bを有する汎用
(ホスト)プロセッサ12が含まれており、バッファ回
路12eおよび動作コア12fも示されているが、これ
らの回路はすべてシステムバスSBUSを使用して交信
する。SBUSには、データSBUSd、アドレスSB
USaおよび制御SBUScの導線が含まれている。
(示されていない)自身の内部キャッシュを有するディ
ジタル信号プロセッサ(DSP)14aおよび周辺装置
インターフェース14bがSBUSに接続されている。
示されていないが、ディジタル・アナログ変換器(DA
C)またはネットワークインターフェースを含む各種周
辺装置を周辺装置インターフェース14bに接続するこ
とができる。DSP14aおよび周辺装置インターフェ
ース14bは、DMAインターフェース16に接続され
ており、DMAインターフェース16はさらにDMAコ
ントローラ18に接続されている。またDMAコントロ
ーラ18は、LCDまたはビデオディスプレー22と交
信するビデオまたはLCDコントローラ20と同様、S
BUSに接続されている。DMAコントローラ18は、
アドレスバス24a、データバス24dおよび制御バス
24cを介してメイン・メモリに接続されているが、こ
の好適実施例のメインメモリは同期ダイナミックランダ
ムアクセスメモリ(SDRAM)24である。同様にD
MAコントローラ18は、アドレスバス26a、データ
バス26dおよび制御バス26cを介して、1つ(また
は複数)のフラッシュメモリ26に接続されている。
【0006】無線データ・プラットホーム10の一般的
動作の側面は、無線データ・プラットホーム10が汎用
プロセッサ12とDSP14aとの双方を使用している
ことを説明することによって、本発明の概念と関連して
理解される。このように、1つのメモリを共用する複数
のコアがあるので、後で説明する本発明の方法は、マル
チコアシステムなどのシステム性能に各種の改善をもた
らすことが理解できるであろう(これは、無線データ・
プラットホーム10とは別のシステムの場合であっても
よい)。また、以下に説明する本発明の側面の多くは、
単一プロセッサシステムの動作を改善することもできる
ことに注意されたい。
【0007】次に本好適実施例のキャッシュの側面に注
意を向けると、図2は、例として、図1の汎用プロセッ
サ12のデータキャッシュ12bのアーキテクチャを示
している。これの構造を詳細に説明する前に、本発明の
各種の教示は、命令キャッシュ12a、DSP14aの
1つまたは両方のキャッシュ、または(たとえば、一体
化されたキャッシュのような)プラットホーム10内の
さらに別のキャッシュなど、他のキャッシュと関連して
実現されうることが理解されるはずである。また、以下
に説明する本発明の各種教示は、キャッシュ・メモリの
恩恵を受けるであろうスマートホン、PDA、パームトッ
プコンピュータ、ノートブックコンピュータ、デスクト
ップコンピュータなどを含む処理装置とともに使用され
うる。最後に、データキャッシュ12bに関して各種の
詳細が以下に示されるが、(たとえば、セット・アソシ
エーション、アレイ・サイズ、アドレスおよび記憶装置
の長さなど)これらの詳細の多くは、説明を判りやすく
する目的にすぎないことに注意されたい。
【0008】次に図2に示すデータ・キャッシュ12b
の詳細に注目すると、データ・キャッシュ12bには、
メモリアドレスを受信するキャッシュ制御装置28が含
まれているが、この場合のメモリアドレスは32ビット
のデータアドレスDA[31:0]の一部分であり、この受信さ
れる部分には、メモリアドレスを受信するキャッシュ制
御装置28が、32ビットのアドレスのビット「4」か
らビット「11」を受信することを示すビット「[11:4]」
と、これと同様、32ビットのアドレスのビット「0」
からビット「1」を受信することを示すビットDA[1:0]と
が含まれている。キャッシュ制御装置28は、バーチャ
ル・タグ・アレイ30vに接続されており、データ・ア
レイ32のラインに対応するタグを格納する。この点と
後で行う考察の説明に関しては、バーチャル・タグ・ア
レイ30vはデータ・アレイ32の中の各ラインのダー
ティ・ビットを格納するが、この場合、ダーティ・デー
タの表示は、データ・アレイ32にもってこられたデー
タが変更されたが、メモリシステム(たとえば、メイン
・メモリ)の上位メモリに、その変更されたコピーが出
力されていないことを表していることは、キャッシュ技
術において公知である。またデータ・アレイ32の各ラ
インに対応して含まれている表示は、LRUインジケー
タ・アレイ34内のLRUビット(最近少しも使用され
ていないことを示すビット)および有効性インジケータ
・アレイ36内の有効性ビットである。
【0009】好適実施例においては、データ・キャッシ
ュ12bは2ウエイセットアソシアティブキャッシュ
(2way set associative cache)として配列されてい
るので、タグ・アレイ30vには、それぞれ2つのプレ
イン30av、30bvがある。同様にデータ・アレイ3
2には、2つのメモリプレイン32a、32bがある。
図示の実施例においては、各プレイン32a、32bは
1024×32ビット(すなわち4バイト)であるか
ら、16バイトのラインを形成するためには4つの連続
したアドレスを必要とする。プレイン30av、30bv
の出力は、それぞれの比較器38a、38bに出力され
る。DA[31:12]も両比較器38a、38bに接続されて
いる。各比較器38a、38bは、それぞれウエイ1ヒ
ット(Hit way1)およびウエイ2ヒット(Hit way2)と
命名された1ビットの出力を発生させる。ウエイ1ヒッ
ト信号およびウエイ2ヒット信号は、それぞれの転送ゲ
ート40a、40bの制御入力に接続され、各転送ゲー
トは、出力としてアドレスが指定されたデータ・アレイ
32ビットのデータDD[31:0]を与える。
【0010】セットアソシアティブキャッシュの動作は
当技術では公知であるから、キャッシュ・クリーニング
・プロセスに、より詳細に関連して後で行う考察で理解
できる詳細な説明のコンテクストを与えるために、ここ
では読取り動作だけについて要約されている。読取り動
作に注目すると、メモリアクセスのためにアドレスDA[3
1:0]が受信されると、アドレスビットDA[11:4]は、バー
チャル・タグ・アレイ30vの各プレインプレイン30
av、30bvへのアドレスとして使用される。各プレイ
ン30av、30bvは、そのアドレスに対応して、タグ
・ビットTag_DA[31:12]を出力するが、この場合、
そのタグにはデータ・アレイ32に格納されるデータの
アドレスの表示が含まれている。次にビットDA[31:12]
は、一致(すなわちヒット)するか否かを決定するため
比較器38a、38bを介してそのタグと比較され、一
致する場合は、比較器38a、38bのどちらかの出力
が、それぞれウエイ1ヒット信号またはウエイ2ヒット
信号を動作可能にする。この同じプロセス中に、この例
ではビットDA[11:4]になっているアドレスのインデック
ス部がデータ・アレイのプレイン32a、32bに適用
される。したがって、両プレインが、そのインデックス
からの情報を出力して、ウエイ1ヒット信号またはウエ
イ2ヒット信号が動作可能になると、出力データDD[31:
0]としてこれらのプレインのどれか1つの出力が現れ
る。いうまでもなく、キャッシュミスが発生すると(つ
まり、ウエイ1ヒット信号もウエイ2ヒット信号も動作
可能にならないと)、メモリ階層におけるキャッシュ1
2bより上位のメモリからアドレス指定された情報が探
索される。最後にタグメモリ内の各メモリアドレスに、
アレイ・インジケータ36内の対応する有効性ビットが
あるようになることを想起されたい。これらのビット
は、キャッシュ内の対応する位置にあるデータが有効で
あるか否かを表示する。LRUアレイ・インジケータ3
4内のビットは、キャッシュミスの後、プレイン32
a、32bのどのラインを更新するか決定する。
【0011】データ・キャッシュ12bにはキャッシュ
・クリーン機能も含まれているが、この機能は、次に図
3のブロック図によって最初に機能的に詳細に説明する
ように、キャッシュ動作の能率を大幅に改善することが
できる。特に図3は、キャッシュ・クリーン機能に関す
る限り、キャッシュ制御装置28を非常に詳細に示して
いる。キャッシュ制御装置28には、I_MAXと命名され
たアドレスの値を格納するためのアドレス・レジスタ4
2が含まれており、後で判るように、このアドレス・レ
ジスタ42は、次に説明する追加回路によって制御さ
れ、データアドレス・インデックス(つまりDA[11:4])
のいくつかのコピーを格納する。アドレス・レジスタ4
2のアドレス入力は転送ゲート(passgate)44の出力
に接続されており、このゲートには、アドレス・インデ
ックスDA[11:4]を受信するために接続されているデータ
入力がある。また、アドレス・インデックスDA[11:4]は
比較器46の入力に接続されており、さらに比較器46
はアドレス・レジスタ42に格納されたI_MAXの値を受
信するように接続されている。以下、詳細に説明する理
由から、データ・キャッシュ12bへの書込みに応答し
てキャッシュヒットが発生すると、比較器46は、I_MA
Xの値が着信アドレス・インデックスDA[11:4]より大き
いか否かを決定し、大きい場合は、転送ゲート44の制
御入力を動作可能にするので、その時の着信アドレス・
インデックスDA[11:4]がアドレス・レジスタ42にコピ
ーされて、I_MAXの値を更新する。
【0012】図3について補足すると、キャッシュ制御
装置28にはキャッシュ・クリーン処理回路48が含ま
れており、この回路48は、バーチャル・タグ・アレイ
30vから与えられる1つの入力としてダーティ・ビッ
トを受信するために接続されているとともに、以下、詳
細に説明する機能を動作可能にするCACHE_CLE
AN信号を受信するために接続されている。実際にCA
CHE_CLEAN信号は、レジスタ42内のI_MAXの
値をクリアーするために接続されることに注意された
い。またレジスタ42内のI_MAXの値は、キャッシュ・
クリーン処理回路48に対する入力である。キャッシュ
・クリーン処理回路48の構造は、次に述べる図4、5
の説明から判るように、キャッシュ・クリーン処理回路
48の機能が与えられている各種の代替回路から当業者
によって選択されうる。
【0013】図4は、全体を参照番号50で示す方法の
流れ図を示しており、この流れ図はデータ・アレイ32
の書込みに関するキャッシュ制御装置28の好適動作を
説明しているが、かかる方法の大部分は、図3に示す回
路ブロックの動作を介して達成される。方法50はステ
ップ52で開始し、ここで(レジスタ42内の)I_MAX
の値がゼロにクリアーされる。好適実施例においては、
CACHE_CLEAN信号を立ち上げることによっ
て、このステップを達成することができることに注意さ
れたい。さらにこの点について、本実施例が、コンテク
ストスイッチを含む動作に関連して改善をもたらしてい
ることは、方法50の考察の結論によって理解できるで
あろう。示されていないが、実際にステップ52は、第
1のコンテクストスイッチに対する応答に伴うデータ・
キャッシュ12bの初期化の重要な役割であろう。コン
テクストスイッチは当業者には公知の用語であるにして
も、これらの代替方法を説明した後では、コンテクスト
スイッチの意味を吟味することは、本明細書の読者のた
めに役立つであろう。コンテクストスイッチは、オペレ
ーティングシステムによって頻繁に実行される外部割り
込みまたはクロックタイマーの満了など、いろいろな事
象(events)に応答して発生する。このスイッチがプロ
セスの変更に関連していることは、プラットホーム10
または各種動作が複数のプロセスに分かれている、他の
プロセッサに制御されるシステムの中で判ることであ
る。各プロセスは各種の事項(matters)によって定義
されており、しかもこれらの事項には、プロセスによっ
て使用されるメモリの領域、プロセスの入出力マッピン
グ、アドレス変換のようなプロセスのメモリ管理、およ
び通常は汎用レジスタに格納される値を特長づけるプロ
セスが含まれることが多い。コンテクストスイッチは、
現在のプロセスが新しいプロセスに変更される場合に発
生する。このため、次のプロセス(または、いくつかの
別のプロセス)が正しく動作するように、この最新のプ
ロセスに関するこれらの側面のそれぞれを説明する情報
を格納する必要がある場合、現在の最新プロセスである
ことが、もう一度切り替えられると、そのプロセスが再
び最新プロセスになるように、この情報を検索すること
ができる。
【0014】次に方法50に戻ると、ステップ52の
後、流れはステップ54に続く。ステップ54は、デー
タ・キャッシュ12bを含むメモリシステムに書込みア
ドレスが発行されることを表している。したがって、図
1を簡単に振り返ってみると、SDRAM24にデータ
を書込むためコア12fがアドレスを発行するとステッ
プ52の実例が発生するのであるから、SDRAM24
は、下位レベルにあるデータ・キャッシュ12bを含む
メモリシステムの中では上位にあることに注意された
い。次に方法50はステップ54からステップ56に続
く。
【0015】ステップ56は、ステップ54で発行され
た書込みアドレスに応答して、データ・キャッシュ12
bでヒットが発生するか否かを決定する。キャッシュヒ
ットが発生しないと(つまりキャッシュミスが発生する
と)、方法50はステップ56からステップ58に続
く。逆に、キャッシュヒットが発生すると、方法50は
ステップ56からステップ60に続く。これらの代替経
路のそれぞれを以下に説明する。
【0016】ステップ58の場合に注目するとともに、
キャッシュミスに応答してステップ58が発生すること
を認識すると、ステップ58は、キャッシュ技術で公知
の方法と同様に単独で動作する。特にステップ58は、
データ・キャッシュ12b以外の記憶回路の中のアドレ
ス位置にデータを書込む。たとえばプラットホーム10
においては、この書込みはSDRAM24内の適切なア
ドレスに対して行われる。
【0017】キャッシュヒットが発生すると実行される
ステップ60の場合に注目すると、ステップ60は、現
在のアドレス・インデックスDA[11:4]の値がI_MAXの値
より大きいか否かを決定する。しばらく図3に戻ると、
ステップ60の動作は比較器46によって達成されうる
ことに注意されたい。アドレス・インデックスDA[11:4]
の値がI_MAXの値より大きい場合、方法50はステップ
60からステップ62に続き、そうでない場合は、方法
50はステップ64に進むが、まずステップ62の動作
を検討した後、これについて以下に説明する。アドレス
・インデックスDA[11:4]の値がI_MAXの値より大きいた
め、すでに到達しているステップ62は、新しいI_MAX
の値として、最新のアドレス・インデックスDA[11:4]を
格納する。この点について、2つの事項に注意された
い。第1に、I_MAXの値がステップ52でクリアーされ
てから、初めてステップ60に到達し、かつアドレス・
インデックスDA[11:4]の値がゼロでない場合、ステップ
60は、この方法の流れをステップ62に移しているは
ずであるから、I_MAXの値は、最新のアドレス・インデ
ックスまで増加している。第2に再び図3に戻ると、ス
テップ62は、比較器46の出力と、転送ゲート44に
対する比較器46の制御とによって実行される。特にス
テップ60を実行する際、比較器46が、DA[11:4]がI_
MAXの値以上になっていると決定すると、レジスタ42
にDA[11:4]がコピーされて、DA[11:4]が、I_MAXの新し
い値になるように、比較器46の出力が転送ゲート44
を動作可能にする。次に方法50はステップ62からス
テップ64に続く。
【0018】ステップ64は、ステップ54で指定され
たアドレスで、データ・アレイ32に問題のデータを書
込む。また、バーチャル・タグ・アレイ30v内のダー
ティ・ビットと書込まれたデータに対応するキャッシュ
・ラインとは、ダーティの状態に設定される。次に方法
50はステップ64からステップ66に続く。ステップ
66は待ち合わせ状態を表しており、ここで、方法50
は2つの事象のうちの1つを待ち合わせるが、その2つ
の事象は、別の書込みアドレスまたはコンテクストスイ
ッチの発行である。別の書込みアドレスが発行される
と、方法50はステップ66からステップ54に戻る。
そのとき、先行ステップが再び発生し、新しく発行され
た書込みアドレスのインデックスがI_MAXの最新の値よ
り大きい場合、そのインデックスがI_MAXの新しい値に
なるであろうことは、当業者には理解できるであろう。
実際にこのループ動作は、連続する多数の書込みに対し
て発生し、そのたびに先行ステップが動作するため、I_
MAXは増加するであろう。次に最新のコンテクストスイ
ッチの効果に注目すると、方法50は、先行ステップが
続き、ステップ66からステップ68に続くので、この
時のI_MAXの値は、最後のコンテクストスイッチ以降か
つ最新のコンテクストスイッチの前に書込まれているア
ドレス・インデックスの最大値を表すことは、上述のこ
とから理解されるはずである。
【0019】ステップ68はキャッシュクリーンプロセ
スを表しているが、後で判るように、このキャッシュク
リーンプロセスは、従来の技術とは対照的に性能と効率
を劇的に改善することができる。詳細に説明すると、ス
テップ68は以下のことを表している。すなわち、I_MA
Xに等しいLの値から小さくなり、Lの値が0に等しく
なるまでのLのループに対してステップ70が発生し
て、Lに等しいアドレスをもつ各キャッシュ・ラインが
クリーニングされることを表している。換言すると、L
の値は、I_MAXから始まって小さくなり、0に等しくな
るときまでの間一貫して、ステップ68にくるたびに小
さくなり、流れは、ステップ70のクリーニング動作に
続き、次の反復のためステップ68に戻ってループす
る。ステップ70に注目すると、キャッシュ・ラインの
クリーニングは当業者には公知であり、そのラインのタ
グ(または複数のタグ)を評価して、そのライン内のど
のデータがダーティであるか否かを決定することが含ま
れている。本実施例におけるこの動作は、CACHE_
CLEAN信号によって動作可能になる図3のキャッシ
ュ・クリーン処理回路48によって制御される。このプ
ロセスは、そのラインにダーティ・データが含まれてい
るか否かを決定し、含まれている場合は、そのデータ
(またはライン全体)が上位メモリに書込まれる。それ
とは反対に、所定のラインに対してそのラインのダーテ
ィ・ビット(または複数のダーティ・ビット)が、その
ライン全体がクリーンなことを示していると、そのダー
ティ・ビット(または複数のダーティ・ビット)に対応
するデータ・ラインは、上位メモリに書出されない。
【0020】上記の説明から、詳細にはI_MAXとステッ
プ68、70の効果から、コンテクストスイッチの後、
データ・キャッシュ12bがクリーニングされるが、ク
リーニングプロセスはキャッシュのアドレス0から、コ
ンテクストスイッチの前に書込まれた(つまりI_MAXに
格納された)最上位キャッシュアドレスまでを対照にし
ているにすぎないことは、当業者には理解されるはずで
ある。この方法は、例を示すことによってよく理解され
るであろう。ステップ52の後、それぞれのインデック
ス・アドレス0、2、4、6および8に対し、連続する
5つのキャッシュ書込みがあり、これらの書込みの後に
コンテクストスイッチがあるとする。したがって、この
時点のI_MAXの値は8に等しく、ステップ68、70
は、コンテクストスイッチに応答して、アドレス0から
アドレス32までのデータ・アレイ32をクリーニング
するにすぎない。次に、かかる動作は従来の技術とまっ
たく異なることに注意されたい。特に従来の技術におい
ては、コンテクストスイッチに応答して全キャッシュが
クリーニングされる。したがって、各キャッシュ・ライ
ンの内容がダーティであるか否かを決定するために、各
キャッシュ・ラインが評価され、ダーティな場合は、そ
れらのダーティの内容を上位メモリに書出す。この違い
があるので、本発明の実施例がかなり能率的になること
は、当業者には理解されるはずである。説明のためと、
5つの連続アドレスの例に戻る手段として、キャッシュ
には255までのアドレスが含まれているものとする。
かかる場合、従来の技術は、9から255までのアドレ
スのそれぞれを評価してクリーニングするため、余計な
時間を使うであろうが、アドレス指定できるラインごと
に1つクロックサイクルがある以上、そうなることは当
然である。これとは反対に、好適実施例は、キャッシュ
全体より小さいどこかのポイントでクリーニング動作を
停止するが、説明したばかりの実施例における中止ポイ
ントは、コンテクストの変更以前に書込まれた最上位ア
ドレスのクリーニングが終了した後である(現在の例で
は、そのアドレスは8である)。したがって、クリーニ
ング動作に必要な全クロックサイクルの数を大幅に減少
させることができ、このクロックサイクル数の減少によ
って全体の電力消費量も低減する。また、プラットホー
ム10に実際に起きる環境のように、頻繁にコンテクス
トスイッチが発生する環境では、各コンテクストスイッ
チが発生するたびに、好適実施例の能率が累積される。
コンテクストスイッチが発生する合間に数回のキャッシ
ュ書込みがあるにすぎない場合は、この総合的能率は非
常に有効であると断言できる。
【0021】またステップ68に関する上記考察から、
ステップ68はアドレス0までクリーニングプロセスを
進めることに注意されたい。この方法は、キャッシュの
大きさから独立しているので望ましい方法である。した
がってどんな場合でも、このような方法に対しては、ア
ドレス0までのクリーニング動作が終了すると、ダーテ
ィ・データをもつラインがメイン・メモリに書出される
ことが想定される。しかし、このような観察ができるた
め、アドレス0のデータまたはアドレス0に近いデータ
が変化しているように思われない場合には、2つの代替
方法が使用できることに注意されたい。この2つの代替
方法のそれぞれを以下に説明する。
【0022】上で考察したI_MAXの方法の第1の代替方
法においては、所定のコンテクストスイッチに対してキ
ャッシュヒットを発生させる最低位のアドレス・インデ
ックスを決定するため第2のアドレスの値が確定され、
I_MAXの値とともにこの第2の値が使用される。したが
って、この第2の値をI_MINと命名することにすると、
当初この値を大きな値(たとえば、キャッシュの最上位
のアドレス)に設定し、所定のコンテクストスイッチ中
にキャッシュヒットを発生する最低位のアドレス・イン
デックスの値まで小さくしてもよい。したがって、例と
して、キャッシュの最上位インデックス・アドレスは2
55であり、それぞれのインデックス・アドレス8、1
6、24、32および40に対して連続する5つのキャ
ッシュ書込みがあり、これらの書込みの後にコンテクス
トスイッチがあるものとする。この例においては、当初
I_MAXは0に等しく、I_MINは255に等しい。5回のア
クセスに基づいて、I_MAXは、40に等しくなるまでア
クセスのたびに大きくなる。これに反し、アドレス8へ
の最初のアクセスは、I_MINの値を値8まで小さくする
けれども、残りのアクセスは、I_MINの更新された値よ
り上位のインデックス・アドレスであるため、残りのア
クセスはその値に影響を及ぼさないであろう。この代替
方法を結論すると、ステップ70が、I_MINのアドレス
からI_MAXのアドレスまでの間の全ラインであり、か
つ、これらのアドレスを含む全ラインをクリーニングし
て、キャッシュ内のラインの全数よりも少ない、いくつ
かのラインを再びクリーニングするように、ステップ6
0が修正されるであろう。
【0023】上で考察したI_MAXの方法の第2の代替方
法においては、所定のコンテクストスイッチにキャッシ
ュヒットを発生させる最低位のアドレス・インデックス
を決定するため異なるアドレスの値が確定され、この異
なる値は、単独で使用されるとともに、キャッシュの最
上位アドレスまでクリーニングするために使用される。
簡単にいうと、これは、I_MAXの値を使用するプロセス
と正反対の動作である。ここでも、この異なるアドレス
の値をI_MINと命名することにすると、当初この値を大
きな値(たとえば、キャッシュの最上位のアドレス)に
設定し、所定のコンテクストスイッチ中にキャッシュヒ
ットを発生する最低位のアドレス・インデックスの値ま
で小さくしてもよい。しかし、ステップ68が実行され
ると、ステップ70が、I_MINのアドレス値から、キャ
ッシュの最上位、つまりキャッシュの最上位アドレスま
での全てのラインをクリーニングするように、ステップ
68が修正されるであろう。
【0024】I_MAXの値の観点から制限的なループ動作
になるため、本発明の範囲に、図5に示すような別の実
施例が含まれる。方法50aと示されているこの代替方
法においては、図3の比較器46の機能が使用されるの
ではなく、コンテクストスイッチの時点のI_MAXの値を
決定するために、最新のコンテクストに関連していて、
オペレーティングシステムによって保持されているアド
レスの値が使用される。この違いは、ステップ72につ
いて以下に説明されているが、図5に示す残りのステッ
プは、図4に示すステップと同じである。
【0025】方法50aを参照すると、ステップ52か
らステップ66は上で考察済みなので、ここでは詳細に
説明しない。このため、ステップ72に注目すると、ス
テップ72はI_MAXの値を設定するが、ここではその値
は、オペレーティングシステムで何か実行中にアクセス
可能な値に基づいて設定される。特にある種のオペレー
ティングシステムは、所定のコンテクストに対してキャ
ッシュ・ラインの最大の値を保持している。したがっ
て、ステップ66の条件を満たすと、オペレーティング
システムは、終了中の(つまり、そこからスイッチが発
生中の)コンテクストスイッチに対応するキャッシュ・
ラインの最上位アドレスを使用できるようになるであろ
う。ステップ72は、このキャッシュ・ラインの最上位
アドレスに等しいI_MAXの値を設定する。このように、
方法50aがステップ68に続く場合であって、このキ
ャッシュ・ラインの最上位アドレスがキャッシュ・ライ
ンの全数より小さいという条件の場合、ステップ68お
よびステップ70によって発生するループ動作は、再び
データ・キャッシュ・ラインをクリーニングするので、
このキャッシュのクリーニングされるラインの数は、キ
ャッシュ・ラインの全数より小さい。
【0026】上記諸実施例が、コンテクストスイッチの
後のキャッシュ・クリーニング動作に関連するクロック
サイクルの数を減少させ、従来の技術に各種の改善をも
たらすことは、上記説明から理解できるであろう。本実
施例を詳細に説明してきたが、上記教示に加え、本発明
の範囲から逸脱せずに上述の説明に対する各種の代替、
修正または変更ができることに注意されたい。たとえ
ば、好適実施例におけるコンテクストスイッチの発生
は、I_MAXのリセットをトリガすることであるととも
に、その後に連いて発生するコンテクストスイッチに応
答して、I_MAXのリセットを限定することであるが、何
らかの別の事象によって最初の事象が発生すると、I_MA
Xの値をリセットし、第2の事象が発生すると、I_MAXの
値の上方向の調整を終了して、その後で、どれか最小の
アドレスから、最後に退避された I_MAXの値まで、キャ
ッシュを再びクリーニングすることは、当業者ならば確
認することができるであろう。別の例として、図4、5
は、流れ図を介して一般的な逐次形方法を示している
が、これらのステップを実行する状態マシンのように、
かかる動作を実現するために各種の回路を使用できるた
め、この流れ図に示すような逐次形ではなく、流れが各
状態から別の代替状態になりうることは理解されるはず
である。さらに別の例として、各種側面を示すためにデ
ータ・キャッシュ18bが使用されてきたが、本発明の
教示の多くは、各種の別のキャッシュアーキテクチャに
も応用される。さらに最後の例として、プラットホーム
10は説明のためにすぎず、プラットホーム10はさら
に修正されうることと、また多くの創造的な側面が、1
つまたはそれ以上のキャッシュメモリを有する別のシス
テムで実現されうることも理解されるはずである。した
がって、前記説明、これらの例、および本発明の教示を
得た当業者によって確かめることができるその他の事項
は、請求の範囲によって定義されているように、本発明
の範囲を示すために役立つはずである。
【図面の簡単な説明】
【図1】本実施例を実現することができる無線データ・
プラットホームのブロック図を示す図。
【図2】図1のプラットホームおよび他のプロセス装置
において使用することができるキャッシュのアーキテク
チャのブロック図を示す図。
【図3】図2のキャッシュ制御装置の各部分のブロック
図を示す図であって、これらの部分は、この好適実施例
のキャッシュをクリーニングする方法に使用される。
【図4】図1の汎用プロセッサのコンテクストスイッチ
中に生起するキャッシュ・クリーンに関連して必要にな
るクロックサイクルを減少させる第1の実施例の流れ図
を示す図であって、キャッシュ・クリーンの程度は、コ
ンテクストスイッチの前にキャッシュに書込まれた最上
位のアドレスによって決定される。
【図5】図1の汎用プロセッサのコンテクストスイッチ
中に生起するキャッシュクリーンに関連して必要になる
クロックサイクルを減少させる第2の実施例の流れ図を
示す図であって、キャッシュクリーンの程度は、コンテ
クストスイッチの前にキャッシュに書込むためにオペレ
ーティングシステムに使用できる最上位のアドレスによ
って決定される。
【符号の説明】
10 データ・プラットホーム 12 プロセッサ 12a 命令キャッシュ 12b データ・キャッシュ 12c、12d 命令メモリ管理ユニット(MMU) 12e 入力バッファ回路 12f 動作コア 14a DSPコア 14b 周辺装置インターフェース 16 DMAインターフェース 18 DMAコントローラ 18a FIFO 18b 記憶装置 18c タイマー 20 ビデオまたはLCDコントローラ 22 LCDまたはビデオ 24 メイン・メモリ(同期DRAM) 24a、26a アドレス・バス 24b、26b データ・バス 24c、26c 制御バス 26 フラッシュメモリ 28 キャッシュ制御装置 30av、30bv バーチャル・タグ・アレイのメモ
リプレイン 30v バーチャル・タグ・アレイ 32 データ・アレイ 32a,32b データ・アレイのメモリプレイン 34 LRUインジケータ・アレイ 36 有効性インジケータ・アレイ 38a、38b 比較器 40a、40b、44 転送ゲート 42 アドレス・レジスタ 46 比較器 48 キャッシュ・クリーン処理回路 50 方法 64 キャッシュメモリにデータを書込み、状態をダー
テイに設定するステップ 68 キャッシュメモリの選択されたラインをクリーニ
ングするステップ
───────────────────────────────────────────────────── フロントページの続き (72)発明者 セルジ ラッセール フランス国 フルジュ,サン ジャン ド カンヌ,リュ ドュ マルソー 29 (72)発明者 ドミニク ダンベルノ フランス国 ビュヌーブ ルブ,レ ラ リバル バチマン ベー,シュマン バッ セ ジネスティエール 47

Claims (3)

    【特許請求の範囲】
  1. 【請求項1】 所定の数のキャッシュ・ラインを含む計
    算システムを作動させる方法であって、 第1に、複数の書込みアドレスに対して、前記複数の書
    込みアドレスのそれぞれに対応する位置のキャッシュメ
    モリにデータを書込むステップと、 第2に、前記キャッシュメモリの選択された数のライン
    をクリーニングするステップであって、前記選択された
    数のラインに対して、 前記ライン内のデータに対応するダーティ・インジケー
    タを評価するステップと、 前記ダーティ・インジケータが、前記ライン内のデータ
    がダーティであることを示している場合、前記ラインか
    ら別のメモリにデータをコピーするステップと、を含む
    前記クリーニングするステップと、を含む方法におい
    て、前記選択されたラインの数は、所定のキャッシュ・
    ラインの数より少ない方法。
  2. 【請求項2】 所定の数のキャッシュ・ラインを含む計
    算システムを作動させる方法であって、 アドレス・インジケータに値を格納するステップと、 複数の書込みアドレスに対して、 前記複数の書込みアドレスのそれぞれに対応する位置の
    キャッシュメモリにデータを書込むステップと、 前記複数の書込みアドレスのそれぞれに応答して、前記
    書込みアドレスが、前記アドレス・インジケータに格納
    されているアドレスより大きい場合に、前記書込みアド
    レスに等しい値を設定するステップにおいて、前記アド
    レス・インジケータ内の値が、前記複数の書込みアドレ
    スを終了するときの最終の値を表す、前記設定するステ
    ップと、 計算システムによるコンテクストスイッチに応答して、
    前記キャッシュメモリ内の選択された数のラインをクリ
    ーニングするステップであって、 前記ライン内のデータに対応するダーティ・インジケー
    タを評価するステップと、 前記ダーティ・インジケータが、前記ライン内のデータ
    がダーティであることを示している場合、前記ラインか
    ら別のメモリにデータをコピーするステップと、を含む
    前記クリーニングするステップと、を含む方法におい
    て、 前記キャッシュメモリ内の選択された数のラインを前記
    クリーニングするステップは、前記キャッシュメモリの
    アドレス0から最終値までの間でかつ前記最終値を含む
    前記キャッシュメモリの全ラインをクリーニングする方
    法。
  3. 【請求項3】 計算システムであって、 所定の数のキャッシュ・ラインを有するキャッシュメモ
    リと、 複数の書込みアドレスに応答して、前記複数の書込みア
    ドレスのそれぞれに対応する位置のキャッシュメモリに
    データを書込むための回路と、 前記キャッシュメモリの選択された数のラインをクリー
    ニングするための回路であって、前記選択された数のラ
    インのそれぞれに対して、 前記ライン内のデータに対応するダーティ・インジケー
    タを評価するための回路と、 前記ダーティ・インジケータが、前記ライン内のデータ
    がダーティであることを示している場合、前記ラインか
    ら別のメモリにデータをコピーするための回路と、を含
    むクリーニングする前記回路と、を含む計算システムに
    おいて、 前記選択されたラインの数が、所定のキャッシュ・ライ
    ンの数より少ない計算システム。
JP37702898A 1998-12-07 1998-12-07 部分キャッシュ・クリーニングを用いるコンピュータ回路システムと方法 Expired - Lifetime JP4307604B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP37702898A JP4307604B2 (ja) 1998-12-07 1998-12-07 部分キャッシュ・クリーニングを用いるコンピュータ回路システムと方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP37702898A JP4307604B2 (ja) 1998-12-07 1998-12-07 部分キャッシュ・クリーニングを用いるコンピュータ回路システムと方法

Publications (2)

Publication Number Publication Date
JP2000172563A true JP2000172563A (ja) 2000-06-23
JP4307604B2 JP4307604B2 (ja) 2009-08-05

Family

ID=18508140

Family Applications (1)

Application Number Title Priority Date Filing Date
JP37702898A Expired - Lifetime JP4307604B2 (ja) 1998-12-07 1998-12-07 部分キャッシュ・クリーニングを用いるコンピュータ回路システムと方法

Country Status (1)

Country Link
JP (1) JP4307604B2 (ja)

Also Published As

Publication number Publication date
JP4307604B2 (ja) 2009-08-05

Similar Documents

Publication Publication Date Title
US6496902B1 (en) Vector and scalar data cache for a vector multiprocessor
US5353426A (en) Cache miss buffer adapted to satisfy read requests to portions of a cache fill in progress without waiting for the cache fill to complete
JP2870207B2 (ja) 延滞キャッシュ・ロードを有するデータプロセッサ
JPH06222990A (ja) データ処理装置
JP4218820B2 (ja) ダイレクトマップドキャッシュとフルアソシアティブバッファとを含んだキャッシュシステム、その制御方法及び記録媒体
WO2000039764A9 (en) A dual-ported pipelined two level cache system
KR19980079433A (ko) 비포함 캐쉬 메모리 계층 구조에서 사용하기 위한 캐쉬 일관성 메카니즘 구현 방법 및 시스템
JP2001195303A (ja) 機能が並列に分散された変換索引バッファ
US8359433B2 (en) Method and system of handling non-aligned memory accesses
US6772326B2 (en) Interruptible and re-entrant cache clean range instruction
JPH02239331A (ja) データ処理システム及びその命令実行を促進する方法
US6321299B1 (en) Computer circuits, systems, and methods using partial cache cleaning
JP2000242556A (ja) 仮想インデックス仮想タグデータキャッシュ用に最適化されたハードウエアクリーニング機能
US6976130B2 (en) Cache controller unit architecture and applied method
WO2013086060A1 (en) Selective access of a store buffer based on cache state
US20050015552A1 (en) System for supporting unlimited consecutive data stores into a cache memory
JP4307604B2 (ja) 部分キャッシュ・クリーニングを用いるコンピュータ回路システムと方法
JP2685455B2 (ja) データ処理装置
JPH08249175A (ja) スーパースカラ・プロセッサ装置内の非アーキテクト命令を選択的にサポートする方法及び装置
EP0929039A2 (en) Computer circuits, systems and methods using partial cache cleaning
JP2700147B2 (ja) 命令キャッシュ・フラッシュ・オン・rei制御
US20050193172A1 (en) Method and apparatus for splitting a cache operation into multiple phases and multiple clock domains
JPH0744460A (ja) スヌープ処理方式
JP3465362B2 (ja) キャッシュメモリを有するデータ処理装置
JPH04340145A (ja) キャッシュメモリ装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20051207

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080411

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20080711

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20080716

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20080811

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20080814

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20080911

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20080917

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080929

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20081010

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090108

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090120

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090330

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

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

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20120515

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20130515

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20130515

Year of fee payment: 4

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