(57)【特許請求の範囲】
【請求項１】
外部メモリに接続されたプロセッサシステムであって、
メインプロセッサと、
内部メモリ及び通信インタフェースを備えた通信プロセッサと、
前記メインプロセッサ及び前記通信プロセッサが共通にアクセス可能な、前記外部メモリの使用の可否を制御するメモリ制御手段と、
を備え、
前記メモリ制御手段は、
前記メインプロセッサと前記通信プロセッサとのいずれからもアクセスがない場合は省電力状態をとり、
前記通信プロセッサの通信インタフェースを用いる処理が前記内部メモリの使用だけでは実行できない場合に、起動状態となり、前記通信プロセッサによる前記外部メモリの使用を可能にする
ことを特徴とするプロセッサシステム。
【請求項２】
前記メモリ制御手段に設定すべき動作モードを示す設定情報を保持する保持手段をさらに備え、
前記メモリ制御手段の動作モードは前記保持手段が保持する情報を介して制御される
ことを特徴とする請求項１に記載のプロセッサシステム。
【請求項３】
前記保持手段は、前記メインプロセッサからの前記メモリ制御手段へのアクセスの有無を示す情報と、前記通信プロセッサからの前記メモリ制御手段へのアクセスの有無を示す情報と、をさらに保持し、
前記設定情報は、前記メインプロセッサと前記通信プロセッサとの少なくともいずれかから前記メモリ制御手段へアクセスがある場合に、起動状態とするための情報が設定される
ことを特徴とする請求項２に記載のプロセッサシステム。
【請求項４】
前記メインプロセッサは専用メモリを備え、
前記メモリ制御手段は、前記メインプロセッサの処理が前記専用メモリの使用だけでは実行できない場合に、起動状態となり、前記メインプロセッサによる前記外部メモリの使用を可能にする
ことを特徴とする請求項１から３のいずれか１項に記載のプロセッサシステム。
【請求項５】
前記メモリ制御手段は、前記メインプロセッサによる前記外部メモリの使用が完了したことに応じて、前記通信プロセッサからのアクセスの有無にかかわらず省電力状態へ移行することを特徴とする請求項１から４のいずれか１項に記載のプロセッサシステム。
【請求項６】
前記通信インタフェースからの情報に基づいて、前記メモリ制御手段の動作モードが変更されることを特徴とする請求項１に記載のプロセッサシステム。
【請求項７】
外部メモリに接続されたプロセッサシステムの制御方法であって、
前記プロセッサシステムは、
メインプロセッサと、
内部メモリ及び通信インタフェースを備えた通信プロセッサと、
前記メインプロセッサ及び前記通信プロセッサが共通にアクセス可能な、前記外部メモリの使用の可否を制御するメモリ制御手段と、
を備え、
前記メモリ制御手段は、
前記メインプロセッサと前記通信プロセッサとのいずれからもアクセスがない場合は省電力状態をとり、
前記通信プロセッサの通信インタフェースを用いる処理が前記内部メモリの使用だけでは実行できない場合に、起動状態となり、前記通信プロセッサによる前記外部メモリの使用を可能にする
ことを特徴とするプロセッサシステムの制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はプロセッサシステム及びその制御方法に関し、特に、複数のＣＰＵを具備するプロセッサシステムの電力を制御する技術に関する。
【背景技術】
【０００２】
プロセッサシステムの性能向上のために、複数のＣＰＵを内蔵するマルチＣＰＵ方式が知られている（特許文献１）。
【０００３】
一方、プロセッサシステムにおいて、メモリ制御に関する要求が多様化、複雑化してきていることに伴い、メモリを制御するメモリコントローラの回路規模が増大している（特許文献２）。シングルＣＰＵのプロセッサシステムにおいては、このメモリコントローラの消費電力を抑制するために、メモリコントローラへの供給クロックを制御する構成が知られている（特許文献３）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平６-２３１０８８号公報
【特許文献２】特開平２-２８０２５９号公報
【特許文献３】特開２００３-３０８２４６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、マルチＣＰＵ方式のプロセッサシステムにおいては、あるＣＰＵがメモリコントローラを使用していないが、その他のＣＰＵがメモリコントローラを使用しているという場合がある。このため、従来の消費電力抑制手法を、そのままマルチＣＰＵ方式のプロセッサシステムに適用すると、一方のＣＰＵのみの制御によってメモリコントローラへの供給クロックが制御される。従って、もう一方のＣＰＵがメモリコントローラを使用したい場合に、これを使用できない状況が発生する場合があった。
【０００６】
そこで、本発明は、マルチＣＰＵのプロセッサシステムにおいても適用可能な、メモリコントローラの消費電力を抑制する技術を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記目的を達成するため、本発明によれば、
外部メモリに接続されたプロセッサシステムであって、
メインプロセッサと、
内部メモリ及び通信インタフェースを備えた通信プロセッサと、
前記メインプロセッサ及び前記通信プロセッサが共通にアクセス可能な、前記外部メモリの使用の可否を制御するメモリ制御手段と、
を備え、
前記メモリ制御手段は、
前記メインプロセッサと前記通信プロセッサとのいずれからもアクセスがない場合は省電力状態をとり、
前記通信プロセッサの通信インタフェースを用いる処理が前記内部メモリの使用だけでは実行できない場合に、起動状態となり、前記通信プロセッサによる前記外部メモリの使用を可能にする
ことを特徴とするプロセッサシステムが提供される。
【発明の効果】
【０００８】
本発明によれば、マルチＣＰＵのプロセッサシステムにおいても適用可能な、メモリコントローラの消費電力を抑制する技術を提供することができる。
【図面の簡単な説明】
【０００９】
【図１】プロセッサシステムを含むハードウェア構成例を示す図。
【図２】ハードウェアシステムのメモリマップ例を示す図。
【図３】通信プロセッサの動作を説明するフローチャート。
【図４】メインプロセッサの動作を説明するフローチャート。
【図５】メモリコントローラのクロック入力回路を示す図。
【図６】メモリコントローラの動作状態を示す図。
【図７】メインプロセッサの動作を説明するフローチャート。
【発明を実施するための形態】
【００１０】
＜＜第１実施形態＞＞
（プロセッサシステム）
本発明の第１実施形態に係るプロセッサシステムを含むハードウェア構成を、図１を参照して説明する。図１中の１は、本実施形態に係るプロセッサシステムである。２は、通信Ｉ／Ｆ（通信インタフェース）である。通信Ｉ/Ｆ２は、ＵＳＢ等のバス通信、有線ネットワーク、無線ネットワーク等のネットワーク通信を行うためのインターフェースである。３は外部メモリである。図１のように、プロセッサシステム１は、通信Ｉ／Ｆ２及び外部メモリ３に接続されている。
【００１１】
図１中の１１は、通信Ｉ／Ｆに関する情報を処理するための通信プロセッサである。１２は、プロセッサシステム１の処理の中心を担うメインプロセッサ（汎用プロセッサ）である。１３は、通信プロセッサ１１とメインプロセッサ１２との間で情報を共有するための共有レジスタである。１４は、外部メモリを制御するためのメモリコントローラである。メモリコントローラ１４は、メインプロセッサ１２及び通信プロセッサ１１が共通にアクセス可能であり、外部メモリ３の使用の可否を制御するメモリ制御を行う。１５は、プロセッサシステム１において、通信プロセッサ１１、メインプロセッサ１２、共有レジスタ１３、及びメモリコントローラ１４を接続するためのバスである。１６は、プロセッサシステム１の中の各ブロックからのバス使用要求に応じて、バスの使用権をどちらに与えるかを決定するバスアービタである。
【００１２】
図１中の１１１は、通信プロセッサ１１において計算処理をおこなう通信ＣＰＵ(Central Processing Unit)である。１１２は、通信ＣＰＵ１１１から外部メモリ３へのアクセスに伴う計算処理遅延を短縮するための、内部メモリとしての通信ＣＰＵ用キャッシュメモリである。１１３は、通信Ｉ／Ｆを制御するための通信Ｉ／Ｆコントローラである。
【００１３】
なお、本発明の目的は、コンピュータプログラムやコンピュータプログラムを格納したコンピュータ読み取り可能な記録媒体によっても実現可能である。
【００１４】
（メモリマップ）
図２（ａ）は、第１実施形態におけるハードウェアシステムのメモリマップである。００００００００番地以上１０００００００番地未満は、外部メモリ３用に割り当てられた空間である。１０００００００番地以上１０００１０００番地未満は、共有レジスタ１３用に割り当てられた空間である。この内、１０００００１０番地はメモリコントローラ管理／制御用フィールドである。
【００１５】
図２（ｂ）は、第１実施形態に係るメモリコントローラ管理／制御用フィールドの各ビット割り当てを示す図である。ビット０（３０１）は、メインプロセッサ１２からメモリコントローラにアクセス中か否かを表す。ビット１（３０２）は、通信プロセッサ１１からメモリコントローラにアクセス中か否かを表す。ビット０（３０１）及びビット１（３０２）は、メモリコントローラにアクセス中の場合に値１が設定され、アクセス中でない場合に値０が設定される。
【００１６】
ビット２（３０３）は、メモリコントローラ１４の状態（メモリコントローラ設定）を表す。図５を参照して後述するように、「メモリコントローラ設定」ビット３０３に値１が設定されているときはメモリコントローラ１４は起動状態となり、値０が設定されているときは省電力状態となる。メインプロセッサ１２と通信プロセッサ１１との少なくともいずれかがメモリコントローラ１４にアクセスするときは、「メモリコントローラ設定」ビット３０３に値１が設定される。なお、ビット３からビット１５（３０４）は、未使用領域である。このように、共有レジスタ１３においては、少なくとも以下の情報が保持される。
・メモリコントローラ１４に設定すべき動作モードを示す設定情報（３０３）。
・メインプロセッサ１２からのメモリコントローラ１４へのアクセスの有無を示す情報（３０１）。
・通信プロセッサ１１からのメモリコントローラ１４へのアクセスの有無を示す情報（３０２）。
【００１７】
（プロセッサシステムの処理）
第１実施形態に係るプロセッサシステムは、以下のように動作する。通信Ｉ／Ｆ２を介して外部から通信プロセッサ１１へデータが届くと、これに接続した通信Ｉ／Ｆコントローラ１１３から通信ＣＰＵ１１１に対して処理依頼が送られる。このような場合の通信プロセッサ１１とメインプロセッサ１２の処理を以下に説明する。
【００１８】
●通信プロセッサ１１の処理
通信プロセッサ１１は図３のように動作する。最初に、ステップＳ４０１で、この処理が、外部メモリ３を使わずに、通信ＣＰＵ用キャッシュメモリ１１２だけで処理可能かどうかを判定する。もし処理可能（ステップＳ４０１でＹＥＳ）であれば、キャッシュメモリ１１２を用いて処理を実行（Ｓ４０２）し、終了する。
【００１９】
もし処理可能でない場合（ステップＳ４０１でＮＯ）は、メモリコントローラ１４の制御を介して外部メモリ３を使用するために、以下の処理を行う。まず、共有レジスタ１３にアクセスするために、バスアービタ１６に対してバス使用要求を出し（Ｓ４０３）、バスアービタ１６からアクセス使用許可を得るまで待機する（Ｓ４０４）。
【００２０】
バスアービタ１６からバスアクセス許可を得ると（Ｓ４０４でＹＥＳ）、Ｓ４０５へ進む。Ｓ４０５では、メモリマップ中の共有レジスタ１３に割り当てられた領域内の、メモリコントローラ管理／制御フィールドである、１０００１０１０番地の「通信プロセッサからアクセス中」ビット（３０２）を１に設定する（Ｓ４０５）。
【００２１】
次に、同１０００１０１０番地の、「メインプロセッサからアクセス中」ビット（３０１）が０かどうかを確認（Ｓ４０６）する。「メインプロセッサからアクセス中」ビット（３０１）が０の場合（Ｓ４０６でＹＥＳ）は、メインプロセッサ１２がメモリコントローラ１４にアクセスしていない状態に該当する。すなわち、メモリコントローラ１４は省電力状態にあるため、アクセス可能な起動状態に切り替える必要がある。このため、今からメモリコントローラ１４にアクセスするために、同１０００１０１０番地の、「メモリコントローラ設定」ビット３０３を１に設定する（Ｓ４０７）。そうでなければ（Ｓ４０６でＮＯ）、メインプロセッサ１２がメモリコントローラ１４にアクセスしている状態に該当するので、Ｓ４０７をスキップする。
【００２２】
次に、メモリコントローラ１４にアクセスするために、バスアービタ１６に対してバス使用要求を出し（Ｓ４０８）、バスアービタ１６からアクセス使用許可を得るまで待機する（Ｓ４０９）。バスアービタ１６からバスアクセス許可を得ると（Ｓ４０９でＹＥＳ）、メモリコントローラ１４の制御の下で外部メモリ３に対するメモリアクセスを開始し、処理を実行する（Ｓ４１０）。
【００２３】
この処理が完了（Ｓ４１１）すると、同１０００１０１０番地の、「通信プロセッサからアクセス中」ビット（３０２）を０に設定する（Ｓ４１２）。続いて、同１０００１０１０番地の、「メインプロセッサからアクセス中」ビット（３０１）が０かどうかを確認する（Ｓ４１３）。「メインプロセッサからアクセス中」ビット（３０１）が０の場合（Ｓ４１３でＹＥＳ）は、メインプロセッサ１２もメモリコントローラ１４にアクセスしていない状態に該当するので、メモリコントローラ１４を省電力状態にする必要がある。このため、同１０００１０１０番地の、「メモリコントローラ設定」ビット３０３を０に設定する（Ｓ４１４）。そうでなければ、メインプロセッサ１２がメモリコントローラ１４にアクセスしている状態に該当するので、Ｓ４１４をスキップする。そして、処理を終了する。
【００２４】
●メインプロセッサの処理
一方、メインプロセッサ１２は図４のように動作する。まず、共有レジスタ１３にアクセスするために、バスアービタ１６に対してバス使用要求を出し（Ｓ５０１）、バスアービタ１６からアクセス使用許可を得るまで待機する（Ｓ５０２）。バスアービタ１６からバスアクセス許可を得ると（Ｓ５０２でＹＥＳ）、Ｓ５０３へ進む。
【００２５】
Ｓ５０３では、メモリマップ中の共有レジスタ１３に割り当てられた領域内の、メモリコントローラ管理／制御フィールドである、１０００１０１０番地の「メインプロセッサからアクセス中」ビット（３０１）を１に設定する。
【００２６】
次に、同１０００１０１０番地の、「通信プロセッサからアクセス中」ビット（３０２）が０かどうかを確認する（Ｓ５０４）。０の場合（Ｓ５０４でＹＥＳ）は、通信プロセッサ１１がメモリコントローラ１４にアクセスしておらず、メモリコントローラ１４は省電力状態にあることに該当する。このため、今からメモリコントローラ１４にアクセスできるようにするために、同１０００１０１０番地の、「メモリコントローラ設定」ビット３０３を１に設定する（Ｓ５０５）。そうでなければ（Ｓ５０４でＮＯ）、通信プロセッサ１１がメモリコントローラ１４にアクセスしている状態に該当するので、Ｓ５０５をスキップする。
【００２７】
次に、メモリコントローラ１４にアクセスするために、バスアービタ１６に対してバス使用要求を出し（Ｓ５０６）、バスアービタ１６からアクセス使用許可を得るまで待つ（Ｓ５０７）。バスアービタ１６からバスアクセス許可を得ると、メモリコントローラ１４の制御の下で外部メモリ３へのメモリアクセスを開始し、処理を実行する（Ｓ５０８）。この処理が完了（Ｓ５０９）すると、同１０００１０１０番地の、「メインプロセッサからアクセス中」ビット（３０１）を０に設定する（Ｓ５１０）。
【００２８】
続いて、同１０００１０１０番地の、「通信プロセッサからアクセス中」ビット（３０２）が０かどうかを確認する（Ｓ５１１）。「通信プロセッサからアクセス中」ビット（３０２）が０の場合は、通信プロセッサ１１もメモリコントローラ１４にアクセスしていない状態に該当する。このため、メモリコントローラ１４を省電力状態にするために、同１０００１０１０番地の、「メモリコントローラ設定」ビット３０３を０に設定する（Ｓ５１２）。そうでなければ、通信プロセッサ１１がメモリコントローラ１４にアクセスしている状態に該当するので、Ｓ５１２をスキップする。そして、処理を終了する。
【００２９】
（「メモリコントローラ設定」ビット）
図５に示すように、１０００１０１０番地の、「メモリコントローラ設定」ビット３０３の値及び、プロセッサシステムのクロック信号は、ＡＮＤ回路の入力に接続されている。そして、このＡＮＤ回路の出力は、メモリコントローラのクロック入力に接続されている。このため、同１０００１０１０番地の、「メモリコントローラ設定」ビット３０３が０になると、メモリコントローラのクロック入力が０になる。クロック入力が変化しないため、メモリコントローラは動作せず、省電力状態になる。
【００３０】
通信プロセッサ１１及びメインプロセッサ１２が上記のように動作することで、図６（ａ）のように、メモリコントローラ１４は、少なくともどちらかのプロセッサがアクセスしている間だけＯＮになる。図６は、通信プロセッサ１１又はメインプロセッサ１２からのメモリコントローラ１４へのアクセスの有無と、メモリコントローラ１４の動作状態との関係を示す図である。これによって、メモリコントローラ１４の省電力が達成される。
【００３１】
上記のように、メモリコントローラ１４は、メインプロセッサ１２と通信プロセッサ１１とのいずれからもアクセスがない場合は省電力状態をとる。一方、通信プロセッサ１１の通信Ｉ／Ｆ２を用いる処理が通信ＣＰＵ用キャッシュメモリ１１２の使用だけでは実行できない場合に、起動状態となり、通信プロセッサ１１による外部メモリ３の使用を可能にする。このため、本実施形態によれば、マルチＣＰＵ方式のプロセッサシステムにおいて、各プロセッサが必要としていない期間は、メモリコントローラを省電力状態にすることができ、全体としてメモリコントローラの消費電力を抑制することが可能となる。
【００３２】
また、メモリコントローラ１４の動作モードは共有レジスタ１３が保持する情報を介して制御される。特に、本実施形態では、メインプロセッサ１２と通信プロセッサ１１との少なくともいずれかからメモリコントローラ１４へアクセスがある場合に、起動状態とするための情報（「メインコントローラ設定」ビット”１”）が設定される。このため、本実施形態は容易に実装することが可能である。
【００３３】
＜＜第２実施形態＞＞
第１実施形態では、通信プロセッサ１１とメインプロセッサ１２との少なくともいずれかがメモリコントローラ１４にアクセスしている間は「メモリコントローラ設定」ビットを１に設定して、メモリコントローラ１４を動作させていた。しかし、用途によっては、メインプロセッサ１２による外部メモリ３の使用が完了した時点で、通信プロセッサ１１からのアクセスの有無にかかわらず、メモリコントローラ１４を省電力モードに移行させることが望ましい場合がある。そこで、本発明の第２実施形態では、メインプロセッサ１２からのアクセスの終了に応じて、メモリコントローラ１４を省電力モードに移行させる構成を説明する。
【００３４】
本実施形態に係るプロセッサシステムを含むハードウェアシステムの構成、ハードウェアシステムのメモリマップ、メモリコントローラ管理／制御用フィールドのビット割当て、及び通信プロセッサの動作は、前述の第１実施形態で説明したものと同様である。すなわち、プロセッサシステム１のハードウェア構成は図１で表され、メモリマップ、ビット割り当ては図２（ａ）、図２（ｂ）で表され、通信プロセッサ１１の動作は図３のフローチャートで表される。
【００３５】
第２実施形態に係るプロセッサシステム中、メインプロセッサ１２は、図７のように動作する。図７のＳ８０１〜Ｓ８１０の各ステップの処理は、図４のＳ５０１〜Ｓ５１０と同様であるため、説明を省略する。
【００３６】
本実施形態では、Ｓ８１０の処理を終了すると、「通信プロセッサからアクセス中」ビット３０２の値を確認せずに、Ｓ８１１へ進む。Ｓ８１１では、メモリコントローラ１４を省電力状態にするために、同１０００１０１０番地の、「メモリコントローラ設定」ビット３０３を０に設定する。
【００３７】
図５に示すように、同１０００１０１０番地の、「メモリコントローラ設定」ビット３０３の値及び、プロセッサシステムのクロック信号は、ＡＮＤ回路の入力に接続されている。そして、このＡＮＤ回路の出力は、メモリコントローラのクロック入力に接続されている。このため、同１０００１０１０番地の、「メモリコントローラ設定」ビット３０３が０になると、メモリコントローラのクロック入力が０になる。クロック入力が変化しないため、メモリコントローラは動作せず、省電力状態になる。
【００３８】
通信プロセッサ１１及びメインプロセッサ１２が上記のように動作することで、図６（ｂ）のように、メモリコントローラ１４は、どちらかのプロセッサがアクセスすればＯＮになる。
【００３９】
また、プロセッサシステム１の中心であるメインプロセッサ１２の処理が完了すると、プロセッサシステム１としての処理も終了する。従って、通信プロセッサ１１がメモリコントローラ１４へアクセスしていたとしても、メインプロセッサからメモリコントローラ１４へのアクセスが無くなれば、メモリコントローラ１４はＯＦＦになる。これによって、メモリコントローラ１４の省電力が達成される。
【００４０】
メモリコントローラ１４は、メインプロセッサ１２による外部メモリ３の使用が完了したことに応じて、通信プロセッサ１１からのアクセスの有無にかかわらず省電力状態へ移行する。このため、メインプロセッサ１２の処理を優先的に実行する必要がある用途において、好適に適用することができる。
【００４１】
＜＜その他の実施形態＞＞
上記の構成では、通信プロセッサ１１のみが専用の内部メモリ（通信ＣＰＵ用キャッシュメモリ１１２）を備えていたが、メインプロセッサも専用メモリを備えてもよい。この場合、メモリコントローラ１４は、メインプロセッサ１２の処理が専用メモリの使用だけでは実行できない場合に、起動状態となって、メインプロセッサ１２による外部メモリ３の使用を可能にしてもよい。このような構成によれば、メインプロセッサ１２が外部メモリ３の使用を必要とする場合にだけメモリコントローラ１４を起動状態にすることができ、システム全体の省電力効果を効果的に高めることができる。
【００４２】
また、メモリコントローラ１４の動作モードの変更は、通信インタフェースからの情報に基づいて行ってもよい。例えば、以下のような構成とすることができる。
（構成例１）：内部キャッシュだけでは処理できない事象を、通信Ｉ／Ｆ２（例えば、ＬＡＮ,ＷＬＡＮ,ＵＳＢ）を用いて検出する。この通信Ｉ／Ｆ２において、特定の信号／パケット／プロトコルを検出した場合にメモリコントローラ１４をＯＮにする。
（構成例２）：内部キャッシュだけでは処理できない事象を、バスアービタ１６やバスアドレスデコーダ（不図示）等のハードウェアにて検出する。検出結果は、メモリコントローラ１４のクロック供給部に直接接続（クロックゲーティング）し、かつ、共有レジスタ１３も設定する。
（構成例３）：内部キャッシュだけでは処理できない事象を、ソフトウェアにて検出する。すなわち、メモリコントローラ１４をＯＦＦする前に、当該プロセッサの内部キャッシュに特定のプログラム（キャッシュされたコードの中から外れて外部メモリ３にアクセスしに行く直前に、共有レジスタ１３を設定する）をロードしておく。
【００４３】
なお、上記の構成は、通信プロセッサとメインプロセッサとの組み合わせだけでなく、複数のプロセッサを備えた構成ならばどのような構成にも適用することができる。すなわち、外部メモリに接続されたプロセッサシステムであって、第１及び第２のプロセッサと、第１及び第２のプロセッサが共通に使用可能な、外部メモリへのアクセスを制御するメモリコントローラとを備えたプロセッサシステムにも適用できる。この場合、メモリコントローラは、第１及び第２のプロセッサの少なくともいずれかによるアクセスがあるときのみ起動状態をとり、それ以外は省電力状態をとることで、マルチプロセッサシステムにおける省電力化を効果的に実現することが可能である。
【図１】
0005390967.tif 000002
【図２】
0005390967.tif 000003
【図３】
0005390967.tif 000004
【図４】
0005390967.tif 000005
【図５】
0005390967.tif 000006
【図６】
0005390967.tif 000007
【図７】
0005390967.tif 000008