JP2005234968A - 演算処理装置 - Google Patents

演算処理装置 Download PDF

Info

Publication number
JP2005234968A
JP2005234968A JP2004044656A JP2004044656A JP2005234968A JP 2005234968 A JP2005234968 A JP 2005234968A JP 2004044656 A JP2004044656 A JP 2004044656A JP 2004044656 A JP2004044656 A JP 2004044656A JP 2005234968 A JP2005234968 A JP 2005234968A
Authority
JP
Japan
Prior art keywords
instruction
vector
clock
unit
scalar
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.)
Granted
Application number
JP2004044656A
Other languages
English (en)
Other versions
JP4800582B2 (ja
Inventor
Mitsunari Todoroki
晃成 轟
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.)
Seiko Epson Corp
Original Assignee
Seiko Epson 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 Seiko Epson Corp filed Critical Seiko Epson Corp
Priority to JP2004044656A priority Critical patent/JP4800582B2/ja
Publication of JP2005234968A publication Critical patent/JP2005234968A/ja
Application granted granted Critical
Publication of JP4800582B2 publication Critical patent/JP4800582B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related 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)
  • Advance Control (AREA)
  • Executing Machine-Instructions (AREA)
  • Complex Calculations (AREA)
  • Microcomputers (AREA)

Abstract

【課題】 種類の異なる複数のモジュールが設けられている場合においても、プログラミングにかかる負担を抑制しつつ、消費電力を低減する。
【解決手段】 デコード部40は、フェッチ部30で読み出された命令の種別および命令の形態を判別し、複数サイクル命令管理部50は、デコード部40から出力された命令デコード情報に基づいて、どのモジュールが使用されるかを命令ごとに判断し、そのモジュールの電力を制御する電力制御信号を動作状態管理部70に出力し、動作状態管理部70は、複数サイクル命令管理部50から出力された電力制御信号に基づいて、今回の命令で使用されるモジュールに対応したイネーブル信号EN_0〜EN_nを生成し、クロック制御部80は、このイネーブル信号EN_0〜EN_nに基づいてクロックゲーティングを行うことにより、今回の命令で使用されるモジュールにクロック信号clkN_0〜clk_nを供給する。
【選択図】 図1

Description

