JP2004038642A - Multiprocessor - Google Patents

Multiprocessor Download PDF

Info

Publication number
JP2004038642A
JP2004038642A JP2002195836A JP2002195836A JP2004038642A JP 2004038642 A JP2004038642 A JP 2004038642A JP 2002195836 A JP2002195836 A JP 2002195836A JP 2002195836 A JP2002195836 A JP 2002195836A JP 2004038642 A JP2004038642 A JP 2004038642A
Authority
JP
Japan
Prior art keywords
operation mode
processor
bank
banks
coprocessor
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.)
Pending
Application number
JP2002195836A
Other languages
Japanese (ja)
Inventor
Isao Minematsu
峯松 勲
Hisakazu Sato
佐藤 尚和
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.)
Renesas Technology Corp
Original Assignee
Renesas Technology 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 Renesas Technology Corp filed Critical Renesas Technology Corp
Priority to JP2002195836A priority Critical patent/JP2004038642A/en
Publication of JP2004038642A publication Critical patent/JP2004038642A/en
Pending legal-status Critical Current

Links

Images

Classifications

    • 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

  • Power Sources (AREA)
  • Multi Processors (AREA)
  • Memory System (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To provide a power control method for a multiprocessor capable of reducing the waste of power consumption of a shared memory. <P>SOLUTION: In this power control method for the multiprocessor, a memory device 7A (shared memory 71) shared by a CPU 3A and a coprocessor 5A has one or more banks 0-3, and the operation mode of each of banks 0-3 is independently switchable to any one of a plurality of operation modes differed in power consumption. In addition to the independently switching control of the operation mode of each of banks 0-3 of the shared memory 71 by the CPU 3A, the operation mode of each of banks 0-3 is independently switchably controlled also by the coprocessor 5A. <P>COPYRIGHT: (C)2004,JPO

Description

【0001】
【発明の属する技術分野】
本発明は、複数のプロセッサが共有メモリを介してデータ転送を行いながら協調的に動作する所謂マルチプロセッサの電力を制御する技術に関する。
【0002】
【従来の技術】
半導体製造技術の微細化に伴って、1つのLSIに集積される回路規模は増大し、LSIの動作電圧は低電圧化する。この傾向は過去20〜30年間にわたり成り立ち、今後も成り立つことが予想される。
【0003】
1つのLSIに集積される回路規模の増大化に伴って、従来別個のLSIとして実現されていたプロセッサ、メモリ、入出力デバイス制御ロジック等が1チップのLSIに実装できる様になる。その結果、従来ボードレベルで実現されていたマルチプロセッサが1チップのLSIで実現できる様になる。近年、その様な1チップのマルチプロセッサが提案されている(例;[1][2])。今後は、その様な1チップのマルチプロセッサが幅広く利用されることが予想される。又、その様な1チップのマルチプロセッサでは、プロセッサ間のデータ通信用の共有メモリとして高速動作可能なSRAMが採用される例が多い。
【0004】
[1]“OMAP: Enabling_Multimedia Application in 3G Wireless Terminals”(http:/www−s.ti.com/sc/psheets/swpa001/swpa001.pdf)
[2]“DSP56662 Integrated Dual−Core Baseband Processor”pp2,pp24(http://www.cag.lcs.mit.edu/〜chinnama/overview.PDF)。
【0005】
他方、LSIの動作電圧の低電圧化に伴って、従来では半導体(CMOS)デバイスの消費電力は、動作時の負荷の充放電による電力が支配的であったが、今後はスタンバイ時のリーク電流による電力が支配的になることが予想される。リーク電流を削減するためのデバイス技術・回路技術はいくつか提案されている。その代表的なものとして、閾値電圧(Vth)の低いMOSFETで構成された回路と閾値電圧(Vth)の高いスイッチ(MOSFET)とを直列に接続する技術、所謂VTCMOS(Variable−Threshold CMOS)がある[3]。これらの技術を用いて半導体デバイスの動作モードを通常動作時は高消費電力モード(高速動作モード)に切り替え、待機時は低消費電力モード(低速動作モード)に切り替えることで消費電力の削減が可能となる。この技術は、LSIを構成するロジック部、メモリ部等の様々な回路に幅広く適用することが可能である。
【0006】
[3]特開平6−237164(日立製作所・内山)。
【0007】
この様に、近年では、プロセッサ間の共有メモリが例えばSRAMによって高速動作可能に構成されると共にVTCMOS等の技術により消費電力が削減された1チップのマルチプロセッサが実現される様になってきている。
【0008】
【発明が解決しようとする課題】
しかしながら、その様なマルチプロセッサに於いても、その共有メモリ部分のデバイスに於いて依然として以下の様な無駄な電力が消費されているという問題がある。
【0009】
その問題を図14のマルチプロセッサの場合で説明する。このマルチプロセッサ100は、例えば1チップのLSIとして構成され、メイン(主)プロセッサとしてのCPU3と、サブ(副)プロセッサとしてのコプロセッサ5と、CPU3・コプロセッサ5間のデータ通信用の共有メモリを構成するメモリデバイス7と、コプロセッサ5により実行されるプログラムが格納されるROM11と、CPU3のメモリアクセス速度を高速化するためのキャッシュ(Cache)9とを備えて主構成される。CPU3とコプロセッサ5はバス13を介してメモリデバイス7と接続される。尚、同一チップ内に更にタイマー、シリアルIO等のモジュールが実装される場合もある。このマルチプロセッサ100では、CPU3がマスター、コプロセッサ5がスレーブとなる非対称なアーキテクチャが採用される。
【0010】
このマルチプロセッサ100では、図15のフローに従って1回のまとまった処理が実行される。即ち、▲1▼CPU3は、まず共有メモリ7の動作モードをアクセス速度の速い(即ち消費電力の多い)通常モードに切り替える。そして、▲2▼CPU3は、コプロセッサ5が繰返し参照するデータ(係数、定数)を共有メモリ7に転送する。次いで、▲3▼CPU3は、コプロセッサ5が実行する1回のまとまった処理でコプロセッサ5が参照する変数をコプロセッサ5に設定すると共にコプロセッサ5を起動させる。この段階までは、コプロセッサ5は待機した状態である。▲4▼コプロセッサ5はその後、所定の処理(演算)を行い、▲5▼その処理結果を共有メモリ7に保存すると共に▲6▼その処理の終了をCPU3に通知する。そして、▲7▼CPU3は、コプロセッサ5からの処理の完了の通知を検出すると、▲8▼その処理結果を共有メモリ7から読み出す。そして、▲9▼CPU3は、共有メモリ7から処理結果を読み出すと、共有メモリ7の動作モードを消費電力の低い低速モードに切り替える。
【0011】
この様なマルチプロセッサ100では、コプロセッサ5の処理結果が共有メモリ7に保存されてからCPU3により読み出されるまでの間、共有メモリは、コプロセッサ5及びCPU3によりアクセスされないにも関わらず、アクセス速度の速い(即ち消費電力の多い)通常モードにされたままとなり、消費電力が無駄に浪費されている(これを「共有メモリの消費電力の時間的浪費」と称す)。これは、従来のこの種のマルチプロセッサ100では、共有メモリ7の動作モードの切り替えはCPU3の制御のみにより行われており、この制御の仕組みでは、コプロセッサ5の処理の進行に適切に合わせて共有メモリ7の動作モードを切り替えることができないことに起因する。
【0012】
又、この様なマルチプロセッサ100では、共有メモリ7に保存されたコプロセッサ5の処理結果のうちにCPU3により読み出されない不要なデータが含まれている場合は、その不要なデータもCPU3により読み出されるデータと共に通常モードで保存され、その分の消費電力が無駄に浪費されている(これも「共有メモリの消費電力の時間的浪費」と称す)。
【0013】
又、この様なマルチプロセッサ100が汎用製品として製造された場合、その共有メモリ7の記憶容量は、通常どんなアルゴリズムやデータがコプロセッサ5で処理されても容量不足とならないように大きめに設計される。そのため、共有メモリ7の記憶容量の大部分が使用されずに空きとなる場合がある。この場合、その空き容量部分も使用中の容量部分と共に通常モードにされるため、消費電力が無駄に浪費される(これを「共有メモリの消費電力の空間的浪費」と称す)。これは、共有メモリ7の動作モードが部分的に異なる動作モードにできないことに起因する。
【0014】
ここで述べた、共有メモリ7の消費電力の時間的浪費や空間的浪費は上記構成のマルチプロセッサ100に限らず、多くのマルチプロセッサに本質的に内在する問題である。
【0015】
そこで、この発明の課題は、上記の様な共有メモリの消費電力の浪費を削減できるマルチプロセッサを提供することにある。
【0016】
【課題を解決するための手段】
上記課題を解決するためには、請求項1に記載のマルチプロセッサは、第1のプロセッサと、第2のプロセッサと、前記第1のプロセッサ及び前記第2のプロセッサにより共有され、それぞれの動作モードが個別に消費電力の異なる複数の動作モードのうちの何れかに切り替えられる1つ以上のバンクを有する記憶手段とを備えたマルチプロセッサであって、前記第1のプロセッサにより前記記憶手段の各バンクの動作モードが個別に切替制御されることに加えて、前記第2のプロセッサによっても前記各バンクの動作モードが個別に切替制御されるものである。
【0017】
請求項2に記載のマルチプロセッサは、前記記憶手段が2つ以上のバンクを有して構成される場合に於いて、前記第1のプロセッサ又は前記第2のプロセッサにより、前記第2のプロセッサの処理に使用されない前記バンクの動作モードが消費電力の低い動作モードに切り替えられるものである。
【0018】
請求項3に記載のマルチプロセッサは、前記第2のプロセッサの処理終了の際に、その第2のプロセッサにより、その処理に使用された前記バンクの動作モードが消費電力の低いモードに切り替えられるものである。
【0019】
請求項4に記載のマルチプロセッサは、前記記憶手段が2つ以上のバンクを有して構成される場合に於いて、前記第2のプロセッサの処理終了の際に、その第2のプロセッサにより、その処理結果のうちの所定の処理結果の保存に使用された前記バンクの動作モードが、その所定の処理結果を保持できる範囲で消費電力の最少の動作モードに切り替えられ、そのバンク以外の前記バンクの動作モードが、消費電力の最少の動作モードに切り替えられるものである。
【0020】
請求項5に記載のマルチプロセッサは、前記第1のプロセッサにより前記記憶手段の各バンクの動作モードが指定され、前記第2のプロセッサにより前記各バンクの動作モードが前記第1のプロセッサにより指定された前記動作モードに切り替えられるものである。
【0021】
請求項6に記載のマルチプロセッサは、前記第1のプロセッサが前記第2のプロセッサの処理結果の保存に使用された前記バンクにアクセスする際に、前記第1のプロセッサによりそのバンクの動作モードがアクセス速度の速い動作モードに切り替えられるものである。
【0022】
請求項7に記載のマルチプロセッサは、前記記憶手段は、その各バンクのアクセスされない時間を計時する計時手段を有し、自律的に一定時間アクセスされないバンクの動作モードを消費電力の低い動作モードに切り替えるものである。
【0023】
請求項8に記載のマルチプロセッサは、前記記憶手段は、その構成部分のうち、前記各バンクを構成する装置部分だけを自ら実装し、前記各バンクの動作モードの切り替えに関わる装置部分、及び、前記第1のプロセッサ及び前記第2のプロセッサと前記各バンクとの間のアクセスの制御に関わる装置部分が前記第2のプロセッサ側に実装されるものである。
【0024】
【発明の実施の形態】
<実施の形態1>
図1は、本発明の実施の形態1に係るマルチプロセッサの共有メモリを構成するメモリデバイスの構成概略図である。
【0025】
この実施の形態に係るマルチプロセッサ1Aは、従来同様、図14に示す様に、例えば1チップのLSIとして構成され、メインプロセッサ(第1のプロセッサ)としてのCPU3Aと、サブプロセッサ(第2のプロセッサ)としてのコプロセッサ5Aと、CPU3A・コプロセッサ5A間のデータ通信用の共有メモリを構成するメモリデバイス(記憶手段)7Aと、コプロセッサ5Aにより実行されるプログラムが保存されたROM11と、CPU3Aのメモリアクセス速度を高速化するためのキャッシュ(Cache)9とを備えて主構成される。このマルチプロセッサ1Aでも、従来同様、CPU3Aがマスター、コプロセッサ5Aがスレーブとなる非対称なアーキテクチャが採用される。
【0026】
ここで、メインプロセッサとは、サブプロセッサが実行すべき処理をサブプロセッサに指示するプロセッサである。サブプロセッサとは、その指示された処理を実行し完了したときにメインプロセッサに完了を通知し又はその指示された処理を完了できなかったときにはメインプロセッサに未完了を通知するプロセッサである。サブプロセッサは基本的にはメインプロセッサに対し処理を実行するように指示しない。
【0027】
メモリデバイス7Aは、図1に示す様に、上記の共有メモリ71と、IFレジスタ73と、スイッチ部75と、動作モード制御部77とを備える。
【0028】
共有メモリ71は、例えばSRAMにより構成される。この共有メモリ71は、それぞれ個別にアクセス権を持つプロセッサ(CPU3A又はコプロセッサ5A)の設定(以後「アクセス権の設定」と称す)ができ、且つそれぞれ個別に異なる動作モードの設定ができる複数のバンクによって構成される。ここでは、共有メモリ71は、例えばバンク0〜バンク3の4バンク(1Kbyte x 4)から構成される。
【0029】
この共有メモリ71は、図2に示す様に、消費電力の異なる複数の動作モード(ここでは通常モード、低速モード、休止モード)を持ち、そのバンク毎に個別に上記複数の動作モードのうちの何れかの動作モードで動作する。これにより、共有メモリ71はそのバンク毎に異なる動作モードで動作可能となる。尚、各バンク0〜3の動作モードは、動作モード制御部77の制御により切替制御される(即ち他の動作モードに遷移される)。
【0030】
図3にバンク0〜3の各動作モードの特徴を示す。通常モードでは、そのバンク0〜3はデータを保持でき、そのバンク0〜3へのアクセス速度は高速となり、そのバンク0〜3の消費電力は多くなる。低速モードでは、そのバンク0〜3はデータを保持でき、そのバンク0〜3へのアクセス速度は低速となり、そのバンク0〜3の消費電力は少なくなる。休止モードでは、そのバンク0〜3はデータを消失し、そのバンク0〜3へのアクセスはできず、そのバンク0〜3の消費電力は極少になる。
【0031】
この共有メモリ71は、例えばVTCMOSの技術が適用されて構成されており、通常モード又は低速モードの切り替えは例えば閾値電圧Vthの降下又は上昇変化により実現され、休止モードは例えば電源供給の停止により実現される。尚、VTCMOS以外の技術により通常モード、低速モード及び休止モードを実現しても構わない。
【0032】
尚、各バンク0〜3間の動作モードの遷移には、所定の時間が必要なので、低速モードのバンクヘのアクセスは、遷移のオーバヘッドを考慮し、通常モードに一旦遷移してからアクセスするべきかの考慮が必要となる。
【0033】
I/Fレジスタ(ここではMEMCONTとも呼ぶ)73は、共有メモリ71の各バンク0〜3の上記アクセス権の設定及び上記動作モードの設定を受け付ける回路であり、図4に示すビットフィールドBFにより構成される。このビットフィールドBFは、図4に示す様に、それぞれ1ビット長のフィールドで構成されたフィールドA0,A1,A2,A3と、それぞれ2ビット長のフィールドで構成されたフィールドM0,M1,M2,M3とを備える。フィールドA0(A1,A2,A3)は、バンク0(バンク1,バンク2,バンク3)の上記アクセス権の設定を受け付ける部分である(ここでは0がCPU3A、1がコプロセッサ5Aである)。フィールドM0(M1,M2,M3)は、バンク0(バンク1,バンク2,バンク3)の上記動作モードの設定を受け付ける部分である(ここではb”00が通常モード,b’10が低速モード,b’11が休止モードである)。
【0034】
尚、I/Fレジスタ73への各バンク0〜3の上記アクセス権の設定及び上記動作モードの設定は、ここではCPU3A又はコプロセッサ5Aにより行われる。
【0035】
動作モード制御部77は、I/Fレジスタ73に設定された各バンク0〜3の動作モードの設定に従って、共有メモリ71の各バンク0〜3の動作を個別に動作させ、その各バンク0〜3の動作モードの設定の変更に応じて、各バンク0〜3の動作を個別に切替制御する。
【0036】
スイッチ部75は、I/Fレジスタ73に設定された各バンク0〜3のアクセス権の設定に従って、CPU3A及びコプロセッサ5Aがアクセスの許可されたバンク0〜3に対してアクセス(読み書き)できる様に、CPU3A及びコプロセッサ5Aと各バンク0〜3との間のアクセス経路の動的な切り替えを行う。
【0037】
図5は、このマルチプロセッサ1AのメモリマップMMの一例図である。図5の太線領域が上記の共有メモリ71に対応する。ここでは、共有メモリ71は、CPU3A側のアドレスでは、CPU3Aの持つリニアなメモリ空間の0x8000〜〜0x8fff番地にマッピングされ、コプロセッサ5A側のアドレスでは、0x0000〜0x0fff番地にマッピングされる。
【0038】
又、図5のHALT_CNT79は、コプロセッサ5Aの動作の参照と制御に用いられるレジスタである。即ち、例えばCPU3AからHALT_CNT79への書き込みに対しては、1の書き込みによりコプロセッサ5Aを起動させ、0の書き込みによりコプロセッサ5Aを強制停止させる。又、例えばCPU3AからHALT_CNT79の読み出しに対しては、1の読み出し時はコプロセッサ5Aは作動中(処理中)を意味し、0の読み出し時はコプロセッサ5Aは停止中(処理終了)を意味する。
【0039】
又、図5のPC_CNT711は、コプロセッサ5Aの実行開始PC(プログラムカウンタ)が設定されるレジスタであり、コプロセッサ5Aの停止時には次に実行されるPC値を読み出すことができる。
【0040】
又、図5のMEMCONT73は上記のI/Fレジスタ73である。
【0041】
CPU3Aは、コプロセッサ5Aと並列(同時)に演算処理可能に搭載される。これにより、CPU3Aは、コプロセッサ5Aの演算処理と併行して(即ちコプロセッサ5Aの演算処理の終了を待つこと無く)別の処理を実行できる。又、CPU3Aは、HALT_CNT79の設定を変更することでコプロセッサ5Aの起動/停止を切替制御する。又、CPU3Aは、PC_CNT711にPC値を設定することでコプロセッサ5Aに実行させる演算処理の内容を指定する。又、CPU3Aは、MEMCONT73の設定を変更することで各バンク0〜3のアクセス権及び動作モードを切替制御する。
【0042】
コプロセッサ5Aは、CPU3Aに対するメモリマップデバイスとして動作し、上記の通り、上記2つの制御レジスタ(HALT_CNT79及びPC_CNT711)を介してCPU3Aにより制御される。又、コプロセッサ5Aは、その実行中の演算処理の終了時に、▲1▼HALT_CNT79に0を設定することでその処理終了をCPU3Aに通知すると共に、▲2▼MEMCONT73の設定(各バンク0〜3のアクセス権の設定及び動作モードの設定)を変更することで、その処理で使用した各バンク0〜3のアクセス権を例えばCPU3Aに戻し、その処理結果の保存に使用したバンク0〜3の動作モードを例えば低速モードに切り替え、その処理結果の保存に使用しなかったバンク0〜3の動作モードを例えば休止モードに切り替える。
【0043】
尚、ここでは、コプロセッサ5Aは、HALT_CNT79に0を設定するための命令であってその命令の実行により1つ指定できるオペランドを所定のレジスタ(ここではMEMCONT73に設定されている)に設定できるSLAVEM命令を実行することで、上記▲1▼▲2▼の処理動作を実行する。即ち、そのSLAVEM命令で指定されるオペランドとして上記▲2▼の処理動作に必要な各バンク0〜3のアクセス権の設定及び動作モードの設定が保存されているアドレスを指定しておく(ここでは、そのアクセス権の設定及び動作モードの設定はROM11に設定されているとする)。そして、コプロセッサ5Aが、その演算処理の終了時に、上記SLAVEM命令を実行することで、HALT_CNT79に0が設定されて上記▲1▼の処理動作が実行されると共に、MEMCONT73に上記オペランドの値(上記▲2▼の処理動作に必要な各バンク0〜3のアドレス権の設定及び動作モードの設定)が設定されて上記▲2▼の処理動作が実行される。
【0044】
尚、上記SLAVEM命令は、マスター・スレーブ方式のアーキテクチャを採用するマルチプロセッサに標準的に搭載されている命令機能である。
【0045】
次に、図6及び図7を用いて上記マルチプロセッサ1Aの動作を説明する。図6はマルチプロセッサ1Aの作動時のCPU3Aの動作を説明するフローチャートであり、図7はマルチプロセッサ1Aの作動時のコプロセッサ5Aの動作を説明するフローチャートである。ここでは、コプロセッサ5Aにより一例として2048点のFFTの係数を演算させ、CPU3Aによりその上位128点の係数が読み出される場合で説明する。
【0046】
図6のステップS1で、CPU3Aは、MEMCONT73に例えば0x0033を設定することで各バンク0〜3のアクセス権と動作モードとを例えば表1の様に設定する。
【0047】
【表1】

Figure 2004038642
【0048】
即ち、FFTの演算処理で使用されるデータを格納するのに使用するバンク0及びバンク1の動作モードをアクセス速度の速い通常モードに設定し、それらバンク0及びバンク1のアクセス権をCPU3Aに設定する。他方、FFTの演算処理で使用されないバンク2及びバンク3の動作モードは消費電力の極少の停止モードに設定し、それらバンク2及びバンク3のアクセス権は例えばCPU3Aに設定する。FFTの処理で使用されないバンク2及びバンク3の動作モードが例えば休止モードに設定されることで共有メモリ71の消費電力の空間的浪費が削減される。
【0049】
そして、ステップS2で、CPU3Aは、バンク0及びバンク1にFFTの演算処理に使用される入力データを転送して格納する。そして、ステップS3で、CPU3Aは、MEMCONT73に例えば0x8833を設定することで各バンク0〜3のアクセス権と動作モードを例えば表2の様に設定する。即ち、バンク0及びバンク1に転送された入力データがコプロセッサ5Aにより読み出せる様にバンク0とバンク1のアクセス権をCPU3Aからコプロセッサ5Aに変更する。
【0050】
【表2】
Figure 2004038642
【0051】
そして、ステップS4で、CPU3Aは、PC_CNT711にコプロセッサ5AのROM11(命令メモリ)に保存されているFFT関数の先頭アドレスを設定すると共に、HALT_CNT79に1を設定してコプロセッサ5Aを起動させ、コプロセッサ5AにFFTの演算処理を実行させる。
【0052】
そして、ステップS5で、CPU3Aは、コプロセッサ5Aの処理が終了するまで、別の処理を実行する。別の処理としては例えば単にCPU3A自身の低電力モードへの遷移の為の処理動作が含まれる。そして、CPU3Aは、ステップS5の別の処理が終了すると、ステップS6に進み、HALT_CNT79をチェックする。そして、CPU3Aは、HALT_CNT79が1の場合(即ちコプロセッサ5AがFFTの演算処理を終了していない場合)は、ステップS5に戻って他の別の処理を実行し、HALT_CNT79が0の場合(即ちコプロセッサ5AがFFTの演算処理を終了している場合)は、ステップS7に進む。
【0053】
他方、図6のステップS4でCPU3Aにより起動されたコプロセッサ5Aは、図7のステップT1でFFTの演算処理を実行し、その演算処理を終了すると、その演算処理の結果(2048点のFFTの係数)をバンク0及びバンク1に保存してステップT2に進む。そして、ステップT2で、コプロセッサ5Aは、SLAVEM命令を実行することで、HALT_CNT79に0を設定してその演算処理の終了をCPU3Aに通知すると共に、例えばROM11に保存されたオペランドの値(ここでは0x2333)をMEMCONT73に設定して各バンク0〜3のアクセス権と動作モードとを例えば表3の様に設定する。
【0054】
【表3】
Figure 2004038642
【0055】
即ち、コプロセッサ5Aの演算処理の結果(2048点のFFTの係数)の保存に使用されたバンク0及びバンク1のうち、CPU3Aにより読み出される上位128点の係数の保存に使用されたバンク0の動作モードを低速モードに設定し、その上位128点の係数がCPU3A側から読み出せる様に、そのバンク0のアクセス権をCPU3Aに戻す。他方、CPU3Aにより読み出される上位128点の係数が保存されなかったバンク1の動作モードは休止モードに設定され、そのバンク1のアクセス権もCPU3Aに戻される。これによりコプロセッサ5Aの演算処理の結果のうちのCPU3Aにより読み出されるものが最少限の消費電力で共有メモリ71に保存される。これにより共有メモリ71の消費電力の時間的浪費が削減される。
【0056】
ステップS7では、CPU3Aは、MEMCONT73に例えば0x0333を設定することで各バンク0〜3のアクセス権と動作モードとを例えば表4の様に設定する。即ち、バンク0の動作モードをアクセス速度の速い通常モードに切り替える。
【0057】
【表4】
Figure 2004038642
【0058】
そして、ステップS8で、CPU3Aは、バンク0からコプロセッサ5Aの演算処理の結果(上位128点のFFTの係数)を読み出す。そして、CPU3Aは、その読み出し後、バンク0の動作モードをMEMCONT73の設定を変更して例えば低速モード又は休止モードに切り替える。
【0059】
以上の様に構成されたマルチプロセッサ1Aによれば、CPU3Aにより各バンク0〜3の動作モードが個別に切替制御されることに加えて、コプロセッサ5Aによっても各バンク0〜3の動作モードが個別に切り替えられるため、コプロセッサ5Aの処理の進行に適切に合わせて各バンク0〜3の動作モードを個別に切替制御でき、従って、CPU3Aの処理の進行状況だけを考慮する場合よりも、より緻密に共有メモリ71の消費電力を制御できて消費電力を削減できる。
【0060】
又、CPU3Aによりコプロセッサ5Aの演算処理に使用されないバンク2及びバンク3の動作モードが消費電力の少ない動作モード(休止モード)に切り替えられるため(ステップS1)、その使用されないバンク2及びバンク3で浪費される消費電力を削減でき、共有メモリ71の消費電力の空間的浪費を削減できる。
【0061】
又、コプロセッサ5Aの処理終了の際(ステップT2)に、そのコプロセッサ5Aにより、その処理に使用されたバンク0及びバンク1の動作モードが消費電力の低い動作モード(低速モード又は休止モード)に切り替えられるため、その処理結果がバンク0及びバンク1に保存されてからCPU3Aにより読み出されるまでの間の従来無駄に消費されていた共有メモリ71の消費電力の時間的浪費を削減できる。特に、その際、コプロセッサ5Aにより、その処理結果のうちの所定の処理結果(CPU3Aにより読み出されるもの)の保存に使用されたバンク0の動作モードが、その所定の処理結果を保持できる範囲で消費電力の最少の動作モード(低速モード)に切り替えられ、そのバンク0以外のバンク1の動作モードが、消費電力の最少の動作モード(休止モード)に切り替えられるため、コプロセッサ5Aの演算処理の結果のうちの所定の処理結果を最少限の消費電力で共有メモリ71に保存でき、これにより共有メモリ71の消費電力の時間的浪費を大幅に削減できる。
【0062】
又、CPU3Aがコプロセッサ5Aの演算処理と併行して別の処理を実行できる様に構成されているので、マルチプロセッサ1A全体の処理の効率化が図れる。特に、CPU3Aが別の処理として自身の低電力モードへの遷移を実行する場合は、コプロセッサ5Aの演算処理の間のCPU3Aの待機電力の削減が図れる。
【0063】
又、図4の様に、各バンク0〜3のアクセス権の設定及び動作モードの設定を受け付けるビットフィールBFを同一のレジスタで構成しているため、一度の処理ステップで各バンク0〜3のアクセス権の設定及び動作モードの設定を行えて、処理ステップ数を削減できる。
【0064】
又、例えばステップS8でCPU3Aがコプロセッサ5Aの処理結果の保存に使用された例えばバンク0からコプロセッサ5Aの演算処理の結果を読み出す際(アクセスする際)に、CPU3Aによりそのバンク0の動作モードがアクセス速度の速い動作モード(通常モード)に切り替えられるため、そのバンク0に保存されたコプロセッサ5Aの処理結果のデータ量が多くても速やかに読み出せる。
【0065】
尚、この実施の形態では、ステップS8でCPU3Aにより例えばバンク0からコプロセッサ5Aの処理結果が読み出される際に、ステップS7でCPU3Aによりそのバンク0の動作モードがアクセス速度の速い通常モードに切り替えられる場合で説明したが、CPU3Aにより読み出されるコプロセッサ5Aの処理結果のデータ量が少ない場合はステップS7を省略し、バンク0の動作モードを低速モードにしたままで、CPU3Aによりバンク0からコプロセッサ5Aの処理結果が読み出される様にしても構わない。
【0066】
尚、この実施の形態では、ステップS1でCPU3Aによりコプロセッサ5Aの演算処理に使用されない例えばバンク2及びバンク3の動作モードが消費電力の極少の動作モード(休止モード)に切り替えられる場合で説明したが、コプロセッサ5Aにより、例えばその起動時又はその処理開始時に、その演算処理に使用されない例えばバンク2及びバンク3の動作モードが消費電力の極少の動作モード(休止モード)に切り替えられる様にしても構わない。
【0067】
尚、この実施の形態では、共有メモリ71が複数のバンク0〜3により構成される場合で説明したが、1つのバンクにより構成される様にしても構わない。その場合は、この実施の形態の効果のうち、共有メモリ71が複数のバンク0〜3により構成されることに起因する効果以外の効果だけを得ることになる。
【0068】
<実施の形態2>
この実施の形態2に係るマルチプロセッサ1Bは、上記実施の形態1に係るマルチプロセッサ1Aに於いて、コプロセッサ5Aにより切替制御される各バンク0〜3のアクセス権及び動作モードの内容がCPU3A側から設定(指定)される様にしたものである。
【0069】
この実施の形態に係るマルチプロセッサ1Bは、図1及び図14に示す様に、上記実施の形態1に係るマルチプロセッサ1Aと同様、CPU3B、コプロセッサ5B、CPU3B・コプロセッサ5B間の共有メモリ71を構成するメモリデバイス7A、コプロセッサ5Bにより実行されるプログラムが保存されたROM11と、CPU3Bのメモリアクセス速度を高速化するためのキャッシュ(Cache)9とを備えて主構成される。以下、マルチプロセッサ1Bの構成要素のうちマルチプロセッサ1Aの構成要素と同一のものは同一符号を付してその説明を省略する。
【0070】
この実施の形態のコプロセッサ5Bは、上記実施の形態1のコプロセッサ5Aと比べて、その実行中の演算処理の終了の際に、オペランドの指定ができるSLAVEM命令を実行する代わりに、オペランドの指定ができないSLAVE命令を実行することで、HALT_CNT79に0を設定する点が異なる以外は同様の処理動作が設定される。尚、このSLAVE命令も、SLAVEM命令と同様、HALT_CNT79に0を設定するための命令であってマスター・スレーブ方式のアーキテクチャを採用するマルチプロセッサに標準的に搭載されている命令機能である。
【0071】
この実施の形態に係るマルチプロセッサ1BのメモリマップMMは、図8に示す様に、上記実施の形態1のマルチプロセッサ1AのメモリマップMM(図5)と比べて、コプロセッサ5Bの制御用の制御レジスタとして更にPOWER_CNT713が追加されている点が異なる以外は同様に構成される。このPOWER_CNT713は、CPU3Bにより設定(指定)される各バンク0〜3のアクセス権及び動作モードの設定が設定されるレジスタである。このPOWER_CNT713は、コプロセッサ5Bにより上記SLAVE命令が実行されることに起因して、そのPOWER_CNT713に設定された各バンク0〜3のアクセス権の設定及び動作モードの設定をMEMCONT73に設定入力する。これにより、各バンク0〜3のアクセス権及び動作モードがPOWER_CNT713に設定された各バンク0〜3のアクセス権の設定及び動作モードの設定に切り替えられる。
【0072】
次に、図9及び図10を用いて上記マルチプロセッサ1Bの動作を説明する。図9はマルチプロセッサ1Bの作動時のCPU3Bの動作を説明するフローチャートであり、図10はマルチプロセッサ1Bの作動時のコプロセッサ5Bの動作を説明するフローチャートである。ここでは、コプロセッサ5Bにより2048点のFFTの係数を演算させ、CPU3Bによりその全ての係数(2048点のFFTの係数)が読み出される場合で説明する。
【0073】
この実施の形態のCPU3Bの処理動作は、図9に示す様に、上記実施の形態1のCPU3Aの処理動作と比べて、ステップS3の処理後に、ステップS3−2でPOWER_CNT713に例えば0x2233を設定してからステップS4に進む点が異なる以外は同様の処理動作が設定される。ステップS3−2でのPOWER_CNT713への例えば0x2233の設定により、後述のコプロセッサ5Bの処理動作のステップT2で、コプロセッサ5Bにより切替制御される各バンク0〜3のアクセス権及び動作モードの内容が例えば表5の様に設定される。
【0074】
【表5】
Figure 2004038642
【0075】
尚、この表5の設定は、ここでの動作説明の例では、コプロセッサ5Bにより演算される2048点のFFTの係数の全てがCPU3Bにより読み出される例であるため、コプロセッサ5Bの演算処理の結果(2048点のFFTの係数)の保存に使用されるバンク0及びバンク1のうち、CPU3Bにより読み出される全2048点の係数の保存に使用されるバンク0及びバンク1の双方の動作モードを低速モードに設定し、その全てのFFTの係数がCPU3B側から読み出せる様に、バンク0及びバンク1の双方のアクセス権がCPU3Bに戻される様に設定されたものである。尚、他のバンク2及びバンク3の動作モードは、コプロセッサ5Bの演算処理で使用されないので消費電力の最少の休止モードに設定されたままであり、それらバンク2及びバンク3のアクセス権も例えばCPU3B側に設定されたままである。
【0076】
他方、この実施の形態のプロセッサ5Bの処理動作は、図10に示す様に、上記実施の形態1のコプロセッサ5Aの処理動作と比べて、ステップT2でオペランドの指定ができないSLAVE命令を実行することでHALT_CNT79に0を設定する点が異なる以外は同様の処理動作が設定される。即ち、ステップT2でのコプロセッサ5BによるSLAVE命令の実行により、HALT_CNT79に0が設定されてコプロセッサ5Bの演算処理の終了がCPU3Bに通知されると共に、POWER_CNT713に設定されていた上記0x2233の設定がMEMCONT73に設定入力されて各バンク0〜3のアクセス権及び動作モードが表5の様に切り替えられる点が異なる以外は同様の処理動作が行われる。
【0077】
尚、この実施の形態の動作説明では、CPU3Bにより読み出されるコプロセッサ5Bの演算処理の結果はバンク0及びバンク1に保存される。その為、この実施の形態でのステップS7では、CPU3Bは、バンク0及びバンク1の双方の動作モードを高速読み出しの可能な通常モードに切り替えるべくMEMCONT73に0x0033(表1の設定)を設定している点で上記実施の形態1でのステップS7の場合と若干相異していることに留意しておく。
【0078】
以上の様に構成されたマルチプロセッサ1Bによれば、コプロセッサ5Bにより切替制御される各バンク0〜3のアクセス権及び動作モードの内容をCPU3B側から設定(指定)できるため、▲1▼CPU3Bの処理内容(CPU3Bにより共有メモリ71から読み出されるコプロセッサ5Bの演算処理の結果の数)の変更に応じてコプロセッサ5Bにより切替制御される各バンク0〜3の動作モードの内容を変更する場合に、CPU3B側の設定変更だけで、CPU3Bの処理内容の変更と共にコプロセッサ5Bにより切替制御される各バンク0〜3のアクセス権及び動作モードの内容の変更ができて、設定変更が容易となり、又、▲2▼コプロセッサ5B側の各バンク0〜3のアクセス権の設定及び動作モードの設定に関わる部分のソフトウエアのアルゴリズムを省略でき、コプロセッサ5Bの実行するソフトウエアのアルゴリズムの簡素化及びソフトウエアの実行サイクルの削減が図れる。
【0079】
<実施の形態3>
この実施の形態3に係るマルチプロセッサ1Cは、上記実施の形態1のマルチプロセッサ1Aに於いて、共有メモリ71の各バンク0〜3に一定時間アクセスが無い場合に、そのアクセスの無いバンク0〜3の動作モードがCPU3A及びコプロセッサ5Aに切替制御されなくても自律的(自動的)にメモリデバイス7Aによって消費電力の少ない例えば低速モードに切り替えられる様にしたものである。
【0080】
即ち、この実施の形態に係るマルチプロセッサ1Cは、図14に示す様に、上記実施の形態1に係るマルチプロセッサ1Aと同様、CPU3A、コプロセッサ5A、メモリデバイス7C、ROM11と、キャッシュ(Cache)9とを備えて主構成される。以下、マルチプロセッサ1Cの構成要素のうちマルチプロセッサ1Aの構成要素と同一のものは同一符号を付してその説明を省略する。
【0081】
又、この実施の形態のメモリデバイス7Cは、図11に示す様に、上記実施の形態1のメモリデバイス7A(図1)と比べて、更に各バンク0〜3のアクセスされない時間を計時するタイマ部(計時手段)715を備える点と、動作モード制御部77Cの動作が後述の様に変更される点が異なる以外は同様に構成される。
【0082】
又、この実施の形態に係るマルチプロセッサ1CのメモリマップMMは、図12に示す様に、上記実施の形態1に係るマルチプロセッサ1AのメモリマップMM(図5)と比べて、更にTIMER_CONT717を有する点が異なる以外は同様に構成される。このTIMER_CONT717は、バンク0〜3へのアクセスが無くなった時点からバンク0〜3の動作モードがメモリデバイス7Cにより自律的に例えば低速モードに切り替えられるまでの時間間隔(この時間間隔が上記一定時間となる)がカウント数により設定されるレジスタである。
【0083】
タイマ部715は、それぞれ各バンク0〜3のアクセスされない時間を計時する4つのダウンカウンタ(図示省略)を備える。各ダウンカウンタは、TIMER_CONT717に設定されたカウント数を初期値とし、そのカウント数が0になるまで、所定時間経過する毎にそのカウント数を1ずつ減数することで、上記一定時間を計時するカウンタである。
【0084】
タイマ部715は、共有メモリ71の各バンク0〜3に対し、▲1▼そのバンク0〜3の動作モードが例えば通常モードにあり、且つ▲2▼そのバンク0〜3のアクセス権が例えばCPU3A側にある状況で、▲3▼そのバンク0〜3へのアクセス(読み書き)が無くなると、上記ダウンカウンタを用いて上記の如く、そのバンク0〜3の上記アクセスされない時間の計時を開始する。そして、タイマ部715は、そのバンク0〜3についての上記一定時間を計時した場合に限り、その旨を動作モード制御部77Cに通知する。尚、タイマ部715は、その計時中のバンク0〜3にアクセスがあると、その計時を初期値から計時し直すものとのする。又、タイマ部715は、その計時中のバンク0〜3に対して上記▲1▼及び▲2▼の少なくとも1つが満たされなくなった場合は、その計時を停止するものとする。尚、タイマ部715は、TIMER_CONT717にカウント数として0(ゼロ)が設定された場合は、計時を行わないものとする(即ちタイマ部715のカウンタは非活性となる)。
【0085】
この実施の形態の動作モード制御部77Cは、タイマ部715から上記一定時間を計時した旨の通知を受けた場合に限り、自律的に、その一定時間アクセスの無いバンク0〜3の動作モードを例えば低速モードに切り替える。詳細には、動作モード制御部77Cは、例えば、その一定時間アクセスの無いバンク0〜3の動作モードが例えば低速モードに切り替わる様にMEMCONT73の設定を自ら変更し、その変更したMEMCONT73の設定に従って、その一定時間アクセスの無いバンク0〜3の動作モードを低速モードに切り替える。
【0086】
この構成により、共有メモリ71の各バンク0〜3に一定時間アクセスが無い場合は、そのアクセスの無いバンク0〜3の動作モードが、CPU3A及びコプロセッサ5Aに切替制御されなくても自律的にメモリデバイス7Cによって消費電力の少ない例えば低速モードに切り替えられる。
【0087】
以上の様に構成されたマルチプロセッサ1Cによれば、共有メモリ71の各バンク0〜3に一定時間アクセスが無い場合に、そのアクセスの無いバンク0〜3の動作モードがCPU3A及びコプロセッサ5Aに切替制御されなくても自律的にメモリデバイス7Cによって消費電力の少ない例えば低速モードに切り替えられるため、CPU3Aやコプロセッサ5Aによる各バンク0〜3の制御負担が軽減できると共に共有メモリ71の消費電力の削減が図れる。
【0088】
又、バンク0〜3の動作モードがメモリデバイス7Cにより自律的に低速モードに切り替えられるまでの時間間隔の設定調整だけで、即ち簡単な設定調整で、共有メモリ71の消費電力を、共有メモリ71への高速アクセス重視の設定にするか、低消費電力重視の設定にするか、その中間の設定にするかを容易に調整できる。
【0089】
尚、この実施の形態では、特に説明してないが、TIMER_CONT717へのカウント数の設定は例えばCPU3A又はコプロセッサ5Aに設定されてもよく、又、製造時に設定されてもよい。
【0090】
尚、この実施の形態では、上記実施の形態1に係るマルチプロセッサ1Aに適用した場合で説明したが、上記実施の形態2に係るマルチプロセッサ1Bに適用しても構わない。その場合も、この実施の形態の効果と同様の効果を得る。
【0091】
尚、上記実施の形態1〜3に於いては、マルチプロセッサの電力制御方法もその実施の形態1〜3の範疇に含まれることは言うまでもないことである。
【0092】
<実施の形態4>
この実施の形態4のマルチプロセッサ1Dは、上記実施の形態1に係るマルチプロセッサ1A(図1)に於いて、そのメモリデバイス7Aの構成要素のうち、I/Fレジスタ73、スイッチ部75及び動作モード制御部77をコプロセッサ5A側に実装させる様にしたものである。
【0093】
即ち、この実施の形態のメモリデバイス(記憶手段)7Dは、図13に示す様に、共有メモリ71部分だけを実装して構成される。他方、この実施の形態のコプロセッサ5Dは、図13に示す様に、もともと備える演算部51に加えて更にメモリデバイス7DのI/Fレジスタ73、スイッチ部75及び動作モード制御部77を実装して構成される。
【0094】
この実施の形態のマルチプロセッサ1Dの動作は、上記実施の形態1のマルチプロセッサ1Aの動作と同じなので省略する。
【0095】
以上の様に構成されたマルチプロセッサ1Dによれば、メモリデバイス7Dが、その構成要素のうち、共有メモリ71を構成する装置部分(SRAM)だけを自ら実装し、共有メモリ71の各バンク0〜3の動作モードの切り替えに関わる装置部分(動作モード制御部77及びI/Fレジスタ73)、及び、CPU3A及びコプロセッサ5Dと各バンク0〜3との間のアクセスの制御に関わる装置部分(スイッチ部75)はコプロセッサ5Dに実装されるため、メモリデバイス7Dが共有メモリ71部分だけで(即ち機能の単純な構成で)構成できて、メモリデバイス7Dの設計再利用性を高めることができる。
【0096】
尚、この実施の形態では、上記実施の形態1のマルチプロセッサ1Aに適用した場合で説明したが、上記実施の形態2,3のマルチプロセッサ1B,1Cに適用できることは言うまでもないことである。
【0097】
【発明の効果】
請求項1に記載の発明によれば、第1のプロセッサと第2のプロセッサとの共有の記憶手段が1つ以上のバンクを有して構成され、各バンクの動作モードが個別に消費電力の異なる複数の動作モードのうちの何れかに切り替えられており、第1のプロセッサにより記憶手段の各バンクの動作モードが個別に切替制御されることに加えて、第2のプロセッサによっても各バンクの動作モードが個別に切替制御されるため、第2のプロセッサの処理の進行に適切に合わせて各バンクの動作モードを個別に切替制御でき、従って、第1のプロセッサの処理の進行状況だけを考慮する場合よりも、より緻密に記憶手段の消費電力を制御できて消費電力を削減できるようになる。特に、記憶手段が2つ以上のバンクを有して構成される場合は、各バンク毎に動作モードを切り替えることができるため、更に消費電力の削減に寄与できる。
【0098】
請求項2に記載の発明によれば、第1のプロセッサ又は第2のプロセッサにより、第2のプロセッサの処理に使用されないバンクの動作モードが消費電力の低い動作モードに切り替えられるため、記憶手段の消費電力を削減できる。
【0099】
請求項3に記載の発明によれば、第2のプロセッサの処理終了の際に、その第2のプロセッサにより、その処理に使用されたバンクの動作モードが消費電力の低いモードに切り替えられるため、その処理結果がバンク(即ち記憶手段)に保存されてから第1のプロセッサにより読み出されるまでの間の記憶手段の消費電力を削減できる。
【0100】
請求項4に記載の発明によれば、第2のプロセッサの処理終了の際に、その第2のプロセッサにより、その処理結果のうちの所定の処理結果の保存に使用されたバンクの動作モードが、その所定の処理結果を保持できる範囲で消費電力の最少の動作モードに切り替えられ、そのバンク以外のバンクの動作モードが消費電力の最少の動作モードに切り替えられるため、第2のプロセッサの処理結果のうちの所定の処理結果を記憶手段に最少限の消費電力で保存できて、記憶手段の消費電力を削減できる。
【0101】
請求項5に記載の発明によれば、第1のプロセッサにより記憶手段の各バンクの動作モードが指定(設定)され、第2のプロセッサにより各バンクの動作モードが第1のプロセッサにより指定された動作モードに切り替えられるため、第1のプロセッサ側の設定変更だけで、第1のプロセッサの処理内容の変更と共に第2のプロセッサにより切替制御される各バンクの動作モードの内容も変更でき、設定変更が容易となる。又、第2のプロセッサ側の各バンクの動作モードの内容の設定に関わる部分のソフトウエアのアルゴリズムを省略でき、第2のプロセッサの実行するソフトウエアのアルゴリズムの簡素化及びソフトウエアの実行サイクルを削減できる。
【0102】
請求項6に記載の発明によれば、第1のプロセッサが第2のプロセッサの処理結果の保存に使用されたバンクにアクセスする際に、第1のプロセッサによりそのバンクの動作モードがアクセス速度の速い動作モードに切り替えられるため、例えばそのバンクに保存された第2のプロセッサの処理結果のデータ量が多くても速やかに読み出せる。
【0103】
請求項7に記載の発明によれば、記憶手段により、その各バンクのアクセスされない時間が計時されて、自律的に一定時間アクセスされないバンクの動作モードが消費電力の低い動作モードに切り替えられるため、第1のプロセッサや第2のプロセッサによる各バンクの制御負担が軽減できると共に記憶手段の消費電力を削減できる。
【0104】
請求項8に記載の発明によれば、記憶手段が各バンクを構成する装置部分だけで、即ち機能の単純な構成で構成されるため、記憶手段の設計再利用性を高めることができる。
【図面の簡単な説明】
【図1】本発明の実施の形態1に係るマルチプロセッサの共有メモリを構成するメモリデバイスの構成概略図である。
【図2】図1の共有メモリの動作モードを説明する図である。
【図3】図1の共有メモリの各動作モードの特徴を示した図である。
【図4】図1のIFレジスタのビットフィールドの一例図である。
【図5】図1のマルチプロセッサのメモリマップの一例図である。
【図6】図1のマルチプロセッサの動作時のCPUの動作を説明するフローチャートである。
【図7】図1のマルチプロセッサの動作時のコプロセッサの動作を説明するフローチャートである。
【図8】本発明の実施の形態2に係るマルチプロセッサのメモリマップの一例図である。
【図9】本発明の実施の形態2に係るマルチプロセッサの動作時のCPUの動作を説明するフローチャートである。
【図10】本発明の実施の形態2に係るマルチプロセッサの動作時のコプロセッサの動作を説明するフローチャートである。
【図11】本発明の実施の形態3に係るマルチプロセッサのメモリデバイスの構成概略図である。
【図12】図11のマルチプロセッサのメモリマップの一例図である。
【図13】本発明の実施の形態4に係るマルチプロセッサのメモリデバイスとコプロセッサの構成概略図である。
【図14】一般的なマルチプロセッサの構成概略図である。
【図15】従来のマルチプロセッサに於いて1回のまとまった処理が実行される際にCPU、コプロセッサ及び共有メモリ間で送受されるデータ及び制御のフローを示す模式図である。
【符号の説明】
1A,1B,1C,1D マルチプロセッサ、3A,3B CPU、5A,5B,5D コプロセッサ、7A,7C,7D メモリデバイス、9 キャッシュ、11 ROM、71 共有メモリ、73 IFレジスタ、75 スイッチ部、77,77C 動作モード制御部、79 HALT_CNT、711 PC_CNT、713 POWER_CNT、715 タイマ部。[0001]
TECHNICAL FIELD OF THE INVENTION
The present invention relates to a technique for controlling the power of a so-called multiprocessor in which a plurality of processors operate cooperatively while performing data transfer via a shared memory.
[0002]
[Prior art]
With the miniaturization of semiconductor manufacturing technology, the scale of a circuit integrated in one LSI increases, and the operating voltage of the LSI decreases. This trend has existed for the past 20-30 years and is expected to hold in the future.
[0003]
With the increase in the scale of a circuit integrated in one LSI, a processor, a memory, an input / output device control logic, and the like, which are conventionally realized as separate LSIs, can be mounted on a one-chip LSI. As a result, the multiprocessor conventionally realized at the board level can be realized by a one-chip LSI. In recent years, such one-chip multiprocessors have been proposed (eg, [1] and [2]). It is expected that such one-chip multiprocessors will be widely used in the future. In many cases, such a single-chip multiprocessor employs an SRAM that can operate at high speed as a shared memory for data communication between processors.
[0004]
[1] “OMAP: Enabling_Multimedia Application in 3G Wireless Terminals” (http: /www-s.ti.com/sc/sheets/swpa001/swpa001/pdf.)
[2] “DSP56662 Integrated Dual-Core Baseband Processor” pp2, pp24 (http://www.cag.lcs.mit.edu/~chinama/overview.PDF).
[0005]
On the other hand, with the lowering of the operating voltage of the LSI, the power consumption of the semiconductor (CMOS) device has conventionally been dominated by the charge and discharge of the load during operation, but the leakage current during standby will be increased in the future. Is expected to be dominant. Several device technologies and circuit technologies for reducing leakage current have been proposed. As a typical example, there is a technique of connecting a circuit composed of a MOSFET having a low threshold voltage (Vth) and a switch (MOSFET) having a high threshold voltage (Vth) in series, a so-called VTCMOS (Variable-Threshold CMOS). [3]. The power consumption can be reduced by switching the operation mode of the semiconductor device to the high power consumption mode (high-speed operation mode) during normal operation and to the low power consumption mode (low-speed operation mode) during standby using these technologies. It becomes. This technology can be widely applied to various circuits such as a logic unit and a memory unit included in an LSI.
[0006]
[3] JP-A-6-237164 (Hitachi, Uchiyama).
[0007]
As described above, in recent years, a one-chip multiprocessor in which a shared memory between processors is configured to be able to operate at high speed by, for example, an SRAM and whose power consumption is reduced by a technology such as VTCMOS has been realized. .
[0008]
[Problems to be solved by the invention]
However, even in such a multiprocessor, there is a problem that the following wasteful power is still consumed in the device of the shared memory portion.
[0009]
The problem will be described in the case of the multiprocessor in FIG. The multiprocessor 100 is configured as, for example, a one-chip LSI, and includes a CPU 3 as a main (main) processor, a coprocessor 5 as a sub (sub) processor, and a shared memory for data communication between the CPU 3 and the coprocessor 5. , A ROM 11 in which a program executed by the coprocessor 5 is stored, and a cache 9 for increasing the memory access speed of the CPU 3. The CPU 3 and the coprocessor 5 are connected to the memory device 7 via the bus 13. Note that modules such as a timer and a serial IO may be further mounted in the same chip. The multiprocessor 100 employs an asymmetric architecture in which the CPU 3 is a master and the coprocessor 5 is a slave.
[0010]
In the multiprocessor 100, one collective process is executed according to the flow of FIG. That is, (1) the CPU 3 first switches the operation mode of the shared memory 7 to the normal mode in which the access speed is high (that is, the power consumption is high). (2) The CPU 3 transfers the data (coefficients, constants) that the coprocessor 5 repeatedly refers to to the shared memory 7. Next, (3) the CPU 3 sets the variables referred to by the coprocessor 5 in the single processing executed by the coprocessor 5 in the coprocessor 5 and activates the coprocessor 5. Until this stage, the coprocessor 5 is in a standby state. (4) The coprocessor 5 thereafter performs predetermined processing (operation), (5) saves the processing result in the shared memory 7, and (6) notifies the CPU 3 of the end of the processing. (7) When the CPU 3 detects the notification of the completion of the processing from the coprocessor 5, (8) reads the processing result from the shared memory 7. (9) When reading the processing result from the shared memory 7, the CPU 3 switches the operation mode of the shared memory 7 to the low-speed mode with low power consumption.
[0011]
In such a multiprocessor 100, while the processing result of the coprocessor 5 is stored in the shared memory 7 and read out by the CPU 3, the shared memory is not accessed by the coprocessor 5 and the CPU 3, but the access speed is increased. (That is, high power consumption), and the power consumption is wasted (this is referred to as "time wasted power consumption of the shared memory"). This is because, in this type of conventional multiprocessor 100, the operation mode of the shared memory 7 is switched only by the control of the CPU 3, and this control mechanism appropriately matches the progress of the processing of the coprocessor 5. This is because the operation mode of the shared memory 7 cannot be switched.
[0012]
Also, in such a multiprocessor 100, when unnecessary data that is not read by the CPU 3 is included in the processing results of the coprocessor 5 stored in the shared memory 7, the unnecessary data is also read by the CPU 3. The data is stored in the normal mode together with the data to be consumed, and the power consumption is wastefully wasted (this is also called “time waste of the power consumption of the shared memory”).
[0013]
When such a multiprocessor 100 is manufactured as a general-purpose product, the storage capacity of the shared memory 7 is usually designed to be large so that the capacity is not insufficient even if any algorithm or data is processed by the coprocessor 5. You. For this reason, a large part of the storage capacity of the shared memory 7 may be unused and unused. In this case, the free space portion is set to the normal mode together with the used capacity portion, so that power consumption is wasted (this is referred to as "spatial waste of power consumption of the shared memory"). This is because the operation mode of the shared memory 7 cannot be changed to a partially different operation mode.
[0014]
The waste of time and space of the power consumption of the shared memory 7 described above is not limited to the multiprocessor 100 having the above configuration, but is a problem inherent in many multiprocessors.
[0015]
Therefore, an object of the present invention is to provide a multiprocessor that can reduce the waste of power consumption of the shared memory as described above.
[0016]
[Means for Solving the Problems]
In order to solve the above problem, the multiprocessor according to claim 1 is shared by a first processor, a second processor, and the first processor and the second processor, and each operation mode Comprising: one or more banks that can be individually switched to any one of a plurality of operation modes having different power consumptions. In addition to the individual switching control of the operation modes, the operation mode of each bank is also individually switched and controlled by the second processor.
[0017]
3. The multiprocessor according to claim 2, wherein the storage means is configured to have two or more banks, and the first processor or the second processor causes the second processor to execute the second processor. The operation mode of the bank not used for processing is switched to an operation mode with low power consumption.
[0018]
4. The multiprocessor according to claim 3, wherein the operation mode of the bank used for the processing is switched to a low power consumption mode by the second processor when the processing of the second processor ends. It is.
[0019]
The multiprocessor according to claim 4, wherein when the storage means is configured to have two or more banks, when the processing of the second processor ends, the second processor executes The operation mode of the bank used for storing a predetermined processing result among the processing results is switched to an operation mode with the minimum power consumption within a range in which the predetermined processing result can be held, and the banks other than the bank are switched. Is switched to the operation mode with the minimum power consumption.
[0020]
6. The multiprocessor according to claim 5, wherein the first processor specifies an operation mode of each bank of the storage unit, and the second processor specifies an operation mode of each bank by the first processor. In the operation mode.
[0021]
7. The multiprocessor according to claim 6, wherein when the first processor accesses the bank used for storing the processing result of the second processor, the operation mode of the bank is changed by the first processor. The operation mode can be switched to a high access speed operation mode.
[0022]
8. The multiprocessor according to claim 7, wherein the storage unit includes a timer unit that counts a time period during which each bank is not accessed. The operation mode of the bank that is not accessed autonomously for a predetermined time is set to an operation mode with low power consumption. Switch.
[0023]
9. The multiprocessor according to claim 8, wherein the storage unit implements, by itself, only a device portion constituting each of the banks among the component portions thereof, and a device portion related to switching of an operation mode of each bank; and A device portion related to control of access between the first processor and the second processor and each bank is mounted on the second processor side.
[0024]
BEST MODE FOR CARRYING OUT THE INVENTION
<Embodiment 1>
FIG. 1 is a schematic configuration diagram of a memory device configuring a shared memory of a multiprocessor according to Embodiment 1 of the present invention.
[0025]
A multiprocessor 1A according to the present embodiment is configured as, for example, a one-chip LSI as shown in FIG. 14 similarly to the related art, and includes a CPU 3A as a main processor (first processor) and a sub-processor (second processor). ), A memory device (storage means) 7A constituting a shared memory for data communication between the CPU 3A and the coprocessor 5A, a ROM 11 storing a program to be executed by the coprocessor 5A, It mainly comprises a cache (Cache) 9 for increasing the memory access speed. This multiprocessor 1A also employs an asymmetric architecture in which the CPU 3A is the master and the coprocessor 5A is the slave, as in the prior art.
[0026]
Here, the main processor is a processor that instructs the sub-processor what processing should be executed by the sub-processor. The sub-processor is a processor that notifies the main processor of the completion when the instructed process is executed and completed, or notifies the main processor of the incompleteness when the instructed process cannot be completed. The sub-processor basically does not instruct the main processor to execute processing.
[0027]
As shown in FIG. 1, the memory device 7A includes the above-described shared memory 71, an IF register 73, a switch unit 75, and an operation mode control unit 77.
[0028]
The shared memory 71 is composed of, for example, an SRAM. In the shared memory 71, a plurality of processors (CPU 3A or coprocessor 5A) each having an individual access right (hereinafter referred to as "access right setting") can be set, and a plurality of operation modes can be individually set. It is composed of banks. Here, the shared memory 71 is composed of, for example, four banks (1 Kbyte × 4) of bank 0 to bank 3.
[0029]
As shown in FIG. 2, the shared memory 71 has a plurality of operation modes (here, a normal mode, a low-speed mode, and a sleep mode) having different power consumptions, and each of the banks individually includes one of the plurality of operation modes. Operate in any operation mode. Thus, the shared memory 71 can operate in an operation mode different for each bank. The operation mode of each of the banks 0 to 3 is switched and controlled by the control of the operation mode control unit 77 (that is, the operation mode is shifted to another operation mode).
[0030]
FIG. 3 shows the features of each operation mode of the banks 0 to 3. In the normal mode, the banks 0 to 3 can hold data, the access speed to the banks 0 to 3 becomes high, and the power consumption of the banks 0 to 3 increases. In the low-speed mode, the banks 0 to 3 can hold data, the access speed to the banks 0 to 3 becomes low, and the power consumption of the banks 0 to 3 decreases. In the sleep mode, the banks 0 to 3 lose data, the banks 0 to 3 cannot be accessed, and the power consumption of the banks 0 to 3 becomes extremely small.
[0031]
The shared memory 71 is configured by applying, for example, the VTCMOS technology. Switching between the normal mode and the low-speed mode is realized by, for example, a drop or a rise in the threshold voltage Vth, and the sleep mode is realized by, for example, stopping power supply. Is done. Note that the normal mode, the low-speed mode, and the sleep mode may be realized by a technique other than VTCMOS.
[0032]
Since a predetermined time is required for the transition of the operation mode between the banks 0 to 3, it is necessary to access the banks in the low-speed mode after transitioning to the normal mode once in consideration of the transition overhead. Must be considered.
[0033]
The I / F register (also referred to herein as MEMCONT) 73 is a circuit that receives the setting of the access right and the setting of the operation mode of each of the banks 0 to 3 of the shared memory 71, and is configured by a bit field BF shown in FIG. Is done. As shown in FIG. 4, the bit field BF includes fields A0, A1, A2, and A3 each composed of a 1-bit field, and fields M0, M1, M2, and fields each composed of a 2-bit field. M3. The field A0 (A1, A2, A3) is a portion for receiving the setting of the access right of the bank 0 (bank 1, bank 2, bank 3) (here, 0 is the CPU 3A and 1 is the coprocessor 5A). Field M0 (M1, M2, M3) is a portion for accepting the setting of the operation mode of bank 0 (bank 1, bank 2, bank 3) (here, b "00 is normal mode, b'10 is low speed mode). , B′11 is the sleep mode).
[0034]
The setting of the access right of each of the banks 0 to 3 and the setting of the operation mode to the I / F register 73 are performed by the CPU 3A or the coprocessor 5A.
[0035]
The operation mode control unit 77 individually operates the banks 0 to 3 of the shared memory 71 according to the setting of the operation mode of each of the banks 0 to 3 set in the I / F register 73. The operation of each of the banks 0 to 3 is individually switched and controlled in accordance with the change of the setting of the operation mode of No. 3.
[0036]
The switch unit 75 allows the CPU 3A and the coprocessor 5A to access (read and write) the banks 0 to 3 to which the access is permitted according to the setting of the access right of each of the banks 0 to 3 set in the I / F register 73. Next, dynamic switching of access paths between the CPU 3A and the coprocessor 5A and each of the banks 0 to 3 is performed.
[0037]
FIG. 5 is an example of a memory map MM of the multiprocessor 1A. 5 corresponds to the above-described shared memory 71. Here, the shared memory 71 is mapped to addresses 0x8000 to 0x8fff in the linear memory space of the CPU 3A at addresses on the CPU 3A side, and is mapped to addresses 0x0000 to 0x0fff at addresses on the coprocessor 5A side.
[0038]
HALT_CNT 79 in FIG. 5 is a register used for referring to and controlling the operation of the coprocessor 5A. That is, for example, when writing from the CPU 3A to the HALT_CNT 79, the coprocessor 5A is activated by writing 1 and the coprocessor 5A is forcibly stopped by writing 0. Further, for example, when reading the HALT_CNT 79 from the CPU 3A, reading 1 means that the coprocessor 5A is operating (processing), and reading 0 means that the coprocessor 5A is stopped (ending processing). .
[0039]
PC_CNT 711 in FIG. 5 is a register in which an execution start PC (program counter) of the coprocessor 5A is set. When the coprocessor 5A stops, the PC value to be executed next can be read.
[0040]
The MEMCONT 73 in FIG. 5 is the I / F register 73 described above.
[0041]
The CPU 3A is mounted so as to be capable of performing arithmetic processing in parallel (simultaneously) with the coprocessor 5A. Thereby, the CPU 3A can execute another process in parallel with the arithmetic process of the coprocessor 5A (that is, without waiting for the end of the arithmetic process of the coprocessor 5A). Further, the CPU 3A controls the start / stop of the coprocessor 5A by changing the setting of the HALT_CNT 79. The CPU 3A sets the PC value in the PC_CNT 711 to specify the content of the arithmetic processing to be executed by the coprocessor 5A. The CPU 3A controls the access right and the operation mode of each of the banks 0 to 3 by changing the setting of the MEMCONT 73.
[0042]
The coprocessor 5A operates as a memory map device for the CPU 3A, and is controlled by the CPU 3A via the two control registers (HALT_CNT79 and PC_CNT711) as described above. The coprocessor 5A notifies the CPU 3A of the end of the processing by setting (1) HALT_CNT 79 to 0 at the end of the arithmetic processing being executed, and (2) setting the MEMCONT 73 (each of the banks 0 to 3). Setting of the access right and setting of the operation mode), the access right of each of the banks 0 to 3 used in the processing is returned to, for example, the CPU 3A, and the operation of the banks 0 to 3 used for saving the processing result is performed. The mode is switched to, for example, the low-speed mode, and the operation mode of the banks 0 to 3 not used for storing the processing result is switched to, for example, the pause mode.
[0043]
In this case, the coprocessor 5A is capable of setting, in a predetermined register (here, set in the MEMCONT 73), an instruction for setting 0 to the HALT_CNT 79, which can be designated by execution of the instruction. By executing the instruction, the processing operations of (1) and (2) are executed. That is, as the operand specified by the SLAVEM instruction, the address where the setting of the access right and the setting of the operation mode of each of the banks 0 to 3 required for the processing operation of the above (2) are specified (here, the address is stored). It is assumed that the setting of the access right and the setting of the operation mode are set in the ROM 11). Then, when the coprocessor 5A executes the SLAVEM instruction at the end of the arithmetic processing, HALT_CNT 79 is set to 0, the processing operation of (1) is performed, and the value of the operand (MEMCONT 73) is stored in MEMCONT 73. The setting of the address right and the setting of the operation mode of each of the banks 0 to 3 necessary for the processing operation (2) are set, and the processing operation (2) is executed.
[0044]
The SLAVEM instruction is an instruction function that is standardly installed in a multiprocessor that employs a master-slave system architecture.
[0045]
Next, the operation of the multiprocessor 1A will be described with reference to FIGS. FIG. 6 is a flowchart illustrating the operation of the CPU 3A when the multiprocessor 1A operates, and FIG. 7 is a flowchart illustrating the operation of the coprocessor 5A when the multiprocessor 1A operates. Here, an example will be described in which the coprocessor 5A calculates the coefficients of the FFT of 2048 points, and the CPU 3A reads the coefficients of the upper 128 points.
[0046]
In step S1 of FIG. 6, the CPU 3A sets the access right and the operation mode of each of the banks 0 to 3 by setting, for example, 0x0033 in the MEMCONT 73 as shown in Table 1, for example.
[0047]
[Table 1]
Figure 2004038642
[0048]
That is, the operation mode of the bank 0 and the bank 1 used for storing data used in the FFT operation processing is set to the normal mode with a high access speed, and the access right of the bank 0 and the bank 1 is set to the CPU 3A. I do. On the other hand, the operation modes of the banks 2 and 3 which are not used in the arithmetic processing of the FFT are set to the stop mode with minimal power consumption, and the access rights of the banks 2 and 3 are set to, for example, the CPU 3A. By setting the operation modes of the banks 2 and 3 that are not used in the FFT processing to, for example, the sleep mode, spatial waste of power consumption of the shared memory 71 is reduced.
[0049]
Then, in step S2, the CPU 3A transfers and stores the input data used for the FFT operation processing to the bank 0 and the bank 1. Then, in step S3, the CPU 3A sets the access right and operation mode of each of the banks 0 to 3 by setting, for example, 0x8833 in the MEMCONT 73 as shown in Table 2, for example. That is, the access right of the banks 0 and 1 is changed from the CPU 3A to the coprocessor 5A so that the input data transferred to the banks 0 and 1 can be read by the coprocessor 5A.
[0050]
[Table 2]
Figure 2004038642
[0051]
Then, in step S4, the CPU 3A sets the PC_CNT 711 to the start address of the FFT function stored in the ROM 11 (instruction memory) of the coprocessor 5A, sets the HALT_CNT 79 to 1, and starts the coprocessor 5A. The processor 5A executes the FFT operation.
[0052]
Then, in step S5, the CPU 3A executes another process until the process of the coprocessor 5A ends. Another processing includes, for example, a processing operation simply for the CPU 3A to transition to the low power mode. Then, when another process of step S5 ends, the CPU 3A proceeds to step S6 and checks HALT_CNT79. When the HALT_CNT 79 is 1 (that is, when the coprocessor 5A has not completed the FFT operation), the CPU 3A returns to step S5 to execute another process, and when the HALT_CNT 79 is 0 (that is, when the HALT_CNT 79 is 0). If the coprocessor 5A has completed the FFT operation process), the process proceeds to step S7.
[0053]
On the other hand, the coprocessor 5A activated by the CPU 3A in step S4 in FIG. 6 executes the FFT calculation process in step T1 in FIG. 7, and when the calculation process ends, the result of the calculation process (2048 points of the FFT Coefficient) are stored in bank 0 and bank 1, and the process proceeds to step T2. Then, in step T2, the coprocessor 5A sets the HALT_CNT 79 to 0 by executing the SLAVEM instruction to notify the CPU 3A of the end of the arithmetic processing and, for example, the operand value stored in the ROM 11 (here, the operand value stored in the ROM 11). 0x2333) is set in the MEMCONT 73, and the access right and operation mode of each of the banks 0 to 3 are set, for example, as shown in Table 3.
[0054]
[Table 3]
Figure 2004038642
[0055]
That is, of bank 0 and bank 1 used for storing the result of the arithmetic processing (2048 FFT coefficients) of coprocessor 5A, bank 0 used for storing the top 128 coefficients read out by CPU 3A is used. The operation mode is set to the low-speed mode, and the access right of the bank 0 is returned to the CPU 3A so that the upper 128 coefficients can be read from the CPU 3A. On the other hand, the operation mode of the bank 1 in which the upper 128 coefficients read by the CPU 3A are not stored is set to the sleep mode, and the access right of the bank 1 is also returned to the CPU 3A. As a result, of the results of the arithmetic processing of the coprocessor 5A, those read by the CPU 3A are stored in the shared memory 71 with minimum power consumption. As a result, time-consuming power consumption of the shared memory 71 is reduced.
[0056]
In step S7, the CPU 3A sets the access right and the operation mode of each of the banks 0 to 3 as shown in Table 4 by setting, for example, 0x0333 in the MEMCONT 73. That is, the operation mode of the bank 0 is switched to the normal mode having a high access speed.
[0057]
[Table 4]
Figure 2004038642
[0058]
Then, in step S8, the CPU 3A reads from the bank 0 the result of the arithmetic processing of the coprocessor 5A (the upper 128 points of the FFT coefficients). Then, after the reading, the CPU 3A changes the operation mode of the bank 0 to, for example, the low-speed mode or the sleep mode by changing the setting of the MEMCONT73.
[0059]
According to the multiprocessor 1A configured as described above, the operation modes of the banks 0 to 3 are individually switched and controlled by the CPU 3A, and the operation modes of the banks 0 to 3 are also controlled by the coprocessor 5A. Since the switching can be performed individually, the operation mode of each of the banks 0 to 3 can be individually switched and controlled appropriately in accordance with the progress of the process of the coprocessor 5A. The power consumption of the shared memory 71 can be precisely controlled, and the power consumption can be reduced.
[0060]
Further, since the operation mode of the banks 2 and 3 not used for the arithmetic processing of the coprocessor 5A is switched by the CPU 3A to the operation mode with low power consumption (pause mode) (step S1), the unused banks 2 and 3 are not used. Wasted power consumption can be reduced, and spatial waste of power consumption of the shared memory 71 can be reduced.
[0061]
When the processing of the coprocessor 5A is completed (step T2), the operation mode of the bank 0 and the bank 1 used for the processing by the coprocessor 5A is changed to an operation mode with low power consumption (low-speed mode or sleep mode). , It is possible to reduce the time waste of the power consumption of the shared memory 71, which has been conventionally wasted until the processing result is stored in the bank 0 and the bank 1 and read out by the CPU 3A. In particular, at this time, the operation mode of the bank 0 used by the coprocessor 5A for storing the predetermined processing result (the one read by the CPU 3A) among the processing results is within a range in which the predetermined processing result can be held. The operation mode is switched to the operation mode with the lowest power consumption (low-speed mode), and the operation mode of the bank 1 other than the bank 0 is switched to the operation mode with the lowest power consumption (pause mode). Predetermined processing results among the results can be stored in the shared memory 71 with the minimum power consumption, so that the time waste of the power consumption of the shared memory 71 can be significantly reduced.
[0062]
Further, since the CPU 3A is configured to be able to execute another processing in parallel with the arithmetic processing of the coprocessor 5A, the efficiency of the processing of the entire multiprocessor 1A can be improved. In particular, when the CPU 3A executes transition to its own low power mode as another process, the standby power of the CPU 3A during the arithmetic processing of the coprocessor 5A can be reduced.
[0063]
Also, as shown in FIG. 4, the bit field BF for receiving the setting of the access right and the setting of the operation mode of each of the banks 0 to 3 is constituted by the same register. The access right and the operation mode can be set, and the number of processing steps can be reduced.
[0064]
Also, for example, when the CPU 3A reads (accesses) the result of the arithmetic processing of the coprocessor 5A from the bank 0 used for storing the processing result of the coprocessor 5A in step S8, for example, the operation mode of the bank 0 is used by the CPU 3A. Is switched to the operation mode (normal mode) having a high access speed, so that even if the data amount of the processing result of the coprocessor 5A stored in the bank 0 is large, the data can be quickly read.
[0065]
In this embodiment, when, for example, the processing result of the coprocessor 5A is read from the bank 0 by the CPU 3A in step S8, the operation mode of the bank 0 is switched to the normal mode in which the access speed is fast by the CPU 3A in step S7. As described above, when the data amount of the processing result of the coprocessor 5A read by the CPU 3A is small, the step S7 is omitted, and the operation mode of the bank 0 is kept at the low speed mode, and the CPU 3A outputs the coprocessor 5A from the bank 0. May be read out.
[0066]
In this embodiment, a case has been described in which the operation mode of, for example, the banks 2 and 3 not used for the arithmetic processing of the coprocessor 5A is switched by the CPU 3A to the operation mode (pause mode) with minimal power consumption in step S1. However, the coprocessor 5A can switch the operation mode of, for example, the banks 2 and 3 that are not used for the arithmetic processing to the operation mode with minimal power consumption (pause mode), for example, at the time of startup or the start of the processing. No problem.
[0067]
In this embodiment, the case where the shared memory 71 is constituted by a plurality of banks 0 to 3 has been described. However, the shared memory 71 may be constituted by one bank. In this case, among the effects of this embodiment, only the effects other than the effects resulting from the shared memory 71 being constituted by the plurality of banks 0 to 3 are obtained.
[0068]
<Embodiment 2>
The multiprocessor 1B according to the second embodiment differs from the multiprocessor 1A according to the first embodiment in that the access right and the operation mode of each of the banks 0 to 3 that are switch-controlled by the coprocessor 5A are different from those of the CPU 3A. It is set (specified) from.
[0069]
As shown in FIGS. 1 and 14, the multiprocessor 1B according to this embodiment includes a CPU 3B, a coprocessor 5B, and a shared memory 71 between the CPU 3B and the coprocessor 5B, similarly to the multiprocessor 1A according to the first embodiment. And a ROM 11 in which a program executed by the coprocessor 5B is stored, and a cache 9 for increasing the memory access speed of the CPU 3B. Hereinafter, among the components of the multiprocessor 1B, the same components as those of the multiprocessor 1A are denoted by the same reference numerals and description thereof will be omitted.
[0070]
The coprocessor 5B of this embodiment differs from the coprocessor 5A of the first embodiment in that, when the arithmetic processing during its execution is completed, instead of executing a SLAVEM instruction capable of designating an operand, By executing a SLAVE instruction that cannot be specified, the same processing operation is set except that HALT_CNT 79 is set to 0. The SLAVE instruction is an instruction for setting HALT_CNT 79 to 0, similarly to the SLAVEM instruction, and is an instruction function that is standardly mounted in a multiprocessor employing a master-slave system architecture.
[0071]
As shown in FIG. 8, the memory map MM of the multiprocessor 1B according to this embodiment is different from the memory map MM of the multiprocessor 1A of the first embodiment (FIG. 5) for controlling the coprocessor 5B. The configuration is the same except that POWER_CNT 713 is further added as a control register. The POWER_CNT 713 is a register in which access rights and operation mode settings of each of the banks 0 to 3 set (designated) by the CPU 3B are set. The POWER_CNT 713 sets and inputs the access right setting and the operation mode setting of each of the banks 0 to 3 set in the POWER_CNT 713 due to the execution of the SLAVE instruction by the coprocessor 5B. Thereby, the access right and operation mode of each of the banks 0 to 3 are switched to the setting of the access right and the operation mode of each of the banks 0 to 3 set in the POWER_CNT 713.
[0072]
Next, the operation of the multiprocessor 1B will be described with reference to FIGS. FIG. 9 is a flowchart illustrating the operation of the CPU 3B when the multiprocessor 1B operates, and FIG. 10 is a flowchart illustrating the operation of the coprocessor 5B when the multiprocessor 1B operates. Here, a case will be described in which the coprocessor 5B calculates 2048 FFT coefficients, and the CPU 3B reads out all the coefficients (2048 FFT coefficients).
[0073]
As shown in FIG. 9, the processing operation of the CPU 3B of this embodiment differs from the processing operation of the CPU 3A of the first embodiment in that, for example, 0x2233 is set in the POWER_CNT 713 in step S3-2 after the processing in step S3. The same processing operation is set except that the process proceeds to step S4 after that. By setting, for example, 0x2233 to the POWER_CNT 713 in step S3-2, in step T2 of the processing operation of the coprocessor 5B described later, the access right and the contents of the operation mode of each of the banks 0 to 3 that are switched and controlled by the coprocessor 5B are changed. For example, they are set as shown in Table 5.
[0074]
[Table 5]
Figure 2004038642
[0075]
Note that the setting in Table 5 is an example in which all the 2048-point FFT coefficients calculated by the coprocessor 5B are read out by the CPU 3B in the example of the operation description here. Among the bank 0 and the bank 1 used for storing the result (the coefficient of the FFT of 2048 points), the operation modes of both the bank 0 and the bank 1 used for storing the coefficient of all 2048 points read out by the CPU 3B are set to the low speed. In this mode, the access right of both bank 0 and bank 1 is set back to the CPU 3B so that all the FFT coefficients can be read from the CPU 3B. The operation modes of the other banks 2 and 3 are not used in the arithmetic processing of the coprocessor 5B, so that they remain set to the sleep mode with the minimum power consumption. Remains set to the side.
[0076]
On the other hand, as shown in FIG. 10, the processing operation of the processor 5B of this embodiment executes a SLAVE instruction in which an operand cannot be specified in step T2, as compared with the processing operation of the coprocessor 5A of the first embodiment. Thus, the same processing operation is set except that HALT_CNT 79 is set to 0. That is, by executing the SLAVE instruction by the coprocessor 5B in step T2, 0 is set in the HALT_CNT 79 and the end of the arithmetic processing of the coprocessor 5B is notified to the CPU 3B, and the setting of the 0x2233 set in the POWER_CNT 713 is changed. A similar processing operation is performed except that the setting right is input to the MEMCONT 73 and the access right and operation mode of each of the banks 0 to 3 are switched as shown in Table 5.
[0077]
In the description of the operation of this embodiment, the result of the arithmetic processing of the coprocessor 5B read by the CPU 3B is stored in the bank 0 and the bank 1. Therefore, in step S7 in this embodiment, the CPU 3B sets 0x0033 (setting in Table 1) in the MEMCONT 73 to switch the operation mode of both the bank 0 and the bank 1 to the normal mode capable of high-speed reading. Note that this is slightly different from the case of step S7 in the first embodiment.
[0078]
According to the multiprocessor 1B configured as described above, the access right and contents of the operation mode of each of the banks 0 to 3 that are switched and controlled by the coprocessor 5B can be set (designated) from the CPU 3B side. The contents of the operation modes of the banks 0 to 3 that are switched and controlled by the coprocessor 5B in accordance with the change in the processing contents (the number of results of the arithmetic processing of the coprocessor 5B read from the shared memory 71 by the CPU 3B) In addition, only by changing the setting of the CPU 3B, it is possible to change the contents of the access right and the operation mode of each of the banks 0 to 3 that are switched and controlled by the coprocessor 5B together with the change of the processing content of the CPU 3B, and the setting can be easily changed. Also, (2) the software related to the setting of the access right and the setting of the operation mode of each of the banks 0 to 3 on the coprocessor 5B side. It can be omitted algorithm Touea, thereby to reduce the simplification and software execution cycle of the software algorithms executed by the coprocessor 5B.
[0079]
<Embodiment 3>
In the multiprocessor 1C according to the third embodiment, when there is no access to each of the banks 0 to 3 of the shared memory 71 for a certain period of time in the multiprocessor 1A of the first embodiment, The operation mode 3 is autonomously (automatically) switched by the memory device 7A to, for example, a low-speed mode with low power consumption, without being controlled by the CPU 3A and the coprocessor 5A.
[0080]
That is, as shown in FIG. 14, the multiprocessor 1C according to this embodiment includes a CPU 3A, a coprocessor 5A, a memory device 7C, a ROM 11, a cache (Cache), as in the multiprocessor 1A according to the first embodiment. 9 is mainly provided. Hereinafter, among the components of the multiprocessor 1C, the same components as those of the multiprocessor 1A will be assigned the same reference numerals and description thereof will be omitted.
[0081]
Also, as shown in FIG. 11, the memory device 7C of this embodiment is different from the memory device 7A of the first embodiment (FIG. 1) in that a timer for measuring the time during which each of the banks 0 to 3 is not accessed is used. (Time measuring means) 715 and the operation mode control unit 77C is changed as described later, except that the operation mode is changed.
[0082]
As shown in FIG. 12, the memory map MM of the multiprocessor 1C according to the present embodiment further includes a TIMER_CONT 717 as compared with the memory map MM of the multiprocessor 1A according to the first embodiment (FIG. 5). The configuration is the same except for the differences. The TIMER_CONT 717 is a time interval from the time when access to the banks 0 to 3 is lost to the time when the operation mode of the banks 0 to 3 is autonomously switched to, for example, the low-speed mode by the memory device 7C (this time interval is equal to the above-mentioned fixed time). Is a register set by the count number.
[0083]
The timer unit 715 includes four down counters (not shown) for measuring the time during which each of the banks 0 to 3 is not accessed. Each of the down counters is a counter that counts the predetermined time by setting the count number set in TIMER_CONT 717 as an initial value and reducing the count number by 1 every time a predetermined time elapses until the count number becomes 0. It is.
[0084]
The timer unit 715 determines that for each of the banks 0 to 3 of the shared memory 71, (1) the operation mode of the banks 0 to 3 is, for example, the normal mode, and (2) that the access right of the banks 0 to 3 is, for example, the CPU 3A. (3) When the access (read / write) to the banks 0 to 3 disappears in the situation on the side, the timing of the inaccessible time of the banks 0 to 3 is started using the down counter as described above. Then, the timer unit 715 notifies the operation mode control unit 77C of the fact only when the above-mentioned fixed time has been measured for the banks 0 to 3. It should be noted that when there is access to the banks 0 to 3 during the counting, the timer unit 715 resets the counting from the initial value. When at least one of the above (1) and (2) is not satisfied with respect to the banks 0 to 3 during the counting, the timer unit 715 stops the counting. It should be noted that the timer unit 715 does not perform time counting when 0 (zero) is set as the count number in the TIMER_CONT 717 (that is, the counter of the timer unit 715 becomes inactive).
[0085]
The operation mode control unit 77C of the present embodiment autonomously changes the operation mode of the banks 0 to 3 which have not been accessed for the certain time only when it is notified from the timer unit 715 that the certain time has been measured. For example, switch to the low-speed mode. Specifically, for example, the operation mode control unit 77C changes the setting of the MEMCONT73 by itself so that the operation mode of the banks 0 to 3 that have not been accessed for a certain time is switched to, for example, the low-speed mode, and according to the changed setting of the MEMCONT73. The operation mode of the banks 0 to 3 which have not been accessed for the predetermined time is switched to the low speed mode.
[0086]
With this configuration, when there is no access to each of the banks 0 to 3 of the shared memory 71 for a certain period of time, the operation mode of the banks 0 to 3 that have not been accessed is autonomously controlled without being switched by the CPU 3A and the coprocessor 5A. The memory device 7C is switched to, for example, a low-speed mode with low power consumption.
[0087]
According to the multiprocessor 1C configured as described above, when there is no access to each of the banks 0 to 3 of the shared memory 71 for a certain period of time, the operation mode of the banks 0 to 3 without access is set to the CPU 3A and the coprocessor 5A. Even if the switching control is not performed, the memory device 7C can autonomously switch to, for example, a low-speed mode in which power consumption is low, so that the control load on the banks 0 to 3 by the CPU 3A and the coprocessor 5A can be reduced, and the power consumption of the shared memory 71 Reduction can be achieved.
[0088]
Further, the power consumption of the shared memory 71 can be reduced only by setting and adjusting the time interval until the operation mode of the banks 0 to 3 is autonomously switched to the low-speed mode by the memory device 7C, that is, by simple setting adjustment. It is possible to easily adjust whether the setting for emphasizing high-speed access to the setting, the setting for emphasizing low power consumption, or the setting in between.
[0089]
Although not particularly described in this embodiment, the setting of the count number in TIMER_CONT 717 may be set in, for example, CPU 3A or coprocessor 5A, or may be set at the time of manufacturing.
[0090]
In this embodiment, the case where the present invention is applied to the multiprocessor 1A according to the first embodiment has been described, but the present invention may be applied to the multiprocessor 1B according to the second embodiment. In this case, the same effect as that of the embodiment can be obtained.
[0091]
In the first to third embodiments, it goes without saying that the power control method of the multiprocessor is also included in the category of the first to third embodiments.
[0092]
<Embodiment 4>
The multiprocessor 1D according to the fourth embodiment differs from the multiprocessor 1A (FIG. 1) according to the first embodiment in that the I / F register 73, the switch unit 75, and the operation among the constituent elements of the memory device 7A. The mode controller 77 is mounted on the coprocessor 5A.
[0093]
That is, the memory device (storage means) 7D of this embodiment is configured by mounting only the shared memory 71 as shown in FIG. On the other hand, as shown in FIG. 13, the coprocessor 5D of this embodiment further includes an I / F register 73, a switch unit 75, and an operation mode control unit 77 of the memory device 7D in addition to the operation unit 51 originally provided. It is composed.
[0094]
The operation of the multiprocessor 1D according to this embodiment is the same as the operation of the multiprocessor 1A according to the first embodiment, and a description thereof will be omitted.
[0095]
According to the multiprocessor 1D configured as described above, the memory device 7D implements only the device part (SRAM) that configures the shared memory 71 among the constituent elements, and the banks 0 to 0 of the shared memory 71 3 (operation mode control unit 77 and I / F register 73), and a device part (switch) related to control of access between CPU 3A and coprocessor 5D and each of banks 0-3. Since the unit 75) is mounted on the coprocessor 5D, the memory device 7D can be configured only with the shared memory 71 (that is, with a simple configuration of functions), and the design reusability of the memory device 7D can be improved.
[0096]
In this embodiment, the case where the present invention is applied to the multiprocessor 1A of the first embodiment has been described. However, it is needless to say that the present invention can be applied to the multiprocessors 1B and 1C of the second and third embodiments.
[0097]
【The invention's effect】
According to the first aspect of the present invention, the shared storage means of the first processor and the second processor is configured to have one or more banks, and the operation mode of each bank is individually set to the power consumption. The operation mode is switched to any one of a plurality of different operation modes. In addition to the operation mode of each bank of the storage unit being individually controlled by the first processor, the operation mode of each bank is also controlled by the second processor. Since the operation mode is individually controlled, the operation mode of each bank can be individually controlled in accordance with the progress of the processing of the second processor. Therefore, only the progress of the processing of the first processor is considered. This makes it possible to more precisely control the power consumption of the storage unit and reduce the power consumption. In particular, when the storage means has two or more banks, the operation mode can be switched for each bank, which can further contribute to a reduction in power consumption.
[0098]
According to the second aspect of the present invention, the first processor or the second processor switches the operation mode of the bank not used for the processing of the second processor to the operation mode with low power consumption. Power consumption can be reduced.
[0099]
According to the third aspect of the present invention, when the processing of the second processor ends, the operation mode of the bank used for the processing is switched by the second processor to a mode with low power consumption. It is possible to reduce the power consumption of the storage unit between the time when the processing result is stored in the bank (that is, the storage unit) and the time when the processing result is read out by the first processor.
[0100]
According to the fourth aspect of the present invention, when the processing of the second processor is completed, the operation mode of the bank used for storing a predetermined processing result among the processing results by the second processor is changed. The operation mode is switched to the operation mode with the minimum power consumption as long as the predetermined processing result can be held, and the operation mode of the banks other than the bank is switched to the operation mode with the minimum power consumption. Can be stored in the storage unit with the minimum power consumption, and the power consumption of the storage unit can be reduced.
[0101]
According to the fifth aspect of the present invention, the operation mode of each bank of the storage means is designated (set) by the first processor, and the operation mode of each bank is designated by the first processor by the second processor. Since the mode can be switched to the operation mode, the content of the operation mode of each bank switched and controlled by the second processor can be changed together with the change of the processing content of the first processor only by changing the setting of the first processor. Becomes easier. In addition, the software algorithm of the portion related to the setting of the operation mode contents of each bank on the second processor side can be omitted, and the software algorithm executed by the second processor can be simplified and the software execution cycle can be reduced. Can be reduced.
[0102]
According to the invention described in claim 6, when the first processor accesses the bank used for storing the processing result of the second processor, the operation mode of the bank is changed by the first processor to the access speed. Since the operation mode can be switched to the fast operation mode, for example, even if the data amount of the processing result of the second processor stored in the bank is large, the data can be quickly read.
[0103]
According to the seventh aspect of the present invention, the storage unit measures the time during which each bank is not accessed, and automatically switches the operation mode of the bank that is not accessed for a fixed time to the operation mode with low power consumption. The control load of each bank by the first processor and the second processor can be reduced, and the power consumption of the storage means can be reduced.
[0104]
According to the eighth aspect of the present invention, since the storage means is constituted only by the device portion constituting each bank, that is, with a simple configuration of functions, the design reusability of the storage means can be improved.
[Brief description of the drawings]
FIG. 1 is a schematic configuration diagram of a memory device configuring a shared memory of a multiprocessor according to a first embodiment of the present invention;
FIG. 2 is a diagram illustrating an operation mode of the shared memory of FIG.
FIG. 3 is a diagram showing characteristics of each operation mode of the shared memory of FIG. 1;
FIG. 4 is a diagram illustrating an example of a bit field of the IF register of FIG. 1;
FIG. 5 is an example of a memory map of the multiprocessor of FIG. 1;
6 is a flowchart illustrating the operation of the CPU when the multiprocessor of FIG. 1 operates.
FIG. 7 is a flowchart illustrating an operation of the coprocessor when the multiprocessor of FIG. 1 operates.
FIG. 8 is an example of a memory map of a multiprocessor according to a second embodiment of the present invention.
FIG. 9 is a flowchart illustrating the operation of the CPU when the multiprocessor according to the second embodiment of the present invention operates.
FIG. 10 is a flowchart illustrating an operation of the coprocessor when the multiprocessor according to the second embodiment of the present invention operates.
FIG. 11 is a schematic configuration diagram of a memory device of a multiprocessor according to a third embodiment of the present invention.
FIG. 12 is an example of a memory map of the multiprocessor of FIG. 11;
FIG. 13 is a schematic configuration diagram of a memory device and a coprocessor of a multiprocessor according to a fourth embodiment of the present invention.
FIG. 14 is a schematic configuration diagram of a general multiprocessor.
FIG. 15 is a schematic diagram showing a flow of data transmitted and received among a CPU, a coprocessor, and a shared memory and a control flow when one collective process is executed in a conventional multiprocessor.
[Explanation of symbols]
1A, 1B, 1C, 1D multiprocessor, 3A, 3B CPU, 5A, 5B, 5D coprocessor, 7A, 7C, 7D memory device, 9 cache, 11 ROM, 71 shared memory, 73 IF register, 75 switch unit, 77 , 77C operation mode control unit, 79 HALT_CNT, 711 PC_CNT, 713 POWER_CNT, 715 timer unit.

