JP5208479B2 - バス・スイッチング電力を節約し且つ雑音を減少させるためのコンピュータ実装方法、バス・スイッチング・システム及びコンピュータ・プログラム - Google Patents

バス・スイッチング電力を節約し且つ雑音を減少させるためのコンピュータ実装方法、バス・スイッチング・システム及びコンピュータ・プログラム Download PDF

Info

Publication number
JP5208479B2
JP5208479B2 JP2007281311A JP2007281311A JP5208479B2 JP 5208479 B2 JP5208479 B2 JP 5208479B2 JP 2007281311 A JP2007281311 A JP 2007281311A JP 2007281311 A JP2007281311 A JP 2007281311A JP 5208479 B2 JP5208479 B2 JP 5208479B2
Authority
JP
Japan
Prior art keywords
cache
bus
data
request
bits
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 - Fee Related
Application number
JP2007281311A
Other languages
English (en)
Other versions
JP2008140379A (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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2008140379A publication Critical patent/JP2008140379A/ja
Application granted granted Critical
Publication of JP5208479B2 publication Critical patent/JP5208479B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/325Power saving in peripheral device
    • G06F1/3253Power saving in bus
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

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)

Description

本発明は、エンジニアド(engineered)・バスに係り、さらに詳細に説明すれば、エンジニアド・バスにおけるバス・スイッチング電力を節約し且つ雑音を減少させるための方法に係る。
現在、マルチプロセッサは、より低コストでより良い性能を提供するために使用されている。多くの市販マルチプロセッサ・システムは、共有メモリ及び共用バス・アーキテクチャに基づいている。かかるマルチプロセッサ・システムは、ユニプロセッサ・バス・システムの拡張であるために、比較的簡単な実装を有している。かかるマルチプロセッサ・システムのグローバル共有メモリ及び一貫性機構によって与えられるプログラミング・モデルは、ユニプロセッサ上の連携プロセスのシステムに非常に類似している。
共用バス式マルチプロセッサの1つの制限は、バスの帯域幅である。すなわち、バスの帯域幅は、同じメモリに接続可能なプロセッサの数を制限し、従ってシステムの性能を制限するからである。バス帯域幅問題の1つの解決策は、バスの速度を増加させることであるが、この解決策はテクノロジの制限のために必ずしも常に容易であるとは限らない。バス帯域幅問題の別の解決策は、メモリに接続するのに、ワイド・バスや複数バスのような、より多くの線(ワイヤ)を使用することである。与えられたテクノロジについては、より多くの線がより大きな帯域幅を提供するが、キャッシュ、コード共有及びシステム複雑性のような複雑な要素が存在するために、これらの線を接続する最良の方法を見つけることは簡単ではない。
複数バスは、実装するのがより複雑であるが、メモリへの複数のパスが存在し且つ制御及びアドレス用により多くの線が存在するために、競合(コンテンション)を減少させるという利点がある。ワイド・バスは、構築するのがより簡単であるが、メモリへのパスを1つしか提供しないという欠点がある。ワイド・バスは、64ビット幅以上のバスであるとすることができる。長いワイド・バスを実装するプロセッサ・チップは、バス上のデータが使用されるか又は廃棄されるかに拘わらず、バスがスイッチするごとに電力を消費し且つ雑音を減少させる。長いワイド・バスは、6mm程度の長さを有し且つ64ビット幅以上のバスである。かかるバスは、電力を節約し且つ雑音を減少させるために、切り替え(toggling)を回避し、その代わりに、既知の論理状態に維持することを必要とする。
従って、本発明の目的は、バス・スイッチング電力を節約し且つ雑音を減少させるためのコンピュータ実装方法、バス・スイッチング・システム及びコンピュータ・プログラムを提供することである。
本発明の実施形態は、次のように動作する。
(1)第1のキャッシュにおいて、一の要求元からデータの要求を受信する。
(2)前記データが前記第1のキャッシュ上に格納されているか否かを判断する。
(3)前記データが前記第1のキャッシュ上に格納されているという判断に応答して、複数のバスのうち前記データを戻すべき一のバスを識別する。
(4)前記データを前記識別されたバスを介して前記要求元に送信する。
(5)バス・スイッチング電力を節約し且つ雑音を減少させるために、前記複数のバスのうち前記第1のキャッシュから延びる残りのバス上で一の論理状態を開始する。
本発明の新規な特徴的構成は、特許請求の範囲に記載されている通りである。しかし、本発明それ自体、並びにその推奨する使用態様、他の目的及び利点は、添付の図面に示されている本発明の実施形態に関する以下の説明から明らかとなるであろう。
本発明の実施形態は、エンジニアド・バスにおけるバス・スイッチング電力を節約し且つ雑音を減少させることを意図する。以下、図面を参照して説明する。図1には、本発明の実施形態を実装することができる、データ処理システムの概略図が示されている。コンピュータ100は、システム・ユニット102、ビデオ・ディスプレイ端末104、キーボード106、(フレキシブル・ディスク・ドライブや他のタイプの永続的及び取り外し可能な記憶媒体を含むことができる)記憶デバイス108及びマウス110を含む。追加の入力デバイスも、コンピュータ100に含めることができる。追加の入力デバイスの例には、ジョイスティック、タッチパッド、タッチ・スクリーン、トラックボール、マイクロホンなどがある。
コンピュータ100は、任意の適切なコンピュータとすることができる。図1のコンピュータ100は、パーソナル・コンピュータとして示されているが、他のタイプのデータ処理システムとすることができ、例えばネットワーク・コンピュータとすることもできる。また、コンピュータ100は、その内部の読取可能な媒体内に常駐するシステム・ソフトウェアによって実装することができる、グラフィカル・ユーザ・インタフェース(GUI)を含むことが好ましい。
図2は、本発明の実施形態を実装することができる、データ処理システム200のブロック図を示している。データ処理システム200は、図1のコンピュータ100の1例であって、その内部には、本発明の実施形態に従ったプロセスを実行するコード又は命令を配置することができる。
データ処理システム200が使用するハブ・アーキテクチャは、ノース・ブリッジ兼メモリ・コントローラ・ハブ(NB/MCH)202、サウス・ブリッジ兼I/Oコントローラ・ハブ(SB/ICH)204を含む。プロセッサ・ユニット206、主メモリ208及びグラフィックス・プロセッサ210は、NB/MCH202に結合される。プロセッサ・ユニット206は、1つ以上のプロセッサを含むことができ、さらに1つ以上の異種プロセッサ・システムを使用して実装することもできる。グラフィックス・プロセッサ210は、例えば、アクセラレイティッド・グラフィックス・ポート(AGP)を通して、NB/MCH202に結合することができる。
図2の例では、SB/ICH204に結合されるアダプタ類には、ローカル・エリア・ネットワーク(LAN)アダプタ212、オーディオ・アダプタ216、キーボード及びマウス・アダプタ220、モデム222、読み取り専用メモリ(ROM)224、ユニバーサル・シリアル・バス(USB)ポート及び他の通信ポート232がある。PCI/PCIeデバイス234は、バス238を通して、SB/ICH204に結合される。ハード・ディスク・ドライブ(HDD)226及びCD−ROMドライブ230は、バス240を通して、SB/ICH204に結合される。
PCI/PCIeデバイス234は、例えば、ノート・コンピュータ用のイーサネット(登録商標)・アダプタ、アドイン・カード及びPCカードを含むことができる。PCIはカード・バス・コントローラを使用するが、PCIeはこれを使用しない。ROM224は、例えば、フラッシュ(flash)基本入出力システム(BIOS)とすることができる。HDD226及びCD−ROMドライブ230は、例えば、統合ドライブ・エレクトロニクス(IDE)又はシリアル先進技術アタッチメント(SATA)インタフェースを使用することができる。スーパI/O(SIO)デバイス236は、SB/ICH204に結合することができる。
オペレーティング・システム(OS)は、プロセッサ・ユニット206上で稼働する。OSは、データ処理システム200内の種々のコンポーネントを調整し且つ制御する。OSは、Microsoft(登録商標)Windows XP(登録商標)のような市販のOSとすることができる。Java(登録商標)プログラミング・システムのようなオブジェクト指向プログラミング・システムは、OSとともに稼働することにより、データ処理システム200上で実行中のJava(登録商標)プログラム又はアプリケーションからのOSへの呼び出しを提供することができる。
OS、オブジェクト指向のプログラミング・システム及びアプリケーション用の命令又はプログラムは、HDD226のような記憶デバイス上に置かれる。これらの命令は、プロセッサ・ユニット206による実行のために主メモリ208にロードすることができる。本発明の実施形態に従ったプロセスは、メモリ内に位置する命令を使用して、プロセッサ・ユニット206によって実行することができる。かかるメモリの1例は、主メモリ208、読み取り専用メモリ224、又は1つ以上の周辺デバイスである。
図1及び図2に示されるハードウェアは、実施形態の実装に依存して変えることができる。すなわち、図1及び図2に示されるハードウェアに加えて、又はそのハードウェアの代わりに、フラッシュ・メモリ、これと同等の不揮発性メモリ、光ディスク・ドライブなどの他の内部ハードウェア又は周辺デバイスを使用することができる。さらに、本発明の実施形態のプロセスは、マルチプロセッサ・データ処理システムにも適用することができる。
図2に示されるシステム及びコンポーネントは、図示の例から変えることができる。すなわち、或る実施形態では、データ処理システム200を携帯情報端末(PDA)とすることができる。PDAは、一般に、フラッシュ・メモリから構成され、これをOSファイル又はユーザ生成データもしくはこれら両方を格納するための不揮発性メモリとして使用する。さらに、データ処理システム200は、タブレット・コンピュータ、ラップトップ・コンピュータ又は電話デバイスとすることができる。
図2に示される他のコンポーネントは、図示の例から変えることができる。例えば、バス・システムは、システム・バス、I/Oバス及びPCIバスのような1つ以上のバスから構成することができる。もちろん、バス・システムは、異なるコンポーネント又はデバイスの間のデータ転送を提供するための、任意の適切なタイプの通信ファブリック又はアーキテクチャを使用して実装することができる。さらに、通信ユニットは、モデム又はネットワーク・アダプタのような、データ送受信用の1つ以上のデバイスを含むことができる。さらに、メモリは、例えば、主メモリ208又はNB/MCH202内に設けられたキャッシュとすることができる。さらに、プロセッサ・ユニットは、1つ以上のプロセッサ又はCPUを含むことができる。
図1及び図2に示された例は、アーキテクチャ上の制限を意味するのが目的ではない。さらに、本発明の実施形態は、ソース・コードをコンパイルし且つコードを実行するための、コンピュータ実装方法、装置及びコンピュータ・プログラムを提供する。本発明の実施形態に関連して説明される方法は、図1のデータ処理システム100又は図2のデータ処理システム200のようなデータ処理システム内で実施することができる。
本発明の実施形態は、未使用バス上で一の論理状態を維持することにより、当該バスを切り替えることにより失われる電力を節約し且つ雑音を減少させるものである。一のキャッシュが当該キャッシュ内に格納されているデータを送信するための要求を受信する場合、当該キャッシュは、1つのバスを介してこのデータを要求元に送信し、そして電力が使用されず且つ雑音が減少されるように、全ての未使用バスを既知の論理状態に維持する。本発明の実施形態は、64ビット幅のワイド・バスに適用される。但し、本発明の概念は、64ビット幅より狭いバス又は64ビット幅より広いバスにも同様に適用することができる。長いワイド・バスを実装するプロセッサ・チップは、当該バス上のデータが使用されるか又は廃棄されるかに拘わらず、当該バスがスイッチするごとに電力を消費し且つ雑音を減少させる。長いワイド・バスは、6mm程度の長さを有し且つ64ビット幅以上のバスである。但し、本発明の概念は、電力の節約分や雑音の減少分が比較的小さくなることを除けば、これより短いバスにも適用することができる。かかるバスは、電力を節約し且つ雑音を減少させるために、切り替え(toggling)を回避し、その代わりに、既知の論理状態に維持することを必要とする。
図3は、本発明の実施形態に従ったバス・スイッチング機構を実装することができる、データ処理システム300を示す。データ処理システム300は、電力を節約し且つ雑音を減少させるために使用されるコンポーネントを含み、図2のデータ処理システム200のようなデータ処理システムとして実装することができる。データ処理システム300のプロセッサ・ユニットは、プロセッサ・コア302、304、306及び308を備えている。これらのコアは、図2のプロセッサ・ユニット206のようなプロセッサ・ユニット内に見いだすことができる。データ処理システム300は4つのプロセッサ・コアを備えているに過ぎないが、データ処理システム300のプロセッサ・ユニットは任意の数のプロセッサ・コアを備えることができる。さらに、データ処理システム300は、2レベル以上のキャッシュ・メモリとして、レベル1(L1)キャッシュ310、312、314及び316と、レベル2(L2)キャッシュ318、320、322及び324を含む。これらのL1及びL2キャッシュは、図2のNB/MCH202のようなノース・ブリッジ兼メモリ・コントローラ・ハブ内に設けることができる。
L1キャッシュ310、312、314及び316は、64キロバイト程度の小さなメモリ容量を含む、高速メモリ・チップとすることができる。L1キャッシュ310、312、314及び316は、「1次キャッシュ」と呼ばれることもある。L1キャッシュ310、312、314及び316は、プロセッサ・コア302、304、306及び308と、L2キャッシュ318、320、322及び324との間に位置する。実装に依存して、L1キャッシュ310、312、314及び316は、プロセッサ・コア302、304、306及び308と同じ集積回路上に統合化することができる。さらに、L1キャッシュ310、312、314及び316は、それらのより速いアクセス速度のために、L2キャッシュ318、320、322及び324よりも比較的高価である。
一般に、L2キャッシュ(2次キャッシュ)318、320、322及び324は、L1キャッシュに比較すると、メモリ容量が大きく且つアクセス速度が遅い。一般に、L2キャッシュ318、320、322及び324は、L1キャッシュ310、312、314及び316と、主メモリ326との間に位置する。L1キャッシュ310、312、314及び316と異なり、L2キャッシュ318、320、322及び324は、本発明の実施形態に関連して説明するように、プロセッサ・コア302、304、306及び308の集積回路に対して内部的に設けることもできるし、当該集積回路に対して外部的に設けることもできる。さらに、L2キャッシュ318、320、322及び324は、それらのより遅いアクセス速度のために、L1キャッシュ310、312、314及び316よりも製造コストが安い。本発明の実施形態は、L1キャッシュ310、312、314及び316と、L2キャッシュ318、320、322及び324とを備えているが、データ処理システム300内に他のレベルのキャッシュ(例えば、レベル3(L3)キャッシュ)を含めることもできる。L2キャッシュ318、320、322及び324の各々は、それぞれが258ビット幅であるバス328を介して、L1キャッシュ310、312、314及び316のうちの対応する1つにそれぞれ接続される。また、L2キャッシュ318、320、322及び324は、バス330、332、334、336、338及び340を介して、互いに接続される。
データの要求が一のプロセッサ・コア(例えば、プロセッサ・コア302)によってなされる場合、最初に、このデータがプロセッサ・コア302に対応するL1キャッシュ310内に格納されているか否かを判断するためのチェックが行われる。もし、要求データがL1キャッシュ310内に格納されていなければ、L1キャッシュ310は、この要求をL1キャッシュ310に対応するL2キャッシュ318に送信する。L2キャッシュ318は、この要求を受信し、要求データがL2キャッシュ318内に格納されているか否かを判断する。もし、L2キャッシュ318が要求データを格納していなければ、L2キャッシュ318は、バス330、332及び334を介して、この要求を他のL2キャッシュ320、322及び324に送信する。
本発明の実施形態では、バスの活動は、要求データを提供しているキャッシュ・ソースに制限されている。前述の例を引き続き説明すると、要求データがL2キャッシュ322で見つかる場合、L2キャッシュ322は、要求データをバス332を通してL2キャッシュ318に供給し、そこからL1キャッシュ310に供給することによって、LIキャッシュ310に応答するであろう。それと同時に、通常の場合、L2キャッシュ322は、L2キャッシュ320及び324に対するバス336及び340の接続をトグル・オフする(切り替えてオフにする)であろう。要求データを戻すために使用されないバスをトグル・オフすることは、電力を使用する。
電力を節約するために、バス330、332、336、338及び340のそれぞれの切り替えは回避される。従って、前述の例について説明すれば、バス336及び340をトグル・オフする代わりに、バス336及び340は、既知の論理状態に維持される。この論理状態は、データが最後に使用され、全てのビットが「0」になるか、又は「0」及び「1」の既知の組み合わせになるようにリセットされたときの状態と同じ状態とすることができる。バス336及び340は、バス330、332、336、338及び340が(例えば、新しいデータによって上書きされるように)再び使用される準備ができるまで、必要とされるサイクル数の間この論理状態に維持することができる。
この論理状態は、L2キャッシュ318、320、322及び324のうち要求データを供給している1つのL2キャッシュ(説明中の例では、L2キャッシュ322)によって実装される。L2キャッシュ318、320、322及び324の各々は、制御回路342、344、346又は348を有し、当該各制御回路は、要求データを戻すのに現に使用されていないバス330、332、336、338又は340に対し一の論理状態を供給する。バス330、332、336、338及び340のうち未使用中のバスの各々は、258ビット幅であって、次のように複数のチャンクに細分される。<0:22><23:45> <46:68> <69:91><92:114> <115:128、9’b0> <129:151> <152:174> <175:197><198:220> <221:243> <244:257、9’b0>。各チャンクは、23ビット幅である。23ビット幅の各チャンクごとに、制御回路342、344、346及び348は、非アクティブ状態の間に、最初の連続12ビットを「0」にセットし、残りの連続11ビットを「1」にセットする。
図4は、本発明の実施形態に従った、既知の論理状態を実装するための制御回路400を示す。制御回路400は、このエンジニアリング・バス解決策における最初のバッファの前方で、ANDゲート及びORゲートを使用する。制御回路400は、図3の制御回路342、344、346及び348のような制御回路である。2つのパワー・ダウン制御信号である「powerdown_0」信号402及び「powerdown_1」信号404は、2つのソースから到来することができる。これらの2つのソースは、例えば、L2キャッシュそれ自体であるか、又はオーバーライド(指定変更)が望まれる場合はL2キャッシュの外部にあるコントローラとすることができる。もし、これらの2つのソースのうちどちらかが一のパワー・ダウン制御信号をアクティブ化すれば、バスは、このパワー・ダウン制御信号が非アクティブになるまで、<12’h0、11’h3ff>にセットされる。「powerdown_0」信号402及び「powerdown_1」信号404のうち一方がアクティブである場合、「powerdown_a」信号406及び「powerdown_b」信号408が生成される。「Powerdown_b」信号408は、「powerdown_a」信号406を反転したものである。「Powerdown_b」信号408は、「data_in」信号412の最初の12ビット(0:11)とともに、ANDゲート410の入力に加えられる。ANDゲート410は、連続する12個の「0」ビットを生成する。「Powerdown_a」信号406は、残りの11ビット(12:22)の「data_in」信号412とともに、ORゲート414の入力に加えられる。ORゲート414は、連続する11個の「1」ビットを生成する。ほぼ半分のビットを「0」にセットし且つ他の半分のビットを「1」にセットすることは、「0」及び「1」が連続的にインターリーブされるような態様では行われない。このようにすると、望ましくないミラー結合に起因して、バスをセットする間に電力を消費することになるからである。その代わりに、連続するビットは、ビット位置12及び13を除き、セット中にミラー結合に遭遇しないように「0」及び「1」へセットされた。しかし、ビット12及び13が除かれるのは、電力グリッドが既にそれらを分離しているような状態であるという理由による。もし、パワーダウン状態にあるバスが01010・・・01のように見えるように、「0」及び「1」が分散されたならば、1つの「1」は2つの連続した「0」の中間に強制され、その逆も同様である。従って、1つの「1」が1本の線に書かれるのに対し、2本の隣接した近隣の線は反対の極性で書かれることになる。ミラー結合は、或るバスの隣接したビットが反対方向にスイッチされる場合に現われるような動的結合である。パワーダウン状態にあるバス内のビットが「1」又は「0」の連続するチャンクとなるようにこれらのビットを選択的にセットすることによって、ミラー結合が除去される。というのは、殆どのビットを横切って、隣接した近隣の2ビットが当該ビットそれ自体と同じ方向においてスイッチしているからである。
本発明の実施形態では、ビット11が「0」にセットされる場合、スイッチング条件がビット<12>で起こり、ビット<12>は「1」にセットされ、ビット<13>は「1」にセットされる。従って、ビット<11:13>は「011」に等しい。ビット<11>とビット<12>との間のミラー結合は問題にならない。なぜなら、Vdd/Gnd電力バスが23ビット・バスの中間でインターリーブされ、そして静的なVdd線がビット<11>とビット<12>との間の中間を走っているからである。従って、ミラー結合は、バスのパワーダウンを行っている間に、当該バスの全体についてキャンセルされる。
図5は、本発明の実施形態に従ったバス・スイッチング機構の典型的な動作を示す。このバス・スイッチング機構は、図4の制御回路400や、図3のL2キャッシュ318、320、322又は324内に含まれる制御回路342、344、346及び348のような、制御回路及びキャッシュによって実装することができる。動作が開始すると、データの要求が一のキャッシュによって受信される(ステップ502)。このキャッシュは、要求データが当該キャッシュに格納されているか否かを判断する(ステップ504)。もし、ステップ504において、要求データが当該キャッシュ内に格納されていないと判断されるならば、当該キャッシュは、当該要求が当該キャッシュよりも高い階層レベル内にあるキャッシュ又はプロセッサから受信されたか否かを判断する(ステップ506)。もし、ステップ506において、当該要求が当該キャッシュよりも高い階層レベル内にあるキャッシュ又はプロセッサから受信されたと判断されるならば、当該キャッシュは、当該要求を当該キャッシュと同じ階層レベル内にある他の任意のキャッシュに転送し(ステップ508)、その後この動作は終了する。一方、ステップ506において、当該要求が当該キャッシュと同じ階層レベル内にある他のキャッシュから受信されたと判断されるならば、この動作は終了する。というのは、当該キャッシュと同じ階層レベル内にある他のキャッシュから要求を受信することは、当該要求が当該他のキャッシュに既に送信されたことを示すからである。
ステップ504に戻って説明を続ける。もし、ステップ504において、要求データが当該キャッシュ内に格納されていると判断されるならば、当該キャッシュは、当該要求内に保持されている情報を使用することにより、当該キャッシュが要求データを戻すべきバスを識別する(ステップ510)。その後、当該キャッシュは2つの機能を遂行する。第1に、当該キャッシュは、識別されたバスを介して、要求データを要求元に送信する(ステップ512)。第2に、当該キャッシュは、残りの他のバスが切り替え(トグル)されないように、当該他のバス上で一の論理状態を開始する(ステップ514)。この論理状態を開始することは、当該他のバスを切り替えることによって電力が使用されないように、図4に示されている論理状態のような既知の論理状態を当該他のバス上で開始することを含んでいてもよい。当該キャッシュが要求データを送信し且つかかる論理状態を開始した後、当該キャッシュは、データの新しい要求が受信されたか否かを判断する(ステップ516)。もし、ステップ516において、新しい要求が受信されていないと判断されるならば、当該キャッシュは、現在のバス状態を維持し(ステップ518)、ステップ516に戻って、新しい要求が受信されるのを待機する。一方、ステップ516において、データの新しい要求が受信されたと判断されるならば、ステップ504に戻って動作を継続する。
従って、本発明の実施形態は、バス・スイッチング電力の節約に加えて、エンジニアド・バス上の雑音を減少させることができる。キャッシュ上に格納されているデータの要求は、要求元からキャッシュにおいて受信される。当該キャッシュは、要求データが当該キャッシュ上に格納されているか否かを判断する。要求データが当該キャッシュ上に格納されているという判断に応答して、当該キャッシュは、要求データを戻すべき一のバスを識別する。当該キャッシュは、識別されたバスを介して、要求データを要求元に送信するとともに、スイッチング電力を節約するために残りのバス上で論理状態を開始する。
本発明は、完全なハードウェア実施形態、完全なソフトウェア実施形態又はハードウェア及びソフトウェア要素の両方を含む実施形態の形式を取ることができる。好ましい実施形態では、本発明は、ファームウェア、常駐ソフトウェア、マイクロコードなどを含むが、これらに限定されないソフトウェアの形式で実装される。
さらに、本発明は、コンピュータ又は任意の命令実行システムによって或いはそれらに関連して使用するためのプログラム・コードを提供するコンピュータ使用可能媒体又はコンピュータ可読媒体からアクセス可能なコンピュータ・プログラムの形式を取ることができる。この点に関連して、コンピュータ使用可能媒体又はコンピュータ可読媒体は、命令実行システム、装置又はデバイスによってあるいはそれらに関連して使用するためのプログラムを保持し、格納し、通信し、伝播し又は搬送することができる任意の装置とすることができる。
かかる媒体は、電子的、磁気的、光学的、電磁的、赤外線、又は半導体システム(装置又はデバイス)或いは伝播媒体とすることができる。コンピュータ可読媒体の例は、半導体又は固体記憶デバイス、磁気テープ、取り外し可能なディスケット、ランダム・アクセス・メモリ(RAM)、読み取り専用メモリ(ROM)、固定磁気ディスク及び光ディスクを含む。光ディスクの現在の例は、コンパクト・ディスク・リード・オンリ・メモリ(CD−ROM)、コンパクト・ディスク・リード/ライト(CD−R/W)及びDVDを含む。
プログラム・コードを格納又は実行もしくはこれら両方を行うための適切なデータ処理システムは、システム・バスを通してメモリ要素に直接的に又は間接的に結合された少なくとも1つのプロセッサを含むであろう。かかるメモリ要素は、プログラム・コードの実際の実行中に使用されるローカル・メモリと、大容量記憶装置、及び実行中にコードが大容量記憶装置から検索されなければならない回数を減らすために、プログラム・コードの一時的記憶装置を提供するキャッシュ・メモリとを含むことができる。
I/Oデバイス(キーボード、ディスプレイ、ポインティング・デバイスなどを含むが、それらに限定されない)は、直接的に又はI/Oコントローラを介してシステムに結合することができる。
また、ネットワーク・アダプタをデータ処理システムに結合すると、当該データ処理システムを、プライベート・ネットワーク又は公衆ネットワークを介して、他のデータ処理システム、リモート・プリンタ、記憶装置などに結合することができる。モデム、ケーブル・モデム及びイーサネット(登録商標)カードは、現時点で使用可能なタイプのネットワーク・アダプタである。
本発明に関する記述は、例示及び説明を目的として与えられたものであり、網羅的であること及び開示された形態に本発明を限定することを意図するものではない。当業者にとって、多くの修正及び変形が明らかであろう。実施形態は、本発明の原理を最もよく説明し、考えられる特定の用途に適するような種々の修正を伴う種々の実施形態に関して当業者が本発明を理解することを可能にするために、選択され説明されたものである。
本発明の実施形態を実装することができる、データ処理システムの概略図である。 本発明の実施形態を実装することができる、データ処理システムのブロック図である。 本発明の実施形態に従ったバス・スイッチング機構を実装することができる、データ処理システムのブロック図である。 本発明の実施形態に従った、既知の論理状態を実装するための制御回路を示す図である。 本発明の実施形態に従った、バス・スイッチング機構の動作を示すフローチャートである。
符号の説明
300 データ処理システム
302、304、306、308 プロセッサ・コア
310、312、314、316 L1キャッシュ
318、320、322、324 L2キャッシュ
326 主メモリ
330、332、334、336、338、340 バス
342、344、346、348 制御回路
400 制御回路