本発明は、演算処理装置に関し、特に、ベクトル命令に基づいて各モジュールのクロックゲーティングを行いながら、複数の演算器を並列に動作させることによりパイプライン処理を行う方法に適用して好適なものである。
従来、プロセッサの低消費電力化を図る技術としては、例えば、特許文献1に開示されたマイクロコンピュータの動作方法(以下、第1の従来例という。)、特許文献2に開示された情報処理装置(以下、第2の従来例という。)、特許文献3に開示された低消費電力プロセッサ(以下、第3の従来例という。)および特許文献4に開示された低消費電力プロセッサ(以下、第4の従来例という。)があった。さらに、特許文献5に開示されたプロセッサ(以下、第5の従来例という。)、特許文献6に開示されたプロセッサシステム(以下、第6の従来例という。)、特許文献7に開示されたマイクロコンピュータ(以下、第7の従来例という。)および特許文献8に開示された低消費マイクロプロセッサ(以下、第8の従来例という。)があった。
第1の従来例は、基準信号発生回路と、基準信号発生回路の出力によりシステムの動作を制御するクロックを発生するクロックジェネレータと、プログラムを構成する命令が書き込まれたROMと、ROMに書き込まれた命令を取り出すためにROMのアドレスを指定するプログラムカウンタと、プログラムカウンタで取り出した命令を解読して各種回路を制御する制御回路と、所定の命令が実行されたときクロックジェネレータの動作を停止させる状態制御回路とを備えている。そして、クロックジェネレータの動作停止状態は、少なくとも割込信号の印加によって解除され、かつ、割込信号の印加により制御回路は、プログラムカウンタにクロックジェネレータの動作停止の原因となった命令が書き込まれたアドレスを再びセットすることにより、割込処理終了後に再びクロックジェネレータの動作を停止するようになっている。
これにより、割込信号が印加するまでクロックジェネレータの動作が停止するので、消費電力を低減することができる。
第2の従来例は、主要業務のアプリケーション・プログラムを格納する記憶装置と、そのプログラムを実行する高速動作可能なメインCPUと、主要業務以外の処理を実行する低電圧駆動、低消費電力型のサブCPUと、サブCPUによって制御される周辺回路とを備えている。
これにより、サブCPUがメインCPUに代わって周辺回路を制御するので、消費電力を低減することができる。
第3の従来例は、命令プログラムの実行に関与する回路を判別し、命令プログラムの実行に関与する回路のみにクロックを供給する制御回路を備えている。
これにより、命令プログラムの実行に関与する回路のみにクロックが供給されるので、消費電力を低減することができる。
第4の従来例は、プログラムを処理するプロセッサの複数の回路ブロックの別々のクロック入力を、有効にするか無効にするかの手段(例えば各クロック入力に対し符号0/1のフラグACLK1 〜ACLKnを付加する手段)をプロセッサの外部に備えるように構成する。
これにより、ディジタル信号処理プロセッサなどのプログラム処理のプロセッサについて消費電力を低減することができる。
第5の従来例は、マイクロプロセッサを構成する各ハードウェア資源への入力クロックのサイクル数を命令によって個別に変更することを可能にし、コンパイラによって実行に不要であると判断されたハードウェア資源への入力クロックを低下または停止する命令を挿入する。また、実行に必要なハードウェア資源のクロックサイクルを全ハードウェア資源の最大動作周波数とする。
これにより、マイクロプロセッサの消費電力を実行性能を低下することなく削減することができる。
第6の従来例は、命令列をデコードするデコ−ダと、データについての演算を行なう命令ユニットと、デコ−ダが命令列をデコードした結果が、命令ユニットへの命令がNOP(no−operation)であるときには、命令ユニットの電源をオフとする電源制御ユニットとを備え、命令ユニットへの命令がNOPであるときには、命令ユニットの電源がオフとされる。
これにより、デコード結果がNOPであるときは、命令ユニットの電源がオフとなるので、消費電力を低減することができる。
第7の従来例は、CPUで実行される命令のうち、高速処理が要求されるものと高速処理が要求されないものとを識別するための情報がテーブル化されたテーブルメモリを設け、CPUに命令がフェッチされるごとに、テーブルメモリの情報に基づいてクロック信号の周波数を制御する。
これにより、命令に応じてクロック信号の周波数を下げることができ、マイクロコンピュータ応用機器の全体としてのパフォーマンスを保ったまま、消費電力を低減することができる。
第8の従来例は、命令キャッシュから供給される命令列において、命令無効化回路で浮動小数点演算ユニットを使用しない命令を無効命令に置き換え、その無効命令を浮動小数点命令レジスタに保持し、浮動小数点演算ユニット内の浮動小数点デコーダに供給するように構成される。
これにより、無効命令が連続した場合、浮動小数点データパスに加え、浮動小数点デコーダと浮動小数点レジスタの消費電力を低減することができる。
特開昭59−182389号公報 特開平4−96856号公報 特開平4−127210号公報 特開平8−234861号公報 特開平9−22318号公報 特開平9−34599号公報 特開平11−85723号公報 特開2001−22582号公報
このように、第1ないし第8の従来例はいずれも、シングルプロセッサを対象として消費電力の低減を図るものである。しかしながら、複数の演算器を備えそれらを並列に動作させる並列演算処理装置を対象とした場合、同様の電力制御では、次のような問題がある。
第6の従来例は、デコード結果がNOPであるときは、命令ユニットの電源をオフとするようになっている。しかし、並列演算処理装置では、複数の演算器のうち一部を使って演算を行う場合、演算を行わない他の演算器にNOPを与えないこともあり、このような場合は、低消費電力化を十分に図ることができない。これは、演算を行わない他の演算器にもNOPを与えることとすると、プログラム容量が膨大になってしまうためである。
また、並列演算処理装置には、例えば、ベクトル演算に特化した演算器やスカラ演算に特化した演算器のように、複数種類の演算器を組み合わせて構成し、演算の効率化を高めるものもある。しかし、それら演算器は演算の性質が異なるため、これを同列に取り扱い省電力制御するのは、消費電力を低減する観点からは効果的ではない。
また、並列演算処理装置は、複数の演算器のほか、演算器が演算に利用するデータを格納するためのレジスタを備えている。しかし、第1ないし第6の従来例では、演算器の省電力制御しか行っていないため、演算器がレジスタを使用しない命令コードを実行する場合には、レジスタで不要な電力が消費されてしまう。したがって、低消費電力化を十分に図ることができない。
そこで、本発明の目的は、種類の異なる複数のモジュールが設けられている場合においても、プログラミングにかかる負担を抑制しつつ、消費電力を低減することが可能な演算処理装置を提供することである。
上述した課題を解決するために、本発明の一態様に係る演算処理装置によれば、命令で指定された演算処理を行う複数のモジュールと、前記命令を実行するために必要な期間中に前記命令を実行するために必要なモジュールを選択して消費電力の制御を行う消費電力制御部とを備えることを特徴とする。
これにより、対象となる今回の命令で使用されるモジュールのみを動作させながら、対象となる今回の命令で指定される演算処理を実行させることが可能となる。このため、モジュールに演算処理を行わせるため命令を与えることにより、対象となる今回の命令で使用されないモジュールを停止させることが可能となり、対象となる今回の命令で使用されない他のモジュールを特定するために、NOP命令などを挿入する必要がなくなることから、種類の異なる複数のモジュールが設けられている場合においても、プログラミングにかかる負担を抑制しつつ、消費電力を低減することが可能となる。
また、本発明の一態様に係る演算処理装置によれば、前記モジュール単位で挿入された第1クロックゲーティングマクロ回路が設けられ、前記消費電力制御部は、前記命令を実行するために必要な期間中に前記命令を実行するために必要なモジュールに対応した第1クロックゲーティングマクロ回路に第1イネーブル信号を供給することにより、前記命令を実行するために必要なモジュールを選択し、クロックを供給することを特徴とする。
これにより、命令の解読結果に基づいてクロックゲーティングマクロ回路にイネーブル信号を供給することが可能となる。このため、実行プログラムにNOP命令などを挿入することなく、今回の命令で使用されるモジュールにのみクロック信号を供給することが可能となるとともに、今回の命令で使用されないモジュールにはクロック信号の供給を停止することが可能となり、プログラミングにかかる負担を抑制しつつ、消費電力を低減することが可能となる。
また、本発明の一態様に係る演算処理装置によれば、前記モジュールは、スカラー演算を行う複数のスカラー演算器と、ベクトル演算を行う複数のベクトル演算器と、スカラーデータを格納するスカラーレジスタと、ベクトルデータを格納するベクトルレジスタとを備え、前記消費電力制御部は、前記命令の種別がベクトル命令の場合、前記ベクトル命令の実行期間中に、前記ベクトル演算器および前記ベクトルレジスタにクロックを供給するとともに、前記スカラー演算器および前記スカラーレジスタへのクロックの供給を停止することを特徴とする。
これにより、ベクトル命令に基づいて各モジュールのクロックゲーティングを行いながら、複数のベクトル演算器を並列に動作させることによりパイプライン処理を行わせることが可能となる。このため、複数の演算器のほか、それらの演算器が演算に利用するデータを格納するためのレジスタが設けられている場合においても、プログラミングにかかる負担を抑制しつつ、消費電力を低減することが可能となる。
また、本発明の一態様に係る演算処理装置によれば、前記消費電力制御部は、前記ベクトル命令に含まれるオペコードに基づいて、クロックを供給するベクトル演算器を選択することを特徴とする。
これにより、ベクトル命令に基づいて、どのモジュールが使用されるかを判断することが可能となる。このため、実行プログラムにNOP命令などを挿入することなく、対象となる今回のベクトル命令で使用されるモジュールにのみクロック信号を供給することが可能となり、プログラミングにかかる負担を抑制しつつ、消費電力を低減することが可能となる。
また、本発明の一態様に係る演算処理装置によれば、前記消費電力制御部は、前記ベクトル命令に含まれる演算要素数に基づいて、前記ベクトル演算器および前記ベクトルレジスタにクロックを供給するサイクル数を決定することを特徴とする。
これにより、ベクトル命令で指定された演算を行うために何サイクルかかるかを判断することが可能となる。このため、ベクトル命令を実行するために必要なサイクル数分だけ、対象となる今回のベクトル命令で使用されるモジュールのみにクロック信号を供給することを可能となり、プログラミングにかかる負担を抑制しつつ、消費電力を低減することが可能となる。
また、本発明の一態様に係る演算処理装置によれば、前記消費電力制御部は、複数のベクトル命令の依存関係に基づいて、どのモジュールに何サイクル分だけクロックを供給するかを判断することを特徴とする。
これにより、複数のベクトル演算器を並列に動作させながら、ベクトル命令のパイプライン処理が行われる場合においても、それらのベクトル命令で使用されるモジュールのみにクロック信号を供給することが可能となり、プログラミングにかかる負担を抑制しつつ、消費電力を低減することが可能となる。
また、本発明の一態様に係る演算処理装置によれば、前記消費電力制御部は、前記命令の種別がスカラー命令の場合、前記スカラー命令の実行期間中に、前記スカラー演算器および前記スカラーレジスタにクロックを供給するとともに、前記ベクトル演算器および前記ベクトルレジスタへのクロックの供給を停止することを特徴とする。
これにより、スカラー命令が入力された場合においても、スカラー命令で使用されるモジュールにのみクロック信号を供給することが可能となり、プログラミングにかかる負担を抑制しつつ、消費電力を低減することが可能となる。
また、本発明の一態様に係る演算処理装置によれば、前記消費電力制御部は、前記命令の種別がマルチサイクル命令の場合、前記マルチサイクル命令の実行期間中に、前記マルチサイクル命令の実行に使用されるモジュールにクロックを供給するとともに、前記マルチサイクル命令の実行に使用されないモジュールへのクロックの供給を停止することを特徴とする。
これにより、スカラー命令実行において1サイクルで演算が完了しない場合においても、マルチサイクル命令で使用されるモジュールのみにクロック信号を供給することが可能となり、プログラミングにかかる負担を抑制しつつ、消費電力を低減することが可能となる。
また、本発明の一態様に係る演算処理装置によれば、前記モジュールの構成要素単位で設けられ、前記命令を実行するために必要な期間中に前記命令を実行するために必要な構成要素を選択して消費電力の制御を局所的に行なう局所電力制御部をさらに備えることを特徴とする。
これにより、今回の命令で使用されないモジュールをモジュール単位で停止させることが可能となるだけでなく、今回の命令で使用されるモジュールのうちの実際に使用される部分のみを構成要素ごとに動作させることができ、プログラミングにかかる負担を抑制しつつ、消費電力をより一層低減することが可能となる。
また、本発明の一態様に係る演算処理装置によれば、前記構成要素単位で挿入された第2クロックゲーティングマクロ回路が設けられ、前記局所電力制御部は、前記命令を実行するために必要な期間中に前記命令を実行するために必要な構成要素に対応した第2クロックゲーティングマクロ回路に第2イネーブル信号を供給することにより、前記命令を実行するために必要な構成要素を選択することを特徴とする。
これにより、今回の命令で使用されるモジュールの構成要素に個別にクロック信号を供給することが可能となり、今回の命令で使用されるモジュールの消費電力をきめ細かく制御することを可能として、消費電力をより一層低減することが可能となる。
また、本発明の一態様に係る演算処理装置によれば、前記第1クロックゲーティングマクロ回路の後段に前記第2クロックゲーティングマクロ回路が接続され、前記モジュール単位で消費電力の制御を行ないながら、前記構成要素単位で消費電力の制御を行なうことを特徴とする。
これにより、今回の命令で使用されないモジュールへのクロック信号の供給を停止させることが可能となるだけでなく、今回の命令で使用されるモジュールのうちの実際に使用される構成要素にのみクロック信号を供給することができ、プログラミングにかかる負担を抑制しつつ、消費電力をより一層低減することが可能となる。
以下、本発明の実施形態に係る演算処理装置について図面を参照しながら説明する。なお、以下の実施形態では、図1のコンピュータシステムにおいて、複数の演算器を備える図2の並列演算処理プロセッサ100の各演算器を並列に動作させることによりパイプライン処理を行う場合を例にとって説明する。
図1は、本発明の一実施形態に係るコンピュータシステムの概略構成を示すブロック図である。
図1において、コンピュータシステムには、複数の演算器を備える並列演算処理プロセッサ100、所定領域にあらかじめ並列演算処理プロセッサ100の制御プログラム等を格納するメインメモリ110、データを入力可能なヒューマンインターフェースとしての入力部120、ディスプレイ等のデータを出力可能な出力部130、ネットワーク等を介して外部との通信を行う通信部140が設けられている。
ここで、メインメモリ110には、プログラムを格納するプログラム・テキスト領域111、定数などのデータを予め格納する初期化済みデータ領域112、定数などのデータを格納するための事前に確保された未初期化データ領域113、プログラム実行時に動的に確保されるヒープ領域114およびスタック領域115ならびにその他論理的に区分された記憶領域を有している。
そして、制御プログラムは、並列演算処理プロセッサ100が直接実行可能な低水準言語(例えば、機械語)で構成されており、高水準言語(例えば、C言語)により記述されたアセンブリソースコード200を、アセンブラ210およびリンカ220からなる命令コード生成系により低水準言語にコンパイルし、実行プログラム230として生成される。そして、生成された制御プログラムは、図示しないハードディスク等の補助記憶装置に格納されるが、並列演算処理プロセッサ100が実行するときは、プログラムローダ240によりメインメモリ110の記憶領域のうちプログラム・テキスト領域111に配置され、実行可能な状態に置かれる。なお、アセンブラ210、リンカ220およびプログラムローダ240は、一般にソフトウェアにより構成することができる。
図2は、図1の並列演算処理プロセッサ100の概略構成を示すブロック図である。
図2において、並列演算処理プロセッサ100には、メインメモリ110に対してアクセスを行うアクセス部100a、アクセス部100aを介して読み出した命令コードに基づいて並列演算処理を行う演算処理部100bおよび演算処理部100bの電力制御を行う電力制御部100cが設けられている。
そして、アクセス部100aは、汎用外部バス111を介してメインメモリ110にアクセスするメモリアクセス部1と、演算処理部100b自体が使用可能なローカルメモリ2と、ローカルメモリ2とメインメモリ110との間でデータ転送を行うDMA3と、データキャッシュを行うデータキャッシュメモリ4と、プログラムキャッシュを行うプログラムキャッシュメモリ5と、演算処理部100bおよびその他のモジュールが共用して使用可能な共有メモリ6とを備えている。ここで、ローカルメモリ2、キャッシュメモリ4、5および共有メモリ6は、その一端がメモリアクセス部1に接続され、DMA3、キャッシュメモリ4、5および共有メモリ6は、その他端が汎用外部バス111に接続されている。
そして、メモリアクセス部1は、メインメモリ110、ローカルメモリ2、キャッシュメモリ4、5または共有メモリ6から命令コードまたはデータを読み出せないときは、メモリストール信号を出力することができる。
演算処理部100bは、スカラー演算を行う複数のスカラー演算器10a、10bと、ベクトル演算を行う複数のベクトル演算器10c、10dと、スカラー演算器10a、10bがスカラー演算に利用するスカラーレジスタ20aと、ベクトル演算器10c、10dがベクトル演算に利用するベクトルレジスタ20bと、メモリアクセス部1を介してメインメモリ110およびプログラムキャッシュ5から命令を読み出すフェッチ部30と、フェッチ部30で読み出した命令の内容を解読するデコード部40とを備えている。なお、フェッチ部30で読み出される命令は、スカラー命令、ベクトル命令またはマルチサイクル命令のいずれでもよい。
電力制御部100cは、デコード部40からの命令デコード情報に基づいて、スカラー演算器10a、10b、ベクトル演算器10c、10d、スカラーレジスタ20aおよびベクトルレジスタ20bの動作状態を管理する複数サイクル命令管理部50と、時間の計時を行うタイマ60と、タイマ60またはDMA3からの割込信号に応じて割込制御を行う割込制御部65と、複数サイクル命令管理部50から出力される電力制御、割込制御部65からの起動信号およびメモリアクセス部1からのメモリストール信号に基づいて、スカラー演算器10a、10b、ベクトル演算器10c、10d、スカラーレジスタ20aおよびベクトルレジスタ20bの消費電力に関する制御を行う動作状態管理部70と、動作状態管理部70の制御に基づいて、スカラー演算器10a、10b、ベクトル演算器10c、10d、スカラーレジスタ20aおよびベクトルレジスタ20bに供給するクロックを調整するクロック制御部80と、動作状態管理部70の制御に基づいて、スカラー演算器10a、10b、ベクトル演算器10c、10d、演算器10a〜10d、スカラーレジスタ20aおよびベクトルレジスタ20bに供給する電圧および電力を調整する電源制御部85とを備えている。
図3は、図2のスカラーレジスタ20aおよびベクトルレジスタ20bの概略構成を示すブロック図である。
図3において、スカラーレジスタ20aには、例えば、32ビット分のデータをそれぞれ記憶する記憶領域SR0〜SR15を16本だけ設けることができる。また、例えば、ベクトルの要素数が8であるとすると、32ビット分のデータをそれぞれ記憶する8個の記憶領域VR0[0]〜VR0[7]で1本分のベクトルレジスタを構成することができる。そして、ベクトルレジスタ20bには、例えば、32ビット分のデータをそれぞれ記憶する64個の記憶領域VR0[0]〜VR0[7]、VR1[0]〜VR1[7]、VR2[0]〜VR2[7]、VR3[0]〜VR3[7]、VR4[0]〜VR4[7]、VR5[0]〜VR5[7]、VR6[0]〜VR6[7]、VR7[0]〜VR7[7]を設けることで、8本分のベクトルレジスタを設けることができる。
図4は、ベクトル命令のデータ構造を示す図である。
図4において、ベクトル命令には、乗算や加算などの命令の種類を定義するオペコードopecodeおよびベクトル演算の実行回数を定義するリピートアマウントrptamtが設けられている。また、ベクトル命令では、書き込み先のディスティネーションレジスタdstおよび読み出し先のソースレジスタsrc1、src2を指定することができる。このため、図2のデコード部40にてベクトル命令を解読することで、どのレジスタを使用しながら、どのような演算が何回行われるかを判別することができる。
また、図4のデータ構造において、リピートアマウントrptamを0にした場合、同じデータ構造を用いてスカラー命令、マルチサイクル命令を格納することができる。
図5は、図2の並列演算処理プロセッサ100のベクトル乗算処理を示す図である。
図5において、ベクトル命令において、例えば、オペコードopecodeにて乗算が指定され、リピートアマウントrptamで8が指定され、ディスティネーションレジスタdstとして図3のベクトルレジスタVR0が指定され、ソースレジスタsrc1、src2として図3のベクトルレジスタVR1、VR2がそれぞれ指定されていたものとする。この場合、ベクトル演算器10c、10dの中から乗算器A1が選択され、ベクトルレジスタVR1に格納されている要素a0〜a7およびベクトルレジスタVR2に格納されている要素x0〜x7が乗算器A1に順次送られる。そして、乗算器A1にて各要素ごとに乗算が行われた後、その乗算結果がベクトルレジスタVR0に格納される。
ここで、図2の並列演算処理プロセッサ100では、メインメモリ110に格納されている命令がフェッチ部30にて読み出される。そして、この読み出された命令の内容がデコード部40にて解読され、フェッチ部30で読み出された命令の種別および命令の形態が判別される。そして、複数サイクル命令管理部50は、デコード部40から出力された命令デコード情報に基づいて、どのモジュールが使用されるかを命令ごとに判断し、そのモジュールの電力を制御する電力制御信号を動作状態管理部70に出力する。そして、動作状態管理部70は、複数サイクル命令管理部50から出力された電力制御信号に基づいて、今回の命令で使用されるモジュールに対応したイネーブル信号EN_0〜EN_nを生成することができる。そして、クロック制御部80は、このイネーブル信号EN_0〜EN_nに基づいてクロックゲーティングを行うことにより、今回の命令で使用されるモジュールにクロック信号clkN_0〜clk_nを供給することができる。
例えば、フェッチ部30で読み出された命令がスカラー命令である場合、スカラーレジスタ20aにクロック信号clkN_0〜clk_nを供給するとともに、ベクトルレジスタ20bへのクロック信号clkN_0〜clk_nの供給を停止することができる。さらに、スカラー演算器10a、10bにクロック信号clkN_0〜clk_nを供給するとともに、ベクトル演算器10c、10dへのクロック信号clkN_0〜clk_nの供給を停止することができる。
また、フェッチ部30で読み出された命令がベクトル命令である場合、図4のリピートアマウントrptamで指定されるベクトル演算の回数分だけ、ベクトルレジスタ20bにクロック信号clkN_0〜clk_nを供給するとともに、スカラーレジスタ20aへのクロック信号clkN_0〜clk_nの供給を停止することができる。さらに、図4のリピートアマウントrptamで指定されるベクトル演算の回数分だけ、オペコードopecodeで指定される演算を行うベクトル演算器10c、10dにクロック信号clkN_0〜clk_nを供給するとともに、スカラー演算器10a、10bへのクロック信号clkN_0〜clk_nの供給を停止することができる。
また、フェッチ部30で読み出された命令がマルチサイクル命令である場合、1命令分の実行にかかる複数サイクルの間だけ、スカラーレジスタ20aおよびスカラー演算器10a、10bにクロック信号clkN_0〜clk_nを供給するとともに、ベクトル演算器10c、10dおよびベクトルレジスタ20bへのクロック信号clkN_0〜clk_nの供給を停止することができる。
これにより、対象となる今回の命令で使用されるモジュールにのみクロック信号clkN_0〜clk_nを供給することが可能となるとともに、対象となる今回の命令で使用されないモジュールにはクロック信号clkN_0〜clk_nの供給を停止することが可能となる。このため、モジュールに演算処理を行わせるための命令を与えることにより、対象となる今回の命令で使用されないモジュールを停止させることが可能となり、対象となる今回の命令で使用されない他のモジュールを特定するために、図1の実行プログラム230にNOP命令などを挿入する必要がなくなることから、種類の異なる複数のモジュールが設けられている場合においても、プログラミングにかかる負担を抑制しつつ、消費電力を低減することが可能となる。
また、複数サイクル命令管理部50を介してクロック信号clkN_0〜clk_nの供給を各命令ごとにモジュール単位で制御する方法の他、デコード部40から出力される実行ユニット制御信号に基づいて、各モジュールの構成要素ごとに局所的にクロックゲーティングを行うことにより、各モジュールの構成要素に対するクロック信号の供給を制御することができる。
例えば、図4のベクトル命令において、ディスティネーションレジスタdstとして図3のベクトルレジスタVR0が指定され、ソースレジスタsrc1、src2として図3のベクトルレジスタVR1、VR2がそれぞれ指定されているものとする。この場合、このベクトル命令を実行する時に、図3の8本分のベクトルレジスタVR0〜VR7のうち、ベクトルレジスタVR0〜VR2にクロック信号を供給するとともに、ベクトルレジスタVR3〜VR7へのクロック信号の供給を停止することができる。
これにより、ベクトル命令を与えることで、今回の命令で使用されないモジュールをモジュール単位で停止させることが可能となるだけでなく、今回の命令で使用されるモジュールのうちの実際に使用される部分のみを構成要素ごとに動作させることができ、プログラミングにかかる負担を抑制しつつ、消費電力をより一層低減することが可能となる。
ここで、並列演算処理プロセッサ100には、複数のベクトル演算器10c、10dが設けられ、ベクトル命令に基づいてパイプライン処理を行う場合、各サイクルごとに発行されるベクトル命令で指定される演算を複数のベクトル演算器10c、10dで並列に処理させることができる。
図6は、図2の並列演算処理プロセッサ100のパイプライン処理を示すブロック図である。
図6において、メインメモリ110に格納されているプログラムは、例えば、プログラムキャッシュメモリ5を介してフェッチ部30に取り込むことができる。そして、サイクルC1において、インストラクションフェッチIFがフェッチ部30にて行われ、ベクトル命令Ins.1がフェッチ部30に取り込まれる。そして、ベクトル命令Ins.1がフェッチ部30に取り込まれると、サイクルC2において、デコードRDがデコード部40にて行われ、ベクトル命令Ins.1の解読が行われる。そして、ベクトル命令Ins.1を解読することにより、オペコードopecodeおよびリピートアマウントrptamtを抽出し、そのベクトル命令Ins.1では、どのベクトル演算器10c、10dを用いて何回分のベクトル演算が行われるかを判別することができる。
ここで、ベクトル命令Ins.1のリピートアマウントrptamtに4が設定されているものとすると、サイクルC3において、ベクトル命令Ins.1の1回目のベクトル演算に対応した実行EXEを行うとともに、サイクルC4において、その実行結果の記憶MEMをベクトルレジスタ20bに行うことができる。さらに、サイクルC4において、2回目のベクトル演算に対応した実行EXEを行うとともに、サイクルC5において、その実行結果の記憶MEMをベクトルレジスタ20bに行うことができる。さらに、サイクルC5において、3回目のベクトル演算に対応した実行EXEを行うとともに、サイクルC6において、その実行結果の記憶MEMをベクトルレジスタ20bに行うことができる。さらに、サイクルC6において、4回目のベクトル演算に対応した実行EXEを行うとともに、サイクルC7において、その実行結果の記憶MEMをベクトルレジスタ20bに行うことができる。
また、サイクルC2において、インストラクションフェッチIFがフェッチ部30にて行われ、ベクトル命令Ins.2がフェッチ部30に取り込まれる。そして、ベクトル命令Ins.2がフェッチ部30に取り込まれると、サイクルC3において、デコードRDがデコード部40にて行われ、ベクトル命令Ins.2の解読が行われる。そして、ベクトル命令Ins.2を解読することにより、オペコードopecodeおよびリピートアマウントrptamtを抽出し、そのベクトル命令Ins.2では、どのベクトル演算器10c、10dを用いて何回分のベクトル演算が行われるかを判別することができる。
ここで、ベクトル命令Ins.2のリピートアマウントrptamtに4が設定されているものとすると、サイクルC4において、ベクトル命令Ins.2の1回目のベクトル演算に対応した実行EXEを行うとともに、サイクルC5において、その実行結果の記憶MEMをベクトルレジスタ20bに行うことができる。さらに、サイクルC5において、2回目のベクトル演算に対応した実行EXEを行うとともに、サイクルC6において、その実行結果の記憶MEMをベクトルレジスタ20bに行うことができる。さらに、サイクルC6において、3回目のベクトル演算に対応した実行EXEを行うとともに、サイクルC7において、その実行結果の記憶MEMをベクトルレジスタ20bに行うことができる。さらに、サイクルC7において、4回目のベクトル演算に対応した実行EXEを行うとともに、サイクルC8において、その実行結果の記憶MEMをベクトルレジスタ20bに行うことができる。
また、サイクルC3において、インストラクションフェッチIFがフェッチ部30にて行われ、ベクトル命令Ins.3がフェッチ部30に取り込まれる。そして、ベクトル命令Ins.3がフェッチ部30に取り込まれると、サイクルC4において、デコードRDがデコード部40にて行われ、ベクトル命令Ins.3の解読が行われる。そして、ベクトル命令Ins.3を解読することにより、オペコードopecodeおよびリピートアマウントrptamtを抽出し、そのベクトル命令Ins.3では、どのベクトル演算器10c、10dを用いて何回分のベクトル演算が行われるかを判別することができる。
ここで、ベクトル命令Ins.3のリピートアマウントrptamtに4が設定されているものとすると、サイクルC5において、ベクトル命令Ins.3の1回目のベクトル演算に対応した実行EXEを行うとともに、サイクルC6において、その実行結果の記憶MEMをベクトルレジスタ20bに行うことができる。さらに、サイクルC6において、2回目のベクトル演算に対応した実行EXEを行うとともに、サイクルC7において、その実行結果の記憶MEMをベクトルレジスタ20bに行うことができる。さらに、サイクルC7において、3回目のベクトル演算に対応した実行EXEを行うとともに、サイクルC8において、その実行結果の記憶MEMをベクトルレジスタ20bに行うことができる。さらに、サイクルC8において、4回目のベクトル演算に対応した実行EXEを行うとともに、サイクルC9において、その実行結果の記憶MEMをベクトルレジスタ20bに行うことができる。
また、サイクルC4において、インストラクションフェッチIFがフェッチ部30にて行われ、ベクトル命令Ins.4がフェッチ部30に取り込まれる。そして、ベクトル命令Ins.4がフェッチ部30に取り込まれると、サイクルC5において、デコードRDがデコード部40にて行われ、ベクトル命令Ins.4の解読が行われる。そして、ベクトル命令Ins.4を解読することにより、オペコードopecodeおよびリピートアマウントrptamtを抽出し、そのベクトル命令Ins.4では、どのベクトル演算器10c、10dを用いて何回分のベクトル演算が行われるかを判別することができる。
ここで、ベクトル命令Ins.4のリピートアマウントrptamtに4が設定されているものとすると、サイクルC6において、ベクトル命令Ins.4の1回目のベクトル演算に対応した実行EXEを行うとともに、サイクルC7において、その実行結果の記憶MEMをベクトルレジスタ20bに行うことができる。さらに、サイクルC7において、2回目のベクトル演算に対応した実行EXEを行うとともに、サイクルC8において、その実行結果の記憶MEMをベクトルレジスタ20bに行うことができる。さらに、サイクルC8において、3回目のベクトル演算に対応した実行EXEを行うとともに、サイクルC9おいて、その実行結果の記憶MEMをベクトルレジスタ20bに行うことができる。さらに、サイクルC9において、4回目のベクトル演算に対応した実行EXEを行うとともに、サイクルC10において、その実行結果の記憶MEMをベクトルレジスタ20bに行うことができる。
ここで、ベクトル命令Ins.1〜Ins.4に対応した実行EXEを複数のベクトル演算器10c、10dにて並列処理させることにより、例えば、サイクルC6において、ベクトル命令Ins.1〜Ins.4にそれぞれ対応した実行EXEを同時に行わせることができる。
また、デコード部40にてベクトル命令Ins.1〜Ins.4の解読が行われると、それらのベクトル命令Ins.1〜Ins.4にそれぞれ対応したオペコードopecodeおよびリピートアマウントrptamtを含む命令デコード情報が、複数サイクル命令管理部50に送られる。そして、複数サイクル命令管理部50は、命令デコード情報に基づいて、これらのベクトル命令Ins.1〜Ins.4の依存関係を判断し、これらのベクトル命令Ins.1〜Ins.4を実行するために、何サイクル分の時間がかかるかを判定することができる。
そして、これらのベクトル命令Ins.1〜Ins.4を実行するために、例えば、10サイクル分の時間がかかるものとすると、これらのベクトル命令Ins.1〜Ins.4を実行させるために必要なベクトル演算器10c、10dおよびベクトルレジスタ20bの電力を10サイクル分だけ制御する電力制御信号を出力することができる。
そして、ベクトル演算器10c、10dおよびベクトルレジスタ20bの電力を制御する電力制御信号が出力されると、動作状態管理部70は、この電力制御信号に基づいて、ベクトル命令Ins.1〜Ins.4で使用されるモジュールに対応したイネーブル信号EN_0〜EN_nを生成することができる。そして、クロック制御部80は、このイネーブル信号EN_0〜EN_nに基づいてクロックゲーティングを行うことにより、ベクトル命令Ins.1〜Ins.4で使用されるクロック信号clkN_0〜clk_nをベクトル演算器10c、10dおよびベクトルレジスタ20bに供給することができる。
これにより、ベクトル命令Ins.1〜Ins.4に基づいて、ベクトル演算器10c、10dおよびベクトルレジスタ20bの消費電力に関する制御を行うことができる。このため、ベクトル命令Ins.1〜Ins.4にて演算が行われないスカラー演算器10a、10bおよびスカラーレジスタ20aに対してNOP等の命令コードが与えられなくても、そのスカラー演算器10a、10bおよびスカラーレジスタ20aの動作を停止させることができ、プログラミングにかかる負担増を伴うことなく、並列演算処理プロセッサ100の消費電力を低減させることができる。
図7は、図2のクロック制御部80の概略構成を示すブロック図である。
図7において、クロック制御部80は、モジュールM0〜Mnにそれぞれ対応したクロックゲーティングマクロ回路CG1〜CGnが設けられている。なお、各モジュールM0〜Mnは、図2のフェッチ部30、デコード部40、ベクトル演算器10c、10d、スカラー演算器10a、10b、スカラーレジスタ20aおよびベクトルレジスタ20bなどにそれぞれ対応させることができる。そして、各クロックゲーティングマクロ回路CG1〜CGnには、ルートバッファRB1を介してクロック信号CLKが共通に入力されるとともに、動作状態管理部70にて生成されたイネーブル信号EN_0〜EN_nがそれぞれ入力される。そして、クロックゲーティングマクロ回路CG1〜CGnは、イネーブル信号EN_0〜EN_nがハイレベルになると、ゲートクロック信号GateCLK_0〜GateCLK_nを各モジュールM0〜Mnに供給するとともに、イネーブル信号EN_0〜EN_nがロウレベルになると、各モジュールM0〜Mnへのゲートクロック信号GateCLK_0〜GateCLK_nの供給を停止することができる。
これにより、クロックゲーティングを行うことで、今回の命令で使用されるモジュールM0〜Mnのみにクロック信号clkN_0〜clk_nを供給することが可能となり、種類の異なる複数のモジュールM0〜Mnが設けられている場合においても、プログラミングにかかる負担を抑制しつつ、消費電力を低減することが可能となる。
図8(a)は、図7のクロックゲーティングマクロ回路CG1〜CGnの概略構成を示すブロック図、図8(b)は、図7のクロックゲーティングマクロ回路CG1〜CGnの動作を示すタイミングチャートである。
図8(a)において、クロックゲーティングマクロ回路CG1〜CGnには、ラッチ回路82およびアンド回路83が設けられるとともに、アンド回路83の出力はDフリップフロップ84のクロック入力端子に接続されている。そして、図8(b)に示すように、ラッチ回路82に入力されるクロック信号CLKに同期して、動作状態管理部70にて生成されたイネーブル信号ENがラッチ回路82にてラッチされる。そして、ラッチ回路82にてラッチされたイネーブル信号ENはアンド回路83に出力され、クロック信号CLKとの論理積をとることにより、ゲートクロック信号G_CLKがDフリップフロップ84のクロック入力端子に出力される。そして、ゲートクロック信号G_CLKがDフリップフロップ84のクロック入力端子に入力されると、Dフリップフロップ84は、Dフリップフロップ84のD端子に入力されるデータDATAを取り込み、D_OUTとして出力することができる。このため、クロックゲーティングマクロ回路CG1〜CGnは、イネーブル信号ENがアクティブになったときに、Dフリップフロップ84に入力されるデータDATAを取り込ませ、D_OUTとして出力させることができる。
図9は、図2の複数サイクル命令管理部50の概略構成を示すブロック図である。
図9において、複数サイクル命令管理部50には、デコード部40から送られた命令デコード情報に基づいて、今回の命令で使用されるモジュールM0〜Mnを判定する使用モジュール判定部51、今回の命令で使用されるモジュールM0〜Mnの動作を制御する制御信号を生成するモジュール制御用ステートマシン52a〜52n、モジュール制御用ステートマシン52a〜52nから出力された制御信号に基づいて、モジュールM0〜Mnの消費電力を制御する電力制御信号を生成する電力制御信号発生部53が設けられている。
ここで、使用モジュール判定部51には、デコード完了信号とともに、デコードが完了した命令に対応するオペコード情報およびリピートアマウントrptamtがデコード部40から出力される。そして、使用モジュール判定部51は、オペコード情報に基づいて、今回の命令で使用されるモジュールM0〜Mnを起動し、そのモジュールM0〜Mnに対応したモジュール制御用ステートマシン52a〜52nにオペコードopecodeおよびリピートアマウントrptamtを出力する。なお、図6に示すように、インストラクションフェッチIFは、1サイクルに1回だけ発生させることができるので、1個のモジュールM0〜Mnに対応した1個のモジュール制御用ステートマシン52a〜52nを1サイクルごとに起動することができる。
そして、モジュール制御用ステートマシン52a〜52nは、オペコードopecodeおよびリピートアマウントrptamtに基づいて、どのモジュールM0〜Mnが何サイクル分だけ使用されるかを判定する。そして、モジュール制御用ステートマシン52a〜52nは、今回の命令で使用されるモジュールM0〜Mnをリピートアマウントrptamtで決められるサイクル数分だけ動作させる制御信号を電力制御信号発生部53に出力する。そして、電力制御信号発生部53は、モジュール制御用ステートマシン52a〜52nから出力された制御信号に基づいて、今回の命令で使用されるモジュールM0〜Mnの消費電力を制御するモジュール電力制御信号を動作状態管理部70に出力する。さらに、電力制御信号発生部53は、今回の命令で使用されるモジュールM0〜Mnが、ベクトル命令またはスカラー命令のいずれの命令で起動されるかを判別し、今回の命令で使用されるモジュールM0〜Mnがベクトル命令にて起動される場合、ベクトルレジスタ20bの電力を消費制御するベクトルレジスタ電力制御信号を動作状態管理部70に出力する。一方、今回の命令で使用されるモジュールM0〜Mnがスカラー命令にて起動される場合、スカラーレジスタ20aの消費電力を制御するスカラーレジスタ電力制御信号を動作状態管理部70に出力する。
図10(a)は、ベクトル命令に対応したモジュールM0〜Mnのステートマシン52a〜52nの状態遷移を示す図、図10(b)は、マルチサイクル命令に対応したモジュールM0〜Mnのステートマシン52a〜52nの状態遷移を示す図、図10(c)は、ベクトル命令に対応したモジュールM0〜Mnのステートマシン52a〜52nから出力される制御信号を示す図である。
図10(a)において、ベクトル命令に対応したモジュールM0〜Mnのステートマシン52a〜52nは、IDLE状態において、新たな命令によりステートマシン52a〜52nが起動されるまで待機する。そして、デコード部40にてベクトル命令のデコードが完了し、そのベクトル命令を実行するために使用されるモジュールM0〜Mnのステートマシン52a〜52nが起動されると、そのステートマシン52a〜52nは第0要素演算ステートに遷移する。そして、そのステートマシン52a〜52nは、リピートアマウントrptamtで指定されるベクトル演算の繰り返し回数に従って動作を継続する。すなわち、図2のベクトル演算器10c、10dが8要素までの演算をサポートしているものとすると、ステートマシン52a〜52nは、各要素の演算ステートがリピートアマウントrptamtの値に一致するまで、第0要素演算ステートから第7要素演算ステートまでの間を順次遷移する。そして、各要素の演算ステートがリピートアマウントrptamtの値に一致すると、ステートマシン52a〜52nはIDLE状態に遷移する。
一方、ステートマシン52a〜52nは、IDLE状態において、スカラー命令により起動されると、スカラー命令実行ステートに遷移する。そして、そのスカラー命令で指定される演算が終了した時点で、IDLE状態に遷移する。
また、図10(b)において、マルチサイクル命令に対応したモジュールM0〜Mnのステートマシン52a〜52nは、IDLE状態において、マルチサイクル命令により起動されると、データ設定ステートを経て、演算実行ステートに遷移する。そして、終了条件が成立するまで、演算実行ステートを継続し、終了条件が成立した時点で、IDLE状態に遷移する。ここで、終了条件は、命令ごとに定義してもよいし、データにより決定してもよい。
なお、マルチサイクル命令に対応したモジュールM0〜Mnのステートマシン52a〜52nは、スカラー命令実行の一形式に対応させることができ、スカラー命令実行において1サイクルで演算が完了しないものである。また、マルチサイクル命令に対応したモジュールM0〜Mnのステートマシン52a〜52nにおいて、データ設定ステートは省略してもよい。
また、図10(c)において、例えば、各ステートにおけるモジュールM1に対する電力制御信号Module1_en、スカラーレジスタ20aに対する電力制御信号Scalar_Exe_Reqおよびベクトルレジスタ20bに対する電力制御信号Vector_Exe_Reqが定義されている。そして、例えば、ベクトル命令に対応したモジュールM1のステートマシンにおいて、IDLE状態では、電力制御信号Module1_en、電力制御信号Scalar_Exe_Reqおよび電力制御信号Vector_Exe_ReqをDISABLEに設定することができる。また、スカラー命令が実行される場合、電力制御信号Module1_enおよび電力制御信号Scalar_Exe_ReqをACTIVEに設定するとともに、電力制御信号Vector_Exe_ReqをDISABLEに設定することができる。また、ベクトル命令が実行される場合、第0要素演算ステートから第7要素演算ステートまでの各要素の演算ステートにおいて、電力制御信号Module1_enおよび電力制御信号Vector_Exe_ReqをACTIVEに設定するとともに、電力制御信号Scalar_Exe_ReqをDISABLEに設定することができる。また、モジュールM1以外の他のモジュールM0、M2〜Mnについても同様に定義することができる。
これにより、モジュールM1が使用されない場合には、モジュールM1、スカラーレジスタ20aおよびベクトルレジスタ20bの動作を停止させることが可能となる。また、モジュールM1にてスカラー命令が実行される場合、モジュールM1およびスカラーレジスタ20aを動作させることが可能となるとともに、ベクトルレジスタ20bの動作を停止させることが可能となる。また、モジュールM1にてベクトル命令が実行される場合、モジュールM1およびベクトルレジスタ20bを動作させることが可能となるとともに、スカラーレジスタ20aの動作を停止させることが可能となる。
なお、図9の電力制御信号発生部53は、複数のモジュール制御用ステートマシン52a〜52nからモジュールM0〜Mnを動作させる制御信号を受け取った場合、これらの論理和に基づいてモジュール電力制御信号を生成することができる。これにより、1個のモジュール制御用ステートマシン52a〜52nからでもACTIVE要求があった場合においても、そのモジュール制御用ステートマシン52a〜52nに対応したモジュールM0〜Mnを動作させることができる。
図11は、図2の動作状態管理部70の概略構成を示すブロック図である。
図11において、動作状態管理部70は、電力モードの設定を記憶した電力モード設定レジスタ71と、電力モード設定レジスタ71の設定に基づいて電力モードを定義する電力モード定義部72と、電力制御信号、割り込みによる起動信号、メモリストール信号および電力モード定義部72からの電力モード信号に基づいて、スカラー演算器10a、10b、ベクトル演算器10c、10d、スカラーレジスタ20aおよびベクトルレジスタ20bの消費電力に関する制御を行う動作ユニット調整部73と、電力モード定義部72からの電力モード信号に基づいて、スカラー演算器10a、10b、ベクトル演算器10c、10d、スカラーレジスタ20aおよびベクトルレジスタ20bに供給するクロック、電圧および電力を切り換えるクロック・電源切換部74とで構成されている。
電力モード定義部72は、クロックモードを定義するクロックモード定義部72aと、クロックモード定義部72aの定義によりクロックモードのステートを行うクロックモードステートマシン72bと、電圧・周波数モードを定義する電圧・周波数モード定義部72cと、電圧・周波数モード定義部72cの定義により電圧・周波数モードのステートを行う電圧・周波数モードステートマシン72dとで構成されており、動作ユニット調整部73およびクロック・電源切換部74に電力モード信号を出力するようになっている。
動作ユニット調整部73は、複数サイクル命令管理部50からのモジュール電力制御信号に応じて、スカラー演算器10a、10bが非動作演算器となる期間、そのスカラー演算器10a、10bの消費電力が低減されるように、そのスカラー演算器10a、10bの消費電力に関する制御をクロック制御部80および電源制御部85に対して行うことができる。
また、動作ユニット調整部73は、複数サイクル命令管理部50からのモジュール電力制御信号に応じて、ベクトル演算器10c、10dが非動作演算器となる期間、そのベクトル演算器10c、10dの消費電力が低減されるように、そのベクトル演算器10c、10dの消費電力に関する制御をクロック制御部80および電源制御部85に対して行うことができる。
また、動作ユニット調整部73は、複数サイクル命令管理部50からのスカラーレジスタ電力制御信号に応じて、スカラー演算器10a、10bがスカラーレジスタ20aを利用しない期間、そのスカラーレジスタ20aの消費電力が低減されるように、スカラーレジスタ20aの消費電力に関する制御をクロック制御部80および電源制御部85に対して行うことができる。
また、動作ユニット調整部73は、複数サイクル命令管理部50からのベクトルレジスタ電力制御信号に応じて、ベクトル演算器10c、10dがベクトルレジスタ20bを利用しない期間、そのベクトルレジスタ20bの消費電力が低減されるように、ベクトルレジスタ20bの消費電力に関する制御をクロック制御部80および電源制御部85に対して行うことができる。
また、動作ユニット調整部73は、メモリアクセス部1、ローカルメモリ2、DMA3、キャッシュメモリ4、5、タイマ60または割込制御部65が利用されない期間、それらのリソース1〜5、60、65の消費電力が低減されるように、それらのリソース1〜5、60、65の消費電力に関する制御をクロック制御部80および電源制御部85に対して行うことができる。特に、命令コードがロード/ストア命令以外のものを示すものであるときは、リソース1〜5、60、65について、省電力制御を行うことができる。また、ローカルメモリ2にアクセスするときは、キャッシュメモリ4および共有メモリ6について、省電力制御を行うことができる。
ここで、スカラー演算器10a、10b、ベクトル演算器10c、10dまたはその他のリソース1〜6、60、65の消費電力に関する制御は、スカラー演算器10a、10b、ベクトル演算器10c、10dまたはその他リソース1〜6、60、65に供給するクロックの有無を調整する制御、スカラー演算器10a、10b、ベクトル演算器10c、10dまたはその他リソース1〜6、60、65に供給する電力の有無を調整する制御、並びにスカラー演算器10a、10b、ベクトル演算器10c、10dまたはその他リソース1〜6、60、65に供給する周波数および電圧を調整する制御を適用することができる。また、スカラーレジスタ20aおよびベクトルレジスタ20bの消費電力に関する制御は、スカラーレジスタ20aおよびベクトルレジスタ20bに供給するクロックの有無を調整する制御、並びにスカラーレジスタ20aおよびベクトルレジスタ20bに供給する周波数および電圧を調整する制御を適用することができる。
また、動作ユニット調整部73は、割込制御部65からの割り込みによる起動信号またはメモリアクセス部1からのメモリストール信号を入力したときは、その入力が停止されるまで、スカラー演算器10a、10b、ベクトル演算器10c、10d、スカラーレジスタ20aおよびベクトルレジスタ20bの消費電力に関する制御を延長することができる。
図12は、図11のクロック・電源切換部74の構成を示すブロック図である。
図12において、スカラー演算器10a、10b、ベクトル演算器10c、10d、スカラーレジスタ20aおよびベクトルレジスタ20bに供給する周波数および電圧を調整する場合、周波数・電圧モード変更要求信号により電力モード定義部72が出力する周波数・電圧モードを入力したときは(1)、スカラー演算器10a、10b、ベクトル演算器10c、10d、スカラーレジスタ20aおよびベクトルレジスタ20bへのクロックの供給を停止すべきクロック停止要求をクロック制御部80に出力する(2)。
次いで、クロック停止応答をクロック制御部80から入力したときは(3)、スカラー演算器10a、10b、ベクトル演算器10c、10d、スカラーレジスタ20aおよびベクトルレジスタ20bに供給する電圧設定に関する電圧制御信号を電源制御部85に出力するとともに、スカラー演算器10a、10b、ベクトル演算器10c、10d、スカラーレジスタ20aおよびベクトルレジスタ20bに供給する周波数設定に関する周波数変更信号をクロック制御部80に出力する(4)。そして、スカラー演算器10a、10b、ベクトル演算器10c、10d、スカラーレジスタ20aおよびベクトルレジスタ20bへのクロックの供給を再開すべきクロック再開要求をクロック制御部80に出力し(5)、クロック再開応答をクロック制御部80から入力するのを待って(6)、周波数および電圧の調整を完了する。
このように、図2の並列演算処理プロセッサ100は、スカラー演算を行うスカラー演算器10a、10bおよびベクトル演算を行うベクトル演算器10c、10dとを含んでなり、スカラー演算器10a、10bおよびベクトル演算器10c、10dの消費電力に関する制御を、命令コードにより特定される演算種別に応じてそれぞれ行うことができる。このため、スカラー演算器10a、10bおよびベクトル演算器10c、10dの種別に応じて消費電力に関する制御を行うことができ、複数種類のスカラー演算器10a、10bおよびベクトル演算器10c、10dを組み合わせて構成された並列演算処理プロセッサ100の消費電力を低減することができる。
また、並列演算処理プロセッサ100は、スカラー演算器10a、10bおよびベクトル演算器10c、10dの消費電力に関する制御ならびにスカラーレジスタ20aおよびベクトルレジスタ20bの消費電力に関する制御を、命令コードにより特定される演算形態に応じてそれぞれ行うことができる。このため、スカラー演算器10a、10b、ベクトル演算器10c、10d、スカラーレジスタ20aおよびベクトルレジスタ20のそれぞれについて消費電力に関する制御を行うことができ、スカラー演算器10a、10b、ベクトル演算器10c、10d、スカラーレジスタ20aおよびベクトルレジスタ20を組み合わせて構成された並列演算処理プロセッサ100の消費電力を低減することができる。
図13は、第2実施形態に係るクロックゲーティング方法を示すブロック図である。
図13において、図2のクロック制御部80には、クロックゲーティングマクロ回路CG1〜CGnが設けられ、クロックゲーティングマクロ回路CG1〜CGnは、例えば、図2のフェッチ部30、デコード部40、ベクトルレジスタ21b、ベクトル演算器10c、10d、スカラー演算器10a、10b、スカラーレジスタ21aにそれぞれ接続することができる。
また、例えば、スカラーレジスタ20aには、スカラーレジスタ20aの構成要素ごとに局所的にクロックゲーティングを行うクロックゲーティングマクロ回路CG10が設けられるとともに、ベクトルレジスタ20bには、ベクトルレジスタ20bの構成要素ごとに局所的にクロックゲーティングを行うクロックゲーティングマクロ回路CG11が設けられている。ここで、クロックゲーティングマクロ回路CG10、CG11には、デコード部40から出力される実行ユニット制御信号が入力される。そして、クロックゲーティングマクロ回路CG10、CG11は、この実行ユニット制御信号に基づいて、スカラーレジスタ20aおよびベクトルレジスタ20bの各構成要素ごとに局所的にクロックゲーティングをそれぞれ行うことにより、スカラーレジスタ20aおよびベクトルレジスタ20bの各構成要素に対するクロック信号の供給をそれぞれ制御することができる。
これにより、ベクトル命令に基づいて、スカラーレジスタ20aおよびベクトルレジスタ20bの各構成要素の消費電力を細やかに制御することができ、プログラミングにかかる負担を抑制しつつ、消費電力をより一層低減することが可能となる。
図14は、本発明の第3実施形態に係るクロックゲーティング方法を示すブロック図である。
図14において、ベクトルレジスタ21bには、その一部の構成要素として、DフリップフロップF0〜F31が設けられ、32ビットレジスタが構成されているものとする。そして、ベクトルレジスタ21bの構成要素となる32ビットレジスタにクロックゲーティングマクロ回路CG12を配置することができる。
すなわち、クロックゲーティングマクロ回路CG12には、ラッチ回路84およびアンド回路85が設けられるとともに、アンド回路85の出力は、DフリップフロップF0〜F31の各クロック入力端子に接続されている。そして、ラッチ回路82に入力されるクロック信号CLKに同期して、イネーブル信号ENがラッチ回路82にてラッチされる。そして、ラッチ回路82にてラッチされたイネーブル信号ENはアンド回路83に出力され、クロック信号CLKとの論理積をとることにより、ゲートクロック信号G_CLKがDフリップフロップF0〜F31の各クロック入力端子に出力される。そして、ゲートクロック信号G_CLKがDフリップフロップF0〜F31の各クロック入力端子に入力されると、DフリップフロップF0〜F31は、Dフリップフロップ84のD端子に入力されるデータDATA[0]〜[31]を取り込み、D_OUT[0]〜[31]として出力することができる。
ここで、ベクトル演算器10c、10dが32ビットレジスタに書き込みを行う際に、ベクトル演算器10c、10dは、イネーブル信号ENをアクティブにすることができる。このため、32ビットレジスタへの書き込みが必要な時にのみ、32個のDフリップフロップF0〜F31にクロックを供給することができ、32ビットレジスタにアクセスがない時および32ビットレジスタから読み出しを行っている時には、32個のDフリップフロップF0〜F31へのクロックの供給を停止することができる。この結果、クロックの信号ラインおよびDフリップフロップF0〜F31への不要なクロックの供給を停止することができ、図2の並列演算処理プロセッサ100の消費電力を低減することができる。
なお、1個のクロックゲーティングマクロ回路CG12を32ビットレジスタごとに配置する方法以外にも、例えば、8ビットのバイト刻みでクロックゲーティングマクロ回路を挿入するようにしてもよい。レジスタ退避するアクセスは、32ビットのワード単位で行われる場合と、8ビットのバイト単位、もしくは16ビットのハーフ・ワード単位で行われることがある。このため、8ビットのバイト単位でクロックの供給を制御することで、消費電力をより柔軟に制御することが可能となる。
図15は、本発明の第4実施形態に係るクロックゲーティング方法を示すブロック図である。
図15において、図2のクロック制御部80には、クロックゲーティングマクロ回路CG1〜CGnが設けられ、クロックゲーティングマクロ回路CG1〜CGnは、図2のフェッチ部30、デコード部40、ベクトルレジスタ21b、ベクトル演算器10c、10d、スカラー演算器10a、10bおよびスカラーレジスタ21aにそれぞれ接続されている。そして、各クロックゲーティングマクロ回路CG1〜CGnには、ルートバッファRB1を介してクロック信号CLKが共通に入力されるとともに、動作状態管理部70にて生成されたイネーブル信号EN_0〜EN_nがそれぞれ入力される。
ここで、ベクトルレジスタ21bには、その一部の構成要素として、64個の32ビットレジスタVR00〜VR77が設けられ、8要素からなる8本分のベクトルレジスタが構成されているものとする。そして、ベクトルレジスタ21bには、64個の32ビットレジスタVR00〜VR77にそれぞれ対応してクロックゲーティングマクロ回路CG00〜CG77が挿入されている。そして、各クロックゲーティングマクロ回路CG00〜CG77には、クロックゲーティングマクロ回路CG2から出力されたゲートクロック信号GateCLK_2が共通に入力されるとともに、イネーブル信号EN_00〜EN_77がそれぞれ入力される。
そして、クロックゲーティングマクロ回路CG2は、イネーブル信号EN_2がアクティブになると、ゲートクロック信号GateCLK_2を各クロックゲーティングマクロ回路CG00〜CG77に供給するとともに、イネーブル信号EN_2がディセーブルになると、ゲートクロック信号GateCLK_2の各クロックゲーティングマクロ回路CG00〜CG77への供給を停止する。これにより、ベクトルレジスタ21bが使用されないサイクル期間中、ベクトルレジスタ21b全体をモジュール単位で停止させることが可能となり、図2の並列演算処理プロセッサ100の消費電力を低減することができる。
また、ゲートクロック信号GateCLK_2が各クロックゲーティングマクロ回路CG00〜CG77に供給されている時に、イネーブル信号EN_00〜EN_77のいずれかがアクティブになると、アクティブ状態のイネーブル信号EN_00〜EN_77が入力されたクロックゲーティングマクロ回路CG00〜CG77からゲートクロック信号GateCLK_2が出力される。このため、イネーブル信号EN_00〜EN_77を選択することにより、32ビットレジスタVR00〜VR77のいずれかを選択してクロックを供給することが可能となるとともに、今回の命令で使用されない32ビットレジスタVR00〜VR77へのクロックを停止させることができる。
ここで、イネーブル信号EN_00〜EN_77を選択は、デコード部40からベクトル演算器10c、10dおよびベクトルレジスタ20bに出力される実行ユニット制御信号に基づいて行うことができる。すなわち、ベクトル演算器10c、10dは、図4のベクトル命令によるディスティネーションレジスタdstの指定に基づいて、32ビットレジスタVR00〜VR77のうちの何番目に書き込みを行うかを判断することができる。そして、ベクトル演算器10c、10dは、その書き込み先の32ビットレジスタVR00〜VR77に対応したイネーブル信号EN_00〜EN_77をアクティブにすることにより、今回の命令で書き込みが行われる32ビットレジスタVR00〜VR77にのみクロックを供給するとともに、今回の命令で書き込みが行われない32ビットレジスタVR00〜VR77へのクロックの供給を停止させることができる。
これにより、ベクトル命令を与えることで、今回の命令で使用されないベクトルレジスタ21b全体をモジュール単位で停止させることが可能となるとともに、今回の命令でベクトルレジスタ21bが使用される場合においても、今回の命令で実際に使用される32ビットレジスタVR00〜VR77のみを個別に動作させることができ、プログラミングにかかる負担を抑制しつつ、消費電力をより一層低減することが可能となる。
図16は、本発明の第5実施形態に係るベクトル演算型並列演算処理プロセッサの構成を示すブロック図である。
図16において、ベクトル演算型並列演算処理プロセッサには、乗算を行う2つの乗算器11a、11b、加算を行う2つの加算器11c、11d、データ転送を行う2つの転送ユニット11e、11f、スカラーレジスタ23aおよびベクトルレジスタ23bが設けられている。また、ベクトル演算型並列演算処理プロセッサには、フェッチ部300、デコード部400、プログラムカウンタ500およびステータスレジスタ600が設けられている。そして、これらのモジュールは、データバス、プログラムバス、データアドレスバスまたはプログラムアドレスバスを介して互いに接続されている。
ここで、例えば、図6のベクトル命令Ins.1、Ins.2のオペコードopecodeにて乗算が指定され、ベクトル命令Ins.3、Ins.4のオペコードopecodeにて加算が指定されているものとすると、ベクトル命令Ins.1の実行EXEを乗算器11aで行わせ、ベクトル命令Ins.2の実行EXEを乗算器11bで行わせ、ベクトル命令Ins.3の実行EXEを加算器11cで行わせ、ベクトル命令Ins.4の実行EXEを加算器11dで行われることにより、これらのベクトル命令11b〜Ins.4にそれぞれ対応した実行EXEを並列に行わせることができる。
また、デコード部400にてベクトル命令Ins.1〜Ins.4の解読が行われると、それらのベクトル命令Ins.1〜Ins.4のオペコードopecodeおよびリピートアマウントrptamtに基づいて、これらのベクトル命令Ins.1〜Ins.4の依存関係を判断し、これらのベクトル命令Ins.1〜Ins.4を実行するために、何サイクル分の時間がかかるかを判定することができる。そして、これらのベクトル命令Ins.1〜Ins.4を実行するために必要なサイクル数分だけ、乗算器11a、11b、加算器11c、11dおよびベクトルレジスタ23bを動作させることにより、ベクトル命令Ins.1〜Ins.4を実行するために必要のないモジュールへのクロックの供給を停止させた状態で、ベクトル演算のパイプライン処理を並列に行うことができる。
一実施形態に係るコンピュータシステムの概略構成を示すブロック図。 図1の並列演算処理プロセッサ100の概略構成を示すブロック図。 図2のレジスタ20a、20bの概略構成を示すブロック図。 ベクトル命令のデータ構造を示す図である。 図2の並列演算処理プロセッサ100のベクトル乗算処理を示す図。 図2の並列演算処理プロセッサ100のパイプライン処理を示すブロック図。 図2のクロック制御部80の概略構成を示すブロック図。 図7のクロックゲーティングマクロ回路の構成を示すブロック図。 図2の複数サイクル命令管理部50の概略構成を示すブロック図。 図9のステートマシン52a〜52nの状態遷移を示す図。 図2の動作状態管理部70の概略構成を示すブロック図である。 図11のクロック・電源切換部74の構成を示すブロック図である。 第2実施形態に係るクロックゲーティング方法を示すブロック図。 第3実施形態に係るクロックゲーティング方法を示すブロック図。 第4実施形態に係るクロックゲーティング方法を示すブロック図。 第5実施形態に係るベクトル演算型並列演算処理プロセッサの概略構成を示すブロック図。
符号の説明
100 並列演算処理プロセッサ、100a アクセス部、1 メモリアクセス部、2 ローカルメモリ、3 DMA、4 データキャッシュメモリ、5 プログラムキャッシュメモリ、6 共有メモリ、100b 演算処理部、10a、10b スカラー演算器、10c、10d ベクトル演算器、A1、11a、11b 乗算器、11c、11d 加算器、11e、11f 転送ユニット、12a〜12f 汎用演算器20a、21a、23a スカラーレジスタ、20b、21b、23b ベクトルレジスタ、30、300 フェッチ部、40、400 デコード部、100c 電力制御部、50 複数サイクル命令管理部、51 使用モジュール判定部、52a〜52n ステートマシン、53 電力制御信号生成部、60 タイマ、65 割込制御部、70 動作状態管理部、72 電力モード定義部、72a クロックモード定義部、72b クロックモードステートマシン、72c 電圧・周波数モード定義部、72d 電圧・周波数モードステートマシン、73 動作ユニット調整部、74 クロック・電源切換部、80 クロック制御部、85 電源制御部、110 メインメモリ、111 プログラムテキスト領域、112 初期化済みデータ領域、113 未初期化データ領域、114 ヒープ領域、115 スタック領域、200 アセンブリソースコード、210 アセンブラ、220 リンカ、230 実行プログラム、240 プログラムローダ、VR0〜VR2 ベクトルレジスタ、RB1 ルートバッファ、CG0〜CGn、CG11、CG12、CG00〜CG77 クロックゲーティングマクロ回路、M0〜Mn モジュール、82 ラッチ回路、83 アンド回路、84、F0〜F31 Dフリップフロップ、500 プログラムカウンタ、600 ステータスレジスタ

