説明

マルチプロセッサシステム

【課題】プロセッサが動作停止状態に移行した場合、キャッシュデータの一貫性を保持しつつ、キャッシュメモリの消費電力を削減できる。
【解決手段】第1及び第2のプロセッサ101、111と、共有メモリ123と、第1及び第2のキャッシュメモリ102、112と、第1及び第2のキャッシュメモリが記憶しているデータの一貫性を管理する一貫性管理回路120と、一貫性管理回路から第1及び第2のキャッシュメモリに対して、データ更新を要求する要求信号を伝達するための要求信号線SCOPと、第1及び第2のキャッシュメモリから一貫性管理回路に対して、データ更新が完了したことを通知する通知信号を伝達するための通知信号線SCCOREREADYと、要求信号と通知信号とに応じて、第1及び第2のキャッシュメモリへのクロック信号及び電源の供給を制御するキャッシュ電力制御回路103、113と、を備えるマルチプロセッサシステム。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、複数のプロセッサがメモリ空間を共有し、並列に動作するマルチプロセッサシステムに関する。
【背景技術】
【0002】
複数のプロセッサがメモリ空間を共有し、並列に動作するマルチプロセッサシステムでは、携帯機器への応用等のため省電力制御技術の必要性が高まっている。また、マルチプロセッサシステムでは、各プロセッサが共有するメモリへのアクセス速度とプロセッサの処理速度との速度差を補うため、プロセッサ毎にキャッシュメモリを有する場合がある。
【0003】
この場合、各プロセッサが共有メモリにアクセスすると、対応するキャッシュメモリが記憶しているデータ(キャッシュデータ)が更新される。そのため、各プロセッサが常に最新の正しいデータにアクセスできるよう、各々のキャッシュメモリ間、及び、共有メモリとの間でデータの一貫性を保つ必要がある。これは、キャッシュコヒーレンス(cache coherence)又はキャッシュコヒーレンシー(cache coherency)と呼ばれている。
【0004】
図8は、複数のプロセッサでメモリ空間を共有し、並列に動作するSMP型のマルチプロセッサシステムの一例を示す図である。図8に開示したマルチプロセッサシステムは、プロセッサコア2と対応するキャッシュメモリ3を有するプロセッサ1、同様にプロセッサコア12と対応するキャッシュメモリ13を有するプロセッサ11、前記2つのプロセッサで共有する共有メモリ5と、前記2つのプロセッサ1、11と共有メモリ5を接続する相互結合網4を有する。2つのプロセッサ1、11と共有メモリ5は、相互結合網4を介して相互にデータの受け渡しが可能である。ここで、相互結合網4は、例えば単一バス、マルチバス、多段相互結合網等、システムの要求に応じて構成される。
【0005】
図8においてキャッシュメモリのそれぞれが記憶しているキャッシュデータの一貫性を保つキャッシュコヒーレンスの制御の一例を説明する。尚、キャッシュコヒーレンスを管理するためのプロトコル(cache coherence protocol)はいろいろな方式が提案されているが、ここでは基本的な概念を示すのみとする。
【0006】
図8において、2つのプロセッサ1、11の書き込み方式はライト・スルー方式とし、データ書き込み時には対応するキャッシュメモリとメモリの両方にデータを書き込むものとする。また、初期状態において、2つのキャッシュメモリ3、13が同じデータXを記憶しているものとする。
【0007】
ここでプロセッサコア2がデータXをデータYに更新すると、キャッシュメモリ3及び共有メモリ5上のデータXがデータYに更新される。この場合、キャッシュメモリ13上のデータXがデータYに更新されないままであると、キャッシュメモリ3、13の間でキャッシュデータの不一致が発生する。
【0008】
上記問題を解決するための例として、上記キャッシュメモリ3、13が、相互結合網4上の全ての書き込み操作に対して監視を行なう方法がある。この場合、キャッシュメモリ3、13は自身で保有しているデータXが更新されたことを認識できるようになる。
【0009】
キャッシュメモリ13は、共有メモリ5上のデータXがデータYへ更新されたことを認識すると、自身で保有しているデータXを無効(Invalid)状態に設定する。ここで、キャッシュメモリ13に対応するプロセッサコア12が、当該データを読み出そうとしても、キャッシュメモリ13上の更新前のデータXは無効状態に設定されており、利用することができない。そのため、共有メモリ5から更新後のデータYを読み込む。このときキャッシュメモリ13もキャッシュデータとしてデータYを記憶するため、キャッシュメモリのそれぞれに記憶されたキャッシュデータの不一致が回避される。
【0010】
また、特許文献1には、キャッシュコヒーレンスを維持する能力と共に省電力化を実現するマルチプロセッサシステムが開示されている。図9に示す特許文献に1に記載の装置は、複数のプロセッサコア22と各々のプロセッサコアに接続されたキャッシュメモリ23と、キャッシュメモリ23のそれぞれに記憶されたキャッシュデータが同一となるよう制御を行うメモリアクセス制御装置24を有する。
【0011】
この構成では、プロセッサコア22の処理すべき命令が無い場合等に、省電力化のためにプロセッサコア22へのクロックの供給が停止される。即ち、クロックが供給されていない状態(電源供給は継続)である非アクティブ状態に移行することができる。他方、プロセッサコア22が非アクティブ状態になった場合も、対応するキャッシュメモリ23はクロック及び電源が供給されるアクティブ状態を維持するため、キャッシュデータの一貫性を保つための処理を行なうことができる。
【0012】
このため、プロセッサコア22が非アクティブ状態に移行した場合、キャッシュメモリ23は通常通り動作しキャッシュの一貫性を保つと共に、プロセッサコア22の消費電力を削減できる。
【先行技術文献】
【特許文献】
【0013】
【特許文献1】特開2005−25726号公報
【発明の概要】
【発明が解決しようとする課題】
【0014】
特許文献1に開示されたマルチプロセッサシステムでは、プロセッサコア22に供給されるクロックを停止してプロセッサコア22を非アクティブ状態とした場合でも、キャッシュメモリ23への電源及びクロックの供給は維持される。このため、キャッシュメモリ23はキャッシュデータの一貫性を保つキャッシュコヒーレンス動作を継続することができるが、キャッシュメモリ23に対しては電源とクロック信号が継続的に供給されるため、十分な省電力化が実現できない。
【課題を解決するための手段】
【0015】
本発明によるマルチプロセッサシステムは、
第1及び第2のプロセッサと、
前記第1及び第2のプロセッサが共有する共有メモリと、
前記第1及び第2のプロセッサのそれぞれに対応して設けられた第1及び第2のキャッシュメモリと、
前記第1及び第2のキャッシュメモリが記憶しているデータの一貫性を管理する一貫性管理回路と、
前記一貫性管理回路から前記第1及び第2のキャッシュメモリに対して、データ更新を要求する要求信号を伝達するための要求信号線と、
前記第1及び第2のキャッシュメモリから前記一貫性管理回路に対して、前記データ更新が完了したことを通知する通知信号を伝達するための通知信号線と、
前記要求信号と前記通知信号とに応じて、前記第1及び第2のキャッシュメモリへのクロック信号及び電源の供給を制御するキャッシュ電力制御回路と、を備えるものである。
【0016】
プロセッサが動作停止状態に移行した場合、キャッシュ電力制御回路は、要求信号と通知信号とに応じて、対応するキャッシュメモリへのクロック信号及び電源の供給を制御する。
【発明の効果】
【0017】
本発明によれば、プロセッサが動作停止状態に移行した場合、キャッシュデータの一貫性を保つ動作を行なうことができると共に、キャッシュメモリの消費電力を削減できる。
【図面の簡単な説明】
【0018】
【図1】実施の形態1に係るマルチプロセッサの構成を示すブロック図である。
【図2】キャッシュラインの構成の一例を示す図である。
【図3】実施の形態1に係るキャッシュメモリの電源構成の一例を示す回路図である。
【図4】実施の形態1に係るキャッシュコヒーレンスを説明するためのブロック図である。
【図5】実施の形態1に係るキャッシュ電力制御回路の動作を説明するためのタイミングチャートである。
【図6】実施の形態1に係る一貫性管理動作時のキャッシュ電力制御回路の動作を説明するためのタイミングチャートである。
【図7】実施の形態2のキャッシュメモリの電源構成の一例を示す回路図である。
【図8】一般的なマルチプロセッサシステムの構成を示すブロック図である。
【図9】特許文献1のマルチプロセッサシステムの構成を示すブロック図である。
【発明を実施するための形態】
【0019】
以下、本発明を適用した具体的な実施の形態について、図面を参照しながら詳細に説明する。ただし、本発明が以下の実施の形態に限定される訳ではない。また、説明を明確にするため、以下の記載及び図面は、適宜、簡略化されている。
【0020】
(第1の実施の形態)
以下、図面を参照して、本発明に係る実施の形態を説明する。図1は、本発明の第1の実施の形態に係るマルチプロセッサの構成を示すブロック図である。図1ではプロセッサの数が2つの場合を説明するが、プロセッサの数は3つ以上であってもよい。
【0021】
図1のマルチプロセッサシステムは、2つのプロセッサ101、111と、プロセッサ101、111にそれぞれ対応して設けられたキャッシュメモリ102、112と、一貫性管理回路120と、キャッシュ電力制御回路103、113、一貫性管理バス122a、122bとを備える。また、共有メモリ123、モード設定レジスタ105、115、クロック制御回路104、114、システムバス121は、本実施の形態に係るマルチプロセッサシステムにおける周辺回路である。
【0022】
プロセッサ101、111は、処理すべき命令がない場合等に消費電力を抑えるためにクロック信号及び電源の供給を停止する動作停止状態に移行する省電力機能を備える。尚、当該マルチプロセッサシステムは、省電力機能を有しない別のプロセッサをさらに有していてもよい。
【0023】
プロセッサ101が動作停止状態に移行する場合、プロセッサ101はモード設定レジスタ105に対して動作停止状態を示す値を設定する。モード設定レジスタ105からは、設定された値に対応するモード信号CORE_OFF1(このケースではHレベル)が出力される。クロック制御回路104は、モード設定レジスタ105からのHレベルのモード信号CORE_OFF1に基づきクロック信号CLK1(CORE)のプロセッサ101に対する供給を停止する。クロックの供給が停止されたプロセッサ101は動作を停止し、動作停止状態に移行する。この後、さらに、プロセッサ101のリーク電流を抑えるために、キャッシュ電力制御回路103がHレベルのモード信号CORE_OFF1に基づきプロセッサ101の電源供給を制御するための電源制御信号PSW11により、プロセッサ101の電源をオフしてもよい。この場合、プロセッサ101はリテンションフリップフロップ(不図示)等を使って内部レジスタの状態を保持した状態で電源をオフするのが望ましい。
【0024】
同様に、プロセッサ111が動作停止状態に移行する場合、プロセッサ111はモード設定レジスタ115に対して動作停止状態を示す値を設定する。モード設定レジスタ115からは、設定された値に対応するモード信号CORE_OFF2(このケースではHレベル)が出力される。クロック制御回路114は、モード設定レジスタ115からのHレベルのモード信号CORE_OFF2に基づきクロック信号CLK2(CORE)のプロセッサ111に対する供給を停止する。クロックの供給が停止されたプロセッサ111は動作を停止し、動作停止状態に移行する。この後、さらに、プロセッサ111のリーク電流を抑えるために、キャッシュ電力制御回路113がHレベルのモード信号CORE_OFF2に基づきプロセッサ111の電源供給を制御するための電源制御信号PSW21により、プロセッサ111の電源をオフしてもよい。この場合、プロセッサ111はリテンションフリップフロップ(不図示)等を使って内部レジスタの状態を保持した状態で電源をオフするのが望ましい。
【0025】
キャッシュメモリ102は共有メモリ123よりも高速にデータの読み書きが可能な記憶装置である。プロセッサ101が共有メモリ123に対してデータの読み書きを行なった場合、そのデータを一時的に記憶する。プロセッサ101が共有メモリ123上のデータを読み出す場合、キャッシュメモリ102上に該当する有効なキャッシュデータがあるかどうかを確認し、有効なキャッシュデータがある場合には、プロセッサ101は低速の共有メモリ123からではなく、高速のキャッシュメモリ102からデータを読み出すことにより、システムを高速化する。キャッシュメモリ112もキャッシュメモリ102と同様の構成を有する。
【0026】
キャッシュメモリ102は、キャッシュデータをキャッシュラインと呼ばれる所定の単位毎に管理し、各々のキャッシュラインは、データ領域とタグ領域を有する。図2は、データ領域のサイズが32バイト、完全連想マッピング(fully associative mapping)方式の場合のキャッシュラインの構成例を示す図である。データ領域には、共有メモリ123上のデータのコピーであるキャッシュデータを格納する。タグ領域はキャッシュデータの共有メモリ123上の格納位置を示すアドレス情報の一部とキャッシュラインの状態を示す状態ビットを含む制御情報を格納する。
【0027】
キャッシュデータは、前述したキャッシュラインのサイズ毎に管理されるため、タグ領域にアドレス情報の全てのビットを記憶する必要はない。図2の例ではキャッシュラインのサイズが32バイトであるため、下位5ビットを除くアドレスの上位ビットがタグ領域に格納される。例えば、アドレスバスが32ビット幅の場合、アドレスの上位27ビットが記憶される。尚、上記キャッシュラインの構成はあくまでも一例であり、他の構成であってもよい。
【0028】
タグ領域に格納される状態ビットは、各々のキャッシュラインの状態を示す。キャッシュコヒーレンスプロトコルは多数の方式が提案されているが、ここではMESIプロトコルの例について説明する。この場合、4つの状態が存在するため、少なくとも2ビットの状態ビットが必要となる。
【0029】
MESIプロトコルでは、図2に示すように、キャッシュラインは以下の4つの状態のいずれかとる。1つ目の状態であるModified(変更)は、最新のデータが当該キャッシュラインのみに存在し、共有メモリ123の値から変更されている状態(dirty)を示す。2つ目の状態であるExclusive(排他)は、最新のデータが当該キャッシュラインのみに存在し、その値が共有メモリ123の値と一致している状態(clean)を示す。
3つ目の状態であるShared(共有)は、システム内の他のキャッシュメモリにも同じデータが存在し、その値が共有メモリ123とも一致している状態を示す。
4つ目の状態であるInvalid(無効)は、該当するキャッシュラインのデータが無効である状態を示す。
【0030】
ここで、図3に本実施の形態に係るキャッシュメモリ102の電源構成の例を示す。キャッシュメモリ102は、揮発性メモリ131(例えばSRAM)、キャッシュメモリの動作を制御するキャッシュ制御回路135を備える。揮発性メモリ131はさらに、書き込まれたデータを記憶して保持する揮発性記憶素子132、その制御(アドレスのデコード等)を行なうメモリ制御回路133を備える。ここで、メモリ制御回路133とキャッシュ制御回路135とは並列接続され、キャッシュメモリ制御回路134を構成している。このキャッシュメモリ制御回路134の電源ラインに、電源制御信号PSW12により制御される電源スイッチ136が設けられている。キャッシュメモリ102は、後述するキャッシュ電力制御回路103が出力する電源制御信号PSW12の信号レベルに応じて通常のキャッシュメモリとして動作する通常状態と、記憶保持のみを行なう省電力状態とを切り替えることができる。
【0031】
図1に戻り、キャッシュ電力制御回路103は、キャッシュメモリ102に入力されるべきクロック信号及び電源の供給とプロセッサ101の電源の供給を行うかどうかを制御する。キャッシュ電力制御回路103はモード信号CORE_OFF1を監視する。そして、プロセッサ101に入力されるクロックが停止されプロセッサ101が動作停止状態に移行したと判断すると、対応するキャッシュメモリ102に対するクロック信号CLK1(CACHE)の供給を停止する。また、キャッシュメモリ102への電源供給を制御する電源制御信号PSW12により、キャッシュメモリ102への電源供給を停止する。さらに、上述の通り、プロセッサ101への電源供給を制御するための電源制御信号PSW11により、プロセッサ101への電源供給を停止してもよい。
【0032】
同様に、キャッシュ電力制御回路113は、キャッシュメモリ112に入力されるべきクロック信号及び電源の供給とプロセッサ111の電源の供給を行うかどうかを制御する。キャッシュ電力制御回路113はモード信号CORE_OFF2を監視する。そして、プロセッサ111に入力されるクロックが停止されプロセッサ111が動作停止状態に移行したと判断すると、対応するキャッシュメモリ112に対するクロック信号CLK2(CACHE)の供給を停止する。また、キャッシュメモリ112への電源供給を制御する電源制御信号PSW22により、キャッシュメモリ112への電源供給を停止する。さらに、上述の通り、プロセッサ111への電源供給を制御するための電源制御信号PSW21により、プロセッサ111への電源供給を停止してもよい。
【0033】
また、プロセッサ101が動作停止状態に移行し、さらに対応するキャッシュメモリ102もクロック及び電源供給が停止された省電力状態にある場合、キャッシュ電力制御回路103は、SCOPバス信号とSCCOREREADY信号とを監視する。そして、SCOPバス信号とSCCOREREADY信号の状態に応じて、キャッシュメモリ102に対するクロックと電源の供給と停止を制御する。SCOPバス信号とSCCOREREADY信号の詳細については後述する。
【0034】
同様に、プロセッサ111が動作停止状態に移行し、さらに対応するキャッシュメモリ112もクロック及び電源供給が停止された省電力状態にある場合、キャッシュ電力制御回路113は、SCOPバス信号とSCCOREREADY信号とを監視する。そして、SCOPバス信号とSCCOREREADY信号の状態に応じて、キャッシュメモリ112に対するクロックと電源の供給と停止を制御する。
【0035】
次に、クロック制御回路104はモード信号CORE_OFF1の設定により、プロセッサ101へのクロック供給を制御する。例えば、モード信号CORE_OFF1がLレベル時、入力されたクロック信号CLK1(CORE)をプロセッサ101に供給し、モード信号CORE_OFF1がHレベルの時、クロック信号CLK1(CORE)のプロセッサ101への供給を停止する。
【0036】
モード設定レジスタ105は、プロセッサの動作モードを設定するレジスタであって、設定された値に応じてHレベル又はLレベルのモード信号CORE_OFF1を出力する。さらに、モード設定レジスタ105は接続されたプロセッサ101からだけでなく、外部信号INT1によってハードウェア的に制御可能であり、その制御によりモード信号CORE_OFF1をHレベル又はLレベルとして出力する。
【0037】
尚、プロセッサ111のクロック制御回路114及びモード設定レジスタ115は、プロセッサ101のクロック制御回路104及びモード設定レジスタ105と同様の構成を有する。
【0038】
次に、一貫性管理回路120はキャッシュメモリ102、112が記憶しているキャッシュデータの一貫性を保つよう制御を行なう回路である。一貫性管理回路120は、システムバス121を介してキャッシュメモリ102、112、共有メモリ123に接続され、またキャッシュメモリ102、112を介してプロセッサ101、111に接続されている。さらに、システムバス121とは別に設けられ、キャッシュメモリ102、112が記憶しているキャッシュデータを同一に保つために必要なデータと制御信号の受け渡しを行なうための一貫性管理バス122a、122bを介してキャッシュメモリ102、112に接続されている。
【0039】
一貫性管理回路120は、キャッシュデータの一貫性を制御する対象となるキャッシュメモリ102、112に記憶されているキャッシュラインのタグ領域と同一内容の情報を格納するタグメモリ(不図示)を有する。このため、一貫性管理回路120はタグメモリを参照することによって、キャッシュメモリ102、112のキャッシュラインの状態を確認することができる。
【0040】
一貫性管理回路120は、システムバス121と一貫性管理バス122a、122bを監視すると共に、自己が保有するタグメモリを参照する。ここで、一貫性管理回路120は、キャッシュメモリ102、112に対してキャッシュデータの一貫性を制御する必要があると判断すると、一貫性管理バス122a、122bを介して一貫性コマンドを発行する。
【0041】
一貫性コマンドについては、特許文献1において以下の4つの一貫性コマンドが定義されている。
1つ目は、キャッシュラインの状態の変更を要求するFORCEコマンド。
2つ目は、キャッシュラインの状態の変更と、クリーニングを要求するCLEANコマンド。
3つ目は、キャッシュラインの状態の変更と、コピーを要求するCOPYコマンド。
4つめは、何も操作を行なわないノーオペレーションを示すNOPコマンド。
ここでは、上記の定義に従って説明を行なう。
【0042】
一貫性管理バス122a、122bは、前述した一貫性コマンドの受け渡しに必要な信号線であり、キャッシュメモリ毎に設けられている。また、一貫性管理バス122a、122bは、一貫性管理回路120が所要の一貫性コマンド(データ更新を要求する要求信号)をキャッシュメモリ102、112に知らせるためのSCOP(SCOP1、SCOP2)バス(要求信号線)を備えている。さらに、一貫性管理バス122a、122bは、キャッシュメモリ102、112が一貫性コマンドを処理するための準備ができていることと、一貫性コマンドによる処理が完了したことを一貫性管理回路120に知らせるためのSCCOREREADY信号(SCCOREREADY1、SCCOREREADY2)用バス(通知信号線)を備えている。
【0043】
SCOP1バス、SCOP2バスは一貫性コマンドの開始を一貫性管理回路120からキャッシュメモリ102、112に知らせる2ビットの信号線である。信号の値によって、例えば「00」はNOPコマンド、「01」はFORCEコマンド、「10」はCOPYコマンド、「11」はCLEANコマンドを表す。
【0044】
この場合、キャッシュ電力制御回路103、113は、それぞれSCOPバスの2ビットの信号線を監視することによって、いずれかの信号レベルがHレベルとなった場合に、一貫性管理回路120からキャッシュメモリ102、112に一貫性コマンドが発行されたと判断することができる。
【0045】
また、SCCOREREADY信号は、キャッシュメモリ102、112から一貫性管理回路120に対して、キャッシュの状態を通知する。例えば、Lレベルにより、キャッシュが一貫性に係る動作を行なう準備ができたことを通知する。他方、Hレベルにより、キャッシュの一貫性に係る動作が完了したことを通知する。
【0046】
従って、一貫性管理回路120がSCOPバスで一貫性コマンドの開始を例えばキャッシュメモリ102に通知した場合、一貫性管理回路120は、キャッシュメモリ102からのSCCOREREADY1信号がLレベルに設定されるのを待ってから処理に必要なデータを送信すれば、省電力状態から復帰中でまだ動作の準備が整っていないキャッシュメモリ102に対して誤ってデータを送信してしまうことを防止できる。
【0047】
共有メモリ123は、少なくともその一部をプロセッサ101、111で共有されるメモリ回路で、その構成は複数のブロックの組合せであっても、単独のブロックであっても、またレベル2キャッシュを含む構成であってもよく、システムの要求に応じて構成される。
【0048】
次に、一貫性管理回路120に係る動作について、図4を参照して説明する。
プロセッサ101は動作停止状態であり、キャッシュメモリ102はクロック及び電源が停止された省電力状態、プロセッサ111、キャッシュメモリ112は通常通りクロックと電源が供給され、処理を行なっているものとする。
【0049】
ここで、一貫性管理回路120はキャッシュメモリ102のタグ領域と同じ情報を記憶するタグメモリ151と、キャッシュメモリ112のタグ領域と同じ情報を記憶するタグメモリ152を有する。
【0050】
このとき、プロセッサ101は動作停止状態にあるため、プロセッサ101からは共有メモリ123への読み出し、書き込み等の要求は発生しない。そのため、一貫性管理回路120は、システムバス121及び一貫性管理バス122a、122b上の信号を監視し、プロセッサ111のメモリアクセスに応じた動作を行なう。
【0051】
以下に、この状態で一貫性管理回路120から省電力状態にあるキャッシュメモリ102に対して一貫性コマンドが発行される場合の動作について説明する。図4を参照して、プロセッサ111が共有メモリ123上のデータを読み出す場合、プロセッサ111は、キャッシュメモリ112、システムバス121を介して共有メモリ123上の所定のアドレスに対して読み出し要求を行なう。
【0052】
一貫性管理回路120はシステムバス121を監視し、プロセッサ111の読み出し要求を検出すると読み出し先のアドレスと自己が保有するタグメモリ151、152上のアドレス上位ビット情報と状態ビットを参照し、タグメモリ151、152上に読み出しを要求されたデータが有るか否かとキャッシュラインの状態とを確認する。
【0053】
ここで、プロセッサ111が読み出しを要求したアドレスが、タグメモリ151上存在し、その状態がExclusive(排他)の場合には、キャッシュメモリ102と共有メモリ123上に最新のデータが存在し、キャッシュメモリ112上には最新データが存在しないことを示す。
【0054】
プロセッサ111はキャッシュメモリ112上に有効なキャッシュデータが無いため、共有メモリ123から該当するアドレスのデータを読み出し、キャッシュメモリ112は読み出されたデータのコピーをキャッシュラインに保存する。
【0055】
このとき、読み出されたアドレスの最新データは、共有メモリ123、キャッシュメモリ102、112上に共に存在するので、キャッシュメモリ102、112、及びタグメモリ151、152上のキャッシュラインの状態ビットはShared(共有)に設定される必要がある。
【0056】
このとき、一貫性管理回路120から省電力状態にあるキャッシュメモリ102に対して、キャッシュメモリ102上のキャッシュラインの状態をExclusive(排他)からShared(共有)に変更を要求するために、一貫性管理コマンドの一つであるFORCEコマンドが発行される。
【0057】
FORCEコマンドを受けたキャッシュメモリ102は、該当するキャッシュラインの状態ビットをShared(共有)に更新する。
【0058】
また、プロセッサ111が共有メモリ123上の所定のアドレスに対して読み出し要求を行なったデータが、タグメモリ151上にModified(変更)の状態で存在する場合には、キャッシュメモリ102上に最新のデータが存在し、共有メモリ123とキャッシュメモリ112上には最新データが存在しない状態を示す。
【0059】
このとき、一貫性管理回路120から、タグメモリ151に対応し、省電力状態にあるキャッシュメモリ102に対して、当該アドレスを含むキャッシュラインのデータを共有メモリ123に反映させるために、CLEANコマンドが発行される。CLEANコマンドを受けたキャッシュメモリ102は、該当するキャッシュラインのデータを共有メモリ123に書き込む。
【0060】
その後、プロセッサ111は、共有メモリ123から該当するアドレスのデータを読み出し、キャッシュメモリ112は読み出されたデータのコピーをキャッシュラインに保存する。このとき、キャッシュメモリ102、112、及びタグメモリ151、152上のキャッシュラインは共に最新のデータを共有する。
【0061】
このとき、再び一貫性管理回路120から省電力状態にあるキャッシュメモリ102に対して、キャッシュメモリ102上のキャッシュラインの状態をExclusive(排他)からShared(共有)に変更を要求するために、一貫性管理コマンドの一つであるFORCEコマンドが発行され、コマンドを受けたキャッシュメモリ102は、該当するキャッシュラインの状態ビットをShared(共有)に更新する。
【0062】
一方、プロセッサ111が共有メモリ123上のデータへの書き込みを要求する場合には、プロセッサ111はシステムバス121を介して共有メモリ123上の所定のアドレスに対して書き込み要求を行なう。一貫性管理回路120は、システムバス121を監視し、プロセッサ111の書込み要求を検出すると書き込み先のアドレスと自己が保有するタグメモリ151、152上のアドレス上位ビット情報と状態ビットを参照し、タグメモリ151、152上に書き込み要求されたデータが有るか否かとキャッシュラインの状態を確認する。
【0063】
このとき、プロセッサ111が書き込みを要求したアドレスのデータが、タグメモリ151上に存在し、その状態がShare(共有)である場合には、キャッシュメモリ102、112と共有メモリ123でデータを共有している状態であることを示す。
【0064】
プロセッサ111の書込み要求を行なった所定のアドレスのデータが、共有メモリ123及びキャッシュメモリ112に書き込まれた後は、タグメモリ151に対応するキャッシュメモリ102上のデータが不一致となるので、一貫性管理回路120から省電力状態にあるキャッシュメモリ102に対して、キャッシュメモリ102上のキャッシュラインの状態をInvalid(無効)状態に変更を要求するために、一貫性管理コマンドの一つであるFORCEコマンドが発行される。FORCEコマンドを受けたキャッシュメモリ102は、該当するキャッシュラインの状態ビットをInvalid(無効)に更新する。
【0065】
以上、動作停止状態にあるプロセッサ101に対応し、省電力状態にあるキャッシュメモリ102に対して、一貫性管理回路120から一貫性管理コマンドの発行が想定される場合について例を示した。しかし、上記制御手順はあくまでも一例であり、他の制御手順によってキャッシュデータの不一致を回避しても良い。
【0066】
続いて、図1、2及び図5を参照して、キャッシュ電力制御回路103の動作について説明する。図5は省電力動作時のクロック信号及び電源の動作を説明するための図である。尚、図5はクロック及び電源の供給動作を説明するための模式的なタイミングチャートであり、図示したクロック波形は、各動作に必要なクロックサイクルを示すものではない。
【0067】
まず、プロセッサ101が要求された処理を行なっている状態である通常動作時(T70より前の時点)について説明する。クロック信号CLK1(CORE)がプロセッサ101に、CLK1(CACHE)がキャッシュメモリ102に供給されている。また、キャッシュメモリ102の電源制御を行なう電源制御信号PSW12はHレベルに設定され、キャッシュメモリ102への電源が供給されている。
【0068】
次に、図5のT70においてプロセッサ101が、例えば実行すべき命令がないために動作停止状態に入る場合について説明する。プロセッサ101は、図1のモード設定レジスタ105に、モード信号CORE_OFF1がHレベルのとなるようモード設定レジスタ105に設定を行なう。このHレベルのモード信号CORE_OFF1によりプロセッサ101へのクロック信号CLK1(CORE)が停止される。
【0069】
図1の構成では、モード信号CORE_OFF1がさらにキャッシュ電力制御回路103にも入力される。モード信号CORE_OFF1がHレベルになるとキャッシュ電力制御回路103はキャッシュメモリ102に供給されるクロック信号CLK1(CACHE)を停止する(T70)。その後、キャッシュ電力制御回路103は、キャッシュメモリの電源制御を行なう電源制御信号PSW12をLレベルに設定する(T71)。電源制御信号PSW12がLレベルに設定されると、キャッシュメモリ102の電源スイッチ136(図3参照)がOFFされ、キャッシュメモリ制御回路134への電源供給が停止される。
【0070】
従って、本実施の形態では、プロセッサ101が動作停止状態に移行した場合、キャッシュメモリ102へ供給されるクロック信号CLK1(CACHE)と、キャッシュメモリ102へ供給される電源が停止する。そのため、キャッシュメモリ102で消費される電力を削減できる。
【0071】
さらに図5を参照して、省電力状態にあるキャッシュメモリ102に対して一貫性コマンドが発行された場合の動作について説明する。一貫性管理回路120がキャッシュメモリ102に対してT72のタイミングで一貫性コマンド(COPY、CLEAN又はFORCE)を発行すると、SCOPバスのいずれかの信号線がHレベルとなる。キャッシュ電力制御回路103は、SCOPバスの信号線を監視し、Hレベルが出力されると、電源制御信号PSW12をHレベルとし、供給が停止されているキャッシュメモリ102への電源供給を再開する。その後、キャッシュ電力制御回路103は、キャッシュメモリ102へのクロック信号CLK1(CACHE)の供給を再開して(T73)、キャッシュメモリ102を動作可能な状態に制御する。
【0072】
ここで、図6を参照して、キャッシュ電力制御回路103の動作について、さらに詳細に説明する。尚、図6は各部動作を説明するための模式的なタイミングチャートであり、図示したクロック波形は、各動作に必要なクロックサイクルを示すものではない。
【0073】
既に述べた通り、キャッシュ電力制御回路103は、プロセッサ101に入力されるクロックが停止され、また対応するキャッシュメモリ102に入力されるクロックと供給される電源が停止された動作停止状態に移行すると、一貫性管理バス122a上のSCOP1バス信号と、SCCOREREADY1信号とを監視する。キャッシュ電力制御回路103は、一貫性管理回路120から一貫性コマンドが発行されたことを一貫性管理バス122a上で検出すると(T80)、電源制御信号PSW12をHレベルに切り換える。これにより、キャッシュメモリ102への電源供給が再開される(T81)。
【0074】
キャッシュ電力制御回路103は、キャッシュメモリ102への電源電圧が安定するまでの所定期間経過後、キャッシュメモリ102へのクロック信号CLK1(CACHE)の供給を再開する(T82)。この状態でキャッシュメモリ102は動作準備を完了する。そして、動作準備完了を示すLレベルのSCCOREREADY1信号を出力し、一貫性管理回路120に通知する。このLレベルのSCCOREREADY1信号を受けた一貫性管理回路120は、一貫性管理バス122aを介し、処理に必要なデータをキャッシュメモリ102へ送信する。そして、キャッシュメモリ102は要求された処理を行なう(T83−T84)。
【0075】
上記一貫性コマンドに対応したキャッシュラインの更新が完了すると、キャッシュメモリ102は、SCCOREREADY1信号をHレベルに戻す(T85)。これを受けてキャッシュ電力制御回路103は、キャッシュメモリ102に供給されるクロック信号CLK1(CACHE)を停止する。その後、電源制御信号PSW12をLレベルに戻してキャッシュメモリ102の一部への電源供給を停止する(T86)。
【0076】
上記動作により、キャッシュの一貫性を保つための制御を行なう動作中以外のキャッシュメモリ102の消費電力が削減されると共に、上記一貫性コマンドに応じてキャッシュラインの更新を行なうこともできるようになる。尚、キャッシュ電力制御回路103がキャッシュメモリ102へのクロック供給を停止した後、キャッシュメモリ102への電源供給を停止する前に、一貫性コマンドが一貫性管理回路120から発行される場合もありうる。この場合、キャッシュ電力制御回路103はキャッシュメモリ102への電源供給を停止せずに、キャッシュメモリ102へのクロック供給を再開してもよい。
【0077】
次に、キャッシュメモリ102の省電力状態を解除する動作について説明する。プロセッサ101が動作停止状態から処理を行う通常の状態に復帰する場合には、外部からモード設定レジスタ105の外部信号INT1を制御して、モード信号CORE_OFF1をLレベルに設定する。キャッシュ電力制御回路103はモード信号CORE_OFF1がLレベルに設定されると、電源制御信号PSW12をHレベルに設定し、キャッシュメモリ102への電源供給を再開した後、キャッシュメモリ102へのクロック信号CLK1(CACHE)の供給を再開し、キャッシュメモリ102の省電力状態を解除する。
【0078】
以上説明したように、本実施の形態によれば、プロセッサが動作停止状態に移行した場合、キャッシュメモリへのクロック供給と電源供給を停止する。そのため、キャッシュメモリの消費電力を低減できる。また、キャッシュメモリへのクロック供給と電源供給を停止中に、キャッシュデータの一貫性を保つための動作が発生した場合、キャッシュメモリへの電源供給を再開する。そのため、キャッシュデータの一貫性も維持することができる。
【0079】
(第2の実施の形態)
第1の実施の形態では、キャッシュメモリ102が省電力動作をしている場合でも、記憶内容を保持するために揮発性記憶素子132に対して電源供給を継続する必要があった。そのため、揮発性記憶素子132のリーク電流が発生する。
【0080】
そこで、本実施例では図7に示すように、揮発性記憶素子132に代えて不揮発性記憶素子142を使用し、省電力動作時にキャッシュメモリ102全体の電源供給を停止する。不揮発性記憶素子142としては、例えばMRAM(Magnetoresistive Random Access Memory)を挙げることができる。これまで、揮発性記憶素子132に比べ不揮発性記憶素子142は、アクセス時間が長く、システムのパフォーマンスに悪影響を及ぼすレベルであった。しかし、近年実用化されているMRAMのアクセス時間はSRAMと同等程度であり、本発明への適用に好適である。
【0081】
本実施の形態は、キャッシュメモリ102の不揮発性記憶素子142への電源供給が省電力状態に移行する際にオフされる以外は実施の形態1と同様の構成である。本実施の形態によれば、キャッシュラインの更新を行なう動作中以外のキャッシュメモリ102の消費電力をより一層削減できる共に、キャッシュデータの一貫性も保たれる。
【0082】
尚、本発明は上記実施の形態に限られたものではなく、要旨を逸脱しない範囲で適宜変更することが可能である。例えば、上記実施の形態では、キャッシュメモリの省電力制御についてクロック信号と電源の両方についてON/OFFの制御を行なっているが、クロックのON/OFFだけを行なう構成としてもよい。また、上記実施の形態では、プロセッサの省電力制御についてはクロック信号の停止によるものだけを開示しているが、キャッシュメモリと同様に電源ON/OFF制御を行なう構成としてもよい。さらに、上記実施の形態では、キャッシュメモリ毎に1つのキャッシュ電力制御回路を有しているが、1つのキャッシュ電力制御回路に統合してもよい。また、上記実施の形態では、キャッシュラインの構成を完全連想マッピング方式でデータサイズ32バイトの場合を例に上げて説明したが、他のキャッシュラインの構成であってもよい。
【符号の説明】
【0083】
101、111 プロセッサ
102、112 キャッシュメモリ
103、113 キャッシュ電力制御回路
104、114 クロック制御回路
105、115 モード設定レジスタ
120 一貫性管理回路
121 システムバス
122a、122b 一貫性管理バス
123 共有メモリ
131 揮発性メモリ
132 揮発性記憶素子
133 メモリ制御回路
134 キャッシュメモリ制御回路
135 キャッシュ制御回路
136 電源スイッチ
142 不揮発性記憶素子
151、152 タグメモリ