Claims (14)

  1. バス・スイッチング電力を節約し且つ雑音を減少させるためのコンピュータ実装方法であって、
    第1のキャッシュにおいて、一の要求元からのデータの要求を受信するステップと、
    前記データが前記第1のキャッシュ上に格納されているか否かを判断するステップと、
    前記データが前記第1のキャッシュ上に格納されているという判断に応答して、複数のバスのうち前記データを戻すべき一のバスを識別するステップと、
    前記データを前記識別されたバスを介して前記要求元に送信するステップと、
    バス・スイッチング電力を節約し且つ雑音を減少させるために、前記複数のバスのうち前記第1のキャッシュから延びる残りの複数のバス上で一の論理状態を開始するステップとを含み、
    前記論理状態は前記第1のキャッシュ内の制御回路から開始され、
    前記制御回路は、前記論理状態にあるバス内のビットが「1」又は「0」の連続するチャンクとなるようにこれらのビットを選択的にセットする、
    コンピュータ実装方法。
  2. 前記論理状態にあるバス内のビットの「1」と「0」とは、電力グリッドにより分離される
    請求項1に記載のコンピュータ実装方法。
  3. 前記第1のキャッシュにおいて、前記データの新しい要求が受信されたか否かを判断するステップと、
    前記新しい要求が受信されていないという判断に応答して、前記残りの複数のバス上で前記論理状態を維持するステップとをさらに含む、
    請求項1又は2に記載のコンピュータ実装方法。
  4. 前記データが前記第1のキャッシュ上に格納されていないという判断に応答して、前記要求が前記第1のキャッシュよりも高い階層レベル内の前記要求元から受信されたか否かを判断するステップと、
    前記要求が前記第1のキャッシュよりも高い階層レベル内の前記要求元から受信されたという判断に応答して、前記要求を前記第1のキャッシュと同じ階層レベル内の複数のキャッシュに送信するステップとをさらに含む、
    請求項1乃至3のいずれかに記載のコンピュータ実装方法。
  5. 前記複数のキャッシュのうちの第2のキャッシュにおいて、前記第1のキャッシュから送信された前記要求を受信するステップと、
    前記データが前記第2のキャッシュ上に格納されているか否かを判断するステップと、
    前記データが前記第2のキャッシュ上に格納されているという判断に応答して、前記複数のバスのうちで前記要求が受信されたバスを要求バスとして識別するステップと、
    前記データを前記要求バスを介して前記要求元に送信するステップと、
    バス・スイッチング電力を節約し且つ雑音を減少させるために、前記複数のバスのうち前記第2のキャッシュから延びる残りの複数のバス上で前記論理状態を開始するステップとをさらに含む、
    請求項に記載のコンピュータ実装方法。
  6. 前記複数のバスは258ビット幅のバスであり、23ビット幅の複数チャンクに細分され、
    前記制御回路は、前記論理状態の間に、各チャンクの最初の連続12ビットを「0」にセットし、残りの連続11ビットを「1」にセットする、
    請求項1乃至5のいずれかに記載のコンピュータ実装方法。
  7. 前記要求元は、少なくとも1つのプロセッサ又は前記第1のキャッシュよりも高い階層レベル内の他のキャッシュである、請求項1乃至6のいずれかに記載のコンピュータ実装方法。
  8. バス・スイッチング・システムであって、
    一のバス・システムと、
    前記バス・システムに接続された複数のキャッシュと、
    前記複数のキャッシュ内の制御回路とを備え、
    前記複数のキャッシュのうちの第1のキャッシュは、一の要求元からデータの要求を受信し、前記データが前記第1のキャッシュ上に格納されているか否かを判断し、前記データが前記第1のキャッシュ上に格納されているという判断に応答して、前記バス・システムのうち前記データを戻すべき一のバスを識別し、前記データを前記識別されたバスを介して前記要求元に送信するとともに、バス・スイッチング電力を節約し且つ雑音を減少させるために、前記制御回路を使用して、前記バス・システムのうち前記第1のキャッシュから延びる残りのバス上で論理状態を開始し、
    前記制御回路は、前記論理状態にあるバス内のビットが「1」又は「0」の連続するチャンクとなるようにこれらのビットを選択的にセットする、
    バス・スイッチング・システム。
  9. 前記論理状態にあるバス内のビットの「1」と「0」とは、電力グリッドにより分離される
    請求項8に記載のバス・スイッチング・システム。
  10. 前記第1のキャッシュは、前記データの新しい要求が受信されたか否かを判断し、前記新しい要求が受信されていないという判断に応答して、前記残りのバス上で前記論理状態を維持することをさらに含む、
    請求項8又は9に記載のバス・スイッチング・システム。
  11. 前記第1のキャッシュは、前記データが前記第1のキャッシュ上に格納されていないという判断に応答して、前記要求が前記第1のキャッシュよりも高い階層レベル内の前記要求元から受信されたか否かを判断し、前記要求が前記第1のキャッシュよりも高い階層レベル内の前記要求元から受信されたという判断に応答して、前記要求を前記第1のキャッシュと同じ階層レベル内の複数のキャッシュに送信することをさらに含む、
    請求項8乃至10のいずれかに記載のバス・スイッチング・システム。
  12. 前記複数のキャッシュのうちの第2のキャッシュは、前記第1のキャッシュから送信された前記要求を受信し、前記データが前記第2のキャッシュ上に格納されているか否かを判断し、前記データが前記第2のキャッシュ上に格納されているという判断に応答して、前記バス・システムのうち前記要求が受信されたバスを要求バスとして識別し、前記データを前記要求バスを介して前記要求元に送信するとともに、バス・スイッチング電力を節約し且つ雑音を減少させるために、前記制御回路を使用して、前記バス・システムのうち前記第2のキャッシュから延びる残りのバス上で前記論理状態を開始することをさらに含む、
    請求項11に記載のバス・スイッチング・システム。
  13. 前記バス・システム内のバスは258ビット幅のバスであり、23ビット幅の複数チャンクに細分され、
    前記制御回路は、前記論理状態の間に、各チャンクの最初の連続12ビットを「0」にセットし、残りの連続11ビットを「1」にセットする、
    請求項8乃至12のいずれかに記載のバス・スイッチング・システム。
  14. 前記要求元は、少なくとも1つのプロセッサ又は前記第1のキャッシュよりも高い階層レベル内の他のキャッシュである、請求項8乃至13のいずれかに記載のバス・スイッチング・システム。