Claims (11)

  1. 命令で指定された演算処理を行う複数のモジュールと、
    前記命令を実行するために必要な期間中に前記命令を実行するために必要なモジュールを選択して消費電力の制御を行う消費電力制御部とを備えることを特徴とする演算処理装置。
  2. 前記モジュール単位で挿入された第1クロックゲーティングマクロ回路が設けられ、
    前記消費電力制御部は、前記命令を実行するために必要な期間中に前記命令を実行するために必要なモジュールに対応した第1クロックゲーティングマクロ回路に第1イネーブル信号を供給することにより、前記命令を実行するために必要なモジュールを選択し、クロックを供給することを特徴とする請求項1記載の演算処理装置。
  3. 前記モジュールは、
    スカラー演算を行う複数のスカラー演算器と、
    ベクトル演算を行う複数のベクトル演算器と、
    スカラーデータを格納するスカラーレジスタと、
    ベクトルデータを格納するベクトルレジスタとを備え、
    前記消費電力制御部は、前記命令の種別がベクトル命令の場合、前記ベクトル命令の実行期間中に、前記ベクトル演算器および前記ベクトルレジスタにクロックを供給するとともに、前記スカラー演算器および前記スカラーレジスタへのクロックの供給を停止することを特徴とする請求項1または2記載の演算処理装置。
  4. 前記消費電力制御部は、前記ベクトル命令に含まれるオペコードに基づいて、クロックを供給するベクトル演算器を選択することを特徴とする請求項3記載の演算処理装置。
  5. 前記消費電力制御部は、前記ベクトル命令に含まれる演算要素数に基づいて、前記ベクトル演算器および前記ベクトルレジスタにクロックを供給するサイクル数を決定することを特徴とする請求項3または4記載の演算処理装置。
  6. 前記消費電力制御部は、複数のベクトル命令の依存関係に基づいて、どのモジュールに何サイクル分だけクロックを供給するかを判断することを特徴とする請求項3〜5のいずれか1項記載の演算処理装置。
  7. 前記消費電力制御部は、前記命令の種別がスカラー命令の場合、前記スカラー命令の実行期間中に、前記スカラー演算器および前記スカラーレジスタにクロックを供給するとともに、前記ベクトル演算器および前記ベクトルレジスタへのクロックの供給を停止することを特徴とする請求項3記載の演算処理装置。
  8. 前記消費電力制御部は、前記命令の種別がマルチサイクル命令の場合、前記マルチサイクル命令の実行期間中に、前記マルチサイクル命令の実行に使用されるモジュールにクロックを供給するとともに、前記マルチサイクル命令の実行に使用されないモジュールへのクロックの供給を停止することを特徴とする請求項3記載の演算処理装置。
  9. 前記モジュールの構成要素単位で設けられ、前記命令を実行するために必要な期間中に前記命令を実行するために必要な構成要素を選択して消費電力の制御を局所的に行なう局所電力制御部をさらに備えることを特徴とする請求項1〜8のいずれか1項記載の演算処理装置。
  10. 前記構成要素単位で挿入された第2クロックゲーティングマクロ回路が設けられ、
    前記局所電力制御部は、前記命令を実行するために必要な期間中に前記命令を実行するために必要な構成要素に対応した第2クロックゲーティングマクロ回路に第2イネーブル信号を供給することにより、前記命令を実行するために必要な構成要素を選択することを特徴とする請求項9記載の演算処理装置。
  11. 前記第1クロックゲーティングマクロ回路の後段に前記第2クロックゲーティングマクロ回路が接続され、前記モジュール単位で消費電力の制御を行ないながら、前記構成要素単位で消費電力の制御を行なうことを特徴とする請求項10記載の演算処理装置。