【特許請求の範囲】
【請求項1】
第1及び第2のプロセッサと、
前記第1及び第2のプロセッサが共有する共有メモリと、
前記第1及び第2のプロセッサのそれぞれに対応して設けられた第1及び第2のキャッシュメモリと、
前記第1及び第2のキャッシュメモリが記憶しているデータの一貫性を管理する一貫性管理回路と、
前記一貫性管理回路から前記第1及び第2のキャッシュメモリに対して、データ更新を要求する要求信号を伝達するための要求信号線と、
前記第1及び第2のキャッシュメモリから前記一貫性管理回路に対して、前記データ更新が完了したことを通知する通知信号を伝達するための通知信号線と、
前記要求信号と前記通知信号とに応じて、前記第1及び第2のキャッシュメモリへのクロック信号及び電源の供給を制御するキャッシュ電力制御回路と、を備えるマルチプロセッサシステム。
【請求項2】
前記キャッシュ電力制御回路は、
前記第1のプロセッサが動作停止状態に移行する場合、前記第1のキャッシュメモリへの電源供給の少なくとも一部を停止することを特徴とする請求項1に記載のマルチプロセッサシステム。
【請求項3】
前記キャッシュ電力制御回路は、
前記第1のプロセッサが動作停止状態に移行する場合、前記第1のキャッシュメモリへのクロック信号の供給を停止した後、前記電源供給の少なくとも一部を停止することを特徴とする請求項2に記載のマルチプロセッサシステム。
【請求項4】
前記キャッシュ電力制御回路は、
前記第1のキャッシュメモリへの前記電源供給の少なくとも一部を停止した後、当該第1のキャッシュメモリに対するデータ更新が必要となった場合、当該キャッシュメモリへの電源供給を再開することを特徴とする請求項2又は3に記載のマルチプロセッサシステム。
【請求項5】
前記キャッシュ電力制御回路は、
前記データ更新が完了した後、前記第1のキャッシュメモリへの電源供給を再度停止することを特徴とする請求項4に記載のマルチプロセッサシステム。
【請求項6】
前記第1及び第2のキャッシュメモリは、それぞれ、
揮発性記憶素子と、
前記揮発性記憶素子の制御を行なうキャッシュメモリ制御回路と、
前記キャッシュメモリ制御回路への電源供給を制御する電源スイッチと、を有することを特徴とする請求項1〜5のいずれか一項に記載のマルチプロセッサシステム。
【請求項7】
前記第1及び第2のキャッシュメモリは、それぞれ、
不揮発性記憶素子と、
前記不揮発性記憶素子の制御を行なうキャッシュメモリ制御回路と、
前記不揮発性記憶素子及び前記キャッシュメモリ制御回路への電源供給を制御する電源スイッチと、を有することを特徴とする請求項1〜5のいずれか一項に記載のマルチプロセッサシステム。
【請求項8】
前記不揮発性記憶素子がMRAMで構成されることを特徴とする請求項7に記載のマルチプロセッサシステム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate


【公開番号】特開2011−150653(P2011−150653A)
【公開日】平成23年8月4日(2011.8.4)
【国際特許分類】
【出願番号】特願2010−13373(P2010−13373)
【出願日】平成22年1月25日(2010.1.25)
【出願人】(302062931)ルネサスエレクトロニクス株式会社 (8,021)
【Fターム(参考)】