JP2007281311A 2006-11-29 2007-10-30 バス・スイッチング電力を節約し且つ雑音を減少させるためのコンピュータ実装方法、バス・スイッチング・システム及びコンピュータ・プログラム Expired - Fee Related JP5208479B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/564563 2006-11-29
US11/564,563 US8495272B2 (en) 2006-11-29 2006-11-29 Method to save bus switching power and reduce noise in an engineered bus

Publications (2)

Publication Number Publication Date
JP2008140379A JP2008140379A (ja) 2008-06-19
JP5208479B2 true JP5208479B2 (ja) 2013-06-12

Family

ID=39494248

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007281311A Expired - Fee Related JP5208479B2 (ja) 2006-11-29 2007-10-30 バス・スイッチング電力を節約し且つ雑音を減少させるためのコンピュータ実装方法、バス・スイッチング・システム及びコンピュータ・プログラム

Country Status (3)

Country Link
US (1) US8495272B2 (ja)
JP (1) JP5208479B2 (ja)
CN (1) CN101192094A (ja)

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63180153A (ja) * 1987-01-21 1988-07-25 Hitachi Ltd キヤツシユ記憶のラインバツク制御方式
US5454093A (en) * 1991-02-25 1995-09-26 International Business Machines Corporation Buffer bypass for quick data access
US5625793A (en) * 1991-04-15 1997-04-29 International Business Machines Corporation Automatic cache bypass for instructions exhibiting poor cache hit ratio
US5392407A (en) 1992-12-24 1995-02-21 Ncr Corporation Multi-port processor with peripheral component interconnect port and rambus port
US5528764A (en) * 1992-12-24 1996-06-18 Ncr Corporation Bus system with cache snooping signals having a turnaround time between agents driving the bus for keeping the bus from floating for an extended period
JP3027843B2 (ja) * 1993-04-23 2000-04-04 株式会社日立製作所 バススヌ−プ方法
EP0624844A2 (en) * 1993-05-11 1994-11-17 International Business Machines Corporation Fully integrated cache architecture
US5835934A (en) * 1993-10-12 1998-11-10 Texas Instruments Incorporated Method and apparatus of low power cache operation with a tag hit enablement
US6320778B1 (en) * 1994-01-06 2001-11-20 Oki Electric Industry Co., Ltd. Semiconductor memory with built-in cache
US6098150A (en) * 1995-11-17 2000-08-01 Sun Microsystems, Inc. Method and apparatus for fetching information from a cache memory
US6021480A (en) * 1996-06-05 2000-02-01 Compaq Computer Corporation Aligning a memory read request with a cache line boundary when the request is for data beginning at a location in the middle of the cache line
US5802323A (en) * 1996-06-14 1998-09-01 Advanced Micro Devices, Inc. Transparent burst access to data having a portion residing in cache and a portion residing in memory
EP1005675B1 (en) * 1996-07-16 2007-01-03 Advanced Micro Devices, Inc. A data memory unit configured to store data in one clock cycle and method for operating same
US5895487A (en) * 1996-11-13 1999-04-20 International Business Machines Corporation Integrated processing and L2 DRAM cache
JPH10254779A (ja) 1997-03-14 1998-09-25 Toshiba Corp 分散キャッシュシステム
US6035392A (en) * 1998-02-20 2000-03-07 International Business Machines Corporation Computer with optimizing hardware for conditional hedge fetching into cache storage
US6353874B1 (en) * 2000-03-17 2002-03-05 Ati International Srl Method and apparatus for controlling and caching memory read operations in a processing system
US6651142B1 (en) * 2000-05-05 2003-11-18 Sagent Technology Method and apparatus for processing data using multi-tier caching
US6725341B1 (en) * 2000-06-28 2004-04-20 Intel Corporation Cache line pre-load and pre-own based on cache coherence speculation
US6922756B2 (en) * 2002-12-19 2005-07-26 Intel Corporation Forward state for use in cache coherency in a multiprocessor system
US7330940B2 (en) * 2005-02-02 2008-02-12 Hewlett-Packard Development Company, L.P. Method and system for cache utilization by limiting prefetch requests
US8135972B2 (en) * 2009-03-10 2012-03-13 Cortina Systems, Inc. Data interface power consumption control