JP2004044656A 2004-02-20 2004-02-20 演算処理装置 Expired - Fee Related JP4800582B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004044656A JP4800582B2 (ja) 2004-02-20 2004-02-20 演算処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004044656A JP4800582B2 (ja) 2004-02-20 2004-02-20 演算処理装置

Publications (2)

Publication Number Publication Date
JP2005234968A true JP2005234968A (ja) 2005-09-02
JP4800582B2 JP4800582B2 (ja) 2011-10-26

Family

ID=35017857

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004044656A Expired - Fee Related JP4800582B2 (ja) 2004-02-20 2004-02-20 演算処理装置

Country Status (1)

Country Link
JP (1) JP4800582B2 (ja)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007183860A (ja) * 2006-01-10 2007-07-19 Nec Electronics Corp クロック制御回路
US7836326B2 (en) 2006-07-25 2010-11-16 National University Corporation Nagoya University Apparatus with variable pipeline stages via unification processing and cancellation
JP2011065522A (ja) * 2009-09-18 2011-03-31 Nec Computertechno Ltd ベクトル処理装置、ベクトル処理方法、およびプログラム
JP2013016105A (ja) * 2011-07-06 2013-01-24 Renesas Mobile Corp 半導体装置およびシステム
JP2015522196A (ja) * 2012-07-11 2015-08-03 エイアールエム リミテッド ベクトル処理中のデータ要素処理のための順序制御
US9195260B2 (en) 2011-07-06 2015-11-24 Renesas Electronics Corporation Semiconductor device, radio communication terminal using same, and clock frequency control method
JP2018137460A (ja) * 2009-10-30 2018-08-30 株式会社半導体エネルギー研究所 半導体装置

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9977680B2 (en) 2016-09-30 2018-05-22 International Business Machines Corporation Clock-gating for multicycle instructions

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007183860A (ja) * 2006-01-10 2007-07-19 Nec Electronics Corp クロック制御回路
US7836326B2 (en) 2006-07-25 2010-11-16 National University Corporation Nagoya University Apparatus with variable pipeline stages via unification processing and cancellation
JP2011065522A (ja) * 2009-09-18 2011-03-31 Nec Computertechno Ltd ベクトル処理装置、ベクトル処理方法、およびプログラム
JP2018137460A (ja) * 2009-10-30 2018-08-30 株式会社半導体エネルギー研究所 半導体装置
JP2021158358A (ja) * 2009-10-30 2021-10-07 株式会社半導体エネルギー研究所 半導体装置
JP7174096B2 (ja) 2009-10-30 2022-11-17 株式会社半導体エネルギー研究所 半導体装置
JP2013016105A (ja) * 2011-07-06 2013-01-24 Renesas Mobile Corp 半導体装置およびシステム
US9176568B2 (en) 2011-07-06 2015-11-03 Renesas Electronics Corporation Clock control and power management for semiconductor apparatus and system
US9195260B2 (en) 2011-07-06 2015-11-24 Renesas Electronics Corporation Semiconductor device, radio communication terminal using same, and clock frequency control method
JP2015522196A (ja) * 2012-07-11 2015-08-03 エイアールエム リミテッド ベクトル処理中のデータ要素処理のための順序制御

