(57)【要約】【課題】エンジニアド・バスにおけるバス・スイッチング電力を節約し且つ雑音を減少させるためのコンピュータ実装方法、バス・スイッチング・システム及びコンピュータ・プログラムを提供する。【解決手段】第１のキャッシュにおいて、一の要求元からデータの要求を受信する。データが第１のキャッシュ上に格納されているか否かを判断する。データが第１のキャッシュ上に格納されているという判断に応答して、複数のバスのうちデータを戻すべき一のバスを識別する。データを識別されたバスを介して要求元に送信する。バス・スイッチング電力を節約し且つ雑音を減少させるために、複数のバスのうち第１のキャッシュから延びる残りのバス上で一の論理状態を開始する。【選択図】  図５
2008140379.tif 000002
【特許請求の範囲】
【請求項１】
バス・スイッチング電力を節約し且つ雑音を減少させるためのコンピュータ実装方法であって、
第１のキャッシュにおいて、一の要求元からのデータの要求を受信するステップと、
前記データが前記第１のキャッシュ上に格納されているか否かを判断するステップと、
前記データが前記第１のキャッシュ上に格納されているという判断に応答して、複数のバスのうち前記データを戻すべき一のバスを識別するステップと、
前記データを前記識別されたバスを介して前記要求元に送信するステップと、
バス・スイッチング電力を節約し且つ雑音を減少させるために、前記複数のバスのうち前記第１のキャッシュから延びる残りの複数のバス上で一の論理状態を開始するステップとを含む、コンピュータ実装方法。
【請求項２】
前記第１のキャッシュにおいて、前記データの新しい要求が受信されたか否かを判断するステップと、
前記新しい要求が受信されていないという判断に応答して、前記残りの複数のバス上で前記論理状態を維持するステップとをさらに含む、
請求項１に記載のコンピュータ実装方法。
【請求項３】
前記データが前記第１のキャッシュ上に格納されていないという判断に応答して、前記要求が前記第１のキャッシュよりも高い階層レベル内の前記要求元から受信されたか否かを判断するステップと、
前記要求が前記第１のキャッシュよりも高い階層レベル内の前記要求元から受信されたという判断に応答して、前記要求を前記第１のキャッシュと同じ階層レベル内の複数のキャッシュに送信するステップとをさらに含む、
請求項１に記載のコンピュータ実装方法。
【請求項４】
前記複数のキャッシュのうちの第２のキャッシュにおいて、前記第１のキャッシュから送信された前記要求を受信するステップと、
前記データが前記第２のキャッシュ上に格納されているか否かを判断するステップと、
前記データが前記第２のキャッシュ上に格納されているという判断に応答して、前記複数のバスのうちで前記要求が受信されたバスを要求バスとして識別するステップと、
前記データを前記要求バスを介して前記要求元に送信するステップと、
バス・スイッチング電力を節約し且つ雑音を減少させるために、前記複数のバスのうち前記第２のキャッシュから延びる残りの複数のバス上で前記論理状態を開始するステップとをさらに含む、
請求項３に記載のコンピュータ実装方法。
【請求項５】
前記複数のバスは２５８ビット幅のバスである。請求項１に記載のコンピュータ実装方法。
【請求項６】
前記論理状態は前記第１のキャッシュ内の制御回路から開始される。請求項１に記載のコンピュータ実装方法。
【請求項７】
前記要求元は、少なくとも１つのプロセッサ又は前記第１のキャッシュよりも高い階層レベル内の他のキャッシュである、請求項１に記載のコンピュータ実装方法。
【請求項８】
バス・スイッチング・システムであって、
一のバス・システムと、
前記バス・システムに接続された複数のキャッシュと、
前記複数のキャッシュ内の制御回路とを備え、
前記複数のキャッシュのうちの第１のキャッシュは、一の要求元からデータの要求を受信し、前記データが前記第１のキャッシュ上に格納されているか否かを判断し、前記データが前記第１のキャッシュ上に格納されているという判断に応答して、前記バス・システムのうち前記データを戻すべき一のバスを識別し、前記データを前記識別されたバスを介して前記要求元に送信するとともに、バス・スイッチング電力を節約し且つ雑音を減少させるために、前記制御回路を使用して、前記バス・システムのうち前記第１のキャッシュから延びる残りのバス上で論理状態を開始することを特徴とする、
バス・スイッチング・システム。
【請求項９】
前記第１のキャッシュは、前記データの新しい要求が受信されたか否かを判断し、前記新しい要求が受信されていないという判断に応答して、前記残りのバス上で前記論理状態を維持することをさらに含む、
請求項８に記載のバス・スイッチング・システム。
【請求項１０】
前記第１のキャッシュは、前記データが前記第１のキャッシュ上に格納されていないという判断に応答して、前記要求が前記第１のキャッシュよりも高い階層レベル内の前記要求元から受信されたか否かを判断し、前記要求が前記第１のキャッシュよりも高い階層レベル内の前記要求元から受信されたという判断に応答して、前記要求を前記第１のキャッシュと同じ階層レベル内の複数のキャッシュに送信することをさらに含む、
請求項８に記載のバス・スイッチング・システム。
【請求項１１】
前記複数のキャッシュのうちの第２のキャッシュは、前記第１のキャッシュから送信された前記要求を受信し、前記データが前記第２のキャッシュ上に格納されているか否かを判断し、前記データが前記第２のキャッシュ上に格納されているという判断に応答して、前記バス・システムのうち前記要求が受信されたバスを要求バスとして識別し、前記データを前記要求バスを介して前記要求元に送信するとともに、バス・スイッチング電力を節約し且つ雑音を減少させるために、前記制御回路を使用して、前記バス・システムのうち前記第２のキャッシュから延びる残りのバス上で前記論理状態を開始することをさらに含む、
請求項１０に記載のバス・スイッチング・システム。
【請求項１２】
前記バス・システム内のバスは２５８ビット幅のバスである、請求項８に記載のバス・スイッチング・システム。
【請求項１３】
前記要求元は、少なくとも１つのプロセッサ又は前記第１のキャッシュよりも高い階層レベル内の他のキャッシュである、請求項８に記載のバス・スイッチング・システム。
【請求項１４】
請求項１ないし請求項７の何れか１項に記載の方法における各ステップの処理をコンピュータに実行させるコンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、エンジニアド（engineered）・バスに係り、さらに詳細に説明すれば、エンジニアド・バスにおけるバス・スイッチング電力を節約し且つ雑音を減少させるための方法に係る。
【背景技術】
【０００２】
現在、マルチプロセッサは、より低コストでより良い性能を提供するために使用されている。多くの市販マルチプロセッサ・システムは、共有メモリ及び共用バス・アーキテクチャに基づいている。かかるマルチプロセッサ・システムは、ユニプロセッサ・バス・システムの拡張であるために、比較的簡単な実装を有している。かかるマルチプロセッサ・システムのグローバル共有メモリ及び一貫性機構によって与えられるプログラミング・モデルは、ユニプロセッサ上の連携プロセスのシステムに非常に類似している。
【０００３】
共用バス式マルチプロセッサの１つの制限は、バスの帯域幅である。すなわち、バスの帯域幅は、同じメモリに接続可能なプロセッサの数を制限し、従ってシステムの性能を制限するからである。バス帯域幅問題の１つの解決策は、バスの速度を増加させることであるが、この解決策はテクノロジの制限のために必ずしも常に容易であるとは限らない。バス帯域幅問題の別の解決策は、メモリに接続するのに、ワイド・バスや複数バスのような、より多くの線（ワイヤ）を使用することである。与えられたテクノロジについては、より多くの線がより大きな帯域幅を提供するが、キャッシュ、コード共有及びシステム複雑性のような複雑な要素が存在するために、これらの線を接続する最良の方法を見つけることは簡単ではない。
【０００４】
複数バスは、実装するのがより複雑であるが、メモリへの複数のパスが存在し且つ制御及びアドレス用により多くの線が存在するために、競合（コンテンション）を減少させるという利点がある。ワイド・バスは、構築するのがより簡単であるが、メモリへのパスを１つしか提供しないという欠点がある。ワイド・バスは、６４ビット幅以上のバスであるとすることができる。長いワイド・バスを実装するプロセッサ・チップは、バス上のデータが使用されるか又は廃棄されるかに拘わらず、バスがスイッチするごとに電力を消費し且つ雑音を減少させる。長いワイド・バスは、６ｍｍ程度の長さを有し且つ６４ビット幅以上のバスである。かかるバスは、電力を節約し且つ雑音を減少させるために、切り替え（toggling）を回避し、その代わりに、既知の論理状態に維持することを必要とする。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
従って、本発明の目的は、バス・スイッチング電力を節約し且つ雑音を減少させるためのコンピュータ実装方法、バス・スイッチング・システム及びコンピュータ・プログラムを提供することである。
【課題を解決するための手段】
【０００６】
本発明の実施形態は、次のように動作する。
（１）第１のキャッシュにおいて、一の要求元からデータの要求を受信する。
（２）前記データが前記第１のキャッシュ上に格納されているか否かを判断する。
（３）前記データが前記第１のキャッシュ上に格納されているという判断に応答して、複数のバスのうち前記データを戻すべき一のバスを識別する。
（４）前記データを前記識別されたバスを介して前記要求元に送信する。
（５）バス・スイッチング電力を節約し且つ雑音を減少させるために、前記複数のバスのうち前記第１のキャッシュから延びる残りのバス上で一の論理状態を開始する。
【０００７】
本発明の新規な特徴的構成は、特許請求の範囲に記載されている通りである。しかし、本発明それ自体、並びにその推奨する使用態様、他の目的及び利点は、添付の図面に示されている本発明の実施形態に関する以下の説明から明らかとなるであろう。
【発明を実施するための最良の形態】
【０００８】
本発明の実施形態は、エンジニアド・バスにおけるバス・スイッチング電力を節約し且つ雑音を減少させることを意図する。以下、図面を参照して説明する。図１には、本発明の実施形態を実装することができる、データ処理システムの概略図が示されている。コンピュータ１００は、システム・ユニット１０２、ビデオ・ディスプレイ端末１０４、キーボード１０６、（フレキシブル・ディスク・ドライブや他のタイプの永続的及び取り外し可能な記憶媒体を含むことができる）記憶デバイス１０８及びマウス１１０を含む。追加の入力デバイスも、コンピュータ１００に含めることができる。追加の入力デバイスの例には、ジョイスティック、タッチパッド、タッチ・スクリーン、トラックボール、マイクロホンなどがある。
【０００９】
コンピュータ１００は、任意の適切なコンピュータとすることができる。図１のコンピュータ１００は、パーソナル・コンピュータとして示されているが、他のタイプのデータ処理システムとすることができ、例えばネットワーク・コンピュータとすることもできる。また、コンピュータ１００は、その内部の読取可能な媒体内に常駐するシステム・ソフトウェアによって実装することができる、グラフィカル・ユーザ・インタフェース（ＧＵＩ）を含むことが好ましい。
【００１０】
図２は、本発明の実施形態を実装することができる、データ処理システム２００のブロック図を示している。データ処理システム２００は、図１のコンピュータ１００の１例であって、その内部には、本発明の実施形態に従ったプロセスを実行するコード又は命令を配置することができる。
【００１１】
データ処理システム２００が使用するハブ・アーキテクチャは、ノース・ブリッジ兼メモリ・コントローラ・ハブ（ＮＢ／ＭＣＨ）２０２、サウス・ブリッジ兼Ｉ／Ｏコントローラ・ハブ（ＳＢ／ＩＣＨ）２０４を含む。プロセッサ・ユニット２０６、主メモリ２０８及びグラフィックス・プロセッサ２１０は、ＮＢ／ＭＣＨ２０２に結合される。プロセッサ・ユニット２０６は、１つ以上のプロセッサを含むことができ、さらに１つ以上の異種プロセッサ・システムを使用して実装することもできる。グラフィックス・プロセッサ２１０は、例えば、アクセラレイティッド・グラフィックス・ポート（ＡＧＰ）を通して、ＮＢ／ＭＣＨ２０２に結合することができる。
【００１２】
図２の例では、ＳＢ／ＩＣＨ２０４に結合されるアダプタ類には、ローカル・エリア・ネットワーク（ＬＡＮ）アダプタ２１２、オーディオ・アダプタ２１６、キーボード及びマウス・アダプタ２２０、モデム２２２、読み取り専用メモリ（ＲＯＭ）２２４、ユニバーサル・シリアル・バス（ＵＳＢ）ポート及び他の通信ポート２３２がある。ＰＣＩ／ＰＣＩｅデバイス２３４は、バス２３８を通して、ＳＢ／ＩＣＨ２０４に結合される。ハード・ディスク・ドライブ（ＨＤＤ）２２６及びＣＤ−ＲＯＭドライブ２３０は、バス２４０を通して、ＳＢ／IＣＨ２０４に結合される。
【００１３】
ＰＣＩ／ＰＣＩｅデバイス２３４は、例えば、ノート・コンピュータ用のイーサネット（登録商標）・アダプタ、アドイン・カード及びＰＣカードを含むことができる。ＰＣＩはカード・バス・コントローラを使用するが、ＰＣＩｅはこれを使用しない。ＲＯＭ２２４は、例えば、フラッシュ（flash）基本入出力システム（ＢＩＯＳ）とすることができる。ＨＤＤ２２６及びＣＤ−ＲＯＭドライブ２３０は、例えば、統合ドライブ・エレクトロニクス（ＩＤＥ）又はシリアル先進技術アタッチメント（ＳＡＴＡ）インタフェースを使用することができる。スーパＩ／Ｏ（ＳＩＯ）デバイス２３６は、ＳＢ／IＣＨ２０４に結合することができる。
【００１４】
オペレーティング・システム（ＯＳ）は、プロセッサ・ユニット２０６上で稼働する。ＯＳは、データ処理システム２００内の種々のコンポーネントを調整し且つ制御する。ＯＳは、Ｍｉｃｒｏｓｏｆｔ（登録商標）Ｗｉｎｄｏｗｓ  ＸＰ（登録商標）のような市販のＯＳとすることができる。Ｊａｖａ（登録商標）プログラミング・システムのようなオブジェクト指向プログラミング・システムは、ＯＳとともに稼働することにより、データ処理システム２００上で実行中のＪａｖａ（登録商標）プログラム又はアプリケーションからのＯＳへの呼び出しを提供することができる。
【００１５】
ＯＳ、オブジェクト指向のプログラミング・システム及びアプリケーション用の命令又はプログラムは、ＨＤＤ２２６のような記憶デバイス上に置かれる。これらの命令は、プロセッサ・ユニット２０６による実行のために主メモリ２０８にロードすることができる。本発明の実施形態に従ったプロセスは、メモリ内に位置する命令を使用して、プロセッサ・ユニット２０６によって実行することができる。かかるメモリの１例は、主メモリ２０８、読み取り専用メモリ２２４、又は１つ以上の周辺デバイスである。
【００１６】
図１及び図２に示されるハードウェアは、実施形態の実装に依存して変えることができる。すなわち、図１及び図２に示されるハードウェアに加えて、又はそのハードウェアの代わりに、フラッシュ・メモリ、これと同等の不揮発性メモリ、光ディスク・ドライブなどの他の内部ハードウェア又は周辺デバイスを使用することができる。さらに、本発明の実施形態のプロセスは、マルチプロセッサ・データ処理システムにも適用することができる。
【００１７】
図２に示されるシステム及びコンポーネントは、図示の例から変えることができる。すなわち、或る実施形態では、データ処理システム２００を携帯情報端末（ＰＤＡ）とすることができる。ＰＤＡは、一般に、フラッシュ・メモリから構成され、これをＯＳファイル又はユーザ生成データもしくはこれら両方を格納するための不揮発性メモリとして使用する。さらに、データ処理システム２００は、タブレット・コンピュータ、ラップトップ・コンピュータ又は電話デバイスとすることができる。
【００１８】
図２に示される他のコンポーネントは、図示の例から変えることができる。例えば、バス・システムは、システム・バス、Ｉ／Ｏバス及びＰＣＩバスのような１つ以上のバスから構成することができる。もちろん、バス・システムは、異なるコンポーネント又はデバイスの間のデータ転送を提供するための、任意の適切なタイプの通信ファブリック又はアーキテクチャを使用して実装することができる。さらに、通信ユニットは、モデム又はネットワーク・アダプタのような、データ送受信用の１つ以上のデバイスを含むことができる。さらに、メモリは、例えば、主メモリ２０８又はＮＢ／ＭＣＨ２０２内に設けられたキャッシュとすることができる。さらに、プロセッサ・ユニットは、１つ以上のプロセッサ又はＣＰＵを含むことができる。
【００１９】
図１及び図２に示された例は、アーキテクチャ上の制限を意味するのが目的ではない。さらに、本発明の実施形態は、ソース・コードをコンパイルし且つコードを実行するための、コンピュータ実装方法、装置及びコンピュータ・プログラムを提供する。本発明の実施形態に関連して説明される方法は、図１のデータ処理システム１００又は図２のデータ処理システム２００のようなデータ処理システム内で実施することができる。
【００２０】
本発明の実施形態は、未使用バス上で一の論理状態を維持することにより、当該バスを切り替えることにより失われる電力を節約し且つ雑音を減少させるものである。一のキャッシュが当該キャッシュ内に格納されているデータを送信するための要求を受信する場合、当該キャッシュは、１つのバスを介してこのデータを要求元に送信し、そして電力が使用されず且つ雑音が減少されるように、全ての未使用バスを既知の論理状態に維持する。本発明の実施形態は、６４ビット幅のワイド・バスに適用される。但し、本発明の概念は、６４ビット幅より狭いバス又は６４ビット幅より広いバスにも同様に適用することができる。長いワイド・バスを実装するプロセッサ・チップは、当該バス上のデータが使用されるか又は廃棄されるかに拘わらず、当該バスがスイッチするごとに電力を消費し且つ雑音を減少させる。長いワイド・バスは、６ｍｍ程度の長さを有し且つ６４ビット幅以上のバスである。但し、本発明の概念は、電力の節約分や雑音の減少分が比較的小さくなることを除けば、これより短いバスにも適用することができる。かかるバスは、電力を節約し且つ雑音を減少させるために、切り替え（toggling）を回避し、その代わりに、既知の論理状態に維持することを必要とする。
【００２１】
図３は、本発明の実施形態に従ったバス・スイッチング機構を実装することができる、データ処理システム３００を示す。データ処理システム３００は、電力を節約し且つ雑音を減少させるために使用されるコンポーネントを含み、図２のデータ処理システム２００のようなデータ処理システムとして実装することができる。データ処理システム３００のプロセッサ・ユニットは、プロセッサ・コア３０２、３０４、３０６及び３０８を備えている。これらのコアは、図２のプロセッサ・ユニット２０６のようなプロセッサ・ユニット内に見いだすことができる。データ処理システム３００は４つのプロセッサ・コアを備えているに過ぎないが、データ処理システム３００のプロセッサ・ユニットは任意の数のプロセッサ・コアを備えることができる。さらに、データ処理システム３００は、２レベル以上のキャッシュ・メモリとして、レベル１（Ｌ１）キャッシュ３１０、３１２、３１４及び３１６と、レベル２（Ｌ２）キャッシュ３１８、３２０、３２２及び３２４を含む。これらのＬ１及びＬ２キャッシュは、図２のＮＢ／ＭＣＨ２０２のようなノース・ブリッジ兼メモリ・コントローラ・ハブ内に設けることができる。
【００２２】
Ｌ１キャッシュ３１０、３１２、３１４及び３１６は、６４キロバイト程度の小さなメモリ容量を含む、高速メモリ・チップとすることができる。Ｌ１キャッシュ３１０、３１２、３１４及び３１６は、「１次キャッシュ」と呼ばれることもある。Ｌ１キャッシュ３１０、３１２、３１４及び３１６は、プロセッサ・コア３０２、３０４、３０６及び３０８と、Ｌ２キャッシュ３１８、３２０、３２２及び３２４との間に位置する。実装に依存して、Ｌ１キャッシュ３１０、３１２、３１４及び３１６は、プロセッサ・コア３０２、３０４、３０６及び３０８と同じ集積回路上に統合化することができる。さらに、Ｌ１キャッシュ３１０、３１２、３１４及び３１６は、それらのより速いアクセス速度のために、Ｌ２キャッシュ３１８、３２０、３２２及び３２４よりも比較的高価である。
【００２３】
一般に、Ｌ２キャッシュ（２次キャッシュ）３１８、３２０、３２２及び３２４は、Ｌ１キャッシュに比較すると、メモリ容量が大きく且つアクセス速度が遅い。一般に、Ｌ２キャッシュ３１８、３２０、３２２及び３２４は、Ｌ１キャッシュ３１０、３１２、３１４及び３１６と、主メモリ３２６との間に位置する。Ｌ１キャッシュ３１０、３１２、３１４及び３１６と異なり、Ｌ２キャッシュ３１８、３２０、３２２及び３２４は、本発明の実施形態に関連して説明するように、プロセッサ・コア３０２、３０４、３０６及び３０８の集積回路に対して内部的に設けることもできるし、当該集積回路に対して外部的に設けることもできる。さらに、Ｌ２キャッシュ３１８、３２０、３２２及び３２４は、それらのより遅いアクセス速度のために、Ｌ１キャッシュ３１０、３１２、３１４及び３１６よりも製造コストが安い。本発明の実施形態は、Ｌ１キャッシュ３１０、３１２、３１４及び３１６と、Ｌ２キャッシュ３１８、３２０、３２２及び３２４とを備えているが、データ処理システム３００内に他のレベルのキャッシュ（例えば、レベル３（Ｌ３）キャッシュ）を含めることもできる。Ｌ２キャッシュ３１８、３２０、３２２及び３２４の各々は、それぞれが２５８ビット幅であるバス３２８を介して、Ｌ１キャッシュ３１０、３１２、３１４及び３１６のうちの対応する１つにそれぞれ接続される。また、Ｌ２キャッシュ３１８、３２０、３２２及び３２４は、バス３３０、３３２、３３４、３３６、３３８及び３４０を介して、互いに接続される。
【００２４】
データの要求が一のプロセッサ・コア（例えば、プロセッサ・コア３０２）によってなされる場合、最初に、このデータがプロセッサ・コア３０２に対応するＬ１キャッシュ３１０内に格納されているか否かを判断するためのチェックが行われる。もし、要求データがＬ１キャッシュ３１０内に格納されていなければ、Ｌ１キャッシュ３１０は、この要求をＬ１キャッシュ３１０に対応するＬ２キャッシュ３１８に送信する。Ｌ２キャッシュ３１８は、この要求を受信し、要求データがＬ２キャッシュ３１８内に格納されているか否かを判断する。もし、Ｌ２キャッシュ３１８が要求データを格納していなければ、Ｌ２キャッシュ３１８は、バス３３０、３３２及び３３４を介して、この要求を他のＬ２キャッシュ３２０、３２２及び３２４に送信する。
【００２５】
本発明の実施形態では、バスの活動は、要求データを提供しているキャッシュ・ソースに制限されている。前述の例を引き続き説明すると、要求データがＬ２キャッシュ３２２で見つかる場合、Ｌ２キャッシュ３２２は、要求データをバス３３２を通してＬ２キャッシュ３１８に供給し、そこからＬ１キャッシュ３１０に供給することによって、ＬＩキャッシュ３１０に応答するであろう。それと同時に、通常の場合、Ｌ２キャッシュ３２２は、Ｌ２キャッシュ３２０及び３２４に対するバス３３６及び３４０の接続をトグル・オフする（切り替えてオフにする）であろう。要求データを戻すために使用されないバスをトグル・オフすることは、電力を使用する。
【００２６】
電力を節約するために、バス３３０、３３２、３３６、３３８及び３４０のそれぞれの切り替えは回避される。従って、前述の例について説明すれば、バス３３６及び３４０をトグル・オフする代わりに、バス３３６及び３４０は、既知の論理状態に維持される。この論理状態は、データが最後に使用され、全てのビットが「０」になるか、又は「０」及び「１」の既知の組み合わせになるようにリセットされたときの状態と同じ状態とすることができる。バス３３６及び３４０は、バス３３０、３３２、３３６、３３８及び３４０が（例えば、新しいデータによって上書きされるように）再び使用される準備ができるまで、必要とされるサイクル数の間この論理状態に維持することができる。
【００２７】
この論理状態は、Ｌ２キャッシュ３１８、３２０、３２２及び３２４のうち要求データを供給している１つのＬ２キャッシュ（説明中の例では、Ｌ２キャッシュ３２２）によって実装される。Ｌ２キャッシュ３１８、３２０、３２２及び３２４の各々は、制御回路３４２、３４４、３４６又は３４８を有し、当該各制御回路は、要求データを戻すのに現に使用されていないバス３３０、３３２、３３６、３３８又は３４０に対し一の論理状態を供給する。バス３３０、３３２、３３６、３３８及び３４０のうち未使用中のバスの各々は、２５８ビット幅であって、次のように複数のチャンクに細分される。＜０：２２＞＜２３：４５＞ ＜４６：６８＞ ＜６９：９１＞＜９２：１１４＞ ＜１１５：１２８、９’ｂ０＞ ＜１２９：１５１＞ ＜１５２：１７４＞ ＜１７５：１９７＞＜１９８：２２０＞ ＜２２１：２４３＞ ＜２４４：２５７、９’ｂ０＞。各チャンクは、２３ビット幅である。２３ビット幅の各チャンクごとに、制御回路３４２、３４４、３４６及び３４８は、非アクティブ状態の間に、最初の連続１２ビットを「０」にセットし、残りの連続１１ビットを「１」にセットする。
【００２８】
図４は、本発明の実施形態に従った、既知の論理状態を実装するための制御回路４００を示す。制御回路４００は、このエンジニアリング・バス解決策における最初のバッファの前方で、ＡＮＤゲート及びＯＲゲートを使用する。制御回路４００は、図３の制御回路３４２、３４４、３４６及び３４８のような制御回路である。２つのパワー・ダウン制御信号である「ｐｏｗｅｒｄｏｗｎ＿０」信号４０２及び「ｐｏｗｅｒｄｏｗｎ＿１」信号４０４は、２つのソースから到来することができる。これらの２つのソースは、例えば、Ｌ２キャッシュそれ自体であるか、又はオーバーライド（指定変更）が望まれる場合はＬ２キャッシュの外部にあるコントローラとすることができる。もし、これらの２つのソースのうちどちらかが一のパワー・ダウン制御信号をアクティブ化すれば、バスは、このパワー・ダウン制御信号が非アクティブになるまで、＜１２’ｈ０、１１’ｈ３ｆｆ＞にセットされる。「ｐｏｗｅｒｄｏｗｎ＿０」信号４０２及び「ｐｏｗｅｒｄｏｗｎ＿１」信号４０４のうち一方がアクティブである場合、「ｐｏｗｅｒｄｏｗｎ＿ａ」信号４０６及び「ｐｏｗｅｒｄｏｗｎ＿ｂ」信号４０８が生成される。「Ｐｏｗｅｒｄｏｗｎ＿ｂ」信号４０８は、「ｐｏｗｅｒｄｏｗｎ＿ａ」信号４０６を反転したものである。「Ｐｏｗｅｒｄｏｗｎ＿ｂ」信号４０８は、「ｄａｔａ＿ｉｎ」信号４１２の最初の１２ビット（０：１１）とともに、ＡＮＤゲート４１０の入力に加えられる。ＡＮＤゲート４１０は、連続する１２個の「０」ビットを生成する。「Ｐｏｗｅｒｄｏｗｎ＿ａ」信号４０６は、残りの１１ビット（１２：２２）の「ｄａｔａ＿ｉｎ」信号４１２とともに、ＯＲゲート４１４の入力に加えられる。ＯＲゲート４１４は、連続する１１個の「１」ビットを生成する。ほぼ半分のビットを「０」にセットし且つ他の半分のビットを「１」にセットすることは、「０」及び「１」が連続的にインターリーブされるような態様では行われない。このようにすると、望ましくないミラー結合に起因して、バスをセットする間に電力を消費することになるからである。その代わりに、連続するビットは、ビット位置１２及び１３を除き、セット中にミラー結合に遭遇しないように「０」及び「１」へセットされた。しかし、ビット１２及び１３が除かれるのは、電力グリッドが既にそれらを分離しているような状態であるという理由による。もし、パワーダウン状態にあるバスが０１０１０・・・０１のように見えるように、「０」及び「１」が分散されたならば、１つの「１」は２つの連続した「０」の中間に強制され、その逆も同様である。従って、１つの「１」が１本の線に書かれるのに対し、２本の隣接した近隣の線は反対の極性で書かれることになる。ミラー結合は、或るバスの隣接したビットが反対方向にスイッチされる場合に現われるような動的結合である。パワーダウン状態にあるバス内のビットが「１」又は「０」の連続するチャンクとなるようにこれらのビットを選択的にセットすることによって、ミラー結合が除去される。というのは、殆どのビットを横切って、隣接した近隣の２ビットが当該ビットそれ自体と同じ方向においてスイッチしているからである。
【００２９】
本発明の実施形態では、ビット１１が「０」にセットされる場合、スイッチング条件がビット＜１２＞で起こり、ビット＜１２＞は「１」にセットされ、ビット＜１３＞は「１」にセットされる。従って、ビット＜１１：１３＞は「０１１」に等しい。ビット＜１１＞とビット＜１２＞との間のミラー結合は問題にならない。なぜなら、Ｖｄｄ／Ｇｎｄ電力バスが２３ビット・バスの中間でインターリーブされ、そして静的なＶｄｄ線がビット＜１１＞とビット＜１２＞との間の中間を走っているからである。従って、ミラー結合は、バスのパワーダウンを行っている間に、当該バスの全体についてキャンセルされる。
【００３０】
図５は、本発明の実施形態に従ったバス・スイッチング機構の典型的な動作を示す。このバス・スイッチング機構は、図４の制御回路４００や、図３のＬ２キャッシュ３１８、３２０、３２２又は３２４内に含まれる制御回路３４２、３４４、３４６及び３４８のような、制御回路及びキャッシュによって実装することができる。動作が開始すると、データの要求が一のキャッシュによって受信される（ステップ５０２）。このキャッシュは、要求データが当該キャッシュに格納されているか否かを判断する（ステップ５０４）。もし、ステップ５０４において、要求データが当該キャッシュ内に格納されていないと判断されるならば、当該キャッシュは、当該要求が当該キャッシュよりも高い階層レベル内にあるキャッシュ又はプロセッサから受信されたか否かを判断する（ステップ５０６）。もし、ステップ５０６において、当該要求が当該キャッシュよりも高い階層レベル内にあるキャッシュ又はプロセッサから受信されたと判断されるならば、当該キャッシュは、当該要求を当該キャッシュと同じ階層レベル内にある他の任意のキャッシュに転送し（ステップ５０８）、その後この動作は終了する。一方、ステップ５０６において、当該要求が当該キャッシュと同じ階層レベル内にある他のキャッシュから受信されたと判断されるならば、この動作は終了する。というのは、当該キャッシュと同じ階層レベル内にある他のキャッシュから要求を受信することは、当該要求が当該他のキャッシュに既に送信されたことを示すからである。
【００３１】
ステップ５０４に戻って説明を続ける。もし、ステップ５０４において、要求データが当該キャッシュ内に格納されていると判断されるならば、当該キャッシュは、当該要求内に保持されている情報を使用することにより、当該キャッシュが要求データを戻すべきバスを識別する（ステップ５１０）。その後、当該キャッシュは２つの機能を遂行する。第１に、当該キャッシュは、識別されたバスを介して、要求データを要求元に送信する（ステップ５１２）。第２に、当該キャッシュは、残りの他のバスが切り替え（トグル）されないように、当該他のバス上で一の論理状態を開始する（ステップ５１４）。この論理状態を開始することは、当該他のバスを切り替えることによって電力が使用されないように、図４に示されている論理状態のような既知の論理状態を当該他のバス上で開始することを含んでいてもよい。当該キャッシュが要求データを送信し且つかかる論理状態を開始した後、当該キャッシュは、データの新しい要求が受信されたか否かを判断する（ステップ５１６）。もし、ステップ５１６において、新しい要求が受信されていないと判断されるならば、当該キャッシュは、現在のバス状態を維持し（ステップ５１８）、ステップ５１６に戻って、新しい要求が受信されるのを待機する。一方、ステップ５１６において、データの新しい要求が受信されたと判断されるならば、ステップ５０４に戻って動作を継続する。
【００３２】
従って、本発明の実施形態は、バス・スイッチング電力の節約に加えて、エンジニアド・バス上の雑音を減少させることができる。キャッシュ上に格納されているデータの要求は、要求元からキャッシュにおいて受信される。当該キャッシュは、要求データが当該キャッシュ上に格納されているか否かを判断する。要求データが当該キャッシュ上に格納されているという判断に応答して、当該キャッシュは、要求データを戻すべき一のバスを識別する。当該キャッシュは、識別されたバスを介して、要求データを要求元に送信するとともに、スイッチング電力を節約するために残りのバス上で論理状態を開始する。
【００３３】
本発明は、完全なハードウェア実施形態、完全なソフトウェア実施形態又はハードウェア及びソフトウェア要素の両方を含む実施形態の形式を取ることができる。好ましい実施形態では、本発明は、ファームウェア、常駐ソフトウェア、マイクロコードなどを含むが、これらに限定されないソフトウェアの形式で実装される。
【００３４】
さらに、本発明は、コンピュータ又は任意の命令実行システムによって或いはそれらに関連して使用するためのプログラム・コードを提供するコンピュータ使用可能媒体又はコンピュータ可読媒体からアクセス可能なコンピュータ・プログラムの形式を取ることができる。この点に関連して、コンピュータ使用可能媒体又はコンピュータ可読媒体は、命令実行システム、装置又はデバイスによってあるいはそれらに関連して使用するためのプログラムを保持し、格納し、通信し、伝播し又は搬送することができる任意の装置とすることができる。
【００３５】
かかる媒体は、電子的、磁気的、光学的、電磁的、赤外線、又は半導体システム（装置又はデバイス）或いは伝播媒体とすることができる。コンピュータ可読媒体の例は、半導体又は固体記憶デバイス、磁気テープ、取り外し可能なディスケット、ランダム・アクセス・メモリ（ＲＡＭ）、読み取り専用メモリ（ＲＯＭ）、固定磁気ディスク及び光ディスクを含む。光ディスクの現在の例は、コンパクト・ディスク・リード・オンリ・メモリ（ＣＤ−ＲＯＭ）、コンパクト・ディスク・リード／ライト（ＣＤ−Ｒ／Ｗ）及びＤＶＤを含む。
【００３６】
プログラム・コードを格納又は実行もしくはこれら両方を行うための適切なデータ処理システムは、システム・バスを通してメモリ要素に直接的に又は間接的に結合された少なくとも１つのプロセッサを含むであろう。かかるメモリ要素は、プログラム・コードの実際の実行中に使用されるローカル・メモリと、大容量記憶装置、及び実行中にコードが大容量記憶装置から検索されなければならない回数を減らすために、プログラム・コードの一時的記憶装置を提供するキャッシュ・メモリとを含むことができる。
【００３７】
Ｉ／Ｏデバイス（キーボード、ディスプレイ、ポインティング・デバイスなどを含むが、それらに限定されない）は、直接的に又はＩ／Ｏコントローラを介してシステムに結合することができる。
【００３８】
また、ネットワーク・アダプタをデータ処理システムに結合すると、当該データ処理システムを、プライベート・ネットワーク又は公衆ネットワークを介して、他のデータ処理システム、リモート・プリンタ、記憶装置などに結合することができる。モデム、ケーブル・モデム及びイーサネット（登録商標）カードは、現時点で使用可能なタイプのネットワーク・アダプタである。
【００３９】
本発明に関する記述は、例示及び説明を目的として与えられたものであり、網羅的であること及び開示された形態に本発明を限定することを意図するものではない。当業者にとって、多くの修正及び変形が明らかであろう。実施形態は、本発明の原理を最もよく説明し、考えられる特定の用途に適するような種々の修正を伴う種々の実施形態に関して当業者が本発明を理解することを可能にするために、選択され説明されたものである。
【図面の簡単な説明】
【００４０】
【図１】本発明の実施形態を実装することができる、データ処理システムの概略図である。
【図２】本発明の実施形態を実装することができる、データ処理システムのブロック図である。
【図３】本発明の実施形態に従ったバス・スイッチング機構を実装することができる、データ処理システムのブロック図である。
【図４】本発明の実施形態に従った、既知の論理状態を実装するための制御回路を示す図である。
【図５】本発明の実施形態に従った、バス・スイッチング機構の動作を示すフローチャートである。
【符号の説明】
【００４１】
３００  データ処理システム
３０２、３０４、３０６、３０８  プロセッサ・コア
３１０、３１２、３１４、３１６  Ｌ１キャッシュ
３１８、３２０、３２２、３２４  Ｌ２キャッシュ
３２６  主メモリ
３３０、３３２、３３４、３３６、３３８、３４０  バス
３４２、３４４、３４６、３４８  制御回路
４００  制御回路
【図１】
2008140379.tif 000003
【図２】
2008140379.tif 000004
【図３】
2008140379.tif 000005
【図４】
2008140379.tif 000006
【図５】
2008140379.tif 000007