(57)【特許請求の範囲】
【請求項１】
複数のマスタと、
前記複数のマスタによってアクセスされ、クラスタに分割された共有メモリと、
前記複数のクラスタの少なくとも１つを含む複数のクラスタ空間を、全マスタで共有する空間、特定の複数のマスタ間で共有する空間、及び単体のマスタで占有する空間のいずれかで構成し、当該クラスタ空間に前記マスタからのアクセスを割り当てる割当部と、
前記マスタの属性情報に従って、前記クラスタ空間の構成を変更する変更部と、を備え、
前記属性情報は、前記マスタのアクセス信号に付加され、マスタ識別属性、リード／ライト属性、アドレス属性、データ／命令属性、セキュア属性、キャッシュ／非キャッシュ属性及び転送属性の少なくとも１つを含むことを特徴とする共有メモリシステム。
【請求項２】
請求項１に記載の共有メモリシステムであって、
前記マスタは、中央演算処理装置、デジタルシグナルプロセッサ、汎用グラフィックス処理装置又はハードウェアアクセラレータであることを特徴とする共有メモリシステム。
【請求項３】
請求項１に記載の共有メモリシステムであって、
前記共有メモリはキャッシュメモリであり、
前記クラスタ空間にミスヒットが発生した場合、リフィル動作中、当該クラスタ空間にアクセスが割り当てられたマスタの動作クロック周波数を下げるもしくは当該動作クロックを停止させるクロック制御部を備えたことを特徴とする共有メモリシステム。
【請求項４】
請求項１に記載の共有メモリシステムであって、
前記マスタの属性情報を判別し、当該マスタから前記クラスタ空間へのアクセスを許可するアクセス監視部を備えたことを特徴とする共有メモリシステム。
【請求項５】
請求項４に記載の共有メモリシステムであって、
前記マスタから前記クラスタ空間へのアクセスを格納するスケジューリング部と、
前記スケジューリング部によって格納された前記クラスタ空間へのアクセスを制御するアクセスポリシー制御部と、を備え、
前記アクセス監視部は、前記マスタの属性情報を判別して前記スケジューリング部に渡し、
前記アクセスポリシー制御部は、ポリシーを前記スケジューリング部に通知し、前記属性情報に該当するクラスタ空間へのアクセスを許可することを特徴とする共有メモリシステム。
【請求項６】
請求項５に記載の共有メモリシステムであって、
前記アクセスポリシー制御部は、前記クラスタ空間へのアクセスの優先度が設定されたプライオリティ設定レジスタの内容を変更することを特徴とする共有メモリシステム。
【請求項７】
請求項５又は６に記載の共有メモリシステムであって、
前記スケジューリング部によって格納された前記マスタから前記クラスタ空間へのアクセスを統合する統合部を備えたことを特徴とする共有メモリシステム。
【請求項８】
請求項５に記載の共有メモリシステムであって、
前記共有メモリはキャッシュメモリであり、
前記マスタから前記クラスタ空間へのアクセスに緊急転送属性を付加する緊急転送属性付加部を備え、
前記アクセスポリシー制御部は、前記緊急転送属性が付加された前記マスタからのアクセスに、明け渡し可能な前記クラスタ空間の領域を貸与することを特徴とする共有メモリシステム。
【請求項９】
請求項８に記載の共有メモリシステムであって、
前記緊急転送属性が付加されたマスタからのアクセスが完了すると、前記領域が貸与されたクラスタ空間を元に戻すことを特徴とする共有メモリシステム。
【請求項１０】
請求項１に記載の共有メモリシステムであって、
前記共有メモリはキャッシュメモリであり、
前記複数のクラスタ空間はラインサイズの異なるクラスタ空間からなり、
前記マスタの処理内容に応じたラインサイズの前記クラスタ空間に、前記マスタからのアクセスを振り分けるラインサイズ制御部を備えたことを特徴とする共有メモリシステム。
【請求項１１】
請求項１に記載の共有メモリシステムであって、
特定の前記クラスタ空間に対し、電源の供給を遮断する、又はリーク電流を抑制する電源制御部を備えたことを特徴とする共有メモリシステム。
【請求項１２】
請求項１に記載の共有メモリシステムであって、
半導体装置からなり、前記マスタとして、他の半導体装置が接続されたことを特徴とする共有メモリシステム。
【請求項１３】
複数のマスタと、前記複数のマスタによってアクセスされ、複数のクラスタに分割された共有メモリとを有する共有メモリシステムの制御方法であって、
前記複数のクラスタの少なくとも１つを含むクラスタ空間を、全マスタで共有する空間、特定の複数のマスタ間で共有する空間、及び単体のマスタで占有する空間のいずれかで構成し、当該クラスタ空間に前記マスタからのアクセスを割り当てる割当ステップと、
前記マスタの属性情報に従って、前記クラスタ空間の構成を変更する変更ステップと、を有し、
前記属性情報は、前記マスタのアクセス信号に付加され、マスタ識別属性、リード／ライト属性、アドレス属性、データ／命令属性、セキュア属性、キャッシュ／非キャッシュ属性及び転送属性の少なくとも１つを含む共有メモリシステムの制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のマスタによってアクセスされる共有メモリを有する共有メモリシステム及びその制御方法に関する。
【背景技術】
【０００２】
従来、共有メモリシステムとして、複数のプロセッサ間でメモリを共有しているものがある。図１１は、従来の共有メモリシステムの構成を示すブロック図である。ＣＰＵ（１）２１０１、ＣＰＵ（２）２１０２、ＤＳＰ（１）２１０３、ＤＳＰ（２）２１０４、ＧＰＵ２１０５、ＨＷＡ（１）２１０６及びＨＷＡ（２）２１０７は、インターコネクトバス２２１９を通して主記憶メモリ２１５１を共有する。
【０００３】
具体的な例として、動画ストリームのデコード処理を行う場合を示す。この処理では、最初に、ＣＰＵ（１）２１０１を用いて主記憶メモリ２１５１から処理すべきデータを取得し、ヘッダ解析等の処理を行う。次に、ＤＳＰ（２）２１０４を用いて動画でコード処理を行った後、フレームデータを主記憶メモリ２１５１で共有し、ＨＷＡ（１）２１０６を用いてＬＣＤ等に出画する。
【０００４】
また、別の例として、特許文献１に記載の共有メモリシステムが知られている。図１２は、特許文献１の構成を示すブロック図である。この共有メモリシステムは、インターコネクトバス３３１９の負荷をバス負荷検出部３３４０で検出し、このバス負荷情報３３４１をリプレースウェイ制御部３３５０に通知する。そして、リプレースウェイ制御部３３５０は、予め設定されたバス負荷の判定条件に応じて、リプレース方法を変更する。
【０００５】
これにより、局所的にバストラフィックが増大する懸念がある場合でも、バストラフィックを均一化することが可能となる。したがって、リアルタイム処理が必要なマスタに対して性能を担保することが可能となる。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００６−１１９７９６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかし、上記説明した共有メモリシステムでは、次のような問題があった。図１１に示した例では、各マスタは、主記憶メモリ２１５１を用いて各マスタ間のデータを共有する。主記憶メモリ２１５１は、一般的にＤＲＡＭで構成され、ＬＳＩの内蔵メモリと比較してレイテンシが長い。したがって、この構成では、主記憶メモリ２１５１に対するバスアクセスがボトルネックとなり、各マスタの性能を十分に発揮することが困難である。
【０００８】
また、図１２に示した特許文献１の構成では、バス負荷情報３３４１に応じて、キャッシュのリプレースウェイを制御するため、主記憶メモリ３３５１に対するバストラフィックを均一化することができる。すなわち、バス負荷が大きい場合はバス負荷の小さいリプレース処理を行い、バス負荷が小さい場合はバス負荷の大きいリプレース処理を行うことで、バスを有効に使用することができ、局所的なバストラフィックを改善し、バストラフィックを均一化することができる。
【０００９】
しかし、この方法では、主記憶メモリ３３５１のバス帯域を越えるシステム性能を発揮することはできず、ＣＰＵ３３０１、３３０２やＤＳＰ（１）３３０３等のマスタが潜在的に持つ能力を全て使い切ることは困難である。またこの場合、主記憶メモリ３３５１は常に動作し続けることになるため、低消費電力が特に要求される携帯機器等においては、商品性を損なってしまう。
【００１０】
本発明の目的は、処理時間の短縮及び消費電力の低減が可能な共有メモリシステム及びその制御方法を提供することである。
【課題を解決するための手段】
【００１１】
本発明の共有メモリシステムは、複数のマスタと、前記複数のマスタによってアクセスされ、クラスタに分割された共有メモリと、前記複数のクラスタの少なくとも１つを含む複数のクラスタ空間を、全マスタで共有する空間、特定の複数のマスタ間で共有する空間、及び単体のマスタで占有する空間のいずれかで構成し、当該クラスタ空間に前記マスタからのアクセスを割り当てる割当部と、前記マスタの属性情報に従って、前記クラスタ空間の構成を変更する変更部とを備え、前記属性情報は、前記マスタのアクセス信号に付加され、マスタ識別属性、リード／ライト属性、アドレス属性、データ／命令属性、セキュア属性、キャッシュ／非キャッシュ属性及び転送属性の少なくとも１つを含む。これにより、マスタの処理性能を向上させて処理時間を短縮することができる。また、外部の主記憶メモリへのアクセスを削減して消費電力を低減することができる。
【００１２】
また、本発明の共有メモリシステムでは、前記マスタは、中央演算処理装置、デジタルシグナルプロセッサ、汎用グラフィックス処理装置又はハードウェアアクセラレータである。
【００１４】
また、本発明の共有メモリシステムでは、前記共有メモリはキャッシュメモリであり、前記クラスタ空間にミスヒットが発生した場合、リフィル動作中、当該クラスタ空間にアクセスが割り当てられたマスタの動作クロック周波数を下げるもしくは当該動作クロックを停止させるクロック制御部を備える。これにより、省電力化が図られる。
【００１５】
本発明の共有メモリシステムは、前記マスタの属性情報を判別し、当該マスタから前記クラスタ空間へのアクセスを許可するアクセス監視部を備える。これにより、システムのコヒーレンシ性能を向上させることができる。
【００１６】
本発明の共有メモリシステムは、前記マスタから前記クラスタ空間へのアクセスを格納するスケジューリング部と、前記スケジューリング部によって格納された前記クラスタ空間へのアクセスを制御するアクセスポリシー制御部とを備え、前記アクセス監視部は、前記マスタの属性情報を判別して前記スケジューリング部に渡し、前記アクセスポリシー制御部は、ポリシーを前記スケジューリング部に通知し、前記属性情報に該当するクラスタ空間へのアクセスを許可する。これにより、クラスタ空間へのアクセスに際し、ポリシーを反映させることができる。
【００１７】
本発明の共有メモリシステムでは、前記アクセスポリシー制御部は、前記クラスタ空間へのアクセスの優先度が設定されたプライオリティ設定レジスタの内容を変更する。これにより、システムのコヒーレンシ性能を向上させることができる。
【００１８】
本発明の共有メモリシステムは、前記スケジューリング部によって格納された前記マスタから前記クラスタ空間へのアクセスを統合する統合部を備える。これにより、共有性の高いクラスタ空間を統合させることができ、システムのコヒーレンシ性能を向上させることができる。
【００１９】
本発明の共有メモリシステムでは、前記属性情報は、前記マスタのアクセス信号に付加された、マスタ識別属性、リード／ライト属性、アドレス属性、データ／命令属性、セキュア属性、キャッシュ／非キャッシュ属性及び転送属性を含む。
【００２０】
本発明の共有メモリシステムは、前記共有メモリはキャッシュメモリであり、前記マスタから前記クラスタ空間へのアクセスに緊急転送属性を付加する緊急転送属性付加部を備え、前記アクセスポリシー制御部は、前記緊急転送属性が付加された前記マスタからのアクセスに、明け渡し可能な前記クラスタ空間の領域を貸与する。これにより、緊急性の高く優先度が低い処理を行うマスタに対しても、クラスタ空間を割り当てることができる。
【００２１】
本発明の共有メモリシステムでは、前記緊急転送属性が付加されたマスタからのアクセスが完了すると、前記領域が貸与されたクラスタ空間を元に戻す。これにより、緊急転送前の状態に戻すことができる。
【００２２】
本発明の共有メモリシステムは、前記共有メモリはキャッシュメモリであり、前記複数のクラスタ空間はラインサイズの異なるクラスタ空間からなり、前記マスタの処理内容に応じたラインサイズの前記クラスタ空間に、前記マスタからのアクセスを振り分けるラインサイズ制御部を備える。これにより、マスタの処理内容に適切なラインサイズのクラスタ空間に振り分けることができる。
【００２３】
本発明の共有メモリシステムでは、特定の前記クラスタ空間に対し、電源の供給を遮断する、又はリーク電流を抑制する電源制御部を備える。これにより、電力性能を向上させることができる。
【００２４】
本発明の共有メモリシステムは、半導体装置からなり、前記マスタとして、他の半導体装置が接続された。これにより、システム全体の処理性能を向上させることができるとともに、他の半導体装置に接続される主記憶メモリを削減することができる。
【００２５】
本発明の共有メモリシステムの制御方法は、複数のマスタと、前記複数のマスタによってアクセスされ、複数のクラスタに分割された共有メモリとを有する共有メモリシステムの制御方法であって、前記複数のクラスタの少なくとも１つを含むクラスタ空間を、全マスタで共有する空間、特定の複数のマスタ間で共有する空間、及び単体のマスタで占有する空間のいずれかで構成し、当該クラスタ空間に前記マスタからのアクセスを割り当てる割当ステップと、前記マスタの属性情報に従って、前記クラスタ空間の構成を変更する変更ステップとを有し、前記属性情報は、前記マスタのアクセス信号に付加され、マスタ識別属性、リード／ライト属性、アドレス属性、データ／命令属性、セキュア属性、キャッシュ／非キャッシュ属性及び転送属性の少なくとも１つを含む。
【発明の効果】
【００２６】
本発明によれば、マスタの処理性能を向上させて処理時間を短縮することができる。また、外部の主記憶メモリへのアクセスを削減して消費電力を低減することができる。
【００２７】
例えば、共有メモリシステムを有するマルチプロセッサを用いることで、プロセッサ処理時間を短縮した高性能マルチプロセッサを実現することができる。さらに、外部ワークメモリ（主記憶メモリ）へのアクセスを低減させることで、バッテリ駆動のポータブル電子機器に用いられるアプリケーションプロセッサに対し、大幅な低消費電力が実現可能となる。
【図面の簡単な説明】
【００２８】
【図１】第１の実施形態における共有メモリシステムの構成を示す図
【図２】メモリアクセス制御の動作手順を示すフローチャート
【図３】クラスタメモリ空間の設定更新手順を示すフローチャートの一例
【図４】アクセスポリシー制御機構１１４の設定例を示すテーブル
【図５】マスタ識別属性１０４０及びキャッシュ属性１０９０の設定例を示すテーブル
【図６】動画再生動作手順を示すフローチャート
【図７】第２の実施形態における共有メモリシステムの構成を示す図
【図８】第３の実施形態における共有メモリシステムの構成を示す図
【図９】第４の実施形態における共有メモリシステムの構成を示す図
【図１０】第５の実施形態における共有メモリシステムの構成を示す図
【図１１】従来の共有メモリシステムの構成を示すブロック図
【図１２】特許文献１の構成を示すブロック図
【発明を実施するための形態】
【００２９】
本発明の共有メモリシステム及びその制御方法の実施形態について、図面を参照して説明する。以下説明する実施形態の共有メモリシステムは、非対称マルチプロセッサや対称マルチプロセッサ等、複数のマスタがアクセスする共有メモリとしてキャッシュメモリを有する。
【００３０】
（第１の実施形態）
図１は、第１の実施形態における共有メモリシステムの構成を示す図である。この共有メモリシステムは、ＣＰＵ（中央演算処理装置）（１）１０１、ＣＰＵ（２）１０２、ＤＳＰ（デジタルシグナルプロセッサ）（１）１０３、ＤＳＰ（２）１０４、ＧＰＵ（汎用グラフィックス処理装置）１０５、ＨＷＡ（ハードウェアアクセラレータ）（１）１０６及びＨＷＡ（ハードウェアアクセラレータ）（２）１０７からなる７つのマスタを有する。
【００３１】
これら７つのマスタは、クラスタメモリ空間選択装置１１９を通して８個のクラスタメモリ（クラスタ）１１１に分割された共有メモリ（キャッシュ）１１０を共有する。なお、第１のプロセッサ（ＣＰＵ（１）１０１）及び第２のプロセッサ（ＣＰＵ（２）１０２）は非対称なマルチプロセッサを構成する。また、第３のプロセッサ（ＤＳＰ（１）１０３）及び第４のプロセッサ（ＤＳＰ（２）１０４）は非対称なマルチプロセッサを構成する。
【００３２】
各マスタは、共有メモリ１１０をキャッシュメモリとしてアクセスする時、アクセス先アドレスと同時に属性情報を付加したバスアクセス信号１３０を出力する。
【００３３】
アクセス監視機構１１２は、各マスタが発行する属性情報をもとに、クラスタメモリ空間選択装置１１９にアクセス許可を示す制御情報１３１を渡す。クラスタメモリ空間選択装置１１９は、アクセス許可を示す制御情報１３１に従って、各マスタから各クラスタ１１１へのアクセスを制御する。
【００３４】
特定の属性情報で共有したクラスタメモリ空間（クラスタ空間）にキャッシュミスヒットが発生し、クラスタ１１１へのリフィル動作を行う場合、キャッシュ制御機構１２４は、リフィル動作中に、該当するマスタの動作クロック周波数を下げるもしくは動作クロックを停止することを許可するフラグ信号１３７をクロック制御部１２２に出力する。
【００３５】
クロック制御部１２２は、キャッシュ制御機構１２４から、動作クロック周波数を下げるもしくは動作クロックを停止することを許可するフラグ信号１３７を受け取ると、ストール状態にあると判断したマスタの動作クロック１３９を停止する、もしくはその周波数を下げる。また、クロック制御部１２２の動作は、省電力制御部１２１からの信号１３８によって制御される。
【００３６】
上記構成を有する共有メモリシステムの動作を示す。図２は、メモリアクセス制御の動作手順を示すフローチャートである。例えば、ＤＳＰ（２）１０４をビデオデコード処理プロセッサとし、ＤＳＰ（２）１０４がデコード（復号化）したビデオデータをＧＰＵ１０５が高画質化処理を行うための入力データとして使用する場合について説明する。
【００３７】
まず、共有メモリシステムは、アクセス監視機構１１２に対し、予め動画属性用のクラスタをクラスタメモリ１とクラスタメモリ２とする定義を行う（ステップＳ１）。
【００３８】
アクセス監視機構１１２は、ＤＳＰ（２）１０４が画像の属性情報を付加してメモリアクセスを行うと（ステップＳ２）、このバスアクセス信号１３０に付加された属性情報はアクセスを許可するものであるか否かを判別する（ステップＳ３）。この属性情報がアクセスを許可しないものである場合、この動作は終了する。
【００３９】
一方、この属性情報がアクセスを許可するものである場合、アクセス監視機構１１２は、クラスタメモリ１とクラスタメモリ２に対してアクセス許可を示す制御情報１３１を、クラスタメモリ空間選択装置１１９に出力する（ステップＳ４）。
【００４０】
クラスタメモリ空間選択装置１１９は、このアクセス許可を示す制御情報１３１に従って、ＤＳＰ（２）１０４からのアクセスをクラスタメモリ１もしくはクラスタメモリ２に振り分ける（ステップＳ５）。同様に、ＧＰＵ１０５が画像の属性情報を付加してメモリアクセスを実行すると、ＧＰＵ１０５からのメモリアクセスもクラスタメモリ１とクラスタメモリ２に割り当てられる。
【００４１】
このように、複数のクラスタ１１１に分割された共有メモリ１１０を複数のマスタが共有することで、キャッシュメモリのコヒーレンシを容易に保つことができる。また、その他のマスタ、例えばＤＳＰ（１）１０３が異なる属性情報を付加する場合、ＤＳＰ（２）１０４及びＧＰＵ１０５以外のマスタからのメモリアクセスを排除することができる。
【００４２】
また、ＧＰＵ１０５の動作中、キャッシュ制御機構１２４は、キャッシュミスヒットが発生したか否かを判別する（ステップＳ６）。キャッシュミスヒットが発生した場合、レイテンシの大きい主記憶メモリ１５１等から該当するクラスタ１１１にリフィル（入れ替え）動作が行われる。この時、ＧＰＵ１０５は所望のデータを受信するまでストール状態となるため、キャッシュ制御機構１２４は、ＧＰＵ１０５のメモリアクセスのキャッシュミスヒット及びストール状態を検知し、クロック制御部１２２にＧＰＵ１０５のクロック周波数を下げることを許可するフラグ信号１３７を出力する（ステップＳ７）。なお、前述したように、クロック周波数を下げる代わりに、クロックを停止しても良い。
【００４３】
クロック制御部１２２は、クロック周波数を下げることを許可するフラグ信号１３７を受け取ると、ＧＰＵ１０５のクロック周波数を通常動作のクロック周波数よりも低い周波数に下げてクロックを供給する。キャッシュ制御機構１２４は、クラスタ（キャッシュ）１１１に所望のデータを入れ替え（ステップＳ８）、この入れ替え（リフィル動作）後、フラグ信号１３７を取り下げる。
【００４４】
クロック制御部１２２は、フラグ信号１３７の取り下げにより、ＧＰＵ１０５に供給されるマスタ動作クロック１３９のクロック周波数を通常のクロック周波数に切り替え、元に戻す（ステップＳ９）。ＧＰＵ１０５は、リフィル動作後のクラスタメモリ１あるいはクラスタメモリ２に対し、メモリアクセスを行う（ステップＳ１０）。この後、この動作が終了する。
【００４５】
このように、本実施形態の共有メモリシステムによれば、各マスタ間で共有するクラスタメモリ内のデータのコヒーレンシを容易に保つことができる。また、外部メモリ制御部１２０を介して行われる主記憶メモリ１５１へのアクセス回数、又はシステムのレイテンシを削減し、プロセッサ処理性能を向上させることができる。
【００４６】
さらに、局所的なキャッシュヒット率を高めることも可能であるため、下位階層のメモリアクセスを削減し、また、ストール中のマスタのクロック停止もしくはその周波数を動的に下げることで、大幅な消費電力の削減が可能となる。
【００４７】
なお、本実施形態では、マスタの数を７個設け、クラスタの数を８個設けた場合を示したが、この数は特に限定されるものではなく、任意の数で良い。
【００４８】
次に、クラスタメモリ空間の設定について説明する。ここで、クラスタメモリ空間は、全マスタで共有する空間１１１ａ、複数のマスタ間でのみ共有する空間１１１ｂ、単一のマスタで占有する空間１１１ｃに分けられる。
【００４９】
アクセス監視機構１１２は、マスタ１０１〜１０７とクラスタメモリ空間選択装置１１９間のバスアクセス信号１３０を監視し、属性情報を抽出する。属性情報の詳細については後述する。
【００５０】
アクセス監視機構１１２は、属性情報をメモリアクセスごとにまとめてスケジューリング機構１１５に渡す。スケジューリング機構１１５は、キューイング機構を持っており、アクセスポリシー制御機構１１４から通知されるポリシーに従い、キューの格納順序を決める。ポリシーは、アクセスポリシー制御機構１１４の回路で決められるか、若しくは、プライオリティ設定レジスタ１１３を介してソフトウェアで柔軟に決められるか、又はその両方の形態を有する。
【００５１】
マージ機構１１６は、同一又は類似するメモリアクセスをキューに格納した場合、両者の属性情報を統合する機能を有する。例えば、同じマスタからのリード属性であるメモリアクセスのアドレス空間が、もう一方のメモリアクセスのアドレス空間を含む場合、マージ機構１１６は、含まれる方のメモリアクセスの属性情報を破棄し、含む方のメモリアクセスの属性情報を選択し、両者のうち最前列に近いほうのキューに置き換える。
【００５２】
また、マージ機構１１６は、クラスタメモリ空間選択装置１１９の設定情報を保持しており、スケジューリング機構１１５のキューにおいて統合後の属性情報から、タグ切替部１１７を介してクラスタメモリ空間の設定を更新するか否かを判定する機構を有する。
【００５３】
図３は、クラスタメモリ空間の設定更新手順を示すフローチャートの一例である。例えば、ＧＰＵ１０５が生成するＬＣＤ表示データの１ラインが、主記憶メモリ１５１へのライトとして、共有メモリ１１０のクラスタメモリ５の空間（０ｘ４０００＿００００より１ライン分）にキャッシュデータとして格納される。
【００５４】
ＨＷＡ（２）１０７をＬＣＤコントローラとすると、アクセス監視機構１１２は、ＨＷＡ（２）１０７からのバスアクセス信号１３０を監視する（ステップＳ１１）。
【００５５】
バスアクセス信号１３０を監視した結果、アクセス監視機構１１２は、マスタ識別属性がＨＷＡ（２）１０７であり、リード／ライト属性がリード属性であり、開始アドレスが０ｘ４０００＿００００であり、転送サイズがＬＣＤ表示の１ラインであることの属性情報を抽出する（ステップＳ１２）。この抽出された属性情報は、スケジューリング機構１１５に渡される。
【００５６】
アクセスポリシー制御機構１１４は、プライオリティ設定レジスタ１１３に、予めＨＷＡ（２）１０７からのアクセスの優先度がマスタの中で最高位であるとソフトウェアにより設定されている場合、アクセスポリシー制御機構１１４に格納されるポリシーに反映し、このポリシーをスケジューリング機構１１５に通知する（ステップＳ１３）。
【００５７】
スケジューリング機構１１５は、このポリシーに従い、ＨＷＡ（２）１０７の属性情報をキューの最前列に格納する（ステップＳ１４）。
【００５８】
マージ機構１１６は、スケジューリング機構１１５のキューに格納された属性情報の類似性を分析し、属性情報を統合する（ステップＳ１５）。マージ機構１１６は、クラスタメモリ空間選択装置１１９の設定情報から、クラスタメモリ５の空間がリードアドレスを含むと判定した場合、共有メモリ１１０のクラスタメモリ５の空間制御にかかわる設定を他のメモリアクセスの属性情報に影響されず保持し、ＨＷＡ（２）１０７のキャッシュヒットを保証する。
【００５９】
なお、最初のＧＰＵ１０５のライトアクセスの際、属性情報（この例ではリード属性、ライト属性、開始アドレス、転送サイズより）に適するクラスタメモリを確保していない場合、共有メモリ１１０のクラスタメモリ５の空間を確保するための設定がクラスタメモリ空間選択装置１１９に反映される。
【００６０】
マージ機構１１６は、設定した情報を保持しており、この設定情報を、以降のメモリアクセスの際、更新が必要であるか否かの判断に使用する。すなわち、マージ機構１１６は、設定情報をもとに、クラスタメモリ空間の設定を変更する必要があるか否かを判別する（ステップＳ１６）。必要である場合、マージ機構１１６は、クラスタメモリ空間の設定を変更し（ステップＳ１７）、必要でない場合、そのままにする。
【００６１】
なお、マージ機構１１６における属性の類似性を判断する際、今回のリード属性、ライト属性、開始アドレス及び転送サイズから、クラスタメモリ空間の設定を決めていたが、これらの他、マスタ識別属性や命令／データ属性等、アクセス監視機構１１２によって抽出可能な全ての属性情報は判断情報となる。
【００６２】
この後、スケジューリング機構１１５は、そのキューの最前列に格納された属性情報を破棄する（ステップＳ１７）。本動作が終了する。
【００６３】
これにより、本実施形態の共有メモリシステムによれば、共有性の確保及びリフィル動作の低減による省電力化を実現することができる。
【００６４】
次に、属性情報について説明する。図４は、アクセスポリシー制御機構１１４の設定例を示すテーブルである。このアクセスポリシー制御機構１１４の設定例で示すように、共有メモリシステムにおいて、マスタ１０１〜１０７がインターコネクトバスにアクセスする際に付与する属性１０３０によって、クラスタメモリ１〜８の共有属性が制御される。
【００６５】
図５は、マスタ識別属性１０４０及びキャッシュ属性１０９０の設定例を示すテーブルである。図５（Ａ）はマスタ識別属性１０４０を示し、図５（Ｂ）はキャッシュ属性１０９０を示す。
【００６６】
クラスタメモリ１の設定例は次のとおりである。属性１０３０は１ラインあたり６４バイトのラインサイズである。マスタ識別属性１０４０は０と１である。リード／ライト属性１０５０はリード／ライトの両方の場合である。アドレス範囲（アドレス属性）１０６０は、開始アドレス１０６０ａが０ｘ００００００００以上、かつ終了アドレス１０６０ｂが０ｘ２０００００００未満である。
【００６７】
データ／命令属性１０７０は命令／データである。セキュア属性１０８０はセキュアである。キャッシュ属性（キャッシュ／非キャッシュ属性）１０９０はＲＡである。緊急処理属性１０Ａ０は不可である。転送属性（１０Ｂ０）はシングルの場合にクラスタメモリ１でＣＰＵ（１）１０１とＣＰＵ（２）１０２間で命令／データを共有することができることを示す。
【００６８】
例えば、携帯機器において動画再生を行う場合を例にあげて説明する。図６は、動画再生動作手順を示すフローチャートである。まず、ＣＰＵ（１）１０１は、データの取得と著作権情報の認証を行う（ステップＳ２１）。すなわち、ＣＰＵ（１）１０１は、主記憶メモリ１５１からストリームデータを取得し、著作権情報等の保護情報を認証する処理を行う。その際、ＣＰＵ（１）１０１は、属性１０３０でアクセスを行い、クラスタメモリ１で処理済みデータを共有する。
【００６９】
ＣＰＵ（２）１０２は、音声情報と画像情報の分離処理を行う（ステップＳ２２）。すなわち、ＣＰＵ（２）１０２は、認証処理を行ったデータに対し、音声情報と画像情報を分離する処理を行う。分離後のデータは、クラスタメモリ５、６で共有される。
【００７０】
ＤＳＰ（１）１０３は、音声と画像のデコード処理を行う（ステップＳ２３）。すなわち、ＤＳＰ（１）１０３は、音声情報をデコードする処理を行う際、ＣＰＵ（２）１０２によって処理され、クラスタメモリ５、６で共有されたデータを使用する。音声デコード処理後のデータは、ＤＳＰ（１）１０３によってデジタルアナログコンバータに出力される。
【００７１】
また、ＤＳＰ（２）１０４は、動画ストリームデコードを行ってフレームデータに変換する処理を行う際、同様に、クラスタメモリ５、６で共有されたデータを使用する。動画デコード後のフレームデータは、クラスタメモリ８を用いて、ＨＷＡ（２）１０７と共有される。
【００７２】
ＨＷＡ（２）１０７は、クラスタメモリ８で共有されたデータを読み出し、ＬＣＤ（図示せず）に出画する処理を行う（ステップＳ２４）。この後、本動作が終了する。
【００７３】
上記ステップＳ２１〜Ｓ２４では、それぞれのマスタ間のデータは、属性１０３０によって制御され、共有される。なお、上記ステップＳ２１〜Ｓ２４は、例示であって制限的なものではないと考えられるべきである。
【００７４】
このように、第１の実施形態の共有メモリシステムによれば、適切な属性１０３０を予め設定し、それに応じて動的にクラスタメモリ１〜８のいずれかあるいは全てを予め設定された属性１０３０に従って、適切にデータを共有することで、システムの性能を高めることができる。また、同時に、コヒーレンシ性が向上するため、主記憶メモリ１５１へのアクセスを減らすことができる。したがって、携帯機器に必要不可欠な低消費電力の性能も高めることができる。
【００７５】
なお、属性１０３０では、クラスタメモリごとのラインサイズは、１ラインあたり６４バイトのラインサイズ、１ラインあたり１２８バイトのラインサイズ、１ラインあたり２５６バイトのラインサイズ又は１ラインあたり５１２バイトのラインサイズ等であっても良い。
【００７６】
マスタ識別属性１０４０は、０と１のみで共有する場合、０と１と５と６で共有する場合、０と２と３で共有する場合、２と３で共有する場合、５のみで共有する場合等、任意の組合せで設定されても良い。
【００７７】
アドレス範囲１０６０は、０ｘ００００００００以上かつ０ｘ２０００００００未満というように、任意の範囲で設定されても良い。
【００７８】
データ／命令属性１０７０は、命令／データ、命令のみ、データのみ等で設定されても良い。ここで、データ属性１０７８は、１種類のみ示されたが、複数のデータ属性を持っても良い。
【００７９】
セキュア属性１０８０は、セキュア属性の場合又は非セキュア属性としても良い。キャッシュ属性１０９０は、ＲＡ、ＲＡＢ又はＲＡＷＡＢ等でも良い。緊急処理属性１０Ａ０は、対応不可、対応可から選択されても良い。転送属性１０Ｂ０は、シングル転送、バースト転送等であっても良い。
【００８０】
このような属性のいずれか１つ以上又はその他の属性情報を組み合わせて、アクセスポリシーを制御するようにしても良い。
【００８１】
（第２の実施形態）
図７は、第２の実施形態における共有メモリシステムの構成を示す図である。第２の実施形態の共有メモリシステムでは、第１の実施形態の共有メモリシステムに加え、緊急転送属性が付加されたメモリアクセスに対するキャッシュメモリ空間貸与機能が付加されている。
【００８２】
前記第１の実施形態と同じ構成要素については同じ符号を用いることで、その説明を省略する。なお、本実施形態では、共有メモリシステムは、共有キャッシュメモリ構成１１０ａを有するものとして説明する。
【００８３】
ＨＷＡ（２）１０７には、ＬＣＤ（液晶表示ディスプレイ）４５２が接続される。また、クラスタメモリ空間選択装置１１９によって、クラスタメモリ１に該当するウェイは、ＣＰＵ（１）１０１とＣＰＵ（２）１０２の共有クラスタ１１１として割り当てられている。したがって、クラスタメモリ１へのアクセスには、メモリアクセス４７１とメモリアクセス４７２ａが存在する。
【００８４】
また、メモリアクセス４７２ｂは、ＣＰＵ（２）１０２のデータキャッシュ属性が割り当てられる空間（クラスタメモリ２、３で構成された共有空間４６１）に対して行われる。
【００８５】
ＤＳＰ（１）１０３のメモリアクセス４７３ａと、ＤＳＰ（２）１０４のデータキャッシュ属性メモリアクセス４７４ａは、クラスタメモリ４で構成された空間４６２を共有する。ＤＳＰ（２）１０４のデータキャッシュ属性メモリアクセス４７４ｂには、クラスタメモリ５、６で構成された空間４６３が割り当てられる。
【００８６】
最後に、ＨＷＡ（２）１０７がＬＣＤ４５２に表示する最終画像データは、クラスタメモリ７、８で構成された空間４６４に対するＨＷＡ（２）１０７のメモリアクセス４７５によって格納される。
【００８７】
一方、ＣＰＵ（２）１０２が作成するユーザインターフェース（以降、ＵＩと略す）等のアニメーションは、ＣＰＵ（２）１０２による最終画像の合成処理後、クラスタメモリ２、３で構成された空間４６１に格納される。
【００８８】
ここで、クラスタメモリ７、８で構成された空間４６４と、クラスタメモリ２、３で構成された空間４６１とのコヒーレンス性は、内部に具備したコヒーレンシ機能４７０により保たれる。
【００８９】
このように、ＨＷＡ（２）１０７がメモリアクセス４７５を行うことで、クラスタメモリ７、８で構成された空間４６４へのメモリアクセス４７５でＬＣＤ４５２に出力することが可能である。
【００９０】
次の動作を例に、緊急処理転送属性を付与したメモリアクセスに対するキャッシュメモリ空間貸与機能について説明する。この動作は、ＣＰＵ（１）１０１が周辺接続デバイスの制御を行い、ＣＰＵ（２）１０２が表示画面のＵＩ描画制御を行っている場合、かつＤＳＰ（１）１０３が音響処理を行い、ＤＳＰ（２）１０４がビデオデコード処理を行い、ＧＰＵ１０５とＨＷＡ（１）１０６（ここでは、ＤＭＡコントローラ）が動作していない場合、ＨＷＡ（２）１０７がＬＣＤに出画データを転送している動作である。
【００９１】
この動作状態において、ＨＷＡ（２）１０７は、１秒間に６０枚の映像データを出力する。組み立てられた最終画像データを一定周期でＬＣＤ４５２に遅れることなく出力する必要がある、いわゆるデットライン保証型のリアルタイム処理が課せられるマスタである。
【００９２】
また、ビデオデコード用ＤＳＰ（２）１０４も、毎秒決まったサイズの決まった枚数をデコード処理し、後段のＨＷＡ（２）１０７へ動画データを渡さなければならないため、同様に、リアルタイム処理が必要とされる。
【００９３】
なお、ＨＷＡ（２）１０７に比べ、ＤＳＰ（２）１０４が行うビデオデコード処理は、主記憶メモリ１５１のバンド幅を大量に必要とする処理でもある。したがって、主記憶メモリ１５１へのスループットは最も優先的に与えられる。
【００９４】
また、オーディオのデコード処理を担当する第１のＤＳＰ（１）１０３も、リアルタイム処理が必要である。しかし、高精細で大画面なビデオ処理を想定した場合、主記憶メモリ１５１バンド幅は、ＤＳＰ（２）１０４  ＞＞  ＨＷＡ（２）１０７  ＞  ＤＳＰ（１）１０３の順で大きな帯域を必要とする。
【００９５】
このような場合、共有メモリ（キャッシュ）１１０は、要求帯域に比例した優先度で、より大きな帯域を必要とするマスタプロセッサに、より大きなクラスタメモリ空間を与えるように制御される。
【００９６】
このため、共有メモリ１１０のクラスタ１１１を構成するウェイについては、ＤＳＰ（２）１０４  ＞  ＨＷＡ（２）１０７  ＞  ＤＳＰ（１）１０３の順で、より多くのウェイが割り当てられる。
【００９７】
また、共有の度合いとして、ＤＳＰ（２）１０４とＨＷＡ（２）１０７のいずれもビデオデータを扱うが、これらの共有度は高くない。また、ＤＳＰ（１）１０３はオーディオデータを扱うため、ＤＳＰ（１）１０３のデータと他のマスタのデータを共有する必要はない。一方、ＤＳＰ（１）１０３とＤＳＰ（２）１０４については、命令を一部共有できる箇所がある。
【００９８】
このため、ＤＳＰ（１）１０３のデータキャッシュ、ＤＳＰ（２）１０４のデータキャッシュ及びＨＷＡ（２）１０７のデータキャッシュは非共有で制御される。また、ＤＳＰ（１）１０３とＤＳＰ（２）１０４の命令は共有領域に格納され、コヒーレンシ制御が行われる。
【００９９】
例えば、ＤＳＰ（１）１０３、ＤＳＰ（２）１０４それぞれのデータについては、同じデータを使って演算が繰り返されるため、共有キャッシュ空間の一部を、各ＤＳＰの２次キャッシュとして割り当てることは、レイテンシの性能向上の観点から有効である。
【０１００】
一方、ＣＰＵ（１）１０１の主記憶メモリ１５１へのアクセスはランダムである。しかも、本実施形態の場合、ＣＰＵ（１）１０１については、ＤＳＰ（２）１０４、ＨＷＡ（２）１０７、ＤＳＰ（１）１０３のいずれともデータの共有度合いが低く、プロセッサのコア性能も高くない。したがって、ＣＰＵ（１）１０１については、割り当てられるウェイ数も少なく、クラスタへのアクセス制御として、一番優先度が低く設定される。
【０１０１】
また、ＣＰＵ（２）１０２は、ＵＩを制御しており、ＤＳＰ（２）１０４のビデオデコード結果と、ＣＰＵ（２）１０２が生成したＵＩのアニメーションを合成し、ＨＷＡ（２）１０７にフレームデータを渡す。この動作を想定すると、ＤＳＰ（２）１０４とＨＷＡ（２）１０７のデータを使って、ＣＰＵ（２）１０２がＬＣＤ表示データの合成処理を行うため、共有メモリ１１０における共有度合いは高くなる可能性が高い。したがって、これらのマスタ間のデータは共有可能となるように、クラスタ１１１の割り当て（アサイン）が行われる。
【０１０２】
さらに、ＣＰＵ（２）１０２のデータと、外部機器からの情報を処理するＣＰＵ（１）１０１のデータとの共有性は比較的高い。外部機器、例えばＬＣＤのタッチパネルで得た情報をＣＰＵ（１）１０１が処理する。ＣＰＵ（２）１０２は、その結果を受け、描画を制御しているＵＩを変更しなければならい。例えば、ビデオ再生の画面を早送りするゲージバーにおいて、ゲージの位置で早送りの速度を変える場合、指先でタッチパネル式のＬＣＤを触れる位置に連動し、ＵＩのゲージ位置を随時変更して描画していかなければならない。これらの制御データについては、共有メモリで共有度合いが高く、主記憶メモリ１５１でデータを共有するよりも、内部の共有メモリ１１０で共有してコヒーレンシ制御を行う方が、システムの処理性能は大幅に向上する場合がある。
【０１０３】
しかし、前述したように、ＵＩ操作がない場合、ＣＰＵ（１）１０１の処理は軽く、ＣＰＵ（２）１０２とのデータ共有もほとんど無いため、ウェイのアサインの優先度は低い。
【０１０４】
また、外部機器からの入力がない場合、ＣＰＵ（１）１０１はアイドル状態にある。この場合、ＣＰＵ（１）１０１には、共有メモリ１１０のウェイは割り当てられず（アサインされず）、ウェイの解放が行われる。
【０１０５】
この場合、電子機器の操作を行うユーザはタッチパネル式のＬＣＤの操作を始めた際、外部デバイスからの割り込みにより、ＣＰＵ（１）１０１は、アイドル状態から復帰し、すぐさま外部機器から入ってくるデータの処理を行う。
【０１０６】
このとき、ＣＰＵ（１）１０１のバスアクセス信号１３０に対し、緊急処理属性を付けて（緊急転送属性付加）メモリアクセス４７１を行うと、共有メモリ１１０は、通常使っていないタグメモリとして準備したシャドウタグメモリに、それまでウェイが割り当てられていなかったＣＰＵ（１）１０１に、緊急処理属性付きのＣＰＵ（１）１０１のアクセスを割り当てる。
【０１０７】
それ以前、共有キャッシュのウェイ割当ての優先順位は、ＤＳＰ（２）１０４  ＞＞  ＨＷＡ（２）１０７  ＞  ＤＳＰ（１）１０３  ＞  ＣＰＵ（２）１０２の順であった。ＧＰＵ１０５とＨＷＡ（１）１０６（ＤＭＡコントローラ）とＣＰＵ（１）１０１には、共有キャッシュのウェイがアサインされていない。このため、一番優先度が低いＣＰＵ（２）１０２のウェイをアサインしていた領域のタグが、一時的にウェイをロックし、シャドウタグに切り替えられる。
【０１０８】
これにより、ＣＰＵ（２）１０２が使っていた共有メモリ１１０のクラスタ１１１の一部を解放し、この解放された空間をシャドウタグ経由でＣＰＵ（１）１０１が使えるようにする。また、外部機器からの入力がなくなり、ＣＰＵ（１）１０１がアイドルに入ると、つまり、緊急転送属性が付加されたメモリアクセスが完了すると、シャドウタグは通常タグと切り替わる。そして、ＣＰＵ（１）１０１が使っていたウェイをＣＰＵ（２）１０２が使えるようにする。
【０１０９】
なお、このシャドウタグと通常タグを切り替える時、ウェイ上のデータを一瞬で（フラッシュして）自動で入れ替える制御が行われる。シャドウタグの切替え時には通常タグのデータが残っている。したがって、ＣＰＵ（１）１０１に貸与したウェイを解放した際、ＣＰＵ（２）１０２にどこのデータを書き戻せばよいかは、この方法で速やかに判別される。シャドウタグはこのような仕組みを提供する。
【０１１０】
このように、第２の実施形態の共有メモリシステムによれば、コヒーレンシ制御を行うため、システムの処理性能を大幅に向上する。また、ウェイのアサインの優先度が低いＵＩ操作のような処理を行うマスタに対しても、共有キャッシュを割り当てることができる。
【０１１１】
（第３の実施形態）
第３の実施形態では、第２の実施形態とは異なるコヒーレンシ制御を行う場合を示す。図８は、第３の実施形態における共有メモリシステムの構成を示す図である。前記第１の実施形態と同じ構成要素については同じ符号を用いることで、その説明を省略する。なお、本実施形態では、共有メモリシステムは、共有キャッシュメモリ構成１１０ａを有するものとして説明する。図８に示す各マスタのクラスタメモリ共有設定は、前記第２の実施の形態とほぼ同じである。
【０１１２】
第３の実施形態では、ＣＰＵ（２）１０２のアクセス５７２ｃが、クラスタメモリ２、３で構成された空間４６１に加え、ＨＷＡ（２）１０７用に割り当てられているクラスタメモリ７、８で構成された空間４６４にも設定されている点で、前記第２の実施形態とは異なる。
【０１１３】
これにより、ＣＰＵ（２）１０２のデータとＨＷＡ（２）１０７のソースデータとは、常に共有状態となる。ワークアドレスで画像を加工した後、最終出画データを置くアドレスにＣＰＵ（２）１０２がデータを格納すると、ＨＷＡ（２）１０７は、共有メモリで出画データを共有することができる。
【０１１４】
このように、第３の実施形態の共有メモリシステムによれば、毎回、ＨＷＡ（２）１０７は、主記憶メモリ１５１にアクセスする必要がなくなるため、主記憶メモリ１５１のバンド幅を抑制し、消費電力の支配項である、主記憶メモリ１５１へのアクセス電力を削減することができる。
【０１１５】
（第４の実施形態）
第４の実施形態では、第１の実施形態と異なるラインサイズを備え、処理内容に適切なラインサイズのクラスタ１１１を割り当てることで、前記第１の実施形態よりも、更に性能の改善を図る場合を示す。
【０１１６】
図９は、第４の実施形態における共有メモリシステムの構成を示す図である。前記第１の実施形態と同じ構成要素については同じ符号を用いることで、その説明を省略する。なお、本実施形態では、共有メモリシステムは、共有キャッシュメモリ構成１１０ａを有するものとして説明する。
【０１１７】
複数のマスタのうち、ＣＰＵ（１）１０１が周辺接続デバイスの制御を行い、ＣＰＵ（２）１０２がブラウザの表示処理を行い、ＤＳＰ（２）１０４がソフトウェアによるビデオコーデックを行う場合を想定する。
【０１１８】
また、本実施形態では、ＣＰＵ（１）１０１、ＣＰＵ（２）１０２及びＤＳＰ（２）１０４はそれぞれ１次キャッシュを搭載する。
【０１１９】
ＣＰＵ（１）１０１は、１次キャッシュ１０８ａ、１０８ｂ及びメモリコントローラ１０９を有し、外部機器の制御やＬＳＩのＩＯ制御を行う。１次キャッシュ（命令キャッシュ）１０８ａ、（データキャッシュ）１０８ｂはそれぞれ３２バイトのラインサイズで構成される。
【０１２０】
一方、ＣＰＵ（２）１０２は、ＣＰＵ（１）１０１に比べ、動作周波数も高く、浮動小数点演算等のコプロセッサも搭載した高性能ＣＰＵであり、１次キャッシュ以外に２次キャッシュを搭載する。２次キャッシュ６０８ｃのラインサイズは６４バイトである。
【０１２１】
ＤＳＰ（２）１０４は、高いスループットでビデオのコーデック処理を行えるメディア処理対応のＤＳＰである。ＤＳＰ（２）１０４の内部には、ラインサイズが１２８バイトの１次キャッシュ（命令キャッシュ）６０８ｄ、（データキャッシュ）６０８ｅが搭載されている。
【０１２２】
本実施形態では、プロセッサコア間で共有する共有メモリ１１０には、ラインサイズが１２８バイトのウェイで構成されるクラスタメモリ群６８０と、ラインサイズが２５６バイトのウェイで構成されるクラスタメモリ群６８１と含む複数種類のクラスタメモリ群が混在する。
【０１２３】
一般的に、キャッシュメモリの容量は、ラインサイズとセット数とウェイ数の掛け算で算出される。また、一般的に、キャッシュのメモリ容量が大きいほどキャッシュヒット率が向上し、見かけ上のプロセッサ性能を高めることができる。ただし、キャッシュヒット率については、ソフトウェア構造の依存性が高く、ヒット率の低いプログラムや、比較的ヒット率が高いプログラムであっても、ある一定のメモリ容量を超えると、メモリ容量を増加させてもヒット率が飽和する傾向にあることが知られている。
【０１２４】
また、同じメモリ容量であったとしても、キャッシュメモリのラインサイズが大きい場合、ヒット率が高くなる場合がある。例えば、特に画像等のメディアデータの場合、比較的１つのデータサイズが大きいため、１つのラインサイズが大きいと効率よくキャッシュヒットする場合がある。
【０１２５】
本実施形態では、こういった特性を活かし、アクセス監視機構１１２はアクセスの属性を監視し、例えばＣＰＵ（２）１０２が扱うブラウザ描画データや、ＤＳＰ（２）１０４が共有メモリ１１０にアクセスするフレームデータの場合、大きなラインサイズのクラスタ１１１を優先してマッピングする制御がラインサイズ制御部１１８によって行われる。
【０１２６】
一方、ＣＰＵ（１）１０１の１次データキャッシュに関するミスヒットや、ＣＰＵ（１）１０１、ＣＰＵ（２）１０２の１次命令キャッシュに関するミスヒットのアクセス等が、共有メモリ１１０にアクセスする際、大きなラインサイズで構成されるクラスタ１１１に割り当てられてしまうと、同一ライン上でヒットとミスヒットが混在する場合も多く発生する。この結果、無駄なデータアクセスが増え、共有メモリ１１０のアクセスによる動作電流の増加やプロセッサのレイテンシ低下といった問題の発生が懸念される。
【０１２７】
本実施形態では、このような特性のアクセスはアクセス監視機構１１２によって、小さなウェイのクラスタメモリに優先的に割り当てる制御が行われる。
【０１２８】
第４の実施形態の共有メモリシステムによれば、処理内容に適切なラインサイズのクラスタ１１１を割り当てることで、更に性能の改善を図ることができる。
【０１２９】
なお、少ないマスタでクラスタメモリ１１１を共有する場合、共有メモリのサイズを増やしても、共有したメモリ容量に対してプロセッサ処理性能が飽和傾向にある場合、あるいは単体マスタしかクラスタメモリ１１１にアクセスしない場合、共有メモリシステムを、次のような構成にしても良い。すなわち、一部のクラスタメモリ１１１を、予めどのマスタにも割り当てない（アサインしない）領域に指定し、クロックを抑制する等のクロック制御機能、ＬＳＩに搭載したオンチップスイッチをオフする等の電源遮断機能、メモリ内容を保持したままメモリ電圧を下げる等のリーク電流抑制機能のいずれか１つあるいは２つ以上の機能（電源制御機能）を有する構成とすることができる。このような機能を適用することで、電力性能を向上させることができる。
【０１３０】
（第５の実施形態）
図１０は、第５の実施形態における共有メモリシステムの構成を示す図である。第５の実施形態の共有メモリシステムでは、非対称なマルチプロセッサ搭載のアプリケーションプロセッサＬＳＩ（１）７００（半導体装置）に対し、外部にコンパニオンとして拡張接続されたシステムＬＳＩ（２）７０１が、共有メモリシステムのマスタプロセッサ、つまりＨＷＡ（３）７１１として、プロセッサユニット７１０とともに共有メモリ７１２を共有するシステムが実現される。
【０１３１】
このような構成を有することで、ＬＳＩ（２）７０１のメモリアクセスは、ＬＳＩ（１）７０１の内部で、１つのマスタであるＨＷＡ３（７１１）のメモリアクセスとして扱われる。したがって、ＬＳＩ（１）７００とＬＳＩ（２）７０１間で、コヒーレンスをとる構成とすることができる。また、ＬＳＩ（２）７０１に接続される主記憶メモリ１５１ｂを省くことができる。
【０１３２】
第５の実施形態の共有メモリシステムによれば、それぞれのＬＳＩに設けられていた主記憶メモリ１５１ａ、１５１ｂ（図１０参照）の数を削減し、性能を確保しつつ消費電力を削減することができる。また、電子機器のコストダウンを可能とする。
【０１３３】
なお、今回開示された実施の形態は全ての点で例示であって、制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内での全ての変更が含まれることが意図される。
【産業上の利用可能性】
【０１３４】
本発明は、複数のマスタによってアクセスされる共有メモリを有し、処理時間の短縮及び消費電力の低減が可能なメモリシステム等として有用である。
【符号の説明】
【０１３５】
１０１  ＣＰＵ（１）
１０２  ＣＰＵ（２）
１０３  ＤＳＰ（１）
１０４  ＤＳＰ（２）
１０５  ＧＰＵ
１０６  ＨＷＡ（１）
１０７  ＨＷＡ（２）
１０８ａ  命令キャッシュ
１０８ｂ  データキャッシュ
１０９  メモリコントローラ
１１０  共有メモリ
１１０ａ  共有キャッシュメモリ構成
１１１  クラスタ
１１１ａ  全マスタで共有する空間
１１１ｂ  複数のマスタ間のみで共有する空間
１１１ｃ  単一マスタで占有する空間
１１２  アクセス監視機構
１１３  プライオリティ設定レジスタ
１１４  アクセスポリシー制御機構
１１５  スケジューリング機構
１１６  マージ機構
１１７  タグ切替部
１１８  ラインサイズ制御部
１１９  クラスタメモリ空間選択装置
１２０  外部メモリ制御部
１２１  省電力制御部
１２２  クロック制御部
１２４  キャッシュ制御機構
１３０  バスアクセス信号
１３１  制御情報
１３７  フラグ信号
１３９  動作クロック
１５１  主記憶メモリ
１５１ａ、１５１ｂ  主記憶メモリ
３３１９  インターコネクトバス
３３４０  バス負荷検出部
３３４１  バス負荷情報
３３５０  リプレースウェイ制御部
４５２  ＬＣＤ
４６１  クラスタメモリ２、３で構成された空間
４６２  クラスタメモリ４で構成された空間
４６３  クラスタメモリ５、６で構成された空間
４６４  クラスタメモリ７、８で構成された空間
４７０  コヒーレンシ機能
４７１  ＣＰＵ１のメモリアクセス
４７２ａ、４７２ｂ  ＣＰＵ２のメモリアクセス
４７３ａ  ＤＳＰ１のメモリアクセス
４７４ａ、４７４ｂ  ＤＳＰ２のメモリアクセス
４７５  最終画像データのメモリアクセス
６０８ｃ  ＣＰＵ２の二次キャッシュ
６０８ｄ  ＤＳＰ２の１次命令キャッシュ
６０８ｅ  ＤＳＰ２の１次データキャッシュ
６８０  ラインサイズが１２８バイトのウェイで構成するクラスタメモリ群
６８１  ラインサイズが２５６バイトのウェイで構成するクラスタメモリ群
７００  アプリケーションプロセッサＬＳＩ１
７０１  システムＬＳＩ２
７１０  プロセッサユニット
７１１  ＨＷＡ（３）
７１２  共有メモリ
１０３０  属性
１０４０  マスタ識別属性
１０５０  リード／ライト属性
１０６０  アドレス属性
１０７０  データ／命令属性
１０８０  セキュア属性
１０９０  キャッシュ属性
１０Ａ０  緊急処理属性
１０Ｂ０  転送属性
【図１】
0005485055.tif 000002
【図２】
0005485055.tif 000003
【図３】
0005485055.tif 000004
【図４】
0005485055.tif 000005
【図５】
0005485055.tif 000006
【図６】
0005485055.tif 000007
【図７】
0005485055.tif 000008
【図８】
0005485055.tif 000009
【図９】
0005485055.tif 000010
【図１０】
0005485055.tif 000011
【図１１】
0005485055.tif 000012
【図１２】
0005485055.tif 000013