Also Published As

Publication number Publication date
JP4800582B2 (ja) 2011-10-26

Similar Documents

Publication Publication Date Title
US20020087900A1 (en) System and method for reducing power consumption in a data processor having a clustered architecture
JP2006509290A (ja) マイクロプロセッサ電力消費低減のためのレジスタファイルゲーティング
JP2002512399A (ja) 外部コプロセッサによりアクセス可能なコンテキストスイッチレジスタセットを備えたriscプロセッサ
KR20010080367A (ko) 제어 프로그램 제품 및 데이터 처리장치
JP2004171573A (ja) 新規な分割命令トランズアクションモデルを使用して構築したコプロセッサ拡張アーキテクチャ
JP2011039982A (ja) プロセッサ
JP4800582B2 (ja) 演算処理装置
KR101077425B1 (ko) 효율적 인터럽트 리턴 어드레스 저장 메커니즘
US6012138A (en) Dynamically variable length CPU pipeline for efficiently executing two instruction sets
JP4073721B2 (ja) データ処理装置
US6993674B2 (en) System LSI architecture and method for controlling the clock of a data processing system through the use of instructions
JP5233078B2 (ja) プロセッサ及びその処理方法
JP4444305B2 (ja) 半導体装置
US6049864A (en) Method for scheduling a flag generating instruction and a subsequent instruction by executing the flag generating instruction in a microprocessor
JP3729142B2 (ja) 並列演算処理装置
JP2003196085A (ja) 情報処理装置
WO2002057893A2 (en) Method and apparatus for reducing power consuption in a digital processor
JP2001014161A (ja) プログラマブルコントローラ
JP2011186850A (ja) データ処理システム及びその制御方法
JP3511691B2 (ja) 演算処理装置
GB2548601A (en) Processing vector instructions
Turley M. Core shrinks code, power budgets
JP2000029696A (ja) プロセッサおよびパイプライン処理制御方法
JPH1020959A (ja) 低消費電力マイクロプロセッサ
JP3147884B2 (ja) 記憶装置及び情報処理装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070207

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20070207

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20090424

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090428

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090629

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20090811

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20091109

A911 Transfer of reconsideration by examiner before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20091118

A912 Removal of reconsideration by examiner before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20091211

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110804

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140812

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees