(57)【要約】【課題】共有メモリの消費電力の浪費を削減できるマルチプロセッサの電力制御方法を提供する。【解決手段】このマルチプロセッサの電力制御方法は、ＣＰＵ３Ａとコプロセッサ５Ａとの共有のメモリデバイス７Ａ（共有メモリ７１）が１つ以上のバンク０〜３を有して構成され、各バンク０〜３の動作モードが個別に消費電力の異なる複数の動作モードのうちの何れかに切り替え可能なマルチプロセッサの電力制御方法であって、ＣＰＵ３Ａにより共有メモリ７１の各バンク０〜３の動作モードが個別に切替制御されることに加えて、コプロセッサ５Ａによっても、各バンク０〜３の動作モードが個別に切替制御される。【選択図】　　　　図１
2004038642.tif 000002
【特許請求の範囲】
【請求項１】
第１のプロセッサと、第２のプロセッサと、前記第１のプロセッサ及び前記第２のプロセッサにより共有され、それぞれの動作モードが個別に消費電力の異なる複数の動作モードのうちの何れかに切り替えられる１つ以上のバンクを有する記憶手段とを備えたマルチプロセッサであって、
前記第１のプロセッサにより前記記憶手段の各バンクの動作モードが個別に切替制御されることに加えて、前記第２のプロセッサによっても前記各バンクの動作モードが個別に切替制御されることを特徴とするマルチプロセッサ。
【請求項２】
前記記憶手段が２つ以上のバンクを有して構成される場合に於いて、前記第１のプロセッサ又は前記第２のプロセッサにより、前記第２のプロセッサの処理に使用されない前記バンクの動作モードが消費電力の低い動作モードに切り替えられることを特徴とする請求項１に記載のマルチプロセッサ。
【請求項３】
前記第２のプロセッサの処理終了の際に、その第２のプロセッサにより、その処理に使用された前記バンクの動作モードが消費電力の低いモードに切り替えられることを特徴とする請求項１又は請求項２に記載のマルチプロセッサ。
【請求項４】
前記記憶手段が２つ以上のバンクを有して構成される場合に於いて、前記第２のプロセッサの処理終了の際に、その第２のプロセッサにより、その処理結果のうちの所定の処理結果の保存に使用された前記バンクの動作モードが、その所定の処理結果を保持できる範囲で消費電力の最少の動作モードに切り替えられ、そのバンク以外の前記バンクの動作モードが、消費電力の最少の動作モードに切り替えられることを特徴とする請求項３に記載のマルチプロセッサ。
【請求項５】
前記第１のプロセッサにより前記記憶手段の各バンクの動作モードが指定され、前記第２のプロセッサにより前記各バンクの動作モードが前記第１のプロセッサにより指定された前記動作モードに切り替えられることを特徴とする請求項１乃至請求項４の何れかに記載のマルチプロセッサ。
【請求項６】
前記第１のプロセッサが前記第２のプロセッサの処理結果の保存に使用された前記バンクにアクセスする際に、前記第１のプロセッサによりそのバンクの動作モードがアクセス速度の速い動作モードに切り替えられることを特徴とする請求項１乃至請求項５の何れかに記載のマルチプロセッサ。
【請求項７】
前記記憶手段は、その各バンクのアクセスされない時間を計時する計時手段を有し、自律的に一定時間アクセスされないバンクの動作モードを消費電力の低い動作モードに切り替えることを特徴とする請求項１乃至請求項６の何れかに記載のマルチプロセッサ。
【請求項８】
前記記憶手段は、その構成部分のうち、前記各バンクを構成する装置部分だけを自ら実装し、前記各バンクの動作モードの切り替えに関わる装置部分、及び、前記第１のプロセッサ及び前記第２のプロセッサと前記各バンクとの間のアクセスの制御に関わる装置部分が前記第２のプロセッサ側に実装されることを特徴とする請求項１乃至請求項７の何れか記載のマルチプロセッサ。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、複数のプロセッサが共有メモリを介してデータ転送を行いながら協調的に動作する所謂マルチプロセッサの電力を制御する技術に関する。
【０００２】
【従来の技術】
半導体製造技術の微細化に伴って、１つのＬＳＩに集積される回路規模は増大し、ＬＳＩの動作電圧は低電圧化する。この傾向は過去２０〜３０年間にわたり成り立ち、今後も成り立つことが予想される。
【０００３】
１つのＬＳＩに集積される回路規模の増大化に伴って、従来別個のＬＳＩとして実現されていたプロセッサ、メモリ、入出力デバイス制御ロジック等が１チップのＬＳＩに実装できる様になる。その結果、従来ボードレベルで実現されていたマルチプロセッサが１チップのＬＳＩで実現できる様になる。近年、その様な１チップのマルチプロセッサが提案されている（例；［１］［２］）。今後は、その様な１チップのマルチプロセッサが幅広く利用されることが予想される。又、その様な１チップのマルチプロセッサでは、プロセッサ間のデータ通信用の共有メモリとして高速動作可能なＳＲＡＭが採用される例が多い。
【０００４】
［１］“ＯＭＡＰ：　Ｅｎａｂｌｉｎｇ＿Ｍｕｌｔｉｍｅｄｉａ　Ａｐｐｌｉｃａｔｉｏｎ　ｉｎ　３Ｇ　Ｗｉｒｅｌｅｓｓ　Ｔｅｒｍｉｎａｌｓ”（ｈｔｔｐ：／ｗｗｗ−ｓ．ｔｉ．ｃｏｍ／ｓｃ／ｐｓｈｅｅｔｓ／ｓｗｐａ００１／ｓｗｐａ００１．ｐｄｆ）
［２］“ＤＳＰ５６６６２　Ｉｎｔｅｇｒａｔｅｄ　Ｄｕａｌ−Ｃｏｒｅ　Ｂａｓｅｂａｎｄ　Ｐｒｏｃｅｓｓｏｒ”ｐｐ２，ｐｐ２４（ｈｔｔｐ：／／ｗｗｗ．ｃａｇ．ｌｃｓ．ｍｉｔ．ｅｄｕ／〜ｃｈｉｎｎａｍａ／ｏｖｅｒｖｉｅｗ．ＰＤＦ）。
【０００５】
他方、ＬＳＩの動作電圧の低電圧化に伴って、従来では半導体（ＣＭＯＳ）デバイスの消費電力は、動作時の負荷の充放電による電力が支配的であったが、今後はスタンバイ時のリーク電流による電力が支配的になることが予想される。リーク電流を削減するためのデバイス技術・回路技術はいくつか提案されている。その代表的なものとして、閾値電圧（Ｖｔｈ）の低いＭＯＳＦＥＴで構成された回路と閾値電圧（Ｖｔｈ）の高いスイッチ（ＭＯＳＦＥＴ）とを直列に接続する技術、所謂ＶＴＣＭＯＳ（Ｖａｒｉａｂｌｅ−Ｔｈｒｅｓｈｏｌｄ　ＣＭＯＳ）がある［３］。これらの技術を用いて半導体デバイスの動作モードを通常動作時は高消費電力モード（高速動作モード）に切り替え、待機時は低消費電力モード（低速動作モード）に切り替えることで消費電力の削減が可能となる。この技術は、ＬＳＩを構成するロジック部、メモリ部等の様々な回路に幅広く適用することが可能である。
【０００６】
［３］特開平６−２３７１６４（日立製作所・内山）。
【０００７】
この様に、近年では、プロセッサ間の共有メモリが例えばＳＲＡＭによって高速動作可能に構成されると共にＶＴＣＭＯＳ等の技術により消費電力が削減された１チップのマルチプロセッサが実現される様になってきている。
【０００８】
【発明が解決しようとする課題】
しかしながら、その様なマルチプロセッサに於いても、その共有メモリ部分のデバイスに於いて依然として以下の様な無駄な電力が消費されているという問題がある。
【０００９】
その問題を図１４のマルチプロセッサの場合で説明する。このマルチプロセッサ１００は、例えば１チップのＬＳＩとして構成され、メイン（主）プロセッサとしてのＣＰＵ３と、サブ（副）プロセッサとしてのコプロセッサ５と、ＣＰＵ３・コプロセッサ５間のデータ通信用の共有メモリを構成するメモリデバイス７と、コプロセッサ５により実行されるプログラムが格納されるＲＯＭ１１と、ＣＰＵ３のメモリアクセス速度を高速化するためのキャッシュ（Ｃａｃｈｅ）９とを備えて主構成される。ＣＰＵ３とコプロセッサ５はバス１３を介してメモリデバイス７と接続される。尚、同一チップ内に更にタイマー、シリアルＩＯ等のモジュールが実装される場合もある。このマルチプロセッサ１００では、ＣＰＵ３がマスター、コプロセッサ５がスレーブとなる非対称なアーキテクチャが採用される。
【００１０】
このマルチプロセッサ１００では、図１５のフローに従って１回のまとまった処理が実行される。即ち、▲１▼ＣＰＵ３は、まず共有メモリ７の動作モードをアクセス速度の速い（即ち消費電力の多い）通常モードに切り替える。そして、▲２▼ＣＰＵ３は、コプロセッサ５が繰返し参照するデータ（係数、定数）を共有メモリ７に転送する。次いで、▲３▼ＣＰＵ３は、コプロセッサ５が実行する１回のまとまった処理でコプロセッサ５が参照する変数をコプロセッサ５に設定すると共にコプロセッサ５を起動させる。この段階までは、コプロセッサ５は待機した状態である。▲４▼コプロセッサ５はその後、所定の処理（演算）を行い、▲５▼その処理結果を共有メモリ７に保存すると共に▲６▼その処理の終了をＣＰＵ３に通知する。そして、▲７▼ＣＰＵ３は、コプロセッサ５からの処理の完了の通知を検出すると、▲８▼その処理結果を共有メモリ７から読み出す。そして、▲９▼ＣＰＵ３は、共有メモリ７から処理結果を読み出すと、共有メモリ７の動作モードを消費電力の低い低速モードに切り替える。
【００１１】
この様なマルチプロセッサ１００では、コプロセッサ５の処理結果が共有メモリ７に保存されてからＣＰＵ３により読み出されるまでの間、共有メモリは、コプロセッサ５及びＣＰＵ３によりアクセスされないにも関わらず、アクセス速度の速い（即ち消費電力の多い）通常モードにされたままとなり、消費電力が無駄に浪費されている（これを「共有メモリの消費電力の時間的浪費」と称す）。これは、従来のこの種のマルチプロセッサ１００では、共有メモリ７の動作モードの切り替えはＣＰＵ３の制御のみにより行われており、この制御の仕組みでは、コプロセッサ５の処理の進行に適切に合わせて共有メモリ７の動作モードを切り替えることができないことに起因する。
【００１２】
又、この様なマルチプロセッサ１００では、共有メモリ７に保存されたコプロセッサ５の処理結果のうちにＣＰＵ３により読み出されない不要なデータが含まれている場合は、その不要なデータもＣＰＵ３により読み出されるデータと共に通常モードで保存され、その分の消費電力が無駄に浪費されている（これも「共有メモリの消費電力の時間的浪費」と称す）。
【００１３】
又、この様なマルチプロセッサ１００が汎用製品として製造された場合、その共有メモリ７の記憶容量は、通常どんなアルゴリズムやデータがコプロセッサ５で処理されても容量不足とならないように大きめに設計される。そのため、共有メモリ７の記憶容量の大部分が使用されずに空きとなる場合がある。この場合、その空き容量部分も使用中の容量部分と共に通常モードにされるため、消費電力が無駄に浪費される（これを「共有メモリの消費電力の空間的浪費」と称す）。これは、共有メモリ７の動作モードが部分的に異なる動作モードにできないことに起因する。
【００１４】
ここで述べた、共有メモリ７の消費電力の時間的浪費や空間的浪費は上記構成のマルチプロセッサ１００に限らず、多くのマルチプロセッサに本質的に内在する問題である。
【００１５】
そこで、この発明の課題は、上記の様な共有メモリの消費電力の浪費を削減できるマルチプロセッサを提供することにある。
【００１６】
【課題を解決するための手段】
上記課題を解決するためには、請求項１に記載のマルチプロセッサは、第１のプロセッサと、第２のプロセッサと、前記第１のプロセッサ及び前記第２のプロセッサにより共有され、それぞれの動作モードが個別に消費電力の異なる複数の動作モードのうちの何れかに切り替えられる１つ以上のバンクを有する記憶手段とを備えたマルチプロセッサであって、前記第１のプロセッサにより前記記憶手段の各バンクの動作モードが個別に切替制御されることに加えて、前記第２のプロセッサによっても前記各バンクの動作モードが個別に切替制御されるものである。
【００１７】
請求項２に記載のマルチプロセッサは、前記記憶手段が２つ以上のバンクを有して構成される場合に於いて、前記第１のプロセッサ又は前記第２のプロセッサにより、前記第２のプロセッサの処理に使用されない前記バンクの動作モードが消費電力の低い動作モードに切り替えられるものである。
【００１８】
請求項３に記載のマルチプロセッサは、前記第２のプロセッサの処理終了の際に、その第２のプロセッサにより、その処理に使用された前記バンクの動作モードが消費電力の低いモードに切り替えられるものである。
【００１９】
請求項４に記載のマルチプロセッサは、前記記憶手段が２つ以上のバンクを有して構成される場合に於いて、前記第２のプロセッサの処理終了の際に、その第２のプロセッサにより、その処理結果のうちの所定の処理結果の保存に使用された前記バンクの動作モードが、その所定の処理結果を保持できる範囲で消費電力の最少の動作モードに切り替えられ、そのバンク以外の前記バンクの動作モードが、消費電力の最少の動作モードに切り替えられるものである。
【００２０】
請求項５に記載のマルチプロセッサは、前記第１のプロセッサにより前記記憶手段の各バンクの動作モードが指定され、前記第２のプロセッサにより前記各バンクの動作モードが前記第１のプロセッサにより指定された前記動作モードに切り替えられるものである。
【００２１】
請求項６に記載のマルチプロセッサは、前記第１のプロセッサが前記第２のプロセッサの処理結果の保存に使用された前記バンクにアクセスする際に、前記第１のプロセッサによりそのバンクの動作モードがアクセス速度の速い動作モードに切り替えられるものである。
【００２２】
請求項７に記載のマルチプロセッサは、前記記憶手段は、その各バンクのアクセスされない時間を計時する計時手段を有し、自律的に一定時間アクセスされないバンクの動作モードを消費電力の低い動作モードに切り替えるものである。
【００２３】
請求項８に記載のマルチプロセッサは、前記記憶手段は、その構成部分のうち、前記各バンクを構成する装置部分だけを自ら実装し、前記各バンクの動作モードの切り替えに関わる装置部分、及び、前記第１のプロセッサ及び前記第２のプロセッサと前記各バンクとの間のアクセスの制御に関わる装置部分が前記第２のプロセッサ側に実装されるものである。
【００２４】
【発明の実施の形態】
＜実施の形態１＞
図１は、本発明の実施の形態１に係るマルチプロセッサの共有メモリを構成するメモリデバイスの構成概略図である。
【００２５】
この実施の形態に係るマルチプロセッサ１Ａは、従来同様、図１４に示す様に、例えば１チップのＬＳＩとして構成され、メインプロセッサ（第１のプロセッサ）としてのＣＰＵ３Ａと、サブプロセッサ（第２のプロセッサ）としてのコプロセッサ５Ａと、ＣＰＵ３Ａ・コプロセッサ５Ａ間のデータ通信用の共有メモリを構成するメモリデバイス（記憶手段）７Ａと、コプロセッサ５Ａにより実行されるプログラムが保存されたＲＯＭ１１と、ＣＰＵ３Ａのメモリアクセス速度を高速化するためのキャッシュ（Ｃａｃｈｅ）９とを備えて主構成される。このマルチプロセッサ１Ａでも、従来同様、ＣＰＵ３Ａがマスター、コプロセッサ５Ａがスレーブとなる非対称なアーキテクチャが採用される。
【００２６】
ここで、メインプロセッサとは、サブプロセッサが実行すべき処理をサブプロセッサに指示するプロセッサである。サブプロセッサとは、その指示された処理を実行し完了したときにメインプロセッサに完了を通知し又はその指示された処理を完了できなかったときにはメインプロセッサに未完了を通知するプロセッサである。サブプロセッサは基本的にはメインプロセッサに対し処理を実行するように指示しない。
【００２７】
メモリデバイス７Ａは、図１に示す様に、上記の共有メモリ７１と、ＩＦレジスタ７３と、スイッチ部７５と、動作モード制御部７７とを備える。
【００２８】
共有メモリ７１は、例えばＳＲＡＭにより構成される。この共有メモリ７１は、それぞれ個別にアクセス権を持つプロセッサ（ＣＰＵ３Ａ又はコプロセッサ５Ａ）の設定（以後「アクセス権の設定」と称す）ができ、且つそれぞれ個別に異なる動作モードの設定ができる複数のバンクによって構成される。ここでは、共有メモリ７１は、例えばバンク０〜バンク３の４バンク（１Ｋｂｙｔｅ　ｘ　４）から構成される。
【００２９】
この共有メモリ７１は、図２に示す様に、消費電力の異なる複数の動作モード（ここでは通常モード、低速モード、休止モード）を持ち、そのバンク毎に個別に上記複数の動作モードのうちの何れかの動作モードで動作する。これにより、共有メモリ７１はそのバンク毎に異なる動作モードで動作可能となる。尚、各バンク０〜３の動作モードは、動作モード制御部７７の制御により切替制御される（即ち他の動作モードに遷移される）。
【００３０】
図３にバンク０〜３の各動作モードの特徴を示す。通常モードでは、そのバンク０〜３はデータを保持でき、そのバンク０〜３へのアクセス速度は高速となり、そのバンク０〜３の消費電力は多くなる。低速モードでは、そのバンク０〜３はデータを保持でき、そのバンク０〜３へのアクセス速度は低速となり、そのバンク０〜３の消費電力は少なくなる。休止モードでは、そのバンク０〜３はデータを消失し、そのバンク０〜３へのアクセスはできず、そのバンク０〜３の消費電力は極少になる。
【００３１】
この共有メモリ７１は、例えばＶＴＣＭＯＳの技術が適用されて構成されており、通常モード又は低速モードの切り替えは例えば閾値電圧Ｖｔｈの降下又は上昇変化により実現され、休止モードは例えば電源供給の停止により実現される。尚、ＶＴＣＭＯＳ以外の技術により通常モード、低速モード及び休止モードを実現しても構わない。
【００３２】
尚、各バンク０〜３間の動作モードの遷移には、所定の時間が必要なので、低速モードのバンクヘのアクセスは、遷移のオーバヘッドを考慮し、通常モードに一旦遷移してからアクセスするべきかの考慮が必要となる。
【００３３】
Ｉ／Ｆレジスタ（ここではＭＥＭＣＯＮＴとも呼ぶ）７３は、共有メモリ７１の各バンク０〜３の上記アクセス権の設定及び上記動作モードの設定を受け付ける回路であり、図４に示すビットフィールドＢＦにより構成される。このビットフィールドＢＦは、図４に示す様に、それぞれ１ビット長のフィールドで構成されたフィールドＡ０，Ａ１，Ａ２，Ａ３と、それぞれ２ビット長のフィールドで構成されたフィールドＭ０，Ｍ１，Ｍ２，Ｍ３とを備える。フィールドＡ０（Ａ１，Ａ２，Ａ３）は、バンク０（バンク１，バンク２，バンク３）の上記アクセス権の設定を受け付ける部分である（ここでは０がＣＰＵ３Ａ、１がコプロセッサ５Ａである）。フィールドＭ０（Ｍ１，Ｍ２，Ｍ３）は、バンク０（バンク１，バンク２，バンク３）の上記動作モードの設定を受け付ける部分である（ここではｂ”００が通常モード，ｂ’１０が低速モード，ｂ’１１が休止モードである）。
【００３４】
尚、Ｉ／Ｆレジスタ７３への各バンク０〜３の上記アクセス権の設定及び上記動作モードの設定は、ここではＣＰＵ３Ａ又はコプロセッサ５Ａにより行われる。
【００３５】
動作モード制御部７７は、Ｉ／Ｆレジスタ７３に設定された各バンク０〜３の動作モードの設定に従って、共有メモリ７１の各バンク０〜３の動作を個別に動作させ、その各バンク０〜３の動作モードの設定の変更に応じて、各バンク０〜３の動作を個別に切替制御する。
【００３６】
スイッチ部７５は、Ｉ／Ｆレジスタ７３に設定された各バンク０〜３のアクセス権の設定に従って、ＣＰＵ３Ａ及びコプロセッサ５Ａがアクセスの許可されたバンク０〜３に対してアクセス（読み書き）できる様に、ＣＰＵ３Ａ及びコプロセッサ５Ａと各バンク０〜３との間のアクセス経路の動的な切り替えを行う。
【００３７】
図５は、このマルチプロセッサ１ＡのメモリマップＭＭの一例図である。図５の太線領域が上記の共有メモリ７１に対応する。ここでは、共有メモリ７１は、ＣＰＵ３Ａ側のアドレスでは、ＣＰＵ３Ａの持つリニアなメモリ空間の０ｘ８０００〜〜０ｘ８ｆｆｆ番地にマッピングされ、コプロセッサ５Ａ側のアドレスでは、０ｘ００００〜０ｘ０ｆｆｆ番地にマッピングされる。
【００３８】
又、図５のＨＡＬＴ＿ＣＮＴ７９は、コプロセッサ５Ａの動作の参照と制御に用いられるレジスタである。即ち、例えばＣＰＵ３ＡからＨＡＬＴ＿ＣＮＴ７９への書き込みに対しては、１の書き込みによりコプロセッサ５Ａを起動させ、０の書き込みによりコプロセッサ５Ａを強制停止させる。又、例えばＣＰＵ３ＡからＨＡＬＴ＿ＣＮＴ７９の読み出しに対しては、１の読み出し時はコプロセッサ５Ａは作動中（処理中）を意味し、０の読み出し時はコプロセッサ５Ａは停止中（処理終了）を意味する。
【００３９】
又、図５のＰＣ＿ＣＮＴ７１１は、コプロセッサ５Ａの実行開始ＰＣ（プログラムカウンタ）が設定されるレジスタであり、コプロセッサ５Ａの停止時には次に実行されるＰＣ値を読み出すことができる。
【００４０】
又、図５のＭＥＭＣＯＮＴ７３は上記のＩ／Ｆレジスタ７３である。
【００４１】
ＣＰＵ３Ａは、コプロセッサ５Ａと並列（同時）に演算処理可能に搭載される。これにより、ＣＰＵ３Ａは、コプロセッサ５Ａの演算処理と併行して（即ちコプロセッサ５Ａの演算処理の終了を待つこと無く）別の処理を実行できる。又、ＣＰＵ３Ａは、ＨＡＬＴ＿ＣＮＴ７９の設定を変更することでコプロセッサ５Ａの起動／停止を切替制御する。又、ＣＰＵ３Ａは、ＰＣ＿ＣＮＴ７１１にＰＣ値を設定することでコプロセッサ５Ａに実行させる演算処理の内容を指定する。又、ＣＰＵ３Ａは、ＭＥＭＣＯＮＴ７３の設定を変更することで各バンク０〜３のアクセス権及び動作モードを切替制御する。
【００４２】
コプロセッサ５Ａは、ＣＰＵ３Ａに対するメモリマップデバイスとして動作し、上記の通り、上記２つの制御レジスタ（ＨＡＬＴ＿ＣＮＴ７９及びＰＣ＿ＣＮＴ７１１）を介してＣＰＵ３Ａにより制御される。又、コプロセッサ５Ａは、その実行中の演算処理の終了時に、▲１▼ＨＡＬＴ＿ＣＮＴ７９に０を設定することでその処理終了をＣＰＵ３Ａに通知すると共に、▲２▼ＭＥＭＣＯＮＴ７３の設定（各バンク０〜３のアクセス権の設定及び動作モードの設定）を変更することで、その処理で使用した各バンク０〜３のアクセス権を例えばＣＰＵ３Ａに戻し、その処理結果の保存に使用したバンク０〜３の動作モードを例えば低速モードに切り替え、その処理結果の保存に使用しなかったバンク０〜３の動作モードを例えば休止モードに切り替える。
【００４３】
尚、ここでは、コプロセッサ５Ａは、ＨＡＬＴ＿ＣＮＴ７９に０を設定するための命令であってその命令の実行により１つ指定できるオペランドを所定のレジスタ（ここではＭＥＭＣＯＮＴ７３に設定されている）に設定できるＳＬＡＶＥＭ命令を実行することで、上記▲１▼▲２▼の処理動作を実行する。即ち、そのＳＬＡＶＥＭ命令で指定されるオペランドとして上記▲２▼の処理動作に必要な各バンク０〜３のアクセス権の設定及び動作モードの設定が保存されているアドレスを指定しておく（ここでは、そのアクセス権の設定及び動作モードの設定はＲＯＭ１１に設定されているとする）。そして、コプロセッサ５Ａが、その演算処理の終了時に、上記ＳＬＡＶＥＭ命令を実行することで、ＨＡＬＴ＿ＣＮＴ７９に０が設定されて上記▲１▼の処理動作が実行されると共に、ＭＥＭＣＯＮＴ７３に上記オペランドの値（上記▲２▼の処理動作に必要な各バンク０〜３のアドレス権の設定及び動作モードの設定）が設定されて上記▲２▼の処理動作が実行される。
【００４４】
尚、上記ＳＬＡＶＥＭ命令は、マスター・スレーブ方式のアーキテクチャを採用するマルチプロセッサに標準的に搭載されている命令機能である。
【００４５】
次に、図６及び図７を用いて上記マルチプロセッサ１Ａの動作を説明する。図６はマルチプロセッサ１Ａの作動時のＣＰＵ３Ａの動作を説明するフローチャートであり、図７はマルチプロセッサ１Ａの作動時のコプロセッサ５Ａの動作を説明するフローチャートである。ここでは、コプロセッサ５Ａにより一例として２０４８点のＦＦＴの係数を演算させ、ＣＰＵ３Ａによりその上位１２８点の係数が読み出される場合で説明する。
【００４６】
図６のステップＳ１で、ＣＰＵ３Ａは、ＭＥＭＣＯＮＴ７３に例えば０ｘ００３３を設定することで各バンク０〜３のアクセス権と動作モードとを例えば表１の様に設定する。
【００４７】
【表１】
2004038642.tif 000003
【００４８】
即ち、ＦＦＴの演算処理で使用されるデータを格納するのに使用するバンク０及びバンク１の動作モードをアクセス速度の速い通常モードに設定し、それらバンク０及びバンク１のアクセス権をＣＰＵ３Ａに設定する。他方、ＦＦＴの演算処理で使用されないバンク２及びバンク３の動作モードは消費電力の極少の停止モードに設定し、それらバンク２及びバンク３のアクセス権は例えばＣＰＵ３Ａに設定する。ＦＦＴの処理で使用されないバンク２及びバンク３の動作モードが例えば休止モードに設定されることで共有メモリ７１の消費電力の空間的浪費が削減される。
【００４９】
そして、ステップＳ２で、ＣＰＵ３Ａは、バンク０及びバンク１にＦＦＴの演算処理に使用される入力データを転送して格納する。そして、ステップＳ３で、ＣＰＵ３Ａは、ＭＥＭＣＯＮＴ７３に例えば０ｘ８８３３を設定することで各バンク０〜３のアクセス権と動作モードを例えば表２の様に設定する。即ち、バンク０及びバンク１に転送された入力データがコプロセッサ５Ａにより読み出せる様にバンク０とバンク１のアクセス権をＣＰＵ３Ａからコプロセッサ５Ａに変更する。
【００５０】
【表２】
2004038642.tif 000004
【００５１】
そして、ステップＳ４で、ＣＰＵ３Ａは、ＰＣ＿ＣＮＴ７１１にコプロセッサ５ＡのＲＯＭ１１（命令メモリ）に保存されているＦＦＴ関数の先頭アドレスを設定すると共に、ＨＡＬＴ＿ＣＮＴ７９に１を設定してコプロセッサ５Ａを起動させ、コプロセッサ５ＡにＦＦＴの演算処理を実行させる。
【００５２】
そして、ステップＳ５で、ＣＰＵ３Ａは、コプロセッサ５Ａの処理が終了するまで、別の処理を実行する。別の処理としては例えば単にＣＰＵ３Ａ自身の低電力モードへの遷移の為の処理動作が含まれる。そして、ＣＰＵ３Ａは、ステップＳ５の別の処理が終了すると、ステップＳ６に進み、ＨＡＬＴ＿ＣＮＴ７９をチェックする。そして、ＣＰＵ３Ａは、ＨＡＬＴ＿ＣＮＴ７９が１の場合（即ちコプロセッサ５ＡがＦＦＴの演算処理を終了していない場合）は、ステップＳ５に戻って他の別の処理を実行し、ＨＡＬＴ＿ＣＮＴ７９が０の場合（即ちコプロセッサ５ＡがＦＦＴの演算処理を終了している場合）は、ステップＳ７に進む。
【００５３】
他方、図６のステップＳ４でＣＰＵ３Ａにより起動されたコプロセッサ５Ａは、図７のステップＴ１でＦＦＴの演算処理を実行し、その演算処理を終了すると、その演算処理の結果（２０４８点のＦＦＴの係数）をバンク０及びバンク１に保存してステップＴ２に進む。そして、ステップＴ２で、コプロセッサ５Ａは、ＳＬＡＶＥＭ命令を実行することで、ＨＡＬＴ＿ＣＮＴ７９に０を設定してその演算処理の終了をＣＰＵ３Ａに通知すると共に、例えばＲＯＭ１１に保存されたオペランドの値（ここでは０ｘ２３３３）をＭＥＭＣＯＮＴ７３に設定して各バンク０〜３のアクセス権と動作モードとを例えば表３の様に設定する。
【００５４】
【表３】
2004038642.tif 000005
【００５５】
即ち、コプロセッサ５Ａの演算処理の結果（２０４８点のＦＦＴの係数）の保存に使用されたバンク０及びバンク１のうち、ＣＰＵ３Ａにより読み出される上位１２８点の係数の保存に使用されたバンク０の動作モードを低速モードに設定し、その上位１２８点の係数がＣＰＵ３Ａ側から読み出せる様に、そのバンク０のアクセス権をＣＰＵ３Ａに戻す。他方、ＣＰＵ３Ａにより読み出される上位１２８点の係数が保存されなかったバンク１の動作モードは休止モードに設定され、そのバンク１のアクセス権もＣＰＵ３Ａに戻される。これによりコプロセッサ５Ａの演算処理の結果のうちのＣＰＵ３Ａにより読み出されるものが最少限の消費電力で共有メモリ７１に保存される。これにより共有メモリ７１の消費電力の時間的浪費が削減される。
【００５６】
ステップＳ７では、ＣＰＵ３Ａは、ＭＥＭＣＯＮＴ７３に例えば０ｘ０３３３を設定することで各バンク０〜３のアクセス権と動作モードとを例えば表４の様に設定する。即ち、バンク０の動作モードをアクセス速度の速い通常モードに切り替える。
【００５７】
【表４】
2004038642.tif 000006
【００５８】
そして、ステップＳ８で、ＣＰＵ３Ａは、バンク０からコプロセッサ５Ａの演算処理の結果（上位１２８点のＦＦＴの係数）を読み出す。そして、ＣＰＵ３Ａは、その読み出し後、バンク０の動作モードをＭＥＭＣＯＮＴ７３の設定を変更して例えば低速モード又は休止モードに切り替える。
【００５９】
以上の様に構成されたマルチプロセッサ１Ａによれば、ＣＰＵ３Ａにより各バンク０〜３の動作モードが個別に切替制御されることに加えて、コプロセッサ５Ａによっても各バンク０〜３の動作モードが個別に切り替えられるため、コプロセッサ５Ａの処理の進行に適切に合わせて各バンク０〜３の動作モードを個別に切替制御でき、従って、ＣＰＵ３Ａの処理の進行状況だけを考慮する場合よりも、より緻密に共有メモリ７１の消費電力を制御できて消費電力を削減できる。
【００６０】
又、ＣＰＵ３Ａによりコプロセッサ５Ａの演算処理に使用されないバンク２及びバンク３の動作モードが消費電力の少ない動作モード（休止モード）に切り替えられるため（ステップＳ１）、その使用されないバンク２及びバンク３で浪費される消費電力を削減でき、共有メモリ７１の消費電力の空間的浪費を削減できる。
【００６１】
又、コプロセッサ５Ａの処理終了の際（ステップＴ２）に、そのコプロセッサ５Ａにより、その処理に使用されたバンク０及びバンク１の動作モードが消費電力の低い動作モード（低速モード又は休止モード）に切り替えられるため、その処理結果がバンク０及びバンク１に保存されてからＣＰＵ３Ａにより読み出されるまでの間の従来無駄に消費されていた共有メモリ７１の消費電力の時間的浪費を削減できる。特に、その際、コプロセッサ５Ａにより、その処理結果のうちの所定の処理結果（ＣＰＵ３Ａにより読み出されるもの）の保存に使用されたバンク０の動作モードが、その所定の処理結果を保持できる範囲で消費電力の最少の動作モード（低速モード）に切り替えられ、そのバンク０以外のバンク１の動作モードが、消費電力の最少の動作モード（休止モード）に切り替えられるため、コプロセッサ５Ａの演算処理の結果のうちの所定の処理結果を最少限の消費電力で共有メモリ７１に保存でき、これにより共有メモリ７１の消費電力の時間的浪費を大幅に削減できる。
【００６２】
又、ＣＰＵ３Ａがコプロセッサ５Ａの演算処理と併行して別の処理を実行できる様に構成されているので、マルチプロセッサ１Ａ全体の処理の効率化が図れる。特に、ＣＰＵ３Ａが別の処理として自身の低電力モードへの遷移を実行する場合は、コプロセッサ５Ａの演算処理の間のＣＰＵ３Ａの待機電力の削減が図れる。
【００６３】
又、図４の様に、各バンク０〜３のアクセス権の設定及び動作モードの設定を受け付けるビットフィールＢＦを同一のレジスタで構成しているため、一度の処理ステップで各バンク０〜３のアクセス権の設定及び動作モードの設定を行えて、処理ステップ数を削減できる。
【００６４】
又、例えばステップＳ８でＣＰＵ３Ａがコプロセッサ５Ａの処理結果の保存に使用された例えばバンク０からコプロセッサ５Ａの演算処理の結果を読み出す際（アクセスする際）に、ＣＰＵ３Ａによりそのバンク０の動作モードがアクセス速度の速い動作モード（通常モード）に切り替えられるため、そのバンク０に保存されたコプロセッサ５Ａの処理結果のデータ量が多くても速やかに読み出せる。
【００６５】
尚、この実施の形態では、ステップＳ８でＣＰＵ３Ａにより例えばバンク０からコプロセッサ５Ａの処理結果が読み出される際に、ステップＳ７でＣＰＵ３Ａによりそのバンク０の動作モードがアクセス速度の速い通常モードに切り替えられる場合で説明したが、ＣＰＵ３Ａにより読み出されるコプロセッサ５Ａの処理結果のデータ量が少ない場合はステップＳ７を省略し、バンク０の動作モードを低速モードにしたままで、ＣＰＵ３Ａによりバンク０からコプロセッサ５Ａの処理結果が読み出される様にしても構わない。
【００６６】
尚、この実施の形態では、ステップＳ１でＣＰＵ３Ａによりコプロセッサ５Ａの演算処理に使用されない例えばバンク２及びバンク３の動作モードが消費電力の極少の動作モード（休止モード）に切り替えられる場合で説明したが、コプロセッサ５Ａにより、例えばその起動時又はその処理開始時に、その演算処理に使用されない例えばバンク２及びバンク３の動作モードが消費電力の極少の動作モード（休止モード）に切り替えられる様にしても構わない。
【００６７】
尚、この実施の形態では、共有メモリ７１が複数のバンク０〜３により構成される場合で説明したが、１つのバンクにより構成される様にしても構わない。その場合は、この実施の形態の効果のうち、共有メモリ７１が複数のバンク０〜３により構成されることに起因する効果以外の効果だけを得ることになる。
【００６８】
＜実施の形態２＞
この実施の形態２に係るマルチプロセッサ１Ｂは、上記実施の形態１に係るマルチプロセッサ１Ａに於いて、コプロセッサ５Ａにより切替制御される各バンク０〜３のアクセス権及び動作モードの内容がＣＰＵ３Ａ側から設定（指定）される様にしたものである。
【００６９】
この実施の形態に係るマルチプロセッサ１Ｂは、図１及び図１４に示す様に、上記実施の形態１に係るマルチプロセッサ１Ａと同様、ＣＰＵ３Ｂ、コプロセッサ５Ｂ、ＣＰＵ３Ｂ・コプロセッサ５Ｂ間の共有メモリ７１を構成するメモリデバイス７Ａ、コプロセッサ５Ｂにより実行されるプログラムが保存されたＲＯＭ１１と、ＣＰＵ３Ｂのメモリアクセス速度を高速化するためのキャッシュ（Ｃａｃｈｅ）９とを備えて主構成される。以下、マルチプロセッサ１Ｂの構成要素のうちマルチプロセッサ１Ａの構成要素と同一のものは同一符号を付してその説明を省略する。
【００７０】
この実施の形態のコプロセッサ５Ｂは、上記実施の形態１のコプロセッサ５Ａと比べて、その実行中の演算処理の終了の際に、オペランドの指定ができるＳＬＡＶＥＭ命令を実行する代わりに、オペランドの指定ができないＳＬＡＶＥ命令を実行することで、ＨＡＬＴ＿ＣＮＴ７９に０を設定する点が異なる以外は同様の処理動作が設定される。尚、このＳＬＡＶＥ命令も、ＳＬＡＶＥＭ命令と同様、ＨＡＬＴ＿ＣＮＴ７９に０を設定するための命令であってマスター・スレーブ方式のアーキテクチャを採用するマルチプロセッサに標準的に搭載されている命令機能である。
【００７１】
この実施の形態に係るマルチプロセッサ１ＢのメモリマップＭＭは、図８に示す様に、上記実施の形態１のマルチプロセッサ１ＡのメモリマップＭＭ（図５）と比べて、コプロセッサ５Ｂの制御用の制御レジスタとして更にＰＯＷＥＲ＿ＣＮＴ７１３が追加されている点が異なる以外は同様に構成される。このＰＯＷＥＲ＿ＣＮＴ７１３は、ＣＰＵ３Ｂにより設定（指定）される各バンク０〜３のアクセス権及び動作モードの設定が設定されるレジスタである。このＰＯＷＥＲ＿ＣＮＴ７１３は、コプロセッサ５Ｂにより上記ＳＬＡＶＥ命令が実行されることに起因して、そのＰＯＷＥＲ＿ＣＮＴ７１３に設定された各バンク０〜３のアクセス権の設定及び動作モードの設定をＭＥＭＣＯＮＴ７３に設定入力する。これにより、各バンク０〜３のアクセス権及び動作モードがＰＯＷＥＲ＿ＣＮＴ７１３に設定された各バンク０〜３のアクセス権の設定及び動作モードの設定に切り替えられる。
【００７２】
次に、図９及び図１０を用いて上記マルチプロセッサ１Ｂの動作を説明する。図９はマルチプロセッサ１Ｂの作動時のＣＰＵ３Ｂの動作を説明するフローチャートであり、図１０はマルチプロセッサ１Ｂの作動時のコプロセッサ５Ｂの動作を説明するフローチャートである。ここでは、コプロセッサ５Ｂにより２０４８点のＦＦＴの係数を演算させ、ＣＰＵ３Ｂによりその全ての係数（２０４８点のＦＦＴの係数）が読み出される場合で説明する。
【００７３】
この実施の形態のＣＰＵ３Ｂの処理動作は、図９に示す様に、上記実施の形態１のＣＰＵ３Ａの処理動作と比べて、ステップＳ３の処理後に、ステップＳ３−２でＰＯＷＥＲ＿ＣＮＴ７１３に例えば０ｘ２２３３を設定してからステップＳ４に進む点が異なる以外は同様の処理動作が設定される。ステップＳ３−２でのＰＯＷＥＲ＿ＣＮＴ７１３への例えば０ｘ２２３３の設定により、後述のコプロセッサ５Ｂの処理動作のステップＴ２で、コプロセッサ５Ｂにより切替制御される各バンク０〜３のアクセス権及び動作モードの内容が例えば表５の様に設定される。
【００７４】
【表５】
2004038642.tif 000007
【００７５】
尚、この表５の設定は、ここでの動作説明の例では、コプロセッサ５Ｂにより演算される２０４８点のＦＦＴの係数の全てがＣＰＵ３Ｂにより読み出される例であるため、コプロセッサ５Ｂの演算処理の結果（２０４８点のＦＦＴの係数）の保存に使用されるバンク０及びバンク１のうち、ＣＰＵ３Ｂにより読み出される全２０４８点の係数の保存に使用されるバンク０及びバンク１の双方の動作モードを低速モードに設定し、その全てのＦＦＴの係数がＣＰＵ３Ｂ側から読み出せる様に、バンク０及びバンク１の双方のアクセス権がＣＰＵ３Ｂに戻される様に設定されたものである。尚、他のバンク２及びバンク３の動作モードは、コプロセッサ５Ｂの演算処理で使用されないので消費電力の最少の休止モードに設定されたままであり、それらバンク２及びバンク３のアクセス権も例えばＣＰＵ３Ｂ側に設定されたままである。
【００７６】
他方、この実施の形態のプロセッサ５Ｂの処理動作は、図１０に示す様に、上記実施の形態１のコプロセッサ５Ａの処理動作と比べて、ステップＴ２でオペランドの指定ができないＳＬＡＶＥ命令を実行することでＨＡＬＴ＿ＣＮＴ７９に０を設定する点が異なる以外は同様の処理動作が設定される。即ち、ステップＴ２でのコプロセッサ５ＢによるＳＬＡＶＥ命令の実行により、ＨＡＬＴ＿ＣＮＴ７９に０が設定されてコプロセッサ５Ｂの演算処理の終了がＣＰＵ３Ｂに通知されると共に、ＰＯＷＥＲ＿ＣＮＴ７１３に設定されていた上記０ｘ２２３３の設定がＭＥＭＣＯＮＴ７３に設定入力されて各バンク０〜３のアクセス権及び動作モードが表５の様に切り替えられる点が異なる以外は同様の処理動作が行われる。
【００７７】
尚、この実施の形態の動作説明では、ＣＰＵ３Ｂにより読み出されるコプロセッサ５Ｂの演算処理の結果はバンク０及びバンク１に保存される。その為、この実施の形態でのステップＳ７では、ＣＰＵ３Ｂは、バンク０及びバンク１の双方の動作モードを高速読み出しの可能な通常モードに切り替えるべくＭＥＭＣＯＮＴ７３に０ｘ００３３（表１の設定）を設定している点で上記実施の形態１でのステップＳ７の場合と若干相異していることに留意しておく。
【００７８】
以上の様に構成されたマルチプロセッサ１Ｂによれば、コプロセッサ５Ｂにより切替制御される各バンク０〜３のアクセス権及び動作モードの内容をＣＰＵ３Ｂ側から設定（指定）できるため、▲１▼ＣＰＵ３Ｂの処理内容（ＣＰＵ３Ｂにより共有メモリ７１から読み出されるコプロセッサ５Ｂの演算処理の結果の数）の変更に応じてコプロセッサ５Ｂにより切替制御される各バンク０〜３の動作モードの内容を変更する場合に、ＣＰＵ３Ｂ側の設定変更だけで、ＣＰＵ３Ｂの処理内容の変更と共にコプロセッサ５Ｂにより切替制御される各バンク０〜３のアクセス権及び動作モードの内容の変更ができて、設定変更が容易となり、又、▲２▼コプロセッサ５Ｂ側の各バンク０〜３のアクセス権の設定及び動作モードの設定に関わる部分のソフトウエアのアルゴリズムを省略でき、コプロセッサ５Ｂの実行するソフトウエアのアルゴリズムの簡素化及びソフトウエアの実行サイクルの削減が図れる。
【００７９】
＜実施の形態３＞
この実施の形態３に係るマルチプロセッサ１Ｃは、上記実施の形態１のマルチプロセッサ１Ａに於いて、共有メモリ７１の各バンク０〜３に一定時間アクセスが無い場合に、そのアクセスの無いバンク０〜３の動作モードがＣＰＵ３Ａ及びコプロセッサ５Ａに切替制御されなくても自律的（自動的）にメモリデバイス７Ａによって消費電力の少ない例えば低速モードに切り替えられる様にしたものである。
【００８０】
即ち、この実施の形態に係るマルチプロセッサ１Ｃは、図１４に示す様に、上記実施の形態１に係るマルチプロセッサ１Ａと同様、ＣＰＵ３Ａ、コプロセッサ５Ａ、メモリデバイス７Ｃ、ＲＯＭ１１と、キャッシュ（Ｃａｃｈｅ）９とを備えて主構成される。以下、マルチプロセッサ１Ｃの構成要素のうちマルチプロセッサ１Ａの構成要素と同一のものは同一符号を付してその説明を省略する。
【００８１】
又、この実施の形態のメモリデバイス７Ｃは、図１１に示す様に、上記実施の形態１のメモリデバイス７Ａ（図１）と比べて、更に各バンク０〜３のアクセスされない時間を計時するタイマ部（計時手段）７１５を備える点と、動作モード制御部７７Ｃの動作が後述の様に変更される点が異なる以外は同様に構成される。
【００８２】
又、この実施の形態に係るマルチプロセッサ１ＣのメモリマップＭＭは、図１２に示す様に、上記実施の形態１に係るマルチプロセッサ１ＡのメモリマップＭＭ（図５）と比べて、更にＴＩＭＥＲ＿ＣＯＮＴ７１７を有する点が異なる以外は同様に構成される。このＴＩＭＥＲ＿ＣＯＮＴ７１７は、バンク０〜３へのアクセスが無くなった時点からバンク０〜３の動作モードがメモリデバイス７Ｃにより自律的に例えば低速モードに切り替えられるまでの時間間隔（この時間間隔が上記一定時間となる）がカウント数により設定されるレジスタである。
【００８３】
タイマ部７１５は、それぞれ各バンク０〜３のアクセスされない時間を計時する４つのダウンカウンタ（図示省略）を備える。各ダウンカウンタは、ＴＩＭＥＲ＿ＣＯＮＴ７１７に設定されたカウント数を初期値とし、そのカウント数が０になるまで、所定時間経過する毎にそのカウント数を１ずつ減数することで、上記一定時間を計時するカウンタである。
【００８４】
タイマ部７１５は、共有メモリ７１の各バンク０〜３に対し、▲１▼そのバンク０〜３の動作モードが例えば通常モードにあり、且つ▲２▼そのバンク０〜３のアクセス権が例えばＣＰＵ３Ａ側にある状況で、▲３▼そのバンク０〜３へのアクセス（読み書き）が無くなると、上記ダウンカウンタを用いて上記の如く、そのバンク０〜３の上記アクセスされない時間の計時を開始する。そして、タイマ部７１５は、そのバンク０〜３についての上記一定時間を計時した場合に限り、その旨を動作モード制御部７７Ｃに通知する。尚、タイマ部７１５は、その計時中のバンク０〜３にアクセスがあると、その計時を初期値から計時し直すものとのする。又、タイマ部７１５は、その計時中のバンク０〜３に対して上記▲１▼及び▲２▼の少なくとも１つが満たされなくなった場合は、その計時を停止するものとする。尚、タイマ部７１５は、ＴＩＭＥＲ＿ＣＯＮＴ７１７にカウント数として０（ゼロ）が設定された場合は、計時を行わないものとする（即ちタイマ部７１５のカウンタは非活性となる）。
【００８５】
この実施の形態の動作モード制御部７７Ｃは、タイマ部７１５から上記一定時間を計時した旨の通知を受けた場合に限り、自律的に、その一定時間アクセスの無いバンク０〜３の動作モードを例えば低速モードに切り替える。詳細には、動作モード制御部７７Ｃは、例えば、その一定時間アクセスの無いバンク０〜３の動作モードが例えば低速モードに切り替わる様にＭＥＭＣＯＮＴ７３の設定を自ら変更し、その変更したＭＥＭＣＯＮＴ７３の設定に従って、その一定時間アクセスの無いバンク０〜３の動作モードを低速モードに切り替える。
【００８６】
この構成により、共有メモリ７１の各バンク０〜３に一定時間アクセスが無い場合は、そのアクセスの無いバンク０〜３の動作モードが、ＣＰＵ３Ａ及びコプロセッサ５Ａに切替制御されなくても自律的にメモリデバイス７Ｃによって消費電力の少ない例えば低速モードに切り替えられる。
【００８７】
以上の様に構成されたマルチプロセッサ１Ｃによれば、共有メモリ７１の各バンク０〜３に一定時間アクセスが無い場合に、そのアクセスの無いバンク０〜３の動作モードがＣＰＵ３Ａ及びコプロセッサ５Ａに切替制御されなくても自律的にメモリデバイス７Ｃによって消費電力の少ない例えば低速モードに切り替えられるため、ＣＰＵ３Ａやコプロセッサ５Ａによる各バンク０〜３の制御負担が軽減できると共に共有メモリ７１の消費電力の削減が図れる。
【００８８】
又、バンク０〜３の動作モードがメモリデバイス７Ｃにより自律的に低速モードに切り替えられるまでの時間間隔の設定調整だけで、即ち簡単な設定調整で、共有メモリ７１の消費電力を、共有メモリ７１への高速アクセス重視の設定にするか、低消費電力重視の設定にするか、その中間の設定にするかを容易に調整できる。
【００８９】
尚、この実施の形態では、特に説明してないが、ＴＩＭＥＲ＿ＣＯＮＴ７１７へのカウント数の設定は例えばＣＰＵ３Ａ又はコプロセッサ５Ａに設定されてもよく、又、製造時に設定されてもよい。
【００９０】
尚、この実施の形態では、上記実施の形態１に係るマルチプロセッサ１Ａに適用した場合で説明したが、上記実施の形態２に係るマルチプロセッサ１Ｂに適用しても構わない。その場合も、この実施の形態の効果と同様の効果を得る。
【００９１】
尚、上記実施の形態１〜３に於いては、マルチプロセッサの電力制御方法もその実施の形態１〜３の範疇に含まれることは言うまでもないことである。
【００９２】
＜実施の形態４＞
この実施の形態４のマルチプロセッサ１Ｄは、上記実施の形態１に係るマルチプロセッサ１Ａ（図１）に於いて、そのメモリデバイス７Ａの構成要素のうち、Ｉ／Ｆレジスタ７３、スイッチ部７５及び動作モード制御部７７をコプロセッサ５Ａ側に実装させる様にしたものである。
【００９３】
即ち、この実施の形態のメモリデバイス（記憶手段）７Ｄは、図１３に示す様に、共有メモリ７１部分だけを実装して構成される。他方、この実施の形態のコプロセッサ５Ｄは、図１３に示す様に、もともと備える演算部５１に加えて更にメモリデバイス７ＤのＩ／Ｆレジスタ７３、スイッチ部７５及び動作モード制御部７７を実装して構成される。
【００９４】
この実施の形態のマルチプロセッサ１Ｄの動作は、上記実施の形態１のマルチプロセッサ１Ａの動作と同じなので省略する。
【００９５】
以上の様に構成されたマルチプロセッサ１Ｄによれば、メモリデバイス７Ｄが、その構成要素のうち、共有メモリ７１を構成する装置部分（ＳＲＡＭ）だけを自ら実装し、共有メモリ７１の各バンク０〜３の動作モードの切り替えに関わる装置部分（動作モード制御部７７及びＩ／Ｆレジスタ７３）、及び、ＣＰＵ３Ａ及びコプロセッサ５Ｄと各バンク０〜３との間のアクセスの制御に関わる装置部分（スイッチ部７５）はコプロセッサ５Ｄに実装されるため、メモリデバイス７Ｄが共有メモリ７１部分だけで（即ち機能の単純な構成で）構成できて、メモリデバイス７Ｄの設計再利用性を高めることができる。
【００９６】
尚、この実施の形態では、上記実施の形態１のマルチプロセッサ１Ａに適用した場合で説明したが、上記実施の形態２，３のマルチプロセッサ１Ｂ，１Ｃに適用できることは言うまでもないことである。
【００９７】
【発明の効果】
請求項１に記載の発明によれば、第１のプロセッサと第２のプロセッサとの共有の記憶手段が１つ以上のバンクを有して構成され、各バンクの動作モードが個別に消費電力の異なる複数の動作モードのうちの何れかに切り替えられており、第１のプロセッサにより記憶手段の各バンクの動作モードが個別に切替制御されることに加えて、第２のプロセッサによっても各バンクの動作モードが個別に切替制御されるため、第２のプロセッサの処理の進行に適切に合わせて各バンクの動作モードを個別に切替制御でき、従って、第１のプロセッサの処理の進行状況だけを考慮する場合よりも、より緻密に記憶手段の消費電力を制御できて消費電力を削減できるようになる。特に、記憶手段が２つ以上のバンクを有して構成される場合は、各バンク毎に動作モードを切り替えることができるため、更に消費電力の削減に寄与できる。
【００９８】
請求項２に記載の発明によれば、第１のプロセッサ又は第２のプロセッサにより、第２のプロセッサの処理に使用されないバンクの動作モードが消費電力の低い動作モードに切り替えられるため、記憶手段の消費電力を削減できる。
【００９９】
請求項３に記載の発明によれば、第２のプロセッサの処理終了の際に、その第２のプロセッサにより、その処理に使用されたバンクの動作モードが消費電力の低いモードに切り替えられるため、その処理結果がバンク（即ち記憶手段）に保存されてから第１のプロセッサにより読み出されるまでの間の記憶手段の消費電力を削減できる。
【０１００】
請求項４に記載の発明によれば、第２のプロセッサの処理終了の際に、その第２のプロセッサにより、その処理結果のうちの所定の処理結果の保存に使用されたバンクの動作モードが、その所定の処理結果を保持できる範囲で消費電力の最少の動作モードに切り替えられ、そのバンク以外のバンクの動作モードが消費電力の最少の動作モードに切り替えられるため、第２のプロセッサの処理結果のうちの所定の処理結果を記憶手段に最少限の消費電力で保存できて、記憶手段の消費電力を削減できる。
【０１０１】
請求項５に記載の発明によれば、第１のプロセッサにより記憶手段の各バンクの動作モードが指定（設定）され、第２のプロセッサにより各バンクの動作モードが第１のプロセッサにより指定された動作モードに切り替えられるため、第１のプロセッサ側の設定変更だけで、第１のプロセッサの処理内容の変更と共に第２のプロセッサにより切替制御される各バンクの動作モードの内容も変更でき、設定変更が容易となる。又、第２のプロセッサ側の各バンクの動作モードの内容の設定に関わる部分のソフトウエアのアルゴリズムを省略でき、第２のプロセッサの実行するソフトウエアのアルゴリズムの簡素化及びソフトウエアの実行サイクルを削減できる。
【０１０２】
請求項６に記載の発明によれば、第１のプロセッサが第２のプロセッサの処理結果の保存に使用されたバンクにアクセスする際に、第１のプロセッサによりそのバンクの動作モードがアクセス速度の速い動作モードに切り替えられるため、例えばそのバンクに保存された第２のプロセッサの処理結果のデータ量が多くても速やかに読み出せる。
【０１０３】
請求項７に記載の発明によれば、記憶手段により、その各バンクのアクセスされない時間が計時されて、自律的に一定時間アクセスされないバンクの動作モードが消費電力の低い動作モードに切り替えられるため、第１のプロセッサや第２のプロセッサによる各バンクの制御負担が軽減できると共に記憶手段の消費電力を削減できる。
【０１０４】
請求項８に記載の発明によれば、記憶手段が各バンクを構成する装置部分だけで、即ち機能の単純な構成で構成されるため、記憶手段の設計再利用性を高めることができる。
【図面の簡単な説明】
【図１】本発明の実施の形態１に係るマルチプロセッサの共有メモリを構成するメモリデバイスの構成概略図である。
【図２】図１の共有メモリの動作モードを説明する図である。
【図３】図１の共有メモリの各動作モードの特徴を示した図である。
【図４】図１のＩＦレジスタのビットフィールドの一例図である。
【図５】図１のマルチプロセッサのメモリマップの一例図である。
【図６】図１のマルチプロセッサの動作時のＣＰＵの動作を説明するフローチャートである。
【図７】図１のマルチプロセッサの動作時のコプロセッサの動作を説明するフローチャートである。
【図８】本発明の実施の形態２に係るマルチプロセッサのメモリマップの一例図である。
【図９】本発明の実施の形態２に係るマルチプロセッサの動作時のＣＰＵの動作を説明するフローチャートである。
【図１０】本発明の実施の形態２に係るマルチプロセッサの動作時のコプロセッサの動作を説明するフローチャートである。
【図１１】本発明の実施の形態３に係るマルチプロセッサのメモリデバイスの構成概略図である。
【図１２】図１１のマルチプロセッサのメモリマップの一例図である。
【図１３】本発明の実施の形態４に係るマルチプロセッサのメモリデバイスとコプロセッサの構成概略図である。
【図１４】一般的なマルチプロセッサの構成概略図である。
【図１５】従来のマルチプロセッサに於いて１回のまとまった処理が実行される際にＣＰＵ、コプロセッサ及び共有メモリ間で送受されるデータ及び制御のフローを示す模式図である。
【符号の説明】
１Ａ，１Ｂ，１Ｃ，１Ｄ　マルチプロセッサ、３Ａ，３Ｂ　ＣＰＵ、５Ａ，５Ｂ，５Ｄ　コプロセッサ、７Ａ，７Ｃ，７Ｄ　メモリデバイス、９　キャッシュ、１１　ＲＯＭ、７１　共有メモリ、７３　ＩＦレジスタ、７５　スイッチ部、７７，７７Ｃ　動作モード制御部、７９　ＨＡＬＴ＿ＣＮＴ、７１１　ＰＣ＿ＣＮＴ、７１３　ＰＯＷＥＲ＿ＣＮＴ、７１５　タイマ部。
【図１】
2004038642.tif 000008
【図２】
2004038642.tif 000009
【図３】
2004038642.tif 000010
【図４】
2004038642.tif 000011
【図５】
2004038642.tif 000012
【図６】
2004038642.tif 000013
【図７】
2004038642.tif 000014
【図８】
2004038642.tif 000015
【図９】
2004038642.tif 000016
【図１０】
2004038642.tif 000017
【図１１】
2004038642.tif 000018
【図１２】
2004038642.tif 000019
【図１３】
2004038642.tif 000020
【図１４】
2004038642.tif 000021
【図１５】
2004038642.tif 000022