(57)【要約】  データを処理するための少なくとも１つの処理ユニット（１０）と、データを格納するメモリ手段（４０）と、前記メモリ手段（４０）に格納されたデータを貯蔵するためのキャッシュメモリ手段（２０）とを備えるデータ処理システムが提供される。前記キャッシュメモリ手段（２０）は少なくとも１つの処理ユニット（１０）と結合される。前記メモリ手段（４０）と前記キャッシュメモリ手段（２０）とを接続するために、相互接続手段（３０）が提供される。前記キャッシュメモリ手段（２０）は、前記メモリ手段（４０）と前記キャッシュメモリ手段（２０）との間のデータ転送（Ｄ０−Ｄｍ）により導入されるように、前記相互接続手段（３０）の低減された論理レベルの変化に基づいてキャッシュ取り替えを実行するために適合される。
2008530648.tif 000002
【特許請求の範囲】
【請求項１】
データを処理するための少なくとも１つの処理ユニットと；
データを格納するメモリ手段と；
前記メモリ手段に格納されたデータを貯蔵するためのキャッシュメモリ手段であって、少なくとも１つの処理ユニットと結合される前記キャッシュメモリ手段と；
前記メモリ手段と前記キャッシュメモリ手段とを接続するための相互接続手段とを備えるデータ処理システムにおいて、
前記キャッシュメモリ手段は、前記メモリ手段と前記キャッシュメモリ手段との間のデータ転送により導入されるように、前記相互接続手段の低減された論理レベルの変化に基づいてキャッシュ取り替えを実行するために適合される、システム。
【請求項２】
前記キャッシュメモリ手段は、複数のキャッシュラインと；
前記相互接続手段を介して前に転送されたデータの値と次に転送されるべきデータの値との間のハミング距離に基づいて取り戻されるべきキャッシュラインを選択するためのキャッシュコントローラとを備える請求項１に記載のデータ処理システム。
【請求項３】
前記キャッシュコントローラは、電力消費に最適なキャッシュの取り替えを可能／不能にする可能／不能ユニットを備える請求項２に記載のデータ処理システム。
【請求項４】
前記可能／不能ユニットは、入力／出力レジスタにマップされたメモリである、請求項３に記載のデータ処理システム。
【請求項５】
前記キャッシュの取り替えは、所望のエネルギー消耗を全体として低減させる一連のキャッシュの取り替えを決定するために、相互接続手段を介して前の転送データと次に転送されるべきデータとを比較することにより行なわれる、請求項１に記載の出た処理システム。
【請求項６】
データを処理するための少なくとも１つの処理ユニットと；
データを格納するメモリ手段と；
前記メモリ手段に格納されたデータを貯蔵するためのキャッシュメモリ手段であって、少なくとも１つの処理ユニットと結合される前記キャッシュメモリ手段と；
前記メモリ手段と前記キャッシュメモリ手段とを接続するための相互接続手段とを備えると共に、
前記キャッシュメモリ手段は、前記メモリ手段と前記キャッシュメモリ手段との間のデータ転送により導入されるように、前記相互接続手段の低減された論理レベルの変化に基づいてキャッシュ取り替えを実行するために適合される、電子装置。
【請求項７】
データを処理するための少なくとも１つの処理ユニットに結合されたキャッシュメモリ手段であって；データを格納するメモリ手段に格納されたデータを貯蔵するために適合される前記キャッシュメモリ手段であって、相互接続手段により前記メモリ手段に接続された前記キャッシュメモリ手段内のキャッシュの取り替え方法において、
前記キャッシュメモリ手段内のキャッシュの取り替えは、前記メモリ手段と前記キャッシュメモリ手段との間のデータ転送により導入されるように、前記相互接続手段の低減された論理レベルの変化に基づいて実行される、方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、データ処理システム、電子装置およびキャッシュ取り替え方法に関する。
【背景技術】
【０００２】
ＰＤＡ、ノートブックパソコン、移動電話機、携帯ＭＰ３プレーヤ等のような携帯装置の利用可能性の拡大と成功に伴い、これらの装置の電力消費が近頃の集積回路およびその設計においてより一層重要となってきていると共に、研究および設計の成果のかなりの量が電力消費を低減させることに通じてきている。このような装置内で用いられるＩＣのＶＬＳＩ設計はナノメータの領域にまで変わってきているので、システム・オン・チップにおける相互接続により浪費されるエネルギーは総体的なシステムの電力消費の顕著な一部分となっている。さらに、携帯装置の重量と大きさを低減させることの規制要因は、携帯装置内の電子回路により浪費される電力を提供するのに必要なバッテリの総量と相関関係にある。
【０００３】
例えばバスやネットワークなどの相互接続における電力消費は、電圧の変動、ワイヤ遅延、相互接続の配線図等のような相互接続の物理的特性に基づくだけでなく、例えばプロセッサ−プロセッサ間通信やプロセッサ−メモリ間通信などのシステム・オン・チップ内でのデータの流れにも基づいている。この通信は、以下のような原因：キャッシュおよびメモリ間の処理（共有メモリからのデータフェッチ）、キャッシュ干渉動作（共有メモリ内で更新されたデータは、同期通信量に帰着する全てのキャッシュコピー内で更新されなければならない）、キャッシュ被害発生中の書き戻し、パケットセグメントの一般的な管理費用（パケット内にデータフローを分割させることは、追加のデータの管理費用を導入するであろう）、または、パケット間の競争（競争の場合にパケットの再送ルートを設定する）により可能である。
【０００４】
ＲＤ４００８０５０，１９９８年４月の研究発表における「低電力キャッシュ取り替えアルゴリズム」には、キャッシュ取り替えの間にタグＲＡＭの内容におけるビット変化により帰着される電力浪費を最小化する方法が記載されている。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
この発明の目的は、複数の処理ユニットを備えるデータ処理システムまたは電子装置における電力消費を低減させることである。
【０００６】
この目的は、請求項１によるデータ処理システム、請求項６による電子装置および請求項７によるキャッシュ取り替え方法により解決される。
【課題を解決するための手段】
【０００７】
したがって、データ処理システムは、データを処理するための少なくとも１つの処理ユニットと、データを格納するメモリ手段と、前記メモリ手段に格納されたデータを貯蔵するためのキャッシュメモリ手段を備えて提供される。前記キャッシュメモリ手段は、少なくとも１つの処理ユニットと結合される。相互接続手段は、前記メモリ手段と前記キャッシュメモリ手段とを接続するために設けられる。前記キャッシュメモリ手段は、前記メモリ手段と前記キャッシュメモリ手段との間のデータ転送により導入されるように、前記相互接続手段の低減された論理レベルの変化に基づいてキャッシュ取り替えを実行するために適合される。
【０００８】
この発明の１つの態様によれば、前記キャッシュメモリ手段は、複数のキャッシュラインと、前記相互接続手段を介して前に転送されたデータの値と次に転送されるべきデータの値との間のハミング距離に基づいて取り戻されるべきこれらのキャッシュラインを選択するためのキャッシュコントローラとを備える。したがって、このことは、相互接続における最小の論理レベルの変化を決定するための簡単な方法を提供する。
【０００９】
この発明の他の態様によれば、前記キャッシュコントローラは、電力消費に最適なキャッシュの取り替えを可能／不能にする可能／不能ユニットを備える。したがって、電力消費のために最適化されるキャッシュの取り替えは、時間制約型アプリケーションがデータ処理システムにより処理されるべきであるときには、動作不能となる。
【００１０】
この発明はまた、データを処理するための少なくとも１つの処理ユニットと、データを格納するメモリ手段と、前記メモリ手段に格納されたデータを貯蔵するためのキャッシュメモリ手段とを備える電子装置に関する。前記キャッシュメモリ手段は、少なくとも１つの処理ユニットと結合される。相互接続手段は、前記メモリ手段と前記キャッシュメモリ手段とを接続するために設けられている。前記キャッシュメモリ手段は、前記メモリ手段と前記キャッシュメモリ手段との間のデータ転送により導入されるように、前記相互接続手段の低減された論理レベルの変化に基づいてキャッシュ取り替えを実行するために適合される。
【００１１】
この発明はさらに、少なくとも１つの処理ユニットに結合されたキャッシュメモリ手段内のキャッシュの取り替え方法に関する。前記キャッシュメモリ手段は、データを格納するメモリ手段に格納されたデータを貯蔵するために適合される。前記メモリ手段および前記キャッシュメモリ手段は、相互接続手段により接続される。前記キャッシュメモリ手段内のキャッシュの取り替えは、前記メモリ手段と前記キャッシュメモリ手段との間のデータ転送により導入されるように、前記相互接続手段の低減された論理レベルの変化に基づいて実行される。
【００１２】
この発明は、メモリおよびキャッシュ間の相互接続の低減されたまたは最小の論理レベルの変化に基づきキャッシュの取り替えを実行する技術思想に基づいている。
【発明を実施するための最良の形態】
【００１３】
この発明の上記およびその他の態様は、以下に説明される実施形態により明白であるし、その意味が明瞭となるであろう。
【００１４】
図１はこの発明によるシステム・オン・チップの基本構成のブロック図を示している。チップ上のこのようなシステムは、電子装置またはデータ処理システムとして、または、この上で実施させられる。チップ上のシステムは少なくとも１つの処理ユニット１０（ただ１つの処理ユニットが表現される）と、処理ユニット１０に結合されたキャッシュ手段２０を備える。キャッシュ手段２０は、バス３０を介してメモリ４０に接続される。キャッシュ２０は、メモリからのキャッシュデータに働きかけ、例えば、到来する処理サイクルの間に必要とされるであろう、これらのデータの項目は、それらの実際の処理の前にメモリから取り込まれる［fetch］。
【００１５】
キャッシュ手段２０は、キャッシュコントローラＣＣと同様にｍ個のキャッシュライン２５またはキャッシュブロックを備える。ｍ個のキャッシュライン２５は、データＤ１，Ｄ２，…Ｄｍを含んでも良い。キャッシュライン２５から既に読み出され、または、キャッシュライン２５に既に書き込まれた、前のデータＤ０は、キャッシュコントローラＣＣ内またはキャッシュメモリ２０内に格納される。
【００１６】
ひとたびキャッシュミスが発生してしまうと、キャッシュコントローラＣＣは、キャッシュ内に現在格納されているデータ項目またはブロックを選択しなければならず、このデータ項目またはブロックは取り込まれるべき所望のデータ項目またはブロックにより取り替えられるべきものである。実際のキャッシュの取り替えは、無作為基本原理、最長時間未参照ＬＲＵ［least-recently used］基本原理、または、先入れ先出しＦＩＦＯ［First in First out］基本原理により実行可能である。さらなるキャッシュ取り替え方式は、最長時間未参照ブロックが新たに予め取り込まれるデータのための空間を創出するためにキャッシュから立ち退かされる、最長時間未参照テクニックである。
【００１７】
キャッシュ取り替えテクニックに関して、２つの結果［issues］が重要であるように見える、すなわち、データブロックがキャッシュ内に取り込まれるべきであることと、データブロックがキャッシュから立ち退かされるべきであることであるので、新たに取り込まれたデータブロックは、立ち退かされたデータブロックの代わりにキャッシュ内に格納することができる。
【００１８】
キャッシュコントローラＣＣは、相互接続３０を介しての転送が低減されたまたは最小の論理レベルの変化を結果することになるデータＤ１−Ｄｍを用いて、キャッシュライン２５の１つを選択する。キャッシュコントローラＣＣは、データＤ１−Ｄｍの内容を、例えば相互接続３０などのバスを介してすぐ前に転送されたデータＤ０の内容と比較する。個々のキャッシュライン２５およびその対応するデータがひとたび選択されると、このキャッシュライン２５が犠牲［victimize］とされ、立ち退かされる［evict］。これは、例えばバス３０を介してキャッシュ２０に対し／キャッシュ２０から前もって転送されたデータであるデータＤ０の内容と、バス３０を介して立ち退かされて転送されるべきであるデータＤ１−Ｄｍの内容との間のハミング距離を決定することにより実行される。キャッシュコントローラＣＣはその内容がキャッシュ２０のキャッシュライン２５の内容と比較されるような予め犠牲とされた（書き戻された）データを格納するための犠牲［victim］バッファを任意に備える。
【００１９】
ハミング距離は、１つのビット列を他のビット列に変換するために変化されなくてはならないビットの最小の数に対応する。ｘおよびｙが同じ長さの２つの２進の数列である場合、これら２つの数列の間のハミング距離は、互いに対応していない個数の符号である。例えば、ｘ＝１００００１１０でｙ＝０１１０１０００のとき、この場合のハミング距離は、ｘからｙへと変化するビットの個数である。ここで、この数は６である。
【００２０】
キャッシュ２０が４つのキャッシュライ２５を備えているとき、この場合のキャッシュライン２５はデータＤ１−Ｄ４を備える。新たなデータがキャッシュに読み込まれるべき場合、４つのキャッシュライン２５の内の１つが犠牲とされて立ち退かされる。直ぐ前に立ち退かされた（また、バス３０を介して転送された）データがＤ０である場合を考慮すると、この場合のキャッシュコントローラＣＣはハミング関数を決定する。
【００２１】
ｈ（Ｄ０，Ｄｉ）、ここで、Ｄｉ＝Ｄ１，Ｄ２，…，Ｄｍ（この例ではｍ＝４）であるので、Ｄ１および（Ｄｉ）間のビットの変化は最小である。そのデータＤｉが結果として最小のハミング距離となるキャッシュライン２５は、犠牲のために選択されて、バスを介して転送されることができる。
【００２２】
例えば、Ｄ０＝１０１０１０１０であり、
Ｄ１＝１１１１００００
Ｄ２＝０１０１０１０１
Ｄ３＝１０００１０１０
Ｄ４＝００１１０００１のときである。
【００２３】
ここで、ハミング距離は、それぞれ、ｈ（Ｄ０，Ｄ１）＝４、ｈ（Ｄ０，Ｄ２）＝８、ｈ（Ｄ０，Ｄ３）＝１、ｈ（Ｄ０，Ｄ４）＝５である。したがって、犠牲とされ、バスを介して転送されるキャッシュラインは、データＤ３に相当する。
【００２４】
任意的には、メモリがマップされた入力出力ＭＭＩＯレジスタがキャッシュコントローラＣＣ内に配置される。このレジスタは、電力消費を低減させることに基づいた、上述した犠牲方式を可能／不能にするために用いられる。この電力節約方式は、アプリケーションが時間制約でない演算を用いて処理される場合には活性化される。しかしながら、アプリケーションが時間制約型演算を含んで処理される場合、電力消費を低減させるためのキャッシュ犠牲方式は、所定の時間的な期間の間または時間制約型アプリケーションが処理される間、動作不能またはスイッチオフされる。その後、電力低減犠牲方式は、再び動作可能またはスイッチオンされる。電力低減犠牲方式の状態は、ＭＭＩＯレジスタ内に格納されても良い。したがって、電力節約キャッシュ犠牲方式は、他の従来の取り替え方式に結合可能である。アプリケーションの重要性に依存して、このモードはスイッチオン／オフ可能である。
【００２５】
バス上で論理レベルの変化を低減させることは、全ての電子回路内の電力消費を低減させ、これは、バスにおける全ての電力消費はそのバスにおける論理レベルの切換の間の電力消費により抑制されるからである。電力消費は、論理レベルにおける変化による電力消費は、クロックレート、電源電圧、ノードキャパシタンス、および、ノードが電力消費を０から１または１から０へと遷移させるそれぞれのクロックサイクルにおける回数の平均数に依存する。バスの電力消費に関するより多くの情報については、１９９５年４月発行のＩＥＥＥ、８３巻、第４号の紀要におけるチャンドラカザンその他［Chandrakasan et al］による「ＣＭＯＳ回路における電力消費の最小化」を参照してほしい。
【００２６】
キャッシュ犠牲に対する追加的に必要な回路が電力の特定の量を浪費するとはいえ、この量はバスラインにおけるスイッチング動作を低減させることにより、電力消費の節約と比較されるように顕著により少なくなるだろう。
【００２７】
上述したチップ上のシステムは、移動電話やＰＤＡなどのような携帯装置で実現されても良い。
【００２８】
上述した実施形態がこの発明を限定するよりもむしろこの発明を説明するものであり、添付された請求項の範囲から逸脱することない限りこの技術分野の技術者が多くの代替的な実施形態を設計可能であろうことは注目されるべきである。請求項では、括弧内の参照符号は何れも請求項を限定するよう解釈されるべきではない。「備える［comprising］」という用語は、請求項に記載されたもの以外の要素やステップの存在を排除するものではない。要素に先行する冠詞「a」や「an」は、複数のそれらの要素の存在を排除するものではない。数字を付された幾つかの手段における装置クレームにおいて、これらの手段の幾つかはハードウェアの１つおよび同等の項目により実施可能である。幾つかの手段が互いに関連を有する異なる従属請求項に属するものであるという単なる事実は、これらの手段の結合を有利なものとして用いることができないことを示すものではない。
【００２９】
さらに、クレームにおける何れの参照符号も請求項の範囲を制限するものとして構成されるべきではない。
【図面の簡単な説明】
【００３０】
【図１】この発明によるシステム・オン・チップの基本構成を示すブロック図である。
【図１】
2008530648.tif 000003
【国際調査報告】
2008530648.tif 000004
2008530648.tif 000005