Claims (8)

第1のプロセッサと、第2のプロセッサと、前記第1のプロセッサ及び前記第2のプロセッサにより共有され、それぞれの動作モードが個別に消費電力の異なる複数の動作モードのうちの何れかに切り替えられる1つ以上のバンクを有する記憶手段とを備えたマルチプロセッサであって、
前記第1のプロセッサにより前記記憶手段の各バンクの動作モードが個別に切替制御されることに加えて、前記第2のプロセッサによっても前記各バンクの動作モードが個別に切替制御されることを特徴とするマルチプロセッサ。
The first processor, the second processor, and the first processor and the second processor share the operation mode, and each operation mode is individually switched to any one of a plurality of operation modes having different power consumption. A storage means having one or more banks.
The operation mode of each bank of the storage means is individually controlled by the first processor, and the operation mode of each bank is individually controlled by the second processor. And a multiprocessor.
前記記憶手段が2つ以上のバンクを有して構成される場合に於いて、前記第1のプロセッサ又は前記第2のプロセッサにより、前記第2のプロセッサの処理に使用されない前記バンクの動作モードが消費電力の低い動作モードに切り替えられることを特徴とする請求項1に記載のマルチプロセッサ。In the case where the storage means is configured to have two or more banks, the first processor or the second processor sets an operation mode of the bank not used for the processing of the second processor. The multiprocessor according to claim 1, wherein the operation mode is switched to an operation mode with low power consumption. 前記第2のプロセッサの処理終了の際に、その第2のプロセッサにより、その処理に使用された前記バンクの動作モードが消費電力の低いモードに切り替えられることを特徴とする請求項1又は請求項2に記載のマルチプロセッサ。2. The operation mode of the bank used for the processing is switched to a mode with low power consumption by the second processor when the processing of the second processor ends. 3. The multiprocessor according to 2. 前記記憶手段が2つ以上のバンクを有して構成される場合に於いて、前記第2のプロセッサの処理終了の際に、その第2のプロセッサにより、その処理結果のうちの所定の処理結果の保存に使用された前記バンクの動作モードが、その所定の処理結果を保持できる範囲で消費電力の最少の動作モードに切り替えられ、そのバンク以外の前記バンクの動作モードが、消費電力の最少の動作モードに切り替えられることを特徴とする請求項3に記載のマルチプロセッサ。In the case where the storage means is configured to have two or more banks, when the processing of the second processor is completed, a predetermined processing result of the processing result is output by the second processor. The operation mode of the bank used to store the data is switched to the operation mode of the minimum power consumption within a range capable of holding the predetermined processing result, and the operation modes of the banks other than the bank are switched to the operation modes of the minimum power consumption. The multiprocessor according to claim 3, wherein the multiprocessor is switched to an operation mode. 前記第1のプロセッサにより前記記憶手段の各バンクの動作モードが指定され、前記第2のプロセッサにより前記各バンクの動作モードが前記第1のプロセッサにより指定された前記動作モードに切り替えられることを特徴とする請求項1乃至請求項4の何れかに記載のマルチプロセッサ。The operation mode of each bank of the storage means is designated by the first processor, and the operation mode of each bank is switched to the operation mode designated by the first processor by the second processor. The multiprocessor according to any one of claims 1 to 4, wherein 前記第1のプロセッサが前記第2のプロセッサの処理結果の保存に使用された前記バンクにアクセスする際に、前記第1のプロセッサによりそのバンクの動作モードがアクセス速度の速い動作モードに切り替えられることを特徴とする請求項1乃至請求項5の何れかに記載のマルチプロセッサ。When the first processor accesses the bank used for storing the processing result of the second processor, the operation mode of the bank is switched by the first processor to an operation mode having a high access speed. The multiprocessor according to claim 1, wherein: 前記記憶手段は、その各バンクのアクセスされない時間を計時する計時手段を有し、自律的に一定時間アクセスされないバンクの動作モードを消費電力の低い動作モードに切り替えることを特徴とする請求項1乃至請求項6の何れかに記載のマルチプロセッサ。4. The storage device according to claim 1, wherein the storage unit includes a timer unit that counts an inaccessible time of each of the banks, and autonomously switches an operation mode of a bank that is not accessed for a predetermined time to an operation mode of low power consumption. The multiprocessor according to claim 6. 前記記憶手段は、その構成部分のうち、前記各バンクを構成する装置部分だけを自ら実装し、前記各バンクの動作モードの切り替えに関わる装置部分、及び、前記第1のプロセッサ及び前記第2のプロセッサと前記各バンクとの間のアクセスの制御に関わる装置部分が前記第2のプロセッサ側に実装されることを特徴とする請求項1乃至請求項7の何れか記載のマルチプロセッサ。The storage means, among its constituent parts, implements only the device part constituting each of the banks by itself, the device part involved in switching the operation mode of each bank, and the first processor and the second processor. 8. The multiprocessor according to claim 1, wherein a device portion related to control of access between a processor and each of the banks is mounted on the second processor.
JP2002195836A 2002-07-04 2002-07-04 Multiprocessor Pending JP2004038642A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2002195836A JP2004038642A (en) 2002-07-04 2002-07-04 Multiprocessor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002195836A JP2004038642A (en) 2002-07-04 2002-07-04 Multiprocessor