Also Published As

Publication number Publication date
US8495272B2 (en) 2013-07-23
US20080126666A1 (en) 2008-05-29
CN101192094A (zh) 2008-06-04
JP2008140379A (ja) 2008-06-19

Similar Documents

Publication Publication Date Title
JP4621540B2 (ja) 主及び補助プロセッサを備えた低電力コンピュータ
JP5060487B2 (ja) ダイナミックメモリサイジングのレイテンシを最適化する方法、システムおよびプログラム
JP4969805B2 (ja) 適応記憶システム
US6904499B2 (en) Controlling cache memory in external chipset using processor
US12061562B2 (en) Computer memory expansion device and method of operation
US20110213950A1 (en) System and Method for Power Optimization
US7529955B2 (en) Dynamic bus parking
US20110213998A1 (en) System and Method for Power Optimization
US20110213947A1 (en) System and Method for Power Optimization
JP3857661B2 (ja) 情報処理装置、プログラム、及び記録媒体
CN102646446B (zh) 硬件动态高速缓存电源管理
US20100228922A1 (en) Method and system to perform background evictions of cache memory lines
US10635337B2 (en) Dynamic configuration of compressed virtual memory
US20200242040A1 (en) Apparatus and Method of Optimizing Memory Transactions to Persistent Memory Using an Architectural Data Mover
JP3935873B2 (ja) プリフェッチ・バッファを用いたメモリ電力管理
JPH09179779A (ja) コンピュータシステムおよびデータ転送方法
JP5208479B2 (ja) バス・スイッチング電力を節約し且つ雑音を減少させるためのコンピュータ実装方法、バス・スイッチング・システム及びコンピュータ・プログラム
US20200133862A1 (en) Asymmetric memory tag access and design
US11093432B1 (en) Multi-channel DIMMs
JP2021515305A (ja) スコアボードの保存及び復元
US20040250035A1 (en) Method and apparatus for affecting computer system

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100622

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120821

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20121120

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20121126

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130107

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130220

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

Free format text: PAYMENT UNTIL: 20160301

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 5208479

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