Publications (1)

Publication Number Publication Date
JP2004038642A true JP2004038642A (en) 2004-02-05

Family

ID=31704105

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002195836A Pending JP2004038642A (en) 2002-07-04 2002-07-04 Multiprocessor

Country Status (1)

Country Link
JP (1) JP2004038642A (en)

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007305148A (en) * 2007-06-25 2007-11-22 Univ Waseda Multi-processor system
KR100888427B1 (en) * 2006-09-15 2009-03-11 엠텍비젼 주식회사 Device having shared memory and method for displaying data
JP2009516309A (en) * 2005-12-30 2009-04-16 インテル・コーポレーション Method and apparatus for zero voltage processor sleep state
WO2010035315A1 (en) * 2008-09-24 2010-04-01 富士通株式会社 Power consumption control method in multi-core cpu, power consumption control program, and information processing system
JP2010079729A (en) * 2008-09-26 2010-04-08 Canon Inc Information processing system and control method thereof, and computer program
US7895453B2 (en) 2005-04-12 2011-02-22 Waseda University Multiprocessor system and multigrain parallelizing compiler
JP2012523052A (en) * 2009-04-02 2012-09-27 クアルコム,インコーポレイテッド Multiple power mode system and method for memory
WO2014148174A1 (en) * 2013-03-22 2014-09-25 シャープ株式会社 Electronic device
KR101639059B1 (en) * 2015-02-06 2016-07-12 주식회사 텔레칩스 Device for security of data and method for security of data using the same
JP2016219044A (en) * 2005-08-18 2016-12-22 ディ.イー.ショー リサーチ, エルエルシーD.E.Shaw Research, Llc Parallel calculation architecture for calculating particle interaction
JP2022545715A (en) * 2019-08-26 2022-10-28 マイクロン テクノロジー,インク. Bank configurable power modes

Cited By (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9081575B2 (en) 2004-07-27 2015-07-14 Intel Corporation Method and apparatus for a zero voltage processor sleep state
US9870044B2 (en) 2004-07-27 2018-01-16 Intel Corporation Method and apparatus for a zero voltage processor sleep state
US9841807B2 (en) 2004-07-27 2017-12-12 Intel Corporation Method and apparatus for a zero voltage processor sleep state
US9235258B2 (en) 2004-07-27 2016-01-12 Intel Corporation Method and apparatus for a zero voltage processor
US9223389B2 (en) 2004-07-27 2015-12-29 Intel Corporation Method and apparatus for a zero voltage processor
US9223390B2 (en) 2004-07-27 2015-12-29 Intel Corporation Method and apparatus for a zero voltage processor
US9141180B2 (en) 2004-07-27 2015-09-22 Intel Corporation Method and apparatus for a zero voltage processor sleep state
US8812880B2 (en) 2005-04-12 2014-08-19 Waseda University Multiprocessor system and multigrain parallelizing compiler
US7895453B2 (en) 2005-04-12 2011-02-22 Waseda University Multiprocessor system and multigrain parallelizing compiler
JP2016219044A (en) * 2005-08-18 2016-12-22 ディ.イー.ショー リサーチ, エルエルシーD.E.Shaw Research, Llc Parallel calculation architecture for calculating particle interaction
US8707062B2 (en) 2005-12-30 2014-04-22 Intel Corporation Method and apparatus for powered off processor core mode
US8707066B2 (en) 2005-12-30 2014-04-22 Intel Corporation Method and apparatus for a zero voltage processor sleep state
JP2009516309A (en) * 2005-12-30 2009-04-16 インテル・コーポレーション Method and apparatus for zero voltage processor sleep state
KR100888427B1 (en) * 2006-09-15 2009-03-11 엠텍비젼 주식회사 Device having shared memory and method for displaying data
JP2007305148A (en) * 2007-06-25 2007-11-22 Univ Waseda Multi-processor system
WO2010035315A1 (en) * 2008-09-24 2010-04-01 富士通株式会社 Power consumption control method in multi-core cpu, power consumption control program, and information processing system
US8407505B2 (en) 2008-09-24 2013-03-26 Fujitsu Limited Power consumption control method in multicore CPU
JP5229326B2 (en) * 2008-09-24 2013-07-03 富士通株式会社 Power consumption control method, power consumption control program and information processing system in multi-core CPU
JP2010079729A (en) * 2008-09-26 2010-04-08 Canon Inc Information processing system and control method thereof, and computer program
JP2012523052A (en) * 2009-04-02 2012-09-27 クアルコム,インコーポレイテッド Multiple power mode system and method for memory
JP2014078251A (en) * 2009-04-02 2014-05-01 Qualcomm Inc Method of displaying associated information, and portable communication terminal
JP2014186478A (en) * 2013-03-22 2014-10-02 Sharp Corp Electronic apparatus
US9829961B2 (en) 2013-03-22 2017-11-28 Sharp Kabushiki Kaisha Electronic device
WO2014148174A1 (en) * 2013-03-22 2014-09-25 シャープ株式会社 Electronic device
KR101639059B1 (en) * 2015-02-06 2016-07-12 주식회사 텔레칩스 Device for security of data and method for security of data using the same
JP2022545715A (en) * 2019-08-26 2022-10-28 マイクロン テクノロジー,インク. Bank configurable power modes

Similar Documents

Publication Publication Date Title
JP4801100B2 (en) Power reduction by shutting down part of a stack register file
US7389403B1 (en) Adaptive computing ensemble microprocessor architecture
US5774702A (en) Integrated circuit having function blocks operating in response to clock signals
KR101136141B1 (en) Dynamic reconfiguration of cache memory
US9261949B2 (en) Method for adaptive performance optimization of the soc
US6631474B1 (en) System to coordinate switching between first and second processors and to coordinate cache coherency between first and second processors during switching
JP6092649B2 (en) Arithmetic unit, array type arithmetic unit, control method therefor, and information processing system
US6501999B1 (en) Multi-processor mobile computer system having one processor integrated with a chipset
US20050132239A1 (en) Almost-symmetric multiprocessor that supports high-performance and energy-efficient execution
JP3715714B2 (en) Low power memory system
US20090187777A1 (en) Increasing workload performance of one or more cores on multiple core processors
WO2007072435A2 (en) Reducingthe number of memory banks being powered
US20070043965A1 (en) Dynamic memory sizing for power reduction
US20130173938A1 (en) Data processing device and portable device having the same
US20130173951A1 (en) Controlling communication of a clock signal to a peripheral
JP5079342B2 (en) Multiprocessor device
US10410688B2 (en) Managing power state in one power domain based on power states in another power domain
JP2004038642A (en) Multiprocessor
WO2005069148A2 (en) Memory management method and related system
TWI407303B (en) Method for reducing power consumption and device with an embedded memory module
JP4421390B2 (en) Semiconductor integrated circuit
JP2001034530A (en) Microcomputer and memory access control method
US20200285406A1 (en) Filtering memory calibration
JP2004070854A (en) Data processor
EP3945424A1 (en) Memory power management method and processor system